diff --git a/.agents/skills/gen-changesets/SKILL.md b/.agents/skills/gen-changesets/SKILL.md index e37dce801..60ae70c88 100644 --- a/.agents/skills/gen-changesets/SKILL.md +++ b/.agents/skills/gen-changesets/SKILL.md @@ -5,7 +5,7 @@ description: Use when generating changesets in the kimi-code repository — deci # Generate Changesets -The only user-facing published package is the CLI: `@moonshot-ai/kimi-code`. All other `@moonshot-ai/*` packages (sdk, kosong, kaos, oauth, telemetry, and so on) are internal. +The only user-facing published package is the CLI: `@moonshot-ai/kimi-code`. All other `@moonshot-ai/*` packages (sdk, kosong, oauth, telemetry, and so on) are internal. ## 1. Whether to Write @@ -32,6 +32,7 @@ Fix occasional loss of tool call results in long conversations. Wording: - One short, user-facing English sentence that states only what changed. Drop trailing clauses that explain the cause, the benefit, or the mechanism. +- When a default flips or an existing behavior is removed, name the behavior users lose, not only the new default. State the escape hatch if one exists, e.g. `Stop hot-reloading config, skills, and AGENTS.md by default; set [watch] enabled = true or KIMI_CODE_WATCH=1 to turn it back on.`; if there is none, say plainly that the old behavior is no longer available. - New features: say plainly what it is plus one line on how to use it, e.g. `Add the /foo slash command to list active sessions. Run /foo to see them.` - Experimental features: also state how to enable them (the flag, config key, or env var). - No file, class, or function names, and no PR numbers. No vague words like refactor, optimize, or improve. No real internal identifiers — use neutral placeholders such as `example.com` or `YOUR_API_KEY`. @@ -60,4 +61,4 @@ Wording: 4. **Show the changeset text to whoever requested the work and get their confirmation before committing.** 5. Do not guess at changes you do not understand: finish the parts that are clear, then list what is unclear and ask whether you may dig into the code. -Before a release, review the accumulated `.changeset/` entries and delete the non-user-facing ones — the release PR regenerates from `.changeset/` on main, so deleting a file removes its changelog entry without touching shipped code. +Before a release, review the accumulated `.changeset/` entries and delete the non-user-facing ones — the release PR regenerates from `.changeset/` on the selected release branch, so deleting a file removes its changelog entry without touching shipped code. diff --git a/.agents/skills/pre-changelog/SKILL.md b/.agents/skills/pre-changelog/SKILL.md index 4f1f83710..33ab0a156 100644 --- a/.agents/skills/pre-changelog/SKILL.md +++ b/.agents/skills/pre-changelog/SKILL.md @@ -13,6 +13,8 @@ This skill reuses `sync-changelog`'s strip / classify / translate rules. Read `s ### 1. Locate the release PR +Select the PR targeting the intended `release/*` branch, not the legacy main version PR. Report its latest head CI link and result alongside the preview. + ```bash gh pr list --state open --search "ci: release packages in:title" \ --json number,title,url,headRefName,baseRefName diff --git a/.agents/skills/review-pr/SKILL.md b/.agents/skills/review-pr/SKILL.md new file mode 100644 index 000000000..cb5db65e0 --- /dev/null +++ b/.agents/skills/review-pr/SKILL.md @@ -0,0 +1,192 @@ +--- +name: review-pr +description: 在 kimi-code 仓库里 review 一个 PR 时使用:按 PR 模板逐节核对描述与 diff,并单独做一轮"回归与用户影响"评审,给出影响等级与评审摘要,评审摘要用用户当前使用的语言。 +disable-model-invocation: true +--- + +# Review PR + +这个仓库过去的回归大多不是逻辑错误,而是"改动相对于自身意图是对的,但悄悄改掉了某个现有人群依赖的行为":方言分支收窄、默认值翻转、删 system prompt 句子、重构或移植时丢掉旧路径的功能、修复引入启动时序变化。通用 review 会把这类"有意的功能变更"排除在 bug 之外,所以这里把它单列成一轮。 + +评审判据只有一条:**改动前能工作的任何输入(配置键、环境变量、命令行参数、provider 响应形态、旧版本写的会话数据、客户端请求、hook 载荷)改动后必须行为不变,除非 PR 明确声明了这个变化并给出了退路。** + +## 工作流 + +1. 拉 PR 元数据与描述: + + ```bash + gh pr view --json title,body,url,files,additions,deletions,baseRefName,headRefName + ``` + +2. 读完整 diff(大 PR 按文件分批读): + + ```bash + gh pr diff + ``` + +3. 读足够的周边代码来验证描述里的每个断言。只看 diff 看不出"改动前谁走到这个分支"。 + +4. **第一遍:定性。** 判断改动类型,决定第三遍的深度,见"第一遍:定性"。 + +5. **第二遍:按模板逐节核对。** 见"模板逐节核对"。 + +6. **第三遍:回归与用户影响。** 尽量用一个独立子 agent 跑:只给它 PR 号、base 与 head、两三句改动简介和 `surfaces.md` 的路径,不给它作者关于影响范围的结论,让它先从 diff 和代码独立列清单,回来后再与作者填的表对比。没有子 agent 能力时自己按同样顺序做:先列清单,再读作者的表。见"第三遍:回归与用户影响"。 + +7. 用用户当前使用的语言写评审摘要,格式见"输出"。 + +## 第一遍:定性 + +| 改动类型 | 第三遍深度 | +|---|---| +| 纯内部重构、测试、文档、测试 CI | 只需给出"没有可观测变化"的证据:哪些分支、默认值、契约文件没动 | +| 发布与打包:release、native 构建、VS Code 发布工作流,打包脚本,web 产物同步 | 全做,人群按安装方式与平台分:npm 包、各平台 native 二进制、VS Code 市场、内置 web 产物 | +| 新增功能,不动既有路径 | 只查新分支是否抢走了既有输入:新增条件是否排在旧条件之前 | +| 行为变更、默认值翻转、校验或权限收紧或放宽 | 全做 | +| prompt 文本变更:system prompt、工具描述、提醒、overlay、内置 skill | 全做,且每一句改动单独成行 | +| 移植、替换旧路径、大重构:v1 到 v2、runtime binding、协议替换 | 全做,并要求作者给出旧路径功能清单 | +| 协议、磁盘格式、SDK 导出、hook 载荷、命令行契约变化 | 全做,并点名仓库外的消费方 | +| 修复类改动改了启动顺序、生命周期、异步时序 | 全做,重点看谁依赖原来的顺序 | + +一个 PR 可以同时属于多类,按最重的那类处理。 + +## 第三遍:回归与用户影响 + +### 1. 行为变化清单 + +列出 diff 改变的每一个可观测行为,包括作者说"不变"的和作者认为"内部"的。内部包会打进 CLI 发布包,"内部"不等于用户无感。 + +每一行记录:行为、变化前、变化后、变化类型(新增 / 修改 / 删除 / 默认翻转 / 收紧 / 放宽)、证据(改动前后各一个 `file:line`,一侧不存在时给可达路径)。 + +读法: + +- 对每个被删除或被收窄的分支、条件、默认值、句子,问"改动前谁走到这里,改动后他们去哪了"。 +- 对每个新增的分支或条件,问"哪些既有输入现在会先命中新分支"。#3492 的回归就是这样产生的:数组字段存在时不再读字符串字段,而 OpenRouter 形态的网关两者同时发。 +- 测试里"把旧断言改成新行为"的改动是行为变化的直接证据,逐条对应到清单。 +- 先看 diff 文件列表有没有命中 `surfaces.md` 的"触发线索"。命中的 surface 必须在清单里有对应行,否则就是漏项。 + +### 2. 受影响人群 + +每一行对应到 `surfaces.md` 里的具体人群,写出人群名字和"这个人群存在"的证据:文档页、issue、配置示例、provider 载荷形态。找不到人群的,不进 finding,进"待作者确认"。 + +### 3. 影响等级 + +等级只由改动的事实决定,不看 changeset、文档、测试这些补救状态。三步判定: + +1. 数据丢失、安全边界放宽、老数据不可读、某人群的功能整体不可用:直接 L3。 +2. 否则,可感知且有一键退路(config、env、flag):L1;可感知且无退路,旧行为不可恢复:L2;无可观测变化:L0。 +3. 静默升级:用户提供的输入(配置、环境变量、数据、请求字段)被忽略或丢弃,且没有任何错误信号,用户无法自行发现:升一级,最高 L3。行为公开地变了、用户能在输出里看到的,不算静默。 + +广度三档,必须写出人群名字:全体用户 / 某类配置或平台人群 / 边缘环境。 + +每一行单独定级,PR 的等级取最高。静默升级的理由:没有信号就没有上报,回归会一直存活到有人偶然发现。 + +### 4. 补救核对 + +固定四问,逐条回答有 / 无 / 不适用,并给出证据: + +- 退路开关:有没有 config、env 或 flag 能恢复旧行为。 +- changeset:有没有点明用户**失去了什么**,而不只是新默认是什么;没有退路时是否明说旧行为不可恢复。 +- 老数据与老客户端:旧版本写的会话、迁移来的数据、上一版发布的客户端(desktop、web、VS Code、ACP)是否仍然可用;回滚到上一版是否安全。 +- guard 测试:有没有一条测试把**未被改动的人群**的旧行为钉住。 + +再加一问:`docs/en` 与 `docs/zh` 里对这个 surface 的承诺是否同步更新。 + +### 等级对应的处理要求 + +- L3:建议阻塞。必须补 guard 测试,并提供退路、flag 门控或迁移,缺一不可合。 +- L2:需要维护者在 PR 里显式拍板;changeset 必须写明失去的行为;文档同步。 +- L1:核对 changeset 与文档即可。 +- L0:一句话说明为什么是 L0,给出证据。 + +### finding 与"待作者确认"的界线 + +- finding 必须同时有:改动前后各一处 `file:line` 证据,和一个具名人群及其存在证据。两者缺一,降级为"待作者确认"。新增整个文件或删除整段实现时一侧天然为空,这时给存在的那一侧加上受影响可达路径的 `file:line` 即可。 +- "待作者确认"最多 5 条,按可能的影响等级排序,多出来的只报数量。 +- 不要报:PR 之前就存在的问题(严重的单独一句"顺带发现")、lint 和类型检查会抓的问题、风格问题。 +- 不要把这些当成"无影响"的证据:作者说"不变"、没有测试引用被删的句子、改动只在内部包。 + +## 模板逐节核对 + +输出为中文时节名用下表的译名,其他语言沿用模板原文的节名: + +| English | 中文 | +|---------|------| +| Requirement or Bug | 需求或 Bug | +| Bug Reproduction Steps | Bug 复现步骤 | +| Root Cause | 根本原因 | +| Code Changes | 代码变更 | +| Behavior Changes and Affected Users | 行为变化与受影响人群 | +| Checklist | 检查清单 | + +旧 PR 若仍用 `Impact Scope` 这一节,按"行为变化与受影响人群"的标准核对。 + +### 需求或 Bug + +- 关联的 issue 是否有效、相关? +- 没有 issue 时,需求是否用一两句话说清楚了? + +### Bug 复现步骤 + +- bug 类 PR:步骤是否清晰、可复现? +- 按步骤能否在 base 分支上确认 bug 存在? + +### 根本原因 + +- bug 类 PR:根因解释是否令人信服? +- 描述的根因与 diff 是否一致? +- 是根本修复还是绕过,是否说清楚了? + +### 代码变更 + +- 描述与实际 diff 是否一致? +- 可视化大纲(diff 块、调用树、文件树)是否准确、有帮助? +- 方案是否合理?有没有更简单的替代? +- 有没有作者漏掉的边界情况? + +### 行为变化与受影响人群 + +- 把第三遍独立列出的清单与作者填的表逐行对比:作者漏列的行为就是 finding;作者写了但你没找到证据的,进"待作者确认"。 +- 人群是否具名,还是只写了"部分用户"? +- 写了 `None` 的,证据是否成立? +- 受影响模块与测试覆盖是否与 diff 文件列表一致?有没有带风险的未测路径? + +### 检查清单 + +- 适用的项是否都勾了? +- 标为"不需要"的项,你是否同意? + +## 输出 + +用用户当前使用的语言,按下面的顺序,示例为中文: + +```markdown +## 结论 +一句话:可合 / 需修改 / 建议阻塞。附 PR 影响等级与改动类型。 + +## 回归与用户影响 +- 改动类型:… +- 影响等级:Lx(广度:…;是否静默:…) + +| 行为 | 变化前 | 变化后 | 受影响人群 | 证据 | 等级 | 退路 | +|---|---|---|---|---|---|---| + +补救核对: +- 退路开关:… +- changeset 是否点明失去的行为:… +- 老数据与老客户端:… +- guard 测试:… +- 文档:… + +待作者确认(最多 5 条): +1. … + +## 模板逐节核对 +逐节说明是否填写充分,指出缺失、不准确、与 diff 不一致之处。 + +## 需要修改的项 +可执行的列表;没有则写"无"。 +``` + +## 复盘回填 + +每次线上回归复盘后,把新发现的人群或触发线索补进 `surfaces.md`,并在它的"历史案例"里加一行。清单不更新就会过时。 diff --git a/.agents/skills/review-pr/surfaces.md b/.agents/skills/review-pr/surfaces.md new file mode 100644 index 000000000..0d937d21c --- /dev/null +++ b/.agents/skills/review-pr/surfaces.md @@ -0,0 +1,129 @@ +# 人群与 surface 清单 + +`review-pr` 第三遍用的仓库专属清单:谁在依赖现有行为,diff 里碰到什么就必须列行为变化。它会过时,每次回归复盘后补一行,见 `SKILL.md` 的"复盘回填"。 + +## 一、人群:谁在依赖现有行为 + +### 客户端与入口 + +| 人群 | 说明 | 契约位置 | +|---|---|---| +| TUI 交互用户 | `kimi` 默认入口 | `apps/kimi-code/src/tui/` | +| print 模式用户 | `kimi -p`,含解析 `--output-format stream-json` 输出的脚本。脚本解析者算二等人群,但输出格式变化必须写进 changeset(#3146) | `apps/kimi-code/src/cli/options.ts` | +| desktop 与 web 用户 | 源码在 code-app 仓库,只消费 kap-server 的 `/api/v1` REST 与 `/api/v1/ws`。本仓 diff 看不到它们的用法,改契约时必须点名让作者去对方仓库核对 | `packages/kap-server/src/routes/`、`packages/kap-server/src/transport/ws/`、`docs/en/reference/server-api.md` | +| VS Code 扩展用户 | 走 SDK 事件适配层,webview 有自己的渲染契约(#3250:v2 不再发 `display` 字段导致卡片空白) | `apps/vscode/` | +| ACP 客户端用户 | Zed 等,`kimi acp`。stdio MCP 是 ACP 的默认传输,客户端会无条件发(#3167);能力矩阵是公开承诺(#3081) | `packages/acp-server/`、`docs/en/reference/kimi-acp.md` | +| SDK 调用方 | `@moonshot-ai/kimi-code-sdk` 的导出面;其中 `KimiForCodingProvider` 走 kosong 的 provider 实现,CLI 与服务端不用 kosong | `packages/node-sdk/src/index.ts`、`packages/node-sdk/package.json` 的 `exports`、`packages/kosong/src/providers/` | +| 远程控制用户 | `kimi web --remote-control`,凭据槽位与 relay 按登录区域选择(#3969) | `packages/remote-control/` | + +### provider 方言 + +| 人群 | 说明 | +|---|---| +| Kimi 官方 | 默认路径,OAuth 托管登录,区域与 relay 差异 | +| `openai` Chat Completions 兼容网关 | 最杂的一群:new-api 等中转、OpenRouter 形态(`reasoning` 字符串与 `reasoning_details` 数组并存,#3900)、只发 `reasoning_content` 的、严格校验历史消息的(#2819)、第三方模型对 `anyOf` 参数的处理(#3383) | +| `anthropic`、`openai_responses`、`google-genai`、`vertexai` | 各自的 thinking、工具调用、usage 字段形态 | +| 自定义模型配置 | `api_key_env`、models.dev catalog 导入、手动配置的 thinking 参数(#3448)、`[secondary_model]` 与 subagent model pool(#3192、#3903) | + +代码位置:`packages/agent-core-v2/src/human/llm/requester/bases/`。 + +### 平台与环境 + +| 人群 | 已知敏感点 | +|---|---| +| Windows | 深路径与递归监听压力(#3931 的动机)、驱动器根与 UNC(#2876)、IME 组合输入(#3915)、CSI-u 键盘序列 | +| Linux | 无 hardlink 的文件系统(#3535)、根目录海量文件导致的 OOM(#3892) | +| macOS | 默认开发环境,最容易被当成"全体用户" | +| 网络代理 | 后台子 agent 重试(#3721) | +| native 二进制 vs npm 安装 | 启动路径、更新机制不同 | +| 安装渠道 | npm 包、各平台 native 二进制、VS Code 市场包、内置 web 产物,由发布与打包工作流决定,`src/` 一行不动也能丢掉一个平台 | + +### git 仓库形态 + +| 人群 | 已知敏感点 | 契约位置 | +|---|---|---| +| 子模块或 worktree 内启动的用户 | `core.worktree` 已设置;路径含符号链接时(macOS `/tmp`、链接的 home、Windows 映射盘)realpath 与字面路径不一致。#3964 的 git 探针在这里整体失败,已随 #4013 回滚 | `packages/agent-core-v2/src/app/git/gitService.ts` | +| git-lfs、git-crypt 用户 | `.git/config` 里的 filter 驱动带 `required = true`;任何"清空 filter 命令"的加固都会让 `git status` 对已修改的被过滤文件直接 fatal,除非同时清 `required`。#3964 踩过,已随 #4013 回滚 | 同上 | +| 大仓库用户 | 依赖 `core.fsmonitor`;footer 的后台 git 有超时预算,超时后静默当作 clean | `apps/kimi-code/src/utils/git/` | +| 要求签名提交或 husky hooks 的仓库 | 任何自动提交路径(Tower 等)关闭 hooks 或签名都会改变提交结果 | `packages/agent-core-v2/src/features/tower/` | + +### 配置状态 + +| 人群 | 说明 | 契约位置 | +|---|---|---| +| 默认配置用户 | 任何默认值翻转对他们都是行为变更 | `packages/agent-core-v2/docs/config-manifest.toml` | +| experimental flag 用户 | `[experimental]` 与 `KIMI_CODE_EXPERIMENTAL_*`;flag 的 `default` 翻成 true 等于面向全体发布 | `packages/agent-core-v2/src/app/flag/flagRegistry.ts`、各域的 `flag.ts` | +| legacy flag 用户 | `KIMI_CODE_LEGACY_FLAG`(#3820:TUI 与 print 模式静默忽略) | | +| 自定义 agent 用户 | `--agent` 的 `disallowedTools` 等策略(#3417) | | +| 配了 hooks 的用户 | 事件名与载荷是外部脚本的契约;配了 hook 时审批面板不渲染并被静默批准(#3888)、v2 不触发 PreToolUse(#3431) | `packages/agent-core-v2/src/features/externalHooks/internal/types.ts`、`docs/en/customization/hooks.md` | +| skills、plugins、MCP 用户 | 含 stdio MCP、用户级 skill 根目录、`[watch]` 热加载(#3931 关掉默认,#4015 翻回;关掉时连带 AGENTS.md 变更提醒失效,`/reload` 只覆盖 config 与 skills) | `docs/en/customization/` | +| 环境变量用户 | 同一个变量在 TUI、print 模式、kap-server 三个入口要行为一致(#3498:三个入口两种行为) | `docs/en/configuration/env-vars.md` | +| 主题、键位、TUI 模式自定义用户 | `tui.toml` | `docs/en/customization/themes.md`、`docs/en/reference/keyboard.md` | + +### 数据年代 + +| 人群 | 说明 | 契约位置 | +|---|---|---| +| 旧版本写的会话 | wire 日志、turn 编号、压缩后的 transcript(#3561、#3866、#3922);新版本能否读、回滚后能否读 | `packages/agent-core-v2/docs/wire-manifest.d.ts`、`packages/agent-core-v2/docs/state-manifest.d.ts` | +| `kimi migrate` 迁来的会话 | 从 `~/.kimi/` 迁到 `~/.kimi-code/` | `packages/migration-legacy/` | +| 搜索索引 | minidb 快照与 WAL | `packages/minidb/` | +| 后台任务与 cron 持久化 | 非正常退出后的恢复(#3924) | | +| 目录布局 | 任何读写 `~/.kimi-code/` 的代码 | `docs/en/configuration/data-locations.md` | + +### 外部自动化 + +| 人群 | 契约 | +|---|---| +| 解析 `stream-json` 的脚本 | 事件形态与顺序 | +| hook 脚本 | 事件名、载荷字段、返回值语义 | +| `kimi export` 的消费者 | 导出格式 | +| 关闭遥测的用户 | `KIMI_DISABLE_TELEMETRY` 在所有入口生效 | + +### 模型行为人群 + +prompt 文本改动影响全体用户,且没有测试能证明"无影响"。已知依赖具体句子的人群: + +- 依赖"不碰工作目录外文件"的(#3879 删除了这条规则)。 +- 依赖"cwd 即项目根"的(#3929 删除了这条断言)。 +- plan 模式提醒节奏(#3489)。 + +基于外部基准分析做的 prompt 改动,本质是把一个人群的收益换成另一个人群的损失,必须写明两边各是谁。 + +## 二、触发线索:diff 里碰到就必须列行为变化 + +| diff 里出现 | 代表的 surface | 必做的检查 | +|---|---|---| +| `packages/agent-core-v2/src/app/agentProfileCatalog/system.md`,以及 `packages/agent-core-v2/src/**/*.md`(工具描述、提醒、overlay、内置 skill) | 模型行为 | 每删或改一句单独成行:这句改动前约束了什么行为,谁依赖,现在由什么来约束 | +| `packages/agent-core-v2/docs/config-manifest.toml`(由 `src/app/config/configSectionContributions.ts` 生成,`test/app/config/configManifest.test.ts` 守护同步) | 配置键、默认值、校验 | 默认翻转与校验收紧必列;改了 manifest 没改 `docs/en/configuration/config-files.md` 视为文档过时 | +| `packages/agent-core-v2/src/**/flag.ts`、`packages/agent-core-v2/src/app/flag/flagRegistry.ts` | experimental flag | `default` 翻转等于面向全体发布,按行为变更处理 | +| `packages/agent-core-v2/src/human/utils/watch.ts`(热加载开关)以及任何模块级默认常量、`?? true` / `?? false` 兜底被配置键覆盖的地方 | 默认值来源 | 默认翻转必列;退路的 config 路径要有 guard 测试,不能只靠 env;退路是否依赖 ConfigService 先于消费方构造 | +| `packages/agent-core-v2/docs/wire-manifest.d.ts`、`packages/agent-core-v2/docs/state-manifest.d.ts` | 磁盘会话格式 | 旧会话能否读、回滚到上一版能否读、有无迁移 | +| `packages/kap-server/test/__snapshots__/apiSurface.snapshot.test.ts.snap`、`packages/kap-server/src/routes/`、`packages/kap-server/src/transport/ws/` | desktop、web、VS Code 的服务端契约 | 消费方在仓库外,点名让作者去 code-app 核对;上一版客户端连新服务端是否仍可用 | +| `packages/node-sdk/src/index.ts`、`packages/node-sdk/package.json` | SDK 导出面 | 删除或改签名即破坏性变更 | +| `packages/klient/src/` | SDK 与 ACP 下面的客户端门面契约 | 只改 klient 的 PR 碰不到 node-sdk 导出面,按 SDK 调用方与 ACP 客户端两个人群核行为变化 | +| `packages/transcript/src/contract/` | kap-server 发给 desktop、web、VS Code 的 transcript 载荷契约 | 消费方在 code-app,点名让作者去核;上一版客户端能否解析新载荷 | +| `.github/workflows/release.yml`、`_native-build.yml`、`manual-native-bundle.yml`、`vscode-publish.yml`,`apps/kimi-code/scripts/native/`、`apps/kimi-code/scripts/check-web-assets.mjs` | 发布产物 | 按安装方式与平台核:npm 包内容、各平台 native 二进制、VS Code 市场包、内置 web 产物是否仍齐全 | +| `packages/acp-server/` | ACP 客户端 | 对照 `docs/en/reference/kimi-acp.md` 的能力矩阵逐项核对 | +| `apps/kimi-code/src/cli/` | 命令行参数、子命令、`--output-format` | 对照 `docs/en/reference/kimi-command.md` | +| `packages/agent-core-v2/src/features/externalHooks/` | hook 事件与载荷 | 对照 `docs/en/customization/hooks.md` 的事件参考 | +| `packages/agent-core-v2/src/human/llm/requester/bases/` | provider 方言分支 | 枚举每种上游载荷形态改动前后各走哪条分支,尤其是多个字段并存的网关 | +| `packages/agent-core-v2/src/app/git/`、`apps/kimi-code/src/utils/git/` | 后台 git 的调用方式、config 覆盖、超时 | 对照"git 仓库形态"人群逐行核:前置探针失败是否让整个后台 git 静默不可用;覆盖的 config 键是否有 `required`、`gpgSign`、`hooksPath` 这类会把"禁用"变成"失败"的键;Windows 用例是否全部 skip | +| `packages/migration-legacy/`、`packages/minidb/`、任何读写 `~/.kimi-code/` 布局的代码 | 数据年代 | 老数据是否仍可读、可迁移 | +| 任何环境变量读取点的新增、删除或语义变化,不限写法(`process.env.X`、`process.env['X']`、动态键、helper)也不限 `KIMI_` 前缀 | 环境变量 | 对照 `docs/en/configuration/env-vars.md` 的全部条目;TUI、print 模式、kap-server 三个入口是否一致 | +| `packages/agent-core-v2/src/app/scopes.ts`、`packages/agent-core-v2/src/features/featureAssemblyService.ts`、config ready 相关 | 启动顺序与生命周期 | 谁依赖原来的顺序;#3471 在合入 34 分钟后被 #3486 整体 revert | +| `docs/en/**`、`docs/zh/**` 的 reference、configuration、customization 页 | 公开承诺 | 改了行为没改文档,或改了文档没改行为,都要指出 | +| 测试里把旧断言改成新行为 | 行为变化的直接证据 | 逐条对应到行为变化清单 | + +## 三、历史案例:用来校准等级 + +| 类型 | 案例 | 当时漏掉的问题 | 事后等级 | +|---|---|---|---| +| 方言分支收窄 | #3492 引入,#3900 用户报告,#3910 修复 | PR 正文写明"只有没有数组时才读字符串",没人问谁会两个字段同时发 | L2 无退路,输入被静默丢弃升 L3,openai 兼容网关人群 | +| 默认值翻转 | #3931,五天后 #4015 翻回默认开 | changeset 只写新默认,没写运行中编辑 config、skills、AGENTS.md、agent 文件、mcp.json 不再自动生效;AGENTS.md 变更提醒随之失效,`/reload` 与 `/new` 不重读 AGENTS.md;review 未覆盖行为变化 | L1 有退路,但改了文件不生效也无任何信号,静默升 L2;changeset 没点明失去的行为,config 路径的退路无 guard 测试 | +| prompt 删句子 | #3879、#3929 | "没有测试引用这句"被当成无影响证据 | L2 无退路,全体用户;行为公开可见,不算静默 | +| 重构丢功能 | #2961 引入,#3081、#3167 用户报告,#3183 修复 | 重构删掉了 ACP 本地执行兜底与 stdio MCP 接受,文档承诺仍在 | L3,功能整体不可用,ACP 人群,报错响亮但无退路 | +| 移植漏项 | #3498、#3098、#3250、#3431、#3820 | v1 路径有、v2 路径没有:env 变量、上下文用量、卡片字段、hook、legacy flag;没人列过旧路径功能清单 | L2 无退路,配置被静默忽略升 L3 | +| 修复引入时序变化 | #3471 合入后 34 分钟被 #3486 revert | 延迟装配改变了启动顺序 | 全体用户 | +| 输出契约无声变化 | #3146 | headless 事件输出变了,没有 changelog | L2,脚本解析者 | +| 静默批准 | #3888 | 配了 hook 时审批面板不渲染,待审调用被静默批准 | L3,安全边界 | +| 安全收紧连带 | #3964(2.1.0),两天后 #4013 整体回滚 | 盲审列出四条:后台 git 探针在子模块 + 符号链接路径下整体失败;filter 驱动 `required = true` 仓库 `git status` fatal;print、ACP、SDK 无信任入口导致 `additional_dir` 静默为空;`~` 条目让 local.toml 整文件失效并静默退出。PR 正文未列任何人群 | L3 候选,四条均无退路、changeset 未提;回滚后代码已不在 main | diff --git a/.agents/skills/sync-changelog/SKILL.md b/.agents/skills/sync-changelog/SKILL.md index e8fbd021a..0835d56d2 100644 --- a/.agents/skills/sync-changelog/SKILL.md +++ b/.agents/skills/sync-changelog/SKILL.md @@ -126,7 +126,12 @@ Public-text rule: do not copy real internal endpoints, key names, account names, ### 4. Merge, Deduplicate, And Classify Entries -Before classifying, merge related entries and drop redundant ones from the user-facing changelog: +First, count the stripped upstream entries in the version range being synced. The count decides how much curation happens before the human review checkpoint: + +- **10 entries or fewer: list everything and let the user decide.** Classify every entry into its section and list them all — do not fold, merge, or drop entries on your own, and do not write a catch-all line. At the human review checkpoint (step 8), present the full list with advisory notes (which entries look low-signal under the two gates below, and why) so the user decides what stays, what merges, and what folds. +- **More than 10 entries: curate first, then review.** Merge related entries and fold low-signal ones into the catch-all line before writing the page, using the rules below. The reviewer still owns the final cutoff — surface the borderline calls instead of resolving them silently. + +The rules below are the shared curation standard: they drive the curator's fold/merge decisions when there are more than 10 entries, and they drive the advisory notes when there are 10 or fewer. - **Curate for end users: collapse low-signal entries into one catch-all line.** The docs changelog is the only curated, user-facing outlet; the full entry list always remains in the upstream package changelog, so hiding detail here loses nothing. Apply two gates to every candidate entry. Gate 1, the reader-action test: **after reading this, is there something the reader must do, or something they must re-evaluate?** Gate 2, the channel test: **is the changelog the only channel that can deliver this?** The changelog is the channel of last resort — when the product itself surfaces the information in context, at the moment of need, to exactly the affected users, the entry is redundant no matter how real the improvement is. "Surfaced" means pushed into the user's path, not merely present on screen: an event-triggered card, prompt, or post-install screen forces the encounter, while a toggle, menu item, command, or settings page only waits to be found. Users do not explore — a capability that lives only in ambient UI is effectively undiscoverable, so the changelog must announce it. What in-product surfacing cannot deliver: hidden controls (env vars, config keys, opt-out flags nobody would find unprompted), invalidations of existing habits or expectations (in-product discovery comes as confusion), and capabilities users would not know to seek. An entry that fails either gate folds. Anchor both gates to the changelog's reader, never to the bug's victim: someone who hit a loud failure does not need the changelog to confirm the fix — the product working again is the notification — and a reader who never hit it gets nothing from the entry. - `Features`: keep when users would try it or must react to it — new capabilities create demand readers did not know to seek. Collapse only behavior that takes effect solely behind an experimental flag. @@ -324,7 +329,7 @@ Check: - Each version has the same section set and order on both pages. - Each section has the same number of entries on both pages. - Within each section, the most valuable, obvious, and larger entries appear before smaller or narrower entries. -- Low-signal entries were collapsed into the single catch-all line, placed last under `Bug Fixes` — or under `Polish` when nothing folded is a fix (both the reader-action test and the channel test applied); the catch-all wording matches what was folded and never claims fixes that did not happen; section sizes stay within the density defaults (about 2 Polish, 3 Bug Fixes) unless extra qualifying entries were deliberately kept and flagged for review. The catch-all line ends with the upstream changelog pointer (file link, no version anchor). +- Entry count decided the curation level: a version range with 10 or fewer upstream entries lists everything classified, with no catch-all line (fold/merge decisions deferred to the review checkpoint); with more than 10, low-signal entries were collapsed into the single catch-all line, placed last under `Bug Fixes` — or under `Polish` when nothing folded is a fix (both the reader-action test and the channel test applied); the catch-all wording matches what was folded and never claims fixes that did not happen; section sizes stay within the density defaults (about 2 Polish, 3 Bug Fixes) unless extra qualifying entries were deliberately kept and flagged for review. The catch-all line ends with the upstream changelog pointer (file link, no version anchor). - PR links and commit hashes were stripped. - No `Thanks ...!` credit remains (remove it every time). - Real internal identifiers were replaced with neutral placeholders. @@ -353,7 +358,7 @@ If the user chooses review: git diff docs/en/release-notes/changelog.md docs/zh/release-notes/changelog.md ``` -2. Summarize synced versions, section counts, and anything that needed manual classification. List every entry folded into a catch-all line (short titles, one line each), any section that exceeds the density defaults, and every borderline call flagged during curation — the reviewer cannot own a cutoff they cannot see. +2. Summarize synced versions, section counts, and anything that needed manual classification. When the synced version range had 10 or fewer upstream entries and everything was listed, present the full entry list with advisory notes (which entries look low-signal and why) and ask the user to decide what stays, what merges, and what folds. When entries were folded into a catch-all line (more than 10 upstream entries), list every folded entry (short titles, one line each), any section that exceeds the density defaults, and every borderline call flagged during curation — the reviewer cannot own a cutoff they cannot see. 3. Tell the user to reply when they are done reviewing, or to ask for edits. 4. Do **not** commit, push, or open a PR until the user explicitly says review is complete, or asks to proceed. @@ -434,6 +439,7 @@ Return the PR URL to the user when done. - Never edit upstream `apps/kimi-code/CHANGELOG.md`. - Do not backfill unreleased `.changeset/*.md` drafts into the docs site. - If upstream wording is wrong, leave upstream alone and fix it in a future changeset. +- A version range with 10 or fewer upstream entries is listed in full; fold/merge/drop decisions belong to the user at the review checkpoint, not the curator. - Always sync on a `docs/changelog-sync-*` branch and open a PR; never push changelog docs sync directly to `main`. - Wait for the human review checkpoint before committing, pushing, or opening a PR. @@ -446,7 +452,8 @@ Return the PR URL to the user when done. | Leaving the `Thanks ...!` credit in docs | Remove it every time, including the multi-author form | | Leaving near-duplicate micro-tweaks as separate bullets | Merge small tweaks to the same surface into one higher-level entry (e.g. composer height + font → composer's default styling) | | Listing many narrow fixes to the same surface as separate bullets | When three or more fixes target the same UI area or the same class of problem, merge them into one higher-level fix entry; keep genuinely distinct or high-value fixes standalone | -| Listing low-signal fixes or internal changes as standalone bullets | Collapse them into the single catch-all line (`Fix several known issues.`) placed last under Bug Fixes; treat the section-size defaults (about 2 Polish, 3 Bug Fixes) as a density guard, not a quota | +| Listing low-signal fixes or internal changes as standalone bullets when curating (>10 entries) | Collapse them into the single catch-all line (`Fix several known issues.`) placed last under Bug Fixes; treat the section-size defaults (about 2 Polish, 3 Bug Fixes) as a density guard, not a quota | +| Folding, merging, or dropping entries on your own when the version range has 10 or fewer upstream entries | List everything classified, with no catch-all line, and let the user decide at the review checkpoint | | Folding a qualifying entry just to hit the section-size default | The defaults are density guards; keep entries that genuinely pass the reader-action test and flag the overflow for the human reviewer | | Keeping a fix because it was severe or hard-won | Severity makes the announcement redundant — the fix itself notifies whoever was hit; keep only behavior-change fixes and retrospective notices with a concrete, locatable action | | Keeping an improvement the product surfaces in context (recovery cards, post-install guidance, progress displays) | The product is the better channel — right users, moment of need; fold it (channel test) | diff --git a/.agents/skills/tdd/SKILL.md b/.agents/skills/tdd/SKILL.md deleted file mode 100644 index 8fc086710..000000000 --- a/.agents/skills/tdd/SKILL.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -name: tdd -description: Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests. ---- - -# Test-Driven Development - -TDD is the red → green loop. This skill is the reference that makes that loop produce tests worth keeping: what a good test is, where tests go, the anti-patterns, and the rules of the loop. Every section applies on every cycle: consult them before and during the loop, not after. - -When exploring the codebase, read `CONTEXT.md` (if it exists) so test names and interface vocabulary match the project's domain language, and respect ADRs in the area you're touching. - -## What a good test is - -Tests verify behavior through public interfaces, not implementation details. Code can change entirely; tests shouldn't. A good test reads like a specification: "user can checkout with valid cart" tells you exactly what capability exists, and it survives refactors because it doesn't care about internal structure. - -See [tests.md](tests.md) for examples and [mocking.md](mocking.md) for mocking guidelines. - -## Seams: where tests go - -A **seam** is the public boundary you test at: the interface where you observe behavior without reaching inside. Tests live at seams, never against internals. - -**Test only at pre-agreed seams.** Before writing any test, write down the seams under test and confirm them with the user. No test is written at an unconfirmed seam. You can't test everything, so agreeing the seams up front is how testing effort lands on the critical paths and complex logic instead of every edge case. - -Ask: "What's the public interface, and which seams should we test?" - -When the shape of that interface is itself in question (how deep the module is, where the seam belongs, what the interface should expose), call the Skill tool with "codebase-design" for the vocabulary. It is the shared source of the module, interface, depth, seam, adapter, leverage and locality terms, and it is a reference to consult, not a session to run. - -## Anti-patterns - -- **Implementation-coupled**: mocks internal collaborators, tests private methods, or verifies through a side channel (querying the database instead of using the interface). The tell: the test breaks when you refactor but behavior hasn't changed. -- **Tautological**: the assertion recomputes the expected value the way the code does (`expect(add(a, b)).toBe(a + b)`, a snapshot derived by hand the same way, a constant asserted equal to itself), so it passes by construction and can never disagree with the code. Expected values must come from an independent source of truth: a known-good literal, a worked example, the spec. -- **Horizontal slicing**: writing all tests first, then all implementation. Bulk tests verify _imagined_ behavior: you test the _shape_ of things rather than user-facing behavior, the tests go insensitive to real changes, and you commit to test structure before understanding the implementation. Work in **vertical slices** instead: one test → one implementation → repeat, each test a **tracer bullet** that responds to what the last cycle taught you. - -## Rules of the loop - -- **Red before green.** Write the failing test first, then only enough code to pass it. Don't anticipate future tests or add speculative features. -- **One slice at a time.** One seam, one test, one minimal implementation per cycle. -- **Refactoring is not part of the loop.** It belongs to the review stage (see the `code-review` skill), not the red → green implementation cycle. diff --git a/.agents/skills/tdd/mocking.md b/.agents/skills/tdd/mocking.md deleted file mode 100644 index 71cbfee67..000000000 --- a/.agents/skills/tdd/mocking.md +++ /dev/null @@ -1,59 +0,0 @@ -# When to Mock - -Mock at **system boundaries** only: - -- External APIs (payment, email, etc.) -- Databases (sometimes - prefer test DB) -- Time/randomness -- File system (sometimes) - -Don't mock: - -- Your own classes/modules -- Internal collaborators -- Anything you control - -## Designing for Mockability - -At system boundaries, design interfaces that are easy to mock: - -**1. Use dependency injection** - -Pass external dependencies in rather than creating them internally: - -```typescript -// Easy to mock -function processPayment(order, paymentClient) { - return paymentClient.charge(order.total); -} - -// Hard to mock -function processPayment(order) { - const client = new StripeClient(process.env.STRIPE_KEY); - return client.charge(order.total); -} -``` - -**2. Prefer SDK-style interfaces over generic fetchers** - -Create specific functions for each external operation instead of one generic function with conditional logic: - -```typescript -// GOOD: Each function is independently mockable -const api = { - getUser: (id) => fetch(`/users/${id}`), - getOrders: (userId) => fetch(`/users/${userId}/orders`), - createOrder: (data) => fetch('/orders', { method: 'POST', body: data }), -}; - -// BAD: Mocking requires conditional logic inside the mock -const api = { - fetch: (endpoint, options) => fetch(endpoint, options), -}; -``` - -The SDK approach means: -- Each mock returns one specific shape -- No conditional logic in test setup -- Easier to see which endpoints a test exercises -- Type safety per endpoint diff --git a/.agents/skills/tdd/tests.md b/.agents/skills/tdd/tests.md deleted file mode 100644 index 7ab86479f..000000000 --- a/.agents/skills/tdd/tests.md +++ /dev/null @@ -1,77 +0,0 @@ -# Good and Bad Tests - -## Good Tests - -**Integration-style**: Test through real interfaces, not mocks of internal parts. - -```typescript -// GOOD: Tests observable behavior -test("user can checkout with valid cart", async () => { - const cart = createCart(); - cart.add(product); - const result = await checkout(cart, paymentMethod); - expect(result.status).toBe("confirmed"); -}); -``` - -Characteristics: - -- Tests behavior users/callers care about -- Uses public API only -- Survives internal refactors -- Describes WHAT, not HOW -- One logical assertion per test - -## Bad Tests - -**Implementation-detail tests**: Coupled to internal structure. - -```typescript -// BAD: Tests implementation details -test("checkout calls paymentService.process", async () => { - const mockPayment = jest.mock(paymentService); - await checkout(cart, payment); - expect(mockPayment.process).toHaveBeenCalledWith(cart.total); -}); -``` - -Red flags: - -- Mocking internal collaborators -- Testing private methods -- Asserting on call counts/order -- Test breaks when refactoring without behavior change -- Test name describes HOW not WHAT -- Verifying through external means instead of interface - -```typescript -// BAD: Bypasses interface to verify -test("createUser saves to database", async () => { - await createUser({ name: "Alice" }); - const row = await db.query("SELECT * FROM users WHERE name = ?", ["Alice"]); - expect(row).toBeDefined(); -}); - -// GOOD: Verifies through interface -test("createUser makes user retrievable", async () => { - const user = await createUser({ name: "Alice" }); - const retrieved = await getUser(user.id); - expect(retrieved.name).toBe("Alice"); -}); -``` - -**Tautological tests**: Expected value restates the implementation, so the test passes by construction. - -```typescript -// BAD: Expected value is recomputed the way the code computes it -test("calculateTotal sums line items", () => { - const items = [{ price: 10 }, { price: 5 }]; - const expected = items.reduce((sum, i) => sum + i.price, 0); - expect(calculateTotal(items)).toBe(expected); -}); - -// GOOD: Expected value is an independent, known literal -test("calculateTotal sums line items", () => { - expect(calculateTotal([{ price: 10 }, { price: 5 }])).toBe(15); -}); -``` diff --git a/.agents/skills/write-pr/SKILL.md b/.agents/skills/write-pr/SKILL.md new file mode 100644 index 000000000..b810cb1e0 --- /dev/null +++ b/.agents/skills/write-pr/SKILL.md @@ -0,0 +1,140 @@ +--- +name: write-pr +description: 在 kimi-code 仓库里创建或更新 PR 时使用:如何把 PR 模板的每一节写得简洁、便于 reviewer 理解,包括"行为变化与受影响人群"表。 +--- + +# 写 PR 描述 + +为当前分支创建或更新 PR,描述要让 reviewer 明白这个改动为什么存在、实现长什么样、现有用户会失去什么。 + +## 工作流 + +1. 读 PR 模板: + + `Read(.github/pull_request_template.md)` + +2. 找到或创建 PR: + - 先查当前分支有没有 PR:`gh pr view --json url,number,title,state 2>/dev/null`。 + - 没有的话,看 `git status --short --branch` 和当前分支上的提交。 + - 提交剩余改动,带 upstream 推送分支,用 `gh pr create` 创建 PR。 + - 遵守仓库的 git 安全规范。 + +3. 收集解释改动所需的上下文: + - 读关联的 issue 和相关任务产物。 + - 读完整 diff(`git diff main...HEAD`)和足够的周边代码,理解行为与归属。 + - PR 已存在时,用 `gh pr view` 拿元数据和改动文件列表。 + +4. 按模板各节写描述。描述用用户当前使用的语言,行为变化表也一样;只有三样固定:PR 标题保持英文 Conventional Commit,changeset 保持英文(见 `gen-changesets` skill),节标题沿用模板原文。 + - **Requirement or Bug**:一句话,或 `Resolve #`。不要多写。 + - **Bug Reproduction Steps**:只有 bug 类 PR 需要;feature 写 `N/A`。步骤已在 issue 里的写 `See linked issue`。 + - **Root Cause**:只有 bug 类 PR 需要;feature 写 `N/A`。说明根因,以及这是根本修复还是绕过。 + - **Code Changes**:能用可视化大纲说清楚的就不要写散文,见"代码变更的可视化大纲"。 + - **Behavior Changes and Affected Users**:先填行为变化表,再列受影响模块与测试覆盖,见"行为变化与受影响人群"。 + - **Checklist**:勾上所有适用的项。 + +5. 发布描述: + - 先存到临时文件,再 `gh pr edit --body-file ` 或 `gh pr create --body-file `。 + - 确认更新成功。 + +## 行为变化与受影响人群 + +这一节回答一个问题:合入之后,现有用户会失去什么。这个仓库过去的回归大多来自没人回答这个问题,而不是逻辑错误。 + +判据:**改动前能工作的任何输入(配置键、环境变量、命令行参数、provider 响应形态、旧版本写的会话数据、客户端请求、hook 载荷)改动后必须行为不变,除非这里明确声明了变化并给出退路。** + +写法: + +1. 列出 diff 改变的每一个可观测行为,一行一个。包括你认为"不变"但分支条件挪动了的:新增的条件会不会先于旧条件命中既有输入;删除或收窄的分支改动前谁在走。内部包会打进 CLI 发布包,"内部"不等于用户无感。表格用 PR 描述的语言,下面的示例用英文只是示意形状: + + | Behavior | Before | After | Who relies on the old behavior | Escape hatch | + |---|---|---|---|---| + | reasoning parsing when `reasoning_details` is an array | string `reasoning` also read | string ignored | OpenAI-compatible gateways that send both (OpenRouter dialect) | none | + +2. 人群要具名,不要写"部分用户"。从 `.agents/skills/review-pr/surfaces.md` 里取:客户端(TUI、print 模式、desktop 与 web、VS Code、ACP、SDK)、provider 方言、平台、配置状态、数据年代、外部脚本。 + +3. 改了 prompt 文本(system prompt、工具描述、提醒)的,每一句单独成行,写清这句改动前约束了什么行为、谁依赖、现在由什么来约束。"没有测试引用这句"不是无影响的证据。 + +4. 替换或绕过旧路径的(移植、runtime binding、协议替换),额外列出旧路径的功能清单:它认哪些环境变量、有哪些兜底、接受哪些输入,以及每一项在新路径里的位置。 + +5. 确实没有可观测变化的,写 `None`,并说明证据:哪些分支、默认值、契约文件没动。 + +6. 表后面列受影响模块与每一行对应的测试覆盖。默认翻转或删除行为的,必须有一条测试把未被改动的人群的旧行为钉住,并且 changeset 要写明用户失去了什么,见 `gen-changesets` skill;没有退路的,在 PR 里请维护者显式拍板。 + +## 代码变更的可视化大纲 + +优先用结构化视图,少用散文。用能说清实现的最小组合,没变的类别不要列。 + +逻辑或算法变化用伪代码 diff: + +```diff + on(save) +- write content ++ if content is unchanged ++ return cached result ++ write new content ++ invalidate cache +``` + +运行时控制流用调用树 diff: + +```diff + submitForm + createSession + persistPrompt ++ expandSkillMention + launchAgent +- navigateToSession ++ navigateToSession ++ subscribeToEvents +``` + +文件职责变化用浅层文件树 diff: + +```diff + src/ + ├── commands/ ++│ └── show-me.ts # expands the slash command + ├── sessions/ +-└── transport.ts ++└── transport/ ++ ├── client.ts ++ └── stream.ts +``` + +组件或 UI 结构变化用树 diff: + +```diff + + useSessionEvents() + ++ + ++ +``` + +组件交互、控制流或数据流用 Mermaid,解释 bug 机制时尤其有用: + +```mermaid +sequenceDiagram + participant User + participant UI + participant Daemon + User->>UI: choose command + UI->>Daemon: send expanded prompt + Daemon-->>UI: stream result +``` + +关键数据结构或类型变化用对应语言的代码块: + +```ts +interface SessionEvents { + onTurnStart(cb: (turn: Turn) => void): void; + onTurnEnd(cb: (turn: Turn) => void): void; +} +``` + +可视化大纲的规则: +- 重点是"变了什么"且周边形状已存在时,用 `diff` 块。 +- 大部分是新内容,或 diff 记法会掩盖归属和顺序时,用对应语言或 `text` 块给出完整目标形状。 +- 按最容易理解的顺序讲:先文件还是先数据结构,哪个合适用哪个。 +- 像一个人对另一个人讲话:简单、连贯、简洁。 diff --git a/.agents/skills/write-tui/SKILL.md b/.agents/skills/write-tui/SKILL.md index 027b574cf..cbfb64e68 100644 --- a/.agents/skills/write-tui/SKILL.md +++ b/.agents/skills/write-tui/SKILL.md @@ -23,7 +23,7 @@ For any list dialog, selector, input box, or status/toggle list, the interaction - `editor-keyboard.ts` — editor keyboard handling, exit shortcuts, external editor, clipboard image. - `auth-flow.ts` — login/auth orchestration (`refreshConfigAfterLogin`, etc.). - `src/tui/commands/` — slash-command declaration, parsing, ordering, and dynamic skill-command generation. Parsing and types only; execution is dispatched from `KimiTUI`'s slash-command handler section, and complex execution sinks into `utils` or focused components. -- `src/tui/components/` — pi-tui components by UI type: `chrome/` (footer, todo, welcome, loader, device code), `dialogs/` (selectors, approval/question panels, settings popups that replace the editor), `editor/` (input box + mention provider), `media/` (image, diff, code highlight), `messages/` (transcript blocks + tool-renderers), `panes/` (activity, queue). +- `src/tui/components/` — pi-tui components by UI type: `chrome/` (footer, todo, welcome, loader, device code), `dialogs/` (selectors, approval/question panels, settings popups that replace the editor), `editor/` (input box + mention provider), `media/` (image, diff, code highlight), `markdown/` (the app's Markdown wrapper and mermaid art), `messages/` (transcript blocks + tool-renderers), `panes/` (activity, queue). - `src/tui/reverse-rpc/` — adapts SDK approval/question callbacks into UI panel data and the user's choice back into an SDK response. - `src/tui/theme/` — themes, color tokens, style helpers, pi-tui markdown theme, terminal-background detection. The single source of truth for color. - `src/tui/utils/` — TUI-only utilities (need `TUIState` or a component). App-wide, UI-independent helpers go in `src/utils/`. diff --git a/.changeset/README.md b/.changeset/README.md index 38e368a52..1155a0900 100644 --- a/.changeset/README.md +++ b/.changeset/README.md @@ -15,7 +15,6 @@ Current publishable packages: All other workspace packages are private internal packages, are not published to npm, and are excluded via `ignore` in `.changeset/config.json`: -- `@moonshot-ai/kaos` - `@moonshot-ai/kimi-code-oauth` - `@moonshot-ai/kimi-telemetry` - `@moonshot-ai/kosong` @@ -100,23 +99,27 @@ Commit messages must follow Conventional Commit style. Do not include any author ### 4. CI generates the release PR -Once the changeset file is merged into `main`, `.github/workflows/release.yml` uses `changesets/action@v1` to create or update a release PR. +Changesets accumulate on `main`. Create `release/` from the selected commit; pushes to that branch use `changesets/action@v1` to create or update its release PR. Manual **Release** runs on a release branch only prepare the PR. The workflow explicitly dispatches CI for the generated version branch. The release PR runs: - `pnpm changeset version`: bumps publishable package versions and updates changelogs; - Deletes the consumed `.changeset/*.md` files; -- Uses the title `[CI]: Release packages`. +- Uses the title `ci: release packages`. ### 5. Merge the release PR -Once the release PR is merged into `main`, the same workflow runs: +Review the version PR, latest CI and CLI/extension pre-changelog together. Once the matching version PR is merged into `release/`, publication waits for that exact commit’s push CI. Ordinary pushes do not publish. The existing publication steps then run: - `pnpm install --frozen-lockfile` - `pnpm build` - `pnpm changeset publish` -The packages are then published via npm Trusted Publishing, and a GitHub Release is created. +The packages are then published via npm Trusted Publishing, and a GitHub Release is created. CLI native builds still depend on Changesets reporting a newly published CLI package; npm-succeeded/native-failed whole-run recovery is not changed by this migration. + +VS Code uses the same approved release commit and CI gate, publishing only when the extension version changed in that push. It retains its existing build and marketplace checks. It no longer publishes on main pushes or through a standalone manual entry. The documentation workflow is dispatched on main after CLI artifacts are uploaded; its deployment result is tracked separately. CDN remains manual. + +Migration: merge the main infrastructure PR first to disable the old publisher, then the release infrastructure PR. These PRs do not publish. Close the obsolete main version PR separately. After the actual release, synchronize versions, changelogs, lockfile and consumed changeset removals back to main, preserving later main work. Main synchronization does not publish npm or VS Code. Do not change Desktop's submodule pointer as part of this step. ## Manual Publishing (Not Recommended) @@ -141,7 +144,7 @@ The root-level `pnpm run publish` first runs typecheck, lint, sherif, test, buil - Every PR that affects publishable-package behavior or public API should include a corresponding changeset. - Changes under `plugins/` (the bundled official plugins such as `kimi-datasource`) do **not** need a changeset: each plugin carries its own version in `kimi.plugin.json` and `plugins/marketplace.json` and is distributed via the marketplace CDN, separately from the `@moonshot-ai/kimi-code` npm package. - Changeset files must be committed to the repository — release PRs are only triggered after they're merged. -- Release PRs require human review and merge; they will not publish automatically. +- Release PRs require human review and approval. They do not publish before merge; merging the approved PR automatically publishes after its commit passes CI. - Do not add release changesets for private internal packages; only select `@moonshot-ai/kimi-code` and `@moonshot-ai/kimi-code-sdk`. - If a change in an underlying internal package alters user-visible behavior or public API of a publishable package, add a changeset to the affected publishable package. For example, when a bug fixed in `@moonshot-ai/kosong` resolves an issue CLI users encounter, add a changeset to `@moonshot-ai/kimi-code` describing the user-visible fix. - `@moonshot-ai/kimi-code` is the official CLI package name; after a global install it provides the `kimi` command. diff --git a/.changeset/expand-live-thinking.md b/.changeset/expand-live-thinking.md new file mode 100644 index 000000000..f07d46223 --- /dev/null +++ b/.changeset/expand-live-thinking.md @@ -0,0 +1,5 @@ +--- +"@moonshot-ai/kimi-code": minor +--- + +Allow expanding thinking during streaming with Ctrl-O diff --git a/.changeset/fix-zombie-session-occupancy.md b/.changeset/fix-zombie-session-occupancy.md new file mode 100644 index 000000000..a626113cb --- /dev/null +++ b/.changeset/fix-zombie-session-occupancy.md @@ -0,0 +1,5 @@ +--- +"@moonshot-ai/kimi-code": patch +--- + +Fix sessions occasionally remaining occupied after an application crash on macOS and Linux. diff --git a/.changeset/import-cc-codex-refresh.md b/.changeset/import-cc-codex-refresh.md new file mode 100644 index 000000000..fc40bc9ca --- /dev/null +++ b/.changeset/import-cc-codex-refresh.md @@ -0,0 +1,5 @@ +--- +"@moonshot-ai/kimi-code": patch +--- + +Update cross-tool imports for custom homes, instruction duplicate checks, project skills, and MCP settings; stop importing standalone `.claude/AGENTS.md`, project `.codex/AGENTS.md`, `.codex/CLAUDE.md`, and loose skill files, which can still be copied manually. diff --git a/.changeset/kap-session-idle-reclaim.md b/.changeset/kap-session-idle-reclaim.md new file mode 100644 index 000000000..5170e7a38 --- /dev/null +++ b/.changeset/kap-session-idle-reclaim.md @@ -0,0 +1,5 @@ +--- +"@moonshot-ai/kimi-code": minor +--- + +Sessions in web and desktop now unload from memory after 30 minutes idle and resume transparently on next access. diff --git a/.changeset/plan-mode-user-controlled.md b/.changeset/plan-mode-user-controlled.md new file mode 100644 index 000000000..58a385190 --- /dev/null +++ b/.changeset/plan-mode-user-controlled.md @@ -0,0 +1,5 @@ +--- +"@moonshot-ai/kimi-code": minor +--- + +Plan mode now starts only when you turn it on, and every plan waits for your review: the agent can no longer enter Plan mode by itself, Never Ask no longer approves plans automatically, and `kimi -p` skips `default_plan_mode` and cannot approve the plan of a session that is already in Plan mode. diff --git a/.changeset/provider-refresh-command.md b/.changeset/provider-refresh-command.md new file mode 100644 index 000000000..e10c318fb --- /dev/null +++ b/.changeset/provider-refresh-command.md @@ -0,0 +1,5 @@ +--- +"@moonshot-ai/kimi-code": minor +--- + +Add `/provider refresh [providerId]` to re-fetch provider model lists at runtime; unknown `/provider` subcommands now show a usage hint instead of opening the manager. diff --git a/.changeset/quick-resume-long-sessions.md b/.changeset/quick-resume-long-sessions.md new file mode 100644 index 000000000..79f7614a5 --- /dev/null +++ b/.changeset/quick-resume-long-sessions.md @@ -0,0 +1,5 @@ +--- +"@moonshot-ai/kimi-code": patch +--- + +Speed up session resume for long conversations. diff --git a/.changeset/session-lock-takeover.md b/.changeset/session-lock-takeover.md new file mode 100644 index 000000000..01747440c --- /dev/null +++ b/.changeset/session-lock-takeover.md @@ -0,0 +1,5 @@ +--- +"@moonshot-ai/kimi-code": patch +--- + +Offer to take over a session that is still in use after a retry, so sessions left locked by an exited process can be used again, and add a `KIMI_CODE_SESSION_LOCK=0` switch that turns off the session lock. diff --git a/.changeset/tower-orchestration.md b/.changeset/tower-orchestration.md new file mode 100644 index 000000000..0693ba86b --- /dev/null +++ b/.changeset/tower-orchestration.md @@ -0,0 +1,5 @@ +--- +"@moonshot-ai/kimi-code": minor +--- + +Raise Tower's default agent concurrency limit from 16 to 256, support the existing `max_running_tasks` limit and per-spawn model selection, and reduce lock contention during inbox, review, and status processing. diff --git a/.changeset/wedged-turn-transcript-axis.md b/.changeset/wedged-turn-transcript-axis.md new file mode 100644 index 000000000..bf83f162b --- /dev/null +++ b/.changeset/wedged-turn-transcript-axis.md @@ -0,0 +1,5 @@ +--- +"@moonshot-ai/kimi-code": patch +--- + +Fix the conversation view freezing at an old point after restarting the app when a turn had been interrupted; interrupted turns are now marked instead of shown as completed. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index eaa61a910..33c85ffc9 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -6,24 +6,40 @@ External PRs are accepted for approved bug fixes only: link an issue that a main See https://github.com/MoonshotAI/kimi-code/blob/main/CONTRIBUTING.md for more. --> -## Related Issue +## Requirement or Bug - + -Resolve #(issue_number) +## Bug Reproduction Steps -## Problem + - +## Root Cause -## What changed + - +## Code Changes + + + +## Behavior Changes and Affected Users + + ## Checklist - [ ] I have read the [CONTRIBUTING](https://github.com/MoonshotAI/kimi-code/blob/main/CONTRIBUTING.md) document. -- [ ] I have linked a related issue (external PRs: the issue must have a maintainer's `/approve`). +- [ ] I have linked a related issue (external PRs: issue must have a maintainer's `/approve`). - [ ] I have added tests that prove my feature works. +- [ ] The behavior-change table above is complete, and every removed behavior or flipped default is named in the changeset and either has an escape hatch or was explicitly approved by a maintainer in this PR. - [ ] Ran `gen-changesets` skill, or this PR needs no changeset. - [ ] Ran `gen-docs` skill, or this PR needs no doc update. diff --git a/.github/workflows/_native-build.yml b/.github/workflows/_native-build.yml index 483c58e41..145b7f885 100644 --- a/.github/workflows/_native-build.yml +++ b/.github/workflows/_native-build.yml @@ -18,6 +18,11 @@ on: required: false type: boolean default: false + sign-windows: + description: 'Whether to sign Windows builds with Azure Artifact Signing (requires AZURE_* secrets and AZURE_TRUSTED_SIGNING_* variables)' + required: false + type: boolean + default: false secrets: APPLE_CERTIFICATE_P12: required: false @@ -29,6 +34,12 @@ on: required: false APPLE_NOTARIZATION_ISSUER_ID: required: false + AZURE_TENANT_ID: + required: false + AZURE_CLIENT_ID: + required: false + AZURE_CLIENT_SECRET: + required: false permissions: contents: read @@ -96,6 +107,14 @@ jobs: - name: Build native executable (local profile) if: '!(runner.os == ''macOS'' && inputs.sign-macos)' + env: + KIMI_AZURE_TRUSTED_SIGNING: ${{ runner.os == 'Windows' && inputs.sign-windows && 'true' || 'false' }} + AZURE_TRUSTED_SIGNING_ENDPOINT: ${{ vars.AZURE_TRUSTED_SIGNING_ENDPOINT }} + AZURE_TRUSTED_SIGNING_ACCOUNT_NAME: ${{ vars.AZURE_TRUSTED_SIGNING_ACCOUNT_NAME }} + AZURE_TRUSTED_SIGNING_CERTIFICATE_PROFILE_NAME: ${{ vars.AZURE_TRUSTED_SIGNING_CERTIFICATE_PROFILE_NAME }} + AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} + AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} + AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }} run: pnpm --filter @moonshot-ai/kimi-code run build:native:sea - name: Notarize macOS binary diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 636568d71..4f1e84251 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,11 +5,27 @@ on: push: branches: - main + - 'release/*' + + workflow_dispatch: permissions: contents: read +concurrency: + group: ci-${{ github.ref }}-${{ startsWith(github.ref, 'refs/heads/release/') && github.sha || '' }} + cancel-in-progress: ${{ !startsWith(github.ref, 'refs/heads/release/') }} + jobs: + release-workflow-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 + with: + node-version-file: .nvmrc + - run: node --test scripts/release-trigger.test.mjs + build: runs-on: ubuntu-latest @@ -141,10 +157,10 @@ jobs: - run: pnpm install --frozen-lockfile - name: Typecheck run: | - pnpm dlx --package @typescript/native-preview@beta tsgo --version + pnpm exec tsc --version for config in packages/*/tsconfig.json apps/kimi-code/tsconfig.json; do echo "Typechecking ${config}" - pnpm dlx --package @typescript/native-preview@beta tsgo -p "${config}" --noEmit + pnpm exec tsc -p "${config}" --noEmit done - name: Typecheck VS Code extension run: pnpm --filter kimi-code run typecheck diff --git a/.github/workflows/manual-native-bundle.yml b/.github/workflows/manual-native-bundle.yml index 88bbf0d53..a18319d08 100644 --- a/.github/workflows/manual-native-bundle.yml +++ b/.github/workflows/manual-native-bundle.yml @@ -13,9 +13,13 @@ jobs: upload-artifact-prefix: kimi-code-native retention-days: 3 sign-macos: true + sign-windows: true secrets: APPLE_CERTIFICATE_P12: ${{ secrets.APPLE_CERTIFICATE_P12 }} APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} APPLE_NOTARIZATION_KEY_P8: ${{ secrets.APPLE_NOTARIZATION_KEY_P8 }} APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }} APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }} + AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} + AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} + AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7b96653ed..76d0733b4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,16 +2,88 @@ name: Release on: push: - branches: - - main + branches: ['release/*'] + workflow_dispatch: -concurrency: ${{ github.workflow }}-${{ github.ref }} +concurrency: + group: release-${{ github.ref }}-${{ github.sha }} + cancel-in-progress: false jobs: + version: + if: github.repository_owner == 'MoonshotAI' && startsWith(github.ref, 'refs/heads/release/') + concurrency: + group: release-version-${{ github.ref }} + cancel-in-progress: false + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + actions: write + steps: + - uses: actions/checkout@v6 + with: + fetch-depth: 0 + - uses: pnpm/action-setup@v6 + - uses: actions/setup-node@v6 + with: + node-version-file: .nvmrc + cache: pnpm + - run: pnpm install --frozen-lockfile + - uses: changesets/action@v1 + id: version + with: + version: pnpm run version:release + commit: 'ci: release packages' + title: 'ci: release packages' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Check version PR + if: steps.version.outputs.pullRequestNumber != '' + env: + GH_TOKEN: ${{ github.token }} + VERSION_BRANCH: changeset-release/${{ github.ref_name }} + run: gh workflow run ci.yml --ref "$VERSION_BRANCH" + + candidate: + if: github.repository_owner == 'MoonshotAI' && github.event_name == 'push' && startsWith(github.ref, 'refs/heads/release/') + runs-on: ubuntu-latest + timeout-minutes: 60 + permissions: + contents: read + pull-requests: read + actions: read + checks: read + outputs: + publish: ${{ steps.trigger.outputs.publish }} + steps: + - uses: actions/checkout@v6 + with: + ref: ${{ github.sha }} + - uses: actions/setup-node@v6 + with: + node-version-file: .nvmrc + - name: Wait for merged version commit CI + id: trigger + env: + GH_TOKEN: ${{ github.token }} + run: node scripts/release-trigger.mjs + + vscode: + needs: candidate + if: needs.candidate.outputs.publish == 'true' + permissions: + contents: read + uses: ./.github/workflows/vscode-publish.yml + secrets: + VSCE_PAT: ${{ secrets.VSCE_PAT }} + OVSX_PAT: ${{ secrets.OVSX_PAT }} + release: name: Release runs-on: ubuntu-latest - if: github.repository_owner == 'MoonshotAI' + needs: candidate + if: needs.candidate.outputs.publish == 'true' outputs: packages_published: ${{ steps.changesets.outputs.published }} kimi_native_release: ${{ steps.kimi-release.outputs.should_publish }} @@ -71,16 +143,6 @@ jobs: env: CHANGESETS_PUBLISHED_PACKAGES: ${{ steps.changesets.outputs.publishedPackages }} - deploy-docs: - name: Deploy docs - needs: release - if: needs.release.outputs.packages_published == 'true' - uses: ./.github/workflows/docs-deploy.yml - permissions: - contents: read - pages: write - id-token: write - native-artifacts: name: Native release artifact needs: release @@ -90,12 +152,16 @@ jobs: upload-artifact-prefix: kimi-code-native retention-days: 7 sign-macos: true + sign-windows: true secrets: APPLE_CERTIFICATE_P12: ${{ secrets.APPLE_CERTIFICATE_P12 }} APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} APPLE_NOTARIZATION_KEY_P8: ${{ secrets.APPLE_NOTARIZATION_KEY_P8 }} APPLE_NOTARIZATION_KEY_ID: ${{ secrets.APPLE_NOTARIZATION_KEY_ID }} APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }} + AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} + AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} + AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }} publish-native-assets: name: Publish native release assets @@ -128,3 +194,15 @@ jobs: GH_TOKEN: ${{ github.token }} RELEASE_TAG: ${{ needs.release.outputs.kimi_release_tag }} run: gh release upload "$RELEASE_TAG" dist-native-release/* --clobber + + deploy-docs: + needs: publish-native-assets + runs-on: ubuntu-latest + permissions: + actions: write + steps: + - name: Deploy existing main documentation + env: + GH_TOKEN: ${{ github.token }} + GH_REPO: ${{ github.repository }} + run: gh workflow run docs-deploy.yml --ref main diff --git a/.github/workflows/vscode-publish.yml b/.github/workflows/vscode-publish.yml index 23b12e12f..f7907a47c 100644 --- a/.github/workflows/vscode-publish.yml +++ b/.github/workflows/vscode-publish.yml @@ -1,35 +1,16 @@ name: Publish VS Code extension -# 把 0.7.3 手动发版流程固化成 CI 流水线: -# -# pnpm install → package:platform(全 6 平台)→ package:verify -# → extension host 冒烟(xvfb)→ publish:vsix → publish:ovsx -# -# 触发语义(参照 kimi-code-app 仓 desktop release.yml 的判定方式): -# 只在"本次 push 改动了 apps/vscode/package.json 的 version"时发布, -# 即 changesets 版本 PR("ci: release packages")合入后自动触发; -# 普通 PR 合入不会改变版本号,不会发布。版本号比较以 push 事件的 -# before SHA 为基准(git show),可覆盖一次 push 含多个 commit 的情况, -# 不依赖工作区状态。workflow_dispatch 为手动兜底, -# 跳过版本号变化检查,直接走后续幂等闸门。 -# -# 幂等(两道保险,可安全重跑,失败即停不自动重试): -# 1. 发布前逐平台核验 VS Marketplace(vsce show)与 Open VSX(REST) -# 线上版本:6 个 targetPlatform(darwin/linux/win32 × x64/arm64) -# 全部在线才跳过对应发布步骤;任一平台缺失(如上次部分发布失败) -# 即放行给发布步骤补齐,重跑可补齐; -# 2. 发布脚本自身带 --skip-duplicate(vsce)/ already-exists 跳过(ovsx)。 -# -# 前置条件:仓库管理员需先配置 secrets VSCE_PAT / OVSX_PAT, -# 未配置时 publish 步骤会失败,属预期。 - on: - push: - branches: - - main - workflow_dispatch: + workflow_call: + secrets: + VSCE_PAT: + required: false + OVSX_PAT: + required: false -concurrency: ${{ github.workflow }}-${{ github.ref }} +concurrency: + group: vscode-publish-${{ github.ref }} + cancel-in-progress: false permissions: contents: read @@ -38,13 +19,14 @@ jobs: publish: name: Publish VSIX to marketplaces runs-on: ubuntu-latest - if: github.repository_owner == 'MoonshotAI' + if: github.repository_owner == 'MoonshotAI' && startsWith(github.ref, 'refs/heads/release/') timeout-minutes: 90 steps: - name: Checkout uses: actions/checkout@v6 with: - fetch-depth: 0 # 需要按 push 事件的 before SHA 取旧版本号比较 + ref: ${{ github.sha }} + fetch-depth: 0 - name: Setup pnpm uses: pnpm/action-setup@v6 @@ -62,7 +44,6 @@ jobs: id: gate shell: bash env: - EVENT_NAME: ${{ github.event_name }} BEFORE_SHA: ${{ github.event.before }} run: | set -euo pipefail @@ -71,27 +52,20 @@ jobs: echo "version=${version}" >> "$GITHUB_OUTPUT" echo "extension version: ${version}" - if [ "${EVENT_NAME}" = "workflow_dispatch" ]; then - echo "manual dispatch — skipping version-change check" + prev="" + if [ -n "${BEFORE_SHA}" ] && [ -n "${BEFORE_SHA//0/}" ]; then + if git show "${BEFORE_SHA}:${pkg}" > /tmp/prev-vscode-pkg.json 2> /dev/null; then + prev="$(node -p "require('/tmp/prev-vscode-pkg.json').version")" + fi else - # 以 push 事件的 before SHA 为比较基准(覆盖多 commit 的单次 push)。 - # before 为空或全 0(如新分支首推)时无法比较,prev 视为空 → - # 判定版本变化放行 —— 宁可多查一次线上闸门,不可漏发。 - prev="" - if [ -n "${BEFORE_SHA}" ] && [ -n "${BEFORE_SHA//0/}" ]; then - if git show "${BEFORE_SHA}:${pkg}" > /tmp/prev-vscode-pkg.json 2> /dev/null; then - prev="$(node -p "require('/tmp/prev-vscode-pkg.json').version")" - fi - else - echo "push event has no usable before SHA ('${BEFORE_SHA}') — treating as a version change" - fi - if [ "${prev}" = "${version}" ]; then - echo "apps/vscode version unchanged in this push (${version}) — nothing to publish" - echo "should_publish=false" >> "$GITHUB_OUTPUT" - exit 0 - fi - echo "version changed ${prev:-} -> ${version} — release push" + echo "push event has no usable before SHA ('${BEFORE_SHA}') — treating as a version change" fi + if [ "${prev}" = "${version}" ]; then + echo "apps/vscode version unchanged in this push (${version}) — nothing to publish" + echo "should_publish=false" >> "$GITHUB_OUTPUT" + exit 0 + fi + echo "version changed ${prev:-} -> ${version} — release push" echo "should_publish=true" >> "$GITHUB_OUTPUT" # 线上闸门:逐平台核验,6 个 targetPlatform 全部在线才跳过对应市场; diff --git a/AGENTS.md b/AGENTS.md index ca4068bbc..e97b035c3 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -21,7 +21,6 @@ This is a TypeScript monorepo built for agent-assisted development. Keep the roo - `packages/agent-core-v2`: the DI × Scope agent engine (the v2 port behind kap-server). Four `LifecycleScope` tiers — `App` / `Workspace` / `Session` / `Agent` (`app/scopes.ts`) — plus the L3 unit layer (`Service`/`Fiber` units, collection contribution points, the Feature seam in `src/features/`); there is no App-level session lifecycle facade — callers compose `ISessionIndex` → `IWorkspaceLifecycleService.handlerFor` → the handler. - `packages/node-sdk`: the public TypeScript SDK and harness. - `packages/kosong`: the LLM / provider abstraction layer. -- `packages/kaos`: the execution environment and file/process abstractions. - `packages/oauth`: Kimi OAuth and managed auth utilities. - `packages/telemetry`: shared client-side telemetry infrastructure. - `packages/transcript`: the isomorphic transcript rendering data layer — L1 agent-granular store, L2 idempotent operations, L3 `off/turn/block/delta` subscription granularity, L4 framework-free view registry, plus turn-cursor pagination. Pure TypeScript (browser-safe, no engine imports); the sole owner of the transcript contract types (`src/contract/`) and the op-batch sequencing contract. @@ -58,7 +57,6 @@ This is a TypeScript monorepo built for agent-assisted development. Keep the roo - Internal methods with only a single parameter should not be turned into options objects just for stylistic uniformity. - Split functions only along abstraction levels: each function reads as one level of narrative (Step-down Rule), and a wrapper that adds no new abstraction level — especially one with a single call site — is inlined instead of extracted. - Except for a package's `index.ts`, other `index.ts` files should prefer `export * from './module';`. -- When writing or updating tests, follow the `tdd` skill (`.agents/skills/tdd/SKILL.md`). - Do not add too many new test files. Prefer adding tests to the existing test file of the corresponding component or module. - When a test fails because of a user modification, default to fixing the test first; do not change the implementation to satisfy an old test unless the implementation truly has a bug. - Do not sacrifice code quality for external compatibility unless the user explicitly asks for it. Breaking changes go through changesets and a `major` bump, gated by the rule below. @@ -75,12 +73,17 @@ This is a TypeScript monorepo built for agent-assisted development. Keep the roo - Project-map entries stay at 1–2 sentences; deep package docs live in the package's own `AGENTS.md`. - Keep instruction updates focused and supported by code facts. +## Release Workflow + +- `main` accumulates changesets; `release/*` maintains `ci: release packages` PRs. Merging the matching version PR authorizes publication after its merge-commit CI succeeds. Ordinary pushes do not publish. +- npm publishing and native artifacts retain the existing Changesets flow. CDN upload and routing remain separately approved operations. See `.changeset/README.md` for migration and main synchronization. + ## Workflow Requirements - Prefer `rg` / `rg --files` when reading code. - When designing changes, follow existing boundaries and local patterns first. - In public text and test data, replace real internal identifiers with neutral placeholders such as `example.com`, `example.test`, and `YOUR_API_KEY`. Before opening a PR, ask a read-only agent to audit the diff for context-specific internal identifiers. -- When creating a PR, the PR title must follow Conventional Commit style, e.g. `chore: remove legacy format commands`. +- When creating a PR, use the `write-pr` skill (`.agents/skills/write-pr/SKILL.md`) to write the PR description. The PR title must follow Conventional Commit style, e.g. `chore: remove legacy format commands`. - When an AI agent opens or updates a PR, fill in `.github/pull_request_template.md` — link the related issue or explain the problem, then describe what changed. Do not leave placeholder text or submit a generic summary of the diff. - Do not submit vague AI-generated PR text. The human author must understand the change well enough to explain the code, edge cases, and why the approach fits this repository. - After finishing a task and before submitting a PR, you must run the `gen-changesets` skill (see `.agents/skills/gen-changesets/SKILL.md`) and generate a changeset under `.changeset/` according to its rules. @@ -91,3 +94,39 @@ This is a TypeScript monorepo built for agent-assisted development. Keep the roo - Agent working notes or handoff/summary documents (e.g. `HANDOVER-*.md`, `HANDOFF-*.md`, `handoff.md`). - Throwaway UI/UX prototypes or design mockups (e.g. `*-designs.html`, `*-mockup.html`, `*-demo(s).html`) at the repo root or under a `design/` folder. The only tracked `.html` files should be Vite `index.html` entrypoints. Before committing or opening a PR, run `git status` and `git diff --staged --stat` and remove anything matching these patterns. Put scratch work under `.tmp/` (gitignored) instead of the repo root or the source tree. + +## Code Review Rules + +These rules apply to every pull request review, automated or human. The user populations and contract files they refer to are listed in `.agents/skills/review-pr/surfaces.md`. + +### Review scope: the PR's diff, not the repo + +- Review only the PR's diff against its base. A problem in code the PR does not touch (pre-existing on base) is reported as a non-blocking note, never as a blocking finding — the sole exception is pre-existing code that the PR's behavior directly triggers or amplifies. +- Report a class of issues in one pass: when a finding generalizes to several locations in the diff, list all of them at once instead of raising them across successive rounds. +- No pure style or personal-preference findings. Every finding carries a severity: P0 blocking / P1 should-fix / P2 suggestion. +- Re-reviews are incremental: review only what changed since the previous review; do not restate findings on unchanged code or re-raise resolved threads. Before treating a resolved thread as settled, verify the current code: suppress a finding only when the problem is actually fixed or the finding no longer holds. +- Domain-specific rules keep their own canonical homes — changesets (`.agents/skills/gen-changesets/SKILL.md`), comment-free zones (General Coding Rules), PR text (`write-pr` skill); review against those, not ad-hoc taste. + +### Enumerate changed behavior, not just bugs + +Any input that worked before the change — a config key, env var, CLI flag, provider response shape, session written by an older version, client request, or hook payload — must behave the same after it unless the PR declares the change. For every deleted or narrowed branch, condition, default, or prompt sentence, ask who reached it before and where they go now; for every new condition, ask which existing inputs now match it first. Flag a PR that calls a path "unchanged" when its branch condition moved. + +### A flipped default or removed behavior needs a named loss and an escape hatch + +Everyone on the old default is affected. Require the changeset to name the behavior users lose, not only the new default; a config, env, or flag escape hatch or a maintainer's explicit sign-off in the PR; and a test that pins the old behavior for the population that keeps it. + +### Prompt text is behavior + +Editing or deleting sentences under `packages/agent-core-v2/src/**/*.md` (system prompt, tool descriptions, reminders, overlays, built-in skills) changes agent behavior for every user who receives that prompt. "No test references the sentence" is not evidence of no impact. Require the PR to name the population that receives the text (every session, plan mode, a flag-gated feature such as Tower), what the sentence enforced, who relied on it, and what enforces it now. + +### Contract files are tripwires + +The manifests under `packages/agent-core-v2/docs/` (`config-manifest.toml`, `wire-manifest.d.ts`, `state-manifest.d.ts`), `packages/kap-server/test/__snapshots__/apiSurface.snapshot.test.ts.snap`, `packages/node-sdk/src/index.ts`, `packages/agent-core-v2/src/features/externalHooks/`, `packages/acp-server/`, and `apps/kimi-code/src/cli/` are consumed outside this repository: desktop and web in code-app, the VS Code extension, ACP clients such as Zed, SDK users, hook scripts, and headless-output parsers. When they change, require the PR to name the consumers and how data and clients from the previous release keep working. + +### Ports and refactors carry the old path's feature inventory + +When a change replaces or bypasses an existing path, require a list of what the old path did — env vars honored, fallbacks, accepted inputs — and where each item lives in the new path. A silently dropped item is a regression, not a cleanup. + +### Silent failure outranks a crash + +A change that makes the product silently ignore configuration, silently approve or skip an action, or silently drop data is the most severe finding: users get no signal to report. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a5e50c778..ca79376b2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -30,7 +30,7 @@ This is a pnpm monorepo. The most relevant entry points are: - `apps/vis` — session debug visualizer - `packages/node-sdk` — public TypeScript SDK (`@moonshot-ai/kimi-code-sdk`) - `packages/agent-core-v2` — the agent engine (v2, DI Scope architecture); `packages/agent-core` is v1 and being phased out -- `packages/klient`, `kap-server`, `protocol`, `transcript`, `kosong`, `kaos`, `oauth`, `telemetry` — internal engine packages +- `packages/klient`, `kap-server`, `protocol`, `transcript`, `kosong`, `oauth`, `telemetry` — internal engine packages - `docs/` — VitePress bilingual docs site For the full project map, see [AGENTS.md](AGENTS.md). diff --git a/CONTRIBUTING.zh-CN.md b/CONTRIBUTING.zh-CN.md index 92ea4107b..4d8df0ca3 100644 --- a/CONTRIBUTING.zh-CN.md +++ b/CONTRIBUTING.zh-CN.md @@ -30,7 +30,7 @@ Kimi Code 对 CLI/TUI 行为、agent 工作流和公开 API 已有自己的主 - `apps/vis` — 会话调试可视化工具 - `packages/node-sdk` — 公开 TypeScript SDK(`@moonshot-ai/kimi-code-sdk`) - `packages/agent-core-v2` — 当前的 agent 引擎(v2,DI Scope 架构);`packages/agent-core` 为 v1,正在逐步废弃 -- `packages/klient`、`kap-server`、`protocol`、`transcript`、`kosong`、`kaos`、`oauth`、`telemetry` — 内部引擎包 +- `packages/klient`、`kap-server`、`protocol`、`transcript`、`kosong`、`oauth`、`telemetry` — 内部引擎包 - `docs/` — VitePress 双语文档站 完整项目地图见 [AGENTS.md](AGENTS.md)。 diff --git a/apps/kimi-code/CHANGELOG.md b/apps/kimi-code/CHANGELOG.md index 3e296e01d..e99a9a3c2 100644 --- a/apps/kimi-code/CHANGELOG.md +++ b/apps/kimi-code/CHANGELOG.md @@ -1,5 +1,301 @@ # @moonshot-ai/kimi-code +## 2.3.0 + +### Minor Changes + +- [#4294](https://github.com/MoonshotAI/kimi-code/pull/4294) [`3f80896`](https://github.com/MoonshotAI/kimi-code/commit/3f80896a79c5b17867898bd829b6d7a78f569f47) Thanks [@liruifengv](https://github.com/liruifengv)! - Add a confirmation dialog when switching models in a session with conversation history: start a new session, compact and continue, continue directly, or cancel. Shown only when enabled by cloud configuration. + +- [#4188](https://github.com/MoonshotAI/kimi-code/pull/4188) [`3f0857e`](https://github.com/MoonshotAI/kimi-code/commit/3f0857eb7d612c4890c45dfa6acc8381f1e761c2) Thanks [@oocz](https://github.com/oocz)! - List plugin skills under their qualified `:` name so same-named skills from different plugins all stay visible and invocable; invoking a plugin skill by its bare name no longer works, use the qualified name instead. + +- [#4214](https://github.com/MoonshotAI/kimi-code/pull/4214) [`ef727e5`](https://github.com/MoonshotAI/kimi-code/commit/ef727e517923cb312cb48d42825c49dfacd528e7) Thanks [@sailist](https://github.com/sailist)! - Support streaming large requests and responses through remote control, raising the transfer limit from 10 MiB to 100 MiB, with concurrent transfers bounded to protect memory. + +- [#4288](https://github.com/MoonshotAI/kimi-code/pull/4288) [`df0ff3c`](https://github.com/MoonshotAI/kimi-code/commit/df0ff3c5492e8f896927c4af9b4ae00b2b488607) Thanks [@github-actions](https://github.com/apps/github-actions)! - When the same session is open in multiple clients, sending from a second one now shows an occupancy prompt with retry/cancel, or reloads updates made elsewhere first and resends your message. + +- [#4200](https://github.com/MoonshotAI/kimi-code/pull/4200) [`5bab748`](https://github.com/MoonshotAI/kimi-code/commit/5bab748dddaae4b2ac15822d72b83446e5fd7bf4) Thanks [@7Sageer](https://github.com/7Sageer)! - Automatically generate a session title after the first turn and show it as the terminal window title. + +### Patch Changes + +- [#4250](https://github.com/MoonshotAI/kimi-code/pull/4250) [`6e7cc90`](https://github.com/MoonshotAI/kimi-code/commit/6e7cc909da9084a424f822dd5a9aae5b98070b73) Thanks [@sailist](https://github.com/sailist)! - Setting `[permission] dangerous_command_guard = false` now turns off every built-in confirmation guard — dangerous commands, sensitive-file access, and git control-path access — instead of only the dangerous-command guard. + +- [#4281](https://github.com/MoonshotAI/kimi-code/pull/4281) [`5710c54`](https://github.com/MoonshotAI/kimi-code/commit/5710c5496a213742ca0687f69dd8eeb5bde52dbf) Thanks [@sailist](https://github.com/sailist)! - Fix session events stopping after a session is archived and restored. + +- [#4201](https://github.com/MoonshotAI/kimi-code/pull/4201) [`83a39b4`](https://github.com/MoonshotAI/kimi-code/commit/83a39b49ed62627c7a604b39e26d8e9d17ade296) Thanks [@Grapedge](https://github.com/Grapedge)! - Stop blocking the terminal while the footer reads git status. + +- [#4230](https://github.com/MoonshotAI/kimi-code/pull/4230) [`b260326`](https://github.com/MoonshotAI/kimi-code/commit/b2603264ec4687cee766cf5d5e6d4976e432961c) Thanks [@kimi-agent-bot](https://github.com/kimi-agent-bot)! - Report a clear error when thinking effort is set to off for Gemini 4 models. + +- [#4208](https://github.com/MoonshotAI/kimi-code/pull/4208) [`20b5991`](https://github.com/MoonshotAI/kimi-code/commit/20b59915bb11fc56ec389aa96720f1b7daac0862) Thanks [@SeleneXX](https://github.com/SeleneXX)! - Fix Gemini 4 requests always failing with a 400 error. + +- [#4242](https://github.com/MoonshotAI/kimi-code/pull/4242) [`c1459a6`](https://github.com/MoonshotAI/kimi-code/commit/c1459a61845056832b85a0a220ee11a2bc5132f8) Thanks [@wbxl2000](https://github.com/wbxl2000)! - Run hooks such as `PreToolUse` and `Stop` in the session's project directory, as documented, instead of the directory the server was started from. + +- [#4210](https://github.com/MoonshotAI/kimi-code/pull/4210) [`f28c51c`](https://github.com/MoonshotAI/kimi-code/commit/f28c51c01f025bba9f0d0f58f6309e7517a8cd02) Thanks [@sailist](https://github.com/sailist)! - Add the [mcp] default_deferred config key: when the experimental tool-select flag is on, set default_deferred = true in config.toml to load every MCP server's tools on demand by default; a server can opt out with deferred: false. + +- [#4171](https://github.com/MoonshotAI/kimi-code/pull/4171) [`0327e8e`](https://github.com/MoonshotAI/kimi-code/commit/0327e8e9a875949fd40141ef79f902d756dfd3db) Thanks [@7Sageer](https://github.com/7Sageer)! - Support custom-registry model upgrade metadata in model configuration. + +- [#4188](https://github.com/MoonshotAI/kimi-code/pull/4188) [`3f0857e`](https://github.com/MoonshotAI/kimi-code/commit/3f0857eb7d612c4890c45dfa6acc8381f1e761c2) Thanks [@oocz](https://github.com/oocz)! - Allow uppercase letters, dot-separated segments, and @ suffixes in plugin names when installing plugins. + +- [#4294](https://github.com/MoonshotAI/kimi-code/pull/4294) [`3f80896`](https://github.com/MoonshotAI/kimi-code/commit/3f80896a79c5b17867898bd829b6d7a78f569f47) Thanks [@liruifengv](https://github.com/liruifengv)! - Queue /compact while the agent is busy: the command now joins the message queue and runs in order instead of failing with an error; it is skipped if the context was auto-compacted while it waited. + +- [#4190](https://github.com/MoonshotAI/kimi-code/pull/4190) [`e4c99a3`](https://github.com/MoonshotAI/kimi-code/commit/e4c99a3bad19b00bd1939b1cf254f427b50061f0) Thanks [@starquakee](https://github.com/starquakee)! - Clarify unavailable tools, announce when no tools can be loaded, and discourage repeated failed tool selections. + +- [#4272](https://github.com/MoonshotAI/kimi-code/pull/4272) [`ce0834a`](https://github.com/MoonshotAI/kimi-code/commit/ce0834a8f301b89cc4523499a3e074c36851de8f) Thanks [@Grapedge](https://github.com/Grapedge)! - Move the session rating opt-out from tui.toml to config.toml. + +- [#4066](https://github.com/MoonshotAI/kimi-code/pull/4066) [`85077a4`](https://github.com/MoonshotAI/kimi-code/commit/85077a419001285e49ede3574924f001935aed62) Thanks [@7Sageer](https://github.com/7Sageer)! - Keep subagent tool descriptions aligned with currently available tools. + +- [#3799](https://github.com/MoonshotAI/kimi-code/pull/3799) [`7e58f2d`](https://github.com/MoonshotAI/kimi-code/commit/7e58f2d2410d2b541ffd57f4501c0436bba4ccbd) Thanks [@kimi-agent-bot](https://github.com/kimi-agent-bot)! - Fix the latest reply disappearing from the transcript after a background task completion notification arrives; the fold boundary is now anchored to the notification turn itself instead of the asynchronously mounted task card. + +- [#4239](https://github.com/MoonshotAI/kimi-code/pull/4239) [`da5918c`](https://github.com/MoonshotAI/kimi-code/commit/da5918c0c861a1d670f4523a9f9dd968647fe4cb) Thanks [@RealKai42](https://github.com/RealKai42)! - Remind the agent to update its todo list after 5 steps without an update instead of 10, only while the list still has unfinished items, and ask it to bring the list up to date before its final reply. + +- [#4248](https://github.com/MoonshotAI/kimi-code/pull/4248) [`8fcd332`](https://github.com/MoonshotAI/kimi-code/commit/8fcd3326e7488e5e0d4c595115ef74a10c340d5b) Thanks [@kimi-agent-bot](https://github.com/kimi-agent-bot)! - Show a single overflowing preview line in full instead of swapping it for a same-height expand hint. + +- [#4304](https://github.com/MoonshotAI/kimi-code/pull/4304) [`d36071e`](https://github.com/MoonshotAI/kimi-code/commit/d36071ede6ae3cbdc08cbb8a0f7daf7bc6d06f2d) Thanks [@kimi-agent-bot](https://github.com/kimi-agent-bot)! - web: Improved interactions and fixed known bugs. + +## 2.2.0 + +### Minor Changes + +- [#4159](https://github.com/MoonshotAI/kimi-code/pull/4159) [`0a3a2fb`](https://github.com/MoonshotAI/kimi-code/commit/0a3a2fbafab473df9e9f6609f825af78d2c1ce6d) Thanks [@RealKai42](https://github.com/RealKai42)! - Add an opt-in NotifyUser progress update feature (off by default): new sessions can show the agent's mid-turn progress with an optional one-line title, enabled in the TUI `/experiments` or the web/Desktop settings' Lab section; set `[experimental] notify_user = true` or `KIMI_CODE_EXPERIMENTAL_NOTIFY_USER=1` to turn it on. + +- [#4145](https://github.com/MoonshotAI/kimi-code/pull/4145) [`242ac23`](https://github.com/MoonshotAI/kimi-code/commit/242ac230006447f8601e1678c49182bfbae89fe9) Thanks [@wbxl2000](https://github.com/wbxl2000)! - Add `kimi app [path]` to open a new desktop chat in the current or specified directory. + +- [#4061](https://github.com/MoonshotAI/kimi-code/pull/4061) [`20a2cea`](https://github.com/MoonshotAI/kimi-code/commit/20a2cea72f5d2c4be3a3845e4ff24ce302a6630e) Thanks [@chengluyu](https://github.com/chengluyu)! - Cap the agent's in-turn wait for background tasks at 90 seconds (longer timeouts are no longer accepted), discourage repeated waits, and let a new message end the wait immediately. + +- [#3998](https://github.com/MoonshotAI/kimi-code/pull/3998) [`09af3b4`](https://github.com/MoonshotAI/kimi-code/commit/09af3b483faac51a767aee50adb1bc1a8de4cc53) Thanks [@tpoisonooo](https://github.com/tpoisonooo)! - Tower mode: a message sent while the agent is running aborts the in-progress turn and runs as its own turn. + +- [#4031](https://github.com/MoonshotAI/kimi-code/pull/4031) [`33e368a`](https://github.com/MoonshotAI/kimi-code/commit/33e368a1eff8d958856af8e2fb64f4db122b2247) Thanks [@Grapedge](https://github.com/Grapedge)! - Add sticky user message summaries in fullscreen mode; click a summary to jump to the original message. + +- [#4074](https://github.com/MoonshotAI/kimi-code/pull/4074) [`c9f01f0`](https://github.com/MoonshotAI/kimi-code/commit/c9f01f07388abc2cdca40c9c5267f58c65086710) Thanks [@tpoisonooo](https://github.com/tpoisonooo)! - Tower mode: deterministic orchestration with TowerRebase and LLM-free status, goal/tower mutual exclusion, and workspace protection. + +- [#4059](https://github.com/MoonshotAI/kimi-code/pull/4059) [`1f6f0b1`](https://github.com/MoonshotAI/kimi-code/commit/1f6f0b1fa2117cc9374c1be62c534b4a4d60e412) Thanks [@7Sageer](https://github.com/7Sageer)! - Add the KIMI_CODE_TRUST_WORKSPACE environment variable to mark the workspace as trusted. + +- [#4165](https://github.com/MoonshotAI/kimi-code/pull/4165) [`afd95f6`](https://github.com/MoonshotAI/kimi-code/commit/afd95f64a5444b649a4cc33504513bf88e4c54ba) Thanks [@Grapedge](https://github.com/Grapedge)! - Replace user skill cards with highlighted prompts and support Ctrl-S for skill prompts. + +### Patch Changes + +- [#4183](https://github.com/MoonshotAI/kimi-code/pull/4183) [`c15638b`](https://github.com/MoonshotAI/kimi-code/commit/c15638b0a1234e5aa97659fbc625d7dc4d60d93f) Thanks [@RealKai42](https://github.com/RealKai42)! - Cancel in-flight video uploads when a media read is interrupted. + +- [#4081](https://github.com/MoonshotAI/kimi-code/pull/4081) [`06ebfc8`](https://github.com/MoonshotAI/kimi-code/commit/06ebfc821e304bd4ca3f828ae739954166463d65) Thanks [@sailist](https://github.com/sailist)! - Fix shifted turns and lost replies when a UserPromptSubmit hook injects text; hook JSON output without a "message" field is no longer added to the conversation. + +- [#4154](https://github.com/MoonshotAI/kimi-code/pull/4154) [`419aced`](https://github.com/MoonshotAI/kimi-code/commit/419aced0e97fa04b75f8f71b089e1667f6de6d0a) Thanks [@7Sageer](https://github.com/7Sageer)! - Fix media file reading on the first turn after resuming a session. + +- [#4083](https://github.com/MoonshotAI/kimi-code/pull/4083) [`f409caa`](https://github.com/MoonshotAI/kimi-code/commit/f409caa21e71ce7beb158d29ffca1fed76216a64) Thanks [@sailist](https://github.com/sailist)! - Cron tasks from the source session no longer fire inside a forked session. + +- [#4152](https://github.com/MoonshotAI/kimi-code/pull/4152) [`f0bc988`](https://github.com/MoonshotAI/kimi-code/commit/f0bc988bbc7db08d650f37ae0eaa69bcc6e90696) Thanks [@7Sageer](https://github.com/7Sageer)! - Forked subagents now inherit the parent's available agent types, including custom agents. + +- [#4057](https://github.com/MoonshotAI/kimi-code/pull/4057) [`a940f2f`](https://github.com/MoonshotAI/kimi-code/commit/a940f2ff049ed57abce68c59526de7a6628a4112) Thanks [@huangzheng2016](https://github.com/huangzheng2016)! - Fix the permission mode switch in the goal-start approval prompt not taking effect on the v2 engine. + +- [#4081](https://github.com/MoonshotAI/kimi-code/pull/4081) [`06ebfc8`](https://github.com/MoonshotAI/kimi-code/commit/06ebfc821e304bd4ca3f828ae739954166463d65) Thanks [@sailist](https://github.com/sailist)! - Fix messages rendering out of place in sessions with a UserPromptSubmit hook. + +- [#4153](https://github.com/MoonshotAI/kimi-code/pull/4153) [`7091138`](https://github.com/MoonshotAI/kimi-code/commit/7091138f5e66289d04b9b7a5cd77f94af9308be3) Thanks [@RealKai42](https://github.com/RealKai42)! - Let the agent write one- or two-sentence progress notes between tool calls instead of bare status lines; in the experimental Updates panel (`KIMI_CODE_EXPERIMENTAL_NOTIFY_USER=1`), stop asking the agent to repost its mid-turn text as an update and remind it to post updates less often. + +- [#4054](https://github.com/MoonshotAI/kimi-code/pull/4054) [`4fbe065`](https://github.com/MoonshotAI/kimi-code/commit/4fbe065442179435c43d3c3dc8d11bb408b3fd30) Thanks [@RealKai42](https://github.com/RealKai42)! - Stop prompting the agent to send NotifyUser updates when a session is opened in a host that does not display them. + +- [#4091](https://github.com/MoonshotAI/kimi-code/pull/4091) [`21406fb`](https://github.com/MoonshotAI/kimi-code/commit/21406fb4c805cc8c715e6d1f16ad3fb5f25f4fe3) Thanks [@sailist](https://github.com/sailist)! - Omit max_tokens for models without an explicit output limit, fixing repeated 400 errors on strict serving stacks (e.g. bare vLLM) when the model's max output size is unknown. + +- [#4184](https://github.com/MoonshotAI/kimi-code/pull/4184) [`cbd7540`](https://github.com/MoonshotAI/kimi-code/commit/cbd754049a114ee36d1b27675c82819e4963c692) Thanks [@7Sageer](https://github.com/7Sageer)! - Remove the never-implemented `executor = "kaos"` option from MCP stdio server configuration; configs using it now fail validation at load time. + +- [#2919](https://github.com/MoonshotAI/kimi-code/pull/2919) [`0f052fe`](https://github.com/MoonshotAI/kimi-code/commit/0f052fee1399f34086bb6343a56867d7df9b70b5) Thanks [@duyphan154](https://github.com/duyphan154)! - Sanitize foreground Bash tool output so captured terminal escape sequences no longer change the host terminal state. + +- [#4164](https://github.com/MoonshotAI/kimi-code/pull/4164) [`3395f5b`](https://github.com/MoonshotAI/kimi-code/commit/3395f5bea6c77feb6a835d1ca3f4935970f96c6b) Thanks [@huangzheng2016](https://github.com/huangzheng2016)! - Show a "Shutting down" status hint while shutdown hooks run during exit, and let a Ctrl+C during that window force an immediate exit instead of waiting for the hook timeout. + +- [#4033](https://github.com/MoonshotAI/kimi-code/pull/4033) [`eec9bbd`](https://github.com/MoonshotAI/kimi-code/commit/eec9bbd94958248034f5dbf109a639970308f05e) Thanks [@Grapedge](https://github.com/Grapedge)! - Feedback surveys now appear less often. + +- [#4160](https://github.com/MoonshotAI/kimi-code/pull/4160) [`72fc1d0`](https://github.com/MoonshotAI/kimi-code/commit/72fc1d0a3375b2a87dff602a1d91726a99f360e0) Thanks [@kimi-agent-bot](https://github.com/kimi-agent-bot)! - Show "Working…" in the status spinner while thinking. + +- [#4056](https://github.com/MoonshotAI/kimi-code/pull/4056) [`395d537`](https://github.com/MoonshotAI/kimi-code/commit/395d537237d737de0239159b60d1cc160bdf04e6) Thanks [@7Sageer](https://github.com/7Sageer)! - Replace inline MCP commands in the workspace trust prompt with activation summaries and configuration paths for manual inspection. + +- [#4076](https://github.com/MoonshotAI/kimi-code/pull/4076) [`e3bf50c`](https://github.com/MoonshotAI/kimi-code/commit/e3bf50c0831d91ceb3656acf1b7a3f480eaada56) Thanks [@7Sageer](https://github.com/7Sageer)! - Remove interruption reminders from the conversation when their interrupted turns are undone. + +- [#4031](https://github.com/MoonshotAI/kimi-code/pull/4031) [`33e368a`](https://github.com/MoonshotAI/kimi-code/commit/33e368a1eff8d958856af8e2fb64f4db122b2247) Thanks [@Grapedge](https://github.com/Grapedge)! - Replace the user message bullet ✨ with ❯. + +- [#4221](https://github.com/MoonshotAI/kimi-code/pull/4221) [`2e6821d`](https://github.com/MoonshotAI/kimi-code/commit/2e6821dcbd8034f128b2326a73d4704201b7c108) Thanks [@kimi-agent-bot](https://github.com/kimi-agent-bot)! - web: Improved interactions and fixed known bugs. + +## 2.1.1 + +### Patch Changes + +- [#4013](https://github.com/MoonshotAI/kimi-code/pull/4013) [`929403b`](https://github.com/MoonshotAI/kimi-code/commit/929403b6db219eae6099dd23eae2f0efa2bb2823) Thanks [@7Sageer](https://github.com/7Sageer)! - Roll back some of the overly defensive changes in 2.1.0 + +- [#4015](https://github.com/MoonshotAI/kimi-code/pull/4015) [`c7dd841`](https://github.com/MoonshotAI/kimi-code/commit/c7dd84124a00d2dc1a68fbbc3e54b1095ee9ac23) Thanks [@sailist](https://github.com/sailist)! - Revert filesystem watchers for config and workspace files to on by default. Set `[watch] enabled` to `false` or `KIMI_CODE_WATCH=0` to keep them off. + +## 2.1.0 + +### Minor Changes + +- [#3990](https://github.com/MoonshotAI/kimi-code/pull/3990) [`32000d0`](https://github.com/MoonshotAI/kimi-code/commit/32000d08afcd019016fa60db0d68eaf21f3e35a6) Thanks [@Grapedge](https://github.com/Grapedge)! - In fullscreen, click a folded block to open or close it. + +- [#4004](https://github.com/MoonshotAI/kimi-code/pull/4004) [`e17ff67`](https://github.com/MoonshotAI/kimi-code/commit/e17ff679281e340fd328bc2ebaba1237e79a9ad3) Thanks [@Grapedge](https://github.com/Grapedge)! - Add a TUI mode setting to /settings with an experimental fullscreen layout; switching modes takes effect after restarting Kimi Code. You can also set `tui_mode` in `~/.kimi-code/tui.toml` directly: `"regular"` renders into the terminal scrollback, while `"fullscreen"` makes parts of the UI mouse-interactive for a smoother experience. + +### Patch Changes + +- [#3964](https://github.com/MoonshotAI/kimi-code/pull/3964) [`6451f1e`](https://github.com/MoonshotAI/kimi-code/commit/6451f1e056e90037bbf832f3578955cf8e55db64) Thanks [@7Sageer](https://github.com/7Sageer)! - Block file tools from accessing files outside the working directory through symlinks. + +- [#3975](https://github.com/MoonshotAI/kimi-code/pull/3975) [`bb96d80`](https://github.com/MoonshotAI/kimi-code/commit/bb96d80748921618182369a40a6610f38fa16acb) Thanks [@RealKai42](https://github.com/RealKai42)! - Reduce the CLI's startup time and memory usage. + +- [#3957](https://github.com/MoonshotAI/kimi-code/pull/3957) [`6a214b8`](https://github.com/MoonshotAI/kimi-code/commit/6a214b85e53e58a9ef6480f27bcb7b0103c0e34e) Thanks [@huangzheng2016](https://github.com/huangzheng2016)! - Fix a "Maximum call stack size exceeded" error when opening large sessions. + +- [#3974](https://github.com/MoonshotAI/kimi-code/pull/3974) [`994287a`](https://github.com/MoonshotAI/kimi-code/commit/994287acb3a7428b580c09cabd5aba1b5a818aaa) Thanks [@liruifengv](https://github.com/liruifengv)! - Fix forked sessions getting their titles overwritten by auto-generated titles. + +- [#3964](https://github.com/MoonshotAI/kimi-code/pull/3964) [`6451f1e`](https://github.com/MoonshotAI/kimi-code/commit/6451f1e056e90037bbf832f3578955cf8e55db64) Thanks [@7Sageer](https://github.com/7Sageer)! - Apply project-local configuration only after the workspace is trusted. + +- [#3964](https://github.com/MoonshotAI/kimi-code/pull/3964) [`6451f1e`](https://github.com/MoonshotAI/kimi-code/commit/6451f1e056e90037bbf832f3578955cf8e55db64) Thanks [@7Sageer](https://github.com/7Sageer)! - Block repository git configuration from executing commands during background git operations. + +- [#3969](https://github.com/MoonshotAI/kimi-code/pull/3969) [`b3212fd`](https://github.com/MoonshotAI/kimi-code/commit/b3212fd9abc1f4670fb47df16f0137957aed6f2d) Thanks [@sailist](https://github.com/sailist)! - Skip cloud telemetry on the global login until its collector is live, and keep shutdown from aborting TUI exit. + +- [#3979](https://github.com/MoonshotAI/kimi-code/pull/3979) [`e796bb5`](https://github.com/MoonshotAI/kimi-code/commit/e796bb5d482ecb7976c25dad0563b74cc9ec2c68) Thanks [@sailist](https://github.com/sailist)! - Fix MCP OAuth not requesting the offline_access scope, which caused hourly browser re-authorization with providers like Vercel. + +- [#3969](https://github.com/MoonshotAI/kimi-code/pull/3969) [`b3212fd`](https://github.com/MoonshotAI/kimi-code/commit/b3212fd9abc1f4670fb47df16f0137957aed6f2d) Thanks [@sailist](https://github.com/sailist)! - Fix Remote Control failing to start after `kimi login --region global`. + +- [#3964](https://github.com/MoonshotAI/kimi-code/pull/3964) [`6451f1e`](https://github.com/MoonshotAI/kimi-code/commit/6451f1e056e90037bbf832f3578955cf8e55db64) Thanks [@7Sageer](https://github.com/7Sageer)! - Reject additional directories that resolve to the home directory or filesystem root. + +- [#3995](https://github.com/MoonshotAI/kimi-code/pull/3995) [`a54e6f6`](https://github.com/MoonshotAI/kimi-code/commit/a54e6f6a9b36bc1346e41da576d96ff54aa557b6) Thanks [@7Sageer](https://github.com/7Sageer)! - Turn off repeat reminders and forced stops with `KIMI_CODE_REPEAT_BREAKER=0`. + +- [#3970](https://github.com/MoonshotAI/kimi-code/pull/3970) [`895e9d9`](https://github.com/MoonshotAI/kimi-code/commit/895e9d9b868cf9899e444784130fa1946c6cef6c) Thanks [@chengluyu](https://github.com/chengluyu)! - Fix missing Swarm members after reopening an interrupted conversation. + +- [#3989](https://github.com/MoonshotAI/kimi-code/pull/3989) [`a268ad7`](https://github.com/MoonshotAI/kimi-code/commit/a268ad775d9451d008d3c73de053655f6ab0772a) Thanks [@Grapedge](https://github.com/Grapedge)! - Show a Thinking… spinner and keep the status row height steady during streaming. + +- [#3989](https://github.com/MoonshotAI/kimi-code/pull/3989) [`a268ad7`](https://github.com/MoonshotAI/kimi-code/commit/a268ad775d9451d008d3c73de053655f6ab0772a) Thanks [@Grapedge](https://github.com/Grapedge)! - Add a clickable "Jump to bottom" indicator to the fullscreen TUI. + +- [#3976](https://github.com/MoonshotAI/kimi-code/pull/3976) [`f7012aa`](https://github.com/MoonshotAI/kimi-code/commit/f7012aa23b38d90d1a643166e2e78f706a606a34) Thanks [@tpoisonooo](https://github.com/tpoisonooo)! - Tower mode: smaller missions, stricter completion and review checks, and review history in rework briefings. + +- [#3847](https://github.com/MoonshotAI/kimi-code/pull/3847) [`65ae3e3`](https://github.com/MoonshotAI/kimi-code/commit/65ae3e368c7cfa096242cacc12eeeb661e682977) Thanks [@tpoisonooo](https://github.com/tpoisonooo)! - Tower mode: mission titles must be ASCII, and task cards show the mission id. + +- [#3931](https://github.com/MoonshotAI/kimi-code/pull/3931) [`f17a22e`](https://github.com/MoonshotAI/kimi-code/commit/f17a22ebf4e21b8196bfaaa9a2490707676bf519) Thanks [@sailist](https://github.com/sailist)! - Turn off filesystem watchers for config and workspace files by default. Set `[watch] enabled` to `true` or `KIMI_CODE_WATCH=1` to turn them back on. + +- [#4005](https://github.com/MoonshotAI/kimi-code/pull/4005) [`ba41d07`](https://github.com/MoonshotAI/kimi-code/commit/ba41d07810cae37a9e529cad6b0f8e8abc8d7aaf) Thanks [@liruifengv](https://github.com/liruifengv)! - web: Improved interactions and fixed known bugs. + +## 2.0.2 + +### Patch Changes + +- [#3922](https://github.com/MoonshotAI/kimi-code/pull/3922) [`9df7a9c`](https://github.com/MoonshotAI/kimi-code/commit/9df7a9ccfb0d7d0713b51ae1ac165d0634fc40d2) Thanks [@sailist](https://github.com/sailist)! - Fix new messages occasionally landing at an old position in the conversation after resuming a session. + +- [#3911](https://github.com/MoonshotAI/kimi-code/pull/3911) [`88a7d93`](https://github.com/MoonshotAI/kimi-code/commit/88a7d932f1cda95c78bf5488d34ff974a160fb08) Thanks [@Grapedge](https://github.com/Grapedge)! - Fix compaction failing after switching to a model with a smaller context window. + +- [#3929](https://github.com/MoonshotAI/kimi-code/pull/3929) [`6ffdf0d`](https://github.com/MoonshotAI/kimi-code/commit/6ffdf0d579fa1a9f30c2d00c437c6c8de0c03997) Thanks [@7Hanrui](https://github.com/7Hanrui)! - The agent no longer assumes the current working directory is the project root. + +- [#3933](https://github.com/MoonshotAI/kimi-code/pull/3933) [`9721259`](https://github.com/MoonshotAI/kimi-code/commit/97212596f7d694b9683046ec7aad4d1247d29468) Thanks [@liruifengv](https://github.com/liruifengv)! - Fix a message sent while the agent was running sometimes appearing twice in the chat. + +- [#3934](https://github.com/MoonshotAI/kimi-code/pull/3934) [`2e605b1`](https://github.com/MoonshotAI/kimi-code/commit/2e605b10be906fb627c1f3aeaaa066b14ddbdbba) Thanks [@liruifengv](https://github.com/liruifengv)! - web: Improved interactions and fixed known bugs. + +## 2.0.1 + +### Patch Changes + +- [#3878](https://github.com/MoonshotAI/kimi-code/pull/3878) [`f233f9d`](https://github.com/MoonshotAI/kimi-code/commit/f233f9de04d71c42d27df870b18e1bc1a6605f16) Thanks [@7Sageer](https://github.com/7Sageer)! - Stop listing unavailable media tools in subagent menus and clarify Read errors for images and videos. + +- [#3762](https://github.com/MoonshotAI/kimi-code/pull/3762) [`c5ad17f`](https://github.com/MoonshotAI/kimi-code/commit/c5ad17f06aa12702d2b30dff63acba9ed08f688d) Thanks [@7Sageer](https://github.com/7Sageer)! - Providers can read their API key from a named environment variable (`api_key_env` in `config.toml` or the provider API). + +- [#3896](https://github.com/MoonshotAI/kimi-code/pull/3896) [`73ebe9a`](https://github.com/MoonshotAI/kimi-code/commit/73ebe9ab2fbf9bf0ffc8fe5a5375060ce8e984b5) Thanks [@sailist](https://github.com/sailist)! - Keep follow-up messages sent during a turn from appearing twice after a session reload. + +- [#3889](https://github.com/MoonshotAI/kimi-code/pull/3889) [`5108cad`](https://github.com/MoonshotAI/kimi-code/commit/5108cad9b65845ae992520dcf732cbbccc6a34b9) Thanks [@huangzheng2016](https://github.com/huangzheng2016)! - Compact the session index on startup when many entries point to deleted sessions. + +- [#3889](https://github.com/MoonshotAI/kimi-code/pull/3889) [`5108cad`](https://github.com/MoonshotAI/kimi-code/commit/5108cad9b65845ae992520dcf732cbbccc6a34b9) Thanks [@huangzheng2016](https://github.com/huangzheng2016)! - Start the CLI faster by removing a duplicate skills directory scan. + +- [#3889](https://github.com/MoonshotAI/kimi-code/pull/3889) [`5108cad`](https://github.com/MoonshotAI/kimi-code/commit/5108cad9b65845ae992520dcf732cbbccc6a34b9) Thanks [@huangzheng2016](https://github.com/huangzheng2016)! - Open the session list and resume sessions faster on workspaces with many sessions. + +- [#3889](https://github.com/MoonshotAI/kimi-code/pull/3889) [`5108cad`](https://github.com/MoonshotAI/kimi-code/commit/5108cad9b65845ae992520dcf732cbbccc6a34b9) Thanks [@huangzheng2016](https://github.com/huangzheng2016)! - Resume long sessions faster. + +- [#3889](https://github.com/MoonshotAI/kimi-code/pull/3889) [`5108cad`](https://github.com/MoonshotAI/kimi-code/commit/5108cad9b65845ae992520dcf732cbbccc6a34b9) Thanks [@huangzheng2016](https://github.com/huangzheng2016)! - Index sessions for search in capped, incremental background passes, tunable via the [database] searchSyncSessionCap and searchSyncDebounceMs settings. + +- [#3864](https://github.com/MoonshotAI/kimi-code/pull/3864) [`25dd4ce`](https://github.com/MoonshotAI/kimi-code/commit/25dd4ce97345c7ebfd9c036898e5eef955c45ea8) Thanks [@wbxl2000](https://github.com/wbxl2000)! - Rename the kimi install-app subcommand to kimi install-desktop; the old name keeps working as a hidden alias. + +- [#3910](https://github.com/MoonshotAI/kimi-code/pull/3910) [`7dc253c`](https://github.com/MoonshotAI/kimi-code/commit/7dc253c5cefac7c277e5fc7071acf3e855fd503e) Thanks [@sailist](https://github.com/sailist)! - Restore thinking display for OpenAI-compatible providers that send a reasoning string next to an unrecognized reasoning_details array. + +- [#3875](https://github.com/MoonshotAI/kimi-code/pull/3875) [`c1047a6`](https://github.com/MoonshotAI/kimi-code/commit/c1047a6bbe0e37d097e5da54d92dd3fb1b7a28da) Thanks [@7Sageer](https://github.com/7Sageer)! - Fix `kimi -p` exiting early and cancelling the active turn when a cron task fires. + +- [#3894](https://github.com/MoonshotAI/kimi-code/pull/3894) [`910aba2`](https://github.com/MoonshotAI/kimi-code/commit/910aba273e2bee3a8815666a3a9c4fff609f2366) Thanks [@7Sageer](https://github.com/7Sageer)! - Drop literal decision clauses from the system prompt and the auto permission mode reminder. + +- [#3889](https://github.com/MoonshotAI/kimi-code/pull/3889) [`5108cad`](https://github.com/MoonshotAI/kimi-code/commit/5108cad9b65845ae992520dcf732cbbccc6a34b9) Thanks [@huangzheng2016](https://github.com/huangzheng2016)! - Restore sessions with large file-edit histories faster. + +- [#3889](https://github.com/MoonshotAI/kimi-code/pull/3889) [`5108cad`](https://github.com/MoonshotAI/kimi-code/commit/5108cad9b65845ae992520dcf732cbbccc6a34b9) Thanks [@huangzheng2016](https://github.com/huangzheng2016)! - Serve session transcript APIs faster on repeated calls. + +- [#3885](https://github.com/MoonshotAI/kimi-code/pull/3885) [`5acc863`](https://github.com/MoonshotAI/kimi-code/commit/5acc863ae60c092457bd9ecdde55266b5fad7040) Thanks [@starquakee](https://github.com/starquakee)! - select_tools now points out already-available tools to call directly and suggests announced names for near-miss selections. + +- [#3887](https://github.com/MoonshotAI/kimi-code/pull/3887) [`e3f48a2`](https://github.com/MoonshotAI/kimi-code/commit/e3f48a225bbedbe167b30510e67d66ee67fcb0ec) Thanks [@RealKai42](https://github.com/RealKai42)! - Fix deleting or archiving a session sometimes never finishing. + +- [#3891](https://github.com/MoonshotAI/kimi-code/pull/3891) [`53e5e3f`](https://github.com/MoonshotAI/kimi-code/commit/53e5e3fca6bf377662bc4d61d220dde4ded8e7b7) Thanks [@sailist](https://github.com/sailist)! - Keep follow-up messages sent during a turn attached to that turn in the conversation history. + +- [#3906](https://github.com/MoonshotAI/kimi-code/pull/3906) [`60f2a63`](https://github.com/MoonshotAI/kimi-code/commit/60f2a63278f28b77d9358cf589b2da6193bd2614) Thanks [@sailist](https://github.com/sailist)! - Keep a follow-up sent during a turn as one message, and undo the host turn instead of the follow-up alone. + +- [#3879](https://github.com/MoonshotAI/kimi-code/pull/3879) [`1fddc16`](https://github.com/MoonshotAI/kimi-code/commit/1fddc16e3ea2de4c26a18acd764380adf9e2ed64) Thanks [@7Sageer](https://github.com/7Sageer)! - Remove the system-prompt rule that forbade all file access outside the working directory. + +- [#3892](https://github.com/MoonshotAI/kimi-code/pull/3892) [`a80fe31`](https://github.com/MoonshotAI/kimi-code/commit/a80fe31cff0ebae686e60d7d5d0559ad2d2e843d) Thanks [@sailist](https://github.com/sailist)! - Stop workspace file watchers from scanning an unbounded project root, and add `[watch] enabled` / `KIMI_CODE_WATCH` to disable watching entirely. + +- [#3869](https://github.com/MoonshotAI/kimi-code/pull/3869) [`86e0820`](https://github.com/MoonshotAI/kimi-code/commit/86e08208e3445171f6500c948234d7e3a0684324) Thanks [@sailist](https://github.com/sailist)! - Stop asking for approval of bash commands that cannot be statically analyzed in Ask When Needed permission mode. + +## 2.0.0 + +### Major Changes + +- [#3849](https://github.com/MoonshotAI/kimi-code/pull/3849) [`34ec5d2`](https://github.com/MoonshotAI/kimi-code/commit/34ec5d2a1700e540c39d2a1b6c905c9fa96af2db) Thanks [@wbxl2000](https://github.com/wbxl2000)! - Add the /desktop slash command (alias /install-desktop) and the kimi install-app subcommand to open the Kimi Code desktop app page in the browser. + +### Minor Changes + +- [#3851](https://github.com/MoonshotAI/kimi-code/pull/3851) [`faec32c`](https://github.com/MoonshotAI/kimi-code/commit/faec32c7e7c1df5d27b7060f75a2a665efb59268) Thanks [@Grapedge](https://github.com/Grapedge)! - Render mermaid code blocks as diagrams in the terminal; turn it off under /settings → Mermaid diagrams, or set `mermaid = "off"` in the `[markdown]` section of tui.toml. + +### Patch Changes + +- [#3838](https://github.com/MoonshotAI/kimi-code/pull/3838) [`f4e5822`](https://github.com/MoonshotAI/kimi-code/commit/f4e5822164800ec138f77b0f323e2374963bfe19) Thanks [@sailist](https://github.com/sailist)! - Fix an occasional crash when a running turn is canceled. + +- [#3802](https://github.com/MoonshotAI/kimi-code/pull/3802) [`c72a202`](https://github.com/MoonshotAI/kimi-code/commit/c72a20270e5078987a65e63b3741d8c778f4e02e) Thanks [@Grapedge](https://github.com/Grapedge)! - Highlight diff code blocks. + +- [#3844](https://github.com/MoonshotAI/kimi-code/pull/3844) [`0cf413f`](https://github.com/MoonshotAI/kimi-code/commit/0cf413f7759c314766ba30250a9875ac1af1185e) Thanks [@Grapedge](https://github.com/Grapedge)! - Fix a steered message appearing twice after interrupting the turn. + +- [#3848](https://github.com/MoonshotAI/kimi-code/pull/3848) [`b4d0b8a`](https://github.com/MoonshotAI/kimi-code/commit/b4d0b8a3889c1a6f0115c527341ccd2066bd180a) Thanks [@Grapedge](https://github.com/Grapedge)! - Fix @ file mentions duplicating or dropping the path when accepting a suggestion while still typing. + +- [#3828](https://github.com/MoonshotAI/kimi-code/pull/3828) [`2bb6e12`](https://github.com/MoonshotAI/kimi-code/commit/2bb6e12c7e3ecc19521d21fcffc832075ed13200) Thanks [@wbxl2000](https://github.com/wbxl2000)! - Fix duplicate user messages when steering an ongoing conversation. + +- [#3832](https://github.com/MoonshotAI/kimi-code/pull/3832) [`1c7e996`](https://github.com/MoonshotAI/kimi-code/commit/1c7e996aa8bdd7a6f32447f1d89e43c0646b41bc) Thanks [@chengluyu](https://github.com/chengluyu)! - Fix files attached while steering an ongoing conversation appearing only after a reload. + +- [#3853](https://github.com/MoonshotAI/kimi-code/pull/3853) [`bd06178`](https://github.com/MoonshotAI/kimi-code/commit/bd06178913d2cc4ebd229ecee6714081105e5ae1) Thanks [@wbxl2000](https://github.com/wbxl2000)! - Keep the original prompt visible when steering a running turn, instead of replacing it with the steered text. + +- [#3832](https://github.com/MoonshotAI/kimi-code/pull/3832) [`1c7e996`](https://github.com/MoonshotAI/kimi-code/commit/1c7e996aa8bdd7a6f32447f1d89e43c0646b41bc) Thanks [@chengluyu](https://github.com/chengluyu)! - Fix slash commands sent while steering an ongoing conversation missing from the transcript. + +- [#3837](https://github.com/MoonshotAI/kimi-code/pull/3837) [`cafd9b5`](https://github.com/MoonshotAI/kimi-code/commit/cafd9b5a65509fe57332cbc0eb1fb19f0443fb0e) Thanks [@wbxl2000](https://github.com/wbxl2000)! - Fix missing and reappearing chat messages after undoing a steered message. + +- [#3818](https://github.com/MoonshotAI/kimi-code/pull/3818) [`19ce4b3`](https://github.com/MoonshotAI/kimi-code/commit/19ce4b3f0600c846e2f28828d8169829630fc666) Thanks [@liruifengv](https://github.com/liruifengv)! - Fix /usage showing a wrong error message when no session has been created yet. + +- [#3784](https://github.com/MoonshotAI/kimi-code/pull/3784) [`5653c73`](https://github.com/MoonshotAI/kimi-code/commit/5653c739b9c0dbafd1e4b3d36edeb0fe44ec71f4) Thanks [@7Sageer](https://github.com/7Sageer)! - Images sent to Kimi models are uploaded as file references instead of inline data, and a warning is shown when media are dropped from a retried request. + +- [#3778](https://github.com/MoonshotAI/kimi-code/pull/3778) [`7d174ac`](https://github.com/MoonshotAI/kimi-code/commit/7d174ac93352ccfc835d186ac7b8185d0194e6b5) Thanks [@huangzheng2016](https://github.com/huangzheng2016)! - Limit memory growth from finished subagents. + +- [#3778](https://github.com/MoonshotAI/kimi-code/pull/3778) [`7d174ac`](https://github.com/MoonshotAI/kimi-code/commit/7d174ac93352ccfc835d186ac7b8185d0194e6b5) Thanks [@huangzheng2016](https://github.com/huangzheng2016)! - Report background subagents that time out or are stopped as cancelled instead of failed. + +- [#3846](https://github.com/MoonshotAI/kimi-code/pull/3846) [`31f1b68`](https://github.com/MoonshotAI/kimi-code/commit/31f1b6824d1900aeea71b69c824c6354a0dd9019) Thanks [@7Sageer](https://github.com/7Sageer)! - Fix OAuth login never triggering for MCP servers that allow anonymous tool discovery but reject tool calls with 401. + +- [#3784](https://github.com/MoonshotAI/kimi-code/pull/3784) [`5653c73`](https://github.com/MoonshotAI/kimi-code/commit/5653c739b9c0dbafd1e4b3d36edeb0fe44ec71f4) Thanks [@7Sageer](https://github.com/7Sageer)! - When accumulated images and videos exceed the request size budget, the oldest media are omitted from requests with a warning instead of failing. + +- [#3778](https://github.com/MoonshotAI/kimi-code/pull/3778) [`7d174ac`](https://github.com/MoonshotAI/kimi-code/commit/7d174ac93352ccfc835d186ac7b8185d0194e6b5) Thanks [@huangzheng2016](https://github.com/huangzheng2016)! - Report tools and subagents interrupted by the user as cancelled instead of aborted or failed. + +- [#3803](https://github.com/MoonshotAI/kimi-code/pull/3803) [`39a7455`](https://github.com/MoonshotAI/kimi-code/commit/39a74556a662a96293e9838663e91b31dbdc7a0b) Thanks [@kimi-agent-bot](https://github.com/kimi-agent-bot)! - The built-in browser plugin now appears as "Kimi Browser Extension" in the plugins panel, marketplace catalog, and docs, matching the product rename. + +- [#3858](https://github.com/MoonshotAI/kimi-code/pull/3858) [`95d4a9d`](https://github.com/MoonshotAI/kimi-code/commit/95d4a9d0411b18f468345717c01c40f5ac996cdc) Thanks [@liruifengv](https://github.com/liruifengv)! - Sign the Windows CLI executable with a trusted publisher certificate. + +- [#3795](https://github.com/MoonshotAI/kimi-code/pull/3795) [`a7bdabb`](https://github.com/MoonshotAI/kimi-code/commit/a7bdabbe82a089cd8631f6d613c252d96cbab639) Thanks [@Grapedge](https://github.com/Grapedge)! - Feedback surveys now appear at better times in long conversations. + +- [#3833](https://github.com/MoonshotAI/kimi-code/pull/3833) [`8660a07`](https://github.com/MoonshotAI/kimi-code/commit/8660a07b3a0b7984971371d77f316e802e5e83fe) Thanks [@tpoisonooo](https://github.com/tpoisonooo)! - Fix tower worker cards wrongly showing "completed" during rework. + +- [#3840](https://github.com/MoonshotAI/kimi-code/pull/3840) [`9c5e9b4`](https://github.com/MoonshotAI/kimi-code/commit/9c5e9b48634be1dfae921fb48f9afc3a23ffd1ad) Thanks [@chengluyu](https://github.com/chengluyu)! - Fix a Windows crash when a project or config folder is opened through a short 8.3 path. + +## 0.43.1 + +### Patch Changes + +- [#3780](https://github.com/MoonshotAI/kimi-code/pull/3780) [`486dcd2`](https://github.com/MoonshotAI/kimi-code/commit/486dcd26c76f2854fc351515a45d8f0fc2d31ed6) Thanks [@Grapedge](https://github.com/Grapedge)! - Update the terminal UI engine, fixing link colors in wrapped markdown tables and `@` file-completion ordering, and adding native clipboard support on Linux X11. + +- [#3776](https://github.com/MoonshotAI/kimi-code/pull/3776) [`48fad6e`](https://github.com/MoonshotAI/kimi-code/commit/48fad6e7d9cd00511c6118e84ae6d22dafb96be9) Thanks [@huangzheng2016](https://github.com/huangzheng2016)! - Fix memory not being released when subagent scopes are disposed. + +- [#3777](https://github.com/MoonshotAI/kimi-code/pull/3777) [`dc76b0c`](https://github.com/MoonshotAI/kimi-code/commit/dc76b0caaa6e0aa406bf87957e6b5f8aca722221) Thanks [@huangzheng2016](https://github.com/huangzheng2016)! - Fix progressively slower rendering on each round of large agent swarm runs. + +- [#3631](https://github.com/MoonshotAI/kimi-code/pull/3631) [`1336be3`](https://github.com/MoonshotAI/kimi-code/commit/1336be38777959cc558fed2b51dc53caa07da5db) Thanks [@wbxl2000](https://github.com/wbxl2000)! - Stop returning deleted sessions from global search before the search index catches up. + +- [#3775](https://github.com/MoonshotAI/kimi-code/pull/3775) [`f248624`](https://github.com/MoonshotAI/kimi-code/commit/f2486241fb5e268d7a43cb589b5c2d59af8db571) Thanks [@huangzheng2016](https://github.com/huangzheng2016)! - Reduce event-loop stalls and GC churn in sessions with many concurrent subagents. + +- [#3779](https://github.com/MoonshotAI/kimi-code/pull/3779) [`82ec469`](https://github.com/MoonshotAI/kimi-code/commit/82ec469e47eed52feb664fd361e3d8dcb774596e) Thanks [@huangzheng2016](https://github.com/huangzheng2016)! - Fix pressing Ctrl+C while subagents are running exiting the whole CLI instead of just interrupting the subagents. + +- [#3752](https://github.com/MoonshotAI/kimi-code/pull/3752) [`0725ef1`](https://github.com/MoonshotAI/kimi-code/commit/0725ef1ce0a7f9c15db7ffc042f57308657b3ee6) Thanks [@tpoisonooo](https://github.com/tpoisonooo)! - Fix tower mode mistaking newly spawned agents for previous sessions' roster entries. + ## 0.43.0 ### Minor Changes diff --git a/apps/kimi-code/dist-web/assets/CodeBlockNode-ClI5Zc7C.js b/apps/kimi-code/dist-web/assets/CodeBlockNode-ClI5Zc7C.js deleted file mode 100644 index 1afaa9e44..000000000 --- a/apps/kimi-code/dist-web/assets/CodeBlockNode-ClI5Zc7C.js +++ /dev/null @@ -1,29 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-Brp-8WTi.js","assets/index-7SHxad1A.js","assets/index-CRa2d3RK.css"])))=>i.map(i=>d[i]); -import{bR as xi,cb as Si,bQ as Ho,M as pl,bl as Ci,af as fl,bY as Mi,cc as Bi,b$ as hl,aU as $,c0 as Ei,c1 as Fi,c2 as Pi,a0 as Mo,aD as No,bE as ue,az as Li,cd as wn,c8 as mt,aI as To,aL as Y,s as Sn,aw as Vt,au as pt,bk as J,ce as Bo,u as ie,I as Ro,A as Oi,bJ as Gt,aY as ht,bL as vl,v as w,t as we,bB as ml,bb as Be,q as b,b7 as $i,cf as zi,cg as bn,ch as Hi,ci as Ni,cj as Ti,ck as Ri,as as A,cl as Eo,cm as Di,cn as Ai,co as Wt,cp as Fo,bO as Do,T as ji,G as qi,F as Po,g as Wi,c7 as _i,b_ as Ii}from"./index-7SHxad1A.js";import{i as fe,t as kn}from"./safeRaf-DGuzXxDK.js";var xn=(k,M,y)=>new Promise((te,ne)=>{var be=P=>{try{r(y.next(P))}catch(H){ne(H)}},ke=P=>{try{r(y.throw(P))}catch(H){ne(H)}},r=P=>P.done?te(P.value):Promise.resolve(P.value).then(be,ke);r((y=y.apply(k,M)).next())});let Lo=!1,_t=null,It=null,Ut=null;function Ui(){return xn(this,null,function*(){if(Ut)return Ut;Ut=xn(null,null,function*(){if(!It)try{if(It=(function(k){const M=k;if(typeof M?.useMonaco=="function")return M;const y=k?.default;return typeof y?.useMonaco=="function"?y:null})(yield xi(()=>import("./index-Brp-8WTi.js"),__vite__mapDeps([0,1,2]))),!It)return null}catch{return null}try{return yield(function(k){return xn(this,null,function*(){return Lo?void 0:_t||(_t=xn(null,null,function*(){const y=globalThis?.MonacoEnvironment;y&&(typeof y.getWorker=="function"||typeof y.getWorkerUrl=="function")||typeof k?.preloadMonacoWorkers!="function"||(yield k.preloadMonacoWorkers()),Lo=!0}).finally(()=>{_t=null}),_t)})})(It),Si(),It}catch{return null}});try{return yield Ut}finally{Ut=null}})}var Vi=Object.defineProperty,Gi=Object.defineProperties,Ji=Object.getOwnPropertyDescriptors,Oo=Object.getOwnPropertySymbols,Yi=Object.prototype.hasOwnProperty,Qi=Object.prototype.propertyIsEnumerable,$o=(k,M,y)=>M in k?Vi(k,M,{enumerable:!0,configurable:!0,writable:!0,value:y}):k[M]=y,U=(k,M)=>{for(var y in M||(M={}))Yi.call(M,y)&&$o(k,y,M[y]);if(Oo)for(var y of Oo(M))Qi.call(M,y)&&$o(k,y,M[y]);return k},Me=(k,M)=>Gi(k,Ji(M)),j=(k,M,y)=>new Promise((te,ne)=>{var be=P=>{try{r(y.next(P))}catch(H){ne(H)}},ke=P=>{try{r(y.throw(P))}catch(H){ne(H)}},r=P=>P.done?te(P.value):Promise.resolve(P.value).then(be,ke);r((y=y.apply(k,M)).next())});const Xi={key:0,class:"code-block-header flex justify-between items-center border-b px-[var(--ms-inset-panel-x)] py-[var(--ms-inset-panel-y)] border-[var(--code-border)] bg-[var(--code-header-bg)] text-[var(--code-fg)]"},Ki={class:"flex items-center gap-0.5"},Zi=["aria-label"],er={class:"code-diff-stat removed"},tr={class:"code-diff-stat added"},nr=["aria-label"],lr={key:0,xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},or={key:1,xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},ir=["aria-pressed"],rr={key:3,class:"relative"},ar=["aria-expanded"],ur=["disabled"],sr=["disabled"],dr=["disabled"],cr={key:0,xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},fr={key:1,xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},vr={class:"code-loading-placeholder"},mr={class:"sr-only","aria-live":"polite",role:"status"},pr=pl({__name:"CodeBlockShell",props:{showHeader:{type:Boolean,default:!0},showCollapseButton:{type:Boolean,default:!0},showFontSizeButtons:{type:Boolean,default:!0},enableFontSizeControl:{type:Boolean,default:!0},showCopyButton:{type:Boolean,default:!0},showExpandButton:{type:Boolean,default:!0},showPreviewButton:{type:Boolean,default:!0},showTooltips:{type:Boolean,default:!0},isDark:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},stream:{type:Boolean,default:!1},isCollapsed:{type:Boolean,default:!1},isExpanded:{type:Boolean,default:!1},copyText:{type:Boolean,default:!1},isPreviewable:{type:Boolean,default:!1},codeFontSize:{},codeFontMin:{},codeFontMax:{},defaultCodeFontSize:{},fontBaselineReady:{type:Boolean,default:!1},diffStats:{},diffStatsAriaLabel:{}},emits:["toggleCollapse","decreaseFont","resetFont","increaseFont","copy","toggleExpand","preview"],setup(k,{emit:M}){const y=k,te=M,ne=$(!1),be=$(null),ke=$(null);function r(){mt(!0),ne.value=!ne.value,ne.value&&document.addEventListener("click",H,{once:!0,capture:!0})}function P(){mt(!0),ne.value=!1}function H(Q){var v,z;const wt=Q.target;(v=be.value)!=null&&v.contains(wt)||(z=ke.value)!=null&&z.contains(wt)?document.addEventListener("click",H,{once:!0,capture:!0}):P()}const re=b(()=>y.showFontSizeButtons&&y.enableFontSizeControl||y.showExpandButton||y.isPreviewable&&y.showPreviewButton),{t:T}=hl(),gt=b(()=>y.showTooltips!==!1);function Ge(Q,v){gt.value&&_i(Q.currentTarget,v,"top",!1,void 0,y.isDark)}function Ee(){gt.value&&mt()}function yt(Q){Ge(Q,y.copyText?T("common.copied")||"Copied":T("common.copy")||"Copy")}const gl=b(()=>{var Q,v;return!!Number.isFinite(y.codeFontSize)&&((Q=y.codeFontSize)!=null?Q:0)<=((v=y.codeFontMin)!=null?v:0)}),Jt=b(()=>!y.fontBaselineReady||y.codeFontSize===y.defaultCodeFontSize),Yt=b(()=>{var Q,v;return!!Number.isFinite(y.codeFontSize)&&((Q=y.codeFontSize)!=null?Q:0)>=((v=y.codeFontMax)!=null?v:100)});return(Q,v)=>(Y(),ie(Po,null,[y.showHeader?(Y(),ie("div",Xi,[ht(Q.$slots,"header-left"),ht(Q.$slots,"header-right",{},()=>[w("div",Ki,[k.diffStats?(Y(),ie("div",{key:0,class:"code-diff-stats","aria-label":k.diffStatsAriaLabel},[w("span",er,"-"+Be(k.diffStats.removed),1),w("span",tr,"+"+Be(k.diffStats.added),1)],8,Zi)):we("",!0),y.showCopyButton?(Y(),ie("button",{key:1,type:"button",class:"code-action-btn inline-flex items-center justify-center p-[var(--ms-action-btn-padding)] rounded leading-none shrink-0 cursor-pointer text-[var(--code-action-fg)] hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] active:scale-[0.96] disabled:opacity-40 disabled:cursor-not-allowed transition-colors","aria-label":k.copyText?J(T)("common.copied")||"Copied":J(T)("common.copy")||"Copy",onClick:v[0]||(v[0]=z=>te("copy")),onMouseenter:v[1]||(v[1]=z=>yt(z)),onFocus:v[2]||(v[2]=z=>yt(z)),onMouseleave:Ee,onBlur:Ee},[k.copyText?(Y(),ie("svg",or,[...v[14]||(v[14]=[w("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M20 6L9 17l-5-5"},null,-1)])])):(Y(),ie("svg",lr,[...v[13]||(v[13]=[w("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[w("rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2"}),w("path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"})],-1)])]))],40,nr)):we("",!0),y.showCollapseButton?(Y(),ie("button",{key:2,type:"button",class:"code-action-btn inline-flex items-center justify-center p-[var(--ms-action-btn-padding)] rounded leading-none shrink-0 cursor-pointer text-[var(--code-action-fg)] hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] active:scale-[0.96] disabled:opacity-40 disabled:cursor-not-allowed transition-colors","aria-pressed":k.isCollapsed,onClick:v[3]||(v[3]=z=>te("toggleCollapse")),onMouseenter:v[4]||(v[4]=z=>Ge(z,k.isCollapsed?J(T)("common.expand")||"Expand":J(T)("common.collapse")||"Collapse")),onFocus:v[5]||(v[5]=z=>Ge(z,k.isCollapsed?J(T)("common.expand")||"Expand":J(T)("common.collapse")||"Collapse")),onMouseleave:Ee,onBlur:Ee},[(Y(),ie("svg",{style:Vt({rotate:k.isCollapsed?"0deg":"90deg"}),xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},[...v[15]||(v[15]=[w("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m9 18l6-6l-6-6"},null,-1)])],4))],40,ir)):we("",!0),re.value?(Y(),ie("div",rr,[w("button",{ref_key:"moreBtnRef",ref:ke,type:"button",class:"code-action-btn inline-flex items-center justify-center p-[var(--ms-action-btn-padding)] rounded leading-none shrink-0 cursor-pointer text-[var(--code-action-fg)] hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] active:scale-[0.96] transition-colors","aria-expanded":ne.value,"aria-haspopup":"true",onClick:Do(r,["stop"]),onMouseenter:v[6]||(v[6]=z=>Ge(z,J(T)("common.more")||"More")),onFocus:v[7]||(v[7]=z=>Ge(z,J(T)("common.more")||"More")),onMouseleave:Ee,onBlur:Ee},[...v[16]||(v[16]=[qi('',1)])],40,ar),Ro(Wi,{name:"code-menu"},{default:Gt(()=>[ne.value?(Y(),ie("div",{key:0,ref_key:"moreMenuRef",ref:be,class:"code-more-menu min-w-[10rem] p-1 bg-[hsl(var(--ms-popover))] text-[hsl(var(--ms-popover-foreground))] border border-[var(--code-border)] shadow-[var(--ms-shadow-popover)]",role:"menu"},[y.showFontSizeButtons&&y.enableFontSizeControl?(Y(),ie(Po,{key:0},[w("button",{type:"button",role:"menuitem",class:"flex items-center gap-2 w-full py-1.5 px-2 rounded text-xs text-[var(--code-action-fg)] cursor-pointer whitespace-nowrap hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",disabled:gl.value,onClick:v[8]||(v[8]=z=>{J(mt)(!0),te("decreaseFont")})},[v[17]||(v[17]=w("svg",{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},[w("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 12h14"})],-1)),w("span",null,Be(J(T)("common.fontSmaller")||"Font size −"),1)],8,ur),w("button",{type:"button",role:"menuitem",class:"flex items-center gap-2 w-full py-1.5 px-2 rounded text-xs text-[var(--code-action-fg)] cursor-pointer whitespace-nowrap hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",disabled:Jt.value,onClick:v[9]||(v[9]=z=>{J(mt)(!0),te("resetFont")})},[v[18]||(v[18]=w("svg",{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},[w("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[w("path",{d:"M3 12a9 9 0 1 0 9-9a9.75 9.75 0 0 0-6.74 2.74L3 8"}),w("path",{d:"M3 3v5h5"})])],-1)),w("span",null,Be(J(T)("common.fontReset")||"Font size reset"),1)],8,sr),w("button",{type:"button",role:"menuitem",class:"flex items-center gap-2 w-full py-1.5 px-2 rounded text-xs text-[var(--code-action-fg)] cursor-pointer whitespace-nowrap hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",disabled:Yt.value,onClick:v[10]||(v[10]=z=>{J(mt)(!0),te("increaseFont")})},[v[19]||(v[19]=w("svg",{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},[w("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 12h14m-7-7v14"})],-1)),w("span",null,Be(J(T)("common.fontLarger")||"Font size +"),1)],8,dr)],64)):we("",!0),y.showExpandButton?(Y(),ie("button",{key:1,type:"button",role:"menuitem",class:"flex items-center gap-2 w-full py-1.5 px-2 rounded text-xs text-[var(--code-action-fg)] cursor-pointer whitespace-nowrap hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] transition-colors",onClick:v[11]||(v[11]=z=>{P(),te("toggleExpand")})},[k.isExpanded?(Y(),ie("svg",cr,[...v[20]||(v[20]=[w("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m14 10l7-7m-1 7h-6V4M3 21l7-7m-6 0h6v6"},null,-1)])])):(Y(),ie("svg",fr,[...v[21]||(v[21]=[w("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 3h6v6m0-6l-7 7M3 21l7-7m-1 7H3v-6"},null,-1)])])),w("span",null,Be(k.isExpanded?J(T)("common.collapse")||"Collapse":J(T)("common.expand")||"Expand"),1)])):we("",!0),k.isPreviewable&&y.showPreviewButton?(Y(),ie("button",{key:2,type:"button",role:"menuitem",class:"flex items-center gap-2 w-full py-1.5 px-2 rounded text-xs text-[var(--code-action-fg)] cursor-pointer whitespace-nowrap hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] transition-colors",onClick:v[12]||(v[12]=z=>{P(),te("preview")})},[v[22]||(v[22]=w("svg",{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},[w("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[w("path",{d:"M2.062 12.348a1 1 0 0 1 0-.696a10.75 10.75 0 0 1 19.876 0a1 1 0 0 1 0 .696a10.75 10.75 0 0 1-19.876 0"}),w("circle",{cx:"12",cy:"12",r:"3"})])],-1)),w("span",null,Be(J(T)("common.preview")||"Preview"),1)])):we("",!0)],512)):we("",!0)]),_:1})])):we("",!0)])])])):we("",!0),vl(w("div",{class:pt(["code-block-shell-content",{"code-block-shell-content--collapsed":k.isCollapsed}])},[ht(Q.$slots,"default")],2),[[ml,!!k.stream||!k.loading]]),vl(w("div",vr,[ht(Q.$slots,"loading",{},()=>[v[23]||(v[23]=w("div",{class:"loading-skeleton"},[w("div",{class:"skeleton-line"}),w("div",{class:"skeleton-line"}),w("div",{class:"skeleton-line short"})],-1))])],512),[[ml,!k.stream&&k.loading]]),w("span",mr,Be(k.copyText?J(T)("common.copied")||"Copied":""),1)],64))}}),hr={class:"html-preview-frame__header"},gr={class:"html-preview-frame__title"},yr={class:"html-preview-frame__label"},wr=["sandbox","srcdoc"],br=Ho(pl({__name:"HtmlPreviewFrame",props:{code:{},isDark:{type:Boolean},htmlPreviewAllowScripts:{type:Boolean},htmlPreviewSandbox:{},onClose:{type:Function},title:{}},setup(k){const M=k,y=import.meta!==void 0&&!1;let te=null;const{t:ne}=hl(),be=b(()=>{const P=M.code||"",H=P.trim().toLowerCase();return H.startsWith(" - - - - - - - - ${P} - -`}),ke=b(()=>{return P=M.htmlPreviewSandbox,H=M.htmlPreviewAllowScripts,typeof P=="string"?((function(re){if(!y||typeof console>"u"||te===re)return;const T=(function(gt){return new Set(gt.trim().toLowerCase().split(/\s+/).filter(Boolean))})(re);T.has("allow-scripts")&&T.has("allow-same-origin")&&(te=re,console.warn("[markstream-vue] htmlPreviewSandbox contains both allow-scripts and allow-same-origin. Use this only for fully trusted content served from an isolated origin."))})(P),P):P!==void 0?"":H===!0?"allow-scripts":"";var P,H});function r(P){var H;P.key!=="Escape"&&P.key!=="Esc"||(H=M.onClose)==null||H.call(M)}return No(()=>{typeof window<"u"&&window.addEventListener("keydown",r)}),To(()=>{typeof window<"u"&&window.removeEventListener("keydown",r)}),(P,H)=>(Y(),Sn(ji,{to:"body"},[w("div",{class:pt(["markstream-vue",{dark:M.isDark}])},[w("div",{class:"html-preview-frame__backdrop",onClick:H[2]||(H[2]=re=>{var T;return(T=M.onClose)==null?void 0:T.call(M)})},[w("div",{class:"html-preview-frame",onClick:H[1]||(H[1]=Do(()=>{},["stop"]))},[w("div",hr,[w("div",gr,[H[3]||(H[3]=w("span",{class:"html-preview-frame__dot"},null,-1)),w("span",yr,Be(M.title||J(ne)("common.preview")||"Preview"),1)]),w("button",{type:"button",class:"html-preview-frame__close",onClick:H[0]||(H[0]=re=>{var T;return(T=M.onClose)==null?void 0:T.call(M)})}," × ")]),w("iframe",{class:"html-preview-frame__iframe",sandbox:ke.value,referrerpolicy:"no-referrer",srcdoc:be.value},null,8,wr)])])],2)]))}}),[["__scopeId","data-v-24e66176"]]),kr=["data-markstream-enhanced","data-markstream-enhancement-state","data-markstream-code-block-state","data-markstream-pending","data-markstream-viewport-pending"],xr={class:"code-header-main"},Sr=["innerHTML"],Cr={class:"code-header-copy"},Mr={class:"code-header-title"},Br={key:0,class:"code-header-caption"},Er=["data-markstream-host-hidden"],zo="__markstreamMonacoPassiveTouchState__",Lr=Ho(pl({__name:"CodeBlockNode",props:{node:{},isDark:{type:Boolean,default:!1},loading:{type:Boolean,default:!0},stream:{type:Boolean,default:!0},theme:{},darkTheme:{default:"vitesse-dark"},lightTheme:{default:"vitesse-light"},isShowPreview:{type:Boolean,default:!0},monacoOptions:{},enableFontSizeControl:{type:Boolean,default:!0},minWidth:{default:void 0},maxWidth:{default:void 0},themes:{},showPreviewButton:{type:Boolean,default:!0},showCollapseButton:{type:Boolean,default:!0},showFontSizeButtons:{type:Boolean,default:!0},showTooltips:{type:Boolean},htmlPreviewAllowScripts:{type:Boolean},htmlPreviewSandbox:{},customId:{},showHeader:{type:Boolean,default:!0},showCopyButton:{type:Boolean,default:!0},showExpandButton:{type:Boolean,default:!0},estimatedHeightPx:{},estimatedContentHeightPx:{},estimatedDiffInline:{type:Boolean}},emits:["previewCode","copy"],setup(k,{emit:M}){var y,te,ne,be,ke;const r=k,P=M,H=Ci(),re=fl(Mi,null),T=fl("markstreamHostScrollManaged",null),gt=fl(Bi,void 0),Ge=b(()=>Ii(r,H)),Ee=new Set;function yt(e){return j(this,null,function*(){var t;if(typeof window>"u")return yield e();const n=(t=window.Element)==null?void 0:t.prototype,l=n?.addEventListener;if(!n||!l)return yield e();const o=(function(){const s=window,u=s[zo];if(u)return u;const a={depth:0,original:null};return s[zo]=a,a})();let i=null;try{o.depth===0&&(o.original=l,n.addEventListener=function(u,a,c){var d;const f=(d=o.original)!=null?d:l;return u==="touchstart"&&(function(p,h){if(!p)return!1;const x=p;return!(typeof x.closest!="function"||!x.closest(".monaco-editor, .monaco-diff-editor")||h&&typeof h=="object"&&"passive"in h)})(this,c)?f.call(this,u,a,(function(p){return p==null?{passive:!0}:typeof p=="boolean"?{capture:p,passive:!0}:typeof p=="object"?"passive"in p?p:Me(U({},p),{passive:!0}):{passive:!0}})(c)):f.call(this,u,a,c)}),o.depth++;let s=!1;i=()=>{s||(s=!0,Ee.delete(i),o.depth=Math.max(0,o.depth-1),o.depth===0&&o.original&&n.addEventListener!==o.original&&(n.addEventListener=o.original,o.original=null))},Ee.add(i)}catch{return yield e()}try{return yield e()}finally{i?.()}})}function gl(e,t){}const Jt=Mo(),Yt=b(()=>{const e=Jt?.vnode.props;return!(!e||!e.onPreviewCode&&!e["onPreview-code"])}),{t:Q}=hl(),v=$(null),z=$(null),wt=$(!1),xe=$(ao(r.node.language,r.node.code,Ve())),Cn=b(()=>Eo(xe.value)),Fe=b(()=>Cn.value==="plaintext"?"text":Cn.value),Mn=b(()=>Cn.value==="plaintext"),Pe=$(!1),Se=$(!1),X=$(!1),Ce=$(!1),q=$(!1),bt=$(!1);let B=!1,kt=null,Ft=null,Je=null,Ye=0,Qe=!1,We="";const _e=$(null),ve=$(null);let Bn=null,En=0,Fn=!1;const Ao=Ei(),Qt=Fi(),Pn=Pi(),Ie=$i(null),Z=$(typeof window>"u"||!Pn.value),jo=(ne=(te=(y=Mo())==null?void 0:y.vnode.el)==null?void 0:te.textContent)!=null?ne:"",qo=typeof window<"u"&&String((be=r.node.code)!=null?be:"").length>0&&jo.includes(String(r.node.code)),yl=$(!qo);No(()=>{yl.value=!0}),typeof window<"u"&&ue([()=>z.value,Pn],([e,t],n,l)=>{var o,i,s;if((o=Ie.value)==null||o.destroy(),Ie.value=null,!t||Z.value)return void(Z.value=!0);if(!e)return void(Z.value=!1);let u=!0;const a=(s=(i=Qt?.value.heavyBlockMargin)!=null?i:Qt?.value.rootMargin)!=null?s:"0px",c=Ao(e,{rootMargin:a,allowIdle:!1});Ie.value=c,Z.value=Z.value||c.isVisible.value,c.whenVisible.then(()=>{u&&Ie.value===c&&(Z.value=!0)}).catch(()=>{}),l(()=>{u=!1,c.destroy(),Ie.value===c&&(Ie.value=null)})},{immediate:!0}),Li(()=>{var e;B=!0;for(const t of Array.from(Ee))t();(function(){const t=We;re&&t&&(We="",re.markSettled(t))})(),(e=Ie.value)==null||e.destroy(),Ie.value=null});let se=null,Xt=null,Ln=()=>{},Kt=()=>{},xt=()=>null,de=()=>({getModel:()=>({getLineCount:()=>1}),getOption:()=>14,updateOptions:()=>{}}),V=()=>({getModel:()=>({getLineCount:()=>1}),getOption:()=>14,updateOptions:()=>{}}),On=()=>{},Xe=()=>{},$n=()=>{},Ke=null,ze=null,Pt=null,Lt=null,wl=()=>{var e;return String((e=r.node.language)!=null?e:"plaintext")},zn=()=>j(null,null,function*(){}),Hn=!1,Zt=null;const He=[],Nn=[];let Ne=null;const m=b(()=>zi(r.node)),Ze=$({removed:0,added:0}),Wo=b(()=>`-${Ze.value.removed} +${Ze.value.added}`),bl=Object.freeze(Me(U({},Wt),{enabled:!1,revealLineCount:0}));function kl(e){var t,n,l;const o=((n=(t=z.value)==null?void 0:t.getBoundingClientRect)==null?void 0:n.call(t).width)||((l=z.value)==null?void 0:l.clientWidth)||(typeof window>"u"?0:window.innerWidth);return Di(e,o)}function Ot(e,t){return{original:en(e),updated:en(t)}}function en(e){return String(e??"").replace(/\r\n$|\n$|\r$/,"")}function $t(e){var t;return String((t=e?.message)!=null?t:e).includes("no diff result available")}function St(){if(!$e())try{const e=$n();e&&typeof e.catch=="function"&&e.catch(t=>{$t(t)})}catch(e){$t(e)}}const ae=b(()=>{var e,t,n,l;const o=r.monacoOptions?U({},r.monacoOptions):{};if(!m.value)return U({lineDecorationsWidth:0,lineNumbersMinChars:2,glyphMargin:!1},o);const i=o.diffHideUnchangedRegions===void 0?U({},Wt):bn(o.diffHideUnchangedRegions),s=o.hideUnchangedRegions===void 0?void 0:bn(o.hideUnchangedRegions),u=r.stream!==!1&&r.loading!==!1,a=u?U({},bl):i,c=u?U({},bl):s,d=(function(g){return g.diffWordWrap!==void 0?g.diffWordWrap:"off"})(o),f=U({},(e=o.experimental)!=null?e:{}),p=(t=o.diffUnchangedRegionStyle)!=null?t:"line-info",h=(function(g){const N=g.scrollbar&&typeof g.scrollbar=="object"?g.scrollbar:{};return U(Me(U({},N),{verticalScrollbarSize:0,horizontalScrollbarSize:0}),kl(g)?{horizontal:"hidden"}:{})})(o),x={maxComputationTime:0,diffAlgorithm:"legacy",ignoreTrimWhitespace:!1,renderIndicators:!0,diffUpdateThrottleMs:120,renderLineHighlight:"none",renderLineHighlightOnlyWhenFocus:!0,selectionHighlight:!1,occurrencesHighlight:"off",matchBrackets:"never",lineDecorationsWidth:4,lineNumbersMinChars:2,glyphMargin:!1,padding:{top:0,bottom:0},minimap:{enabled:!1},renderOverviewRuler:!1,overviewRulerBorder:!1,hideCursorInOverviewRuler:!0,scrollBeyondLastLine:!1,diffWordWrap:d,renderSideBySide:(n=o.renderSideBySide)==null||n,diffHideUnchangedRegions:a,useInlineViewWhenSpaceIsLimited:(l=o.useInlineViewWhenSpaceIsLimited)!=null&&l,diffLineStyle:"background",diffAppearance:"auto",diffUnchangedRegionStyle:p,diffHunkActionsOnHover:!1,experimental:f};return Me(U(Me(U(U({},x),o),{experimental:f}),c===void 0?{}:{hideUnchangedRegions:c}),{diffHideUnchangedRegions:a,diffWordWrap:d,scrollbar:h})}),Tn=b(()=>(r.theme!==void 0?!po(r.theme):ho(r.darkTheme,r.lightTheme))?(function(e){var t,n;if(e&&typeof e=="object"&&((t=e.colors)!=null&&t["editor.background"])){const o=el(e.colors["editor.background"]);if(o!=null)return o<128}const l=((n=rt(e))!=null?n:"").toLowerCase();return l?["dark","night","moon","black","dracula","mocha","frappe","macchiato","palenight","ocean","poimandres","monokai","laserwave","tokyo","slack-dark","rose-pine","github-dark","material-theme","one-dark","catppuccin-mocha","catppuccin-frappe","catppuccin-macchiato"].some(o=>l.includes(o))&&!["light","latte","dawn","lotus"].some(o=>l.includes(o)):!!r.isDark})(Dt()):!!r.isDark),Rn=b(()=>{var e;if(!m.value)return Tn.value?"dark":"light";const t=(e=ae.value)==null?void 0:e.diffAppearance;return t==="light"||t==="dark"?t:Tn.value?"dark":"light"}),xl=b(()=>m.value?Rn.value==="dark":Tn.value),zt=b(()=>m.value?"diff":"single"),Sl=$(zt.value),ge=$(!1),R=$(!1),Ht=$(!1),me=$(!1),et=$(null),Dn=$(0),Cl=$(0),tn=$(!1);let Nt=null,tt=!1,An=null,jn=!1;const qn=b(()=>{var e,t,n;if(m.value){const o=(e=ae.value)==null?void 0:e.diffWordWrap;if(o==="inherit"){const i=(t=r.monacoOptions)==null?void 0:t.wordWrap;return i==null||String(i)!=="off"}return o==="on"}const l=(n=r.monacoOptions)==null?void 0:n.wordWrap;return l==null||String(l)!=="off"}),Ue=b(()=>{var e;return!!m.value&&kl((e=ae.value)!=null?e:{})}),Wn=b(()=>{var e;const t=(e=r.monacoOptions)==null?void 0:e.diffHideUnchangedRegions;return t===void 0?U({},Wt):bn(t)});function Ml(e){return T?.value===!0||!!e&&(!!e.closest('[data-markstream-virtual-timeline="1"], .markstream-virtual-timeline')||!!e.closest(".vue-recycle-scroller, [data-virtualizer], [data-virtual-scroll-root]"))}const _o=b(()=>Ml(z.value)),Te=b(()=>!(ge.value||!me.value&&R.value)),Bl=b(()=>Te.value),Io=b(()=>Te.value&&!Ht.value),Uo=b(()=>!ge.value&&!me.value&&Te.value),Vo=b(()=>R.value&&!ge.value?"ready":me.value?"fallback":"pending"),nn=$(!1),Re=b(()=>en(r.node.code)),El=b(()=>m.value?r.node.diff===!0?r.node:Me(U({},r.node),{diff:!0}):Re.value===r.node.code?r.node:Me(U({},r.node),{code:Re.value})),pe=$(typeof((ke=r.monacoOptions)==null?void 0:ke.fontSize)=="number"?r.monacoOptions.fontSize:Number.NaN),W=$(pe.value),_n=$(null),ln=$(null),on=$(null),Go=b(()=>{const e=pe.value,t=W.value;return typeof e=="number"&&Number.isFinite(e)&&e>0&&typeof t=="number"&&Number.isFinite(t)&&t>0}),rn=b(()=>{var e;const t=_n.value;if(typeof t=="number"&&Number.isFinite(t)&&t>0)return t;const n=(e=r.monacoOptions)==null?void 0:e.fontSize;if(typeof n=="number"&&Number.isFinite(n)&&n>0)return n;const l=W.value;return typeof l=="number"&&Number.isFinite(l)&&l>0?l:12}),Jo=b(()=>{var e;const t=ln.value;if(typeof t=="number"&&Number.isFinite(t)&&t>0)return t;const n=(e=r.monacoOptions)==null?void 0:e.lineHeight;return typeof n=="number"&&Number.isFinite(n)&&n>0?n:rn.value===12?18:Math.max(12,Math.round(1.5*rn.value))}),an=b(()=>Jo.value),Fl=b(()=>{var e;const t=(e=r.monacoOptions)==null?void 0:e.tabSize;return typeof t=="number"&&Number.isFinite(t)&&t>0?t:4}),un=b(()=>{var e;const t=(e=r.monacoOptions)==null?void 0:e.padding,n=m.value?0:8;return{top:typeof t?.top=="number"&&Number.isFinite(t.top)&&t.top>=0?t.top:n,bottom:typeof t?.bottom=="number"&&Number.isFinite(t.bottom)&&t.bottom>=0?t.bottom:n}}),sn=b(()=>{const e=r.estimatedContentHeightPx;return typeof e=="number"&&Number.isFinite(e)&&e>0?e:null});function dn(e){if(e==null)return null;const t=Math.ceil(e);return!Number.isFinite(t)||t<=0?null:Math.min(t,Math.ceil(Mt()))}function In(){return!m.value&&r.stream!==!1&&r.loading!==!1}const Pl=b(()=>m.value?null:sn.value==null||In()?Math.ceil((e=>{const t=String(e??"");return t?Math.max(1,t.split(/\r\n|\n|\r/).length):1})(Re.value)*an.value+1):null),Ll=b(()=>{if(m.value)return null;const e=sn.value;return e==null||In()?dn(Pl.value):dn(e)}),Yo=b(()=>{const e=r.estimatedHeightPx;return typeof e=="number"&&Number.isFinite(e)&&e>0?e:null}),Un=$(null);function nt(){const e=Un.value;return typeof e=="number"&&Number.isFinite(e)&&e>0?Math.round(e):null}const Vn=b(()=>{const e=nt();return e??(!m.value&&tn.value?null:Te.value||!R.value?Ll.value:null)});function Ol(e){const t=e?"hsl(152 42% 60%)":"var(--diff-added-fg)",n=e?"hsl(0 58% 58%)":"var(--diff-removed-fg)",l=e?"hsl(152 42% 60% / 0.18)":"var(--diff-added-bg)",o=e?"hsl(0 58% 58% / 0.18)":"var(--diff-removed-bg)",i=e?"hsl(152 42% 60% / 0.28)":"var(--diff-added-inline-bg)",s=e?"hsl(0 58% 58% / 0.28)":"var(--diff-removed-inline-bg)",u=`linear-gradient(90deg, ${t} 0 4px, transparent 4px 100%)`,a=`linear-gradient(90deg, ${n} 0 4px, transparent 4px 100%)`,c=e?"hsl(0 0% 7% / 0.98)":"hsl(var(--ms-muted) / 0.45)",d="var(--markstream-code-layout-character-width, 1ch)",f=`calc(${d} + ${d})`,p=`calc(${d} + ${d} + ${d} + ${d} + ${d} + 2px)`,h=`calc(${p} + ${d})`;return{"--markstream-diff-line-number-bg":c,"--markstream-diff-added-fg":t,"--markstream-diff-removed-fg":n,"--markstream-diff-added-line":l,"--markstream-diff-removed-line":o,"--markstream-diff-added-line-fill":l,"--markstream-diff-removed-line-fill":o,"--markstream-diff-added-gutter":u,"--markstream-diff-removed-gutter":a,"--markstream-diff-added-inline":i,"--markstream-diff-removed-inline":s,"--stream-monaco-added-fg":t,"--stream-monaco-removed-fg":n,"--stream-monaco-added-line":l,"--stream-monaco-removed-line":o,"--stream-monaco-added-line-fill":l,"--stream-monaco-removed-line-fill":o,"--stream-monaco-added-gutter":u,"--stream-monaco-removed-gutter":a,"--stream-monaco-added-inline":i,"--stream-monaco-removed-inline":s,"--stream-monaco-gutter-marker-width":"4px","--stream-monaco-gutter-gap":"1ch","--stream-monaco-line-number-left":"0px","--stream-monaco-line-number-width":f,"--stream-monaco-line-number-padding-left":f,"--stream-monaco-line-number-padding-right":d,"--stream-monaco-line-number-separator-width":"2px","--stream-monaco-layout-character-width":d,"--stream-monaco-line-number-box-width":p,"--stream-monaco-line-number-gap-to-code":d,"--stream-monaco-line-number-bg":c,"--stream-monaco-diff-code-gap":d,"--stream-monaco-diff-code-padding":"0px","--stream-monaco-original-margin-width":h,"--stream-monaco-original-scrollable-left":h,"--stream-monaco-original-scrollable-width":`calc(100% - ${h})`,"--stream-monaco-modified-margin-width":h,"--stream-monaco-modified-scrollable-left":h,"--stream-monaco-modified-scrollable-width":`calc(100% - ${h})`}}const $l=b(()=>{var e;const t=(e=r.monacoOptions)==null?void 0:e.fontFamily,n=dn(sn.value),l=dn(Pl.value),o=In(),i=U(U({fontSize:`${rn.value}px`,lineHeight:`${an.value}px`,tabSize:Fl.value,boxSizing:"border-box",maxHeight:`${Mt()}px`,overflow:"auto",paddingTop:`${un.value.top}px`,paddingBottom:`${un.value.bottom}px`},m.value||n==null||o?m.value||l==null?{}:{minHeight:`${l}px`}:{height:`${n}px`,minHeight:`${n}px`}),typeof t=="string"&&t.trim()?{"--markstream-code-font-family":t.trim()}:{});return i["--markstream-pre-line-number-top"]=`${un.value.top}px`,i["--markstream-pre-line-number-left"]="0px",i["--markstream-pre-line-number-padding-left"]="2ch",i["--markstream-pre-line-number-padding-right"]="1ch",i["--markstream-pre-line-number-separator-width"]="2px",m.value&&(i["--markstream-pre-diff-line-height"]=`${an.value}px`,i["--markstream-pre-diff-pane-bottom-padding"]=(Ue.value,"0px"),Object.assign(i,Ol(xl.value))),i}),zl=b(()=>Vn.value!=null&&(!R.value||nt()!=null)),Qo=b(()=>{const e=Vn.value;if(e==null)return null;if(m.value)return Math.ceil(e);const t=Yo.value,n=sn.value;if(t==null||n==null)return Math.ceil(e);const l=Math.max(0,Math.ceil(t)-Math.ceil(n));return Math.ceil(e+l)}),Xo=b(()=>{if(m.value&&Te.value)return{};const e=Vn.value;return zl.value&&e!=null?{minHeight:`${e}px`}:{}});function Hl(){var e,t,n,l,o,i,s,u;const a=(e=z.value)==null?void 0:e.querySelector("pre.code-pre-fallback"),c=V(),d=(t=a?.scrollTop)!=null?t:0;(o=(l=(n=c?.getOriginalEditor)==null?void 0:n.call(c))==null?void 0:l.setScrollTop)==null||o.call(l,d),(u=(s=(i=c?.getModifiedEditor)==null?void 0:i.call(c))==null?void 0:s.setScrollTop)==null||u.call(s,d)}function Nl(){return j(this,null,function*(){return m.value?(tl()!=null||cn(),ee(!0),Hl(),he(),Ht.value=!0,yield A(),ee(!0),yield Le(),ee(!0),!(Ke&&!(yield Ke())||(Rt(),cn(),ee(!0),R.value=!0,yield A(),cn(),ee(!0),Rt(),he(),ce(),0))):!(Ke&&!(yield Ke())||(R.value=!0,yield A(),le(!1),ee(),0))})}function cn(){const e=v.value;return e&&mn(e)?(he(),le({preferModelDiffHeight:!0}),it(),Number.parseFloat(e.style.height||"")||null):tl()}function Tl(){if(!m.value||!q.value||!R.value||Te.value)return!1;const e=v.value;return!!e&&Tt(e)}function Rl(e,t=!1,n={}){const l=Math.ceil(e),o=nt();if(o==null)return l;const i=n.allowBelowEstimatedFloor===!0||Tl();return l>=o||i?((t||i)&&q.value&&(Un.value=null),l):o}function Le(){return new Promise(e=>{let t=!1,n=null,l=null;const o=()=>{t||(t=!0,l!=null&&globalThis.clearTimeout(l),n!=null&&kn(n),e())};l=globalThis.setTimeout(o,50),n=fe(o)})}function Dl(){try{const e=v.value;if(!e)return null;const t=e.querySelector(".view-lines .view-line");if(t){const n=Math.ceil(t.getBoundingClientRect().height);if(n>0)return n}}catch{}return null}function Gn(){var e,t,n,l,o;try{const i=m.value?(n=(t=(e=V())==null?void 0:e.getModifiedEditor)==null?void 0:t.call(e))!=null?n:V():de(),s=xt(),u=(l=s?.EditorOption)==null?void 0:l.fontInfo;if(i&&u!=null){const a=(o=i.getOption)==null?void 0:o.call(i,u),c=a?.fontSize;if(typeof c=="number"&&Number.isFinite(c)&&c>0)return c}}catch{}try{const i=v.value;if(i){const s=i.querySelector(".view-lines .view-line");if(s)try{if(typeof window<"u"&&typeof window.getComputedStyle=="function"){const u=window.getComputedStyle(s).fontSize,a=u&&u.match(/^(\d+(?:\.\d+)?)/);if(a)return Number.parseFloat(a[1])}}catch{}}}catch{}return null}function Ct(e){var t,n;try{const i=xt(),s=(t=i?.EditorOption)==null?void 0:t.lineHeight;if(s!=null){const u=(n=e?.getOption)==null?void 0:n.call(e,s);if(typeof u=="number"&&u>0)return u}}catch{}const l=Dl();if(l&&l>0)return l;const o=Number.isFinite(W.value)&&W.value>0?W.value:14;return Math.max(12,Math.round(1.35*o))}function fn(e){var t,n,l;try{const i=xt(),s=(t=i?.EditorOption)==null?void 0:t.padding;if(s!=null){const u=(n=e?.getOption)==null?void 0:n.call(e,s);if(typeof u?.top=="number"||typeof u?.bottom=="number")return(typeof u?.top=="number"&&Number.isFinite(u.top)?Math.max(0,u.top):0)+(typeof u?.bottom=="number"&&Number.isFinite(u.bottom)?Math.max(0,u.bottom):0)}}catch{}const o=(l=ae.value)==null?void 0:l.padding;return typeof o?.top=="number"||typeof o?.bottom=="number"?(typeof o?.top=="number"&&Number.isFinite(o.top)?Math.max(0,o.top):0)+(typeof o?.bottom=="number"&&Number.isFinite(o.bottom)?Math.max(0,o.bottom):0):m.value?24:0}function Al(e,t){return typeof e!="number"||typeof t!="number"||e<1||t=o&&s>=o&&n[i]===l[s];)i--,s--;const u=Math.max(0,i-o+1),a=Math.max(0,s-o+1);if(u===0||a===0)return{removed:u,added:a};if((u+1)*(a+1)<=15e5){const c=a+1;let d=new Uint32Array(c),f=new Uint32Array(c);for(let h=u-1;h>=0;h--){f[a]=0;for(let g=a-1;g>=0;g--)f[g]=n[o+h]===l[o+g]?d[g+1]+1:Math.max(d[g],f[g+1]);const x=d;d=f,f=x}const p=d[0];return{removed:u-p,added:a-p}}return{removed:u,added:a}}function ql(e){var t;if(!(function(){var s,u,a;return!(!m.value||!Ue.value)&&(r.node.originalCode!=null||r.node.updatedCode!=null?vn(String((s=r.node.originalCode)!=null?s:""),String((u=r.node.updatedCode)!=null?u:"")).removed>0:String((a=r.node.code)!=null?a:"").split(/\r\n|\n|\r/).some(c=>(function(d){return d.startsWith("-")&&!d.startsWith("---")})(c)))})())return!0;const n=e?.querySelector(".stream-monaco-fallback-inline-delete-line");if((t=n?.textContent)!=null&&t.trim()&&(n.hasAttribute("data-stream-monaco-colorize-signature")||n.querySelector('[class*="mtk"]')))return!0;const l=e?.querySelector([".editor.modified .view-zones .view-lines.line-delete",".editor.modified .view-lines .view-line.line-delete",".editor.original .view-zones .view-lines.line-delete",".editor.original .view-lines .view-line.line-delete"].join(","));if(!l||!l.matches(".view-line")&&!l.querySelector(".view-line"))return!1;const o=l.getBoundingClientRect(),i=e?.getBoundingClientRect();return i?.width===0&&i.height===0||o.width>0&&o.height>0}function Wl(e,t){if(!e)return!1;const n=t.added<=0||!!e.querySelector([".line-insert",".gutter-insert",".stream-monaco-fallback-line-insert",".stream-monaco-fallback-gutter-insert",".stream-monaco-fallback-line-number-insert"].join(",")),l=t.removed<=0||!!e.querySelector([".line-delete",".gutter-delete",".inline-deleted-margin-view-zone",".stream-monaco-fallback-line-delete",".stream-monaco-fallback-gutter-delete",".stream-monaco-fallback-line-number-delete",".stream-monaco-fallback-inline-delete-line",".stream-monaco-fallback-inline-delete-margin"].join(","));return n&&l}function Jn(e,t){const n=e?.querySelector(t);return n instanceof HTMLElement?typeof window>"u"||typeof window.getComputedStyle!="function"?n:window.getComputedStyle(n).display==="none"?null:n:null}function _l(e,t){return Jn(e,t)!==null}function Il(e,t){if(!e)return!1;const n=t.added<=0||[".gutter-insert",".stream-monaco-fallback-gutter-insert"].some(o=>_l(e,o)),l=t.removed<=0||[".gutter-delete",".inline-deleted-margin-view-zone",".stream-monaco-fallback-gutter-delete",".stream-monaco-fallback-inline-delete-margin"].some(o=>_l(e,o));return n&&l}function Ul(e){var t;const n=Array.from((t=e?.querySelectorAll(".monaco-diff-editor .margin-view-overlays .line-numbers"))!=null?t:[]);return!!n.length&&n.some(l=>{var o;if(!((o=l.textContent)!=null&&o.trim()))return!1;if(typeof window>"u"||typeof window.getComputedStyle!="function")return!0;const i=window.getComputedStyle(l);if(i.display==="none")return!1;const s=l.getBoundingClientRect();if(s.width<=0&&s.height<=0)return!0;const u=Number.parseFloat(i.width||""),a=Number.parseFloat(i.paddingLeft||""),c=Number.parseFloat(i.paddingRight||""),d=Math.max(s.width,Number.isFinite(u)?u:0)>=8,f=Number.isFinite(a)&&a>=1&&Number.isFinite(c)&&c>=1;return d&&f})}function Vl(e){const t=Jn(e,".monaco-diff-editor .view-lines .view-line");if(!t)return!1;if(!Qn())return!0;const n=Jn(e,".monaco-diff-editor .margin-view-overlays .line-numbers");if(!n)return!1;if(typeof window>"u"||typeof window.getComputedStyle!="function")return!0;const l=t.getBoundingClientRect(),o=n.getBoundingClientRect();if(l.width<=0&&l.height<=0||o.width<=0&&o.height<=0)return!0;const i=l.left-o.right;return i>=0&&i<=32}function Ko(e,t){return!Ue.value||!(t||e?.querySelector([".line-insert",".line-delete",".gutter-insert",".gutter-delete",".stream-monaco-line-number-insert",".stream-monaco-line-number-delete",".stream-monaco-line-insert-fill",".stream-monaco-line-delete-fill",".stream-monaco-fallback-line-insert",".stream-monaco-fallback-line-delete",".stream-monaco-fallback-inline-delete-line"].join(",")))||!!(e?.classList.contains("stream-monaco-diff-inline-native-ready")&&!e.classList.contains("stream-monaco-diff-native-stale"))}function Gl(e,t,n,l){const o=e?.querySelector(`.monaco-diff-editor .editor.${t}`);if(!o)return!1;const i=Array.from(o.querySelectorAll(`.margin-view-overlays .line-numbers.${n}`));if(!i.length)return!0;const s=Array.from(o.querySelectorAll(".lines-content > .view-lines:not(.line-delete) > .view-line"));return!!s.length&&i.every(u=>{const a=u.getBoundingClientRect();let c=null;for(const d of s){const f=d.getBoundingClientRect(),p=Math.abs(f.top-a.top);(!c||p1.25||c.node.classList.contains(l)})}function Zo(e,t){if(!e)return!1;const n=t.added<=0||Gl(e,"modified","stream-monaco-line-number-insert","stream-monaco-line-insert-fill"),l=t.removed<=0||(Ue.value?!!e.classList.contains("stream-monaco-diff-inline-native-ready"):Gl(e,"original","stream-monaco-line-number-delete","stream-monaco-line-delete-fill"));return n&&l}function Yn(e){if(Mn.value)return!0;if(!e)return!1;const t=Array.from(e.querySelectorAll(".monaco-diff-editor .view-lines .view-line, .monaco-editor .view-lines .view-line")).filter(l=>{var o;if(!((o=l.textContent)!=null&&o.trim()))return!1;const i=l.getBoundingClientRect();return i.width>0||i.height>0});if(!t.length)return!1;const n=t.filter(l=>{var o,i;return i=(o=l.textContent)!=null?o:"",/['"`{}()[\]:;=<>.,]|\/\/|\/\*|\b(?:async|await|class|const|enum|export|for|function|if|import|interface|let|return|switch|type|var|while)\b/.test(i.replace(/\u00A0/g," ").trim())});return!n.length||n.filter(l=>Array.from(l.querySelectorAll("span")).filter(o=>{var i;return(i=o.textContent)==null?void 0:i.trim()}).some(o=>String(o.className||"").split(/\s+/).some(i=>/^mtk\d+$/.test(i)&&i!=="mtk1"))).length>0}function Qn(){const e=ae.value;return e?.lineNumbers!=="off"}function Xn(){var e,t;m.value?Ze.value=vn(String((e=r.node.originalCode)!=null?e:""),String((t=r.node.updatedCode)!=null?t:"")):Ze.value={removed:0,added:0}}function lt(){var e;if(m.value)try{const t=V(),n=(e=t?.getLineChanges)==null?void 0:e.call(t);if(!Array.isArray(n))return void Xn();let l=0,o=0;for(const i of n)l+=Al(i.originalStartLineNumber,i.originalEndLineNumber),o+=Al(i.modifiedStartLineNumber,i.modifiedEndLineNumber);Ze.value={removed:l,added:o}}catch{Xn()}else Ze.value={removed:0,added:0}}function Kn(){var e;if(Number.isFinite(W.value)&&W.value>0&&Number.isFinite(pe.value))return W.value;const t=Gn();return typeof((e=r.monacoOptions)==null?void 0:e.fontSize)=="number"?(pe.value=r.monacoOptions.fontSize,W.value=r.monacoOptions.fontSize,W.value):t&&t>0?(pe.value=t,W.value=t,t):(pe.value=12,W.value=12,12)}function ei(){const e=Kn(),t=Math.min(36,e+1);W.value=t}function ti(){const e=Kn(),t=Math.max(10,e-1);W.value=t}function ni(){Kn(),Number.isFinite(pe.value)&&(W.value=pe.value)}function Jl(){var e,t,n,l,o,i,s,u,a,c,d,f,p,h;try{const x=m.value?V():null,g=m.value?x:de();if(!g)return null;if(x?.getOriginalEditor&&x?.getModifiedEditor){const F=(e=x.getOriginalEditor)==null?void 0:e.call(x),S=(t=x.getModifiedEditor)==null?void 0:t.call(x);(n=F?.layout)==null||n.call(F),(l=S?.layout)==null||l.call(S);const D=((o=F?.getContentHeight)==null?void 0:o.call(F))||0,C=((i=S?.getContentHeight)==null?void 0:i.call(S))||0,L=Math.max(D,C);if(L>0)return Math.ceil(L);const K=((a=(u=(s=F?.getModel)==null?void 0:s.call(F))==null?void 0:u.getLineCount)==null?void 0:a.call(u))||1,_=((f=(d=(c=S?.getModel)==null?void 0:c.call(S))==null?void 0:d.getLineCount)==null?void 0:f.call(d))||1,O=Math.max(K,_),I=Math.max(Ct(F),Ct(S)),G=Math.max(fn(F),fn(S));return Math.ceil(O*I+G+0)}if(g?.getContentHeight){(p=g?.layout)==null||p.call(g);const F=g.getContentHeight();if(F>0)return m.value||(tn.value=!0),Math.ceil(F)}const N=(h=g?.getModel)==null?void 0:h.call(g);let oe=1;N&&typeof N.getLineCount=="function"&&(oe=N.getLineCount());const E=Ct(g);return Math.ceil(oe*(E+1.5)+0)}catch{return null}}function Yl(){var e,t;if(m.value)return!1;try{const n=(t=(e=de())==null?void 0:e.getContentHeight)==null?void 0:t.call(e),l=typeof n=="number"&&Number.isFinite(n)&&n>0;return l&&(tn.value=!0),l}catch{return!1}}function Zn(e){var t,n,l;if(typeof window>"u")return null;try{const o=e.getBoundingClientRect(),i=window.getComputedStyle(e);if(i.display==="none"||i.visibility==="hidden")return null;const s=e.querySelector("diffs-container");if(s instanceof HTMLElement){const c=s.getBoundingClientRect();if(c.height>0&&c.bottom>o.top)return Math.ceil(c.bottom-o.top)}const u=[".editor.original .view-lines .view-line",".editor.modified .view-lines .view-line",".editor.original .view-zones > div",".editor.modified .view-zones > div",".editor.original .margin-view-zones > div",".editor.modified .margin-view-zones > div",".editor.original .diff-hidden-lines",".editor.modified .diff-hidden-lines",".stream-monaco-diff-unchanged-bridge"];let a=0;for(const c of Array.from(e.querySelectorAll(u.join(",")))){if(!(c instanceof HTMLElement)||((t=c.parentElement)!=null&&t.classList.contains("view-zones")||(n=c.parentElement)!=null&&n.classList.contains("margin-view-zones"))&&!((l=c.textContent)!=null&&l.trim()||c.matches(".line-delete, .line-insert, .cdr")||c.querySelector(".diff-hidden-lines, .stream-monaco-diff-unchanged-bridge, .line-delete, .line-insert, .cdr")))continue;const d=window.getComputedStyle(c);if(d.display==="none"||d.visibility==="hidden"||Number.parseFloat(d.opacity||"1")<=.01)continue;const f=c.getBoundingClientRect();f.height<=0||f.bottom<=o.top||(a=Math.max(a,f.bottom-o.top))}return a>0?Math.ceil(a):null}catch{return null}}function Tt(e){if(typeof window>"u")return!1;const t=e.getBoundingClientRect();if(t.width<=0||t.height<=0)return!1;const n=e.querySelectorAll(".editor.modified .diff-hidden-lines, .editor.original .diff-hidden-lines, .stream-monaco-diff-unchanged-bridge");for(const l of Array.from(n)){if(!(l instanceof HTMLElement))continue;const o=window.getComputedStyle(l);if(o.display==="none"||o.visibility==="hidden"||Number.parseFloat(o.opacity||"1")<=.01)continue;const i=l.getBoundingClientRect();if(!(i.width<=0||i.height<=0||i.bottom<=t.top||i.top>=t.bottom))return!0}return!1}function el(e){var t;const n=String(e??"").trim(),l=(t=n.match(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i))==null?void 0:t[1];if(l){const a=l.length===3?l.split("").map(c=>`${c}${c}`).join(""):l;return .2126*Number.parseInt(a.slice(0,2),16)+.7152*Number.parseInt(a.slice(2,4),16)+.0722*Number.parseInt(a.slice(4,6),16)}const o=n.match(/\d+(?:\.\d+)?/g);if(!o||o.length<3)return null;const[i,s,u]=o.slice(0,3).map(Number);return .2126*i+.7152*s+.0722*u}function Rt(){var e,t,n;if(Ql())return;const l=Gn();l&&l>0&&(_n.value=l,W.value=l,pe.value=l);try{const o=Ct(m.value?(n=(t=(e=V())==null?void 0:e.getModifiedEditor)==null?void 0:t.call(e))!=null?n:V():de());o&&o>0&&(ln.value=o)}catch{}try{const o=Dl();o&&o>0&&(ln.value=o)}catch{}}function Ql(){return m.value&&Bl.value}function tl(){var e;if(!m.value||!Te.value)return null;const t=v.value,n=(e=z.value)==null?void 0:e.querySelector("pre.code-pre-fallback");if(!t||!n)return null;const l=Math.ceil(n.getBoundingClientRect().height);return!Number.isFinite(l)||l<=0?null:(t.style.height=`${l}px`,t.style.minHeight=`${l}px`,t.style.maxHeight=`${Math.ceil(Mt())}px`,t.style.overflow="hidden",l)}function nl(){var e,t,n,l,o,i,s,u,a;const c=v.value,d=z.value;if(!c||!d)return;const f=c;f.style.setProperty("--diffs-tab-size",String(Fl.value));const p=(e=r.monacoOptions)==null?void 0:e.padding;p&&typeof p=="object"?f.style.setProperty("--diffs-gap-block",`${un.value.top}px`):f.style.removeProperty("--diffs-gap-block");const h=c.querySelector(".monaco-editor")||c,x=h.querySelector(".monaco-editor-background")||h,g=h.querySelector(".view-lines")||h;let N=null,oe=null,E=null;try{typeof window<"u"&&typeof window.getComputedStyle=="function"&&(N=window.getComputedStyle(h),oe=x===h?N:window.getComputedStyle(x),E=g===h?N:window.getComputedStyle(g))}catch{N=null,oe=null,E=null}const F=String((t=N?.getPropertyValue("--vscode-editor-foreground"))!=null?t:"").trim(),S=String((n=N?.getPropertyValue("--vscode-editor-background"))!=null?n:"").trim(),D=String((o=(l=N?.getPropertyValue("--vscode-editor-selectionBackground"))!=null?l:N?.getPropertyValue("--vscode-editor-hoverHighlightBackground"))!=null?o:"").trim(),C=F||String((s=(i=E?.color)!=null?i:N?.color)!=null?s:"").trim(),L=S||String((a=(u=oe?.backgroundColor)!=null?u:N?.backgroundColor)!=null?a:"").trim(),K=(function(){var _,O,I,G,ye;try{const st=m.value?(I=(O=(_=V())==null?void 0:_.getModifiedEditor)==null?void 0:O.call(_))!=null?I:V():de(),jt=xt(),Et=(G=jt?.EditorOption)==null?void 0:G.fontInfo;if(st&&Et!=null){const qt=(ye=st.getOption)==null?void 0:ye.call(st,Et),dt=qt?.typicalHalfwidthCharacterWidth;if(typeof dt=="number"&&Number.isFinite(dt)&&dt>0)return dt}}catch{}return null})();if(K!=null&&(on.value=K),m.value){const _=(O,I)=>{I?(d.style.setProperty(O,I),f.style.setProperty(O,I)):(d.style.removeProperty(O),f.style.removeProperty(O))};for(const[O,I]of Object.entries(Ol(d.classList.contains("is-dark"))))_(O,I);return C?(d.style.setProperty("--markstream-diff-editor-fg",C),f.style.setProperty("--vscode-editor-foreground",C),f.style.setProperty("--stream-monaco-editor-fg",C)):(d.style.removeProperty("--markstream-diff-editor-fg"),f.style.removeProperty("--vscode-editor-foreground"),f.style.removeProperty("--stream-monaco-editor-fg")),L?(d.style.setProperty("--markstream-diff-editor-bg",L),d.style.setProperty("--markstream-diff-panel-bg",L),d.style.setProperty("--markstream-diff-panel-bg-soft",L),d.style.setProperty("--markstream-diff-panel-bg-strong",L),f.style.setProperty("--vscode-editor-background",L),f.style.setProperty("--stream-monaco-editor-bg",L),f.style.setProperty("--stream-monaco-fixed-editor-bg",L),f.style.setProperty("--stream-monaco-panel-bg",L),f.style.setProperty("--stream-monaco-panel-bg-soft",L),f.style.setProperty("--stream-monaco-panel-bg-strong",L),f.style.backgroundColor=L):(d.style.removeProperty("--markstream-diff-editor-bg"),d.style.removeProperty("--markstream-diff-panel-bg"),d.style.removeProperty("--markstream-diff-panel-bg-soft"),d.style.removeProperty("--markstream-diff-panel-bg-strong"),f.style.removeProperty("--vscode-editor-background"),f.style.removeProperty("--stream-monaco-editor-bg"),f.style.removeProperty("--stream-monaco-fixed-editor-bg"),f.style.removeProperty("--stream-monaco-panel-bg"),f.style.removeProperty("--stream-monaco-panel-bg-soft"),f.style.removeProperty("--stream-monaco-panel-bg-strong"),f.style.backgroundColor=""),void(D?f.style.setProperty("--vscode-editor-selectionBackground",D):f.style.removeProperty("--vscode-editor-selectionBackground"))}if((function(_,O,I){if(!Mn.value)return!1;const G=el(_),ye=el(O);return I?G!=null&&G>170||ye!=null&&ye<110:G!=null&&G<85||ye!=null&&ye>190})(L,C,d.classList.contains("is-dark")))return f.style.removeProperty("--vscode-editor-foreground"),f.style.removeProperty("--vscode-editor-background"),void f.style.removeProperty("--vscode-editor-selectionBackground");C&&f.style.setProperty("--vscode-editor-foreground",C),L&&f.style.setProperty("--vscode-editor-background",L),D&&f.style.setProperty("--vscode-editor-selectionBackground",D)}let ll=0,ol=0;const Xl=/auto|scroll|overlay/i;function Oe(e,t,n){var l;if(typeof window>"u"||m.value||(function(d){return _o.value||Ml(d)})(e))return;const o=Math.ceil(t),i=Math.ceil(n)-o;if(Math.abs(i)<=1)return;const s=(function(d){var f,p;if(typeof window>"u")return null;const h=(f=d?.ownerDocument)!=null?f:document,x=h.scrollingElement||h.documentElement||h.body;let g=(p=d?.parentElement)!=null?p:null;for(;g&&g!==h.body&&g!==x;){const N=window.getComputedStyle(g),oe=(N.overflowY||"").toLowerCase(),E=(N.overflow||"").toLowerCase();if(Xl.test(oe)||Xl.test(E))return g;g=g.parentElement}return x})(e);if(!s)return;const u=(l=e.ownerDocument)!=null?l:document,a=s===u.body||s===u.documentElement||s===u.scrollingElement,c=a?0:s.getBoundingClientRect().top;e.getBoundingClientRect().top-c>=0||(a&&typeof window.scrollBy=="function"?window.scrollBy(0,i):s.scrollTop+=i)}function il(){try{const e=v.value;if(!e)return;const t=e.getBoundingClientRect().height,n=Jl();if(n!=null&&n>0){const o=Rl(n,!0,{allowBelowEstimatedFloor:!m.value&&q.value&&Yl()}),i=nt();return e.style.minHeight=i!=null?`${i}px`:"0px",e.style.height=`${o}px`,e.style.maxHeight="none",e.style.overflow="visible",void Oe(e,t,o)}const l=nt();l!=null&&(e.style.minHeight=`${l}px`,e.style.height=`${l}px`,e.style.maxHeight="none",e.style.overflow="visible",Oe(e,t,l))}catch{}}function ot(){for(var e,t;He.length>0;)try{(t=(e=He.pop())==null?void 0:e.dispose)==null||t.call(e)}catch{}kt!=null&&(kn(kt),kt=null),Ft!=null&&(kn(Ft),Ft=null),Je!=null&&(kn(Je),Je=null),Ye=0,Qe=!1}function De(){for(var e;Nn.length>0;)try{(e=Nn.pop())==null||e()}catch{}}function le(e=!1){Se.value||(Pe.value?il():(function(t={}){var n,l,o;try{const i=v.value;if(!i)return;const s=i.getBoundingClientRect().height,u=Mt(),a=Math.ceil(((n=i.getBoundingClientRect)==null?void 0:n.call(i).height)||0),c=Number.parseFloat(i.style.height||""),d=a>0?a:Number.isFinite(c)&&c>0?Math.ceil(c):0,f=m.value?(function(){var O,I,G,ye,st,jt,Et,qt,dt,xo,So,Co;if($e())return null;try{const ct=V(),ft=(O=ct?.getOriginalEditor)==null?void 0:O.call(ct),vt=(I=ct?.getModifiedEditor)==null?void 0:I.call(ct);if(!ft||!vt)return null;const hi=((st=(ye=(G=ft.getModel)==null?void 0:G.call(ft))==null?void 0:ye.getLineCount)==null?void 0:st.call(ye))||1,gi=((qt=(Et=(jt=vt.getModel)==null?void 0:jt.call(vt))==null?void 0:Et.getLineCount)==null?void 0:qt.call(Et))||1,yi=Math.max(hi,gi),wi=Math.max(Ct(ft),Ct(vt)),bi=Math.max(fn(ft),fn(vt)),ki=Math.max((xo=(dt=ft.getContentHeight)==null?void 0:dt.call(ft))!=null?xo:0,(Co=(So=vt.getContentHeight)==null?void 0:So.call(vt))!=null?Co:0);return Math.ceil(Math.max(ki,yi*wi+bi+0))}catch{return null}})():null,p=m.value&&Tt(i),h=m.value&&mn(i),x=m.value&&i.classList.contains("stream-monaco-diff-native-stale"),g=p&&q.value&&R.value&&!Te.value;if(p||(ve.value=null),En>0&&(En--,_e.value!=null))return void Oe(i,s,Ae(i,_e.value,u,{allowBelowEstimatedFloor:g,preserveScrollableOverflow:rl(i)}));if(m.value&&!h&&!p&&Te.value){const O=tl();if(O!=null){const I=Ae(i,O,u,{allowBelowEstimatedFloor:!0});return ee(!0),void Oe(i,s,I)}}const N=m.value&&t.preferModelDiffHeight===!0,oe=m.value?Zn(i):null,E=oe,F=!m.value&&q.value&&Yl(),S=m.value&&r.loading!==!1&&(E!=null||f!=null&&a>0&&f0&&f0&&f0?d:null:f;else C=Jl();if(m.value&&r.loading===!1&&x&&!g&&C!=null&&f!=null&&(C=Math.min(C,f)),m.value&&C!=null&&d>0&&(r.loading!==!1||r.loading===!1&&x&&!g||t.holdCurrentDiffHeight===!0&&!g)&&(C=Math.max(C,d)),C!=null&&C>0){const O=p&&ve.value!=null,I=p&&a>0&&a=u-1,G=Ae(i,O?Math.max(ve.value,C):I?a:C,u,{clearEstimatedFloor:!0,allowBelowEstimatedFloor:g||F||S,preserveScrollableOverflow:rl(i)});return p&&G0?f:0);if(L>0){const O=p&&ve.value!=null,I=p&&a>0&&a=u-1,G=Ae(i,O?Math.max(ve.value,L):I?a:L,u,{allowBelowEstimatedFloor:g});return p&&G0?Oe(i,s,Ae(i,_,u,{allowBelowEstimatedFloor:g})):m.value||Oe(i,s,Ae(i,u,u))}catch{}})(typeof e=="object"?e:{}))}function Kl(){ll=0,ol=0}function ee(e=!1){var t,n,l;if(Se.value)return;const o=v.value;if(!o)return;const i=m.value?V():de();if(i&&typeof i.layout=="function")try{const s=(t=o.getBoundingClientRect)==null?void 0:t.call(o),u=Math.ceil(((n=s?.width)!=null?n:0)||o.clientWidth||0),a=Math.ceil(((l=s?.height)!=null?l:0)||o.clientHeight||Number.parseFloat(o.style.height||"")||0);if(u>0&&a>0){if(!e&&u===ll&&a===ol)return;ll=u,ol=a,i.layout({width:u,height:a})}else Kl(),i.layout()}catch{}}function he(){if(!m.value)return void De();const e=v.value;if(!e)return void De();const t=e.querySelector(".monaco-diff-editor");if(!t||t.classList.contains("side-by-side"))return void De();const n=Array.from(t.querySelectorAll(".editor.original .diff-hidden-lines")),l=Array.from(t.querySelectorAll(".editor.modified .diff-hidden-lines")),o=Math.min(n.length,l.length);for(let i=0;i div:first-child"),c=s.querySelector(".center");if(!u||!a||!c||c.querySelector(".markstream-inline-fold-proxy"))continue;const d=document.createElement("button");d.type="button",d.className="markstream-inline-fold-proxy",d.dataset.markstreamInlineFoldProxy="true";const f=u.getAttribute("title")||"Show Unchanged Region";d.title=f,d.setAttribute("aria-label",f);const p=g=>{g.preventDefault(),g.stopPropagation()},h=g=>{g.preventDefault(),g.stopPropagation(),u.click(),fe(()=>ce())},x=g=>{g.key!=="Enter"&&g.key!==" "||(g.preventDefault(),g.stopPropagation(),u.click(),fe(()=>ce()))};d.addEventListener("mousedown",p),d.addEventListener("click",h),d.addEventListener("keydown",x),c.appendChild(d),Nn.push(()=>{d.removeEventListener("mousedown",p),d.removeEventListener("click",h),d.removeEventListener("keydown",x),d.parentElement===c&&c.removeChild(d)})}}function ce(e=!1){if(B||kt!=null)return;const t=()=>{B||(he(),le(e),ee())};kt=fe(()=>{kt=null,t(),Ft=fe(()=>{Ft=null,t()})}),it()}function it(e=!1){if(!m.value||B||!e&&r.loading===!1||(Qe=Qe||e,Ye=Math.max(Ye,e?18:6),Je!=null))return;const t=()=>{if(Je=null,!m.value||B||Ye<=0||!Qe&&r.loading===!1)return Ye=0,void(Qe=!1);Ye--,he(),le({preferModelDiffHeight:!0,holdCurrentDiffHeight:Qe}),ee(),Ye>0?Je=fe(t):Qe=!1};Je=fe(t)}function Ae(e,t,n,l={}){const o=m.value&&r.loading!==!1?Zn(e):null,i=o!=null&&o>t+1?o:t,s=Math.min(i,n),u=l.allowBelowEstimatedFloor===!0||Tl(),a=Rl(s,l.clearEstimatedFloor===!0,{allowBelowEstimatedFloor:u}),c=nt();if(e.style.minHeight=c==null||u?"0px":`${Math.min(c,Math.ceil(n))}px`,e.style.height=`${a}px`,e.style.maxHeight=`${Math.ceil(n)}px`,m.value)e.style.overflow="hidden";else{const d=l.preserveScrollableOverflow===!0||t>n+1;e.style.overflow=d?"auto":"hidden"}return a}function Zl(e,t=0){var n;const l=Math.ceil(((n=e.getBoundingClientRect)==null?void 0:n.call(e).height)||0),o=Math.max(t,e.clientHeight||0,l);return o>0&&e.scrollHeight>o+1}function rl(e){var t;return!m.value&&(Fn||Zl(e,(t=_e.value)!=null?t:0))}function al(e){var t,n,l,o,i,s,u,a;if(!m.value)return;const c=Pe.value||!Tt(e)||e.getBoundingClientRect().height>=Mt()-1;if(Bn===c)return;Bn=c;const d=Me(U({},(n=(t=r.monacoOptions)==null?void 0:t.scrollbar)!=null?n:{}),{handleMouseWheel:c}),f=V();try{(i=(o=(l=f?.getOriginalEditor)==null?void 0:l.call(f))==null?void 0:o.updateOptions)==null||i.call(o,{scrollbar:d}),(a=(u=(s=f?.getModifiedEditor)==null?void 0:s.call(f))==null?void 0:u.updateOptions)==null||a.call(u,{scrollbar:d})}catch{}}function mn(e=v.value){return!!$e(e)||!!e?.querySelector(".monaco-diff-editor .view-lines .view-line")}function eo(e=v.value){return!!$e(e)||!!e?.querySelector(".monaco-editor .view-lines .view-line")}function to(){var e,t;if($e())return!0;const n=(t=(e=de())==null?void 0:e.getModel)==null?void 0:t.call(e);return typeof n?.getValue=="function"&&n.getValue()===Re.value}function no(e=v.value){return!!$e(e)||!!e?.classList.contains("stream-monaco-diff-root")&&!(Ue.value&&!e.classList.contains("stream-monaco-diff-inline"))}function $e(e=v.value){return!!e?.querySelector("diffs-container")}function lo(e){return r.loading!==!1||R.value||e.classList.contains("stream-monaco-diff-native-stale")||Tt(e)}function li(){const e=V();return typeof e?.getOriginalEditor=="function"||typeof e?.getModifiedEditor=="function"||typeof e?.getLineChanges=="function"}function oo(){return j(this,arguments,function*(e={}){var t,n,l;if(!m.value)return!0;if($e())return yield A(),yield Le(),$e();const o=e.requireHighlight!==!1;let i=0,s=Ot(String((t=r.node.originalCode)!=null?t:""),String((n=r.node.updatedCode)!=null?n:"")),u=vn(s.original,s.updated),a=u.added>0||u.removed>0;const c=()=>{var d,f;const p=Ot(String((d=r.node.originalCode)!=null?d:""),String((f=r.node.updatedCode)!=null?f:""));p.original===s.original&&p.updated===s.updated||(s=p,u=vn(s.original,s.updated),a=u.added>0||u.removed>0)};for(let d=0;d<30;d++){if(B)return!1;c();const f=v.value,p=V(),h=Qn();let x=!1;try{const S=(l=p?.getLineChanges)==null?void 0:l.call(p);x=Array.isArray(S)&&(!a||S.length>0)}catch{x=!1}const g=!!f?.querySelector(".monaco-diff-editor"),N=mn(f),oe=!a||Wl(f,u),E=!a||Il(f,u),F=!h||Ul(f);if(g&&N&&x&&oe&&E&&F&&ql(f)){try{St(),he(),lt(),ce()}catch{}if(yield A(),yield Le(),B)return!1;const S=v.value,D=!Qn()||Ul(S),C=!a||Wl(S,u),L=!a||Il(S,u),K=Ko(S,a),_=Zo(S,u),O=!o||Yn(S),I=no(S)&&D&&Vl(S)&&C&&L&&K&&_&&O,G=no(S)&&D&&Vl(S)&&C&&L&&ql(S)&&O;if(I||G){if(i++,i>=2)return!0}else i=0}yield A(),yield Le()}return B||(St(),he(),lt(),ce(),c()),!1})}function io(e,t,n){return j(this,null,function*(){try{return void(yield Kt(e,t,n))}catch(l){if(!$t(l))throw l}if(yield A(),yield Le(),!B&&m.value)try{yield Kt(e,t,n)}catch(l){if(!$t(l))throw l}})}function Mt(){var e,t;const n=(t=(e=r.monacoOptions)==null?void 0:e.MAX_HEIGHT)!=null?t:500;if(typeof n=="number")return n;const l=String(n).match(/^(\d+(?:\.\d+)?)/);return l?Number.parseFloat(l[1]):500}const ul=b(()=>r.isShowPreview&&(xe.value==="html"||xe.value==="svg"));function Ve(){return typeof r.node.loading=="boolean"?r.node.loading:r.loading===!0}function ro(){var e,t,n;if(!Ve())return!0;const l=String((e=r.node.raw)!=null?e:""),o=(n=(t=l.split(/\r\n|\n|\r/,1)[0])==null?void 0:t.trimStart())!=null?n:"";return!/^(?:`{3,}|~{3,})/.test(o)||/\r\n|\n|\r/.test(l)}function ao(e,t,n){return!n||ro()&&String(t??"")?wn(String(e??"")):"plain"}function pn(){return Ve()}let Bt=null,sl=!1,hn=0;function uo(){Bt=null,hn++}function so(){return j(this,arguments,function*(e=hn){if(!sl){sl=!0;try{for(;Bt&&!B&&!m.value&&e===hn;){const t=Bt;Bt=null;try{yield Promise.resolve(Ln(t.code,t.language)),yield A(),B||m.value||(le(!1),ee())}catch{}}}finally{sl=!1,!Bt||B||m.value||so()}}})}function co(e,t){Bt={code:e,language:t},so(hn)}ue(()=>[r.node.language,r.node.code,r.node.raw,r.node.loading,r.loading],([e,t,n,l,o])=>{xe.value=ao(e,t,typeof l=="boolean"?l:o===!0)}),ue(()=>[r.node.originalCode,r.node.updatedCode,m.value],()=>{ve.value=null,Xn(),fe(()=>lt())},{immediate:!0});let gn=0;ue(()=>[r.node.originalCode,r.node.updatedCode,Fe.value,m.value,r.stream],e=>j(null,[e],function*([,,,t,n]){var l,o;const i=++gn;if(!t||Ve()||n===!1&&!X.value)return;if(n!==!1&&se&&!X.value&&v.value)try{yield je(v.value)}catch{}const s=Pt;if(s&&!Ce.value){try{yield s}catch{}if(B||!m.value||i!==gn)return}if(i!==gn)return;const u=Ot(String((l=r.node.originalCode)!=null?l:""),String((o=r.node.updatedCode)!=null?o:"")),a=r.loading===!1;a&&at();try{if(yield io(u.original,u.updated,Fe.value),B||!m.value||i!==gn)return;yield A(),ee(!0),he(),le(r.loading===!1||{preferModelDiffHeight:!0}),ee(!0),ce(!0)}catch{return}if(a){if(B||!m.value)return;St(),he(),lt(),ce(),it(!0)}Pe.value&&fe(()=>il())})),ue(()=>r.node.code,e=>j(null,null,function*(){if(Ve()||r.stream===!1||(xe.value||(xe.value=wn(wl(e))),m.value))return;const t=Pt;if(t&&!Ce.value){try{yield t}catch{}if(B||m.value)return}if(se&&!X.value&&v.value)try{yield je(v.value)}catch{}co(en(r.node.code),Fe.value),Pe.value&&fe(()=>il())}));const oi=b(()=>{const e=xe.value;return e?Fo[e]||e.charAt(0).toUpperCase()+e.slice(1):Fo[""]}),fo=b(()=>{var e;return Ai(String((e=r.node.raw)!=null?e:""),oi.value,m.value)}),ii=b(()=>fo.value.title),vo=b(()=>fo.value.caption),ri=b(()=>(Hi.value,(function(e,t){if(t===void 0)return Ni(e);if(t){const l=t(e);if(l!=null&&l!=="")return l}const n=wn(e);return Ti(n)||Ri()})(xe.value||"",gt))),ai=b(()=>{const e={};e["--markstream-code-layout-character-width"]=on.value==null?"1ch":`${on.value}px`;const t=o=>{if(o!=null)return typeof o=="number"?`${o}px`:String(o)},n=t(r.minWidth),l=t(r.maxWidth);if(n&&(e.minWidth=n),l&&(e.maxWidth=l),zl.value&&!m.value&&!Se.value){const o=Qo.value;o!=null&&(e.minHeight=`${o}px`)}return m.value||(e.color="var(--markstream-code-fallback-fg, var(--code-fg))",e.backgroundColor="var(--markstream-code-fallback-bg, var(--code-bg))",e.borderColor="var(--markstream-code-border-color, var(--code-border))"),e}),ui=b(()=>r.showTooltips!==!1);function si(){return j(this,null,function*(){try{typeof navigator<"u"&&navigator.clipboard&&typeof navigator.clipboard.writeText=="function"&&(yield navigator.clipboard.writeText(r.node.code)),wt.value=!0,P("copy",r.node.code),setTimeout(()=>{wt.value=!1},1e3)}catch(e){console.error("复制失败:",e)}})}function di(){Pe.value=!Pe.value;const e=m.value?V():de(),t=v.value;e&&t&&(Pe.value?(yn(!0),t.style.maxHeight="none",t.style.overflow="visible",le(!0)):(yn(!1),t.style.overflow=m.value?"hidden":"auto",le(!0)),al(t))}function ci(){var e,t;if(Se.value=!Se.value,Se.value){if(Fn=!1,v.value){const n=Math.ceil(((t=(e=v.value).getBoundingClientRect)==null?void 0:t.call(e).height)||0);Fn=!m.value&&(Zl(v.value,n)||v.value.style.overflow==="auto"||v.value.style.overflowY==="auto"),n>0&&(_e.value=n)}yn(!1)}else Pe.value&&yn(!0),v.value&&_e.value!=null&&(v.value.style.height=`${_e.value}px`),En=2,A(()=>{Se.value||B||(le(!0),ee(!0))})}function fi(){if(!ul.value)return;const e=xe.value;if(Yt.value){const t=e==="html"?"text/html":"image/svg+xml",n=e==="html"?Q("artifacts.htmlPreviewTitle")||"HTML Preview":Q("artifacts.svgPreviewTitle")||"SVG Preview";return void P("previewCode",{node:r.node,artifactType:t,artifactTitle:n,id:`temp-${e}-${Date.now()}`})}e==="html"&&(nn.value=!nn.value)}function yn(e){var t,n;try{if(m.value){const l=V();(t=l?.updateOptions)==null||t.call(l,{automaticLayout:e})}else{const l=de();(n=l?.updateOptions)==null||n.call(l,{automaticLayout:e})}}catch{}}function vi(e){return j(this,null,function*(){var t;if(!se||B)return;const n=zt.value;if(jn=!1,me.value=!1,et.value=null,Ce.value=!1,R.value=!1,Ht.value=!1,Bn=null,_n.value=null,ln.value=null,on.value=null,(function(){const a=(function(){var c;const d=(c=v.value)==null?void 0:c.parentElement;return d instanceof HTMLElement?d:null})();a&&(a.style.removeProperty("--stream-monaco-line-number-left"),a.style.removeProperty("--stream-monaco-line-number-width"),a.style.removeProperty("--stream-monaco-line-number-gap-to-code"),a.style.removeProperty("--stream-monaco-original-line-number-gap-to-code"),a.style.removeProperty("--stream-monaco-modified-line-number-gap-to-code"),a.style.removeProperty("--stream-monaco-original-scrollable-left"),a.style.removeProperty("--stream-monaco-modified-scrollable-left"))})(),Kl(),(function(){tn.value=!1;const a=Ll.value;Un.value=q.value||a==null?null:a})(),ot(),De(),(function(a){a.replaceChildren()})(e),at(),B)return;const l=j(null,null,function*(){var a,c;if(n==="diff"){(function(){if(Hn||typeof window>"u")return;Hn=!0;const f=p=>{var h;$t("reason"in p?p.reason:(h=p.error)!=null?h:p.message)&&(p.preventDefault(),p.stopImmediatePropagation())};window.addEventListener("error",f,!0),window.addEventListener("unhandledrejection",f,!0),Zt=()=>{window.removeEventListener("error",f,!0),window.removeEventListener("unhandledrejection",f,!0),Hn=!1,Zt=null}})(),Xe();const d=Ot(String((a=r.node.originalCode)!=null?a:""),String((c=r.node.updatedCode)!=null?c:""));Xt?yield yt(()=>Xt(e,d.original,d.updated,Fe.value)):yield yt(()=>se(e,r.node.code,Fe.value))}else yield yt(()=>se(e,Re.value,Fe.value));Ce.value=!0}),o=l.finally(()=>{Pt===o&&(Pt=null)});if(Pt=o,yield(function(a){return j(this,null,function*(){if(!m.value)return void(yield a);let c,d=!1;for(a.then(()=>{d=!0},f=>{d=!0,c=f});;){if(B)return;if(d){if(c)throw c;return}if(mn()&&li())return;yield A(),yield Le()}})})(o),B||zt.value!==n)return;Ce.value=!0;const i=n==="diff"?V():de();if(typeof((t=r.monacoOptions)==null?void 0:t.fontSize)=="number")i?.updateOptions({fontSize:r.monacoOptions.fontSize,automaticLayout:!1}),pe.value=r.monacoOptions.fontSize,W.value=r.monacoOptions.fontSize;else if(!Ql()){const a=Gn();a&&a>0?(pe.value=a,W.value=a):(pe.value=12,W.value=12)}Rt(),yield go(),Pe.value||Se.value||le(!1),q.value=!0,Sl.value=n,(function(){var a,c,d,f,p;if(ot(),m.value){const x=V(),g=(a=x?.getOriginalEditor)==null?void 0:a.call(x),N=(c=x?.getModifiedEditor)==null?void 0:c.call(x),oe=(F,S)=>{try{const D=F?.[S];if(typeof D!="function")return;const C=D.call(F,()=>ce());C&&He.push(C)}catch{}};try{const F=(d=x?.onDidUpdateDiff)==null?void 0:d.call(x,()=>{ce(),fe(()=>lt())});F&&He.push(F)}catch{}oe(g,"onDidContentSizeChange"),oe(N,"onDidContentSizeChange");const E=v.value;if(E&&typeof MutationObserver<"u"){const F=[".view-line",".view-lines",".view-zones",".margin-view-zones",".diff-hidden-lines",".stream-monaco-diff-unchanged-bridge",".stream-monaco-fallback-inline-delete-zone",".stream-monaco-fallback-inline-delete-margin"].join(","),S=L=>{var K;const _=L instanceof HTMLElement?L:L.parentElement;return!!((K=_?.closest)!=null&&K.call(_,F))},D=L=>{var K,_;const O=L instanceof HTMLElement?L:L.parentElement;return!!((K=O?.closest)!=null&&K.call(O,F)||(_=O?.querySelector)!=null&&_.call(O,F))},C=new MutationObserver(L=>{m.value&&lo(E)&&L.some(K=>S(K.target)||Array.from(K.addedNodes).some(D)||Array.from(K.removedNodes).some(S))&&(he(),le({preferModelDiffHeight:!0}),ee(),it())});C.observe(E,{attributeFilter:["class"],attributes:!0,childList:!0,characterData:!0,subtree:!0}),He.push({dispose:()=>C.disconnect()})}if(E){const F=S=>{const D=S.target instanceof Element?S.target:null;if(!D?.closest([".stream-monaco-unchanged-summary",".stream-monaco-unchanged-reveal",".stream-monaco-unchanged-expand",".markstream-inline-fold-proxy",".diff-hidden-lines .center"].join(",")))return;const C=Math.ceil(E.getBoundingClientRect().height||0);C>0&&(ve.value=C)};E.addEventListener("click",F,!0),He.push({dispose:()=>E.removeEventListener("click",F,!0)})}if(E&&typeof ResizeObserver<"u"){const F=new ResizeObserver(()=>{if(!m.value||(ee(),!lo(E)))return;const S=Zn(E);if(S==null)return;const D=Math.ceil(E.getBoundingClientRect().height||0),C=ve.value;if(Tt(E)&&C!=null){if(D>C+1)ve.value=D;else if(DF.disconnect()})}return}const h=de();try{const x=(f=h?.onDidContentSizeChange)==null?void 0:f.call(h,()=>ce());x&&He.push(x)}catch{}try{const x=(p=h?.onDidLayoutChange)==null?void 0:p.call(h,()=>ce());x&&He.push(x)}catch{}})(),nl(),Rt(),he(),lt(),ce(),yield A();let s=null;Ke&&(s=yield Ke(),s&&(yield A(),yield Le()));const u=s??(n==="diff"?yield oo({requireHighlight:!0}):yield(function(){return j(this,null,function*(){if($e())return yield A(),yield Le(),$e();for(let a=0;a<30;a++){if(B||m.value)return!1;const c=v.value,d=to(),f=eo(c),p=!Re.value.trim()||Yn(c);if(d&&f&&p&&(yield A(),yield Le(),!B&&!m.value&&to()&&eo(v.value)&&(!Re.value.trim()||Yn(v.value))))return!0;yield A(),yield Le()}return!1})})());B||(u?(Rt(),cn(),(yield Nl())||qe()):qe())})}function je(e,t={}){if(!se||B||r.stream===!1&&r.loading!==!1||(cl(),ko())||ge.value||v.value!==e||pn())return null;if(ze)return ze;if(X.value&&q.value)return Promise.resolve();const n=dl(),l=Dn.value;let o=!1;X.value=!0,(function(){const s=Ge.value;re&&s&&We!==s&&(We&&re.markSettled(We),We=s,re.markPending(s))})();const i=j(null,null,function*(){try{yield vi(e),Nt=null}catch(s){const u=dl(),a=l!==Dn.value,c=t.allowStaleContentRetry!==!1&&a&&Nt!==u;if(n!==u||c)return c&&(Nt=u),o=!0,X.value=!1,q.value=!1,Ce.value=!1,void(R.value=!1);throw qe(n),s}}).finally(()=>{ze===i&&(ze=null),(function(){const s=We;re&&s&&(We="",A(()=>{var u,a;if(!B){const c=(a=(u=z.value)==null?void 0:u.offsetHeight)!=null?a:0;c>0&&re.reportHeight(s,c)}re.markSettled(s)}))})(),o&&!B&&queueMicrotask(()=>{var s;const u=v.value;u&&!B&&((s=je(u))==null||s.catch(a=>{q.value=!1,R.value=!1,qe()}))})});return ze=i,i}ue(ui,e=>{e||mt()}),ue(()=>W.value,(e,t)=>{const n=m.value?V():de();n&&typeof e=="number"&&Number.isFinite(e)&&e>0&&(n.updateOptions({fontSize:e}),Se.value||le(!0))},{flush:"post",immediate:!1});let mo=0;const mi=ue(()=>[v.value,m.value,r.stream,r.loading,bt.value,Z.value,r.node.language,r.node.raw,r.node.code,r.node.loading],e=>j(null,[e],function*([t,n,l,o,i,s]){const u=++mo;if(!t||!s||Ve()||tt||l===!1&&o!==!1||!se&&(yield(function(){return j(this,null,function*(){if(typeof window>"u"||B||bt.value||ge.value)return;if(Lt)return Lt;const c=j(null,null,function*(){try{const d=yield Ui();if(B)return;if(!d)return void(ge.value=!0);const f=d.useMonaco,p=d.detectLanguage;if(typeof p=="function"&&(wl=p),typeof f!="function")return;Ne=yo();const h=f(Ne);se=h.createEditor||se,Xt=h.createDiffEditor||Xt,Ln=h.updateCode||Ln,Kt=h.updateDiff||Kt,xt=h.getEditor||xt,de=h.getEditorView||de,V=h.getDiffEditorView||V,On=h.cleanupEditor||On,Xe=h.safeClean||h.cleanupEditor||Xe,$n=h.refreshDiffPresentation||$n,zn=h.setTheme||zn,Ke=h.whenVisualReady||null,bt.value=!0}catch{if(B)return;ge.value=!0}}).finally(()=>{Lt===c&&(Lt=null)});return Lt=c,c})})(),u!==mo||r.stream===!1&&r.loading!==!1||pn()||!Z.value||!se||ge.value||X.value||ko()||B||v.value!==t)||pn())return;const a=je(t);if(a){try{yield a}catch{q.value=!1,R.value=!1,qe()}q.value&&R.value&&mi()}}));function po(e){return!!e&&typeof e=="object"&&"light"in e&&"dark"in e}function rt(e){return typeof e=="string"?e:e&&typeof e=="object"&&"name"in e?String(e.name):null}function ho(e,t){if(e===t)return!0;const n=rt(e),l=rt(t);return!!n&&n===l}function Dt(){var e;const t=(function(){if(r.theme!==void 0){const a=r.theme;return po(a)?r.isDark?a.dark:a.light:a}return r.isDark?r.darkTheme:r.lightTheme})(),n=(e=ae.value)==null?void 0:e.theme,l=t??n;if(l!=null&&typeof l=="object")return l;const o=Array.isArray(r.themes)?r.themes:[];if(!o.length||l==null)return l;const i=rt(l),s=o.map(a=>rt(a)).filter(a=>!!a);if(!i||s.includes(i))return l;const u=rt(n);return n!=null&&u&&s.includes(u)?n:o[0]}function go(){return j(this,arguments,function*(e={}){at();const t=()=>{m.value&&St(),fe(()=>{nl(),ce()})};if(e.appearanceOnly)return void t();const n=Dt();if(n)try{yield zn(n),t()}catch{}else t()})}function At(e,t){if(typeof t!="string")return;const n=wn(t),l=Eo(n),o=["plain","objectivec","objectivecpp"].includes(n)?l:n;for(const i of[o,l])i&&!e.includes(i)&&e.push(i)}ue(zt,(e,t)=>j(null,null,function*(){if(e===t||me.value||tt||(uo(),!se||!v.value)||!X.value||r.stream===!1&&r.loading!==!1||!Z.value)return;const n=ze;if(n){try{yield n}catch{}if(B||!v.value)return}if(Sl.value!==e||!X.value||!q.value)try{q.value=!1,R.value=!1,X.value=!1,Ce.value=!1,ot(),De(),Xe(),yield A(),yield je(v.value)}catch{q.value=!1,R.value=!1,qe()}}));const pi=b(()=>{var e;const t=[],n=(e=ae.value)==null?void 0:e.languages;if(Array.isArray(n))for(const l of n)At(t,l);return ro()&&At(t,r.node.language),At(t,xe.value),At(t,Fe.value),At(t,"plaintext"),t});function yo(){const e=Me(U(Me(U({wordWrap:"on",wrappingIndent:"same",themes:r.themes},ae.value||{}),{languages:pi.value,stream:!1,fontSize:rn.value,lineHeight:an.value,theme:Dt(),disableFileHeader:!0}),m.value?{diffAppearance:Rn.value}:{}),{onThemeChange(){nl()}}),t=(function(){var l;const o=(l=ae.value)==null?void 0:l.fontFamily;return typeof o=="string"&&o.trim()?o.trim():m.value?(function(){var i;if(typeof window>"u")return;const s=(i=z.value)==null?void 0:i.querySelector("pre.code-pre-fallback");if(s)return window.getComputedStyle(s).fontFamily.trim()||void 0})():void 0})();t&&(e.fontFamily!=null||(e.fontFamily=t));const n=typeof e.unsafeCSS=="string"?e.unsafeCSS:"";if(e.unsafeCSS=`[data-file], [data-diff] { --diffs-min-number-column-width-default: 2ch !important; } -${n}`.trim(),m.value){e.wordWrap=qn.value?"on":"off";const l=(function(){var o,i;const s=Wn.value;if(s===!1||typeof s=="object"&&s.enabled===!1)return null;const u=typeof s=="object"?s:Wt,a=Math.max(0,Math.floor((o=u.contextLineCount)!=null?o:2));return{contextLineCount:a,collapsedContextThreshold:a+Math.max(1,Math.floor((i=u.minimumLineCount)!=null?i:4))-1}})();e.unsafeCSS+=` -pre { column-gap: 0; } -pre > code { column-gap: 0; padding-block: 0; } -[data-separator="line-info"] { margin-top: 0; } -`,l?(e.parseDiffOptions=Me(U({},e.parseDiffOptions),{context:l.contextLineCount}),e.collapsedContextThreshold=l.collapsedContextThreshold,e.expandUnchanged=!1,e.hunkSeparators="line-info",e.unsafeCSS+=`[data-separator="line-info"][data-separator-last] { height: 28px; } -`):(e.expandUnchanged=!0,e.hunkSeparators="simple")}return e}function at(){const e=yo();if(!Ne)return Ne=e,Ne;for(const t of Object.keys(Ne))t in e||delete Ne[t];return Object.assign(Ne,e),Ne}const wo=b(()=>{var e,t,n,l,o,i,s,u,a,c,d,f,p,h,x;return JSON.stringify({diffLineStyle:(t=(e=ae.value)==null?void 0:e.diffLineStyle)!=null?t:"background",diffUnchangedRegionStyle:(l=(n=ae.value)==null?void 0:n.diffUnchangedRegionStyle)!=null?l:"line-info",diffHideUnchangedRegions:((o=r.monacoOptions)==null?void 0:o.diffHideUnchangedRegions)===void 0?U({},Wt):bn(r.monacoOptions.diffHideUnchangedRegions),renderSideBySide:(s=(i=ae.value)==null?void 0:i.renderSideBySide)==null||s,useInlineViewWhenSpaceIsLimited:(a=(u=ae.value)==null?void 0:u.useInlineViewWhenSpaceIsLimited)!=null&&a,enableSplitViewResizing:(d=(c=ae.value)==null?void 0:c.enableSplitViewResizing)==null||d,ignoreTrimWhitespace:(p=(f=ae.value)==null?void 0:f.ignoreTrimWhitespace)==null||p,originalEditable:(x=(h=ae.value)==null?void 0:h.originalEditable)!=null&&x})}),bo=$(0);function dl(){var e;const t=Dt();return JSON.stringify({kind:zt.value,language:Fe.value,structural:wo.value,optionsRevision:bo.value,settledContentGeneration:Cl.value,theme:(e=rt(t))!=null?e:t==null?null:"custom",isDark:r.isDark})}ue(()=>[r.monacoOptions,r.theme,r.themes,r.lightTheme,r.darkTheme],()=>{bo.value+=1},{deep:!0}),ue(()=>[Re.value,r.node.originalCode,r.node.updatedCode],()=>{Dn.value+=1,Ve()||(Cl.value+=1)});const ut=b(()=>dl());function cl(){me.value&&et.value!==ut.value&&(me.value=!1,et.value=null,Nt=null,An=null,X.value=!1,q.value=!1,Ce.value=!1,R.value=!1,Ht.value=!1)}function ko(){return cl(),me.value&&et.value===ut.value}function qe(e=ut.value){et.value=e,me.value=!0,Ht.value=!1}return ue(ut,()=>j(null,null,function*(){if(tt||!me.value||et.value===ut.value||!se||!v.value||ge.value||B||!Z.value||r.stream===!1&&r.loading!==!1||pn())return;const e=ut.value;tt=!0;try{if(cl(),me.value)return;yield je(v.value)}catch{q.value=!1,R.value=!1,qe()}finally{An=e,yield A(),tt=!1}})),ue(()=>[r.monacoOptions,Z.value],()=>{var e,t;if(at(),!se||!Z.value)return;const n=m.value?V():de(),l=typeof((e=r.monacoOptions)==null?void 0:e.fontSize)=="number"?r.monacoOptions.fontSize:Number.isFinite(W.value)?W.value:void 0;typeof l=="number"&&Number.isFinite(l)&&l>0&&((t=n?.updateOptions)==null||t.call(n,{fontSize:l})),le(!1)},{deep:!0}),ue(()=>[Dt(),Rn.value,bt.value,X.value,Z.value],([e],t)=>{bt.value&&q.value&&Z.value&&go({appearanceOnly:t!=null&&ho(e,t[0])})},{flush:"post"}),ue(()=>[wo.value,bt.value,Z.value],(e,t)=>j(null,[e,t],function*([n,l,o],[i]){if(at(),!l||!o||!se||!v.value||!X.value||n===i||r.stream===!1&&r.loading!==!1)return;const s=ze;if(s){try{yield s}catch{}if(B||!v.value)return}try{q.value=!1,R.value=!1,X.value=!1,Ce.value=!1,ot(),De(),Xe(),yield A(),yield je(v.value,{allowStaleContentRetry:!1})}catch{q.value=!1,R.value=!1,qe()}}),{flush:"post"}),ue(()=>[r.loading,Z.value],(e,t)=>j(null,[e,t],function*([n,l],o){if(!l)return;const i=o?.[0];if(i===!1&&n!==!1&&m.value&&X.value&&(yield A(),fe(()=>{j(null,null,function*(){const u=ze;if(u)try{yield u}catch{}!B&&m.value&&r.loading!==!1&&(at(),St(),ce())})})),n)return;const s=i!==void 0&&i!==!1;yield A(),fe(()=>{j(null,null,function*(){var u,a;try{if(s&&(yield(function(){return j(this,null,function*(){if(!me.value||!se||!v.value||ge.value||B||!Z.value)return!1;if(An===ut.value)return!0;tt=!0;try{me.value=!1,et.value=null,Nt=null,X.value=!1,q.value=!1,Ce.value=!1,R.value=!1,ot(),De(),Xe(),yield A();try{yield je(v.value)}catch{q.value=!1,R.value=!1,qe()}}finally{yield A(),tt=!1}return!0})})()))return void le(!1);if(s&&m.value&&X.value&&jn&&v.value)return jn=!1,q.value=!1,R.value=!1,X.value=!1,Ce.value=!1,ot(),De(),Xe(),yield A(),yield je(v.value,{allowStaleContentRetry:!1}),void it(!0);if(s&&X.value)if(m.value&&v.value){const c=ze;if(c)try{yield c}catch{}at();const d=Ot(String((u=r.node.originalCode)!=null?u:""),String((a=r.node.updatedCode)!=null?a:""));if(yield io(d.original,d.updated,Fe.value),B||!m.value)return;St(),ee(!0),Hl(),he(),lt();const f=yield oo({requireHighlight:!0});B||!f||R.value||(yield Nl()),ce(),it(!0)}else uo(),co(Re.value,Fe.value);s&&m.value?(le({preferModelDiffHeight:!0,holdCurrentDiffHeight:!0}),it(!0)):le(!1)}catch{}})})}),{immediate:!0,flush:"post"}),To(()=>{ot(),De(),On(),Zt?.()}),(e,t)=>ge.value?(Y(),Sn(J(Bo),{key:0,class:pt(["code-pre-fallback",{"is-wrap":qn.value}]),style:Vt($l.value),node:El.value,loading:r.loading,"show-line-numbers":!0,"diff-inline":Ue.value,"diff-hide-unchanged-regions":Wn.value},null,8,["class","style","node","loading","diff-inline","diff-hide-unchanged-regions"])):(Y(),ie("div",{key:1,ref_key:"container",ref:z,style:Vt(ai.value),class:pt(["code-block-container rounded-lg border",[{dark:r.isDark,"is-rendering":r.loading,"is-dark":xl.value,"is-diff":m.value,"is-plain-text":Mn.value}]]),"data-markstream-code-block":"1","data-markstream-enhanced":R.value&&!ge.value?"true":"false","data-markstream-enhancement-state":Vo.value,"data-markstream-code-block-state":Ve()?"streaming":"settled","data-markstream-pending":Uo.value?"true":void 0,"data-markstream-viewport-pending":yl.value&&J(Pn)&&!Z.value?"true":void 0},[Ro(pr,{"show-header":r.showHeader,"show-collapse-button":r.showCollapseButton,"show-font-size-buttons":r.showFontSizeButtons,"enable-font-size-control":r.enableFontSizeControl,"show-copy-button":r.showCopyButton,"show-expand-button":r.showExpandButton,"show-preview-button":r.showPreviewButton,"show-tooltips":r.showTooltips,"is-dark":r.isDark,loading:r.loading,stream:k.stream,"is-collapsed":Se.value,"is-expanded":Pe.value,"copy-text":wt.value,"is-previewable":ul.value,"code-font-size":W.value,"code-font-min":10,"code-font-max":36,"default-code-font-size":pe.value,"font-baseline-ready":Go.value,"diff-stats":m.value?Ze.value:null,"diff-stats-aria-label":Wo.value,onToggleCollapse:ci,onDecreaseFont:ti,onResetFont:ni,onIncreaseFont:ei,onCopy:si,onToggleExpand:di,onPreview:fi},Oi({"header-left":Gt(()=>[ht(e.$slots,"header-left",{},()=>[w("div",xr,[w("span",{class:"icon-slot h-4 w-4 flex-shrink-0",innerHTML:ri.value},null,8,Sr),w("div",Cr,[w("div",Mr,Be(ii.value),1),vo.value?(Y(),ie("div",Br,Be(vo.value),1)):we("",!0)])])],!0)]),loading:Gt(()=>[ht(e.$slots,"loading",{loading:k.loading,stream:k.stream},()=>[t[0]||(t[0]=w("div",{class:"loading-skeleton"},[w("div",{class:"skeleton-line"}),w("div",{class:"skeleton-line"}),w("div",{class:"skeleton-line short"})],-1))],!0)]),default:Gt(()=>[vl(w("div",{class:pt(["code-editor-layer",{"code-editor-layer--collapsed":Se.value}])},[w("div",{ref_key:"codeEditor",ref:v,class:pt(["code-editor-container",k.stream?"":"code-height-placeholder"]),"data-markstream-host-hidden":Io.value?"true":void 0,style:Vt(Xo.value)},null,14,Er),Bl.value?(Y(),Sn(J(Bo),{key:0,class:pt(["code-pre-fallback",{"is-wrap":qn.value}]),style:Vt($l.value),node:El.value,"show-line-numbers":!0,"diff-inline":Ue.value,"diff-hide-unchanged-regions":Wn.value},null,8,["class","style","node","diff-inline","diff-hide-unchanged-regions"])):we("",!0)],2),[[ml,!!k.stream||!k.loading]]),nn.value&&!Yt.value&&ul.value&&xe.value==="html"?(Y(),Sn(br,{key:0,code:r.node.code,"html-preview-allow-scripts":r.htmlPreviewAllowScripts,"html-preview-sandbox":r.htmlPreviewSandbox,"is-dark":r.isDark,"on-close":()=>nn.value=!1},null,8,["code","html-preview-allow-scripts","html-preview-sandbox","is-dark","on-close"])):we("",!0)]),_:2},[e.$slots["header-right"]?{name:"header-right",fn:Gt(()=>[ht(e.$slots,"header-right",{},void 0,!0)]),key:"0"}:void 0]),1032,["show-header","show-collapse-button","show-font-size-buttons","enable-font-size-control","show-copy-button","show-expand-button","show-preview-button","show-tooltips","is-dark","loading","stream","is-collapsed","is-expanded","copy-text","is-previewable","code-font-size","default-code-font-size","font-baseline-ready","diff-stats","diff-stats-aria-label"])],14,kr))}}),[["__scopeId","data-v-ef6e4bb8"]]);export{Lr as default}; diff --git a/apps/kimi-code/dist-web/assets/CodeBlockNode-DXHZxqco.js b/apps/kimi-code/dist-web/assets/CodeBlockNode-DXHZxqco.js new file mode 100644 index 000000000..7a2304bd4 --- /dev/null +++ b/apps/kimi-code/dist-web/assets/CodeBlockNode-DXHZxqco.js @@ -0,0 +1,43 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/markstream-D5Q-JKRm.js","assets/index-BOtIzGLC.js","assets/index-CYGRyXzg.css"])))=>i.map(i=>d[i]); +import{bR as Ya,cd as Ga,bQ as aa,M as oa,bl as Ja,af as Wt,bY as Qa,ce as Xa,b$ as ra,aU as S,c0 as Za,c1 as Ka,c2 as eo,a0 as Jn,aD as ia,bE as A,az as lo,cf as Qn,ca as to,cg as no,aI as ua,aL as ul,s as rt,A as Xn,bJ as il,aY as $l,aw as nt,u as Zn,I as ao,bL as oo,v as U,au as it,t as At,bB as ro,bb as Yt,bk as sa,q as m,b7 as io,ch as uo,ci as so,cj as fo,ck as co,as as O,cl as vo,cm as mo,cn as ho,co as po,cp as go,cq as yo,cr as bo,cs as Kn,ct as ea,bO as wo,T as ko,cu as xo,b_ as So}from"./index-BOtIzGLC.js";import{B as la,g as Co,Q as Mo}from"./PreCodeBlock-txKBqZ4o.js";import{i as se,t as at}from"./safeRaf-DGuzXxDK.js";var ot=(C,b,M)=>new Promise((ve,ee)=>{var R=k=>{try{n(M.next(k))}catch(H){ee(H)}},he=k=>{try{n(M.throw(k))}catch(H){ee(H)}},n=k=>k.done?ve(k.value):Promise.resolve(k.value).then(R,he);n((M=M.apply(C,b)).next())});let Ut=!1,Hl=null,Ol=null,Dl=null;function Bo(){return ot(this,null,function*(){if(Dl)return Dl;Dl=ot(null,null,function*(){if(!Ol)try{if(Ol=(function(C){var b,M,ve;const ee=C,R=typeof ee?.createCodeBlockRuntime=="function"||typeof ee?.useMonaco=="function"?ee:C?.default,he=(b=R?.createCodeBlockRuntime)!=null?b:R?.useMonaco;return typeof he!="function"?null:{createCodeBlockRuntime:n=>he.call(R,n),detectLanguage:(M=R?.detectLanguage)==null?void 0:M.bind(R),preloadStreamDiffs:(ve=R?.preloadStreamDiffs)==null?void 0:ve.bind(R)}})(yield Ya(()=>import("./markstream-D5Q-JKRm.js"),__vite__mapDeps([0,1,2]))),!Ol)return null}catch{return null}try{return yield(function(C){return ot(this,null,function*(){return Ut?void 0:Hl||(Hl=ot(null,null,function*(){const M=C?.preloadStreamDiffs;typeof M=="function"&&(yield M()),Ut=!0}).finally(()=>{Hl=null}),Hl)})})(Ol),Ga(),Ol}catch{return null}});try{return yield Dl}finally{Dl=null}})}var Po=Object.defineProperty,$o=Object.defineProperties,Ho=Object.getOwnPropertyDescriptors,ta=Object.getOwnPropertySymbols,Oo=Object.prototype.hasOwnProperty,Do=Object.prototype.propertyIsEnumerable,na=(C,b,M)=>b in C?Po(C,b,{enumerable:!0,configurable:!0,writable:!0,value:M}):C[b]=M,Ce=(C,b)=>{for(var M in b||(b={}))Oo.call(b,M)&&na(C,M,b[M]);if(ta)for(var M of ta(b))Do.call(b,M)&&na(C,M,b[M]);return C},Nl=(C,b)=>$o(C,Ho(b)),D=(C,b,M)=>new Promise((ve,ee)=>{var R=k=>{try{n(M.next(k))}catch(H){ee(H)}},he=k=>{try{n(M.throw(k))}catch(H){ee(H)}},n=k=>k.done?ve(k.value):Promise.resolve(k.value).then(R,he);n((M=M.apply(C,b)).next())});const No={class:"html-preview-frame__header"},Eo={class:"html-preview-frame__title"},Fo={class:"html-preview-frame__label"},To=["sandbox","srcdoc"],zo=aa(oa({__name:"HtmlPreviewFrame",props:{code:{},isDark:{type:Boolean},htmlPreviewAllowScripts:{type:Boolean},htmlPreviewSandbox:{},onClose:{type:Function},title:{}},setup(C){const b=C,M=import.meta!==void 0&&!1;let ve=null;const{t:ee}=ra(),R=m(()=>{const k=b.code||"",H=k.trim().toLowerCase();return H.startsWith(" + + + + + + + + ${k} + +`}),he=m(()=>{return k=b.htmlPreviewSandbox,H=b.htmlPreviewAllowScripts,typeof k=="string"?((function(je){if(!M||typeof console>"u"||ve===je)return;const Q=(function(El){return new Set(El.trim().toLowerCase().split(/\s+/).filter(Boolean))})(je);Q.has("allow-scripts")&&Q.has("allow-same-origin")&&(ve=je,console.warn("[markstream-vue] htmlPreviewSandbox contains both allow-scripts and allow-same-origin. Use this only for fully trusted content served from an isolated origin."))})(k),k):k!==void 0?"":H===!0?"allow-scripts":"";var k,H});function n(k){var H;k.key!=="Escape"&&k.key!=="Esc"||(H=b.onClose)==null||H.call(b)}return ia(()=>{typeof window<"u"&&window.addEventListener("keydown",n)}),ua(()=>{typeof window<"u"&&window.removeEventListener("keydown",n)}),(k,H)=>(ul(),rt(ko,{to:"body"},[U("div",{class:it(["markstream-vue",{dark:b.isDark}])},[U("div",{class:"html-preview-frame__backdrop",onClick:H[2]||(H[2]=je=>{var Q;return(Q=b.onClose)==null?void 0:Q.call(b)})},[U("div",{class:"html-preview-frame",onClick:H[1]||(H[1]=wo(()=>{},["stop"]))},[U("div",No,[U("div",Eo,[H[3]||(H[3]=U("span",{class:"html-preview-frame__dot"},null,-1)),U("span",Fo,Yt(b.title||sa(ee)("common.preview")||"Preview"),1)]),U("button",{type:"button",class:"html-preview-frame__close",onClick:H[0]||(H[0]=je=>{var Q;return(Q=b.onClose)==null?void 0:Q.call(b)})}," × ")]),U("iframe",{class:"html-preview-frame__iframe",sandbox:he.value,referrerpolicy:"no-referrer",srcdoc:R.value},null,8,To)])])],2)]))}}),[["__scopeId","data-v-24e66176"]]),Lo=["data-markstream-enhanced","data-markstream-enhancement-state","data-markstream-code-block-state","data-markstream-pending","data-markstream-viewport-pending"],_o={class:"code-header-main"},Ro=["innerHTML"],jo={class:"code-header-copy"},qo={class:"code-header-title"},Io={key:0,class:"code-header-caption"},Vo=["data-markstream-host-hidden"],Go=aa(oa({__name:"CodeBlockNode",props:{node:{},codeBlockOptions:{},clipboardWriter:{},showLineNumbers:{type:Boolean,default:void 0},isDark:{type:Boolean,default:!1},loading:{type:Boolean,default:!0},stream:{type:Boolean,default:!0},theme:{},darkTheme:{default:void 0},lightTheme:{default:void 0},isShowPreview:{type:Boolean,default:!0},enableFontSizeControl:{type:Boolean,default:!0},minWidth:{default:void 0},maxWidth:{default:void 0},themes:{},showPreviewButton:{type:Boolean,default:!0},showCollapseButton:{type:Boolean,default:!0},showFontSizeButtons:{type:Boolean,default:!0},showTooltips:{type:Boolean},htmlPreviewAllowScripts:{type:Boolean},htmlPreviewSandbox:{},customId:{},showHeader:{type:Boolean,default:!0},showCopyButton:{type:Boolean,default:!0},showExpandButton:{type:Boolean,default:!0},estimatedHeightPx:{},estimatedContentHeightPx:{},estimatedDiffInline:{type:Boolean}},emits:["previewCode","copy"],setup(C,{emit:b}){var M,ve,ee,R,he;const n=C,k=b,H=m(()=>{var e,l;return(l=n.showLineNumbers)!=null?l:((e=n.codeBlockOptions)==null?void 0:e.disableLineNumbers)!==!0}),je=Ja(),Q=Wt(Qa,null),El=Wt("markstreamHostScrollManaged",null),da=Wt(Xa,void 0),fa=m(()=>So(n,je));function Wo(e,l){}const Gt=Jn(),Jt=m(()=>{const e=Gt?.vnode.props;return!(!e||!e.onPreviewCode&&!e["onPreview-code"])}),{t:Qt}=ra(),h=S(null),ne=S(null),ut=S(!1),we=S(zn(n.node.language,n.node.code,Re())),st=m(()=>mo(we.value)),Me=m(()=>st.value==="plaintext"?"text":st.value),dt=m(()=>st.value==="plaintext"),De=S(!1),pe=S(!1),V=S(!1),ge=S(!1),_=S(!1),el=S(!1);let p=!1,sl=!1,ll=null,dl=null,qe=null,Ie=0,Ve=!1,Ne="";const Ee=S(null);let ft=0,ct=!1;const ca=Za(),Fl=Ka(),vt=eo(),Fe=io(null),W=S(typeof window>"u"||!vt.value),va=(ee=(ve=(M=Jn())==null?void 0:M.vnode.el)==null?void 0:ve.textContent)!=null?ee:"",ma=typeof window<"u"&&String((R=n.node.code)!=null?R:"").length>0&&va.includes(String(n.node.code)),Xt=S(!ma);ia(()=>{Xt.value=!0}),typeof window<"u"&&A([()=>ne.value,vt],([e,l],t,a)=>{var o,d,r;if((o=Fe.value)==null||o.destroy(),Fe.value=null,!l||W.value)return void(W.value=!0);if(!e)return void(W.value=!1);let u=!0;const c=(r=(d=Fl?.value.heavyBlockMargin)!=null?d:Fl?.value.rootMargin)!=null?r:"0px",s=ca(e,{rootMargin:c,allowIdle:!1});Fe.value=s,W.value=W.value||s.isVisible.value,s.whenVisible.then(()=>{u&&Fe.value===s&&(W.value=!0)}).catch(()=>{}),a(()=>{u=!1,s.destroy(),Fe.value===s&&(Fe.value=null)})},{immediate:!0}),lo(()=>{var e;p=!0,(function(){const l=Ne;Q&&l&&(Ne="",Q.markSettled(l))})(),(e=Fe.value)==null||e.destroy(),Fe.value=null});let ae=null,Tl=null,mt=()=>{},zl=()=>{},ht=()=>{},pt=()=>{},fl=()=>null,ie=()=>({getModel:()=>({getLineCount:()=>1}),getOption:()=>14,updateOptions:()=>{}}),Y=()=>({getModel:()=>({getLineCount:()=>1}),getOption:()=>14,updateOptions:()=>{}}),gt=()=>{},We=()=>{},yt=()=>{},tl=null,Be=null,cl=null,vl=null,Zt=()=>{var e;return String((e=n.node.language)!=null?e:"plaintext")},bt=()=>D(null,null,function*(){}),wt=!1,Ll=null;const Te=[],Kt=[];let Pe=null,ml=null;const i=m(()=>uo(n.node)),hl=S({removed:0,added:0}),ha=m(()=>`-${hl.value.removed} +${hl.value.added}`);function kt(e,l){return{original:e,updated:l}}function en(e){return String(e??"").replace(/\r\n$|\n$|\r$/,"")}function pl(e){var l;return String((l=e?.message)!=null?l:e).includes("no diff result available")}function _l(){if(!Se())try{const e=yt();e&&typeof e.catch=="function"&&e.catch(l=>{pl(l)})}catch(e){pl(e)}}const gl=m(()=>{const e=Ce({},n.codeBlockOptions||{});for(const a of["theme","themes","themeType","language","languages","stream","disableFileHeader","onThemeChange","renderCustomHeader","renderHeaderMetadata","renderHeaderPrefix","maxHeight","padding","tabSize"])delete e[a];if(!i.value)return e;const l=e.parseDiffOptions&&typeof e.parseDiffOptions=="object"?e.parseDiffOptions:{},t={diffStyle:"split",expandUnchanged:!1,collapsedContextThreshold:5,hunkSeparators:"line-info",parseDiffOptions:{context:2}};return Nl(Ce(Ce({},t),e),{parseDiffOptions:Ce(Ce({},t.parseDiffOptions),l)})}),ln=m(()=>{return(n.theme!==void 0?(e=n.theme)&&typeof e=="object"&&"light"in e&&"dark"in e:!Vn(n.darkTheme,n.lightTheme))?!!n.isDark:(function(l){var t;const a=(t=lt(l))!=null?t:"";return ho(a,n.isDark===!0)})(ol());var e}),tn=m(()=>(i.value,ln.value?"dark":"light")),nn=m(()=>i.value?tn.value==="dark":ln.value),E=m(()=>po({darkTheme:n.darkTheme,isDark:n.isDark,lightTheme:n.lightTheme,theme:n.theme,themes:n.themes})),yl=m(()=>i.value?"diff":"single"),an=S(yl.value),me=S(!1),F=S(!1),nl=S(!1),de=S(!1),Ae=S(null),xt=S(0),on=S(0),Rl=S(!1);let bl=null,Ue=!1,St=null,Ct=!1;const jl=m(()=>{var e;return!!i.value&&((e=gl.value)==null?void 0:e.diffStyle)==="unified"}),rn=m(()=>so(gl.value));function un(e){return El?.value===!0||!!e&&(!!e.closest('[data-markstream-virtual-timeline="1"], .markstream-virtual-timeline')||!!e.closest(".vue-recycle-scroller, [data-virtualizer], [data-virtual-scroll-root]"))}const pa=m(()=>un(ne.value)),ze=m(()=>!(me.value||!de.value&&F.value)),sn=m(()=>ze.value),ga=m(()=>ze.value&&!nl.value),ya=m(()=>!me.value&&!de.value&&ze.value),ba=m(()=>F.value&&!me.value?"ready":de.value?"fallback":"pending"),ql=S(!1),$e=m(()=>en(n.node.code)),dn=m(()=>i.value?n.node.diff===!0?n.node:Nl(Ce({},n.node),{diff:!0}):$e.value===n.node.code?n.node:Nl(Ce({},n.node),{code:$e.value}));function Mt(e){const l=e.detectLanguage;typeof l=="function"&&(Zt=l),ml=e,Pe=Un();const t=e.createCodeBlockRuntime(Pe);return!!t&&(ae=t.createEditor||ae,Tl=t.createDiffEditor||Tl,mt=t.updateCode||mt,zl=t.updateDiff||zl,ht=t.finalizeCode||ht,pt=t.finalizeDiff||pt,fl=t.getEditor||fl,ie=t.getEditorView||ie,Y=t.getDiffEditorView||Y,gt=t.cleanupEditor||gt,We=t.safeClean||t.cleanupEditor||We,yt=t.refreshDiffPresentation||yt,bt=t.setTheme||bt,tl=t.whenVisualReady||null,el.value=!0,!0)}const Bt=no,wa=bo,ue=S(typeof((he=n.codeBlockOptions)==null?void 0:he.fontSize)=="number"?n.codeBlockOptions.fontSize:Number.NaN),T=S(ue.value),Pt=S(null),Il=S(null),wl=S(null),Ye=S(null),ka=m(()=>{const e=ue.value,l=T.value;return typeof e=="number"&&Number.isFinite(e)&&e>0&&typeof l=="number"&&Number.isFinite(l)&&l>0}),Vl=m(()=>{var e;const l=(e=n.codeBlockOptions)==null?void 0:e.fontSize;if(typeof l=="number"&&Number.isFinite(l)&&l>0)return l;const t=T.value;return typeof t=="number"&&Number.isFinite(t)&&t>0?t:Bt}),xa=m(()=>{var e;const l=(e=n.codeBlockOptions)==null?void 0:e.lineHeight;return typeof l=="number"&&Number.isFinite(l)&&l>0?l:Vl.value===Bt?wa:Math.max(12,Math.round(1.5*Vl.value))}),Wl=m(()=>xa.value),fn=m(()=>{var e;const l=(e=n.codeBlockOptions)==null?void 0:e.tabSize;return typeof l=="number"&&Number.isFinite(l)&&l>0?l:4}),Al=m(()=>{var e;const l=(e=n.codeBlockOptions)==null?void 0:e.padding,t=typeof l=="number"&&Number.isFinite(l)&&l>=0?l:8;return{top:t,bottom:t}}),$t=m(()=>{const e=fo(n.codeBlockOptions);return Nl(Ce({},e),{fontSize:Vl.value,lineHeight:Wl.value,maxHeight:Bl(),padding:Al.value.top,paddingBottom:Al.value.bottom,tabSize:fn.value})}),Ul=m(()=>{const e=n.estimatedContentHeightPx;return typeof e=="number"&&Number.isFinite(e)&&e>0?e:null});function Yl(e){if(e==null)return null;const l=Math.ceil(e);return!Number.isFinite(l)||l<=0?null:Math.min(l,Math.ceil(Bl()))}function cn(){return!i.value&&n.stream!==!1&&n.loading!==!1}const kl=S(cn());function Gl(){return cn()||kl.value}const vn=m(()=>i.value?null:Ul.value==null||Gl()?Math.ceil((e=>{const l=String(e??"");if(!l)return 1;let t=1;for(let a=0;a{if(i.value)return null;const e=Ul.value;return e==null||Gl()?Yl(vn.value):Yl(e)}),Sa=m(()=>{const e=n.estimatedHeightPx;return typeof e=="number"&&Number.isFinite(e)&&e>0?e:null}),Jl=S(null);function Ge(){const e=Jl.value;return typeof e=="number"&&Number.isFinite(e)&&e>0?Math.round(e):null}const Ht=m(()=>{const e=Ge();return e??(!i.value&&Rl.value?null:ze.value||!F.value?mn.value:null)});function hn(e){const l=e?"hsl(152 42% 60%)":"var(--diff-added-fg)",t=e?"hsl(0 58% 58%)":"var(--diff-removed-fg)",a=e?"color-mix(in lab, #121212 80%, #4d9375)":"color-mix(in lab, #ffffff 88%, #1e754f)",o=e?"color-mix(in lab, #121212 80%, #cb7676)":"color-mix(in lab, #ffffff 88%, #ab5959)";return{"--markstream-diff-line-number-bg":"var(--markstream-diff-editor-bg)","--markstream-diff-added-fg":l,"--markstream-diff-removed-fg":t,"--markstream-diff-added-line":a,"--markstream-diff-removed-line":o,"--markstream-diff-added-line-fill":a,"--markstream-diff-added-number-fill":e?"color-mix(in lab, #121212 85%, #4d9375)":"color-mix(in lab, #ffffff 91%, #1e754f)","--markstream-diff-removed-line-fill":o,"--markstream-diff-removed-number-fill":e?"color-mix(in lab, #121212 85%, #cb7676)":"color-mix(in lab, #ffffff 91%, #ab5959)","--markstream-diff-added-gutter":`linear-gradient(90deg, ${l} 0 4px, transparent 4px 100%)`,"--markstream-diff-removed-gutter":`linear-gradient(90deg, ${t} 0 4px, transparent 4px 100%)`,"--markstream-diff-added-inline":e?"hsl(152 42% 60% / 0.28)":"var(--diff-added-inline-bg)","--markstream-diff-removed-inline":e?"hsl(0 58% 58% / 0.28)":"var(--diff-removed-inline-bg)"}}const pn=m(()=>{const e=Yl(Ul.value),l=Yl(vn.value),t=Gl(),a=Ce({},i.value||e==null||t?i.value||l==null?{}:{minHeight:`${l}px`}:{height:`${e}px`,minHeight:`${e}px`});if(a["--markstream-code-fallback-bg"]=E.value.background,a["--markstream-code-fallback-fg"]=E.value.foreground,E.value.builtin&&(a["--markstream-code-theme-bg"]=E.value.background,a["--markstream-code-theme-fg"]=E.value.foreground,a["--markstream-code-theme-line-number"]=E.value.lineNumber),a["--markstream-pre-line-number-top"]=`${Al.value.top}px`,a["--markstream-pre-line-number-left"]="0px",a["--markstream-pre-line-number-padding-left"]="2ch",a["--markstream-pre-line-number-padding-right"]="1ch",a["--markstream-pre-line-number-separator-width"]="2px",i.value){a["--markstream-pre-diff-line-height"]=`${Wl.value}px`,a["--markstream-pre-diff-pane-bottom-padding"]=(jl.value,"0px");const o=Ye.value;o!=null&&o>0&&(a.height=`${o}px`,a.minHeight=`${o}px`,a.maxHeight=`${o}px`),Object.assign(a,hn(nn.value))}return a}),gn=m(()=>Ht.value!=null&&(!F.value||Ge()!=null)),Ca=m(()=>{const e=Ht.value;if(e==null)return null;if(i.value)return Math.ceil(e);const l=Sa.value,t=Ul.value;if(l==null||t==null)return Math.ceil(e);const a=Math.max(0,Math.ceil(l)-Math.ceil(t));return Math.ceil(e+a)}),Ma=m(()=>{if(i.value&&ze.value)return{};const e=Ht.value;return gn.value&&e!=null?{minHeight:`${e}px`}:{}});function yn(){Jl.value=null}function bn(){var e,l,t,a,o,d,r,u;const c=(e=ne.value)==null?void 0:e.querySelector("pre.code-pre-fallback"),s=Y(),v=(l=c?.scrollTop)!=null?l:0;(o=(a=(t=s?.getOriginalEditor)==null?void 0:t.call(s))==null?void 0:a.setScrollTop)==null||o.call(a,v),(u=(r=(d=s?.getModifiedEditor)==null?void 0:d.call(s))==null?void 0:r.setScrollTop)==null||u.call(r,v)}function wn(){return D(this,null,function*(){return i.value?(Et(),xl(),X(!0),bn(),ye(),nl.value=!0,yield O(),X(!0),yield ke(),X(!0),Ml(),xl(),!!(yield(function(){return D(this,null,function*(){var e;if(!i.value)return!0;for(let l=0;l<4;l++){const t=xl();X(!0),Ot(t),Ba(t),yield O(),yield ke();const a=(e=ne.value)==null?void 0:e.querySelector("pre.code-pre-fallback");if(!a)return!1;if(t==null)return Ql();const o=a.getBoundingClientRect().height;if(o>0&&Math.abs(o-t)<=2)return!0}return!1})})())&&(F.value=!0,yield O(),xl(),X(!0),Ml(),ye(),se(()=>{p||se(()=>{p||((function(){var e,l;const t=(e=ne.value)==null?void 0:e.querySelector(".code-block-shell-content"),a=(l=ne.value)==null?void 0:l.querySelector(".code-editor-layer");t&&a&&(a.style.removeProperty("height"),a.style.removeProperty("min-height"),t.style.removeProperty("height"),t.style.removeProperty("min-height"))})(),fe(!0))})}),fe(),!0)):!(tl&&!(yield tl())||(nl.value=!0,yield O(),X(!0),F.value=!0,yield O(),fe(),0))})}function Ot(e){var l;if(!i.value)return;const t=h.value,a=(l=ne.value)==null?void 0:l.querySelector("pre.code-pre-fallback");if(!t||!a)return;const o=e??Number.parseFloat(t.style.height||"");if(!Number.isFinite(o)||o<=0)return;const d=Math.ceil(o),r=`${d}px`;Ye.value=d;const u=ne.value;u&&(u.dataset.markstreamDiffHandoffHeight=r),a.dataset.markstreamDiffHandoffHeight=r,a.style.setProperty("height",r),a.style.setProperty("min-height",r)}function Ba(e){var l,t,a;if(!i.value)return;const o=(l=ne.value)==null?void 0:l.querySelector(".code-block-shell-content"),d=(t=ne.value)==null?void 0:t.querySelector(".code-editor-layer");if(!o||!d)return;const r=typeof e=="number"&&Number.isFinite(e)&&e>0?Math.ceil(e):Number.parseFloat(((a=h.value)==null?void 0:a.style.height)||"");if(!Number.isFinite(r)||r<=0)return;const u=`${r}px`;d.style.height=u,d.style.minHeight=u,o.style.height=u,o.style.minHeight=u}function xl(){const e=h.value;if(e&&Ql(e)){ye();const l=Cl(e);if(l!=null&&l>0){const t=Math.ceil(l),a=Math.ceil(Bl()),o=Math.min(t,a),d=`${o}px`;return e.style.height=d,e.style.minHeight="0px",e.style.maxHeight=`${a}px`,e.style.overflow=t>a+1?"auto":"hidden",ze.value&&(Ye.value=o,Ot(o)),Le(),o}return le({preferModelDiffHeight:!0}),Ot(),Le(),Number.parseFloat(e.style.height||"")||null}return Et()}function kn(e,l=!1,t={}){const a=Math.ceil(e),o=Ge();if(o==null)return a;const d=t.allowBelowEstimatedFloor===!0;return a>=o||d?((l||d)&&_.value&&yn(),a):o}function ke(){return new Promise(e=>{let l=!1,t=null,a=null;const o=()=>{l||(l=!0,a!=null&&globalThis.clearTimeout(a),t!=null&&at(t),e())};a=globalThis.setTimeout(o,50),t=se(o)})}function xn(){var e;try{const l=h.value;if(!l)return null;const t=(e=l.querySelector(".stream-diffs-shell .stream-diffs-surface"))!=null?e:l.querySelector(".stream-diffs-shell");if(t){const a=Math.ceil(t.getBoundingClientRect().height);if(a>0)return a}}catch{}return null}function Dt(){var e,l,t,a,o,d;try{const r=i.value?(t=(l=(e=Y())==null?void 0:e.getModifiedEditor)==null?void 0:l.call(e))!=null?t:Y():ie(),u=fl(),c=(a=u?.EditorOption)==null?void 0:a.fontInfo;if(r&&c!=null){const s=(o=r.getOption)==null?void 0:o.call(r,c),v=s?.fontSize;if(typeof v=="number"&&Number.isFinite(v)&&v>0)return v}}catch{}try{const r=h.value;if(r){const u=(d=r.querySelector(".stream-diffs-shell .stream-diffs-surface"))!=null?d:r.querySelector(".stream-diffs-shell");if(u)try{if(typeof window<"u"&&typeof window.getComputedStyle=="function"){const c=window.getComputedStyle(u).fontSize,s=c&&c.match(/^(\d+(?:\.\d+)?)/);if(s)return Number.parseFloat(s[1])}}catch{}}}catch{}return null}function al(e){var l,t;try{const d=fl(),r=(l=d?.EditorOption)==null?void 0:l.lineHeight;if(r!=null){const u=(t=e?.getOption)==null?void 0:t.call(e,r);if(typeof u=="number"&&u>0)return u}}catch{}const a=xn();if(a&&a>0)return a;const o=Number.isFinite(T.value)&&T.value>0?T.value:14;return Math.max(12,Math.round(1.35*o))}function Sn(){var e;const l=(e=n.codeBlockOptions)==null?void 0:e.padding;return typeof l=="number"&&Number.isFinite(l)?2*Math.max(0,l):i.value?24:0}function Cn(e){return!!dt.value||!!e&&(Se(e)||tl!=null)}function Sl(){var e,l;i.value?hl.value=xo(String((e=n.node.originalCode)!=null?e:""),String((l=n.node.updatedCode)!=null?l:"")):hl.value={removed:0,added:0}}function Nt(){var e;if(Number.isFinite(T.value)&&T.value>0&&Number.isFinite(ue.value))return T.value;if(typeof((e=n.codeBlockOptions)==null?void 0:e.fontSize)=="number")return ue.value=n.codeBlockOptions.fontSize,T.value=n.codeBlockOptions.fontSize,n.codeBlockOptions.fontSize;const l=Dt();return l&&l>0?(ue.value=l,T.value=l,l):(ue.value=12,T.value=12,12)}function Pa(){const e=Nt(),l=Math.min(36,e+1);T.value=l}function $a(){const e=Nt(),l=Math.max(10,e-1);T.value=l}function Ha(){Nt(),Number.isFinite(ue.value)&&(T.value=ue.value)}function Mn(){var e,l,t,a,o,d,r,u,c,s,v,g,y,j;try{const z=i.value?Y():null,f=i.value?z:ie();if(!f)return null;if(z?.getOriginalEditor&&z?.getModifiedEditor){const B=(e=z.getOriginalEditor)==null?void 0:e.call(z),x=(l=z.getModifiedEditor)==null?void 0:l.call(z);(t=B?.layout)==null||t.call(B),(a=x?.layout)==null||a.call(x);const P=((o=B?.getContentHeight)==null?void 0:o.call(B))||0,Z=((d=x?.getContentHeight)==null?void 0:d.call(x))||0,be=Math.max(P,Z);if(be>0)return Math.ceil(be);const te=((c=(u=(r=B?.getModel)==null?void 0:r.call(B))==null?void 0:u.getLineCount)==null?void 0:c.call(u))||1,L=((g=(v=(s=x?.getModel)==null?void 0:s.call(x))==null?void 0:v.getLineCount)==null?void 0:g.call(v))||1,$=Math.max(te,L),I=Math.max(al(B),al(x)),G=Sn();return Math.ceil($*I+G+0)}if(f?.getContentHeight){(y=f?.layout)==null||y.call(f);const B=f.getContentHeight();if(B>0)return i.value||(Rl.value=!0),Math.ceil(B)}const w=(j=f?.getModel)==null?void 0:j.call(f);let N=1;w&&typeof w.getLineCount=="function"&&(N=w.getLineCount());const q=al(f);return Math.ceil(N*(q+1.5)+0)}catch{return null}}function Bn(){var e,l;if(i.value)return!1;try{const t=(l=(e=ie())==null?void 0:e.getContentHeight)==null?void 0:l.call(e),a=typeof t=="number"&&Number.isFinite(t)&&t>0;return a&&(Rl.value=!0),a}catch{return!1}}function Cl(e){if(typeof window>"u")return null;try{if(window.getComputedStyle(e).display==="none")return null;const l=e.querySelector("diffs-container");if(l instanceof HTMLElement){const a=l.getBoundingClientRect();if(a.height>0)return Math.ceil(a.height)}const t=e.querySelector(".stream-diffs-shell");if(t){const a=t.getBoundingClientRect();if(a.height>0)return Math.ceil(a.height)}return null}catch{return null}}function Pn(e){var l;const t=String(e??"").trim(),a=(l=t.match(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i))==null?void 0:l[1];if(a){const c=a.length===3?a.split("").map(s=>`${s}${s}`).join(""):a;return .2126*Number.parseInt(c.slice(0,2),16)+.7152*Number.parseInt(c.slice(2,4),16)+.0722*Number.parseInt(c.slice(4,6),16)}const o=t.match(/\d+(?:\.\d+)?/g);if(!o||o.length<3)return null;const[d,r,u]=o.slice(0,3).map(Number);return .2126*d+.7152*r+.0722*u}function Ml(){var e,l,t;if($n())return;const a=Dt();a&&a>0&&(Pt.value=a,T.value=a,ue.value=a);try{const o=al(i.value?(t=(l=(e=Y())==null?void 0:e.getModifiedEditor)==null?void 0:l.call(e))!=null?t:Y():ie());o&&o>0&&(Il.value=o)}catch{}try{const o=xn();o&&o>0&&(Il.value=o)}catch{}}function $n(){return i.value&&sn.value}function Et(){var e;if(!ze.value)return null;const l=h.value,t=(e=ne.value)==null?void 0:e.querySelector("pre.code-pre-fallback");if(!l||!t)return null;const a=Math.ceil(t.getBoundingClientRect().height),o=i.value?Cl(l):null,d=Math.max(a,o!=null&&o>0?Math.ceil(o):0),r=Math.ceil(Bl()),u=Math.min(d,r);return!Number.isFinite(u)||u<=0?null:(i.value&&u>a&&(Ye.value=u),l.style.height=`${u}px`,l.style.minHeight=`${u}px`,l.style.maxHeight=`${r}px`,l.style.overflow=d>r+1?"auto":"hidden",u)}function Ft(){var e,l,t,a,o,d,r,u,c;const s=h.value,v=ne.value;if(!s||!v)return;const g=s;g.style.setProperty("--markstream-diff-metadata-bg",E.value.background),g.style.setProperty("--markstream-diff-metadata-fg",E.value.lineNumber),g.style.setProperty("--diffs-tab-size",String(fn.value)),g.style.setProperty("--diffs-scrollbar-gutter-override","0px"),typeof((e=n.codeBlockOptions)==null?void 0:e.padding)=="number"?g.style.setProperty("--diffs-gap-block",`${Al.value.top}px`):g.style.removeProperty("--diffs-gap-block");const y=s.querySelector(".stream-diffs-shell")||s,j=y,z=y;let f=null,w=null,N=null;try{typeof window<"u"&&typeof window.getComputedStyle=="function"&&(f=window.getComputedStyle(y),w=j===y?f:window.getComputedStyle(j),N=z===y?f:window.getComputedStyle(z))}catch{f=null,w=null,N=null}const q=String((l=f?.getPropertyValue("--vscode-editor-foreground"))!=null?l:"").trim(),B=String((t=f?.getPropertyValue("--vscode-editor-background"))!=null?t:"").trim(),x=String((o=(a=f?.getPropertyValue("--vscode-editor-selectionBackground"))!=null?a:f?.getPropertyValue("--vscode-editor-hoverHighlightBackground"))!=null?o:"").trim(),P=q||String((r=(d=N?.color)!=null?d:f?.color)!=null?r:"").trim(),Z=B||String((c=(u=w?.backgroundColor)!=null?u:f?.backgroundColor)!=null?c:"").trim(),be=(function(){var te,L,$,I,G;try{const ce=i.value?($=(L=(te=Y())==null?void 0:te.getModifiedEditor)==null?void 0:L.call(te))!=null?$:Y():ie(),oe=fl(),re=(I=oe?.EditorOption)==null?void 0:I.fontInfo;if(ce&&re!=null){const K=(G=ce.getOption)==null?void 0:G.call(ce,re),J=K?.typicalHalfwidthCharacterWidth;if(typeof J=="number"&&Number.isFinite(J)&&J>0)return J}}catch{}return null})();if(be!=null&&(wl.value=be),i.value){const te=(L,$)=>{$?(v.style.setProperty(L,$),g.style.setProperty(L,$)):(v.style.removeProperty(L),g.style.removeProperty(L))};for(const[L,$]of Object.entries(hn(v.classList.contains("is-dark"))))te(L,$);return P?(v.style.setProperty("--markstream-diff-editor-fg",P),g.style.setProperty("--vscode-editor-foreground",P)):(v.style.removeProperty("--markstream-diff-editor-fg"),g.style.removeProperty("--vscode-editor-foreground")),Z?(v.style.setProperty("--markstream-diff-editor-bg",Z),v.style.setProperty("--markstream-diff-panel-bg",Z),v.style.setProperty("--markstream-diff-panel-bg-soft",Z),v.style.setProperty("--markstream-diff-panel-bg-strong",Z),g.style.setProperty("--vscode-editor-background",Z),g.style.backgroundColor=Z):(v.style.removeProperty("--markstream-diff-editor-bg"),v.style.removeProperty("--markstream-diff-panel-bg"),v.style.removeProperty("--markstream-diff-panel-bg-soft"),v.style.removeProperty("--markstream-diff-panel-bg-strong"),g.style.removeProperty("--vscode-editor-background"),g.style.backgroundColor=""),void(x?g.style.setProperty("--vscode-editor-selectionBackground",x):g.style.removeProperty("--vscode-editor-selectionBackground"))}if((function(te,L,$){if(!dt.value)return!1;const I=Pn(te),G=Pn(L);return $?I!=null&&I>170||G!=null&&G<110:I!=null&&I<85||G!=null&&G>190})(Z,P,v.classList.contains("is-dark")))return g.style.removeProperty("--vscode-editor-foreground"),g.style.removeProperty("--vscode-editor-background"),void g.style.removeProperty("--vscode-editor-selectionBackground");P&&g.style.setProperty("--vscode-editor-foreground",P),Z&&g.style.setProperty("--vscode-editor-background",Z),x&&g.style.setProperty("--vscode-editor-selectionBackground",x)}A(()=>[n.stream,n.loading,n.node.loading,i.value],([e,l,t,a])=>{a||e===!1||l===!1||kl.value?(a||e===!1)&&kl.value&&(kl.value=!1):(kl.value=!0,yn())},{immediate:!0});let Tt=0,zt=0;const Hn=/auto|scroll|overlay/i;function xe(e,l,t){var a;if(typeof window>"u"||i.value||(function(v){return pa.value||un(v)})(e))return;const o=Math.ceil(l),d=Math.ceil(t)-o;if(Math.abs(d)<=1)return;const r=(function(v){var g,y;if(typeof window>"u")return null;const j=(g=v?.ownerDocument)!=null?g:document,z=j.scrollingElement||j.documentElement||j.body;let f=(y=v?.parentElement)!=null?y:null;for(;f&&f!==j.body&&f!==z;){const w=window.getComputedStyle(f),N=(w.overflowY||"").toLowerCase(),q=(w.overflow||"").toLowerCase();if(Hn.test(N)||Hn.test(q))return f;f=f.parentElement}return z})(e);if(!r)return;const u=(a=e.ownerDocument)!=null?a:document,c=r===u.body||r===u.documentElement||r===u.scrollingElement,s=c?0:r.getBoundingClientRect().top;e.getBoundingClientRect().top-s>=0||(c&&typeof window.scrollBy=="function"?window.scrollBy(0,d):r.scrollTop+=d)}function Lt(){try{const e=h.value;if(!e)return;const l=e.getBoundingClientRect().height,t=Mn();if(t!=null&&t>0){const o=kn(t,!0,{allowBelowEstimatedFloor:!i.value&&_.value&&Bn()}),d=Ge();return e.style.minHeight=d!=null?`${d}px`:"0px",e.style.height=`${o}px`,e.style.maxHeight="none",e.style.overflow="visible",void xe(e,l,o)}const a=Ge();a!=null&&(e.style.minHeight=`${a}px`,e.style.height=`${a}px`,e.style.maxHeight="none",e.style.overflow="visible",xe(e,l,a))}catch{}}function Je(){for(var e,l;Te.length>0;)try{(l=(e=Te.pop())==null?void 0:e.dispose)==null||l.call(e)}catch{}ll!=null&&(at(ll),ll=null),dl!=null&&(at(dl),dl=null),qe!=null&&(at(qe),qe=null),Ie=0,Ve=!1}function Qe(){for(var e;Kt.length>0;)try{(e=Kt.pop())==null||e()}catch{}}function le(e=!1){pe.value||(De.value?Lt():(function(l={}){try{const t=h.value;if(!t)return;const a=t.getBoundingClientRect().height,o=Math.ceil(a||0),d=Bl(),r=o,u=Number.parseFloat(t.style.height||""),c=r>0?r:Number.isFinite(u)&&u>0?Math.ceil(u):0,s=i.value?(function(){var x,P,Z,be,te,L,$,I,G,ce,oe,re;if(Se())return null;try{const K=Y(),J=(x=K?.getOriginalEditor)==null?void 0:x.call(K),rl=(P=K?.getModifiedEditor)==null?void 0:P.call(K);if(!J||!rl)return null;const qa=((te=(be=(Z=J.getModel)==null?void 0:Z.call(J))==null?void 0:be.getLineCount)==null?void 0:te.call(be))||1,Ia=((I=($=(L=rl.getModel)==null?void 0:L.call(rl))==null?void 0:$.getLineCount)==null?void 0:I.call($))||1,Va=Math.max(qa,Ia),Wa=Math.max(al(J),al(rl)),Aa=Sn(),Ua=Math.max((ce=(G=J.getContentHeight)==null?void 0:G.call(J))!=null?ce:0,(re=(oe=rl.getContentHeight)==null?void 0:oe.call(rl))!=null?re:0);return Math.ceil(Math.max(Ua,Va*Wa+Aa+0))}catch{return null}})():null,v=i.value&&Ql(t);if(ft>0&&(ft--,Ee.value!=null))return void xe(t,a,_e(t,Ee.value,d,{preserveScrollableOverflow:Rt(t)}));if(i.value&&!v&&ze.value){const x=Et();if(x!=null){const P=_e(t,x,d,{allowBelowEstimatedFloor:!0});return X(!0),void xe(t,a,P)}}const g=i.value&&l.preferModelDiffHeight===!0,y=i.value?Cl(t):null,j=!i.value&&_.value&&Bn(),z=i.value&&n.loading!==!1&&(y!=null||s!=null&&r>0&&s0&&s0&&s0?c:null:s;else w=Mn();if(i.value&&w!=null&&c>0&&(n.loading!==!1||l.holdCurrentDiffHeight===!0)&&(w=Math.max(w,c)),w!=null&&w>0)return void xe(t,a,_e(t,w,d,{clearEstimatedFloor:!0,allowBelowEstimatedFloor:j||z,preserveScrollableOverflow:Rt(t),renderedStreamingDiffHeight:y}));if(Ee.value!=null)return void xe(t,a,_e(t,Ee.value,d,{preserveScrollableOverflow:Rt(t)}));const N=i.value&&n.loading!==!1?r:Math.max(r,s!=null&&s>0?s:0);if(N>0)return void xe(t,a,_e(t,N,d));const q=Ge();if(!(q==null||i.value&&n.loading!==!1&&v))return void xe(t,a,_e(t,q,d));const B=Number.parseFloat(t.style.height);!Number.isNaN(B)&&B>0?xe(t,a,_e(t,B,d)):i.value||xe(t,a,_e(t,d,d))}catch{}})(typeof e=="object"?e:{}))}function On(){Tt=0,zt=0}function X(e=!1){var l,t,a;if(pe.value)return;const o=h.value;if(!o)return;const d=i.value?Y():ie();if(d&&typeof d.layout=="function")try{const r=(l=o.getBoundingClientRect)==null?void 0:l.call(o),u=Math.ceil(((t=r?.width)!=null?t:0)||o.clientWidth||0),c=Math.ceil(((a=r?.height)!=null?a:0)||o.clientHeight||Number.parseFloat(o.style.height||"")||0);if(u>0&&c>0){if(!e&&u===Tt&&c===zt)return;Tt=u,zt=c,d.layout({width:u,height:c})}else On(),d.layout()}catch{}}function ye(){Qe()}function fe(e=!1){if(p||ll!=null)return;const l=()=>{p||(ye(),le(e),X())};ll=se(()=>{ll=null,l(),dl=se(()=>{dl=null,l()})}),Le()}function Le(e=!1){if(!i.value||p||!e&&n.loading===!1||(Ve=Ve||e,Ie=Math.max(Ie,e?18:6),qe!=null))return;const l=()=>{if(qe=null,!i.value||p||Ie<=0||!Ve&&n.loading===!1)return Ie=0,void(Ve=!1);Ie--,ye(),le({preferModelDiffHeight:!0,holdCurrentDiffHeight:Ve}),X(),Ie>0?qe=se(l):Ve=!1};qe=se(l)}function _e(e,l,t,a={}){var o;const d=i.value&&n.loading!==!1,r="renderedStreamingDiffHeight"in a?d&&(o=a.renderedStreamingDiffHeight)!=null?o:null:d?Cl(e):null,u=r!=null&&r>l+1?r:l,c=Math.min(u,t),s=a.allowBelowEstimatedFloor===!0,v=kn(c,a.clearEstimatedFloor===!0,{allowBelowEstimatedFloor:s}),g=Ge();e.style.minHeight=g==null||s?"0px":`${Math.min(g,Math.ceil(t))}px`,e.style.height=`${v}px`,e.style.maxHeight=`${Math.ceil(t)}px`;const y=a.preserveScrollableOverflow===!0||u>t+1||_t(e,v);return e.style.overflow=y?"auto":"hidden",v}function _t(e,l=0){var t;const a=Math.ceil(((t=e.getBoundingClientRect)==null?void 0:t.call(e).height)||0),o=Math.max(l,e.clientHeight||0,a);return o>0&&e.scrollHeight>o+1}function Rt(e){var l;return ct||_t(e,(l=Ee.value)!=null?l:0)}function Ql(e=h.value){return Se(e)}function Dn(e=h.value){return Se(e)}function Nn(){var e,l;if(Se())return!0;const t=(l=(e=ie())==null?void 0:e.getModel)==null?void 0:l.call(e);return typeof t?.getValue=="function"&&t.getValue()===$e.value}function Se(e=h.value){return!!e?.querySelector("diffs-container")}function En(){return n.loading!==!1||F.value}function Oa(){const e=Y();return typeof e?.getOriginalEditor=="function"||typeof e?.getModifiedEditor=="function"||typeof e?.getLineChanges=="function"}function Fn(){return D(this,null,function*(){if(!i.value)return!0;for(let e=0;e<30;e++){if(p)return!1;if(Se())return yield O(),yield ke(),!p&&Se();yield O(),yield ke()}return!1})}let jt="";function Tn(e,l,t){return D(this,null,function*(){const a=`${e}\0${l}\0${t}`;if(jt!==a){try{return yield zl(e,l,t),void(jt=a)}catch(o){if(!pl(o))throw o}if(yield O(),yield ke(),!p&&i.value)try{yield zl(e,l,t),jt=a}catch(o){if(!pl(o))throw o}}})}function Bl(){var e,l;return(l=(e=n.codeBlockOptions)==null?void 0:e.maxHeight)!=null?l:500}const qt=m(()=>n.isShowPreview&&(we.value==="html"||we.value==="svg"));function Re(){return typeof n.node.loading=="boolean"?n.node.loading:n.loading===!0}function zn(e,l,t){return!t||(function(){var a,o,d;if(!Re())return!0;const r=String((a=n.node.raw)!=null?a:""),u=(d=(o=r.split(/\r\n|\n|\r/,1)[0])==null?void 0:o.trimStart())!=null?d:"";return!/^(?:`{3,}|~{3,})/.test(u)||/\r\n|\n|\r/.test(r)})()&&String(l??"")?Qn(String(e??"")):"plain"}function Xl(){return Re()}let Xe=null,Zl=!1,Kl=0;function Ln(){Xe=null,Kl++}function _n(){return D(this,arguments,function*(e=Kl){if(!Zl){Zl=!0;try{for(;Xe&&!p&&!i.value&&e===Kl;){const l=Xe;Xe=null;try{yield Promise.resolve(mt(l.code,l.language)),yield O(),p||i.value||(le(!1),X())}catch{}}}finally{Zl=!1,!Xe||p||i.value||_n()}}})}function Rn(e,l){Xe={code:e,language:l},_n(Kl)}A(()=>[n.node.language,n.node.code,n.node.raw,n.node.loading,n.loading],([e,l,t,a,o])=>{we.value=zn(e,l,typeof a=="boolean"?a:o===!0)}),A(()=>[n.node.originalCode,n.node.updatedCode,i.value],()=>{se(()=>Sl())},{immediate:!0});let et=0;A(()=>[n.node.originalCode,n.node.updatedCode,Me.value,i.value,n.stream],e=>D(null,[e],function*([,,,l,t]){var a,o;const d=++et;if(!l||Re()||t===!1&&!V.value)return;if(t!==!1&&ae&&!V.value&&h.value)try{yield He(h.value)}catch{}const r=cl;if(r&&!ge.value){try{yield r}catch{}if(p||!i.value||d!==et)return}if(d!==et)return;const u=kt(String((a=n.node.originalCode)!=null?a:""),String((o=n.node.updatedCode)!=null?o:"")),c=n.loading===!1;c&&Ze();try{if(yield Tn(u.original,u.updated,Me.value),p||!i.value||d!==et)return;yield O(),X(!0),ye(),le(n.loading===!1||{preferModelDiffHeight:!0}),X(!0),fe(!0)}catch{return}if(c){if(p||!i.value)return;_l(),ye(),Sl(),fe(),Le(!0)}De.value&&se(()=>Lt())})),A(()=>n.node.code,e=>D(null,null,function*(){if(Re()||n.stream===!1||(we.value||(we.value=Qn(Zt(e))),i.value))return;const l=cl;if(l&&!ge.value){try{yield l}catch{}if(p||i.value)return}if(ae&&!V.value&&h.value)try{yield He(h.value)}catch{}Rn(en(n.node.code),Me.value),De.value&&se(()=>Lt())}));const Da=m(()=>{const e=we.value;return e?Kn[e]||e.charAt(0).toUpperCase()+e.slice(1):Kn[""]||"Plain Text"}),jn=m(()=>{var e;return go(String((e=n.node.raw)!=null?e:""),Da.value,i.value)}),Na=m(()=>jn.value.title),qn=m(()=>jn.value.caption),Ea=m(()=>(co.value,Mo(we.value||"",da))),Fa=m(()=>{const e={};e["--markstream-code-layout-character-width"]=wl.value==null?"1ch":`${wl.value}px`,e["--markstream-code-fallback-bg"]=E.value.background,e["--markstream-code-fallback-fg"]=E.value.foreground,E.value.builtin&&(e["--markstream-code-theme-bg"]=E.value.background,e["--markstream-code-theme-fg"]=E.value.foreground,e["--markstream-code-theme-line-number"]=E.value.lineNumber),e["--markstream-diff-added-line-fill"]=E.value.diffAddedLine,e["--markstream-diff-added-number-fill"]=E.value.diffAddedNumber,e["--markstream-diff-editor-bg"]=E.value.background,e["--markstream-diff-removed-line-fill"]=E.value.diffRemovedLine,e["--markstream-diff-removed-number-fill"]=E.value.diffRemovedNumber,e["--markstream-diff-shell-bg"]=E.value.background,e["--markstream-pre-resolved-theme-bg"]=E.value.background,e["--markstream-pre-resolved-theme-fg"]=E.value.foreground,e["--markstream-pre-resolved-theme-line-number"]=E.value.lineNumber;const l=o=>{if(o!=null)return typeof o=="number"?`${o}px`:String(o)},t=l(n.minWidth),a=l(n.maxWidth);if(t&&(e.minWidth=t),a&&(e.maxWidth=a),gn.value&&!i.value&&!pe.value){const o=Ca.value;o!=null&&(e.minHeight=`${o}px`)}return e.color="var(--markstream-code-fallback-fg, var(--markstream-code-theme-fg, var(--markstream-pre-resolved-theme-fg)))",e.backgroundColor="var(--markstream-code-fallback-bg, var(--markstream-code-theme-bg, var(--markstream-pre-resolved-theme-bg)))",i.value||(e.borderColor="var(--markstream-code-border-color, var(--code-border))"),e}),Ta=m(()=>n.showTooltips!==!1);function za(){return D(this,null,function*(){const e=n.node.code;try{n.clipboardWriter?yield n.clipboardWriter(e):typeof navigator<"u"&&navigator.clipboard&&typeof navigator.clipboard.writeText=="function"&&(yield navigator.clipboard.writeText(e)),ut.value=!0,k("copy",e),setTimeout(()=>{ut.value=!1},1e3)}catch(l){console.error("复制失败:",l)}})}function La(){De.value=!De.value;const e=i.value?Y():ie(),l=h.value;e&&l&&(De.value?(l.style.maxHeight="none",l.style.overflow="visible",le(!0)):(l.style.overflow="auto",le(!0)))}function _a(){var e,l;if(pe.value=!pe.value,pe.value){if(ct=!1,h.value){const t=Math.ceil(((l=(e=h.value).getBoundingClientRect)==null?void 0:l.call(e).height)||0);ct=_t(h.value,t)||h.value.style.overflow==="auto"||h.value.style.overflowY==="auto",t>0&&(Ee.value=t)}}else h.value&&Ee.value!=null&&(h.value.style.height=`${Ee.value}px`),ft=2,O(()=>{pe.value||p||(le(!0),X(!0))})}function Ra(){if(!qt.value)return;const e=we.value;if(Jt.value){const l=e==="html"?"text/html":"image/svg+xml",t=e==="html"?Qt("artifacts.htmlPreviewTitle")||"HTML Preview":Qt("artifacts.svgPreviewTitle")||"SVG Preview";return void k("previewCode",{node:n.node,artifactType:l,artifactTitle:t,id:`temp-${e}-${Date.now()}`})}e==="html"&&(ql.value=!ql.value)}function He(e,l={}){if(!ae||p||n.stream===!1&&n.loading!==!1||(Vt(),Gn())||me.value||h.value!==e||Xl())return null;if(Be)return Be;if(V.value&&_.value)return Promise.resolve();const t=It(),a=xt.value;let o=!1;V.value=!0,(function(){const r=fa.value;Q&&r&&Ne!==r&&(Ne&&Q.markSettled(Ne),Ne=r,Q.markPending(r))})();const d=D(null,null,function*(){try{yield(function(r){return D(this,null,function*(){var u,c;if(!ae||p)return;sl=!1;const s=yl.value;if(Ct=!1,de.value=!1,Ae.value=null,ge.value=!1,F.value=!1,nl.value=!1,Pt.value=null,Il.value=null,wl.value=null,Ye.value=null,On(),(function(){if(Rl.value=!1,Gl())return void(Jl.value=null);const f=mn.value;Jl.value=_.value||f==null?null:f})(),Je(),Qe(),(function(f){f.replaceChildren()})(r),Ze(),yield ea(An()),p)return;const v=D(null,null,function*(){var f,w;if(s==="diff"){(function(){if(wt||typeof window>"u")return;wt=!0;const q=B=>{var x;pl("reason"in B?B.reason:(x=B.error)!=null?x:B.message)&&(B.preventDefault(),B.stopImmediatePropagation())};window.addEventListener("error",q,!0),window.addEventListener("unhandledrejection",q,!0),Ll=()=>{window.removeEventListener("error",q,!0),window.removeEventListener("unhandledrejection",q,!0),wt=!1,Ll=null}})(),We();const N=kt(String((f=n.node.originalCode)!=null?f:""),String((w=n.node.updatedCode)!=null?w:""));Tl?yield Tl(r,N.original,N.updated,Me.value):yield ae(r,n.node.code,Me.value)}else yield ae(r,$e.value,Me.value);ge.value=!0}),g=v.finally(()=>{cl===g&&(cl=null)});if(cl=g,yield(function(f){return D(this,null,function*(){if(!i.value)return void(yield f);let w,N=!1;for(f.then(()=>{N=!0},q=>{N=!0,w=q});;){if(p)return;if(N){if(w)throw w;return}if(Ql()&&Oa())return;yield O(),yield ke()}})})(g),p||yl.value!==s)return;ge.value=!0;const y=(u=n.codeBlockOptions)==null?void 0:u.fontSize;if(typeof y=="number"&&Number.isFinite(y)&&y>0){const f=s==="diff"?Y():ie();(c=f?.updateOptions)==null||c.call(f,{fontSize:y}),ue.value=y,T.value=y}else if(!$n()){const f=Dt();f&&f>0?(ue.value=f,T.value=f):(ue.value=12,T.value=12)}for(Ml();sl;)if(sl=!1,yield Wn(),p)return;De.value||pe.value||le(!1),_.value=!0,an.value=s,(function(){var f,w,N,q,B;if(Je(),i.value){const P=Y(),Z=(f=P?.getOriginalEditor)==null?void 0:f.call(P),be=(w=P?.getModifiedEditor)==null?void 0:w.call(P),te=($,I)=>{try{const G=$?.[I];if(typeof G!="function")return;const ce=G.call($,()=>fe());ce&&Te.push(ce)}catch{}};try{const $=(N=P?.onDidUpdateDiff)==null?void 0:N.call(P,()=>{fe(),se(()=>Sl())});$&&Te.push($)}catch{}te(Z,"onDidContentSizeChange"),te(be,"onDidContentSizeChange");const L=h.value;if(L&&typeof MutationObserver<"u"){const $=["diffs-container",".stream-diffs-shell",".stream-diffs-surface"].join(","),I=oe=>{var re;const K=oe instanceof HTMLElement?oe:oe.parentElement;return!!((re=K?.closest)!=null&&re.call(K,$))},G=oe=>{var re,K;const J=oe instanceof HTMLElement?oe:oe.parentElement;return!!((re=J?.closest)!=null&&re.call(J,$)||(K=J?.querySelector)!=null&&K.call(J,$))},ce=new MutationObserver(oe=>{i.value&&En()&&oe.some(re=>I(re.target)||Array.from(re.addedNodes).some(G)||Array.from(re.removedNodes).some(I))&&(ye(),le({preferModelDiffHeight:!0}),X(),Le())});ce.observe(L,{attributeFilter:["class"],attributes:!0,childList:!0,characterData:!0,subtree:!0}),Te.push({dispose:()=>ce.disconnect()})}if(L&&typeof ResizeObserver<"u"){const $=new ResizeObserver(()=>{if(!i.value||(X(),!En()))return;const I=Cl(L);I!=null&&(Math.ceil(L.getBoundingClientRect().height||0)<=I+1||(ye(),le({preferModelDiffHeight:!0}),X()))});$.observe(L),Te.push({dispose:()=>$.disconnect()})}return}const x=ie();try{const P=(q=x?.onDidContentSizeChange)==null?void 0:q.call(x,()=>fe());P&&Te.push(P)}catch{}try{const P=(B=x?.onDidLayoutChange)==null?void 0:B.call(x,()=>fe());P&&Te.push(P)}catch{}})(),Ft(),Ml(),ye(),Sl(),fe(),yield O();let j=null;tl&&(j=yield tl(),j&&(yield O(),yield ke()));const z=j??(s==="diff"?yield Fn():yield(function(){return D(this,null,function*(){if(Se())return yield O(),yield ke(),Se();for(let f=0;f<30;f++){if(p||i.value)return!1;const w=h.value,N=Nn(),q=Dn(w),B=!$e.value.trim()||Cn(w);if(N&&q&&B&&(yield O(),yield ke(),!p&&!i.value&&Nn()&&Dn(h.value)&&(!$e.value.trim()||Cn(h.value))))return!0;yield O(),yield ke()}return!1})})());p||(z?(Ml(),xl(),(yield wn())||Oe()):Oe())})})(e),bl=null}catch(r){const u=It(),c=a!==xt.value,s=l.allowStaleContentRetry!==!1&&c&&bl!==u;if(t!==u||s)return s&&(bl=u),o=!0,V.value=!1,_.value=!1,ge.value=!1,void(F.value=!1);throw Oe(t),r}}).finally(()=>{Be===d&&(Be=null),(function(){const r=Ne;Q&&r&&(Ne="",O(()=>{var u,c;if(!p){const s=(c=(u=ne.value)==null?void 0:u.offsetHeight)!=null?c:0;s>0&&Q.reportHeight(r,s)}Q.markSettled(r)}))})(),o&&!p&&queueMicrotask(()=>{var r;const u=h.value;u&&!p&&((r=He(u))==null||r.catch(c=>{_.value=!1,F.value=!1,Oe()}))})});return Be=d,d}A(Ta,e=>{e||to()}),A(()=>T.value,(e,l)=>{var t;const a=i.value?Y():ie();a&&typeof e=="number"&&Number.isFinite(e)&&e>0&&((t=a.updateOptions)==null||t.call(a,{fontSize:e}),pe.value||le(!0))},{flush:"post",immediate:!1});let In=0;const ja=A(()=>[h.value,i.value,n.stream,n.loading,el.value,W.value,n.node.language,n.node.raw,n.node.code,n.node.loading],e=>D(null,[e],function*([l,t,a,o,d,r]){const u=++In;if(!l||!r||Re()||Ue||a===!1&&o!==!1||!ae&&(yield(function(){return D(this,null,function*(){if(typeof window>"u"||p||el.value||me.value)return;if(vl)return vl;const s=D(null,null,function*(){try{const v=yield Bo();if(p)return;if(!v)return void(me.value=!0);Mt(v)}catch{if(p)return;me.value=!0}}).finally(()=>{vl===s&&(vl=null)});return vl=s,s})})(),u!==In||n.stream===!1&&n.loading!==!1||Xl()||!W.value||!ae||me.value||V.value||Gn()||p||h.value!==l)||Xl())return;const c=He(l);if(c){try{yield c}catch{_.value=!1,F.value=!1,Oe()}_.value&&F.value&&ja()}}));function lt(e){return typeof e=="string"?e:null}function Vn(e,l){if(e===l)return!0;const t=lt(e),a=lt(l);return!!t&&t===a}function ol(){return vo({darkTheme:n.darkTheme,isDark:n.isDark,lightTheme:n.lightTheme,theme:n.theme,themes:n.themes})}function Wn(){return D(this,arguments,function*(e={}){Ze();const l=()=>{i.value&&_l(),se(()=>{Ft(),fe()})};if(e.appearanceOnly)return void l();const t=ol();if(t)try{yield ea(An()),yield bt(t),l()}catch{}else l()})}function An(){const e=n.themes;return e&&typeof e[0]=="string"&&typeof e[1]=="string"?{dark:e[0],light:e[1]}:ol()}function Un(){var e,l,t,a,o;const d=$t.value,r=Nl(Ce({},gl.value||{}),{wordWrap:d.overflow==="wrap"?"on":"off",overflow:d.overflow,themes:n.themes,stream:!1,MAX_HEIGHT:(l=(e=n.codeBlockOptions)==null?void 0:e.maxHeight)!=null?l:500,fontSize:Vl.value,lineHeight:Wl.value,theme:ol(),themeType:n.isDark?"dark":"light",disableLineNumbers:!H.value,disableFileHeader:!0,workerManager:(o=(a=(t=gl.value)==null?void 0:t.workerManager)!=null?a:yo())!=null?o:void 0,onThemeChange(){Ft()}}),u=(function(){var g;const y=(g=gl.value)==null?void 0:g.fontFamily;return typeof y=="string"&&y.trim()?y.trim():i.value?(function(){var j;if(typeof window>"u")return;const z=(j=ne.value)==null?void 0:j.querySelector("pre.code-pre-fallback");if(z)return window.getComputedStyle(z).fontFamily.trim()||void 0})():void 0})();u&&(r.fontFamily!=null||(r.fontFamily=u));const c=typeof r.unsafeCSS=="string"?r.unsafeCSS:"",s=` +[data-file] [data-line], +[data-diff] [data-line] { + white-space: ${(v=d.overflow)==="wrap"?"pre-wrap":"pre"} !important; + overflow-wrap: ${v==="wrap"?"anywhere":"normal"} !important; + word-break: normal !important; +}`;var v;return r.unsafeCSS=`[data-file], [data-diff] { --diffs-min-number-column-width-default: 2ch !important; } +${s} + +[data-no-newline], +[data-gutter-buffer="metadata"] { + --diffs-computed-decoration-bg: var(--markstream-diff-metadata-bg) !important; + --diffs-computed-diff-line-bg: var(--markstream-diff-metadata-bg) !important; + --diffs-computed-selected-line-bg: var(--markstream-diff-metadata-bg) !important; + --diffs-line-bg: var(--markstream-diff-metadata-bg) !important; + color: var(--markstream-diff-metadata-fg) !important; + background-color: var(--markstream-diff-metadata-bg) !important; +} +${c}`.trim(),r}function Ze(){const e=Un();if(!Pe)return Pe=e,Pe;for(const l of Object.keys(Pe))l in e||delete Pe[l];return Object.assign(Pe,e),Pe}A(yl,(e,l)=>D(null,null,function*(){if(e===l||de.value||Ue||(Ln(),!ae||!h.value)||!V.value||n.stream===!1&&n.loading!==!1||!W.value)return;const t=Be;if(t){try{yield t}catch{}if(p||!h.value)return}if(an.value!==e||!V.value||!_.value)try{_.value=!1,F.value=!1,V.value=!1,ge.value=!1,Je(),Qe(),We(),yield O(),yield He(h.value)}catch{_.value=!1,F.value=!1,Oe()}}));const tt=S(0),Yn=m(()=>String(tt.value));let Pl=!1;function It(){var e;const l=ol();return JSON.stringify({kind:yl.value,language:Me.value,structural:Yn.value,optionsRevision:tt.value,settledContentGeneration:on.value,theme:(e=lt(l))!=null?e:l==null?null:"custom",isDark:n.isDark})}A(()=>{var e;return(e=n.codeBlockOptions)==null?void 0:e.fontSize},e=>{const l=typeof e=="number"&&Number.isFinite(e)&&e>0?e:Bt;ue.value=l,T.value=l,Pt.value=null,Il.value=null,wl.value=null}),A(()=>[n.codeBlockOptions,n.showLineNumbers],()=>{tt.value+=1,n.stream===!1&&n.loading!==!1&&(Pl=!0)},{deep:!0}),A(()=>[$e.value,n.node.originalCode,n.node.updatedCode],()=>{xt.value+=1,Re()||(on.value+=1)});const Ke=m(()=>It());function Vt(){de.value&&Ae.value!==Ke.value&&(de.value=!1,Ae.value=null,bl=null,St=null,V.value=!1,_.value=!1,ge.value=!1,F.value=!1,nl.value=!1)}function Gn(){return Vt(),de.value&&Ae.value===Ke.value}function Oe(e=Ke.value){Ae.value=e,de.value=!0,nl.value=!1}return A(Ke,()=>D(null,null,function*(){if(Ue||!de.value||Ae.value===Ke.value||!ae||!h.value||me.value||p||!W.value||n.stream===!1&&n.loading!==!1||Xl())return;const e=Ke.value;Ue=!0;try{if(Vt(),de.value)return;yield He(h.value)}catch{_.value=!1,F.value=!1,Oe()}finally{St=e,yield O(),Ue=!1}})),A(()=>[n.codeBlockOptions,W.value],()=>{var e,l;if(Ze(),!ae||!W.value)return;const t=i.value?Y():ie(),a=typeof((e=n.codeBlockOptions)==null?void 0:e.fontSize)=="number"?n.codeBlockOptions.fontSize:Number.isFinite(T.value)?T.value:void 0;typeof a=="number"&&Number.isFinite(a)&&a>0&&((l=t?.updateOptions)==null||l.call(t,{fontSize:a})),le(!1)},{deep:!0}),A(()=>[ol(),tn.value,el.value,V.value,W.value],([e,l],t)=>{if(!el.value||!W.value)return;const a=t!=null&&Vn(e,t[0]),o=t!=null&&l!==t[1];_.value?(sl=!1,Wn({appearanceOnly:a})):a&&!o||(sl=!0)},{flush:"post"}),A(()=>[Yn.value,el.value,W.value],(e,l)=>D(null,[e,l],function*([t,a,o],[d]){if(Ze(),!a||!o||!ae||!h.value||!V.value||t===d)return;if(n.stream===!1&&n.loading!==!1)return void(Pl=!0);Pl=!1;const r=Be;if(r){try{yield r}catch{}if(p||!h.value)return}try{_.value=!1,F.value=!1,V.value=!1,ge.value=!1,Je(),Qe(),We(),ml&&Mt(ml),yield O(),yield He(h.value,{allowStaleContentRetry:!1})}catch{_.value=!1,F.value=!1,Oe()}}),{flush:"post"}),A(()=>[n.loading,W.value],([e,l])=>{e===!1&&l&&Pl&&(Pl=!1,tt.value+=1)},{flush:"post"}),A(()=>[n.loading,W.value],(e,l)=>D(null,[e,l],function*([t,a],o){if(!a)return;const d=o?.[0];if(d===!1&&t!==!1&&i.value&&V.value&&(yield O(),se(()=>{D(null,null,function*(){const u=Be;if(u)try{yield u}catch{}!p&&i.value&&n.loading!==!1&&(Ze(),_l(),fe())})})),t)return;const r=d!==void 0&&d!==!1;yield O(),se(()=>{D(null,null,function*(){var u,c;try{if(r&&(yield(function(){return D(this,null,function*(){if(!de.value||!ae||!h.value||me.value||p||!W.value)return!1;if(St===Ke.value)return!0;Ue=!0;try{de.value=!1,Ae.value=null,bl=null,V.value=!1,_.value=!1,ge.value=!1,F.value=!1,Je(),Qe(),We(),ml&&Mt(ml),yield O();try{yield He(h.value)}catch{_.value=!1,F.value=!1,Oe()}}finally{yield O(),Ue=!1}return!0})})()))return void le(!1);if(r&&i.value&&V.value&&Ct&&h.value)return Ct=!1,_.value=!1,F.value=!1,V.value=!1,ge.value=!1,Je(),Qe(),We(),yield O(),yield He(h.value,{allowStaleContentRetry:!1}),void Le(!0);if(r&&V.value)if(i.value&&h.value){const s=Be;if(s)try{yield s}catch{}Ze();const v=kt(String((u=n.node.originalCode)!=null?u:""),String((c=n.node.updatedCode)!=null?c:""));if(yield Tn(v.original,v.updated,Me.value),p||!i.value)return;yield Promise.resolve(pt()),_l(),X(!0),bn(),ye(),Sl();const g=yield Fn();p||!g||F.value||(yield wn()),fe(),Le(!0)}else Ln(),Rn($e.value,Me.value),yield new Promise(s=>{const v=()=>{p?s():Zl||Xe?setTimeout(v,16):s()};v()}),p||i.value||(yield Promise.resolve(ht()));r&&i.value?(le({preferModelDiffHeight:!0,holdCurrentDiffHeight:!0}),Le(!0)):le(!1)}catch{}})})}),{immediate:!0,flush:"post"}),ua(()=>{Je(),Qe(),gt(),Ll?.()}),(e,l)=>{var t;return me.value?(ul(),rt(la,{key:0,style:nt(pn.value),node:dn.value,loading:n.loading,"show-line-numbers":H.value,"diff-inline":jl.value,"diff-hide-unchanged-regions":rn.value,"code-block-options":n.codeBlockOptions,"resolved-visual-options":$t.value,"reserved-height-px":i.value&&(t=Ye.value)!=null?t:void 0,"is-dark":n.isDark,theme:n.theme,"dark-theme":n.darkTheme,"light-theme":n.lightTheme,themes:n.themes,"show-header":n.showHeader,"show-copy-button":n.showCopyButton,"clipboard-writer":n.clipboardWriter,"show-tooltips":n.showTooltips,onCopy:l[0]||(l[0]=a=>k("copy",a))},Xn({_:2},[e.$slots["header-left"]?{name:"header-left",fn:il(()=>[$l(e.$slots,"header-left",{},void 0,!0)]),key:"0"}:void 0,e.$slots["header-right"]?{name:"header-right",fn:il(()=>[$l(e.$slots,"header-right",{},void 0,!0)]),key:"1"}:void 0]),1032,["style","node","loading","show-line-numbers","diff-inline","diff-hide-unchanged-regions","code-block-options","resolved-visual-options","reserved-height-px","is-dark","theme","dark-theme","light-theme","themes","show-header","show-copy-button","clipboard-writer","show-tooltips"])):(ul(),Zn("div",{key:1,ref_key:"container",ref:ne,style:nt(Fa.value),class:it(["code-block-container rounded-lg border",[{dark:n.isDark,"is-rendering":n.loading,"is-dark":nn.value,"is-diff":i.value,"is-plain-text":dt.value}]]),"data-markstream-code-block":"1","data-markstream-enhanced":F.value&&!me.value?"true":"false","data-markstream-enhancement-state":ba.value,"data-markstream-code-block-state":Re()?"streaming":"settled","data-markstream-pending":ya.value?"true":void 0,"data-markstream-viewport-pending":Xt.value&&sa(vt)&&!W.value?"true":void 0},[ao(Co,{"show-header":n.showHeader,"show-collapse-button":n.showCollapseButton,"show-font-size-buttons":n.showFontSizeButtons,"enable-font-size-control":n.enableFontSizeControl,"show-copy-button":n.showCopyButton,"show-expand-button":n.showExpandButton,"show-preview-button":n.showPreviewButton,"show-tooltips":n.showTooltips,"is-dark":n.isDark,loading:n.loading,stream:C.stream,"is-collapsed":pe.value,"is-expanded":De.value,"copy-text":ut.value,"is-previewable":qt.value,"code-font-size":T.value,"code-font-min":10,"code-font-max":36,"default-code-font-size":ue.value,"font-baseline-ready":ka.value,"diff-stats":i.value?hl.value:null,"diff-stats-aria-label":ha.value,onToggleCollapse:_a,onDecreaseFont:$a,onResetFont:Ha,onIncreaseFont:Pa,onCopy:za,onToggleExpand:La,onPreview:Ra},Xn({"header-left":il(()=>[$l(e.$slots,"header-left",{},()=>[U("div",_o,[U("span",{class:"icon-slot h-4 w-4 flex-shrink-0",innerHTML:Ea.value},null,8,Ro),U("div",jo,[U("div",qo,Yt(Na.value),1),qn.value?(ul(),Zn("div",Io,Yt(qn.value),1)):At("",!0)])])],!0)]),loading:il(()=>[$l(e.$slots,"loading",{loading:C.loading,stream:C.stream},()=>[l[1]||(l[1]=U("div",{class:"loading-skeleton"},[U("div",{class:"skeleton-line"}),U("div",{class:"skeleton-line"}),U("div",{class:"skeleton-line short"})],-1))],!0)]),default:il(()=>{var a;return[oo(U("div",{class:it(["code-editor-layer",{"code-editor-layer--collapsed":pe.value}])},[U("div",{ref_key:"codeEditor",ref:h,class:it(["code-editor-container",C.stream?"":"code-height-placeholder"]),"data-markstream-host-hidden":ga.value?"true":void 0,style:nt(Ma.value)},null,14,Vo),sn.value?(ul(),rt(la,{key:0,style:nt(pn.value),node:dn.value,loading:n.loading,"show-line-numbers":H.value,"diff-inline":jl.value,"diff-hide-unchanged-regions":rn.value,"code-block-options":n.codeBlockOptions,"resolved-visual-options":$t.value,"reserved-height-px":i.value&&(a=Ye.value)!=null?a:void 0,"is-dark":n.isDark,theme:n.theme,"dark-theme":n.darkTheme,"light-theme":n.lightTheme,themes:n.themes,"show-toolbar":!1},null,8,["style","node","loading","show-line-numbers","diff-inline","diff-hide-unchanged-regions","code-block-options","resolved-visual-options","reserved-height-px","is-dark","theme","dark-theme","light-theme","themes"])):At("",!0)],2),[[ro,!!C.stream||!C.loading]]),ql.value&&!Jt.value&&qt.value&&we.value==="html"?(ul(),rt(zo,{key:0,code:n.node.code,"html-preview-allow-scripts":n.htmlPreviewAllowScripts,"html-preview-sandbox":n.htmlPreviewSandbox,"is-dark":n.isDark,"on-close":()=>ql.value=!1},null,8,["code","html-preview-allow-scripts","html-preview-sandbox","is-dark","on-close"])):At("",!0)]}),_:2},[e.$slots["header-right"]?{name:"header-right",fn:il(()=>[$l(e.$slots,"header-right",{},void 0,!0)]),key:"0"}:void 0]),1032,["show-header","show-collapse-button","show-font-size-buttons","enable-font-size-control","show-copy-button","show-expand-button","show-preview-button","show-tooltips","is-dark","loading","stream","is-collapsed","is-expanded","copy-text","is-previewable","code-font-size","default-code-font-size","font-baseline-ready","diff-stats","diff-stats-aria-label"])],14,Lo))}}}),[["__scopeId","data-v-2c9e024e"]]);export{Go as default}; diff --git a/apps/kimi-code/dist-web/assets/PreCodeBlock-txKBqZ4o.js b/apps/kimi-code/dist-web/assets/PreCodeBlock-txKBqZ4o.js new file mode 100644 index 000000000..a9ef3669b --- /dev/null +++ b/apps/kimi-code/dist-web/assets/PreCodeBlock-txKBqZ4o.js @@ -0,0 +1 @@ +import{M as ee,b$ as ne,aL as v,u as h,aY as H,v as t,bb as x,t as y,bk as u,aw as oe,bO as le,G as ie,I as G,bJ as A,F as I,ca as j,g as de,bL as W,bB as Y,au as se,aU as E,q as f,c9 as ce,d3 as ue,cf as te,d4 as me,d5 as pe,bl as ve,af as fe,ce as he,az as ge,A as be,d6 as Z,ar as X,s as we,d7 as ke,cp as ye,ch as q,ck as xe,co as Be,cs as J,cj as Ce}from"./index-BOtIzGLC.js";var Se=Object.defineProperty,Fe=Object.defineProperties,Me=Object.getOwnPropertyDescriptors,D=Object.getOwnPropertySymbols,ae=Object.prototype.hasOwnProperty,re=Object.prototype.propertyIsEnumerable,Q=(a,d,e)=>d in a?Se(a,d,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[d]=e,N=(a,d)=>{for(var e in d||(d={}))ae.call(d,e)&&Q(a,e,d[e]);if(D)for(var e of D(d))re.call(d,e)&&Q(a,e,d[e]);return a},_=(a,d)=>Fe(a,Me(d)),K=(a,d,e)=>new Promise((g,b)=>{var z=m=>{try{w(e.next(m))}catch(C){b(C)}},T=m=>{try{w(e.throw(m))}catch(C){b(C)}},w=m=>m.done?g(m.value):Promise.resolve(m.value).then(z,T);w((e=e.apply(a,d)).next())});function ze(a,d){if(d===void 0)return ue(a);if(d){const g=d(a);if(g!=null&&g!=="")return g}const e=te(a);return me(e)||pe()}const Te={key:0,class:"code-block-header flex justify-between items-center border-b px-[var(--ms-inset-panel-x)] py-[var(--ms-inset-panel-y)] border-[var(--code-border)] bg-[var(--code-header-bg)] text-[var(--code-fg)]"},Pe={class:"flex items-center gap-0.5"},je=["aria-label"],He={class:"code-diff-stat removed"},Oe={class:"code-diff-stat added"},$e=["aria-label"],Ne={key:0,xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},Ee={key:1,xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},Le=["aria-pressed"],Re={key:3,class:"relative"},_e=["aria-expanded"],Ae=["disabled"],De=["disabled"],Ve=["disabled"],Ue={key:0,xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},Ge={key:1,xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},Ie={class:"code-loading-placeholder"},We={class:"sr-only","aria-live":"polite",role:"status"},Ye=ee({__name:"CodeBlockShell",props:{showHeader:{type:Boolean,default:!0},showCollapseButton:{type:Boolean,default:!0},showFontSizeButtons:{type:Boolean,default:!0},enableFontSizeControl:{type:Boolean,default:!0},showCopyButton:{type:Boolean,default:!0},showExpandButton:{type:Boolean,default:!0},showPreviewButton:{type:Boolean,default:!0},showTooltips:{type:Boolean,default:!0},isDark:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},stream:{type:Boolean,default:!1},isCollapsed:{type:Boolean,default:!1},isExpanded:{type:Boolean,default:!1},copyText:{type:Boolean,default:!1},isPreviewable:{type:Boolean,default:!1},codeFontSize:{},codeFontMin:{},codeFontMax:{},defaultCodeFontSize:{},fontBaselineReady:{type:Boolean,default:!1},diffStats:{},diffStatsAriaLabel:{}},emits:["toggleCollapse","decreaseFont","resetFont","increaseFont","copy","toggleExpand","preview"],setup(a,{emit:d}){const e=a,g=d,b=E(!1),z=E(null),T=E(null);function w(){j(!0),b.value=!b.value,b.value&&document.addEventListener("click",C,{once:!0,capture:!0})}function m(){j(!0),b.value=!1}function C(p){var o,i;const R=p.target;(o=z.value)!=null&&o.contains(R)||(i=T.value)!=null&&i.contains(R)?document.addEventListener("click",C,{once:!0,capture:!0}):m()}const O=f(()=>e.showFontSizeButtons&&e.enableFontSizeControl||e.showExpandButton||e.isPreviewable&&e.showPreviewButton),{t:s}=ne(),$=f(()=>e.showTooltips!==!1);function S(p,o){$.value&&ce(p.currentTarget,o,"top",!1,void 0,e.isDark)}function F(){$.value&&j()}function P(p){S(p,e.copyText?s("common.copied")||"Copied":s("common.copy")||"Copy")}const V=f(()=>{var p,o;return!!Number.isFinite(e.codeFontSize)&&((p=e.codeFontSize)!=null?p:0)<=((o=e.codeFontMin)!=null?o:0)}),L=f(()=>!e.fontBaselineReady||e.codeFontSize===e.defaultCodeFontSize),r=f(()=>{var p,o;return!!Number.isFinite(e.codeFontSize)&&((p=e.codeFontSize)!=null?p:0)>=((o=e.codeFontMax)!=null?o:100)});return(p,o)=>(v(),h(I,null,[e.showHeader?(v(),h("div",Te,[H(p.$slots,"header-left"),H(p.$slots,"header-right",{},()=>[t("div",Pe,[a.diffStats?(v(),h("div",{key:0,class:"code-diff-stats","aria-label":a.diffStatsAriaLabel},[t("span",He,"-"+x(a.diffStats.removed),1),t("span",Oe,"+"+x(a.diffStats.added),1)],8,je)):y("",!0),e.showCopyButton?(v(),h("button",{key:1,type:"button",class:"code-action-btn inline-flex items-center justify-center p-[var(--ms-action-btn-padding)] rounded leading-none shrink-0 cursor-pointer text-[var(--code-action-fg)] hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] active:scale-[0.96] disabled:opacity-40 disabled:cursor-not-allowed transition-colors","aria-label":a.copyText?u(s)("common.copied")||"Copied":u(s)("common.copy")||"Copy",onClick:o[0]||(o[0]=i=>g("copy")),onMouseenter:o[1]||(o[1]=i=>P(i)),onFocus:o[2]||(o[2]=i=>P(i)),onMouseleave:F,onBlur:F},[a.copyText?(v(),h("svg",Ee,[...o[14]||(o[14]=[t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M20 6L9 17l-5-5"},null,-1)])])):(v(),h("svg",Ne,[...o[13]||(o[13]=[t("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[t("rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2"}),t("path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"})],-1)])]))],40,$e)):y("",!0),e.showCollapseButton?(v(),h("button",{key:2,type:"button",class:"code-action-btn inline-flex items-center justify-center p-[var(--ms-action-btn-padding)] rounded leading-none shrink-0 cursor-pointer text-[var(--code-action-fg)] hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] active:scale-[0.96] disabled:opacity-40 disabled:cursor-not-allowed transition-colors","aria-pressed":a.isCollapsed,onClick:o[3]||(o[3]=i=>g("toggleCollapse")),onMouseenter:o[4]||(o[4]=i=>S(i,a.isCollapsed?u(s)("common.expand")||"Expand":u(s)("common.collapse")||"Collapse")),onFocus:o[5]||(o[5]=i=>S(i,a.isCollapsed?u(s)("common.expand")||"Expand":u(s)("common.collapse")||"Collapse")),onMouseleave:F,onBlur:F},[(v(),h("svg",{style:oe({rotate:a.isCollapsed?"0deg":"90deg"}),xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},[...o[15]||(o[15]=[t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m9 18l6-6l-6-6"},null,-1)])],4))],40,Le)):y("",!0),O.value?(v(),h("div",Re,[t("button",{ref_key:"moreBtnRef",ref:T,type:"button",class:"code-action-btn inline-flex items-center justify-center p-[var(--ms-action-btn-padding)] rounded leading-none shrink-0 cursor-pointer text-[var(--code-action-fg)] hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] active:scale-[0.96] transition-colors","aria-expanded":b.value,"aria-haspopup":"true",onClick:le(w,["stop"]),onMouseenter:o[6]||(o[6]=i=>S(i,u(s)("common.more")||"More")),onFocus:o[7]||(o[7]=i=>S(i,u(s)("common.more")||"More")),onMouseleave:F,onBlur:F},[...o[16]||(o[16]=[ie('',1)])],40,_e),G(de,{name:"code-menu"},{default:A(()=>[b.value?(v(),h("div",{key:0,ref_key:"moreMenuRef",ref:z,class:"code-more-menu min-w-[10rem] p-1 bg-[hsl(var(--ms-popover))] text-[hsl(var(--ms-popover-foreground))] border border-[var(--code-border)] shadow-[var(--ms-shadow-popover)]",role:"menu"},[e.showFontSizeButtons&&e.enableFontSizeControl?(v(),h(I,{key:0},[t("button",{type:"button",role:"menuitem",class:"flex items-center gap-2 w-full py-1.5 px-2 rounded text-xs text-[var(--code-action-fg)] cursor-pointer whitespace-nowrap hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",disabled:V.value,onClick:o[8]||(o[8]=i=>{u(j)(!0),g("decreaseFont")})},[o[17]||(o[17]=t("svg",{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},[t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 12h14"})],-1)),t("span",null,x(u(s)("common.fontSmaller")||"Font size −"),1)],8,Ae),t("button",{type:"button",role:"menuitem",class:"flex items-center gap-2 w-full py-1.5 px-2 rounded text-xs text-[var(--code-action-fg)] cursor-pointer whitespace-nowrap hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",disabled:L.value,onClick:o[9]||(o[9]=i=>{u(j)(!0),g("resetFont")})},[o[18]||(o[18]=t("svg",{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},[t("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[t("path",{d:"M3 12a9 9 0 1 0 9-9a9.75 9.75 0 0 0-6.74 2.74L3 8"}),t("path",{d:"M3 3v5h5"})])],-1)),t("span",null,x(u(s)("common.fontReset")||"Font size reset"),1)],8,De),t("button",{type:"button",role:"menuitem",class:"flex items-center gap-2 w-full py-1.5 px-2 rounded text-xs text-[var(--code-action-fg)] cursor-pointer whitespace-nowrap hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",disabled:r.value,onClick:o[10]||(o[10]=i=>{u(j)(!0),g("increaseFont")})},[o[19]||(o[19]=t("svg",{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},[t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 12h14m-7-7v14"})],-1)),t("span",null,x(u(s)("common.fontLarger")||"Font size +"),1)],8,Ve)],64)):y("",!0),e.showExpandButton?(v(),h("button",{key:1,type:"button",role:"menuitem",class:"flex items-center gap-2 w-full py-1.5 px-2 rounded text-xs text-[var(--code-action-fg)] cursor-pointer whitespace-nowrap hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] transition-colors",onClick:o[11]||(o[11]=i=>{m(),g("toggleExpand")})},[a.isExpanded?(v(),h("svg",Ue,[...o[20]||(o[20]=[t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m14 10l7-7m-1 7h-6V4M3 21l7-7m-6 0h6v6"},null,-1)])])):(v(),h("svg",Ge,[...o[21]||(o[21]=[t("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 3h6v6m0-6l-7 7M3 21l7-7m-1 7H3v-6"},null,-1)])])),t("span",null,x(a.isExpanded?u(s)("common.collapse")||"Collapse":u(s)("common.expand")||"Expand"),1)])):y("",!0),a.isPreviewable&&e.showPreviewButton?(v(),h("button",{key:2,type:"button",role:"menuitem",class:"flex items-center gap-2 w-full py-1.5 px-2 rounded text-xs text-[var(--code-action-fg)] cursor-pointer whitespace-nowrap hover:bg-[var(--code-action-hover-bg)] hover:text-[var(--code-action-hover-fg)] transition-colors",onClick:o[12]||(o[12]=i=>{m(),g("preview")})},[o[22]||(o[22]=t("svg",{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",width:"1em",height:"1em",viewBox:"0 0 24 24",class:"action-icon"},[t("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[t("path",{d:"M2.062 12.348a1 1 0 0 1 0-.696a10.75 10.75 0 0 1 19.876 0a1 1 0 0 1 0 .696a10.75 10.75 0 0 1-19.876 0"}),t("circle",{cx:"12",cy:"12",r:"3"})])],-1)),t("span",null,x(u(s)("common.preview")||"Preview"),1)])):y("",!0)],512)):y("",!0)]),_:1})])):y("",!0)])])])):y("",!0),W(t("div",{class:se(["code-block-shell-content",{"code-block-shell-content--collapsed":a.isCollapsed}])},[H(p.$slots,"default")],2),[[Y,!!a.stream||!a.loading]]),W(t("div",Ie,[H(p.$slots,"loading",{},()=>[o[23]||(o[23]=t("div",{class:"loading-skeleton"},[t("div",{class:"skeleton-line"}),t("div",{class:"skeleton-line"}),t("div",{class:"skeleton-line short"})],-1))])],512),[[Y,!a.stream&&a.loading]]),t("span",We,x(a.copyText?u(s)("common.copied")||"Copied":""),1)],64))}}),Ze={class:"code-header-main"},Xe=["innerHTML"],qe={class:"code-header-copy"},Je={class:"code-header-title"},Qe={key:0,class:"code-header-caption"},Ke=ee(_(N({},{inheritAttrs:!1}),{__name:"PreCodeBlock",props:{codeBlockOptions:{},clipboardWriter:{},darkTheme:{},isDark:{type:Boolean,default:!1},lightTheme:{},resolvedVisualOptions:{},showCopyButton:{type:Boolean,default:!0},showHeader:{type:Boolean,default:!0},showToolbar:{type:Boolean,default:!0},showTooltips:{type:Boolean,default:!0},theme:{},themes:{},node:{},loading:{type:Boolean},showLineNumbers:{type:Boolean,default:!0},diffInline:{type:Boolean},diffHideUnchangedRegions:{type:[Boolean,Object]},reservedHeightPx:{}},emits:["copy"],setup(a,{emit:d}){const e=a,g=d,b=ve(),z=f(()=>{const n=b,{class:l,style:M}=n;return((c,k)=>{var U={};for(var B in c)ae.call(c,B)&&k.indexOf(B)<0&&(U[B]=c[B]);if(c!=null&&D)for(var B of D(c))k.indexOf(B)<0&&re.call(c,B)&&(U[B]=c[B]);return U})(n,["class","style"])}),T=E(null),w=E(!1);let m;const C=fe(he,void 0),O=f(()=>{var n,l;return(l=e.showLineNumbers)!=null?l:((n=e.codeBlockOptions)==null?void 0:n.disableLineNumbers)!==!0}),s=f(()=>q(e.node)),$=f(()=>{var n;return e.diffInline===!0||s.value&&ke((n=e.codeBlockOptions)!=null?n:{})}),S=f(()=>{var n,l;return te(String((l=(n=e.node)==null?void 0:n.language)!=null?l:""))}),F=f(()=>{const n=S.value;return n?J[n]||n.charAt(0).toUpperCase()+n.slice(1):J[""]||"Plain Text"}),P=f(()=>{var n,l;return ye(String((l=(n=e.node)==null?void 0:n.raw)!=null?l:""),F.value,q(e.node))}),V=f(()=>(xe.value,ze(S.value,C))),L=f(()=>{var n;return(n=e.resolvedVisualOptions)!=null?n:Ce(e.codeBlockOptions)}),r=f(()=>Be({darkTheme:e.darkTheme,isDark:e.isDark,lightTheme:e.lightTheme,theme:e.theme,themes:e.themes})),p=f(()=>_(N({"--markstream-code-fallback-bg":r.value.background,"--markstream-code-fallback-fg":r.value.foreground},r.value.builtin?{"--markstream-code-theme-bg":r.value.background,"--markstream-code-theme-fg":r.value.foreground,"--markstream-code-theme-line-number":r.value.lineNumber}:{}),{"--markstream-diff-added-line-fill":r.value.diffAddedLine,"--markstream-diff-added-number-fill":r.value.diffAddedNumber,"--markstream-diff-editor-bg":r.value.background,"--markstream-diff-removed-line-fill":r.value.diffRemovedLine,"--markstream-diff-removed-number-fill":r.value.diffRemovedNumber,"--markstream-diff-shell-bg":r.value.background,"--markstream-pre-resolved-theme-bg":r.value.background,"--markstream-pre-resolved-theme-fg":r.value.foreground,"--markstream-pre-resolved-theme-line-number":r.value.lineNumber,backgroundColor:r.value.background,color:r.value.foreground})),o=f(()=>["code-pre-fallback",b.class,{"is-wrap":L.value.overflow==="wrap"}]),i=f(()=>{var n;const l=L.value,M=((n=e.codeBlockOptions)==null?void 0:n.padding)==null?"1ch":`${l.padding}px`,c=s.value&&typeof e.reservedHeightPx=="number"&&Number.isFinite(e.reservedHeightPx)&&e.reservedHeightPx>0?`${Math.ceil(e.reservedHeightPx)}px`:void 0;return N(_(N(_(N({"--markstream-code-font-family":l.fontFamily,"--markstream-code-padding-x":M,"--markstream-code-padding-y":`${l.padding}px`,"--markstream-code-padding-bottom":`${l.paddingBottom}px`,"--markstream-code-scrollbar-gutter":`${l.scrollbarGutter}px`,"--markstream-code-tab-size":String(l.tabSize)},s.value?{"--markstream-pre-diff-line-height":`${l.lineHeight}px`}:{}),{"--markstream-pre-line-number-top":`${l.padding}px`,"--markstream-pre-line-number-left":"0px","--markstream-pre-line-number-padding-left":"2ch","--markstream-pre-line-number-padding-right":"1ch","--markstream-pre-line-number-separator-width":"2px"}),r.value.builtin?{"--markstream-code-theme-bg":r.value.background,"--markstream-code-theme-fg":r.value.foreground,"--markstream-code-theme-line-number":r.value.lineNumber}:{}),{"--markstream-diff-added-line-fill":r.value.diffAddedLine,"--markstream-diff-added-number-fill":r.value.diffAddedNumber,"--markstream-diff-metadata-bg":r.value.background,"--markstream-diff-metadata-fg":r.value.lineNumber,"--markstream-diff-removed-line-fill":r.value.diffRemovedLine,"--markstream-diff-removed-number-fill":r.value.diffRemovedNumber,"--markstream-pre-resolved-theme-bg":r.value.background,"--markstream-pre-resolved-theme-fg":r.value.foreground,"--markstream-pre-resolved-theme-line-number":r.value.lineNumber,"--markstream-pre-line-number-gap-to-code":M,"--markstream-diff-fallback-handoff-height":c??"auto",backgroundColor:"var(--markstream-code-fallback-bg, var(--markstream-code-theme-bg, var(--markstream-pre-resolved-theme-bg)))",boxSizing:"border-box",color:"var(--markstream-code-fallback-fg, var(--markstream-code-theme-fg, var(--markstream-pre-resolved-theme-fg)))",fontFamily:l.fontFamily,fontSize:`${l.fontSize}px`,lineHeight:`${l.lineHeight}px`,margin:"0",maxHeight:`${l.maxHeight}px`,overflow:"auto",overflowX:l.overflow==="wrap"?"hidden":"auto",overflowY:"auto",paddingBottom:`${l.paddingBottom}px`,paddingLeft:O.value?"var(--markstream-code-padding-left)":M,paddingRight:M,paddingTop:`${l.padding}px`,scrollbarGutter:s.value?"auto":"stable",tabSize:l.tabSize,whiteSpace:l.overflow==="scroll"?"pre":"pre-wrap",overflowWrap:l.overflow==="wrap"?"anywhere":"normal",wordBreak:"normal",width:"100%"}),c?{height:c,minHeight:c,maxHeight:c}:{})});function R(){return K(this,null,function*(){const n=String((M=(l=e.node)==null?void 0:l.code)!=null?M:"");var l,M;try{yield(function(c){return K(this,null,function*(){if(e.clipboardWriter)return void(yield e.clipboardWriter(c));if(typeof navigator<"u"&&navigator.clipboard&&typeof navigator.clipboard.writeText=="function")return void(yield navigator.clipboard.writeText(c));if(typeof document>"u"||!document.body)throw new Error("Clipboard API is unavailable");const k=document.createElement("textarea");k.value=c,k.setAttribute("readonly",""),k.style.position="fixed",k.style.opacity="0",document.body.appendChild(k),k.select();try{if(!document.execCommand("copy"))throw new Error("Clipboard copy command failed")}finally{k.remove()}})})(n),w.value=!0,g("copy",n),m&&clearTimeout(m),m=setTimeout(()=>{w.value=!1,m=void 0},1e3)}catch(c){w.value=!1,console.error("[markstream-vue] Failed to copy preformatted code.",c)}})}return ge(()=>{m&&clearTimeout(m)}),(n,l)=>e.showToolbar?(v(),h("div",{key:0,style:oe(p.value),class:"code-block-container rounded-lg border"},[G(Ye,{"show-header":e.showHeader,"show-copy-button":e.showCopyButton,"show-collapse-button":!1,"show-font-size-buttons":!1,"show-expand-button":!1,"show-preview-button":!1,"show-tooltips":e.showTooltips,"copy-text":w.value,stream:"",onCopy:R},be({"header-left":A(()=>[H(n.$slots,"header-left",{},()=>[t("div",Ze,[t("span",{class:"icon-slot h-4 w-4 flex-shrink-0",innerHTML:V.value},null,8,Xe),t("div",qe,[t("div",Je,x(P.value.title),1),P.value.caption?(v(),h("div",Qe,x(P.value.caption),1)):y("",!0)])])])]),default:A(()=>[G(Z,X({ref_key:"preNodeRef",ref:T},z.value,{class:o.value,style:[u(b).style,i.value],node:e.node,loading:e.loading,"show-line-numbers":O.value,"diff-inline":$.value,"diff-hide-unchanged-regions":e.diffHideUnchangedRegions,"reserved-height-px":e.reservedHeightPx,"data-markstream-code-theme":r.value.name}),null,16,["class","style","node","loading","show-line-numbers","diff-inline","diff-hide-unchanged-regions","reserved-height-px","data-markstream-code-theme"])]),_:2},[n.$slots["header-right"]?{name:"header-right",fn:A(()=>[H(n.$slots,"header-right")]),key:"0"}:void 0]),1032,["show-header","show-copy-button","show-tooltips","copy-text"])],4)):(v(),we(Z,X({key:1,ref_key:"preNodeRef",ref:T},z.value,{class:o.value,style:[u(b).style,i.value],node:e.node,loading:e.loading,"show-line-numbers":O.value,"diff-inline":$.value,"diff-hide-unchanged-regions":e.diffHideUnchangedRegions,"reserved-height-px":e.reservedHeightPx,"data-markstream-code-theme":r.value.name}),null,16,["class","style","node","loading","show-line-numbers","diff-inline","diff-hide-unchanged-regions","reserved-height-px","data-markstream-code-theme"]))}})),oo=Object.freeze(Object.defineProperty({__proto__:null,default:Ke},Symbol.toStringTag,{value:"Module"}));export{Ke as B,oo as P,ze as Q,Ye as g}; diff --git a/apps/kimi-code/dist-web/assets/Tooltip-B-G_7eI0.js b/apps/kimi-code/dist-web/assets/Tooltip-B-G_7eI0.js new file mode 100644 index 000000000..eb78915a7 --- /dev/null +++ b/apps/kimi-code/dist-web/assets/Tooltip-B-G_7eI0.js @@ -0,0 +1 @@ +import{bQ as H,M as J,aU as p,bE as S,az as O,aL as Q,s as F,v as I,I as K,bJ as W,bL as Z,aw as X,H as A,bb as ee,bB as te,g as le,au as ae,T as ne,as as Y,bR as oe}from"./index-BOtIzGLC.js";var k=(d,x,e)=>new Promise((n,s)=>{var r=i=>{try{c(e.next(i))}catch(v){s(v)}},y=i=>{try{c(e.throw(i))}catch(v){s(v)}},c=i=>i.done?n(i.value):Promise.resolve(i.value).then(r,y);c((e=e.apply(d,x)).next())});const ie=["id"],re=["data-placement"],se=H(J({__name:"Tooltip",props:{visible:{type:Boolean},anchorEl:{},content:{},placement:{},offset:{},originX:{},originY:{},id:{},isDark:{type:[Boolean,null]}},setup(d){var x;const e=d,n=p(null),s=p(null),r=p({transform:"translate3d(0px, 0px, 0px)",left:"0px",top:"0px"}),y=p({}),c=p((x=e.placement)!=null?x:"top"),i=p(!1),v=p(!1);let E=null,M=null,R=null,P=null,w=null,f=0;function N(){return P?Promise.resolve(P):(w||(w=oe(()=>import("./floating-ui.dom-xGUaHE3m.js"),[]).then(a=>(P=a,a)).catch(a=>{throw w=null,a})),w)}function T(){E&&(E(),E=null),M=null,R=null}function D(a){return k(this,null,function*(){const t=e.anchorEl,l=n.value;if(!e.visible||!t||!l||M===t&&R===l)return;const{autoUpdate:o}=yield N();a()&&e.visible&&e.anchorEl===t&&n.value===l&&(T(),M=t,R=l,E=o(t,l,()=>{$().catch(()=>{B()})}))})}function $(){return k(this,null,function*(){var a,t;const l=e.anchorEl,o=n.value;if(!e.visible||!l||!o)return!1;const{arrow:u,computePosition:C,flip:h,offset:m,shift:b}=yield N();if(!e.visible||e.anchorEl!==l||n.value!==o)return!1;const g=[m((a=e.offset)!=null?a:6),h(),b({padding:6}),...s.value?[u({element:s.value,padding:4})]:[]],{x:j,y:q,placement:U,middlewareData:V}=yield C(l,o,{placement:(t=e.placement)!=null?t:"top",middleware:g,strategy:"fixed"});if(!e.visible||e.anchorEl!==l||n.value!==o)return!1;if(r.value.transform=`translate3d(${Math.round(j)}px, ${Math.round(q)}px, 0)`,r.value.left="0px",r.value.top="0px",c.value=U,V.arrow&&s.value){const{x:z,y:L}=V.arrow,G={top:"bottom",bottom:"top",left:"right",right:"left"}[U.split("-")[0]];y.value={left:z!=null?`${z}px`:"",top:L!=null?`${L}px`:"",[G]:"-3px"}}return!0})}function B(){var a,t;const l=e.anchorEl,o=n.value;if(!l||!o)return!1;const u=l.getBoundingClientRect(),C=o.getBoundingClientRect(),h=(a=e.offset)!=null?a:6,m=(t=e.placement)!=null?t:"top";let b=u.left,g=u.top;return m==="bottom"?g=u.bottom+h:m==="left"?b=u.left-C.width-h:m==="right"?b=u.right+h:g=u.top-C.height-h,r.value.transform=`translate3d(${Math.round(Math.max(0,b))}px, ${Math.round(Math.max(0,g))}px, 0)`,r.value.left="0px",r.value.top="0px",c.value=m,y.value={},!0}S(()=>e.visible,a=>k(null,null,function*(){const t=++f;if(a){if(i.value=!1,yield Y(),t!==f||!e.visible)return;if(e.anchorEl&&n.value)try{const l=e.anchorEl,o=n.value,u=l.getBoundingClientRect();if(!(yield $())||t!==f||!e.visible||e.anchorEl!==l||n.value!==o)return;v.value=!1,i.value=!0,yield D(()=>t===f)}catch{if(t!==f||!e.visible)return;if(i.value=B(),e.anchorEl&&n.value)try{yield D(()=>t===f)}catch{}}else i.value=!0}else T()}));let _=0;return S([()=>e.anchorEl,()=>e.placement,()=>e.content],([a],[t])=>k(null,null,function*(){v.value=!!(a&&t&&a!==t&&Math.hypot(a.getBoundingClientRect().left-t.getBoundingClientRect().left,a.getBoundingClientRect().top-t.getBoundingClientRect().top)<=120);const l=++_;if(e.visible&&e.anchorEl&&n.value){if(yield Y(),l!==_||!e.visible||!e.anchorEl||!n.value)return;try{const o=yield $();if(l!==_||!e.visible||!e.anchorEl||!n.value)return;o||B()}catch{B()}yield D(()=>l===_)}})),O(()=>{f+=1,T()}),(a,t)=>(Q(),F(ne,{to:"body"},[I("div",{class:ae(["markstream-vue",{dark:d.isDark}])},[K(le,{name:"tooltip",appear:""},{default:W(()=>[Z(I("div",{id:e.id,ref_key:"tooltip",ref:n,style:X({position:"fixed",transitionProperty:v.value?"opacity, transform":"opacity",left:r.value.left,top:r.value.top,transform:r.value.transform,visibility:i.value?"visible":"hidden",pointerEvents:i.value?void 0:"none"}),class:"tooltip-element",role:"tooltip"},[A(ee(d.content)+" ",1),I("div",{ref_key:"arrowEl",ref:s,class:"tooltip-arrow","data-placement":c.value,style:X(y.value)},null,12,re)],12,ie),[[te,d.visible]])]),_:1})],2)]))}}),[["__scopeId","data-v-c606ee4c"]]);export{se as default}; diff --git a/apps/kimi-code/dist-web/assets/Tooltip-Dvr1al-t.js b/apps/kimi-code/dist-web/assets/Tooltip-Dvr1al-t.js deleted file mode 100644 index 5c022d50a..000000000 --- a/apps/kimi-code/dist-web/assets/Tooltip-Dvr1al-t.js +++ /dev/null @@ -1 +0,0 @@ -import{bQ as A,M as H,aU as b,bE as V,az as J,aL as O,s as Q,v as R,I as F,bJ as G,bL as K,aw as L,H as W,bb as Z,bB as ee,g as te,au as le,T as ae,as as B,bR as ne}from"./index-7SHxad1A.js";var k=(h,E,e)=>new Promise((o,p)=>{var i=a=>{try{d(e.next(a))}catch(c){p(c)}},y=a=>{try{d(e.throw(a))}catch(c){p(c)}},d=a=>a.done?o(a.value):Promise.resolve(a.value).then(i,y);d((e=e.apply(h,E)).next())});const oe=["id"],ie=["data-placement"],ue=A(H({__name:"Tooltip",props:{visible:{type:Boolean},anchorEl:{},content:{},placement:{},offset:{},originX:{},originY:{},id:{},isDark:{type:[Boolean,null]}},setup(h){var E;const e=h,o=b(null),p=b(null),i=b({transform:"translate3d(0px, 0px, 0px)",left:"0px",top:"0px"}),y=b({}),d=b((E=e.placement)!=null?E:"top"),a=b(!1);let c=null,$=null,T=null,C=null,w=null,s=0;function X(){return C?Promise.resolve(C):(w||(w=ne(()=>import("./floating-ui.dom-xGUaHE3m.js"),[]).then(l=>(C=l,l)).catch(l=>{throw w=null,l})),w)}function D(){c&&(c(),c=null),$=null,T=null}function P(l){return k(this,null,function*(){const t=e.anchorEl,n=o.value;if(!e.visible||!t||!n||$===t&&T===n)return;const{autoUpdate:r}=yield X();l()&&e.visible&&e.anchorEl===t&&o.value===n&&(D(),$=t,T=n,c=r(t,n,()=>{N().catch(()=>{_()})}))})}function N(){return k(this,null,function*(){var l,t;const n=e.anchorEl,r=o.value;if(!e.visible||!n||!r)return!1;const{arrow:u,computePosition:m,flip:v,offset:f,shift:x}=yield X();if(!e.visible||e.anchorEl!==n||o.value!==r)return!1;const g=[f((l=e.offset)!=null?l:6),v(),x({padding:6}),...p.value?[u({element:p.value,padding:4})]:[]],{x:S,y:j,placement:Y,middlewareData:z}=yield m(n,r,{placement:(t=e.placement)!=null?t:"top",middleware:g,strategy:"fixed"});if(!e.visible||e.anchorEl!==n||o.value!==r)return!1;if(i.value.transform=`translate3d(${Math.round(S)}px, ${Math.round(j)}px, 0)`,i.value.left="0px",i.value.top="0px",d.value=Y,z.arrow&&p.value){const{x:I,y:U}=z.arrow,q={top:"bottom",bottom:"top",left:"right",right:"left"}[Y.split("-")[0]];y.value={left:I!=null?`${I}px`:"",top:U!=null?`${U}px`:"",[q]:"-3px"}}return!0})}function _(){var l,t;const n=e.anchorEl,r=o.value;if(!n||!r)return!1;const u=n.getBoundingClientRect(),m=r.getBoundingClientRect(),v=(l=e.offset)!=null?l:6,f=(t=e.placement)!=null?t:"top";let x=u.left,g=u.top;return f==="bottom"?g=u.bottom+v:f==="left"?x=u.left-m.width-v:f==="right"?x=u.right+v:g=u.top-m.height-v,i.value.transform=`translate3d(${Math.round(Math.max(0,x))}px, ${Math.round(Math.max(0,g))}px, 0)`,i.value.left="0px",i.value.top="0px",d.value=f,y.value={},!0}V(()=>e.visible,l=>k(null,null,function*(){const t=++s;if(l){if(a.value=!1,yield B(),t!==s||!e.visible)return;if(e.anchorEl&&o.value)try{const n=e.anchorEl,r=o.value,u=n.getBoundingClientRect();if(!(yield N())||t!==s||!e.visible||e.anchorEl!==n||o.value!==r)return;const m=i.value.transform;if(e.originX!=null&&e.originY!=null){const v=Math.abs(Number(e.originX)-u.left),f=Math.abs(Number(e.originY)-u.top);if(Math.hypot(v,f)>120){if(i.value.transform=`translate3d(${Math.round(e.originX)}px, ${Math.round(e.originY)}px, 0)`,yield B(),t!==s||!e.visible||(a.value=!0,yield B(),t!==s||!e.visible))return;i.value.transform=m}else a.value=!0}else a.value=!0;yield P(()=>t===s)}catch{if(t!==s||!e.visible)return;if(a.value=_(),e.anchorEl&&o.value)try{yield P(()=>t===s)}catch{}}else a.value=!0}else a.value=!1,D()}));let M=0;return V([()=>e.anchorEl,()=>e.placement,()=>e.content],()=>k(null,null,function*(){const l=++M;if(e.visible&&e.anchorEl&&o.value){if(yield B(),l!==M||!e.visible||!e.anchorEl||!o.value)return;try{const t=yield N();if(l!==M||!e.visible||!e.anchorEl||!o.value)return;t||_()}catch{_()}yield P(()=>l===M)}})),J(()=>{s+=1,D()}),(l,t)=>(O(),Q(ae,{to:"body"},[R("div",{class:le(["markstream-vue",{dark:h.isDark}])},[F(te,{name:"tooltip",appear:""},{default:G(()=>[K(R("div",{id:e.id,ref_key:"tooltip",ref:o,style:L({position:"fixed",left:i.value.left,top:i.value.top,transform:i.value.transform,visibility:a.value?"visible":"hidden",pointerEvents:a.value?void 0:"none"}),class:"tooltip-element",role:"tooltip"},[W(Z(h.content)+" ",1),R("div",{ref_key:"arrowEl",ref:p,class:"tooltip-arrow","data-placement":d.value,style:L(y.value)},null,12,ie)],12,oe),[[ee,h.visible]])]),_:1})],2)]))}}),[["__scopeId","data-v-c606ee4c"]]);export{ue as default}; diff --git a/apps/kimi-code/dist-web/assets/_commonjsHelpers-CqkleIqs.js b/apps/kimi-code/dist-web/assets/_commonjsHelpers-CqkleIqs.js deleted file mode 100644 index dbbfc19b9..000000000 --- a/apps/kimi-code/dist-web/assets/_commonjsHelpers-CqkleIqs.js +++ /dev/null @@ -1 +0,0 @@ -function e(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}export{e as g}; diff --git a/apps/kimi-code/dist-web/assets/abnfDiagram-VRR7QNED-CwBLQmjz.js b/apps/kimi-code/dist-web/assets/abnfDiagram-VRR7QNED-CwBLQmjz.js deleted file mode 100644 index 67865ae80..000000000 --- a/apps/kimi-code/dist-web/assets/abnfDiagram-VRR7QNED-CwBLQmjz.js +++ /dev/null @@ -1 +0,0 @@ -import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-DGD3Ca9J.js";import{p as f}from"./chunk-JWPE2WC7-BxqMRrNb.js";import{_ as n,l as o}from"./mermaid.core-CgZTgv7Y.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-DYKf_Z-v.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var v=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},F={parser:R,db:a,renderer:u,styles:p};export{F as diagram}; diff --git a/apps/kimi-code/dist-web/assets/abnfDiagram-VRR7QNED-DpFT7k4x.js b/apps/kimi-code/dist-web/assets/abnfDiagram-VRR7QNED-DpFT7k4x.js new file mode 100644 index 000000000..0534e374e --- /dev/null +++ b/apps/kimi-code/dist-web/assets/abnfDiagram-VRR7QNED-DpFT7k4x.js @@ -0,0 +1 @@ +import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-m4Krf3Vn.js";import{p as f}from"./chunk-JWPE2WC7-TZtJmqSP.js";import{_ as n,l as o}from"./mermaid.core-B_UcP3X_.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-BnQdr27u.js";import"./index-BOtIzGLC.js";var v=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},B={parser:R,db:a,renderer:u,styles:p};export{B as diagram}; diff --git a/apps/kimi-code/dist-web/assets/arc-CeSAjRC_.js b/apps/kimi-code/dist-web/assets/arc-CeSAjRC_.js new file mode 100644 index 000000000..6c2589dc9 --- /dev/null +++ b/apps/kimi-code/dist-web/assets/arc-CeSAjRC_.js @@ -0,0 +1 @@ +import{G as ln,H as un,I as N,J as I,K as J,L as an,M as y,N as tn,O as j,P as _,Q as rn,R as o,S as on,T as sn,V as fn}from"./mermaid.core-B_UcP3X_.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,q,O,v,R,K,u){var D=q-l,i=O-h,n=K-v,d=u-R,a=d*D-n*i;if(!(a*ar*r+M*M&&(G=w,H=p),{cx:G,cy:H,x01:-n,y01:-d,x11:G*(v/T-1),y11:H*(v/T-1)}}function hn(){var l=cn,h=yn,q=J(0),O=null,v=gn,R=dn,K=mn,u=null,D=ln(i);function i(){var n,d,a=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=R.apply(this,arguments)-an,L=rn(c-f),t=c>f;if(u||(u=n=D()),sy))u.moveTo(0,0);else if(L>tn-y)u.moveTo(s*N(f),s*I(f)),u.arc(0,0,s,f,c,!t),a>y&&(u.moveTo(a*N(c),a*I(c)),u.arc(0,0,a,c,f,t));else{var m=f,g=c,A=f,T=c,P=L,E=L,G=K.apply(this,arguments)/2,H=G>y&&(O?+O.apply(this,arguments):j(a*a+s*s)),w=_(rn(s-a)/2,+q.apply(this,arguments)),p=w,x=w,e,r;if(H>y){var M=sn(H/a*I(G)),z=sn(H/s*I(G));(P-=M*2)>y?(M*=t?1:-1,A+=M,T-=M):(P=0,A=T=(f+c)/2),(E-=z*2)>y?(z*=t?1:-1,m+=z,g-=z):(E=0,m=g=(f+c)/2)}var Q=s*N(m),V=s*I(m),B=a*N(T),C=a*I(T);if(w>y){var F=s*N(g),U=s*I(g),X=a*N(A),Y=a*I(A),S;if(Ly?x>y?(e=W(X,Y,Q,V,s,x,t),r=W(F,U,B,C,s,x,t),u.moveTo(e.cx+e.x01,e.cy+e.y01),xy)||!(P>y)?u.lineTo(B,C):p>y?(e=W(B,C,F,U,a,-p,t),r=W(Q,V,X,Y,a,-p,t),u.lineTo(e.cx+e.x01,e.cy+e.y01),pr*r+$*$&&(Q=w,V=p),{cx:Q,cy:V,x01:-n,y01:-d,x11:Q*(v/T-1),y11:V*(v/T-1)}}function hn(){var l=cn,h=yn,E=W(0),q=null,v=gn,R=dn,X=mn,a=null,I=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=R.apply(this,arguments)-un,Y=rn(c-f),t=c>f;if(a||(a=n=I()),sy))a.moveTo(0,0);else if(Y>tn-y)a.moveTo(s*j(f),s*S(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*j(c),u*S(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,A=f,T=c,P=Y,O=Y,Q=X.apply(this,arguments)/2,V=Q>y&&(q?+q.apply(this,arguments):C(u*u+s*s)),w=_(rn(s-u)/2,+E.apply(this,arguments)),p=w,x=w,e,r;if(V>y){var $=sn(V/u*S(Q)),F=sn(V/s*S(Q));(P-=$*2)>y?($*=t?1:-1,A+=$,T-=$):(P=0,A=T=(f+c)/2),(O-=F*2)>y?(F*=t?1:-1,m+=F,g-=F):(O=0,m=g=(f+c)/2)}var z=s*j(m),B=s*S(m),G=u*j(T),H=u*S(T);if(w>y){var J=s*j(g),K=s*S(g),M=u*j(A),N=u*S(A),D;if(Yy?x>y?(e=L(M,N,z,B,s,x,t),r=L(J,K,G,H,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),xy)||!(P>y)?a.lineTo(G,H):p>y?(e=L(G,H,J,K,u,-p,t),r=L(z,B,M,N,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),ps?(this.rect.x-=(this.labelWidth-s)/2,this.setWidth(this.labelWidth)):this.labelPosHorizontal=="right"&&this.setWidth(s+this.labelWidth)),this.labelHeight&&(this.labelPosVertical=="top"?(this.rect.y-=this.labelHeight,this.setHeight(o+this.labelHeight)):this.labelPosVertical=="center"&&this.labelHeight>o?(this.rect.y-=(this.labelHeight-o)/2,this.setHeight(this.labelHeight)):this.labelPosVertical=="bottom"&&this.setHeight(o+this.labelHeight))}}},e.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==h.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},e.prototype.transform=function(t){var s=this.rect.x;s>r.WORLD_BOUNDARY?s=r.WORLD_BOUNDARY:s<-r.WORLD_BOUNDARY&&(s=-r.WORLD_BOUNDARY);var o=this.rect.y;o>r.WORLD_BOUNDARY?o=r.WORLD_BOUNDARY:o<-r.WORLD_BOUNDARY&&(o=-r.WORLD_BOUNDARY);var c=new f(s,o),l=t.inverseTransformPoint(c);this.setLocation(l.x,l.y)},e.prototype.getLeft=function(){return this.rect.x},e.prototype.getRight=function(){return this.rect.x+this.rect.width},e.prototype.getTop=function(){return this.rect.y},e.prototype.getBottom=function(){return this.rect.y+this.rect.height},e.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},A.exports=e}),(function(A,G,N){var v=N(0);function h(){}for(var i in v)h[i]=v[i];h.MAX_ITERATIONS=2500,h.DEFAULT_EDGE_LENGTH=50,h.DEFAULT_SPRING_STRENGTH=.45,h.DEFAULT_REPULSION_STRENGTH=4500,h.DEFAULT_GRAVITY_STRENGTH=.4,h.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,h.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,h.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,h.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,h.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,h.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,h.COOLING_ADAPTATION_FACTOR=.33,h.ADAPTATION_LOWER_NODE_LIMIT=1e3,h.ADAPTATION_UPPER_NODE_LIMIT=5e3,h.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,h.MAX_NODE_DISPLACEMENT=h.MAX_NODE_DISPLACEMENT_INCREMENTAL*3,h.MIN_REPULSION_DIST=h.DEFAULT_EDGE_LENGTH/10,h.CONVERGENCE_CHECK_PERIOD=100,h.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,h.MIN_EDGE_LENGTH=1,h.GRID_CALCULATION_CHECK_PERIOD=10,A.exports=h}),(function(A,G,N){function v(h,i){h==null&&i==null?(this.x=0,this.y=0):(this.x=h,this.y=i)}v.prototype.getX=function(){return this.x},v.prototype.getY=function(){return this.y},v.prototype.setX=function(h){this.x=h},v.prototype.setY=function(h){this.y=h},v.prototype.getDifference=function(h){return new DimensionD(this.x-h.x,this.y-h.y)},v.prototype.getCopy=function(){return new v(this.x,this.y)},v.prototype.translate=function(h){return this.x+=h.width,this.y+=h.height,this},A.exports=v}),(function(A,G,N){var v=N(2),h=N(10),i=N(0),r=N(7),a=N(3),f=N(1),e=N(13),u=N(12),t=N(11);function s(c,l,T){v.call(this,T),this.estimatedSize=h.MIN_VALUE,this.margin=i.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=c,l!=null&&l instanceof r?this.graphManager=l:l!=null&&l instanceof Layout&&(this.graphManager=l.graphManager)}s.prototype=Object.create(v.prototype);for(var o in v)s[o]=v[o];s.prototype.getNodes=function(){return this.nodes},s.prototype.getEdges=function(){return this.edges},s.prototype.getGraphManager=function(){return this.graphManager},s.prototype.getParent=function(){return this.parent},s.prototype.getLeft=function(){return this.left},s.prototype.getRight=function(){return this.right},s.prototype.getTop=function(){return this.top},s.prototype.getBottom=function(){return this.bottom},s.prototype.isConnected=function(){return this.isConnected},s.prototype.add=function(c,l,T){if(l==null&&T==null){var g=c;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(g)>-1)throw"Node already in graph!";return g.owner=this,this.getNodes().push(g),g}else{var d=c;if(!(this.getNodes().indexOf(l)>-1&&this.getNodes().indexOf(T)>-1))throw"Source or target not in graph!";if(!(l.owner==T.owner&&l.owner==this))throw"Both owners must be this graph!";return l.owner!=T.owner?null:(d.source=l,d.target=T,d.isInterGraph=!1,this.getEdges().push(d),l.edges.push(d),T!=l&&T.edges.push(d),d)}},s.prototype.remove=function(c){var l=c;if(c instanceof a){if(l==null)throw"Node is null!";if(!(l.owner!=null&&l.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var T=l.edges.slice(),g,d=T.length,C=0;C-1&&P>-1))throw"Source and/or target doesn't know this edge!";g.source.edges.splice(w,1),g.target!=g.source&&g.target.edges.splice(P,1);var S=g.source.owner.getEdges().indexOf(g);if(S==-1)throw"Not in owner's edge list!";g.source.owner.getEdges().splice(S,1)}},s.prototype.updateLeftTop=function(){for(var c=h.MAX_VALUE,l=h.MAX_VALUE,T,g,d,C=this.getNodes(),S=C.length,w=0;wT&&(c=T),l>g&&(l=g)}return c==h.MAX_VALUE?null:(C[0].getParent().paddingLeft!=null?d=C[0].getParent().paddingLeft:d=this.margin,this.left=l-d,this.top=c-d,new u(this.left,this.top))},s.prototype.updateBounds=function(c){for(var l=h.MAX_VALUE,T=-h.MAX_VALUE,g=h.MAX_VALUE,d=-h.MAX_VALUE,C,S,w,P,B,U=this.nodes,V=U.length,M=0;MC&&(l=C),Tw&&(g=w),dC&&(l=C),Tw&&(g=w),d=this.nodes.length){var V=0;T.forEach(function(M){M.owner==c&&V++}),V==this.nodes.length&&(this.isConnected=!0)}},A.exports=s}),(function(A,G,N){var v,h=N(1);function i(r){v=N(6),this.layout=r,this.graphs=[],this.edges=[]}i.prototype.addRoot=function(){var r=this.layout.newGraph(),a=this.layout.newNode(null),f=this.add(r,a);return this.setRootGraph(f),this.rootGraph},i.prototype.add=function(r,a,f,e,u){if(f==null&&e==null&&u==null){if(r==null)throw"Graph is null!";if(a==null)throw"Parent node is null!";if(this.graphs.indexOf(r)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(r),r.parent!=null)throw"Already has a parent!";if(a.child!=null)throw"Already has a child!";return r.parent=a,a.child=r,r}else{u=f,e=a,f=r;var t=e.getOwner(),s=u.getOwner();if(!(t!=null&&t.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(s!=null&&s.getGraphManager()==this))throw"Target not in this graph mgr!";if(t==s)return f.isInterGraph=!1,t.add(f,e,u);if(f.isInterGraph=!0,f.source=e,f.target=u,this.edges.indexOf(f)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(f),!(f.source!=null&&f.target!=null))throw"Edge source and/or target is null!";if(!(f.source.edges.indexOf(f)==-1&&f.target.edges.indexOf(f)==-1))throw"Edge already in source and/or target incidency list!";return f.source.edges.push(f),f.target.edges.push(f),f}},i.prototype.remove=function(r){if(r instanceof v){var a=r;if(a.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(a==this.rootGraph||a.parent!=null&&a.parent.graphManager==this))throw"Invalid parent node!";var f=[];f=f.concat(a.getEdges());for(var e,u=f.length,t=0;t=r.getRight()?a[0]+=Math.min(r.getX()-i.getX(),i.getRight()-r.getRight()):r.getX()<=i.getX()&&r.getRight()>=i.getRight()&&(a[0]+=Math.min(i.getX()-r.getX(),r.getRight()-i.getRight())),i.getY()<=r.getY()&&i.getBottom()>=r.getBottom()?a[1]+=Math.min(r.getY()-i.getY(),i.getBottom()-r.getBottom()):r.getY()<=i.getY()&&r.getBottom()>=i.getBottom()&&(a[1]+=Math.min(i.getY()-r.getY(),r.getBottom()-i.getBottom()));var u=Math.abs((r.getCenterY()-i.getCenterY())/(r.getCenterX()-i.getCenterX()));r.getCenterY()===i.getCenterY()&&r.getCenterX()===i.getCenterX()&&(u=1);var t=u*a[0],s=a[1]/u;a[0]t)return a[0]=f,a[1]=o,a[2]=u,a[3]=U,!1;if(eu)return a[0]=s,a[1]=e,a[2]=P,a[3]=t,!1;if(fu?(a[0]=l,a[1]=T,n=!0):(a[0]=c,a[1]=o,n=!0):p===y&&(f>u?(a[0]=s,a[1]=o,n=!0):(a[0]=g,a[1]=T,n=!0)),-m===y?u>f?(a[2]=B,a[3]=U,E=!0):(a[2]=P,a[3]=w,E=!0):m===y&&(u>f?(a[2]=S,a[3]=w,E=!0):(a[2]=V,a[3]=U,E=!0)),n&&E)return!1;if(f>u?e>t?(I=this.getCardinalDirection(p,y,4),O=this.getCardinalDirection(m,y,2)):(I=this.getCardinalDirection(-p,y,3),O=this.getCardinalDirection(-m,y,1)):e>t?(I=this.getCardinalDirection(-p,y,1),O=this.getCardinalDirection(-m,y,3)):(I=this.getCardinalDirection(p,y,2),O=this.getCardinalDirection(m,y,4)),!n)switch(I){case 1:W=o,R=f+-C/y,a[0]=R,a[1]=W;break;case 2:R=g,W=e+d*y,a[0]=R,a[1]=W;break;case 3:W=T,R=f+C/y,a[0]=R,a[1]=W;break;case 4:R=l,W=e+-d*y,a[0]=R,a[1]=W;break}if(!E)switch(O){case 1:Q=w,x=u+-_/y,a[2]=x,a[3]=Q;break;case 2:x=V,Q=t+M*y,a[2]=x,a[3]=Q;break;case 3:Q=U,x=u+_/y,a[2]=x,a[3]=Q;break;case 4:x=B,Q=t+-M*y,a[2]=x,a[3]=Q;break}}return!1},h.getCardinalDirection=function(i,r,a){return i>r?a:1+a%4},h.getIntersection=function(i,r,a,f){if(f==null)return this.getIntersection2(i,r,a);var e=i.x,u=i.y,t=r.x,s=r.y,o=a.x,c=a.y,l=f.x,T=f.y,g=void 0,d=void 0,C=void 0,S=void 0,w=void 0,P=void 0,B=void 0,U=void 0,V=void 0;return C=s-u,w=e-t,B=t*u-e*s,S=T-c,P=o-l,U=l*c-o*T,V=C*P-S*w,V===0?null:(g=(w*U-P*B)/V,d=(S*B-C*U)/V,new v(g,d))},h.angleOfVector=function(i,r,a,f){var e=void 0;return i!==a?(e=Math.atan((f-r)/(a-i)),a=0){var T=(-o+Math.sqrt(o*o-4*s*c))/(2*s),g=(-o-Math.sqrt(o*o-4*s*c))/(2*s),d=null;return T>=0&&T<=1?[T]:g>=0&&g<=1?[g]:d}else return null},h.HALF_PI=.5*Math.PI,h.ONE_AND_HALF_PI=1.5*Math.PI,h.TWO_PI=2*Math.PI,h.THREE_PI=3*Math.PI,A.exports=h}),(function(A,G,N){function v(){}v.sign=function(h){return h>0?1:h<0?-1:0},v.floor=function(h){return h<0?Math.ceil(h):Math.floor(h)},v.ceil=function(h){return h<0?Math.floor(h):Math.ceil(h)},A.exports=v}),(function(A,G,N){function v(){}v.MAX_VALUE=2147483647,v.MIN_VALUE=-2147483648,A.exports=v}),(function(A,G,N){var v=(function(){function e(u,t){for(var s=0;s"u"?"undefined":v(i);return i==null||r!="object"&&r!="function"},A.exports=h}),(function(A,G,N){function v(o){if(Array.isArray(o)){for(var c=0,l=Array(o.length);c0&&c;){for(C.push(w[0]);C.length>0&&c;){var P=C[0];C.splice(0,1),d.add(P);for(var B=P.getEdges(),g=0;g-1&&w.splice(_,1)}d=new Set,S=new Map}}return o},s.prototype.createDummyNodesForBendpoints=function(o){for(var c=[],l=o.source,T=this.graphManager.calcLowestCommonAncestor(o.source,o.target),g=0;g0){for(var T=this.edgeToDummyNodes.get(l),g=0;g=0&&c.splice(U,1);var V=S.getNeighborsList();V.forEach(function(n){if(l.indexOf(n)<0){var E=T.get(n),p=E-1;p==1&&P.push(n),T.set(n,p)}})}l=l.concat(P),(c.length==1||c.length==2)&&(g=!0,d=c[0])}return d},s.prototype.setGraphManager=function(o){this.graphManager=o},A.exports=s}),(function(A,G,N){function v(){}v.seed=1,v.x=0,v.nextDouble=function(){return v.x=Math.sin(v.seed++)*1e4,v.x-Math.floor(v.x)},A.exports=v}),(function(A,G,N){var v=N(5);function h(i,r){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}h.prototype.getWorldOrgX=function(){return this.lworldOrgX},h.prototype.setWorldOrgX=function(i){this.lworldOrgX=i},h.prototype.getWorldOrgY=function(){return this.lworldOrgY},h.prototype.setWorldOrgY=function(i){this.lworldOrgY=i},h.prototype.getWorldExtX=function(){return this.lworldExtX},h.prototype.setWorldExtX=function(i){this.lworldExtX=i},h.prototype.getWorldExtY=function(){return this.lworldExtY},h.prototype.setWorldExtY=function(i){this.lworldExtY=i},h.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},h.prototype.setDeviceOrgX=function(i){this.ldeviceOrgX=i},h.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},h.prototype.setDeviceOrgY=function(i){this.ldeviceOrgY=i},h.prototype.getDeviceExtX=function(){return this.ldeviceExtX},h.prototype.setDeviceExtX=function(i){this.ldeviceExtX=i},h.prototype.getDeviceExtY=function(){return this.ldeviceExtY},h.prototype.setDeviceExtY=function(i){this.ldeviceExtY=i},h.prototype.transformX=function(i){var r=0,a=this.lworldExtX;return a!=0&&(r=this.ldeviceOrgX+(i-this.lworldOrgX)*this.ldeviceExtX/a),r},h.prototype.transformY=function(i){var r=0,a=this.lworldExtY;return a!=0&&(r=this.ldeviceOrgY+(i-this.lworldOrgY)*this.ldeviceExtY/a),r},h.prototype.inverseTransformX=function(i){var r=0,a=this.ldeviceExtX;return a!=0&&(r=this.lworldOrgX+(i-this.ldeviceOrgX)*this.lworldExtX/a),r},h.prototype.inverseTransformY=function(i){var r=0,a=this.ldeviceExtY;return a!=0&&(r=this.lworldOrgY+(i-this.ldeviceOrgY)*this.lworldExtY/a),r},h.prototype.inverseTransformPoint=function(i){var r=new v(this.inverseTransformX(i.x),this.inverseTransformY(i.y));return r},A.exports=h}),(function(A,G,N){function v(t){if(Array.isArray(t)){for(var s=0,o=Array(t.length);si.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*i.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(t-i.ADAPTATION_LOWER_NODE_LIMIT)/(i.ADAPTATION_UPPER_NODE_LIMIT-i.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-i.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=i.MAX_NODE_DISPLACEMENT_INCREMENTAL):(t>i.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(i.COOLING_ADAPTATION_FACTOR,1-(t-i.ADAPTATION_LOWER_NODE_LIMIT)/(i.ADAPTATION_UPPER_NODE_LIMIT-i.ADAPTATION_LOWER_NODE_LIMIT)*(1-i.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=i.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.displacementThresholdPerNode=3*i.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},e.prototype.calcSpringForces=function(){for(var t=this.getAllEdges(),s,o=0;o0&&arguments[0]!==void 0?arguments[0]:!0,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,o,c,l,T,g=this.getAllNodes(),d;if(this.useFRGridVariant)for(this.totalIterations%i.GRID_CALCULATION_CHECK_PERIOD==1&&t&&this.updateGrid(),d=new Set,o=0;oC||d>C)&&(t.gravitationForceX=-this.gravityConstant*l,t.gravitationForceY=-this.gravityConstant*T)):(C=s.getEstimatedSize()*this.compoundGravityRangeFactor,(g>C||d>C)&&(t.gravitationForceX=-this.gravityConstant*l*this.compoundGravityConstant,t.gravitationForceY=-this.gravityConstant*T*this.compoundGravityConstant))},e.prototype.isConverged=function(){var t,s=!1;return this.totalIterations>this.maxIterations/3&&(s=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),t=this.totalDisplacement=g.length||C>=g[0].length)){for(var S=0;Se}}]),a})();A.exports=r}),(function(A,G,N){function v(){}v.svd=function(h){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=h.length,this.n=h[0].length;var i=Math.min(this.m,this.n);this.s=(function(Tt){for(var Ct=[];Tt-- >0;)Ct.push(0);return Ct})(Math.min(this.m+1,this.n)),this.U=(function(Tt){var Ct=function Bt(bt){if(bt.length==0)return 0;for(var zt=[],St=0;St0;)Ct.push(0);return Ct})(this.n),a=(function(Tt){for(var Ct=[];Tt-- >0;)Ct.push(0);return Ct})(this.m),f=!0,e=Math.min(this.m-1,this.n),u=Math.max(0,Math.min(this.n-2,this.m)),t=0;t=0;m--)if(this.s[m]!==0){for(var y=m+1;y=0;z--){if((function(Tt,Ct){return Tt&&Ct})(z0;){var J=void 0,It=void 0;for(J=n-2;J>=-1&&J!==-1;J--)if(Math.abs(r[J])<=ht+tt*(Math.abs(this.s[J])+Math.abs(this.s[J+1]))){r[J]=0;break}if(J===n-2)It=4;else{var Nt=void 0;for(Nt=n-1;Nt>=J&&Nt!==J;Nt--){var vt=(Nt!==n?Math.abs(r[Nt]):0)+(Nt!==J+1?Math.abs(r[Nt-1]):0);if(Math.abs(this.s[Nt])<=ht+tt*vt){this.s[Nt]=0;break}}Nt===J?It=3:Nt===n-1?It=1:(It=2,J=Nt)}switch(J++,It){case 1:{var it=r[n-2];r[n-2]=0;for(var ut=n-2;ut>=J;ut--){var Et=v.hypot(this.s[ut],it),wt=this.s[ut]/Et,Ot=it/Et;this.s[ut]=Et,ut!==J&&(it=-Ot*r[ut-1],r[ut-1]=wt*r[ut-1]);for(var mt=0;mt=this.s[J+1]);){var Lt=this.s[J];if(this.s[J]=this.s[J+1],this.s[J+1]=Lt,JMath.abs(i)?(r=i/h,r=Math.abs(h)*Math.sqrt(1+r*r)):i!=0?(r=h/i,r=Math.abs(i)*Math.sqrt(1+r*r)):r=0,r},A.exports=v}),(function(A,G,N){var v=(function(){function r(a,f){for(var e=0;e2&&arguments[2]!==void 0?arguments[2]:1,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,t=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;h(this,r),this.sequence1=a,this.sequence2=f,this.match_score=e,this.mismatch_penalty=u,this.gap_penalty=t,this.iMax=a.length+1,this.jMax=f.length+1,this.grid=new Array(this.iMax);for(var s=0;s=0;a--){var f=this.listeners[a];f.event===i&&f.callback===r&&this.listeners.splice(a,1)}},h.emit=function(i,r){for(var a=0;a{var G={45:((i,r,a)=>{var f={};f.layoutBase=a(551),f.CoSEConstants=a(806),f.CoSEEdge=a(767),f.CoSEGraph=a(880),f.CoSEGraphManager=a(578),f.CoSELayout=a(765),f.CoSENode=a(991),f.ConstraintHandler=a(902),i.exports=f}),806:((i,r,a)=>{var f=a(551).FDLayoutConstants;function e(){}for(var u in f)e[u]=f[u];e.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,e.DEFAULT_RADIAL_SEPARATION=f.DEFAULT_EDGE_LENGTH,e.DEFAULT_COMPONENT_SEPERATION=60,e.TILE=!0,e.TILING_PADDING_VERTICAL=10,e.TILING_PADDING_HORIZONTAL=10,e.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,e.ENFORCE_CONSTRAINTS=!0,e.APPLY_LAYOUT=!0,e.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,e.TREE_REDUCTION_ON_INCREMENTAL=!0,e.PURE_INCREMENTAL=e.DEFAULT_INCREMENTAL,i.exports=e}),767:((i,r,a)=>{var f=a(551).FDLayoutEdge;function e(t,s,o){f.call(this,t,s,o)}e.prototype=Object.create(f.prototype);for(var u in f)e[u]=f[u];i.exports=e}),880:((i,r,a)=>{var f=a(551).LGraph;function e(t,s,o){f.call(this,t,s,o)}e.prototype=Object.create(f.prototype);for(var u in f)e[u]=f[u];i.exports=e}),578:((i,r,a)=>{var f=a(551).LGraphManager;function e(t){f.call(this,t)}e.prototype=Object.create(f.prototype);for(var u in f)e[u]=f[u];i.exports=e}),765:((i,r,a)=>{var f=a(551).FDLayout,e=a(578),u=a(880),t=a(991),s=a(767),o=a(806),c=a(902),l=a(551).FDLayoutConstants,T=a(551).LayoutConstants,g=a(551).Point,d=a(551).PointD,C=a(551).DimensionD,S=a(551).Layout,w=a(551).Integer,P=a(551).IGeometry,B=a(551).LGraph,U=a(551).Transform,V=a(551).LinkedList;function M(){f.call(this),this.toBeTiled={},this.constraints={}}M.prototype=Object.create(f.prototype);for(var _ in f)M[_]=f[_];M.prototype.newGraphManager=function(){var n=new e(this);return this.graphManager=n,n},M.prototype.newGraph=function(n){return new u(null,this.graphManager,n)},M.prototype.newNode=function(n){return new t(this.graphManager,n)},M.prototype.newEdge=function(n){return new s(null,null,n)},M.prototype.initParameters=function(){f.prototype.initParameters.call(this,arguments),this.isSubLayout||(o.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=o.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=o.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=l.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=l.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=l.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},M.prototype.initSpringEmbedder=function(){f.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/l.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},M.prototype.layout=function(){var n=T.DEFAULT_CREATE_BENDS_AS_NEEDED;return n&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},M.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(o.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var E=new Set(this.getAllNodes()),p=this.nodesWithGravity.filter(function(I){return E.has(I)});this.graphManager.setAllNodesToApplyGravitation(p)}}else{var n=this.getFlatForest();if(n.length>0)this.positionNodesRadially(n);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var E=new Set(this.getAllNodes()),p=this.nodesWithGravity.filter(function(m){return E.has(m)});this.graphManager.setAllNodesToApplyGravitation(p),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(c.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),o.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},M.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%l.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 n=new Set(this.getAllNodes()),E=this.nodesWithGravity.filter(function(y){return n.has(y)});this.graphManager.setAllNodesToApplyGravitation(E),this.graphManager.updateBounds(),this.updateGrid(),o.PURE_INCREMENTAL?this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=l.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()),o.PURE_INCREMENTAL?this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var p=!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(p,m),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},M.prototype.getPositionsData=function(){for(var n=this.graphManager.getAllNodes(),E={},p=0;p0&&this.updateDisplacements();for(var p=0;p0&&(m.fixedNodeWeight=I)}}if(this.constraints.relativePlacementConstraint){var O=new Map,R=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(D){n.fixedNodesOnHorizontal.add(D),n.fixedNodesOnVertical.add(D)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var W=this.constraints.alignmentConstraint.vertical,p=0;p=2*D.length/3;tt--)H=Math.floor(Math.random()*(tt+1)),k=D[tt],D[tt]=D[H],D[H]=k;return D},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(D){if(D.left){var H=O.has(D.left)?O.get(D.left):D.left,k=O.has(D.right)?O.get(D.right):D.right;n.nodesInRelativeHorizontal.includes(H)||(n.nodesInRelativeHorizontal.push(H),n.nodeToRelativeConstraintMapHorizontal.set(H,[]),n.dummyToNodeForVerticalAlignment.has(H)?n.nodeToTempPositionMapHorizontal.set(H,n.idToNodeMap.get(n.dummyToNodeForVerticalAlignment.get(H)[0]).getCenterX()):n.nodeToTempPositionMapHorizontal.set(H,n.idToNodeMap.get(H).getCenterX())),n.nodesInRelativeHorizontal.includes(k)||(n.nodesInRelativeHorizontal.push(k),n.nodeToRelativeConstraintMapHorizontal.set(k,[]),n.dummyToNodeForVerticalAlignment.has(k)?n.nodeToTempPositionMapHorizontal.set(k,n.idToNodeMap.get(n.dummyToNodeForVerticalAlignment.get(k)[0]).getCenterX()):n.nodeToTempPositionMapHorizontal.set(k,n.idToNodeMap.get(k).getCenterX())),n.nodeToRelativeConstraintMapHorizontal.get(H).push({right:k,gap:D.gap}),n.nodeToRelativeConstraintMapHorizontal.get(k).push({left:H,gap:D.gap})}else{var tt=R.has(D.top)?R.get(D.top):D.top,ht=R.has(D.bottom)?R.get(D.bottom):D.bottom;n.nodesInRelativeVertical.includes(tt)||(n.nodesInRelativeVertical.push(tt),n.nodeToRelativeConstraintMapVertical.set(tt,[]),n.dummyToNodeForHorizontalAlignment.has(tt)?n.nodeToTempPositionMapVertical.set(tt,n.idToNodeMap.get(n.dummyToNodeForHorizontalAlignment.get(tt)[0]).getCenterY()):n.nodeToTempPositionMapVertical.set(tt,n.idToNodeMap.get(tt).getCenterY())),n.nodesInRelativeVertical.includes(ht)||(n.nodesInRelativeVertical.push(ht),n.nodeToRelativeConstraintMapVertical.set(ht,[]),n.dummyToNodeForHorizontalAlignment.has(ht)?n.nodeToTempPositionMapVertical.set(ht,n.idToNodeMap.get(n.dummyToNodeForHorizontalAlignment.get(ht)[0]).getCenterY()):n.nodeToTempPositionMapVertical.set(ht,n.idToNodeMap.get(ht).getCenterY())),n.nodeToRelativeConstraintMapVertical.get(tt).push({bottom:ht,gap:D.gap}),n.nodeToRelativeConstraintMapVertical.get(ht).push({top:tt,gap:D.gap})}});else{var Q=new Map,z=new Map;this.constraints.relativePlacementConstraint.forEach(function(D){if(D.left){var H=O.has(D.left)?O.get(D.left):D.left,k=O.has(D.right)?O.get(D.right):D.right;Q.has(H)?Q.get(H).push(k):Q.set(H,[k]),Q.has(k)?Q.get(k).push(H):Q.set(k,[H])}else{var tt=R.has(D.top)?R.get(D.top):D.top,ht=R.has(D.bottom)?R.get(D.bottom):D.bottom;z.has(tt)?z.get(tt).push(ht):z.set(tt,[ht]),z.has(ht)?z.get(ht).push(tt):z.set(ht,[tt])}});var X=function(H,k){var tt=[],ht=[],J=new V,It=new Set,Nt=0;return H.forEach(function(vt,it){if(!It.has(it)){tt[Nt]=[],ht[Nt]=!1;var ut=it;for(J.push(ut),It.add(ut),tt[Nt].push(ut);J.length!=0;){ut=J.shift(),k.has(ut)&&(ht[Nt]=!0);var Et=H.get(ut);Et.forEach(function(wt){It.has(wt)||(J.push(wt),It.add(wt),tt[Nt].push(wt))})}Nt++}}),{components:tt,isFixed:ht}},rt=X(Q,n.fixedNodesOnHorizontal);this.componentsOnHorizontal=rt.components,this.fixedComponentsOnHorizontal=rt.isFixed;var $=X(z,n.fixedNodesOnVertical);this.componentsOnVertical=$.components,this.fixedComponentsOnVertical=$.isFixed}}},M.prototype.updateDisplacements=function(){var n=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function($){var D=n.idToNodeMap.get($.nodeId);D.displacementX=0,D.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var E=this.constraints.alignmentConstraint.vertical,p=0;p1){var R;for(R=0;Rm&&(m=Math.floor(O.y)),I=Math.floor(O.x+o.DEFAULT_COMPONENT_SEPERATION)}this.transform(new d(T.WORLD_CENTER_X-O.x/2,T.WORLD_CENTER_Y-O.y/2))},M.radialLayout=function(n,E,p){var m=Math.max(this.maxDiagonalInTree(n),o.DEFAULT_RADIAL_SEPARATION);M.branchRadialLayout(E,null,0,359,0,m);var y=B.calculateBounds(n),I=new U;I.setDeviceOrgX(y.getMinX()),I.setDeviceOrgY(y.getMinY()),I.setWorldOrgX(p.x),I.setWorldOrgY(p.y);for(var O=0;O1;){var k=H[0];H.splice(0,1);var tt=z.indexOf(k);tt>=0&&z.splice(tt,1),$--,X--}E!=null?D=(z.indexOf(H[0])+1)%$:D=0;for(var ht=Math.abs(m-p)/X,J=D;rt!=X;J=++J%$){var It=z[J].getOtherEnd(n);if(It!=E){var Nt=(p+rt*ht)%360,vt=(Nt+ht)%360;M.branchRadialLayout(It,n,Nt,vt,y+I,I),rt++}}},M.maxDiagonalInTree=function(n){for(var E=w.MIN_VALUE,p=0;pE&&(E=y)}return E},M.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},M.prototype.groupZeroDegreeMembers=function(){var n=this,E={};this.memberGroups={},this.idToDummyNode={};for(var p=[],m=this.graphManager.getAllNodes(),y=0;y"u"&&(E[R]=[]),E[R]=E[R].concat(I)}Object.keys(E).forEach(function(W){if(E[W].length>1){var x="DummyCompound_"+W;n.memberGroups[x]=E[W];var Q=E[W][0].getParent(),z=new t(n.graphManager);z.id=x,z.paddingLeft=Q.paddingLeft||0,z.paddingRight=Q.paddingRight||0,z.paddingBottom=Q.paddingBottom||0,z.paddingTop=Q.paddingTop||0,n.idToDummyNode[x]=z;var X=n.getGraphManager().add(n.newGraph(),z),rt=Q.getChild();rt.add(z);for(var $=0;$y?(m.rect.x-=(m.labelWidth-y)/2,m.setWidth(m.labelWidth),m.labelMarginLeft=(m.labelWidth-y)/2):m.labelPosHorizontal=="right"&&m.setWidth(y+m.labelWidth)),m.labelHeight&&(m.labelPosVertical=="top"?(m.rect.y-=m.labelHeight,m.setHeight(I+m.labelHeight),m.labelMarginTop=m.labelHeight):m.labelPosVertical=="center"&&m.labelHeight>I?(m.rect.y-=(m.labelHeight-I)/2,m.setHeight(m.labelHeight),m.labelMarginTop=(m.labelHeight-I)/2):m.labelPosVertical=="bottom"&&m.setHeight(I+m.labelHeight))}})},M.prototype.repopulateCompounds=function(){for(var n=this.compoundOrder.length-1;n>=0;n--){var E=this.compoundOrder[n],p=E.id,m=E.paddingLeft,y=E.paddingTop,I=E.labelMarginLeft,O=E.labelMarginTop;this.adjustLocations(this.tiledMemberPack[p],E.rect.x,E.rect.y,m,y,I,O)}},M.prototype.repopulateZeroDegreeMembers=function(){var n=this,E=this.tiledZeroDegreePack;Object.keys(E).forEach(function(p){var m=n.idToDummyNode[p],y=m.paddingLeft,I=m.paddingTop,O=m.labelMarginLeft,R=m.labelMarginTop;n.adjustLocations(E[p],m.rect.x,m.rect.y,y,I,O,R)})},M.prototype.getToBeTiled=function(n){var E=n.id;if(this.toBeTiled[E]!=null)return this.toBeTiled[E];var p=n.getChild();if(p==null)return this.toBeTiled[E]=!1,!1;for(var m=p.getNodes(),y=0;y0)return this.toBeTiled[E]=!1,!1;if(I.getChild()==null){this.toBeTiled[I.id]=!1;continue}if(!this.getToBeTiled(I))return this.toBeTiled[E]=!1,!1}return this.toBeTiled[E]=!0,!0},M.prototype.getNodeDegree=function(n){n.id;for(var E=n.getEdges(),p=0,m=0;mQ&&(Q=X.rect.height)}p+=Q+n.verticalPadding}},M.prototype.tileCompoundMembers=function(n,E){var p=this;this.tiledMemberPack=[],Object.keys(n).forEach(function(m){var y=E[m];if(p.tiledMemberPack[m]=p.tileNodes(n[m],y.paddingLeft+y.paddingRight),y.rect.width=p.tiledMemberPack[m].width,y.rect.height=p.tiledMemberPack[m].height,y.setCenter(p.tiledMemberPack[m].centerX,p.tiledMemberPack[m].centerY),y.labelMarginLeft=0,y.labelMarginTop=0,o.NODE_DIMENSIONS_INCLUDE_LABELS){var I=y.rect.width,O=y.rect.height;y.labelWidth&&(y.labelPosHorizontal=="left"?(y.rect.x-=y.labelWidth,y.setWidth(I+y.labelWidth),y.labelMarginLeft=y.labelWidth):y.labelPosHorizontal=="center"&&y.labelWidth>I?(y.rect.x-=(y.labelWidth-I)/2,y.setWidth(y.labelWidth),y.labelMarginLeft=(y.labelWidth-I)/2):y.labelPosHorizontal=="right"&&y.setWidth(I+y.labelWidth)),y.labelHeight&&(y.labelPosVertical=="top"?(y.rect.y-=y.labelHeight,y.setHeight(O+y.labelHeight),y.labelMarginTop=y.labelHeight):y.labelPosVertical=="center"&&y.labelHeight>O?(y.rect.y-=(y.labelHeight-O)/2,y.setHeight(y.labelHeight),y.labelMarginTop=(y.labelHeight-O)/2):y.labelPosVertical=="bottom"&&y.setHeight(O+y.labelHeight))}})},M.prototype.tileNodes=function(n,E){var p=this.tileNodesByFavoringDim(n,E,!0),m=this.tileNodesByFavoringDim(n,E,!1),y=this.getOrgRatio(p),I=this.getOrgRatio(m),O;return IR&&(R=$.getWidth())});var W=I/y,x=O/y,Q=Math.pow(p-m,2)+4*(W+m)*(x+p)*y,z=(m-p+Math.sqrt(Q))/(2*(W+m)),X;E?(X=Math.ceil(z),X==z&&X++):X=Math.floor(z);var rt=X*(W+m)-m;return R>rt&&(rt=R),rt+=m*2,rt},M.prototype.tileNodesByFavoringDim=function(n,E,p){var m=o.TILING_PADDING_VERTICAL,y=o.TILING_PADDING_HORIZONTAL,I=o.TILING_COMPARE_BY,O={rows:[],rowWidth:[],rowHeight:[],width:0,height:E,verticalPadding:m,horizontalPadding:y,centerX:0,centerY:0};I&&(O.idealRowWidth=this.calcIdealRowWidth(n,p));var R=function(D){return D.rect.width*D.rect.height},W=function(D,H){return R(H)-R(D)};n.sort(function($,D){var H=W;return O.idealRowWidth?(H=I,H($.id,D.id)):H($,D)});for(var x=0,Q=0,z=0;z0&&(O+=n.horizontalPadding),n.rowWidth[p]=O,n.width0&&(R+=n.verticalPadding);var W=0;R>n.rowHeight[p]&&(W=n.rowHeight[p],n.rowHeight[p]=R,W=n.rowHeight[p]-W),n.height+=W,n.rows[p].push(E)},M.prototype.getShortestRowIndex=function(n){for(var E=-1,p=Number.MAX_VALUE,m=0;mp&&(E=m,p=n.rowWidth[m]);return E},M.prototype.canAddHorizontal=function(n,E,p){if(n.idealRowWidth){var m=n.rows.length-1,y=n.rowWidth[m];return y+E+n.horizontalPadding<=n.idealRowWidth}var I=this.getShortestRowIndex(n);if(I<0)return!0;var O=n.rowWidth[I];if(O+n.horizontalPadding+E<=n.width)return!0;var R=0;n.rowHeight[I]0&&(R=p+n.verticalPadding-n.rowHeight[I]);var W;n.width-O>=E+n.horizontalPadding?W=(n.height+R)/(O+E+n.horizontalPadding):W=(n.height+R)/n.width,R=p+n.verticalPadding;var x;return n.widthI&&E!=p){m.splice(-1,1),n.rows[p].push(y),n.rowWidth[E]=n.rowWidth[E]-I,n.rowWidth[p]=n.rowWidth[p]+I,n.width=n.rowWidth[instance.getLongestRowIndex(n)];for(var O=Number.MIN_VALUE,R=0;RO&&(O=m[R].height);E>0&&(O+=n.verticalPadding);var W=n.rowHeight[E]+n.rowHeight[p];n.rowHeight[E]=O,n.rowHeight[p]0)for(var rt=y;rt<=I;rt++)X[0]+=this.grid[rt][O-1].length+this.grid[rt][O].length-1;if(I0)for(var rt=O;rt<=R;rt++)X[3]+=this.grid[y-1][rt].length+this.grid[y][rt].length-1;for(var $=w.MAX_VALUE,D,H,k=0;k{var f=a(551).FDLayoutNode,e=a(551).IMath;function u(s,o,c,l){f.call(this,s,o,c,l)}u.prototype=Object.create(f.prototype);for(var t in f)u[t]=f[t];u.prototype.calculateDisplacement=function(){var s=this.graphManager.getLayout();this.getChild()!=null&&this.fixedNodeWeight?(this.displacementX+=s.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=s.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=s.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=s.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>s.coolingFactor*s.maxNodeDisplacement&&(this.displacementX=s.coolingFactor*s.maxNodeDisplacement*e.sign(this.displacementX)),Math.abs(this.displacementY)>s.coolingFactor*s.maxNodeDisplacement&&(this.displacementY=s.coolingFactor*s.maxNodeDisplacement*e.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},u.prototype.propogateDisplacementToChildren=function(s,o){for(var c=this.getChild().getNodes(),l,T=0;T{function f(c){if(Array.isArray(c)){for(var l=0,T=Array(c.length);l0){var Lt=0;ot.forEach(function(st){Z=="horizontal"?(et.set(st,g.has(st)?d[g.get(st)]:q.get(st)),Lt+=et.get(st)):(et.set(st,g.has(st)?C[g.get(st)]:q.get(st)),Lt+=et.get(st))}),Lt=Lt/ot.length,lt.forEach(function(st){K.has(st)||et.set(st,Lt)})}else{var ft=0;lt.forEach(function(st){Z=="horizontal"?ft+=g.has(st)?d[g.get(st)]:q.get(st):ft+=g.has(st)?C[g.get(st)]:q.get(st)}),ft=ft/lt.length,lt.forEach(function(st){et.set(st,ft)})}});for(var At=function(){var ot=dt.shift(),Lt=Y.get(ot);Lt.forEach(function(ft){if(et.get(ft.id)st&&(st=kt),KtXt&&(Xt=Kt)}}catch(ee){Ct=!0,Bt=ee}finally{try{!Tt&&bt.return&&bt.return()}finally{if(Ct)throw Bt}}var fe=(Lt+st)/2-(ft+Xt)/2,Qt=!0,jt=!1,_t=void 0;try{for(var Jt=lt[Symbol.iterator](),ne;!(Qt=(ne=Jt.next()).done);Qt=!0){var te=ne.value;et.set(te,et.get(te)+fe)}}catch(ee){jt=!0,_t=ee}finally{try{!Qt&&Jt.return&&Jt.return()}finally{if(jt)throw _t}}})}return et},_=function(Y){var Z=0,K=0,q=0,at=0;if(Y.forEach(function(j){j.left?d[g.get(j.left)]-d[g.get(j.right)]>=0?Z++:K++:C[g.get(j.top)]-C[g.get(j.bottom)]>=0?q++:at++}),Z>K&&q>at)for(var ct=0;ctK)for(var nt=0;ntat)for(var et=0;et1)l.fixedNodeConstraint.forEach(function(F,Y){m[Y]=[F.position.x,F.position.y],y[Y]=[d[g.get(F.nodeId)],C[g.get(F.nodeId)]]}),I=!0;else if(l.alignmentConstraint)(function(){var F=0;if(l.alignmentConstraint.vertical){for(var Y=l.alignmentConstraint.vertical,Z=function(et){var j=new Set;Y[et].forEach(function(pt){j.add(pt)});var dt=new Set([].concat(f(j)).filter(function(pt){return R.has(pt)})),At=void 0;dt.size>0?At=d[g.get(dt.values().next().value)]:At=V(j).x,Y[et].forEach(function(pt){m[F]=[At,C[g.get(pt)]],y[F]=[d[g.get(pt)],C[g.get(pt)]],F++})},K=0;K0?At=d[g.get(dt.values().next().value)]:At=V(j).y,q[et].forEach(function(pt){m[F]=[d[g.get(pt)],At],y[F]=[d[g.get(pt)],C[g.get(pt)]],F++})},ct=0;ctz&&(z=Q[rt].length,X=rt);if(z0){var mt={x:0,y:0};l.fixedNodeConstraint.forEach(function(F,Y){var Z={x:d[g.get(F.nodeId)],y:C[g.get(F.nodeId)]},K=F.position,q=U(K,Z);mt.x+=q.x,mt.y+=q.y}),mt.x/=l.fixedNodeConstraint.length,mt.y/=l.fixedNodeConstraint.length,d.forEach(function(F,Y){d[Y]+=mt.x}),C.forEach(function(F,Y){C[Y]+=mt.y}),l.fixedNodeConstraint.forEach(function(F){d[g.get(F.nodeId)]=F.position.x,C[g.get(F.nodeId)]=F.position.y})}if(l.alignmentConstraint){if(l.alignmentConstraint.vertical)for(var Dt=l.alignmentConstraint.vertical,Rt=function(Y){var Z=new Set;Dt[Y].forEach(function(at){Z.add(at)});var K=new Set([].concat(f(Z)).filter(function(at){return R.has(at)})),q=void 0;K.size>0?q=d[g.get(K.values().next().value)]:q=V(Z).x,Z.forEach(function(at){R.has(at)||(d[g.get(at)]=q)})},Ht=0;Ht0?q=C[g.get(K.values().next().value)]:q=V(Z).y,Z.forEach(function(at){R.has(at)||(C[g.get(at)]=q)})},Ft=0;Ft{i.exports=A})},N={};function v(i){var r=N[i];if(r!==void 0)return r.exports;var a=N[i]={exports:{}};return G[i](a,a.exports,v),a.exports}var h=v(45);return h})()})})(he)),he.exports}var pr=se.exports,De;function yr(){return De||(De=1,(function(L,b){(function(G,N){L.exports=N(vr())})(pr,function(A){return(()=>{var G={658:(i=>{i.exports=Object.assign!=null?Object.assign.bind(Object):function(r){for(var a=arguments.length,f=Array(a>1?a-1:0),e=1;e{var f=(function(){function t(s,o){var c=[],l=!0,T=!1,g=void 0;try{for(var d=s[Symbol.iterator](),C;!(l=(C=d.next()).done)&&(c.push(C.value),!(o&&c.length===o));l=!0);}catch(S){T=!0,g=S}finally{try{!l&&d.return&&d.return()}finally{if(T)throw g}}return c}return function(s,o){if(Array.isArray(s))return s;if(Symbol.iterator in Object(s))return t(s,o);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),e=a(140).layoutBase.LinkedList,u={};u.getTopMostNodes=function(t){for(var s={},o=0;o0&&I.merge(x)});for(var O=0;O1){C=g[0],S=C.connectedEdges().length,g.forEach(function(y){y.connectedEdges().length0&&c.set("dummy"+(c.size+1),B),U},u.relocateComponent=function(t,s,o){if(!o.fixedNodeConstraint){var c=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY,T=Number.POSITIVE_INFINITY,g=Number.NEGATIVE_INFINITY;if(o.quality=="draft"){var d=!0,C=!1,S=void 0;try{for(var w=s.nodeIndexes[Symbol.iterator](),P;!(d=(P=w.next()).done);d=!0){var B=P.value,U=f(B,2),V=U[0],M=U[1],_=o.cy.getElementById(V);if(_){var n=_.boundingBox(),E=s.xCoords[M]-n.w/2,p=s.xCoords[M]+n.w/2,m=s.yCoords[M]-n.h/2,y=s.yCoords[M]+n.h/2;El&&(l=p),mg&&(g=y)}}}catch(x){C=!0,S=x}finally{try{!d&&w.return&&w.return()}finally{if(C)throw S}}var I=t.x-(l+c)/2,O=t.y-(g+T)/2;s.xCoords=s.xCoords.map(function(x){return x+I}),s.yCoords=s.yCoords.map(function(x){return x+O})}else{Object.keys(s).forEach(function(x){var Q=s[x],z=Q.getRect().x,X=Q.getRect().x+Q.getRect().width,rt=Q.getRect().y,$=Q.getRect().y+Q.getRect().height;zl&&(l=X),rtg&&(g=$)});var R=t.x-(l+c)/2,W=t.y-(g+T)/2;Object.keys(s).forEach(function(x){var Q=s[x];Q.setCenter(Q.getCenterX()+R,Q.getCenterY()+W)})}}},u.calcBoundingBox=function(t,s,o,c){for(var l=Number.MAX_SAFE_INTEGER,T=Number.MIN_SAFE_INTEGER,g=Number.MAX_SAFE_INTEGER,d=Number.MIN_SAFE_INTEGER,C=void 0,S=void 0,w=void 0,P=void 0,B=t.descendants().not(":parent"),U=B.length,V=0;VC&&(l=C),Tw&&(g=w),d{var f=a(548),e=a(140).CoSELayout,u=a(140).CoSENode,t=a(140).layoutBase.PointD,s=a(140).layoutBase.DimensionD,o=a(140).layoutBase.LayoutConstants,c=a(140).layoutBase.FDLayoutConstants,l=a(140).CoSEConstants,T=function(d,C){var S=d.cy,w=d.eles,P=w.nodes(),B=w.edges(),U=void 0,V=void 0,M=void 0,_={};d.randomize&&(U=C.nodeIndexes,V=C.xCoords,M=C.yCoords);var n=function(x){return typeof x=="function"},E=function(x,Q){return n(x)?x(Q):x},p=f.calcParentsWithoutChildren(S,w),m=function W(x,Q,z,X){for(var rt=Q.length,$=0;$0){var J=void 0;J=z.getGraphManager().add(z.newGraph(),k),W(J,H,z,X)}}},y=function(x,Q,z){for(var X=0,rt=0,$=0;$0?l.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=X/rt:n(d.idealEdgeLength)?l.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=50:l.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=d.idealEdgeLength,l.MIN_REPULSION_DIST=c.MIN_REPULSION_DIST=c.DEFAULT_EDGE_LENGTH/10,l.DEFAULT_RADIAL_SEPARATION=c.DEFAULT_EDGE_LENGTH)},I=function(x,Q){Q.fixedNodeConstraint&&(x.constraints.fixedNodeConstraint=Q.fixedNodeConstraint),Q.alignmentConstraint&&(x.constraints.alignmentConstraint=Q.alignmentConstraint),Q.relativePlacementConstraint&&(x.constraints.relativePlacementConstraint=Q.relativePlacementConstraint)};d.nestingFactor!=null&&(l.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=c.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=d.nestingFactor),d.gravity!=null&&(l.DEFAULT_GRAVITY_STRENGTH=c.DEFAULT_GRAVITY_STRENGTH=d.gravity),d.numIter!=null&&(l.MAX_ITERATIONS=c.MAX_ITERATIONS=d.numIter),d.gravityRange!=null&&(l.DEFAULT_GRAVITY_RANGE_FACTOR=c.DEFAULT_GRAVITY_RANGE_FACTOR=d.gravityRange),d.gravityCompound!=null&&(l.DEFAULT_COMPOUND_GRAVITY_STRENGTH=c.DEFAULT_COMPOUND_GRAVITY_STRENGTH=d.gravityCompound),d.gravityRangeCompound!=null&&(l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=c.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=d.gravityRangeCompound),d.initialEnergyOnIncremental!=null&&(l.DEFAULT_COOLING_FACTOR_INCREMENTAL=c.DEFAULT_COOLING_FACTOR_INCREMENTAL=d.initialEnergyOnIncremental),d.tilingCompareBy!=null&&(l.TILING_COMPARE_BY=d.tilingCompareBy),d.quality=="proof"?o.QUALITY=2:o.QUALITY=0,l.NODE_DIMENSIONS_INCLUDE_LABELS=c.NODE_DIMENSIONS_INCLUDE_LABELS=o.NODE_DIMENSIONS_INCLUDE_LABELS=d.nodeDimensionsIncludeLabels,l.DEFAULT_INCREMENTAL=c.DEFAULT_INCREMENTAL=o.DEFAULT_INCREMENTAL=!d.randomize,l.ANIMATE=c.ANIMATE=o.ANIMATE=d.animate,l.TILE=d.tile,l.TILING_PADDING_VERTICAL=typeof d.tilingPaddingVertical=="function"?d.tilingPaddingVertical.call():d.tilingPaddingVertical,l.TILING_PADDING_HORIZONTAL=typeof d.tilingPaddingHorizontal=="function"?d.tilingPaddingHorizontal.call():d.tilingPaddingHorizontal,l.DEFAULT_INCREMENTAL=c.DEFAULT_INCREMENTAL=o.DEFAULT_INCREMENTAL=!0,l.PURE_INCREMENTAL=!d.randomize,o.DEFAULT_UNIFORM_LEAF_NODE_SIZES=d.uniformNodeDimensions,d.step=="transformed"&&(l.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,l.ENFORCE_CONSTRAINTS=!1,l.APPLY_LAYOUT=!1),d.step=="enforced"&&(l.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,l.ENFORCE_CONSTRAINTS=!0,l.APPLY_LAYOUT=!1),d.step=="cose"&&(l.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,l.ENFORCE_CONSTRAINTS=!1,l.APPLY_LAYOUT=!0),d.step=="all"&&(d.randomize?l.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:l.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,l.ENFORCE_CONSTRAINTS=!0,l.APPLY_LAYOUT=!0),d.fixedNodeConstraint||d.alignmentConstraint||d.relativePlacementConstraint?l.TREE_REDUCTION_ON_INCREMENTAL=!1:l.TREE_REDUCTION_ON_INCREMENTAL=!0;var O=new e,R=O.newGraphManager();return m(R.addRoot(),f.getTopMostNodes(P),O,d),y(O,R,B),I(O,d),O.runLayout(),_};i.exports={coseLayout:T}}),212:((i,r,a)=>{var f=(function(){function d(C,S){for(var w=0;w0)if(p){var I=t.getTopMostNodes(w.eles.nodes());if(M=t.connectComponents(P,w.eles,I),M.forEach(function(vt){var it=vt.boundingBox();_.push({x:it.x1+it.w/2,y:it.y1+it.h/2})}),w.randomize&&M.forEach(function(vt){w.eles=vt,U.push(o(w))}),w.quality=="default"||w.quality=="proof"){var O=P.collection();if(w.tile){var R=new Map,W=[],x=[],Q=0,z={nodeIndexes:R,xCoords:W,yCoords:x},X=[];if(M.forEach(function(vt,it){vt.edges().length==0&&(vt.nodes().forEach(function(ut,Et){O.merge(vt.nodes()[Et]),ut.isParent()||(z.nodeIndexes.set(vt.nodes()[Et].id(),Q++),z.xCoords.push(vt.nodes()[0].position().x),z.yCoords.push(vt.nodes()[0].position().y))}),X.push(it))}),O.length>1){var rt=O.boundingBox();_.push({x:rt.x1+rt.w/2,y:rt.y1+rt.h/2}),M.push(O),U.push(z);for(var $=X.length-1;$>=0;$--)M.splice(X[$],1),U.splice(X[$],1),_.splice(X[$],1)}}M.forEach(function(vt,it){w.eles=vt,V.push(l(w,U[it])),t.relocateComponent(_[it],V[it],w)})}else M.forEach(function(vt,it){t.relocateComponent(_[it],U[it],w)});var D=new Set;if(M.length>1){var H=[],k=B.filter(function(vt){return vt.css("display")=="none"});M.forEach(function(vt,it){var ut=void 0;if(w.quality=="draft"&&(ut=U[it].nodeIndexes),vt.nodes().not(k).length>0){var Et={};Et.edges=[],Et.nodes=[];var wt=void 0;vt.nodes().not(k).forEach(function(Ot){if(w.quality=="draft")if(!Ot.isParent())wt=ut.get(Ot.id()),Et.nodes.push({x:U[it].xCoords[wt]-Ot.boundingbox().w/2,y:U[it].yCoords[wt]-Ot.boundingbox().h/2,width:Ot.boundingbox().w,height:Ot.boundingbox().h});else{var mt=t.calcBoundingBox(Ot,U[it].xCoords,U[it].yCoords,ut);Et.nodes.push({x:mt.topLeftX,y:mt.topLeftY,width:mt.width,height:mt.height})}else V[it][Ot.id()]&&Et.nodes.push({x:V[it][Ot.id()].getLeft(),y:V[it][Ot.id()].getTop(),width:V[it][Ot.id()].getWidth(),height:V[it][Ot.id()].getHeight()})}),vt.edges().forEach(function(Ot){var mt=Ot.source(),Dt=Ot.target();if(mt.css("display")!="none"&&Dt.css("display")!="none")if(w.quality=="draft"){var Rt=ut.get(mt.id()),Ht=ut.get(Dt.id()),Ut=[],Pt=[];if(mt.isParent()){var Ft=t.calcBoundingBox(mt,U[it].xCoords,U[it].yCoords,ut);Ut.push(Ft.topLeftX+Ft.width/2),Ut.push(Ft.topLeftY+Ft.height/2)}else Ut.push(U[it].xCoords[Rt]),Ut.push(U[it].yCoords[Rt]);if(Dt.isParent()){var Yt=t.calcBoundingBox(Dt,U[it].xCoords,U[it].yCoords,ut);Pt.push(Yt.topLeftX+Yt.width/2),Pt.push(Yt.topLeftY+Yt.height/2)}else Pt.push(U[it].xCoords[Ht]),Pt.push(U[it].yCoords[Ht]);Et.edges.push({startX:Ut[0],startY:Ut[1],endX:Pt[0],endY:Pt[1]})}else V[it][mt.id()]&&V[it][Dt.id()]&&Et.edges.push({startX:V[it][mt.id()].getCenterX(),startY:V[it][mt.id()].getCenterY(),endX:V[it][Dt.id()].getCenterX(),endY:V[it][Dt.id()].getCenterY()})}),Et.nodes.length>0&&(H.push(Et),D.add(it))}});var tt=E.packComponents(H,w.randomize).shifts;if(w.quality=="draft")U.forEach(function(vt,it){var ut=vt.xCoords.map(function(wt){return wt+tt[it].dx}),Et=vt.yCoords.map(function(wt){return wt+tt[it].dy});vt.xCoords=ut,vt.yCoords=Et});else{var ht=0;D.forEach(function(vt){Object.keys(V[vt]).forEach(function(it){var ut=V[vt][it];ut.setCenter(ut.getCenterX()+tt[ht].dx,ut.getCenterY()+tt[ht].dy)}),ht++})}}}else{var m=w.eles.boundingBox();if(_.push({x:m.x1+m.w/2,y:m.y1+m.h/2}),w.randomize){var y=o(w);U.push(y)}w.quality=="default"||w.quality=="proof"?(V.push(l(w,U[0])),t.relocateComponent(_[0],V[0],w)):t.relocateComponent(_[0],U[0],w)}var J=function(it,ut){if(w.quality=="default"||w.quality=="proof"){typeof it=="number"&&(it=ut);var Et=void 0,wt=void 0,Ot=it.data("id");return V.forEach(function(Dt){Ot in Dt&&(Et={x:Dt[Ot].getRect().getCenterX(),y:Dt[Ot].getRect().getCenterY()},wt=Dt[Ot])}),w.nodeDimensionsIncludeLabels&&(wt.labelWidth&&(wt.labelPosHorizontal=="left"?Et.x+=wt.labelWidth/2:wt.labelPosHorizontal=="right"&&(Et.x-=wt.labelWidth/2)),wt.labelHeight&&(wt.labelPosVertical=="top"?Et.y+=wt.labelHeight/2:wt.labelPosVertical=="bottom"&&(Et.y-=wt.labelHeight/2))),Et==null&&(Et={x:it.position("x"),y:it.position("y")}),{x:Et.x,y:Et.y}}else{var mt=void 0;return U.forEach(function(Dt){var Rt=Dt.nodeIndexes.get(it.id());Rt!=null&&(mt={x:Dt.xCoords[Rt],y:Dt.yCoords[Rt]})}),mt==null&&(mt={x:it.position("x"),y:it.position("y")}),{x:mt.x,y:mt.y}}};if(w.quality=="default"||w.quality=="proof"||w.randomize){var It=t.calcParentsWithoutChildren(P,B),Nt=B.filter(function(vt){return vt.css("display")=="none"});w.eles=B.not(Nt),B.nodes().not(":parent").not(Nt).layoutPositions(S,w,J),It.length>0&&It.forEach(function(vt){vt.position(J(vt))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")}}]),d})();i.exports=g}),657:((i,r,a)=>{var f=a(548),e=a(140).layoutBase.Matrix,u=a(140).layoutBase.SVD,t=function(o){var c=o.cy,l=o.eles,T=l.nodes(),g=l.nodes(":parent"),d=new Map,C=new Map,S=new Map,w=[],P=[],B=[],U=[],V=[],M=[],_=[],n=[],E=void 0,p=1e8,m=1e-9,y=o.piTol,I=o.samplingType,O=o.nodeSeparation,R=void 0,W=function(){for(var Y=0,Z=0,K=!1;Z=at;){nt=q[at++];for(var xt=w[nt],lt=0;ltdt&&(dt=V[Lt],At=Lt)}return At},Q=function(Y){var Z=void 0;if(Y){Z=Math.floor(Math.random()*E);for(var q=0;q=1)break;j=et}for(var pt=0;pt=1)break;j=et}for(var lt=0;lt0&&(Z.isParent()?w[Y].push(S.get(Z.id())):w[Y].push(Z.id()))})});var Nt=function(Y){var Z=C.get(Y),K=void 0;d.get(Y).forEach(function(q){c.getElementById(q).isParent()?K=S.get(q):K=q,w[Z].push(K),w[C.get(K)].push(Y)})},vt=!0,it=!1,ut=void 0;try{for(var Et=d.keys()[Symbol.iterator](),wt;!(vt=(wt=Et.next()).done);vt=!0){var Ot=wt.value;Nt(Ot)}}catch(F){it=!0,ut=F}finally{try{!vt&&Et.return&&Et.return()}finally{if(it)throw ut}}E=C.size;var mt=void 0;if(E>2){R=E{var f=a(212),e=function(t){t&&t("layout","fcose",f)};typeof cytoscape<"u"&&e(cytoscape),i.exports=e}),140:(i=>{i.exports=A})},N={};function v(i){var r=N[i];if(r!==void 0)return r.exports;var a=N[i]={exports:{}};return G[i](a,a.exports,v),a.exports}var h=v(579);return h})()})})(se)),se.exports}var mr=yr();const Er=cr(mr);var xe={L:"left",R:"right",T:"top",B:"bottom"},Ie={L:gt(L=>`${L},${L/2} 0,${L} 0,0`,"L"),R:gt(L=>`0,${L/2} ${L},0 ${L},${L}`,"R"),T:gt(L=>`0,0 ${L},0 ${L/2},${L}`,"T"),B:gt(L=>`${L/2},0 ${L},${L} 0,${L}`,"B")},oe={L:gt((L,b)=>L-b+2,"L"),R:gt((L,b)=>L-2,"R"),T:gt((L,b)=>L-b+2,"T"),B:gt((L,b)=>L-2,"B")},Tr=gt(function(L){return Wt(L)?L==="L"?"R":"L":L==="T"?"B":"T"},"getOppositeArchitectureDirection"),Re=gt(function(L){const b=L;return b==="L"||b==="R"||b==="T"||b==="B"},"isArchitectureDirection"),Wt=gt(function(L){const b=L;return b==="L"||b==="R"},"isArchitectureDirectionX"),qt=gt(function(L){const b=L;return b==="T"||b==="B"},"isArchitectureDirectionY"),Te=gt(function(L,b){const A=Wt(L)&&qt(b),G=qt(L)&&Wt(b);return A||G},"isArchitectureDirectionXY"),Nr=gt(function(L){const b=L[0],A=L[1],G=Wt(b)&&qt(A),N=qt(b)&&Wt(A);return G||N},"isArchitecturePairXY"),Lr=gt(function(L){return L!=="LL"&&L!=="RR"&&L!=="TT"&&L!=="BB"},"isValidArchitectureDirectionPair"),pe=gt(function(L,b){const A=`${L}${b}`;return Lr(A)?A:void 0},"getArchitectureDirectionPair"),Cr=gt(function([L,b],A){const G=A[0],N=A[1];return Wt(G)?qt(N)?[L+(G==="L"?-1:1),b+(N==="T"?1:-1)]:[L+(G==="L"?-1:1),b]:Wt(N)?[L+(N==="L"?1:-1),b+(G==="T"?1:-1)]:[L,b+(G==="T"?1:-1)]},"shiftPositionByArchitectureDirectionPair"),wr=gt(function(L){return L==="LT"||L==="TL"?[1,1]:L==="BL"||L==="LB"?[1,-1]:L==="BR"||L==="RB"?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),Ar=gt(function(L,b){return Te(L,b)?"bend":Wt(L)?"horizontal":"vertical"},"getArchitectureDirectionAlignment"),Mr=gt(function(L){return L.type==="service"},"isArchitectureService"),Or=gt(function(L){return L.type==="junction"},"isArchitectureJunction"),be=gt(L=>L.data(),"edgeData"),ie=gt(L=>L.data(),"nodeData"),Dr=ar.architecture,Pe=class{constructor(){this.nodes={},this.groups={},this.edges=[],this.layoutHints=[],this.registeredIds={},this.elements={},this.diagramId="",this.setAccTitle=Qe,this.getAccTitle=Je,this.setDiagramTitle=Ke,this.getDiagramTitle=je,this.getAccDescription=_e,this.setAccDescription=tr,this.clear()}static{gt(this,"ArchitectureDB")}setDiagramId(L){this.diagramId=L}getDiagramId(){return this.diagramId}clear(){this.nodes={},this.groups={},this.edges=[],this.layoutHints=[],this.registeredIds={},this.dataStructures=void 0,this.elements={},this.diagramId="",er()}addService({id:L,icon:b,in:A,title:G,iconText:N}){if(this.registeredIds[L]!==void 0)throw new Error(`The service id [${L}] is already in use by another ${this.registeredIds[L]}`);if(A!==void 0){if(L===A)throw new Error(`The service [${L}] cannot be placed within itself`);if(this.registeredIds[A]===void 0)throw new Error(`The service [${L}]'s parent does not exist. Please make sure the parent is created before this service`);if(this.registeredIds[A]==="node")throw new Error(`The service [${L}]'s parent is not a group`)}this.registeredIds[L]="node",this.nodes[L]={id:L,type:"service",icon:b,iconText:N,title:G,edges:[],in:A}}getServices(){return Object.values(this.nodes).filter(Mr)}addJunction({id:L,in:b}){if(this.registeredIds[L]!==void 0)throw new Error(`The junction id [${L}] is already in use by another ${this.registeredIds[L]}`);if(b!==void 0){if(L===b)throw new Error(`The junction [${L}] cannot be placed within itself`);if(this.registeredIds[b]===void 0)throw new Error(`The junction [${L}]'s parent does not exist. Please make sure the parent is created before this junction`);if(this.registeredIds[b]==="node")throw new Error(`The junction [${L}]'s parent is not a group`)}this.registeredIds[L]="node",this.nodes[L]={id:L,type:"junction",edges:[],in:b}}getJunctions(){return Object.values(this.nodes).filter(Or)}getNodes(){return Object.values(this.nodes)}getNode(L){return this.nodes[L]??null}addGroup({id:L,icon:b,in:A,title:G}){if(this.registeredIds?.[L]!==void 0)throw new Error(`The group id [${L}] is already in use by another ${this.registeredIds[L]}`);if(A!==void 0){if(L===A)throw new Error(`The group [${L}] cannot be placed within itself`);if(this.registeredIds?.[A]===void 0)throw new Error(`The group [${L}]'s parent does not exist. Please make sure the parent is created before this group`);if(this.registeredIds?.[A]==="node")throw new Error(`The group [${L}]'s parent is not a group`)}this.registeredIds[L]="group",this.groups[L]={id:L,icon:b,title:G,in:A}}getGroups(){return Object.values(this.groups)}addEdge({lhsId:L,rhsId:b,lhsDir:A,rhsDir:G,lhsInto:N,rhsInto:v,lhsGroup:h,rhsGroup:i,title:r}){if(!Re(A))throw new Error(`Invalid direction given for left hand side of edge ${L}--${b}. Expected (L,R,T,B) got ${String(A)}`);if(!Re(G))throw new Error(`Invalid direction given for right hand side of edge ${L}--${b}. Expected (L,R,T,B) got ${String(G)}`);if(this.nodes[L]===void 0&&this.groups[L]===void 0)throw new Error(`The left-hand id [${L}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(this.nodes[b]===void 0&&this.groups[b]===void 0)throw new Error(`The right-hand id [${b}] does not yet exist. Please create the service/group before declaring an edge to it.`);const a=this.nodes[L].in,f=this.nodes[b].in;if(h&&a&&f&&a==f)throw new Error(`The left-hand id [${L}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(i&&a&&f&&a==f)throw new Error(`The right-hand id [${b}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);const e={lhsId:L,lhsDir:A,lhsInto:N,lhsGroup:h,rhsId:b,rhsDir:G,rhsInto:v,rhsGroup:i,title:r};this.edges.push(e),this.nodes[L]&&this.nodes[b]&&(this.nodes[L].edges.push(this.edges[this.edges.length-1]),this.nodes[b].edges.push(this.edges[this.edges.length-1]))}getEdges(){return this.edges}addLayoutHint(L){if(L.members.length<2)throw new Error(`An align directive requires at least two members; got ${L.members.length}`);const b=new Set;L.members.forEach(A=>{if(this.registeredIds[A]!=="node")throw new Error(`align ${L.direction} references [${A}], which is not a service or junction`);if(b.has(A))throw new Error(`align ${L.direction} lists [${A}] more than once`);b.add(A)}),this.layoutHints.push(L)}getLayoutHints(){return this.layoutHints}getDataStructures(){if(this.dataStructures===void 0){const L={},b=Object.entries(this.nodes).reduce((i,[r,a])=>(i[r]=a.edges.reduce((f,e)=>{const u=this.getNode(e.lhsId)?.in,t=this.getNode(e.rhsId)?.in;if(u&&t&&u!==t){const s=Ar(e.lhsDir,e.rhsDir);s!=="bend"&&(L[u]??={},L[u][t]=s,L[t]??={},L[t][u]=s)}if(e.lhsId===r){const s=pe(e.lhsDir,e.rhsDir);s&&(f[s]=e.rhsId)}else{const s=pe(e.rhsDir,e.lhsDir);s&&(f[s]=e.lhsId)}return f},{}),i),{}),A=Object.keys(b)[0],G={[A]:1},N=Object.keys(b).reduce((i,r)=>r===A?i:{...i,[r]:1},{}),v=gt(i=>{const r={[i]:[0,0]},a=[i];for(;a.length>0;){const f=a.shift();if(f){G[f]=1,delete N[f];const e=b[f],[u,t]=r[f];Object.entries(e).forEach(([s,o])=>{G[o]||(r[o]=Cr([u,t],s),a.push(o))})}}return r},"BFS"),h=[v(A)];for(;Object.keys(N).length>0;)h.push(v(Object.keys(N)[0]));this.dataStructures={adjList:b,spatialMaps:h,groupAlignments:L}}return this.dataStructures}setElementForId(L,b){this.elements[L]=b}getElementById(L){return this.elements[L]}getConfig(){return rr({...Dr,...ir().architecture})}getConfigField(L){return this.getConfig()[L]}},xr=gt((L,b)=>{ke(L,b),L.groups.map(A=>b.addGroup(A)),L.services.map(A=>b.addService({...A,type:"service"})),L.junctions.map(A=>b.addJunction({...A,type:"junction"})),L.edges.map(A=>b.addEdge(A)),L.alignments?.map(A=>b.addLayoutHint({direction:A.direction,members:[...A.members]}))},"populateDb"),Ge={parser:{yy:void 0},parse:gt(async L=>{const b=await fr("architecture",L);Se.debug(b);const A=Ge.parser?.yy;if(!(A instanceof Pe))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.");xr(b,A)},"parse")},Ir=gt(L=>` - .edge { - stroke-width: ${L.archEdgeWidth}; - stroke: ${L.archEdgeColor}; - fill: none; - } - - .arrow { - fill: ${L.archEdgeArrowColor}; - } - - .node-bkg { - fill: none; - stroke: ${L.archGroupBorderColor}; - stroke-width: ${L.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"),Rr=Ir;function ye(L,b){if(L===0)return b();const A=Math.random;let G=L>>>0;Math.random=function(){G=G+1831565813>>>0;let N=G;return N=Math.imul(N^N>>>15,N|1),N^=N+Math.imul(N^N>>>7,N|61),((N^N>>>14)>>>0)/4294967296};try{return b()}finally{Math.random=A}}gt(ye,"withSeededRandom");var re=gt(L=>`${L}`,"wrapIcon"),ae={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:re('')},server:{body:re('')},disk:{body:re('')},internet:{body:re('')},cloud:{body:re('')},unknown:lr,blank:{body:re("")}}},Sr=gt(async function(L,b,A,G){const N=A.getConfigField("padding"),v=A.getConfigField("iconSize"),h=v/2,i=v/6,r=i/2;await Promise.all(b.edges().map(async a=>{const{source:f,sourceDir:e,sourceArrow:u,sourceGroup:t,target:s,targetDir:o,targetArrow:c,targetGroup:l,label:T}=be(a);let{x:g,y:d}=a[0].sourceEndpoint();const{x:C,y:S}=a[0].midpoint();let{x:w,y:P}=a[0].targetEndpoint();const B=N+4;if(t&&(Wt(e)?g+=e==="L"?-B:B:d+=e==="T"?-B:B+18),l&&(Wt(o)?w+=o==="L"?-B:B:P+=o==="T"?-B:B+18),!t&&A.getNode(f)?.type==="junction"&&(Wt(e)?g+=e==="L"?h:-h:d+=e==="T"?h:-h),!l&&A.getNode(s)?.type==="junction"&&(Wt(o)?w+=o==="L"?h:-h:P+=o==="T"?h:-h),a[0]._private.rscratch){const U=L.insert("g");if(U.insert("path").attr("d",`M ${g},${d} L ${C},${S} L${w},${P} `).attr("class","edge").attr("id",`${G}-${sr(f,s,{prefix:"L"})}`),u){const V=Wt(e)?oe[e](g,i):g-r,M=qt(e)?oe[e](d,i):d-r;U.insert("polygon").attr("points",Ie[e](i)).attr("transform",`translate(${V},${M})`).attr("class","arrow")}if(c){const V=Wt(o)?oe[o](w,i):w-r,M=qt(o)?oe[o](P,i):P-r;U.insert("polygon").attr("points",Ie[o](i)).attr("transform",`translate(${V},${M})`).attr("class","arrow")}if(T){const V=Te(e,o)?"XY":Wt(e)?"X":"Y";let M=0;V==="X"?M=Math.abs(g-w):V==="Y"?M=Math.abs(d-P)/1.5:M=Math.abs(g-w)/2;const _=U.append("g");if(await Ee(_,T,{useHtmlLabels:!1,width:M,classes:"architecture-service-label"},me()),_.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),V==="X")_.attr("transform","translate("+C+", "+S+")");else if(V==="Y")_.attr("transform","translate("+C+", "+S+") rotate(-90)");else if(V==="XY"){const n=pe(e,o);if(n&&Nr(n)){const E=_.node().getBoundingClientRect(),[p,m]=wr(n);_.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*p*m*45})`);const y=_.node().getBoundingClientRect();_.attr("transform",` - translate(${C}, ${S-E.height/2}) - translate(${p*y.width/2}, ${m*y.height/2}) - rotate(${-1*p*m*45}, 0, ${E.height/2}) - `)}}}}}))},"drawEdges"),Fr=gt(async function(L,b,A,G){const v=A.getConfigField("padding")*.75,h=A.getConfigField("fontSize"),r=A.getConfigField("iconSize")/2;await Promise.all(b.nodes().map(async a=>{const f=ie(a);if(f.type==="group"){const{h:e,w:u,x1:t,y1:s}=a.boundingBox(),o=L.append("rect");o.attr("id",`${G}-group-${f.id}`).attr("x",t+r).attr("y",s+r).attr("width",u).attr("height",e).attr("class","node-bkg");const c=L.append("g");let l=t,T=s;if(f.icon){const g=c.append("g");g.html(`${await ve(f.icon,{height:v,width:v,fallbackPrefix:ae.prefix})}`),g.attr("transform","translate("+(l+r+1)+", "+(T+r+1)+")"),l+=v,T+=h/2-1-2}if(f.label){const g=c.append("g");await Ee(g,f.label,{useHtmlLabels:!1,width:u,classes:"architecture-service-label"},me()),g.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),g.attr("transform","translate("+(l+r+4)+", "+(T+r+2)+")")}A.setElementForId(f.id,o)}}))},"drawGroups"),br=gt(async function(L,b,A,G){const N=me();for(const v of A){const h=b.append("g"),i=L.getConfigField("iconSize");if(v.title){const e=h.append("g");await Ee(e,v.title,{useHtmlLabels:!1,width:i*1.5,classes:"architecture-service-label"},N),e.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),e.attr("transform","translate("+i/2+", "+i+")")}const r=h.append("g");if(v.icon)r.html(`${await ve(v.icon,{height:i,width:i,fallbackPrefix:ae.prefix})}`);else if(v.iconText){r.html(`${await ve("blank",{height:i,width:i,fallbackPrefix:ae.prefix})}`);const t=r.append("g").append("foreignObject").attr("width",i).attr("height",i).append("div").attr("class","node-icon-text").attr("style",`height: ${i}px;`).append("div").html(nr(v.iconText,N)),s=parseInt(window.getComputedStyle(t.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;t.attr("style",`-webkit-line-clamp: ${Math.floor((i-2)/s)};`)}else r.append("path").attr("class","node-bkg").attr("id",`${G}-node-${v.id}`).attr("d",`M0,${i} V5 Q0,0 5,0 H${i-5} Q${i},0 ${i},5 V${i} Z`);h.attr("id",`${G}-service-${v.id}`).attr("class","architecture-service");const{width:a,height:f}=h.node().getBBox();v.width=a,v.height=f,L.setElementForId(v.id,h)}return 0},"drawServices"),Pr=gt(function(L,b,A,G){A.forEach(N=>{const v=b.append("g"),h=L.getConfigField("iconSize");v.append("g").append("rect").attr("id",`${G}-node-${N.id}`).attr("fill-opacity","0").attr("width",h).attr("height",h),v.attr("class","architecture-junction");const{width:r,height:a}=v._groups[0][0].getBBox();v.width=r,v.height=a,L.setElementForId(N.id,v)})},"drawJunctions");hr([{name:ae.prefix,icons:ae}]);Fe.use(Er);function Ue(L,b,A){L.forEach(G=>{b.add({group:"nodes",data:{type:"service",id:G.id,icon:G.icon,label:G.title,parent:G.in,width:A.getConfigField("iconSize"),height:A.getConfigField("iconSize")},classes:"node-service"})})}gt(Ue,"addServices");function Ye(L,b,A){L.forEach(G=>{b.add({group:"nodes",data:{type:"junction",id:G.id,parent:G.in,width:A.getConfigField("iconSize"),height:A.getConfigField("iconSize")},classes:"node-junction"})})}gt(Ye,"addJunctions");function Xe(L,b){b.nodes().map(A=>{const G=ie(A);if(G.type==="group")return;G.x=A.position().x,G.y=A.position().y,L.getElementById(G.id).attr("transform","translate("+(G.x||0)+","+(G.y||0)+")")})}gt(Xe,"positionNodes");function He(L,b){L.forEach(A=>{b.add({group:"nodes",data:{type:"group",id:A.id,icon:A.icon,label:A.title,parent:A.in},classes:"node-group"})})}gt(He,"addGroups");function We(L,b){L.forEach(A=>{const{lhsId:G,rhsId:N,lhsInto:v,lhsGroup:h,rhsInto:i,lhsDir:r,rhsDir:a,rhsGroup:f,title:e}=A,u=Te(A.lhsDir,A.rhsDir)?"segments":"straight",t={id:`${G}-${N}`,label:e,source:G,sourceDir:r,sourceArrow:v,sourceGroup:h,sourceEndpoint:r==="L"?"0 50%":r==="R"?"100% 50%":r==="T"?"50% 0":"50% 100%",target:N,targetDir:a,targetArrow:i,targetGroup:f,targetEndpoint:a==="L"?"0 50%":a==="R"?"100% 50%":a==="T"?"50% 0":"50% 100%"};b.add({group:"edges",data:t,classes:u})})}gt(We,"addEdges");function Ve(L,b,A,G=[]){const N=gt((u,t)=>Object.entries(u).reduce((s,[o,c])=>{let l=0;const T=Object.entries(c);if(T.length===1)return s[o]=T[0][1],s;for(let g=0;g{const t={},s={};return Object.entries(u).forEach(([o,[c,l]])=>{const T=L.getNode(o)?.in??"default";t[l]??={},t[l][T]??=[],t[l][T].push(o),s[c]??={},s[c][T]??=[],s[c][T].push(o)}),{horiz:Object.values(N(t,"horizontal")).filter(o=>o.length>1),vert:Object.values(N(s,"vertical")).filter(o=>o.length>1)}}),[h,i]=v.reduce(([u,t],{horiz:s,vert:o})=>[[...u,...s],[...t,...o]],[[],[]]),r=new Set;G.forEach(u=>u.members.forEach(t=>r.add(t)));const a=gt(u=>u.filter(t=>!t.some(s=>r.has(s))),"dropOverlapping"),f=a(h),e=a(i);return G.forEach(u=>{u.members.length<2||(u.direction==="row"?f.push([...u.members]):e.push([...u.members]))}),{horizontal:f,vertical:e}}gt(Ve,"getAlignments");function ze(L,b,A=[]){const G=[],N=b.getConfigField("iconSize"),v=b.getConfigField("idealEdgeLengthMultiplier"),h=v*N,i=new Set;A.forEach(f=>{for(let e=0;e`${f[0]},${f[1]}`,"posToStr"),a=gt(f=>f.split(",").map(e=>parseInt(e)),"strToPos");return L.forEach(f=>{const e=Object.fromEntries(Object.entries(f).map(([o,c])=>[r(c),o])),u=[r([0,0])],t={},s={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;u.length>0;){const o=u.shift();if(o){t[o]=1;const c=e[o];if(c){const l=a(o);Object.entries(s).forEach(([T,g])=>{const d=r([l[0]+g[0],l[1]+g[1]]),C=e[d];if(C&&!t[d]){if(u.push(d),i.has(`${c}|${C}`))return;G.push({[xe[T]]:C,[xe[Tr(T)]]:c,gap:v*N})}})}}}}),G}gt(ze,"getRelativeConstraints");function Be(L,b,A,G,N,{spatialMaps:v,groupAlignments:h}){return new Promise(i=>{const r=or("body").append("div").attr("id","cy").attr("style","display:none"),a=Fe({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}}});r.remove(),He(A,a),Ue(L,a,N),Ye(b,a,N),We(G,a);const f=N.getLayoutHints(),e=Ve(N,v,h,f),u=ze(v,N,f),t=N.getConfigField("iconSize"),s=N.getConfigField("idealEdgeLengthMultiplier")*t,o=.5*t,c=N.getConfigField("edgeElasticity"),l=N.getConfigField("seed"),T=a.layout({name:"fcose",quality:"proof",randomize:N.getConfigField("randomize"),nodeSeparation:N.getConfigField("nodeSeparation"),numIter:N.getConfigField("numIter"),styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(g){const[d,C]=g.connectedNodes(),{parent:S}=ie(d),{parent:w}=ie(C);return S===w?s:o},edgeElasticity(g){const[d,C]=g.connectedNodes(),{parent:S}=ie(d),{parent:w}=ie(C);return S===w?c:.001},alignmentConstraint:e,relativePlacementConstraint:u});T.one("layoutstop",()=>{function g(d,C,S,w){let P,B;const{x:U,y:V}=d,{x:M,y:_}=C;B=(w-V+(U-S)*(V-_)/(U-M))/Math.sqrt(1+Math.pow((V-_)/(U-M),2)),P=Math.sqrt(Math.pow(w-V,2)+Math.pow(S-U,2)-Math.pow(B,2));const n=Math.sqrt(Math.pow(M-U,2)+Math.pow(_-V,2));P=P/n;let E=(M-U)*(w-V)-(_-V)*(S-U);switch(!0){case E>=0:E=1;break;case E<0:E=-1;break}let p=(M-U)*(S-U)+(_-V)*(w-V);switch(!0){case p>=0:p=1;break;case p<0:p=-1;break}return B=Math.abs(B)*E,P=P*p,{distances:B,weights:P}}gt(g,"getSegmentWeights"),a.startBatch();for(const d of Object.values(a.edges()))if(d.data?.()){const{x:C,y:S}=d.source().position(),{x:w,y:P}=d.target().position();if(C!==w&&S!==P){const B=d.sourceEndpoint(),U=d.targetEndpoint(),{sourceDir:V}=be(d),[M,_]=qt(V)?[B.x,U.y]:[U.x,B.y],{weights:n,distances:E}=g(B,U,M,_);d.style("segment-distances",E),d.style("segment-weights",n)}}a.endBatch(),ye(l,()=>T.run())});try{ye(l,()=>T.run())}catch(g){throw g instanceof RangeError&&g.message.includes("Invalid array length")?new Error("Architecture layout failed: a declared `align row|column` directive likely contradicts the edge directions, or two declared alignments overlap on a shared node. Check that the order of members in each `align` chain is consistent with the edges between them, and that no node appears in two `align` directives along the same axis."):g}a.ready(g=>{Se.info("Ready",g),i(a)})})}gt(Be,"layoutArchitecture");var Gr=gt(async(L,b,A,G)=>{const N=G.db;N.setDiagramId(b);const v=N.getServices(),h=N.getJunctions(),i=N.getGroups(),r=N.getEdges(),a=N.getDataStructures(),f=Ze(b),e=f.append("g");e.attr("class","architecture-edges");const u=f.append("g");u.attr("class","architecture-services");const t=f.append("g");t.attr("class","architecture-groups"),await br(N,u,v,b),Pr(N,u,h,b);const s=await Be(v,h,i,r,N,a);await Sr(e,s,N,b),await Fr(t,s,N,b),Xe(N,s),qe(void 0,f,N.getConfigField("padding"),N.getConfigField("useMaxWidth"))},"draw"),Ur={draw:Gr},Br={parser:Ge,get db(){return new Pe},renderer:Ur,styles:Rr};export{Br as diagram}; diff --git a/apps/kimi-code/dist-web/assets/architectureDiagram-ZJ3FMSHR-D-PbXpVD.js b/apps/kimi-code/dist-web/assets/architectureDiagram-ZJ3FMSHR-D-PbXpVD.js new file mode 100644 index 000000000..c69284fca --- /dev/null +++ b/apps/kimi-code/dist-web/assets/architectureDiagram-ZJ3FMSHR-D-PbXpVD.js @@ -0,0 +1,36 @@ +import{p as ke}from"./chunk-JWPE2WC7-TZtJmqSP.js";import{b7 as Ze,_ as gt,F as qe,ad as Qe,l as Se,b as Je,a as Ke,o as je,p as _e,g as tr,s as er,q as rr,B as ir,z as ar,D as nr,c as me,a$ as Ee,ai as ve,i as or,d as sr,r as hr,aj as lr,b8 as fr}from"./mermaid.core-B_UcP3X_.js";import{p as cr}from"./cynefin-VYW2F7L2-BnQdr27u.js";import{c as Fe}from"./cytoscape.esm-OyMbaexL.js";import"./index-BOtIzGLC.js";var se={exports:{}},he={exports:{}},le={exports:{}},gr=le.exports,Me;function ur(){return Me||(Me=1,(function(L,b){(function(G,N){L.exports=N()})(gr,function(){return(function(A){var G={};function N(v){if(G[v])return G[v].exports;var h=G[v]={i:v,l:!1,exports:{}};return A[v].call(h.exports,h,h.exports,N),h.l=!0,h.exports}return N.m=A,N.c=G,N.i=function(v){return v},N.d=function(v,h,i){N.o(v,h)||Object.defineProperty(v,h,{configurable:!1,enumerable:!0,get:i})},N.n=function(v){var h=v&&v.__esModule?function(){return v.default}:function(){return v};return N.d(h,"a",h),h},N.o=function(v,h){return Object.prototype.hasOwnProperty.call(v,h)},N.p="",N(N.s=28)})([(function(A,G,N){function v(){}v.QUALITY=1,v.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,v.DEFAULT_INCREMENTAL=!1,v.DEFAULT_ANIMATION_ON_LAYOUT=!0,v.DEFAULT_ANIMATION_DURING_LAYOUT=!1,v.DEFAULT_ANIMATION_PERIOD=50,v.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,v.DEFAULT_GRAPH_MARGIN=15,v.NODE_DIMENSIONS_INCLUDE_LABELS=!1,v.SIMPLE_NODE_SIZE=40,v.SIMPLE_NODE_HALF_SIZE=v.SIMPLE_NODE_SIZE/2,v.EMPTY_COMPOUND_NODE_SIZE=40,v.MIN_EDGE_LENGTH=1,v.WORLD_BOUNDARY=1e6,v.INITIAL_WORLD_BOUNDARY=v.WORLD_BOUNDARY/1e3,v.WORLD_CENTER_X=1200,v.WORLD_CENTER_Y=900,A.exports=v}),(function(A,G,N){var v=N(2),h=N(8),i=N(9);function r(f,e,u){v.call(this,u),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=u,this.bendpoints=[],this.source=f,this.target=e}r.prototype=Object.create(v.prototype);for(var a in v)r[a]=v[a];r.prototype.getSource=function(){return this.source},r.prototype.getTarget=function(){return this.target},r.prototype.isInterGraph=function(){return this.isInterGraph},r.prototype.getLength=function(){return this.length},r.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},r.prototype.getBendpoints=function(){return this.bendpoints},r.prototype.getLca=function(){return this.lca},r.prototype.getSourceInLca=function(){return this.sourceInLca},r.prototype.getTargetInLca=function(){return this.targetInLca},r.prototype.getOtherEnd=function(f){if(this.source===f)return this.target;if(this.target===f)return this.source;throw"Node is not incident with this edge"},r.prototype.getOtherEndInGraph=function(f,e){for(var u=this.getOtherEnd(f),t=e.getGraphManager().getRoot();;){if(u.getOwner()==e)return u;if(u.getOwner()==t)break;u=u.getOwner().getParent()}return null},r.prototype.updateLength=function(){var f=new Array(4);this.isOverlapingSourceAndTarget=h.getIntersection(this.target.getRect(),this.source.getRect(),f),this.isOverlapingSourceAndTarget||(this.lengthX=f[0]-f[2],this.lengthY=f[1]-f[3],Math.abs(this.lengthX)<1&&(this.lengthX=i.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=i.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},r.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=i.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=i.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},A.exports=r}),(function(A,G,N){function v(h){this.vGraphObject=h}A.exports=v}),(function(A,G,N){var v=N(2),h=N(10),i=N(13),r=N(0),a=N(16),f=N(5);function e(t,s,o,c){o==null&&c==null&&(c=s),v.call(this,c),t.graphManager!=null&&(t=t.graphManager),this.estimatedSize=h.MIN_VALUE,this.inclusionTreeDepth=h.MAX_VALUE,this.vGraphObject=c,this.edges=[],this.graphManager=t,o!=null&&s!=null?this.rect=new i(s.x,s.y,o.width,o.height):this.rect=new i}e.prototype=Object.create(v.prototype);for(var u in v)e[u]=v[u];e.prototype.getEdges=function(){return this.edges},e.prototype.getChild=function(){return this.child},e.prototype.getOwner=function(){return this.owner},e.prototype.getWidth=function(){return this.rect.width},e.prototype.setWidth=function(t){this.rect.width=t},e.prototype.getHeight=function(){return this.rect.height},e.prototype.setHeight=function(t){this.rect.height=t},e.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},e.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},e.prototype.getCenter=function(){return new f(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},e.prototype.getLocation=function(){return new f(this.rect.x,this.rect.y)},e.prototype.getRect=function(){return this.rect},e.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},e.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},e.prototype.setRect=function(t,s){this.rect.x=t.x,this.rect.y=t.y,this.rect.width=s.width,this.rect.height=s.height},e.prototype.setCenter=function(t,s){this.rect.x=t-this.rect.width/2,this.rect.y=s-this.rect.height/2},e.prototype.setLocation=function(t,s){this.rect.x=t,this.rect.y=s},e.prototype.moveBy=function(t,s){this.rect.x+=t,this.rect.y+=s},e.prototype.getEdgeListToNode=function(t){var s=[],o=this;return o.edges.forEach(function(c){if(c.target==t){if(c.source!=o)throw"Incorrect edge source!";s.push(c)}}),s},e.prototype.getEdgesBetween=function(t){var s=[],o=this;return o.edges.forEach(function(c){if(!(c.source==o||c.target==o))throw"Incorrect edge source and/or target";(c.target==t||c.source==t)&&s.push(c)}),s},e.prototype.getNeighborsList=function(){var t=new Set,s=this;return s.edges.forEach(function(o){if(o.source==s)t.add(o.target);else{if(o.target!=s)throw"Incorrect incidency!";t.add(o.source)}}),t},e.prototype.withChildren=function(){var t=new Set,s,o;if(t.add(this),this.child!=null)for(var c=this.child.getNodes(),l=0;ls?(this.rect.x-=(this.labelWidth-s)/2,this.setWidth(this.labelWidth)):this.labelPosHorizontal=="right"&&this.setWidth(s+this.labelWidth)),this.labelHeight&&(this.labelPosVertical=="top"?(this.rect.y-=this.labelHeight,this.setHeight(o+this.labelHeight)):this.labelPosVertical=="center"&&this.labelHeight>o?(this.rect.y-=(this.labelHeight-o)/2,this.setHeight(this.labelHeight)):this.labelPosVertical=="bottom"&&this.setHeight(o+this.labelHeight))}}},e.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==h.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},e.prototype.transform=function(t){var s=this.rect.x;s>r.WORLD_BOUNDARY?s=r.WORLD_BOUNDARY:s<-r.WORLD_BOUNDARY&&(s=-r.WORLD_BOUNDARY);var o=this.rect.y;o>r.WORLD_BOUNDARY?o=r.WORLD_BOUNDARY:o<-r.WORLD_BOUNDARY&&(o=-r.WORLD_BOUNDARY);var c=new f(s,o),l=t.inverseTransformPoint(c);this.setLocation(l.x,l.y)},e.prototype.getLeft=function(){return this.rect.x},e.prototype.getRight=function(){return this.rect.x+this.rect.width},e.prototype.getTop=function(){return this.rect.y},e.prototype.getBottom=function(){return this.rect.y+this.rect.height},e.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},A.exports=e}),(function(A,G,N){var v=N(0);function h(){}for(var i in v)h[i]=v[i];h.MAX_ITERATIONS=2500,h.DEFAULT_EDGE_LENGTH=50,h.DEFAULT_SPRING_STRENGTH=.45,h.DEFAULT_REPULSION_STRENGTH=4500,h.DEFAULT_GRAVITY_STRENGTH=.4,h.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,h.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,h.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,h.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,h.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,h.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,h.COOLING_ADAPTATION_FACTOR=.33,h.ADAPTATION_LOWER_NODE_LIMIT=1e3,h.ADAPTATION_UPPER_NODE_LIMIT=5e3,h.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,h.MAX_NODE_DISPLACEMENT=h.MAX_NODE_DISPLACEMENT_INCREMENTAL*3,h.MIN_REPULSION_DIST=h.DEFAULT_EDGE_LENGTH/10,h.CONVERGENCE_CHECK_PERIOD=100,h.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,h.MIN_EDGE_LENGTH=1,h.GRID_CALCULATION_CHECK_PERIOD=10,A.exports=h}),(function(A,G,N){function v(h,i){h==null&&i==null?(this.x=0,this.y=0):(this.x=h,this.y=i)}v.prototype.getX=function(){return this.x},v.prototype.getY=function(){return this.y},v.prototype.setX=function(h){this.x=h},v.prototype.setY=function(h){this.y=h},v.prototype.getDifference=function(h){return new DimensionD(this.x-h.x,this.y-h.y)},v.prototype.getCopy=function(){return new v(this.x,this.y)},v.prototype.translate=function(h){return this.x+=h.width,this.y+=h.height,this},A.exports=v}),(function(A,G,N){var v=N(2),h=N(10),i=N(0),r=N(7),a=N(3),f=N(1),e=N(13),u=N(12),t=N(11);function s(c,l,T){v.call(this,T),this.estimatedSize=h.MIN_VALUE,this.margin=i.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=c,l!=null&&l instanceof r?this.graphManager=l:l!=null&&l instanceof Layout&&(this.graphManager=l.graphManager)}s.prototype=Object.create(v.prototype);for(var o in v)s[o]=v[o];s.prototype.getNodes=function(){return this.nodes},s.prototype.getEdges=function(){return this.edges},s.prototype.getGraphManager=function(){return this.graphManager},s.prototype.getParent=function(){return this.parent},s.prototype.getLeft=function(){return this.left},s.prototype.getRight=function(){return this.right},s.prototype.getTop=function(){return this.top},s.prototype.getBottom=function(){return this.bottom},s.prototype.isConnected=function(){return this.isConnected},s.prototype.add=function(c,l,T){if(l==null&&T==null){var g=c;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(g)>-1)throw"Node already in graph!";return g.owner=this,this.getNodes().push(g),g}else{var d=c;if(!(this.getNodes().indexOf(l)>-1&&this.getNodes().indexOf(T)>-1))throw"Source or target not in graph!";if(!(l.owner==T.owner&&l.owner==this))throw"Both owners must be this graph!";return l.owner!=T.owner?null:(d.source=l,d.target=T,d.isInterGraph=!1,this.getEdges().push(d),l.edges.push(d),T!=l&&T.edges.push(d),d)}},s.prototype.remove=function(c){var l=c;if(c instanceof a){if(l==null)throw"Node is null!";if(!(l.owner!=null&&l.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var T=l.edges.slice(),g,d=T.length,C=0;C-1&&P>-1))throw"Source and/or target doesn't know this edge!";g.source.edges.splice(w,1),g.target!=g.source&&g.target.edges.splice(P,1);var S=g.source.owner.getEdges().indexOf(g);if(S==-1)throw"Not in owner's edge list!";g.source.owner.getEdges().splice(S,1)}},s.prototype.updateLeftTop=function(){for(var c=h.MAX_VALUE,l=h.MAX_VALUE,T,g,d,C=this.getNodes(),S=C.length,w=0;wT&&(c=T),l>g&&(l=g)}return c==h.MAX_VALUE?null:(C[0].getParent().paddingLeft!=null?d=C[0].getParent().paddingLeft:d=this.margin,this.left=l-d,this.top=c-d,new u(this.left,this.top))},s.prototype.updateBounds=function(c){for(var l=h.MAX_VALUE,T=-h.MAX_VALUE,g=h.MAX_VALUE,d=-h.MAX_VALUE,C,S,w,P,B,U=this.nodes,V=U.length,M=0;MC&&(l=C),Tw&&(g=w),dC&&(l=C),Tw&&(g=w),d=this.nodes.length){var V=0;T.forEach(function(M){M.owner==c&&V++}),V==this.nodes.length&&(this.isConnected=!0)}},A.exports=s}),(function(A,G,N){var v,h=N(1);function i(r){v=N(6),this.layout=r,this.graphs=[],this.edges=[]}i.prototype.addRoot=function(){var r=this.layout.newGraph(),a=this.layout.newNode(null),f=this.add(r,a);return this.setRootGraph(f),this.rootGraph},i.prototype.add=function(r,a,f,e,u){if(f==null&&e==null&&u==null){if(r==null)throw"Graph is null!";if(a==null)throw"Parent node is null!";if(this.graphs.indexOf(r)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(r),r.parent!=null)throw"Already has a parent!";if(a.child!=null)throw"Already has a child!";return r.parent=a,a.child=r,r}else{u=f,e=a,f=r;var t=e.getOwner(),s=u.getOwner();if(!(t!=null&&t.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(s!=null&&s.getGraphManager()==this))throw"Target not in this graph mgr!";if(t==s)return f.isInterGraph=!1,t.add(f,e,u);if(f.isInterGraph=!0,f.source=e,f.target=u,this.edges.indexOf(f)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(f),!(f.source!=null&&f.target!=null))throw"Edge source and/or target is null!";if(!(f.source.edges.indexOf(f)==-1&&f.target.edges.indexOf(f)==-1))throw"Edge already in source and/or target incidency list!";return f.source.edges.push(f),f.target.edges.push(f),f}},i.prototype.remove=function(r){if(r instanceof v){var a=r;if(a.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(a==this.rootGraph||a.parent!=null&&a.parent.graphManager==this))throw"Invalid parent node!";var f=[];f=f.concat(a.getEdges());for(var e,u=f.length,t=0;t=r.getRight()?a[0]+=Math.min(r.getX()-i.getX(),i.getRight()-r.getRight()):r.getX()<=i.getX()&&r.getRight()>=i.getRight()&&(a[0]+=Math.min(i.getX()-r.getX(),r.getRight()-i.getRight())),i.getY()<=r.getY()&&i.getBottom()>=r.getBottom()?a[1]+=Math.min(r.getY()-i.getY(),i.getBottom()-r.getBottom()):r.getY()<=i.getY()&&r.getBottom()>=i.getBottom()&&(a[1]+=Math.min(i.getY()-r.getY(),r.getBottom()-i.getBottom()));var u=Math.abs((r.getCenterY()-i.getCenterY())/(r.getCenterX()-i.getCenterX()));r.getCenterY()===i.getCenterY()&&r.getCenterX()===i.getCenterX()&&(u=1);var t=u*a[0],s=a[1]/u;a[0]t)return a[0]=f,a[1]=o,a[2]=u,a[3]=U,!1;if(eu)return a[0]=s,a[1]=e,a[2]=P,a[3]=t,!1;if(fu?(a[0]=l,a[1]=T,n=!0):(a[0]=c,a[1]=o,n=!0):p===y&&(f>u?(a[0]=s,a[1]=o,n=!0):(a[0]=g,a[1]=T,n=!0)),-m===y?u>f?(a[2]=B,a[3]=U,E=!0):(a[2]=P,a[3]=w,E=!0):m===y&&(u>f?(a[2]=S,a[3]=w,E=!0):(a[2]=V,a[3]=U,E=!0)),n&&E)return!1;if(f>u?e>t?(I=this.getCardinalDirection(p,y,4),O=this.getCardinalDirection(m,y,2)):(I=this.getCardinalDirection(-p,y,3),O=this.getCardinalDirection(-m,y,1)):e>t?(I=this.getCardinalDirection(-p,y,1),O=this.getCardinalDirection(-m,y,3)):(I=this.getCardinalDirection(p,y,2),O=this.getCardinalDirection(m,y,4)),!n)switch(I){case 1:W=o,R=f+-C/y,a[0]=R,a[1]=W;break;case 2:R=g,W=e+d*y,a[0]=R,a[1]=W;break;case 3:W=T,R=f+C/y,a[0]=R,a[1]=W;break;case 4:R=l,W=e+-d*y,a[0]=R,a[1]=W;break}if(!E)switch(O){case 1:Q=w,x=u+-_/y,a[2]=x,a[3]=Q;break;case 2:x=V,Q=t+M*y,a[2]=x,a[3]=Q;break;case 3:Q=U,x=u+_/y,a[2]=x,a[3]=Q;break;case 4:x=B,Q=t+-M*y,a[2]=x,a[3]=Q;break}}return!1},h.getCardinalDirection=function(i,r,a){return i>r?a:1+a%4},h.getIntersection=function(i,r,a,f){if(f==null)return this.getIntersection2(i,r,a);var e=i.x,u=i.y,t=r.x,s=r.y,o=a.x,c=a.y,l=f.x,T=f.y,g=void 0,d=void 0,C=void 0,S=void 0,w=void 0,P=void 0,B=void 0,U=void 0,V=void 0;return C=s-u,w=e-t,B=t*u-e*s,S=T-c,P=o-l,U=l*c-o*T,V=C*P-S*w,V===0?null:(g=(w*U-P*B)/V,d=(S*B-C*U)/V,new v(g,d))},h.angleOfVector=function(i,r,a,f){var e=void 0;return i!==a?(e=Math.atan((f-r)/(a-i)),a=0){var T=(-o+Math.sqrt(o*o-4*s*c))/(2*s),g=(-o-Math.sqrt(o*o-4*s*c))/(2*s),d=null;return T>=0&&T<=1?[T]:g>=0&&g<=1?[g]:d}else return null},h.HALF_PI=.5*Math.PI,h.ONE_AND_HALF_PI=1.5*Math.PI,h.TWO_PI=2*Math.PI,h.THREE_PI=3*Math.PI,A.exports=h}),(function(A,G,N){function v(){}v.sign=function(h){return h>0?1:h<0?-1:0},v.floor=function(h){return h<0?Math.ceil(h):Math.floor(h)},v.ceil=function(h){return h<0?Math.floor(h):Math.ceil(h)},A.exports=v}),(function(A,G,N){function v(){}v.MAX_VALUE=2147483647,v.MIN_VALUE=-2147483648,A.exports=v}),(function(A,G,N){var v=(function(){function e(u,t){for(var s=0;s"u"?"undefined":v(i);return i==null||r!="object"&&r!="function"},A.exports=h}),(function(A,G,N){function v(o){if(Array.isArray(o)){for(var c=0,l=Array(o.length);c0&&c;){for(C.push(w[0]);C.length>0&&c;){var P=C[0];C.splice(0,1),d.add(P);for(var B=P.getEdges(),g=0;g-1&&w.splice(_,1)}d=new Set,S=new Map}}return o},s.prototype.createDummyNodesForBendpoints=function(o){for(var c=[],l=o.source,T=this.graphManager.calcLowestCommonAncestor(o.source,o.target),g=0;g0){for(var T=this.edgeToDummyNodes.get(l),g=0;g=0&&c.splice(U,1);var V=S.getNeighborsList();V.forEach(function(n){if(l.indexOf(n)<0){var E=T.get(n),p=E-1;p==1&&P.push(n),T.set(n,p)}})}l=l.concat(P),(c.length==1||c.length==2)&&(g=!0,d=c[0])}return d},s.prototype.setGraphManager=function(o){this.graphManager=o},A.exports=s}),(function(A,G,N){function v(){}v.seed=1,v.x=0,v.nextDouble=function(){return v.x=Math.sin(v.seed++)*1e4,v.x-Math.floor(v.x)},A.exports=v}),(function(A,G,N){var v=N(5);function h(i,r){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}h.prototype.getWorldOrgX=function(){return this.lworldOrgX},h.prototype.setWorldOrgX=function(i){this.lworldOrgX=i},h.prototype.getWorldOrgY=function(){return this.lworldOrgY},h.prototype.setWorldOrgY=function(i){this.lworldOrgY=i},h.prototype.getWorldExtX=function(){return this.lworldExtX},h.prototype.setWorldExtX=function(i){this.lworldExtX=i},h.prototype.getWorldExtY=function(){return this.lworldExtY},h.prototype.setWorldExtY=function(i){this.lworldExtY=i},h.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},h.prototype.setDeviceOrgX=function(i){this.ldeviceOrgX=i},h.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},h.prototype.setDeviceOrgY=function(i){this.ldeviceOrgY=i},h.prototype.getDeviceExtX=function(){return this.ldeviceExtX},h.prototype.setDeviceExtX=function(i){this.ldeviceExtX=i},h.prototype.getDeviceExtY=function(){return this.ldeviceExtY},h.prototype.setDeviceExtY=function(i){this.ldeviceExtY=i},h.prototype.transformX=function(i){var r=0,a=this.lworldExtX;return a!=0&&(r=this.ldeviceOrgX+(i-this.lworldOrgX)*this.ldeviceExtX/a),r},h.prototype.transformY=function(i){var r=0,a=this.lworldExtY;return a!=0&&(r=this.ldeviceOrgY+(i-this.lworldOrgY)*this.ldeviceExtY/a),r},h.prototype.inverseTransformX=function(i){var r=0,a=this.ldeviceExtX;return a!=0&&(r=this.lworldOrgX+(i-this.ldeviceOrgX)*this.lworldExtX/a),r},h.prototype.inverseTransformY=function(i){var r=0,a=this.ldeviceExtY;return a!=0&&(r=this.lworldOrgY+(i-this.ldeviceOrgY)*this.lworldExtY/a),r},h.prototype.inverseTransformPoint=function(i){var r=new v(this.inverseTransformX(i.x),this.inverseTransformY(i.y));return r},A.exports=h}),(function(A,G,N){function v(t){if(Array.isArray(t)){for(var s=0,o=Array(t.length);si.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*i.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(t-i.ADAPTATION_LOWER_NODE_LIMIT)/(i.ADAPTATION_UPPER_NODE_LIMIT-i.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-i.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=i.MAX_NODE_DISPLACEMENT_INCREMENTAL):(t>i.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(i.COOLING_ADAPTATION_FACTOR,1-(t-i.ADAPTATION_LOWER_NODE_LIMIT)/(i.ADAPTATION_UPPER_NODE_LIMIT-i.ADAPTATION_LOWER_NODE_LIMIT)*(1-i.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=i.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.displacementThresholdPerNode=3*i.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},e.prototype.calcSpringForces=function(){for(var t=this.getAllEdges(),s,o=0;o0&&arguments[0]!==void 0?arguments[0]:!0,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,o,c,l,T,g=this.getAllNodes(),d;if(this.useFRGridVariant)for(this.totalIterations%i.GRID_CALCULATION_CHECK_PERIOD==1&&t&&this.updateGrid(),d=new Set,o=0;oC||d>C)&&(t.gravitationForceX=-this.gravityConstant*l,t.gravitationForceY=-this.gravityConstant*T)):(C=s.getEstimatedSize()*this.compoundGravityRangeFactor,(g>C||d>C)&&(t.gravitationForceX=-this.gravityConstant*l*this.compoundGravityConstant,t.gravitationForceY=-this.gravityConstant*T*this.compoundGravityConstant))},e.prototype.isConverged=function(){var t,s=!1;return this.totalIterations>this.maxIterations/3&&(s=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),t=this.totalDisplacement=g.length||C>=g[0].length)){for(var S=0;Se}}]),a})();A.exports=r}),(function(A,G,N){function v(){}v.svd=function(h){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=h.length,this.n=h[0].length;var i=Math.min(this.m,this.n);this.s=(function(Tt){for(var Ct=[];Tt-- >0;)Ct.push(0);return Ct})(Math.min(this.m+1,this.n)),this.U=(function(Tt){var Ct=function Bt(bt){if(bt.length==0)return 0;for(var zt=[],St=0;St0;)Ct.push(0);return Ct})(this.n),a=(function(Tt){for(var Ct=[];Tt-- >0;)Ct.push(0);return Ct})(this.m),f=!0,e=Math.min(this.m-1,this.n),u=Math.max(0,Math.min(this.n-2,this.m)),t=0;t=0;m--)if(this.s[m]!==0){for(var y=m+1;y=0;z--){if((function(Tt,Ct){return Tt&&Ct})(z0;){var J=void 0,It=void 0;for(J=n-2;J>=-1&&J!==-1;J--)if(Math.abs(r[J])<=ht+tt*(Math.abs(this.s[J])+Math.abs(this.s[J+1]))){r[J]=0;break}if(J===n-2)It=4;else{var Nt=void 0;for(Nt=n-1;Nt>=J&&Nt!==J;Nt--){var vt=(Nt!==n?Math.abs(r[Nt]):0)+(Nt!==J+1?Math.abs(r[Nt-1]):0);if(Math.abs(this.s[Nt])<=ht+tt*vt){this.s[Nt]=0;break}}Nt===J?It=3:Nt===n-1?It=1:(It=2,J=Nt)}switch(J++,It){case 1:{var it=r[n-2];r[n-2]=0;for(var ut=n-2;ut>=J;ut--){var Et=v.hypot(this.s[ut],it),wt=this.s[ut]/Et,Ot=it/Et;this.s[ut]=Et,ut!==J&&(it=-Ot*r[ut-1],r[ut-1]=wt*r[ut-1]);for(var mt=0;mt=this.s[J+1]);){var Lt=this.s[J];if(this.s[J]=this.s[J+1],this.s[J+1]=Lt,JMath.abs(i)?(r=i/h,r=Math.abs(h)*Math.sqrt(1+r*r)):i!=0?(r=h/i,r=Math.abs(i)*Math.sqrt(1+r*r)):r=0,r},A.exports=v}),(function(A,G,N){var v=(function(){function r(a,f){for(var e=0;e2&&arguments[2]!==void 0?arguments[2]:1,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,t=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;h(this,r),this.sequence1=a,this.sequence2=f,this.match_score=e,this.mismatch_penalty=u,this.gap_penalty=t,this.iMax=a.length+1,this.jMax=f.length+1,this.grid=new Array(this.iMax);for(var s=0;s=0;a--){var f=this.listeners[a];f.event===i&&f.callback===r&&this.listeners.splice(a,1)}},h.emit=function(i,r){for(var a=0;a{var G={45:((i,r,a)=>{var f={};f.layoutBase=a(551),f.CoSEConstants=a(806),f.CoSEEdge=a(767),f.CoSEGraph=a(880),f.CoSEGraphManager=a(578),f.CoSELayout=a(765),f.CoSENode=a(991),f.ConstraintHandler=a(902),i.exports=f}),806:((i,r,a)=>{var f=a(551).FDLayoutConstants;function e(){}for(var u in f)e[u]=f[u];e.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,e.DEFAULT_RADIAL_SEPARATION=f.DEFAULT_EDGE_LENGTH,e.DEFAULT_COMPONENT_SEPERATION=60,e.TILE=!0,e.TILING_PADDING_VERTICAL=10,e.TILING_PADDING_HORIZONTAL=10,e.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,e.ENFORCE_CONSTRAINTS=!0,e.APPLY_LAYOUT=!0,e.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,e.TREE_REDUCTION_ON_INCREMENTAL=!0,e.PURE_INCREMENTAL=e.DEFAULT_INCREMENTAL,i.exports=e}),767:((i,r,a)=>{var f=a(551).FDLayoutEdge;function e(t,s,o){f.call(this,t,s,o)}e.prototype=Object.create(f.prototype);for(var u in f)e[u]=f[u];i.exports=e}),880:((i,r,a)=>{var f=a(551).LGraph;function e(t,s,o){f.call(this,t,s,o)}e.prototype=Object.create(f.prototype);for(var u in f)e[u]=f[u];i.exports=e}),578:((i,r,a)=>{var f=a(551).LGraphManager;function e(t){f.call(this,t)}e.prototype=Object.create(f.prototype);for(var u in f)e[u]=f[u];i.exports=e}),765:((i,r,a)=>{var f=a(551).FDLayout,e=a(578),u=a(880),t=a(991),s=a(767),o=a(806),c=a(902),l=a(551).FDLayoutConstants,T=a(551).LayoutConstants,g=a(551).Point,d=a(551).PointD,C=a(551).DimensionD,S=a(551).Layout,w=a(551).Integer,P=a(551).IGeometry,B=a(551).LGraph,U=a(551).Transform,V=a(551).LinkedList;function M(){f.call(this),this.toBeTiled={},this.constraints={}}M.prototype=Object.create(f.prototype);for(var _ in f)M[_]=f[_];M.prototype.newGraphManager=function(){var n=new e(this);return this.graphManager=n,n},M.prototype.newGraph=function(n){return new u(null,this.graphManager,n)},M.prototype.newNode=function(n){return new t(this.graphManager,n)},M.prototype.newEdge=function(n){return new s(null,null,n)},M.prototype.initParameters=function(){f.prototype.initParameters.call(this,arguments),this.isSubLayout||(o.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=o.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=o.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=l.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=l.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=l.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},M.prototype.initSpringEmbedder=function(){f.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/l.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},M.prototype.layout=function(){var n=T.DEFAULT_CREATE_BENDS_AS_NEEDED;return n&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},M.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(o.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var E=new Set(this.getAllNodes()),p=this.nodesWithGravity.filter(function(I){return E.has(I)});this.graphManager.setAllNodesToApplyGravitation(p)}}else{var n=this.getFlatForest();if(n.length>0)this.positionNodesRadially(n);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var E=new Set(this.getAllNodes()),p=this.nodesWithGravity.filter(function(m){return E.has(m)});this.graphManager.setAllNodesToApplyGravitation(p),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(c.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),o.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},M.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%l.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 n=new Set(this.getAllNodes()),E=this.nodesWithGravity.filter(function(y){return n.has(y)});this.graphManager.setAllNodesToApplyGravitation(E),this.graphManager.updateBounds(),this.updateGrid(),o.PURE_INCREMENTAL?this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=l.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()),o.PURE_INCREMENTAL?this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var p=!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(p,m),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},M.prototype.getPositionsData=function(){for(var n=this.graphManager.getAllNodes(),E={},p=0;p0&&this.updateDisplacements();for(var p=0;p0&&(m.fixedNodeWeight=I)}}if(this.constraints.relativePlacementConstraint){var O=new Map,R=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(D){n.fixedNodesOnHorizontal.add(D),n.fixedNodesOnVertical.add(D)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var W=this.constraints.alignmentConstraint.vertical,p=0;p=2*D.length/3;tt--)H=Math.floor(Math.random()*(tt+1)),k=D[tt],D[tt]=D[H],D[H]=k;return D},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(D){if(D.left){var H=O.has(D.left)?O.get(D.left):D.left,k=O.has(D.right)?O.get(D.right):D.right;n.nodesInRelativeHorizontal.includes(H)||(n.nodesInRelativeHorizontal.push(H),n.nodeToRelativeConstraintMapHorizontal.set(H,[]),n.dummyToNodeForVerticalAlignment.has(H)?n.nodeToTempPositionMapHorizontal.set(H,n.idToNodeMap.get(n.dummyToNodeForVerticalAlignment.get(H)[0]).getCenterX()):n.nodeToTempPositionMapHorizontal.set(H,n.idToNodeMap.get(H).getCenterX())),n.nodesInRelativeHorizontal.includes(k)||(n.nodesInRelativeHorizontal.push(k),n.nodeToRelativeConstraintMapHorizontal.set(k,[]),n.dummyToNodeForVerticalAlignment.has(k)?n.nodeToTempPositionMapHorizontal.set(k,n.idToNodeMap.get(n.dummyToNodeForVerticalAlignment.get(k)[0]).getCenterX()):n.nodeToTempPositionMapHorizontal.set(k,n.idToNodeMap.get(k).getCenterX())),n.nodeToRelativeConstraintMapHorizontal.get(H).push({right:k,gap:D.gap}),n.nodeToRelativeConstraintMapHorizontal.get(k).push({left:H,gap:D.gap})}else{var tt=R.has(D.top)?R.get(D.top):D.top,ht=R.has(D.bottom)?R.get(D.bottom):D.bottom;n.nodesInRelativeVertical.includes(tt)||(n.nodesInRelativeVertical.push(tt),n.nodeToRelativeConstraintMapVertical.set(tt,[]),n.dummyToNodeForHorizontalAlignment.has(tt)?n.nodeToTempPositionMapVertical.set(tt,n.idToNodeMap.get(n.dummyToNodeForHorizontalAlignment.get(tt)[0]).getCenterY()):n.nodeToTempPositionMapVertical.set(tt,n.idToNodeMap.get(tt).getCenterY())),n.nodesInRelativeVertical.includes(ht)||(n.nodesInRelativeVertical.push(ht),n.nodeToRelativeConstraintMapVertical.set(ht,[]),n.dummyToNodeForHorizontalAlignment.has(ht)?n.nodeToTempPositionMapVertical.set(ht,n.idToNodeMap.get(n.dummyToNodeForHorizontalAlignment.get(ht)[0]).getCenterY()):n.nodeToTempPositionMapVertical.set(ht,n.idToNodeMap.get(ht).getCenterY())),n.nodeToRelativeConstraintMapVertical.get(tt).push({bottom:ht,gap:D.gap}),n.nodeToRelativeConstraintMapVertical.get(ht).push({top:tt,gap:D.gap})}});else{var Q=new Map,z=new Map;this.constraints.relativePlacementConstraint.forEach(function(D){if(D.left){var H=O.has(D.left)?O.get(D.left):D.left,k=O.has(D.right)?O.get(D.right):D.right;Q.has(H)?Q.get(H).push(k):Q.set(H,[k]),Q.has(k)?Q.get(k).push(H):Q.set(k,[H])}else{var tt=R.has(D.top)?R.get(D.top):D.top,ht=R.has(D.bottom)?R.get(D.bottom):D.bottom;z.has(tt)?z.get(tt).push(ht):z.set(tt,[ht]),z.has(ht)?z.get(ht).push(tt):z.set(ht,[tt])}});var X=function(H,k){var tt=[],ht=[],J=new V,It=new Set,Nt=0;return H.forEach(function(vt,it){if(!It.has(it)){tt[Nt]=[],ht[Nt]=!1;var ut=it;for(J.push(ut),It.add(ut),tt[Nt].push(ut);J.length!=0;){ut=J.shift(),k.has(ut)&&(ht[Nt]=!0);var Et=H.get(ut);Et.forEach(function(wt){It.has(wt)||(J.push(wt),It.add(wt),tt[Nt].push(wt))})}Nt++}}),{components:tt,isFixed:ht}},rt=X(Q,n.fixedNodesOnHorizontal);this.componentsOnHorizontal=rt.components,this.fixedComponentsOnHorizontal=rt.isFixed;var $=X(z,n.fixedNodesOnVertical);this.componentsOnVertical=$.components,this.fixedComponentsOnVertical=$.isFixed}}},M.prototype.updateDisplacements=function(){var n=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function($){var D=n.idToNodeMap.get($.nodeId);D.displacementX=0,D.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var E=this.constraints.alignmentConstraint.vertical,p=0;p1){var R;for(R=0;Rm&&(m=Math.floor(O.y)),I=Math.floor(O.x+o.DEFAULT_COMPONENT_SEPERATION)}this.transform(new d(T.WORLD_CENTER_X-O.x/2,T.WORLD_CENTER_Y-O.y/2))},M.radialLayout=function(n,E,p){var m=Math.max(this.maxDiagonalInTree(n),o.DEFAULT_RADIAL_SEPARATION);M.branchRadialLayout(E,null,0,359,0,m);var y=B.calculateBounds(n),I=new U;I.setDeviceOrgX(y.getMinX()),I.setDeviceOrgY(y.getMinY()),I.setWorldOrgX(p.x),I.setWorldOrgY(p.y);for(var O=0;O1;){var k=H[0];H.splice(0,1);var tt=z.indexOf(k);tt>=0&&z.splice(tt,1),$--,X--}E!=null?D=(z.indexOf(H[0])+1)%$:D=0;for(var ht=Math.abs(m-p)/X,J=D;rt!=X;J=++J%$){var It=z[J].getOtherEnd(n);if(It!=E){var Nt=(p+rt*ht)%360,vt=(Nt+ht)%360;M.branchRadialLayout(It,n,Nt,vt,y+I,I),rt++}}},M.maxDiagonalInTree=function(n){for(var E=w.MIN_VALUE,p=0;pE&&(E=y)}return E},M.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},M.prototype.groupZeroDegreeMembers=function(){var n=this,E={};this.memberGroups={},this.idToDummyNode={};for(var p=[],m=this.graphManager.getAllNodes(),y=0;y"u"&&(E[R]=[]),E[R]=E[R].concat(I)}Object.keys(E).forEach(function(W){if(E[W].length>1){var x="DummyCompound_"+W;n.memberGroups[x]=E[W];var Q=E[W][0].getParent(),z=new t(n.graphManager);z.id=x,z.paddingLeft=Q.paddingLeft||0,z.paddingRight=Q.paddingRight||0,z.paddingBottom=Q.paddingBottom||0,z.paddingTop=Q.paddingTop||0,n.idToDummyNode[x]=z;var X=n.getGraphManager().add(n.newGraph(),z),rt=Q.getChild();rt.add(z);for(var $=0;$y?(m.rect.x-=(m.labelWidth-y)/2,m.setWidth(m.labelWidth),m.labelMarginLeft=(m.labelWidth-y)/2):m.labelPosHorizontal=="right"&&m.setWidth(y+m.labelWidth)),m.labelHeight&&(m.labelPosVertical=="top"?(m.rect.y-=m.labelHeight,m.setHeight(I+m.labelHeight),m.labelMarginTop=m.labelHeight):m.labelPosVertical=="center"&&m.labelHeight>I?(m.rect.y-=(m.labelHeight-I)/2,m.setHeight(m.labelHeight),m.labelMarginTop=(m.labelHeight-I)/2):m.labelPosVertical=="bottom"&&m.setHeight(I+m.labelHeight))}})},M.prototype.repopulateCompounds=function(){for(var n=this.compoundOrder.length-1;n>=0;n--){var E=this.compoundOrder[n],p=E.id,m=E.paddingLeft,y=E.paddingTop,I=E.labelMarginLeft,O=E.labelMarginTop;this.adjustLocations(this.tiledMemberPack[p],E.rect.x,E.rect.y,m,y,I,O)}},M.prototype.repopulateZeroDegreeMembers=function(){var n=this,E=this.tiledZeroDegreePack;Object.keys(E).forEach(function(p){var m=n.idToDummyNode[p],y=m.paddingLeft,I=m.paddingTop,O=m.labelMarginLeft,R=m.labelMarginTop;n.adjustLocations(E[p],m.rect.x,m.rect.y,y,I,O,R)})},M.prototype.getToBeTiled=function(n){var E=n.id;if(this.toBeTiled[E]!=null)return this.toBeTiled[E];var p=n.getChild();if(p==null)return this.toBeTiled[E]=!1,!1;for(var m=p.getNodes(),y=0;y0)return this.toBeTiled[E]=!1,!1;if(I.getChild()==null){this.toBeTiled[I.id]=!1;continue}if(!this.getToBeTiled(I))return this.toBeTiled[E]=!1,!1}return this.toBeTiled[E]=!0,!0},M.prototype.getNodeDegree=function(n){n.id;for(var E=n.getEdges(),p=0,m=0;mQ&&(Q=X.rect.height)}p+=Q+n.verticalPadding}},M.prototype.tileCompoundMembers=function(n,E){var p=this;this.tiledMemberPack=[],Object.keys(n).forEach(function(m){var y=E[m];if(p.tiledMemberPack[m]=p.tileNodes(n[m],y.paddingLeft+y.paddingRight),y.rect.width=p.tiledMemberPack[m].width,y.rect.height=p.tiledMemberPack[m].height,y.setCenter(p.tiledMemberPack[m].centerX,p.tiledMemberPack[m].centerY),y.labelMarginLeft=0,y.labelMarginTop=0,o.NODE_DIMENSIONS_INCLUDE_LABELS){var I=y.rect.width,O=y.rect.height;y.labelWidth&&(y.labelPosHorizontal=="left"?(y.rect.x-=y.labelWidth,y.setWidth(I+y.labelWidth),y.labelMarginLeft=y.labelWidth):y.labelPosHorizontal=="center"&&y.labelWidth>I?(y.rect.x-=(y.labelWidth-I)/2,y.setWidth(y.labelWidth),y.labelMarginLeft=(y.labelWidth-I)/2):y.labelPosHorizontal=="right"&&y.setWidth(I+y.labelWidth)),y.labelHeight&&(y.labelPosVertical=="top"?(y.rect.y-=y.labelHeight,y.setHeight(O+y.labelHeight),y.labelMarginTop=y.labelHeight):y.labelPosVertical=="center"&&y.labelHeight>O?(y.rect.y-=(y.labelHeight-O)/2,y.setHeight(y.labelHeight),y.labelMarginTop=(y.labelHeight-O)/2):y.labelPosVertical=="bottom"&&y.setHeight(O+y.labelHeight))}})},M.prototype.tileNodes=function(n,E){var p=this.tileNodesByFavoringDim(n,E,!0),m=this.tileNodesByFavoringDim(n,E,!1),y=this.getOrgRatio(p),I=this.getOrgRatio(m),O;return IR&&(R=$.getWidth())});var W=I/y,x=O/y,Q=Math.pow(p-m,2)+4*(W+m)*(x+p)*y,z=(m-p+Math.sqrt(Q))/(2*(W+m)),X;E?(X=Math.ceil(z),X==z&&X++):X=Math.floor(z);var rt=X*(W+m)-m;return R>rt&&(rt=R),rt+=m*2,rt},M.prototype.tileNodesByFavoringDim=function(n,E,p){var m=o.TILING_PADDING_VERTICAL,y=o.TILING_PADDING_HORIZONTAL,I=o.TILING_COMPARE_BY,O={rows:[],rowWidth:[],rowHeight:[],width:0,height:E,verticalPadding:m,horizontalPadding:y,centerX:0,centerY:0};I&&(O.idealRowWidth=this.calcIdealRowWidth(n,p));var R=function(D){return D.rect.width*D.rect.height},W=function(D,H){return R(H)-R(D)};n.sort(function($,D){var H=W;return O.idealRowWidth?(H=I,H($.id,D.id)):H($,D)});for(var x=0,Q=0,z=0;z0&&(O+=n.horizontalPadding),n.rowWidth[p]=O,n.width0&&(R+=n.verticalPadding);var W=0;R>n.rowHeight[p]&&(W=n.rowHeight[p],n.rowHeight[p]=R,W=n.rowHeight[p]-W),n.height+=W,n.rows[p].push(E)},M.prototype.getShortestRowIndex=function(n){for(var E=-1,p=Number.MAX_VALUE,m=0;mp&&(E=m,p=n.rowWidth[m]);return E},M.prototype.canAddHorizontal=function(n,E,p){if(n.idealRowWidth){var m=n.rows.length-1,y=n.rowWidth[m];return y+E+n.horizontalPadding<=n.idealRowWidth}var I=this.getShortestRowIndex(n);if(I<0)return!0;var O=n.rowWidth[I];if(O+n.horizontalPadding+E<=n.width)return!0;var R=0;n.rowHeight[I]0&&(R=p+n.verticalPadding-n.rowHeight[I]);var W;n.width-O>=E+n.horizontalPadding?W=(n.height+R)/(O+E+n.horizontalPadding):W=(n.height+R)/n.width,R=p+n.verticalPadding;var x;return n.widthI&&E!=p){m.splice(-1,1),n.rows[p].push(y),n.rowWidth[E]=n.rowWidth[E]-I,n.rowWidth[p]=n.rowWidth[p]+I,n.width=n.rowWidth[instance.getLongestRowIndex(n)];for(var O=Number.MIN_VALUE,R=0;RO&&(O=m[R].height);E>0&&(O+=n.verticalPadding);var W=n.rowHeight[E]+n.rowHeight[p];n.rowHeight[E]=O,n.rowHeight[p]0)for(var rt=y;rt<=I;rt++)X[0]+=this.grid[rt][O-1].length+this.grid[rt][O].length-1;if(I0)for(var rt=O;rt<=R;rt++)X[3]+=this.grid[y-1][rt].length+this.grid[y][rt].length-1;for(var $=w.MAX_VALUE,D,H,k=0;k{var f=a(551).FDLayoutNode,e=a(551).IMath;function u(s,o,c,l){f.call(this,s,o,c,l)}u.prototype=Object.create(f.prototype);for(var t in f)u[t]=f[t];u.prototype.calculateDisplacement=function(){var s=this.graphManager.getLayout();this.getChild()!=null&&this.fixedNodeWeight?(this.displacementX+=s.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=s.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=s.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=s.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>s.coolingFactor*s.maxNodeDisplacement&&(this.displacementX=s.coolingFactor*s.maxNodeDisplacement*e.sign(this.displacementX)),Math.abs(this.displacementY)>s.coolingFactor*s.maxNodeDisplacement&&(this.displacementY=s.coolingFactor*s.maxNodeDisplacement*e.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},u.prototype.propogateDisplacementToChildren=function(s,o){for(var c=this.getChild().getNodes(),l,T=0;T{function f(c){if(Array.isArray(c)){for(var l=0,T=Array(c.length);l0){var Lt=0;ot.forEach(function(st){Z=="horizontal"?(et.set(st,g.has(st)?d[g.get(st)]:q.get(st)),Lt+=et.get(st)):(et.set(st,g.has(st)?C[g.get(st)]:q.get(st)),Lt+=et.get(st))}),Lt=Lt/ot.length,lt.forEach(function(st){K.has(st)||et.set(st,Lt)})}else{var ft=0;lt.forEach(function(st){Z=="horizontal"?ft+=g.has(st)?d[g.get(st)]:q.get(st):ft+=g.has(st)?C[g.get(st)]:q.get(st)}),ft=ft/lt.length,lt.forEach(function(st){et.set(st,ft)})}});for(var At=function(){var ot=dt.shift(),Lt=Y.get(ot);Lt.forEach(function(ft){if(et.get(ft.id)st&&(st=kt),KtXt&&(Xt=Kt)}}catch(ee){Ct=!0,Bt=ee}finally{try{!Tt&&bt.return&&bt.return()}finally{if(Ct)throw Bt}}var fe=(Lt+st)/2-(ft+Xt)/2,Qt=!0,jt=!1,_t=void 0;try{for(var Jt=lt[Symbol.iterator](),ne;!(Qt=(ne=Jt.next()).done);Qt=!0){var te=ne.value;et.set(te,et.get(te)+fe)}}catch(ee){jt=!0,_t=ee}finally{try{!Qt&&Jt.return&&Jt.return()}finally{if(jt)throw _t}}})}return et},_=function(Y){var Z=0,K=0,q=0,at=0;if(Y.forEach(function(j){j.left?d[g.get(j.left)]-d[g.get(j.right)]>=0?Z++:K++:C[g.get(j.top)]-C[g.get(j.bottom)]>=0?q++:at++}),Z>K&&q>at)for(var ct=0;ctK)for(var nt=0;ntat)for(var et=0;et1)l.fixedNodeConstraint.forEach(function(F,Y){m[Y]=[F.position.x,F.position.y],y[Y]=[d[g.get(F.nodeId)],C[g.get(F.nodeId)]]}),I=!0;else if(l.alignmentConstraint)(function(){var F=0;if(l.alignmentConstraint.vertical){for(var Y=l.alignmentConstraint.vertical,Z=function(et){var j=new Set;Y[et].forEach(function(pt){j.add(pt)});var dt=new Set([].concat(f(j)).filter(function(pt){return R.has(pt)})),At=void 0;dt.size>0?At=d[g.get(dt.values().next().value)]:At=V(j).x,Y[et].forEach(function(pt){m[F]=[At,C[g.get(pt)]],y[F]=[d[g.get(pt)],C[g.get(pt)]],F++})},K=0;K0?At=d[g.get(dt.values().next().value)]:At=V(j).y,q[et].forEach(function(pt){m[F]=[d[g.get(pt)],At],y[F]=[d[g.get(pt)],C[g.get(pt)]],F++})},ct=0;ctz&&(z=Q[rt].length,X=rt);if(z0){var mt={x:0,y:0};l.fixedNodeConstraint.forEach(function(F,Y){var Z={x:d[g.get(F.nodeId)],y:C[g.get(F.nodeId)]},K=F.position,q=U(K,Z);mt.x+=q.x,mt.y+=q.y}),mt.x/=l.fixedNodeConstraint.length,mt.y/=l.fixedNodeConstraint.length,d.forEach(function(F,Y){d[Y]+=mt.x}),C.forEach(function(F,Y){C[Y]+=mt.y}),l.fixedNodeConstraint.forEach(function(F){d[g.get(F.nodeId)]=F.position.x,C[g.get(F.nodeId)]=F.position.y})}if(l.alignmentConstraint){if(l.alignmentConstraint.vertical)for(var Dt=l.alignmentConstraint.vertical,Rt=function(Y){var Z=new Set;Dt[Y].forEach(function(at){Z.add(at)});var K=new Set([].concat(f(Z)).filter(function(at){return R.has(at)})),q=void 0;K.size>0?q=d[g.get(K.values().next().value)]:q=V(Z).x,Z.forEach(function(at){R.has(at)||(d[g.get(at)]=q)})},Ht=0;Ht0?q=C[g.get(K.values().next().value)]:q=V(Z).y,Z.forEach(function(at){R.has(at)||(C[g.get(at)]=q)})},Ft=0;Ft{i.exports=A})},N={};function v(i){var r=N[i];if(r!==void 0)return r.exports;var a=N[i]={exports:{}};return G[i](a,a.exports,v),a.exports}var h=v(45);return h})()})})(he)),he.exports}var pr=se.exports,De;function yr(){return De||(De=1,(function(L,b){(function(G,N){L.exports=N(vr())})(pr,function(A){return(()=>{var G={658:(i=>{i.exports=Object.assign!=null?Object.assign.bind(Object):function(r){for(var a=arguments.length,f=Array(a>1?a-1:0),e=1;e{var f=(function(){function t(s,o){var c=[],l=!0,T=!1,g=void 0;try{for(var d=s[Symbol.iterator](),C;!(l=(C=d.next()).done)&&(c.push(C.value),!(o&&c.length===o));l=!0);}catch(S){T=!0,g=S}finally{try{!l&&d.return&&d.return()}finally{if(T)throw g}}return c}return function(s,o){if(Array.isArray(s))return s;if(Symbol.iterator in Object(s))return t(s,o);throw new TypeError("Invalid attempt to destructure non-iterable instance")}})(),e=a(140).layoutBase.LinkedList,u={};u.getTopMostNodes=function(t){for(var s={},o=0;o0&&I.merge(x)});for(var O=0;O1){C=g[0],S=C.connectedEdges().length,g.forEach(function(y){y.connectedEdges().length0&&c.set("dummy"+(c.size+1),B),U},u.relocateComponent=function(t,s,o){if(!o.fixedNodeConstraint){var c=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY,T=Number.POSITIVE_INFINITY,g=Number.NEGATIVE_INFINITY;if(o.quality=="draft"){var d=!0,C=!1,S=void 0;try{for(var w=s.nodeIndexes[Symbol.iterator](),P;!(d=(P=w.next()).done);d=!0){var B=P.value,U=f(B,2),V=U[0],M=U[1],_=o.cy.getElementById(V);if(_){var n=_.boundingBox(),E=s.xCoords[M]-n.w/2,p=s.xCoords[M]+n.w/2,m=s.yCoords[M]-n.h/2,y=s.yCoords[M]+n.h/2;El&&(l=p),mg&&(g=y)}}}catch(x){C=!0,S=x}finally{try{!d&&w.return&&w.return()}finally{if(C)throw S}}var I=t.x-(l+c)/2,O=t.y-(g+T)/2;s.xCoords=s.xCoords.map(function(x){return x+I}),s.yCoords=s.yCoords.map(function(x){return x+O})}else{Object.keys(s).forEach(function(x){var Q=s[x],z=Q.getRect().x,X=Q.getRect().x+Q.getRect().width,rt=Q.getRect().y,$=Q.getRect().y+Q.getRect().height;zl&&(l=X),rtg&&(g=$)});var R=t.x-(l+c)/2,W=t.y-(g+T)/2;Object.keys(s).forEach(function(x){var Q=s[x];Q.setCenter(Q.getCenterX()+R,Q.getCenterY()+W)})}}},u.calcBoundingBox=function(t,s,o,c){for(var l=Number.MAX_SAFE_INTEGER,T=Number.MIN_SAFE_INTEGER,g=Number.MAX_SAFE_INTEGER,d=Number.MIN_SAFE_INTEGER,C=void 0,S=void 0,w=void 0,P=void 0,B=t.descendants().not(":parent"),U=B.length,V=0;VC&&(l=C),Tw&&(g=w),d{var f=a(548),e=a(140).CoSELayout,u=a(140).CoSENode,t=a(140).layoutBase.PointD,s=a(140).layoutBase.DimensionD,o=a(140).layoutBase.LayoutConstants,c=a(140).layoutBase.FDLayoutConstants,l=a(140).CoSEConstants,T=function(d,C){var S=d.cy,w=d.eles,P=w.nodes(),B=w.edges(),U=void 0,V=void 0,M=void 0,_={};d.randomize&&(U=C.nodeIndexes,V=C.xCoords,M=C.yCoords);var n=function(x){return typeof x=="function"},E=function(x,Q){return n(x)?x(Q):x},p=f.calcParentsWithoutChildren(S,w),m=function W(x,Q,z,X){for(var rt=Q.length,$=0;$0){var J=void 0;J=z.getGraphManager().add(z.newGraph(),k),W(J,H,z,X)}}},y=function(x,Q,z){for(var X=0,rt=0,$=0;$0?l.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=X/rt:n(d.idealEdgeLength)?l.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=50:l.DEFAULT_EDGE_LENGTH=c.DEFAULT_EDGE_LENGTH=d.idealEdgeLength,l.MIN_REPULSION_DIST=c.MIN_REPULSION_DIST=c.DEFAULT_EDGE_LENGTH/10,l.DEFAULT_RADIAL_SEPARATION=c.DEFAULT_EDGE_LENGTH)},I=function(x,Q){Q.fixedNodeConstraint&&(x.constraints.fixedNodeConstraint=Q.fixedNodeConstraint),Q.alignmentConstraint&&(x.constraints.alignmentConstraint=Q.alignmentConstraint),Q.relativePlacementConstraint&&(x.constraints.relativePlacementConstraint=Q.relativePlacementConstraint)};d.nestingFactor!=null&&(l.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=c.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=d.nestingFactor),d.gravity!=null&&(l.DEFAULT_GRAVITY_STRENGTH=c.DEFAULT_GRAVITY_STRENGTH=d.gravity),d.numIter!=null&&(l.MAX_ITERATIONS=c.MAX_ITERATIONS=d.numIter),d.gravityRange!=null&&(l.DEFAULT_GRAVITY_RANGE_FACTOR=c.DEFAULT_GRAVITY_RANGE_FACTOR=d.gravityRange),d.gravityCompound!=null&&(l.DEFAULT_COMPOUND_GRAVITY_STRENGTH=c.DEFAULT_COMPOUND_GRAVITY_STRENGTH=d.gravityCompound),d.gravityRangeCompound!=null&&(l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=c.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=d.gravityRangeCompound),d.initialEnergyOnIncremental!=null&&(l.DEFAULT_COOLING_FACTOR_INCREMENTAL=c.DEFAULT_COOLING_FACTOR_INCREMENTAL=d.initialEnergyOnIncremental),d.tilingCompareBy!=null&&(l.TILING_COMPARE_BY=d.tilingCompareBy),d.quality=="proof"?o.QUALITY=2:o.QUALITY=0,l.NODE_DIMENSIONS_INCLUDE_LABELS=c.NODE_DIMENSIONS_INCLUDE_LABELS=o.NODE_DIMENSIONS_INCLUDE_LABELS=d.nodeDimensionsIncludeLabels,l.DEFAULT_INCREMENTAL=c.DEFAULT_INCREMENTAL=o.DEFAULT_INCREMENTAL=!d.randomize,l.ANIMATE=c.ANIMATE=o.ANIMATE=d.animate,l.TILE=d.tile,l.TILING_PADDING_VERTICAL=typeof d.tilingPaddingVertical=="function"?d.tilingPaddingVertical.call():d.tilingPaddingVertical,l.TILING_PADDING_HORIZONTAL=typeof d.tilingPaddingHorizontal=="function"?d.tilingPaddingHorizontal.call():d.tilingPaddingHorizontal,l.DEFAULT_INCREMENTAL=c.DEFAULT_INCREMENTAL=o.DEFAULT_INCREMENTAL=!0,l.PURE_INCREMENTAL=!d.randomize,o.DEFAULT_UNIFORM_LEAF_NODE_SIZES=d.uniformNodeDimensions,d.step=="transformed"&&(l.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,l.ENFORCE_CONSTRAINTS=!1,l.APPLY_LAYOUT=!1),d.step=="enforced"&&(l.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,l.ENFORCE_CONSTRAINTS=!0,l.APPLY_LAYOUT=!1),d.step=="cose"&&(l.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,l.ENFORCE_CONSTRAINTS=!1,l.APPLY_LAYOUT=!0),d.step=="all"&&(d.randomize?l.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:l.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,l.ENFORCE_CONSTRAINTS=!0,l.APPLY_LAYOUT=!0),d.fixedNodeConstraint||d.alignmentConstraint||d.relativePlacementConstraint?l.TREE_REDUCTION_ON_INCREMENTAL=!1:l.TREE_REDUCTION_ON_INCREMENTAL=!0;var O=new e,R=O.newGraphManager();return m(R.addRoot(),f.getTopMostNodes(P),O,d),y(O,R,B),I(O,d),O.runLayout(),_};i.exports={coseLayout:T}}),212:((i,r,a)=>{var f=(function(){function d(C,S){for(var w=0;w0)if(p){var I=t.getTopMostNodes(w.eles.nodes());if(M=t.connectComponents(P,w.eles,I),M.forEach(function(vt){var it=vt.boundingBox();_.push({x:it.x1+it.w/2,y:it.y1+it.h/2})}),w.randomize&&M.forEach(function(vt){w.eles=vt,U.push(o(w))}),w.quality=="default"||w.quality=="proof"){var O=P.collection();if(w.tile){var R=new Map,W=[],x=[],Q=0,z={nodeIndexes:R,xCoords:W,yCoords:x},X=[];if(M.forEach(function(vt,it){vt.edges().length==0&&(vt.nodes().forEach(function(ut,Et){O.merge(vt.nodes()[Et]),ut.isParent()||(z.nodeIndexes.set(vt.nodes()[Et].id(),Q++),z.xCoords.push(vt.nodes()[0].position().x),z.yCoords.push(vt.nodes()[0].position().y))}),X.push(it))}),O.length>1){var rt=O.boundingBox();_.push({x:rt.x1+rt.w/2,y:rt.y1+rt.h/2}),M.push(O),U.push(z);for(var $=X.length-1;$>=0;$--)M.splice(X[$],1),U.splice(X[$],1),_.splice(X[$],1)}}M.forEach(function(vt,it){w.eles=vt,V.push(l(w,U[it])),t.relocateComponent(_[it],V[it],w)})}else M.forEach(function(vt,it){t.relocateComponent(_[it],U[it],w)});var D=new Set;if(M.length>1){var H=[],k=B.filter(function(vt){return vt.css("display")=="none"});M.forEach(function(vt,it){var ut=void 0;if(w.quality=="draft"&&(ut=U[it].nodeIndexes),vt.nodes().not(k).length>0){var Et={};Et.edges=[],Et.nodes=[];var wt=void 0;vt.nodes().not(k).forEach(function(Ot){if(w.quality=="draft")if(!Ot.isParent())wt=ut.get(Ot.id()),Et.nodes.push({x:U[it].xCoords[wt]-Ot.boundingbox().w/2,y:U[it].yCoords[wt]-Ot.boundingbox().h/2,width:Ot.boundingbox().w,height:Ot.boundingbox().h});else{var mt=t.calcBoundingBox(Ot,U[it].xCoords,U[it].yCoords,ut);Et.nodes.push({x:mt.topLeftX,y:mt.topLeftY,width:mt.width,height:mt.height})}else V[it][Ot.id()]&&Et.nodes.push({x:V[it][Ot.id()].getLeft(),y:V[it][Ot.id()].getTop(),width:V[it][Ot.id()].getWidth(),height:V[it][Ot.id()].getHeight()})}),vt.edges().forEach(function(Ot){var mt=Ot.source(),Dt=Ot.target();if(mt.css("display")!="none"&&Dt.css("display")!="none")if(w.quality=="draft"){var Rt=ut.get(mt.id()),Ht=ut.get(Dt.id()),Ut=[],Pt=[];if(mt.isParent()){var Ft=t.calcBoundingBox(mt,U[it].xCoords,U[it].yCoords,ut);Ut.push(Ft.topLeftX+Ft.width/2),Ut.push(Ft.topLeftY+Ft.height/2)}else Ut.push(U[it].xCoords[Rt]),Ut.push(U[it].yCoords[Rt]);if(Dt.isParent()){var Yt=t.calcBoundingBox(Dt,U[it].xCoords,U[it].yCoords,ut);Pt.push(Yt.topLeftX+Yt.width/2),Pt.push(Yt.topLeftY+Yt.height/2)}else Pt.push(U[it].xCoords[Ht]),Pt.push(U[it].yCoords[Ht]);Et.edges.push({startX:Ut[0],startY:Ut[1],endX:Pt[0],endY:Pt[1]})}else V[it][mt.id()]&&V[it][Dt.id()]&&Et.edges.push({startX:V[it][mt.id()].getCenterX(),startY:V[it][mt.id()].getCenterY(),endX:V[it][Dt.id()].getCenterX(),endY:V[it][Dt.id()].getCenterY()})}),Et.nodes.length>0&&(H.push(Et),D.add(it))}});var tt=E.packComponents(H,w.randomize).shifts;if(w.quality=="draft")U.forEach(function(vt,it){var ut=vt.xCoords.map(function(wt){return wt+tt[it].dx}),Et=vt.yCoords.map(function(wt){return wt+tt[it].dy});vt.xCoords=ut,vt.yCoords=Et});else{var ht=0;D.forEach(function(vt){Object.keys(V[vt]).forEach(function(it){var ut=V[vt][it];ut.setCenter(ut.getCenterX()+tt[ht].dx,ut.getCenterY()+tt[ht].dy)}),ht++})}}}else{var m=w.eles.boundingBox();if(_.push({x:m.x1+m.w/2,y:m.y1+m.h/2}),w.randomize){var y=o(w);U.push(y)}w.quality=="default"||w.quality=="proof"?(V.push(l(w,U[0])),t.relocateComponent(_[0],V[0],w)):t.relocateComponent(_[0],U[0],w)}var J=function(it,ut){if(w.quality=="default"||w.quality=="proof"){typeof it=="number"&&(it=ut);var Et=void 0,wt=void 0,Ot=it.data("id");return V.forEach(function(Dt){Ot in Dt&&(Et={x:Dt[Ot].getRect().getCenterX(),y:Dt[Ot].getRect().getCenterY()},wt=Dt[Ot])}),w.nodeDimensionsIncludeLabels&&(wt.labelWidth&&(wt.labelPosHorizontal=="left"?Et.x+=wt.labelWidth/2:wt.labelPosHorizontal=="right"&&(Et.x-=wt.labelWidth/2)),wt.labelHeight&&(wt.labelPosVertical=="top"?Et.y+=wt.labelHeight/2:wt.labelPosVertical=="bottom"&&(Et.y-=wt.labelHeight/2))),Et==null&&(Et={x:it.position("x"),y:it.position("y")}),{x:Et.x,y:Et.y}}else{var mt=void 0;return U.forEach(function(Dt){var Rt=Dt.nodeIndexes.get(it.id());Rt!=null&&(mt={x:Dt.xCoords[Rt],y:Dt.yCoords[Rt]})}),mt==null&&(mt={x:it.position("x"),y:it.position("y")}),{x:mt.x,y:mt.y}}};if(w.quality=="default"||w.quality=="proof"||w.randomize){var It=t.calcParentsWithoutChildren(P,B),Nt=B.filter(function(vt){return vt.css("display")=="none"});w.eles=B.not(Nt),B.nodes().not(":parent").not(Nt).layoutPositions(S,w,J),It.length>0&&It.forEach(function(vt){vt.position(J(vt))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")}}]),d})();i.exports=g}),657:((i,r,a)=>{var f=a(548),e=a(140).layoutBase.Matrix,u=a(140).layoutBase.SVD,t=function(o){var c=o.cy,l=o.eles,T=l.nodes(),g=l.nodes(":parent"),d=new Map,C=new Map,S=new Map,w=[],P=[],B=[],U=[],V=[],M=[],_=[],n=[],E=void 0,p=1e8,m=1e-9,y=o.piTol,I=o.samplingType,O=o.nodeSeparation,R=void 0,W=function(){for(var Y=0,Z=0,K=!1;Z=at;){nt=q[at++];for(var xt=w[nt],lt=0;ltdt&&(dt=V[Lt],At=Lt)}return At},Q=function(Y){var Z=void 0;if(Y){Z=Math.floor(Math.random()*E);for(var q=0;q=1)break;j=et}for(var pt=0;pt=1)break;j=et}for(var lt=0;lt0&&(Z.isParent()?w[Y].push(S.get(Z.id())):w[Y].push(Z.id()))})});var Nt=function(Y){var Z=C.get(Y),K=void 0;d.get(Y).forEach(function(q){c.getElementById(q).isParent()?K=S.get(q):K=q,w[Z].push(K),w[C.get(K)].push(Y)})},vt=!0,it=!1,ut=void 0;try{for(var Et=d.keys()[Symbol.iterator](),wt;!(vt=(wt=Et.next()).done);vt=!0){var Ot=wt.value;Nt(Ot)}}catch(F){it=!0,ut=F}finally{try{!vt&&Et.return&&Et.return()}finally{if(it)throw ut}}E=C.size;var mt=void 0;if(E>2){R=E{var f=a(212),e=function(t){t&&t("layout","fcose",f)};typeof cytoscape<"u"&&e(cytoscape),i.exports=e}),140:(i=>{i.exports=A})},N={};function v(i){var r=N[i];if(r!==void 0)return r.exports;var a=N[i]={exports:{}};return G[i](a,a.exports,v),a.exports}var h=v(579);return h})()})})(se)),se.exports}var mr=yr();const Er=Ze(mr);var xe={L:"left",R:"right",T:"top",B:"bottom"},Ie={L:gt(L=>`${L},${L/2} 0,${L} 0,0`,"L"),R:gt(L=>`0,${L/2} ${L},0 ${L},${L}`,"R"),T:gt(L=>`0,0 ${L},0 ${L/2},${L}`,"T"),B:gt(L=>`${L/2},0 ${L},${L} 0,${L}`,"B")},oe={L:gt((L,b)=>L-b+2,"L"),R:gt((L,b)=>L-2,"R"),T:gt((L,b)=>L-b+2,"T"),B:gt((L,b)=>L-2,"B")},Tr=gt(function(L){return Wt(L)?L==="L"?"R":"L":L==="T"?"B":"T"},"getOppositeArchitectureDirection"),Re=gt(function(L){const b=L;return b==="L"||b==="R"||b==="T"||b==="B"},"isArchitectureDirection"),Wt=gt(function(L){const b=L;return b==="L"||b==="R"},"isArchitectureDirectionX"),qt=gt(function(L){const b=L;return b==="T"||b==="B"},"isArchitectureDirectionY"),Te=gt(function(L,b){const A=Wt(L)&&qt(b),G=qt(L)&&Wt(b);return A||G},"isArchitectureDirectionXY"),Nr=gt(function(L){const b=L[0],A=L[1],G=Wt(b)&&qt(A),N=qt(b)&&Wt(A);return G||N},"isArchitecturePairXY"),Lr=gt(function(L){return L!=="LL"&&L!=="RR"&&L!=="TT"&&L!=="BB"},"isValidArchitectureDirectionPair"),pe=gt(function(L,b){const A=`${L}${b}`;return Lr(A)?A:void 0},"getArchitectureDirectionPair"),Cr=gt(function([L,b],A){const G=A[0],N=A[1];return Wt(G)?qt(N)?[L+(G==="L"?-1:1),b+(N==="T"?1:-1)]:[L+(G==="L"?-1:1),b]:Wt(N)?[L+(N==="L"?1:-1),b+(G==="T"?1:-1)]:[L,b+(G==="T"?1:-1)]},"shiftPositionByArchitectureDirectionPair"),wr=gt(function(L){return L==="LT"||L==="TL"?[1,1]:L==="BL"||L==="LB"?[1,-1]:L==="BR"||L==="RB"?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),Ar=gt(function(L,b){return Te(L,b)?"bend":Wt(L)?"horizontal":"vertical"},"getArchitectureDirectionAlignment"),Mr=gt(function(L){return L.type==="service"},"isArchitectureService"),Or=gt(function(L){return L.type==="junction"},"isArchitectureJunction"),be=gt(L=>L.data(),"edgeData"),ie=gt(L=>L.data(),"nodeData"),Dr=nr.architecture,Pe=class{constructor(){this.nodes={},this.groups={},this.edges=[],this.layoutHints=[],this.registeredIds={},this.elements={},this.diagramId="",this.setAccTitle=Je,this.getAccTitle=Ke,this.setDiagramTitle=je,this.getDiagramTitle=_e,this.getAccDescription=tr,this.setAccDescription=er,this.clear()}static{gt(this,"ArchitectureDB")}setDiagramId(L){this.diagramId=L}getDiagramId(){return this.diagramId}clear(){this.nodes={},this.groups={},this.edges=[],this.layoutHints=[],this.registeredIds={},this.dataStructures=void 0,this.elements={},this.diagramId="",rr()}addService({id:L,icon:b,in:A,title:G,iconText:N}){if(this.registeredIds[L]!==void 0)throw new Error(`The service id [${L}] is already in use by another ${this.registeredIds[L]}`);if(A!==void 0){if(L===A)throw new Error(`The service [${L}] cannot be placed within itself`);if(this.registeredIds[A]===void 0)throw new Error(`The service [${L}]'s parent does not exist. Please make sure the parent is created before this service`);if(this.registeredIds[A]==="node")throw new Error(`The service [${L}]'s parent is not a group`)}this.registeredIds[L]="node",this.nodes[L]={id:L,type:"service",icon:b,iconText:N,title:G,edges:[],in:A}}getServices(){return Object.values(this.nodes).filter(Mr)}addJunction({id:L,in:b}){if(this.registeredIds[L]!==void 0)throw new Error(`The junction id [${L}] is already in use by another ${this.registeredIds[L]}`);if(b!==void 0){if(L===b)throw new Error(`The junction [${L}] cannot be placed within itself`);if(this.registeredIds[b]===void 0)throw new Error(`The junction [${L}]'s parent does not exist. Please make sure the parent is created before this junction`);if(this.registeredIds[b]==="node")throw new Error(`The junction [${L}]'s parent is not a group`)}this.registeredIds[L]="node",this.nodes[L]={id:L,type:"junction",edges:[],in:b}}getJunctions(){return Object.values(this.nodes).filter(Or)}getNodes(){return Object.values(this.nodes)}getNode(L){return this.nodes[L]??null}addGroup({id:L,icon:b,in:A,title:G}){if(this.registeredIds?.[L]!==void 0)throw new Error(`The group id [${L}] is already in use by another ${this.registeredIds[L]}`);if(A!==void 0){if(L===A)throw new Error(`The group [${L}] cannot be placed within itself`);if(this.registeredIds?.[A]===void 0)throw new Error(`The group [${L}]'s parent does not exist. Please make sure the parent is created before this group`);if(this.registeredIds?.[A]==="node")throw new Error(`The group [${L}]'s parent is not a group`)}this.registeredIds[L]="group",this.groups[L]={id:L,icon:b,title:G,in:A}}getGroups(){return Object.values(this.groups)}addEdge({lhsId:L,rhsId:b,lhsDir:A,rhsDir:G,lhsInto:N,rhsInto:v,lhsGroup:h,rhsGroup:i,title:r}){if(!Re(A))throw new Error(`Invalid direction given for left hand side of edge ${L}--${b}. Expected (L,R,T,B) got ${String(A)}`);if(!Re(G))throw new Error(`Invalid direction given for right hand side of edge ${L}--${b}. Expected (L,R,T,B) got ${String(G)}`);if(this.nodes[L]===void 0&&this.groups[L]===void 0)throw new Error(`The left-hand id [${L}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(this.nodes[b]===void 0&&this.groups[b]===void 0)throw new Error(`The right-hand id [${b}] does not yet exist. Please create the service/group before declaring an edge to it.`);const a=this.nodes[L].in,f=this.nodes[b].in;if(h&&a&&f&&a==f)throw new Error(`The left-hand id [${L}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(i&&a&&f&&a==f)throw new Error(`The right-hand id [${b}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);const e={lhsId:L,lhsDir:A,lhsInto:N,lhsGroup:h,rhsId:b,rhsDir:G,rhsInto:v,rhsGroup:i,title:r};this.edges.push(e),this.nodes[L]&&this.nodes[b]&&(this.nodes[L].edges.push(this.edges[this.edges.length-1]),this.nodes[b].edges.push(this.edges[this.edges.length-1]))}getEdges(){return this.edges}addLayoutHint(L){if(L.members.length<2)throw new Error(`An align directive requires at least two members; got ${L.members.length}`);const b=new Set;L.members.forEach(A=>{if(this.registeredIds[A]!=="node")throw new Error(`align ${L.direction} references [${A}], which is not a service or junction`);if(b.has(A))throw new Error(`align ${L.direction} lists [${A}] more than once`);b.add(A)}),this.layoutHints.push(L)}getLayoutHints(){return this.layoutHints}getDataStructures(){if(this.dataStructures===void 0){const L={},b=Object.entries(this.nodes).reduce((i,[r,a])=>(i[r]=a.edges.reduce((f,e)=>{const u=this.getNode(e.lhsId)?.in,t=this.getNode(e.rhsId)?.in;if(u&&t&&u!==t){const s=Ar(e.lhsDir,e.rhsDir);s!=="bend"&&(L[u]??={},L[u][t]=s,L[t]??={},L[t][u]=s)}if(e.lhsId===r){const s=pe(e.lhsDir,e.rhsDir);s&&(f[s]=e.rhsId)}else{const s=pe(e.rhsDir,e.lhsDir);s&&(f[s]=e.lhsId)}return f},{}),i),{}),A=Object.keys(b)[0],G={[A]:1},N=Object.keys(b).reduce((i,r)=>r===A?i:{...i,[r]:1},{}),v=gt(i=>{const r={[i]:[0,0]},a=[i];for(;a.length>0;){const f=a.shift();if(f){G[f]=1,delete N[f];const e=b[f],[u,t]=r[f];Object.entries(e).forEach(([s,o])=>{G[o]||(r[o]=Cr([u,t],s),a.push(o))})}}return r},"BFS"),h=[v(A)];for(;Object.keys(N).length>0;)h.push(v(Object.keys(N)[0]));this.dataStructures={adjList:b,spatialMaps:h,groupAlignments:L}}return this.dataStructures}setElementForId(L,b){this.elements[L]=b}getElementById(L){return this.elements[L]}getConfig(){return ir({...Dr,...ar().architecture})}getConfigField(L){return this.getConfig()[L]}},xr=gt((L,b)=>{ke(L,b),L.groups.map(A=>b.addGroup(A)),L.services.map(A=>b.addService({...A,type:"service"})),L.junctions.map(A=>b.addJunction({...A,type:"junction"})),L.edges.map(A=>b.addEdge(A)),L.alignments?.map(A=>b.addLayoutHint({direction:A.direction,members:[...A.members]}))},"populateDb"),Ge={parser:{yy:void 0},parse:gt(async L=>{const b=await cr("architecture",L);Se.debug(b);const A=Ge.parser?.yy;if(!(A instanceof Pe))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.");xr(b,A)},"parse")},Ir=gt(L=>` + .edge { + stroke-width: ${L.archEdgeWidth}; + stroke: ${L.archEdgeColor}; + fill: none; + } + + .arrow { + fill: ${L.archEdgeArrowColor}; + } + + .node-bkg { + fill: none; + stroke: ${L.archGroupBorderColor}; + stroke-width: ${L.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"),Rr=Ir;function ye(L,b){if(L===0)return b();const A=Math.random;let G=L>>>0;Math.random=function(){G=G+1831565813>>>0;let N=G;return N=Math.imul(N^N>>>15,N|1),N^=N+Math.imul(N^N>>>7,N|61),((N^N>>>14)>>>0)/4294967296};try{return b()}finally{Math.random=A}}gt(ye,"withSeededRandom");var re=gt(L=>`${L}`,"wrapIcon"),ae={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:re('')},server:{body:re('')},disk:{body:re('')},internet:{body:re('')},cloud:{body:re('')},unknown:fr,blank:{body:re("")}}},Sr=gt(async function(L,b,A,G){const N=A.getConfigField("padding"),v=A.getConfigField("iconSize"),h=v/2,i=v/6,r=i/2;await Promise.all(b.edges().map(async a=>{const{source:f,sourceDir:e,sourceArrow:u,sourceGroup:t,target:s,targetDir:o,targetArrow:c,targetGroup:l,label:T}=be(a);let{x:g,y:d}=a[0].sourceEndpoint();const{x:C,y:S}=a[0].midpoint();let{x:w,y:P}=a[0].targetEndpoint();const B=N+4;if(t&&(Wt(e)?g+=e==="L"?-B:B:d+=e==="T"?-B:B+18),l&&(Wt(o)?w+=o==="L"?-B:B:P+=o==="T"?-B:B+18),!t&&A.getNode(f)?.type==="junction"&&(Wt(e)?g+=e==="L"?h:-h:d+=e==="T"?h:-h),!l&&A.getNode(s)?.type==="junction"&&(Wt(o)?w+=o==="L"?h:-h:P+=o==="T"?h:-h),a[0]._private.rscratch){const U=L.insert("g");if(U.insert("path").attr("d",`M ${g},${d} L ${C},${S} L${w},${P} `).attr("class","edge").attr("id",`${G}-${hr(f,s,{prefix:"L"})}`),u){const V=Wt(e)?oe[e](g,i):g-r,M=qt(e)?oe[e](d,i):d-r;U.insert("polygon").attr("points",Ie[e](i)).attr("transform",`translate(${V},${M})`).attr("class","arrow")}if(c){const V=Wt(o)?oe[o](w,i):w-r,M=qt(o)?oe[o](P,i):P-r;U.insert("polygon").attr("points",Ie[o](i)).attr("transform",`translate(${V},${M})`).attr("class","arrow")}if(T){const V=Te(e,o)?"XY":Wt(e)?"X":"Y";let M=0;V==="X"?M=Math.abs(g-w):V==="Y"?M=Math.abs(d-P)/1.5:M=Math.abs(g-w)/2;const _=U.append("g");if(await Ee(_,T,{useHtmlLabels:!1,width:M,classes:"architecture-service-label"},me()),_.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),V==="X")_.attr("transform","translate("+C+", "+S+")");else if(V==="Y")_.attr("transform","translate("+C+", "+S+") rotate(-90)");else if(V==="XY"){const n=pe(e,o);if(n&&Nr(n)){const E=_.node().getBoundingClientRect(),[p,m]=wr(n);_.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*p*m*45})`);const y=_.node().getBoundingClientRect();_.attr("transform",` + translate(${C}, ${S-E.height/2}) + translate(${p*y.width/2}, ${m*y.height/2}) + rotate(${-1*p*m*45}, 0, ${E.height/2}) + `)}}}}}))},"drawEdges"),Fr=gt(async function(L,b,A,G){const v=A.getConfigField("padding")*.75,h=A.getConfigField("fontSize"),r=A.getConfigField("iconSize")/2;await Promise.all(b.nodes().map(async a=>{const f=ie(a);if(f.type==="group"){const{h:e,w:u,x1:t,y1:s}=a.boundingBox(),o=L.append("rect");o.attr("id",`${G}-group-${f.id}`).attr("x",t+r).attr("y",s+r).attr("width",u).attr("height",e).attr("class","node-bkg");const c=L.append("g");let l=t,T=s;if(f.icon){const g=c.append("g");g.html(`${await ve(f.icon,{height:v,width:v,fallbackPrefix:ae.prefix})}`),g.attr("transform","translate("+(l+r+1)+", "+(T+r+1)+")"),l+=v,T+=h/2-1-2}if(f.label){const g=c.append("g");await Ee(g,f.label,{useHtmlLabels:!1,width:u,classes:"architecture-service-label"},me()),g.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),g.attr("transform","translate("+(l+r+4)+", "+(T+r+2)+")")}A.setElementForId(f.id,o)}}))},"drawGroups"),br=gt(async function(L,b,A,G){const N=me();for(const v of A){const h=b.append("g"),i=L.getConfigField("iconSize");if(v.title){const e=h.append("g");await Ee(e,v.title,{useHtmlLabels:!1,width:i*1.5,classes:"architecture-service-label"},N),e.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),e.attr("transform","translate("+i/2+", "+i+")")}const r=h.append("g");if(v.icon)r.html(`${await ve(v.icon,{height:i,width:i,fallbackPrefix:ae.prefix})}`);else if(v.iconText){r.html(`${await ve("blank",{height:i,width:i,fallbackPrefix:ae.prefix})}`);const t=r.append("g").append("foreignObject").attr("width",i).attr("height",i).append("div").attr("class","node-icon-text").attr("style",`height: ${i}px;`).append("div").html(or(v.iconText,N)),s=parseInt(window.getComputedStyle(t.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;t.attr("style",`-webkit-line-clamp: ${Math.floor((i-2)/s)};`)}else r.append("path").attr("class","node-bkg").attr("id",`${G}-node-${v.id}`).attr("d",`M0,${i} V5 Q0,0 5,0 H${i-5} Q${i},0 ${i},5 V${i} Z`);h.attr("id",`${G}-service-${v.id}`).attr("class","architecture-service");const{width:a,height:f}=h.node().getBBox();v.width=a,v.height=f,L.setElementForId(v.id,h)}return 0},"drawServices"),Pr=gt(function(L,b,A,G){A.forEach(N=>{const v=b.append("g"),h=L.getConfigField("iconSize");v.append("g").append("rect").attr("id",`${G}-node-${N.id}`).attr("fill-opacity","0").attr("width",h).attr("height",h),v.attr("class","architecture-junction");const{width:r,height:a}=v._groups[0][0].getBBox();v.width=r,v.height=a,L.setElementForId(N.id,v)})},"drawJunctions");lr([{name:ae.prefix,icons:ae}]);Fe.use(Er);function Ue(L,b,A){L.forEach(G=>{b.add({group:"nodes",data:{type:"service",id:G.id,icon:G.icon,label:G.title,parent:G.in,width:A.getConfigField("iconSize"),height:A.getConfigField("iconSize")},classes:"node-service"})})}gt(Ue,"addServices");function Ye(L,b,A){L.forEach(G=>{b.add({group:"nodes",data:{type:"junction",id:G.id,parent:G.in,width:A.getConfigField("iconSize"),height:A.getConfigField("iconSize")},classes:"node-junction"})})}gt(Ye,"addJunctions");function Xe(L,b){b.nodes().map(A=>{const G=ie(A);if(G.type==="group")return;G.x=A.position().x,G.y=A.position().y,L.getElementById(G.id).attr("transform","translate("+(G.x||0)+","+(G.y||0)+")")})}gt(Xe,"positionNodes");function He(L,b){L.forEach(A=>{b.add({group:"nodes",data:{type:"group",id:A.id,icon:A.icon,label:A.title,parent:A.in},classes:"node-group"})})}gt(He,"addGroups");function We(L,b){L.forEach(A=>{const{lhsId:G,rhsId:N,lhsInto:v,lhsGroup:h,rhsInto:i,lhsDir:r,rhsDir:a,rhsGroup:f,title:e}=A,u=Te(A.lhsDir,A.rhsDir)?"segments":"straight",t={id:`${G}-${N}`,label:e,source:G,sourceDir:r,sourceArrow:v,sourceGroup:h,sourceEndpoint:r==="L"?"0 50%":r==="R"?"100% 50%":r==="T"?"50% 0":"50% 100%",target:N,targetDir:a,targetArrow:i,targetGroup:f,targetEndpoint:a==="L"?"0 50%":a==="R"?"100% 50%":a==="T"?"50% 0":"50% 100%"};b.add({group:"edges",data:t,classes:u})})}gt(We,"addEdges");function Ve(L,b,A,G=[]){const N=gt((u,t)=>Object.entries(u).reduce((s,[o,c])=>{let l=0;const T=Object.entries(c);if(T.length===1)return s[o]=T[0][1],s;for(let g=0;g{const t={},s={};return Object.entries(u).forEach(([o,[c,l]])=>{const T=L.getNode(o)?.in??"default";t[l]??={},t[l][T]??=[],t[l][T].push(o),s[c]??={},s[c][T]??=[],s[c][T].push(o)}),{horiz:Object.values(N(t,"horizontal")).filter(o=>o.length>1),vert:Object.values(N(s,"vertical")).filter(o=>o.length>1)}}),[h,i]=v.reduce(([u,t],{horiz:s,vert:o})=>[[...u,...s],[...t,...o]],[[],[]]),r=new Set;G.forEach(u=>u.members.forEach(t=>r.add(t)));const a=gt(u=>u.filter(t=>!t.some(s=>r.has(s))),"dropOverlapping"),f=a(h),e=a(i);return G.forEach(u=>{u.members.length<2||(u.direction==="row"?f.push([...u.members]):e.push([...u.members]))}),{horizontal:f,vertical:e}}gt(Ve,"getAlignments");function ze(L,b,A=[]){const G=[],N=b.getConfigField("iconSize"),v=b.getConfigField("idealEdgeLengthMultiplier"),h=v*N,i=new Set;A.forEach(f=>{for(let e=0;e`${f[0]},${f[1]}`,"posToStr"),a=gt(f=>f.split(",").map(e=>parseInt(e)),"strToPos");return L.forEach(f=>{const e=Object.fromEntries(Object.entries(f).map(([o,c])=>[r(c),o])),u=[r([0,0])],t={},s={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;u.length>0;){const o=u.shift();if(o){t[o]=1;const c=e[o];if(c){const l=a(o);Object.entries(s).forEach(([T,g])=>{const d=r([l[0]+g[0],l[1]+g[1]]),C=e[d];if(C&&!t[d]){if(u.push(d),i.has(`${c}|${C}`))return;G.push({[xe[T]]:C,[xe[Tr(T)]]:c,gap:v*N})}})}}}}),G}gt(ze,"getRelativeConstraints");function Be(L,b,A,G,N,{spatialMaps:v,groupAlignments:h}){return new Promise(i=>{const r=sr("body").append("div").attr("id","cy").attr("style","display:none"),a=Fe({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}}});r.remove(),He(A,a),Ue(L,a,N),Ye(b,a,N),We(G,a);const f=N.getLayoutHints(),e=Ve(N,v,h,f),u=ze(v,N,f),t=N.getConfigField("iconSize"),s=N.getConfigField("idealEdgeLengthMultiplier")*t,o=.5*t,c=N.getConfigField("edgeElasticity"),l=N.getConfigField("seed"),T=a.layout({name:"fcose",quality:"proof",randomize:N.getConfigField("randomize"),nodeSeparation:N.getConfigField("nodeSeparation"),numIter:N.getConfigField("numIter"),styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(g){const[d,C]=g.connectedNodes(),{parent:S}=ie(d),{parent:w}=ie(C);return S===w?s:o},edgeElasticity(g){const[d,C]=g.connectedNodes(),{parent:S}=ie(d),{parent:w}=ie(C);return S===w?c:.001},alignmentConstraint:e,relativePlacementConstraint:u});T.one("layoutstop",()=>{function g(d,C,S,w){let P,B;const{x:U,y:V}=d,{x:M,y:_}=C;B=(w-V+(U-S)*(V-_)/(U-M))/Math.sqrt(1+Math.pow((V-_)/(U-M),2)),P=Math.sqrt(Math.pow(w-V,2)+Math.pow(S-U,2)-Math.pow(B,2));const n=Math.sqrt(Math.pow(M-U,2)+Math.pow(_-V,2));P=P/n;let E=(M-U)*(w-V)-(_-V)*(S-U);switch(!0){case E>=0:E=1;break;case E<0:E=-1;break}let p=(M-U)*(S-U)+(_-V)*(w-V);switch(!0){case p>=0:p=1;break;case p<0:p=-1;break}return B=Math.abs(B)*E,P=P*p,{distances:B,weights:P}}gt(g,"getSegmentWeights"),a.startBatch();for(const d of Object.values(a.edges()))if(d.data?.()){const{x:C,y:S}=d.source().position(),{x:w,y:P}=d.target().position();if(C!==w&&S!==P){const B=d.sourceEndpoint(),U=d.targetEndpoint(),{sourceDir:V}=be(d),[M,_]=qt(V)?[B.x,U.y]:[U.x,B.y],{weights:n,distances:E}=g(B,U,M,_);d.style("segment-distances",E),d.style("segment-weights",n)}}a.endBatch(),ye(l,()=>T.run())});try{ye(l,()=>T.run())}catch(g){throw g instanceof RangeError&&g.message.includes("Invalid array length")?new Error("Architecture layout failed: a declared `align row|column` directive likely contradicts the edge directions, or two declared alignments overlap on a shared node. Check that the order of members in each `align` chain is consistent with the edges between them, and that no node appears in two `align` directives along the same axis."):g}a.ready(g=>{Se.info("Ready",g),i(a)})})}gt(Be,"layoutArchitecture");var Gr=gt(async(L,b,A,G)=>{const N=G.db;N.setDiagramId(b);const v=N.getServices(),h=N.getJunctions(),i=N.getGroups(),r=N.getEdges(),a=N.getDataStructures(),f=qe(b),e=f.append("g");e.attr("class","architecture-edges");const u=f.append("g");u.attr("class","architecture-services");const t=f.append("g");t.attr("class","architecture-groups"),await br(N,u,v,b),Pr(N,u,h,b);const s=await Be(v,h,i,r,N,a);await Sr(e,s,N,b),await Fr(t,s,N,b),Xe(N,s),Qe(void 0,f,N.getConfigField("padding"),N.getConfigField("useMaxWidth"))},"draw"),Ur={draw:Gr},zr={parser:Ge,get db(){return new Pe},renderer:Ur,styles:Rr};export{zr as diagram}; diff --git a/apps/kimi-code/dist-web/assets/blockDiagram-677ZJIJ3-CGAoZfe5.js b/apps/kimi-code/dist-web/assets/blockDiagram-677ZJIJ3--KepqvbS.js similarity index 86% rename from apps/kimi-code/dist-web/assets/blockDiagram-677ZJIJ3-CGAoZfe5.js rename to apps/kimi-code/dist-web/assets/blockDiagram-677ZJIJ3--KepqvbS.js index 92aa211e9..9ea46be2b 100644 --- a/apps/kimi-code/dist-web/assets/blockDiagram-677ZJIJ3-CGAoZfe5.js +++ b/apps/kimi-code/dist-web/assets/blockDiagram-677ZJIJ3--KepqvbS.js @@ -1,4 +1,4 @@ -import{g as de}from"./chunk-5VM5RSS4-D5gZPx0N.js";import{aA as pe,aB as Kt,aC as fe,aD as xe,aE as ye,aF as be,aG as we,aH as me,aI as Se,aJ as Le,aK as ke,aL as ve,aM as Ee,aN as _e,aO as Te,aP as De,aQ as Be,aR as Ne,aS as Ie,aT as Ce,aU as Oe,aV as Re,aW as Ae,aX as ze,aY as Me,_ as g,y as rt,d as D,e as Pe,l as k,p as Fe,r as We,c as R,aZ as Ye,a7 as He,a8 as Ke,L as Ue,a_ as M,a$ as kt,b0 as Q,as as Xe,x as $,k as Ve,b1 as je,i as Ct,b2 as Ot,b3 as Ge}from"./mermaid.core-CgZTgv7Y.js";import{G as Ze}from"./graph-DOmOIIwC.js";import{c as qe}from"./channel-IY5GdLm-.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";function Je(e){return Array.isArray(e)}function Qe(e){if(pe(e))return e;const t=Kt(e);if(!$e(e))return{};if(Je(e)){const s=Array.from(e);return e.length>0&&typeof e[0]=="string"&&Object.hasOwn(e,"index")&&(s.index=e.index,s.input=e.input),s}if(fe(e)){const s=e,i=s.constructor;return new i(s.buffer,s.byteOffset,s.length)}if(t==="[object ArrayBuffer]")return new ArrayBuffer(e.byteLength);if(t==="[object DataView]"){const s=e,i=s.buffer,c=s.byteOffset,r=s.byteLength,n=new ArrayBuffer(r),l=new Uint8Array(i,c,r);return new Uint8Array(n).set(l),new DataView(n)}if(t==="[object Boolean]"||t==="[object Number]"||t==="[object String]"){const s=e.constructor,i=new s(e.valueOf());return t==="[object String]"?er(i,e):xt(i,e),i}if(t==="[object Date]")return new Date(Number(e));if(t==="[object RegExp]"){const s=e,i=new RegExp(s.source,s.flags);return i.lastIndex=s.lastIndex,i}if(t==="[object Symbol]")return Object(Symbol.prototype.valueOf.call(e));if(t==="[object Map]"){const s=e,i=new Map;return s.forEach((c,r)=>{i.set(r,c)}),i}if(t==="[object Set]"){const s=e,i=new Set;return s.forEach(c=>{i.add(c)}),i}if(t==="[object Arguments]"){const s=e,i={};return xt(i,s),i.length=s.length,i[Symbol.iterator]=s[Symbol.iterator],i}const a={};return rr(a,e),xt(a,e),tr(a,e),a}function $e(e){switch(Kt(e)){case Me:case ze:case Ae:case Re:case Oe:case Ce:case Ie:case Ne:case Be:case De:case Te:case _e:case Ee:case ve:case ke:case Le:case Se:case me:case we:case be:case ye:case xe:return!0;default:return!1}}function xt(e,t){for(const a in t)Object.hasOwn(t,a)&&(e[a]=t[a])}function tr(e,t){const a=Object.getOwnPropertySymbols(t);for(let s=0;s=a)&&(e[s]=t[s])}function rr(e,t){const a=Object.getPrototypeOf(t);a!==null&&typeof t.constructor=="function"&&Object.setPrototypeOf(e,a)}var bt=(function(){var e=g(function(T,m,p,x){for(p=p||{},x=T.length;x--;p[T[x]]=m);return p},"o"),t=[1,15],a=[1,7],s=[1,13],i=[1,14],c=[1,19],r=[1,16],n=[1,17],l=[1,18],u=[8,30],h=[8,10,21,28,29,30,31,39,43,46],d=[1,23],b=[1,24],w=[8,10,15,16,21,28,29,30,31,39,43,46],y=[8,10,15,16,21,27,28,29,30,31,39,43,46],v=[1,49],S={trace:g(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:g(function(m,p,x,L,E,o,F){var f=o.length-1;switch(E){case 4:L.getLogger().debug("Rule: separator (NL) ");break;case 5:L.getLogger().debug("Rule: separator (Space) ");break;case 6:L.getLogger().debug("Rule: separator (EOF) ");break;case 7:L.getLogger().debug("Rule: hierarchy: ",o[f-1]),L.setHierarchy(o[f-1]);break;case 8:L.getLogger().debug("Stop NL ");break;case 9:L.getLogger().debug("Stop EOF ");break;case 10:L.getLogger().debug("Stop NL2 ");break;case 11:L.getLogger().debug("Stop EOF2 ");break;case 12:L.getLogger().debug("Rule: statement: ",o[f]),typeof o[f].length=="number"?this.$=o[f]:this.$=[o[f]];break;case 13:L.getLogger().debug("Rule: statement #2: ",o[f-1]),this.$=[o[f-1]].concat(o[f]);break;case 14:L.getLogger().debug("Rule: link: ",o[f],m),this.$={edgeTypeStr:o[f],label:""};break;case 15:L.getLogger().debug("Rule: LABEL link: ",o[f-3],o[f-1],o[f]),this.$={edgeTypeStr:o[f],label:o[f-1]};break;case 18:const C=parseInt(o[f]),Z=L.generateId();this.$={id:Z,type:"space",label:"",width:C,children:[]};break;case 23:L.getLogger().debug("Rule: (nodeStatement link node) ",o[f-2],o[f-1],o[f]," typestr: ",o[f-1].edgeTypeStr);const V=L.edgeStrToEdgeData(o[f-1].edgeTypeStr),at=L.edgeStrToEdgeStartData(o[f-1].edgeTypeStr),gt=L.edgeStrToThickness(o[f-1].edgeTypeStr),O=L.edgeStrToPattern(o[f-1].edgeTypeStr);this.$=[{id:o[f-2].id,label:o[f-2].label,type:o[f-2].type,directions:o[f-2].directions},{id:o[f-2].id+"-"+o[f].id,start:o[f-2].id,end:o[f].id,label:o[f-1].label,type:"edge",thickness:gt,pattern:O,directions:o[f].directions,arrowTypeEnd:V,arrowTypeStart:at},{id:o[f].id,label:o[f].label,type:L.typeStr2Type(o[f].typeStr),directions:o[f].directions}];break;case 24:L.getLogger().debug("Rule: nodeStatement (abc88 node size) ",o[f-1],o[f]),this.$={id:o[f-1].id,label:o[f-1].label,type:L.typeStr2Type(o[f-1].typeStr),directions:o[f-1].directions,widthInColumns:parseInt(o[f],10)};break;case 25:L.getLogger().debug("Rule: nodeStatement (node) ",o[f]),this.$={id:o[f].id,label:o[f].label,type:L.typeStr2Type(o[f].typeStr),directions:o[f].directions,widthInColumns:1};break;case 26:L.getLogger().debug("APA123",this?this:"na"),L.getLogger().debug("COLUMNS: ",o[f]),this.$={type:"column-setting",columns:o[f]==="auto"?-1:parseInt(o[f])};break;case 27:L.getLogger().debug("Rule: id-block statement : ",o[f-2],o[f-1]),L.generateId(),this.$={...o[f-2],type:"composite",children:o[f-1]};break;case 28:L.getLogger().debug("Rule: blockStatement : ",o[f-2],o[f-1],o[f]);const j=L.generateId();this.$={id:j,type:"composite",label:"",children:o[f-1]};break;case 29:L.getLogger().debug("Rule: node (NODE_ID separator): ",o[f]),this.$={id:o[f]};break;case 30:L.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",o[f-1],o[f]),this.$={id:o[f-1],label:o[f].label,typeStr:o[f].typeStr,directions:o[f].directions};break;case 31:L.getLogger().debug("Rule: dirList: ",o[f]),this.$=[o[f]];break;case 32:L.getLogger().debug("Rule: dirList: ",o[f-1],o[f]),this.$=[o[f-1]].concat(o[f]);break;case 33:L.getLogger().debug("Rule: nodeShapeNLabel: ",o[f-2],o[f-1],o[f]),this.$={typeStr:o[f-2]+o[f],label:o[f-1]};break;case 34:L.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",o[f-3],o[f-2]," #3:",o[f-1],o[f]),this.$={typeStr:o[f-3]+o[f],label:o[f-2],directions:o[f-1]};break;case 35:case 36:this.$={type:"classDef",id:o[f-1].trim(),css:o[f].trim()};break;case 37:this.$={type:"applyClass",id:o[f-1].trim(),styleClass:o[f].trim()};break;case 38:this.$={type:"applyStyles",id:o[f-1].trim(),stylesStr:o[f].trim()};break}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{10:t,11:3,13:4,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:s,29:i,31:c,39:r,43:n,46:l},{8:[1,20]},e(u,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,10:t,21:a,28:s,29:i,31:c,39:r,43:n,46:l}),e(h,[2,16],{14:22,15:d,16:b}),e(h,[2,17]),e(h,[2,18]),e(h,[2,19]),e(h,[2,20]),e(h,[2,21]),e(h,[2,22]),e(w,[2,25],{27:[1,25]}),e(h,[2,26]),{19:26,26:12,31:c},{10:t,11:27,13:4,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:s,29:i,31:c,39:r,43:n,46:l},{40:[1,28],42:[1,29]},{44:[1,30]},{47:[1,31]},e(y,[2,29],{32:32,35:[1,33],37:[1,34]}),{1:[2,7]},e(u,[2,13]),{26:35,31:c},{31:[2,14]},{17:[1,36]},e(w,[2,24]),{10:t,11:37,13:4,14:22,15:d,16:b,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:s,29:i,31:c,39:r,43:n,46:l},{30:[1,38]},{41:[1,39]},{41:[1,40]},{45:[1,41]},{48:[1,42]},e(y,[2,30]),{18:[1,43]},{18:[1,44]},e(w,[2,23]),{18:[1,45]},{30:[1,46]},e(h,[2,28]),e(h,[2,35]),e(h,[2,36]),e(h,[2,37]),e(h,[2,38]),{36:[1,47]},{33:48,34:v},{15:[1,50]},e(h,[2,27]),e(y,[2,33]),{38:[1,51]},{33:52,34:v,38:[2,31]},{31:[2,15]},e(y,[2,34]),{38:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:g(function(m,p){if(p.recoverable)this.trace(m);else{var x=new Error(m);throw x.hash=p,x}},"parseError"),parse:g(function(m){var p=this,x=[0],L=[],E=[null],o=[],F=this.table,f="",C=0,Z=0,V=2,at=1,gt=o.slice.call(arguments,1),O=Object.create(this.lexer),j={yy:{}};for(var ut in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ut)&&(j.yy[ut]=this.yy[ut]);O.setInput(m,j.yy),j.yy.lexer=O,j.yy.parser=this,typeof O.yylloc>"u"&&(O.yylloc={});var dt=O.yylloc;o.push(dt);var ge=O.options&&O.options.ranges;typeof j.yy.parseError=="function"?this.parseError=j.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ue(W){x.length=x.length-2*W,E.length=E.length-W,o.length=o.length-W}g(ue,"popStack");function Nt(){var W;return W=L.pop()||O.lex()||at,typeof W!="number"&&(W instanceof Array&&(L=W,W=L.pop()),W=p.symbols_[W]||W),W}g(Nt,"lex");for(var P,q,H,pt,J={},st,G,It,it;;){if(q=x[x.length-1],this.defaultActions[q]?H=this.defaultActions[q]:((P===null||typeof P>"u")&&(P=Nt()),H=F[q]&&F[q][P]),typeof H>"u"||!H.length||!H[0]){var ft="";it=[];for(st in F[q])this.terminals_[st]&&st>V&&it.push("'"+this.terminals_[st]+"'");O.showPosition?ft="Parse error on line "+(C+1)+`: +import{g as de}from"./chunk-5VM5RSS4-DxIYPYOn.js";import{aA as pe,aB as Kt,aC as fe,aD as xe,aE as ye,aF as be,aG as we,aH as me,aI as Se,aJ as Le,aK as ke,aL as ve,aM as Ee,aN as _e,aO as Te,aP as De,aQ as Be,aR as Ne,aS as Ie,aT as Ce,aU as Oe,aV as Re,aW as Ae,aX as ze,aY as Me,_ as g,z as rt,d as D,e as Pe,l as k,q as Fe,t as We,c as R,aZ as Ye,a7 as He,a8 as Ke,a3 as Ue,a_ as M,a$ as kt,b0 as Q,as as Xe,y as $,k as Ve,b1 as je,i as Ct,b2 as Ot,b3 as Ge}from"./mermaid.core-B_UcP3X_.js";import{G as Ze}from"./graph-DOmOIIwC.js";import{c as qe}from"./channel-Bw0eTBly.js";import"./index-BOtIzGLC.js";function Je(e){return Array.isArray(e)}function Qe(e){if(pe(e))return e;const t=Kt(e);if(!$e(e))return{};if(Je(e)){const s=Array.from(e);return e.length>0&&typeof e[0]=="string"&&Object.hasOwn(e,"index")&&(s.index=e.index,s.input=e.input),s}if(fe(e)){const s=e,i=s.constructor;return new i(s.buffer,s.byteOffset,s.length)}if(t==="[object ArrayBuffer]")return new ArrayBuffer(e.byteLength);if(t==="[object DataView]"){const s=e,i=s.buffer,c=s.byteOffset,r=s.byteLength,n=new ArrayBuffer(r),l=new Uint8Array(i,c,r);return new Uint8Array(n).set(l),new DataView(n)}if(t==="[object Boolean]"||t==="[object Number]"||t==="[object String]"){const s=e.constructor,i=new s(e.valueOf());return t==="[object String]"?er(i,e):xt(i,e),i}if(t==="[object Date]")return new Date(Number(e));if(t==="[object RegExp]"){const s=e,i=new RegExp(s.source,s.flags);return i.lastIndex=s.lastIndex,i}if(t==="[object Symbol]")return Object(Symbol.prototype.valueOf.call(e));if(t==="[object Map]"){const s=e,i=new Map;return s.forEach((c,r)=>{i.set(r,c)}),i}if(t==="[object Set]"){const s=e,i=new Set;return s.forEach(c=>{i.add(c)}),i}if(t==="[object Arguments]"){const s=e,i={};return xt(i,s),i.length=s.length,i[Symbol.iterator]=s[Symbol.iterator],i}const a={};return rr(a,e),xt(a,e),tr(a,e),a}function $e(e){switch(Kt(e)){case Me:case ze:case Ae:case Re:case Oe:case Ce:case Ie:case Ne:case Be:case De:case Te:case _e:case Ee:case ve:case ke:case Le:case Se:case me:case we:case be:case ye:case xe:return!0;default:return!1}}function xt(e,t){for(const a in t)Object.hasOwn(t,a)&&(e[a]=t[a])}function tr(e,t){const a=Object.getOwnPropertySymbols(t);for(let s=0;s=a)&&(e[s]=t[s])}function rr(e,t){const a=Object.getPrototypeOf(t);a!==null&&typeof t.constructor=="function"&&Object.setPrototypeOf(e,a)}var bt=(function(){var e=g(function(T,m,p,x){for(p=p||{},x=T.length;x--;p[T[x]]=m);return p},"o"),t=[1,15],a=[1,7],s=[1,13],i=[1,14],c=[1,19],r=[1,16],n=[1,17],l=[1,18],u=[8,30],h=[8,10,21,28,29,30,31,39,43,46],d=[1,23],b=[1,24],w=[8,10,15,16,21,28,29,30,31,39,43,46],y=[8,10,15,16,21,27,28,29,30,31,39,43,46],v=[1,49],S={trace:g(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:g(function(m,p,x,L,E,o,F){var f=o.length-1;switch(E){case 4:L.getLogger().debug("Rule: separator (NL) ");break;case 5:L.getLogger().debug("Rule: separator (Space) ");break;case 6:L.getLogger().debug("Rule: separator (EOF) ");break;case 7:L.getLogger().debug("Rule: hierarchy: ",o[f-1]),L.setHierarchy(o[f-1]);break;case 8:L.getLogger().debug("Stop NL ");break;case 9:L.getLogger().debug("Stop EOF ");break;case 10:L.getLogger().debug("Stop NL2 ");break;case 11:L.getLogger().debug("Stop EOF2 ");break;case 12:L.getLogger().debug("Rule: statement: ",o[f]),typeof o[f].length=="number"?this.$=o[f]:this.$=[o[f]];break;case 13:L.getLogger().debug("Rule: statement #2: ",o[f-1]),this.$=[o[f-1]].concat(o[f]);break;case 14:L.getLogger().debug("Rule: link: ",o[f],m),this.$={edgeTypeStr:o[f],label:""};break;case 15:L.getLogger().debug("Rule: LABEL link: ",o[f-3],o[f-1],o[f]),this.$={edgeTypeStr:o[f],label:o[f-1]};break;case 18:const C=parseInt(o[f]),Z=L.generateId();this.$={id:Z,type:"space",label:"",width:C,children:[]};break;case 23:L.getLogger().debug("Rule: (nodeStatement link node) ",o[f-2],o[f-1],o[f]," typestr: ",o[f-1].edgeTypeStr);const V=L.edgeStrToEdgeData(o[f-1].edgeTypeStr),at=L.edgeStrToEdgeStartData(o[f-1].edgeTypeStr),gt=L.edgeStrToThickness(o[f-1].edgeTypeStr),O=L.edgeStrToPattern(o[f-1].edgeTypeStr);this.$=[{id:o[f-2].id,label:o[f-2].label,type:o[f-2].type,directions:o[f-2].directions},{id:o[f-2].id+"-"+o[f].id,start:o[f-2].id,end:o[f].id,label:o[f-1].label,type:"edge",thickness:gt,pattern:O,directions:o[f].directions,arrowTypeEnd:V,arrowTypeStart:at},{id:o[f].id,label:o[f].label,type:L.typeStr2Type(o[f].typeStr),directions:o[f].directions}];break;case 24:L.getLogger().debug("Rule: nodeStatement (abc88 node size) ",o[f-1],o[f]),this.$={id:o[f-1].id,label:o[f-1].label,type:L.typeStr2Type(o[f-1].typeStr),directions:o[f-1].directions,widthInColumns:parseInt(o[f],10)};break;case 25:L.getLogger().debug("Rule: nodeStatement (node) ",o[f]),this.$={id:o[f].id,label:o[f].label,type:L.typeStr2Type(o[f].typeStr),directions:o[f].directions,widthInColumns:1};break;case 26:L.getLogger().debug("APA123",this?this:"na"),L.getLogger().debug("COLUMNS: ",o[f]),this.$={type:"column-setting",columns:o[f]==="auto"?-1:parseInt(o[f])};break;case 27:L.getLogger().debug("Rule: id-block statement : ",o[f-2],o[f-1]),L.generateId(),this.$={...o[f-2],type:"composite",children:o[f-1]};break;case 28:L.getLogger().debug("Rule: blockStatement : ",o[f-2],o[f-1],o[f]);const j=L.generateId();this.$={id:j,type:"composite",label:"",children:o[f-1]};break;case 29:L.getLogger().debug("Rule: node (NODE_ID separator): ",o[f]),this.$={id:o[f]};break;case 30:L.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",o[f-1],o[f]),this.$={id:o[f-1],label:o[f].label,typeStr:o[f].typeStr,directions:o[f].directions};break;case 31:L.getLogger().debug("Rule: dirList: ",o[f]),this.$=[o[f]];break;case 32:L.getLogger().debug("Rule: dirList: ",o[f-1],o[f]),this.$=[o[f-1]].concat(o[f]);break;case 33:L.getLogger().debug("Rule: nodeShapeNLabel: ",o[f-2],o[f-1],o[f]),this.$={typeStr:o[f-2]+o[f],label:o[f-1]};break;case 34:L.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",o[f-3],o[f-2]," #3:",o[f-1],o[f]),this.$={typeStr:o[f-3]+o[f],label:o[f-2],directions:o[f-1]};break;case 35:case 36:this.$={type:"classDef",id:o[f-1].trim(),css:o[f].trim()};break;case 37:this.$={type:"applyClass",id:o[f-1].trim(),styleClass:o[f].trim()};break;case 38:this.$={type:"applyStyles",id:o[f-1].trim(),stylesStr:o[f].trim()};break}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{10:t,11:3,13:4,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:s,29:i,31:c,39:r,43:n,46:l},{8:[1,20]},e(u,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,10:t,21:a,28:s,29:i,31:c,39:r,43:n,46:l}),e(h,[2,16],{14:22,15:d,16:b}),e(h,[2,17]),e(h,[2,18]),e(h,[2,19]),e(h,[2,20]),e(h,[2,21]),e(h,[2,22]),e(w,[2,25],{27:[1,25]}),e(h,[2,26]),{19:26,26:12,31:c},{10:t,11:27,13:4,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:s,29:i,31:c,39:r,43:n,46:l},{40:[1,28],42:[1,29]},{44:[1,30]},{47:[1,31]},e(y,[2,29],{32:32,35:[1,33],37:[1,34]}),{1:[2,7]},e(u,[2,13]),{26:35,31:c},{31:[2,14]},{17:[1,36]},e(w,[2,24]),{10:t,11:37,13:4,14:22,15:d,16:b,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:s,29:i,31:c,39:r,43:n,46:l},{30:[1,38]},{41:[1,39]},{41:[1,40]},{45:[1,41]},{48:[1,42]},e(y,[2,30]),{18:[1,43]},{18:[1,44]},e(w,[2,23]),{18:[1,45]},{30:[1,46]},e(h,[2,28]),e(h,[2,35]),e(h,[2,36]),e(h,[2,37]),e(h,[2,38]),{36:[1,47]},{33:48,34:v},{15:[1,50]},e(h,[2,27]),e(y,[2,33]),{38:[1,51]},{33:52,34:v,38:[2,31]},{31:[2,15]},e(y,[2,34]),{38:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:g(function(m,p){if(p.recoverable)this.trace(m);else{var x=new Error(m);throw x.hash=p,x}},"parseError"),parse:g(function(m){var p=this,x=[0],L=[],E=[null],o=[],F=this.table,f="",C=0,Z=0,V=2,at=1,gt=o.slice.call(arguments,1),O=Object.create(this.lexer),j={yy:{}};for(var ut in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ut)&&(j.yy[ut]=this.yy[ut]);O.setInput(m,j.yy),j.yy.lexer=O,j.yy.parser=this,typeof O.yylloc>"u"&&(O.yylloc={});var dt=O.yylloc;o.push(dt);var ge=O.options&&O.options.ranges;typeof j.yy.parseError=="function"?this.parseError=j.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ue(W){x.length=x.length-2*W,E.length=E.length-W,o.length=o.length-W}g(ue,"popStack");function Nt(){var W;return W=L.pop()||O.lex()||at,typeof W!="number"&&(W instanceof Array&&(L=W,W=L.pop()),W=p.symbols_[W]||W),W}g(Nt,"lex");for(var P,q,H,pt,J={},st,G,It,it;;){if(q=x[x.length-1],this.defaultActions[q]?H=this.defaultActions[q]:((P===null||typeof P>"u")&&(P=Nt()),H=F[q]&&F[q][P]),typeof H>"u"||!H.length||!H[0]){var ft="";it=[];for(st in F[q])this.terminals_[st]&&st>V&&it.push("'"+this.terminals_[st]+"'");O.showPosition?ft="Parse error on line "+(C+1)+`: `+O.showPosition()+` Expecting `+it.join(", ")+", got '"+(this.terminals_[P]||P)+"'":ft="Parse error on line "+(C+1)+": Unexpected "+(P==at?"end of input":"'"+(this.terminals_[P]||P)+"'"),this.parseError(ft,{text:O.match,token:this.terminals_[P]||P,line:O.yylineno,loc:dt,expected:it})}if(H[0]instanceof Array&&H.length>1)throw new Error("Parse Error: multiple actions possible at state: "+q+", token: "+P);switch(H[0]){case 1:x.push(P),E.push(O.yytext),o.push(O.yylloc),x.push(H[1]),P=null,Z=O.yyleng,f=O.yytext,C=O.yylineno,dt=O.yylloc;break;case 2:if(G=this.productions_[H[1]][1],J.$=E[E.length-G],J._$={first_line:o[o.length-(G||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(G||1)].first_column,last_column:o[o.length-1].last_column},ge&&(J._$.range=[o[o.length-(G||1)].range[0],o[o.length-1].range[1]]),pt=this.performAction.apply(J,[f,Z,C,j.yy,H[1],E,o].concat(gt)),typeof pt<"u")return pt;G&&(x=x.slice(0,-1*G*2),E=E.slice(0,-1*G),o=o.slice(0,-1*G)),x.push(this.productions_[H[1]][0]),E.push(J.$),o.push(J._$),It=F[x[x.length-2]][x[x.length-1]],x.push(It);break;case 3:return!0}}return!0},"parse")},N=(function(){var T={EOF:1,parseError:g(function(p,x){if(this.yy.parser)this.yy.parser.parseError(p,x);else throw new Error(p)},"parseError"),setInput:g(function(m,p){return this.yy=p||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:g(function(){var m=this._input[0];this.yytext+=m,this.yyleng++,this.offset++,this.match+=m,this.matched+=m;var p=m.match(/(?:\r\n?|\n).*/g);return p?(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:g(function(m){var p=m.length,x=m.split(/(?:\r\n?|\n)/g);this._input=m+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-p),this.offset-=p;var L=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),x.length-1&&(this.yylineno-=x.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:x?(x.length===L.length?this.yylloc.first_column:0)+L[L.length-x.length].length-x[0].length:this.yylloc.first_column-p},this.options.ranges&&(this.yylloc.range=[E[0],E[0]+this.yyleng-p]),this.yyleng=this.yytext.length,this},"unput"),more:g(function(){return this._more=!0,this},"more"),reject:g(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:g(function(m){this.unput(this.match.slice(m))},"less"),pastInput:g(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:g(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:g(function(){var m=this.pastInput(),p=new Array(m.length+1).join("-");return m+this.upcomingInput()+` @@ -129,4 +129,4 @@ Expecting `+it.join(", ")+", got '"+(this.terminals_[P]||P)+"'":ft="Parse error `,"getStyles"),Er=vr,_r=g((e,t,a,s)=>{t.forEach(i=>{zr[i](e,a,s)})},"insertMarkers"),Tr=g((e,t,a)=>{k.trace("Making markers for ",a),e.append("defs").append("marker").attr("id",a+"_"+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",a+"_"+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"),Dr=g((e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+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",a+"_"+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"),Br=g((e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+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",a+"_"+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"),Nr=g((e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+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",a+"_"+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"),Ir=g((e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+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",a+"_"+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"),Cr=g((e,t,a)=>{e.append("marker").attr("id",a+"_"+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",a+"_"+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"),Or=g((e,t,a)=>{e.append("marker").attr("id",a+"_"+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",a+"_"+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"),Rr=g((e,t,a)=>{e.append("marker").attr("id",a+"_"+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",a+"_"+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"),Ar=g((e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+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"),zr={extension:Tr,composition:Dr,aggregation:Br,dependency:Nr,lollipop:Ir,point:Cr,circle:Or,cross:Rr,barb:Ar},Mr=_r;function mt(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};const a=t%e,s=Math.floor(t/e);return{px:a,py:s}}g(mt,"calculateBlockPosition");var Pr=g(e=>{let t=0,a=0;for(const s of e.children){const{width:i,height:c,x:r,y:n}=s.size??{width:0,height:0,x:0,y:0};if(k.debug("getMaxChildSize abc95 child:",s.id,"width:",i,"height:",c,"x:",r,"y:",n,s.type),s.type==="space")continue;const l=i/(s.widthInColumns??1);l>t&&(t=l),c>a&&(a=c)}return{width:t,height:a}},"getMaxChildSize");function lt(e,t,a=0,s=0,i=8){k.debug("setBlockSizes abc95 (start)",e.id,e?.size?.x,"block width =",e?.size,"siblingWidth",a),e?.size?.width||(e.size={width:a,height:s,x:0,y:0});let c=0,r=0;if(e.children?.length>0){for(const y of e.children)lt(y,t,0,0,i);const n=Pr(e);c=n.width,r=n.height,k.debug("setBlockSizes abc95 maxWidth of",e.id,":s children is ",c,r);for(const y of e.children)y.size&&(k.debug(`abc95 Setting size of children of ${e.id} id=${y.id} ${c} ${r} ${JSON.stringify(y.size)}`),y.size.width=c*(y.widthInColumns??1)+i*((y.widthInColumns??1)-1),y.size.height=r,y.size.x=0,y.size.y=0,k.debug(`abc95 updating size of ${e.id} children child:${y.id} maxWidth:${c} maxHeight:${r}`));for(const y of e.children)lt(y,t,c,r,i);const l=e.columns??-1;let u=0;for(const y of e.children)u+=y.widthInColumns??1;let h=e.children.length;l>0&&l0?Math.min(e.children.length,l):e.children.length;if(y>0){const v=(b-y*i-i)/y;k.debug("abc95 (growing to fit) width",e.id,b,e.size?.width,v);for(const S of e.children)S.size&&(S.size.width=v)}}e.size={width:b,height:w,x:0,y:0}}k.debug("setBlockSizes abc94 (done)",e.id,e?.size?.x,e?.size?.width,e?.size?.y,e?.size?.height)}g(lt,"setBlockSizes");function Tt(e,t,a=8){k.debug(`abc85 layout blocks (=>layoutBlocks) ${e.id} x: ${e?.size?.x} y: ${e?.size?.y} width: ${e?.size?.width}`);const s=e.columns??-1;if(k.debug("layoutBlocks columns abc95",e.id,"=>",s,e),e.children&&e.children.length>0){const i=e?.children[0]?.size?.width??0,c=e.children.length*i+(e.children.length-1)*a;k.debug("widthOfChildren 88",c,"posX");const r=new Map;{let d=0;for(const b of e.children){if(!b.size)continue;const{py:w}=mt(s,d),y=r.get(w)??0;b.size.height>y&&r.set(w,b.size.height);let v=b?.widthInColumns??1;s>0&&(v=Math.min(v,s-d%s)),d+=v}}const n=new Map;{let d=0;const b=[...r.keys()].sort((w,y)=>w-y);for(const w of b)n.set(w,d),d+=(r.get(w)??0)+a}let l=0;k.debug("abc91 block?.size?.x",e.id,e?.size?.x);let u=e?.size?.x?e?.size?.x+(-e?.size?.width/2||0):-a,h=0;for(const d of e.children){const b=e;if(!d.size)continue;const{width:w,height:y}=d.size,{px:v,py:S}=mt(s,l);if(S!=h&&(h=S,u=e?.size?.x?e?.size?.x+(-e?.size?.width/2||0):-a,k.debug("New row in layout for block",e.id," and child ",d.id,h)),k.debug(`abc89 layout blocks (child) id: ${d.id} Pos: ${l} (px, py) ${v},${S} (${b?.size?.x},${b?.size?.y}) parent: ${b.id} width: ${w}${a}`),b.size){const _=w/2;d.size.x=u+a+_,k.debug(`abc91 layout blocks (calc) px, pyid:${d.id} startingPos=X${u} new startingPosX${d.size.x} ${_} padding=${a} width=${w} halfWidth=${_} => x:${d.size.x} y:${d.size.y} ${d.widthInColumns} (width * (child?.w || 1)) / 2 ${w*(d?.widthInColumns??1)/2}`),u=d.size.x+_;const T=n.get(S)??0,m=r.get(S)??y;d.size.y=b.size.y-b.size.height/2+T+m/2+a,k.debug(`abc88 layout blocks (calc) px, pyid:${d.id}startingPosX${u}${a}${_}=>x:${d.size.x}y:${d.size.y}${d.widthInColumns}(width * (child?.w || 1)) / 2${w*(d?.widthInColumns??1)/2}`)}d.children&&Tt(d,t,a);let N=d?.widthInColumns??1;s>0&&(N=Math.min(N,s-l%s)),l+=N,k.debug("abc88 columnsPos",d,l)}}k.debug(`layout blocks (<==layoutBlocks) ${e.id} x: ${e?.size?.x} y: ${e?.size?.y} width: ${e?.size?.width}`)}g(Tt,"layoutBlocks");function Dt(e,{minX:t,minY:a,maxX:s,maxY:i}={minX:0,minY:0,maxX:0,maxY:0}){if(e.size&&e.id!=="root"){const{x:c,y:r,width:n,height:l}=e.size;c-n/2s&&(s=c+n/2),r+l/2>i&&(i=r+l/2)}if(e.children)for(const c of e.children)({minX:t,minY:a,maxX:s,maxY:i}=Dt(c,{minX:t,minY:a,maxX:s,maxY:i}));return{minX:t,minY:a,maxX:s,maxY:i}}g(Dt,"findBounds");function Qt(e){const t=e.getBlock("root");if(!t)return;const a=R()?.block?.padding??8;lt(t,e,0,0,a),Tt(t,e,a),k.debug("getBlocks",JSON.stringify(t,null,2));const{minX:s,minY:i,maxX:c,maxY:r}=Dt(t),n=r-i,l=c-s;return{x:s,y:i,width:l,height:n}}g(Qt,"layout");var Fr=g(async(e,t,a,s=!1,i=!1)=>{let c=t||"";typeof c=="object"&&(c=c[0]);const r=R(),n=M(r);return await kt(e,c,{style:a,isTitle:s,useHtmlLabels:n,markdown:!1,isNode:i,width:Number.POSITIVE_INFINITY},r)},"createLabel"),K=Fr,Wr=g((e,t,a,s,i)=>{t.arrowTypeStart&&Mt(e,"start",t.arrowTypeStart,a,s,i),t.arrowTypeEnd&&Mt(e,"end",t.arrowTypeEnd,a,s,i)},"addEdgeMarkers"),Yr={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},Mt=g((e,t,a,s,i,c)=>{const r=Yr[a];if(!r){k.warn(`Unknown arrow type: ${a}`);return}const n=t==="start"?"Start":"End";e.attr(`marker-${t}`,`url(${s}#${i}_${c}-${r}${n})`)},"addEdgeMarker"),St={},z={},Hr=g(async(e,t)=>{const a=R(),s=M(a),i=e.insert("g").attr("class","edgeLabel"),c=i.insert("g").attr("class","label"),r=t.labelType==="markdown",n=await kt(e,t.label,{style:t.labelStyle,useHtmlLabels:s,addSvgBackground:r,isNode:!1,markdown:r,width:r?void 0:Number.POSITIVE_INFINITY},a);c.node().appendChild(n);let l=n.getBBox(),u=l;if(s){const d=n.children[0],b=D(n);l=d.getBoundingClientRect(),u=l,b.attr("width",l.width),b.attr("height",l.height)}else{const d=D(n).select("text").node();d&&typeof d.getBBox=="function"&&(u=d.getBBox())}c.attr("transform",Q(u,s)),St[t.id]=i,t.width=l.width,t.height=l.height;let h;if(t.startLabelLeft){const d=e.insert("g").attr("class","edgeTerminals"),b=d.insert("g").attr("class","inner"),w=await K(b,t.startLabelLeft,t.labelStyle);h=w;let y=w.getBBox();if(s){const v=w.children[0],S=D(w);y=v.getBoundingClientRect(),S.attr("width",y.width),S.attr("height",y.height)}b.attr("transform",Q(y,s)),z[t.id]||(z[t.id]={}),z[t.id].startLeft=d,tt(h,t.startLabelLeft)}if(t.startLabelRight){const d=e.insert("g").attr("class","edgeTerminals"),b=d.insert("g").attr("class","inner"),w=await K(b,t.startLabelRight,t.labelStyle);h=w;let y=w.getBBox();if(s){const v=w.children[0],S=D(w);y=v.getBoundingClientRect(),S.attr("width",y.width),S.attr("height",y.height)}b.attr("transform",Q(y,s)),z[t.id]||(z[t.id]={}),z[t.id].startRight=d,tt(h,t.startLabelRight)}if(t.endLabelLeft){const d=e.insert("g").attr("class","edgeTerminals"),b=d.insert("g").attr("class","inner"),w=await K(d,t.endLabelLeft,t.labelStyle);h=w;let y=w.getBBox();if(s){const v=w.children[0],S=D(w);y=v.getBoundingClientRect(),S.attr("width",y.width),S.attr("height",y.height)}b.attr("transform",Q(y,s)),z[t.id]||(z[t.id]={}),z[t.id].endLeft=d,tt(h,t.endLabelLeft)}if(t.endLabelRight){const d=e.insert("g").attr("class","edgeTerminals"),b=d.insert("g").attr("class","inner"),w=await K(d,t.endLabelRight,t.labelStyle);h=w;let y=w.getBBox();if(s){const v=w.children[0],S=D(w);y=v.getBoundingClientRect(),S.attr("width",y.width),S.attr("height",y.height)}b.attr("transform",Q(y,s)),z[t.id]||(z[t.id]={}),z[t.id].endRight=d,tt(h,t.endLabelRight)}return n},"insertEdgeLabel");function tt(e,t){M(R())&&e&&(e.style.width=t.length*9+"px",e.style.height="12px")}g(tt,"setTerminalWidth");var Kr=g((e,t)=>{k.debug("Moving label abc88 ",e.id,e.label,St[e.id],t);let a=t.updatedPath?t.updatedPath:t.originalPath;const s=R(),{subGraphTitleTotalMargin:i}=Xe(s);if(e.label){const c=St[e.id];let r=e.x,n=e.y;if(a){const l=$.calcLabelPosition(a);k.debug("Moving label "+e.label+" from (",r,",",n,") to (",l.x,",",l.y,") abc88"),t.updatedPath&&(r=l.x,n=l.y)}c.attr("transform",`translate(${r}, ${n+i/2})`)}if(e.startLabelLeft){const c=z[e.id].startLeft;let r=e.x,n=e.y;if(a){const l=$.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",a);r=l.x,n=l.y}c.attr("transform",`translate(${r}, ${n})`)}if(e.startLabelRight){const c=z[e.id].startRight;let r=e.x,n=e.y;if(a){const l=$.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",a);r=l.x,n=l.y}c.attr("transform",`translate(${r}, ${n})`)}if(e.endLabelLeft){const c=z[e.id].endLeft;let r=e.x,n=e.y;if(a){const l=$.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",a);r=l.x,n=l.y}c.attr("transform",`translate(${r}, ${n})`)}if(e.endLabelRight){const c=z[e.id].endRight;let r=e.x,n=e.y;if(a){const l=$.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",a);r=l.x,n=l.y}c.attr("transform",`translate(${r}, ${n})`)}},"positionEdgeLabel"),Ur=g((e,t)=>{const a=e.x,s=e.y,i=Math.abs(t.x-a),c=Math.abs(t.y-s),r=e.width/2,n=e.height/2;return i>=r||c>=n},"outsideNode"),Xr=g((e,t,a)=>{k.debug(`intersection calc abc89: outsidePoint: ${JSON.stringify(t)} insidePoint : ${JSON.stringify(a)} - node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);const s=e.x,i=e.y,c=Math.abs(s-a.x),r=e.width/2;let n=a.xMath.abs(s-t.x)*l){let d=a.y{k.debug("abc88 cutPathAtIntersect",e,t);let a=[],s=e[0],i=!1;return e.forEach(c=>{if(!Ur(t,c)&&!i){const r=Xr(t,s,c);let n=!1;a.forEach(l=>{n=n||l.x===r.x&&l.y===r.y}),a.some(l=>l.x===r.x&&l.y===r.y)||a.push(r),i=!0}else s=c,i||a.push(c)}),a},"cutPathAtIntersect"),Vr=g(function(e,t,a,s,i,c,r){let n=a.points;k.debug("abc88 InsertEdge: edge=",a,"e=",t);let l=!1;const u=c.node(t.v);var h=c.node(t.w);h?.intersect&&u?.intersect&&(n=n.slice(1,a.points.length-1),n.unshift(u.intersect(n[0])),n.push(h.intersect(n[n.length-1]))),a.toCluster&&(k.debug("to cluster abc88",s[a.toCluster]),n=Pt(a.points,s[a.toCluster].node),l=!0),a.fromCluster&&(k.debug("from cluster abc88",s[a.fromCluster]),n=Pt(n.reverse(),s[a.fromCluster].node).reverse(),l=!0);const d=n.filter(m=>!Number.isNaN(m.y));let b=Ke;a.curve&&(i==="graph"||i==="flowchart")&&(b=a.curve);const{x:w,y}=Ye(a),v=He().x(w).y(y).curve(b);let S;switch(a.thickness){case"normal":S="edge-thickness-normal";break;case"thick":S="edge-thickness-thick";break;case"invisible":S="edge-thickness-thick";break;default:S=""}switch(a.pattern){case"solid":S+=" edge-pattern-solid";break;case"dotted":S+=" edge-pattern-dotted";break;case"dashed":S+=" edge-pattern-dashed";break}const N=e.append("path").attr("d",v(d)).attr("id",a.id).attr("class"," "+S+(a.classes?" "+a.classes:"")).attr("style",a.style);let _="";(R().flowchart.arrowMarkerAbsolute||R().state.arrowMarkerAbsolute)&&(_=Ue(!0)),Wr(N,a,_,r,i);let T={};return l&&(T.updatedPath=n),T.originalPath=a.points,T},"insertEdge"),jr=g(e=>{const t=new Set;for(const a of e)switch(a){case"x":t.add("right"),t.add("left");break;case"y":t.add("up"),t.add("down");break;default:t.add(a);break}return t},"expandAndDeduplicateDirections"),Gr=g((e,t,a,s)=>{const i=jr(e),c=2,r=t.height+2*a.padding,n=r/c,l=s??t.width+2*n+a.padding,u=a.padding/2;return i.has("right")&&i.has("left")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:n,y:0},{x:l/2,y:2*u},{x:l-n,y:0},{x:l,y:0},{x:l,y:-r/3},{x:l+2*u,y:-r/2},{x:l,y:-2*r/3},{x:l,y:-r},{x:l-n,y:-r},{x:l/2,y:-r-2*u},{x:n,y:-r},{x:0,y:-r},{x:0,y:-2*r/3},{x:-2*u,y:-r/2},{x:0,y:-r/3}]:i.has("right")&&i.has("left")&&i.has("up")?[{x:n,y:0},{x:l-n,y:0},{x:l,y:-r/2},{x:l-n,y:-r},{x:n,y:-r},{x:0,y:-r/2}]:i.has("right")&&i.has("left")&&i.has("down")?[{x:0,y:0},{x:n,y:-r},{x:l-n,y:-r},{x:l,y:0}]:i.has("right")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:l,y:-n},{x:l,y:-r+n},{x:0,y:-r}]:i.has("left")&&i.has("up")&&i.has("down")?[{x:l,y:0},{x:0,y:-n},{x:0,y:-r+n},{x:l,y:-r}]:i.has("right")&&i.has("left")?[{x:n,y:0},{x:n,y:-u},{x:l-n,y:-u},{x:l-n,y:0},{x:l,y:-r/2},{x:l-n,y:-r},{x:l-n,y:-r+u},{x:n,y:-r+u},{x:n,y:-r},{x:0,y:-r/2}]:i.has("up")&&i.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:n,y:-u},{x:n,y:-r+u},{x:0,y:-r+u},{x:l/2,y:-r},{x:l,y:-r+u},{x:l-n,y:-r+u},{x:l-n,y:-u},{x:l,y:-u}]:i.has("right")&&i.has("up")?[{x:0,y:0},{x:l,y:-n},{x:0,y:-r}]:i.has("right")&&i.has("down")?[{x:0,y:0},{x:l,y:0},{x:0,y:-r}]:i.has("left")&&i.has("up")?[{x:l,y:0},{x:0,y:-n},{x:l,y:-r}]:i.has("left")&&i.has("down")?[{x:l,y:0},{x:0,y:0},{x:l,y:-r}]:i.has("right")?[{x:n,y:-u},{x:n,y:-u},{x:l-n,y:-u},{x:l-n,y:0},{x:l,y:-r/2},{x:l-n,y:-r},{x:l-n,y:-r+u},{x:n,y:-r+u},{x:n,y:-r+u}]:i.has("left")?[{x:n,y:0},{x:n,y:-u},{x:l-n,y:-u},{x:l-n,y:-r+u},{x:n,y:-r+u},{x:n,y:-r},{x:0,y:-r/2}]:i.has("up")?[{x:n,y:-u},{x:n,y:-r+u},{x:0,y:-r+u},{x:l/2,y:-r},{x:l,y:-r+u},{x:l-n,y:-r+u},{x:l-n,y:-u}]:i.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:n,y:-u},{x:n,y:-r+u},{x:l-n,y:-r+u},{x:l-n,y:-u},{x:l,y:-u}]:[{x:0,y:0}]},"getArrowPoints");function $t(e,t){return e.intersect(t)}g($t,"intersectNode");var Zr=$t;function te(e,t,a,s){var i=e.x,c=e.y,r=i-s.x,n=c-s.y,l=Math.sqrt(t*t*n*n+a*a*r*r),u=Math.abs(t*a*r/l);s.x0}g(Lt,"sameSign");var Jr=ae,Qr=se;function se(e,t,a){var s=e.x,i=e.y,c=[],r=Number.POSITIVE_INFINITY,n=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(y){r=Math.min(r,y.x),n=Math.min(n,y.y)}):(r=Math.min(r,t.x),n=Math.min(n,t.y));for(var l=s-e.width/2-r,u=i-e.height/2-n,h=0;h1&&c.sort(function(y,v){var S=y.x-a.x,N=y.y-a.y,_=Math.sqrt(S*S+N*N),T=v.x-a.x,m=v.y-a.y,p=Math.sqrt(T*T+m*m);return _{var a=e.x,s=e.y,i=t.x-a,c=t.y-s,r=e.width/2,n=e.height/2,l,u;return Math.abs(c)*r>Math.abs(i)*n?(c<0&&(n=-n),l=c===0?0:n*i/c,u=n):(i<0&&(r=-r),l=r,u=i===0?0:r*c/i),{x:a+l,y:s+u}},"intersectRect"),ta=$r,B={node:Zr,circle:qr,ellipse:ee,polygon:Qr,rect:ta},A=g(async(e,t,a,s)=>{const i=R();let c;const r=t.useHtmlLabels||M(i);a?c=a:c="node default";const n=e.insert("g").attr("class",c).attr("id",t.domId||t.id),l=n.insert("g").attr("class","label").attr("style",t.labelStyle);let u;t.labelText===void 0?u="":u=typeof t.labelText=="string"?t.labelText:t.labelText[0];let h;t.labelType==="markdown"?h=kt(l,Ct(Ot(u),i),{useHtmlLabels:r,width:t.width||i.flowchart.wrappingWidth,classes:"markdown-node-label"},i):h=await K(l,Ct(Ot(u),i),t.labelStyle,!1,s);let d=h.getBBox();const b=t.padding/2;if(M(i)){const w=h.children[0],y=D(h);await Ge(w,u),d=w.getBoundingClientRect(),y.attr("width",d.width),y.attr("height",d.height)}return r?l.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"):l.attr("transform","translate(0, "+-d.height/2+")"),t.centerLabel&&l.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),l.insert("rect",":first-child"),{shapeSvg:n,bbox:d,halfPadding:b,label:l}},"labelHelper"),I=g((e,t)=>{const a=t.node().getBBox();e.width=a.width,e.height=a.height},"updateNodeBounds");function X(e,t,a,s){return e.insert("polygon",":first-child").attr("points",s.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+a/2+")")}g(X,"insertPolygonShape");var ea=g(async(e,t)=>{t.useHtmlLabels||M(R())||(t.centerLabel=!0);const{shapeSvg:s,bbox:i,halfPadding:c}=await A(e,t,"node "+t.classes,!0);k.info("Classes = ",t.classes);const r=s.insert("rect",":first-child");return r.attr("rx",t.rx).attr("ry",t.ry).attr("x",-i.width/2-c).attr("y",-i.height/2-c).attr("width",i.width+t.padding).attr("height",i.height+t.padding),I(t,r),t.intersect=function(n){return B.rect(t,n)},s},"note"),ra=ea,Ft=g(e=>e?" "+e:"","formatClass"),Y=g((e,t)=>`${t||"node default"}${Ft(e.classes)} ${Ft(e.class)}`,"getClassesFromNode"),Wt=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=s.width+t.padding,c=s.height+t.padding,r=i+c,n=[{x:r/2,y:0},{x:r,y:-r/2},{x:r/2,y:-r},{x:0,y:-r/2}];k.info("Question main (Circle)");const l=X(a,r,r,n);return l.attr("style",t.style),I(t,l),t.intersect=function(u){return k.warn("Intersect called"),B.polygon(t,n,u)},a},"question"),aa=g((e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),s=28,i=[{x:0,y:s/2},{x:s/2,y:0},{x:0,y:-s/2},{x:-s/2,y:0}];return a.insert("polygon",":first-child").attr("points",i.map(function(r){return r.x+","+r.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),t.width=28,t.height=28,t.intersect=function(r){return B.circle(t,14,r)},a},"choice"),sa=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=4,c=t.positioned?t.height:s.height+t.padding,r=c/i,n=t.positioned?t.width:s.width+2*r+t.padding,l=[{x:r,y:0},{x:n-r,y:0},{x:n,y:-c/2},{x:n-r,y:-c},{x:r,y:-c},{x:0,y:-c/2}],u=X(a,n,c,l);return u.attr("style",t.style),I(t,u),t.intersect=function(h){return B.polygon(t,l,h)},a},"hexagon"),ia=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,void 0,!0),i=2,c=s.height+2*t.padding,r=c/i,n=s.width+2*r+t.padding,u=t.positioned&&(t.widthInColumns??1)>1&&t.width>n?t.width:n,h=Gr(t.directions,s,t,u),d=X(a,u,c,h);return d.attr("style",t.style),I(t,d),t.intersect=function(b){return B.polygon(t,h,b)},a},"block_arrow"),na=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=s.width+t.padding,c=s.height+t.padding,r=[{x:-c/2,y:0},{x:i,y:0},{x:i,y:-c},{x:-c/2,y:-c},{x:0,y:-c/2}];return X(a,i,c,r).attr("style",t.style),t.width=i+c,t.height=c,t.intersect=function(l){return B.polygon(t,r,l)},a},"rect_left_inv_arrow"),ca=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t),!0),i=s.width+t.padding,c=s.height+t.padding,r=[{x:-2*c/6,y:0},{x:i-c/6,y:0},{x:i+2*c/6,y:-c},{x:c/6,y:-c}],n=X(a,i,c,r);return n.attr("style",t.style),I(t,n),t.intersect=function(l){return B.polygon(t,r,l)},a},"lean_right"),la=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=s.width+t.padding,c=s.height+t.padding,r=[{x:2*c/6,y:0},{x:i+c/6,y:0},{x:i-2*c/6,y:-c},{x:-c/6,y:-c}],n=X(a,i,c,r);return n.attr("style",t.style),I(t,n),t.intersect=function(l){return B.polygon(t,r,l)},a},"lean_left"),oa=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=s.width+t.padding,c=s.height+t.padding,r=[{x:-2*c/6,y:0},{x:i+2*c/6,y:0},{x:i-c/6,y:-c},{x:c/6,y:-c}],n=X(a,i,c,r);return n.attr("style",t.style),I(t,n),t.intersect=function(l){return B.polygon(t,r,l)},a},"trapezoid"),ha=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=s.width+t.padding,c=s.height+t.padding,r=[{x:c/6,y:0},{x:i-c/6,y:0},{x:i+2*c/6,y:-c},{x:-2*c/6,y:-c}],n=X(a,i,c,r);return n.attr("style",t.style),I(t,n),t.intersect=function(l){return B.polygon(t,r,l)},a},"inv_trapezoid"),ga=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=s.width+t.padding,c=s.height+t.padding,r=[{x:0,y:0},{x:i+c/2,y:0},{x:i,y:-c/2},{x:i+c/2,y:-c},{x:0,y:-c}],n=X(a,i,c,r);return n.attr("style",t.style),I(t,n),t.intersect=function(l){return B.polygon(t,r,l)},a},"rect_right_inv_arrow"),ua=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=s.width+t.padding,c=i/2,r=c/(2.5+i/50),n=s.height+r+t.padding,l="M 0,"+r+" a "+c+","+r+" 0,0,0 "+i+" 0 a "+c+","+r+" 0,0,0 "+-i+" 0 l 0,"+n+" a "+c+","+r+" 0,0,0 "+i+" 0 l 0,"+-n,u=a.attr("label-offset-y",r).insert("path",":first-child").attr("style",t.style).attr("d",l).attr("transform","translate("+-i/2+","+-(n/2+r)+")");return I(t,u),t.intersect=function(h){const d=B.rect(t,h),b=d.x-t.x;if(c!=0&&(Math.abs(b)t.height/2-r)){let w=r*r*(1-b*b/(c*c));w!=0&&(w=Math.sqrt(w)),w=r-w,h.y-t.y>0&&(w=-w),d.y+=w}return d},a},"cylinder"),da=g(async(e,t)=>{const{shapeSvg:a,bbox:s,halfPadding:i}=await A(e,t,"node "+t.classes+" "+t.class,!0),c=a.insert("rect",":first-child"),r=t.positioned?t.width:s.width+t.padding,n=t.positioned?t.height:s.height+t.padding,l=t.positioned?-r/2:-s.width/2-i,u=t.positioned?-n/2:-s.height/2-i;if(c.attr("class","basic label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",l).attr("y",u).attr("width",r).attr("height",n),t.props){const h=new Set(Object.keys(t.props));t.props.borders&&(ot(c,t.props.borders,r,n),h.delete("borders")),h.forEach(d=>{k.warn(`Unknown node property ${d}`)})}return I(t,c),t.intersect=function(h){return B.rect(t,h)},a},"rect"),pa=g(async(e,t)=>{const{shapeSvg:a,bbox:s,halfPadding:i}=await A(e,t,"node "+t.classes,!0),c=a.insert("rect",":first-child"),r=t.positioned?t.width:s.width+t.padding,n=t.positioned?t.height:s.height+t.padding,l=t.positioned?-r/2:-s.width/2-i,u=t.positioned?-n/2:-s.height/2-i;if(c.attr("class","basic cluster composite label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",l).attr("y",u).attr("width",r).attr("height",n),t.props){const h=new Set(Object.keys(t.props));t.props.borders&&(ot(c,t.props.borders,r,n),h.delete("borders")),h.forEach(d=>{k.warn(`Unknown node property ${d}`)})}return I(t,c),t.intersect=function(h){return B.rect(t,h)},a},"composite"),fa=g(async(e,t)=>{const{shapeSvg:a}=await A(e,t,"label",!0);k.trace("Classes = ",t.class);const s=a.insert("rect",":first-child"),i=0,c=0;if(s.attr("width",i).attr("height",c),a.attr("class","label edgeLabel"),t.props){const r=new Set(Object.keys(t.props));t.props.borders&&(ot(s,t.props.borders,i,c),r.delete("borders")),r.forEach(n=>{k.warn(`Unknown node property ${n}`)})}return I(t,s),t.intersect=function(r){return B.rect(t,r)},a},"labelRect");function ot(e,t,a,s){const i=[],c=g(n=>{i.push(n,0)},"addBorder"),r=g(n=>{i.push(0,n)},"skipBorder");t.includes("t")?(k.debug("add top border"),c(a)):r(a),t.includes("r")?(k.debug("add right border"),c(s)):r(s),t.includes("b")?(k.debug("add bottom border"),c(a)):r(a),t.includes("l")?(k.debug("add left border"),c(s)):r(s),e.attr("stroke-dasharray",i.join(" "))}g(ot,"applyNodePropertyBorders");var xa=g(async(e,t)=>{let a;t.classes?a="node "+t.classes:a="node default";const s=e.insert("g").attr("class",a).attr("id",t.domId||t.id),i=s.insert("rect",":first-child"),c=s.insert("line"),r=s.insert("g").attr("class","label"),n=t.labelText.flat?t.labelText.flat():t.labelText;let l="";typeof n=="object"?l=n[0]:l=n,k.info("Label text abc79",l,n,typeof n=="object");const u=await K(r,l,t.labelStyle,!0,!0);let h={width:0,height:0};if(M(R())){const v=u.children[0],S=D(u);h=v.getBoundingClientRect(),S.attr("width",h.width),S.attr("height",h.height)}k.info("Text 2",n);const d=n.slice(1,n.length);let b=u.getBBox();const w=await K(r,d.join?d.join("
"):d,t.labelStyle,!0,!0);if(M(R())){const v=w.children[0],S=D(w);h=v.getBoundingClientRect(),S.attr("width",h.width),S.attr("height",h.height)}const y=t.padding/2;return D(w).attr("transform","translate( "+(h.width>b.width?0:(b.width-h.width)/2)+", "+(b.height+y+5)+")"),D(u).attr("transform","translate( "+(h.width{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=s.height+t.padding,c=s.width+i/4+t.padding,r=a.insert("rect",":first-child").attr("style",t.style).attr("rx",i/2).attr("ry",i/2).attr("x",-c/2).attr("y",-i/2).attr("width",c).attr("height",i);return I(t,r),t.intersect=function(n){return B.rect(t,n)},a},"stadium"),ba=g(async(e,t)=>{const{shapeSvg:a,bbox:s,halfPadding:i}=await A(e,t,Y(t,void 0),!0),c=a.insert("circle",":first-child");return c.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",s.width/2+i).attr("width",s.width+t.padding).attr("height",s.height+t.padding),k.info("Circle main"),I(t,c),t.intersect=function(r){return k.info("Circle intersect",t,s.width/2+i,r),B.circle(t,s.width/2+i,r)},a},"circle"),wa=g(async(e,t)=>{const{shapeSvg:a,bbox:s,halfPadding:i}=await A(e,t,Y(t,void 0),!0),c=5,r=a.insert("g",":first-child"),n=r.insert("circle"),l=r.insert("circle");return r.attr("class",t.class),n.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",s.width/2+i+c).attr("width",s.width+t.padding+c*2).attr("height",s.height+t.padding+c*2),l.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",s.width/2+i).attr("width",s.width+t.padding).attr("height",s.height+t.padding),k.info("DoubleCircle main"),I(t,n),t.intersect=function(u){return k.info("DoubleCircle intersect",t,s.width/2+i+c,u),B.circle(t,s.width/2+i+c,u)},a},"doublecircle"),ma=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=s.width+t.padding,c=s.height+t.padding,r=[{x:0,y:0},{x:i,y:0},{x:i,y:-c},{x:0,y:-c},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-c},{x:-8,y:-c},{x:-8,y:0}],n=X(a,i,c,r);return n.attr("style",t.style),I(t,n),t.intersect=function(l){return B.polygon(t,r,l)},a},"subroutine"),Sa=g((e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),s=a.insert("circle",":first-child");return s.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),I(t,s),t.intersect=function(i){return B.circle(t,7,i)},a},"start"),Yt=g((e,t,a)=>{const s=e.insert("g").attr("class","node default").attr("id",t.domId||t.id);let i=70,c=10;a==="LR"&&(i=10,c=70);const r=s.append("rect").attr("x",-1*i/2).attr("y",-1*c/2).attr("width",i).attr("height",c).attr("class","fork-join");return I(t,r),t.height=t.height+t.padding/2,t.width=t.width+t.padding/2,t.intersect=function(n){return B.rect(t,n)},s},"forkJoin"),La=g((e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),s=a.insert("circle",":first-child"),i=a.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),s.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),I(t,i),t.intersect=function(c){return B.circle(t,7,c)},a},"end"),ka=g(async(e,t)=>{const a=t.padding/2,s=4,i=8;let c;t.classes?c="node "+t.classes:c="node default";const r=e.insert("g").attr("class",c).attr("id",t.domId||t.id),n=r.insert("rect",":first-child"),l=r.insert("line"),u=r.insert("line");let h=0,d=s;const b=r.insert("g").attr("class","label");let w=0;const y=t.classData.annotations?.[0],v=t.classData.annotations[0]?"«"+t.classData.annotations[0]+"»":"",S=await K(b,v,t.labelStyle,!0,!0);let N=S.getBBox();if(M(R())){const E=S.children[0],o=D(S);N=E.getBoundingClientRect(),o.attr("width",N.width),o.attr("height",N.height)}t.classData.annotations[0]&&(d+=N.height+s,h+=N.width);let _=t.classData.label;t.classData.type!==void 0&&t.classData.type!==""&&(M(R())?_+="<"+t.classData.type+">":_+="<"+t.classData.type+">");const T=await K(b,_,t.labelStyle,!0,!0);D(T).attr("class","classTitle");let m=T.getBBox();if(M(R())){const E=T.children[0],o=D(T);m=E.getBoundingClientRect(),o.attr("width",m.width),o.attr("height",m.height)}d+=m.height+s,m.width>h&&(h=m.width);const p=[];t.classData.members.forEach(async E=>{const o=E.getDisplayDetails();let F=o.displayText;M(R())&&(F=F.replace(//g,">"));const f=await K(b,F,o.cssStyle?o.cssStyle:t.labelStyle,!0,!0);let C=f.getBBox();if(M(R())){const Z=f.children[0],V=D(f);C=Z.getBoundingClientRect(),V.attr("width",C.width),V.attr("height",C.height)}C.width>h&&(h=C.width),d+=C.height+s,p.push(f)}),d+=i;const x=[];if(t.classData.methods.forEach(async E=>{const o=E.getDisplayDetails();let F=o.displayText;M(R())&&(F=F.replace(//g,">"));const f=await K(b,F,o.cssStyle?o.cssStyle:t.labelStyle,!0,!0);let C=f.getBBox();if(M(R())){const Z=f.children[0],V=D(f);C=Z.getBoundingClientRect(),V.attr("width",C.width),V.attr("height",C.height)}C.width>h&&(h=C.width),d+=C.height+s,x.push(f)}),d+=i,y){let E=(h-N.width)/2;D(S).attr("transform","translate( "+(-1*h/2+E)+", "+-1*d/2+")"),w=N.height+s}let L=(h-m.width)/2;return D(T).attr("transform","translate( "+(-1*h/2+L)+", "+(-1*d/2+w)+")"),w+=m.height+s,l.attr("class","divider").attr("x1",-h/2-a).attr("x2",h/2+a).attr("y1",-d/2-a+i+w).attr("y2",-d/2-a+i+w),w+=i,p.forEach(E=>{D(E).attr("transform","translate( "+-h/2+", "+(-1*d/2+w+i/2)+")");const o=E?.getBBox();w+=(o?.height??0)+s}),w+=i,u.attr("class","divider").attr("x1",-h/2-a).attr("x2",h/2+a).attr("y1",-d/2-a+i+w).attr("y2",-d/2-a+i+w),w+=i,x.forEach(E=>{D(E).attr("transform","translate( "+-h/2+", "+(-1*d/2+w)+")");const o=E?.getBBox();w+=(o?.height??0)+s}),n.attr("style",t.style).attr("class","outer title-state").attr("x",-h/2-a).attr("y",-(d/2)-a).attr("width",h+t.padding).attr("height",d+t.padding),I(t,n),t.intersect=function(E){return B.rect(t,E)},r},"class_box"),Ht={rhombus:Wt,composite:pa,question:Wt,rect:da,labelRect:fa,rectWithTitle:xa,choice:aa,circle:ba,doublecircle:wa,stadium:ya,hexagon:sa,block_arrow:ia,rect_left_inv_arrow:na,lean_right:ca,lean_left:la,trapezoid:oa,inv_trapezoid:ha,rect_right_inv_arrow:ga,cylinder:ua,start:Sa,end:La,note:ra,subroutine:ma,fork:Yt,join:Yt,class_box:ka},nt={},ie=g(async(e,t,a)=>{let s,i;if(t.link){let c;R().securityLevel==="sandbox"?c="_top":t.linkTarget&&(c=t.linkTarget||"_blank"),s=e.insert("svg:a").attr("xlink:href",t.link).attr("target",c),i=await Ht[t.shape](s,t,a)}else i=await Ht[t.shape](e,t,a),s=i;return t.tooltip&&i.attr("title",t.tooltip),t.class&&i.attr("class","node default "+t.class),nt[t.id]=s,t.haveCallback&&nt[t.id].attr("class",nt[t.id].attr("class")+" clickable"),s},"insertNode"),va=g(e=>{const t=nt[e.id];k.trace("Transforming node",e.diff,e,"translate("+(e.x-e.width/2-5)+", "+e.width/2+")");const a=8,s=e.diff||0;return e.clusterNode?t.attr("transform","translate("+(e.x+s-e.width/2)+", "+(e.y-e.height/2-a)+")"):t.attr("transform","translate("+e.x+", "+e.y+")"),s},"positionNode");function Bt(e,t,a=!1){const s=e;let i="default";(s?.classes?.length||0)>0&&(i=(s?.classes??[]).join(" ")),i=i+" flowchart-label";let c=0,r="",n;switch(s.type){case"round":c=5,r="rect";break;case"composite":c=0,r="composite",n=0;break;case"square":r="rect";break;case"diamond":r="question";break;case"hexagon":r="hexagon";break;case"block_arrow":r="block_arrow";break;case"odd":r="rect_left_inv_arrow";break;case"lean_right":r="lean_right";break;case"lean_left":r="lean_left";break;case"trapezoid":r="trapezoid";break;case"inv_trapezoid":r="inv_trapezoid";break;case"rect_left_inv_arrow":r="rect_left_inv_arrow";break;case"circle":r="circle";break;case"ellipse":r="ellipse";break;case"stadium":r="stadium";break;case"subroutine":r="subroutine";break;case"cylinder":r="cylinder";break;case"group":r="rect";break;case"doublecircle":r="doublecircle";break;default:r="rect"}const l=je(s?.styles??[]),u=s.label,h=s.size??{width:0,height:0,x:0,y:0},d=t.getDiagramId();return{labelStyle:l.labelStyle,shape:r,labelText:u,rx:c,ry:c,class:i,style:l.style,id:s.id,domId:d?`${d}-${s.id}`:s.id,directions:s.directions,width:h.width,height:h.height,x:h.x,y:h.y,positioned:a,intersect:void 0,type:s.type,padding:n??rt()?.block?.padding??0,widthInColumns:s.widthInColumns??1}}g(Bt,"getNodeFromBlock");async function ne(e,t,a){const s=Bt(t,a,!1);if(s.type==="group")return;const i=rt(),c=await ie(e,s,{config:i}),r=c.node().getBBox(),n=a.getBlock(s.id);n.size={width:r.width,height:r.height,x:0,y:0,node:c},a.setBlock(n),c.remove()}g(ne,"calculateBlockSize");async function ce(e,t,a){const s=Bt(t,a,!0);if(a.getBlock(s.id).type!=="space"){const c=rt();await ie(e,s,{config:c}),t.intersect=s?.intersect,va(s)}}g(ce,"insertBlockPositioned");async function ht(e,t,a,s){for(const i of t)await s(e,i,a),i.children&&await ht(e,i.children,a,s)}g(ht,"performOperations");async function le(e,t,a){await ht(e,t,a,ne)}g(le,"calculateBlockSizes");async function oe(e,t,a){await ht(e,t,a,ce)}g(oe,"insertBlocks");async function he(e,t,a,s,i){const c=new Ze({multigraph:!0,compound:!0});c.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(const r of a)r.size&&c.setNode(r.id,{width:r.size.width,height:r.size.height,intersect:r.intersect});for(const r of t)if(r.start&&r.end){const n=s.getBlock(r.start),l=s.getBlock(r.end);if(n?.size&&l?.size){const u=n.size,h=l.size,d=[{x:u.x,y:u.y},{x:u.x+(h.x-u.x)/2,y:u.y+(h.y-u.y)/2},{x:h.x,y:h.y}],b=i?`${i}-${r.id}`:r.id,w=r.thickness==="thick"?"edge-thickness-thick":"edge-thickness-normal",y=r.pattern==="dotted"?"edge-pattern-dotted":"edge-pattern-solid",v=`${w} ${y} flowchart-link LS-a1 LE-b1`;Vr(e,{v:r.start,w:r.end,name:b},{...r,id:b,arrowTypeEnd:r.arrowTypeEnd,arrowTypeStart:r.arrowTypeStart,points:d,classes:v},void 0,"block",c,i),r.label&&(await Hr(e,{...r,label:r.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:r.arrowTypeEnd,arrowTypeStart:r.arrowTypeStart,points:d,classes:v}),Kr({...r,x:d[1].x,y:d[1].y},{originalPath:d}))}}}g(he,"insertEdges");var Ea=g(function(e,t){return t.db.getClasses()},"getClasses"),_a=g(async function(e,t,a,s){const{securityLevel:i,block:c}=rt(),r=s.db;r.setDiagramId(t);let n;i==="sandbox"&&(n=D("#i"+t));const l=i==="sandbox"?D(n.nodes()[0].contentDocument.body):D("body"),u=i==="sandbox"?l.select(`[id="${t}"]`):D(`[id="${t}"]`);Mr(u,["point","circle","cross"],s.type,t);const d=r.getBlocks(),b=r.getBlocksFlat(),w=r.getEdges(),y=u.insert("g").attr("class","block");await le(y,d,r);const v=Qt(r);if(await oe(y,d,r),await he(y,w,b,r,t),v){const S=v,N=Math.max(1,Math.round(.125*(S.width/S.height))),_=S.height+N+10,T=S.width+10,{useMaxWidth:m}=c;Pe(u,_,T,!!m),k.debug("Here Bounds",v,S),u.attr("viewBox",`${S.x-5} ${S.y-5} ${S.width+10} ${S.height+10}`)}},"draw"),Ta={draw:_a,getClasses:Ea},Ra={parser:ar,db:kr,renderer:Ta,styles:Er};export{Ra as diagram}; + node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);const s=e.x,i=e.y,c=Math.abs(s-a.x),r=e.width/2;let n=a.xMath.abs(s-t.x)*l){let d=a.y{k.debug("abc88 cutPathAtIntersect",e,t);let a=[],s=e[0],i=!1;return e.forEach(c=>{if(!Ur(t,c)&&!i){const r=Xr(t,s,c);let n=!1;a.forEach(l=>{n=n||l.x===r.x&&l.y===r.y}),a.some(l=>l.x===r.x&&l.y===r.y)||a.push(r),i=!0}else s=c,i||a.push(c)}),a},"cutPathAtIntersect"),Vr=g(function(e,t,a,s,i,c,r){let n=a.points;k.debug("abc88 InsertEdge: edge=",a,"e=",t);let l=!1;const u=c.node(t.v);var h=c.node(t.w);h?.intersect&&u?.intersect&&(n=n.slice(1,a.points.length-1),n.unshift(u.intersect(n[0])),n.push(h.intersect(n[n.length-1]))),a.toCluster&&(k.debug("to cluster abc88",s[a.toCluster]),n=Pt(a.points,s[a.toCluster].node),l=!0),a.fromCluster&&(k.debug("from cluster abc88",s[a.fromCluster]),n=Pt(n.reverse(),s[a.fromCluster].node).reverse(),l=!0);const d=n.filter(m=>!Number.isNaN(m.y));let b=Ke;a.curve&&(i==="graph"||i==="flowchart")&&(b=a.curve);const{x:w,y}=Ye(a),v=He().x(w).y(y).curve(b);let S;switch(a.thickness){case"normal":S="edge-thickness-normal";break;case"thick":S="edge-thickness-thick";break;case"invisible":S="edge-thickness-thick";break;default:S=""}switch(a.pattern){case"solid":S+=" edge-pattern-solid";break;case"dotted":S+=" edge-pattern-dotted";break;case"dashed":S+=" edge-pattern-dashed";break}const N=e.append("path").attr("d",v(d)).attr("id",a.id).attr("class"," "+S+(a.classes?" "+a.classes:"")).attr("style",a.style);let _="";(R().flowchart.arrowMarkerAbsolute||R().state.arrowMarkerAbsolute)&&(_=Ue(!0)),Wr(N,a,_,r,i);let T={};return l&&(T.updatedPath=n),T.originalPath=a.points,T},"insertEdge"),jr=g(e=>{const t=new Set;for(const a of e)switch(a){case"x":t.add("right"),t.add("left");break;case"y":t.add("up"),t.add("down");break;default:t.add(a);break}return t},"expandAndDeduplicateDirections"),Gr=g((e,t,a,s)=>{const i=jr(e),c=2,r=t.height+2*a.padding,n=r/c,l=s??t.width+2*n+a.padding,u=a.padding/2;return i.has("right")&&i.has("left")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:n,y:0},{x:l/2,y:2*u},{x:l-n,y:0},{x:l,y:0},{x:l,y:-r/3},{x:l+2*u,y:-r/2},{x:l,y:-2*r/3},{x:l,y:-r},{x:l-n,y:-r},{x:l/2,y:-r-2*u},{x:n,y:-r},{x:0,y:-r},{x:0,y:-2*r/3},{x:-2*u,y:-r/2},{x:0,y:-r/3}]:i.has("right")&&i.has("left")&&i.has("up")?[{x:n,y:0},{x:l-n,y:0},{x:l,y:-r/2},{x:l-n,y:-r},{x:n,y:-r},{x:0,y:-r/2}]:i.has("right")&&i.has("left")&&i.has("down")?[{x:0,y:0},{x:n,y:-r},{x:l-n,y:-r},{x:l,y:0}]:i.has("right")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:l,y:-n},{x:l,y:-r+n},{x:0,y:-r}]:i.has("left")&&i.has("up")&&i.has("down")?[{x:l,y:0},{x:0,y:-n},{x:0,y:-r+n},{x:l,y:-r}]:i.has("right")&&i.has("left")?[{x:n,y:0},{x:n,y:-u},{x:l-n,y:-u},{x:l-n,y:0},{x:l,y:-r/2},{x:l-n,y:-r},{x:l-n,y:-r+u},{x:n,y:-r+u},{x:n,y:-r},{x:0,y:-r/2}]:i.has("up")&&i.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:n,y:-u},{x:n,y:-r+u},{x:0,y:-r+u},{x:l/2,y:-r},{x:l,y:-r+u},{x:l-n,y:-r+u},{x:l-n,y:-u},{x:l,y:-u}]:i.has("right")&&i.has("up")?[{x:0,y:0},{x:l,y:-n},{x:0,y:-r}]:i.has("right")&&i.has("down")?[{x:0,y:0},{x:l,y:0},{x:0,y:-r}]:i.has("left")&&i.has("up")?[{x:l,y:0},{x:0,y:-n},{x:l,y:-r}]:i.has("left")&&i.has("down")?[{x:l,y:0},{x:0,y:0},{x:l,y:-r}]:i.has("right")?[{x:n,y:-u},{x:n,y:-u},{x:l-n,y:-u},{x:l-n,y:0},{x:l,y:-r/2},{x:l-n,y:-r},{x:l-n,y:-r+u},{x:n,y:-r+u},{x:n,y:-r+u}]:i.has("left")?[{x:n,y:0},{x:n,y:-u},{x:l-n,y:-u},{x:l-n,y:-r+u},{x:n,y:-r+u},{x:n,y:-r},{x:0,y:-r/2}]:i.has("up")?[{x:n,y:-u},{x:n,y:-r+u},{x:0,y:-r+u},{x:l/2,y:-r},{x:l,y:-r+u},{x:l-n,y:-r+u},{x:l-n,y:-u}]:i.has("down")?[{x:l/2,y:0},{x:0,y:-u},{x:n,y:-u},{x:n,y:-r+u},{x:l-n,y:-r+u},{x:l-n,y:-u},{x:l,y:-u}]:[{x:0,y:0}]},"getArrowPoints");function $t(e,t){return e.intersect(t)}g($t,"intersectNode");var Zr=$t;function te(e,t,a,s){var i=e.x,c=e.y,r=i-s.x,n=c-s.y,l=Math.sqrt(t*t*n*n+a*a*r*r),u=Math.abs(t*a*r/l);s.x0}g(Lt,"sameSign");var Jr=ae,Qr=se;function se(e,t,a){var s=e.x,i=e.y,c=[],r=Number.POSITIVE_INFINITY,n=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(y){r=Math.min(r,y.x),n=Math.min(n,y.y)}):(r=Math.min(r,t.x),n=Math.min(n,t.y));for(var l=s-e.width/2-r,u=i-e.height/2-n,h=0;h1&&c.sort(function(y,v){var S=y.x-a.x,N=y.y-a.y,_=Math.sqrt(S*S+N*N),T=v.x-a.x,m=v.y-a.y,p=Math.sqrt(T*T+m*m);return _{var a=e.x,s=e.y,i=t.x-a,c=t.y-s,r=e.width/2,n=e.height/2,l,u;return Math.abs(c)*r>Math.abs(i)*n?(c<0&&(n=-n),l=c===0?0:n*i/c,u=n):(i<0&&(r=-r),l=r,u=i===0?0:r*c/i),{x:a+l,y:s+u}},"intersectRect"),ta=$r,B={node:Zr,circle:qr,ellipse:ee,polygon:Qr,rect:ta},A=g(async(e,t,a,s)=>{const i=R();let c;const r=t.useHtmlLabels||M(i);a?c=a:c="node default";const n=e.insert("g").attr("class",c).attr("id",t.domId||t.id),l=n.insert("g").attr("class","label").attr("style",t.labelStyle);let u;t.labelText===void 0?u="":u=typeof t.labelText=="string"?t.labelText:t.labelText[0];let h;t.labelType==="markdown"?h=kt(l,Ct(Ot(u),i),{useHtmlLabels:r,width:t.width||i.flowchart.wrappingWidth,classes:"markdown-node-label"},i):h=await K(l,Ct(Ot(u),i),t.labelStyle,!1,s);let d=h.getBBox();const b=t.padding/2;if(M(i)){const w=h.children[0],y=D(h);await Ge(w,u),d=w.getBoundingClientRect(),y.attr("width",d.width),y.attr("height",d.height)}return r?l.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"):l.attr("transform","translate(0, "+-d.height/2+")"),t.centerLabel&&l.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),l.insert("rect",":first-child"),{shapeSvg:n,bbox:d,halfPadding:b,label:l}},"labelHelper"),I=g((e,t)=>{const a=t.node().getBBox();e.width=a.width,e.height=a.height},"updateNodeBounds");function X(e,t,a,s){return e.insert("polygon",":first-child").attr("points",s.map(function(i){return i.x+","+i.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+a/2+")")}g(X,"insertPolygonShape");var ea=g(async(e,t)=>{t.useHtmlLabels||M(R())||(t.centerLabel=!0);const{shapeSvg:s,bbox:i,halfPadding:c}=await A(e,t,"node "+t.classes,!0);k.info("Classes = ",t.classes);const r=s.insert("rect",":first-child");return r.attr("rx",t.rx).attr("ry",t.ry).attr("x",-i.width/2-c).attr("y",-i.height/2-c).attr("width",i.width+t.padding).attr("height",i.height+t.padding),I(t,r),t.intersect=function(n){return B.rect(t,n)},s},"note"),ra=ea,Ft=g(e=>e?" "+e:"","formatClass"),Y=g((e,t)=>`${t||"node default"}${Ft(e.classes)} ${Ft(e.class)}`,"getClassesFromNode"),Wt=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=s.width+t.padding,c=s.height+t.padding,r=i+c,n=[{x:r/2,y:0},{x:r,y:-r/2},{x:r/2,y:-r},{x:0,y:-r/2}];k.info("Question main (Circle)");const l=X(a,r,r,n);return l.attr("style",t.style),I(t,l),t.intersect=function(u){return k.warn("Intersect called"),B.polygon(t,n,u)},a},"question"),aa=g((e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),s=28,i=[{x:0,y:s/2},{x:s/2,y:0},{x:0,y:-s/2},{x:-s/2,y:0}];return a.insert("polygon",":first-child").attr("points",i.map(function(r){return r.x+","+r.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),t.width=28,t.height=28,t.intersect=function(r){return B.circle(t,14,r)},a},"choice"),sa=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=4,c=t.positioned?t.height:s.height+t.padding,r=c/i,n=t.positioned?t.width:s.width+2*r+t.padding,l=[{x:r,y:0},{x:n-r,y:0},{x:n,y:-c/2},{x:n-r,y:-c},{x:r,y:-c},{x:0,y:-c/2}],u=X(a,n,c,l);return u.attr("style",t.style),I(t,u),t.intersect=function(h){return B.polygon(t,l,h)},a},"hexagon"),ia=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,void 0,!0),i=2,c=s.height+2*t.padding,r=c/i,n=s.width+2*r+t.padding,u=t.positioned&&(t.widthInColumns??1)>1&&t.width>n?t.width:n,h=Gr(t.directions,s,t,u),d=X(a,u,c,h);return d.attr("style",t.style),I(t,d),t.intersect=function(b){return B.polygon(t,h,b)},a},"block_arrow"),na=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=s.width+t.padding,c=s.height+t.padding,r=[{x:-c/2,y:0},{x:i,y:0},{x:i,y:-c},{x:-c/2,y:-c},{x:0,y:-c/2}];return X(a,i,c,r).attr("style",t.style),t.width=i+c,t.height=c,t.intersect=function(l){return B.polygon(t,r,l)},a},"rect_left_inv_arrow"),ca=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t),!0),i=s.width+t.padding,c=s.height+t.padding,r=[{x:-2*c/6,y:0},{x:i-c/6,y:0},{x:i+2*c/6,y:-c},{x:c/6,y:-c}],n=X(a,i,c,r);return n.attr("style",t.style),I(t,n),t.intersect=function(l){return B.polygon(t,r,l)},a},"lean_right"),la=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=s.width+t.padding,c=s.height+t.padding,r=[{x:2*c/6,y:0},{x:i+c/6,y:0},{x:i-2*c/6,y:-c},{x:-c/6,y:-c}],n=X(a,i,c,r);return n.attr("style",t.style),I(t,n),t.intersect=function(l){return B.polygon(t,r,l)},a},"lean_left"),oa=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=s.width+t.padding,c=s.height+t.padding,r=[{x:-2*c/6,y:0},{x:i+2*c/6,y:0},{x:i-c/6,y:-c},{x:c/6,y:-c}],n=X(a,i,c,r);return n.attr("style",t.style),I(t,n),t.intersect=function(l){return B.polygon(t,r,l)},a},"trapezoid"),ha=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=s.width+t.padding,c=s.height+t.padding,r=[{x:c/6,y:0},{x:i-c/6,y:0},{x:i+2*c/6,y:-c},{x:-2*c/6,y:-c}],n=X(a,i,c,r);return n.attr("style",t.style),I(t,n),t.intersect=function(l){return B.polygon(t,r,l)},a},"inv_trapezoid"),ga=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=s.width+t.padding,c=s.height+t.padding,r=[{x:0,y:0},{x:i+c/2,y:0},{x:i,y:-c/2},{x:i+c/2,y:-c},{x:0,y:-c}],n=X(a,i,c,r);return n.attr("style",t.style),I(t,n),t.intersect=function(l){return B.polygon(t,r,l)},a},"rect_right_inv_arrow"),ua=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=s.width+t.padding,c=i/2,r=c/(2.5+i/50),n=s.height+r+t.padding,l="M 0,"+r+" a "+c+","+r+" 0,0,0 "+i+" 0 a "+c+","+r+" 0,0,0 "+-i+" 0 l 0,"+n+" a "+c+","+r+" 0,0,0 "+i+" 0 l 0,"+-n,u=a.attr("label-offset-y",r).insert("path",":first-child").attr("style",t.style).attr("d",l).attr("transform","translate("+-i/2+","+-(n/2+r)+")");return I(t,u),t.intersect=function(h){const d=B.rect(t,h),b=d.x-t.x;if(c!=0&&(Math.abs(b)t.height/2-r)){let w=r*r*(1-b*b/(c*c));w!=0&&(w=Math.sqrt(w)),w=r-w,h.y-t.y>0&&(w=-w),d.y+=w}return d},a},"cylinder"),da=g(async(e,t)=>{const{shapeSvg:a,bbox:s,halfPadding:i}=await A(e,t,"node "+t.classes+" "+t.class,!0),c=a.insert("rect",":first-child"),r=t.positioned?t.width:s.width+t.padding,n=t.positioned?t.height:s.height+t.padding,l=t.positioned?-r/2:-s.width/2-i,u=t.positioned?-n/2:-s.height/2-i;if(c.attr("class","basic label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",l).attr("y",u).attr("width",r).attr("height",n),t.props){const h=new Set(Object.keys(t.props));t.props.borders&&(ot(c,t.props.borders,r,n),h.delete("borders")),h.forEach(d=>{k.warn(`Unknown node property ${d}`)})}return I(t,c),t.intersect=function(h){return B.rect(t,h)},a},"rect"),pa=g(async(e,t)=>{const{shapeSvg:a,bbox:s,halfPadding:i}=await A(e,t,"node "+t.classes,!0),c=a.insert("rect",":first-child"),r=t.positioned?t.width:s.width+t.padding,n=t.positioned?t.height:s.height+t.padding,l=t.positioned?-r/2:-s.width/2-i,u=t.positioned?-n/2:-s.height/2-i;if(c.attr("class","basic cluster composite label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",l).attr("y",u).attr("width",r).attr("height",n),t.props){const h=new Set(Object.keys(t.props));t.props.borders&&(ot(c,t.props.borders,r,n),h.delete("borders")),h.forEach(d=>{k.warn(`Unknown node property ${d}`)})}return I(t,c),t.intersect=function(h){return B.rect(t,h)},a},"composite"),fa=g(async(e,t)=>{const{shapeSvg:a}=await A(e,t,"label",!0);k.trace("Classes = ",t.class);const s=a.insert("rect",":first-child"),i=0,c=0;if(s.attr("width",i).attr("height",c),a.attr("class","label edgeLabel"),t.props){const r=new Set(Object.keys(t.props));t.props.borders&&(ot(s,t.props.borders,i,c),r.delete("borders")),r.forEach(n=>{k.warn(`Unknown node property ${n}`)})}return I(t,s),t.intersect=function(r){return B.rect(t,r)},a},"labelRect");function ot(e,t,a,s){const i=[],c=g(n=>{i.push(n,0)},"addBorder"),r=g(n=>{i.push(0,n)},"skipBorder");t.includes("t")?(k.debug("add top border"),c(a)):r(a),t.includes("r")?(k.debug("add right border"),c(s)):r(s),t.includes("b")?(k.debug("add bottom border"),c(a)):r(a),t.includes("l")?(k.debug("add left border"),c(s)):r(s),e.attr("stroke-dasharray",i.join(" "))}g(ot,"applyNodePropertyBorders");var xa=g(async(e,t)=>{let a;t.classes?a="node "+t.classes:a="node default";const s=e.insert("g").attr("class",a).attr("id",t.domId||t.id),i=s.insert("rect",":first-child"),c=s.insert("line"),r=s.insert("g").attr("class","label"),n=t.labelText.flat?t.labelText.flat():t.labelText;let l="";typeof n=="object"?l=n[0]:l=n,k.info("Label text abc79",l,n,typeof n=="object");const u=await K(r,l,t.labelStyle,!0,!0);let h={width:0,height:0};if(M(R())){const v=u.children[0],S=D(u);h=v.getBoundingClientRect(),S.attr("width",h.width),S.attr("height",h.height)}k.info("Text 2",n);const d=n.slice(1,n.length);let b=u.getBBox();const w=await K(r,d.join?d.join("
"):d,t.labelStyle,!0,!0);if(M(R())){const v=w.children[0],S=D(w);h=v.getBoundingClientRect(),S.attr("width",h.width),S.attr("height",h.height)}const y=t.padding/2;return D(w).attr("transform","translate( "+(h.width>b.width?0:(b.width-h.width)/2)+", "+(b.height+y+5)+")"),D(u).attr("transform","translate( "+(h.width{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=s.height+t.padding,c=s.width+i/4+t.padding,r=a.insert("rect",":first-child").attr("style",t.style).attr("rx",i/2).attr("ry",i/2).attr("x",-c/2).attr("y",-i/2).attr("width",c).attr("height",i);return I(t,r),t.intersect=function(n){return B.rect(t,n)},a},"stadium"),ba=g(async(e,t)=>{const{shapeSvg:a,bbox:s,halfPadding:i}=await A(e,t,Y(t,void 0),!0),c=a.insert("circle",":first-child");return c.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",s.width/2+i).attr("width",s.width+t.padding).attr("height",s.height+t.padding),k.info("Circle main"),I(t,c),t.intersect=function(r){return k.info("Circle intersect",t,s.width/2+i,r),B.circle(t,s.width/2+i,r)},a},"circle"),wa=g(async(e,t)=>{const{shapeSvg:a,bbox:s,halfPadding:i}=await A(e,t,Y(t,void 0),!0),c=5,r=a.insert("g",":first-child"),n=r.insert("circle"),l=r.insert("circle");return r.attr("class",t.class),n.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",s.width/2+i+c).attr("width",s.width+t.padding+c*2).attr("height",s.height+t.padding+c*2),l.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",s.width/2+i).attr("width",s.width+t.padding).attr("height",s.height+t.padding),k.info("DoubleCircle main"),I(t,n),t.intersect=function(u){return k.info("DoubleCircle intersect",t,s.width/2+i+c,u),B.circle(t,s.width/2+i+c,u)},a},"doublecircle"),ma=g(async(e,t)=>{const{shapeSvg:a,bbox:s}=await A(e,t,Y(t,void 0),!0),i=s.width+t.padding,c=s.height+t.padding,r=[{x:0,y:0},{x:i,y:0},{x:i,y:-c},{x:0,y:-c},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-c},{x:-8,y:-c},{x:-8,y:0}],n=X(a,i,c,r);return n.attr("style",t.style),I(t,n),t.intersect=function(l){return B.polygon(t,r,l)},a},"subroutine"),Sa=g((e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),s=a.insert("circle",":first-child");return s.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),I(t,s),t.intersect=function(i){return B.circle(t,7,i)},a},"start"),Yt=g((e,t,a)=>{const s=e.insert("g").attr("class","node default").attr("id",t.domId||t.id);let i=70,c=10;a==="LR"&&(i=10,c=70);const r=s.append("rect").attr("x",-1*i/2).attr("y",-1*c/2).attr("width",i).attr("height",c).attr("class","fork-join");return I(t,r),t.height=t.height+t.padding/2,t.width=t.width+t.padding/2,t.intersect=function(n){return B.rect(t,n)},s},"forkJoin"),La=g((e,t)=>{const a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),s=a.insert("circle",":first-child"),i=a.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),s.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),I(t,i),t.intersect=function(c){return B.circle(t,7,c)},a},"end"),ka=g(async(e,t)=>{const a=t.padding/2,s=4,i=8;let c;t.classes?c="node "+t.classes:c="node default";const r=e.insert("g").attr("class",c).attr("id",t.domId||t.id),n=r.insert("rect",":first-child"),l=r.insert("line"),u=r.insert("line");let h=0,d=s;const b=r.insert("g").attr("class","label");let w=0;const y=t.classData.annotations?.[0],v=t.classData.annotations[0]?"«"+t.classData.annotations[0]+"»":"",S=await K(b,v,t.labelStyle,!0,!0);let N=S.getBBox();if(M(R())){const E=S.children[0],o=D(S);N=E.getBoundingClientRect(),o.attr("width",N.width),o.attr("height",N.height)}t.classData.annotations[0]&&(d+=N.height+s,h+=N.width);let _=t.classData.label;t.classData.type!==void 0&&t.classData.type!==""&&(M(R())?_+="<"+t.classData.type+">":_+="<"+t.classData.type+">");const T=await K(b,_,t.labelStyle,!0,!0);D(T).attr("class","classTitle");let m=T.getBBox();if(M(R())){const E=T.children[0],o=D(T);m=E.getBoundingClientRect(),o.attr("width",m.width),o.attr("height",m.height)}d+=m.height+s,m.width>h&&(h=m.width);const p=[];t.classData.members.forEach(async E=>{const o=E.getDisplayDetails();let F=o.displayText;M(R())&&(F=F.replace(//g,">"));const f=await K(b,F,o.cssStyle?o.cssStyle:t.labelStyle,!0,!0);let C=f.getBBox();if(M(R())){const Z=f.children[0],V=D(f);C=Z.getBoundingClientRect(),V.attr("width",C.width),V.attr("height",C.height)}C.width>h&&(h=C.width),d+=C.height+s,p.push(f)}),d+=i;const x=[];if(t.classData.methods.forEach(async E=>{const o=E.getDisplayDetails();let F=o.displayText;M(R())&&(F=F.replace(//g,">"));const f=await K(b,F,o.cssStyle?o.cssStyle:t.labelStyle,!0,!0);let C=f.getBBox();if(M(R())){const Z=f.children[0],V=D(f);C=Z.getBoundingClientRect(),V.attr("width",C.width),V.attr("height",C.height)}C.width>h&&(h=C.width),d+=C.height+s,x.push(f)}),d+=i,y){let E=(h-N.width)/2;D(S).attr("transform","translate( "+(-1*h/2+E)+", "+-1*d/2+")"),w=N.height+s}let L=(h-m.width)/2;return D(T).attr("transform","translate( "+(-1*h/2+L)+", "+(-1*d/2+w)+")"),w+=m.height+s,l.attr("class","divider").attr("x1",-h/2-a).attr("x2",h/2+a).attr("y1",-d/2-a+i+w).attr("y2",-d/2-a+i+w),w+=i,p.forEach(E=>{D(E).attr("transform","translate( "+-h/2+", "+(-1*d/2+w+i/2)+")");const o=E?.getBBox();w+=(o?.height??0)+s}),w+=i,u.attr("class","divider").attr("x1",-h/2-a).attr("x2",h/2+a).attr("y1",-d/2-a+i+w).attr("y2",-d/2-a+i+w),w+=i,x.forEach(E=>{D(E).attr("transform","translate( "+-h/2+", "+(-1*d/2+w)+")");const o=E?.getBBox();w+=(o?.height??0)+s}),n.attr("style",t.style).attr("class","outer title-state").attr("x",-h/2-a).attr("y",-(d/2)-a).attr("width",h+t.padding).attr("height",d+t.padding),I(t,n),t.intersect=function(E){return B.rect(t,E)},r},"class_box"),Ht={rhombus:Wt,composite:pa,question:Wt,rect:da,labelRect:fa,rectWithTitle:xa,choice:aa,circle:ba,doublecircle:wa,stadium:ya,hexagon:sa,block_arrow:ia,rect_left_inv_arrow:na,lean_right:ca,lean_left:la,trapezoid:oa,inv_trapezoid:ha,rect_right_inv_arrow:ga,cylinder:ua,start:Sa,end:La,note:ra,subroutine:ma,fork:Yt,join:Yt,class_box:ka},nt={},ie=g(async(e,t,a)=>{let s,i;if(t.link){let c;R().securityLevel==="sandbox"?c="_top":t.linkTarget&&(c=t.linkTarget||"_blank"),s=e.insert("svg:a").attr("xlink:href",t.link).attr("target",c),i=await Ht[t.shape](s,t,a)}else i=await Ht[t.shape](e,t,a),s=i;return t.tooltip&&i.attr("title",t.tooltip),t.class&&i.attr("class","node default "+t.class),nt[t.id]=s,t.haveCallback&&nt[t.id].attr("class",nt[t.id].attr("class")+" clickable"),s},"insertNode"),va=g(e=>{const t=nt[e.id];k.trace("Transforming node",e.diff,e,"translate("+(e.x-e.width/2-5)+", "+e.width/2+")");const a=8,s=e.diff||0;return e.clusterNode?t.attr("transform","translate("+(e.x+s-e.width/2)+", "+(e.y-e.height/2-a)+")"):t.attr("transform","translate("+e.x+", "+e.y+")"),s},"positionNode");function Bt(e,t,a=!1){const s=e;let i="default";(s?.classes?.length||0)>0&&(i=(s?.classes??[]).join(" ")),i=i+" flowchart-label";let c=0,r="",n;switch(s.type){case"round":c=5,r="rect";break;case"composite":c=0,r="composite",n=0;break;case"square":r="rect";break;case"diamond":r="question";break;case"hexagon":r="hexagon";break;case"block_arrow":r="block_arrow";break;case"odd":r="rect_left_inv_arrow";break;case"lean_right":r="lean_right";break;case"lean_left":r="lean_left";break;case"trapezoid":r="trapezoid";break;case"inv_trapezoid":r="inv_trapezoid";break;case"rect_left_inv_arrow":r="rect_left_inv_arrow";break;case"circle":r="circle";break;case"ellipse":r="ellipse";break;case"stadium":r="stadium";break;case"subroutine":r="subroutine";break;case"cylinder":r="cylinder";break;case"group":r="rect";break;case"doublecircle":r="doublecircle";break;default:r="rect"}const l=je(s?.styles??[]),u=s.label,h=s.size??{width:0,height:0,x:0,y:0},d=t.getDiagramId();return{labelStyle:l.labelStyle,shape:r,labelText:u,rx:c,ry:c,class:i,style:l.style,id:s.id,domId:d?`${d}-${s.id}`:s.id,directions:s.directions,width:h.width,height:h.height,x:h.x,y:h.y,positioned:a,intersect:void 0,type:s.type,padding:n??rt()?.block?.padding??0,widthInColumns:s.widthInColumns??1}}g(Bt,"getNodeFromBlock");async function ne(e,t,a){const s=Bt(t,a,!1);if(s.type==="group")return;const i=rt(),c=await ie(e,s,{config:i}),r=c.node().getBBox(),n=a.getBlock(s.id);n.size={width:r.width,height:r.height,x:0,y:0,node:c},a.setBlock(n),c.remove()}g(ne,"calculateBlockSize");async function ce(e,t,a){const s=Bt(t,a,!0);if(a.getBlock(s.id).type!=="space"){const c=rt();await ie(e,s,{config:c}),t.intersect=s?.intersect,va(s)}}g(ce,"insertBlockPositioned");async function ht(e,t,a,s){for(const i of t)await s(e,i,a),i.children&&await ht(e,i.children,a,s)}g(ht,"performOperations");async function le(e,t,a){await ht(e,t,a,ne)}g(le,"calculateBlockSizes");async function oe(e,t,a){await ht(e,t,a,ce)}g(oe,"insertBlocks");async function he(e,t,a,s,i){const c=new Ze({multigraph:!0,compound:!0});c.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(const r of a)r.size&&c.setNode(r.id,{width:r.size.width,height:r.size.height,intersect:r.intersect});for(const r of t)if(r.start&&r.end){const n=s.getBlock(r.start),l=s.getBlock(r.end);if(n?.size&&l?.size){const u=n.size,h=l.size,d=[{x:u.x,y:u.y},{x:u.x+(h.x-u.x)/2,y:u.y+(h.y-u.y)/2},{x:h.x,y:h.y}],b=i?`${i}-${r.id}`:r.id,w=r.thickness==="thick"?"edge-thickness-thick":"edge-thickness-normal",y=r.pattern==="dotted"?"edge-pattern-dotted":"edge-pattern-solid",v=`${w} ${y} flowchart-link LS-a1 LE-b1`;Vr(e,{v:r.start,w:r.end,name:b},{...r,id:b,arrowTypeEnd:r.arrowTypeEnd,arrowTypeStart:r.arrowTypeStart,points:d,classes:v},void 0,"block",c,i),r.label&&(await Hr(e,{...r,label:r.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:r.arrowTypeEnd,arrowTypeStart:r.arrowTypeStart,points:d,classes:v}),Kr({...r,x:d[1].x,y:d[1].y},{originalPath:d}))}}}g(he,"insertEdges");var Ea=g(function(e,t){return t.db.getClasses()},"getClasses"),_a=g(async function(e,t,a,s){const{securityLevel:i,block:c}=rt(),r=s.db;r.setDiagramId(t);let n;i==="sandbox"&&(n=D("#i"+t));const l=i==="sandbox"?D(n.nodes()[0].contentDocument.body):D("body"),u=i==="sandbox"?l.select(`[id="${t}"]`):D(`[id="${t}"]`);Mr(u,["point","circle","cross"],s.type,t);const d=r.getBlocks(),b=r.getBlocksFlat(),w=r.getEdges(),y=u.insert("g").attr("class","block");await le(y,d,r);const v=Qt(r);if(await oe(y,d,r),await he(y,w,b,r,t),v){const S=v,N=Math.max(1,Math.round(.125*(S.width/S.height))),_=S.height+N+10,T=S.width+10,{useMaxWidth:m}=c;Pe(u,_,T,!!m),k.debug("Here Bounds",v,S),u.attr("viewBox",`${S.x-5} ${S.y-5} ${S.width+10} ${S.height+10}`)}},"draw"),Ta={draw:_a,getClasses:Ea},Oa={parser:ar,db:kr,renderer:Ta,styles:Er};export{Oa as diagram}; diff --git a/apps/kimi-code/dist-web/assets/c4Diagram-LMCZKHZV-DLgWFktO.js b/apps/kimi-code/dist-web/assets/c4Diagram-LMCZKHZV-FIxdIiPR.js similarity index 80% rename from apps/kimi-code/dist-web/assets/c4Diagram-LMCZKHZV-DLgWFktO.js rename to apps/kimi-code/dist-web/assets/c4Diagram-LMCZKHZV-FIxdIiPR.js index e56449407..22716357a 100644 --- a/apps/kimi-code/dist-web/assets/c4Diagram-LMCZKHZV-DLgWFktO.js +++ b/apps/kimi-code/dist-web/assets/c4Diagram-LMCZKHZV-FIxdIiPR.js @@ -1,4 +1,4 @@ -import{g as Oe,d as Re}from"./chunk-32BRIVSS-DpG03lEd.js";import{s as Se,g as De,a as Pe,b as Be,_ as y,c as Dt,d as Nt,l as he,e as Ie,f as Me,h as Tt,i as pe,j as Le,w as Ne,k as Jt,m as ue}from"./mermaid.core-CgZTgv7Y.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var jt=(function(){var e=y(function(_t,x,v,E){for(v=v||{},E=_t.length;E--;v[_t[E]]=x);return v},"o"),t=[1,24],s=[1,25],o=[1,26],l=[1,27],r=[1,28],a=[1,63],n=[1,64],i=[1,65],u=[1,66],d=[1,67],p=[1,68],g=[1,69],m=[1,29],O=[1,30],S=[1,31],P=[1,32],M=[1,33],U=[1,34],H=[1,35],q=[1,36],G=[1,37],K=[1,38],J=[1,39],Z=[1,40],$=[1,41],tt=[1,42],et=[1,43],at=[1,44],it=[1,45],nt=[1,46],st=[1,47],rt=[1,48],lt=[1,50],ot=[1,51],ct=[1,52],ht=[1,53],ut=[1,54],dt=[1,55],ft=[1,56],pt=[1,57],yt=[1,58],gt=[1,59],bt=[1,60],Ct=[14,42],Xt=[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],Ot=[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],A=[1,82],k=[1,83],C=[1,84],w=[1,85],T=[12,14,42],se=[12,14,33,42],Bt=[12,14,33,42,76,77,79,80],vt=[12,33],Wt=[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],Qt={trace:y(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:y(function(x,v,E,b,R,h,Rt){var f=h.length-1;switch(R){case 3:b.setDirection("TB");break;case 4:b.setDirection("BT");break;case 5:b.setDirection("RL");break;case 6:b.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:b.setC4Type(h[f-3]);break;case 19:b.setTitle(h[f].substring(6)),this.$=h[f].substring(6);break;case 20:b.setAccDescription(h[f].substring(15)),this.$=h[f].substring(15);break;case 21:this.$=h[f].trim(),b.setTitle(this.$);break;case 22:case 23:this.$=h[f].trim(),b.setAccDescription(this.$);break;case 28:h[f].splice(2,0,"ENTERPRISE"),b.addPersonOrSystemBoundary(...h[f]),this.$=h[f];break;case 29:h[f].splice(2,0,"SYSTEM"),b.addPersonOrSystemBoundary(...h[f]),this.$=h[f];break;case 30:b.addPersonOrSystemBoundary(...h[f]),this.$=h[f];break;case 31:h[f].splice(2,0,"CONTAINER"),b.addContainerBoundary(...h[f]),this.$=h[f];break;case 32:b.addDeploymentNode("node",...h[f]),this.$=h[f];break;case 33:b.addDeploymentNode("nodeL",...h[f]),this.$=h[f];break;case 34:b.addDeploymentNode("nodeR",...h[f]),this.$=h[f];break;case 35:b.popBoundaryParseStack();break;case 39:b.addPersonOrSystem("person",...h[f]),this.$=h[f];break;case 40:b.addPersonOrSystem("external_person",...h[f]),this.$=h[f];break;case 41:b.addPersonOrSystem("system",...h[f]),this.$=h[f];break;case 42:b.addPersonOrSystem("system_db",...h[f]),this.$=h[f];break;case 43:b.addPersonOrSystem("system_queue",...h[f]),this.$=h[f];break;case 44:b.addPersonOrSystem("external_system",...h[f]),this.$=h[f];break;case 45:b.addPersonOrSystem("external_system_db",...h[f]),this.$=h[f];break;case 46:b.addPersonOrSystem("external_system_queue",...h[f]),this.$=h[f];break;case 47:b.addContainer("container",...h[f]),this.$=h[f];break;case 48:b.addContainer("container_db",...h[f]),this.$=h[f];break;case 49:b.addContainer("container_queue",...h[f]),this.$=h[f];break;case 50:b.addContainer("external_container",...h[f]),this.$=h[f];break;case 51:b.addContainer("external_container_db",...h[f]),this.$=h[f];break;case 52:b.addContainer("external_container_queue",...h[f]),this.$=h[f];break;case 53:b.addComponent("component",...h[f]),this.$=h[f];break;case 54:b.addComponent("component_db",...h[f]),this.$=h[f];break;case 55:b.addComponent("component_queue",...h[f]),this.$=h[f];break;case 56:b.addComponent("external_component",...h[f]),this.$=h[f];break;case 57:b.addComponent("external_component_db",...h[f]),this.$=h[f];break;case 58:b.addComponent("external_component_queue",...h[f]),this.$=h[f];break;case 60:b.addRel("rel",...h[f]),this.$=h[f];break;case 61:b.addRel("birel",...h[f]),this.$=h[f];break;case 62:b.addRel("rel_u",...h[f]),this.$=h[f];break;case 63:b.addRel("rel_d",...h[f]),this.$=h[f];break;case 64:b.addRel("rel_l",...h[f]),this.$=h[f];break;case 65:b.addRel("rel_r",...h[f]),this.$=h[f];break;case 66:b.addRel("rel_b",...h[f]),this.$=h[f];break;case 67:h[f].splice(0,1),b.addRel("rel",...h[f]),this.$=h[f];break;case 68:b.updateElStyle("update_el_style",...h[f]),this.$=h[f];break;case 69:b.updateRelStyle("update_rel_style",...h[f]),this.$=h[f];break;case 70:b.updateLayoutConfig("update_layout_config",...h[f]),this.$=h[f];break;case 71:this.$=[h[f]];break;case 72:h[f].unshift(h[f-1]),this.$=h[f];break;case 73:case 75:this.$=h[f].trim();break;case 74:let Et={};Et[h[f-1].trim()]=h[f].trim(),this.$=Et;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:s,24:o,26:l,28:r,29:49,30:61,32:62,34:a,36:n,37:i,38:u,39:d,40:p,41:g,43:23,44:m,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:st,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:70,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:r,29:49,30:61,32:62,34:a,36:n,37:i,38:u,39:d,40:p,41:g,43:23,44:m,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:st,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:71,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:r,29:49,30:61,32:62,34:a,36:n,37:i,38:u,39:d,40:p,41:g,43:23,44:m,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:st,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:72,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:r,29:49,30:61,32:62,34:a,36:n,37:i,38:u,39:d,40:p,41:g,43:23,44:m,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:st,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:73,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:r,29:49,30:61,32:62,34:a,36:n,37:i,38:u,39:d,40:p,41:g,43:23,44:m,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:st,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{14:[1,74]},e(Ct,[2,13],{43:23,29:49,30:61,32:62,20:75,34:a,36:n,37:i,38:u,39:d,40:p,41:g,44:m,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:st,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt}),e(Ct,[2,14]),e(Xt,[2,16],{12:[1,76]}),e(Ct,[2,36],{12:[1,77]}),e(Ot,[2,19]),e(Ot,[2,20]),{25:[1,78]},{27:[1,79]},e(Ot,[2,23]),{35:80,75:81,76:A,77:k,79:C,80:w},{35:86,75:81,76:A,77:k,79:C,80:w},{35:87,75:81,76:A,77:k,79:C,80:w},{35:88,75:81,76:A,77:k,79:C,80:w},{35:89,75:81,76:A,77:k,79:C,80:w},{35:90,75:81,76:A,77:k,79:C,80:w},{35:91,75:81,76:A,77:k,79:C,80:w},{35:92,75:81,76:A,77:k,79:C,80:w},{35:93,75:81,76:A,77:k,79:C,80:w},{35:94,75:81,76:A,77:k,79:C,80:w},{35:95,75:81,76:A,77:k,79:C,80:w},{35:96,75:81,76:A,77:k,79:C,80:w},{35:97,75:81,76:A,77:k,79:C,80:w},{35:98,75:81,76:A,77:k,79:C,80:w},{35:99,75:81,76:A,77:k,79:C,80:w},{35:100,75:81,76:A,77:k,79:C,80:w},{35:101,75:81,76:A,77:k,79:C,80:w},{35:102,75:81,76:A,77:k,79:C,80:w},{35:103,75:81,76:A,77:k,79:C,80:w},{35:104,75:81,76:A,77:k,79:C,80:w},e(T,[2,59]),{35:105,75:81,76:A,77:k,79:C,80:w},{35:106,75:81,76:A,77:k,79:C,80:w},{35:107,75:81,76:A,77:k,79:C,80:w},{35:108,75:81,76:A,77:k,79:C,80:w},{35:109,75:81,76:A,77:k,79:C,80:w},{35:110,75:81,76:A,77:k,79:C,80:w},{35:111,75:81,76:A,77:k,79:C,80:w},{35:112,75:81,76:A,77:k,79:C,80:w},{35:113,75:81,76:A,77:k,79:C,80:w},{35:114,75:81,76:A,77:k,79:C,80:w},{35:115,75:81,76:A,77:k,79:C,80:w},{20:116,29:49,30:61,32:62,34:a,36:n,37:i,38:u,39:d,40:p,41:g,43:23,44:m,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:st,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{12:[1,118],33:[1,117]},{35:119,75:81,76:A,77:k,79:C,80:w},{35:120,75:81,76:A,77:k,79:C,80:w},{35:121,75:81,76:A,77:k,79:C,80:w},{35:122,75:81,76:A,77:k,79:C,80:w},{35:123,75:81,76:A,77:k,79:C,80:w},{35:124,75:81,76:A,77:k,79:C,80:w},{35:125,75:81,76:A,77:k,79:C,80:w},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},e(Ct,[2,15]),e(Xt,[2,17],{21:22,19:130,22:t,23:s,24:o,26:l,28:r}),e(Ct,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:t,23:s,24:o,26:l,28:r,34:a,36:n,37:i,38:u,39:d,40:p,41:g,44:m,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:st,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt}),e(Ot,[2,21]),e(Ot,[2,22]),e(T,[2,39]),e(se,[2,71],{75:81,35:132,76:A,77:k,79:C,80:w}),e(Bt,[2,73]),{78:[1,133]},e(Bt,[2,75]),e(Bt,[2,76]),e(T,[2,40]),e(T,[2,41]),e(T,[2,42]),e(T,[2,43]),e(T,[2,44]),e(T,[2,45]),e(T,[2,46]),e(T,[2,47]),e(T,[2,48]),e(T,[2,49]),e(T,[2,50]),e(T,[2,51]),e(T,[2,52]),e(T,[2,53]),e(T,[2,54]),e(T,[2,55]),e(T,[2,56]),e(T,[2,57]),e(T,[2,58]),e(T,[2,60]),e(T,[2,61]),e(T,[2,62]),e(T,[2,63]),e(T,[2,64]),e(T,[2,65]),e(T,[2,66]),e(T,[2,67]),e(T,[2,68]),e(T,[2,69]),e(T,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},e(vt,[2,28]),e(vt,[2,29]),e(vt,[2,30]),e(vt,[2,31]),e(vt,[2,32]),e(vt,[2,33]),e(vt,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},e(Xt,[2,18]),e(Ct,[2,38]),e(se,[2,72]),e(Bt,[2,74]),e(T,[2,24]),e(T,[2,35]),e(Wt,[2,25]),e(Wt,[2,26],{12:[1,138]}),e(Wt,[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:y(function(x,v){if(v.recoverable)this.trace(x);else{var E=new Error(x);throw E.hash=v,E}},"parseError"),parse:y(function(x){var v=this,E=[0],b=[],R=[null],h=[],Rt=this.table,f="",Et=0,re=0,ke=2,le=1,Ce=h.slice.call(arguments,1),D=Object.create(this.lexer),At={yy:{}};for(var Ht in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ht)&&(At.yy[Ht]=this.yy[Ht]);D.setInput(x,At.yy),At.yy.lexer=D,At.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var qt=D.yylloc;h.push(qt);var we=D.options&&D.options.ranges;typeof At.yy.parseError=="function"?this.parseError=At.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Te(L){E.length=E.length-2*L,R.length=R.length-L,h.length=h.length-L}y(Te,"popStack");function oe(){var L;return L=b.pop()||D.lex()||le,typeof L!="number"&&(L instanceof Array&&(b=L,L=b.pop()),L=v.symbols_[L]||L),L}y(oe,"lex");for(var I,kt,N,Gt,wt={},Mt,W,ce,Lt;;){if(kt=E[E.length-1],this.defaultActions[kt]?N=this.defaultActions[kt]:((I===null||typeof I>"u")&&(I=oe()),N=Rt[kt]&&Rt[kt][I]),typeof N>"u"||!N.length||!N[0]){var Kt="";Lt=[];for(Mt in Rt[kt])this.terminals_[Mt]&&Mt>ke&&Lt.push("'"+this.terminals_[Mt]+"'");D.showPosition?Kt="Parse error on line "+(Et+1)+`: +import{g as Oe,d as Re}from"./chunk-32BRIVSS-D_mpvupa.js";import{s as Se,g as De,a as Pe,b as Be,_ as y,c as Dt,d as Nt,l as he,e as Ie,f as Me,h as Tt,i as pe,j as Le,w as Ne,k as Jt,m as ue}from"./mermaid.core-B_UcP3X_.js";import"./index-BOtIzGLC.js";var jt=(function(){var e=y(function(_t,x,v,E){for(v=v||{},E=_t.length;E--;v[_t[E]]=x);return v},"o"),t=[1,24],s=[1,25],o=[1,26],l=[1,27],r=[1,28],a=[1,63],n=[1,64],i=[1,65],u=[1,66],d=[1,67],p=[1,68],g=[1,69],m=[1,29],O=[1,30],S=[1,31],P=[1,32],M=[1,33],U=[1,34],H=[1,35],q=[1,36],G=[1,37],K=[1,38],J=[1,39],Z=[1,40],$=[1,41],tt=[1,42],et=[1,43],at=[1,44],it=[1,45],nt=[1,46],st=[1,47],rt=[1,48],lt=[1,50],ot=[1,51],ct=[1,52],ht=[1,53],ut=[1,54],dt=[1,55],ft=[1,56],pt=[1,57],yt=[1,58],gt=[1,59],bt=[1,60],Ct=[14,42],Xt=[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],Ot=[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],A=[1,82],k=[1,83],C=[1,84],w=[1,85],T=[12,14,42],se=[12,14,33,42],Bt=[12,14,33,42,76,77,79,80],vt=[12,33],Wt=[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],Qt={trace:y(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:y(function(x,v,E,b,R,h,Rt){var f=h.length-1;switch(R){case 3:b.setDirection("TB");break;case 4:b.setDirection("BT");break;case 5:b.setDirection("RL");break;case 6:b.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:b.setC4Type(h[f-3]);break;case 19:b.setTitle(h[f].substring(6)),this.$=h[f].substring(6);break;case 20:b.setAccDescription(h[f].substring(15)),this.$=h[f].substring(15);break;case 21:this.$=h[f].trim(),b.setTitle(this.$);break;case 22:case 23:this.$=h[f].trim(),b.setAccDescription(this.$);break;case 28:h[f].splice(2,0,"ENTERPRISE"),b.addPersonOrSystemBoundary(...h[f]),this.$=h[f];break;case 29:h[f].splice(2,0,"SYSTEM"),b.addPersonOrSystemBoundary(...h[f]),this.$=h[f];break;case 30:b.addPersonOrSystemBoundary(...h[f]),this.$=h[f];break;case 31:h[f].splice(2,0,"CONTAINER"),b.addContainerBoundary(...h[f]),this.$=h[f];break;case 32:b.addDeploymentNode("node",...h[f]),this.$=h[f];break;case 33:b.addDeploymentNode("nodeL",...h[f]),this.$=h[f];break;case 34:b.addDeploymentNode("nodeR",...h[f]),this.$=h[f];break;case 35:b.popBoundaryParseStack();break;case 39:b.addPersonOrSystem("person",...h[f]),this.$=h[f];break;case 40:b.addPersonOrSystem("external_person",...h[f]),this.$=h[f];break;case 41:b.addPersonOrSystem("system",...h[f]),this.$=h[f];break;case 42:b.addPersonOrSystem("system_db",...h[f]),this.$=h[f];break;case 43:b.addPersonOrSystem("system_queue",...h[f]),this.$=h[f];break;case 44:b.addPersonOrSystem("external_system",...h[f]),this.$=h[f];break;case 45:b.addPersonOrSystem("external_system_db",...h[f]),this.$=h[f];break;case 46:b.addPersonOrSystem("external_system_queue",...h[f]),this.$=h[f];break;case 47:b.addContainer("container",...h[f]),this.$=h[f];break;case 48:b.addContainer("container_db",...h[f]),this.$=h[f];break;case 49:b.addContainer("container_queue",...h[f]),this.$=h[f];break;case 50:b.addContainer("external_container",...h[f]),this.$=h[f];break;case 51:b.addContainer("external_container_db",...h[f]),this.$=h[f];break;case 52:b.addContainer("external_container_queue",...h[f]),this.$=h[f];break;case 53:b.addComponent("component",...h[f]),this.$=h[f];break;case 54:b.addComponent("component_db",...h[f]),this.$=h[f];break;case 55:b.addComponent("component_queue",...h[f]),this.$=h[f];break;case 56:b.addComponent("external_component",...h[f]),this.$=h[f];break;case 57:b.addComponent("external_component_db",...h[f]),this.$=h[f];break;case 58:b.addComponent("external_component_queue",...h[f]),this.$=h[f];break;case 60:b.addRel("rel",...h[f]),this.$=h[f];break;case 61:b.addRel("birel",...h[f]),this.$=h[f];break;case 62:b.addRel("rel_u",...h[f]),this.$=h[f];break;case 63:b.addRel("rel_d",...h[f]),this.$=h[f];break;case 64:b.addRel("rel_l",...h[f]),this.$=h[f];break;case 65:b.addRel("rel_r",...h[f]),this.$=h[f];break;case 66:b.addRel("rel_b",...h[f]),this.$=h[f];break;case 67:h[f].splice(0,1),b.addRel("rel",...h[f]),this.$=h[f];break;case 68:b.updateElStyle("update_el_style",...h[f]),this.$=h[f];break;case 69:b.updateRelStyle("update_rel_style",...h[f]),this.$=h[f];break;case 70:b.updateLayoutConfig("update_layout_config",...h[f]),this.$=h[f];break;case 71:this.$=[h[f]];break;case 72:h[f].unshift(h[f-1]),this.$=h[f];break;case 73:case 75:this.$=h[f].trim();break;case 74:let Et={};Et[h[f-1].trim()]=h[f].trim(),this.$=Et;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:s,24:o,26:l,28:r,29:49,30:61,32:62,34:a,36:n,37:i,38:u,39:d,40:p,41:g,43:23,44:m,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:st,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:70,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:r,29:49,30:61,32:62,34:a,36:n,37:i,38:u,39:d,40:p,41:g,43:23,44:m,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:st,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:71,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:r,29:49,30:61,32:62,34:a,36:n,37:i,38:u,39:d,40:p,41:g,43:23,44:m,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:st,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:72,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:r,29:49,30:61,32:62,34:a,36:n,37:i,38:u,39:d,40:p,41:g,43:23,44:m,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:st,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{13:73,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:r,29:49,30:61,32:62,34:a,36:n,37:i,38:u,39:d,40:p,41:g,43:23,44:m,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:st,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{14:[1,74]},e(Ct,[2,13],{43:23,29:49,30:61,32:62,20:75,34:a,36:n,37:i,38:u,39:d,40:p,41:g,44:m,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:st,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt}),e(Ct,[2,14]),e(Xt,[2,16],{12:[1,76]}),e(Ct,[2,36],{12:[1,77]}),e(Ot,[2,19]),e(Ot,[2,20]),{25:[1,78]},{27:[1,79]},e(Ot,[2,23]),{35:80,75:81,76:A,77:k,79:C,80:w},{35:86,75:81,76:A,77:k,79:C,80:w},{35:87,75:81,76:A,77:k,79:C,80:w},{35:88,75:81,76:A,77:k,79:C,80:w},{35:89,75:81,76:A,77:k,79:C,80:w},{35:90,75:81,76:A,77:k,79:C,80:w},{35:91,75:81,76:A,77:k,79:C,80:w},{35:92,75:81,76:A,77:k,79:C,80:w},{35:93,75:81,76:A,77:k,79:C,80:w},{35:94,75:81,76:A,77:k,79:C,80:w},{35:95,75:81,76:A,77:k,79:C,80:w},{35:96,75:81,76:A,77:k,79:C,80:w},{35:97,75:81,76:A,77:k,79:C,80:w},{35:98,75:81,76:A,77:k,79:C,80:w},{35:99,75:81,76:A,77:k,79:C,80:w},{35:100,75:81,76:A,77:k,79:C,80:w},{35:101,75:81,76:A,77:k,79:C,80:w},{35:102,75:81,76:A,77:k,79:C,80:w},{35:103,75:81,76:A,77:k,79:C,80:w},{35:104,75:81,76:A,77:k,79:C,80:w},e(T,[2,59]),{35:105,75:81,76:A,77:k,79:C,80:w},{35:106,75:81,76:A,77:k,79:C,80:w},{35:107,75:81,76:A,77:k,79:C,80:w},{35:108,75:81,76:A,77:k,79:C,80:w},{35:109,75:81,76:A,77:k,79:C,80:w},{35:110,75:81,76:A,77:k,79:C,80:w},{35:111,75:81,76:A,77:k,79:C,80:w},{35:112,75:81,76:A,77:k,79:C,80:w},{35:113,75:81,76:A,77:k,79:C,80:w},{35:114,75:81,76:A,77:k,79:C,80:w},{35:115,75:81,76:A,77:k,79:C,80:w},{20:116,29:49,30:61,32:62,34:a,36:n,37:i,38:u,39:d,40:p,41:g,43:23,44:m,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:st,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt},{12:[1,118],33:[1,117]},{35:119,75:81,76:A,77:k,79:C,80:w},{35:120,75:81,76:A,77:k,79:C,80:w},{35:121,75:81,76:A,77:k,79:C,80:w},{35:122,75:81,76:A,77:k,79:C,80:w},{35:123,75:81,76:A,77:k,79:C,80:w},{35:124,75:81,76:A,77:k,79:C,80:w},{35:125,75:81,76:A,77:k,79:C,80:w},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},e(Ct,[2,15]),e(Xt,[2,17],{21:22,19:130,22:t,23:s,24:o,26:l,28:r}),e(Ct,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:t,23:s,24:o,26:l,28:r,34:a,36:n,37:i,38:u,39:d,40:p,41:g,44:m,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:nt,62:st,63:rt,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:gt,74:bt}),e(Ot,[2,21]),e(Ot,[2,22]),e(T,[2,39]),e(se,[2,71],{75:81,35:132,76:A,77:k,79:C,80:w}),e(Bt,[2,73]),{78:[1,133]},e(Bt,[2,75]),e(Bt,[2,76]),e(T,[2,40]),e(T,[2,41]),e(T,[2,42]),e(T,[2,43]),e(T,[2,44]),e(T,[2,45]),e(T,[2,46]),e(T,[2,47]),e(T,[2,48]),e(T,[2,49]),e(T,[2,50]),e(T,[2,51]),e(T,[2,52]),e(T,[2,53]),e(T,[2,54]),e(T,[2,55]),e(T,[2,56]),e(T,[2,57]),e(T,[2,58]),e(T,[2,60]),e(T,[2,61]),e(T,[2,62]),e(T,[2,63]),e(T,[2,64]),e(T,[2,65]),e(T,[2,66]),e(T,[2,67]),e(T,[2,68]),e(T,[2,69]),e(T,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},e(vt,[2,28]),e(vt,[2,29]),e(vt,[2,30]),e(vt,[2,31]),e(vt,[2,32]),e(vt,[2,33]),e(vt,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},e(Xt,[2,18]),e(Ct,[2,38]),e(se,[2,72]),e(Bt,[2,74]),e(T,[2,24]),e(T,[2,35]),e(Wt,[2,25]),e(Wt,[2,26],{12:[1,138]}),e(Wt,[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:y(function(x,v){if(v.recoverable)this.trace(x);else{var E=new Error(x);throw E.hash=v,E}},"parseError"),parse:y(function(x){var v=this,E=[0],b=[],R=[null],h=[],Rt=this.table,f="",Et=0,re=0,ke=2,le=1,Ce=h.slice.call(arguments,1),D=Object.create(this.lexer),At={yy:{}};for(var Ht in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ht)&&(At.yy[Ht]=this.yy[Ht]);D.setInput(x,At.yy),At.yy.lexer=D,At.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var qt=D.yylloc;h.push(qt);var we=D.options&&D.options.ranges;typeof At.yy.parseError=="function"?this.parseError=At.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Te(L){E.length=E.length-2*L,R.length=R.length-L,h.length=h.length-L}y(Te,"popStack");function oe(){var L;return L=b.pop()||D.lex()||le,typeof L!="number"&&(L instanceof Array&&(b=L,L=b.pop()),L=v.symbols_[L]||L),L}y(oe,"lex");for(var I,kt,N,Gt,wt={},Mt,W,ce,Lt;;){if(kt=E[E.length-1],this.defaultActions[kt]?N=this.defaultActions[kt]:((I===null||typeof I>"u")&&(I=oe()),N=Rt[kt]&&Rt[kt][I]),typeof N>"u"||!N.length||!N[0]){var Kt="";Lt=[];for(Mt in Rt[kt])this.terminals_[Mt]&&Mt>ke&&Lt.push("'"+this.terminals_[Mt]+"'");D.showPosition?Kt="Parse error on line "+(Et+1)+`: `+D.showPosition()+` Expecting `+Lt.join(", ")+", got '"+(this.terminals_[I]||I)+"'":Kt="Parse error on line "+(Et+1)+": Unexpected "+(I==le?"end of input":"'"+(this.terminals_[I]||I)+"'"),this.parseError(Kt,{text:D.match,token:this.terminals_[I]||I,line:D.yylineno,loc:qt,expected:Lt})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+kt+", token: "+I);switch(N[0]){case 1:E.push(I),R.push(D.yytext),h.push(D.yylloc),E.push(N[1]),I=null,re=D.yyleng,f=D.yytext,Et=D.yylineno,qt=D.yylloc;break;case 2:if(W=this.productions_[N[1]][1],wt.$=R[R.length-W],wt._$={first_line:h[h.length-(W||1)].first_line,last_line:h[h.length-1].last_line,first_column:h[h.length-(W||1)].first_column,last_column:h[h.length-1].last_column},we&&(wt._$.range=[h[h.length-(W||1)].range[0],h[h.length-1].range[1]]),Gt=this.performAction.apply(wt,[f,re,Et,At.yy,N[1],R,h].concat(Ce)),typeof Gt<"u")return Gt;W&&(E=E.slice(0,-1*W*2),R=R.slice(0,-1*W),h=h.slice(0,-1*W)),E.push(this.productions_[N[1]][0]),R.push(wt.$),h.push(wt._$),ce=Rt[E[E.length-2]][E[E.length-1]],E.push(ce);break;case 3:return!0}}return!0},"parse")},Ae=(function(){var _t={EOF:1,parseError:y(function(v,E){if(this.yy.parser)this.yy.parser.parseError(v,E);else throw new Error(v)},"parseError"),setInput:y(function(x,v){return this.yy=v||this.yy||{},this._input=x,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:y(function(){var x=this._input[0];this.yytext+=x,this.yyleng++,this.offset++,this.match+=x,this.matched+=x;var v=x.match(/(?:\r\n?|\n).*/g);return v?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),x},"input"),unput:y(function(x){var v=x.length,E=x.split(/(?:\r\n?|\n)/g);this._input=x+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-v),this.offset-=v;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),E.length-1&&(this.yylineno-=E.length-1);var R=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===b.length?this.yylloc.first_column:0)+b[b.length-E.length].length-E[0].length:this.yylloc.first_column-v},this.options.ranges&&(this.yylloc.range=[R[0],R[0]+this.yyleng-v]),this.yyleng=this.yytext.length,this},"unput"),more:y(function(){return this._more=!0,this},"more"),reject:y(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:y(function(x){this.unput(this.match.slice(x))},"less"),pastInput:y(function(){var x=this.matched.substr(0,this.matched.length-this.match.length);return(x.length>20?"...":"")+x.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:y(function(){var x=this.match;return x.length<20&&(x+=this._input.substr(0,20-x.length)),(x.substr(0,20)+(x.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:y(function(){var x=this.pastInput(),v=new Array(x.length+1).join("-");return x+this.upcomingInput()+` @@ -7,4 +7,4 @@ Expecting `+Lt.join(", ")+", got '"+(this.terminals_[I]||I)+"'":Kt="Parse error stroke: ${e.personBorder}; fill: ${e.personBkg}; } -`,"getStyles"),R0=O0,I0={parser:Ye,db:Zt,renderer:fe,styles:R0,init:y(({c4:e,wrap:t})=>{fe.setConf(e),Zt.setWrap(t)},"init")};export{I0 as diagram}; +`,"getStyles"),R0=O0,B0={parser:Ye,db:Zt,renderer:fe,styles:R0,init:y(({c4:e,wrap:t})=>{fe.setConf(e),Zt.setWrap(t)},"init")};export{B0 as diagram}; diff --git a/apps/kimi-code/dist-web/assets/channel-Bw0eTBly.js b/apps/kimi-code/dist-web/assets/channel-Bw0eTBly.js new file mode 100644 index 000000000..640ab0d02 --- /dev/null +++ b/apps/kimi-code/dist-web/assets/channel-Bw0eTBly.js @@ -0,0 +1 @@ +import{U as a,C as n}from"./mermaid.core-B_UcP3X_.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c}; diff --git a/apps/kimi-code/dist-web/assets/channel-IY5GdLm-.js b/apps/kimi-code/dist-web/assets/channel-IY5GdLm-.js deleted file mode 100644 index 114c2f14d..000000000 --- a/apps/kimi-code/dist-web/assets/channel-IY5GdLm-.js +++ /dev/null @@ -1 +0,0 @@ -import{U as a,O as n}from"./mermaid.core-CgZTgv7Y.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c}; diff --git a/apps/kimi-code/dist-web/assets/chunk-2Q5K7J3B-D8ifWrnI.js b/apps/kimi-code/dist-web/assets/chunk-2Q5K7J3B-CMIj8h4B.js similarity index 67% rename from apps/kimi-code/dist-web/assets/chunk-2Q5K7J3B-D8ifWrnI.js rename to apps/kimi-code/dist-web/assets/chunk-2Q5K7J3B-CMIj8h4B.js index 41968d868..9979182ca 100644 --- a/apps/kimi-code/dist-web/assets/chunk-2Q5K7J3B-D8ifWrnI.js +++ b/apps/kimi-code/dist-web/assets/chunk-2Q5K7J3B-CMIj8h4B.js @@ -1 +1 @@ -import{_ as i}from"./mermaid.core-CgZTgv7Y.js";var r=class{constructor(t){this.init=t,this.records=this.init()}static{i(this,"ImperativeState")}reset(){this.records=this.init()}};export{r as I}; +import{_ as i}from"./mermaid.core-B_UcP3X_.js";var r=class{constructor(t){this.init=t,this.records=this.init()}static{i(this,"ImperativeState")}reset(){this.records=this.init()}};export{r as I}; diff --git a/apps/kimi-code/dist-web/assets/chunk-32BRIVSS-DpG03lEd.js b/apps/kimi-code/dist-web/assets/chunk-32BRIVSS-D_mpvupa.js similarity index 96% rename from apps/kimi-code/dist-web/assets/chunk-32BRIVSS-DpG03lEd.js rename to apps/kimi-code/dist-web/assets/chunk-32BRIVSS-D_mpvupa.js index c0c20c8de..b62269c36 100644 --- a/apps/kimi-code/dist-web/assets/chunk-32BRIVSS-DpG03lEd.js +++ b/apps/kimi-code/dist-web/assets/chunk-32BRIVSS-D_mpvupa.js @@ -1 +1 @@ -import{_ as i,d as l,N as d,j as o}from"./mermaid.core-CgZTgv7Y.js";var x=i((r,t)=>{const e=r.append("rect");if(e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),t.name&&e.attr("name",t.name),t.rx&&e.attr("rx",t.rx),t.ry&&e.attr("ry",t.ry),t.attrs!==void 0)for(const s in t.attrs)e.attr(s,t.attrs[s]);return t.class&&e.attr("class",t.class),e},"drawRect"),p=i((r,t)=>{const e={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};x(r,e).lower()},"drawBackgroundRect"),y=i((r,t)=>{const e=t.text.replace(d," "),s=r.append("text");s.attr("x",t.x),s.attr("y",t.y),s.attr("class","legend"),s.style("text-anchor",t.anchor),t.class&&s.attr("class",t.class);const a=s.append("tspan");return a.attr("x",t.x+t.textMargin*2),a.text(e),s},"drawText"),m=i((r,t,e,s)=>{const a=r.append("image");a.attr("x",t),a.attr("y",e);const n=o.sanitizeUrl(s);a.attr("xlink:href",n)},"drawImage"),g=i((r,t,e,s)=>{const a=r.append("use");a.attr("x",t),a.attr("y",e);const n=o.sanitizeUrl(s);a.attr("xlink:href",`#${n}`)},"drawEmbeddedImage"),h=i(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),f=i(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj"),w=i(()=>{let r=l(".mermaidTooltip");return r.empty()&&(r=l("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")),r},"createTooltip");export{p as a,f as b,g as c,x as d,m as e,w as f,h as g,y as h}; +import{_ as i,d as l,n as d,j as o}from"./mermaid.core-B_UcP3X_.js";var x=i((r,t)=>{const e=r.append("rect");if(e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),t.name&&e.attr("name",t.name),t.rx&&e.attr("rx",t.rx),t.ry&&e.attr("ry",t.ry),t.attrs!==void 0)for(const s in t.attrs)e.attr(s,t.attrs[s]);return t.class&&e.attr("class",t.class),e},"drawRect"),p=i((r,t)=>{const e={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};x(r,e).lower()},"drawBackgroundRect"),y=i((r,t)=>{const e=t.text.replace(d," "),s=r.append("text");s.attr("x",t.x),s.attr("y",t.y),s.attr("class","legend"),s.style("text-anchor",t.anchor),t.class&&s.attr("class",t.class);const a=s.append("tspan");return a.attr("x",t.x+t.textMargin*2),a.text(e),s},"drawText"),m=i((r,t,e,s)=>{const a=r.append("image");a.attr("x",t),a.attr("y",e);const n=o.sanitizeUrl(s);a.attr("xlink:href",n)},"drawImage"),g=i((r,t,e,s)=>{const a=r.append("use");a.attr("x",t),a.attr("y",e);const n=o.sanitizeUrl(s);a.attr("xlink:href",`#${n}`)},"drawEmbeddedImage"),h=i(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),f=i(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj"),w=i(()=>{let r=l(".mermaidTooltip");return r.empty()&&(r=l("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")),r},"createTooltip");export{p as a,f as b,g as c,x as d,m as e,w as f,h as g,y as h}; diff --git a/apps/kimi-code/dist-web/assets/chunk-5VM5RSS4-D5gZPx0N.js b/apps/kimi-code/dist-web/assets/chunk-5VM5RSS4-DxIYPYOn.js similarity index 83% rename from apps/kimi-code/dist-web/assets/chunk-5VM5RSS4-D5gZPx0N.js rename to apps/kimi-code/dist-web/assets/chunk-5VM5RSS4-DxIYPYOn.js index fd774d343..de874d319 100644 --- a/apps/kimi-code/dist-web/assets/chunk-5VM5RSS4-D5gZPx0N.js +++ b/apps/kimi-code/dist-web/assets/chunk-5VM5RSS4-DxIYPYOn.js @@ -1,4 +1,4 @@ -import{_ as e}from"./mermaid.core-CgZTgv7Y.js";var l=e(()=>` +import{_ as e}from"./mermaid.core-B_UcP3X_.js";var l=e(()=>` /* Font Awesome icon styling - consolidated */ .label-icon { display: inline-block; diff --git a/apps/kimi-code/dist-web/assets/chunk-EX3LRPZG-BHr3M6yM.js b/apps/kimi-code/dist-web/assets/chunk-EX3LRPZG-DaQFz5qU.js similarity index 99% rename from apps/kimi-code/dist-web/assets/chunk-EX3LRPZG-BHr3M6yM.js rename to apps/kimi-code/dist-web/assets/chunk-EX3LRPZG-DaQFz5qU.js index cb5cd261a..f88043524 100644 --- a/apps/kimi-code/dist-web/assets/chunk-EX3LRPZG-BHr3M6yM.js +++ b/apps/kimi-code/dist-web/assets/chunk-EX3LRPZG-DaQFz5qU.js @@ -1,4 +1,4 @@ -import{g as te}from"./chunk-XXDRQBXY-BW4XjZut.js";import{s as ee}from"./chunk-VR4S4FIN-CHAEh_jD.js";import{_ as f,l as _,c as $,v as se,x as ie,a as re,b as ae,g as ne,s as oe,n as le,o as ce,a9 as he,k as j,p as ue,d as bt,a5 as de}from"./mermaid.core-CgZTgv7Y.js";import{f as fe}from"./chunk-32BRIVSS-DpG03lEd.js";var vt=(function(){var t=f(function(V,a,d,r){for(d=d||{},r=V.length;r--;d[V[r]]=a);return d},"o"),e=[1,2],o=[1,3],s=[1,4],c=[2,4],h=[1,9],p=[1,11],y=[1,16],n=[1,17],T=[1,18],m=[1,19],O=[1,33],x=[1,20],k=[1,21],u=[1,22],L=[1,23],I=[1,24],v=[1,26],F=[1,27],C=[1,28],P=[1,29],w=[1,30],H=[1,31],it=[1,32],rt=[1,35],at=[1,36],nt=[1,37],ot=[1,38],z=[1,34],S=[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],lt=[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],xt=[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],yt={trace:f(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:f(function(a,d,r,g,E,i,B){var l=i.length-1;switch(E){case 3:return g.setRootDoc(i[l]),i[l];case 4:this.$=[];break;case 5:i[l]!="nl"&&(i[l-1].push(i[l]),this.$=i[l-1]);break;case 6:case 7:this.$=i[l];break;case 8:this.$="nl";break;case 12:this.$=i[l];break;case 13:const Q=i[l-1];Q.description=g.trimColon(i[l]),this.$=Q;break;case 14:this.$={stmt:"relation",state1:i[l-2],state2:i[l]};break;case 15:const gt=g.trimColon(i[l]);this.$={stmt:"relation",state1:i[l-3],state2:i[l-1],description:gt};break;case 19:this.$={stmt:"state",id:i[l-3],type:"default",description:"",doc:i[l-1]};break;case 20:var Y=i[l],K=i[l-2].trim();if(i[l].match(":")){var ht=i[l].split(":");Y=ht[0],K=[K,ht[1]]}this.$={stmt:"state",id:Y,type:"default",description:K};break;case 21:this.$={stmt:"state",id:i[l-3],type:"default",description:i[l-5],doc:i[l-1]};break;case 22:this.$={stmt:"state",id:i[l],type:"fork"};break;case 23:this.$={stmt:"state",id:i[l],type:"join"};break;case 24:this.$={stmt:"state",id:i[l],type:"choice"};break;case 25:this.$={stmt:"state",id:g.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:i[l-1].trim(),note:{position:i[l-2].trim(),text:i[l].trim()}};break;case 29:this.$=i[l].trim(),g.setAccTitle(this.$);break;case 30:case 31:this.$=i[l].trim(),g.setAccDescription(this.$);break;case 32:this.$={stmt:"click",id:i[l-3],url:i[l-2],tooltip:i[l-1]};break;case 33:this.$={stmt:"click",id:i[l-3],url:i[l-1],tooltip:""};break;case 34:case 35:this.$={stmt:"classDef",id:i[l-1].trim(),classes:i[l].trim()};break;case 36:this.$={stmt:"style",id:i[l-1].trim(),styleClass:i[l].trim()};break;case 37:this.$={stmt:"applyClass",id:i[l-1].trim(),styleClass:i[l].trim()};break;case 38:g.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 39:g.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 40:g.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 41:g.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 44:case 45:this.$={stmt:"state",id:i[l].trim(),type:"default",description:""};break;case 46:this.$={stmt:"state",id:i[l-2].trim(),classes:[i[l].trim()],type:"default",description:""};break;case 47:this.$={stmt:"state",id:i[l-2].trim(),classes:[i[l].trim()],type:"default",description:""};break}},"anonymous"),table:[{3:1,4:e,5:o,6:s},{1:[3]},{3:5,4:e,5:o,6:s},{3:6,4:e,5:o,6:s},t([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],c,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:h,5:p,8:8,9:10,10:12,11:13,12:14,13:15,16:y,17:n,19:T,22:m,24:O,25:x,26:k,27:u,28:L,29:I,32:25,33:v,35:F,37:C,38:P,41:w,45:H,48:it,51:rt,52:at,53:nt,54:ot,57:z},t(S,[2,5]),{9:39,10:12,11:13,12:14,13:15,16:y,17:n,19:T,22:m,24:O,25:x,26:k,27:u,28:L,29:I,32:25,33:v,35:F,37:C,38:P,41:w,45:H,48:it,51:rt,52:at,53:nt,54:ot,57:z},t(S,[2,7]),t(S,[2,8]),t(S,[2,9]),t(S,[2,10]),t(S,[2,11]),t(S,[2,12],{14:[1,40],15:[1,41]}),t(S,[2,16]),{18:[1,42]},t(S,[2,18],{20:[1,43]}),{23:[1,44]},t(S,[2,22]),t(S,[2,23]),t(S,[2,24]),t(S,[2,25]),{30:45,31:[1,46],59:[1,47],60:[1,48]},t(S,[2,28]),{34:[1,49]},{36:[1,50]},t(S,[2,31]),{13:51,24:O,57:z},{42:[1,52],44:[1,53]},{46:[1,54]},{49:[1,55]},t(lt,[2,44],{58:[1,56]}),t(lt,[2,45],{58:[1,57]}),t(S,[2,38]),t(S,[2,39]),t(S,[2,40]),t(S,[2,41]),t(S,[2,6]),t(S,[2,13]),{13:58,24:O,57:z},t(S,[2,17]),t(xt,c,{7:59}),{24:[1,60]},{24:[1,61]},{23:[1,62]},{24:[2,48]},{24:[2,49]},t(S,[2,29]),t(S,[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]},t(S,[2,14],{14:[1,71]}),{4:h,5:p,8:8,9:10,10:12,11:13,12:14,13:15,16:y,17:n,19:T,21:[1,72],22:m,24:O,25:x,26:k,27:u,28:L,29:I,32:25,33:v,35:F,37:C,38:P,41:w,45:H,48:it,51:rt,52:at,53:nt,54:ot,57:z},t(S,[2,20],{20:[1,73]}),{31:[1,74]},{24:[1,75]},{39:[1,76]},{39:[1,77]},t(S,[2,34]),t(S,[2,35]),t(S,[2,36]),t(S,[2,37]),t(lt,[2,46]),t(lt,[2,47]),t(S,[2,15]),t(S,[2,19]),t(xt,c,{7:78}),t(S,[2,26]),t(S,[2,27]),{5:[1,79]},{5:[1,80]},{4:h,5:p,8:8,9:10,10:12,11:13,12:14,13:15,16:y,17:n,19:T,21:[1,81],22:m,24:O,25:x,26:k,27:u,28:L,29:I,32:25,33:v,35:F,37:C,38:P,41:w,45:H,48:it,51:rt,52:at,53:nt,54:ot,57:z},t(S,[2,32]),t(S,[2,33]),t(S,[2,21])],defaultActions:{5:[2,1],6:[2,2],47:[2,48],48:[2,49]},parseError:f(function(a,d){if(d.recoverable)this.trace(a);else{var r=new Error(a);throw r.hash=d,r}},"parseError"),parse:f(function(a){var d=this,r=[0],g=[],E=[null],i=[],B=this.table,l="",Y=0,K=0,ht=2,Q=1,gt=i.slice.call(arguments,1),b=Object.create(this.lexer),U={yy:{}};for(var Tt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Tt)&&(U.yy[Tt]=this.yy[Tt]);b.setInput(a,U.yy),U.yy.lexer=b,U.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var Et=b.yylloc;i.push(Et);var Qt=b.options&&b.options.ranges;typeof U.yy.parseError=="function"?this.parseError=U.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Zt(N){r.length=r.length-2*N,E.length=E.length-N,i.length=i.length-N}f(Zt,"popStack");function Lt(){var N;return N=g.pop()||b.lex()||Q,typeof N!="number"&&(N instanceof Array&&(g=N,N=g.pop()),N=d.symbols_[N]||N),N}f(Lt,"lex");for(var A,W,R,_t,X={},ut,G,It,dt;;){if(W=r[r.length-1],this.defaultActions[W]?R=this.defaultActions[W]:((A===null||typeof A>"u")&&(A=Lt()),R=B[W]&&B[W][A]),typeof R>"u"||!R.length||!R[0]){var mt="";dt=[];for(ut in B[W])this.terminals_[ut]&&ut>ht&&dt.push("'"+this.terminals_[ut]+"'");b.showPosition?mt="Parse error on line "+(Y+1)+`: +import{g as te}from"./chunk-XXDRQBXY-AHUPVB2f.js";import{s as ee}from"./chunk-VR4S4FIN-CYEgbtU1.js";import{_ as f,l as _,c as $,x as se,y as ie,a as re,b as ae,g as ne,s as oe,o as le,p as ce,a9 as he,k as j,q as ue,d as bt,a5 as de}from"./mermaid.core-B_UcP3X_.js";import{f as fe}from"./chunk-32BRIVSS-D_mpvupa.js";var vt=(function(){var t=f(function(V,a,d,r){for(d=d||{},r=V.length;r--;d[V[r]]=a);return d},"o"),e=[1,2],o=[1,3],s=[1,4],c=[2,4],h=[1,9],p=[1,11],y=[1,16],n=[1,17],T=[1,18],m=[1,19],O=[1,33],x=[1,20],k=[1,21],u=[1,22],L=[1,23],I=[1,24],v=[1,26],F=[1,27],C=[1,28],P=[1,29],w=[1,30],H=[1,31],it=[1,32],rt=[1,35],at=[1,36],nt=[1,37],ot=[1,38],z=[1,34],S=[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],lt=[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],xt=[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],yt={trace:f(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:f(function(a,d,r,g,E,i,B){var l=i.length-1;switch(E){case 3:return g.setRootDoc(i[l]),i[l];case 4:this.$=[];break;case 5:i[l]!="nl"&&(i[l-1].push(i[l]),this.$=i[l-1]);break;case 6:case 7:this.$=i[l];break;case 8:this.$="nl";break;case 12:this.$=i[l];break;case 13:const Q=i[l-1];Q.description=g.trimColon(i[l]),this.$=Q;break;case 14:this.$={stmt:"relation",state1:i[l-2],state2:i[l]};break;case 15:const gt=g.trimColon(i[l]);this.$={stmt:"relation",state1:i[l-3],state2:i[l-1],description:gt};break;case 19:this.$={stmt:"state",id:i[l-3],type:"default",description:"",doc:i[l-1]};break;case 20:var Y=i[l],K=i[l-2].trim();if(i[l].match(":")){var ht=i[l].split(":");Y=ht[0],K=[K,ht[1]]}this.$={stmt:"state",id:Y,type:"default",description:K};break;case 21:this.$={stmt:"state",id:i[l-3],type:"default",description:i[l-5],doc:i[l-1]};break;case 22:this.$={stmt:"state",id:i[l],type:"fork"};break;case 23:this.$={stmt:"state",id:i[l],type:"join"};break;case 24:this.$={stmt:"state",id:i[l],type:"choice"};break;case 25:this.$={stmt:"state",id:g.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:i[l-1].trim(),note:{position:i[l-2].trim(),text:i[l].trim()}};break;case 29:this.$=i[l].trim(),g.setAccTitle(this.$);break;case 30:case 31:this.$=i[l].trim(),g.setAccDescription(this.$);break;case 32:this.$={stmt:"click",id:i[l-3],url:i[l-2],tooltip:i[l-1]};break;case 33:this.$={stmt:"click",id:i[l-3],url:i[l-1],tooltip:""};break;case 34:case 35:this.$={stmt:"classDef",id:i[l-1].trim(),classes:i[l].trim()};break;case 36:this.$={stmt:"style",id:i[l-1].trim(),styleClass:i[l].trim()};break;case 37:this.$={stmt:"applyClass",id:i[l-1].trim(),styleClass:i[l].trim()};break;case 38:g.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 39:g.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 40:g.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 41:g.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 44:case 45:this.$={stmt:"state",id:i[l].trim(),type:"default",description:""};break;case 46:this.$={stmt:"state",id:i[l-2].trim(),classes:[i[l].trim()],type:"default",description:""};break;case 47:this.$={stmt:"state",id:i[l-2].trim(),classes:[i[l].trim()],type:"default",description:""};break}},"anonymous"),table:[{3:1,4:e,5:o,6:s},{1:[3]},{3:5,4:e,5:o,6:s},{3:6,4:e,5:o,6:s},t([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],c,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:h,5:p,8:8,9:10,10:12,11:13,12:14,13:15,16:y,17:n,19:T,22:m,24:O,25:x,26:k,27:u,28:L,29:I,32:25,33:v,35:F,37:C,38:P,41:w,45:H,48:it,51:rt,52:at,53:nt,54:ot,57:z},t(S,[2,5]),{9:39,10:12,11:13,12:14,13:15,16:y,17:n,19:T,22:m,24:O,25:x,26:k,27:u,28:L,29:I,32:25,33:v,35:F,37:C,38:P,41:w,45:H,48:it,51:rt,52:at,53:nt,54:ot,57:z},t(S,[2,7]),t(S,[2,8]),t(S,[2,9]),t(S,[2,10]),t(S,[2,11]),t(S,[2,12],{14:[1,40],15:[1,41]}),t(S,[2,16]),{18:[1,42]},t(S,[2,18],{20:[1,43]}),{23:[1,44]},t(S,[2,22]),t(S,[2,23]),t(S,[2,24]),t(S,[2,25]),{30:45,31:[1,46],59:[1,47],60:[1,48]},t(S,[2,28]),{34:[1,49]},{36:[1,50]},t(S,[2,31]),{13:51,24:O,57:z},{42:[1,52],44:[1,53]},{46:[1,54]},{49:[1,55]},t(lt,[2,44],{58:[1,56]}),t(lt,[2,45],{58:[1,57]}),t(S,[2,38]),t(S,[2,39]),t(S,[2,40]),t(S,[2,41]),t(S,[2,6]),t(S,[2,13]),{13:58,24:O,57:z},t(S,[2,17]),t(xt,c,{7:59}),{24:[1,60]},{24:[1,61]},{23:[1,62]},{24:[2,48]},{24:[2,49]},t(S,[2,29]),t(S,[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]},t(S,[2,14],{14:[1,71]}),{4:h,5:p,8:8,9:10,10:12,11:13,12:14,13:15,16:y,17:n,19:T,21:[1,72],22:m,24:O,25:x,26:k,27:u,28:L,29:I,32:25,33:v,35:F,37:C,38:P,41:w,45:H,48:it,51:rt,52:at,53:nt,54:ot,57:z},t(S,[2,20],{20:[1,73]}),{31:[1,74]},{24:[1,75]},{39:[1,76]},{39:[1,77]},t(S,[2,34]),t(S,[2,35]),t(S,[2,36]),t(S,[2,37]),t(lt,[2,46]),t(lt,[2,47]),t(S,[2,15]),t(S,[2,19]),t(xt,c,{7:78}),t(S,[2,26]),t(S,[2,27]),{5:[1,79]},{5:[1,80]},{4:h,5:p,8:8,9:10,10:12,11:13,12:14,13:15,16:y,17:n,19:T,21:[1,81],22:m,24:O,25:x,26:k,27:u,28:L,29:I,32:25,33:v,35:F,37:C,38:P,41:w,45:H,48:it,51:rt,52:at,53:nt,54:ot,57:z},t(S,[2,32]),t(S,[2,33]),t(S,[2,21])],defaultActions:{5:[2,1],6:[2,2],47:[2,48],48:[2,49]},parseError:f(function(a,d){if(d.recoverable)this.trace(a);else{var r=new Error(a);throw r.hash=d,r}},"parseError"),parse:f(function(a){var d=this,r=[0],g=[],E=[null],i=[],B=this.table,l="",Y=0,K=0,ht=2,Q=1,gt=i.slice.call(arguments,1),b=Object.create(this.lexer),U={yy:{}};for(var Tt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Tt)&&(U.yy[Tt]=this.yy[Tt]);b.setInput(a,U.yy),U.yy.lexer=b,U.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var Et=b.yylloc;i.push(Et);var Qt=b.options&&b.options.ranges;typeof U.yy.parseError=="function"?this.parseError=U.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Zt(N){r.length=r.length-2*N,E.length=E.length-N,i.length=i.length-N}f(Zt,"popStack");function Lt(){var N;return N=g.pop()||b.lex()||Q,typeof N!="number"&&(N instanceof Array&&(g=N,N=g.pop()),N=d.symbols_[N]||N),N}f(Lt,"lex");for(var A,W,R,_t,X={},ut,G,It,dt;;){if(W=r[r.length-1],this.defaultActions[W]?R=this.defaultActions[W]:((A===null||typeof A>"u")&&(A=Lt()),R=B[W]&&B[W][A]),typeof R>"u"||!R.length||!R[0]){var mt="";dt=[];for(ut in B[W])this.terminals_[ut]&&ut>ht&&dt.push("'"+this.terminals_[ut]+"'");b.showPosition?mt="Parse error on line "+(Y+1)+`: `+b.showPosition()+` Expecting `+dt.join(", ")+", got '"+(this.terminals_[A]||A)+"'":mt="Parse error on line "+(Y+1)+": Unexpected "+(A==Q?"end of input":"'"+(this.terminals_[A]||A)+"'"),this.parseError(mt,{text:b.match,token:this.terminals_[A]||A,line:b.yylineno,loc:Et,expected:dt})}if(R[0]instanceof Array&&R.length>1)throw new Error("Parse Error: multiple actions possible at state: "+W+", token: "+A);switch(R[0]){case 1:r.push(A),E.push(b.yytext),i.push(b.yylloc),r.push(R[1]),A=null,K=b.yyleng,l=b.yytext,Y=b.yylineno,Et=b.yylloc;break;case 2:if(G=this.productions_[R[1]][1],X.$=E[E.length-G],X._$={first_line:i[i.length-(G||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(G||1)].first_column,last_column:i[i.length-1].last_column},Qt&&(X._$.range=[i[i.length-(G||1)].range[0],i[i.length-1].range[1]]),_t=this.performAction.apply(X,[l,K,Y,U.yy,R[1],E,i].concat(gt)),typeof _t<"u")return _t;G&&(r=r.slice(0,-1*G*2),E=E.slice(0,-1*G),i=i.slice(0,-1*G)),r.push(this.productions_[R[1]][0]),E.push(X.$),i.push(X._$),It=B[r[r.length-2]][r[r.length-1]],r.push(It);break;case 3:return!0}}return!0},"parse")},qt=(function(){var V={EOF:1,parseError:f(function(d,r){if(this.yy.parser)this.yy.parser.parseError(d,r);else throw new Error(d)},"parseError"),setInput:f(function(a,d){return this.yy=d||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:f(function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var d=a.match(/(?:\r\n?|\n).*/g);return d?(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:f(function(a){var d=a.length,r=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-d),this.offset-=d;var g=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),r.length-1&&(this.yylineno-=r.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:r?(r.length===g.length?this.yylloc.first_column:0)+g[g.length-r.length].length-r[0].length:this.yylloc.first_column-d},this.options.ranges&&(this.yylloc.range=[E[0],E[0]+this.yyleng-d]),this.yyleng=this.yytext.length,this},"unput"),more:f(function(){return this._more=!0,this},"more"),reject:f(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:f(function(a){this.unput(this.match.slice(a))},"less"),pastInput:f(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:f(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:f(function(){var a=this.pastInput(),d=new Array(a.length+1).join("-");return a+this.upcomingInput()+` diff --git a/apps/kimi-code/dist-web/assets/chunk-JWPE2WC7-BxqMRrNb.js b/apps/kimi-code/dist-web/assets/chunk-JWPE2WC7-TZtJmqSP.js similarity index 71% rename from apps/kimi-code/dist-web/assets/chunk-JWPE2WC7-BxqMRrNb.js rename to apps/kimi-code/dist-web/assets/chunk-JWPE2WC7-TZtJmqSP.js index e88dbe351..9edc2fecf 100644 --- a/apps/kimi-code/dist-web/assets/chunk-JWPE2WC7-BxqMRrNb.js +++ b/apps/kimi-code/dist-web/assets/chunk-JWPE2WC7-TZtJmqSP.js @@ -1 +1 @@ -import{_ as i}from"./mermaid.core-CgZTgv7Y.js";function t(c,e){c.accDescr&&e.setAccDescription?.(c.accDescr),c.accTitle&&e.setAccTitle?.(c.accTitle),c.title&&e.setDiagramTitle?.(c.title)}i(t,"populateCommonDb");export{t as p}; +import{_ as i}from"./mermaid.core-B_UcP3X_.js";function t(c,e){c.accDescr&&e.setAccDescription?.(c.accDescr),c.accTitle&&e.setAccTitle?.(c.accTitle),c.title&&e.setDiagramTitle?.(c.title)}i(t,"populateCommonDb");export{t as p}; diff --git a/apps/kimi-code/dist-web/assets/chunk-MOJQB5TN-DGD3Ca9J.js b/apps/kimi-code/dist-web/assets/chunk-MOJQB5TN-m4Krf3Vn.js similarity index 97% rename from apps/kimi-code/dist-web/assets/chunk-MOJQB5TN-DGD3Ca9J.js rename to apps/kimi-code/dist-web/assets/chunk-MOJQB5TN-m4Krf3Vn.js index f4f419f67..11638d9a2 100644 --- a/apps/kimi-code/dist-web/assets/chunk-MOJQB5TN-DGD3Ca9J.js +++ b/apps/kimi-code/dist-web/assets/chunk-MOJQB5TN-m4Krf3Vn.js @@ -1,5 +1,5 @@ -import{_ as p,l as w,D as L,y as E,p as I,E as X,e as H,i as q,c as G}from"./mermaid.core-CgZTgv7Y.js";var z="",b="",N="",A=[],R=new Map,k=p(e=>q(e,G()),"sanitizeText"),F=p(e=>{switch(e.type){case"terminal":return{...e,value:k(e.value)};case"nonterminal":return{...e,name:k(e.name)};case"sequence":return{...e,elements:e.elements.map(F)};case"choice":return{...e,alternatives:e.alternatives.map(F)};case"optional":return{...e,element:F(e.element)};case"repetition":return{...e,element:F(e.element),separator:e.separator?F(e.separator):void 0};case"special":return{...e,text:k(e.text)}}},"sanitizeAstNode"),U=p(()=>{z="",b="",N="",A.length=0,R.clear(),I(),w.debug("[Railroad] Database cleared")},"clear"),_=p(e=>{z=k(e),w.debug("[Railroad] Title set:",e)},"setTitle"),W=p(()=>z,"getTitle"),j=p(e=>{const i={...e,name:k(e.name),definition:F(e.definition),comment:e.comment?k(e.comment):void 0};w.debug("[Railroad] Adding rule:",i.name),R.has(i.name)&&w.warn(`[Railroad] Rule '${i.name}' is already defined. Overwriting.`),A.push(i),R.set(i.name,i)},"addRule"),K=p(()=>A,"getRules"),J=p(e=>R.get(e),"getRule"),Q=p(e=>{b=k(e).replace(/^\s+/g,""),w.debug("[Railroad] Accessibility title set:",e)},"setAccTitle"),Z=p(()=>b,"getAccTitle"),V=p(e=>{N=k(e).replace(/\n\s+/g,` -`),w.debug("[Railroad] Accessibility description set:",e)},"setAccDescription"),ee=p(()=>N,"getAccDescription"),te=_,re=W,ie={clear:U,setTitle:_,getTitle:W,addRule:j,getRules:K,getRule:J,setAccTitle:Q,getAccTitle:Z,setAccDescription:V,getAccDescription:ee,setDiagramTitle:te,getDiagramTitle:re},g={compactMode:!1,padding:10,verticalSeparation:8,horizontalSeparation:10,arcRadius:10,fontSize:14,fontFamily:"monospace",terminalFill:"#FFFFC0",terminalStroke:"#000000",terminalTextColor:"#000000",nonTerminalFill:"#FFFFFF",nonTerminalStroke:"#000000",nonTerminalTextColor:"#000000",lineColor:"#000000",strokeWidth:2,markerFill:"#000000",commentFill:"#E8E8E8",commentStroke:"#888888",commentTextColor:"#666666",specialFill:"#F0E0FF",specialStroke:"#8800CC",ruleNameColor:"#000066",showMarkers:!0,markerRadius:5},ne=/^#(?:[\da-f]{3,4}|[\da-f]{6}|[\da-f]{8})$|^(?:rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch)\([\d\s%+,./-]+\)$|^[a-z]+$/i,ae=/^[\w "',.-]+$/,oe=new Set(["compactMode","padding","verticalSeparation","horizontalSeparation","arcRadius","fontSize","fontFamily","terminalFill","terminalStroke","terminalTextColor","nonTerminalFill","nonTerminalStroke","nonTerminalTextColor","lineColor","strokeWidth","markerFill","commentFill","commentStroke","commentTextColor","specialFill","specialStroke","ruleNameColor","showMarkers","markerRadius"]),B=p(e=>e?Object.keys(e).every(i=>i==="railroad"||oe.has(i)):!1,"isRailroadStyleOptions"),le=p(e=>e?"railroad"in e&&e.railroad?e.railroad:B(e)?e:{}:{},"extractRailroadOverrides"),se=p(e=>{if(!e||B(e))return{};const{railroad:i,svgId:a,theme:r,look:t,...n}=e;return n},"extractThemeOverrides"),m=p((e,i)=>{if(typeof e!="string")return i;const a=e.trim();return ne.test(a)?a:i},"sanitizeColorValue"),Y=p((e,i)=>{if(typeof e!="string")return i;const a=e.trim();return ae.test(a)?a:i},"sanitizeFontFamilyValue"),S=p((e,i)=>{const a=typeof e=="number"?e:typeof e=="string"?Number.parseFloat(e):Number.NaN;return Number.isFinite(a)&&a>=0?a:i},"sanitizeNumberValue"),de=p(e=>{const i=typeof e=="number"?e:typeof e=="string"?Number.parseFloat(e):Number.NaN;return Number.isFinite(i)&&i>0?i:void 0},"parseThemeFontSize"),ce=p(e=>{const i=Y(e.fontFamily,g.fontFamily),a=de(e.fontSize)??g.fontSize;return{...g,fontFamily:i,fontSize:a,terminalFill:m(e.secondBkg??e.secondaryColor,g.terminalFill),terminalStroke:m(e.secondaryBorderColor??e.lineColor,g.terminalStroke),terminalTextColor:m(e.secondaryTextColor??e.textColor,g.terminalTextColor),nonTerminalFill:m(e.mainBkg??e.background,g.nonTerminalFill),nonTerminalStroke:m(e.primaryBorderColor??e.lineColor,g.nonTerminalStroke),nonTerminalTextColor:m(e.primaryTextColor??e.textColor,g.nonTerminalTextColor),lineColor:m(e.lineColor,g.lineColor),markerFill:m(e.lineColor,g.markerFill),commentFill:m(e.labelBackground??e.tertiaryColor,g.commentFill),commentStroke:m(e.tertiaryBorderColor??e.lineColor,g.commentStroke),commentTextColor:m(e.tertiaryTextColor??e.textColor,g.commentTextColor),specialFill:m(e.tertiaryColor??e.secondaryColor,g.specialFill),specialStroke:m(e.tertiaryBorderColor??e.secondaryBorderColor,g.specialStroke),ruleNameColor:m(e.titleColor??e.textColor,g.ruleNameColor)}},"buildThemeDefaults"),M=p(e=>{const i=E(),a={...X(),...i.themeVariables??{},...se(e)},r=ce(a),t={...i.railroad??{},...le(e)};return{compactMode:t.compactMode??r.compactMode,padding:S(t.padding,r.padding),verticalSeparation:S(t.verticalSeparation,r.verticalSeparation),horizontalSeparation:S(t.horizontalSeparation,r.horizontalSeparation),arcRadius:S(t.arcRadius,r.arcRadius),fontSize:S(t.fontSize,r.fontSize),fontFamily:Y(t.fontFamily,r.fontFamily),terminalFill:m(t.terminalFill,r.terminalFill),terminalStroke:m(t.terminalStroke,r.terminalStroke),terminalTextColor:m(t.terminalTextColor,r.terminalTextColor),nonTerminalFill:m(t.nonTerminalFill,r.nonTerminalFill),nonTerminalStroke:m(t.nonTerminalStroke,r.nonTerminalStroke),nonTerminalTextColor:m(t.nonTerminalTextColor,r.nonTerminalTextColor),lineColor:m(t.lineColor,r.lineColor),strokeWidth:S(t.strokeWidth,r.strokeWidth),markerFill:m(t.markerFill,r.markerFill),commentFill:m(t.commentFill,r.commentFill),commentStroke:m(t.commentStroke,r.commentStroke),commentTextColor:m(t.commentTextColor,r.commentTextColor),specialFill:m(t.specialFill,r.specialFill),specialStroke:m(t.specialStroke,r.specialStroke),ruleNameColor:m(t.ruleNameColor,r.ruleNameColor),showMarkers:t.showMarkers??r.showMarkers,markerRadius:S(t.markerRadius,r.markerRadius)}},"buildRailroadStyleOptions"),ue=p(e=>{const{fontFamily:i,fontSize:a,terminalFill:r,terminalStroke:t,terminalTextColor:n,nonTerminalFill:h,nonTerminalStroke:s,nonTerminalTextColor:o,lineColor:u,strokeWidth:c,markerFill:d,commentFill:x,commentStroke:l,commentTextColor:f,specialFill:y,specialStroke:v,ruleNameColor:C}=M(e);return` +import{_ as p,l as w,F as L,z as E,q as I,W as X,e as q,i as H,c as G}from"./mermaid.core-B_UcP3X_.js";var z="",b="",N="",A=[],R=new Map,k=p(e=>H(e,G()),"sanitizeText"),F=p(e=>{switch(e.type){case"terminal":return{...e,value:k(e.value)};case"nonterminal":return{...e,name:k(e.name)};case"sequence":return{...e,elements:e.elements.map(F)};case"choice":return{...e,alternatives:e.alternatives.map(F)};case"optional":return{...e,element:F(e.element)};case"repetition":return{...e,element:F(e.element),separator:e.separator?F(e.separator):void 0};case"special":return{...e,text:k(e.text)}}},"sanitizeAstNode"),U=p(()=>{z="",b="",N="",A.length=0,R.clear(),I(),w.debug("[Railroad] Database cleared")},"clear"),W=p(e=>{z=k(e),w.debug("[Railroad] Title set:",e)},"setTitle"),_=p(()=>z,"getTitle"),j=p(e=>{const i={...e,name:k(e.name),definition:F(e.definition),comment:e.comment?k(e.comment):void 0};w.debug("[Railroad] Adding rule:",i.name),R.has(i.name)&&w.warn(`[Railroad] Rule '${i.name}' is already defined. Overwriting.`),A.push(i),R.set(i.name,i)},"addRule"),K=p(()=>A,"getRules"),J=p(e=>R.get(e),"getRule"),Q=p(e=>{b=k(e).replace(/^\s+/g,""),w.debug("[Railroad] Accessibility title set:",e)},"setAccTitle"),Z=p(()=>b,"getAccTitle"),V=p(e=>{N=k(e).replace(/\n\s+/g,` +`),w.debug("[Railroad] Accessibility description set:",e)},"setAccDescription"),ee=p(()=>N,"getAccDescription"),te=W,re=_,ie={clear:U,setTitle:W,getTitle:_,addRule:j,getRules:K,getRule:J,setAccTitle:Q,getAccTitle:Z,setAccDescription:V,getAccDescription:ee,setDiagramTitle:te,getDiagramTitle:re},g={compactMode:!1,padding:10,verticalSeparation:8,horizontalSeparation:10,arcRadius:10,fontSize:14,fontFamily:"monospace",terminalFill:"#FFFFC0",terminalStroke:"#000000",terminalTextColor:"#000000",nonTerminalFill:"#FFFFFF",nonTerminalStroke:"#000000",nonTerminalTextColor:"#000000",lineColor:"#000000",strokeWidth:2,markerFill:"#000000",commentFill:"#E8E8E8",commentStroke:"#888888",commentTextColor:"#666666",specialFill:"#F0E0FF",specialStroke:"#8800CC",ruleNameColor:"#000066",showMarkers:!0,markerRadius:5},ne=/^#(?:[\da-f]{3,4}|[\da-f]{6}|[\da-f]{8})$|^(?:rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch)\([\d\s%+,./-]+\)$|^[a-z]+$/i,ae=/^[\w "',.-]+$/,oe=new Set(["compactMode","padding","verticalSeparation","horizontalSeparation","arcRadius","fontSize","fontFamily","terminalFill","terminalStroke","terminalTextColor","nonTerminalFill","nonTerminalStroke","nonTerminalTextColor","lineColor","strokeWidth","markerFill","commentFill","commentStroke","commentTextColor","specialFill","specialStroke","ruleNameColor","showMarkers","markerRadius"]),B=p(e=>e?Object.keys(e).every(i=>i==="railroad"||oe.has(i)):!1,"isRailroadStyleOptions"),le=p(e=>e?"railroad"in e&&e.railroad?e.railroad:B(e)?e:{}:{},"extractRailroadOverrides"),se=p(e=>{if(!e||B(e))return{};const{railroad:i,svgId:a,theme:r,look:t,...n}=e;return n},"extractThemeOverrides"),m=p((e,i)=>{if(typeof e!="string")return i;const a=e.trim();return ne.test(a)?a:i},"sanitizeColorValue"),Y=p((e,i)=>{if(typeof e!="string")return i;const a=e.trim();return ae.test(a)?a:i},"sanitizeFontFamilyValue"),S=p((e,i)=>{const a=typeof e=="number"?e:typeof e=="string"?Number.parseFloat(e):Number.NaN;return Number.isFinite(a)&&a>=0?a:i},"sanitizeNumberValue"),de=p(e=>{const i=typeof e=="number"?e:typeof e=="string"?Number.parseFloat(e):Number.NaN;return Number.isFinite(i)&&i>0?i:void 0},"parseThemeFontSize"),ce=p(e=>{const i=Y(e.fontFamily,g.fontFamily),a=de(e.fontSize)??g.fontSize;return{...g,fontFamily:i,fontSize:a,terminalFill:m(e.secondBkg??e.secondaryColor,g.terminalFill),terminalStroke:m(e.secondaryBorderColor??e.lineColor,g.terminalStroke),terminalTextColor:m(e.secondaryTextColor??e.textColor,g.terminalTextColor),nonTerminalFill:m(e.mainBkg??e.background,g.nonTerminalFill),nonTerminalStroke:m(e.primaryBorderColor??e.lineColor,g.nonTerminalStroke),nonTerminalTextColor:m(e.primaryTextColor??e.textColor,g.nonTerminalTextColor),lineColor:m(e.lineColor,g.lineColor),markerFill:m(e.lineColor,g.markerFill),commentFill:m(e.labelBackground??e.tertiaryColor,g.commentFill),commentStroke:m(e.tertiaryBorderColor??e.lineColor,g.commentStroke),commentTextColor:m(e.tertiaryTextColor??e.textColor,g.commentTextColor),specialFill:m(e.tertiaryColor??e.secondaryColor,g.specialFill),specialStroke:m(e.tertiaryBorderColor??e.secondaryBorderColor,g.specialStroke),ruleNameColor:m(e.titleColor??e.textColor,g.ruleNameColor)}},"buildThemeDefaults"),M=p(e=>{const i=E(),a={...X(),...i.themeVariables??{},...se(e)},r=ce(a),t={...i.railroad??{},...le(e)};return{compactMode:t.compactMode??r.compactMode,padding:S(t.padding,r.padding),verticalSeparation:S(t.verticalSeparation,r.verticalSeparation),horizontalSeparation:S(t.horizontalSeparation,r.horizontalSeparation),arcRadius:S(t.arcRadius,r.arcRadius),fontSize:S(t.fontSize,r.fontSize),fontFamily:Y(t.fontFamily,r.fontFamily),terminalFill:m(t.terminalFill,r.terminalFill),terminalStroke:m(t.terminalStroke,r.terminalStroke),terminalTextColor:m(t.terminalTextColor,r.terminalTextColor),nonTerminalFill:m(t.nonTerminalFill,r.nonTerminalFill),nonTerminalStroke:m(t.nonTerminalStroke,r.nonTerminalStroke),nonTerminalTextColor:m(t.nonTerminalTextColor,r.nonTerminalTextColor),lineColor:m(t.lineColor,r.lineColor),strokeWidth:S(t.strokeWidth,r.strokeWidth),markerFill:m(t.markerFill,r.markerFill),commentFill:m(t.commentFill,r.commentFill),commentStroke:m(t.commentStroke,r.commentStroke),commentTextColor:m(t.commentTextColor,r.commentTextColor),specialFill:m(t.specialFill,r.specialFill),specialStroke:m(t.specialStroke,r.specialStroke),ruleNameColor:m(t.ruleNameColor,r.ruleNameColor),showMarkers:t.showMarkers??r.showMarkers,markerRadius:S(t.markerRadius,r.markerRadius)}},"buildRailroadStyleOptions"),ue=p(e=>{const{fontFamily:i,fontSize:a,terminalFill:r,terminalStroke:t,terminalTextColor:n,nonTerminalFill:h,nonTerminalStroke:s,nonTerminalTextColor:o,lineColor:u,strokeWidth:c,markerFill:d,commentFill:x,commentStroke:l,commentTextColor:f,specialFill:y,specialStroke:v,ruleNameColor:C}=M(e);return` .railroad-diagram { font-family: ${i}; font-size: ${a}px; @@ -84,5 +84,5 @@ import{_ as p,l as w,D as L,y as E,p as I,E as X,e as H,i as q,c as G}from"./mer .railroad-group { /* Grouping container, no specific styles */ } -`},"getStyles"),T=class{constructor(){this.d=""}static{p(this,"PathBuilder")}moveTo(e,i){return this.d+=`M ${e} ${i} `,this}lineTo(e,i){return this.d+=`L ${e} ${i} `,this}horizontalTo(e){return this.d+=`H ${e} `,this}verticalTo(e){return this.d+=`V ${e} `,this}arcTo(e,i,a,r,t,n,h){return this.d+=`A ${e} ${i} ${a} ${r?1:0} ${t?1:0} ${n} ${h} `,this}build(){return this.d.trim()}},me=class{constructor(e,i=M()){this.textCache=new Map,this.svg=e,this.config=i}static{p(this,"RailroadRenderer")}measureText(e){if(this.textCache.has(e))return this.textCache.get(e);const i=this.svg.append("text").attr("font-family",this.config.fontFamily).attr("font-size",this.config.fontSize).text(e),a=i.node().getBBox(),r={width:a.width,height:a.height};return i.remove(),this.textCache.set(e,r),r}renderTerminal(e,i){const a=this.measureText(i),r=a.width+this.config.padding*2,t=a.height+this.config.padding*2,n=e.append("g").attr("class","railroad-terminal");return n.append("rect").attr("x",0).attr("y",0).attr("width",r).attr("height",t).attr("rx",10).attr("ry",10),n.append("text").attr("x",r/2).attr("y",t/2).text(i),{element:n.node(),dimensions:{width:r,height:t,up:t/2,down:t/2}}}renderNonTerminal(e,i){const a=this.measureText(i),r=a.width+this.config.padding*2,t=a.height+this.config.padding*2,n=e.append("g").attr("class","railroad-nonterminal");return n.append("rect").attr("x",0).attr("y",0).attr("width",r).attr("height",t),n.append("text").attr("x",r/2).attr("y",t/2).text(i),{element:n.node(),dimensions:{width:r,height:t,up:t/2,down:t/2}}}renderSequence(e,i){const a=i.map(o=>this.renderExpression(e,o));let r=0,t=0,n=0;for(const o of a)r+=o.dimensions.width,t=Math.max(t,o.dimensions.up),n=Math.max(n,o.dimensions.down);r+=(a.length-1)*this.config.horizontalSeparation;const h=e.append("g").attr("class","railroad-sequence");let s=0;for(let o=0;othis.renderExpression(e,d));let r=0,t=0;for(const d of a)r=Math.max(r,d.dimensions.width),t+=d.dimensions.height;t+=(a.length-1)*this.config.verticalSeparation;const n=this.config.arcRadius,h=n*4,s=r+h,o=e.append("g").attr("class","railroad-choice");let u=0;const c=t/2;for(const d of a){const x=u,l=x+d.dimensions.up,f=n*2+(r-d.dimensions.width)/2;o.node().appendChild(d.element).setAttribute("transform",`translate(${f}, ${x})`);const v=new T,C=l>c;l===c?v.moveTo(0,c).lineTo(f,l):v.moveTo(0,c).arcTo(n,n,0,!1,C,n,c+(C?n:-n)).lineTo(n,l-(C?n:-n)).arcTo(n,n,0,!1,!C,n*2,l).lineTo(f,l),o.append("path").attr("class","railroad-line").attr("d",v.build());const $=new T,O=f+d.dimensions.width,P=s-n*2;l===c?$.moveTo(O,l).lineTo(s,c):$.moveTo(O,l).lineTo(P,l).arcTo(n,n,0,!1,!C,s-n,l+(C?-n:n)).lineTo(s-n,c+(C?n:-n)).arcTo(n,n,0,!1,C,s,c),o.append("path").attr("class","railroad-line").attr("d",$.build()),u+=d.dimensions.height+this.config.verticalSeparation}return{element:o.node(),dimensions:{width:s,height:t,up:c,down:t-c}}}renderOptional(e,i){const a=this.renderExpression(e,i),r=this.config.arcRadius,t=r*2,n=a.dimensions.width+r*4,h=a.dimensions.height+t,s=e.append("g").attr("class","railroad-optional"),o=r*2,u=t;s.node().appendChild(a.element).setAttribute("transform",`translate(${o}, ${u})`);const d=u+a.dimensions.up,x=new T().moveTo(0,d).lineTo(r*2,d);s.append("path").attr("class","railroad-line").attr("d",x.build());const l=new T().moveTo(o+a.dimensions.width,d).lineTo(n,d);s.append("path").attr("class","railroad-line").attr("d",l.build());const f=new T().moveTo(0,d).arcTo(r,r,0,!1,!1,r,d-r).lineTo(r,r).arcTo(r,r,0,!1,!0,r*2,0).lineTo(n-r*2,0).arcTo(r,r,0,!1,!0,n-r,r).lineTo(n-r,d-r).arcTo(r,r,0,!1,!1,n,d);return s.append("path").attr("class","railroad-line").attr("d",f.build()),{element:s.node(),dimensions:{width:n,height:h,up:d,down:h-d}}}renderRepetition(e,i,a){const r=this.renderExpression(e,i),t=this.config.arcRadius,n=t*2,h=r.dimensions.width+t*4,s=a===0,o=r.dimensions.height+n+(s?n:0),u=e.append("g").attr("class","railroad-repetition"),c=t*2,d=s?n:0;u.node().appendChild(r.element).setAttribute("transform",`translate(${c}, ${d})`);const l=d+r.dimensions.up;u.append("path").attr("class","railroad-line").attr("d",new T().moveTo(0,l).lineTo(t*2,l).build()),u.append("path").attr("class","railroad-line").attr("d",new T().moveTo(c+r.dimensions.width,l).lineTo(h,l).build());const f=d+r.dimensions.height+t,y=new T().moveTo(c+r.dimensions.width,l).arcTo(t,t,0,!1,!0,c+r.dimensions.width+t,l+t).lineTo(c+r.dimensions.width+t,f).arcTo(t,t,0,!1,!0,c+r.dimensions.width,f+t).lineTo(t*2,f+t).arcTo(t,t,0,!1,!0,t,f).lineTo(t,l+t).arcTo(t,t,0,!1,!0,t*2,l);if(u.append("path").attr("class","railroad-line").attr("d",y.build()),s){const v=new T().moveTo(0,l).arcTo(t,t,0,!1,!1,t,l-t).lineTo(t,t).arcTo(t,t,0,!1,!0,t*2,0).lineTo(h-t*2,0).arcTo(t,t,0,!1,!0,h-t,t).lineTo(h-t,l-t).arcTo(t,t,0,!1,!1,h,l);u.append("path").attr("class","railroad-line").attr("d",v.build())}return{element:u.node(),dimensions:{width:h,height:o,up:l,down:o-l}}}renderSpecial(e,i){const a=this.measureText("? "+i+" ?"),r=a.width+this.config.padding*2,t=a.height+this.config.padding*2,n=e.append("g").attr("class","railroad-special");return n.append("rect").attr("x",0).attr("y",0).attr("width",r).attr("height",t),n.append("text").attr("x",r/2).attr("y",t/2).text("? "+i+" ?"),{element:n.node(),dimensions:{width:r,height:t,up:t/2,down:t/2}}}renderExpression(e,i){switch(i.type){case"terminal":return this.renderTerminal(e,i.value);case"nonterminal":return this.renderNonTerminal(e,i.name);case"sequence":return this.renderSequence(e,i.elements);case"choice":return this.renderChoice(e,i.alternatives);case"optional":return this.renderOptional(e,i.element);case"repetition":return this.renderRepetition(e,i.element,i.min);case"special":return this.renderSpecial(e,i.text);default:throw new Error(`Unknown node type: ${i.type}`)}}renderRule(e,i){const a=this.svg.append("g").attr("class","railroad-rule").attr("transform",`translate(0, ${i})`),r=e.name+" =",t=this.measureText(r).width+20,n=t+20,h=a.append("g"),s=this.renderExpression(h,e.definition),o=Math.max(20,s.dimensions.up),u=o-s.dimensions.up;return h.attr("transform",`translate(${n}, ${u})`),a.append("g").attr("class","railroad-rule-name-group").append("text").attr("class","railroad-rule-name").attr("x",0).attr("y",o).text(r),a.append("g").attr("class","railroad-start").append("circle").attr("cx",t).attr("cy",o).attr("r",this.config.markerRadius),a.append("g").attr("class","railroad-end").append("circle").attr("cx",n+s.dimensions.width+10).attr("cy",o).attr("r",this.config.markerRadius),a.append("path").attr("class","railroad-line").attr("d",new T().moveTo(t+this.config.markerRadius,o).lineTo(n,o).build()),a.append("path").attr("class","railroad-line").attr("d",new T().moveTo(n+s.dimensions.width,o).lineTo(n+s.dimensions.width+10-this.config.markerRadius,o).build()),{height:Math.max(40,u+s.dimensions.height+this.config.padding*2),width:n+s.dimensions.width+10+this.config.markerRadius}}renderDiagram(e){let i=this.config.padding,a=0;for(const r of e){const t=this.renderRule(r,i);i+=t.height+this.config.verticalSeparation,a=Math.max(a,t.width)}return{width:a+this.config.padding*2,height:i+this.config.padding}}},D=p((e,i,a)=>{H(e,i.height,i.width,a),e.attr("viewBox",`0 0 ${i.width} ${i.height}`)},"configureRailroadSvgSize"),he=p((e,i,a)=>{w.debug(`[Railroad] Rendering diagram +`},"getStyles"),T=class{constructor(){this.d=""}static{p(this,"PathBuilder")}moveTo(e,i){return this.d+=`M ${e} ${i} `,this}lineTo(e,i){return this.d+=`L ${e} ${i} `,this}horizontalTo(e){return this.d+=`H ${e} `,this}verticalTo(e){return this.d+=`V ${e} `,this}arcTo(e,i,a,r,t,n,h){return this.d+=`A ${e} ${i} ${a} ${r?1:0} ${t?1:0} ${n} ${h} `,this}build(){return this.d.trim()}},me=class{constructor(e,i=M()){this.textCache=new Map,this.svg=e,this.config=i}static{p(this,"RailroadRenderer")}measureText(e){if(this.textCache.has(e))return this.textCache.get(e);const i=this.svg.append("text").attr("font-family",this.config.fontFamily).attr("font-size",this.config.fontSize).text(e),a=i.node().getBBox(),r={width:a.width,height:a.height};return i.remove(),this.textCache.set(e,r),r}renderTerminal(e,i){const a=this.measureText(i),r=a.width+this.config.padding*2,t=a.height+this.config.padding*2,n=e.append("g").attr("class","railroad-terminal");return n.append("rect").attr("x",0).attr("y",0).attr("width",r).attr("height",t).attr("rx",10).attr("ry",10),n.append("text").attr("x",r/2).attr("y",t/2).text(i),{element:n.node(),dimensions:{width:r,height:t,up:t/2,down:t/2}}}renderNonTerminal(e,i){const a=this.measureText(i),r=a.width+this.config.padding*2,t=a.height+this.config.padding*2,n=e.append("g").attr("class","railroad-nonterminal");return n.append("rect").attr("x",0).attr("y",0).attr("width",r).attr("height",t),n.append("text").attr("x",r/2).attr("y",t/2).text(i),{element:n.node(),dimensions:{width:r,height:t,up:t/2,down:t/2}}}renderSequence(e,i){const a=i.map(o=>this.renderExpression(e,o));let r=0,t=0,n=0;for(const o of a)r+=o.dimensions.width,t=Math.max(t,o.dimensions.up),n=Math.max(n,o.dimensions.down);r+=(a.length-1)*this.config.horizontalSeparation;const h=e.append("g").attr("class","railroad-sequence");let s=0;for(let o=0;othis.renderExpression(e,d));let r=0,t=0;for(const d of a)r=Math.max(r,d.dimensions.width),t+=d.dimensions.height;t+=(a.length-1)*this.config.verticalSeparation;const n=this.config.arcRadius,h=n*4,s=r+h,o=e.append("g").attr("class","railroad-choice");let u=0;const c=t/2;for(const d of a){const x=u,l=x+d.dimensions.up,f=n*2+(r-d.dimensions.width)/2;o.node().appendChild(d.element).setAttribute("transform",`translate(${f}, ${x})`);const v=new T,C=l>c;l===c?v.moveTo(0,c).lineTo(f,l):v.moveTo(0,c).arcTo(n,n,0,!1,C,n,c+(C?n:-n)).lineTo(n,l-(C?n:-n)).arcTo(n,n,0,!1,!C,n*2,l).lineTo(f,l),o.append("path").attr("class","railroad-line").attr("d",v.build());const $=new T,O=f+d.dimensions.width,P=s-n*2;l===c?$.moveTo(O,l).lineTo(s,c):$.moveTo(O,l).lineTo(P,l).arcTo(n,n,0,!1,!C,s-n,l+(C?-n:n)).lineTo(s-n,c+(C?n:-n)).arcTo(n,n,0,!1,C,s,c),o.append("path").attr("class","railroad-line").attr("d",$.build()),u+=d.dimensions.height+this.config.verticalSeparation}return{element:o.node(),dimensions:{width:s,height:t,up:c,down:t-c}}}renderOptional(e,i){const a=this.renderExpression(e,i),r=this.config.arcRadius,t=r*2,n=a.dimensions.width+r*4,h=a.dimensions.height+t,s=e.append("g").attr("class","railroad-optional"),o=r*2,u=t;s.node().appendChild(a.element).setAttribute("transform",`translate(${o}, ${u})`);const d=u+a.dimensions.up,x=new T().moveTo(0,d).lineTo(r*2,d);s.append("path").attr("class","railroad-line").attr("d",x.build());const l=new T().moveTo(o+a.dimensions.width,d).lineTo(n,d);s.append("path").attr("class","railroad-line").attr("d",l.build());const f=new T().moveTo(0,d).arcTo(r,r,0,!1,!1,r,d-r).lineTo(r,r).arcTo(r,r,0,!1,!0,r*2,0).lineTo(n-r*2,0).arcTo(r,r,0,!1,!0,n-r,r).lineTo(n-r,d-r).arcTo(r,r,0,!1,!1,n,d);return s.append("path").attr("class","railroad-line").attr("d",f.build()),{element:s.node(),dimensions:{width:n,height:h,up:d,down:h-d}}}renderRepetition(e,i,a){const r=this.renderExpression(e,i),t=this.config.arcRadius,n=t*2,h=r.dimensions.width+t*4,s=a===0,o=r.dimensions.height+n+(s?n:0),u=e.append("g").attr("class","railroad-repetition"),c=t*2,d=s?n:0;u.node().appendChild(r.element).setAttribute("transform",`translate(${c}, ${d})`);const l=d+r.dimensions.up;u.append("path").attr("class","railroad-line").attr("d",new T().moveTo(0,l).lineTo(t*2,l).build()),u.append("path").attr("class","railroad-line").attr("d",new T().moveTo(c+r.dimensions.width,l).lineTo(h,l).build());const f=d+r.dimensions.height+t,y=new T().moveTo(c+r.dimensions.width,l).arcTo(t,t,0,!1,!0,c+r.dimensions.width+t,l+t).lineTo(c+r.dimensions.width+t,f).arcTo(t,t,0,!1,!0,c+r.dimensions.width,f+t).lineTo(t*2,f+t).arcTo(t,t,0,!1,!0,t,f).lineTo(t,l+t).arcTo(t,t,0,!1,!0,t*2,l);if(u.append("path").attr("class","railroad-line").attr("d",y.build()),s){const v=new T().moveTo(0,l).arcTo(t,t,0,!1,!1,t,l-t).lineTo(t,t).arcTo(t,t,0,!1,!0,t*2,0).lineTo(h-t*2,0).arcTo(t,t,0,!1,!0,h-t,t).lineTo(h-t,l-t).arcTo(t,t,0,!1,!1,h,l);u.append("path").attr("class","railroad-line").attr("d",v.build())}return{element:u.node(),dimensions:{width:h,height:o,up:l,down:o-l}}}renderSpecial(e,i){const a=this.measureText("? "+i+" ?"),r=a.width+this.config.padding*2,t=a.height+this.config.padding*2,n=e.append("g").attr("class","railroad-special");return n.append("rect").attr("x",0).attr("y",0).attr("width",r).attr("height",t),n.append("text").attr("x",r/2).attr("y",t/2).text("? "+i+" ?"),{element:n.node(),dimensions:{width:r,height:t,up:t/2,down:t/2}}}renderExpression(e,i){switch(i.type){case"terminal":return this.renderTerminal(e,i.value);case"nonterminal":return this.renderNonTerminal(e,i.name);case"sequence":return this.renderSequence(e,i.elements);case"choice":return this.renderChoice(e,i.alternatives);case"optional":return this.renderOptional(e,i.element);case"repetition":return this.renderRepetition(e,i.element,i.min);case"special":return this.renderSpecial(e,i.text);default:throw new Error(`Unknown node type: ${i.type}`)}}renderRule(e,i){const a=this.svg.append("g").attr("class","railroad-rule").attr("transform",`translate(0, ${i})`),r=e.name+" =",t=this.measureText(r).width+20,n=t+20,h=a.append("g"),s=this.renderExpression(h,e.definition),o=Math.max(20,s.dimensions.up),u=o-s.dimensions.up;return h.attr("transform",`translate(${n}, ${u})`),a.append("g").attr("class","railroad-rule-name-group").append("text").attr("class","railroad-rule-name").attr("x",0).attr("y",o).text(r),a.append("g").attr("class","railroad-start").append("circle").attr("cx",t).attr("cy",o).attr("r",this.config.markerRadius),a.append("g").attr("class","railroad-end").append("circle").attr("cx",n+s.dimensions.width+10).attr("cy",o).attr("r",this.config.markerRadius),a.append("path").attr("class","railroad-line").attr("d",new T().moveTo(t+this.config.markerRadius,o).lineTo(n,o).build()),a.append("path").attr("class","railroad-line").attr("d",new T().moveTo(n+s.dimensions.width,o).lineTo(n+s.dimensions.width+10-this.config.markerRadius,o).build()),{height:Math.max(40,u+s.dimensions.height+this.config.padding*2),width:n+s.dimensions.width+10+this.config.markerRadius}}renderDiagram(e){let i=this.config.padding,a=0;for(const r of e){const t=this.renderRule(r,i);i+=t.height+this.config.verticalSeparation,a=Math.max(a,t.width)}return{width:a+this.config.padding*2,height:i+this.config.padding}}},D=p((e,i,a)=>{q(e,i.height,i.width,a),e.attr("viewBox",`0 0 ${i.width} ${i.height}`)},"configureRailroadSvgSize"),he=p((e,i,a)=>{w.debug(`[Railroad] Rendering diagram `+e);try{const r=L(i);r.attr("class","railroad-diagram");const n=E().railroad?.useMaxWidth??!0,h=ie.getRules();if(w.debug(`[Railroad] Rendering ${h.length} rules`),h.length===0){w.warn("[Railroad] No rules to render"),D(r,{height:100,width:200},n);return}const o=new me(r,M()).renderDiagram(h);D(r,o,n),w.debug("[Railroad] Render complete")}catch(r){throw w.error("[Railroad] Render error:",r),r}},"draw"),ge={draw:he};export{ie as d,ue as g,ge as r}; diff --git a/apps/kimi-code/dist-web/assets/chunk-RYQCIY6F-Csv6QbcC.js b/apps/kimi-code/dist-web/assets/chunk-RYQCIY6F-BrAj5IFL.js similarity index 99% rename from apps/kimi-code/dist-web/assets/chunk-RYQCIY6F-Csv6QbcC.js rename to apps/kimi-code/dist-web/assets/chunk-RYQCIY6F-BrAj5IFL.js index 8b1705fad..aa42a0662 100644 --- a/apps/kimi-code/dist-web/assets/chunk-RYQCIY6F-Csv6QbcC.js +++ b/apps/kimi-code/dist-web/assets/chunk-RYQCIY6F-BrAj5IFL.js @@ -1 +1 @@ -import{_ as u,l as i}from"./mermaid.core-CgZTgv7Y.js";import{i as m,G as y}from"./graph-DOmOIIwC.js";import{b as _,m as X}from"./map-DxJ2ADlA.js";var j=4;function p(e){return _(e,j)}function C(e){var r={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:F(e),edges:M(e)};return m(e.graph())||(r.value=p(e.graph())),r}function F(e){return X(e.nodes(),function(r){var n=e.node(r),s=e.parent(r),t={v:r};return m(n)||(t.value=n),m(s)||(t.parent=s),t})}function M(e){return X(e.edges(),function(r){var n=e.edge(r),s={v:r.v,w:r.w};return m(r.name)||(s.name=r.name),m(n)||(s.value=n),s})}var c=new Map,w=new Map,A=new Map,J=u(()=>{w.clear(),A.clear(),c.clear()},"clear"),v=u((e,r)=>{const n=w.get(r)||[];return i.trace("In isDescendant",r," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),R=u((e,r)=>{const n=w.get(r)||[];return i.info("Descendants of ",r," is ",n),i.info("Edge is ",e),e.v===r||e.w===r?!1:n?n.includes(e.v)||v(e.v,r)||v(e.w,r)||n.includes(e.w):(i.debug("Tilt, ",r,",not in descendants"),!1)},"edgeInCluster"),b=u((e,r,n,s)=>{i.warn("Copying children of ",e,"root",s,"data",r.node(e),s);const t=r.children(e)||[];e!==s&&t.push(e),i.warn("Copying (nodes) clusterId",e,"nodes",t),t.forEach(o=>{if(r.children(o).length>0)b(o,r,n,s);else{const l=r.node(o);i.info("cp ",o," to ",s," with parent ",e),n.setNode(o,l),s!==r.parent(o)&&(i.warn("Setting parent",o,r.parent(o)),n.setParent(o,r.parent(o))),e!==s&&o!==e?(i.debug("Setting parent",o,e),n.setParent(o,e)):(i.info("In copy ",e,"root",s,"data",r.node(e),s),i.debug("Not Setting parent for node=",o,"cluster!==rootId",e!==s,"node!==clusterId",o!==e));const f=r.edges(o);i.debug("Copying Edges",f),f.forEach(a=>{i.info("Edge",a);const d=r.edge(a.v,a.w,a.name);i.info("Edge data",d,s);try{if(R(a,s)){const g=w.get(s)||[],E=g.includes(a.v)||v(a.v,s)||a.v===s,x=g.includes(a.w)||v(a.w,s)||a.w===s;if(E&&x)i.info("Copying as ",a.v,a.w,d,a.name),n.setEdge(a.v,a.w,d,a.name),i.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]));else{const N=E?s:a.v,h=x?s:a.w;i.info("Rebinding cross-boundary edge as ",N,h,d,a.name),r.setEdge(N,h,d,a.name)}}else i.info("Skipping copy of edge ",a.v,"-->",a.w," rootId: ",s," clusterId:",e)}catch(g){i.error(g)}})}i.debug("Removing node",o),r.removeNode(o)})},"copy"),O=u((e,r)=>{const n=r.children(e);let s=[...n];for(const t of n)A.set(t,e),s=[...s,...O(t,r)];return s},"extractDescendants"),P=u((e,r,n)=>{const s=e.edges().filter(a=>a.v===r||a.w===r),t=e.edges().filter(a=>a.v===n||a.w===n),o=s.map(a=>({v:a.v===r?n:a.v,w:a.w===r?r:a.w})),l=t.map(a=>({v:a.v,w:a.w}));return o.filter(a=>l.some(d=>a.v===d.v&&a.w===d.w))},"findCommonEdges"),D=u((e,r,n)=>{const s=r.children(e);if(i.trace("Searching children of id ",e,s),s.length<1)return e;let t;for(const o of s){const l=D(o,r,n),f=P(r,n,l);if(l)if(f.length>0)t=l;else return l}return t},"findNonClusterChild"),S=u(e=>!c.has(e)||!c.get(e).externalConnections?e:c.has(e)?c.get(e).id:e,"getAnchorId"),U=u((e,r)=>{if(!e||r>10){i.debug("Opting out, no graph ");return}else i.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(i.warn("Cluster identified",n," Replacement id in edges: ",D(n,e,n)),w.set(n,O(n,e)),c.set(n,{id:D(n,e,n),clusterData:e.node(n)}))}),e.nodes().forEach(function(n){const s=e.children(n),t=e.edges();s.length>0?(i.debug("Cluster identified",n,w),t.forEach(o=>{const l=v(o.v,n),f=v(o.w,n);l^f&&(i.warn("Edge: ",o," leaves cluster ",n),i.warn("Descendants of XXX ",n,": ",w.get(n)),c.get(n).externalConnections=!0)})):i.debug("Not a cluster ",n,w)});for(let n of c.keys()){const s=c.get(n).id,t=e.parent(s);t!==n&&c.has(t)&&!c.get(t).externalConnections&&(c.get(n).id=t);const o=e.edges().some(l=>l.v===n);if(s&&c.get(n)?.externalConnections&&o&&L(e,s,n)){const l=T(e,n,e.parent(s));l&&(c.get(n).id=l)}}e.edges().forEach(function(n){const s=e.edge(n);i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let t=n.v,o=n.w;if(i.warn("Fix XXX",c,"ids:",n.v,n.w,"Translating: ",c.get(n.v)," --- ",c.get(n.w)),c.get(n.v)||c.get(n.w)){if(i.warn("Fixing and trying - removing XXX",n.v,n.w,n.name),t=S(n.v),o=S(n.w),e.removeEdge(n.v,n.w,n.name),t!==n.v){const l=e.parent(t);c.get(l).externalConnections=!0,s.fromCluster=n.v}if(o!==n.w){const l=e.parent(o);c.get(l).externalConnections=!0,s.toCluster=n.w}i.warn("Fix Replacing with XXX",t,o,n.name),e.setEdge(t,o,s,n.name)}}),i.warn("Adjusted Graph",C(e)),k(e,0),i.trace(c)},"adjustClustersAndEdges"),k=u((e,r)=>{if(i.warn("extractor - ",r,C(e),e.children("D")),r>10){i.error("Bailing out");return}let n=e.nodes(),s=!1;for(const t of n){const o=e.children(t);s=s||o.length>0}if(!s){i.debug("Done, no node has children",e.nodes());return}i.debug("Nodes = ",n,r);for(const t of n)if(i.debug("Extracting node",t,c,c.has(t)&&!c.get(t).externalConnections,!e.parent(t),e.node(t),e.children("D")," Depth ",r),!c.has(t))i.debug("Not a cluster",t,r);else if(c.get(t)?.clusterData?.explicitDir&&e.children(t)&&e.children(t).length>0){i.warn("Cluster with explicit dir, creating subgraph for children",t,r);const o=c.get(t).clusterData.dir,l=new y({multigraph:!0,compound:!0}).setGraph({rankdir:o,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});b(t,e,l,t);const f=e.node(t)||{};e.setNode(t,{...f,clusterNode:!0,id:t,clusterData:c.get(t).clusterData,label:c.get(t).label,graph:l}),i.warn("Subgraph for cluster with explicit dir created:",t,C(l))}else if(!c.get(t).externalConnections&&e.children(t)&&e.children(t).length>0){i.warn("Cluster without external connections, without a parent and with children",t,r);let l=e.graph().rankdir==="TB"?"LR":"TB";c.get(t)?.clusterData?.dir&&(l=c.get(t).clusterData.dir,i.warn("Fixing dir",c.get(t).clusterData.dir,l));const f=new y({multigraph:!0,compound:!0}).setGraph({rankdir:l,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});b(t,e,f,t);const a=e.node(t)||{};e.setNode(t,{...a,clusterNode:!0,id:t,clusterData:c.get(t).clusterData,label:c.get(t).label,graph:f}),i.debug("Old graph after copy",C(e))}else i.warn("Cluster ** ",t," **not meeting the criteria !externalConnections:",!c.get(t).externalConnections," no parent: ",!e.parent(t)," children ",e.children(t)&&e.children(t).length>0,e.children("D"),r),i.debug(c);n=e.nodes(),i.warn("New list of nodes",n);for(const t of n){const o=e.node(t);i.warn(" Now next level",t,o),o?.clusterNode&&k(o.graph,r+1)}},"extractor"),B=u((e,r)=>{if(r.length===0)return[];let n=Object.assign([],r);return r.forEach(s=>{const t=e.children(s),o=B(e,t);n=[...n,...o]}),n},"sorter"),W=u(e=>B(e,e.children()),"sortNodesByHierarchy"),L=u((e,r,n)=>{let s=e.parent(r);for(;s&&s!==n;){const t=c.get(s);if(t&&!t.externalConnections)return!0;s=e.parent(s)}return!1},"isNodeInExtractableCluster"),T=u((e,r,n)=>{const s=e.children(r)??[];for(const t of s){if(t===n||v(t,n))continue;const o=D(t,e,r);if(o&&!L(e,o,r))return o}return null},"findSafeAnchorNode");export{U as a,c as b,J as c,D as f,W as s,C as w}; +import{_ as u,l as i}from"./mermaid.core-B_UcP3X_.js";import{i as m,G as y}from"./graph-DOmOIIwC.js";import{b as _,m as X}from"./map-DxJ2ADlA.js";var j=4;function p(e){return _(e,j)}function C(e){var r={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:F(e),edges:M(e)};return m(e.graph())||(r.value=p(e.graph())),r}function F(e){return X(e.nodes(),function(r){var n=e.node(r),s=e.parent(r),t={v:r};return m(n)||(t.value=n),m(s)||(t.parent=s),t})}function M(e){return X(e.edges(),function(r){var n=e.edge(r),s={v:r.v,w:r.w};return m(r.name)||(s.name=r.name),m(n)||(s.value=n),s})}var c=new Map,w=new Map,A=new Map,J=u(()=>{w.clear(),A.clear(),c.clear()},"clear"),v=u((e,r)=>{const n=w.get(r)||[];return i.trace("In isDescendant",r," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),R=u((e,r)=>{const n=w.get(r)||[];return i.info("Descendants of ",r," is ",n),i.info("Edge is ",e),e.v===r||e.w===r?!1:n?n.includes(e.v)||v(e.v,r)||v(e.w,r)||n.includes(e.w):(i.debug("Tilt, ",r,",not in descendants"),!1)},"edgeInCluster"),b=u((e,r,n,s)=>{i.warn("Copying children of ",e,"root",s,"data",r.node(e),s);const t=r.children(e)||[];e!==s&&t.push(e),i.warn("Copying (nodes) clusterId",e,"nodes",t),t.forEach(o=>{if(r.children(o).length>0)b(o,r,n,s);else{const l=r.node(o);i.info("cp ",o," to ",s," with parent ",e),n.setNode(o,l),s!==r.parent(o)&&(i.warn("Setting parent",o,r.parent(o)),n.setParent(o,r.parent(o))),e!==s&&o!==e?(i.debug("Setting parent",o,e),n.setParent(o,e)):(i.info("In copy ",e,"root",s,"data",r.node(e),s),i.debug("Not Setting parent for node=",o,"cluster!==rootId",e!==s,"node!==clusterId",o!==e));const f=r.edges(o);i.debug("Copying Edges",f),f.forEach(a=>{i.info("Edge",a);const d=r.edge(a.v,a.w,a.name);i.info("Edge data",d,s);try{if(R(a,s)){const g=w.get(s)||[],E=g.includes(a.v)||v(a.v,s)||a.v===s,x=g.includes(a.w)||v(a.w,s)||a.w===s;if(E&&x)i.info("Copying as ",a.v,a.w,d,a.name),n.setEdge(a.v,a.w,d,a.name),i.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]));else{const N=E?s:a.v,h=x?s:a.w;i.info("Rebinding cross-boundary edge as ",N,h,d,a.name),r.setEdge(N,h,d,a.name)}}else i.info("Skipping copy of edge ",a.v,"-->",a.w," rootId: ",s," clusterId:",e)}catch(g){i.error(g)}})}i.debug("Removing node",o),r.removeNode(o)})},"copy"),O=u((e,r)=>{const n=r.children(e);let s=[...n];for(const t of n)A.set(t,e),s=[...s,...O(t,r)];return s},"extractDescendants"),P=u((e,r,n)=>{const s=e.edges().filter(a=>a.v===r||a.w===r),t=e.edges().filter(a=>a.v===n||a.w===n),o=s.map(a=>({v:a.v===r?n:a.v,w:a.w===r?r:a.w})),l=t.map(a=>({v:a.v,w:a.w}));return o.filter(a=>l.some(d=>a.v===d.v&&a.w===d.w))},"findCommonEdges"),D=u((e,r,n)=>{const s=r.children(e);if(i.trace("Searching children of id ",e,s),s.length<1)return e;let t;for(const o of s){const l=D(o,r,n),f=P(r,n,l);if(l)if(f.length>0)t=l;else return l}return t},"findNonClusterChild"),S=u(e=>!c.has(e)||!c.get(e).externalConnections?e:c.has(e)?c.get(e).id:e,"getAnchorId"),U=u((e,r)=>{if(!e||r>10){i.debug("Opting out, no graph ");return}else i.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(i.warn("Cluster identified",n," Replacement id in edges: ",D(n,e,n)),w.set(n,O(n,e)),c.set(n,{id:D(n,e,n),clusterData:e.node(n)}))}),e.nodes().forEach(function(n){const s=e.children(n),t=e.edges();s.length>0?(i.debug("Cluster identified",n,w),t.forEach(o=>{const l=v(o.v,n),f=v(o.w,n);l^f&&(i.warn("Edge: ",o," leaves cluster ",n),i.warn("Descendants of XXX ",n,": ",w.get(n)),c.get(n).externalConnections=!0)})):i.debug("Not a cluster ",n,w)});for(let n of c.keys()){const s=c.get(n).id,t=e.parent(s);t!==n&&c.has(t)&&!c.get(t).externalConnections&&(c.get(n).id=t);const o=e.edges().some(l=>l.v===n);if(s&&c.get(n)?.externalConnections&&o&&L(e,s,n)){const l=T(e,n,e.parent(s));l&&(c.get(n).id=l)}}e.edges().forEach(function(n){const s=e.edge(n);i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let t=n.v,o=n.w;if(i.warn("Fix XXX",c,"ids:",n.v,n.w,"Translating: ",c.get(n.v)," --- ",c.get(n.w)),c.get(n.v)||c.get(n.w)){if(i.warn("Fixing and trying - removing XXX",n.v,n.w,n.name),t=S(n.v),o=S(n.w),e.removeEdge(n.v,n.w,n.name),t!==n.v){const l=e.parent(t);c.get(l).externalConnections=!0,s.fromCluster=n.v}if(o!==n.w){const l=e.parent(o);c.get(l).externalConnections=!0,s.toCluster=n.w}i.warn("Fix Replacing with XXX",t,o,n.name),e.setEdge(t,o,s,n.name)}}),i.warn("Adjusted Graph",C(e)),k(e,0),i.trace(c)},"adjustClustersAndEdges"),k=u((e,r)=>{if(i.warn("extractor - ",r,C(e),e.children("D")),r>10){i.error("Bailing out");return}let n=e.nodes(),s=!1;for(const t of n){const o=e.children(t);s=s||o.length>0}if(!s){i.debug("Done, no node has children",e.nodes());return}i.debug("Nodes = ",n,r);for(const t of n)if(i.debug("Extracting node",t,c,c.has(t)&&!c.get(t).externalConnections,!e.parent(t),e.node(t),e.children("D")," Depth ",r),!c.has(t))i.debug("Not a cluster",t,r);else if(c.get(t)?.clusterData?.explicitDir&&e.children(t)&&e.children(t).length>0){i.warn("Cluster with explicit dir, creating subgraph for children",t,r);const o=c.get(t).clusterData.dir,l=new y({multigraph:!0,compound:!0}).setGraph({rankdir:o,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});b(t,e,l,t);const f=e.node(t)||{};e.setNode(t,{...f,clusterNode:!0,id:t,clusterData:c.get(t).clusterData,label:c.get(t).label,graph:l}),i.warn("Subgraph for cluster with explicit dir created:",t,C(l))}else if(!c.get(t).externalConnections&&e.children(t)&&e.children(t).length>0){i.warn("Cluster without external connections, without a parent and with children",t,r);let l=e.graph().rankdir==="TB"?"LR":"TB";c.get(t)?.clusterData?.dir&&(l=c.get(t).clusterData.dir,i.warn("Fixing dir",c.get(t).clusterData.dir,l));const f=new y({multigraph:!0,compound:!0}).setGraph({rankdir:l,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});b(t,e,f,t);const a=e.node(t)||{};e.setNode(t,{...a,clusterNode:!0,id:t,clusterData:c.get(t).clusterData,label:c.get(t).label,graph:f}),i.debug("Old graph after copy",C(e))}else i.warn("Cluster ** ",t," **not meeting the criteria !externalConnections:",!c.get(t).externalConnections," no parent: ",!e.parent(t)," children ",e.children(t)&&e.children(t).length>0,e.children("D"),r),i.debug(c);n=e.nodes(),i.warn("New list of nodes",n);for(const t of n){const o=e.node(t);i.warn(" Now next level",t,o),o?.clusterNode&&k(o.graph,r+1)}},"extractor"),B=u((e,r)=>{if(r.length===0)return[];let n=Object.assign([],r);return r.forEach(s=>{const t=e.children(s),o=B(e,t);n=[...n,...o]}),n},"sorter"),W=u(e=>B(e,e.children()),"sortNodesByHierarchy"),L=u((e,r,n)=>{let s=e.parent(r);for(;s&&s!==n;){const t=c.get(s);if(t&&!t.externalConnections)return!0;s=e.parent(s)}return!1},"isNodeInExtractableCluster"),T=u((e,r,n)=>{const s=e.children(r)??[];for(const t of s){if(t===n||v(t,n))continue;const o=D(t,e,r);if(o&&!L(e,o,r))return o}return null},"findSafeAnchorNode");export{U as a,c as b,J as c,D as f,W as s,C as w}; diff --git a/apps/kimi-code/dist-web/assets/chunk-V7JOEXUC-DpflSafv.js b/apps/kimi-code/dist-web/assets/chunk-V7JOEXUC-DyjtUXRY.js similarity index 99% rename from apps/kimi-code/dist-web/assets/chunk-V7JOEXUC-DpflSafv.js rename to apps/kimi-code/dist-web/assets/chunk-V7JOEXUC-DyjtUXRY.js index 19fbfa256..a52c8682a 100644 --- a/apps/kimi-code/dist-web/assets/chunk-V7JOEXUC-DpflSafv.js +++ b/apps/kimi-code/dist-web/assets/chunk-V7JOEXUC-DyjtUXRY.js @@ -1,4 +1,4 @@ -import{g as tt}from"./chunk-5VM5RSS4-D5gZPx0N.js";import{g as st}from"./chunk-XXDRQBXY-BW4XjZut.js";import{s as it}from"./chunk-VR4S4FIN-CHAEh_jD.js";import{_ as f,l as Ie,c as F,u as at,v as nt,x as Oe,d as de,a5 as rt,b as ut,a as lt,s as ct,g as ot,n as ht,o as dt,k as I,p as pt,q as At,i as ft,a6 as G}from"./mermaid.core-CgZTgv7Y.js";import{f as gt}from"./chunk-32BRIVSS-DpG03lEd.js";var we=(function(){var t=f(function(O,o,h,p){for(h=h||{},p=O.length;p--;h[O[p]]=o);return h},"o"),i=[1,18],a=[1,19],n=[1,20],r=[1,41],c=[1,26],u=[1,42],d=[1,24],m=[1,25],g=[1,32],N=[1,33],Ae=[1,34],b=[1,45],fe=[1,35],ge=[1,36],me=[1,37],Ce=[1,38],be=[1,27],ke=[1,28],Ee=[1,29],Te=[1,30],ye=[1,31],k=[1,44],E=[1,46],T=[1,43],y=[1,47],De=[1,9],A=[1,8,9],Z=[1,58],$=[1,59],ee=[1,60],te=[1,61],se=[1,62],Fe=[1,63],Be=[1,64],_=[1,8,9,41],Pe=[1,77],M=[1,8,9,12,13,22,39,41,44,46,68,69,70,71,72,73,74,79,81],ie=[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],ae=[13,60,86,100,102,103],U=[13,60,73,74,86,100,102,103],Me=[13,60,68,69,70,71,72,86,100,102,103],ne=[1,103],z=[1,121],Y=[1,117],K=[1,113],W=[1,119],Q=[1,114],j=[1,115],X=[1,116],q=[1,118],H=[1,120],Re=[22,50,60,61,82,86,87,88,89,90],Ge=[1,128],re=[12,39],_e=[1,8,9,39,41,44,46],ue=[1,8,9,22],Ue=[1,153],ze=[1,8,9,61],x=[1,8,9,22,50,60,61,82,86,87,88,89,90],Se={trace:f(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:f(function(o,h,p,l,C,e,J){var s=e.length-1;switch(C){case 8:this.$=e[s-1];break;case 9:case 10:case 13:case 15:this.$=e[s];break;case 11:case 14:this.$=e[s-2]+"."+e[s];break;case 12:case 16:this.$=e[s-1]+e[s];break;case 17:case 18:this.$=e[s-1]+"~"+e[s]+"~";break;case 19:l.addRelation(e[s]);break;case 20:e[s-1].title=l.cleanupLabel(e[s]),l.addRelation(e[s-1]);break;case 31:this.$=e[s].trim(),l.setAccTitle(this.$);break;case 32:case 33:this.$=e[s].trim(),l.setAccDescription(this.$);break;case 34:l.addClassesToNamespace(e[s-3],e[s-1][0],e[s-1][1]),l.popNamespace();break;case 35:l.addClassesToNamespace(e[s-4],e[s-1][0],e[s-1][1]),l.popNamespace();break;case 36:this.$=l.addNamespace(e[s]);break;case 37:this.$=l.addNamespace(e[s-1],e[s]);break;case 38:this.$=[[e[s]],[]];break;case 39:this.$=[[e[s-1]],[]];break;case 40:e[s][0].unshift(e[s-2]),this.$=e[s];break;case 41:this.$=[[],[e[s]]];break;case 42:this.$=[[],[e[s-1]]];break;case 43:e[s][1].unshift(e[s-2]),this.$=e[s];break;case 44:case 45:this.$=[[],[]];break;case 46:this.$=e[s];break;case 48:l.setCssClass(e[s-2],e[s]);break;case 49:l.addMembers(e[s-3],e[s-1]);break;case 51:l.setCssClass(e[s-5],e[s-3]),l.addMembers(e[s-5],e[s-1]);break;case 52:l.addAnnotation(e[s-3],e[s-1]);break;case 53:l.addAnnotation(e[s-6],e[s-4]),l.addMembers(e[s-6],e[s-1]);break;case 54:l.addAnnotation(e[s-5],e[s-3]);break;case 55:this.$=e[s],l.addClass(e[s]);break;case 56:this.$=e[s-1],l.addClass(e[s-1]),l.setClassLabel(e[s-1],e[s]);break;case 60:l.addAnnotation(e[s],e[s-2]);break;case 61:case 74:this.$=[e[s]];break;case 62:e[s].push(e[s-1]),this.$=e[s];break;case 63:break;case 64:l.addMember(e[s-1],l.cleanupLabel(e[s]));break;case 65:break;case 66:break;case 67:this.$={id1:e[s-2],id2:e[s],relation:e[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 68:this.$={id1:e[s-3],id2:e[s],relation:e[s-1],relationTitle1:e[s-2],relationTitle2:"none"};break;case 69:this.$={id1:e[s-3],id2:e[s],relation:e[s-2],relationTitle1:"none",relationTitle2:e[s-1]};break;case 70:this.$={id1:e[s-4],id2:e[s],relation:e[s-2],relationTitle1:e[s-3],relationTitle2:e[s-1]};break;case 71:this.$=l.addNote(e[s],e[s-1]);break;case 72:this.$=l.addNote(e[s]);break;case 73:this.$=e[s-2],l.defineClass(e[s-1],e[s]);break;case 75:this.$=e[s-2].concat([e[s]]);break;case 76:l.setDirection("TB");break;case 77:l.setDirection("BT");break;case 78:l.setDirection("RL");break;case 79:l.setDirection("LR");break;case 80:this.$={type1:e[s-2],type2:e[s],lineType:e[s-1]};break;case 81:this.$={type1:"none",type2:e[s],lineType:e[s-1]};break;case 82:this.$={type1:e[s-1],type2:"none",lineType:e[s]};break;case 83:this.$={type1:"none",type2:"none",lineType:e[s]};break;case 84:this.$=l.relationType.AGGREGATION;break;case 85:this.$=l.relationType.EXTENSION;break;case 86:this.$=l.relationType.COMPOSITION;break;case 87:this.$=l.relationType.DEPENDENCY;break;case 88:this.$=l.relationType.LOLLIPOP;break;case 89:this.$=l.lineType.LINE;break;case 90:this.$=l.lineType.DOTTED_LINE;break;case 91:case 97:this.$=e[s-2],l.setClickEvent(e[s-1],e[s]);break;case 92:case 98:this.$=e[s-3],l.setClickEvent(e[s-2],e[s-1]),l.setTooltip(e[s-2],e[s]);break;case 93:this.$=e[s-2],l.setLink(e[s-1],e[s]);break;case 94:this.$=e[s-3],l.setLink(e[s-2],e[s-1],e[s]);break;case 95:this.$=e[s-3],l.setLink(e[s-2],e[s-1]),l.setTooltip(e[s-2],e[s]);break;case 96:this.$=e[s-4],l.setLink(e[s-3],e[s-2],e[s]),l.setTooltip(e[s-3],e[s-1]);break;case 99:this.$=e[s-3],l.setClickEvent(e[s-2],e[s-1],e[s]);break;case 100:this.$=e[s-4],l.setClickEvent(e[s-3],e[s-2],e[s-1]),l.setTooltip(e[s-3],e[s]);break;case 101:this.$=e[s-3],l.setLink(e[s-2],e[s]);break;case 102:this.$=e[s-4],l.setLink(e[s-3],e[s-1],e[s]);break;case 103:this.$=e[s-4],l.setLink(e[s-3],e[s-1]),l.setTooltip(e[s-3],e[s]);break;case 104:this.$=e[s-5],l.setLink(e[s-4],e[s-2],e[s]),l.setTooltip(e[s-4],e[s-1]);break;case 105:this.$=e[s-2],l.setCssStyle(e[s-1],e[s]);break;case 106:l.setCssClass(e[s-1],e[s]);break;case 107:this.$=[e[s]];break;case 108:e[s-2].push(e[s]),this.$=e[s-2];break;case 110:this.$=e[s-1]+e[s];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:i,35:a,37:n,38:22,42:r,43:23,46:c,48:u,51:d,52:m,54:g,56:N,57:Ae,60:b,62:fe,63:ge,64:me,65:Ce,75:be,76:ke,78:Ee,82:Te,83:ye,86:k,100:E,102:T,103:y},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},t(De,[2,5],{8:[1,48]}),{8:[1,49]},t(A,[2,19],{22:[1,50]}),t(A,[2,21]),t(A,[2,22]),t(A,[2,23]),t(A,[2,24]),t(A,[2,25]),t(A,[2,26]),t(A,[2,27]),t(A,[2,28]),t(A,[2,29]),t(A,[2,30]),{34:[1,51]},{36:[1,52]},t(A,[2,33]),t(A,[2,63],{53:53,66:56,67:57,13:[1,54],22:[1,55],68:Z,69:$,70:ee,71:te,72:se,73:Fe,74:Be}),{39:[1,65]},t(_,[2,47],{39:[1,67],44:[1,66],46:[1,68]}),t(A,[2,65]),t(A,[2,66]),{16:69,60:b,86:k,100:E,102:T},{16:39,17:40,19:70,60:b,86:k,100:E,102:T,103:y},{16:39,17:40,19:71,60:b,86:k,100:E,102:T,103:y},{16:39,17:40,19:72,60:b,86:k,100:E,102:T,103:y},{60:[1,73]},{13:[1,74]},{16:39,17:40,19:75,60:b,86:k,100:E,102:T,103:y},{13:Pe,55:76},{58:78,60:[1,79]},t(A,[2,76]),t(A,[2,77]),t(A,[2,78]),t(A,[2,79]),t(M,[2,13],{16:39,17:40,19:81,18:[1,80],20:[1,82],60:b,86:k,100:E,102:T,103:y}),t(M,[2,15],{20:[1,83]}),{15:84,16:85,17:86,60:b,86:k,100:E,102:T,103:y},{16:39,17:40,19:87,60:b,86:k,100:E,102:T,103:y},t(ie,[2,133]),t(ie,[2,134]),t(ie,[2,135]),t(ie,[2,136]),t([1,8,9,12,13,20,22,39,41,44,46,68,69,70,71,72,73,74,79,81],[2,137]),t(De,[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:i,35:a,37:n,42:r,46:c,48:u,51:d,52:m,54:g,56:N,57:Ae,60:b,62:fe,63:ge,64:me,65:Ce,75:be,76:ke,78:Ee,82:Te,83:ye,86:k,100:E,102:T,103:y}),{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:i,35:a,37:n,38:22,42:r,43:23,46:c,48:u,51:d,52:m,54:g,56:N,57:Ae,60:b,62:fe,63:ge,64:me,65:Ce,75:be,76:ke,78:Ee,82:Te,83:ye,86:k,100:E,102:T,103:y},t(A,[2,20]),t(A,[2,31]),t(A,[2,32]),{13:[1,91],16:39,17:40,19:90,60:b,86:k,100:E,102:T,103:y},{53:92,66:56,67:57,68:Z,69:$,70:ee,71:te,72:se,73:Fe,74:Be},t(A,[2,64]),{67:93,73:Fe,74:Be},t(ae,[2,83],{66:94,68:Z,69:$,70:ee,71:te,72:se}),t(U,[2,84]),t(U,[2,85]),t(U,[2,86]),t(U,[2,87]),t(U,[2,88]),t(Me,[2,89]),t(Me,[2,90]),{8:[1,96],23:99,24:97,30:98,38:22,40:95,42:r,43:23,48:u,54:g,56:N},{16:100,60:b,86:k,100:E,102:T},{41:[1,102],45:101,51:ne},{16:104,60:b,86:k,100:E,102:T},{47:[1,105]},{13:[1,106]},{13:[1,107]},{79:[1,108],81:[1,109]},{22:z,50:Y,59:110,60:K,82:W,84:111,85:112,86:Q,87:j,88:X,89:q,90:H},{60:[1,122]},{13:Pe,55:123},t(_,[2,72]),t(_,[2,138]),{22:z,50:Y,59:124,60:K,61:[1,125],82:W,84:111,85:112,86:Q,87:j,88:X,89:q,90:H},t(Re,[2,74]),{16:39,17:40,19:126,60:b,86:k,100:E,102:T,103:y},t(M,[2,16]),t(M,[2,17]),t(M,[2,18]),{11:127,12:Ge,39:[2,36]},t(re,[2,9],{16:85,17:86,15:130,18:[1,129],60:b,86:k,100:E,102:T,103:y}),t(re,[2,10]),t(_e,[2,55],{11:131,12:Ge}),t(De,[2,7]),{9:[1,132]},t(ue,[2,67]),{16:39,17:40,19:133,60:b,86:k,100:E,102:T,103:y},{13:[1,135],16:39,17:40,19:134,60:b,86:k,100:E,102:T,103:y},t(ae,[2,82],{66:136,68:Z,69:$,70:ee,71:te,72:se}),t(ae,[2,81]),{41:[1,137]},{23:99,24:97,30:98,38:22,40:138,42:r,43:23,48:u,54:g,56:N},{8:[1,139],41:[2,38]},{8:[1,140],41:[2,41]},{8:[1,141],41:[2,44]},t(_,[2,48],{39:[1,142]}),{41:[1,143]},t(_,[2,50]),{41:[2,61],45:144,51:ne},{47:[1,145]},{16:39,17:40,19:146,60:b,86:k,100:E,102:T,103:y},t(A,[2,91],{13:[1,147]}),t(A,[2,93],{13:[1,149],77:[1,148]}),t(A,[2,97],{13:[1,150],80:[1,151]}),{13:[1,152]},t(A,[2,105],{61:Ue}),t(ze,[2,107],{85:154,22:z,50:Y,60:K,82:W,86:Q,87:j,88:X,89:q,90:H}),t(x,[2,109]),t(x,[2,111]),t(x,[2,112]),t(x,[2,113]),t(x,[2,114]),t(x,[2,115]),t(x,[2,116]),t(x,[2,117]),t(x,[2,118]),t(x,[2,119]),t(A,[2,106]),t(_,[2,71]),t(A,[2,73],{61:Ue}),{60:[1,155]},t(M,[2,14]),{39:[2,37]},{13:[1,156]},{15:157,16:85,17:86,60:b,86:k,100:E,102:T,103:y},t(re,[2,12]),t(_e,[2,56]),{1:[2,4]},t(ue,[2,69]),t(ue,[2,68]),{16:39,17:40,19:158,60:b,86:k,100:E,102:T,103:y},t(ae,[2,80]),t(_,[2,34]),{41:[1,159]},{23:99,24:97,30:98,38:22,40:160,41:[2,39],42:r,43:23,48:u,54:g,56:N},{23:99,24:97,30:98,38:22,40:161,41:[2,42],42:r,43:23,48:u,54:g,56:N},{23:99,24:97,30:98,38:22,40:162,41:[2,45],42:r,43:23,48:u,54:g,56:N},{45:163,51:ne},t(_,[2,49]),{41:[2,62]},t(_,[2,52],{39:[1,164]}),t(A,[2,60]),t(A,[2,92]),t(A,[2,94]),t(A,[2,95],{77:[1,165]}),t(A,[2,98]),t(A,[2,99],{13:[1,166]}),t(A,[2,101],{13:[1,168],77:[1,167]}),{22:z,50:Y,60:K,82:W,84:169,85:112,86:Q,87:j,88:X,89:q,90:H},t(x,[2,110]),t(Re,[2,75]),{14:[1,170]},t(re,[2,11]),t(ue,[2,70]),t(_,[2,35]),{41:[2,40]},{41:[2,43]},{41:[2,46]},{41:[1,171]},{41:[1,173],45:172,51:ne},t(A,[2,96]),t(A,[2,100]),t(A,[2,102]),t(A,[2,103],{77:[1,174]}),t(ze,[2,108],{85:154,22:z,50:Y,60:K,82:W,86:Q,87:j,88:X,89:q,90:H}),t(_e,[2,8]),t(_,[2,51]),{41:[1,175]},t(_,[2,54]),t(A,[2,104]),t(_,[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:f(function(o,h){if(h.recoverable)this.trace(o);else{var p=new Error(o);throw p.hash=h,p}},"parseError"),parse:f(function(o){var h=this,p=[0],l=[],C=[null],e=[],J=this.table,s="",ce=0,Ye=0,Je=2,Ke=1,Ze=e.slice.call(arguments,1),D=Object.create(this.lexer),w={yy:{}};for(var Ne in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ne)&&(w.yy[Ne]=this.yy[Ne]);D.setInput(o,w.yy),w.yy.lexer=D,w.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var Le=D.yylloc;e.push(Le);var $e=D.options&&D.options.ranges;typeof w.yy.parseError=="function"?this.parseError=w.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function et(S){p.length=p.length-2*S,C.length=C.length-S,e.length=e.length-S}f(et,"popStack");function We(){var S;return S=l.pop()||D.lex()||Ke,typeof S!="number"&&(S instanceof Array&&(l=S,S=l.pop()),S=h.symbols_[S]||S),S}f(We,"lex");for(var B,V,L,xe,R={},oe,v,Qe,he;;){if(V=p[p.length-1],this.defaultActions[V]?L=this.defaultActions[V]:((B===null||typeof B>"u")&&(B=We()),L=J[V]&&J[V][B]),typeof L>"u"||!L.length||!L[0]){var ve="";he=[];for(oe in J[V])this.terminals_[oe]&&oe>Je&&he.push("'"+this.terminals_[oe]+"'");D.showPosition?ve="Parse error on line "+(ce+1)+`: +import{g as tt}from"./chunk-5VM5RSS4-DxIYPYOn.js";import{g as st}from"./chunk-XXDRQBXY-AHUPVB2f.js";import{s as it}from"./chunk-VR4S4FIN-CYEgbtU1.js";import{_ as f,l as Ie,c as F,v as at,x as nt,y as Oe,d as de,a5 as rt,b as ut,a as lt,s as ct,g as ot,o as ht,p as dt,k as I,q as pt,r as At,i as ft,a6 as G}from"./mermaid.core-B_UcP3X_.js";import{f as gt}from"./chunk-32BRIVSS-D_mpvupa.js";var we=(function(){var t=f(function(O,o,h,p){for(h=h||{},p=O.length;p--;h[O[p]]=o);return h},"o"),i=[1,18],a=[1,19],n=[1,20],r=[1,41],c=[1,26],u=[1,42],d=[1,24],m=[1,25],g=[1,32],N=[1,33],Ae=[1,34],b=[1,45],fe=[1,35],ge=[1,36],me=[1,37],Ce=[1,38],be=[1,27],ke=[1,28],Ee=[1,29],Te=[1,30],ye=[1,31],k=[1,44],E=[1,46],T=[1,43],y=[1,47],De=[1,9],A=[1,8,9],Z=[1,58],$=[1,59],ee=[1,60],te=[1,61],se=[1,62],Fe=[1,63],Be=[1,64],_=[1,8,9,41],Pe=[1,77],M=[1,8,9,12,13,22,39,41,44,46,68,69,70,71,72,73,74,79,81],ie=[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],ae=[13,60,86,100,102,103],U=[13,60,73,74,86,100,102,103],Me=[13,60,68,69,70,71,72,86,100,102,103],ne=[1,103],z=[1,121],Y=[1,117],K=[1,113],W=[1,119],Q=[1,114],j=[1,115],X=[1,116],q=[1,118],H=[1,120],Re=[22,50,60,61,82,86,87,88,89,90],Ge=[1,128],re=[12,39],_e=[1,8,9,39,41,44,46],ue=[1,8,9,22],Ue=[1,153],ze=[1,8,9,61],x=[1,8,9,22,50,60,61,82,86,87,88,89,90],Se={trace:f(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:f(function(o,h,p,l,C,e,J){var s=e.length-1;switch(C){case 8:this.$=e[s-1];break;case 9:case 10:case 13:case 15:this.$=e[s];break;case 11:case 14:this.$=e[s-2]+"."+e[s];break;case 12:case 16:this.$=e[s-1]+e[s];break;case 17:case 18:this.$=e[s-1]+"~"+e[s]+"~";break;case 19:l.addRelation(e[s]);break;case 20:e[s-1].title=l.cleanupLabel(e[s]),l.addRelation(e[s-1]);break;case 31:this.$=e[s].trim(),l.setAccTitle(this.$);break;case 32:case 33:this.$=e[s].trim(),l.setAccDescription(this.$);break;case 34:l.addClassesToNamespace(e[s-3],e[s-1][0],e[s-1][1]),l.popNamespace();break;case 35:l.addClassesToNamespace(e[s-4],e[s-1][0],e[s-1][1]),l.popNamespace();break;case 36:this.$=l.addNamespace(e[s]);break;case 37:this.$=l.addNamespace(e[s-1],e[s]);break;case 38:this.$=[[e[s]],[]];break;case 39:this.$=[[e[s-1]],[]];break;case 40:e[s][0].unshift(e[s-2]),this.$=e[s];break;case 41:this.$=[[],[e[s]]];break;case 42:this.$=[[],[e[s-1]]];break;case 43:e[s][1].unshift(e[s-2]),this.$=e[s];break;case 44:case 45:this.$=[[],[]];break;case 46:this.$=e[s];break;case 48:l.setCssClass(e[s-2],e[s]);break;case 49:l.addMembers(e[s-3],e[s-1]);break;case 51:l.setCssClass(e[s-5],e[s-3]),l.addMembers(e[s-5],e[s-1]);break;case 52:l.addAnnotation(e[s-3],e[s-1]);break;case 53:l.addAnnotation(e[s-6],e[s-4]),l.addMembers(e[s-6],e[s-1]);break;case 54:l.addAnnotation(e[s-5],e[s-3]);break;case 55:this.$=e[s],l.addClass(e[s]);break;case 56:this.$=e[s-1],l.addClass(e[s-1]),l.setClassLabel(e[s-1],e[s]);break;case 60:l.addAnnotation(e[s],e[s-2]);break;case 61:case 74:this.$=[e[s]];break;case 62:e[s].push(e[s-1]),this.$=e[s];break;case 63:break;case 64:l.addMember(e[s-1],l.cleanupLabel(e[s]));break;case 65:break;case 66:break;case 67:this.$={id1:e[s-2],id2:e[s],relation:e[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 68:this.$={id1:e[s-3],id2:e[s],relation:e[s-1],relationTitle1:e[s-2],relationTitle2:"none"};break;case 69:this.$={id1:e[s-3],id2:e[s],relation:e[s-2],relationTitle1:"none",relationTitle2:e[s-1]};break;case 70:this.$={id1:e[s-4],id2:e[s],relation:e[s-2],relationTitle1:e[s-3],relationTitle2:e[s-1]};break;case 71:this.$=l.addNote(e[s],e[s-1]);break;case 72:this.$=l.addNote(e[s]);break;case 73:this.$=e[s-2],l.defineClass(e[s-1],e[s]);break;case 75:this.$=e[s-2].concat([e[s]]);break;case 76:l.setDirection("TB");break;case 77:l.setDirection("BT");break;case 78:l.setDirection("RL");break;case 79:l.setDirection("LR");break;case 80:this.$={type1:e[s-2],type2:e[s],lineType:e[s-1]};break;case 81:this.$={type1:"none",type2:e[s],lineType:e[s-1]};break;case 82:this.$={type1:e[s-1],type2:"none",lineType:e[s]};break;case 83:this.$={type1:"none",type2:"none",lineType:e[s]};break;case 84:this.$=l.relationType.AGGREGATION;break;case 85:this.$=l.relationType.EXTENSION;break;case 86:this.$=l.relationType.COMPOSITION;break;case 87:this.$=l.relationType.DEPENDENCY;break;case 88:this.$=l.relationType.LOLLIPOP;break;case 89:this.$=l.lineType.LINE;break;case 90:this.$=l.lineType.DOTTED_LINE;break;case 91:case 97:this.$=e[s-2],l.setClickEvent(e[s-1],e[s]);break;case 92:case 98:this.$=e[s-3],l.setClickEvent(e[s-2],e[s-1]),l.setTooltip(e[s-2],e[s]);break;case 93:this.$=e[s-2],l.setLink(e[s-1],e[s]);break;case 94:this.$=e[s-3],l.setLink(e[s-2],e[s-1],e[s]);break;case 95:this.$=e[s-3],l.setLink(e[s-2],e[s-1]),l.setTooltip(e[s-2],e[s]);break;case 96:this.$=e[s-4],l.setLink(e[s-3],e[s-2],e[s]),l.setTooltip(e[s-3],e[s-1]);break;case 99:this.$=e[s-3],l.setClickEvent(e[s-2],e[s-1],e[s]);break;case 100:this.$=e[s-4],l.setClickEvent(e[s-3],e[s-2],e[s-1]),l.setTooltip(e[s-3],e[s]);break;case 101:this.$=e[s-3],l.setLink(e[s-2],e[s]);break;case 102:this.$=e[s-4],l.setLink(e[s-3],e[s-1],e[s]);break;case 103:this.$=e[s-4],l.setLink(e[s-3],e[s-1]),l.setTooltip(e[s-3],e[s]);break;case 104:this.$=e[s-5],l.setLink(e[s-4],e[s-2],e[s]),l.setTooltip(e[s-4],e[s-1]);break;case 105:this.$=e[s-2],l.setCssStyle(e[s-1],e[s]);break;case 106:l.setCssClass(e[s-1],e[s]);break;case 107:this.$=[e[s]];break;case 108:e[s-2].push(e[s]),this.$=e[s-2];break;case 110:this.$=e[s-1]+e[s];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:i,35:a,37:n,38:22,42:r,43:23,46:c,48:u,51:d,52:m,54:g,56:N,57:Ae,60:b,62:fe,63:ge,64:me,65:Ce,75:be,76:ke,78:Ee,82:Te,83:ye,86:k,100:E,102:T,103:y},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},t(De,[2,5],{8:[1,48]}),{8:[1,49]},t(A,[2,19],{22:[1,50]}),t(A,[2,21]),t(A,[2,22]),t(A,[2,23]),t(A,[2,24]),t(A,[2,25]),t(A,[2,26]),t(A,[2,27]),t(A,[2,28]),t(A,[2,29]),t(A,[2,30]),{34:[1,51]},{36:[1,52]},t(A,[2,33]),t(A,[2,63],{53:53,66:56,67:57,13:[1,54],22:[1,55],68:Z,69:$,70:ee,71:te,72:se,73:Fe,74:Be}),{39:[1,65]},t(_,[2,47],{39:[1,67],44:[1,66],46:[1,68]}),t(A,[2,65]),t(A,[2,66]),{16:69,60:b,86:k,100:E,102:T},{16:39,17:40,19:70,60:b,86:k,100:E,102:T,103:y},{16:39,17:40,19:71,60:b,86:k,100:E,102:T,103:y},{16:39,17:40,19:72,60:b,86:k,100:E,102:T,103:y},{60:[1,73]},{13:[1,74]},{16:39,17:40,19:75,60:b,86:k,100:E,102:T,103:y},{13:Pe,55:76},{58:78,60:[1,79]},t(A,[2,76]),t(A,[2,77]),t(A,[2,78]),t(A,[2,79]),t(M,[2,13],{16:39,17:40,19:81,18:[1,80],20:[1,82],60:b,86:k,100:E,102:T,103:y}),t(M,[2,15],{20:[1,83]}),{15:84,16:85,17:86,60:b,86:k,100:E,102:T,103:y},{16:39,17:40,19:87,60:b,86:k,100:E,102:T,103:y},t(ie,[2,133]),t(ie,[2,134]),t(ie,[2,135]),t(ie,[2,136]),t([1,8,9,12,13,20,22,39,41,44,46,68,69,70,71,72,73,74,79,81],[2,137]),t(De,[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:i,35:a,37:n,42:r,46:c,48:u,51:d,52:m,54:g,56:N,57:Ae,60:b,62:fe,63:ge,64:me,65:Ce,75:be,76:ke,78:Ee,82:Te,83:ye,86:k,100:E,102:T,103:y}),{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:i,35:a,37:n,38:22,42:r,43:23,46:c,48:u,51:d,52:m,54:g,56:N,57:Ae,60:b,62:fe,63:ge,64:me,65:Ce,75:be,76:ke,78:Ee,82:Te,83:ye,86:k,100:E,102:T,103:y},t(A,[2,20]),t(A,[2,31]),t(A,[2,32]),{13:[1,91],16:39,17:40,19:90,60:b,86:k,100:E,102:T,103:y},{53:92,66:56,67:57,68:Z,69:$,70:ee,71:te,72:se,73:Fe,74:Be},t(A,[2,64]),{67:93,73:Fe,74:Be},t(ae,[2,83],{66:94,68:Z,69:$,70:ee,71:te,72:se}),t(U,[2,84]),t(U,[2,85]),t(U,[2,86]),t(U,[2,87]),t(U,[2,88]),t(Me,[2,89]),t(Me,[2,90]),{8:[1,96],23:99,24:97,30:98,38:22,40:95,42:r,43:23,48:u,54:g,56:N},{16:100,60:b,86:k,100:E,102:T},{41:[1,102],45:101,51:ne},{16:104,60:b,86:k,100:E,102:T},{47:[1,105]},{13:[1,106]},{13:[1,107]},{79:[1,108],81:[1,109]},{22:z,50:Y,59:110,60:K,82:W,84:111,85:112,86:Q,87:j,88:X,89:q,90:H},{60:[1,122]},{13:Pe,55:123},t(_,[2,72]),t(_,[2,138]),{22:z,50:Y,59:124,60:K,61:[1,125],82:W,84:111,85:112,86:Q,87:j,88:X,89:q,90:H},t(Re,[2,74]),{16:39,17:40,19:126,60:b,86:k,100:E,102:T,103:y},t(M,[2,16]),t(M,[2,17]),t(M,[2,18]),{11:127,12:Ge,39:[2,36]},t(re,[2,9],{16:85,17:86,15:130,18:[1,129],60:b,86:k,100:E,102:T,103:y}),t(re,[2,10]),t(_e,[2,55],{11:131,12:Ge}),t(De,[2,7]),{9:[1,132]},t(ue,[2,67]),{16:39,17:40,19:133,60:b,86:k,100:E,102:T,103:y},{13:[1,135],16:39,17:40,19:134,60:b,86:k,100:E,102:T,103:y},t(ae,[2,82],{66:136,68:Z,69:$,70:ee,71:te,72:se}),t(ae,[2,81]),{41:[1,137]},{23:99,24:97,30:98,38:22,40:138,42:r,43:23,48:u,54:g,56:N},{8:[1,139],41:[2,38]},{8:[1,140],41:[2,41]},{8:[1,141],41:[2,44]},t(_,[2,48],{39:[1,142]}),{41:[1,143]},t(_,[2,50]),{41:[2,61],45:144,51:ne},{47:[1,145]},{16:39,17:40,19:146,60:b,86:k,100:E,102:T,103:y},t(A,[2,91],{13:[1,147]}),t(A,[2,93],{13:[1,149],77:[1,148]}),t(A,[2,97],{13:[1,150],80:[1,151]}),{13:[1,152]},t(A,[2,105],{61:Ue}),t(ze,[2,107],{85:154,22:z,50:Y,60:K,82:W,86:Q,87:j,88:X,89:q,90:H}),t(x,[2,109]),t(x,[2,111]),t(x,[2,112]),t(x,[2,113]),t(x,[2,114]),t(x,[2,115]),t(x,[2,116]),t(x,[2,117]),t(x,[2,118]),t(x,[2,119]),t(A,[2,106]),t(_,[2,71]),t(A,[2,73],{61:Ue}),{60:[1,155]},t(M,[2,14]),{39:[2,37]},{13:[1,156]},{15:157,16:85,17:86,60:b,86:k,100:E,102:T,103:y},t(re,[2,12]),t(_e,[2,56]),{1:[2,4]},t(ue,[2,69]),t(ue,[2,68]),{16:39,17:40,19:158,60:b,86:k,100:E,102:T,103:y},t(ae,[2,80]),t(_,[2,34]),{41:[1,159]},{23:99,24:97,30:98,38:22,40:160,41:[2,39],42:r,43:23,48:u,54:g,56:N},{23:99,24:97,30:98,38:22,40:161,41:[2,42],42:r,43:23,48:u,54:g,56:N},{23:99,24:97,30:98,38:22,40:162,41:[2,45],42:r,43:23,48:u,54:g,56:N},{45:163,51:ne},t(_,[2,49]),{41:[2,62]},t(_,[2,52],{39:[1,164]}),t(A,[2,60]),t(A,[2,92]),t(A,[2,94]),t(A,[2,95],{77:[1,165]}),t(A,[2,98]),t(A,[2,99],{13:[1,166]}),t(A,[2,101],{13:[1,168],77:[1,167]}),{22:z,50:Y,60:K,82:W,84:169,85:112,86:Q,87:j,88:X,89:q,90:H},t(x,[2,110]),t(Re,[2,75]),{14:[1,170]},t(re,[2,11]),t(ue,[2,70]),t(_,[2,35]),{41:[2,40]},{41:[2,43]},{41:[2,46]},{41:[1,171]},{41:[1,173],45:172,51:ne},t(A,[2,96]),t(A,[2,100]),t(A,[2,102]),t(A,[2,103],{77:[1,174]}),t(ze,[2,108],{85:154,22:z,50:Y,60:K,82:W,86:Q,87:j,88:X,89:q,90:H}),t(_e,[2,8]),t(_,[2,51]),{41:[1,175]},t(_,[2,54]),t(A,[2,104]),t(_,[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:f(function(o,h){if(h.recoverable)this.trace(o);else{var p=new Error(o);throw p.hash=h,p}},"parseError"),parse:f(function(o){var h=this,p=[0],l=[],C=[null],e=[],J=this.table,s="",ce=0,Ye=0,Je=2,Ke=1,Ze=e.slice.call(arguments,1),D=Object.create(this.lexer),w={yy:{}};for(var Ne in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ne)&&(w.yy[Ne]=this.yy[Ne]);D.setInput(o,w.yy),w.yy.lexer=D,w.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var Le=D.yylloc;e.push(Le);var $e=D.options&&D.options.ranges;typeof w.yy.parseError=="function"?this.parseError=w.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function et(S){p.length=p.length-2*S,C.length=C.length-S,e.length=e.length-S}f(et,"popStack");function We(){var S;return S=l.pop()||D.lex()||Ke,typeof S!="number"&&(S instanceof Array&&(l=S,S=l.pop()),S=h.symbols_[S]||S),S}f(We,"lex");for(var B,V,L,xe,R={},oe,v,Qe,he;;){if(V=p[p.length-1],this.defaultActions[V]?L=this.defaultActions[V]:((B===null||typeof B>"u")&&(B=We()),L=J[V]&&J[V][B]),typeof L>"u"||!L.length||!L[0]){var ve="";he=[];for(oe in J[V])this.terminals_[oe]&&oe>Je&&he.push("'"+this.terminals_[oe]+"'");D.showPosition?ve="Parse error on line "+(ce+1)+`: `+D.showPosition()+` Expecting `+he.join(", ")+", got '"+(this.terminals_[B]||B)+"'":ve="Parse error on line "+(ce+1)+": Unexpected "+(B==Ke?"end of input":"'"+(this.terminals_[B]||B)+"'"),this.parseError(ve,{text:D.match,token:this.terminals_[B]||B,line:D.yylineno,loc:Le,expected:he})}if(L[0]instanceof Array&&L.length>1)throw new Error("Parse Error: multiple actions possible at state: "+V+", token: "+B);switch(L[0]){case 1:p.push(B),C.push(D.yytext),e.push(D.yylloc),p.push(L[1]),B=null,Ye=D.yyleng,s=D.yytext,ce=D.yylineno,Le=D.yylloc;break;case 2:if(v=this.productions_[L[1]][1],R.$=C[C.length-v],R._$={first_line:e[e.length-(v||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(v||1)].first_column,last_column:e[e.length-1].last_column},$e&&(R._$.range=[e[e.length-(v||1)].range[0],e[e.length-1].range[1]]),xe=this.performAction.apply(R,[s,Ye,ce,w.yy,L[1],C,e].concat(Ze)),typeof xe<"u")return xe;v&&(p=p.slice(0,-1*v*2),C=C.slice(0,-1*v),e=e.slice(0,-1*v)),p.push(this.productions_[L[1]][0]),C.push(R.$),e.push(R._$),Qe=J[p[p.length-2]][p[p.length-1]],p.push(Qe);break;case 3:return!0}}return!0},"parse")},He=(function(){var O={EOF:1,parseError:f(function(h,p){if(this.yy.parser)this.yy.parser.parseError(h,p);else throw new Error(h)},"parseError"),setInput:f(function(o,h){return this.yy=h||this.yy||{},this._input=o,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:f(function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var h=o.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),o},"input"),unput:f(function(o){var h=o.length,p=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;var l=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 C=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===l.length?this.yylloc.first_column:0)+l[l.length-p.length].length-p[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[C[0],C[0]+this.yyleng-h]),this.yyleng=this.yytext.length,this},"unput"),more:f(function(){return this._more=!0,this},"more"),reject:f(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:f(function(o){this.unput(this.match.slice(o))},"less"),pastInput:f(function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:f(function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:f(function(){var o=this.pastInput(),h=new Array(o.length+1).join("-");return o+this.upcomingInput()+` diff --git a/apps/kimi-code/dist-web/assets/chunk-VR4S4FIN-CHAEh_jD.js b/apps/kimi-code/dist-web/assets/chunk-VR4S4FIN-CYEgbtU1.js similarity index 87% rename from apps/kimi-code/dist-web/assets/chunk-VR4S4FIN-CHAEh_jD.js rename to apps/kimi-code/dist-web/assets/chunk-VR4S4FIN-CYEgbtU1.js index 5c621334c..a47bef2b3 100644 --- a/apps/kimi-code/dist-web/assets/chunk-VR4S4FIN-CHAEh_jD.js +++ b/apps/kimi-code/dist-web/assets/chunk-VR4S4FIN-CYEgbtU1.js @@ -1 +1 @@ -import{_ as a,e as w,l as x}from"./mermaid.core-CgZTgv7Y.js";var d=a((e,t,i,r)=>{e.attr("class",i);const{width:o,height:h,x:n,y:c}=u(e,t);w(e,h,o,r);const s=l(n,c,o,h,t);e.attr("viewBox",s),x.debug(`viewBox configured: ${s} with padding: ${t}`)},"setupViewPortForSVG"),u=a((e,t)=>{const i=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:i.width+t*2,height:i.height+t*2,x:i.x,y:i.y}},"calculateDimensionsWithPadding"),l=a((e,t,i,r,o)=>`${e-o} ${t-o} ${i} ${r}`,"createViewBox");export{d as s}; +import{_ as a,e as w,l as x}from"./mermaid.core-B_UcP3X_.js";var d=a((e,t,i,r)=>{e.attr("class",i);const{width:o,height:h,x:n,y:c}=u(e,t);w(e,h,o,r);const s=l(n,c,o,h,t);e.attr("viewBox",s),x.debug(`viewBox configured: ${s} with padding: ${t}`)},"setupViewPortForSVG"),u=a((e,t)=>{const i=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:i.width+t*2,height:i.height+t*2,x:i.x,y:i.y}},"calculateDimensionsWithPadding"),l=a((e,t,i,r,o)=>`${e-o} ${t-o} ${i} ${r}`,"createViewBox");export{d as s}; diff --git a/apps/kimi-code/dist-web/assets/chunk-XXDRQBXY-BW4XjZut.js b/apps/kimi-code/dist-web/assets/chunk-XXDRQBXY-AHUPVB2f.js similarity index 72% rename from apps/kimi-code/dist-web/assets/chunk-XXDRQBXY-BW4XjZut.js rename to apps/kimi-code/dist-web/assets/chunk-XXDRQBXY-AHUPVB2f.js index 0c5dfb7a2..860c7de34 100644 --- a/apps/kimi-code/dist-web/assets/chunk-XXDRQBXY-BW4XjZut.js +++ b/apps/kimi-code/dist-web/assets/chunk-XXDRQBXY-AHUPVB2f.js @@ -1 +1 @@ -import{_ as a,d as o}from"./mermaid.core-CgZTgv7Y.js";var d=a((t,e)=>{let n;return e==="sandbox"&&(n=o("#i"+t)),(e==="sandbox"?o(n.nodes()[0].contentDocument.body):o("body")).select(`[id="${t}"]`)},"getDiagramElement");export{d as g}; +import{_ as a,d as o}from"./mermaid.core-B_UcP3X_.js";var d=a((t,e)=>{let n;return e==="sandbox"&&(n=o("#i"+t)),(e==="sandbox"?o(n.nodes()[0].contentDocument.body):o("body")).select(`[id="${t}"]`)},"getDiagramElement");export{d as g}; diff --git a/apps/kimi-code/dist-web/assets/classDiagram-OUVF2IWQ-Bx-1PFrT.js b/apps/kimi-code/dist-web/assets/classDiagram-OUVF2IWQ-Bx-1PFrT.js new file mode 100644 index 000000000..f3ca338ad --- /dev/null +++ b/apps/kimi-code/dist-web/assets/classDiagram-OUVF2IWQ-Bx-1PFrT.js @@ -0,0 +1 @@ +import{s as a,c as s,a as e,C as t}from"./chunk-V7JOEXUC-DyjtUXRY.js";import{_ as i}from"./mermaid.core-B_UcP3X_.js";import"./chunk-5VM5RSS4-DxIYPYOn.js";import"./chunk-XXDRQBXY-AHUPVB2f.js";import"./chunk-VR4S4FIN-CYEgbtU1.js";import"./chunk-32BRIVSS-D_mpvupa.js";import"./index-BOtIzGLC.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram}; diff --git a/apps/kimi-code/dist-web/assets/classDiagram-OUVF2IWQ-CqrT8Lg9.js b/apps/kimi-code/dist-web/assets/classDiagram-OUVF2IWQ-CqrT8Lg9.js deleted file mode 100644 index 1e7cd1e48..000000000 --- a/apps/kimi-code/dist-web/assets/classDiagram-OUVF2IWQ-CqrT8Lg9.js +++ /dev/null @@ -1 +0,0 @@ -import{s as a,c as s,a as e,C as t}from"./chunk-V7JOEXUC-DpflSafv.js";import{_ as i}from"./mermaid.core-CgZTgv7Y.js";import"./chunk-5VM5RSS4-D5gZPx0N.js";import"./chunk-XXDRQBXY-BW4XjZut.js";import"./chunk-VR4S4FIN-CHAEh_jD.js";import"./chunk-32BRIVSS-DpG03lEd.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var f={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{f as diagram}; diff --git a/apps/kimi-code/dist-web/assets/classDiagram-v2-EOCWNBFH-Bx-1PFrT.js b/apps/kimi-code/dist-web/assets/classDiagram-v2-EOCWNBFH-Bx-1PFrT.js new file mode 100644 index 000000000..f3ca338ad --- /dev/null +++ b/apps/kimi-code/dist-web/assets/classDiagram-v2-EOCWNBFH-Bx-1PFrT.js @@ -0,0 +1 @@ +import{s as a,c as s,a as e,C as t}from"./chunk-V7JOEXUC-DyjtUXRY.js";import{_ as i}from"./mermaid.core-B_UcP3X_.js";import"./chunk-5VM5RSS4-DxIYPYOn.js";import"./chunk-XXDRQBXY-AHUPVB2f.js";import"./chunk-VR4S4FIN-CYEgbtU1.js";import"./chunk-32BRIVSS-D_mpvupa.js";import"./index-BOtIzGLC.js";var n={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{n as diagram}; diff --git a/apps/kimi-code/dist-web/assets/classDiagram-v2-EOCWNBFH-CqrT8Lg9.js b/apps/kimi-code/dist-web/assets/classDiagram-v2-EOCWNBFH-CqrT8Lg9.js deleted file mode 100644 index 1e7cd1e48..000000000 --- a/apps/kimi-code/dist-web/assets/classDiagram-v2-EOCWNBFH-CqrT8Lg9.js +++ /dev/null @@ -1 +0,0 @@ -import{s as a,c as s,a as e,C as t}from"./chunk-V7JOEXUC-DpflSafv.js";import{_ as i}from"./mermaid.core-CgZTgv7Y.js";import"./chunk-5VM5RSS4-D5gZPx0N.js";import"./chunk-XXDRQBXY-BW4XjZut.js";import"./chunk-VR4S4FIN-CHAEh_jD.js";import"./chunk-32BRIVSS-DpG03lEd.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var f={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{f as diagram}; diff --git a/apps/kimi-code/dist-web/assets/cose-bilkent-JH36ORCC-BdAGtrTa.js b/apps/kimi-code/dist-web/assets/cose-bilkent-JH36ORCC-BdAGtrTa.js deleted file mode 100644 index 415e707e0..000000000 --- a/apps/kimi-code/dist-web/assets/cose-bilkent-JH36ORCC-BdAGtrTa.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as V,l as k,d as lt}from"./mermaid.core-CgZTgv7Y.js";import{c as tt}from"./cytoscape.esm-OyMbaexL.js";import{g as gt}from"./_commonjsHelpers-CqkleIqs.js";import"./index-7SHxad1A.js";var Z={exports:{}},$={exports:{}},Q={exports:{}},ut=Q.exports,j;function ft(){return j||(j=1,(function(G,b){(function(I,L){G.exports=L()})(ut,function(){return(function(N){var I={};function L(o){if(I[o])return I[o].exports;var e=I[o]={i:o,l:!1,exports:{}};return N[o].call(e.exports,e,e.exports,L),e.l=!0,e.exports}return L.m=N,L.c=I,L.i=function(o){return o},L.d=function(o,e,t){L.o(o,e)||Object.defineProperty(o,e,{configurable:!1,enumerable:!0,get:t})},L.n=function(o){var e=o&&o.__esModule?function(){return o.default}:function(){return o};return L.d(e,"a",e),e},L.o=function(o,e){return Object.prototype.hasOwnProperty.call(o,e)},L.p="",L(L.s=26)})([(function(N,I,L){function o(){}o.QUALITY=1,o.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,o.DEFAULT_INCREMENTAL=!1,o.DEFAULT_ANIMATION_ON_LAYOUT=!0,o.DEFAULT_ANIMATION_DURING_LAYOUT=!1,o.DEFAULT_ANIMATION_PERIOD=50,o.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,o.DEFAULT_GRAPH_MARGIN=15,o.NODE_DIMENSIONS_INCLUDE_LABELS=!1,o.SIMPLE_NODE_SIZE=40,o.SIMPLE_NODE_HALF_SIZE=o.SIMPLE_NODE_SIZE/2,o.EMPTY_COMPOUND_NODE_SIZE=40,o.MIN_EDGE_LENGTH=1,o.WORLD_BOUNDARY=1e6,o.INITIAL_WORLD_BOUNDARY=o.WORLD_BOUNDARY/1e3,o.WORLD_CENTER_X=1200,o.WORLD_CENTER_Y=900,N.exports=o}),(function(N,I,L){var o=L(2),e=L(8),t=L(9);function i(g,n,d){o.call(this,d),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=d,this.bendpoints=[],this.source=g,this.target=n}i.prototype=Object.create(o.prototype);for(var l in o)i[l]=o[l];i.prototype.getSource=function(){return this.source},i.prototype.getTarget=function(){return this.target},i.prototype.isInterGraph=function(){return this.isInterGraph},i.prototype.getLength=function(){return this.length},i.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},i.prototype.getBendpoints=function(){return this.bendpoints},i.prototype.getLca=function(){return this.lca},i.prototype.getSourceInLca=function(){return this.sourceInLca},i.prototype.getTargetInLca=function(){return this.targetInLca},i.prototype.getOtherEnd=function(g){if(this.source===g)return this.target;if(this.target===g)return this.source;throw"Node is not incident with this edge"},i.prototype.getOtherEndInGraph=function(g,n){for(var d=this.getOtherEnd(g),r=n.getGraphManager().getRoot();;){if(d.getOwner()==n)return d;if(d.getOwner()==r)break;d=d.getOwner().getParent()}return null},i.prototype.updateLength=function(){var g=new Array(4);this.isOverlapingSourceAndTarget=e.getIntersection(this.target.getRect(),this.source.getRect(),g),this.isOverlapingSourceAndTarget||(this.lengthX=g[0]-g[2],this.lengthY=g[1]-g[3],Math.abs(this.lengthX)<1&&(this.lengthX=t.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=t.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},i.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=t.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=t.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},N.exports=i}),(function(N,I,L){function o(e){this.vGraphObject=e}N.exports=o}),(function(N,I,L){var o=L(2),e=L(10),t=L(13),i=L(0),l=L(16),g=L(4);function n(r,h,a,p){a==null&&p==null&&(p=h),o.call(this,p),r.graphManager!=null&&(r=r.graphManager),this.estimatedSize=e.MIN_VALUE,this.inclusionTreeDepth=e.MAX_VALUE,this.vGraphObject=p,this.edges=[],this.graphManager=r,a!=null&&h!=null?this.rect=new t(h.x,h.y,a.width,a.height):this.rect=new t}n.prototype=Object.create(o.prototype);for(var d in o)n[d]=o[d];n.prototype.getEdges=function(){return this.edges},n.prototype.getChild=function(){return this.child},n.prototype.getOwner=function(){return this.owner},n.prototype.getWidth=function(){return this.rect.width},n.prototype.setWidth=function(r){this.rect.width=r},n.prototype.getHeight=function(){return this.rect.height},n.prototype.setHeight=function(r){this.rect.height=r},n.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},n.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},n.prototype.getCenter=function(){return new g(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},n.prototype.getLocation=function(){return new g(this.rect.x,this.rect.y)},n.prototype.getRect=function(){return this.rect},n.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},n.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},n.prototype.setRect=function(r,h){this.rect.x=r.x,this.rect.y=r.y,this.rect.width=h.width,this.rect.height=h.height},n.prototype.setCenter=function(r,h){this.rect.x=r-this.rect.width/2,this.rect.y=h-this.rect.height/2},n.prototype.setLocation=function(r,h){this.rect.x=r,this.rect.y=h},n.prototype.moveBy=function(r,h){this.rect.x+=r,this.rect.y+=h},n.prototype.getEdgeListToNode=function(r){var h=[],a=this;return a.edges.forEach(function(p){if(p.target==r){if(p.source!=a)throw"Incorrect edge source!";h.push(p)}}),h},n.prototype.getEdgesBetween=function(r){var h=[],a=this;return a.edges.forEach(function(p){if(!(p.source==a||p.target==a))throw"Incorrect edge source and/or target";(p.target==r||p.source==r)&&h.push(p)}),h},n.prototype.getNeighborsList=function(){var r=new Set,h=this;return h.edges.forEach(function(a){if(a.source==h)r.add(a.target);else{if(a.target!=h)throw"Incorrect incidency!";r.add(a.source)}}),r},n.prototype.withChildren=function(){var r=new Set,h,a;if(r.add(this),this.child!=null)for(var p=this.child.getNodes(),v=0;vh&&(this.rect.x-=(this.labelWidth-h)/2,this.setWidth(this.labelWidth)),this.labelHeight>a&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-a)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-a),this.setHeight(this.labelHeight))}}},n.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==e.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},n.prototype.transform=function(r){var h=this.rect.x;h>i.WORLD_BOUNDARY?h=i.WORLD_BOUNDARY:h<-i.WORLD_BOUNDARY&&(h=-i.WORLD_BOUNDARY);var a=this.rect.y;a>i.WORLD_BOUNDARY?a=i.WORLD_BOUNDARY:a<-i.WORLD_BOUNDARY&&(a=-i.WORLD_BOUNDARY);var p=new g(h,a),v=r.inverseTransformPoint(p);this.setLocation(v.x,v.y)},n.prototype.getLeft=function(){return this.rect.x},n.prototype.getRight=function(){return this.rect.x+this.rect.width},n.prototype.getTop=function(){return this.rect.y},n.prototype.getBottom=function(){return this.rect.y+this.rect.height},n.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},N.exports=n}),(function(N,I,L){function o(e,t){e==null&&t==null?(this.x=0,this.y=0):(this.x=e,this.y=t)}o.prototype.getX=function(){return this.x},o.prototype.getY=function(){return this.y},o.prototype.setX=function(e){this.x=e},o.prototype.setY=function(e){this.y=e},o.prototype.getDifference=function(e){return new DimensionD(this.x-e.x,this.y-e.y)},o.prototype.getCopy=function(){return new o(this.x,this.y)},o.prototype.translate=function(e){return this.x+=e.width,this.y+=e.height,this},N.exports=o}),(function(N,I,L){var o=L(2),e=L(10),t=L(0),i=L(6),l=L(3),g=L(1),n=L(13),d=L(12),r=L(11);function h(p,v,D){o.call(this,D),this.estimatedSize=e.MIN_VALUE,this.margin=t.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=p,v!=null&&v instanceof i?this.graphManager=v:v!=null&&v instanceof Layout&&(this.graphManager=v.graphManager)}h.prototype=Object.create(o.prototype);for(var a in o)h[a]=o[a];h.prototype.getNodes=function(){return this.nodes},h.prototype.getEdges=function(){return this.edges},h.prototype.getGraphManager=function(){return this.graphManager},h.prototype.getParent=function(){return this.parent},h.prototype.getLeft=function(){return this.left},h.prototype.getRight=function(){return this.right},h.prototype.getTop=function(){return this.top},h.prototype.getBottom=function(){return this.bottom},h.prototype.isConnected=function(){return this.isConnected},h.prototype.add=function(p,v,D){if(v==null&&D==null){var u=p;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(u)>-1)throw"Node already in graph!";return u.owner=this,this.getNodes().push(u),u}else{var T=p;if(!(this.getNodes().indexOf(v)>-1&&this.getNodes().indexOf(D)>-1))throw"Source or target not in graph!";if(!(v.owner==D.owner&&v.owner==this))throw"Both owners must be this graph!";return v.owner!=D.owner?null:(T.source=v,T.target=D,T.isInterGraph=!1,this.getEdges().push(T),v.edges.push(T),D!=v&&D.edges.push(T),T)}},h.prototype.remove=function(p){var v=p;if(p instanceof l){if(v==null)throw"Node is null!";if(!(v.owner!=null&&v.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var D=v.edges.slice(),u,T=D.length,y=0;y-1&&f>-1))throw"Source and/or target doesn't know this edge!";u.source.edges.splice(s,1),u.target!=u.source&&u.target.edges.splice(f,1);var O=u.source.owner.getEdges().indexOf(u);if(O==-1)throw"Not in owner's edge list!";u.source.owner.getEdges().splice(O,1)}},h.prototype.updateLeftTop=function(){for(var p=e.MAX_VALUE,v=e.MAX_VALUE,D,u,T,y=this.getNodes(),O=y.length,s=0;sD&&(p=D),v>u&&(v=u)}return p==e.MAX_VALUE?null:(y[0].getParent().paddingLeft!=null?T=y[0].getParent().paddingLeft:T=this.margin,this.left=v-T,this.top=p-T,new d(this.left,this.top))},h.prototype.updateBounds=function(p){for(var v=e.MAX_VALUE,D=-e.MAX_VALUE,u=e.MAX_VALUE,T=-e.MAX_VALUE,y,O,s,f,c,E=this.nodes,A=E.length,m=0;my&&(v=y),Ds&&(u=s),Ty&&(v=y),Ds&&(u=s),T=this.nodes.length){var A=0;D.forEach(function(m){m.owner==p&&A++}),A==this.nodes.length&&(this.isConnected=!0)}},N.exports=h}),(function(N,I,L){var o,e=L(1);function t(i){o=L(5),this.layout=i,this.graphs=[],this.edges=[]}t.prototype.addRoot=function(){var i=this.layout.newGraph(),l=this.layout.newNode(null),g=this.add(i,l);return this.setRootGraph(g),this.rootGraph},t.prototype.add=function(i,l,g,n,d){if(g==null&&n==null&&d==null){if(i==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(i)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(i),i.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return i.parent=l,l.child=i,i}else{d=g,n=l,g=i;var r=n.getOwner(),h=d.getOwner();if(!(r!=null&&r.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(h!=null&&h.getGraphManager()==this))throw"Target not in this graph mgr!";if(r==h)return g.isInterGraph=!1,r.add(g,n,d);if(g.isInterGraph=!0,g.source=n,g.target=d,this.edges.indexOf(g)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(g),!(g.source!=null&&g.target!=null))throw"Edge source and/or target is null!";if(!(g.source.edges.indexOf(g)==-1&&g.target.edges.indexOf(g)==-1))throw"Edge already in source and/or target incidency list!";return g.source.edges.push(g),g.target.edges.push(g),g}},t.prototype.remove=function(i){if(i instanceof o){var l=i;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 g=[];g=g.concat(l.getEdges());for(var n,d=g.length,r=0;r=i.getRight()?l[0]+=Math.min(i.getX()-t.getX(),t.getRight()-i.getRight()):i.getX()<=t.getX()&&i.getRight()>=t.getRight()&&(l[0]+=Math.min(t.getX()-i.getX(),i.getRight()-t.getRight())),t.getY()<=i.getY()&&t.getBottom()>=i.getBottom()?l[1]+=Math.min(i.getY()-t.getY(),t.getBottom()-i.getBottom()):i.getY()<=t.getY()&&i.getBottom()>=t.getBottom()&&(l[1]+=Math.min(t.getY()-i.getY(),i.getBottom()-t.getBottom()));var d=Math.abs((i.getCenterY()-t.getCenterY())/(i.getCenterX()-t.getCenterX()));i.getCenterY()===t.getCenterY()&&i.getCenterX()===t.getCenterX()&&(d=1);var r=d*l[0],h=l[1]/d;l[0]r)return l[0]=g,l[1]=a,l[2]=d,l[3]=E,!1;if(nd)return l[0]=h,l[1]=n,l[2]=f,l[3]=r,!1;if(gd?(l[0]=v,l[1]=D,R=!0):(l[0]=p,l[1]=a,R=!0):S===w&&(g>d?(l[0]=h,l[1]=a,R=!0):(l[0]=u,l[1]=D,R=!0)),-Y===w?d>g?(l[2]=c,l[3]=E,M=!0):(l[2]=f,l[3]=s,M=!0):Y===w&&(d>g?(l[2]=O,l[3]=s,M=!0):(l[2]=A,l[3]=E,M=!0)),R&&M)return!1;if(g>d?n>r?(x=this.getCardinalDirection(S,w,4),F=this.getCardinalDirection(Y,w,2)):(x=this.getCardinalDirection(-S,w,3),F=this.getCardinalDirection(-Y,w,1)):n>r?(x=this.getCardinalDirection(-S,w,1),F=this.getCardinalDirection(-Y,w,3)):(x=this.getCardinalDirection(S,w,2),F=this.getCardinalDirection(Y,w,4)),!R)switch(x){case 1:P=a,U=g+-y/w,l[0]=U,l[1]=P;break;case 2:U=u,P=n+T*w,l[0]=U,l[1]=P;break;case 3:P=D,U=g+y/w,l[0]=U,l[1]=P;break;case 4:U=v,P=n+-T*w,l[0]=U,l[1]=P;break}if(!M)switch(F){case 1:X=s,_=d+-C/w,l[2]=_,l[3]=X;break;case 2:_=A,X=r+m*w,l[2]=_,l[3]=X;break;case 3:X=E,_=d+C/w,l[2]=_,l[3]=X;break;case 4:_=c,X=r+-m*w,l[2]=_,l[3]=X;break}}return!1},e.getCardinalDirection=function(t,i,l){return t>i?l:1+l%4},e.getIntersection=function(t,i,l,g){if(g==null)return this.getIntersection2(t,i,l);var n=t.x,d=t.y,r=i.x,h=i.y,a=l.x,p=l.y,v=g.x,D=g.y,u=void 0,T=void 0,y=void 0,O=void 0,s=void 0,f=void 0,c=void 0,E=void 0,A=void 0;return y=h-d,s=n-r,c=r*d-n*h,O=D-p,f=a-v,E=v*p-a*D,A=y*f-O*s,A===0?null:(u=(s*E-f*c)/A,T=(O*c-y*E)/A,new o(u,T))},e.angleOfVector=function(t,i,l,g){var n=void 0;return t!==l?(n=Math.atan((g-i)/(l-t)),l0?1:e<0?-1:0},o.floor=function(e){return e<0?Math.ceil(e):Math.floor(e)},o.ceil=function(e){return e<0?Math.floor(e):Math.ceil(e)},N.exports=o}),(function(N,I,L){function o(){}o.MAX_VALUE=2147483647,o.MIN_VALUE=-2147483648,N.exports=o}),(function(N,I,L){var o=(function(){function n(d,r){for(var h=0;h"u"?"undefined":o(t);return t==null||i!="object"&&i!="function"},N.exports=e}),(function(N,I,L){function o(a){if(Array.isArray(a)){for(var p=0,v=Array(a.length);p0&&p;){for(y.push(s[0]);y.length>0&&p;){var f=y[0];y.splice(0,1),T.add(f);for(var c=f.getEdges(),u=0;u-1&&s.splice(C,1)}T=new Set,O=new Map}}return a},h.prototype.createDummyNodesForBendpoints=function(a){for(var p=[],v=a.source,D=this.graphManager.calcLowestCommonAncestor(a.source,a.target),u=0;u0){for(var D=this.edgeToDummyNodes.get(v),u=0;u=0&&p.splice(E,1);var A=O.getNeighborsList();A.forEach(function(R){if(v.indexOf(R)<0){var M=D.get(R),S=M-1;S==1&&f.push(R),D.set(R,S)}})}v=v.concat(f),(p.length==1||p.length==2)&&(u=!0,T=p[0])}return T},h.prototype.setGraphManager=function(a){this.graphManager=a},N.exports=h}),(function(N,I,L){function o(){}o.seed=1,o.x=0,o.nextDouble=function(){return o.x=Math.sin(o.seed++)*1e4,o.x-Math.floor(o.x)},N.exports=o}),(function(N,I,L){var o=L(4);function e(t,i){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}e.prototype.getWorldOrgX=function(){return this.lworldOrgX},e.prototype.setWorldOrgX=function(t){this.lworldOrgX=t},e.prototype.getWorldOrgY=function(){return this.lworldOrgY},e.prototype.setWorldOrgY=function(t){this.lworldOrgY=t},e.prototype.getWorldExtX=function(){return this.lworldExtX},e.prototype.setWorldExtX=function(t){this.lworldExtX=t},e.prototype.getWorldExtY=function(){return this.lworldExtY},e.prototype.setWorldExtY=function(t){this.lworldExtY=t},e.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},e.prototype.setDeviceOrgX=function(t){this.ldeviceOrgX=t},e.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},e.prototype.setDeviceOrgY=function(t){this.ldeviceOrgY=t},e.prototype.getDeviceExtX=function(){return this.ldeviceExtX},e.prototype.setDeviceExtX=function(t){this.ldeviceExtX=t},e.prototype.getDeviceExtY=function(){return this.ldeviceExtY},e.prototype.setDeviceExtY=function(t){this.ldeviceExtY=t},e.prototype.transformX=function(t){var i=0,l=this.lworldExtX;return l!=0&&(i=this.ldeviceOrgX+(t-this.lworldOrgX)*this.ldeviceExtX/l),i},e.prototype.transformY=function(t){var i=0,l=this.lworldExtY;return l!=0&&(i=this.ldeviceOrgY+(t-this.lworldOrgY)*this.ldeviceExtY/l),i},e.prototype.inverseTransformX=function(t){var i=0,l=this.ldeviceExtX;return l!=0&&(i=this.lworldOrgX+(t-this.ldeviceOrgX)*this.lworldExtX/l),i},e.prototype.inverseTransformY=function(t){var i=0,l=this.ldeviceExtY;return l!=0&&(i=this.lworldOrgY+(t-this.ldeviceOrgY)*this.lworldExtY/l),i},e.prototype.inverseTransformPoint=function(t){var i=new o(this.inverseTransformX(t.x),this.inverseTransformY(t.y));return i},N.exports=e}),(function(N,I,L){function o(r){if(Array.isArray(r)){for(var h=0,a=Array(r.length);ht.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*t.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(r-t.ADAPTATION_LOWER_NODE_LIMIT)/(t.ADAPTATION_UPPER_NODE_LIMIT-t.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-t.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=t.MAX_NODE_DISPLACEMENT_INCREMENTAL):(r>t.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(t.COOLING_ADAPTATION_FACTOR,1-(r-t.ADAPTATION_LOWER_NODE_LIMIT)/(t.ADAPTATION_UPPER_NODE_LIMIT-t.ADAPTATION_LOWER_NODE_LIMIT)*(1-t.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=t.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},n.prototype.calcSpringForces=function(){for(var r=this.getAllEdges(),h,a=0;a0&&arguments[0]!==void 0?arguments[0]:!0,h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,a,p,v,D,u=this.getAllNodes(),T;if(this.useFRGridVariant)for(this.totalIterations%t.GRID_CALCULATION_CHECK_PERIOD==1&&r&&this.updateGrid(),T=new Set,a=0;ay||T>y)&&(r.gravitationForceX=-this.gravityConstant*v,r.gravitationForceY=-this.gravityConstant*D)):(y=h.getEstimatedSize()*this.compoundGravityRangeFactor,(u>y||T>y)&&(r.gravitationForceX=-this.gravityConstant*v*this.compoundGravityConstant,r.gravitationForceY=-this.gravityConstant*D*this.compoundGravityConstant))},n.prototype.isConverged=function(){var r,h=!1;return this.totalIterations>this.maxIterations/3&&(h=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),r=this.totalDisplacement=u.length||y>=u[0].length)){for(var O=0;On}}]),l})();N.exports=i}),(function(N,I,L){var o=(function(){function i(l,g){for(var n=0;n2&&arguments[2]!==void 0?arguments[2]:1,d=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;e(this,i),this.sequence1=l,this.sequence2=g,this.match_score=n,this.mismatch_penalty=d,this.gap_penalty=r,this.iMax=l.length+1,this.jMax=g.length+1,this.grid=new Array(this.iMax);for(var h=0;h=0;l--){var g=this.listeners[l];g.event===t&&g.callback===i&&this.listeners.splice(l,1)}},e.emit=function(t,i){for(var l=0;lg.coolingFactor*g.maxNodeDisplacement&&(this.displacementX=g.coolingFactor*g.maxNodeDisplacement*t.sign(this.displacementX)),Math.abs(this.displacementY)>g.coolingFactor*g.maxNodeDisplacement&&(this.displacementY=g.coolingFactor*g.maxNodeDisplacement*t.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),g.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},i.prototype.propogateDisplacementToChildren=function(g,n){for(var d=this.getChild().getNodes(),r,h=0;h0)this.positionNodesRadially(s);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var f=new Set(this.getAllNodes()),c=this.nodesWithGravity.filter(function(E){return f.has(E)});this.graphManager.setAllNodesToApplyGravitation(c),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},y.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 s=new Set(this.getAllNodes()),f=this.nodesWithGravity.filter(function(A){return s.has(A)});this.graphManager.setAllNodesToApplyGravitation(f),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 c=!this.isTreeGrowing&&!this.isGrowthFinished,E=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(c,E),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},y.prototype.getPositionsData=function(){for(var s=this.graphManager.getAllNodes(),f={},c=0;c1){var R;for(R=0;RE&&(E=Math.floor(C.y)),m=Math.floor(C.x+n.DEFAULT_COMPONENT_SEPERATION)}this.transform(new a(r.WORLD_CENTER_X-C.x/2,r.WORLD_CENTER_Y-C.y/2))},y.radialLayout=function(s,f,c){var E=Math.max(this.maxDiagonalInTree(s),n.DEFAULT_RADIAL_SEPARATION);y.branchRadialLayout(f,null,0,359,0,E);var A=u.calculateBounds(s),m=new T;m.setDeviceOrgX(A.getMinX()),m.setDeviceOrgY(A.getMinY()),m.setWorldOrgX(c.x),m.setWorldOrgY(c.y);for(var C=0;C1;){var X=_[0];_.splice(0,1);var H=w.indexOf(X);H>=0&&w.splice(H,1),U--,x--}f!=null?P=(w.indexOf(_[0])+1)%U:P=0;for(var W=Math.abs(E-c)/x,B=P;F!=x;B=++B%U){var K=w[B].getOtherEnd(s);if(K!=f){var q=(c+F*W)%360,ht=(q+W)%360;y.branchRadialLayout(K,s,q,ht,A+m,m),F++}}},y.maxDiagonalInTree=function(s){for(var f=v.MIN_VALUE,c=0;cf&&(f=A)}return f},y.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},y.prototype.groupZeroDegreeMembers=function(){var s=this,f={};this.memberGroups={},this.idToDummyNode={};for(var c=[],E=this.graphManager.getAllNodes(),A=0;A"u"&&(f[R]=[]),f[R]=f[R].concat(m)}Object.keys(f).forEach(function(M){if(f[M].length>1){var S="DummyCompound_"+M;s.memberGroups[S]=f[M];var Y=f[M][0].getParent(),w=new l(s.graphManager);w.id=S,w.paddingLeft=Y.paddingLeft||0,w.paddingRight=Y.paddingRight||0,w.paddingBottom=Y.paddingBottom||0,w.paddingTop=Y.paddingTop||0,s.idToDummyNode[S]=w;var x=s.getGraphManager().add(s.newGraph(),w),F=Y.getChild();F.add(w);for(var U=0;U=0;s--){var f=this.compoundOrder[s],c=f.id,E=f.paddingLeft,A=f.paddingTop;this.adjustLocations(this.tiledMemberPack[c],f.rect.x,f.rect.y,E,A)}},y.prototype.repopulateZeroDegreeMembers=function(){var s=this,f=this.tiledZeroDegreePack;Object.keys(f).forEach(function(c){var E=s.idToDummyNode[c],A=E.paddingLeft,m=E.paddingTop;s.adjustLocations(f[c],E.rect.x,E.rect.y,A,m)})},y.prototype.getToBeTiled=function(s){var f=s.id;if(this.toBeTiled[f]!=null)return this.toBeTiled[f];var c=s.getChild();if(c==null)return this.toBeTiled[f]=!1,!1;for(var E=c.getNodes(),A=0;A0)return this.toBeTiled[f]=!1,!1;if(m.getChild()==null){this.toBeTiled[m.id]=!1;continue}if(!this.getToBeTiled(m))return this.toBeTiled[f]=!1,!1}return this.toBeTiled[f]=!0,!0},y.prototype.getNodeDegree=function(s){s.id;for(var f=s.getEdges(),c=0,E=0;EM&&(M=Y.rect.height)}c+=M+s.verticalPadding}},y.prototype.tileCompoundMembers=function(s,f){var c=this;this.tiledMemberPack=[],Object.keys(s).forEach(function(E){var A=f[E];c.tiledMemberPack[E]=c.tileNodes(s[E],A.paddingLeft+A.paddingRight),A.rect.width=c.tiledMemberPack[E].width,A.rect.height=c.tiledMemberPack[E].height})},y.prototype.tileNodes=function(s,f){var c=n.TILING_PADDING_VERTICAL,E=n.TILING_PADDING_HORIZONTAL,A={rows:[],rowWidth:[],rowHeight:[],width:0,height:f,verticalPadding:c,horizontalPadding:E};s.sort(function(R,M){return R.rect.width*R.rect.height>M.rect.width*M.rect.height?-1:R.rect.width*R.rect.height0&&(C+=s.horizontalPadding),s.rowWidth[c]=C,s.width0&&(R+=s.verticalPadding);var M=0;R>s.rowHeight[c]&&(M=s.rowHeight[c],s.rowHeight[c]=R,M=s.rowHeight[c]-M),s.height+=M,s.rows[c].push(f)},y.prototype.getShortestRowIndex=function(s){for(var f=-1,c=Number.MAX_VALUE,E=0;Ec&&(f=E,c=s.rowWidth[E]);return f},y.prototype.canAddHorizontal=function(s,f,c){var E=this.getShortestRowIndex(s);if(E<0)return!0;var A=s.rowWidth[E];if(A+s.horizontalPadding+f<=s.width)return!0;var m=0;s.rowHeight[E]0&&(m=c+s.verticalPadding-s.rowHeight[E]);var C;s.width-A>=f+s.horizontalPadding?C=(s.height+m)/(A+f+s.horizontalPadding):C=(s.height+m)/s.width,m=c+s.verticalPadding;var R;return s.widthm&&f!=c){E.splice(-1,1),s.rows[c].push(A),s.rowWidth[f]=s.rowWidth[f]-m,s.rowWidth[c]=s.rowWidth[c]+m,s.width=s.rowWidth[instance.getLongestRowIndex(s)];for(var C=Number.MIN_VALUE,R=0;RC&&(C=E[R].height);f>0&&(C+=s.verticalPadding);var M=s.rowHeight[f]+s.rowHeight[c];s.rowHeight[f]=C,s.rowHeight[c]0)for(var F=A;F<=m;F++)x[0]+=this.grid[F][C-1].length+this.grid[F][C].length-1;if(m0)for(var F=C;F<=R;F++)x[3]+=this.grid[A-1][F].length+this.grid[A][F].length-1;for(var U=v.MAX_VALUE,P,_,X=0;X0){var R;R=T.getGraphManager().add(T.newGraph(),c),this.processChildrenList(R,f,T)}}},a.prototype.stop=function(){return this.stopped=!0,this};var v=function(u){u("layout","cose-bilkent",a)};typeof cytoscape<"u"&&v(cytoscape),I.exports=v})])})})(Z)),Z.exports}var yt=vt();const Et=gt(yt);tt.use(Et);function et(G,b){G.forEach(N=>{const I={id:N.id,labelText:N.label,height:N.height,width:N.width,padding:N.padding??0};Object.keys(N).forEach(L=>{["id","label","height","width","padding","x","y"].includes(L)||(I[L]=N[L])}),b.add({group:"nodes",data:I,position:{x:N.x??0,y:N.y??0}})})}V(et,"addNodes");function rt(G,b){G.forEach(N=>{const I={id:N.id,source:N.start,target:N.end};Object.keys(N).forEach(L=>{["id","start","end"].includes(L)||(I[L]=N[L])}),b.add({group:"edges",data:I})})}V(rt,"addEdges");function it(G){return new Promise(b=>{const N=lt("body").append("div").attr("id","cy").attr("style","display:none"),I=tt({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});N.remove(),et(G.nodes,I),rt(G.edges,I),I.nodes().forEach(function(o){o.layoutDimensions=()=>{const e=o.data();return{w:e.width,h:e.height}}});const L={name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1};I.layout(L).run(),I.ready(o=>{k.info("Cytoscape ready",o),b(I)})})}V(it,"createCytoscapeInstance");function nt(G){return G.nodes().map(b=>{const N=b.data(),I=b.position(),L={id:N.id,x:I.x,y:I.y};return Object.keys(N).forEach(o=>{o!=="id"&&(L[o]=N[o])}),L})}V(nt,"extractPositionedNodes");function ot(G){return G.edges().map(b=>{const N=b.data(),I=b._private.rscratch,L={id:N.id,source:N.source,target:N.target,startX:I.startX,startY:I.startY,midX:I.midX,midY:I.midY,endX:I.endX,endY:I.endY};return Object.keys(N).forEach(o=>{["id","source","target"].includes(o)||(L[o]=N[o])}),L})}V(ot,"extractPositionedEdges");async function st(G,b){k.debug("Starting cose-bilkent layout algorithm");try{at(G);const N=await it(G),I=nt(N),L=ot(N);return k.debug(`Layout completed: ${I.length} nodes, ${L.length} edges`),{nodes:I,edges:L}}catch(N){throw k.error("Error in cose-bilkent layout algorithm:",N),N}}V(st,"executeCoseBilkentLayout");function at(G){if(!G)throw new Error("Layout data is required");if(!G.config)throw new Error("Configuration is required in layout data");if(!G.rootNode)throw new Error("Root node is required");if(!G.nodes||!Array.isArray(G.nodes))throw new Error("No nodes found in layout data");if(!Array.isArray(G.edges))throw new Error("Edges array is required in layout data");return!0}V(at,"validateLayoutData");var Lt=V(async(G,b,{insertCluster:N,insertEdge:I,insertEdgeLabel:L,insertMarkers:o,insertNode:e,log:t,positionEdgeLabel:i},{algorithm:l})=>{const g={},n={},d=b.select("g");o(d,G.markers,G.type,G.diagramId);const r=d.insert("g").attr("class","subgraphs"),h=d.insert("g").attr("class","edgePaths"),a=d.insert("g").attr("class","edgeLabels"),p=d.insert("g").attr("class","nodes");t.debug("Inserting nodes into DOM for dimension calculation"),await Promise.all(G.nodes.map(async u=>{if(u.isGroup){const T={...u};n[u.id]=T,g[u.id]=T,await N(r,u)}else{const T={...u};g[u.id]=T;const y=await e(p,u,{config:G.config,dir:G.direction||"TB"}),O=y.node().getBBox();T.width=O.width,T.height=O.height,T.domId=y,t.debug(`Node ${u.id} dimensions: ${O.width}x${O.height}`)}})),t.debug("Running cose-bilkent layout algorithm");const v={...G,nodes:G.nodes.map(u=>{const T=g[u.id];return{...u,width:T.width,height:T.height}})},D=await st(v,G.config);t.debug("Positioning nodes based on layout results"),D.nodes.forEach(u=>{const T=g[u.id];T?.domId&&(T.domId.attr("transform",`translate(${u.x}, ${u.y})`),T.x=u.x,T.y=u.y,t.debug(`Positioned node ${T.id} at center (${u.x}, ${u.y})`))}),D.edges.forEach(u=>{const T=G.edges.find(y=>y.id===u.id);T&&(T.points=[{x:u.startX,y:u.startY},{x:u.midX,y:u.midY},{x:u.endX,y:u.endY}])}),t.debug("Inserting and positioning edges"),await Promise.all(G.edges.map(async u=>{await L(a,u);const T=g[u.start??""],y=g[u.end??""];if(T&&y){const O=D.edges.find(s=>s.id===u.id);if(O){t.debug("APA01 positionedEdge",O);const s={...u},f=I(h,s,n,G.type,T,y,G.diagramId);i(s,f)}else{const s={...u,points:[{x:T.x||0,y:T.y||0},{x:y.x||0,y:y.y||0}]},f=I(h,s,n,G.type,T,y,G.diagramId);i(s,f)}}})),t.debug("Cose-bilkent rendering completed")},"render"),Ot=Lt;export{Ot as render}; diff --git a/apps/kimi-code/dist-web/assets/cose-bilkent-JH36ORCC-D0OqAsiW.js b/apps/kimi-code/dist-web/assets/cose-bilkent-JH36ORCC-D0OqAsiW.js new file mode 100644 index 000000000..2148f6dbf --- /dev/null +++ b/apps/kimi-code/dist-web/assets/cose-bilkent-JH36ORCC-D0OqAsiW.js @@ -0,0 +1 @@ +import{b7 as lt,_ as V,l as k,d as gt}from"./mermaid.core-B_UcP3X_.js";import{c as tt}from"./cytoscape.esm-OyMbaexL.js";import"./index-BOtIzGLC.js";var Z={exports:{}},$={exports:{}},Q={exports:{}},ut=Q.exports,j;function ft(){return j||(j=1,(function(G,b){(function(I,L){G.exports=L()})(ut,function(){return(function(N){var I={};function L(o){if(I[o])return I[o].exports;var e=I[o]={i:o,l:!1,exports:{}};return N[o].call(e.exports,e,e.exports,L),e.l=!0,e.exports}return L.m=N,L.c=I,L.i=function(o){return o},L.d=function(o,e,t){L.o(o,e)||Object.defineProperty(o,e,{configurable:!1,enumerable:!0,get:t})},L.n=function(o){var e=o&&o.__esModule?function(){return o.default}:function(){return o};return L.d(e,"a",e),e},L.o=function(o,e){return Object.prototype.hasOwnProperty.call(o,e)},L.p="",L(L.s=26)})([(function(N,I,L){function o(){}o.QUALITY=1,o.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,o.DEFAULT_INCREMENTAL=!1,o.DEFAULT_ANIMATION_ON_LAYOUT=!0,o.DEFAULT_ANIMATION_DURING_LAYOUT=!1,o.DEFAULT_ANIMATION_PERIOD=50,o.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,o.DEFAULT_GRAPH_MARGIN=15,o.NODE_DIMENSIONS_INCLUDE_LABELS=!1,o.SIMPLE_NODE_SIZE=40,o.SIMPLE_NODE_HALF_SIZE=o.SIMPLE_NODE_SIZE/2,o.EMPTY_COMPOUND_NODE_SIZE=40,o.MIN_EDGE_LENGTH=1,o.WORLD_BOUNDARY=1e6,o.INITIAL_WORLD_BOUNDARY=o.WORLD_BOUNDARY/1e3,o.WORLD_CENTER_X=1200,o.WORLD_CENTER_Y=900,N.exports=o}),(function(N,I,L){var o=L(2),e=L(8),t=L(9);function i(g,n,d){o.call(this,d),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=d,this.bendpoints=[],this.source=g,this.target=n}i.prototype=Object.create(o.prototype);for(var l in o)i[l]=o[l];i.prototype.getSource=function(){return this.source},i.prototype.getTarget=function(){return this.target},i.prototype.isInterGraph=function(){return this.isInterGraph},i.prototype.getLength=function(){return this.length},i.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},i.prototype.getBendpoints=function(){return this.bendpoints},i.prototype.getLca=function(){return this.lca},i.prototype.getSourceInLca=function(){return this.sourceInLca},i.prototype.getTargetInLca=function(){return this.targetInLca},i.prototype.getOtherEnd=function(g){if(this.source===g)return this.target;if(this.target===g)return this.source;throw"Node is not incident with this edge"},i.prototype.getOtherEndInGraph=function(g,n){for(var d=this.getOtherEnd(g),r=n.getGraphManager().getRoot();;){if(d.getOwner()==n)return d;if(d.getOwner()==r)break;d=d.getOwner().getParent()}return null},i.prototype.updateLength=function(){var g=new Array(4);this.isOverlapingSourceAndTarget=e.getIntersection(this.target.getRect(),this.source.getRect(),g),this.isOverlapingSourceAndTarget||(this.lengthX=g[0]-g[2],this.lengthY=g[1]-g[3],Math.abs(this.lengthX)<1&&(this.lengthX=t.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=t.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},i.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=t.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=t.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},N.exports=i}),(function(N,I,L){function o(e){this.vGraphObject=e}N.exports=o}),(function(N,I,L){var o=L(2),e=L(10),t=L(13),i=L(0),l=L(16),g=L(4);function n(r,h,a,p){a==null&&p==null&&(p=h),o.call(this,p),r.graphManager!=null&&(r=r.graphManager),this.estimatedSize=e.MIN_VALUE,this.inclusionTreeDepth=e.MAX_VALUE,this.vGraphObject=p,this.edges=[],this.graphManager=r,a!=null&&h!=null?this.rect=new t(h.x,h.y,a.width,a.height):this.rect=new t}n.prototype=Object.create(o.prototype);for(var d in o)n[d]=o[d];n.prototype.getEdges=function(){return this.edges},n.prototype.getChild=function(){return this.child},n.prototype.getOwner=function(){return this.owner},n.prototype.getWidth=function(){return this.rect.width},n.prototype.setWidth=function(r){this.rect.width=r},n.prototype.getHeight=function(){return this.rect.height},n.prototype.setHeight=function(r){this.rect.height=r},n.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},n.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},n.prototype.getCenter=function(){return new g(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},n.prototype.getLocation=function(){return new g(this.rect.x,this.rect.y)},n.prototype.getRect=function(){return this.rect},n.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},n.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},n.prototype.setRect=function(r,h){this.rect.x=r.x,this.rect.y=r.y,this.rect.width=h.width,this.rect.height=h.height},n.prototype.setCenter=function(r,h){this.rect.x=r-this.rect.width/2,this.rect.y=h-this.rect.height/2},n.prototype.setLocation=function(r,h){this.rect.x=r,this.rect.y=h},n.prototype.moveBy=function(r,h){this.rect.x+=r,this.rect.y+=h},n.prototype.getEdgeListToNode=function(r){var h=[],a=this;return a.edges.forEach(function(p){if(p.target==r){if(p.source!=a)throw"Incorrect edge source!";h.push(p)}}),h},n.prototype.getEdgesBetween=function(r){var h=[],a=this;return a.edges.forEach(function(p){if(!(p.source==a||p.target==a))throw"Incorrect edge source and/or target";(p.target==r||p.source==r)&&h.push(p)}),h},n.prototype.getNeighborsList=function(){var r=new Set,h=this;return h.edges.forEach(function(a){if(a.source==h)r.add(a.target);else{if(a.target!=h)throw"Incorrect incidency!";r.add(a.source)}}),r},n.prototype.withChildren=function(){var r=new Set,h,a;if(r.add(this),this.child!=null)for(var p=this.child.getNodes(),v=0;vh&&(this.rect.x-=(this.labelWidth-h)/2,this.setWidth(this.labelWidth)),this.labelHeight>a&&(this.labelPos=="center"?this.rect.y-=(this.labelHeight-a)/2:this.labelPos=="top"&&(this.rect.y-=this.labelHeight-a),this.setHeight(this.labelHeight))}}},n.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==e.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},n.prototype.transform=function(r){var h=this.rect.x;h>i.WORLD_BOUNDARY?h=i.WORLD_BOUNDARY:h<-i.WORLD_BOUNDARY&&(h=-i.WORLD_BOUNDARY);var a=this.rect.y;a>i.WORLD_BOUNDARY?a=i.WORLD_BOUNDARY:a<-i.WORLD_BOUNDARY&&(a=-i.WORLD_BOUNDARY);var p=new g(h,a),v=r.inverseTransformPoint(p);this.setLocation(v.x,v.y)},n.prototype.getLeft=function(){return this.rect.x},n.prototype.getRight=function(){return this.rect.x+this.rect.width},n.prototype.getTop=function(){return this.rect.y},n.prototype.getBottom=function(){return this.rect.y+this.rect.height},n.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},N.exports=n}),(function(N,I,L){function o(e,t){e==null&&t==null?(this.x=0,this.y=0):(this.x=e,this.y=t)}o.prototype.getX=function(){return this.x},o.prototype.getY=function(){return this.y},o.prototype.setX=function(e){this.x=e},o.prototype.setY=function(e){this.y=e},o.prototype.getDifference=function(e){return new DimensionD(this.x-e.x,this.y-e.y)},o.prototype.getCopy=function(){return new o(this.x,this.y)},o.prototype.translate=function(e){return this.x+=e.width,this.y+=e.height,this},N.exports=o}),(function(N,I,L){var o=L(2),e=L(10),t=L(0),i=L(6),l=L(3),g=L(1),n=L(13),d=L(12),r=L(11);function h(p,v,D){o.call(this,D),this.estimatedSize=e.MIN_VALUE,this.margin=t.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=p,v!=null&&v instanceof i?this.graphManager=v:v!=null&&v instanceof Layout&&(this.graphManager=v.graphManager)}h.prototype=Object.create(o.prototype);for(var a in o)h[a]=o[a];h.prototype.getNodes=function(){return this.nodes},h.prototype.getEdges=function(){return this.edges},h.prototype.getGraphManager=function(){return this.graphManager},h.prototype.getParent=function(){return this.parent},h.prototype.getLeft=function(){return this.left},h.prototype.getRight=function(){return this.right},h.prototype.getTop=function(){return this.top},h.prototype.getBottom=function(){return this.bottom},h.prototype.isConnected=function(){return this.isConnected},h.prototype.add=function(p,v,D){if(v==null&&D==null){var u=p;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(u)>-1)throw"Node already in graph!";return u.owner=this,this.getNodes().push(u),u}else{var T=p;if(!(this.getNodes().indexOf(v)>-1&&this.getNodes().indexOf(D)>-1))throw"Source or target not in graph!";if(!(v.owner==D.owner&&v.owner==this))throw"Both owners must be this graph!";return v.owner!=D.owner?null:(T.source=v,T.target=D,T.isInterGraph=!1,this.getEdges().push(T),v.edges.push(T),D!=v&&D.edges.push(T),T)}},h.prototype.remove=function(p){var v=p;if(p instanceof l){if(v==null)throw"Node is null!";if(!(v.owner!=null&&v.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var D=v.edges.slice(),u,T=D.length,y=0;y-1&&f>-1))throw"Source and/or target doesn't know this edge!";u.source.edges.splice(s,1),u.target!=u.source&&u.target.edges.splice(f,1);var O=u.source.owner.getEdges().indexOf(u);if(O==-1)throw"Not in owner's edge list!";u.source.owner.getEdges().splice(O,1)}},h.prototype.updateLeftTop=function(){for(var p=e.MAX_VALUE,v=e.MAX_VALUE,D,u,T,y=this.getNodes(),O=y.length,s=0;sD&&(p=D),v>u&&(v=u)}return p==e.MAX_VALUE?null:(y[0].getParent().paddingLeft!=null?T=y[0].getParent().paddingLeft:T=this.margin,this.left=v-T,this.top=p-T,new d(this.left,this.top))},h.prototype.updateBounds=function(p){for(var v=e.MAX_VALUE,D=-e.MAX_VALUE,u=e.MAX_VALUE,T=-e.MAX_VALUE,y,O,s,f,c,E=this.nodes,A=E.length,m=0;my&&(v=y),Ds&&(u=s),Ty&&(v=y),Ds&&(u=s),T=this.nodes.length){var A=0;D.forEach(function(m){m.owner==p&&A++}),A==this.nodes.length&&(this.isConnected=!0)}},N.exports=h}),(function(N,I,L){var o,e=L(1);function t(i){o=L(5),this.layout=i,this.graphs=[],this.edges=[]}t.prototype.addRoot=function(){var i=this.layout.newGraph(),l=this.layout.newNode(null),g=this.add(i,l);return this.setRootGraph(g),this.rootGraph},t.prototype.add=function(i,l,g,n,d){if(g==null&&n==null&&d==null){if(i==null)throw"Graph is null!";if(l==null)throw"Parent node is null!";if(this.graphs.indexOf(i)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(i),i.parent!=null)throw"Already has a parent!";if(l.child!=null)throw"Already has a child!";return i.parent=l,l.child=i,i}else{d=g,n=l,g=i;var r=n.getOwner(),h=d.getOwner();if(!(r!=null&&r.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(h!=null&&h.getGraphManager()==this))throw"Target not in this graph mgr!";if(r==h)return g.isInterGraph=!1,r.add(g,n,d);if(g.isInterGraph=!0,g.source=n,g.target=d,this.edges.indexOf(g)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(g),!(g.source!=null&&g.target!=null))throw"Edge source and/or target is null!";if(!(g.source.edges.indexOf(g)==-1&&g.target.edges.indexOf(g)==-1))throw"Edge already in source and/or target incidency list!";return g.source.edges.push(g),g.target.edges.push(g),g}},t.prototype.remove=function(i){if(i instanceof o){var l=i;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 g=[];g=g.concat(l.getEdges());for(var n,d=g.length,r=0;r=i.getRight()?l[0]+=Math.min(i.getX()-t.getX(),t.getRight()-i.getRight()):i.getX()<=t.getX()&&i.getRight()>=t.getRight()&&(l[0]+=Math.min(t.getX()-i.getX(),i.getRight()-t.getRight())),t.getY()<=i.getY()&&t.getBottom()>=i.getBottom()?l[1]+=Math.min(i.getY()-t.getY(),t.getBottom()-i.getBottom()):i.getY()<=t.getY()&&i.getBottom()>=t.getBottom()&&(l[1]+=Math.min(t.getY()-i.getY(),i.getBottom()-t.getBottom()));var d=Math.abs((i.getCenterY()-t.getCenterY())/(i.getCenterX()-t.getCenterX()));i.getCenterY()===t.getCenterY()&&i.getCenterX()===t.getCenterX()&&(d=1);var r=d*l[0],h=l[1]/d;l[0]r)return l[0]=g,l[1]=a,l[2]=d,l[3]=E,!1;if(nd)return l[0]=h,l[1]=n,l[2]=f,l[3]=r,!1;if(gd?(l[0]=v,l[1]=D,R=!0):(l[0]=p,l[1]=a,R=!0):S===w&&(g>d?(l[0]=h,l[1]=a,R=!0):(l[0]=u,l[1]=D,R=!0)),-Y===w?d>g?(l[2]=c,l[3]=E,M=!0):(l[2]=f,l[3]=s,M=!0):Y===w&&(d>g?(l[2]=O,l[3]=s,M=!0):(l[2]=A,l[3]=E,M=!0)),R&&M)return!1;if(g>d?n>r?(x=this.getCardinalDirection(S,w,4),F=this.getCardinalDirection(Y,w,2)):(x=this.getCardinalDirection(-S,w,3),F=this.getCardinalDirection(-Y,w,1)):n>r?(x=this.getCardinalDirection(-S,w,1),F=this.getCardinalDirection(-Y,w,3)):(x=this.getCardinalDirection(S,w,2),F=this.getCardinalDirection(Y,w,4)),!R)switch(x){case 1:P=a,U=g+-y/w,l[0]=U,l[1]=P;break;case 2:U=u,P=n+T*w,l[0]=U,l[1]=P;break;case 3:P=D,U=g+y/w,l[0]=U,l[1]=P;break;case 4:U=v,P=n+-T*w,l[0]=U,l[1]=P;break}if(!M)switch(F){case 1:X=s,_=d+-C/w,l[2]=_,l[3]=X;break;case 2:_=A,X=r+m*w,l[2]=_,l[3]=X;break;case 3:X=E,_=d+C/w,l[2]=_,l[3]=X;break;case 4:_=c,X=r+-m*w,l[2]=_,l[3]=X;break}}return!1},e.getCardinalDirection=function(t,i,l){return t>i?l:1+l%4},e.getIntersection=function(t,i,l,g){if(g==null)return this.getIntersection2(t,i,l);var n=t.x,d=t.y,r=i.x,h=i.y,a=l.x,p=l.y,v=g.x,D=g.y,u=void 0,T=void 0,y=void 0,O=void 0,s=void 0,f=void 0,c=void 0,E=void 0,A=void 0;return y=h-d,s=n-r,c=r*d-n*h,O=D-p,f=a-v,E=v*p-a*D,A=y*f-O*s,A===0?null:(u=(s*E-f*c)/A,T=(O*c-y*E)/A,new o(u,T))},e.angleOfVector=function(t,i,l,g){var n=void 0;return t!==l?(n=Math.atan((g-i)/(l-t)),l0?1:e<0?-1:0},o.floor=function(e){return e<0?Math.ceil(e):Math.floor(e)},o.ceil=function(e){return e<0?Math.floor(e):Math.ceil(e)},N.exports=o}),(function(N,I,L){function o(){}o.MAX_VALUE=2147483647,o.MIN_VALUE=-2147483648,N.exports=o}),(function(N,I,L){var o=(function(){function n(d,r){for(var h=0;h"u"?"undefined":o(t);return t==null||i!="object"&&i!="function"},N.exports=e}),(function(N,I,L){function o(a){if(Array.isArray(a)){for(var p=0,v=Array(a.length);p0&&p;){for(y.push(s[0]);y.length>0&&p;){var f=y[0];y.splice(0,1),T.add(f);for(var c=f.getEdges(),u=0;u-1&&s.splice(C,1)}T=new Set,O=new Map}}return a},h.prototype.createDummyNodesForBendpoints=function(a){for(var p=[],v=a.source,D=this.graphManager.calcLowestCommonAncestor(a.source,a.target),u=0;u0){for(var D=this.edgeToDummyNodes.get(v),u=0;u=0&&p.splice(E,1);var A=O.getNeighborsList();A.forEach(function(R){if(v.indexOf(R)<0){var M=D.get(R),S=M-1;S==1&&f.push(R),D.set(R,S)}})}v=v.concat(f),(p.length==1||p.length==2)&&(u=!0,T=p[0])}return T},h.prototype.setGraphManager=function(a){this.graphManager=a},N.exports=h}),(function(N,I,L){function o(){}o.seed=1,o.x=0,o.nextDouble=function(){return o.x=Math.sin(o.seed++)*1e4,o.x-Math.floor(o.x)},N.exports=o}),(function(N,I,L){var o=L(4);function e(t,i){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}e.prototype.getWorldOrgX=function(){return this.lworldOrgX},e.prototype.setWorldOrgX=function(t){this.lworldOrgX=t},e.prototype.getWorldOrgY=function(){return this.lworldOrgY},e.prototype.setWorldOrgY=function(t){this.lworldOrgY=t},e.prototype.getWorldExtX=function(){return this.lworldExtX},e.prototype.setWorldExtX=function(t){this.lworldExtX=t},e.prototype.getWorldExtY=function(){return this.lworldExtY},e.prototype.setWorldExtY=function(t){this.lworldExtY=t},e.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},e.prototype.setDeviceOrgX=function(t){this.ldeviceOrgX=t},e.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},e.prototype.setDeviceOrgY=function(t){this.ldeviceOrgY=t},e.prototype.getDeviceExtX=function(){return this.ldeviceExtX},e.prototype.setDeviceExtX=function(t){this.ldeviceExtX=t},e.prototype.getDeviceExtY=function(){return this.ldeviceExtY},e.prototype.setDeviceExtY=function(t){this.ldeviceExtY=t},e.prototype.transformX=function(t){var i=0,l=this.lworldExtX;return l!=0&&(i=this.ldeviceOrgX+(t-this.lworldOrgX)*this.ldeviceExtX/l),i},e.prototype.transformY=function(t){var i=0,l=this.lworldExtY;return l!=0&&(i=this.ldeviceOrgY+(t-this.lworldOrgY)*this.ldeviceExtY/l),i},e.prototype.inverseTransformX=function(t){var i=0,l=this.ldeviceExtX;return l!=0&&(i=this.lworldOrgX+(t-this.ldeviceOrgX)*this.lworldExtX/l),i},e.prototype.inverseTransformY=function(t){var i=0,l=this.ldeviceExtY;return l!=0&&(i=this.lworldOrgY+(t-this.ldeviceOrgY)*this.lworldExtY/l),i},e.prototype.inverseTransformPoint=function(t){var i=new o(this.inverseTransformX(t.x),this.inverseTransformY(t.y));return i},N.exports=e}),(function(N,I,L){function o(r){if(Array.isArray(r)){for(var h=0,a=Array(r.length);ht.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*t.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(r-t.ADAPTATION_LOWER_NODE_LIMIT)/(t.ADAPTATION_UPPER_NODE_LIMIT-t.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-t.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=t.MAX_NODE_DISPLACEMENT_INCREMENTAL):(r>t.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(t.COOLING_ADAPTATION_FACTOR,1-(r-t.ADAPTATION_LOWER_NODE_LIMIT)/(t.ADAPTATION_UPPER_NODE_LIMIT-t.ADAPTATION_LOWER_NODE_LIMIT)*(1-t.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=t.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},n.prototype.calcSpringForces=function(){for(var r=this.getAllEdges(),h,a=0;a0&&arguments[0]!==void 0?arguments[0]:!0,h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,a,p,v,D,u=this.getAllNodes(),T;if(this.useFRGridVariant)for(this.totalIterations%t.GRID_CALCULATION_CHECK_PERIOD==1&&r&&this.updateGrid(),T=new Set,a=0;ay||T>y)&&(r.gravitationForceX=-this.gravityConstant*v,r.gravitationForceY=-this.gravityConstant*D)):(y=h.getEstimatedSize()*this.compoundGravityRangeFactor,(u>y||T>y)&&(r.gravitationForceX=-this.gravityConstant*v*this.compoundGravityConstant,r.gravitationForceY=-this.gravityConstant*D*this.compoundGravityConstant))},n.prototype.isConverged=function(){var r,h=!1;return this.totalIterations>this.maxIterations/3&&(h=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),r=this.totalDisplacement=u.length||y>=u[0].length)){for(var O=0;On}}]),l})();N.exports=i}),(function(N,I,L){var o=(function(){function i(l,g){for(var n=0;n2&&arguments[2]!==void 0?arguments[2]:1,d=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;e(this,i),this.sequence1=l,this.sequence2=g,this.match_score=n,this.mismatch_penalty=d,this.gap_penalty=r,this.iMax=l.length+1,this.jMax=g.length+1,this.grid=new Array(this.iMax);for(var h=0;h=0;l--){var g=this.listeners[l];g.event===t&&g.callback===i&&this.listeners.splice(l,1)}},e.emit=function(t,i){for(var l=0;lg.coolingFactor*g.maxNodeDisplacement&&(this.displacementX=g.coolingFactor*g.maxNodeDisplacement*t.sign(this.displacementX)),Math.abs(this.displacementY)>g.coolingFactor*g.maxNodeDisplacement&&(this.displacementY=g.coolingFactor*g.maxNodeDisplacement*t.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),g.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},i.prototype.propogateDisplacementToChildren=function(g,n){for(var d=this.getChild().getNodes(),r,h=0;h0)this.positionNodesRadially(s);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var f=new Set(this.getAllNodes()),c=this.nodesWithGravity.filter(function(E){return f.has(E)});this.graphManager.setAllNodesToApplyGravitation(c),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},y.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 s=new Set(this.getAllNodes()),f=this.nodesWithGravity.filter(function(A){return s.has(A)});this.graphManager.setAllNodesToApplyGravitation(f),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 c=!this.isTreeGrowing&&!this.isGrowthFinished,E=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(c,E),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},y.prototype.getPositionsData=function(){for(var s=this.graphManager.getAllNodes(),f={},c=0;c1){var R;for(R=0;RE&&(E=Math.floor(C.y)),m=Math.floor(C.x+n.DEFAULT_COMPONENT_SEPERATION)}this.transform(new a(r.WORLD_CENTER_X-C.x/2,r.WORLD_CENTER_Y-C.y/2))},y.radialLayout=function(s,f,c){var E=Math.max(this.maxDiagonalInTree(s),n.DEFAULT_RADIAL_SEPARATION);y.branchRadialLayout(f,null,0,359,0,E);var A=u.calculateBounds(s),m=new T;m.setDeviceOrgX(A.getMinX()),m.setDeviceOrgY(A.getMinY()),m.setWorldOrgX(c.x),m.setWorldOrgY(c.y);for(var C=0;C1;){var X=_[0];_.splice(0,1);var H=w.indexOf(X);H>=0&&w.splice(H,1),U--,x--}f!=null?P=(w.indexOf(_[0])+1)%U:P=0;for(var W=Math.abs(E-c)/x,B=P;F!=x;B=++B%U){var K=w[B].getOtherEnd(s);if(K!=f){var q=(c+F*W)%360,ht=(q+W)%360;y.branchRadialLayout(K,s,q,ht,A+m,m),F++}}},y.maxDiagonalInTree=function(s){for(var f=v.MIN_VALUE,c=0;cf&&(f=A)}return f},y.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},y.prototype.groupZeroDegreeMembers=function(){var s=this,f={};this.memberGroups={},this.idToDummyNode={};for(var c=[],E=this.graphManager.getAllNodes(),A=0;A"u"&&(f[R]=[]),f[R]=f[R].concat(m)}Object.keys(f).forEach(function(M){if(f[M].length>1){var S="DummyCompound_"+M;s.memberGroups[S]=f[M];var Y=f[M][0].getParent(),w=new l(s.graphManager);w.id=S,w.paddingLeft=Y.paddingLeft||0,w.paddingRight=Y.paddingRight||0,w.paddingBottom=Y.paddingBottom||0,w.paddingTop=Y.paddingTop||0,s.idToDummyNode[S]=w;var x=s.getGraphManager().add(s.newGraph(),w),F=Y.getChild();F.add(w);for(var U=0;U=0;s--){var f=this.compoundOrder[s],c=f.id,E=f.paddingLeft,A=f.paddingTop;this.adjustLocations(this.tiledMemberPack[c],f.rect.x,f.rect.y,E,A)}},y.prototype.repopulateZeroDegreeMembers=function(){var s=this,f=this.tiledZeroDegreePack;Object.keys(f).forEach(function(c){var E=s.idToDummyNode[c],A=E.paddingLeft,m=E.paddingTop;s.adjustLocations(f[c],E.rect.x,E.rect.y,A,m)})},y.prototype.getToBeTiled=function(s){var f=s.id;if(this.toBeTiled[f]!=null)return this.toBeTiled[f];var c=s.getChild();if(c==null)return this.toBeTiled[f]=!1,!1;for(var E=c.getNodes(),A=0;A0)return this.toBeTiled[f]=!1,!1;if(m.getChild()==null){this.toBeTiled[m.id]=!1;continue}if(!this.getToBeTiled(m))return this.toBeTiled[f]=!1,!1}return this.toBeTiled[f]=!0,!0},y.prototype.getNodeDegree=function(s){s.id;for(var f=s.getEdges(),c=0,E=0;EM&&(M=Y.rect.height)}c+=M+s.verticalPadding}},y.prototype.tileCompoundMembers=function(s,f){var c=this;this.tiledMemberPack=[],Object.keys(s).forEach(function(E){var A=f[E];c.tiledMemberPack[E]=c.tileNodes(s[E],A.paddingLeft+A.paddingRight),A.rect.width=c.tiledMemberPack[E].width,A.rect.height=c.tiledMemberPack[E].height})},y.prototype.tileNodes=function(s,f){var c=n.TILING_PADDING_VERTICAL,E=n.TILING_PADDING_HORIZONTAL,A={rows:[],rowWidth:[],rowHeight:[],width:0,height:f,verticalPadding:c,horizontalPadding:E};s.sort(function(R,M){return R.rect.width*R.rect.height>M.rect.width*M.rect.height?-1:R.rect.width*R.rect.height0&&(C+=s.horizontalPadding),s.rowWidth[c]=C,s.width0&&(R+=s.verticalPadding);var M=0;R>s.rowHeight[c]&&(M=s.rowHeight[c],s.rowHeight[c]=R,M=s.rowHeight[c]-M),s.height+=M,s.rows[c].push(f)},y.prototype.getShortestRowIndex=function(s){for(var f=-1,c=Number.MAX_VALUE,E=0;Ec&&(f=E,c=s.rowWidth[E]);return f},y.prototype.canAddHorizontal=function(s,f,c){var E=this.getShortestRowIndex(s);if(E<0)return!0;var A=s.rowWidth[E];if(A+s.horizontalPadding+f<=s.width)return!0;var m=0;s.rowHeight[E]0&&(m=c+s.verticalPadding-s.rowHeight[E]);var C;s.width-A>=f+s.horizontalPadding?C=(s.height+m)/(A+f+s.horizontalPadding):C=(s.height+m)/s.width,m=c+s.verticalPadding;var R;return s.widthm&&f!=c){E.splice(-1,1),s.rows[c].push(A),s.rowWidth[f]=s.rowWidth[f]-m,s.rowWidth[c]=s.rowWidth[c]+m,s.width=s.rowWidth[instance.getLongestRowIndex(s)];for(var C=Number.MIN_VALUE,R=0;RC&&(C=E[R].height);f>0&&(C+=s.verticalPadding);var M=s.rowHeight[f]+s.rowHeight[c];s.rowHeight[f]=C,s.rowHeight[c]0)for(var F=A;F<=m;F++)x[0]+=this.grid[F][C-1].length+this.grid[F][C].length-1;if(m0)for(var F=C;F<=R;F++)x[3]+=this.grid[A-1][F].length+this.grid[A][F].length-1;for(var U=v.MAX_VALUE,P,_,X=0;X0){var R;R=T.getGraphManager().add(T.newGraph(),c),this.processChildrenList(R,f,T)}}},a.prototype.stop=function(){return this.stopped=!0,this};var v=function(u){u("layout","cose-bilkent",a)};typeof cytoscape<"u"&&v(cytoscape),I.exports=v})])})})(Z)),Z.exports}var yt=vt();const Et=lt(yt);tt.use(Et);function et(G,b){G.forEach(N=>{const I={id:N.id,labelText:N.label,height:N.height,width:N.width,padding:N.padding??0};Object.keys(N).forEach(L=>{["id","label","height","width","padding","x","y"].includes(L)||(I[L]=N[L])}),b.add({group:"nodes",data:I,position:{x:N.x??0,y:N.y??0}})})}V(et,"addNodes");function rt(G,b){G.forEach(N=>{const I={id:N.id,source:N.start,target:N.end};Object.keys(N).forEach(L=>{["id","start","end"].includes(L)||(I[L]=N[L])}),b.add({group:"edges",data:I})})}V(rt,"addEdges");function it(G){return new Promise(b=>{const N=gt("body").append("div").attr("id","cy").attr("style","display:none"),I=tt({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});N.remove(),et(G.nodes,I),rt(G.edges,I),I.nodes().forEach(function(o){o.layoutDimensions=()=>{const e=o.data();return{w:e.width,h:e.height}}});const L={name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1};I.layout(L).run(),I.ready(o=>{k.info("Cytoscape ready",o),b(I)})})}V(it,"createCytoscapeInstance");function nt(G){return G.nodes().map(b=>{const N=b.data(),I=b.position(),L={id:N.id,x:I.x,y:I.y};return Object.keys(N).forEach(o=>{o!=="id"&&(L[o]=N[o])}),L})}V(nt,"extractPositionedNodes");function ot(G){return G.edges().map(b=>{const N=b.data(),I=b._private.rscratch,L={id:N.id,source:N.source,target:N.target,startX:I.startX,startY:I.startY,midX:I.midX,midY:I.midY,endX:I.endX,endY:I.endY};return Object.keys(N).forEach(o=>{["id","source","target"].includes(o)||(L[o]=N[o])}),L})}V(ot,"extractPositionedEdges");async function st(G,b){k.debug("Starting cose-bilkent layout algorithm");try{at(G);const N=await it(G),I=nt(N),L=ot(N);return k.debug(`Layout completed: ${I.length} nodes, ${L.length} edges`),{nodes:I,edges:L}}catch(N){throw k.error("Error in cose-bilkent layout algorithm:",N),N}}V(st,"executeCoseBilkentLayout");function at(G){if(!G)throw new Error("Layout data is required");if(!G.config)throw new Error("Configuration is required in layout data");if(!G.rootNode)throw new Error("Root node is required");if(!G.nodes||!Array.isArray(G.nodes))throw new Error("No nodes found in layout data");if(!Array.isArray(G.edges))throw new Error("Edges array is required in layout data");return!0}V(at,"validateLayoutData");var Lt=V(async(G,b,{insertCluster:N,insertEdge:I,insertEdgeLabel:L,insertMarkers:o,insertNode:e,log:t,positionEdgeLabel:i},{algorithm:l})=>{const g={},n={},d=b.select("g");o(d,G.markers,G.type,G.diagramId);const r=d.insert("g").attr("class","subgraphs"),h=d.insert("g").attr("class","edgePaths"),a=d.insert("g").attr("class","edgeLabels"),p=d.insert("g").attr("class","nodes");t.debug("Inserting nodes into DOM for dimension calculation"),await Promise.all(G.nodes.map(async u=>{if(u.isGroup){const T={...u};n[u.id]=T,g[u.id]=T,await N(r,u)}else{const T={...u};g[u.id]=T;const y=await e(p,u,{config:G.config,dir:G.direction||"TB"}),O=y.node().getBBox();T.width=O.width,T.height=O.height,T.domId=y,t.debug(`Node ${u.id} dimensions: ${O.width}x${O.height}`)}})),t.debug("Running cose-bilkent layout algorithm");const v={...G,nodes:G.nodes.map(u=>{const T=g[u.id];return{...u,width:T.width,height:T.height}})},D=await st(v,G.config);t.debug("Positioning nodes based on layout results"),D.nodes.forEach(u=>{const T=g[u.id];T?.domId&&(T.domId.attr("transform",`translate(${u.x}, ${u.y})`),T.x=u.x,T.y=u.y,t.debug(`Positioned node ${T.id} at center (${u.x}, ${u.y})`))}),D.edges.forEach(u=>{const T=G.edges.find(y=>y.id===u.id);T&&(T.points=[{x:u.startX,y:u.startY},{x:u.midX,y:u.midY},{x:u.endX,y:u.endY}])}),t.debug("Inserting and positioning edges"),await Promise.all(G.edges.map(async u=>{await L(a,u);const T=g[u.start??""],y=g[u.end??""];if(T&&y){const O=D.edges.find(s=>s.id===u.id);if(O){t.debug("APA01 positionedEdge",O);const s={...u},f=I(h,s,n,G.type,T,y,G.diagramId);i(s,f)}else{const s={...u,points:[{x:T.x||0,y:T.y||0},{x:y.x||0,y:y.y||0}]},f=I(h,s,n,G.type,T,y,G.diagramId);i(s,f)}}})),t.debug("Cose-bilkent rendering completed")},"render"),Nt=Lt;export{Nt as render}; diff --git a/apps/kimi-code/dist-web/assets/cynefin-VYW2F7L2-DYKf_Z-v.js b/apps/kimi-code/dist-web/assets/cynefin-VYW2F7L2-BnQdr27u.js similarity index 99% rename from apps/kimi-code/dist-web/assets/cynefin-VYW2F7L2-DYKf_Z-v.js rename to apps/kimi-code/dist-web/assets/cynefin-VYW2F7L2-BnQdr27u.js index 154d9ce15..c80f88c58 100644 --- a/apps/kimi-code/dist-web/assets/cynefin-VYW2F7L2-DYKf_Z-v.js +++ b/apps/kimi-code/dist-web/assets/cynefin-VYW2F7L2-BnQdr27u.js @@ -1,4 +1,4 @@ -import{bR as et}from"./index-7SHxad1A.js";var RI=Object.create,Ds=Object.defineProperty,AI=Object.getOwnPropertyDescriptor,Ad=Object.getOwnPropertyNames,EI=Object.getPrototypeOf,CI=Object.prototype.hasOwnProperty,i=(e,t)=>Ds(e,"name",{value:t,configurable:!0}),bI=(e,t)=>function(){return e&&(t=(0,e[Ad(e)[0]])(e=0)),t},H=(e,t)=>function(){return t||(0,e[Ad(e)[0]])((t={exports:{}}).exports,t),t.exports},Vr=(e,t)=>{for(var r in t)Ds(e,r,{get:t[r],enumerable:!0})},Ed=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Ad(t))!CI.call(e,a)&&a!==r&&Ds(e,a,{get:()=>t[a],enumerable:!(n=AI(t,a))||n.enumerable});return e},Ll=(e,t,r)=>(Ed(e,t,"default"),r),Cd=(e,t,r)=>(r=e!=null?RI(EI(e)):{},Ed(Ds(r,"default",{value:e,enumerable:!0}),e)),bd=e=>Ed(Ds({},"__esModule",{value:!0}),e),Dl={};Vr(Dl,{AnnotatedTextEdit:()=>mr,ChangeAnnotation:()=>an,ChangeAnnotationIdentifier:()=>Ke,CodeAction:()=>ef,CodeActionContext:()=>Qc,CodeActionKind:()=>Zc,CodeActionTriggerKind:()=>Xi,CodeDescription:()=>Nc,CodeLens:()=>tf,Color:()=>Co,ColorInformation:()=>Cc,ColorPresentation:()=>bc,Command:()=>nn,CompletionItem:()=>zc,CompletionItemKind:()=>Lc,CompletionItemLabelDetails:()=>Fc,CompletionItemTag:()=>xc,CompletionList:()=>jc,CreateFile:()=>ya,DeleteFile:()=>va,Diagnostic:()=>Vi,DiagnosticRelatedInformation:()=>bo,DiagnosticSeverity:()=>wc,DiagnosticTag:()=>Ic,DocumentHighlight:()=>Vc,DocumentHighlightKind:()=>Wc,DocumentLink:()=>nf,DocumentSymbol:()=>Jc,DocumentUri:()=>Rc,EOL:()=>zg,FoldingRange:()=>Sc,FoldingRangeKind:()=>_c,FormattingOptions:()=>rf,Hover:()=>Bc,InlayHint:()=>pf,InlayHintKind:()=>wo,InlayHintLabelPart:()=>Io,InlineCompletionContext:()=>Tf,InlineCompletionItem:()=>hf,InlineCompletionList:()=>yf,InlineCompletionTriggerKind:()=>gf,InlineValueContext:()=>df,InlineValueEvaluatableExpression:()=>ff,InlineValueText:()=>uf,InlineValueVariableLookup:()=>cf,InsertReplaceEdit:()=>Mc,InsertTextFormat:()=>Dc,InsertTextMode:()=>Gc,Location:()=>Wi,LocationLink:()=>Ec,MarkedString:()=>Yi,MarkupContent:()=>Ta,MarkupKind:()=>So,OptionalVersionedTextDocumentIdentifier:()=>Hi,ParameterInformation:()=>Uc,Position:()=>ie,Range:()=>Q,RenameFile:()=>ga,SelectedCompletionInfo:()=>vf,SelectionRange:()=>af,SemanticTokenModifiers:()=>of,SemanticTokenTypes:()=>sf,SemanticTokens:()=>lf,SignatureInformation:()=>Kc,StringValue:()=>mf,SymbolInformation:()=>Yc,SymbolKind:()=>qc,SymbolTag:()=>Hc,TextDocument:()=>Rf,TextDocumentEdit:()=>qi,TextDocumentIdentifier:()=>Pc,TextDocumentItem:()=>Oc,TextEdit:()=>Yt,URI:()=>Eo,VersionedTextDocumentIdentifier:()=>kc,WorkspaceChange:()=>Fg,WorkspaceEdit:()=>_o,WorkspaceFolder:()=>$f,WorkspaceSymbol:()=>Xc,integer:()=>Ac,uinteger:()=>Ki});var Rc,Eo,Ac,Ki,ie,Q,Wi,Ec,Co,Cc,bc,_c,Sc,bo,wc,Ic,Nc,Vi,nn,Yt,an,Ke,mr,qi,ya,ga,va,_o,ki,Ku,Fg,Pc,kc,Hi,Oc,So,Ta,Lc,Dc,xc,Mc,Gc,Fc,zc,jc,Yi,Bc,Uc,Kc,Wc,Vc,qc,Hc,Yc,Xc,Jc,Zc,Xi,Qc,ef,tf,rf,nf,af,sf,of,lf,uf,cf,ff,df,wo,Io,pf,mf,hf,yf,gf,vf,Tf,$f,zg,Rf,lh,A,xs=bI({"../../node_modules/.pnpm/vscode-languageserver-types@3.17.5/node_modules/vscode-languageserver-types/lib/esm/main.js"(){(function(e){function t(r){return typeof r=="string"}i(t,"is"),e.is=t})(Rc||(Rc={})),(function(e){function t(r){return typeof r=="string"}i(t,"is"),e.is=t})(Eo||(Eo={})),(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}i(t,"is"),e.is=t})(Ac||(Ac={})),(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}i(t,"is"),e.is=t})(Ki||(Ki={})),(function(e){function t(n,a){return n===Number.MAX_VALUE&&(n=Ki.MAX_VALUE),a===Number.MAX_VALUE&&(a=Ki.MAX_VALUE),{line:n,character:a}}i(t,"create"),e.create=t;function r(n){let a=n;return A.objectLiteral(a)&&A.uinteger(a.line)&&A.uinteger(a.character)}i(r,"is"),e.is=r})(ie||(ie={})),(function(e){function t(n,a,s,o){if(A.uinteger(n)&&A.uinteger(a)&&A.uinteger(s)&&A.uinteger(o))return{start:ie.create(n,a),end:ie.create(s,o)};if(ie.is(n)&&ie.is(a))return{start:n,end:a};throw new Error(`Range#create called with invalid arguments[${n}, ${a}, ${s}, ${o}]`)}i(t,"create"),e.create=t;function r(n){let a=n;return A.objectLiteral(a)&&ie.is(a.start)&&ie.is(a.end)}i(r,"is"),e.is=r})(Q||(Q={})),(function(e){function t(n,a){return{uri:n,range:a}}i(t,"create"),e.create=t;function r(n){let a=n;return A.objectLiteral(a)&&Q.is(a.range)&&(A.string(a.uri)||A.undefined(a.uri))}i(r,"is"),e.is=r})(Wi||(Wi={})),(function(e){function t(n,a,s,o){return{targetUri:n,targetRange:a,targetSelectionRange:s,originSelectionRange:o}}i(t,"create"),e.create=t;function r(n){let a=n;return A.objectLiteral(a)&&Q.is(a.targetRange)&&A.string(a.targetUri)&&Q.is(a.targetSelectionRange)&&(Q.is(a.originSelectionRange)||A.undefined(a.originSelectionRange))}i(r,"is"),e.is=r})(Ec||(Ec={})),(function(e){function t(n,a,s,o){return{red:n,green:a,blue:s,alpha:o}}i(t,"create"),e.create=t;function r(n){const a=n;return A.objectLiteral(a)&&A.numberRange(a.red,0,1)&&A.numberRange(a.green,0,1)&&A.numberRange(a.blue,0,1)&&A.numberRange(a.alpha,0,1)}i(r,"is"),e.is=r})(Co||(Co={})),(function(e){function t(n,a){return{range:n,color:a}}i(t,"create"),e.create=t;function r(n){const a=n;return A.objectLiteral(a)&&Q.is(a.range)&&Co.is(a.color)}i(r,"is"),e.is=r})(Cc||(Cc={})),(function(e){function t(n,a,s){return{label:n,textEdit:a,additionalTextEdits:s}}i(t,"create"),e.create=t;function r(n){const a=n;return A.objectLiteral(a)&&A.string(a.label)&&(A.undefined(a.textEdit)||Yt.is(a))&&(A.undefined(a.additionalTextEdits)||A.typedArray(a.additionalTextEdits,Yt.is))}i(r,"is"),e.is=r})(bc||(bc={})),(function(e){e.Comment="comment",e.Imports="imports",e.Region="region"})(_c||(_c={})),(function(e){function t(n,a,s,o,l,u){const c={startLine:n,endLine:a};return A.defined(s)&&(c.startCharacter=s),A.defined(o)&&(c.endCharacter=o),A.defined(l)&&(c.kind=l),A.defined(u)&&(c.collapsedText=u),c}i(t,"create"),e.create=t;function r(n){const a=n;return A.objectLiteral(a)&&A.uinteger(a.startLine)&&A.uinteger(a.startLine)&&(A.undefined(a.startCharacter)||A.uinteger(a.startCharacter))&&(A.undefined(a.endCharacter)||A.uinteger(a.endCharacter))&&(A.undefined(a.kind)||A.string(a.kind))}i(r,"is"),e.is=r})(Sc||(Sc={})),(function(e){function t(n,a){return{location:n,message:a}}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&Wi.is(a.location)&&A.string(a.message)}i(r,"is"),e.is=r})(bo||(bo={})),(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(wc||(wc={})),(function(e){e.Unnecessary=1,e.Deprecated=2})(Ic||(Ic={})),(function(e){function t(r){const n=r;return A.objectLiteral(n)&&A.string(n.href)}i(t,"is"),e.is=t})(Nc||(Nc={})),(function(e){function t(n,a,s,o,l,u){let c={range:n,message:a};return A.defined(s)&&(c.severity=s),A.defined(o)&&(c.code=o),A.defined(l)&&(c.source=l),A.defined(u)&&(c.relatedInformation=u),c}i(t,"create"),e.create=t;function r(n){var a;let s=n;return A.defined(s)&&Q.is(s.range)&&A.string(s.message)&&(A.number(s.severity)||A.undefined(s.severity))&&(A.integer(s.code)||A.string(s.code)||A.undefined(s.code))&&(A.undefined(s.codeDescription)||A.string((a=s.codeDescription)===null||a===void 0?void 0:a.href))&&(A.string(s.source)||A.undefined(s.source))&&(A.undefined(s.relatedInformation)||A.typedArray(s.relatedInformation,bo.is))}i(r,"is"),e.is=r})(Vi||(Vi={})),(function(e){function t(n,a,...s){let o={title:n,command:a};return A.defined(s)&&s.length>0&&(o.arguments=s),o}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&A.string(a.title)&&A.string(a.command)}i(r,"is"),e.is=r})(nn||(nn={})),(function(e){function t(s,o){return{range:s,newText:o}}i(t,"replace"),e.replace=t;function r(s,o){return{range:{start:s,end:s},newText:o}}i(r,"insert"),e.insert=r;function n(s){return{range:s,newText:""}}i(n,"del"),e.del=n;function a(s){const o=s;return A.objectLiteral(o)&&A.string(o.newText)&&Q.is(o.range)}i(a,"is"),e.is=a})(Yt||(Yt={})),(function(e){function t(n,a,s){const o={label:n};return a!==void 0&&(o.needsConfirmation=a),s!==void 0&&(o.description=s),o}i(t,"create"),e.create=t;function r(n){const a=n;return A.objectLiteral(a)&&A.string(a.label)&&(A.boolean(a.needsConfirmation)||a.needsConfirmation===void 0)&&(A.string(a.description)||a.description===void 0)}i(r,"is"),e.is=r})(an||(an={})),(function(e){function t(r){const n=r;return A.string(n)}i(t,"is"),e.is=t})(Ke||(Ke={})),(function(e){function t(s,o,l){return{range:s,newText:o,annotationId:l}}i(t,"replace"),e.replace=t;function r(s,o,l){return{range:{start:s,end:s},newText:o,annotationId:l}}i(r,"insert"),e.insert=r;function n(s,o){return{range:s,newText:"",annotationId:o}}i(n,"del"),e.del=n;function a(s){const o=s;return Yt.is(o)&&(an.is(o.annotationId)||Ke.is(o.annotationId))}i(a,"is"),e.is=a})(mr||(mr={})),(function(e){function t(n,a){return{textDocument:n,edits:a}}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&Hi.is(a.textDocument)&&Array.isArray(a.edits)}i(r,"is"),e.is=r})(qi||(qi={})),(function(e){function t(n,a,s){let o={kind:"create",uri:n};return a!==void 0&&(a.overwrite!==void 0||a.ignoreIfExists!==void 0)&&(o.options=a),s!==void 0&&(o.annotationId=s),o}i(t,"create"),e.create=t;function r(n){let a=n;return a&&a.kind==="create"&&A.string(a.uri)&&(a.options===void 0||(a.options.overwrite===void 0||A.boolean(a.options.overwrite))&&(a.options.ignoreIfExists===void 0||A.boolean(a.options.ignoreIfExists)))&&(a.annotationId===void 0||Ke.is(a.annotationId))}i(r,"is"),e.is=r})(ya||(ya={})),(function(e){function t(n,a,s,o){let l={kind:"rename",oldUri:n,newUri:a};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(l.options=s),o!==void 0&&(l.annotationId=o),l}i(t,"create"),e.create=t;function r(n){let a=n;return a&&a.kind==="rename"&&A.string(a.oldUri)&&A.string(a.newUri)&&(a.options===void 0||(a.options.overwrite===void 0||A.boolean(a.options.overwrite))&&(a.options.ignoreIfExists===void 0||A.boolean(a.options.ignoreIfExists)))&&(a.annotationId===void 0||Ke.is(a.annotationId))}i(r,"is"),e.is=r})(ga||(ga={})),(function(e){function t(n,a,s){let o={kind:"delete",uri:n};return a!==void 0&&(a.recursive!==void 0||a.ignoreIfNotExists!==void 0)&&(o.options=a),s!==void 0&&(o.annotationId=s),o}i(t,"create"),e.create=t;function r(n){let a=n;return a&&a.kind==="delete"&&A.string(a.uri)&&(a.options===void 0||(a.options.recursive===void 0||A.boolean(a.options.recursive))&&(a.options.ignoreIfNotExists===void 0||A.boolean(a.options.ignoreIfNotExists)))&&(a.annotationId===void 0||Ke.is(a.annotationId))}i(r,"is"),e.is=r})(va||(va={})),(function(e){function t(r){let n=r;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(a=>A.string(a.kind)?ya.is(a)||ga.is(a)||va.is(a):qi.is(a)))}i(t,"is"),e.is=t})(_o||(_o={})),ki=class{static{i(this,"TextEditChangeImpl")}constructor(e,t){this.edits=e,this.changeAnnotations=t}insert(e,t,r){let n,a;if(r===void 0?n=Yt.insert(e,t):Ke.is(r)?(a=r,n=mr.insert(e,t,r)):(this.assertChangeAnnotations(this.changeAnnotations),a=this.changeAnnotations.manage(r),n=mr.insert(e,t,a)),this.edits.push(n),a!==void 0)return a}replace(e,t,r){let n,a;if(r===void 0?n=Yt.replace(e,t):Ke.is(r)?(a=r,n=mr.replace(e,t,r)):(this.assertChangeAnnotations(this.changeAnnotations),a=this.changeAnnotations.manage(r),n=mr.replace(e,t,a)),this.edits.push(n),a!==void 0)return a}delete(e,t){let r,n;if(t===void 0?r=Yt.del(e):Ke.is(t)?(n=t,r=mr.del(e,t)):(this.assertChangeAnnotations(this.changeAnnotations),n=this.changeAnnotations.manage(t),r=mr.del(e,n)),this.edits.push(r),n!==void 0)return n}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.")}},Ku=class{static{i(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(Ke.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()}},Fg=class{static{i(this,"WorkspaceChange")}constructor(e){this._textEditChanges=Object.create(null),e!==void 0?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new Ku(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach(t=>{if(qi.is(t)){const r=new ki(t.edits,this._changeAnnotations);this._textEditChanges[t.textDocument.uri]=r}})):e.changes&&Object.keys(e.changes).forEach(t=>{const r=new ki(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(Hi.is(e)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");const t={uri:e.uri,version:e.version};let r=this._textEditChanges[t.uri];if(!r){const n=[],a={textDocument:t,edits:n};this._workspaceEdit.documentChanges.push(a),r=new ki(n,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 ki(r),this._textEditChanges[e]=t}return t}}initDocumentChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new Ku,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 n;an.is(t)||Ke.is(t)?n=t:r=t;let a,s;if(n===void 0?a=ya.create(e,r):(s=Ke.is(n)?n:this._changeAnnotations.manage(n),a=ya.create(e,r,s)),this._workspaceEdit.documentChanges.push(a),s!==void 0)return s}renameFile(e,t,r,n){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let a;an.is(r)||Ke.is(r)?a=r:n=r;let s,o;if(a===void 0?s=ga.create(e,t,n):(o=Ke.is(a)?a:this._changeAnnotations.manage(a),s=ga.create(e,t,n,o)),this._workspaceEdit.documentChanges.push(s),o!==void 0)return o}deleteFile(e,t,r){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let n;an.is(t)||Ke.is(t)?n=t:r=t;let a,s;if(n===void 0?a=va.create(e,r):(s=Ke.is(n)?n:this._changeAnnotations.manage(n),a=va.create(e,r,s)),this._workspaceEdit.documentChanges.push(a),s!==void 0)return s}},(function(e){function t(n){return{uri:n}}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&A.string(a.uri)}i(r,"is"),e.is=r})(Pc||(Pc={})),(function(e){function t(n,a){return{uri:n,version:a}}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&A.string(a.uri)&&A.integer(a.version)}i(r,"is"),e.is=r})(kc||(kc={})),(function(e){function t(n,a){return{uri:n,version:a}}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&A.string(a.uri)&&(a.version===null||A.integer(a.version))}i(r,"is"),e.is=r})(Hi||(Hi={})),(function(e){function t(n,a,s,o){return{uri:n,languageId:a,version:s,text:o}}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&A.string(a.uri)&&A.string(a.languageId)&&A.integer(a.version)&&A.string(a.text)}i(r,"is"),e.is=r})(Oc||(Oc={})),(function(e){e.PlainText="plaintext",e.Markdown="markdown";function t(r){const n=r;return n===e.PlainText||n===e.Markdown}i(t,"is"),e.is=t})(So||(So={})),(function(e){function t(r){const n=r;return A.objectLiteral(r)&&So.is(n.kind)&&A.string(n.value)}i(t,"is"),e.is=t})(Ta||(Ta={})),(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})(Lc||(Lc={})),(function(e){e.PlainText=1,e.Snippet=2})(Dc||(Dc={})),(function(e){e.Deprecated=1})(xc||(xc={})),(function(e){function t(n,a,s){return{newText:n,insert:a,replace:s}}i(t,"create"),e.create=t;function r(n){const a=n;return a&&A.string(a.newText)&&Q.is(a.insert)&&Q.is(a.replace)}i(r,"is"),e.is=r})(Mc||(Mc={})),(function(e){e.asIs=1,e.adjustIndentation=2})(Gc||(Gc={})),(function(e){function t(r){const n=r;return n&&(A.string(n.detail)||n.detail===void 0)&&(A.string(n.description)||n.description===void 0)}i(t,"is"),e.is=t})(Fc||(Fc={})),(function(e){function t(r){return{label:r}}i(t,"create"),e.create=t})(zc||(zc={})),(function(e){function t(r,n){return{items:r||[],isIncomplete:!!n}}i(t,"create"),e.create=t})(jc||(jc={})),(function(e){function t(n){return n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}i(t,"fromPlainText"),e.fromPlainText=t;function r(n){const a=n;return A.string(a)||A.objectLiteral(a)&&A.string(a.language)&&A.string(a.value)}i(r,"is"),e.is=r})(Yi||(Yi={})),(function(e){function t(r){let n=r;return!!n&&A.objectLiteral(n)&&(Ta.is(n.contents)||Yi.is(n.contents)||A.typedArray(n.contents,Yi.is))&&(r.range===void 0||Q.is(r.range))}i(t,"is"),e.is=t})(Bc||(Bc={})),(function(e){function t(r,n){return n?{label:r,documentation:n}:{label:r}}i(t,"create"),e.create=t})(Uc||(Uc={})),(function(e){function t(r,n,...a){let s={label:r};return A.defined(n)&&(s.documentation=n),A.defined(a)?s.parameters=a:s.parameters=[],s}i(t,"create"),e.create=t})(Kc||(Kc={})),(function(e){e.Text=1,e.Read=2,e.Write=3})(Wc||(Wc={})),(function(e){function t(r,n){let a={range:r};return A.number(n)&&(a.kind=n),a}i(t,"create"),e.create=t})(Vc||(Vc={})),(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})(qc||(qc={})),(function(e){e.Deprecated=1})(Hc||(Hc={})),(function(e){function t(r,n,a,s,o){let l={name:r,kind:n,location:{uri:s,range:a}};return o&&(l.containerName=o),l}i(t,"create"),e.create=t})(Yc||(Yc={})),(function(e){function t(r,n,a,s){return s!==void 0?{name:r,kind:n,location:{uri:a,range:s}}:{name:r,kind:n,location:{uri:a}}}i(t,"create"),e.create=t})(Xc||(Xc={})),(function(e){function t(n,a,s,o,l,u){let c={name:n,detail:a,kind:s,range:o,selectionRange:l};return u!==void 0&&(c.children=u),c}i(t,"create"),e.create=t;function r(n){let a=n;return a&&A.string(a.name)&&A.number(a.kind)&&Q.is(a.range)&&Q.is(a.selectionRange)&&(a.detail===void 0||A.string(a.detail))&&(a.deprecated===void 0||A.boolean(a.deprecated))&&(a.children===void 0||Array.isArray(a.children))&&(a.tags===void 0||Array.isArray(a.tags))}i(r,"is"),e.is=r})(Jc||(Jc={})),(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"})(Zc||(Zc={})),(function(e){e.Invoked=1,e.Automatic=2})(Xi||(Xi={})),(function(e){function t(n,a,s){let o={diagnostics:n};return a!=null&&(o.only=a),s!=null&&(o.triggerKind=s),o}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&A.typedArray(a.diagnostics,Vi.is)&&(a.only===void 0||A.typedArray(a.only,A.string))&&(a.triggerKind===void 0||a.triggerKind===Xi.Invoked||a.triggerKind===Xi.Automatic)}i(r,"is"),e.is=r})(Qc||(Qc={})),(function(e){function t(n,a,s){let o={title:n},l=!0;return typeof a=="string"?(l=!1,o.kind=a):nn.is(a)?o.command=a:o.edit=a,l&&s!==void 0&&(o.kind=s),o}i(t,"create"),e.create=t;function r(n){let a=n;return a&&A.string(a.title)&&(a.diagnostics===void 0||A.typedArray(a.diagnostics,Vi.is))&&(a.kind===void 0||A.string(a.kind))&&(a.edit!==void 0||a.command!==void 0)&&(a.command===void 0||nn.is(a.command))&&(a.isPreferred===void 0||A.boolean(a.isPreferred))&&(a.edit===void 0||_o.is(a.edit))}i(r,"is"),e.is=r})(ef||(ef={})),(function(e){function t(n,a){let s={range:n};return A.defined(a)&&(s.data=a),s}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&Q.is(a.range)&&(A.undefined(a.command)||nn.is(a.command))}i(r,"is"),e.is=r})(tf||(tf={})),(function(e){function t(n,a){return{tabSize:n,insertSpaces:a}}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&A.uinteger(a.tabSize)&&A.boolean(a.insertSpaces)}i(r,"is"),e.is=r})(rf||(rf={})),(function(e){function t(n,a,s){return{range:n,target:a,data:s}}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&Q.is(a.range)&&(A.undefined(a.target)||A.string(a.target))}i(r,"is"),e.is=r})(nf||(nf={})),(function(e){function t(n,a){return{range:n,parent:a}}i(t,"create"),e.create=t;function r(n){let a=n;return A.objectLiteral(a)&&Q.is(a.range)&&(a.parent===void 0||e.is(a.parent))}i(r,"is"),e.is=r})(af||(af={})),(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"})(sf||(sf={})),(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"})(of||(of={})),(function(e){function t(r){const n=r;return A.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId=="string")&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]=="number")}i(t,"is"),e.is=t})(lf||(lf={})),(function(e){function t(n,a){return{range:n,text:a}}i(t,"create"),e.create=t;function r(n){const a=n;return a!=null&&Q.is(a.range)&&A.string(a.text)}i(r,"is"),e.is=r})(uf||(uf={})),(function(e){function t(n,a,s){return{range:n,variableName:a,caseSensitiveLookup:s}}i(t,"create"),e.create=t;function r(n){const a=n;return a!=null&&Q.is(a.range)&&A.boolean(a.caseSensitiveLookup)&&(A.string(a.variableName)||a.variableName===void 0)}i(r,"is"),e.is=r})(cf||(cf={})),(function(e){function t(n,a){return{range:n,expression:a}}i(t,"create"),e.create=t;function r(n){const a=n;return a!=null&&Q.is(a.range)&&(A.string(a.expression)||a.expression===void 0)}i(r,"is"),e.is=r})(ff||(ff={})),(function(e){function t(n,a){return{frameId:n,stoppedLocation:a}}i(t,"create"),e.create=t;function r(n){const a=n;return A.defined(a)&&Q.is(n.stoppedLocation)}i(r,"is"),e.is=r})(df||(df={})),(function(e){e.Type=1,e.Parameter=2;function t(r){return r===1||r===2}i(t,"is"),e.is=t})(wo||(wo={})),(function(e){function t(n){return{value:n}}i(t,"create"),e.create=t;function r(n){const a=n;return A.objectLiteral(a)&&(a.tooltip===void 0||A.string(a.tooltip)||Ta.is(a.tooltip))&&(a.location===void 0||Wi.is(a.location))&&(a.command===void 0||nn.is(a.command))}i(r,"is"),e.is=r})(Io||(Io={})),(function(e){function t(n,a,s){const o={position:n,label:a};return s!==void 0&&(o.kind=s),o}i(t,"create"),e.create=t;function r(n){const a=n;return A.objectLiteral(a)&&ie.is(a.position)&&(A.string(a.label)||A.typedArray(a.label,Io.is))&&(a.kind===void 0||wo.is(a.kind))&&a.textEdits===void 0||A.typedArray(a.textEdits,Yt.is)&&(a.tooltip===void 0||A.string(a.tooltip)||Ta.is(a.tooltip))&&(a.paddingLeft===void 0||A.boolean(a.paddingLeft))&&(a.paddingRight===void 0||A.boolean(a.paddingRight))}i(r,"is"),e.is=r})(pf||(pf={})),(function(e){function t(r){return{kind:"snippet",value:r}}i(t,"createSnippet"),e.createSnippet=t})(mf||(mf={})),(function(e){function t(r,n,a,s){return{insertText:r,filterText:n,range:a,command:s}}i(t,"create"),e.create=t})(hf||(hf={})),(function(e){function t(r){return{items:r}}i(t,"create"),e.create=t})(yf||(yf={})),(function(e){e.Invoked=0,e.Automatic=1})(gf||(gf={})),(function(e){function t(r,n){return{range:r,text:n}}i(t,"create"),e.create=t})(vf||(vf={})),(function(e){function t(r,n){return{triggerKind:r,selectedCompletionInfo:n}}i(t,"create"),e.create=t})(Tf||(Tf={})),(function(e){function t(r){const n=r;return A.objectLiteral(n)&&Eo.is(n.uri)&&A.string(n.name)}i(t,"is"),e.is=t})($f||($f={})),zg=[` +import{bR as et}from"./index-BOtIzGLC.js";var RI=Object.create,Ds=Object.defineProperty,AI=Object.getOwnPropertyDescriptor,Ad=Object.getOwnPropertyNames,EI=Object.getPrototypeOf,CI=Object.prototype.hasOwnProperty,i=(e,t)=>Ds(e,"name",{value:t,configurable:!0}),bI=(e,t)=>function(){return e&&(t=(0,e[Ad(e)[0]])(e=0)),t},H=(e,t)=>function(){return t||(0,e[Ad(e)[0]])((t={exports:{}}).exports,t),t.exports},Vr=(e,t)=>{for(var r in t)Ds(e,r,{get:t[r],enumerable:!0})},Ed=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Ad(t))!CI.call(e,a)&&a!==r&&Ds(e,a,{get:()=>t[a],enumerable:!(n=AI(t,a))||n.enumerable});return e},Ll=(e,t,r)=>(Ed(e,t,"default"),r),Cd=(e,t,r)=>(r=e!=null?RI(EI(e)):{},Ed(Ds(r,"default",{value:e,enumerable:!0}),e)),bd=e=>Ed(Ds({},"__esModule",{value:!0}),e),Dl={};Vr(Dl,{AnnotatedTextEdit:()=>mr,ChangeAnnotation:()=>an,ChangeAnnotationIdentifier:()=>Ke,CodeAction:()=>ef,CodeActionContext:()=>Qc,CodeActionKind:()=>Zc,CodeActionTriggerKind:()=>Xi,CodeDescription:()=>Nc,CodeLens:()=>tf,Color:()=>Co,ColorInformation:()=>Cc,ColorPresentation:()=>bc,Command:()=>nn,CompletionItem:()=>zc,CompletionItemKind:()=>Lc,CompletionItemLabelDetails:()=>Fc,CompletionItemTag:()=>xc,CompletionList:()=>jc,CreateFile:()=>ya,DeleteFile:()=>va,Diagnostic:()=>Vi,DiagnosticRelatedInformation:()=>bo,DiagnosticSeverity:()=>wc,DiagnosticTag:()=>Ic,DocumentHighlight:()=>Vc,DocumentHighlightKind:()=>Wc,DocumentLink:()=>nf,DocumentSymbol:()=>Jc,DocumentUri:()=>Rc,EOL:()=>zg,FoldingRange:()=>Sc,FoldingRangeKind:()=>_c,FormattingOptions:()=>rf,Hover:()=>Bc,InlayHint:()=>pf,InlayHintKind:()=>wo,InlayHintLabelPart:()=>Io,InlineCompletionContext:()=>Tf,InlineCompletionItem:()=>hf,InlineCompletionList:()=>yf,InlineCompletionTriggerKind:()=>gf,InlineValueContext:()=>df,InlineValueEvaluatableExpression:()=>ff,InlineValueText:()=>uf,InlineValueVariableLookup:()=>cf,InsertReplaceEdit:()=>Mc,InsertTextFormat:()=>Dc,InsertTextMode:()=>Gc,Location:()=>Wi,LocationLink:()=>Ec,MarkedString:()=>Yi,MarkupContent:()=>Ta,MarkupKind:()=>So,OptionalVersionedTextDocumentIdentifier:()=>Hi,ParameterInformation:()=>Uc,Position:()=>ie,Range:()=>Q,RenameFile:()=>ga,SelectedCompletionInfo:()=>vf,SelectionRange:()=>af,SemanticTokenModifiers:()=>of,SemanticTokenTypes:()=>sf,SemanticTokens:()=>lf,SignatureInformation:()=>Kc,StringValue:()=>mf,SymbolInformation:()=>Yc,SymbolKind:()=>qc,SymbolTag:()=>Hc,TextDocument:()=>Rf,TextDocumentEdit:()=>qi,TextDocumentIdentifier:()=>Pc,TextDocumentItem:()=>Oc,TextEdit:()=>Yt,URI:()=>Eo,VersionedTextDocumentIdentifier:()=>kc,WorkspaceChange:()=>Fg,WorkspaceEdit:()=>_o,WorkspaceFolder:()=>$f,WorkspaceSymbol:()=>Xc,integer:()=>Ac,uinteger:()=>Ki});var Rc,Eo,Ac,Ki,ie,Q,Wi,Ec,Co,Cc,bc,_c,Sc,bo,wc,Ic,Nc,Vi,nn,Yt,an,Ke,mr,qi,ya,ga,va,_o,ki,Ku,Fg,Pc,kc,Hi,Oc,So,Ta,Lc,Dc,xc,Mc,Gc,Fc,zc,jc,Yi,Bc,Uc,Kc,Wc,Vc,qc,Hc,Yc,Xc,Jc,Zc,Xi,Qc,ef,tf,rf,nf,af,sf,of,lf,uf,cf,ff,df,wo,Io,pf,mf,hf,yf,gf,vf,Tf,$f,zg,Rf,lh,A,xs=bI({"../../node_modules/.pnpm/vscode-languageserver-types@3.17.5/node_modules/vscode-languageserver-types/lib/esm/main.js"(){(function(e){function t(r){return typeof r=="string"}i(t,"is"),e.is=t})(Rc||(Rc={})),(function(e){function t(r){return typeof r=="string"}i(t,"is"),e.is=t})(Eo||(Eo={})),(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}i(t,"is"),e.is=t})(Ac||(Ac={})),(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}i(t,"is"),e.is=t})(Ki||(Ki={})),(function(e){function t(n,a){return n===Number.MAX_VALUE&&(n=Ki.MAX_VALUE),a===Number.MAX_VALUE&&(a=Ki.MAX_VALUE),{line:n,character:a}}i(t,"create"),e.create=t;function r(n){let a=n;return A.objectLiteral(a)&&A.uinteger(a.line)&&A.uinteger(a.character)}i(r,"is"),e.is=r})(ie||(ie={})),(function(e){function t(n,a,s,o){if(A.uinteger(n)&&A.uinteger(a)&&A.uinteger(s)&&A.uinteger(o))return{start:ie.create(n,a),end:ie.create(s,o)};if(ie.is(n)&&ie.is(a))return{start:n,end:a};throw new Error(`Range#create called with invalid arguments[${n}, ${a}, ${s}, ${o}]`)}i(t,"create"),e.create=t;function r(n){let a=n;return A.objectLiteral(a)&&ie.is(a.start)&&ie.is(a.end)}i(r,"is"),e.is=r})(Q||(Q={})),(function(e){function t(n,a){return{uri:n,range:a}}i(t,"create"),e.create=t;function r(n){let a=n;return A.objectLiteral(a)&&Q.is(a.range)&&(A.string(a.uri)||A.undefined(a.uri))}i(r,"is"),e.is=r})(Wi||(Wi={})),(function(e){function t(n,a,s,o){return{targetUri:n,targetRange:a,targetSelectionRange:s,originSelectionRange:o}}i(t,"create"),e.create=t;function r(n){let a=n;return A.objectLiteral(a)&&Q.is(a.targetRange)&&A.string(a.targetUri)&&Q.is(a.targetSelectionRange)&&(Q.is(a.originSelectionRange)||A.undefined(a.originSelectionRange))}i(r,"is"),e.is=r})(Ec||(Ec={})),(function(e){function t(n,a,s,o){return{red:n,green:a,blue:s,alpha:o}}i(t,"create"),e.create=t;function r(n){const a=n;return A.objectLiteral(a)&&A.numberRange(a.red,0,1)&&A.numberRange(a.green,0,1)&&A.numberRange(a.blue,0,1)&&A.numberRange(a.alpha,0,1)}i(r,"is"),e.is=r})(Co||(Co={})),(function(e){function t(n,a){return{range:n,color:a}}i(t,"create"),e.create=t;function r(n){const a=n;return A.objectLiteral(a)&&Q.is(a.range)&&Co.is(a.color)}i(r,"is"),e.is=r})(Cc||(Cc={})),(function(e){function t(n,a,s){return{label:n,textEdit:a,additionalTextEdits:s}}i(t,"create"),e.create=t;function r(n){const a=n;return A.objectLiteral(a)&&A.string(a.label)&&(A.undefined(a.textEdit)||Yt.is(a))&&(A.undefined(a.additionalTextEdits)||A.typedArray(a.additionalTextEdits,Yt.is))}i(r,"is"),e.is=r})(bc||(bc={})),(function(e){e.Comment="comment",e.Imports="imports",e.Region="region"})(_c||(_c={})),(function(e){function t(n,a,s,o,l,u){const c={startLine:n,endLine:a};return A.defined(s)&&(c.startCharacter=s),A.defined(o)&&(c.endCharacter=o),A.defined(l)&&(c.kind=l),A.defined(u)&&(c.collapsedText=u),c}i(t,"create"),e.create=t;function r(n){const a=n;return A.objectLiteral(a)&&A.uinteger(a.startLine)&&A.uinteger(a.startLine)&&(A.undefined(a.startCharacter)||A.uinteger(a.startCharacter))&&(A.undefined(a.endCharacter)||A.uinteger(a.endCharacter))&&(A.undefined(a.kind)||A.string(a.kind))}i(r,"is"),e.is=r})(Sc||(Sc={})),(function(e){function t(n,a){return{location:n,message:a}}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&Wi.is(a.location)&&A.string(a.message)}i(r,"is"),e.is=r})(bo||(bo={})),(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(wc||(wc={})),(function(e){e.Unnecessary=1,e.Deprecated=2})(Ic||(Ic={})),(function(e){function t(r){const n=r;return A.objectLiteral(n)&&A.string(n.href)}i(t,"is"),e.is=t})(Nc||(Nc={})),(function(e){function t(n,a,s,o,l,u){let c={range:n,message:a};return A.defined(s)&&(c.severity=s),A.defined(o)&&(c.code=o),A.defined(l)&&(c.source=l),A.defined(u)&&(c.relatedInformation=u),c}i(t,"create"),e.create=t;function r(n){var a;let s=n;return A.defined(s)&&Q.is(s.range)&&A.string(s.message)&&(A.number(s.severity)||A.undefined(s.severity))&&(A.integer(s.code)||A.string(s.code)||A.undefined(s.code))&&(A.undefined(s.codeDescription)||A.string((a=s.codeDescription)===null||a===void 0?void 0:a.href))&&(A.string(s.source)||A.undefined(s.source))&&(A.undefined(s.relatedInformation)||A.typedArray(s.relatedInformation,bo.is))}i(r,"is"),e.is=r})(Vi||(Vi={})),(function(e){function t(n,a,...s){let o={title:n,command:a};return A.defined(s)&&s.length>0&&(o.arguments=s),o}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&A.string(a.title)&&A.string(a.command)}i(r,"is"),e.is=r})(nn||(nn={})),(function(e){function t(s,o){return{range:s,newText:o}}i(t,"replace"),e.replace=t;function r(s,o){return{range:{start:s,end:s},newText:o}}i(r,"insert"),e.insert=r;function n(s){return{range:s,newText:""}}i(n,"del"),e.del=n;function a(s){const o=s;return A.objectLiteral(o)&&A.string(o.newText)&&Q.is(o.range)}i(a,"is"),e.is=a})(Yt||(Yt={})),(function(e){function t(n,a,s){const o={label:n};return a!==void 0&&(o.needsConfirmation=a),s!==void 0&&(o.description=s),o}i(t,"create"),e.create=t;function r(n){const a=n;return A.objectLiteral(a)&&A.string(a.label)&&(A.boolean(a.needsConfirmation)||a.needsConfirmation===void 0)&&(A.string(a.description)||a.description===void 0)}i(r,"is"),e.is=r})(an||(an={})),(function(e){function t(r){const n=r;return A.string(n)}i(t,"is"),e.is=t})(Ke||(Ke={})),(function(e){function t(s,o,l){return{range:s,newText:o,annotationId:l}}i(t,"replace"),e.replace=t;function r(s,o,l){return{range:{start:s,end:s},newText:o,annotationId:l}}i(r,"insert"),e.insert=r;function n(s,o){return{range:s,newText:"",annotationId:o}}i(n,"del"),e.del=n;function a(s){const o=s;return Yt.is(o)&&(an.is(o.annotationId)||Ke.is(o.annotationId))}i(a,"is"),e.is=a})(mr||(mr={})),(function(e){function t(n,a){return{textDocument:n,edits:a}}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&Hi.is(a.textDocument)&&Array.isArray(a.edits)}i(r,"is"),e.is=r})(qi||(qi={})),(function(e){function t(n,a,s){let o={kind:"create",uri:n};return a!==void 0&&(a.overwrite!==void 0||a.ignoreIfExists!==void 0)&&(o.options=a),s!==void 0&&(o.annotationId=s),o}i(t,"create"),e.create=t;function r(n){let a=n;return a&&a.kind==="create"&&A.string(a.uri)&&(a.options===void 0||(a.options.overwrite===void 0||A.boolean(a.options.overwrite))&&(a.options.ignoreIfExists===void 0||A.boolean(a.options.ignoreIfExists)))&&(a.annotationId===void 0||Ke.is(a.annotationId))}i(r,"is"),e.is=r})(ya||(ya={})),(function(e){function t(n,a,s,o){let l={kind:"rename",oldUri:n,newUri:a};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(l.options=s),o!==void 0&&(l.annotationId=o),l}i(t,"create"),e.create=t;function r(n){let a=n;return a&&a.kind==="rename"&&A.string(a.oldUri)&&A.string(a.newUri)&&(a.options===void 0||(a.options.overwrite===void 0||A.boolean(a.options.overwrite))&&(a.options.ignoreIfExists===void 0||A.boolean(a.options.ignoreIfExists)))&&(a.annotationId===void 0||Ke.is(a.annotationId))}i(r,"is"),e.is=r})(ga||(ga={})),(function(e){function t(n,a,s){let o={kind:"delete",uri:n};return a!==void 0&&(a.recursive!==void 0||a.ignoreIfNotExists!==void 0)&&(o.options=a),s!==void 0&&(o.annotationId=s),o}i(t,"create"),e.create=t;function r(n){let a=n;return a&&a.kind==="delete"&&A.string(a.uri)&&(a.options===void 0||(a.options.recursive===void 0||A.boolean(a.options.recursive))&&(a.options.ignoreIfNotExists===void 0||A.boolean(a.options.ignoreIfNotExists)))&&(a.annotationId===void 0||Ke.is(a.annotationId))}i(r,"is"),e.is=r})(va||(va={})),(function(e){function t(r){let n=r;return n&&(n.changes!==void 0||n.documentChanges!==void 0)&&(n.documentChanges===void 0||n.documentChanges.every(a=>A.string(a.kind)?ya.is(a)||ga.is(a)||va.is(a):qi.is(a)))}i(t,"is"),e.is=t})(_o||(_o={})),ki=class{static{i(this,"TextEditChangeImpl")}constructor(e,t){this.edits=e,this.changeAnnotations=t}insert(e,t,r){let n,a;if(r===void 0?n=Yt.insert(e,t):Ke.is(r)?(a=r,n=mr.insert(e,t,r)):(this.assertChangeAnnotations(this.changeAnnotations),a=this.changeAnnotations.manage(r),n=mr.insert(e,t,a)),this.edits.push(n),a!==void 0)return a}replace(e,t,r){let n,a;if(r===void 0?n=Yt.replace(e,t):Ke.is(r)?(a=r,n=mr.replace(e,t,r)):(this.assertChangeAnnotations(this.changeAnnotations),a=this.changeAnnotations.manage(r),n=mr.replace(e,t,a)),this.edits.push(n),a!==void 0)return a}delete(e,t){let r,n;if(t===void 0?r=Yt.del(e):Ke.is(t)?(n=t,r=mr.del(e,t)):(this.assertChangeAnnotations(this.changeAnnotations),n=this.changeAnnotations.manage(t),r=mr.del(e,n)),this.edits.push(r),n!==void 0)return n}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.")}},Ku=class{static{i(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(Ke.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()}},Fg=class{static{i(this,"WorkspaceChange")}constructor(e){this._textEditChanges=Object.create(null),e!==void 0?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new Ku(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach(t=>{if(qi.is(t)){const r=new ki(t.edits,this._changeAnnotations);this._textEditChanges[t.textDocument.uri]=r}})):e.changes&&Object.keys(e.changes).forEach(t=>{const r=new ki(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(Hi.is(e)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");const t={uri:e.uri,version:e.version};let r=this._textEditChanges[t.uri];if(!r){const n=[],a={textDocument:t,edits:n};this._workspaceEdit.documentChanges.push(a),r=new ki(n,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 ki(r),this._textEditChanges[e]=t}return t}}initDocumentChanges(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new Ku,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 n;an.is(t)||Ke.is(t)?n=t:r=t;let a,s;if(n===void 0?a=ya.create(e,r):(s=Ke.is(n)?n:this._changeAnnotations.manage(n),a=ya.create(e,r,s)),this._workspaceEdit.documentChanges.push(a),s!==void 0)return s}renameFile(e,t,r,n){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let a;an.is(r)||Ke.is(r)?a=r:n=r;let s,o;if(a===void 0?s=ga.create(e,t,n):(o=Ke.is(a)?a:this._changeAnnotations.manage(a),s=ga.create(e,t,n,o)),this._workspaceEdit.documentChanges.push(s),o!==void 0)return o}deleteFile(e,t,r){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");let n;an.is(t)||Ke.is(t)?n=t:r=t;let a,s;if(n===void 0?a=va.create(e,r):(s=Ke.is(n)?n:this._changeAnnotations.manage(n),a=va.create(e,r,s)),this._workspaceEdit.documentChanges.push(a),s!==void 0)return s}},(function(e){function t(n){return{uri:n}}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&A.string(a.uri)}i(r,"is"),e.is=r})(Pc||(Pc={})),(function(e){function t(n,a){return{uri:n,version:a}}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&A.string(a.uri)&&A.integer(a.version)}i(r,"is"),e.is=r})(kc||(kc={})),(function(e){function t(n,a){return{uri:n,version:a}}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&A.string(a.uri)&&(a.version===null||A.integer(a.version))}i(r,"is"),e.is=r})(Hi||(Hi={})),(function(e){function t(n,a,s,o){return{uri:n,languageId:a,version:s,text:o}}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&A.string(a.uri)&&A.string(a.languageId)&&A.integer(a.version)&&A.string(a.text)}i(r,"is"),e.is=r})(Oc||(Oc={})),(function(e){e.PlainText="plaintext",e.Markdown="markdown";function t(r){const n=r;return n===e.PlainText||n===e.Markdown}i(t,"is"),e.is=t})(So||(So={})),(function(e){function t(r){const n=r;return A.objectLiteral(r)&&So.is(n.kind)&&A.string(n.value)}i(t,"is"),e.is=t})(Ta||(Ta={})),(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})(Lc||(Lc={})),(function(e){e.PlainText=1,e.Snippet=2})(Dc||(Dc={})),(function(e){e.Deprecated=1})(xc||(xc={})),(function(e){function t(n,a,s){return{newText:n,insert:a,replace:s}}i(t,"create"),e.create=t;function r(n){const a=n;return a&&A.string(a.newText)&&Q.is(a.insert)&&Q.is(a.replace)}i(r,"is"),e.is=r})(Mc||(Mc={})),(function(e){e.asIs=1,e.adjustIndentation=2})(Gc||(Gc={})),(function(e){function t(r){const n=r;return n&&(A.string(n.detail)||n.detail===void 0)&&(A.string(n.description)||n.description===void 0)}i(t,"is"),e.is=t})(Fc||(Fc={})),(function(e){function t(r){return{label:r}}i(t,"create"),e.create=t})(zc||(zc={})),(function(e){function t(r,n){return{items:r||[],isIncomplete:!!n}}i(t,"create"),e.create=t})(jc||(jc={})),(function(e){function t(n){return n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}i(t,"fromPlainText"),e.fromPlainText=t;function r(n){const a=n;return A.string(a)||A.objectLiteral(a)&&A.string(a.language)&&A.string(a.value)}i(r,"is"),e.is=r})(Yi||(Yi={})),(function(e){function t(r){let n=r;return!!n&&A.objectLiteral(n)&&(Ta.is(n.contents)||Yi.is(n.contents)||A.typedArray(n.contents,Yi.is))&&(r.range===void 0||Q.is(r.range))}i(t,"is"),e.is=t})(Bc||(Bc={})),(function(e){function t(r,n){return n?{label:r,documentation:n}:{label:r}}i(t,"create"),e.create=t})(Uc||(Uc={})),(function(e){function t(r,n,...a){let s={label:r};return A.defined(n)&&(s.documentation=n),A.defined(a)?s.parameters=a:s.parameters=[],s}i(t,"create"),e.create=t})(Kc||(Kc={})),(function(e){e.Text=1,e.Read=2,e.Write=3})(Wc||(Wc={})),(function(e){function t(r,n){let a={range:r};return A.number(n)&&(a.kind=n),a}i(t,"create"),e.create=t})(Vc||(Vc={})),(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})(qc||(qc={})),(function(e){e.Deprecated=1})(Hc||(Hc={})),(function(e){function t(r,n,a,s,o){let l={name:r,kind:n,location:{uri:s,range:a}};return o&&(l.containerName=o),l}i(t,"create"),e.create=t})(Yc||(Yc={})),(function(e){function t(r,n,a,s){return s!==void 0?{name:r,kind:n,location:{uri:a,range:s}}:{name:r,kind:n,location:{uri:a}}}i(t,"create"),e.create=t})(Xc||(Xc={})),(function(e){function t(n,a,s,o,l,u){let c={name:n,detail:a,kind:s,range:o,selectionRange:l};return u!==void 0&&(c.children=u),c}i(t,"create"),e.create=t;function r(n){let a=n;return a&&A.string(a.name)&&A.number(a.kind)&&Q.is(a.range)&&Q.is(a.selectionRange)&&(a.detail===void 0||A.string(a.detail))&&(a.deprecated===void 0||A.boolean(a.deprecated))&&(a.children===void 0||Array.isArray(a.children))&&(a.tags===void 0||Array.isArray(a.tags))}i(r,"is"),e.is=r})(Jc||(Jc={})),(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"})(Zc||(Zc={})),(function(e){e.Invoked=1,e.Automatic=2})(Xi||(Xi={})),(function(e){function t(n,a,s){let o={diagnostics:n};return a!=null&&(o.only=a),s!=null&&(o.triggerKind=s),o}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&A.typedArray(a.diagnostics,Vi.is)&&(a.only===void 0||A.typedArray(a.only,A.string))&&(a.triggerKind===void 0||a.triggerKind===Xi.Invoked||a.triggerKind===Xi.Automatic)}i(r,"is"),e.is=r})(Qc||(Qc={})),(function(e){function t(n,a,s){let o={title:n},l=!0;return typeof a=="string"?(l=!1,o.kind=a):nn.is(a)?o.command=a:o.edit=a,l&&s!==void 0&&(o.kind=s),o}i(t,"create"),e.create=t;function r(n){let a=n;return a&&A.string(a.title)&&(a.diagnostics===void 0||A.typedArray(a.diagnostics,Vi.is))&&(a.kind===void 0||A.string(a.kind))&&(a.edit!==void 0||a.command!==void 0)&&(a.command===void 0||nn.is(a.command))&&(a.isPreferred===void 0||A.boolean(a.isPreferred))&&(a.edit===void 0||_o.is(a.edit))}i(r,"is"),e.is=r})(ef||(ef={})),(function(e){function t(n,a){let s={range:n};return A.defined(a)&&(s.data=a),s}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&Q.is(a.range)&&(A.undefined(a.command)||nn.is(a.command))}i(r,"is"),e.is=r})(tf||(tf={})),(function(e){function t(n,a){return{tabSize:n,insertSpaces:a}}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&A.uinteger(a.tabSize)&&A.boolean(a.insertSpaces)}i(r,"is"),e.is=r})(rf||(rf={})),(function(e){function t(n,a,s){return{range:n,target:a,data:s}}i(t,"create"),e.create=t;function r(n){let a=n;return A.defined(a)&&Q.is(a.range)&&(A.undefined(a.target)||A.string(a.target))}i(r,"is"),e.is=r})(nf||(nf={})),(function(e){function t(n,a){return{range:n,parent:a}}i(t,"create"),e.create=t;function r(n){let a=n;return A.objectLiteral(a)&&Q.is(a.range)&&(a.parent===void 0||e.is(a.parent))}i(r,"is"),e.is=r})(af||(af={})),(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"})(sf||(sf={})),(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"})(of||(of={})),(function(e){function t(r){const n=r;return A.objectLiteral(n)&&(n.resultId===void 0||typeof n.resultId=="string")&&Array.isArray(n.data)&&(n.data.length===0||typeof n.data[0]=="number")}i(t,"is"),e.is=t})(lf||(lf={})),(function(e){function t(n,a){return{range:n,text:a}}i(t,"create"),e.create=t;function r(n){const a=n;return a!=null&&Q.is(a.range)&&A.string(a.text)}i(r,"is"),e.is=r})(uf||(uf={})),(function(e){function t(n,a,s){return{range:n,variableName:a,caseSensitiveLookup:s}}i(t,"create"),e.create=t;function r(n){const a=n;return a!=null&&Q.is(a.range)&&A.boolean(a.caseSensitiveLookup)&&(A.string(a.variableName)||a.variableName===void 0)}i(r,"is"),e.is=r})(cf||(cf={})),(function(e){function t(n,a){return{range:n,expression:a}}i(t,"create"),e.create=t;function r(n){const a=n;return a!=null&&Q.is(a.range)&&(A.string(a.expression)||a.expression===void 0)}i(r,"is"),e.is=r})(ff||(ff={})),(function(e){function t(n,a){return{frameId:n,stoppedLocation:a}}i(t,"create"),e.create=t;function r(n){const a=n;return A.defined(a)&&Q.is(n.stoppedLocation)}i(r,"is"),e.is=r})(df||(df={})),(function(e){e.Type=1,e.Parameter=2;function t(r){return r===1||r===2}i(t,"is"),e.is=t})(wo||(wo={})),(function(e){function t(n){return{value:n}}i(t,"create"),e.create=t;function r(n){const a=n;return A.objectLiteral(a)&&(a.tooltip===void 0||A.string(a.tooltip)||Ta.is(a.tooltip))&&(a.location===void 0||Wi.is(a.location))&&(a.command===void 0||nn.is(a.command))}i(r,"is"),e.is=r})(Io||(Io={})),(function(e){function t(n,a,s){const o={position:n,label:a};return s!==void 0&&(o.kind=s),o}i(t,"create"),e.create=t;function r(n){const a=n;return A.objectLiteral(a)&&ie.is(a.position)&&(A.string(a.label)||A.typedArray(a.label,Io.is))&&(a.kind===void 0||wo.is(a.kind))&&a.textEdits===void 0||A.typedArray(a.textEdits,Yt.is)&&(a.tooltip===void 0||A.string(a.tooltip)||Ta.is(a.tooltip))&&(a.paddingLeft===void 0||A.boolean(a.paddingLeft))&&(a.paddingRight===void 0||A.boolean(a.paddingRight))}i(r,"is"),e.is=r})(pf||(pf={})),(function(e){function t(r){return{kind:"snippet",value:r}}i(t,"createSnippet"),e.createSnippet=t})(mf||(mf={})),(function(e){function t(r,n,a,s){return{insertText:r,filterText:n,range:a,command:s}}i(t,"create"),e.create=t})(hf||(hf={})),(function(e){function t(r){return{items:r}}i(t,"create"),e.create=t})(yf||(yf={})),(function(e){e.Invoked=0,e.Automatic=1})(gf||(gf={})),(function(e){function t(r,n){return{range:r,text:n}}i(t,"create"),e.create=t})(vf||(vf={})),(function(e){function t(r,n){return{triggerKind:r,selectedCompletionInfo:n}}i(t,"create"),e.create=t})(Tf||(Tf={})),(function(e){function t(r){const n=r;return A.objectLiteral(n)&&Eo.is(n.uri)&&A.string(n.name)}i(t,"is"),e.is=t})($f||($f={})),zg=[` `,`\r `,"\r"],(function(e){function t(s,o,l,u){return new lh(s,o,l,u)}i(t,"create"),e.create=t;function r(s){let o=s;return!!(A.defined(o)&&A.string(o.uri)&&(A.undefined(o.languageId)||A.string(o.languageId))&&A.uinteger(o.lineCount)&&A.func(o.getText)&&A.func(o.positionAt)&&A.func(o.offsetAt))}i(r,"is"),e.is=r;function n(s,o){let l=s.getText(),u=a(o,(f,d)=>{let m=f.range.start.line-d.range.start.line;return m===0?f.range.start.character-d.range.start.character:m}),c=l.length;for(let f=u.length-1;f>=0;f--){let d=u[f],m=s.offsetAt(d.range.start),g=s.offsetAt(d.range.end);if(g<=c)l=l.substring(0,m)+d.newText+l.substring(g,l.length);else throw new Error("Overlapping edit");c=m}return l}i(n,"applyEdits"),e.applyEdits=n;function a(s,o){if(s.length<=1)return s;const l=s.length/2|0,u=s.slice(0,l),c=s.slice(l);a(u,o),a(c,o);let f=0,d=0,m=0;for(;f({domains:new Map,transitions:[]}),"createDefaultData"),H=rt(),St=s(()=>H.domains,"getDomains"),Mt=s(()=>H.transitions,"getTransitions"),zt=s(t=>{if(t)for(const e of t){const n=e.domain,a=(e.items??[]).map(c=>({label:c.label}));H.domains.set(n,{name:n,items:a})}},"setDomains"),Lt=s(t=>{t&&(H.transitions=t.filter(e=>e.from===e.to?(O.warn(`Cynefin: self-loop transition on domain "${e.from}" is not meaningful and will be skipped.`),!1):!0).map(e=>({from:e.from,to:e.to,label:e.label||void 0})))},"setTransitions"),Nt=s(()=>U({...At.cynefin,...Q().cynefin}),"getConfig"),Pt=s(()=>{Tt(),H=rt()},"clear"),Y={getDomains:St,getTransitions:Mt,setDomains:zt,setTransitions:Lt,getConfig:Nt,clear:Pt,setAccTitle:vt,getAccTitle:Ct,setDiagramTitle:wt,getDiagramTitle:bt,getAccDescription:$t,setAccDescription:gt},Wt=s(t=>{xt(t,Y),Y.setDomains(t.domains),Y.setTransitions(t.transitions)},"populate"),It={parse:s(async t=>{const e=await Bt("cynefin",t);O.debug(e),Wt(e)},"parse")};function E(t){let e=t+1831565813|0;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}s(E,"seededRandom");function st(t){let e=0;for(let n=0;n{const n=t/2,a=e/2;return{complex:{cx:n/2,cy:a/2,x:0,y:0,w:n,h:a},complicated:{cx:n+n/2,cy:a/2,x:n,y:0,w:n,h:a},chaotic:{cx:n/2,cy:a+a/2,x:0,y:a,w:n,h:a},clear:{cx:n+n/2,cy:a+a/2,x:n,y:a,w:n,h:a},confusion:{cx:n,cy:a,x:n*.7,y:a*.7,w:n*.6,h:a*.6}}},"getDomainLayouts"),Rt=s(()=>{const t=ot(),e=Q();return U(t,e.themeVariables).cynefin},"getCynefinDomainColors"),q=3,_t=s((t,e,n,a)=>{const c=a.db,m=c.getDomains(),v=c.getTransitions(),I=c.getDiagramTitle(),d=c.getAccTitle(),D=c.getAccDescription(),o=c.getConfig(),p=Rt();O.debug("Rendering Cynefin diagram");const i=o.width,f=o.height,b=o.padding,h=o.showDomainDescriptions,F=o.boundaryAmplitude,R=i+b*2,_=f+b*2,z={complex:p.complexBg,complicated:p.complicatedBg,clear:p.clearBg,chaotic:p.chaoticBg,confusion:p.confusionBg},k=Dt(e);kt(k,_,R,o.useMaxWidth??!0),k.attr("viewBox",`0 0 ${R} ${_}`),d&&k.append("title").text(d),D&&k.append("desc").text(D);const T=k.append("g").attr("transform",`translate(${b}, ${b})`),V=Ft(i,f),Z=it(o.seed,e),mt=T.append("g").attr("class","cynefin-backgrounds"),X=["complex","complicated","chaotic","clear"];for(const l of X){const r=V[l];mt.append("rect").attr("class","cynefinDomain").attr("x",r.x).attr("y",r.y).attr("width",r.w).attr("height",r.h).attr("fill",z[l]).attr("fill-opacity",.4).attr("stroke","none")}const j=T.append("g").attr("class","cynefin-boundaries");j.append("path").attr("class","cynefinBoundary").attr("d",ct(i,f,Z,F)).attr("fill","none"),j.append("path").attr("class","cynefinBoundary").attr("d",lt(i,f,Z+100,F)).attr("fill","none"),j.append("path").attr("class","cynefinCliff").attr("d",dt(i,f)).attr("fill","none");const pt=i*.15,yt=f*.15;T.append("path").attr("class","cynefinConfusion").attr("d",ft(i/2,f/2,pt,yt)).attr("fill",z.confusion).attr("fill-opacity",.5);const J=T.append("g").attr("class","cynefin-labels");for(const l of X){const r=V[l];J.append("text").attr("class","cynefinDomainLabel").attr("x",r.cx).attr("y",h?r.cy-30:r.cy).attr("text-anchor","middle").attr("dominant-baseline","middle").text(l.charAt(0).toUpperCase()+l.slice(1))}if(J.append("text").attr("class","cynefinDomainLabel").attr("x",i/2).attr("y",h?f/2-10:f/2).attr("text-anchor","middle").attr("dominant-baseline","middle").text("Confusion"),h){const l=T.append("g").attr("class","cynefin-subtitles");for(const r of X){const u=V[r],y=at[r];l.append("text").attr("class","cynefinSubtitle").attr("x",u.cx).attr("y",u.cy-10).attr("text-anchor","middle").attr("dominant-baseline","middle").text(y.model),l.append("text").attr("class","cynefinSubtitle").attr("x",u.cx).attr("y",u.cy+5).attr("text-anchor","middle").attr("dominant-baseline","middle").text(y.practice)}l.append("text").attr("class","cynefinSubtitle").attr("x",i/2).attr("y",f/2+8).attr("text-anchor","middle").attr("dominant-baseline","middle").text(at.confusion.practice)}const K=T.append("g").attr("class","cynefin-items"),A=26,tt=10,ut=["complex","complicated","chaotic","clear","confusion"];for(const l of ut){const r=m.get(l);if(!r||r.items.length===0)continue;const u=V[l],y=l==="confusion";let L=r.items,N=0;y&&r.items.length>q&&(N=r.items.length-q,L=r.items.slice(0,q));let B;if(y){const g=h?22:14;B=u.cy+g}else B=u.cy+(h?25:15);if([...L].forEach((g,S)=>{const w=B+S*(A+4),M=K.append("g"),P=M.append("text").attr("class","cynefinItemText").attr("x",0).attr("y",A/2).attr("text-anchor","middle").attr("dominant-baseline","central").text(g.label);let $=g.label.length*7;const x=P.node();if(x&&typeof x.getBBox=="function"){const G=x.getBBox();G.width>0&&($=G.width)}const C=$+tt*2,W=u.cx-C/2;M.attr("transform",`translate(${W}, ${w})`),M.insert("rect","text").attr("class","cynefinItem").attr("x",0).attr("y",0).attr("width",C).attr("height",A).attr("rx",4).attr("ry",4).attr("fill",z[l]).attr("fill-opacity",.95),P.attr("x",C/2).attr("y",A/2)}),N>0){const g=B+L.length*(A+4),S=`+${N} more`,w=K.append("g"),M=w.append("text").attr("class","cynefinItemText").attr("x",0).attr("y",A/2).attr("text-anchor","middle").attr("dominant-baseline","central").text(S);let P=S.length*7;const $=M.node();if($&&typeof $.getBBox=="function"){const W=$.getBBox();W.width>0&&(P=W.width)}const x=P+tt*2,C=u.cx-x/2;w.attr("transform",`translate(${C}, ${g})`),w.insert("rect","text").attr("class","cynefinItemOverflow").attr("x",0).attr("y",0).attr("width",x).attr("height",A).attr("rx",4).attr("ry",4).attr("fill",z[l]).attr("fill-opacity",.6),M.attr("x",x/2).attr("y",A/2)}}if(v.length>0){const l=k.select("defs").empty()?k.append("defs"):k.select("defs"),r=`cynefin-arrow-${e}`;l.append("marker").attr("id",r).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("class","cynefinArrowHead");const u=T.append("g").attr("class","cynefin-arrows");v.forEach(y=>{const L=V[y.from],N=V[y.to];if(!L||!N)return;if(y.from===y.to){O.warn(`Cynefin renderer: skipping self-loop on domain "${y.from}"`);return}const B=L.cx,g=L.cy,S=N.cx,w=N.cy,M=(B+S)/2,P=(g+w)/2,$=S-B,x=w-g,C=Math.sqrt($*$+x*x),W=C*.15,G=-x/C,ht=$/C,et=M+G*W,nt=P+ht*W;u.append("path").attr("class","cynefinArrowLine").attr("d",`M${B},${g} Q${et},${nt} ${S},${w}`).attr("fill","none").attr("marker-end",`url(#${r})`),y.label&&u.append("text").attr("class","cynefinArrowLabel").attr("x",et).attr("y",nt-6).attr("text-anchor","middle").attr("dominant-baseline","auto").text(y.label)})}I&&T.append("text").attr("class","cynefinTitle").attr("x",i/2).attr("y",-b/2).attr("text-anchor","middle").attr("dominant-baseline","middle").text(I)},"draw"),Vt={draw:_t},Et=s(()=>{const t=ot(),e=Q();return U(t,e.themeVariables).cynefin},"getCynefinTheme"),Ht=s(()=>{const t=Et();return` + .cynefinDomain { + stroke: none; + } + .cynefinDomainLabel { + font-size: ${t.domainFontSize}px; + font-weight: bold; + fill: ${t.labelColor}; + } + .cynefinSubtitle { + font-size: ${t.itemFontSize-1}px; + fill: ${t.textColor}; + font-style: italic; + } + .cynefinItem { + fill-opacity: 0.95; + stroke: ${t.boundaryColor}; + stroke-width: 1; + } + .cynefinItemText { + font-size: ${t.itemFontSize}px; + fill: ${t.textColor}; + } + .cynefinItemOverflow { + fill-opacity: 0.6; + stroke: ${t.boundaryColor}; + stroke-width: 1; + stroke-dasharray: 3 2; + } + .cynefinBoundary { + stroke: ${t.boundaryColor}; + stroke-width: ${t.boundaryWidth}; + stroke-dasharray: 6 3; + } + .cynefinCliff { + stroke: ${t.cliffColor}; + stroke-width: ${t.cliffWidth}; + } + .cynefinConfusion { + stroke: ${t.boundaryColor}; + stroke-width: 1.5; + stroke-dasharray: 4 2; + } + .cynefinArrowLine { + stroke: ${t.arrowColor}; + stroke-width: ${t.arrowWidth}; + fill: none; + } + .cynefinArrowHead { + fill: ${t.arrowColor}; + stroke: none; + } + .cynefinArrowLabel { + font-size: ${t.itemFontSize-1}px; + fill: ${t.textColor}; + } + .cynefinTitle { + font-size: ${t.domainFontSize+2}px; + font-weight: bold; + fill: ${t.labelColor}; + } + `},"styles"),Gt=Ht,qt={parser:It,db:Y,renderer:Vt,styles:Gt};export{qt as diagram}; diff --git a/apps/kimi-code/dist-web/assets/cynefinDiagram-TSTJHNR4-BtxdUqIq.js b/apps/kimi-code/dist-web/assets/cynefinDiagram-TSTJHNR4-BtxdUqIq.js deleted file mode 100644 index 2fbdb1e4a..000000000 --- a/apps/kimi-code/dist-web/assets/cynefinDiagram-TSTJHNR4-BtxdUqIq.js +++ /dev/null @@ -1,62 +0,0 @@ -import{p as xt}from"./chunk-JWPE2WC7-BxqMRrNb.js";import{s as gt,g as $t,o as bt,n as wt,a as Ct,b as vt,_ as s,l as O,D as Dt,e as kt,p as At,A as U,y as Q,B as Tt,E as ot}from"./mermaid.core-CgZTgv7Y.js";import{p as Bt}from"./cynefin-VYW2F7L2-DYKf_Z-v.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var rt=s(()=>({domains:new Map,transitions:[]}),"createDefaultData"),H=rt(),St=s(()=>H.domains,"getDomains"),Mt=s(()=>H.transitions,"getTransitions"),zt=s(t=>{if(t)for(const e of t){const n=e.domain,a=(e.items??[]).map(c=>({label:c.label}));H.domains.set(n,{name:n,items:a})}},"setDomains"),Lt=s(t=>{t&&(H.transitions=t.filter(e=>e.from===e.to?(O.warn(`Cynefin: self-loop transition on domain "${e.from}" is not meaningful and will be skipped.`),!1):!0).map(e=>({from:e.from,to:e.to,label:e.label||void 0})))},"setTransitions"),Nt=s(()=>U({...Tt.cynefin,...Q().cynefin}),"getConfig"),Pt=s(()=>{At(),H=rt()},"clear"),Y={getDomains:St,getTransitions:Mt,setDomains:zt,setTransitions:Lt,getConfig:Nt,clear:Pt,setAccTitle:vt,getAccTitle:Ct,setDiagramTitle:wt,getDiagramTitle:bt,getAccDescription:$t,setAccDescription:gt},It=s(t=>{xt(t,Y),Y.setDomains(t.domains),Y.setTransitions(t.transitions)},"populate"),Wt={parse:s(async t=>{const e=await Bt("cynefin",t);O.debug(e),It(e)},"parse")};function V(t){let e=t+1831565813|0;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}s(V,"seededRandom");function st(t){let e=0;for(let n=0;n{const n=t/2,a=e/2;return{complex:{cx:n/2,cy:a/2,x:0,y:0,w:n,h:a},complicated:{cx:n+n/2,cy:a/2,x:n,y:0,w:n,h:a},chaotic:{cx:n/2,cy:a+a/2,x:0,y:a,w:n,h:a},clear:{cx:n+n/2,cy:a+a/2,x:n,y:a,w:n,h:a},confusion:{cx:n,cy:a,x:n*.7,y:a*.7,w:n*.6,h:a*.6}}},"getDomainLayouts"),_t=s(()=>{const t=ot(),e=Q();return U(t,e.themeVariables).cynefin},"getCynefinDomainColors"),q=3,Et=s((t,e,n,a)=>{const c=a.db,m=c.getDomains(),v=c.getTransitions(),W=c.getDiagramTitle(),d=c.getAccTitle(),D=c.getAccDescription(),o=c.getConfig(),p=_t();O.debug("Rendering Cynefin diagram");const i=o.width,f=o.height,b=o.padding,h=o.showDomainDescriptions,R=o.boundaryAmplitude,_=i+b*2,E=f+b*2,z={complex:p.complexBg,complicated:p.complicatedBg,clear:p.clearBg,chaotic:p.chaoticBg,confusion:p.confusionBg},k=Dt(e);kt(k,E,_,o.useMaxWidth??!0),k.attr("viewBox",`0 0 ${_} ${E}`),d&&k.append("title").text(d),D&&k.append("desc").text(D);const A=k.append("g").attr("transform",`translate(${b}, ${b})`),F=Rt(i,f),Z=it(o.seed,e),mt=A.append("g").attr("class","cynefin-backgrounds"),X=["complex","complicated","chaotic","clear"];for(const l of X){const r=F[l];mt.append("rect").attr("class","cynefinDomain").attr("x",r.x).attr("y",r.y).attr("width",r.w).attr("height",r.h).attr("fill",z[l]).attr("fill-opacity",.4).attr("stroke","none")}const j=A.append("g").attr("class","cynefin-boundaries");j.append("path").attr("class","cynefinBoundary").attr("d",ct(i,f,Z,R)).attr("fill","none"),j.append("path").attr("class","cynefinBoundary").attr("d",lt(i,f,Z+100,R)).attr("fill","none"),j.append("path").attr("class","cynefinCliff").attr("d",dt(i,f)).attr("fill","none");const pt=i*.15,yt=f*.15;A.append("path").attr("class","cynefinConfusion").attr("d",ft(i/2,f/2,pt,yt)).attr("fill",z.confusion).attr("fill-opacity",.5);const J=A.append("g").attr("class","cynefin-labels");for(const l of X){const r=F[l];J.append("text").attr("class","cynefinDomainLabel").attr("x",r.cx).attr("y",h?r.cy-30:r.cy).attr("text-anchor","middle").attr("dominant-baseline","middle").text(l.charAt(0).toUpperCase()+l.slice(1))}if(J.append("text").attr("class","cynefinDomainLabel").attr("x",i/2).attr("y",h?f/2-10:f/2).attr("text-anchor","middle").attr("dominant-baseline","middle").text("Confusion"),h){const l=A.append("g").attr("class","cynefin-subtitles");for(const r of X){const u=F[r],y=at[r];l.append("text").attr("class","cynefinSubtitle").attr("x",u.cx).attr("y",u.cy-10).attr("text-anchor","middle").attr("dominant-baseline","middle").text(y.model),l.append("text").attr("class","cynefinSubtitle").attr("x",u.cx).attr("y",u.cy+5).attr("text-anchor","middle").attr("dominant-baseline","middle").text(y.practice)}l.append("text").attr("class","cynefinSubtitle").attr("x",i/2).attr("y",f/2+8).attr("text-anchor","middle").attr("dominant-baseline","middle").text(at.confusion.practice)}const K=A.append("g").attr("class","cynefin-items"),T=26,tt=10,ut=["complex","complicated","chaotic","clear","confusion"];for(const l of ut){const r=m.get(l);if(!r||r.items.length===0)continue;const u=F[l],y=l==="confusion";let L=r.items,N=0;y&&r.items.length>q&&(N=r.items.length-q,L=r.items.slice(0,q));let B;if(y){const g=h?22:14;B=u.cy+g}else B=u.cy+(h?25:15);if([...L].forEach((g,S)=>{const w=B+S*(T+4),M=K.append("g"),P=M.append("text").attr("class","cynefinItemText").attr("x",0).attr("y",T/2).attr("text-anchor","middle").attr("dominant-baseline","central").text(g.label);let $=g.label.length*7;const x=P.node();if(x&&typeof x.getBBox=="function"){const G=x.getBBox();G.width>0&&($=G.width)}const C=$+tt*2,I=u.cx-C/2;M.attr("transform",`translate(${I}, ${w})`),M.insert("rect","text").attr("class","cynefinItem").attr("x",0).attr("y",0).attr("width",C).attr("height",T).attr("rx",4).attr("ry",4).attr("fill",z[l]).attr("fill-opacity",.95),P.attr("x",C/2).attr("y",T/2)}),N>0){const g=B+L.length*(T+4),S=`+${N} more`,w=K.append("g"),M=w.append("text").attr("class","cynefinItemText").attr("x",0).attr("y",T/2).attr("text-anchor","middle").attr("dominant-baseline","central").text(S);let P=S.length*7;const $=M.node();if($&&typeof $.getBBox=="function"){const I=$.getBBox();I.width>0&&(P=I.width)}const x=P+tt*2,C=u.cx-x/2;w.attr("transform",`translate(${C}, ${g})`),w.insert("rect","text").attr("class","cynefinItemOverflow").attr("x",0).attr("y",0).attr("width",x).attr("height",T).attr("rx",4).attr("ry",4).attr("fill",z[l]).attr("fill-opacity",.6),M.attr("x",x/2).attr("y",T/2)}}if(v.length>0){const l=k.select("defs").empty()?k.append("defs"):k.select("defs"),r=`cynefin-arrow-${e}`;l.append("marker").attr("id",r).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("class","cynefinArrowHead");const u=A.append("g").attr("class","cynefin-arrows");v.forEach(y=>{const L=F[y.from],N=F[y.to];if(!L||!N)return;if(y.from===y.to){O.warn(`Cynefin renderer: skipping self-loop on domain "${y.from}"`);return}const B=L.cx,g=L.cy,S=N.cx,w=N.cy,M=(B+S)/2,P=(g+w)/2,$=S-B,x=w-g,C=Math.sqrt($*$+x*x),I=C*.15,G=-x/C,ht=$/C,et=M+G*I,nt=P+ht*I;u.append("path").attr("class","cynefinArrowLine").attr("d",`M${B},${g} Q${et},${nt} ${S},${w}`).attr("fill","none").attr("marker-end",`url(#${r})`),y.label&&u.append("text").attr("class","cynefinArrowLabel").attr("x",et).attr("y",nt-6).attr("text-anchor","middle").attr("dominant-baseline","auto").text(y.label)})}W&&A.append("text").attr("class","cynefinTitle").attr("x",i/2).attr("y",-b/2).attr("text-anchor","middle").attr("dominant-baseline","middle").text(W)},"draw"),Ft={draw:Et},Vt=s(()=>{const t=ot(),e=Q();return U(t,e.themeVariables).cynefin},"getCynefinTheme"),Ht=s(()=>{const t=Vt();return` - .cynefinDomain { - stroke: none; - } - .cynefinDomainLabel { - font-size: ${t.domainFontSize}px; - font-weight: bold; - fill: ${t.labelColor}; - } - .cynefinSubtitle { - font-size: ${t.itemFontSize-1}px; - fill: ${t.textColor}; - font-style: italic; - } - .cynefinItem { - fill-opacity: 0.95; - stroke: ${t.boundaryColor}; - stroke-width: 1; - } - .cynefinItemText { - font-size: ${t.itemFontSize}px; - fill: ${t.textColor}; - } - .cynefinItemOverflow { - fill-opacity: 0.6; - stroke: ${t.boundaryColor}; - stroke-width: 1; - stroke-dasharray: 3 2; - } - .cynefinBoundary { - stroke: ${t.boundaryColor}; - stroke-width: ${t.boundaryWidth}; - stroke-dasharray: 6 3; - } - .cynefinCliff { - stroke: ${t.cliffColor}; - stroke-width: ${t.cliffWidth}; - } - .cynefinConfusion { - stroke: ${t.boundaryColor}; - stroke-width: 1.5; - stroke-dasharray: 4 2; - } - .cynefinArrowLine { - stroke: ${t.arrowColor}; - stroke-width: ${t.arrowWidth}; - fill: none; - } - .cynefinArrowHead { - fill: ${t.arrowColor}; - stroke: none; - } - .cynefinArrowLabel { - font-size: ${t.itemFontSize-1}px; - fill: ${t.textColor}; - } - .cynefinTitle { - font-size: ${t.domainFontSize+2}px; - font-weight: bold; - fill: ${t.labelColor}; - } - `},"styles"),Gt=Ht,Ut={parser:Wt,db:Y,renderer:Ft,styles:Gt};export{Ut as diagram}; diff --git a/apps/kimi-code/dist-web/assets/dagre-VKFMJZFB-4bDkTcg2.js b/apps/kimi-code/dist-web/assets/dagre-VKFMJZFB-4bDkTcg2.js deleted file mode 100644 index a5ff73723..000000000 --- a/apps/kimi-code/dist-web/assets/dagre-VKFMJZFB-4bDkTcg2.js +++ /dev/null @@ -1,4 +0,0 @@ -import{c as O,w as I,a as J,f as P,b as E,s as A}from"./chunk-RYQCIY6F-Csv6QbcC.js";import{_ as w,am as v,an as D,ao as H,ap as Y,l,c as _,aq as W,ar as $,ag as j,as as q,ah as R,af as F,at as z,au as K,av as G}from"./mermaid.core-CgZTgv7Y.js";import{G as Q}from"./graph-DOmOIIwC.js";import{l as U}from"./layout-D-LzfAck.js";import"./map-DxJ2ADlA.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var C=w((s,t,g)=>Math.max(t,Math.min(g,s)),"clamp"),B=w((s="TB")=>{switch(s){case"BT":return"bottom";case"LR":return"right";case"RL":return"left";case"TB":default:return"top"}},"getDefaultSelfLoopSide"),V=w(s=>s==="flowchart"||s==="flowchart-v2"||s==="stateDiagram","shouldMergeSelfLoopSegments"),Z=w((s,t,g,m,c)=>{const o=[],r=new Set;if(g.forEach(({start:i,end:n})=>{i!==m&&r.add(i),n!==m&&r.add(n)}),r.forEach(i=>{const n=s.node(i);typeof n?.x=="number"&&typeof n?.y=="number"&&o.push(n)}),o.length===0&&g.forEach(({edge:i})=>{(i.points??[]).forEach(n=>{typeof n?.x=="number"&&typeof n?.y=="number"&&o.push(n)})}),o.length===0)return B(c);const f=o.reduce((i,n)=>({x:i.x+n.x/o.length,y:i.y+n.y/o.length}),{x:0,y:0}),h=f.x-t.x,a=f.y-t.y;return Math.abs(h)>Math.abs(a)?h>0?"right":"left":Math.abs(a)>0?a>0?"bottom":"top":B(c)},"getSelfLoopSide"),ee=w((s,t="top",g=0,m=0)=>{const c=s.x,o=s.y-g,r=s.width/2,f=s.height/2,h=Math.max(36,Math.min(100,s.width*.8)),a=C(Math.max(m,s.width*.35),36,h),i=C(Math.min(s.width,s.height)*.45,24,48);switch(t){case"bottom":{const n=o+f;return[{x:c-a/2,y:n},{x:c-a/2,y:n+i},{x:c+a/2,y:n+i},{x:c+a/2,y:n}]}case"right":{const n=c+r;return[{x:n,y:o-a/2},{x:n+i,y:o-a/2},{x:n+i,y:o+a/2},{x:n,y:o+a/2}]}case"left":{const n=c-r;return[{x:n,y:o-a/2},{x:n-i,y:o-a/2},{x:n-i,y:o+a/2},{x:n,y:o+a/2}]}case"top":default:{const n=o-f;return[{x:c-a/2,y:n},{x:c-a/2,y:n-i},{x:c+a/2,y:n-i},{x:c+a/2,y:n}]}}},"getSelfLoopPoints"),te=w((s,t,g="top",m=0,c={})=>{const r=s.x,f=s.y-m,h=c.width??0,a=c.height??0;switch(g){case"bottom":return{x:r,y:Math.max(...t.map(i=>i.y))+a/2+4};case"right":return{x:Math.max(...t.map(i=>i.x))+h/2+4,y:f};case"left":return{x:Math.min(...t.map(i=>i.x))-h/2-4,y:f};case"top":default:return{x:r,y:Math.min(...t.map(i=>i.y))-a/2-4}}},"getSelfLoopLabelPosition"),ne=w((s,t=0,{mergeSelfLoops:g=!0}={})=>{const m=new Map,c=[],o=s.graph()?.rankdir;return s.edges().forEach(r=>{const f=s.edge(r);if(g&&f.selfLoop){const h=f.selfLoop.id;m.has(h)||m.set(h,[]),m.get(h).push({edge:f,start:r.v,end:r.w})}else c.push({edge:f,start:r.v,end:r.w})}),m.forEach(r=>{if(r.length!==3){r.forEach(L=>c.push(L));return}r.sort((L,d)=>L.edge.selfLoop.order-d.edge.selfLoop.order);const[f,h,a]=r,i=f.edge.originalEdge??h.edge.originalEdge??a.edge.originalEdge??h.edge,n=s.node(i.start);if(!n){r.forEach(L=>c.push(L));return}const p={width:h.edge.width,height:h.edge.height},y=Z(s,n,r,i.start,o),X=ee(n,y,t,p.width??0),S=te(n,X,y,t,p),b={...h.edge,...i,id:i.id,points:X,start:i.start,end:i.end,x:S.x,y:S.y,width:p.width,height:p.height,labelStyle:h.edge.labelStyle,fromCluster:f.edge.fromCluster??h.edge.fromCluster??a.edge.fromCluster,toCluster:f.edge.toCluster??h.edge.toCluster??a.edge.toCluster};delete b.selfLoop,delete b.originalEdge,c.push({edge:b,start:b.start,end:b.end})}),c},"getEdgesToRender"),T=w(async(s,t,g,m,c,o)=>{l.warn("Graph in recursive render:XAX",I(t),c);const r=t.graph().rankdir;l.trace("Dir in recursive render - dir:",r);const f=s.insert("g").attr("class","root");t.nodes()?l.info("Recursive render XXX",t.nodes()):l.info("No nodes found for",t),t.edges().length>0&&l.info("Recursive edges",t.edge(t.edges()[0]));const h=f.insert("g").attr("class","clusters"),a=f.insert("g").attr("class","edgePaths"),i=f.insert("g").attr("class","edgeLabels"),n=f.insert("g").attr("class","nodes"),p=V(g);await Promise.all(t.nodes().map(async function(d){const e=t.node(d);if(c!==void 0){const u=JSON.parse(JSON.stringify(c.clusterData));l.trace(`Setting data for parent cluster XXX - Node.id = `,d,` - data=`,u.height,` -Parent cluster`,c.height),t.setNode(c.id,u),t.parent(d)||(l.trace("Setting parent",d,c.id),t.setParent(d,c.id,u))}if(l.info("(Insert) Node XXX"+d+": "+JSON.stringify(t.node(d))),e?.clusterNode){l.info("Cluster identified XBX",d,e.width,t.node(d));const{ranksep:u,nodesep:x}=t.graph();e.graph.setGraph({...e.graph.graph(),ranksep:u+25,nodesep:x});const N=await T(n,e.graph,g,m,t.node(d),o),M=N.elem;W(e,M),e.diff=N.diff||0,l.info("New compound node after recursive render XAX",d,"width",e.width,"height",e.height),$(M,e)}else t.children(d).length>0?(l.trace("Cluster - the non recursive path XBX",d,e.id,e,e.width,"Graph:",t),l.trace(P(e.id,t)),E.set(e.id,{id:P(e.id,t),node:e})):(l.trace("Node - the non recursive path XAX",d,n,t.node(d),r),await j(n,t.node(d),{config:o,dir:r}))})),await w(async()=>{const d=t.edges().map(async function(e){const u=t.edge(e.v,e.w,e.name);if(l.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),l.info("Edge "+e.v+" -> "+e.w+": ",e," ",JSON.stringify(t.edge(e))),l.info("Fix",E,"ids:",e.v,e.w,"Translating: ",E.get(e.v),E.get(e.w)),p&&u.selfLoop){if(u.selfLoop.order!==1)return;const x=u.id;u.id=u.selfLoop.id,await G(i,u),u.id=x;return}await G(i,u)});await Promise.all(d)},"processEdges")(),l.info("Graph before layout:",JSON.stringify(I(t))),l.info("############################################# XXX"),l.info("### Layout ### XXX"),l.info("############################################# XXX"),U(t),l.info("Graph after layout:",JSON.stringify(I(t)));let X=0,{subGraphTitleTotalMargin:S}=q(o);await Promise.all(A(t).map(async function(d){const e=t.node(d);if(l.info("Position XBX => "+d+": ("+e.x,","+e.y,") width: ",e.width," height: ",e.height),e?.clusterNode)e.y+=S,l.info("A tainted cluster node XBX1",d,e.id,e.width,e.height,e.x,e.y,t.parent(d)),E.get(e.id).node=e,R(e);else if(t.children(d).length>0){l.info("A pure cluster node XBX1",d,e.id,e.x,e.y,e.width,e.height,t.parent(d)),e.height+=S,t.node(e.parentId);const u=e?.padding/2||0,x=e?.labelBBox?.height||0,N=x-u||0;l.debug("OffsetY",N,"labelHeight",x,"halfPadding",u),await F(h,e),E.get(e.id).node=e}else{const u=t.node(e.parentId);e.y+=S/2,l.info("A regular node XBX1 - using the padding",e.id,"parent",e.parentId,e.width,e.height,e.x,e.y,"offsetY",e.offsetY,"parent",u,u?.offsetY,e),R(e)}}));const b=S/2;return ne(t,b,{mergeSelfLoops:p}).forEach(function({edge:d,start:e,end:u}){l.info("Edge "+e+" -> "+u+": "+JSON.stringify(d),d),d.points.forEach(k=>k.y+=b);const x=t.node(e),N=t.node(u),M=z(a,d,E,g,x,N,m);K(d,M)}),t.nodes().forEach(function(d){const e=t.node(d);l.info(d,e.type,e.diff),e.isGroup&&(X=e.diff)}),l.warn("Returning from recursive render XAX",f,X),{elem:f,diff:X}},"recursiveRender"),le=w(async(s,t)=>{const g=new Q({multigraph:!0,compound:!0}).setGraph({rankdir:s.direction,nodesep:s.config?.nodeSpacing||s.config?.flowchart?.nodeSpacing||s.nodeSpacing,ranksep:s.config?.rankSpacing||s.config?.flowchart?.rankSpacing||s.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),m=t.select("g");v(m,s.markers,s.type,s.diagramId),D(),H(),Y(),O(),s.nodes.forEach(o=>{g.setNode(o.id,{...o}),o.parentId&&g.setParent(o.id,o.parentId)}),l.debug("Edges:",s.edges),s.edges.forEach(o=>{if(o.start===o.end){const r=o.start,f=r+"---"+r+"---1",h=r+"---"+r+"---2",a=g.node(r);g.setNode(f,{domId:f,id:f,parentId:a.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),g.setParent(f,a.parentId),g.setNode(h,{domId:h,id:h,parentId:a.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),g.setParent(h,a.parentId);const i=structuredClone(o),n=structuredClone(o),p=structuredClone(o),y=structuredClone(o);n.originalEdge=i,n.selfLoop={id:i.id,order:0},p.originalEdge=i,p.selfLoop={id:i.id,order:1},y.originalEdge=i,y.selfLoop={id:i.id,order:2},n.label="",n.arrowTypeEnd="none",n.endLabelLeft="",n.endLabelRight="",n.startLabelLeft="",n.id=r+"-cyclic-special-1",p.startLabelRight="",p.startLabelLeft="",p.endLabelLeft="",p.endLabelRight="",p.arrowTypeStart="none",p.arrowTypeEnd="none",p.id=r+"-cyclic-special-mid",y.label="",y.startLabelRight="",y.startLabelLeft="",y.arrowTypeStart="none",a.isGroup&&(n.fromCluster=r,y.toCluster=r),y.id=r+"-cyclic-special-2",y.arrowTypeStart="none",g.setEdge(r,f,n,r+"-cyclic-special-0"),g.setEdge(f,h,p,r+"-cyclic-special-1"),g.setEdge(h,r,y,r+"-cyclic-special-2")}else g.setEdge(o.start,o.end,{...o},o.id)}),l.warn("Graph at first:",JSON.stringify(I(g))),J(g),l.warn("Graph after XAX:",JSON.stringify(I(g)));const c=_();await T(m,g,s.type,s.diagramId,void 0,c)},"render");export{ne as getEdgesToRender,le as render}; diff --git a/apps/kimi-code/dist-web/assets/dagre-VKFMJZFB-CoCFT_Gw.js b/apps/kimi-code/dist-web/assets/dagre-VKFMJZFB-CoCFT_Gw.js new file mode 100644 index 000000000..dbfae5d0f --- /dev/null +++ b/apps/kimi-code/dist-web/assets/dagre-VKFMJZFB-CoCFT_Gw.js @@ -0,0 +1,4 @@ +import{c as O,w as I,a as J,f as P,b as E,s as A}from"./chunk-RYQCIY6F-BrAj5IFL.js";import{_ as w,am as v,an as D,ao as H,ap as Y,l,c as _,aq as W,ar as $,ag as j,as as q,ah as R,af as F,at as z,au as K,av as G}from"./mermaid.core-B_UcP3X_.js";import{G as Q}from"./graph-DOmOIIwC.js";import{l as U}from"./layout-D-LzfAck.js";import"./map-DxJ2ADlA.js";import"./index-BOtIzGLC.js";var C=w((s,t,g)=>Math.max(t,Math.min(g,s)),"clamp"),B=w((s="TB")=>{switch(s){case"BT":return"bottom";case"LR":return"right";case"RL":return"left";case"TB":default:return"top"}},"getDefaultSelfLoopSide"),V=w(s=>s==="flowchart"||s==="flowchart-v2"||s==="stateDiagram","shouldMergeSelfLoopSegments"),Z=w((s,t,g,y,c)=>{const o=[],r=new Set;if(g.forEach(({start:i,end:n})=>{i!==y&&r.add(i),n!==y&&r.add(n)}),r.forEach(i=>{const n=s.node(i);typeof n?.x=="number"&&typeof n?.y=="number"&&o.push(n)}),o.length===0&&g.forEach(({edge:i})=>{(i.points??[]).forEach(n=>{typeof n?.x=="number"&&typeof n?.y=="number"&&o.push(n)})}),o.length===0)return B(c);const f=o.reduce((i,n)=>({x:i.x+n.x/o.length,y:i.y+n.y/o.length}),{x:0,y:0}),h=f.x-t.x,a=f.y-t.y;return Math.abs(h)>Math.abs(a)?h>0?"right":"left":Math.abs(a)>0?a>0?"bottom":"top":B(c)},"getSelfLoopSide"),ee=w((s,t="top",g=0,y=0)=>{const c=s.x,o=s.y-g,r=s.width/2,f=s.height/2,h=Math.max(36,Math.min(100,s.width*.8)),a=C(Math.max(y,s.width*.35),36,h),i=C(Math.min(s.width,s.height)*.45,24,48);switch(t){case"bottom":{const n=o+f;return[{x:c-a/2,y:n},{x:c-a/2,y:n+i},{x:c+a/2,y:n+i},{x:c+a/2,y:n}]}case"right":{const n=c+r;return[{x:n,y:o-a/2},{x:n+i,y:o-a/2},{x:n+i,y:o+a/2},{x:n,y:o+a/2}]}case"left":{const n=c-r;return[{x:n,y:o-a/2},{x:n-i,y:o-a/2},{x:n-i,y:o+a/2},{x:n,y:o+a/2}]}case"top":default:{const n=o-f;return[{x:c-a/2,y:n},{x:c-a/2,y:n-i},{x:c+a/2,y:n-i},{x:c+a/2,y:n}]}}},"getSelfLoopPoints"),te=w((s,t,g="top",y=0,c={})=>{const r=s.x,f=s.y-y,h=c.width??0,a=c.height??0;switch(g){case"bottom":return{x:r,y:Math.max(...t.map(i=>i.y))+a/2+4};case"right":return{x:Math.max(...t.map(i=>i.x))+h/2+4,y:f};case"left":return{x:Math.min(...t.map(i=>i.x))-h/2-4,y:f};case"top":default:return{x:r,y:Math.min(...t.map(i=>i.y))-a/2-4}}},"getSelfLoopLabelPosition"),ne=w((s,t=0,{mergeSelfLoops:g=!0}={})=>{const y=new Map,c=[],o=s.graph()?.rankdir;return s.edges().forEach(r=>{const f=s.edge(r);if(g&&f.selfLoop){const h=f.selfLoop.id;y.has(h)||y.set(h,[]),y.get(h).push({edge:f,start:r.v,end:r.w})}else c.push({edge:f,start:r.v,end:r.w})}),y.forEach(r=>{if(r.length!==3){r.forEach(L=>c.push(L));return}r.sort((L,d)=>L.edge.selfLoop.order-d.edge.selfLoop.order);const[f,h,a]=r,i=f.edge.originalEdge??h.edge.originalEdge??a.edge.originalEdge??h.edge,n=s.node(i.start);if(!n){r.forEach(L=>c.push(L));return}const p={width:h.edge.width,height:h.edge.height},m=Z(s,n,r,i.start,o),X=ee(n,m,t,p.width??0),S=te(n,X,m,t,p),b={...h.edge,...i,id:i.id,points:X,start:i.start,end:i.end,x:S.x,y:S.y,width:p.width,height:p.height,labelStyle:h.edge.labelStyle,fromCluster:f.edge.fromCluster??h.edge.fromCluster??a.edge.fromCluster,toCluster:f.edge.toCluster??h.edge.toCluster??a.edge.toCluster};delete b.selfLoop,delete b.originalEdge,c.push({edge:b,start:b.start,end:b.end})}),c},"getEdgesToRender"),T=w(async(s,t,g,y,c,o)=>{l.warn("Graph in recursive render:XAX",I(t),c);const r=t.graph().rankdir;l.trace("Dir in recursive render - dir:",r);const f=s.insert("g").attr("class","root");t.nodes()?l.info("Recursive render XXX",t.nodes()):l.info("No nodes found for",t),t.edges().length>0&&l.info("Recursive edges",t.edge(t.edges()[0]));const h=f.insert("g").attr("class","clusters"),a=f.insert("g").attr("class","edgePaths"),i=f.insert("g").attr("class","edgeLabels"),n=f.insert("g").attr("class","nodes"),p=V(g);await Promise.all(t.nodes().map(async function(d){const e=t.node(d);if(c!==void 0){const u=JSON.parse(JSON.stringify(c.clusterData));l.trace(`Setting data for parent cluster XXX + Node.id = `,d,` + data=`,u.height,` +Parent cluster`,c.height),t.setNode(c.id,u),t.parent(d)||(l.trace("Setting parent",d,c.id),t.setParent(d,c.id,u))}if(l.info("(Insert) Node XXX"+d+": "+JSON.stringify(t.node(d))),e?.clusterNode){l.info("Cluster identified XBX",d,e.width,t.node(d));const{ranksep:u,nodesep:x}=t.graph();e.graph.setGraph({...e.graph.graph(),ranksep:u+25,nodesep:x});const N=await T(n,e.graph,g,y,t.node(d),o),M=N.elem;W(e,M),e.diff=N.diff||0,l.info("New compound node after recursive render XAX",d,"width",e.width,"height",e.height),$(M,e)}else t.children(d).length>0?(l.trace("Cluster - the non recursive path XBX",d,e.id,e,e.width,"Graph:",t),l.trace(P(e.id,t)),E.set(e.id,{id:P(e.id,t),node:e})):(l.trace("Node - the non recursive path XAX",d,n,t.node(d),r),await j(n,t.node(d),{config:o,dir:r}))})),await w(async()=>{const d=t.edges().map(async function(e){const u=t.edge(e.v,e.w,e.name);if(l.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),l.info("Edge "+e.v+" -> "+e.w+": ",e," ",JSON.stringify(t.edge(e))),l.info("Fix",E,"ids:",e.v,e.w,"Translating: ",E.get(e.v),E.get(e.w)),p&&u.selfLoop){if(u.selfLoop.order!==1)return;const x=u.id;u.id=u.selfLoop.id,await G(i,u),u.id=x;return}await G(i,u)});await Promise.all(d)},"processEdges")(),l.info("Graph before layout:",JSON.stringify(I(t))),l.info("############################################# XXX"),l.info("### Layout ### XXX"),l.info("############################################# XXX"),U(t),l.info("Graph after layout:",JSON.stringify(I(t)));let X=0,{subGraphTitleTotalMargin:S}=q(o);await Promise.all(A(t).map(async function(d){const e=t.node(d);if(l.info("Position XBX => "+d+": ("+e.x,","+e.y,") width: ",e.width," height: ",e.height),e?.clusterNode)e.y+=S,l.info("A tainted cluster node XBX1",d,e.id,e.width,e.height,e.x,e.y,t.parent(d)),E.get(e.id).node=e,R(e);else if(t.children(d).length>0){l.info("A pure cluster node XBX1",d,e.id,e.x,e.y,e.width,e.height,t.parent(d)),e.height+=S,t.node(e.parentId);const u=e?.padding/2||0,x=e?.labelBBox?.height||0,N=x-u||0;l.debug("OffsetY",N,"labelHeight",x,"halfPadding",u),await F(h,e),E.get(e.id).node=e}else{const u=t.node(e.parentId);e.y+=S/2,l.info("A regular node XBX1 - using the padding",e.id,"parent",e.parentId,e.width,e.height,e.x,e.y,"offsetY",e.offsetY,"parent",u,u?.offsetY,e),R(e)}}));const b=S/2;return ne(t,b,{mergeSelfLoops:p}).forEach(function({edge:d,start:e,end:u}){l.info("Edge "+e+" -> "+u+": "+JSON.stringify(d),d),d.points.forEach(k=>k.y+=b);const x=t.node(e),N=t.node(u),M=z(a,d,E,g,x,N,y);K(d,M)}),t.nodes().forEach(function(d){const e=t.node(d);l.info(d,e.type,e.diff),e.isGroup&&(X=e.diff)}),l.warn("Returning from recursive render XAX",f,X),{elem:f,diff:X}},"recursiveRender"),ce=w(async(s,t)=>{const g=new Q({multigraph:!0,compound:!0}).setGraph({rankdir:s.direction,nodesep:s.config?.nodeSpacing||s.config?.flowchart?.nodeSpacing||s.nodeSpacing,ranksep:s.config?.rankSpacing||s.config?.flowchart?.rankSpacing||s.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),y=t.select("g");v(y,s.markers,s.type,s.diagramId),D(),H(),Y(),O(),s.nodes.forEach(o=>{g.setNode(o.id,{...o}),o.parentId&&g.setParent(o.id,o.parentId)}),l.debug("Edges:",s.edges),s.edges.forEach(o=>{if(o.start===o.end){const r=o.start,f=r+"---"+r+"---1",h=r+"---"+r+"---2",a=g.node(r);g.setNode(f,{domId:f,id:f,parentId:a.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),g.setParent(f,a.parentId),g.setNode(h,{domId:h,id:h,parentId:a.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),g.setParent(h,a.parentId);const i=structuredClone(o),n=structuredClone(o),p=structuredClone(o),m=structuredClone(o);n.originalEdge=i,n.selfLoop={id:i.id,order:0},p.originalEdge=i,p.selfLoop={id:i.id,order:1},m.originalEdge=i,m.selfLoop={id:i.id,order:2},n.label="",n.arrowTypeEnd="none",n.endLabelLeft="",n.endLabelRight="",n.startLabelLeft="",n.id=r+"-cyclic-special-1",p.startLabelRight="",p.startLabelLeft="",p.endLabelLeft="",p.endLabelRight="",p.arrowTypeStart="none",p.arrowTypeEnd="none",p.id=r+"-cyclic-special-mid",m.label="",m.startLabelRight="",m.startLabelLeft="",m.arrowTypeStart="none",a.isGroup&&(n.fromCluster=r,m.toCluster=r),m.id=r+"-cyclic-special-2",m.arrowTypeStart="none",g.setEdge(r,f,n,r+"-cyclic-special-0"),g.setEdge(f,h,p,r+"-cyclic-special-1"),g.setEdge(h,r,m,r+"-cyclic-special-2")}else g.setEdge(o.start,o.end,{...o},o.id)}),l.warn("Graph at first:",JSON.stringify(I(g))),J(g),l.warn("Graph after XAX:",JSON.stringify(I(g)));const c=_();await T(y,g,s.type,s.diagramId,void 0,c)},"render");export{ne as getEdgesToRender,ce as render}; diff --git a/apps/kimi-code/dist-web/assets/diagram-FQU43EPY-C1ljmLlO.js b/apps/kimi-code/dist-web/assets/diagram-FQU43EPY-DuCbEYlU.js similarity index 57% rename from apps/kimi-code/dist-web/assets/diagram-FQU43EPY-C1ljmLlO.js rename to apps/kimi-code/dist-web/assets/diagram-FQU43EPY-DuCbEYlU.js index 03446da73..aeeead004 100644 --- a/apps/kimi-code/dist-web/assets/diagram-FQU43EPY-C1ljmLlO.js +++ b/apps/kimi-code/dist-web/assets/diagram-FQU43EPY-DuCbEYlU.js @@ -1,3 +1,3 @@ -import{p as re}from"./chunk-JWPE2WC7-BxqMRrNb.js";import{o as oe,n as se,s as de,g as le,a as ce,b as me,_ as o,l as g,c as T,d as ue,z as xe,p as fe,A as ge,y as M,B as he,i as y,w as P,ak as pe}from"./mermaid.core-CgZTgv7Y.js";import{p as be,i as ve}from"./cynefin-VYW2F7L2-DYKf_Z-v.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var $="position frame",D="frame positioned",S="position relation",N="relation positioned",we=o(function(e){g.debug("options str",e)},"setOptions"),ye=o(function(){return{}},"getOptions"),Pe=o(function(){C(),fe()},"clear");function C(){B={}}o(C,"reset");var Se=he.eventmodeling,ke=o(()=>ge({...Se,...M().eventmodeling}),"getConfig"),B={};function O(){let e=Fe;const{ast:n}=B,t=E();if(!n)throw new Error("No data for EventModel");return n.frames.forEach((i,a)=>{const r=G(i,n.dataEntities,t);e=v(e,{$kind:$,index:a,frame:i,textProps:r});let d;K(i)?(g.debug("source frame",i.sourceFrames),d=n.frames.filter(l=>i.sourceFrames.some(c=>c.$refText===l.name)),d.forEach(l=>{e=v(e,{$kind:S,index:a,frame:i,sourceFrame:l})})):e=v(e,{$kind:S,index:a,frame:i})}),e={...e,sortedSwimlanesArray:A(e.swimlanes)},e}o(O,"getState");function I(e){B.ast=e}o(I,"setAst");var s={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: "};function E(){return s}o(E,"getDiagramProps");var Fe={boxes:[],swimlanes:{},relations:[],maxR:0,sortedSwimlanesArray:[]};function W(e){const n=e.split(".");if(n.length===2)return n[0]}o(W,"extractNamespace");function H(e){const n=e.split(".");return n.length===2?n[1]:e}o(H,"extractName");function U(e,n){if(!(!n||n.length===0))return Object.values(e).find(t=>t.namespace===n)}o(U,"findSwimlaneByNamespace");function b(e,n,t){return Math.max(n,...Object.keys(e).filter(i=>{const a=Number.parseInt(i);return a>n&&aNumber.parseInt(i)))+1}o(b,"findNextAvailableIndex");function _(e,n){const t=W(e.entityIdentifier),i=U(n,t);switch(e.modelEntityType){case"ui":case"pcr":case"processor":return i?{index:i.index,label:i.namespace||s.labelUiAutomation}:t?{index:b(n,0,100),label:s.labelUiAutomationPrefix+t}:{index:0,label:s.labelUiAutomation};case"rmo":case"readmodel":case"cmd":case"command":return i?{index:i.index,label:i.namespace||s.labelCommandReadModel}:t?{index:b(n,100,200),label:s.labelCommandReadModelPrefix+t}:{index:100,label:s.labelCommandReadModel};case"evt":case"event":default:return i?{index:i.index,label:i.namespace||s.labelEvents}:t?{index:b(n,200,300),label:s.labelEventsPrefix+t}:{index:200,label:s.labelEvents}}}o(_,"calculateSwimlaneProps");function L(e){const{themeVariables:n}=M();switch(e.modelEntityType){case"ui":return{fill:n.emUiFill??"white",stroke:n.emUiStroke??"#dbdada"};case"pcr":case"processor":return{fill:n.emProcessorFill??"#edb3f6",stroke:n.emProcessorStroke??"#b88cbf"};case"rmo":case"readmodel":return{fill:n.emReadModelFill??"#d3f1a2",stroke:n.emReadModelStroke??"#a3b732"};case"cmd":case"command":return{fill:n.emCommandFill??"#bcd6fe",stroke:n.emCommandStroke??"#679ac3"};case"evt":case"event":return{fill:n.emEventFill??"#ffb778",stroke:n.emEventStroke??"#c19a0f"};default:return{fill:"red",stroke:"black"}}}o(L,"calculateEntityVisualProps");function G(e,n,t){const i=M(),a=y(H(e.entityIdentifier)??"",i);let r;const d={fontSize:16,fontWeight:700,fontFamily:'"trebuchet ms", verdana, arial, sans-serif',joinWith:"
"};let c=`${P(a,t.textMaxWidth,d)}`;if(e.dataInlineValue&&(r=e.dataInlineValue,r=r.substring(r.indexOf("{")+1),r=r.substring(0,r.lastIndexOf("}")-1),r=y(r,i),r=P(r,t.textMaxWidth,d),r=r.replaceAll(" "," ")),e.dataReference){const p=n.find(w=>w.name===e.dataReference?.$refText);p&&(r=p.dataBlockValue,r=r.substring(r.indexOf(`{ -`)+2),r=r.substring(0,r.lastIndexOf("}")-1),r=y(r,i),r=P(r,t.textMaxWidth,d),r=r.replaceAll(" "," "),r+="
")}const m=r!==void 0;m&&(c+=`

${r}`);const x={fontSize:d.fontSize,fontWeight:d.fontWeight,fontFamily:d.fontFamily},u=pe(c,x),h=m?u.width/3:u.width,f={content:c,width:h,height:u.height};return g.debug(`[${e.name}] ${e.entityIdentifier} text`,f),f}o(G,"calculateTextProps");function V(e,n){const t=n,i=L(t.frame),a={width:t.textProps.width+2*s.boxTextPadding,height:t.textProps.height+2*s.boxTextPadding};return[{$kind:D,frame:t.frame,index:t.index,visual:i,dimension:a,textProps:t.textProps}]}o(V,"decidePositionFrame");function X(e,n,t){return n===void 0?s.contentStartX:n.index===e.index&&e.r?e.r+s.boxPadding:t===void 0?s.contentStartX:t.r-s.boxOverlap+s.boxPadding}o(X,"calculateX");function j(e,n){const t=[...e.map(i=>i.r),n];return Math.max(...t)}o(j,"calculateMaxRight");function A(e){return Object.values(e).sort((n,t)=>n.index-t.index)}o(A,"sortedSwimlanesArray");function Y(e,n){const t=n,i=_(t.frame,e.swimlanes);let a;i.index in e.swimlanes?a=e.swimlanes[i.index]:a={index:i.index,label:i.label,r:0,y:i.index*s.swimlaneMinHeight+s.swimlaneGap,height:s.swimlaneMinHeight,maxHeight:s.swimlaneMinHeight};const r=e.boxes.length>0?e.boxes[e.boxes.length-1]:void 0,d=e.previousSwimlaneNumber!==void 0?e.swimlanes[e.previousSwimlaneNumber]:void 0,l={width:Math.max(s.boxMinWidth,Math.min(s.boxMaxWidth,t.dimension.width))+2*s.boxPadding,height:Math.max(s.boxMinHeight,Math.min(s.boxMaxHeight,t.dimension.height))+2*s.boxPadding},c=X(a,d,r),m=c+l.width+s.boxPadding,x=j(Object.values(e.swimlanes),m);a.r=c+l.width,a.maxHeight=Math.max(a.maxHeight,l.height),a.height=Math.max(s.swimlaneMinHeight,a.maxHeight)+2*s.swimlanePadding;const u={x:c,y:s.swimlanePadding+a.y,r:m,dimension:l,leftSibling:!1,swimlane:a,visual:t.visual,text:t.textProps.content,frame:t.frame,index:t.index},h={...e,boxes:[...e.boxes,u],swimlanes:{...e.swimlanes,[`${a.index}`]:a},previousSwimlaneNumber:i.index,previousFrame:t.frame,maxR:x},f=A(h.swimlanes);f.length>0&&(f[0].y=0);for(let p=1;p0}o(K,"hasSourceFrame");function k(e,n){if(n!=null)return e.find(t=>t.frame.name===n.name)}o(k,"findBoxByFrame");function q(e,n,t){if(!(t<0))for(let i=t;i>=0;i--){const a=e[i];if(a.swimlane.index!==n)return a}}o(q,"findBoxByLineIndex");function J(e,n){const t=n;if(ve(t.frame)||z(t.index,t.frame))return[];const i=k(e.boxes,t.frame);if(i===void 0)throw new Error(`Target box not found for frame ${t.frame.name}`);let a;return t.sourceFrame?a=k(e.boxes,t.sourceFrame):a=q(e.boxes,i.swimlane.index,t.index-1),a===void 0?[]:[{$kind:N,frame:t.frame,index:t.index,sourceBox:a,targetBox:i}]}o(J,"decidePositionRelation");function Q(e,n){const t=n,i={visual:{fill:"none",stroke:"#000"},source:{x:t.sourceBox.x,y:t.sourceBox.y},target:{x:t.targetBox.x,y:t.targetBox.y},sourceBox:t.sourceBox,targetBox:t.targetBox};return{...e,relations:[...e.relations,i]}}o(Q,"evolveRelationPositioned");var Me={[$]:V,[S]:J},Be={[D]:Y,[N]:Q};function Z(e,n){const t=Me[n.$kind];if(t==null)return[];const i=t(e,n);return g.debug("decided events",i),i}o(Z,"decide");function ee(e,n){const t=n.reduce((i,a)=>{const r=Be[a.$kind];return r==null?i:r(i,a)},e);return g.debug("evolve events",{state:e,newState:t,events:n}),t}o(ee,"evolve");function v(e,n){const t=Z(e,n);return ee(e,t)}o(v,"dispatch");var F={getConfig:ke,setOptions:we,getOptions:ye,clear:Pe,setAccTitle:me,getAccTitle:ce,getAccDescription:le,setAccDescription:de,setDiagramTitle:se,getDiagramTitle:oe,setAst:I,getDiagramProps:E,getState:O},Ee={parse:o(async e=>{const n=await be("eventmodeling",e);g.debug(n),F.setAst(n),re(n,F)},"parse")},Ae=T(),Re=Ae?.eventmodeling;function te(e,n){return t=>{const i=t.swimlane.y+n.swimlanePadding,a=e.append("g").attr("class","em-box");a.append("rect").attr("x",t.x).attr("y",i).attr("rx","3").attr("width",t.dimension.width).attr("height",t.dimension.height).attr("stroke",t.visual.stroke).attr("fill",t.visual.fill),a.append("foreignObject").attr("x",t.x+n.boxPadding).attr("y",i+10).attr("width",t.dimension.width-2*n.boxPadding).attr("height",t.dimension.height-2*n.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(t.text)}}o(te,"renderD3Box");function ne(e,n){return e>n}o(ne,"dirUpwards");function ie(e,n,t,i){return a=>{const r=a.sourceBox.swimlane.y+n.swimlanePadding,d=a.targetBox.swimlane.y+n.swimlanePadding,l=ne(r,d),c=a.sourceBox.x+a.sourceBox.dimension.width*2/3,m=a.targetBox.x+a.targetBox.dimension.width/3;let x,u;g.debug(`rendering relation up=${l} for `,{sourceBox:a.sourceBox,targetBox:a.targetBox}),l?(x=r,u=d+a.targetBox.dimension.height):(x=r+a.sourceBox.dimension.height,u=d);const h=i.emRelationStroke??a.visual.stroke;e.append("path").attr("class","em-relation").attr("fill",a.visual.fill).attr("stroke",h).attr("stroke-width","1").attr("marker-end",`url(#${t})`).attr("d",`M${c} ${x} L${m} ${u}`)}}o(ie,"renderD3Relation");function ae(e,n,t,i){return a=>{const r=e.append("g").attr("class","em-swimlane"),d=i.emSwimlaneBackgroundOdd??"rgb(250,250,250)",l=i.emSwimlaneBackgroundStroke??"rgb(240,240,240)";r.append("rect").attr("x",0).attr("y",a.y).attr("rx","3").attr("width",n+t.swimlanePadding).attr("height",a.height).attr("fill",d).attr("stroke",l),r.append("text").attr("font-weight",t.swimlaneTextFontWeight).attr("x",30).attr("y",a.y+30).text(a.label)}}o(ae,"renderD3Swimlane");var Te=o(function(e,n,t,i){if(g.debug("in eventmodeling renderer",e+` -`,"id:",n,t),!Re)throw new Error("EventModeling config not found");const a=i.db,{themeVariables:r,eventmodeling:d}=T(),l=ue(`[id="${n}"]`),c=a.getDiagramProps(),m=a.getState(),x=`em-arrowhead-${n}`,u=r.emArrowhead??"#000000";m.sortedSwimlanesArray.forEach(ae(l,m.maxR,c,r)),m.boxes.forEach(te(l,c)),m.relations.forEach(ie(l,c,x,r)),l.append("defs").append("marker").attr("id",x).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",u),xe(void 0,l,d?.padding??30,d?.useMaxWidth)},"draw"),$e={draw:Te},De=o(e=>"","getStyles"),Ne=De,Ue={parser:Ee,db:F,renderer:$e,styles:Ne};export{Ue as diagram}; +import{p as re}from"./chunk-JWPE2WC7-TZtJmqSP.js";import{p as oe,o as se,s as de,g as le,a as ce,b as me,_ as o,l as g,c as D,d as ue,A as xe,q as fe,B as ge,z as M,D as he,i as y,w as P,ak as pe}from"./mermaid.core-B_UcP3X_.js";import{p as be,i as ve}from"./cynefin-VYW2F7L2-BnQdr27u.js";import"./index-BOtIzGLC.js";var T="position frame",$="frame positioned",S="position relation",N="relation positioned",we=o(function(e){g.debug("options str",e)},"setOptions"),ye=o(function(){return{}},"getOptions"),Pe=o(function(){C(),fe()},"clear");function C(){B={}}o(C,"reset");var Se=he.eventmodeling,ke=o(()=>ge({...Se,...M().eventmodeling}),"getConfig"),B={};function O(){let e=Fe;const{ast:n}=B,t=E();if(!n)throw new Error("No data for EventModel");return n.frames.forEach((i,a)=>{const r=G(i,n.dataEntities,t);e=v(e,{$kind:T,index:a,frame:i,textProps:r});let d;K(i)?(g.debug("source frame",i.sourceFrames),d=n.frames.filter(l=>i.sourceFrames.some(c=>c.$refText===l.name)),d.forEach(l=>{e=v(e,{$kind:S,index:a,frame:i,sourceFrame:l})})):e=v(e,{$kind:S,index:a,frame:i})}),e={...e,sortedSwimlanesArray:A(e.swimlanes)},e}o(O,"getState");function I(e){B.ast=e}o(I,"setAst");var s={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: "};function E(){return s}o(E,"getDiagramProps");var Fe={boxes:[],swimlanes:{},relations:[],maxR:0,sortedSwimlanesArray:[]};function W(e){const n=e.split(".");if(n.length===2)return n[0]}o(W,"extractNamespace");function H(e){const n=e.split(".");return n.length===2?n[1]:e}o(H,"extractName");function U(e,n){if(!(!n||n.length===0))return Object.values(e).find(t=>t.namespace===n)}o(U,"findSwimlaneByNamespace");function b(e,n,t){return Math.max(n,...Object.keys(e).filter(i=>{const a=Number.parseInt(i);return a>n&&aNumber.parseInt(i)))+1}o(b,"findNextAvailableIndex");function _(e,n){const t=W(e.entityIdentifier),i=U(n,t);switch(e.modelEntityType){case"ui":case"pcr":case"processor":return i?{index:i.index,label:i.namespace||s.labelUiAutomation}:t?{index:b(n,0,100),label:s.labelUiAutomationPrefix+t}:{index:0,label:s.labelUiAutomation};case"rmo":case"readmodel":case"cmd":case"command":return i?{index:i.index,label:i.namespace||s.labelCommandReadModel}:t?{index:b(n,100,200),label:s.labelCommandReadModelPrefix+t}:{index:100,label:s.labelCommandReadModel};case"evt":case"event":default:return i?{index:i.index,label:i.namespace||s.labelEvents}:t?{index:b(n,200,300),label:s.labelEventsPrefix+t}:{index:200,label:s.labelEvents}}}o(_,"calculateSwimlaneProps");function L(e){const{themeVariables:n}=M();switch(e.modelEntityType){case"ui":return{fill:n.emUiFill??"white",stroke:n.emUiStroke??"#dbdada"};case"pcr":case"processor":return{fill:n.emProcessorFill??"#edb3f6",stroke:n.emProcessorStroke??"#b88cbf"};case"rmo":case"readmodel":return{fill:n.emReadModelFill??"#d3f1a2",stroke:n.emReadModelStroke??"#a3b732"};case"cmd":case"command":return{fill:n.emCommandFill??"#bcd6fe",stroke:n.emCommandStroke??"#679ac3"};case"evt":case"event":return{fill:n.emEventFill??"#ffb778",stroke:n.emEventStroke??"#c19a0f"};default:return{fill:"red",stroke:"black"}}}o(L,"calculateEntityVisualProps");function G(e,n,t){const i=M(),a=y(H(e.entityIdentifier)??"",i);let r;const d={fontSize:16,fontWeight:700,fontFamily:'"trebuchet ms", verdana, arial, sans-serif',joinWith:"
"};let c=`${P(a,t.textMaxWidth,d)}`;if(e.dataInlineValue&&(r=e.dataInlineValue,r=r.substring(r.indexOf("{")+1),r=r.substring(0,r.lastIndexOf("}")-1),r=y(r,i),r=P(r,t.textMaxWidth,d),r=r.replaceAll(" "," ")),e.dataReference){const p=n.find(w=>w.name===e.dataReference?.$refText);p&&(r=p.dataBlockValue,r=r.substring(r.indexOf(`{ +`)+2),r=r.substring(0,r.lastIndexOf("}")-1),r=y(r,i),r=P(r,t.textMaxWidth,d),r=r.replaceAll(" "," "),r+="
")}const m=r!==void 0;m&&(c+=`

${r}`);const x={fontSize:d.fontSize,fontWeight:d.fontWeight,fontFamily:d.fontFamily},u=pe(c,x),h=m?u.width/3:u.width,f={content:c,width:h,height:u.height};return g.debug(`[${e.name}] ${e.entityIdentifier} text`,f),f}o(G,"calculateTextProps");function V(e,n){const t=n,i=L(t.frame),a={width:t.textProps.width+2*s.boxTextPadding,height:t.textProps.height+2*s.boxTextPadding};return[{$kind:$,frame:t.frame,index:t.index,visual:i,dimension:a,textProps:t.textProps}]}o(V,"decidePositionFrame");function X(e,n,t){return n===void 0?s.contentStartX:n.index===e.index&&e.r?e.r+s.boxPadding:t===void 0?s.contentStartX:t.r-s.boxOverlap+s.boxPadding}o(X,"calculateX");function j(e,n){const t=[...e.map(i=>i.r),n];return Math.max(...t)}o(j,"calculateMaxRight");function A(e){return Object.values(e).sort((n,t)=>n.index-t.index)}o(A,"sortedSwimlanesArray");function Y(e,n){const t=n,i=_(t.frame,e.swimlanes);let a;i.index in e.swimlanes?a=e.swimlanes[i.index]:a={index:i.index,label:i.label,r:0,y:i.index*s.swimlaneMinHeight+s.swimlaneGap,height:s.swimlaneMinHeight,maxHeight:s.swimlaneMinHeight};const r=e.boxes.length>0?e.boxes[e.boxes.length-1]:void 0,d=e.previousSwimlaneNumber!==void 0?e.swimlanes[e.previousSwimlaneNumber]:void 0,l={width:Math.max(s.boxMinWidth,Math.min(s.boxMaxWidth,t.dimension.width))+2*s.boxPadding,height:Math.max(s.boxMinHeight,Math.min(s.boxMaxHeight,t.dimension.height))+2*s.boxPadding},c=X(a,d,r),m=c+l.width+s.boxPadding,x=j(Object.values(e.swimlanes),m);a.r=c+l.width,a.maxHeight=Math.max(a.maxHeight,l.height),a.height=Math.max(s.swimlaneMinHeight,a.maxHeight)+2*s.swimlanePadding;const u={x:c,y:s.swimlanePadding+a.y,r:m,dimension:l,leftSibling:!1,swimlane:a,visual:t.visual,text:t.textProps.content,frame:t.frame,index:t.index},h={...e,boxes:[...e.boxes,u],swimlanes:{...e.swimlanes,[`${a.index}`]:a},previousSwimlaneNumber:i.index,previousFrame:t.frame,maxR:x},f=A(h.swimlanes);f.length>0&&(f[0].y=0);for(let p=1;p0}o(K,"hasSourceFrame");function k(e,n){if(n!=null)return e.find(t=>t.frame.name===n.name)}o(k,"findBoxByFrame");function q(e,n,t){if(!(t<0))for(let i=t;i>=0;i--){const a=e[i];if(a.swimlane.index!==n)return a}}o(q,"findBoxByLineIndex");function J(e,n){const t=n;if(ve(t.frame)||z(t.index,t.frame))return[];const i=k(e.boxes,t.frame);if(i===void 0)throw new Error(`Target box not found for frame ${t.frame.name}`);let a;return t.sourceFrame?a=k(e.boxes,t.sourceFrame):a=q(e.boxes,i.swimlane.index,t.index-1),a===void 0?[]:[{$kind:N,frame:t.frame,index:t.index,sourceBox:a,targetBox:i}]}o(J,"decidePositionRelation");function Q(e,n){const t=n,i={visual:{fill:"none",stroke:"#000"},source:{x:t.sourceBox.x,y:t.sourceBox.y},target:{x:t.targetBox.x,y:t.targetBox.y},sourceBox:t.sourceBox,targetBox:t.targetBox};return{...e,relations:[...e.relations,i]}}o(Q,"evolveRelationPositioned");var Me={[T]:V,[S]:J},Be={[$]:Y,[N]:Q};function Z(e,n){const t=Me[n.$kind];if(t==null)return[];const i=t(e,n);return g.debug("decided events",i),i}o(Z,"decide");function ee(e,n){const t=n.reduce((i,a)=>{const r=Be[a.$kind];return r==null?i:r(i,a)},e);return g.debug("evolve events",{state:e,newState:t,events:n}),t}o(ee,"evolve");function v(e,n){const t=Z(e,n);return ee(e,t)}o(v,"dispatch");var F={getConfig:ke,setOptions:we,getOptions:ye,clear:Pe,setAccTitle:me,getAccTitle:ce,getAccDescription:le,setAccDescription:de,setDiagramTitle:se,getDiagramTitle:oe,setAst:I,getDiagramProps:E,getState:O},Ee={parse:o(async e=>{const n=await be("eventmodeling",e);g.debug(n),F.setAst(n),re(n,F)},"parse")},Ae=D(),Re=Ae?.eventmodeling;function te(e,n){return t=>{const i=t.swimlane.y+n.swimlanePadding,a=e.append("g").attr("class","em-box");a.append("rect").attr("x",t.x).attr("y",i).attr("rx","3").attr("width",t.dimension.width).attr("height",t.dimension.height).attr("stroke",t.visual.stroke).attr("fill",t.visual.fill),a.append("foreignObject").attr("x",t.x+n.boxPadding).attr("y",i+10).attr("width",t.dimension.width-2*n.boxPadding).attr("height",t.dimension.height-2*n.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(t.text)}}o(te,"renderD3Box");function ne(e,n){return e>n}o(ne,"dirUpwards");function ie(e,n,t,i){return a=>{const r=a.sourceBox.swimlane.y+n.swimlanePadding,d=a.targetBox.swimlane.y+n.swimlanePadding,l=ne(r,d),c=a.sourceBox.x+a.sourceBox.dimension.width*2/3,m=a.targetBox.x+a.targetBox.dimension.width/3;let x,u;g.debug(`rendering relation up=${l} for `,{sourceBox:a.sourceBox,targetBox:a.targetBox}),l?(x=r,u=d+a.targetBox.dimension.height):(x=r+a.sourceBox.dimension.height,u=d);const h=i.emRelationStroke??a.visual.stroke;e.append("path").attr("class","em-relation").attr("fill",a.visual.fill).attr("stroke",h).attr("stroke-width","1").attr("marker-end",`url(#${t})`).attr("d",`M${c} ${x} L${m} ${u}`)}}o(ie,"renderD3Relation");function ae(e,n,t,i){return a=>{const r=e.append("g").attr("class","em-swimlane"),d=i.emSwimlaneBackgroundOdd??"rgb(250,250,250)",l=i.emSwimlaneBackgroundStroke??"rgb(240,240,240)";r.append("rect").attr("x",0).attr("y",a.y).attr("rx","3").attr("width",n+t.swimlanePadding).attr("height",a.height).attr("fill",d).attr("stroke",l),r.append("text").attr("font-weight",t.swimlaneTextFontWeight).attr("x",30).attr("y",a.y+30).text(a.label)}}o(ae,"renderD3Swimlane");var De=o(function(e,n,t,i){if(g.debug("in eventmodeling renderer",e+` +`,"id:",n,t),!Re)throw new Error("EventModeling config not found");const a=i.db,{themeVariables:r,eventmodeling:d}=D(),l=ue(`[id="${n}"]`),c=a.getDiagramProps(),m=a.getState(),x=`em-arrowhead-${n}`,u=r.emArrowhead??"#000000";m.sortedSwimlanesArray.forEach(ae(l,m.maxR,c,r)),m.boxes.forEach(te(l,c)),m.relations.forEach(ie(l,c,x,r)),l.append("defs").append("marker").attr("id",x).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",u),xe(void 0,l,d?.padding??30,d?.useMaxWidth)},"draw"),Te={draw:De},$e=o(e=>"","getStyles"),Ne=$e,He={parser:Ee,db:F,renderer:Te,styles:Ne};export{He as diagram}; diff --git a/apps/kimi-code/dist-web/assets/diagram-G47NLZAW-DaD-7Fad.js b/apps/kimi-code/dist-web/assets/diagram-G47NLZAW-DaD-7Fad.js new file mode 100644 index 000000000..e266f8889 --- /dev/null +++ b/apps/kimi-code/dist-web/assets/diagram-G47NLZAW-DaD-7Fad.js @@ -0,0 +1,24 @@ +import{p as me}from"./chunk-JWPE2WC7-TZtJmqSP.js";import{_ as w,W as ge,z as te,B as Q,F as ye,e as Se,l as ee,bf as B,d as j,b as ve,a as xe,o as be,p as we,g as Ce,s as Te,D as Le,bg as $e,q as Ae}from"./mermaid.core-B_UcP3X_.js";import{s as Fe}from"./chunk-VR4S4FIN-CYEgbtU1.js";import{p as Ne}from"./cynefin-VYW2F7L2-BnQdr27u.js";import{b as I}from"./defaultLocale-DX6XiGOO.js";import{o as K}from"./ordinal-Cboi1Yqb.js";import"./index-BOtIzGLC.js";import"./init-Gi6I4Gst.js";function Me(e){var a=0,n=e.children,l=n&&n.length;if(!l)a=1;else for(;--l>=0;)a+=n[l].value;e.value=a}function _e(){return this.eachAfter(Me)}function ke(e,a){let n=-1;for(const l of this)e.call(a,l,++n,this);return this}function ze(e,a){for(var n=this,l=[n],r,o,h=-1;n=l.pop();)if(e.call(a,n,++h,this),r=n.children)for(o=r.length-1;o>=0;--o)l.push(r[o]);return this}function Ve(e,a){for(var n=this,l=[n],r=[],o,h,d,g=-1;n=l.pop();)if(r.push(n),o=n.children)for(h=0,d=o.length;h=0;)n+=l[r].value;a.value=n})}function Be(e){return this.eachBefore(function(a){a.children&&a.children.sort(e)})}function We(e){for(var a=this,n=Ee(a,e),l=[a];a!==n;)a=a.parent,l.push(a);for(var r=l.length;e!==n;)l.splice(r,0,e),e=e.parent;return l}function Ee(e,a){if(e===a)return e;var n=e.ancestors(),l=a.ancestors(),r=null;for(e=n.pop(),a=l.pop();e===a;)r=e,e=n.pop(),a=l.pop();return r}function Re(){for(var e=this,a=[e];e=e.parent;)a.push(e);return a}function He(){return Array.from(this)}function Ie(){var e=[];return this.eachBefore(function(a){a.children||e.push(a)}),e}function Oe(){var e=this,a=[];return e.each(function(n){n!==e&&a.push({source:n.parent,target:n})}),a}function*qe(){var e=this,a,n=[e],l,r,o;do for(a=n.reverse(),n=[];e=a.pop();)if(yield e,l=e.children)for(r=0,o=l.length;r=0;--d)r.push(o=h[d]=new U(h[d])),o.parent=l,o.depth=l.depth+1;return n.eachBefore(Ue)}function Ge(){return ae(this).eachBefore(je)}function Xe(e){return e.children}function Ye(e){return Array.isArray(e)?e[1]:null}function je(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function Ue(e){var a=0;do e.height=a;while((e=e.parent)&&e.height<++a)}function U(e){this.data=e,this.depth=this.height=0,this.parent=null}U.prototype=ae.prototype={constructor:U,count:_e,each:ke,eachAfter:Ve,eachBefore:ze,find:De,sum:Pe,sort:Be,path:We,ancestors:Re,descendants:He,leaves:Ie,links:Oe,copy:Ge,[Symbol.iterator]:qe};function Ze(e){if(typeof e!="function")throw new Error;return e}function O(){return 0}function q(e){return function(){return e}}function Je(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)}function Ke(e,a,n,l,r){for(var o=e.children,h,d=-1,g=o.length,c=e.value&&(l-a)/e.value;++dN&&(N=c),M=u*u*E,$=Math.max(N/M,M/y),$>V){u-=c;break}V=$}h.push(g={value:u,dice:x1?l:1)},n})(et);function nt(){var e=at,a=!1,n=1,l=1,r=[0],o=O,h=O,d=O,g=O,c=O;function p(s){return s.x0=s.y0=0,s.x1=n,s.y1=l,s.eachBefore(b),r=[0],a&&s.eachBefore(Je),s}function b(s){var x=r[s.depth],S=s.x0+x,v=s.y0+x,u=s.x1-x,y=s.y1-x;u{$e(r)&&(n?.textStyles?n.textStyles.push(r):n.textStyles=[r]),n?.styles?n.styles.push(r):n.styles=[r]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){Ae(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function oe(e){if(!e.length)return[];const a=[],n=[];return e.forEach(l=>{const r={name:l.name,children:l.type==="Leaf"?void 0:[]};for(r.classSelector=l?.classSelector,l?.cssCompiledStyles&&(r.cssCompiledStyles=l.cssCompiledStyles),l.type==="Leaf"&&l.value!==void 0&&(r.value=l.value);n.length>0&&n[n.length-1].level>=l.level;)n.pop();if(n.length===0)a.push(r);else{const o=n[n.length-1].node;o.children?o.children.push(r):o.children=[r]}l.type!=="Leaf"&&n.push({node:r,level:l.level})}),a}w(oe,"buildHierarchy");var lt=w((e,a)=>{me(e,a);const n=[];for(const o of e.TreemapRows??[])o.$type==="ClassDefStatement"&&a.addClass(o.className??"",o.styleText??"");for(const o of e.TreemapRows??[]){const h=o.item;if(!h)continue;const d=o.indent?parseInt(o.indent):0,g=rt(h),c=h.classSelector?a.getStylesForClass(h.classSelector):[],p=c.length>0?c:void 0,b={level:d,name:g,type:h.$type,value:h.value,classSelector:h.classSelector,cssCompiledStyles:p};n.push(b)}const l=oe(n),r=w((o,h)=>{for(const d of o)a.addNode(d,h),d.children&&d.children.length>0&&r(d.children,h+1)},"addNodesRecursively");r(l,0)},"populate"),rt=w(e=>e.name?String(e.name):"","getItemName"),ce={parser:{yy:void 0},parse:w(async e=>{try{const n=await Ne("treemap",e);ee.debug("Treemap AST:",n);const l=ce.parser?.yy;if(!(l instanceof ie))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.");lt(n,l)}catch(a){throw ee.error("Error parsing treemap:",a),a}},"parse")},st=10,W=10,G=25,it=w((e,a,n,l)=>{const r=l.db,o=r.getConfig(),h=o.padding??st,d=r.getDiagramTitle(),g=r.getRoot(),{themeVariables:c}=te();if(!g)return;const p=d?30:0,b=ye(a),s=o.nodeWidth?o.nodeWidth*W:960,x=o.nodeHeight?o.nodeHeight*W:500,S=s,v=x+p;b.attr("viewBox",`0 0 ${S} ${v}`),Se(b,v,S,o.useMaxWidth);let u;try{const t=o.valueFormat||",";if(t==="$0,0")u=w(i=>"$"+I(",")(i),"valueFormat");else if(t.startsWith("$")&&t.includes(",")){const i=/\.\d+/.exec(t),f=i?i[0]:"";u=w(C=>"$"+I(","+f)(C),"valueFormat")}else if(t.startsWith("$")){const i=t.substring(1);u=w(f=>"$"+I(i||"")(f),"valueFormat")}else u=I(t)}catch(t){ee.error("Error creating format function:",t),u=I(",")}const y=K().range(["transparent",c.cScale0,c.cScale1,c.cScale2,c.cScale3,c.cScale4,c.cScale5,c.cScale6,c.cScale7,c.cScale8,c.cScale9,c.cScale10,c.cScale11]),N=K().range(["transparent",c.cScalePeer0,c.cScalePeer1,c.cScalePeer2,c.cScalePeer3,c.cScalePeer4,c.cScalePeer5,c.cScalePeer6,c.cScalePeer7,c.cScalePeer8,c.cScalePeer9,c.cScalePeer10,c.cScalePeer11]),$=K().range([c.cScaleLabel0,c.cScaleLabel1,c.cScaleLabel2,c.cScaleLabel3,c.cScaleLabel4,c.cScaleLabel5,c.cScaleLabel6,c.cScaleLabel7,c.cScaleLabel8,c.cScaleLabel9,c.cScaleLabel10,c.cScaleLabel11]);d&&b.append("text").attr("x",S/2).attr("y",p/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(d);const V=b.append("g").attr("transform",`translate(0, ${p})`).attr("class","treemapContainer"),E=ae(g).sum(t=>t.value??0).sort((t,i)=>(i.value??0)-(t.value??0)),ne=nt().size([s,x]).paddingTop(t=>t.children&&t.children.length>0?G+W:0).paddingInner(h).paddingLeft(t=>t.children&&t.children.length>0?W:0).paddingRight(t=>t.children&&t.children.length>0?W:0).paddingBottom(t=>t.children&&t.children.length>0?W:0).round(!0)(E),he=ne.descendants().filter(t=>t.children&&t.children.length>0),R=V.selectAll(".treemapSection").data(he).enter().append("g").attr("class","treemapSection").attr("transform",t=>`translate(${t.x0},${t.y0})`);R.append("rect").attr("width",t=>t.x1-t.x0).attr("height",G).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",t=>t.depth===0?"display: none;":""),R.append("clipPath").attr("id",(t,i)=>`clip-section-${a}-${i}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-12)).attr("height",G),R.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class",(t,i)=>`treemapSection section${i}`).attr("fill",t=>y(t.data.name)).attr("fill-opacity",.6).attr("stroke",t=>N(t.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",t=>{if(t.depth===0)return"display: none;";const i=B({cssCompiledStyles:t.data.cssCompiledStyles});return i.nodeStyles+";"+i.borderStyles.join(";")}),R.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",G/2).attr("dominant-baseline","middle").text(t=>t.depth===0?"":t.data.name).attr("font-weight","bold").attr("clip-path",(t,i)=>`url(#clip-section-${a}-${i})`).attr("style",t=>{if(t.depth===0)return"display: none;";const i="dominant-baseline: middle; font-size: 12px; fill:"+$(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=B({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")}).each(function(t){if(t.depth===0)return;const i=j(this),f=t.data.name;i.text(f);const C=t.x1-t.x0,L=6;let T;o.showValues!==!1&&t.value?T=C-10-30-10-L:T=C-L-6;const m=Math.max(15,T),_=i.node();if(_.getComputedTextLength()>m){let z=f;for(;z.length>0;){if(z=f.substring(0,z.length-1),z.length===0){i.text("..."),_.getComputedTextLength()>m&&i.text("");break}if(i.text(z+"..."),_.getComputedTextLength()<=m)break}}}),o.showValues!==!1&&R.append("text").attr("class","treemapSectionValue").attr("x",t=>t.x1-t.x0-10).attr("y",G/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(t=>t.value?u(t.value):"").attr("font-style","italic").attr("style",t=>{if(t.depth===0)return"display: none;";const i="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+$(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=B({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")});const le=ne.leaves(),A=le.length>20,de=A?16:38,X=A?14:28,D=A?4:8,H=A?4:6,Z=A?2:4,re=A?8:10,J=A?1:2,Y=V.selectAll(".treemapLeafGroup").data(le).enter().append("g").attr("class",(t,i)=>`treemapNode treemapLeafGroup leaf${i}${t.data.classSelector?` ${t.data.classSelector}`:""}x`).attr("transform",t=>`translate(${t.x0},${t.y0})`);Y.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class","treemapLeaf").attr("fill",t=>t.parent?y(t.parent.data.name):y(t.data.name)).attr("style",t=>B({cssCompiledStyles:t.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",t=>t.parent?y(t.parent.data.name):y(t.data.name)).attr("stroke-width",3),Y.append("clipPath").attr("id",(t,i)=>`clip-${a}-${i}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-4)).attr("height",t=>Math.max(0,t.y1-t.y0-4)),Y.append("text").attr("class","treemapLabel").attr("x",t=>(t.x1-t.x0)/2).attr("y",t=>(t.y1-t.y0)/2).attr("style",t=>{const i=`text-anchor: middle; dominant-baseline: middle; font-size: ${de}px;fill:`+$(t.data.name)+";",f=B({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")}).attr("clip-path",(t,i)=>`url(#clip-${a}-${i})`).text(t=>t.data.name).each(function(t){const i=j(this),f=t.x1-t.x0,C=t.y1-t.y0,L=i.node(),T=f-2*Z,P=C-2*Z;if(TT&&m>D;)m--,i.style("font-size",`${m}px`);let F=Math.max(H,Math.min(X,Math.round(m*_))),k=m+J+F;for(;k>P&&m>D&&(m--,F=Math.max(H,Math.min(X,Math.round(m*_))),!(FT||m(i.x1-i.x0)/2).attr("y",function(i){return(i.y1-i.y0)/2}).attr("style",i=>{const f=`text-anchor: middle; dominant-baseline: hanging; font-size: ${X}px;fill:`+$(i.data.name)+";",C=B({cssCompiledStyles:i.data.cssCompiledStyles});return f+C.labelStyles.replace("color:","fill:")}).attr("clip-path",(i,f)=>`url(#clip-${a}-${f})`).text(i=>i.value?u(i.value):"").each(function(i){const f=j(this),C=this.parentNode;if(!C){f.style("display","none");return}const L=j(C).select(".treemapLabel");if(L.empty()||L.style("display")==="none"){f.style("display","none");return}const T=parseFloat(L.style("font-size")),m=Math.max(H,Math.min(X,Math.round(T*.6)));f.style("font-size",`${m}px`);const F=(i.y1-i.y0)/2+T/2+J;f.attr("y",F);const k=i.x1-i.x0,se=i.y1-i.y0-4,fe=k-2*Z;f.node().getComputedTextLength()>fe||F+m>se||m{const a=ge(),n=te(),l=Q(a,n.themeVariables),r=Q(ht,e),o=r.titleColor??l.titleColor,h=r.labelColor??l.textColor,d=r.valueColor??l.textColor;return` + .treemapNode.section { + stroke: ${r.sectionStrokeColor}; + stroke-width: ${r.sectionStrokeWidth}; + fill: ${r.sectionFillColor}; + } + .treemapNode.leaf { + stroke: ${r.leafStrokeColor}; + stroke-width: ${r.leafStrokeWidth}; + fill: ${r.leafFillColor}; + } + .treemapLabel { + fill: ${h}; + font-size: ${r.labelFontSize}; + } + .treemapValue { + fill: ${d}; + font-size: ${r.valueFontSize}; + } + .treemapTitle { + fill: ${o}; + font-size: ${r.titleFontSize}; + } + `},"getStyles"),pt=dt,wt={parser:ce,get db(){return new ie},renderer:ct,styles:pt};export{wt as diagram}; diff --git a/apps/kimi-code/dist-web/assets/diagram-G47NLZAW-Dr4-bBys.js b/apps/kimi-code/dist-web/assets/diagram-G47NLZAW-Dr4-bBys.js deleted file mode 100644 index 9ee4a1fd7..000000000 --- a/apps/kimi-code/dist-web/assets/diagram-G47NLZAW-Dr4-bBys.js +++ /dev/null @@ -1,24 +0,0 @@ -import{p as me}from"./chunk-JWPE2WC7-BxqMRrNb.js";import{_ as w,E as ge,y as te,A as Q,D as ye,e as Se,l as ee,be as B,d as j,b as ve,a as xe,n as be,o as we,g as Ce,s as Te,B as Le,bf as $e,p as Ae}from"./mermaid.core-CgZTgv7Y.js";import{s as Fe}from"./chunk-VR4S4FIN-CHAEh_jD.js";import{p as Ne}from"./cynefin-VYW2F7L2-DYKf_Z-v.js";import{b as I}from"./defaultLocale-DX6XiGOO.js";import{o as K}from"./ordinal-Cboi1Yqb.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";import"./init-Gi6I4Gst.js";function Me(e){var a=0,n=e.children,l=n&&n.length;if(!l)a=1;else for(;--l>=0;)a+=n[l].value;e.value=a}function _e(){return this.eachAfter(Me)}function ke(e,a){let n=-1;for(const l of this)e.call(a,l,++n,this);return this}function ze(e,a){for(var n=this,l=[n],r,o,h=-1;n=l.pop();)if(e.call(a,n,++h,this),r=n.children)for(o=r.length-1;o>=0;--o)l.push(r[o]);return this}function Ve(e,a){for(var n=this,l=[n],r=[],o,h,d,g=-1;n=l.pop();)if(r.push(n),o=n.children)for(h=0,d=o.length;h=0;)n+=l[r].value;a.value=n})}function Be(e){return this.eachBefore(function(a){a.children&&a.children.sort(e)})}function Ee(e){for(var a=this,n=Re(a,e),l=[a];a!==n;)a=a.parent,l.push(a);for(var r=l.length;e!==n;)l.splice(r,0,e),e=e.parent;return l}function Re(e,a){if(e===a)return e;var n=e.ancestors(),l=a.ancestors(),r=null;for(e=n.pop(),a=l.pop();e===a;)r=e,e=n.pop(),a=l.pop();return r}function We(){for(var e=this,a=[e];e=e.parent;)a.push(e);return a}function He(){return Array.from(this)}function Ie(){var e=[];return this.eachBefore(function(a){a.children||e.push(a)}),e}function Oe(){var e=this,a=[];return e.each(function(n){n!==e&&a.push({source:n.parent,target:n})}),a}function*Ge(){var e=this,a,n=[e],l,r,o;do for(a=n.reverse(),n=[];e=a.pop();)if(yield e,l=e.children)for(r=0,o=l.length;r=0;--d)r.push(o=h[d]=new U(h[d])),o.parent=l,o.depth=l.depth+1;return n.eachBefore(Ue)}function qe(){return ae(this).eachBefore(je)}function Xe(e){return e.children}function Ye(e){return Array.isArray(e)?e[1]:null}function je(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function Ue(e){var a=0;do e.height=a;while((e=e.parent)&&e.height<++a)}function U(e){this.data=e,this.depth=this.height=0,this.parent=null}U.prototype=ae.prototype={constructor:U,count:_e,each:ke,eachAfter:Ve,eachBefore:ze,find:De,sum:Pe,sort:Be,path:Ee,ancestors:We,descendants:He,leaves:Ie,links:Oe,copy:qe,[Symbol.iterator]:Ge};function Ze(e){if(typeof e!="function")throw new Error;return e}function O(){return 0}function G(e){return function(){return e}}function Je(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)}function Ke(e,a,n,l,r){for(var o=e.children,h,d=-1,g=o.length,c=e.value&&(l-a)/e.value;++dN&&(N=c),M=u*u*R,$=Math.max(N/M,M/y),$>V){u-=c;break}V=$}h.push(g={value:u,dice:x1?l:1)},n})(et);function nt(){var e=at,a=!1,n=1,l=1,r=[0],o=O,h=O,d=O,g=O,c=O;function p(s){return s.x0=s.y0=0,s.x1=n,s.y1=l,s.eachBefore(b),r=[0],a&&s.eachBefore(Je),s}function b(s){var x=r[s.depth],S=s.x0+x,v=s.y0+x,u=s.x1-x,y=s.y1-x;u{$e(r)&&(n?.textStyles?n.textStyles.push(r):n.textStyles=[r]),n?.styles?n.styles.push(r):n.styles=[r]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){Ae(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function oe(e){if(!e.length)return[];const a=[],n=[];return e.forEach(l=>{const r={name:l.name,children:l.type==="Leaf"?void 0:[]};for(r.classSelector=l?.classSelector,l?.cssCompiledStyles&&(r.cssCompiledStyles=l.cssCompiledStyles),l.type==="Leaf"&&l.value!==void 0&&(r.value=l.value);n.length>0&&n[n.length-1].level>=l.level;)n.pop();if(n.length===0)a.push(r);else{const o=n[n.length-1].node;o.children?o.children.push(r):o.children=[r]}l.type!=="Leaf"&&n.push({node:r,level:l.level})}),a}w(oe,"buildHierarchy");var lt=w((e,a)=>{me(e,a);const n=[];for(const o of e.TreemapRows??[])o.$type==="ClassDefStatement"&&a.addClass(o.className??"",o.styleText??"");for(const o of e.TreemapRows??[]){const h=o.item;if(!h)continue;const d=o.indent?parseInt(o.indent):0,g=rt(h),c=h.classSelector?a.getStylesForClass(h.classSelector):[],p=c.length>0?c:void 0,b={level:d,name:g,type:h.$type,value:h.value,classSelector:h.classSelector,cssCompiledStyles:p};n.push(b)}const l=oe(n),r=w((o,h)=>{for(const d of o)a.addNode(d,h),d.children&&d.children.length>0&&r(d.children,h+1)},"addNodesRecursively");r(l,0)},"populate"),rt=w(e=>e.name?String(e.name):"","getItemName"),ce={parser:{yy:void 0},parse:w(async e=>{try{const n=await Ne("treemap",e);ee.debug("Treemap AST:",n);const l=ce.parser?.yy;if(!(l instanceof ie))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.");lt(n,l)}catch(a){throw ee.error("Error parsing treemap:",a),a}},"parse")},st=10,E=10,q=25,it=w((e,a,n,l)=>{const r=l.db,o=r.getConfig(),h=o.padding??st,d=r.getDiagramTitle(),g=r.getRoot(),{themeVariables:c}=te();if(!g)return;const p=d?30:0,b=ye(a),s=o.nodeWidth?o.nodeWidth*E:960,x=o.nodeHeight?o.nodeHeight*E:500,S=s,v=x+p;b.attr("viewBox",`0 0 ${S} ${v}`),Se(b,v,S,o.useMaxWidth);let u;try{const t=o.valueFormat||",";if(t==="$0,0")u=w(i=>"$"+I(",")(i),"valueFormat");else if(t.startsWith("$")&&t.includes(",")){const i=/\.\d+/.exec(t),f=i?i[0]:"";u=w(C=>"$"+I(","+f)(C),"valueFormat")}else if(t.startsWith("$")){const i=t.substring(1);u=w(f=>"$"+I(i||"")(f),"valueFormat")}else u=I(t)}catch(t){ee.error("Error creating format function:",t),u=I(",")}const y=K().range(["transparent",c.cScale0,c.cScale1,c.cScale2,c.cScale3,c.cScale4,c.cScale5,c.cScale6,c.cScale7,c.cScale8,c.cScale9,c.cScale10,c.cScale11]),N=K().range(["transparent",c.cScalePeer0,c.cScalePeer1,c.cScalePeer2,c.cScalePeer3,c.cScalePeer4,c.cScalePeer5,c.cScalePeer6,c.cScalePeer7,c.cScalePeer8,c.cScalePeer9,c.cScalePeer10,c.cScalePeer11]),$=K().range([c.cScaleLabel0,c.cScaleLabel1,c.cScaleLabel2,c.cScaleLabel3,c.cScaleLabel4,c.cScaleLabel5,c.cScaleLabel6,c.cScaleLabel7,c.cScaleLabel8,c.cScaleLabel9,c.cScaleLabel10,c.cScaleLabel11]);d&&b.append("text").attr("x",S/2).attr("y",p/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(d);const V=b.append("g").attr("transform",`translate(0, ${p})`).attr("class","treemapContainer"),R=ae(g).sum(t=>t.value??0).sort((t,i)=>(i.value??0)-(t.value??0)),ne=nt().size([s,x]).paddingTop(t=>t.children&&t.children.length>0?q+E:0).paddingInner(h).paddingLeft(t=>t.children&&t.children.length>0?E:0).paddingRight(t=>t.children&&t.children.length>0?E:0).paddingBottom(t=>t.children&&t.children.length>0?E:0).round(!0)(R),he=ne.descendants().filter(t=>t.children&&t.children.length>0),W=V.selectAll(".treemapSection").data(he).enter().append("g").attr("class","treemapSection").attr("transform",t=>`translate(${t.x0},${t.y0})`);W.append("rect").attr("width",t=>t.x1-t.x0).attr("height",q).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",t=>t.depth===0?"display: none;":""),W.append("clipPath").attr("id",(t,i)=>`clip-section-${a}-${i}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-12)).attr("height",q),W.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class",(t,i)=>`treemapSection section${i}`).attr("fill",t=>y(t.data.name)).attr("fill-opacity",.6).attr("stroke",t=>N(t.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",t=>{if(t.depth===0)return"display: none;";const i=B({cssCompiledStyles:t.data.cssCompiledStyles});return i.nodeStyles+";"+i.borderStyles.join(";")}),W.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",q/2).attr("dominant-baseline","middle").text(t=>t.depth===0?"":t.data.name).attr("font-weight","bold").attr("clip-path",(t,i)=>`url(#clip-section-${a}-${i})`).attr("style",t=>{if(t.depth===0)return"display: none;";const i="dominant-baseline: middle; font-size: 12px; fill:"+$(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=B({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")}).each(function(t){if(t.depth===0)return;const i=j(this),f=t.data.name;i.text(f);const C=t.x1-t.x0,L=6;let T;o.showValues!==!1&&t.value?T=C-10-30-10-L:T=C-L-6;const m=Math.max(15,T),_=i.node();if(_.getComputedTextLength()>m){let z=f;for(;z.length>0;){if(z=f.substring(0,z.length-1),z.length===0){i.text("..."),_.getComputedTextLength()>m&&i.text("");break}if(i.text(z+"..."),_.getComputedTextLength()<=m)break}}}),o.showValues!==!1&&W.append("text").attr("class","treemapSectionValue").attr("x",t=>t.x1-t.x0-10).attr("y",q/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(t=>t.value?u(t.value):"").attr("font-style","italic").attr("style",t=>{if(t.depth===0)return"display: none;";const i="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+$(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=B({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")});const le=ne.leaves(),A=le.length>20,de=A?16:38,X=A?14:28,D=A?4:8,H=A?4:6,Z=A?2:4,re=A?8:10,J=A?1:2,Y=V.selectAll(".treemapLeafGroup").data(le).enter().append("g").attr("class",(t,i)=>`treemapNode treemapLeafGroup leaf${i}${t.data.classSelector?` ${t.data.classSelector}`:""}x`).attr("transform",t=>`translate(${t.x0},${t.y0})`);Y.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class","treemapLeaf").attr("fill",t=>t.parent?y(t.parent.data.name):y(t.data.name)).attr("style",t=>B({cssCompiledStyles:t.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",t=>t.parent?y(t.parent.data.name):y(t.data.name)).attr("stroke-width",3),Y.append("clipPath").attr("id",(t,i)=>`clip-${a}-${i}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-4)).attr("height",t=>Math.max(0,t.y1-t.y0-4)),Y.append("text").attr("class","treemapLabel").attr("x",t=>(t.x1-t.x0)/2).attr("y",t=>(t.y1-t.y0)/2).attr("style",t=>{const i=`text-anchor: middle; dominant-baseline: middle; font-size: ${de}px;fill:`+$(t.data.name)+";",f=B({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")}).attr("clip-path",(t,i)=>`url(#clip-${a}-${i})`).text(t=>t.data.name).each(function(t){const i=j(this),f=t.x1-t.x0,C=t.y1-t.y0,L=i.node(),T=f-2*Z,P=C-2*Z;if(TT&&m>D;)m--,i.style("font-size",`${m}px`);let F=Math.max(H,Math.min(X,Math.round(m*_))),k=m+J+F;for(;k>P&&m>D&&(m--,F=Math.max(H,Math.min(X,Math.round(m*_))),!(FT||m(i.x1-i.x0)/2).attr("y",function(i){return(i.y1-i.y0)/2}).attr("style",i=>{const f=`text-anchor: middle; dominant-baseline: hanging; font-size: ${X}px;fill:`+$(i.data.name)+";",C=B({cssCompiledStyles:i.data.cssCompiledStyles});return f+C.labelStyles.replace("color:","fill:")}).attr("clip-path",(i,f)=>`url(#clip-${a}-${f})`).text(i=>i.value?u(i.value):"").each(function(i){const f=j(this),C=this.parentNode;if(!C){f.style("display","none");return}const L=j(C).select(".treemapLabel");if(L.empty()||L.style("display")==="none"){f.style("display","none");return}const T=parseFloat(L.style("font-size")),m=Math.max(H,Math.min(X,Math.round(T*.6)));f.style("font-size",`${m}px`);const F=(i.y1-i.y0)/2+T/2+J;f.attr("y",F);const k=i.x1-i.x0,se=i.y1-i.y0-4,fe=k-2*Z;f.node().getComputedTextLength()>fe||F+m>se||m{const a=ge(),n=te(),l=Q(a,n.themeVariables),r=Q(ht,e),o=r.titleColor??l.titleColor,h=r.labelColor??l.textColor,d=r.valueColor??l.textColor;return` - .treemapNode.section { - stroke: ${r.sectionStrokeColor}; - stroke-width: ${r.sectionStrokeWidth}; - fill: ${r.sectionFillColor}; - } - .treemapNode.leaf { - stroke: ${r.leafStrokeColor}; - stroke-width: ${r.leafStrokeWidth}; - fill: ${r.leafFillColor}; - } - .treemapLabel { - fill: ${h}; - font-size: ${r.labelFontSize}; - } - .treemapValue { - fill: ${d}; - font-size: ${r.valueFontSize}; - } - .treemapTitle { - fill: ${o}; - font-size: ${r.titleFontSize}; - } - `},"getStyles"),pt=dt,Ct={parser:ce,get db(){return new ie},renderer:ct,styles:pt};export{Ct as diagram}; diff --git a/apps/kimi-code/dist-web/assets/diagram-NH7WQ7WH-CKxpc0Zm.js b/apps/kimi-code/dist-web/assets/diagram-NH7WQ7WH-CKxpc0Zm.js new file mode 100644 index 000000000..605600e48 --- /dev/null +++ b/apps/kimi-code/dist-web/assets/diagram-NH7WQ7WH-CKxpc0Zm.js @@ -0,0 +1,24 @@ +import{p as B}from"./chunk-JWPE2WC7-TZtJmqSP.js";import{_ as b,B as u,F as $,e as C,l as m,b as S,a as D,o as T,p as z,g as F,s as P,z as E,D as A,q as W}from"./mermaid.core-B_UcP3X_.js";import{p as _}from"./cynefin-VYW2F7L2-BnQdr27u.js";import"./index-BOtIzGLC.js";var N=A.packet,w=class{constructor(){this.packet=[],this.setAccTitle=S,this.getAccTitle=D,this.setDiagramTitle=T,this.getDiagramTitle=z,this.getAccDescription=F,this.setAccDescription=P}static{b(this,"PacketDB")}getConfig(){const t=u({...N,...E().packet});return t.showBits&&(t.paddingY+=10),t}getPacket(){return this.packet}pushWord(t){t.length>0&&this.packet.push(t)}clear(){W(),this.packet=[]}},L=1e4,M=b((t,e)=>{B(t,e);let r=-1,s=[],n=1;const{bitsPerRow:l}=e.getConfig();for(let{start:a,end:i,bits:d,label:c}of t.blocks){if(a!==void 0&&i!==void 0&&i{if(t.start===void 0)throw new Error("start should have been set during first phase");if(t.end===void 0)throw new Error("end should have been set during first phase");if(t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);if(t.end+1<=e*r)return[t,void 0];const s=e*r-1,n=e*r;return[{start:t.start,end:s,label:t.label,bits:s-t.start},{start:n,end:t.end,label:t.label,bits:t.end-n}]},"getNextFittingBlock"),v={parser:{yy:void 0},parse:b(async t=>{const e=await _("packet",t),r=v.parser?.yy;if(!(r instanceof w))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.");m.debug(e),M(e,r)},"parse")},I=b((t,e,r,s)=>{const n=s.db,l=n.getConfig(),{rowHeight:a,paddingY:i,bitWidth:d,bitsPerRow:c}=l,p=n.getPacket(),o=n.getDiagramTitle(),h=a+i,g=h*(p.length+1)-(o?0:a),k=d*c+2,f=$(e);f.attr("viewBox",`0 0 ${k} ${g}`),C(f,g,k,l.useMaxWidth);for(const[x,y]of p.entries())O(f,y,x,l);f.append("text").text(o).attr("x",k/2).attr("y",g-h/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),O=b((t,e,r,{rowHeight:s,paddingX:n,paddingY:l,bitWidth:a,bitsPerRow:i,showBits:d})=>{const c=t.append("g"),p=r*(s+l)+l;for(const o of e){const h=o.start%i*a+1,g=(o.end-o.start+1)*a-n;if(c.append("rect").attr("x",h).attr("y",p).attr("width",g).attr("height",s).attr("class","packetBlock"),c.append("text").attr("x",h+g/2).attr("y",p+s/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(o.label),!d)continue;const k=o.end===o.start,f=p-2;c.append("text").attr("x",h+(k?g/2:0)).attr("y",f).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",k?"middle":"start").text(o.start),k||c.append("text").attr("x",h+g).attr("y",f).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(o.end)}},"drawWord"),j={draw:I},q={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},G=b(({packet:t}={})=>{const e=u(q,t);return` + .packetByte { + font-size: ${e.byteFontSize}; + } + .packetByte.start { + fill: ${e.startByteColor}; + } + .packetByte.end { + fill: ${e.endByteColor}; + } + .packetLabel { + fill: ${e.labelColor}; + font-size: ${e.labelFontSize}; + } + .packetTitle { + fill: ${e.titleColor}; + font-size: ${e.titleFontSize}; + } + .packetBlock { + stroke: ${e.blockStrokeColor}; + stroke-width: ${e.blockStrokeWidth}; + fill: ${e.blockFillColor}; + } + `},"styles"),X={parser:v,get db(){return new w},renderer:j,styles:G};export{X as diagram}; diff --git a/apps/kimi-code/dist-web/assets/diagram-NH7WQ7WH-Cj9RyKgp.js b/apps/kimi-code/dist-web/assets/diagram-NH7WQ7WH-Cj9RyKgp.js deleted file mode 100644 index 3eb7f4dc9..000000000 --- a/apps/kimi-code/dist-web/assets/diagram-NH7WQ7WH-Cj9RyKgp.js +++ /dev/null @@ -1,24 +0,0 @@ -import{p as B}from"./chunk-JWPE2WC7-BxqMRrNb.js";import{_ as b,A as u,D as $,e as C,l as m,b as S,a as D,n as T,o as P,g as z,s as A,y as E,B as F,p as W}from"./mermaid.core-CgZTgv7Y.js";import{p as _}from"./cynefin-VYW2F7L2-DYKf_Z-v.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var N=F.packet,w=class{constructor(){this.packet=[],this.setAccTitle=S,this.getAccTitle=D,this.setDiagramTitle=T,this.getDiagramTitle=P,this.getAccDescription=z,this.setAccDescription=A}static{b(this,"PacketDB")}getConfig(){const t=u({...N,...E().packet});return t.showBits&&(t.paddingY+=10),t}getPacket(){return this.packet}pushWord(t){t.length>0&&this.packet.push(t)}clear(){W(),this.packet=[]}},L=1e4,M=b((t,e)=>{B(t,e);let r=-1,o=[],n=1;const{bitsPerRow:l}=e.getConfig();for(let{start:a,end:i,bits:d,label:c}of t.blocks){if(a!==void 0&&i!==void 0&&i{if(t.start===void 0)throw new Error("start should have been set during first phase");if(t.end===void 0)throw new Error("end should have been set during first phase");if(t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);if(t.end+1<=e*r)return[t,void 0];const o=e*r-1,n=e*r;return[{start:t.start,end:o,label:t.label,bits:o-t.start},{start:n,end:t.end,label:t.label,bits:t.end-n}]},"getNextFittingBlock"),v={parser:{yy:void 0},parse:b(async t=>{const e=await _("packet",t),r=v.parser?.yy;if(!(r instanceof w))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.");m.debug(e),M(e,r)},"parse")},I=b((t,e,r,o)=>{const n=o.db,l=n.getConfig(),{rowHeight:a,paddingY:i,bitWidth:d,bitsPerRow:c}=l,p=n.getPacket(),s=n.getDiagramTitle(),h=a+i,g=h*(p.length+1)-(s?0:a),k=d*c+2,f=$(e);f.attr("viewBox",`0 0 ${k} ${g}`),C(f,g,k,l.useMaxWidth);for(const[x,y]of p.entries())O(f,y,x,l);f.append("text").text(s).attr("x",k/2).attr("y",g-h/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),O=b((t,e,r,{rowHeight:o,paddingX:n,paddingY:l,bitWidth:a,bitsPerRow:i,showBits:d})=>{const c=t.append("g"),p=r*(o+l)+l;for(const s of e){const h=s.start%i*a+1,g=(s.end-s.start+1)*a-n;if(c.append("rect").attr("x",h).attr("y",p).attr("width",g).attr("height",o).attr("class","packetBlock"),c.append("text").attr("x",h+g/2).attr("y",p+o/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(s.label),!d)continue;const k=s.end===s.start,f=p-2;c.append("text").attr("x",h+(k?g/2:0)).attr("y",f).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",k?"middle":"start").text(s.start),k||c.append("text").attr("x",h+g).attr("y",f).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(s.end)}},"drawWord"),j={draw:I},G={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},H=b(({packet:t}={})=>{const e=u(G,t);return` - .packetByte { - font-size: ${e.byteFontSize}; - } - .packetByte.start { - fill: ${e.startByteColor}; - } - .packetByte.end { - fill: ${e.endByteColor}; - } - .packetLabel { - fill: ${e.labelColor}; - font-size: ${e.labelFontSize}; - } - .packetTitle { - fill: ${e.titleColor}; - font-size: ${e.titleFontSize}; - } - .packetBlock { - stroke: ${e.blockStrokeColor}; - stroke-width: ${e.blockStrokeWidth}; - fill: ${e.blockFillColor}; - } - `},"styles"),J={parser:v,get db(){return new w},renderer:j,styles:H};export{J as diagram}; diff --git a/apps/kimi-code/dist-web/assets/diagram-OA4YK3LP-JUEB_AtR.js b/apps/kimi-code/dist-web/assets/diagram-OA4YK3LP-B5bqGU_R.js similarity index 81% rename from apps/kimi-code/dist-web/assets/diagram-OA4YK3LP-JUEB_AtR.js rename to apps/kimi-code/dist-web/assets/diagram-OA4YK3LP-B5bqGU_R.js index ffaec75ca..d822526c6 100644 --- a/apps/kimi-code/dist-web/assets/diagram-OA4YK3LP-JUEB_AtR.js +++ b/apps/kimi-code/dist-web/assets/diagram-OA4YK3LP-B5bqGU_R.js @@ -1,7 +1,7 @@ -import{I as X}from"./chunk-2Q5K7J3B-D8ifWrnI.js";import{p as O}from"./chunk-JWPE2WC7-BxqMRrNb.js";import{n as G,b as Y,s as P,o as j,g as F,a as Z,_ as f,A,l as D,D as q,e as U,y as N,p as J,i as K,ai as Q,B as ee,aj as te}from"./mermaid.core-CgZTgv7Y.js";import{p as ne}from"./cynefin-VYW2F7L2-DYKf_Z-v.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var E=/[─━│┃└┗├┣]/,S=/[└┗├┣]/,re=/[─━]/,V=/^[\s│┃]+$/,$=/^\s*(title[\t ]|accTitle[\t ]*:|accDescr[\t ]*[:{])/,k=/^\s*%%/,ie=" ";function L(n){return n.some(e=>E.test(e))}f(L,"isBoxDrawingFormat");function _(n){for(const e of n){const t=S.exec(e);if(t?.index&&t.index>0)return t.index}return 4}f(_,"inferSegmentWidth");function M(n,e){return n.replace(/\bline\s+(\d+)\b/gi,(t,r)=>{const i=parseInt(r,10),a=e.get(i);return a?`line ${a}`:t})}f(M,"remapErrorLines");function R(n){const e=n.split(` +import{I as X}from"./chunk-2Q5K7J3B-CMIj8h4B.js";import{p as O}from"./chunk-JWPE2WC7-TZtJmqSP.js";import{o as G,b as Y,s as F,p as P,g as j,a as q,_ as f,B as A,l as D,F as Z,e as U,z as N,q as J,i as K,ai as Q,D as ee,aj as te}from"./mermaid.core-B_UcP3X_.js";import{p as ne}from"./cynefin-VYW2F7L2-BnQdr27u.js";import"./index-BOtIzGLC.js";var E=/[─━│┃└┗├┣]/,S=/[└┗├┣]/,re=/[─━]/,V=/^[\s│┃]+$/,$=/^\s*(title[\t ]|accTitle[\t ]*:|accDescr[\t ]*[:{])/,k=/^\s*%%/,ie=" ";function L(n){return n.some(e=>E.test(e))}f(L,"isBoxDrawingFormat");function _(n){for(const e of n){const t=S.exec(e);if(t?.index&&t.index>0)return t.index}return 4}f(_,"inferSegmentWidth");function M(n,e){return n.replace(/\bline\s+(\d+)\b/gi,(t,r)=>{const i=parseInt(r,10),a=e.get(i);return a?`line ${a}`:t})}f(M,"remapErrorLines");function R(n){const e=n.split(` `),t=new Map;let r=-1;for(const[s,o]of e.entries())if(o.trim()==="treeView-beta"){r=s;break}if(r===-1)return{text:n,lineMap:t};const i=[];for(let s=r+1;s({cnt:1,stack:[{id:0,level:-1,name:"/",nodeType:"directory",children:[]}]})),oe=f(()=>{x.reset(),J()},"clear"),se=f(()=>x.records.stack[0],"getRoot"),ae=f(()=>x.records.cnt,"getCount"),ce=ee.treeView,le=f(()=>A(ce,N().treeView),"getConfig"),de=f((n,e,t,r,i,a)=>{for(;n<=x.records.stack[x.records.stack.length-1].level;)x.records.stack.pop();const c={id:x.records.cnt++,level:n,name:e,nodeType:t,icon:i,cssClass:r,description:a,children:[]};x.records.stack[x.records.stack.length-1].children.push(c),x.records.stack.push(c)},"addNode"),he={clear:oe,addNode:de,getRoot:se,getCount:ae,getConfig:le,getAccTitle:Z,getAccDescription:F,getDiagramTitle:j,setAccDescription:P,setAccTitle:Y,setDiagramTitle:G},I=he,pe=f(n=>{O(n,I);for(const e of n.nodes){const t=typeof e.indent=="number"?e.indent:0;let r=e.name;const i=r.endsWith("/");i&&(r=r.slice(0,-1));const a=i?"directory":"file",c=e.classAnnotation||void 0,l=e.iconAnnotation,s=l!==void 0?l||"none":void 0,o=e.descAnnotation||void 0,h=o?K(o,N()):void 0;I.addNode(t,r,a,c,s,h)}},"populate"),fe={parse:f(async n=>{const{text:e,lineMap:t}=R(n);try{const r=await ne("treeView",e);D.debug(r),pe(r)}catch(r){throw t.size>0&&r instanceof Error&&(r.message=M(r.message,t)),r}},"parse")},b={prefix:"mermaid-treeview",height:24,width:24,icons:{folder:{body:''},file:{body:''}}};function H(n,e){const t=e?.filenameIcons?.[n];if(t)return t;const r=n.lastIndexOf(".");if(r>0){const i=n.substring(r).toLowerCase(),a=e?.extensionIcons;return a?.[i]??a?.[i.slice(1)]}}f(H,"detectIcon");function C(n,e){return n.includes(":")?n:n in b.icons||!e?`${b.prefix}:${n}`:`${e}:${n}`}f(C,"qualifyIcon");function B(n,e){if(n.icon!=="none"){if(n.icon)return C(n.icon,e.defaultIconPack);if(e.showIcons){if(n.nodeType==="file"){const t=H(n.name,e);if(t==="none")return;if(t)return C(t,e.defaultIconPack)}return`${b.prefix}:${n.nodeType==="directory"?"folder":"file"}`}}}f(B,"getNodeIcon");te([{name:b.prefix,icons:b}]);var y=14,ge=4,ue=16,z=f((n,e)=>`tv-icon-${n}-${e.replace(/[^\w-]/g,"-")}`,"iconSymbolId"),we=f(async(n,e,t,r)=>{const i=new Set,a=f(s=>{const o=B(s,t);o&&i.add(o),s.children.forEach(a)},"collect");if(a(e),i.size===0)return;const c=await Promise.all([...i].map(async s=>({icon:s,svg:await Q(s,{height:y,width:y})}))),l=n.append("defs");for(const{icon:s,svg:o}of c)l.append("g").attr("id",z(r,s)).html(o)},"injectIconDefs"),me=f((n,e,t,r,i,a)=>{const c=r.append("g");let l="treeView-node-label";t.nodeType==="directory"&&(l+=" treeView-node-dir"),t.cssClass&&(l+=` ${t.cssClass}`);const s=y+ge,o=B(t,i),h=o!==void 0;o&&c.append("use").attr("xlink:href",`#${z(a,o)}`).attr("x",n+i.paddingX).attr("y",e+i.paddingY).attr("class","treeView-node-icon");const p=c.append("text").text(t.name).attr("dominant-baseline","middle").attr("class",l),{height:d,width:w}=p.node().getBBox(),g=d+i.paddingY*2,m=n+i.paddingX+(h?s:0);p.attr("x",m),p.attr("y",e+g/2);const u=m+w,v=w+i.paddingX*2+(h?s:0);return t.BBox={x:n,y:e,width:v,height:g},t.cssClass?.split(/\s+/).includes("highlight")&&c.insert("rect",":first-child").attr("x",n).attr("y",e+1).attr("width",0).attr("height",g-2).attr("rx",3).attr("class","treeView-highlight-bg"),{node:t,nodeGroup:c,labelRightEdge:u,centerY:e+g/2}},"positionLabel"),T=f((n,e,t,r,i,a)=>n.append("line").attr("x1",e).attr("y1",t).attr("x2",r).attr("y2",i).attr("stroke-width",a).attr("class","treeView-node-line"),"positionLine"),xe=f((n,e,t,r)=>{let i=0,a=0;const c=[],l=f((h,p,d,w)=>{const g=w*(d.rowIndent+d.paddingX),m=me(g,i,p,h,d,r);c.push(m);const{height:u,width:v}=p.BBox;T(h,g-d.rowIndent,i+u/2,g,i+u/2,d.lineThickness),a=Math.max(a,g+v),i+=u},"drawNode"),s=f((h,p=0)=>{l(n,h,t,p),h.children.forEach(m=>{s(m,p+1)});const{x:d,y:w,height:g}=h.BBox;if(h.children.length){const{y:m,height:u}=h.children[h.children.length-1].BBox;T(n,d+t.paddingX,w+g,d+t.paddingX,m+u/2+t.lineThickness/2,t.lineThickness)}},"processNode");s(e);const o=c.filter(h=>h.node.description);if(o.length>0){const p=Math.max(...c.map(d=>d.labelRightEdge))+ue;for(const d of o){const g=d.nodeGroup.append("text").text(d.node.description).attr("dominant-baseline","middle").attr("class","treeView-node-description").attr("x",p).attr("y",d.centerY).node().getBBox();a=Math.max(a,p+g.width+t.paddingX)}}for(const h of c)if(h.node.cssClass?.split(/\s+/).includes("highlight")){const p=h.nodeGroup.select(".treeView-highlight-bg");if(!p.empty()){const d=a-h.node.BBox.x+8;p.attr("width",d),a=Math.max(a,h.node.BBox.x+d+2)}}return{totalHeight:i,totalWidth:a}},"drawTree"),ve=f(async(n,e,t,r)=>{D.debug(`Rendering treeView diagram -`+n);const i=r.db,a=i.getRoot(),c=i.getConfig(),l=q(e);await we(l,a,c,e);const s=l.append("g");s.attr("class","tree-view");const{totalHeight:o,totalWidth:h}=xe(s,a,c,e);l.attr("viewBox",`-${c.lineThickness/2} 0 ${h} ${o}`),U(l,o,h,c.useMaxWidth)},"draw"),be={draw:ve},Ie=be,Ce={labelFontSize:"16px",labelColor:"black",lineColor:"black",iconColor:"#546e7a",descriptionColor:"#6a9955",highlightBg:"rgba(255, 193, 7, 0.15)",highlightStroke:"#ffc107"},ye=f(({treeView:n})=>{const{labelFontSize:e,labelColor:t,lineColor:r,iconColor:i,descriptionColor:a,highlightBg:c,highlightStroke:l}=A(Ce,n);return` +`),lineMap:t}}f(R,"preprocessBoxDrawing");var x=new X(()=>({cnt:1,stack:[{id:0,level:-1,name:"/",nodeType:"directory",children:[]}]})),oe=f(()=>{x.reset(),J()},"clear"),se=f(()=>x.records.stack[0],"getRoot"),ae=f(()=>x.records.cnt,"getCount"),ce=ee.treeView,le=f(()=>A(ce,N().treeView),"getConfig"),de=f((n,e,t,r,i,a)=>{for(;n<=x.records.stack[x.records.stack.length-1].level;)x.records.stack.pop();const c={id:x.records.cnt++,level:n,name:e,nodeType:t,icon:i,cssClass:r,description:a,children:[]};x.records.stack[x.records.stack.length-1].children.push(c),x.records.stack.push(c)},"addNode"),he={clear:oe,addNode:de,getRoot:se,getCount:ae,getConfig:le,getAccTitle:q,getAccDescription:j,getDiagramTitle:P,setAccDescription:F,setAccTitle:Y,setDiagramTitle:G},I=he,pe=f(n=>{O(n,I);for(const e of n.nodes){const t=typeof e.indent=="number"?e.indent:0;let r=e.name;const i=r.endsWith("/");i&&(r=r.slice(0,-1));const a=i?"directory":"file",c=e.classAnnotation||void 0,l=e.iconAnnotation,s=l!==void 0?l||"none":void 0,o=e.descAnnotation||void 0,h=o?K(o,N()):void 0;I.addNode(t,r,a,c,s,h)}},"populate"),fe={parse:f(async n=>{const{text:e,lineMap:t}=R(n);try{const r=await ne("treeView",e);D.debug(r),pe(r)}catch(r){throw t.size>0&&r instanceof Error&&(r.message=M(r.message,t)),r}},"parse")},b={prefix:"mermaid-treeview",height:24,width:24,icons:{folder:{body:''},file:{body:''}}};function z(n,e){const t=e?.filenameIcons?.[n];if(t)return t;const r=n.lastIndexOf(".");if(r>0){const i=n.substring(r).toLowerCase(),a=e?.extensionIcons;return a?.[i]??a?.[i.slice(1)]}}f(z,"detectIcon");function C(n,e){return n.includes(":")?n:n in b.icons||!e?`${b.prefix}:${n}`:`${e}:${n}`}f(C,"qualifyIcon");function B(n,e){if(n.icon!=="none"){if(n.icon)return C(n.icon,e.defaultIconPack);if(e.showIcons){if(n.nodeType==="file"){const t=z(n.name,e);if(t==="none")return;if(t)return C(t,e.defaultIconPack)}return`${b.prefix}:${n.nodeType==="directory"?"folder":"file"}`}}}f(B,"getNodeIcon");te([{name:b.prefix,icons:b}]);var y=14,ge=4,ue=16,H=f((n,e)=>`tv-icon-${n}-${e.replace(/[^\w-]/g,"-")}`,"iconSymbolId"),we=f(async(n,e,t,r)=>{const i=new Set,a=f(s=>{const o=B(s,t);o&&i.add(o),s.children.forEach(a)},"collect");if(a(e),i.size===0)return;const c=await Promise.all([...i].map(async s=>({icon:s,svg:await Q(s,{height:y,width:y})}))),l=n.append("defs");for(const{icon:s,svg:o}of c)l.append("g").attr("id",H(r,s)).html(o)},"injectIconDefs"),me=f((n,e,t,r,i,a)=>{const c=r.append("g");let l="treeView-node-label";t.nodeType==="directory"&&(l+=" treeView-node-dir"),t.cssClass&&(l+=` ${t.cssClass}`);const s=y+ge,o=B(t,i),h=o!==void 0;o&&c.append("use").attr("xlink:href",`#${H(a,o)}`).attr("x",n+i.paddingX).attr("y",e+i.paddingY).attr("class","treeView-node-icon");const p=c.append("text").text(t.name).attr("dominant-baseline","middle").attr("class",l),{height:d,width:w}=p.node().getBBox(),g=d+i.paddingY*2,m=n+i.paddingX+(h?s:0);p.attr("x",m),p.attr("y",e+g/2);const u=m+w,v=w+i.paddingX*2+(h?s:0);return t.BBox={x:n,y:e,width:v,height:g},t.cssClass?.split(/\s+/).includes("highlight")&&c.insert("rect",":first-child").attr("x",n).attr("y",e+1).attr("width",0).attr("height",g-2).attr("rx",3).attr("class","treeView-highlight-bg"),{node:t,nodeGroup:c,labelRightEdge:u,centerY:e+g/2}},"positionLabel"),T=f((n,e,t,r,i,a)=>n.append("line").attr("x1",e).attr("y1",t).attr("x2",r).attr("y2",i).attr("stroke-width",a).attr("class","treeView-node-line"),"positionLine"),xe=f((n,e,t,r)=>{let i=0,a=0;const c=[],l=f((h,p,d,w)=>{const g=w*(d.rowIndent+d.paddingX),m=me(g,i,p,h,d,r);c.push(m);const{height:u,width:v}=p.BBox;T(h,g-d.rowIndent,i+u/2,g,i+u/2,d.lineThickness),a=Math.max(a,g+v),i+=u},"drawNode"),s=f((h,p=0)=>{l(n,h,t,p),h.children.forEach(m=>{s(m,p+1)});const{x:d,y:w,height:g}=h.BBox;if(h.children.length){const{y:m,height:u}=h.children[h.children.length-1].BBox;T(n,d+t.paddingX,w+g,d+t.paddingX,m+u/2+t.lineThickness/2,t.lineThickness)}},"processNode");s(e);const o=c.filter(h=>h.node.description);if(o.length>0){const p=Math.max(...c.map(d=>d.labelRightEdge))+ue;for(const d of o){const g=d.nodeGroup.append("text").text(d.node.description).attr("dominant-baseline","middle").attr("class","treeView-node-description").attr("x",p).attr("y",d.centerY).node().getBBox();a=Math.max(a,p+g.width+t.paddingX)}}for(const h of c)if(h.node.cssClass?.split(/\s+/).includes("highlight")){const p=h.nodeGroup.select(".treeView-highlight-bg");if(!p.empty()){const d=a-h.node.BBox.x+8;p.attr("width",d),a=Math.max(a,h.node.BBox.x+d+2)}}return{totalHeight:i,totalWidth:a}},"drawTree"),ve=f(async(n,e,t,r)=>{D.debug(`Rendering treeView diagram +`+n);const i=r.db,a=i.getRoot(),c=i.getConfig(),l=Z(e);await we(l,a,c,e);const s=l.append("g");s.attr("class","tree-view");const{totalHeight:o,totalWidth:h}=xe(s,a,c,e);l.attr("viewBox",`-${c.lineThickness/2} 0 ${h} ${o}`),U(l,o,h,c.useMaxWidth)},"draw"),be={draw:ve},Ie=be,Ce={labelFontSize:"16px",labelColor:"black",lineColor:"black",iconColor:"#546e7a",descriptionColor:"#6a9955",highlightBg:"rgba(255, 193, 7, 0.15)",highlightStroke:"#ffc107"},ye=f(({treeView:n})=>{const{labelFontSize:e,labelColor:t,lineColor:r,iconColor:i,descriptionColor:a,highlightBg:c,highlightStroke:l}=A(Ce,n);return` .treeView-node-label { font-size: ${e}; fill: ${t}; @@ -27,4 +27,4 @@ import{I as X}from"./chunk-2Q5K7J3B-D8ifWrnI.js";import{p as O}from"./chunk-JWPE stroke: ${l}; stroke-width: 1; } - `},"styles"),Be=ye,Ne={db:I,renderer:Ie,parser:fe,styles:Be};export{Ne as diagram}; + `},"styles"),Be=ye,De={db:I,renderer:Ie,parser:fe,styles:Be};export{De as diagram}; diff --git a/apps/kimi-code/dist-web/assets/diagram-WEI45ONY-5zxq5HEQ.js b/apps/kimi-code/dist-web/assets/diagram-WEI45ONY-5zxq5HEQ.js new file mode 100644 index 000000000..8aa9f3ebb --- /dev/null +++ b/apps/kimi-code/dist-web/assets/diagram-WEI45ONY-5zxq5HEQ.js @@ -0,0 +1,41 @@ +import{p as k}from"./chunk-JWPE2WC7-TZtJmqSP.js";import{s as R,g as F,p as I,o as _,a as D,b as E,_ as c,F as z,q as P,B as y,z as C,D as G,l as B,W,e as V}from"./mermaid.core-B_UcP3X_.js";import{p as H}from"./cynefin-VYW2F7L2-BnQdr27u.js";import"./index-BOtIzGLC.js";var m={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},w={axes:[],curves:[],options:m},x=structuredClone(w),j=G.radar,q=c(()=>y({...j,...C().radar}),"getConfig"),b=c(()=>x.axes,"getAxes"),N=c(()=>x.curves,"getCurves"),U=c(()=>x.options,"getOptions"),X=c(a=>{x.axes=a.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),Y=c(a=>{x.curves=a.map(t=>({name:t.name,label:t.label??t.name,entries:Z(t.entries)}))},"setCurves"),Z=c(a=>{if(a[0].axis==null)return a.map(e=>e.value);const t=b();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(e=>{const r=a.find(s=>s.axis?.$refText===e.name);if(r===void 0)throw new Error("Missing entry for axis "+e.label);return r.value})},"computeCurveEntries"),J=c(a=>{const t=a.reduce((e,r)=>(e[r.name]=r,e),{});x.options={showLegend:t.showLegend?.value??m.showLegend,ticks:t.ticks?.value??m.ticks,max:t.max?.value??m.max,min:t.min?.value??m.min,graticule:t.graticule?.value??m.graticule}},"setOptions"),K=c(()=>{P(),x=structuredClone(w)},"clear"),$={getAxes:b,getCurves:N,getOptions:U,setAxes:X,setCurves:Y,setOptions:J,getConfig:q,clear:K,setAccTitle:E,getAccTitle:D,setDiagramTitle:_,getDiagramTitle:I,getAccDescription:F,setAccDescription:R},Q=c(a=>{k(a,$);const{axes:t,curves:e,options:r}=a;$.setAxes(t),$.setCurves(e),$.setOptions(r)},"populate"),tt={parse:c(async a=>{const t=await H("radar",a);B.debug(t),Q(t)},"parse")},et=c((a,t,e,r)=>{const s=r.db,i=s.getAxes(),l=s.getCurves(),n=s.getOptions(),o=s.getConfig(),d=s.getDiagramTitle(),p=z(t),u=at(p,o),g=n.max??Math.max(...l.map(f=>Math.max(...f.entries))),h=n.min,v=Math.min(o.width,o.height)/2;rt(u,i,v,n.ticks,n.graticule),st(u,i,v,o),A(u,i,l,h,g,n.graticule,o),T(u,l,n.showLegend,o),u.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-o.height/2-o.marginTop)},"draw"),at=c((a,t)=>{const e=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,s={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return V(a,r,e,t.useMaxWidth??!0),a.attr("viewBox",`0 0 ${e} ${r}`).attr("overflow","visible"),a.append("g").attr("transform",`translate(${s.x}, ${s.y})`)},"drawFrame"),rt=c((a,t,e,r,s)=>{if(s==="circle")for(let i=0;i{const u=2*p*Math.PI/i-Math.PI/2,g=n*Math.cos(u),h=n*Math.sin(u);return`${g},${h}`}).join(" ");a.append("polygon").attr("points",o).attr("class","radarGraticule")}}},"drawGraticule"),st=c((a,t,e,r)=>{const s=t.length;for(let i=0;i.01?"start":o<-.01?"end":"middle",u=d>.01?"hanging":d<-.01?"auto":"central",g=4;a.append("text").text(l).attr("x",e*r.axisLabelFactor*o+g*o).attr("y",e*r.axisLabelFactor*d+g*d).attr("text-anchor",p).attr("dominant-baseline",u).attr("class","radarAxisLabel")}},"drawAxes");function A(a,t,e,r,s,i,l){const n=t.length,o=Math.min(l.width,l.height)/2;e.forEach((d,p)=>{if(d.entries.length!==n)return;const u=d.entries.map((g,h)=>{const v=2*Math.PI*h/n-Math.PI/2,f=M(g,r,s,o),S=f*Math.cos(v),O=f*Math.sin(v);return{x:S,y:O}});i==="circle"?a.append("path").attr("d",L(u,l.curveTension)).attr("class",`radarCurve-${p}`):i==="polygon"&&a.append("polygon").attr("points",u.map(g=>`${g.x},${g.y}`).join(" ")).attr("class",`radarCurve-${p}`)})}c(A,"drawCurves");function M(a,t,e,r){const s=Math.min(Math.max(a,t),e);return r*(s-t)/(e-t)}c(M,"relativeRadius");function L(a,t){const e=a.length;let r=`M${a[0].x},${a[0].y}`;for(let s=0;s{const d=a.append("g").attr("transform",`translate(${s}, ${i+o*l})`);d.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${o}`),d.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(n.label)})}c(T,"drawLegend");var nt={draw:et},ot=c((a,t)=>{let e="";for(let r=0;r{const t=W(),e=C(),r=y(t,e.themeVariables),s=y(r.radar,a);return{themeVariables:r,radarOptions:s}},"buildRadarStyleOptions"),lt=c(({radar:a}={})=>{const{themeVariables:t,radarOptions:e}=it(a);return` + .radarTitle { + font-size: ${t.fontSize}; + color: ${t.titleColor}; + dominant-baseline: hanging; + text-anchor: middle; + } + .radarAxisLine { + stroke: ${e.axisColor}; + stroke-width: ${e.axisStrokeWidth}; + } + .radarAxisLabel { + font-size: ${e.axisLabelFontSize}px; + color: ${e.axisColor}; + } + .radarGraticule { + fill: ${e.graticuleColor}; + fill-opacity: ${e.graticuleOpacity}; + stroke: ${e.graticuleColor}; + stroke-width: ${e.graticuleStrokeWidth}; + } + .radarLegendText { + text-anchor: start; + font-size: ${e.legendFontSize}px; + dominant-baseline: hanging; + } + ${ot(t,e)} + `},"styles"),gt={parser:tt,db:$,renderer:nt,styles:lt};export{gt as diagram}; diff --git a/apps/kimi-code/dist-web/assets/diagram-WEI45ONY-t5xRZNwv.js b/apps/kimi-code/dist-web/assets/diagram-WEI45ONY-t5xRZNwv.js deleted file mode 100644 index 066e14c53..000000000 --- a/apps/kimi-code/dist-web/assets/diagram-WEI45ONY-t5xRZNwv.js +++ /dev/null @@ -1,41 +0,0 @@ -import{p as k}from"./chunk-JWPE2WC7-BxqMRrNb.js";import{s as R,g as E,o as I,n as _,a as D,b as F,_ as c,D as P,p as z,A as y,y as C,B as G,l as B,E as W,e as V}from"./mermaid.core-CgZTgv7Y.js";import{p as H}from"./cynefin-VYW2F7L2-DYKf_Z-v.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var m={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},w={axes:[],curves:[],options:m},x=structuredClone(w),j=G.radar,N=c(()=>y({...j,...C().radar}),"getConfig"),b=c(()=>x.axes,"getAxes"),U=c(()=>x.curves,"getCurves"),X=c(()=>x.options,"getOptions"),Y=c(a=>{x.axes=a.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),Z=c(a=>{x.curves=a.map(t=>({name:t.name,label:t.label??t.name,entries:q(t.entries)}))},"setCurves"),q=c(a=>{if(a[0].axis==null)return a.map(e=>e.value);const t=b();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(e=>{const r=a.find(s=>s.axis?.$refText===e.name);if(r===void 0)throw new Error("Missing entry for axis "+e.label);return r.value})},"computeCurveEntries"),J=c(a=>{const t=a.reduce((e,r)=>(e[r.name]=r,e),{});x.options={showLegend:t.showLegend?.value??m.showLegend,ticks:t.ticks?.value??m.ticks,max:t.max?.value??m.max,min:t.min?.value??m.min,graticule:t.graticule?.value??m.graticule}},"setOptions"),K=c(()=>{z(),x=structuredClone(w)},"clear"),$={getAxes:b,getCurves:U,getOptions:X,setAxes:Y,setCurves:Z,setOptions:J,getConfig:N,clear:K,setAccTitle:F,getAccTitle:D,setDiagramTitle:_,getDiagramTitle:I,getAccDescription:E,setAccDescription:R},Q=c(a=>{k(a,$);const{axes:t,curves:e,options:r}=a;$.setAxes(t),$.setCurves(e),$.setOptions(r)},"populate"),tt={parse:c(async a=>{const t=await H("radar",a);B.debug(t),Q(t)},"parse")},et=c((a,t,e,r)=>{const s=r.db,i=s.getAxes(),l=s.getCurves(),n=s.getOptions(),o=s.getConfig(),d=s.getDiagramTitle(),p=P(t),u=at(p,o),g=n.max??Math.max(...l.map(f=>Math.max(...f.entries))),h=n.min,v=Math.min(o.width,o.height)/2;rt(u,i,v,n.ticks,n.graticule),st(u,i,v,o),A(u,i,l,h,g,n.graticule,o),T(u,l,n.showLegend,o),u.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-o.height/2-o.marginTop)},"draw"),at=c((a,t)=>{const e=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,s={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return V(a,r,e,t.useMaxWidth??!0),a.attr("viewBox",`0 0 ${e} ${r}`).attr("overflow","visible"),a.append("g").attr("transform",`translate(${s.x}, ${s.y})`)},"drawFrame"),rt=c((a,t,e,r,s)=>{if(s==="circle")for(let i=0;i{const u=2*p*Math.PI/i-Math.PI/2,g=n*Math.cos(u),h=n*Math.sin(u);return`${g},${h}`}).join(" ");a.append("polygon").attr("points",o).attr("class","radarGraticule")}}},"drawGraticule"),st=c((a,t,e,r)=>{const s=t.length;for(let i=0;i.01?"start":o<-.01?"end":"middle",u=d>.01?"hanging":d<-.01?"auto":"central",g=4;a.append("text").text(l).attr("x",e*r.axisLabelFactor*o+g*o).attr("y",e*r.axisLabelFactor*d+g*d).attr("text-anchor",p).attr("dominant-baseline",u).attr("class","radarAxisLabel")}},"drawAxes");function A(a,t,e,r,s,i,l){const n=t.length,o=Math.min(l.width,l.height)/2;e.forEach((d,p)=>{if(d.entries.length!==n)return;const u=d.entries.map((g,h)=>{const v=2*Math.PI*h/n-Math.PI/2,f=M(g,r,s,o),S=f*Math.cos(v),O=f*Math.sin(v);return{x:S,y:O}});i==="circle"?a.append("path").attr("d",L(u,l.curveTension)).attr("class",`radarCurve-${p}`):i==="polygon"&&a.append("polygon").attr("points",u.map(g=>`${g.x},${g.y}`).join(" ")).attr("class",`radarCurve-${p}`)})}c(A,"drawCurves");function M(a,t,e,r){const s=Math.min(Math.max(a,t),e);return r*(s-t)/(e-t)}c(M,"relativeRadius");function L(a,t){const e=a.length;let r=`M${a[0].x},${a[0].y}`;for(let s=0;s{const d=a.append("g").attr("transform",`translate(${s}, ${i+o*l})`);d.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${o}`),d.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(n.label)})}c(T,"drawLegend");var nt={draw:et},ot=c((a,t)=>{let e="";for(let r=0;r{const t=W(),e=C(),r=y(t,e.themeVariables),s=y(r.radar,a);return{themeVariables:r,radarOptions:s}},"buildRadarStyleOptions"),lt=c(({radar:a}={})=>{const{themeVariables:t,radarOptions:e}=it(a);return` - .radarTitle { - font-size: ${t.fontSize}; - color: ${t.titleColor}; - dominant-baseline: hanging; - text-anchor: middle; - } - .radarAxisLine { - stroke: ${e.axisColor}; - stroke-width: ${e.axisStrokeWidth}; - } - .radarAxisLabel { - font-size: ${e.axisLabelFontSize}px; - color: ${e.axisColor}; - } - .radarGraticule { - fill: ${e.graticuleColor}; - fill-opacity: ${e.graticuleOpacity}; - stroke: ${e.graticuleColor}; - stroke-width: ${e.graticuleStrokeWidth}; - } - .radarLegendText { - text-anchor: start; - font-size: ${e.legendFontSize}px; - dominant-baseline: hanging; - } - ${ot(t,e)} - `},"styles"),xt={parser:tt,db:$,renderer:nt,styles:lt};export{xt as diagram}; diff --git a/apps/kimi-code/dist-web/assets/ebnfDiagram-CCIWWBDH-DCeAYlnS.js b/apps/kimi-code/dist-web/assets/ebnfDiagram-CCIWWBDH-DCeAYlnS.js deleted file mode 100644 index 50d9a4edc..000000000 --- a/apps/kimi-code/dist-web/assets/ebnfDiagram-CCIWWBDH-DCeAYlnS.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l,r as m,d as n}from"./chunk-MOJQB5TN-DGD3Ca9J.js";import{p}from"./chunk-JWPE2WC7-BxqMRrNb.js";import{_ as t,l as o}from"./mermaid.core-CgZTgv7Y.js";import{M as u,a as f}from"./cynefin-VYW2F7L2-DYKf_Z-v.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var c=f().RailroadEbnf.parser.LangiumParser,s=t(e=>{const r=e.alternatives.map(E);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformChoice"),E=t(e=>{const r=e.elements.map(d);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformSequence"),i=t(e=>{switch(e.$type){case"EbnfTerminal":return{type:"terminal",value:e.value};case"EbnfNonTerminal":return{type:"nonterminal",name:e.name};case"EbnfSpecial":return{type:"special",text:e.text};case"EbnfGroup":return s(e.element);case"EbnfOptional":return{type:"optional",element:s(e.element)};case"EbnfRepetition":return{type:"repetition",element:s(e.element),min:0,max:1/0};default:throw new Error(`Unsupported EBNF primary node: ${e.$type}`)}},"transformPrimary"),b=t((e,r)=>{switch(r.$type){case"EbnfOptionalPostfix":return{type:"optional",element:e};case"EbnfZeroOrMorePostfix":return{type:"repetition",element:e,min:0,max:1/0};case"EbnfOneOrMorePostfix":return{type:"repetition",element:e,min:1,max:1/0};case"EbnfExceptionPostfix":return{type:"sequence",elements:[e,{type:"terminal",value:"-"},i(r.except)]};default:throw new Error(`Unsupported EBNF postfix node: ${r.$type}`)}},"transformPostfix"),d=t(e=>e.postfixes.reduce((r,a)=>b(r,a),i(e.base)),"transformTerm"),y=t(e=>({name:e.name,definition:s(e.definition)}),"transformRule"),v=t(e=>{p(e,n),e.title&&n.setTitle(e.title),e.rules.map(r=>n.addRule(y(r)))},"populateDb"),g={parse:t(e=>{n.clear(),o.debug("[EBNF Parser] Starting Langium parse");const r=c.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new u(r);const a=r.value;o.debug("[EBNF Parser] Parsed rules:",a.rules.length),v(a),o.debug("[EBNF Parser] Parse complete")},"parse"),parser:{yy:n}},S={parser:g,db:n,renderer:m,styles:l};export{S as diagram}; diff --git a/apps/kimi-code/dist-web/assets/ebnfDiagram-CCIWWBDH-FCeqrnaL.js b/apps/kimi-code/dist-web/assets/ebnfDiagram-CCIWWBDH-FCeqrnaL.js new file mode 100644 index 000000000..b30879c20 --- /dev/null +++ b/apps/kimi-code/dist-web/assets/ebnfDiagram-CCIWWBDH-FCeqrnaL.js @@ -0,0 +1 @@ +import{g as l,r as m,d as n}from"./chunk-MOJQB5TN-m4Krf3Vn.js";import{p}from"./chunk-JWPE2WC7-TZtJmqSP.js";import{_ as t,l as o}from"./mermaid.core-B_UcP3X_.js";import{M as u,a as f}from"./cynefin-VYW2F7L2-BnQdr27u.js";import"./index-BOtIzGLC.js";var c=f().RailroadEbnf.parser.LangiumParser,s=t(e=>{const r=e.alternatives.map(E);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformChoice"),E=t(e=>{const r=e.elements.map(d);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformSequence"),i=t(e=>{switch(e.$type){case"EbnfTerminal":return{type:"terminal",value:e.value};case"EbnfNonTerminal":return{type:"nonterminal",name:e.name};case"EbnfSpecial":return{type:"special",text:e.text};case"EbnfGroup":return s(e.element);case"EbnfOptional":return{type:"optional",element:s(e.element)};case"EbnfRepetition":return{type:"repetition",element:s(e.element),min:0,max:1/0};default:throw new Error(`Unsupported EBNF primary node: ${e.$type}`)}},"transformPrimary"),b=t((e,r)=>{switch(r.$type){case"EbnfOptionalPostfix":return{type:"optional",element:e};case"EbnfZeroOrMorePostfix":return{type:"repetition",element:e,min:0,max:1/0};case"EbnfOneOrMorePostfix":return{type:"repetition",element:e,min:1,max:1/0};case"EbnfExceptionPostfix":return{type:"sequence",elements:[e,{type:"terminal",value:"-"},i(r.except)]};default:throw new Error(`Unsupported EBNF postfix node: ${r.$type}`)}},"transformPostfix"),d=t(e=>e.postfixes.reduce((r,a)=>b(r,a),i(e.base)),"transformTerm"),y=t(e=>({name:e.name,definition:s(e.definition)}),"transformRule"),v=t(e=>{p(e,n),e.title&&n.setTitle(e.title),e.rules.map(r=>n.addRule(y(r)))},"populateDb"),g={parse:t(e=>{n.clear(),o.debug("[EBNF Parser] Starting Langium parse");const r=c.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new u(r);const a=r.value;o.debug("[EBNF Parser] Parsed rules:",a.rules.length),v(a),o.debug("[EBNF Parser] Parse complete")},"parse"),parser:{yy:n}},R={parser:g,db:n,renderer:m,styles:l};export{R as diagram}; diff --git a/apps/kimi-code/dist-web/assets/erDiagram-Q63AITRT-DOSLOW_g.js b/apps/kimi-code/dist-web/assets/erDiagram-Q63AITRT-DE-pAoai.js similarity index 61% rename from apps/kimi-code/dist-web/assets/erDiagram-Q63AITRT-DOSLOW_g.js rename to apps/kimi-code/dist-web/assets/erDiagram-Q63AITRT-DE-pAoai.js index 499a355fe..9de980b3b 100644 --- a/apps/kimi-code/dist-web/assets/erDiagram-Q63AITRT-DOSLOW_g.js +++ b/apps/kimi-code/dist-web/assets/erDiagram-Q63AITRT-DE-pAoai.js @@ -1,4 +1,4 @@ -import{g as Mt}from"./chunk-XXDRQBXY-BW4XjZut.js";import{s as Bt}from"./chunk-VR4S4FIN-CHAEh_jD.js";import{_ as l,b as Ft,a as Yt,s as Pt,g as zt,n as Gt,o as Kt,c as it,l as V,p as Ut,q as Zt,r as jt,t as Wt,u as qt,v as Qt,d as Xt,x as Ht}from"./mermaid.core-CgZTgv7Y.js";import{c as Jt}from"./channel-IY5GdLm-.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var _t=(function(){var e=l(function(I,n,c,o){for(c=c||{},o=I.length;o--;c[I[o]]=n);return c},"o"),i=[6,8,10,22,24,26,28,33,34,35,36,37,40,43,44,48,50,51,52],h=[1,10],a=[1,11],u=[1,12],d=[1,13],y=[1,23],f=[1,24],m=[1,25],j=[1,26],W=[1,27],S=[1,19],q=[1,28],M=[1,29],D=[1,20],R=[1,18],T=[1,21],C=[1,22],nt=[1,36],at=[1,37],ct=[1,38],ot=[1,39],lt=[1,40],B=[6,8,10,13,15,17,20,21,22,24,26,28,33,34,35,36,37,40,43,44,48,50,51,52,66,67,68,69,70],O=[1,45],N=[1,46],F=[1,55],Y=[40,48,50,51,52,71,72],P=[1,66],z=[1,64],A=[1,61],G=[1,65],K=[1,67],Q=[6,8,10,13,17,22,24,26,28,33,34,35,36,37,40,41,42,43,44,48,49,50,51,52,66,67,68,69,70],gt=[66,67,68,69,70],bt=[1,85],kt=[1,84],mt=[1,82],Et=[1,83],St=[6,10,42,47],L=[6,10,13,41,42,47,48,49],X=[1,93],H=[1,92],J=[1,91],U=[19,58],Tt=[1,102],Ot=[1,101],ht=[19,58,61,63],ut={trace:l(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,"?":59,attributeKeyType:60,",":61,ATTRIBUTE_KEY:62,COMMENT:63,cardinality:64,relType: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:73,$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",59:"?",61:",",62:"ATTRIBUTE_KEY",63:"COMMENT",66:"ZERO_OR_ONE",67:"ZERO_OR_MORE",68:"ONE_OR_MORE",69:"ONLY_ONE",70:"MD_PARENT",71:"NON_IDENTIFYING",72:"IDENTIFYING",73:"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],[54,2],[55,1],[56,1],[56,3],[60,1],[57,1],[12,3],[64,1],[64,1],[64,1],[64,1],[64,1],[65,1],[65,1],[14,1],[14,1],[14,1]],performAction:l(function(n,c,o,r,p,t,Z){var s=t.length-1;switch(p){case 1:break;case 2:this.$=[];break;case 3:t[s-1].push(t[s]),this.$=t[s-1];break;case 4:case 5:this.$=t[s];break;case 6:case 7:this.$=[];break;case 8:r.addEntity(t[s-4]),r.addEntity(t[s-2]),r.addRelationship(t[s-4],t[s],t[s-2],t[s-3]);break;case 9:r.addEntity(t[s-8]),r.addEntity(t[s-4]),r.addRelationship(t[s-8],t[s],t[s-4],t[s-5]),r.setClass([t[s-8]],t[s-6]),r.setClass([t[s-4]],t[s-2]);break;case 10:r.addEntity(t[s-6]),r.addEntity(t[s-2]),r.addRelationship(t[s-6],t[s],t[s-2],t[s-3]),r.setClass([t[s-6]],t[s-4]);break;case 11:r.addEntity(t[s-6]),r.addEntity(t[s-4]),r.addRelationship(t[s-6],t[s],t[s-4],t[s-5]),r.setClass([t[s-4]],t[s-2]);break;case 12:r.addEntity(t[s-3]),r.addAttributes(t[s-3],t[s-1]);break;case 13:r.addEntity(t[s-5]),r.addAttributes(t[s-5],t[s-1]),r.setClass([t[s-5]],t[s-3]);break;case 14:r.addEntity(t[s-2]);break;case 15:r.addEntity(t[s-4]),r.setClass([t[s-4]],t[s-2]);break;case 16:r.addEntity(t[s]);break;case 17:r.addEntity(t[s-2]),r.setClass([t[s-2]],t[s]);break;case 18:r.addEntity(t[s-6],t[s-4]),r.addAttributes(t[s-6],t[s-1]);break;case 19:r.addEntity(t[s-8],t[s-6]),r.addAttributes(t[s-8],t[s-1]),r.setClass([t[s-8]],t[s-3]);break;case 20:r.addEntity(t[s-5],t[s-3]);break;case 21:r.addEntity(t[s-7],t[s-5]),r.setClass([t[s-7]],t[s-2]);break;case 22:r.addEntity(t[s-3],t[s-1]);break;case 23:r.addEntity(t[s-5],t[s-3]),r.setClass([t[s-5]],t[s]);break;case 24:case 25:this.$=t[s].trim(),r.setAccTitle(this.$);break;case 26:case 27:this.$=t[s].trim(),r.setAccDescription(this.$);break;case 32:r.setDirection("TB");break;case 33:r.setDirection("BT");break;case 34:r.setDirection("RL");break;case 35:r.setDirection("LR");break;case 36:this.$=t[s-3],r.addClass(t[s-2],t[s-1]);break;case 37:case 38:case 59:case 68:this.$=[t[s]];break;case 39:case 40:this.$=t[s-2].concat([t[s]]);break;case 41:this.$=t[s-2],r.setClass(t[s-1],t[s]);break;case 42:this.$=t[s-3],r.addCssStyles(t[s-2],t[s-1]);break;case 43:this.$=[t[s]];break;case 44:t[s-2].push(t[s]),this.$=t[s-2];break;case 46:this.$=t[s-1]+t[s];break;case 54:case 80:case 81:this.$=t[s].replace(/"/g,"");break;case 55:case 56:case 57:case 58:case 82:this.$=t[s];break;case 60:t[s].push(t[s-1]),this.$=t[s];break;case 61:this.$={type:t[s-1],name:t[s]};break;case 62:this.$={type:t[s-2],name:t[s-1],keys:t[s]};break;case 63:this.$={type:t[s-2],name:t[s-1],comment:t[s]};break;case 64:this.$={type:t[s-3],name:t[s-2],keys:t[s-1],comment:t[s]};break;case 65:case 67:case 70:this.$=t[s];break;case 66:this.$=t[s-1]+t[s];break;case 69:t[s-2].push(t[s]),this.$=t[s-2];break;case 71:this.$=t[s].replace(/"/g,"");break;case 72:this.$={cardA:t[s],relType:t[s-1],cardB:t[s-2]};break;case 73:this.$=r.Cardinality.ZERO_OR_ONE;break;case 74:this.$=r.Cardinality.ZERO_OR_MORE;break;case 75:this.$=r.Cardinality.ONE_OR_MORE;break;case 76:this.$=r.Cardinality.ONLY_ONE;break;case 77:this.$=r.Cardinality.MD_PARENT;break;case 78:this.$=r.Identification.NON_IDENTIFYING;break;case 79:this.$=r.Identification.IDENTIFYING;break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},e(i,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,22:h,24:a,26:u,28:d,29:14,30:15,31:16,32:17,33:y,34:f,35:m,36:j,37:W,40:S,43:q,44:M,48:D,50:R,51:T,52:C},e(i,[2,7],{1:[2,1]}),e(i,[2,3]),{9:30,11:9,22:h,24:a,26:u,28:d,29:14,30:15,31:16,32:17,33:y,34:f,35:m,36:j,37:W,40:S,43:q,44:M,48:D,50:R,51:T,52:C},e(i,[2,5]),e(i,[2,6]),e(i,[2,16],{12:31,64:35,15:[1,32],17:[1,33],20:[1,34],66:nt,67:at,68:ct,69:ot,70:lt}),{23:[1,41]},{25:[1,42]},{27:[1,43]},e(i,[2,27]),e(i,[2,28]),e(i,[2,29]),e(i,[2,30]),e(i,[2,31]),e(B,[2,54]),e(B,[2,55]),e(B,[2,56]),e(B,[2,57]),e(B,[2,58]),e(i,[2,32]),e(i,[2,33]),e(i,[2,34]),e(i,[2,35]),{16:44,40:O,41:N},{16:47,40:O,41:N},{16:48,40:O,41:N},e(i,[2,4]),{11:49,40:S,48:D,50:R,51:T,52:C},{16:50,40:O,41:N},{18:51,19:[1,52],53:53,54:54,58:F},{11:56,40:S,48:D,50:R,51:T,52:C},{65:57,71:[1,58],72:[1,59]},e(Y,[2,73]),e(Y,[2,74]),e(Y,[2,75]),e(Y,[2,76]),e(Y,[2,77]),e(i,[2,24]),e(i,[2,25]),e(i,[2,26]),{13:P,38:60,41:z,42:A,45:62,46:63,48:G,49:K},e(Q,[2,37]),e(Q,[2,38]),{16:68,40:O,41:N,42:A},{13:P,38:69,41:z,42:A,45:62,46:63,48:G,49:K},{13:[1,70],15:[1,71]},e(i,[2,17],{64:35,12:72,17:[1,73],42:A,66:nt,67:at,68:ct,69:ot,70:lt}),{19:[1,74]},e(i,[2,14]),{18:75,19:[2,59],53:53,54:54,58:F},{55:76,58:[1,77]},{58:[2,65],59:[1,78]},{21:[1,79]},{64:80,66:nt,67:at,68:ct,69:ot,70:lt},e(gt,[2,78]),e(gt,[2,79]),{6:bt,10:kt,39:81,42:mt,47:Et},{40:[1,86],41:[1,87]},e(St,[2,43],{46:88,13:P,41:z,48:G,49:K}),e(L,[2,45]),e(L,[2,50]),e(L,[2,51]),e(L,[2,52]),e(L,[2,53]),e(i,[2,41],{42:A}),{6:bt,10:kt,39:89,42:mt,47:Et},{14:90,40:X,50:H,73:J},{16:94,40:O,41:N},{11:95,40:S,48:D,50:R,51:T,52:C},{18:96,19:[1,97],53:53,54:54,58:F},e(i,[2,12]),{19:[2,60]},e(U,[2,61],{56:98,57:99,60:100,62:Tt,63:Ot}),e([19,58,62,63],[2,67]),{58:[2,66]},e(i,[2,22],{15:[1,104],17:[1,103]}),e([40,48,50,51,52],[2,72]),e(i,[2,36]),{13:P,41:z,45:105,46:63,48:G,49:K},e(i,[2,47]),e(i,[2,48]),e(i,[2,49]),e(Q,[2,39]),e(Q,[2,40]),e(L,[2,46]),e(i,[2,42]),e(i,[2,8]),e(i,[2,80]),e(i,[2,81]),e(i,[2,82]),{13:[1,106],42:A},{13:[1,108],15:[1,107]},{19:[1,109]},e(i,[2,15]),e(U,[2,62],{57:110,61:[1,111],63:Ot}),e(U,[2,63]),e(ht,[2,68]),e(U,[2,71]),e(ht,[2,70]),{18:112,19:[1,113],53:53,54:54,58:F},{16:114,40:O,41:N},e(St,[2,44],{46:88,13:P,41:z,48:G,49:K}),{14:115,40:X,50:H,73:J},{16:116,40:O,41:N},{14:117,40:X,50:H,73:J},e(i,[2,13]),e(U,[2,64]),{60:118,62:Tt},{19:[1,119]},e(i,[2,20]),e(i,[2,23],{17:[1,120],42:A}),e(i,[2,11]),{13:[1,121],42:A},e(i,[2,10]),e(ht,[2,69]),e(i,[2,18]),{18:122,19:[1,123],53:53,54:54,58:F},{14:124,40:X,50:H,73:J},{19:[1,125]},e(i,[2,21]),e(i,[2,9]),e(i,[2,19])],defaultActions:{75:[2,60],78:[2,66]},parseError:l(function(n,c){if(c.recoverable)this.trace(n);else{var o=new Error(n);throw o.hash=c,o}},"parseError"),parse:l(function(n){var c=this,o=[0],r=[],p=[null],t=[],Z=this.table,s="",tt=0,Nt=0,Dt=2,At=1,Lt=t.slice.call(arguments,1),_=Object.create(this.lexer),x={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(x.yy[dt]=this.yy[dt]);_.setInput(n,x.yy),x.yy.lexer=_,x.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var pt=_.yylloc;t.push(pt);var wt=_.options&&_.options.ranges;typeof x.yy.parseError=="function"?this.parseError=x.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Vt(b){o.length=o.length-2*b,p.length=p.length-b,t.length=t.length-b}l(Vt,"popStack");function It(){var b;return b=r.pop()||_.lex()||At,typeof b!="number"&&(b instanceof Array&&(r=b,b=r.pop()),b=c.symbols_[b]||b),b}l(It,"lex");for(var g,v,k,ft,w={},et,E,Rt,st;;){if(v=o[o.length-1],this.defaultActions[v]?k=this.defaultActions[v]:((g===null||typeof g>"u")&&(g=It()),k=Z[v]&&Z[v][g]),typeof k>"u"||!k.length||!k[0]){var yt="";st=[];for(et in Z[v])this.terminals_[et]&&et>Dt&&st.push("'"+this.terminals_[et]+"'");_.showPosition?yt="Parse error on line "+(tt+1)+`: +import{g as Mt}from"./chunk-XXDRQBXY-AHUPVB2f.js";import{s as Bt}from"./chunk-VR4S4FIN-CYEgbtU1.js";import{_ as l,b as Ft,a as Yt,s as Pt,g as zt,o as Gt,p as Kt,c as it,l as V,q as Ut,r as Zt,t as jt,u as Wt,v as qt,x as Qt,d as Xt,y as Ht}from"./mermaid.core-B_UcP3X_.js";import{c as Jt}from"./channel-Bw0eTBly.js";import"./index-BOtIzGLC.js";var _t=(function(){var e=l(function(I,n,c,o){for(c=c||{},o=I.length;o--;c[I[o]]=n);return c},"o"),i=[6,8,10,22,24,26,28,33,34,35,36,37,40,43,44,48,50,51,52],h=[1,10],a=[1,11],u=[1,12],d=[1,13],y=[1,23],f=[1,24],m=[1,25],j=[1,26],W=[1,27],S=[1,19],q=[1,28],M=[1,29],D=[1,20],R=[1,18],T=[1,21],C=[1,22],nt=[1,36],at=[1,37],ct=[1,38],ot=[1,39],lt=[1,40],B=[6,8,10,13,15,17,20,21,22,24,26,28,33,34,35,36,37,40,43,44,48,50,51,52,66,67,68,69,70],O=[1,45],N=[1,46],F=[1,55],Y=[40,48,50,51,52,71,72],P=[1,66],z=[1,64],A=[1,61],G=[1,65],K=[1,67],Q=[6,8,10,13,17,22,24,26,28,33,34,35,36,37,40,41,42,43,44,48,49,50,51,52,66,67,68,69,70],gt=[66,67,68,69,70],bt=[1,85],kt=[1,84],mt=[1,82],Et=[1,83],St=[6,10,42,47],L=[6,10,13,41,42,47,48,49],X=[1,93],H=[1,92],J=[1,91],U=[19,58],Tt=[1,102],Ot=[1,101],ht=[19,58,61,63],ut={trace:l(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,"?":59,attributeKeyType:60,",":61,ATTRIBUTE_KEY:62,COMMENT:63,cardinality:64,relType: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:73,$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",59:"?",61:",",62:"ATTRIBUTE_KEY",63:"COMMENT",66:"ZERO_OR_ONE",67:"ZERO_OR_MORE",68:"ONE_OR_MORE",69:"ONLY_ONE",70:"MD_PARENT",71:"NON_IDENTIFYING",72:"IDENTIFYING",73:"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],[54,2],[55,1],[56,1],[56,3],[60,1],[57,1],[12,3],[64,1],[64,1],[64,1],[64,1],[64,1],[65,1],[65,1],[14,1],[14,1],[14,1]],performAction:l(function(n,c,o,r,p,t,Z){var s=t.length-1;switch(p){case 1:break;case 2:this.$=[];break;case 3:t[s-1].push(t[s]),this.$=t[s-1];break;case 4:case 5:this.$=t[s];break;case 6:case 7:this.$=[];break;case 8:r.addEntity(t[s-4]),r.addEntity(t[s-2]),r.addRelationship(t[s-4],t[s],t[s-2],t[s-3]);break;case 9:r.addEntity(t[s-8]),r.addEntity(t[s-4]),r.addRelationship(t[s-8],t[s],t[s-4],t[s-5]),r.setClass([t[s-8]],t[s-6]),r.setClass([t[s-4]],t[s-2]);break;case 10:r.addEntity(t[s-6]),r.addEntity(t[s-2]),r.addRelationship(t[s-6],t[s],t[s-2],t[s-3]),r.setClass([t[s-6]],t[s-4]);break;case 11:r.addEntity(t[s-6]),r.addEntity(t[s-4]),r.addRelationship(t[s-6],t[s],t[s-4],t[s-5]),r.setClass([t[s-4]],t[s-2]);break;case 12:r.addEntity(t[s-3]),r.addAttributes(t[s-3],t[s-1]);break;case 13:r.addEntity(t[s-5]),r.addAttributes(t[s-5],t[s-1]),r.setClass([t[s-5]],t[s-3]);break;case 14:r.addEntity(t[s-2]);break;case 15:r.addEntity(t[s-4]),r.setClass([t[s-4]],t[s-2]);break;case 16:r.addEntity(t[s]);break;case 17:r.addEntity(t[s-2]),r.setClass([t[s-2]],t[s]);break;case 18:r.addEntity(t[s-6],t[s-4]),r.addAttributes(t[s-6],t[s-1]);break;case 19:r.addEntity(t[s-8],t[s-6]),r.addAttributes(t[s-8],t[s-1]),r.setClass([t[s-8]],t[s-3]);break;case 20:r.addEntity(t[s-5],t[s-3]);break;case 21:r.addEntity(t[s-7],t[s-5]),r.setClass([t[s-7]],t[s-2]);break;case 22:r.addEntity(t[s-3],t[s-1]);break;case 23:r.addEntity(t[s-5],t[s-3]),r.setClass([t[s-5]],t[s]);break;case 24:case 25:this.$=t[s].trim(),r.setAccTitle(this.$);break;case 26:case 27:this.$=t[s].trim(),r.setAccDescription(this.$);break;case 32:r.setDirection("TB");break;case 33:r.setDirection("BT");break;case 34:r.setDirection("RL");break;case 35:r.setDirection("LR");break;case 36:this.$=t[s-3],r.addClass(t[s-2],t[s-1]);break;case 37:case 38:case 59:case 68:this.$=[t[s]];break;case 39:case 40:this.$=t[s-2].concat([t[s]]);break;case 41:this.$=t[s-2],r.setClass(t[s-1],t[s]);break;case 42:this.$=t[s-3],r.addCssStyles(t[s-2],t[s-1]);break;case 43:this.$=[t[s]];break;case 44:t[s-2].push(t[s]),this.$=t[s-2];break;case 46:this.$=t[s-1]+t[s];break;case 54:case 80:case 81:this.$=t[s].replace(/"/g,"");break;case 55:case 56:case 57:case 58:case 82:this.$=t[s];break;case 60:t[s].push(t[s-1]),this.$=t[s];break;case 61:this.$={type:t[s-1],name:t[s]};break;case 62:this.$={type:t[s-2],name:t[s-1],keys:t[s]};break;case 63:this.$={type:t[s-2],name:t[s-1],comment:t[s]};break;case 64:this.$={type:t[s-3],name:t[s-2],keys:t[s-1],comment:t[s]};break;case 65:case 67:case 70:this.$=t[s];break;case 66:this.$=t[s-1]+t[s];break;case 69:t[s-2].push(t[s]),this.$=t[s-2];break;case 71:this.$=t[s].replace(/"/g,"");break;case 72:this.$={cardA:t[s],relType:t[s-1],cardB:t[s-2]};break;case 73:this.$=r.Cardinality.ZERO_OR_ONE;break;case 74:this.$=r.Cardinality.ZERO_OR_MORE;break;case 75:this.$=r.Cardinality.ONE_OR_MORE;break;case 76:this.$=r.Cardinality.ONLY_ONE;break;case 77:this.$=r.Cardinality.MD_PARENT;break;case 78:this.$=r.Identification.NON_IDENTIFYING;break;case 79:this.$=r.Identification.IDENTIFYING;break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},e(i,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,22:h,24:a,26:u,28:d,29:14,30:15,31:16,32:17,33:y,34:f,35:m,36:j,37:W,40:S,43:q,44:M,48:D,50:R,51:T,52:C},e(i,[2,7],{1:[2,1]}),e(i,[2,3]),{9:30,11:9,22:h,24:a,26:u,28:d,29:14,30:15,31:16,32:17,33:y,34:f,35:m,36:j,37:W,40:S,43:q,44:M,48:D,50:R,51:T,52:C},e(i,[2,5]),e(i,[2,6]),e(i,[2,16],{12:31,64:35,15:[1,32],17:[1,33],20:[1,34],66:nt,67:at,68:ct,69:ot,70:lt}),{23:[1,41]},{25:[1,42]},{27:[1,43]},e(i,[2,27]),e(i,[2,28]),e(i,[2,29]),e(i,[2,30]),e(i,[2,31]),e(B,[2,54]),e(B,[2,55]),e(B,[2,56]),e(B,[2,57]),e(B,[2,58]),e(i,[2,32]),e(i,[2,33]),e(i,[2,34]),e(i,[2,35]),{16:44,40:O,41:N},{16:47,40:O,41:N},{16:48,40:O,41:N},e(i,[2,4]),{11:49,40:S,48:D,50:R,51:T,52:C},{16:50,40:O,41:N},{18:51,19:[1,52],53:53,54:54,58:F},{11:56,40:S,48:D,50:R,51:T,52:C},{65:57,71:[1,58],72:[1,59]},e(Y,[2,73]),e(Y,[2,74]),e(Y,[2,75]),e(Y,[2,76]),e(Y,[2,77]),e(i,[2,24]),e(i,[2,25]),e(i,[2,26]),{13:P,38:60,41:z,42:A,45:62,46:63,48:G,49:K},e(Q,[2,37]),e(Q,[2,38]),{16:68,40:O,41:N,42:A},{13:P,38:69,41:z,42:A,45:62,46:63,48:G,49:K},{13:[1,70],15:[1,71]},e(i,[2,17],{64:35,12:72,17:[1,73],42:A,66:nt,67:at,68:ct,69:ot,70:lt}),{19:[1,74]},e(i,[2,14]),{18:75,19:[2,59],53:53,54:54,58:F},{55:76,58:[1,77]},{58:[2,65],59:[1,78]},{21:[1,79]},{64:80,66:nt,67:at,68:ct,69:ot,70:lt},e(gt,[2,78]),e(gt,[2,79]),{6:bt,10:kt,39:81,42:mt,47:Et},{40:[1,86],41:[1,87]},e(St,[2,43],{46:88,13:P,41:z,48:G,49:K}),e(L,[2,45]),e(L,[2,50]),e(L,[2,51]),e(L,[2,52]),e(L,[2,53]),e(i,[2,41],{42:A}),{6:bt,10:kt,39:89,42:mt,47:Et},{14:90,40:X,50:H,73:J},{16:94,40:O,41:N},{11:95,40:S,48:D,50:R,51:T,52:C},{18:96,19:[1,97],53:53,54:54,58:F},e(i,[2,12]),{19:[2,60]},e(U,[2,61],{56:98,57:99,60:100,62:Tt,63:Ot}),e([19,58,62,63],[2,67]),{58:[2,66]},e(i,[2,22],{15:[1,104],17:[1,103]}),e([40,48,50,51,52],[2,72]),e(i,[2,36]),{13:P,41:z,45:105,46:63,48:G,49:K},e(i,[2,47]),e(i,[2,48]),e(i,[2,49]),e(Q,[2,39]),e(Q,[2,40]),e(L,[2,46]),e(i,[2,42]),e(i,[2,8]),e(i,[2,80]),e(i,[2,81]),e(i,[2,82]),{13:[1,106],42:A},{13:[1,108],15:[1,107]},{19:[1,109]},e(i,[2,15]),e(U,[2,62],{57:110,61:[1,111],63:Ot}),e(U,[2,63]),e(ht,[2,68]),e(U,[2,71]),e(ht,[2,70]),{18:112,19:[1,113],53:53,54:54,58:F},{16:114,40:O,41:N},e(St,[2,44],{46:88,13:P,41:z,48:G,49:K}),{14:115,40:X,50:H,73:J},{16:116,40:O,41:N},{14:117,40:X,50:H,73:J},e(i,[2,13]),e(U,[2,64]),{60:118,62:Tt},{19:[1,119]},e(i,[2,20]),e(i,[2,23],{17:[1,120],42:A}),e(i,[2,11]),{13:[1,121],42:A},e(i,[2,10]),e(ht,[2,69]),e(i,[2,18]),{18:122,19:[1,123],53:53,54:54,58:F},{14:124,40:X,50:H,73:J},{19:[1,125]},e(i,[2,21]),e(i,[2,9]),e(i,[2,19])],defaultActions:{75:[2,60],78:[2,66]},parseError:l(function(n,c){if(c.recoverable)this.trace(n);else{var o=new Error(n);throw o.hash=c,o}},"parseError"),parse:l(function(n){var c=this,o=[0],r=[],p=[null],t=[],Z=this.table,s="",tt=0,Nt=0,Dt=2,At=1,Lt=t.slice.call(arguments,1),_=Object.create(this.lexer),x={yy:{}};for(var dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,dt)&&(x.yy[dt]=this.yy[dt]);_.setInput(n,x.yy),x.yy.lexer=_,x.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var pt=_.yylloc;t.push(pt);var wt=_.options&&_.options.ranges;typeof x.yy.parseError=="function"?this.parseError=x.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Vt(b){o.length=o.length-2*b,p.length=p.length-b,t.length=t.length-b}l(Vt,"popStack");function It(){var b;return b=r.pop()||_.lex()||At,typeof b!="number"&&(b instanceof Array&&(r=b,b=r.pop()),b=c.symbols_[b]||b),b}l(It,"lex");for(var g,v,k,ft,w={},et,E,Rt,st;;){if(v=o[o.length-1],this.defaultActions[v]?k=this.defaultActions[v]:((g===null||typeof g>"u")&&(g=It()),k=Z[v]&&Z[v][g]),typeof k>"u"||!k.length||!k[0]){var yt="";st=[];for(et in Z[v])this.terminals_[et]&&et>Dt&&st.push("'"+this.terminals_[et]+"'");_.showPosition?yt="Parse error on line "+(tt+1)+`: `+_.showPosition()+` Expecting `+st.join(", ")+", got '"+(this.terminals_[g]||g)+"'":yt="Parse error on line "+(tt+1)+": Unexpected "+(g==At?"end of input":"'"+(this.terminals_[g]||g)+"'"),this.parseError(yt,{text:_.match,token:this.terminals_[g]||g,line:_.yylineno,loc:pt,expected:st})}if(k[0]instanceof Array&&k.length>1)throw new Error("Parse Error: multiple actions possible at state: "+v+", token: "+g);switch(k[0]){case 1:o.push(g),p.push(_.yytext),t.push(_.yylloc),o.push(k[1]),g=null,Nt=_.yyleng,s=_.yytext,tt=_.yylineno,pt=_.yylloc;break;case 2:if(E=this.productions_[k[1]][1],w.$=p[p.length-E],w._$={first_line:t[t.length-(E||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(E||1)].first_column,last_column:t[t.length-1].last_column},wt&&(w._$.range=[t[t.length-(E||1)].range[0],t[t.length-1].range[1]]),ft=this.performAction.apply(w,[s,Nt,tt,x.yy,k[1],p,t].concat(Lt)),typeof ft<"u")return ft;E&&(o=o.slice(0,-1*E*2),p=p.slice(0,-1*E),t=t.slice(0,-1*E)),o.push(this.productions_[k[1]][0]),p.push(w.$),t.push(w._$),Rt=Z[o[o.length-2]][o[o.length-1]],o.push(Rt);break;case 3:return!0}}return!0},"parse")},vt=(function(){var I={EOF:1,parseError:l(function(c,o){if(this.yy.parser)this.yy.parser.parseError(c,o);else throw new Error(c)},"parseError"),setInput:l(function(n,c){return this.yy=c||this.yy||{},this._input=n,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:l(function(){var n=this._input[0];this.yytext+=n,this.yyleng++,this.offset++,this.match+=n,this.matched+=n;var c=n.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),n},"input"),unput:l(function(n){var c=n.length,o=n.split(/(?:\r\n?|\n)/g);this._input=n+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-c),this.offset-=c;var r=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 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:o?(o.length===r.length?this.yylloc.first_column:0)+r[r.length-o.length].length-o[0].length:this.yylloc.first_column-c},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-c]),this.yyleng=this.yytext.length,this},"unput"),more:l(function(){return this._more=!0,this},"more"),reject:l(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:l(function(n){this.unput(this.match.slice(n))},"less"),pastInput:l(function(){var n=this.matched.substr(0,this.matched.length-this.match.length);return(n.length>20?"...":"")+n.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:l(function(){var n=this.match;return n.length<20&&(n+=this._input.substr(0,20-n.length)),(n.substr(0,20)+(n.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:l(function(){var n=this.pastInput(),c=new Array(n.length+1).join("-");return n+this.upcomingInput()+` @@ -82,4 +82,4 @@ Expecting `+st.join(", ")+", got '"+(this.terminals_[g]||g)+"'":yt="Parse error [data-look=neo].labelBkg { background-color: ${Ct(e.tertiaryColor,.5)}; } -`},"getStyles"),re=ie,ue={parser:$t,get db(){return new te},renderer:xt,styles:re};export{ue as diagram}; +`},"getStyles"),re=ie,he={parser:$t,get db(){return new te},renderer:xt,styles:re};export{he as diagram}; diff --git a/apps/kimi-code/dist-web/assets/flowDiagram-23GEKE2U-DUMMY9pi.js b/apps/kimi-code/dist-web/assets/flowDiagram-23GEKE2U-DuNG8YS2.js similarity index 96% rename from apps/kimi-code/dist-web/assets/flowDiagram-23GEKE2U-DUMMY9pi.js rename to apps/kimi-code/dist-web/assets/flowDiagram-23GEKE2U-DuNG8YS2.js index 8cfd0480b..64272f5fb 100644 --- a/apps/kimi-code/dist-web/assets/flowDiagram-23GEKE2U-DUMMY9pi.js +++ b/apps/kimi-code/dist-web/assets/flowDiagram-23GEKE2U-DuNG8YS2.js @@ -1,14 +1,14 @@ -import{g as He}from"./chunk-5VM5RSS4-D5gZPx0N.js";import{g as Xe}from"./chunk-XXDRQBXY-BW4XjZut.js";import{s as Qe}from"./chunk-VR4S4FIN-CHAEh_jD.js";import{_ as b,b6 as Je,F as Oe,l as J,c as g1,u as Ze,v as $e,x as ie,b as et,s as tt,n as st,a as it,g as rt,o as at,k as nt,G as ut,J as ot,bo as lt,q as te,d as se,a5 as ct,p as ht,b8 as dt,r as pt}from"./mermaid.core-CgZTgv7Y.js";import{f as ft}from"./chunk-32BRIVSS-DpG03lEd.js";import{c as gt}from"./channel-IY5GdLm-.js";var bt="flowchart-",At=class{constructor(){this.vertexCounter=0,this.config=g1(),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=et,this.setAccDescription=tt,this.setDiagramTitle=st,this.getAccTitle=it,this.getAccDescription=rt,this.getDiagramTitle=at,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{b(this,"FlowDB")}sanitizeText(e){return nt.sanitizeText(e,this.config)}sanitizeNodeLabelType(e){switch(e){case"markdown":case"string":case"text":return e;default:return"markdown"}}setDiagramId(e){this.diagramId=e}lookUpDomId(e){for(const i of this.vertices.values())if(i.id===e)return this.diagramId?`${this.diagramId}-${i.domId}`:i.domId;return this.diagramId?`${this.diagramId}-${e}`:e}addVertex(e,i,r,a,o,d,l={},A){if(!e||e.trim().length===0)return;let n;if(A!==void 0){let k;A.includes(` +import{g as He}from"./chunk-5VM5RSS4-DxIYPYOn.js";import{g as Xe}from"./chunk-XXDRQBXY-AHUPVB2f.js";import{s as Qe}from"./chunk-VR4S4FIN-CYEgbtU1.js";import{_ as b,b6 as Ze,X as Oe,l as Z,c as g1,v as Je,x as $e,y as ie,b as et,s as tt,o as st,a as it,g as rt,p as at,k as nt,Y as ut,Z as ot,bp as lt,r as te,d as se,a5 as ct,q as ht,b9 as dt,t as pt}from"./mermaid.core-B_UcP3X_.js";import{f as ft}from"./chunk-32BRIVSS-D_mpvupa.js";import{c as gt}from"./channel-Bw0eTBly.js";var bt="flowchart-",At=class{constructor(){this.vertexCounter=0,this.config=g1(),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=et,this.setAccDescription=tt,this.setDiagramTitle=st,this.getAccTitle=it,this.getAccDescription=rt,this.getDiagramTitle=at,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{b(this,"FlowDB")}sanitizeText(e){return nt.sanitizeText(e,this.config)}sanitizeNodeLabelType(e){switch(e){case"markdown":case"string":case"text":return e;default:return"markdown"}}setDiagramId(e){this.diagramId=e}lookUpDomId(e){for(const i of this.vertices.values())if(i.id===e)return this.diagramId?`${this.diagramId}-${i.domId}`:i.domId;return this.diagramId?`${this.diagramId}-${e}`:e}addVertex(e,i,r,a,o,d,l={},A){if(!e||e.trim().length===0)return;let n;if(A!==void 0){let k;A.includes(` `)?k=A+` `:k=`{ `+A+` -}`,n=ut(k,{schema:ot})}const g=this.edges.find(k=>k.id===e);if(g){const k=n;k?.animate!==void 0&&(g.animate=k.animate),k?.animation!==void 0&&(g.animation=k.animation),k?.curve!==void 0&&(g.interpolate=k.curve);return}let B,f=this.vertices.get(e);if(f===void 0&&(i===void 0&&r===void 0&&a!==void 0&&a!==null&&J.warn(`Style applied to unknown node "${e}". This may indicate a typo. The node will be created automatically.`),f={id:e,labelType:"text",domId:bt+e+"-"+this.vertexCounter,styles:[],classes:[]},this.vertices.set(e,f)),this.vertexCounter++,i!==void 0?(this.config=g1(),B=this.sanitizeText(i.text.trim()),f.labelType=i.type,B.startsWith('"')&&B.endsWith('"')&&(B=B.substring(1,B.length-1)),f.text=B):f.text===void 0&&(f.text=e),r!==void 0&&(f.type=r),a?.forEach(k=>{f.styles.push(k)}),o?.forEach(k=>{f.classes.push(k)}),d!==void 0&&(f.dir=d),f.props===void 0?f.props=l:l!==void 0&&Object.assign(f.props,l),n!==void 0){if(n.shape){if(n.shape!==n.shape.toLowerCase()||n.shape.includes("_"))throw new Error(`No such shape: ${n.shape}. Shape names should be lowercase.`);if(!lt(n.shape))throw new Error(`No such shape: ${n.shape}.`);f.type=n?.shape}n?.label&&(f.text=n?.label,f.labelType=this.sanitizeNodeLabelType(n?.labelType)),n?.icon&&(f.icon=n?.icon,!n.label?.trim()&&f.text===e&&(f.text="")),n?.form&&(f.form=n?.form),n?.pos&&(f.pos=n?.pos),n?.img&&(f.img=n?.img,!n.label?.trim()&&f.text===e&&(f.text="")),n?.constraint&&(f.constraint=n.constraint),n.w&&(f.assetWidth=Number(n.w)),n.h&&(f.assetHeight=Number(n.h))}}addSingleLink(e,i,r,a){const l={start:e,end:i,type:void 0,text:"",labelType:"text",classes:[],isUserDefinedId:!1,interpolate:this.edges.defaultInterpolate};J.info("abc78 Got edge...",l);const A=r.text;if(A!==void 0&&(l.text=this.sanitizeText(A.text.trim()),l.text.startsWith('"')&&l.text.endsWith('"')&&(l.text=l.text.substring(1,l.text.length-1)),l.labelType=this.sanitizeNodeLabelType(A.type)),r!==void 0&&(l.type=r.type,l.stroke=r.stroke,l.length=r.length>10?10:r.length),a&&!this.edges.some(n=>n.id===a))l.id=a,l.isUserDefinedId=!0;else{const n=this.edges.filter(g=>g.start===l.start&&g.end===l.end);n.length===0?l.id=te(l.start,l.end,{counter:0,prefix:"L"}):l.id=te(l.start,l.end,{counter:n.length+1,prefix:"L"})}if(this.edges.length<(this.config.maxEdges??500))J.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}. +}`,n=ut(k,{schema:ot})}const g=this.edges.find(k=>k.id===e);if(g){const k=n;k?.animate!==void 0&&(g.animate=k.animate),k?.animation!==void 0&&(g.animation=k.animation),k?.curve!==void 0&&(g.interpolate=k.curve);return}let B,f=this.vertices.get(e);if(f===void 0&&(i===void 0&&r===void 0&&a!==void 0&&a!==null&&Z.warn(`Style applied to unknown node "${e}". This may indicate a typo. The node will be created automatically.`),f={id:e,labelType:"text",domId:bt+e+"-"+this.vertexCounter,styles:[],classes:[]},this.vertices.set(e,f)),this.vertexCounter++,i!==void 0?(this.config=g1(),B=this.sanitizeText(i.text.trim()),f.labelType=i.type,B.startsWith('"')&&B.endsWith('"')&&(B=B.substring(1,B.length-1)),f.text=B):f.text===void 0&&(f.text=e),r!==void 0&&(f.type=r),a?.forEach(k=>{f.styles.push(k)}),o?.forEach(k=>{f.classes.push(k)}),d!==void 0&&(f.dir=d),f.props===void 0?f.props=l:l!==void 0&&Object.assign(f.props,l),n!==void 0){if(n.shape){if(n.shape!==n.shape.toLowerCase()||n.shape.includes("_"))throw new Error(`No such shape: ${n.shape}. Shape names should be lowercase.`);if(!lt(n.shape))throw new Error(`No such shape: ${n.shape}.`);f.type=n?.shape}n?.label&&(f.text=n?.label,f.labelType=this.sanitizeNodeLabelType(n?.labelType)),n?.icon&&(f.icon=n?.icon,!n.label?.trim()&&f.text===e&&(f.text="")),n?.form&&(f.form=n?.form),n?.pos&&(f.pos=n?.pos),n?.img&&(f.img=n?.img,!n.label?.trim()&&f.text===e&&(f.text="")),n?.constraint&&(f.constraint=n.constraint),n.w&&(f.assetWidth=Number(n.w)),n.h&&(f.assetHeight=Number(n.h))}}addSingleLink(e,i,r,a){const l={start:e,end:i,type:void 0,text:"",labelType:"text",classes:[],isUserDefinedId:!1,interpolate:this.edges.defaultInterpolate};Z.info("abc78 Got edge...",l);const A=r.text;if(A!==void 0&&(l.text=this.sanitizeText(A.text.trim()),l.text.startsWith('"')&&l.text.endsWith('"')&&(l.text=l.text.substring(1,l.text.length-1)),l.labelType=this.sanitizeNodeLabelType(A.type)),r!==void 0&&(l.type=r.type,l.stroke=r.stroke,l.length=r.length>10?10:r.length),a&&!this.edges.some(n=>n.id===a))l.id=a,l.isUserDefinedId=!0;else{const n=this.edges.filter(g=>g.start===l.start&&g.end===l.end);n.length===0?l.id=te(l.start,l.end,{counter:0,prefix:"L"}):l.id=te(l.start,l.end,{counter:n.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(e){return e!==null&&typeof e=="object"&&"id"in e&&typeof e.id=="string"}addLink(e,i,r){const a=this.isLinkData(r)?r.id.replace("@",""):void 0;J.info("addLink",e,i,a);for(const o of e)for(const d of i){const l=o===e[e.length-1],A=d===i[0];l&&A?this.addSingleLink(o,d,r,a):this.addSingleLink(o,d,r,void 0)}}updateLinkInterpolate(e,i){e.forEach(r=>{r==="default"?this.edges.defaultInterpolate=i:this.edges[r].interpolate=i})}updateLink(e,i){e.forEach(r=>{if(typeof r=="number"&&r>=this.edges.length)throw new Error(`The index ${r} 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.)`);r==="default"?this.edges.defaultStyle=i:(this.edges[r].style=i,(this.edges[r]?.style?.length??0)>0&&!this.edges[r]?.style?.some(a=>a?.startsWith("fill"))&&this.edges[r]?.style?.push("fill:none"))})}addClass(e,i){const r=i.join().replace(/\\,/g,"§§§").replace(/,/g,";").replace(/§§§/g,",").split(";");e.split(",").forEach(a=>{let o=this.classes.get(a);o===void 0&&(o={id:a,styles:[],textStyles:[]},this.classes.set(a,o)),r?.forEach(d=>{if(/color/.exec(d)){const l=d.replace("fill","bgFill");o.textStyles.push(l)}o.styles.push(d)})})}setDirection(e){this.direction=e.trim(),/.*/.exec(this.direction)&&(this.direction="LR"),/.*v/.exec(this.direction)&&(this.direction="TB"),this.direction==="TD"&&(this.direction="TB")}setClass(e,i){for(const r of e.split(",")){const a=this.vertices.get(r);a&&a.classes.push(i);const o=this.edges.find(l=>l.id===r);o&&o.classes.push(i);const d=this.subGraphLookup.get(r);d&&d.classes.push(i)}}setTooltip(e,i){if(i!==void 0){i=this.sanitizeText(i);for(const r of e.split(","))this.tooltips.set(this.version==="gen-1"?this.lookUpDomId(r):r,i)}}setClickFun(e,i,r){if(g1().securityLevel!=="loose"||i===void 0)return;let a=[];if(typeof r=="string"){a=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let d=0;d{const d=this.lookUpDomId(e),l=document.querySelector(`[id="${d}"]`);l!==null&&l.addEventListener("click",()=>{ie.runFunc(i,...a)},!1)}))}setLink(e,i,r){e.split(",").forEach(a=>{const o=this.vertices.get(a);o!==void 0&&(o.link=ie.formatUrl(i,this.config),o.linkTarget=r)}),this.setClass(e,"clickable")}getTooltip(e){return this.tooltips.get(e)}setClickEvent(e,i,r){e.split(",").forEach(a=>{this.setClickFun(a,i,r)}),this.setClass(e,"clickable")}bindFunctions(e){this.funs.forEach(i=>{i(e)})}getDirection(){return this.direction?.trim()}getVertices(){return this.vertices}getEdges(){return this.edges}getClasses(){return this.classes}setupToolTips(e){const i=ft();se(e).select("svg").selectAll("g.node").on("mouseover",o=>{const d=se(o.currentTarget),l=d.attr("title");if(l===null)return;const A=o.currentTarget?.getBoundingClientRect();i.transition().duration(200).style("opacity",".9"),i.text(d.attr("title")).style("left",window.scrollX+A.left+(A.right-A.left)/2+"px").style("top",window.scrollY+A.bottom+"px"),i.html(ct.sanitize(l)),d.classed("hover",!0)}).on("mouseout",o=>{i.transition().duration(500).style("opacity",0),se(o.currentTarget).classed("hover",!1)})}clear(e="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=e,this.config=g1(),ht()}setGen(e){this.version=e||"gen-2"}defaultStyle(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"}addSubGraph(e,i,r){let a=e.text.trim(),o=r.text;e===r&&/\s/.exec(r.text)&&(a=void 0);const l=b(Y=>{const F={boolean:{},number:{},string:{}},_=[];let b1;return{nodeList:Y.filter(function(j){const h1=typeof j;return j.stmt&&j.stmt==="dir"?(b1=j.value,!1):j.trim()===""?!1:h1 in F?F[h1].hasOwnProperty(j)?!1:F[h1][j]=!0:_.includes(j)?!1:_.push(j)}),dir:b1}},"uniq")(i.flat()),A=l.nodeList,n=l.dir,g=n!==void 0,B=g1().flowchart??{},f=n??(B.inheritDir?this.getDirection()??g1().direction??void 0:void 0);if(this.version==="gen-1")for(let Y=0;Y2e3)return{result:!1,count:0};if(this.posCrossRef[this.secCount]=i,this.subGraphs[i].id===e)return{result:!0,count:0};let a=0,o=1;for(;a=0){const l=this.indexNodes2(e,d);if(l.result)return{result:!0,count:o+l.count};o=o+l.count}a=a+1}return{result:!1,count:o}}getDepthFirstPos(e){return this.posCrossRef[e]}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(e){let i=e.trim(),r="arrow_open";switch(i[0]){case"<":r="arrow_point",i=i.slice(1);break;case"x":r="arrow_cross",i=i.slice(1);break;case"o":r="arrow_circle",i=i.slice(1);break}let a="normal";return i.includes("=")&&(a="thick"),i.includes(".")&&(a="dotted"),{type:r,stroke:a}}countChar(e,i){const r=i.length;let a=0;for(let o=0;o":a="arrow_point",i.startsWith("<")&&(a="double_"+a,r=r.slice(1));break;case"o":a="arrow_circle",i.startsWith("o")&&(a="double_"+a,r=r.slice(1));break}let o="normal",d=r.length-1;r.startsWith("=")&&(o="thick"),r.startsWith("~")&&(o="invisible");const l=this.countChar(".",r);return l&&(o="dotted",d=l),{type:a,stroke:o,length:d}}destructLink(e,i){const r=this.destructEndLink(e);let a;if(i){if(a=this.destructStartLink(i),a.stroke!==r.stroke)return{type:"INVALID",stroke:"INVALID"};if(a.type==="arrow_open")a.type=r.type;else{if(a.type!==r.type)return{type:"INVALID",stroke:"INVALID"};a.type="double_"+a.type}return a.type==="double_arrow"&&(a.type="double_arrow_point"),a.length=r.length,a}return r}exists(e,i){for(const r of e)if(r.nodes.includes(i))return!0;return!1}makeUniq(e,i){const r=[];return e.nodes.forEach((a,o)=>{this.exists(i,a)||r.push(e.nodes[o])}),{nodes:r}}getTypeFromVertex(e){if(e.img)return"imageSquare";if(e.icon)return e.form==="circle"?"iconCircle":e.form==="square"?"iconSquare":e.form==="rounded"?"iconRounded":"icon";switch(e.type){case"square":case void 0:return"squareRect";case"round":return"roundedRect";case"ellipse":return"ellipse";default:return e.type}}findNode(e,i){return e.find(r=>r.id===i)}destructEdgeType(e){let i="none",r="arrow_point";switch(e){case"arrow_point":case"arrow_circle":case"arrow_cross":r=e;break;case"double_arrow_point":case"double_arrow_circle":case"double_arrow_cross":i=e.replace("double_",""),r=i;break}return{arrowTypeStart:i,arrowTypeEnd:r}}addNodeFromVertex(e,i,r,a,o,d){const l=r.get(e.id),A=a.get(e.id)??!1,n=this.findNode(i,e.id);if(n)n.cssStyles=e.styles,n.cssCompiledStyles=this.getCompiledStyles(e.classes),n.cssClasses=e.classes.join(" ");else{const g={id:e.id,label:e.text,labelType:e.labelType,labelStyle:"",parentId:l,padding:o.flowchart?.padding||8,cssStyles:e.styles,cssCompiledStyles:this.getCompiledStyles(["default","node",...e.classes]),cssClasses:"default "+e.classes.join(" "),dir:e.dir,domId:e.domId,look:d,link:e.link,linkTarget:e.linkTarget,tooltip:this.getTooltip(e.id),icon:e.icon,pos:e.pos,img:e.img,assetWidth:e.assetWidth,assetHeight:e.assetHeight,constraint:e.constraint};A?i.push({...g,isGroup:!0,shape:"rect"}):i.push({...g,isGroup:!1,shape:this.getTypeFromVertex(e)})}}getCompiledStyles(e){let i=[];for(const r of e){const a=this.classes.get(r);a?.styles&&(i=[...i,...a.styles??[]].map(o=>o.trim())),a?.textStyles&&(i=[...i,...a.textStyles??[]].map(o=>o.trim()))}return i}getData(){const e=g1(),i=[],r=[],a=this.getSubGraphs(),o=new Map,d=new Map;for(let n=a.length-1;n>=0;n--){const g=a[n];g.nodes.length>0&&d.set(g.id,!0);for(const B of g.nodes)o.set(B,g.id)}for(let n=a.length-1;n>=0;n--){const g=a[n];i.push({id:g.id,label:g.title,labelStyle:"",labelType:g.labelType,parentId:o.get(g.id),padding:8,cssCompiledStyles:this.getCompiledStyles(g.classes),cssClasses:g.classes.join(" "),shape:"rect",dir:g.dir==="TD"?"TB":g.dir,explicitDir:g.hasExplicitDir,isGroup:!0,look:e.look})}this.getVertices().forEach(n=>{this.addNodeFromVertex(n,i,o,d,e,e.look||"classic")});const A=this.getEdges();return A.forEach((n,g)=>{const{arrowTypeStart:B,arrowTypeEnd:f}=this.destructEdgeType(n.type),k=[...A.defaultStyle??[]];n.style&&k.push(...n.style);const Y={id:te(n.start,n.end,{counter:g,prefix:"L"},n.id),isUserDefinedId:n.isUserDefinedId,start:n.start,end:n.end,type:n.type??"normal",label:n.text,labelType:n.labelType,labelpos:"c",thickness:n.stroke,minlen:n.length,classes:n?.stroke==="invisible"?"":"edge-thickness-normal edge-pattern-solid flowchart-link",arrowTypeStart:n?.stroke==="invisible"||n?.type==="arrow_open"?"none":B,arrowTypeEnd:n?.stroke==="invisible"||n?.type==="arrow_open"?"none":f,arrowheadStyle:"fill: #333",cssCompiledStyles:this.getCompiledStyles(n.classes),labelStyle:k,style:k,pattern:n.stroke,look:e.look,animate:n.animate,animation:n.animation,curve:n.interpolate||this.edges.defaultInterpolate||e.flowchart?.curve};r.push(Y)}),{nodes:i,edges:r,other:{},config:e}}defaultConfig(){return dt.flowchart}},kt=b(function(e,i){return i.db.getClasses()},"getClasses"),mt=b(async function(e,i,r,a,o){J.info("REF0:"),J.info("Drawing state diagram (v2)",i);const{securityLevel:d,flowchart:l,layout:A}=g1();a.db.setDiagramId(i),J.debug("Before getData: ");const n=a.db.getData();J.debug("Data: ",n);const g=Xe(i,d),B=a.db.getDirection();n.type=a.type,n.layoutAlgorithm=Ze(A),n.layoutAlgorithm==="dagre"&&A==="elk"&&J.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."),n.direction=B,n.nodeSpacing=l?.nodeSpacing||50,n.rankSpacing=l?.rankSpacing||50,n.markers=["point","circle","cross"],n.diagramId=i,J.debug("REF1:",n),await $e(n,g,o);const f=n.config.flowchart?.diagramPadding??8;ie.insertTitle(g,"flowchartTitleText",l?.titleTopMargin||0,a.db.getDiagramTitle()),Qe(g,f,"flowchart",l?.useMaxWidth||!1)},"draw"),Dt={getClasses:kt,draw:mt},re=(function(){var e=b(function(f1,c,h,p){for(h=h||{},p=f1.length;p--;h[f1[p]]=c);return h},"o"),i=[1,4],r=[1,3],a=[1,5],o=[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],d=[2,2],l=[1,13],A=[1,14],n=[1,15],g=[1,16],B=[1,23],f=[1,25],k=[1,26],Y=[1,27],F=[1,50],_=[1,49],b1=[1,29],N1=[1,30],j=[1,31],h1=[1,32],P1=[1,33],L=[1,45],V=[1,47],I=[1,43],w=[1,48],R=[1,44],N=[1,51],G=[1,46],P=[1,52],O=[1,53],O1=[1,34],M1=[1,35],U1=[1,36],z1=[1,37],W1=[1,38],d1=[1,58],T=[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],$=[1,62],e1=[1,61],t1=[1,63],D1=[8,9,11,75,77,78],ae=[1,79],E1=[1,92],C1=[1,97],T1=[1,96],S1=[1,93],y1=[1,89],x1=[1,95],F1=[1,91],_1=[1,98],B1=[1,94],v1=[1,99],L1=[1,90],A1=[8,9,10,11,40,75,77,78],U=[8,9,10,11,40,46,75,77,78],q=[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],ne=[8,9,11,44,60,75,77,78,89,102,105,106,109,111,114,115,116],V1=[44,60,89,102,105,106,109,111,114,115,116],ue=[1,122],oe=[1,123],j1=[1,125],K1=[1,124],le=[44,60,62,74,89,102,105,106,109,111,114,115,116],ce=[1,134],he=[1,148],de=[1,149],pe=[1,150],fe=[1,151],ge=[1,136],be=[1,138],Ae=[1,142],ke=[1,143],me=[1,144],De=[1,145],Ee=[1,146],Ce=[1,147],Te=[1,152],Se=[1,153],ye=[1,132],xe=[1,133],Fe=[1,140],_e=[1,135],Be=[1,139],ve=[1,137],X1=[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],Le=[1,155],Ve=[1,157],x=[8,9,11],H=[8,9,10,11,14,44,60,89,105,106,109,111,114,115,116],m=[1,177],z=[1,173],W=[1,174],D=[1,178],E=[1,175],C=[1,176],I1=[77,116,119],S=[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],Ie=[10,106],p1=[31,49,51,53,55,57,62,64,66,67,69,71,116,117,118],s1=[1,248],i1=[1,246],r1=[1,250],a1=[1,244],n1=[1,245],u1=[1,247],o1=[1,249],l1=[1,251],w1=[1,269],we=[8,9,11,106],Z=[8,9,10,11,60,84,105,106,109,110,111,112],Q1={trace:b(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:b(function(c,h,p,u,y,t,G1){var s=t.length-1;switch(y){case 2:this.$=[];break;case 3:(!Array.isArray(t[s])||t[s].length>0)&&t[s-1].push(t[s]),this.$=t[s-1];break;case 4:case 183:this.$=t[s];break;case 11:u.setDirection("TB"),this.$="TB";break;case 12:u.setDirection(t[s-1]),this.$=t[s-1];break;case 27:this.$=t[s-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=u.addSubGraph(t[s-6],t[s-1],t[s-4]);break;case 34:this.$=u.addSubGraph(t[s-3],t[s-1],t[s-3]);break;case 35:this.$=u.addSubGraph(void 0,t[s-1],void 0);break;case 37:this.$=t[s].trim(),u.setAccTitle(this.$);break;case 38:case 39:this.$=t[s].trim(),u.setAccDescription(this.$);break;case 43:this.$=t[s-1]+t[s];break;case 44:this.$=t[s];break;case 45:u.addVertex(t[s-1][t[s-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,t[s]),u.addLink(t[s-3].stmt,t[s-1],t[s-2]),this.$={stmt:t[s-1],nodes:t[s-1].concat(t[s-3].nodes)};break;case 46:u.addLink(t[s-2].stmt,t[s],t[s-1]),this.$={stmt:t[s],nodes:t[s].concat(t[s-2].nodes)};break;case 47:u.addLink(t[s-3].stmt,t[s-1],t[s-2]),this.$={stmt:t[s-1],nodes:t[s-1].concat(t[s-3].nodes)};break;case 48:this.$={stmt:t[s-1],nodes:t[s-1]};break;case 49:u.addVertex(t[s-1][t[s-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,t[s]),this.$={stmt:t[s-1],nodes:t[s-1],shapeData:t[s]};break;case 50:this.$={stmt:t[s],nodes:t[s]};break;case 51:this.$=[t[s]];break;case 52:u.addVertex(t[s-5][t[s-5].length-1],void 0,void 0,void 0,void 0,void 0,void 0,t[s-4]),this.$=t[s-5].concat(t[s]);break;case 53:this.$=t[s-4].concat(t[s]);break;case 54:this.$=t[s];break;case 55:this.$=t[s-2],u.setClass(t[s-2],t[s]);break;case 56:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"square");break;case 57:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"doublecircle");break;case 58:this.$=t[s-5],u.addVertex(t[s-5],t[s-2],"circle");break;case 59:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"ellipse");break;case 60:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"stadium");break;case 61:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"subroutine");break;case 62:this.$=t[s-7],u.addVertex(t[s-7],t[s-1],"rect",void 0,void 0,void 0,Object.fromEntries([[t[s-5],t[s-3]]]));break;case 63:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"cylinder");break;case 64:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"round");break;case 65:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"diamond");break;case 66:this.$=t[s-5],u.addVertex(t[s-5],t[s-2],"hexagon");break;case 67:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"odd");break;case 68:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"trapezoid");break;case 69:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"inv_trapezoid");break;case 70:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"lean_right");break;case 71:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"lean_left");break;case 72:this.$=t[s],u.addVertex(t[s]);break;case 73:t[s-1].text=t[s],this.$=t[s-1];break;case 74:case 75:t[s-2].text=t[s-1],this.$=t[s-2];break;case 76:this.$=t[s];break;case 77:var v=u.destructLink(t[s],t[s-2]);this.$={type:v.type,stroke:v.stroke,length:v.length,text:t[s-1]};break;case 78:var v=u.destructLink(t[s],t[s-2]);this.$={type:v.type,stroke:v.stroke,length:v.length,text:t[s-1],id:t[s-3]};break;case 79:this.$={text:t[s],type:"text"};break;case 80:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 81:this.$={text:t[s],type:"string"};break;case 82:this.$={text:t[s],type:"markdown"};break;case 83:var v=u.destructLink(t[s]);this.$={type:v.type,stroke:v.stroke,length:v.length};break;case 84:var v=u.destructLink(t[s]);this.$={type:v.type,stroke:v.stroke,length:v.length,id:t[s-1]};break;case 85:this.$=t[s-1];break;case 86:this.$={text:t[s],type:"text"};break;case 87:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 88:this.$={text:t[s],type:"string"};break;case 89:case 104:this.$={text:t[s],type:"markdown"};break;case 101:this.$={text:t[s],type:"text"};break;case 102:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 103:this.$={text:t[s],type:"text"};break;case 105:this.$=t[s-4],u.addClass(t[s-2],t[s]);break;case 106:this.$=t[s-4],u.setClass(t[s-2],t[s]);break;case 107:case 115:this.$=t[s-1],u.setClickEvent(t[s-1],t[s]);break;case 108:case 116:this.$=t[s-3],u.setClickEvent(t[s-3],t[s-2]),u.setTooltip(t[s-3],t[s]);break;case 109:this.$=t[s-2],u.setClickEvent(t[s-2],t[s-1],t[s]);break;case 110:this.$=t[s-4],u.setClickEvent(t[s-4],t[s-3],t[s-2]),u.setTooltip(t[s-4],t[s]);break;case 111:this.$=t[s-2],u.setLink(t[s-2],t[s]);break;case 112:this.$=t[s-4],u.setLink(t[s-4],t[s-2]),u.setTooltip(t[s-4],t[s]);break;case 113:this.$=t[s-4],u.setLink(t[s-4],t[s-2],t[s]);break;case 114:this.$=t[s-6],u.setLink(t[s-6],t[s-4],t[s]),u.setTooltip(t[s-6],t[s-2]);break;case 117:this.$=t[s-1],u.setLink(t[s-1],t[s]);break;case 118:this.$=t[s-3],u.setLink(t[s-3],t[s-2]),u.setTooltip(t[s-3],t[s]);break;case 119:this.$=t[s-3],u.setLink(t[s-3],t[s-2],t[s]);break;case 120:this.$=t[s-5],u.setLink(t[s-5],t[s-4],t[s]),u.setTooltip(t[s-5],t[s-2]);break;case 121:this.$=t[s-4],u.addVertex(t[s-2],void 0,void 0,t[s]);break;case 122:this.$=t[s-4],u.updateLink([t[s-2]],t[s]);break;case 123:this.$=t[s-4],u.updateLink(t[s-2],t[s]);break;case 124:this.$=t[s-8],u.updateLinkInterpolate([t[s-6]],t[s-2]),u.updateLink([t[s-6]],t[s]);break;case 125:this.$=t[s-8],u.updateLinkInterpolate(t[s-6],t[s-2]),u.updateLink(t[s-6],t[s]);break;case 126:this.$=t[s-6],u.updateLinkInterpolate([t[s-4]],t[s]);break;case 127:this.$=t[s-6],u.updateLinkInterpolate(t[s-4],t[s]);break;case 128:case 130:this.$=[t[s]];break;case 129:case 131:t[s-2].push(t[s]),this.$=t[s-2];break;case 133:this.$=t[s-1]+t[s];break;case 181:this.$=t[s];break;case 182:this.$=t[s-1]+""+t[s];break;case 184:this.$=t[s-1]+""+t[s];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:i,10:r,12:a},{1:[3]},e(o,d,{5:6}),{4:7,9:i,10:r,12:a},{4:8,9:i,10:r,12:a},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:l,9:A,10:n,11:g,20:17,22:18,23:19,24:20,25:21,26:22,27:B,33:24,34:f,36:k,38:Y,42:28,43:39,44:F,45:40,47:41,60:_,84:b1,85:N1,86:j,87:h1,88:P1,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O,121:O1,122:M1,123:U1,124:z1,125:W1},e(o,[2,9]),e(o,[2,10]),e(o,[2,11]),{8:[1,55],9:[1,56],10:d1,15:54,18:57},e(T,[2,3]),e(T,[2,4]),e(T,[2,5]),e(T,[2,6]),e(T,[2,7]),e(T,[2,8]),{8:$,9:e1,11:t1,21:59,41:60,72:64,75:[1,65],77:[1,67],78:[1,66]},{8:$,9:e1,11:t1,21:68},{8:$,9:e1,11:t1,21:69},{8:$,9:e1,11:t1,21:70},{8:$,9:e1,11:t1,21:71},{8:$,9:e1,11:t1,21:72},{8:$,9:e1,10:[1,73],11:t1,21:74},e(T,[2,36]),{35:[1,75]},{37:[1,76]},e(T,[2,39]),e(D1,[2,50],{18:77,39:78,10:d1,40:ae}),{10:[1,80]},{10:[1,81]},{10:[1,82]},{10:[1,83]},{14:E1,44:C1,60:T1,80:[1,87],89:S1,95:[1,84],97:[1,85],101:86,105:y1,106:x1,109:F1,111:_1,114:B1,115:v1,116:L1,120:88},e(T,[2,185]),e(T,[2,186]),e(T,[2,187]),e(T,[2,188]),e(T,[2,189]),e(A1,[2,51]),e(A1,[2,54],{46:[1,100]}),e(U,[2,72],{113:113,29:[1,101],44:F,48:[1,102],50:[1,103],52:[1,104],54:[1,105],56:[1,106],58:[1,107],60:_,63:[1,108],65:[1,109],67:[1,110],68:[1,111],70:[1,112],89:L,102:V,105:I,106:w,109:R,111:N,114:G,115:P,116:O}),e(q,[2,181]),e(q,[2,142]),e(q,[2,143]),e(q,[2,144]),e(q,[2,145]),e(q,[2,146]),e(q,[2,147]),e(q,[2,148]),e(q,[2,149]),e(q,[2,150]),e(q,[2,151]),e(q,[2,152]),e(o,[2,12]),e(o,[2,18]),e(o,[2,19]),{9:[1,114]},e(ne,[2,26],{18:115,10:d1}),e(T,[2,27]),{42:116,43:39,44:F,45:40,47:41,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O},e(T,[2,40]),e(T,[2,41]),e(T,[2,42]),e(V1,[2,76],{73:117,62:[1,119],74:[1,118]}),{76:120,79:121,80:ue,81:oe,116:j1,119:K1},{75:[1,126],77:[1,127]},e(le,[2,83]),e(T,[2,28]),e(T,[2,29]),e(T,[2,30]),e(T,[2,31]),e(T,[2,32]),{10:ce,12:he,14:de,27:pe,28:128,32:fe,44:ge,60:be,75:Ae,80:[1,130],81:[1,131],83:141,84:ke,85:me,86:De,87:Ee,88:Ce,89:Te,90:Se,91:129,105:ye,109:xe,111:Fe,114:_e,115:Be,116:ve},e(X1,d,{5:154}),e(T,[2,37]),e(T,[2,38]),e(D1,[2,48],{44:Le}),e(D1,[2,49],{18:156,10:d1,40:Ve}),e(A1,[2,44]),{44:F,47:158,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O},{102:[1,159],103:160,105:[1,161]},{44:F,47:162,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O},{44:F,47:163,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O},e(x,[2,107],{10:[1,164],96:[1,165]}),{80:[1,166]},e(x,[2,115],{120:168,10:[1,167],14:E1,44:C1,60:T1,89:S1,105:y1,106:x1,109:F1,111:_1,114:B1,115:v1,116:L1}),e(x,[2,117],{10:[1,169]}),e(H,[2,183]),e(H,[2,170]),e(H,[2,171]),e(H,[2,172]),e(H,[2,173]),e(H,[2,174]),e(H,[2,175]),e(H,[2,176]),e(H,[2,177]),e(H,[2,178]),e(H,[2,179]),e(H,[2,180]),{44:F,47:170,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O},{30:171,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{30:179,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{30:181,50:[1,180],67:m,80:z,81:W,82:172,116:D,117:E,118:C},{30:182,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{30:183,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{30:184,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{109:[1,185]},{30:186,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{30:187,65:[1,188],67:m,80:z,81:W,82:172,116:D,117:E,118:C},{30:189,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{30:190,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{30:191,67:m,80:z,81:W,82:172,116:D,117:E,118:C},e(q,[2,182]),e(o,[2,20]),e(ne,[2,25]),e(D1,[2,46],{39:192,18:193,10:d1,40:ae}),e(V1,[2,73],{10:[1,194]}),{10:[1,195]},{30:196,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{77:[1,197],79:198,116:j1,119:K1},e(I1,[2,79]),e(I1,[2,81]),e(I1,[2,82]),e(I1,[2,168]),e(I1,[2,169]),{76:199,79:121,80:ue,81:oe,116:j1,119:K1},e(le,[2,84]),{8:$,9:e1,10:ce,11:t1,12:he,14:de,21:201,27:pe,29:[1,200],32:fe,44:ge,60:be,75:Ae,83:141,84:ke,85:me,86:De,87:Ee,88:Ce,89:Te,90:Se,91:202,105:ye,109:xe,111:Fe,114:_e,115:Be,116:ve},e(S,[2,101]),e(S,[2,103]),e(S,[2,104]),e(S,[2,157]),e(S,[2,158]),e(S,[2,159]),e(S,[2,160]),e(S,[2,161]),e(S,[2,162]),e(S,[2,163]),e(S,[2,164]),e(S,[2,165]),e(S,[2,166]),e(S,[2,167]),e(S,[2,90]),e(S,[2,91]),e(S,[2,92]),e(S,[2,93]),e(S,[2,94]),e(S,[2,95]),e(S,[2,96]),e(S,[2,97]),e(S,[2,98]),e(S,[2,99]),e(S,[2,100]),{6:11,7:12,8:l,9:A,10:n,11:g,20:17,22:18,23:19,24:20,25:21,26:22,27:B,32:[1,203],33:24,34:f,36:k,38:Y,42:28,43:39,44:F,45:40,47:41,60:_,84:b1,85:N1,86:j,87:h1,88:P1,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O,121:O1,122:M1,123:U1,124:z1,125:W1},{10:d1,18:204},{44:[1,205]},e(A1,[2,43]),{10:[1,206],44:F,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:113,114:G,115:P,116:O},{10:[1,207]},{10:[1,208],106:[1,209]},e(Ie,[2,128]),{10:[1,210],44:F,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:113,114:G,115:P,116:O},{10:[1,211],44:F,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:113,114:G,115:P,116:O},{80:[1,212]},e(x,[2,109],{10:[1,213]}),e(x,[2,111],{10:[1,214]}),{80:[1,215]},e(H,[2,184]),{80:[1,216],98:[1,217]},e(A1,[2,55],{113:113,44:F,60:_,89:L,102:V,105:I,106:w,109:R,111:N,114:G,115:P,116:O}),{31:[1,218],67:m,82:219,116:D,117:E,118:C},e(p1,[2,86]),e(p1,[2,88]),e(p1,[2,89]),e(p1,[2,153]),e(p1,[2,154]),e(p1,[2,155]),e(p1,[2,156]),{49:[1,220],67:m,82:219,116:D,117:E,118:C},{30:221,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{51:[1,222],67:m,82:219,116:D,117:E,118:C},{53:[1,223],67:m,82:219,116:D,117:E,118:C},{55:[1,224],67:m,82:219,116:D,117:E,118:C},{57:[1,225],67:m,82:219,116:D,117:E,118:C},{60:[1,226]},{64:[1,227],67:m,82:219,116:D,117:E,118:C},{66:[1,228],67:m,82:219,116:D,117:E,118:C},{30:229,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{31:[1,230],67:m,82:219,116:D,117:E,118:C},{67:m,69:[1,231],71:[1,232],82:219,116:D,117:E,118:C},{67:m,69:[1,234],71:[1,233],82:219,116:D,117:E,118:C},e(D1,[2,45],{18:156,10:d1,40:Ve}),e(D1,[2,47],{44:Le}),e(V1,[2,75]),e(V1,[2,74]),{62:[1,235],67:m,82:219,116:D,117:E,118:C},e(V1,[2,77]),e(I1,[2,80]),{77:[1,236],79:198,116:j1,119:K1},{30:237,67:m,80:z,81:W,82:172,116:D,117:E,118:C},e(X1,d,{5:238}),e(S,[2,102]),e(T,[2,35]),{43:239,44:F,45:40,47:41,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O},{10:d1,18:240},{10:s1,60:i1,84:r1,92:241,105:a1,107:242,108:243,109:n1,110:u1,111:o1,112:l1},{10:s1,60:i1,84:r1,92:252,104:[1,253],105:a1,107:242,108:243,109:n1,110:u1,111:o1,112:l1},{10:s1,60:i1,84:r1,92:254,104:[1,255],105:a1,107:242,108:243,109:n1,110:u1,111:o1,112:l1},{105:[1,256]},{10:s1,60:i1,84:r1,92:257,105:a1,107:242,108:243,109:n1,110:u1,111:o1,112:l1},{44:F,47:258,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O},e(x,[2,108]),{80:[1,259]},{80:[1,260],98:[1,261]},e(x,[2,116]),e(x,[2,118],{10:[1,262]}),e(x,[2,119]),e(U,[2,56]),e(p1,[2,87]),e(U,[2,57]),{51:[1,263],67:m,82:219,116:D,117:E,118:C},e(U,[2,64]),e(U,[2,59]),e(U,[2,60]),e(U,[2,61]),{109:[1,264]},e(U,[2,63]),e(U,[2,65]),{66:[1,265],67:m,82:219,116:D,117:E,118:C},e(U,[2,67]),e(U,[2,68]),e(U,[2,70]),e(U,[2,69]),e(U,[2,71]),e([10,44,60,89,102,105,106,109,111,114,115,116],[2,85]),e(V1,[2,78]),{31:[1,266],67:m,82:219,116:D,117:E,118:C},{6:11,7:12,8:l,9:A,10:n,11:g,20:17,22:18,23:19,24:20,25:21,26:22,27:B,32:[1,267],33:24,34:f,36:k,38:Y,42:28,43:39,44:F,45:40,47:41,60:_,84:b1,85:N1,86:j,87:h1,88:P1,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O,121:O1,122:M1,123:U1,124:z1,125:W1},e(A1,[2,53]),{43:268,44:F,45:40,47:41,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O},e(x,[2,121],{106:w1}),e(we,[2,130],{108:270,10:s1,60:i1,84:r1,105:a1,109:n1,110:u1,111:o1,112:l1}),e(Z,[2,132]),e(Z,[2,134]),e(Z,[2,135]),e(Z,[2,136]),e(Z,[2,137]),e(Z,[2,138]),e(Z,[2,139]),e(Z,[2,140]),e(Z,[2,141]),e(x,[2,122],{106:w1}),{10:[1,271]},e(x,[2,123],{106:w1}),{10:[1,272]},e(Ie,[2,129]),e(x,[2,105],{106:w1}),e(x,[2,106],{113:113,44:F,60:_,89:L,102:V,105:I,106:w,109:R,111:N,114:G,115:P,116:O}),e(x,[2,110]),e(x,[2,112],{10:[1,273]}),e(x,[2,113]),{98:[1,274]},{51:[1,275]},{62:[1,276]},{66:[1,277]},{8:$,9:e1,11:t1,21:278},e(T,[2,34]),e(A1,[2,52]),{10:s1,60:i1,84:r1,105:a1,107:279,108:243,109:n1,110:u1,111:o1,112:l1},e(Z,[2,133]),{14:E1,44:C1,60:T1,89:S1,101:280,105:y1,106:x1,109:F1,111:_1,114:B1,115:v1,116:L1,120:88},{14:E1,44:C1,60:T1,89:S1,101:281,105:y1,106:x1,109:F1,111:_1,114:B1,115:v1,116:L1,120:88},{98:[1,282]},e(x,[2,120]),e(U,[2,58]),{30:283,67:m,80:z,81:W,82:172,116:D,117:E,118:C},e(U,[2,66]),e(X1,d,{5:284}),e(we,[2,131],{108:270,10:s1,60:i1,84:r1,105:a1,109:n1,110:u1,111:o1,112:l1}),e(x,[2,126],{120:168,10:[1,285],14:E1,44:C1,60:T1,89:S1,105:y1,106:x1,109:F1,111:_1,114:B1,115:v1,116:L1}),e(x,[2,127],{120:168,10:[1,286],14:E1,44:C1,60:T1,89:S1,105:y1,106:x1,109:F1,111:_1,114:B1,115:v1,116:L1}),e(x,[2,114]),{31:[1,287],67:m,82:219,116:D,117:E,118:C},{6:11,7:12,8:l,9:A,10:n,11:g,20:17,22:18,23:19,24:20,25:21,26:22,27:B,32:[1,288],33:24,34:f,36:k,38:Y,42:28,43:39,44:F,45:40,47:41,60:_,84:b1,85:N1,86:j,87:h1,88:P1,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O,121:O1,122:M1,123:U1,124:z1,125:W1},{10:s1,60:i1,84:r1,92:289,105:a1,107:242,108:243,109:n1,110:u1,111:o1,112:l1},{10:s1,60:i1,84:r1,92:290,105:a1,107:242,108:243,109:n1,110:u1,111:o1,112:l1},e(U,[2,62]),e(T,[2,33]),e(x,[2,124],{106:w1}),e(x,[2,125],{106:w1})],defaultActions:{},parseError:b(function(c,h){if(h.recoverable)this.trace(c);else{var p=new Error(c);throw p.hash=h,p}},"parseError"),parse:b(function(c){var h=this,p=[0],u=[],y=[null],t=[],G1=this.table,s="",v=0,Re=0,je=2,Ne=1,Ke=t.slice.call(arguments,1),M=Object.create(this.lexer),k1={yy:{}};for(var J1 in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J1)&&(k1.yy[J1]=this.yy[J1]);M.setInput(c,k1.yy),k1.yy.lexer=M,k1.yy.parser=this,typeof M.yylloc>"u"&&(M.yylloc={});var Z1=M.yylloc;t.push(Z1);var Ye=M.options&&M.options.ranges;typeof k1.yy.parseError=="function"?this.parseError=k1.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function qe(X){p.length=p.length-2*X,y.length=y.length-X,t.length=t.length-X}b(qe,"popStack");function Ge(){var X;return X=u.pop()||M.lex()||Ne,typeof X!="number"&&(X instanceof Array&&(u=X,X=u.pop()),X=h.symbols_[X]||X),X}b(Ge,"lex");for(var K,m1,Q,$1,R1={},q1,c1,Pe,H1;;){if(m1=p[p.length-1],this.defaultActions[m1]?Q=this.defaultActions[m1]:((K===null||typeof K>"u")&&(K=Ge()),Q=G1[m1]&&G1[m1][K]),typeof Q>"u"||!Q.length||!Q[0]){var ee="";H1=[];for(q1 in G1[m1])this.terminals_[q1]&&q1>je&&H1.push("'"+this.terminals_[q1]+"'");M.showPosition?ee="Parse error on line "+(v+1)+`: +You have to call mermaid.initialize.`)}isLinkData(e){return e!==null&&typeof e=="object"&&"id"in e&&typeof e.id=="string"}addLink(e,i,r){const a=this.isLinkData(r)?r.id.replace("@",""):void 0;Z.info("addLink",e,i,a);for(const o of e)for(const d of i){const l=o===e[e.length-1],A=d===i[0];l&&A?this.addSingleLink(o,d,r,a):this.addSingleLink(o,d,r,void 0)}}updateLinkInterpolate(e,i){e.forEach(r=>{r==="default"?this.edges.defaultInterpolate=i:this.edges[r].interpolate=i})}updateLink(e,i){e.forEach(r=>{if(typeof r=="number"&&r>=this.edges.length)throw new Error(`The index ${r} 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.)`);r==="default"?this.edges.defaultStyle=i:(this.edges[r].style=i,(this.edges[r]?.style?.length??0)>0&&!this.edges[r]?.style?.some(a=>a?.startsWith("fill"))&&this.edges[r]?.style?.push("fill:none"))})}addClass(e,i){const r=i.join().replace(/\\,/g,"§§§").replace(/,/g,";").replace(/§§§/g,",").split(";");e.split(",").forEach(a=>{let o=this.classes.get(a);o===void 0&&(o={id:a,styles:[],textStyles:[]},this.classes.set(a,o)),r?.forEach(d=>{if(/color/.exec(d)){const l=d.replace("fill","bgFill");o.textStyles.push(l)}o.styles.push(d)})})}setDirection(e){this.direction=e.trim(),/.*/.exec(this.direction)&&(this.direction="LR"),/.*v/.exec(this.direction)&&(this.direction="TB"),this.direction==="TD"&&(this.direction="TB")}setClass(e,i){for(const r of e.split(",")){const a=this.vertices.get(r);a&&a.classes.push(i);const o=this.edges.find(l=>l.id===r);o&&o.classes.push(i);const d=this.subGraphLookup.get(r);d&&d.classes.push(i)}}setTooltip(e,i){if(i!==void 0){i=this.sanitizeText(i);for(const r of e.split(","))this.tooltips.set(this.version==="gen-1"?this.lookUpDomId(r):r,i)}}setClickFun(e,i,r){if(g1().securityLevel!=="loose"||i===void 0)return;let a=[];if(typeof r=="string"){a=r.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let d=0;d{const d=this.lookUpDomId(e),l=document.querySelector(`[id="${d}"]`);l!==null&&l.addEventListener("click",()=>{ie.runFunc(i,...a)},!1)}))}setLink(e,i,r){e.split(",").forEach(a=>{const o=this.vertices.get(a);o!==void 0&&(o.link=ie.formatUrl(i,this.config),o.linkTarget=r)}),this.setClass(e,"clickable")}getTooltip(e){return this.tooltips.get(e)}setClickEvent(e,i,r){e.split(",").forEach(a=>{this.setClickFun(a,i,r)}),this.setClass(e,"clickable")}bindFunctions(e){this.funs.forEach(i=>{i(e)})}getDirection(){return this.direction?.trim()}getVertices(){return this.vertices}getEdges(){return this.edges}getClasses(){return this.classes}setupToolTips(e){const i=ft();se(e).select("svg").selectAll("g.node").on("mouseover",o=>{const d=se(o.currentTarget),l=d.attr("title");if(l===null)return;const A=o.currentTarget?.getBoundingClientRect();i.transition().duration(200).style("opacity",".9"),i.text(d.attr("title")).style("left",window.scrollX+A.left+(A.right-A.left)/2+"px").style("top",window.scrollY+A.bottom+"px"),i.html(ct.sanitize(l)),d.classed("hover",!0)}).on("mouseout",o=>{i.transition().duration(500).style("opacity",0),se(o.currentTarget).classed("hover",!1)})}clear(e="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=e,this.config=g1(),ht()}setGen(e){this.version=e||"gen-2"}defaultStyle(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"}addSubGraph(e,i,r){let a=e.text.trim(),o=r.text;e===r&&/\s/.exec(r.text)&&(a=void 0);const l=b(Y=>{const F={boolean:{},number:{},string:{}},_=[];let b1;return{nodeList:Y.filter(function(j){const h1=typeof j;return j.stmt&&j.stmt==="dir"?(b1=j.value,!1):j.trim()===""?!1:h1 in F?F[h1].hasOwnProperty(j)?!1:F[h1][j]=!0:_.includes(j)?!1:_.push(j)}),dir:b1}},"uniq")(i.flat()),A=l.nodeList,n=l.dir,g=n!==void 0,B=g1().flowchart??{},f=n??(B.inheritDir?this.getDirection()??g1().direction??void 0:void 0);if(this.version==="gen-1")for(let Y=0;Y2e3)return{result:!1,count:0};if(this.posCrossRef[this.secCount]=i,this.subGraphs[i].id===e)return{result:!0,count:0};let a=0,o=1;for(;a=0){const l=this.indexNodes2(e,d);if(l.result)return{result:!0,count:o+l.count};o=o+l.count}a=a+1}return{result:!1,count:o}}getDepthFirstPos(e){return this.posCrossRef[e]}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(e){let i=e.trim(),r="arrow_open";switch(i[0]){case"<":r="arrow_point",i=i.slice(1);break;case"x":r="arrow_cross",i=i.slice(1);break;case"o":r="arrow_circle",i=i.slice(1);break}let a="normal";return i.includes("=")&&(a="thick"),i.includes(".")&&(a="dotted"),{type:r,stroke:a}}countChar(e,i){const r=i.length;let a=0;for(let o=0;o":a="arrow_point",i.startsWith("<")&&(a="double_"+a,r=r.slice(1));break;case"o":a="arrow_circle",i.startsWith("o")&&(a="double_"+a,r=r.slice(1));break}let o="normal",d=r.length-1;r.startsWith("=")&&(o="thick"),r.startsWith("~")&&(o="invisible");const l=this.countChar(".",r);return l&&(o="dotted",d=l),{type:a,stroke:o,length:d}}destructLink(e,i){const r=this.destructEndLink(e);let a;if(i){if(a=this.destructStartLink(i),a.stroke!==r.stroke)return{type:"INVALID",stroke:"INVALID"};if(a.type==="arrow_open")a.type=r.type;else{if(a.type!==r.type)return{type:"INVALID",stroke:"INVALID"};a.type="double_"+a.type}return a.type==="double_arrow"&&(a.type="double_arrow_point"),a.length=r.length,a}return r}exists(e,i){for(const r of e)if(r.nodes.includes(i))return!0;return!1}makeUniq(e,i){const r=[];return e.nodes.forEach((a,o)=>{this.exists(i,a)||r.push(e.nodes[o])}),{nodes:r}}getTypeFromVertex(e){if(e.img)return"imageSquare";if(e.icon)return e.form==="circle"?"iconCircle":e.form==="square"?"iconSquare":e.form==="rounded"?"iconRounded":"icon";switch(e.type){case"square":case void 0:return"squareRect";case"round":return"roundedRect";case"ellipse":return"ellipse";default:return e.type}}findNode(e,i){return e.find(r=>r.id===i)}destructEdgeType(e){let i="none",r="arrow_point";switch(e){case"arrow_point":case"arrow_circle":case"arrow_cross":r=e;break;case"double_arrow_point":case"double_arrow_circle":case"double_arrow_cross":i=e.replace("double_",""),r=i;break}return{arrowTypeStart:i,arrowTypeEnd:r}}addNodeFromVertex(e,i,r,a,o,d){const l=r.get(e.id),A=a.get(e.id)??!1,n=this.findNode(i,e.id);if(n)n.cssStyles=e.styles,n.cssCompiledStyles=this.getCompiledStyles(e.classes),n.cssClasses=e.classes.join(" ");else{const g={id:e.id,label:e.text,labelType:e.labelType,labelStyle:"",parentId:l,padding:o.flowchart?.padding||8,cssStyles:e.styles,cssCompiledStyles:this.getCompiledStyles(["default","node",...e.classes]),cssClasses:"default "+e.classes.join(" "),dir:e.dir,domId:e.domId,look:d,link:e.link,linkTarget:e.linkTarget,tooltip:this.getTooltip(e.id),icon:e.icon,pos:e.pos,img:e.img,assetWidth:e.assetWidth,assetHeight:e.assetHeight,constraint:e.constraint};A?i.push({...g,isGroup:!0,shape:"rect"}):i.push({...g,isGroup:!1,shape:this.getTypeFromVertex(e)})}}getCompiledStyles(e){let i=[];for(const r of e){const a=this.classes.get(r);a?.styles&&(i=[...i,...a.styles??[]].map(o=>o.trim())),a?.textStyles&&(i=[...i,...a.textStyles??[]].map(o=>o.trim()))}return i}getData(){const e=g1(),i=[],r=[],a=this.getSubGraphs(),o=new Map,d=new Map;for(let n=a.length-1;n>=0;n--){const g=a[n];g.nodes.length>0&&d.set(g.id,!0);for(const B of g.nodes)o.set(B,g.id)}for(let n=a.length-1;n>=0;n--){const g=a[n];i.push({id:g.id,label:g.title,labelStyle:"",labelType:g.labelType,parentId:o.get(g.id),padding:8,cssCompiledStyles:this.getCompiledStyles(g.classes),cssClasses:g.classes.join(" "),shape:"rect",dir:g.dir==="TD"?"TB":g.dir,explicitDir:g.hasExplicitDir,isGroup:!0,look:e.look})}this.getVertices().forEach(n=>{this.addNodeFromVertex(n,i,o,d,e,e.look||"classic")});const A=this.getEdges();return A.forEach((n,g)=>{const{arrowTypeStart:B,arrowTypeEnd:f}=this.destructEdgeType(n.type),k=[...A.defaultStyle??[]];n.style&&k.push(...n.style);const Y={id:te(n.start,n.end,{counter:g,prefix:"L"},n.id),isUserDefinedId:n.isUserDefinedId,start:n.start,end:n.end,type:n.type??"normal",label:n.text,labelType:n.labelType,labelpos:"c",thickness:n.stroke,minlen:n.length,classes:n?.stroke==="invisible"?"":"edge-thickness-normal edge-pattern-solid flowchart-link",arrowTypeStart:n?.stroke==="invisible"||n?.type==="arrow_open"?"none":B,arrowTypeEnd:n?.stroke==="invisible"||n?.type==="arrow_open"?"none":f,arrowheadStyle:"fill: #333",cssCompiledStyles:this.getCompiledStyles(n.classes),labelStyle:k,style:k,pattern:n.stroke,look:e.look,animate:n.animate,animation:n.animation,curve:n.interpolate||this.edges.defaultInterpolate||e.flowchart?.curve};r.push(Y)}),{nodes:i,edges:r,other:{},config:e}}defaultConfig(){return dt.flowchart}},kt=b(function(e,i){return i.db.getClasses()},"getClasses"),mt=b(async function(e,i,r,a,o){Z.info("REF0:"),Z.info("Drawing state diagram (v2)",i);const{securityLevel:d,flowchart:l,layout:A}=g1();a.db.setDiagramId(i),Z.debug("Before getData: ");const n=a.db.getData();Z.debug("Data: ",n);const g=Xe(i,d),B=a.db.getDirection();n.type=a.type,n.layoutAlgorithm=Je(A),n.layoutAlgorithm==="dagre"&&A==="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."),n.direction=B,n.nodeSpacing=l?.nodeSpacing||50,n.rankSpacing=l?.rankSpacing||50,n.markers=["point","circle","cross"],n.diagramId=i,Z.debug("REF1:",n),await $e(n,g,o);const f=n.config.flowchart?.diagramPadding??8;ie.insertTitle(g,"flowchartTitleText",l?.titleTopMargin||0,a.db.getDiagramTitle()),Qe(g,f,"flowchart",l?.useMaxWidth||!1)},"draw"),Dt={getClasses:kt,draw:mt},re=(function(){var e=b(function(f1,c,h,p){for(h=h||{},p=f1.length;p--;h[f1[p]]=c);return h},"o"),i=[1,4],r=[1,3],a=[1,5],o=[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],d=[2,2],l=[1,13],A=[1,14],n=[1,15],g=[1,16],B=[1,23],f=[1,25],k=[1,26],Y=[1,27],F=[1,50],_=[1,49],b1=[1,29],N1=[1,30],j=[1,31],h1=[1,32],P1=[1,33],L=[1,45],V=[1,47],I=[1,43],w=[1,48],R=[1,44],N=[1,51],G=[1,46],P=[1,52],O=[1,53],O1=[1,34],M1=[1,35],U1=[1,36],z1=[1,37],W1=[1,38],d1=[1,58],T=[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],$=[1,62],e1=[1,61],t1=[1,63],D1=[8,9,11,75,77,78],ae=[1,79],E1=[1,92],C1=[1,97],T1=[1,96],S1=[1,93],y1=[1,89],x1=[1,95],F1=[1,91],_1=[1,98],B1=[1,94],v1=[1,99],L1=[1,90],A1=[8,9,10,11,40,75,77,78],U=[8,9,10,11,40,46,75,77,78],q=[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],ne=[8,9,11,44,60,75,77,78,89,102,105,106,109,111,114,115,116],V1=[44,60,89,102,105,106,109,111,114,115,116],ue=[1,122],oe=[1,123],j1=[1,125],K1=[1,124],le=[44,60,62,74,89,102,105,106,109,111,114,115,116],ce=[1,134],he=[1,148],de=[1,149],pe=[1,150],fe=[1,151],ge=[1,136],be=[1,138],Ae=[1,142],ke=[1,143],me=[1,144],De=[1,145],Ee=[1,146],Ce=[1,147],Te=[1,152],Se=[1,153],ye=[1,132],xe=[1,133],Fe=[1,140],_e=[1,135],Be=[1,139],ve=[1,137],X1=[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],Le=[1,155],Ve=[1,157],x=[8,9,11],H=[8,9,10,11,14,44,60,89,105,106,109,111,114,115,116],m=[1,177],z=[1,173],W=[1,174],D=[1,178],E=[1,175],C=[1,176],I1=[77,116,119],S=[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],Ie=[10,106],p1=[31,49,51,53,55,57,62,64,66,67,69,71,116,117,118],s1=[1,248],i1=[1,246],r1=[1,250],a1=[1,244],n1=[1,245],u1=[1,247],o1=[1,249],l1=[1,251],w1=[1,269],we=[8,9,11,106],J=[8,9,10,11,60,84,105,106,109,110,111,112],Q1={trace:b(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:b(function(c,h,p,u,y,t,G1){var s=t.length-1;switch(y){case 2:this.$=[];break;case 3:(!Array.isArray(t[s])||t[s].length>0)&&t[s-1].push(t[s]),this.$=t[s-1];break;case 4:case 183:this.$=t[s];break;case 11:u.setDirection("TB"),this.$="TB";break;case 12:u.setDirection(t[s-1]),this.$=t[s-1];break;case 27:this.$=t[s-1].nodes;break;case 28:case 29:case 30:case 31:case 32:this.$=[];break;case 33:this.$=u.addSubGraph(t[s-6],t[s-1],t[s-4]);break;case 34:this.$=u.addSubGraph(t[s-3],t[s-1],t[s-3]);break;case 35:this.$=u.addSubGraph(void 0,t[s-1],void 0);break;case 37:this.$=t[s].trim(),u.setAccTitle(this.$);break;case 38:case 39:this.$=t[s].trim(),u.setAccDescription(this.$);break;case 43:this.$=t[s-1]+t[s];break;case 44:this.$=t[s];break;case 45:u.addVertex(t[s-1][t[s-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,t[s]),u.addLink(t[s-3].stmt,t[s-1],t[s-2]),this.$={stmt:t[s-1],nodes:t[s-1].concat(t[s-3].nodes)};break;case 46:u.addLink(t[s-2].stmt,t[s],t[s-1]),this.$={stmt:t[s],nodes:t[s].concat(t[s-2].nodes)};break;case 47:u.addLink(t[s-3].stmt,t[s-1],t[s-2]),this.$={stmt:t[s-1],nodes:t[s-1].concat(t[s-3].nodes)};break;case 48:this.$={stmt:t[s-1],nodes:t[s-1]};break;case 49:u.addVertex(t[s-1][t[s-1].length-1],void 0,void 0,void 0,void 0,void 0,void 0,t[s]),this.$={stmt:t[s-1],nodes:t[s-1],shapeData:t[s]};break;case 50:this.$={stmt:t[s],nodes:t[s]};break;case 51:this.$=[t[s]];break;case 52:u.addVertex(t[s-5][t[s-5].length-1],void 0,void 0,void 0,void 0,void 0,void 0,t[s-4]),this.$=t[s-5].concat(t[s]);break;case 53:this.$=t[s-4].concat(t[s]);break;case 54:this.$=t[s];break;case 55:this.$=t[s-2],u.setClass(t[s-2],t[s]);break;case 56:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"square");break;case 57:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"doublecircle");break;case 58:this.$=t[s-5],u.addVertex(t[s-5],t[s-2],"circle");break;case 59:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"ellipse");break;case 60:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"stadium");break;case 61:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"subroutine");break;case 62:this.$=t[s-7],u.addVertex(t[s-7],t[s-1],"rect",void 0,void 0,void 0,Object.fromEntries([[t[s-5],t[s-3]]]));break;case 63:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"cylinder");break;case 64:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"round");break;case 65:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"diamond");break;case 66:this.$=t[s-5],u.addVertex(t[s-5],t[s-2],"hexagon");break;case 67:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"odd");break;case 68:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"trapezoid");break;case 69:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"inv_trapezoid");break;case 70:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"lean_right");break;case 71:this.$=t[s-3],u.addVertex(t[s-3],t[s-1],"lean_left");break;case 72:this.$=t[s],u.addVertex(t[s]);break;case 73:t[s-1].text=t[s],this.$=t[s-1];break;case 74:case 75:t[s-2].text=t[s-1],this.$=t[s-2];break;case 76:this.$=t[s];break;case 77:var v=u.destructLink(t[s],t[s-2]);this.$={type:v.type,stroke:v.stroke,length:v.length,text:t[s-1]};break;case 78:var v=u.destructLink(t[s],t[s-2]);this.$={type:v.type,stroke:v.stroke,length:v.length,text:t[s-1],id:t[s-3]};break;case 79:this.$={text:t[s],type:"text"};break;case 80:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 81:this.$={text:t[s],type:"string"};break;case 82:this.$={text:t[s],type:"markdown"};break;case 83:var v=u.destructLink(t[s]);this.$={type:v.type,stroke:v.stroke,length:v.length};break;case 84:var v=u.destructLink(t[s]);this.$={type:v.type,stroke:v.stroke,length:v.length,id:t[s-1]};break;case 85:this.$=t[s-1];break;case 86:this.$={text:t[s],type:"text"};break;case 87:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 88:this.$={text:t[s],type:"string"};break;case 89:case 104:this.$={text:t[s],type:"markdown"};break;case 101:this.$={text:t[s],type:"text"};break;case 102:this.$={text:t[s-1].text+""+t[s],type:t[s-1].type};break;case 103:this.$={text:t[s],type:"text"};break;case 105:this.$=t[s-4],u.addClass(t[s-2],t[s]);break;case 106:this.$=t[s-4],u.setClass(t[s-2],t[s]);break;case 107:case 115:this.$=t[s-1],u.setClickEvent(t[s-1],t[s]);break;case 108:case 116:this.$=t[s-3],u.setClickEvent(t[s-3],t[s-2]),u.setTooltip(t[s-3],t[s]);break;case 109:this.$=t[s-2],u.setClickEvent(t[s-2],t[s-1],t[s]);break;case 110:this.$=t[s-4],u.setClickEvent(t[s-4],t[s-3],t[s-2]),u.setTooltip(t[s-4],t[s]);break;case 111:this.$=t[s-2],u.setLink(t[s-2],t[s]);break;case 112:this.$=t[s-4],u.setLink(t[s-4],t[s-2]),u.setTooltip(t[s-4],t[s]);break;case 113:this.$=t[s-4],u.setLink(t[s-4],t[s-2],t[s]);break;case 114:this.$=t[s-6],u.setLink(t[s-6],t[s-4],t[s]),u.setTooltip(t[s-6],t[s-2]);break;case 117:this.$=t[s-1],u.setLink(t[s-1],t[s]);break;case 118:this.$=t[s-3],u.setLink(t[s-3],t[s-2]),u.setTooltip(t[s-3],t[s]);break;case 119:this.$=t[s-3],u.setLink(t[s-3],t[s-2],t[s]);break;case 120:this.$=t[s-5],u.setLink(t[s-5],t[s-4],t[s]),u.setTooltip(t[s-5],t[s-2]);break;case 121:this.$=t[s-4],u.addVertex(t[s-2],void 0,void 0,t[s]);break;case 122:this.$=t[s-4],u.updateLink([t[s-2]],t[s]);break;case 123:this.$=t[s-4],u.updateLink(t[s-2],t[s]);break;case 124:this.$=t[s-8],u.updateLinkInterpolate([t[s-6]],t[s-2]),u.updateLink([t[s-6]],t[s]);break;case 125:this.$=t[s-8],u.updateLinkInterpolate(t[s-6],t[s-2]),u.updateLink(t[s-6],t[s]);break;case 126:this.$=t[s-6],u.updateLinkInterpolate([t[s-4]],t[s]);break;case 127:this.$=t[s-6],u.updateLinkInterpolate(t[s-4],t[s]);break;case 128:case 130:this.$=[t[s]];break;case 129:case 131:t[s-2].push(t[s]),this.$=t[s-2];break;case 133:this.$=t[s-1]+t[s];break;case 181:this.$=t[s];break;case 182:this.$=t[s-1]+""+t[s];break;case 184:this.$=t[s-1]+""+t[s];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:i,10:r,12:a},{1:[3]},e(o,d,{5:6}),{4:7,9:i,10:r,12:a},{4:8,9:i,10:r,12:a},{13:[1,9],14:[1,10]},{1:[2,1],6:11,7:12,8:l,9:A,10:n,11:g,20:17,22:18,23:19,24:20,25:21,26:22,27:B,33:24,34:f,36:k,38:Y,42:28,43:39,44:F,45:40,47:41,60:_,84:b1,85:N1,86:j,87:h1,88:P1,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O,121:O1,122:M1,123:U1,124:z1,125:W1},e(o,[2,9]),e(o,[2,10]),e(o,[2,11]),{8:[1,55],9:[1,56],10:d1,15:54,18:57},e(T,[2,3]),e(T,[2,4]),e(T,[2,5]),e(T,[2,6]),e(T,[2,7]),e(T,[2,8]),{8:$,9:e1,11:t1,21:59,41:60,72:64,75:[1,65],77:[1,67],78:[1,66]},{8:$,9:e1,11:t1,21:68},{8:$,9:e1,11:t1,21:69},{8:$,9:e1,11:t1,21:70},{8:$,9:e1,11:t1,21:71},{8:$,9:e1,11:t1,21:72},{8:$,9:e1,10:[1,73],11:t1,21:74},e(T,[2,36]),{35:[1,75]},{37:[1,76]},e(T,[2,39]),e(D1,[2,50],{18:77,39:78,10:d1,40:ae}),{10:[1,80]},{10:[1,81]},{10:[1,82]},{10:[1,83]},{14:E1,44:C1,60:T1,80:[1,87],89:S1,95:[1,84],97:[1,85],101:86,105:y1,106:x1,109:F1,111:_1,114:B1,115:v1,116:L1,120:88},e(T,[2,185]),e(T,[2,186]),e(T,[2,187]),e(T,[2,188]),e(T,[2,189]),e(A1,[2,51]),e(A1,[2,54],{46:[1,100]}),e(U,[2,72],{113:113,29:[1,101],44:F,48:[1,102],50:[1,103],52:[1,104],54:[1,105],56:[1,106],58:[1,107],60:_,63:[1,108],65:[1,109],67:[1,110],68:[1,111],70:[1,112],89:L,102:V,105:I,106:w,109:R,111:N,114:G,115:P,116:O}),e(q,[2,181]),e(q,[2,142]),e(q,[2,143]),e(q,[2,144]),e(q,[2,145]),e(q,[2,146]),e(q,[2,147]),e(q,[2,148]),e(q,[2,149]),e(q,[2,150]),e(q,[2,151]),e(q,[2,152]),e(o,[2,12]),e(o,[2,18]),e(o,[2,19]),{9:[1,114]},e(ne,[2,26],{18:115,10:d1}),e(T,[2,27]),{42:116,43:39,44:F,45:40,47:41,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O},e(T,[2,40]),e(T,[2,41]),e(T,[2,42]),e(V1,[2,76],{73:117,62:[1,119],74:[1,118]}),{76:120,79:121,80:ue,81:oe,116:j1,119:K1},{75:[1,126],77:[1,127]},e(le,[2,83]),e(T,[2,28]),e(T,[2,29]),e(T,[2,30]),e(T,[2,31]),e(T,[2,32]),{10:ce,12:he,14:de,27:pe,28:128,32:fe,44:ge,60:be,75:Ae,80:[1,130],81:[1,131],83:141,84:ke,85:me,86:De,87:Ee,88:Ce,89:Te,90:Se,91:129,105:ye,109:xe,111:Fe,114:_e,115:Be,116:ve},e(X1,d,{5:154}),e(T,[2,37]),e(T,[2,38]),e(D1,[2,48],{44:Le}),e(D1,[2,49],{18:156,10:d1,40:Ve}),e(A1,[2,44]),{44:F,47:158,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O},{102:[1,159],103:160,105:[1,161]},{44:F,47:162,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O},{44:F,47:163,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O},e(x,[2,107],{10:[1,164],96:[1,165]}),{80:[1,166]},e(x,[2,115],{120:168,10:[1,167],14:E1,44:C1,60:T1,89:S1,105:y1,106:x1,109:F1,111:_1,114:B1,115:v1,116:L1}),e(x,[2,117],{10:[1,169]}),e(H,[2,183]),e(H,[2,170]),e(H,[2,171]),e(H,[2,172]),e(H,[2,173]),e(H,[2,174]),e(H,[2,175]),e(H,[2,176]),e(H,[2,177]),e(H,[2,178]),e(H,[2,179]),e(H,[2,180]),{44:F,47:170,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O},{30:171,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{30:179,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{30:181,50:[1,180],67:m,80:z,81:W,82:172,116:D,117:E,118:C},{30:182,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{30:183,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{30:184,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{109:[1,185]},{30:186,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{30:187,65:[1,188],67:m,80:z,81:W,82:172,116:D,117:E,118:C},{30:189,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{30:190,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{30:191,67:m,80:z,81:W,82:172,116:D,117:E,118:C},e(q,[2,182]),e(o,[2,20]),e(ne,[2,25]),e(D1,[2,46],{39:192,18:193,10:d1,40:ae}),e(V1,[2,73],{10:[1,194]}),{10:[1,195]},{30:196,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{77:[1,197],79:198,116:j1,119:K1},e(I1,[2,79]),e(I1,[2,81]),e(I1,[2,82]),e(I1,[2,168]),e(I1,[2,169]),{76:199,79:121,80:ue,81:oe,116:j1,119:K1},e(le,[2,84]),{8:$,9:e1,10:ce,11:t1,12:he,14:de,21:201,27:pe,29:[1,200],32:fe,44:ge,60:be,75:Ae,83:141,84:ke,85:me,86:De,87:Ee,88:Ce,89:Te,90:Se,91:202,105:ye,109:xe,111:Fe,114:_e,115:Be,116:ve},e(S,[2,101]),e(S,[2,103]),e(S,[2,104]),e(S,[2,157]),e(S,[2,158]),e(S,[2,159]),e(S,[2,160]),e(S,[2,161]),e(S,[2,162]),e(S,[2,163]),e(S,[2,164]),e(S,[2,165]),e(S,[2,166]),e(S,[2,167]),e(S,[2,90]),e(S,[2,91]),e(S,[2,92]),e(S,[2,93]),e(S,[2,94]),e(S,[2,95]),e(S,[2,96]),e(S,[2,97]),e(S,[2,98]),e(S,[2,99]),e(S,[2,100]),{6:11,7:12,8:l,9:A,10:n,11:g,20:17,22:18,23:19,24:20,25:21,26:22,27:B,32:[1,203],33:24,34:f,36:k,38:Y,42:28,43:39,44:F,45:40,47:41,60:_,84:b1,85:N1,86:j,87:h1,88:P1,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O,121:O1,122:M1,123:U1,124:z1,125:W1},{10:d1,18:204},{44:[1,205]},e(A1,[2,43]),{10:[1,206],44:F,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:113,114:G,115:P,116:O},{10:[1,207]},{10:[1,208],106:[1,209]},e(Ie,[2,128]),{10:[1,210],44:F,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:113,114:G,115:P,116:O},{10:[1,211],44:F,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:113,114:G,115:P,116:O},{80:[1,212]},e(x,[2,109],{10:[1,213]}),e(x,[2,111],{10:[1,214]}),{80:[1,215]},e(H,[2,184]),{80:[1,216],98:[1,217]},e(A1,[2,55],{113:113,44:F,60:_,89:L,102:V,105:I,106:w,109:R,111:N,114:G,115:P,116:O}),{31:[1,218],67:m,82:219,116:D,117:E,118:C},e(p1,[2,86]),e(p1,[2,88]),e(p1,[2,89]),e(p1,[2,153]),e(p1,[2,154]),e(p1,[2,155]),e(p1,[2,156]),{49:[1,220],67:m,82:219,116:D,117:E,118:C},{30:221,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{51:[1,222],67:m,82:219,116:D,117:E,118:C},{53:[1,223],67:m,82:219,116:D,117:E,118:C},{55:[1,224],67:m,82:219,116:D,117:E,118:C},{57:[1,225],67:m,82:219,116:D,117:E,118:C},{60:[1,226]},{64:[1,227],67:m,82:219,116:D,117:E,118:C},{66:[1,228],67:m,82:219,116:D,117:E,118:C},{30:229,67:m,80:z,81:W,82:172,116:D,117:E,118:C},{31:[1,230],67:m,82:219,116:D,117:E,118:C},{67:m,69:[1,231],71:[1,232],82:219,116:D,117:E,118:C},{67:m,69:[1,234],71:[1,233],82:219,116:D,117:E,118:C},e(D1,[2,45],{18:156,10:d1,40:Ve}),e(D1,[2,47],{44:Le}),e(V1,[2,75]),e(V1,[2,74]),{62:[1,235],67:m,82:219,116:D,117:E,118:C},e(V1,[2,77]),e(I1,[2,80]),{77:[1,236],79:198,116:j1,119:K1},{30:237,67:m,80:z,81:W,82:172,116:D,117:E,118:C},e(X1,d,{5:238}),e(S,[2,102]),e(T,[2,35]),{43:239,44:F,45:40,47:41,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O},{10:d1,18:240},{10:s1,60:i1,84:r1,92:241,105:a1,107:242,108:243,109:n1,110:u1,111:o1,112:l1},{10:s1,60:i1,84:r1,92:252,104:[1,253],105:a1,107:242,108:243,109:n1,110:u1,111:o1,112:l1},{10:s1,60:i1,84:r1,92:254,104:[1,255],105:a1,107:242,108:243,109:n1,110:u1,111:o1,112:l1},{105:[1,256]},{10:s1,60:i1,84:r1,92:257,105:a1,107:242,108:243,109:n1,110:u1,111:o1,112:l1},{44:F,47:258,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O},e(x,[2,108]),{80:[1,259]},{80:[1,260],98:[1,261]},e(x,[2,116]),e(x,[2,118],{10:[1,262]}),e(x,[2,119]),e(U,[2,56]),e(p1,[2,87]),e(U,[2,57]),{51:[1,263],67:m,82:219,116:D,117:E,118:C},e(U,[2,64]),e(U,[2,59]),e(U,[2,60]),e(U,[2,61]),{109:[1,264]},e(U,[2,63]),e(U,[2,65]),{66:[1,265],67:m,82:219,116:D,117:E,118:C},e(U,[2,67]),e(U,[2,68]),e(U,[2,70]),e(U,[2,69]),e(U,[2,71]),e([10,44,60,89,102,105,106,109,111,114,115,116],[2,85]),e(V1,[2,78]),{31:[1,266],67:m,82:219,116:D,117:E,118:C},{6:11,7:12,8:l,9:A,10:n,11:g,20:17,22:18,23:19,24:20,25:21,26:22,27:B,32:[1,267],33:24,34:f,36:k,38:Y,42:28,43:39,44:F,45:40,47:41,60:_,84:b1,85:N1,86:j,87:h1,88:P1,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O,121:O1,122:M1,123:U1,124:z1,125:W1},e(A1,[2,53]),{43:268,44:F,45:40,47:41,60:_,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O},e(x,[2,121],{106:w1}),e(we,[2,130],{108:270,10:s1,60:i1,84:r1,105:a1,109:n1,110:u1,111:o1,112:l1}),e(J,[2,132]),e(J,[2,134]),e(J,[2,135]),e(J,[2,136]),e(J,[2,137]),e(J,[2,138]),e(J,[2,139]),e(J,[2,140]),e(J,[2,141]),e(x,[2,122],{106:w1}),{10:[1,271]},e(x,[2,123],{106:w1}),{10:[1,272]},e(Ie,[2,129]),e(x,[2,105],{106:w1}),e(x,[2,106],{113:113,44:F,60:_,89:L,102:V,105:I,106:w,109:R,111:N,114:G,115:P,116:O}),e(x,[2,110]),e(x,[2,112],{10:[1,273]}),e(x,[2,113]),{98:[1,274]},{51:[1,275]},{62:[1,276]},{66:[1,277]},{8:$,9:e1,11:t1,21:278},e(T,[2,34]),e(A1,[2,52]),{10:s1,60:i1,84:r1,105:a1,107:279,108:243,109:n1,110:u1,111:o1,112:l1},e(J,[2,133]),{14:E1,44:C1,60:T1,89:S1,101:280,105:y1,106:x1,109:F1,111:_1,114:B1,115:v1,116:L1,120:88},{14:E1,44:C1,60:T1,89:S1,101:281,105:y1,106:x1,109:F1,111:_1,114:B1,115:v1,116:L1,120:88},{98:[1,282]},e(x,[2,120]),e(U,[2,58]),{30:283,67:m,80:z,81:W,82:172,116:D,117:E,118:C},e(U,[2,66]),e(X1,d,{5:284}),e(we,[2,131],{108:270,10:s1,60:i1,84:r1,105:a1,109:n1,110:u1,111:o1,112:l1}),e(x,[2,126],{120:168,10:[1,285],14:E1,44:C1,60:T1,89:S1,105:y1,106:x1,109:F1,111:_1,114:B1,115:v1,116:L1}),e(x,[2,127],{120:168,10:[1,286],14:E1,44:C1,60:T1,89:S1,105:y1,106:x1,109:F1,111:_1,114:B1,115:v1,116:L1}),e(x,[2,114]),{31:[1,287],67:m,82:219,116:D,117:E,118:C},{6:11,7:12,8:l,9:A,10:n,11:g,20:17,22:18,23:19,24:20,25:21,26:22,27:B,32:[1,288],33:24,34:f,36:k,38:Y,42:28,43:39,44:F,45:40,47:41,60:_,84:b1,85:N1,86:j,87:h1,88:P1,89:L,102:V,105:I,106:w,109:R,111:N,113:42,114:G,115:P,116:O,121:O1,122:M1,123:U1,124:z1,125:W1},{10:s1,60:i1,84:r1,92:289,105:a1,107:242,108:243,109:n1,110:u1,111:o1,112:l1},{10:s1,60:i1,84:r1,92:290,105:a1,107:242,108:243,109:n1,110:u1,111:o1,112:l1},e(U,[2,62]),e(T,[2,33]),e(x,[2,124],{106:w1}),e(x,[2,125],{106:w1})],defaultActions:{},parseError:b(function(c,h){if(h.recoverable)this.trace(c);else{var p=new Error(c);throw p.hash=h,p}},"parseError"),parse:b(function(c){var h=this,p=[0],u=[],y=[null],t=[],G1=this.table,s="",v=0,Re=0,je=2,Ne=1,Ke=t.slice.call(arguments,1),M=Object.create(this.lexer),k1={yy:{}};for(var Z1 in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Z1)&&(k1.yy[Z1]=this.yy[Z1]);M.setInput(c,k1.yy),k1.yy.lexer=M,k1.yy.parser=this,typeof M.yylloc>"u"&&(M.yylloc={});var J1=M.yylloc;t.push(J1);var Ye=M.options&&M.options.ranges;typeof k1.yy.parseError=="function"?this.parseError=k1.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function qe(X){p.length=p.length-2*X,y.length=y.length-X,t.length=t.length-X}b(qe,"popStack");function Ge(){var X;return X=u.pop()||M.lex()||Ne,typeof X!="number"&&(X instanceof Array&&(u=X,X=u.pop()),X=h.symbols_[X]||X),X}b(Ge,"lex");for(var K,m1,Q,$1,R1={},q1,c1,Pe,H1;;){if(m1=p[p.length-1],this.defaultActions[m1]?Q=this.defaultActions[m1]:((K===null||typeof K>"u")&&(K=Ge()),Q=G1[m1]&&G1[m1][K]),typeof Q>"u"||!Q.length||!Q[0]){var ee="";H1=[];for(q1 in G1[m1])this.terminals_[q1]&&q1>je&&H1.push("'"+this.terminals_[q1]+"'");M.showPosition?ee="Parse error on line "+(v+1)+`: `+M.showPosition()+` -Expecting `+H1.join(", ")+", got '"+(this.terminals_[K]||K)+"'":ee="Parse error on line "+(v+1)+": Unexpected "+(K==Ne?"end of input":"'"+(this.terminals_[K]||K)+"'"),this.parseError(ee,{text:M.match,token:this.terminals_[K]||K,line:M.yylineno,loc:Z1,expected:H1})}if(Q[0]instanceof Array&&Q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m1+", token: "+K);switch(Q[0]){case 1:p.push(K),y.push(M.yytext),t.push(M.yylloc),p.push(Q[1]),K=null,Re=M.yyleng,s=M.yytext,v=M.yylineno,Z1=M.yylloc;break;case 2:if(c1=this.productions_[Q[1]][1],R1.$=y[y.length-c1],R1._$={first_line:t[t.length-(c1||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(c1||1)].first_column,last_column:t[t.length-1].last_column},Ye&&(R1._$.range=[t[t.length-(c1||1)].range[0],t[t.length-1].range[1]]),$1=this.performAction.apply(R1,[s,Re,v,k1.yy,Q[1],y,t].concat(Ke)),typeof $1<"u")return $1;c1&&(p=p.slice(0,-1*c1*2),y=y.slice(0,-1*c1),t=t.slice(0,-1*c1)),p.push(this.productions_[Q[1]][0]),y.push(R1.$),t.push(R1._$),Pe=G1[p[p.length-2]][p[p.length-1]],p.push(Pe);break;case 3:return!0}}return!0},"parse")},We=(function(){var f1={EOF:1,parseError:b(function(h,p){if(this.yy.parser)this.yy.parser.parseError(h,p);else throw new Error(h)},"parseError"),setInput:b(function(c,h){return this.yy=h||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:b(function(){var c=this._input[0];this.yytext+=c,this.yyleng++,this.offset++,this.match+=c,this.matched+=c;var h=c.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),c},"input"),unput:b(function(c){var h=c.length,p=c.split(/(?:\r\n?|\n)/g);this._input=c+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;var u=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 y=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===u.length?this.yylloc.first_column:0)+u[u.length-p.length].length-p[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[y[0],y[0]+this.yyleng-h]),this.yyleng=this.yytext.length,this},"unput"),more:b(function(){return this._more=!0,this},"more"),reject:b(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). +Expecting `+H1.join(", ")+", got '"+(this.terminals_[K]||K)+"'":ee="Parse error on line "+(v+1)+": Unexpected "+(K==Ne?"end of input":"'"+(this.terminals_[K]||K)+"'"),this.parseError(ee,{text:M.match,token:this.terminals_[K]||K,line:M.yylineno,loc:J1,expected:H1})}if(Q[0]instanceof Array&&Q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m1+", token: "+K);switch(Q[0]){case 1:p.push(K),y.push(M.yytext),t.push(M.yylloc),p.push(Q[1]),K=null,Re=M.yyleng,s=M.yytext,v=M.yylineno,J1=M.yylloc;break;case 2:if(c1=this.productions_[Q[1]][1],R1.$=y[y.length-c1],R1._$={first_line:t[t.length-(c1||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(c1||1)].first_column,last_column:t[t.length-1].last_column},Ye&&(R1._$.range=[t[t.length-(c1||1)].range[0],t[t.length-1].range[1]]),$1=this.performAction.apply(R1,[s,Re,v,k1.yy,Q[1],y,t].concat(Ke)),typeof $1<"u")return $1;c1&&(p=p.slice(0,-1*c1*2),y=y.slice(0,-1*c1),t=t.slice(0,-1*c1)),p.push(this.productions_[Q[1]][0]),y.push(R1.$),t.push(R1._$),Pe=G1[p[p.length-2]][p[p.length-1]],p.push(Pe);break;case 3:return!0}}return!0},"parse")},We=(function(){var f1={EOF:1,parseError:b(function(h,p){if(this.yy.parser)this.yy.parser.parseError(h,p);else throw new Error(h)},"parseError"),setInput:b(function(c,h){return this.yy=h||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:b(function(){var c=this._input[0];this.yytext+=c,this.yyleng++,this.offset++,this.match+=c,this.matched+=c;var h=c.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),c},"input"),unput:b(function(c){var h=c.length,p=c.split(/(?:\r\n?|\n)/g);this._input=c+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;var u=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 y=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===u.length?this.yylloc.first_column:0)+u[u.length-p.length].length-p[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[y[0],y[0]+this.yyleng-h]),this.yyleng=this.yytext.length,this},"unput"),more:b(function(){return this._more=!0,this},"more"),reject:b(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:b(function(c){this.unput(this.match.slice(c))},"less"),pastInput:b(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:b(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:b(function(){var c=this.pastInput(),h=new Array(c.length+1).join("-");return c+this.upcomingInput()+` `+h+"^"},"showPosition"),test_match:b(function(c,h){var p,u,y;if(this.options.backtrack_lexer&&(y={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&&(y.yylloc.range=this.yylloc.range.slice(0))),u=c[0].match(/(?:\r\n?|\n).*/g),u&&(this.yylineno+=u.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:u?u[u.length-1].length-u[u.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],p=this.performAction.call(this,this.yy,this,h,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),p)return p;if(this._backtrack){for(var t in y)this[t]=y[t];return!1}return!1},"test_match"),next:b(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var c,h,p,u;this._more||(this.yytext="",this.match="");for(var y=this._currentRules(),t=0;th[0].length)){if(h=p,u=t,this.options.backtrack_lexer){if(c=this.test_match(p,y[t]),c!==!1)return c;if(this._backtrack){h=!1;continue}else return!1}else if(!this.options.flex)break}return h?(c=this.test_match(h,y[u]),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:b(function(){var h=this.next();return h||this.lex()},"lex"),begin:b(function(h){this.conditionStack.push(h)},"begin"),popState:b(function(){var h=this.conditionStack.length-1;return h>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:b(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:b(function(h){return h=this.conditionStack.length-1-Math.abs(h||0),h>=0?this.conditionStack[h]:"INITIAL"},"topState"),pushState:b(function(h){this.begin(h)},"pushState"),stateStackSize:b(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:b(function(h,p,u,y){switch(u){case 0:return this.begin("acc_title"),34;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),36;case 3:return this.popState(),"acc_descr_value";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"),p.yytext="",40;case 8:return this.pushState("shapeDataStr"),40;case 9:return this.popState(),40;case 10:const t=/\n\s*/g;return p.yytext=p.yytext.replace(t,"
"),40;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 h.lex.firstGraph()&&this.begin("dir"),12;case 36:return h.lex.firstGraph()&&this.begin("dir"),12;case 37:return h.lex.firstGraph()&&this.begin("dir"),12;case 38:return h.lex.firstGraph()&&this.begin("dir"),12;case 39:return 27;case 40:return 32;case 41:return 98;case 42:return 98;case 43:return 98;case 44:return 98;case 45:return this.popState(),13;case 46:return this.popState(),14;case 47:return this.popState(),14;case 48:return this.popState(),14;case 49:return this.popState(),14;case 50:return this.popState(),14;case 51:return this.popState(),14;case 52:return this.popState(),14;case 53:return this.popState(),14;case 54:return this.popState(),14;case 55:return this.popState(),14;case 56:return 121;case 57:return 122;case 58:return 123;case 59:return 124;case 60:return 125;case 61:return 78;case 62:return 105;case 63:return 111;case 64:return 46;case 65:return 60;case 66:return 44;case 67:return 8;case 68:return 106;case 69:return 115;case 70:return this.popState(),77;case 71:return this.pushState("edgeText"),75;case 72:return 119;case 73:return this.popState(),77;case 74:return this.pushState("thickEdgeText"),75;case 75:return 119;case 76:return this.popState(),77;case 77:return this.pushState("dottedEdgeText"),75;case 78:return 119;case 79:return 77;case 80:return this.popState(),53;case 81:return"TEXT";case 82:return this.pushState("ellipseText"),52;case 83:return this.popState(),55;case 84:return this.pushState("text"),54;case 85:return this.popState(),57;case 86:return this.pushState("text"),56;case 87:return 58;case 88:return this.pushState("text"),67;case 89:return this.popState(),64;case 90:return this.pushState("text"),63;case 91:return this.popState(),49;case 92:return this.pushState("text"),48;case 93:return this.popState(),69;case 94:return this.popState(),71;case 95:return 117;case 96:return this.pushState("trapText"),68;case 97:return this.pushState("trapText"),70;case 98:return 118;case 99:return 67;case 100:return 90;case 101:return"SEP";case 102:return 89;case 103:return 115;case 104:return 111;case 105:return 44;case 106:return 109;case 107:return 114;case 108:return 116;case 109:return this.popState(),62;case 110:return this.pushState("text"),62;case 111:return this.popState(),51;case 112:return this.pushState("text"),50;case 113:return this.popState(),31;case 114:return this.pushState("text"),29;case 115:return this.popState(),66;case 116:return this.pushState("text"),65;case 117:return"TEXT";case 118:return"QUOTE";case 119:return 9;case 120:return 10;case 121: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)/,/^(?:swimlane-beta\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,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},shapeDataStr:{rules:[9,10,21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},shapeData:{rules:[8,11,12,21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},callbackargs:{rules:[17,18,21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},callbackname:{rules:[14,15,16,21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},href:{rules:[21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},click:{rules:[21,24,33,34,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},dottedEdgeText:{rules:[21,24,76,78,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},thickEdgeText:{rules:[21,24,73,75,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},edgeText:{rules:[21,24,70,72,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},trapText:{rules:[21,24,79,82,84,86,90,92,93,94,95,96,97,110,112,114,116],inclusive:!1},ellipseText:{rules:[21,24,79,80,81,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},text:{rules:[21,24,79,82,83,84,85,86,89,90,91,92,96,97,109,110,111,112,113,114,115,116,117],inclusive:!1},vertex:{rules:[21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},dir:{rules:[21,24,45,46,47,48,49,50,51,52,53,54,55,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},acc_descr_multiline:{rules:[5,6,21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},acc_descr:{rules:[3,21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},acc_title:{rules:[1,21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},md_string:{rules:[19,20,21,24,79,82,84,86,90,92,96,97,110,112,114,116],inclusive:!1},string:{rules:[21,22,23,24,79,82,84,86,90,92,96,97,110,112,114,116],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,44,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,73,74,76,77,79,82,84,86,87,88,90,92,96,97,98,99,100,101,102,103,104,105,106,107,108,110,112,114,116,118,119,120,121],inclusive:!0}}};return f1})();Q1.lexer=We;function Y1(){this.yy={}}return b(Y1,"Parser"),Y1.prototype=Q1,Q1.Parser=Y1,new Y1})();re.parser=re;var Me=re,Ue=Object.assign({},Me);Ue.parse=e=>{const i=e.replace(/}\s*\n/g,`} @@ -153,4 +153,4 @@ Expecting `+H1.join(", ")+", got '"+(this.terminals_[K]||K)+"'":ee="Parse error text-align: center; } ${He()} -`,"getStyles"),St=Tt,ze=b(({defaultLayout:e,styles:i=St}={})=>({parser:Et,get db(){return new At},renderer:Dt,styles:i,init:b(r=>{r.flowchart||(r.flowchart={});const a=Je().layout??e??r.layout;a&&Oe({layout:a}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,Oe({flowchart:{arrowMarkerAbsolute:r.arrowMarkerAbsolute}})},"init")}),"createFlowDiagram"),yt=ze();const Vt=Object.freeze(Object.defineProperty({__proto__:null,createFlowDiagram:ze,diagram:yt},Symbol.toStringTag,{value:"Module"}));export{ze as c,Vt as f,St as s}; +`,"getStyles"),St=Tt,ze=b(({defaultLayout:e,styles:i=St}={})=>({parser:Et,get db(){return new At},renderer:Dt,styles:i,init:b(r=>{r.flowchart||(r.flowchart={});const a=Ze().layout??e??r.layout;a&&Oe({layout:a}),r.flowchart.arrowMarkerAbsolute=r.arrowMarkerAbsolute,Oe({flowchart:{arrowMarkerAbsolute:r.arrowMarkerAbsolute}})},"init")}),"createFlowDiagram"),yt=ze();const Vt=Object.freeze(Object.defineProperty({__proto__:null,createFlowDiagram:ze,diagram:yt},Symbol.toStringTag,{value:"Module"}));export{ze as c,Vt as f,St as s}; diff --git a/apps/kimi-code/dist-web/assets/ganttDiagram-NO4QXBWP-Dz61VBiM.js b/apps/kimi-code/dist-web/assets/ganttDiagram-NO4QXBWP-Dz61VBiM.js new file mode 100644 index 000000000..e006143d6 --- /dev/null +++ b/apps/kimi-code/dist-web/assets/ganttDiagram-NO4QXBWP-Dz61VBiM.js @@ -0,0 +1,292 @@ +import{bh as on,bi as On,bj as cn,bk as un,bl as ln,bm as ue,bn as Hn,b7 as oe,g as Nn,s as Pn,p as Vn,o as Rn,a as zn,b as qn,_ as d,c as Yt,d as Zt,e as Bn,bo as it,l as Tt,k as Zn,j as Xn,q as Gn,y as jn}from"./mermaid.core-B_UcP3X_.js";import{b as Qn,t as Ne,c as Jn,a as Kn,l as tr}from"./linear-Vyz-NdPh.js";import{i as er}from"./init-Gi6I4Gst.js";import"./index-BOtIzGLC.js";import"./defaultLocale-DX6XiGOO.js";function nr(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n=i)&&(n=i)}return n}function rr(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function ir(t){return t}var Gt=1,le=2,xe=3,Xt=4,Pe=1e-6;function sr(t){return"translate("+t+",0)"}function ar(t){return"translate(0,"+t+")"}function or(t){return e=>+t(e)}function cr(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function ur(){return!this.__axis}function fn(t,e){var n=[],r=null,i=null,s=6,a=6,y=3,F=typeof window<"u"&&window.devicePixelRatio>1?0:.5,S=t===Gt||t===Xt?-1:1,w=t===Xt||t===le?"x":"y",P=t===Gt||t===xe?sr:ar;function _(Y){var X=r??(e.ticks?e.ticks.apply(e,n):e.domain()),B=i??(e.tickFormat?e.tickFormat.apply(e,n):ir),v=Math.max(s,0)+y,U=e.range(),R=+U[0]+F,E=+U[U.length-1]+F,z=(e.bandwidth?cr:or)(e.copy(),F),G=Y.selection?Y.selection():Y,T=G.selectAll(".domain").data([null]),k=G.selectAll(".tick").data(X,e).order(),p=k.exit(),L=k.enter().append("g").attr("class","tick"),x=k.select("line"),C=k.select("text");T=T.merge(T.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),k=k.merge(L),x=x.merge(L.append("line").attr("stroke","currentColor").attr(w+"2",S*s)),C=C.merge(L.append("text").attr("fill","currentColor").attr(w,S*v).attr("dy",t===Gt?"0em":t===xe?"0.71em":"0.32em")),Y!==G&&(T=T.transition(Y),k=k.transition(Y),x=x.transition(Y),C=C.transition(Y),p=p.transition(Y).attr("opacity",Pe).attr("transform",function(M){return isFinite(M=z(M))?P(M+F):this.getAttribute("transform")}),L.attr("opacity",Pe).attr("transform",function(M){var D=this.parentNode.__axis;return P((D&&isFinite(D=D(M))?D:z(M))+F)})),p.remove(),T.attr("d",t===Xt||t===le?a?"M"+S*a+","+R+"H"+F+"V"+E+"H"+S*a:"M"+F+","+R+"V"+E:a?"M"+R+","+S*a+"V"+F+"H"+E+"V"+S*a:"M"+R+","+F+"H"+E),k.attr("opacity",1).attr("transform",function(M){return P(z(M)+F)}),x.attr(w+"2",S*s),C.attr(w,S*v).text(B),G.filter(ur).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===le?"start":t===Xt?"end":"middle"),G.each(function(){this.__axis=z})}return _.scale=function(Y){return arguments.length?(e=Y,_):e},_.ticks=function(){return n=Array.from(arguments),_},_.tickArguments=function(Y){return arguments.length?(n=Y==null?[]:Array.from(Y),_):n.slice()},_.tickValues=function(Y){return arguments.length?(r=Y==null?null:Array.from(Y),_):r&&r.slice()},_.tickFormat=function(Y){return arguments.length?(i=Y,_):i},_.tickSize=function(Y){return arguments.length?(s=a=+Y,_):s},_.tickSizeInner=function(Y){return arguments.length?(s=+Y,_):s},_.tickSizeOuter=function(Y){return arguments.length?(a=+Y,_):a},_.tickPadding=function(Y){return arguments.length?(y=+Y,_):y},_.offset=function(Y){return arguments.length?(F=+Y,_):F},_}function lr(t){return fn(Gt,t)}function fr(t){return fn(xe,t)}const dr=Math.PI/180,hr=180/Math.PI,ne=18,dn=.96422,hn=1,mn=.82521,gn=4/29,Ft=6/29,yn=3*Ft*Ft,mr=Ft*Ft*Ft;function kn(t){if(t instanceof ft)return new ft(t.l,t.a,t.b,t.opacity);if(t instanceof ht)return pn(t);t instanceof on||(t=On(t));var e=me(t.r),n=me(t.g),r=me(t.b),i=fe((.2225045*e+.7168786*n+.0606169*r)/hn),s,a;return e===n&&n===r?s=a=i:(s=fe((.4360747*e+.3850649*n+.1430804*r)/dn),a=fe((.0139322*e+.0971045*n+.7141733*r)/mn)),new ft(116*i-16,500*(s-i),200*(i-a),t.opacity)}function gr(t,e,n,r){return arguments.length===1?kn(t):new ft(t,e,n,r??1)}function ft(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}cn(ft,gr,un(ln,{brighter(t){return new ft(this.l+ne*(t??1),this.a,this.b,this.opacity)},darker(t){return new ft(this.l-ne*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=dn*de(e),t=hn*de(t),n=mn*de(n),new on(he(3.1338561*e-1.6168667*t-.4906146*n),he(-.9787684*e+1.9161415*t+.033454*n),he(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function fe(t){return t>mr?Math.pow(t,1/3):t/yn+gn}function de(t){return t>Ft?t*t*t:yn*(t-gn)}function he(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function me(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function yr(t){if(t instanceof ht)return new ht(t.h,t.c,t.l,t.opacity);if(t instanceof ft||(t=kn(t)),t.a===0&&t.b===0)return new ht(NaN,0(t(s=new Date(+s)),s),i.ceil=s=>(t(s=new Date(s-1)),e(s,1),t(s),s),i.round=s=>{const a=i(s),y=i.ceil(s);return s-a(e(s=new Date(+s),a==null?1:Math.floor(a)),s),i.range=(s,a,y)=>{const F=[];if(s=i.ceil(s),y=y==null?1:Math.floor(y),!(s0))return F;let S;do F.push(S=new Date(+s)),e(s,y),t(s);while(Snt(a=>{if(a>=a)for(;t(a),!s(a);)a.setTime(a-1)},(a,y)=>{if(a>=a)if(y<0)for(;++y<=0;)for(;e(a,-1),!s(a););else for(;--y>=0;)for(;e(a,1),!s(a););}),n&&(i.count=(s,a)=>(ge.setTime(+s),ye.setTime(+a),t(ge),t(ye),Math.floor(n(ge,ye))),i.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?i.filter(r?a=>r(a)%s===0:a=>i.count(0,a)%s===0):i)),i}const Et=nt(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);Et.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?nt(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):Et);Et.range;const mt=1e3,ct=mt*60,gt=ct*60,yt=gt*24,Se=yt*7,Ve=yt*30,ke=yt*365,vt=nt(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*mt)},(t,e)=>(e-t)/mt,t=>t.getUTCSeconds());vt.range;const Nt=nt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*mt)},(t,e)=>{t.setTime(+t+e*ct)},(t,e)=>(e-t)/ct,t=>t.getMinutes());Nt.range;const Tr=nt(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*ct)},(t,e)=>(e-t)/ct,t=>t.getUTCMinutes());Tr.range;const Pt=nt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*mt-t.getMinutes()*ct)},(t,e)=>{t.setTime(+t+e*gt)},(t,e)=>(e-t)/gt,t=>t.getHours());Pt.range;const xr=nt(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*gt)},(t,e)=>(e-t)/gt,t=>t.getUTCHours());xr.range;const xt=nt(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*ct)/yt,t=>t.getDate()-1);xt.range;const _e=nt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/yt,t=>t.getUTCDate()-1);_e.range;const br=nt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/yt,t=>Math.floor(t/yt));br.range;function Dt(t){return nt(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*ct)/Se)}const zt=Dt(0),Vt=Dt(1),vn=Dt(2),Tn=Dt(3),bt=Dt(4),xn=Dt(5),bn=Dt(6);zt.range;Vt.range;vn.range;Tn.range;bt.range;xn.range;bn.range;function Mt(t){return nt(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/Se)}const wn=Mt(0),re=Mt(1),wr=Mt(2),Dr=Mt(3),It=Mt(4),Mr=Mt(5),Cr=Mt(6);wn.range;re.range;wr.range;Dr.range;It.range;Mr.range;Cr.range;const Rt=nt(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());Rt.range;const Sr=nt(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());Sr.range;const kt=nt(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());kt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:nt(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});kt.range;const wt=nt(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());wt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:nt(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});wt.range;function _r(t,e,n,r,i,s){const a=[[vt,1,mt],[vt,5,5*mt],[vt,15,15*mt],[vt,30,30*mt],[s,1,ct],[s,5,5*ct],[s,15,15*ct],[s,30,30*ct],[i,1,gt],[i,3,3*gt],[i,6,6*gt],[i,12,12*gt],[r,1,yt],[r,2,2*yt],[n,1,Se],[e,1,Ve],[e,3,3*Ve],[t,1,ke]];function y(S,w,P){const _=wv).right(a,_);if(Y===a.length)return t.every(Ne(S/ke,w/ke,P));if(Y===0)return Et.every(Math.max(Ne(S,w,P),1));const[X,B]=a[_/a[Y-1][2]53)return null;"w"in f||(f.w=1),"Z"in f?(A=ve($t(f.y,0,1)),Q=A.getUTCDay(),A=Q>4||Q===0?re.ceil(A):re(A),A=_e.offset(A,(f.V-1)*7),f.y=A.getUTCFullYear(),f.m=A.getUTCMonth(),f.d=A.getUTCDate()+(f.w+6)%7):(A=pe($t(f.y,0,1)),Q=A.getDay(),A=Q>4||Q===0?Vt.ceil(A):Vt(A),A=xt.offset(A,(f.V-1)*7),f.y=A.getFullYear(),f.m=A.getMonth(),f.d=A.getDate()+(f.w+6)%7)}else("W"in f||"U"in f)&&("w"in f||(f.w="u"in f?f.u%7:"W"in f?1:0),Q="Z"in f?ve($t(f.y,0,1)).getUTCDay():pe($t(f.y,0,1)).getDay(),f.m=0,f.d="W"in f?(f.w+6)%7+f.W*7-(Q+5)%7:f.w+f.U*7-(Q+6)%7);return"Z"in f?(f.H+=f.Z/100|0,f.M+=f.Z%100,ve(f)):pe(f)}}function p(h,N,V,f){for(var tt=0,A=N.length,Q=V.length,Z,st;tt=Q)return-1;if(Z=N.charCodeAt(tt++),Z===37){if(Z=N.charAt(tt++),st=G[Z in Re?N.charAt(tt++):Z],!st||(f=st(h,V,f))<0)return-1}else if(Z!=V.charCodeAt(f++))return-1}return f}function L(h,N,V){var f=S.exec(N.slice(V));return f?(h.p=w.get(f[0].toLowerCase()),V+f[0].length):-1}function x(h,N,V){var f=Y.exec(N.slice(V));return f?(h.w=X.get(f[0].toLowerCase()),V+f[0].length):-1}function C(h,N,V){var f=P.exec(N.slice(V));return f?(h.w=_.get(f[0].toLowerCase()),V+f[0].length):-1}function M(h,N,V){var f=U.exec(N.slice(V));return f?(h.m=R.get(f[0].toLowerCase()),V+f[0].length):-1}function D(h,N,V){var f=B.exec(N.slice(V));return f?(h.m=v.get(f[0].toLowerCase()),V+f[0].length):-1}function c(h,N,V){return p(h,e,N,V)}function g(h,N,V){return p(h,n,N,V)}function b(h,N,V){return p(h,r,N,V)}function m(h){return a[h.getDay()]}function I(h){return s[h.getDay()]}function o(h){return F[h.getMonth()]}function W(h){return y[h.getMonth()]}function u(h){return i[+(h.getHours()>=12)]}function K(h){return 1+~~(h.getMonth()/3)}function l(h){return a[h.getUTCDay()]}function $(h){return s[h.getUTCDay()]}function O(h){return F[h.getUTCMonth()]}function j(h){return y[h.getUTCMonth()]}function H(h){return i[+(h.getUTCHours()>=12)]}function J(h){return 1+~~(h.getUTCMonth()/3)}return{format:function(h){var N=T(h+="",E);return N.toString=function(){return h},N},parse:function(h){var N=k(h+="",!1);return N.toString=function(){return h},N},utcFormat:function(h){var N=T(h+="",z);return N.toString=function(){return h},N},utcParse:function(h){var N=k(h+="",!0);return N.toString=function(){return h},N}}}var Re={"-":"",_:" ",0:"0"},rt=/^\s*\d+/,Er=/^%/,Ir=/[\\^$*+?|[\]().{}]/g;function q(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",s=i.length;return r+(s[e.toLowerCase(),n]))}function Ar(t,e,n){var r=rt.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function Wr(t,e,n){var r=rt.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function $r(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function Or(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function Hr(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function ze(t,e,n){var r=rt.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function qe(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Nr(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Pr(t,e,n){var r=rt.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function Vr(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Be(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Rr(t,e,n){var r=rt.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Ze(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function zr(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function qr(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function Br(t,e,n){var r=rt.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function Zr(t,e,n){var r=rt.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Xr(t,e,n){var r=Er.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function Gr(t,e,n){var r=rt.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function jr(t,e,n){var r=rt.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Xe(t,e){return q(t.getDate(),e,2)}function Qr(t,e){return q(t.getHours(),e,2)}function Jr(t,e){return q(t.getHours()%12||12,e,2)}function Kr(t,e){return q(1+xt.count(kt(t),t),e,3)}function Dn(t,e){return q(t.getMilliseconds(),e,3)}function ti(t,e){return Dn(t,e)+"000"}function ei(t,e){return q(t.getMonth()+1,e,2)}function ni(t,e){return q(t.getMinutes(),e,2)}function ri(t,e){return q(t.getSeconds(),e,2)}function ii(t){var e=t.getDay();return e===0?7:e}function si(t,e){return q(zt.count(kt(t)-1,t),e,2)}function Mn(t){var e=t.getDay();return e>=4||e===0?bt(t):bt.ceil(t)}function ai(t,e){return t=Mn(t),q(bt.count(kt(t),t)+(kt(t).getDay()===4),e,2)}function oi(t){return t.getDay()}function ci(t,e){return q(Vt.count(kt(t)-1,t),e,2)}function ui(t,e){return q(t.getFullYear()%100,e,2)}function li(t,e){return t=Mn(t),q(t.getFullYear()%100,e,2)}function fi(t,e){return q(t.getFullYear()%1e4,e,4)}function di(t,e){var n=t.getDay();return t=n>=4||n===0?bt(t):bt.ceil(t),q(t.getFullYear()%1e4,e,4)}function hi(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+q(e/60|0,"0",2)+q(e%60,"0",2)}function Ge(t,e){return q(t.getUTCDate(),e,2)}function mi(t,e){return q(t.getUTCHours(),e,2)}function gi(t,e){return q(t.getUTCHours()%12||12,e,2)}function yi(t,e){return q(1+_e.count(wt(t),t),e,3)}function Cn(t,e){return q(t.getUTCMilliseconds(),e,3)}function ki(t,e){return Cn(t,e)+"000"}function pi(t,e){return q(t.getUTCMonth()+1,e,2)}function vi(t,e){return q(t.getUTCMinutes(),e,2)}function Ti(t,e){return q(t.getUTCSeconds(),e,2)}function xi(t){var e=t.getUTCDay();return e===0?7:e}function bi(t,e){return q(wn.count(wt(t)-1,t),e,2)}function Sn(t){var e=t.getUTCDay();return e>=4||e===0?It(t):It.ceil(t)}function wi(t,e){return t=Sn(t),q(It.count(wt(t),t)+(wt(t).getUTCDay()===4),e,2)}function Di(t){return t.getUTCDay()}function Mi(t,e){return q(re.count(wt(t)-1,t),e,2)}function Ci(t,e){return q(t.getUTCFullYear()%100,e,2)}function Si(t,e){return t=Sn(t),q(t.getUTCFullYear()%100,e,2)}function _i(t,e){return q(t.getUTCFullYear()%1e4,e,4)}function Yi(t,e){var n=t.getUTCDay();return t=n>=4||n===0?It(t):It.ceil(t),q(t.getUTCFullYear()%1e4,e,4)}function Fi(){return"+0000"}function je(){return"%"}function Qe(t){return+t}function Je(t){return Math.floor(+t/1e3)}var St,ie;Ui({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"]});function Ui(t){return St=Ur(t),ie=St.format,St.parse,St.utcFormat,St.utcParse,St}function Ei(t){return new Date(t)}function Ii(t){return t instanceof Date?+t:+new Date(+t)}function _n(t,e,n,r,i,s,a,y,F,S){var w=Jn(),P=w.invert,_=w.domain,Y=S(".%L"),X=S(":%S"),B=S("%I:%M"),v=S("%I %p"),U=S("%a %d"),R=S("%b %d"),E=S("%B"),z=S("%Y");function G(T){return(F(T)4&&(Y+=7),_.add(Y,n));return X.diff(B,"week")+1},y.isoWeekday=function(S){return this.$utils().u(S)?this.day()||7:this.day(this.day()%7?S:S-7)};var F=y.startOf;y.startOf=function(S,w){var P=this.$utils(),_=!!P.u(w)||w;return P.p(S)==="isoweek"?_?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):F.bind(this)(S,w)}}}))})(jt)),jt.exports}var $i=Wi();const Oi=oe($i);var Qt={exports:{}},Hi=Qt.exports,tn;function Ni(){return tn||(tn=1,(function(t,e){(function(n,r){t.exports=r()})(Hi,(function(){var n={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"},r=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,i=/\d/,s=/\d\d/,a=/\d\d?/,y=/\d*[^-_:/,()\s\d]+/,F={},S=function(v){return(v=+v)+(v>68?1900:2e3)},w=function(v){return function(U){this[v]=+U}},P=[/[+-]\d\d:?(\d\d)?|Z/,function(v){(this.zone||(this.zone={})).offset=(function(U){if(!U||U==="Z")return 0;var R=U.match(/([+-]|\d\d)/g),E=60*R[1]+(+R[2]||0);return E===0?0:R[0]==="+"?-E:E})(v)}],_=function(v){var U=F[v];return U&&(U.indexOf?U:U.s.concat(U.f))},Y=function(v,U){var R,E=F.meridiem;if(E){for(var z=1;z<=24;z+=1)if(v.indexOf(E(z,0,U))>-1){R=z>12;break}}else R=v===(U?"pm":"PM");return R},X={A:[y,function(v){this.afternoon=Y(v,!1)}],a:[y,function(v){this.afternoon=Y(v,!0)}],Q:[i,function(v){this.month=3*(v-1)+1}],S:[i,function(v){this.milliseconds=100*+v}],SS:[s,function(v){this.milliseconds=10*+v}],SSS:[/\d{3}/,function(v){this.milliseconds=+v}],s:[a,w("seconds")],ss:[a,w("seconds")],m:[a,w("minutes")],mm:[a,w("minutes")],H:[a,w("hours")],h:[a,w("hours")],HH:[a,w("hours")],hh:[a,w("hours")],D:[a,w("day")],DD:[s,w("day")],Do:[y,function(v){var U=F.ordinal,R=v.match(/\d+/);if(this.day=R[0],U)for(var E=1;E<=31;E+=1)U(E).replace(/\[|\]/g,"")===v&&(this.day=E)}],w:[a,w("week")],ww:[s,w("week")],M:[a,w("month")],MM:[s,w("month")],MMM:[y,function(v){var U=_("months"),R=(_("monthsShort")||U.map((function(E){return E.slice(0,3)}))).indexOf(v)+1;if(R<1)throw new Error;this.month=R%12||R}],MMMM:[y,function(v){var U=_("months").indexOf(v)+1;if(U<1)throw new Error;this.month=U%12||U}],Y:[/[+-]?\d+/,w("year")],YY:[s,function(v){this.year=S(v)}],YYYY:[/\d{4}/,w("year")],Z:P,ZZ:P};function B(v){var U,R;U=v,R=F&&F.formats;for(var E=(v=U.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(x,C,M){var D=M&&M.toUpperCase();return C||R[M]||n[M]||R[D].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(c,g,b){return g||b.slice(1)}))}))).match(r),z=E.length,G=0;G-1)return new Date((I==="X"?1e3:1)*m);var u=B(I)(m),K=u.year,l=u.month,$=u.day,O=u.hours,j=u.minutes,H=u.seconds,J=u.milliseconds,h=u.zone,N=u.week,V=new Date,f=$||(K||l?1:V.getDate()),tt=K||V.getFullYear(),A=0;K&&!l||(A=l>0?l-1:V.getMonth());var Q,Z=O||0,st=j||0,at=H||0,pt=J||0;return h?new Date(Date.UTC(tt,A,f,Z,st,at,pt+60*h.offset*1e3)):o?new Date(Date.UTC(tt,A,f,Z,st,at,pt)):(Q=new Date(tt,A,f,Z,st,at,pt),N&&(Q=W(Q).week(N).toDate()),Q)}catch{return new Date("")}})(T,L,k,R),this.init(),D&&D!==!0&&(this.$L=this.locale(D).$L),M&&T!=this.format(L)&&(this.$d=new Date("")),F={}}else if(L instanceof Array)for(var c=L.length,g=1;g<=c;g+=1){p[1]=L[g-1];var b=R.apply(this,p);if(b.isValid()){this.$d=b.$d,this.$L=b.$L,this.init();break}g===c&&(this.$d=new Date(""))}else z.call(this,G)}}}))})(Qt)),Qt.exports}var Pi=Ni();const Vi=oe(Pi);var Jt={exports:{}},Ri=Jt.exports,en;function zi(){return en||(en=1,(function(t,e){(function(n,r){t.exports=r()})(Ri,(function(){return function(n,r){var i=r.prototype,s=i.format;i.format=function(a){var y=this,F=this.$locale();if(!this.isValid())return s.bind(this)(a);var S=this.$utils(),w=(a||"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(P){switch(P){case"Q":return Math.ceil((y.$M+1)/3);case"Do":return F.ordinal(y.$D);case"gggg":return y.weekYear();case"GGGG":return y.isoWeekYear();case"wo":return F.ordinal(y.week(),"W");case"w":case"ww":return S.s(y.week(),P==="w"?1:2,"0");case"W":case"WW":return S.s(y.isoWeek(),P==="W"?1:2,"0");case"k":case"kk":return S.s(String(y.$H===0?24:y.$H),P==="k"?1:2,"0");case"X":return Math.floor(y.$d.getTime()/1e3);case"x":return y.$d.getTime();case"z":return"["+y.offsetName()+"]";case"zzz":return"["+y.offsetName("long")+"]";default:return P}}));return s.bind(this)(w)}}}))})(Jt)),Jt.exports}var qi=zi();const Bi=oe(qi);var Kt={exports:{}},Zi=Kt.exports,nn;function Xi(){return nn||(nn=1,(function(t,e){(function(n,r){t.exports=r()})(Zi,(function(){var n,r,i=1e3,s=6e4,a=36e5,y=864e5,F=31536e6,S=2628e6,w=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,P=/\[([^\]]+)]|YYYY|YY|Y|M{1,2}|D{1,2}|H{1,2}|m{1,2}|s{1,2}|SSS/g,_={years:F,months:S,days:y,hours:a,minutes:s,seconds:i,milliseconds:1,weeks:6048e5},Y=function(T){return T instanceof z},X=function(T,k,p){return new z(T,p,k.$l)},B=function(T){return r.p(T)+"s"},v=function(T){return T<0},U=function(T){return v(T)?Math.ceil(T):Math.floor(T)},R=function(T){return Math.abs(T)},E=function(T,k){return T?v(T)?{negative:!0,format:""+R(T)+k}:{negative:!1,format:""+T+k}:{negative:!1,format:""}},z=(function(){function T(p,L,x){var C=this;if(this.$d={},this.$l=x,p===void 0&&(this.$ms=0,this.parseFromMilliseconds()),L)return X(p*_[B(L)],this);if(typeof p=="number")return this.$ms=p,this.parseFromMilliseconds(),this;if(typeof p=="object")return Object.keys(p).forEach((function(c){C.$d[B(c)]=p[c]})),this.calMilliseconds(),this;if(typeof p=="string"){var M=p.match(w);if(M){var D=M.slice(2).map((function(c){return c!=null?Number(c):0}));return this.$d.years=D[0],this.$d.months=D[1],this.$d.weeks=D[2],this.$d.days=D[3],this.$d.hours=D[4],this.$d.minutes=D[5],this.$d.seconds=D[6],this.calMilliseconds(),this}}return this}var k=T.prototype;return k.calMilliseconds=function(){var p=this;this.$ms=Object.keys(this.$d).reduce((function(L,x){return L+(p.$d[x]||0)*_[x]}),0)},k.parseFromMilliseconds=function(){var p=this.$ms;this.$d.years=U(p/F),p%=F,this.$d.months=U(p/S),p%=S,this.$d.days=U(p/y),p%=y,this.$d.hours=U(p/a),p%=a,this.$d.minutes=U(p/s),p%=s,this.$d.seconds=U(p/i),p%=i,this.$d.milliseconds=p},k.toISOString=function(){var p=E(this.$d.years,"Y"),L=E(this.$d.months,"M"),x=+this.$d.days||0;this.$d.weeks&&(x+=7*this.$d.weeks);var C=E(x,"D"),M=E(this.$d.hours,"H"),D=E(this.$d.minutes,"M"),c=this.$d.seconds||0;this.$d.milliseconds&&(c+=this.$d.milliseconds/1e3,c=Math.round(1e3*c)/1e3);var g=E(c,"S"),b=p.negative||L.negative||C.negative||M.negative||D.negative||g.negative,m=M.format||D.format||g.format?"T":"",I=(b?"-":"")+"P"+p.format+L.format+C.format+m+M.format+D.format+g.format;return I==="P"||I==="-P"?"P0D":I},k.toJSON=function(){return this.toISOString()},k.format=function(p){var L=p||"YYYY-MM-DDTHH:mm:ss",x={Y:this.$d.years,YY:r.s(this.$d.years,2,"0"),YYYY:r.s(this.$d.years,4,"0"),M:this.$d.months,MM:r.s(this.$d.months,2,"0"),D:this.$d.days,DD:r.s(this.$d.days,2,"0"),H:this.$d.hours,HH:r.s(this.$d.hours,2,"0"),m:this.$d.minutes,mm:r.s(this.$d.minutes,2,"0"),s:this.$d.seconds,ss:r.s(this.$d.seconds,2,"0"),SSS:r.s(this.$d.milliseconds,3,"0")};return L.replace(P,(function(C,M){return M||String(x[C])}))},k.as=function(p){return this.$ms/_[B(p)]},k.get=function(p){var L=this.$ms,x=B(p);return x==="milliseconds"?L%=1e3:L=x==="weeks"?U(L/_[x]):this.$d[x],L||0},k.add=function(p,L,x){var C;return C=L?p*_[B(L)]:Y(p)?p.$ms:X(p,this).$ms,X(this.$ms+C*(x?-1:1),this)},k.subtract=function(p,L){return this.add(p,L,!0)},k.locale=function(p){var L=this.clone();return L.$l=p,L},k.clone=function(){return X(this.$ms,this)},k.humanize=function(p){return n().add(this.$ms,"ms").locale(this.$l).fromNow(!p)},k.valueOf=function(){return this.asMilliseconds()},k.milliseconds=function(){return this.get("milliseconds")},k.asMilliseconds=function(){return this.as("milliseconds")},k.seconds=function(){return this.get("seconds")},k.asSeconds=function(){return this.as("seconds")},k.minutes=function(){return this.get("minutes")},k.asMinutes=function(){return this.as("minutes")},k.hours=function(){return this.get("hours")},k.asHours=function(){return this.as("hours")},k.days=function(){return this.get("days")},k.asDays=function(){return this.as("days")},k.weeks=function(){return this.get("weeks")},k.asWeeks=function(){return this.as("weeks")},k.months=function(){return this.get("months")},k.asMonths=function(){return this.as("months")},k.years=function(){return this.get("years")},k.asYears=function(){return this.as("years")},T})(),G=function(T,k,p){return T.add(k.years()*p,"y").add(k.months()*p,"M").add(k.days()*p,"d").add(k.hours()*p,"h").add(k.minutes()*p,"m").add(k.seconds()*p,"s").add(k.milliseconds()*p,"ms")};return function(T,k,p){n=p,r=p().$utils(),p.duration=function(C,M){var D=p.locale();return X(C,{$l:D},M)},p.isDuration=Y;var L=k.prototype.add,x=k.prototype.subtract;k.prototype.add=function(C,M){return Y(C)?G(this,C,1):L.bind(this)(C,M)},k.prototype.subtract=function(C,M){return Y(C)?G(this,C,-1):x.bind(this)(C,M)}}}))})(Kt)),Kt.exports}var Gi=Xi();const ji=oe(Gi);var we=(function(){var t=d(function(D,c,g,b){for(g=g||{},b=D.length;b--;g[D[b]]=c);return g},"o"),e=[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],n=[1,26],r=[1,27],i=[1,28],s=[1,29],a=[1,30],y=[1,31],F=[1,32],S=[1,33],w=[1,34],P=[1,9],_=[1,10],Y=[1,11],X=[1,12],B=[1,13],v=[1,14],U=[1,15],R=[1,16],E=[1,19],z=[1,20],G=[1,21],T=[1,22],k=[1,23],p=[1,25],L=[1,35],x={trace:d(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:d(function(c,g,b,m,I,o,W){var u=o.length-1;switch(I){case 1:return o[u-1];case 2:this.$=[];break;case 3:o[u-1].push(o[u]),this.$=o[u-1];break;case 4:case 5:this.$=o[u];break;case 6:case 7:this.$=[];break;case 8:m.setWeekday("monday");break;case 9:m.setWeekday("tuesday");break;case 10:m.setWeekday("wednesday");break;case 11:m.setWeekday("thursday");break;case 12:m.setWeekday("friday");break;case 13:m.setWeekday("saturday");break;case 14:m.setWeekday("sunday");break;case 15:m.setWeekend("friday");break;case 16:m.setWeekend("saturday");break;case 17:m.setDateFormat(o[u].substr(11)),this.$=o[u].substr(11);break;case 18:m.enableInclusiveEndDates(),this.$=o[u].substr(18);break;case 19:m.TopAxis(),this.$=o[u].substr(8);break;case 20:m.setAxisFormat(o[u].substr(11)),this.$=o[u].substr(11);break;case 21:m.setTickInterval(o[u].substr(13)),this.$=o[u].substr(13);break;case 22:m.setExcludes(o[u].substr(9)),this.$=o[u].substr(9);break;case 23:m.setIncludes(o[u].substr(9)),this.$=o[u].substr(9);break;case 24:m.setTodayMarker(o[u].substr(12)),this.$=o[u].substr(12);break;case 27:m.setDiagramTitle(o[u].substr(6)),this.$=o[u].substr(6);break;case 28:this.$=o[u].trim(),m.setAccTitle(this.$);break;case 29:case 30:this.$=o[u].trim(),m.setAccDescription(this.$);break;case 31:m.addSection(o[u].substr(8)),this.$=o[u].substr(8);break;case 33:m.addTask(o[u-1],o[u]),this.$="task";break;case 34:this.$=o[u-1],m.setClickEvent(o[u-1],o[u],null);break;case 35:this.$=o[u-2],m.setClickEvent(o[u-2],o[u-1],o[u]);break;case 36:this.$=o[u-2],m.setClickEvent(o[u-2],o[u-1],null),m.setLink(o[u-2],o[u]);break;case 37:this.$=o[u-3],m.setClickEvent(o[u-3],o[u-2],o[u-1]),m.setLink(o[u-3],o[u]);break;case 38:this.$=o[u-2],m.setClickEvent(o[u-2],o[u],null),m.setLink(o[u-2],o[u-1]);break;case 39:this.$=o[u-3],m.setClickEvent(o[u-3],o[u-1],o[u]),m.setLink(o[u-3],o[u-2]);break;case 40:this.$=o[u-1],m.setLink(o[u-1],o[u]);break;case 41:case 47:this.$=o[u-1]+" "+o[u];break;case 42:case 43:case 45:this.$=o[u-2]+" "+o[u-1]+" "+o[u];break;case 44:case 46:this.$=o[u-3]+" "+o[u-2]+" "+o[u-1]+" "+o[u];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:n,13:r,14:i,15:s,16:a,17:y,18:F,19:18,20:S,21:w,22:P,23:_,24:Y,25:X,26:B,27:v,28:U,29:R,30:E,31:z,33:G,35:T,36:k,37:24,38:p,40:L},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:36,11:17,12:n,13:r,14:i,15:s,16:a,17:y,18:F,19:18,20:S,21:w,22:P,23:_,24:Y,25:X,26:B,27:v,28:U,29:R,30:E,31:z,33:G,35:T,36:k,37:24,38:p,40:L},t(e,[2,5]),t(e,[2,6]),t(e,[2,17]),t(e,[2,18]),t(e,[2,19]),t(e,[2,20]),t(e,[2,21]),t(e,[2,22]),t(e,[2,23]),t(e,[2,24]),t(e,[2,25]),t(e,[2,26]),t(e,[2,27]),{32:[1,37]},{34:[1,38]},t(e,[2,30]),t(e,[2,31]),t(e,[2,32]),{39:[1,39]},t(e,[2,8]),t(e,[2,9]),t(e,[2,10]),t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),{41:[1,40],43:[1,41]},t(e,[2,4]),t(e,[2,28]),t(e,[2,29]),t(e,[2,33]),t(e,[2,34],{42:[1,42],43:[1,43]}),t(e,[2,40],{41:[1,44]}),t(e,[2,35],{43:[1,45]}),t(e,[2,36]),t(e,[2,38],{42:[1,46]}),t(e,[2,37]),t(e,[2,39])],defaultActions:{},parseError:d(function(c,g){if(g.recoverable)this.trace(c);else{var b=new Error(c);throw b.hash=g,b}},"parseError"),parse:d(function(c){var g=this,b=[0],m=[],I=[null],o=[],W=this.table,u="",K=0,l=0,$=2,O=1,j=o.slice.call(arguments,1),H=Object.create(this.lexer),J={yy:{}};for(var h in this.yy)Object.prototype.hasOwnProperty.call(this.yy,h)&&(J.yy[h]=this.yy[h]);H.setInput(c,J.yy),J.yy.lexer=H,J.yy.parser=this,typeof H.yylloc>"u"&&(H.yylloc={});var N=H.yylloc;o.push(N);var V=H.options&&H.options.ranges;typeof J.yy.parseError=="function"?this.parseError=J.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function f(ot){b.length=b.length-2*ot,I.length=I.length-ot,o.length=o.length-ot}d(f,"popStack");function tt(){var ot;return ot=m.pop()||H.lex()||O,typeof ot!="number"&&(ot instanceof Array&&(m=ot,ot=m.pop()),ot=g.symbols_[ot]||ot),ot}d(tt,"lex");for(var A,Q,Z,st,at={},pt,ut,He,Bt;;){if(Q=b[b.length-1],this.defaultActions[Q]?Z=this.defaultActions[Q]:((A===null||typeof A>"u")&&(A=tt()),Z=W[Q]&&W[Q][A]),typeof Z>"u"||!Z.length||!Z[0]){var ce="";Bt=[];for(pt in W[Q])this.terminals_[pt]&&pt>$&&Bt.push("'"+this.terminals_[pt]+"'");H.showPosition?ce="Parse error on line "+(K+1)+`: +`+H.showPosition()+` +Expecting `+Bt.join(", ")+", got '"+(this.terminals_[A]||A)+"'":ce="Parse error on line "+(K+1)+": Unexpected "+(A==O?"end of input":"'"+(this.terminals_[A]||A)+"'"),this.parseError(ce,{text:H.match,token:this.terminals_[A]||A,line:H.yylineno,loc:N,expected:Bt})}if(Z[0]instanceof Array&&Z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Q+", token: "+A);switch(Z[0]){case 1:b.push(A),I.push(H.yytext),o.push(H.yylloc),b.push(Z[1]),A=null,l=H.yyleng,u=H.yytext,K=H.yylineno,N=H.yylloc;break;case 2:if(ut=this.productions_[Z[1]][1],at.$=I[I.length-ut],at._$={first_line:o[o.length-(ut||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(ut||1)].first_column,last_column:o[o.length-1].last_column},V&&(at._$.range=[o[o.length-(ut||1)].range[0],o[o.length-1].range[1]]),st=this.performAction.apply(at,[u,l,K,J.yy,Z[1],I,o].concat(j)),typeof st<"u")return st;ut&&(b=b.slice(0,-1*ut*2),I=I.slice(0,-1*ut),o=o.slice(0,-1*ut)),b.push(this.productions_[Z[1]][0]),I.push(at.$),o.push(at._$),He=W[b[b.length-2]][b[b.length-1]],b.push(He);break;case 3:return!0}}return!0},"parse")},C=(function(){var D={EOF:1,parseError:d(function(g,b){if(this.yy.parser)this.yy.parser.parseError(g,b);else throw new Error(g)},"parseError"),setInput:d(function(c,g){return this.yy=g||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:d(function(){var c=this._input[0];this.yytext+=c,this.yyleng++,this.offset++,this.match+=c,this.matched+=c;var g=c.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),c},"input"),unput:d(function(c){var g=c.length,b=c.split(/(?:\r\n?|\n)/g);this._input=c+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-g),this.offset-=g;var m=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),b.length-1&&(this.yylineno-=b.length-1);var I=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:b?(b.length===m.length?this.yylloc.first_column:0)+m[m.length-b.length].length-b[0].length:this.yylloc.first_column-g},this.options.ranges&&(this.yylloc.range=[I[0],I[0]+this.yyleng-g]),this.yyleng=this.yytext.length,this},"unput"),more:d(function(){return this._more=!0,this},"more"),reject:d(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:d(function(c){this.unput(this.match.slice(c))},"less"),pastInput:d(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:d(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:d(function(){var c=this.pastInput(),g=new Array(c.length+1).join("-");return c+this.upcomingInput()+` +`+g+"^"},"showPosition"),test_match:d(function(c,g){var b,m,I;if(this.options.backtrack_lexer&&(I={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&&(I.yylloc.range=this.yylloc.range.slice(0))),m=c[0].match(/(?:\r\n?|\n).*/g),m&&(this.yylineno+=m.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:m?m[m.length-1].length-m[m.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],b=this.performAction.call(this,this.yy,this,g,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),b)return b;if(this._backtrack){for(var o in I)this[o]=I[o];return!1}return!1},"test_match"),next:d(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var c,g,b,m;this._more||(this.yytext="",this.match="");for(var I=this._currentRules(),o=0;og[0].length)){if(g=b,m=o,this.options.backtrack_lexer){if(c=this.test_match(b,I[o]),c!==!1)return c;if(this._backtrack){g=!1;continue}else return!1}else if(!this.options.flex)break}return g?(c=this.test_match(g,I[m]),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:d(function(){var g=this.next();return g||this.lex()},"lex"),begin:d(function(g){this.conditionStack.push(g)},"begin"),popState:d(function(){var g=this.conditionStack.length-1;return g>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:d(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:d(function(g){return g=this.conditionStack.length-1-Math.abs(g||0),g>=0?this.conditionStack[g]:"INITIAL"},"topState"),pushState:d(function(g){this.begin(g)},"pushState"),stateStackSize:d(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:d(function(g,b,m,I){switch(m){case 0:return this.begin("open_directive"),"open_directive";case 1:return this.begin("acc_title"),31;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),33;case 4:return this.popState(),"acc_descr_value";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 D})();x.lexer=C;function M(){this.yy={}}return d(M,"Parser"),M.prototype=x,x.Parser=M,new M})();we.parser=we;var Qi=we;it.extend(Oi);it.extend(Vi);it.extend(Bi);var rn={friday:5,saturday:6},lt="",Ye="",Fe=void 0,Ue="",Lt=[],At=[],Ee=new Map,Ie=[],se=[],Wt="",Le="",Yn=["active","done","crit","milestone","vert"],Ae=[],_t="",qt=!1,We=!1,$e="sunday",ae="saturday",De=0,Ji=d(function(){Ie=[],se=[],Wt="",Ae=[],te=0,Ce=void 0,ee=void 0,et=[],lt="",Ye="",Le="",Fe=void 0,Ue="",Lt=[],At=[],qt=!1,We=!1,De=0,Ee=new Map,_t="",Gn(),$e="sunday",ae="saturday"},"clear"),Ki=d(function(t){_t=t},"setDiagramId"),ts=d(function(t){Ye=t},"setAxisFormat"),es=d(function(){return Ye},"getAxisFormat"),ns=d(function(t){Fe=t},"setTickInterval"),rs=d(function(){return Fe},"getTickInterval"),is=d(function(t){Ue=t},"setTodayMarker"),ss=d(function(){return Ue},"getTodayMarker"),as=d(function(t){lt=t},"setDateFormat"),os=d(function(){qt=!0},"enableInclusiveEndDates"),cs=d(function(){return qt},"endDatesAreInclusive"),us=d(function(){We=!0},"enableTopAxis"),ls=d(function(){return We},"topAxisEnabled"),fs=d(function(t){Le=t},"setDisplayMode"),ds=d(function(){return Le},"getDisplayMode"),hs=d(function(){return lt},"getDateFormat"),Fn=d((t,e)=>{const n=e.toLowerCase().split(/[\s,]+/).filter(r=>r!=="");return[...new Set([...t,...n])]},"mergeTokens"),ms=d(function(t){Lt=Fn(Lt,t)},"setIncludes"),gs=d(function(){return Lt},"getIncludes"),ys=d(function(t){At=Fn(At,t)},"setExcludes"),ks=d(function(){return At},"getExcludes"),ps=d(function(){return Ee},"getLinks"),vs=d(function(t){Wt=t,Ie.push(t)},"addSection"),Ts=d(function(){return Ie},"getSections"),xs=d(function(){let t=sn();const e=10;let n=0;for(;!t&&ny))throw new Error("Failed to find a valid date that was not excluded by `excludes` after 10,000 iterations.");t=t.add(1,"d")}return[e,a]},"fixTaskDates"),Me=d(function(t,e,n){if(n=n.trim(),d(y=>{const F=y.trim();return F==="x"||F==="X"},"isTimestampFormat")(e)&&/^\d+$/.test(n))return new Date(Number(n));const s=/^after\s+(?[\d\w- ]+)/.exec(n);if(s!==null){let y=null;for(const S of s.groups.ids.split(" ")){let w=Ct(S);w!==void 0&&(!y||w.endTime>y.endTime)&&(y=w)}if(y)return y.endTime;const F=new Date;return F.setHours(0,0,0,0),F}let a=it(n,e.trim(),!0);if(a.isValid())return a.toDate();{Tt.debug("Invalid date:"+n),Tt.debug("With date format:"+e.trim());const y=new Date(n);if(y===void 0||isNaN(y.getTime())||y.getFullYear()<-1e4||y.getFullYear()>1e4)throw new Error("Invalid date:"+n);return y}},"getStartDate"),In=d(function(t){const e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return e!==null?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},"parseDuration"),Ln=d(function(t,e,n,r=!1){n=n.trim();const s=/^until\s+(?[\d\w- ]+)/.exec(n);if(s!==null){let w=null;for(const _ of s.groups.ids.split(" ")){let Y=Ct(_);Y!==void 0&&(!w||Y.startTime{window.open(n,"_self")}),Ee.set(r,n))}),Wn(t,"clickable")},"setLink"),Wn=d(function(t,e){t.split(",").forEach(function(n){let r=Ct(n);r!==void 0&&r.classes.push(e)})},"setClass"),Us=d(function(t,e,n){if(Yt().securityLevel!=="loose"||e===void 0)return;let r=[];if(typeof n=="string"){r=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let s=0;s{jn.runFunc(e,...r)})},"setClickFun"),$n=d(function(t,e){Ae.push(function(){const n=_t?`${_t}-${t}`:t,r=document.querySelector(`[id="${n}"]`);r!==null&&r.addEventListener("click",function(){e()})},function(){const n=_t?`${_t}-${t}`:t,r=document.querySelector(`[id="${n}-text"]`);r!==null&&r.addEventListener("click",function(){e()})})},"pushFun"),Es=d(function(t,e,n){t.split(",").forEach(function(r){Us(r,e,n)}),Wn(t,"clickable")},"setClickEvent"),Is=d(function(t){Ae.forEach(function(e){e(t)})},"bindFunctions"),Ls={getConfig:d(()=>Yt().gantt,"getConfig"),clear:Ji,setDateFormat:as,getDateFormat:hs,enableInclusiveEndDates:os,endDatesAreInclusive:cs,enableTopAxis:us,topAxisEnabled:ls,setAxisFormat:ts,getAxisFormat:es,setTickInterval:ns,getTickInterval:rs,setTodayMarker:is,getTodayMarker:ss,setAccTitle:qn,getAccTitle:zn,setDiagramTitle:Rn,getDiagramTitle:Vn,setDiagramId:Ki,setDisplayMode:fs,getDisplayMode:ds,setAccDescription:Pn,getAccDescription:Nn,addSection:vs,getSections:Ts,getTasks:xs,addTask:_s,findTaskById:Ct,addTaskOrg:Ys,setIncludes:ms,getIncludes:gs,setExcludes:ys,getExcludes:ks,setClickEvent:Es,setLink:Fs,getLinks:ps,bindFunctions:Is,parseDuration:In,isInvalidDate:Un,setWeekday:bs,getWeekday:ws,setWeekend:Ds};function Oe(t,e,n){let r=!0;for(;r;)r=!1,n.forEach(function(i){const s="^\\s*"+i+"\\s*$",a=new RegExp(s);t[0].match(a)&&(e[i]=!0,t.shift(1),r=!0)})}d(Oe,"getTaskTags");it.extend(ji);var As=d(function(){Tt.debug("Something is calling, setConf, remove the call")},"setConf"),an={monday:Vt,tuesday:vn,wednesday:Tn,thursday:bt,friday:xn,saturday:bn,sunday:zt},Ws=d((t,e)=>{let n=[...t].map(()=>-1/0),r=[...t].sort((s,a)=>s.startTime-a.startTime||s.order-a.order),i=0;for(const s of r)for(let a=0;a=n[a]){n[a]=s.endTime,s.order=a+e,a>i&&(i=a);break}return i},"getMaxIntersections"),dt,Te=1e4,$s=d(function(t,e,n,r){const i=Yt().gantt;r.db.setDiagramId(e);const s=Yt().securityLevel;let a;s==="sandbox"&&(a=Zt("#i"+e));const y=s==="sandbox"?Zt(a.nodes()[0].contentDocument.body):Zt("body"),F=s==="sandbox"?a.nodes()[0].contentDocument:document,S=F.getElementById(e);dt=S.parentElement.offsetWidth,dt===void 0&&(dt=1200),i.useWidth!==void 0&&(dt=i.useWidth);const w=r.db.getTasks(),P=w.filter(x=>!x.vert);let _=[];for(const x of P)_.push(x.type);_=L(_);const Y={};let X=2*i.topPadding;if(r.db.getDisplayMode()==="compact"||i.displayMode==="compact"){const x={};for(const M of P)x[M.section]===void 0?x[M.section]=[M]:x[M.section].push(M);let C=0;for(const M of Object.keys(x)){const D=Ws(x[M],C)+1;C+=D,X+=D*(i.barHeight+i.barGap),Y[M]=D}}else{X+=P.length*(i.barHeight+i.barGap);for(const x of _)Y[x]=P.filter(C=>C.type===x).length}S.setAttribute("viewBox","0 0 "+dt+" "+X);const B=y.select(`[id="${e}"]`),v=Li().domain([rr(w,function(x){return x.startTime}),nr(w,function(x){return x.endTime})]).rangeRound([0,dt-i.leftPadding-i.rightPadding]);function U(x,C){const M=x.startTime,D=C.startTime;let c=0;return M>D?c=1:Ml.vert===$.vert?0:l.vert?1:-1);const m=x.filter(l=>!l.vert),o=[...new Set(m.map(l=>l.order))].map(l=>m.find($=>$.order===l));B.append("g").selectAll("rect").data(o).enter().append("rect").attr("x",0).attr("y",function(l,$){return $=l.order,$*C+M-2}).attr("width",function(){return b-i.rightPadding/2}).attr("height",C).attr("class",function(l){for(const[$,O]of _.entries())if(l.type===O)return"section section"+$%i.numberSectionStyles;return"section section0"}).enter();const W=B.append("g").selectAll("rect").data(x).enter(),u=r.db.getLinks();if(W.append("rect").attr("id",function(l){return e+"-"+l.id}).attr("rx",3).attr("ry",3).attr("x",function(l){return l.milestone?v(l.startTime)+D+.5*(v(l.endTime)-v(l.startTime))-.5*c:v(l.startTime)+D}).attr("y",function(l,$){return $=l.order,l.vert?i.gridLineStartPadding:$*C+M}).attr("width",function(l){return l.milestone?c:l.vert?.08*c:v(l.renderEndTime||l.endTime)-v(l.startTime)}).attr("height",function(l){return l.vert?m.length*(i.barHeight+i.barGap)+i.barHeight*2:c}).attr("transform-origin",function(l,$){return $=l.order,(v(l.startTime)+D+.5*(v(l.endTime)-v(l.startTime))).toString()+"px "+($*C+M+.5*c).toString()+"px"}).attr("class",function(l){const $="task";let O="";l.classes.length>0&&(O=l.classes.join(" "));let j=0;for(const[J,h]of _.entries())l.type===h&&(j=J%i.numberSectionStyles);let H="";return l.active?l.crit?H+=" activeCrit":H=" active":l.done?l.crit?H=" doneCrit":H=" done":l.crit&&(H+=" crit"),H.length===0&&(H=" task"),l.milestone&&(H=" milestone "+H),l.vert&&(H=" vert "+H),H+=j,H+=" "+O,$+H}),W.append("text").attr("id",function(l){return e+"-"+l.id+"-text"}).text(function(l){return l.task}).attr("font-size",i.fontSize).attr("x",function(l){let $=v(l.startTime),O=v(l.renderEndTime||l.endTime);if(l.milestone&&($+=.5*(v(l.endTime)-v(l.startTime))-.5*c,O=$+c),l.vert)return v(l.startTime)+D;const j=this.getBBox().width;return j>O-$?O+j+1.5*i.leftPadding>b?$+D-5:O+D+5:(O-$)/2+$+D}).attr("y",function(l,$){return l.vert?i.gridLineStartPadding+m.length*(i.barHeight+i.barGap)+60:($=l.order,$*C+i.barHeight/2+(i.fontSize/2-2)+M)}).attr("text-height",c).attr("class",function(l){const $=v(l.startTime);let O=v(l.endTime);l.milestone&&(O=$+c);const j=this.getBBox().width;let H="";l.classes.length>0&&(H=l.classes.join(" "));let J=0;for(const[N,V]of _.entries())l.type===V&&(J=N%i.numberSectionStyles);let h="";return l.active&&(l.crit?h="activeCritText"+J:h="activeText"+J),l.done?l.crit?h=h+" doneCritText"+J:h=h+" doneText"+J:l.crit&&(h=h+" critText"+J),l.milestone&&(h+=" milestoneText"),l.vert&&(h+=" vertText"),j>O-$?O+j+1.5*i.leftPadding>b?H+" taskTextOutsideLeft taskTextOutside"+J+" "+h:H+" taskTextOutsideRight taskTextOutside"+J+" "+h+" width-"+j:H+" taskText taskText"+J+" "+h+" width-"+j}),Yt().securityLevel==="sandbox"){let l;l=Zt("#i"+e);const $=l.nodes()[0].contentDocument;W.filter(function(O){return u.has(O.id)}).each(function(O){var j=$.querySelector("#"+CSS.escape(e+"-"+O.id)),H=$.querySelector("#"+CSS.escape(e+"-"+O.id+"-text"));const J=j.parentNode;var h=$.createElement("a");h.setAttribute("xlink:href",u.get(O.id)),h.setAttribute("target","_top"),J.appendChild(h),h.appendChild(j),h.appendChild(H)})}}d(E,"drawRects");function z(x,C,M,D,c,g,b,m){if(b.length===0&&m.length===0)return;let I,o;for(const{startTime:O,endTime:j}of g)(I===void 0||Oo)&&(o=j);if(!I||!o)return;if(it(o).diff(it(I),"year")>5){Tt.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}const W=r.db.getDateFormat(),u=[];let K=null,l=it(I);for(;l.valueOf()<=o;)r.db.isInvalidDate(l,W,b,m)?K?K.end=l:K={start:l,end:l}:K&&(u.push(K),K=null),l=l.add(1,"d");B.append("g").selectAll("rect").data(u).enter().append("rect").attr("id",O=>e+"-exclude-"+O.start.format("YYYY-MM-DD")).attr("x",O=>v(O.start.startOf("day"))+M).attr("y",i.gridLineStartPadding).attr("width",O=>v(O.end.endOf("day"))-v(O.start.startOf("day"))).attr("height",c-C-i.gridLineStartPadding).attr("transform-origin",function(O,j){return(v(O.start)+M+.5*(v(O.end)-v(O.start))).toString()+"px "+(j*x+.5*c).toString()+"px"}).attr("class","exclude-range")}d(z,"drawExcludeDays");function G(x,C,M,D){if(M<=0||x>C)return 1/0;const c=C-x,g=it.duration({[D??"day"]:M}).asMilliseconds();return g<=0?1/0:Math.ceil(c/g)}d(G,"getEstimatedTickCount");function T(x,C,M,D){const c=r.db.getDateFormat(),g=r.db.getAxisFormat();let b;g?b=g:c==="D"?b="%d":b=i.axisFormat??"%Y-%m-%d";let m=fr(v).tickSize(-D+C+i.gridLineStartPadding).tickFormat(ie(b));const o=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(r.db.getTickInterval()||i.tickInterval);if(o!==null){const W=parseInt(o[1],10);if(isNaN(W)||W<=0)Tt.warn(`Invalid tick interval value: "${o[1]}". Skipping custom tick interval.`);else{const u=o[2],K=r.db.getWeekday()||i.weekday,l=v.domain(),$=l[0],O=l[1],j=G($,O,W,u);if(j>Te)Tt.warn(`The tick interval "${W}${u}" would generate ${j} ticks, which exceeds the maximum allowed (${Te}). This may indicate an invalid date or time range. Skipping custom tick interval.`);else switch(u){case"millisecond":m.ticks(Et.every(W));break;case"second":m.ticks(vt.every(W));break;case"minute":m.ticks(Nt.every(W));break;case"hour":m.ticks(Pt.every(W));break;case"day":m.ticks(xt.every(W));break;case"week":m.ticks(an[K].every(W));break;case"month":m.ticks(Rt.every(W));break}}}if(B.append("g").attr("class","grid").attr("transform","translate("+x+", "+(D-50)+")").call(m).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),r.db.topAxisEnabled()||i.topAxis){let W=lr(v).tickSize(-D+C+i.gridLineStartPadding).tickFormat(ie(b));if(o!==null){const u=parseInt(o[1],10);if(isNaN(u)||u<=0)Tt.warn(`Invalid tick interval value: "${o[1]}". Skipping custom tick interval.`);else{const K=o[2],l=r.db.getWeekday()||i.weekday,$=v.domain(),O=$[0],j=$[1];if(G(O,j,u,K)<=Te)switch(K){case"millisecond":W.ticks(Et.every(u));break;case"second":W.ticks(vt.every(u));break;case"minute":W.ticks(Nt.every(u));break;case"hour":W.ticks(Pt.every(u));break;case"day":W.ticks(xt.every(u));break;case"week":W.ticks(an[l].every(u));break;case"month":W.ticks(Rt.every(u));break}}}B.append("g").attr("class","grid").attr("transform","translate("+x+", "+C+")").call(W).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}d(T,"makeGrid");function k(x,C){let M=0;const D=Object.keys(Y).map(c=>[c,Y[c]]);B.append("g").selectAll("text").data(D).enter().append(function(c){const g=c[0].split(Zn.lineBreakRegex),b=-(g.length-1)/2,m=F.createElementNS("http://www.w3.org/2000/svg","text");m.setAttribute("dy",b+"em");for(const[I,o]of g.entries()){const W=F.createElementNS("http://www.w3.org/2000/svg","tspan");W.setAttribute("alignment-baseline","central"),W.setAttribute("x","10"),I>0&&W.setAttribute("dy","1em"),W.textContent=o,m.appendChild(W)}return m}).attr("x",10).attr("y",function(c,g){if(g>0)for(let b=0;b` + .mermaid-main-font { + font-family: ${t.fontFamily}; + } + + .exclude-range { + fill: ${t.excludeBkgColor}; + } + + .section { + stroke: none; + opacity: 0.2; + } + + .section0 { + fill: ${t.sectionBkgColor}; + } + + .section2 { + fill: ${t.sectionBkgColor2}; + } + + .section1, + .section3 { + fill: ${t.altSectionBkgColor}; + opacity: 0.2; + } + + .sectionTitle0 { + fill: ${t.titleColor}; + } + + .sectionTitle1 { + fill: ${t.titleColor}; + } + + .sectionTitle2 { + fill: ${t.titleColor}; + } + + .sectionTitle3 { + fill: ${t.titleColor}; + } + + .sectionTitle { + text-anchor: start; + font-family: ${t.fontFamily}; + } + + + /* Grid and axis */ + + .grid .tick { + stroke: ${t.gridColor}; + opacity: 0.8; + shape-rendering: crispEdges; + } + + .grid .tick text { + font-family: ${t.fontFamily}; + fill: ${t.textColor}; + } + + .grid path { + stroke-width: 0; + } + + + /* Today line */ + + .today { + fill: none; + stroke: ${t.todayLineColor}; + stroke-width: 2px; + } + + + /* Task styling */ + + /* Default task */ + + .task { + stroke-width: 2; + } + + .taskText { + text-anchor: middle; + font-family: ${t.fontFamily}; + } + + .taskTextOutsideRight { + fill: ${t.taskTextDarkColor}; + text-anchor: start; + font-family: ${t.fontFamily}; + } + + .taskTextOutsideLeft { + fill: ${t.taskTextDarkColor}; + text-anchor: end; + } + + + /* Special case clickable */ + + .task.clickable { + cursor: pointer; + } + + .taskText.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideLeft.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + .taskTextOutsideRight.clickable { + cursor: pointer; + fill: ${t.taskTextClickableColor} !important; + font-weight: bold; + } + + + /* Specific task settings for the sections*/ + + .taskText0, + .taskText1, + .taskText2, + .taskText3 { + fill: ${t.taskTextColor}; + } + + .task0, + .task1, + .task2, + .task3 { + fill: ${t.taskBkgColor}; + stroke: ${t.taskBorderColor}; + } + + .taskTextOutside0, + .taskTextOutside2 + { + fill: ${t.taskTextOutsideColor}; + } + + .taskTextOutside1, + .taskTextOutside3 { + fill: ${t.taskTextOutsideColor}; + } + + + /* Active task */ + + .active0, + .active1, + .active2, + .active3 { + fill: ${t.activeTaskBkgColor}; + stroke: ${t.activeTaskBorderColor}; + } + + .activeText0, + .activeText1, + .activeText2, + .activeText3 { + fill: ${t.taskTextDarkColor} !important; + } + + + /* Completed task */ + + .done0, + .done1, + .done2, + .done3 { + stroke: ${t.doneTaskBorderColor}; + fill: ${t.doneTaskBkgColor}; + stroke-width: 2; + } + + .doneText0, + .doneText1, + .doneText2, + .doneText3 { + fill: ${t.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: ${t.taskTextOutsideColor} !important; + } + + + /* Tasks on the critical line */ + + .crit0, + .crit1, + .crit2, + .crit3 { + stroke: ${t.critBorderColor}; + fill: ${t.critBkgColor}; + stroke-width: 2; + } + + .activeCrit0, + .activeCrit1, + .activeCrit2, + .activeCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.activeTaskBkgColor}; + stroke-width: 2; + } + + .doneCrit0, + .doneCrit1, + .doneCrit2, + .doneCrit3 { + stroke: ${t.critBorderColor}; + fill: ${t.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: ${t.taskTextDarkColor} !important; + } + + /* Done-crit task text outside the bar — same reasoning as doneText above. */ + .doneCritText0.taskTextOutsideLeft, + .doneCritText0.taskTextOutsideRight, + .doneCritText1.taskTextOutsideLeft, + .doneCritText1.taskTextOutsideRight, + .doneCritText2.taskTextOutsideLeft, + .doneCritText2.taskTextOutsideRight, + .doneCritText3.taskTextOutsideLeft, + .doneCritText3.taskTextOutsideRight { + fill: ${t.taskTextOutsideColor} !important; + } + + .vert { + stroke: ${t.vertLineColor}; + } + + .vertText { + font-size: 15px; + text-anchor: middle; + fill: ${t.vertLineColor} !important; + } + + .activeCritText0, + .activeCritText1, + .activeCritText2, + .activeCritText3 { + fill: ${t.taskTextDarkColor} !important; + } + + .titleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.titleColor||t.textColor}; + font-family: ${t.fontFamily}; + } +`,"getStyles"),Ns=Hs,Bs={parser:Qi,db:Ls,renderer:Os,styles:Ns};export{Bs as diagram}; diff --git a/apps/kimi-code/dist-web/assets/ganttDiagram-NO4QXBWP-NYl4Z3R4.js b/apps/kimi-code/dist-web/assets/ganttDiagram-NO4QXBWP-NYl4Z3R4.js deleted file mode 100644 index 59cd6d1a0..000000000 --- a/apps/kimi-code/dist-web/assets/ganttDiagram-NO4QXBWP-NYl4Z3R4.js +++ /dev/null @@ -1,292 +0,0 @@ -import{bg as on,bh as On,bi as cn,bj as un,bk as ln,bl as ue,bm as Hn,g as Nn,s as Pn,o as Vn,n as Rn,a as zn,b as qn,_ as d,c as Yt,d as Zt,e as Bn,bn as it,l as Tt,k as Zn,j as Xn,p as Gn,x as jn}from"./mermaid.core-CgZTgv7Y.js";import{g as oe}from"./_commonjsHelpers-CqkleIqs.js";import{b as Qn,t as Ne,c as Jn,a as Kn,l as tr}from"./linear-DPKx2NhO.js";import{i as er}from"./init-Gi6I4Gst.js";import"./index-7SHxad1A.js";import"./defaultLocale-DX6XiGOO.js";function nr(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n=i)&&(n=i)}return n}function rr(t,e){let n;if(e===void 0)for(const r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of t)(i=e(i,++r,t))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function ir(t){return t}var Gt=1,le=2,xe=3,Xt=4,Pe=1e-6;function sr(t){return"translate("+t+",0)"}function ar(t){return"translate(0,"+t+")"}function or(t){return e=>+t(e)}function cr(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function ur(){return!this.__axis}function fn(t,e){var n=[],r=null,i=null,s=6,a=6,y=3,F=typeof window<"u"&&window.devicePixelRatio>1?0:.5,S=t===Gt||t===Xt?-1:1,w=t===Xt||t===le?"x":"y",P=t===Gt||t===xe?sr:ar;function _(Y){var X=r??(e.ticks?e.ticks.apply(e,n):e.domain()),B=i??(e.tickFormat?e.tickFormat.apply(e,n):ir),v=Math.max(s,0)+y,U=e.range(),R=+U[0]+F,E=+U[U.length-1]+F,z=(e.bandwidth?cr:or)(e.copy(),F),G=Y.selection?Y.selection():Y,T=G.selectAll(".domain").data([null]),k=G.selectAll(".tick").data(X,e).order(),p=k.exit(),L=k.enter().append("g").attr("class","tick"),x=k.select("line"),C=k.select("text");T=T.merge(T.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),k=k.merge(L),x=x.merge(L.append("line").attr("stroke","currentColor").attr(w+"2",S*s)),C=C.merge(L.append("text").attr("fill","currentColor").attr(w,S*v).attr("dy",t===Gt?"0em":t===xe?"0.71em":"0.32em")),Y!==G&&(T=T.transition(Y),k=k.transition(Y),x=x.transition(Y),C=C.transition(Y),p=p.transition(Y).attr("opacity",Pe).attr("transform",function(M){return isFinite(M=z(M))?P(M+F):this.getAttribute("transform")}),L.attr("opacity",Pe).attr("transform",function(M){var D=this.parentNode.__axis;return P((D&&isFinite(D=D(M))?D:z(M))+F)})),p.remove(),T.attr("d",t===Xt||t===le?a?"M"+S*a+","+R+"H"+F+"V"+E+"H"+S*a:"M"+F+","+R+"V"+E:a?"M"+R+","+S*a+"V"+F+"H"+E+"V"+S*a:"M"+R+","+F+"H"+E),k.attr("opacity",1).attr("transform",function(M){return P(z(M)+F)}),x.attr(w+"2",S*s),C.attr(w,S*v).text(B),G.filter(ur).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===le?"start":t===Xt?"end":"middle"),G.each(function(){this.__axis=z})}return _.scale=function(Y){return arguments.length?(e=Y,_):e},_.ticks=function(){return n=Array.from(arguments),_},_.tickArguments=function(Y){return arguments.length?(n=Y==null?[]:Array.from(Y),_):n.slice()},_.tickValues=function(Y){return arguments.length?(r=Y==null?null:Array.from(Y),_):r&&r.slice()},_.tickFormat=function(Y){return arguments.length?(i=Y,_):i},_.tickSize=function(Y){return arguments.length?(s=a=+Y,_):s},_.tickSizeInner=function(Y){return arguments.length?(s=+Y,_):s},_.tickSizeOuter=function(Y){return arguments.length?(a=+Y,_):a},_.tickPadding=function(Y){return arguments.length?(y=+Y,_):y},_.offset=function(Y){return arguments.length?(F=+Y,_):F},_}function lr(t){return fn(Gt,t)}function fr(t){return fn(xe,t)}const dr=Math.PI/180,hr=180/Math.PI,ne=18,dn=.96422,hn=1,mn=.82521,gn=4/29,Ft=6/29,yn=3*Ft*Ft,mr=Ft*Ft*Ft;function kn(t){if(t instanceof ft)return new ft(t.l,t.a,t.b,t.opacity);if(t instanceof ht)return pn(t);t instanceof on||(t=On(t));var e=me(t.r),n=me(t.g),r=me(t.b),i=fe((.2225045*e+.7168786*n+.0606169*r)/hn),s,a;return e===n&&n===r?s=a=i:(s=fe((.4360747*e+.3850649*n+.1430804*r)/dn),a=fe((.0139322*e+.0971045*n+.7141733*r)/mn)),new ft(116*i-16,500*(s-i),200*(i-a),t.opacity)}function gr(t,e,n,r){return arguments.length===1?kn(t):new ft(t,e,n,r??1)}function ft(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}cn(ft,gr,un(ln,{brighter(t){return new ft(this.l+ne*(t??1),this.a,this.b,this.opacity)},darker(t){return new ft(this.l-ne*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return e=dn*de(e),t=hn*de(t),n=mn*de(n),new on(he(3.1338561*e-1.6168667*t-.4906146*n),he(-.9787684*e+1.9161415*t+.033454*n),he(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}}));function fe(t){return t>mr?Math.pow(t,1/3):t/yn+gn}function de(t){return t>Ft?t*t*t:yn*(t-gn)}function he(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function me(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function yr(t){if(t instanceof ht)return new ht(t.h,t.c,t.l,t.opacity);if(t instanceof ft||(t=kn(t)),t.a===0&&t.b===0)return new ht(NaN,0(t(s=new Date(+s)),s),i.ceil=s=>(t(s=new Date(s-1)),e(s,1),t(s),s),i.round=s=>{const a=i(s),y=i.ceil(s);return s-a(e(s=new Date(+s),a==null?1:Math.floor(a)),s),i.range=(s,a,y)=>{const F=[];if(s=i.ceil(s),y=y==null?1:Math.floor(y),!(s0))return F;let S;do F.push(S=new Date(+s)),e(s,y),t(s);while(Snt(a=>{if(a>=a)for(;t(a),!s(a);)a.setTime(a-1)},(a,y)=>{if(a>=a)if(y<0)for(;++y<=0;)for(;e(a,-1),!s(a););else for(;--y>=0;)for(;e(a,1),!s(a););}),n&&(i.count=(s,a)=>(ge.setTime(+s),ye.setTime(+a),t(ge),t(ye),Math.floor(n(ge,ye))),i.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?i.filter(r?a=>r(a)%s===0:a=>i.count(0,a)%s===0):i)),i}const Et=nt(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);Et.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?nt(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):Et);Et.range;const mt=1e3,ct=mt*60,gt=ct*60,yt=gt*24,Se=yt*7,Ve=yt*30,ke=yt*365,vt=nt(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*mt)},(t,e)=>(e-t)/mt,t=>t.getUTCSeconds());vt.range;const Nt=nt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*mt)},(t,e)=>{t.setTime(+t+e*ct)},(t,e)=>(e-t)/ct,t=>t.getMinutes());Nt.range;const Tr=nt(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*ct)},(t,e)=>(e-t)/ct,t=>t.getUTCMinutes());Tr.range;const Pt=nt(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*mt-t.getMinutes()*ct)},(t,e)=>{t.setTime(+t+e*gt)},(t,e)=>(e-t)/gt,t=>t.getHours());Pt.range;const xr=nt(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*gt)},(t,e)=>(e-t)/gt,t=>t.getUTCHours());xr.range;const xt=nt(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*ct)/yt,t=>t.getDate()-1);xt.range;const _e=nt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/yt,t=>t.getUTCDate()-1);_e.range;const br=nt(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/yt,t=>Math.floor(t/yt));br.range;function Dt(t){return nt(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*ct)/Se)}const zt=Dt(0),Vt=Dt(1),vn=Dt(2),Tn=Dt(3),bt=Dt(4),xn=Dt(5),bn=Dt(6);zt.range;Vt.range;vn.range;Tn.range;bt.range;xn.range;bn.range;function Mt(t){return nt(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/Se)}const wn=Mt(0),re=Mt(1),wr=Mt(2),Dr=Mt(3),It=Mt(4),Mr=Mt(5),Cr=Mt(6);wn.range;re.range;wr.range;Dr.range;It.range;Mr.range;Cr.range;const Rt=nt(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());Rt.range;const Sr=nt(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());Sr.range;const kt=nt(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());kt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:nt(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});kt.range;const wt=nt(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());wt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:nt(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});wt.range;function _r(t,e,n,r,i,s){const a=[[vt,1,mt],[vt,5,5*mt],[vt,15,15*mt],[vt,30,30*mt],[s,1,ct],[s,5,5*ct],[s,15,15*ct],[s,30,30*ct],[i,1,gt],[i,3,3*gt],[i,6,6*gt],[i,12,12*gt],[r,1,yt],[r,2,2*yt],[n,1,Se],[e,1,Ve],[e,3,3*Ve],[t,1,ke]];function y(S,w,P){const _=wv).right(a,_);if(Y===a.length)return t.every(Ne(S/ke,w/ke,P));if(Y===0)return Et.every(Math.max(Ne(S,w,P),1));const[X,B]=a[_/a[Y-1][2]53)return null;"w"in f||(f.w=1),"Z"in f?(A=ve($t(f.y,0,1)),Q=A.getUTCDay(),A=Q>4||Q===0?re.ceil(A):re(A),A=_e.offset(A,(f.V-1)*7),f.y=A.getUTCFullYear(),f.m=A.getUTCMonth(),f.d=A.getUTCDate()+(f.w+6)%7):(A=pe($t(f.y,0,1)),Q=A.getDay(),A=Q>4||Q===0?Vt.ceil(A):Vt(A),A=xt.offset(A,(f.V-1)*7),f.y=A.getFullYear(),f.m=A.getMonth(),f.d=A.getDate()+(f.w+6)%7)}else("W"in f||"U"in f)&&("w"in f||(f.w="u"in f?f.u%7:"W"in f?1:0),Q="Z"in f?ve($t(f.y,0,1)).getUTCDay():pe($t(f.y,0,1)).getDay(),f.m=0,f.d="W"in f?(f.w+6)%7+f.W*7-(Q+5)%7:f.w+f.U*7-(Q+6)%7);return"Z"in f?(f.H+=f.Z/100|0,f.M+=f.Z%100,ve(f)):pe(f)}}function p(h,N,V,f){for(var tt=0,A=N.length,Q=V.length,Z,st;tt=Q)return-1;if(Z=N.charCodeAt(tt++),Z===37){if(Z=N.charAt(tt++),st=G[Z in Re?N.charAt(tt++):Z],!st||(f=st(h,V,f))<0)return-1}else if(Z!=V.charCodeAt(f++))return-1}return f}function L(h,N,V){var f=S.exec(N.slice(V));return f?(h.p=w.get(f[0].toLowerCase()),V+f[0].length):-1}function x(h,N,V){var f=Y.exec(N.slice(V));return f?(h.w=X.get(f[0].toLowerCase()),V+f[0].length):-1}function C(h,N,V){var f=P.exec(N.slice(V));return f?(h.w=_.get(f[0].toLowerCase()),V+f[0].length):-1}function M(h,N,V){var f=U.exec(N.slice(V));return f?(h.m=R.get(f[0].toLowerCase()),V+f[0].length):-1}function D(h,N,V){var f=B.exec(N.slice(V));return f?(h.m=v.get(f[0].toLowerCase()),V+f[0].length):-1}function c(h,N,V){return p(h,e,N,V)}function g(h,N,V){return p(h,n,N,V)}function b(h,N,V){return p(h,r,N,V)}function m(h){return a[h.getDay()]}function I(h){return s[h.getDay()]}function o(h){return F[h.getMonth()]}function W(h){return y[h.getMonth()]}function u(h){return i[+(h.getHours()>=12)]}function K(h){return 1+~~(h.getMonth()/3)}function l(h){return a[h.getUTCDay()]}function $(h){return s[h.getUTCDay()]}function O(h){return F[h.getUTCMonth()]}function j(h){return y[h.getUTCMonth()]}function H(h){return i[+(h.getUTCHours()>=12)]}function J(h){return 1+~~(h.getUTCMonth()/3)}return{format:function(h){var N=T(h+="",E);return N.toString=function(){return h},N},parse:function(h){var N=k(h+="",!1);return N.toString=function(){return h},N},utcFormat:function(h){var N=T(h+="",z);return N.toString=function(){return h},N},utcParse:function(h){var N=k(h+="",!0);return N.toString=function(){return h},N}}}var Re={"-":"",_:" ",0:"0"},rt=/^\s*\d+/,Er=/^%/,Ir=/[\\^$*+?|[\]().{}]/g;function q(t,e,n){var r=t<0?"-":"",i=(r?-t:t)+"",s=i.length;return r+(s[e.toLowerCase(),n]))}function Ar(t,e,n){var r=rt.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function Wr(t,e,n){var r=rt.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function $r(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function Or(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function Hr(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function ze(t,e,n){var r=rt.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function qe(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Nr(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Pr(t,e,n){var r=rt.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function Vr(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Be(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function Rr(t,e,n){var r=rt.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Ze(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function zr(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function qr(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function Br(t,e,n){var r=rt.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function Zr(t,e,n){var r=rt.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Xr(t,e,n){var r=Er.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function Gr(t,e,n){var r=rt.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function jr(t,e,n){var r=rt.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Xe(t,e){return q(t.getDate(),e,2)}function Qr(t,e){return q(t.getHours(),e,2)}function Jr(t,e){return q(t.getHours()%12||12,e,2)}function Kr(t,e){return q(1+xt.count(kt(t),t),e,3)}function Dn(t,e){return q(t.getMilliseconds(),e,3)}function ti(t,e){return Dn(t,e)+"000"}function ei(t,e){return q(t.getMonth()+1,e,2)}function ni(t,e){return q(t.getMinutes(),e,2)}function ri(t,e){return q(t.getSeconds(),e,2)}function ii(t){var e=t.getDay();return e===0?7:e}function si(t,e){return q(zt.count(kt(t)-1,t),e,2)}function Mn(t){var e=t.getDay();return e>=4||e===0?bt(t):bt.ceil(t)}function ai(t,e){return t=Mn(t),q(bt.count(kt(t),t)+(kt(t).getDay()===4),e,2)}function oi(t){return t.getDay()}function ci(t,e){return q(Vt.count(kt(t)-1,t),e,2)}function ui(t,e){return q(t.getFullYear()%100,e,2)}function li(t,e){return t=Mn(t),q(t.getFullYear()%100,e,2)}function fi(t,e){return q(t.getFullYear()%1e4,e,4)}function di(t,e){var n=t.getDay();return t=n>=4||n===0?bt(t):bt.ceil(t),q(t.getFullYear()%1e4,e,4)}function hi(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+q(e/60|0,"0",2)+q(e%60,"0",2)}function Ge(t,e){return q(t.getUTCDate(),e,2)}function mi(t,e){return q(t.getUTCHours(),e,2)}function gi(t,e){return q(t.getUTCHours()%12||12,e,2)}function yi(t,e){return q(1+_e.count(wt(t),t),e,3)}function Cn(t,e){return q(t.getUTCMilliseconds(),e,3)}function ki(t,e){return Cn(t,e)+"000"}function pi(t,e){return q(t.getUTCMonth()+1,e,2)}function vi(t,e){return q(t.getUTCMinutes(),e,2)}function Ti(t,e){return q(t.getUTCSeconds(),e,2)}function xi(t){var e=t.getUTCDay();return e===0?7:e}function bi(t,e){return q(wn.count(wt(t)-1,t),e,2)}function Sn(t){var e=t.getUTCDay();return e>=4||e===0?It(t):It.ceil(t)}function wi(t,e){return t=Sn(t),q(It.count(wt(t),t)+(wt(t).getUTCDay()===4),e,2)}function Di(t){return t.getUTCDay()}function Mi(t,e){return q(re.count(wt(t)-1,t),e,2)}function Ci(t,e){return q(t.getUTCFullYear()%100,e,2)}function Si(t,e){return t=Sn(t),q(t.getUTCFullYear()%100,e,2)}function _i(t,e){return q(t.getUTCFullYear()%1e4,e,4)}function Yi(t,e){var n=t.getUTCDay();return t=n>=4||n===0?It(t):It.ceil(t),q(t.getUTCFullYear()%1e4,e,4)}function Fi(){return"+0000"}function je(){return"%"}function Qe(t){return+t}function Je(t){return Math.floor(+t/1e3)}var St,ie;Ui({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"]});function Ui(t){return St=Ur(t),ie=St.format,St.parse,St.utcFormat,St.utcParse,St}function Ei(t){return new Date(t)}function Ii(t){return t instanceof Date?+t:+new Date(+t)}function _n(t,e,n,r,i,s,a,y,F,S){var w=Jn(),P=w.invert,_=w.domain,Y=S(".%L"),X=S(":%S"),B=S("%I:%M"),v=S("%I %p"),U=S("%a %d"),R=S("%b %d"),E=S("%B"),z=S("%Y");function G(T){return(F(T)4&&(Y+=7),_.add(Y,n));return X.diff(B,"week")+1},y.isoWeekday=function(S){return this.$utils().u(S)?this.day()||7:this.day(this.day()%7?S:S-7)};var F=y.startOf;y.startOf=function(S,w){var P=this.$utils(),_=!!P.u(w)||w;return P.p(S)==="isoweek"?_?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):F.bind(this)(S,w)}}}))})(jt)),jt.exports}var $i=Wi();const Oi=oe($i);var Qt={exports:{}},Hi=Qt.exports,tn;function Ni(){return tn||(tn=1,(function(t,e){(function(n,r){t.exports=r()})(Hi,(function(){var n={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"},r=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,i=/\d/,s=/\d\d/,a=/\d\d?/,y=/\d*[^-_:/,()\s\d]+/,F={},S=function(v){return(v=+v)+(v>68?1900:2e3)},w=function(v){return function(U){this[v]=+U}},P=[/[+-]\d\d:?(\d\d)?|Z/,function(v){(this.zone||(this.zone={})).offset=(function(U){if(!U||U==="Z")return 0;var R=U.match(/([+-]|\d\d)/g),E=60*R[1]+(+R[2]||0);return E===0?0:R[0]==="+"?-E:E})(v)}],_=function(v){var U=F[v];return U&&(U.indexOf?U:U.s.concat(U.f))},Y=function(v,U){var R,E=F.meridiem;if(E){for(var z=1;z<=24;z+=1)if(v.indexOf(E(z,0,U))>-1){R=z>12;break}}else R=v===(U?"pm":"PM");return R},X={A:[y,function(v){this.afternoon=Y(v,!1)}],a:[y,function(v){this.afternoon=Y(v,!0)}],Q:[i,function(v){this.month=3*(v-1)+1}],S:[i,function(v){this.milliseconds=100*+v}],SS:[s,function(v){this.milliseconds=10*+v}],SSS:[/\d{3}/,function(v){this.milliseconds=+v}],s:[a,w("seconds")],ss:[a,w("seconds")],m:[a,w("minutes")],mm:[a,w("minutes")],H:[a,w("hours")],h:[a,w("hours")],HH:[a,w("hours")],hh:[a,w("hours")],D:[a,w("day")],DD:[s,w("day")],Do:[y,function(v){var U=F.ordinal,R=v.match(/\d+/);if(this.day=R[0],U)for(var E=1;E<=31;E+=1)U(E).replace(/\[|\]/g,"")===v&&(this.day=E)}],w:[a,w("week")],ww:[s,w("week")],M:[a,w("month")],MM:[s,w("month")],MMM:[y,function(v){var U=_("months"),R=(_("monthsShort")||U.map((function(E){return E.slice(0,3)}))).indexOf(v)+1;if(R<1)throw new Error;this.month=R%12||R}],MMMM:[y,function(v){var U=_("months").indexOf(v)+1;if(U<1)throw new Error;this.month=U%12||U}],Y:[/[+-]?\d+/,w("year")],YY:[s,function(v){this.year=S(v)}],YYYY:[/\d{4}/,w("year")],Z:P,ZZ:P};function B(v){var U,R;U=v,R=F&&F.formats;for(var E=(v=U.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(x,C,M){var D=M&&M.toUpperCase();return C||R[M]||n[M]||R[D].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(c,g,b){return g||b.slice(1)}))}))).match(r),z=E.length,G=0;G-1)return new Date((I==="X"?1e3:1)*m);var u=B(I)(m),K=u.year,l=u.month,$=u.day,O=u.hours,j=u.minutes,H=u.seconds,J=u.milliseconds,h=u.zone,N=u.week,V=new Date,f=$||(K||l?1:V.getDate()),tt=K||V.getFullYear(),A=0;K&&!l||(A=l>0?l-1:V.getMonth());var Q,Z=O||0,st=j||0,at=H||0,pt=J||0;return h?new Date(Date.UTC(tt,A,f,Z,st,at,pt+60*h.offset*1e3)):o?new Date(Date.UTC(tt,A,f,Z,st,at,pt)):(Q=new Date(tt,A,f,Z,st,at,pt),N&&(Q=W(Q).week(N).toDate()),Q)}catch{return new Date("")}})(T,L,k,R),this.init(),D&&D!==!0&&(this.$L=this.locale(D).$L),M&&T!=this.format(L)&&(this.$d=new Date("")),F={}}else if(L instanceof Array)for(var c=L.length,g=1;g<=c;g+=1){p[1]=L[g-1];var b=R.apply(this,p);if(b.isValid()){this.$d=b.$d,this.$L=b.$L,this.init();break}g===c&&(this.$d=new Date(""))}else z.call(this,G)}}}))})(Qt)),Qt.exports}var Pi=Ni();const Vi=oe(Pi);var Jt={exports:{}},Ri=Jt.exports,en;function zi(){return en||(en=1,(function(t,e){(function(n,r){t.exports=r()})(Ri,(function(){return function(n,r){var i=r.prototype,s=i.format;i.format=function(a){var y=this,F=this.$locale();if(!this.isValid())return s.bind(this)(a);var S=this.$utils(),w=(a||"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(P){switch(P){case"Q":return Math.ceil((y.$M+1)/3);case"Do":return F.ordinal(y.$D);case"gggg":return y.weekYear();case"GGGG":return y.isoWeekYear();case"wo":return F.ordinal(y.week(),"W");case"w":case"ww":return S.s(y.week(),P==="w"?1:2,"0");case"W":case"WW":return S.s(y.isoWeek(),P==="W"?1:2,"0");case"k":case"kk":return S.s(String(y.$H===0?24:y.$H),P==="k"?1:2,"0");case"X":return Math.floor(y.$d.getTime()/1e3);case"x":return y.$d.getTime();case"z":return"["+y.offsetName()+"]";case"zzz":return"["+y.offsetName("long")+"]";default:return P}}));return s.bind(this)(w)}}}))})(Jt)),Jt.exports}var qi=zi();const Bi=oe(qi);var Kt={exports:{}},Zi=Kt.exports,nn;function Xi(){return nn||(nn=1,(function(t,e){(function(n,r){t.exports=r()})(Zi,(function(){var n,r,i=1e3,s=6e4,a=36e5,y=864e5,F=31536e6,S=2628e6,w=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,P=/\[([^\]]+)]|YYYY|YY|Y|M{1,2}|D{1,2}|H{1,2}|m{1,2}|s{1,2}|SSS/g,_={years:F,months:S,days:y,hours:a,minutes:s,seconds:i,milliseconds:1,weeks:6048e5},Y=function(T){return T instanceof z},X=function(T,k,p){return new z(T,p,k.$l)},B=function(T){return r.p(T)+"s"},v=function(T){return T<0},U=function(T){return v(T)?Math.ceil(T):Math.floor(T)},R=function(T){return Math.abs(T)},E=function(T,k){return T?v(T)?{negative:!0,format:""+R(T)+k}:{negative:!1,format:""+T+k}:{negative:!1,format:""}},z=(function(){function T(p,L,x){var C=this;if(this.$d={},this.$l=x,p===void 0&&(this.$ms=0,this.parseFromMilliseconds()),L)return X(p*_[B(L)],this);if(typeof p=="number")return this.$ms=p,this.parseFromMilliseconds(),this;if(typeof p=="object")return Object.keys(p).forEach((function(c){C.$d[B(c)]=p[c]})),this.calMilliseconds(),this;if(typeof p=="string"){var M=p.match(w);if(M){var D=M.slice(2).map((function(c){return c!=null?Number(c):0}));return this.$d.years=D[0],this.$d.months=D[1],this.$d.weeks=D[2],this.$d.days=D[3],this.$d.hours=D[4],this.$d.minutes=D[5],this.$d.seconds=D[6],this.calMilliseconds(),this}}return this}var k=T.prototype;return k.calMilliseconds=function(){var p=this;this.$ms=Object.keys(this.$d).reduce((function(L,x){return L+(p.$d[x]||0)*_[x]}),0)},k.parseFromMilliseconds=function(){var p=this.$ms;this.$d.years=U(p/F),p%=F,this.$d.months=U(p/S),p%=S,this.$d.days=U(p/y),p%=y,this.$d.hours=U(p/a),p%=a,this.$d.minutes=U(p/s),p%=s,this.$d.seconds=U(p/i),p%=i,this.$d.milliseconds=p},k.toISOString=function(){var p=E(this.$d.years,"Y"),L=E(this.$d.months,"M"),x=+this.$d.days||0;this.$d.weeks&&(x+=7*this.$d.weeks);var C=E(x,"D"),M=E(this.$d.hours,"H"),D=E(this.$d.minutes,"M"),c=this.$d.seconds||0;this.$d.milliseconds&&(c+=this.$d.milliseconds/1e3,c=Math.round(1e3*c)/1e3);var g=E(c,"S"),b=p.negative||L.negative||C.negative||M.negative||D.negative||g.negative,m=M.format||D.format||g.format?"T":"",I=(b?"-":"")+"P"+p.format+L.format+C.format+m+M.format+D.format+g.format;return I==="P"||I==="-P"?"P0D":I},k.toJSON=function(){return this.toISOString()},k.format=function(p){var L=p||"YYYY-MM-DDTHH:mm:ss",x={Y:this.$d.years,YY:r.s(this.$d.years,2,"0"),YYYY:r.s(this.$d.years,4,"0"),M:this.$d.months,MM:r.s(this.$d.months,2,"0"),D:this.$d.days,DD:r.s(this.$d.days,2,"0"),H:this.$d.hours,HH:r.s(this.$d.hours,2,"0"),m:this.$d.minutes,mm:r.s(this.$d.minutes,2,"0"),s:this.$d.seconds,ss:r.s(this.$d.seconds,2,"0"),SSS:r.s(this.$d.milliseconds,3,"0")};return L.replace(P,(function(C,M){return M||String(x[C])}))},k.as=function(p){return this.$ms/_[B(p)]},k.get=function(p){var L=this.$ms,x=B(p);return x==="milliseconds"?L%=1e3:L=x==="weeks"?U(L/_[x]):this.$d[x],L||0},k.add=function(p,L,x){var C;return C=L?p*_[B(L)]:Y(p)?p.$ms:X(p,this).$ms,X(this.$ms+C*(x?-1:1),this)},k.subtract=function(p,L){return this.add(p,L,!0)},k.locale=function(p){var L=this.clone();return L.$l=p,L},k.clone=function(){return X(this.$ms,this)},k.humanize=function(p){return n().add(this.$ms,"ms").locale(this.$l).fromNow(!p)},k.valueOf=function(){return this.asMilliseconds()},k.milliseconds=function(){return this.get("milliseconds")},k.asMilliseconds=function(){return this.as("milliseconds")},k.seconds=function(){return this.get("seconds")},k.asSeconds=function(){return this.as("seconds")},k.minutes=function(){return this.get("minutes")},k.asMinutes=function(){return this.as("minutes")},k.hours=function(){return this.get("hours")},k.asHours=function(){return this.as("hours")},k.days=function(){return this.get("days")},k.asDays=function(){return this.as("days")},k.weeks=function(){return this.get("weeks")},k.asWeeks=function(){return this.as("weeks")},k.months=function(){return this.get("months")},k.asMonths=function(){return this.as("months")},k.years=function(){return this.get("years")},k.asYears=function(){return this.as("years")},T})(),G=function(T,k,p){return T.add(k.years()*p,"y").add(k.months()*p,"M").add(k.days()*p,"d").add(k.hours()*p,"h").add(k.minutes()*p,"m").add(k.seconds()*p,"s").add(k.milliseconds()*p,"ms")};return function(T,k,p){n=p,r=p().$utils(),p.duration=function(C,M){var D=p.locale();return X(C,{$l:D},M)},p.isDuration=Y;var L=k.prototype.add,x=k.prototype.subtract;k.prototype.add=function(C,M){return Y(C)?G(this,C,1):L.bind(this)(C,M)},k.prototype.subtract=function(C,M){return Y(C)?G(this,C,-1):x.bind(this)(C,M)}}}))})(Kt)),Kt.exports}var Gi=Xi();const ji=oe(Gi);var we=(function(){var t=d(function(D,c,g,b){for(g=g||{},b=D.length;b--;g[D[b]]=c);return g},"o"),e=[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],n=[1,26],r=[1,27],i=[1,28],s=[1,29],a=[1,30],y=[1,31],F=[1,32],S=[1,33],w=[1,34],P=[1,9],_=[1,10],Y=[1,11],X=[1,12],B=[1,13],v=[1,14],U=[1,15],R=[1,16],E=[1,19],z=[1,20],G=[1,21],T=[1,22],k=[1,23],p=[1,25],L=[1,35],x={trace:d(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:d(function(c,g,b,m,I,o,W){var u=o.length-1;switch(I){case 1:return o[u-1];case 2:this.$=[];break;case 3:o[u-1].push(o[u]),this.$=o[u-1];break;case 4:case 5:this.$=o[u];break;case 6:case 7:this.$=[];break;case 8:m.setWeekday("monday");break;case 9:m.setWeekday("tuesday");break;case 10:m.setWeekday("wednesday");break;case 11:m.setWeekday("thursday");break;case 12:m.setWeekday("friday");break;case 13:m.setWeekday("saturday");break;case 14:m.setWeekday("sunday");break;case 15:m.setWeekend("friday");break;case 16:m.setWeekend("saturday");break;case 17:m.setDateFormat(o[u].substr(11)),this.$=o[u].substr(11);break;case 18:m.enableInclusiveEndDates(),this.$=o[u].substr(18);break;case 19:m.TopAxis(),this.$=o[u].substr(8);break;case 20:m.setAxisFormat(o[u].substr(11)),this.$=o[u].substr(11);break;case 21:m.setTickInterval(o[u].substr(13)),this.$=o[u].substr(13);break;case 22:m.setExcludes(o[u].substr(9)),this.$=o[u].substr(9);break;case 23:m.setIncludes(o[u].substr(9)),this.$=o[u].substr(9);break;case 24:m.setTodayMarker(o[u].substr(12)),this.$=o[u].substr(12);break;case 27:m.setDiagramTitle(o[u].substr(6)),this.$=o[u].substr(6);break;case 28:this.$=o[u].trim(),m.setAccTitle(this.$);break;case 29:case 30:this.$=o[u].trim(),m.setAccDescription(this.$);break;case 31:m.addSection(o[u].substr(8)),this.$=o[u].substr(8);break;case 33:m.addTask(o[u-1],o[u]),this.$="task";break;case 34:this.$=o[u-1],m.setClickEvent(o[u-1],o[u],null);break;case 35:this.$=o[u-2],m.setClickEvent(o[u-2],o[u-1],o[u]);break;case 36:this.$=o[u-2],m.setClickEvent(o[u-2],o[u-1],null),m.setLink(o[u-2],o[u]);break;case 37:this.$=o[u-3],m.setClickEvent(o[u-3],o[u-2],o[u-1]),m.setLink(o[u-3],o[u]);break;case 38:this.$=o[u-2],m.setClickEvent(o[u-2],o[u],null),m.setLink(o[u-2],o[u-1]);break;case 39:this.$=o[u-3],m.setClickEvent(o[u-3],o[u-1],o[u]),m.setLink(o[u-3],o[u-2]);break;case 40:this.$=o[u-1],m.setLink(o[u-1],o[u]);break;case 41:case 47:this.$=o[u-1]+" "+o[u];break;case 42:case 43:case 45:this.$=o[u-2]+" "+o[u-1]+" "+o[u];break;case 44:case 46:this.$=o[u-3]+" "+o[u-2]+" "+o[u-1]+" "+o[u];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:n,13:r,14:i,15:s,16:a,17:y,18:F,19:18,20:S,21:w,22:P,23:_,24:Y,25:X,26:B,27:v,28:U,29:R,30:E,31:z,33:G,35:T,36:k,37:24,38:p,40:L},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:36,11:17,12:n,13:r,14:i,15:s,16:a,17:y,18:F,19:18,20:S,21:w,22:P,23:_,24:Y,25:X,26:B,27:v,28:U,29:R,30:E,31:z,33:G,35:T,36:k,37:24,38:p,40:L},t(e,[2,5]),t(e,[2,6]),t(e,[2,17]),t(e,[2,18]),t(e,[2,19]),t(e,[2,20]),t(e,[2,21]),t(e,[2,22]),t(e,[2,23]),t(e,[2,24]),t(e,[2,25]),t(e,[2,26]),t(e,[2,27]),{32:[1,37]},{34:[1,38]},t(e,[2,30]),t(e,[2,31]),t(e,[2,32]),{39:[1,39]},t(e,[2,8]),t(e,[2,9]),t(e,[2,10]),t(e,[2,11]),t(e,[2,12]),t(e,[2,13]),t(e,[2,14]),t(e,[2,15]),t(e,[2,16]),{41:[1,40],43:[1,41]},t(e,[2,4]),t(e,[2,28]),t(e,[2,29]),t(e,[2,33]),t(e,[2,34],{42:[1,42],43:[1,43]}),t(e,[2,40],{41:[1,44]}),t(e,[2,35],{43:[1,45]}),t(e,[2,36]),t(e,[2,38],{42:[1,46]}),t(e,[2,37]),t(e,[2,39])],defaultActions:{},parseError:d(function(c,g){if(g.recoverable)this.trace(c);else{var b=new Error(c);throw b.hash=g,b}},"parseError"),parse:d(function(c){var g=this,b=[0],m=[],I=[null],o=[],W=this.table,u="",K=0,l=0,$=2,O=1,j=o.slice.call(arguments,1),H=Object.create(this.lexer),J={yy:{}};for(var h in this.yy)Object.prototype.hasOwnProperty.call(this.yy,h)&&(J.yy[h]=this.yy[h]);H.setInput(c,J.yy),J.yy.lexer=H,J.yy.parser=this,typeof H.yylloc>"u"&&(H.yylloc={});var N=H.yylloc;o.push(N);var V=H.options&&H.options.ranges;typeof J.yy.parseError=="function"?this.parseError=J.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function f(ot){b.length=b.length-2*ot,I.length=I.length-ot,o.length=o.length-ot}d(f,"popStack");function tt(){var ot;return ot=m.pop()||H.lex()||O,typeof ot!="number"&&(ot instanceof Array&&(m=ot,ot=m.pop()),ot=g.symbols_[ot]||ot),ot}d(tt,"lex");for(var A,Q,Z,st,at={},pt,ut,He,Bt;;){if(Q=b[b.length-1],this.defaultActions[Q]?Z=this.defaultActions[Q]:((A===null||typeof A>"u")&&(A=tt()),Z=W[Q]&&W[Q][A]),typeof Z>"u"||!Z.length||!Z[0]){var ce="";Bt=[];for(pt in W[Q])this.terminals_[pt]&&pt>$&&Bt.push("'"+this.terminals_[pt]+"'");H.showPosition?ce="Parse error on line "+(K+1)+`: -`+H.showPosition()+` -Expecting `+Bt.join(", ")+", got '"+(this.terminals_[A]||A)+"'":ce="Parse error on line "+(K+1)+": Unexpected "+(A==O?"end of input":"'"+(this.terminals_[A]||A)+"'"),this.parseError(ce,{text:H.match,token:this.terminals_[A]||A,line:H.yylineno,loc:N,expected:Bt})}if(Z[0]instanceof Array&&Z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Q+", token: "+A);switch(Z[0]){case 1:b.push(A),I.push(H.yytext),o.push(H.yylloc),b.push(Z[1]),A=null,l=H.yyleng,u=H.yytext,K=H.yylineno,N=H.yylloc;break;case 2:if(ut=this.productions_[Z[1]][1],at.$=I[I.length-ut],at._$={first_line:o[o.length-(ut||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(ut||1)].first_column,last_column:o[o.length-1].last_column},V&&(at._$.range=[o[o.length-(ut||1)].range[0],o[o.length-1].range[1]]),st=this.performAction.apply(at,[u,l,K,J.yy,Z[1],I,o].concat(j)),typeof st<"u")return st;ut&&(b=b.slice(0,-1*ut*2),I=I.slice(0,-1*ut),o=o.slice(0,-1*ut)),b.push(this.productions_[Z[1]][0]),I.push(at.$),o.push(at._$),He=W[b[b.length-2]][b[b.length-1]],b.push(He);break;case 3:return!0}}return!0},"parse")},C=(function(){var D={EOF:1,parseError:d(function(g,b){if(this.yy.parser)this.yy.parser.parseError(g,b);else throw new Error(g)},"parseError"),setInput:d(function(c,g){return this.yy=g||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:d(function(){var c=this._input[0];this.yytext+=c,this.yyleng++,this.offset++,this.match+=c,this.matched+=c;var g=c.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),c},"input"),unput:d(function(c){var g=c.length,b=c.split(/(?:\r\n?|\n)/g);this._input=c+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-g),this.offset-=g;var m=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),b.length-1&&(this.yylineno-=b.length-1);var I=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:b?(b.length===m.length?this.yylloc.first_column:0)+m[m.length-b.length].length-b[0].length:this.yylloc.first_column-g},this.options.ranges&&(this.yylloc.range=[I[0],I[0]+this.yyleng-g]),this.yyleng=this.yytext.length,this},"unput"),more:d(function(){return this._more=!0,this},"more"),reject:d(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:d(function(c){this.unput(this.match.slice(c))},"less"),pastInput:d(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:d(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:d(function(){var c=this.pastInput(),g=new Array(c.length+1).join("-");return c+this.upcomingInput()+` -`+g+"^"},"showPosition"),test_match:d(function(c,g){var b,m,I;if(this.options.backtrack_lexer&&(I={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&&(I.yylloc.range=this.yylloc.range.slice(0))),m=c[0].match(/(?:\r\n?|\n).*/g),m&&(this.yylineno+=m.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:m?m[m.length-1].length-m[m.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],b=this.performAction.call(this,this.yy,this,g,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),b)return b;if(this._backtrack){for(var o in I)this[o]=I[o];return!1}return!1},"test_match"),next:d(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var c,g,b,m;this._more||(this.yytext="",this.match="");for(var I=this._currentRules(),o=0;og[0].length)){if(g=b,m=o,this.options.backtrack_lexer){if(c=this.test_match(b,I[o]),c!==!1)return c;if(this._backtrack){g=!1;continue}else return!1}else if(!this.options.flex)break}return g?(c=this.test_match(g,I[m]),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:d(function(){var g=this.next();return g||this.lex()},"lex"),begin:d(function(g){this.conditionStack.push(g)},"begin"),popState:d(function(){var g=this.conditionStack.length-1;return g>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:d(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:d(function(g){return g=this.conditionStack.length-1-Math.abs(g||0),g>=0?this.conditionStack[g]:"INITIAL"},"topState"),pushState:d(function(g){this.begin(g)},"pushState"),stateStackSize:d(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:d(function(g,b,m,I){switch(m){case 0:return this.begin("open_directive"),"open_directive";case 1:return this.begin("acc_title"),31;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),33;case 4:return this.popState(),"acc_descr_value";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 D})();x.lexer=C;function M(){this.yy={}}return d(M,"Parser"),M.prototype=x,x.Parser=M,new M})();we.parser=we;var Qi=we;it.extend(Oi);it.extend(Vi);it.extend(Bi);var rn={friday:5,saturday:6},lt="",Ye="",Fe=void 0,Ue="",Lt=[],At=[],Ee=new Map,Ie=[],se=[],Wt="",Le="",Yn=["active","done","crit","milestone","vert"],Ae=[],_t="",qt=!1,We=!1,$e="sunday",ae="saturday",De=0,Ji=d(function(){Ie=[],se=[],Wt="",Ae=[],te=0,Ce=void 0,ee=void 0,et=[],lt="",Ye="",Le="",Fe=void 0,Ue="",Lt=[],At=[],qt=!1,We=!1,De=0,Ee=new Map,_t="",Gn(),$e="sunday",ae="saturday"},"clear"),Ki=d(function(t){_t=t},"setDiagramId"),ts=d(function(t){Ye=t},"setAxisFormat"),es=d(function(){return Ye},"getAxisFormat"),ns=d(function(t){Fe=t},"setTickInterval"),rs=d(function(){return Fe},"getTickInterval"),is=d(function(t){Ue=t},"setTodayMarker"),ss=d(function(){return Ue},"getTodayMarker"),as=d(function(t){lt=t},"setDateFormat"),os=d(function(){qt=!0},"enableInclusiveEndDates"),cs=d(function(){return qt},"endDatesAreInclusive"),us=d(function(){We=!0},"enableTopAxis"),ls=d(function(){return We},"topAxisEnabled"),fs=d(function(t){Le=t},"setDisplayMode"),ds=d(function(){return Le},"getDisplayMode"),hs=d(function(){return lt},"getDateFormat"),Fn=d((t,e)=>{const n=e.toLowerCase().split(/[\s,]+/).filter(r=>r!=="");return[...new Set([...t,...n])]},"mergeTokens"),ms=d(function(t){Lt=Fn(Lt,t)},"setIncludes"),gs=d(function(){return Lt},"getIncludes"),ys=d(function(t){At=Fn(At,t)},"setExcludes"),ks=d(function(){return At},"getExcludes"),ps=d(function(){return Ee},"getLinks"),vs=d(function(t){Wt=t,Ie.push(t)},"addSection"),Ts=d(function(){return Ie},"getSections"),xs=d(function(){let t=sn();const e=10;let n=0;for(;!t&&ny))throw new Error("Failed to find a valid date that was not excluded by `excludes` after 10,000 iterations.");t=t.add(1,"d")}return[e,a]},"fixTaskDates"),Me=d(function(t,e,n){if(n=n.trim(),d(y=>{const F=y.trim();return F==="x"||F==="X"},"isTimestampFormat")(e)&&/^\d+$/.test(n))return new Date(Number(n));const s=/^after\s+(?[\d\w- ]+)/.exec(n);if(s!==null){let y=null;for(const S of s.groups.ids.split(" ")){let w=Ct(S);w!==void 0&&(!y||w.endTime>y.endTime)&&(y=w)}if(y)return y.endTime;const F=new Date;return F.setHours(0,0,0,0),F}let a=it(n,e.trim(),!0);if(a.isValid())return a.toDate();{Tt.debug("Invalid date:"+n),Tt.debug("With date format:"+e.trim());const y=new Date(n);if(y===void 0||isNaN(y.getTime())||y.getFullYear()<-1e4||y.getFullYear()>1e4)throw new Error("Invalid date:"+n);return y}},"getStartDate"),In=d(function(t){const e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return e!==null?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},"parseDuration"),Ln=d(function(t,e,n,r=!1){n=n.trim();const s=/^until\s+(?[\d\w- ]+)/.exec(n);if(s!==null){let w=null;for(const _ of s.groups.ids.split(" ")){let Y=Ct(_);Y!==void 0&&(!w||Y.startTime{window.open(n,"_self")}),Ee.set(r,n))}),Wn(t,"clickable")},"setLink"),Wn=d(function(t,e){t.split(",").forEach(function(n){let r=Ct(n);r!==void 0&&r.classes.push(e)})},"setClass"),Us=d(function(t,e,n){if(Yt().securityLevel!=="loose"||e===void 0)return;let r=[];if(typeof n=="string"){r=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let s=0;s{jn.runFunc(e,...r)})},"setClickFun"),$n=d(function(t,e){Ae.push(function(){const n=_t?`${_t}-${t}`:t,r=document.querySelector(`[id="${n}"]`);r!==null&&r.addEventListener("click",function(){e()})},function(){const n=_t?`${_t}-${t}`:t,r=document.querySelector(`[id="${n}-text"]`);r!==null&&r.addEventListener("click",function(){e()})})},"pushFun"),Es=d(function(t,e,n){t.split(",").forEach(function(r){Us(r,e,n)}),Wn(t,"clickable")},"setClickEvent"),Is=d(function(t){Ae.forEach(function(e){e(t)})},"bindFunctions"),Ls={getConfig:d(()=>Yt().gantt,"getConfig"),clear:Ji,setDateFormat:as,getDateFormat:hs,enableInclusiveEndDates:os,endDatesAreInclusive:cs,enableTopAxis:us,topAxisEnabled:ls,setAxisFormat:ts,getAxisFormat:es,setTickInterval:ns,getTickInterval:rs,setTodayMarker:is,getTodayMarker:ss,setAccTitle:qn,getAccTitle:zn,setDiagramTitle:Rn,getDiagramTitle:Vn,setDiagramId:Ki,setDisplayMode:fs,getDisplayMode:ds,setAccDescription:Pn,getAccDescription:Nn,addSection:vs,getSections:Ts,getTasks:xs,addTask:_s,findTaskById:Ct,addTaskOrg:Ys,setIncludes:ms,getIncludes:gs,setExcludes:ys,getExcludes:ks,setClickEvent:Es,setLink:Fs,getLinks:ps,bindFunctions:Is,parseDuration:In,isInvalidDate:Un,setWeekday:bs,getWeekday:ws,setWeekend:Ds};function Oe(t,e,n){let r=!0;for(;r;)r=!1,n.forEach(function(i){const s="^\\s*"+i+"\\s*$",a=new RegExp(s);t[0].match(a)&&(e[i]=!0,t.shift(1),r=!0)})}d(Oe,"getTaskTags");it.extend(ji);var As=d(function(){Tt.debug("Something is calling, setConf, remove the call")},"setConf"),an={monday:Vt,tuesday:vn,wednesday:Tn,thursday:bt,friday:xn,saturday:bn,sunday:zt},Ws=d((t,e)=>{let n=[...t].map(()=>-1/0),r=[...t].sort((s,a)=>s.startTime-a.startTime||s.order-a.order),i=0;for(const s of r)for(let a=0;a=n[a]){n[a]=s.endTime,s.order=a+e,a>i&&(i=a);break}return i},"getMaxIntersections"),dt,Te=1e4,$s=d(function(t,e,n,r){const i=Yt().gantt;r.db.setDiagramId(e);const s=Yt().securityLevel;let a;s==="sandbox"&&(a=Zt("#i"+e));const y=s==="sandbox"?Zt(a.nodes()[0].contentDocument.body):Zt("body"),F=s==="sandbox"?a.nodes()[0].contentDocument:document,S=F.getElementById(e);dt=S.parentElement.offsetWidth,dt===void 0&&(dt=1200),i.useWidth!==void 0&&(dt=i.useWidth);const w=r.db.getTasks(),P=w.filter(x=>!x.vert);let _=[];for(const x of P)_.push(x.type);_=L(_);const Y={};let X=2*i.topPadding;if(r.db.getDisplayMode()==="compact"||i.displayMode==="compact"){const x={};for(const M of P)x[M.section]===void 0?x[M.section]=[M]:x[M.section].push(M);let C=0;for(const M of Object.keys(x)){const D=Ws(x[M],C)+1;C+=D,X+=D*(i.barHeight+i.barGap),Y[M]=D}}else{X+=P.length*(i.barHeight+i.barGap);for(const x of _)Y[x]=P.filter(C=>C.type===x).length}S.setAttribute("viewBox","0 0 "+dt+" "+X);const B=y.select(`[id="${e}"]`),v=Li().domain([rr(w,function(x){return x.startTime}),nr(w,function(x){return x.endTime})]).rangeRound([0,dt-i.leftPadding-i.rightPadding]);function U(x,C){const M=x.startTime,D=C.startTime;let c=0;return M>D?c=1:Ml.vert===$.vert?0:l.vert?1:-1);const m=x.filter(l=>!l.vert),o=[...new Set(m.map(l=>l.order))].map(l=>m.find($=>$.order===l));B.append("g").selectAll("rect").data(o).enter().append("rect").attr("x",0).attr("y",function(l,$){return $=l.order,$*C+M-2}).attr("width",function(){return b-i.rightPadding/2}).attr("height",C).attr("class",function(l){for(const[$,O]of _.entries())if(l.type===O)return"section section"+$%i.numberSectionStyles;return"section section0"}).enter();const W=B.append("g").selectAll("rect").data(x).enter(),u=r.db.getLinks();if(W.append("rect").attr("id",function(l){return e+"-"+l.id}).attr("rx",3).attr("ry",3).attr("x",function(l){return l.milestone?v(l.startTime)+D+.5*(v(l.endTime)-v(l.startTime))-.5*c:v(l.startTime)+D}).attr("y",function(l,$){return $=l.order,l.vert?i.gridLineStartPadding:$*C+M}).attr("width",function(l){return l.milestone?c:l.vert?.08*c:v(l.renderEndTime||l.endTime)-v(l.startTime)}).attr("height",function(l){return l.vert?m.length*(i.barHeight+i.barGap)+i.barHeight*2:c}).attr("transform-origin",function(l,$){return $=l.order,(v(l.startTime)+D+.5*(v(l.endTime)-v(l.startTime))).toString()+"px "+($*C+M+.5*c).toString()+"px"}).attr("class",function(l){const $="task";let O="";l.classes.length>0&&(O=l.classes.join(" "));let j=0;for(const[J,h]of _.entries())l.type===h&&(j=J%i.numberSectionStyles);let H="";return l.active?l.crit?H+=" activeCrit":H=" active":l.done?l.crit?H=" doneCrit":H=" done":l.crit&&(H+=" crit"),H.length===0&&(H=" task"),l.milestone&&(H=" milestone "+H),l.vert&&(H=" vert "+H),H+=j,H+=" "+O,$+H}),W.append("text").attr("id",function(l){return e+"-"+l.id+"-text"}).text(function(l){return l.task}).attr("font-size",i.fontSize).attr("x",function(l){let $=v(l.startTime),O=v(l.renderEndTime||l.endTime);if(l.milestone&&($+=.5*(v(l.endTime)-v(l.startTime))-.5*c,O=$+c),l.vert)return v(l.startTime)+D;const j=this.getBBox().width;return j>O-$?O+j+1.5*i.leftPadding>b?$+D-5:O+D+5:(O-$)/2+$+D}).attr("y",function(l,$){return l.vert?i.gridLineStartPadding+m.length*(i.barHeight+i.barGap)+60:($=l.order,$*C+i.barHeight/2+(i.fontSize/2-2)+M)}).attr("text-height",c).attr("class",function(l){const $=v(l.startTime);let O=v(l.endTime);l.milestone&&(O=$+c);const j=this.getBBox().width;let H="";l.classes.length>0&&(H=l.classes.join(" "));let J=0;for(const[N,V]of _.entries())l.type===V&&(J=N%i.numberSectionStyles);let h="";return l.active&&(l.crit?h="activeCritText"+J:h="activeText"+J),l.done?l.crit?h=h+" doneCritText"+J:h=h+" doneText"+J:l.crit&&(h=h+" critText"+J),l.milestone&&(h+=" milestoneText"),l.vert&&(h+=" vertText"),j>O-$?O+j+1.5*i.leftPadding>b?H+" taskTextOutsideLeft taskTextOutside"+J+" "+h:H+" taskTextOutsideRight taskTextOutside"+J+" "+h+" width-"+j:H+" taskText taskText"+J+" "+h+" width-"+j}),Yt().securityLevel==="sandbox"){let l;l=Zt("#i"+e);const $=l.nodes()[0].contentDocument;W.filter(function(O){return u.has(O.id)}).each(function(O){var j=$.querySelector("#"+CSS.escape(e+"-"+O.id)),H=$.querySelector("#"+CSS.escape(e+"-"+O.id+"-text"));const J=j.parentNode;var h=$.createElement("a");h.setAttribute("xlink:href",u.get(O.id)),h.setAttribute("target","_top"),J.appendChild(h),h.appendChild(j),h.appendChild(H)})}}d(E,"drawRects");function z(x,C,M,D,c,g,b,m){if(b.length===0&&m.length===0)return;let I,o;for(const{startTime:O,endTime:j}of g)(I===void 0||Oo)&&(o=j);if(!I||!o)return;if(it(o).diff(it(I),"year")>5){Tt.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");return}const W=r.db.getDateFormat(),u=[];let K=null,l=it(I);for(;l.valueOf()<=o;)r.db.isInvalidDate(l,W,b,m)?K?K.end=l:K={start:l,end:l}:K&&(u.push(K),K=null),l=l.add(1,"d");B.append("g").selectAll("rect").data(u).enter().append("rect").attr("id",O=>e+"-exclude-"+O.start.format("YYYY-MM-DD")).attr("x",O=>v(O.start.startOf("day"))+M).attr("y",i.gridLineStartPadding).attr("width",O=>v(O.end.endOf("day"))-v(O.start.startOf("day"))).attr("height",c-C-i.gridLineStartPadding).attr("transform-origin",function(O,j){return(v(O.start)+M+.5*(v(O.end)-v(O.start))).toString()+"px "+(j*x+.5*c).toString()+"px"}).attr("class","exclude-range")}d(z,"drawExcludeDays");function G(x,C,M,D){if(M<=0||x>C)return 1/0;const c=C-x,g=it.duration({[D??"day"]:M}).asMilliseconds();return g<=0?1/0:Math.ceil(c/g)}d(G,"getEstimatedTickCount");function T(x,C,M,D){const c=r.db.getDateFormat(),g=r.db.getAxisFormat();let b;g?b=g:c==="D"?b="%d":b=i.axisFormat??"%Y-%m-%d";let m=fr(v).tickSize(-D+C+i.gridLineStartPadding).tickFormat(ie(b));const o=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(r.db.getTickInterval()||i.tickInterval);if(o!==null){const W=parseInt(o[1],10);if(isNaN(W)||W<=0)Tt.warn(`Invalid tick interval value: "${o[1]}". Skipping custom tick interval.`);else{const u=o[2],K=r.db.getWeekday()||i.weekday,l=v.domain(),$=l[0],O=l[1],j=G($,O,W,u);if(j>Te)Tt.warn(`The tick interval "${W}${u}" would generate ${j} ticks, which exceeds the maximum allowed (${Te}). This may indicate an invalid date or time range. Skipping custom tick interval.`);else switch(u){case"millisecond":m.ticks(Et.every(W));break;case"second":m.ticks(vt.every(W));break;case"minute":m.ticks(Nt.every(W));break;case"hour":m.ticks(Pt.every(W));break;case"day":m.ticks(xt.every(W));break;case"week":m.ticks(an[K].every(W));break;case"month":m.ticks(Rt.every(W));break}}}if(B.append("g").attr("class","grid").attr("transform","translate("+x+", "+(D-50)+")").call(m).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),r.db.topAxisEnabled()||i.topAxis){let W=lr(v).tickSize(-D+C+i.gridLineStartPadding).tickFormat(ie(b));if(o!==null){const u=parseInt(o[1],10);if(isNaN(u)||u<=0)Tt.warn(`Invalid tick interval value: "${o[1]}". Skipping custom tick interval.`);else{const K=o[2],l=r.db.getWeekday()||i.weekday,$=v.domain(),O=$[0],j=$[1];if(G(O,j,u,K)<=Te)switch(K){case"millisecond":W.ticks(Et.every(u));break;case"second":W.ticks(vt.every(u));break;case"minute":W.ticks(Nt.every(u));break;case"hour":W.ticks(Pt.every(u));break;case"day":W.ticks(xt.every(u));break;case"week":W.ticks(an[l].every(u));break;case"month":W.ticks(Rt.every(u));break}}}B.append("g").attr("class","grid").attr("transform","translate("+x+", "+C+")").call(W).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}d(T,"makeGrid");function k(x,C){let M=0;const D=Object.keys(Y).map(c=>[c,Y[c]]);B.append("g").selectAll("text").data(D).enter().append(function(c){const g=c[0].split(Zn.lineBreakRegex),b=-(g.length-1)/2,m=F.createElementNS("http://www.w3.org/2000/svg","text");m.setAttribute("dy",b+"em");for(const[I,o]of g.entries()){const W=F.createElementNS("http://www.w3.org/2000/svg","tspan");W.setAttribute("alignment-baseline","central"),W.setAttribute("x","10"),I>0&&W.setAttribute("dy","1em"),W.textContent=o,m.appendChild(W)}return m}).attr("x",10).attr("y",function(c,g){if(g>0)for(let b=0;b` - .mermaid-main-font { - font-family: ${t.fontFamily}; - } - - .exclude-range { - fill: ${t.excludeBkgColor}; - } - - .section { - stroke: none; - opacity: 0.2; - } - - .section0 { - fill: ${t.sectionBkgColor}; - } - - .section2 { - fill: ${t.sectionBkgColor2}; - } - - .section1, - .section3 { - fill: ${t.altSectionBkgColor}; - opacity: 0.2; - } - - .sectionTitle0 { - fill: ${t.titleColor}; - } - - .sectionTitle1 { - fill: ${t.titleColor}; - } - - .sectionTitle2 { - fill: ${t.titleColor}; - } - - .sectionTitle3 { - fill: ${t.titleColor}; - } - - .sectionTitle { - text-anchor: start; - font-family: ${t.fontFamily}; - } - - - /* Grid and axis */ - - .grid .tick { - stroke: ${t.gridColor}; - opacity: 0.8; - shape-rendering: crispEdges; - } - - .grid .tick text { - font-family: ${t.fontFamily}; - fill: ${t.textColor}; - } - - .grid path { - stroke-width: 0; - } - - - /* Today line */ - - .today { - fill: none; - stroke: ${t.todayLineColor}; - stroke-width: 2px; - } - - - /* Task styling */ - - /* Default task */ - - .task { - stroke-width: 2; - } - - .taskText { - text-anchor: middle; - font-family: ${t.fontFamily}; - } - - .taskTextOutsideRight { - fill: ${t.taskTextDarkColor}; - text-anchor: start; - font-family: ${t.fontFamily}; - } - - .taskTextOutsideLeft { - fill: ${t.taskTextDarkColor}; - text-anchor: end; - } - - - /* Special case clickable */ - - .task.clickable { - cursor: pointer; - } - - .taskText.clickable { - cursor: pointer; - fill: ${t.taskTextClickableColor} !important; - font-weight: bold; - } - - .taskTextOutsideLeft.clickable { - cursor: pointer; - fill: ${t.taskTextClickableColor} !important; - font-weight: bold; - } - - .taskTextOutsideRight.clickable { - cursor: pointer; - fill: ${t.taskTextClickableColor} !important; - font-weight: bold; - } - - - /* Specific task settings for the sections*/ - - .taskText0, - .taskText1, - .taskText2, - .taskText3 { - fill: ${t.taskTextColor}; - } - - .task0, - .task1, - .task2, - .task3 { - fill: ${t.taskBkgColor}; - stroke: ${t.taskBorderColor}; - } - - .taskTextOutside0, - .taskTextOutside2 - { - fill: ${t.taskTextOutsideColor}; - } - - .taskTextOutside1, - .taskTextOutside3 { - fill: ${t.taskTextOutsideColor}; - } - - - /* Active task */ - - .active0, - .active1, - .active2, - .active3 { - fill: ${t.activeTaskBkgColor}; - stroke: ${t.activeTaskBorderColor}; - } - - .activeText0, - .activeText1, - .activeText2, - .activeText3 { - fill: ${t.taskTextDarkColor} !important; - } - - - /* Completed task */ - - .done0, - .done1, - .done2, - .done3 { - stroke: ${t.doneTaskBorderColor}; - fill: ${t.doneTaskBkgColor}; - stroke-width: 2; - } - - .doneText0, - .doneText1, - .doneText2, - .doneText3 { - fill: ${t.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: ${t.taskTextOutsideColor} !important; - } - - - /* Tasks on the critical line */ - - .crit0, - .crit1, - .crit2, - .crit3 { - stroke: ${t.critBorderColor}; - fill: ${t.critBkgColor}; - stroke-width: 2; - } - - .activeCrit0, - .activeCrit1, - .activeCrit2, - .activeCrit3 { - stroke: ${t.critBorderColor}; - fill: ${t.activeTaskBkgColor}; - stroke-width: 2; - } - - .doneCrit0, - .doneCrit1, - .doneCrit2, - .doneCrit3 { - stroke: ${t.critBorderColor}; - fill: ${t.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: ${t.taskTextDarkColor} !important; - } - - /* Done-crit task text outside the bar — same reasoning as doneText above. */ - .doneCritText0.taskTextOutsideLeft, - .doneCritText0.taskTextOutsideRight, - .doneCritText1.taskTextOutsideLeft, - .doneCritText1.taskTextOutsideRight, - .doneCritText2.taskTextOutsideLeft, - .doneCritText2.taskTextOutsideRight, - .doneCritText3.taskTextOutsideLeft, - .doneCritText3.taskTextOutsideRight { - fill: ${t.taskTextOutsideColor} !important; - } - - .vert { - stroke: ${t.vertLineColor}; - } - - .vertText { - font-size: 15px; - text-anchor: middle; - fill: ${t.vertLineColor} !important; - } - - .activeCritText0, - .activeCritText1, - .activeCritText2, - .activeCritText3 { - fill: ${t.taskTextDarkColor} !important; - } - - .titleText { - text-anchor: middle; - font-size: 18px; - fill: ${t.titleColor||t.textColor}; - font-family: ${t.fontFamily}; - } -`,"getStyles"),Ns=Hs,Zs={parser:Qi,db:Ls,renderer:Os,styles:Ns};export{Zs as diagram}; diff --git a/apps/kimi-code/dist-web/assets/gitGraphDiagram-IHSO6WYX-EeKfrgej.js b/apps/kimi-code/dist-web/assets/gitGraphDiagram-IHSO6WYX-EeKfrgej.js deleted file mode 100644 index fa21946ab..000000000 --- a/apps/kimi-code/dist-web/assets/gitGraphDiagram-IHSO6WYX-EeKfrgej.js +++ /dev/null @@ -1,106 +0,0 @@ -import{I as le}from"./chunk-2Q5K7J3B-D8ifWrnI.js";import{p as he}from"./chunk-JWPE2WC7-BxqMRrNb.js";import{o as $e,n as fe,s as ge,g as ue,a as ye,b as xe,_ as h,y as J,l as w,d as me,c as q,x as pe,z as be,p as we,k as B,A as ke,B as ve,C as Ce}from"./mermaid.core-CgZTgv7Y.js";import{p as Ee}from"./cynefin-VYW2F7L2-DYKf_Z-v.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var m={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},Be=ve.gitGraph,S=h(()=>ke({...Be,...J().gitGraph}),"getConfig"),d=new le(()=>{const e=S(),r=e.mainBranchName,t=e.mainBranchOrder;return{mainBranchName:r,commits:new Map,head:null,branchConfig:new Map([[r,{name:r,order:t}]]),branches:new Map([[r,null]]),currBranch:r,direction:"LR",seq:0,options:{}}});function Y(){return Ce({length:7})}h(Y,"getID");function te(e,r){const t=Object.create(null);return e.reduce((s,o)=>{const i=r(o);return t[i]||(t[i]=!0,s.push(o)),s},[])}h(te,"uniqBy");var Te=h(function(e){d.records.direction=e},"setDirection"),Le=h(function(e){w.debug("options str",e),e=e?.trim(),e=e||"{}";try{d.records.options=JSON.parse(e)}catch(r){w.error("error while parsing gitGraph options",r.message)}},"setOptions"),Me=h(function(){return d.records.options},"getOptions"),Re=h(function(e){let r=e.msg,t=e.id;const s=e.type;let o=e.tags;w.info("commit",r,t,s,o),w.debug("Entering commit:",r,t,s,o);const i=S();t=B.sanitizeText(t,i),r=B.sanitizeText(r,i),o=o?.map(a=>B.sanitizeText(a,i));const n={id:t||d.records.seq+"-"+Y(),message:r,seq:d.records.seq++,type:s??m.NORMAL,tags:o??[],parents:d.records.head==null?[]:[d.records.head.id],branch:d.records.currBranch};d.records.head=n,w.info("main branch",i.mainBranchName),d.records.commits.has(n.id)&&w.warn(`Commit ID ${n.id} already exists`),d.records.commits.set(n.id,n),d.records.branches.set(d.records.currBranch,n.id),w.debug("in pushCommit "+n.id)},"commit"),Ie=h(function(e){let r=e.name;const t=e.order;if(r=B.sanitizeText(r,S()),d.records.branches.has(r))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 ${r}")`);d.records.branches.set(r,d.records.head!=null?d.records.head.id:null),d.records.branchConfig.set(r,{name:r,order:t}),ae(r),w.debug("in createBranch")},"branch"),Oe=h(e=>{let r=e.branch,t=e.id;const s=e.type,o=e.tags,i=S();r=B.sanitizeText(r,i),t&&(t=B.sanitizeText(t,i));const n=d.records.branches.get(d.records.currBranch),a=d.records.branches.get(r),l=n?d.records.commits.get(n):void 0,f=a?d.records.commits.get(a):void 0;if(l&&f&&l.branch===r)throw new Error(`Cannot merge branch '${r}' into itself.`);if(d.records.currBranch===r){const c=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:["branch abc"]},c}if(l===void 0||!l){const c=new Error(`Incorrect usage of "merge". Current branch (${d.records.currBranch})has no commits`);throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:["commit"]},c}if(!d.records.branches.has(r)){const c=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") does not exist");throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:[`branch ${r}`]},c}if(f===void 0||!f){const c=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") has no commits");throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:['"commit"']},c}if(l===f){const c=new Error('Incorrect usage of "merge". Both branches have same head');throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:["branch abc"]},c}if(t&&d.records.commits.has(t)){const c=new Error('Incorrect usage of "merge". Commit with id:'+t+" already exists, use different custom id");throw c.hash={text:`merge ${r} ${t} ${s} ${o?.join(" ")}`,token:`merge ${r} ${t} ${s} ${o?.join(" ")}`,expected:[`merge ${r} ${t}_UNIQUE ${s} ${o?.join(" ")}`]},c}const g=a||"",$={id:t||`${d.records.seq}-${Y()}`,message:`merged branch ${r} into ${d.records.currBranch}`,seq:d.records.seq++,parents:d.records.head==null?[]:[d.records.head.id,g],branch:d.records.currBranch,type:m.MERGE,customType:s,customId:!!t,tags:o??[]};d.records.head=$,d.records.commits.set($.id,$),d.records.branches.set(d.records.currBranch,$.id),w.debug(d.records.branches),w.debug("in mergeBranch")},"merge"),_e=h(function(e){let r=e.id,t=e.targetId,s=e.tags,o=e.parent;w.debug("Entering cherryPick:",r,t,s);const i=S();if(r=B.sanitizeText(r,i),t=B.sanitizeText(t,i),s=s?.map(l=>B.sanitizeText(l,i)),o=B.sanitizeText(o,i),!r||!d.records.commits.has(r)){const l=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw l.hash={text:`cherryPick ${r} ${t}`,token:`cherryPick ${r} ${t}`,expected:["cherry-pick abc"]},l}const n=d.records.commits.get(r);if(n===void 0||!n)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(o&&!(Array.isArray(n.parents)&&n.parents.includes(o)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");const a=n.branch;if(n.type===m.MERGE&&!o)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!t||!d.records.commits.has(t)){if(a===d.records.currBranch){const $=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw $.hash={text:`cherryPick ${r} ${t}`,token:`cherryPick ${r} ${t}`,expected:["cherry-pick abc"]},$}const l=d.records.branches.get(d.records.currBranch);if(l===void 0||!l){const $=new Error(`Incorrect usage of "cherry-pick". Current branch (${d.records.currBranch})has no commits`);throw $.hash={text:`cherryPick ${r} ${t}`,token:`cherryPick ${r} ${t}`,expected:["cherry-pick abc"]},$}const f=d.records.commits.get(l);if(f===void 0||!f){const $=new Error(`Incorrect usage of "cherry-pick". Current branch (${d.records.currBranch})has no commits`);throw $.hash={text:`cherryPick ${r} ${t}`,token:`cherryPick ${r} ${t}`,expected:["cherry-pick abc"]},$}const g={id:d.records.seq+"-"+Y(),message:`cherry-picked ${n?.message} into ${d.records.currBranch}`,seq:d.records.seq++,parents:d.records.head==null?[]:[d.records.head.id,n.id],branch:d.records.currBranch,type:m.CHERRY_PICK,tags:s?s.filter(Boolean):[`cherry-pick:${n.id}${n.type===m.MERGE?`|parent:${o}`:""}`]};d.records.head=g,d.records.commits.set(g.id,g),d.records.branches.set(d.records.currBranch,g.id),w.debug(d.records.branches),w.debug("in cherryPick")}},"cherryPick"),ae=h(function(e){if(e=B.sanitizeText(e,S()),d.records.branches.has(e)){d.records.currBranch=e;const r=d.records.branches.get(d.records.currBranch);r===void 0||!r?d.records.head=null:d.records.head=d.records.commits.get(r)??null}else{const r=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${e}")`);throw r.hash={text:`checkout ${e}`,token:`checkout ${e}`,expected:[`branch ${e}`]},r}},"checkout");function V(e,r,t){const s=e.indexOf(r);s===-1?e.push(t):e.splice(s,1,t)}h(V,"upsert");function Q(e){const r=e.reduce((o,i)=>o.seq>i.seq?o:i,e[0]);let t="";e.forEach(function(o){o===r?t+=" *":t+=" |"});const s=[t,r.id,r.seq];for(const o in d.records.branches)d.records.branches.get(o)===r.id&&s.push(o);if(w.debug(s.join(" ")),r.parents&&r.parents.length==2&&r.parents[0]&&r.parents[1]){const o=d.records.commits.get(r.parents[0]);V(e,r,o),r.parents[1]&&e.push(d.records.commits.get(r.parents[1]))}else{if(r.parents.length==0)return;if(r.parents[0]){const o=d.records.commits.get(r.parents[0]);V(e,r,o)}}e=te(e,o=>o.id),Q(e)}h(Q,"prettyPrintCommitHistory");var Ge=h(function(){w.debug(d.records.commits);const e=ne()[0];Q([e])},"prettyPrint"),He=h(function(){d.reset(),we()},"clear"),Se=h(function(){return[...d.records.branchConfig.values()].map((r,t)=>r.order!==null&&r.order!==void 0?r:{...r,order:parseFloat(`0.${t}`)}).sort((r,t)=>(r.order??0)-(t.order??0)).map(({name:r})=>({name:r}))},"getBranchesAsObjArray"),Ae=h(function(){return d.records.branches},"getBranches"),De=h(function(){return d.records.commits},"getCommits"),ne=h(function(){const e=[...d.records.commits.values()];return e.forEach(function(r){w.debug(r.id)}),e.sort((r,t)=>r.seq-t.seq),e},"getCommitsArray"),Pe=h(function(){return d.records.currBranch},"getCurrentBranch"),We=h(function(){return d.records.direction},"getDirection"),qe=h(function(){return d.records.head},"getHead"),se={commitType:m,getConfig:S,setDirection:Te,setOptions:Le,getOptions:Me,commit:Re,branch:Ie,merge:Oe,cherryPick:_e,checkout:ae,prettyPrint:Ge,clear:He,getBranchesAsObjArray:Se,getBranches:Ae,getCommits:De,getCommitsArray:ne,getCurrentBranch:Pe,getDirection:We,getHead:qe,setAccTitle:xe,getAccTitle:ye,getAccDescription:ue,setAccDescription:ge,setDiagramTitle:fe,getDiagramTitle:$e},Ne=h((e,r)=>{he(e,r),e.dir&&r.setDirection(e.dir);for(const t of e.statements)Fe(t,r)},"populate"),Fe=h((e,r)=>{const s={Commit:h(o=>r.commit(ze(o)),"Commit"),Branch:h(o=>r.branch(Ye(o)),"Branch"),Merge:h(o=>r.merge(je(o)),"Merge"),Checkout:h(o=>r.checkout(Ue(o)),"Checkout"),CherryPicking:h(o=>r.cherryPick(Ke(o)),"CherryPicking")}[e.$type];s?s(e):w.error(`Unknown statement type: ${e.$type}`)},"parseStatement"),ze=h(e=>({id:e.id,msg:e.message??"",type:e.type!==void 0?m[e.type]:m.NORMAL,tags:e.tags??void 0}),"parseCommit"),Ye=h(e=>({name:e.name,order:e.order??0}),"parseBranch"),je=h(e=>({branch:e.branch,id:e.id??"",type:e.type!==void 0?m[e.type]:void 0,tags:e.tags??void 0}),"parseMerge"),Ue=h(e=>e.branch,"parseCheckout"),Ke=h(e=>({id:e.id,targetId:"",tags:e.tags?.length===0?void 0:e.tags,parent:e.parent}),"parseCherryPicking"),Ve={parse:h(async e=>{const r=await Ee("gitGraph",e);w.debug(r),Ne(r,se)},"parse")},O=10,_=40,L=4,R=2,G=8,j=new Set(["redux","redux-dark","redux-color","redux-dark-color"]),X=12,Z=new Set(["redux-color","redux-dark-color"]),Xe=new Set(["dark","redux-dark","redux-dark-color","neo-dark"]),H=h((e,r,t=!1)=>t&&e>0?(e-1)%(r-1)+1:e%r,"calcColorIndex"),C=new Map,E=new Map,F=30,P=new Map,z=[],I=0,y="LR",Je=h(()=>{C.clear(),E.clear(),P.clear(),I=0,z=[],y="LR"},"clear"),oe=h(e=>{const r=document.createElementNS("http://www.w3.org/2000/svg","text");return(typeof e=="string"?e.split(/\\n|\n|/gi):e).forEach(s=>{const o=document.createElementNS("http://www.w3.org/2000/svg","tspan");o.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),o.setAttribute("dy","1em"),o.setAttribute("x","0"),o.setAttribute("class","row"),o.textContent=s.trim(),r.appendChild(o)}),r},"drawText"),ce=h(e=>{let r,t,s;return y==="BT"?(t=h((o,i)=>o<=i,"comparisonFunc"),s=1/0):(t=h((o,i)=>o>=i,"comparisonFunc"),s=0),e.forEach(o=>{const i=y==="TB"||y=="BT"?E.get(o)?.y:E.get(o)?.x;i!==void 0&&t(i,s)&&(r=o,s=i)}),r},"findClosestParent"),Qe=h(e=>{let r="",t=1/0;return e.forEach(s=>{const o=E.get(s).y;o<=t&&(r=s,t=o)}),r||void 0},"findClosestParentBT"),Ze=h((e,r,t)=>{let s=t,o=t;const i=[];e.forEach(n=>{const a=r.get(n);if(!a)throw new Error(`Commit not found for key ${n}`);a.parents.length?(s=rr(a),o=Math.max(s,o)):i.push(a),tr(a,s)}),s=o,i.forEach(n=>{ar(n,s,t)}),e.forEach(n=>{const a=r.get(n);if(a?.parents.length){const l=Qe(a.parents);s=E.get(l).y-_,s<=o&&(o=s);const f=C.get(a.branch).pos,g=s-O;E.set(a.id,{x:f,y:g})}})},"setParallelBTPos"),er=h(e=>{const r=ce(e.parents.filter(s=>s!==null));if(!r)throw new Error(`Closest parent not found for commit ${e.id}`);const t=E.get(r)?.y;if(t===void 0)throw new Error(`Closest parent position not found for commit ${e.id}`);return t},"findClosestParentPos"),rr=h(e=>er(e)+_,"calculateCommitPosition"),tr=h((e,r)=>{const t=C.get(e.branch);if(!t)throw new Error(`Branch not found for commit ${e.id}`);const s=t.pos,o=r+O;return E.set(e.id,{x:s,y:o}),{x:s,y:o}},"setCommitPosition"),ar=h((e,r,t)=>{const s=C.get(e.branch);if(!s)throw new Error(`Branch not found for commit ${e.id}`);const o=r+t,i=s.pos;E.set(e.id,{x:i,y:o})},"setRootPosition"),nr=h((e,r,t,s,o,i)=>{const{theme:n}=q(),a=j.has(n??""),l=Z.has(n??""),f=Xe.has(n??"");if(i===m.HIGHLIGHT)e.append("rect").attr("x",t.x-10+(a?3:0)).attr("y",t.y-10+(a?3:0)).attr("width",a?14:20).attr("height",a?14:20).attr("class",`commit ${r.id} commit-highlight${H(o,G,l)} ${s}-outer`),e.append("rect").attr("x",t.x-6+(a?2:0)).attr("y",t.y-6+(a?2:0)).attr("width",a?8:12).attr("height",a?8:12).attr("class",`commit ${r.id} commit${H(o,G,l)} ${s}-inner`);else if(i===m.CHERRY_PICK)e.append("circle").attr("cx",t.x).attr("cy",t.y).attr("r",a?7:10).attr("class",`commit ${r.id} ${s}`),e.append("circle").attr("cx",t.x-3).attr("cy",t.y+2).attr("r",a?2.5:2.75).attr("fill",f?"#000000":"#fff").attr("class",`commit ${r.id} ${s}`),e.append("circle").attr("cx",t.x+3).attr("cy",t.y+2).attr("r",a?2.5:2.75).attr("fill",f?"#000000":"#fff").attr("class",`commit ${r.id} ${s}`),e.append("line").attr("x1",t.x+3).attr("y1",t.y+1).attr("x2",t.x).attr("y2",t.y-5).attr("stroke",f?"#000000":"#fff").attr("class",`commit ${r.id} ${s}`),e.append("line").attr("x1",t.x-3).attr("y1",t.y+1).attr("x2",t.x).attr("y2",t.y-5).attr("stroke",f?"#000000":"#fff").attr("class",`commit ${r.id} ${s}`);else{const g=e.append("circle");if(g.attr("cx",t.x),g.attr("cy",t.y),g.attr("r",a?7:10),g.attr("class",`commit ${r.id} commit${H(o,G,l)}`),i===m.MERGE){const $=e.append("circle");$.attr("cx",t.x),$.attr("cy",t.y),$.attr("r",a?5:6),$.attr("class",`commit ${s} ${r.id} commit${H(o,G,l)}`)}if(i===m.REVERSE){const $=e.append("path"),c=a?4:5;$.attr("d",`M ${t.x-c},${t.y-c}L${t.x+c},${t.y+c}M${t.x-c},${t.y+c}L${t.x+c},${t.y-c}`).attr("class",`commit ${s} ${r.id} commit${H(o,G,l)}`)}}},"drawCommitBullet"),sr=h((e,r,t,s,o)=>{if(r.type!==m.CHERRY_PICK&&(r.customId&&r.type===m.MERGE||r.type!==m.MERGE)&&o.showCommitLabel){const i=e.append("g"),n=i.insert("rect").attr("class","commit-label-bkg"),a=i.append("text").attr("x",s).attr("y",t.y+25).attr("class","commit-label").text(r.id),l=a.node()?.getBBox();if(l&&(n.attr("x",t.posWithOffset-l.width/2-R).attr("y",t.y+13.5).attr("width",l.width+2*R).attr("height",l.height+2*R),y==="TB"||y==="BT"?(n.attr("x",t.x-(l.width+4*L+5)).attr("y",t.y-12),a.attr("x",t.x-(l.width+4*L)).attr("y",t.y+l.height-12)):a.attr("x",t.posWithOffset-l.width/2),o.rotateCommitLabel))if(y==="TB"||y==="BT")a.attr("transform","rotate(-45, "+t.x+", "+t.y+")"),n.attr("transform","rotate(-45, "+t.x+", "+t.y+")");else{const f=-7.5-(l.width+10)/25*9.5,g=10+l.width/25*8.5;i.attr("transform","translate("+f+", "+g+") rotate(-45, "+s+", "+t.y+")")}}},"drawCommitLabel"),or=h((e,r,t,s)=>{if(r.tags.length>0){let o=0,i=0,n=0;const a=[];for(const l of r.tags.reverse()){const f=e.insert("polygon"),g=e.append("circle"),$=e.append("text").attr("y",t.y-16-o).attr("class","tag-label").text(l),c=$.node()?.getBBox();if(!c)throw new Error("Tag bbox not found");i=Math.max(i,c.width),n=Math.max(n,c.height),$.attr("x",t.posWithOffset-c.width/2),a.push({tag:$,hole:g,rect:f,yOffset:o}),o+=20}for(const{tag:l,hole:f,rect:g,yOffset:$}of a){const c=n/2,x=t.y-19.2-$;if(g.attr("class","tag-label-bkg").attr("points",` - ${s-i/2-L/2},${x+R} - ${s-i/2-L/2},${x-R} - ${t.posWithOffset-i/2-L},${x-c-R} - ${t.posWithOffset+i/2+L},${x-c-R} - ${t.posWithOffset+i/2+L},${x+c+R} - ${t.posWithOffset-i/2-L},${x+c+R}`),f.attr("cy",x).attr("cx",s-i/2+L/2).attr("r",1.5).attr("class","tag-hole"),y==="TB"||y==="BT"){const u=s+$;g.attr("class","tag-label-bkg").attr("points",` - ${t.x},${u+2} - ${t.x},${u-2} - ${t.x+O},${u-c-2} - ${t.x+O+i+4},${u-c-2} - ${t.x+O+i+4},${u+c+2} - ${t.x+O},${u+c+2}`).attr("transform","translate(12,12) rotate(45, "+t.x+","+s+")"),f.attr("cx",t.x+L/2).attr("cy",u).attr("transform","translate(12,12) rotate(45, "+t.x+","+s+")"),l.attr("x",t.x+5).attr("y",u+3).attr("transform","translate(14,14) rotate(45, "+t.x+","+s+")")}}}},"drawCommitTags"),cr=h(e=>{switch(e.customType??e.type){case m.NORMAL:return"commit-normal";case m.REVERSE:return"commit-reverse";case m.HIGHLIGHT:return"commit-highlight";case m.MERGE:return"commit-merge";case m.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}},"getCommitClassType"),ir=h((e,r,t,s)=>{const o={x:0,y:0};if(e.parents.length>0){const i=ce(e.parents);if(i){const n=s.get(i)??o;return r==="TB"?n.y+_:r==="BT"?(s.get(e.id)??o).y-_:n.x+_}}else return r==="TB"?F:r==="BT"?(s.get(e.id)??o).y-_:0;return 0},"calculatePosition"),dr=h((e,r,t)=>{const s=y==="BT"&&t?r:r+O,o=C.get(e.branch)?.pos,i=y==="TB"||y==="BT"?C.get(e.branch)?.pos:s;if(i===void 0||o===void 0)throw new Error(`Position were undefined for commit ${e.id}`);const n=j.has(q().theme??""),a=y==="TB"||y==="BT"?s:o+(n?X/2+1:-2);return{x:i,y:a,posWithOffset:s}},"getCommitPosition"),re=h((e,r,t,s)=>{const o=e.append("g").attr("class","commit-bullets"),i=e.append("g").attr("class","commit-labels");let n=y==="TB"||y==="BT"?F:0;const a=[...r.keys()],l=s.parallelCommits??!1,f=h(($,c)=>{const x=r.get($)?.seq,u=r.get(c)?.seq;return x!==void 0&&u!==void 0?x-u:0},"sortKeys");let g=a.sort(f);y==="BT"&&(l&&Ze(g,r,n),g=g.reverse()),g.forEach($=>{const c=r.get($);if(!c)throw new Error(`Commit not found for key ${$}`);l&&(n=ir(c,y,n,E));const x=dr(c,n,l);if(t){const u=cr(c),p=c.customType??c.type,b=C.get(c.branch)?.index??0;nr(o,c,x,u,b,p),sr(i,c,x,n,s),or(i,c,x,n)}y==="TB"||y==="BT"?E.set(c.id,{x:x.x,y:x.posWithOffset}):E.set(c.id,{x:x.posWithOffset,y:x.y}),n=y==="BT"&&l?n+_:n+_+O,n>I&&(I=n)})},"drawCommits"),lr=h((e,r,t,s,o)=>{const n=(y==="TB"||y==="BT"?t.xf.branch===n,"isOnBranchToGetCurve"),l=h(f=>f.seq>e.seq&&f.seql(f)&&a(f))},"shouldRerouteArrow"),W=h((e,r,t=0)=>{const s=e+Math.abs(e-r)/2;if(t>5)return s;if(z.every(n=>Math.abs(n-s)>=10))return z.push(s),s;const i=Math.abs(e-r);return W(e,r-i/5,t+1)},"findLane"),hr=h((e,r,t,s)=>{const{theme:o}=q(),i=Z.has(o??""),n=E.get(r.id),a=E.get(t.id);if(n===void 0||a===void 0)throw new Error(`Commit positions not found for commits ${r.id} and ${t.id}`);const l=lr(r,t,n,a,s);let f="",g="",$=0,c=0,x=C.get(t.branch)?.index;t.type===m.MERGE&&r.id!==t.parents[0]&&(x=C.get(r.branch)?.index);let u;if(l){f="A 10 10, 0, 0, 0,",g="A 10 10, 0, 0, 1,",$=10,c=10;const p=n.ya.x&&(f="A 20 20, 0, 0, 0,",g="A 20 20, 0, 0, 1,",$=20,c=20,t.type===m.MERGE&&r.id!==t.parents[0]?u=`M ${n.x} ${n.y} L ${n.x} ${a.y-$} ${g} ${n.x-c} ${a.y} L ${a.x} ${a.y}`:u=`M ${n.x} ${n.y} L ${a.x+$} ${n.y} ${f} ${a.x} ${n.y+c} L ${a.x} ${a.y}`),n.x===a.x&&(u=`M ${n.x} ${n.y} L ${a.x} ${a.y}`)):y==="BT"?(n.xa.x&&(f="A 20 20, 0, 0, 0,",g="A 20 20, 0, 0, 1,",$=20,c=20,t.type===m.MERGE&&r.id!==t.parents[0]?u=`M ${n.x} ${n.y} L ${n.x} ${a.y+$} ${f} ${n.x-c} ${a.y} L ${a.x} ${a.y}`:u=`M ${n.x} ${n.y} L ${a.x+$} ${n.y} ${g} ${a.x} ${n.y-c} L ${a.x} ${a.y}`),n.x===a.x&&(u=`M ${n.x} ${n.y} L ${a.x} ${a.y}`)):(n.ya.y&&(t.type===m.MERGE&&r.id!==t.parents[0]?u=`M ${n.x} ${n.y} L ${a.x-$} ${n.y} ${f} ${a.x} ${n.y-c} L ${a.x} ${a.y}`:u=`M ${n.x} ${n.y} L ${n.x} ${a.y+$} ${g} ${n.x+c} ${a.y} L ${a.x} ${a.y}`),n.y===a.y&&(u=`M ${n.x} ${n.y} L ${a.x} ${a.y}`));if(u===void 0)throw new Error("Line definition not found");e.append("path").attr("d",u).attr("class","arrow arrow"+H(x,G,i))},"drawArrow"),$r=h((e,r)=>{const t=e.append("g").attr("class","commit-arrows");[...r.keys()].forEach(s=>{const o=r.get(s);o.parents&&o.parents.length>0&&o.parents.forEach(i=>{hr(t,r.get(i),o,r)})})},"drawArrows"),fr=h((e,r,t,s)=>{const{look:o,theme:i,themeVariables:n}=q(),{dropShadow:a,THEME_COLOR_LIMIT:l}=n,f=j.has(i??""),g=Z.has(i??""),$=e.append("g");r.forEach((c,x)=>{const u=H(x,f?l:G,g),p=C.get(c.name)?.pos;if(p===void 0)throw new Error(`Position not found for branch ${c.name}`);const b=y==="TB"||y==="BT"?p:f?p+X/2+1:p-2,k=$.append("line");k.attr("x1",0),k.attr("y1",b),k.attr("x2",I),k.attr("y2",b),k.attr("class","branch branch"+u),y==="TB"?(k.attr("y1",F),k.attr("x1",p),k.attr("y2",I),k.attr("x2",p)):y==="BT"&&(k.attr("y1",I),k.attr("x1",p),k.attr("y2",F),k.attr("x2",p)),z.push(b);const U=c.name,D=oe(U),T=$.insert("rect"),M=$.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+u);M.node().appendChild(D);const v=D.getBBox(),ee=f?0:4,N=f?16:0,A=f?X:0;o==="neo"&&T.attr("data-look","neo"),T.attr("class","branchLabelBkg label"+u).attr("style",o==="neo"?`filter:${f?`url(#${s}-drop-shadow)`:a}`:"").attr("rx",ee).attr("ry",ee).attr("x",-v.width-4-(t.rotateCommitLabel===!0?30:0)).attr("y",-v.height/2+10).attr("width",v.width+18+N).attr("height",v.height+4+A),M.attr("transform","translate("+(-v.width-14-(t.rotateCommitLabel===!0?30:0)+N/2)+", "+(b-v.height/2-2)+")"),y==="TB"?(T.attr("x",p-v.width/2-10).attr("y",0),M.attr("transform","translate("+(p-v.width/2-5)+", 0)"),f&&(T.attr("transform",`translate(${-N/2-3}, ${-A-10})`),M.attr("transform","translate("+(p-v.width/2-5)+", "+(-A*2+7)+")"))):y==="BT"?(T.attr("x",p-v.width/2-10).attr("y",I),M.attr("transform","translate("+(p-v.width/2-5)+", "+I+")"),f&&(T.attr("transform",`translate(${-N/2-3}, ${A+10})`),M.attr("transform","translate("+(p-v.width/2-5)+", "+(I+A*2+4)+")"))):T.attr("transform","translate(-19, "+(b-12-A/2)+")")})},"drawBranches"),gr=h(function(e,r,t,s,o){return C.set(e,{pos:r,index:t}),r+=50+(o?40:0)+(y==="TB"||y==="BT"?s.width/2:0),r},"setBranchPosition"),ur=h(function(e,r,t,s){Je(),w.debug("in gitgraph renderer",e+` -`,"id:",r,t);const o=s.db;if(!o.getConfig){w.error("getConfig method is not available on db");return}const i=o.getConfig(),n=i.rotateCommitLabel??!1;P=o.getCommits();const a=o.getBranchesAsObjArray();y=o.getDirection();const l=me(`[id="${r}"]`),{look:f,theme:g,themeVariables:$}=q(),{useGradient:c,gradientStart:x,gradientStop:u,filterColor:p}=$;if(c){const k=l.append("defs").append("linearGradient").attr("id",r+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");k.append("stop").attr("offset","0%").attr("stop-color",x).attr("stop-opacity",1),k.append("stop").attr("offset","100%").attr("stop-color",u).attr("stop-opacity",1)}f==="neo"&&j.has(g??"")&&l.append("defs").append("filter").attr("id",r+"-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",p);let b=0;a.forEach((k,U)=>{const D=oe(k.name),T=l.append("g"),K=T.insert("g").attr("class","branchLabel"),M=K.insert("g").attr("class","label branch-label");M.node()?.appendChild(D);const v=D.getBBox();b=gr(k.name,b,U,v,n),M.remove(),K.remove(),T.remove()}),re(l,P,!1,i),i.showBranches&&fr(l,a,i,r),$r(l,P),re(l,P,!0,i),pe.insertTitle(l,"gitTitleText",i.titleTopMargin??0,o.getDiagramTitle()),be(void 0,l,i.diagramPadding,i.useMaxWidth)},"draw"),yr={draw:ur},ie=8,de=new Set(["redux","redux-dark","redux-color","redux-dark-color"]),xr=new Set(["redux-color","redux-dark-color"]),mr=new Set(["neo","neo-dark"]),pr=new Set(["dark","redux-dark","redux-dark-color","neo-dark"]),br=new Set(["redux","redux-dark","redux-color","redux-dark-color","neo","neo-dark"]),wr=h(e=>{const{svgId:r}=e;let t="";if(e.useGradient&&r)for(let s=0;s{const r=J(),{theme:t,themeVariables:s}=r,{borderColorArray:o}=s,i=de.has(t);if(mr.has(t)){let n="";for(let a=0;a`${Array.from({length:e.THEME_COLOR_LIMIT},(r,t)=>t).map(r=>{const t=r%ie;return` - .branch-label${r} { fill: ${e["gitBranchLabel"+t]}; } - .commit${r} { stroke: ${e["git"+t]}; fill: ${e["git"+t]}; } - .commit-highlight${r} { stroke: ${e["gitInv"+t]}; fill: ${e["gitInv"+t]}; } - .label${r} { fill: ${e["git"+t]}; } - .arrow${r} { stroke: ${e["git"+t]}; } - `}).join(` -`)}`,"normalTheme"),Cr=h(e=>{const r=J(),{theme:t}=r,s=br.has(t);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); - } - - ${s?kr(e):vr(e)} - - .branch { - stroke-width: ${e.strokeWidth}; - stroke: ${e.commitLineColor??e.lineColor}; - stroke-dasharray: ${s?"4 2":"2"}; - } - .commit-label { font-size: ${e.commitLabelFontSize}; fill: ${s?e.nodeBorder:e.commitLabelColor}; ${s?`font-weight:${e.noteFontWeight};`:""}} - .commit-label-bkg { font-size: ${e.commitLabelFontSize}; fill: ${s?"transparent":e.commitLabelBackground}; opacity: ${s?"":.5}; } - .tag-label { font-size: ${e.tagLabelFontSize}; fill: ${e.tagLabelColor};} - .tag-label-bkg { fill: ${s?e.mainBkg:e.tagLabelBackground}; stroke: ${s?e.nodeBorder:e.tagLabelBorder}; ${s?`filter:${e.dropShadow}`:""} } - .tag-hole { fill: ${e.textColor}; } - - .commit-merge { - stroke: ${s?e.mainBkg:e.primaryColor}; - fill: ${s?e.mainBkg:e.primaryColor}; - } - .commit-reverse { - stroke: ${s?e.mainBkg:e.primaryColor}; - fill: ${s?e.mainBkg:e.primaryColor}; - stroke-width: ${s?e.strokeWidth:3}; - } - .commit-highlight-outer { - } - .commit-highlight-inner { - stroke: ${s?e.mainBkg:e.primaryColor}; - fill: ${s?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: ${de.has(t)?e.strokeWidth:8}; - stroke-linecap: round; - fill: none - } - .gitTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${e.textColor}; - } -`},"getStyles"),Er=Cr,Or={parser:Ve,db:se,renderer:yr,styles:Er};export{Or as diagram}; diff --git a/apps/kimi-code/dist-web/assets/gitGraphDiagram-IHSO6WYX-pTb313_D.js b/apps/kimi-code/dist-web/assets/gitGraphDiagram-IHSO6WYX-pTb313_D.js new file mode 100644 index 000000000..bd00b3762 --- /dev/null +++ b/apps/kimi-code/dist-web/assets/gitGraphDiagram-IHSO6WYX-pTb313_D.js @@ -0,0 +1,106 @@ +import{I as le}from"./chunk-2Q5K7J3B-CMIj8h4B.js";import{p as he}from"./chunk-JWPE2WC7-TZtJmqSP.js";import{p as $e,o as fe,s as ge,g as ue,a as ye,b as xe,_ as h,z as J,l as w,d as me,c as W,y as pe,A as be,q as we,k as B,B as ke,D as ve,E as Ce}from"./mermaid.core-B_UcP3X_.js";import{p as Ee}from"./cynefin-VYW2F7L2-BnQdr27u.js";import"./index-BOtIzGLC.js";var m={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},Be=ve.gitGraph,S=h(()=>ke({...Be,...J().gitGraph}),"getConfig"),d=new le(()=>{const e=S(),r=e.mainBranchName,t=e.mainBranchOrder;return{mainBranchName:r,commits:new Map,head:null,branchConfig:new Map([[r,{name:r,order:t}]]),branches:new Map([[r,null]]),currBranch:r,direction:"LR",seq:0,options:{}}});function Y(){return Ce({length:7})}h(Y,"getID");function te(e,r){const t=Object.create(null);return e.reduce((s,o)=>{const i=r(o);return t[i]||(t[i]=!0,s.push(o)),s},[])}h(te,"uniqBy");var Te=h(function(e){d.records.direction=e},"setDirection"),Le=h(function(e){w.debug("options str",e),e=e?.trim(),e=e||"{}";try{d.records.options=JSON.parse(e)}catch(r){w.error("error while parsing gitGraph options",r.message)}},"setOptions"),Me=h(function(){return d.records.options},"getOptions"),Re=h(function(e){let r=e.msg,t=e.id;const s=e.type;let o=e.tags;w.info("commit",r,t,s,o),w.debug("Entering commit:",r,t,s,o);const i=S();t=B.sanitizeText(t,i),r=B.sanitizeText(r,i),o=o?.map(a=>B.sanitizeText(a,i));const n={id:t||d.records.seq+"-"+Y(),message:r,seq:d.records.seq++,type:s??m.NORMAL,tags:o??[],parents:d.records.head==null?[]:[d.records.head.id],branch:d.records.currBranch};d.records.head=n,w.info("main branch",i.mainBranchName),d.records.commits.has(n.id)&&w.warn(`Commit ID ${n.id} already exists`),d.records.commits.set(n.id,n),d.records.branches.set(d.records.currBranch,n.id),w.debug("in pushCommit "+n.id)},"commit"),Ie=h(function(e){let r=e.name;const t=e.order;if(r=B.sanitizeText(r,S()),d.records.branches.has(r))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 ${r}")`);d.records.branches.set(r,d.records.head!=null?d.records.head.id:null),d.records.branchConfig.set(r,{name:r,order:t}),ae(r),w.debug("in createBranch")},"branch"),Oe=h(e=>{let r=e.branch,t=e.id;const s=e.type,o=e.tags,i=S();r=B.sanitizeText(r,i),t&&(t=B.sanitizeText(t,i));const n=d.records.branches.get(d.records.currBranch),a=d.records.branches.get(r),l=n?d.records.commits.get(n):void 0,f=a?d.records.commits.get(a):void 0;if(l&&f&&l.branch===r)throw new Error(`Cannot merge branch '${r}' into itself.`);if(d.records.currBranch===r){const c=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:["branch abc"]},c}if(l===void 0||!l){const c=new Error(`Incorrect usage of "merge". Current branch (${d.records.currBranch})has no commits`);throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:["commit"]},c}if(!d.records.branches.has(r)){const c=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") does not exist");throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:[`branch ${r}`]},c}if(f===void 0||!f){const c=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") has no commits");throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:['"commit"']},c}if(l===f){const c=new Error('Incorrect usage of "merge". Both branches have same head');throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:["branch abc"]},c}if(t&&d.records.commits.has(t)){const c=new Error('Incorrect usage of "merge". Commit with id:'+t+" already exists, use different custom id");throw c.hash={text:`merge ${r} ${t} ${s} ${o?.join(" ")}`,token:`merge ${r} ${t} ${s} ${o?.join(" ")}`,expected:[`merge ${r} ${t}_UNIQUE ${s} ${o?.join(" ")}`]},c}const g=a||"",$={id:t||`${d.records.seq}-${Y()}`,message:`merged branch ${r} into ${d.records.currBranch}`,seq:d.records.seq++,parents:d.records.head==null?[]:[d.records.head.id,g],branch:d.records.currBranch,type:m.MERGE,customType:s,customId:!!t,tags:o??[]};d.records.head=$,d.records.commits.set($.id,$),d.records.branches.set(d.records.currBranch,$.id),w.debug(d.records.branches),w.debug("in mergeBranch")},"merge"),_e=h(function(e){let r=e.id,t=e.targetId,s=e.tags,o=e.parent;w.debug("Entering cherryPick:",r,t,s);const i=S();if(r=B.sanitizeText(r,i),t=B.sanitizeText(t,i),s=s?.map(l=>B.sanitizeText(l,i)),o=B.sanitizeText(o,i),!r||!d.records.commits.has(r)){const l=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw l.hash={text:`cherryPick ${r} ${t}`,token:`cherryPick ${r} ${t}`,expected:["cherry-pick abc"]},l}const n=d.records.commits.get(r);if(n===void 0||!n)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(o&&!(Array.isArray(n.parents)&&n.parents.includes(o)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");const a=n.branch;if(n.type===m.MERGE&&!o)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!t||!d.records.commits.has(t)){if(a===d.records.currBranch){const $=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw $.hash={text:`cherryPick ${r} ${t}`,token:`cherryPick ${r} ${t}`,expected:["cherry-pick abc"]},$}const l=d.records.branches.get(d.records.currBranch);if(l===void 0||!l){const $=new Error(`Incorrect usage of "cherry-pick". Current branch (${d.records.currBranch})has no commits`);throw $.hash={text:`cherryPick ${r} ${t}`,token:`cherryPick ${r} ${t}`,expected:["cherry-pick abc"]},$}const f=d.records.commits.get(l);if(f===void 0||!f){const $=new Error(`Incorrect usage of "cherry-pick". Current branch (${d.records.currBranch})has no commits`);throw $.hash={text:`cherryPick ${r} ${t}`,token:`cherryPick ${r} ${t}`,expected:["cherry-pick abc"]},$}const g={id:d.records.seq+"-"+Y(),message:`cherry-picked ${n?.message} into ${d.records.currBranch}`,seq:d.records.seq++,parents:d.records.head==null?[]:[d.records.head.id,n.id],branch:d.records.currBranch,type:m.CHERRY_PICK,tags:s?s.filter(Boolean):[`cherry-pick:${n.id}${n.type===m.MERGE?`|parent:${o}`:""}`]};d.records.head=g,d.records.commits.set(g.id,g),d.records.branches.set(d.records.currBranch,g.id),w.debug(d.records.branches),w.debug("in cherryPick")}},"cherryPick"),ae=h(function(e){if(e=B.sanitizeText(e,S()),d.records.branches.has(e)){d.records.currBranch=e;const r=d.records.branches.get(d.records.currBranch);r===void 0||!r?d.records.head=null:d.records.head=d.records.commits.get(r)??null}else{const r=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${e}")`);throw r.hash={text:`checkout ${e}`,token:`checkout ${e}`,expected:[`branch ${e}`]},r}},"checkout");function V(e,r,t){const s=e.indexOf(r);s===-1?e.push(t):e.splice(s,1,t)}h(V,"upsert");function Q(e){const r=e.reduce((o,i)=>o.seq>i.seq?o:i,e[0]);let t="";e.forEach(function(o){o===r?t+=" *":t+=" |"});const s=[t,r.id,r.seq];for(const o in d.records.branches)d.records.branches.get(o)===r.id&&s.push(o);if(w.debug(s.join(" ")),r.parents&&r.parents.length==2&&r.parents[0]&&r.parents[1]){const o=d.records.commits.get(r.parents[0]);V(e,r,o),r.parents[1]&&e.push(d.records.commits.get(r.parents[1]))}else{if(r.parents.length==0)return;if(r.parents[0]){const o=d.records.commits.get(r.parents[0]);V(e,r,o)}}e=te(e,o=>o.id),Q(e)}h(Q,"prettyPrintCommitHistory");var Ge=h(function(){w.debug(d.records.commits);const e=ne()[0];Q([e])},"prettyPrint"),He=h(function(){d.reset(),we()},"clear"),Se=h(function(){return[...d.records.branchConfig.values()].map((r,t)=>r.order!==null&&r.order!==void 0?r:{...r,order:parseFloat(`0.${t}`)}).sort((r,t)=>(r.order??0)-(t.order??0)).map(({name:r})=>({name:r}))},"getBranchesAsObjArray"),Ae=h(function(){return d.records.branches},"getBranches"),De=h(function(){return d.records.commits},"getCommits"),ne=h(function(){const e=[...d.records.commits.values()];return e.forEach(function(r){w.debug(r.id)}),e.sort((r,t)=>r.seq-t.seq),e},"getCommitsArray"),qe=h(function(){return d.records.currBranch},"getCurrentBranch"),Pe=h(function(){return d.records.direction},"getDirection"),We=h(function(){return d.records.head},"getHead"),se={commitType:m,getConfig:S,setDirection:Te,setOptions:Le,getOptions:Me,commit:Re,branch:Ie,merge:Oe,cherryPick:_e,checkout:ae,prettyPrint:Ge,clear:He,getBranchesAsObjArray:Se,getBranches:Ae,getCommits:De,getCommitsArray:ne,getCurrentBranch:qe,getDirection:Pe,getHead:We,setAccTitle:xe,getAccTitle:ye,getAccDescription:ue,setAccDescription:ge,setDiagramTitle:fe,getDiagramTitle:$e},Ne=h((e,r)=>{he(e,r),e.dir&&r.setDirection(e.dir);for(const t of e.statements)Fe(t,r)},"populate"),Fe=h((e,r)=>{const s={Commit:h(o=>r.commit(ze(o)),"Commit"),Branch:h(o=>r.branch(Ye(o)),"Branch"),Merge:h(o=>r.merge(je(o)),"Merge"),Checkout:h(o=>r.checkout(Ue(o)),"Checkout"),CherryPicking:h(o=>r.cherryPick(Ke(o)),"CherryPicking")}[e.$type];s?s(e):w.error(`Unknown statement type: ${e.$type}`)},"parseStatement"),ze=h(e=>({id:e.id,msg:e.message??"",type:e.type!==void 0?m[e.type]:m.NORMAL,tags:e.tags??void 0}),"parseCommit"),Ye=h(e=>({name:e.name,order:e.order??0}),"parseBranch"),je=h(e=>({branch:e.branch,id:e.id??"",type:e.type!==void 0?m[e.type]:void 0,tags:e.tags??void 0}),"parseMerge"),Ue=h(e=>e.branch,"parseCheckout"),Ke=h(e=>({id:e.id,targetId:"",tags:e.tags?.length===0?void 0:e.tags,parent:e.parent}),"parseCherryPicking"),Ve={parse:h(async e=>{const r=await Ee("gitGraph",e);w.debug(r),Ne(r,se)},"parse")},O=10,_=40,L=4,R=2,G=8,j=new Set(["redux","redux-dark","redux-color","redux-dark-color"]),X=12,Z=new Set(["redux-color","redux-dark-color"]),Xe=new Set(["dark","redux-dark","redux-dark-color","neo-dark"]),H=h((e,r,t=!1)=>t&&e>0?(e-1)%(r-1)+1:e%r,"calcColorIndex"),C=new Map,E=new Map,F=30,q=new Map,z=[],I=0,y="LR",Je=h(()=>{C.clear(),E.clear(),q.clear(),I=0,z=[],y="LR"},"clear"),oe=h(e=>{const r=document.createElementNS("http://www.w3.org/2000/svg","text");return(typeof e=="string"?e.split(/\\n|\n|/gi):e).forEach(s=>{const o=document.createElementNS("http://www.w3.org/2000/svg","tspan");o.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),o.setAttribute("dy","1em"),o.setAttribute("x","0"),o.setAttribute("class","row"),o.textContent=s.trim(),r.appendChild(o)}),r},"drawText"),ce=h(e=>{let r,t,s;return y==="BT"?(t=h((o,i)=>o<=i,"comparisonFunc"),s=1/0):(t=h((o,i)=>o>=i,"comparisonFunc"),s=0),e.forEach(o=>{const i=y==="TB"||y=="BT"?E.get(o)?.y:E.get(o)?.x;i!==void 0&&t(i,s)&&(r=o,s=i)}),r},"findClosestParent"),Qe=h(e=>{let r="",t=1/0;return e.forEach(s=>{const o=E.get(s).y;o<=t&&(r=s,t=o)}),r||void 0},"findClosestParentBT"),Ze=h((e,r,t)=>{let s=t,o=t;const i=[];e.forEach(n=>{const a=r.get(n);if(!a)throw new Error(`Commit not found for key ${n}`);a.parents.length?(s=rr(a),o=Math.max(s,o)):i.push(a),tr(a,s)}),s=o,i.forEach(n=>{ar(n,s,t)}),e.forEach(n=>{const a=r.get(n);if(a?.parents.length){const l=Qe(a.parents);s=E.get(l).y-_,s<=o&&(o=s);const f=C.get(a.branch).pos,g=s-O;E.set(a.id,{x:f,y:g})}})},"setParallelBTPos"),er=h(e=>{const r=ce(e.parents.filter(s=>s!==null));if(!r)throw new Error(`Closest parent not found for commit ${e.id}`);const t=E.get(r)?.y;if(t===void 0)throw new Error(`Closest parent position not found for commit ${e.id}`);return t},"findClosestParentPos"),rr=h(e=>er(e)+_,"calculateCommitPosition"),tr=h((e,r)=>{const t=C.get(e.branch);if(!t)throw new Error(`Branch not found for commit ${e.id}`);const s=t.pos,o=r+O;return E.set(e.id,{x:s,y:o}),{x:s,y:o}},"setCommitPosition"),ar=h((e,r,t)=>{const s=C.get(e.branch);if(!s)throw new Error(`Branch not found for commit ${e.id}`);const o=r+t,i=s.pos;E.set(e.id,{x:i,y:o})},"setRootPosition"),nr=h((e,r,t,s,o,i)=>{const{theme:n}=W(),a=j.has(n??""),l=Z.has(n??""),f=Xe.has(n??"");if(i===m.HIGHLIGHT)e.append("rect").attr("x",t.x-10+(a?3:0)).attr("y",t.y-10+(a?3:0)).attr("width",a?14:20).attr("height",a?14:20).attr("class",`commit ${r.id} commit-highlight${H(o,G,l)} ${s}-outer`),e.append("rect").attr("x",t.x-6+(a?2:0)).attr("y",t.y-6+(a?2:0)).attr("width",a?8:12).attr("height",a?8:12).attr("class",`commit ${r.id} commit${H(o,G,l)} ${s}-inner`);else if(i===m.CHERRY_PICK)e.append("circle").attr("cx",t.x).attr("cy",t.y).attr("r",a?7:10).attr("class",`commit ${r.id} ${s}`),e.append("circle").attr("cx",t.x-3).attr("cy",t.y+2).attr("r",a?2.5:2.75).attr("fill",f?"#000000":"#fff").attr("class",`commit ${r.id} ${s}`),e.append("circle").attr("cx",t.x+3).attr("cy",t.y+2).attr("r",a?2.5:2.75).attr("fill",f?"#000000":"#fff").attr("class",`commit ${r.id} ${s}`),e.append("line").attr("x1",t.x+3).attr("y1",t.y+1).attr("x2",t.x).attr("y2",t.y-5).attr("stroke",f?"#000000":"#fff").attr("class",`commit ${r.id} ${s}`),e.append("line").attr("x1",t.x-3).attr("y1",t.y+1).attr("x2",t.x).attr("y2",t.y-5).attr("stroke",f?"#000000":"#fff").attr("class",`commit ${r.id} ${s}`);else{const g=e.append("circle");if(g.attr("cx",t.x),g.attr("cy",t.y),g.attr("r",a?7:10),g.attr("class",`commit ${r.id} commit${H(o,G,l)}`),i===m.MERGE){const $=e.append("circle");$.attr("cx",t.x),$.attr("cy",t.y),$.attr("r",a?5:6),$.attr("class",`commit ${s} ${r.id} commit${H(o,G,l)}`)}if(i===m.REVERSE){const $=e.append("path"),c=a?4:5;$.attr("d",`M ${t.x-c},${t.y-c}L${t.x+c},${t.y+c}M${t.x-c},${t.y+c}L${t.x+c},${t.y-c}`).attr("class",`commit ${s} ${r.id} commit${H(o,G,l)}`)}}},"drawCommitBullet"),sr=h((e,r,t,s,o)=>{if(r.type!==m.CHERRY_PICK&&(r.customId&&r.type===m.MERGE||r.type!==m.MERGE)&&o.showCommitLabel){const i=e.append("g"),n=i.insert("rect").attr("class","commit-label-bkg"),a=i.append("text").attr("x",s).attr("y",t.y+25).attr("class","commit-label").text(r.id),l=a.node()?.getBBox();if(l&&(n.attr("x",t.posWithOffset-l.width/2-R).attr("y",t.y+13.5).attr("width",l.width+2*R).attr("height",l.height+2*R),y==="TB"||y==="BT"?(n.attr("x",t.x-(l.width+4*L+5)).attr("y",t.y-12),a.attr("x",t.x-(l.width+4*L)).attr("y",t.y+l.height-12)):a.attr("x",t.posWithOffset-l.width/2),o.rotateCommitLabel))if(y==="TB"||y==="BT")a.attr("transform","rotate(-45, "+t.x+", "+t.y+")"),n.attr("transform","rotate(-45, "+t.x+", "+t.y+")");else{const f=-7.5-(l.width+10)/25*9.5,g=10+l.width/25*8.5;i.attr("transform","translate("+f+", "+g+") rotate(-45, "+s+", "+t.y+")")}}},"drawCommitLabel"),or=h((e,r,t,s)=>{if(r.tags.length>0){let o=0,i=0,n=0;const a=[];for(const l of r.tags.reverse()){const f=e.insert("polygon"),g=e.append("circle"),$=e.append("text").attr("y",t.y-16-o).attr("class","tag-label").text(l),c=$.node()?.getBBox();if(!c)throw new Error("Tag bbox not found");i=Math.max(i,c.width),n=Math.max(n,c.height),$.attr("x",t.posWithOffset-c.width/2),a.push({tag:$,hole:g,rect:f,yOffset:o}),o+=20}for(const{tag:l,hole:f,rect:g,yOffset:$}of a){const c=n/2,x=t.y-19.2-$;if(g.attr("class","tag-label-bkg").attr("points",` + ${s-i/2-L/2},${x+R} + ${s-i/2-L/2},${x-R} + ${t.posWithOffset-i/2-L},${x-c-R} + ${t.posWithOffset+i/2+L},${x-c-R} + ${t.posWithOffset+i/2+L},${x+c+R} + ${t.posWithOffset-i/2-L},${x+c+R}`),f.attr("cy",x).attr("cx",s-i/2+L/2).attr("r",1.5).attr("class","tag-hole"),y==="TB"||y==="BT"){const u=s+$;g.attr("class","tag-label-bkg").attr("points",` + ${t.x},${u+2} + ${t.x},${u-2} + ${t.x+O},${u-c-2} + ${t.x+O+i+4},${u-c-2} + ${t.x+O+i+4},${u+c+2} + ${t.x+O},${u+c+2}`).attr("transform","translate(12,12) rotate(45, "+t.x+","+s+")"),f.attr("cx",t.x+L/2).attr("cy",u).attr("transform","translate(12,12) rotate(45, "+t.x+","+s+")"),l.attr("x",t.x+5).attr("y",u+3).attr("transform","translate(14,14) rotate(45, "+t.x+","+s+")")}}}},"drawCommitTags"),cr=h(e=>{switch(e.customType??e.type){case m.NORMAL:return"commit-normal";case m.REVERSE:return"commit-reverse";case m.HIGHLIGHT:return"commit-highlight";case m.MERGE:return"commit-merge";case m.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}},"getCommitClassType"),ir=h((e,r,t,s)=>{const o={x:0,y:0};if(e.parents.length>0){const i=ce(e.parents);if(i){const n=s.get(i)??o;return r==="TB"?n.y+_:r==="BT"?(s.get(e.id)??o).y-_:n.x+_}}else return r==="TB"?F:r==="BT"?(s.get(e.id)??o).y-_:0;return 0},"calculatePosition"),dr=h((e,r,t)=>{const s=y==="BT"&&t?r:r+O,o=C.get(e.branch)?.pos,i=y==="TB"||y==="BT"?C.get(e.branch)?.pos:s;if(i===void 0||o===void 0)throw new Error(`Position were undefined for commit ${e.id}`);const n=j.has(W().theme??""),a=y==="TB"||y==="BT"?s:o+(n?X/2+1:-2);return{x:i,y:a,posWithOffset:s}},"getCommitPosition"),re=h((e,r,t,s)=>{const o=e.append("g").attr("class","commit-bullets"),i=e.append("g").attr("class","commit-labels");let n=y==="TB"||y==="BT"?F:0;const a=[...r.keys()],l=s.parallelCommits??!1,f=h(($,c)=>{const x=r.get($)?.seq,u=r.get(c)?.seq;return x!==void 0&&u!==void 0?x-u:0},"sortKeys");let g=a.sort(f);y==="BT"&&(l&&Ze(g,r,n),g=g.reverse()),g.forEach($=>{const c=r.get($);if(!c)throw new Error(`Commit not found for key ${$}`);l&&(n=ir(c,y,n,E));const x=dr(c,n,l);if(t){const u=cr(c),p=c.customType??c.type,b=C.get(c.branch)?.index??0;nr(o,c,x,u,b,p),sr(i,c,x,n,s),or(i,c,x,n)}y==="TB"||y==="BT"?E.set(c.id,{x:x.x,y:x.posWithOffset}):E.set(c.id,{x:x.posWithOffset,y:x.y}),n=y==="BT"&&l?n+_:n+_+O,n>I&&(I=n)})},"drawCommits"),lr=h((e,r,t,s,o)=>{const n=(y==="TB"||y==="BT"?t.xf.branch===n,"isOnBranchToGetCurve"),l=h(f=>f.seq>e.seq&&f.seql(f)&&a(f))},"shouldRerouteArrow"),P=h((e,r,t=0)=>{const s=e+Math.abs(e-r)/2;if(t>5)return s;if(z.every(n=>Math.abs(n-s)>=10))return z.push(s),s;const i=Math.abs(e-r);return P(e,r-i/5,t+1)},"findLane"),hr=h((e,r,t,s)=>{const{theme:o}=W(),i=Z.has(o??""),n=E.get(r.id),a=E.get(t.id);if(n===void 0||a===void 0)throw new Error(`Commit positions not found for commits ${r.id} and ${t.id}`);const l=lr(r,t,n,a,s);let f="",g="",$=0,c=0,x=C.get(t.branch)?.index;t.type===m.MERGE&&r.id!==t.parents[0]&&(x=C.get(r.branch)?.index);let u;if(l){f="A 10 10, 0, 0, 0,",g="A 10 10, 0, 0, 1,",$=10,c=10;const p=n.ya.x&&(f="A 20 20, 0, 0, 0,",g="A 20 20, 0, 0, 1,",$=20,c=20,t.type===m.MERGE&&r.id!==t.parents[0]?u=`M ${n.x} ${n.y} L ${n.x} ${a.y-$} ${g} ${n.x-c} ${a.y} L ${a.x} ${a.y}`:u=`M ${n.x} ${n.y} L ${a.x+$} ${n.y} ${f} ${a.x} ${n.y+c} L ${a.x} ${a.y}`),n.x===a.x&&(u=`M ${n.x} ${n.y} L ${a.x} ${a.y}`)):y==="BT"?(n.xa.x&&(f="A 20 20, 0, 0, 0,",g="A 20 20, 0, 0, 1,",$=20,c=20,t.type===m.MERGE&&r.id!==t.parents[0]?u=`M ${n.x} ${n.y} L ${n.x} ${a.y+$} ${f} ${n.x-c} ${a.y} L ${a.x} ${a.y}`:u=`M ${n.x} ${n.y} L ${a.x+$} ${n.y} ${g} ${a.x} ${n.y-c} L ${a.x} ${a.y}`),n.x===a.x&&(u=`M ${n.x} ${n.y} L ${a.x} ${a.y}`)):(n.ya.y&&(t.type===m.MERGE&&r.id!==t.parents[0]?u=`M ${n.x} ${n.y} L ${a.x-$} ${n.y} ${f} ${a.x} ${n.y-c} L ${a.x} ${a.y}`:u=`M ${n.x} ${n.y} L ${n.x} ${a.y+$} ${g} ${n.x+c} ${a.y} L ${a.x} ${a.y}`),n.y===a.y&&(u=`M ${n.x} ${n.y} L ${a.x} ${a.y}`));if(u===void 0)throw new Error("Line definition not found");e.append("path").attr("d",u).attr("class","arrow arrow"+H(x,G,i))},"drawArrow"),$r=h((e,r)=>{const t=e.append("g").attr("class","commit-arrows");[...r.keys()].forEach(s=>{const o=r.get(s);o.parents&&o.parents.length>0&&o.parents.forEach(i=>{hr(t,r.get(i),o,r)})})},"drawArrows"),fr=h((e,r,t,s)=>{const{look:o,theme:i,themeVariables:n}=W(),{dropShadow:a,THEME_COLOR_LIMIT:l}=n,f=j.has(i??""),g=Z.has(i??""),$=e.append("g");r.forEach((c,x)=>{const u=H(x,f?l:G,g),p=C.get(c.name)?.pos;if(p===void 0)throw new Error(`Position not found for branch ${c.name}`);const b=y==="TB"||y==="BT"?p:f?p+X/2+1:p-2,k=$.append("line");k.attr("x1",0),k.attr("y1",b),k.attr("x2",I),k.attr("y2",b),k.attr("class","branch branch"+u),y==="TB"?(k.attr("y1",F),k.attr("x1",p),k.attr("y2",I),k.attr("x2",p)):y==="BT"&&(k.attr("y1",I),k.attr("x1",p),k.attr("y2",F),k.attr("x2",p)),z.push(b);const U=c.name,D=oe(U),T=$.insert("rect"),M=$.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+u);M.node().appendChild(D);const v=D.getBBox(),ee=f?0:4,N=f?16:0,A=f?X:0;o==="neo"&&T.attr("data-look","neo"),T.attr("class","branchLabelBkg label"+u).attr("style",o==="neo"?`filter:${f?`url(#${s}-drop-shadow)`:a}`:"").attr("rx",ee).attr("ry",ee).attr("x",-v.width-4-(t.rotateCommitLabel===!0?30:0)).attr("y",-v.height/2+10).attr("width",v.width+18+N).attr("height",v.height+4+A),M.attr("transform","translate("+(-v.width-14-(t.rotateCommitLabel===!0?30:0)+N/2)+", "+(b-v.height/2-2)+")"),y==="TB"?(T.attr("x",p-v.width/2-10).attr("y",0),M.attr("transform","translate("+(p-v.width/2-5)+", 0)"),f&&(T.attr("transform",`translate(${-N/2-3}, ${-A-10})`),M.attr("transform","translate("+(p-v.width/2-5)+", "+(-A*2+7)+")"))):y==="BT"?(T.attr("x",p-v.width/2-10).attr("y",I),M.attr("transform","translate("+(p-v.width/2-5)+", "+I+")"),f&&(T.attr("transform",`translate(${-N/2-3}, ${A+10})`),M.attr("transform","translate("+(p-v.width/2-5)+", "+(I+A*2+4)+")"))):T.attr("transform","translate(-19, "+(b-12-A/2)+")")})},"drawBranches"),gr=h(function(e,r,t,s,o){return C.set(e,{pos:r,index:t}),r+=50+(o?40:0)+(y==="TB"||y==="BT"?s.width/2:0),r},"setBranchPosition"),ur=h(function(e,r,t,s){Je(),w.debug("in gitgraph renderer",e+` +`,"id:",r,t);const o=s.db;if(!o.getConfig){w.error("getConfig method is not available on db");return}const i=o.getConfig(),n=i.rotateCommitLabel??!1;q=o.getCommits();const a=o.getBranchesAsObjArray();y=o.getDirection();const l=me(`[id="${r}"]`),{look:f,theme:g,themeVariables:$}=W(),{useGradient:c,gradientStart:x,gradientStop:u,filterColor:p}=$;if(c){const k=l.append("defs").append("linearGradient").attr("id",r+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");k.append("stop").attr("offset","0%").attr("stop-color",x).attr("stop-opacity",1),k.append("stop").attr("offset","100%").attr("stop-color",u).attr("stop-opacity",1)}f==="neo"&&j.has(g??"")&&l.append("defs").append("filter").attr("id",r+"-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",p);let b=0;a.forEach((k,U)=>{const D=oe(k.name),T=l.append("g"),K=T.insert("g").attr("class","branchLabel"),M=K.insert("g").attr("class","label branch-label");M.node()?.appendChild(D);const v=D.getBBox();b=gr(k.name,b,U,v,n),M.remove(),K.remove(),T.remove()}),re(l,q,!1,i),i.showBranches&&fr(l,a,i,r),$r(l,q),re(l,q,!0,i),pe.insertTitle(l,"gitTitleText",i.titleTopMargin??0,o.getDiagramTitle()),be(void 0,l,i.diagramPadding,i.useMaxWidth)},"draw"),yr={draw:ur},ie=8,de=new Set(["redux","redux-dark","redux-color","redux-dark-color"]),xr=new Set(["redux-color","redux-dark-color"]),mr=new Set(["neo","neo-dark"]),pr=new Set(["dark","redux-dark","redux-dark-color","neo-dark"]),br=new Set(["redux","redux-dark","redux-color","redux-dark-color","neo","neo-dark"]),wr=h(e=>{const{svgId:r}=e;let t="";if(e.useGradient&&r)for(let s=0;s{const r=J(),{theme:t,themeVariables:s}=r,{borderColorArray:o}=s,i=de.has(t);if(mr.has(t)){let n="";for(let a=0;a`${Array.from({length:e.THEME_COLOR_LIMIT},(r,t)=>t).map(r=>{const t=r%ie;return` + .branch-label${r} { fill: ${e["gitBranchLabel"+t]}; } + .commit${r} { stroke: ${e["git"+t]}; fill: ${e["git"+t]}; } + .commit-highlight${r} { stroke: ${e["gitInv"+t]}; fill: ${e["gitInv"+t]}; } + .label${r} { fill: ${e["git"+t]}; } + .arrow${r} { stroke: ${e["git"+t]}; } + `}).join(` +`)}`,"normalTheme"),Cr=h(e=>{const r=J(),{theme:t}=r,s=br.has(t);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); + } + + ${s?kr(e):vr(e)} + + .branch { + stroke-width: ${e.strokeWidth}; + stroke: ${e.commitLineColor??e.lineColor}; + stroke-dasharray: ${s?"4 2":"2"}; + } + .commit-label { font-size: ${e.commitLabelFontSize}; fill: ${s?e.nodeBorder:e.commitLabelColor}; ${s?`font-weight:${e.noteFontWeight};`:""}} + .commit-label-bkg { font-size: ${e.commitLabelFontSize}; fill: ${s?"transparent":e.commitLabelBackground}; opacity: ${s?"":.5}; } + .tag-label { font-size: ${e.tagLabelFontSize}; fill: ${e.tagLabelColor};} + .tag-label-bkg { fill: ${s?e.mainBkg:e.tagLabelBackground}; stroke: ${s?e.nodeBorder:e.tagLabelBorder}; ${s?`filter:${e.dropShadow}`:""} } + .tag-hole { fill: ${e.textColor}; } + + .commit-merge { + stroke: ${s?e.mainBkg:e.primaryColor}; + fill: ${s?e.mainBkg:e.primaryColor}; + } + .commit-reverse { + stroke: ${s?e.mainBkg:e.primaryColor}; + fill: ${s?e.mainBkg:e.primaryColor}; + stroke-width: ${s?e.strokeWidth:3}; + } + .commit-highlight-outer { + } + .commit-highlight-inner { + stroke: ${s?e.mainBkg:e.primaryColor}; + fill: ${s?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: ${de.has(t)?e.strokeWidth:8}; + stroke-linecap: round; + fill: none + } + .gitTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } +`},"getStyles"),Er=Cr,Ir={parser:Ve,db:se,renderer:yr,styles:Er};export{Ir as diagram}; diff --git a/apps/kimi-code/dist-web/assets/index-7SHxad1A.js b/apps/kimi-code/dist-web/assets/index-7SHxad1A.js deleted file mode 100644 index 499a4d6e4..000000000 --- a/apps/kimi-code/dist-web/assets/index-7SHxad1A.js +++ /dev/null @@ -1,962 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mhchem-DtR62fUK.js","assets/katex-DnlPpQZa.js","assets/mermaid.core-CgZTgv7Y.js","assets/_commonjsHelpers-CqkleIqs.js","assets/CodeBlockNode-ClI5Zc7C.js","assets/safeRaf-DGuzXxDK.js","assets/index5-COqqDMp9.js","assets/index11-DW3IQa8f.js","assets/rive-CeXCFBdn.js"])))=>i.map(i=>d[i]); -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))i(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const r of s.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&i(r)}).observe(document,{childList:!0,subtree:!0});function n(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(o){if(o.ep)return;o.ep=!0;const s=n(o);fetch(o.href,s)}})();/** -* @vue/shared v3.5.39 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function y4(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const pi={},Ym=[],uu=()=>{},uH=()=>!1,z2=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),k4=e=>e.startsWith("onUpdate:"),qi=Object.assign,p_=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Dne=Object.prototype.hasOwnProperty,Mi=(e,t)=>Dne.call(e,t),_n=Array.isArray,Jm=e=>Gg(e)==="[object Map]",E1=e=>Gg(e)==="[object Set]",pB=e=>Gg(e)==="[object Date]",Nne=e=>Gg(e)==="[object RegExp]",Pn=e=>typeof e=="function",Xi=e=>typeof e=="string",Bl=e=>typeof e=="symbol",Fi=e=>e!==null&&typeof e=="object",m_=e=>(Fi(e)||Pn(e))&&Pn(e.then)&&Pn(e.catch),cH=Object.prototype.toString,Gg=e=>cH.call(e),Lne=e=>Gg(e).slice(8,-1),b4=e=>Gg(e)==="[object Object]",w4=e=>Xi(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Gp=y4(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),C4=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},Pne=/-\w/g,Qs=C4(e=>e.replace(Pne,t=>t.slice(1).toUpperCase())),One=/\B([A-Z])/g,Pa=C4(e=>e.replace(One,"-$1").toLowerCase()),S4=C4(e=>e.charAt(0).toUpperCase()+e.slice(1)),m9=C4(e=>e?`on${S4(e)}`:""),nr=(e,t)=>!Object.is(e,t),Xm=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:i,value:n})},x4=e=>{const t=parseFloat(e);return isNaN(t)?e:t},hb=e=>{const t=Xi(e)?Number(e):NaN;return isNaN(t)?e:t};let mB;const _4=()=>mB||(mB=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}),zne="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol",$ne=y4(zne);function an(e){if(_n(e)){const t={};for(let n=0;n{if(n){const i=n.split(Hne);i.length>1&&(t[i[0].trim()]=i[1].trim())}}),t}function De(e){let t="";if(Xi(e))t=e;else if(_n(e))for(let n=0;nUd(n,t))}const hH=e=>!!(e&&e.__v_isRef===!0),$=e=>Xi(e)?e:e==null?"":_n(e)||Fi(e)&&(e.toString===cH||!Pn(e.toString))?hH(e)?$(e.value):JSON.stringify(e,pH,2):String(e),pH=(e,t)=>hH(t)?pH(e,t.value):Jm(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[i,o],s)=>(n[N3(i,s)+" =>"]=o,n),{})}:E1(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>N3(n))}:Bl(t)?N3(t):Fi(t)&&!_n(t)&&!b4(t)?String(t):t,N3=(e,t="")=>{var n;return Bl(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};function Kne(e){return e==null?"initial":typeof e=="string"?e===""?" ":e:String(e)}/** -* @vue/reactivity v3.5.39 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let zs;class mH{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&zs&&(zs.active?(this.parent=zs,this.index=(zs.scopes||(zs.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0){if(zs===this)zs=this.prevScope;else{let t=zs;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,i;for(n=0,i=this.effects.length;n0)return;if(Zv){let t=Zv;for(Zv=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Kv;){let t=Kv;for(Kv=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(i){e||(e=i)}t=n}}if(e)throw e}function AH(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function yH(e){let t,n=e.depsTail,i=n;for(;i;){const o=i.prevDep;i.version===-1?(i===n&&(n=o),A_(i),Zne(i)):t=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=o}e.deps=t,e.depsTail=n}function B6(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(kH(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function kH(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===$A)||(e.globalVersion=$A,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!B6(e))))return;e.flags|=2;const t=e.dep,n=lo,i=Vu;lo=e,Vu=!0;try{AH(e);const o=e.fn(e._value);(t.version===0||nr(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{lo=n,Vu=i,yH(e),e.flags&=-3}}function A_(e,t=!1){const{dep:n,prevSub:i,nextSub:o}=e;if(i&&(i.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=i,e.nextSub=void 0),n.subs===e&&(n.subs=i,!i&&n.computed)){n.computed.flags&=-5;for(let s=n.computed.deps;s;s=s.nextDep)A_(s,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Zne(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}function Mxt(e,t){e.effect instanceof pb&&(e=e.effect.fn);const n=new pb(e);t&&qi(n,t);try{n.run()}catch(o){throw n.stop(),o}const i=n.run.bind(n);return i.effect=n,i}function Txt(e){e.effect.stop()}let Vu=!0;const bH=[];function Vc(){bH.push(Vu),Vu=!1}function Gc(){const e=bH.pop();Vu=e===void 0?!0:e}function gB(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=lo;lo=void 0;try{t()}finally{lo=n}}}let $A=0,Yne=class{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}};class M4{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!lo||!Vu||lo===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==lo)n=this.activeLink=new Yne(lo,this),lo.deps?(n.prevDep=lo.depsTail,lo.depsTail.nextDep=n,lo.depsTail=n):lo.deps=lo.depsTail=n,wH(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const i=n.nextDep;i.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=i),n.prevDep=lo.depsTail,n.nextDep=void 0,lo.depsTail.nextDep=n,lo.depsTail=n,lo.deps===n&&(lo.deps=i)}return n}trigger(t){this.version++,$A++,this.notify(t)}notify(t){g_();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{v_()}}}function wH(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let i=t.deps;i;i=i.nextDep)wH(i)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const mb=new WeakMap,qp=Symbol(""),F6=Symbol(""),jA=Symbol("");function Wr(e,t,n){if(Vu&&lo){let i=mb.get(e);i||mb.set(e,i=new Map);let o=i.get(n);o||(i.set(n,o=new M4),o.map=i,o.key=n),o.track()}}function _d(e,t,n,i,o,s){const r=mb.get(e);if(!r){$A++;return}const a=l=>{l&&l.trigger()};if(g_(),t==="clear")r.forEach(a);else{const l=_n(e),u=l&&w4(n);if(l&&n==="length"){const c=Number(i);r.forEach((d,f)=>{(f==="length"||f===jA||!Bl(f)&&f>=c)&&a(d)})}else switch((n!==void 0||r.has(void 0))&&a(r.get(n)),u&&a(r.get(jA)),t){case"add":l?u&&a(r.get("length")):(a(r.get(qp)),Jm(e)&&a(r.get(F6)));break;case"delete":l||(a(r.get(qp)),Jm(e)&&a(r.get(F6)));break;case"set":Jm(e)&&a(r.get(qp));break}}v_()}function Jne(e,t){const n=mb.get(e);return n&&n.get(t)}function Y1(e){const t=gi(e);return t===e?t:(Wr(t,"iterate",jA),Sl(e)?t:t.map(Ju))}function T4(e){return Wr(e=gi(e),"iterate",jA),e}function Ec(e,t){return Wd(e)?Sg(Gu(e)?Ju(t):t):Ju(t)}const Xne={__proto__:null,[Symbol.iterator](){return P3(this,Symbol.iterator,e=>Ec(this,e))},concat(...e){return Y1(this).concat(...e.map(t=>_n(t)?Y1(t):t))},entries(){return P3(this,"entries",e=>(e[1]=Ec(this,e[1]),e))},every(e,t){return pd(this,"every",e,t,void 0,arguments)},filter(e,t){return pd(this,"filter",e,t,n=>n.map(i=>Ec(this,i)),arguments)},find(e,t){return pd(this,"find",e,t,n=>Ec(this,n),arguments)},findIndex(e,t){return pd(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return pd(this,"findLast",e,t,n=>Ec(this,n),arguments)},findLastIndex(e,t){return pd(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return pd(this,"forEach",e,t,void 0,arguments)},includes(...e){return O3(this,"includes",e)},indexOf(...e){return O3(this,"indexOf",e)},join(e){return Y1(this).join(e)},lastIndexOf(...e){return O3(this,"lastIndexOf",e)},map(e,t){return pd(this,"map",e,t,void 0,arguments)},pop(){return V0(this,"pop")},push(...e){return V0(this,"push",e)},reduce(e,...t){return vB(this,"reduce",e,t)},reduceRight(e,...t){return vB(this,"reduceRight",e,t)},shift(){return V0(this,"shift")},some(e,t){return pd(this,"some",e,t,void 0,arguments)},splice(...e){return V0(this,"splice",e)},toReversed(){return Y1(this).toReversed()},toSorted(e){return Y1(this).toSorted(e)},toSpliced(...e){return Y1(this).toSpliced(...e)},unshift(...e){return V0(this,"unshift",e)},values(){return P3(this,"values",e=>Ec(this,e))}};function P3(e,t,n){const i=T4(e),o=i[t]();return i!==e&&!Sl(e)&&(o._next=o.next,o.next=()=>{const s=o._next();return s.done||(s.value=n(s.value)),s}),o}const eie=Array.prototype;function pd(e,t,n,i,o,s){const r=T4(e),a=r!==e&&!Sl(e),l=r[t];if(l!==eie[t]){const d=l.apply(e,s);return a?Ju(d):d}let u=n;r!==e&&(a?u=function(d,f){return n.call(this,Ec(e,d),f,e)}:n.length>2&&(u=function(d,f){return n.call(this,d,f,e)}));const c=l.call(r,u,i);return a&&o?o(c):c}function vB(e,t,n,i){const o=T4(e),s=o!==e&&!Sl(e);let r=n,a=!1;o!==e&&(s?(a=i.length===0,r=function(u,c,d){return a&&(a=!1,u=Ec(e,u)),n.call(this,u,Ec(e,c),d,e)}):n.length>3&&(r=function(u,c,d){return n.call(this,u,c,d,e)}));const l=o[t](r,...i);return a?Ec(e,l):l}function O3(e,t,n){const i=gi(e);Wr(i,"iterate",jA);const o=i[t](...n);return(o===-1||o===!1)&&R4(n[0])?(n[0]=gi(n[0]),i[t](...n)):o}function V0(e,t,n=[]){Vc(),g_();const i=gi(e)[t].apply(e,n);return v_(),Gc(),i}const tie=y4("__proto__,__v_isRef,__isVue"),CH=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Bl));function nie(e){Bl(e)||(e=String(e));const t=gi(this);return Wr(t,"has",e),t.hasOwnProperty(e)}class SH{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,i){if(n==="__v_skip")return t.__v_skip;const o=this._isReadonly,s=this._isShallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return s;if(n==="__v_raw")return i===(o?s?TH:MH:s?IH:EH).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(i)?t:void 0;const r=_n(t);if(!o){let l;if(r&&(l=Xne[n]))return l;if(n==="hasOwnProperty")return nie}const a=Reflect.get(t,n,eo(t)?t:i);if((Bl(n)?CH.has(n):tie(n))||(o||Wr(t,"get",n),s))return a;if(eo(a)){const l=r&&w4(n)?a:a.value;return o&&Fi(l)?gb(l):l}return Fi(a)?o?gb(a):go(a):a}}class xH extends SH{constructor(t=!1){super(!1,t)}set(t,n,i,o){let s=t[n];const r=_n(t)&&w4(n);if(!this._isShallow){const u=Wd(s);if(!Sl(i)&&!Wd(i)&&(s=gi(s),i=gi(i)),!r&&eo(s)&&!eo(i))return u||(s.value=i),!0}const a=r?Number(n)e,Qy=e=>Reflect.getPrototypeOf(e);function aie(e,t,n){return function(...i){const o=this.__v_raw,s=gi(o),r=Jm(s),a=e==="entries"||e===Symbol.iterator&&r,l=e==="keys"&&r,u=o[e](...i),c=n?R6:t?Sg:Ju;return!t&&Wr(s,"iterate",l?F6:qp),qi(Object.create(u),{next(){const{value:d,done:f}=u.next();return f?{value:d,done:f}:{value:a?[c(d[0]),c(d[1])]:c(d),done:f}}})}}function Vy(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function lie(e,t){const n={get(o){const s=this.__v_raw,r=gi(s),a=gi(o);e||(nr(o,a)&&Wr(r,"get",o),Wr(r,"get",a));const{has:l}=Qy(r),u=t?R6:e?Sg:Ju;if(l.call(r,o))return u(s.get(o));if(l.call(r,a))return u(s.get(a));s!==r&&s.get(o)},get size(){const o=this.__v_raw;return!e&&Wr(gi(o),"iterate",qp),o.size},has(o){const s=this.__v_raw,r=gi(s),a=gi(o);return e||(nr(o,a)&&Wr(r,"has",o),Wr(r,"has",a)),o===a?s.has(o):s.has(o)||s.has(a)},forEach(o,s){const r=this,a=r.__v_raw,l=gi(a),u=t?R6:e?Sg:Ju;return!e&&Wr(l,"iterate",qp),a.forEach((c,d)=>o.call(s,u(c),u(d),r))}};return qi(n,e?{add:Vy("add"),set:Vy("set"),delete:Vy("delete"),clear:Vy("clear")}:{add(o){const s=gi(this),r=Qy(s),a=gi(o),l=!t&&!Sl(o)&&!Wd(o)?a:o;return r.has.call(s,l)||nr(o,l)&&r.has.call(s,o)||nr(a,l)&&r.has.call(s,a)||(s.add(l),_d(s,"add",l,l)),this},set(o,s){!t&&!Sl(s)&&!Wd(s)&&(s=gi(s));const r=gi(this),{has:a,get:l}=Qy(r);let u=a.call(r,o);u||(o=gi(o),u=a.call(r,o));const c=l.call(r,o);return r.set(o,s),u?nr(s,c)&&_d(r,"set",o,s):_d(r,"add",o,s),this},delete(o){const s=gi(this),{has:r,get:a}=Qy(s);let l=r.call(s,o);l||(o=gi(o),l=r.call(s,o)),a&&a.call(s,o);const u=s.delete(o);return l&&_d(s,"delete",o,void 0),u},clear(){const o=gi(this),s=o.size!==0,r=o.clear();return s&&_d(o,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=aie(o,e,t)}),n}function B4(e,t){const n=lie(e,t);return(i,o,s)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?i:Reflect.get(Mi(n,o)&&o in i?n:i,o,s)}const uie={get:B4(!1,!1)},cie={get:B4(!1,!0)},die={get:B4(!0,!1)},fie={get:B4(!0,!0)},EH=new WeakMap,IH=new WeakMap,MH=new WeakMap,TH=new WeakMap;function hie(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function go(e){return Wd(e)?e:F4(e,!1,iie,uie,EH)}function l1(e){return F4(e,!1,sie,cie,IH)}function gb(e){return F4(e,!0,oie,die,MH)}function Fxt(e){return F4(e,!0,rie,fie,TH)}function F4(e,t,n,i,o){if(!Fi(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const s=o.get(e);if(s)return s;const r=hie(Lne(e));if(r===0)return e;const a=new Proxy(e,r===2?i:n);return o.set(e,a),a}function Gu(e){return Wd(e)?Gu(e.__v_raw):!!(e&&e.__v_isReactive)}function Wd(e){return!!(e&&e.__v_isReadonly)}function Sl(e){return!!(e&&e.__v_isShallow)}function R4(e){return e?!!e.__v_raw:!1}function gi(e){const t=e&&e.__v_raw;return t?gi(t):e}function Tt(e){return!Mi(e,"__v_skip")&&Object.isExtensible(e)&&dH(e,"__v_skip",!0),e}const Ju=e=>Fi(e)?go(e):e,Sg=e=>Fi(e)?gb(e):e;function eo(e){return e?e.__v_isRef===!0:!1}function V(e){return BH(e,!1)}function qa(e){return BH(e,!0)}function BH(e,t){return eo(e)?e:new pie(e,t)}class pie{constructor(t,n){this.dep=new M4,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:gi(t),this._value=n?t:Ju(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,i=this.__v_isShallow||Sl(t)||Wd(t);t=i?t:gi(t),nr(t,n)&&(this._rawValue=t,this._value=i?t:Ju(t),this.dep.trigger())}}function mie(e){e.dep&&e.dep.trigger()}function p(e){return eo(e)?e.value:e}function Lu(e){return Pn(e)?e():p(e)}const gie={get:(e,t,n)=>t==="__v_raw"?e:p(Reflect.get(e,t,n)),set:(e,t,n,i)=>{const o=e[t];return eo(o)&&!eo(n)?(o.value=n,!0):Reflect.set(e,t,n,i)}};function FH(e){return Gu(e)?e:new Proxy(e,gie)}class vie{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new M4,{get:i,set:o}=t(n.track.bind(n),n.trigger.bind(n));this._get=i,this._set=o}get value(){return this._value=this._get()}set value(t){this._set(t)}}function Aie(e){return new vie(e)}function yie(e){const t=_n(e)?new Array(e.length):{};for(const n in e)t[n]=RH(e,n);return t}class kie{constructor(t,n,i){this._object=t,this._defaultValue=i,this.__v_isRef=!0,this._value=void 0,this._key=Bl(n)?n:String(n),this._raw=gi(t);let o=!0,s=t;if(!_n(t)||Bl(this._key)||!w4(this._key))do o=!R4(s)||Sl(s);while(o&&(s=s.__v_raw));this._shallow=o}get value(){let t=this._object[this._key];return this._shallow&&(t=p(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&eo(this._raw[this._key])){const n=this._object[this._key];if(eo(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Jne(this._raw,this._key)}}class bie{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function wie(e,t,n){return eo(e)?e:Pn(e)?new bie(e):Fi(e)&&arguments.length>1?RH(e,t,n):V(e)}function RH(e,t,n){return new kie(e,t,n)}class Cie{constructor(t,n,i){this.fn=t,this.setter=n,this._value=void 0,this.dep=new M4(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=$A-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&lo!==this)return vH(this,!0),!0}get value(){const t=this.dep.track();return kH(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Sie(e,t,n=!1){let i,o;return Pn(e)?i=e:(i=e.get,o=e.set),new Cie(i,o,n)}const Rxt={GET:"get",HAS:"has",ITERATE:"iterate"},Dxt={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},Gy={},vb=new WeakMap;let Mf;function Nxt(){return Mf}function xie(e,t=!1,n=Mf){if(n){let i=vb.get(n);i||vb.set(n,i=[]),i.push(e)}}function _ie(e,t,n=pi){const{immediate:i,deep:o,once:s,scheduler:r,augmentJob:a,call:l}=n,u=w=>o?w:Sl(w)||o===!1||o===0?Ed(w,1):Ed(w);let c,d,f,h,m=!1,g=!1;if(eo(e)?(d=()=>e.value,m=Sl(e)):Gu(e)?(d=()=>u(e),m=!0):_n(e)?(g=!0,m=e.some(w=>Gu(w)||Sl(w)),d=()=>e.map(w=>{if(eo(w))return w.value;if(Gu(w))return u(w);if(Pn(w))return l?l(w,2):w()})):Pn(e)?t?d=l?()=>l(e,2):e:d=()=>{if(f){Vc();try{f()}finally{Gc()}}const w=Mf;Mf=c;try{return l?l(e,3,[h]):e(h)}finally{Mf=w}}:d=uu,t&&o){const w=d,_=o===!0?1/0:o;d=()=>Ed(w(),_)}const v=qg(),y=()=>{c.stop(),v&&v.active&&p_(v.effects,c)};if(s&&t){const w=t;t=(..._)=>{const M=w(..._);return y(),M}}let A=g?new Array(e.length).fill(Gy):Gy;const b=w=>{if(!(!(c.flags&1)||!c.dirty&&!w))if(t){const _=c.run();if(w||o||m||(g?_.some((M,B)=>nr(M,A[B])):nr(_,A))){f&&f();const M=Mf;Mf=c;try{const B=[_,A===Gy?void 0:g&&A[0]===Gy?[]:A,h];A=_,l?l(t,3,B):t(...B)}finally{Mf=M}}}else c.run()};return a&&a(b),c=new pb(d),c.scheduler=r?()=>r(b,!1):b,h=w=>xie(w,!1,c),f=c.onStop=()=>{const w=vb.get(c);if(w){if(l)l(w,4);else for(const _ of w)_();vb.delete(c)}},t?i?b(!0):A=c.run():r?r(b.bind(null,!0),!0):c.run(),y.pause=c.pause.bind(c),y.resume=c.resume.bind(c),y.stop=y,y}function Ed(e,t=1/0,n){if(t<=0||!Fi(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,eo(e))Ed(e.value,t,n);else if(_n(e))for(let i=0;i{Ed(i,t,n)});else if(b4(e)){for(const i in e)Ed(e[i],t,n);for(const i of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,i)&&Ed(e[i],t,n)}return e}/** -* @vue/runtime-core v3.5.39 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/const DH=[];function Eie(e){DH.push(e)}function Iie(){DH.pop()}function Lxt(e,t){}const Pxt={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},Mie={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush",15:"component update",16:"app unmount cleanup function"};function $2(e,t,n,i){try{return i?e(...i):e()}catch(o){Kg(o,t,n)}}function pu(e,t,n,i){if(Pn(e)){const o=$2(e,t,n,i);return o&&m_(o)&&o.catch(s=>{Kg(s,t,n)}),o}if(_n(e)){const o=[];for(let s=0;s>>1,o=fa[i],s=HA(o);s=HA(n)?fa.push(e):fa.splice(Bie(t),0,e),e.flags|=1,LH()}}function LH(){Ab||(Ab=NH.then(PH))}function yb(e){_n(e)?eg.push(...e):Tf&&e.id===-1?Tf.splice(Am+1,0,e):e.flags&1||(eg.push(e),e.flags|=1),LH()}function AB(e,t,n=Cc+1){for(;nHA(n)-HA(i));if(eg.length=0,Tf){Tf.push(...t);return}for(Tf=t,Am=0;Ame.id==null?e.flags&2?-1:1/0:e.id;function PH(e){try{for(Cc=0;Ccym.emit(o,...s)),qy=[]):typeof window<"u"&&window.HTMLElement&&!((i=(n=window.navigator)==null?void 0:n.userAgent)!=null&&i.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(s=>{OH(s,t)}),setTimeout(()=>{ym||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,qy=[])},3e3)):qy=[]}let Er=null,D4=null;function UA(e){const t=Er;return Er=e,D4=e&&e.type.__scopeId||null,t}function Oxt(e){D4=e}function zxt(){D4=null}const $xt=e=>le;function le(e,t=Er,n){if(!t||e._n)return e;const i=(...o)=>{i._d&&_b(-1);const s=UA(t);let r;try{r=e(...o)}finally{UA(s),i._d&&_b(1)}return r};return i._n=!0,i._c=!0,i._d=!0,i}function ui(e,t){if(Er===null)return e;const n=U2(Er),i=e.dirs||(e.dirs=[]);for(let o=0;o1)return n&&Pn(t)?t.call(i&&i.proxy):t}}function Fie(){return!!(Ms()||Kp)}const Rie=Symbol.for("v-scx"),Die=()=>qt(Rie);function tg(e,t){return j2(e,null,t)}function jxt(e,t){return j2(e,null,{flush:"post"})}function Nie(e,t){return j2(e,null,{flush:"sync"})}function $e(e,t,n){return j2(e,t,n)}function j2(e,t,n=pi){const{immediate:i,deep:o,flush:s,once:r}=n,a=qi({},n),l=t&&i||!t&&s!=="post";let u;if(c1){if(s==="sync"){const h=Die();u=h.__watcherHandles||(h.__watcherHandles=[])}else if(!l){const h=()=>{};return h.stop=uu,h.resume=uu,h.pause=uu,h}}const c=Sr;a.call=(h,m,g)=>pu(h,c,m,g);let d=!1;s==="post"?a.scheduler=h=>{vs(h,c&&c.suspense)}:s!=="sync"&&(d=!0,a.scheduler=(h,m)=>{m?h():y_(h)}),a.augmentJob=h=>{t&&(h.flags|=4),d&&(h.flags|=2,c&&(h.id=c.uid,h.i=c))};const f=_ie(e,t,a);return c1&&(u?u.push(f):l&&f()),f}function Lie(e,t,n){const i=this.proxy,o=Xi(e)?e.includes(".")?zH(i,e):()=>i[e]:e.bind(i,i);let s;Pn(t)?s=t:(s=t.handler,n=t);const r=Jg(this),a=j2(o,s.bind(i),n);return r(),a}function zH(e,t){const n=t.split(".");return()=>{let i=e;for(let o=0;oe.__isTeleport,wp=e=>e&&(e.disabled||e.disabled===""),Pie=e=>e&&(e.defer||e.defer===""),yB=e=>typeof SVGElement<"u"&&e instanceof SVGElement,kB=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,D6=(e,t)=>{const n=e&&e.to;return Xi(n)?t?t(n):null:n},Oie={name:"Teleport",__isTeleport:!0,process(e,t,n,i,o,s,r,a,l,u){const{mc:c,pc:d,pbc:f,o:{insert:h,querySelector:m,createText:g,createComment:v,parentNode:y}}=u,A=wp(t.props);let{dynamicChildren:b}=t;const w=(B,C,S)=>{B.shapeFlag&16&&c(B.children,C,S,o,s,r,a,l)},_=(B=t)=>{const C=wp(B.props),S=B.target=D6(B.props,m),I=N6(S,B,g,h);S&&(r!=="svg"&&yB(S)?r="svg":r!=="mathml"&&kB(S)&&(r="mathml"),o&&o.isCE&&(o.ce._teleportTargets||(o.ce._teleportTargets=new Set)).add(S),C||(w(B,S,I),kv(B,!1)))},M=B=>{const C=()=>{if(wf.get(B)===C){if(wf.delete(B),wp(B.props)){const S=y(B.el)||n;w(B,S,B.anchor),kv(B,!0)}_(B)}};wf.set(B,C),vs(C,s)};if(e==null){const B=t.el=g(""),C=t.anchor=g("");if(h(B,n,i),h(C,n,i),Pie(t.props)||s&&s.pendingBranch){M(t);return}A&&(w(t,n,C),kv(t,!0)),_()}else{t.el=e.el;const B=t.anchor=e.anchor,C=wf.get(e);if(C){C.flags|=8,wf.delete(e),M(t);return}t.targetStart=e.targetStart;const S=t.target=e.target,I=t.targetAnchor=e.targetAnchor,F=wp(e.props),E=F?n:S,D=F?B:I;if(r==="svg"||yB(S)?r="svg":(r==="mathml"||kB(S))&&(r="mathml"),b?(f(e.dynamicChildren,b,E,o,s,r,a),M_(e,t,!0)):l||d(e,t,E,D,o,s,r,a,!1),A)F?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Ky(t,n,B,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const j=D6(t.props,m);j&&(t.target=j,Ky(t,j,null,u,0))}else F&&Ky(t,S,I,u,1);kv(t,A)}},remove(e,t,n,{um:i,o:{remove:o}},s){const{shapeFlag:r,children:a,anchor:l,targetStart:u,targetAnchor:c,target:d,props:f}=e,h=wp(f),m=s||!h,g=wf.get(e);if(g&&(g.flags|=8,wf.delete(e)),d&&(o(u),o(c)),s&&o(l),!g&&(h||d)&&r&16)for(let v=0;v{e.isMounted=!0}),ni(()=>{e.isUnmounting=!0}),e}const Wl=[Function,Array],UH={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Wl,onEnter:Wl,onAfterEnter:Wl,onEnterCancelled:Wl,onBeforeLeave:Wl,onLeave:Wl,onAfterLeave:Wl,onLeaveCancelled:Wl,onBeforeAppear:Wl,onAppear:Wl,onAfterAppear:Wl,onAppearCancelled:Wl},WH=e=>{const t=e.subTree;return t.component?WH(t.component):t},$ie={name:"BaseTransition",props:UH,setup(e,{slots:t}){const n=Ms(),i=HH();return()=>{const o=t.default&&k_(t.default(),!0),s=o&&o.length?QH(o):n.subTree?ne():void 0;if(!s)return;const r=gi(e),{mode:a}=r;if(i.isLeaving)return z3(s);const l=bB(s);if(!l)return z3(s);let u=WA(l,r,i,n,d=>u=d);l.type!==Cs&&rh(l,u);let c=n.subTree&&bB(n.subTree);if(c&&c.type!==Cs&&!zu(c,l)&&WH(n).type!==Cs){let d=WA(c,r,i,n);if(rh(c,d),a==="out-in"&&l.type!==Cs)return i.isLeaving=!0,d.afterLeave=()=>{i.isLeaving=!1,n.job.flags&8||n.update(),delete d.afterLeave,c=void 0},z3(s);a==="in-out"&&l.type!==Cs?d.delayLeave=(f,h,m)=>{const g=VH(i,c);g[String(c.key)]=c,f[Yl]=()=>{h(),f[Yl]=void 0,delete u.delayedLeave,c=void 0},u.delayedLeave=()=>{m(),delete u.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return s}}};function QH(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==Cs){t=n;break}}return t}const jie=$ie;function VH(e,t){const{leavingVNodes:n}=e;let i=n.get(t.type);return i||(i=Object.create(null),n.set(t.type,i)),i}function WA(e,t,n,i,o){const{appear:s,mode:r,persisted:a=!1,onBeforeEnter:l,onEnter:u,onAfterEnter:c,onEnterCancelled:d,onBeforeLeave:f,onLeave:h,onAfterLeave:m,onLeaveCancelled:g,onBeforeAppear:v,onAppear:y,onAfterAppear:A,onAppearCancelled:b}=t,w=String(e.key),_=VH(n,e),M=(S,I)=>{S&&pu(S,i,9,I)},B=(S,I)=>{const F=I[1];M(S,I),_n(S)?S.every(E=>E.length<=1)&&F():S.length<=1&&F()},C={mode:r,persisted:a,beforeEnter(S){let I=l;if(!n.isMounted)if(s)I=v||l;else return;S[Yl]&&S[Yl](!0);const F=_[w];F&&zu(e,F)&&F.el[Yl]&&F.el[Yl](),M(I,[S])},enter(S){if(_[w]===e)return;let I=u,F=c,E=d;if(!n.isMounted)if(s)I=y||u,F=A||c,E=b||d;else return;let D=!1;S[G0]=z=>{D||(D=!0,z?M(E,[S]):M(F,[S]),C.delayedLeave&&C.delayedLeave(),S[G0]=void 0)};const j=S[G0].bind(null,!1);I?B(I,[S,j]):j()},leave(S,I){const F=String(e.key);if(S[G0]&&S[G0](!0),n.isUnmounting)return I();M(f,[S]);let E=!1;S[Yl]=j=>{E||(E=!0,I(),j?M(g,[S]):M(m,[S]),S[Yl]=void 0,_[F]===e&&delete _[F])};const D=S[Yl].bind(null,!1);_[F]=e,h?B(h,[S,D]):D()},clone(S){const I=WA(S,t,n,i,o);return o&&o(I),I}};return C}function z3(e){if(H2(e))return e=Qd(e),e.children=null,e}function bB(e){if(!H2(e))return jH(e.type)&&e.children?QH(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&Pn(n.default))return n.default()}}function rh(e,t){e.shapeFlag&6&&e.component?(e.transition=t,rh(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function k_(e,t=!1,n){let i=[],o=0;for(let s=0;s1)for(let s=0;sn.value,set:s=>n.value=s})}return n}function wB(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const bb=new WeakMap;function ng(e,t,n,i,o=!1){if(_n(e)){e.forEach((g,v)=>ng(g,t&&(_n(t)?t[v]:t),n,i,o));return}if(Pd(i)&&!o){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&ng(e,t,n,i.component.subTree);return}const s=i.shapeFlag&4?U2(i.component):i.el,r=o?null:s,{i:a,r:l}=e,u=t&&t.r,c=a.refs===pi?a.refs={}:a.refs,d=a.setupState,f=gi(d),h=d===pi?uH:g=>wB(c,g)?!1:Mi(f,g),m=(g,v)=>!(v&&wB(c,v));if(u!=null&&u!==l){if(CB(t),Xi(u))c[u]=null,h(u)&&(d[u]=null);else if(eo(u)){const g=t;m(u,g.k)&&(u.value=null),g.k&&(c[g.k]=null)}}if(Pn(l)){Vc();try{$2(l,a,12,[r,c])}finally{Gc()}}else{const g=Xi(l),v=eo(l);if(g||v){const y=()=>{if(e.f){const A=g?h(l)?d[l]:c[l]:m()||!e.k?l.value:c[e.k];if(o)_n(A)&&p_(A,s);else if(_n(A))A.includes(s)||A.push(s);else if(g)c[l]=[s],h(l)&&(d[l]=c[l]);else{const b=[s];m(l,e.k)&&(l.value=b),e.k&&(c[e.k]=b)}}else g?(c[l]=r,h(l)&&(d[l]=r)):v&&(m(l,e.k)&&(l.value=r),e.k&&(c[e.k]=r))};if(r){const A=()=>{y(),bb.delete(e)};A.id=-1,bb.set(e,A),vs(A,n)}else CB(e),y()}}}function CB(e){const t=bb.get(e);t&&(t.flags|=8,bb.delete(e))}let SB=!1;const J1=()=>{SB||(console.error("Hydration completed but contains mismatches."),SB=!0)},Uie=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",Wie=e=>e.namespaceURI.includes("MathML"),Zy=e=>{if(e.nodeType===1){if(Uie(e))return"svg";if(Wie(e))return"mathml"}},Bm=e=>e.nodeType===8;function Qie(e){const{mt:t,p:n,o:{patchProp:i,createText:o,nextSibling:s,parentNode:r,remove:a,insert:l,createComment:u}}=e,c=(b,w)=>{if(!w.hasChildNodes()){n(null,b,w),kb(),w._vnode=b;return}d(w.firstChild,b,null,null,null),kb(),w._vnode=b},d=(b,w,_,M,B,C=!1)=>{C=C||!!w.dynamicChildren;const S=Bm(b)&&b.data==="[",I=()=>g(b,w,_,M,B,S),{type:F,ref:E,shapeFlag:D,patchFlag:j}=w;let z=b.nodeType;w.el=b,j===-2&&(C=!1,w.dynamicChildren=null);let T=null;switch(F){case qf:z!==3?w.children===""?(l(w.el=o(""),r(b),b),T=b):T=I():(b.data!==w.children&&(J1(),b.data=w.children),T=s(b));break;case Cs:A(b)?(T=s(b),y(w.el=b.content.firstChild,b,_)):z!==8||S?T=I():T=s(b);break;case og:if(S&&(b=s(b),z=b.nodeType),z===1||z===3){T=b;const N=!w.children.length;for(let L=0;L{C=C||!!w.dynamicChildren;const{type:S,dynamicProps:I,props:F,patchFlag:E,shapeFlag:D,dirs:j,transition:z}=w,T=S==="input"||S==="option",N=!!I;if(T||N||E!==-1){j&&_c(w,null,_,"created");let L=!1;if(A(b)){L=pU(null,z)&&_&&_.vnode.props&&_.vnode.props.appear;const O=b.content.firstChild;if(L){const Q=O.getAttribute("class");Q&&(O.$cls=Q),z.beforeEnter(O)}y(O,b,_),w.el=b=O}if(D&16&&!(F&&(F.innerHTML||F.textContent))){let O=h(b.firstChild,w,b,_,M,B,C);for(O&&!g9(b,1)&&J1();O;){const Q=O;O=O.nextSibling,a(Q)}}else if(D&8){let O=w.children;O[0]===` -`&&(b.tagName==="PRE"||b.tagName==="TEXTAREA")&&(O=O.slice(1));const{textContent:Q}=b;Q!==O&&Q!==O.replace(/\r\n|\r/g,` -`)&&(g9(b,0)||J1(),b.textContent=w.children)}if(F){if(T||N||!C||E&48){const O=b.tagName.includes("-");for(const Q in F)(T&&(Q.endsWith("value")||Q==="indeterminate")||z2(Q)&&!Gp(Q)||Q[0]==="."||O&&!Gp(Q)||I&&I.includes(Q))&&i(b,Q,null,F[Q],void 0,_)}else if(F.onClick)i(b,"onClick",null,F.onClick,void 0,_);else if(E&4&&Gu(F.style))for(const O in F.style)F.style[O]}let H;(H=F&&F.onVnodeBeforeMount)&&Ra(H,_,w),j&&_c(w,null,_,"beforeMount"),((H=F&&F.onVnodeMounted)||j||L)&&AU(()=>{H&&Ra(H,_,w),L&&z.enter(b),j&&_c(w,null,_,"mounted")},M)}return b.nextSibling},h=(b,w,_,M,B,C,S)=>{S=S||!!w.dynamicChildren;const I=w.children,F=I.length;let E=!1;for(let D=0;D{const{slotScopeIds:S}=w;S&&(B=B?B.concat(S):S);const I=r(b),F=h(s(b),w,I,_,M,B,C);return F&&Bm(F)&&F.data==="]"?s(w.anchor=F):(J1(),l(w.anchor=u("]"),I,F),F)},g=(b,w,_,M,B,C)=>{if(Gie(b,w)||J1(),w.el=null,C){const F=v(b);for(;;){const E=s(b);if(E&&E!==F)a(E);else break}}const S=s(b),I=r(b);return a(b),n(null,w,I,S,_,M,Zy(I),B),_&&(_.vnode.el=w.el,P4(_,w.el)),S},v=(b,w="[",_="]")=>{let M=0;for(;b;)if(b=s(b),b&&Bm(b)&&(b.data===w&&M++,b.data===_)){if(M===0)return s(b);M--}return b},y=(b,w,_)=>{const M=w.parentNode;M&&M.replaceChild(b,w);let B=_;for(;B;)B.vnode.el===w&&(B.vnode.el=B.subTree.el=b),B=B.parent},A=b=>b.nodeType===1&&b.tagName==="TEMPLATE";return[c,d]}const wb="data-allow-mismatch",Vie={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function g9(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(wb);)e=e.parentElement;return w_(e&&e.getAttribute(wb),t)}function w_(e,t){if(e==null)return!1;if(e==="")return!0;{const n=e.split(",");return t===0&&n.includes("children")?!0:n.includes(Vie[t])}}function Gie(e,t){return g9(e.parentElement,1)||qie(e)||Kie(t)}function qie(e){return e.nodeType===1&&w_(e.getAttribute(wb),1)}function Kie({props:e}){const t=e&&e[wb];return typeof t=="string"&&w_(t,1)}const Zie=_4().requestIdleCallback||(e=>setTimeout(e,1)),Yie=_4().cancelIdleCallback||(e=>clearTimeout(e)),Uxt=(e=1e4)=>t=>{const n=Zie(t,{timeout:e});return()=>Yie(n)};function Jie(e){const{top:t,left:n,bottom:i,right:o}=e.getBoundingClientRect(),{innerHeight:s,innerWidth:r}=window;return(t>0&&t0&&i0&&n0&&o(t,n)=>{const i=new IntersectionObserver(o=>{for(const s of o)if(s.isIntersecting){i.disconnect(),t();break}},e);return n(o=>{if(o instanceof Element){if(Jie(o))return t(),i.disconnect(),!1;i.observe(o)}}),()=>i.disconnect()},Qxt=e=>t=>{if(e){const n=matchMedia(e);if(n.matches)t();else return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t)}},Vxt=(e=[])=>(t,n)=>{Xi(e)&&(e=[e]);let i=!1;const o=r=>{i||(i=!0,s(),t(),r.target.dispatchEvent(new r.constructor(r.type,r)))},s=()=>{n(r=>{for(const a of e)r.removeEventListener(a,o)})};return n(r=>{for(const a of e)r.addEventListener(a,o,{once:!0})}),s};function Xie(e,t){if(Bm(e)&&e.data==="["){let n=1,i=e.nextSibling;for(;i;){if(i.nodeType===1){if(t(i)===!1)break}else if(Bm(i))if(i.data==="]"){if(--n===0)break}else i.data==="["&&n++;i=i.nextSibling}}else t(e)}const Pd=e=>!!e.type.__asyncLoader;function Lc(e){Pn(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:i,delay:o=200,hydrate:s,timeout:r,suspensible:a=!0,onError:l}=e;let u=null,c,d=0;const f=()=>(d++,u=null,h()),h=()=>{let m;return u||(m=u=t().catch(g=>{if(g=g instanceof Error?g:new Error(String(g)),l)return new Promise((v,y)=>{l(g,()=>v(f()),()=>y(g),d+1)});throw g}).then(g=>m!==u&&u?u:(g&&(g.__esModule||g[Symbol.toStringTag]==="Module")&&(g=g.default),c=g,g)))};return st({name:"AsyncComponentWrapper",__asyncLoader:h,__asyncHydrate(m,g,v){let y=!1;(g.bu||(g.bu=[])).push(()=>y=!0);const A=()=>{y||v()},b=s?()=>{const w=s(A,_=>Xie(m,_));w&&(g.bum||(g.bum=[])).push(w)}:A;c?b():h().then(()=>!g.isUnmounted&&b())},get __asyncResolved(){return c},setup(){const m=Sr;if(b_(m),c)return()=>Yy(c,m);const g=_=>{u=null,Kg(_,m,13,!i)};if(a&&m.suspense||c1)return h().then(_=>()=>Yy(_,m)).catch(_=>(g(_),()=>i?K(i,{error:_}):null));const v=V(!1),y=V(),A=V(!!o);let b,w;return Tn(()=>{b!=null&&clearTimeout(b),w!=null&&clearTimeout(w)}),o&&(w=setTimeout(()=>{m.isUnmounted||(A.value=!1)},o)),r!=null&&(b=setTimeout(()=>{if(!m.isUnmounted&&!v.value&&!y.value){const _=new Error(`Async component timed out after ${r}ms.`);g(_),y.value=_}},r)),h().then(()=>{m.isUnmounted||(v.value=!0,m.parent&&H2(m.parent.vnode)&&m.parent.update())}).catch(_=>{if(m.isUnmounted){u=null;return}g(_),y.value=_}),()=>{if(v.value&&c)return Yy(c,m);if(y.value&&i)return K(i,{error:y.value});if(n&&!A.value)return Yy(n,m)}}})}function Yy(e,t){const{ref:n,props:i,children:o,ce:s}=t.vnode,r=K(e,i,o);return r.ref=n,r.ce=s,delete t.vnode.ce,r}const H2=e=>e.type.__isKeepAlive,eoe={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=Ms(),i=n.ctx;if(!i.renderer)return()=>{const A=t.default&&t.default();return A&&A.length===1?A[0]:A};const o=new Map,s=new Set;let r=null;const a=n.suspense,{renderer:{p:l,m:u,um:c,o:{createElement:d}}}=i,f=d("div");i.activate=(A,b,w,_,M)=>{const B=A.component;u(A,b,w,0,a),l(B.vnode,A,b,w,B,a,_,A.slotScopeIds,M),vs(()=>{B.isDeactivated=!1,B.a&&Xm(B.a);const C=A.props&&A.props.onVnodeMounted;C&&Ra(C,B.parent,A)},a)},i.deactivate=A=>{const b=A.component;Sb(b.m),Sb(b.a),u(A,f,null,1,a),vs(()=>{b.da&&Xm(b.da);const w=A.props&&A.props.onVnodeUnmounted;w&&Ra(w,b.parent,A),b.isDeactivated=!0},a)};function h(A){$3(A),c(A,n,a,!0)}function m(A){o.forEach((b,w)=>{const _=W6(Pd(b)?b.type.__asyncResolved||{}:b.type);_&&!A(_)&&g(w)})}function g(A){const b=o.get(A);b&&(!r||!zu(b,r))?h(b):r&&$3(r),o.delete(A),s.delete(A)}$e(()=>[e.include,e.exclude],([A,b])=>{A&&m(w=>bv(A,w)),b&&m(w=>!bv(b,w))},{flush:"post",deep:!0});let v=null;const y=()=>{v!=null&&(xb(n.subTree.type)?vs(()=>{o.set(v,Jy(n.subTree))},n.subTree.suspense):o.set(v,Jy(n.subTree)))};return yn(y),Zg(y),ni(()=>{o.forEach(A=>{const{subTree:b,suspense:w}=n,_=Jy(b);if(A.type===_.type&&A.key===_.key){$3(_);const M=_.component.da;M&&vs(M,w);return}h(A)})}),()=>{if(v=null,!t.default)return r=null;const A=t.default(),b=A[0];if(A.length>1)return r=null,A;if(!ah(b)||!(b.shapeFlag&4)&&!(b.shapeFlag&128))return r=null,b;let w=Jy(b);if(w.type===Cs)return r=null,w;const _=w.type,M=W6(Pd(w)?w.type.__asyncResolved||{}:_),{include:B,exclude:C,max:S}=e;if(B&&(!M||!bv(B,M))||C&&M&&bv(C,M))return w.shapeFlag&=-257,r=w,b;const I=w.key==null?_:w.key,F=o.get(I);return w.el&&(w=Qd(w),b.shapeFlag&128&&(b.ssContent=w)),v=I,F?(w.el=F.el,w.component=F.component,w.transition&&rh(w,w.transition),w.shapeFlag|=512,s.delete(I),s.add(I)):(s.add(I),S&&s.size>parseInt(S,10)&&g(s.values().next().value)),w.shapeFlag|=256,r=w,xb(b.type)?b:w}}},Gxt=eoe;function bv(e,t){return _n(e)?e.some(n=>bv(n,t)):Xi(e)?e.split(",").includes(t):Nne(e)?(e.lastIndex=0,e.test(t)):!1}function toe(e,t){GH(e,"a",t)}function noe(e,t){GH(e,"da",t)}function GH(e,t,n=Sr){const i=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(N4(t,i,n),n){let o=n.parent;for(;o&&o.parent;)H2(o.parent.vnode)&&ioe(i,t,n,o),o=o.parent}}function ioe(e,t,n,i){const o=N4(t,e,i,!0);Tn(()=>{p_(i[t],o)},n)}function $3(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function Jy(e){return e.shapeFlag&128?e.ssContent:e}function N4(e,t,n=Sr,i=!1){if(n){const o=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...r)=>{Vc();const a=Jg(n),l=pu(t,n,e,r);return a(),Gc(),l});return i?o.unshift(s):o.push(s),s}}const Jd=e=>(t,n=Sr)=>{(!c1||e==="sp")&&N4(e,(...i)=>t(...i),n)},ooe=Jd("bm"),yn=Jd("m"),qH=Jd("bu"),Zg=Jd("u"),ni=Jd("bum"),Tn=Jd("um"),soe=Jd("sp"),roe=Jd("rtg"),aoe=Jd("rtc");function KH(e,t=Sr){N4("ec",e,t)}const C_="components",loe="directives";function ZH(e,t){return S_(C_,e,!0,t)||e}const YH=Symbol.for("v-ndc");function jo(e){return Xi(e)?S_(C_,e,!1)||e:e||YH}function qxt(e){return S_(loe,e)}function S_(e,t,n=!0,i=!1){const o=Er||Sr;if(o){const s=o.type;if(e===C_){const a=W6(s,!1);if(a&&(a===t||a===Qs(t)||a===S4(Qs(t))))return s}const r=xB(o[e]||s[e],t)||xB(o.appContext[e],t);return!r&&i?s:r}}function xB(e,t){return e&&(e[t]||e[Qs(t)]||e[S4(Qs(t))])}function _t(e,t,n,i){let o;const s=n&&n[i],r=_n(e);if(r||Xi(e)){const a=r&&Gu(e);let l=!1,u=!1;a&&(l=!Sl(e),u=Wd(e),e=T4(e)),o=new Array(e.length);for(let c=0,d=e.length;ct(a,l,void 0,s&&s[l]));else{const a=Object.keys(e);o=new Array(a.length);for(let l=0,u=a.length;l{const s=i.fn(...o);return s&&(s.key=i.key),s}:i.fn)}return e}function On(e,t,n={},i,o){if(Er.ce||Er.parent&&Pd(Er.parent)&&Er.parent.ce){const u=Object.keys(n).length>0;return t!=="default"&&(n.name=t),k(),de(Be,null,[K("slot",n,i&&i())],u?-2:64)}let s=e[t];s&&s._c&&(s._d=!1),k();const r=s&&x_(s(n)),a=n.key||r&&r.key,l=de(Be,{key:(a&&!Bl(a)?a:`_${t}`)+(!r&&i?"_fb":"")},r||(i?i():[]),r&&e._===1?64:-2);return!o&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),s&&s._c&&(s._d=!0),l}function x_(e){return e.some(t=>ah(t)?!(t.type===Cs||t.type===Be&&!x_(t.children)):!0)?e:null}function Kxt(e,t){const n={};for(const i in e)n[t&&/[A-Z]/.test(i)?`on:${i}`:m9(i)]=e[i];return n}const L6=e=>e?SU(e)?U2(e):L6(e.parent):null,Yv=qi(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>L6(e.parent),$root:e=>L6(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>__(e),$forceUpdate:e=>e.f||(e.f=()=>{y_(e.update)}),$nextTick:e=>e.n||(e.n=gt.bind(e.proxy)),$watch:e=>Lie.bind(e)}),j3=(e,t)=>e!==pi&&!e.__isScriptSetup&&Mi(e,t),P6={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:i,data:o,props:s,accessCache:r,type:a,appContext:l}=e;if(t[0]!=="$"){const f=r[t];if(f!==void 0)switch(f){case 1:return i[t];case 2:return o[t];case 4:return n[t];case 3:return s[t]}else{if(j3(i,t))return r[t]=1,i[t];if(o!==pi&&Mi(o,t))return r[t]=2,o[t];if(Mi(s,t))return r[t]=3,s[t];if(n!==pi&&Mi(n,t))return r[t]=4,n[t];O6&&(r[t]=0)}}const u=Yv[t];let c,d;if(u)return t==="$attrs"&&Wr(e.attrs,"get",""),u(e);if((c=a.__cssModules)&&(c=c[t]))return c;if(n!==pi&&Mi(n,t))return r[t]=4,n[t];if(d=l.config.globalProperties,Mi(d,t))return d[t]},set({_:e},t,n){const{data:i,setupState:o,ctx:s}=e;return j3(o,t)?(o[t]=n,!0):i!==pi&&Mi(i,t)?(i[t]=n,!0):Mi(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:i,appContext:o,props:s,type:r}},a){let l;return!!(n[a]||e!==pi&&a[0]!=="$"&&Mi(e,a)||j3(t,a)||Mi(s,a)||Mi(i,a)||Mi(Yv,a)||Mi(o.config.globalProperties,a)||(l=r.__cssModules)&&l[a])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Mi(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},uoe=qi({},P6,{get(e,t){if(t!==Symbol.unscopables)return P6.get(e,t,e)},has(e,t){return t[0]!=="_"&&!$ne(t)}});function Zxt(){return null}function Yxt(){return null}function Jxt(e){}function Xxt(e){}function e_t(){return null}function t_t(){}function n_t(e,t){return null}function i_t(){return XH().slots}function Yg(){return XH().attrs}function XH(e){const t=Ms();return t.setupContext||(t.setupContext=EU(t))}function QA(e){return _n(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function o_t(e,t){const n=QA(e);for(const i in t){if(i.startsWith("__skip"))continue;let o=n[i];o?_n(o)||Pn(o)?o=n[i]={type:o,default:t[i]}:o.default=t[i]:o===null&&(o=n[i]={default:t[i]}),o&&t[`__skip_${i}`]&&(o.skipFactory=!0)}return n}function s_t(e,t){return!e||!t?e||t:_n(e)&&_n(t)?e.concat(t):qi({},QA(e),QA(t))}function r_t(e,t){const n={};for(const i in e)t.includes(i)||Object.defineProperty(n,i,{enumerable:!0,get:()=>e[i]});return n}function a_t(e){const t=Ms(),n=c1;let i=e();GA(),n&&sg(!1);const o=()=>{Jg(t),n&&sg(!0)},s=()=>{Ms()!==t&&t.scope.off(),GA(),n&&sg(!1)};return m_(i)&&(i=i.catch(r=>{throw o(),Promise.resolve().then(()=>Promise.resolve().then(s)),r})),[i,()=>{o(),Promise.resolve().then(s)}]}let O6=!0;function coe(e){const t=__(e),n=e.proxy,i=e.ctx;O6=!1,t.beforeCreate&&_B(t.beforeCreate,e,"bc");const{data:o,computed:s,methods:r,watch:a,provide:l,inject:u,created:c,beforeMount:d,mounted:f,beforeUpdate:h,updated:m,activated:g,deactivated:v,beforeDestroy:y,beforeUnmount:A,destroyed:b,unmounted:w,render:_,renderTracked:M,renderTriggered:B,errorCaptured:C,serverPrefetch:S,expose:I,inheritAttrs:F,components:E,directives:D,filters:j}=t;if(u&&doe(u,i,null),r)for(const N in r){const L=r[N];Pn(L)&&(i[N]=L.bind(n))}if(o){const N=o.call(n,n);Fi(N)&&(e.data=go(N))}if(O6=!0,s)for(const N in s){const L=s[N],H=Pn(L)?L.bind(n,n):Pn(L.get)?L.get.bind(n,n):uu,O=!Pn(L)&&Pn(L.set)?L.set.bind(n):uu,Q=P({get:H,set:O});Object.defineProperty(i,N,{enumerable:!0,configurable:!0,get:()=>Q.value,set:Y=>Q.value=Y})}if(a)for(const N in a)eU(a[N],i,n,N);if(l){const N=Pn(l)?l.call(n):l;Reflect.ownKeys(N).forEach(L=>{Wn(L,N[L])})}c&&_B(c,e,"c");function T(N,L){_n(L)?L.forEach(H=>N(H.bind(n))):L&&N(L.bind(n))}if(T(ooe,d),T(yn,f),T(qH,h),T(Zg,m),T(toe,g),T(noe,v),T(KH,C),T(aoe,M),T(roe,B),T(ni,A),T(Tn,w),T(soe,S),_n(I))if(I.length){const N=e.exposed||(e.exposed={});I.forEach(L=>{Object.defineProperty(N,L,{get:()=>n[L],set:H=>n[L]=H,enumerable:!0})})}else e.exposed||(e.exposed={});_&&e.render===uu&&(e.render=_),F!=null&&(e.inheritAttrs=F),E&&(e.components=E),D&&(e.directives=D),S&&b_(e)}function doe(e,t,n=uu){_n(e)&&(e=z6(e));for(const i in e){const o=e[i];let s;Fi(o)?"default"in o?s=qt(o.from||i,o.default,!0):s=qt(o.from||i):s=qt(o),eo(s)?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>s.value,set:r=>s.value=r}):t[i]=s}}function _B(e,t,n){pu(_n(e)?e.map(i=>i.bind(t.proxy)):e.bind(t.proxy),t,n)}function eU(e,t,n,i){let o=i.includes(".")?zH(n,i):()=>n[i];if(Xi(e)){const s=t[e];Pn(s)&&$e(o,s)}else if(Pn(e))$e(o,e.bind(n));else if(Fi(e))if(_n(e))e.forEach(s=>eU(s,t,n,i));else{const s=Pn(e.handler)?e.handler.bind(n):t[e.handler];Pn(s)&&$e(o,s,e)}}function __(e){const t=e.type,{mixins:n,extends:i}=t,{mixins:o,optionsCache:s,config:{optionMergeStrategies:r}}=e.appContext,a=s.get(t);let l;return a?l=a:!o.length&&!n&&!i?l=t:(l={},o.length&&o.forEach(u=>Cb(l,u,r,!0)),Cb(l,t,r)),Fi(t)&&s.set(t,l),l}function Cb(e,t,n,i=!1){const{mixins:o,extends:s}=t;s&&Cb(e,s,n,!0),o&&o.forEach(r=>Cb(e,r,n,!0));for(const r in t)if(!(i&&r==="expose")){const a=foe[r]||n&&n[r];e[r]=a?a(e[r],t[r]):t[r]}return e}const foe={data:EB,props:IB,emits:IB,methods:wv,computed:wv,beforeCreate:ra,created:ra,beforeMount:ra,mounted:ra,beforeUpdate:ra,updated:ra,beforeDestroy:ra,beforeUnmount:ra,destroyed:ra,unmounted:ra,activated:ra,deactivated:ra,errorCaptured:ra,serverPrefetch:ra,components:wv,directives:wv,watch:poe,provide:EB,inject:hoe};function EB(e,t){return t?e?function(){return qi(Pn(e)?e.call(this,this):e,Pn(t)?t.call(this,this):t)}:t:e}function hoe(e,t){return wv(z6(e),z6(t))}function z6(e){if(_n(e)){const t={};for(let n=0;n{let c,d=pi,f;return Nie(()=>{const h=e[o];nr(c,h)&&(c=h,u())}),{get(){return l(),n.get?n.get(c):c},set(h){const m=n.set?n.set(h):h;if(!nr(m,c)&&!(d!==pi&&nr(h,d)))return;const g=i.vnode.props,v=!!(g&&(t in g||o in g||s in g)&&(`onUpdate:${t}`in g||`onUpdate:${o}`in g||`onUpdate:${s}`in g));v||(c=h,u()),i.emit(`update:${t}`,m),nr(h,d)&&(nr(h,m)&&!nr(m,f)||v&&d!==pi&&!nr(m,c))&&u(),d=h,f=m}}});return a[Symbol.iterator]=()=>{let l=0;return{next(){return l<2?{value:l++?r||pi:a,done:!1}:{done:!0}}}},a}const nU=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Qs(t)}Modifiers`]||e[`${Pa(t)}Modifiers`];function voe(e,t,...n){if(e.isUnmounted)return;const i=e.vnode.props||pi;let o=n;const s=t.startsWith("update:"),r=s&&nU(i,t.slice(7));r&&(r.trim&&(o=n.map(c=>Xi(c)?c.trim():c)),r.number&&(o=n.map(x4)));let a,l=i[a=m9(t)]||i[a=m9(Qs(t))];!l&&s&&(l=i[a=m9(Pa(t))]),l&&pu(l,e,6,o);const u=i[a+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,pu(u,e,6,o)}}const Aoe=new WeakMap;function iU(e,t,n=!1){const i=n?Aoe:t.emitsCache,o=i.get(e);if(o!==void 0)return o;const s=e.emits;let r={},a=!1;if(!Pn(e)){const l=u=>{const c=iU(u,t,!0);c&&(a=!0,qi(r,c))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!s&&!a?(Fi(e)&&i.set(e,null),null):(_n(s)?s.forEach(l=>r[l]=null):qi(r,s),Fi(e)&&i.set(e,r),r)}function L4(e,t){return!e||!z2(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Mi(e,t[0].toLowerCase()+t.slice(1))||Mi(e,Pa(t))||Mi(e,t))}function v9(e){const{type:t,vnode:n,proxy:i,withProxy:o,propsOptions:[s],slots:r,attrs:a,emit:l,render:u,renderCache:c,props:d,data:f,setupState:h,ctx:m,inheritAttrs:g}=e,v=UA(e);let y,A;try{if(n.shapeFlag&4){const w=o||i,_=w;y=La(u.call(_,w,c,d,h,f,m)),A=a}else{const w=t;y=La(w.length>1?w(d,{attrs:a,slots:r,emit:l}):w(d,null)),A=t.props?a:koe(a)}}catch(w){Jv.length=0,Kg(w,e,1),y=K(Cs)}let b=y;if(A&&g!==!1){const w=Object.keys(A),{shapeFlag:_}=b;w.length&&_&7&&(s&&w.some(k4)&&(A=boe(A,s)),b=Qd(b,A,!1,!0))}return n.dirs&&(b=Qd(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&rh(b,n.transition),y=b,UA(v),y}function yoe(e,t=!0){let n;for(let i=0;i{let t;for(const n in e)(n==="class"||n==="style"||z2(n))&&((t||(t={}))[n]=e[n]);return t},boe=(e,t)=>{const n={};for(const i in e)(!k4(i)||!(i.slice(9)in t))&&(n[i]=e[i]);return n};function woe(e,t,n){const{props:i,children:o,component:s}=e,{props:r,children:a,patchFlag:l}=t,u=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return i?MB(i,r,u):!!r;if(l&8){const c=t.dynamicProps;for(let d=0;dObject.create(sU),aU=e=>Object.getPrototypeOf(e)===sU;function Coe(e,t,n,i=!1){const o={},s=rU();e.propsDefaults=Object.create(null),lU(e,t,o,s);for(const r in e.propsOptions[0])r in o||(o[r]=void 0);n?e.props=i?o:l1(o):e.type.props?e.props=o:e.props=s,e.attrs=s}function Soe(e,t,n,i){const{props:o,attrs:s,vnode:{patchFlag:r}}=e,a=gi(o),[l]=e.propsOptions;let u=!1;if((i||r>0)&&!(r&16)){if(r&8){const c=e.vnode.dynamicProps;for(let d=0;d{l=!0;const[f,h]=uU(d,t,!0);qi(r,f),h&&a.push(...h)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!s&&!l)return Fi(e)&&i.set(e,Ym),Ym;if(_n(s))for(let c=0;ce==="_"||e==="_ctx"||e==="$stable",I_=e=>_n(e)?e.map(La):[La(e)],_oe=(e,t,n)=>{if(t._n)return t;const i=le((...o)=>I_(t(...o)),n);return i._c=!1,i},cU=(e,t,n)=>{const i=e._ctx;for(const o in e){if(E_(o))continue;const s=e[o];if(Pn(s))t[o]=_oe(o,s,i);else if(s!=null){const r=I_(s);t[o]=()=>r}}},dU=(e,t)=>{const n=I_(t);e.slots.default=()=>n},fU=(e,t,n)=>{for(const i in t)(n||!E_(i))&&(e[i]=t[i])},Eoe=(e,t,n)=>{const i=e.slots=rU();if(e.vnode.shapeFlag&32){const o=t._;o?(fU(i,t,n),n&&dH(i,"_",o,!0)):cU(t,i)}else t&&dU(e,t)},Ioe=(e,t,n)=>{const{vnode:i,slots:o}=e;let s=!0,r=pi;if(i.shapeFlag&32){const a=t._;a?n&&a===1?s=!1:fU(o,t,n):(s=!t.$stable,cU(t,o)),r=t}else t&&(dU(e,t),r={default:1});if(s)for(const a in o)!E_(a)&&r[a]==null&&delete o[a]},vs=AU;function Moe(e){return hU(e)}function Toe(e){return hU(e,Qie)}function hU(e,t){const n=_4();n.__VUE__=!0;const{insert:i,remove:o,patchProp:s,createElement:r,createText:a,createComment:l,setText:u,setElementText:c,parentNode:d,nextSibling:f,setScopeId:h=uu,insertStaticContent:m}=e,g=(G,J,fe,me=null,ve=null,oe=null,ae=void 0,Ae=null,ue=!!J.dynamicChildren)=>{if(G===J)return;G&&!zu(G,J)&&(me=ge(G),Y(G,ve,oe,!0),G=null),J.patchFlag===-2&&(ue=!1,J.dynamicChildren=null);const{type:Se,ref:ce,shapeFlag:se}=J;switch(Se){case qf:v(G,J,fe,me);break;case Cs:y(G,J,fe,me);break;case og:G==null&&A(J,fe,me,ae);break;case Be:E(G,J,fe,me,ve,oe,ae,Ae,ue);break;default:se&1?_(G,J,fe,me,ve,oe,ae,Ae,ue):se&6?D(G,J,fe,me,ve,oe,ae,Ae,ue):(se&64||se&128)&&Se.process(G,J,fe,me,ve,oe,ae,Ae,ue,we)}ce!=null&&ve?ng(ce,G&&G.ref,oe,J||G,!J):ce==null&&G&&G.ref!=null&&ng(G.ref,null,oe,G,!0)},v=(G,J,fe,me)=>{if(G==null)i(J.el=a(J.children),fe,me);else{const ve=J.el=G.el;J.children!==G.children&&u(ve,J.children)}},y=(G,J,fe,me)=>{G==null?i(J.el=l(J.children||""),fe,me):J.el=G.el},A=(G,J,fe,me)=>{[G.el,G.anchor]=m(G.children,J,fe,me,G.el,G.anchor)},b=({el:G,anchor:J},fe,me)=>{let ve;for(;G&&G!==J;)ve=f(G),i(G,fe,me),G=ve;i(J,fe,me)},w=({el:G,anchor:J})=>{let fe;for(;G&&G!==J;)fe=f(G),o(G),G=fe;o(J)},_=(G,J,fe,me,ve,oe,ae,Ae,ue)=>{if(J.type==="svg"?ae="svg":J.type==="math"&&(ae="mathml"),G==null)M(J,fe,me,ve,oe,ae,Ae,ue);else{const Se=G.el&&G.el._isVueCE?G.el:null;try{Se&&Se._beginPatch(),S(G,J,ve,oe,ae,Ae,ue)}finally{Se&&Se._endPatch()}}},M=(G,J,fe,me,ve,oe,ae,Ae)=>{let ue,Se;const{props:ce,shapeFlag:se,transition:Ie,dirs:he}=G;if(ue=G.el=r(G.type,oe,ce&&ce.is,ce),se&8?c(ue,G.children):se&16&&C(G.children,ue,null,me,ve,H3(G,oe),ae,Ae),he&&_c(G,null,me,"created"),B(ue,G,G.scopeId,ae,me),ce){for(const Re in ce)Re!=="value"&&!Gp(Re)&&s(ue,Re,null,ce[Re],oe,me);"value"in ce&&s(ue,"value",null,ce.value,oe),(Se=ce.onVnodeBeforeMount)&&Ra(Se,me,G)}he&&_c(G,null,me,"beforeMount");const Ce=pU(ve,Ie);Ce&&Ie.beforeEnter(ue),i(ue,J,fe),((Se=ce&&ce.onVnodeMounted)||Ce||he)&&vs(()=>{try{Se&&Ra(Se,me,G),Ce&&Ie.enter(ue),he&&_c(G,null,me,"mounted")}finally{}},ve)},B=(G,J,fe,me,ve)=>{if(fe&&h(G,fe),me)for(let oe=0;oe{for(let Se=ue;Se{const Ae=J.el=G.el;let{patchFlag:ue,dynamicChildren:Se,dirs:ce}=J;ue|=G.patchFlag&16;const se=G.props||pi,Ie=J.props||pi;let he;if(fe&&np(fe,!1),(he=Ie.onVnodeBeforeUpdate)&&Ra(he,fe,J,G),ce&&_c(J,G,fe,"beforeUpdate"),fe&&np(fe,!0),Se&&(!G.dynamicChildren||G.dynamicChildren.length!==Se.length)&&(ue=0,ae=!1,Se=null),(se.innerHTML&&Ie.innerHTML==null||se.textContent&&Ie.textContent==null)&&c(Ae,""),Se?I(G.dynamicChildren,Se,Ae,fe,me,H3(J,ve),oe):ae||L(G,J,Ae,null,fe,me,H3(J,ve),oe,!1),ue>0){if(ue&16)F(Ae,se,Ie,fe,ve);else if(ue&2&&se.class!==Ie.class&&s(Ae,"class",null,Ie.class,ve),ue&4&&s(Ae,"style",se.style,Ie.style,ve),ue&8){const Ce=J.dynamicProps;for(let Re=0;Re{he&&Ra(he,fe,J,G),ce&&_c(J,G,fe,"updated")},me)},I=(G,J,fe,me,ve,oe,ae)=>{for(let Ae=0;Ae{if(J!==fe){if(J!==pi)for(const oe in J)!Gp(oe)&&!(oe in fe)&&s(G,oe,J[oe],null,ve,me);for(const oe in fe){if(Gp(oe))continue;const ae=fe[oe],Ae=J[oe];ae!==Ae&&oe!=="value"&&s(G,oe,Ae,ae,ve,me)}"value"in fe&&s(G,"value",J.value,fe.value,ve)}},E=(G,J,fe,me,ve,oe,ae,Ae,ue)=>{const Se=J.el=G?G.el:a(""),ce=J.anchor=G?G.anchor:a("");let{patchFlag:se,dynamicChildren:Ie,slotScopeIds:he}=J;he&&(Ae=Ae?Ae.concat(he):he),G==null?(i(Se,fe,me),i(ce,fe,me),C(J.children||[],fe,ce,ve,oe,ae,Ae,ue)):se>0&&se&64&&Ie&&G.dynamicChildren&&G.dynamicChildren.length===Ie.length?(I(G.dynamicChildren,Ie,fe,ve,oe,ae,Ae),(J.key!=null||ve&&J===ve.subTree)&&M_(G,J,!0)):L(G,J,fe,ce,ve,oe,ae,Ae,ue)},D=(G,J,fe,me,ve,oe,ae,Ae,ue)=>{J.slotScopeIds=Ae,G==null?J.shapeFlag&512?ve.ctx.activate(J,fe,me,ae,ue):j(J,fe,me,ve,oe,ae,ue):z(G,J,ue)},j=(G,J,fe,me,ve,oe,ae)=>{const Ae=G.component=CU(G,me,ve);if(H2(G)&&(Ae.ctx.renderer=we),xU(Ae,!1,ae),Ae.asyncDep){if(ve&&ve.registerDep(Ae,T,ae),!G.el){const ue=Ae.subTree=K(Cs);y(null,ue,J,fe),G.placeholder=ue.el}}else T(Ae,G,J,fe,ve,oe,ae)},z=(G,J,fe)=>{const me=J.component=G.component;if(woe(G,J,fe))if(me.asyncDep&&!me.asyncResolved){N(me,J,fe);return}else me.next=J,me.update();else J.el=G.el,me.vnode=J},T=(G,J,fe,me,ve,oe,ae)=>{const Ae=()=>{if(G.isMounted){let{next:se,bu:Ie,u:he,parent:Ce,vnode:Re}=G;{const ht=mU(G);if(ht){se&&(se.el=Re.el,N(G,se,ae)),ht.asyncDep.then(()=>{vs(()=>{G.isUnmounted||Se()},ve)});return}}let Pe=se,Ze;np(G,!1),se?(se.el=Re.el,N(G,se,ae)):se=Re,Ie&&Xm(Ie),(Ze=se.props&&se.props.onVnodeBeforeUpdate)&&Ra(Ze,Ce,se,Re),np(G,!0);const lt=v9(G),Dt=G.subTree;G.subTree=lt,g(Dt,lt,d(Dt.el),ge(Dt),G,ve,oe),se.el=lt.el,Pe===null&&P4(G,lt.el),he&&vs(he,ve),(Ze=se.props&&se.props.onVnodeUpdated)&&vs(()=>Ra(Ze,Ce,se,Re),ve)}else{let se;const{el:Ie,props:he}=J,{bm:Ce,m:Re,parent:Pe,root:Ze,type:lt}=G,Dt=Pd(J);if(np(G,!1),Ce&&Xm(Ce),!Dt&&(se=he&&he.onVnodeBeforeMount)&&Ra(se,Pe,J),np(G,!0),Ie&&ie){const ht=()=>{G.subTree=v9(G),ie(Ie,G.subTree,G,ve,null)};Dt&<.__asyncHydrate?lt.__asyncHydrate(Ie,G,ht):ht()}else{Ze.ce&&Ze.ce._hasShadowRoot()&&Ze.ce._injectChildStyle(lt,G.parent?G.parent.type:void 0);const ht=G.subTree=v9(G);g(null,ht,fe,me,G,ve,oe),J.el=ht.el}if(Re&&vs(Re,ve),!Dt&&(se=he&&he.onVnodeMounted)){const ht=J;vs(()=>Ra(se,Pe,ht),ve)}(J.shapeFlag&256||Pe&&Pd(Pe.vnode)&&Pe.vnode.shapeFlag&256)&&G.a&&vs(G.a,ve),G.isMounted=!0,J=fe=me=null}};G.scope.on();const ue=G.effect=new pb(Ae);G.scope.off();const Se=G.update=ue.run.bind(ue),ce=G.job=ue.runIfDirty.bind(ue);ce.i=G,ce.id=G.uid,ue.scheduler=()=>y_(ce),np(G,!0),Se()},N=(G,J,fe)=>{J.component=G;const me=G.vnode.props;G.vnode=J,G.next=null,Soe(G,J.props,me,fe),Ioe(G,J.children,fe),Vc(),AB(G),Gc()},L=(G,J,fe,me,ve,oe,ae,Ae,ue=!1)=>{const Se=G&&G.children,ce=G?G.shapeFlag:0,se=J.children,{patchFlag:Ie,shapeFlag:he}=J;if(Ie>0){if(Ie&128){O(Se,se,fe,me,ve,oe,ae,Ae,ue);return}else if(Ie&256){H(Se,se,fe,me,ve,oe,ae,Ae,ue);return}}he&8?(ce&16&&X(Se,ve,oe),se!==Se&&c(fe,se)):ce&16?he&16?O(Se,se,fe,me,ve,oe,ae,Ae,ue):X(Se,ve,oe,!0):(ce&8&&c(fe,""),he&16&&C(se,fe,me,ve,oe,ae,Ae,ue))},H=(G,J,fe,me,ve,oe,ae,Ae,ue)=>{G=G||Ym,J=J||Ym;const Se=G.length,ce=J.length,se=Math.min(Se,ce);let Ie;for(Ie=0;Iece?X(G,ve,oe,!0,!1,se):C(J,fe,me,ve,oe,ae,Ae,ue,se)},O=(G,J,fe,me,ve,oe,ae,Ae,ue)=>{let Se=0;const ce=J.length;let se=G.length-1,Ie=ce-1;for(;Se<=se&&Se<=Ie;){const he=G[Se],Ce=J[Se]=ue?Cd(J[Se]):La(J[Se]);if(zu(he,Ce))g(he,Ce,fe,null,ve,oe,ae,Ae,ue);else break;Se++}for(;Se<=se&&Se<=Ie;){const he=G[se],Ce=J[Ie]=ue?Cd(J[Ie]):La(J[Ie]);if(zu(he,Ce))g(he,Ce,fe,null,ve,oe,ae,Ae,ue);else break;se--,Ie--}if(Se>se){if(Se<=Ie){const he=Ie+1,Ce=heIe)for(;Se<=se;)Y(G[Se],ve,oe,!0),Se++;else{const he=Se,Ce=Se,Re=new Map;for(Se=Ce;Se<=Ie;Se++){const Fe=J[Se]=ue?Cd(J[Se]):La(J[Se]);Fe.key!=null&&Re.set(Fe.key,Se)}let Pe,Ze=0;const lt=Ie-Ce+1;let Dt=!1,ht=0;const Rt=new Array(lt);for(Se=0;Se=lt){Y(Fe,ve,oe,!0);continue}let et;if(Fe.key!=null)et=Re.get(Fe.key);else for(Pe=Ce;Pe<=Ie;Pe++)if(Rt[Pe-Ce]===0&&zu(Fe,J[Pe])){et=Pe;break}et===void 0?Y(Fe,ve,oe,!0):(Rt[et-Ce]=Se+1,et>=ht?ht=et:Dt=!0,g(Fe,J[et],fe,null,ve,oe,ae,Ae,ue),Ze++)}const wt=Dt?Boe(Rt):Ym;for(Pe=wt.length-1,Se=lt-1;Se>=0;Se--){const Fe=Ce+Se,et=J[Fe],xe=J[Fe+1],He=Fe+1{const{el:oe,type:ae,transition:Ae,children:ue,shapeFlag:Se}=G;if(Se&6){Q(G.component.subTree,J,fe,me);return}if(Se&128){G.suspense.move(J,fe,me);return}if(Se&64){ae.move(G,J,fe,we);return}if(ae===Be){i(oe,J,fe);for(let se=0;seAe.enter(oe),ve));else{const{leave:se,delayLeave:Ie,afterLeave:he}=Ae,Ce=()=>{G.ctx.isUnmounted?o(oe):i(oe,J,fe)},Re=()=>{const Pe=oe._isLeaving||!!oe[Yl];oe._isLeaving&&oe[Yl](!0),Ae.persisted&&!Pe?Ce():se(oe,()=>{Ce(),he&&he()})};Ie?Ie(oe,Ce,Re):Re()}else i(oe,J,fe)},Y=(G,J,fe,me=!1,ve=!1)=>{const{type:oe,props:ae,ref:Ae,children:ue,dynamicChildren:Se,shapeFlag:ce,patchFlag:se,dirs:Ie,cacheIndex:he,memo:Ce}=G;if(se===-2&&(ve=!1),Ae!=null&&(Vc(),ng(Ae,null,fe,G,!0),Gc()),he!=null&&(J.renderCache[he]=void 0),ce&256){J.ctx.deactivate(G);return}const Re=ce&1&&Ie,Pe=!Pd(G);let Ze;if(Pe&&(Ze=ae&&ae.onVnodeBeforeUnmount)&&Ra(Ze,J,G),ce&6)ee(G.component,fe,me);else{if(ce&128){G.suspense.unmount(fe,me);return}Re&&_c(G,null,J,"beforeUnmount"),ce&64?G.type.remove(G,J,fe,we,me):Se&&!Se.hasOnce&&(oe!==Be||se>0&&se&64)?X(Se,J,fe,!1,!0):(oe===Be&&se&384||!ve&&ce&16)&&X(ue,J,fe),me&&W(G)}const lt=Ce!=null&&he==null;(Pe&&(Ze=ae&&ae.onVnodeUnmounted)||Re||lt)&&vs(()=>{Ze&&Ra(Ze,J,G),Re&&_c(G,null,J,"unmounted"),lt&&(G.el=null)},fe)},W=G=>{const{type:J,el:fe,anchor:me,transition:ve}=G;if(J===Be){Z(fe,me);return}if(J===og){w(G);return}const oe=()=>{o(fe),ve&&!ve.persisted&&ve.afterLeave&&ve.afterLeave()};if(G.shapeFlag&1&&ve&&!ve.persisted){const{leave:ae,delayLeave:Ae}=ve,ue=()=>ae(fe,oe);Ae?Ae(G.el,oe,ue):ue()}else oe()},Z=(G,J)=>{let fe;for(;G!==J;)fe=f(G),o(G),G=fe;o(J)},ee=(G,J,fe)=>{const{bum:me,scope:ve,job:oe,subTree:ae,um:Ae,m:ue,a:Se}=G;Sb(ue),Sb(Se),me&&Xm(me),ve.stop(),oe&&(oe.flags|=8,Y(ae,G,J,fe)),Ae&&vs(Ae,J),vs(()=>{G.isUnmounted=!0},J)},X=(G,J,fe,me=!1,ve=!1,oe=0)=>{for(let ae=oe;ae{if(G.shapeFlag&6)return ge(G.component.subTree);if(G.shapeFlag&128)return G.suspense.next();const J=f(G.anchor||G.el),fe=J&&J[$H];return fe?f(fe):J};let q=!1;const pe=(G,J,fe)=>{let me;G==null?J._vnode&&(Y(J._vnode,null,null,!0),me=J._vnode.component):g(J._vnode||null,G,J,null,null,null,fe),J._vnode=G,q||(q=!0,AB(me),kb(),q=!1)},we={p:g,um:Y,m:Q,r:W,mt:j,mc:C,pc:L,pbc:I,n:ge,o:e};let te,ie;return t&&([te,ie]=t(we)),{render:pe,hydrate:te,createApp:goe(pe,te)}}function H3({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function np({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function pU(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function M_(e,t,n=!1){const i=e.children,o=t.children;if(_n(i)&&_n(o))for(let s=0;s>1,e[n[a]]0&&(t[i]=n[s-1]),n[s]=i)}}for(s=n.length,r=n[s-1];s-- >0;)n[s]=r,r=t[r];return n}function mU(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:mU(t)}function Sb(e){if(e)for(let t=0;te.__isSuspense;let j6=0;const Foe={name:"Suspense",__isSuspense:!0,process(e,t,n,i,o,s,r,a,l,u){if(e==null)Roe(t,n,i,o,s,r,a,l,u);else{if(s&&s.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}Doe(e,t,n,i,o,r,a,l,u)}},hydrate:Noe,normalize:Loe},u_t=Foe;function VA(e,t){const n=e.props&&e.props[t];Pn(n)&&n()}function Roe(e,t,n,i,o,s,r,a,l){const{p:u,o:{createElement:c}}=l,d=c("div"),f=e.suspense=vU(e,o,i,t,d,n,s,r,a,l);u(null,f.pendingBranch=e.ssContent,d,null,i,f,s,r),f.deps>0?(VA(e,"onPending"),VA(e,"onFallback"),u(null,e.ssFallback,t,n,i,null,s,r),ig(f,e.ssFallback)):f.resolve(!1,!0)}function Doe(e,t,n,i,o,s,r,a,{p:l,um:u,o:{createElement:c}}){const d=t.suspense=e.suspense;d.vnode=t,t.el=e.el;const f=t.ssContent,h=t.ssFallback,{activeBranch:m,pendingBranch:g,isInFallback:v,isHydrating:y}=d;if(g)d.pendingBranch=f,zu(g,f)?(l(g,f,d.hiddenContainer,null,o,d,s,r,a),d.deps<=0?d.resolve():v&&(y||(l(m,h,n,i,o,null,s,r,a),ig(d,h)))):(d.pendingId=j6++,y?(d.isHydrating=!1,d.activeBranch=g):u(g,o,d),d.deps=0,d.effects.length=0,d.hiddenContainer=c("div"),v?(l(null,f,d.hiddenContainer,null,o,d,s,r,a),d.deps<=0?d.resolve():(l(m,h,n,i,o,null,s,r,a),ig(d,h))):m&&zu(m,f)?(l(m,f,n,i,o,d,s,r,a),d.resolve(!0)):(l(null,f,d.hiddenContainer,null,o,d,s,r,a),d.deps<=0&&d.resolve()));else if(m&&zu(m,f))l(m,f,n,i,o,d,s,r,a),ig(d,f);else if(VA(t,"onPending"),d.pendingBranch=f,f.shapeFlag&512?d.pendingId=f.component.suspenseId:d.pendingId=j6++,l(null,f,d.hiddenContainer,null,o,d,s,r,a),d.deps<=0)d.resolve();else{const{timeout:A,pendingId:b}=d;A>0?setTimeout(()=>{d.pendingId===b&&d.fallback(h)},A):A===0&&d.fallback(h)}}function vU(e,t,n,i,o,s,r,a,l,u,c=!1){const{p:d,m:f,um:h,n:m,o:{parentNode:g,remove:v}}=u;let y;const A=Poe(e);A&&t&&t.pendingBranch&&(y=t.pendingId,t.deps++);const b=e.props?hb(e.props.timeout):void 0,w=s,_={vnode:e,parent:t,parentComponent:n,namespace:r,container:i,hiddenContainer:o,deps:0,pendingId:j6++,timeout:typeof b=="number"?b:-1,activeBranch:null,isFallbackMountPending:!1,pendingBranch:null,isInFallback:!c,isHydrating:c,isUnmounted:!1,effects:[],resolve(M=!1,B=!1){const{vnode:C,activeBranch:S,pendingBranch:I,pendingId:F,effects:E,parentComponent:D,container:j,isInFallback:z}=_;let T=!1;if(_.isHydrating)_.isHydrating=!1;else if(!M){T=S&&I.transition&&I.transition.mode==="out-in";let H=!1;T&&(S.transition.afterLeave=()=>{F===_.pendingId&&(f(I,j,s===w&&!H?m(S):s,0),yb(E),z&&C.ssFallback&&(C.ssFallback.el=null))}),S&&!_.isFallbackMountPending&&(g(S.el)===j&&(s=m(S),H=!0),h(S,D,_,!0),!T&&z&&C.ssFallback&&vs(()=>C.ssFallback.el=null,_)),T||f(I,j,s,0)}_.isFallbackMountPending=!1,ig(_,I),_.pendingBranch=null,_.isInFallback=!1;let N=_.parent,L=!1;for(;N;){if(N.pendingBranch){N.effects.push(...E),L=!0;break}N=N.parent}!L&&!T&&yb(E),_.effects=[],A&&t&&t.pendingBranch&&y===t.pendingId&&(t.deps--,t.deps===0&&!B&&t.resolve()),VA(C,"onResolve")},fallback(M){if(!_.pendingBranch)return;const{vnode:B,activeBranch:C,parentComponent:S,container:I,namespace:F}=_;VA(B,"onFallback");const E=m(C),D=()=>{_.isFallbackMountPending=!1,_.isInFallback&&(d(null,M,I,E,S,null,F,a,l),ig(_,M))},j=M.transition&&M.transition.mode==="out-in";j&&(_.isFallbackMountPending=!0,C.transition.afterLeave=D),_.isInFallback=!0,h(C,S,null,!0),j||D()},move(M,B,C){_.activeBranch&&f(_.activeBranch,M,B,C),_.container=M},next(){return _.activeBranch&&m(_.activeBranch)},registerDep(M,B,C){const S=!!_.pendingBranch;S&&_.deps++;const I=M.vnode.el;M.asyncDep.catch(F=>{Kg(F,M,0)}).then(F=>{if(M.isUnmounted||_.isUnmounted||_.pendingId!==M.suspenseId)return;GA(),M.asyncResolved=!0;const{vnode:E}=M;H6(M,F,!1),I&&(E.el=I);const D=!I&&M.subTree.el;B(M,E,g(I||M.subTree.el),I?null:m(M.subTree),_,r,C),D&&(E.placeholder=null,v(D)),P4(M,E.el),S&&--_.deps===0&&_.resolve()})},unmount(M,B){_.isUnmounted=!0,_.activeBranch&&h(_.activeBranch,n,M,B),_.pendingBranch&&h(_.pendingBranch,n,M,B)}};return _}function Noe(e,t,n,i,o,s,r,a,l){const u=t.suspense=vU(t,i,n,e.parentNode,document.createElement("div"),null,o,s,r,a,!0),c=l(e,u.pendingBranch=t.ssContent,n,u,s,r);return u.deps===0&&u.resolve(!1,!0),c}function Loe(e){const{shapeFlag:t,children:n}=e,i=t&32;e.ssContent=BB(i?n.default:n),e.ssFallback=i?BB(n.fallback):K(Cs)}function BB(e){let t;if(Pn(e)){const n=u1&&e._c;n&&(e._d=!1,k()),e=e(),n&&(e._d=!0,t=Vr,yU())}return _n(e)&&(e=yoe(e)),e=La(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function AU(e,t){t&&t.pendingBranch?_n(e)?t.effects.push(...e):t.effects.push(e):yb(e)}function ig(e,t){e.activeBranch=t;const{vnode:n,parentComponent:i}=e;let o=t.el;for(;!o&&t.component;)t=t.component.subTree,o=t.el;n.el=o,i&&i.subTree===n&&(i.vnode.el=o,P4(i,o))}function Poe(e){const t=e.props&&e.props.suspensible;return t!=null&&t!==!1}const Be=Symbol.for("v-fgt"),qf=Symbol.for("v-txt"),Cs=Symbol.for("v-cmt"),og=Symbol.for("v-stc"),Jv=[];let Vr=null;function k(e=!1){Jv.push(Vr=e?null:[])}function yU(){Jv.pop(),Vr=Jv[Jv.length-1]||null}let u1=1;function _b(e,t=!1){u1+=e,e<0&&Vr&&t&&(Vr.hasOnce=!0)}function kU(e){return e.dynamicChildren=u1>0?Vr||Ym:null,yU(),u1>0&&Vr&&Vr.push(e),e}function R(e,t,n,i,o,s){return kU(x(e,t,n,i,o,s,!0))}function de(e,t,n,i,o){return kU(K(e,t,n,i,o,!0))}function ah(e){return e?e.__v_isVNode===!0:!1}function zu(e,t){return e.type===t.type&&e.key===t.key}function c_t(e){}const bU=({key:e})=>e??null,A9=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Xi(e)||eo(e)||Pn(e)?{i:Er,r:e,k:t,f:!!n}:e:null);function x(e,t=null,n=null,i=0,o=null,s=e===Be?0:1,r=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&bU(t),ref:t&&A9(t),scopeId:D4,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:i,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:Er};return a?(Eb(l,n),s&128&&e.normalize(l)):n&&(l.shapeFlag|=Xi(n)?8:16),u1>0&&!r&&Vr&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&Vr.push(l),l}const K=Ooe;function Ooe(e,t=null,n=null,i=0,o=null,s=!1){if((!e||e===YH)&&(e=Cs),ah(e)){const a=Qd(e,t,!0);return n&&Eb(a,n),u1>0&&!s&&Vr&&(a.shapeFlag&6?Vr[Vr.indexOf(e)]=a:Vr.push(a)),a.patchFlag=-2,a}if(Uoe(e)&&(e=e.__vccOpts),t){t=wU(t);let{class:a,style:l}=t;a&&!Xi(a)&&(t.class=De(a)),Fi(l)&&(R4(l)&&!_n(l)&&(l=qi({},l)),t.style=an(l))}const r=Xi(e)?1:xb(e)?128:jH(e)?64:Fi(e)?4:Pn(e)?2:0;return x(e,t,n,i,o,r,s,!0)}function wU(e){return e?R4(e)||aU(e)?qi({},e):e:null}function Qd(e,t,n=!1,i=!1){const{props:o,ref:s,patchFlag:r,children:a,transition:l}=e,u=t?fi(o||{},t):o,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&bU(u),ref:t&&t.ref?n&&s?_n(s)?s.concat(A9(t)):[s,A9(t)]:A9(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Be?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Qd(e.ssContent),ssFallback:e.ssFallback&&Qd(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&i&&rh(c,l.clone(c)),c}function ze(e=" ",t=0){return K(qf,null,e,t)}function Ih(e,t){const n=K(og,null,e);return n.staticCount=t,n}function ne(e="",t=!1){return t?(k(),de(Cs,null,e)):K(Cs,null,e)}function La(e){return e==null||typeof e=="boolean"?K(Cs):_n(e)?K(Be,null,e.slice()):ah(e)?Cd(e):K(qf,null,String(e))}function Cd(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Qd(e)}function Eb(e,t){let n=0;const{shapeFlag:i}=e;if(t==null)t=null;else if(_n(t))n=16;else if(typeof t=="object")if(i&65){const o=t.default;o&&(o._c&&(o._d=!1),Eb(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!aU(t)?t._ctx=Er:o===3&&Er&&(Er.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Pn(t)){if(i&65){Eb(e,{default:t});return}t={default:t,_ctx:Er},n=32}else t=String(t),i&64?(n=16,t=[ze(t)]):n=8;e.children=t,e.shapeFlag|=n}function fi(...e){const t={};for(let n=0;nSr||Er;let Ib,sg;{const e=_4(),t=(n,i)=>{let o;return(o=e[n])||(o=e[n]=[]),o.push(i),s=>{o.length>1?o.forEach(r=>r(s)):o[0](s)}};Ib=t("__VUE_INSTANCE_SETTERS__",n=>Sr=n),sg=t("__VUE_SSR_SETTERS__",n=>c1=n)}const Jg=e=>{const t=Sr;return Ib(e),e.scope.on(),()=>{e.scope.off(),Ib(t)}},GA=()=>{Sr&&Sr.scope.off(),Ib(null)};function SU(e){return e.vnode.shapeFlag&4}let c1=!1;function xU(e,t=!1,n=!1){t&&sg(t);const{props:i,children:o}=e.vnode,s=SU(e);Coe(e,i,s,t),Eoe(e,o,n||t);const r=s?joe(e,t):void 0;return t&&sg(!1),r}function joe(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,P6);const{setup:i}=n;if(i){Vc();const o=e.setupContext=i.length>1?EU(e):null,s=Jg(e),r=$2(i,e,0,[e.props,o]),a=m_(r);if(Gc(),s(),(a||e.sp)&&!Pd(e)&&b_(e),a){if(r.then(GA,GA),t)return r.then(l=>{H6(e,l,t)}).catch(l=>{Kg(l,e,0)});e.asyncDep=r}else H6(e,r,t)}else _U(e,t)}function H6(e,t,n){Pn(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Fi(t)&&(e.setupState=FH(t)),_U(e,n)}let Mb,U6;function d_t(e){Mb=e,U6=t=>{t.render._rc&&(t.withProxy=new Proxy(t.ctx,uoe))}}const f_t=()=>!Mb;function _U(e,t,n){const i=e.type;if(!e.render){if(!t&&Mb&&!i.render){const o=i.template||__(e).template;if(o){const{isCustomElement:s,compilerOptions:r}=e.appContext.config,{delimiters:a,compilerOptions:l}=i,u=qi(qi({isCustomElement:s,delimiters:a},r),l);i.render=Mb(o,u)}}e.render=i.render||uu,U6&&U6(e)}{const o=Jg(e);Vc();try{coe(e)}finally{Gc(),o()}}}const Hoe={get(e,t){return Wr(e,"get",""),e[t]}};function EU(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Hoe),slots:e.slots,emit:e.emit,expose:t}}function U2(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(FH(Tt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Yv)return Yv[n](e)},has(t,n){return n in t||n in Yv}})):e.proxy}function W6(e,t=!0){return Pn(e)?e.displayName||e.name:e.name||t&&e.__name}function Uoe(e){return Pn(e)&&"__vccOpts"in e}const P=(e,t)=>Sie(e,t,c1);function Dn(e,t,n){try{_b(-1);const i=arguments.length;return i===2?Fi(t)&&!_n(t)?ah(t)?K(e,null,[t]):K(e,t):K(e,null,t):(i>3?n=Array.prototype.slice.call(arguments,2):i===3&&ah(n)&&(n=[n]),K(e,t,n))}finally{_b(1)}}function h_t(){}function p_t(e,t,n,i){const o=n[i];if(o&&Woe(o,e))return o;const s=t();return s.memo=e.slice(),s.cacheIndex=i,n[i]=s}function Woe(e,t){const n=e.memo;if(n.length!=t.length)return!1;for(let i=0;i0&&Vr&&Vr.push(e),!0}const Qoe="3.5.39",m_t=uu,g_t=Mie,v_t=ym,A_t=OH,Voe={createComponentInstance:CU,setupComponent:xU,renderComponentRoot:v9,setCurrentRenderingInstance:UA,isVNode:ah,normalizeVNode:La,getComponentPublicInstance:U2,ensureValidVNode:x_,pushWarningContext:Eie,popWarningContext:Iie},y_t=Voe,k_t=null,b_t=null,w_t=null;/** -* @vue/runtime-dom v3.5.39 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Q6;const FB=typeof window<"u"&&window.trustedTypes;if(FB)try{Q6=FB.createPolicy("vue",{createHTML:e=>e})}catch{}const IU=Q6?e=>Q6.createHTML(e):e=>e,Goe="http://www.w3.org/2000/svg",qoe="http://www.w3.org/1998/Math/MathML",kd=typeof document<"u"?document:null,RB=kd&&kd.createElement("template"),Koe={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,i)=>{const o=t==="svg"?kd.createElementNS(Goe,e):t==="mathml"?kd.createElementNS(qoe,e):n?kd.createElement(e,{is:n}):kd.createElement(e);return e==="select"&&i&&i.multiple!=null&&o.setAttribute("multiple",i.multiple),o},createText:e=>kd.createTextNode(e),createComment:e=>kd.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>kd.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,i,o,s){const r=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{RB.innerHTML=IU(i==="svg"?`${e}`:i==="mathml"?`${e}`:e);const a=RB.content;if(i==="svg"||i==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[r?r.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},pf="transition",q0="animation",xg=Symbol("_vtc"),MU={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},TU=qi({},UH,MU),Zoe=e=>(e.displayName="Transition",e.props=TU,e),wo=Zoe((e,{slots:t})=>Dn(jie,BU(e),t)),ip=(e,t=[])=>{_n(e)?e.forEach(n=>n(...t)):e&&e(...t)},DB=e=>e?_n(e)?e.some(t=>t.length>1):e.length>1:!1;function BU(e){const t={};for(const E in e)E in MU||(t[E]=e[E]);if(e.css===!1)return t;const{name:n="v",type:i,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:r=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:l=s,appearActiveClass:u=r,appearToClass:c=a,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,m=Yoe(o),g=m&&m[0],v=m&&m[1],{onBeforeEnter:y,onEnter:A,onEnterCancelled:b,onLeave:w,onLeaveCancelled:_,onBeforeAppear:M=y,onAppear:B=A,onAppearCancelled:C=b}=t,S=(E,D,j,z)=>{E._enterCancelled=z,Cf(E,D?c:a),Cf(E,D?u:r),j&&j()},I=(E,D)=>{E._isLeaving=!1,Cf(E,d),Cf(E,h),Cf(E,f),D&&D()},F=E=>(D,j)=>{const z=E?B:A,T=()=>S(D,E,j);ip(z,[D,T]),NB(()=>{Cf(D,E?l:s),kc(D,E?c:a),DB(z)||LB(D,i,g,T)})};return qi(t,{onBeforeEnter(E){ip(y,[E]),kc(E,s),kc(E,r)},onBeforeAppear(E){ip(M,[E]),kc(E,l),kc(E,u)},onEnter:F(!1),onAppear:F(!0),onLeave(E,D){E._isLeaving=!0;const j=()=>I(E,D);kc(E,d),E._enterCancelled?(kc(E,f),V6(E)):(V6(E),kc(E,f)),NB(()=>{E._isLeaving&&(Cf(E,d),kc(E,h),DB(w)||LB(E,i,v,j))}),ip(w,[E,j])},onEnterCancelled(E){S(E,!1,void 0,!0),ip(b,[E])},onAppearCancelled(E){S(E,!0,void 0,!0),ip(C,[E])},onLeaveCancelled(E){I(E),ip(_,[E])}})}function Yoe(e){if(e==null)return null;if(Fi(e))return[U3(e.enter),U3(e.leave)];{const t=U3(e);return[t,t]}}function U3(e){return hb(e)}function kc(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[xg]||(e[xg]=new Set)).add(t)}function Cf(e,t){t.split(/\s+/).forEach(i=>i&&e.classList.remove(i));const n=e[xg];n&&(n.delete(t),n.size||(e[xg]=void 0))}function NB(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Joe=0;function LB(e,t,n,i){const o=e._endId=++Joe,s=()=>{o===e._endId&&i()};if(n!=null)return setTimeout(s,n);const{type:r,timeout:a,propCount:l}=FU(e,t);if(!r)return i();const u=r+"end";let c=0;const d=()=>{e.removeEventListener(u,f),s()},f=h=>{h.target===e&&++c>=l&&d()};setTimeout(()=>{c(n[m]||"").split(", "),o=i(`${pf}Delay`),s=i(`${pf}Duration`),r=PB(o,s),a=i(`${q0}Delay`),l=i(`${q0}Duration`),u=PB(a,l);let c=null,d=0,f=0;t===pf?r>0&&(c=pf,d=r,f=s.length):t===q0?u>0&&(c=q0,d=u,f=l.length):(d=Math.max(r,u),c=d>0?r>u?pf:q0:null,f=c?c===pf?s.length:l.length:0);const h=c===pf&&/\b(?:transform|all)(?:,|$)/.test(i(`${pf}Property`).toString());return{type:c,timeout:d,propCount:f,hasTransform:h}}function PB(e,t){for(;e.lengthOB(n)+OB(e[i])))}function OB(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function V6(e){return(e?e.ownerDocument:document).body.offsetHeight}function Xoe(e,t,n){const i=e[xg];i&&(t=(t?[t,...i]:[...i]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Tb=Symbol("_vod"),T_=Symbol("_vsh"),Ho={name:"show",beforeMount(e,{value:t},{transition:n}){e[Tb]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):K0(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:i}){!t!=!n&&(i?t?(i.beforeEnter(e),K0(e,!0),i.enter(e)):i.leave(e,()=>{K0(e,!1)}):K0(e,t))},beforeUnmount(e,{value:t}){K0(e,t)}};function K0(e,t){e.style.display=t?e[Tb]:"none",e[T_]=!t}function ese(){Ho.getSSRProps=({value:e})=>{if(!e)return{style:{display:"none"}}}}const RU=Symbol("");function C_t(e){const t=Ms();if(!t)return;const n=t.ut=(o=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(s=>Bb(s,o))},i=()=>{const o=e(t.proxy);t.ce?Bb(t.ce,o):G6(t.subTree,o),n(o)};qH(()=>{yb(i)}),yn(()=>{$e(i,uu,{flush:"post"});const o=new MutationObserver(i);o.observe(t.subTree.el.parentNode,{childList:!0}),Tn(()=>o.disconnect())})}function G6(e,t){if(e.shapeFlag&128){const n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{G6(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)Bb(e.el,t);else if(e.type===Be)e.children.forEach(n=>G6(n,t));else if(e.type===og){let{el:n,anchor:i}=e;for(;n&&(Bb(n,t),n!==i);)n=n.nextSibling}}function Bb(e,t){if(e.nodeType===1){const n=e.style;let i="";for(const o in t){const s=Kne(t[o]);n.setProperty(`--${o}`,s),i+=`--${o}: ${s};`}n[RU]=i}}const tse=/(?:^|;)\s*display\s*:/;function nse(e,t,n){const i=e.style,o=Xi(n);let s=!1;if(n&&!o){if(t)if(Xi(t))for(const r of t.split(";")){const a=r.slice(0,r.indexOf(":")).trim();n[a]==null&&Cv(i,a,"")}else for(const r in t)n[r]==null&&Cv(i,r,"");for(const r in n){r==="display"&&(s=!0);const a=n[r];a!=null?ose(e,r,!Xi(t)&&t?t[r]:void 0,a)||Cv(i,r,a):Cv(i,r,"")}}else if(o){if(t!==n){const r=i[RU];r&&(n+=";"+r),i.cssText=n,s=tse.test(n)}}else t&&e.removeAttribute("style");Tb in e&&(e[Tb]=s?i.display:"",e[T_]&&(i.display="none"))}const zB=/\s*!important$/;function Cv(e,t,n){if(_n(n))n.forEach(i=>Cv(e,t,i));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const i=ise(e,t);zB.test(n)?e.setProperty(Pa(i),n.replace(zB,""),"important"):e[i]=n}}const $B=["Webkit","Moz","ms"],W3={};function ise(e,t){const n=W3[t];if(n)return n;let i=Qs(t);if(i!=="filter"&&i in e)return W3[t]=i;i=S4(i);for(let o=0;o<$B.length;o++){const s=$B[o]+i;if(s in e)return W3[t]=s}return t}function ose(e,t,n,i){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&Xi(i)&&n===i}const jB="http://www.w3.org/1999/xlink";function HB(e,t,n,i,o,s=Gne(t)){i&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(jB,t.slice(6,t.length)):e.setAttributeNS(jB,t,n):n==null||s&&!fH(n)?e.removeAttribute(t):e.setAttribute(t,s?"":Bl(n)?String(n):n)}function UB(e,t,n,i,o){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?IU(n):n);return}const s=e.tagName;if(t==="value"&&s!=="PROGRESS"&&!s.includes("-")){const a=s==="OPTION"?e.getAttribute("value")||"":e.value,l=n==null?e.type==="checkbox"?"on":"":String(n);(a!==l||!("_value"in e))&&(e.value=l),n==null&&e.removeAttribute(t),e._value=n;return}let r=!1;if(n===""||n==null){const a=typeof e[t];a==="boolean"?n=fH(n):n==null&&a==="string"?(n="",r=!0):a==="number"&&(n=0,r=!0)}try{e[t]=n}catch{}r&&e.removeAttribute(o||t)}function Id(e,t,n,i){e.addEventListener(t,n,i)}function sse(e,t,n,i){e.removeEventListener(t,n,i)}const WB=Symbol("_vei");function rse(e,t,n,i,o=null){const s=e[WB]||(e[WB]={}),r=s[t];if(i&&r)r.value=i;else{const[a,l]=use(t);if(i){const u=s[t]=fse(i,o);Id(e,a,u,l)}else r&&(sse(e,a,r,l),s[t]=void 0)}}const ase=/(Once|Passive|Capture)$/,lse=/^on:?(?:Once|Passive|Capture)$/;function use(e){let t,n;for(;(n=e.match(ase))&&!lse.test(e);)t||(t={}),e=e.slice(0,e.length-n[1].length),t[n[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):Pa(e.slice(2)),t]}let Q3=0;const cse=Promise.resolve(),dse=()=>Q3||(cse.then(()=>Q3=0),Q3=Date.now());function fse(e,t){const n=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=n.attached)return;const o=n.value;if(_n(o)){const s=i.stopImmediatePropagation;i.stopImmediatePropagation=()=>{s.call(i),i._stopped=!0};const r=o.slice(),a=[i];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,hse=(e,t,n,i,o,s)=>{const r=o==="svg";t==="class"?Xoe(e,i,r):t==="style"?nse(e,n,i):z2(t)?k4(t)||rse(e,t,n,i,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):pse(e,t,i,r))?(UB(e,t,i),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&HB(e,t,i,r,s,t!=="value")):e._isVueCE&&(mse(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Xi(i)))?UB(e,Qs(t),i,s,t):(t==="true-value"?e._trueValue=i:t==="false-value"&&(e._falseValue=i),HB(e,t,i,r))};function pse(e,t,n,i){if(i)return!!(t==="innerHTML"||t==="textContent"||t in e&&QB(t)&&Pn(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return QB(t)&&Xi(n)?!1:t in e}function mse(e,t){const n=e._def.props;if(!n)return!1;const i=Qs(t);return Array.isArray(n)?n.some(o=>Qs(o)===i):Object.keys(n).some(o=>Qs(o)===i)}const VB={};function gse(e,t,n){let i=st(e,t);b4(i)&&(i=qi({},i,t));class o extends B_{constructor(r){super(i,r,n)}}return o.def=i,o}const S_t=((e,t)=>gse(e,t,Fse)),vse=typeof HTMLElement<"u"?HTMLElement:class{};class B_ extends vse{constructor(t,n={},i=Db){super(),this._def=t,this._props=n,this._createApp=i,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&i!==Db?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(qi({},t.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.assignedSlot||t.parentNode||t.host);)if(t instanceof B_){this._parent=t;break}this._instance||(this._resolved?this._mount(this._def):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._inheritParentContext(t))}_inheritParentContext(t=this._parent){t&&this._app&&Object.setPrototypeOf(this._app._context.provides,t._instance.provides)}disconnectedCallback(){this._connected=!1,gt(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const n of t)this._setAttr(n.attributeName)}_resolveDef(){if(this._pendingResolve)return;for(let i=0;i{this._resolved=!0,this._pendingResolve=void 0;const{props:s,styles:r}=i;let a;if(s&&!_n(s))for(const l in s){const u=s[l];(u===Number||u&&u.type===Number)&&(l in this._props&&(this._props[l]=hb(this._props[l])),(a||(a=Object.create(null)))[Qs(l)]=!0)}this._numberProps=a,this._resolveProps(i),this.shadowRoot&&this._applyStyles(r),this._mount(i)},n=this._def.__asyncLoader;n?this._pendingResolve=n().then(i=>{i.configureApp=this._def.configureApp,t(this._def=i,!0)}):t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const n=this._instance&&this._instance.exposed;if(n)for(const i in n)Mi(this,i)||Object.defineProperty(this,i,{get:()=>p(n[i])})}_resolveProps(t){const{props:n}=t,i=_n(n)?n:Object.keys(n||{});for(const o of Object.keys(this))o[0]!=="_"&&i.includes(o)&&this._setProp(o,this[o]);for(const o of i.map(Qs))Object.defineProperty(this,o,{get(){return this._getProp(o)},set(s){this._setProp(o,s,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const n=this.hasAttribute(t);let i=n?this.getAttribute(t):VB;const o=Qs(t);n&&this._numberProps&&this._numberProps[o]&&(i=hb(i)),this._setProp(o,i,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,n,i=!0,o=!1){if(n!==this._props[t]&&(this._dirty=!0,n===VB?delete this._props[t]:(this._props[t]=n,t==="key"&&this._app&&(this._app._ceVNode.key=n)),o&&this._instance&&this._update(),i)){const s=this._ob;s&&(this._processMutations(s.takeRecords()),s.disconnect()),n===!0?this.setAttribute(Pa(t),""):typeof n=="string"||typeof n=="number"?this.setAttribute(Pa(t),n+""):n||this.removeAttribute(Pa(t)),s&&s.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),Bse(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const n=K(this._def,qi(t,this._props));return this._instance||(n.ce=i=>{this._instance=i,i.ce=this,i.isCE=!0;const o=(s,r)=>{this.dispatchEvent(new CustomEvent(s,b4(r[0])?qi({detail:r},r[0]):{detail:r}))};i.emit=(s,...r)=>{o(s,r),Pa(s)!==s&&o(Pa(s),r)},this._setParent()}),n}_applyStyles(t,n,i){if(!t)return;if(n){if(n===this._def||this._styleChildren.has(n))return;this._styleChildren.add(n)}const o=this._nonce,s=this.shadowRoot,r=i?this._getStyleAnchor(i)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(s);let a=null;for(let l=t.length-1;l>=0;l--){const u=document.createElement("style");o&&u.setAttribute("nonce",o),u.textContent=t[l],s.insertBefore(u,a||r),a=u,l===0&&(i||this._styleAnchors.set(this._def,u),n&&this._styleAnchors.set(n,u))}}_getStyleAnchor(t){if(!t)return null;const n=this._styleAnchors.get(t);return n&&n.parentNode===this.shadowRoot?n:(n&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let n=0;n(delete e.props.mode,e),kse=yse({name:"TransitionGroup",props:qi({},TU,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Ms(),i=HH();let o,s;return Zg(()=>{if(!o.length)return;const r=e.moveClass||`${e.name||"v"}-move`;if(!Sse(o[0].el,n.vnode.el,r)){o=[];return}o.forEach(bse),o.forEach(wse);const a=o.filter(Cse);V6(n.vnode.el),a.forEach(l=>{const u=l.el,c=u.style;kc(u,r),c.transform=c.webkitTransform=c.transitionDuration="";const d=u[Fb]=f=>{f&&f.target!==u||(!f||f.propertyName.endsWith("transform"))&&(u.removeEventListener("transitionend",d),u[Fb]=null,Cf(u,r))};u.addEventListener("transitionend",d)}),o=[]}),()=>{const r=gi(e),a=BU(r);let l=r.tag||Be;if(o=[],s)for(let u=0;u{a.split(/\s+/).forEach(l=>l&&i.classList.remove(l))}),n.split(/\s+/).forEach(a=>a&&i.classList.add(a)),i.style.display="none";const s=t.nodeType===1?t:t.parentNode;s.appendChild(i);const{hasTransform:r}=FU(i);return s.removeChild(i),r}const lh=e=>{const t=e.props["onUpdate:modelValue"]||!1;return _n(t)?n=>Xm(t,n):t};function xse(e){e.target.composing=!0}function qB(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const cu=Symbol("_assign");function KB(e,t,n){return t&&(e=e.trim()),n&&(e=x4(e)),e}const Mr={created(e,{modifiers:{lazy:t,trim:n,number:i}},o){e[cu]=lh(o);const s=i||o.props&&o.props.type==="number";Id(e,t?"change":"input",r=>{r.target.composing||e[cu](KB(e.value,n,s))}),(n||s)&&Id(e,"change",()=>{e.value=KB(e.value,n,s)}),t||(Id(e,"compositionstart",xse),Id(e,"compositionend",qB),Id(e,"change",qB))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:i,trim:o,number:s}},r){if(e[cu]=lh(r),e.composing)return;const a=(s||e.type==="number")&&!/^0\d/.test(e.value)?x4(e.value):e.value,l=t??"";if(a===l)return;const u=e.getRootNode();(u instanceof Document||u instanceof ShadowRoot)&&u.activeElement===e&&e.type!=="range"&&(i&&t===n||o&&e.value.trim()===l)||(e.value=l)}},Rb={deep:!0,created(e,t,n){e[cu]=lh(n),Id(e,"change",()=>{const i=e._modelValue,o=_g(e),s=e.checked,r=e[cu];if(_n(i)){const a=E4(i,o),l=a!==-1;if(s&&!l)r(i.concat(o));else if(!s&&l){const u=[...i];u.splice(a,1),r(u)}}else if(E1(i)){const a=new Set(i);s?a.add(o):a.delete(o),r(a)}else r(zU(e,s))})},mounted:ZB,beforeUpdate(e,t,n){e[cu]=lh(n),ZB(e,t,n)}};function ZB(e,{value:t,oldValue:n},i){e._modelValue=t;let o;if(_n(t))o=E4(t,i.props.value)>-1;else if(E1(t))o=t.has(i.props.value);else{if(t===n)return;o=Ud(t,zU(e,!0))}e.checked!==o&&(e.checked=o)}const OU={created(e,{value:t},n){e.checked=Ud(t,n.props.value),e[cu]=lh(n),Id(e,"change",()=>{e[cu](_g(e))})},beforeUpdate(e,{value:t,oldValue:n},i){e[cu]=lh(i),t!==n&&(e.checked=Ud(t,i.props.value))}},q6={deep:!0,created(e,{value:t,modifiers:{number:n}},i){const o=E1(t);Id(e,"change",()=>{const s=Array.prototype.filter.call(e.options,r=>r.selected).map(r=>n?x4(_g(r)):_g(r));e[cu](e.multiple?o?new Set(s):s:s[0]),e._assigning=!0,gt(()=>{e._assigning=!1})}),e[cu]=lh(i)},mounted(e,{value:t}){YB(e,t)},beforeUpdate(e,t,n){e[cu]=lh(n)},updated(e,{value:t}){e._assigning||YB(e,t)}};function YB(e,t){const n=e.multiple,i=_n(t);if(!(n&&!i&&!E1(t))){for(let o=0,s=e.options.length;oString(u)===String(a)):r.selected=E4(t,a)>-1}else r.selected=t.has(a);else if(Ud(_g(r),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function _g(e){return"_value"in e?e._value:e.value}function zU(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const _se={created(e,t,n){Xy(e,t,n,null,"created")},mounted(e,t,n){Xy(e,t,n,null,"mounted")},beforeUpdate(e,t,n,i){Xy(e,t,n,i,"beforeUpdate")},updated(e,t,n,i){Xy(e,t,n,i,"updated")}};function $U(e,t){switch(e){case"SELECT":return q6;case"TEXTAREA":return Mr;default:switch(t){case"checkbox":return Rb;case"radio":return OU;default:return Mr}}}function Xy(e,t,n,i,o){const r=$U(e.tagName,n.props&&n.props.type)[o];r&&r(e,t,n,i)}function Ese(){Mr.getSSRProps=({value:e})=>({value:e}),OU.getSSRProps=({value:e},t)=>{if(t.props&&Ud(t.props.value,e))return{checked:!0}},Rb.getSSRProps=({value:e},t)=>{if(_n(e)){if(t.props&&E4(e,t.props.value)>-1)return{checked:!0}}else if(E1(e)){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}},_se.getSSRProps=(e,t)=>{if(typeof t.type!="string")return;const n=$U(t.type.toUpperCase(),t.props&&t.props.type);if(n.getSSRProps)return n.getSSRProps(e,t)}}const Ise=["ctrl","shift","alt","meta"],Mse={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ise.some(n=>e[`${n}Key`]&&!t.includes(n))},Mt=(e,t)=>{if(!e)return e;const n=e._withMods||(e._withMods={}),i=t.join(".");return n[i]||(n[i]=((o,...s)=>{for(let r=0;r{const n=e._withKeys||(e._withKeys={}),i=t.join(".");return n[i]||(n[i]=(o=>{if(!("key"in o))return;const s=Pa(o.key);if(t.some(r=>r===s||Tse[r]===s))return e(o)}))},jU=qi({patchProp:hse},Koe);let Xv,JB=!1;function HU(){return Xv||(Xv=Moe(jU))}function UU(){return Xv=JB?Xv:Toe(jU),JB=!0,Xv}const Bse=((...e)=>{HU().render(...e)}),E_t=((...e)=>{UU().hydrate(...e)}),Db=((...e)=>{const t=HU().createApp(...e),{mount:n}=t;return t.mount=i=>{const o=QU(i);if(!o)return;const s=t._component;!Pn(s)&&!s.render&&!s.template&&(s.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const r=n(o,!1,WU(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),r},t}),Fse=((...e)=>{const t=UU().createApp(...e),{mount:n}=t;return t.mount=i=>{const o=QU(i);if(o)return n(o,!0,WU(o))},t});function WU(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function QU(e){return Xi(e)?document.querySelector(e):e}let XB=!1;const I_t=()=>{XB||(XB=!0,Ese(),ese())},VU=Symbol("IconResolver"),Rse={sm:14,md:16,lg:20},_e=st({__name:"Icon",props:{name:{},size:{default:"md"},label:{}},setup(e){const t=e,n=qt(VU,()=>{}),i=P(()=>n(t.name)),o=P(()=>Rse[t.size]);return(s,r)=>i.value?(k(),de(jo(i.value),{key:0,class:"kw-icon",width:o.value,height:o.value,"aria-label":e.label,"aria-hidden":e.label?void 0:!0},null,8,["width","height","aria-label","aria-hidden"])):ne("",!0)}}),Dse=["disabled"],Nse={key:0,class:"ui-action-card__leading"},Lse={class:"ui-action-card__text"},Pse={class:"ui-action-card__title"},Ose={key:0,class:"ui-action-card__hint"},zse=st({__name:"ActionCard",props:{disabled:{type:Boolean,default:!1}},emits:["select"],setup(e){return(t,n)=>(k(),R("button",{class:"ui-action-card",type:"button",disabled:e.disabled,onClick:n[0]||(n[0]=i=>t.$emit("select"))},[t.$slots.leading?(k(),R("span",Nse,[On(t.$slots,"leading",{},void 0,!0)])):ne("",!0),x("span",Lse,[x("span",Pse,[On(t.$slots,"default",{},void 0,!0),On(t.$slots,"badge",{},void 0,!0)]),t.$slots.hint?(k(),R("span",Ose,[On(t.$slots,"hint",{},void 0,!0)])):ne("",!0)]),K(_e,{name:"chevron-right",size:"lg",class:"ui-action-card__chevron"})],8,Dse))}}),Et=(e,t)=>{const n=e.__vccOpts||e;for(const[i,o]of t)n[i]=o;return n},K6=Et(zse,[["__scopeId","data-v-e52e7748"]]);/*! - * shared v11.4.6 - * (c) 2026 kazuya kawaguchi - * Released under the MIT License. - */function $se(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Nb=typeof window<"u",Mh=(e,t=!1)=>t?Symbol.for(e):Symbol(e),jse=(e,t,n)=>Hse({l:e,k:t,s:n}),Hse=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),xs=e=>typeof e=="number"&&isFinite(e),GU=e=>R_(e)==="[object Date]",Eg=e=>R_(e)==="[object RegExp]",O4=e=>yi(e)&&Object.keys(e).length===0,_s=Object.assign,Use=Object.create,Ji=(e=null)=>Use(e);let eF;const Rp=()=>eF||(eF=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Ji());function tF(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Wse(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}const Qse=/^\s*javascript\s*(?::|�*58;?|�*3a;?|:?)/i,Vse=/^(?:href|src|action|formaction)$/i;function F_(e){return Qse.test(e)}function Gse(e){const t=/url\s*\(/gi;let n="",i=0,o;for(;(o=t.exec(e))!==null;){const s=o.index,r=t.lastIndex-1;let a=r+1,l=1,u=null;for(;a`${i}="${nF(i,o)}"`),e=e.replace(/([\w:-]+)\s*=\s*'([^']*)'/g,(n,i,o)=>`${i}='${nF(i,o)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),e=e.replace(/(\s+(?:href|src|action|formaction)\s*=\s*)([^\s"'=<>`]+)/gi,(n,i,o)=>F_(o)?`${i}about:blank`:n),e}const Kse=Object.prototype.hasOwnProperty;function ou(e,t){return Kse.call(e,t)}const Uo=Array.isArray,bo=e=>typeof e=="function",An=e=>typeof e=="string",_i=e=>typeof e=="boolean",Ei=e=>e!==null&&typeof e=="object",Zse=e=>Ei(e)&&bo(e.then)&&bo(e.catch),qU=Object.prototype.toString,R_=e=>qU.call(e),yi=e=>R_(e)==="[object Object]",Yse=e=>e==null?"":Uo(e)||yi(e)&&e.toString===qU?JSON.stringify(e,null,2):String(e);function D_(e,t=""){return e.reduce((n,i,o)=>o===0?n+i:n+t+i,"")}const ek=e=>!Ei(e)||Uo(e);function y9(e,t){if(ek(e)||ek(t))throw new Error("Invalid value");const n=[{src:e,des:t}];for(;n.length;){const{src:i,des:o}=n.pop();Object.keys(i).forEach(s=>{s!=="__proto__"&&(Ei(i[s])&&!Ei(o[s])&&(o[s]=Array.isArray(i[s])?[]:Ji()),ek(o[s])||ek(i[s])?o[s]=i[s]:n.push({src:i[s],des:o[s]}))})}}/*! - * message-compiler v11.4.6 - * (c) 2026 kazuya kawaguchi - * Released under the MIT License. - */function Jse(e,t,n){return{line:e,column:t,offset:n}}function Z6(e,t,n){return{start:e,end:t}}const Oi={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14},Xse=17;function z4(e,t,n={}){const{domain:i,messages:o,args:s}=n,r=e,a=new SyntaxError(String(r));return a.code=e,t&&(a.location=t),a.domain=i,a}function ere(e){throw e}const gc=" ",tre="\r",jr=` -`,nre="\u2028",ire="\u2029";function ore(e){const t=e;let n=0,i=1,o=1,s=0;const r=B=>t[B]===tre&&t[B+1]===jr,a=B=>t[B]===jr,l=B=>t[B]===ire,u=B=>t[B]===nre,c=B=>r(B)||a(B)||l(B)||u(B),d=()=>n,f=()=>i,h=()=>o,m=()=>s,g=B=>r(B)||l(B)||u(B)?jr:t[B],v=()=>g(n),y=()=>g(n+s);function A(){return s=0,c(n)&&(i++,o=0),r(n)&&n++,n++,o++,t[n]}function b(){return r(n+s)&&s++,s++,t[n+s]}function w(){n=0,i=1,o=1,s=0}function _(B=0){s=B}function M(){const B=n+s;for(;B!==n;)A();s=0}return{index:d,line:f,column:h,peekOffset:m,charAt:g,currentChar:v,currentPeek:y,next:A,peek:b,reset:w,resetPeek:_,skipToPeek:M}}const md=void 0,sre=".",iF="'",rre="tokenizer";function are(e,t={}){const n=t.location!==!1,i=ore(e),o=()=>i.index(),s=()=>Jse(i.line(),i.column(),i.index()),r=s(),a=o(),l={currentType:13,offset:a,startLoc:r,endLoc:r,lastType:13,lastOffset:a,lastStartLoc:r,lastEndLoc:r,braceNest:0,inLinked:!1,text:""},u=()=>l,{onError:c}=t;function d(oe,ae,Ae,...ue){const Se=u();if(ae.column+=Ae,ae.offset+=Ae,c){const ce=n?Z6(Se.startLoc,ae):null,se=z4(oe,ce,{domain:rre,args:ue});c(se)}}function f(oe,ae,Ae){oe.endLoc=s(),oe.currentType=ae;const ue={type:ae};return n&&(ue.loc=Z6(oe.startLoc,oe.endLoc)),Ae!=null&&(ue.value=Ae),ue}const h=oe=>f(oe,13);function m(oe,ae){return oe.currentChar()===ae?(oe.next(),ae):(d(Oi.EXPECTED_TOKEN,s(),0,ae),"")}function g(oe){let ae="";for(;oe.currentPeek()===gc||oe.currentPeek()===jr;)ae+=oe.currentPeek(),oe.peek();return ae}function v(oe){const ae=g(oe);return oe.skipToPeek(),ae}function y(oe){if(oe===md)return!1;const ae=oe.charCodeAt(0);return ae>=97&&ae<=122||ae>=65&&ae<=90||ae===95}function A(oe){if(oe===md)return!1;const ae=oe.charCodeAt(0);return ae>=48&&ae<=57}function b(oe,ae){const{currentType:Ae}=ae;if(Ae!==2)return!1;g(oe);const ue=y(oe.currentPeek());return oe.resetPeek(),ue}function w(oe,ae){const{currentType:Ae}=ae;if(Ae!==2)return!1;g(oe);const ue=oe.currentPeek()==="-"?oe.peek():oe.currentPeek(),Se=A(ue);return oe.resetPeek(),Se}function _(oe,ae){const{currentType:Ae}=ae;if(Ae!==2)return!1;g(oe);const ue=oe.currentPeek()===iF;return oe.resetPeek(),ue}function M(oe,ae){const{currentType:Ae}=ae;if(Ae!==7)return!1;g(oe);const ue=oe.currentPeek()===".";return oe.resetPeek(),ue}function B(oe,ae){const{currentType:Ae}=ae;if(Ae!==8)return!1;g(oe);const ue=y(oe.currentPeek());return oe.resetPeek(),ue}function C(oe,ae){const{currentType:Ae}=ae;if(!(Ae===7||Ae===11))return!1;g(oe);const ue=oe.currentPeek()===":";return oe.resetPeek(),ue}function S(oe,ae){const{currentType:Ae}=ae;if(Ae!==9)return!1;const ue=()=>{const ce=oe.currentPeek();return ce==="{"?y(oe.peek()):ce==="@"||ce==="|"||ce===":"||ce==="."||ce===gc||!ce?!1:ce===jr?(oe.peek(),ue()):F(oe,!1)},Se=ue();return oe.resetPeek(),Se}function I(oe){g(oe);const ae=oe.currentPeek()==="|";return oe.resetPeek(),ae}function F(oe,ae=!0){const Ae=(Se=!1,ce="")=>{const se=oe.currentPeek();return se==="{"||se==="@"||!se?Se:se==="|"?!(ce===gc||ce===jr):se===gc?(oe.peek(),Ae(!0,gc)):se===jr?(oe.peek(),Ae(!0,jr)):!0},ue=Ae();return ae&&oe.resetPeek(),ue}function E(oe,ae){const Ae=oe.currentChar();return Ae===md?md:ae(Ae)?(oe.next(),Ae):null}function D(oe){const ae=oe.charCodeAt(0);return ae>=97&&ae<=122||ae>=65&&ae<=90||ae>=48&&ae<=57||ae===95||ae===36}function j(oe){return E(oe,D)}function z(oe){const ae=oe.charCodeAt(0);return ae>=97&&ae<=122||ae>=65&&ae<=90||ae>=48&&ae<=57||ae===95||ae===36||ae===45}function T(oe){return E(oe,z)}function N(oe){const ae=oe.charCodeAt(0);return ae>=48&&ae<=57}function L(oe){return E(oe,N)}function H(oe){const ae=oe.charCodeAt(0);return ae>=48&&ae<=57||ae>=65&&ae<=70||ae>=97&&ae<=102}function O(oe){return E(oe,H)}function Q(oe){let ae="",Ae="";for(;ae=L(oe);)Ae+=ae;return Ae}function Y(oe){let ae="";for(;;){const Ae=oe.currentChar();if(Ae==="\\"){const ue=oe.peek();ue==="{"||ue==="}"||ue==="@"||ue==="|"||ue==="\\"?(ae+=Ae+ue,oe.next(),oe.next()):(oe.resetPeek(),ae+=Ae,oe.next())}else{if(Ae==="{"||Ae==="}"||Ae==="@"||Ae==="|"||!Ae)break;if(Ae===gc||Ae===jr)if(F(oe))ae+=Ae,oe.next();else{if(I(oe))break;ae+=Ae,oe.next()}else ae+=Ae,oe.next()}}return ae}function W(oe){v(oe);let ae="",Ae="";for(;ae=T(oe);)Ae+=ae;const ue=oe.currentChar();if(ue&&ue!=="}"&&ue!==md&&ue!==gc&&ue!==jr&&ue!==" "){const Se=we(oe);return d(Oi.INVALID_TOKEN_IN_PLACEHOLDER,s(),0,Ae+Se),Ae+Se}return oe.currentChar()===md&&d(Oi.UNTERMINATED_CLOSING_BRACE,s(),0),Ae}function Z(oe){v(oe);let ae="";return oe.currentChar()==="-"?(oe.next(),ae+=`-${Q(oe)}`):ae+=Q(oe),oe.currentChar()===md&&d(Oi.UNTERMINATED_CLOSING_BRACE,s(),0),ae}function ee(oe){return oe!==iF&&oe!==jr}function X(oe){v(oe),m(oe,"'");let ae="",Ae="";for(;ae=E(oe,ee);)ae==="\\"?Ae+=ge(oe):Ae+=ae;const ue=oe.currentChar();return ue===jr||ue===md?(d(Oi.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,s(),0),ue===jr&&(oe.next(),m(oe,"'")),Ae):(m(oe,"'"),Ae)}function ge(oe){const ae=oe.currentChar();switch(ae){case"\\":case"'":return oe.next(),`\\${ae}`;case"u":return q(oe,ae,4);case"U":return q(oe,ae,6);default:return d(Oi.UNKNOWN_ESCAPE_SEQUENCE,s(),0,ae),""}}function q(oe,ae,Ae){m(oe,ae);let ue="";for(let Se=0;Se{const ue=oe.currentChar();return ue==="{"||ue==="@"||ue==="|"||ue==="("||ue===")"||!ue||ue===gc?Ae:(Ae+=ue,oe.next(),ae(Ae))};return ae("")}function G(oe){v(oe);const ae=m(oe,"|");return v(oe),ae}function J(oe,ae){let Ae=null;switch(oe.currentChar()){case"{":return ae.braceNest>=1&&d(Oi.NOT_ALLOW_NEST_PLACEHOLDER,s(),0),oe.next(),Ae=f(ae,2,"{"),v(oe),ae.braceNest++,Ae;case"}":return ae.braceNest>0&&ae.currentType===2&&d(Oi.EMPTY_PLACEHOLDER,s(),0),oe.next(),Ae=f(ae,3,"}"),ae.braceNest--,ae.braceNest>0&&v(oe),ae.inLinked&&ae.braceNest===0&&(ae.inLinked=!1),Ae;case"@":return ae.braceNest>0&&d(Oi.UNTERMINATED_CLOSING_BRACE,s(),0),Ae=fe(oe,ae)||h(ae),ae.braceNest=0,Ae;default:{let Se=!0,ce=!0,se=!0;if(I(oe))return ae.braceNest>0&&d(Oi.UNTERMINATED_CLOSING_BRACE,s(),0),Ae=f(ae,1,G(oe)),ae.braceNest=0,ae.inLinked=!1,Ae;if(ae.braceNest>0&&(ae.currentType===4||ae.currentType===5||ae.currentType===6))return d(Oi.UNTERMINATED_CLOSING_BRACE,s(),0),ae.braceNest=0,me(oe,ae);if(Se=b(oe,ae))return Ae=f(ae,4,W(oe)),v(oe),Ae;if(ce=w(oe,ae))return Ae=f(ae,5,Z(oe)),v(oe),Ae;if(se=_(oe,ae))return Ae=f(ae,6,X(oe)),v(oe),Ae;if(!Se&&!ce&&!se)return Ae=f(ae,12,we(oe)),d(Oi.INVALID_TOKEN_IN_PLACEHOLDER,s(),0,Ae.value),v(oe),Ae;break}}return Ae}function fe(oe,ae){const{currentType:Ae}=ae;let ue=null;const Se=oe.currentChar();switch((Ae===7||Ae===8||Ae===11||Ae===9)&&(Se===jr||Se===gc)&&d(Oi.INVALID_LINKED_FORMAT,s(),0),Se){case"@":return oe.next(),ue=f(ae,7,"@"),ae.inLinked=!0,ue;case".":return v(oe),oe.next(),f(ae,8,".");case":":return v(oe),oe.next(),f(ae,9,":");default:return I(oe)?(ue=f(ae,1,G(oe)),ae.braceNest=0,ae.inLinked=!1,ue):M(oe,ae)||C(oe,ae)?(v(oe),fe(oe,ae)):B(oe,ae)?(v(oe),f(ae,11,te(oe))):S(oe,ae)?(v(oe),Se==="{"?J(oe,ae)||ue:f(ae,10,ie(oe))):(Ae===7&&d(Oi.INVALID_LINKED_FORMAT,s(),0),ae.braceNest=0,ae.inLinked=!1,me(oe,ae))}}function me(oe,ae){let Ae={type:13};if(ae.braceNest>0)return J(oe,ae)||h(ae);if(ae.inLinked)return fe(oe,ae)||h(ae);switch(oe.currentChar()){case"{":return J(oe,ae)||h(ae);case"}":return d(Oi.UNBALANCED_CLOSING_BRACE,s(),0),oe.next(),f(ae,3,"}");case"@":return fe(oe,ae)||h(ae);default:{if(I(oe))return Ae=f(ae,1,G(oe)),ae.braceNest=0,ae.inLinked=!1,Ae;if(F(oe))return f(ae,0,Y(oe));break}}return Ae}function ve(){const{currentType:oe,offset:ae,startLoc:Ae,endLoc:ue}=l;return l.lastType=oe,l.lastOffset=ae,l.lastStartLoc=Ae,l.lastEndLoc=ue,l.offset=o(),l.startLoc=s(),i.currentChar()===md?f(l,13):me(i,l)}return{nextToken:ve,currentOffset:o,currentPosition:s,context:u}}const lre="parser",ure=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g,cre=/\\([\\@{}|])/g;function dre(e,t){return t}function fre(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const i=parseInt(t||n,16);return i<=55295||i>=57344?String.fromCodePoint(i):"�"}}}function hre(e={}){const t=e.location!==!1,{onError:n}=e;function i(y,A,b,w,..._){const M=y.currentPosition();if(M.offset+=w,M.column+=w,n){const B=t?Z6(b,M):null,C=z4(A,B,{domain:lre,args:_});n(C)}}function o(y,A,b){const w={type:y};return t&&(w.start=A,w.end=A,w.loc={start:b,end:b}),w}function s(y,A,b,w){t&&(y.end=A,y.loc&&(y.loc.end=b))}function r(y,A){const b=y.context(),w=o(3,b.offset,b.startLoc);return w.value=A.replace(cre,dre),s(w,y.currentOffset(),y.currentPosition()),w}function a(y,A){const b=y.context(),{lastOffset:w,lastStartLoc:_}=b,M=o(5,w,_);return M.index=parseInt(A,10),y.nextToken(),s(M,y.currentOffset(),y.currentPosition()),M}function l(y,A){const b=y.context(),{lastOffset:w,lastStartLoc:_}=b,M=o(4,w,_);return M.key=A,y.nextToken(),s(M,y.currentOffset(),y.currentPosition()),M}function u(y,A){const b=y.context(),{lastOffset:w,lastStartLoc:_}=b,M=o(9,w,_);return M.value=A.replace(ure,fre),y.nextToken(),s(M,y.currentOffset(),y.currentPosition()),M}function c(y){const A=y.nextToken(),b=y.context(),{lastOffset:w,lastStartLoc:_}=b,M=o(8,w,_);return A.type!==11?(i(y,Oi.UNEXPECTED_EMPTY_LINKED_MODIFIER,b.lastStartLoc,0),M.value="",s(M,w,_),{nextConsumeToken:A,node:M}):(A.value==null&&i(y,Oi.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,vc(A)),M.value=A.value||"",s(M,y.currentOffset(),y.currentPosition()),{node:M})}function d(y,A){const b=y.context(),w=o(7,b.offset,b.startLoc);return w.value=A,s(w,y.currentOffset(),y.currentPosition()),w}function f(y){const A=y.context(),b=o(6,A.offset,A.startLoc);let w=y.nextToken();if(w.type===8){const _=c(y);b.modifier=_.node,w=_.nextConsumeToken||y.nextToken()}switch(w.type!==9&&i(y,Oi.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,vc(w)),w=y.nextToken(),w.type===2&&(w=y.nextToken()),w.type){case 10:w.value==null&&i(y,Oi.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,vc(w)),b.key=d(y,w.value||"");break;case 4:w.value==null&&i(y,Oi.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,vc(w)),b.key=l(y,w.value||"");break;case 5:w.value==null&&i(y,Oi.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,vc(w)),b.key=a(y,w.value||"");break;case 6:w.value==null&&i(y,Oi.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,vc(w)),b.key=u(y,w.value||"");break;default:{i(y,Oi.UNEXPECTED_EMPTY_LINKED_KEY,A.lastStartLoc,0);const _=y.context(),M=o(7,_.offset,_.startLoc);return M.value="",s(M,_.offset,_.startLoc),b.key=M,s(b,_.offset,_.startLoc),{nextConsumeToken:w,node:b}}}return s(b,y.currentOffset(),y.currentPosition()),{node:b}}function h(y){const A=y.context(),b=A.currentType===1?y.currentOffset():A.offset,w=A.currentType===1?A.endLoc:A.startLoc,_=o(2,b,w);_.items=[];let M=null;do{const S=M||y.nextToken();switch(M=null,S.type){case 0:S.value==null&&i(y,Oi.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,vc(S)),_.items.push(r(y,S.value||""));break;case 5:S.value==null&&i(y,Oi.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,vc(S)),_.items.push(a(y,S.value||""));break;case 4:S.value==null&&i(y,Oi.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,vc(S)),_.items.push(l(y,S.value||""));break;case 6:S.value==null&&i(y,Oi.UNEXPECTED_LEXICAL_ANALYSIS,A.lastStartLoc,0,vc(S)),_.items.push(u(y,S.value||""));break;case 7:{const I=f(y);_.items.push(I.node),M=I.nextConsumeToken||null;break}}}while(A.currentType!==13&&A.currentType!==1);const B=A.currentType===1?A.lastOffset:y.currentOffset(),C=A.currentType===1?A.lastEndLoc:y.currentPosition();return s(_,B,C),_}function m(y,A,b,w){const _=y.context();let M=w.items.length===0;const B=o(1,A,b);B.cases=[],B.cases.push(w);do{const C=h(y);M||(M=C.items.length===0),B.cases.push(C)}while(_.currentType!==13);return M&&i(y,Oi.MUST_HAVE_MESSAGES_IN_PLURAL,b,0),s(B,y.currentOffset(),y.currentPosition()),B}function g(y){const A=y.context(),{offset:b,startLoc:w}=A,_=h(y);return A.currentType===13?_:m(y,b,w,_)}function v(y){const A=are(y,_s({},e)),b=A.context(),w=o(0,b.offset,b.startLoc);return t&&w.loc&&(w.loc.source=y),w.body=g(A),e.onCacheKey&&(w.cacheKey=e.onCacheKey(y)),b.currentType!==13&&i(A,Oi.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,y[b.offset]||""),s(w,A.currentOffset(),A.currentPosition()),w}return{parse:v}}function vc(e){if(e.type===13)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function pre(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:s=>(n.helpers.add(s),s)}}function oF(e,t){for(let n=0;nsF(n)),e}function sF(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let n=0;nr;function l(g,v){r.code+=g}function u(g,v=!0){const y=v?i:"";l(o?y+" ".repeat(g):y)}function c(g=!0){const v=++r.indentLevel;g&&u(v)}function d(g=!0){const v=--r.indentLevel;g&&u(v)}function f(){u(r.indentLevel)}return{context:a,push:l,indent:c,deindent:d,newline:f,helper:g=>`_${g}`,needIndent:()=>r.needIndent}}function Are(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),Ig(e,t.key),t.modifier?(e.push(", "),Ig(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function yre(e,t){const{helper:n,needIndent:i}=e;e.push(`${n("normalize")}([`),e.indent(i());const o=t.items.length;for(let s=0;s1){e.push(`${n("plural")}([`),e.indent(i());const o=t.cases.length;for(let s=0;s{const n=An(t.mode)?t.mode:"normal",i=An(t.filename)?t.filename:"message.intl";t.sourceMap;const o=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":` -`,s=t.needIndent?t.needIndent:n!=="arrow",r=e.helpers||[],a=vre(e,{filename:i,breakLineCode:o,needIndent:s});a.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),a.indent(s),r.length>0&&(a.push(`const { ${D_(r.map(c=>`${c}: _${c}`),", ")} } = ctx`),a.newline()),a.push("return "),Ig(a,e),a.deindent(s),a.push("}"),delete e.helpers;const{code:l,map:u}=a.context();return{ast:e,code:l,map:u?u.toJSON():void 0}};function Cre(e,t={}){const n=_s({},t),i=!!n.jit,o=!!n.minify,s=n.optimize==null?!0:n.optimize,a=hre(n).parse(e);return i?(s&&gre(a),o&&km(a),{ast:a,code:""}):(mre(a,n),wre(a,n))}/*! - * core-base v11.4.6 - * (c) 2026 kazuya kawaguchi - * Released under the MIT License. - */function Sre(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Rp().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Rp().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function Uc(e){return Ei(e)&&L_(e)===0&&(ou(e,"b")||ou(e,"body"))}const KU=["b","body"];function xre(e){return Th(e,KU)}const ZU=["c","cases"];function _re(e){return Th(e,ZU,[])}const YU=["s","static"];function Ere(e){return Th(e,YU)}const JU=["i","items"];function Ire(e){return Th(e,JU,[])}const XU=["t","type"];function L_(e){return Th(e,XU)}const eW=["v","value"];function tk(e,t){const n=Th(e,eW);if(n!=null)return n;throw qA(t)}const tW=["m","modifier"];function Mre(e){return Th(e,tW)}const nW=["k","key"];function Tre(e){const t=Th(e,nW);if(t)return t;throw qA(6)}function Th(e,t,n){for(let i=0;iBre(n,e)}function Bre(e,t){const n=xre(t);if(n==null)throw qA(0);if(L_(n)===1){const s=_re(n);return e.plural(s.reduce((r,a)=>[...r,rF(e,a)],[]))}else return rF(e,n)}function rF(e,t){const n=Ere(t);if(n!=null)return e.type==="text"?n:e.normalize([n]);{const i=Ire(t).reduce((o,s)=>[...o,Y6(e,s)],[]);return e.normalize(i)}}function Y6(e,t){const n=L_(t);switch(n){case 3:return tk(t,n);case 9:return tk(t,n);case 4:{const i=t;if(ou(i,"k")&&i.k)return e.interpolate(e.named(i.k));if(ou(i,"key")&&i.key)return e.interpolate(e.named(i.key));throw qA(n)}case 5:{const i=t;if(ou(i,"i")&&xs(i.i))return e.interpolate(e.list(i.i));if(ou(i,"index")&&xs(i.index))return e.interpolate(e.list(i.index));throw qA(n)}case 6:{const i=t,o=Mre(i),s=Tre(i);return e.linked(Y6(e,s),o?Y6(e,o):void 0,e.type)}case 7:return tk(t,n);case 8:return tk(t,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const Fre=e=>e;let nk=Ji();function Rre(e,t={}){let n=!1;const i=t.onError||ere;return t.onError=o=>{n=!0,i(o)},{...Cre(e,t),detectError:n}}function Dre(e,t){if(!__INTLIFY_DROP_MESSAGE_COMPILER__&&An(e)){_i(t.warnHtmlMessage)&&t.warnHtmlMessage;const i=(t.onCacheKey||Fre)(e),o=nk[i];if(o)return o;const{ast:s,detectError:r}=Rre(e,{...t,location:!1,jit:!0}),a=V3(s);return r?a:nk[i]=a}else{const n=e.cacheKey;if(n){const i=nk[n];return i||(nk[n]=V3(e))}else return V3(e)}}let KA=null;function Nre(e){KA=e}function Lre(e,t,n){KA&&KA.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}const Pre=Ore("function:translate");function Ore(e){return t=>KA&&KA.emit(e,t)}const Md={INVALID_ARGUMENT:Xse,INVALID_DATE_ARGUMENT:18,INVALID_ISO_DATE_ARGUMENT:19,NOT_SUPPORT_LOCALE_PROMISE_VALUE:21,NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:22,NOT_SUPPORT_LOCALE_TYPE:23},zre=24;function Td(e){return z4(e,null,void 0)}function P_(e,t){return t.locale!=null?aF(t.locale):aF(e.locale)}let G3;function aF(e){if(An(e))return e;if(bo(e)){if(e.resolvedOnce&&G3!=null)return G3;if(e.constructor.name==="Function"){const t=e();if(Zse(t))throw Td(Md.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return G3=t}else throw Td(Md.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Td(Md.NOT_SUPPORT_LOCALE_TYPE)}function $re(e,t,n){return[...new Set([n,...Uo(t)?t:Ei(t)?Object.keys(t):An(t)?[t]:[n]])]}function J6(e,t,n){const i=An(n)?n:ZA,o=e;o.__localeChainCache||(o.__localeChainCache=new Map);let s=o.__localeChainCache.get(i);if(!s){s=[];let r=[n];for(;Uo(r);)r=lF(s,r,t);const a=Uo(t)||!yi(t)?t:t.default?t.default:null;r=An(a)?[a]:a,Uo(r)&&lF(s,r,!1),o.__localeChainCache.set(i,s)}return s}function lF(e,t,n){let i=!0;for(let o=0;o{r===void 0?r=a:r+=a},f[1]=()=>{r!==void 0&&(t.push(r),r=void 0)},f[2]=()=>{f[0](),o++},f[3]=()=>{if(o>0)o--,i=4,f[0]();else{if(o=0,r===void 0||(r=Gre(r),r===!1))return!1;f[1]()}};function h(){const m=e[n+1];if(i===5&&m==="'"||i===6&&m==='"')return n++,a="\\"+m,f[0](),!0}for(;i!==null;)if(n++,s=e[n],!(s==="\\"&&h())){if(l=Vre(s),d=Bh[i],u=d[l]||d.l||8,u===8||(i=u[0],u[1]!==void 0&&(c=f[u[1]],c&&(a=s,c()===!1))))return;if(i===7)return t}}const uF=new Map;function Kre(e,t){return Ei(e)?e[t]:null}function Zre(e,t){if(!Ei(e))return null;let n=uF.get(t);if(n||(n=qre(t),n&&uF.set(t,n)),!n)return null;const i=n.length;let o=e,s=0;for(;s`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Jre(){return{upper:(e,t)=>t==="text"&&An(e)?e.toUpperCase():t==="vnode"&&Ei(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&An(e)?e.toLowerCase():t==="vnode"&&Ei(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&An(e)?cF(e):t==="vnode"&&Ei(e)&&"__v_isVNode"in e?cF(e.children):e}}let oW;function Xre(e){oW=e}let sW;function eae(e){sW=e}let rW;function tae(e){rW=e}let aW=null;const nae=e=>{aW=e},iae=()=>aW;let lW=null;const dF=e=>{lW=e},oae=()=>lW;let fF=0;function sae(e={}){const t=bo(e.onWarn)?e.onWarn:$se,n=An(e.version)?e.version:Yre,i=An(e.locale)||bo(e.locale)?e.locale:ZA,o=bo(i)?ZA:i,s=Uo(e.fallbackLocale)||yi(e.fallbackLocale)||An(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:o,r=yi(e.messages)?e.messages:q3(o),a=yi(e.datetimeFormats)?e.datetimeFormats:q3(o),l=yi(e.numberFormats)?e.numberFormats:q3(o),u=_s(Ji(),e.modifiers,Jre()),c=e.pluralRules||Ji(),d=bo(e.missing)?e.missing:null,f=_i(e.missingWarn)||Eg(e.missingWarn)?e.missingWarn:!0,h=_i(e.fallbackWarn)||Eg(e.fallbackWarn)?e.fallbackWarn:!0,m=!!e.fallbackFormat,g=!!e.unresolving,v=bo(e.postTranslation)?e.postTranslation:null,y=yi(e.processor)?e.processor:null,A=_i(e.warnHtmlMessage)?e.warnHtmlMessage:!0,b=!!e.escapeParameter,w=bo(e.messageCompiler)?e.messageCompiler:oW,_=bo(e.messageResolver)?e.messageResolver:sW||Kre,M=bo(e.localeFallbacker)?e.localeFallbacker:rW||$re,B=Ei(e.fallbackContext)?e.fallbackContext:void 0,C=e,S=Ei(C.__datetimeFormatters)?C.__datetimeFormatters:new Map,I=Ei(C.__numberFormatters)?C.__numberFormatters:new Map,F=Ei(C.__meta)?C.__meta:{};fF++;const E={version:n,cid:fF,locale:i,fallbackLocale:s,messages:r,modifiers:u,pluralRules:c,missing:d,missingWarn:f,fallbackWarn:h,fallbackFormat:m,unresolving:g,postTranslation:v,processor:y,warnHtmlMessage:A,escapeParameter:b,messageCompiler:w,messageResolver:_,localeFallbacker:M,fallbackContext:B,onWarn:t,__meta:F};return E.datetimeFormats=a,E.numberFormats=l,E.__datetimeFormatters=S,E.__numberFormatters=I,__INTLIFY_PROD_DEVTOOLS__&&Lre(E,n,F),E}const q3=e=>({[e]:Ji()});function O_(e,t,n,i,o){const{missing:s,onWarn:r}=e;if(s!==null){const a=s(e,n,t,o);return An(a)?a:t}else return t}function Z0(e,t,n){const i=e;i.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function rae(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function aae(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let i=n+1;i{uW.includes(l)?r[l]=n[l]:s[l]=n[l]}),An(i)?s.locale=i:yi(i)&&(r=i),yi(o)&&(r=o),[s.key||"",a,s,r]}function pF(e,t,n){const i=e;for(const o in n){const s=`${t}__${o}`;i.__datetimeFormatters.has(s)&&i.__datetimeFormatters.delete(s)}}function mF(e,...t){const{numberFormats:n,unresolving:i,fallbackLocale:o,onWarn:s,localeFallbacker:r}=e,{__numberFormatters:a}=e;if(!xs(t[0]))return Lb;const[l,u,c,d]=eS(...t),f=_i(c.missingWarn)?c.missingWarn:e.missingWarn;_i(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn;const h=!!c.part,m=P_(e,c),g=r(e,o,m);if(!An(l)||l===""){const M=new Intl.NumberFormat(m.replace(/!/g,""),d);return h?M.formatToParts(u):M.format(u)}let v={},y,A=null;const b="number format";for(let M=0;M{cW.includes(l)?r[l]=n[l]:s[l]=n[l]}),An(i)?s.locale=i:yi(i)&&(r=i),yi(o)&&(r=o),[s.key||"",a,s,r]}function gF(e,t,n){const i=e;for(const o in n){const s=`${t}__${o}`;i.__numberFormatters.has(s)&&i.__numberFormatters.delete(s)}}const lae=e=>e,uae=e=>"",cae="text",dae=e=>e.length===0?"":D_(e),fae=Yse;function K3(e,t){return e=Math.abs(e),t===2?e===1?0:1:Math.min(e,2)}function hae(e){const t=xs(e.pluralIndex)?e.pluralIndex:-1;return xs(e.named?.count)?e.named.count:xs(e.named?.n)?e.named.n:t}function pae(e={}){const t=e.locale,n=hae(e),i=An(t)&&bo(e.pluralRules?.[t])?e.pluralRules[t]:K3,o=i===K3?void 0:K3,s=y=>y[i(n,y.length,o)],r=e.list||[],a=y=>r[y],l=e.named||Ji();xs(e.pluralIndex)&&(l.count||=e.pluralIndex,l.n||=e.pluralIndex);const u=y=>l[y];function c(y,A){const b=bo(e.messages)?e.messages(y,!!A):Ei(e.messages)?e.messages[y]:!1;return b||(e.parent?e.parent.message(y):uae)}const d=y=>e.modifiers?e.modifiers[y]:lae,f=bo(e.processor?.normalize)?e.processor.normalize:dae,h=bo(e.processor?.interpolate)?e.processor.interpolate:fae,m=An(e.processor?.type)?e.processor.type:cae,v={list:a,named:u,plural:s,linked:(y,...A)=>{const[b,w]=A;let _="text",M="";A.length===1?Ei(b)?(M=b.modifier||M,_=b.type||_):An(b)&&(M=b||M):A.length===2&&(An(b)&&(M=b||M),An(w)&&(_=w||_));const B=c(y,!0)(v),C=B===""||B===void 0?y:B,S=_==="vnode"&&Uo(C)&&M?C[0]:C;return M?d(M)(S,_):S},message:c,type:m,interpolate:h,normalize:f,values:_s(Ji(),r,l)};return v}const vF=()=>"",Xl=e=>bo(e);function AF(e,...t){const{fallbackFormat:n,postTranslation:i,unresolving:o,messageCompiler:s,fallbackLocale:r,messages:a}=e,[l,u]=tS(...t),c=_i(u.missingWarn)?u.missingWarn:e.missingWarn,d=_i(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn,f=_i(u.escapeParameter)?u.escapeParameter:e.escapeParameter,h=!!u.resolvedMessage,m=An(u.default)||_i(u.default)?_i(u.default)?s?l:()=>l:u.default:n?s?l:()=>l:null,g=n||m!=null&&(An(m)||bo(m)),v=P_(e,u);f&&mae(u);let[y,A,b]=h?[l,v,a[v]||Ji()]:dW(e,l,v,r,d,c),w=y,_=l;if(!h&&!(An(w)||Uc(w)||Xl(w))&&g&&(w=m,_=w),!h&&(!(An(w)||Uc(w)||Xl(w))||!An(A)))return o?$4:l;let M=!1;const B=()=>{M=!0},C=Xl(w)?w:fW(e,l,A,w,_,B);if(M)return w;const S=Aae(e,A,b,u),I=pae(S),F=gae(e,C,I);let E=i?i(F,l):F;if(f&&An(E)&&(E=qse(E)),__INTLIFY_PROD_DEVTOOLS__){const D={timestamp:Date.now(),key:An(l)?l:Xl(w)?w.key:"",locale:A||(Xl(w)?w.locale:""),format:An(w)?w:Xl(w)?w.source:"",message:E};D.meta=_s({},e.__meta,iae()||{}),Pre(D)}return E}function mae(e){Uo(e.list)?e.list=e.list.map(t=>An(t)?tF(t):t):Ei(e.named)&&Object.keys(e.named).forEach(t=>{An(e.named[t])&&(e.named[t]=tF(e.named[t]))})}function dW(e,t,n,i,o,s){const{messages:r,onWarn:a,messageResolver:l,localeFallbacker:u}=e,c=u(e,i,n);let d=Ji(),f,h=null;const m="translate";for(let g=0;gi);return u.locale=n,u.key=t,u}const l=r(i,vae(e,n,o,i,a,s));return l.locale=n,l.key=t,l.source=i,l}function gae(e,t,n){return t(n)}function tS(...e){const[t,n,i]=e,o=Ji();if(!An(t)&&!xs(t)&&!Xl(t)&&!Uc(t))throw Td(Md.INVALID_ARGUMENT);const s=xs(t)?String(t):(Xl(t),t);return xs(n)?o.plural=n:An(n)?o.default=n:yi(n)&&!O4(n)?o.named=n:Uo(n)&&(o.list=n),xs(i)?o.plural=i:An(i)?o.default=i:yi(i)&&_s(o,i),[s,o]}function vae(e,t,n,i,o,s){return{locale:t,key:n,warnHtmlMessage:o,onError:r=>{throw s&&s(r),r},onCacheKey:r=>jse(t,n,r)}}function Aae(e,t,n,i){const{modifiers:o,pluralRules:s,messageResolver:r,fallbackLocale:a,fallbackWarn:l,missingWarn:u,fallbackContext:c}=e,f={locale:t,modifiers:o,pluralRules:s,messages:(h,m)=>{let g=r(n,h);if(g==null&&(c||m)){const[v,,y]=dW(c||e,h,t,a,l,u);g=v??r(y,h)}if(An(g)||Uc(g)){let v=!1;const A=fW(e,h,t,g,h,()=>{v=!0});return v?vF:A}else return Xl(g)?g:vF}};return e.processor&&(f.processor=e.processor),i.list&&(f.list=i.list),i.named&&(f.named=i.named),xs(i.plural)&&(f.pluralIndex=i.plural),f}Sre();/*! - * vue-i18n v11.4.6 - * (c) 2026 kazuya kawaguchi - * Released under the MIT License. - */const yae="11.4.6";function kae(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Rp().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Rp().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Rp().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Rp().__INTLIFY_PROD_DEVTOOLS__=!1)}const pa={UNEXPECTED_RETURN_TYPE:zre,INVALID_ARGUMENT:25,MUST_BE_CALL_SETUP_TOP:26,NOT_INSTALLED:27,REQUIRED_VALUE:28,INVALID_VALUE:29,NOT_INSTALLED_WITH_PROVIDE:31,UNEXPECTED_ERROR:32,NOT_AVAILABLE_COMPOSITION_IN_LEGACY:34};function za(e,...t){return z4(e,null,void 0)}const nS=Mh("__translateVNode"),iS=Mh("__datetimeParts"),oS=Mh("__numberParts"),hW=Mh("__setPluralRules"),pW=Mh("__injectWithOption"),Fm=Mh("__dispose");function YA(e){if(!Ei(e)||Uc(e))return e;for(const t in e)if(ou(e,t))if(!t.includes("."))Ei(e[t])&&YA(e[t]);else{const n=t.split("."),i=n.length-1;let o=e,s=!1;for(let r=0;r{if("locale"in a&&"resource"in a){const{locale:l,resource:u}=a;l?(r[l]=r[l]||Ji(),y9(u,r[l])):y9(u,r)}else An(a)&&y9(JSON.parse(a),r)}),o==null&&s)for(const a in r)ou(r,a)&&YA(r[a]);return r}function mW(e){return e.type}function gW(e,t,n){let i=Ei(t.messages)?t.messages:Ji();"__i18nGlobal"in n&&(i=z_(e.locale.value,{messages:i,__i18n:n.__i18nGlobal}));const o=Object.keys(i);o.length&&o.forEach(s=>{e.mergeLocaleMessage(s,i[s])});{if(Ei(t.datetimeFormats)){const s=Object.keys(t.datetimeFormats);s.length&&s.forEach(r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])})}if(Ei(t.numberFormats)){const s=Object.keys(t.numberFormats);s.length&&s.forEach(r=>{e.mergeNumberFormat(r,t.numberFormats[r])})}}}function yF(e){return K(qf,null,e,0)}function JA(){return Ms()}const kF="__INTLIFY_META__",bF=()=>[],bae=()=>!1;let wF=0;function CF(e){return((t,n,i,o)=>e(n,i,JA()||void 0,o))}const wae=()=>{const e=JA();let t=null;return e&&(t=mW(e)[kF])?{[kF]:t}:null};function Pb(e={}){const{__root:t,__injectWithOption:n}=e,i=t===void 0,o=e.flatJson,s=Nb?V:qa;let r=_i(e.inheritLocale)?e.inheritLocale:!0;const a=s(t&&r?t.locale.value:An(e.locale)?e.locale:ZA),l=s(t&&r?t.fallbackLocale.value:An(e.fallbackLocale)||Uo(e.fallbackLocale)||yi(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a.value),u=s(z_(a.value,e)),c=s(yi(e.datetimeFormats)?e.datetimeFormats:{[a.value]:{}}),d=s(yi(e.numberFormats)?e.numberFormats:{[a.value]:{}});let f=t?t.missingWarn:_i(e.missingWarn)||Eg(e.missingWarn)?e.missingWarn:!0,h=t?t.fallbackWarn:_i(e.fallbackWarn)||Eg(e.fallbackWarn)?e.fallbackWarn:!0,m=t?t.fallbackRoot:_i(e.fallbackRoot)?e.fallbackRoot:!0,g=!!e.fallbackFormat,v=bo(e.missing)?e.missing:null,y=bo(e.missing)?CF(e.missing):null,A=bo(e.postTranslation)?e.postTranslation:null,b=t?t.warnHtmlMessage:_i(e.warnHtmlMessage)?e.warnHtmlMessage:!0,w=!!e.escapeParameter;const _=t?t.modifiers:yi(e.modifiers)?e.modifiers:{};let M=e.pluralRules||t&&t.pluralRules,B;B=(()=>{i&&dF(null);const se={version:yae,locale:a.value,fallbackLocale:l.value,messages:u.value,modifiers:_,pluralRules:M,missing:y===null?void 0:y,missingWarn:f,fallbackWarn:h,fallbackFormat:g,unresolving:!0,postTranslation:A===null?void 0:A,warnHtmlMessage:b,escapeParameter:w,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};se.datetimeFormats=c.value,se.numberFormats=d.value,se.__datetimeFormatters=yi(B)?B.__datetimeFormatters:void 0,se.__numberFormatters=yi(B)?B.__numberFormatters:void 0;const Ie=sae(se);return i&&dF(Ie),Ie})(),Z0(B,a.value,l.value);function S(){return[a.value,l.value,u.value,c.value,d.value]}const I=P({get:()=>a.value,set:se=>{B.locale=se,a.value=se}}),F=P({get:()=>l.value,set:se=>{B.fallbackLocale=se,l.value=se,Z0(B,a.value,se)}}),E=P(()=>u.value),D=P(()=>c.value),j=P(()=>d.value);function z(){return bo(A)?A:null}function T(se){A=se,B.postTranslation=se}function N(){return v}function L(se){se!==null&&(y=CF(se)),v=se,B.missing=y}const H=(se,Ie,he,Ce,Re,Pe)=>{S();let Ze;try{__INTLIFY_PROD_DEVTOOLS__,i||(B.fallbackContext=t?oae():void 0),Ze=se(B)}finally{__INTLIFY_PROD_DEVTOOLS__,i||(B.fallbackContext=void 0)}if(he!=="translate exists"&&xs(Ze)&&Ze===$4||he==="translate exists"&&!Ze){const[lt,Dt]=Ie();return t&&m?Ce(t):Re(lt)}else{if(Pe(Ze))return Ze;throw za(pa.UNEXPECTED_RETURN_TYPE)}};function O(...se){return H(Ie=>Reflect.apply(AF,null,[Ie,...se]),()=>tS(...se),"translate",Ie=>Reflect.apply(Ie.t,Ie,[...se]),Ie=>Ie,Ie=>An(Ie))}function Q(...se){const[Ie,he,Ce]=se;if(Ce&&!Ei(Ce))throw za(pa.INVALID_ARGUMENT);return O(Ie,he,_s({resolvedMessage:!0},Ce||{}))}function Y(...se){return H(Ie=>Reflect.apply(hF,null,[Ie,...se]),()=>X6(...se),"datetime format",Ie=>Reflect.apply(Ie.d,Ie,[...se]),()=>Lb,Ie=>An(Ie)||Uo(Ie))}function W(...se){return H(Ie=>Reflect.apply(mF,null,[Ie,...se]),()=>eS(...se),"number format",Ie=>Reflect.apply(Ie.n,Ie,[...se]),()=>Lb,Ie=>An(Ie)||Uo(Ie))}function Z(se){return se.map(Ie=>An(Ie)||xs(Ie)||_i(Ie)?yF(String(Ie)):Ie)}const X={normalize:Z,interpolate:se=>se,type:"vnode"};function ge(...se){return H(Ie=>{let he;const Ce=Ie;try{Ce.processor=X,he=Reflect.apply(AF,null,[Ce,...se])}finally{Ce.processor=null}return he},()=>tS(...se),"translate",Ie=>Ie[nS](...se),Ie=>[yF(Ie)],Ie=>Uo(Ie))}function q(...se){return H(Ie=>Reflect.apply(mF,null,[Ie,...se]),()=>eS(...se),"number format",Ie=>Ie[oS](...se),bF,Ie=>An(Ie)||Uo(Ie))}function pe(...se){return H(Ie=>Reflect.apply(hF,null,[Ie,...se]),()=>X6(...se),"datetime format",Ie=>Ie[iS](...se),bF,Ie=>An(Ie)||Uo(Ie))}function we(se){M=se,B.pluralRules=M}function te(se,Ie){return H(()=>{if(!se)return!1;const he=An(Ie)?Ie:a.value,Ce=An(Ie)?[he]:J6(B,l.value,he);for(let Re=0;Re[se],"translate exists",he=>Reflect.apply(he.te,he,[se,Ie]),bae,he=>_i(he))}function ie(se){let Ie=null;const he=J6(B,l.value,a.value);for(let Ce=0;Ce{r&&(a.value=se,B.locale=se,Z0(B,a.value,l.value))}),$e(t.fallbackLocale,se=>{r&&(l.value=se,B.fallbackLocale=se,Z0(B,a.value,l.value))}));const ce={id:wF,locale:I,fallbackLocale:F,get inheritLocale(){return r},set inheritLocale(se){r=se,se&&t&&(a.value=t.locale.value,l.value=t.fallbackLocale.value,Z0(B,a.value,l.value))},get availableLocales(){return Object.keys(u.value).sort()},messages:E,get modifiers(){return _},get pluralRules(){return M||{}},get isGlobal(){return i},get missingWarn(){return f},set missingWarn(se){f=se,B.missingWarn=f},get fallbackWarn(){return h},set fallbackWarn(se){h=se,B.fallbackWarn=h},get fallbackRoot(){return m},set fallbackRoot(se){m=se},get fallbackFormat(){return g},set fallbackFormat(se){g=se,B.fallbackFormat=g},get warnHtmlMessage(){return b},set warnHtmlMessage(se){b=se,B.warnHtmlMessage=se},get escapeParameter(){return w},set escapeParameter(se){w=se,B.escapeParameter=se},t:O,getLocaleMessage:J,setLocaleMessage:fe,mergeLocaleMessage:me,getPostTranslationHandler:z,setPostTranslationHandler:T,getMissingHandler:N,setMissingHandler:L,[hW]:we};return ce.datetimeFormats=D,ce.numberFormats=j,ce.rt=Q,ce.te=te,ce.tm=G,ce.d=Y,ce.n=W,ce.getDateTimeFormat=ve,ce.setDateTimeFormat=oe,ce.mergeDateTimeFormat=ae,ce.getNumberFormat=Ae,ce.setNumberFormat=ue,ce.mergeNumberFormat=Se,ce[pW]=n,ce[nS]=ge,ce[iS]=pe,ce[oS]=q,ce}function Cae(e){const t=An(e.locale)?e.locale:ZA,n=An(e.fallbackLocale)||Uo(e.fallbackLocale)||yi(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,i=bo(e.missing)?e.missing:void 0,o=_i(e.silentTranslationWarn)||Eg(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,s=_i(e.silentFallbackWarn)||Eg(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,r=_i(e.fallbackRoot)?e.fallbackRoot:!0,a=!!e.formatFallbackMessages,l=yi(e.modifiers)?e.modifiers:{},u=e.pluralizationRules,c=bo(e.postTranslation)?e.postTranslation:void 0,d=An(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,f=!!e.escapeParameterHtml,h=_i(e.sync)?e.sync:!0;let m=e.messages;if(yi(e.sharedMessages)){const _=e.sharedMessages;m=Object.keys(_).reduce((B,C)=>{const S=B[C]||(B[C]={});return _s(S,_[C]),B},m||{})}const{__i18n:g,__root:v,__injectWithOption:y}=e,A=e.datetimeFormats,b=e.numberFormats,w=e.flatJson;return{locale:t,fallbackLocale:n,messages:m,flatJson:w,datetimeFormats:A,numberFormats:b,missing:i,missingWarn:o,fallbackWarn:s,fallbackRoot:r,fallbackFormat:a,modifiers:l,pluralRules:u,postTranslation:c,warnHtmlMessage:d,escapeParameter:f,messageResolver:e.messageResolver,inheritLocale:h,__i18n:g,__root:v,__injectWithOption:y}}function sS(e={}){const t=Pb(Cae(e)),{__extender:n}=e,i={id:t.id,get locale(){return t.locale.value},set locale(o){t.locale.value=o},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(o){t.fallbackLocale.value=o},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get missing(){return t.getMissingHandler()},set missing(o){t.setMissingHandler(o)},get silentTranslationWarn(){return _i(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(o){t.missingWarn=_i(o)?!o:o},get silentFallbackWarn(){return _i(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(o){t.fallbackWarn=_i(o)?!o:o},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(o){t.fallbackFormat=o},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(o){t.setPostTranslationHandler(o)},get sync(){return t.inheritLocale},set sync(o){t.inheritLocale=o},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(o){t.warnHtmlMessage=o!=="off"},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(o){t.escapeParameter=o},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...o){return Reflect.apply(t.t,t,[...o])},rt(...o){return Reflect.apply(t.rt,t,[...o])},te(o,s){return t.te(o,s)},tm(o){return t.tm(o)},getLocaleMessage(o){return t.getLocaleMessage(o)},setLocaleMessage(o,s){t.setLocaleMessage(o,s)},mergeLocaleMessage(o,s){t.mergeLocaleMessage(o,s)},d(...o){return Reflect.apply(t.d,t,[...o])},getDateTimeFormat(o){return t.getDateTimeFormat(o)},setDateTimeFormat(o,s){t.setDateTimeFormat(o,s)},mergeDateTimeFormat(o,s){t.mergeDateTimeFormat(o,s)},n(...o){return Reflect.apply(t.n,t,[...o])},getNumberFormat(o){return t.getNumberFormat(o)},setNumberFormat(o,s){t.setNumberFormat(o,s)},mergeNumberFormat(o,s){t.mergeNumberFormat(o,s)}};return i.__extender=n,i}function Sae(e,t,n){return{beforeCreate(){const i=JA();if(!i)throw za(pa.UNEXPECTED_ERROR);const o=this.$options;if(o.i18n){const s=o.i18n;if(o.__i18n&&(s.__i18n=o.__i18n),s.__root=t,this===this.$root)this.$i18n=SF(e,s);else{s.__injectWithOption=!0,s.__extender=n.__vueI18nExtend,this.$i18n=sS(s);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(o.__i18n)if(this===this.$root)this.$i18n=SF(e,o);else{this.$i18n=sS({__i18n:o.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}else this.$i18n=e;o.__i18nGlobal&&gW(t,o,o),this.$t=(...s)=>this.$i18n.t(...s),this.$rt=(...s)=>this.$i18n.rt(...s),this.$te=(s,r)=>this.$i18n.te(s,r),this.$d=(...s)=>this.$i18n.d(...s),this.$n=(...s)=>this.$i18n.n(...s),this.$tm=s=>this.$i18n.tm(s),n.__setInstance(i,this.$i18n)},mounted(){},unmounted(){const i=JA();if(!i)throw za(pa.UNEXPECTED_ERROR);const o=this.$i18n;o&&(delete this.$t,delete this.$rt,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,o?.__disposer&&(o.__disposer(),delete o.__disposer,delete o.__extender),n.__deleteInstance(i),delete this.$i18n)}}}function SF(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[hW](t.pluralizationRules||e.pluralizationRules);const n=z_(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(i=>e.mergeLocaleMessage(i,n[i])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(i=>e.mergeDateTimeFormat(i,t.datetimeFormats[i])),t.numberFormats&&Object.keys(t.numberFormats).forEach(i=>e.mergeNumberFormat(i,t.numberFormats[i])),e}const $_={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function xae({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((i,o)=>[...i,...o.type===Be?o.children:[o]],[]):t.reduce((n,i)=>{const o=e[i];return o&&(n[i]=o()),n},Ji())}function vW(){return Be}const _ae=st({name:"i18n-t",props:_s({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>xs(e)||!isNaN(e)}},$_),setup(e,t){const{slots:n,attrs:i}=t,o=e.i18n||Wt({useScope:e.scope,__useComponent:!0});return()=>{const s=()=>{const l=Object.keys(n).filter(d=>d[0]!=="_"),u=Ji();e.locale&&(u.locale=e.locale),e.plural!==void 0&&(u.plural=An(e.plural)?+e.plural:e.plural);const c=xae(t,l);return o[nS](e.keypath,c,u)},r=_s(Ji(),i),a=An(e.tag)||Ei(e.tag)?e.tag:vW();return Ei(a)?Dn(a,r,{default:s}):Dn(a,r,s())}}}),xF=_ae;function Eae(e){return Uo(e)&&!An(e[0])}function AW(e,t,n,i){const{slots:o,attrs:s}=t;return()=>{const r=()=>{const u={part:!0};let c=Ji();e.locale&&(u.locale=e.locale),An(e.format)?u.key=e.format:Ei(e.format)&&(An(e.format.key)&&(u.key=e.format.key),c=Object.keys(e.format).reduce((h,m)=>n.includes(m)?_s(Ji(),h,{[m]:e.format[m]}):h,Ji()));const d=i(e.value,u,c);let f=[u.key];return Uo(d)?f=d.map((h,m)=>{const g=o[h.type],v=g?g({[h.type]:h.value,index:m,parts:d}):[h.value];return Eae(v)&&(v[0].key=`${h.type}-${m}`),v}):An(d)&&(f=[d]),f},a=_s(Ji(),s),l=An(e.tag)||Ei(e.tag)?e.tag:vW();return Ei(l)?Dn(l,a,{default:r}):Dn(l,a,r())}}const Iae=st({name:"i18n-n",props:_s({value:{type:Number,required:!0},format:{type:[String,Object]}},$_),setup(e,t){const n=e.i18n||Wt({useScope:e.scope,__useComponent:!0});return AW(e,t,cW,(...i)=>n[oS](...i))}}),_F=Iae;function Mae(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const i=n.__getInstance(t);return i!=null?i.__composer:e.global.__composer}}function Tae(e){const t=r=>{const{instance:a,value:l}=r;if(!a||!a.$)throw za(pa.UNEXPECTED_ERROR);const u=Mae(e,a.$),c=EF(l);return[Reflect.apply(u.t,u,[...IF(c)]),u]};return{created:(r,a)=>{const[l,u]=t(a);Nb&&(r.__i18nWatcher=$e(u.locale,()=>{a.instance&&a.instance.$forceUpdate()})),r.__composer=u,r.textContent=l},unmounted:r=>{Nb&&r.__i18nWatcher&&(r.__i18nWatcher(),r.__i18nWatcher=void 0,delete r.__i18nWatcher),r.__composer&&(r.__composer=void 0,delete r.__composer)},beforeUpdate:(r,{value:a})=>{if(r.__composer){const l=r.__composer,u=EF(a);r.textContent=Reflect.apply(l.t,l,[...IF(u)])}},getSSRProps:r=>{const[a]=t(r);return{textContent:a}}}}function EF(e){if(An(e))return{path:e};if(yi(e)){if(!("path"in e))throw za(pa.REQUIRED_VALUE,"path");return e}else throw za(pa.INVALID_VALUE)}function IF(e){const{path:t,locale:n,args:i,choice:o,plural:s}=e,r={},a=i||{};return An(n)&&(r.locale=n),xs(o)&&(r.plural=o),xs(s)&&(r.plural=s),[t,a,r]}function Bae(e,t,...n){const i=yi(n[0])?n[0]:{};(_i(i.globalInstall)?i.globalInstall:!0)&&([xF.name,"I18nT"].forEach(s=>e.component(s,xF)),[_F.name,"I18nN"].forEach(s=>e.component(s,_F)),[BF.name,"I18nD"].forEach(s=>e.component(s,BF))),e.directive("t",Tae(t))}const Fae=Mh("global-vue-i18n");function Rae(e={}){const t=__VUE_I18N_LEGACY_API__&&_i(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=_i(e.globalInjection)?e.globalInjection:!0,i=new Map,[o,s]=Dae(e,t),r=Mh("");function a(d){return i.get(d)||null}function l(d,f){i.set(d,f)}function u(d){i.delete(d)}const c={get mode(){return __VUE_I18N_LEGACY_API__&&t?"legacy":"composition"},async install(d,...f){if(d.__VUE_I18N_SYMBOL__=r,d.provide(d.__VUE_I18N_SYMBOL__,c),yi(f[0])){const g=f[0];c.__composerExtend=g.__composerExtend,c.__vueI18nExtend=g.__vueI18nExtend}let h=null;!t&&n&&(h=jae(d,c.global)),__VUE_I18N_FULL_INSTALL__&&Bae(d,c,...f),__VUE_I18N_LEGACY_API__&&t&&d.mixin(Sae(s,s.__composer,c));const m=d.unmount;d.unmount=()=>{h&&h(),c.dispose(),m()}},get global(){return s},dispose(){o.stop()},__instances:i,__getInstance:a,__setInstance:l,__deleteInstance:u};return c}function Wt(e={}){const t=JA();if(t==null)throw za(pa.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw za(pa.NOT_INSTALLED);const n=Nae(t),i=Pae(n),o=mW(t),s=Lae(e,o);if(s==="global")return gW(i,e,o),i;if(s==="parent"){let l=MF(n,t,e.__useComponent);return l==null&&(l=i),l}if(s==="isolated"){if(n.mode!=="composition")throw za(pa.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const l=n,u=_s({},e),c=MF(n,t);u.__root=c||i;const d=Pb(u);return l.__composerExtend&&(d[Fm]=l.__composerExtend(d)),qg()&&Yd(()=>{const h=d[Fm];h&&(h(),delete d[Fm])}),d}const r=n;let a=r.__getInstance(t);if(a==null){const l=_s({},e);"__i18n"in o&&(l.__i18n=o.__i18n),i&&(l.__root=i),a=Pb(l),r.__composerExtend&&(a[Fm]=r.__composerExtend(a)),zae(r,t,a),r.__setInstance(t,a)}return a}function Dae(e,t){const n=I4(),i=__VUE_I18N_LEGACY_API__&&t?n.run(()=>sS(e)):n.run(()=>Pb(e));if(i==null)throw za(pa.UNEXPECTED_ERROR);return[n,i]}function Nae(e){const t=qt(e.isCE?Fae:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw za(e.isCE?pa.NOT_INSTALLED_WITH_PROVIDE:pa.UNEXPECTED_ERROR);return t}function Lae(e,t){return O4(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function Pae(e){return e.mode==="composition"?e.global:e.global.__composer}function MF(e,t,n=!1){let i=null;const o=t.root;let s=Oae(t,n);for(;s!=null;){const r=e;if(e.mode==="composition")i=r.__getInstance(s);else if(__VUE_I18N_LEGACY_API__){const a=r.__getInstance(s);a!=null&&(i=a.__composer,n&&i&&!i[pW]&&(i=null))}if(i!=null||o===s)break;s=s.parent}return i}function Oae(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function zae(e,t,n){yn(()=>{},t),Tn(()=>{const i=n;e.__deleteInstance(t);const o=i[Fm];o&&(o(),delete i[Fm])},t)}const $ae=["locale","fallbackLocale","availableLocales"],TF=["t","rt","d","n","tm","te"];function jae(e,t){const n=Object.create(null);return $ae.forEach(o=>{const s=Object.getOwnPropertyDescriptor(t,o);if(!s)throw za(pa.UNEXPECTED_ERROR);const r=eo(s.value)?{get(){return s.value.value},set(a){s.value.value=a}}:{get(){return s.get&&s.get()}};Object.defineProperty(n,o,r)}),e.config.globalProperties.$i18n=n,TF.forEach(o=>{const s=Object.getOwnPropertyDescriptor(t,o);if(!s||!s.value)throw za(pa.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${o}`,s)}),()=>{delete e.config.globalProperties.$i18n,TF.forEach(o=>{delete e.config.globalProperties[`$${o}`]})}}const Hae=st({name:"i18n-d",props:_s({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},$_),setup(e,t){const n=e.i18n||Wt({useScope:e.scope,__useComponent:!0});return AW(e,t,uW,(...i)=>n[iS](...i))}}),BF=Hae;kae();Xre(Dre);eae(Zre);tae(J6);if(__INTLIFY_PROD_DEVTOOLS__){const e=Rp();e.__INTLIFY__=!0,Nre(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const Uae={confirm:"Confirm",cancel:"Cancel",close:"Close",dismiss:"Dismiss",loading:"Loading",copy:"Copy",errorBoundaryTitle:"Something went wrong",errorBoundaryRetry:"Try again",asyncLoadFailed:"Failed to load. Close this view and try again."},Wae={connecting:"Connecting…",connectingStageAuth:"Checking sign-in…",connectingStageServer:"Connecting to server…",connectingStageConfig:"Loading configuration…",connectingStageSessions:"Loading sessions…",connectingStageSession:"Opening session…",connectingRetrySuffix:" (retry {n})",connectingIssueNetworkTitle:"Cannot connect to the Kimi server",connectingIssueNetworkMessage:"Check your network connection and make sure the server is still running.",connectingIssueTimeoutTitle:"The Kimi server is taking too long to respond",connectingIssueTimeoutMessage:"Still retrying automatically — please wait.",connectingIssueApiTitle:"The Kimi server returned an error",connectingIssueUnknownTitle:"Connection problem",internalBuildBanner:"Internal testing only",menuFile:"File",menuEdit:"Edit",menuView:"View",menuHelp:"Help",applicationMenu:"Application menu"},Qae={workspaceMeta:"workspace · {branch}",sessionsHeader:"sessions",workspaces:"workspaces",viewSwitcher:"List options",viewGroup:"View",viewFlat:"Flat list",viewGrouped:"Group by workspace",sortGroup:"Sort order",sortManual:"Manual",sortRecent:"Recent activity",sessionAdmin:"Manage Sessions",collapseAll:"Collapse all workspaces",expandAll:"Expand all workspaces",newSession:"New Session",newChat:"New Session",newWorkspace:"New Workspace",dropToAddWorkspace:"Drop to add workspace",emptyState:"No sessions yet · click New Session to start",options:"Options",rename:"Rename",genTitle:"Gen Title",genTitleUnavailable:"Title generation unavailable — needs a managed Kimi Code login and at least one message",setEmoji:"Set Emoji…",sessionEmojiTitle:"Pick an emoji",removeEmoji:"Remove emoji",randomEmoji:"Random",searchEmoji:"Search emoji",recentEmojis:"Recently used",noEmojiResults:"No matching emoji",emojiGroupFaces:"Smileys & People",emojiGroupNature:"Animals & Nature",emojiGroupFood:"Food & Drink",emojiGroupActivity:"Activities & Travel",emojiGroupObjects:"Objects & Work",emojiGroupSymbols:"Symbols & Status",copyPath:"Copy path",copySessionId:"Copy session ID",copied:"Copied ✓",copyFailed:"Copy failed",archive:"Archive",archiveToastUndo:"Undo",archiveToastMid:"or view archived chats in",archiveToastSettings:"Settings",archiveToastTail:"",tabOpen:"Open",tabDone:"Done",tabWorkspaces:"Workspaces",tagOpen:"Open",tagDone:"Done",complete:"Done",markDone:"Mark as done",reopen:"Mark as open",noDoneSessions:"No completed sessions yet",noOpenSessions:"No open sessions yet",completeToastLead:"Done",reopenToastLead:"Back to open",fork:"Fork session",export:"Export session",pin:"Pin",unpin:"Unpin",lastActive:"Last updated: {time}",pinned:"Pinned",collapsePinned:"Collapse pinned",expandPinned:"Expand pinned",resizePinnedAria:"Resize pinned section height",delete:"Delete",deleteConfirmTitle:"Delete session",deleteConfirmMessage:'Permanently delete all conversation history of "{title}". This cannot be undone. Files and code changes in the workspace are not affected.',deleteConfirmButton:"Permanently delete",deleteToast:"Session deleted",removeWorkspace:"Remove workspace",brand:"Kimi Code",signedIn:"Signed in",signOut:"Sign out",notSignedIn:"Not signed in",signIn:"Sign in",defaultUserName:"Kimi User",upgrade:"Upgrade",upgradeMembership:"Upgrade membership",logoutConfirmTitle:"Sign out",logoutConfirmMessage:"Are you sure you want to sign out?",language:"Language",backendTitle:"Backend {backend} · {endpoint} — click to switch",noSessions:"No conversations yet",allPinned:"{count} conversations pinned",showMore:"Show more",loadMore:"Load more",showLess:"Show less",loadingMore:"Loading…",collapseSidebar:"Collapse sidebar",expandSidebar:"Expand sidebar",searchPlaceholder:"Search sessions and workspaces",search:"Search",searchHint:"↑↓ navigate · ↵ open · Esc close",searchHintSelect:"navigate",searchHintOpen:"open",searchHintClose:"close",searchClear:"Clear search",searchNoResults:"No matching sessions or workspaces",searchEmpty:"No sessions yet",update:"Upgrade",updateAvailable:"v{version} available",updateDownloadingButton:"Downloading… ({percent}%)",updateReady:"v{version} ready",updateDone:"Restart",updateFailed:"Download failed",updateRetry:"Retry",updateDownloadNow:"Download & Update",updateSkip:"Skip This Version",updateRestartNow:"Restart Now",updateRestartLater:"Later",updateReleaseDate:"Released {date}",updateCurrentVersion:"Current v{version}",updateWhatsNew:"What’s new",updateBackground:"Download in Background",updateAutoDownload:"Automatically download and install updates",rcSelectDevice:"Select device",rcCurrentDevice:"Current device: {name}",rcConnectable:"Connectable",rcUnavailable:"Unavailable",rcOnline:"Online",rcOffline:"Offline",rcDevicesLoadFailed:"Failed to load devices"},Vae={title:"Session Management",subtitle:"Manage all sessions. Mark the finished ones as done. Filter by last updated to clean up old sessions in bulk.",back:"Back",filterWorkspace:"Workspace",filterStatus:"Status",filterTime:"Updated",allWorkspaces:"All workspaces",selectAll:"Select all",searchWorkspace:"Search workspaces",noWorkspaceMatch:"No matching workspaces",removeTag:"Remove {name}",statusAll:"All statuses",statusOpen:"Open",statusDone:"Done",timeAll:"Any time",timeDaysAgo:"{n} days ago",query:"Query",reset:"Reset",colStatus:"Status",colTitle:"Title",colWorkspace:"Workspace",colPrompt:"Last prompt",colUpdated:"Updated",colCompleted:"Completed",colActions:"Actions",empty:"No sessions match the current filters",loading:"Loading…",total:"{n} total",pageSize:"{n} / page",prevPage:"Previous page",nextPage:"Next page",selectPageAll:"Select all on this page",batchSelected:"{n} selected",selectAllMatching:"Select all {total} matching sessions",materializingAll:"Selecting…",allMatchingSelected:"All {n} selected",clearSelection:"Clear selection",markDone:"Mark as done",reopen:"Mark as open",markDoneCount:"Mark as done ({n})",reopenCount:"Mark as open ({n})",batchDoneToast:"{n} marked as done",batchReopenedToast:"{n} moved back to open",batchFailedSuffix:", {n} failed",batchDoneFailedNotice:"Could not mark {n} as done",batchReopenFailedNotice:"Could not move {n} back to open",undo:"Undo",open:"Open session",rename:"Rename…",fork:"Fork",export:"Export",moreActions:"More actions"},Gae={switcherTitle:"Switch workspace",switchTooltip:"Switch workspace",eyebrow:"Workspace",branchLabel:"branch: {branch}",noBranch:"no branch",sessionCount:"{count} session | {count} sessions",allWorkspaces:"All workspaces",currentWorkspace:"Current workspace only",addWorkspace:"Add workspace…",noWorkspace:"No workspace",deleteHasSessions:"This workspace still has sessions — archive them before deleting it",removeWorkspaceConfirm:'Remove workspace "{name}"?',swarmEnableTitle:"Enable swarm mode?",swarmEnableConfirm:"The agent will run multiple sub-agents in parallel.",goalStartTitle:"Start goal?",goalStartConfirm:'"{objective}" — the agent will run autonomously toward it.',scopeCurrent:"this workspace",scopeAll:"all workspaces",newInGroup:"New session in this workspace",addTitle:"Add workspace",pathLabel:"Path",pathPlaceholder:"/absolute/path/to/project",recentLabel:"Recent folders",add:"Add",cancel:"Cancel",addHint:"Paste an absolute folder path, or pick a recent one.",addFailed:"Couldn't open this folder. Check the path and try again.",requiredTitle:"Choose a workspace first",requiredMessage:"Pick a folder to use as your workspace before sending a message.",openThisFolder:"Open this folder",up:"Up",browsing:"Browsing…",filterPlaceholder:"Filter subfolders…",searchPlaceholder:"Fuzzy-search under this folder…",searching:"Searching…",pasteToggle:"Enter an absolute path",noFilterMatch:"No subfolders match “{q}”",noSubfolders:"No subfolders here",browseHint:'Click a folder to enter it, then "Open this folder" to add it as a workspace.',attentionTitle:"{count} item needs your attention | {count} items need your attention",awaitingAnswer:"Answer",awaitingAnswerTitle:"A question is waiting for your answer",awaitingPermission:"Approve",awaitingPermissionTitle:"An action is waiting for your approval",aborted:"Failed",abortedTitle:"This session's latest turn ended on an error"},qae={jumpToLatestAria:"Jump to latest message",backToBottom:"Back to bottom",toc:"Conversation outline",historyPrevious:"Previous item",historyNext:"Next item",newMessages:"Latest messages",loading:"Loading…",starting:"Starting conversation…",requesting:"Requesting…",working:"Working…",workingRetry:"Model request failed — retrying ({n}/{max})…",emptyWorkspaceHint:"Send in {name}",switchWorkspace:"Switch workspace",recentSessions:"Recent sessions",viewMoreSessions:"View more",sessionAdminTooltip:"View and manage more sessions in Session Management",addWorkspace:"New workspace",moreWorkspaces:"More workspaces ({count})",pickFolder:"Choose folder…",compacting:"Compacting context…",compactedPlain:"Context compacted",compactedAuto:"Context auto-compacted",compactedTokens:" ({before} → {after} tokens)",viewSummary:"View summary",undo:"Undo",undoTooltip:"Undo edit",undoConfirm:"Undo back to this message?",escUndoHintPre:"Press",escUndoHintPost:"again to undo",undone:"Undone — the message is back in the composer",turnInterrupted:"Manually stopped",turnFailed:"Model request failed — this turn was interrupted",turnFailedMaxSteps:"Step limit reached — this turn was interrupted",turnFailedResume:"Continue",turnFailedResumeText:"Continue",yesterday:"Yesterday",loadOlder:"Load earlier messages",loadingOlder:"Loading earlier messages…",widenTable:"Widen table",restoreTableWidth:"Restore default width",wrapCode:"Enable word wrap",unwrapCode:"Disable word wrap",showLineNumbers:"Show line numbers",hideLineNumbers:"Hide line numbers",cron:{fired:"Scheduled reminder fired",missed:"Missed scheduled reminders",job:"job {id}",oneShot:"one-shot",coalesced:"{n} fires coalesced",missedCount:"{n} missed",finalDelivery:"final delivery",expand:"Show more",collapse:"Show less"},fold:{worked:"Worked {duration}",workedUnknown:"Work details"},turnFiles:{titleOne:"{number} file changed",titleOther:"{number} files changed",more:"{number} more files",moreOne:"1 more file",showLess:"Show less",diffUnavailable:"This file’s changes can’t be shown line by line",rebuilding:"Loading this turn’s changes…",openFile:"Open file"},goal:{continuation:"Goal continuation"},notification:{sentBy:{task:"From background (Bash)",subagent:"From background (Agent)"},bodyLine:"{status}: {description}",reason:"Reason: {reason}",userStopped:"Stopped by user",statusTitle:{completed:"Completed",failed:"Failed",timed_out:"Timed out",killed:"Stopped",lost:"Lost",info:"Notification"},status:{completed:"completed",failed:"failed",timed_out:"timed out",killed:"killed",lost:"lost",info:"info"},groupTitle:"{n} notifications",copyPath:"Copy path",copied:"Copied",rawPayload:"Raw payload",outputTruncated:"Output truncated — showing the tail",fields:{type:"Type",source:"Source",severity:"Severity"}},userMessage:{expand:"Show more",collapse:"Show less"},search:{placeholder:"Search chat…",searching:"Searching…",results:"{current}/{total} results",resultsCapped:"{current}/{total}+ results",noResults:"No results",previous:"Previous match",next:"Next match",close:"Close search"}},Kae={connectionConnected:"Connected",connectionConnecting:"Connecting…",connectionDisconnected:"Disconnected",ctxTooltip:"Used {used} / {max} tokens ({pct}%)",modelLabel:"Model",permissionManual:"Always Ask",permissionAuto:"Never Ask",permissionYolo:"Ask When Needed",permissionManualDesc:"Auto-read only; everything else needs your approval first",permissionAutoDesc:"Never interrupts you; everything runs and is decided automatically",permissionYoloDesc:"Routine edits and commands run automatically; risky actions, questions, and plans still ask",planLabel:"Plan",planOn:"on",planOff:"off",planTooltip:"Toggle plan mode (research before editing)",workModeDismiss:"Exit mode",goalLabel:"Goal",timeUnitHour:"h",timeUnitMinute:"m",timeUnitSecond:"s",planEmptyArmed:"Plan mode is on — the plan the agent writes will show up here.",planEmptyIdle:"No plan yet — turn plan mode on and the agent’s plan will show up here.",swarmLabel:"Swarm",swarmDismiss:"Turn off Swarm",towerLabel:"Tower",towerDismiss:"Turn off Tower",modeOff:"Off",goalPlaceholder:"What should the agent achieve?",planPlaceholder:"What should the agent plan for?",goalStart:"Start",goalPause:"Pause",goalResume:"Resume",goalCancel:"Cancel",goalCancelConfirm:"Cancel this goal? It cannot be resumed afterwards.",goalCancelConfirmYes:"Yes",goalCancelConfirmNo:"No",goalDoneWhen:"Done when",goalStatusActive:"Active",goalStatusPaused:"Paused",goalStatusBlocked:"Blocked",goalStatusComplete:"Complete",modeNotSupported:"Not supported",thinkingLabel:"Thinking",thinkingTooltip:"Toggle thinking mode",cacheNote:"Note: Switching models or thinking effort invalidates the existing prompt cache. Start a new chat to avoid extra token costs.",starredModels:"Starred",moreModels:"More models…",statusPanelTitle:"Session status",statusPanelClose:"Close",statusModel:"Model",statusThinking:"Thinking",statusPermission:"Permission",statusPlanMode:"Plan mode",statusSwarmMode:"Swarm mode",statusTowerMode:"Tower mode",swarmOn:"on",swarmOff:"off",towerOn:"on",towerOff:"off",statusContext:"Context",statusCost:"Cost",statusContextValue:"{used} / {max} ({pct}%)",statusNone:"—",activityRunning:"Running…",activityAwaitingApproval:"Awaiting approval",activityAwaitingQuestion:"Awaiting answer",interrupt:"Interrupt",runningShort:"in progress"},Zae={inputLabel:"Message input",placeholder:"Type a message…",send:"Send ↵",queueLabel:"Queue",placeholderRunning:"Press Enter to queue · Ctrl+S to inject into the running turn",placeholderRunningMobile:"Press Enter to queue",starting:"Sending…",queuePending:"{n} waiting to send",queueSteer:"Send into the running turn",queueDragTitle:"Drag to reorder",editQueued:"Edit (load back into the input)",queuedAttachments:"attachment ×{n}",queuedHasImage:"Contains {n} image(s) — remove only, not editable",attachmentImage:"Image",attachmentVideo:"Video",attachments:"Attachments",imagesAndVideos:"Images and videos",mentionNamed:"Mention {name}",attachmentOpenUnsupported:"Can’t open {name} — this file type isn’t supported",dropToAttach:"Drop files to attach",remove:"Remove",removeNamed:"Remove {name}",mediaAttachments:"Media rail",uploading:"Preparing",uploadFailed:"Failed",attachFile:"Attach file",addMenu:"Add",addFiles:"Files",addFilesDesc:"Upload files",addGoalDesc:"Set a goal to keep pursuing",addPlanDesc:"Turn plan mode on",addSwarmDesc:"Turn swarm mode on",addTowerDesc:"Turn tower mode on",noCommands:"No commands",slashSheetTitle:"Commands",slashSearchPlaceholder:"Search commands…",mentionSheetTitle:"Mention",mentionSearchPlaceholder:"Search attachments, files, or skills…",addSlash:"Commands",addSlashDesc:"Built-in commands or skills",addMention:"Mention",addMentionDesc:"Mention attachments, project files, or skills",interrupt:"Interrupt",interruptTitle:"Interrupt current operation",expandTitle:"Expand input for multi-line editing",collapseTitle:"Collapse input",emptyConversationTitle:"Kimi Code",emptyConversation:"No messages yet — type below to start the conversation",upgradeBanner:"Upgrade your Kimi account to use Kimi Code",quickStartPlaceholder:"Type a message to start a new conversation…",thinkingSuffix:" · thinking",thinkingSuffixEffort:" · {level}",noArgCommand:"{cmd} takes no arguments"},Yae={title:"Sign in to Kimi Code",close:"Close (Esc)",regionCnTitle:"Kimi Code",regionCnHint:"Sign in with your kimi.com account",regionOverseasTitle:"Kimi Code",regionOverseasHint:"Sign in with your kimi.ai account",oauthTitle:"Sign in with Kimi",oauthHint:"Finish authorizing in your browser to sign in",starting:"Starting sign-in flow…",openedHint:"Finish authorizing in your browser ({time}).",blockedTitle:"Could not open the login page",blockedHint:"The browser blocked the automatic opening — use the button below to continue authorizing.",notOpened:"Didn't open in your browser?",authorizeInBrowser:"Sign in via browser",orDivider:"or",fallbackPrefix:"On another device? Open ",fallbackSuffix:" and enter the device code:",copy:"Copy",copied:"Copied",copyLink:"Copy link",success:"Signed in",successHint:"Loading, will close automatically…",expiredTitle:"Device code expired",expiredHint:"Please restart the sign-in flow",deniedTitle:"Sign-in cancelled",retry:"Retry",closeBtn:"Close",failedTitle:"Login failed",errorHint:"Please upgrade kimi-code and try again",pollErrorTitle:"Lost connection",pollErrorHint:"Sign-in polling failed repeatedly. Check the kimi-code process and try again.",action:"Sign in",requiredTitle:"Sign in required",requiredMessage:"Sign in to your Kimi account and set up a model to start chatting.",goToLogin:"Sign in",upgradeRequiredTitle:"Upgrade required",upgradeRequiredMessage:"Your account is on the free plan. Upgrade to a membership to start chatting with Kimi models.",pickModelTitle:"Choose a model",pickModelMessage:"Models are available. Pick a default model to start chatting.",pickModelAction:"Choose",configureModelsTitle:"Set up a model",configureModelsMessage:"You're signed in, but no model is available yet. Set up a model to start chatting.",configureModelsGenericMessage:"No model is available yet. Set up a model to start chatting.",configureModelsAction:"Set up",rcSubtitle:"Remote Control session",rcChecking:"Checking sign-in status…",rcLead:"This Remote Control session requires authorization. Sign in with your Kimi account to continue.",rcSuccessHint:"Redirecting…",rcExpiredTitle:"Authorization expired or declined",rcDeniedTitle:"Authorization cancelled",rcStartErrorTitle:"Could not start sign-in",rcSessionErrorTitle:"Could not create your session",rcConnectionErrorHint:"Check your connection and try again.",rcSuccessNoRedirect:"You can close this page now.",rcUnsupportedTitle:"Open in your browser",rcUnsupportedHintWechat:"Remote Control sign-in isn't supported in WeChat's built-in browser. Open this page in your system browser to continue.",rcUnsupportedHintLark:"Remote Control sign-in isn't supported in Lark's built-in browser. Open this page in your system browser to continue.",rcOpenInBrowser:"Open in browser",rcOpenGuideIos:'Tap "···" in the top-right corner, then choose "Open in Browser" or "Open in Safari".',rcOpenGuideAndroid:'Tap "···" in the top-right corner, then choose "Open in Browser".'},Jae={title:"Provider management",loading:"Loading providers…",unavailable:"Provider management is not available yet",empty:"No providers yet",status:{connected:"Connected",error:"Error",unconfigured:"Not configured"},keySet:"key set",keyNotSet:"key not set",managedBadge:"OAuth",modelCount:"{count} models",confirmDelete:"Confirm delete?",refresh:"Refresh",delete:"Delete",refreshTitle:"Refresh {type}",deleteTitle:"Delete {type}",loginKimi:"Sign in to Kimi",loginAnthropic:"Sign in to Anthropic",addProvider:"Add provider",added:"Provider added",enterApiKey:"Enter API Key",optional:"Optional",apiKeyRequired:"API Key cannot be empty",fieldId:"Name",fieldType:"API Protocol",types:{kimi:"Kimi",openai:"OpenAI",openai_responses:"OpenAI Responses",anthropic:"Anthropic","google-genai":"Google GenAI",vertexai:"Vertex AI"},fieldApiKey:"API Key",apiKeyManaged:"Signed in with OAuth",apiKeySet:"Set — enter a new key to replace",showApiKey:"Show API key",hideApiKey:"Hide API key",fieldBaseUrl:"Base URL",baseUrlPlaceholder:"https://api.example.com/v1",fieldModels:"Models",colModelId:"Model ID",colContext:"Context",colDisplayName:"Display name",modelIdPlaceholder:"kimi-k3",modelContextPlaceholder:"1048576",modelNamePlaceholder:"Optional",noModels:"No models",addModel:"Add model",removeModel:"Remove model",fieldDefaultModel:"Default model",save:"Save",saved:"Provider saved",deleteProvider:"Delete provider",deleteConfirm:"Delete {id} and its {count} models?",deleteConfirmYes:"Delete",managedHint:"Managed providers sign in and out on the Account tab",unsavedGuard:"You have unsaved changes.",guardStay:"Keep editing",guardDiscard:"Discard",add:"Add",catalog:{sourceCatalog:"From directory",sourceManual:"Manual",sourceRegistry:"Registry",registryHint:"Import providers and models from an api.json registry; re-importing the same URL refreshes it",registryUrlLabel:"Registry URL",registryImported:"{count} providers imported",searchPlaceholder:"Search providers",loading:"Loading directory…",loadError:"Failed to load the directory. Check your network and retry.",retry:"Retry",empty:"No matching providers",rejected:"Not importable",rejectReason:{"unknown-explicit-type":"Unsupported protocol","proprietary-sdk":"Proprietary SDK — cannot be imported","empty-base-url":"Blank base URL","placeholder-base-url":"Endpoint contains an env placeholder"},backToList:"Back to directory",willImport:"{count} models will be imported from the directory",overwriteWarning:"A provider with this name already exists; importing overwrites its config and models",importAction:"Import"},error:{idRequired:"Name cannot be empty",idInvalid:'Name must start with a letter or digit and may only contain letters, digits, "-", "_" and spaces',apiKeyRequired:"API Key cannot be empty",baseUrlRequired:"Base URL cannot be empty",registryUrlRequired:"Registry URL cannot be empty",modelRequired:"Model ID cannot be empty",contextSizeRequired:"Max context size cannot be empty",contextSizeInvalid:"Max context size must be a positive integer"},hintClose:"Close"},Xae={dialogLabel:"Switch model",title:"Switch model",close:"Close (Esc)",allTab:"All",providerTabs:"Model providers",searchPlaceholder:"Search models or providers…",clearSearch:"Clear search",loading:"Loading models…",unavailable:"Model list is unavailable",contextSuffix:"{size} ctx",capabilityImageInput:"Image input",capabilityVideoInput:"Video input",capabilityToolUse:"Tool use",capabilityThinking:"Thinking",capabilityAlwaysThinking:"Always thinking",emptyNoModels:"No models available",emptyNoMatch:"No matching models",starTitle:"Add to favorites",unstarTitle:"Remove from favorites",hintNavigate:"Navigate",hintSelect:"Select",hintClose:"Close"},ele={justNow:"just now"},tle={title:{shell:"Run command?",diff:"Apply changes?",file:"Write file?",fileop:"File operation?",url:"Fetch URL?",search:"Search?",invocation:"Invoke?",todo:"Update todo?",plan_review:"Ready to build with this plan?",generic:"Approve action?"},subagentBadge:"sub agent · {name}",danger:"Danger: {detail}",searchQueryLabel:"query",searchScope:"scope: {scope}",feedbackPlaceholder:"Explain why you are rejecting… (Enter to submit, Shift+Enter for a new line, Esc to cancel)",feedbackHint:"Enter to submit · Shift+Enter for a new line · Esc to cancel",approve:"Approve",approveSession:"Approve for session",reject:"Reject",feedback:"Feedback",feedbackSubmit:"Reject with feedback",feedbackCancel:"Cancel",approvePlan:"Approve plan",revise:"Revise",rejectAndExit:"Reject and Exit",expandPlan:"Expand",collapsePlan:"Collapse"},nle={back:"‹ Previous question",nextQuestion:"Next question ›",otherDefault:"Other…",submit:"Submit",dismiss:"Dismiss",minimize:"Minimize",expand:"Expand",hint:"↑↓ to choose · Enter to confirm"},ile={tag:"tasks",summary:"{run} running · {done} done",copy:"Copy",calling:"Calling {label}",fieldTask:"Task",fieldOutput:"Output",fieldProgress:"Progress",fieldResult:"Result",moreLines:"… ({count} more)",copied:"Copied",stop:"stop",defaultDescription:"Background task",dockTasks:"Background tasks",dockBash:"Bash",dockSubagent:"Background Agent",dockTodos:"Todos",todoProgressTitle:"Progress",stateDone:"Done",stateFail:"Failed",stateCancelled:"Cancelled",filterRecent:"Recent",filterRunning:"Running",filterDone:"Done",filterAll:"All",running:"running",closePanel:"Close panel",openPanel:"Open in the side panel",timingRunning:"Running · {time}",timingDone:"Done · {time}",emptyTasks:"No background tasks running",emptyRecent:"No recent tasks",emptyRunning:"No running tasks",emptyDone:"No completed tasks",emptyBash:"No bash tasks running",emptySubagent:"No background agent tasks running",emptyTodo:"No todos yet",openTab:"Open the tasks tab",openDetail:"Open",toBackground:"To background",collapse:"Collapse",expand:"Expand",transcriptLoadError:"Failed to load this sub agent’s conversation.",copyCommand:"Copy command",copyOutput:"Copy output",copyAll:"Copy all"},ole={panelTitle:"Thinking",streaming:"Thinking…"},sle={aheadTitle:"ahead of remote",behindTitle:"behind remote",fileCountOne:"{number} file",fileCountOther:"{number} files",empty:"No git changes",clean:"Working tree clean, no changes",back:"Back",loading:"Loading diff…",noDiff:"No line changes for this file",emptyFile:"Empty file",list:"List",tree:"Tree"},rle={},ale={empty:"Select a file on the left to preview",loading:"Loading…",lineCount:"{count} lines",copy:"Copy",copied:"Copied",copyPath:"Copy path",openInEditor:"Open",reveal:"Reveal",download:"Download",close:"Close",moreActions:"More actions",refresh:"Refresh",htmlMode:"HTML preview mode",metadata:"Metadata",markdownMode:"Markdown preview mode",preview:"Preview",source:"Source",imageFit:"Image sizing",fit:"Fit",actual:"Actual",pdfNoPreview:"This PDF cannot be embedded here. Download it to view.",imageNoPreview:"Image file · {mime} · {size} · preview unavailable",binaryNoPreview:"Can't preview this file ({mime} · {size}). Open with another app",unknownType:"unknown type",copyCode:"Copy code",enlargeImage:"Enlarge image",errors:{emptyPath:"File path is empty",unsupportedPath:"URLs and remote paths cannot be previewed",outsideWorkspace:"Only files inside the current workspace can be previewed",isDirectory:"Select a file instead of a directory",notFound:"File no longer exists or was moved",tooLarge:"File is too large to preview",loadFailed:"Unable to read this file"}},lle={searching:"Searching…",noMatch:"No matches",files:"Files",skills:"Skills",openSkill:"Open skill file",copyPath:"Copy path",attachmentUploadFailed:"Couldn’t add attachment. Remove it or drop the file in again to retry",attachmentUploadInterrupted:"Adding attachment was interrupted. Remove it or drop the file in again to retry",viewFullscreen:"View fullscreen",mediaPreviewLoading:"Loading preview…",mediaPreviewUploading:"Adding attachment — preview when ready",mediaPreviewUnavailable:"Preview unavailable",stateUploading:"Preparing",stateUploaded:"Ready to send",stateUploadFailed:"Failed"},ule={dismiss:"Close",errorLabel:"Error",noteLabel:"Note",agentWarningFallback:"agent warning",unhandledEvent:"Unhandled event: {type}",agentError:{title:"Model request failed",connection:"Cannot connect to the model service",auth:"Model authentication failed",rateLimit:"Model rate limit reached",overloaded:"Model overloaded",filtered:"Response filtered by the provider",api:"Model API error",contextOverflow:"Context size exceeded"},details:{cause:"Cause",code:"Error code",connection:"Connection",contentType:"Content type",details:"Server details",duration:"Duration",endpoint:"Endpoint",errorName:"Error type",message:"Message",operation:"Operation",phase:"Failure phase",request:"Request",requestId:"Request ID",responsePreview:"Response preview",sessionId:"Session ID",stack:"Stack",status:"HTTP status",timeout:"Timeout",timestamp:"Time"},daemonApiTitle:"Kimi server returned an error",daemonNetworkMessage:"Web did not receive a response from the Kimi server. Check that it is still running, or refresh the page.",daemonNetworkTitle:"Cannot connect to Kimi server",daemonTimeoutMessage:"The Kimi server did not respond within the wait limit. The operation may still complete in the background — refresh later to check, or try again.",daemonTimeoutTitle:"Kimi server response timed out",diagnostics:"Diagnostics",hideDetails:"Hide details",operationFailedMessage:"The last operation did not finish. Try again later.",operationFailedTitle:"Operation failed",sendFailedTitle:"Send failed",sendFailedNoDefaultModelMessage:"No default model is configured. Choose a model again in Settings",sessionSnapshotMessage:"Web could not load the current conversation. Check that the Kimi server is still running, or refresh the page.",sessionSnapshotTitle:"Cannot load current conversation",showDetails:"Show details",copyDetails:"Copy diagnostics",copied:"Copied",wsTitle:"Realtime connection error",goal:{alreadyExists:"This session already has an active goal. Cancel it before starting a new one.",notFound:"No goal to act on — it may have already finished or been cancelled.",statusInvalid:"The current goal state does not allow this action.",notResumable:"This goal cannot be resumed (it may be cancelled or completed).",objectiveTooLong:"The objective is too long. Please shorten it and try again."}},cle={new:{desc:"Create a new session"},clear:{desc:"Clear and start a new session"},login:{desc:"Sign in to Kimi in the browser"},plan:{desc:"Toggle plan mode on/off"},swarm:{desc:"Toggle swarm mode; /swarm runs a task in swarm"},tower:{desc:"Toggle tower mode; /tower turns it on with a base branch"},goal:{desc:"Create/control a goal: /goal , /goal pause{'|'}resume{'|'}cancel"},btw:{desc:"Side chat: /btw asks a forked side session"},compact:{desc:"Compact the conversation history"},fork:{desc:"Fork this session into a new one"},export:{desc:"Download this session and troubleshooting logs as a ZIP",noSession:"Open a session before exporting it.",started:"Exporting session…",done:"Session exported.",tooLarge:"Session data exceeds the export size limit. Export it from a terminal instead: kimi export {sessionId} -o session.zip"},status:{desc:"View session status"},undo:{desc:"Undo the last message"}},dle={label:{read:"Read",bash:"Run",edit:"Edit",write:"Write",grep:"Search",glob:"Find",ls:"List",web_fetch:"Fetch",search:"Search",todo:"Todo",task:"Task",swarm:"Swarm",ask_user:"Question",plan:"Plan",goal_create:"Start Goal",goal_get:"Read Goal",goal_budget:"Set Goal Budget",goal_update:"Update Goal",waitfor:"Wait"},waitfor:{waitingAny:"Waiting for any background task",waitingTask:"Waiting for {id}",noTasks:"No background tasks running",timedOut:"Timed out",stillRunning:"{count} still running",moreFinished:"+{count} finished during wait",moreRunning:"+{count} more"},swarm:{progress:"{done} / {total}",runningSub:"{count} in progress",doneSub:"{completed} completed · {failed} failed",doneSubWithCancelled:"{completed} completed · {failed} failed · {cancelled} cancelled",phaseQueued:"Queued",phaseWorking:"Working",phaseSuspended:"Suspended",phaseCompleted:"Completed",phaseFailed:"Failed",phaseCancelled:"Cancelled",waiting:"Waiting for subagents…"},chip:{lines:"{count} lines",results:"{count} results",files:"{count} files",edited:"edited",created:"created",todos:"{count} items"},disclosure:{expand:"Expand details",collapse:"Collapse details"},agent:{foreground:"Foreground",background:"Background",status:{running:"Running",ok:"Completed",error:"Failed",cancelled:"Cancelled"}},output:{waiting:"Waiting for output…",empty:"No output",saved:"Saved result"},plan:{review:{pending:"Pending review",approved:"Approved",rejected:"Rejected",cancelled:"Cancelled"},selectedOption:"Selected",pathOnlyHint:"No inline content — open it in the side panel:",feedback:"Feedback"},summary:{inScope:"{value} in {scope}"},goal:{objectiveWithCriterion:"{objective} · {criterion}",status:"Status: {status}",budget:"{value} {unit}",turns:"{value} turns",tokens:"{value} tokens",milliseconds:"{value} ms",seconds:"{value} sec",minutes:"{value} min",hours:"{value} hr"},group:{countOther:"{count} tool call | {count} tool calls",typed:{read:{done:"Read {count} file | Read {count} files"},bash:{done:"Ran {count} command | Ran {count} commands"},grep:{done:"Searched {count} pattern | Searched {count} patterns"},search:{done:"Ran {count} web search | Ran {count} web searches"},glob:{done:"Matched {count} file pattern | Matched {count} file patterns"},ls:{done:"Listed {count} directory | Listed {count} directories"},web_fetch:{done:"Fetched {count} page | Fetched {count} pages"},edit:{done:"Made {count} edit | Made {count} edits"},write:{done:"Wrote {count} file | Wrote {count} files"}}},activity:{failedClause:" ({count} failed)",liveDonePrefix:"",busy:"Working…",doing:{read:"Reading {subject}",bash:"Running {subject}",grep:"Searching {subject}",search:"Searching {subject}",glob:"Matching {subject}",ls:"Listing {subject}",web_fetch:"Fetching {subject}",edit:"Editing {subject}",write:"Writing {subject}"}},ask:{dismissed:"Dismissed",answer:"{count} answer",answers:"{count} answers",answered:"Answered",more:"(+{count} more)",collected:"Collected your answers",question:"{count} question",questions:"{count} questions",freeInput:"(free text)",unanswered:"No answer"}},fle={resizeHandleAria:"Resize sidebar width",resizePreviewAria:"Resize preview panel width",detailPanelAria:"Detail panel"},hle={openSwitcher:"Switch session / workspace",openSettings:"Session settings",settingsTitle:"Settings",groupSession:"Current session",groupApp:"App preferences",groupAccount:"Account",sheetLabel:"Sheet",closeSheet:"Close",tapToCycle:"tap to cycle",running:"running",idle:"idle",sessionCount:"{n} sessions",newSession:"New session",permManualSub:"Auto-read only; everything else needs your approval first",permAutoSub:"Never interrupts you; everything runs and is decided automatically",permYoloSub:"Routine edits and commands run automatically; risky actions, questions, and plans still ask",planModeSub:"Plan mode",goalModeSub:"Goal mode",swarmModeSub:"Swarm mode",towerModeSub:"Tower mode",archivedSessions:"Archived sessions",archivedSessionsSub:"Browse and restore archived sessions",archivedBack:"Back",viewFlat:"Flat",viewGrouped:"By workspace"},ple={colorSchemeLabel:"Appearance",light:"Moon bright",dark:"Moon dark",system:"System"},mle={continue:"Continue",back:"Back",skip:"Skip",welcome:{title:"Welcome to Kimi Code",subtitle:"The AI coding workbench for professional developers",languageLabel:"Language",themeLabel:"Appearance"},login:{title:"Configure Model",subtitle:"Choose the model service that powers Kimi Code. You can change it later in Settings",kimiTitle:"Sign in with Kimi",kimiHint:"Ready out of the box with Kimi membership benefits",kimiCnTitle:"Kimi Code",kimiCnHint:"Sign in with your kimi.com account",kimiOverseasTitle:"Kimi Code",kimiOverseasHint:"Sign in with your kimi.ai account",customProviderTitle:"Add a custom provider",customProviderHint:"Bring your own API key for OpenAI-compatible and other services",loggedInTitle:"Logged in with Kimi",loggedInHint:"Your model service is ready to use",finish:"Finish",skip:"Skip for now"}},gle={title:"Settings",internalTest:"Internal Test",close:"Close (Esc)",tabs:{general:"General",agent:"Agent & Sessions",account:"Account",providers:"Providers",advanced:"About",archived:"Archived Sessions",shortcuts:"Hotkeys",plugins:"Plugins",lab:"Lab"},lab:{sidebarTabs:"Tabbed session list",sidebarTabsHint:"The sidebar shows Open / Done / Workspaces tabs"},plugins:{retry:"Retry",builtIn:"Built-in",official:"Official",thirdParty:"Third-party",installed:"Installed",install:"Install",update:"Update",remove:"Remove",enabled:"Enabled",homepage:"Homepage",empty:"No plugins found",hasErrors:"Error",customInstall:"Install custom plugin",customInstallPlaceholder:"https://… or /path/to/plugin",customInstallHint:"Accepts an https zip URL, a GitHub repo URL, or a local directory path.",extensionHintTitle:"One step left: install the browser extension",extensionGuide:"Manual install",dismissHint:"Dismiss",catalogUnavailable:"The marketplace catalog is currently unreachable; installed plugins remain manageable below.",source:{"local-path":"Local","zip-url":"ZIP",github:"GitHub"},counts:{skill:"1 skill | {n} skills",mcp:"1 MCP server | {n} MCP servers",mcpEnabled:"{n} on",hook:"1 hook | {n} hooks",command:"1 command | {n} commands"}},appearance:"Appearance",notifications:"Notifications",notifyEnabled:"System notifications",notifyEnabledHint:"Send a system notification when a turn completes, needs an answer, or needs approval",notifySound:"Notification sound",notifySoundHint:"Play the system sound with notifications",notifyDenied:"Blocked in browser settings",notifyTitle:"Kimi Code · Turn finished",notifyQuestionTitle:"Kimi Code · Needs answer",notifyApprovalTitle:"Kimi Code · Approval required",notifyFallback:"View result",notifyQuestionFallback:"A question is waiting for your answer",notifyApprovalFallback:"A tool needs your approval",account:"Account",signedIn:"Signed in",signedOutHint:"Sign in to view your account and model access",planUsage:{title:"Plan Usage",retry:"Retry",loadFailed:"Failed to load",empty:"No usage data yet",weekLimit:"Weekly limit",genericLimit:"Limit",hourLimit:"{n}h limit",dayLimit:"{n}d limit",minuteLimit:"{n}m limit",resetsIn:"resets in {duration}",resetDone:"reset",durationDay:"{n}d",durationHour:"{n}h",durationMinute:"{n}m",durationSecond:"{n}s",usedPct:"{pct}% used",boosterTitle:"Booster",boosterBalance:"Balance",monthlyUsed:"Used this month",monthlyLimit:"Monthly limit",unlimited:"Unlimited",freeTitle:"Free account",freeHint:"Upgrade to a membership to use Kimi models and see plan usage"},colorSchemeHint:"Choose the app’s light or dark appearance",appIcon:"Dock icon",appIconHint:"Choose the icon shown in the Dock",appIconDefault:"Default",appIconBlack:"Black",uiFontSize:"Font size",uiFontSizeHint:"Adjust interface and message text size",vibrancy:"Frosted sidebar",vibrancyHint:"Use the native macOS frosted-glass material behind the sidebar — turn it off if the translucency is hard to read",languageHint:"Choose the interface language",defaultOpenInApp:"Default open-in app",defaultOpenInAppHint:"App used when opening files and folders from the header menu",openWith:"Open with",agentDefaults:"Agent defaults",saving:"Saving",defaultModel:"Default model",defaultModelHint:"New sessions prefer this model",noDefaultModel:"No default model",defaultPermission:"Default permission",defaultPermissionHint:"Only affects newly-created sessions",defaultThinking:"Thinking by default",defaultThinkingHint:"Whether new sessions start with thinking enabled",defaultPlanMode:"Plan mode by default",defaultPlanModeHint:"Whether new sessions start in plan mode",secondaryModelSection:"Subagents",secondaryModel:"Subagent model",secondaryModelHint:"Model and thinking effort that subagents use by default",secondaryModelEffort:"Thinking effort",noSecondaryModel:"Not set (inherit primary)",secondaryModelEffortAuto:"Model default",telemetry:"Improve product with usage data",telemetryHint:"When on, we collect anonymous interaction data (such as clicks, interruptions, and feature usage) to improve the product experience. You can turn it off at any time.",telemetryRestartHint:"Takes effect after restarting the service.",credentialReady:"Credential configured",credentialMissing:"Missing credential",configUnavailable:"The server did not return config yet. These settings are unavailable.",versionAndUpdates:"Version & updates",appVersion:"App version",appVersionHint:"The running app’s version and build time",checkUpdate:"Check for updates",checkUpdateHint:"Manually check whether a new version is available",checkUpdateBtn:"Check now",updateChecking:"Checking…",updateCheckLatest:"You’re on the latest version",updateCheckAvailable:"Version {version} is available — download it from the update entry in the sidebar",updateCheckUnsupported:"This build does not support update checks",updateCheckFailed:"Check failed. Please try again later.",updateCheckAvailableAuto:"Version {version} found — downloading in the background",updateCheckDownloaded:"Version {version} is ready — restart from the update entry in the sidebar",autoDownloadUpdate:"Auto-download updates",autoDownloadUpdateHint:"Download new versions in the background and install them on the next restart",canaryUpdate:"Update Canary",canaryGhMissing:"GitHub CLI not found — install it first (brew install gh) and sign in",canaryGhUnauthenticated:"GitHub CLI is not signed in — run gh auth login in a terminal first",canaryTrigger:"Repackage Canary",canaryTriggerHint:"Trigger the macOS arm64 build pipeline to produce a new canary build",canaryTriggerBtn:"Repackage Canary",canaryTriggerConfirm:"Click again to confirm",canaryTriggerDone:"Triggered — the build takes about 20–30 minutes",canaryTriggerFailed:"Failed to trigger: {error}",canaryViewWorkflow:"View workflow",canaryImportStable:"Import UI Settings from Stable…",canaryImportStableTitle:"Import UI Settings from Stable",canaryImportStableHint:"Copies the stable app’s UI settings (pinned sessions, appearance, and other localStorage preferences) into Canary, replacing the current ones (the existing copy is backed up as leveldb.bak). Canary restarts to finish the import; the stable app must stay quit.",canaryImportStableBtn:"Import & Restart",canaryImportStableRunning:"The stable app (Kimi Code) is running — quit it first, then import again.",canaryImportStableNoData:"No UI settings data from the stable app was found.",canaryImportStableFailed:"Import failed: {error}",privacy:"Data & privacy",diagnostics:"Diagnostics",agreements:"Agreements",userAgreement:"User Agreement",privacyPolicy:"Privacy Policy",messageFolding:"Message folding",turnFolding:"Auto-fold messages",turnFoldingHint:"When a turn ends, the work folds away automatically, leaving only the summary",activityRunFolding:"Tool call summary",activityRunFoldingHint:"During the answer, consecutive tool calls are summarized into one row",build:"Build",serverVersion:"Server version",serverAddress:"Server address",serverAddressHint:"The address of the connected server",serverVersionHint:"The version of the connected service",copyServerVersion:"Copy server version",copyServerAddress:"Copy server address",copied:"Copied",exportLog:"Troubleshooting log",exportLogHint:"Export the troubleshooting log collected by the app",logHint:"Enable with ?debug=1 to capture",exportLogBtn:"Export log",archivedTitle:"Archived sessions",archivedDesc:"Browse archived sessions, see their workspace path, name, and archive time, and restore them to the session list.",archivedSearch:"Search archived sessions",archivedAllWorkspaces:"All workspaces",archivedSortLabel:"Sort by",archivedSortArchived:"Archive time",archivedSortCreated:"Created time",archivedSortName:"Name",archivedRestore:"Restore",archivedEmpty:"No archived sessions yet",archivedNoMatch:"No matching archived sessions",archivedSessionsCount:"{count} sessions",archivedAt:"Archived {time}",archivedLoadMore:"Load more",archivedLoading:"Loading…",archivedLoadingAll:"Loading all archived sessions…"},vle={openInEditor:"Open in editor",openInEditorShort:"Open",openInApp:"Open in {app}",chooseOpenApp:"Choose application",copyAll:"Copy all as Markdown",copyFinalSummary:"Copy final summary",copied:"Copied",lastUsed:"Last used",copyPath:"Copy path",changed:"{n} changed",gitTooltip:"Open Files > Changed",detached:"detached",openPr:"Open pull request",prStatusOpen:"open",prStatusClosed:"closed",prStatusMerged:"merged",prStatusDraft:"draft",prStatusUnknown:"unknown",options:"Options",copySessionId:"Copy session ID",pinSession:"Pin",unpinSession:"Unpin",renameSession:"Rename",forkSession:"Fork session",archiveSession:"Archive",markSessionDone:"Mark as done",reopenSession:"Mark as open",exportSession:"Export session",devBadge:"Running in development mode"},Ale={title:"Side chat",empty:"Ask a quick question on the side — it shares this session’s context.",placeholder:"Ask the side chat…",send:"Send"},yle={comment:"Comment",addToChat:"Add to chat",commentPlaceholder:"Write a comment…",confirm:"Add",copyQuote:"Copy quote",copyComment:"Copy comment",quoteLabel:"Quote"},kle={actions:{summonApp:{label:"Show App Window",desc:"Bring the app window to the foreground from anywhere"},newSession:{label:"New Session",desc:"Start a new session in the current workspace"},closeSessionView:{label:"Close Page",desc:"Close the current chat and go to the new-chat page; press again there to close the window"},searchSessions:{label:"Search Chats",desc:"Open the session search dialog"},archiveSession:{label:"Complete Chat",desc:"Mark the current chat as done right away (find it under Done)"},toggleSideChat:{label:"Toggle Side Chat",desc:"Open or close the /btw side chat"},toggleSidebar:{label:"Toggle Sidebar",desc:"Collapse or expand the session sidebar"},openFolder:{label:"Open Folder",desc:"Add a workspace folder with the native picker"},openInDefaultApp:{label:"Open in App",desc:"Open the workspace in your default editor/terminal"},openSettings:{label:"Open Settings",desc:"Show or hide the settings dialog"},toggleTerminal:{label:"Toggle Terminal",desc:"Show or hide the bottom terminal panel"},openDiffTab:{label:"Open Changes",desc:"Open or activate the workspace changes tab"},sidebarTabOpen:{label:"Open Tab",desc:"Switch to the Open list in the sidebar"},sidebarTabDone:{label:"Done Tab",desc:"Switch to the Done list in the sidebar"},sidebarTabWorkspaces:{label:"Workspaces Tab",desc:"Switch to the workspace directory in the sidebar"},selectPrevSibling:{label:"Previous Item",desc:"Select the previous chat / workspace in the current tab"},selectNextSibling:{label:"Next Item",desc:"Select the next chat / workspace in the current tab"},send:{label:"Send Message",desc:"Send the composer input"},newline:{label:"Newline",desc:"Insert a newline in the composer"}},searchPlaceholder:"Search shortcuts",unassigned:"Unassigned",unassign:"Unassign shortcut",edit:"Edit shortcut",reset:"Reset to default",resetAll:"Reset all to defaults",recording:"Press the new shortcut…",invalid:"This key combination can’t be used as a shortcut",notGlobal:"This key combination can’t be registered as a system-wide shortcut",globalTaken:"This shortcut is already taken by the system or another app",reserved:"Reserved by the system menu",reservedSteer:"Reserved for steer (Ctrl/Cmd+S)",reservedFind:"Reserved for transcript find (Ctrl/Cmd+F)",conflict:"Already used by “{action}”",customBadge:"Custom"},ble={panelAria:"Terminal",toolbarAria:"Terminal tabs",resizeAria:"Resize terminal panel height",toggle:"Toggle terminal",open:"Open terminal",close:"Close terminal",newTab:"New terminal",closeTab:"Close terminal",restartTab:"Restart terminal",collapse:"Collapse terminal panel",empty:"No terminal yet — click to start one",processExited:"[process exited]",processExitedWithCode:"[process exited with code {code}]"},wle={tabs:{diff:"Changes",file:"File",turnDiff:"Turn diff",compaction:"Compaction summary",agent:"Subagent",term:"Terminal"},newTab:"New tab",closeTab:"Close tab",expand:"Expand panel",collapse:"Restore panel",hide:"Close right panel",openPanel:"Open right panel",launcherAria:"Quick open"},Cle={title:"PR Preview",intro:"Build a pull request or branch of this repo in an isolated worktree and open its UI in a separate window. The first build can take a few minutes.",prLabel:"Preview target",customRefPlaceholder:"PR number, branch, tag, or commit SHA",invalidRef:"Enter a valid branch name, tag, or commit SHA",start:"Start preview",cleanup:"Clean up preview cache",cleanupConfirm:"Delete all cached previews except the one currently being previewed? They will be rebuilt on demand next time.",cleanupDone:"Removed {count} cached preview(s)",fetching:"Fetching {pr}…",installing:"Installing dependencies…",building:"Building renderer…",activeText:"Previewing {pr}",stop:"Exit preview",rebuild:"Fetch & rebuild",errorTitle:"Preview failed",retry:"Retry",stageFetch:"fetch the code",stageInstall:"install dependencies",stageBuild:"build the renderer",stageFailed:"Failed to {stage}",stageHung:"Building the preview hung while trying to {stage} (no output for 5 minutes, killed — check the network/proxy)"},Sle={title:"Server token required",hint:"This server is protected. Enter the bearer token printed when the server started (or the password set via {env}).",tokenPlaceholder:"Token",connect:"Connect",connecting:"Connecting…"},xle={common:Uae,app:Wae,sidebar:Qae,admin:Vae,workspace:Gae,conversation:qae,status:Kae,composer:Zae,login:Yae,providers:Jae,model:Xae,sessions:ele,approval:tle,question:nle,tasks:ile,thinking:ole,diff:sle,fileTree:rle,filePreview:ale,mention:lle,warnings:ule,commands:cle,tools:dle,layout:fle,mobile:hle,theme:ple,onboarding:mle,settings:gle,header:vle,sideChat:Ale,selection:yle,shortcuts:kle,terminal:ble,panel:wle,prPreview:Cle,serverAuth:Sle},_le={confirm:"确认",cancel:"取消",close:"关闭",dismiss:"关闭",loading:"加载中",copy:"复制",errorBoundaryTitle:"出错了",errorBoundaryRetry:"重试",asyncLoadFailed:"加载失败,请关闭后重试"},Ele={connecting:"连接中…",connectingStageAuth:"正在检查登录状态…",connectingStageServer:"正在连接服务器…",connectingStageConfig:"正在加载配置…",connectingStageSessions:"正在加载会话列表…",connectingStageSession:"正在打开会话…",connectingRetrySuffix:"(第 {n} 次重试)",connectingIssueNetworkTitle:"无法连接到 Kimi 服务器",connectingIssueNetworkMessage:"请检查网络连接,确认服务器仍在运行",connectingIssueTimeoutTitle:"Kimi 服务器响应超时",connectingIssueTimeoutMessage:"仍在自动重试,请稍候",connectingIssueApiTitle:"Kimi 服务器返回错误",connectingIssueUnknownTitle:"连接出现问题",internalBuildBanner:"仅供内部测试",menuFile:"文件",menuEdit:"编辑",menuView:"视图",menuHelp:"帮助",applicationMenu:"应用菜单"},Ile={workspaceMeta:"工作空间 · {branch}",sessionsHeader:"会话",workspaces:"工作区",viewSwitcher:"列表管理",viewGroup:"视图",viewFlat:"平铺列表",viewGrouped:"按工作区分组",sortGroup:"排序",sortManual:"手动排序",sortRecent:"按最近活动",sessionAdmin:"会话管理",collapseAll:"折叠全部工作区",expandAll:"展开全部工作区",newSession:"新建会话",newChat:"新建会话",newWorkspace:"新建工作空间",dropToAddWorkspace:"松开鼠标添加工作区",emptyState:"还没有会话 · 点击 新建会话 开始",options:"选项",rename:"重命名",genTitle:"生成标题",genTitleUnavailable:"无法生成标题:需要登录 Kimi Code 托管账号,且会话中已有消息",setEmoji:"设置 Emoji…",sessionEmojiTitle:"选择 Emoji",removeEmoji:"移除 Emoji",randomEmoji:"随机",searchEmoji:"搜索 Emoji",recentEmojis:"最近使用",noEmojiResults:"没有匹配的 Emoji",emojiGroupFaces:"笑脸与人物",emojiGroupNature:"动物与自然",emojiGroupFood:"美食饮品",emojiGroupActivity:"活动与出行",emojiGroupObjects:"物品与工作",emojiGroupSymbols:"符号与状态",copyPath:"复制路径",copySessionId:"复制 Session ID",copied:"已复制 ✓",copyFailed:"复制失败",archive:"归档",archiveToastUndo:"撤销",archiveToastMid:"或到",archiveToastSettings:"设置",archiveToastTail:"查看已归档的会话",tabOpen:"进行中",tabDone:"已完成",tabWorkspaces:"工作空间",tagOpen:"进行中",tagDone:"已完成",complete:"完成",markDone:"标记为完成",reopen:"恢复进行中",noDoneSessions:"还没有已完成的会话",noOpenSessions:"还没有进行中的会话",completeToastLead:"已完成",reopenToastLead:"已恢复进行中",fork:"分叉会话",export:"导出会话",pin:"置顶",unpin:"取消置顶",lastActive:"最后更新:{time}",pinned:"置顶",collapsePinned:"折叠置顶区",expandPinned:"展开置顶区",resizePinnedAria:"调整置顶区高度",delete:"删除",deleteConfirmTitle:"删除会话",deleteConfirmMessage:"将永久删除「{title}」的全部对话记录,无法恢复。工作区里的文件和代码改动不受影响。",deleteConfirmButton:"永久删除",deleteToast:"会话已删除",removeWorkspace:"移除工作区",brand:"Kimi Code",signedIn:"已登录",signOut:"退出登录",notSignedIn:"未登录",signIn:"登录",defaultUserName:"Kimi 用户",upgrade:"升级",upgradeMembership:"会员升级",logoutConfirmTitle:"退出登录",logoutConfirmMessage:"确定要退出当前账号吗?",language:"语言",backendTitle:"后端 {backend} · {endpoint} — 点击切换",noSessions:"暂无对话",allPinned:"有 {count} 条对话被置顶",showMore:"展开更多",loadMore:"加载更多",showLess:"收起",loadingMore:"加载中…",collapseSidebar:"收起侧边栏",expandSidebar:"展开侧边栏",searchPlaceholder:"搜索会话或工作区",search:"搜索",searchHint:"↑↓ 选择 · ↵ 打开 · Esc 关闭",searchHintSelect:"选择",searchHintOpen:"打开",searchHintClose:"关闭",searchClear:"清除搜索",searchNoResults:"没有匹配的会话或工作区",searchEmpty:"暂无会话",update:"更新",updateAvailable:"发现新版本 v{version}",updateDownloadingButton:"下载中({percent}%)",updateReady:"v{version} 已就绪",updateDone:"重启并更新",updateFailed:"下载失败",updateRetry:"重试",updateDownloadNow:"下载并更新",updateSkip:"本次跳过",updateRestartNow:"立即重启",updateRestartLater:"下次启动",updateReleaseDate:"发布于 {date}",updateCurrentVersion:"当前版本 v{version}",updateWhatsNew:"更新内容",updateBackground:"后台下载",updateAutoDownload:"以后自动下载并安装更新",rcSelectDevice:"选择设备",rcCurrentDevice:"当前设备:{name}",rcConnectable:"可连接",rcUnavailable:"不可用",rcOnline:"在线",rcOffline:"离线",rcDevicesLoadFailed:"设备列表加载失败"},Mle={title:"会话管理",subtitle:"管理所有会话,把任务完成的会话标记完成。旧会话按更新时间筛选,即可批量清理。",back:"返回",filterWorkspace:"工作空间",filterStatus:"状态",filterTime:"更新时间",allWorkspaces:"全部工作空间",selectAll:"全选",searchWorkspace:"搜索工作空间",noWorkspaceMatch:"没有匹配的工作空间",removeTag:"移除 {name}",statusAll:"全部状态",statusOpen:"进行中",statusDone:"已完成",timeAll:"全部时间",timeDaysAgo:"{n} 天以前",query:"查询",reset:"重置",colStatus:"状态",colTitle:"会话名",colWorkspace:"工作空间",colPrompt:"最后一条 prompt",colUpdated:"最后更新",colCompleted:"完成时间",colActions:"操作",empty:"没有符合当前筛选条件的会话",loading:"加载中…",total:"共 {n} 条",pageSize:"{n} 条/页",prevPage:"上一页",nextPage:"下一页",selectPageAll:"全选本页",batchSelected:"已选 {n} 项",selectAllMatching:"选中当前条件下的全部 {total} 项",materializingAll:"正在选中…",allMatchingSelected:"已选中全部 {n} 项",clearSelection:"清除选择",markDone:"标记完成",reopen:"恢复进行中",markDoneCount:"标记完成({n})",reopenCount:"恢复进行中({n})",batchDoneToast:"已标记完成 {n} 个会话",batchReopenedToast:"已将 {n} 个会话恢复为进行中",batchFailedSuffix:",{n} 个失败",batchDoneFailedNotice:"{n} 个会话未能标记完成",batchReopenFailedNotice:"{n} 个会话未能恢复为进行中",undo:"撤销",open:"打开会话",rename:"重命名…",fork:"分叉会话",export:"导出",moreActions:"更多操作"},Tle={switcherTitle:"切换工作区",switchTooltip:"切换工作区",eyebrow:"工作区",branchLabel:"分支: {branch}",noBranch:"无分支",sessionCount:"{count} 个会话",allWorkspaces:"全部工作区",currentWorkspace:"仅当前工作区",addWorkspace:"添加工作区…",noWorkspace:"暂无工作区",deleteHasSessions:"工作区内还有会话,请先归档这些会话再删除",removeWorkspaceConfirm:"移除工作区「{name}」?",swarmEnableTitle:"启用 swarm 模式?",swarmEnableConfirm:"Agent 将并行运行多个子 agent。",goalStartTitle:"启动 goal?",goalStartConfirm:"「{objective}」——Agent 将自主执行。",scopeCurrent:"当前工作区",scopeAll:"全部工作区",newInGroup:"在此工作区新建会话",addTitle:"添加工作区",pathLabel:"路径",pathPlaceholder:"/项目的绝对路径",recentLabel:"最近的文件夹",add:"添加",cancel:"取消",addHint:"粘贴一个绝对路径,或从最近用过的文件夹中选择。",addFailed:"无法打开此文件夹,请检查路径后重试。",requiredTitle:"请先选择工作空间",requiredMessage:"发送消息前,需要先选择一个文件夹作为工作区。",openThisFolder:"打开此文件夹",up:"上一级",browsing:"加载中…",filterPlaceholder:"过滤子文件夹…",searchPlaceholder:"在此目录下模糊搜索…",searching:"搜索中…",pasteToggle:"直接输入绝对路径",noFilterMatch:"没有匹配「{q}」的子文件夹",noSubfolders:"此处没有子文件夹",browseHint:'点击文件夹进入,再点"打开此文件夹"将其添加为工作区。',attentionTitle:"{count} 项待处理",awaitingAnswer:"待回答",awaitingAnswerTitle:"有提问等待你回答",awaitingPermission:"待授权",awaitingPermissionTitle:"有操作等待你授权",aborted:"失败",abortedTitle:"此会话的上一轮对话因错误中断"},Ble={jumpToLatestAria:"跳到最新消息",backToBottom:"回到底部",toc:"对话目录",historyPrevious:"上一项",historyNext:"下一项",newMessages:"最新消息",loading:"加载中…",starting:"正在创建对话…",requesting:"请求中…",working:"工作中…",workingRetry:"模型请求失败,正在重试(第 {n}/{max} 次)…",emptyWorkspaceHint:"在 {name} 中发送",switchWorkspace:"切换工作区",recentSessions:"最近会话",viewMoreSessions:"查看更多",sessionAdminTooltip:"在会话管理页面查看并管理更多会话",addWorkspace:"添加工作区",moreWorkspaces:"更多工作区 ({count})",pickFolder:"选择文件夹…",compacting:"正在压缩上下文…",compactedPlain:"上下文已压缩",compactedAuto:"已自动压缩上下文",compactedTokens:"({before} → {after} tokens)",viewSummary:"查看摘要",undo:"撤销",undoTooltip:"撤回编辑",undoConfirm:"撤回到这条消息?",escUndoHintPre:"再按",escUndoHintPost:"撤销本条",undone:"已撤销,原文已放回输入框",turnInterrupted:"已手动终止",turnFailed:"模型请求失败,本轮对话已中断",turnFailedMaxSteps:"达到本轮步数上限,对话已中断",turnFailedResume:"继续",turnFailedResumeText:"继续",yesterday:"昨天",loadOlder:"加载更早的消息",loadingOlder:"正在加载更早的消息…",widenTable:"加宽表格",restoreTableWidth:"恢复默认宽度",wrapCode:"开启自动换行",unwrapCode:"关闭自动换行",showLineNumbers:"显示行号",hideLineNumbers:"隐藏行号",cron:{fired:"定时任务已触发",missed:"错过的定时提醒",job:"任务 {id}",oneShot:"单次",coalesced:"已合并 {n} 次触发",missedCount:"错过 {n} 次",finalDelivery:"最后一次投递",expand:"展开",collapse:"收起"},fold:{worked:"已工作 {duration}",workedUnknown:"工作过程"},turnFiles:{titleOne:"{number} 个文件已修改",titleOther:"{number} 个文件已修改",more:"还有 {number} 个文件",moreOne:"还有 1 个文件",showLess:"收起",diffUnavailable:"此文件的改动无法逐项展示",rebuilding:"正在加载本轮改动…",openFile:"打开文件"},goal:{continuation:"目标续跑"},notification:{sentBy:{task:"由后台发送(Bash)",subagent:"由后台发送(Agent)"},bodyLine:"{status}:{description}",reason:"原因:{reason}",userStopped:"已被用户终止",statusTitle:{completed:"已完成",failed:"失败",timed_out:"超时",killed:"已终止",lost:"丢失",info:"通知"},status:{completed:"完成",failed:"失败",timed_out:"超时",killed:"已终止",lost:"丢失",info:"信息"},groupTitle:"{n} 条通知",copyPath:"复制路径",copied:"已复制",rawPayload:"原始 payload",outputTruncated:"输出已截断,仅显示末尾",fields:{type:"类型",source:"来源",severity:"严重度"}},userMessage:{expand:"展开",collapse:"收起"},search:{placeholder:"搜索对话…",searching:"搜索中…",results:"{current}/{total} 条结果",resultsCapped:"{current}/{total}+ 条结果",noResults:"无结果",previous:"上一个匹配",next:"下一个匹配",close:"关闭搜索"}},Fle={connectionConnected:"已连接",connectionConnecting:"连接中…",connectionDisconnected:"未连接",ctxTooltip:"使用 {used} / {max} tokens ({pct}%)",modelLabel:"模型",permissionManual:"始终询问",permissionAuto:"完全自动",permissionYolo:"必要时询问",permissionManualDesc:"仅自动读取,其余操作逐一向你确认",permissionAutoDesc:"完全不打断,所有操作和判断自动完成",permissionYoloDesc:"自动完成常规修改和命令;高危操作、提问和计划仍会问你",planLabel:"计划",planOn:"开",planOff:"关",planTooltip:"切换计划模式(先调研再修改)",workModeDismiss:"退出模式",goalLabel:"目标",timeUnitHour:"小时",timeUnitMinute:"分",timeUnitSecond:"秒",planEmptyArmed:"计划模式已开启,智能体写出计划后会显示在这里",planEmptyIdle:"还没有计划——开启计划模式后,智能体写出的计划会显示在这里",swarmLabel:"Swarm",swarmDismiss:"关闭 Swarm",towerLabel:"Tower",towerDismiss:"关闭 Tower",modeOff:"未启用",goalPlaceholder:"让智能体完成什么目标?",planPlaceholder:"让智能体先规划什么?",goalStart:"开始",goalPause:"暂停",goalResume:"继续",goalCancel:"取消",goalCancelConfirm:"是否需要取消当前目标?取消后将无法恢复。",goalCancelConfirmYes:"是",goalCancelConfirmNo:"否",goalDoneWhen:"完成条件",goalStatusActive:"进行中",goalStatusPaused:"已暂停",goalStatusBlocked:"已阻塞",goalStatusComplete:"已完成",modeNotSupported:"暂不支持",thinkingLabel:"思考",thinkingTooltip:"切换思考模式",cacheNote:"提示:切换模型或思考程度会使已有的提示词缓存失效。建议新建会话,避免额外的 token 消耗。",starredModels:"收藏",moreModels:"更多模型…",statusPanelTitle:"会话状态",statusPanelClose:"关闭",statusModel:"模型",statusThinking:"思考强度",statusPermission:"权限",statusPlanMode:"计划模式",statusSwarmMode:"Swarm 模式",statusTowerMode:"Tower 模式",swarmOn:"开",swarmOff:"关",towerOn:"开",towerOff:"关",statusContext:"上下文",statusCost:"花费",statusContextValue:"{used} / {max} ({pct}%)",statusNone:"—",activityRunning:"运行中…",activityAwaitingApproval:"等待批准",activityAwaitingQuestion:"等待回答",interrupt:"中断",runningShort:"进行中"},Rle={inputLabel:"消息输入框",placeholder:"输入消息…",send:"发送 ↵",queueLabel:"队列",placeholderRunning:"输入会加入队列 · Ctrl+S 立即插入运行中的回合",placeholderRunningMobile:"输入会加入队列",starting:"正在发送…",queuePending:"{n} 个任务等待发送",queueSteer:"立即发送到当前回合",queueDragTitle:"拖拽排序",editQueued:"编辑(载入到输入框)",queuedAttachments:"附件 ×{n}",queuedHasImage:"包含 {n} 张图片 — 只能移除,不能编辑",attachmentImage:"图片",attachmentVideo:"视频",attachments:"附件",imagesAndVideos:"图片和视频",mentionNamed:"提及{name}",attachmentOpenUnsupported:"无法打开 {name}:暂不支持此文件类型",dropToAttach:"松开鼠标添加附件",remove:"移除",removeNamed:"移除{name}",mediaAttachments:"媒体栏",uploading:"准备中",uploadFailed:"准备失败",attachFile:"添加附件",addMenu:"添加",addFiles:"文件",addFilesDesc:"上传文件",addGoalDesc:"设定目标并持续推进",addPlanDesc:"启用计划模式",addSwarmDesc:"启用 swarm 模式",addTowerDesc:"启用 tower 模式",noCommands:"无匹配命令",slashSheetTitle:"命令",slashSearchPlaceholder:"搜索命令…",mentionSheetTitle:"提及",mentionSearchPlaceholder:"搜索附件、文件或技能…",addSlash:"命令",addSlashDesc:"内置命令或技能",addMention:"提及",addMentionDesc:"提及附件、项目文件或技能",interrupt:"中断",interruptTitle:"中断当前操作",expandTitle:"展开输入框进行多行编辑",collapseTitle:"收起输入框",emptyConversationTitle:"Kimi Code",emptyConversation:"还没有消息 —— 在下方输入开始对话",upgradeBanner:"升级你的 Kimi 账户来使用 Kimi Code",quickStartPlaceholder:"输入消息开始新对话…",thinkingSuffix:" · 思考",thinkingSuffixEffort:" · {level}",noArgCommand:"{cmd} 不接受任何参数"},Dle={title:"登录 Kimi Code",close:"关闭 (Esc)",regionCnTitle:"Kimi Code",regionCnHint:"使用 kimi.com 账号登录",regionOverseasTitle:"Kimi Code",regionOverseasHint:"使用 kimi.ai 账号登录",oauthTitle:"登录 Kimi 账号",oauthHint:"在浏览器中完成授权即可登录",starting:"正在启动登录流程…",openedHint:"请在浏览器中完成授权({time})",blockedTitle:"未能自动打开登录页",blockedHint:"浏览器拦截了自动打开,请点击下方按钮继续完成授权。",notOpened:"没有自动打开浏览器?",authorizeInBrowser:"在浏览器中登录",orDivider:"或者",fallbackPrefix:"换个设备?在浏览器打开 ",fallbackSuffix:" 输入设备码:",copy:"复制",copied:"已复制",copyLink:"复制链接",success:"已登录",successHint:"正在加载,稍后自动关闭…",expiredTitle:"设备码已过期",expiredHint:"请重新开始登录流程",deniedTitle:"登录已取消",retry:"重试",closeBtn:"关闭",failedTitle:"登录失败",errorHint:"请升级 kimi-code 后重试",pollErrorTitle:"连接已断开",pollErrorHint:"登录轮询连续失败,请检查 kimi-code 进程后重试",action:"登录",requiredTitle:"请先登录",requiredMessage:"登录 Kimi 账号并配置模型后,才能开始对话。",goToLogin:"去登录",upgradeRequiredTitle:"请升级会员",upgradeRequiredMessage:"当前为免费账户,升级会员后即可使用 Kimi 模型开始对话。",pickModelTitle:"请选择模型",pickModelMessage:"已有可用模型,选择一个默认模型后即可开始对话。",pickModelAction:"选择模型",configureModelsTitle:"请配置模型",configureModelsMessage:"账号已登录,但还没有可用模型。配置模型后即可开始对话。",configureModelsGenericMessage:"还没有可用模型。配置模型后即可开始对话。",configureModelsAction:"去配置",rcSubtitle:"远程控制会话",rcChecking:"正在检查登录状态…",rcLead:"远程控制功能需要登录后使用。使用 Kimi 账号登录即可继续。",rcSuccessHint:"正在跳转…",rcExpiredTitle:"授权已过期或被取消",rcDeniedTitle:"已取消授权",rcStartErrorTitle:"无法开始登录",rcSessionErrorTitle:"无法创建登录会话",rcConnectionErrorHint:"请检查网络连接后重试。",rcSuccessNoRedirect:"现在可以关闭本页了。",rcUnsupportedTitle:"请使用浏览器打开",rcUnsupportedHintWechat:"远程控制登录不支持微信内置浏览器,请在系统浏览器中打开本页完成登录。",rcUnsupportedHintLark:"远程控制登录不支持飞书内置浏览器,请在系统浏览器中打开本页完成登录。",rcOpenInBrowser:"在浏览器打开",rcOpenGuideIos:"点击右上角「···」,选择「在浏览器打开」或「Safari 打开」。",rcOpenGuideAndroid:"点击右上角「···」,选择「在浏览器打开」。"},Nle={title:"供应商管理",loading:"加载提供商中…",unavailable:"暂不支持提供商管理",empty:"暂无提供商",status:{connected:"已连接",error:"错误",unconfigured:"未配置"},keySet:"key 已设置",keyNotSet:"未设置 key",managedBadge:"OAuth",modelCount:"{count} 个模型",confirmDelete:"确认删除?",refresh:"刷新",delete:"删除",refreshTitle:"刷新 {type}",deleteTitle:"删除 {type}",loginKimi:"登录 Kimi",loginAnthropic:"登录 Anthropic",addProvider:"添加供应商",added:"已添加",enterApiKey:"填写 API Key",optional:"可选",apiKeyRequired:"API Key 不能为空",fieldId:"名称",fieldType:"API 协议",types:{kimi:"Kimi",openai:"OpenAI",openai_responses:"OpenAI Responses",anthropic:"Anthropic","google-genai":"Google GenAI",vertexai:"Vertex AI"},fieldApiKey:"API Key",apiKeyManaged:"OAuth 托管登录",apiKeySet:"已设置,输入以更换",showApiKey:"显示 API Key",hideApiKey:"隐藏 API Key",fieldBaseUrl:"Base URL",baseUrlPlaceholder:"https://api.example.com/v1",fieldModels:"模型",colModelId:"模型 ID",colContext:"上下文",colDisplayName:"显示名",modelIdPlaceholder:"kimi-k3",modelContextPlaceholder:"1048576",modelNamePlaceholder:"可选",noModels:"暂无模型",addModel:"添加模型",removeModel:"移除模型",fieldDefaultModel:"默认模型",save:"保存",saved:"已保存",deleteProvider:"删除供应商",deleteConfirm:"确认删除 {id} 及其 {count} 个模型?",deleteConfirmYes:"确认删除",managedHint:"托管供应商在账户页登录 / 登出",unsavedGuard:"有未保存的修改。",guardStay:"继续编辑",guardDiscard:"丢弃",add:"添加",catalog:{sourceCatalog:"从目录添加",sourceManual:"手动添加",sourceRegistry:"注册表",registryHint:"从 api.json 注册表导入供应商与模型;同一 URL 重复导入即为刷新",registryUrlLabel:"注册表 URL",registryImported:"已导入 {count} 个供应商",searchPlaceholder:"搜索供应商",loading:"加载目录中…",loadError:"目录加载失败,请检查网络后重试",retry:"重试",empty:"没有匹配的供应商",rejected:"不可导入",rejectReason:{"unknown-explicit-type":"协议不受支持","proprietary-sdk":"私有协议,无法导入","empty-base-url":"Base URL 为空","placeholder-base-url":"端点包含环境变量占位符"},backToList:"返回目录列表",willImport:"将从目录导入 {count} 个模型",overwriteWarning:"已存在同名供应商,导入将覆盖其配置与模型",importAction:"导入"},error:{idRequired:"名称不能为空",idInvalid:'名称需以字母或数字开头,只能包含字母、数字、"-"、"_" 和空格',apiKeyRequired:"API Key 不能为空",baseUrlRequired:"Base URL 不能为空",registryUrlRequired:"注册表 URL 不能为空",modelRequired:"模型 ID 不能为空",contextSizeRequired:"上下文长度不能为空",contextSizeInvalid:"上下文长度需为正整数"},hintClose:"关闭"},Lle={dialogLabel:"切换模型",title:"切换模型",close:"关闭 (Esc)",allTab:"全部",providerTabs:"模型提供商",searchPlaceholder:"搜索模型或提供商…",clearSearch:"清除搜索",loading:"加载模型中…",unavailable:"暂无可用模型列表",contextSuffix:"{size} ctx",capabilityImageInput:"图片输入",capabilityVideoInput:"视频输入",capabilityToolUse:"工具调用",capabilityThinking:"思考",capabilityAlwaysThinking:"始终思考",emptyNoModels:"暂无可用模型",emptyNoMatch:"无匹配模型",starTitle:"添加到收藏",unstarTitle:"取消收藏",hintNavigate:"导航",hintSelect:"选择",hintClose:"关闭"},Ple={justNow:"刚刚"},Ole={title:{shell:"运行命令?",diff:"应用修改?",file:"写入文件?",fileop:"文件操作?",url:"抓取 URL?",search:"搜索?",invocation:"调用?",todo:"更新 todo?",plan_review:"按这份 plan 开始实现?",generic:"批准操作?"},subagentBadge:"子 agent · {name}",danger:"危险: {detail}",searchQueryLabel:"查询",searchScope:"范围:{scope}",feedbackPlaceholder:"说明拒绝原因… (Enter 提交, Shift+Enter 换行, Esc 取消)",feedbackHint:"Enter 提交 · Shift+Enter 换行 · Esc 取消",approve:"批准",approveSession:"本会话内批准",reject:"拒绝",feedback:"反馈",feedbackSubmit:"提交并拒绝",feedbackCancel:"取消",approvePlan:"批准 plan",revise:"修改",rejectAndExit:"拒绝并退出",expandPlan:"放大",collapsePlan:"还原"},zle={back:"‹ 上一题",nextQuestion:"下一题 ›",otherDefault:"其他…",submit:"提交",dismiss:"放弃",minimize:"最小化",expand:"展开",hint:"↑↓ 选择 · Enter 确认"},$le={tag:"任务",summary:"{run} 运行中 · {done} 完成",copy:"复制",calling:"调用 {label}",fieldTask:"任务",fieldOutput:"输出",fieldProgress:"进度",fieldResult:"结果",moreLines:"…(还有 {count} 行)",copied:"已复制",stop:"停止",defaultDescription:"后台任务",dockTasks:"后台任务",dockBash:"后台 Bash",dockSubagent:"后台 Agent",dockTodos:"待办",todoProgressTitle:"当前进度",stateDone:"完成",stateFail:"失败",stateCancelled:"已取消",filterRecent:"最近",filterRunning:"进行中",filterDone:"已完成",filterAll:"全部",running:"运行中",closePanel:"关闭面板",openPanel:"在侧边栏打开",timingRunning:"运行中 · {time}",timingDone:"完成 · {time}",emptyTasks:"暂无后台任务",emptyRecent:"暂无最近任务",emptyRunning:"暂无运行中的任务",emptyDone:"暂无已完成的任务",emptyBash:"暂无后台 Bash 任务",emptySubagent:"暂无后台 Agent 任务",emptyTodo:"暂无待办事项",openTab:"查看全部后台任务",openDetail:"查看",toBackground:"转后台",collapse:"折叠",expand:"展开",transcriptLoadError:"无法加载这个子 Agent 的对话。",copyCommand:"复制命令",copyOutput:"复制输出",copyAll:"复制全部"},jle={panelTitle:"思考过程",streaming:"思考中…"},Hle={aheadTitle:"领先远程",behindTitle:"落后远程",fileCountOne:"{number} 个文件",fileCountOther:"{number} 个文件",empty:"无 git 改动",clean:"工作区干净,无改动",back:"返回",loading:"正在加载 diff…",noDiff:"该文件没有行级改动",emptyFile:"空文件",list:"列表",tree:"树形"},Ule={},Wle={empty:"选择左侧文件预览",loading:"加载中…",lineCount:"{count} 行",copy:"复制",copied:"已复制",copyPath:"复制路径",openInEditor:"打开",reveal:"显示",download:"下载",close:"关闭",moreActions:"更多操作",refresh:"刷新",htmlMode:"HTML 预览模式",metadata:"元数据",markdownMode:"Markdown 预览模式",preview:"预览",source:"源码",imageFit:"图片缩放",fit:"适应",actual:"原始",pdfNoPreview:"无法内嵌预览此 PDF,可以下载后查看",imageNoPreview:"图片文件 · {mime} · {size} · 暂不预览",binaryNoPreview:"无法预览此文件({mime} · {size}),可用其他应用打开",unknownType:"未知类型",copyCode:"复制代码",enlargeImage:"放大图片",errors:{emptyPath:"文件路径为空",unsupportedPath:"不支持预览 URL 或远程路径",outsideWorkspace:"只能预览当前 workspace 内的文件",isDirectory:"请选择具体文件,而不是目录",notFound:"文件不存在或已被移动",tooLarge:"文件过大,暂不支持预览",loadFailed:"无法读取这个文件"}},Qle={searching:"搜索中…",noMatch:"无匹配",files:"文件",skills:"技能",openSkill:"打开技能文件",copyPath:"复制路径",attachmentUploadFailed:"添加附件失败,删除该附件或重新拖入文件重试",attachmentUploadInterrupted:"添加附件中断,删除该附件或重新拖入文件重试",viewFullscreen:"全屏查看",mediaPreviewLoading:"预览加载中…",mediaPreviewUploading:"正在添加附件,完成后可预览",mediaPreviewUnavailable:"预览不可用",stateUploading:"准备中",stateUploaded:"待发送",stateUploadFailed:"准备失败"},Vle={dismiss:"关闭",errorLabel:"错误",noteLabel:"提示",agentWarningFallback:"agent 警告",unhandledEvent:"未处理的事件:{type}",agentError:{title:"模型请求失败",connection:"无法连接模型服务",auth:"模型认证失败",rateLimit:"模型请求被限流",overloaded:"模型服务过载",filtered:"响应被提供方过滤",api:"模型接口返回错误",contextOverflow:"上下文超出模型限制"},details:{cause:"底层原因",code:"错误码",connection:"连接状态",contentType:"响应类型",details:"服务端详情",duration:"耗时",endpoint:"请求地址",errorName:"错误类型",message:"错误信息",operation:"操作",phase:"失败阶段",request:"请求",requestId:"Request ID",responsePreview:"响应预览",sessionId:"Session ID",stack:"堆栈",status:"HTTP 状态",timeout:"超时设置",timestamp:"时间"},daemonApiTitle:"Kimi 服务器返回错误",daemonNetworkMessage:"Web 没有拿到 Kimi 服务器的响应。请确认它仍在运行,或刷新页面重试。",daemonNetworkTitle:"无法连接到 Kimi 服务器",daemonTimeoutMessage:"Kimi 服务器在等待时限内没有响应。操作可能仍在后台执行,请稍后刷新确认结果,或重试。",daemonTimeoutTitle:"Kimi 服务器响应超时",diagnostics:"诊断信息",hideDetails:"收起详情",operationFailedMessage:"刚才的操作没有完成,请稍后重试。",operationFailedTitle:"操作失败",sendFailedTitle:"发送失败",sendFailedNoDefaultModelMessage:"默认模型未配置,请到设置中重新选择模型",sessionSnapshotMessage:"Web 没能加载当前会话内容。请确认 Kimi 服务器仍在运行,或刷新页面重试。",sessionSnapshotTitle:"无法加载当前会话内容",showDetails:"查看详情",copyDetails:"复制诊断信息",copied:"已复制",wsTitle:"实时连接出错",goal:{alreadyExists:"当前会话已有一个进行中的目标,请先取消它再创建新目标。",notFound:"没有找到可操作的目标,可能它已经结束或被取消。",statusInvalid:"当前目标状态不支持这个操作。",notResumable:"这个目标无法恢复(可能已取消或已完成)。",objectiveTooLong:"目标描述太长了,请精简后重试。"}},Gle={new:{desc:"创建新会话"},clear:{desc:"清空并新建会话"},login:{desc:"在浏览器中登录 Kimi"},plan:{desc:"切换计划模式 开/关"},swarm:{desc:"切换 swarm 模式;/swarm <任务> 直接在 swarm 下执行"},tower:{desc:"切换 tower 模式;/tower 以指定 base 分支开启"},goal:{desc:"创建/控制目标:/goal <目标>、/goal pause{'|'}resume{'|'}cancel"},btw:{desc:"侧边聊天:/btw <问题> 向 fork 的侧边会话提问"},compact:{desc:"压缩会话历史"},fork:{desc:"把当前会话 fork 出一个新会话"},export:{desc:"将当前会话和排障日志下载为 ZIP 压缩包",noSession:"请先打开一个会话再导出。",started:"正在导出会话…",done:"会话导出完成。",tooLarge:"会话数据超过导出大小限制,可在终端用 CLI 导出:kimi export {sessionId} -o session.zip"},status:{desc:"查看会话状态"},undo:{desc:"撤销上一条消息"}},qle={label:{read:"读取",bash:"运行",edit:"编辑",write:"写入",grep:"搜索",glob:"查找",ls:"列目录",web_fetch:"抓取",search:"搜索",todo:"待办",task:"任务",swarm:"Swarm",ask_user:"提问",plan:"计划",goal_create:"启动目标",goal_get:"读取目标",goal_budget:"设置目标预算",goal_update:"更新目标",waitfor:"等待"},waitfor:{waitingAny:"等待任一后台任务",waitingTask:"等待 {id}",noTasks:"没有后台任务在运行",timedOut:"等待超时",stillRunning:"{count} 个仍在运行",moreFinished:"另有 {count} 个在等待期间完成",moreRunning:"还有 {count} 个"},swarm:{progress:"{done} / {total}",runningSub:"{count} 个进行中",doneSub:"完成 {completed} · 失败 {failed}",doneSubWithCancelled:"完成 {completed} · 失败 {failed} · 已取消 {cancelled}",phaseQueued:"排队",phaseWorking:"运行中",phaseSuspended:"暂停",phaseCompleted:"完成",phaseFailed:"失败",phaseCancelled:"已取消",waiting:"等待子任务加入…"},chip:{lines:"{count} 行",results:"{count} 结果",files:"{count} 个文件",edited:"已编辑",created:"已创建",todos:"{count} 项"},disclosure:{expand:"展开详情",collapse:"收起详情"},agent:{foreground:"前台",background:"后台",status:{running:"运行中",ok:"已完成",error:"失败",cancelled:"已取消"}},output:{waiting:"等待输出…",empty:"(无输出)",saved:"已保存的结果"},plan:{review:{pending:"待确认",approved:"已通过",rejected:"已拒绝",cancelled:"已取消"},selectedOption:"已选择",pathOnlyHint:"该计划未保存内联内容,可在侧边栏打开:",feedback:"反馈"},summary:{inScope:"{value} 在 {scope} 中"},goal:{objectiveWithCriterion:"{objective} · {criterion}",status:"状态:{status}",budget:"{value} {unit}",turns:"{value} 轮",tokens:"{value} token",milliseconds:"{value} 毫秒",seconds:"{value} 秒",minutes:"{value} 分钟",hours:"{value} 小时"},group:{countOther:"执行了 {count} 次工具调用",typed:{read:{done:"读取了 {count} 个文件"},bash:{done:"运行了 {count} 条命令"},grep:{done:"搜索了 {count} 个模式"},search:{done:"网络搜索了 {count} 次"},glob:{done:"找了 {count} 次文件"},ls:{done:"列出了 {count} 个目录"},web_fetch:{done:"抓取了 {count} 个页面"},edit:{done:"编辑了 {count} 处"},write:{done:"写入了 {count} 个文件"}}},activity:{failedClause:"({count} 失败)",liveDonePrefix:"已",busy:"正在执行…",doing:{read:"正在读取 {subject}",bash:"正在运行 {subject}",grep:"正在搜索 {subject}",search:"正在搜索 {subject}",glob:"正在匹配 {subject}",ls:"正在列出 {subject}",web_fetch:"正在抓取 {subject}",edit:"正在编辑 {subject}",write:"正在写入 {subject}"}},ask:{dismissed:"已忽略",answer:"{count} 个回答",answers:"{count} 个回答",answered:"已回答",more:"(还有 {count} 个)",collected:"已收集回答",question:"{count} 个问题",questions:"{count} 个问题",freeInput:"(自由输入)",unanswered:"未作答"}},Kle={resizeHandleAria:"调整侧栏宽度",resizePreviewAria:"调整预览面板宽度",detailPanelAria:"详情面板"},Zle={openSwitcher:"切换会话 / 工作区",openSettings:"会话设置",settingsTitle:"设置",groupSession:"当前会话",groupApp:"应用偏好",groupAccount:"账号",sheetLabel:"面板",closeSheet:"关闭",tapToCycle:"点击切换",running:"运行中",idle:"空闲",sessionCount:"{n} 个会话",newSession:"新建会话",permManualSub:"仅自动读取,其余操作逐一向你确认",permAutoSub:"完全不打断,所有操作和判断自动完成",permYoloSub:"自动完成常规修改和命令;高危操作、提问和计划仍会问你",planModeSub:"计划模式",goalModeSub:"目标模式",swarmModeSub:"Swarm 模式",towerModeSub:"Tower 模式",archivedSessions:"已归档会话",archivedSessionsSub:"查看并恢复已归档会话",archivedBack:"返回",viewFlat:"平铺",viewGrouped:"按工作区"},Yle={colorSchemeLabel:"外观",light:"月之亮面",dark:"月之暗面",system:"跟随系统"},Jle={continue:"继续",back:"上一步",skip:"跳过",welcome:{title:"欢迎使用 Kimi Code",subtitle:"为专业开发者打造的 AI 编程工作台",languageLabel:"语言",themeLabel:"外观"},login:{title:"选择配置模型",subtitle:"选择驱动 Kimi Code 的模型服务,之后可在「设置」中更改。",kimiTitle:"登录 Kimi 账号",kimiHint:"使用 Kimi 会员权益,开箱即用",kimiCnTitle:"Kimi Code",kimiCnHint:"使用 kimi.com 账号登录",kimiOverseasTitle:"Kimi Code",kimiOverseasHint:"使用 kimi.ai 账号登录",customProviderTitle:"添加自定义供应商",customProviderHint:"使用自己的 API Key,接入 OpenAI 兼容等模型服务",loggedInTitle:"已登录 Kimi 账号",loggedInHint:"模型服务已就绪,可以开始使用",finish:"完成",skip:"跳过,稍后再说"}},Xle={title:"设置",internalTest:"内部测试",close:"关闭 (Esc)",tabs:{general:"通用",agent:"智能体与会话",account:"账户",providers:"供应商",advanced:"关于",archived:"已归档的会话",shortcuts:"快捷键",plugins:"插件",lab:"实验室"},lab:{sidebarTabs:"多标签页的会话列表",sidebarTabsHint:"侧边栏显示「进行中 / 已完成 / 工作空间」三个标签页"},plugins:{retry:"重试",builtIn:"内置",official:"官方",thirdParty:"第三方",installed:"已安装",install:"安装",update:"更新",remove:"移除",enabled:"启用",homepage:"主页",empty:"没有找到插件",hasErrors:"错误",customInstall:"安装自定义插件",customInstallPlaceholder:"https://… 或 /本地/目录",customInstallHint:"支持 https zip 链接、GitHub 仓库地址或本地目录路径。",extensionHintTitle:"还差一步:安装浏览器扩展",extensionGuide:"手动安装",dismissHint:"知道了",catalogUnavailable:"插件市场目录暂时不可达;已安装的插件仍可正常管理。",source:{"local-path":"本地","zip-url":"ZIP",github:"GitHub"},counts:{skill:"{n} 个技能",mcp:"{n} 个 MCP 服务",mcpEnabled:"启用 {n} 个",hook:"{n} 个钩子",command:"{n} 个命令"}},appearance:"外观",notifications:"通知",notifyEnabled:"系统通知",notifyEnabledHint:"回合完成、待回答或待审批时发送系统通知",notifySound:"通知提示音",notifySoundHint:"系统通知随附提示音",notifyDenied:"已在浏览器设置中被阻止",notifyTitle:"Kimi Code · 回合完成",notifyQuestionTitle:"Kimi Code · 待回答",notifyApprovalTitle:"Kimi Code · 等待审批",notifyFallback:"点击查看结果",notifyQuestionFallback:"有提问等待你回答",notifyApprovalFallback:"有工具等待你审批",account:"账户",signedIn:"已登录",signedOutHint:"登录后可查看账户和模型权益",planUsage:{title:"套餐用量",retry:"重试",loadFailed:"加载失败",empty:"暂无用量数据",weekLimit:"每周限额",genericLimit:"限额",hourLimit:"{n} 小时限额",dayLimit:"{n} 天限额",minuteLimit:"{n} 分钟限额",resetsIn:"{duration}后重置",resetDone:"已重置",durationDay:"{n} 天",durationHour:"{n} 小时",durationMinute:"{n} 分钟",durationSecond:"{n} 秒",usedPct:"已使用 {pct}%",boosterTitle:"加油包",boosterBalance:"余额",monthlyUsed:"本月已用",monthlyLimit:"每月上限",unlimited:"不限",freeTitle:"免费账户",freeHint:"升级会员后即可使用 Kimi 模型并查看套餐用量"},colorSchemeHint:"选择应用的明暗外观",appIcon:"程序坞图标",appIconHint:"选择程序坞中显示的图标",appIconDefault:"默认",appIconBlack:"黑色",uiFontSize:"字体大小",uiFontSizeHint:"调整界面和消息文字大小",vibrancy:"毛玻璃侧栏",vibrancyHint:"在侧栏使用 macOS 原生毛玻璃材质——如果半透明影响阅读可以关闭",languageHint:"选择界面显示语言",defaultOpenInApp:"默认打开应用",defaultOpenInAppHint:"从顶栏菜单打开文件和文件夹时默认使用的应用",openWith:"打开方式",agentDefaults:"Agent 默认值",saving:"保存中",defaultModel:"默认模型",defaultModelHint:"新会话会优先使用这个模型",noDefaultModel:"未设置默认模型",defaultPermission:"默认权限",defaultPermissionHint:"只影响之后新建的会话",defaultThinking:"默认开启思考",defaultThinkingHint:"新会话默认是否开启思考",defaultPlanMode:"默认计划模式",defaultPlanModeHint:"新会话默认进入计划模式",secondaryModelSection:"子智能体",secondaryModel:"子智能体模型",secondaryModelHint:"子智能体默认使用的模型与思考强度",secondaryModelEffort:"思考强度",noSecondaryModel:"未设置(跟随主模型)",secondaryModelEffortAuto:"模型默认",telemetry:"使用数据改进产品",telemetryHint:"开启后,我们会收集您的匿名交互数据(如点击、打断、功能使用等),用于改进产品体验。您可以随时关闭。",telemetryRestartHint:"更改后需重启服务生效。",credentialReady:"凭据已配置",credentialMissing:"缺少凭据",configUnavailable:"当前服务端没有返回 config,设置项暂不可用。",versionAndUpdates:"版本与更新",appVersion:"应用版本",appVersionHint:"当前应用的版本号和构建时间",checkUpdate:"检查更新",checkUpdateHint:"手动检查是否有新版本",checkUpdateBtn:"立即检查",updateChecking:"检查中…",updateCheckLatest:"已是最新版本",updateCheckAvailable:"发现新版本 {version},可从侧边栏的更新入口下载",updateCheckUnsupported:"当前构建不支持检查更新",updateCheckFailed:"检查失败,请稍后重试",updateCheckAvailableAuto:"发现新版本 {version},正在后台下载",updateCheckDownloaded:"新版本 {version} 已就绪,可从侧边栏的更新入口重启安装",autoDownloadUpdate:"自动下载更新",autoDownloadUpdateHint:"发现新版本时在后台自动下载,重启后完成安装",canaryUpdate:"更新 Canary",canaryGhMissing:"未检测到 GitHub CLI,请先安装(brew install gh)并登录",canaryGhUnauthenticated:"GitHub CLI 未登录,请先在终端运行 gh auth login",canaryTrigger:"重新打包 Canary",canaryTriggerHint:"触发 macOS arm64 构建流水线,产出新的 Canary 内测版",canaryTriggerBtn:"重新打包 Canary",canaryTriggerConfirm:"再点一次确认触发",canaryTriggerDone:"已触发,构建约需 20–30 分钟",canaryTriggerFailed:"触发失败:{error}",canaryViewWorkflow:"查看流水线",canaryImportStable:"从正式版导入界面设置…",canaryImportStableTitle:"从正式版导入界面设置",canaryImportStableHint:"把正式版的界面设置(置顶、外观等 localStorage 偏好)复制到 Canary 并覆盖当前设置(原设置自动备份为 leveldb.bak)。确认后 Canary 会重启完成导入;正式版需保持退出状态。",canaryImportStableBtn:"导入并重启",canaryImportStableRunning:"正式版(Kimi Code)正在运行——请先退出它,再重新导入。",canaryImportStableNoData:"没有找到正式版的界面设置数据。",canaryImportStableFailed:"导入失败:{error}",privacy:"数据与隐私",diagnostics:"诊断",agreements:"协议",userAgreement:"用户协议",privacyPolicy:"隐私协议",messageFolding:"消息折叠",turnFolding:"消息自动折叠",turnFoldingHint:"回合结束时自动折叠工作过程,仅展示总结",activityRunFolding:"工具调用汇总",activityRunFoldingHint:"回答过程中,连续的工具调用自动汇总为一行摘要",build:"构建",serverVersion:"服务端版本",serverAddress:"服务器地址",serverAddressHint:"当前连接的服务器地址",serverVersionHint:"当前连接服务的版本",copyServerVersion:"复制服务端版本",copyServerAddress:"复制服务器地址",copied:"已复制",exportLog:"故障排查日志",exportLogHint:"导出已采集的故障排查日志",logHint:"加 ?debug=1 开启采集",exportLogBtn:"导出日志",archivedTitle:"已归档的会话",archivedDesc:"查看已归档会话,确认其所属工作区路径、会话名称和归档时间,并可恢复到会话列表。",archivedSearch:"搜索已归档会话",archivedAllWorkspaces:"所有工作区",archivedSortLabel:"排序方式",archivedSortArchived:"归档时间",archivedSortCreated:"创建时间",archivedSortName:"按字母顺序",archivedRestore:"恢复",archivedEmpty:"还没有归档的会话",archivedNoMatch:"没有匹配的已归档会话",archivedSessionsCount:"{count} 个会话",archivedAt:"归档于 {time}",archivedLoadMore:"加载更多",archivedLoading:"加载中…",archivedLoadingAll:"正在加载全部归档会话…"},eue={openInEditor:"在编辑器中打开",openInEditorShort:"打开",openInApp:"用 {app} 打开",chooseOpenApp:"选择应用",copyAll:"复制全部对话为 Markdown",copyFinalSummary:"仅复制最终总结",copied:"已复制",lastUsed:"上次使用",copyPath:"复制路径",changed:"{n} 处改动",gitTooltip:"打开「文件 > 改动」",detached:"游离",openPr:"打开 Pull Request",prStatusOpen:"已打开",prStatusClosed:"已关闭",prStatusMerged:"已合并",prStatusDraft:"草稿",prStatusUnknown:"未知",options:"选项",copySessionId:"复制 Session ID",pinSession:"置顶",unpinSession:"取消置顶",renameSession:"重命名",forkSession:"分叉会话",archiveSession:"归档",markSessionDone:"标记为完成",reopenSession:"恢复进行中",exportSession:"导出会话",devBadge:"开发环境运行中"},tue={title:"侧边聊天",empty:"在侧边随手问一句 —— 它共享当前会话的上下文。",placeholder:"问问侧边聊天…",send:"发送"},nue={comment:"评论",addToChat:"添加到对话",commentPlaceholder:"写一句评论…",confirm:"确定",copyQuote:"复制引用",copyComment:"复制评论",quoteLabel:"引用"},iue={actions:{summonApp:{label:"显示应用窗口",desc:"从任意位置将应用窗口唤起到前台"},newSession:{label:"新建会话",desc:"在当前工作区开始一个新会话"},closeSessionView:{label:"关闭页面",desc:"关闭当前会话并回到新建会话页;在新建会话页再按一次关闭窗口"},searchSessions:{label:"搜索会话",desc:"打开会话搜索弹窗"},archiveSession:{label:"完成任务",desc:"立即完成当前会话(可在已完成列表找回)"},toggleSideChat:{label:"侧边聊天",desc:"打开或关闭 /btw 侧边聊天"},toggleSidebar:{label:"展开/收起侧边栏",desc:"收起或展开会话侧边栏"},openFolder:{label:"打开文件夹",desc:"通过系统原生选择器添加工作目录"},openInDefaultApp:{label:"在默认应用中打开",desc:"在默认编辑器或终端中打开当前工作目录"},openSettings:{label:"打开设置",desc:"显示或隐藏设置窗口"},toggleTerminal:{label:"切换终端",desc:"显示或隐藏底部终端面板"},openDiffTab:{label:"打开改动",desc:"打开或激活工作区改动标签页"},sidebarTabOpen:{label:"进行中标签页",desc:"切换到侧栏的进行中列表"},sidebarTabDone:{label:"已完成标签页",desc:"切换到侧栏的已完成列表"},sidebarTabWorkspaces:{label:"工作空间标签页",desc:"切换到侧栏的工作空间目录"},selectPrevSibling:{label:"上一条",desc:"在当前标签页中选中上一条会话 / 上一个工作空间"},selectNextSibling:{label:"下一条",desc:"在当前标签页中选中下一条会话 / 下一个工作空间"},send:{label:"发送消息",desc:"发送输入框中的内容"},newline:{label:"换行",desc:"在输入框中插入换行"}},searchPlaceholder:"搜索快捷键",unassigned:"未分配",unassign:"取消分配",edit:"编辑快捷键",reset:"恢复默认",resetAll:"全部恢复默认",recording:"按下新的快捷键…",invalid:"该按键组合不能用作快捷键",notGlobal:"该按键组合无法注册为系统级快捷键",globalTaken:"该快捷键已被系统或其他应用占用",reserved:"系统菜单已占用该快捷键",reservedSteer:"steer 固定快捷键(Ctrl/Cmd+S),不可占用",reservedFind:"对话搜索固定快捷键(Ctrl/Cmd+F),不可占用",conflict:"已被「{action}」占用",customBadge:"自定义"},oue={panelAria:"终端",toolbarAria:"终端标签页",resizeAria:"调整终端面板高度",toggle:"切换终端",open:"打开终端",close:"关闭终端",newTab:"新建终端",closeTab:"关闭终端",restartTab:"重启终端",collapse:"收起终端面板",empty:"还没有终端,点击新建一个",processExited:"[进程已退出]",processExitedWithCode:"[进程已退出,退出码 {code}]"},sue={tabs:{diff:"改动",file:"文件",turnDiff:"本轮改动",compaction:"压缩摘要",agent:"子 Agent",term:"终端"},newTab:"新建标签页",closeTab:"关闭标签页",expand:"展开面板",collapse:"恢复面板",hide:"关闭右侧面板",openPanel:"打开右侧面板",launcherAria:"快速打开"},rue={title:"PR 预览",intro:"在隔离 worktree 中构建本仓库某个 PR 或分支的代码,构建完成后在独立窗口中打开它的界面。首次构建可能需要几分钟。",prLabel:"预览目标",customRefPlaceholder:"PR 编号、分支名、tag 或 commit sha",invalidRef:"请输入有效的分支名、tag 或 commit sha",start:"开始预览",cleanup:"清理预览缓存",cleanupConfirm:"删除除当前预览外的全部预览缓存?下次预览时会按需重新构建。",cleanupDone:"已清理 {count} 个预览缓存",fetching:"正在拉取 {pr} 的代码…",installing:"正在安装依赖…",building:"正在构建渲染产物…",activeText:"正在预览 {pr}",stop:"退出预览",rebuild:"重新拉取构建",errorTitle:"预览失败",retry:"重试",stageFetch:"拉取代码",stageInstall:"安装依赖",stageBuild:"构建渲染产物",stageFailed:"{stage}失败",stageHung:"{stage}时卡住超过 5 分钟,已终止(请检查网络/代理)"},aue={title:"需要服务器 token",hint:"此服务器已开启访问保护。输入服务器启动时打印的 bearer token(或通过 {env} 设置的密码)。",tokenPlaceholder:"Token",connect:"连接",connecting:"连接中…"},lue={common:_le,app:Ele,sidebar:Ile,admin:Mle,workspace:Tle,conversation:Ble,status:Fle,composer:Rle,login:Dle,providers:Nle,model:Lle,sessions:Ple,approval:Ole,question:zle,tasks:$le,thinking:jle,diff:Hle,fileTree:Ule,filePreview:Wle,mention:Qle,warnings:Vle,commands:Gle,tools:qle,layout:Kle,mobile:Zle,theme:Yle,onboarding:Jle,settings:Xle,header:eue,sideChat:tue,selection:nue,shortcuts:iue,terminal:oue,panel:sue,prPreview:rue,serverAuth:aue},uue={en:xle,zh:lue},cue="kimi-locale";function yW(){let e=null;try{e=globalThis.localStorage?.getItem(cue)??null}catch{e=null}return e==="en"||e==="zh"?e:globalThis.navigator?.language?.toLowerCase().startsWith("zh")?"zh":"en"}function due(e){const t=e.locale??yW();return Rae({legacy:!1,locale:t,fallbackLocale:"en",messages:uue})}const kW=Symbol("KimiI18n"),fue={t:e=>e};function I1(){const e=qt(kW,null);if(e)return e;try{const t=Wt();return{t:(n,i)=>t.t(n,i),locale:t.locale.value}}catch{return fue}}const rS=V(0),Ob=P(()=>rS.value>0),aS=new Set;function bW(e){aS.add(e),rS.value+=1;let t=!1;return()=>{t||(t=!0,aS.delete(e)&&(rS.value-=1))}}function FF(e){if(!e)return!1;for(const t of aS)if(t===e||t.contains(e))return!0;return!1}function hue(e){return typeof e=="object"&&e!==null&&typeof e.contains=="function"}function rg(e,t){let n;$e([e,t],([i,o])=>{n?.(),n=void 0,i&&hue(o)&&(n=bW(o))},{flush:"post",immediate:!0}),Yd(()=>{n?.(),n=void 0})}function qc(e,t){const n=t??{h:"h",m:"m",s:"s"},i=Math.max(0,Math.floor(e/1e3));if(i<60)return i===0?"":`${i}${n.s}`;const o=Math.floor(i/60);if(o<60){const a=i%60;return a===0?`${o}${n.m}`:`${o}${n.m}${a}${n.s}`}const s=Math.floor(o/60),r=o%60;return r===0?`${s}${n.h}`:`${s}${n.h}${r}${n.m}`}const pue={multiedit:"multi_edit",multiedits:"multi_edit",shell:"bash",run:"bash",exec:"bash",ripgrep:"grep",rg:"grep",find:"glob",fetch:"web_fetch",webfetch:"web_fetch",url_fetch:"web_fetch",urlfetch:"web_fetch",list:"ls",listdir:"ls",list_dir:"ls",todowrite:"todo",todo_write:"todo",todoread:"todo",todolist:"todo",todo_list:"todo",agent:"task",subagent:"task",websearch:"search",web_search:"search",create_goal:"creategoal",get_goal:"getgoal",set_goal_budget:"setgoalbudget",update_goal:"updategoal",wait_for:"waitfor"};function Tr(e){const t=(e??"").trim().toLowerCase().replace(/[\s-]+/g,"_");return pue[t]??t}const mue={read:"tools.label.read",bash:"tools.label.bash",edit:"tools.label.edit",multi_edit:"tools.label.edit",write:"tools.label.write",grep:"tools.label.grep",glob:"tools.label.glob",ls:"tools.label.ls",web_fetch:"tools.label.web_fetch",search:"tools.label.search",todo:"tools.label.todo",task:"tools.label.task",agentswarm:"tools.label.swarm",askuserquestion:"tools.label.ask_user",exitplanmode:"tools.label.plan",creategoal:"tools.label.goal_create",getgoal:"tools.label.goal_get",setgoalbudget:"tools.label.goal_budget",updategoal:"tools.label.goal_update",waitfor:"tools.label.waitfor"};function wW(e,t){const n=mue[Tr(t)];return n?e(n):t}const CW=80;function gue(e,t=CW){const n=e.trim();return n.length>t?n.slice(0,t-1)+"…":n}function vue(e,t){const n=e.trim();return!!(n===""||n==="{}"||n==="[]"||n==="null"||t&&Object.keys(t).length===0)}function Aue(e){const t=e.trim();if(!t.startsWith("{"))return null;try{const n=JSON.parse(t);return n&&typeof n=="object"&&!Array.isArray(n)?n:null}catch{return null}}function mi(e){return typeof e=="string"&&e.length>0?e:void 0}function Sf(e){return typeof e=="number"&&Number.isFinite(e)?e:void 0}function yue(e){try{const t=new URL(e),n=t.pathname.split("/").filter(Boolean)[0];return n?`${t.host}/${n}`:t.host}catch{return e.replace(/^https?:\/\//,"")}}function Z3(e){return mi(e.path)??mi(e.file_path)??mi(e.filePath)??mi(e.filename)}const kue={active:"status.goalStatusActive",blocked:"status.goalStatusBlocked",complete:"status.goalStatusComplete"};function bue(e,t){const n=mi(t);if(!n)return;const i=kue[n];return i?e(i):n}function wue(e,t){const n=Sf(t.value),i=mi(t.unit);if(!(n===void 0||!i))switch(i){case"turns":return e("tools.goal.turns",{value:n});case"tokens":return e("tools.goal.tokens",{value:n});case"milliseconds":return e("tools.goal.milliseconds",{value:n});case"seconds":return e("tools.goal.seconds",{value:n});case"minutes":return e("tools.goal.minutes",{value:n});case"hours":return e("tools.goal.hours",{value:n});default:return e("tools.goal.budget",{value:n,unit:i})}}function j_(e,t,n,i=!1){const o=(s,r=CW)=>i?s.trim():gue(s,r);try{const s=Aue(n);if(!i&&vue(n,s))return"";const r=()=>o(n.replace(/^·\s*/,""));if(!s)return r();switch(Tr(t)){case"read":{const a=Z3(s);if(!a)return r();const l=Sf(s.offset)??Sf(s.line_start)??Sf(s.start_line),u=Sf(s.limit)??Sf(s.length),c=Sf(s.line_end)??Sf(s.end_line)??(l!==void 0&&u!==void 0?l+u:void 0);return o(l!==void 0&&c!==void 0?`${a}:${l}-${c}`:l!==void 0?`${a}:${l}`:a)}case"write":{const a=Z3(s);return a?o(`${a} ${e("tools.chip.created")}`):r()}case"edit":case"multi_edit":{const a=Z3(s);return a?o(a):r()}case"bash":{const a=mi(s.command)??mi(s.cmd)??mi(s.script);return a?a.trim():r()}case"grep":case"search":{const a=mi(s.pattern)??mi(s.query)??mi(s.regex),l=mi(s.path)??mi(s.glob)??mi(s.include);return a&&l?o(e("tools.summary.inScope",{value:a,scope:l})):a?o(a):r()}case"glob":{const a=mi(s.pattern)??mi(s.glob)??mi(s.query),l=mi(s.path)??mi(s.cwd);return a&&l?o(e("tools.summary.inScope",{value:a,scope:l})):a?o(a):mi(s.path)?o(mi(s.path)):r()}case"ls":{const a=mi(s.path)??mi(s.dir)??mi(s.directory)??mi(s.cwd);return a?o(a):r()}case"web_fetch":{const a=mi(s.url)??mi(s.uri);return a?o(yue(a)):r()}case"todo":case"task":{const a=mi(s.description)??mi(s.title)??mi(s.prompt)??mi(s.name)??mi(s.subagent_type);if(a)return o(a);const l=Array.isArray(s.todos)?s.todos:Array.isArray(s.items)?s.items:void 0;return l?o(e("tools.chip.todos",{count:l.length})):r()}case"creategoal":{if(i)return r();const a=mi(s.objective),l=mi(s.completionCriterion);return a&&l?o(e("tools.goal.objectiveWithCriterion",{objective:a,criterion:l})):a?o(a):r()}case"getgoal":return i?r():"";case"setgoalbudget":{if(i)return r();const a=wue(e,s);return a?o(a):r()}case"updategoal":{if(i)return r();const a=bue(e,s.status);return a?o(e("tools.goal.status",{status:a})):r()}default:return r()}}catch{return n}}function Cue(e,t){try{switch(Tr(t.name)){case"bash":return t.timing?t.timing:"";case"read":{if(t.output&&t.output.length>0){const n=t.output.length;return e("tools.chip.lines",{count:n})}return""}case"edit":case"multi_edit":case"write":{if(t.output){for(const i of t.output){const o=/\+(\d+)/.exec(i);if(o){let s=null;for(const r of i.slice(o.index+o[0].length).matchAll(/[-−](\d+)/g))s=r;if(s)return`+${o[1]} −${s[1]}`}}const n=t.output.find(i=>/\d+/.test(i));if(n){const i=n.match(/\+(\d+)/),o=n.match(/[-−](\d+)/);if(i||o)return`${i?`+${i[1]}`:""} ${o?`−${o[1]}`:""}`.trim()}if(t.status!=="error")return e("tools.chip.edited")}return""}case"grep":case"search":return t.output&&t.output.length>0?e("tools.chip.results",{count:t.output.length}):"";default:return""}}catch{return""}}const SW=new Set(["read","bash","grep","search","glob","ls","web_fetch","edit","write"]);function xW(e){const t=Tr(e);return t==="multi_edit"?"edit":t}function _W(e){const t=[],n=new Map;for(const i of e){if(i.kind==="thinking")continue;const o=xW(i.tool.name);let s=n.get(o);s||(s={count:0,errors:0},n.set(o,s),t.push(o)),s.count++,i.tool.status==="error"&&s.errors++}return{order:t,byKind:n}}function EW(e,t,n){return SW.has(t)?e(`tools.group.typed.${t}.done`,{count:n}):e("tools.group.countOther",{count:n})}function IW(e,t){return{text:e("tools.activity.failedClause",{count:t}),tone:"danger"}}function MW(e){return e.map(t=>t.fragments.map(n=>n.text).join("")).join(" · ")}function Sue(e,t,n={}){const{order:i,byKind:o}=_W(t),s=[];let r=!1;for(const a of i){const l=o.get(a);if(!l)continue;const u=[{text:EW(e,a,l.count),tone:"normal"}];l.errors>0&&(r=!0,u.push(IW(e,l.errors))),s.push({fragments:u})}if(n.durationMs!==void 0){const a=qc(n.durationMs);a&&s.push({fragments:[{text:a,tone:"faint"}]})}return{clauses:s,plain:MW(s),hasError:r}}function xue(e,t){if(t.kind==="thinking")return{fragments:[{text:e("thinking.streaming"),tone:"normal"}]};const n=xW(t.tool.name);let i=j_(e,t.tool.name,t.tool.arg);if(n==="write"&&i){const s=e("tools.chip.created");i.endsWith(s)&&(i=i.slice(0,i.length-s.length).trimEnd())}return{fragments:[{text:i&&SW.has(n)?e(`tools.activity.doing.${n}`,{subject:i}):e("tools.activity.busy"),tone:"normal"}]}}function _ue(e,t,n){const i=t.filter(c=>c!==n&&!(c.kind==="tool"&&c.tool.status==="running")),{order:o,byKind:s}=_W(i),r=e("tools.activity.liveDonePrefix"),a=[];for(const c of o){const d=s.get(c);if(!d)continue;const f=[{text:`${r}${EW(e,c,d.count)}`,tone:"faint"}];d.errors>0&&f.push(IW(e,d.errors)),a.push({fragments:f})}const l=n===null?null:xue(e,n),u=l?[l,...a]:a;return{current:l,done:a,plain:MW(u)}}async function ls(e){const t=typeof navigator<"u"?navigator.clipboard:void 0;if(t&&typeof t.writeText=="function")try{return await t.writeText(e),!0}catch{}return Eue(e)}function Eue(e){if(typeof document>"u"||typeof document.execCommand!="function")return!1;const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.top="-9999px",t.style.left="-9999px",t.style.opacity="0",document.body.appendChild(t);let n=!1;try{t.focus(),t.select(),n=document.execCommand("copy")}catch{n=!1}finally{document.body.removeChild(t)}return n}const Iue={ts:"ts",tsx:"tsx",js:"js",jsx:"jsx",mjs:"js",cjs:"js",vue:"vue",svelte:"svelte",py:"py",rb:"rb",go:"go",rs:"rs",java:"java",kt:"kt",kts:"kts",scala:"scala",swift:"swift",c:"c",h:"c",cpp:"cpp",cc:"cpp",cxx:"cpp",hpp:"cpp",cs:"cs",php:"php",sh:"sh",bash:"bash",zsh:"zsh",fish:"fish",ps1:"ps1",bat:"bat",cmd:"bat",sql:"sql",graphql:"graphql",prisma:"prisma",html:"html",htm:"html",xml:"xml",svg:"xml",css:"css",scss:"scss",sass:"sass",less:"less",json:"json",jsonc:"jsonc",json5:"json5",yaml:"yaml",yml:"yml",toml:"toml",ini:"ini",md:"md",markdown:"markdown",mdx:"mdx",lua:"lua",r:"r",dart:"dart",zig:"zig",mk:"makefile",cmake:"cmake",diff:"diff",proto:"proto"},Mue={dockerfile:"dockerfile",makefile:"makefile","cmakelists.txt":"cmake"};function Tue(e){const t=e?.split(/[\\/]/).pop()?.toLowerCase()??"";if(!t)return;const n=Mue[t];if(n)return n;const i=t.lastIndexOf(".");if(!(i<=0))return Iue[t.slice(i+1)]}class Tc extends Error{code;requestId;details;timestamp;durationMs;constructor(t){super(t.msg),this.name="DaemonApiError",this.code=t.code,this.requestId=t.requestId,this.details=t.details,this.timestamp=t.timestamp,this.durationMs=t.durationMs}}class vl extends Error{cause;method;path;url;requestId;phase;timeoutMs;status;statusText;contentType;bodyPreview;timestamp;durationMs;constructor(t){super(t.message),this.name="DaemonNetworkError",this.cause=t.cause,this.method=t.method,this.path=t.path,this.url=t.url,this.requestId=t.requestId,this.phase=t.phase,this.timeoutMs=t.timeoutMs,this.status=t.status,this.statusText=t.statusText,this.contentType=t.contentType,this.bodyPreview=t.bodyPreview,this.timestamp=t.timestamp,this.durationMs=t.durationMs}}class zb extends Error{size;limit;constructor(t){super(`file too large to preview: ${t.size} bytes (limit ${t.limit})`),this.name="FileTooLargeError",this.size=t.size,this.limit=t.limit}}function ci(e){return e instanceof Tc||typeof e=="object"&&e!==null&&e.name==="DaemonApiError"&&typeof e.code=="number"}function W2(e){return e instanceof vl||typeof e=="object"&&e!==null&&e.name==="DaemonNetworkError"&&typeof e.method=="string"&&typeof e.path=="string"}function TW(e){return W2(e)&&typeof e.cause=="object"&&e.cause!==null&&e.cause.name==="TimeoutError"}function Bue(e){return e instanceof zb||typeof e=="object"&&e!==null&&e.name==="FileTooLargeError"&&typeof e.limit=="number"}const Fue=41301,Rue=40922;function RF(e){return ci(e)&&e.code===Rue}function Due(e){const t=(e instanceof Error?e.message:String(e)).slice(0,140);return TW(e)?{kind:"timeout",message:t}:W2(e)?{kind:"network",message:t}:ci(e)?{kind:"api",message:t}:{kind:"unknown",message:t}}const Nue="kimi_desktop",Lue="platform",DF="kimi-desktop",NF="kimi-desktop-platform";function Pue(){let e=!1,t=null;try{const n=new URLSearchParams(window.location.search);n.has(Nue)?(sessionStorage.setItem(DF,"1"),e=!0):e=e||sessionStorage.getItem(DF)==="1";const i=n.get(Lue);i?(sessionStorage.setItem(NF,i),t=i):t=sessionStorage.getItem(NF)}catch{}return{isDesktop:e,platform:t}}const lS=Pue(),M1=lS.isDesktop,Kf=lS.isDesktop&&lS.platform==="darwin",Oue=["faces","nature","food","activity","objects","symbols"],zue=[["😀","faces","grinning smile happy 笑 开心"],["😄","faces","smile happy joy 笑 开心 高兴"],["😁","faces","grin beaming 咧嘴笑 开心"],["😂","faces","joy laugh tears 笑哭 爆笑"],["🤣","faces","rofl laugh rolling 笑翻 爆笑"],["😊","faces","blush shy happy 微笑 害羞"],["😉","faces","wink 眨眼"],["😍","faces","heart eyes love 爱心眼 喜欢 爱"],["🥰","faces","smiling hearts love 爱心 喜欢"],["😘","faces","kiss 飞吻 亲亲"],["😋","faces","yum tongue 好吃 馋"],["🤪","faces","zany crazy 鬼脸 疯"],["🤔","faces","thinking hmm consider 思考 想"],["🤨","faces","skeptical eyebrow 怀疑 挑眉"],["😐","faces","neutral meh 面无表情 无语"],["😑","faces","expressionless 面无表情 无语"],["🙄","faces","eye roll 翻白眼 无语"],["😶","faces","no mouth silent 无言 沉默"],["🫡","faces","salute 敬礼 收到"],["🤫","faces","shush quiet 嘘 安静"],["🤭","faces","oops giggle 捂嘴 偷笑"],["😴","faces","sleeping sleepy 睡觉 困"],["😪","faces","sleepy tired 困 疲惫"],["😷","faces","mask sick 口罩 生病"],["🤒","faces","sick fever 生病 发烧"],["🤕","faces","hurt bandage 受伤"],["🤢","faces","nauseated 恶心"],["🤯","faces","mind blown explode 震惊 爆炸"],["🥳","faces","party celebrate 庆祝 派对"],["🤩","faces","star struck 星星眼 激动"],["😎","faces","cool sunglasses 酷 墨镜"],["🥸","faces","disguise 伪装 假扮"],["🤓","faces","nerd geek 书呆子 学霸"],["😢","faces","cry sad 哭 难过"],["😭","faces","sob cry loudly 大哭 痛哭"],["😤","faces","triumph huff 哼 生气"],["😡","faces","angry rage mad 生气 愤怒"],["🤬","faces","swearing cursing 骂人 爆粗"],["😱","faces","scream fear 尖叫 害怕"],["😨","faces","fearful 害怕 恐惧"],["🥵","faces","hot heat 热 出汗"],["🥶","faces","cold freezing 冷 冻"],["🥴","faces","woozy drunk 晕 醉"],["😇","faces","angel innocent 天使 无辜"],["🙃","faces","upside down silly 倒脸 哭笑不得"],["💀","faces","skull dead 骷髅 笑死"],["👻","faces","ghost 鬼 幽灵"],["👍","faces","thumbs up like good 赞 好"],["👎","faces","thumbs down dislike 踩 差"],["👏","faces","clap applause 鼓掌 厉害"],["🙌","faces","raise hands celebrate 举手 庆祝"],["🙏","faces","pray thanks please 拜托 感谢 祈祷"],["💪","faces","muscle strong flex 加油 强壮 肌肉"],["👀","faces","eyes look watch 看 围观 眼睛"],["🤝","faces","handshake deal 握手 合作"],["✌️","faces","victory peace 胜利 耶"],["👋","faces","wave hello bye 挥手 你好 再见"],["🤞","faces","crossed fingers luck 祈祷 好运"],["👌","faces","ok okay 好的 可以"],["🫶","faces","heart hands love 比心 爱心"],["✍️","faces","writing hand 写字 记录"],["🧠","faces","brain smart 大脑 聪明"],["🦾","faces","mechanical arm 机械臂 力量"],["👤","faces","person user profile 个人 用户"],["👥","faces","people team group 团队 多人"],["🐶","nature","dog puppy 狗 小狗"],["🐱","nature","cat kitten 猫 小猫"],["🐭","nature","mouse rat 老鼠"],["🐹","nature","hamster 仓鼠"],["🐰","nature","rabbit bunny 兔子"],["🦊","nature","fox 狐狸"],["🐻","nature","bear 熊"],["🐼","nature","panda 熊猫"],["🐨","nature","koala 考拉"],["🐯","nature","tiger 老虎"],["🦁","nature","lion 狮子"],["🐮","nature","cow 牛"],["🐷","nature","pig 猪"],["🐸","nature","frog 青蛙"],["🐵","nature","monkey 猴子"],["🐔","nature","chicken 鸡"],["🐧","nature","penguin 企鹅"],["🐦","nature","bird 鸟"],["🐣","nature","chick hatching 小鸡 孵化"],["🦆","nature","duck 鸭子"],["🦉","nature","owl 猫头鹰"],["🐝","nature","bee 蜜蜂"],["🐛","nature","bug caterpillar 虫子 毛虫"],["🦋","nature","butterfly 蝴蝶"],["🐌","nature","snail slow 蜗牛 慢"],["🐢","nature","turtle slow 乌龟 慢"],["🐍","nature","snake 蛇"],["🐙","nature","octopus 章鱼"],["🦑","nature","squid 鱿鱼"],["🦐","nature","shrimp 虾"],["🦀","nature","crab 螃蟹"],["🐠","nature","tropical fish 鱼 热带鱼"],["🐳","nature","whale 鲸鱼"],["🦈","nature","shark 鲨鱼"],["🐊","nature","crocodile 鳄鱼"],["🦄","nature","unicorn 独角兽"],["🐴","nature","horse 马"],["🐑","nature","sheep 羊 绵羊"],["🐐","nature","goat 山羊"],["🦜","nature","parrot 鹦鹉"],["🌸","nature","blossom flower sakura 樱花 花"],["🌹","nature","rose flower 玫瑰 花"],["🌻","nature","sunflower 向日葵"],["🌷","nature","tulip 郁金香"],["🌱","nature","seedling sprout 发芽 幼苗"],["🌲","nature","tree evergreen 树 松树"],["🌳","nature","deciduous tree 树 大树"],["🌵","nature","cactus 仙人掌"],["🍀","nature","clover luck 四叶草 幸运"],["🍁","nature","maple leaf autumn 枫叶 秋天"],["🍄","nature","mushroom 蘑菇"],["🌈","nature","rainbow 彩虹"],["☀️","nature","sun sunny 太阳 晴"],["🌙","nature","moon crescent 月亮"],["⭐","nature","star 星星"],["🌟","nature","glowing star 星星 闪亮"],["☁️","nature","cloud 云"],["⛅","nature","partly cloudy 多云"],["🌧️","nature","rain rainy 下雨"],["❄️","nature","snowflake snow 雪 雪花"],["⛄","nature","snowman 雪人"],["⚡","nature","lightning bolt 闪电"],["🔥","nature","fire hot 火 燃"],["🌊","nature","wave ocean sea 海浪"],["🏔️","nature","mountain snow 雪山 山"],["☕","food","coffee 咖啡"],["🍵","food","tea 茶"],["🧋","food","bubble tea boba 奶茶"],["🥛","food","milk 牛奶"],["🍺","food","beer 啤酒"],["🍷","food","wine 红酒"],["🥂","food","champagne cheers 香槟 干杯"],["🥤","food","cup straw soda 饮料 可乐"],["🧃","food","juice box 果汁"],["🍎","food","apple 苹果"],["🍊","food","orange tangerine 橙子 橘子"],["🍋","food","lemon 柠檬"],["🍉","food","watermelon 西瓜"],["🍓","food","strawberry 草莓"],["🍑","food","peach 桃子"],["🥭","food","mango 芒果"],["🍍","food","pineapple 菠萝"],["🥝","food","kiwi 猕猴桃"],["🍇","food","grapes 葡萄"],["🍒","food","cherries 樱桃"],["🥑","food","avocado 牛油果"],["🥦","food","broccoli 西兰花"],["🌽","food","corn 玉米"],["🌶️","food","hot pepper spicy 辣椒 辣"],["🍔","food","burger hamburger 汉堡"],["🍟","food","fries 薯条"],["🍕","food","pizza 披萨"],["🌭","food","hot dog 热狗"],["🥪","food","sandwich 三明治"],["🌮","food","taco 墨西哥卷"],["🍜","food","ramen noodles 拉面 面条"],["🍝","food","spaghetti pasta 意面"],["🍣","food","sushi 寿司"],["🍱","food","bento 便当"],["🥟","food","dumpling 饺子"],["🍚","food","rice 米饭"],["🍞","food","bread 面包"],["🥐","food","croissant 可颂 牛角包"],["🧀","food","cheese 奶酪 芝士"],["🍳","food","cooking egg 煎蛋 做饭"],["🍦","food","ice cream 冰淇淋"],["🍰","food","cake 蛋糕"],["🎂","food","birthday cake 生日蛋糕"],["🍫","food","chocolate 巧克力"],["🍩","food","donut doughnut 甜甜圈"],["🍪","food","cookie 饼干"],["🍭","food","lollipop 棒棒糖"],["⚽","activity","soccer football 足球"],["🏀","activity","basketball 篮球"],["🏈","activity","american football 橄榄球"],["⚾","activity","baseball 棒球"],["🎾","activity","tennis 网球"],["🏐","activity","volleyball 排球"],["🏓","activity","ping pong 乒乓球"],["🏸","activity","badminton 羽毛球"],["🥊","activity","boxing 拳击"],["⛳","activity","golf 高尔夫"],["🎣","activity","fishing 钓鱼"],["🏊","activity","swim 游泳"],["🏄","activity","surf 冲浪"],["🚴","activity","cycling 骑行"],["🏋️","activity","weightlifting gym 举重 健身"],["🧘","activity","yoga meditation 瑜伽 冥想"],["🎮","activity","video game controller 游戏 游戏机"],["🎲","activity","dice 骰子"],["🎯","activity","target bullseye 目标 靶心"],["🎳","activity","bowling 保龄球"],["🎰","activity","slot machine 老虎机"],["♟️","activity","chess 国际象棋 棋"],["🎸","activity","guitar 吉他"],["🎹","activity","piano keyboard 钢琴"],["🥁","activity","drum 鼓"],["🎤","activity","microphone sing 麦克风 唱歌"],["🎧","activity","headphones 耳机"],["🎬","activity","clapper movie 电影 拍摄"],["🎨","activity","art palette paint 画画 艺术"],["🎭","activity","theater masks 戏剧 面具"],["🎪","activity","circus 马戏团"],["🎡","activity","ferris wheel 摩天轮"],["✈️","activity","airplane travel flight 飞机 旅行"],["🚗","activity","car drive 汽车 车"],["🚕","activity","taxi 出租车"],["🚌","activity","bus 公交车"],["🚑","activity","ambulance 救护车"],["🚒","activity","fire engine 消防车"],["🚀","activity","rocket launch ship 火箭 发射"],["🛸","activity","ufo flying saucer 飞碟"],["🚲","activity","bicycle bike 自行车"],["🛴","activity","scooter 滑板车"],["🚄","activity","bullet train 高铁 动车"],["🚢","activity","ship 船 轮船"],["⛵","activity","sailboat 帆船"],["🏠","activity","house home 房子 家"],["🏢","activity","office building 公司 办公楼"],["🏥","activity","hospital 医院"],["🏫","activity","school 学校"],["🏖️","activity","beach vacation 海滩 度假"],["⛺","activity","camping tent 露营 帐篷"],["🌋","activity","volcano 火山"],["🗺️","activity","map world 地图"],["🧭","activity","compass 指南针"],["💻","objects","laptop computer 电脑 笔记本"],["🖥️","objects","desktop computer 台式机 电脑"],["⌨️","objects","keyboard 键盘"],["🖱️","objects","computer mouse 鼠标"],["📱","objects","phone mobile 手机"],["🔋","objects","battery 电池"],["🔌","objects","plug electric 插头"],["💾","objects","floppy save 软盘 保存"],["📀","objects","cd disc 光盘"],["🎥","objects","movie camera 摄像机"],["📷","objects","camera 相机"],["🔭","objects","telescope 望远镜"],["📡","objects","satellite antenna 卫星 天线"],["🌐","objects","globe web internet 网络 全球 互联网"],["🕯️","objects","candle 蜡烛"],["💡","objects","bulb idea light 灯泡 点子"],["🔦","objects","flashlight 手电筒"],["📁","objects","folder 文件夹"],["📂","objects","open folder 文件夹 打开"],["🗂️","objects","card index archive 归档 索引"],["📅","objects","calendar date 日历 日期"],["📌","objects","pin pushpin 图钉 置顶"],["📍","objects","round pin location 定位 位置"],["📎","objects","paperclip attachment 回形针 附件"],["✂️","objects","scissors cut 剪刀 剪切"],["📏","objects","ruler 尺子"],["📝","objects","memo note write 备忘 记录"],["✏️","objects","pencil edit write 铅笔 编辑"],["📄","objects","document page 文档 文件"],["📃","objects","page curl 文档 文件"],["📑","objects","bookmark tabs 标签页 文档"],["📚","objects","books 书 书籍"],["📖","objects","open book 打开的书 阅读"],["🔖","objects","bookmark 书签"],["🏷️","objects","label tag 标签"],["📊","objects","bar chart stats 图表 统计"],["📈","objects","chart up growth 上涨 增长"],["📉","objects","chart down 下跌 下降"],["🔍","objects","search magnifier 搜索 查找"],["🔎","objects","search magnifier right 搜索 查找"],["🔒","objects","lock locked 锁 锁定"],["🔓","objects","unlock open 解锁"],["🔑","objects","key 钥匙 密钥"],["🔧","objects","wrench tool 扳手 工具"],["🔨","objects","hammer 锤子"],["🛠️","objects","tools hammer wrench 工具 修理"],["🧰","objects","toolbox 工具箱 工具"],["🪛","objects","screwdriver 螺丝刀 工具"],["🔩","objects","nut and bolt screw 螺母 螺栓"],["🏗️","objects","building construction crane 施工 建造"],["⚙️","objects","gear settings 齿轮 设置"],["🧲","objects","magnet 磁铁"],["⚗️","objects","alembic 蒸馏器 实验"],["🧪","objects","test tube experiment 实验 试管"],["🔬","objects","microscope science 显微镜 科学"],["🤖","objects","robot bot 机器人"],["👾","objects","alien monster game 外星人 游戏"],["💣","objects","bomb 炸弹"],["🧨","objects","firecracker 爆竹"],["🗑️","objects","trash delete 垃圾桶 删除"],["🧹","objects","broom clean 扫帚 清理"],["🧻","objects","toilet paper 纸巾"],["🧽","objects","sponge 海绵"],["📦","objects","package box 包裹 箱子"],["✉️","objects","envelope mail 邮件 信封"],["📮","objects","mailbox postbox 邮箱"],["📧","objects","email mail 邮件"],["📥","objects","inbox tray receive 收件箱 接收"],["📤","objects","outbox tray send 发件箱 发送"],["📞","objects","telephone receiver call phone 电话 通话"],["💬","objects","speech balloon chat message bubble 聊天 对话 气泡 消息"],["💭","objects","thought balloon thinking 思考 想法 气泡"],["📣","objects","megaphone announcement 喇叭 公告"],["📢","objects","loudspeaker broadcast 广播 喇叭 通知"],["🚨","objects","police light alert emergency 警报 告警 紧急"],["🗳️","objects","ballot box vote 投票箱 投票"],["🔗","objects","link chain 链接 连接"],["🧩","objects","puzzle piece plugin 拼图 插件"],["🪄","objects","magic wand 魔法 魔杖"],["🛡️","objects","shield security 盾牌 安全"],["⚔️","objects","crossed swords 交叉剑 战斗"],["💳","objects","credit card 信用卡"],["💰","objects","money bag 钱袋 钱"],["🧾","objects","receipt 收据 小票"],["📿","objects","prayer beads 念珠"],["💍","objects","ring 戒指"],["👑","objects","crown 皇冠"],["🎩","objects","top hat 礼帽"],["🎒","objects","backpack 背包 书包"],["👓","objects","glasses 眼镜"],["🌂","objects","umbrella 雨伞"],["🕰️","objects","mantel clock 座钟"],["⌚","objects","watch 手表"],["⏱️","objects","stopwatch 秒表"],["🧯","objects","fire extinguisher 灭火器"],["🩹","objects","bandage patch fix 创可贴 补丁 修复"],["🎓","objects","graduation cap study learn 毕业 学习"],["🎫","objects","ticket 票 门票 工单"],["✅","symbols","check done complete 完成 对勾"],["✔️","symbols","checkmark correct 对勾 正确"],["❌","symbols","cross x wrong 错误 叉"],["❓","symbols","question help 问题 问号"],["❔","symbols","white question 问题 问号"],["❗","symbols","exclamation important 感叹号 重要"],["❕","symbols","white exclamation 感叹号"],["⚠️","symbols","warning caution 警告 注意"],["🚧","symbols","construction wip 施工 进行中"],["🚫","symbols","prohibited no 禁止"],["💥","symbols","boom explosion 爆炸"],["✨","symbols","sparkles shiny 闪亮 星星"],["🎉","symbols","tada party celebrate 庆祝 撒花"],["🎊","symbols","confetti party 庆祝 彩带"],["🏆","symbols","trophy champion 奖杯 冠军"],["🥇","symbols","gold medal first 金牌 第一"],["🥈","symbols","silver medal second 银牌 第二"],["🥉","symbols","bronze medal third 铜牌 第三"],["🎖️","symbols","military medal 勋章"],["🚩","symbols","red flag mark 红旗 标记"],["🏁","symbols","checkered flag finish 终点 完成"],["⏳","symbols","hourglass time waiting 沙漏 时间"],["⌛","symbols","hourglass done 沙漏 时间"],["🕐","symbols","clock one time 时钟 一点"],["⏰","symbols","alarm clock 闹钟"],["🔔","symbols","bell notification 铃铛 通知"],["🔕","symbols","bell slash mute 静音 免打扰"],["🕹️","symbols","joystick game 摇杆 游戏"],["🔴","symbols","red circle record 红圆 录制"],["🟢","symbols","green circle online 绿圆 在线"],["🟡","symbols","yellow circle 黄圆"],["🟠","symbols","orange circle 橙圆"],["🔵","symbols","blue circle 蓝圆"],["🟣","symbols","purple circle 紫圆"],["⚫","symbols","black circle 黑圆"],["⚪","symbols","white circle 白圆"],["🟥","symbols","red square 红方"],["🟩","symbols","green square 绿方"],["🟦","symbols","blue square 蓝方"],["🔺","symbols","red triangle up 三角 上"],["🔻","symbols","triangle down 三角 下"],["🔸","symbols","diamond orange 菱形"],["🔹","symbols","diamond blue 菱形"],["💠","symbols","diamond dot 菱形 花"],["🔶","symbols","diamond orange big 菱形"],["🔷","symbols","diamond blue big 菱形"],["▶️","symbols","play 播放"],["⏸️","symbols","pause 暂停"],["⏹️","symbols","stop 停止"],["⏺️","symbols","record 录制"],["⏩","symbols","fast forward 快进"],["⏪","symbols","rewind 快退"],["🔀","symbols","shuffle 随机 打乱"],["🔁","symbols","repeat 重复 循环"],["🔂","symbols","repeat one 单曲循环"],["🔄","symbols","refresh sync 刷新 同步"],["🔃","symbols","reload 重载"],["➕","symbols","plus add 加 新增"],["➖","symbols","minus 减"],["➗","symbols","divide 除"],["✖️","symbols","multiply 乘"],["💲","symbols","dollar money 美元 钱"],["™️","symbols","trademark 商标"],["©️","symbols","copyright 版权"],["®️","symbols","registered 注册商标"],["↔️","symbols","left right arrow 左右箭头"],["⬆️","symbols","up arrow 上箭头"],["⬇️","symbols","down arrow 下箭头"],["➡️","symbols","right arrow 右箭头"],["⬅️","symbols","left arrow 左箭头"],["🔙","symbols","back 返回"],["🔜","symbols","soon 很快"],["🔝","symbols","top 置顶 顶部"],["💤","symbols","zzz sleep 睡觉"],["🆕","symbols","new 新 新品"],["🆒","symbols","cool 酷"],["🆓","symbols","free 免费"],["🆗","symbols","ok 可以"],["🆙","symbols","up 提升"],["🆚","symbols","vs versus 对比"],["♾️","symbols","infinity 无限"],["💯","symbols","hundred perfect 满分 一百"],["💢","symbols","anger 生气"],["♨️","symbols","hot springs 温泉"],["🚸","symbols","children crossing 注意儿童"],["🔞","symbols","no one under eighteen 十八禁"],["📵","symbols","no mobile phones 禁止手机"],["❤️","symbols","red heart love 红心 爱"],["🧡","symbols","orange heart 橙心"],["💛","symbols","yellow heart 黄心"],["💚","symbols","green heart 绿心"],["💙","symbols","blue heart 蓝心"],["💜","symbols","purple heart 紫心"],["🖤","symbols","black heart 黑心"],["🤍","symbols","white heart 白心"],["🤎","symbols","brown heart 棕心"],["💔","symbols","broken heart 心碎"],["💕","symbols","two hearts 双心 爱心"],["💖","symbols","sparkling heart 闪亮的心"],["💗","symbols","growing heart 心动"]],BW=zue.map(([e,t,n])=>({emoji:e,group:t,keywords:n}));function $ue(e,t=24){const n=e.trim().toLowerCase();if(!n)return[];const i=[];for(const o of BW)if((o.keywords.includes(n)||o.emoji===n)&&(i.push(o.emoji),i.length>=t))break;return i}const jue=8;function Hue(e,t,n=jue){return[t,...e.filter(i=>i!==t)].slice(0,n)}function FW(e,t){try{const n=new Date(e);if(Number.isNaN(n.getTime()))return e;const i=new Date,o=c=>String(c).padStart(2,"0"),s=`${o(n.getHours())}:${o(n.getMinutes())}`,r=n.getFullYear()===i.getFullYear(),a=n.getMonth()===i.getMonth(),l=n.getDate()===i.getDate();if(r&&a&&l)return s;const u=new Date(i);return u.setDate(i.getDate()-1),n.getFullYear()===u.getFullYear()&&n.getMonth()===u.getMonth()&&n.getDate()===u.getDate()?`${t} ${s}`:r?`${o(n.getMonth()+1)}-${o(n.getDate())} ${s}`:`${n.getFullYear()}-${o(n.getMonth()+1)}-${o(n.getDate())} ${s}`}catch{return e}}function Vd(e){if(e>=1024*1024)return`${LF(e/(1024*1024))}M`;if(e>=1024){const t=e/1024;return`${t>=100?Math.round(t):LF(t)}k`}return String(e)}function LF(e){const t=e.toFixed(1);return t.endsWith(".0")?t.slice(0,-2):t}function Uue(){return window.kimiDesktop}function RW(e,t,n){const i=n.length===0?void 0:n.length===1?n[0]:n;try{Uue()?.log?.(e,t,i)}catch{}}function Fl(e,...t){console.warn(e,...t),RW("warn",e,t)}function Bc(e,...t){console.error(e,...t),RW("error",e,t)}function Od(e){const t=e.split("/").filter(Boolean);return t.length>0?t[t.length-1]:e}const Wue=/^(?:[A-Za-z]:[\\/]|\\\\|\/\/)/;function Al(e){const t=e.replaceAll("\\","/"),n=Wue.test(t),i=t.replace(/\/+$/,"");return n?i.toLowerCase():i}function Que(e){const{workspaces:t,sessions:n,hiddenWorkspaceRoots:i,sessionsHasMoreByWorkspace:o}=e,s=new Set(i.map(Al)),r=new Map;for(const f of t){const h=Al(f.root);s.has(h)||r.has(h)||r.set(h,{...f})}for(const f of n){const h=f.cwd;if(!h)continue;const m=Al(h);s.has(m)||r.has(m)||r.set(m,{id:f.workspaceId??h,root:h,name:Od(h),sessionCount:0})}const a=new Map;for(const f of t){const h=Al(f.root);a.has(h)||a.set(h,f.id)}const l=new Map;for(const f of n){const h=a.get(Al(f.cwd))??f.workspaceId??f.cwd;l.set(h,(l.get(h)??0)+1)}const u=[];for(const f of t){const h=Al(f.root);!s.has(h)&&!u.includes(h)&&u.push(h)}const c=[...r.keys()].filter(f=>!u.includes(f));c.sort((f,h)=>r.get(f).root.localeCompare(r.get(h).root));const d=[];for(const f of[...u,...c]){const h=r.get(f),m=l.get(h.id)??l.get(h.root)??0,g=o[h.id]===!1?m:Math.max(h.sessionCount,m);d.push({...h,sessionCount:g})}return d}const Vue=new Set(["image/png","image/jpeg","image/gif","image/webp"]);function H_(e){const t=e.split(";",1)[0].trim().toLowerCase();return Vue.has(t==="image/jpg"?"image/jpeg":t)}function Gue(e,t){if(e===void 0||e.length===0)return;const n=t?.find(i=>i.id===e)??t?.find(i=>i.model===e);return n?.displayName||n?.model||(e.includes("/")?e.split("/").pop():e)}function que(e){if(!(e===void 0||e.length===0||e==="off"||e==="on"))return e}function Xg(e){if(e===void 0)return"toggle";const t=e.capabilities??[];return t.includes("always_thinking")?"always-on":t.includes("thinking")||e.adaptiveThinking===!0?"toggle":"unsupported"}function DW(e){return e?.supportEfforts??[]}function Kue(e){return e[Math.floor(e.length/2)]}function Zp(e){if(Xg(e)==="unsupported")return"off";const t=DW(e);return t.length>0?e?.defaultEffort??Kue(t):"on"}function e0(e){const t=DW(e),n=Xg(e);return t.length>0?n==="always-on"?[...t]:["off",...t]:n==="always-on"?["on"]:n==="unsupported"?["off"]:["on","off"]}function uh(e){return e.length===0?e:e.charAt(0).toUpperCase()+e.slice(1)}function Zue(e){return e!=="off"}function $b(e,t){return e0(e).includes(t)}function j4(e,t){return t==="off"?"off":t==="on"?Zp(e):t}function U_(e,t){return t??Zp(e)}function Yue(e){return e==="off"?{enabled:!1}:e==="on"?{enabled:!0}:{enabled:!0,effort:e}}function W_(e,t){if(!e||typeof e!="object")return;const{enabled:n,effort:i}=e;if(n===!1)return $b(t,"off")?"off":void 0;if(typeof i=="string"&&$b(t,i))return i}function PF(e,t,n,i){return!n||e===void 0?t:W_(i,e)??Zp(e)}let Jue=0;function k9(e,t){const n=++Jue;return e.pendingThinkingBySession[t]=n,n}function su(e,t,n){return n===void 0||e.pendingThinkingBySession[t]!==n?!1:(delete e.pendingThinkingBySession[t],!0)}function Q_(e,t,n){e.pendingThinkingBySession[t]===void 0&&(e.thinkingBySession[t]=n)}function NW(){if(!(typeof window>"u"))return window.kimiDesktop}function ik(){return typeof NW()?.getPathForFile=="function"}function H4(e){const t=NW()?.getPathForFile;if(typeof t!="function")return null;try{return t(e)}catch{return null}}function Y3(e){return H4(e)}function J3(e){return Array.from(e.dataTransfer?.items??[]).some(t=>t.kind==="file"&&t.type==="")}function uS(e,t=H4){const n=Array.from(e.dataTransfer?.items??[]);if(n.length===0){const a=Array.from(e.dataTransfer?.files??[]);return{files:a,folderPaths:[],items:a.map(l=>({kind:"file",file:l}))}}const i=[],o=[],s=[],r=new Set;for(const a of n){if(a.kind!=="file")continue;const l=a.getAsFile();if(l)if(a.webkitGetAsEntry()?.isDirectory===!0){const u=t(l);if(!u||r.has(u))continue;r.add(u),o.push(u),s.push({kind:"folder",path:u})}else i.push(l),s.push({kind:"file",file:l})}return{files:i,folderPaths:o,items:s}}function Xue(e,t=H4){return uS(e,t).folderPaths}function ece(e,t=H4){const n=c=>`${c.size}:${c.type}:${c.name}`,i=[],o=new Set,s=new Set,r=[],a=new Set,l=[];let u=!1;for(const c of Array.from(e.items??[])){if(c.kind!=="file")continue;const d=c.getAsFile();if(c.webkitGetAsEntry?.()?.isDirectory===!0){u=!0,d&&s.add(n(d));const h=d?t(d):null;if(!h||a.has(h))continue;a.add(h),r.push(h),l.push({kind:"folder",path:h});continue}if(!d)continue;const f=n(d);o.has(f)||(o.add(f),i.push(d),l.push({kind:"file",file:d}))}for(const c of Array.from(e.files??[])){const d=n(c);s.has(d)||o.has(d)||(o.add(d),i.push(c),l.push({kind:"file",file:c}))}return{files:i,folderPaths:r,hasFolders:u,items:l}}function LW(e,t,n){return e==="unsupported"?[{titleKey:n.titleKey,hintKey:n.hintKey,disabled:!1}]:t.map(i=>({...i,disabled:e==="pending"}))}function tce(e,t,n){return n?e.filter(i=>i.sessions.length>0||i.workspace.id===t):e}function*cS(e,t){const n=`<${t}`,i=``;let o=0;for(;o",r);if(a===-1)return;const l=e.indexOf(i,a+1);if(l===-1)return;o=l+i.length,yield{start:s,end:o,attributes:e.slice(r,a),content:e.slice(a+1,l)}}}function PW(e,t=/[\w-]/){const n={};let i=0;for(;i").replaceAll("&","&")}function oce(e){const t={};for(const[n,i]of Object.entries(PW(e,/[a-z_]/)))t[n]=ice(i);return t}function sce(e){const t={completed:0,failed:0,aborted:0};$F.lastIndex=0;let n;for(;(n=$F.exec(e))!==null;){const i=n[1];t[i]=Number(n[2])}return t}function rce(e,t){const n=oce(e);return{outcome:n.outcome??"completed",item:n.item,agentId:n.agent_id,mode:n.mode,state:n.state,body:t.trim()}}function ace(e){const t=[],n=[];let i=0;for(;i",o+9);if(s===-1)break;i=s+1,n.push(n.length===0?{attrs:e.slice(o+9,s),bodyStart:i}:null)}}return t}function lce(e){if(e==null)return null;const t=Array.isArray(e)?e.join(` -`):e;if(!t.includes(""))return null;const n=OF(t,"","")?.trim()??"",{completed:i,failed:o,aborted:s}=sce(n),r=OF(t,"","")?.trim(),a=ace(t),l=i+o+s;return{summary:n,completed:i,failed:o,aborted:s,total:l>0?l:a.length,subagents:a,resumeHint:r}}const uce=3,cce="Use TaskOutput with one of the task_id values above to read the full output.";function Cp(e,t){return new RegExp(`^${t}: (.+)$`,"m").exec(e)?.[1]}function dce(e,t){const n=Number(Cp(e,t)??0);return Number.isFinite(n)?n:0}function OW(e,t){return e.match(t)?.length??0}function jF(e,t,n){const i=new RegExp(`^\\[${t}\\]$`,"gm"),o=[];let s;for(;(s=i.exec(e))!==null;)s.index>=n&&o.push(s.index);return o}function HF(e,t){return t>=2&&e[t-1]===` -`&&e[t-2]===` -`}function UF(e,t,n){const i=e.slice(t+n.length+2),o=/^\[/m.exec(i);return(o===null?i:i.slice(0,o.index)).trim()}function fce(e){return e.endsWith(cce)}function hce(e){const t=Cp(e,"active_background_tasks");if(t===void 0)return!1;const n=Number(t);return Number.isFinite(n)?OW(e,/^task_id: /gm)===n:!1}function pce(e,t){return[...e.matchAll(/^description: (.+)$/gm)].map(i=>i[1]??"").slice(0,Math.min(uce,t))}function mce(e){if(e==null)return null;const t=Array.isArray(e)?e.join(` -`):e,n=/^\[/m.exec(t),i=n===null?t:t.slice(0,n.index),o=Cp(i,"wait_status");if(o!=="completed"&&o!=="timed_out"&&o!=="no_tasks")return null;const s=Number(Cp(i,"waited_ms")??0);let r,a=n?.index??t.length;o==="completed"&&n!==null&&t.slice(n.index).startsWith("[finished]")&&(r=UF(t,n.index,"finished"),a=n.index+10);let l=0,u=-1;for(const f of jF(t,"completed_during_wait",a)){if(!HF(t,f))continue;const h=UF(t,f,"completed_during_wait");fce(h)&&(l=OW(h,/^task_id: /gm),u=f)}let c=0,d=[];for(const f of jF(t,"still_running",a)){if(u>=0&&fc.replace(/\\/g,"/"),i=n(e);let o=n(t);o.length>1&&(o=o.replace(/\/+$/,""));const s=WF(o)||WF(i),r=s?o.toLowerCase():o,a=s?i.toLowerCase():i,l=r.endsWith("/")?r:`${r}/`;if(a!==r&&!a.startsWith(l))return null;const u=a===r?"":i.slice(l.length);return u.split("/").includes("..")?null:u||null}const sn={permission:"kimi-web.permission",permissionBySession:"kimi-web.permission-by-session",permissionExplicit:"kimi-web.permission-explicit",permissionStickyAt:"kimi-web.permission-sticky-at",permissionDaemonDefault:"kimi-web.permission-daemon-default",nonComposerPromptIds:"kimi-web.non-composer-prompt-ids",activeWorkspace:"kimi-active-workspace",planArmed:"kimi-web.plan-armed",swarmMode:"kimi-web.swarm-mode",towerMode:"kimi-web.tower-mode",goalMode:"kimi-web.goal-mode",fontScale:"kimi-web.font-scale",starredModels:"kimi-web.starred-models",unread:"kimi-web.unread",onboarded:"kimi-web.onboarded",colorScheme:"kimi-web.color-scheme",hiddenWorkspaces:"kimi-web.hidden-workspaces",collapsedWorkspaces:"kimi-web.collapsed-workspaces",workspaceOrder:"kimi-web.workspace-order",workspaceSort:"kimi-web.workspace-sort",workspaceRecencyFloor:"kimi-web.workspace-recency-floor",pinnedSessions:"kimi-web.pinned-sessions",pinnedCollapsed:"kimi-web.pinned-collapsed",workspaceNameOverrides:"kimi-web.workspace-name-overrides",notifyEnabled:"kimi-web.notify-enabled",notifySound:"kimi-web.notify-sound",inputHistory:"kimi-web.input-history",locale:"kimi-locale",clientId:"kimi-web.client-id",debug:"kimi-web.debug",openInDefaultTarget:"kimi-web.open-in.default-target",openInLastTarget:"kimi-web.open-in.last-target",sidebarCollapsed:"kimi-web.sidebar-collapsed",sidebarWidth:"kimi-web.sidebar-width",sidebarViewMode:"kimi-web.sidebar-view-mode",mobileSwitcherViewMode:"kimi-web.mobile-switcher-view-mode",diffViewMode:"kimi-web.diff-view-mode",sidebarPinnedHeight:"kimi-web.sidebar-pinned-height",shortcutOverrides:"kimi-web.shortcut-overrides",dockIconChoice:"kimi-web.dock-icon-choice",updateSkippedVersion:"kimi-web.update-skipped-version",canarySkippedVersion:"kimi-web.canary-skipped-version",planMode:"kimi-web.plan-mode",codeFont:"kimi-web.code-font",contentAlign:"kimi-web.content-align",theme:"kimi-web.theme",thinking:"kimi-web.thinking",accent:"kimi-web.accent",notifyOnComplete:"kimi-web.notify-on-complete",notifyOnQuestion:"kimi-web.notify-on-question",notifyOnApproval:"kimi-web.notify-on-approval",soundOnComplete:"kimi-web.sound-on-complete"},Ace="__new__";function Fc(e){return e&&e.length>0?e:Ace}function jb(e){return`kimi-web.draft.${Fc(e)}`}function QF(e){return`kimi-web.attachment-draft.${Fc(e)}`}function Hb(e){return`kimi-web.draft-atts.${Fc(e)}`}function fo(e){try{return globalThis.localStorage.getItem(e)}catch{return null}}function vo(e,t){try{globalThis.localStorage.setItem(e,t)}catch{}}function sr(e){try{globalThis.localStorage.removeItem(e)}catch{}}function ed(e){const t=fo(e);if(t===null)return null;try{return JSON.parse(t)}catch{return null}}function mu(e,t){try{globalThis.localStorage.setItem(e,JSON.stringify(t))}catch{}}function dS(){const e=fo(sn.unread);if(!e)return{};try{const t=JSON.parse(e);if(!t||typeof t!="object")return{};const n={};for(const[i,o]of Object.entries(t))o===!0&&(n[i]=!0);return n}catch{return{}}}function VF(e){const n={...dS()};for(const[i,o]of Object.entries(e))o?n[i]=!0:delete n[i];vo(sn.unread,JSON.stringify(n))}function yce(){const e=ed(sn.collapsedWorkspaces);return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function X3(e){mu(sn.collapsedWorkspaces,Array.from(e))}function kce(){return ed(sn.pinnedCollapsed)===!0}function fS(e){mu(sn.pinnedCollapsed,e)}function bce(){return fo(sn.sidebarViewMode)==="flat"?"flat":"grouped"}function wce(e){vo(sn.sidebarViewMode,e)}function Cce(){return fo(sn.mobileSwitcherViewMode)==="grouped"?"grouped":"flat"}function Sce(e){vo(sn.mobileSwitcherViewMode,e)}function xce(){return fo(sn.diffViewMode)==="tree"?"tree":"list"}function _ce(e){vo(sn.diffViewMode,e)}function Ece(){const e=ed(sn.workspaceOrder);return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function GF(e){mu(sn.workspaceOrder,Array.from(e))}function Ice(){return fo(sn.workspaceSort)==="recent"?"recent":"manual"}function Mce(e){vo(sn.workspaceSort,e)}function Tce(){const e=ed(sn.workspaceRecencyFloor);if(!e||typeof e!="object")return{};const t={};for(const[n,i]of Object.entries(e))typeof i=="number"&&Number.isFinite(i)&&(t[n]=i);return t}function qF(e){mu(sn.workspaceRecencyFloor,e)}function Bce(){try{return fo(sn.activeWorkspace)}catch{return null}}function KF(e){try{vo(sn.activeWorkspace,e)}catch{}}function Fce(){try{const e=fo(sn.hiddenWorkspaces);if(!e)return[];const t=JSON.parse(e);return Array.isArray(t)?t.filter(n=>typeof n=="string"):[]}catch{return[]}}function ZF(e){try{vo(sn.hiddenWorkspaces,JSON.stringify(e))}catch{}}function zW(){const e=ed(sn.pinnedSessions);return Array.isArray(e)?e.filter(t=>typeof t=="string"):[]}function e8(e){mu(sn.pinnedSessions,Array.from(e))}function b9(){const e=ed(sn.workspaceNameOverrides);if(!e||typeof e!="object")return{};const t={};for(const[n,i]of Object.entries(e))typeof i=="string"&&(t[n]=i);return t}function YF(e){mu(sn.workspaceNameOverrides,e)}function ch(e){return e==="manual"||e==="auto"||e==="yolo"?e:void 0}function JF(){return ch(fo(sn.permission))??"manual"}function Rce(e){vo(sn.permission,e)}function XF(){const e=fo(sn.permissionStickyAt),t=Number(e);return Number.isFinite(t)&&t>0?t:e===null&&fo(sn.permission)!==null?1:0}function X1(e){vo(sn.permissionStickyAt,String(e))}function $W(e){const t=fo(e);if(!t)return{};try{const n=JSON.parse(t);if(!n||typeof n!="object"||Array.isArray(n))return{};const i={};for(const[o,s]of Object.entries(n)){const r=ch(s);r!==void 0&&(i[o]=r)}return i}catch{return{}}}function jW(e,t){vo(e,JSON.stringify(t))}function eR(){return $W(sn.permissionBySession)}function t8(e){jW(sn.permissionBySession,e)}function tR(){return $W(sn.permissionExplicit)}function Dce(e){jW(sn.permissionExplicit,e)}const nR={manual:0,yolo:1,auto:2};function Nce(e){let t="auto",n=!1;for(const i of e)i!==void 0&&(n=!0,nR[i]typeof n=="number"&&Number.isFinite(n)&&n>0).slice(0,2);return t.length===0?HW:Math.round(t.reduce((n,i)=>n+i,0))}function UW(e){return e==null||!Number.isFinite(e)||e<=0?HW:Math.round(e)}const hS=96;function zce(e,t,n){const i=e.filter(r=>r.visible),o=i[0],s=i[2];return{firstRowHeight:o?o.height:null,spanToThirdRow:s?s.viewportBottom-t+n:null}}function $ce(e,t,n){const i=s=>s!=null&&Number.isFinite(s)&&s>0;return(s=>s!=null&&Number.isFinite(s)&&s>=0)(t)?i(e)?Math.round(e)+Math.round(t):i(n)?Math.round(n)*3+Math.round(t):hS:hS}function jce(e){return e>Pce}function iR(e){return Math.round(e*.4)}function Hce(e){return e==null||!Number.isFinite(e)||e<=0?hS:Math.round(e)}function Uce(e,t,n,i){const o=UW(n),s=Hce(i),r=Math.max(o,Math.round(e*.6));if(t===void 0||!Number.isFinite(t))return r;const a=Math.round(t)-s;return Math.max(o,Math.min(r,a))}function n8(e,t,n){return t==null||!Number.isFinite(t)?e:Math.max(UW(n),Math.min(e,Math.round(t)))}function Wce(e,t,n,i){return Math.max(Math.round(i),Math.min(Math.round(e+t),Math.round(n)))}function Qce(e,t){return t===null||t===e}const G_="application/x-kimi-session-row";function Vce(e,t){return e.includes(t)?e:[...e,t]}function Gce(e,t){return e.includes(t)?e.filter(n=>n!==t):e}function qce(e,t){const n=new Set(t),i=new Map,o=[];for(const r of e)n.has(r.id)?i.set(r.id,r):o.push(r);const s=[];for(const r of t){const a=i.get(r);a!==void 0&&s.push(a)}return{pinned:s,unpinned:o}}let Ub=-1,Wb=-1,Rm=-1,eA=-1,q_=!1,oR=!1;function sR(){Ub=-1,Wb=-1,Rm=-1,eA=-1,q_=!1}function Kce(e){const t=Rm>=0;Ub=Rm,Wb=eA,Rm=e.clientX,eA=e.clientY,t&&(Rm!==Ub||eA!==Wb)&&(q_=!0)}function U4(){oR||typeof document>"u"||(oR=!0,document.addEventListener("pointermove",Kce,{capture:!0,passive:!0}),window.addEventListener("blur",sR),document.documentElement.addEventListener("pointerleave",sR))}function XA(e){return q_?e.clientX===Ub&&e.clientY===Wb:!0}function rR(){return{x:Rm,y:eA}}const Zce={"&":"&","<":"<",">":">",'"':""","'":"'"};function tA(e){return e.replace(/[&<>"']/g,t=>Zce[t]??t)}function Yce(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Jce(e,t,n=40){const i=e.replace(/\s+/g," ").trim();if(i.length===0)return"";const o=t.trim();if(o.length===0)return aR(i,n*2);const s=i.toLowerCase().indexOf(o.toLowerCase());if(s<0)return aR(i,n*2);const r=Math.max(0,s-n),a=Math.min(i.length,s+o.length+n),l=r>0,u=a`${s}`)}const WW=/([\s\S]*?)<\/kbd>/g;function QW(e){let t="",n=0;for(const i of e.matchAll(WW))t+=tA(e.slice(n,i.index)),t+=`${tA(i[1]??"")}`,n=i.index+i[0].length;return t+tA(e.slice(n))}function Xce(e){return e.replace(WW,"$1")}let ede=0;function lR(e,t){const n=++ede;return e.pendingPlanBySession[t]=n,n}function K_(e,t,n){return n===void 0||e.pendingPlanBySession[t]!==n?!1:(delete e.pendingPlanBySession[t],!0)}function pS(e,t,n){e.pendingPlanBySession[t]===void 0&&(e.planModeBySession[t]=n)}function tde(e,t,n){return e.find(i=>i.window?.duration===t&&i.window?.unit===n)}const nde=30;function ide(e){return e!==void 0&&e0?(a.push(t("settings.planUsage.durationDay",{n:o})),a.push(t("settings.planUsage.durationHour",{n:s})),a.push(t("settings.planUsage.durationMinute",{n:r}))):s>0?(a.push(t("settings.planUsage.durationHour",{n:s})),a.push(t("settings.planUsage.durationMinute",{n:r}))):r>0?a.push(t("settings.planUsage.durationMinute",{n:r})):a.push(t("settings.planUsage.durationSecond",{n:i})),t("settings.planUsage.resetsIn",{duration:a.join(" ")})}function mS(e,t){if(t<=0)return"ok";const n=e/t;return n>=.85?"danger":n>=.5?"warn":"ok"}function w9(e,t){return t<=0?0:Math.min(100,Math.round(e/t*100))}function ode(e,t){const n=(e/100).toFixed(2);switch(t.toUpperCase()){case"CNY":return{symbol:"¥",number:n};case"USD":return{symbol:"$",number:n};default:return{symbol:"",number:`${n} ${t}`}}}const qW="kimiWeb.compaction",KW="managed:kimi-code",sde=["kimi","openai","openai_responses","anthropic","google-genai","vertexai"];function ok(){return{model:"",maxContextSize:"",displayName:"",capabilities:["tool_use","thinking"],supportEfforts:[],adaptiveThinking:!0}}function gS(e,t){const n=[];for(const i of Object.values(t??{})){if(i===null||typeof i!="object")continue;const o=i;o.provider===e.id&&n.push({model:typeof o.model=="string"?o.model:"",maxContextSize:typeof o.maxContextSize=="number"?String(o.maxContextSize):"",displayName:typeof o.displayName=="string"?o.displayName:"",capabilities:Array.isArray(o.capabilities)?o.capabilities.filter(s=>typeof s=="string"):[],supportEfforts:Array.isArray(o.supportEfforts)?o.supportEfforts.filter(s=>typeof s=="string"):[],...typeof o.adaptiveThinking=="boolean"?{adaptiveThinking:o.adaptiveThinking}:{}})}return n}const ZW=/^[\p{L}\p{N}][\p{L}\p{N}\-_ ]*$/u;function rde(e,t={}){const n=e.id.trim();if(n==="")return"idRequired";if(!ZW.test(n))return"idInvalid";if(t.requireApiKey===!0&&e.apiKey.trim()==="")return"apiKeyRequired";if(t.requireBaseUrl===!0&&e.baseUrl.trim()==="")return"baseUrlRequired";if(e.models.length===0)return"modelRequired";for(const i of e.models){if(i.model.trim()==="")return"modelRequired";const o=i.maxContextSize.trim();if(o==="")return"contextSizeRequired";if(!/^\d+$/.test(o)||Number(o)<1)return"contextSizeInvalid"}return null}function YW(e){return e.map(t=>{const n=t.displayName.trim();return{model:t.model.trim(),maxContextSize:Number(t.maxContextSize.trim()),...t.capabilities.length>0?{capabilities:[...t.capabilities]}:{},...t.supportEfforts.length>0?{supportEfforts:[...t.supportEfforts]}:{},...t.adaptiveThinking!==void 0?{adaptiveThinking:t.adaptiveThinking}:{},...n===""?{}:{displayName:n}}})}function ade(e){const t=e.apiKey.trim(),n=e.baseUrl.trim();return{id:e.id.trim(),type:e.type,models:YW(e.models),...t===""?{}:{apiKey:t},...n===""?{}:{baseUrl:n}}}function lde(e,t,n){const i=YW(e.models),o=e.id.trim(),s=e.apiKey.trim(),r=e.baseUrl.trim(),a=n?.existingDefaultModel?.trim()??"",l=a.indexOf("/")>=0?a.slice(a.indexOf("/")+1):a;return{...t!==void 0&&o!==""&&o!==t.id?{newId:o}:{},type:e.type,models:i,...s===""&&n?.includeBlankApiKey!==!0?{}:{apiKey:s},...r===""?{}:{baseUrl:r},...l!==""&&i.some(u=>u.model===l)?{defaultModel:l}:{}}}function JW(e){return e.id===KW&&e.type==="kimi"}function ude(e,t){return t.startsWith("image/")||t==="application/pdf"?!0:e.toLowerCase().endsWith(".pdf")}const Qb="/devices/",XW="kimi-rc-device-id";function cde(e){return new URLSearchParams(e.search).get("rc")==="1"}function eQ(e){const{pathname:t}=e;if(!t.startsWith(Qb))return;const n=t.slice(Qb.length).split("/")[0];if(n)try{const i=decodeURIComponent(n);return i.length>0?i:void 0}catch{return}}function dde(e){if(eQ({pathname:e})===void 0)return e;const t=e.slice(Qb.length),n=t.indexOf("/");return n<0?"/":t.slice(n)}function fde(e){return`${Qb}${encodeURIComponent(e)}/`}function tQ(e,t){const n=new URLSearchParams(t),i=n.get("rc"),o=n.get("from");if(i===null&&o===null)return e;const s=new URLSearchParams;return i!==null&&s.set("rc",i),o!==null&&s.set("from",o),`${e}?${s.toString()}`}function hde(e){const t=eQ(e);return t!==void 0?(mde(t),t):pde()}function pde(){try{return window.sessionStorage.getItem(XW)??void 0}catch{return}}function mde(e){try{window.sessionStorage.setItem(XW,e)}catch{}}const gde=/^(\d+)\t(.*)$/;function vde(e){const t=e.at(-1)===""?e.slice(0,-1):e;if(t.length===0)return null;const n=[],i=[];for(const o of t){const s=gde.exec(o);if(!s)return null;i.push(Number(s[1])),n.push(s[2]??"")}return{contents:n,lineNumbers:i}}function uR(e,t){let n="",i=t;const o=/^((?:\\\\|\/\/)[^\\/]+[\\/][^\\/]+)/.exec(t),s=/^([a-zA-Z]:)[\\/]?/.exec(t);o?(n=o[1],i=t.slice(o[1].length)):t.startsWith("/")?(n="/",i=t.slice(1)):s&&(n=s[1],i=t.slice(s[0].length));const r=n!=="",a=i.split(/[\\/]+/).filter(Boolean);for(const u of e.split("/"))u===""||u==="."||(u===".."?a.length>0&&a[a.length-1]!==".."?a.pop():r||a.push(".."):a.push(u));const l=a.join("/");return n==="/"?`/${l}`:n!==""?l?`${n}/${l}`:`${n}/`:l}function nQ(e,t){for(const n of e.stateMachineNames){const i=(e.stateMachineInputs(n)??[]).find(o=>o.name===t);if(i!==void 0)return i}return null}function Ade(e,t){const n=nQ(e,t);return n!==null&&typeof n.fire=="function"?(n.fire(),!0):!1}function cR(e,t,n){const i=nQ(e,t);return i!==null&&typeof i.value==typeof n?(i.value=n,!0):!1}const i8={isPageHidden:()=>typeof document<"u"&&document.hidden,onVisibilityChange:e=>typeof document>"u"?()=>{}:(document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)),observeIntersection:(e,t)=>{if(typeof IntersectionObserver!="function")return()=>{};const n=new IntersectionObserver(i=>{const o=i[0];o!==void 0&&t(o.isIntersecting)});return n.observe(e),()=>n.disconnect()}};function iQ(e,t,n={}){const i=n.isPageHidden??i8.isPageHidden,o=n.onVisibilityChange??i8.onVisibilityChange,s=n.observeIntersection??i8.observeIntersection;let r=!i(),a=!0,l=!1;function u(){const f=!r||!a;f!==l&&(l=f,l?e.pause():e.play())}const c=o(()=>{r=!i(),u()}),d=s(t,f=>{a=f,u()});return u(),()=>{c(),d()}}const br="kimi-web.server-credential",yde="token",kde=10080*60*1e3;let Pc;const vS=new Set;function bde(){if(typeof window>"u")return;const e=window.location.hash??"";if(!e.startsWith("#"))return;const n=new URLSearchParams(e.slice(1)).get(yde);if(!n)return;const i=new URL(window.location.href);return i.hash="",window.history.replaceState(window.history.state,"",`${i.pathname}${i.search}`),n}function AS(e){return{version:1,credential:e,expiresAt:Date.now()+kde}}function wde(e){return JSON.stringify(e)}function Z_(e){try{const t=JSON.parse(e);if(typeof t!="object"||t===null)return;const n=t;return n.version!==1||typeof n.credential!="string"||n.credential.length===0||typeof n.expiresAt!="number"||!Number.isFinite(n.expiresAt)?void 0:{version:1,credential:n.credential,expiresAt:n.expiresAt}}catch{return}}function yS(e){globalThis.localStorage?.setItem(br,wde(e))}function Cde(){try{const e=globalThis.localStorage?.getItem(br);if(e){const n=Z_(e);if(n===void 0){const i=AS(e);let o=!1;try{yS(i),o=!0}catch{}if(!o)try{globalThis.localStorage?.getItem(br)===e&&globalThis.localStorage?.removeItem(br),o=!0}catch{}try{globalThis.sessionStorage?.removeItem(br)}catch{}return o?i:void 0}if(n.expiresAt>Date.now())return n;globalThis.sessionStorage?.removeItem(br),globalThis.localStorage?.getItem(br)===e&&globalThis.localStorage?.removeItem(br);return}const t=globalThis.sessionStorage?.getItem(br);if(t){const n=AS(t);let i=!1;try{yS(n),i=!0}catch{}try{globalThis.sessionStorage?.removeItem(br),i=!0}catch{}return i?n:void 0}return}catch{return}}function Sde(){const e=bde();return e?(oQ(e),!0):(Pc=Cde(),Pc!==void 0)}function xde(){if(Pc!==void 0){if(Pc.expiresAt<=Date.now()){_de(Pc);return}return Pc.credential}}function _de(e){Pc=void 0;try{globalThis.sessionStorage?.removeItem(br);const t=globalThis.localStorage?.getItem(br),n=t==null?void 0:Z_(t);(n===void 0?t===e.credential:n.credential===e.credential&&n.expiresAt===e.expiresAt)&&globalThis.localStorage?.removeItem(br)}catch{}}function oQ(e){const t=AS(e);Pc=t;try{yS(t)}catch{}try{globalThis.sessionStorage?.removeItem(br)}catch{}}function Ede(){const e=Pc;Pc=void 0;try{const t=globalThis.localStorage?.getItem(br),i=(t==null?void 0:Z_(t))?.credential??t;e!==void 0&&i===e.credential&&globalThis.localStorage?.removeItem(br),globalThis.sessionStorage?.removeItem(br)}catch{}}function Ide(e){return vS.add(e),()=>{vS.delete(e)}}function Mde(){Ede();for(const e of vS)try{e()}catch{}}function Q2(e){return e.approvalCount>0?"awaiting-approval":e.questionCount>0?"awaiting-question":e.pendingInteraction==="approval"?"awaiting-approval":e.pendingInteraction==="question"?"awaiting-question":e.busy?"running":e.lastTurnReason==="failed"?"aborted":e.unread?"unread":"idle"}function dR(e){let t=null;for(const n of e){const i=Q2(n);if(i==="awaiting-approval")return"approval";i==="awaiting-question"?t="question":i==="aborted"?t!=="question"&&(t="aborted"):i==="unread"&&t===null&&(t="unread")}return t}let fR;function Tde(e){if(typeof Intl.Segmenter=="function")return fR??=new Intl.Segmenter("und",{granularity:"grapheme"}),fR.segment(e)}const Bde=/\p{Emoji_Presentation}/u,Fde=/\p{Regional_Indicator}/u,Rde=/\p{Extended_Pictographic}/u,Dde="️";function Nde(e){return Bde.test(e)||Fde.test(e)?!0:Rde.test(e)&&e.includes(Dde)}function sQ(e){const t=Tde(e)?.[Symbol.iterator]().next().value;if(t===void 0||!Nde(t.segment))return{emoji:null,rest:e};const n=e.slice(t.index+t.segment.length).replace(/^\s+/,"");return{emoji:t.segment,rest:n}}function Lde(e,t){const{rest:n}=sQ(e),i=t?.trim()??"";return i?n?`${i} ${n}`:i:n}function rQ(e,t){const n=e.findIndex(s=>s.id===t.id);if(n!==-1&&e[n].updatedAt===t.updatedAt)return e.map(s=>s.id===t.id?t:s);const i=e.filter(s=>s.id!==t.id),o=i.findIndex(s=>s.updatedAt0?i:void 0}catch{return}}function Pde(e){return e===void 0||e.length===0?"/":`${kS}${encodeURIComponent(e)}`}function Y_(){if(typeof navigator>"u")return!1;if(/Mac|iPod|iPhone|iPad/.test(navigator.platform))return!0;const e=navigator.userAgentData;return e?.platform==="macOS"||e?.platform==="iOS"}function cQ(e,t=Y_()){return(t?e.metaKey&&!e.ctrlKey:e.ctrlKey&&!e.metaKey)&&!e.altKey&&!e.shiftKey&&(e.code==="KeyA"||e.key.toLowerCase()==="a")&&!e.defaultPrevented}function Ode(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement&&(e.isContentEditable||e.closest("input, textarea")!==null)}function zde(e,t){return typeof Element>"u"||!(e instanceof Element)?null:e.closest(t)}function hR(e){e.ownerDocument.getSelection()?.selectAllChildren(e)}function $de(e,t=Y_()){return(t?e.metaKey&&!e.ctrlKey:e.ctrlKey&&!e.metaKey)&&!e.altKey&&!e.shiftKey&&(e.code==="KeyK"||e.key.toLowerCase()==="k")&&!e.defaultPrevented}const jde=[{pattern:/\brm\s+(?:-[a-zA-Z]*[rf][a-zA-Z]*|--recursive|--force)\b/,detail:"rm -rf"},{pattern:/\bsudo\b/,detail:"sudo"},{pattern:/\bmkfs(?:\.[a-z0-9]+)?\b/,detail:"mkfs"},{pattern:/\bdd\b[^|;&]*\bof=/,detail:"dd of=…"},{pattern:/>\s*\/dev\/(?:sd|nvme|disk|hd)/,detail:"> /dev/…"},{pattern:/:\(\)\s*\{/,detail:"fork bomb"},{pattern:/\bgit\s+push\b[^|;&]*(?:--force(?:-with-lease)?\b|\s-f\b)/,detail:"git push --force"},{pattern:/\bchmod\s+(?:-[a-zA-Z]+\s+)*777\b/,detail:"chmod 777"},{pattern:/\b(?:curl|wget)\b[^|;&]*\|\s*(?:sudo\s+)?(?:ba|z)?sh\b/,detail:"curl | sh"},{pattern:/\b(?:shutdown|reboot|poweroff|halt)\b/,detail:"shutdown / reboot"}];function Hde(e){const t=e.replace(/"[^"]*"|'[^']*'/g," ");for(const{pattern:n,detail:i}of jde)if(n.test(t))return i}function Fh(e){return Array.isArray?Array.isArray(e):fQ(e)==="[object Array]"}function Ude(e){if(typeof e=="string")return e;if(typeof e=="bigint")return e.toString();const t=e+"";return t=="0"&&1/e==-1/0?"-0":t}function bS(e){return e==null?"":Ude(e)}function Qr(e){return typeof e=="string"}function C9(e){return typeof e=="number"}function Wde(e){return e===!0||e===!1||Qde(e)&&fQ(e)=="[object Boolean]"}function dQ(e){return typeof e=="object"}function Qde(e){return dQ(e)&&e!==null}function yl(e){return e!=null}function sk(e){return!e.trim().length}function fQ(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const Vde="Incorrect 'index' type",wS="Invalid doc index: must be a non-negative integer within the bounds of the docs array",Gde=e=>`Invalid value for key ${e}`,qde=e=>`Pattern length exceeds max of ${e}.`,Kde=e=>`Missing ${e} property in key`,Zde=e=>`Property 'weight' in key '${e}' must be a positive integer`,Yde="Fuse.match does not support useTokenSearch: token search requires corpus-level statistics (df, fieldCount) that a one-off string comparison does not have. Use new Fuse(...).search(...) instead.",pR=Object.prototype.hasOwnProperty;var Jde=class{constructor(e){this._keys=[],this._keyMap={};let t=0;e.forEach(n=>{const i=hQ(n);this._keys.push(i),this._keyMap[i.id]=i,t+=i.weight}),this._keys.forEach(n=>{n.weight/=t})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}};function hQ(e){let t=null,n=null,i=null,o=1,s=null;if(Qr(e)||Fh(e))i=e,t=mR(e),n=S9(e);else{if(!pR.call(e,"name"))throw new Error(Kde("name"));const r=e.name;if(i=r,pR.call(e,"weight")&&e.weight!==void 0&&(o=e.weight,o<=0))throw new Error(Zde(S9(r)));t=mR(r),n=S9(r),s=e.getFn??null}return{path:t,id:n,weight:o,src:i,getFn:s}}function mR(e){return Fh(e)?e:e.split(".")}function S9(e){return Fh(e)?e.join("."):e}function Xde(e,t){const n=[];let i=!1;const o=(s,r,a,l)=>{if(yl(s))if(!r[a])n.push(l!==void 0?{v:s,i:l}:s);else{const u=s[r[a]];if(!yl(u))return;if(a===r.length-1&&(Qr(u)||C9(u)||Wde(u)||typeof u=="bigint"))n.push(l!==void 0?{v:bS(u),i:l}:bS(u));else if(Fh(u)){i=!0;for(let c=0,d=u.length;ce.score===t.score?e.idx=9&&e<=13||e===32||e===160}function sfe(e=1,t=3){const n=new Map,i=Math.pow(10,t);return{get(o){let s=0,r=!1;for(let l=0;l{this._keysMap[t.id]=n})}create(){if(this.isCreated||!this.docs.length)return;this.isCreated=!0;const e=this.docs.length;this.records=new Array(e);let t=0;if(Qr(this.docs[0]))for(let n=0;ne&&(this.records[t].i-=1)}removeAll(e){const t=new Set;for(const i of e)Number.isInteger(i)&&i>=0&&t.add(i);if(t.size===0)return;this.records=this.records.filter(i=>!t.has(i.i));const n=Array.from(t).sort((i,o)=>i-o);for(const i of this.records){let o=0,s=n.length;for(;o>>1;n[r]t),records:this.records}}};function pQ(e,t,{getFn:n=Un.getFn,fieldNormWeight:i=Un.fieldNormWeight}={}){const o=new J_({getFn:n,fieldNormWeight:i});return o.setKeys(e.map(hQ)),o.setSources(t),o.create(),o}function rfe(e,{getFn:t=Un.getFn,fieldNormWeight:n=Un.fieldNormWeight}={}){const{keys:i,records:o}=e,s=new J_({getFn:t,fieldNormWeight:n});return s.setKeys(i),s.setIndexRecords(o),s}function afe(e=[],t=Un.minMatchCharLength){const n=[];let i=-1,o=-1,s=0;for(let r=e.length;s=t&&n.push([i,o]),i=-1)}return e[s-1]&&s-i>=t&&n.push([i,s-1]),n}function lfe(e,t,n,{location:i=Un.location,distance:o=Un.distance,threshold:s=Un.threshold,findAllMatches:r=Un.findAllMatches,minMatchCharLength:a=Un.minMatchCharLength,includeMatches:l=Un.includeMatches,ignoreLocation:u=Un.ignoreLocation}={}){if(t.length>32)throw new Error(qde(32));const c=t.length,d=e.length,f=Math.max(0,Math.min(i,d));let h=s,m=f;const g=(S,I)=>{const F=S/c;if(u)return F;const E=Math.abs(f-I);return o?F+E/o:E?1:F},v=a>1||l,y=v?Array(d):[];let A;for(;(A=e.indexOf(t,m))>-1;){const S=g(0,A);if(h=Math.min(S,h),m=A+c,v){let I=0;for(;I=E;z-=1){const T=z-1,N=n[e[T]];if(j[z]=(j[z+1]<<1|1)&N,S&&(j[z]|=(b[z+1]|b[z])<<1|1|b[z+1]),j[z]&B&&(w=g(S,T),w<=h)){if(h=w,m=T,_=S,m<=f)break;E=Math.max(1,2*f-m)}}if(g(S+1,f)>h)break;b=j}if(v&&m>=0){const S=Math.min(d-1,m+c-1+_);for(let I=m;I<=S;I+=1)n[e[I]]&&(y[I]=1)}const C={isMatch:m>=0,score:Math.max(.001,w)};if(v){const S=afe(y,a);S.length?l&&(C.indices=S):C.isMatch=!1}return C}function ufe(e){const t={};for(let n=0,i=e.length;nn[0]-i[0]||n[1]-i[1]);const t=[e[0]];for(let n=1,i=e.length;ne.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"").replace(cfe,t=>mQ[t]):e=>e;var eE=class{constructor(e,{location:t=Un.location,threshold:n=Un.threshold,distance:i=Un.distance,includeMatches:o=Un.includeMatches,findAllMatches:s=Un.findAllMatches,minMatchCharLength:r=Un.minMatchCharLength,isCaseSensitive:a=Un.isCaseSensitive,ignoreDiacritics:l=Un.ignoreDiacritics,ignoreLocation:u=Un.ignoreLocation}={}){if(this.options={location:t,threshold:n,distance:i,includeMatches:o,findAllMatches:s,minMatchCharLength:r,isCaseSensitive:a,ignoreDiacritics:l,ignoreLocation:u},e=a?e:e.toLowerCase(),e=l?e2(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;const c=(f,h)=>{this.chunks.push({pattern:f,alphabet:ufe(f),startIndex:h})},d=this.pattern.length;if(d>32){let f=0;const h=d%32,m=d-h;for(;f{const{isMatch:y,score:A,indices:b}=lfe(e,m,g,{location:o+v,distance:s,threshold:r,findAllMatches:a,minMatchCharLength:l,includeMatches:i,ignoreLocation:u});y&&(f=!0),d+=A,y&&b&&c.push(...b)});const h={isMatch:f,score:f?d/this.chunks.length:1};return f&&i&&(h.indices=X_(c)),h}};const dfe=new Set(["fuzzy","include"]);function ffe(e){return e.startsWith("inverse")}const CS=[{type:"exact",multiRegex:/^="(.*)"$/,singleRegex:/^=(.*)$/,create:e=>({type:"exact",search(t){const n=t===e;return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}})},{type:"include",multiRegex:/^'"(.*)"$/,singleRegex:/^'(.*)$/,create:e=>({type:"include",search(t){let n=0,i;const o=[],s=e.length;for(;(i=t.indexOf(e,n))>-1;)n=i+s,o.push([i,n-1]);const r=!!o.length;return{isMatch:r,score:r?0:1,indices:o}}})},{type:"prefix-exact",multiRegex:/^\^"(.*)"$/,singleRegex:/^\^(.*)$/,create:e=>({type:"prefix-exact",search(t){const n=t.startsWith(e);return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}})},{type:"inverse-prefix-exact",multiRegex:/^!\^"(.*)"$/,singleRegex:/^!\^(.*)$/,create:e=>({type:"inverse-prefix-exact",search(t){const n=!t.startsWith(e);return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}})},{type:"inverse-suffix-exact",multiRegex:/^!"(.*)"\$$/,singleRegex:/^!(.*)\$$/,create:e=>({type:"inverse-suffix-exact",search(t){const n=!t.endsWith(e);return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}})},{type:"suffix-exact",multiRegex:/^"(.*)"\$$/,singleRegex:/^(.*)\$$/,create:e=>({type:"suffix-exact",search(t){const n=t.endsWith(e);return{isMatch:n,score:n?0:1,indices:[t.length-e.length,t.length-1]}}})},{type:"inverse-exact",multiRegex:/^!"(.*)"$/,singleRegex:/^!(.*)$/,create:e=>({type:"inverse-exact",search(t){const n=t.indexOf(e)===-1;return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}})},{type:"fuzzy",multiRegex:/^"(.*)"$/,singleRegex:/^(.*)$/,create:(e,t={})=>{const n=new eE(e,{location:t.location??Un.location,threshold:t.threshold??Un.threshold,distance:t.distance??Un.distance,includeMatches:t.includeMatches??Un.includeMatches,findAllMatches:t.findAllMatches??Un.findAllMatches,minMatchCharLength:t.minMatchCharLength??Un.minMatchCharLength,isCaseSensitive:t.isCaseSensitive??Un.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics??Un.ignoreDiacritics,ignoreLocation:t.ignoreLocation??Un.ignoreLocation});return{type:"fuzzy",search(i){return n.searchIn(i)}}}}],gR=CS.length,hfe="\0",pfe="|";function mfe(e){const t=[],n=e.length;let i=0;for(;i=n)break;let o=i;for(;o=n||e[s]===" "){o++;break}if(e[s]==="$"&&(s+1>=n||e[s+1]===" ")){o+=2;break}}o++}t.push(e.substring(i,o)),i=o}else{for(;o{const i=mfe(n.replace(/\u0000/g,"|").trim()).filter(s=>s&&!!s.trim()),o=[];for(let s=0,r=i.length;s!!(e[Gb.AND]||e[Gb.OR]),Afe=e=>!!e[xS.PATH],yfe=e=>!Fh(e)&&dQ(e)&&!_S(e),AR=e=>({[Gb.AND]:Object.keys(e).map(t=>({[t]:e[t]}))});function gQ(e,t,{auto:n=!0}={}){const i=o=>{if(Qr(o)){const l={keyId:null,pattern:o};return n&&(l.searcher=Vb(o,t)),l}const s=Object.keys(o),r=Afe(o);if(!r&&s.length>1&&!_S(o))return i(AR(o));if(yfe(o)){const l=r?o[xS.PATH]:s[0],u=r?o[xS.PATTERN]:o[l];if(!Qr(u))throw new Error(Gde(l));const c={keyId:S9(l),pattern:u};return n&&(c.searcher=Vb(u,t)),c}const a={children:[],operator:s[0]};return s.forEach(l=>{const u=o[l];Fh(u)&&u.forEach(c=>{a.children.push(i(c))})}),a};return _S(e)||(e=AR(e)),i(e)}function ES(e,{ignoreFieldNorm:t=Un.ignoreFieldNorm}){let n=1;return e.forEach(({key:i,norm:o,score:s})=>{const r=i?i.weight:null;n*=Math.pow(s===0&&r?Number.EPSILON:s,(r||1)*(t?1:o))}),n}function kfe(e,{ignoreFieldNorm:t=Un.ignoreFieldNorm}){e.forEach(n=>{n.score=ES(n.matches,{ignoreFieldNorm:t})})}var bfe=class{constructor(e,t){this.limit=e,this.heap=[],this.comparator=t}get size(){return this.heap.length}insert(e){this.size0;){const n=e-1>>1;if(this.comparator(t[e],t[n])<=0)break;const i=t[e];t[e]=t[n],t[n]=i,e=n}}_sinkDown(e){const t=this.heap,n=t.length;let i=e;do{e=i;const o=2*e+1,s=2*e+2;if(o0&&(i=o),s0&&(i=s),i!==e){const r=t[e];t[e]=t[i],t[i]=r}}while(i!==e)}};function wfe(e){const t=[];return e.matches.forEach(n=>{if(!yl(n.indices)||!n.indices.length)return;const i={indices:n.indices,value:n.value};n.key&&(i.key=n.key.id),n.idx>-1&&(i.refIndex=n.idx),t.push(i)}),t}function Cfe(e,t,{includeMatches:n=Un.includeMatches,includeScore:i=Un.includeScore}={}){return e.map(o=>{const{idx:s}=o,r={item:t[s],refIndex:s};return n&&(r.matches=wfe(o)),i&&(r.score=o.score),r})}const Sfe=/[\p{L}\p{M}\p{N}_]+/gu,yR=new WeakSet;function xfe(e){yR.has(e)||(yR.add(e),console.warn(`[Fuse] tokenize regex ${e} lacks the global flag; only the first match per text will be returned. Add the 'g' flag.`))}function _fe(e){if(typeof e=="function"){let t=!1;return n=>{const i=e(n);if(!t&&(t=!0,!Array.isArray(i)||i.some(o=>typeof o!="string")))throw new Error(`[Fuse] tokenize function must return string[]; received ${Array.isArray(i)?"array containing non-strings":typeof i}.`);return i}}return e instanceof RegExp?(e.global||xfe(e),t=>t.match(e)||[]):t=>t.match(Sfe)||[]}function IS({isCaseSensitive:e=!1,ignoreDiacritics:t=!1,tokenize:n}={}){const i=_fe(n);return{tokenize(o){return e||(o=o.toLowerCase()),t&&(o=e2(o)),i(o)}}}var Efe=class{static condition(e,t){return t.useTokenSearch}constructor(e,t){this.options=t,this.analyzer=IS({isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics,tokenize:t.tokenize});const n=this.analyzer.tokenize(e),{df:i,fieldCount:o}=t._invertedIndex;this.termSearchers=[],this.idfWeights=[];for(const s of n){this.termSearchers.push(new eE(s,{location:t.location,threshold:t.threshold,distance:t.distance,includeMatches:t.includeMatches,findAllMatches:t.findAllMatches,minMatchCharLength:t.minMatchCharLength,isCaseSensitive:t.isCaseSensitive,ignoreDiacritics:t.ignoreDiacritics,ignoreLocation:!0}));const r=i.get(s)||0,a=Math.log(1+(o-r+.5)/(r+.5));this.idfWeights.push(a)}this.combineAll=t.tokenMatch==="all",this.numTerms=this.termSearchers.length,this.useMask=this.numTerms<=31}searchIn(e){if(!this.termSearchers.length)return{isMatch:!1,score:1};const t=[];let n=0,i=0,o=0,s=0;const r=this.combineAll&&!this.useMask?new Set:null;for(let u=0;u0?1-n/i:0,l={isMatch:!0,score:Math.max(.001,a)};return this.options.includeMatches&&t.length&&(l.indices=X_(t)),this.combineAll&&(this.useMask?l.matchedMask=s:l.matchedTerms=r,l.termCount=this.numTerms),l}};function o8(e,t,n,i){const o=i.tokenize(t);if(!o.length)return;e.fieldCount++,e.docFieldCount.set(n,(e.docFieldCount.get(n)||0)+1);const s=new Set(o);let r=e.docTermFieldHits.get(n);r||(r=new Map,e.docTermFieldHits.set(n,r));for(const a of s)r.set(a,(r.get(a)||0)+1),e.df.set(a,(e.df.get(a)||0)+1)}function vQ(e,t,n,i){const{i:o,v:s,$:r}=t;if(s!==void 0){o8(e,s,o,i);return}if(r)for(let a=0;aa-l);for(const a of n)Tfe(e,a);const i=a=>{let l=0,u=n.length;for(;l>>1;n[c]o?i(a):a,l);e.docFieldCount=s;const r=new Map;for(const[a,l]of e.docTermFieldHits)r.set(a>o?i(a):a,l);e.docTermFieldHits=r}var Rh=class{constructor(e,t,n){this.options={...Un,...t},this.options.useExtendedSearch,this.options.useTokenSearch,this._keyStore=new Jde(this.options.keys),this._docs=e,this._myIndex=null,this._invertedIndex=null,this.setCollection(e,n),this._lastQuery=null,this._lastSearcher=null}_getSearcher(e){if(this._lastQuery===e)return this._lastSearcher;const t=Vb(e,this._invertedIndex?{...this.options,_invertedIndex:this._invertedIndex}:this.options);return this._lastQuery=e,this._lastSearcher=t,t}setCollection(e,t){if(this._docs=e,t&&!(t instanceof J_))throw new Error(Vde);if(this._myIndex=t||pQ(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight}),this.options.useTokenSearch){const n=IS({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});this._invertedIndex=Ife(this._myIndex.records,this._myIndex.keys.length,n)}this._invalidateSearcherCache()}add(e){if(!yl(e))return;this._docs.push(e);const t=this._myIndex.add(e,this._docs.length-1);if(this._invertedIndex&&t){const n=IS({isCaseSensitive:this.options.isCaseSensitive,ignoreDiacritics:this.options.ignoreDiacritics,tokenize:this.options.tokenize});Mfe(this._invertedIndex,t,this._myIndex.keys.length,n)}this._invalidateSearcherCache()}remove(e=()=>!1){const t=[],n=[];for(let i=0,o=this._docs.length;i!i.has(s)),this._myIndex.removeAll(n),this._invalidateSearcherCache()}return t}removeAt(e){if(!Number.isInteger(e)||e<0||e>=this._docs.length)throw new Error(wS);this._invertedIndex&&kR(this._invertedIndex,[e]);const t=this._docs.splice(e,1)[0];return this._myIndex.removeAt(e),this._invalidateSearcherCache(),t}_invalidateSearcherCache(){this._lastQuery=null,this._lastSearcher=null}getIndex(){return this._myIndex}_normalizedKeys(){return this._myIndex.keys.map(e=>this._keyStore.get(e.id)||e)}search(e,t){const{limit:n=-1}=t||{},{includeMatches:i,includeScore:o,shouldSort:s,sortFn:r,ignoreFieldNorm:a}=this.options;if(Qr(e)&&!e.trim()){let f=this._docs.map((h,m)=>({item:h,refIndex:m}));return C9(n)&&n>-1&&(f=f.slice(0,n)),f}const l=s&&C9(n)&&n>0&&Qr(e),u=r,c=(f,h)=>u(f,h)||f.idx-h.idx;let d;if(l){const f=new bfe(n,c);Qr(this._docs[0])?this._searchStringList(e,{heap:f,ignoreFieldNorm:a}):this._searchObjectList(e,{heap:f,ignoreFieldNorm:a}),d=f.extractSorted()}else d=Qr(e)?Qr(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e),kfe(d,{ignoreFieldNorm:a}),s&&d.sort(Qr(e)?c:u),C9(n)&&n>-1&&(d=d.slice(0,n));return Cfe(d,this._docs,{includeMatches:i,includeScore:o})}_searchStringList(e,{heap:t,ignoreFieldNorm:n}={}){const i=this._getSearcher(e),o=this.options.useTokenSearch&&this.options.tokenMatch==="all",{records:s}=this._myIndex,r=t?null:[];return s.forEach(({v:a,i:l,n:u})=>{if(!yl(a))return;const c=i.searchIn(a);if(c.isMatch){const d={score:c.score,value:a,norm:u,indices:c.indices};o&&(d.matchedMask=c.matchedMask,d.matchedTerms=c.matchedTerms,d.termCount=c.termCount);const f=[d];if(!o||this._coversAllTokens(f)){const h={item:a,idx:l,matches:f};t?(h.score=ES(h.matches,{ignoreFieldNorm:n}),t.insert(h)):r.push(h)}}}),r}_searchLogical(e){const t=gQ(e,this.options),n=this._normalizedKeys(),i=(a,l,u)=>{if(!("children"in a)){const{keyId:h,searcher:m}=a;let g;return h===null?(g=[],n.forEach((v,y)=>{g.push(...this._findMatches({key:v,value:l[y],searcher:m}))})):g=this._findMatches({key:this._keyStore.get(h),value:this._myIndex.getValueForItemAtKeyId(l,h),searcher:m}),g&&g.length?[{idx:u,item:l,matches:g}]:[]}const{children:c,operator:d}=a,f=[];for(let h=0,m=c.length;h{if(yl(a)){const u=i(t,a,l);u.length&&(s.has(l)||(s.set(l,{idx:l,item:a,matches:[]}),r.push(s.get(l))),u.forEach(({matches:c})=>{s.get(l).matches.push(...c)}))}}),r}_searchObjectList(e,{heap:t,ignoreFieldNorm:n}={}){const i=this._getSearcher(e),o=this.options.useTokenSearch&&this.options.tokenMatch==="all",{records:s}=this._myIndex,r=this._normalizedKeys(),a=t?null:[];return s.forEach(({$:l,i:u})=>{if(!yl(l))return;const c=[];let d=!1,f=!1;if(r.forEach((h,m)=>{const g=this._findMatches({key:h,value:l[m],searcher:i});g.length?(c.push(...g),g[0].hasInverse&&(f=!0)):d=!0}),!(f&&d)&&c.length&&(!o||this._coversAllTokens(c))){const h={idx:u,item:l,matches:c};t?(h.score=ES(h.matches,{ignoreFieldNorm:n}),t.insert(h)):a.push(h)}}),a}_findMatches({key:e,value:t,searcher:n}){if(!yl(t))return[];const i=[];if(Fh(t))t.forEach(({v:o,i:s,n:r})=>{if(!yl(o))return;const a=n.searchIn(o);if(a.isMatch){const l={score:a.score,key:e,value:o,idx:s,norm:r,indices:a.indices,hasInverse:a.hasInverse};a.termCount!==void 0&&(l.matchedMask=a.matchedMask,l.matchedTerms=a.matchedTerms,l.termCount=a.termCount),i.push(l)}});else{const{v:o,n:s}=t,r=n.searchIn(o);if(r.isMatch){const a={score:r.score,key:e,value:o,norm:s,indices:r.indices,hasInverse:r.hasInverse};r.termCount!==void 0&&(a.matchedMask=r.matchedMask,a.matchedTerms=r.matchedTerms,a.termCount=r.termCount),i.push(a)}}return i}_coversAllTokens(e){const t=e.length?e[0].termCount:void 0;if(t===void 0)return!0;if(t<=31){let i=0;for(let o=0;otE(t))};var Bfe=Rh;const Ffe=/^[\uD800-\uDBFF]$/,Rfe=/^[\uDC00-\uDFFF]$/,Dfe=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;var bR;(function(e){e[e.Unknown=1e-13]="Unknown",e[e.Rule=1e-12]="Rule",e[e.DICT=2e-8]="DICT",e[e.Surname=1]="Surname",e[e.Custom=1]="Custom"})(bR||(bR={}));const Rl={Normal:1,Surname:10,Custom:100};function $u(e){var t;return e.length-(((t=e.match(Dfe))===null||t===void 0?void 0:t.length)||0)}function MS(e){const t=[];let n=0;for(;n1)return this.StringDICT.get(t);{const n=t.charCodeAt(0);return this.NumberDICT[n]}}set(t,n){if(t.length>1)this.StringDICT.set(t,n);else{const i=t.charCodeAt(0);this.NumberDICT[i]=n}}clear(){this.NumberDICT=[],this.StringDICT.clear()}}const Nfe=["zh","ch","sh","z","c","s","b","p","m","f","d","t","n","l","g","k","h","j","q","x","r","y","w",""],Lfe=["j","q","x"],Pfe=["uān","uán","uǎn","uàn","uan","uē","ué","uě","uè","ue","ūn","ún","ǔn","ùn","un","ū","ú","ǔ","ù","u"],Ofe={uān:"üān",uán:"üán",uǎn:"üǎn",uàn:"üàn",uan:"üan",uē:"üē",ué:"üé",uě:"üě",uè:"üè",ue:"üe",ūn:"ǖn",ún:"ǘn",ǔn:"ǚn",ùn:"ǜn",un:"ün",ū:"ǖ",ú:"ǘ",ǔ:"ǚ",ù:"ǜ",u:"ü"},zfe=["ia","ian","iang","iao","ie","iu","iong","ua","uai","uan","uang","ue","ui","uo","üan","üe","van","ve"],wR={一:"yì",二:"èr",三:"sān",四:"sì",五:"wǔ",六:"liù",七:"qī",八:"bā",九:"jiǔ",十:"shí",百:"bǎi",千:"qiān",万:"wàn",亿:"yì",单:"dān",两:"liǎng",双:"shuāng",多:"duō",几:"jǐ",十一:"shí yī",零一:"líng yī",第一:"dì yī",一十:"yī shí",一十一:"yī shí yī"},CR={重:"chóng",行:"háng",斗:"dǒu",更:"gēng"};function $fe(){const e={零一:"líng yī","〇一":"líng yī",十一:"shí yī",一十:"yī shí",第一:"dì yī",一十一:"yī shí yī"};for(let t in wR)for(let n in CR){const i=`${t}${n}`,o=`${wR[t]} ${CR[n]}`;e[i]=o}return e}const SR=$fe(),jfe=Object.keys(SR).map(e=>({zh:e,pinyin:SR[e],probability:1e-12,length:$u(e),priority:Rl.Normal,dict:Symbol("rule")})),yQ={不:{bú:[4]},一:{yí:[4],yì:[1,2,3]}},Hfe={不:["的","而","之","后","也","还","地"],一:["的","而","之","后","也","还","是"]},Ufe=Object.keys(yQ),TS={南宫:"nán gōng",第五:"dì wǔ",万俟:"mò qí",司马:"sī mǎ",上官:"shàng guān",欧阳:"ōu yáng",夏侯:"xià hóu",诸葛:"zhū gě",闻人:"wén rén",东方:"dōng fāng",赫连:"hè lián",皇甫:"huáng fǔ",尉迟:"yù chí",公羊:"gōng yáng",澹台:"tán tái",公冶:"gōng yě",宗政:"zōng zhèng",濮阳:"pú yáng",淳于:"chún yú",太叔:"tài shū",申屠:"shēn tú",公孙:"gōng sūn",仲孙:"zhòng sūn",轩辕:"xuān yuán",令狐:"líng hú",钟离:"zhōng lí",宇文:"yǔ wén",长孙:"zhǎng sūn",慕容:"mù róng",鲜于:"xiān yú",闾丘:"lǘ qiū",司徒:"sī tú",司空:"sī kōng",亓官:"qí guān",司寇:"sī kòu",仉督:"zhǎng dū",子车:"zǐ jū",颛孙:"zhuān sūn",端木:"duān mù",巫马:"wū mǎ",公西:"gōng xī",漆雕:"qī diāo",乐正:"yuè zhèng",壤驷:"rǎng sì",公良:"gōng liáng",拓跋:"tuò bá",夹谷:"jiá gǔ",宰父:"zǎi fǔ",榖梁:"gǔ liáng",段干:"duàn gān",百里:"bǎi lǐ",东郭:"dōng guō",南门:"nán mén",呼延:"hū yán",羊舌:"yáng shé",梁丘:"liáng qiū",左丘:"zuǒ qiū",东门:"dōng mén",西门:"xī mén",句龙:"gōu lóng",毌丘:"guàn qiū",赵:"zhào",钱:"qián",孙:"sūn",李:"lǐ",周:"zhōu",吴:"wú",郑:"zhèng",王:"wáng",冯:"féng",陈:"chén",褚:"chǔ",卫:"wèi",蒋:"jiǎng",沈:"shěn",韩:"hán",杨:"yáng",朱:"zhū",秦:"qín",尤:"yóu",许:"xǔ",何:"hé",吕:"lǚ",施:"shī",张:"zhāng",孔:"kǒng",曹:"cáo",严:"yán",华:"huà",金:"jīn",魏:"wèi",陶:"táo",姜:"jiāng",戚:"qī",谢:"xiè",邹:"zōu",喻:"yù",柏:"bǎi",水:"shuǐ",窦:"dòu",章:"zhāng",云:"yún",苏:"sū",潘:"pān",葛:"gě",奚:"xī",范:"fàn",彭:"péng",郎:"láng",鲁:"lǔ",韦:"wéi",昌:"chāng",马:"mǎ",苗:"miáo",凤:"fèng",花:"huā",方:"fāng",俞:"yú",任:"rén",袁:"yuán",柳:"liǔ",酆:"fēng",鲍:"bào",史:"shǐ",唐:"táng",费:"fèi",廉:"lián",岑:"cén",薛:"xuē",雷:"léi",贺:"hè",倪:"ní",汤:"tāng",滕:"téng",殷:"yīn",罗:"luó",毕:"bì",郝:"hǎo",邬:"wū",安:"ān",常:"cháng",乐:"yuè",于:"yú",时:"shí",傅:"fù",皮:"pí",卞:"biàn",齐:"qí",康:"kāng",伍:"wǔ",余:"yú",元:"yuán",卜:"bǔ",顾:"gù",孟:"mèng",平:"píng",黄:"huáng",和:"hé",穆:"mù",萧:"xiāo",尹:"yǐn",姚:"yáo",邵:"shào",湛:"zhàn",汪:"wāng",祁:"qí",毛:"máo",禹:"yǔ",狄:"dí",米:"mǐ",贝:"bèi",明:"míng",臧:"zāng",计:"jì",伏:"fú",成:"chéng",戴:"dài",谈:"tán",宋:"sòng",茅:"máo",庞:"páng",熊:"xióng",纪:"jǐ",舒:"shū",屈:"qū",项:"xiàng",祝:"zhù",董:"dǒng",梁:"liáng",杜:"dù",阮:"ruǎn",蓝:"lán",闵:"mǐn",席:"xí",季:"jì",麻:"má",强:"qiáng",贾:"jiǎ",路:"lù",娄:"lóu",危:"wēi",江:"jiāng",童:"tóng",颜:"yán",郭:"guō",梅:"méi",盛:"shèng",林:"lín",刁:"diāo",钟:"zhōng",徐:"xú",邱:"qiū",骆:"luò",高:"gāo",夏:"xià",蔡:"cài",田:"tián",樊:"fán",胡:"hú",凌:"líng",霍:"huò",虞:"yú",万:"wàn",支:"zhī",柯:"kē",昝:"zǎn",管:"guǎn",卢:"lú",莫:"mò",经:"jīng",房:"fáng",裘:"qiú",缪:"miào",干:"gān",解:"xiè",应:"yīng",宗:"zōng",丁:"dīng",宣:"xuān",贲:"bēn",邓:"dèng",郁:"yù",单:"shàn",杭:"háng",洪:"hóng",包:"bāo",诸:"zhū",左:"zuǒ",石:"shí",崔:"cuī",吉:"jí",钮:"niǔ",龚:"gōng",程:"chéng",嵇:"jī",邢:"xíng",滑:"huá",裴:"péi",陆:"lù",荣:"róng",翁:"wēng",荀:"xún",羊:"yáng",於:"yū",惠:"huì",甄:"zhēn",曲:"qū",家:"jiā",封:"fēng",芮:"ruì",羿:"yì",储:"chǔ",靳:"jìn",汲:"jí",邴:"bǐng",糜:"mí",松:"sōng",井:"jǐng",段:"duàn",富:"fù",巫:"wū",乌:"wū",焦:"jiāo",巴:"bā",弓:"gōng",牧:"mù",隗:"wěi",山:"shān",谷:"gǔ",车:"chē",侯:"hóu",宓:"mì",蓬:"péng",全:"quán",郗:"xī",班:"bān",仰:"yǎng",秋:"qiū",仲:"zhòng",伊:"yī",宫:"gōng",宁:"nìng",仇:"qiú",栾:"luán",暴:"bào",甘:"gān",钭:"tǒu",厉:"lì",戎:"róng",祖:"zǔ",武:"wǔ",符:"fú",刘:"liú",景:"jǐng",詹:"zhān",束:"shù",龙:"lóng",叶:"yè",幸:"xìng",司:"sī",韶:"sháo",郜:"gào",黎:"lí",蓟:"jì",薄:"bó",印:"yìn",宿:"sù",白:"bái",怀:"huái",蒲:"pú",邰:"tái",从:"cóng",鄂:"è",索:"suǒ",咸:"xián",籍:"jí",赖:"lài",卓:"zhuó",蔺:"lìn",屠:"tú",蒙:"méng",池:"chí",乔:"qiáo",阴:"yīn",鬱:"yù",胥:"xū",能:"nài",苍:"cāng",双:"shuāng",闻:"wén",莘:"shēn",党:"dǎng",翟:"zhái",谭:"tán",贡:"gòng",劳:"láo",逄:"páng",姬:"jī",申:"shēn",扶:"fú",堵:"dǔ",冉:"rǎn",宰:"zǎi",郦:"lì",雍:"yōng",郤:"xì",璩:"qú",桑:"sāng",桂:"guì",濮:"pú",牛:"niú",寿:"shòu",通:"tōng",边:"biān",扈:"hù",燕:"yān",冀:"jì",郏:"jiá",浦:"pǔ",尚:"shàng",农:"nóng",温:"wēn",别:"bié",庄:"zhuāng",晏:"yàn",柴:"chái",瞿:"qú",阎:"yán",充:"chōng",慕:"mù",连:"lián",茹:"rú",习:"xí",宦:"huàn",艾:"ài",鱼:"yú",容:"róng",向:"xiàng",古:"gǔ",易:"yì",慎:"shèn",戈:"gē",廖:"liào",庾:"yǔ",终:"zhōng",暨:"jì",居:"jū",衡:"héng",步:"bù",都:"dū",耿:"gěng",满:"mǎn",弘:"hóng",匡:"kuāng",国:"guó",文:"wén",寇:"kòu",广:"guǎng",禄:"lù",阙:"quē",东:"dōng",欧:"ōu",殳:"shū",沃:"wò",利:"lì",蔚:"wèi",越:"yuè",夔:"kuí",隆:"lóng",师:"shī",巩:"gǒng",厍:"shè",聂:"niè",晁:"cháo",勾:"gōu",敖:"áo",融:"róng",冷:"lěng",訾:"zī",辛:"xīn",阚:"kàn",那:"nā",简:"jiǎn",饶:"ráo",空:"kōng",曾:"zēng",母:"mǔ",沙:"shā",乜:"niè",养:"yǎng",鞠:"jū",须:"xū",丰:"fēng",巢:"cháo",关:"guān",蒯:"kuǎi",相:"xiàng",查:"zhā",后:"hòu",荆:"jīng",红:"hóng",游:"yóu",竺:"zhú",权:"quán",逯:"lù",盖:"gě",益:"yì",桓:"huán",公:"gōng",牟:"móu",哈:"hǎ",言:"yán",福:"fú",肖:"xiāo",区:"ōu",覃:"qín",朴:"piáo",繁:"pó",员:"yùn",句:"gōu",要:"yāo",过:"guō",钻:"zuān",谌:"chén",折:"shé",召:"shào",郄:"qiè",撒:"sǎ",甯:"nìng",六:"lù",啜:"chuài",行:"xíng"},Wfe=Object.keys(TS).map(e=>({zh:e,pinyin:TS[e],probability:1+$u(e),length:$u(e),priority:Rl.Surname,dict:Symbol("surname")})),xR={"bǎng páng pāng":["膀"],líng:["〇","伶","凌","刢","囹","坽","夌","姈","婈","孁","岺","彾","掕","昤","朎","柃","棂","櫺","欞","泠","淩","澪","灵","燯","爧","狑","玲","琌","瓴","皊","砱","祾","秢","竛","笭","紷","綾","绫","羐","羚","翎","聆","舲","苓","菱","蓤","蔆","蕶","蛉","衑","裬","詅","跉","軨","輘","酃","醽","鈴","錂","铃","閝","陵","零","霊","霗","霛","霝","靈","駖","魿","鯪","鲮","鴒","鸰","鹷","麢","齡","齢","龄","龗","㥄"],yī:["一","乊","伊","依","医","吚","咿","噫","壱","壹","夁","嫛","嬄","弌","揖","撎","檹","毉","洢","渏","漪","瑿","畩","祎","禕","稦","繄","蛜","衤","譩","辷","郼","醫","銥","铱","鷖","鹥","黟","黳"],"dīng zhēng":["丁"],"kǎo qiǎo yú":["丂"],qī:["七","倛","僛","凄","嘁","墄","娸","悽","慼","慽","戚","捿","柒","桤","桼","棲","榿","欺","沏","淒","漆","紪","緀","萋","褄","諆","迉","郪","鏚","霋","魌","鶈"],shàng:["丄","尙","尚","恦","緔","绱"],xià:["丅","下","乤","圷","夏","夓","懗","梺","疜","睱","罅","鎼","鏬"],hǎn:["丆","喊","浫","罕","豃","㘎"],"wàn mò":["万"],zhàng:["丈","仗","墇","嶂","帐","帳","幛","扙","杖","涱","痮","瘬","瘴","瞕","粀","胀","脹","賬","账","障"],sān:["三","厁","叁","弎","毵","毶","毿","犙","鬖"],"shàng shǎng shang":["上"],"qí jī":["丌","其","奇"],"bù fǒu":["不"],"yǔ yù yú":["与"],miǎn:["丏","偭","免","冕","勉","勔","喕","娩","愐","汅","沔","湎","睌","緬","缅","腼","葂","靦","鮸","𩾃"],gài:["丐","乢","匃","匄","戤","概","槩","槪","溉","漑","瓂","葢","鈣","钙","𬮿"],chǒu:["丑","丒","侴","吜","杽","瞅","矁","醜","魗"],zhuān:["专","叀","嫥","専","專","瑼","甎","砖","磗","磚","蟤","諯","鄟","顓","颛","鱄","䏝"],"qiě jū":["且"],pī:["丕","伓","伾","噼","坯","岯","憵","批","披","炋","狉","狓","砒","磇","礔","礕","秛","秠","耚","豾","邳","鈚","鉟","銔","錃","錍","霹","駓","髬","魾","𬳵"],shì:["世","丗","亊","事","仕","侍","冟","势","勢","卋","呩","嗜","噬","士","奭","嬕","室","市","式","弑","弒","恀","恃","戺","拭","揓","是","昰","枾","柿","栻","澨","烒","煶","眂","眎","眡","睗","示","礻","筮","簭","舐","舓","襫","視","视","觢","試","誓","諡","謚","试","谥","貰","贳","軾","轼","逝","遾","釈","释","釋","鈰","鉃","鉽","铈","飾","餙","餝","饰","鰘","䏡","𬤊"],qiū:["丘","丠","坵","媝","恘","恷","楸","秋","秌","穐","篍","緧","萩","蘒","蚯","蝵","蟗","蠤","趥","邱","鞦","鞧","鰌","鰍","鳅","鶖","鹙","龝"],bǐng:["丙","屛","怲","抦","昞","昺","柄","棅","炳","禀","秉","稟","苪","蛃","邴","鈵","陃","鞆","餅","餠","饼"],yè:["业","亱","僷","墷","夜","嶪","嶫","抴","捙","擛","擪","擫","晔","曄","曅","曗","曳","曵","枼","枽","業","洂","液","澲","烨","燁","爗","璍","皣","瞱","瞸","礏","腋","葉","謁","谒","邺","鄴","鍱","鐷","靥","靨","頁","页","餣","饁","馌","驜","鵺","鸈"],cóng:["丛","从","叢","婃","孮","従","徔","徖","悰","樷","欉","淙","灇","爜","琮","藂","誴","賨","賩","錝"],dōng:["东","倲","冬","咚","埬","岽","崬","徚","昸","東","氡","氭","涷","笗","苳","菄","蝀","鮗","鯟","鶇","鶫","鸫","鼕","𬟽"],sī:["丝","俬","凘","厮","司","咝","嘶","噝","媤","廝","恖","撕","斯","楒","泀","澌","燍","禗","禠","私","糹","絲","緦","纟","缌","罳","蕬","虒","蛳","蜤","螄","蟖","蟴","鉰","銯","鍶","鐁","锶","颸","飔","騦","鷥","鸶","鼶","㟃"],chéng:["丞","呈","城","埕","堘","塍","塖","宬","峸","惩","懲","成","承","挰","掁","揨","枨","棖","橙","檙","洆","溗","澂","珵","珹","畻","程","窚","筬","絾","脭","荿","誠","诚","郕","酲","鋮","铖","騬","鯎"],diū:["丟","丢","銩","铥"],liǎng:["両","两","兩","唡","啢","掚","緉","脼","蜽","裲","魉","魎","𬜯"],yǒu:["丣","卣","友","梄","湵","牖","禉","羑","聈","苃","莠","蜏","酉","銪","铕","黝"],yán:["严","厳","啱","喦","嚴","塩","壛","壧","妍","姸","娫","娮","岩","嵒","嵓","巌","巖","巗","延","揅","昖","楌","檐","櫩","欕","沿","炎","炏","狿","琂","盐","碞","筵","簷","莚","蔅","虤","蜒","言","訁","訮","詽","讠","郔","閆","閻","闫","阎","顏","顔","颜","鹽","麣","𫄧"],bìng:["並","併","倂","傡","垪","摒","栤","病","窉","竝","誁","靐","鮩"],"sàng sāng":["丧"],gǔn:["丨","惃","滚","滾","磙","緄","绲","蓘","蔉","衮","袞","輥","辊","鮌","鯀","鲧"],jiū:["丩","勼","啾","揪","揫","朻","究","糾","纠","萛","赳","阄","鬏","鬮","鳩","鸠"],"gè gě":["个","個","各"],yā:["丫","圧","孲","庘","押","枒","桠","椏","錏","鐚","鴉","鴨","鵶","鸦","鸭"],pán:["丬","媻","幋","槃","洀","瀊","爿","盘","盤","磐","縏","蒰","蟠","蹒","蹣","鎜","鞶"],"zhōng zhòng":["中"],jǐ:["丮","妀","己","戟","挤","掎","撠","擠","橶","泲","犱","脊","虮","蟣","魢","鱾","麂"],jiè:["丯","介","借","唶","堺","屆","届","岕","庎","徣","戒","楐","犗","玠","琾","界","畍","疥","砎","蚧","蛶","衸","褯","誡","诫","鎅","骱","魪"],fēng:["丰","仹","偑","僼","凨","凬","凮","妦","寷","封","峯","峰","崶","枫","楓","檒","沣","沨","渢","灃","烽","犎","猦","琒","疯","瘋","盽","砜","碸","篈","蘴","蜂","蠭","豐","鄷","酆","鋒","鎽","鏠","锋","霻","靊","飌","麷"],"guàn kuàng":["丱"],chuàn:["串","汌","玔","賗","釧","钏"],chǎn:["丳","产","冁","剷","囅","嵼","旵","浐","滻","灛","產","産","簅","蒇","蕆","諂","譂","讇","谄","鏟","铲","閳","闡","阐","骣","𬊤"],lín:["临","冧","壣","崊","嶙","斴","晽","暽","林","潾","瀶","燐","琳","璘","瞵","碄","磷","粦","粼","繗","翷","臨","轔","辚","遴","邻","鄰","鏻","阾","隣","霖","驎","鱗","鳞","麐","麟","𬴊","𬭸"],zhuó:["丵","劅","卓","啄","圴","妰","娺","撯","擆","擢","斫","斮","斱","斲","斵","晫","椓","浊","浞","濁","灼","烵","琸","硺","禚","窡","籗","籱","罬","茁","蠗","蠿","諁","諑","謶","诼","酌","鐲","镯","鵫","鷟","䓬","𬸦"],zhǔ:["丶","主","劯","嘱","囑","宔","帾","拄","渚","濐","煑","煮","燝","瞩","矚","罜","詝","陼","鸀","麈","𬣞"],bā:["丷","仈","八","叭","哵","夿","岜","巴","捌","朳","玐","疤","笆","粑","羓","芭","蚆","豝","釟"],wán:["丸","刓","完","岏","抏","捖","汍","烷","玩","琓","笂","紈","纨","翫","芄","貦","頑","顽"],dān:["丹","勯","匰","単","妉","媅","殚","殫","甔","眈","砃","箪","簞","耼","耽","聃","聸","褝","襌","躭","郸","鄲","酖","頕"],"wèi wéi":["为"],"jǐng dǎn":["丼"],"lì lí":["丽"],jǔ:["举","弆","挙","擧","椇","榉","榘","櫸","欅","矩","筥","聥","舉","莒","蒟","襷","踽","齟","龃"],piě:["丿","苤","鐅","𬭯"],fú:["乀","伏","俘","凫","刜","匐","咈","哹","垘","孚","岪","巿","帗","幅","幞","弗","彿","怫","扶","柫","栿","桴","氟","泭","浮","涪","澓","炥","玸","甶","畉","癁","祓","福","稪","符","箙","紱","紼","絥","綍","绂","绋","罘","罦","翇","艀","芙","芣","苻","茀","茯","菔","葍","虙","蚨","蜉","蝠","袚","袱","襆","襥","諨","豧","踾","輻","辐","郛","鉘","鉜","韍","韨","颫","髴","鮄","鮲","鳧","鳬","鴔","鵩","黻"],"yí jí":["乁"],yì:["乂","义","亄","亦","亿","伇","伿","佾","俋","億","兿","刈","劓","劮","勚","勩","匇","呓","呭","呹","唈","囈","圛","坄","垼","埸","奕","嫕","嬑","寱","屹","峄","嶧","帟","帠","幆","廙","异","弈","弋","役","忆","怈","怿","悒","意","憶","懌","懿","抑","挹","敡","易","晹","曀","曎","杙","枍","棭","榏","槸","檍","歝","殔","殪","殹","毅","浂","浥","浳","湙","溢","潩","澺","瀷","炈","焲","熠","熤","熼","燚","燡","燱","獈","玴","異","疫","痬","瘗","瘞","瘱","癔","益","瞖","穓","竩","篒","縊","繶","繹","绎","缢","義","羿","翊","翌","翳","翼","耴","肄","肊","膉","臆","艗","艺","芅","苅","萟","蓺","薏","藙","藝","蘙","虉","蜴","螠","衪","袣","裔","裛","褹","襼","訲","訳","詍","詣","誼","譯","議","讛","议","译","诣","谊","豙","豛","豷","貖","贀","跇","轶","逸","邑","鄓","醷","釴","鈠","鎰","鐿","镒","镱","阣","隿","霬","饐","駅","驛","驿","骮","鮨","鶂","鶃","鶍","鷁","鷊","鷧","鷾","鸃","鹝","鹢","黓","齸","𬬩","㑊","𫄷","𬟁"],nǎi:["乃","倷","奶","嬭","廼","氖","疓","艿","迺","釢"],wǔ:["乄","五","仵","伍","侮","倵","儛","午","啎","妩","娬","嫵","庑","廡","忤","怃","憮","摀","武","潕","熓","牾","玝","珷","瑦","甒","碔","舞","躌","迕","逜","陚","鵡","鹉","𣲘"],jiǔ:["久","乆","九","乣","奺","杦","汣","灸","玖","紤","舏","酒","镹","韭","韮"],"tuō zhé":["乇","杔","馲"],"me mó ma yāo":["么"],zhī:["之","倁","卮","巵","搘","支","栀","梔","椥","榰","汁","泜","疷","祗","祬","秓","稙","綕","肢","胑","胝","脂","芝","蘵","蜘","衼","隻","鳷","鴲","鼅","𦭜"],"wū wù":["乌"],zhà:["乍","咤","宱","搾","榨","溠","痄","蚱","詐","诈","醡","霅","䃎"],hū:["乎","乯","匢","匫","呼","唿","嘑","垀","寣","幠","忽","惚","昒","歑","泘","淴","滹","烀","苸","虍","虖","謼","軤","轷","雐"],fá:["乏","伐","傠","坺","垡","墢","姂","栰","浌","瞂","笩","筏","罚","罰","罸","藅","閥","阀"],"lè yuè yào lào":["乐","樂"],yín:["乑","吟","噖","嚚","圁","垠","夤","婬","寅","峾","崟","崯","檭","殥","泿","淫","滛","烎","犾","狺","璌","硍","碒","荶","蔩","訔","訚","訡","誾","鄞","鈝","銀","银","霪","鷣","齦"],pīng:["乒","俜","娉","涄","甹","砯","聠","艵","頩"],pāng:["乓","滂","胮","膖","雱","霶"],qiáo:["乔","侨","僑","嫶","憔","桥","槗","樵","橋","櫵","犞","瞧","硚","礄","荍","荞","蕎","藮","譙","趫","鐈","鞒","鞽","顦"],hǔ:["乕","琥","萀","虎","虝","錿","鯱"],guāi:["乖"],"chéng shèng":["乗","乘","娍"],yǐ:["乙","乛","以","倚","偯","嬟","崺","已","庡","扆","攺","敼","旑","旖","檥","矣","礒","笖","舣","艤","苡","苢","蚁","螘","蟻","裿","踦","輢","轙","逘","酏","釔","鈘","鉯","钇","顗","鳦","齮","𫖮","𬺈"],"háo yǐ":["乚"],"niè miē":["乜"],qǐ:["乞","企","启","唘","啓","啔","啟","婍","屺","杞","棨","玘","盀","綺","绮","芑","諬","起","邔","闙"],yě:["也","冶","嘢","埜","壄","漜","野"],xí:["习","喺","媳","嶍","席","椺","檄","漝","習","蓆","袭","襲","覡","觋","謵","趘","郋","鎴","隰","霫","飁","騱","騽","驨","鰼","鳛","𠅤","𫘬"],xiāng:["乡","厢","廂","忀","楿","欀","湘","瓖","稥","箱","緗","缃","膷","芗","萫","葙","薌","襄","郷","鄉","鄊","鄕","鑲","镶","香","驤","骧","鱜","麘","𬙋"],shū:["书","倏","倐","儵","叔","姝","尗","抒","掓","摅","攄","書","枢","梳","樞","殊","殳","毹","毺","淑","瀭","焂","疎","疏","紓","綀","纾","舒","菽","蔬","踈","軗","輸","输","鄃","陎","鮛","鵨"],dǒu:["乧","抖","枓","蚪","鈄","阧","陡"],shǐ:["乨","使","兘","史","始","宩","屎","榁","矢","笶","豕","鉂","駛","驶"],jī:["乩","僟","击","刉","刏","剞","叽","唧","喞","嗘","嘰","圾","基","墼","姬","屐","嵆","嵇","撃","擊","朞","机","枅","樭","機","毄","激","犄","玑","璣","畸","畿","癪","矶","磯","积","積","笄","筓","箕","簊","緁","羁","羇","羈","耭","肌","芨","虀","覉","覊","譏","譤","讥","賫","賷","赍","跻","踑","躋","躸","銈","錤","鐖","鑇","鑙","隮","雞","鞿","韲","飢","饑","饥","魕","鳮","鶏","鶺","鷄","鸄","鸡","齎","齏","齑","𬯀","𫓯","𫓹","𫌀"],náng:["乪","嚢","欜","蠰","饢"],jiā:["乫","佳","傢","加","嘉","抸","枷","梜","毠","泇","浃","浹","犌","猳","珈","痂","笳","糘","耞","腵","葭","袈","豭","貑","跏","迦","鉫","鎵","镓","鴐","麚","𬂩"],jù:["乬","倨","倶","具","剧","劇","勮","埧","埾","壉","姖","屦","屨","岠","巨","巪","怇","惧","愳","懅","懼","拒","拠","昛","歫","洰","澽","炬","烥","犋","秬","窭","窶","簴","粔","耟","聚","虡","蚷","詎","讵","豦","距","踞","躆","遽","邭","醵","鉅","鐻","钜","颶","飓","駏","鮔"],shí:["乭","十","埘","塒","姼","实","実","寔","實","峕","嵵","时","旹","時","榯","湜","溡","炻","祏","竍","蚀","蝕","辻","遈","鉐","飠","饣","鮖","鰣","鲥","鼫","鼭"],mǎo:["乮","冇","卯","峁","戼","昴","泖","笷","蓩","鉚","铆"],mǎi:["买","嘪","荬","蕒","買","鷶"],luàn:["乱","亂","釠"],rǔ:["乳","擩","汝","肗","辱","鄏"],xué:["乴","学","學","峃","嶨","斈","泶","澩","燢","穴","茓","袕","踅","鷽","鸴"],yǎn:["䶮","乵","俨","偃","儼","兖","兗","厣","厴","噞","孍","嵃","巘","巚","弇","愝","戭","扊","抁","掩","揜","曮","椼","檿","沇","渷","演","琰","甗","眼","罨","萒","蝘","衍","褗","躽","遃","郾","隒","顩","魇","魘","鰋","鶠","黡","黤","黬","黭","黶","鼴","鼹","齴","龑","𬸘","𬙂","𪩘"],fǔ:["乶","俌","俛","俯","府","弣","抚","拊","撫","斧","椨","滏","焤","甫","盙","簠","腐","腑","蜅","輔","辅","郙","釜","釡","阝","頫","鬴","黼","㕮","𫖯"],shā:["乷","唦","杀","桬","殺","毮","猀","痧","砂","硰","紗","繺","纱","蔱","裟","鎩","铩","閷","髿","魦","鯊","鯋","鲨"],nǎ:["乸","雫"],qián:["乹","亁","仱","偂","前","墘","媊","岒","拑","掮","榩","橬","歬","潛","潜","濳","灊","箝","葥","虔","軡","鈐","鉗","銭","錢","鎆","钤","钱","钳","靬","騚","騝","鰬","黔","黚"],suǒ:["乺","唢","嗩","所","暛","溑","溹","琐","琑","瑣","索","褨","鎖","鎻","鏁","锁"],yú:["乻","于","亐","伃","余","堣","堬","妤","娛","娯","娱","嬩","崳","嵎","嵛","愚","扵","揄","旟","楡","楰","榆","欤","歈","歟","歶","渔","渝","湡","漁","澞","牏","狳","玗","玙","瑜","璵","盂","睮","窬","竽","籅","羭","腴","臾","舁","舆","艅","茰","萮","萸","蕍","蘛","虞","虶","蝓","螸","衧","褕","覦","觎","諛","謣","谀","踰","輿","轝","逾","邘","酑","鍝","隅","雓","雩","餘","馀","騟","骬","髃","魚","魣","鮽","鯲","鰅","鱼","鷠","鸆","齵"],zhù:["乼","伫","佇","住","坾","墸","壴","嵀","拀","杼","柱","樦","殶","注","炷","疰","眝","祝","祩","竚","筯","箸","篫","簗","紵","紸","纻","羜","翥","苎","莇","蛀","註","貯","贮","跓","軴","鉒","鋳","鑄","铸","馵","駐","驻"],zhě:["乽","者","褶","襵","赭","踷","鍺","锗"],"qián gān":["乾"],"zhì luàn":["乿"],guī:["亀","圭","妫","媯","嫢","嬀","帰","归","摫","椝","槻","槼","櫷","歸","珪","瑰","璝","瓌","皈","瞡","硅","茥","蘬","規","规","邽","郌","閨","闺","騩","鬶","鬹"],"lǐn lìn":["亃"],jué:["亅","决","刔","劂","匷","厥","噊","孒","孓","崛","崫","嶥","彏","憠","憰","戄","抉","挗","掘","攫","桷","橛","橜","欮","氒","決","灍","焳","熦","爑","爴","爵","獗","玃","玦","玨","珏","瑴","瘚","矍","矡","砄","絕","絶","绝","臄","芵","蕝","蕨","虳","蟨","蟩","觖","觮","觼","訣","譎","诀","谲","貜","赽","趉","蹷","躩","鈌","鐍","鐝","钁","镢","鴂","鴃","鷢","𫘝","㵐","𫔎"],"le liǎo":["了"],"gè mā":["亇"],"yǔ yú":["予","懙"],zhēng:["争","佂","凧","姃","媜","峥","崝","崢","征","徰","炡","烝","爭","狰","猙","癥","眐","睁","睜","筝","箏","篜","聇","脀","蒸","踭","鉦","錚","鏳","鬇"],èr:["二","刵","咡","弍","弐","樲","誀","貮","貳","贰","髶"],chù:["亍","傗","儊","怵","憷","搐","斶","歜","珿","琡","矗","竌","絀","绌","臅","触","觸","豖","鄐","閦","黜"],kuī:["亏","刲","岿","巋","盔","窥","窺","聧","虧","闚","顝"],yún:["云","伝","勻","匀","囩","妘","愪","抣","昀","橒","沄","涢","溳","澐","熉","畇","秐","筼","篔","紜","縜","纭","耘","芸","蒷","蕓","郧","鄖","鋆","雲"],hù:["互","冱","嗀","嚛","婟","嫭","嫮","岵","帍","弖","怙","戶","户","戸","戽","扈","护","昈","槴","沍","沪","滬","熩","瓠","祜","笏","簄","粐","綔","蔰","護","豰","鄠","鍙","頀","鱯","鳠","鳸","鸌","鹱"],qí:["亓","剘","埼","岐","岓","崎","嵜","愭","掑","斉","斊","旂","旗","棊","棋","檱","櫀","歧","淇","濝","猉","玂","琦","琪","璂","畦","疧","碁","碕","祁","祈","祺","禥","竒","簯","簱","籏","粸","綥","綦","肵","脐","臍","艩","芪","萁","萕","蕲","藄","蘄","蚑","蚚","蛴","蜝","蜞","螧","蠐","褀","軝","鄿","釮","錡","锜","陭","頎","颀","騎","騏","騹","骐","骑","鬐","鬿","鯕","鰭","鲯","鳍","鵸","鶀","麒","麡","𨙸","𬨂","䓫"],jǐng:["井","儆","刭","剄","坓","宑","幜","憬","暻","殌","汫","汬","澋","璄","璟","璥","穽","肼","蟼","警","阱","頚","頸"],sì:["亖","佀","価","儩","兕","嗣","四","姒","娰","孠","寺","巳","柶","榹","汜","泗","泤","洍","洠","涘","瀃","牭","祀","禩","竢","笥","耜","肂","肆","蕼","覗","貄","釲","鈶","鈻","飤","飼","饲","駟","騃","驷"],suì:["亗","嬘","岁","嵗","旞","檖","歲","歳","澻","煫","燧","璲","砕","碎","祟","禭","穂","穗","穟","繀","繐","繸","襚","誶","譢","谇","賥","邃","鐆","鐩","隧","韢","𫟦","𬭼"],gèn:["亘","亙","揯","搄","茛"],yà:["亚","亜","俹","冴","劜","圔","圠","埡","娅","婭","揠","氩","氬","犽","砑","稏","聐","襾","覀","訝","讶","迓","齾"],"xiē suò":["些"],"qí zhāi":["亝","齊"],"yā yà":["亞","压","垭","壓","铔"],"jí qì":["亟","焏"],tóu:["亠","投","頭","骰"],"wáng wú":["亡"],"kàng háng gāng":["亢"],dà:["亣","眔"],jiāo:["交","僬","娇","嬌","峧","嶕","嶣","憍","椒","浇","澆","焦","礁","穚","簥","胶","膠","膲","茭","茮","蕉","虠","蛟","蟭","跤","轇","郊","鐎","驕","骄","鮫","鲛","鵁","鷦","鷮","鹪","䴔"],hài:["亥","嗐","害","氦","餀","饚","駭","駴","骇"],"hēng pēng":["亨"],mǔ:["亩","姆","峔","拇","母","牡","牳","畂","畆","畒","畝","畞","畮","砪","胟","踇","鉧","𬭁","𧿹"],ye:["亪"],xiǎng:["享","亯","响","想","晑","蚃","蠁","響","飨","餉","饗","饷","鮝","鯗","鱶","鲞"],jīng:["京","亰","兢","坕","坙","婛","惊","旌","旍","晶","橸","泾","涇","猄","睛","秔","稉","粳","精","経","經","綡","聙","腈","茎","荆","荊","菁","葏","驚","鯨","鲸","鶁","鶄","麖","麠","鼱","䴖"],tíng:["亭","停","婷","嵉","庭","廷","楟","榳","筳","聤","莛","葶","蜓","蝏","諪","邒","霆","鼮","䗴"],liàng:["亮","喨","悢","晾","湸","諒","谅","輌","輛","辆","鍄"],"qīn qìng":["亲","親"],bó:["亳","仢","侼","僰","博","帛","愽","懪","挬","搏","欂","浡","淿","渤","煿","牔","狛","瓝","礴","秡","箔","簙","糪","胉","脖","膊","舶","艊","萡","葧","袯","襏","襮","謈","踣","郣","鈸","鉑","鋍","鎛","鑮","钹","铂","镈","餺","馎","馛","馞","駁","駮","驳","髆","鵓","鹁"],yòu:["亴","佑","佦","侑","又","右","哊","唀","囿","姷","宥","峟","幼","狖","祐","蚴","誘","诱","貁","迶","酭","釉","鼬"],xiè:["亵","伳","偞","偰","僁","卨","卸","噧","塮","夑","媟","屑","屧","廨","徢","懈","暬","械","榍","榭","泻","洩","渫","澥","瀉","瀣","灺","炧","炨","燮","爕","獬","祄","禼","糏","紲","絏","絬","繲","纈","绁","缷","薢","薤","蟹","蠏","褉","褻","謝","谢","躞","邂","靾","韰","齂","齘","齛","齥","𬹼","𤫉"],"dǎn dàn":["亶","馾"],lián:["亷","劆","匲","匳","嗹","噒","奁","奩","嫾","帘","廉","怜","憐","涟","漣","濂","濓","瀮","熑","燫","簾","籢","籨","縺","翴","联","聨","聫","聮","聯","臁","莲","蓮","薕","螊","蠊","裢","褳","覝","謰","蹥","连","連","鎌","鐮","镰","鬑","鰱","鲢"],duǒ:["亸","哚","嚲","埵","崜","朵","朶","綞","缍","趓","躱","躲","軃"],"wěi mén":["亹","斖"],rén:["人","亻","仁","壬","忈","忎","朲","秂","芢","魜","鵀"],jí:["亼","亽","伋","佶","偮","卙","即","卽","及","叝","吉","堲","塉","姞","嫉","岌","嵴","嶯","彶","忣","急","愱","戢","揤","极","棘","楫","極","槉","檝","殛","汲","湒","潗","疾","瘠","皍","笈","箿","籍","級","级","膌","艥","蒺","蕀","蕺","蝍","螏","襋","觙","谻","踖","蹐","躤","輯","轚","辑","郆","銡","鍓","鏶","集","雧","霵","鹡","㴔"],wáng:["亾","仼","兦","莣","蚟"],"shén shí":["什"],lè:["仂","叻","忇","氻","泐","玏","砳","簕","艻","阞","韷","餎","鰳","鱳","鳓"],dīng:["仃","叮","帄","玎","疔","盯","耵","虰","靪"],zè:["仄","崱","庂","捑","昃","昗","汄"],"jǐn jìn":["仅","僅","嫤"],"pú pū":["仆"],"chóu qiú":["仇"],zhǎng:["仉","幥","掌","礃"],jīn:["今","堻","巾","惍","斤","津","珒","琻","璡","砛","筋","荕","衿","襟","觔","金","釒","釿","钅","鹶","黅","𬬱"],bīng:["仌","仒","兵","冫","冰","掤","氷","鋲"],réng:["仍","礽","芿","辸","陾"],fó:["仏","坲","梻"],"jīn sǎn":["仐"],lún:["仑","伦","侖","倫","囵","圇","婨","崘","崙","棆","沦","淪","磮","腀","菕","蜦","踚","輪","轮","錀","陯","鯩","𬬭"],cāng:["仓","仺","倉","凔","嵢","沧","滄","濸","獊","舱","艙","苍","蒼","螥","鸧"],"zǎi zǐ zī":["仔"],tā:["他","塌","它","榙","溻","牠","祂","褟","趿","遢","闧"],fù:["付","偩","傅","冨","副","咐","坿","复","妇","婦","媍","嬔","富","復","椱","祔","禣","竎","緮","縛","缚","腹","萯","蕧","蚹","蛗","蝜","蝮","袝","複","覄","覆","訃","詂","讣","負","賦","賻","负","赋","赙","赴","輹","鍑","鍢","阜","附","馥","駙","驸","鮒","鰒","鲋","鳆","㳇"],xiān:["仙","仚","佡","僊","僲","先","嘕","奾","屳","廯","忺","憸","掀","暹","杴","氙","珗","祆","秈","籼","繊","纎","纖","苮","褼","襳","跹","蹮","躚","酰","鍁","锨","韯","韱","馦","鱻","鶱","𬸣"],"tuō chà duó":["仛"],hóng:["仜","吰","垬","妅","娂","宏","宖","弘","彋","汯","泓","洪","浤","渱","潂","玒","玜","竑","竤","篊","粠","紘","紭","綋","纮","翃","翝","耾","苰","荭","葒","葓","谹","谼","鈜","鉷","鋐","閎","闳","霐","霟","鞃","魟","鴻","鸿","黉","黌","𫟹","𬭎"],tóng:["仝","佟","哃","峂","峝","庝","彤","晍","曈","桐","氃","浵","潼","犝","獞","眮","瞳","砼","秱","童","粡","膧","茼","蚒","詷","赨","酮","鉖","鉵","銅","铜","餇","鮦","鲖","𫍣","𦒍"],rèn:["仞","仭","刃","刄","妊","姙","屻","岃","扨","牣","祍","紉","紝","絍","纫","纴","肕","腍","衽","袵","訒","認","认","讱","軔","轫","鈓","靭","靱","韌","韧","飪","餁","饪"],qiān:["仟","佥","僉","千","圲","奷","孯","岍","悭","愆","慳","扦","拪","搴","撁","攐","攑","攓","杄","櫏","汘","汧","牵","牽","竏","签","簽","籖","籤","粁","芊","茾","蚈","褰","諐","謙","谦","谸","迁","遷","釺","鈆","鉛","鏲","钎","阡","韆","顅","騫","骞","鬜","鬝","鵮","鹐"],"gǎn hàn":["仠"],"yì gē":["仡"],dài:["代","侢","叇","垈","埭","岱","帒","带","帯","帶","廗","怠","戴","曃","柋","殆","瀻","玳","瑇","甙","簤","紿","緿","绐","艜","蝳","袋","襶","貣","贷","蹛","軑","軚","軩","轪","迨","霴","靆","鴏","黛","黱"],"lìng líng lǐng":["令"],chào:["仦","耖","觘"],"cháng zhǎng":["仧","兏","長","长"],sā:["仨"],cháng:["仩","偿","償","嘗","嚐","嫦","尝","常","徜","瑺","瓺","甞","肠","腸","膓","苌","萇","镸","鱨","鲿"],yí:["仪","侇","儀","冝","匜","咦","圯","夷","姨","宐","宜","宧","寲","峓","嶬","嶷","巸","彛","彜","彝","彞","怡","恞","扅","暆","栘","椬","椸","沂","洟","熪","瓵","痍","移","簃","籎","羠","胰","萓","蛦","螔","觺","謻","貽","贻","跠","迻","遺","鏔","頉","頤","頥","顊","颐","饴","鮧","鴺"],mù:["仫","凩","募","墓","幕","幙","慔","慕","暮","暯","木","楘","毣","沐","炑","牧","狇","目","睦","穆","艒","苜","莯","蚞","鉬","钼","雮","霂"],"men mén":["们"],fǎn:["仮","反","橎","返"],"chào miǎo":["仯"],"yǎng áng":["仰"],zhòng:["仲","众","堹","妕","媑","狆","眾","祌","筗","茽","蚛","衆","衶","諥"],"pǐ pí":["仳"],wò:["仴","偓","卧","媉","幄","握","楃","沃","渥","濣","瓁","瞃","硪","肟","腛","臥","齷","龌"],jiàn:["件","俴","健","僭","剑","剣","剱","劍","劎","劒","劔","墹","寋","建","徤","擶","旔","楗","毽","洊","涧","澗","牮","珔","瞷","磵","礀","箭","糋","繝","腱","臶","舰","艦","荐","薦","覸","諓","諫","譛","谏","賎","賤","贱","趝","践","踐","踺","轞","鉴","鍳","鍵","鐱","鑑","鑒","鑬","鑳","键","間","餞","饯","𬣡"],"jià jiè jie":["价"],"yǎo fó":["仸"],"rèn rén":["任"],"fèn bīn":["份"],dī:["仾","低","啲","埞","堤","岻","彽","樀","滴","磾","秪","羝","袛","趆","隄","鞮","䃅"],fǎng:["仿","倣","旊","昉","昘","瓬","眆","紡","纺","舫","訪","访","髣","鶭"],zhōng:["伀","刣","妐","幒","彸","忠","柊","汷","泈","炂","盅","籦","終","终","舯","蔠","蜙","螤","螽","衳","衷","蹱","鈡","鍾","鐘","钟","锺","鴤","鼨"],pèi:["伂","佩","姵","帔","斾","旆","沛","浿","珮","蓜","轡","辔","配","霈","馷"],diào:["伄","吊","弔","掉","瘹","盄","窎","窵","竨","訋","釣","鈟","銱","鋽","鑃","钓","铞","雿","魡"],dùn:["伅","潡","炖","燉","盾","砘","碷","踲","逇","遁","遯","鈍","钝"],wěn:["伆","刎","吻","呅","抆","桽","稳","穏","穩","紊","肳","脗"],xǐn:["伈"],kàng:["伉","匟","囥","抗","炕","鈧","钪"],ài:["伌","僾","塧","壒","嫒","嬡","愛","懓","暧","曖","爱","瑷","璦","皧","瞹","砹","硋","碍","礙","薆","譺","賹","鑀","隘","靉","餲","馤","鱫","鴱"],"jì qí":["伎","薺"],"xiū xǔ":["休"],"jìn yín":["伒"],dǎn:["伔","刐","撢","玬","瓭","紞","胆","膽","衴","賧","赕","黕","𬘘"],fū:["伕","呋","娐","孵","尃","怤","懯","敷","旉","玞","砆","稃","筟","糐","綒","肤","膚","荂","荴","衭","趺","跗","邞","鄜","酜","鈇","麩","麬","麱","麸","𫓧"],tǎng:["伖","傥","儻","埫","戃","曭","爣","矘","躺","鎲","钂","镋"],yōu:["优","優","呦","嚘","峳","幽","忧","悠","憂","攸","櫌","滺","瀀","纋","羪","耰","逌","鄾","麀"],huǒ:["伙","夥","火","煷","邩","鈥","钬"],"huì kuài":["会","會","浍","璯"],yǔ:["伛","俁","俣","偊","傴","匬","噳","圄","圉","宇","寙","屿","嶼","庾","挧","敔","斞","楀","瑀","瘐","祤","禹","穥","窳","羽","與","萭","貐","鄅","頨","麌","齬","龉","㺄"],cuì:["伜","啛","忰","悴","毳","淬","焠","疩","瘁","竁","粋","粹","紣","綷","翆","翠","脃","脆","脺","膬","膵","臎","萃","襊","顇"],sǎn:["伞","傘","糤","繖","饊","馓"],wěi:["伟","伪","偉","偽","僞","儰","娓","寪","屗","崣","嶉","徫","愇","捤","暐","梶","洧","浘","渨","炜","煒","猥","玮","瑋","痿","緯","纬","腲","艉","芛","苇","荱","萎","葦","蒍","蔿","蜼","諉","诿","踓","鍡","韑","韙","韡","韪","頠","颹","骩","骪","骫","鮪","鲔","𫇭","𬀩","𬱟"],"chuán zhuàn":["传","傳"],"chē jū":["伡","俥","车"],"jū chē":["車"],yá:["伢","厑","厓","堐","岈","崕","崖","涯","漄","牙","玡","琊","睚","笌","芽","蚜","衙","齖"],qiàn:["伣","俔","倩","儙","刋","壍","嬱","悓","棈","椠","槧","欠","歉","皘","篏","篟","縴","芡","蒨","蔳","輤","𬘬"],shāng:["伤","傷","商","墒","慯","殇","殤","滳","漡","熵","蔏","螪","觞","觴","謪","鬺"],chāng:["伥","倀","娼","昌","椙","淐","猖","琩","菖","裮","錩","锠","閶","阊","鯧","鲳","鼚"],"chen cāng":["伧"],xùn:["伨","侚","卂","噀","巺","巽","徇","愻","殉","殾","汛","潠","狥","蕈","訊","訓","訙","训","讯","迅","迿","逊","遜","鑂","顨","馴","驯"],xìn:["伩","囟","孞","脪","舋","衅","訫","釁","阠","顖"],chǐ:["伬","侈","卶","叺","呎","垑","恥","歯","耻","肔","胣","蚇","裭","褫","豉","鉹","齒","齿"],"xián xuán":["伭"],"nú nǔ":["伮"],"bó bǎi":["伯"],"gū gù":["估"],nǐ:["伱","你","儞","孴","拟","擬","旎","晲","狔","苨","薿","隬"],"nì ní":["伲"],bàn:["伴","办","半","姅","怑","扮","瓣","秚","絆","绊","辦","鉡","靽"],xù:["伵","侐","勖","勗","卹","叙","垿","壻","婿","序","恤","敍","敘","旭","昫","朂","槒","欰","殈","汿","沀","洫","溆","漵","潊","烅","烼","煦","獝","珬","盢","瞁","稸","絮","続","緒","緖","續","绪","续","聓","聟","蓄","藚","訹","賉","酗","頊","鱮","㳚"],zhòu:["伷","僽","冑","呪","咒","咮","宙","昼","晝","甃","皱","皺","籀","籒","籕","粙","紂","縐","纣","绉","胄","荮","葤","詋","酎","駎","驟","骤","㤘","㑇"],shēn:["伸","侁","兟","呻","堔","妽","娠","屾","峷","扟","敒","曑","柛","氠","深","燊","珅","甡","甧","申","眒","砷","穼","籶","籸","糂","紳","绅","罙","罧","葠","蓡","蔘","薓","裑","訷","詵","诜","身","駪","鯓","鯵","鰺","鲹","鵢","𬳽"],qū:["伹","佉","匤","呿","坥","屈","岖","岴","嶇","憈","抾","敺","浀","煀","祛","筁","粬","胠","蛆","蛐","袪","覻","詘","诎","趍","躯","軀","阹","駆","駈","驅","驱","髷","魼","鰸","鱋","鶌","麯","麴","麹","黢","㭕","𪨰","䓛"],"sì cì":["伺"],bēng:["伻","嘣","奟","崩","嵭","閍"],"sì shì":["似"],"jiā qié gā":["伽"],"yǐ chì":["佁"],"diàn tián":["佃","钿"],"hān gàn":["佄"],mài:["佅","劢","勱","卖","唛","売","脈","衇","賣","迈","邁","霡","霢","麥","麦","鿏"],dàn:["但","僤","啖","啗","啿","噉","嚪","帎","憺","旦","柦","氮","沊","泹","淡","狚","疍","癚","禫","窞","腅","萏","蓞","蛋","蜑","觛","訑","誕","诞","贉","霮","餤","饏","駳","髧","鴠","𫢸"],bù:["佈","勏","吥","咘","埗","埠","布","廍","怖","悑","步","歨","歩","瓿","篰","荹","蔀","踄","部","郶","鈈","钚","餢"],bǐ:["佊","俾","匕","夶","妣","彼","朼","柀","比","毞","沘","疕","秕","笔","筆","粃","聛","舭","貏","鄙"],"zhāo shào":["佋"],cǐ:["佌","此","泚","皉","𫚖"],wèi:["位","卫","味","喂","墛","媦","慰","懀","未","渭","煟","熭","犚","猬","畏","緭","罻","胃","苿","菋","藯","蘶","蝟","螱","衛","衞","褽","謂","讆","讏","谓","躗","躛","軎","轊","鏏","霨","餧","餵","饖","魏","鮇","鳚"],zuǒ:["佐","左","繓"],yǎng:["佒","傟","养","坱","岟","慃","懩","攁","氧","氱","炴","痒","癢","礢","紻","蝆","軮","養","駚"],"tǐ tī":["体","體"],zhàn:["佔","偡","嶘","战","戦","戰","栈","桟","棧","湛","站","綻","绽","菚","蘸","虥","虦","譧","轏","驏"],"hé hē hè":["何"],bì:["佖","咇","哔","嗶","坒","堛","壁","奰","妼","婢","嬖","币","幣","幤","庇","庳","廦","弊","弻","弼","彃","必","怭","愊","愎","敝","斃","梐","毕","毖","毙","湢","滗","滭","潷","煏","熚","狴","獘","獙","珌","璧","畀","畢","疪","痹","痺","皕","睤","碧","筚","箅","箆","篦","篳","粊","綼","縪","繴","罼","腷","苾","荜","萆","萞","蓖","蓽","蔽","薜","蜌","袐","襅","襞","襣","觱","詖","诐","貱","贔","赑","跸","蹕","躃","躄","避","邲","鄨","鄪","鉍","鏎","鐴","铋","閇","閉","閟","闭","陛","韠","飶","饆","馝","駜","驆","髀","魓","鮅","鷝","鷩","鼊"],tuó:["佗","坨","堶","岮","槖","橐","沱","砣","砤","碢","紽","詑","跎","酡","阤","陀","陁","駝","駞","騨","驒","驝","驼","鮀","鴕","鸵","鼉","鼍","鼧","𬶍"],shé:["佘","舌","虵","蛥"],"yì dié":["佚","昳","泆","軼"],"fó fú bì bó":["佛"],"zuò zuō":["作"],gōu:["佝","沟","溝","痀","篝","簼","緱","缑","袧","褠","鈎","鉤","钩","鞲","韝"],nìng:["佞","侫","倿","寕","泞","澝","濘"],qú:["佢","劬","戵","斪","欋","欔","氍","淭","灈","爠","璖","璩","癯","磲","籧","絇","胊","臞","菃","葋","蕖","蘧","蟝","蠷","蠼","衐","衢","躣","軥","鑺","鴝","鸜","鸲","鼩"],"yōng yòng":["佣"],wǎ:["佤","咓","砙","邷"],kǎ:["佧","垰","胩","裃","鉲"],bāo:["佨","勹","包","孢","煲","笣","胞","苞","蕔","裦","褒","襃","闁","齙","龅"],"huái huí":["佪"],"gé hè":["佫"],lǎo:["佬","咾","恅","栳","狫","珯","硓","老","耂","荖","蛯","轑","銠","铑","鮱"],xiáng:["佭","庠","栙","祥","絴","翔","詳","跭"],gé:["佮","匌","呄","嗝","塥","愅","挌","搿","槅","櫊","滆","膈","臵","茖","觡","諽","輵","轕","閣","阁","隔","鞷","韐","韚","騔","骼","鮯"],yáng:["佯","劷","垟","崸","徉","扬","揚","敭","旸","昜","暘","杨","楊","洋","炀","珜","疡","瘍","眻","蛘","諹","輰","鍚","钖","阦","阳","陽","霷","颺","飏","鰑","鴹","鸉"],bǎi:["佰","捭","摆","擺","栢","百","竡","粨","襬"],fǎ:["佱","峜","法","灋","砝","鍅"],mǐng:["佲","凕","姳","慏","酩"],"èr nài":["佴"],hěn:["佷","很","狠","詪","𬣳"],huó:["佸","活"],guǐ:["佹","匦","匭","厬","垝","姽","宄","庋","庪","恑","晷","湀","癸","祪","簋","蛫","蟡","觤","詭","诡","軌","轨","陒","鬼"],quán:["佺","全","啳","埢","姾","峑","巏","拳","搼","权","楾","権","權","泉","洤","湶","牷","犈","瑔","痊","硂","筌","縓","荃","葲","蜷","蠸","觠","詮","诠","跧","踡","輇","辁","醛","銓","铨","闎","顴","颧","駩","騡","鬈","鰁","鳈","齤"],tiāo:["佻","庣","旫","祧","聎"],jiǎo:["佼","儌","孂","挢","搅","撟","撹","攪","敫","敽","敿","晈","暞","曒","灚","燞","狡","璬","皎","皦","絞","纐","绞","腳","臫","蟜","譑","賋","踋","鉸","铰","餃","饺","鱎","龣"],cì:["佽","刾","庛","朿","栨","次","絘","茦","莿","蛓","螆","賜","赐"],xíng:["侀","刑","哘","型","娙","形","洐","硎","蛵","邢","郉","鈃","鉶","銒","钘","铏","陉","陘","餳","𫰛"],tuō:["侂","咃","咜","圫","托","拕","拖","汑","脫","脱","莌","袥","託","讬","飥","饦","魠","鮵"],kǎn:["侃","偘","冚","坎","惂","砍","莰","輡","轗","顑"],zhí:["侄","値","值","埴","執","姪","嬂","戠","执","摭","植","樴","淔","漐","直","禃","絷","縶","聀","职","職","膱","蟙","跖","踯","蹠","躑","軄","釞","馽"],gāi:["侅","垓","姟","峐","晐","畡","祴","荄","該","该","豥","賅","賌","赅","陔"],lái:["來","俫","倈","崃","崍","庲","来","梾","棶","涞","淶","猍","琜","筙","箂","莱","萊","逨","郲","錸","铼","騋","鯠","鶆","麳"],kuǎ:["侉","咵","垮","銙"],gōng:["侊","公","功","匑","匔","塨","宫","宮","工","幊","弓","恭","攻","杛","碽","糼","糿","肱","觥","觵","躬","躳","髸","龔","龚","䢼"],lì:["例","俐","俪","傈","儮","儷","凓","利","力","励","勵","历","厉","厤","厯","厲","叓","吏","呖","唎","唳","嚦","囇","坜","塛","壢","娳","婯","屴","岦","悧","悷","慄","戾","搮","暦","曆","曞","朸","枥","栃","栗","栛","檪","櫔","櫪","欐","歴","歷","沥","沴","涖","溧","濿","瀝","爏","犡","猁","珕","瑮","瓅","瓑","瓥","疬","痢","癧","盭","睙","砅","砺","砾","磿","礪","礫","礰","禲","秝","立","笠","篥","粒","粝","糲","脷","苈","茘","荔","莅","莉","蒚","蒞","藶","蚸","蛎","蛠","蜧","蝷","蠇","蠣","詈","讈","赲","轢","轣","轹","酈","鉝","隶","隷","雳","靂","靋","鬁","鳨","鴗","鷅","麜","𫵷","𬍛"],yīn:["侌","凐","喑","噾","囙","因","垔","堙","姻","婣","愔","慇","栶","氤","洇","溵","濦","瘖","禋","秵","筃","絪","緸","茵","蒑","蔭","裀","諲","銦","铟","闉","阥","阴","陰","陻","隂","霒","霠","鞇","音","韾","駰","骃","齗","𬘡","𬤇","𬮱"],mǐ:["侎","孊","弭","敉","洣","渳","灖","米","粎","羋","脒","芈","葞","蔝","銤"],zhū:["侏","株","槠","橥","櫧","櫫","洙","潴","瀦","猪","珠","硃","秼","絑","茱","蕏","蛛","蝫","蠩","袾","誅","諸","诛","诸","豬","跦","邾","銖","铢","駯","鮢","鯺","鴸","鼄"],ān:["侒","偣","媕","安","峖","庵","桉","氨","盦","盫","腤","菴","萻","葊","蓭","誝","諳","谙","鞌","鞍","韽","馣","鮟","鵪","鶕","鹌","𩽾"],lù:["侓","僇","勎","勠","圥","坴","塶","娽","峍","廘","彔","录","戮","摝","椂","樚","淕","淥","渌","漉","潞","琭","璐","甪","盝","睩","硉","祿","禄","稑","穋","箓","簏","簬","簵","簶","籙","粶","蔍","蕗","虂","螰","賂","赂","趢","路","踛","蹗","輅","轆","辂","辘","逯","醁","錄","録","錴","鏴","陸","騄","騼","鯥","鴼","鵦","鵱","鷺","鹭","鹿","麓","𫘧"],móu:["侔","劺","恈","眸","蛑","謀","谋","踎","鍪","鴾","麰"],ér:["侕","儿","児","兒","峏","栭","洏","粫","而","胹","荋","袻","輀","轜","陑","隭","髵","鮞","鲕","鴯","鸸"],"dòng tǒng tóng":["侗"],chà:["侘","奼","姹","岔","汊","詫","诧"],chì:["侙","傺","勅","勑","叱","啻","彳","恜","慗","憏","懘","抶","敕","斥","杘","湁","灻","炽","烾","熾","痓","痸","瘛","翄","翅","翤","翨","腟","赤","趩","遫","鉓","雴","飭","饬","鶒","鷘"],"gòng gōng":["供","共"],zhōu:["侜","周","喌","州","徟","洲","淍","炿","烐","珘","矪","舟","謅","譸","诌","賙","赒","輈","輖","辀","週","郮","銂","霌","駲","騆","鵃","鸼"],rú:["侞","儒","嚅","如","嬬","孺","帤","曘","桇","渪","濡","筎","茹","蕠","薷","蝡","蠕","袽","襦","邚","醹","銣","铷","顬","颥","鱬","鴑","鴽"],"jiàn cún":["侟"],xiá:["侠","俠","匣","峡","峽","敮","暇","柙","炠","烚","狎","狭","狹","珨","瑕","硖","硤","碬","祫","筪","縖","翈","舝","舺","蕸","赮","轄","辖","遐","鍜","鎋","陜","陿","霞","騢","魻","鶷","黠"],lǚ:["侣","侶","儢","吕","呂","屡","屢","履","挔","捛","旅","梠","焒","祣","稆","穭","絽","縷","缕","膂","膐","褛","褸","郘","鋁","铝"],ta:["侤"],"jiǎo yáo":["侥","僥","徺"],zhēn:["侦","偵","寊","帧","帪","幀","搸","斟","桢","楨","榛","樼","殝","浈","湞","潧","澵","獉","珍","珎","瑧","甄","眞","真","砧","碪","祯","禎","禛","箴","胗","臻","葴","蒖","蓁","薽","貞","贞","轃","遉","酙","針","鉁","錱","鍼","针","鱵"],"cè zè zhāi":["侧","側"],kuài:["侩","儈","凷","哙","噲","圦","块","塊","巜","廥","快","旝","欳","狯","獪","筷","糩","脍","膾","郐","鄶","鱠","鲙"],chái:["侪","儕","喍","柴","犲","祡","豺"],nóng:["侬","儂","农","哝","噥","檂","欁","浓","濃","燶","禯","秾","穠","脓","膿","蕽","襛","譨","農","辳","醲","鬞","𬪩"],jǐn:["侭","儘","卺","厪","巹","槿","漌","瑾","紧","緊","菫","蓳","謹","谨","錦","锦","饉","馑"],"hóu hòu":["侯","矦"],jiǒng:["侰","僒","冏","囧","泂","澃","炯","烱","煚","煛","熲","燛","窘","綗","褧","迥","逈","顈","颎","䌹"],"chěng tǐng":["侱"],"zhèn zhēn":["侲","揕"],zuò:["侳","做","唑","坐","岝","岞","座","祚","糳","胙","葃","葄","蓙","袏","阼"],qīn:["侵","兓","媇","嵚","嶔","欽","衾","誛","钦","顉","駸","骎","鮼"],jú:["侷","啹","婅","局","巈","椈","橘","泦","淗","湨","焗","犑","狊","粷","菊","蘜","趜","跼","蹫","輂","郹","閰","駶","驧","鵙","鵴","鶪","鼰","鼳","䴗"],"shù dōu":["侸"],tǐng:["侹","圢","娗","挺","涏","烶","珽","脡","艇","誔","頲","颋"],shèn:["侺","愼","慎","昚","涁","渗","滲","瘆","瘮","眘","祳","肾","胂","脤","腎","蜃","蜄","鋠"],"tuì tuó":["侻"],nán:["侽","喃","娚","抩","暔","枏","柟","楠","男","畘","莮","萳","遖"],xiāo:["侾","哓","嘵","嚻","囂","婋","宯","宵","庨","彇","揱","枭","枵","梟","櫹","歊","毊","消","潇","瀟","灱","灲","烋","焇","猇","獢","痚","痟","硝","硣","窙","箫","簘","簫","綃","绡","翛","膮","萧","蕭","虈","虓","蟂","蟏","蟰","蠨","踃","逍","銷","销","霄","颵","驍","骁","髇","髐","魈","鴞","鴵","鷍","鸮"],"biàn pián":["便","緶","缏"],tuǐ:["俀","腿","蹆","骽"],xì:["係","匸","卌","呬","墍","屃","屓","屭","忥","怬","恄","椞","潝","潟","澙","熂","犔","磶","禊","細","綌","縘","细","绤","舃","舄","蕮","虩","衋","覤","赩","趇","郤","釳","阋","隙","隟","霼","餼","饩","鬩","黖"],cù:["促","媨","憱","猝","瘄","瘯","簇","縬","脨","蔟","誎","趗","踧","踿","蹙","蹴","蹵","醋","顣","鼀"],é:["俄","囮","娥","峉","峨","峩","涐","珴","皒","睋","磀","莪","訛","誐","譌","讹","迗","鈋","鋨","锇","頟","額","额","魤","鵝","鵞","鹅"],qiú:["俅","叴","唒","囚","崷","巯","巰","扏","梂","殏","毬","求","汓","泅","浗","湭","煪","犰","玌","球","璆","皳","盚","紌","絿","肍","芁","莍","虬","虯","蛷","裘","觓","觩","訄","訅","賕","赇","逎","逑","遒","酋","釚","釻","銶","頄","鮂","鯄","鰽","鼽","𨱇"],xú:["俆","徐","禑"],"guàng kuāng":["俇"],kù:["俈","喾","嚳","库","庫","廤","瘔","絝","绔","袴","裤","褲","酷"],wù:["俉","务","務","勿","卼","坞","塢","奦","婺","寤","屼","岉","嵨","忢","悞","悟","悮","戊","扤","晤","杌","溩","焐","熃","物","痦","矹","窹","粅","蘁","誤","误","鋈","阢","隖","雾","霚","霧","靰","騖","骛","鶩","鹜","鼿","齀"],jùn:["俊","儁","呁","埈","寯","峻","懏","捃","攟","晙","棞","燇","珺","畯","竣","箟","蜠","賐","郡","陖","餕","馂","駿","骏","鵔","鵕","鵘","䐃"],liáng:["俍","墚","梁","椋","樑","粮","粱","糧","良","輬","辌","𫟅"],zǔ:["俎","唨","爼","祖","組","组","詛","诅","鎺","阻","靻"],"qiào xiào":["俏"],yǒng:["俑","勇","勈","咏","埇","塎","嵱","彮","怺","恿","悀","惥","愑","愹","慂","柡","栐","永","泳","湧","甬","蛹","詠","踊","踴","鯒","鲬"],hùn:["俒","倱","圂","尡","慁","掍","溷","焝","睴","觨","諢","诨"],jìng:["俓","傹","境","妌","婙","婧","弪","弳","径","徑","敬","曔","桱","梷","浄","瀞","獍","痉","痙","竞","竟","竫","競","竸","胫","脛","莖","誩","踁","迳","逕","鏡","镜","靖","静","靜","鵛"],sàn:["俕","閐"],pěi:["俖"],sú:["俗"],xī:["俙","僖","兮","凞","卥","厀","吸","唏","唽","嘻","噏","嚱","夕","奚","嬆","嬉","屖","嵠","巇","希","徆","徯","息","悉","悕","惁","惜","昔","晞","晰","晳","曦","析","桸","榽","樨","橀","欷","氥","汐","浠","淅","渓","溪","烯","焁","焈","焟","熄","熈","熙","熹","熺","熻","燨","爔","牺","犀","犠","犧","琋","瘜","皙","睎","瞦","矽","硒","磎","礂","稀","穸","窸","粞","糦","緆","繥","羲","翕","翖","肸","肹","膝","舾","莃","菥","蒠","蜥","螅","蟋","蠵","西","觹","觽","觿","譆","谿","豀","豨","豯","貕","赥","邜","鄎","酅","醯","釸","錫","鏭","鐊","鑴","锡","隵","餏","饎","饻","鯑","鵗","鸂","鼷"],lǐ:["俚","娌","峢","峲","李","欚","浬","澧","理","礼","禮","粴","裏","裡","豊","逦","邐","醴","鋰","锂","鯉","鱧","鱱","鲤","鳢"],bǎo:["保","堢","媬","宝","寚","寳","寶","珤","緥","葆","藵","褓","賲","靌","飹","飽","饱","駂","鳵","鴇","鸨"],"yú shù yù":["俞"],"sì qí":["俟"],"xìn shēn":["信"],xiū:["俢","修","咻","庥","樇","烌","羞","脙","脩","臹","貅","銝","鎀","飍","饈","馐","髤","髹","鮴","鱃","鵂","鸺","䗛"],dì:["俤","偙","僀","埊","墑","墬","娣","帝","怟","旳","梊","焍","玓","甋","眱","睇","碲","祶","禘","第","締","缔","腣","菂","蒂","蔕","蝃","蝭","螮","諦","谛","踶","递","逓","遞","遰","鉪","𤧛","䗖"],chóu:["俦","儔","嬦","惆","愁","懤","栦","燽","畴","疇","皗","稠","筹","籌","絒","綢","绸","菗","詶","讎","讐","踌","躊","酧","酬","醻","雔","雠","雦"],zhì:["俧","偫","儨","制","劕","垁","娡","寘","帙","帜","幟","庢","庤","廌","彘","徏","徝","志","忮","懥","懫","挃","挚","掷","摯","擲","旘","晊","智","栉","桎","梽","櫍","櫛","治","洷","滍","滞","滯","潌","瀄","炙","熫","狾","猘","璏","瓆","痔","痣","礩","祑","秩","秷","稚","稺","穉","窒","紩","緻","置","翐","膣","至","致","芖","蛭","袟","袠","製","覟","觗","觯","觶","誌","豑","豒","貭","質","贄","质","贽","跱","踬","躓","輊","轾","郅","銍","鋕","鑕","铚","锧","陟","隲","雉","駤","騭","騺","驇","骘","鯯","鴙","鷙","鸷","𬃊"],"liǎ liǎng":["俩"],jiǎn:["俭","倹","儉","减","剪","堿","弿","彅","戩","戬","拣","挸","捡","揀","撿","枧","柬","梘","检","検","檢","減","湕","瀽","瑐","睑","瞼","硷","碱","礆","笕","筧","简","簡","絸","繭","翦","茧","藆","蠒","裥","襇","襉","襺","詃","謇","謭","譾","谫","趼","蹇","鐗","鬋","鰎","鹸","鹻","鹼"],huò:["俰","咟","嚯","嚿","奯","彠","惑","或","擭","旤","曤","檴","沎","湱","瀖","獲","癨","眓","矐","祸","禍","穫","窢","耯","臛","艧","获","蒦","藿","蠖","謋","貨","货","鍃","鑊","镬","雘","霍","靃","韄","㸌"],"jù jū":["俱","据","鋸","锯"],xiào:["俲","傚","効","咲","哮","啸","嘋","嘨","嘯","孝","效","斅","斆","歗","涍","熽","笑","詨","誟"],pái:["俳","徘","牌","犤","猅","簰","簲","輫"],biào:["俵","鰾","鳔"],"chù tì":["俶"],fèi:["俷","剕","厞","吠","屝","废","廃","廢","昲","曊","櫠","沸","濷","狒","癈","肺","萉","費","费","鐨","镄","陫","靅","鼣"],fèng:["俸","凤","奉","湗","焨","煈","賵","赗","鳯","鳳","鴌"],ǎn:["俺","唵","埯","揞","罯","銨","铵"],bèi:["俻","倍","偝","偹","備","僃","备","悖","惫","愂","憊","昁","梖","焙","牬","犕","狈","狽","珼","琲","碚","禙","糒","苝","蓓","蛽","褙","貝","贝","軰","輩","辈","邶","郥","鄁","鋇","鐾","钡","鞁","鞴","𬇙"],yù:["俼","儥","喅","喩","喻","域","堉","妪","嫗","寓","峪","嶎","庽","彧","御","愈","慾","戫","昱","棛","棜","棫","櫲","欎","欝","欲","毓","浴","淯","滪","潏","澦","灪","焴","煜","燏","燠","爩","狱","獄","玉","琙","瘉","癒","砡","硢","硲","礇","礖","礜","禦","秗","稢","稶","篽","籞","籲","粖","緎","罭","聿","肀","艈","芋","芌","茟","蒮","蓣","蓹","蕷","蘌","蜟","蜮","袬","裕","誉","諭","譽","谕","豫","軉","輍","逳","遇","遹","郁","醧","鈺","鋊","錥","鐭","钰","閾","阈","雤","霱","預","预","飫","饇","饫","馭","驈","驭","鬰","鬱","鬻","魊","鱊","鳿","鴥","鴧","鴪","鵒","鷸","鸒","鹆","鹬"],xīn:["俽","噺","妡","嬜","廞","心","忄","忻","惞","新","昕","杺","欣","歆","炘","盺","薪","訢","辛","邤","鈊","鋅","鑫","锌","馨","馫","䜣","𫷷"],"hǔ chí":["俿"],jiù:["倃","僦","匓","匛","匶","厩","咎","就","廄","廏","廐","慦","捄","救","旧","柩","柾","桕","欍","殧","疚","臼","舅","舊","鯦","鷲","鹫","麔","齨","㠇"],yáo:["倄","傜","嗂","垚","堯","姚","媱","尧","尭","峣","嶢","嶤","徭","揺","搖","摇","摿","暚","榣","烑","爻","猺","珧","瑤","瑶","磘","窑","窯","窰","肴","蘨","謠","謡","谣","軺","轺","遙","遥","邎","顤","颻","飖","餆","餚","鰩","鱙","鳐"],"cuì zú":["倅"],"liǎng liǎ":["倆"],wǎn:["倇","唍","婉","惋","挽","晚","晥","晩","晼","梚","椀","琬","畹","皖","盌","碗","綩","綰","绾","脘","萖","踠","輓","鋔"],zǒng:["倊","偬","傯","嵸","总","惣","捴","搃","摠","燪","総","緫","縂","總","蓗"],guān:["倌","关","官","棺","瘝","癏","窤","蒄","関","闗","關","鰥","鱞","鳏"],tiǎn:["倎","唺","忝","悿","晪","殄","淟","睓","腆","舔","覥","觍","賟","錪","餂"],mén:["們","扪","捫","璊","菛","虋","鍆","钔","門","閅","门","𫞩"],"dǎo dào":["倒"],"tán tàn":["倓","埮"],"juè jué":["倔"],chuí:["倕","垂","埀","捶","搥","桘","棰","槌","箠","腄","菙","錘","鎚","锤","陲","顀"],xìng:["倖","姓","婞","嬹","幸","性","悻","杏","涬","緈","臖","荇","莕","葕"],péng:["倗","傰","塜","塳","弸","憉","捀","朋","棚","椖","樥","硼","稝","竼","篷","纄","膨","芃","蓬","蘕","蟚","蟛","袶","輣","錋","鑝","韸","韼","騯","髼","鬅","鬔","鵬","鹏"],"tǎng cháng":["倘"],hòu:["候","厚","后","垕","堠","後","洉","茩","豞","逅","郈","鮜","鱟","鲎","鲘"],tì:["倜","剃","嚏","嚔","屉","屜","悌","悐","惕","惖","戻","掦","替","朑","歒","殢","涕","瓋","笹","籊","薙","褅","逖","逷","髰","鬀","鬄"],gàn:["倝","凎","幹","榦","檊","淦","灨","盰","紺","绀","詌","贑","赣","骭","㽏"],"liàng jìng":["倞","靓"],suī:["倠","哸","夊","滖","濉","眭","睢","芕","荽","荾","虽","雖","鞖"],"chàng chāng":["倡"],jié:["倢","偼","傑","刦","刧","刼","劫","劼","卩","卪","婕","媫","孑","岊","崨","嵥","嶻","巀","幯","截","捷","掶","擮","昅","杢","杰","桀","桝","楬","楶","榤","洁","滐","潔","狤","睫","礍","竭","節","羯","莭","蓵","蛣","蜐","蠘","蠞","蠽","衱","袺","訐","詰","誱","讦","踕","迼","鉣","鍻","镼","頡","鮚","鲒","㛃"],"kǒng kōng":["倥"],juàn:["倦","劵","奆","慻","桊","淃","狷","獧","眷","睊","睠","絭","絹","绢","罥","羂","腃","蔨","鄄","餋"],zōng:["倧","堫","宗","嵏","嵕","惾","朡","棕","椶","熧","猣","磫","緃","翪","腙","葼","蝬","豵","踨","踪","蹤","鍐","鑁","騌","騣","骔","鬃","鬉","鬷","鯮","鯼"],ní:["倪","坭","埿","尼","屔","怩","淣","猊","籾","聣","蚭","蜺","觬","貎","跜","輗","郳","鈮","铌","霓","馜","鯢","鲵","麑","齯","𫐐","𫠜"],zhuō:["倬","拙","捉","桌","梲","棁","棳","槕","涿","窧","鐯","䦃"],"wō wēi":["倭"],luǒ:["倮","剆","曪","瘰","癳","臝","蓏","蠃","裸","躶"],sōng:["倯","凇","娀","崧","嵩","庺","憽","松","枀","枩","柗","梥","檧","淞","濍","硹","菘","鬆"],lèng:["倰","堎","愣","睖","踜"],zì:["倳","剚","字","恣","渍","漬","牸","眥","眦","胔","胾","自","茡","荢"],bèn:["倴","坌","捹","撪","渀","笨","逩"],cǎi:["倸","啋","婇","彩","採","棌","毝","睬","綵","跴","踩"],zhài:["债","債","寨","瘵","砦"],yē:["倻","吔","噎","擨","暍","椰","歋","潱","蠮"],shà:["倽","唼","喢","歃","箑","翜","翣","萐","閯","霎"],qīng:["倾","傾","卿","圊","寈","氢","氫","淸","清","蜻","軽","輕","轻","郬","錆","鑋","靑","青","鯖"],yīng:["偀","嘤","噟","嚶","婴","媖","嫈","嬰","孆","孾","愥","撄","攖","朠","桜","樱","櫻","渶","煐","珱","瑛","璎","瓔","甇","甖","碤","礯","緓","纓","绬","缨","罂","罃","罌","膺","英","莺","蘡","蝧","蠳","褮","譻","賏","軈","鑍","锳","霙","韺","鴬","鶑","鶧","鶯","鷪","鷹","鸎","鸚","鹦","鹰","䓨"],"chēng chèn":["偁","爯"],ruǎn:["偄","朊","瑌","瓀","碝","礝","腝","軟","輭","软","阮"],"zhòng tóng":["偅"],chǔn:["偆","惷","睶","萶","蠢","賰"],"jiǎ jià":["假"],"jì jié":["偈"],"bǐng bìng":["偋"],ruò:["偌","叒","嵶","弱","楉","焫","爇","箬","篛","蒻","鄀","鰙","鰯","鶸"],tí:["偍","厗","啼","嗁","崹","漽","瑅","睼","禵","稊","緹","缇","罤","蕛","褆","謕","趧","蹄","蹏","醍","鍗","題","题","騠","鮷","鯷","鳀","鵜","鷤","鹈","𫘨"],wēi:["偎","危","喴","威","媙","嶶","巍","微","愄","揋","揻","椳","楲","溦","烓","煨","燰","癓","縅","葨","葳","薇","蜲","蝛","覣","詴","逶","隇","隈","霺","鰃","鰄","鳂"],piān:["偏","囨","媥","楄","犏","篇","翩","鍂"],yàn:["偐","厌","厭","唁","喭","嚈","嚥","堰","妟","姲","嬊","嬿","宴","彥","彦","敥","晏","暥","曕","曣","滟","灎","灔","灧","灩","焔","焰","焱","熖","燄","牪","猒","砚","硯","艳","艶","艷","覎","觃","觾","諺","讌","讞","谚","谳","豓","豔","贋","贗","赝","軅","酀","酽","醼","釅","雁","餍","饜","騐","験","騴","驗","驠","验","鬳","鳫","鴈","鴳","鷃","鷰","齞"],"tǎng dàng":["偒"],è:["偔","匎","卾","厄","呝","咢","噩","垩","堊","堮","岋","崿","廅","悪","愕","戹","扼","搤","搹","擜","櫮","歞","歺","湂","琧","砈","砐","硆","腭","苊","萼","蕚","蚅","蝁","覨","諤","讍","谔","豟","軛","軶","轭","遌","遏","遻","鄂","鈪","鍔","鑩","锷","阨","阸","頞","顎","颚","餓","餩","饿","鰐","鰪","鱷","鳄","鶚","鹗","齃","齶","𫫇","𥔲"],xié:["偕","勰","协","協","嗋","垥","奊","恊","愶","拹","携","撷","擕","擷","攜","斜","旪","熁","燲","綊","緳","縀","缬","翓","胁","脅","脇","脋","膎","蝢","衺","襭","諧","讗","谐","鞋","鞵","龤","㙦"],chě:["偖","扯","撦"],shěng:["偗","渻","眚"],chā:["偛","嗏","扠","挿","插","揷","疀","臿","艖","銟","鍤","锸","餷"],huáng:["偟","凰","喤","堭","墴","媓","崲","徨","惶","楻","湟","煌","獚","瑝","璜","癀","皇","磺","穔","篁","簧","艎","葟","蝗","蟥","諻","趪","遑","鍠","鐄","锽","隍","韹","餭","騜","鰉","鱑","鳇","鷬","黃","黄","𨱑"],yǎo:["偠","咬","婹","宎","岆","杳","柼","榚","溔","狕","窅","窈","舀","苭","闄","騕","鷕","齩"],"chǒu qiào":["偢"],yóu:["偤","尤","庮","怣","沋","油","浟","游","犹","猶","猷","由","疣","秞","肬","莜","莸","蕕","蚰","蝣","訧","輏","輶","逰","遊","邮","郵","鈾","铀","駀","魷","鮋","鱿","鲉","𬨎"],xū:["偦","墟","媭","嬃","楈","欨","歔","燸","疞","盱","綇","縃","繻","胥","蕦","虗","虚","虛","蝑","裇","訏","許","諝","譃","谞","鑐","需","須","须","顼","驉","鬚","魆","魖","𬣙","𦈡"],zhā:["偧","哳","抯","挓","揸","摣","樝","渣","皶","觰","譇","齄","齇"],cī:["偨","疵","蠀","趀","骴","髊","齹"],bī:["偪","屄","楅","毴","豍","逼","鰏","鲾","鵖"],xún:["偱","噚","寻","尋","峋","巡","廵","循","恂","揗","攳","旬","杊","栒","桪","樳","洵","浔","潯","燅","燖","珣","璕","畃","紃","荀","蟳","詢","询","鄩","鱏","鱘","鲟","𬘓","𬩽","𬍤","𬊈"],"cāi sī":["偲"],duān:["偳","媏","端","褍","鍴"],ǒu:["偶","吘","嘔","耦","腢","蕅","藕","𬉼","𠙶"],tōu:["偷","偸","鍮"],"zán zá zǎ":["偺"],"lǚ lóu":["偻","僂"],fèn:["偾","僨","奋","奮","弅","忿","愤","憤","瀵","瞓","秎","粪","糞","膹","鱝","鲼"],"kuǐ guī":["傀"],sǒu:["傁","叜","叟","嗾","櫢","瞍","薮","藪"],"zhì sī tí":["傂"],sù:["傃","僳","嗉","塐","塑","夙","嫊","愫","憟","榡","樎","樕","殐","泝","涑","溯","溸","潚","潥","玊","珟","璛","簌","粛","粟","素","縤","肃","肅","膆","蔌","藗","觫","訴","謖","诉","谡","趚","蹜","速","遡","遬","鋉","餗","驌","骕","鱐","鷫","鹔","𫗧"],xiā:["傄","煆","瞎","虲","谺","颬","鰕"],"yuàn yuán":["傆","媛"],rǒng:["傇","冗","宂","氄","軵"],nù:["傉","怒"],yùn:["傊","孕","恽","惲","愠","慍","枟","腪","蕴","薀","藴","蘊","褞","貟","运","運","郓","鄆","酝","醖","醞","韗","韞","韵","韻","餫"],"gòu jiǎng":["傋"],mà:["傌","嘜","榪","睰","祃","禡","罵","閁","駡","骂","鬕"],bàng:["傍","塝","棒","玤","稖","艕","蒡","蜯","謗","谤","鎊","镑"],diān:["傎","厧","嵮","巅","巓","巔","掂","攧","敁","槇","滇","癫","癲","蹎","顚","顛","颠","齻"],táng:["傏","唐","啺","坣","堂","塘","搪","棠","榶","溏","漟","煻","瑭","磄","禟","篖","糃","糖","糛","膅","膛","蓎","螗","螳","赯","踼","鄌","醣","鎕","隚","餹","饄","鶶","䣘"],hào:["傐","哠","恏","昊","昦","晧","暠","暤","暭","曍","浩","淏","澔","灏","灝","皓","皜","皞","皡","皥","耗","聕","薃","號","鄗","顥","颢","鰝"],"xī xì":["傒"],shān:["傓","删","刪","剼","圸","山","挻","搧","柵","檆","潸","澘","煽","狦","珊","笘","縿","羴","羶","脠","舢","芟","衫","跚","軕","邖","閊","鯅"],"qiàn jiān":["傔"],"què jué":["傕","埆"],"cāng chen":["傖"],róng:["傛","媶","嫆","嬫","容","峵","嵘","嶸","戎","搈","曧","栄","榕","榮","榵","毧","溶","瀜","烿","熔","狨","瑢","穁","絨","绒","羢","肜","茙","茸","荣","蓉","蝾","融","螎","蠑","褣","鎔","镕","駥"],"tà tàn":["傝"],suō:["傞","唆","嗍","嗦","娑","摍","桫","梭","睃","簑","簔","羧","莏","蓑","趖","鮻"],dǎi:["傣","歹"],zài:["傤","儎","再","在","扗","洅","載","酨"],gǔ:["傦","古","啒","尳","愲","榖","榾","汩","淈","濲","瀔","牯","皷","皼","盬","瞽","穀","罟","羖","股","脵","臌","薣","蛊","蠱","詁","诂","轂","逧","鈷","钴","餶","馉","鼓","鼔","𦙶"],bīn:["傧","宾","彬","斌","椕","滨","濒","濱","濵","瀕","繽","缤","虨","豩","豳","賓","賔","邠","鑌","镔","霦","顮"],chǔ:["储","儲","杵","椘","楚","楮","檚","濋","璴","础","礎","禇","處","齭","齼","𬺓"],nuó:["傩","儺","挪","梛","橠"],"cān càn":["傪"],lěi:["傫","儡","厽","垒","塁","壘","壨","櫐","灅","癗","矋","磊","礨","耒","蕌","蕾","藟","蘽","蠝","誄","讄","诔","鑸","鸓"],cuī:["催","凗","墔","崔","嵟","慛","摧","榱","獕","磪","鏙"],yōng:["傭","嗈","墉","壅","嫞","庸","廱","慵","拥","擁","滽","灉","牅","痈","癕","癰","臃","邕","郺","鄘","鏞","镛","雍","雝","饔","鱅","鳙","鷛"],"zāo cáo":["傮"],sǒng:["傱","嵷","怂","悚","愯","慫","竦","耸","聳","駷","㧐"],ào:["傲","坳","垇","墺","奡","嫯","岙","岰","嶴","懊","擙","澳","鏊","驁","骜"],"qī còu":["傶"],chuǎng:["傸","磢","闖","闯"],shǎ:["傻","儍"],hàn:["傼","垾","悍","憾","扞","捍","撖","撼","旱","晘","暵","汉","涆","漢","瀚","焊","猂","皔","睅","翰","莟","菡","蛿","蜭","螒","譀","輚","釬","銲","鋎","雗","頷","顄","颔","駻","鶾"],zhāng:["傽","嫜","张","張","彰","慞","暲","樟","漳","獐","璋","章","粻","蔁","蟑","遧","鄣","鏱","餦","騿","鱆","麞"],"yān yàn":["傿","墕","嬮"],"piào biāo":["僄","骠"],liàn:["僆","堜","媡","恋","戀","楝","殓","殮","湅","潋","澰","瀲","炼","煉","瑓","練","纞","练","萰","錬","鍊","鏈","链","鰊","𬶠"],màn:["㵘","僈","墁","幔","慢","曼","漫","澷","熳","獌","縵","缦","蔄","蘰","鄤","鏝","镘","𬜬"],"tàn tǎn":["僋"],yíng:["僌","営","塋","嬴","攍","楹","櫿","溁","溋","滢","潆","濙","濚","濴","瀅","瀛","瀠","瀯","灐","灜","熒","營","瑩","盁","盈","禜","籝","籯","縈","茔","荧","莹","萤","营","萦","萾","蓥","藀","蛍","蝇","蝿","螢","蠅","謍","贏","赢","迎","鎣"],dòng:["働","冻","凍","动","動","姛","戙","挏","栋","棟","湩","硐","胨","胴","腖","迵","霘","駧"],zhuàn:["僎","啭","囀","堟","撰","灷","瑑","篆","腞","蒃","襈","譔","饌","馔"],xiàng:["像","勨","向","嚮","姠","嶑","曏","橡","珦","缿","蟓","衖","襐","象","鐌","項","项","鱌"],shàn:["僐","善","墠","墡","嬗","擅","敾","椫","樿","歚","汕","灗","疝","磰","繕","缮","膳","蟮","蟺","訕","謆","譱","讪","贍","赡","赸","鄯","鐥","饍","騸","骟","鱓","鱔","鳝","𫮃"],"tuí tuǐ":["僓"],zǔn:["僔","噂","撙","譐"],pú:["僕","匍","圤","墣","濮","獛","璞","瞨","穙","莆","菐","菩","葡","蒱","蒲","贌","酺","鏷","镤"],láo:["僗","劳","労","勞","哰","崂","嶗","憥","朥","浶","牢","痨","癆","窂","簩","醪","鐒","铹","顟","髝","𫭼"],chǎng:["僘","厰","廠","敞","昶","氅","鋹","𬬮"],guāng:["僙","光","咣","垙","姯","洸","灮","炗","炚","炛","烡","珖","胱","茪","輄","銧","黆","𨐈"],liáo:["僚","嘹","嫽","寥","寮","尞","屪","嵺","嶚","嶛","廫","憀","敹","暸","橑","獠","璙","疗","療","竂","簝","繚","缭","聊","膋","膫","藔","蟟","豂","賿","蹘","辽","遼","飉","髎","鷯","鹩"],dèng:["僜","凳","墱","嶝","櫈","瞪","磴","覴","邓","鄧","隥"],"chán zhàn zhuàn":["僝"],bō:["僠","嶓","拨","撥","播","波","溊","玻","癶","盋","砵","碆","礡","缽","菠","袰","蹳","鉢","钵","餑","饽","驋","鱍","𬭛"],huì:["僡","匯","卉","喙","嘒","嚖","圚","嬒","寭","屶","屷","彗","彙","彚","徻","恚","恵","惠","慧","憓","懳","晦","暳","槥","橞","檅","櫘","汇","泋","滙","潓","烩","燴","獩","璤","瞺","硊","秽","穢","篲","絵","繪","绘","翙","翽","荟","蔧","蕙","薈","薉","蟪","詯","誨","諱","譓","譿","讳","诲","賄","贿","鐬","闠","阓","靧","頮","顪","颒","餯","𬤝","𬭬"],chuǎn:["僢","喘","舛","荈","踳"],"tiě jiàn":["僣"],sēng:["僧","鬙"],xiàn:["僩","僴","哯","垷","塪","姭","娊","宪","岘","峴","憲","撊","晛","橌","橺","涀","瀗","献","獻","现","現","県","睍","粯","糮","絤","綫","線","线","缐","羡","羨","腺","臔","臽","苋","莧","誢","豏","鋧","錎","限","陥","陷","霰","餡","馅","麲","鼸","𬀪","𪾢"],"yù jú":["僪"],"è wū":["僫"],"tóng zhuàng":["僮"],lǐn:["僯","凛","凜","廩","廪","懍","懔","撛","檁","檩","澟","癛","癝"],gù:["僱","凅","固","堌","崓","崮","故","梏","棝","牿","痼","祻","錮","锢","雇","顧","顾","鯝","鲴"],jiāng:["僵","壃","姜","橿","殭","江","畕","疅","礓","繮","缰","翞","茳","葁","薑","螀","螿","豇","韁","鱂","鳉"],mǐn:["僶","冺","刡","勄","悯","惽","愍","慜","憫","抿","敃","敏","敯","泯","潣","皿","笢","笽","簢","蠠","閔","閩","闵","闽","鰵","鳘","黽"],jìn:["僸","凚","噤","嚍","墐","壗","妗","嬧","搢","晉","晋","枃","殣","浕","浸","溍","濅","濜","烬","煡","燼","琎","瑨","璶","盡","祲","縉","缙","荩","藎","覲","觐","賮","贐","赆","近","进","進","靳","齽"],"jià jie":["價"],qiào:["僺","峭","帩","撬","殻","窍","竅","誚","诮","躈","陗","鞩","韒","髚"],pì:["僻","媲","嫓","屁","澼","甓","疈","譬","闢","鷿","鸊","䴙"],sài:["僿","簺","賽","赛"],"chán tǎn shàn":["儃"],"dāng dàng":["儅","当","闣"],xuān:["儇","喧","塇","媗","宣","愃","愋","揎","昍","暄","煊","煖","瑄","睻","矎","禤","箮","翧","翾","萱","萲","蓒","蕿","藼","蘐","蝖","蠉","諠","諼","譞","谖","軒","轩","鍹","駽","鰚","𫓶","𫍽"],"dān dàn":["儋","擔","瘅"],càn:["儏","澯","灿","燦","璨","粲","薒","謲"],"bīn bìn":["儐"],"án àn":["儑"],tái:["儓","坮","嬯","抬","擡","檯","炱","炲","籉","臺","薹","跆","邰","颱","鮐","鲐"],lán:["儖","兰","囒","婪","岚","嵐","幱","拦","攔","斓","斕","栏","欄","欗","澜","瀾","灆","灡","燣","燷","璼","篮","籃","籣","繿","葻","蓝","藍","蘫","蘭","褴","襕","襤","襴","襽","譋","讕","谰","躝","鑭","镧","闌","阑","韊","𬒗"],"nǐ yì ài yí":["儗"],méng:["儚","幪","曚","朦","橗","檬","氋","溕","濛","甍","甿","盟","礞","艨","莔","萌","蕄","虻","蝱","鄳","鄸","霿","靀","顭","饛","鯍","鸏","鹲","𫑡","㠓"],níng:["儜","凝","咛","嚀","嬣","柠","橣","檸","狞","獰","聍","聹","薴","鑏","鬡","鸋"],qióng:["儝","卭","宆","惸","憌","桏","橩","焪","焭","煢","熍","琼","瓊","睘","穷","穹","窮","竆","笻","筇","舼","茕","藑","藭","蛩","蛬","赹","跫","邛","銎","䓖"],liè:["儠","冽","列","劣","劽","埒","埓","姴","峛","巤","挒","捩","栵","洌","浖","烈","烮","煭","犣","猎","猟","獵","聗","脟","茢","蛚","趔","躐","迾","颲","鬛","鬣","鮤","鱲","鴷","䴕","𫚭"],kuǎng:["儣","夼","懭"],bào:["儤","勽","報","忁","报","抱","曓","爆","犦","菢","虣","蚫","豹","鉋","鑤","铇","骲","髱","鮑","鲍"],biāo:["儦","墂","幖","彪","标","標","滮","瀌","熛","爂","猋","瘭","磦","膘","臕","謤","贆","鏢","鑣","镖","镳","颮","颷","飆","飇","飈","飊","飑","飙","飚","驫","骉","髟"],zǎn:["儧","儹","噆","攅","昝","趱","趲"],háo:["儫","嗥","嘷","噑","嚎","壕","椃","毜","毫","濠","獆","獔","竓","籇","蚝","蠔","譹","豪"],qìng:["儬","凊","庆","慶","櫦","濪","碃","磬","罄","靘"],chèn:["儭","嚫","榇","櫬","疢","衬","襯","讖","谶","趁","趂","齓","齔","龀"],téng:["儯","幐","滕","漛","疼","籐","籘","縢","腾","藤","虅","螣","誊","謄","邆","駦","騰","驣","鰧","䲢"],"lǒng lóng lòng":["儱"],"chán chàn":["儳"],"ráng xiāng":["儴","勷"],"huì xié":["儶"],luó:["儸","攞","椤","欏","猡","玀","箩","籮","罗","羅","脶","腡","萝","蘿","螺","覼","逻","邏","鏍","鑼","锣","镙","饠","騾","驘","骡","鸁"],léi:["儽","嫘","檑","欙","瓃","畾","縲","纍","纝","缧","罍","羸","蔂","蘲","虆","轠","鐳","鑘","镭","雷","靁","鱩","鼺"],"nàng nāng":["儾"],"wù wū":["兀"],yǔn:["允","喗","夽","抎","殒","殞","狁","磒","荺","賱","鈗","阭","陨","隕","霣","馻","齫","齳"],zān:["兂","橵","簪","簮","糌","鐕","鐟","鵤"],yuán:["元","円","原","厡","厵","园","圆","圎","園","圓","垣","塬","媴","嫄","援","榞","榬","橼","櫞","沅","湲","源","溒","爰","猨","猿","笎","緣","縁","缘","羱","茒","薗","蝝","蝯","螈","袁","褤","謜","轅","辕","邍","邧","酛","鈨","鎱","騵","魭","鶢","鶰","黿","鼋","𫘪"],xiōng:["兄","兇","凶","匂","匈","哅","忷","恟","汹","洶","胷","胸","芎","訩","詾","讻"],chōng:["充","嘃","忡","憃","憧","摏","沖","浺","珫","罿","翀","舂","艟","茺","衝","蹖","㳘"],zhào:["兆","垗","旐","曌","枛","櫂","照","燳","狣","瞾","笊","罀","罩","羄","肁","肇","肈","詔","诏","赵","趙","鮡","𬶐"],"duì ruì yuè":["兊","兌","兑"],kè:["克","刻","勀","勊","堁","娔","客","恪","愙","氪","溘","碦","緙","缂","艐","衉","課","课","錁","锞","騍","骒"],tù:["兎","兔","堍","迌","鵵"],dǎng:["党","攩","欓","譡","讜","谠","黨","𣗋"],dōu:["兜","兠","唗","橷","篼","蔸"],huǎng:["兤","奛","幌","怳","恍","晄","炾","熀","縨","詤","謊","谎"],rù:["入","嗕","媷","扖","杁","洳","溽","縟","缛","蓐","褥","鳰"],nèi:["內","氝","氞","錗"],"yú shù":["兪"],"liù lù":["六"],han:["兯","爳"],tiān:["兲","天","婖","添","酟","靔","靝","黇"],"xīng xìng":["兴"],diǎn:["典","嚸","奌","婰","敟","椣","点","碘","蒧","蕇","踮","點"],"zī cí":["兹"],jiān:["兼","冿","囏","坚","堅","奸","姦","姧","尖","幵","惤","戋","戔","搛","椾","樫","櫼","歼","殱","殲","湔","瀐","瀸","煎","熞","熸","牋","瑊","睷","礛","礷","笺","箋","緘","縑","缄","缣","肩","艰","艱","菅","菺","葌","蒹","蔪","蕑","蕳","虃","譼","豜","鑯","雃","鞯","韀","韉","餰","馢","鰔","鰜","鰹","鲣","鳒","鵑","鵳","鶼","鹣","麉"],shòu:["兽","受","售","壽","夀","寿","授","狩","獣","獸","痩","瘦","綬","绶","膄"],jì:["兾","冀","剂","剤","劑","勣","坖","垍","塈","妓","季","寂","寄","廭","彑","徛","忌","悸","惎","懻","技","旡","既","旣","暨","暩","曁","梞","檕","檵","洎","漃","漈","瀱","痵","癠","禝","稩","稷","穄","穊","穧","紀","継","績","繋","繼","继","绩","罽","臮","芰","茍","茤","葪","蓟","蔇","薊","蘎","蘮","蘻","裚","襀","覬","觊","計","記","誋","计","记","跡","跽","蹟","迹","际","際","霁","霽","驥","骥","髻","鬾","魝","魥","鯚","鯽","鰶","鰿","鱀","鱭","鲚","鲫","鵋","鷑","齌","𪟝","𬶨","𬶭"],jiōng:["冂","冋","坰","埛","扃","蘏","蘔","駉","駫","𬳶"],mào:["冃","冐","媢","帽","愗","懋","暓","柕","楙","毷","瑁","皃","眊","瞀","耄","茂","萺","蝐","袤","覒","貌","貿","贸","鄚","鄮"],rǎn:["冄","冉","姌","媣","染","珃","苒","蒅","䎃"],"nèi nà":["内"],gāng:["冈","冮","刚","剛","堈","堽","岡","掆","摃","棡","牨","犅","疘","綱","纲","缸","罁","罡","肛","釭","鎠","㭎"],cè:["冊","册","厕","厠","夨","廁","恻","惻","憡","敇","测","測","笧","策","筞","筴","箣","荝","萗","萴","蓛"],guǎ:["冎","剐","剮","叧","寡"],"mào mò":["冒"],gòu:["冓","啂","坸","垢","够","夠","媾","彀","搆","撀","构","構","煹","覯","觏","訽","詬","诟","購","购","遘","雊"],xǔ:["冔","喣","暊","栩","珝","盨","糈","詡","諿","诩","鄦","醑"],mì:["冖","冪","嘧","塓","宻","密","峚","幂","幎","幦","怽","榓","樒","櫁","汨","淧","滵","漞","濗","熐","羃","蔤","蜜","覓","覔","覛","觅","謐","谧","鼏"],"yóu yín":["冘"],xiě:["写","冩","藛"],jūn:["军","君","均","桾","汮","皲","皸","皹","碅","莙","蚐","袀","覠","軍","鈞","銁","銞","鍕","钧","頵","鮶","鲪","麏"],mí:["冞","擟","瀰","爢","猕","獼","祢","禰","縻","蒾","藌","蘪","蘼","袮","詸","謎","迷","醚","醾","醿","釄","镾","鸍","麊","麋","麛"],"guān guàn":["冠","覌","観","觀","观"],měng:["冡","勐","懵","掹","猛","獴","艋","蜢","蠓","錳","锰","鯭","鼆"],zhǒng:["冢","塚","尰","歱","煄","瘇","肿","腫","踵"],zuì:["冣","嶵","晬","最","栬","槜","檇","檌","祽","絊","罪","蕞","辠","酔","酻","醉","錊"],yuān:["冤","剈","囦","嬽","寃","棩","淵","渁","渆","渊","渕","灁","眢","肙","葾","蒬","蜎","蜵","駌","鳶","鴛","鵷","鸢","鸳","鹓","鼘","鼝"],míng:["冥","名","明","暝","朙","榠","洺","溟","猽","眀","眳","瞑","茗","螟","覭","詺","鄍","銘","铭","鳴","鸣"],kòu:["冦","叩","宼","寇","扣","敂","滱","窛","筘","簆","蔲","蔻","釦","鷇"],tài:["冭","太","夳","忲","态","態","汰","汱","泰","溙","肽","舦","酞","鈦","钛"],"féng píng":["冯","馮"],"chōng chòng":["冲"],kuàng:["况","圹","壙","岲","懬","旷","昿","曠","框","況","爌","眖","眶","矿","砿","礦","穬","絋","絖","纊","纩","貺","贶","軦","邝","鄺","鉱","鋛","鑛","黋"],lěng:["冷"],pàn:["冸","判","叛","沜","泮","溿","炍","牉","畔","盼","聁","袢","襻","詊","鋬","鑻","頖","鵥"],fā:["冹","彂","沷","発","發"],xiǎn:["冼","尟","尠","崄","嶮","幰","攇","显","櫶","毨","灦","烍","燹","狝","猃","獫","獮","玁","禒","筅","箲","藓","蘚","蚬","蜆","譣","赻","跣","鍌","险","険","險","韅","顕","顯","㬎"],qià:["冾","圶","帢","恰","殎","洽","硈","胢","髂"],"jìng chēng":["净","凈","淨"],sōu:["凁","嗖","廀","廋","捜","搜","摉","溲","獀","艘","蒐","螋","鄋","醙","鎪","锼","颼","飕","餿","馊","騪"],měi:["凂","媄","媺","嬍","嵄","挴","毎","每","浼","渼","燘","美","躾","鎂","镁","黣"],tú:["凃","図","图","圖","圗","塗","屠","峹","嵞","庩","廜","徒","悇","揬","涂","瘏","筡","腯","荼","蒤","跿","途","酴","鈯","鍎","馟","駼","鵌","鶟","鷋","鷵","𬳿"],zhǔn:["准","凖","埻","準","𬘯"],"liáng liàng":["凉","涼","量"],diāo:["凋","刁","刟","叼","奝","弴","彫","汈","琱","碉","簓","虭","蛁","貂","錭","雕","鮉","鯛","鲷","鵰","鼦"],còu:["凑","湊","腠","輳","辏"],ái:["凒","啀","嘊","捱","溰","癌","皑","皚"],duó:["凙","剫","夺","奪","痥","踱","鈬","鐸","铎"],dú:["凟","匵","嬻","椟","櫝","殰","涜","牍","牘","犊","犢","独","獨","瓄","皾","裻","読","讀","讟","豄","贕","錖","鑟","韇","韣","韥","騳","髑","黩","黷"],"jǐ jī":["几"],fán:["凡","凢","凣","匥","墦","杋","柉","棥","樊","瀿","烦","煩","燔","璠","矾","礬","笲","籵","緐","羳","舤","舧","薠","蘩","蠜","襎","蹯","釩","鐇","鐢","钒","鷭","𫔍","𬸪"],jū:["凥","匊","娵","婮","居","崌","抅","挶","掬","梮","椐","檋","毩","毱","泃","涺","狙","琚","疽","砠","罝","腒","艍","蜛","裾","諊","跔","踘","躹","陱","雎","鞠","鞫","駒","驹","鮈","鴡","鶋","𬶋"],"chù chǔ":["処","处"],zhǐ:["凪","劧","咫","址","坧","帋","恉","扺","指","旨","枳","止","汦","沚","洔","淽","疻","砋","祉","秖","紙","纸","芷","藢","衹","襧","訨","趾","軹","轵","酯","阯","黹"],píng:["凭","凴","呯","坪","塀","岼","帡","帲","幈","平","慿","憑","枰","洴","焩","玶","瓶","甁","竮","箳","簈","缾","荓","萍","蓱","蚲","蛢","評","评","軿","輧","郱","鮃","鲆"],kǎi:["凯","凱","剀","剴","垲","塏","恺","愷","慨","暟","蒈","輆","鍇","鎧","铠","锴","闓","闿","颽"],gān:["凲","坩","尲","尴","尶","尷","柑","泔","漧","玕","甘","疳","矸","竿","筸","粓","肝","苷","迀","酐","魐"],"kǎn qiǎn":["凵"],tū:["凸","堗","嶀","捸","涋","湥","痜","禿","秃","突","葖","鋵","鵚","鼵","㻬"],"āo wā":["凹"],chū:["出","初","岀","摴","榋","樗","貙","齣","䢺","䝙"],dàng:["凼","圵","垱","壋","档","檔","氹","璗","瓽","盪","瞊","砀","碭","礑","簜","荡","菪","蕩","蘯","趤","逿","雼","𬍡"],hán:["函","凾","含","圅","娢","寒","崡","晗","梒","浛","涵","澏","焓","琀","甝","筨","蜬","邗","邯","鋡","韓","韩"],záo:["凿","鑿"],dāo:["刀","刂","忉","氘","舠","螩","釖","魛","鱽"],chuāng:["刅","摐","牎","牕","疮","瘡","窓","窗","窻"],"fēn fèn":["分"],"qiè qiē":["切"],kān:["刊","勘","堪","戡","栞","龕","龛"],cǔn:["刌","忖"],chú:["刍","厨","幮","廚","橱","櫉","櫥","滁","犓","篨","耡","芻","蒢","蒭","蜍","蟵","豠","趎","蹰","躇","躕","鉏","鋤","锄","除","雏","雛","鶵"],"huà huá":["划"],lí:["刕","剓","剺","劙","厘","喱","嚟","囄","嫠","孷","廲","悡","梨","梸","棃","漓","灕","犁","犂","狸","琍","璃","瓈","盠","睝","离","穲","竰","筣","篱","籬","糎","縭","缡","罹","艃","荲","菞","蓠","蔾","藜","蘺","蜊","蟍","蟸","蠫","褵","謧","貍","醨","鋫","錅","鏫","鑗","離","驪","骊","鯏","鯬","鱺","鲡","鵹","鸝","鹂","黎","黧","㰀"],yuè:["刖","嬳","岄","岳","嶽","恱","悅","悦","戉","抈","捳","月","樾","瀹","爚","玥","礿","禴","篗","籆","籥","籰","粤","粵","蘥","蚎","蚏","説","越","跀","跃","躍","軏","鈅","鉞","鑰","钺","閱","閲","阅","鸑","鸙","黦","龠","𫐄","𬸚"],liú:["刘","劉","嚠","媹","嵧","旈","旒","榴","橊","流","浏","瀏","琉","瑠","瑬","璢","畄","留","畱","疁","瘤","癅","硫","蒥","蓅","蟉","裗","鎏","鏐","鐂","镠","飀","飅","飗","駠","駵","騮","驑","骝","鰡","鶹","鹠","麍"],zé:["则","則","啧","嘖","嫧","帻","幘","択","樍","歵","沢","泎","溭","皟","瞔","矠","礋","箦","簀","舴","蔶","蠌","襗","謮","賾","赜","迮","鸅","齚","齰"],"chuàng chuāng":["创","創"],qù:["刞","厺","去","閴","闃","阒","麮","鼁"],"bié biè":["別","别"],"páo bào":["刨"],"chǎn chàn":["刬","剗","幝"],guā:["刮","劀","桰","歄","煱","瓜","胍","踻","颪","颳","騧","鴰","鸹"],gēng:["刯","庚","椩","浭","焿","畊","絚","羮","羹","耕","菮","賡","赓","鶊","鹒"],dào:["到","噵","悼","椡","檤","燾","瓙","盗","盜","稲","稻","纛","翿","艔","菿","衜","衟","軇","道"],chuàng:["刱","剏","剙","怆","愴"],kū:["刳","哭","圐","堀","枯","桍","矻","窟","跍","郀","骷","鮬"],duò:["刴","剁","墯","尮","惰","憜","挅","桗","舵","跥","跺","陊","陏","飿","饳","鵽"],"shuā shuà":["刷"],"quàn xuàn":["券"],"chà shā":["刹","剎"],"cì cī":["刺"],guì:["刽","刿","劊","劌","撌","攰","昋","桂","椢","槶","樻","櫃","猤","禬","筀","蓕","襘","貴","贵","跪","鐀","鑎","鞼","鱖","鱥"],lóu:["剅","娄","婁","廔","楼","樓","溇","漊","熡","耧","耬","艛","蒌","蔞","蝼","螻","謱","軁","遱","鞻","髅","髏","𪣻"],cuò:["剉","剒","厝","夎","挫","措","棤","莝","莡","蓌","逪","銼","錯","锉","错"],"xiāo xuē":["削"],"kēi kè":["剋","尅"],"là lá":["剌"],tī:["剔","梯","踢","銻","锑","鷈","鷉","䏲","䴘"],pōu:["剖"],wān:["剜","塆","壪","帵","弯","彎","湾","潫","灣","睕","蜿","豌"],"bāo bō":["剝","剥"],duō:["剟","咄","哆","嚉","多","夛","掇","毲","畓","裰","㙍"],qíng:["剠","勍","夝","情","擎","晴","暒","棾","樈","檠","氰","甠","硘","葝","黥"],"yǎn shàn":["剡"],"dū zhuó":["剢"],yān:["剦","嫣","崦","嶖","恹","懕","懨","樮","淊","淹","漹","烟","焉","焑","煙","珚","篶","胭","臙","菸","鄢","醃","閹","阉","黫"],huō:["剨","劐","吙","攉","秴","耠","锪","騞","𬴃"],shèng:["剩","剰","勝","圣","墭","嵊","晠","榺","橳","琞","聖","蕂","貹","賸"],"duān zhì":["剬"],wū:["剭","呜","嗚","圬","屋","巫","弙","杇","歍","汙","汚","污","洿","烏","窏","箼","螐","誈","誣","诬","邬","鄔","鎢","钨","鰞","鴮"],gē:["割","哥","圪","彁","戈","戓","戨","歌","滒","犵","肐","袼","謌","鎶","鴚","鴿","鸽"],"dá zhá":["剳"],chuán:["剶","暷","椽","篅","舡","舩","船","輲","遄"],"tuán zhuān":["剸","漙","篿"],"lù jiū":["剹"],pēng:["剻","匉","嘭","怦","恲","抨","梈","烹","砰","軯","駍"],piāo:["剽","勡","慓","旚","犥","翲","螵","飃","飄","飘","魒"],kōu:["剾","彄","抠","摳","眍","瞘","芤","𫸩"],"jiǎo chāo":["剿","劋","勦","摷"],qiāo:["劁","勪","墝","幧","敲","橇","毃","燆","硗","磽","繑","趬","跷","踍","蹺","蹻","郻","鄡","鄥","鍫","鍬","鐰","锹","頝"],"huá huà":["劃"],"zhā zhá":["劄"],"pī pǐ":["劈","悂"],tāng:["劏","嘡","羰","薚","蝪","蹚","鞺","鼞"],chán:["劖","嚵","壥","婵","嬋","巉","廛","棎","毚","湹","潹","潺","澶","瀍","瀺","煘","獑","磛","緾","纏","纒","缠","艬","蝉","蟐","蟬","蟾","誗","讒","谗","躔","鄽","酁","鋋","鑱","镵","饞","馋"],zuān:["劗","躜","躦","鉆","鑚"],mó:["劘","嫫","嬤","嬷","尛","摹","擵","橅","糢","膜","藦","蘑","謨","謩","谟","饃","饝","馍","髍","魔","魹"],zhú:["劚","斸","曯","欘","灟","炢","烛","燭","爥","瘃","竹","笁","笜","舳","茿","蓫","蠋","蠾","躅","逐","逫","钃","鱁"],quàn:["劝","勧","勸","牶","韏"],"jìn jìng":["劤","劲","勁"],kēng:["劥","坑","牼","硁","硜","誙","銵","鍞","鏗","铿","阬"],"xié liè":["劦"],"zhù chú":["助"],nǔ:["努","弩","砮","胬"],shào:["劭","卲","哨","潲","紹","綤","绍","袑","邵"],miǎo:["劰","杪","淼","渺","眇","秒","篎","緲","缈","藐","邈"],kǒu:["劶","口"],wā:["劸","娲","媧","屲","挖","攨","洼","溛","漥","瓾","畖","穵","窊","窪","蛙","韈","鼃"],kuāng:["劻","匡","匩","哐","恇","洭","筐","筺","誆","诓","軭","邼"],hé:["劾","咊","啝","姀","峆","敆","曷","柇","楁","毼","河","涸","渮","澕","熆","皬","盇","盉","盍","盒","禾","篕","籺","粭","翮","菏","萂","覈","訸","詥","郃","釛","鉌","鑉","閡","闔","阂","阖","鞨","頜","餄","饸","魺","鹖","麧","齕","龁","龢","𬌗"],gào:["勂","吿","告","峼","祮","祰","禞","筶","誥","诰","郜","鋯","锆"],"bó bèi":["勃"],láng:["勆","嫏","廊","斏","桹","榔","樃","欴","狼","琅","瑯","硠","稂","艆","蓈","蜋","螂","躴","郒","郞","鋃","鎯","锒"],xūn:["勋","勛","勲","勳","嚑","坃","埙","塤","壎","壦","曛","燻","獯","矄","纁","臐","薫","薰","蘍","醺","𫄸"],"juàn juān":["勌","瓹"],"lè lēi":["勒"],kài:["勓","炌","烗","鎎"],"wěng yǎng":["勜"],qín:["勤","嗪","噙","嶜","庈","懃","懄","捦","擒","斳","檎","澿","珡","琴","琹","瘽","禽","秦","耹","芩","芹","菦","螓","蠄","鈙","鈫","雂","靲","鳹","鵭"],jiàng:["勥","匞","匠","嵹","弜","弶","摾","櫤","洚","滰","犟","糡","糨","絳","绛","謽","酱","醤","醬"],fān:["勫","嬏","帆","幡","忛","憣","旙","旛","繙","翻","藩","轓","颿","飜","鱕"],juān:["勬","姢","娟","捐","涓","蠲","裐","鎸","鐫","镌","鹃"],"tóng dòng":["勭","烔","燑","狪"],lǜ:["勴","垏","嵂","律","慮","氯","滤","濾","爈","箻","綠","繂","膟","葎","虑","鑢"],chè:["勶","坼","彻","徹","掣","撤","澈","烢","爡","瞮","硩","聅","迠","頙","㬚"],sháo:["勺","玿","韶"],"gōu gòu":["勾"],cōng:["匆","囪","囱","忩","怱","悤","暰","樬","漗","瑽","璁","瞛","篵","繱","聡","聦","聪","聰","苁","茐","葱","蓯","蔥","蟌","鍯","鏓","鏦","騘","驄","骢"],"táo yáo":["匋","陶"],páo:["匏","咆","垉","庖","爮","狍","袍","褜","軳","鞄","麅"],dá:["匒","妲","怛","炟","燵","畣","笪","羍","荙","薘","蟽","詚","达","迏","迖","迚","逹","達","鐽","靼","鞑","韃","龖","龘","𫟼"],"huà huā":["化"],"běi bèi":["北"],nǎo:["匘","垴","堖","嫐","恼","悩","惱","瑙","碯","脑","脳","腦"],"chí shi":["匙"],fāng:["匚","堏","方","淓","牥","芳","邡","鈁","錺","钫","鴋"],zā:["匝","咂","帀","沞","臜","臢","迊","鉔","魳"],qiè:["匧","厒","妾","怯","悏","惬","愜","挈","穕","窃","竊","笡","箧","篋","籡","踥","鍥","锲","鯜"],"zāng cáng":["匨"],fěi:["匪","奜","悱","棐","榧","篚","翡","蕜","誹","诽"],"kuì guì":["匮","匱"],suǎn:["匴"],pǐ:["匹","噽","嚭","圮","庀","痞","癖","脴","苉","銢","鴄"],"qū ōu":["区","區"],"kē qià":["匼"],"yǎn yàn":["匽","棪"],biǎn:["匾","惼","揙","碥","稨","窆","藊","褊","貶","贬","鴘"],nì:["匿","堄","嫟","嬺","惄","愵","昵","暱","氼","眤","睨","縌","胒","腻","膩","逆","𨺙"],niàn:["卄","唸","埝","廿","念","惗","艌"],sà:["卅","櫒","脎","萨","蕯","薩","鈒","隡","颯","飒","馺"],zú:["卆","哫","崪","族","箤","足","踤","镞"],shēng:["升","呏","声","斘","昇","曻","枡","殅","泩","湦","焺","牲","珄","生","甥","竔","笙","聲","鉎","鍟","阩","陞","陹","鵿","鼪"],wàn:["卍","卐","忨","杤","瞣","脕","腕","萬","蟃","贎","輐","錽","𬇕"],"huá huà huā":["华","華"],bēi:["卑","悲","揹","杯","桮","盃","碑","藣","鵯","鹎"],"zú cù":["卒"],"dān shàn chán":["单","單"],"nán nā":["南"],"shuài lǜ":["卛"],"bǔ bo pú":["卜"],"kuàng guàn":["卝"],biàn:["卞","变","変","峅","弁","徧","忭","抃","昪","汳","汴","玣","艑","苄","覍","諚","變","辡","辧","辨","辩","辫","辮","辯","遍","釆","𨚕"],bǔ:["卟","哺","捕","补","補","鸔","𬷕"],"zhàn zhān":["占","覱"],"kǎ qiǎ":["卡"],lú:["卢","嚧","垆","壚","庐","廬","曥","枦","栌","櫨","泸","瀘","炉","爐","獹","玈","瓐","盧","矑","籚","纑","罏","胪","臚","舮","舻","艫","芦","蘆","蠦","轤","轳","鈩","鑪","顱","颅","馿","髗","魲","鱸","鲈","鸕","鸬","黸","𬬻"],lǔ:["卤","塷","掳","擄","樐","橹","櫓","氌","滷","澛","瀂","硵","磠","穞","艣","艪","蓾","虏","虜","鏀","鐪","鑥","镥","魯","鲁","鹵"],guà:["卦","啩","挂","掛","罣","褂","詿","诖"],"áng yǎng":["卬"],yìn:["印","垽","堷","廕","慭","憖","憗","懚","洕","湚","猌","癊","胤","茚","酳","鮣","䲟"],què:["却","卻","塙","崅","悫","愨","慤","搉","榷","燩","琷","皵","确","確","礭","闋","阕","鵲","鹊","𬒈"],luǎn:["卵"],"juàn juǎn":["卷","巻"],"chǎng ān hàn":["厂"],"wěi yán":["厃"],tīng:["厅","厛","听","庁","廰","廳","汀","烃","烴","綎","耓","聴","聼","聽","鞓","𬘩"],"zhé zhái":["厇"],"hàn àn":["厈","屽"],yǎ:["厊","唖","庌","痖","瘂","蕥"],shè:["厍","厙","弽","慑","慴","懾","摂","欇","涉","涻","渉","滠","灄","社","舎","蔎","蠂","設","设","赦","騇","麝"],dǐ:["厎","呧","坘","弤","抵","拞","掋","牴","砥","菧","觝","詆","诋","軧","邸","阺","骶","鯳"],"zhǎ zhǎi":["厏"],páng:["厐","嫎","庞","徬","舽","螃","逄","鰟","鳑","龎","龐"],"zhì shī":["厔"],máng:["厖","吂","哤","娏","忙","恾","杗","杧","汒","浝","牻","痝","盲","硭","笀","芒","茫","蘉","邙","釯","鋩","铓","駹"],zuī:["厜","樶","纗","蟕"],"shà xià":["厦","廈"],áo:["厫","嗷","嗸","廒","敖","滶","獒","獓","璈","翱","翶","翺","聱","蔜","螯","謷","謸","遨","鏖","隞","鰲","鳌","鷔","鼇"],"lán qiān":["厱"],"sī mǒu":["厶"],"gōng hóng":["厷"],"lín miǎo":["厸"],"qiú róu":["厹"],dū:["厾","嘟","督","醏"],"xiàn xuán":["县","縣"],"cān shēn cēn sān":["参","參","叄","叅"],"ài yǐ":["叆"],"chā chà chǎ chá":["叉"],shuāng:["双","孀","孇","欆","礵","艭","雙","霜","騻","驦","骦","鷞","鸘","鹴"],shōu:["収","收"],guái:["叏"],bá:["叐","妭","抜","拔","炦","癹","胈","茇","菝","詙","跋","軷","魃","鼥"],"fā fà":["发"],"zhuó yǐ lì jué":["叕"],qǔ:["取","娶","竬","蝺","詓","齲","龋"],"jiǎ xiá":["叚","徦"],"wèi yù":["叞","尉","蔚"],dié:["叠","垤","堞","峌","幉","恎","惵","戜","曡","殜","氎","牃","牒","瓞","畳","疂","疉","疊","碟","絰","绖","耊","耋","胅","艓","苵","蜨","蝶","褋","詄","諜","谍","跮","蹀","迭","镻","鰈","鲽","鴩","𫶇"],ruì:["叡","枘","汭","瑞","睿","芮","蚋","蜹","銳","鋭","锐"],"jù gōu":["句"],lìng:["另","呤","炩","蘦"],"dāo dáo tāo":["叨"],"zhī zhǐ":["只"],jiào:["叫","呌","嘂","嘦","噍","嬓","斍","斠","滘","漖","獥","珓","皭","窖","藠","訆","譥","趭","較","轎","轿","较","酵","醮","釂"],"zhào shào":["召"],"kě kè":["可"],"tái tāi":["台","苔"],pǒ:["叵","尀","笸","箥","鉕","钷","駊"],"yè xié":["叶"],"hào háo":["号"],tàn:["叹","嘆","探","歎","湠","炭","碳","舕"],"hōng hóng":["叿"],miē:["吀","咩","哶","孭"],"xū yū yù":["吁"],chī:["吃","哧","喫","嗤","噄","妛","媸","彨","彲","摛","攡","殦","瓻","痴","癡","眵","瞝","笞","粚","胵","蚩","螭","訵","魑","鴟","鵄","鸱","黐","齝","𫄨"],"xuān sòng":["吅"],yāo:["吆","喓","夭","妖","幺","楆","殀","祅","腰","葽","訞","邀","鴁","鴢","㙘"],zǐ:["吇","姉","姊","子","杍","梓","榟","橴","滓","矷","秭","笫","籽","紫","耔","虸","訿","釨"],"hé gě":["合","鲄"],"cùn dòu":["吋"],"tóng tòng":["同"],"tǔ tù":["吐","唋"],"zhà zhā":["吒","奓"],"xià hè":["吓"],"ā yā":["吖"],"ma má mǎ":["吗"],lìn:["吝","恡","悋","橉","焛","甐","膦","蔺","藺","賃","赁","蹸","躏","躙","躪","轥","閵"],tūn:["吞","暾","朜","焞"],"bǐ pǐ":["吡"],qìn:["吢","吣","唚","抋","揿","搇","撳","沁","瀙","菣","藽"],"jiè gè":["吤"],"fǒu pǐ":["否"],"ba bā":["吧"],dūn:["吨","噸","墩","墪","惇","撉","撴","犜","獤","礅","蜳","蹾","驐"],fēn:["吩","帉","昐","朆","梤","棻","氛","竕","紛","纷","翂","芬","衯","訜","躮","酚","鈖","雰","餴","饙","馚"],"é huā":["吪"],"kēng háng":["吭","妔"],shǔn:["吮"],"zhī zī":["吱"],"yǐn shěn":["吲"],wú:["吳","吴","呉","墲","峿","梧","橆","毋","洖","浯","無","珸","璑","祦","芜","茣","莁","蕪","蜈","蟱","譕","郚","鋙","铻","鯃","鵐","鷡","鹀","鼯"],"chǎo chāo":["吵"],"nà nè":["吶"],"xuè chuò jué":["吷"],chuī:["吹","炊","龡"],"dōu rú":["吺"],hǒu:["吼","犼"],"hōng hǒu ōu":["吽"],"wú yù":["吾"],"ya yā":["呀"],"è e":["呃"],dāi:["呆","懛","獃"],"mèn qǐ":["呇"],hōng:["呍","嚝","揈","灴","烘","焢","硡","薨","訇","谾","軣","輷","轟","轰","鍧"],nà:["呐","捺","笝","納","纳","肭","蒳","衲","豽","貀","軜","郍","鈉","钠","靹","魶"],"tūn tiān":["呑"],"fǔ ḿ":["呒","嘸"],"dāi tǎi":["呔"],"ǒu ōu òu":["呕"],"bài bei":["呗"],"yuán yún yùn":["员","員"],guō:["呙","啯","嘓","埚","堝","墎","崞","彉","彍","懖","猓","瘑","聒","蝈","蟈","郭","鈛","鍋","锅"],"huá qì":["呚"],"qiàng qiāng":["呛","跄"],shī:["呞","失","尸","屍","师","師","施","浉","湤","湿","溮","溼","濕","狮","獅","瑡","絁","葹","蒒","蓍","虱","蝨","褷","襹","詩","诗","邿","釃","鉇","鍦","鯴","鰤","鲺","鳲","鳾","鶳","鸤","䴓","𫚕"],juǎn:["呟","埍","臇","菤","錈","锩"],pěn:["呠","翸"],"wěn mǐn":["呡"],"ne ní":["呢"],"ḿ m̀ móu":["呣"],rán:["呥","嘫","然","燃","繎","肰","蚦","蚺","衻","袇","袡","髥","髯"],"tiè chè":["呫"],"qì zhī":["呮"],"zǐ cī":["呰"],"guā gū guǎ":["呱"],"cī zī":["呲"],"hǒu xǔ gòu":["呴"],"hē ā á ǎ à a":["呵"],náo:["呶","夒","峱","嶩","巎","挠","撓","猱","硇","蛲","蟯","詉","譊","鐃","铙"],"xiā gā":["呷"],pēi:["呸","怌","肧","胚","衃","醅"],"háo xiāo":["呺"],mìng:["命","掵"],"dá dàn":["呾"],"zuǐ jǔ":["咀"],"xián gān":["咁"],pǒu:["咅","哣","犃"],"yǎng yāng":["咉"],"zǎ zé zhā":["咋"],"hé hè huó huò hú":["和"],hāi:["咍"],dā:["咑","哒","噠","墶","搭","撘","耷","褡","鎝","𨱏"],"kǎ kā":["咔"],gū:["咕","唂","唃","姑","嫴","孤","巬","巭","柧","橭","沽","泒","稒","笟","箍","箛","篐","罛","苽","菇","菰","蓇","觚","軱","軲","轱","辜","酤","鈲","鮕","鴣","鸪"],"kā gā":["咖"],zuo:["咗"],lóng:["咙","嚨","嶐","巃","巄","昽","曨","朧","栊","槞","櫳","湰","滝","漋","爖","珑","瓏","癃","眬","矓","砻","礱","礲","窿","竜","聋","聾","胧","茏","蘢","蠪","蠬","襱","豅","鏧","鑨","霳","靇","驡","鸗","龍","龒","龙"],"xiàn xián":["咞"],qì:["咠","唭","噐","器","夡","弃","憇","憩","暣","棄","欫","气","気","氣","汔","汽","泣","湆","湇","炁","甈","盵","矵","碛","碶","磜","磧","罊","芞","葺","藒","蟿","訖","讫","迄","鐑"],"xì dié":["咥"],"liē liě lié lie":["咧"],zī:["咨","嗞","姕","姿","孜","孳","孶","崰","嵫","栥","椔","淄","湽","滋","澬","玆","禌","秶","粢","紎","緇","緕","纃","缁","茊","茲","葘","諮","谘","貲","資","赀","资","赼","趑","趦","輜","輺","辎","鄑","鈭","錙","鍿","鎡","锱","镃","頾","頿","髭","鯔","鰦","鲻","鶅","鼒","齍","齜","龇"],mī:["咪"],"jī xī qià":["咭"],"gē luò kǎ lo":["咯"],"shù xún":["咰"],"zán zá zǎ zan":["咱"],"hāi ké":["咳"],huī:["咴","噅","噕","婎","媈","幑","徽","恢","拻","挥","揮","晖","暉","楎","洃","瀈","灰","灳","烣","睳","禈","翚","翬","蘳","袆","褘","詼","诙","豗","輝","辉","鰴","麾","㧑"],"huài shì":["咶"],táo:["咷","啕","桃","檮","洮","淘","祹","綯","绹","萄","蜪","裪","迯","逃","醄","鋾","鞀","鞉","饀","駣","騊","鼗","𫘦"],xián:["咸","啣","娴","娹","婱","嫌","嫺","嫻","弦","挦","撏","涎","湺","澖","甉","痫","癇","癎","絃","胘","舷","藖","蚿","蛝","衔","衘","誸","諴","賢","贒","贤","輱","醎","銜","鑦","閑","闲","鷳","鷴","鷼","鹇","鹹","麙","𫍯"],"è àn":["咹"],"xuān xuǎn":["咺","烜"],"wāi hé wǒ guǎ guō":["咼"],"yàn yè yān":["咽"],āi:["哀","哎","埃","溾","銰","鎄","锿"],pǐn:["品","榀"],shěn:["哂","婶","嬸","审","宷","審","弞","曋","渖","瀋","瞫","矤","矧","覾","訠","諗","讅","谂","谉","邥","頣","魫"],"hǒng hōng hòng":["哄"],"wā wa":["哇"],"hā hǎ hà":["哈"],zāi:["哉","栽","渽","溨","災","灾","烖","睵","賳"],"dì diè":["哋"],pài:["哌","沠","派","渒","湃","蒎","鎃"],"gén hěn":["哏"],"yǎ yā":["哑","雅"],"yuě huì":["哕","噦"],nián:["哖","年","秊","秥","鮎","鯰","鲇","鲶","鵇","黏"],"huá huā":["哗","嘩"],"jì jiē zhāi":["哜","嚌"],mōu:["哞"],"yō yo":["哟","喲"],lòng:["哢","梇","贚"],"ò ó é":["哦"],"lī lǐ li":["哩"],"nǎ na nǎi né něi":["哪"],hè:["哬","垎","壑","寉","惒","焃","煂","燺","爀","癋","碋","翯","褐","謞","賀","贺","赫","靍","靎","靏","鶴","鸖","鹤"],"bō pò bā":["哱"],zhé:["哲","啠","喆","嚞","埑","悊","摺","晢","晣","歽","矺","砓","磔","籷","粍","虴","蛰","蟄","袩","詟","謫","謺","讁","讋","谪","輒","輙","轍","辄","辙","鮿"],"liàng láng":["哴"],"liè lǜ":["哷"],hān:["哻","憨","蚶","谽","酣","頇","顸","馠","魽","鼾"],"hēng hng":["哼"],gěng:["哽","埂","峺","挭","梗","綆","绠","耿","莄","郠","骾","鯁","鲠","𬒔"],"chuò yuè":["哾"],"gě jiā":["哿"],"bei bài":["唄"],"hán hàn":["唅"],chún:["唇","浱","湻","滣","漘","犉","純","纯","脣","莼","蒓","蓴","醇","醕","錞","陙","鯙","鶉","鹑","𬭚"],"ài āi":["唉"],"jiá qiǎn":["唊"],"yán dàn xián":["唌"],chē:["唓","砗","硨","莗","蛼"],"wú ńg ń":["唔"],zào:["唕","唣","噪","慥","梍","灶","煰","燥","皁","皂","竃","竈","簉","艁","譟","趮","躁","造","𥖨"],dí:["唙","啇","嘀","嚁","嫡","廸","敌","敵","梑","涤","滌","狄","笛","籴","糴","苖","荻","蔋","蔐","藡","覿","觌","豴","迪","靮","頔","馰","髢","鸐","𬱖"],"gòng hǒng gǒng":["唝","嗊"],dóu:["唞"],"lào láo":["唠","嘮","憦"],huàn:["唤","喚","奂","奐","宦","嵈","幻","患","愌","换","換","擐","攌","梙","槵","浣","涣","渙","漶","澣","烉","焕","煥","瑍","痪","瘓","睆","肒","藧","豢","轘","逭","鯇","鯶","鰀","鲩"],léng:["唥","塄","楞","碐","薐"],"wō wěi":["唩"],fěng:["唪","覂","諷","讽"],"yín jìn":["唫"],"hǔ xià":["唬"],wéi:["唯","围","圍","壝","峗","峞","嵬","帏","帷","幃","惟","桅","沩","洈","涠","湋","溈","潍","潙","潿","濰","犩","矀","維","维","蓶","覹","违","違","鄬","醀","鍏","闈","闱","韋","韦","鮠","𣲗","𬶏"],shuā:["唰"],chàng:["唱","怅","悵","暢","焻","畅","畼","誯","韔","鬯"],"ér wā":["唲"],qiàng:["唴","炝","熗","羻"],yō:["唷"],yū:["唹","淤","瘀","盓","箊","紆","纡","込","迂","迃","陓"],lài:["唻","濑","瀨","瀬","癞","癩","睐","睞","籁","籟","藾","賚","賴","赉","赖","頼","顂","鵣"],tuò:["唾","嶞","柝","毤","毻","箨","籜","萚","蘀","跅"],"zhōu zhāo tiào":["啁"],kěn:["啃","垦","墾","恳","懇","肎","肯","肻","豤","錹"],"zhuó zhào":["啅","濯"],"hēng hèng":["啈","悙"],"lín lán":["啉"],"a ā á ǎ à":["啊"],qiāng:["啌","嗴","嶈","戕","摤","斨","枪","槍","溬","牄","猐","獇","羌","羗","腔","蜣","謒","鏘","锖","锵"],"tūn zhūn xiāng duǐ":["啍"],wèn:["問","妏","揾","搵","璺","问","顐"],"cuì qi":["啐"],"dié shà jié tì":["啑"],"yuē wā":["啘"],"zǐ cǐ":["啙"],"bǐ tú":["啚"],"chuò chuài":["啜"],"yǎ yā è":["啞"],fēi:["啡","婓","婔","扉","暃","渄","猆","緋","绯","裶","霏","非","靟","飛","飝","飞","餥","馡","騑","騛","鯡","鲱","𬴂"],pí:["啤","壀","枇","毗","毘","焷","琵","疲","皮","篺","罴","羆","脾","腗","膍","蚍","蚽","蜱","螷","蠯","豼","貔","郫","鈹","阰","陴","隦","魮","鮍","鲏","鵧","鼙"],shá:["啥"],"lā la":["啦"],"yīng qíng":["啨"],pā:["啪","妑","舥","葩","趴"],"zhě shì":["啫"],sè:["啬","嗇","懎","擌","栜","歮","涩","渋","澀","澁","濇","濏","瀒","瑟","璱","瘷","穑","穡","穯","繬","譅","轖","銫","鏼","铯","飋"],niè:["啮","嗫","噛","嚙","囁","囓","圼","孼","孽","嵲","嶭","巕","帇","敜","枿","槷","櫱","涅","湼","痆","篞","籋","糱","糵","聂","聶","臬","臲","蘖","蠥","讘","踂","踗","踙","蹑","躡","錜","鎳","鑈","鑷","钀","镊","镍","闑","陧","隉","顳","颞","齧","𫔶"],"luō luó luo":["啰","囉"],"tān chǎn tuō":["啴"],bo:["啵","蔔"],dìng:["啶","定","椗","矴","碇","碠","磸","聢","腚","萣","蝊","訂","订","錠","锭","顁","飣","饤"],lāng:["啷"],"án ān":["啽"],kā:["喀","擖"],"yóng yú":["喁"],"lā lá lǎ":["喇"],jiē:["喈","喼","嗟","堦","媘","接","掲","擑","湝","煯","疖","痎","癤","皆","秸","稭","脻","蝔","街","謯","阶","階","鞂","鶛"],hóu:["喉","帿","猴","瘊","睺","篌","糇","翭","葔","鄇","鍭","餱","骺","鯸","𬭤"],"dié zhá":["喋"],wāi:["喎","歪","竵"],"nuò rě":["喏"],"xù huò guó":["喐"],zán:["喒"],"wō ō":["喔"],hú:["喖","嘝","囫","壶","壷","壺","媩","弧","搰","斛","楜","槲","湖","瀫","焀","煳","狐","猢","瑚","瓳","箶","絗","縠","胡","葫","蔛","蝴","螜","衚","觳","醐","鍸","頶","餬","鬍","魱","鰗","鵠","鶘","鶦","鹕"],"huàn yuán xuǎn hé":["喛"],xǐ:["喜","囍","壐","屣","徙","憙","枲","橲","歖","漇","玺","璽","矖","禧","縰","葈","葸","蓰","蟢","謑","蹝","躧","鈢","鉨","鉩","鱚","𬭳","𬶮"],"hē hè yè":["喝"],kuì:["喟","嘳","媿","嬇","愦","愧","憒","篑","簣","籄","聩","聭","聵","膭","蕢","謉","餽","饋","馈"],"zhǒng chuáng":["喠"],"wéi wèi":["喡","為","爲"],"duó zhà":["喥"],"sāng sàng":["喪"],"qiáo jiāo":["喬"],"pèn bēn":["喯"],"cān sūn qī":["喰"],"zhā chā":["喳"],miāo:["喵"],"pēn pèn":["喷"],kuí:["喹","夔","奎","巙","戣","揆","晆","暌","楏","楑","櫆","犪","睽","葵","藈","蘷","虁","蝰","躨","逵","鄈","鍨","鍷","頯","馗","騤","骙","魁"],"lou lóu":["喽"],"zào qiāo":["喿"],"hè xiāo xiào hù":["嗃"],"á shà":["嗄"],xiù:["嗅","岫","峀","溴","珛","琇","璓","秀","綉","繍","繡","绣","螑","袖","褎","褏","銹","鏥","鏽","锈","齅"],"qiāng qiàng":["嗆","戗","戧","蹌","蹡"],"ài yì":["嗌","艾"],"má mǎ ma":["嗎"],"kè kē":["嗑"],"dā tà":["嗒","鎉"],sǎng:["嗓","搡","磉","褬","鎟","顙","颡"],chēn:["嗔","抻","琛","瞋","諃","謓","賝","郴","𬘭"],"wā gǔ":["嗗"],"pǎng bēng":["嗙"],"xián qiǎn qiān":["嗛"],lào:["嗠","嫪","橯","涝","澇","耢","耮","躼","軂","酪"],wēng:["嗡","翁","聬","螉","鎓","鶲","鹟","𬭩"],wà:["嗢","腽","膃","袜","襪","韤"],"hēi hāi":["嗨"],hē:["嗬","欱","蠚","訶","诃"],zi:["嗭"],sǎi:["嗮"],"ǹg ńg ňg":["嗯"],gě:["嗰","舸"],ná:["嗱","拏","拿","鎿","镎"],diǎ:["嗲"],"ài ǎi āi":["嗳"],tōng:["嗵","樋","炵","蓪"],"zuī suī":["嗺"],"zhē zhè zhù zhe":["嗻"],mò:["嗼","圽","塻","墨","妺","嫼","寞","帞","昩","末","枺","歿","殁","沫","漠","爅","獏","瘼","皌","眽","眿","瞐","瞙","砞","礳","秣","絈","纆","耱","茉","莈","蓦","蛨","蟔","貃","貊","貘","銆","鏌","镆","陌","靺","驀","魩","默","黙","𬙊"],sòu:["嗽","瘶"],tǎn:["嗿","坦","忐","憳","憻","暺","毯","璮","菼","袒","襢","醓","鉭","钽"],"jiào dǎo":["嘄"],"kǎi gě":["嘅"],"shān càn":["嘇"],cáo:["嘈","嶆","曹","曺","槽","漕","艚","蓸","螬","褿","鏪","𥕢"],piào:["嘌","徱","蔈","驃"],"lóu lou":["嘍"],gǎ:["尕","玍"],"gǔ jiǎ":["嘏"],"jiāo xiāo":["嘐"],"xū shī":["嘘","噓"],pó:["嘙","嚩","婆","櫇","皤","鄱"],"dē dēi":["嘚"],"ma má":["嘛"],"lē lei":["嘞"],"gā gá gǎ":["嘠"],sāi:["嘥","噻","毢","腮","顋","鰓"],"zuō chuài":["嘬"],"cháo zhāo":["嘲","朝","鼂"],zuǐ:["嘴","噿","嶊","璻"],"qiáo qiào":["嘺","翹","谯"],"chù xù shòu":["嘼"],"tān chǎn":["嘽"],"dàn tán":["嘾","弾","彈","惔","澹"],"hēi mò":["嘿"],ě:["噁","砨","頋","騀","鵈"],"fān bo":["噃"],chuáng:["噇","床","牀"],"cù zā hé":["噈"],"tūn kuò":["噋"],"cēng chēng":["噌"],dēng:["噔","嬁","灯","燈","璒","登","竳","簦","艠","豋"],pū:["噗","扑","撲","攴","攵","潽","炇","陠"],juē:["噘","屩","屫","撧"],lū:["噜","嚕","撸","擼","謢"],zhān:["噡","岾","惉","旃","旜","枬","栴","毡","氈","氊","沾","瞻","薝","蛅","詀","詹","譫","谵","趈","邅","閚","霑","飦","饘","驙","魙","鱣","鸇","鹯","𫗴"],ō:["噢"],"zhòu zhuó":["噣"],"jiào qiào chī":["噭"],yuàn:["噮","妴","怨","愿","掾","瑗","禐","苑","衏","裫","褑","院","願"],"ǎi ài āi":["噯"],"yōng yǒng":["噰","澭"],"jué xué":["噱"],"pēn pèn fèn":["噴"],gá:["噶","尜","釓","錷","钆"],"xīn hěn hèn":["噷"],dāng:["噹","澢","珰","璫","筜","簹","艡","蟷","裆","襠"],làn:["嚂","滥","濫","烂","燗","爁","爛","爤","瓓","糷","钄"],tà:["嚃","嚺","崉","挞","搨","撻","榻","橽","毾","涾","澾","濌","禢","粏","誻","譶","蹋","蹹","躂","躢","遝","錔","闒","闥","闼","阘","鞜","鞳"],"huō huò ǒ":["嚄"],hāo:["嚆","茠","蒿","薅"],"hè xià":["嚇"],"xiù pì":["嚊"],"zhōu chóu":["嚋","盩","诪"],mē:["嚒"],"chā cā":["嚓"],"bó pào bào":["嚗"],"me mèi mò":["嚜"],"xié hái":["嚡"],"áo xiāo":["嚣"],mō:["嚤","摸"],pín:["嚬","娦","嫔","嬪","玭","矉","薲","蠙","貧","贫","顰","颦","𬞟"],mè:["嚰","濹"],"rǎng rāng":["嚷"],lá:["嚹","旯"],"jiáo jué jiào":["嚼"],chuò:["嚽","娖","擉","歠","涰","磭","踀","輟","辍","辵","辶","酫","鑡","餟","齪","龊"],"huān huàn":["嚾"],"zá cà":["囃"],chài:["囆","虿","蠆","袃","訍"],"náng nāng":["囊"],"zá zàn cān":["囋"],sū:["囌","櫯","甦","稣","穌","窣","蘇","蘓","酥","鯂"],zèng:["囎","熷","甑","贈","赠","鋥","锃"],"zá niè yàn":["囐"],nāng:["囔"],"luó luō luo":["囖"],"wéi guó":["囗"],huí:["囘","回","囬","廻","廽","恛","洄","痐","茴","蚘","蛔","蛕","蜖","迴","逥","鮰"],nín:["囜","您","脌"],"jiǎn nān":["囝"],nān:["囡"],tuán:["团","団","團","慱","抟","摶","檲","糰","鏄","鷒","鷻"],"tún dùn":["囤","坉"],guó:["囯","囶","囻","国","圀","國","帼","幗","慖","摑","漍","聝","腘","膕","蔮","虢","馘","𬇹"],kùn:["困","涃","睏"],"wéi tōng":["囲"],qūn:["囷","夋","逡"],rì:["囸","日","衵","鈤","馹","驲"],tāi:["囼","孡","胎"],pǔ:["圃","圑","擈","普","暜","樸","檏","氆","浦","溥","烳","諩","譜","谱","蹼","鐠","镨"],"quān juàn juān":["圈","圏"],"chuí chuán":["圌"],tuǎn:["圕","畽","疃"],lüè:["圙","掠","略","畧","稤","鋝","鋢","锊","䂮"],"huán yuán":["圜"],luán:["圝","圞","奱","娈","孌","孪","孿","峦","巒","挛","攣","曫","栾","欒","滦","灤","癴","癵","羉","脔","臠","虊","銮","鑾","鵉","鸞","鸾"],tǔ:["土","圡","釷","钍"],"xū wéi":["圩"],"dì de":["地","嶳"],"qiān sú":["圱"],zhèn:["圳","塦","挋","振","朕","栚","甽","眹","紖","絼","纼","誫","賑","赈","鋴","鎭","鎮","镇","阵","陣","震","鴆","鸩"],"chǎng cháng":["场","場","塲"],"qí yín":["圻"],jiá:["圿","忦","恝","戞","扴","脥","荚","莢","蛱","蛺","裌","跲","郏","郟","鋏","铗","頬","頰","颊","鴶","鵊"],"zhǐ zhì":["坁"],bǎn:["坂","岅","昄","板","版","瓪","粄","舨","蝂","鈑","钣","阪","魬"],qǐn:["坅","寑","寝","寢","昑","梫","笉","螼","赾","鋟","锓"],"méi fén":["坆"],"rǒng kēng":["坈"],"fāng fáng":["坊"],"fèn bèn":["坋"],tān:["坍","怹","摊","擹","攤","滩","灘","瘫","癱","舑","貪","贪"],"huài pēi pī péi":["坏"],"dì làn":["坔"],tán:["坛","墰","墵","壇","壜","婒","憛","昙","曇","榃","檀","潭","燂","痰","磹","罈","罎","藫","談","譚","譠","谈","谭","貚","郯","醰","錟","顃"],bà:["坝","垻","壩","弝","欛","灞","爸","矲","覇","霸","鮁","鲅"],fén:["坟","墳","妢","岎","幩","枌","棼","汾","焚","燌","燓","羒","羵","蒶","蕡","蚠","蚡","豮","豶","轒","鐼","隫","馩","魵","黂","鼖","鼢","𣸣"],zhuì:["坠","墜","惴","甀","畷","礈","綴","縋","缀","缒","腏","膇","諈","贅","赘","醊","錣","鑆"],pō:["坡","岥","泼","溌","潑","釙","鏺","钋","頗","颇","䥽"],"pǎn bàn":["坢"],kūn:["坤","堃","堒","崐","崑","昆","晜","潉","焜","熴","猑","琨","瑻","菎","蜫","裈","裩","褌","醌","錕","锟","騉","髠","髡","髨","鯤","鲲","鵾","鶤","鹍"],diàn:["坫","垫","墊","壂","奠","婝","店","惦","扂","橂","殿","淀","澱","玷","琔","电","癜","簟","蜔","鈿","電","靛","驔"],"mù mǔ":["坶"],"kē kě":["坷","軻"],xuè:["坹","岤","桖","瀥","狘","瞲","謔","谑","趐"],"dǐ chí":["坻","柢"],lā:["垃","柆","菈","邋"],lǒng:["垄","垅","壟","壠","拢","攏","竉","陇","隴","𬕂"],mín:["垊","姄","岷","崏","捪","旻","旼","民","珉","琘","琝","瑉","痻","盿","砇","緍","緡","缗","罠","苠","鈱","錉","鍲","鴖"],"dòng tóng":["垌","峒","洞"],cí:["垐","嬨","慈","柌","濨","珁","瓷","甆","磁","礠","祠","糍","茨","詞","词","辝","辞","辤","辭","雌","飺","餈","鴜","鶿","鷀","鹚"],duī:["垖","堆","塠","痽","磓","鐓","鐜","鴭"],"duò duǒ":["垛"],"duǒ duò":["垜","挆"],chá:["垞","察","嵖","搽","槎","檫","猹","茬","茶","詧","靫","𥻗"],shǎng:["垧","晌","樉","賞","贘","赏","鋿","鏛","鑜"],shǒu:["垨","守","手","扌","艏","首"],da:["垯","繨","跶"],háng:["垳","斻","杭","筕","絎","绗","航","苀","蚢","裄","貥","迒","頏","颃","魧"],"ān ǎn":["垵"],xīng:["垶","惺","星","曐","煋","猩","瑆","皨","篂","腥","興","觪","觲","謃","騂","骍","鮏","鯹"],"yuàn huán":["垸"],bāng:["垹","帮","幇","幚","幫","捠","梆","浜","邦","邫","鞤","𠳐"],"póu fú":["垺"],cén:["埁","岑","涔"],"běng fēng":["埄"],"dì fáng":["埅"],"xiá jiā":["埉"],"mái mán":["埋"],làng:["埌","崀","浪","蒗","閬","㫰"],"shān yán":["埏"],"qín jīn":["埐"],"pǔ bù":["埔"],huā:["埖","婲","椛","硴","糀","花","蒊","蘤","誮","錵"],"suì sù":["埣"],"pí pì":["埤"],"qīng zhēng":["埥","鲭"],"wǎn wān":["埦"],lǔn:["埨","稐","𫭢"],"zhēng chéng":["埩"],kōng:["埪","崆","箜","躻","錓","鵼"],"cǎi cài":["埰","寀","采"],"chù tòu":["埱"],běng:["埲","琫","菶","鞛"],"kǎn xiàn":["埳"],"yì shì":["埶","醳"],péi:["培","毰","裴","裵","賠","赔","錇","锫","阫","陪"],"sào sǎo":["埽"],"jǐn qīn jìn":["堇"],"péng bèng":["堋"],"qiàn zàn jiàn":["堑"],àn:["堓","屵","岸","按","暗","案","胺","荌","豻","貋","錌","闇","隌","黯"],"duò huī":["堕","墮"],huán:["堚","寏","寰","峘","桓","洹","澴","獂","环","環","糫","繯","缳","羦","荁","萈","萑","豲","鍰","鐶","锾","镮","闤","阛","雈","鬟","鹮","𬘫","𤩽"],"bǎo bǔ pù":["堡"],"máo móu wǔ":["堥"],ruán:["堧","壖","撋"],"ài è yè":["堨"],gèng:["堩","暅"],méi:["堳","塺","媒","嵋","徾","攗","枚","栂","梅","楣","楳","槑","湄","湈","煤","猸","玫","珻","瑂","眉","睂","禖","脄","脢","腜","苺","莓","葿","郿","酶","鎇","镅","霉","鶥","鹛","黴"],dǔ:["堵","琽","睹","笃","篤","覩","賭","赌"],féng:["堸","綘","艂","逢"],hèng:["堼"],chūn:["堾","媋","旾","春","暙","杶","椿","槆","橁","櫄","瑃","箺","萅","蝽","輴","鰆","鶞","䲠"],jiǎng:["塂","奖","奨","奬","桨","槳","獎","耩","膙","蒋","蔣","講","讲","顜"],huāng:["塃","巟","慌","肓","荒","衁"],duàn:["塅","断","斷","椴","段","毈","煅","瑖","碫","簖","籪","緞","缎","腶","葮","躖","鍛","锻"],tǎ:["塔","墖","獭","獺","鮙","鰨","鳎"],wěng:["塕","奣","嵡","攚","暡","瞈","蓊"],"sāi sài sè":["塞"],zàng:["塟","弉","臓","臟","葬","蔵","銺"],tián:["塡","屇","恬","沺","湉","璳","甛","甜","田","畋","畑","碵","磌","胋","闐","阗","鴫","鷆","鷏"],zhèng:["塣","幁","政","証","諍","證","证","诤","郑","鄭","靕","鴊"],"tián zhèn":["填"],wēn:["塭","昷","榲","殟","温","溫","瑥","瘟","蕰","豱","輼","轀","辒","鎾","饂","鰛","鰮","鳁"],liù:["塯","廇","磟","翏","雡","霤","餾","鬸","鷚","鹨"],hǎi:["塰","海","烸","酼","醢"],lǎng:["塱","朖","朗","朤","烺","蓢","㮾"],bèng:["塴","揼","泵","甏","綳","蹦","迸","逬","鏰","镚"],chén:["塵","宸","尘","忱","敐","敶","晨","曟","栕","樄","沉","煁","瘎","臣","茞","莀","莐","蔯","薼","螴","訦","諶","軙","辰","迧","鈂","陈","陳","霃","鷐","麎"],"ōu qiū":["塸"],"qiàn jiàn":["塹"],"zhuān tuán":["塼"],shuǎng:["塽","慡","漺","爽","縔","鏯"],shú:["塾","婌","孰","璹","秫","贖","赎"],lǒu:["塿","嵝","嶁","甊","篓","簍"],chí:["墀","弛","持","池","漦","竾","筂","箎","篪","茌","荎","蚳","謘","貾","赿","踟","迟","迡","遅","遟","遲","鍉","馳","驰"],shù:["墅","庶","庻","怷","恕","戍","束","树","樹","沭","漱","潄","濖","竖","竪","絉","腧","荗","蒁","虪","術","裋","豎","述","鉥","錰","鏣","霔","鶐","𬬸"],"dì zhì":["墆","疐"],kàn:["墈","崁","瞰","矙","磡","衎","鬫"],chěn:["墋","夦","硶","碜","磣","贂","趻","踸","鍖"],"zhǐ zhuó":["墌"],qiǎng:["墏","繈","繦","羥","襁"],zēng:["増","增","憎","璔","矰","磳","罾","譄","鄫","鱛","䎖"],qiáng:["墙","墻","嫱","嬙","樯","檣","漒","牆","艢","蔃","蔷","蘠"],"kuài tuí":["墤"],"tuǎn dǒng":["墥"],"qiáo què":["墧"],"zūn dūn":["墫"],"qiāo áo":["墽"],"yì tú":["墿"],"xué bó jué":["壆"],lǎn:["壈","嬾","孄","孏","懒","懶","揽","擥","攬","榄","欖","浨","漤","灠","纜","缆","罱","覧","覽","览","醂","顲"],huài:["壊","壞","蘾"],rǎng:["壌","壤","攘","爙"],"làn xiàn":["壏"],dǎo:["壔","导","導","岛","島","嶋","嶌","嶹","捣","搗","擣","槝","祷","禂","禱","蹈","陦","隝","隯"],ruǐ:["壡","桵","橤","繠","蕊","蕋","蘂","蘃"],san:["壭"],zhuàng:["壮","壯","壵","撞","焋","状","狀"],"ké qiào":["壳","殼"],kǔn:["壸","壼","悃","捆","梱","硱","祵","稇","稛","綑","裍","閫","閸","阃"],mǎng:["壾","漭","茻","莽","莾","蠎"],cún:["壿","存"],"zhǐ zhōng":["夂"],"gǔ yíng":["夃"],"jiàng xiáng":["夅","降"],"páng féng fēng":["夆"],zhāi:["夈","捚","摘","斋","斎","榸","粂","齋"],"xuàn xiòng":["夐"],wài:["外","顡"],"wǎn yuàn wān yuān":["夗"],"mǎo wǎn":["夘"],mèng:["夢","夣","孟","梦","癦","霥"],"dà dài":["大"],"fū fú":["夫","姇","枎","粰"],guài:["夬","怪","恠"],yāng:["央","姎","抰","殃","泱","秧","胦","鉠","鍈","雵","鴦","鸯"],"hāng bèn":["夯"],gǎo:["夰","搞","杲","槀","槁","檺","稁","稾","稿","縞","缟","菒","藁","藳"],"tāo běn":["夲"],"tóu tou":["头"],"yǎn tāo":["夵"],"kuā kuà":["夸","誇"],"jiá jiā gā xiá":["夹"],huà:["夻","婳","嫿","嬅","崋","摦","杹","枠","桦","槬","樺","澅","画","畫","畵","繣","舙","話","諙","譮","话","黊"],"jiā jiá gā xiá":["夾"],ēn:["奀","恩","蒽"],"dī tì":["奃"],"yǎn yān":["奄","渰"],pào:["奅","疱","皰","砲","礟","礮","靤","麭"],nài:["奈","柰","渿","耐","萘","褦","錼","鼐"],"quān juàn":["奍","弮","棬"],zòu:["奏","揍"],"qì qiè xiè":["契"],kāi:["奒","开","揩","鐦","锎","開"],"bēn bèn":["奔","泍"],tào:["套"],"zàng zhuǎng":["奘"],běn:["奙","本","楍","畚","翉","苯"],"xùn zhuì":["奞"],shē:["奢","檨","猞","畭","畲","賒","賖","赊","輋","𪨶"],"hǎ pò tǎi":["奤"],"ào yù":["奥","奧","澚"],yūn:["奫","氲","氳","蒀","蒕","蝹","贇","赟","𫖳"],"duǒ chě":["奲"],"nǚ rǔ":["女"],nú:["奴","孥","笯","駑","驽"],"dīng dǐng tiǎn":["奵"],"tā jiě":["她"],nuán:["奻"],"hǎo hào":["好"],fàn:["奿","嬎","梵","汎","泛","滼","瀪","犯","畈","盕","笵","範","范","訉","販","贩","軬","輽","飯","飰","饭"],shuò:["妁","搠","朔","槊","烁","爍","矟","蒴","鎙","鑠","铄"],"fēi pèi":["妃"],wàng:["妄","忘","旺","望","朢"],zhuāng:["妆","妝","娤","庄","庒","桩","梉","樁","粧","糚","荘","莊","装","裝"],mā:["妈","媽"],"fū yōu":["妋"],"hài jiè":["妎"],dù:["妒","妬","杜","殬","渡","秺","芏","荰","螙","蠧","蠹","鍍","镀","靯","𬭊"],miào:["妙","庙","庿","廟","玅","竗"],"fǒu pēi pī":["妚"],"yuè jué":["妜"],niū:["妞"],"nà nàn":["妠"],tuǒ:["妥","嫷","庹","椭","楕","橢","鬌","鰖","鵎"],"wàn yuán":["妧"],fáng:["妨","房","肪","防","魴","鲂"],nī:["妮"],zhóu:["妯","碡"],zhāo:["妱","巶","招","昭","釗","鉊","鍣","钊","駋","𬬿"],"nǎi nǐ":["妳"],tǒu:["妵","敨","紏","蘣","黈"],"xián xuán xù":["妶"],"zhí yì":["妷","秇"],ē:["妸","妿","婀","屙"],mèi:["妹","媚","寐","抺","旀","昧","沬","煝","痗","眛","睸","祙","篃","蝞","袂","跊","鬽","魅"],"qī qì":["妻"],"xū xǔ":["姁","稰"],"shān shàn":["姍","姗","苫","釤","钐"],mán:["姏","慲","樠","蛮","蠻","謾","饅","馒","鬗","鬘","鰻","鳗"],jiě:["姐","媎","檞","毑","飷"],"wěi wēi":["委"],pīn:["姘","拼","礗","穦","馪","驞"],"huá huó":["姡"],"jiāo xiáo":["姣"],"gòu dù":["姤"],"lǎo mǔ":["姥"],"nián niàn":["姩"],zhěn:["姫","屒","弫","抮","昣","枕","畛","疹","眕","稹","縝","縥","缜","聄","萙","袗","裖","覙","診","诊","軫","轸","辴","駗","鬒"],héng:["姮","恆","恒","烆","珩","胻","蘅","衡","鑅","鴴","鵆","鸻"],"jūn xún":["姰"],"kuā hù":["姱"],"è yà":["姶"],"xiān shēn":["姺"],wá:["娃"],"ráo rǎo":["娆","嬈"],"shào shāo":["娋"],xiē:["娎","揳","楔","歇","蝎","蠍"],"wǔ méi mǔ":["娒"],"chuò lài":["娕"],niáng:["娘","嬢","孃"],"nà nuó":["娜","𦰡"],"pōu bǐ":["娝"],"něi suī":["娞"],tuì:["娧","煺","蛻","蜕","退","駾"],mǎn:["娨","屘","満","满","滿","螨","蟎","襔","鏋"],"wú wù yú":["娪"],"xī āi":["娭"],"zhuì shuì":["娷"],"dōng dòng":["娻"],"ǎi ái è":["娾"],"ē ě":["娿"],mián:["婂","嬵","宀","杣","棉","檰","櫋","眠","矈","矊","矏","綿","緜","绵","芇","蝒"],"pǒu péi bù":["婄"],biǎo:["婊","脿","表","裱","褾","諘","錶"],"fù fàn":["婏"],wǒ:["婐","婑","我"],"ní nǐ":["婗","棿"],"quán juàn":["婘","惓"],hūn:["婚","昏","昬","棔","涽","睧","睯","碈","荤","葷","蔒","轋","閽","阍"],"qiān jǐn":["婜"],"wān wà":["婠"],"lái lài":["婡","徕","徠"],"zhōu chōu":["婤"],"chuò nào":["婥"],"nüè àn":["婩"],"hùn kūn":["婫"],"dàng yáng":["婸"],nàn:["婻"],"ruò chuò":["婼"],jiǎ:["婽","岬","斚","斝","榎","槚","檟","玾","甲","胛","鉀","钾"],"tōu yú":["婾","媮"],"yù yú":["媀"],"wéi wěi":["媁"],"dì tí":["媂","珶","苐"],róu:["媃","揉","柔","渘","煣","瑈","瓇","禸","粈","糅","脜","腬","葇","蝚","蹂","輮","鍒","鞣","騥","鰇","鶔","𫐓"],"ruǎn nèn":["媆"],miáo:["媌","嫹","描","瞄","苗","鶓","鹋"],"yí pèi":["媐"],"mián miǎn":["媔"],"tí shì":["媞","惿"],"duò tuó":["媠","沲"],ǎo:["媪","媼","艹","芺","袄","襖","镺"],"chú zòu":["媰"],yìng:["媵","映","暎","硬","膡","鱦"],"qín shēn":["嫀"],jià:["嫁","幏","架","榢","稼","駕","驾"],sǎo:["嫂"],"zhēn zhěn":["嫃"],"jiē suǒ":["嫅"],"míng mǐng":["嫇"],niǎo:["嫋","嬝","嬲","茑","蔦","袅","裊","褭","鸟"],tāo:["嫍","幍","弢","慆","掏","搯","槄","涛","滔","濤","瑫","絛","縚","縧","绦","詜","謟","轁","鞱","韜","韬","飸","饕"],biáo:["嫑"],"piáo piāo":["嫖","薸"],xuán:["嫙","悬","懸","暶","檈","漩","玄","璇","璿","痃","蜁","𫠊"],"màn mān":["嫚"],kāng:["嫝","嵻","康","慷","槺","漮","砊","穅","糠","躿","鏮","鱇","𡐓","𩾌"],"hān nǎn":["嫨"],nèn:["嫩","嫰"],zhē:["嫬","遮"],"mā má":["嫲"],piè:["嫳"],zhǎn:["嫸","展","搌","斩","斬","琖","盏","盞","輾","醆","颭","飐"],"xiān yǎn jìn":["嬐"],liǎn:["嬚","敛","斂","琏","璉","羷","脸","臉","蔹","蘝","蘞","裣","襝","鄻"],"qióng huán xuān":["嬛"],dǒng:["嬞","懂","箽","董","蕫","諌"],cān:["嬠","湌","爘","飡","餐","驂","骖"],tiǎo:["嬥","宨","晀","朓","窱","脁"],bí:["嬶","荸","鼻"],liǔ:["嬼","柳","栁","桞","桺","橮","熮","珋","綹","绺","罶","羀","鋶","锍"],"qiān xiān":["孅","欦"],"xié huī":["孈"],"huān quán":["孉"],"lí lì":["孋","麗"],"zhú chuò":["孎"],kǒng:["孔","恐"],"mā zī":["孖"],"sūn xùn":["孙","孫"],"bèi bó":["孛","誖"],"yòu niū":["孧"],zhuǎn:["孨","竱","轉"],hái:["孩","骸"],nāo:["孬"],"chán càn":["孱"],bò:["孹","檗","蘗","譒"],nái:["孻","腉"],"níng nìng":["宁","寍","寗","寜","寧","甯"],zhái:["宅"],"tū jiā":["宊"],sòng:["宋","訟","誦","讼","诵","送","鎹","頌","颂","餸"],ròu:["宍","肉","譳"],zhūn:["宒","窀","衠","諄","谆","迍"],"mì fú":["宓"],"dàng tàn":["宕"],"wǎn yuān":["宛"],chǒng:["宠","寵"],qún:["宭","峮","帬","羣","群","裙","裠"],zǎi:["宰","崽"],"bǎo shí":["宲"],"jiā jia jie":["家"],"huāng huǎng":["宺"],kuān:["宽","寛","寬","臗","鑧","髋","髖"],"sù xiǔ xiù":["宿"],"jié zǎn":["寁"],"bìng bǐng":["寎"],"jìn qǐn":["寖"],"lóu jù":["寠"],"xiě xiè":["寫"],"qīn qìn":["寴"],cùn:["寸","籿"],duì:["对","対","對","怼","憝","懟","濧","瀩","碓","祋","綐","薱","譈","譵","轛","队","陮"],"lüè luó":["寽"],"shè yè yì":["射"],"jiāng jiàng qiāng":["将"],"jiāng jiàng":["將","浆","漿","畺"],zūn:["尊","嶟","樽","罇","遵","鐏","鱒","鳟","鶎","鷷","𨱔"],"shù zhù":["尌","澍"],xiǎo:["小","晓","暁","曉","皛","皢","筱","筿","篠","謏","𫍲"],"jié jí":["尐","诘","鞊"],"shǎo shào":["少"],ěr:["尒","尓","尔","栮","毦","洱","爾","珥","耳","薾","衈","趰","迩","邇","鉺","铒","餌","饵","駬"],"wāng yóu":["尢"],wāng:["尣","尩","尪","尫","汪"],liào:["尥","尦","廖","撂","料","炓","窷","鐐","镣","𪤗"],"méng máng lóng páng":["尨"],gà:["尬","魀"],"kuì kuǐ":["尯"],tuí:["尵","弚","穨","蘈","蹪","隤","頹","頺","頽","颓","魋","𬯎"],yǐn:["尹","嶾","引","朄","檃","檼","櫽","淾","濥","瘾","癮","粌","蘟","蚓","螾","讔","赺","趛","輑","鈏","靷"],"chǐ chě":["尺"],kāo:["尻","髛"],"jìn jǐn":["尽"],"wěi yǐ":["尾"],"niào suī":["尿"],céng:["层","層","嶒","驓"],diǎo:["屌"],"píng bǐng bīng":["屏"],lòu:["屚","漏","瘘","瘺","瘻","鏤","镂","陋"],"shǔ zhǔ":["属","屬"],"xiè tì":["屟"],"chè cǎo":["屮"],"tún zhūn":["屯"],"nì jǐ":["屰"],"hóng lóng":["屸"],"qǐ kǎi":["岂","豈"],áng:["岇","昂","昻"],"gǎng gāng":["岗","崗"],kě:["岢","敤","渇","渴","炣"],gǒu:["岣","狗","玽","笱","耇","耈","耉","苟","豿"],tiáo:["岧","岹","樤","祒","笤","芀","萔","蓚","蓨","蜩","迢","鋚","鎥","鞗","髫","鯈","鰷","鲦","齠","龆"],"qū jū":["岨"],lǐng:["岭","嶺","領","领"],pò:["岶","敀","洦","湐","烞","珀","破","砶","粕","蒪","魄"],"bā kè":["峇"],luò:["峈","摞","洛","洜","犖","珞","笿","纙","荦","詻","雒","駱","骆","鵅"],"fù niè":["峊"],ěn:["峎"],"zhì shì":["峙","崻"],qiǎ:["峠","跒","酠","鞐"],"qiáo jiào":["峤","癄"],"xié yé":["峫"],bū:["峬","庯","晡","誧","逋","鈽","錻","钸","餔","鵏"],chóng:["崇","崈","爞","虫","蝩","蟲","褈","隀"],"zú cuì":["崒","椊"],"líng léng":["崚"],"dòng dōng":["崠"],xiáo:["崤","洨","淆","訤","誵"],"pí bǐ":["崥","芘"],"zhǎn chán":["崭","嶃","嶄"],"wǎi wēi":["崴"],"yáng dàng":["崵"],"shì dié":["崼"],yào:["崾","曜","熎","燿","矅","穾","窔","筄","耀","艞","药","葯","薬","藥","袎","覞","詏","讑","靿","鷂","鹞","鼼"],"kān zhàn":["嵁"],"hán dǎng":["嵅"],"qiàn kàn":["嵌"],"wù máo":["嵍"],"kě jié":["嵑","嶱"],"wēi wěi":["嵔"],kē:["嵙","柯","棵","榼","樖","牁","牱","犐","珂","疴","瞌","磕","礚","科","稞","窠","萪","薖","蚵","蝌","趷","轲","醘","鈳","钶","頦","顆","颗","髁"],"dàng táng":["嵣"],"róng yíng":["嵤","爃"],"ái kǎi":["嵦"],"kāo qiāo":["嵪"],cuó:["嵯","嵳","痤","矬","蒫","蔖","虘","鹺","鹾"],"qiǎn qīn":["嵰"],"dì dié":["嵽"],cēn:["嵾"],dǐng:["嵿","艼","薡","鐤","頂","顶","鼎","鼑"],"áo ào":["嶅"],"pǐ pèi":["嶏"],"jiào qiáo":["嶠","潐"],"jué guì":["嶡","鳜"],"zhān shàn":["嶦","鳣"],"xiè jiè":["嶰"],"guī xī juàn":["嶲"],rū:["嶿"],"lì liè":["巁","棙","爄","綟"],"xī guī juàn":["巂"],"yíng hōng":["巆"],yǐng:["巊","廮","影","摬","梬","潁","瘿","癭","矨","穎","郢","鐛","頴","颍","颕","颖"],chǎo:["巐","炒","煼","眧","麨"],cuán:["巑","櫕","欑"],chuān:["巛","川","氚","瑏","穿"],"jīng xíng":["巠"],cháo:["巢","巣","晁","漅","潮","牊","窲","罺","謿","轈","鄛","鼌"],qiǎo:["巧","愀","髜"],gǒng:["巩","廾","拱","拲","栱","汞","珙","輁","鞏"],"chà chā chāi cī":["差"],"xiàng hàng":["巷"],shuài:["帅","帥","蟀"],pà:["帊","帕","怕","袙"],"tǎng nú":["帑"],"mò wà":["帓"],"tiē tiě tiè":["帖"],zhǒu:["帚","晭","疛","睭","箒","肘","菷","鯞"],"juǎn juàn":["帣"],shuì:["帨","涗","涚","睡","稅","税","裞"],"chóu dào":["帱","幬"],"jiǎn jiān sàn":["帴"],"shà qiè":["帹"],"qí jì":["帺","荠"],"shān qiāo shēn":["幓"],"zhuàng chuáng":["幢"],"chān chàn":["幨"],miè:["幭","懱","搣","滅","灭","烕","礣","篾","蔑","薎","蠛","衊","鑖","鱴","鴓"],"gān gàn":["干"],"bìng bīng":["并","幷"],"jī jǐ":["幾"],"guǎng ān":["广"],guǎng:["広","廣","犷","獷"],me:["庅"],"dùn tún":["庉"],"bài tīng":["庍"],"yìng yīng":["应"],"dǐ de":["底"],"dù duó":["度"],"máng méng páng":["庬"],"bìng píng":["庰"],chěng:["庱","悜","睈","逞","騁","骋"],"jī cuò":["庴"],qǐng:["庼","廎","檾","漀","苘","請","謦","请","頃","顷"],"guī wěi huì":["廆"],"jǐn qín":["廑"],kuò:["廓","扩","拡","擴","濶","筈","萿","葀","蛞","闊","阔","霩","鞟","鞹","韕","頢","鬠"],"qiáng sè":["廧","薔"],"yǐn yìn":["廴","隐","隠","隱","飮","飲","饮"],"pò pǎi":["廹","迫"],"nòng lòng":["弄"],"dì tì tuí":["弟"],"jué zhāng":["弡"],"mí mǐ":["弥","彌","靡"],chāo:["弨","怊","抄","欩","訬","超","鈔","钞"],yi:["弬"],shāo:["弰","旓","烧","焼","燒","筲","艄","萷","蕱","輎","髾","鮹"],"xuān yuān":["弲"],"qiáng qiǎng jiàng":["強","强"],"tán dàn":["弹","醈"],biè:["彆"],"qiáng jiàng qiǎng":["彊"],"jì xuě":["彐"],tuàn:["彖","褖"],yuē:["彟","曰","曱","矱"],"shān xiǎn":["彡"],wén:["彣","文","炆","珳","瘒","繧","聞","芠","蚉","蚊","螡","蟁","閺","閿","闅","闦","闻","阌","雯","馼","駇","魰","鳼","鴍","鼤","𫘜"],"péng bāng":["彭"],"piāo piào":["彯"],"zhuó bó":["彴"],"tuǒ yí":["彵"],"páng fǎng":["彷"],wǎng:["彺","往","徃","惘","枉","棢","網","网","罒","罓","罔","罖","菵","蛧","蝄","誷","輞","辋","魍"],cú:["徂","殂"],"dài dāi":["待"],huái:["徊","怀","懐","懷","槐","淮","耲","蘹","褢","褱","踝"],"wā wàng jiā":["徍"],"chěng zhèng":["徎"],"dé děi de":["得"],"cóng zòng":["從"],"shì tǐ":["徥"],"tí chí":["徲","鶗","鶙"],dé:["徳","德","恴","悳","惪","淂","鍀","锝"],"zhǐ zhēng":["徴","徵"],bié:["徶","癿","莂","蛂","襒","蹩"],"chōng zhǒng":["徸"],"jiǎo jiào":["徼","笅","筊"],"lòng lǒng":["徿"],"qú jù":["忂","渠","瞿","螶"],"dìng tìng":["忊"],gǎi:["忋","改"],rěn:["忍","栠","栣","秹","稔","綛","荏","荵","躵"],chàn:["忏","懴","懺","硟","羼","韂","顫"],tè:["忑","慝","特","蟘","鋱","铽"],"tè tēi tuī":["忒"],"gān hàn":["忓","攼"],"yì qì":["忔"],"tài shì":["忕"],"xī liě":["忚"],"yīng yìng":["応","應","譍"],"mǐn wěn mín":["忞","忟"],"sōng zhōng":["忪"],"yù shū":["忬","悆"],"qí shì":["忯","耆"],"tún zhūn dùn":["忳"],"qián qín":["忴","扲"],hún:["忶","浑","渾","餛","馄","魂","鼲"],niǔ:["忸","扭","炄","狃","紐","纽","莥","鈕","钮","靵"],"kuáng wǎng":["忹"],"kāng hàng":["忼"],"kài xì":["忾","愾"],òu:["怄","慪"],"bǎo bào":["怉"],"mín mén":["怋"],"zuò zhà":["怍"],zěn:["怎"],yàng:["怏","恙","样","様","樣","漾","羕","詇"],"kòu jù":["怐"],"náo niú":["怓"],"zhēng zhèng":["怔","掙","钲","铮"],"tiē zhān":["怗"],"hù gù":["怘"],"cū jù zū":["怚"],"sī sāi":["思"],"yóu chóu":["怞"],"tū dié":["怢"],"yōu yào":["怮"],xuàn:["怰","昡","楦","泫","渲","炫","琄","眩","碹","絢","縼","繏","绚","蔙","衒","袨","贙","鉉","鏇","铉","镟","颴"],"xù xuè":["怴"],"bì pī":["怶"],"xī shù":["怸"],"nèn nín":["恁"],"tiāo yáo":["恌"],"xī qī xù":["恓"],"xiào jiǎo":["恔"],"hū kuā":["恗"],nǜ:["恧","朒","衂","衄"],hèn:["恨"],"dòng tōng":["恫"],"quán zhuān":["恮"],"è wù ě wū":["恶","惡"],tòng:["恸","慟","憅","痛","衕"],"yuān juàn":["悁"],"qiāo qiǎo":["悄"],"jiè kè":["悈"],"hào jiào":["悎"],huǐ:["悔","檓","毀","毁","毇","燬","譭"],"mán mèn":["悗","鞔"],"yī yì":["悘","衣"],quān:["悛","箞","鐉","𨟠"],"kuī lǐ":["悝"],"yì niàn":["悥"],"mèn mēn":["悶"],guàn:["悹","悺","惯","慣","掼","摜","樌","欟","泴","涫","潅","灌","爟","瓘","盥","礶","祼","罆","罐","貫","贯","躀","遦","鏆","鑵","鱹","鸛","鹳"],"kōng kǒng":["悾"],"lǔn lùn":["惀"],guǒ:["惈","果","椁","槨","粿","綶","菓","蜾","裹","褁","輠","餜","馃"],"yuān wǎn":["惌","箢"],"lán lín":["惏"],"yù xù":["惐","淢"],"chuò chuì":["惙"],"hūn mèn":["惛"],"chǎng tǎng":["惝"],"suǒ ruǐ":["惢"],cǎn:["惨","慘","憯","黪","黲","䅟"],cán:["惭","慙","慚","残","殘","蚕","蝅","蠶","蠺"],"dàn dá":["惮","憚"],rě:["惹"],"yú tōu":["愉"],"kài qì":["愒"],"dàng táng shāng yáng":["愓"],"chén xìn dān":["愖"],"kè qià":["愘"],nuò:["愞","懦","懧","掿","搦","榒","稬","穤","糑","糥","糯","諾","诺","蹃","逽","鍩","锘"],gǎn:["感","擀","敢","桿","橄","澉","澸","皯","秆","稈","笴","芉","衦","赶","趕","鱤","鳡"],"còng sōng":["愡"],"sāi sī sǐ":["愢"],"gōng gòng hǒng":["愩","慐"],"shuò sù":["愬","洬"],"yáo yào":["愮"],huàng:["愰","曂","榥","滉","皝","皩","鎤","㿠"],zhěng:["愸","抍","拯","整","晸"],cǎo:["愺","艸","草","騲"],"xì xié":["慀"],"cǎo sāo":["慅"],"xù chù":["慉"],"qiè qiàn":["慊"],"cáo cóng":["慒"],"ào áo":["慠"],"lián liǎn":["慩","梿","槤","櫣"],"jìn qín jǐn":["慬"],"dì chì":["慸"],"zhí zhé":["慹"],"lóu lǚ":["慺","鷜"],còng:["憁","謥"],"zhī zhì":["憄","知","織","织"],chēng:["憆","摚","撐","撑","晿","柽","棦","橕","檉","泟","浾","琤","瞠","碀","緽","罉","蛏","蟶","赪","赬","鏿","鐣","阷","靗","頳","饓"],biē:["憋","虌","鱉","鳖","鼈","龞"],"chéng dèng zhèng":["憕"],"xǐ xī":["憘"],"duì dùn tūn":["憞"],"xiāo jiāo":["憢"],"xián xiàn":["憪"],"liáo liǎo":["憭","燎","爎","爒"],shéng:["憴","縄","繉","繩","绳","譝"],"náo nǎo náng":["憹"],"jǐng jìng":["憼"],"jǐ jiǎo":["憿"],"xuān huān":["懁"],"cǎo sāo sào":["懆"],mèn:["懑","懣","暪","焖","燜"],"mèng méng měng":["懜"],"ài yì nǐ":["懝"],"méng měng":["懞","瞢","矒"],"qí jī jì":["懠"],mǒ:["懡"],"lán xiàn":["懢"],"yōu yǒu":["懮"],"liú liǔ":["懰","藰"],ràng:["懹","譲","讓","让"],huān:["懽","欢","歓","歡","獾","讙","貛","酄","驩","鴅","鵍"],nǎn:["戁","揇","湳","煵","腩","蝻","赧"],"mí mó":["戂"],"gàng zhuàng":["戅","戆"],"zhuàng gàng":["戇"],"xū qu":["戌"],"xì hū":["戏","戯","戲"],"jiá gā":["戛"],zéi:["戝","蠈","賊","贼","鰂","鱡","鲗"],děng:["戥","等"],"hū xì":["戱"],chuō:["戳","踔","逴"],"biǎn piān":["扁"],"shǎng jiōng":["扄"],"shàn shān":["扇"],cái:["才","材","纔","裁","財","财"],"zhā zā zhá":["扎"],"lè lì cái":["扐"],"bā pá":["扒"],"dǎ dá":["打"],rēng:["扔"],"fǎn fú":["払"],"diǎo dí yuē lì":["扚"],"káng gāng":["扛"],"yū wū":["扜"],"yū wū kū":["扝"],"tuō chǐ yǐ":["扡"],"gǔ jié xì gē":["扢"],dèn:["扥","扽"],"sǎo sào":["扫","掃"],rǎo:["扰","擾","隢"],"xī chā qì":["扱"],"bān pān":["扳"],"bā ào":["扷"],"xī zhé":["扸"],"zhì sǔn kǎn":["扻"],zhǎo:["找","沼","瑵"],"kuáng wǎng zài":["抂"],"hú gǔ":["抇","鹄","鹘"],"bǎ bà":["把"],"dǎn shěn":["抌"],"nè nì ruì nà":["抐"],zhuā:["抓","檛","簻","膼","髽"],póu:["抔","裒"],"zhé shé zhē":["折"],"póu pōu fū":["抙","捊"],pāo:["抛","拋","脬","萢"],"ǎo ào niù":["抝"],"lūn lún":["抡","掄"],"qiǎng qiāng chēng":["抢"],"zhǐ zhǎi":["抧"],"bù pū":["抪","柨"],"yǎo tāo":["抭"],"hē hè qiā":["抲"],"nǐ ní":["抳"],"pī pēi":["抷"],"mǒ mò mā":["抹"],chōu:["抽","犨","犫","瘳","篘"],"jiā yá":["拁"],"fú bì":["拂","畐","鶝"],zhǎ:["拃","眨","砟","鮺","鲝"],"dān dàn dǎn":["担"],"chāi cā":["拆"],niān:["拈","蔫"],"lā lá lǎ là":["拉"],"bàn pàn":["拌"],pāi:["拍"],līn:["拎"],guǎi:["拐","枴","柺"],"tuò tà zhí":["拓"],"ào ǎo niù":["拗"],"jū gōu":["拘"],"pīn pàn fān":["拚"],"bài bái":["拜"],bài:["拝","敗","稗","粺","薭","贁","败","韛"],qiá:["拤"],"nǐng níng nìng":["拧"],"zé zhái":["择","擇"],hén:["拫","痕","鞎"],"kuò guā":["括"],"jié jiá":["拮"],nǐn:["拰"],shuān:["拴","栓","閂","闩"],"cún zùn":["拵"],"zā zǎn":["拶","桚"],kǎo:["拷","攷","栲","烤","考"],"yí chǐ hài":["拸"],"cè sè chuò":["拺"],"zhuài zhuāi yè":["拽"],"shí shè":["拾"],bāi:["挀","掰"],"kuò guāng":["挄"],nòng:["挊","挵","齈"],"jiào jiāo":["挍","敎","教"],"kuà kū":["挎"],"ná rú":["挐"],"tiāo tiǎo":["挑"],"dié shè":["挕"],liě:["挘","毟"],"yà yǎ":["挜","掗"],"wō zhuā":["挝"],"xié jiā":["挟","挾"],"dǎng dàng":["挡","擋"],"zhèng zhēng":["挣","正","症"],"āi ái":["挨"],"tuō shuì":["挩","捝"],"tǐ tì":["挮"],"suō shā":["挱"],"sā shā suō":["挲"],"kēng qiān":["挳","摼"],"bàng péng":["挷"],"ruó ruá":["挼"],"jiǎo kù":["捁"],"wǔ wú":["捂"],tǒng:["捅","桶","筒","筩","統","綂","统","㛚"],"huò chì":["捇"],"tú shū chá":["捈"],"lǚ luō":["捋"],"shāo shào":["捎","稍"],niē:["捏","揑"],"shù sǒng sōu":["捒"],"yé yú":["捓"],"jué zhuó":["捔"],"bù pú zhì":["捗"],zùn:["捘","銌"],lāo:["捞","撈","粩"],sǔn:["损","損","榫","笋","筍","箰","鎨","隼"],"wàn wǎn wān yù":["捥"],pěng:["捧","淎","皏"],shě:["捨"],"fǔ fù bǔ":["捬"],dáo:["捯"],"luò luǒ wǒ":["捰"],"juǎn quán":["捲"],"chēn tiǎn":["捵"],"niǎn niē":["捻"],"ruó wěi ré":["捼"],zuó:["捽","昨","秨","稓","筰","莋","鈼"],"wò xiá":["捾"],"qìng qiàn":["掅"],"póu pǒu":["掊"],qiā:["掐","葜"],"pái pǎi":["排"],"qiān wàn":["掔"],"yè yē":["掖"],"niè nǐ yì":["掜"],"huò xù":["掝"],"yàn shàn yǎn":["掞"],"zhěng dìng":["掟"],kòng:["控","鞚"],tuī:["推","蓷","藬"],"zōu zhōu chōu":["掫"],tiàn:["掭","舚"],kèn:["掯","裉","褃"],pá:["掱","杷","潖","爬","琶","筢"],"guó guāi":["掴"],"dǎn shàn":["掸","撣"],"chān xiān càn shǎn":["掺"],sāo:["掻","搔","溞","繅","缫","螦","騒","騷","鰠","鱢","鳋"],pèng:["掽","椪","槰","碰","踫"],"zhēng kēng":["揁"],"jiū yóu":["揂"],"jiān jiǎn":["揃","籛"],"pì chè":["揊"],"sāi zǒng cāi":["揌"],"tí dī dǐ":["提"],"zǒng sōng":["揔"],"huáng yóng":["揘"],"zǎn zuàn":["揝"],"xū jū":["揟"],"ké qiā":["揢"],"chuāi chuǎi chuài tuán zhuī":["揣"],"dì tì":["揥"],"lá là":["揦"],là:["揧","楋","溂","瓎","瘌","翋","臘","蝋","蝲","蠟","辢","辣","鑞","镴","鬎","鯻","𬶟"],"jiē qì":["揭"],"chòng dǒng":["揰"],"dié shé yè":["揲"],"jiàn qián jiǎn":["揵"],yé:["揶","爷","爺","瑘","鋣","鎁","铘"],chān:["搀","摻","攙","裧","襜","覘","觇","辿","鋓"],"gē gé":["搁","擱"],"lǒu lōu":["搂","摟"],"chōu zǒu":["搊"],chuāi:["搋"],sūn:["搎","槂","狲","猻","荪","蓀","蕵","薞","飧","飱"],"róng náng nǎng":["搑"],"péng bàng":["搒"],cuō:["搓","瑳","磋","蹉","遳","醝"],"kē è":["搕"],"nù nuò nòu":["搙"],"lā xié xiàn":["搚"],qiǔ:["搝","糗"],"xiǎn xiān":["搟"],"jié zhé":["搩"],"pán bān pó":["搫"],bān:["搬","攽","斑","斒","班","瘢","癍","肦","螁","螌","褩","辬","頒","颁","𨭉"],"zhì nái":["搱"],"wā wǎ wà":["搲"],huá:["搳","撶","滑","猾","蕐","螖","譁","鏵","铧","驊","骅","鷨"],"qiāng qiǎng chēng":["搶"],"tián shēn":["搷"],"ná nuò":["搻"],èn:["摁"],"shè niè":["摄","攝"],bìn:["摈","擯","殡","殯","膑","臏","髌","髕","髩","鬂","鬓","鬢"],"shā sà shǎi":["摋"],"chǎn sùn":["摌"],"jiū liú liáo jiǎo náo":["摎"],"féng pěng":["摓"],shuāi:["摔"],"dì tú zhí":["摕"],"qì jì chá":["摖"],"sōu sǒng":["摗"],"liǎn liàn":["摙"],"gài xì":["摡"],"hù chū":["摢"],tàng:["摥","烫","燙","鐋"],"nái zhì":["摨"],"mó mā":["摩"],"jiāng qiàng":["摪"],"áo qiáo":["摮"],"niè chè":["摰"],"mán màn":["摱"],"chàn cán":["摲"],"sè mí sù":["摵"],"biāo biào":["摽"],"juē jué":["撅"],piē:["撆","暼","氕","瞥"],"piě piē":["撇"],"zǎn zān zēn qián":["撍"],"sā sǎ":["撒"],hòng:["撔","訌","讧","闀","鬨"],"héng guàng":["撗"],niǎn:["撚","撵","攆","涊","焾","碾","簐","蹍","蹨","躎","輦","辇"],"chéng zhěng":["撜"],"huī wéi":["撝"],cāo:["撡","操","糙"],"xiāo sōu":["撨"],"liáo liāo":["撩"],"cuō zuǒ":["撮"],"wěi tuǒ":["撱"],cuān:["撺","攛","汆","蹿","躥","鑹","镩"],"qiào yāo jī":["撽"],"zhuā wō":["撾"],"lèi léi":["擂"],nǎng:["擃","攮","曩","灢"],"qíng jǐng":["擏"],kuǎi:["擓","蒯","㧟"],"pǐ bò":["擗"],"bò bāi":["擘"],"jù jǐ":["據"],mēng:["擝"],"sǒu sòu":["擞"],xǐng:["擤","箵","醒"],cā:["擦"],"níng nǐng nìng":["擰"],"zhì jié":["擳"],"là liè":["擸","爉"],"sòu sǒu":["擻"],"lì luò yuè":["擽"],"tī zhāi zhì":["擿"],pān:["攀","潘","眅","萠"],lèi:["攂","泪","涙","淚","禷","类","纇","蘱","酹","銇","錑","頛","頪","類","颣"],"cā sǎ":["攃"],"jùn pèi":["攈"],"lì luò":["攊","躒"],"là lài":["攋","櫴"],"lú luó":["攎"],"zǎn cuán":["攒"],"xiān jiān":["攕"],"mí mǐ mó":["攠"],"zǎn cuán zàn zuān":["攢"],zuàn:["攥"],"lì shài":["攦"],"lì luǒ":["攭"],"guǐ guì":["攱"],"jī qī yǐ":["攲"],fàng:["放"],"wù móu":["敄"],"chù shōu":["敊"],"gé guó è":["敋"],"duó duì":["敓","敚"],"duō què":["敠","敪"],"sàn sǎn":["散"],"dūn duì":["敦","镦"],"qī yǐ jī":["敧"],"xiào xué":["敩"],"shù shǔ shuò":["数","數"],"ái zhú":["敱","敳"],"xiòng xuàn":["敻"],"zhuó zhú":["斀"],"yì dù":["斁"],"lí tái":["斄"],"fěi fēi":["斐"],"yǔ zhōng":["斔"],"dòu dǒu":["斗"],"wò guǎn":["斡"],"tǒu tiǎo":["斢"],dòu:["斣","梪","浢","痘","窦","竇","脰","荳","豆","逗","郖","酘","閗","闘","餖","饾","鬥","鬦","鬪","鬬","鬭"],"yín zhì":["斦"],"chǎn jiè":["斺"],"wū yū yú":["於"],"yóu liú":["斿"],"páng bàng":["旁"],"máo mào":["旄"],"pī bì":["旇"],"xuán xuàn":["旋"],"wú mó":["无"],zǎo:["早","枣","栆","棗","澡","璪","薻","藻","蚤"],gā:["旮"],"gàn hàn":["旰"],"tái yīng":["旲"],"xū xù":["旴"],"tūn zhùn":["旽"],"wù wǔ":["旿"],"pò pèi":["昢"],zòng:["昮","猔","疭","瘲","粽","糉","糭","縦"],ǎi:["昹","毐","矮","蔼","藹","譪","躷","霭","靄"],"huàng huǎng":["晃"],xuǎn:["晅","癣","癬","选","選"],"xù kuā":["晇"],hǒng:["晎"],shài:["晒","曬"],"yūn yùn":["晕","煴"],"shèng chéng":["晟","椉","盛"],"jǐng yǐng":["景"],shǎn:["晱","熌","睒","覢","閃","闪","陕","陝"],"qǐ dù":["晵"],"ǎn àn yǎn":["晻"],"wǎng wàng":["暀"],zàn:["暂","暫","瓉","瓒","瓚","禶","襸","讃","讚","賛","贊","赞","蹔","鄼","錾","鏨","饡"],"yùn yūn":["暈"],"mín mǐn":["暋"],"dǔ shǔ":["暏"],shǔ:["暑","曙","潻","癙","糬","署","薥","薯","藷","蜀","蠴","襡","襩","鱪","鱰","黍","鼠","鼡"],"jiǎn lán":["暕"],nuǎn:["暖","煗","餪"],"bào pù":["暴"],"xī xǐ":["暿"],"pù bào":["曝","瀑"],"qū qǔ":["紶"],"qǔ qū":["曲"],"gèng gēng":["更"],"hū hù":["曶","雽"],"zēng céng":["曽","橧"],"céng zēng":["曾","竲"],"cǎn qián jiàn":["朁"],"qiè hé":["朅"],"bì pí":["朇","禆","笓","裨"],"yǒu yòu":["有"],"bān fén":["朌","鳻"],"fú fù":["服","洑"],"fěi kū":["朏","胐"],"qú xù chǔn":["朐"],"juān zuī":["朘"],"huāng máng wáng":["朚"],"qī jī":["期"],"tóng chuáng":["朣","橦"],zhá:["札","牐","箚","蚻","譗","鍘","铡","閘","闸"],"zhú shù shú":["朮"],"shù shú zhú":["术"],"zhū shú":["朱"],"pǔ pò pō piáo":["朴"],"dāo tiáo mù":["朷"],"guǐ qiú":["朹"],xiǔ:["朽","滫","潃","糔"],"chéng chēng":["朾"],zá:["杂","沯","砸","襍","雑","雜","雥","韴"],"yú wū":["杅"],"gān gǎn":["杆"],"chā chà":["杈"],"shān shā":["杉"],cūn:["村","皴","竴","膥","踆","邨"],"rèn ér":["杒","梕"],"sháo biāo":["杓"],"dì duò":["杕","枤"],"gū gài":["杚"],"yí zhì lí duò":["杝"],"gàng gāng":["杠"],"tiáo tiāo":["条","條"],"mà mǎ":["杩"],"sì zhǐ xǐ":["杫"],"yuán wán":["杬","蚖"],"bèi fèi":["杮"],"shū duì":["杸"],"niǔ chǒu":["杻"],"wò yuè":["枂","臒"],máo:["枆","毛","氂","渵","牦","矛","罞","茅","茆","蝥","蟊","軞","酕","鉾","錨","锚","髦","鶜"],"pī mì":["枈"],àng:["枊","盎","醠"],"fāng bìng":["枋"],"hù dǐ":["枑"],xín:["枔","襑","鐔","鬵"],"yāo yǎo":["枖"],"ě è":["枙"],"zhī qí":["枝"],"cōng zōng":["枞","樅"],"xiān zhēn":["枮"],"tái sì":["枱"],"gǒu jǔ gōu":["枸"],"bāo fú":["枹"],"yì xiè":["枻","栧"],"tuó duò":["柁","馱","駄","驮"],"yí duò lí":["柂"],"nǐ chì":["柅"],"pán bàn":["柈","跘"],"yǎng yàng yāng yīng":["柍"],"fù fū fǔ":["柎"],"bǎi bó bò":["柏"],mǒu:["某"],"sháo shào":["柖"],zhè:["柘","樜","浙","淛","蔗","蟅","這","鷓","鹧","䗪"],"yòu yóu":["柚","櫾"],"guì jǔ":["柜"],"zhà zuò":["柞"],"dié zhì":["柣","眰"],"zhā zǔ zū":["柤"],"chá zhā":["查","査"],"āo ào":["柪","軪"],"bā fú pèi bó biē":["柭"],"duò zuó wù":["柮"],"bì bié":["柲"],"zhù chù":["柷"],"bēi pēi":["柸"],"shì fèi":["柹"],"shān zhà shi cè":["栅"],"lì yuè":["栎","櫟"],"qì qiè":["栔","砌"],"qī xī":["栖","蹊"],"guā kuò":["栝"],"bīng bēn":["栟"],"xiào jiào":["校"],"jiàn zùn":["栫","袸"],"yǒu yù":["栯"],"hé hú":["核"],gēn:["根","跟"],"zhī yì":["栺"],"gé gē":["格"],"héng háng":["桁"],"guàng guāng":["桄"],"yí tí":["桋","荑"],sāng:["桑","桒","槡"],"jú jié":["桔"],"yú móu":["桙"],"ráo náo":["桡","橈"],"guì huì":["桧","檜"],"chén zhèn":["桭"],"tīng yíng":["桯"],"bó po":["桲"],"bèn fàn":["桳"],"fēng fèng":["桻","葑"],"sù yìn":["梀"],"tǐng tìng":["梃"],"xuān juān xié":["梋"],"tú chá":["梌"],"āo yòu":["梎"],kuǎn:["梡","欵","款","歀"],"shāo sào":["梢"],"qín chén cén":["梣"],"lí sì qǐ":["梩"],"chān yán":["梴"],"bīn bīng":["梹","槟","檳"],"táo chóu dào":["梼"],"cōng sōng":["棇"],"gùn hùn":["棍"],"dé zhé":["棏"],"pái bèi pèi":["棑"],"bàng pǒu bèi bēi":["棓"],"dì dài tì":["棣"],sēn:["森","椮","槮","襂"],"rěn shěn":["棯"],"léng lēng líng":["棱"],"fú sù":["棴"],"zōu sǒu":["棷"],zōu:["棸","箃","緅","諏","诹","邹","郰","鄒","鄹","陬","騶","驺","鯫","鲰","黀","齱","齺"],"zhào zhuō":["棹"],"chēn shēn":["棽"],"jiē qiè":["椄"],"yǐ yī":["椅"],"chóu zhòu diāo":["椆"],"qiāng kōng":["椌"],"zhuī chuí":["椎"],"bēi pí":["椑"],mēn:["椚"],"quān juàn quán":["椦"],"duǒ chuán":["椯"],"wěi huī":["椲"],"jiǎ jiā":["椵"],"hán jiān":["椷"],"shèn zhēn":["椹"],"yàn yà":["椻"],"zhā chá":["楂"],"guō kuǎ":["楇"],"jí zhì":["楖"],"kǔ hù":["楛"],"yóu yǒu":["楢"],"sǒng cōng":["楤"],"yuán xuàn":["楥"],"yǎng yàng yīng":["楧"],pián:["楩","胼","腁","賆","蹁","駢","騈","骈","骿","㛹"],"dié yè":["楪"],"dùn shǔn":["楯"],"còu zòu":["楱"],"dì dǐ shì":["楴"],"kǎi jiē":["楷"],"róu ròu":["楺"],"lè yuè":["楽"],"wēn yùn":["榅","鞰"],lǘ:["榈","櫚","氀","膢","藘","閭","闾","驢","驴"],shén:["榊","神","鉮","鰰","𬬹"],"bī pi":["榌"],"zhǎn niǎn zhèn":["榐"],"fú fù bó":["榑"],"jiàn jìn":["榗"],"bǎng bàng":["榜"],"shā xiè":["榝","樧"],nòu:["槈","耨","鎒","鐞"],"qiǎn lián xiàn":["槏"],gàng:["槓","焵","焹","筻","鿍"],gāo:["槔","槹","橰","櫜","睾","篙","糕","羔","臯","韟","餻","高","髙","鷎","鷱","鼛"],"diān zhěn zhēn":["槙"],"kǎn jiàn":["槛"],"xí dié":["槢"],"jī guī":["槣"],"róng yōng":["槦"],"tuán shuàn quán":["槫"],"qì sè":["槭"],"cuī zhǐ":["槯"],"yǒu chǎo":["槱"],"màn wàn":["槾"],"lí chī":["樆"],"léi lěi":["樏","櫑","礌"],"cháo jiǎo chāo":["樔"],"chēng táng":["樘"],"jiū liáo":["樛"],"mó mú":["模"],"niǎo mù":["樢"],"héng hèng":["横","橫"],xuě:["樰","膤","艝","轌","雪","鱈","鳕"],"fá fèi":["橃"],rùn:["橍","润","潤","膶","閏","閠","闰"],"zhǎn jiǎn":["橏"],shùn:["橓","瞚","瞬","舜","蕣","順","顺","鬊"],"tuí dūn":["橔"],"táng chēng":["橖"],"sù qiū":["橚"],"tán diàn":["橝"],"fén fèn fèi":["橨"],"rǎn yān":["橪"],"cū chu":["橻"],"shū qiāo":["橾"],"píng bò":["檘"],"zhái shì tú":["檡"],"biǎo biāo":["檦"],"qiān lián":["檶"],"nǐ mí":["檷"],"jiàn kǎn":["檻"],"nòu ruǎn rú":["檽"],"jī jì":["櫅","禨"],"huǎng guǒ gǔ":["櫎"],"lǜ chū":["櫖"],"miè mèi":["櫗"],ōu:["櫙","欧","歐","殴","毆","瓯","甌","膒","藲","謳","讴","鏂","鴎","鷗","鸥"],"zhù zhuó":["櫡"],"jué jì":["櫭"],"huái guī":["櫰"],"chán zhàn":["欃"],"wéi zuì":["欈"],cáng:["欌","鑶"],"yù yì":["欥"],"chù qù xì":["欪"],"kài ài":["欬"],"yì yīn":["欭"],"xì kài":["欯"],"shuò sòu":["欶"],"ǎi ēi éi ěi èi ê̄ ế ê̌ ề":["欸"],"qī yī":["欹"],"chuā xū":["欻"],"chǐ chuài":["欼"],"kǎn qiàn":["欿"],"kǎn kè":["歁"],"chuǎn chuán":["歂"],"yīn yān":["歅"],"jìn qūn":["歏"],pēn:["歕"],"xū chuā":["歘"],"xī shè":["歙"],"liǎn hān":["歛"],"zhì chí":["歭"],"sè shà":["歰"],sǐ:["死"],"wěn mò":["歾"],piǎo:["殍","皫","瞟","醥","顠"],"qíng jìng":["殑"],"fǒu bó":["殕"],"zhí shi":["殖"],"yè yān yàn":["殗"],"hūn mèi":["殙"],chòu:["殠","臰","遚"],"kuì huì":["殨","溃","潰"],cuàn:["殩","熶","爨","窜","竄","篡","簒"],"yīn yān yǐn":["殷"],"qìng kēng shēng":["殸"],"yáo xiáo xiào":["殽"],"gū gǔ":["毂","蛄"],"guàn wān":["毌"],"dú dài":["毒"],"xún xùn":["毥"],mú:["毪","氁"],"dòu nuò":["毭"],"sāi suī":["毸"],lu:["氇"],sào:["氉","瘙","矂","髞"],"shì zhī":["氏"],"dī dǐ":["氐"],"máng méng":["氓"],"yáng rì":["氜"],shuǐ:["水","氵","氺","閖"],"zhěng chéng zhèng":["氶"],tǔn:["氽"],"fán fàn":["氾"],"guǐ jiǔ":["氿"],"bīn pà pā":["汃"],"zhuó què":["汋"],"dà tài":["汏"],pìn:["汖","牝","聘"],"hàn hán":["汗","馯"],tu:["汢"],"tāng shāng":["汤","湯"],"zhī jì":["汥"],"gàn hán cén":["汵"],"wèn mén":["汶"],"fāng pāng":["汸"],"hǔ huǎng":["汻"],"niú yóu":["汼"],hàng:["沆"],"shěn chén":["沈"],"dùn zhuàn":["沌"],"nǜ niǔ":["沑"],"méi mò":["沒","没"],"tà dá":["沓"],"mì wù":["沕"],"hóng pāng":["沗"],"shā shà":["沙"],"zhuǐ zǐ":["沝"],"ōu òu":["沤","漚"],"jǔ jù":["沮"],"tuō duó":["沰"],"mǐ lì":["沵"],"yí chí":["沶"],"xiè yì":["泄"],"bó pō":["泊"],"mì bì":["泌","秘"],"chù shè":["泏"],"yōu yòu āo":["泑"],"pēng píng":["泙","硑"],"pào pāo":["泡"],"ní nì":["泥","秜"],"yuè sà":["泧"],"jué xuè":["泬","疦"],"lóng shuāng":["泷","瀧"],"luò pō":["泺","濼"],"zé shì":["泽","澤"],"sǎ xǐ":["洒"],"sè qì zì":["洓"],"xǐ xiǎn":["洗"],"kǎo kào":["洘"],"àn yàn è":["洝"],"lěi lèi":["洡"],"qiè jié":["洯"],"qiǎn jiān":["浅"],"jì jǐ":["济","済","濟","纪"],"hǔ xǔ":["浒","滸"],"jùn xùn":["浚","濬"],"yǐng chéng yíng":["浧"],"liàn lì":["浰"],"féng hóng":["浲","溄"],"jiǒng jiōng":["浻"],"suī něi":["浽"],"yǒng chōng":["涌"],"tūn yūn":["涒"],"wō guō":["涡","渦"],hēng:["涥","脝"],"zhǎng zhàng":["涨","漲"],"shòu tāo":["涭"],shuàn:["涮","腨"],"kōng náng":["涳"],"wò wǎn yuān":["涴"],"tuō tuò":["涶"],wō:["涹","猧","窝","窩","莴","萵","蜗","蝸","踒"],"qiè jí":["淁"],"guǒ guàn":["淉"],"lín lìn":["淋","獜","疄"],"tǎng chǎng":["淌"],"nào chuò zhuō":["淖"],"péng píng":["淜"],féi:["淝","肥","腓","蜰"],"pì pèi":["淠"],"niǎn shěn":["淰"],"biāo hǔ":["淲"],"chún zhūn":["淳"],"hùn hún":["混"],qiǎn:["淺","繾","缱","肷","膁","蜸","譴","谴","遣","鑓"],"wèn mín":["渂"],"rè ruò luò":["渃"],"dú dòu":["渎","瀆","读"],"jiàn jiān":["渐","溅","漸","濺"],"miǎn shéng":["渑","澠"],"nuǎn nuán":["渜"],"qiú wù":["渞"],"tíng tīng":["渟"],"dì tí dī":["渧"],"gǎng jiǎng":["港"],"hōng qìng":["渹"],tuān:["湍","煓"],"huì mǐn xū":["湏"],"xǔ xù":["湑"],pén:["湓","瓫","盆","葐"],"mǐn hūn":["湣"],"tuàn nuǎn":["湪"],"qiū jiǎo":["湫","湬"],"yān yīn":["湮"],"bàn pán":["湴"],"zhuāng hún":["湷"],"yàn guì":["溎"],"lián liǎn nián xián xiàn":["溓"],"dá tǎ":["溚","鿎"],"liū liù":["溜","澑","蹓"],lùn:["溣"],mǎ:["溤","犸","獁","玛","瑪","码","碼","遤","鎷","馬","马","鰢","鷌"],"zhēn qín":["溱"],"nì niào":["溺"],"chù xù":["滀","畜"],"wěng wēng":["滃"],"hào xuè":["滈"],"qì xì xiē":["滊"],"xíng yíng":["滎"],"zé hào":["滜"],"piāo piào piǎo":["漂"],"cóng sǒng":["漎"],"féng péng":["漨"],"luò tà":["漯"],"pēng bēn":["漰"],"chóng shuāng":["漴"],"huǒ kuò huò":["漷"],"liáo liú":["漻"],"cuǐ cuī":["漼"],"cóng zǒng":["潀"],"cóng zōng":["潈"],"pì piē":["潎"],"dàng xiàng":["潒"],"huáng guāng":["潢"],"liáo lào lǎo":["潦"],"cōng zòng":["潨"],"zhí zhì":["潪"],"tān shàn":["潬"],"tú zhā":["潳"],"sàn sǎ":["潵"],hēi:["潶","黑","黒","𬭶"],"chéng dèng":["澄","瀓"],"cūn cún":["澊"],"péng pēng":["澎"],"hòng gǒng":["澒","銾"],"wàn màn":["澫"],"kuài huì":["澮"],"guō wō":["濄"],"pēn fén":["濆"],"jí shà":["濈"],"huì huò":["濊"],"dǐng tìng":["濎"],"mǐ nǐ":["濔"],"bì pì":["濞"],"cuì zuǐ":["濢"],"hù huò":["濩"],"ǎi kài kè":["濭"],"wěi duì":["濻","瀢"],"zàn cuán":["濽","灒"],"yǎng yàng":["瀁"],"wǎng wāng":["瀇"],"mò miè":["瀎","眜"],suǐ:["瀡","膸","髓"],"huái wāi":["瀤"],"zùn jiàn":["瀳"],"yīng yǐng yìng":["瀴"],"ráng ràng":["瀼"],shuàng:["灀"],"zhuó jiào zé":["灂"],sǎ:["灑","訯","靸"],"luán luàn":["灓"],"dǎng tǎng":["灙"],"xún quán quàn":["灥"],"huǒ biāo":["灬"],"zhà yù":["灹"],"fén bèn":["炃"],"jiǒng guì":["炅"],"pàng fēng":["炐"],quē:["炔","缺","缼","蒛"],biān:["炞","煸","甂","砭","笾","箯","籩","編","编","蝙","邉","邊","鍽","鞭","鯾","鯿","鳊"],"zhāo zhào":["炤"],"zhuō chù":["炪"],"pào páo bāo":["炮"],"páo fǒu":["炰"],"shǎn qián shān":["炶"],"zhà zhá":["炸"],"jiǎo yào":["烄"],quǎn:["烇","犬","犭","畎","綣","绻","虇"],"yàng yáng":["烊"],"lào luò":["烙"],"huí huǐ":["烠"],rè:["热","熱"],"fú páo":["烰"],"xiè chè":["烲","焎"],"yàn shān":["烻"],"hūn xūn":["焄"],kào:["焅","犒","銬","铐","靠","鮳","鯌","鲓","㸆"],"juān yè":["焆"],"jùn qū":["焌"],"tāo dào":["焘"],"chǎo jù":["焣"],"wò ài":["焥"],"zǒng cōng":["焧"],"xī yì":["焬"],"xìn xīn":["焮"],"chāo zhuō":["焯"],"xiǒng yīng":["焸","焽"],kuǐ:["煃","跬","蹞","頍","𫠆"],"huī yùn xūn":["煇"],"jiǎo qiāo":["煍"],"qián shǎn shān":["煔"],"xī yí":["煕"],"shà shā":["煞"],"yè zhá":["煠"],"yáng yàng":["煬"],"ēn yūn":["煾"],"yūn yǔn":["熅"],"hè xiāo":["熇"],xióng:["熊","熋","雄"],"xūn xùn":["熏","爋"],gòng:["熕","貢","贡"],liū:["熘"],"cōng zǒng":["熜"],"lù āo":["熝"],"shú shóu":["熟"],"fēng péng":["熢"],"cuǐ suī":["熣"],tēng:["熥","膯","鼟"],"yùn yù":["熨"],"áo āo":["熬"],"hàn rǎn":["熯"],"ōu ǒu":["熰"],"huáng huǎng":["熿"],"chǎn dǎn chàn":["燀"],"jiāo zhuó qiáo jué":["燋"],"yàn yān":["燕"],"tài liè":["燤"],āo:["爊"],"yàn xún":["爓"],"jué jiào":["爝","覐","覚","覺","觉"],"lǎn làn":["爦"],"zhuǎ zhǎo":["爪"],"zhǎo zhuǎ":["爫"],"fù fǔ":["父"],diē:["爹","褺","跌"],zāng:["牂","羘","臧","賍","賘","贓","贜","赃","髒"],"piàn piān":["片"],"biān miàn":["牑"],bǎng:["牓","綁","绑"],"yǒu yōng":["牗"],"chēng chèng":["牚","竀"],niú:["牛","牜"],"jiū lè":["牞"],"mù móu":["牟"],māng:["牤"],"gē qiú":["牫"],"yòu chōu":["牰"],"tè zhí":["犆"],bēn:["犇","錛","锛"],"jiān qián":["犍","玪"],má:["犘","痲","蔴","蟇","麻"],"máo lí":["犛"],"bá quǎn":["犮"],"zhuó bào":["犳"],"àn hān":["犴"],"kàng gǎng":["犺"],"pèi fèi":["犻"],"fān huān":["犿"],kuáng:["狂","狅","誑","诳","軖","軠","鵟","𫛭"],"yí quán chí":["狋"],"xīng shēng":["狌"],"tuó yí":["狏"],kǔ:["狜","苦"],"huán huān":["狟"],"hé mò":["狢"],"tà shì":["狧"],"máng dòu":["狵"],"xī shǐ":["狶"],suān:["狻","痠","酸"],"bài pí":["猈"],"jiān yàn":["猏","豣"],"yī yǐ":["猗"],"yá wèi":["猚"],cāi:["猜"],"māo máo":["猫","貓"],"chuàn chuān":["猭"],"tuān tuàn":["猯","貒"],"yà jiá qiè":["猰"],"hè xiē gé hài":["猲"],"biān piàn":["猵","獱"],"bó pò":["猼"],"háo gāo":["獋"],"fén fèn":["獖"],"yào xiāo":["獟"],"shuò xī":["獡"],"gé liè xiē":["獦"],"nòu rú":["獳"],"náo nǎo yōu":["獶"],ráng:["獽","瓤","禳","穣","穰","蘘","躟","鬤"],"náo yōu":["獿"],"lǜ shuài":["率"],"wáng wàng":["王"],"yáng chàng":["玚"],"mín wén":["玟"],"bīn fēn":["玢"],"mén yǔn":["玧"],"qiāng cāng":["玱","瑲","篬"],"án gān":["玵"],"xuán xián":["玹"],"cī cǐ":["玼","跐"],"yí tāi":["珆"],"zǔ jù":["珇"],fà:["珐","琺","蕟","髪","髮"],"yín kèn":["珢"],"huī hún":["珲"],"xuán qióng":["琁"],"fú fū":["琈"],"bǐng pín":["琕"],"cuì sè":["琗"],"yù wéi":["琟"],"tiǎn tiàn":["琠"],"zhuó zuó":["琢"],"běng pěi":["琣"],guǎn:["琯","璭","痯","筦","管","舘","輨","錧","館","馆","鳤"],"hún huī":["琿"],"xié jiē":["瑎"],"chàng dàng yáng":["瑒"],"tiàn zhèn":["瑱"],"bīn pián":["瑸","璸"],"tú shū":["瑹"],cuǐ:["璀","皠","趡"],"zǎo suǒ":["璅"],"jué qióng":["璚"],"lú fū":["璷"],"jì zī":["璾"],suí:["瓍","綏","绥","遀","随","隨","髄"],"mí xǐ":["瓕"],"qióng wěi wèi":["瓗"],"huán yè yà":["瓛"],"bó páo":["瓟"],"zhí hú":["瓡"],piáo:["瓢","闝"],"wǎ wà":["瓦"],"xiáng hóng":["瓨"],wèng:["瓮","甕","罋","蕹","齆"],"shèn shén":["甚"],ruí:["甤","緌","蕤"],yòng:["用","砽","苚","蒏","醟","㶲"],shuǎi:["甩"],béng:["甭","甮"],"yóu zhá":["甴"],"diàn tián shèng":["甸"],"tǐng dīng":["町","甼"],"zāi zī":["甾"],"bì qí":["畁"],"dá fú":["畗"],"cè jì":["畟"],"zāi zī tián":["畠"],"zhì chóu shì":["畤"],"fān pān":["畨","番"],"shē yú":["畬"],"dāng dàng dǎng":["當"],"jiāng qiáng":["疆"],"pǐ yǎ shū":["疋"],"jié qiè":["疌"],"yí nǐ":["疑"],nè:["疒","眲","訥","讷"],"gē yì":["疙"],"nüè yào":["疟","瘧"],"lì lài":["疠","癘"],"yǎ xiā":["疨"],xuē:["疶","蒆","薛","辥","辪","靴","鞾"],"dǎn da":["疸"],"fá biǎn":["疺"],"fèi féi":["疿","痱"],"shān diàn":["痁"],"téng chóng":["痋"],"tōng tóng":["痌"],"wěi yòu yù":["痏"],"tān shǐ":["痑"],"pū pù":["痡","鋪"],"bēng péng":["痭"],"má lìn":["痳"],"tiǎn diàn":["痶"],"ān yè è":["痷"],"kē ē":["痾"],"zhì chì":["瘈"],"jiǎ xiá xiā":["瘕"],"lěi huì":["瘣"],"chài cuó":["瘥"],"diān chēn":["瘨"],"da dá":["瘩"],"biě biē":["瘪"],qué:["瘸"],"dàn dān":["癉"],"guì wēi":["癐"],"nòng nóng":["癑"],"biē biě":["癟"],"bō bǒ":["癷"],bái:["白"],"jí bī":["皀"],"de dì dí dī":["的"],"pā bà":["皅"],"gāo háo":["皋"],"gāo yáo":["皐"],"lì luò bō":["皪"],"zhā cǔ":["皻"],"zhāo zhǎn dǎn":["皽"],"jiān jiàn":["监","監","鋻","间","鞬"],"gài gě hé":["盖"],"máng wàng":["盳"],yuǎn:["盶","逺","遠"],"tián xián":["盷"],"xiāng xiàng":["相"],dǔn:["盹","趸","躉"],"xì pǎn":["盻"],"shěng xǐng":["省"],"yún hùn":["眃"],"miǎn miàn":["眄"],"kàn kān":["看"],"yìng yāng yǎng":["眏"],"yǎo āo ǎo":["眑"],"jū xū kōu":["眗"],"yí chì":["眙"],"dié tì":["眣"],"bǐng fǎng":["眪"],"pàng pán":["眫"],"mī mí":["眯","瞇"],"xuàn shùn xún":["眴"],tiào:["眺","粜","糶","覜","趒"],"zhe zhuó zháo zhāo":["着"],"qiáo shào xiāo":["睄"],"cuó zhuài":["睉"],gùn:["睔","謴"],"suì zuì":["睟"],"pì bì":["睥","稫","辟"],"yì zé gāo":["睪"],"xǐng xìng":["睲"],"guì wèi kuì":["瞆"],"kòu jì":["瞉"],"qióng huán":["瞏"],"mán mén":["瞒","瞞"],"diāo dōu":["瞗"],"lou lóu lǘ":["瞜"],"shùn rún":["瞤"],"liào liǎo":["瞭","钌"],"jiàn xián":["瞯"],"wǔ mí":["瞴"],"guì kuì":["瞶"],"nǐng chēng":["矃"],"huò yuè":["矆"],"mēng méng":["矇"],"kuàng guō":["矌"],"guàn quán":["矔"],"mǎn mán":["矕"],"jīn guān qín":["矜"],"jīn qín guān":["矝"],"yù xù jué":["矞"],"jiǎo jiáo":["矫","矯"],duǎn:["短"],"shí dàn":["石"],"gāng qiāng kòng":["矼"],"huā xū":["砉"],"pīn bīn fēn":["砏"],"yán yàn":["研","硏"],"luǒ kē":["砢"],"fú fèi":["砩","笰"],"zhǔ zhù":["砫"],"lá lì lā":["砬"],"kuāng guāng":["硄"],"gè luò":["硌"],"shuò shí":["硕","碩"],"wèi wéi ái":["硙"],"què kè kù":["硞"],"mǎng bàng":["硥"],"luò lòng":["硦"],"yǒng tóng":["硧"],nüè:["硸","虐"],"kēng kěng":["硻"],"yān yǎn":["硽"],"zhuì chuí duǒ":["硾"],"kōng kòng":["硿"],"zòng cóng":["碂"],"jiān zhàn":["碊"],"lù liù":["碌","陆"],"què xī":["碏"],"lún lǔn lùn":["碖"],"náo gāng":["碙"],"jié yà":["碣"],"wèi wěi":["碨"],"tí dī":["碮"],"chá chā":["碴"],"qiāo què":["碻"],"sù xiè":["碿"],"liú liù":["磂","遛","鎦","馏"],"sī tí":["磃"],"bàng páng":["磅"],"huá kě gū":["磆"],"wěi kuǐ":["磈"],"xiá qià yà":["磍"],"lián qiān":["磏"],"wèi ái gài":["磑"],"lá lā":["磖"],"áo qiāo":["磝"],"pēng pèng":["磞","閛"],"yīn yǐn":["磤"],"lěi léi":["磥"],"mó mò":["磨"],"qì zhú":["磩"],"láo luò":["磱"],"pán bō":["磻"],"jí shé":["磼"],"hé qiāo qiào":["礉"],"kè huò":["礊"],"què hú":["礐"],"è qì":["礘"],cǎ:["礤","礸"],"xián xín":["礥"],"léi lěi lèi":["礧"],"yán yǎn":["礹"],"qí zhǐ":["祇","蚔"],"bēng fāng":["祊"],"bì mì":["祕"],suàn:["祘","笇","筭","算","蒜"],"piào piāo":["票"],"jì zhài":["祭"],"shuì lèi":["祱"],"jìn jīn":["禁"],"chán shàn":["禅"],"yáng shāng":["禓"],"zhī zhǐ tí":["禔"],"shàn chán":["禪"],"yú yù ǒu":["禺"],"zǐ zì":["秄"],"chá ná":["秅"],"zhǒng zhòng chóng":["种"],"hào mào":["秏"],"kù kū":["秙"],zū:["租","葅"],chèng:["秤","穪"],"huó kuò":["秮","秳"],"chēng chèn chèng":["称","稱"],"shì zhì":["秲","銴"],"fù pū":["秿"],"xùn zè":["稄"],"tú shǔ":["稌"],"zhùn zhǔn":["稕"],"jī qí":["稘","綨","觭"],"léng líng":["稜"],"zuì zú sū":["稡"],"xì qiè":["稧","郄"],"zhǒng zhòng":["種"],"zōng zǒng":["稯"],"xián jiān liàn":["稴"],"zī jiū":["稵"],"jī qǐ":["稽"],ròng:["穃"],"shān cǎn cēn":["穇"],"mén méi":["穈"],"jǐ jì":["穖"],"xiāo rào":["穘"],"zhuō bó":["穛"],"tóng zhǒng zhòng":["穜"],zuō:["穝"],"biāo pāo":["穮","藨"],"zhuō jué":["穱"],"cuán zàn":["穳"],"kōng kòng kǒng":["空"],"yū yǔ":["穻"],zhǎi:["窄","鉙"],báo:["窇","雹"],"kū zhú":["窋"],"jiào liáo liù":["窌"],"wā guī":["窐"],"tiǎo yáo":["窕"],"xūn yìn":["窨"],"yà yē":["窫"],"tián diān yǎn":["窴"],"chāo kē":["窼"],"kuǎn cuàn":["窽","窾"],"chù qì":["竐"],"qǔ kǒu":["竘"],"jìng zhěn":["竧"],"kǎn kàn":["竷"],"zhú dǔ":["竺"],"lè jīn":["竻"],"zhuì ruì":["笍"],"háng hàng":["笐"],"cén jìn hán":["笒"],"dā xiá nà":["笚"],"zé zuó":["笮"],"lóng lǒng":["笼","篭","籠","躘","龓"],"zhù zhú":["筑","築"],"dá dā":["答","荅"],shāi:["筛","篩","簁","籭"],"yún jūn":["筠"],"láng làng":["筤","郎","阆"],"zhì zhǐ":["筫"],o:["筽"],"póu bù fú pú":["箁"],"pái bēi":["箄"],gè:["箇","虼","鉻","铬"],"tái chí":["箈"],"guǎi dài":["箉"],"zhào dào":["箌"],"jīng qìng":["箐"],"lín lǐn":["箖"],"jùn qūn":["箘"],"shī yí":["箷","釶"],"yuē yào chuò":["箹"],"xiāo shuò qiào":["箾"],"gōng gǎn lǒng":["篢"],"páng péng":["篣"],"zhuó huò":["篧"],"jiǎn jiān":["篯"],"dí zhú":["篴"],"zān cēn cǎn":["篸"],"zhuàn suǎn zuàn":["篹"],"piǎo biāo":["篻"],"guó guì":["簂"],"cè jí":["簎"],"mì miè":["簚"],"shāi sī":["簛"],"sǔn zhuàn":["簨"],"gàn gǎn":["簳"],"bò bǒ":["簸"],"bó bù":["簿"],shi:["籂"],"zhēn jiān":["籈"],"zhuàn zuǎn":["籑"],"fān pān biān":["籓"],"sǒu shǔ":["籔"],zuǎn:["籫","繤","纂","纉","纘","缵"],nǚ:["籹","釹","钕"],"shā chǎo":["粆"],"kāng jīng":["粇"],fěn:["粉","黺"],cū:["粗","觕","麁","麄","麤"],"nián zhān":["粘"],"cè sè":["粣"],"zhōu yù":["粥"],"shēn sǎn":["糁"],"biān biǎn":["糄","萹"],miàn:["糆","面","靣","麪","麫","麵","麺"],"hú hū hù":["糊"],"gǔ gòu":["糓"],"mí méi":["糜"],"sǎn shēn":["糝","糣"],zāo:["糟","蹧","遭","醩"],"mì sī":["糸"],"jiū jiǔ":["糺"],"xì jì":["系","繫"],"zhēng zhěng":["糽"],"chà chǎ":["紁","衩"],"yuē yāo":["約","约"],"hóng gōng":["紅","红"],"hé gē":["紇","纥"],"wén wèn":["紋","纹"],fóu:["紑"],"jì jié jiè":["紒"],"pī pí bǐ":["紕","纰"],"jīn jìn":["紟"],"zhā zā":["紥","紮"],hā:["紦"],"fū fù":["紨"],"chōu chóu":["紬"],"lèi léi lěi":["累"],"bō bì":["紴"],"tiǎn zhěn":["紾"],"jiōng jiǒng":["絅"],"jié jiē":["結","结","节"],"guà kuā":["絓"],"bǎi mò":["絔"],"gēng huán":["絙"],"jié xié":["絜"],"quán shuān":["絟"],"gǎi ǎi":["絠"],"luò lào":["絡","络"],"bīng bēng pēng":["絣"],"gěi jǐ":["給","给"],"tóng tōng dòng":["絧"],"tiào diào dào":["絩"],"lěi lèi léi":["絫"],"gāi hài":["絯"],"chī zhǐ":["絺"],"wèn miǎn mán wàn":["絻"],"huán huàn wàn":["綄"],"qīn xiān":["綅"],"tì tí":["綈"],"yán xiàn":["綖"],"zōng zèng zòng":["綜"],"chēn lín":["綝"],"zhǔn zhùn":["綧"],"qiàn qīng zhēng":["綪"],"qìng qǐ":["綮"],"lún guān":["綸","纶"],"chuò chāo":["綽","绰"],"tián tǎn chān":["緂"],"lǜ lù":["緑","绿"],"ruǎn ruàn":["緛"],"jí qī":["緝"],"zhòng chóng":["緟","重"],"miáo máo":["緢"],"xiè yè":["緤"],huǎn:["緩","缓","㬊"],"gēng gèng":["緪","縆"],"tōu xū shū":["緰"],"zōng zòng":["緵","繌"],"yùn gǔn":["緷"],"guā wō":["緺"],"yùn yūn wēn":["緼","縕"],"bāng bàng":["縍"],"gǔ hú":["縎","鶻"],"cī cuò suǒ":["縒"],"cuī shuāi":["縗"],"róng rǒng ròng":["縙"],"zài zēng":["縡"],cài:["縩","菜","蔡"],"féng fèng":["縫"],"suō sù":["縮","缩"],"yǎn yǐn":["縯","酓"],"zòng zǒng":["縱","纵"],"zhuàn juàn":["縳"],"mò mù":["縸","莫"],"piǎo piāo":["縹","缥"],"fán pó":["繁"],"bēng bèng":["繃"],"móu miù miào liǎo":["繆"],"yáo yóu zhòu":["繇"],"zēng zèng":["繒","缯"],"jú jué":["繘"],"chuō chuò":["繛"],"zūn zǔn":["繜"],rào:["繞","绕","遶"],"chǎn chán":["繟"],"huì huí":["繢","缋","藱"],"qiāo sāo zǎo":["繰"],"jiǎo zhuó":["繳","缴"],"dàn tán chán":["繵"],nǒng:["繷"],"pú fú":["纀"],"yào lì":["纅"],"rǎng xiāng":["纕"],"lí sǎ xǐ lǐ":["纚"],"xiān qiàn":["纤"],"jīng jìng":["经"],"tí tì":["绨"],"bēng běng bèng":["绷"],"zōng zèng":["综"],"jī qī":["缉"],"wēn yùn yūn":["缊"],"fèng féng":["缝"],"shuāi cuī suī":["缞"],"miù móu liáo miào mù":["缪"],"qiāo sāo":["缲"],fǒu:["缶","缹","缻","雬","鴀"],"bà ba pí":["罢","罷"],"guà guǎi":["罫"],"yáng xiáng":["羊","羏"],"měi gāo":["羙"],"yì xī":["羛"],"qiǎng qiān":["羟"],"qiāng kòng":["羫"],"qián xián yán":["羬"],nóu:["羺"],"hóng gòng":["羾"],"pī bì pō":["翍"],"qú yù":["翑"],ké:["翗"],"qiào qiáo":["翘"],"zhái dí":["翟"],"dào zhōu":["翢"],"hóu qú":["翵"],shuǎ:["耍"],"ruǎn nuò":["耎"],"ér nài":["耏"],"zhuān duān":["耑"],"pá bà":["耙"],"chí sì":["耛"],"qù chú":["耝"],"lún lǔn":["耣"],"jí jiè":["耤"],"tāng tǎng":["耥"],pǎng:["耪","覫"],"zhá zé":["耫"],"yē yé":["耶"],"yún yíng":["耺"],"wà tuǐ zhuó":["聉"],"ér nǜ":["聏"],"tiē zhé":["聑"],"dǐ zhì":["聜"],qié:["聺"],"nǐ jiàn":["聻"],"lèi lē":["肋"],cào:["肏","襙","鄵","鼜"],"bó dí":["肑"],"xiào xiāo":["肖"],"dù dǔ":["肚"],chāi:["肞","釵","钗"],"hán qín hàn":["肣"],"pàng pán pàn":["肨","胖"],"zhūn chún":["肫"],āng:["肮","骯"],"yù yō":["育"],"pí bǐ bì":["肶"],"fèi bì":["胇"],"bèi bēi":["背"],"fèi zǐ":["胏"],"píng pēng":["胓","苹"],"fū fú zhǒu":["胕"],"shèng shēng":["胜"],kuà:["胯","跨","骻"],"gǎi hǎi":["胲"],"gē gé gā":["胳"],"néng nài":["能"],"guī kuì":["胿"],"mài mò":["脉"],"zāng zàng":["脏"],"jiǎo jué":["脚","角"],cuǒ:["脞"],"de te":["脦"],"zuī juān":["脧"],něi:["脮","腇","餒","馁","鮾","鯘"],"pú fǔ":["脯"],niào:["脲"],shuí:["脽"],guò:["腂","過","鐹"],"là xī":["腊"],"yān ā":["腌"],"gāo gào":["膏"],"lù biāo":["膔"],chuái:["膗"],"zhuān chuán chún zhuǎn":["膞"],chuài:["膪","踹"],"fán pán":["膰"],"wǔ hū":["膴"],"shān dàn":["膻"],tún:["臀","臋","蛌","豘","豚","軘","霕","飩","饨","魨","鲀","黗"],"bì bei":["臂"],"là gé":["臈"],"sào sāo":["臊"],nào:["臑","閙","闹","鬧"],"ní luán":["臡"],"qiān xián":["臤"],"guàng jiǒng":["臦"],"guǎng jiǒng":["臩"],"chòu xiù":["臭"],"mián biān":["臱"],"dié zhí":["臷"],"zhī jìn":["臸"],"shè shě":["舍"],pù:["舖","舗"],"bān bō pán":["般"],kuā:["舿"],"gèn gěn":["艮"],"sè shǎi":["色"],"fú bó":["艴"],"jiāo qiú":["艽"],"chāi chā":["芆"],"sháo què":["芍"],"hù xià":["芐"],"zì zǐ":["芓"],"huì hū":["芔"],"tún chūn":["芚"],"jiè gài":["芥"],"xù zhù":["芧"],"yuán yán":["芫"],"xīn xìn":["芯"],"lún huā":["芲"],"wù hū":["芴"],"gōu gǒu":["芶"],"mào máo":["芼"],"fèi fú":["芾"],"chán yín":["苂"],qiē:["苆"],"sū sù":["苏"],"tiáo sháo":["苕"],"lì jī":["苙"],"kē hē":["苛"],"jù qǔ":["苣"],"ruò rě":["若"],"zhù níng":["苧"],"pā bó":["苩"],xiú:["苬"],"zhǎ zuó":["苲"],"jū chá":["苴"],nié:["苶"],"shēng ruí":["苼"],"qié jiā":["茄"],"zǐ cí":["茈"],"qiàn xī":["茜"],chǎi:["茝"],"fá pèi":["茷"],ráo:["荛","蕘","襓","饒","饶"],"yíng xíng":["荥"],"qián xún":["荨","蕁"],"yìn yīn":["荫"],"hé hè":["荷"],"shā suō":["莎"],"péng fēng":["莑"],"shēn xīn":["莘"],"wǎn guān guǎn":["莞"],"yóu sù":["莤"],"shāo xiāo":["莦","蛸"],"làng liáng":["莨"],"piǎo fú":["莩"],"wèn wǎn miǎn":["莬"],"shì shí":["莳","蒔"],"tù tú":["莵"],"xiān liǎn":["莶","薟"],"wǎn yù":["菀"],"zōu chù":["菆"],"lù lǜ":["菉"],"jūn jùn":["菌"],"niè rěn":["菍"],"zī zì zāi":["菑"],"tú tù":["菟"],"jiē shà":["菨"],"qiáo zhǎo":["菬"],"tái zhī chí":["菭"],"fēi fěi":["菲","蜚"],"qín qīn jīn":["菳"],"zū jù":["菹","蒩"],"lǐn má":["菻"],"tián tiàn":["菾"],tiē:["萜","貼","贴"],"luò là lào luō":["落"],"zhù zhuó zhe":["著"],"shèn rèn":["葚"],"gě gé":["葛"],"jùn suǒ":["葰"],"kuì kuài":["蒉"],"rú ná":["蒘"],"méng mēng měng":["蒙"],"yuán huán":["蒝"],"xú shú":["蒣"],"xí xì":["蒵"],"mì míng":["蓂"],"sōu sǒu":["蓃"],"gài gě hé hài":["蓋"],"yǎo zhuó":["蓔"],"diào tiáo dí":["蓧"],"xū qiū fū":["蓲"],"zí jú":["蓻"],"liǎo lù":["蓼"],xu:["蓿"],"hàn hǎn":["蔊"],"màn wàn mán":["蔓"],"pó bò":["蔢"],"fān fán bō":["蕃"],"hóng hòng":["蕻"],"yù ào":["薁","隩"],"xí xiào":["薂"],"báo bó bò":["薄"],"cí zī":["薋"],"wàn luàn":["薍"],"kǎo hāo":["薧"],"yuǎn wěi":["薳"],"zhòu chóu":["薵"],"wō mái":["薶"],"xiāo hào":["藃"],"yù xù xū":["藇"],"jiè jí":["藉"],"diào zhuó":["藋"],"cáng zàng":["藏"],lǎ:["藞"],"chú zhū":["藸"],"pín píng":["蘋"],"gān hán":["虷"],"hóng jiàng":["虹"],"huī huǐ":["虺"],"xiā há":["虾"],"mǎ mà mā":["蚂"],"fāng bàng":["蚄"],"bàng bèng":["蚌"],"jué quē":["蚗"],"qín qián":["蚙"],"gōng zhōng":["蚣"],"fǔ fù":["蚥"],"dài dé":["蚮"],"gǒu qú xù":["蚼"],"bǒ pí":["蚾"],"shé yí":["蛇"],tiě:["蛈","鉄","銕","鐡","鐵","铁","驖"],"gé luò":["蛒"],"máng bàng":["蛖"],"yì xǔ":["蛡"],"há gé":["蛤"],"qiè ní":["蛪"],"é yǐ":["蛾"],"zhē zhé":["蜇"],"là zhà":["蜡"],suò:["蜶","逤"],"yóu qiú":["蝤"],"xiā hā":["蝦"],"xī qī":["螇"],"bī pí":["螕"],"nài něng":["螚"],"hé xiá":["螛"],"guì huǐ":["螝"],"mǎ mā mà":["螞"],"shì zhē":["螫"],"zhì dié":["螲"],"jiàn chán":["螹"],"ma má mò":["蟆"],"mǎng měng":["蟒"],"biē bié":["蟞"],"bēn fèi":["蟦"],"láo liáo":["蟧"],"yín xún":["蟫"],"lí lǐ":["蠡"],"xuè xiě":["血"],"xíng háng hàng héng":["行"],"shuāi cuī":["衰"],"tuó tuō":["袉"],"lǐng líng":["袊"],"bào páo pào":["袌"],"jù jiē":["袓"],"hè kè":["袔"],"yí yì":["袘","貤"],"nà jué":["袦"],"bèi pī":["被"],"chǐ nuǒ":["袲"],"chǐ qǐ duǒ nuǒ":["袳"],"jiá qiā jié":["袷"],"bó mò":["袹"],"guī guà":["袿"],"liè liě":["裂"],"chéng chěng":["裎"],"jiē gé":["裓"],"dāo chóu":["裯"],"shang cháng":["裳"],"yuān gǔn":["裷"],"yǎn ān":["裺"],"tì xī":["裼"],"fù fú":["褔"],"chǔ zhǔ":["褚"],"tuì tùn":["褪"],lǎi:["襰"],"yào yāo":["要"],"qín tán":["覃"],"jiàn xiàn":["見","见"],piǎn:["覑","諞","谝","貵","𡎚"],"piē miè":["覕"],"yíng yǐng":["覮"],"qù qū":["覰","覷","觑"],"jiàn biǎn":["覵"],"luó luǎn":["覶"],"zī zuǐ":["觜"],"huà xiè":["觟"],"jiě jiè xiè":["解","觧"],"xué hù":["觷"],"lì lù":["觻"],tǎo:["討","讨"],zhùn:["訰"],"zī zǐ":["訾"],"yí dài":["詒","诒"],xiòng:["詗","诇"],"diào tiǎo":["誂"],"yí chǐ chì":["誃"],"lǎng làng":["誏"],"ēi éi ěi èi xī":["誒","诶"],shuà:["誜"],"yǔ yù":["語","语","雨"],"shuō shuì yuè":["說","说"],"shuí shéi":["誰","谁"],"qū juè":["誳"],"chī lài":["誺"],"nì ná":["誽"],"diào tiáo":["調"],"pǐ bēi":["諀"],"jì jī":["諅"],"zé zuò zhǎ cuò":["諎"],"chù jí":["諔"],"háo xià":["諕"],"lùn lún":["論","论"],"shì dì":["諟"],"huà guā":["諣"],"xǐ shāi āi":["諰"],"nán nàn":["諵","難"],miù:["謬","谬"],zèn:["譖","谮"],"shí zhì":["識","识"],"juàn xuān":["讂"],"yí tuī":["讉"],zhán:["讝"],"xǔ hǔ":["许"],"xiáng yáng":["详"],"tiáo diào zhōu":["调"],"chén shèn":["谌"],"mí mèi":["谜"],"màn mán":["谩"],"gǔ yù":["谷"],"huō huò huá":["豁"],"zhì zhài":["豸"],"huān huán":["貆"],"kěn kūn":["貇"],"mò hé":["貈"],"mò hé háo":["貉"],"jù lóu":["貗"],"zé zhài":["責","责"],"dài tè":["貸"],"bì bēn":["賁"],"jiǎ gǔ jià":["賈"],"xiōng mín":["賯"],càng:["賶"],"zhuàn zuàn":["賺","赚"],"wàn zhuàn":["贃"],"gàn gòng zhuàng":["贛"],"yuán yùn":["贠"],"bēn bì":["贲"],"jiǎ gǔ":["贾"],zǒu:["走","赱","鯐"],"dié tú":["趃"],"jū qiè":["趄"],"qū cù":["趋","趨"],"jí jié":["趌"],"guā huó":["趏"],"què qì jí":["趞"],"tàng tāng":["趟"],"chuō zhuó":["趠"],"qù cù":["趣"],"yuè tì":["趯"],"bō bào":["趵"],"kuà wù":["趶"],"guì jué":["趹"],"fāng fàng páng":["趽"],"páo bà":["跁"],"qí qǐ":["跂"],"jiàn chén":["跈"],"pǎo páo":["跑"],"diǎn diē tiē":["跕"],"jū jù qiè":["跙"],bǒ:["跛"],"luò lì":["跞"],"dài duò duō chí":["跢"],zhuǎi:["跩"],"bèng pián":["跰"],"tiào táo":["跳"],"shū chōu":["跾"],"liàng liáng":["踉"],"tà tā":["踏"],chǎ:["蹅","鑔","镲"],"dí zhí":["蹢"],"dēng dèng":["蹬","鐙","镫"],cèng:["蹭"],"dūn cún":["蹲"],"juě jué":["蹶"],liāo:["蹽"],"xiè sǎ":["躠"],tǐ:["躰","軆","骵"],"yà zhá gá":["轧","軋"],"xìn xiàn":["軐"],"fàn guǐ":["軓"],"zhuàn zhuǎn":["転"],"zhóu zhòu":["軸","轴"],bú:["轐","醭","鳪"],"zhuǎn zhuàn zhuǎi":["转"],"zǎi zài":["载"],"niǎn zhǎn":["辗"],"biān bian":["边"],"dào biān":["辺"],"yǐ yí":["迆","迤","迱"],"guò guo guō":["过"],"wàng kuāng":["迋"],"hái huán":["还"],"zhè zhèi":["这"],"yuǎn yuàn":["远"],"zhì lì":["迣"],"zhù wǎng":["迬"],"zhuī duī":["追"],"shì kuò":["适"],tòu:["透"],"tōng tòng":["通"],guàng:["逛"],"dǎi dài":["逮"],"suì suí":["遂"],"tí dì":["遆"],"yí wèi":["遗"],"shì dí zhé":["適"],cà:["遪"],"huán hái":["還"],"lí chí":["邌"],"kàng háng":["邟"],"nà nèi nā":["那"],"xié yá yé yú xú":["邪"],"gāi hái":["郂"],"huán xún":["郇"],"chī xī":["郗"],hǎo:["郝"],"lì zhí":["郦"],"xiáo ǎo":["郩"],"dōu dū":["都"],liǎo:["曢","鄝","镽"],"zàn cuán cuó":["酂","酇"],"dīng dǐng":["酊"],"cù zuò":["酢"],"fā pō":["酦"],"shāi shī":["酾"],niàng:["酿","醸"],"qiú chōu":["醔"],"pō fā":["醗","醱"],"chǎn chěn":["醦"],"yàn liǎn xiān":["醶"],"niàng niáng":["釀"],"lǐ li":["里"],"lí xǐ xī":["釐"],"liǎo liào":["釕"],"dīng dìng":["釘","钉"],"qiǎo jiǎo":["釥"],"yú huá":["釪"],"huá wū":["釫"],"rì rèn jiàn":["釰","釼"],"dì dài":["釱"],"pī zhāo":["釽"],"yá yé":["釾"],"bǎ pá":["鈀","钯"],"tā tuó":["鉈","铊"],běi:["鉳"],"bǐng píng":["鉼"],"hā kē":["鉿","铪"],chòng:["銃","铳"],"xiǎng jiōng":["銄"],"yù sì":["銉"],"xù huì":["銊"],"rén rěn":["銋"],"shàn shuò":["銏"],"chì lì":["銐"],"xiǎn xǐ":["銑","铣"],"hóu xiàng":["銗"],"diào tiáo yáo":["銚"],"xiān kuò tiǎn guā":["銛","銽","铦"],"zhé niè":["銸"],"zhōng yōng":["銿"],"tōu tù dòu":["鋀"],"méi méng":["鋂"],"wàn jiǎn":["鋄","鎫"],"tǐng dìng":["鋌","铤"],"juān jiān cuān":["鋑"],"sī tuó":["鋖"],"juān xuān juàn":["鋗"],"wú huá wū":["鋘"],"zhuó chuò":["鋜"],"xíng xìng jīng":["鋞"],"jū jú":["鋦","锔"],"zuì niè":["鋷"],"yuān yuǎn wǎn wān":["鋺"],"gāng gàng":["鋼","钢"],zhuī:["錐","锥","騅","骓","鵻"],ā:["錒","锕"],"cuō chā":["鎈"],"suǒ sè":["鎍"],"yáo zú":["鎐"],"yè tà gé":["鎑"],"qiāng chēng":["鎗"],"gé lì":["鎘","镉","鬲"],"bī pī bì":["鎞"],"gǎo hào":["鎬"],"zú chuò":["鏃"],"xiū xiù":["鏅"],"shòu sōu":["鏉"],"dí dī":["鏑","镝"],"qiāo sǎn càn":["鏒"],"lù áo":["鏕"],"tāng táng":["鏜"],"jiàn zàn":["鏩"],"huì suì ruì":["鏸"],"qiǎng qiāng":["鏹","镪"],"sǎn xiàn sà":["鏾"],"jiǎn jiàn":["鐧","锏"],"dāng chēng":["鐺","铛"],"zuān zuàn":["鑽"],"sà xì":["钑"],"yào yuè":["钥"],"tǒu dǒu":["钭"],"zuàn zuān":["钻"],"qiān yán":["铅"],"pí pī":["铍"],"yáo diào tiáo":["铫"],"tāng tàng":["铴"],"pù pū":["铺"],"tán xiān":["锬"],"liù liú":["镏"],"hào gǎo":["镐"],"táng tāng":["镗"],"tán chán xín":["镡"],"huò shǎn":["閄"],"hàn bì":["閈","闬"],"kāng kàng":["閌","闶"],"xián jiàn jiān jiǎn":["閒"],"xiā xiǎ":["閕"],"xiǎ kě":["閜"],"biàn guān":["閞"],"hé gé":["閤","颌"],"hòng xiàng":["閧"],"sē xī":["閪"],"tíng tǐng":["閮"],"è yān":["閼","阏"],"hòng juǎn xiàng":["闂"],"bǎn pàn":["闆"],"dū shé":["闍","阇"],"què quē":["闕"],"tāng táng chāng":["闛"],"kàn hǎn":["闞","阚"],"xì sè tà":["闟"],"mēn mèn":["闷"],"quē què":["阙"],"yán diàn":["阽"],"ā ē":["阿"],"bēi pō pí":["陂"],"yàn yǎn":["隁"],"yú yáo shù":["隃"],"lóng lōng":["隆"],"duì zhuì":["隊"],"suí duò":["隋"],"gāi qí ái":["隑"],"huī duò":["隓","隳"],"wěi kuí":["隗"],"lì dài":["隸"],"zhuī cuī wéi":["隹"],"hè hú":["隺","鶮"],"jùn juàn":["隽","雋"],"nán nàn nuó":["难"],"què qiāo qiǎo":["雀"],"guàn huán":["雚"],"guī xī":["雟"],"sè xí":["雭"],án:["雸"],"wù méng":["雺"],tèng:["霯"],"lù lòu":["露"],mái:["霾"],"jìng liàng":["靚"],"gé jí":["革"],bǎ:["靶"],"yāng yàng":["鞅"],"gé tà sǎ":["鞈"],"biān yìng":["鞕"],"qiào shāo":["鞘"],"juān xuān":["鞙"],"shàng zhǎng":["鞝"],"pí bǐng bì bēi":["鞞"],la:["鞡"],"xiè dié":["鞢"],ēng:["鞥"],"móu mù":["鞪"],"bì bǐng":["鞸"],"mèi wà":["韎"],rǒu:["韖"],"shè xiè":["韘"],"yùn wēn":["韫"],"dùn dú":["頓","顿"],duǐ:["頧"],luō:["頱"],"bīn pín":["頻"],yóng:["顒","颙","鰫"],mān:["顢","颟"],"jǐng gěng":["颈"],"jié xié jiá":["颉"],"kē ké":["颏"],"pín bīn":["频"],"chàn zhàn":["颤"],"fēng fěng":["風","风"],"biāo diū":["颩"],"bá fú":["颰"],"sāo sōu":["颾"],"liù liáo":["飂"],"shí sì yì":["食"],"yǎng juàn":["飬"],"zhù tǒu":["飳"],"yí sì":["飴"],"zuò zé zhā":["飵"],tiè:["飻","餮"],"xiǎng náng":["饟"],"táng xíng":["饧"],"gē le":["饹"],"chā zha":["馇"],"náng nǎng":["馕"],"yūn wò":["馧"],"zhī shì":["馶"],"xìn jìn":["馸"],"kuài jué":["駃"],zǎng:["駔","驵"],"tái dài":["駘"],"xún xuān":["駨"],"liáng láng":["駺"],piàn:["騗","騙","骗","魸"],"dài tái":["骀"],"sāo sǎo":["骚"],"gǔ gū":["骨"],"bèi mó":["骳"],"xiāo qiāo":["骹"],"bǎng pǎng":["髈"],"bó jué":["髉"],"bì pǒ":["髲"],"máo méng":["髳"],"kuò yuè":["髺"],"bā bà":["魞","鲃"],"jì cǐ":["鮆"],"bó bà":["鮊"],"zhǎ zhà":["鮓","鲊"],"chóu dài":["鮘"],"luò gé":["鮥"],"guī xié wā kuí":["鮭"],"xiān xiǎn":["鮮","鲜"],"pū bū":["鯆"],"yì sī":["鯣"],"bà bó":["鲌"],"guī xié":["鲑"],"sāi xǐ":["鳃"],"niǎo diǎo":["鳥"],"diāo zhāo":["鳭"],"gān hàn yàn":["鳱"],"fū guī":["鳺"],"jiān qiān zhān":["鳽"],"hé jiè":["鶡"],"piān biǎn":["鶣"],"chuàn zhì":["鶨"],"cāng qiāng":["鶬"],"sǔn xùn":["鶽"],"biāo páo":["麃"],"zhù cū":["麆"],"jūn qún":["麇","麕"],chi:["麶"],"mó me":["麼"],"mó me ma":["麽"],"mí mǒ":["麿"],"dàn shèn":["黮"],"zhěn yān":["黰"],"dǎn zhǎn":["黵"],"miǎn mǐn měng":["黾"],hōu:["齁"],nàng:["齉"],"qí jì zī zhāi":["齐"],"yín kěn yǎn":["龂"],"yín kěn":["龈"],"gōng wò":["龏"],"guī jūn qiū":["龜","龟"],"kuí wā":["䖯"],lōu:["䁖"],"ōu qū":["𫭟"],"lóu lǘ":["𦝼"],"gǎ gā gá":["嘎"],"wā guà":["坬"],"zhǐ dǐ":["茋"],"gǒng hóng":["硔"],"yáo xiào":["滧"]},dh=new AQ;Object.keys(xR).forEach(e=>{const t=xR[e];for(let n of t)dh.set(n,e)});const _R={这个:"zhè ge",成为:"chéng wéi",认为:"rèn wéi",作为:"zuò wéi",部分:"bù fen",要求:"yāo qiú",应该:"yīng gāi",增长:"zēng zhǎng",提供:"tí gōng",觉得:"jué de",任务:"rèn wu",那个:"nà ge",称为:"chēng wéi",为主:"wéi zhǔ",了解:"liǎo jiě",处理:"chǔ lǐ",皇上:"huáng shang",只要:"zhǐ yào",大量:"dà liàng",力量:"lì liàng",几乎:"jī hū",干部:"gàn bù",目的:"mù dì",行为:"xíng wéi",只见:"zhǐ jiàn",认识:"rèn shi",市长:"shì zhǎng",师父:"shī fu",调查:"diào chá",重新:"chóng xīn",分为:"fēn wéi",知识:"zhī shi",导弹:"dǎo dàn",质量:"zhì liàng",行款:"háng kuǎn",行列:"háng liè",行话:"háng huà",行业:"háng yè",隔行:"gé háng",在行:"zài háng",行家:"háng jia",内行:"nèi háng",外行:"wài háng",同行:"tóng háng",本行:"běn háng",行伍:"háng wǔ",洋行:"yáng háng",银行:"yín háng",商行:"shāng háng",支行:"zhī háng",总行:"zǒng háng",行情:"háng qíng",懂行:"dǒng háng",行规:"háng guī",行当:"háng dang",行货:"háng huò",太行:"tài háng",入行:"rù háng",中行:"zhōng háng",农行:"nóng háng",工行:"gōng háng",建行:"jiàn háng",各行:"gè háng",行号:"háng hào",行高:"háng gāo",行首:"háng shǒu",行尾:"háng wěi",行末:"háng mò",行长:"háng zhǎng",行距:"háng jù",换行:"huàn háng",行会:"háng huì",行辈:"háng bèi",行道:"háng dào",道行:"dào heng",参与:"cān yù",充分:"chōng fèn",尽管:"jǐn guǎn",生长:"shēng zhǎng",数量:"shù liàng",应当:"yīng dāng",院长:"yuàn zhǎng",强调:"qiáng diào",只能:"zhǐ néng",音乐:"yīn yuè",以为:"yǐ wéi",处于:"chǔ yú",部长:"bù zhǎng",蒙古:"měng gǔ",只有:"zhǐ yǒu",适当:"shì dàng",只好:"zhǐ hǎo",成长:"chéng zhǎng",高兴:"gāo xìng",不了:"bù liǎo",产量:"chǎn liàng",胖子:"pàng zi",显得:"xiǎn de",只是:"zhǐ shì",似的:"shì de",率领:"shuài lǐng",改为:"gǎi wéi",不禁:"bù jīn",成分:"chéng fèn",答应:"dā ying",少年:"shào nián",兴趣:"xìng qù",太监:"tài jian",休息:"xiū xi",校长:"xiào zhǎng",更新:"gēng xīn",合同:"hé tong",喝道:"hè dào",重庆:"chóng qìng",重建:"chóng jiàn",使得:"shǐ de",审查:"shěn chá",累计:"lěi jì",给予:"jǐ yǔ",极为:"jí wéi",冠军:"guàn jūn",仿佛:"fǎng fú",头发:"tóu fa",投降:"tóu xiáng",家长:"jiā zhǎng",仔细:"zǐ xì",要是:"yào shi",将领:"jiàng lǐng",含量:"hán liàng",更为:"gèng wéi",积累:"jī lěi",地处:"dì chǔ",县长:"xiàn zhǎng",少女:"shào nǚ",路上:"lù shang",只怕:"zhǐ pà",能量:"néng liàng",储量:"chǔ liàng",供应:"gōng yìng",挑战:"tiǎo zhàn",西藏:"xī zàng",记得:"jì de",总量:"zǒng liàng",当真:"dàng zhēn",将士:"jiàng shì",差别:"chā bié",较为:"jiào wéi",长老:"zhǎng lǎo",大夫:"dài fu",差异:"chā yì",懂得:"dǒng de",尽量:"jǐn liàng",模样:"mú yàng",的确:"dí què",为首:"wéi shǒu",便宜:"pián yi",更名:"gēng míng",石头:"shí tou",州长:"zhōu zhǎng",为止:"wéi zhǐ",漂亮:"piào liang",炮弹:"pào dàn",藏族:"zàng zú",角色:"jué sè",当作:"dàng zuò",尽快:"jǐn kuài",人为:"rén wéi",重复:"chóng fù",胡同:"hú tòng",差距:"chā jù",弟兄:"dì xiong",大将:"dà jiàng",睡觉:"shuì jiào",一觉:"yí jiào",团长:"tuán zhǎng",队长:"duì zhǎng",区长:"qū zhǎng",难得:"nán dé",丫头:"yā tou",会长:"huì zhǎng",弟弟:"dì di",王爷:"wáng ye",重量:"zhòng liàng",誉为:"yù wéi",家伙:"jiā huo",华山:"huà shān",椅子:"yǐ zi",流量:"liú liàng",长大:"zhǎng dà",勉强:"miǎn qiǎng",会计:"kuài jì",过分:"guò fèn",济南:"jǐ nán",调动:"diào dòng",燕京:"yān jīng",少将:"shào jiàng",中毒:"zhòng dú",晓得:"xiǎo de",变更:"biàn gēng",打更:"dǎ gēng",认得:"rèn de",苹果:"píng guǒ",念头:"niàn tou",挣扎:"zhēng zhá",三藏:"sān zàng",剥削:"bō xuē",丞相:"chéng xiàng",少量:"shǎo liàng",寻思:"xún si",夺得:"duó dé",干线:"gàn xiàn",呼吁:"hū yù",处罚:"chǔ fá",长官:"zhǎng guān",柏林:"bó lín",亲戚:"qīn qi",身分:"shēn fèn",胳膊:"gē bo",着手:"zhuó shǒu",炸弹:"zhà dàn",咳嗽:"ké sou",叶子:"yè zi",外长:"wài zhǎng",供给:"gōng jǐ",师长:"shī zhǎng",变量:"biàn liàng",应有:"yīng yǒu",下载:"xià zài",乐器:"yuè qì",间接:"jiàn jiē",底下:"dǐ xià",打扮:"dǎ bàn",子弹:"zǐ dàn",弹药:"dàn yào",热量:"rè liàng",削弱:"xuē ruò",骨干:"gǔ gàn",容量:"róng liàng",模糊:"mó hu",转动:"zhuàn dòng",称呼:"chēng hu",科长:"kē zhǎng",处置:"chǔ zhì",着重:"zhuó zhòng",着急:"zháo jí",强迫:"qiǎng pò",庭长:"tíng zhǎng",首相:"shǒu xiàng",喇嘛:"lǎ ma",镇长:"zhèn zhǎng",只管:"zhǐ guǎn",重重:"chóng chóng",免得:"miǎn de",着实:"zhuó shí",度假:"dù jià",真相:"zhēn xiàng",相貌:"xiàng mào",处分:"chǔ fèn",委屈:"wěi qu",为期:"wéi qī",伯伯:"bó bo",伯子:"bǎi zi",圈子:"quān zi",见识:"jiàn shi",笼罩:"lǒng zhào",与会:"yù huì",都督:"dū du",都市:"dū shì",成都:"chéng dū",首都:"shǒu dū",帝都:"dì dū",王都:"wáng dū",东都:"dōng dū",都护:"dū hù",都城:"dū chéng",建都:"jiàn dū",迁都:"qiān dū",故都:"gù dū",定都:"dìng dū",中都:"zhōng dū",六安:"lù ān",宰相:"zǎi xiàng",较量:"jiào liàng",对称:"duì chèn",总长:"zǒng zhǎng",相公:"xiàng gong",空白:"kòng bái",打量:"dǎ liang",水分:"shuǐ fèn",舌头:"shé tou",没收:"mò shōu",行李:"xíng li",判处:"pàn chǔ",散文:"sǎn wén",处境:"chǔ jìng",孙子:"sūn zi",拳头:"quán tou",打发:"dǎ fā",组长:"zǔ zhǎng",骨头:"gǔ tou",宁可:"nìng kě",更换:"gēng huàn",薄弱:"bó ruò",还原:"huán yuán",重修:"chóng xiū",重来:"chóng lái",只顾:"zhǐ gù",爱好:"ài hào",馒头:"mán tou",军长:"jūn zhǎng",首长:"shǒu zhǎng",厂长:"chǎng zhǎng",司长:"sī zhǎng",长子:"zhǎng zǐ",强劲:"qiáng jìng",恰当:"qià dàng",头儿:"tóu er",站长:"zhàn zhǎng",折腾:"zhē teng",相处:"xiāng chǔ",统率:"tǒng shuài",中将:"zhōng jiàng",命中:"mìng zhòng",名将:"míng jiàng",木头:"mù tou",动弹:"dòng tan",地壳:"dì qiào",干活:"gàn huó",少爷:"shào ye",水量:"shuǐ liàng",补给:"bǔ jǐ",尾巴:"wěi ba",来得:"lái de",好奇:"hào qí",钥匙:"yào shi",当做:"dàng zuò",沉着:"chén zhuó",哑巴:"yǎ ba",车子:"chē zi",上将:"shàng jiàng",恶心:"ě xīn",担子:"dàn zi",应届:"yīng jiè",主角:"zhǔ jué",运转:"yùn zhuǎn",兄长:"xiōng zhǎng",格式:"gé shì",正月:"zhēng yuè",营长:"yíng zhǎng",当成:"dàng chéng",女婿:"nǚ xu",咽喉:"yān hóu",重阳:"chóng yáng",化为:"huà wéi",吐蕃:"tǔ bō",钻进:"zuān jìn",乐队:"yuè duì",亮相:"liàng xiàng",被子:"bèi zi",舍得:"shě de",杉木:"shā mù",击中:"jī zhòng",排长:"pái zhǎng",假期:"jià qī",分量:"fèn liàng",数次:"shù cì",提防:"dī fáng",吆喝:"yāo he",查处:"chá chǔ",量子:"liàng zǐ",里头:"lǐ tou",调研:"diào yán",伺候:"cì hou",重申:"chóng shēn",枕头:"zhěn tou",拚命:"pīn mìng",社长:"shè zhǎng",归还:"guī huán",批量:"pī liàng",畜牧:"xù mù",点着:"diǎn zháo",甚为:"shèn wéi",小将:"xiǎo jiàng",着眼:"zhuó yǎn",处死:"chǔ sǐ",厌恶:"yàn wù",鼓乐:"gǔ yuè",树干:"shù gàn",秘鲁:"bì lǔ",大方:"dà fāng",外头:"wài tou",班长:"bān zhǎng",星宿:"xīng xiù",宁愿:"nìng yuàn",钦差:"qīn chāi",为数:"wéi shù",勾当:"gòu dàng",削减:"xuē jiǎn",间谍:"jiàn dié",埋怨:"mán yuàn",结实:"jiē shi",计量:"jì liáng",淹没:"yān mò",村长:"cūn zhǎng",连长:"lián zhǎng",自给:"zì jǐ",武将:"wǔ jiàng",温差:"wēn chā",直奔:"zhí bèn",供求:"gōng qiú",剂量:"jì liàng",道长:"dào zhǎng",泄露:"xiè lòu",王八:"wáng ba",切割:"qiē gē",间隔:"jiàn gé",一晃:"yì huǎng",长假:"cháng jià",令狐:"líng hú",为害:"wéi hài",句子:"jù zi",偿还:"cháng huán",疙瘩:"gē da",燕山:"yān shān",堵塞:"dǔ sè",夺冠:"duó guàn",扎实:"zhā shi",电荷:"diàn hè",看守:"kān shǒu",复辟:"fù bì",郁闷:"yù mèn",尽早:"jǐn zǎo",切断:"qiē duàn",指头:"zhǐ tou",为生:"wéi shēng",畜生:"chù sheng",切除:"qiē chú",着力:"zhuó lì",着想:"zhuó xiǎng",级差:"jí chā",投奔:"tóu bèn",棍子:"gùn zi",含糊:"hán hu",少妇:"shào fù",兴致:"xìng zhì",纳闷:"nà mèn",干流:"gàn liú",卷起:"juǎn qǐ",扇子:"shàn zi",更改:"gēng gǎi",笼络:"lǒng luò",喇叭:"lǎ ba",载荷:"zài hè",妥当:"tuǒ dàng",为难:"wéi nán",着陆:"zhuó lù",燕子:"yàn zi",干吗:"gàn má",白发:"bái fà",总得:"zǒng děi",夹击:"jiā jī",曝光:"bào guāng",曲调:"qǔ diào",相机:"xiàng jī",叫化:"jiào huà",角逐:"jué zhú",啊哟:"ā yō",载重:"zài zhòng",长辈:"zhǎng bèi",出差:"chū chāi",垛口:"duǒ kǒu",撇开:"piē kāi",厅长:"tīng zhǎng",组分:"zǔ fèn",误差:"wù chā",家当:"jiā dàng",传记:"zhuàn jì",个子:"gè zi",铺设:"pū shè",干事:"gàn shì",杆菌:"gǎn jūn",定量:"dìng liàng",运载:"yùn zài",会儿:"huì er",酋长:"qiú zhǎng",重返:"chóng fǎn",差额:"chā é",露面:"lòu miàn",钻研:"zuān yán",大城:"dài chéng",上当:"shàng dàng",销量:"xiāo liàng",作坊:"zuō fang",照相:"zhào xiàng",哎呀:"āi yā",调集:"diào jí",看中:"kàn zhòng",议长:"yì zhǎng",风筝:"fēng zheng",辟邪:"bì xié",空隙:"kòng xì",更迭:"gēng dié",偏差:"piān chā",声调:"shēng diào",适量:"shì liàng",屯子:"tún zi",无量:"wú liàng",空地:"kòng dì",调度:"diào dù",散射:"sǎn shè",创伤:"chuāng shāng",海参:"hǎi shēn",满载:"mǎn zài",重叠:"chóng dié",落差:"luò chā",单调:"dān diào",老将:"lǎo jiàng",人参:"rén shēn",间断:"jiàn duàn",重现:"chóng xiàn",夹杂:"jiā zá",调用:"diào yòng",萝卜:"luó bo",附着:"fù zhuó",应声:"yìng shēng",主将:"zhǔ jiàng",罪过:"zuì guo",咀嚼:"jǔ jué",为政:"wéi zhèng",过量:"guò liàng",乐曲:"yuè qǔ",负荷:"fù hè",枪弹:"qiāng dàn",悄然:"qiǎo rán",处方:"chǔ fāng",悄声:"qiǎo shēng",曲子:"qǔ zi",情调:"qíng diào",挑衅:"tiǎo xìn",代为:"dài wéi",了结:"liǎo jié",打中:"dǎ zhòng",酒吧:"jiǔ bā",懒得:"lǎn de",增量:"zēng liàng",衣着:"yī zhuó",部将:"bù jiàng",要塞:"yào sài",茶几:"chá jī",杠杆:"gàng gǎn",出没:"chū mò",鲜有:"xiǎn yǒu",间隙:"jiàn xì",重担:"zhòng dàn",重演:"chóng yǎn",重试:"chóng shì",应酬:"yìng chou",只当:"zhǐ dāng",毋宁:"wú nìng",包扎:"bāo zā",前头:"qián tou",卷烟:"juǎn yān",非得:"fēi děi",弹道:"dàn dào",杆子:"gān zi",门将:"mén jiàng",后头:"hòu tou",喝彩:"hè cǎi",暖和:"nuǎn huo",累积:"lěi jī",调遣:"diào qiǎn",倔强:"jué jiàng",宝藏:"bǎo zàng",丧事:"sāng shì",约莫:"yuē mo",纤夫:"qiàn fū",更替:"gēng tì",装载:"zhuāng zài",背包:"bēi bāo",帖子:"tiě zi",松散:"sōng sǎn",呼喝:"hū hè",可恶:"kě wù",自转:"zì zhuàn",供电:"gōng diàn",反省:"fǎn xǐng",坦率:"tǎn shuài",苏打:"sū dá",本分:"běn fèn",落得:"luò de",鄙薄:"bǐ bó",相间:"xiāng jiàn",单薄:"dān bó",混蛋:"hún dàn",贞观:"zhēn guān",附和:"fù hè",能耐:"néng nài",吓唬:"xià hu",未了:"wèi liǎo",引着:"yǐn zháo",抽调:"chōu diào",沙子:"shā zi",席卷:"xí juǎn",标的:"biāo dì",别扭:"biè niu",思量:"sī liang",喝采:"hè cǎi",论语:"lún yǔ",盖子:"gài zi",分外:"fèn wài",弄堂:"lòng táng",乐舞:"yuè wǔ",雨量:"yǔ liàng",毛发:"máo fà",差遣:"chāi qiǎn",背负:"bēi fù",转速:"zhuàn sù",声乐:"shēng yuè",夹攻:"jiā gōng",供水:"gōng shuǐ",主干:"zhǔ gàn",惩处:"chéng chǔ",长相:"zhǎng xiàng",公差:"gōng chāi",榴弹:"liú dàn",省得:"shěng de",条子:"tiáo zi",重围:"chóng wéi",阻塞:"zǔ sè",劲风:"jìng fēng",纠葛:"jiū gé",颠簸:"diān bǒ",点中:"diǎn zhòng",重创:"zhòng chuāng",姥姥:"lǎo lao",迷糊:"mí hu",公家:"gōng jia",几率:"jī lǜ",苦闷:"kǔ mèn",度量:"dù liàng",差错:"chā cuò",暑假:"shǔ jià",参差:"cēn cī",搭载:"dā zài",助长:"zhù zhǎng",相称:"xiāng chèn",红晕:"hóng yùn",舍命:"shě mìng",喜好:"xǐ hào",列传:"liè zhuàn",劲敌:"jìng dí",蛤蟆:"há ma",请假:"qǐng jià",钉子:"dīng zi",沉没:"chén mò",高丽:"gāo lí",休假:"xiū jià",无为:"wú wéi",巴结:"bā jie",了得:"liǎo dé",变相:"biàn xiàng",核弹:"hé dàn",亲家:"qìng jia",承载:"chéng zài",喝问:"hè wèn",还击:"huán jī",交还:"jiāo huán",将令:"jiàng lìng",单于:"chán yú",空缺:"kòng quē",绿林:"lù lín",胆量:"dǎn liàng",执着:"zhí zhuó",低调:"dī diào",闭塞:"bì sè",轻薄:"qīng bó",得当:"dé dàng",占卜:"zhān bǔ",扫帚:"sào zhou",龟兹:"qiū cí",年长:"nián zhǎng",外传:"wài zhuàn",头子:"tóu zi",裁缝:"cái feng",礼乐:"lǐ yuè",血泊:"xuè pō",散乱:"sǎn luàn",动量:"dòng liàng",倒腾:"dǎo teng",取舍:"qǔ shě",咱家:"zán jiā",长发:"cháng fà",爪哇:"zhǎo wā",弹壳:"dàn ké",省悟:"xǐng wù",嚷嚷:"rāng rang",连累:"lián lèi",应得:"yīng dé",族长:"zú zhǎng",柜子:"guì zi",擂鼓:"léi gǔ",眩晕:"xuàn yùn",调配:"tiáo pèi",躯干:"qū gàn",差役:"chāi yì",坎坷:"kǎn kě",少儿:"shào ér",乐团:"yuè tuán",养分:"yǎng fèn",退还:"tuì huán",格调:"gé diào",语调:"yǔ diào",音调:"yīn diào",乐府:"yuè fǔ",古朴:"gǔ pǔ",打点:"dǎ diǎn",差使:"chāi shǐ",匀称:"yún chèn",瘦削:"shòu xuē",膏药:"gāo yao",吞没:"tūn mò",调任:"diào rèn",散居:"sǎn jū",上头:"shàng tóu",风靡:"fēng mǐ",放假:"fàng jià",估量:"gū liang",失当:"shī dàng",中弹:"zhòng dàn",妄为:"wàng wéi",长者:"zhǎng zhě",起哄:"qǐ hòng",末了:"mò liǎo",相声:"xiàng sheng",校正:"jiào zhèng",劝降:"quàn xiáng",矢量:"shǐ liàng",沉闷:"chén mèn",给与:"jǐ yǔ",解法:"jiě fǎ",塞外:"sài wài",将校:"jiàng xiào",嗜好:"shì hào",没落:"mò luò",朴刀:"pō dāo",片子:"piān zi",切削:"qiē xiāo",弹丸:"dàn wán",稀薄:"xī bó",亏得:"kuī dé",间歇:"jiàn xiē",翘首:"qiáo shǒu",色调:"sè diào",处决:"chǔ jué",表率:"biǎo shuài",尺子:"chǐ zi",招降:"zhāo xiáng",称职:"chèn zhí",斗篷:"dǒu peng",铺子:"pù zi",底子:"dǐ zi",负载:"fù zài",干警:"gàn jǐng",倒数:"dào shǔ",将官:"jiàng guān",锄头:"chú tou",归降:"guī xiáng",疟疾:"nüè ji",唠叨:"láo dao",限量:"xiàn liàng",屏息:"bǐng xī",重逢:"chóng féng",器乐:"qì yuè",氢弹:"qīng dàn",脖颈:"bó gěng",妃子:"fēi zi",处事:"chǔ shì",参量:"cān liàng",轻率:"qīng shuài",缥缈:"piāo miǎo",中奖:"zhòng jiǎng",才干:"cái gàn",施舍:"shī shě",卷子:"juàn zi",游说:"yóu shuì",巷子:"xiàng zi",膀胱:"páng guāng",切勿:"qiè wù",看管:"kān guǎn",风头:"fēng tou",精干:"jīng gàn",高差:"gāo chā",恐吓:"kǒng hè",扁担:"biǎn dàn",给养:"jǐ yǎng",格子:"gé zi",供需:"gōng xū",反差:"fǎn chā",飞弹:"fēi dàn",微薄:"wēi bó",发型:"fà xíng",即兴:"jí xìng",攒动:"cuán dòng",间或:"jiàn huò",浅薄:"qiǎn bó",乐章:"yuè zhāng",顺差:"shùn chā",调子:"diào zi",相位:"xiàng wèi",转子:"zhuàn zǐ",劲旅:"jìng lǚ",咔嚓:"kā chā",了事:"liǎo shì",转悠:"zhuàn you",当铺:"dàng pù",爪子:"zhuǎ zi",单子:"dān zi",好战:"hào zhàn",燕麦:"yàn mài",只许:"zhǐ xǔ",干练:"gàn liàn",女将:"nǚ jiàng",酒量:"jiǔ liàng",划船:"huá chuán",伎俩:"jì liǎng",挑拨:"tiǎo bō",少校:"shào xiào",着落:"zhuó luò",憎恶:"zēng wù",刻薄:"kè bó",要挟:"yāo xié",用处:"yòng chu",还手:"huán shǒu",模具:"mú jù",执著:"zhí zhuó",喝令:"hè lìng",保长:"bǎo zhǎng",吸着:"xī zhe",症结:"zhēng jié",公转:"gōng zhuàn",校勘:"jiào kān",重提:"chóng tí",扫兴:"sǎo xìng",铺盖:"pū gài",长史:"zhǎng shǐ",差价:"chā jià",压根:"yà gēn",怔住:"zhèng zhù",应允:"yīng yǔn",切入:"qiē rù",战将:"zhàn jiàng",年少:"nián shào",舍身:"shě shēn",执拗:"zhí niù",处世:"chǔ shì",中风:"zhòng fēng",等量:"děng liàng",放量:"fàng liàng",腔调:"qiāng diào",老少:"lǎo shào",没入:"mò rù",瓜葛:"guā gé",将帅:"jiàng shuài",车载:"chē zài",窝囊:"wō nang",长进:"zhǎng jìn",可汗:"kè hán",并州:"bīng zhōu",供销:"gōng xiāo",切片:"qiē piàn",差事:"chāi shì",知会:"zhī hui",鹰爪:"yīng zhǎo",处女:"chǔ nǚ",切磋:"qiē cuō",日头:"rì tou",押解:"yā jiè",滋长:"zī zhǎng",道观:"dào guàn",脚色:"jué sè",当量:"dāng liàng",婆家:"pó jia",缘分:"yuán fèn",空闲:"kòng xián",好色:"hào sè",怒喝:"nù hè",笼统:"lǒng tǒng",边塞:"biān sài",何曾:"hé céng",重合:"chóng hé",零散:"líng sǎn",轰隆:"hōng lōng",化子:"huà zi",内蒙:"nèi měng",数落:"shǔ luò",逆差:"nì chā",牟利:"móu lì",栅栏:"zhà lan",中标:"zhòng biāo",调档:"diào dàng",佝偻:"gōu lóu",场子:"chǎng zi",甲壳:"jiǎ qiào",重温:"chóng wēn",炮制:"páo zhì",返还:"fǎn huán",自传:"zì zhuàn",高调:"gāo diào",殷红:"yān hóng",固着:"gù zhuó",强求:"qiǎng qiú",本相:"běn xiàng",骄横:"jiāo hèng",草率:"cǎo shuài",气闷:"qì mèn",着色:"zhuó sè",宁肯:"nìng kěn",兴头:"xìng tou",拘泥:"jū nì",夹角:"jiā jiǎo",发髻:"fà jì",猛将:"měng jiàng",约摸:"yuē mo",拖累:"tuō lěi",呢绒:"ní róng",钻探:"zuān tàn",夹层:"jiā céng",落魄:"luò pò",巷道:"hàng dào",运量:"yùn liàng",解闷:"jiě mèn",空儿:"kòng er",估摸:"gū mo",好客:"hào kè",钻孔:"zuān kǒng",糊弄:"hù nòng",荥阳:"xíng yáng",烦闷:"fán mèn",仓卒:"cāng cù",分叉:"fēn chà",厂子:"chǎng zi",小调:"xiǎo diào",少阳:"shào yáng",受降:"shòu xiáng",染坊:"rǎn fáng",胳臂:"gē bei",将门:"jiàng mén",模板:"mú bǎn",配给:"pèi jǐ",为伍:"wéi wǔ",跟头:"gēn tou",划算:"huá suàn",累赘:"léi zhui",哄笑:"hōng xiào",晕眩:"yūn xuàn",干掉:"gàn diào",缝制:"féng zhì",难处:"nán chù",着意:"zhuó yì",蛮横:"mán hèng",奇数:"jī shù",短发:"duǎn fà",生还:"shēng huán",还清:"huán qīng",看护:"kān hù",直率:"zhí shuài",奏乐:"zòu yuè",载客:"zài kè",专横:"zhuān hèng",湮没:"yān mò",空格:"kòng gé",铺垫:"pū diàn",良将:"liáng jiàng",哗啦:"huā lā",散漫:"sǎn màn",脱发:"tuō fà",送还:"sòng huán",埋没:"mái mò",累及:"lěi jí",薄雾:"bó wù",调离:"diào lí",舌苔:"shé tāi",机长:"jī zhǎng",栓塞:"shuān sè",配角:"pèi jué",切口:"qiē kǒu",创口:"chuāng kǒu",哈欠:"hā qian",实弹:"shí dàn",铺平:"pū píng",哈达:"hǎ dá",懒散:"lǎn sǎn",实干:"shí gàn",填空:"tián kòng",刁钻:"diāo zuān",乐师:"yuè shī",量变:"liàng biàn",诱降:"yòu xiáng",搪塞:"táng sè",征调:"zhēng diào",夹道:"jiā dào",干咳:"gān ké",止咳:"zhǐ ké",乐工:"yuè gōng",划过:"huá guò",着火:"zháo huǒ",更正:"gēng zhèng",给付:"jǐ fù",空子:"kòng zi",哪吒:"né zhā",正着:"zhèng zháo",刷子:"shuā zi",丧葬:"sāng zàng",夹带:"jiā dài",安分:"ān fèn",中意:"zhòng yì",长孙:"zhǎng sūn",校订:"jiào dìng",卷曲:"juǎn qū",载运:"zài yùn",投弹:"tóu dàn",柞蚕:"zuò cán",份量:"fèn liàng",调换:"diào huàn",了然:"liǎo rán",咧嘴:"liě zuǐ",典当:"diǎn dàng",寒假:"hán jià",长兄:"zhǎng xiōng",给水:"jǐ shuǐ",须发:"xū fà",枝干:"zhī gàn",属相:"shǔ xiàng",哄抢:"hōng qiǎng",刻划:"kè huà",塞子:"sāi zi",单干:"dān gàn",还乡:"huán xiāng",兆头:"zhào tou",寺观:"sì guàn",督率:"dū shuài",啊哈:"ā ha",割舍:"gē shě",抹布:"mā bù",好恶:"hào wù",下处:"xià chǔ",消长:"xiāo zhǎng",离间:"lí jiàn",准头:"zhǔn tou",校对:"jiào duì",什物:"shí wù",番禺:"pān yú",佛爷:"fó ye",吗啡:"mǎ fēi",盐分:"yán fèn",虎将:"hǔ jiàng",薄荷:"bò he",独处:"dú chǔ",空位:"kòng wèi",铺路:"pū lù",乌拉:"wū lā",调回:"diào huí",来头:"lái tou",闲散:"xián sǎn",胶卷:"jiāo juǎn",冒失:"mào shi",干劲:"gàn jìn",弦乐:"xián yuè",相国:"xiàng guó",丹参:"dān shēn",助兴:"zhù xìng",铺开:"pū kāi",次长:"cì zhǎng",发卡:"fà qiǎ",拮据:"jié jū",刹车:"shā chē",生发:"shēng fà",重播:"chóng bō",缝合:"féng hé",音量:"yīn liàng",少尉:"shào wèi",冲压:"chòng yā",苍劲:"cāng jìng",厚薄:"hòu báo",威吓:"wēi hè",外相:"wài xiàng",呼号:"hū háo",着迷:"zháo mí",挑担:"tiāo dàn",纹路:"wén lù",还俗:"huán sú",强横:"qiáng hèng",着数:"zhāo shù",降顺:"xiáng shùn",挑明:"tiǎo míng",眯缝:"mī feng",分内:"fèn nèi",更衣:"gēng yī",软和:"ruǎn huo",尽兴:"jìn xìng",号子:"hào zi",爪牙:"zhǎo yá",败将:"bài jiàng",猜中:"cāi zhòng",结扎:"jié zā",没空:"méi kòng",夹缝:"jiā fèng",拾掇:"shí duo",掺和:"chān huo",簸箕:"bò ji",电量:"diàn liàng",荷载:"hè zǎi",调式:"diào shì",处身:"chǔ shēn",打手:"dǎ shǒu",弹弓:"dàn gōng",横蛮:"hèng mán",能干:"néng gàn",校点:"jiào diǎn",加载:"jiā zài",干校:"gàn xiào",哄传:"hōng chuán",校注:"jiào zhù",淤塞:"yū sè",马扎:"mǎ zhá",月氏:"yuè zhī",高干:"gāo gàn",经传:"jīng zhuàn",曾孙:"zēng sūn",好斗:"hào dòu",关卡:"guān qiǎ",逃奔:"táo bèn",磨蹭:"mó ceng",牟取:"móu qǔ",颤栗:"zhàn lì",蚂蚱:"mà zha",撮合:"cuō he",趔趄:"liè qie",摔打:"shuāi dǎ",台子:"tái zi",分得:"fēn de",粘着:"nián zhuó",采邑:"cài yì",散装:"sǎn zhuāng",婀娜:"ē nuó",兴味:"xìng wèi",行头:"xíng tou",气量:"qì liàng",调运:"diào yùn",处治:"chǔ zhì",乐音:"yuè yīn",充塞:"chōng sè",恫吓:"dòng hè",论调:"lùn diào",相中:"xiāng zhòng",民乐:"mín yuè",炮仗:"pào zhang",丧服:"sāng fú",骁将:"xiāo jiàng",量刑:"liàng xíng",缝补:"féng bǔ",财会:"cái kuài",大干:"dà gàn",历数:"lì shǔ",校场:"jiào chǎng",塞北:"sài běi",识相:"shí xiàng",辱没:"rǔ mò",鲜亮:"xiān liàng",语塞:"yǔ sè",露脸:"lòu liǎn",凉快:"liáng kuai",腰杆:"yāo gǎn",溜达:"liū da",嘎嘎:"gā gā",公干:"gōng gàn",桔梗:"jié gěng",挑逗:"tiǎo dòu",看门:"kān mén",乐歌:"yuè gē",拓片:"tà piàn",挑动:"tiǎo dòng",准将:"zhǔn jiàng",遒劲:"qiú jìng",磨坊:"mò fáng",逶迤:"wēi yí",搅和:"jiǎo huo",摩挲:"mó suō",作弄:"zuò nòng",苗头:"miáo tou",打颤:"dǎ zhàn",大藏:"dà zàng",畜牲:"chù shēng",勾搭:"gōu da",树荫:"shù yīn",树杈:"shù chà",铁杆:"tiě gǎn",将相:"jiàng xiàng",份子:"fèn zi",视差:"shì chā",绿荫:"lǜ yīn",枪杆:"qiāng gǎn",缝纫:"féng rèn",愁闷:"chóu mèn",点将:"diǎn jiàng",华佗:"huà tuó",劲射:"jìng shè",箱笼:"xiāng lǒng",终了:"zhōng liǎo",鬓发:"bìn fà",结巴:"jiē ba",苦干:"kǔ gàn",看家:"kān jiā",正旦:"zhēng dàn",中肯:"zhòng kěn",厦门:"xià mén",东莞:"dōng guǎn",食量:"shí liàng",宫调:"gōng diào",间作:"jiàn zuò",弹片:"dàn piàn",差池:"chā chí",漂白:"piǎo bái",杠子:"gàng zi",调处:"tiáo chǔ",好动:"hào dòng",转炉:"zhuàn lú",屏气:"bǐng qì",夹板:"jiā bǎn",哀乐:"āi yuè",干道:"gàn dào",苦处:"kǔ chù",劈柴:"pǐ chái",长势:"zhǎng shì",天华:"tiān huá",共处:"gòng chǔ",校验:"jiào yàn",出塞:"chū sài",磨盘:"mò pán",萎靡:"wěi mǐ",奔丧:"bēn sāng",唱和:"chàng hè",大调:"dà diào",非分:"fēi fèn",钻营:"zuān yíng",夹子:"jiā zi",超载:"chāo zài",更始:"gēng shǐ",铃铛:"líng dang",披散:"pī sàn",发还:"fā huán",转轮:"zhuàn lún",横财:"hèng cái",泡桐:"pāo tóng",抛撒:"pāo sǎ",天呀:"tiān yā",糊糊:"hū hu",躯壳:"qū qiào",通量:"tōng liàng",奉还:"fèng huán",午觉:"wǔ jiào",闷棍:"mèn gùn",浪头:"làng tou",砚台:"yàn tái",油坊:"yóu fáng",学长:"xué zhǎng",过载:"guò zài",笔调:"bǐ diào",衣被:"yī bèi",畜产:"xù chǎn",调阅:"diào yuè",蛮干:"mán gàn",曾祖:"zēng zǔ",提干:"tí gàn",变调:"biàn diào",覆没:"fù mò",模子:"mú zi",乐律:"yuè lǜ",称心:"chèn xīn",木杆:"mù gān",重印:"chóng yìn",自省:"zì xǐng",提调:"tí diào",看相:"kàn xiàng",芋头:"yù tou",下切:"xià qiē",塞上:"sài shàng",铺张:"pū zhāng",藤蔓:"téng wàn",薄幸:"bó xìng",解数:"xiè shù",褪去:"tuì qù",霰弹:"xiàn dàn",柚木:"yóu mù",痕量:"hén liàng",雅乐:"yǎ yuè",号哭:"háo kū",诈降:"zhà xiáng",猪圈:"zhū juàn",咋舌:"zé shé",铣床:"xǐ chuáng",防弹:"fáng dàn",健将:"jiàn jiàng",丽水:"lí shuǐ",削发:"xuē fà",空当:"kòng dāng",多相:"duō xiàng",鲜见:"xiǎn jiàn",划桨:"huá jiǎng",载波:"zài bō",跳蚤:"tiào zao",俏皮:"qiào pí",吧嗒:"bā dā",结发:"jié fà",了断:"liǎo duàn",同调:"tóng diào",石磨:"shí mò",时差:"shí chā",鼻塞:"bí sè",挑子:"tiāo zi",推磨:"tuī mò",武侯:"wǔ hóu",抹煞:"mǒ shā",调转:"diào zhuǎn",籍没:"jí mò",还债:"huán zhài",调演:"diào yǎn",分划:"fēn huá",奇偶:"jī ǒu",断喝:"duàn hè",闷雷:"mèn léi",狼藉:"láng jí",饭量:"fàn liàng",还礼:"huán lǐ",转调:"zhuǎn diào",星相:"xīng xiàng",手相:"shǒu xiàng",配乐:"pèi yuè",盖头:"gài tou",连杆:"lián gǎn",簿记:"bù jì",刀把:"dāo bà",量词:"liàng cí",名角:"míng jué",步调:"bù diào",校本:"jiào běn",账簿:"zhàng bù",隽永:"juàn yǒng",稍为:"shāo wéi",易传:"yì zhuàn",乐谱:"yuè pǔ",牵累:"qiān lěi",答理:"dā li",喝斥:"hè chì",吟哦:"yín é",干渠:"gàn qú",海量:"hǎi liàng",精当:"jīng dàng",着床:"zhuó chuáng",月相:"yuè xiàng",庶几:"shù jī",宫观:"gōng guàn",论处:"lùn chǔ",征辟:"zhēng bì",厚朴:"hòu pò",介壳:"jiè qiào",吭哧:"kēng chī",咯血:"kǎ xiě",铺陈:"pū chén",重生:"chóng shēng",乐理:"yuè lǐ",哀号:"āi háo",藏历:"zàng lì",刚劲:"gāng jìng",削平:"xuē píng",浓荫:"nóng yīn",城垛:"chéng duǒ",当差:"dāng chāi",正传:"zhèng zhuàn",并处:"bìng chǔ",创面:"chuāng miàn",旦角:"dàn jué",薄礼:"bó lǐ",晃荡:"huàng dang",臊子:"sào zi",家什:"jiā shí",闷头:"mēn tóu",美发:"měi fà",度数:"dù shu",着凉:"zháo liáng",闯将:"chuǎng jiàng",几案:"jī àn",姘头:"pīn tou",差数:"chā shù",散碎:"sǎn suì",壅塞:"yōng sè",寒颤:"hán zhàn",牵强:"qiān qiǎng",无间:"wú jiàn",轮转:"lún zhuàn",号叫:"háo jiào",铺排:"pū pái",降伏:"xiáng fú",轧钢:"zhá gāng",东阿:"dōng ē",病假:"bìng jià",累加:"lěi jiā",梗塞:"gěng sè",弹夹:"dàn jiā",钻心:"zuān xīn",晃眼:"huǎng yǎn",魔爪:"mó zhǎo",标量:"biāo liàng",憋闷:"biē mèn",猜度:"cāi duó",处士:"chǔ shì",官差:"guān chāi",讨还:"tǎo huán",长门:"cháng mén",馏分:"liú fēn",里弄:"lǐ lòng",色相:"sè xiàng",雅兴:"yǎ xìng",角力:"jué lì",弹坑:"dàn kēng",枝杈:"zhī chà",夹具:"jiā jù",处刑:"chǔ xíng",悍将:"hàn jiàng",好学:"hào xué",好好:"hǎo hǎo",银发:"yín fà",扫把:"sào bǎ",法相:"fǎ xiàng",贵干:"guì gàn",供气:"gōng qì",空余:"kòng yú",捆扎:"kǔn zā",瘠薄:"jí bó",浆糊:"jiàng hu",嘎吱:"gā zhī",调令:"diào lìng",法帖:"fǎ tiè",淋病:"lìn bìng",调派:"diào pài",转盘:"zhuàn pán",供稿:"gōng gǎo",差官:"chāi guān",忧闷:"yōu mèn",教长:"jiào zhǎng",重唱:"chóng chàng",酒兴:"jiǔ xìng",乐坛:"yuè tán",花呢:"huā ní",叱喝:"chì hè",膀臂:"bǎng bì",得空:"dé kòng",转圈:"zhuàn quān",横暴:"hèng bào",哄抬:"hōng tái",引吭:"yǐn háng",载货:"zài huò",中计:"zhòng jì",官长:"guān zhǎng",相面:"xiàng miàn",看头:"kàn tou",盼头:"pàn tou",意兴:"yì xìng",军乐:"jūn yuè",累次:"lěi cì",骨嘟:"gǔ dū",燕赵:"yān zhào",报丧:"bào sāng",弥撒:"mí sa",挨斗:"ái dòu",扁舟:"piān zhōu",丑角:"chǒu jué",吊丧:"diào sāng",强将:"qiáng jiàng",重奏:"chóng zòu",发辫:"fà biàn",着魔:"zháo mó",着法:"zhāo fǎ",盛放:"shèng fàng",填塞:"tián sè",凶横:"xiōng hèng",稽首:"qǐ shǒu",碑帖:"bēi tiè",冲量:"chōng liàng",发菜:"fà cài",假发:"jiǎ fà",翻卷:"fān juǎn",小量:"xiǎo liàng",胶着:"jiāo zhuó",里子:"lǐ zi",调调:"diào diao",散兵:"sǎn bīng",高挑:"gāo tiǎo",播撒:"bō sǎ",夹心:"jiā xīn",扇动:"shān dòng",叨扰:"tāo rǎo",霓裳:"ní cháng",捻子:"niǎn zi",弥缝:"mí féng",撒布:"sǎ bù",场院:"cháng yuàn",省亲:"xǐng qīn",提拉:"tí lā",惯量:"guàn liàng",强逼:"qiáng bī",强征:"qiáng zhēng",晕车:"yùn chē",数道:"shù dào",带累:"dài lèi",拓本:"tà běn",嫌恶:"xián wù",宿将:"sù jiàng",龟裂:"jūn liè",缠夹:"chán jiā",发式:"fà shì",隔扇:"gé shàn",天分:"tiān fèn",癖好:"pǐ hào",四通:"sì tōng",白术:"bái zhú",划伤:"huá shāng",角斗:"jué dòu",听差:"tīng chāi",岁差:"suì chā",丧礼:"sāng lǐ",脉脉:"mò mò",削瘦:"xuē shòu",撒播:"sǎ bō",莎草:"suō cǎo",犍为:"qián wéi",调头:"diào tóu",龙卷:"lóng juǎn",外调:"wài diào",字帖:"zì tiè",卷发:"juǎn fà",揣度:"chuǎi duó",洋相:"yáng xiàng",散光:"sǎn guāng",骨碌:"gū lu",薄命:"bó mìng",笼头:"lóng tóu",咽炎:"yān yán",碌碡:"liù zhou",片儿:"piàn er",纤手:"qiàn shǒu",散体:"sǎn tǐ",内省:"nèi xǐng",强留:"qiáng liú",解送:"jiè sòng",反间:"fǎn jiàn",少壮:"shào zhuàng",留空:"liú kōng",告假:"gào jià",咳血:"ké xuè",薄暮:"bó mù",铺轨:"pū guǐ",磨削:"mó xuē",治丧:"zhì sāng",叉子:"chā zi",哄动:"hōng dòng",蛾子:"é zi",出落:"chū luò",股长:"gǔ zhǎng",贵处:"guì chù",还魂:"huán hún",例假:"lì jià",刹住:"shā zhù",身量:"shēn liàng",同好:"tóng hào",模量:"mó liàng",更生:"gēng shēng",服丧:"fú sāng",率直:"shuài zhí",字模:"zì mú",散架:"sǎn jià",答腔:"dā qiāng",交恶:"jiāo wù",薄情:"bó qíng",眼泡:"yǎn pāo",袅娜:"niǎo nuó",草垛:"cǎo duò",冲劲:"chòng jìn",呢喃:"ní nán",切中:"qiè zhòng",挑灯:"tiǎo dēng",还愿:"huán yuàn",激将:"jī jiàng",更鼓:"gēng gǔ",没药:"mò yào",败兴:"bài xìng",切面:"qiē miàn",散户:"sǎn hù",累进:"lěi jìn",背带:"bēi dài",秤杆:"chèng gǎn",碾坊:"niǎn fáng",簿子:"bù zi",扳手:"bān shǒu",铅山:"yán shān",儒将:"rú jiàng",重光:"chóng guāng",剪发:"jiǎn fà",长上:"zhǎng shàng",小传:"xiǎo zhuàn",压轴:"yā zhòu",弱冠:"ruò guàn",花卷:"huā juǎn",横祸:"hèng huò",夹克:"jiā kè",光晕:"guāng yùn",披靡:"pī mǐ",对调:"duì diào",夹持:"jiā chí",空额:"kòng é",平调:"píng diào",铺床:"pū chuáng",丧钟:"sāng zhōng",作乐:"zuò lè",少府:"shào fǔ",数数:"shuò shuò",奔头:"bèn tou",进给:"jìn jǐ",率性:"shuài xìng",乐子:"lè zi",绑扎:"bǎng zā",挑唆:"tiǎo suō",漂洗:"piǎo xǐ",夹墙:"jiā qiáng",咳喘:"ké chuǎn",乜斜:"miē xie",错处:"cuò chù",闷酒:"mèn jiǔ",时调:"shí diào",重孙:"chóng sūn",经幢:"jīng chuáng",圩场:"xū chǎng",调门:"diào mén",花头:"huā tóu",划拉:"huá la",套色:"tào shǎi",粗率:"cū shuài",相率:"xiāng shuài",款识:"kuǎn zhì",吁请:"yù qǐng",荫蔽:"yīn bì",文蛤:"wén gé",嘀嗒:"dī dā",调取:"diào qǔ",交差:"jiāo chāi",落子:"luò zǐ",相册:"xiàng cè",絮叨:"xù dao",落发:"luò fà",异相:"yì xiàng",浸没:"jìn mò",角抵:"jué dǐ",卸载:"xiè zài",春卷:"chūn juǎn",扎挣:"zhá zheng",畜养:"xù yǎng",吡咯:"bǐ luò",垛子:"duò zi",恶少:"è shào",发际:"fà jì",红苕:"hóng sháo",糨糊:"jiàng hu",哭丧:"kū sāng",稍息:"shào xī",晕船:"yùn chuán",校样:"jiào yàng",外差:"wài chā",脚爪:"jiǎo zhǎo",铺展:"pū zhǎn",芫荽:"yán sui",夹紧:"jiā jǐn",尿泡:"suī pào",丧乱:"sāng luàn",凶相:"xiōng xiàng",华发:"huá fà",打场:"dǎ cháng",云量:"yún liàng",正切:"zhèng qiē",划拳:"huá quán",划艇:"huá tǐng",评传:"píng zhuàn",拉纤:"lā qiàn",句读:"jù dòu",散剂:"sǎn jì",骨殖:"gǔ shi",塞音:"sè yīn",铺叙:"pū xù",阏氏:"yān zhī",冷颤:"lěng zhàn",煞住:"shā zhù",少男:"shào nán",管乐:"guǎn yuè",号啕:"háo táo",纳降:"nà xiáng",拥塞:"yōng sè",万乘:"wàn shèng",杆儿:"gǎn ér",葛藤:"gé téng",簿籍:"bù jí",皮夹:"pí jiā",校准:"jiào zhǔn",允当:"yǔn dàng",器量:"qì liàng",选调:"xuǎn diào",扮相:"bàn xiàng",干才:"gàn cái",基干:"jī gàn",割切:"gē qiē",国乐:"guó yuè",卡壳:"qiǎ ké",辟谷:"bì gǔ",磨房:"mò fáng",咿呀:"yī yā",芥末:"jiè mo",薄技:"bó jì",产假:"chǎn jià",诗兴:"shī xìng",重出:"chóng chū",转椅:"zhuàn yǐ",酌量:"zhuó liang",簿册:"bù cè",藏青:"zàng qīng",的士:"dī shì",调人:"diào rén",解元:"jiè yuán",茎干:"jīng gàn",巨量:"jù liàng",榔头:"láng tou",率真:"shuài zhēn",喷香:"pèn xiāng",锁钥:"suǒ yuè",虾蟆:"há má",相图:"xiàng tú",兴会:"xìng huì",灶头:"zào tóu",重婚:"chóng hūn",钻洞:"zuān dòng",忖度:"cǔn duó",党参:"dǎng shēn",调温:"diào wēn",杆塔:"gān tǎ",葛布:"gé bù",拱券:"gǒng xuàn",夹生:"jiā shēng",露馅:"lòu xiàn",恰切:"qià qiè",散见:"sǎn jiàn",哨卡:"shào qiǎ",烫发:"tàng fà",体量:"tǐ liàng",挺括:"tǐng kuò",系带:"jì dài",相士:"xiàng shì",羊圈:"yáng juàn",转矩:"zhuàn jǔ",吧台:"bā tái",苍术:"cāng zhú",菲薄:"fěi bó",蛤蚧:"gé jiè",蛤蜊:"gé lí",瓜蔓:"guā wàn",怪相:"guài xiàng",临帖:"lín tiè",女红:"nǚ gōng",刨床:"bào chuáng",翘楚:"qiáo chǔ",数九:"shǔ jiǔ",谈兴:"tán xìng",雄劲:"xióng jìng",扎染:"zā rǎn",遮荫:"zhē yīn",周正:"zhōu zhèng",赚头:"zhuàn tou",扒手:"pá shǒu",搀和:"chān huo",诚朴:"chéng pǔ",肚量:"dù liàng",干结:"gān jié",工尺:"gōng chě",家累:"jiā lěi",曲水:"qū shuǐ",沙参:"shā shēn",挑花:"tiǎo huā",阿门:"ā mén",背篓:"bēi lǒu",瘪三:"biē sān",裁处:"cái chǔ",创痛:"chuāng tòng",福相:"fú xiàng",更动:"gēng dòng",豪兴:"háo xìng",还阳:"huán yáng",还嘴:"huán zuǐ",借调:"jiè diào",卷云:"juǎn yún",流弹:"liú dàn",想头:"xiǎng tou",削价:"xuē jià",校阅:"jiào yuè",雅量:"yǎ liàng",别传:"bié zhuàn",薄酒:"bó jiǔ",春假:"chūn jià",发妻:"fà qī",哗哗:"huā huā",宽绰:"kuān chuo",了悟:"liǎo wù",切花:"qiē huā",审度:"shěn duó",应许:"yīng xǔ",转台:"zhuàn tái",仔猪:"zǐ zhū",裁量:"cái liáng",藏戏:"zàng xì",乘兴:"chéng xìng",绸缪:"chóu móu",摧折:"cuī zhé",调经:"tiáo jīng",调职:"diào zhí",缝缀:"féng zhuì",骨朵:"gū duǒ",核儿:"hú er",恒量:"héng liàng",还价:"huán jià",浑朴:"hún pǔ",苦差:"kǔ chāi",面糊:"miàn hù",煞车:"shā chē",省视:"xǐng shì",什锦:"shí jǐn",信差:"xìn chāi",余切:"yú qiē",攒眉:"cuán méi",炸糕:"zhá gāo",钻杆:"zuàn gǎn",扒灰:"pá huī",拌和:"bàn huò",长调:"cháng diào",大溜:"dà liù",抖搂:"dǒu lōu",飞转:"fēi zhuàn",干仗:"gàn zhàng",好胜:"hào shèng",画片:"huà piàn",搅混:"jiǎo hún",螺杆:"luó gǎn",木模:"mù mú",怒号:"nù háo",频数:"pín shù",无宁:"wú níng",遗少:"yí shào",邮差:"yóu chāi",占卦:"zhān guà",占星:"zhān xīng",重审:"chóng shěn",自量:"zì liàng",调防:"diào fáng",发廊:"fà láng",反调:"fǎn diào",缝子:"fèng zi",更夫:"gēng fū",骨子:"gǔ zi",光杆:"guāng gǎn",夹棍:"jiā gùn",居丧:"jū sāng",巨贾:"jù gǔ",看押:"kān yā",空转:"kōng zhuàn",量力:"liàng lì",炮烙:"páo luò",赔还:"péi huán",扑扇:"pū shān",散记:"sǎn jì",散件:"sǎn jiàn",删削:"shān xuē",射干:"shè gàn",条几:"tiáo jī",偷空:"tōu kòng",削壁:"xuē bì",校核:"jiào hé",阴干:"yīn gān",择菜:"zhái cài",重九:"chóng jiǔ",主调:"zhǔ diào",自禁:"zì jīn",吧唧:"bā jī",便溺:"biàn niào",词调:"cí diào",叨咕:"dáo gu",落枕:"lào zhěn",铺砌:"pū qì",刷白:"shuà bái",委靡:"wěi mǐ",系泊:"xì bó",相马:"xiàng mǎ",熨帖:"yù tiē",转筋:"zhuàn jīn",棒喝:"bàng hè",傧相:"bīn xiàng",镐头:"gǎo tóu",间苗:"jiàn miáo",乐池:"yuè chí",卖相:"mài xiàng",屏弃:"bǐng qì",铅弹:"qiān dàn",切变:"qiē biàn",请调:"qǐng diào",群氓:"qún méng",散板:"sǎn bǎn",省察:"xǐng chá",事假:"shì jià",纤绳:"qiàn shéng",重影:"chóng yǐng",耕种:"gēng zhòng",种地:"zhòng dì",种菜:"zhòng cài",栽种:"zāi zhòng",接种:"jiē zhòng",垦种:"kěn zhòng",种殖:"zhòng zhí",种瓜:"zhòng guā",种豆:"zhòng dòu",种树:"zhòng shù",睡着:"shuì zháo",笼子:"lóng zi",重启:"chóng qǐ",重整:"chóng zhěng",重弹:"chóng tán",重足:"chóng zú",重山:"chóng shān",重游:"chóng yóu",重峦:"chóng luán",爷爷:"yé ye",奶奶:"nǎi nai",姥爷:"lǎo ye",爸爸:"bà ba",妈妈:"mā ma",婶婶:"shěn shen",舅舅:"jiù jiu",姑姑:"gū gu",叔叔:"shū shu",姨夫:"yí fu",舅母:"jiù mu",姑父:"gū fu",姐夫:"jiě fu",婆婆:"pó po",公公:"gōng gong",舅子:"jiù zi",姐姐:"jiě jie",哥哥:"gē ge",妹妹:"mèi mei",妹夫:"mèi fu",姨子:"yí zi",宝宝:"bǎo bao",娃娃:"wá wa",孩子:"hái zi",日子:"rì zi",样子:"yàng zi",狮子:"shī zi",身子:"shēn zi",架子:"jià zi",嫂子:"sǎo zi",鼻子:"bí zi",亭子:"tíng zi",折子:"zhé zi",面子:"miàn zi",脖子:"bó zi",辈子:"bèi zi",帽子:"mào zi",拍子:"pāi zi",柱子:"zhù zi",辫子:"biàn zi",鸽子:"gē zi",房子:"fáng zi",丸子:"wán zi",摊子:"tān zi",牌子:"pái zi",胡子:"hú zi",鬼子:"guǐ zi",矮子:"ǎi zi",鸭子:"yā zi",小子:"xiǎo zi",影子:"yǐng zi",屋子:"wū zi",对子:"duì zi",点子:"diǎn zi",本子:"běn zi",种子:"zhǒng zi",儿子:"ér zi",兔子:"tù zi",骗子:"piàn zi",院子:"yuàn zi",猴子:"hóu zi",嗓子:"sǎng zi",侄子:"zhí zi",柿子:"shì zi",钳子:"qián zi",虱子:"shī zi",瓶子:"píng zi",豹子:"bào zi",筷子:"kuài zi",篮子:"lán zi",绳子:"shéng zi",嘴巴:"zuǐ ba",耳朵:"ěr duo",茄子:"qié zi",蚌埠:"bèng bù",崆峒:"kōng tóng",琵琶:"pí pa",蘑菇:"mó gu",葫芦:"hú lu",狐狸:"hú li",桔子:"jú zi",盒子:"hé zi",桌子:"zhuō zi",竹子:"zhú zi",师傅:"shī fu",衣服:"yī fu",袜子:"wà zi",杯子:"bēi zi",刺猬:"cì wei",麦子:"mài zi",队伍:"duì wu",知了:"zhī liǎo",鱼儿:"yú er",馄饨:"hún tun",灯笼:"dēng long",庄稼:"zhuāng jia",聪明:"cōng ming",镜子:"jìng zi",银子:"yín zi",盘子:"pán zi",了却:"liǎo què",力气:"lì qi",席子:"xí zi",林子:"lín zi",朝霞:"zhāo xiá",朝夕:"zhāo xī",朝气:"zhāo qì",翅膀:"chì bǎng",省长:"shěng zhǎng",臧否:"zāng pǐ",否泰:"pǐ tài",变得:"biàn de",丈夫:"zhàng fu",豆腐:"dòu fu",笔杆:"bǐ gǎn",枞阳:"zōng yáng",行人:"xíng rén",打着:"dǎ zhe",第一:"dì yī",万一:"wàn yī",之一:"zhī yī",得之:"dé zhī",统一:"tǒng yī",唯一:"wéi yī",专一:"zhuān yī",单一:"dān yī",如一:"rú yī",其一:"qí yī",合一:"hé yī",逐一:"zhú yī",周一:"zhōu yī",初一:"chū yī",研一:"yán yī",归一:"guī yī",假一:"jiǎ yī",闻一:"wén yī",了了:"liǎo liǎo",公了:"gōng liǎo",私了:"sī liǎo",一月:"yī yuè",一号:"yī hào",一级:"yī jí",一等:"yī děng",一哥:"yī gē",月一:"yuè yī",一一:"yī yī",二一:"èr yī",三一:"sān yī",四一:"sì yī",五一:"wǔ yī",六一:"liù yī",七一:"qī yī",八一:"bā yī",九一:"jiǔ yī","一〇":"yī líng",一零:"yī líng",一二:"yī èr",一三:"yī sān",一四:"yī sì",一五:"yī wǔ",一六:"yī liù",一七:"yī qī",一八:"yī bā",一九:"yī jiǔ",一又:"yī yòu",一饼:"yī bǐng",一楼:"yī lóu",为例:"wéi lì",为准:"wéi zhǔn",沧海:"cāng hǎi",难为:"nán wéi",责难:"zé nàn",患难:"huàn nàn",磨难:"mó nàn",大难:"dà nàn",刁难:"diāo nàn",殉难:"xùn nàn",落难:"luò nàn",罹难:"lí nàn",灾难:"zāi nàn",难民:"nàn mín",苦难:"kǔ nàn",危难:"wēi nàn",发难:"fā nàn",逃难:"táo nàn",避难:"bì nàn",遇难:"yù nàn",阻难:"zǔ nàn",厄难:"è nàn",徇难:"xùn nàn",空难:"kōng nàn",喜欢:"xǐ huan",朝朝:"zhāo zhāo",不行:"bù xíng",轧轧:"yà yà",弯曲:"wān qū",扭曲:"niǔ qū",曲直:"qū zhí",委曲:"wěi qū",酒曲:"jiǔ qū",曲径:"qū jìng",曲解:"qū jiě",歪曲:"wāi qū",曲线:"qū xiàn",曲阜:"qū fù",九曲:"jiǔ qū",曲折:"qū zhé",曲肱:"qū gōng",曲意:"qū yì",仡佬:"gē lǎo"},Qfe=Object.keys(_R).map(e=>({zh:e,pinyin:_R[e],probability:2e-8,length:2,priority:Rl.Normal,dict:Symbol("dict2")})),ER={为什么:"wèi shén me",实际上:"shí jì shang",检察长:"jiǎn chá zhǎng",干什么:"gàn shén me",这会儿:"zhè huì er",尽可能:"jǐn kě néng",董事长:"dǒng shì zhǎng",了不起:"liǎo bù qǐ",参谋长:"cān móu zhǎng",朝鲜族:"cháo xiǎn zú",海内外:"hǎi nèi wài",禁不住:"jīn bú zhù",柏拉图:"bó lā tú",不在乎:"bú zài hu",洛杉矶:"luò shān jī",有点儿:"yǒu diǎn er",迫击炮:"pǎi jī pào",不得了:"bù dé liǎo",马尾松:"mǎ wěi sōng",运输量:"yùn shū liàng",发脾气:"fā pí qi",士大夫:"shì dà fū",鸭绿江:"yā lù jiāng",压根儿:"yà gēn er",对得起:"duì de qǐ",那会儿:"nà huì er",自个儿:"zì gě er",物理量:"wù lǐ liàng",怎么着:"zěn me zhāo",明晃晃:"míng huǎng huǎng",节假日:"jié jià rì",心里话:"xīn lǐ huà",发行量:"fā xíng liàng",兴冲冲:"xìng chōng chōng",分子量:"fēn zǐ liàng",国子监:"guó zǐ jiàn",老大难:"lǎo dà nán",党内外:"dǎng nèi wài",这么着:"zhè me zhāo",少奶奶:"shào nǎi nai",暗地里:"àn dì lǐ",更年期:"gēng nián qī",工作量:"gōng zuò liàng",背地里:"bèi dì lǐ",山里红:"shān li hóng",好好儿:"hǎo hāo er",交响乐:"jiāo xiǎng yuè",好意思:"hǎo yì si",吐谷浑:"tǔ yù hún",没意思:"méi yì si",理发师:"lǐ fà shī",塔什干:"tǎ shí gān",充其量:"chōng qí liàng",靠得住:"kào de zhù",车行道:"chē xíng dào",人行道:"rén xíng dào",中郎将:"zhōng láng jiàng",照明弹:"zhào míng dàn",烟幕弹:"yān mù dàn",没奈何:"mò nài hé",乱哄哄:"luàn hōng hōng",惠更斯:"huì gēng sī",载重量:"zài zhòng liàng",瞧得起:"qiáo de qǐ",纪传体:"jì zhuàn tǐ",阿房宫:"ē páng gōng",卷心菜:"juǎn xīn cài",戏班子:"xì bān zi",过得去:"guò de qù",花岗石:"huā gāng shí",外甥女:"wài sheng nǚ",团团转:"tuán tuán zhuàn",大堡礁:"dà bǎo jiāo",燃烧弹:"rán shāo dàn",劳什子:"láo shí zi",摇滚乐:"yáo gǔn yuè",夹竹桃:"jiā zhú táo",闹哄哄:"nào hōng hōng",三连冠:"sān lián guàn",重头戏:"zhòng tóu xì",二人转:"èr rén zhuàn",节骨眼:"jiē gǔ yǎn",知识面:"zhī shi miàn",护士长:"hù shi zhǎng",信号弹:"xìn hào dàn",干电池:"gān diàn chí",枪杆子:"qiāng gǎn zi",哭丧棒:"kū sāng bàng",鼻咽癌:"bí yān ái",瓦岗军:"wǎ gāng jūn",买得起:"mǎi de qǐ",癞蛤蟆:"lài há ma",脊梁骨:"jǐ liang gǔ",子母弹:"zǐ mǔ dàn",开小差:"kāi xiǎo chāi",女强人:"nǚ qiáng rén",英雄传:"yīng xióng zhuàn",爵士乐:"jué shì yuè",说笑话:"shuō xiào hua",碰头会:"pèng tóu huì",玻璃钢:"bō li gāng",曳光弹:"yè guāng dàn",少林拳:"shào lín quán",咏叹调:"yǒng tàn diào",少先队:"shào xiān duì",灵长目:"líng zhǎng mù",对着干:"duì zhe gàn",蒙蒙亮:"méng méng liàng",软骨头:"ruǎn gǔ tou",铺盖卷:"pū gài juǎn",和稀泥:"huò xī ní",背黑锅:"bēi hēi guō",红彤彤:"hóng tōng tōng",武侯祠:"wǔ hóu cí",打哆嗦:"dǎ duō suo",户口簿:"hù kǒu bù",马尾藻:"mǎ wěi zǎo",夜猫子:"yè māo zi",打手势:"dǎ shǒu shì",龙王爷:"lóng wáng yé",气头上:"qì tóu shang",糊涂虫:"hú tu chóng",笔杆子:"bǐ gǎn zi",占便宜:"zhàn pián yi",打主意:"dǎ zhǔ yì",多弹头:"duō dàn tóu",露一手:"lòu yì shǒu",堰塞湖:"yàn sè hú",保得住:"bǎo de zhù",趵突泉:"bào tū quán",奥得河:"ào de hé",司务长:"sī wù zhǎng",禁不起:"jīn bù qǐ",什刹海:"shí chà hǎi",莲花落:"lián huā lào",见世面:"jiàn shì miàn",豁出去:"huō chū qù",电位差:"diàn wèi chā",挨个儿:"āi gè er",那阵儿:"nà zhèn er",肺活量:"fèi huó liàng",大师傅:"dà shī fu",掷弹筒:"zhì dàn tǒng",打呼噜:"dǎ hū lu",广渠门:"ān qú mén",未见得:"wèi jiàn dé",大婶儿:"dà shěn er",谈得来:"tán de lái",脚丫子:"jiǎo yā zi",空包弹:"kōng bāo dàn",窝里斗:"wō li dòu",弹着点:"dàn zhuó diǎn",个头儿:"gè tóu er",看得起:"kàn de qǐ",糊涂账:"hú tu zhàng",大猩猩:"dà xīng xing",禁得起:"jīn de qǐ",法相宗:"fǎ xiàng zōng",可怜相:"kě lián xiàng",吃得下:"chī de xià",汉堡包:"hàn bǎo bāo",闹嚷嚷:"nào rāng rāng",数来宝:"shǔ lái bǎo",合得来:"hé de lái",干性油:"gān xìng yóu",闷葫芦:"mèn hú lu",呱呱叫:"guā guā jiào",西洋参:"xī yáng shēn",林荫道:"lín yīn dào",拉家常:"lā jiā cháng",卷铺盖:"juǎn pū gài",过得硬:"guò de yìng",飞将军:"fēi jiāng jūn",挑大梁:"tiǎo dà liáng",哈巴狗:"hǎ ba gǒu",过家家:"guò jiā jiā",催泪弹:"cuī lèi dàn",雨夹雪:"yǔ jiā xuě",敲竹杠:"qiāo zhú gàng",列车长:"liè chē zhǎng",华达呢:"huá dá ní",犯得着:"fàn de zháo",土疙瘩:"tǔ gē da",煞风景:"shā fēng jǐng",轻量级:"qīng liàng jí",羞答答:"xiū dā dā",石子儿:"shí zǐ er",达姆弹:"dá mǔ dàn",科教片:"kē jiào piān",侃大山:"kǎn dà shān",丁点儿:"dīng diǎn er",吃得消:"chī de xiāo",捋虎须:"luō hǔ xū",高丽参:"gāo lí shēn",众生相:"zhòng shēng xiàng",咽峡炎:"yān xiá yán",禁得住:"jīn de zhù",吃得开:"chī de kāi",柞丝绸:"zuò sī chóu",应声虫:"yìng shēng chóng",数得着:"shǔ de zháo",傻劲儿:"shǎ jìn er",铅玻璃:"qiān bō li",可的松:"kě dì sōng",划得来:"huá de lái",晕乎乎:"yūn hū hū",屎壳郎:"shǐ ke làng",尥蹶子:"liào juě zi",藏红花:"zàng hóng huā",闷罐车:"mèn guàn chē",卡脖子:"qiǎ bó zi",红澄澄:"hóng deng deng",赶得及:"gǎn de jí",当间儿:"dāng jiàn er",露马脚:"lòu mǎ jiǎo",鸡内金:"jī nèi jīn",犯得上:"fàn de shàng",钉齿耙:"dīng chǐ bà",饱和点:"bǎo hé diǎn",龙爪槐:"lóng zhǎo huái",喝倒彩:"hè dào cǎi",定冠词:"dìng guàn cí",担担面:"dàn dan miàn",吃得住:"chī de zhù",爪尖儿:"zhuǎ jiān er",支着儿:"zhī zhāo er",折跟头:"zhē gēn tou",阴着儿:"yīn zhāo er",烟卷儿:"yān juǎn er",宣传弹:"xuān chuán dàn",信皮儿:"xìn pí er",弦切角:"xián qiē jiǎo",缩砂密:"sù shā mì",说得来:"shuō de lái",水漂儿:"shuǐ piāo er",耍笔杆:"shuǎ bǐ gǎn",数得上:"shǔ de shàng",数不着:"shǔ bù zháo",数不清:"shǔ bù qīng",什件儿:"shí jiàn er",生死簿:"shēng sǐ bù",扇风机:"shān fēng jī",撒呓挣:"sā yì zheng",日记簿:"rì jì bù",热得快:"rè de kuài",亲家公:"qìng jia gōng",奇函数:"jī hán shù",拍纸簿:"pāi zhǐ bù",努劲儿:"nǔ jìn er",泥娃娃:"ní wá wa",内切圆:"nèi qiē yuán",哪会儿:"nǎ huì er",闷头儿:"mēn tóu er",没谱儿:"méi pǔ er",铆劲儿:"mǎo jìn er",溜肩膀:"liū jiān bǎng",了望台:"liào wàng tái",老来少:"lǎo lái shào",坤角儿:"kūn jué er",考勤簿:"kǎo qín bù",卷笔刀:"juǎn bǐ dāo",进给量:"jìn jǐ liàng",划不来:"huá bù lái",汗褂儿:"hàn guà er",鼓囊囊:"gǔ nāng nāng",够劲儿:"gòu jìn er",公切线:"gōng qiē xiàn",搁得住:"gé de zhù",赶浪头:"gǎn làng tóu",赶得上:"gǎn de shàng",干酵母:"gān jiào mǔ",嘎渣儿:"gā zhā er",嘎嘣脆:"gā bēng cuì",对得住:"duì de zhù",逗闷子:"dòu mèn zi",顶呱呱:"dǐng guā guā",滴溜儿:"dī liù er",大轴子:"dà zhòu zi",打板子:"dǎ bǎn zi",寸劲儿:"cùn jìn er",醋劲儿:"cù jìn er",揣手儿:"chuāi shǒu er",冲劲儿:"chòng jìn er",吃得来:"chī de lái",不更事:"bù gēng shì",奔头儿:"bèn tou er",百夫长:"bǎi fū zhǎng",娃娃亲:"wá wa qīn",死劲儿:"sǐ jìn er",骨朵儿:"gū duǒ er",功劳簿:"gōng láo bù",都江堰:"dū jiāng yàn",一担水:"yí dàn shuǐ",否极泰:"pǐ jí tài",泰来否:"tài lái pǐ",咳特灵:"ké tè líng",开户行:"kāi hù háng",郦食其:"lì yì jī",花事了:"huā shì liǎo",一更更:"yì gēng gēng",一重山:"yì chóng shān",风一更:"fēng yì gēng",雪一更:"xuě yì gēng",归一码:"guī yì mǎ",星期一:"xīng qī yī",礼拜一:"lǐ bài yī",一季度:"yī jì dù",一月一:"yī yuè yī",一字马:"yī zì mǎ",一是一:"yī shì yī",一次方:"yī cì fāng",一阳指:"yī yáng zhǐ",一字决:"yī zì jué",一年级:"yī nián jí",一不做:"yī bú zuò",屈戌儿:"qū qu ér",难为水:"nán wéi shuǐ",难为情:"nán wéi qíng",行一行:"xíng yì háng",别别的:"biè bié de",干哪行:"gàn nǎ háng",干一行:"gàn yì háng",曲别针:"qū bié zhēn"},Vfe=Object.keys(ER).map(e=>({zh:e,pinyin:ER[e],probability:2e-8,length:3,priority:Rl.Normal,dict:Symbol("dict3")})),IR={成吉思汗:"chéng jí sī hán",四通八达:"sì tōng bā dá",一模一样:"yì mú yí yàng",青藏高原:"qīng zàng gāo yuán",阿弥陀佛:"ē mí tuó fó",解放思想:"jiè fàng sī xiǎng",所作所为:"suǒ zuò suǒ wéi",迷迷糊糊:"mí mí hu hū",荷枪实弹:"hè qiāng shí dàn",兴高采烈:"xìng gāo cǎi liè",无能为力:"wú néng wéi lì",布鲁塞尔:"bù lǔ sài ěr",为所欲为:"wéi suǒ yù wéi",克什米尔:"kè shí mǐ ěr",没完没了:"méi wán méi liǎo",不为人知:"bù wéi rén zhī",结结巴巴:"jiē jiē bā bā",前仆后继:"qián pū hòu jì",铺天盖地:"pū tiān gài dì",直截了当:"zhí jié liǎo dàng",供不应求:"gōng bú yìng qiú",御史大夫:"yù shǐ dà fū",不为瓦全:"bù wéi wǎ quán",不可收拾:"bù kě shōu shi",胡作非为:"hú zuò fēi wéi",分毫不差:"fēn háo bú chà",模模糊糊:"mó mó hu hū",不足为奇:"bù zú wéi qí",悄无声息:"qiǎo wú shēng xī",了如指掌:"liǎo rú zhǐ zhǎng",深恶痛绝:"shēn wù tòng jué",高高兴兴:"gāo gāo xìng xìng",唉声叹气:"āi shēng tàn qì",汉藏语系:"hàn zàng yǔ xì",处心积虑:"chǔ xīn jī lǜ",泣不成声:"qì bù chéng shēng",半夜三更:"bàn yè sān gēng",失魂落魄:"shī hún luò pò",二十八宿:"èr shí bā xiù",转来转去:"zhuàn lái zhuàn qù",数以万计:"shǔ yǐ wàn jì",相依为命:"xiāng yī wéi mìng",恋恋不舍:"liàn liàn bù shě",屈指可数:"qū zhǐ kě shǔ",神出鬼没:"shén chū guǐ mò",结结实实:"jiē jiē shí shí",有的放矢:"yǒu dì fàng shǐ",叽哩咕噜:"jī lǐ gū lū",调兵遣将:"diào bīng qiǎn jiàng",载歌载舞:"zài gē zài wǔ",转危为安:"zhuǎn wēi wéi ān",踏踏实实:"tā tā shi shí",桑给巴尔:"sāng jǐ bā ěr",装模作样:"zhuāng mú zuò yàng",见义勇为:"jiàn yì yǒng wéi",相差无几:"xiāng chā wú jǐ",叹为观止:"tàn wéi guān zhǐ",闷闷不乐:"mèn mèn bú lè",喜怒哀乐:"xǐ nù āi lè",鲜为人知:"xiǎn wéi rén zhī",张牙舞爪:"zhāng yá wǔ zhǎo",为非作歹:"wéi fēi zuò dǎi",含糊其辞:"hán hú qí cí",疲于奔命:"pí yú bēn mìng",勉为其难:"miǎn wéi qí nán",依依不舍:"yī yī bù shě",顶头上司:"dǐng tóu shàng si",不着边际:"bù zhuó biān jì",大模大样:"dà mú dà yàng",寻欢作乐:"xún huān zuò lè",一走了之:"yì zǒu liǎo zhī",字里行间:"zì lǐ háng jiān",含含糊糊:"hán hán hu hū",恰如其分:"qià rú qí fèn",破涕为笑:"pò tì wéi xiào",深更半夜:"shēn gēng bàn yè",千差万别:"qiān chā wàn bié",数不胜数:"shǔ bú shèng shǔ",据为己有:"jù wéi jǐ yǒu",天旋地转:"tiān xuán dì zhuàn",养尊处优:"yǎng zūn chǔ yōu",玻璃纤维:"bō li xiān wéi",吵吵闹闹:"chāo chao nào nào",晕头转向:"yūn tóu zhuàn xiàng",土生土长:"tǔ shēng tǔ zhǎng",宁死不屈:"nìng sǐ bù qū",不省人事:"bù xǐng rén shì",尽力而为:"jìn lì ér wéi",精明强干:"jīng míng qiáng gàn",唠唠叨叨:"láo lao dāo dāo",叽叽喳喳:"jī ji zhā zhā",功不可没:"gōng bù kě mò",锲而不舍:"qiè ér bù shě",排忧解难:"pái yōu jiě nàn",稀里糊涂:"xī li hú tú",各有所长:"gè yǒu suǒ cháng",的的确确:"dí dí què què",哄堂大笑:"hōng táng dà xiào",听而不闻:"tīng ér bù wén",刀耕火种:"dāo gēng huǒ zhòng",内分泌腺:"nèi fèn mì xiàn",化险为夷:"huà xiǎn wéi yí",百发百中:"bǎi fā bǎi zhòng",重见天日:"chóng jiàn tiān rì",反败为胜:"fǎn bài wéi shèng",一了百了:"yì liǎo bǎi liǎo",大大咧咧:"dà da liē liē",心急火燎:"xīn jí huǒ liǎo",粗心大意:"cū xīn dà yi",鸡皮疙瘩:"jī pí gē da",夷为平地:"yí wéi píng dì",日积月累:"rì jī yuè lěi",设身处地:"shè shēn chǔ dì",投其所好:"tóu qí suǒ hào",间不容发:"jiān bù róng fà",人满为患:"rén mǎn wéi huàn",穷追不舍:"qióng zhuī bù shě",为时已晚:"wéi shí yǐ wǎn",如数家珍:"rú shǔ jiā zhēn",心里有数:"xīn lǐ yǒu shù",以牙还牙:"yǐ yá huán yá",神不守舍:"shén bù shǒu shě",孟什维克:"mèng shí wéi kè",各自为战:"gè zì wéi zhàn",怨声载道:"yuàn shēng zài dào",救苦救难:"jiù kǔ jiù nàn",好好先生:"hǎo hǎo xiān sheng",怪模怪样:"guài mú guài yàng",抛头露面:"pāo tóu lù miàn",游手好闲:"yóu shǒu hào xián",无所不为:"wú suǒ bù wéi",调虎离山:"diào hǔ lí shān",步步为营:"bù bù wéi yíng",好大喜功:"hào dà xǐ gōng",众矢之的:"zhòng shǐ zhī dì",长生不死:"cháng shēng bù sǐ",蔚为壮观:"wèi wéi zhuàng guān",不可胜数:"bù kě shèng shǔ",鬼使神差:"guǐ shǐ shén chāi",洁身自好:"jié shēn zì hào",敢作敢为:"gǎn zuò gǎn wéi",茅塞顿开:"máo sè dùn kāi",走马换将:"zǒu mǎ huàn jiàng",为时过早:"wéi shí guò zǎo",为人师表:"wéi rén shī biǎo",阴差阳错:"yīn chā yáng cuò",油腔滑调:"yóu qiāng huá diào",重蹈覆辙:"chóng dǎo fù zhé",骂骂咧咧:"mà ma liē liē",絮絮叨叨:"xù xù dāo dāo",如履薄冰:"rú lǚ bó bīng",损兵折将:"sǔn bīng zhé jiàng",拐弯抹角:"guǎi wān mò jiǎo",像模像样:"xiàng mú xiàng yàng",供过于求:"gōng guò yú qiú",开花结果:"kāi huā jiē guǒ",仔仔细细:"zǐ zǐ xì xì",川藏公路:"chuān zàng gōng lù",河北梆子:"hé běi bāng zi",长年累月:"cháng nián lěi yuè",正儿八经:"zhèng er bā jīng",不识抬举:"bù shí tái ju",重振旗鼓:"chóng zhèn qí gǔ",气息奄奄:"qì xī yān yān",紧追不舍:"jǐn zhuī bù shě",服服帖帖:"fú fu tiē tiē",强词夺理:"qiǎng cí duó lǐ",噼里啪啦:"pī li pā lā",人才济济:"rén cái jǐ jǐ",发人深省:"fā rén shēn xǐng",不足为凭:"bù zú wéi píng",为富不仁:"wéi fù bù rén",连篇累牍:"lián piān lěi dú",呼天抢地:"hū tiān qiāng dì",落落大方:"luò luò dà fāng",自吹自擂:"zì chuī zì léi",乐善好施:"lè shàn hào shī",以攻为守:"yǐ gōng wéi shǒu",磨磨蹭蹭:"mó mó cèng cèng",削铁如泥:"xuē tiě rú ní",助纣为虐:"zhù zhòu wéi nüè",以退为进:"yǐ tuì wéi jìn",嘁嘁喳喳:"qī qī chā chā",枪林弹雨:"qiāng lín dàn yǔ",令人发指:"lìng rén fà zhǐ",转败为胜:"zhuǎn bài wéi shèng",转弯抹角:"zhuǎn wān mò jiǎo",在劫难逃:"zài jié nán táo",正当防卫:"zhèng dàng fáng wèi",不足为怪:"bù zú wéi guài",难兄难弟:"nàn xiōng nàn dì",咿咿呀呀:"yī yī yā yā",弹尽粮绝:"dàn jìn liáng jué",阿谀奉承:"ē yú fèng chéng",稀里哗啦:"xī li huā lā",返老还童:"fǎn lǎo huán tóng",好高骛远:"hào gāo wù yuǎn",鹿死谁手:"lù sǐ shéi shǒu",差强人意:"chā qiáng rén yì",大吹大擂:"dà chuī dà léi",成家立业:"chéng jiā lì yè",自怨自艾:"zì yuàn zì yì",负债累累:"fù zhài lěi lěi",古为今用:"gǔ wéi jīn yòng",入土为安:"rù tǔ wéi ān",下不为例:"xià bù wéi lì",一哄而上:"yì hōng ér shàng",没头苍蝇:"méi tóu cāng ying",天差地远:"tiān chā dì yuǎn",风卷残云:"fēng juǎn cán yún",多灾多难:"duō zāi duō nàn",乳臭未干:"rǔ xiù wèi gān",行家里手:"háng jiā lǐ shǒu",狼狈为奸:"láng bèi wéi jiān",处变不惊:"chǔ biàn bù jīng",一唱一和:"yí chàng yí hè",一念之差:"yí niàn zhī chā",金蝉脱壳:"jīn chán tuō qiào",滴滴答答:"dī dī dā dā",硕果累累:"shuò guǒ léi léi",好整以暇:"hào zhěng yǐ xiá",红得发紫:"hóng de fā zǐ",传为美谈:"chuán wéi měi tán",富商大贾:"fù shāng dà gǔ",四海为家:"sì hǎi wéi jiā",了若指掌:"liǎo ruò zhǐ zhǎng",大有可为:"dà yǒu kě wéi",出头露面:"chū tóu lù miàn",鼓鼓囊囊:"gǔ gu nāng nāng",窗明几净:"chuāng míng jī jìng",泰然处之:"tài rán chǔ zhī",怒发冲冠:"nù fà chōng guān",有机玻璃:"yǒu jī bō li",骨头架子:"gǔ tou jià zi",义薄云天:"yì bó yún tiān",一丁点儿:"yī dīng diǎn er",时来运转:"shí lái yùn zhuǎn",陈词滥调:"chén cí làn diào",化整为零:"huà zhěng wéi líng",火烧火燎:"huǒ shāo huǒ liǎo",干脆利索:"gàn cuì lì suǒ",吊儿郎当:"diào er láng dāng",广种薄收:"guǎng zhòng bó shōu",种瓜得瓜:"zhòng guā dé guā",种豆得豆:"zhòng dòu dé dòu",难舍难分:"nán shě nán fēn",歃血为盟:"shà xuè wéi méng",奋发有为:"fèn fā yǒu wéi",阴错阳差:"yīn cuò yáng chā",东躲西藏:"dōng duǒ xī cáng",烟熏火燎:"yān xūn huǒ liǎo",钻牛角尖:"zuān niú jiǎo jiān",乔装打扮:"qiáo zhuāng dǎ bàn",改弦更张:"gǎi xián gēng zhāng",河南梆子:"hé nán bāng zi",好吃懒做:"hào chī lǎn zuò",何乐不为:"hé lè bù wéi",大出风头:"dà chū fēng tóu",攻城掠地:"gōng chéng lüè dì",漂漂亮亮:"piào piào liang liang",折衷主义:"zhé zhōng zhǔ yì",大马哈鱼:"dà mǎ hǎ yú",绿树成荫:"lǜ shù chéng yīn",率先垂范:"shuài xiān chuí fàn",家长里短:"jiā cháng lǐ duǎn",宽大为怀:"kuān dà wéi huái",左膀右臂:"zuǒ bǎng yòu bì",一笑了之:"yí xiào liǎo zhī",天下为公:"tiān xià wéi gōng",还我河山:"huán wǒ hé shān",何足为奇:"hé zú wéi qí",好自为之:"hǎo zì wéi zhī",风姿绰约:"fēng zī chuò yuē",大雨滂沱:"dà yǔ pāng tuó",传为佳话:"chuán wéi jiā huà",吃里扒外:"chī lǐ pá wài",重操旧业:"chóng cāo jiù yè",小家子气:"xiǎo jiā zi qì",少不更事:"shào bù gēng shì",难分难舍:"nán fēn nán shě",添砖加瓦:"tiān zhuān jiā wǎ",是非分明:"shì fēi fēn míng",舍我其谁:"shě wǒ qí shuí",偏听偏信:"piān tīng piān xìn",量入为出:"liàng rù wéi chū",降龙伏虎:"xiáng lóng fú hǔ",钢化玻璃:"gāng huà bō li",正中下怀:"zhèng zhòng xià huái",以身许国:"yǐ shēn xǔ guó",一语中的:"yì yǔ zhòng dì",丧魂落魄:"sàng hún luò pò",三座大山:"sān zuò dà shān",济济一堂:"jǐ jǐ yì táng",好事之徒:"hào shì zhī tú",干净利索:"gàn jìng lì suǒ",出将入相:"chū jiàng rù xiàng",袅袅娜娜:"niǎo niǎo nuó nuó",狐狸尾巴:"hú li wěi ba",好逸恶劳:"hào yì wù láo",大而无当:"dà ér wú dàng",打马虎眼:"dǎ mǎ hu yǎn",板上钉钉:"bǎn shàng dìng dīng",吆五喝六:"yāo wǔ hè liù",虾兵蟹将:"xiā bīng xiè jiàng",水调歌头:"shuǐ diào gē tóu",数典忘祖:"shǔ diǎn wàng zǔ",人事不省:"rén shì bù xǐng",曲高和寡:"qǔ gāo hè guǎ",屡教不改:"lǚ jiào bù gǎi",互为因果:"hù wéi yīn guǒ",互为表里:"hù wéi biǎo lǐ",厚此薄彼:"hòu cǐ bó bǐ",过关斩将:"guò guān zhǎn jiàng",疙疙瘩瘩:"gē ge dā dā",大腹便便:"dà fù pián pián",走为上策:"zǒu wéi shàng cè",冤家对头:"yuān jia duì tóu",有隙可乘:"yǒu xì kě chèng",一鳞半爪:"yì lín bàn zhǎo",片言只语:"piàn yán zhǐ yǔ",开花结实:"kāi huā jié shí",经年累月:"jīng nián lěi yuè",含糊其词:"hán hú qí cí",寡廉鲜耻:"guǎ lián xiǎn chǐ",成年累月:"chéng nián lěi yuè",不徇私情:"bú xùn sī qíng",不当人子:"bù dāng rén zǐ",膀大腰圆:"bǎng dà yāo yuán",指腹为婚:"zhǐ fù wéi hūn",这么点儿:"zhè me diǎn er",意兴索然:"yì xīng suǒ rán",绣花枕头:"xiù huā zhěn tou",无的放矢:"wú dì fàng shǐ",望闻问切:"wàng wén wèn qiè",舍己为人:"shě jǐ wèi rén",穷年累月:"qióng nián lěi yuè",排难解纷:"pái nàn jiě fēn",处之泰然:"chǔ zhī tài rán",指鹿为马:"zhǐ lù wéi mǎ",危如累卵:"wēi rú lěi luǎn",天兵天将:"tiān bīng tiān jiàng",舍近求远:"shě jìn qiú yuǎn",南腔北调:"nán qiāng běi diào",苦中作乐:"kǔ zhōng zuò lè",厚积薄发:"hòu jī bó fā",臭味相投:"xiù wèi xiāng tóu",长幼有序:"zhǎng yòu yǒu xù",逼良为娼:"bī liáng wéi chāng",悲悲切切:"bēi bēi qiè qiē",败军之将:"bài jūn zhī jiàng",欺行霸市:"qī háng bà shì",削足适履:"xuē zú shì lǚ",先睹为快:"xiān dǔ wéi kuài",啼饥号寒:"tí jī háo hán",疏不间亲:"shū bú jiàn qīn",神差鬼使:"shén chāi guǐ shǐ",敲敲打打:"qiāo qiāo dǎ dǎ",平铺直叙:"píng pū zhí xù",没头没尾:"méi tóu mò wěi",寥寥可数:"liáo liáo kě shǔ",哼哈二将:"hēng hā èr jiàng",鹤发童颜:"hè fà tóng yán",各奔前程:"gè bèn qián chéng",弹无虚发:"dàn wú xū fā",大人先生:"dà rén xiān sheng",与民更始:"yǔ mín gēng shǐ",树碑立传:"shù bēi lì zhuàn",是非得失:"shì fēi dé shī",实逼处此:"shí bī chǔ cǐ",塞翁失马:"sài wēng shī mǎ",日薄西山:"rì bó xī shān",切身体会:"qiè shēn tǐ huì",片言只字:"piàn yán zhǐ zì",跑马卖解:"pǎo mǎ mài xiè",宁折不弯:"nìng zhé bù wān",零零散散:"líng líng sǎn sǎn",量体裁衣:"liàng tǐ cái yī",连中三元:"lián zhòng sān yuán",礼崩乐坏:"lǐ bēng yuè huài",不为已甚:"bù wéi yǐ shèn",转悲为喜:"zhuǎn bēi wéi xǐ",以眼还眼:"yǐ yǎn huán yǎn",蔚为大观:"wèi wéi dà guān",未为不可:"wèi wéi bù kě",童颜鹤发:"tóng yán hè fà",朋比为奸:"péng bǐ wéi jiān",莫此为甚:"mò cǐ wéi shèn",夹枪带棒:"jiā qiāng dài bàng",富商巨贾:"fù shāng jù jiǎ",淡然处之:"dàn rán chǔ zhī",箪食壶浆:"dān shí hú jiāng",创巨痛深:"chuāng jù tòng shēn",草长莺飞:"cǎo zhǎng yīng fēi",坐视不救:"zuò shī bú jiù",以己度人:"yǐ jǐ duó rén",随行就市:"suí háng jiù shì",文以载道:"wén yǐ zài dào",文不对题:"wén bú duì tí",铁板钉钉:"tiě bǎn dìng dīng",身体发肤:"shēn tǐ fà fū",缺吃少穿:"quē chī shǎo chuān",目无尊长:"mù wú zūn zhǎng",吉人天相:"jí rén tiān xiàng",毁家纾难:"huǐ jiā shū nàn",钢筋铁骨:"gāng jīn tiě gǔ",丢卒保车:"diū zú bǎo jū",丢三落四:"diū sān là sì",闭目塞听:"bì mù sè tīng",削尖脑袋:"xuē jiān nǎo dài",为非作恶:"wéi fēi zuò è",人才难得:"rén cái nán dé",情非得已:"qíng fēi dé yǐ",切中要害:"qiè zhòng yào hài",火急火燎:"huǒ jí huǒ liǎo",画地为牢:"huà dì wéi láo",好酒贪杯:"hào jiǔ tān bēi",长歌当哭:"cháng gē dàng kū",载沉载浮:"zài chén zài fú",遇难呈祥:"yù nàn chéng xiáng",榆木疙瘩:"yú mù gē da",以邻为壑:"yǐ lín wéi hè",洋为中用:"yáng wéi zhōng yòng",言为心声:"yán wéi xīn shēng",言必有中:"yán bì yǒu zhòng",图穷匕见:"tú qióng bǐ xiàn",滂沱大雨:"páng tuó dà yǔ",目不暇给:"mù bù xiá jǐ",量才录用:"liàng cái lù yòng",教学相长:"jiào xué xiāng zhǎng",悔不当初:"huǐ bù dāng chū",呼幺喝六:"hū yāo hè liù",不足为训:"bù zú wéi xùn",不拘形迹:"bù jū xíng jī",傍若无人:"páng ruò wú rén",罪责难逃:"zuì zé nán táo",自我吹嘘:"zì wǒ chuī xū",转祸为福:"zhuǎn huò wéi fú",勇冠三军:"yǒng guàn sān jūn",易地而处:"yì dì ér chǔ",卸磨杀驴:"xiè mò shā lǘ",玩儿不转:"wán ér bú zhuàn",天道好还:"tiān dào hǎo huán",身单力薄:"shēn dān lì bó",撒豆成兵:"sǎ dòu chéng bīng",片纸只字:"piàn zhǐ zhī zì",宁缺毋滥:"nìng quē wú làn",没没无闻:"mò mò wú wén",量力而为:"liàng lì ér wéi",历历可数:"lì lì kě shǔ",口碑载道:"kǒu bēi zài dào",君子好逑:"jūn zǐ hǎo qiú",好为人师:"hào wéi rén shī",豪商巨贾:"háo shāng jù jiǎ",各有所好:"gè yǒu suǒ hào",度德量力:"duó dé liàng lì",指天为誓:"zhǐ tiān wéi shì",逸兴遄飞:"yì xìng chuán fēi",心宽体胖:"xīn kuān tǐ pán",为德不卒:"wéi dé bù zú",天下为家:"tiān xià wéi jiā",视为畏途:"shì wéi wèi tú",三灾八难:"sān zāi bā nàn",沐猴而冠:"mù hóu ér guàn",哩哩啦啦:"lī li lā lā",见缝就钻:"jiàn fèng jiù zuān",夹层玻璃:"jiā céng bō li",急公好义:"jí gōng hào yì",积年累月:"jī nián lěi yuè",划地为牢:"huá dì wéi láo",更名改姓:"gēng míng gǎi xìng",奉为圭臬:"fèng wéi guī niè",多难兴邦:"duō nàn xīng bāng",不破不立:"bú pò bú lì",坐地自划:"zuò dì zì huá",坐不重席:"zuò bù chóng xí",坐不窥堂:"zuò bù kuī táng",作嫁衣裳:"zuò jià yī shang",左枝右梧:"zuǒ zhī yòu wú",左宜右有:"zuǒ yí yòu yǒu",钻头觅缝:"zuān tóu mì fèng",钻天打洞:"zuān tiān dǎ dòng",钻皮出羽:"zuān pí chū yǔ",钻火得冰:"zuān huǒ dé bīng",钻洞觅缝:"zuàn dòng mì féng",钻冰求火:"zuān bīng qiú huǒ",子为父隐:"zǐ wéi fù yǐn",擢发难数:"zhuó fà nán shǔ",着人先鞭:"zhuó rén xiān biān",斫雕为朴:"zhuó diāo wéi pǔ",锥处囊中:"zhuī chǔ náng zhōng",椎心饮泣:"chuí xīn yǐn qì",椎心泣血:"chuí xīn qì xuè",椎牛飨士:"chuí niú xiǎng shì",椎牛歃血:"chuí niú shà xuè",椎牛发冢:"chuí niú fà zhǒng",椎埋屠狗:"chuí mái tú gǒu",椎埋狗窃:"chuí mái gǒu qiè",壮发冲冠:"zhuàng fā chōng guàn",庄严宝相:"zhuāng yán bǎo xiàng",转愁为喜:"zhuǎn chóu wéi xǐ",转嗔为喜:"zhuǎn chēn wéi xǐ",拽巷啰街:"zhuài xiàng luó jiē",拽耙扶犁:"zhuāi pá fú lí",拽布拖麻:"zhuài bù tuō má",箸长碗短:"zhù cháng wǎn duǎn",铸剑为犁:"zhù jiàn wéi lí",杼柚其空:"zhù yòu qí kōng",杼柚空虚:"zhù yòu kōng xū",助天为虐:"zhù tiān wéi nüè",属垣有耳:"zhǔ yuán yǒu ěr",属毛离里:"zhǔ máo lí lǐ",属辞比事:"zhǔ cí bǐ shì",逐物不还:"zhú wù bù huán",铢量寸度:"zhū liáng cùn duó",铢两悉称:"zhū liǎng xī chèn",侏儒观戏:"zhū rú guān xì",朱轓皁盖:"zhū fān zào gài",昼度夜思:"zhòu duó yè sī",诪张为幻:"zhōu zhāng wéi huàn",重明继焰:"chóng míng jì yàn",众啄同音:"zhòng zhuó tóng yīn",众毛攒裘:"zhòng máo cuán qiú",众好众恶:"zhòng hào zhòng wù",擿埴索涂:"zhāi zhí suǒ tú",稚齿婑媠:"zhì chǐ wǒ tuó",至当不易:"zhì dàng bú yì",指皂为白:"zhǐ zào wéi bái",指雁为羹:"zhǐ yàn wéi gēng",指树为姓:"zhǐ shù wéi xìng",指山说磨:"zhǐ shān shuō mò",止戈为武:"zhǐ gē wéi wǔ",枝干相持:"zhī gàn xiāng chí",枝大于本:"zh dà yú běn",支吾其词:"zhī wú qí cí",正身率下:"zhèng shēn shuài xià",正冠李下:"zhèng guàn lǐ xià",整冠纳履:"zhěng guān nà lǚ",整躬率物:"zhěng gōng shuài wù",整顿干坤:"zhěng dùn gàn kūn",针头削铁:"zhēn tóu xuē tiě",贞松劲柏:"zhēn sōng jìng bǎi",赭衣塞路:"zhě yī sè lù",折箭为誓:"shé jiàn wéi shì",折而族之:"zhé ér zú zhī",昭德塞违:"zhāo dé sè wéi",章句小儒:"zhāng jù xiǎo rú",湛恩汪濊:"zhàn ēn wāng huì",占风望气:"zhān fēng wàng qì",斩将搴旗:"zhǎn jiàng qiān qí",曾母投杼:"zēng mǔ tóu zhù",曾参杀人:"zēng shēn shā rén",造谣中伤:"zào yáo zhòng shāng",早占勿药:"zǎo zhān wù yào",凿龟数策:"záo guī shǔ cè",攒三聚五:"cuán sān jù wǔ",攒眉蹙额:"cuán mei cù é",攒零合整:"cuán líng hé zhěng",攒锋聚镝:"cuán fēng jù dí",载笑载言:"zài xiào zài yán",载酒问字:"zài jiǔ wèn zì",殒身不恤:"yǔn shēn bú xù",云舒霞卷:"yún shū xiá juǎn",月中折桂:"yuè zhōng shé guì",月落参横:"yuè luò shēn héng",鬻驽窃价:"yù nú qiè jià",鬻鸡为凤:"yù jī wéi fèng",遇难成祥:"yù nàn chéng xiáng",郁郁累累:"yù yù lěi lěi",玉卮无当:"yù zhī wú dàng",语笑喧阗:"yǔ xiào xuān tián",与世沉浮:"yǔ shì chén fú",与时消息:"yǔ shí xiāo xi",逾墙钻隙:"yú qiáng zuān xì",渔夺侵牟:"yú duó qīn móu",杅穿皮蠹:"yú chuān pí dù",余勇可贾:"yú yǒng kě gǔ",予智予雄:"yú zhì yú xióng",予取予求:"yú qǔ yú qiú",于家为国:"yú jiā wéi guó",有借无还:"yǒu jiè wú huán",有加无已:"yǒu jiā wú yǐ",有国难投:"yǒu guó nán tóu",游必有方:"yóu bì yǒu fāng",油干灯尽:"yóu gàn dēng jìn",尤云殢雨:"yóu yún tì yǔ",庸中皦皦:"yōng zhōng jiǎo jiǎo",郢书燕说:"yǐng shū yān shuō",营蝇斐锦:"yíng yíng fēi jǐn",鹰心雁爪:"yīng xīn yàn zhǎo",莺吟燕儛:"yīng yín yàn wǔ",应天顺时:"yīng tiān shùn shí",印累绶若:"yìn léi shòu ruò",隐占身体:"yǐn zhàn shēn tǐ",饮犊上流:"yìn dú shàng liú",引绳切墨:"yǐn shéng qiē mò",龈齿弹舌:"yín chǐ dàn shé",因缘为市:"yīn yuán wéi shì",因树为屋:"yīn shù wéi wū",溢美溢恶:"yì měi yì wù",抑塞磊落:"yì sè lěi luò",倚闾望切:"yǐ lǘ wàng qiē",以意为之:"yǐ yì wéi zhī",以言为讳:"yǐ yán wéi huì",以疏间亲:"yǐ shū jiàn qīn",以水济水:"yǐ shuǐ jǐ shuǐ",以书为御:"yǐ shū wéi yù",以守为攻:"yǐ shǒu wéi gōng",以升量石:"yǐ shēng liáng dàn",以慎为键:"yǐ shèn wéi jiàn",以筌为鱼:"yǐ quán wéi yú",以利累形:"yǐ lì lěi xíng",以毁为罚:"yǐ huǐ wéi fá",以黑为白:"yǐ hēi wéi bái",以规为瑱:"yǐ guī wéi tiàn",以古为鉴:"yǐ gǔ wéi jiàn",以宫笑角:"yǐ gōng xiào jué",以法为教:"yǐ fǎ wéi jiào",以大恶细:"yǐ dà wù xì",遗世忘累:"yí shì wàng lěi",遗寝载怀:"yí qǐn zài huái",移的就箭:"yí dì jiù jiàn",依头缕当:"yī tóu lǚ dàng",衣租食税:"yì zū shí shuì",衣轻乘肥:"yì qīng chéng féi",衣裳之会:"yī shang zhī huì",衣单食薄:"yī dān shí bó",一还一报:"yì huán yí bào",叶公好龙:"yè gōng hào lóng",野调无腔:"yě diào wú qiāng",瑶池女使:"yáo chí nǚ shǐ",幺麽小丑:"yāo mó xiǎo chǒu",养精畜锐:"yǎng jīng xù ruì",卬首信眉:"áng shǒu shēn méi",洋洋纚纚:"yáng yáng sǎ sǎ",羊羔美酒:"yáng gāo měi jiǔ",扬风扢雅:"yáng fēng jié yǎ",燕昭市骏:"yān zhāo shì jùn",燕昭好马:"yān zhāo hǎo mǎ",燕石妄珍:"yān shí wàng zhēn",燕骏千金:"yān jùn qiān jīn",燕金募秀:"yān jīn mù xiù",燕驾越毂:"yān jià yuè gǔ",燕歌赵舞:"yān gē zhào wǔ",燕岱之石:"yān dài zhī shí",燕处危巢:"yàn chǔ wēi cháo",掞藻飞声:"shàn zǎo fēi shēng",偃革为轩:"yǎn gé wéi xuān",妍蚩好恶:"yán chī hǎo è",压良为贱:"yā liáng wéi jiàn",搀行夺市:"chān háng duó shì",泣数行下:"qì shù háng xià",当行出色:"dāng háng chū sè",秀出班行:"xiù chū bān háng",儿女成行:"ér nǚ chéng háng",大行大市:"dà háng dà shì",寻行数墨:"xún háng shǔ mò",埙篪相和:"xūn chí xiāng hè",血债累累:"xuè zhài lěi lěi",炫玉贾石:"xuàn yù gǔ shí",炫石为玉:"xuàn shí wéi yù",悬石程书:"xuán dàn chéng shū",悬狟素飡:"xuán huán sù cān",悬龟系鱼:"xuán guī xì yú",揎拳捋袖:"xuān quán luō xiù",轩鹤冠猴:"xuān hè guàn hóu",畜妻养子:"xù qī yǎng zǐ",羞人答答:"xiū rén dā dā",修鳞养爪:"xiū lín yǎng zhǎo",熊据虎跱:"xióng jù hǔ zhì",兄死弟及:"xiōng sǐ dì jí",腥闻在上:"xīng wén zài shàng",兴文匽武:"xīng wén yǎn wǔ",兴观群怨:"xìng guān qún yuàn",兴高彩烈:"xìng gāo cǎi liè",心手相应:"xīn shǒu xiāng yìng",心口相应:"xīn kǒu xiāng yīng",挟势弄权:"xié shì nòng quán",胁肩累足:"xié jiān lěi zú",校短量长:"jiào duǎn liáng cháng",小眼薄皮:"xiǎo yǎn bó pí",硝云弹雨:"xiāo yún dàn yǔ",鸮鸣鼠暴:"xiāo míng shǔ bào",削株掘根:"xuē zhū jué gēn",削铁无声:"xuē tiě wú shēng",削职为民:"xuē zhí wéi mín",削木为吏:"xuē mù wéi lì",想望风褱:"xiǎng wàng fēng huái",香培玉琢:"xiang pei yu zhuó",相鼠有皮:"xiàng shǔ yǒu pí",相时而动:"xiàng shí ér dòng",相切相磋:"xiāng qiē xiāng cuō",相女配夫:"xiàng nǚ pèi fū",相门有相:"xiàng mén yǒu xiàng",挦章撦句:"xián zhāng chě jù",先我着鞭:"xiān wǒ zhuó biān",习焉不察:"xí yān bù chá",歙漆阿胶:"shè qī ē jiāo",晰毛辨发:"xī máo biàn fà",悉索薄赋:"xī suǒ bó fù",雾鳞云爪:"wù lín yún zhǎo",物稀为贵:"wù xī wéi guì",碔砆混玉:"wǔ fū hùn yù",武断专横:"wǔ duàn zhuān héng",五石六鹢:"wǔ shí liù yì",五色相宣:"wǔ sè xiāng xuān",五侯七贵:"wǔ hóu qī guì",五侯蜡烛:"wǔ hòu là zhú",五羖大夫:"wǔ gǔ dà fū",吾自有处:"wú zì yǒu chǔ",无下箸处:"wú xià zhù chǔ",无伤无臭:"wú shāng wú xiù",无能为役:"wú néng wéi yì",无寇暴死:"wú kòu bào sǐ",无孔不钻:"wú kǒng bú zuàn",无间可乘:"wú jiān kě chéng",无间冬夏:"wú jiān dōng xià",无恶不为:"wú è bù wéi",无动为大:"wú dòng wéi dà",诬良为盗:"wū liáng wéi dào",握拳透爪:"wò quán tòu zhǎo",文武差事:"wén wǔ chāi shì",委委佗佗:"wēi wēi tuó tuó",惟日为岁:"wéi rì wéi suì",帷薄不修:"wéi bó bù xiū",为善最乐:"wéi shàn zuì lè",为山止篑:"wéi shān zhǐ kuì",为仁不富:"wéi rén bú fù",为裘为箕:"wéi qiú wéi jī",为民父母:"wéi mín fù mǔ",为虺弗摧:"wéi huǐ fú cuī",为好成歉:"wéi hǎo chéng qiàn",为鬼为蜮:"wéi guǐ wéi yù",望风响应:"wàng fēng xiǎng yīng",望尘僄声:"wàng chén piào shēng",往渚还汀:"wǎng zhǔ huán tīng",王贡弹冠:"wáng gòng dàn guàn",亡国大夫:"wáng guó dà fū",万贯家私:"wàn guàn jiā sī",晚食当肉:"wǎn shí dàng ròu",晚节不保:"wǎn jié bù bǎo",玩岁愒时:"wán suì kài shí",蛙蟆胜负:"wā má shèng fù",吞言咽理:"tūn yán yàn lǐ",颓垣断堑:"tuí yuán duàn qiàn",推干就湿:"tuī gàn jiù shī",剸繁决剧:"tuán fán jué jù",团头聚面:"tuán tóu jù miàn",兔丝燕麦:"tù sī yàn mài",兔头麞脑:"tù tóu zhāng nǎo",兔葵燕麦:"tù kuí yàn mài",吐哺握发:"tǔ bǔ wò fà",投传而去:"tóu zhuàn ér qù",头没杯案:"tóu mò bēi àn",头昏脑闷:"tóu hūn nǎo mèn",头会箕敛:"tóu kuài jī liǎn",头出头没:"tóu chū tóu mò",痛自创艾:"tòng zì chuāng yì",同恶相助:"tóng wù xiāng zhù",同恶相恤:"tóng wù xiāng xù",痌瘝在抱:"tōng guān zài bào",通文调武:"tōng wén diào wǔ",停留长智:"tíng liú zhǎng zhì",铁树开华:"tiě shù kāi huā",条贯部分:"tiáo guàn bù fēn",挑牙料唇:"tiǎo yá liào chún",挑么挑六:"tiāo yāo tiāo liù",挑唇料嘴:"tiǎo chún liào zuǐ",恬不为意:"tián bù wéi yì",恬不为怪:"tián bù wéi guài",天下为笼:"tiān xià wéi lóng",天台路迷:"tiān tái lù mí",天年不遂:"tiān nián bú suì",探囊胠箧:"tàn náng qū qiè",谭言微中:"tán yán wēi zhòng",谈言微中:"tán yán wēi zhòng",狧穅及米:"shì kāng jí mǐ",随物应机:"suí wù yīng jī",搜岩采干:"sōu yán cǎi gàn",宋斤鲁削:"sòng jīn lǔ xuē",松筠之节:"sōng yún zhī jié",四亭八当:"sì tíng bā dàng",四马攒蹄:"sì mǎ cuán tí",四不拗六:"sì bú niù liù",思所逐之:"sī suǒ zhú zhī",丝恩发怨:"sī ēn fà yuàn",硕望宿德:"shuò wàng xiǔ dé",铄古切今:"shuò gǔ qiē jīn",顺风而呼:"shùn fēng ér hū",顺风吹火:"shùn fēng chuī huǒ",水中著盐:"shuǐ zhōng zhuó yán",双柑斗酒:"shuāng gān dǒu jiǔ",数米而炊:"shǔ mǐ ér chuī",数米量柴:"shǔ mǐ liáng chái",数理逻辑:"shù lǐ luó ji",数黑论黄:"shǔ hēi lùn huáng",数白论黄:"shǔ bái lùn huáng",束缊还妇:"shù yūn huán fù",束蒲为脯:"shù pú wéi pú",束椽为柱:"shù chuán wéi zhù",书缺有间:"shū quē yǒu jiàn",手足重茧:"shǒu zú chóng jiǎn",手足异处:"shǒu zú yì chǔ",手脚干净:"shǒu jiǎo gàn jìng",手不应心:"shǒu bù yīng xīn",螫手解腕:"shì shǒu jiě wàn",释知遗形:"shì zhī yí xíng",适时应务:"shì shí yīng wù",适情率意:"shì qíng shuài yì",适当其冲:"shì dāng qí chōng",视为知己:"shì wéi zhī jǐ",使羊将狼:"shǐ yáng jiàng láng",食为民天:"shí wéi mín tiān",拾掇无遗:"shí duō wú yí",实与有力:"shí yù yǒu lì",石英玻璃:"shí yīng bō li",石室金匮:"shí shì jīn guì",什袭珍藏:"shí xí zhēn cáng",什伍东西:"shí wǔ dōng xī",什围伍攻:"shí wéi wǔ gōng",十魔九难:"shí mó jiǔ nàn",诗书发冢:"shī shū fà zhǒng",虱处裈中:"shī chǔ kūn zhōng",师直为壮:"shī zhí wéi zhuàng",尸居龙见:"shī jū lóng xiàn",圣经贤传:"shèng jīng xián zhuàn",圣君贤相:"shèng jūn xián xiàng",生拖死拽:"shēng tuō sǐ zhuài",审己度人:"shěn jǐ duó rén",神武挂冠:"shén wǔ guà guàn",神龙失埶:"shén lóng shī shì",深文曲折:"shēn wén qǔ shé",深厉浅揭:"shēn lì qiǎn qì",深谷为陵:"shēn gǔ wéi líng",深恶痛疾:"shēn wù tòng jí",深仇宿怨:"shēn chóu xiǔ yuàn",舍己为公:"shě jǐ wèi gōng",舍短取长:"shě duǎn qǔ cháng",舍策追羊:"shě cè zhuī yáng",蛇蝎为心:"shé xiē wéi xīn",少成若性:"shào chéng ruò xìng",上当学乖:"shàng dàng xué guāi",赏不当功:"shǎng bù dāng gōng",善自为谋:"shàn zì wéi móu",善为说辞:"shàn wéi shuō cí",善善恶恶:"shàn shàn wù è",善财难舍:"shàn cái nán shě",苫眼铺眉:"shān yǎn pū méi",讪牙闲嗑:"shàn yá xián kē",山阴乘兴:"shān yīn chéng xīng",山殽野湋:"shān yáo yě wéi",山溜穿石:"shān liù chuān shí",山节藻棁:"shān jié zǎo zhuō",杀鸡为黍:"shā jī wéi shǔ",色厉胆薄:"sè lì dǎn bó",桑荫未移:"sāng yīn wèi yí",桑荫不徙:"sāng yīn bù xǐ",桑土绸缪:"sāng tǔ chóu miù",桑户棬枢:"sāng hù juàn shū",三战三北:"sān zhàn sān běi",三瓦两舍:"sān wǎ liǎng shě",三人为众:"sān rén wèi zhòng",三差两错:"sān chā liǎng cuò",塞井焚舍:"sāi jǐng fén shě",洒心更始:"sǎ xīn gèng shǐ",洒扫应对:"sǎ sǎo yìng duì",软红香土:"ruǎn hóng xiāng tǔ",入吾彀中:"rù wú gòu zhōng",入铁主簿:"rù tiě zhǔ bù",入理切情:"rù lǐ qiē qíng",汝成人耶:"rǔ chéng rén yé",如水投石:"rú shuǐ tóu shí",如切如磋:"rú qiē rú cuō",如登春台:"rú dēng chūn tái",肉薄骨并:"ròu bó gǔ bìng",柔情绰态:"róu qíng chuò tài",戎马劻勷:"róng mǎ kuāng ráng",日中为市:"rì zhōng wéi shì",日月参辰:"rì yuè shēn chén",日省月修:"rì xǐng yuè xiū",日削月割:"rì xuē yuè gē",日省月试:"rì xǐng yuè shì",任达不拘:"rèn dá bù jū",人言藉藉:"rén yán jí jí",人模狗样:"rén mú gǒu yàng",人莫予毒:"rén mò yú dú",热熬翻饼:"rè áo fān bǐng",圈牢养物:"juàn láo yǎng wù",取予有节:"qǔ yǔ yǒu jié",诎要桡腘:"qū yāo ráo guó",穷形尽相:"qióng xíng jìn xiàng",情凄意切:"qíng qī yì qiè",情见势屈:"qíng xiàn shì qū",情见乎辞:"qíng xiàn hū cí",清都绛阙:"qīng dōu jiàng què",倾肠倒肚:"qīng cháng dào dǔ",青紫被体:"qīng zǐ pī tǐ",青林黑塞:"qīng lín hēi sài",螓首蛾眉:"qín shǒu é méi",琴瑟之好:"qín sè zhī hào",且住为佳:"qiě zhù wéi jiā",切树倒根:"qiē shù dǎo gēn",切理餍心:"qiē lǐ yàn xīn",切近的当:"qiē jìn de dāng",翘足引领:"qiáo zú yǐn lǐng",巧发奇中:"qiǎo fā qí zhòng",强嘴拗舌:"jiàng zuǐ niù shé",强直自遂:"qiáng zhí zì suí",强死强活:"qiǎng sǐ qiǎng huó",强食自爱:"qiǎng shí zì ài",强食靡角:"qiǎng shí mí jiǎo",强弓劲弩:"qiáng gōng jìng nǔ",强聒不舍:"qiǎng guō bù shě",强凫变鹤:"qiáng fú biàn hè",强而后可:"qiǎng ér hòu kě",强得易贫:"qiǎng dé yì pín",遣兴陶情:"qiǎn xìng táo qíng",牵羊担酒:"qiān yáng dān jiǔ",千了百当:"qiān liǎo bǎi dàng",泣下如雨:"qì xià rú yǔ",起偃为竖:"qǐ yǎn wéi shù",岂弟君子:"kǎi tì jūn zǐ",綦溪利跂:"qí xī lì qí",棋输先著:"qí shū xiān zhuó",齐王舍牛:"qí wáng shě niú",欺天诳地:"qī tiān kuáng dì",普天率土:"pǔ tiān shuài tǔ",铺胸纳地:"pū xiōng nà dì",铺锦列绣:"pū jǐn liè xiù",破家为国:"pò jiā wèi guó",破觚为圜:"pò gū wéi yuán",萍飘蓬转:"píng piāo péng zhuàn",帡天极地:"píng tiān jí dì",屏声息气:"bǐng shēng xī qì",凭几据杖:"píng jī jù zhàng",贫嘴薄舌:"pín zuǐ bó shé",片语只辞:"piàn yǔ zhī cí",披发文身:"pī fà wén shēn",烹龙炮凤:"pēng lóng páo fèng",炰鳖脍鲤:"fǒu biē kuài lǐ",庞眉皓发:"páng méi hào fà",攀花折柳:"pān huā zhé liǔ",攀蟾折桂:"pān chán shé guì",女大难留:"nǚ dà nán liú",弄玉吹箫:"nòng yù chuī xiāo",弄管调弦:"nòng guǎn tiáo xián",弄粉调朱:"nòng fěn diào zhū",浓抹淡妆:"nóng mò dàn zhuāng",捻土为香:"niǎn tǔ wéi xiāng",年谊世好:"nián yì shì hǎo",年华垂暮:"nián huá chuí mù",儗不于伦:"nǐ bù yú lún",泥而不滓:"ní ér bù zǐ",能者为师:"néng zhě wéi shī",能不称官:"néng bú chèn guān",挠直为曲:"náo zhí wéi qū",难进易退:"nán jìn yì tuì",难得糊涂:"nán dé hú tú",南蛮鴂舌:"nán mán jué shé",南贩北贾:"nán fàn běi gǔ",牧猪奴戏:"mù zhū nú xì",目眢心忳:"mù yuān xīn tún",目挑心招:"mù tiǎo xīn zhāo",目量意营:"mù liàng yì yíng",木头木脑:"mù tóu mù nǎo",木干鸟栖:"mù gàn niǎo qī",侔色揣称:"móu sè chuǎi chèn",莫予毒也:"mò yú dú yě",抹粉施脂:"mò fěn shī zhī",磨砻镌切:"mó lóng juān qiē",磨棱刓角:"mó léng wán jiǎo",摸门不着:"mō mén bù zháo",摸不着边:"mō bù zhuó biān",命中注定:"mìng zhōng zhù dìng",鸣鹤之应:"míng hè zhī yìng",明效大验:"míng xiào dà yàn",名我固当:"míng wǒ gù dāng",邈处欿视:"miǎo chǔ kǎn shì",黾穴鸲巢:"měng xué qú cháo",绵里薄材:"mián lǐ bó cái",靡有孑遗:"mǐ yǒu jié yí",靡衣偷食:"mǐ yī tōu shí",迷恋骸骨:"mí liàn hái gǔ",扪参历井:"mén shēn lì jǐng",门单户薄:"mén dān hù bó",昧旦晨兴:"mèi dàn chén xīng",冒名接脚:"mào míng jiē jiǎo",毛遂堕井:"máo suí duò jǐng",毛发倒竖:"máo fā dǎo shù",卖文为生:"mài wén wéi shēng",卖李钻核:"mài lǐ zuān hé",买椟还珠:"mǎi dú huán zhū",埋三怨四:"mán sān yuàn sì",马入华山:"mǎ rù huá shān",落魄江湖:"luò pò jiāng hú",落落难合:"luò luò nán hé",落草为寇:"luò cǎo wéi kòu",罗织构陷:"luó zhī gòu xiàn",鸾凤和鸣:"luán fèng hè míng",率由旧章:"shuài yóu jiù zhāng",率土同庆:"shuài tǔ tóng qìng",率兽食人:"shuài shòu shí rén",率土归心:"shuài tǔ guī xīn",率马以骥:"shuài mǎ yǐ jì",率尔成章:"shuài ěr chéng zhāng",鲁斤燕削:"lǔ jīn yàn xuē",漏尽更阑:"lòu jìn gēng lán",笼鸟槛猿:"lóng niǎo jiàn yuán",笼鸟池鱼:"lóng niǎo chí yú",龙游曲沼:"lóng yóu qū zhǎo",龙血玄黄:"lóng xuè xuán huáng",龙雕凤咀:"lóng diāo fèng jǔ",六尺之讬:"liù chǐ zhī tuō",令原之戚:"líng yuán zhī qī",令人捧腹:"lìng rén pěng fù",陵劲淬砺:"líng jìng cuì lì",临敌易将:"lín dí yì jiàng",裂裳衣疮:"liè shang yī chuāng",裂冠毁冕:"liè guàn huǐ miǎn",了无惧色:"liǎo wú jù sè",了身达命:"liǎo shēn dá mìng",了然无闻:"liǎo rán wú wén",了不可见:"liǎo bù kě jiàn",了不长进:"liǎo bù zhǎng jìn",燎发摧枯:"liǎo fà cuī kū",审时度势:"shěn shí duó shì",量小力微:"liàng xiǎo lì wēi",相时度力:"xiāng shí duó lì",量枘制凿:"liàng ruì zhì záo",量如江海:"liàng rú jiāng hǎi",量金买赋:"liàng jīn mǎi fù",量己审分:"liàng jǐ shěn fēn",敛骨吹魂:"liǎn gǔ chuī hún",詈夷为跖:"lì yí wéi zhí",利令志惛:"lì lìng zhì hūn",李广不侯:"lǐ guǎng bú hòu",礼为情貌:"lǐ wéi qíng mào",礼让为国:"lǐ ràng wéi guó",犁生骍角:"lí shēng xīng jiǎo",离本徼末:"lí běn jiǎo mò",楞眉横眼:"léng méi hèng yǎn",擂天倒地:"léi tiān dǎo dì",累足成步:"lěi zú chéng bù",累瓦结绳:"lěi wǎ jié shéng",累土至山:"lěi tǔ zhì shān",累土聚沙:"lěi tǔ jù shā",累卵之危:"lěi luǎn zhī wēi",累累如珠:"lěi lěi rú zhū",累块积苏:"lěi kuài jī sū",乐山乐水:"lè shān lè shuǐ",潦原浸天:"lǎo yuán jìn tiān",老师宿儒:"lǎo shī xiǔ rú",牢什古子:"láo shí gǔ zi",琅嬛福地:"láng huán fú dì",揆情度理:"kuí qíng duó lǐ",旷日累时:"kuàng rì lěi shí",匡救弥缝:"kuāng jiù mí fèng",枯树生华:"kū shù shēng huā",口轻舌薄:"kǒu qīng shé bó",口角生风:"kǒu jiǎo shēng fēng",口角春风:"kǒu jiǎo chūn fēng",口角风情:"kǒu jiǎo fēng qíng",口干舌焦:"kǒu gān shé jiāo",口腹之累:"kǒu fù zhī lěi",空腹便便:"kōng fù pián pián",嗑牙料嘴:"kē yá liào zuǐ",刻木为鹄:"kè mù wéi hú",咳珠唾玉:"ké zhū tuò yù",咳唾成珠:"ké tuò chéng zhū",抗颜为师:"kàng yán wéi shī",开华结果:"kāi huā jié guǒ",峻阪盐车:"jùn bǎn yán chē",嚼铁咀金:"jiáo tiě jǔ jīn",嚼墨喷纸:"jué mò pēn zhǐ",倔头强脑:"juè tóu jiàng nǎo",倔头倔脑:"juè tóu juè nǎo",倦鸟知还:"juàn niǎo zhī huán",卷席而葬:"juǎn xí ér zàng",卷甲倍道:"juǎn jiǎ bèi dào",聚米为山:"jù mǐ wéi shān",举手相庆:"jǔ shǒu xiāng qìng",举世混浊:"jǔ shì hún zhuó",鞠为茂草:"jū wéi mào cǎo",拘神遣将:"jū shén qiǎn jiàng",居下讪上:"jū xià shàn shàng",久要不忘:"jiǔ yāo bú wàng",九转功成:"jiǔ zhuǎn gōng chéng",九蒸三熯:"jiǔ zhēng sān hàn",敬业乐群:"jìng yè lè qún",井底虾蟆:"jǐng dǐ xiā má",旌旗卷舒:"jīng qí juǎn shū",荆棘载途:"jīng jí zài tú",禁舍开塞:"jìn shě kāi sāi",祲威盛容:"jìn wēi shèng róng",进退消长:"jìn tuì xiāo cháng",进退应矩:"jìn tuì yīng jǔ",进退触籓:"jìn tuì chù fān",进退跋疐:"jìn tuì bá zhì",尽多尽少:"jǐn duō jǐn shǎo",锦囊还矢:"jǐn náng huán shǐ",矜己自饰:"jīn jǐ zì shì",矜功负气:"jīn gōng fù qì",津关险塞:"jīn guān xiǎn sài",金吾不禁:"jīn wú bú jìn",金翅擘海:"jīn chì bāi hǎi",解衣衣人:"jiě yī yī rén",解人难得:"jiě rén nán dé",解铃系铃:"jiě líng xì líng",解发佯狂:"jiě fà yáng kuáng",诘屈磝碻:"jié qū áo qiāo",教猱升木:"jiāo náo shēng mù",较瘦量肥:"jiào shòu liàng féi",角立杰出:"jiǎo lì jié chū",焦沙烂石:"jiāo shā làn shí",骄儿騃女:"jiāo ér sì nǚ",浇风薄俗:"jiāo fēng bó sú",降妖捉怪:"xiáng yāo zhuō guài",将取固予:"jiāng qǔ gù yǔ",将门有将:"jiàng mén yǒu jiàng",将夺固与:"jiāng duó gù yǔ",槛花笼鹤:"jiàn huā lóng hè",鉴影度形:"jiàn yǐng duó xíng",渐不可长:"jiàn bù kě zhǎng",见素抱朴:"xiàn sù bào pǔ",见弃于人:"jiàn qì yú rén",简丝数米:"jiǎn sī shǔ mǐ",俭不中礼:"jiǎn bú zhòng lǐ",间见层出:"jiàn xiàn céng chū",尖嘴薄舌:"jiān zuǐ bó shé",甲冠天下:"jiǎ guàn tiān xià",葭莩之亲:"jiā fú zhī qīn",家累千金:"jiā lèi qiān jīn",家给人足:"jiā jǐ rén zú",家道从容:"jiā dào cóng róng",夹袋人物:"jiā dài rén wù",霁风朗月:"jì fēng lǎng yuè",寄兴寓情:"jì xìng yù qíng",计深虑远:"jì shēn lǜ yuǎn",计功量罪:"jì gōng liàng zuì",掎裳连襼:"jǐ shang lián yì",虮虱相吊:"jǐ shī xiāng diào",疾不可为:"jí bù kě wéi",极深研几:"jí shēn yán jī",及宾有鱼:"jí bīn yǒu yú",激薄停浇:"jī bó tíng jiāo",积素累旧:"jī sù lěi jiù",积时累日:"jī shí lěi rì",积露为波:"jī lù wéi bō",积德累功:"jī dé lěi gōng",积谗糜骨:"jī chán méi gǔ",击排冒没:"jī pái mào mò",祸为福先:"huò wéi fú xiān",祸福相依:"huò fú xiāng yī",获隽公车:"huò jùn gōng chē",混应滥应:"hùn yīng làn yīng",毁舟为杕:"huǐ zhōu wéi duò",毁钟为铎:"huǐ zhōng wéi duó",毁冠裂裳:"huǐ guān liè cháng",晦盲否塞:"huì máng pǐ sè",回船转舵:"huí chuán zhuàn duò",潢池盗弄:"huáng chí dào nòng",黄冠草履:"huáng guàn cǎo lǚ",黄发儿齿:"huáng fà ér chǐ",黄发垂髫:"huáng fà chuí tiáo",还珠返璧:"huán zhū fǎn bì",还年驻色:"huán nián zhù sè",还年却老:"huán nián què lǎo",坏裳为裤:"huài shang wéi kù",画荻和丸:"huà dí huò wán",化枭为鸠:"huà xiāo wéi jiū",化腐为奇:"huà fǔ wéi qí",化鸱为凤:"huà chī wéi fèng",花不棱登:"huā bu lēng dēng",户限为穿:"hù xiàn wéi chuān",呼卢喝雉:"hū lú hè zhì",呼来喝去:"hū lái hè qù",呼不给吸:"hū bù jǐ xī",厚味腊毒:"hòu wèi xī dú",厚德载物:"hòu dé zài wù",鸿渐于干:"hóng jiàn yú gàn",洪炉燎发:"hóng lú liáo fà",红绳系足:"hóng shéng jì zú",红不棱登:"hóng bu lēng dēng",横抢硬夺:"hèng qiǎng yìng duó",横恩滥赏:"hèng ēn làn shǎng",恨海难填:"hèn hǎi nán tián",鹤发鸡皮:"hè fà jī pí",涸思干虑:"hé sī gān lǜ",河涸海干:"hé hé hǎi gān",和颜说色:"hé yán yuè sè",合从连衡:"hé zòng lián héng",浩浩汤汤:"hào hào shāng shāng",好勇斗狠:"hào yǒng dòu hěn",好问则裕:"hào wèn zé yù",好为事端:"hào wéi shì duān",好问决疑:"hào wèn jué yí",好生之德:"hào shēng zhī dé",好奇尚异:"hǎo qí shàng yì",好恶不同:"hǎo è bù tóng",好丹非素:"hào dān fēi sù",豪干暴取:"háo gàn bào qǔ",毫发不爽:"háo fà bù shuǎng",寒酸落魄:"hán suān luò pò",含英咀华:"hán yīng jǔ huá",含糊不明:"hán hú bù míng",过为已甚:"guò wéi yǐ shèn",桂折兰摧:"guì shé lán cuī",规旋矩折:"guī xuán jǔ shé",广文先生:"guǎng wén xiān sheng",广陵散绝:"guǎng líng sǎn jué",冠山戴粒:"guàn shān dài lì",冠屦倒施:"guàn jù dǎo shī",挂席为门:"guà xí wéi mén",寡见鲜闻:"guǎ jiàn xiǎn wén",瓜葛相连:"guā gé xiāng lián",鼓吻奋爪:"gǔ wěn fèn zhǎo",古调单弹:"gǔ diào dān tán",古调不弹:"gǔ diào bù tán",姑射神人:"gū yè shén rén",苟合取容:"gǒu hé qǔ róng",狗续侯冠:"gǒu xù hòu guàn",钩爪锯牙:"gōu zhǎo jù yá",共枝别干:"gòng zhī bié gàn",共为唇齿:"gòng wéi chún chǐ",拱手而降:"gǒng shǒu ér xiáng",拱肩缩背:"gǒng jiān suō bèi",功薄蝉翼:"gōng bó chán yì",弓调马服:"gōng diào mǎ fú",更姓改物:"gēng xìng gǎi wù",更仆难数:"gēng pú nán shǔ",更令明号:"gēng lìng míng hào",更待干罢:"gèng dài gàn bà",更唱迭和:"gēng chàng dié hé",更长梦短:"gēng cháng mèng duǎn",各色名样:"gè sè míng yàng",格格不纳:"gé gé bú nà",格格不吐:"gé gé bù tǔ",告朔饩羊:"gù shuò xì yáng",膏车秣马:"gào chē mò mǎ",高义薄云:"gāo yì bó yún",岗头泽底:"gāng tóu zé dǐ",敢为敢做:"gǎn wéi gǎn zuò",甘分随时:"gān fèn suí shí",甘处下流:"gān chǔ xià liú",干啼湿哭:"gàn tí shī kū",干名犯义:"gàn míng fàn yì",干将莫邪:"gān jiāng mò yé",干城之将:"gān chéng zhī jiàng",腹载五车:"fù zài wǔ chē",父债子还:"fù zhài zǐ huán",父为子隐:"fù wéi zǐ yǐn",辅世长民:"fǔ shì zhǎng mín",福为祸始:"fú wéi huò shǐ",符号逻辑:"fú hào luó jí",浮收勒折:"fú shōu lè shé",肤受之愬:"fū shòu zhī sù",否终则泰:"pǐ zhōng zé tài",佛头著粪:"fó tóu zhuó fèn",奉为楷模:"fèng wéi kǎi mó",凤靡鸾吪:"fèng mǐ luán é",封豨修蛇:"fēng xī xiū shé",风影敷衍:"fēng yǐng fū yǎn",丰屋蔀家:"fēng wū bù jiā",粪土不如:"fèn tǔ bù rú",分风劈流:"fēn fēng pǐ liú",沸沸汤汤:"fèi fèi shāng shāng",菲食薄衣:"fěi shí bó yī",飞将数奇:"fēi jiàng shù qí",放辟邪侈:"fàng pì xié chǐ",方领圆冠:"fāng lǐng yuán guàn",犯而不校:"fàn ér bú jiào",返本还源:"fǎn běn huán yuán",反劳为逸:"fǎn láo wéi yì",法轮常转:"fǎ lún cháng zhuàn",罚不当罪:"fá bù dāng zuì",发引千钧:"fà yǐn qiān jūn",发奸擿伏:"fā jiān tī fú",发短心长:"fà duǎn xīn cháng",二竖为虐:"èr shù wéi nüè",儿女心肠:"ér nǚ xīn cháng",儿女亲家:"ér nǚ qìng jiā",遏恶扬善:"è wù yáng shàn",饿殍枕藉:"è piǎo zhěn jí",饿殍载道:"è piǎo zài dào",恶醉强酒:"wù zuì qiǎng jiǔ",恶意中伤:"è yì zhòng shāng",恶湿居下:"wù shī jū xià",恶居下流:"wù jū xià liú",恶不去善:"wù bú qù shàn",扼吭夺食:"è háng duó shí",扼襟控咽:"è jīn kòng yān",峨峨汤汤:"é é shāng shāng",屙金溺银:"ē jīn niào yín",朵颐大嚼:"duǒ yí dà jiáo",夺人所好:"duó rén suǒ hào",多言数穷:"duō yán shuò qióng",多文为富:"duō wén wéi fù",多端寡要:"duō duān guǎ yào",多财善贾:"duō cái shàn gǔ",遁世无闷:"dùn shì wú mèn",遁迹黄冠:"dùn jì huáng guàn",堆案盈几:"duī àn yíng jī",断还归宗:"duàn huán guī zōng",短见薄识:"duǎn jiàn bó shí",蠹居棊处:"dù jū qí chǔ",度己以绳:"duó jǐ yǐ shéng",杜默为诗:"dù mò wéi shī",杜鹃啼血:"dù juān tí xuè",笃近举远:"dǔ jìn jǔ yuǎn",独有千秋:"dú yǒu qiān qiū",读书得间:"dú shū dé jiàn",斗转参横:"dǒu zhuǎn shēn héng",兜肚连肠:"dōu dǔ lián cháng",洞见症结:"dòng jiàn zhèng jié",恫疑虚喝:"dòng yí xū hè",动中窾要:"dòng zhōng kuǎn yào",东鸣西应:"dōng míng xī yīng",东鳞西爪:"dōng lín xī zhǎo",东量西折:"dōng liàng xī shé",东家西舍:"dōng jiā xī shè",东扯西拽:"dōng chě xī zhuāi",鼎铛有耳:"dǐng chēng yǒu ěr",鼎铛玉石:"dǐng chēng yù shí",钉头磷磷:"dīng tóu lín lín",跌宕不羁:"diē dàng bù jī",跌弹斑鸠:"diē dàn bān jiū",雕心雁爪:"diāo xīn yàn zhǎo",颠倒衣裳:"diān dǎo yī cháng",德薄能鲜:"dé bó néng xiǎn",得马折足:"dé mǎ shé zú",蹈其覆辙:"dǎo qí fù zhé",捣虚撇抗:"dǎo xū piē kàng",倒载干戈:"dào zài gān gē",倒裳索领:"dào cháng suǒ lǐng",倒果为因:"dào guǒ wéi yīn",叨在知己:"tāo zài zhī jǐ",叨陪末座:"tāo péi mò zuò",党豺为虐:"dǎng chái wéi nüè",当轴处中:"dāng zhóu chǔ zhōng",当着不着:"dāng zhuó bù zhuó",当务始终:"dāng wù shǐ zhōng",淡汝浓抹:"dàn rǔ nóng mǒ",弹丸脱手:"tán wán tuō shǒu",弹铗无鱼:"dàn jiá wú yú",箪食瓢饮:"dān sì piáo yǐn",大璞不完:"dà pú bù wán",大明法度:"dà míng fǎ dù",大车以载:"dà chē yǐ zài",打闷葫芦:"dǎ mèn hú lu",沓来踵至:"tà lái zhǒng zhì",厝火燎原:"cuò huǒ liǎo yuán",撮科打哄:"cuō kē dǎ hòng",寸积铢累:"cùn jī zhū lěi",啛啛喳喳:"cuì cuì chā chā",摧折豪强:"cuī zhé háo qiáng",摧刚为柔:"cuī gāng wéi róu",从俗就简:"cóng sú jiù jiǎn",此发彼应:"cǐ fā bǐ yīng",此唱彼和:"cǐ chàng bǐ hè",慈悲为本:"cí bēi wéi běn",纯属骗局:"chún shǔ piàn jú",春笋怒发:"chūn sǔn nù fā",垂头搨翼:"chuí tóu tà yì",传为笑谈:"chuán wéi xiào tán",传风扇火:"chuán fēng shān huǒ",穿红着绿:"chuān hóng zhuó lǜ",触处机来:"chù chǔ jī lái",处尊居显:"chǔ zūn jū xiǎn",处堂燕雀:"chǔ táng yàn què",处实效功:"chǔ shí xiào gōng",处高临深:"chǔ gāo lín shēn",出入无间:"chū rù wú jiān",出门应辙:"chū mén yīng zhé",出处语默:"chū chǔ yǔ mò",出处殊途:"chū chǔ shū tú",出处进退:"chū chǔ jìn tuì",愁山闷海:"chóu shān mèn hǎi",冲冠眦裂:"chōng guàn zì liè",齿牙为祸:"chǐ yá wéi huò",尺二冤家:"chǐ èr yuān jia",尺短寸长:"chǐ duǎn cùn cháng",尺寸之功:"chǐ cùn zhī gōng",城北徐公:"chéng běi xú gōng",成败兴废:"chéng bài xīng fèi",趁水和泥:"chèn shuǐ huò ní",称雨道晴:"chēng yǔ dào qíng",称体载衣:"chēng tǐ zài yī",称体裁衣:"chèn tǐ cái yī",称家有无:"chèn jiā yǒu wú",称德度功:"chēng dé duó gōng",沉吟章句:"chén yín zhāng jù",沉吟不决:"chén yín bù jué",沉疴宿疾:"chén kē sù jí",扯纤拉烟:"chě qiàn lā yān",扯顺风旗:"chě shùn fēng qí",车载船装:"chē zǎi chuán zhuāng",朝升暮合:"zhāo shēng mù gě",朝攀暮折:"zhāo pān mù shé",超今冠古:"chāo jīn guàn gǔ",倡而不和:"chàng ér bú hè",畅所欲为:"chàng suǒ yù wéi",苌弘碧血:"cháng hóng bì xiě",长幼尊卑:"zhǎng yòu zūn bēi",长绳系日:"cháng shéng jì rì",长年三老:"zhǎng nián sān lǎo",长春不老:"cháng chūn bù lǎo",长傲饰非:"zhǎng ào shì fēi",昌亭旅食:"chāng tíng lǚ shí",禅絮沾泥:"chán xù zhān ní",差三错四:"chā sān cuò sì",层台累榭:"céng tái lěi xiè",层见迭出:"céng xiàn dié chū",藏踪蹑迹:"cáng zōng niè jì",苍蝇见血:"cāng yíng jiàn xiě",餐松啖柏:"cān sōng dàn bó",骖风驷霞:"cān fēng sì xiá",参伍错综:"cēn wǔ cuò zōng",参辰卯酉:"shēn chén mǎo yǒu",材优干济:"cái yōu gān jǐ",材薄质衰:"cái bó zhì shuāi",才大难用:"cái dà nán yòng",才薄智浅:"cái bó zhì qiǎn",不足为意:"bù zú wéi yì",不足为据:"bù zú wéi jù",不足为法:"bù zú wéi fǎ",不足齿数:"bù zú chǐ shǔ",不着疼热:"bù zhuó téng rè",不知薡蕫:"bù zhī dǐng dǒng",不越雷池:"bú yuè léi chí",不相为谋:"bù xiāng wéi móu",不贪为宝:"bù tān wéi bǎo",不了而了:"bù liǎo ér liǎo",不可揆度:"bù kě kuí duó",不遑启处:"bù huáng qǐ chǔ",不当不正:"bù dāng bú zhèng",不差什么:"bú chà shén me",不差累黍:"bù chā lěi shǔ",擘两分星:"bò liǎng fēn xīng",簸土扬沙:"bǒ tǔ yáng shā",薄物细故:"bó wù xì gù",薄寒中人:"bó hán zhòng rén",博文约礼:"bó wén yuē lǐ",播糠眯目:"bō kāng mí mù",剥皮抽筋:"bō pí chōu jīn",剥肤椎髓:"bō fū chuí suǐ",波属云委:"bō zhǔ yún wěi",波骇云属:"bō hài yún zhǔ",兵微将寡:"bīng wēi jiàng guǎ",兵强将勇:"bīng qiáng jiàng yǒng",兵多将广:"bīng duō jiàng guǎng",兵不由将:"bīng bù yóu jiàng",冰解的破:"bīng jiě dì pò",彬彬济济:"bīn bīn jǐ jǐ",摽梅之年:"biào méi zhī nián",表里为奸:"biǎo lǐ wéi jiān",飙发电举:"biāo fā diàn jǔ",变贪厉薄:"biàn tān lì bó",敝盖不弃:"bì gài bú qì",秕言谬说:"bǐ yán miù shuō",比物属事:"bǐ wù zhǔ shì",被山带河:"pī shān dài hé",被甲枕戈:"pī jiǎ zhěn gē",被甲据鞍:"pī jiǎ jù ān",被褐怀玉:"pī hè huái yù",被发缨冠:"pī fà yīng guàn",背曲腰躬:"bèi qǔ yāo gōng",北窗高卧:"běi chuāng gāo wò",北辰星拱:"běi chén xīng gǒng",北鄙之音:"běi bǐ zhī yīn",卑宫菲食:"bēi gōng fěi shí",暴衣露冠:"pù yī lù guàn",暴腮龙门:"pù sāi lóng mén",暴露文学:"bào lù wén xué",暴虎冯河:"bào hǔ píng hé",抱蔓摘瓜:"bào wàn zhāi guā",抱法处势:"bào fǎ chǔ shì",褒贬与夺:"bāo biǎn yǔ duó",帮闲钻懒:"bāng xián zuān lǎn",拜将封侯:"bài jiàng fēng hóu",百兽率舞:"bǎi shòu shuài wǔ",百孔千创:"bǎi kǒng qiān chuāng",白衣卿相:"bái yī qīng xiàng",白首为郎:"bái shǒu wéi láng",白首相知:"bái shǒu xiāng zhī",把玩无厌:"bǎ wán wú yàn",拔锅卷席:"bá guō juǎn xí",拔本塞源:"bá běn sè yuán",傲不可长:"ào bù kě zhǎng",熬更守夜:"áo gēng shǒu yè",安时处顺:"ān shí chǔ shùn",安身为乐:"ān shēn wéi lè",安老怀少:"ān lǎo huái shào",安步当车:"ān bù dàng chē",爱人好士:"ài rén hào shì",矮人观场:"ǎi rén guān chǎng",捱风缉缝:"ái fēng jī fèng",挨山塞海:"āi shān sè hǎi",阿家阿翁:"ā jiā ā wēng",阿党相为:"ē dǎng xiāng wéi",追亡逐北:"zhuī wáng zhú běi",竹篮打水:"zhú lán dá shuǐ",知疼着热:"zhī téng zháo rè",语不惊人:"yǔ bù jīng rén",于今为烈:"yú jīn wéi liè",一日三省:"yí rì sān xǐng",穴居野处:"xué jū yě chǔ",五脊六兽:"wǔ jǐ liù shòu",无声无臭:"wú shēng wú xiù",谓予不信:"wèi yú bú xìn",舍身为国:"shě shēn wéi guó",杀妻求将:"shā qī qiú jiàng",强作解人:"qiǎng zuò jiě rén",气冲斗牛:"qì chōng dǒu niú",临深履薄:"lín shēn lǚ bó",钧天广乐:"jūn tiān guǎng yuè",艰难竭蹶:"jiān nán jié jué",夹七夹八:"jiā qī jiā bā",混混噩噩:"hún hún è è",厚古薄今:"hòu gǔ bó jīn",鬼怕恶人:"guǐ pà è rén",伽马射线:"gā mǎ shè xiàn",佛头着粪:"fó tóu zhuó fèn",奉为至宝:"fèng wéi zhì bǎo",登坛拜将:"dēng tán bài jiàng",晨昏定省:"chén hūn dìng xǐng",察察为明:"chá chá wéi míng",博闻强识:"bó wén qiáng zhì",避难就易:"bì nán jiù yì",了无生机:"liǎo wú shēng jī",有一说一:"yǒu yī shuō yī",独一无二:"dú yī wú èr",说一不二:"shuō yī bù èr",举一反三:"jǔ yī fǎn sān",数一数二:"shǔ yī shǔ èr",杀一儆百:"shā yī jǐng bǎi",丁一卯二:"dīng yī mǎo èr",丁一确二:"dīng yī què èr",不一而止:"bù yī ér zhǐ",无一幸免:"wú yī xìng miǎn",表里不一:"biǎo lǐ bù yī",良莠不一:"liáng yǒu bù yī",心口不一:"xīn kǒu bù yī",言行不一:"yán xíng bù yī",政令不一:"zhèng lìng bù yī",参差不一:"cēn cī bù yī",纷纷不一:"fēn fēn bù yī",毁誉不一:"huǐ yù bù yī",不一而三:"bù yī ér sān",百不一遇:"bǎi bù yī yù",言行抱一:"yán xíng bào yī",瑜百瑕一:"yú bǎi xiá yī",背城借一:"bèi chéng jiè yī",凭城借一:"píng chéng jiè yī",劝百讽一:"quàn bǎi fěng yī",群居和一:"qún jū hé yī",百不获一:"bǎi bù huò yī",百不失一:"bǎi bù shī yī",百无失一:"bǎi wú shī yī",万不失一:"wàn bù shī yī",万无失一:"wàn wú shī yī",合而为一:"hé ér wéi yī",合两为一:"hé liǎng wéi yī",合二为一:"hé èr wéi yī",天下为一:"tiān xià wéi yī",相与为一:"xiāng yǔ wéi yī",较若画一:"jiào ruò huà yī",较如画一:"jiào rú huà yī",斠若画一:"jiào ruò huà yī",言行若一:"yán xíng ruò yī",始终若一:"shǐ zhōng ruò yī",终始若一:"zhōng shǐ ruò yī",惟精惟一:"wéi jīng wéi yī",众多非一:"zhòng duō fēi yī",不能赞一:"bù néng zàn yī",问一答十:"wèn yī dá shí",一不扭众:"yī bù niǔ zhòng",一以贯之:"yī yǐ guàn zhī",一以当百:"yī yǐ dāng bǎi",百不当一:"bǎi bù dāng yī",十不当一:"shí bù dāng yī",以一警百:"yǐ yī jǐng bǎi",以一奉百:"yǐ yī fèng bǎi",以一持万:"yǐ yī chí wàn",以一知万:"yǐ yī zhī wàn",百里挑一:"bǎi lǐ tiāo yī",整齐划一:"zhěng qí huà yī",一来二去:"yī lái èr qù",一路公交:"yī lù gōng jiāo",一路汽车:"yī lù qì chē",一路巴士:"yī lù bā shì",朝朝朝落:"zhāo cháo zhāo luò",曲意逢迎:"qū yì féng yíng",一行不行:"yì háng bù xíng",行行不行:"háng háng bù xíng"},Gfe=Object.keys(IR).map(e=>({zh:e,pinyin:IR[e],probability:2e-8,length:4,priority:Rl.Normal,dict:Symbol("dict4")})),MR={巴尔干半岛:"bā ěr gàn bàn dǎo",巴尔喀什湖:"bā ěr kā shí hú",不幸而言中:"bú xìng ér yán zhòng",布尔什维克:"bù ěr shí wéi kè",何乐而不为:"hé lè ér bù wéi",苛政猛于虎:"kē zhèng měng yú hǔ",蒙得维的亚:"méng dé wéi dì yà",民以食为天:"mín yǐ shí wéi tiān",事后诸葛亮:"shì hòu zhū gě liàng",物以稀为贵:"wù yǐ xī wéi guì",先下手为强:"xiān xià shǒu wéi qiáng",行行出状元:"háng háng chū zhuàng yuan",亚得里亚海:"yà dé lǐ yà hǎi",眼不见为净:"yǎn bú jiàn wéi jìng",竹筒倒豆子:"zhú tǒng dào dòu zi"},qfe=Object.keys(MR).map(e=>({zh:e,pinyin:MR[e],probability:2e-8,length:5,priority:Rl.Normal,dict:Symbol("dict5")}));function TR(e,t){return e&&(e.decimalt.probability)?e:t}function BR(e){e.probability<1e-300&&(e.probability*=1e300,e.decimal+=1)}function Kfe(e){return e.priority===Rl.Custom?-(e.length*e.length*100):e.priority===Rl.Surname?-(e.length*e.length*10):0}function Zfe(e,t){const n=[];let i=e.length-1,o=e[i];for(let s=t-1;s>=0;s--){const r=s+1>=t?{probability:1,decimal:0,patterns:[]}:n[s+1];for(;o&&o.index+o.length-1===s;){const l=o.index,u={probability:o.probability*r.probability,decimal:r.decimal+Kfe(o),patterns:r.patterns,concatPattern:o};BR(u),n[l]=TR(n[l],u),o=e[--i]}const a={probability:1e-13*r.probability,decimal:0,patterns:r.patterns};BR(a),n[s]=TR(n[s],a),n[s].concatPattern&&(n[s].patterns=n[s].patterns.concat(n[s].concatPattern),n[s].concatPattern=void 0,delete n[s+1])}return n[0].patterns.reverse()}function FR(e,t){return e&&e.count<=t.count?e:t}function Yfe(e){return e.priority===Rl.Custom?-(e.length*e.length*1e5):e.priority===Rl.Surname?-(e.length*e.length*100):1}function Jfe(e,t){const n=[];let i=e.length-1,o=e[i];for(let s=t-1;s>=0;s--){const r=s+1>=t?{count:0,patterns:[]}:n[s+1];for(;o&&o.index+o.length-1===s;){const l=o.index,u={count:Yfe(o)+r.count,patterns:r.patterns,concatPattern:o};n[l]=FR(n[l],u),o=e[--i]}const a={count:1+r.count,patterns:r.patterns};n[s]=FR(n[s],a),n[s].concatPattern&&(n[s].patterns=n[s].patterns.concat(n[s].concatPattern),n[s].concatPattern=void 0,delete n[s+1])}return n[0].patterns.reverse()}function Xfe(e,t){return!(t.index+t.length<=e.index||t.priority>e.priority||t.priority===e.priority&&t.length>e.length)}function ehe(e){const t=[];for(let n=e.length-1;n>=0;){const{index:i}=e[n];let o=n-1;for(;o>=0&&Xfe(e[n],e[o]);)o--;(o<0||e[o].index+e[o].length<=i)&&t.push(e[n]),n=o}return t.reverse()}var RR;(function(e){e[e.ReverseMaxMatch=1]="ReverseMaxMatch",e[e.MaxProbability=2]="MaxProbability",e[e.MinTokenization=3]="MinTokenization"})(RR||(RR={}));class DR{constructor(t,n="",i=""){this.children=new Map,this.fail=null,this.patterns=[],this.parent=t,this.prefix=n,this.key=i}}class the{constructor(){this.dictMap=new Map,this.queues=[],this.root=new DR(null)}build(t){this.buildTrie(t),this.buildFailPointer()}buildTrie(t){for(let n of t){const i=MS(n.zh);let o=this.root;for(let s=0;s{t=t.concat(i)}),this.queues=[];t.length>n;){let i=t[n++],o=i.parent&&i.parent.fail,s=i.key;for(;o&&!o.children.has(s);)o=o.fail;o?i.fail=o.children.get(s):i.fail=this.root}}addPatternToDictMap(t){this.dictMap.has(t.dict)||this.dictMap.set(t.dict,new Set),this.dictMap.get(t.dict).add(t)}addNodeToQueues(t){this.queues[$u(t.prefix)]||(this.queues[$u(t.prefix)]=[]),this.queues[$u(t.prefix)].push(t)}insertPattern(t,n){for(let i=t.length-1;i>=0;i--){const o=t[i];if(n.priority===o.priority&&n.probability>=o.probability)t[i+1]=o;else if(n.priority>o.priority)t[i+1]=o;else{t[i+1]=n;return}}t[0]=n}removeDict(t){this.dictMap.has(t)&&(this.dictMap.get(t).forEach(i=>{i.node.patterns=i.node.patterns.filter(o=>o!==i)}),this.dictMap.delete(t))}match(t,n){let i=this.root,o=[];const s=MS(t);for(let r=0;rn==="off"?c.priority!==Rl.Surname:n==="head"?c.length-1-r===0:!0);l&&o.push(Object.assign(Object.assign({},l),{index:r-l.length+1}));let u=i.fail;for(;u!==null;){const c=u.patterns.find(d=>n==="off"?d.priority!==Rl.Surname:n==="head"?d.length-1-r===0:!0);c&&o.push(Object.assign(Object.assign({},c),{index:r-c.length+1})),u=u.fail}}}return o}search(t,n,i=2){const o=this.match(t,n);return i===1?ehe(o):i===3?Jfe(o,$u(t)):Zfe(o,$u(t))}}const nhe=[...qfe,...Gfe,...Vfe,...Qfe,...jfe,...Wfe],kQ=new the;kQ.build(nhe);const ihe=new AQ,ohe=()=>ihe,she=[];function rhe(){return she}const Sv=e=>{const t=dh.get(e);return t?t.split(" ")[0]:e},ahe=e=>{const t=[],n=rhe();for(let i=0;i{const s=o?ahe(e):e,r=kQ.search(s,n,i);let a=0;const l=MS(e);for(let u=0;ue.replace(/(ā|á|ǎ|à)/g,"a").replace(/(ō|ó|ǒ|ò)/g,"o").replace(/(ē|é|ě|è)/g,"e").replace(/(ī|í|ǐ|ì)/g,"i").replace(/(ū|ú|ǔ|ù)/g,"u").replace(/(ǖ|ǘ|ǚ|ǜ)/g,"ü").replace(/(n̄|ń|ň|ǹ)/g,"n").replace(/(m̄|ḿ|m̌|m̀)/g,"m").replace(/(ê̄|ế|ê̌|ề)/g,"ê"),bQ=(e,t="off")=>{const n=ohe();let i=dh.get(e)?dh.get(e).split(" "):[];if(n.get(e))i=n.get(e).split(" ");else if(t!=="off"){const o=TS[e];o&&(i=[o].concat(i.filter(s=>s!==o)))}return i},uhe=(e,t="off")=>{let n=bQ(e,t);return n.length>0?n.map(i=>({origin:e,result:i,isZh:!0,originPinyin:i})):[{origin:e,result:e,isZh:!1,originPinyin:e}]},qb=(e,t)=>{const n=e.split(" "),i=[],o=[];for(let s of n)for(let r of Nfe)if(s.startsWith(r)){let a=s.slice(r.length);Lfe.indexOf(r)!==-1&&Pfe.indexOf(a)!==-1&&(a=Ofe[a]),i.push(r),o.push(a);break}return t==="standard"&&i.forEach((s,r)=>{(s==="y"||s==="w")&&(i[r]="")}),{final:o.join(" "),initial:i.join(" ")}},x9=e=>{const{final:t}=qb(e);let n="",i="",o="";return zfe.indexOf(W4(t))!==-1?(n=t[0],i=t[1],o=t.slice(2)):(i=t[0]||"",o=t.slice(1)||""),{head:n,body:i,tail:o}},Q4=e=>{const t=/(ā|ō|ē|ī|ū|ǖ|n̄|m̄|ê̄)/,n=/(á|ó|é|í|ú|ǘ|ń|ḿ|ế)/,i=/(ǎ|ǒ|ě|ǐ|ǔ|ǚ|ň|m̌|ê̌)/,o=/(à|ò|è|ì|ù|ǜ|ǹ|m̀|ề)/,s=/(a|o|e|i|u|ü|ê)/,r=/(n|m)$/,a=[];return e.split(" ").forEach(u=>{t.test(u)?a.push("1"):n.test(u)?a.push("2"):i.test(u)?a.push("3"):o.test(u)?a.push("4"):s.test(u)||r.test(u)?a.push("0"):a.push("")}),a.join(" ")},che=(e,t)=>{const n=W4(e).split(" "),i=Q4(t).split(" "),o=[];return n.forEach((s,r)=>{o.push(`${s}${i[r]}`)}),o.join(" ")},wQ=(e,t)=>{const n=[];return e.split(" ").forEach(o=>{n.push(t?o[0]:o)}),n.join(" ")};function dhe(e,t,n){if(Ufe.indexOf(e)===-1)return Sv(e);if(t===n&&t&&Sv(t)!==t)return W4(Sv(e));if(n&&!Hfe[e].includes(n)){const i=Sv(n);if(i!==n){const o=Q4(i),s=yQ[e];for(let r in s)if(s[r].indexOf(Number(o))!==-1)return r}}}function fhe(e,t){if(e==="了"&&(!t||!dh.get(t)))return"liǎo"}function hhe(e,t){if(e==="々")return!t||!dh.get(t)?"tóng":dh.get(t).split(" ")[0]}function NR(e,t,n){return hhe(e,t)||fhe(e,t)||dhe(e,t,n)||Sv(e)}const phe=e=>typeof e!="string"?(console.error("The first param of pinyin is error: "+e+' is not assignable to type "string".'),!1):!0;function s8(e,t){return t instanceof RegExp?t.test(e):!0}const mhe=(e,t)=>{let n=t.nonZh;if(n==="removed")return e.filter(i=>i.isZh||!s8(i.origin,t.nonZhScope));if(n==="consecutive"){for(let i=e.length-2;i>=0;i--){const o=e[i],s=e[i+1];!o.isZh&&!s.isZh&&s8(o.origin,t.nonZhScope)&&s8(s.origin,t.nonZhScope)&&(o.origin+=s.origin,o.result+=s.result,s.delete=!0)}return e.filter(i=>!i.delete)}else return e},LR=(e,t)=>$u(e)===1&&t.multiple?uhe(e,t.surname):!1,ghe=(e,t)=>{switch(t.pattern){case"pinyin":break;case"num":e.forEach(n=>{n.result=n.isZh?Q4(n.result):""});break;case"initial":e.forEach(n=>{n.result=n.isZh?qb(n.result,t.initialPattern).initial:""});break;case"final":e.forEach(n=>{n.result=n.isZh?qb(n.result,t.initialPattern).final:""});break;case"first":e.forEach(n=>{n.result=wQ(n.result,n.isZh)});break;case"finalHead":e.forEach(n=>{n.result=n.isZh?x9(n.result).head:""});break;case"finalBody":e.forEach(n=>{n.result=n.isZh?x9(n.result).body:""});break;case"finalTail":e.forEach(n=>{n.result=n.isZh?x9(n.result).tail:""});break}},vhe=(e,t)=>{switch(t.toneType){case"symbol":break;case"none":e.forEach(n=>{n.isZh&&(n.result=W4(n.result))});break;case"num":{e.forEach(n=>{n.isZh&&(n.result=che(n.result,n.originPinyin))});break}}},Ahe=(e,t)=>{t.v&&e.forEach(n=>{n.isZh&&(n.result=n.result.replace(/ü/g,typeof t.v=="string"?t.v:"v"))})},yhe=(e,t,n)=>{if(t.multiple&&$u(n)===1){let i="";e=e.filter(o=>{const s=o.result!==i;return i=o.result,s})}return t.type==="array"?e.map(i=>i.result):t.type==="all"?e.map(i=>{const o=i.isZh?i.result:"",{initial:s,final:r}=qb(o,t.initialPattern),{head:a,body:l,tail:u}=x9(o);let c=[];return o!==""&&(c=[o].concat(bQ(i.origin,t.surname).filter(d=>d!==o))),{origin:i.origin,pinyin:o,initial:s,final:r,first:wQ(i.result,i.isZh),finalHead:a,finalBody:l,finalTail:u,num:Number(Q4(i.originPinyin)),isZh:i.isZh,polyphonic:c,inZhRange:!!dh.get(i.origin),result:i.result}}):e.map(i=>i.result).join(t.separator)},khe=(e,t)=>(t===!1&&e.forEach(n=>{n.origin==="一"?n.result=n.originPinyin="yī":n.origin==="不"&&(n.result=n.originPinyin="bù")}),e),bhe={pattern:"pinyin",toneType:"symbol",type:"string",multiple:!1,mode:"normal",removeNonZh:!1,nonZh:"spaced",v:!1,separator:" ",toneSandhi:!0,segmentit:2};function Kb(e,t){if(t=Object.assign(Object.assign({},bhe),t||{}),!phe(e))return e;if(e==="")return t.type==="array"||t.type==="all"?[]:"";t.surname===void 0&&(t.mode==="surname"?t.surname="all":t.surname="off"),t.type==="all"&&(t.pattern="pinyin"),t.pattern==="num"&&(t.toneType="none"),t.removeNonZh&&(t.nonZh="removed");let i=Array($u(e)),{list:o}=lhe(e,i,t.surname,t.segmentit,t.traditional);return o=khe(o,t.toneSandhi),o=mhe(o,t),LR(e,t)&&(o=LR(e,t)),ghe(o,t),vhe(o,t),Ahe(o,t),yhe(o,t,e)}var BS;(function(e){e[e.AllSegment=1]="AllSegment",e[e.AllArray=2]="AllArray",e[e.AllString=3]="AllString",e[e.PinyinSegment=4]="PinyinSegment",e[e.PinyinArray=5]="PinyinArray",e[e.PinyinString=6]="PinyinString",e[e.ZhSegment=7]="ZhSegment",e[e.ZhArray=8]="ZhArray",e[e.ZhString=9]="ZhString"})(BS||(BS={}));BS.AllSegment;const FS=[{name:"/new",desc:"commands.new.desc",noArgs:!0},{name:"/clear",desc:"commands.clear.desc",noArgs:!0},{name:"/login",desc:"commands.login.desc",noArgs:!0},{name:"/plan",desc:"commands.plan.desc"},{name:"/swarm",desc:"commands.swarm.desc"},{name:"/tower",desc:"commands.tower.desc"},{name:"/goal",desc:"commands.goal.desc"},{name:"/btw",desc:"commands.btw.desc",acceptsInput:!0},{name:"/compact",desc:"commands.compact.desc",acceptsInput:!0},{name:"/undo",desc:"commands.undo.desc",noArgs:!0},{name:"/fork",desc:"commands.fork.desc",noArgs:!0},{name:"/export",desc:"commands.export.desc",noArgs:!0},{name:"/status",desc:"commands.status.desc",noArgs:!0}];function RS(e){if(!e.startsWith("/"))return null;const t=e.indexOf(" ");return t===-1?{cmd:e,arg:""}:{cmd:e.slice(0,t),arg:e.slice(t+1)}}const Wc="skill:";function whe(e,t){const n=e.find(r=>r.name===t);if(n!==void 0)return n;const i=`/${Wc}${t.slice(1)}`,o=e.find(r=>r.name===i);if(o!==void 0)return o;if(!t.startsWith(`/${Wc}`))return;const s=t.slice(1+Wc.length);if(!(s.length===0||s.includes(" ")))return e.find(r=>r.isSkill===!0&&V4(r.name)===s)}function V4(e){const t=e.startsWith("/")?e.slice(1):e;return t.startsWith(Wc)?t.slice(Wc.length):t}function Che(e,t,n){for(const i of[`/${Wc}${t}`,`/${t}`]){if(e===i)return;if(e.startsWith(`${i} `))return e.slice(i.length+1).trim()||void 0}return(n??"").trim()||void 0}function CQ(e=[],t){const n=t?.towerEnabled===!0?FS:FS.filter(o=>o.name!=="/tower"),i=e.map(o=>({name:o.source==="builtin"?`/${o.name}`:`/${Wc}${o.name}`,desc:o.description,isSkill:!0,acceptsInput:!0}));return[...n,...i]}const PR=new Map;function SQ(e){let t=PR.get(e);if(!t){const n=Kb(e,{toneType:"none",type:"array"}),i=Kb(e,{pattern:"first",toneType:"none",type:"array"});t=She(e,n,i),PR.set(e,t)}return t}const OR={full:[],first:[],offsets:[],literal:[]};function She(e,t,n){if(t.length!==n.length)return OR;const i=[],o=[];let s=0;for(let r=0;r0&&e.slice(s,s+a.length).toLowerCase()===a.toLowerCase()?(o.push(!0),s+=a.length):(o.push(!1),s+=Array.from(e.slice(s))[0]?.length??0)}return i.push(s),s!==e.length?OR:{full:t,first:n,offsets:i,literal:o}}function DS(e,t,n,i){const o=e[t];let s=0,r=-1,a=-1,l=0,u=0;for(let f=0;f=0)return DS(i,"first",o,o+t.length);const s=i.full.join("").indexOf(t);if(!(s<0))return DS(i,"full",s,s+t.length)}function Mhe(e,t,n){const i=e.trim().replace(/^\//,"").toLowerCase();if(i==="")return{};const o=Ehe(t,i),s=Ihe(n,i);return{name:o?[o]:void 0,desc:s?[s]:void 0}}const The={keys:[{name:"name",weight:3},{name:"desc",weight:1},{name:"pinyinFull",weight:1},{name:"pinyinFirst",weight:1}],includeScore:!0,includeMatches:!0,ignoreLocation:!0,threshold:.4};function Bhe(e,t){const n=e.toLowerCase(),i=t.toLowerCase();return n===i?0:n.startsWith(i)?1:2}function $R(e){const t=[...e].sort((i,o)=>i[0]-o[0]),n=[];for(const i of t){const o=n[n.length-1];o&&i[0]<=o[1]?o[1]=Math.max(o[1],i[1]):n.push([...i])}return n}function Fhe(e,t){const n=[],i=[];for(const o of t??[])for(const[s,r]of o.indices)if(o.key==="name")n.push([s+1,r+2]);else if(o.key==="desc")i.push([s,r+1]);else if(o.key==="pinyinFirst"||o.key==="pinyinFull"){const a=DS(SQ(e.desc),o.key==="pinyinFirst"?"first":"full",s,r+1);a&&i.push(a)}return{name:n.length>0?$R(n):void 0,desc:i.length>0?$R(i):void 0}}function Rhe(e,t=FS,n=i=>i.desc){const i=e.trim().replace(/^\//,"");if(i==="")return t.map(s=>({item:s,ranges:{}}));const o=t.map((s,r)=>{const a=n(s),l=xhe(a);return{index:r,item:s,name:s.name.replace(/^\//,""),desc:a,pinyinFull:l.full,pinyinFirst:l.first}});return new Bfe(o,The).search(i).map(({item:s,score:r,matches:a})=>({doc:s,score:r??1,rank:Bhe(s.name,i),ranges:Fhe(s,a)})).sort((s,r)=>s.rank!==r.rank?s.rank-r.rank:s.score!==r.score?s.score-r.score:s.doc.index-r.doc.index).map(({doc:s,ranges:r})=>({item:s.item,ranges:r}))}function Dhe(e){const t=e.trim();if(t.length<2)return t;const n=t[0];return(n==='"'||n==="'")&&t[t.length-1]===n?t.slice(1,-1).trim():t}function Nhe(e,t,n,i,o){const s=n-o-(t.right+i),r=t.left-i-o,a=e>s&&r>s,l=Math.min(e,a?r:s);return{left:a?t.left-i-l:t.right+i,maxWidth:l,flipped:a}}let Lhe=0;function jR(e,t){const n=++Lhe;return e.pendingSwarmBySession[t]=n,n}function nE(e,t,n){return n===void 0||e.pendingSwarmBySession[t]!==n?!1:(delete e.pendingSwarmBySession[t],!0)}function NS(e,t,n){e.pendingSwarmBySession[t]===void 0&&(e.swarmModeBySession[t]=n)}function HR(e,t){const n=new Set(e.map(u=>u.id)),i=t.filter(u=>u.kind==="subagent"&&!n.has(u.id));if(i.length===0)return e;const o=new Map(e.map(u=>[u.id,u])),s=new Map(e.filter(u=>u.kind==="subagent"&&u.agentId!==void 0).map(u=>[u.agentId,u])),r=new Set,a=i.map(u=>{const c=u.backgroundTaskId!==void 0?o.get(u.backgroundTaskId):void 0,d=s.get(u.agentId??u.id),f=(d?.status==="running"&&c?.status!=="running"?d:c)??d;if(f===void 0)return u;r.add(f.id);const h=u.status==="running"&&f.status!=="running";return{...u,status:u.status==="running"?f.status:u.status,subagentPhase:h?f.status==="completed"?"completed":"failed":u.subagentPhase,completedAt:f.completedAt??u.completedAt,completedAtEstimated:f.completedAt!==void 0?void 0:u.completedAtEstimated,outputPreview:f.outputPreview??u.outputPreview,outputBytes:f.outputBytes??u.outputBytes,model:u.model??f.model,thinkingEffort:u.thinkingEffort??f.thinkingEffort,backgroundTaskId:f.id}});return[...e.filter(u=>!r.has(u.id)),...a]}const Phe="Report the current tower status: call TowerStatus and give a compact summary.",Ohe="Tear down the tower: call TowerTeardown and report what it did. It refuses to destroy dirty worktrees unless forced.";let zhe=0;function LS(e,t){const n=++zhe;return e.pendingTowerBySession[t]=n,n}function iE(e,t,n){return n===void 0||e.pendingTowerBySession[t]!==n?!1:(delete e.pendingTowerBySession[t],!0)}function PS(e,t,n){e.pendingTowerBySession[t]===void 0&&(e.towerModeBySession[t]=n)}function $he(){if(typeof navigator>"u")return!1;if(/Mac|iPod|iPhone|iPad/.test(navigator.platform))return!0;const e=navigator.userAgentData;return e?.platform==="macOS"||e?.platform==="iOS"}function jhe(e,t=$he()){return(t?e.metaKey&&!e.ctrlKey:e.ctrlKey&&!e.metaKey)&&!e.altKey&&!e.shiftKey&&(e.code==="KeyF"||e.key.toLowerCase()==="f")&&!e.defaultPrevented}const Hhe=new Map([["ς","σ"],["ß","ss"],["ſ","s"],["ff","ff"],["fi","fi"],["fl","fl"],["ffi","ffi"],["ffl","ffl"],["ſt","st"],["st","st"],["ʼn","ʼn"],["µ","μ"],["K","k"],["Å","å"],["Ω","ω"]]);function Uhe(e){return e==="pre"||e==="pre-wrap"||e==="break-spaces"?"preserve":e==="pre-line"?"pre-line":"collapse"}function Whe(e,t){if(t==="preserve")return{text:e,map:Array.from({length:e.length},(r,a)=>a)};const n=t==="collapse"?/[\t\n\f\r ]/:/[\t ]/;let i="";const o=[];let s=!1;for(let r=0;rUR(c.text)),i="\0";let o="";const s=[];for(let c=0;c0&&e[c].gapBefore&&(o+=i),s[c]=o.length,o+=n[c].folded;const r=Ghe(UR(t).folded);if(r===null)return;const a=new RegExp(r,"g");function l(c){let d=0,f=s.length-1,h=0;for(;d<=f;){const m=d+f>>1;s[m]<=c?(h=m,d=m+1):f=m-1}return h}let u;for(;;){const c=a.exec(o);if(c===null)return;const d=c.index,f=d+c[0].length-1,h=l(d),m=l(f),g=n[h].map[d-s[h]],v=n[m].map[f-s[m]],y={startSeg:h,startOffset:g.start,endSeg:m,endOffset:v.start+v.length};u!==void 0&&u.startSeg===y.startSeg&&u.startOffset===y.startOffset&&u.endSeg===y.endSeg&&u.endOffset===y.endOffset||(u=y,yield y)}}const Vhe=/[.*+?^${}()|[\]\\]/g;function Ghe(e){const t=[];let n=0;for(;n=Jhe)return{ranges:l,truncated:!0};l.push(f)}}return{ranges:l,truncated:!1}}const _Q="kimi-transcript-search",OS="kimi-transcript-search-current";function EQ(){return globalThis.CSS?.highlights??null}function r8(e,t){const n=EQ(),i=globalThis.Highlight;if(!n||!i)return;if(e.length===0){zS();return}const o=new i;for(const r of e)o.add(r);n.set(_Q,o);const s=e[t];if(s!==void 0){const r=new i;r.add(s),n.set(OS,r)}else n.delete(OS)}function zS(){const e=EQ();e?.delete(_Q),e?.delete(OS)}let IQ=null;function epe(e){e!==null&&(IQ=e)}let QR=0,rk=null;async function Zb(e){const t=++QR,n=(async()=>{const o=await e();t===QR&&epe(o)})(),i=(async()=>{await n,rk!==null&&rk.seq>t&&await rk.promise})();return rk={seq:t,promise:i},i}let MQ=null;function tpe(e){MQ=e}const npe=5e3;function ipe(e){return Promise.race([e(),new Promise(t=>{setTimeout(()=>t(null),npe)})])}function ak(){return`${IQ==="global"?"https://www.kimi.ai":"https://www.kimi.com"}/code?from=${M1?"kimi_code_desktop":"kimi_code_web"}`}function V2(){const e=MQ;if(e===null){window.open(ak(),"_blank","noopener");return}const t=()=>ipe(e);if(M1){Zb(t).then(()=>{window.open(ak(),"_blank","noopener")});return}const n=window.open("","_blank");if(n===null){window.open(ak(),"_blank","noopener");return}try{n.opener=null}catch{}Zb(t).then(()=>{try{n.location.href=ak()}catch{}})}function ope(e,t,n){if(e.length===0)return null;const i=new Set(e),o=t.filter(r=>i.has(r)),s=e.filter(r=>!t.includes(r));return s.length===0&&o.length===t.length?null:t.length===0&&n!==void 0?s.toSorted((r,a)=>(n.get(a)??Number.NEGATIVE_INFINITY)-(n.get(r)??Number.NEGATIVE_INFINITY)):[...s,...o]}function spe(e,t){const n=new Map(t.map((i,o)=>[i,o]));return e.toSorted((i,o)=>(n.get(i.id)??-1)-(n.get(o.id)??-1))}function rpe(e,t,n,i="before"){const o=e.indexOf(t),s=e.indexOf(n);if(o===-1||s===-1||o===s)return e;const r=[...e];r.splice(o,1);const a=o(t.get(i.id)??Number.NEGATIVE_INFINITY)-(t.get(n.id)??Number.NEGATIVE_INFINITY))}function lpe(e,t){let n=!1;const i={...e};for(const[o,s]of t)s>(i[o]??Number.NEGATIVE_INFINITY)&&(i[o]=s,n=!0);return{next:i,changed:n}}function upe(e,t){const n=new Map;for(const i of e){if(i.parentSessionId||i.archived)continue;const o=new Date(i.updatedAt).getTime();if(Number.isNaN(o))continue;const s=t(i);o>(n.get(s)??Number.NEGATIVE_INFINITY)&&n.set(s,o)}return n}function cpe(e,t){const n=new Map;for(const i of e){const o=t[i.id]??Number.NEGATIVE_INFINITY,s=i.lastOpenedAt?Date.parse(i.lastOpenedAt):Number.NaN,r=Number.isNaN(s)?Number.NEGATIVE_INFINITY:s;n.set(i.id,Math.max(o,r))}return n}function dpe(e,t){const n=Object.keys(e);if(!n.some(o=>!t.has(o)))return{next:e,changed:!1};const i={};for(const o of n)t.has(o)&&(i[o]=e[o]);return{next:i,changed:!0}}const fpe=5;function hpe(e,t,n,i=fpe){if(e.length<=i)return e;const o=e.slice(0,i);if(t&&!o.some(s=>s.id===t)){const s=e.find(r=>r.id===t);s&&(o[i-1]=s)}return o}const mf=6,gf=8,ppe=150,mpe=st({__name:"TooltipBubble",props:{target:{default:null},delegate:{default:null},text:{},placement:{default:"top"},maxWidth:{default:280},maxLines:{default:6}},setup(e){const t=e,n=V(),i=V(!1),o=V(!1),s=V({maxWidth:`${t.maxWidth}px`});let r,a=null,l,u=!1;function c(){if(t.target)return t.target;const I=t.delegate;return I?I.firstElementChild??I:null}function d(I){const F=n.value;if(!F)return;const E=I.getBoundingClientRect(),D=F.offsetWidth,j=F.offsetHeight,z=window.innerWidth,T=window.innerHeight;let N=t.placement;N==="top"&&E.top-mf-jT-gf?N="top":N==="left"&&E.left-mf-Dz-gf&&(N="left");let L=0,H=0;N==="top"?(L=E.top-mf-j,H=E.left+E.width/2-D/2):N==="bottom"?(L=E.bottom+mf,H=E.left+E.width/2-D/2):N==="left"?(L=E.top+E.height/2-j/2,H=E.left-mf-D):(L=E.top+E.height/2-j/2,H=E.right+mf),H=Math.min(Math.max(H,gf),z-gf-D),L=Math.min(Math.max(L,gf),T-gf-j),s.value={maxWidth:`${t.maxWidth}px`,top:`${Math.round(L)}px`,left:`${Math.round(H)}px`}}function f(){return Ob.value&&!FF(c())}function h(){if(!t.text||f())return;const I=c();I&&(window.clearTimeout(r),r=window.setTimeout(()=>{i.value=!0,o.value=!1,gt(()=>{d(I),o.value=!0})},ppe))}function m(){window.clearTimeout(r),u=!1,i.value=!1,o.value=!1}function g(I){u||XA(I)||(u=!0,h())}function v(I){!(I.target instanceof Element)||!I.target.matches(":focus-visible")||h()}function y(){m()}function A(I){return I instanceof Element?I.closest(".ui-tip"):null}function b(I){const F=t.delegate;if(F){if(A(I.target)!==F){m();return}u||XA(I)||(u=!0,h())}}function w(I){const F=t.delegate;if(!F)return;const E=I.relatedTarget;E instanceof Element&&F.contains(E)||m()}function _(I){!(I.target instanceof Element)||!I.target.matches(":focus-visible")||A(I.target)===t.delegate&&h()}function M(){m()}function B(){a&&(t.delegate?(a.removeEventListener("pointermove",b),a.removeEventListener("mouseout",w),a.removeEventListener("focusin",_),a.removeEventListener("focusout",M)):(a.removeEventListener("pointermove",g),a.removeEventListener("mouseleave",y),a.removeEventListener("focusin",v),a.removeEventListener("focusout",y)),a=null)}function C(){B(),l?.disconnect(),l=void 0;const I=t.target??t.delegate;I&&(a=I,t.delegate?(I.addEventListener("pointermove",b,{passive:!0}),I.addEventListener("mouseout",w),I.addEventListener("focusin",_),I.addEventListener("focusout",M),l=new MutationObserver(()=>{i.value&&m()}),l.observe(I,{childList:!0})):(I.addEventListener("pointermove",g,{passive:!0}),I.addEventListener("mouseleave",y),I.addEventListener("focusin",v),I.addEventListener("focusout",y)))}$e(()=>[t.target,t.delegate],()=>{m(),C()}),$e(Ob,I=>{I&&!FF(c())&&m()});function S(){i.value&&m()}return yn(()=>{U4(),C(),window.addEventListener("scroll",S,!0),window.addEventListener("resize",S)}),ni(()=>{window.clearTimeout(r),l?.disconnect(),B(),window.removeEventListener("scroll",S,!0),window.removeEventListener("resize",S)}),(I,F)=>i.value?(k(),de(Vs,{key:0,to:"body"},[x("div",{ref_key:"bubble",ref:n,class:De(["ui-tip__bubble",{positioned:o.value}]),style:an([s.value,{"--tip-lines":e.maxLines}]),role:"tooltip"},$(e.text),7)])):ne("",!0)}}),TQ=Et(mpe,[["__scopeId","data-v-eef56a69"]]),gpe=["type","disabled","aria-label"],vpe=st({__name:"IconButton",props:{size:{default:"md"},disabled:{type:Boolean},label:{},tooltip:{},type:{default:"button"}},setup(e,{expose:t}){const n=V();return t({el:n}),(i,o)=>(k(),R("button",{ref_key:"el",ref:n,class:De(["ui-icon-button",`ui-icon-button--${e.size}`]),type:e.type,disabled:e.disabled,"aria-label":e.label},[On(i.$slots,"default",{},void 0,!0),e.tooltip?(k(),de(TQ,{key:0,target:n.value??null,text:e.tooltip},null,8,["target","text"])):ne("",!0)],10,gpe))}}),rn=Et(vpe,[["__scopeId","data-v-279bf6ac"]]),Ape={class:"ui-action-toast-host"},ype={class:"ui-action-toast__body"},kpe=st({__name:"ActionToast",props:{duration:{default:8e3},dismissLabel:{},dismissToken:{}},emits:["dismiss"],setup(e,{emit:t}){const n=e,i=t,{t:o}=I1();let s=null,r=0,a=0;function l(d){s=setTimeout(()=>i("dismiss",n.dismissToken),d),r=Date.now()+d}function u(){s!==null&&(clearTimeout(s),s=null,a=Math.max(0,r-Date.now()))}function c(){s===null&&l(a)}return l(n.duration),Tn(()=>{s!==null&&clearTimeout(s)}),(d,f)=>(k(),R("div",Ape,[x("div",{class:"ui-action-toast",role:"status",onPointerenter:u,onPointerleave:c},[x("span",ype,[On(d.$slots,"default")]),K(rn,{class:"ui-action-toast__close",size:"sm",label:e.dismissLabel??p(o)("common.dismiss"),tooltip:e.dismissLabel??p(o)("common.dismiss"),onClick:f[0]||(f[0]=h=>i("dismiss",e.dismissToken))},{default:le(()=>[K(_e,{name:"close",size:"sm"})]),_:1},8,["label","tooltip"])],32)]))}}),bpe=Et(kpe,[["__scopeId","data-v-5464eaec"]]),wpe={key:0,width:"36",height:"36",viewBox:"0 0 36 36",fill:"none",stroke:"var(--color-success)","stroke-width":"2","aria-hidden":"true"},Cpe={key:1,width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",stroke:"var(--color-danger)","stroke-width":"1.5","aria-hidden":"true"},Spe={key:2,width:"28",height:"28",viewBox:"0 0 28 28",fill:"none",stroke:"var(--color-warning)","stroke-width":"1.5","aria-hidden":"true"},Hf=st({__name:"AuthStateIcon",props:{kind:{}},setup(e){return(t,n)=>e.kind==="success"?(k(),R("svg",wpe,[...n[0]||(n[0]=[x("circle",{cx:"18",cy:"18",r:"15"},null,-1),x("polyline",{points:"10,18 15,24 26,12"},null,-1)])])):e.kind==="expired"?(k(),R("svg",Cpe,[...n[1]||(n[1]=[x("circle",{cx:"14",cy:"14",r:"12"},null,-1),x("line",{x1:"14",y1:"8",x2:"14",y2:"15"},null,-1),x("circle",{cx:"14",cy:"19",r:"1.2",fill:"var(--color-danger)"},null,-1)])])):(k(),R("svg",Spe,[...n[2]||(n[2]=[x("path",{d:"M14 3 L26 24 H2 Z"},null,-1),x("line",{x1:"14",y1:"12",x2:"14",y2:"18"},null,-1),x("circle",{cx:"14",cy:"21.5",r:"1",fill:"var(--color-warning)"},null,-1)])]))}}),xpe={key:0,class:"ui-badge__dot","aria-hidden":"true"},_pe=st({__name:"Badge",props:{variant:{default:"neutral"},size:{default:"md"},dot:{type:Boolean}},setup(e){return(t,n)=>(k(),R("span",{class:De(["ui-badge",[`ui-badge--${e.variant}`,`ui-badge--${e.size}`]])},[e.dot?(k(),R("span",xpe)):ne("",!0),On(t.$slots,"default",{},void 0,!0)],2))}}),ma=Et(_pe,[["__scopeId","data-v-fae6af51"]]),Epe={class:"ui-banner__icon","aria-hidden":"true"},Ipe={class:"ui-banner__text"},Mpe=st({__name:"Banner",props:{variant:{default:"info"}},setup(e){return(t,n)=>(k(),R("div",{class:De(["ui-banner",`ui-banner--${e.variant}`]),role:"status"},[x("span",Epe,[On(t.$slots,"icon",{},()=>[e.variant==="info"?(k(),de(_e,{key:0,name:"info",size:"md"})):(k(),de(_e,{key:1,name:"alert-triangle",size:"md"}))],!0)]),x("span",Ipe,[On(t.$slots,"default",{},void 0,!0)])],2))}}),Sp=Et(Mpe,[["__scopeId","data-v-8fb5232f"]]),Tpe=["aria-label"],Bpe=st({__name:"Spinner",props:{size:{default:"md"},label:{}},setup(e){const{t}=I1(),n=V(null);let i,o;function s(){const r=n.value;if(r){if(o?.matches){i?.cancel(),i=void 0;return}i||(i=r.animate([{transform:"rotate(0deg)"},{transform:"rotate(360deg)"}],{duration:850,iterations:1/0}),i.startTime=0)}}return yn(()=>{const r=n.value;!r||typeof r.animate!="function"||(o=window.matchMedia("(prefers-reduced-motion: reduce)"),o.addEventListener("change",s),s())}),ni(()=>{o?.removeEventListener("change",s),o=void 0,i?.cancel(),i=void 0}),(r,a)=>(k(),R("span",{ref_key:"boxRef",ref:n,class:De(["ui-spinner",`ui-spinner--${e.size}`]),role:"status","aria-label":e.label??p(t)("common.loading")},[...a[0]||(a[0]=[x("svg",{class:"ui-spinner__svg",viewBox:"0 0 24 24","aria-hidden":"true"},[x("circle",{class:"ui-spinner__track",cx:"12",cy:"12",r:"9"}),x("circle",{class:"ui-spinner__arc",cx:"12",cy:"12",r:"9"})],-1)])],10,Tpe))}}),xi=Et(Bpe,[["__scopeId","data-v-bf7852f3"]]),Fpe=["type","disabled"],Rpe={class:"ui-button__content"},Dpe=st({__name:"Button",props:{variant:{default:"primary"},size:{default:"md"},disabled:{type:Boolean},loading:{type:Boolean},type:{default:"button"}},setup(e){return(t,n)=>(k(),R("button",{class:De(["ui-button",[`ui-button--${e.variant}`,`ui-button--${e.size}`,{"is-loading":e.loading}]]),type:e.type,disabled:e.disabled||e.loading},[e.loading?(k(),de(xi,{key:0,size:"sm",class:"ui-button__spinner"})):ne("",!0),x("span",Rpe,[On(t.$slots,"default",{},void 0,!0)])],10,Fpe))}}),nn=Et(Dpe,[["__scopeId","data-v-e04dd6a0"]]),Npe={key:0,class:"ui-card__head"},Lpe={class:"ui-card__body"},Ppe={key:1,class:"ui-card__foot"},Ope=st({__name:"Card",props:{elevated:{type:Boolean,default:!1},size:{default:"md"}},setup(e){return(t,n)=>(k(),R("div",{class:De(["ui-card",[{"is-elevated":e.elevated},`ui-card--${e.size}`]])},[t.$slots.head?(k(),R("div",Npe,[On(t.$slots,"head",{},void 0,!0)])):ne("",!0),x("div",Lpe,[On(t.$slots,"default",{},void 0,!0)]),t.$slots.foot?(k(),R("div",Ppe,[On(t.$slots,"foot",{},void 0,!0)])):ne("",!0)],2))}}),BQ=Et(Ope,[["__scopeId","data-v-388bad3e"]]),zpe={class:"ctx-ring",viewBox:"0 0 20 20","aria-hidden":"true"},$pe=["stroke-dasharray","stroke-dashoffset"],a8=7,jpe=st({__name:"ContextRing",props:{pct:{}},setup(e){const t=e,n=2*Math.PI*a8;return(i,o)=>(k(),R("svg",zpe,[x("circle",{class:"ctx-ring-track",cx:"10",cy:"10",r:a8,fill:"none","stroke-width":"2.5"}),x("circle",{class:"ctx-ring-fill",cx:"10",cy:"10",r:a8,fill:"none","stroke-width":"2.5","stroke-linecap":"round","stroke-dasharray":`${n}`,"stroke-dashoffset":`${n*(1-t.pct/100)}`},null,8,$pe)]))}}),Hpe=Et(jpe,[["__scopeId","data-v-5a6777b1"]]),xr=V(0),bm=V(0),Upe=["aria-label"],Wpe={key:0,class:"ui-dialog__head"},Qpe={class:"ui-dialog__titles"},Vpe={key:0,class:"ui-dialog__title"},Gpe={key:1,class:"ui-dialog__desc"},qpe={class:"ui-dialog__body"},Kpe={key:1,class:"ui-dialog__foot"},Zpe='a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])',Ype=st({__name:"Dialog",props:{open:{type:Boolean},title:{},ariaLabel:{},description:{},closeOnOverlay:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0},size:{default:"md"},height:{default:"auto"},padded:{type:Boolean,default:!0},hideClose:{type:Boolean},level:{default:"raised"},initialFocus:{},focusOnOpen:{type:Boolean,default:!0}},emits:["update:open","close"],setup(e,{emit:t}){const n=e,i=t,{t:o}=I1(),s=V(null);let r=null;function a(){i("update:open",!1),i("close")}function l(){return s.value?Array.from(s.value.querySelectorAll(Zpe)):[]}function u(){const{initialFocus:f}=n;return f?typeof f=="function"?f()??null:typeof f=="string"?s.value?.querySelector(f)??null:s.value?.contains(f)?f:null:null}function c(f){if(!n.open)return;if(f.key==="Escape"&&n.closeOnEsc){f.preventDefault(),a();return}if(f.key!=="Tab")return;const h=l(),m=h[0],g=h[h.length-1];if(!m||!g){f.preventDefault(),s.value?.focus();return}const v=document.activeElement;f.shiftKey&&v===m?(f.preventDefault(),g.focus()):!f.shiftKey&&v===g&&(f.preventDefault(),m.focus())}function d(f){n.closeOnOverlay&&f.target===f.currentTarget&&a()}return $e(()=>n.open,async f=>{if(f){if(xr.value+=1,r=document.activeElement,n.focusOnOpen){await gt();const h=u(),m=l();(h??m[0]??s.value)?.focus()}}else xr.value=Math.max(0,xr.value-1),r instanceof HTMLElement&&(r.focus(),r=null)},{immediate:!0}),typeof window<"u"&&window.addEventListener("keydown",c),ni(()=>{typeof window<"u"&&window.removeEventListener("keydown",c),n.open&&(xr.value=Math.max(0,xr.value-1),r instanceof HTMLElement&&r.focus())}),(f,h)=>(k(),de(Vs,{to:"body"},[e.open?(k(),R("div",{key:0,class:"ui-dialog__overlay",onMousedown:d},[x("div",{ref_key:"panel",ref:s,class:De(["ui-dialog",[`ui-dialog--${e.size}`,{"ui-dialog--flush":!e.padded,"ui-dialog--fixed-height":e.height==="fixed","ui-dialog--grouped":e.level==="grouped"}]]),role:"dialog","aria-modal":"true","aria-label":e.ariaLabel??e.title,tabindex:"-1"},[e.title||f.$slots.head?(k(),R("div",Wpe,[On(f.$slots,"head",{},()=>[x("div",Qpe,[e.title?(k(),R("div",Vpe,$(e.title),1)):ne("",!0),e.description?(k(),R("div",Gpe,$(e.description),1)):ne("",!0)])],!0),e.hideClose?ne("",!0):(k(),de(rn,{key:0,class:"ui-dialog__close",size:"sm",label:p(o)("common.close"),tooltip:p(o)("common.close"),onClick:a},{default:le(()=>[K(_e,{name:"close",size:"md"})]),_:1},8,["label","tooltip"]))])):ne("",!0),x("div",qpe,[On(f.$slots,"default",{},void 0,!0)]),f.$slots.foot?(k(),R("div",Kpe,[On(f.$slots,"foot",{},void 0,!0)])):ne("",!0)],10,Upe)],32)):ne("",!0)]))}}),Dh=Et(Ype,[["__scopeId","data-v-87c1966f"]]),Jpe={class:"ui-empty"},Xpe={key:0,class:"ui-empty__icon","aria-hidden":"true"},e1e={key:1,class:"ui-empty__title"},t1e={key:2,class:"ui-empty__hint"},n1e=st({__name:"EmptyState",props:{title:{},hint:{}},setup(e){return(t,n)=>(k(),R("div",Jpe,[t.$slots.icon?(k(),R("span",Xpe,[On(t.$slots,"icon",{},void 0,!0)])):ne("",!0),e.title?(k(),R("div",e1e,$(e.title),1)):ne("",!0),e.hint?(k(),R("div",t1e,$(e.hint),1)):ne("",!0),On(t.$slots,"default",{},void 0,!0)]))}}),FQ=Et(n1e,[["__scopeId","data-v-66c019cd"]]),i1e={key:0,class:"ui-field__label"},o1e={key:1,class:"ui-field__error"},s1e={key:2,class:"ui-field__hint"},r1e=st({__name:"Field",props:{label:{},hint:{},error:{}},setup(e){return(t,n)=>(k(),R("div",{class:De(["ui-field",{"has-error":!!e.error}])},[e.label?(k(),R("label",i1e,$(e.label),1)):ne("",!0),On(t.$slots,"default",{},void 0,!0),e.error?(k(),R("span",o1e,$(e.error),1)):e.hint?(k(),R("span",s1e,$(e.hint),1)):ne("",!0)],2))}}),a1e=Et(r1e,[["__scopeId","data-v-a6fe84a4"]]),l1e=["type","value","placeholder","disabled","readonly"],u1e=st({__name:"Input",props:{modelValue:{},size:{default:"md"},type:{default:"text"},placeholder:{},disabled:{type:Boolean},readonly:{type:Boolean},error:{type:Boolean}},emits:["update:modelValue","focus","blur"],setup(e,{expose:t,emit:n}){const i=n,o=V();function s(l){i("update:modelValue",l.target.value)}function r(){o.value?.focus()}function a(){o.value?.select()}return t({focus:r,select:a,el:o}),(l,u)=>(k(),R("input",{ref_key:"el",ref:o,class:De(["ui-input",[`ui-input--${e.size}`,{"has-error":e.error}]]),type:e.type,value:e.modelValue,placeholder:e.placeholder,disabled:e.disabled,readonly:e.readonly,onInput:s,onFocus:u[0]||(u[0]=c=>l.$emit("focus",c)),onBlur:u[1]||(u[1]=c=>l.$emit("blur",c))},null,42,l1e))}}),js=Et(u1e,[["__scopeId","data-v-3093c190"]]),c1e={class:"ui-kbd"},d1e=st({__name:"Kbd",props:{keys:{}},setup(e){return(t,n)=>(k(),R("span",c1e,[(k(!0),R(Be,null,_t(e.keys,i=>(k(),R("kbd",{key:i,class:"ui-kbd__key"},$(i),1))),128))]))}}),zd=Et(d1e,[["__scopeId","data-v-f33c235d"]]),f1e=["href","target","rel"],h1e=st({__name:"Link",props:{href:{},variant:{default:"default"},external:{type:Boolean}},setup(e){return(t,n)=>e.href?(k(),R("a",{key:0,class:De(["ui-link",`ui-link--${e.variant}`]),href:e.href,target:e.external?"_blank":void 0,rel:e.external?"noopener noreferrer":void 0},[On(t.$slots,"default",{},void 0,!0)],10,f1e)):(k(),R("span",{key:1,class:De(["ui-link",`ui-link--${e.variant}`])},[On(t.$slots,"default",{},void 0,!0)],2))}}),p1e=Et(h1e,[["__scopeId","data-v-2c379b58"]]),m1e=["role"],g1e=st({__name:"Menu",props:{role:{default:"menu"}},setup(e,{expose:t}){const n=V();t({el:n});let i;return yn(()=>{n.value&&(i=bW(n.value))}),ni(()=>i?.()),(o,s)=>(k(),R("div",{ref_key:"el",ref:n,class:"ui-menu",role:e.role},[On(o.$slots,"default",{},void 0,!0)],8,m1e))}}),us=Et(g1e,[["__scopeId","data-v-a8172c5d"]]),v1e={key:0,class:"ui-menu-sep",role:"separator"},A1e=["role","disabled"],y1e=st({__name:"MenuItem",props:{active:{type:Boolean},danger:{type:Boolean},disabled:{type:Boolean},separator:{type:Boolean},size:{default:"md"},role:{default:"menuitem"}},emits:["click"],setup(e){return(t,n)=>e.separator?(k(),R("div",v1e)):(k(),R("button",{key:1,class:De(["ui-menu-item",[`ui-menu-item--${e.size}`,{"is-active":e.active,"is-danger":e.danger}]]),type:"button",role:e.role,disabled:e.disabled,onClick:n[0]||(n[0]=i=>t.$emit("click",i))},[On(t.$slots,"default",{},void 0,!0)],10,A1e))}}),Kt=Et(y1e,[["__scopeId","data-v-6cbd2f47"]]),k1e=st({__name:"Tooltip",props:{text:{},placement:{default:"top"},maxWidth:{default:280},maxLines:{default:6}},setup(e){const t=V();return(n,i)=>(k(),R(Be,null,[x("span",{ref_key:"trigger",ref:t,class:"ui-tip"},[On(n.$slots,"default",{},void 0,!0)],512),K(TQ,{delegate:t.value??null,text:e.text,placement:e.placement,"max-width":e.maxWidth,"max-lines":e.maxLines},null,8,["delegate","text","placement","max-width","max-lines"])],64))}}),Mn=Et(k1e,[["__scopeId","data-v-4f57efde"]]),b1e={class:"ui-panel-header__title"},w1e={key:0,class:"ui-panel-header__sub"},C1e=st({__name:"PanelHeader",props:{title:{},titleTooltip:{},subtitle:{},closable:{type:Boolean,default:!0},closeLabel:{},closeIcon:{default:"close"},wrap:{type:Boolean}},emits:["close"],setup(e){const{t}=I1();return(n,i)=>(k(),R("div",{class:De(["ui-panel-header",{wrap:e.wrap}])},[On(n.$slots,"leading",{},void 0,!0),e.title?(k(),de(Mn,{key:0,text:e.titleTooltip??e.title},{default:le(()=>[x("span",b1e,$(e.title),1)]),_:1},8,["text"])):ne("",!0),K(Mn,{text:e.subtitle},{default:le(()=>[e.subtitle?(k(),R("span",w1e,$(e.subtitle),1)):ne("",!0)]),_:1},8,["text"]),On(n.$slots,"default",{},void 0,!0),e.closable?(k(),de(rn,{key:1,class:"ui-panel-header__close",size:"sm",label:e.closeLabel??p(t)("common.close"),tooltip:e.closeLabel??p(t)("common.close"),onClick:i[0]||(i[0]=o=>n.$emit("close"))},{default:le(()=>[K(_e,{name:e.closeIcon,size:"sm"},null,8,["name"])]),_:1},8,["label","tooltip"])):ne("",!0)],2))}}),Yb=Et(C1e,[["__scopeId","data-v-bb2b5e64"]]),S1e=["disabled","aria-pressed"],x1e=st({__name:"Pill",props:{clickable:{type:Boolean,default:!0},active:{type:Boolean},disabled:{type:Boolean},ariaPressed:{type:Boolean}},emits:["click"],setup(e){return(t,n)=>e.clickable?(k(),R("button",{key:0,class:De(["ui-pill",{"is-active":e.active}]),type:"button",disabled:e.disabled,"aria-pressed":e.ariaPressed,onClick:n[0]||(n[0]=i=>t.$emit("click",i))},[On(t.$slots,"default",{},void 0,!0)],10,S1e)):(k(),R("span",{key:1,class:De(["ui-pill",{"is-active":e.active}])},[On(t.$slots,"default",{},void 0,!0)],2))}}),RQ=Et(x1e,[["__scopeId","data-v-9fe3e0c7"]]),_1e=st({__name:"ScrollArea",props:{orientation:{default:"vertical"},hideDelay:{default:600}},setup(e,{expose:t}){const n=e,i=V(null),o=V(null),s=V(!1),r=V({overflow:!1,size:0,offset:0}),a=V({overflow:!1,size:0,offset:0}),l=V(null);let u=null,c=null,d=null;const f=P(()=>({overflowX:n.orientation==="vertical"?"hidden":"auto",overflowY:n.orientation==="horizontal"?"hidden":"auto"})),h=P(()=>({height:`${r.value.size}px`,transform:`translateY(${r.value.offset}px)`})),m=P(()=>({width:`${a.value.size}px`,transform:`translateX(${a.value.offset}px)`}));function g(S,I,F){if(!(I>S+1)||S<=0)return{overflow:!1,size:0,offset:0};const D=Math.max(0,S-4),j=Math.min(D,Math.max(24,D*S/I)),z=Math.max(0,D-j),T=Math.max(1,I-S);return{overflow:!0,size:j,offset:z*F/T}}function v(){const S=o.value;if(!S)return;const I=g(S.clientHeight,S.scrollHeight,S.scrollTop),F=g(S.clientWidth,S.scrollWidth,S.scrollLeft);(I.overflow!==r.value.overflow||I.size!==r.value.size||I.offset!==r.value.offset)&&(r.value=I),(F.overflow!==a.value.overflow||F.size!==a.value.size||F.offset!==a.value.offset)&&(a.value=F)}function y(){u!==null&&clearTimeout(u),u=null}function A(){y(),s.value=!0}function b(){y(),!(l.value||i.value?.matches(":hover, :focus-within"))&&(u=setTimeout(()=>{s.value=!1,u=null},n.hideDelay))}function w(){v(),A(),b()}function _(S,I){const F=o.value;F&&(I.preventDefault(),A(),l.value={axis:S,pointerId:I.pointerId,startPointer:S==="vertical"?I.clientY:I.clientX,startScroll:S==="vertical"?F.scrollTop:F.scrollLeft},I.currentTarget.setPointerCapture(I.pointerId))}function M(S){const I=l.value,F=o.value;if(!I||I.pointerId!==S.pointerId||!F)return;const E=I.axis==="vertical"?S.clientY:S.clientX,D=I.axis==="vertical"?F.clientHeight:F.clientWidth,j=I.axis==="vertical"?F.scrollHeight:F.scrollWidth,z=I.axis==="vertical"?r.value.size:a.value.size,T=Math.max(1,D-4-z),N=(E-I.startPointer)*(j-D)/T;I.axis==="vertical"?F.scrollTop=I.startScroll+N:F.scrollLeft=I.startScroll+N}function B(S){!l.value||l.value.pointerId!==S.pointerId||(l.value=null,b())}function C(){const S=o.value;if(!(!S||!c))for(const I of S.children)c.observe(I)}return yn(async()=>{await gt();const S=o.value;S&&(c=new ResizeObserver(v),c.observe(S),C(),d=new MutationObserver(()=>{C(),v()}),d.observe(S,{childList:!0,subtree:!0,characterData:!0}),v())}),ni(()=>{y(),c?.disconnect(),d?.disconnect()}),t({viewport:o,updateMetrics:v}),(S,I)=>(k(),R("div",{ref_key:"root",ref:i,class:"ui-scroll-area",onPointerenter:A,onPointerleave:b,onFocusin:A,onFocusout:b},[x("div",{ref_key:"viewport",ref:o,class:"ui-scroll-area__viewport",style:an(f.value),tabindex:"0",onScroll:w},[On(S.$slots,"default",{},void 0,!0)],36),r.value.overflow&&n.orientation!=="horizontal"?(k(),R("div",{key:0,class:De(["ui-scroll-area__bar ui-scroll-area__bar--vertical",{"is-visible":s.value}]),"aria-hidden":"true"},[x("span",{class:"ui-scroll-area__thumb",style:an(h.value),onPointerdown:I[0]||(I[0]=F=>_("vertical",F)),onPointermove:M,onPointerup:B,onPointercancel:B},null,36)],2)):ne("",!0),a.value.overflow&&n.orientation!=="vertical"?(k(),R("div",{key:1,class:De(["ui-scroll-area__bar ui-scroll-area__bar--horizontal",{"is-visible":s.value}]),"aria-hidden":"true"},[x("span",{class:"ui-scroll-area__thumb",style:an(m.value),onPointerdown:I[1]||(I[1]=F=>_("horizontal",F)),onPointermove:M,onPointerup:B,onPointercancel:B},null,36)],2)):ne("",!0)],544))}}),VR=Et(_1e,[["__scopeId","data-v-797269ad"]]),E1e=["data-icon","aria-selected","onClick"],I1e=st({__name:"SegmentedControl",props:{modelValue:{},options:{},size:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=t;return(i,o)=>(k(),R("div",{class:De(["ui-seg",`ui-seg--${e.size??"md"}`]),role:"tablist"},[(k(!0),R(Be,null,_t(e.options,s=>(k(),R("button",{key:s.value,class:De(["ui-seg__item",{"is-on":s.value===e.modelValue}]),"data-icon":s.icon,type:"button",role:"tab","aria-selected":s.value===e.modelValue,onClick:r=>n("update:modelValue",s.value)},[s.icon?(k(),de(_e,{key:0,class:"ui-seg__icon",name:s.icon,size:"sm"},null,8,["name"])):ne("",!0),s.swatch?(k(),R("span",{key:1,class:"ui-seg__swatch",style:an({backgroundColor:s.swatch})},null,4)):ne("",!0),ze(" "+$(s.label),1)],10,E1e))),128))],2))}}),Hs=Et(I1e,[["__scopeId","data-v-0adb1656"]]);function M1e(e){const{anchor:t,menuHeight:n,viewportWidth:i,viewportHeight:o,gap:s,margin:r}=e,a=o-r-(t.bottom+s),l=t.top-s-r,u=aa,c=u?l:a,d=Math.min(t.width,Math.max(0,i-2*r)),f=Math.min(Math.max(t.left,r),Math.max(r,i-r-d)),h={left:`${Math.round(f)}px`,width:`${Math.round(d)}px`};return cn.options.findIndex(ee=>String(ee.value)===String(n.modelValue??""))),w=P(()=>n.options[b.value]),_=P(()=>w.value?.label??n.placeholder);function M(ee,X){l.value[X]=ee instanceof HTMLElement?ee:null}function B(){const ee=a.value,X=l.value[c.value];!ee||!X||(ee.scrollTop=X.offsetTop-(ee.clientHeight-X.offsetHeight)/2)}function C(){const ee=r.value,X=a.value;if(!ee||!X)return;X.style.maxHeight="";const ge=ee.getBoundingClientRect();f.value=M1e({anchor:ge,menuHeight:X.offsetHeight,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,gap:v,margin:y}).style}function S(){n.disabled||u.value||(u.value=!0,c.value=b.value>=0?b.value:n.options.findIndex(ee=>!ee.disabled),v=A("--space-1",GR),y=A("--space-2",qR),Y(),gt(()=>{C(),gt(B)}))}function I({restoreFocus:ee=!1}={}){u.value&&(u.value=!1,Z(),ee&>(()=>r.value?.focus()))}function F(){u.value?I():S()}function E(ee){ee.disabled||(String(ee.value)!==String(n.modelValue??"")&&i("update:modelValue",ee.value),I({restoreFocus:!0}))}function D(ee){if(u.value||S(),n.options.length===0)return;let X=c.value;for(let ge=0;gege.disabled?-1:q).filter(ge=>ge>=0);c.value=ee.key==="Home"?X[0]??-1:X.at(-1)??-1,gt(B)}}function z(ee){m=u.value;const X=ee.target;s.value?.contains(X)||a.value?.contains(X)||I()}function T(){const ee=g;m=!1,g=!1,Z(),ee&&u.value&&r.value?.focus()}function N(){g=!0}function L(ee){const X=ee.relatedTarget;X instanceof Node&&(s.value?.contains(X)||a.value?.contains(X))||requestAnimationFrame(()=>{if(!u.value||g)return;const ge=document.activeElement;ge&&(s.value?.contains(ge)||a.value?.contains(ge))||I()})}function H(ee){u.value&&(a.value?.contains(ee.target)||C())}function O(){u.value&&C()}$e(()=>n.options.length,()=>{u.value&>(C)});function Q(ee){(ee.type==="touchmove"?u.value||m:u.value)&&T1e(ee.target,a.value)&&ee.preventDefault()}function Y(){h||(h=!0,document.addEventListener("wheel",Q,{capture:!0,passive:!1}),document.addEventListener("touchmove",Q,{capture:!0,passive:!1}))}function W(){h&&(h=!1,document.removeEventListener("wheel",Q,{capture:!0}),document.removeEventListener("touchmove",Q,{capture:!0}))}function Z(){u.value||m||W()}return yn(()=>{document.addEventListener("pointerdown",z,{passive:!0}),document.addEventListener("pointerup",T,{passive:!0}),document.addEventListener("pointercancel",T,{passive:!0}),document.addEventListener("scroll",H,!0),window.addEventListener("resize",O)}),Tn(()=>{m=!1,W(),document.removeEventListener("pointerdown",z),document.removeEventListener("pointerup",T),document.removeEventListener("pointercancel",T),document.removeEventListener("scroll",H,!0),window.removeEventListener("resize",O)}),(ee,X)=>(k(),R("div",{ref_key:"rootRef",ref:s,class:De(["ui-select",[`ui-select--${e.size}`,{"has-error":e.error,"is-open":u.value,"is-disabled":e.disabled}]])},[x("button",fi({ref_key:"triggerRef",ref:r},p(o),{class:"ui-select__trigger",type:"button",role:"combobox","aria-controls":d,"aria-expanded":u.value,"aria-haspopup":"listbox",disabled:e.disabled,onClick:F,onKeydown:j,onFocusout:L}),[x("span",{class:De(["ui-select__value",{"is-placeholder":!w.value}])},[w.value?.icon?(k(),R("img",{key:0,class:"ui-select__icon",src:w.value.icon,alt:""},null,8,F1e)):ne("",!0),x("span",R1e,$(_.value),1)],2),K(_e,{class:"ui-select__chevron",name:"chevron-down",size:"sm"})],16,B1e),(k(),de(Vs,{to:"body"},[u.value?(k(),R("div",{key:0,id:d,ref_key:"listRef",ref:a,class:"ui-select__menu",style:an(f.value),role:"listbox",onPointerdown:N,onFocusout:L},[(k(!0),R(Be,null,_t(e.options,(ge,q)=>(k(),R(Be,{key:`${ge.group??""}:${ge.value}`},[ge.group&&ge.group!==e.options[q-1]?.group?(k(),R("div",D1e,$(ge.group),1)):ne("",!0),x("button",{ref_for:!0,ref:pe=>M(pe,q),class:De(["ui-select__option",{"is-selected":q===b.value,"is-active":q===c.value}]),type:"button",role:"option","aria-selected":q===b.value,disabled:ge.disabled,onMouseenter:pe=>c.value=q,onClick:pe=>E(ge)},[K(_e,{class:"ui-select__check",name:"check",size:"sm"}),ge.icon?(k(),R("img",{key:0,class:"ui-select__icon ui-select__icon--option",src:ge.icon,alt:""},null,8,L1e)):ne("",!0),x("span",null,$(ge.label),1)],42,N1e)],64))),128))],36)):ne("",!0)]))],2))}}),$S=Et(P1e,[["__scopeId","data-v-e7628e92"]]),O1e=st({__name:"StatusDot",props:{status:{}},setup(e){const t=e;function n(o){switch(o){case"ok":case"done":case"completed":case"success":return"ok";case"error":case"failed":case"fail":case"danger":return"error";case"running":case"run":case"working":case"in_progress":case"active":return"running";case"suspended":return"suspended";default:return"idle"}}const i=P(()=>n(t.status));return(o,s)=>(k(),R("span",{class:De(["kw-dot",`kw-dot--${i.value}`]),"aria-hidden":"true"},null,2))}}),Dl=Et(O1e,[["__scopeId","data-v-ddf97fc4"]]),z1e=["aria-checked","aria-label","disabled"],$1e=st({__name:"Switch",props:{modelValue:{type:Boolean},disabled:{type:Boolean},label:{}},emits:["update:modelValue"],setup(e,{emit:t}){const n=t;return(i,o)=>(k(),R("button",{class:De(["ui-switch",{"is-on":e.modelValue}]),type:"button",role:"switch","aria-checked":e.modelValue,"aria-label":e.label,disabled:e.disabled,onClick:o[0]||(o[0]=s=>n("update:modelValue",!e.modelValue))},[...o[1]||(o[1]=[x("span",{class:"ui-switch__thumb"},null,-1)])],10,z1e))}}),Du=Et($1e,[["__scopeId","data-v-18b9b12f"]]),j1e=["value","rows","placeholder","disabled","readonly"],H1e=st({__name:"Textarea",props:{modelValue:{},rows:{default:3},placeholder:{},disabled:{type:Boolean},readonly:{type:Boolean},error:{type:Boolean},resize:{type:Boolean,default:!0}},emits:["update:modelValue","focus","blur"],setup(e,{expose:t,emit:n}){const i=n;function o(r){i("update:modelValue",r.target.value)}const s=V(null);return t({el:s}),(r,a)=>(k(),R("textarea",{ref_key:"textareaRef",ref:s,class:De(["ui-textarea",{"has-error":e.error,"no-resize":!e.resize}]),value:e.modelValue,rows:e.rows,placeholder:e.placeholder,disabled:e.disabled,readonly:e.readonly,onInput:o,onFocus:a[0]||(a[0]=l=>r.$emit("focus",l)),onBlur:a[1]||(a[1]=l=>r.$emit("blur",l))},null,42,j1e))}}),U1e=Et(H1e,[["__scopeId","data-v-1da4a9a7"]]),W1e={class:"ui-toast__icon","aria-hidden":"true"},Q1e={class:"ui-toast__body"},V1e={class:"ui-toast__title"},G1e={key:0,class:"ui-toast__msg"},q1e=st({__name:"Toast",props:{variant:{default:"info"},title:{},message:{},dismissLabel:{}},emits:["dismiss"],setup(e){const{t}=I1();return(n,i)=>(k(),R("div",{class:De(["ui-toast",`ui-toast--${e.variant}`])},[x("span",W1e,[On(n.$slots,"icon",{},()=>[e.variant==="success"?(k(),de(_e,{key:0,name:"check"})):e.variant==="danger"?(k(),de(_e,{key:1,name:"close"})):e.variant==="warning"?(k(),de(_e,{key:2,name:"alert-triangle"})):(k(),de(_e,{key:3,name:"info"}))],!0)]),x("div",Q1e,[x("div",V1e,$(e.title),1),e.message?(k(),R("div",G1e,$(e.message),1)):ne("",!0),On(n.$slots,"default",{},void 0,!0)]),K(rn,{class:"ui-toast__close",size:"sm",label:e.dismissLabel??p(t)("common.dismiss"),tooltip:e.dismissLabel??p(t)("common.dismiss"),onClick:i[0]||(i[0]=o=>n.$emit("dismiss"))},{default:le(()=>[K(_e,{name:"close",size:"sm"})]),_:1},8,["label","tooltip"])],2))}}),K1e=Et(q1e,[["__scopeId","data-v-09e5bc42"]]),Z1e=100;function Za(){let e=!1,t=0;function n(){e=!0,t=0}function i(){e=!1,t=Date.now()}function o(){e=!1,t=0}function s(r){return e||r.isComposing||r.keyCode===229||Date.now()-t{typeof window<"u"&&(window.removeEventListener("focusin",o,!0),window.removeEventListener("focusout",o,!0))}),{handleCompositionStart:n,handleCompositionEnd:i,resetComposition:o,isComposingKeyEvent:s}}/*! - * pinia v4.0.3 - * (c) 2026 Eduardo San Martin Morote - * @license MIT - */let DQ;const G4=e=>DQ=e,NQ=Symbol();function KR(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}function Y1e(){const e=I4(!0),t=e.run(()=>V({}));let n=[],i=[];const o=Tt({install(s){G4(o),o._a=s,s.provide(NQ,o),s.config.globalProperties.$pinia=o,i.forEach(r=>n.push(r)),i=[]},use(s){return this._a?n.push(s):i.push(s),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return o}const jS=()=>{};function ZR(e,t,n,i=jS){e.add(t);const o=()=>{e.delete(t)&&i()};return!n&&qg()&&Yd(o),o}function em(e,...t){e.forEach(n=>{n(...t)})}const J1e=e=>e(),YR=Symbol(),l8=Symbol();function HS(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,i)=>e.set(i,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!Object.hasOwn(t,n))continue;const i=t[n],o=e[n];KR(o)&&KR(i)&&Object.hasOwn(e,n)&&!eo(i)&&!Gu(i)?e[n]=HS(o,i):e[n]=i}return e}const X1e=Symbol();function eme(e){return!e||typeof e!="object"||!Object.hasOwn(e,X1e)}const{assign:xf}=Object;function tme(e){return!!(eo(e)&&e.effect)}function nme(e,t,n,i){const{state:o,actions:s,getters:r}=t,a=n.state.value[e];let l;function u(){a||(n.state.value[e]=o?o():{});const c=yie(n.state.value[e]);return xf(c,s,Object.keys(r||{}).reduce((d,f)=>(d[f]=Tt(P(()=>{G4(n);const h=n._s.get(e);return r[f].call(h,h)})),d),{}))}return l=LQ(e,u,t,n,i,!0),l}function LQ(e,t,n={},i,o,s){let r;const a=xf({actions:{}},n),l={deep:!0};let u,c,d=new Set,f=new Set,h;const m=i.state.value[e];!s&&!m&&(i.state.value[e]={});let g;function v(B){let C;u=c=!1,typeof B=="function"?(B(i.state.value[e]),C={type:"patch function",storeId:e,events:h}):(HS(i.state.value[e],B),C={type:"patch object",payload:B,storeId:e,events:h});const S=g=Symbol();gt().then(()=>{g===S&&(u=!0)}),c=!0,em(d,C,i.state.value[e])}const y=s?function(){const{state:C}=n,S=C?C():{};this.$patch(I=>{xf(I,S)})}:jS;function A(){r.stop(),d.clear(),f.clear(),i._s.delete(e)}const b=(B,C="")=>{if(YR in B)return B[l8]=C,B;const S=function(){G4(i);const I=Array.from(arguments),F=new Set,E=new Set;function D(T){F.add(T)}function j(T){E.add(T)}em(f,{args:I,name:S[l8],store:_,after:D,onError:j});let z;try{z=B.apply(this&&this.$id===e?this:_,I)}catch(T){throw em(E,T),T}return z instanceof Promise?z.then(T=>(em(F,T),T)).catch(T=>(em(E,T),Promise.reject(T))):(em(F,z),z)};return S[YR]=!0,S[l8]=C,S},w={_p:i,$id:e,$onAction:ZR.bind(null,f),$patch:v,$reset:y,$subscribe(B,C={}){if(d.has(B))return jS;const S=ZR(d,B,C.detached,()=>I()),I=r.run(()=>$e(()=>i.state.value[e],F=>{(C.flush==="sync"?c:u)&&B({storeId:e,type:"direct",events:h},F)},xf({},l,C)));return S},$dispose:A},_=go(w);i._s.set(e,_);const M=(i._a&&i._a.runWithContext||J1e)(()=>i._e.run(()=>(r=I4()).run(()=>t({action:b}))));for(const B in M){const C=M[B];eo(C)&&!tme(C)||Gu(C)?s||(m&&eme(C)&&(eo(C)?C.value=m[B]:((C instanceof Set||C instanceof Map)&&C.clear(),HS(C,m[B]))),i.state.value[e][B]=C):typeof C=="function"&&(M[B]=b(C,B),a.actions[B]=C)}return xf(_,M),xf(gi(_),M),Object.defineProperty(_,"$state",{get:()=>i.state.value[e],set:B=>{v(C=>{xf(C,B)})}}),i._p.forEach(B=>{const C=r.run(()=>B({store:_,app:i._a,pinia:i,options:a}));xf(_,C)}),m&&s&&n.hydrate&&n.hydrate(_.$state,m),u=!0,c=!0,_}/*! #__NO_SIDE_EFFECTS__ */function qs(e,t,n){let i;const o=typeof t=="function";i=o?n:t;function s(r,a){const l=Fie();return r=r||(l?qt(NQ,null):null),r&&G4(r),r=DQ,r._s.has(e)||(o?LQ(e,t,i,r):nme(e,i,r)),r._s.get(e)}return s.$id=e,s}function tm(e){const t=gi(e),n={};for(const i in t){const o=t[i];o?.effect?n[i]=P({get:()=>e[i],set(s){e[i]=s}}):(eo(o)||Gu(o))&&(n[i]=wie(e,i))}return n}const ime={class:"error-boundary-title"},ome=st({__name:"ErrorBoundary",props:{closable:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){const n=t,{t:i}=Wt(),o=V(!1);KH(()=>{o.value=!0});function s(){o.value=!1}return(r,a)=>o.value?(k(),R("div",{key:1,class:De(["error-boundary",{fullscreen:e.fullscreen}]),role:"alert"},[e.closable?(k(),de(p(rn),{key:0,class:"error-boundary-close",size:"sm",label:p(i)("common.close"),tooltip:p(i)("common.close"),onClick:a[0]||(a[0]=l=>n("close"))},{default:le(()=>[K(p(_e),{name:"close",size:"sm"})]),_:1},8,["label","tooltip"])):ne("",!0),K(p(_e),{class:"error-boundary-icon",name:"alert-triangle",size:"lg"}),x("p",ime,$(p(i)("common.errorBoundaryTitle")),1),K(p(nn),{size:"sm",onClick:s},{default:le(()=>[ze($(p(i)("common.errorBoundaryRetry")),1)]),_:1})],2)):On(r.$slots,"default",{key:0},void 0,!0)}}),PQ=Et(ome,[["__scopeId","data-v-3fe116a9"]]);var sme=Object.create,oE=Object.defineProperty,rme=Object.getOwnPropertyDescriptor,OQ=Object.getOwnPropertyNames,ame=Object.getPrototypeOf,lme=Object.prototype.hasOwnProperty,zQ=(e,t)=>function(){return t||(0,e[OQ(e)[0]])((t={exports:{}}).exports,t),t.exports},ume=e=>{let t={};for(var n in e)oE(t,n,{get:e[n],enumerable:!0});return t},cme=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(var o=OQ(t),s=0,r=o.length,a;st[l]).bind(null,a),enumerable:!(i=rme(t,a))||i.enumerable});return e},$Q=(e,t,n)=>(n=e!=null?sme(ame(e)):{},cme(oE(n,"default",{value:e,enumerable:!0}),e));function dme(e,t,n,i){const o=Number(e[t].meta.id+1).toString();let s="";return typeof i.docId=="string"&&(s=`-${i.docId}-`),s+o}function fme(e,t){let n=Number(e[t].meta.id+1).toString();return e[t].meta.subId>0&&(n+=`:${e[t].meta.subId}`),`[${n}]`}function hme(e,t,n,i,o){const s=o.rules.footnote_anchor_name(e,t,n,i,o),r=o.rules.footnote_caption(e,t,n,i,o);let a=s;return e[t].meta.subId>0&&(a+=`:${e[t].meta.subId}`),`${r}`}function pme(e,t,n){return(n.xhtmlOut?`
-`:`
-`)+`
-
    -`}function mme(){return`
-
-`}function gme(e,t,n,i,o){let s=o.rules.footnote_anchor_name(e,t,n,i,o);return e[t].meta.subId>0&&(s+=`:${e[t].meta.subId}`),`
  • `}function vme(){return`
  • -`}function Ame(e,t,n,i,o){let s=o.rules.footnote_anchor_name(e,t,n,i,o);return e[t].meta.subId>0&&(s+=`:${e[t].meta.subId}`),` ↩︎`}function yme(e){const t=e.helpers.parseLinkLabel,n=e.utils.isSpace;e.renderer.rules.footnote_ref=hme,e.renderer.rules.footnote_block_open=pme,e.renderer.rules.footnote_block_close=mme,e.renderer.rules.footnote_open=gme,e.renderer.rules.footnote_close=vme,e.renderer.rules.footnote_anchor=Ame,e.renderer.rules.footnote_caption=fme,e.renderer.rules.footnote_anchor_name=dme;function i(a,l,u,c){const d=a.bMarks[l]+a.tShift[l],f=a.eMarks[l];if(d+4>f||a.src.charCodeAt(d)!==91||a.src.charCodeAt(d+1)!==94)return!1;let h;for(h=d+2;h=f||a.src.charCodeAt(++h)!==58)return!1;if(c)return!0;h++,a.env.footnotes||(a.env.footnotes={}),a.env.footnotes.refs||(a.env.footnotes.refs={});const m=a.src.slice(d+2,h-2);a.env.footnotes.refs[`:${m}`]=-1;const g=new a.Token("footnote_reference_open","",1);g.meta={label:m},g.level=a.level++,a.tokens.push(g);const v=a.bMarks[l],y=a.tShift[l],A=a.sCount[l],b=a.parentType,w=h,_=a.sCount[l]+h-(a.bMarks[l]+a.tShift[l]);let M=_;for(;h=u||a.src.charCodeAt(c)!==94||a.src.charCodeAt(c+1)!==91)return!1;const d=c+2,f=t(a,c+1);if(f<0)return!1;if(!l){a.env.footnotes||(a.env.footnotes={}),a.env.footnotes.list||(a.env.footnotes.list=[]);const h=a.env.footnotes.list.length,m=[];a.md.inline.parse(a.src.slice(d,f),a.md,a.env,m);const g=a.push("footnote_ref","",0);g.meta={id:h},a.env.footnotes.list[h]={content:a.src.slice(d,f),tokens:m}}return a.pos=f+1,a.posMax=u,!0}function s(a,l){const u=a.posMax,c=a.pos;if(c+3>u||!a.env.footnotes||!a.env.footnotes.refs||a.src.charCodeAt(c)!==91||a.src.charCodeAt(c+1)!==94)return!1;let d;for(d=c+2;d=u)return!1;d++;const f=a.src.slice(c+2,d-1);if(typeof a.env.footnotes.refs[`:${f}`]>"u")return!1;if(!l){a.env.footnotes.list||(a.env.footnotes.list=[]);let h;a.env.footnotes.refs[`:${f}`]<0?(h=a.env.footnotes.list.length,a.env.footnotes.list[h]={label:f,count:0},a.env.footnotes.refs[`:${f}`]=h):h=a.env.footnotes.refs[`:${f}`];const m=a.env.footnotes.list[h].count;a.env.footnotes.list[h].count++;const g=a.push("footnote_ref","",0);g.meta={id:h,subId:m,label:f}}return a.pos=d,a.posMax=u,!0}function r(a){let l,u,c,d=!1;const f={};if(!a.env.footnotes||(a.tokens=a.tokens.filter(function(m){return m.type==="footnote_reference_open"?(d=!0,u=[],c=m.meta.label,!1):m.type==="footnote_reference_close"?(d=!1,f[":"+c]=u,!1):(d&&u.push(m),!d)}),!a.env.footnotes.list))return;const h=a.env.footnotes.list;a.tokens.push(new a.Token("footnote_block_open","",1));for(let m=0,g=h.length;m0?h[m].count:1;for(let b=0;b?@[\]^_`{|}~-])/g;function Cme(e,t){const n=e.posMax,i=e.pos;if(e.src.charCodeAt(i)!==94||t||i+2>=n)return!1;e.pos=i+1;let o=!1;for(;e.pos{t.exports=function(g,v){v=Object.assign({},{disabled:!0,divWrap:!1,divClass:"checkbox",idPrefix:"cbx_",ulClass:"task-list",liClass:"task-list-item"},v),g.core.ruler.after("inline","github-task-lists",function(y){for(var A=y.tokens,b=0,w=2;w=0;A--)if(g[A].level===y)return A;return-1}function o(g,v){return d(g[v])&&f(g[v-1])&&h(g[v-2])&&m(g[v])}function s(g,v,y,A){var b=y.idPrefix+v;g.children[0].content=g.children[0].content.slice(3),g.children.unshift(a(b,A)),g.children.push(l(A)),g.children.unshift(r(g,b,y,A)),y.divWrap&&(g.children.unshift(u(y,A)),g.children.push(c(A)))}function r(g,v,y,A){var b=new A("checkbox_input","input",0);return b.attrs=[["type","checkbox"],["id",v]],/^\[[xX]\][ \u00A0]/.test(g.content)===!0&&b.attrs.push(["checked","true"]),y.disabled===!0&&b.attrs.push(["disabled","true"]),b}function a(g,v){var y=new v("label_open","label",1);return y.attrs=[["for",g]],y}function l(g){return new g("label_close","label",-1)}function u(g,v){var y=new v("checkbox_open","div",0);return y.attrs=[["class",g.divClass]],y}function c(g){return new g("checkbox_close","div",-1)}function d(g){return g.type==="inline"}function f(g){return g.type==="paragraph_open"}function h(g){return g.type==="list_item_open"}function m(g){return/^\[[xX \u00A0]\][ \u00A0]/.test(g.content)}})});const _me=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);function Eme(e){return e>=55296&&e<=57343||e>1114111?65533:_me.get(e)??e}function Ime(e){const t=atob(e),n=t.length&-2,i=new Uint16Array(n/2);for(let o=0,s=0;o=Bo.ZERO&&e<=Bo.NINE}function Tme(e){return e>=Bo.UPPER_A&&e<=Bo.UPPER_F||e>=Bo.LOWER_A&&e<=Bo.LOWER_F}function Bme(e){return e>=Bo.UPPER_A&&e<=Bo.UPPER_Z||e>=Bo.LOWER_A&&e<=Bo.LOWER_Z||US(e)}function Fme(e){return e===Bo.EQUALS||Bme(e)}var tr;(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(tr||(tr={}));var Pf;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(Pf||(Pf={}));var Rme=class{decodeTree;emitCodePoint;errors;constructor(e,t,n){this.decodeTree=e,this.emitCodePoint=t,this.errors=n}state=tr.EntityStart;consumed=1;result=0;treeIndex=0;excess=1;decodeMode=Pf.Strict;runConsumed=0;startEntity(e){this.decodeMode=e,this.state=tr.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1,this.runConsumed=0}write(e,t){switch(this.state){case tr.EntityStart:return e.charCodeAt(t)===Bo.NUM?(this.state=tr.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=tr.NamedEntity,this.stateNamedEntity(e,t));case tr.NumericStart:return this.stateNumericStart(e,t);case tr.NumericDecimal:return this.stateNumericDecimal(e,t);case tr.NumericHex:return this.stateNumericHex(e,t);case tr.NamedEntity:return this.stateNamedEntity(e,t)}}stateNumericStart(e,t){return t>=e.length?-1:(e.charCodeAt(t)|JR)===Bo.LOWER_X?(this.state=tr.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=tr.NumericDecimal,this.stateNumericDecimal(e,t))}stateNumericHex(e,t){for(;t>14;for(;t>7;if(this.runConsumed===0){const a=i&la.JUMP_TABLE;if(e.charCodeAt(t)!==a)return this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}for(;this.runConsumed=e.length)return-1;const a=this.runConsumed-1,l=n[this.treeIndex+1+(a>>1)],u=a%2===0?l&255:l>>8&255;if(e.charCodeAt(t)!==u)return this.runConsumed=0,this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}this.runConsumed=0,this.treeIndex+=1+(r>>1),i=n[this.treeIndex],o=(i&la.VALUE_LENGTH)>>14}if(t>=e.length)break;const s=e.charCodeAt(t);if(s===Bo.SEMI&&o!==0&&(i&la.FLAG13)!==0)return this.emitNamedEntityData(this.treeIndex,o,this.consumed+this.excess);if(this.treeIndex=Nme(n,i,this.treeIndex+Math.max(1,o),s),this.treeIndex<0)return this.result===0||this.decodeMode===Pf.Attribute&&(o===0||Fme(s))?0:this.emitNotTerminatedNamedEntity();if(i=n[this.treeIndex],o=(i&la.VALUE_LENGTH)>>14,o!==0){if(s===Bo.SEMI)return this.emitNamedEntityData(this.treeIndex,o,this.consumed+this.excess);this.decodeMode!==Pf.Strict&&(i&la.FLAG13)===0&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}t++,this.excess++}return-1}emitNotTerminatedNamedEntity(){const{result:e,decodeTree:t}=this,n=(t[e]&la.VALUE_LENGTH)>>14;return this.emitNamedEntityData(e,n,this.consumed),this.errors?.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,n){const{decodeTree:i}=this;return this.emitCodePoint(t===1?i[e]&~(la.VALUE_LENGTH|la.FLAG13):i[e+1],n),t===3&&this.emitCodePoint(i[e+2],n),n}end(){switch(this.state){case tr.NamedEntity:return this.result!==0&&(this.decodeMode!==Pf.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case tr.NumericDecimal:return this.emitNumericEntity(0,2);case tr.NumericHex:return this.emitNumericEntity(0,3);case tr.NumericStart:return this.errors?.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case tr.EntityStart:return 0}}};function Dme(e){let t="";const n=new Rme(e,i=>t+=String.fromCodePoint(i));return function(o,s){let r=0,a=0;for(;(a=o.indexOf("&",a))>=0;){t+=o.slice(r,a),n.startEntity(s);const u=n.write(o,a+1);if(u<0){r=a+n.end();break}r=a+u,a=u===0?r+1:r}const l=t+o.slice(r);return t="",l}}function Nme(e,t,n,i){const o=(t&la.BRANCH_LENGTH)>>7,s=t&la.JUMP_TABLE;if(o===0)return s!==0&&i===s?n:-1;if(s){const u=i-s;return u<0||u>=o?-1:e[n+u]-1}const r=o+1>>1;let a=0,l=o-1;for(;a<=l;){const u=a+l>>>1,c=e[n+(u>>1)]>>(u&1)*8&255;if(ci)l=u-1;else return e[n+r+u]}return-1}const Lme=Dme(Mme);function sE(e,t=Pf.Legacy){return Lme(e,t)}var Pme=$Q(xme());const XR={};function Ome(e){let t=XR[e];if(t)return t;t=XR[e]=[];for(let n=0;n<128;n++){const i=String.fromCharCode(n);t.push(i)}for(let n=0;n=55296&&c<=57343?o+="���":o+=String.fromCharCode(c),s+=6;continue}}if((a&248)===240&&s+91114111?o+="����":(d-=65536,o+=String.fromCharCode(55296+(d>>10),56320+(d&1023))),s+=9;continue}}o+="�"}return o})}q4.defaultChars=";/?:@&=+$,#";q4.componentChars="";var WS=q4;const eD={};function zme(e){let t=eD[e];if(t)return t;t=eD[e]=[];for(let n=0;n<128;n++){const i=String.fromCharCode(n);/^[0-9a-z]$/i.test(i)?t.push(i):t.push("%"+("0"+n.toString(16).toUpperCase()).slice(-2))}for(let n=0;n"u"&&(n=!0);const i=zme(t);let o="";for(let s=0,r=e.length;s=55296&&a<=57343){if(a>=55296&&a<=56319&&s+1=56320&&l<=57343){o+=encodeURIComponent(e[s]+e[s+1]),s++;continue}}o+="%EF%BF%BD";continue}o+=encodeURIComponent(e[s])}return o}K4.defaultChars=";/?:@&=+$,-_.!~*'()#";K4.componentChars="-_.!~*'()";var jQ=K4;function rE(e){let t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&e.hostname.indexOf(":")!==-1?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||"",t}function Jb(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}const $me=/^([a-z0-9.+-]+:)/i,jme=/:[0-9]*$/,Hme=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,Ume=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",` -`," "]),Wme=["'"].concat(Ume),tD=["%","/","?",";","#"].concat(Wme),nD=["/","?","#"],Qme=255,iD=/^[+a-z0-9A-Z_-]{0,63}$/,Vme=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,oD={javascript:!0,"javascript:":!0},sD={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function Gme(e,t){if(e&&e instanceof Jb)return e;const n=new Jb;return n.parse(e,t),n}Jb.prototype.parse=function(e,t){let n,i,o,s=e;if(s=s.trim(),!t&&e.split("#").length===1){const u=Hme.exec(s);if(u)return this.pathname=u[1],u[2]&&(this.search=u[2]),this}let r=$me.exec(s);if(r&&(r=r[0],n=r.toLowerCase(),this.protocol=r,s=s.substr(r.length)),(t||r||s.match(/^\/\/[^@\/]+@[^@\/]+/))&&(o=s.substr(0,2)==="//",o&&!(r&&oD[r])&&(s=s.substr(2),this.slashes=!0)),!oD[r]&&(o||r&&!sD[r])){let u=-1;for(let m=0;m127?A+="x":A+=y[b];if(!A.match(iD)){const b=m.slice(0,g),w=m.slice(g+1),_=y.match(Vme);_&&(b.push(_[1]),w.unshift(_[2])),w.length&&(s=w.join(".")+s),this.hostname=b.join(".");break}}}}this.hostname.length>Qme&&(this.hostname=""),h&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}const a=s.indexOf("#");a!==-1&&(this.hash=s.substr(a),s=s.slice(0,a));const l=s.indexOf("?");return l!==-1&&(this.search=s.substr(l),s=s.slice(0,l)),s&&(this.pathname=s),sD[n]&&this.hostname&&!this.pathname&&(this.pathname=""),this};Jb.prototype.parseHost=function(e){let t=jme.exec(e);t&&(t=t[0],t!==":"&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};var aE=Gme,HQ=ume({decode:()=>WS,encode:()=>jQ,format:()=>rE,parse:()=>aE}),qme=Object.defineProperty,UQ=e=>{let t={};for(var n in e)qme(t,n,{get:e[n],enumerable:!0});return t},Us=class{type;tag;attrs;map;nesting;level;children;content;markup;info;meta;block;hidden;constructor(e,t,n){this.type=e,this.tag=t,this.attrs=null,this.map=null,this.nesting=n,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=!1,this.hidden=!1}attrIndex(e){if(!this.attrs)return-1;const t=this.attrs;for(let n=0,i=t.length;n=0&&(n=this.attrs[t][1]),n}attrJoin(e,t){const n=this.attrIndex(e);n<0?this.attrPush([e,t]):this.attrs[n][1]=`${this.attrs[n][1]} ${t}`}},Kme=UQ({arrayReplaceAt:()=>nge,assign:()=>ege,countLines:()=>$o,escapeHtml:()=>dge,escapeRE:()=>hge,fromCodePoint:()=>n2,has:()=>Xme,isMdAsciiPunct:()=>tw,isPunctChar:()=>ew,isPunctCode:()=>QS,isSpace:()=>tge,isString:()=>Yme,isValidEntityCode:()=>Y4,isWhiteSpace:()=>t2,lib:()=>pge,mdurl:()=>HQ,normalizeReference:()=>Z4,ucmicro:()=>Xb,unescapeAll:()=>i2,unescapeMd:()=>rge});const Xb={Any:/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Cc:/[\0-\x1F\x7F-\x9F]/,Cf:/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,P:/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,S:/[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/,Z:/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/};function Zme(e){return Object.prototype.toString.call(e)}function Yme(e){return Zme(e)==="[object String]"}const Jme=Object.prototype.hasOwnProperty;function Xme(e,t){return Jme.call(e,t)}function ege(e,...t){return t.forEach(n=>{if(n){if(typeof n!="object")throw new TypeError(`${String(n)}must be object`);Object.keys(n).forEach(i=>{e[i]=n[i]})}}),e}function tge(e){return e===9||e===32}function t2(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}function ew(e){return Xb.P.test(e)||Xb.S.test(e)}const rD=new Map;function QS(e){if(tw(e))return!0;if(e>=0&&e<128)return!1;const t=rD.get(e);if(t!==void 0)return t;const n=ew(String.fromCharCode(e));return rD.set(e,n),n}function tw(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function Z4(e){return e=e.trim().replace(/\s+/g," "),"ẞ".toLowerCase()==="Ṿ"&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}function nge(e,t,n){return[...e.slice(0,t),...n,...e.slice(t+1)]}function Y4(e){return!(e>=55296&&e<=57343||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534||e>=0&&e<=8||e===11||e>=14&&e<=31||e>=127&&e<=159||e>1114111)}function n2(e){if(e>65535){e-=65536;const t=55296+(e>>10),n=56320+(e&1023);return String.fromCharCode(t,n)}return String.fromCharCode(e)}const WQ=/\\([!"#$%&'()*+,\-\./:;<=>?@[\\\]^_`{|}~])/g,ige=new RegExp(`${WQ.source}|${/&([a-z#][a-z0-9]{1,31});/gi.source}`,"gi"),oge=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function sge(e,t){if(t.charCodeAt(0)===35&&oge.test(t)){const i=t[1].toLowerCase()==="x"?Number.parseInt(t.slice(2),16):Number.parseInt(t.slice(1),10);return Y4(i)?n2(i):e}const n=sE(e);return n!==e?n:e}function rge(e){return e.includes("\\")?e.replace(WQ,"$1"):e}function i2(e){return!e.includes("\\")&&!e.includes("&")?e:e.replace(ige,(t,n,i)=>n||sge(t,i))}const age=/[&<>"]/,lge=/[&<>"]/g,uge={"&":"&","<":"<",">":">",'"':"""};function cge(e){return uge[e]}function dge(e){return age.test(e)?e.replace(lge,cge):e}const fge=/[.?*+^$[\]\\(){}|-]/g;function hge(e){return e.replace(fge,"\\$&")}const pge={mdurl:HQ,ucmicro:Xb};function $o(e){if(e.length===0)return 0;let t=0,n=-1;for(;(n=e.indexOf(` -`,n+1))!==-1;)t++;return t}const mge=/(?:^|\n)[ \t]{0,3}\[\^[^\]\n]+\]:/m,gge=/(?:^|\n)[ \t]{0,3}\*\[[^\]\n]+\]:/m,vge=/(?:^|\n)[ \t]{0,3}\[(?!\^)(?:\\[\s\S]|[^\]\\[])+\][ \t]*:/m,lE=["references","footnotes","abbreviations","abbr","abbrs"],uE=Symbol.for("markdown-it-ts.global-state"),cE=Object.prototype.hasOwnProperty;function aD(e){return e==="reference-definition"||e==="footnote-definition"||e==="abbreviation-definition"}function Uu(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Zf(e){if(Array.isArray(e))return e.map(t=>Zf(t));if(Uu(e)){const t={};for(const n of Object.keys(e))t[n]=Zf(e[n]);return t}return e}function nw(e){return Array.isArray(e)?e.map((t,n)=>String(n)):Uu(e)?Object.keys(e):[]}function VS(e,t){if(Array.isArray(e)||Array.isArray(t)){if(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;ns.has(r)?!VS(o[r],QQ(i.value,r)):!0)}}function Gd(e){const t=dE(e);if(t){for(const n of lE){const i=t.snapshot[n];if(!i){delete e[n];continue}if(i.ownedKeys){yge(e,n,i);continue}i.existed?e[n]=Age(e[n],i.value):delete e[n]}delete e[uE]}}function u8(e){return{area:e,attempted:!0,matched:!1,attemptMs:0,blocks:0,headings:0,paragraphs:0,lists:0,fences:0,paragraphCacheHits:0,paragraphCacheMisses:0,paragraphCacheBypasses:0,listCacheHits:0,listCacheMisses:0,fenceCacheHits:0,fenceCacheMisses:0}}const GS=Symbol.for("markdown-it-ts.diagnostics");function q2(e,t){if(e)try{const n=e[GS];if(n&&typeof n=="object")return n;if(!t)return;const i={};return e[GS]=i,i}catch{return}}function bd(e){return q2(e,!1)}function bge(e){if(e)try{const t=e[GS];t&&typeof t=="object"&&(delete t.strategy,delete t.chunk,delete t.unbounded,delete t.editable,delete t.stockFast)}catch{}}function ua(e){bge(e)}function J0(e,t){const n=q2(e,!0);n&&(n.stockFast=t)}function As(e,t){const n=q2(e,!0);n&&(n.strategy=t)}function c8(e,t){const n=q2(e,!0);n&&(n.chunk=t)}function VQ(e,t){const n=q2(e,!0);n&&(n.unbounded=t)}const wge=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Cge=/[\0-\x1F\x7F-\x9F]/,Sge=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B4E\u1B4F\u1B5A-\u1B60\u1B7D-\u1B7F\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDD6E\uDEAD\uDED0\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9\uDFD4\uDFD5\uDFD7\uDFD8]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09\uDFE1]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDD6D-\uDD6F\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD839\uDDFF|\uD83A[\uDD5E\uDD5F]/,xge=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/;var _ge=class{src_Any=wge.source;src_Cc=Cge.source;src_Z=xge.source;src_P=Sge.source;src_ZPCc=[this.src_Z,this.src_P,this.src_Cc].join("|");src_ZCc=[this.src_Z,this.src_Cc].join("|");cache={};opts={maxLength:1e4,urlAuth:!1,schema_names:[]};constructor(e={}){this.opts={...this.opts,...e}}set(e={}){return this.opts={...this.opts,...e},this.cache={},this}escapeRE(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}nestedPairRE(e,t,n=4){const i=this.escapeRE(e),o=this.escapeRE(t),s=`(?:(?!${this.src_ZCc}|${i}|${o}).)`;let r=`${i}${s}{0,1000}${o}`;for(let a=2;a<=n;a++)r=`${i}(?:${s}|${r}){0,1000}${o}`;return r}get_text_separators(){return this.cache.text_separators??=/[><\uff5c]/}get_pseudo_letter(){return this.cache.src_pseudo_letter??=new RegExp(`(?:(?!${this.get_text_separators().source}|${this.src_ZPCc})${this.src_Any})`)}get_ipv4_addr(){return this.cache.src_ip4??=new RegExp("(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])[.]){3}(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])")}get_ipv6_addr(){const e="[0-9A-Fa-f]{1,4}",t=`(?:(?:${e}:${e})|${this.get_ipv4_addr().source})`;return this.cache.src_ip6_addr??=new RegExp(`(?:(?:${e}:){6}${t}|::(?:${e}:){5}${t}|(?:${e})?::(?:${e}:){4}${t}|(?:(?:${e}:){0,1}${e})?::(?:${e}:){3}${t}|(?:(?:${e}:){0,2}${e})?::(?:${e}:){2}${t}|(?:(?:${e}:){0,3}${e})?::${e}:${t}|(?:(?:${e}:){0,4}${e})?::${t}|(?:(?:${e}:){0,5}${e})?::${e}|(?:(?:${e}:){0,6}${e})?::)`)}get_ipv6_url_host(){return this.cache.src_ip6_host??=new RegExp(`\\[${this.get_ipv6_addr().source}\\]`)}get_ipv6_mail_host(){return this.cache.src_ipv6_mail_host??=new RegExp(`\\[IPv6:${this.get_ipv6_addr().source}\\]`)}get_auth(){return this.cache.src_auth??=new RegExp(`(?:(?:(?!${this.src_ZCc}|[@/\\[\\]()]).){1,50}@)?`)}get_port(){return this.cache.src_port??=new RegExp("(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?")}get_host_terminator(){return this.cache.src_host_terminator??=new RegExp(`(?=$|${this.get_text_separators().source}|${this.src_ZPCc})(?!${this.opts["---"]?"-(?!--)|":"-|"}_|:\\d|\\.-|\\.(?!$|${this.src_ZPCc}))`)}get_path_terminator(){return this.cache.src_path_terminator??=new RegExp(`${this.src_ZPCc}|${this.get_text_separators().source}`)}get_path(){return this.cache.src_path??=new RegExp(`(?:[/?#](?:${this.nestedPairRE("[","]")}|${this.nestedPairRE("(",")")}|${this.nestedPairRE("{","}")}|\\"(?:(?!${this.src_ZCc}|["]).){1,100}\\"|\\'(?:(?!${this.src_ZCc}|[']).){1,100}\\'|\\'(?=${this.get_pseudo_letter().source}|[-])|\\.{2,20}[:]?[a-zA-Z0-9%/&]|\\.(?!${this.src_ZCc}|[.]|$)|`+(this.opts["---"]?"\\-(?!--(?:[^-]|$))(?:-{0,19})|":"\\-{1,20}|")+`,(?!${this.src_ZCc}|$)|;(?!${this.src_ZCc}|$)|\\!{1,20}(?!${this.src_ZCc}|[!]|$)|\\?(?!${this.src_ZCc}|[?]|$)|`+this.get_path_extra().source+`[\\\\/:%@#&=_~*]|(?!${this.get_path_terminator().source}).){1,${this.opts.maxLength}}|\\/)?`)}get_mail_name(){return this.cache.src_mail_name??=new RegExp("[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9](?:[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9]|[.](?=[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9])){0,63}")}get_xn(){return this.cache.src_xn??=new RegExp("xn--[a-z0-9\\-]{1,59}")}get_tld(){if(this.cache.tld)return this.cache.tld;const e=[...new Set(this.opts.tlds||[])].sort().reverse().join("|");return this.cache.tld=new RegExp(`${e||"$#none#$"}|${this.get_xn().source}`),this.cache.tld}get_domain_root(){return this.cache.src_domain_root??=new RegExp("(?:"+this.get_xn().source+`|${this.get_pseudo_letter().source}{1,63})`)}get_domain(){return this.cache.src_domain??=new RegExp("(?:"+this.get_xn().source+`|(?:${this.get_pseudo_letter().source})|(?:${this.get_pseudo_letter().source}(?:-|${this.get_pseudo_letter().source}){0,61}${this.get_pseudo_letter().source}))`)}get_url_host_port(){return this.cache.url_host_port??=new RegExp("(?:"+this.get_ipv6_url_host().source+`|(?:(?:(?:${this.get_domain().source})\\.){0,10}${this.get_domain().source}))`+this.get_port().source+this.get_host_terminator().source)}get_fuzzy_url_host_port(){return this.cache.fuzzy_url_host_port??=new RegExp("(?:"+(this.opts.fuzzyIP?this.get_ipv4_addr().source+"|":"")+`(?:(?:(?:${this.get_domain().source})\\.){1,10}(?:${this.get_tld().source})))`+this.get_host_terminator().source)}get_mail_host(){return this.cache.src_mail_host??=new RegExp("(?:"+this.get_ipv6_mail_host().source+`|(?:(?:(?:${this.get_domain().source})\\.){0,4}${this.get_domain().source}))`+this.get_host_terminator().source)}get_fuzzy_mail_host(){return this.cache.src_fuzzy_mail_host??=new RegExp("(?:"+this.get_ipv6_mail_host().source+`|(?:(?:(?:${this.get_domain().source})[.]){1,4}${this.get_domain_root().source}))`+this.get_host_terminator().source)}get_path_extra(){return this.cache.src_path_extra??=new RegExp("")}get_fuzzy_mail_host_search(){return this.cache.mail_fuzzy_host_search??=new RegExp(`@${this.get_fuzzy_mail_host().source}`,"ig")}get_fuzzy_link_search(){return this.cache.link_fuzzy_search??=new RegExp(`(^|(?![.:/\\-_@])(?:[$+<=>^\`||]|${this.src_ZPCc}))(?:(?![$+<=>^\`||])${this.get_fuzzy_url_host_port().source}${this.get_path().source})`,"ig")}get_http_validator(){return this.cache.http_validator??=new RegExp("\\/\\/"+(this.opts.urlAuth?this.get_auth().source:"")+this.get_url_host_port().source+this.get_path().source,"iy")}get_relative_proto_validator(){return this.cache.relative_proto_validator??=new RegExp((this.opts.urlAuth?this.get_auth().source:"")+`(?:localhost|${this.get_ipv6_url_host().source}|(?:(?:${this.get_domain().source})[.]){1,10}${this.get_domain_root().source})`+this.get_port().source+this.get_host_terminator().source+this.get_path().source,"iy")}get_mail_name_validator(){return this.cache.mail_name_validator??=new RegExp(`(?:^|${this.get_text_separators().source}|"|\\(|${this.src_ZCc})(${this.get_mail_name().source})$`)}get_mailto_validator(){return this.cache.mailto_validator??=new RegExp(`${this.get_mail_name().source}@${this.get_mail_host().source}`,"iy")}get_schema_names(){return this.cache.schema_names??=new RegExp((this.opts.schema_names||[]).map(e=>this.escapeRE(e)).join("|"))}get_schema_search(){return this.cache.schema_search??=new RegExp(`(^|(?!_)(?:[><|]|${this.src_ZPCc}))(${this.get_schema_names().source})`,"ig")}get_schema_at_start(){return this.cache.schema_at_start??=new RegExp(`^${this.get_schema_search().source}`,"i")}},d8={validate:(e,t,n)=>{const i=n.re.get_http_validator();i.lastIndex=t;const o=i.exec(e);return o?o[0].length:0},normalize:(e,t)=>t.normalize(e)},Ege={"http:":d8,"https:":d8,"ftp:":d8,"//":{validate:function(e,t,n){const i=n.re.get_relative_proto_validator();i.lastIndex=t;const o=i.exec(e);return o?t>=3&&e[t-3]===":"||t>=3&&e[t-3]==="/"?0:o[0].length:0},normalize:(e,t)=>t.normalize(e)},"mailto:":{validate:function(e,t,n){const i=n.re.get_mailto_validator();i.lastIndex=t;const o=i.exec(e);return o?o[0].length:0},normalize:(e,t)=>t.normalize(e)}},Ige="a:cdefgilmnoqrstuwxz|b:abdefghijmnorstvwyz|c:acdfghiklmnoruvwxyz|d:ejkmoz|e:cegrstu|f:ijkmor|g:abdefghilmnpqrstuwy|h:kmnrtu|i:delmnoqrst|j:emop|k:eghimnprwyz|l:abcikrstuvy|m:acdeghklmnopqrstuvwxyz|n:acefgilopruz|o:m|p:aefghklmnrstwy|q:a|r:eosuw|s:abcdeghijklmnortuvxyz|t:cdfghjklmnortvwz|u:agksyz|v:aceginu|w:fs|y:et|z:amw",Mge="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф";function Tge(){const e=Mge.split("|");return Ige.split("|").forEach(t=>{const n=t.indexOf(":"),i=t.slice(0,n);for(const o of t.slice(n+1))e.push(i+o)}),e}var Bge={fuzzyLink:!1,fuzzyEmail:!0,fuzzyIP:!1,"---":!1,tlds:Tge(),urlAuth:!1,maxLength:1e4},lD=class{schema;index;lastIndex;raw;text;url;constructor(e,t,n,i){const o=e.slice(n,i);this.schema=t.toLowerCase(),this.index=n,this.lastIndex=i,this.raw=o,this.text=o,this.url=o}},GQ=class{__opts__;__schemas__;re;constructor(e={}){const{rebuilder:t,...n}=e;this.__opts__={...Bge,...n},this.__schemas__={...Ege},this.re=t||new _ge,this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)})}add(e,t=null){if(!t)delete this.__schemas__[e];else{const n={normalize:(i,o)=>o.normalize(i),...t};this.__schemas__[e]=n}return this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}set(e={}){return this.__opts__={...this.__opts__,...e},this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}test(e){if(!e.length)return!1;let t,n;for(n=this.re.get_schema_search(),n.lastIndex=0;(t=n.exec(e))!==null;)if(this.testSchemaAt(e,t[2],n.lastIndex))return!0;if(this.__opts__.fuzzyLink&&this.__schemas__["http:"]&&(n=this.re.get_fuzzy_link_search(),n.lastIndex=0,n.exec(e)!==null))return!0;if(this.__opts__.fuzzyEmail&&this.__schemas__["mailto:"]&&e.indexOf("@")>=0){const i=this.re.get_fuzzy_mail_host_search(),o=this.re.get_mail_name_validator();for(i.lastIndex=0;(t=i.exec(e))!==null;){const s=e.slice(Math.max(0,t.index-65),t.index);if(o.test(s))return!0}}return!1}testSchemaAt(e,t,n){return this.__schemas__[t.toLowerCase()]?this.__schemas__[t.toLowerCase()].validate(e.slice(0,n+this.__opts__.maxLength),n,this):0}match(e){const t=[],n=this.re.get_schema_search();let i,o,s,r,a,l,u=!1,c=!1,d=!1,f=0;if(!e.length)return null;for(n.lastIndex=0,this.__opts__.fuzzyLink&&this.__schemas__["http:"]&&(i=this.re.get_fuzzy_link_search(),i.lastIndex=0),this.__opts__.fuzzyEmail&&this.__schemas__["mailto:"]&&(o=this.re.get_fuzzy_mail_host_search(),o.lastIndex=0,s=this.re.get_mail_name_validator());;){const h=Math.max(f-1,0);if(o&&s&&!d&&(!a||a.index=f)break;o.lastIndex=f)break;i.lastIndexm.lastIndex))&&(m=r);let g;if(!u)for(;;){if(!l){n.lastIndexm.index)break;const A=l;l=void 0;const b=this.testSchemaAt(e,A.schema,A.lastIndex);if(b){g={schema:A.schema,index:A.index,lastIndex:A.lastIndex+b};break}}let v=g;if((!v||a&&(a.indexv.lastIndex))&&(v=a),(!v||r&&(r.indexv.lastIndex))&&(v=r),!v)break;v===a?a=void 0:v===r&&(r=void 0);const y=new lD(e,v.schema,v.index,v.lastIndex);y.schema?this.__schemas__[y.schema].normalize(y,this):this.normalize(y),t.push(y),f=v.lastIndex}return t.length?t:null}matchAtStart(e){if(!e.length)return null;const t=this.re.get_schema_at_start().exec(e);if(!t)return null;const n=this.testSchemaAt(e,t[2],t[0].length);if(!n)return null;const i=new lD(e,t[2],t.index+t[1].length,t.index+t[0].length+n);return this.__schemas__[i.schema].normalize(i,this),i}tlds(e,t=!1){return e=Array.isArray(e)?e:[e],t?this.__opts__.tlds=this.__opts__.tlds.concat(e):this.__opts__.tlds=e,this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}normalize(e){e.schema||(e.url=`http://${e.url}`),e.schema==="mailto:"&&!/^mailto:/i.test(e.url)&&(e.url=`mailto:${e.url}`)}},Fge=zQ({"../../node_modules/.pnpm/punycode.js@2.3.1/node_modules/punycode.js/punycode.js":((e,t)=>{const d=/^xn--/,f=/[^\0-\x7F]/,h=/[\x2E\u3002\uFF0E\uFF61]/g,m={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},g=35,v=Math.floor,y=String.fromCharCode;function A(z){throw new RangeError(m[z])}function b(z,T){const N=[];let L=z.length;for(;L--;)N[L]=T(z[L]);return N}function w(z,T){const N=z.split("@");let L="";N.length>1&&(L=N[0]+"@",z=N[1]),z=z.replace(h,".");const H=b(z.split("."),T).join(".");return L+H}function _(z){const T=[];let N=0;const L=z.length;for(;N=55296&&H<=56319&&NString.fromCodePoint(...z),B=function(z){return z>=48&&z<58?26+(z-48):z>=65&&z<91?z-65:z>=97&&z<123?z-97:36},C=function(z,T){return z+22+75*(z<26)-((T!=0)<<5)},S=function(z,T,N){let L=0;for(z=N?v(z/700):z>>1,z+=v(z/T);z>g*26>>1;L+=36)z=v(z/g);return v(L+(g+1)*z/(z+38))},I=function(z){const T=[],N=z.length;let L=0,H=128,O=72,Q=z.lastIndexOf("-");Q<0&&(Q=0);for(let Y=0;Y=128&&A("not-basic"),T.push(z.charCodeAt(Y));for(let Y=Q>0?Q+1:0;Y=N&&A("invalid-input");const ge=B(z.charCodeAt(Y++));ge>=36&&A("invalid-input"),ge>v((2147483647-L)/ee)&&A("overflow"),L+=ge*ee;const q=X<=O?1:X>=O+26?26:X-O;if(gev(2147483647/pe)&&A("overflow"),ee*=pe}const Z=T.length+1;O=S(L-W,Z,W==0),v(L/Z)>2147483647-H&&A("overflow"),H+=v(L/Z),L%=Z,T.splice(L++,0,H)}return String.fromCodePoint(...T)},F=function(z){const T=[];z=_(z);const N=z.length;let L=128,H=0,O=72;for(const W of z)W<128&&T.push(y(W));const Q=T.length;let Y=Q;for(Q&&T.push("-");Y=L&&eev((2147483647-H)/Z)&&A("overflow"),H+=(W-L)*Z,L=W;for(const ee of z)if(ee2147483647&&A("overflow"),ee===L){let X=H;for(let ge=36;;ge+=36){const q=ge<=O?1:ge>=O+26?26:ge-O;if(X32))return s;if(i===41){if(r===0)break;r--}o++}return t===o||r!==0||(s.str=i2(e.slice(t,o)),s.pos=o,s.ok=!0),s}var KQ=pE;const _9=-2;function Rge(e,t,n,i){let o=1,s=t+1;for(;s=0&&t+1>=c)return-1;const d=a.indexOf("]",t+1);if(d<0||d>=l)return e.linkLabelNoCloseFrom=t+1,-1;const f=Rge(a,t,l,n);if(f!==_9)return f;for(e.pos=t+1;e.pos=n)return r;let a=e.charCodeAt(s);if(a!==34&&a!==39&&a!==40)return r;t++,s++,a===40&&(a=41),r.marker=a}for(;s=0?e.attrs[n][1]:null}function Lge(e,t,n){const i=J4(e,t);i<0?vE(e,[t,n]):e.attrs[i][1]=`${e.attrs[i][1]} ${n}`}var Pge=UQ({attrGet:()=>Nge,attrIndex:()=>J4,attrJoin:()=>Lge,attrPush:()=>vE,attrSet:()=>Dge,parseLinkDestination:()=>pE,parseLinkLabel:()=>mE,parseLinkTitle:()=>gE});function Oge(e){return e.includes("\r")||e.includes("\0")}function YQ(e){return typeof e=="string"?e:e.toString()}function zge(e){if(e.inlineMode){const t=new Us("inline","",0);t.content=YQ(e.src),t.map=[0,1],t.children=[],t.level=0,e.tokens.push(t)}else e.md&&e.md.block&&e.md.block.parse(e.src,e.md,e.env,e.tokens)}const $ge=/^([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])?)*)$/,jge=/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\x00-\x20]*)$/;function Hge(e,t){let n=e.pos;const i=e.src;if(i.charCodeAt(n)!==60)return!1;const o=n,s=e.posMax;for(;;){if(++n>=s)return!1;const a=i.charCodeAt(n);if(a===60)return!1;if(a===62)break}const r=i.slice(o+1,n);if(jge.test(r)){const a=e.md.normalizeLink(r);if(!e.md.validateLink(a))return!1;if(!t){const l=e.push("link_open","a",1);l.attrs=[["href",a]],l.markup="autolink",l.info="auto";const u=e.push("text","",0);u.content=e.md.normalizeLinkText(r);const c=e.push("link_close","a",-1);c.markup="autolink",c.info="auto"}return e.pos+=r.length+2,!0}if($ge.test(r)){const a=e.md.normalizeLink(`mailto:${r}`);if(!e.md.validateLink(a))return!1;if(!t){const l=e.push("link_open","a",1);l.attrs=[["href",a]],l.markup="autolink",l.info="auto";const u=e.push("text","",0);u.content=e.md.normalizeLinkText(r);const c=e.push("link_close","a",-1);c.markup="autolink",c.info="auto"}return e.pos+=r.length+2,!0}return!1}var JQ=Hge;function Uge(e,t){const n=e.src;let i=e.pos;if(n.charCodeAt(i)!==96)return!1;const o=i;i++;const s=e.posMax;for(;i2&&f.charCodeAt(0)===32&&f.charCodeAt(f.length-1)===32&&(f=f.slice(1,-1)),d.content=f}return e.pos=l,!0}e.backticks[c]=u}return e.backticksScanned=!0,t||(e.pending+=r),e.pos+=a,!0}var XQ=Uge;function uD(e){const t={},n=e.length;if(!n)return;let i=0,o=-2;const s=[];for(let r=0;rl;u-=s[u]+1){const d=e[u];if(d.marker===a.marker&&d.open&&d.end<0){let f=!1;if((d.close||a.open)&&(d.length+a.length)%3===0&&(d.length%3!==0||a.length%3!==0)&&(f=!0),!f){const h=u>0&&!e[u-1].open?s[u-1]+1:0;s[r]=r-u+h,s[u]=h,a.open=!1,d.end=r,d.close=!1,c=-1,o=-2;break}}}c!==-1&&(t[a.marker][(a.open?3:0)+(a.length||0)%3]=c)}}function Wge(e){const t=e.tokens_meta,n=e.tokens_meta.length;uD(e.delimiters);for(let i=0;i=0;o--){const s=t[o],r=s.marker;if(r!==95&&r!==42||s.end===-1)continue;const a=t[s.end],l=s.token,u=a.token,c=o>0&&t[o-1].end===s.end+1&&t[o-1].marker===r&&t[o-1].token===l-1&&t[s.end+1].token===u+1,d=r===42?eV:tV,f=i[l];c?(f.type="strong_open",f.tag="strong",f.nesting=1,f.markup=d+d,f.content=""):(f.type="em_open",f.tag="em",f.nesting=1,f.markup=d,f.content="");const h=i[u];c?(h.type="strong_close",h.tag="strong",h.nesting=-1,h.markup=d+d,h.content=""):(h.type="em_close",h.tag="em",h.nesting=-1,h.markup=d,h.content=""),c&&(i[t[o-1].token].content="",i[t[s.end+1].token].content="",o--)}}function Gge(e){const t=e.tokens_meta,n=e.tokens_meta.length;cD(e,e.delimiters);for(let i=0;i=48&&e<=57}function qge(e){const t=e|32;return AE(e)||t>=97&&t<=102}function iV(e){const t=e|32;return t>=97&&t<=122}function Kge(e){return iV(e)||AE(e)}function Zge(e,t,n){let i=t+2;if(i>=n)return null;let o=!1,s=7,r=i;for((e.charCodeAt(i)|32)===120&&(o=!0,s=6,i++,r=i);i=n||e.charCodeAt(i)!==59?null:e.slice(t,i+1)}function Yge(e,t,n){let i=t+1;if(i>=n||!iV(e.charCodeAt(i)))return null;for(i++;i=n||e.charCodeAt(i)!==59)return null;const o=e.slice(t,i+1);return nV(o)!==o?o:null}function Jge(e,t){const n=e.pos,i=e.posMax;if(e.src.charCodeAt(n)!==38||n+1>=i)return!1;if(e.src.charCodeAt(n+1)===35){const o=Zge(e.src,n,i);if(o){if(!t){const s=(o.charCodeAt(2)|32)===120?Number.parseInt(o.slice(3,-1),16):Number.parseInt(o.slice(2,-1),10),r=e.push("text_special","",0);r.content=Y4(s)?n2(s):n2(65533),r.markup=o,r.info="entity"}return e.pos+=o.length,!0}}else{const o=Yge(e.src,n,i);if(o){const s=nV(o);if(!t){const r=e.push("text_special","",0);r.content=s,r.markup=o,r.info="entity"}return e.pos+=o.length,!0}}return!1}var oV=Jge;const sV=(()=>{const e=new Array(256).fill(0),t="\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-";for(let n=0;n<32;n++)e[t.charCodeAt(n)]=1;return e})(),KS=new Array(128),rV=new Array(128);for(let e=0;e<128;e++){const t=String.fromCharCode(e);KS[e]=`\\${t}`,rV[e]=sV[e]?t:KS[e]}function dD(e,t,n){e.pending&&e.pushPending();const i=new Us("text_special","",0);i.level=e.level,i.content=t,i.markup=n,i.info="escape",e.pendingLevel=e.level,e.tokens.push(i),e.tokens_meta.push(null)}function Xge(e,t){let n=e.pos;const i=e.posMax,o=e.src;if(o.charCodeAt(n)!==92||(n++,n>=i))return!1;let s=o.charCodeAt(n);if(s===10){for(t||e.push("hardbreak","br",0),n++;n=55296&&s<=56319&&n+1=56320&&l<=57343&&n++}return e.pos=n+1,!0}let r=o.charAt(n);if(s>=55296&&s<=56319&&n+1=56320&&l<=57343&&(r+=o.charAt(n+1),n++)}const a=`\\${r}`;return dD(e,s<256&&sV[s]?r:a,a),e.pos=n+1,!0}var aV=Xge;function e0e(e){let t,n,i=0;const o=e.tokens,s=e.tokens.length;for(t=n=0;t0&&i++,r.type==="text"&&t+1\`\\x00-\\x20]+|'[^']*'|"[^"]*"))?)*\\s*\\/?>`,uV="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",n0e=new RegExp(`^(?:${lV}|${uV}||<\\?[\\s\\S]*?\\?>|]*>|)`),i0e=new RegExp(`^(?:${lV}|${uV})`);function cV(e){return e===32||e===9||e===10||e===12||e===13}function o0e(e){if(e.length<3||e.charCodeAt(0)!==60||(e.charCodeAt(1)|32)!==97)return!1;const t=e.charCodeAt(2);return t===62||cV(t)}function s0e(e){if(e.length<4||e.charCodeAt(0)!==60||e.charCodeAt(1)!==47||(e.charCodeAt(2)|32)!==97)return!1;for(let t=3;t=97&&t<=122}function a0e(e,t){if(!e.md.options.html)return!1;const n=e.posMax,i=e.pos,o=e.src;if(o.charCodeAt(i)!==60||i+2>=n)return!1;const s=o.charCodeAt(i+1);if(s!==33&&s!==63&&s!==47&&!r0e(s))return!1;const r=o.slice(i).match(n0e);if(!r)return!1;const a=r[0];if(!t){const l=e.pushSimple("html_inline","");l.content=a,o0e(a)&&e.linkLevel++,s0e(a)&&e.linkLevel--}return e.pos+=a.length,!0}var dV=a0e;function l0e(e,t){let n,i,o,s,r,a,l,u,c="";const d=e.pos,f=e.posMax;if(e.src.charCodeAt(e.pos)!==33||e.src.charCodeAt(e.pos+1)!==91)return!1;const h=e.pos+2,m=iw(e,e.pos+1,!1);if(m<0)return!1;if(s=m+1,s=f)return!1;if(a=KQ(e.src,s,e.posMax),a.ok){for(c=e.md.normalizeLink(a.str),e.md.validateLink(c)?s=a.pos:c="",u=s;s=f||e.src.charCodeAt(s)!==41)return e.pos=d,!1;s++}else{if(typeof e.env.references>"u")return!1;if(s=0?o=e.src.slice(u,s++):s=m+1):s=m+1,o||(o=e.src.slice(h,m)),r=e.env.references[Z4(o)],!r)return e.pos=d,!1;c=r.href,l=r.title}if(!t){i=e.src.slice(h,m);const g=[];e.md.inline.parse(i,e.md,e.env,g);const v=e.push("image","img",0);v.attrs=[["src",c],["alt",""]],v.children=g,v.content=i,l&&v.attrs.push(["title",l])}return e.pos=s,e.posMax=f,!0}var fV=l0e;function f8(e,t,n){for(;t"u")return!1;let d;if(a=r+1,a=0?(d=n.slice(h,m),d||(d=n.slice(s,r)),a=m+1):d=n.slice(s,r)}else d=n.slice(s,r);const f=e.env.references[Z4(d)];if(!f)return e.pos=i,!1;l=f.href,u=f.title}if(!t){e.pos=s,e.posMax=r;const d=e.push("link_open","a",1);d.attrs=u?[["href",l],["title",u]]:[["href",l]],e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push("link_close","a",-1)}return e.pos=a,e.posMax=o,!0}var hV=u0e;function pV(e){const t=e|32;return t>=97&&t<=122}function c0e(e){return e>=48&&e<=57}function d0e(e){return pV(e)||c0e(e)||e===43||e===45||e===46}function f0e(e){if(e.length===0)return null;let t=e.length-1;for(;t>=0&&d0e(e.charCodeAt(t));)t--;return t++,t>=e.length||!pV(e.charCodeAt(t))?null:e.slice(t)}function h0e(e,t,n){let i=t;for(;i0)return!1;const n=e.pos,i=e.posMax;if(n+3>i||e.src.charCodeAt(n)!==58||e.src.charCodeAt(n+1)!==47||e.src.charCodeAt(n+2)!==47)return!1;const o=f0e(e.pending);if(!o)return!1;const s=h0e(e.src,n-o.length,i),r=e.md.linkify.matchAtStart(s);if(!r)return!1;let a=r.url;if(a.length<=o.length)return!1;let l=a.length;for(;l>0&&a.charCodeAt(l-1)===42;)l--;l!==a.length&&(a=a.slice(0,l));const u=e.md.normalizeLink(a);if(!e.md.validateLink(u))return!1;if(!t){e.pending=e.pending.slice(0,-o.length);const c=e.push("link_open","a",1);c.attrs=[["href",u]],c.markup="linkify",c.info="auto";const d=e.push("text","",0);d.content=e.md.normalizeLinkText(a);const f=e.push("link_close","a",-1);f.markup="linkify",f.info="auto"}return e.pos+=a.length-o.length,!0}function p0e(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==10)return!1;const i=e.pending.length-1,o=e.posMax;if(!t)if(i>=0&&e.pending.charCodeAt(i)===32)if(i>=1&&e.pending.charCodeAt(i-1)===32){let s=i-1;for(;s>=1&&e.pending.charCodeAt(s-1)===32;)s--;e.pending=e.pending.slice(0,s),e.pushSimple("hardbreak","br")}else e.pending=e.pending.slice(0,-1),e.pushSimple("softbreak","br");else e.pushSimple("softbreak","br");for(n++;n=o||hD(n.charCodeAt(i)))return!1;let s=i+1;for(;si-o),n=Math.floor(t.length/2);return t.length%2===0?(t[n-1]+t[n])/2:t[n]}function y0e(e,t){return{chain:e,name:t,calls:0,hits:0,inclusiveMs:0,medianMs:0,maxMs:0,normalCalls:0,normalHits:0,silentCalls:0,silentHits:0,samples:[]}}function AV(e){const t=e;if(!t)return null;if(t.__mdtsRuleProfile)return t.__mdtsRuleProfile;if(!t.__mdtsProfileRules)return null;const n=t.__mdtsProfileRules===!0?{}:t.__mdtsProfileRules,i={enabled:!0,fixture:n.fixture,mode:n.mode,startedAt:yE(),records:Object.create(null)};return t.__mdtsRuleProfile=i,i}function lg(e,t,n,i,o,s){const r=AV(e);if(!r)return;const a=`${t}:${n}`,l=r.records[a]??(r.records[a]=y0e(t,n));l.calls++,l.inclusiveMs+=i,i>l.maxMs&&(l.maxMs=i),l.samples.push(i),s?(l.silentCalls++,o&&l.silentHits++):(l.normalCalls++,o&&l.normalHits++),o&&l.hits++,r.completedAt=yE()}function k0e(e){const t=AV(e);if(!t)return null;const n=Object.keys(t.records);for(let i=0;io.name===e);i>=0&&this.rules.splice(i,1),this.rules.push({name:e,fn:t,alt:n?.alt||[],enabled:!0}),this.invalidateCache()}at(e,t,n){const i=this.rules.findIndex(o=>o.name===e);if(t===void 0){if(i<0)return;const o=this.rules[i];return Object.freeze({name:o.name,fn:o.fn,alt:o.alt?Object.freeze(o.alt.slice()):void 0,enabled:o.enabled})}if(i<0)throw new Error(`Parser rule not found: ${e}`);this.rules[i].fn=t,n?.alt!==void 0&&(this.rules[i].alt=n.alt),this.invalidateCache()}before(e,t,n,i){const o=this.rules.findIndex(r=>r.name===e);if(o<0)throw new Error(`Parser rule not found: ${e}`);const s=this.rules.findIndex(r=>r.name===t);s>=0&&this.rules.splice(s,1),this.rules.splice(o,0,{name:t,fn:n,alt:i?.alt||[],enabled:!0}),this.invalidateCache()}after(e,t,n,i){const o=this.rules.findIndex(r=>r.name===e);if(o<0)throw new Error(`Parser rule not found: ${e}`);const s=this.rules.findIndex(r=>r.name===t);s>=0&&this.rules.splice(s,1),this.rules.splice(o+1,0,{name:t,fn:n,alt:i?.alt||[],enabled:!0}),this.invalidateCache()}enable(e,t){const n=Array.isArray(e)?e:[e],i=[];let o=!1;for(const s of n){const r=this.rules.findIndex(a=>a.name===s);if(r<0){if(!t)throw new Error(`Rules manager: invalid rule name ${s}`);continue}i.push(s),this.rules[r].enabled||(this.rules[r].enabled=!0,o=!0)}return o&&this.invalidateCache(),i}disable(e,t){const n=Array.isArray(e)?e:[e],i=[];let o=!1;for(const s of n){const r=this.rules.findIndex(a=>a.name===s);if(r<0){if(!t)throw new Error(`Rules manager: invalid rule name ${s}`);continue}i.push(s),this.rules[r].enabled&&(this.rules[r].enabled=!1,o=!0)}return o&&this.invalidateCache(),i}enableOnly(e){const t=new Set(e);let n=!1;for(const i of this.rules){const o=t.has(i.name);i.enabled!==o&&(i.enabled=o,n=!0)}n&&this.invalidateCache()}getRules(e){const t=e||"";return this.cache||this.compileCache(),this.cache.get(t)??[]}getNamedRules(e){const t=e||"";return this.namedCache||this.compileCache(),this.namedCache.get(t)??[]}compileCache(){const e=new Set([""]);for(const i of this.rules)if(i.enabled&&i.alt)for(const o of i.alt)e.add(o);const t=new Map,n=new Map;for(const i of e){const o=[],s=[];for(const r of this.rules)r.enabled&&(i!==""&&!r.alt?.includes(i)||(o.push(r.fn),s.push({name:r.name,fn:r.fn})));t.set(i,o),n.set(i,s)}this.cache=t,this.namedCache=n}},yV=class{src;md;env;tokens;tokens_meta;pos;posMax;level;pending;pendingLevel;cache;delimiters;_prev_delimiters;backticks;backticksScanned;linkLevel;linkLabelNoCloseFrom;maxNesting;constructor(e,t,n,i){this.src=e,this.md=t,this.env=n,this.tokens=i,this.tokens_meta=new Array(i.length),this.pos=0,this.posMax=e.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache=[],this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1,this.linkLevel=0,this.linkLabelNoCloseFrom=-1,this.maxNesting=t.options.maxNesting}pushPending(){const e=new Us("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e}pushSimple(e,t){this.pending&&this.pushPending();const n=new Us(e,t,0);return n.level=this.level,this.pendingLevel=this.level,this.tokens.push(n),this.tokens_meta.push(null),n}push(e,t,n){if(this.pending&&this.pushPending(),n===0)return this.pushSimple(e,t);const i=new Us(e,t,n);let o=null;return n<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),i.level=this.level,n>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],o={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(i),this.tokens_meta.push(o),i}scanDelims(e,t){const{src:n,posMax:i}=this,o=n.charCodeAt(e);let s=e;for(;s0?n.charCodeAt(e-1):32,l=s@[\]\\^_`{}~]/;function mD(e,t){switch(e.src.charCodeAt(e.pos)){case 10:return gV(e,t);case 33:return fV(e,t);case 38:return oV(e,t);case 42:case 95:return qS.tokenize(e,t);case 58:return e.md.options.linkify&&mV(e,t);case 60:return JQ(e,t)||dV(e,t);case 91:return hV(e,t);case 92:return aV(e,t);case 96:return XQ(e,t);case 126:return ZS.tokenize(e,t);default:return vV(e,t)}}function kV(e){return!b0e.test(e)}var w0e=class{ruler;ruler2;cachedRulesVersion=-1;cachedRules=[];cachedRules2Version=-1;cachedRules2=[];defaultRulerVersion;defaultRuler2Version;constructor(){this.ruler=new pD,this.ruler2=new pD,this.ruler.push("text",vV),this.ruler.push("linkify",mV),this.ruler.push("newline",gV),this.ruler.push("escape",aV),this.ruler.push("backticks",XQ),this.ruler.push("strikethrough",ZS.tokenize),this.ruler.push("emphasis",qS.tokenize),this.ruler.push("link",hV),this.ruler.push("image",fV),this.ruler.push("autolink",JQ),this.ruler.push("html_inline",dV),this.ruler.push("entity",oV),this.ruler2.push("balance_pairs",Qge),this.ruler2.push("strikethrough",ZS.postProcess),this.ruler2.push("emphasis",qS.postProcess),this.ruler2.push("fragments_join",t0e),this.defaultRulerVersion=this.ruler.version,this.defaultRuler2Version=this.ruler2.version}skipToken(e){const t=e.pos,n=this.getRules(),i=n.length,o=e.cache,s=o[t],r=!!e.env&&(Object.prototype.hasOwnProperty.call(e.env,"__mdtsRuleProfile")||Object.prototype.hasOwnProperty.call(e.env,"__mdtsProfileRules"));if(s!==void 0){e.pos=s;return}let a=!1;if(e.level=e.pos)throw new Error("inline rule didn't increment state.pos");break}}}else if(this.isDefaultRuleset()){if(e.level++,a=mD(e,!0),e.level--,a&&t>=e.pos)throw new Error("inline rule didn't increment state.pos")}else for(let l=0;l=e.pos)throw new Error("inline rule didn't increment state.pos");break}}else e.pos=e.posMax;a||e.pos++,o[t]=e.pos}tokenize(e){const t=this.getRules(),n=t.length,i=e.posMax;if(!(e.env&&(Object.prototype.hasOwnProperty.call(e.env,"__mdtsRuleProfile")||Object.prototype.hasOwnProperty.call(e.env,"__mdtsProfileRules")))){const s=this.isDefaultRuleset();for(;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos")}if(a){if(e.pos>=i)break;continue}e.pending+=e.src.charAt(e.pos++)}e.pending&&e.pushPending();return}const o=this.ruler.getNamedRules("");for(;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos");break}}if(r){if(e.pos>=i)break;continue}e.pending+=e.src.charAt(e.pos++)}e.pending&&e.pushPending()}isDefaultRuleset(){return this.ruler.version===this.defaultRulerVersion&&this.ruler2.version===this.defaultRuler2Version}parseSource(e,t,n,i){if(typeof e=="string"&&e.length>0&&this.isDefaultRuleset()&&kV(e)){const l=new Us("text","",0);l.content=e,i.push(l);return}const o=new yV(e,t,n,i);this.tokenize(o);const s=this.getRules2(),r=s.length;if(!(o.env&&(Object.prototype.hasOwnProperty.call(o.env,"__mdtsRuleProfile")||Object.prototype.hasOwnProperty.call(o.env,"__mdtsProfileRules")))){for(let l=0;l0&&kV(s.content)){const r=new Us("text","",0);r.content=s.content,s.children.push(r);continue}e.md.inline.parse(s.content,e.md,e.env,s.children)}}}const S0e=/[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}]/u,x0e=/[0-9a-z]/i;function _0e(e){return/^\s]/i.test(e)}function E0e(e){return/^<\/a\s*>/i.test(e)}function I0e(e,t){if(t.schema||t.index!==0||!t.raw)return t;for(let n=1;n=0;r--){const a=o[r];if(a.type==="link_close"){for(r--;r>=0&&o[r].level!==a.level&&o[r].type!=="link_open";)r--;continue}if(a.type==="html_inline"&&(_0e(a.content)&&s>0&&s--,E0e(a.content)&&s++),s>0||a.type!=="text"||!e.md.linkify.test(a.content))continue;const l=a.content;let u=(e.md.linkify.match(l)||[]).map(h=>I0e(e.md.linkify,h));if(u.length===0)continue;const c=[];let d=a.level,f=0;u.length>0&&u[0].index===0&&r>0&&o[r-1].type==="text_special"&&(u=u.slice(1));for(let h=0;hf){const _=new Us("text","",0);_.content=l.slice(f,y),_.level=d,c.push(_)}const A=new Us("link_open","a",1);A.attrs=[["href",g]],A.level=d++,A.markup="linkify",A.info="auto",c.push(A);const b=new Us("text","",0);b.content=v,b.level=d,c.push(b);const w=new Us("link_close","a",-1);w.level=--d,w.markup="linkify",w.info="auto",c.push(w),f=m.lastIndex}if(f!==0){if(f=0;n--){const i=e[n];i.type==="text"&&!t&&(i.content=i.content.replace(D0e,L0e)),i.type==="link_open"&&i.info==="auto"&&t--,i.type==="link_close"&&i.info==="auto"&&t++}}function O0e(e){let t=0;for(let n=e.length-1;n>=0;n--){const i=e[n];i.type==="text"&&!t&&bV.test(i.content)&&(i.content=i.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1—").replace(/(^|\s)--(?=\s|$)/gm,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1–")),i.type==="link_open"&&i.info==="auto"&&t--,i.type==="link_close"&&i.info==="auto"&&t++}}function z0e(e){if(e.md?.options?.typographer)for(let t=e.tokens.length-1;t>=0;t--){const n=e.tokens[t];if(n.type!=="inline")continue;const i=n.content||(Array.isArray(n.children)?n.children.map(o=>o.type==="text"?o.content:"").join(""):"");R0e.test(i)&&P0e(n.children||[]),bV.test(i)&&O0e(n.children||[])}}var $0e=class{rules=[];cache=null;namedCache=null;version=0;invalidateCache(){this.cache=null,this.namedCache=null,this.version++}push(e,t){const n=this.rules.findIndex(i=>i.name===e);n>=0&&this.rules.splice(n,1),this.rules.push({name:e,fn:t,enabled:!0}),this.invalidateCache()}at(e,t){const n=this.rules.findIndex(i=>i.name===e);if(n<0)throw new Error(`Parser rule not found: ${e}`);this.rules[n].fn=t,this.invalidateCache()}before(e,t,n){const i=this.rules.findIndex(s=>s.name===e);if(i<0)throw new Error(`Parser rule not found: ${e}`);const o=this.rules.findIndex(s=>s.name===t);o>=0&&this.rules.splice(o,1),this.rules.splice(i,0,{name:t,fn:n,enabled:!0}),this.invalidateCache()}after(e,t,n){const i=this.rules.findIndex(s=>s.name===e);if(i<0)throw new Error(`Parser rule not found: ${e}`);const o=this.rules.findIndex(s=>s.name===t);o>=0&&this.rules.splice(o,1),this.rules.splice(i+1,0,{name:t,fn:n,enabled:!0}),this.invalidateCache()}enable(e,t){const n=Array.isArray(e)?e:[e],i=[];let o=!1;for(const s of n){const r=this.rules.findIndex(a=>a.name===s);if(r<0){if(!t)throw new Error(`Rules manager: invalid rule name ${s}`);continue}i.push(s),this.rules[r].enabled||(this.rules[r].enabled=!0,o=!0)}return o&&this.invalidateCache(),i}disable(e,t){const n=Array.isArray(e)?e:[e],i=[];let o=!1;for(const s of n){const r=this.rules.findIndex(a=>a.name===s);if(r<0){if(!t)throw new Error(`Rules manager: invalid rule name ${s}`);continue}i.push(s),this.rules[r].enabled&&(this.rules[r].enabled=!1,o=!0)}return o&&this.invalidateCache(),i}enableOnly(e){const t=new Set(e);let n=!1;for(const i of this.rules){const o=t.has(i.name);i.enabled!==o&&(i.enabled=o,n=!0)}n&&this.invalidateCache()}compileCache(){this.cache=this.rules.filter(e=>e.enabled).map(e=>e.fn),this.namedCache=this.rules.filter(e=>e.enabled).map(e=>({name:e.name,fn:e.fn}))}getRules(e=""){return this.cache||this.compileCache(),this.cache}getNamedRules(e=""){return this.namedCache||this.compileCache(),this.namedCache}};const j0e=/['"]/,gD=/['"]/g,vD="’";function lk(e,t,n){return e.slice(0,t)+n+e.slice(t+1)}function H0e(e,t){let n;const i=[],o=t.md&&t.md.options&&t.md.options.quotes||"“”‘’";for(let s=0;s=0&&!(i[n].level<=a);n--);if(i.length=n+1,r.type!=="text")continue;let l=r.content,u=0,c=l.length;e:for(;u=0)g=l.charCodeAt(d.index-1);else for(n=s-1;n>=0&&!(e[n].type==="softbreak"||e[n].type==="hardbreak");n--)if(e[n].content){g=e[n].content.charCodeAt(e[n].content.length-1);break}let v=32;if(u=48&&g<=57&&(h=f=!1),f&&h&&(f=y,h=A),!f&&!h){m&&(r.content=lk(r.content,d.index,vD));continue}if(h)for(n=i.length-1;n>=0;n--){let _=i[n];if(i[n].level=0;t--){const n=e.tokens[t];if(n.type!=="inline")continue;const i=typeof n.content=="string"?n.content:(n.children||[]).map(o=>o.content||"").join("");!j0e.test(i)||!n.children||H0e(n.children,e)}}function W0e(e){const t=e.tokens||[],n=t.length;for(let i=0;i=4||o.charCodeAt(c)!==62)return!1;if(i)return!0;const h=[],m=[],g=[],v=[],y=e.md.block.ruler.getRulesForState(e,"blockquote"),A=e.parentType;e.parentType="blockquote";let b=!1,w;for(w=t;w=d)break;if(o.charCodeAt(c++)===62&&!S){let F=l[w]+1,E,D;o.charCodeAt(c)===32?(c++,F++,D=!1,E=!0):o.charCodeAt(c)===9?(E=!0,(u[w]+F)%4===3?(c++,F++,D=!1):D=!0):E=!1;let j=F;for(h.push(s[w]),s[w]=c;c=d,m.push(u[w]),u[w]=l[w]+1+(E?1:0),g.push(l[w]),l[w]=j-F,v.push(a[w]),a[w]=c-s[w];continue}if(b)break;let I=!1;for(let F=0,E=y.length;F";const B=[t,0];M.map=B,e.md.block.tokenize(e,t,w);const C=e.push("blockquote_close","blockquote",-1);C.markup=">",e.lineMax=f,e.parentType=A,B[1]=e.line;for(let S=0;S=4){i++,o=i;continue}break}e.line=o;const s=e.push("code_block","code",0);return s.content=`${e.getLines(t,o,4+e.blkIndent,!1)} -`,s.map=[t,e.line],!0}function Z0e(e,t,n,i){let o=e.bMarks[t]+e.tShift[t],s=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||o+3>s)return!1;const r=e.src.charCodeAt(o);if(r!==126&&r!==96)return!1;let a=o;o=e.skipChars(o,r);let l=o-a;if(l<3)return!1;const u=e.src.slice(a,o),c=e.src.slice(o,s);if(r===96&&c.includes(String.fromCharCode(r)))return!1;if(i)return!0;let d=t,f=!1;for(;d++,!(d>=n||(o=a=e.bMarks[d]+e.tShift[d],s=e.eMarks[d],o=4)&&(o=e.skipChars(o,r),!(o-a=4)return!1;let c=o.charCodeAt(l);if(c!==35||l>=u)return!1;let d=1;for(c=o.charCodeAt(++l);c===35&&l6||ll&&kD(o.charCodeAt(f-1))&&(u=f),e.line=t+1;const h=e.push("heading_open",AD[d],1);h.markup=yD[d],h.map=[t,e.line];const m=e.push("inline","",0);m.content=o.slice(l,u).trim(),m.map=[t,e.line],m.children=[];const g=e.push("heading_close",AD[d],-1);return g.markup=yD[d],!0}function J0e(e){switch(e){case 9:case 32:return!0}return!1}function X0e(e,t,n,i){const o=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;let s=e.bMarks[t]+e.tShift[t];const r=e.src.charCodeAt(s++);if(r!==42&&r!==45&&r!==95)return!1;let a=1;for(;s|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp(`^|$))`,"i"),/^$/,!0],[new RegExp(`${i0e.source}\\s*$`),/^$/,!1]];function eve(e,t,n,i){let o=e.bMarks[t]+e.tShift[t],s=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||!e.md.options.html||e.src.charCodeAt(o)!==60)return!1;let r=e.src.slice(o,s),a=0;for(;a=48&&e<=57}var _V=class{src;md;env;tokens;bMarks=[];eMarks=[];tShift=[];sCount=[];bsCount=[];lineFlags=[];blkIndent=0;line=0;lineMax=0;tight=!1;ddIndent=-1;listIndent=-1;parentType="root";level=0;constructor(e,t,n,i){this.src=e,this.md=t,this.env=n,this.tokens=i;const o=this.src;let s=0,r=0,a=0,l=!1,u=0;for(let c=0,d=o.length;c0&&this.level++,this.tokens.push(i),i}isEmpty(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]}skipEmptyLines(e){const t=this.bMarks,n=this.tShift,i=this.eMarks;for(let o=this.lineMax;et;){const i=n.charCodeAt(--e);if(i!==9&&i!==32)return e+1}return e}skipChars(e,t){const n=this.src;for(let i=n.length;en;)if(t!==i.charCodeAt(--e))return e+1;return e}getLines(e,t,n,i){if(e>=t)return"";if(e+1===t){const c=e,d=this.bMarks[c];let f=d;const h=i?this.eMarks[c]+1:this.eMarks[c];let m=0;const g=this.src,v=this.bsCount,y=this.tShift;for(;fn?new Array(m-n+1).join(" ")+g.slice(f,h):g.slice(f,h)}const o=new Array(t-e),s=this.src,r=this.bMarks,a=this.eMarks,l=this.bsCount,u=this.tShift;for(let c=0,d=e;dn?o[c]=new Array(f-n+1).join(" ")+s.slice(m,g):o[c]=s.slice(m,g)}return o.join("")}};_V.prototype.Token=Us;function nve(e,t,n){for(let i=t;i=o)return!1;const s=n.charCodeAt(i);switch(s){case 35:case 42:case 43:case 45:case 60:case 62:case 95:case 96:case 126:return!0}return s>=48&&s<=57?!0:nve(n,i,o)}const wD=["","h1","h2"];function ive(e,t,n){const i=e.md.block.ruler.getRulesForState(e,"paragraph"),o=e.src,s=e.bMarks,r=e.tShift,a=e.eMarks,l=e.sCount,u=e.blkIndent,c=EV(e);if(l[t]-u>=4)return!1;const d=e.parentType;e.parentType="paragraph";let f=0,h,m=t+1;for(;m=_)break;if(l[m]-u>3)continue;if(l[m]>=u&&(h=o.charCodeAt(w),h===45||h===61)){let B=w+1,C=B;for(;B<_&&o.charCodeAt(B)===h;)B++;for(C=B;B<_;){const S=o.charCodeAt(B);if(S!==9&&S!==32)break;B++}if(B>=_){f=h===61?1:2;break}if(C-w>1)continue}if(l[m]<0||c&&!IV(e,m,o,w,_))continue;let M=!1;for(let B=0,C=i.length;Bw;){const M=o.charCodeAt(_-1);if(M!==9&&M!==32)break;_--}g=o.slice(w,_)}else g=e.getLines(t,m,u,!1).trim();e.line=m+1;const v=h===61?"=":"-",y=e.push("heading_open",wD[f],1);y.markup=v,y.map=[t,e.line];const A=e.push("inline","",0);A.content=g,A.map=[t,e.line-1],A.children=[];const b=e.push("heading_close",wD[f],-1);return b.markup=v,e.parentType=d,!0}function MV(e){switch(e){case 9:case 32:return!0}return!1}function CD(e,t){const n=e.eMarks,i=e.bMarks,o=e.tShift,s=e.src,r=n[t];let a=i[t]+o[t];const l=s.charCodeAt(a++);return l!==42&&l!==45&&l!==43||a=a)return-1;let u=s.charCodeAt(l++);if(u<48||u>57)return-1;for(;;){if(l>=a)return-1;if(u=s.charCodeAt(l++),u>=48&&u<=57){if(l-r>=10)return-1;continue}if(u===41||u===46)break;return-1}return l0&&++o=4||e.listIndent>=0&&e.sCount[a]-e.listIndent>=4&&e.sCount[a]=e.blkIndent&&(u=!0);let c,d,f;const h=e.src,m=e.bMarks,g=e.tShift,v=e.eMarks,y=e.sCount,A=e.bsCount,b=m[a]+g[a];if(b>=v[a])return!1;const w=h.charCodeAt(b);if(w>=48&&w<=57){if(f=SD(e,a),f<0||(c=!0,r=b,d=ove(e,a,f),u&&d!==1))return!1}else if(w===42||w===45||w===43){if(f=CD(e,a),f<0)return!1;c=!1}else return!1;if(u&&e.skipSpaces(f)>=v[a])return!1;if(i)return!0;const _=h.charCodeAt(f-1),M=String.fromCharCode(_);if(c){const E=e.push("ordered_list_open","ol",1);d!==void 0&&d!==1&&(E.attrs=[["start",String(d)]])}else e.push("bullet_list_open","ul",1);const B=[a,0];e.tokens[e.tokens.length-1].map=B,e.tokens[e.tokens.length-1].markup=M;let C=!1;const S=e.tokens.length-1,I=e.md.block.ruler.getRulesForState(e,"list"),F=e.parentType;for(e.parentType="list";a=o?z=1:z=D-E,z>4&&(z=1);const T=E+z,N=e.push("list_item_open","li",1);N.markup=M;const L=[a,0];N.map=L,c&&(N.info=f-r-1===1?sve[h.charCodeAt(r)-48]:h.slice(r,f-1));const H=e.tight,O=e.tShift[a],Q=e.sCount[a],Y=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=T,e.tight=!0,e.tShift[a]=j-m[a],e.sCount[a]=D,j>=o&&e.isEmpty(a+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,a,n,!0),(!e.tight||C)&&(l=!1),C=e.line-a>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=Y,e.tShift[a]=O,e.sCount[a]=Q,e.tight=H,e.push("list_item_close","li",-1).markup=M,a=e.line,L[1]=a,a>=n||e.sCount[a]=4)break;let W=!1;for(let Z=0,ee=I.length;Z3||u[f]<0)continue;if(o==="list"&&u[f]>=c){const b=r[f]+a[f],w=l[f];if(b=w||xD(s.charCodeAt(b+1)))break}else if(_>=48&&_<=57&&b+1=w){M=-1;break}const B=s.charCodeAt(M++);if(B>=48&&B<=57){if(M-b>=10){M=-1;break}continue}if((B===41||B===46)&&(M>=w||xD(s.charCodeAt(M))))break;M=-1;break}if(M>=0)break}}}const v=r[f]+a[f],y=l[f];if(d&&!IV(e,f,s,v,y))continue;let A=!1;for(let b=0,w=i.length;b=4||e.src.charCodeAt(o)!==91)return!1;function l(b){const w=e.lineMax;if(b>=w||e.isEmpty(b))return null;let _=!1;if(e.sCount[b]-e.blkIndent>3&&(_=!0),e.sCount[b]<0&&(_=!0),!_){const C=e.parentType;e.parentType="reference";let S=!1;for(let I=0,F=a.length;I"u"&&(e.env.references={}),typeof e.env.references[A]>"u"&&(e.env.references[A]={title:y,href:f}),e.line=r),!0):!1}function h8(e){switch(e){case 9:case 32:return!0}return!1}const cve=65536;function p8(e,t){const n=e.bMarks[t]+e.tShift[t],i=e.eMarks[t];return e.src.slice(n,i)}function dve(e,t){if(e.lineFlags)return(e.lineFlags[t]&nA.Pipe)!==0;for(let n=e.bMarks[t]+e.tShift[t],i=e.eMarks[t];nn)return!1;let o=t+1;if(e.sCount[o]=4)return!1;let s=e.bMarks[o]+e.tShift[o];if(s>=e.eMarks[o])return!1;const r=e.src.charCodeAt(s++);if(r!==124&&r!==45&&r!==58||s>=e.eMarks[o])return!1;const a=e.src.charCodeAt(s++);if(a!==124&&a!==45&&a!==58&&!h8(a)||r===45&&h8(a)||!dve(e,t))return!1;for(;s=4)return!1;u=_D(l),u.length&&u[0]===""&&u.shift(),u.length&&u[u.length-1]===""&&u.pop();const d=u.length;if(d===0||d!==c.length)return!1;if(i)return!0;const f=e.parentType;e.parentType="table";const h=e.md.block.ruler.getRulesForState(e,"blockquote"),m=e.push("table_open","table",1),g=[t,0];m.map=g;const v=e.push("thead_open","thead",1);v.map=[t,t+1];const y=e.push("tr_open","tr",1);y.map=[t,t+1];for(let w=0;w=4||(u=_D(l),u.length&&u[0]===""&&u.shift(),u.length&&u[u.length-1]===""&&u.pop(),b+=d-u.length,b>cve))break;if(o===t+2){const M=e.push("tbody_open","tbody",1);M.map=A=[t+2,0]}const _=e.push("tr_open","tr",1);_.map=[o,o+1];for(let M=0;Mr.name===e);if(o<0)throw new Error(`Parser rule not found: ${e}`);const s=this._rules.findIndex(r=>r.name===t);s>=0&&this._rules.splice(s,1),this._rules.splice(o,0,{name:t,enabled:!0,fn:n,alt:i?.alt||[]}),this.invalidateCache()}after(e,t,n,i){const o=this._rules.findIndex(r=>r.name===e);if(o<0)throw new Error(`Parser rule not found: ${e}`);const s=this._rules.findIndex(r=>r.name===t);s>=0&&this._rules.splice(s,1),this._rules.splice(o+1,0,{name:t,enabled:!0,fn:n,alt:i?.alt||[]}),this.invalidateCache()}getRules(e){const t=e||"";return this.cache||this.compileCache(),this.cache[t]??[]}getNamedRules(e){const t=e||"";return this.namedCache||this.compileCache(),this.namedCache[t]??[]}getRulesForState(e,t){const n=e?.env;return n&&(Object.prototype.hasOwnProperty.call(n,"__mdtsRuleProfile")||Object.prototype.hasOwnProperty.call(n,"__mdtsProfileRules"))?this.getNamedRules(t).map(({name:i,fn:o})=>(s,r,a,l)=>{const u=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),c=o(s,r,a,l),d=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now();return lg(s?.env,"block",i,d-u,c,!!l),c}):this.getRules(t)}at(e,t,n){const i=this._rules.findIndex(o=>o.name===e);if(i===-1)throw new Error(`Parser rule not found: ${e}`);this._rules[i].fn=t,n?.alt&&(this._rules[i].alt=n.alt),this.invalidateCache()}enable(e,t){const n=Array.isArray(e)?e:[e],i=[];let o=!1;return n.forEach(s=>{const r=this._rules.findIndex(a=>a.name===s);if(r===-1){if(t)return;throw new Error(`Rules manager: invalid rule name ${s}`)}i.push(s),this._rules[r].enabled||(this._rules[r].enabled=!0,o=!0)}),o&&this.invalidateCache(),i}disable(e,t){const n=Array.isArray(e)?e:[e],i=[];let o=!1;return n.forEach(s=>{const r=this._rules.findIndex(a=>a.name===s);if(r===-1){if(t)return;throw new Error(`Rules manager: invalid rule name ${s}`)}i.push(s),this._rules[r].enabled&&(this._rules[r].enabled=!1,o=!0)}),o&&this.invalidateCache(),i}enableOnly(e){const t=new Set(e);let n=!1;for(const i of this._rules){const o=t.has(i.name);i.enabled!==o&&(i.enabled=o,n=!0)}n&&this.invalidateCache()}compileCache(){const e=new Set([""]);for(const i of this._rules)if(i.enabled)for(const o of i.alt)e.add(o);const t=Object.create(null),n=Object.create(null);for(const i of e){const o=[],s=[];for(const r of this._rules)r.enabled&&(i!==""&&!r.alt.includes(i)||(o.push(r.fn),s.push({name:r.name,fn:r.fn})));t[i]=o,n[i]=s}this.cache=t,this.namedCache=n}};const ck=[["table",fve,["paragraph","reference"]],["code",K0e],["fence",Z0e,["paragraph","reference","blockquote","list"]],["blockquote",q0e,["paragraph","reference","blockquote","list"]],["hr",X0e,["paragraph","reference","blockquote","list"]],["list",ave,["paragraph","reference","blockquote"]],["reference",uve],["html_block",eve,["paragraph","reference","blockquote"]],["heading",Y0e,["paragraph","reference","blockquote"]],["lheading",ive],["paragraph",lve]];var pve=class{ruler;cachedRulesVersion=-1;cachedRules=[];constructor(){this.ruler=new hve;for(let e=0;e=l[c];)c++;if(e.line=c,c>=n||u[c]=s){e.line=n;break}const h=e.line;let m=!1;for(let g=0;g=e.line)throw new Error("block rule didn't increment state.line");break}if(!m)throw new Error("none of the block rules matched");e.tight=!d,r[e.line-1]+a[e.line-1]>=l[e.line-1]&&(d=!0),c=e.line,c=l[c]&&(d=!0,c++,e.line=c)}return}const f=this.ruler.getNamedRules("");for(;c=l[c];)c++;if(e.line=c,c>=n||u[c]=s){e.line=n;break}const h=e.line;let m=!1;for(let g=0;g=e.line)throw new Error("block rule didn't increment state.line");break}}if(!m)throw new Error("none of the block rules matched");e.tight=!d,r[e.line-1]+a[e.line-1]>=l[e.line-1]&&(d=!0),c=e.line,c=l[c]&&(d=!0,c++,e.line=c)}}parse(e,t,n,i){if(!e||e.length===0)return;const o=new _V(e,t,n,i);this.tokenize(o,o.line,o.lineMax)}getRules(){return this.cachedRulesVersion!==this.ruler.version&&(this.cachedRules=this.ruler.getRules(""),this.cachedRulesVersion=this.ruler.version),this.cachedRules}},TV=class{src;env;tokens;inlineMode;md;constructor(e,t,n={}){this.src=typeof e=="string"?e||"":e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=t}};TV.prototype.Token=Us;const ED=[["normalize",F0e],["block",zge],["inline",C0e],["linkify",M0e],["replacements",z0e],["smartquotes",U0e],["text_join",W0e]],mve={html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",maxNesting:100},gve={parseLinkLabel:mE,parseLinkDestination:pE,parseLinkTitle:gE};function vve(){return{...mve}}function Ave(){return{...gve}}var yve=class{fallbackParser;lastState=null;block;inline;ruler;linkifyInstance=null;cachedCoreRulesVersion=-1;cachedCoreRules=[];cachedCoreNamedRulesVersion=-1;cachedCoreNamedRules=[];constructor(){this.block=new pve,this.inline=new w0e,this.ruler=new $0e;for(let e=0;e@[\]\\^_`{}~]/;function ow(e){return!kve.test(e)}function xv(e,t){const n=e.indexOf(` -`,t);return n===-1?e.length:n}function E9(e,t,n){for(let i=t;i3)return ow(e);for(let t=0;t=i||t.charCodeAt(r)!==32)return!1;let a=r+1;for(;aa&&t.charCodeAt(l-1)===32;)l--;let u=l;for(;u>a&&t.charCodeAt(u-1)===35;)u--;if(u>a&&t.charCodeAt(u-1)===32)for(l=u-1;l>a&&t.charCodeAt(l-1)===32;)l--;const c=t.slice(a,l);if(!ow(c))return!1;const d=wve[s],f=Cve[s],h=ru("heading_open",d,1,0);h.map=[o,o+1],h.markup=f,e.push(h),e.push(kE(c,o,1));const m=ru("heading_close",d,-1,0);return m.markup=f,e.push(m),!0}function xve(e,t,n){const i=ru("paragraph_open","p",1,0);i.map=[n,n+1],e.push(i),e.push(kE(t,n,1)),e.push(ru("paragraph_close","p",-1,0))}function _ve(e,t,n){const i=e.charCodeAt(n-1);return i===32||i===9?e.slice(t,n).trim():e.slice(t,n)}function A8(e,t){for(;t=1e5?MD:v8,o="",s=!1,r=!1,a=0,l=0;for(;a"]/,TD=/[&<>"]/g,Rve=/&/g,Dve=/[<>"]/g,Nve={"&":"&","<":"<",">":">",'"':"""};function y8(e){return Nve[e]||e}function Gi(e){if(e.length===0)return"";if(e.length<32)return Fve.test(e)?e.replace(TD,y8):e;const t=e.includes("&"),n=e.includes("<"),i=e.includes(">"),o=e.includes('"');return!t&&!n&&!i&&!o?e:t&&!n&&!i&&!o?e.replace(Rve,"&"):t?e.replace(TD,y8):e.replace(Dve,y8)}const Lve=new RegExp(`${/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g.source}|${/&([a-z#][a-z0-9]{1,31});/gi.source}`,"gi"),Pve=/^#(?:x[a-f0-9]{1,8}|\d{1,8})$/i;function BV(e){return!e.includes("\\")&&!e.includes("&")?e:e.replace(Lve,(t,n,i)=>{if(n)return n;if(Pve.test(i)){const s=i[1].toLowerCase()==="x"?Number.parseInt(i.slice(2),16):Number.parseInt(i.slice(1),10);return Y4(s)?n2(s):"�"}const o=sE(t);return o!==t?o:t})}const Ove=/[\n!#$%&*+\-:<=>@[\]\\^_`{}~]/,zve=/[\n!"#$%&*+\-:<=>@[\]\\^_`{}~]/,$ve=/"/g;function Dm(e,t){const n=e.indexOf(` -`,t);return n===-1?e.length:n}function sw(e,t,n){for(let i=t;i=e.length||e.charCodeAt(t)===10?!1:!sw(e,t,Dm(e,t))}function BD(e,t,n){return t+2=n||e.charCodeAt(o)!==32)return null;let s=o+1;for(;ss&&e.charCodeAt(r-1)===32;)r--;let a=r;for(;a>s&&e.charCodeAt(a-1)===35;)a--;if(a>s&&e.charCodeAt(a-1)===32)for(r=a-1;r>s&&e.charCodeAt(r-1)===32;)r--;const l=bE(e.slice(s,r));return l===null?null:`${l} -`}function FD(e,t,n){return t+1" -`;case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return null}return`
  • ${e[t]}
  • -`}function Qve(e,t,n){const i=t+2;if(n===i+1)return Wve(e,i);const o=bE(e.slice(t+2,n));return o===null?null:`
  • ${o}
  • -`}function Vve(e,t,n){for(;tt;){const o=e.charCodeAt(n-1);if(o!==32&&o!==9)break;n--}let i=n;for(let o=t;o`:"
    ",i.lang=s,i.open=d),{html:`${d}${Gi(c)}
    -`,nextPos:u=25e4,s=[],r={lang:null,open:""};let a="",l="",u="",c="";for(;n -`;w -`,a=y,l=A}let b=dk(e,v);for(;b${v}

    -`,u=h,c=m}const g=de.core.parse(t,n,e).tokens);let r=I9(t,o);if(o.maxChunks&&r.length>o.maxChunks&&(r=Jve(r,o.maxChunks)),M9(t,r))return c8(n,{count:1,fallback:!0,fallbackReason:"unsafe-chunk-boundary",maxChunkChars:o.maxChunkChars,maxChunkLines:o.maxChunkLines}),ag(n,s,()=>e.core.parse(t,n,e).tokens);let a=0;const l=[];return c8(n,{count:r.length,maxChunkChars:o.maxChunkChars,maxChunkLines:o.maxChunkLines,globalStateDetected:s||void 0,globalStateFallbackDisabled:o.fallbackOnGlobalState===!1&&!!s}),ag(n,s,()=>{for(let u=0;u=3&&(c?c.marker===b&&_>=c.length&&(c=null):c={marker:b,length:_})}}const v=m-f;o+=v,s+=1,a+=1,g?(l=0,u=0):(l+=1,u+=v);const y=g;if((o>=t.maxChunkChars||s>=t.maxChunkLines)&&!c)if(y)d(m);else{const A=Math.max(10,Math.floor(t.maxChunkLines*.5)),b=Math.max(t.maxChunkChars,8e3);(l>=A||u>=b)&&d(m)}f=m}return n&&d(e.length),i}function M9(e,t,n={rangesCoverWholeSource:!0}){const i=n.rangesCoverWholeSource?t.length-1:t.length;for(let o=0;oe.length||e.charCodeAt(t-1)!==10)return!1;let n=t-2;for(;n>=0&&e.charCodeAt(n)!==10;)n--;for(let i=n+1;i=0;i--)n.push(e[i]);for(;n.length;){const i=n.pop();if(i.map&&(i.map[0]+=t,i.map[1]+=t),i.children)for(let o=i.children.length-1;o>=0;o--)n.push(i.children[o])}}function Yve(e,t){for(let n=0;n=0;i--)n.push(e[i]);for(;n.length;){const i=n.pop();if(i.map&&(i.map[0]+=t,i.map[1]+=t),i.children)for(let o=i.children.length-1;o>=0;o--)n.push(i.children[o])}}function vf(e){return e.length===0?0:$o(e)+(e.charCodeAt(e.length-1)===10?0:1)}function sAe(e,t,n){for(let i=t;i=3&&(n?n.marker===r&&l>=n.length&&(n=null):n={marker:r,length:l})}i=o===e.length?e.length:o+1}return n!==null}function aAe(e,t){if(e.length===0||e.charCodeAt(e.length-1)!==10)return!1;let n=e.length-2;for(;n>=0&&e.charCodeAt(n)!==10;)n--;return sAe(e,n+1,e.length-1)?!rAe(e,t):!1}function lAe(e,t,n,i={}){const o=i.mode??"full",s=i.fenceAware??(o==="stream"?e.options.streamChunkFenceAware??!0:e.options.fullChunkFenceAware??!0);if(i.maxChunkChars!==void 0||i.maxChunkLines!==void 0||i.autoTune===!1){const r=i.maxChunkChars??(o==="stream"?e.options.streamChunkSizeChars??nAe:e.options.fullChunkSizeChars??eAe),a=i.maxChunkLines??(o==="stream"?e.options.streamChunkSizeLines??iAe:e.options.fullChunkSizeLines??tAe);return{maxChunkChars:r,maxChunkLines:a,holdBelowChars:r,holdBelowLines:a,fenceAware:s}}return o==="stream"?t<=5e3?{maxChunkChars:16e3,maxChunkLines:250,holdBelowChars:16e3,holdBelowLines:250,fenceAware:s}:t<=2e4?{maxChunkChars:16e3,maxChunkLines:200,holdBelowChars:16e3,holdBelowLines:200,fenceAware:s}:t<=5e4?{maxChunkChars:16e3,maxChunkLines:250,holdBelowChars:16e3,holdBelowLines:250,fenceAware:s}:t<=5e5?{maxChunkChars:32e3,maxChunkLines:350,holdBelowChars:32e3,holdBelowLines:350,fenceAware:s}:{maxChunkChars:64e3,maxChunkLines:700,holdBelowChars:64e3,holdBelowLines:700,fenceAware:s}:t<=1e5&&n<=2500?{maxChunkChars:32e3,maxChunkLines:350,holdBelowChars:1e5,holdBelowLines:2500,fenceAware:s}:t<=2e5?{maxChunkChars:2e4,maxChunkLines:150,holdBelowChars:2e4,holdBelowLines:150,fenceAware:s}:t<=5e5?{maxChunkChars:32e3,maxChunkLines:350,holdBelowChars:32e3,holdBelowLines:350,fenceAware:s}:{maxChunkChars:64e3,maxChunkLines:700,holdBelowChars:64e3,holdBelowLines:700,fenceAware:s}}var K2=class{md;options;pending="";tokens=[];committedChars=0;committedLines=0;fedChunks=0;parsedChunks=0;globalStateEnv=null;markedGlobalStateReason=null;constructor(e,t={}){if(this.md=e,this.options={mode:"full",autoTune:!0,retainTokens:!0,...t},this.options.retainTokens===!1&&!this.options.onChunkTokens)throw new Error("UnboundedBuffer with retainTokens=false requires onChunkTokens")}feed(e){e&&(this.pending+=e,this.fedChunks+=1)}flushAvailable(e={}){if(!this.pending)return null;const t=this.resolveWindow(),n=vf(this.pending);if(this.pending.length=i||n>=o}function PV(e,t,n){if(e.options.autoUnbounded===!1)return"no";if(t>=(e.options.autoUnboundedThresholdChars??RV))return"yes";const i=e.options.autoUnboundedThresholdLines??DV;return n!==void 0?n>=i?"yes":"no":t+1e.core.parse(t,n,e).tokens);const s=[],r=new K2(e,{mode:"full",...i,retainTokens:!1,onChunkTokens(a){NV(s,a)}});if(o&&fE(n,o),r.feed(t),r.flushForce(n),o&&(hE(n),i.fallbackOnGlobalState===!1)){const a=bd(n)?.unbounded;a&&(a.globalStateDetected=o,a.globalStateFallbackDisabled=!0)}return s}const ug=(e,t,n)=>en?n:e;function OV(e){return e.experimental?{...e,...e.experimental}:e}const ND=[{max:5e3,strategy:"discrete",maxChunkChars:32e3,maxChunkLines:150,maxChunks:8,notes:"<=5k"},{max:2e4,strategy:"discrete",maxChunkChars:24e3,maxChunkLines:200,maxChunks:12,notes:"<=20k"},{max:1e5,strategy:"plain",notes:"<=100k plain"},{max:2e5,strategy:"discrete",maxChunkChars:2e4,maxChunkLines:150,maxChunks:12,notes:"<=200k"},{max:5e5,strategy:"discrete",maxChunkChars:64e3,maxChunkLines:700,maxChunks:16,notes:"<=500k"},{max:5e6,strategy:"discrete",maxChunkChars:64e3,maxChunkLines:700,maxChunks:16,notes:"<=5M"}],LD=[{max:5e3,strategy:"discrete",maxChunkChars:16e3,maxChunkLines:250,maxChunks:8,notes:"<=5k"},{max:2e4,strategy:"discrete",maxChunkChars:2e4,maxChunkLines:200,maxChunks:24,notes:"<=20k"},{max:1e5,strategy:"discrete",maxChunkChars:2e4,maxChunkLines:200,maxChunks:24,notes:"<=100k"},{max:5e5,strategy:"discrete",maxChunkChars:64e3,maxChunkLines:700,maxChunks:32,notes:"<=500k"},{max:5e6,strategy:"discrete",maxChunkChars:64e3,maxChunkLines:700,maxChunks:32,notes:"<=5M"}];function zV(e,t){return{strategy:t.strategy,maxChunkChars:t.maxChunkChars,maxChunkLines:t.maxChunkLines,maxChunks:t.maxChunks,fenceAware:e,notes:t.notes}}function hAe(e,t=Math.max(0,e/40|0),n={}){const i=OV(n),o=i.fullChunkFenceAware??!0,s=i.fullChunkTargetChunks??8,r=i.fullChunkAdaptive!==!1;for(let a=0;a5e6?{strategy:"plain",fenceAware:o,notes:">5M plain"}:r?{strategy:"adaptive",maxChunkChars:ug(Math.ceil(e/s),8e3,64e3),maxChunkLines:ug(Math.ceil(t/s),150,700),maxChunks:ug(Math.ceil(e/64e3),s,16),fenceAware:o,notes:"adaptive fallback"}:{strategy:"discrete",maxChunkChars:i.fullChunkSizeChars??1e4,maxChunkLines:i.fullChunkSizeLines??200,fenceAware:o,maxChunks:i.fullChunkMaxChunks}}function PD(e,t=Math.max(0,e/40|0),n={}){const i=OV(n),o=i.streamChunkFenceAware??!0,s=i.streamChunkTargetChunks??8,r=i.streamChunkAdaptive!==!1;for(let a=0;a5e6?{strategy:"plain",fenceAware:o,notes:">5M plain"}:r?{strategy:"adaptive",maxChunkChars:ug(Math.ceil(e/s),8e3,64e3),maxChunkLines:ug(Math.ceil(t/s),150,700),maxChunks:ug(Math.ceil(e/64e3),s,32),fenceAware:o,notes:"adaptive fallback"}:{strategy:"discrete",maxChunkChars:i.streamChunkSizeChars??1e4,maxChunkLines:i.streamChunkSizeLines??200,maxChunks:i.streamChunkMaxChunks,fenceAware:o}}var pAe={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"]},inline2:{rules:["balance_pairs","emphasis","fragments_join"]}}},mAe={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}},gAe={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["paragraph"]},inline:{rules:["text"]},inline2:{rules:["balance_pairs","fragments_join"]}}};function X4(e){return!!e&&(typeof e=="object"||typeof e=="function")&&typeof e.then=="function"}function T9(e,t){if(X4(e))throw new TypeError(`Renderer rule "${t}" returned a Promise. Use renderAsync() instead.`);return e}const OD=e=>X4(e)?e:Promise.resolve(e);function oA(e){switch(e){case"alt":case"class":case"href":case"id":case"lang":case"rel":case"src":case"start":case"style":case"target":case"title":return e;default:return Gi(e)}}function fh(e){if(!e||e.length===0)return"";const t=e[0];let n=` ${oA(t[0])}="${Gi(t[1])}"`;for(let i=1;i=e.length)return{langName:e,langAttrs:""};let n=t;for(;n${t} -`;const s=e.attrIndex("class"),r=e.attrs?e.attrs.slice():[],a=`${o.langPrefix??"language-"}${i}`;return s<0?r.push(["class",a]):(r[s]=r[s].slice(),r[s][1]+=` ${a}`),`
    ${t}
    -`}return`
    ${t}
    -`}function o2(e){return!e.attrs||e.attrs.length===0?`${Gi(e.content)}`:`${Gi(e.content)}`}function YS(e){const t=Gi(e.content);return e.attrs?`${t} -`:`
    ${t}
    -`}function vAe(e,t){const n=e.attrs;if(!n||n.length===0)switch(e.type){case"paragraph_open":return`${t}

    `;case"heading_open":return`<${e.tag}>`;case"td_open":return`${t}`;case"th_open":return`${t}`;default:return null}if(n.length===1&&n[0][0]==="style"){if(e.type==="td_open")return`${t}`;if(e.type==="th_open")return`${t}`}return null}function zD(e){const t=e.attrs;return!t||t.length===0?"":t.length===1?``:t.length===2?``:``}function AAe(e){switch(e.type){case"text":case"text_special":case"softbreak":case"hardbreak":case"html_inline":case"code_inline":case"image":return!0;default:return!1}}function $D(e){switch(e.type){case"text":case"text_special":case"softbreak":case"hardbreak":case"html_inline":case"code_inline":return!0;default:return!1}}function aw(e,t){if(e.hidden)return"";const n=e.attrs,i=e.nesting,o=e.tag;if(!n||n.length===0)return i===0?t?`<${o} />`:`<${o}>`:i===-1?``:`<${o}>`;let s=(i===-1?"`}const yAe={langPrefix:"language-",xhtmlOut:!1,breaks:!1},fk=Object.prototype.hasOwnProperty,wi={code_inline(e,t){return o2(e[t])},code_block(e,t){return YS(e[t])},fence(e,t,n,i,o){const s=e[t],r=s.info?BV(s.info).trim():"",{langName:a,langAttrs:l}=$V(r),u=n.highlight,c=Gi(s.content);if(!u)return sA(s,c,r,a,n);const d=u(s.content,a,l);return X4(d)?d.then(f=>sA(s,f||c,r,a,n)):sA(s,d||c,r,a,n)},image(e,t,n,i,o){const s=e[t],r=o.renderInlineAsText(s.children||[],n,i),a=s.attrIndex("alt");return a>=0&&s.attrs?s.attrs[a][1]=r:s.attrs?s.attrs.push(["alt",r]):s.attrs=[["alt",r]],aw(s,n.xhtmlOut===!0)},hardbreak(e,t,n){return n.xhtmlOut?`
    -`:`
    -`},softbreak(e,t,n){return n.breaks?n.xhtmlOut?`
    -`:`
    -`:` -`},text(e,t){return Gi(e[t].content)},text_special(e,t){return Gi(e[t].content)},html_block(e,t){return e[t].content},html_inline(e,t){return e[t].content}};function jD(e,t,n){const i=e.info?BV(e.info).trim():"",{langName:o,langAttrs:s}=$V(i),r=t.highlight,a=Gi(e.content);if(!r)return sA(e,a,i,o,t);const l=r(e.content,o,s);if(X4(l))throw new TypeError('Renderer rule "fence" returned a Promise. Use renderAsync() instead.');return sA(e,l||a,i,o,t)}function k8(e,t,n,i){switch(e.type){case"text":return t.text===wi.text?e.content.length===0?"":Gi(e.content):null;case"text_special":return t.text_special===wi.text_special?e.content.length===0?"":Gi(e.content):null;case"softbreak":return t.softbreak===wi.softbreak?i:null;case"hardbreak":return t.hardbreak===wi.hardbreak?n:null;case"html_inline":return t.html_inline===wi.html_inline?e.content:null;case"code_inline":return t.code_inline===wi.code_inline?o2(e):null;default:return null}}function kAe(e,t,n,i,o){const s=e[0];switch(s.type){case"text":if(o.text===wi.text)return s.content.length===0?"":Gi(s.content);break;case"text_special":if(o.text_special===wi.text_special)return s.content.length===0?"":Gi(s.content);break;case"softbreak":if(o.softbreak===wi.softbreak)return t.breaks?t.xhtmlOut?`
    -`:`
    -`:` -`;break;case"hardbreak":if(o.hardbreak===wi.hardbreak)return t.xhtmlOut?`
    -`:`
    -`;break;case"html_inline":if(o.html_inline===wi.html_inline)return s.content;break;case"code_inline":if(o.code_inline===wi.code_inline)return o2(s);break}const r=o[s.type];if(!r)return aw(s,t.xhtmlOut===!0);const a=r(e,0,t,n,i);return typeof a=="string"?a:T9(a,s.type)}var bAe=class{rules;baseOptions;normalizedBase;constructor(e={}){this.baseOptions={...e},this.normalizedBase=this.buildNormalizedBase(),this.rules={...wi}}set(e){return this.baseOptions={...this.baseOptions,...e},this.normalizedBase=this.buildNormalizedBase(),this}render(e,t,n){if(!Array.isArray(e))throw new TypeError("render expects token array as first argument");if(e.length===1)return this.renderSingleToken(e,e[0],t,n);const i=this.mergeOptions(t),o=n??{},s=this.rules,r=i.xhtmlOut===!0;let a,l,u,c,d,f,h="",m="",g=!1,v="";for(let y=0;y0&&e[y-1].hidden?` -`:"";if(b==="list_item_open"&&(!A.attrs||A.attrs.length===0)&&y+3${this.renderInlineTokens(C.children||[],i,o)}`,y+=3;continue}}if(y+2 -`,y+=2;continue}}}if(b==="inline"){const B=A.children||[];if(B.length===1){g||(a=s.text,l=s.text_special,u=s.softbreak,c=s.hardbreak,d=s.html_inline,f=s.code_inline,h=i.xhtmlOut?`
    -`:`
    -`,m=i.breaks?h:` -`,g=!0);const C=B[0];switch(C.type){case"text":if(a===wi.text){v+=Gi(C.content);continue}break;case"text_special":if(l===wi.text_special){v+=Gi(C.content);continue}break;case"softbreak":if(u===wi.softbreak){v+=m;continue}break;case"hardbreak":if(c===wi.hardbreak){v+=h;continue}break;case"html_inline":if(d===wi.html_inline){v+=C.content;continue}break;case"code_inline":if(f===wi.code_inline){v+=o2(C);continue}break}}v+=this.renderInlineTokens(B,i,o);continue}const _=s[b];if(!_){const B=A.attrs;if(!A.hidden){if(!B||B.length===0)switch(b){case"hr":v+=r?`


    -`:`
    -`;continue;case"heading_open":v+=`<${A.tag}>`;continue;case"heading_close":v+=` -`;continue;case"paragraph_open":v+=`${w}

    `;continue;case"paragraph_close":v+=`

    -`;continue;case"list_item_open":{const C=e[y+1];v+=w+(C&&(C.type==="inline"||C.hidden||C.nesting===-1&&C.tag==="li")?"
  • ":`
  • -`);continue}case"list_item_close":v+=`
  • -`;continue;case"bullet_list_open":v+=`${w}
      -`;continue;case"bullet_list_close":v+=`
    -`;continue;case"blockquote_open":v+=w+(e[y+1]&&e[y+1].nesting===-1&&e[y+1].tag==="blockquote"?"
    ":`
    -`);continue;case"blockquote_close":v+=`
    -`;continue;case"ordered_list_open":v+=`${w}
      -`;continue;case"ordered_list_close":v+=`
    -`;continue;case"table_open":v+=`${w} -`;continue;case"table_close":v+=`
    -`;continue;case"thead_open":v+=`${w} -`;continue;case"thead_close":v+=` -`;continue;case"tbody_open":v+=`${w} -`;continue;case"tbody_close":v+=` -`;continue;case"tr_open":v+=`${w} -`;continue;case"tr_close":v+=` -`;continue;case"td_open":v+=`${w}`;continue;case"td_close":v+=` -`;continue;case"th_open":v+=`${w}`;continue;case"th_close":v+=` -`;continue}else if(B.length===1){const C=B[0];if(b==="ordered_list_open"&&C[0]==="start"){v+=`${w}
      -`;continue}if(b==="td_open"&&C[0]==="style"){v+=`${w}`;continue}if(b==="th_open"&&C[0]==="style"){v+=`${w}`;continue}}}v+=this.renderToken(e,y,i);continue}if(b==="code_block"&&_===wi.code_block){v+=YS(A);continue}if(b==="fence"&&_===wi.fence){v+=jD(A,i);continue}if(b==="html_block"&&_===wi.html_block){v+=A.content;continue}const M=_(e,y,i,o,this);typeof M=="string"?v+=M:v+=T9(M,A.type)}return v}async renderAsync(e,t,n){if(!Array.isArray(e))throw new TypeError("render expects token array as first argument");const i=this.mergeOptions(t),o=n??{},s=this.rules;let r="";for(let a=0;a0&&e[t-1].hidden?` -`:"",c=l?`> -`:">";if(!a||a.length===0)return s===0?n.xhtmlOut?`${u}<${r} /${c}`:`${u}<${r}${c}`:s===-1?`${u}(n||(n={...t}),n);if(fk.call(e,"highlight")&&e.highlight!==t.highlight&&(i().highlight=e.highlight),fk.call(e,"langPrefix")){const o=e.langPrefix;o!==t.langPrefix&&(i().langPrefix=o)}if(fk.call(e,"xhtmlOut")){const o=e.xhtmlOut;o!==t.xhtmlOut&&(i().xhtmlOut=o)}if(fk.call(e,"breaks")){const o=e.breaks;o!==t.breaks&&(i().breaks=o)}return n||t}buildNormalizedBase(){return Object.freeze({...yAe,...this.baseOptions})}renderSingleToken(e,t,n,i){const o=this.rules,s=t.type;if(s==="code_block"&&o.code_block===wi.code_block)return YS(t);if(s==="html_block"&&o.html_block===wi.html_block)return t.content;const r=this.mergeOptions(n),a=i??{};if(s==="inline")return this.renderInlineTokens(t.children||[],r,a);const l=o[s];if(!l)return t.block?this.renderToken(e,0,r):aw(t,r.xhtmlOut===!0);if(s==="fence"&&l===wi.fence)return jD(t,r);const u=l(e,0,r,a,this);return typeof u=="string"?u:T9(u,s)}renderInlineTokens(e,t,n){if(!e||e.length===0)return"";const i=this.rules;if(e.length===1)return kAe(e,t,n,this,i);const o=t.xhtmlOut===!0,s=o?`
      -`:`
      -`,r=t.breaks?s:` -`,a=i.text,l=i.text_special,u=i.softbreak,c=i.hardbreak,d=i.html_inline,f=i.code_inline,h=i.link_open,m=i.link_close,g=i.em_open,v=i.em_close,y=i.strong_open,A=i.strong_close;let b="";for(let w=0;w`;if(u===wi.softbreak&&w+3`,w+=1;continue}if(_.type==="em_open"&&!g&&!v&&w+2${S}`,w+=2;continue}}}if(_.type==="strong_open"&&!y&&!A&&w+2${S}`,w+=2;continue}}}switch(_.type){case"text":if(a===wi.text){const C=_.content.length===0?"":Gi(_.content);if(d===wi.html_inline&&w+1=4)return!0;continue}if(a===9){if(r+=4-r%4,s++,r>=4)return!0;continue}break}if(s0&&u<=6){if(l=3)return!0;break}default:if(a>=48&&a<=57){let l=s+1;for(;l57)break;l++}if(l=q,!te&&pe!==void 0&&(we=$o(e),te=we>=pe)),te){const G=this.parseFullDocument(e,D,n,we,!1);return this.stats.total+=1,this.stats.fullParses+=1,this.stats.lastMode="full",As(D,{area:"stream",path:"stream-full",reason:"skip-cache-large-one-shot",unbounded:!!bd(D)?.unbounded}),G.tokens}else if(L){const G=(Ae,ue,Se)=>AeSe?Se:Ae;we===void 0&&(we=$o(e));const J=ee&&!Z?PD(e.length,we,n.options):null,fe=J?.maxChunkChars??(H?G(Math.ceil(e.length/O),8e3,64e3):Q??1e4),me=J?.maxChunkLines??(H?G(Math.ceil(we/O),150,700):Y??200),ve=J?.maxChunks??(H?G(Math.ceil(e.length/64e3),O,32):W),oe=e.length>0&&e.charCodeAt(e.length-1)===10,ae=N&&e.length>=this.IMPLICIT_STREAM_CHUNK_MIN_CHARS&&J?.strategy!=="plain";if((T||ae)&&(e.length>=fe*2||we>=me*2)&&oe){const Ae=rw(n,e,D,{maxChunkChars:fe,maxChunkLines:me,fenceAware:J?.fenceAware??X,maxChunks:ve});return this.cache={src:e,tokens:Ae,env:D,lineCount:we,lastSegment:void 0,globalStateReason:Da(e)},this.updateCacheLineCount(this.cache,we),this.recordChunkedParseResult(D,T?"explicit-initial-large-doc":"default-initial-large-doc"),Ae}}const ie=this.parseFullDocument(e,D,n,we);return we=ie.lineCount,this.cache={src:e,tokens:ie.tokens,env:D,lineCount:we,lastSegment:void 0,globalStateReason:Da(e)},this.updateCacheLineCount(this.cache,we),this.stats.total+=1,this.stats.fullParses+=1,this.stats.lastMode="full",As(D,{area:"stream",path:"stream-full",reason:"initial-parse",unbounded:!!bd(D)?.unbounded}),ie.tokens}if(e===o.src)return this.stats.total+=1,this.stats.cacheHits+=1,this.stats.lastMode="cache",As(o.env,{area:"stream",path:"stream-cache",reason:"same-source"}),o.tokens;const s=e.startsWith(o.src)?e.slice(o.src.length):null;let r=o.globalStateReason;r===void 0&&(r=Da(o.src),o.globalStateReason=r);const a=r?null:s!==null?this.detectGlobalStateForAppend(o,s):Da(e),l=r||a;if(l){const D=i??o.env;Gd(D);const j=Da(e),z=this.parseFullDocument(e,D,n),T=z.tokens,N=z.lineCount;return this.cache={src:e,tokens:T,env:D,lineCount:N,lastSegment:void 0,globalStateReason:j},this.updateCacheLineCount(this.cache,N),this.stats.total+=1,this.stats.fullParses+=1,this.stats.lastMode="full",As(D,{area:"stream",path:"stream-full",reason:`global-state:${l}`,unbounded:!!bd(D)?.unbounded}),T}const u=n.options?.streamOptimizationMinSize??this.MIN_SIZE_FOR_OPTIMIZATION;if(o.src.length5e3?j=8:c.length>1e3?j=6:c.length>200&&(j=4),j=Math.min(j,D);let z=null;const T=n.options?.streamContextParseStrategy??"chars",N=n.options?.streamContextParseMinChars??200,L=n.options?.streamContextParseMinLines??2;let H;const O=()=>(H===void 0&&(H=$o(c)),H),Q=this.canDirectlyParseAppend(o),Y=Q&&this.shouldUseUnboundedAppend(e,o,c);let W=!1;if(!Q)switch(T){case"lines":W=O()>=L;break;case"constructs":if(c.length>=N){W=!0;break}if(SAe(c)){W=!0;break}W=O()>=L;break;case"chars":default:W=c.length>=N}if(j>0&&W){const X=this.getTailLines(o.src,j)+c;try{const ge=this.core.parse(X,o.env,n).tokens,q=ge.findIndex(pe=>pe.map&&typeof pe.map[1]=="number"&&pe.map[1]>j);if(q!==-1){const pe=ge.slice(q),we=D-j;we!==0&&this.shiftTokenLines(pe,we),z={tokens:pe}}}catch{z=null}}else z=null;if(!z){const X=D;if(Y)z={tokens:iA(n,c,o.env,{mode:"stream"})},X>0&&this.shiftTokenLines(z.tokens,X);else{const ge=this.core.parse(c,o.env,n);X>0&&this.shiftTokenLines(ge.tokens,X),z=ge}}let Z=0;if(o.tokens.length>0&&z.tokens.length>0){const X=o.tokens[o.tokens.length-1],ge=z.tokens[0];try{X.type==="inline"&&ge.type==="inline"&&(ge.children&&ge.children.length>0&&(X.children||(X.children=[]),this.appendTokens(X.children,ge.children)),X.content=(X.content||"")+(ge.content||""),Z=1)}catch{Z=0}}const ee=o.tokens.length;if(z.tokens.length>Z){const X=o.tokens,ge=z.tokens,q=Math.min(X.length,ge.length-Z);let pe=0;for(let we=q;we>0;we--){let te=!0;for(let ie=0;ie0&&(Z+=pe),ge.length>Z&&this.appendTokens(o.tokens,ge,Z)}if(o.src=e,o.globalStateReason=null,o.lineCount=D+(H??O()),o.tokens.length>ee){const X=this.getLastSegment(o.tokens,e,ee,o.tokens.length,e.length-c.length,D);X?o.lastSegment=X:o.lastSegment=void 0}else o.lastSegment=void 0;return this.stats.total+=1,this.stats.appendHits+=1,Y&&(this.stats.unboundedAppendHits=(this.stats.unboundedAppendHits||0)+1),this.stats.lastMode="append",As(o.env,{area:"stream",path:Y?"stream-unbounded-append":"stream-append",reason:Y?"large-delta":"safe-append",unbounded:Y}),o.tokens}const d=i??o.env,f=this.tryTailSegmentReparse(e,o,d,n);if(f)return this.stats.total+=1,this.stats.tailHits+=1,this.stats.lastMode="tail",As(d,{area:"stream",path:"stream-tail",reason:"tail-reparse"}),f;const h=!!n.__explicitStreamChunkFallbackSetting,m=typeof n.__canUseImplicitLargeInputStrategy=="function"?n.__canUseImplicitLargeInputStrategy():!0,g=!!n.options?.streamChunkedFallback,v=!h&&!c&&m,y=g||v,A=n.options?.streamChunkAdaptive!==!1,b=n.options?.streamChunkTargetChunks??8,w=n.options?.streamChunkSizeChars,_=n.options?.streamChunkSizeLines,M=n.options?.streamChunkMaxChunks,B=!!n.__explicitStreamChunkConfig,C=n.options?.autoTuneChunks!==!1,S=n.options?.streamChunkFenceAware??!0;let I=c&&o.lineCount!==void 0?o.lineCount+$o(c):void 0;if(y){I===void 0&&(I=$o(e));const D=(O,Q,Y)=>OY?Y:O,j=C&&!B?PD(e.length,I,n.options):null,z=j?.maxChunkChars??(A?D(Math.ceil(e.length/b),8e3,64e3):w??1e4),T=j?.maxChunkLines??(A?D(Math.ceil(I/b),150,700):_??200),N=j?.maxChunks??(A?D(Math.ceil(e.length/64e3),b,32):M),L=e.length>0&&e.charCodeAt(e.length-1)===10,H=v&&e.length>=this.IMPLICIT_STREAM_CHUNK_MIN_CHARS&&j?.strategy!=="plain";if((g||H)&&(e.length>=z*2||I>=T*2)&&L){const O=rw(n,e,d,{maxChunkChars:z,maxChunkLines:T,fenceAware:j?.fenceAware??S,maxChunks:N});return this.cache={src:e,tokens:O,env:d,lineCount:I,lastSegment:void 0,globalStateReason:Da(e)},this.updateCacheLineCount(this.cache,I),this.recordChunkedParseResult(d,g?"explicit-fallback-large-doc":"default-fallback-large-doc"),O}}const F=this.parseFullDocument(e,d,n,I),E=F.tokens;return I=F.lineCount,this.cache={src:e,tokens:E,env:d,lineCount:I,lastSegment:void 0,globalStateReason:Da(e)},this.updateCacheLineCount(this.cache,I),this.stats.total+=1,this.stats.fullParses+=1,this.stats.lastMode="full",As(d,{area:"stream",path:"stream-full",reason:"fallback-full",unbounded:!!bd(d)?.unbounded}),E}recordChunkedParseResult(e,t){const n=bd(e)?.chunk,i=n?.fallback?String(n.fallbackReason||"global-state"):null;if(this.stats.total+=1,i){this.stats.fullParses+=1,this.stats.lastMode="full",As(e,{area:"stream",path:"stream-full",reason:`global-state:${i}`,unbounded:!!bd(e)?.unbounded});return}this.stats.chunkedParses=(this.stats.chunkedParses||0)+1,this.stats.lastMode="chunked",As(e,{area:"stream",path:"stream-chunked",chunked:!0,reason:t})}parseFullDocument(e,t,n,i,o=!0){const s=Da(e);G2(t)&&Gd(t);const r=typeof n.__canUseImplicitLargeInputStrategy!="function"||n.__canUseImplicitLargeInputStrategy()?PV(n,e.length,i):"no";if(r==="yes"){const l=iA(n,e,t);return As(t,{area:"stream",path:"stream-full",reason:"auto-unbounded-char-threshold",unbounded:!0}),{tokens:l,lineCount:i??(o?$o(e):0)}}let a=i;if(r==="need-lines"&&(a=$o(e),LV(n,e.length,a))){const l=iA(n,e,t);return As(t,{area:"stream",path:"stream-full",reason:"auto-unbounded-line-threshold",unbounded:!0}),{tokens:l,lineCount:a}}return a===void 0&&(a=o?$o(e):0),{tokens:ag(t,s,()=>this.core.parse(e,t,n).tokens),lineCount:a}}shouldUseUnboundedAppend(e,t,n){return!n||e.length=this.MIN_UNBOUNDED_APPEND_CHARS?!0:$o(n)>=this.MIN_UNBOUNDED_APPEND_LINES}getAppendedSegment(e,t,n){if(n===null||n===void 0&&!t.startsWith(e)||!e.endsWith(` -`))return null;const i=n??t.slice(e.length);if(!i)return null;const o=i.length;if(i.charCodeAt(o-1)!==10)return null;let s=0,r=-1;for(let l=0;l=2));l++);if(s<2)return null;const a=(r===-1?i:i.slice(0,r)).trim();if(a.length===0)return null;if(/^[-=]+$/.test(a)){const l=e.slice(0,-1),u=l.lastIndexOf(` -`);if(l.slice(u+1).trim().length>0)return null}return this.endsInsideOpenFence(e)||this.mayContainReferenceDefinition(i)?null:i}tryTailSegmentReparse(e,t,n,i){const o=this.ensureLastSegment(t);if(!o||o.srcOffset<=0&&o.tokenStart<=0)return null;const s=t.src.slice(0,o.srcOffset);if(!e.startsWith(s))return null;const r=t.src.slice(o.srcOffset),a=e.slice(o.srcOffset);if(a===r)return null;const l=e.startsWith(t.src)?e.slice(t.src.length):null;if(l){const u=this.tryContainerTailAppendMerge(e,t,n,i,o,l);if(u)return u}if(this.mayContainReferenceDefinition(r)||this.mayContainReferenceDefinition(a))return null;try{const u=this.core.parse(a,n,i),c=this.getLastSegment(u.tokens,a);return o.lineStart>0&&this.shiftTokenLines(u.tokens,o.lineStart),t.src=e,t.env=n,t.globalStateReason=null,t.globalStateCarry=void 0,t.tokens.length=o.tokenStart,this.appendTokens(t.tokens,u.tokens),t.lineCount=o.lineStart+$o(a),c?t.lastSegment={tokenStart:o.tokenStart+c.tokenStart,tokenEnd:o.tokenStart+c.tokenEnd,lineStart:o.lineStart+c.lineStart,lineEnd:o.lineStart+c.lineEnd,srcOffset:o.srcOffset+c.srcOffset}:t.lastSegment=null,t.tokens}catch{return null}}getTailLines(e,t){if(t<=0)return"";let n=t;for(let i=e.length-1;i>=0;i--)if(e.charCodeAt(i)===10&&(n--,n===0))return e.slice(i+1);return e}endsInsideOpenFence(e){const n=e.length>4e3?e.length-4e3:0,i=e.slice(n),o=i.length;let s=null,r=0;for(;r<=o;){let a=i.indexOf(` -`,r);a===-1&&(a=o);let l=r;for(;l=3&&(s?s.marker===u&&d>=s.length&&(s=null):s={marker:u,length:d})}}if(a===o)break;r=a+1}return s!==null}peek(){return this.cache?.tokens??CAe}getStats(){return{...this.stats}}appendTokens(e,t,n=0,i=t.length){for(let o=n;ob8?n.slice(n.length-b8):n,i&&(e.globalStateReason=i),i}ensureLastSegment(e){return e.lastSegment!==void 0||(e.lastSegment=this.getLastSegment(e.tokens,e.src)),e.lastSegment}getLastSegment(e,t,n=0,i=e.length,o,s){if(i<=n)return null;let r=Number.POSITIVE_INFINITY,a=-1,l=0;for(let u=i-1;u>=n;u--){const c=e[u];if(c.map&&(c.map[0]a&&(a=c.map[1])),c.nesting<0){l+=-c.nesting;continue}if(c.nesting>0){if(l-=c.nesting,c.level===0&&l<=0){const d=Number.isFinite(r)?r:c.map?.[0]??0,f=a>=d?a:c.map?.[1]??d;return{tokenStart:u,tokenEnd:i,lineStart:d,lineEnd:f,srcOffset:this.getLineStartOffset(t,d,o,s)}}continue}if(c.level===0&&l===0){const d=Number.isFinite(r)?r:c.map?.[0]??0,f=a>=d?a:c.map?.[1]??d;return{tokenStart:u,tokenEnd:i,lineStart:d,lineEnd:f,srcOffset:this.getLineStartOffset(t,d,o,s)}}}return null}getLineStartOffset(e,t,n,i){if(n!==void 0&&i!==void 0&&t>=i)return this.getLineStartOffsetFrom(e,n,t-i);if(t<=0)return 0;let o=t,s=-1;for(;o>0;){if(s=e.indexOf(` -`,s+1),s===-1)return e.length;o--}return s+1}getLineStartOffsetFrom(e,t,n){if(n<=0)return t;let i=n,o=t-1;for(;i>0;){if(o=e.indexOf(` -`,o+1),o===-1)return e.length;i--}return o+1}mayContainReferenceDefinition(e){return e.includes("]:")?/(?:^|\n)[ \t]{0,3}\[[^\]\n]+\]:/.test(e):!1}canDirectlyParseAppend(e){if(!this.endsWithBlankLine(e.src))return!1;const t=this.ensureLastSegment(e);if(!t)return!1;switch(e.tokens[t.tokenStart]?.type){case"paragraph_open":case"heading_open":case"fence":case"code_block":case"html_block":case"hr":case"table_open":return!0;default:return!1}}tryContainerTailAppendMerge(e,t,n,i,o,s){if(!s||this.mayContainReferenceDefinition(s))return null;const r=t.tokens[o.tokenStart];switch(r?.type){case"bullet_list_open":case"ordered_list_open":return this.tryListTailAppendMerge(e,t,n,i,o,s,r);case"table_open":return this.tryTableTailAppendMerge(e,t,n,i,o,s,r);default:return null}}tryListTailAppendMerge(e,t,n,i,o,s,r){if(t.src.length===0||t.src.charCodeAt(t.src.length-1)!==10)return null;const a=o.lineEnd-o.lineStart,l=t.src.length-o.srcOffset;if(a0&&this.shiftTokenLines(d,f);const h=this.getListParagraphMode(t.tokens,o.tokenStart,t.tokens.length,r.level),m=this.getListParagraphMode(c,0,c.length,0);(h==="loose"||m==="loose"||this.endsWithBlankLine(t.src)||(c[0]?.map?.[0]??0)>0)&&(this.setListParagraphVisibility(t.tokens,o.tokenStart,t.tokens.length,r.level,!1),this.setListParagraphVisibility(d,0,d.length,r.level,!1)),t.tokens.splice(t.tokens.length-1,0,...d),t.src=e,t.env=n,t.globalStateReason=null;const g=f+$o(s);t.lineCount=g;const v=this.getDocLineCount(e,g);return r.map&&(r.map[1]=v),t.lastSegment={tokenStart:o.tokenStart,tokenEnd:t.tokens.length,lineStart:o.lineStart,lineEnd:v,srcOffset:o.srcOffset},t.tokens}tryTableTailAppendMerge(e,t,n,i,o,s,r){if(t.src.length===0||t.src.charCodeAt(t.src.length-1)!==10||/(?:^|\n)[ \t]*\n/.test(s))return null;const a=o.lineEnd-o.lineStart,l=t.src.length-o.srcOffset;if(a=0?d.slice(f.tbodyOpenIndex+1,f.tbodyCloseIndex):d.slice(f.tbodyOpenIndex,f.tbodyCloseIndex+1);if(m.length===0)return null;const g=o.lineEnd-2;g!==0&&this.shiftTokenLines(m,g);const v=h.tbodyCloseIndex>=0?h.tbodyCloseIndex:h.tableCloseIndex,y=t.lineCount??$o(t.src);t.tokens.splice(v,0,...m),t.src=e,t.env=n,t.globalStateReason=null;const A=y+$o(s);t.lineCount=A;const b=this.getDocLineCount(e,A);if(r.map&&(r.map[1]=b),h.tbodyOpenIndex>=0){const w=t.tokens[h.tbodyOpenIndex];w?.map&&(w.map[1]=b)}return t.lastSegment={tokenStart:o.tokenStart,tokenEnd:t.tokens.length,lineStart:o.lineStart,lineEnd:b,srcOffset:o.srcOffset},t.tokens}getTableHeaderContext(e){const t=e.indexOf(` -`);if(t<0)return null;const n=e.indexOf(` -`,t+1);return n<0?null:e.slice(0,n+1)}getTableBodySection(e,t,n,i){if(t<0||t>=n||e[t]?.type!=="table_open")return null;let o=-1;for(let a=n-1;a>t;a--){const l=e[a];if(l.type==="table_close"&&l.level===i){o=a;break}}if(o<0)return null;let s=-1,r=-1;for(let a=t+1;a=0){for(let a=o-1;a>s;a--){const l=e[a];if(l.type==="tbody_close"&&l.level===i+1){r=a;break}}if(r<0)return null}return{tableCloseIndex:o,tbodyOpenIndex:s,tbodyCloseIndex:r}}isSingleTopLevelContainer(e,t,n,i){if(e.length<2)return!1;const o=e[0],s=e[e.length-1];if(o.type!==t||s.type!==n||o.level!==0||s.level!==0||i!==void 0&&o.markup!==i)return!1;let r=0;for(let a=0;a0&&a0||l.nesting<0)&&(r+=l.nesting)}return r===0}getListParagraphMode(e,t,n,i){let o=!1,s=!1;const r=i+2;for(let a=t;a=0;){const i=e.charCodeAt(n);if(i===32||i===9){n--;continue}return i===10}return!0}getDocLineCount(e,t=$o(e)){return e.length===0?0:e.charCodeAt(e.length-1)===10?t:t+1}shiftTokenLines(e,t){if(t===0)return;let n=null;for(let i=0;i=0;s--)n.push(o.children[s]);for(;n.length>0;){const s=n.pop();if(s.map&&(s.map[0]+=t,s.map[1]+=t),s.children)for(let r=s.children.length-1;r>=0;r--)n.push(s.children[r])}}}}};const UD={default:mAe,zero:gAe,commonmark:pAe};function IAe(e){return{core:e.core.ruler.version,block:e.block.ruler.version,inline:e.inline.ruler.version,inline2:e.inline.ruler2.version}}function MAe(e,t){return e.core.ruler.version!==t.core||e.block.ruler.version!==t.block||e.inline.ruler.version!==t.inline||e.inline.ruler2.version!==t.inline2}function WD(e){return e.experimental?{...e,...e.experimental}:e}function Zl(e,t){if(!e)return!1;if(Object.prototype.hasOwnProperty.call(e,t)&&e[t]!==void 0)return!0;const n=e.experimental;return!!n&&Object.prototype.hasOwnProperty.call(n,t)&&n[t]!==void 0}function QD(e,t,n){for(let i=0;i=4?n.quotes=[C[0],C[1],C[2],C[3]]:n.quotes=["“","”","‘","’"]}let r=QD(s?.options,o,["fullChunkSizeChars","fullChunkSizeLines","fullChunkMaxChunks"]),a=QD(s?.options,o,["streamChunkSizeChars","streamChunkSizeLines","streamChunkMaxChunks"]),l=VD(s?.options,o,"fullChunkedFallback"),u=VD(s?.options,o,"streamChunkedFallback"),c=!1,d=null,f=null;const h=new yve;let m=null;const g=()=>(m||(m=new wAe(n)),m);let v=null;const y=()=>(v||(v=new EAe(h)),v);let A=null;const b=()=>(A||(A=new GQ({fuzzyLink:!0})),A),w=C=>!c&&!!d&&!MAe(C,d),_=(C,S)=>i==="default"&&!c&&m===null&&f!==null&&C.parse===f&&w(C)&&!C.stream.enabled&&S<(C.options.autoUnboundedThresholdChars??4e6)&&C.options.html===!1&&C.options.xhtmlOut===!1&&C.options.breaks===!1&&C.options.langPrefix==="language-"&&C.options.linkify===!1&&C.options.typographer===!1&&C.options.highlight===null,M=(C,S)=>i==="default"&&!c&&w(C)&&!C.stream.enabled&&!C.options.fullChunkedFallback&&S<(C.options.autoUnboundedThresholdChars??4e6)&&C.options.html===!1&&C.options.linkify===!1&&C.options.typographer===!1,B={core:h,block:h.block,inline:h.inline,get linkify(){const C=b();return Object.defineProperty(this,"linkify",{value:C,writable:!0,configurable:!0}),C},get renderer(){const C=g();return Object.defineProperty(this,"renderer",{value:C,writable:!0,configurable:!0}),C},options:n,__explicitFullChunkConfig:r,__explicitStreamChunkConfig:a,__explicitFullChunkFallbackSetting:l,__explicitStreamChunkFallbackSetting:u,__canUseImplicitLargeInputStrategy(){return w(this)},set(C){const S=WD(C);return this.options={...this.options,...S},(Zl(C,"fullChunkSizeChars")||Zl(C,"fullChunkSizeLines")||Zl(C,"fullChunkMaxChunks"))&&(r=!0,this.__explicitFullChunkConfig=!0),(Zl(C,"streamChunkSizeChars")||Zl(C,"streamChunkSizeLines")||Zl(C,"streamChunkMaxChunks"))&&(a=!0,this.__explicitStreamChunkConfig=!0),Zl(C,"fullChunkedFallback")&&(l=!0,this.__explicitFullChunkFallbackSetting=!0),Zl(C,"streamChunkedFallback")&&(u=!0,this.__explicitStreamChunkFallbackSetting=!0),m&&m.set(S),typeof S.stream=="boolean"&&(this.stream.enabled=S.stream,v&&(v.reset(),v.resetStats())),this},configure(C){const S=typeof C=="string"?UD[C]:C;if(!S)throw new Error("Wrong `markdown-it` preset, can't be empty");if(S.options&&this.set(S.options),S.components){const I=S.components;I.core?.rules&&this.core.ruler.enableOnly(I.core.rules),I.block?.rules&&this.block.ruler.enableOnly(I.block.rules),I.inline?.rules&&this.inline.ruler.enableOnly(I.inline.rules),I.inline2?.rules&&this.inline.ruler2.enableOnly(I.inline2.rules)}return this},enable(C,S){const I=Array.isArray(C)?C:[C],F=[this.core?.ruler,this.block?.ruler,this.inline?.ruler,this.inline?.ruler2],E=new Set;for(const D of F){if(!D)continue;const j=D.enable(I,!0);for(let z=0;z!E.has(j));if(D.length)throw new Error(`Rules manager: invalid rule name ${D.join(", ")}`)}return this},disable(C,S){const I=Array.isArray(C)?C:[C],F=[this.core?.ruler,this.block?.ruler,this.inline?.ruler,this.inline?.ruler2],E=new Set;for(const D of F){if(!D)continue;const j=D.disable(I,!0);for(let z=0;z!E.has(j));if(D.length)throw new Error(`Rules manager: invalid rule name ${D.join(", ")}`)}return this},use(C,...S){const I=typeof C=="function"?C:C&&typeof C.default=="function"?C.default:void 0;if(!I)throw new TypeError("MarkdownIt.use: plugin must be a function");const F=[this,...S],E=C;return c=!0,I.apply(E,F),this},render(C,S){let I;if(_(this,C.length)){S!==void 0&&(ua(S),I=u8("render"));const D=I?im():0,j=I?DD(C,I):RD(C);if(I&&(I.attemptMs=im()-D,j===null&&(I.fallbackReason="unsupported-stock-subset"),J0(S,I)),j!==null)return S!==void 0&&As(S,{area:"render",path:"stock-fast",reason:"stock-subset"}),j}const F=S??{},E=this.parse(C,F);return I&&J0(F,I),g().render(E,this.options,F)},async renderAsync(C,S){let I;if(_(this,C.length)){S!==void 0&&(ua(S),I=u8("render"));const D=I?im():0,j=I?DD(C,I):RD(C);if(I&&(I.attemptMs=im()-D,j===null&&(I.fallbackReason="unsupported-stock-subset"),J0(S,I)),j!==null)return S!==void 0&&As(S,{area:"render",path:"stock-fast",reason:"stock-subset"}),j}const F=S??{},E=this.parse(C,F);return I&&J0(F,I),g().renderAsync(E,this.options,F)},renderIterable(C,S={}){const I=this.parseIterable(C,S);return g().render(I,this.options,S)},async renderAsyncIterable(C,S={}){const I=await this.parseAsyncIterable(C,S);return g().renderAsync(I,this.options,S)},renderInline(C,S={}){const I=this.parseInline(C,S);return g().render(I,this.options,S)},validateLink:CV,normalizeLink:SV,normalizeLinkText:xV,utils:Kme,helpers:{...Pge},parse(C,S){if(typeof C!="string")throw new TypeError("Input data should be a String");if(S!==void 0&&ua(S),M(this,C.length)){const D=S===void 0?void 0:u8("parse"),j=D?im():0,z=Bve(C,D);if(D&&(D.attemptMs=im()-j,z===null&&(D.fallbackReason="unsupported-stock-subset"),J0(S,D)),z!==null)return S!==void 0&&As(S,{area:"parse",path:"stock-fast",reason:"stock-subset"}),z}const I=S??{};let F;if(!this.stream.enabled&&!this.options.fullChunkedFallback&&w(this)){const D=PV(this,C.length);if(D==="yes"){const j=iA(this,C,I);return As(S,{area:"parse",path:"auto-unbounded",unbounded:!0,reason:"char-threshold"}),j}D==="need-lines"&&(F=$o(C))}if(!this.stream.enabled){const D=C.length,j=this.options.autoTuneChunks!==!1,z=r,T=!l&&w(this),N=!!this.options.fullChunkedFallback,L=T&&D>=2e5;let H;(N||L||F!==void 0)&&(H=F??$o(C));const O=(N||L)&&j&&!z?hAe(D,H,this.options):null;if(N||L){const Q=H??0;if(N?D>=(this.options.fullChunkThresholdChars??2e4)||Q>=(this.options.fullChunkThresholdLines??400):L){if(O&&O.strategy!=="plain"){const Y=rw(this,C,I,{maxChunkChars:O.maxChunkChars,maxChunkLines:O.maxChunkLines,fenceAware:O.fenceAware,maxChunks:O.maxChunks});return S&&GD(S,N?"explicit-full-chunk":"default-large-string"),Y}if(N){const Y=(te,ie,G)=>teG?G:te,W=this.options.fullChunkAdaptive!==!1,Z=this.options.fullChunkTargetChunks??8,ee=Y(Math.ceil(D/Z),8e3,64e3),X=Y(Math.ceil(Q/Z),150,700),ge=W?ee:this.options.fullChunkSizeChars??1e4,q=W?X:this.options.fullChunkSizeLines??200,pe=W?Y(Math.ceil(D/64e3),Z,32):this.options.fullChunkMaxChunks,we=rw(this,C,I,{maxChunkChars:ge,maxChunkLines:q,fenceAware:this.options.fullChunkFenceAware??!0,maxChunks:pe});return S&&GD(S,"explicit-full-chunk"),we}}}if(F!==void 0&&w(this)&&LV(this,D,H??F)){const Q=iA(this,C,I);return As(S,{area:"parse",path:"auto-unbounded",unbounded:!0,reason:"line-threshold"}),Q}}const E=Da(C);return As(S,{area:"parse",path:"plain",reason:"default-plain"}),ag(I,E,()=>h.parse(C,I,this).tokens)},parseIterable(C,S={}){return ua(S),uAe(this,C,S)},parseAsyncIterable(C,S={}){return ua(S),cAe(this,C,S)},parseIterableToSink(C,S,I={}){return ua(I),dAe(this,C,S,I)},parseAsyncIterableToSink(C,S,I={}){return ua(I),fAe(this,C,S,I)},parseInline(C,S={}){if(typeof C!="string")throw new TypeError("Input data should be a String");ua(S),G2(S)&&Gd(S);const I=h.createState(C,S,this);return I.inlineMode=!0,h.process(I),I.tokens}};if(B.stream={enabled:!!n.stream,parse(C,S){return B.stream.enabled?y().parse(C,S,B):B.parse(C,S??{})},reset(){y().reset()},peek(){return v?v.peek():[]},stats(){return v?v.getStats():{total:0,cacheHits:0,appendHits:0,unboundedAppendHits:0,tailHits:0,fullParses:0,resets:0,chunkedParses:0,lastMode:"idle"}},resetStats(){v&&v.resetStats()}},s?.components){const C=s.components;C.core?.rules&&B.core.ruler.enableOnly(C.core.rules),C.block?.rules&&B.block.ruler.enableOnly(C.block.rules),C.inline?.rules&&B.inline.ruler.enableOnly(C.inline.rules),C.inline2?.rules&&B.inline.ruler2.enableOnly(C.inline2.rules)}return d=IAe(B),f=B.parse,B}var BAe=TAe;const HV=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"],FAe=["a","abbr","b","bdi","bdo","button","cite","code","data","del","dfn","em","font","i","ins","kbd","label","mark","q","s","samp","small","span","strong","sub","sup","time","u","var"],UV=["article","aside","blockquote","details","div","figcaption","figure","footer","header","h1","h2","h3","h4","h5","h6","li","main","nav","ol","p","pre","section","summary","table","tbody","td","th","thead","tr","ul"],RAe=["svg","g","path"],DAe=["address","audio","body","canvas","caption","colgroup","datalist","dd","dialog","dl","dt","fieldset","form","head","hgroup","html","iframe","legend","map","menu","meter","noscript","object","optgroup","option","output","picture","progress","rp","rt","ruby","script","select","style","template","textarea","tfoot","title","video"],NAe=["onclick","onerror","onload","onmouseover","onmouseout","onmousedown","onmouseup","onkeydown","onkeyup","onfocus","onblur","onsubmit","onreset","onchange","onselect","ondblclick","ontouchstart","ontouchend","ontouchmove","ontouchcancel","onwheel","onscroll","oncopy","oncut","onpaste","oninput","oninvalid","onsearch","innerhtml","outerhtml","textcontent","innertext","srcdoc","ping"],LAe=["action","data","href","src","srcset","poster","xlink:href","formaction"],PAe=["script"],OAe=["pre","iframe","picture","script","style","table","tbody","td","tfoot","th","thead","textarea","tr","title","video"],hh=new Set(HV),WV=new Set(UV),s2=new Set([...HV,...FAe,...UV,...RAe]),QV=new Set([...s2,...DAe]),zAe=new Set(NAe),$Ae=new Set(LAe),Z2=new Set(PAe),VV=new Set(OAe);function GV(e){let t="";for(const n of e){const i=n.charCodeAt(0);i<=31||i>=127&&i<=159||/\s/u.test(n)||(t+=n)}return t}const jAe={amp:"&",bsol:"\\",colon:":",newline:` -`,sol:"/",tab:" "};function qV(e){return e.replace(/&(?:#(\d+)|#x([0-9a-f]+)|([a-z][a-z0-9]+));?/gi,(t,n,i,o)=>{const s=n??i;if(s){const r=Number.parseInt(s,n?10:16);try{return Number.isFinite(r)?String.fromCodePoint(r):""}catch{return""}}return jAe[String(o??"").toLowerCase()]??t})}const hk=new Set(["http","https","mailto","tel"]),HAe=new Set(["javascript","vbscript","data","file","ftp","blob","filesystem","intent","chrome","chrome-extension","moz-extension","ms-browser-extension","view-source"]),op=new Set(["http","https"]);function KV(e){return e.match(/^([a-z][a-z0-9+.-]*):/i)?.[1]?.toLowerCase()??""}const UAe=/^https?:\/\//i;function WAe(e){if(!UAe.test(e))return!1;for(const t of e){const n=t.charCodeAt(0);if(t==="&"||n<=32||n>=127&&n<=159||n>127&&/\s/u.test(t))return!1}return!0}function QAe(e,t,n){if(!rA(t,n)||!e.startsWith("file:///"))return!1;const i=e.charAt(8);return i!=="/"&&i!=="\\"}function rA(e,t){return e?(e==="a"||e==="area")&&(!t||t==="href"||t==="xlink:href"):!t||t==="href"}function VAe(e,t){return t==="href"||t==="xlink:href"?rA(e,t)?hk:op:t==="src"||t==="srcset"||t==="poster"||t==="action"||t==="formaction"||t==="data"?op:(rA(e,t),hk)}function Yp(e,t={}){if(WAe(e))return!1;const n=GV(qV(e)).toLowerCase(),i=String(t.tagName??"").toLowerCase(),o=String(t.attrName??"").toLowerCase();if(!n)return!1;if(n.startsWith("data:")){const r=/^data:image\/(?:png|gif|jpe?g|webp|avif|bmp);/i.test(n);return i==="img"&&o==="src"?!r:!0}if(/^[\\/]{2}/.test(n))return!0;if(n.startsWith("/")||n.startsWith("./")||n.startsWith("../")||n.startsWith("#")||n.startsWith("?"))return!1;const s=KV(n);return s?s==="file"?!QAe(n,i,o):rA(i,o)?HAe.has(s):!VAe(i,o).has(s):!1}function GAe(e){const t=qV(String(e??"")).trim();if(!t||t.startsWith("#")||t.startsWith("/")||t.startsWith("./")||t.startsWith("../")||t.startsWith("?"))return!1;const n=KV(GV(t).toLowerCase());return n==="http"||n==="https"}function qAe(e,t={}){const n=String(e??"").trim();return n?Yp(n,t)?"":n:""}function qD(e){return qAe(e,{tagName:"img",attrName:"src"})}function KAe(e,t,n){function i(f){return f.trim().split(" ",2)[0]===t}function o(f,h,m,g,v){return f[h].nesting===1&&f[h].attrJoin("class",t),v.renderToken(f,h,m,g,v)}n=n||{};const s=3,r=n.marker||":",a=r.charCodeAt(0),l=r.length,u=n.validate||i,c=n.render||o;function d(f,h,m,g){let v,y=!1,A=f.bMarks[h]+f.tShift[h],b=f.eMarks[h];if(a!==f.src.charCodeAt(A))return!1;for(v=A+1;v<=b&&r[(v-A)%l]===f.src[v];v++);const w=Math.floor((v-A)/l);if(w=m||(A=f.bMarks[B]+f.tShift[B],b=f.eMarks[B],A=4)){for(v=A+1;v<=b&&r[(v-A)%l]===f.src[v];v++);if(!(Math.floor((v-A)/l)=2){const r=Number(s[0]),a=Number(s[1]);Number.isFinite(r)&&Number.isFinite(a)&&(o.map=[r+t,Math.min(a+t,n)])}Array.isArray(o.children)&&ZV(o.children,t,n)}}function YAe(e){["admonition","info","warning","error","tip","danger","note","caution"].forEach(t=>{e.use(KAe,t,{render(n,i){return n[i].nesting===1?`
      `:`
      -`}})}),e.block.ruler.before("fence","vmr_container_fallback",(t,n,i,o)=>{const s=t,r=s.bMarks[n]+s.tShift[n],a=s.eMarks[n],l=s.src.slice(r,a),u=l.match(/^:::\s*([^\s{]+)/);if(!u)return!1;const c=u[1];if(!c.trim())return!1;const d=l.slice(u[0].length).trim();let f,h;const m=d.indexOf("{"),g=m>=0?d.slice(m).trimStart():void 0;if(m===-1)f=d||void 0;else{if(f=d.slice(0,m).trim()||void 0,g?.startsWith("{")){let M=0,B=-1;for(let C=0;C0&&(h=g.slice(0,B))}h||(f=d||void 0)}if(o)return!0;const v=!!s.env.__markstreamFinal;let y=n+1,A=!1;for(;y<=i;){const M=s.bMarks[y]+s.tShift[y],B=s.eMarks[y];if(s.src.slice(M,B).trim()===":::"){A=!0;break}y++}A||(y=i);const b=s.push("vmr_container_open","div",1);if(b.attrSet("class",`vmr-container vmr-container-${c}`),b.map=[n,A?y:i],b.meta={...b.meta??{},unclosed:!A&&!v},f&&b.attrSet("data-args",f),h)try{const M=JSON.parse(h);for(const[B,C]of Object.entries(M)){const S=C!=null&&typeof C=="object";b.attrSet(`data-${B}`,S?JSON.stringify(C):String(C))}}catch{const M=ZAe(h);if(M)for(const[B,C]of Object.entries(M)){const S=C!=null&&typeof C=="object";b.attrSet(`data-${B}`,S?JSON.stringify(C):String(C))}else b.attrSet("data-attrs",h)}const w=[];for(let M=n+1;MM.trim().length>0)){let M=w.join(` -`);M.endsWith(` -`)||(M+=` -`),M.endsWith(` - -`)||(M+=` -`);const B=s.tokens[s.tokens.length-1];B&&(B.raw=M);const C=[];s.md.block.parse(M,s.md,s.env,C),ZV(C,n+1,n+1+w.length),s.tokens.push(...C)}const _=s.push("vmr_container_close","div",-1);return A||(_.hidden=!0,_.map=[i,i]),s.line=A?y+1:y,!0},{alt:["paragraph","reference","blockquote","list"]})}function Xu(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Wo(e){let t=!1,n=!1;for(let i=0;i")return i}return-1}function eC(e){const t=[],n=/\s([\w:-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>]+)))?/g;let i;for(;(i=n.exec(e))!==null;){const o=i[1];if(!o)continue;const s=i[2]||i[3]||i[4]||"";t.push([o,s])}return t}const JAe=/^[a-z][a-z0-9_-]*$/;function KD(e){return JAe.test(String(e??"").trim().toLowerCase())}function gu(e){const t=String(e??"").trim();if(!t)return"";if(!t.startsWith("<"))return KD(t)?t.toLowerCase():"";let n=1;for(;n]/.test(s)?"":KD(o)?o:""}function T1(e){if(!e||e.length===0)return[];const t=new Set,n=[];for(const i of e){const o=gu(i);!o||t.has(o)||(t.add(o),n.push(o))}return n}function XAe(...e){const t=new Set,n=[];for(const i of e)for(const o of T1(i))t.has(o)||(t.add(o),n.push(o));return n}function e2e(e){const t=T1(e);return{key:t.join(","),tags:t}}function YV(e){return gu(e)}function t2e(e,t){const n=String(e??""),i=gu(t);if(!i)return!1;const o=Xu(i),s=n.match(new RegExp(String.raw`^\s*<\s*${o}(?:\s[^>]*)?(\s*\/)?>`,"i"));return s?s[1]?!0:new RegExp(String.raw`<\s*\/\s*${o}\s*>`,"i").test(n):!1}function JV(e,t){const n=gu(t);return!!n&&!s2.has(n)&&!t2e(e,n)}function n2e(e,t){const n=String(e??""),i=gu(t);if(!i)return n;const o=Xu(i),s=new RegExp(String.raw`^\s*<\s*${o}(?:\s[^>]*)?>\s*`,"i"),r=new RegExp(String.raw`\s*<\s*\/\s*${o}\s*>\s*$`,"i");return n.replace(s,"").replace(r,"")}const XV=hh,i2e=s2,eG=new Set(WV);eG.delete("details");const o2e=/<([A-Z][\w-]*)(?=[\s/>]|$)/gi,s2e=/<\/\s*([A-Z][\w-]*)(?=[\s/>]|$)/gi,JS=/^<\s*(?:\/\s*)?([A-Z][\w-]*)/i,r2e=/^<\s*([A-Z][\w:-]*)(?=[\s/>]|$)/i;function lw(e){return(e.match(JS)?.[1]??"").toLowerCase()}function wE(e){return/^\s*<\s*\//.test(e)}function CE(e,t){return XV.has(t)||/\/\s*>\s*$/.test(e)}function a2e(e,t){let n=0;for(let i=0;i0&&n--;continue}CE(o,s)||n++}}return n}function ZD(e,t,n=0){const i=new RegExp(String.raw`<\s*(\/?)\s*${Xu(t)}(?=[\s>/])[^>]*>`,"gi");i.lastIndex=Math.max(0,n);let o=0,s;for(;(s=i.exec(e))!==null;){const r=s[0]??"",a=!!s[1],l=!a&&/\/\s*>$/.test(r);if(a){if(o===0)return{start:s.index,end:s.index+r.length};o--;continue}l||o++}return null}function u2e(e,t){const n=new RegExp(String.raw`<\s*(\/?)\s*${Xu(t)}(?=[\s>/])[^>]*>`,"gi");let i=0,o;for(;(o=n.exec(e))!==null;){const s=o[0]??"",r=!!o[1],a=!r&&/\/\s*>$/.test(s);if(r){i>0&&i--;continue}a||i++}return i}function uw(e){const t=e;return String(t.raw??t.content??t.markup??"")}function c2e(e){const t=e;return t.meta||(t.meta={}),t.meta}function w8(e,t,n){const i=c2e(e);i.markstreamCustomHtmlRaw=t,i.markstreamCustomHtmlInner=n}function d2e(e,t){if(!t.size)return;const n=Array.from(t,h=>new RegExp(String.raw`<\s*${Xu(h)}(?=[\s>/])`,"i")),i=[];let o=!1;const s=h=>h?n.some(m=>m.test(h)):!1,r=h=>{if(!(!h||!i.length))for(const m of i)m.raw+=h,m.inner+=h},a=()=>{!i.length||!o||(r(` -`),o=!1)},l=h=>{r(h)},u=h=>{for(let g=0;g{const m=i[i.length-1]?.tag;if(!m)return null;const g=new RegExp(String.raw`^\s*<\s*\/\s*${Xu(m)}\s*>`,"i");return h.match(g)?.[0]??null},d=h=>!!c(h),f=(h,m,g)=>{const v=g??(h.type==="html_inline"?lw(m):"");if(!(v&&t.has(v))){r(m);return}const y=wE(m),A=!y&&CE(m,v);if(y){if(!i.length||i[i.length-1].tag!==v){r(m);return}u(m);return}if(r(m),A){w8(h,m,"");return}i.push({tag:v,token:h,raw:m,inner:""})};for(const h of e){if(h.type==="inline"&&Array.isArray(h.children)){const m=String(h.content??"");if(d(m)?o=!1:a(),!i.length&&!s(m)){o=!1;continue}let g=0,v=!0;for(const y of h.children){const A=uw(y),b=y.type==="html_inline"?lw(A):"",w=b&&t.has(b);let _=A;if(v&&m&&A&&(i.length||w)){const M=m.indexOf(A,g);if(M!==-1)l(m.slice(g,M)),_=m.slice(M,M+A.length),g=M+A.length;else{if(i.length&&!w)continue;v=!1}}f(y,_,b)}v&&m&&g0;continue}if(i.length&&typeof h.content=="string"){const m=uw(h),g=h.type==="html_block"?c(m):null;if(g){u(`${o?` -`:""}${g}`),o=i.length>0;continue}if(!h.content)continue;a(),r(h.content),o=!0}}for(const h of i)w8(h.token,h.raw,h.inner)}function f2e(e){return/^\s*<\s*[!?]/.test(e)}function h2e(e){const t=new Set(i2e);if(e&&Array.isArray(e))for(const n of e){const i=String(n??"").trim();if(!i)continue;const o=i.match(/^[<\s/]*([A-Z][\w-]*)/i);o&&t.add(o[1].toLowerCase())}return t}function YD(e,t){if(t.has(e))return!0;for(const n of t)if(n.startsWith(e))return!0;return!1}function p2e(e,t){let n=null;for(const s of e.matchAll(o2e)){const r=s.index??-1;if(r<0)continue;const a=(s[1]??"").toLowerCase();YD(a,t)&&Wo(e.slice(r))===-1&&(!n||r")&&(!n||s")&&(!n||s{const h=f,m=new Set(n),g=Array.isArray(h.env?.__markstreamCustomHtmlTags)?h.env.__markstreamCustomHtmlTags:[];for(const b of g){const w=gu(String(b??""));w&&m.add(w)}const v=h2e(Array.from(m)),y=new Set(v2e);for(const b of m)y.add(b);return{autoCloseInlineTagSet:y,commonHtmlTags:v,customTagSet:m,shouldMergeHtmlBlockTag:b=>m.has(b)||!v.has(b)||eG.has(b)}},o=f=>{if(f.type==="html_block")return String(f.content??"");if(f.type!=="inline"||!Array.isArray(f.children)||f.children.length!==1)return"";const h=f.children[0];return h?.type!=="html_block"?"":String(f.content??h.content??"")},s=(f,h)=>{f.type="html_block",f.content=h,f.raw=h,f.children=[]},r=f=>f.replace(/^(?:\r?\n)+/,""),a=f=>/^(?: {4}|\t)/.test(f),l=f=>f.replace(/^(?: {4}|\t)/gm,""),u=(f,h)=>{const m=r(f);if(!/\S/.test(m))return[];if(a(m))return[{type:"code_block",content:l(m),raw:m}];const g=m.replace(/^[\t ]+/,"");if(!g)return[];if(g.startsWith("<"))return[{type:"html_block",content:g}];const v={type:"inline",tag:"",nesting:0,content:g,children:[{type:"text",content:g,raw:g}]};return h==="paragraph"?[{type:"paragraph_open",tag:"p",nesting:1},v,{type:"paragraph_close",tag:"p",nesting:-1}]:h==="text"?[{type:"text",content:g,raw:g}]:[v]},c=(f,h,m)=>f[h-1]?.type==="paragraph_open"&&f[h+1]?.type==="paragraph_close"?"inline":m,d=(f,h)=>{const m=r(h);return!/\S/.test(m)||f.type!=="inline"||!Array.isArray(f.children)?!1:(f.content=`${String(f.content??"")}${m}`,f.children.push({type:"text",content:m,raw:m}),!0)};e.core.ruler.after("inline","fix_html_inline_streaming",f=>{const h=f.tokens??[],{commonHtmlTags:m,customTagSet:g}=i(f);for(const v of h){const y=v;if(y.type!=="inline"||!Array.isArray(y.children))continue;const A=String(y.content??""),b=y.children.length?y.children:A.includes("<")?[{type:"text",content:A,raw:A}]:null;if(b)try{const w=g2e(b,m);if(y.children=w.children,w.pendingBuffer){const _=A.lastIndexOf(w.pendingBuffer);if(_!==-1){const M=A.slice(0,_);y.content=M,typeof y.raw=="string"&&(y.raw=M)}}}catch(w){console.error("[applyFixHtmlInlineTokens] failed to fix streaming html inline",w)}}d2e(h,g)}),e.core.ruler.push("fix_html_inline_tokens",f=>{const h=f.tokens??[],{autoCloseInlineTagSet:m,customTagSet:g,shouldMergeHtmlBlockTag:v}=i(f),y=[];for(let A=0;A0){const[_,M]=y[y.length-1];if(A!==M){if(b.type==="paragraph_open"||b.type==="paragraph_close"){h.splice(A,1),A--;continue}const B=String(b.content??b.raw??"");if(B){const C=h[M],S=`${String(C.content||"")} -${B}`,I=Wo(S),F=I===-1?null:ZD(S,_,I+1);if(F){const E=S.slice(0,F.end),D=S.slice(F.end);C.content=E,C.loading=!1,h.splice(A,1),y.pop();const j=d(C,D)?[]:u(D,c(h,A,"paragraph"));j.length&&h.splice(A,0,...j),A--;continue}C.content=S,C.loading!==!1&&(C.loading=!0)}h.splice(A,1),A--;continue}}const w=o(b);if(w){if(f2e(w))continue;const _=(w.match(/<\s*(?:\/\s*)?([^\s>/]+)/)?.[1]??"").toLowerCase(),M=/^\s*<\s*\//.test(w);if(!_||!v(_))continue;if(s(b,w),!M)_&&!new RegExp(`^\\s*<\\s*${_}\\b[^>]*\\/\\s*>`,"i").test(w)&&u2e(w,_)>0&&y.push([_,A]);else if(y.length>0&&_&&y[y.length-1][0]===_){const[,B]=y[y.length-1],C=h[B];C.content=`${String(C.content||"")} -${w}`,C.loading=!1,y.pop(),h.splice(A,1),A--}continue}else if(y.length>0){if(b.type==="paragraph_open"||b.type==="paragraph_close"){h.splice(A,1),A--;continue}const _=b.content||"",M=new RegExp(`<\\s*\\/\\s*${y[y.length-1][0]}\\s*>`,"i").test(_);if(_){const[,B]=y[y.length-1],C=h[B];C.content=`${C.content||""} -${_}`,C.loading!==!1&&(C.loading=!M)}M&&y.pop(),h.splice(A,1),A--}else continue}if(g.size>0){const A=new Map,b=new Map,w=B=>{let C=A.get(B);return C||(C=new RegExp(`<\\s*${B}\\b`,"i"),A.set(B,C)),C},_=B=>{let C=b.get(B);return C||(C=new RegExp(`<\\s*\\/\\s*${B}\\s*>`,"i"),b.set(B,C)),C},M=[];for(let B=0;B0){const F=M[M.length-1],E=h[F.index],D=C.type==="html_block"?_(F.tag).exec(S):null;if(D){const T=D.index+D[0].length,N=S.slice(0,T),L=S.slice(T);E.content=`${String(E.content??"")} -${N}`,Array.isArray(E.children)&&E.children.push({type:"html_inline",content:``,raw:``}),M.pop();const H=d(E,L)?[]:u(L,c(h,B,"paragraph"));H.length?h.splice(B,1,...H):(h.splice(B,1),B--);continue}if(C.type!=="inline")continue;const j=Array.isArray(C.children)?C.children:[],z=a2e(j,F.tag);if(z!==-1){const T=j.slice(0,z+1),N=j.slice(z+1),L=T.map(H=>String(H?.content??H?.raw??"")).join("");if(E.content=`${String(E.content??"")} -${L}`,Array.isArray(E.children)&&E.children.push(...T),N.length){const H=N.map(O=>String(O.content??O.raw??"")).join("");if(H.trim()){const O=H.replace(/^\s+/,"");if(d(E,H))h.splice(B,1),B--;else if(O.startsWith("<"))h.splice(B,1,{type:"html_block",content:O});else{const Q=u(H,c(h,B,"paragraph"));h.splice(B,1,...Q)}}else h.splice(B,1),B--}else h.splice(B,1),B--;M.pop();continue}E.content=`${String(E.content??"")} -${S}`,Array.isArray(E.children)&&E.children.push(...j),h.splice(B,1),B--;continue}if(C.type!=="inline")continue;const I=Array.isArray(C.children)?C.children:[];for(const F of g)if((I.length?l2e(I,F):w(F).test(S)&&!_(F).test(S)?1:0)>0){M.push({tag:F,index:B});break}}}{let A=0;for(let b=0;b0?A--:(h.splice(b,1),b--))}}for(let A=0;A/]+)/)?.[1]??"").toLowerCase();if(C.startsWith("!")||C.startsWith("?")){b.loading=!1;continue}if(g.has(C)){const z=String(b.content??""),T=Wo(z),N=T===-1?null:ZD(z,C,T+1);b.loading=N?!1:b.loading!==void 0?b.loading:!0;const L=N?.start??-1,H=N?N.end-N.start:0;if(L!==-1){const O=z.slice(0,L+H);let Q="";T!==-1&&T]+)))?/g;let I;for(;(I=S.exec(b.content||""))!==null;)I[1],I[2]||I[3]||I[4];const F=String(b.content??""),E=new RegExp(`<\\/\\s*${C}\\s*>`,"i").exec(F),D=E?E.index:-1,j=E?E[0].length:0;if(D!==-1){const z=F.slice(0,D+j),T=(F.slice(D+j)||"").replace(/^\s+/,"");b.children=[{type:"html_block",content:z,tag:C,loading:!1}],b.content=z,b.raw=z,T&&h.splice(A+1,0,T.startsWith("<")?{type:"html_block",content:T}:{type:"text",content:T,raw:T})}else b.children=[{type:"html_block",content:b.content,tag:C,loading:!0}];continue}if(!b||b.type!=="inline")continue;if(b.children.length===2&&b.children[0].type==="html_inline"){const C=(b.children[0].content?.match(/<([^\s>/]+)/)?.[1]??"").toLowerCase(),S=b.children[1],I=String(S?.content??"").match(/^<\s*\/\s*([^\s>]+)/)?.[1]?.toLowerCase()??"";if(S?.type==="html_inline"&&I===C)continue;m.has(C)?(b.children[0].loading=!0,b.children[0].tag=C,b.children.push({type:"html_inline",tag:C,loading:!0,content:``})):b.children=[{type:"html_block",loading:!0,tag:C,content:String(b.children[0]?.content??"")+String(b.children[1]?.content??"")}];continue}else if(b.children.length===3&&b.children[0].type==="html_inline"&&b.children[2].type==="html_inline"){const C=(b.children[0].content?.match(/<([^\s>/]+)/)?.[1]??"").toLowerCase();if(m.has(C))continue;b.children=[{type:"html_block",loading:!1,tag:C,content:b.children.map(S=>S.content).join("")}];continue}if(!b.content?.startsWith("<")||b.children?.length!==1)continue;const w=String(b.content),_=b,M=_.children[0];if(M?.type!=="html_inline"){/^<\s*(?:\/\s*)?[A-Z][\w:-]*\s*$/i.test(w)&&(_.children.length=0);continue}const B=String(M.content??w).match(r2e)?.[1]?.toLowerCase()??"";if(B){if(/\/\s*>\s*$/.test(w)||XV.has(B)){_.children=[{type:"html_inline",content:w}];continue}_.children.length=0}}})}function y2e(e){const t=e.trim();return!t||/^&[a-z0-9#]+;/i.test(t)?!1:!!(/^(?:const|let|var|function|class|import|export|if|for|while|return|await|async|yield|try|catch|throw|new|typeof|instanceof|switch|case|break|continue|def|ruby|perl|print|echo|true|false|null|undefined|NaN|Infinity|this)\b/.test(t)||/[a-z_$][\w$]*(?:\.[a-z_$][\w$]*|\['[^']*'\]|\["[^"]*"\]|\[\d+\])*\s*\(/i.test(t)||/[a-z_$][\w$]*(?:\.[a-z_$][\w$]*|\['[^']*'\]|\["[^"]*"\]|\[[\d+\]])+/i.test(t)||/\w+\s*(?:===?|!==?|<=?|>=?|\+\+|--|&&|\|\||\?\.)/.test(t)||/^(?:!!|\+\+|--)\s*\w/.test(t)||/[\w$]+\s*(?:\+=|-=|\*=|\/=|%=|\*\*=|=)/.test(t)||/^(?:https?:\/\/|ftp:\/\/|file:\/\/|\/\/|www\.)/i.test(t)||/`[^`]*\$\{[^}]*\}[^`]*`/.test(t)||/<\/?[A-Z][a-zA-Z0-9]*/.test(t)||/<[a-z][a-z0-9]*\s[^>]+>/.test(t)||/^(["'`]).*\1\s*[;,]?$/.test(t)||/^\[[\s\S]*\]$/.test(t)||/^\{[\s\S]*\}$/.test(t)||/^\(\s*\)$/.test(t)||/[\w$]+(?:\s*[+\-*/%<>=!&|^~:]+\s*[\w$]+|\s*\.\s*[\w$]+)/.test(t)||/=>|->|::/.test(t)||/^@[\w.$]+$/.test(t)||/^(?:0x[0-9a-fA-F]+|0b[01]+|0o[0-7]+|\d+(?:\.\d*)?(?:px|em|rem|%|vh|vw|deg|s|ms)?)$/.test(t)||/^\$[\w$]+\s*[=:]/.test(t)||/\|\s*\w+|\w+\s*\|/.test(t)||/^(?:git|npm|yarn|pnpm|bun|pip|cargo|go|rust|python|node|java|mvn|gradle|docker|kubectl)\s+/.test(t)||/(?:console|window|document|Math|JSON|Date|Array|Object|String|Number|Boolean)\.[a-zA-Z]/.test(t)||/^(?:\/\/|#|\/\*|\*\/|)/.test(t)||/^(?:<<<|<<\s*['"]?\w+['"]?)/.test(t))}function k2e(e,t={}){t.enabled!==!1&&e.core.ruler.after("inline","fix_indented_code_block",n=>{const i=n.tokens??[];for(let o=0;ol.trim().length>0);if(a.length===1&&!y2e(a[0]??"")){const l=a[0]??"",u=s.level??0;i.splice(o,1,{type:"paragraph_open",tag:"p",nesting:1,level:u},{type:"inline",tag:"",nesting:0,level:u,content:l,children:[{type:"text",content:l,level:u+1,raw:l}],block:!0},{type:"paragraph_close",tag:"p",nesting:-1,level:u}),o+=2}}})}const tG=/\.([a-z0-9]{1,15})$/i,b2e=/[_()[\]{}<>]/u,w2e=/^(?:https?:\/\/|ftp:\/\/|mailto:|www\.)/i,C2e=/[?#@]/u,S2e=/[\\/]/u,x2e=/^[\p{L}\p{N}./\\-]+$/u,_2e=/^[A-Za-z0-9-]{1,63}$/u,E2e=/^xn--[a-z0-9-]{2,59}$/i,I2e=/^(?:[A-Z]{1,6}|\d{1,8})$/u,M2e=/^(?=.{1,12}$)[A-Z0-9]+(?:[-.][A-Z0-9]+)*$/iu,T2e=/文件名\s*[::]?|附件\s*[::]?|路径\s*[::]?|路徑\s*[::]?|文件列表\s*[::]?|文档列表\s*[::]?|文檔列表\s*[::]?|\bfile\s*names?\b\s*[::]?|\battachments?\b\s*[::]?|\bpaths?\b\s*[::]?|\bfile\s+lists?\b\s*[::]?|\bdocument\s+lists?\b\s*[::]?/iu,B2e=/文件名\s*[::]?|文件\s*[::]?|附件\s*[::]?|档案\s*[::]?|檔案\s*[::]?|文档\s*[::]?|文檔\s*[::]?|资料\s*[::]?|資料\s*[::]?|路径\s*[::]?|路徑\s*[::]?|\bfile\s*name\b\s*[::]?|\battachments?\b\s*[::]?|\bfiles?\b\s*[::]?|\bdocuments?\b\s*[::]?|\bdocs?\b\s*[::]?|\bpaths?\b\s*[::]?/iu,F2e=/股票代码|股票代碼|证券代码|證券代碼|(?:代码|代碼|交易所|后缀|後綴|市场|市場)(?=$|[\s::/|,,、()()])|\btickers?\b|\bsymbols?\b|\bexchanges?\b/iu,R2e=2e3,D2e=512,N2e={},L2e=new Set(["ai","md","py","rs","sh","zip"]),nG=new Set(["as","bj","de","hk","l","ln","ny","pa","sh","ss","sz","t","us"]),P2e=new Set([...nG,"at","ax","cn","co","it","jp","ks","mc","mx","nz","pl","sa","si","to","tw"]),O2e=new Set(["com","dev","io","page","site"]),z2e=new Set(["app","apk","dmg","exe","ipa","lock","log","markdown","webmanifest"]),$2e=new Set(["7z","ai","astro","avi","bash","bz2","c","cjs","cpp","cs","csv","doc","docx","fish","flac","gif","go","gz","h","hpp","html","java","jpeg","jpg","js","json","jsx","kt","md","mdx","mjs","mov","mp3","mp4","pdf","php","png","ppt","pptx","ps1","py","rar","rb","rs","sh","sql","svg","swift","svelte","tar","tgz","toml","ts","tsx","txt","vue","wav","webp","xls","xlsx","xml","yaml","yml","zip","zsh"]),Dp=new Map;function JD(e,t){if(!e||e.length>D2e)return t;for(Dp.set(e,t);Dp.size>R2e;){const n=Dp.keys().next().value;if(!n)break;Dp.delete(n)}return t}function r2(e){return e?.filename===!0||e?.explicitFilename===!0||e?.marketTicker===!0}function C8(e,t){const n={filename:e?.filename||t?.filename,explicitFilename:e?.explicitFilename||t?.explicitFilename,marketTicker:e?.marketTicker||t?.marketTicker};return r2(n)?n:void 0}function XD(e,t){if(!r2(t))return e;const n=e?.__linkifyDemotionContext;return{...e,__linkifyDemotionContext:{filename:n?.filename||t?.filename,explicitFilename:n?.explicitFilename||t?.explicitFilename,marketTicker:n?.marketTicker||t?.marketTicker}}}function eN(e){const t=Y2(e);return r2(t)?t:void 0}function j2e(e){return e.replace(/^[\s>*_`[\]((【《"'“‘]+/u,"").replace(/[\s<*_`\]))】》"'.。;;,,、::!?!?]+$/u,"")}function tN(e,t){if(!r2(t))return;const n=String(e??"").trim().split(/\s+/u).map(j2e).filter(Boolean);if(n.length===0)return;const i={};return t?.filename&&n.every(o=>cw(o,{filename:!0,explicitFilename:t.explicitFilename}))&&(i.filename=!0),t?.explicitFilename&&i.filename&&(i.explicitFilename=!0),t?.marketTicker&&n.every(o=>cw(o,{marketTicker:!0}))&&(i.marketTicker=!0),r2(i)?i:void 0}function Nh(e,t=!1){let n;return{options(i){return t||i==null?XD(e,n):XD(e,C8(eN(i),tN(i,n)))},remember(i){const o=eN(i);n=t?C8(n,o):C8(o,tN(i,n))},reset(){n=void 0}}}function nN(e){return _2e.test(e)&&!e.startsWith("-")&&!e.endsWith("-")}function H2e(e){const t=e.split(".");if(t.length<2)return!1;const n=t[t.length-1]?.toLowerCase()??"";return nN(n)||E2e.test(n)?t.every(nN):!1}function iG(e){return Array.from(e).some(t=>t.charCodeAt(0)>127)}function U2e(e){return e.replace(/^[a-z][a-z0-9+.-]*:\/\//i,"").split(/[/?#]/,1)[0]??""}function W2e(e){return e.split(".").some(t=>t.toLowerCase().startsWith("xn--"))}function oG(e,t,n){const i=U2e(t);return iG(e)&&W2e(i)&&String(n??"").toLowerCase().includes(i.toLowerCase())}function Q2e(e){if(!e)return!1;if(e.includes("文件")||e.includes("附件")||e.includes("路径")||e.includes("路徑")||e.includes("文档")||e.includes("文檔")||e.includes("档案")||e.includes("檔案")||e.includes("资料")||e.includes("資料")||e.includes("股票")||e.includes("证券")||e.includes("證券")||e.includes("代码")||e.includes("代碼")||e.includes("交易所")||e.includes("后缀")||e.includes("後綴")||e.includes("市场")||e.includes("市場"))return!0;const t=e.toLowerCase();return t.includes("file")||t.includes("attachment")||t.includes("document")||t.includes("doc")||t.includes("path")||t.includes("ticker")||t.includes("symbol")||t.includes("exchange")}function Y2(e){const t=String(e??""),n=Dp.get(t);return n?(Dp.delete(t),Dp.set(t,n),n):Q2e(t)?JD(t,{explicitFilename:T2e.test(t),filename:B2e.test(t),marketTicker:F2e.test(t)}):JD(t,N2e)}function V2e(e){return H2e(e.split(/[\\/]/)[0]??"")}function G2e(e){const t=e.replace(/[^a-z]/gi,"");return t.length>=2&&t===t.toUpperCase()}function q2e(e){if(b2e.test(e)||!x2e.test(e))return!0;if(S2e.test(e))return!V2e(e);const t=e.replace(tG,"");return iG(t)?!0:t.split(".").filter(Boolean).some(G2e)}function K2e(e,t,n){if(!(n?P2e:nG).has(t))return!1;const i=e.slice(0,-(t.length+1));return i===""?e.startsWith("."):(n?M2e:I2e).test(i)}function cw(e,t={}){if(!e||w2e.test(e)||C2e.test(e))return!1;const n=e.match(tG);if(!n)return!1;const i=String(n[1]??"").toLowerCase();return K2e(e,i,t.marketTicker===!0)?!0:$2e.has(i)?!L2e.has(i)||t.filename?!0:q2e(e):!!(t.explicitFilename&&O2e.has(i)||t.filename&&z2e.has(i))}const sG=new WeakMap,rG=new WeakSet;function XS(e,t){return sG.set(e,t),e}function Z2e(e){return sG.get(e)}function Y2e(e){rG.add(e)}function J2e(e){return e===void 0||rG.has(e)}const iN=["!"];function oN(e){return e==="linkify"||e==="autolink"?e:"recovery"}function Ba(e){return{type:"text",content:e,raw:e}}function sp(e,t){t===1?e.push({type:"em_open",tag:"em",nesting:1}):t===2?e.push({type:"strong_open",tag:"strong",nesting:1}):t===3&&(e.push({type:"strong_open",tag:"strong",nesting:1}),e.push({type:"em_open",tag:"em",nesting:1}))}function rp(e,t){t===1?e.push({type:"em_close",tag:"em",nesting:-1}):t===2?e.push({type:"strong_close",tag:"strong",nesting:-1}):t===3&&(e.push({type:"em_close",tag:"em",nesting:-1}),e.push({type:"strong_close",tag:"strong",nesting:-1}))}function Af(e,t,n,i="recovery"){let o="";if(t.includes('"')){const s=t.split('"');t=s[0].trim(),o=s[1].trim()}return XS({type:"link",loading:n,href:t,title:o,text:e,children:[{type:"text",content:e,raw:e}],raw:`[${e}](${t})`},i)}function X2e(e,t){if(!(!e||!t)&&(e.href=String(e.href??"")+t,e.text=String(e.text??"")+t,e.raw=`[${e.text}](${e.href})`,Array.isArray(e.children)&&e.children.length)){const n=e.children[e.children.length-1];n?.type==="text"?(n.content=String(n.content??"")+t,n.raw=String(n.raw??"")+t):e.children.push(Ba(t))}}function sN(e,t){let n=-1;for(const i of t){const o=e.indexOf(i);o!==-1&&(n===-1||on?.[0]==="href")?.[1];return typeof t=="string"?t:""}function tye(e,t){if(!e)return;e.attrs=Array.isArray(e.attrs)?e.attrs:[];const n=e.attrs.findIndex(i=>i?.[0]==="href");n>=0?e.attrs[n][1]=t:e.attrs.push(["href",t])}function rN(e,t,n){let i="";for(let o=t+1;o{const n=t.tokens??[];for(let i=0;ir.type==="code_inline"),i=new Map;let o=0;for(let r=0;r0&&u?aN(u):-1;if(c!==-1&&u)for(const d of u.slice(c))d==="("?o++:d===")"&&o>0&&o--}l!==-1&&(r=l);continue}if(!(a.type!=="text"||typeof a.content!="string"))for(const l of a.content)l==="("?o++:l===")"&&o>0&&o--}const s=Y2(t);for(let r=0;r<=e.length-1;r++){r<0&&(r=0);const a=e[r];if(!a)break;if(a.type==="link_open"&&(a.markup==="linkify"||a.markup==="autolink")){let l=-1;for(let u=r+1;u0){const m=aN(u);m!==-1&&(d===-1||m=g.content.length){h-=g.content.length;continue}if(h<0)break;const v=g.content[h],y=g.content.slice(0,h);let A=g.content.slice(h);for(let _=m+1;_0&&(e.splice(m+1,b),l=m+1);let w=c;if(v==="!"&&f!==-1)w=c.slice(0,f);else if(A){const _=encodeURI(A);if(_&&c.endsWith(_))w=c.slice(0,c.length-_.length);else{const M=v?encodeURI(v):"",B=M?c.indexOf(M):-1;B!==-1&&(w=c.slice(0,B))}}w!==c&&tye(a,w),A&&e.splice(l+1,0,Ba(A));break}}}if(!n){if(a?.type==="em_open"&&e[r-1]?.type==="text"&&e[r-1].content?.endsWith("*")){const l=e[r-1].content?.replace(/(\*+)$/,"")||"";e[r-1].content=l,a.type="strong_open",a.tag="strong",a.markup="**";for(let u=r+1;ud[0]==="href")?.[1]||"";if(e[r+3]?.type==="text"){const d=(e[r+3]?.content??"").indexOf(")"),f=d===-1;d===-1&&(c+=e[r+3]?.content?.slice(0,d)||"",e[r+3].content=""),l.push(Af(u,c,f,"linkify"));const h=e[r+3].content?.replace(/^\)\**/,"");h&&l.push(Ba(h)),e.splice(r-4,8,...l)}else l.push(XS({type:"link",loading:!0,href:c,title:"",text:u,children:[{type:"text",content:c,raw:c}],raw:`[${u}](${c})`},"linkify")),e.splice(r-4,7,...l);continue}else if(e[r-1].content==="]("&&e[r-3]?.type==="text"&&e[r-3].content?.endsWith(")"))if(e[r-2]?.type==="strong_open"){const[l,u]=e[r-3].content?.split("[**")||[];e[r+1].content=u||"",e[r-3].content=l||"",e[r-1].content=""}else if(e[r-2]?.type==="em_open"){const[l,u]=e[r-3].content?.split("[*")||[];e[r+1].content=u||"",e[r-3].content=l||"",e[r-1].content=""}else{const[l,u]=e[r-3].content?.split("[")||[];e[r+1].content=u||"",e[r-3].content=l||"",e[r-1].content=""}}if(a.type==="link_close"&&a.nesting===-1&&e[r-2]?.type==="link_open"&&e[r+1]?.type==="text"&&e[r-1]?.type==="text"){const l=e[r-1].content||"",u=e[r-2].attrs||[],c=u.find(y=>y[0]==="href")?.[1]||"",d=u.find(y=>y[0]==="title")?.[1]||"";let f=3,h=2;const m=(e[r-3]?.content||"").match(/^(\*+)$/),g=[];if(m){h+=1;const y=m[1].length;sp(g,y)}if(a.markup!=="linkify"&&e[r+1].type==="text"&&e[r+1]?.content?.startsWith("](")){f+=1;for(let y=r+1;yv[0]==="href")?.[1];e[r+5]?.type==="text"&&e[r+5].content==="."?(f=(g||f)+e[r+5].content,e[r+5].content=""):f=g||f,h+=3}let m=!0;if(a.nesting===-1&&(d=d.replace(/\*+$/,"")),e[r+2]?.type==="text"){const g=(e[r+2]?.content??"").indexOf(")");m=g===-1,g===-1&&(f+=e[r+2]?.content?.slice(0,g)||"",e[r+2].content="")}l.push(Af(d,f,m)),rp(l,2),e.splice(r-2,h,...l)}if(a.type==="text"&&/\*+\[[^\]]*$/.test(a.content||"")&&e[r+1]?.type==="strong_open"&&e[r+2]?.type==="text"&&e[r+2].content==="]("&&e[r+3]?.type==="link_open"&&e[r+5]?.type==="link_close"&&e[r+6]?.type==="text"&&e[r+6].content===")"&&e[r+7]?.type==="strong_close"){const l=(a.content||"").match(/^(\*+)\[(.*)$/);if(l){const u=(l[2]||"")+l[1];let c=e[r+3]?.attrs?.find(f=>f[0]==="href")?.[1]||"";!c&&e[r+4]?.type==="text"&&(c=e[r+4].content||"");const d=[];sp(d,2),d.push(Af(u,c,!1)),rp(d,2),e.splice(r,9,...d),r-=d.length-1;continue}}}}if(n)return e;for(let r=0;r{const n=t.tokens??[];for(let i=0;i{const n=t.tokens??[];for(let i=0;i=0&&e[m].type==="text"&&e[m].content==="";)m--;const g=e[m];let v=c+1;for(;v=0&&e[m].type==="text"&&e[m].content==="";)m--;const g=e[m];let v=c+1;for(;v{const n=t;try{const i=gye(n.tokens??[],!!n.env?.__markstreamFinal,n.src??"");Array.isArray(i)&&(n.tokens=i)}catch(i){console.error("[applyFixTableTokens] failed to fix table tokens",i)}})}function lN(){return[{type:"table_open",tag:"table",attrs:null,map:null,children:null,content:"",markup:"",info:"",level:0,loading:!0,meta:null},{type:"thead_open",tag:"thead",attrs:null,block:!0,level:1,children:null},{type:"tr_open",tag:"tr",attrs:null,block:!0,level:2,children:null}]}function uN(){return[{type:"tr_close",tag:"tr",attrs:null,block:!0,level:2,children:null},{type:"thead_close",tag:"thead",attrs:null,block:!0,level:1,children:null},{type:"table_close",tag:"table",attrs:null,map:null,children:null,content:"",markup:"",info:"",level:0,meta:null}]}function cN(e){return[{type:"th_open",tag:"th",attrs:null,block:!0,level:3,children:null},{type:"inline",tag:"",children:null,content:e,level:4,attrs:null,block:!0},{type:"th_close",tag:"th",attrs:null,block:!0,level:3,children:null}]}function aG(e,t){if(!e.startsWith("|")||e.includes(` -`)||!e.endsWith("|"))return null;const n=e.slice(1).split("|");return n.at(-1)===""&&n.pop(),n.length>0&&n.every(i=>i.trim().length>0)?n:null}function S8(e){return aG(e)!==null}function lG(e){return/^:?-+:?$/.test(e.trim())}function dye(e){if(!e.startsWith("|"))return!1;const t=e.slice(1).split("|");return t.at(-1)===""&&t.pop(),t.length>0&&t.every(lG)}function fye(e){return/^(?:[::]-*|:?-+:?)?$/.test(e.trim())}function hye(e){if(e==="")return!0;if(!e.startsWith("|"))return!1;const t=e.slice(1).split("|"),n=t.at(-1)??"";return t.slice(0,-1).every(lG)&&fye(n)}function pye(e){return e==="|"||e==="|:"}function mye(e){const t=aG(e);return t!==null&&t.every(n=>!n.includes(":"))}function gye(e,t=!1,n=""){const i=[...e];if(e.length<3)return i;const o=e.length-2,s=e[o];if(s.type==="inline"){const r=String(s.content??""),a=r.split(` -`)[0]??"",[l="",u="",...c]=r.split(` -`),d=!t&&!r.includes(` -`)&&/\r?\n$/.test(n)&&S8(r);if(!t&&(r.includes(` -`)&&c.length===0&&S8(l)&&hye(u)||d)){const f=a.slice(1,-1).split("|").map(m=>m.trim()).flatMap(m=>cN(m)),h=[...lN(),...f,...uN()];i.splice(o-1,3,...h)}else if(r.includes(` -`)&&c.length===0&&S8(l)&&dye(u)){const f=a.slice(1,-1).split("|").map(m=>m.trim()).flatMap(m=>cN(m)),h=[...lN(),...f,...uN()];i.splice(o-1,3,...h)}else r.includes(` -`)&&c.length===0&&mye(l)&&pye(u)&&(s.content=r.slice(0,-2),s.children.splice(2,1))}return i}function vye(e,t,n,i){const o=e.length;if(n==="$$"&&i==="$$"){let u=t;for(;u=0&&e[c]==="\\";)d++,c--;if(d%2===0)return u}u++}return-1}const s=n[n.length-1],r=i;let a=0,l=t;for(;l=0&&e[c]==="\\";)d++,c--;if(d%2===0){if(a===0)return l;a--,l+=r.length;continue}}const u=e[l];if(u==="\\"){l+=2;continue}u===s?a++:u===r[r.length-1]&&a>0&&a--,l++}return-1}var Aye=vye;const yye=["boldsymbol","mathbb","mathcal","mathfrak","mathrm","mathit","mathsf","vec","hat","bar","tilde","overline","underline","mathscr","mathnormal","operatorname","mathbf*"],dw=yye.map(e=>e.replace(/[.*+?^${}()|[\\]"\]/g,"\\$&")).join("|"),kye=/\\[a-z]+/i,uG="(?:\\\\|\\u0008)",bye=new RegExp(String.raw`${uG}(?:${dw})\s*\{[^}]+\}`,"i"),wye=new RegExp(String.raw`(?:${uG})?(?:${dw})\s*\{`,"i"),Cye=/\\(?:text|frac|left|right|times)/,Sye=/(?:^|[^+])\+(?!\+)|[=\-*/^<>]|\\times|\\pm|\\cdot|\\le|\\ge|\\neq/,xye=/\b[A-Z]{2,}-[A-Z]{2,}\b/i,_ye=/[A-Z]+\s*\([^)]+\)/i,Eye=/^\(\s*[a-z](?:\s*,\s*[a-z])+\s*\)$/i,Iye=/\b(?:sin|cos|tan|log|ln|exp|sqrt|frac|sum|lim|int|prod)\b/,Mye=/\b\d{4}\/\d{1,2}\/\d{1,2}(?:[ T]\d{1,2}:\d{2}(?::\d{2})?)?\b/,Tye={"\b":"\\b","\v":"\\v","\f":"\\f"};function Bye(e){let t="";for(const n of e)t+=Tye[n]??n;return t}function Of(e){if(!e)return!1;const t=Bye(e),n=t.trim();if(Mye.test(n)||n.includes("**"))return!1;if(n.length>2e3)return!0;const i=kye.test(t),o=bye.test(t),s=wye.test(t),r=Cye.test(t),a=/(?:^|[^\w\\])(?:[A-Z]|\\[A-Z]+)_(?:\{[^}]+\}|[A-Z0-9\\])/i.test(t)||/(?:^|[^\w\\])(?:[A-Z]|\\[A-Z]+)\^(?:\{[^}]+\}|[A-Z0-9\\])/i.test(t),l=Sye.test(t)&&!xye.test(t),u=_ye.test(t),c=Eye.test(n),d=Iye.test(t),f=/^\([a-z]\)$/i.test(n)||/^(?:[a-z]|pi)$/i.test(n),h=/^(?:[A-Z][a-z]?(?:_\{?\d+\}?|\^\{?\d+\}?)?)+$/.test(n);return i||o||s||r||a||l||u||c||d||f||h}const cG="__markstreamMathPluginApplied",e7=80,dG=2e4,dN=dG+4096;function SE(e){return!!e[cG]}function Fye(e){e[cG]=!0}const fG=["ldots","cdots","quad","in","displaystyle","int_","lim","lim_","ce","pu","end","infty","perp","mid","operatorname","to","rightarrow","leftarrow","math","mathrm","mathit","mathbb","mathcal","mathfrak","implies","alpha","beta","gamma","delta","epsilon","lambda","sum","sum_","prod","sqrt","fbox","boxed","color","rule","edef","fcolorbox","hline","hdashline","cdot","times","pm","le","ge","neq","sin","cos","tan","log","ln","exp","frac","text","left","right"],Rye=["cdot","mathbf{","partial","mu_{"],hG=fG.slice().sort((e,t)=>t.length-e.length).map(e=>e.replace(/[.*+?^${}()|[\\]\\\]/g,"\\$&")).join("|"),pG="[ \r\b\f\v]",Dye=new RegExp(`([^\\\\])(${Rye.map(e=>e).join("|")})+`,"g"),Nye=/span\{([^}]+)\}/,Lye=/\\operatorname\{span\}\{((?:[^{}]|\{[^}]*\})+)\}/,Pye=/(^|[^\\])\\\r?\n/g,Oye=/(^|[^\\])\\$/g,zye=/[\p{L}\p{M}\p{N}\p{Pe}\p{Pf}'′″‴|‖]/u,$ye=new RegExp(`(${pG})|(${hG})\\b`,"g"),fN=new Map,hN=new Map;function jye(e){if(!e)return $ye;const t=[...e];t.sort((r,a)=>a.length-r.length);const n=t.join(""),i=fN.get(n);if(i)return i;const o=`(?:${t.map(r=>r.replace(/[.*+?^${}()|[\\]\\"\]/g,"\\$&")).join("|")})`,s=new RegExp(`(${pG})|(${o})\\b`,"g");return fN.set(n,s),s}function Hye(e,t){const n=e?[]:[...t??[]];e||n.sort((a,l)=>l.length-a.length);const i=e?"__default__":n.join(""),o=hN.get(i);if(o)return o;const s=e?[dw,hG].filter(Boolean).join("|"):[n.map(a=>a.replace(/[.*+?^${}()|[\\]\\\]/g,"\\$&")).join("|"),dw].filter(Boolean).join("|"),r=new RegExp(`(^|[^\\\\\\w])(${s})\\s*\\{`,"g");return hN.set(i,r),r}const pN={" ":"t","\r":"r","\b":"b","\f":"f","\v":"v"};function mN(e){const t=/(^|[^\\])(__|\*\*)/g;let n=0;for(;t.exec(e)!==null;)n++;return n}function Uye(e){return e.replace(/(^|[^\\])!+/gu,(t,n)=>{if(n&&zye.test(n))return t;const i=n?t.slice(n.length):t;return`${n}${"\\!".repeat(i.length)}`})}function gN(e){const t=/(^|[^\\])(__|\*\*)/g;let n,i=null;for(;(n=t.exec(e))!==null;)i={marker:n[2],index:n.index+(n[1]?.length??0)};return i}function yf(e,t){const n=t?.commands??fG,i=t?.escapeExclamation??!0,o=t?.commands==null,s=jye(o?void 0:n);let r=e.replace(s,(u,c,d,f,h)=>{if(c!==void 0&&pN[c]!==void 0)return`\\${pN[c]}`;if(d&&n.includes(d)){const m=h&&typeof f=="number"?h[f-1]:void 0;return m==="\\"||m&&/\w/.test(m)?u:`\\${d}`}return u});i&&(r=Uye(r));let a=r;const l=Hye(o,o?void 0:n);return a=a.replace(l,(u,c,d)=>`${c}\\${d}{`),a=a.replace(Nye,"span\\{$1\\}").replace(Lye,"\\operatorname{span}\\{$1\\}"),a=a.replace(Pye,`$1\\\\ -`),a=a.replace(Oye,"$1\\\\"),a=a.replace(Dye,"$1\\$2"),a}function vN(e){const t=e.trim();return!(!Of(t)||/"[^"\n]{1,80}"\s*:\s*/.test(t)||!(/\\[a-z]+/i.test(t)||/[=+*/^<>]|\\times|\\pm|\\cdot|\\le|\\ge|\\neq/.test(t)||/[_^]/.test(t))&&/\s-\s/.test(t))}function mG(e){const t=[];let n=0;for(;n=n[0]&&t0;){if(e[s]==="\\"&&s+10;){if(e[a]==="\\"&&a+1=0&&e[n]==="\\";)i++,n--;return i%2===1}function t7(e,t){let n=t;for(;n0&&e[i-1]==="$"||i+1=a)break;const u=fw(o,l);if(u){r=Math.max(l+Math.max(1,t.length),u[1]);continue}J2(e,l)||s++,r=l+Math.max(1,t.length)}return s}function xE(e,t,n){const i=l2(String(e??""));if(!i.endsWith(t))return-1;const o=i.length-t.length;if(o<=0||!l2(i.slice(0,o)).trim()||J2(i,o))return-1;const s=mG(i);if(fw(s,o))return-1;const r=AN(i,t,0,o,s);if(t==="$$"){if(r%2===1)return-1}else if(r>AN(i,n,0,o,s))return-1;return o}function a2(e){return e===" "||e===" "}function l2(e){let t=e.length;for(;t>0&&a2(e[t-1]);)t--;return e.slice(0,t)}function yN(e){let t=0;for(let n=0;n=48&&t<=57}function Qye(e){if(e.length<3)return!1;const t=e[0];if(t!=="-"&&t!=="*"&&t!=="_"&&t!=="=")return!1;let n=0;for(let i=0;i=3}function Vye(e){const t=e.trim();if(!t)return!1;let n=0;t[n]===":"&&n++;let i=0;for(;t[n]==="-";)i++,n++;return i<3?!1:(t[n]===":"&&n++,n===t.length)}function Gye(e){if(!e.includes("|"))return!1;const t=e[0]==="|"?e.slice(1):e;return(t.endsWith("|")?t.slice(0,-1):t).split("|").every(Vye)}function qye(e){let t=0;if(!kN(e[t]))return!1;for(;kN(e[t]);)t++;return e[t]!=="."&&e[t]!==")"?!1:a2(e[t+1])}function gG(e){const t=e.trimStart();if(!t||t.startsWith("```")||t.startsWith("~~~")||t.startsWith(":::")||t[0]===">"||t[0]==="<")return!0;if(t[0]==="#"){let n=0;for(;t[n]==="#";)n++;if(n>=1&&n<=6&&a2(t[n]))return!0}return!!((t[0]==="-"||t[0]==="+"||t[0]==="*")&&a2(t[1])||qye(t)||Qye(t)||Gye(t))}function bN(e,t){return e?t?`${e} -${t}`:e:t}function n7(e){const t=String(e??"").trim();return t?Of(t):!1}function wN(e){let t=0;for(let n=0;ne7){h=!0;break}const g=o[m],v=wm(g,c);if(v!==-1){const y=bN(f,g.slice(0,v));if(!n7(y)){h=!0;break}const A=g.slice(v+c.length),b=A.trim()?`suffix:${wN(A)}`:"nosuffix";return["closed",u,i+a,d,i+m,v,wN(y),b].join(":")}if(gG(g)){h=!0;break}if(f=bN(f,g),f.length>dG){h=!0;break}}if(!h&&n7(f))return["pending",u,i+a,d].join(":")}}return null}function _8(e,t){const n=String(e??"").trim();return!n||!/^\d[\d,.]*\s*[~~-]\s*$/.test(n)?!1:/\d/.test(String(t??""))}function Zye(e){const t=String(e??"").trimStart(),n=t.match(/^\d+(?:,\d{3})*(?:\.\d+)?/);if(!n)return!1;const i=t.slice(n[0].length);return/^\s*(?:[+\-*/^_=<>]|\\[a-z]+)/i.test(i)?!1:i===""||/^[)\s,.!?;:]/.test(i)}function E8(e){const t=String(e??"").trim();return t?/^(?:\.{3,}|…+)$/.test(t):!1}function Yye(e,t){Fye(e);const n=(r,a,l)=>{const u=String(a??"").replace(/^[\t ]+/,"").replace(/[\t ]+$/,"");if(!u)return;const c=r.push("paragraph_open","p",1);c.map=[l,l+1];const d=r.push("inline","",0);d.content=u,d.map=[l,l+1],d.children=[],r.push("paragraph_close","p",-1)},i=(r,a)=>{const l=r,u=!!t?.strictDelimiters,c=!l?.env?.__markstreamFinal,d=(A,b)=>{let w=b;for(;w=3&&(!w||/\s/.test(w))){const _=l.push("text","",0);return _.content=l.src.slice(l.pos,A),l.pos=A,!0}}const f=[["$$","$$"],["$","$"],["\\(","\\)"]],h=String(l.pending??""),m=Math.max(0,l.pos-h.length);let g=m,v=m;const y=m;for(const[A,b]of f){const w=l.src,_=mG(w),M=Wye(w,c);let B=!1;A==="$$"&&g!==y&&(g=y);let C=-1,S=-1,I=0;const F=E=>{if((E==="undefined"||E==null)&&(E=""),E==="\\"){l.pos=l.pos+E.length,g=l.pos;return}if(E==="\\)"||E==="\\("){const z=l.push("text_special","",0);z.content=E==="\\)"?")":"(",z.markup=E,l.pos=l.pos+E.length,g=l.pos;return}if(!E)return;if(A==="$$"&&E.includes("$")){let z=0;for(;z0&&E[T-1]==="$"||T+10){const N=E.slice(0,D),L=l.push("text","",0);L.content=N,l.pos=l.pos+N.length,g=l.pos}const z=E.slice(D).match(/^!\[([^\]]*)\]\(([^)]+)\)/);if(z){const[,N,L]=z,H=L.match(/^(\S+)(?:\s+"([^"]+)")?\s*$/),O=H?H[1]:L,Q=H&&H[2]?H[2]:null,Y=l.push("image","img",0);Y.attrs=[["src",O],["alt",N]],Q&&Y.attrs.push(["title",Q]),Y.content=N,Y.children=[{type:"text",content:N,tag:""}],l.pos=l.pos+z[0].length,g=l.pos;const W=E.slice(D+z[0].length);W&&F(W);return}const T=l.push("text","",0);T.content=E,l.pos=l.pos+E.length,g=l.pos;return}const j=l.push("text","",0);j.content=E,l.pos=l.pos+E.length,g=l.pos};for(;!(g>=w.length);){const E=w.indexOf(A,g);if(E===-1)break;if(J2(w,E)){g=E+Math.max(1,A.length);continue}const D=fw(_,E);if(D){g=D[1];continue}const j=fw(M,E);if(j){g=j[1];continue}if(E===C&&g===S){if(I++,I>2){g=E+Math.max(1,A.length);continue}}else I=0,C=E,S=g;if(A==="("&&E>0){let W=E-1;for(;W>=0&&w[W]===" ";)W--;if(W>=0&&w[W]==="]"){g=E+A.length;continue}}if(A==="$"&&E>0&&w[E-1]==="$"){g=E+1;continue}if(A==="$"&&E=w.length);){const D=t7(w,E);if(D===-1)break;if(D+10&&w[D-1]==="$"){E=D+1;continue}const j=x8(w,D+1);if(j===-1)break;const z=w.slice(D+1,j),T=z.includes("`"),N=!z||!z.trim(),L=w[j+1],H=_8(z,L),O=E8(z);if(!T&&!N&&!H&&!O){const Q=w.slice(g,D);Q&&F(Q);const Y=l.push("math_inline","math",0);Y.content=yf(z,t),Y.markup="$",Y.raw=`$${z}$`,Y.loading=!1,g=j+1,E=j+1}else F("$"),E=D+1}E{const c=r,d=!c?.env?.__markstreamFinal,f=t?.strictDelimiters,h=f?[["\\[","\\]"],["$$","$$"]]:[["\\[","\\]"],["[","]"],["$$","$$"]],m=c.bMarks[a]+c.tShift[a];let g=c.src.slice(m,c.eMarks[a]).trim(),v=!1,y="",A="",b=!1,w="",_=!1;for(const[Q,Y]of h)if(g.startsWith(Q))if(Q.includes("[")){const W=Q==="\\["?g.slice(Q.length):"";if(Q==="\\["&&wm(W,Y)===-1&&!/^\s*!\[/.test(W)&&!W.includes("`")&&Of(W)){v=!0,y=Q,A=Y;break}if(t?.strictDelimiters){if(g.replace("\\","")==="["){if(a+1=0?"\\]":A,I=C>=0?C:wm(g,A,B);if(!b&&I>y.length){const Q=g.slice(M+y.length,I),Y=c.push("math_block","math",0);Y.content=yf(Q),Y.markup=y==="$$"?"$$":y==="["?"[]":"\\[\\]",Y.map=[a,a+1],Y.raw=`${y}${Q}${S}`,Y.block=!0,Y.loading=!1,c.line=a+1;const W=g.slice(I+S.length);return W.trim()&&n(c,W,a),!0}let F=a,E="",D=!1,j="",z=a;const T=b?g:g===y?"":g.slice(y.length),N=!f&&y==="\\["?"]":"",L=wm(T,A);if(L!==-1){const Q=L;E=T.slice(0,Q),j=T.slice(Q+A.length),z=b?a+1:a,D=!0,F=z}else for(T&&!b&&(E=T),F=a+1;F{const c=r,d=c.bMarks[a]+c.tShift[a],f=c.src.slice(d,c.eMarks[a]).trim();return!f.startsWith("$$")&&!f.startsWith("\\[")?!1:o(r,a,l,u)};e.inline.ruler.before("escape","math",i),e.block.ruler.before("lheading","explicit_math_block",s,{alt:["paragraph","reference","blockquote","list"]}),e.block.ruler.before("paragraph","math_block",o,{alt:["paragraph","reference","blockquote","list"]})}function Jye(e){const t=e.renderer.rules.image||function(n,i,o,s,r){const a=n,l=r;return l.renderToken?l.renderToken(a,i,o):""};e.renderer.rules.image=(n,i,o,s,r)=>{const a=n;return a[i].attrSet?.("loading","lazy"),t(a,i,o,s,r)},e.renderer.rules.fence=e.renderer.rules.fence||((n,i)=>{const o=n[i],s=String(o.info??"").trim();return`
      ${e.utils.escapeHtml(String(o.content??""))}
      `})}const Xye=/^\s]/i,eke=/^<\/a\s*>/i;function tke(e,t){if(e?.type!=="inline")return!1;const n=e.children;if(!Array.isArray(n)||n.length===0)return t.test(String(e.content??""));let i=0;for(let o=n.length-1;o>=0;o--){const s=n[o];if(s?.type==="link_close"){for(o--;o>=0&&n[o]?.level!==s.level&&n[o]?.type!=="link_open";)o--;continue}if(s?.type==="html_inline"){const r=String(s.content??"");Xye.test(r)&&i>0&&i--,eke.test(r)&&i++}if(!(i>0)&&s?.type==="text"&&t.test(String(s.content??"")))return!0}return!1}function nke(e){const t=e.core?.ruler,n=t.getNamedRules?.().find(i=>i.name==="linkify")?.fn;typeof n=="function"&&t.at("linkify",i=>{if(!i.md?.options?.linkify)return;const o=Array.isArray(i.tokens)?i.tokens:[],s=i.md.linkify;if(!s)return;const r=o.filter(a=>tke(a,s));if(r.length)return n(Object.assign(Object.create(Object.getPrototypeOf(i)),i,{tokens:r}))})}function ike(e){const t=e.inline.ruler,n=t.getNamedRules?.(),i=n?.find(a=>a.name==="link")?.fn,o=n?.find(a=>a.name==="image")?.fn;if(typeof i!="function"||typeof o!="function")return;const s=e.validateLink,r=e;r.__markstreamOriginalValidateLink=s,t.at("link",(...a)=>{const l=a[0].md,u=l?.validateLink===s?l.options?.validateLink:l?.validateLink;if(!l||typeof u!="function")return i(...a);const c=l.validateLink;l.validateLink=u;try{return i(...a)}finally{l.validateLink=c}}),t.at("image",(...a)=>{const l=a[0].md;if(!l)return o(...a);const u=l.validateLink;l.validateLink=s;try{return o(...a)}finally{l.validateLink=u}})}function oke(e={}){const t=e.markdownItOptions??{},n=typeof t.experimental=="object"&&t.experimental!==null?t.experimental:{},i=Object.prototype.hasOwnProperty.call(t,"stream")?!!t.stream:!0,o=Object.prototype.hasOwnProperty.call(t,"validateLink"),s=new BAe({html:!0,linkify:!0,typographer:!0,...t,experimental:{stream:i,...n}});if(!o){const r=a=>!Yp(a,{tagName:"a",attrName:"href"});Y2e(r),s.set({validateLink:r})}return ike(s),nke(s),(e.enableMath??!0)&&Yye(s,{...e.mathOptions??{}}),(e.enableContainers??!0)&&YAe(s),e.enableFixIndentedCodeBlock!==!1&&k2e(s),nye(s),rye(s),oye(s),cye(s),Jye(s),A2e(s,{customHtmlTags:e.customHtmlTags}),s}function Jp(e){const t=Object.assign(Object.create(Object.getPrototypeOf(e)),e);return Array.isArray(e.attrs)&&(t.attrs=e.attrs.map(n=>[...n])),Array.isArray(e.map)&&(t.map=[...e.map]),Array.isArray(e.children)&&(t.children=e.children.map(n=>Jp(n))),t}function ske(e){const t=e.meta??{};return{type:"checkbox",checked:t.checked===!0,raw:t.checked?"[x]":"[ ]"}}function rke(e){const t=e,n=t.attrGet?t.attrGet("checked"):void 0,i=n===""||n==="true";return{type:"checkbox_input",checked:i,raw:i?"[x]":"[ ]"}}function ake(e){const t=String(e.content??"");return{type:"emoji",name:t,markup:String(e.markup??""),raw:`:${t}:`}}function pk(e,t,n){const i=[];let o="",s=t+1;const r=[];for(;sn.startsWith(t)||t.startsWith(n)):!1}function CN(e,t,n,i){n.length>0&&e.push(...n),i.length>0&&t.push(...i),n.length=0,i.length=0}function SN(e,t){return!t&&e.startsWith(" ")&&!e.startsWith(" ")?` ${e}`:e}function dke(e,t){const n=[],i=[],o=[],s=[],r=e.split(uke),a=/\r?\n$/.test(e),l=r.some(h=>h.startsWith("diff ")||h.startsWith("--- ")||h.startsWith("+++ ")||h.startsWith("@@ ")),u=h=>{const m=h;if(!yG.some(g=>m.startsWith(g)))if(m.startsWith("-")){const g=m.slice(1);o.push(SN(g,l))}else if(m.startsWith("+")){const g=m.slice(1);s.push(SN(g,l))}else{CN(n,i,o,s);const g=l&&m.startsWith(" ")?m.slice(1):m;n.push(g),i.push(g)}},c=a?Math.max(0,r.length-1):r.length;for(let h=0;h0||s.length>0)&&CN(n,i,o,s);const d=n.join(` -`),f=i.join(` -`);return{original:t&&a&&d?`${d} -`:d,updated:t&&a&&f?`${f} -`:f}}function _E(e){const t=Array.isArray(e.map)&&e.map.length===2,n=e.meta??{},i=typeof n.closed=="boolean"?n.closed:void 0,o=i===!0||i!==!1&&t,s=String(e.info??""),r=s.startsWith("diff"),a=r?(()=>{const u=s,c=u.indexOf(" ");return c===-1?"":String(u.slice(c+1)??"")})():s;let l=String(e.content??"");if(!o&&e.markup){const u=e.markup[0],c=lke(u);c.test(l)&&(l=l.replace(c,""))}if(r){const{original:u,updated:c}=dke(l,o===!0);return{type:"code_block",language:a,code:String(c??""),raw:String(l??""),diff:r,loading:i===!0?!1:i===!1?!0:!t,originalCode:u,updatedCode:c}}return{type:"code_block",language:a,code:String(l??""),raw:String(l??""),diff:r,loading:i===!0?!1:i===!1?!0:!t}}function fke(e){const t=e.meta??{};return{type:"footnote_reference",id:String(t.label??""),raw:`[^${String(t.label??"")}]`}}function hke(){return{type:"hardbreak",raw:`\\ -`}}function pke(e,t,n){const i=[];let o="",s=t+1;const r=[];for(;s\s*$/.test(t)||hh.has(e)}function mke(e){if(!e||e.length===0)return xN();const t=M8.get(e);if(t)return t;const n=e.map(gu).filter(Boolean);if(!n.length){const o=xN();return M8.set(e,o),o}const i={customTagSet:new Set(n),allowedTagSet:oC({customHtmlTags:e})};return M8.set(e,i),i}function CG(e){const t=e,n=t.raw??t.content??t.markup??"";return String(n??"")}function gke(e){const t=e.meta,n=t?.markstreamCustomHtmlRaw,i=t?.markstreamCustomHtmlInner;return typeof n=="string"&&typeof i=="string"?{raw:n,inner:i}:null}function hw(e,t){const n=t.toLowerCase();for(let i=e.length-1;i>=0;i--){const[o,s]=e[i];if(String(o).toLowerCase()===n)return s}}function vke(e,t,n){const i=e.slice();return hw(i,"href")||i.push(["href",t]),n!=null&&!hw(i,"title")&&i.push(["title",n]),i}function i7(e){return e.map(CG).join("")}function B9(e){const t=[],n=i=>{const o=String(i??"");if(!o)return;const s=t[t.length-1];if(s?.type==="text"){s.content=`${s.content}${o}`,s.raw=`${s.raw}${o}`;return}t.push({type:"text",content:o,raw:o})};for(const i of e)if(i){if(i.type==="reference"||i.type==="footnote_reference"){n(String(i.raw??""));continue}if("children"in i&&Array.isArray(i.children)){t.push({...i,children:B9(i.children)});continue}t.push(i)}return t}function Ake(e,t,n){let i=0;for(let o=t;o`;g.toLowerCase().includes(_.toLowerCase())||(g+=_),y=!0,v=!0}const A=[],b=/\s([\w:-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>]+)))?/g;let w;for(;(w=b.exec(a))!==null;){const _=w[1],M=w[2]||w[3]||w[4]||"";A.push([_,M])}if(u?.has(l)){const _=gke(e);return[{type:l,tag:l,attrs:A,content:_?_.inner:h.innerTokens.length?i7(h.innerTokens):"",children:h.innerTokens.length?i(h.innerTokens,o,s,r):[],raw:_?.raw??g,loading:e.loading||v,autoClosed:y},h.nextIndex]}return[{type:"html_inline",tag:l,attrs:A,content:g,children:m,raw:g,loading:v,autoClosed:y},h.nextIndex]}function SG(e){if(e.type==="math_inline"){if(e.raw)return String(e.raw);const t=e.markup==="$$"?"$$":"$";return`${t}${String(e.content??"")}${t}`}return Array.isArray(e.children)&&e.children.length>0?e.children.map(t=>SG(t)).join(""):String(e.content??"")}function kke(e){return!e||!Array.isArray(e.children)||e.children.length===0?"":e.children.map(t=>SG(t)).join("")}function _N(e,t=!1){let n=e.attrs??[],i=null;if((!n||n.length===0)&&Array.isArray(e.children))for(const d of e.children){const f=d.attrs;if(Array.isArray(f)&&f.length>0){n=f,i=d;break}}const o=String(n.find(d=>d[0]==="src")?.[1]??""),s=n.find(d=>d[0]==="alt")?.[1],r=kke(i??e);let a="";r?a=r:s!=null&&String(s).length>0?a=String(s):i?.content!=null&&String(i.content).length>0?a=String(i.content):Array.isArray(i?.children)&&i.children[0]?.content?a=String(i.children[0].content):Array.isArray(e.children)&&e.children[0]?.content?a=String(e.children[0].content):e.content!=null&&String(e.content).length>0&&(a=String(e.content));const l=n.find(d=>d[0]==="title")?.[1]??null,u=l===null?null:String(l),c=String(e.content??"");return{type:"image",src:o,alt:a,title:u,raw:c,loading:t}}function bke(e){const t=String(e.content??"");return{type:"inline_code",code:t,raw:t}}function wke(e,t,n){const i=[];let o="",s=t+1;const r=[];for(;s=0;i--){const[o,s]=e[i];if(String(o).toLowerCase()===n)return s}}function Ske(e,t,n){const i=e.slice();return pw(i,"href")||i.push(["href",t]),n!=null&&!pw(i,"title")&&i.push(["title",n]),i}function mk(e,t,n){const i=e[t],o=Cke(i.attrs),s=String(pw(o,"href")??""),r=pw(o,"title"),a=r==null?null:String(r),l=Ske(o,s,a);let u=t+1;const c=[];let d=!0;for(;uv.type==="strong_open")){const v=String(h.content??""),y=String(h.raw??v),A=Jp(h);A.content=v.slice(0,-2),A.raw=y.replace(/\*\*$/,""),f=c.slice(),f[f.length-1]=A}const m=Fo(f,void 0,void 0,n),g=m.map(v=>{const y=v;return"content"in v?String(y.content??""):String(y.raw??"")}).join("");return{node:{type:"link",href:s,title:a,text:g,children:m,raw:`[${g}](${s}${a?` "${a}"`:""})`,loading:d,attrs:l},nextIndex:u0?i:[{type:"text",content:l,raw:l}],raw:`~${l}~`},nextIndex:s0?i:[{type:"text",content:o||String(e[t].content??""),raw:o||String(e[t].content??"")}],raw:`^${o||String(e[t].content??"")}^`},nextIndex:s?@[\\\]^_`{|}~]/,Pke=/\p{P}/u,Oke=/^[\x22\x27《「『【〔〖〘〚〈([{“‘﹁﹃﹙﹛﹝]$/u,zke=/^[\x22\x27》」』】〕〗〙〛〉)]}”’﹂﹄﹚﹜﹞]$/u,$ke=/^(?:https?:\/\/|mailto:|ftp:\/\/)/i,jke=/:\/\//,o7=1,xG=2,Hke=4,Uke=8,_G=16,_f=32,F9=64,_v=128,EG=256,Wke=512,Ev=1024,Qke=1982;function gk(e){let t=0;for(let n=0;n=t){n++,i++;continue}n++,i++;continue}if(o==="*"&&n>=t)return n;n++}return-1}function ph(e){return!!e&&Nke.test(e)}function mh(e){return!!e&&(Lke.test(e)||Pke.test(e))}function MG(e,t){return!!e&&!!t&&/^\p{Script=Han}$/u.test(t)&&Oke.test(e)}function TG(e,t){return!!e&&!!t&&/^[\p{L}\p{N}]$/u.test(t)&&zke.test(e)}function Gke(e,t){const n=t>0?e[t-1]:void 0,i=e[t+1];return!i||ph(i)?!1:!(mh(i)&&!MG(i,n)&&n&&!ph(n)&&!mh(n))}function qke(e,t){const n=t>0?e[t-1]:void 0,i=e[t+1];return!n||ph(n)?!1:!(mh(n)&&!TG(n,i)&&i&&!ph(i)&&!mh(i))}function Kke(e,t,n=0){let i=n,o=!1;for(;i0?e[t-1]:void 0,i=e[t+2];return!i||ph(i)?!1:!(mh(i)&&!MG(i,n)&&n&&!ph(n)&&!mh(n))}function Yke(e,t){const n=t>0?e[t-1]:void 0,i=e[t+2];return!n||ph(n)?!1:!(mh(n)&&!TG(n,i)&&i&&!ph(i)&&!mh(i))}function Jke(e,t=0){let n=t,i=!1;for(;n=0&&e[s]==="\\";s--)o++;return o%2===1}const n9e=/[\p{L}\p{N}]/u,i9e=/^[\p{L}\p{N}]+$/u;function s7(e){return e?n9e.test(e):!1}function BG(e){return e?i9e.test(e):!1}function aA(e,t){let n=t;for(;n0?e[t-1]:void 0,o=n=2&&i.intraword&&t.push({start:n,end:o}),n=o}for(let n=0;n=3)return i;n=i+o.len}return-1}function a9e(e){return e?$ke.test(e)||jke.test(e):!1}function l9e(e,t){if(!e||!t)return null;const n=e.match(/\[([^\]\n]+)\]\(([^)]*)$/);return n&&n[2]===t?n[1]:null}function Fo(e,t,n,i){if(!e||e.length===0)return[];const o=i?.__linkifyDemotionContext,s=Y2(t),r={filename:o?.filename||s.filename,explicitFilename:o?.explicitFilename||s.explicitFilename,marketTicker:o?.marketTicker||s.marketTicker};(r.filename||r.explicitFilename||r.marketTicker)&&(i={...i,__linkifyDemotionContext:r});const a=i,l=[];let u=null,c=0;const d=i?.requireClosingStrong,f=e;function h(){return e===f&&(e=e.slice()),e}function m(){u=null}function g(te,ie){const G=e.length===1?t:String(ie.content??""),J=[],fe=o9e(te);if(fe!==-1){_(te.slice(0,fe),te.slice(0,fe));const ve=te.slice(fe);return ve&&(F({type:"text",content:ve,raw:ve}),c--),c++,!0}if(Bke.test(te)){const ve=te.indexOf("~~");ve!==-1&&J.push({type:"strikethrough",index:ve})}if(Fke.test(te)){const ve=te.indexOf("**");ve!==-1&&J.push({type:"strong",index:ve})}if(/[^*]*\*[^*]+/.test(te)){const ve=G?IG(G,0):te.indexOf("*");if(G&&ve===-1)return!1;ve!==-1&&J.push({type:"emphasis",index:ve})}J.sort((ve,oe)=>ve.index!==oe.index?ve.index-oe.index:ve.type===oe.type?0:ve.type==="strong"?-1:oe.type==="strong"?1:0);const me=J[0];if(!me)return!1;if(me.type==="strikethrough"){const ve=me.index,oe=ve>-1?te.slice(0,ve):"";if(oe&&_(oe,oe),ve===-1)return c++,!0;const ae=te.indexOf("~~",ve+2),Ae=ae===-1?te.slice(ve+2):te.slice(ve+2,ae),ue=ae===-1?"":te.slice(ae+2),{node:Se}=IN([{type:"s_open",tag:"s",content:"",markup:"~~",info:"",meta:null},{type:"text",tag:"",content:Ae,markup:"",info:"",meta:null},{type:"s_close",tag:"s",content:"",markup:"~~",info:"",meta:null}],0,i);return m(),w(Se),ue&&(F({type:"text",content:ue,raw:ue}),c--),c++,!0}if(me.type==="strong"){const ve=me.index,oe=ve>-1?te.slice(0,ve):"";if(oe&&_(oe,oe),ve===-1)return c++,!0;if(t&&ve===0){let se=!1,Ie=0;for(;Ie=2)return _(te,te),c++,!0}}if(t&&(te.match(/\*/g)||[]).length>Vke(t))return _(te.slice(oe.length),te.slice(oe.length)),c++,!0;const ae=aA(te,ve);if(ae.len>=3){const se=r9e(te,ve+ae.len);if(se!==-1){const Ie=te.slice(ve+ae.len,se);if(s9e(Ie)){const{node:he}=X0([{type:"strong_open",tag:"strong",content:"",markup:"**",info:"",meta:null},{type:"em_open",tag:"em",content:"",markup:"*",info:"",meta:null},{type:"text",tag:"",content:Ie,markup:"",info:"",meta:null},{type:"em_close",tag:"em",content:"",markup:"*",info:"",meta:null},{type:"strong_close",tag:"strong",content:"",markup:"**",info:"",meta:null}],0,t,i);m(),w(he);const Ce=te.slice(se+3);return Ce&&(F({type:"text",content:Ce,raw:Ce}),c--),c++,!0}}}if(!Zke(te,ve)){const se=te.slice(ve,ve+ae.len);_(se,se);const Ie=te.slice(ve+ae.len);return Ie&&(F({type:"text",content:Ie,raw:Ie}),c--),c++,!0}const Ae=Jke(te,ve+2);let ue="",Se="";if(Ae.index!==-1){ue=te.slice(ve+2,Ae.index),Se=te.slice(Ae.index+2);const se=Ae.index,Ie=aA(te,se);if(ae.intraword&&Ie.intraword&&!BG(ue)||!ue&&ae.len>=4&&ae.intraword)return _(te.slice(oe.length),te.slice(oe.length)),c++,!0}else{if(d||Ae.sawInvalidClose||ae.intraword)return _(te.slice(oe.length),te.slice(oe.length)),c++,!0;ue=te.slice(ve+2),Se=""}if(!ue&&/^\*+$/.test(Se))return _(te,te),c++,!0;const{node:ce}=X0([{type:"strong_open",tag:"strong",content:"",markup:"**",info:"",meta:null},{type:"text",tag:"",content:ue,markup:"",info:"",meta:null},{type:"strong_close",tag:"strong",content:"",markup:"**",info:"",meta:null}],0,t,i);return m(),w(ce),Se&&(F({type:"text",content:Se,raw:Se}),c--),c++,!0}if(me.type==="emphasis"){let ve=me.index;ve===-1&&(ve=0);const oe=te.slice(0,ve);if(oe&&_(oe,oe),!Gke(te,ve)){_(te[ve],te[ve]);const se=te.slice(ve+1);return se&&(F({type:"text",content:se,raw:se}),c--),c++,!0}const ae=aA(te,ve),Ae=Kke(G,te,ve+1),ue=Ae.index,Se=e[c+1];if(i?.final&&Se?.type==="em_open"&&ue!==-1&&te.slice(ve+1,ue).trim()!==te.slice(ve+1,ue)||ue===-1&&(Ae.sawInvalidClose||i?.final||ae.intraword||!s7(te[ve+1])))return _(te.slice(ve),te.slice(ve)),c++,!0;const{node:ce}=pk([{type:"em_open",tag:"em",content:"",markup:"*",info:"",meta:null},{type:"text",tag:"",content:ue>-1?te.slice(ve+1,ue):te.slice(ve+1),markup:"",info:"",meta:null},{type:"em_close",tag:"em",content:"",markup:"*",info:"",meta:null}],0,i);if(m(),w(ce),ue!==-1&&ue{for(let ce=0;ce=0&&Se[Ie]==="\\";Ie--)se++;if(se%2===0)return ce}return-1})(te);if(J===-1)return!1;let fe=1;for(let Se=J+1;Seme?.type==="math_inline")||!Rke.test(te))return null;const G=ie.parseInline(te,{__markstreamFinal:!!i?.final});if(!Array.isArray(G)||G.length===0)return null;const J=(G.find(me=>me?.type==="inline")?.children??[]).filter(me=>!(me?.type==="text"&&String(me.content??"")===""));if(!J.length||!J.some(me=>me?.type!=="text")||J.length===1&&J[0]?.type==="text"&&String(J[0].content??"")===te)return null;const fe=Fo(J,te,n,i);return fe.length?fe:null}function A(te){m(),l.push(te)}function b(te){m();const ie=Jp(te);l.push(ie)}function w(te){A(te)}function _(te,ie){u?(u.content+=te,u.raw+=ie??te):(u={type:"text",content:String(te??""),raw:String(ie??te??"")},l.push(u))}function M(te,ie){if(!te)return;const G=Fo([{...ie,type:"text",content:te,raw:te}],te,n,i);if(G.length===1&&G[0]?.type==="text"){const J=G[0];_(String(J.content??""),String(J.raw??J.content??""));return}for(const J of G)w(J)}function B(te,ie){return String(te.markup??"").startsWith(ie)}function C(te){if(!u||te.loading!==!0||te.markup!=="\\(\\)")return;const ie=e[c-1];!ie||ie.type!=="text"||!B(ie,"\\(")||u.content.endsWith("(")&&(u.content=u.content.slice(0,-1),u.raw.endsWith("(")&&(u.raw=u.raw.slice(0,-1)),!u.content&&l[l.length-1]===u&&(l.pop(),u=null))}function S(te){return te.endsWith("](")?e[c+1]?.type==="link_open"&&e[c+1]?.markup==="linkify"&&e[c+2]?.type==="text"&&e[c+3]?.type==="link_close"&&e[c+4]?.type==="text"&&String(e[c+4]?.content??"").startsWith(")"):!1}function I(te,ie,G=gk(te)){let J=te;const fe=String(ie.content??"");return(G&o7)!==0&&J.endsWith("\\")&&!B(ie,"\\\\")&&!fe.endsWith("\\\\")&&(J=J.slice(0,-1)),(G&Ev)!==0&&J.endsWith("(")&&!B(ie,"\\(")&&!fe.endsWith("\\(")&&(J=J.slice(0,-1)),(G&xG)!==0&&/\*+$/.test(J)&&!B(ie,"\\*")&&!fe.endsWith("\\*")&&(J=J.replace(/\*+$/,"")),J}for(;c=0;se--){const Ie=l[se];if(Ie.type!=="text")break;ae=se,Ae=String(Ie.content??"")+Ae}aeae==="href")?.[1],oe=String(ve??"");if(t&&oe){const ae=t.indexOf("](");if(ae!==-1){const Ae=t.indexOf(")",ae+2);Ae===-1?G.loading=!0:G.loading&&t.slice(ae+2,Ae).includes(oe)&&(G.loading=!1)}}/^file:\/\/\/[a-z]:\//i.test(G.href)&&O(G,ie-1)||N(G)||A(G)}function z(te){if(te.markup!=="linkify")return!1;const{node:ie,nextIndex:G}=mk(e,c,i);return H(ie,G)?(c=G,!0):!1}function T(te){m(),w(xke(te)),c++}function N(te){if(te.type!=="link")return!1;const ie=l[l.length-1];if(!ie||ie.type!=="text")return!1;const G=String(ie.content??"").match(/^([^[]*)\[([^\]\n]+)\]\($/);if(!G)return!1;const J=te,fe=String(J.href??""),me=String(J.text??""),ve=String(G[2]??""),oe=fe.replace(/^(?:https?:\/\/|mailto:|ftp:\/\/)/i,"");if(!fe||!(me===fe||me===oe||a9e(me)))return!1;const ae=String(G[1]??"");return ae?(ie.content=ae,ie.raw=ae):l.pop(),A({...te,text:ve,children:[{type:"text",content:ve,raw:ve}],raw:`[${ve}](${fe}${J.title?` "${J.title}"`:""})`}),!0}function L(te){if(te.type!=="link")return!1;const ie=te,G=String(ie.href??"");return G?H({href:G,title:ie.title==null||ie.title===""?null:String(ie.title),loading:!!ie.loading},c+1):!1}function H(te,ie){const G=l[l.length-1];if(G?.type!=="image"||G.src||!G.loading||!String(G.raw??"").endsWith("]("))return!1;const J=e[ie],fe=String(J?.content??"");if(J?.type!=="text"||!fe.startsWith(")"))return!1;l.pop(),u=null;const me=String(G.alt??"");A({type:"image",src:te.href,alt:me,title:te.title,raw:`![${me}](${te.href}${te.title?` "${te.title}"`:""})`,loading:!!te.loading});const ve=fe.slice(1),oe=Jp(J);return oe.content=ve,oe.raw=ve,h()[ie]=oe,!0}function O(te,ie=c-1){if(te.type!=="link")return!1;const G=l[l.length-1],J=e[ie];if(!G||G.type!=="text"||J?.type!=="text")return!1;const fe=String(G.content??""),me=String(J.content??"");if(!fe.endsWith("!")||!me.endsWith("!")||B(J,"\\!"))return!1;const ve=fe.slice(0,-1);ve?(G.content=ve,G.raw=ve,u=G):(l.pop(),u=null);const oe=te,ae=String(oe.text??oe.children?.map(Se=>String(Se?.content??Se?.raw??"")).join("")??""),Ae=String(oe.href??""),ue=oe.title==null||oe.title===""?null:String(oe.title);return A({type:"image",src:Ae,alt:ae,title:ue,raw:`![${ae}](${Ae}${ue?` "${ue}"`:""})`,loading:!!oe.loading}),!0}function Q(te,ie="",G=null){const J=String(te.alt??te.raw??"");return{type:"link",href:ie,title:G,text:J,children:[te],raw:`[${J}](${ie}${G?` "${G}"`:""})`,loading:!0}}function Y(te){const ie=te.startsWith("![")?te:`![${te}`,G=ie.slice(2),J=G.indexOf("](");return{type:"image",src:"",alt:J===-1?G.replace(/\]$/,""):G.slice(0,J),title:null,raw:ie,loading:!0}}function W(te){const ie=te.indexOf("[![");if(ie===-1||typeof t=="string"&&e.length===1&&t9e(t,ie,"["))return!1;const G=te.slice(0,ie);return G&&_(G,G),A(Q(Y(te.slice(ie+1)))),c++,!0}function Z(te){if(i?.final)return!1;const ie=e[c-1];if(ie?.type!=="text"||!String(ie.content??"").endsWith("[")||B(ie,"\\["))return!1;const G=l[l.length-1];if(G?.type==="text"&&G.content.endsWith("[")){const J=G.content.slice(0,-1);J?(G.content=J,G.raw=J,u=G):(l.pop(),u=null)}return A(Q(_N(te))),c++,!0}function ee(te){if(te.type!=="link")return!1;const ie=te,G=String(ie.raw??""),J=String(ie.text??"");if(!G.startsWith("[![")&&!J.startsWith("!["))return!1;const fe=ie.title==null||ie.title===""?null:String(ie.title);return A(Q({type:"image",src:String(ie.href??""),alt:J.replace(/^!\[/,"").replace(/\]$/,""),title:fe,raw:G.startsWith("[![")?G.slice(1):G,loading:!0})),!0}function X(te){if(!te.startsWith("]("))return!1;const ie=e[c-2];if(ie?.type==="text"&&String(ie.content??"").endsWith("[")&&B(ie,"\\["))return!1;const G=l[l.length-1];if(G?.type!=="image"&&G?.type!=="link")return!1;const J=G,fe=G?.type==="link"&&Array.isArray(J.children)&&J.children.length===1&&J.children[0]?.type==="image"?l.pop():null,me=fe?fe.children[0]:l.pop();if(!me||me.type!=="image")return!1;const ve=e[c+1];let oe=String(fe?.href??""),ae=fe?.title==null?null:String(fe.title),Ae=!0;if(ve?.type==="link_open"){const{node:Se,nextIndex:ce}=mk(e,c+1,i);oe=Se.href,ae=Se.title,Ae=!0,c=ce}else{if(oe=te.slice(2),oe.includes('"')){const Se=oe.split('"');oe=String(Se[0]??"").trim(),ae=Se[1]==null?null:String(Se[1]).trim()}c++}const ue=Q(me,oe,ae);return ue.loading=Ae,A(ue),!0}function ge(){const te=e[c-3];return e[c-2]?.type==="image"&&e[c-1]?.type==="text"&&String(e[c-1].content??"")==="]("&&te?.type==="text"&&String(te.content??"").endsWith("[")&&B(te,"\\[")}function q(te,ie){const G=te.indexOf("[");if(G===-1)return!1;let J=te.slice(0,G);const fe=te.indexOf("](",G);if(fe!==-1){const me=e[c+2];let ve=te.slice(G+1,fe);if(ve.includes("[")){const se=ve.indexOf("[");J+=te.slice(0,G+se+1);const Ie=G+se+1;ve=te.slice(Ie+1,fe)}const oe=e[c+1];if(te.endsWith("](")&&oe?.type==="link_open"&&me){const se=e[c+4];let Ie=4,he=!0;if(se?.type==="text"){const Re=String(se.content??"");if(Re.startsWith(")")){he=!1;const Pe=Re.slice(1);if(Pe){const Ze=Jp(se);Ze.content=Pe,Ze.raw=Pe,h()[c+4]=Ze}else Ie++}else Re==="."&&Ie++}M(J,ie);const Ce=String(me.content??"");return i?.validateLink&&!i.validateLink(Ce)?_(ve,ve):A({type:"link",href:Ce,title:null,text:ve,children:[{type:"text",content:ve,raw:ve}],loading:he}),c+=Ie,!0}const ae=te.indexOf(")",fe),Ae=ae!==-1?te.slice(fe+2,ae):"",ue=ae===-1;let Se=J.match(/\*+$/);if(Se&&(J=J.replace(/\*+$/,"")),M(J,ie),Se||(Se=ve.match(/^\*+/)),!d&&Se){const se=Se[0].length;ve=ve.replace(/^\*+/,"").replace(/\*+$/,"");const Ie=[];if(se===1?Ie.push({type:"em_open",tag:"em",nesting:1}):se===2?Ie.push({type:"strong_open",tag:"strong",nesting:1}):se===3&&(Ie.push({type:"strong_open",tag:"strong",nesting:1}),Ie.push({type:"em_open",tag:"em",nesting:1})),Ie.push({type:"link",href:Ae,title:null,text:ve,children:[{type:"text",content:ve,raw:ve}],loading:ue}),se===1){Ie.push({type:"em_close",tag:"em",nesting:-1});const{node:he}=pk(Ie,0,i);w(he)}else if(se===2){Ie.push({type:"strong_close",tag:"strong",nesting:-1});const{node:he}=X0(Ie,0,void 0,i);w(he)}else if(se===3){Ie.push({type:"em_close",tag:"em",nesting:-1}),Ie.push({type:"strong_close",tag:"strong",nesting:-1});const{node:he}=X0(Ie,0,void 0,i);w(he)}else{const{node:he}=pk(Ie,0,i);w(he)}}else i?.validateLink&&!i.validateLink(Ae)?_(ve,ve):A({type:"link",href:Ae,title:null,text:ve,children:[{type:"text",content:ve,raw:ve}],loading:ue});const ce=ae!==-1?te.slice(ae+1):"";return ce&&(F({type:"text",content:ce,raw:ce}),c--),c++,!0}return!1}function pe(te){const ie=te.indexOf("![");if(ie===-1)return!1;const G=te.slice(0,ie);return G&&!u?u={type:"text",content:G,raw:G}:G&&u&&(u.content+=G),u&&(l.push(u),u=null),A(Y(te.slice(ie))),c++,!0}function we(te){if(!(te?.startsWith("[")&&n?.type==="list_item_open"))return!1;const ie=te.slice(1).match(/[^\s\]]/);if(ie===null)return c++,!0;if(ie&&/x/i.test(ie[0])){const G=ie[0]==="x"||ie[0]==="X";return A({type:"checkbox_input",checked:G,raw:G?"[x]":"[ ]"}),c++,!0}return!1}return l}function IE(e,t,n){const i=n?.__sourceLineMapper;if(!i)return{startLine:e,endLine:t};const o=i(e),s=t>e?i(t-1).endLine:i(t).startLine;return{startLine:o.startLine,endLine:Math.max(o.startLine,s)}}function MN(e,t){const n=Math.max(0,Math.min(e.length,Math.trunc(t)));let i=0;for(let o=0;oi&&e[o-1]!==` -`&&r++,{startLine:s,endLine:r}}function u2(e,t,n,i){const o=u9e(e,t,n);return IE(o.startLine,o.endLine,i)}function c9e(e,t){const n=e?.map;if(!Array.isArray(n)||n.length<2)return null;const i=Number(n[0]),o=Number(n[1]);return!Number.isFinite(i)||!Number.isFinite(o)?null:IE(i,o,t)}function Si(e,t,n){if(!n?.includeSourceMap)return e;const i=c9e(t,n);if(!i)return e;if(e.sourceMap=i,e.type==="code_block"){const o=e;o.startLine=i.startLine,o.endLine=i.endLine}return e}function d9e(e,t,n,i){if(!i?.includeSourceMap)return e;const o=t?.map;if(!Array.isArray(o)||o.length<2)return e;const s=Number(o[0]),r=Number(o[1]),a=Number(n);return!Number.isFinite(s)||!Number.isFinite(r)||!Number.isFinite(a)||(e.sourceMap=IE(s,Math.max(r,a),i)),e}function f9e(e){const t=String(e.content??""),n=t.replace(/[ \t\r\n]+$/g,"");if(n===t)return;e.content=n;const i=e.children;if(!(!Array.isArray(i)||i.length===0))for(;i.length;){const o=i[i.length-1];if(!o){i.pop();continue}if(o.type==="softbreak"||o.type==="hardbreak"){i.pop();continue}if(o.type==="text"){const s=String(o.content??""),r=s.replace(/[ \t\r\n]+$/g,"");if(r===s)break;if(r){o.content=r;break}i.pop();continue}break}}function h9e(e){const t=String(e.content??""),n=t.match(/\r?\n\s*\d+[.)]?\s*$/);if(!n||typeof n.index!="number")return;e.content=t.slice(0,n.index);const i=e.children;if(!(!Array.isArray(i)||i.length===0))for(;i.length;){const o=i[i.length-1];if(!o){i.pop();continue}if(o.type==="softbreak"||o.type==="hardbreak"){i.pop();continue}if(o.type==="text"){const s=String(o.content??"");if(/^[ \t\r\n\d.)]*$/.test(s)){i.pop();continue}const r=s.replace(/[ \t\r\n\d.)]+$/g,"");r!==s&&(r?o.content=r:i.pop())}break}}function p9e(e){const t=String(e.content??"");return/[ \t\r\n]+$/.test(t)||/\r?\n\s*\d+[.)]?\s*$/.test(t)}function t0(e,t,n){const i=e[t],o=[],s=Nh(n,!0);let r=t+1;for(;rd.raw).join("")};n?.includeSourceMap&&Si(c,e[r],n),o.push(c),r=u+1}else r+=1;const a={type:"list",ordered:i.type==="ordered_list_open",start:(()=>{if(i.attrs&&i.attrs.length){const l=i.attrs.find(u=>u[0]==="start");if(l){const u=Number(l[1]);return Number.isFinite(u)&&u!==0?u:1}}})(),items:o,raw:o.map(l=>l.raw).join(` -`)};return n?.includeSourceMap&&Si(a,i,n),[a,r+1]}function m9e(e,t,n,i){const o=String(n[1]??"note"),s=String(n[2]??o.charAt(0).toUpperCase()+o.slice(1)),r=[],a=Nh(i,!0);let l=t+1;for(;lu.raw).join(` -`)} -:::`},l+1]}const g9e=new Set(["warning","info","note","tip","danger","caution"]);function v9e(e){let t=0;for(;t=0;g--){const v=f[g];if(v.type==="text"&&/:+/.test(v.content)){h=g;break}}const m={type:"paragraph",children:Fo((h!==-1?f.slice(0,h):f)||[],void 0,void 0,l.options()),raw:String(d.content??"").replace(/\n:+$/,"").replace(/\n\s*:::\s*$/,"")};n?.includeSourceMap&&Si(m,e[u],n),a.push(m),l.remember(m.raw)}u+=3}else if(e[u].type==="bullet_list_open"||e[u].type==="ordered_list_open"){const[d,f]=t0(e,u,l.options());n?.includeSourceMap&&Si(d,e[u],n),a.push(d),l.remember(d.raw),u=f}else if(e[u].type==="blockquote_open"){const[d,f]=n0(e,u,l.options());n?.includeSourceMap&&Si(d,e[u],n),a.push(d),l.remember(d.raw),u=f}else{const d=tC(e,u,l.options());d?(a.push(d[0]),l.remember(d[0].raw),u=d[1]):u++}return[{type:"admonition",kind:o,title:s,children:a,raw:`:::${o} ${s} -${a.map(d=>d.raw).join(` -`)} -:::`},u+1]}const y9e=/^::: ?(warning|info|note|tip|danger|caution|error) ?(.*)$/;function k9e(e,t,n){const i=e[t];if(i.type!=="container_open")return null;const o=y9e.exec(String(i.info??""));return o?m9e(e,t,o,n):null}const ME={parseContainer:(e,t,n)=>A9e(e,t,n),matchAdmonition:k9e};function n0(e,t,n){const i=[],o=Nh(n,!0);let s=t+1;for(;sa.raw).join(` -`)};return n?.includeSourceMap&&Si(r,e[t],n),[r,s+1]}function b9e(e){if(e.info?.startsWith("diff"))return _E(e);const t=String(e.content??""),n=t.match(/ type="application\/vnd\.ant\.([^"]+)"/);let i=t;n?.[1]&&(i=t.replace(/]*>/g,"").replace(/<\/antArtifact>/g,""));const o=Array.isArray(e.map)&&e.map.length===2;return{type:"code_block",language:n?n[1]:String(e.info??""),code:i,raw:i,loading:!o}}function w9e(e,t,n){const i=[];let o=t+1,s=[],r=[];const a=Nh(n,!0);for(;ou.raw).join("")),o+=3}else if(e[o].type==="dd_open"){let l=o+1;for(r=[];l0&&(i.push({type:"definition_item",term:s,definition:r,raw:`${s.map(u=>u.raw).join("")}: ${r.map(u=>u.raw).join(` -`)}`}),s=[]),o=l+1}else o++;return[{type:"definition_list",items:i,raw:i.map(l=>l.raw).join(` -`)},o+1]}function C9e(e,t,n){const i=e[t].meta??{},o=String(i?.label??"0"),s=[],r=Nh(n,!0);let a=t+1;for(;al.raw).join(` -`)}`},a+1]}function S9e(e,t,n){const i=e[t],o=i.attrs,s=Array.isArray(o)&&o.length?Object.fromEntries(o.filter(c=>Array.isArray(c)&&c.length>=1&&c[0]).map(([c,d])=>[String(c),d==null||d===""?!0:String(d)])):void 0,r=String(i.tag?.substring(1)??"1"),a=Number.parseInt(r,10),l=e[t+1],u=String(l.content??"");return{type:"heading",level:a,text:u,...s?{attrs:s}:{},children:Fo(l.children||[],u,void 0,n),raw:u}}function x9e(e,t,n){const i=t.toLowerCase(),o=new RegExp(String.raw`^<\s*${i}(?=\s|>|/)`,"i"),s=new RegExp(String.raw`^<\s*\/\s*${i}(?=\s|>)`,"i");let r=0,a=Math.max(0,n);for(;a$/.test(d)||r++,a=l+c+1;continue}a=l+1}return-1}function FG(e){const t=String(e.content??"");if(/^\s*");else if(l)l=!v.includes(">");else if(u)u=!v.includes("?>");else if(v.startsWith("");else if(v.startsWith("");else if(v.startsWith("");else{const y=o(v);if(y)if(y.closing){for(let A=r.length-1;A>=0;A--)if(r[A]===y.tag){r.length=A;break}}else y.selfClosing||s(y.after,y.tag)||r.push(y.tag)}}if(d===-1||d>=t)break;c=d+1}return a||l||u||r.length>0}function ube(e,t,n){if(!n?.length)return!1;const i=new Set(T1(n));if(!i.size)return!1;const o=c=>{const d=c.charCodeAt(0);return d>=65&&d<=90||d>=97&&d<=122||d>=48&&d<=57||c==="_"||c==="-"||c===":"},s=c=>c===" "||c===" ",r=c=>{if(c[0]!=="<")return null;let d=1;for(;d"&&g!=="/")return null;const v=c.indexOf(">",d);if(v===-1)return null;let y=v-1;for(;y>=0&&s(c[y]);)y--;return{closing:f,tag:m,selfClosing:!f&&c[y]==="/",after:c.slice(v+1)}},a=(c,d)=>{const f=c.toLowerCase();let h=0;for(;h")return!0}}return!1},l=[];let u=0;for(;u=t?t:c,f=e.slice(u,d),h=f.endsWith("\r")?f.slice(0,-1):f,m=i0(h);if(m){const g=r(h.slice(m.index));if(g)if(g.closing){for(let v=l.length-1;v>=0;v--)if(l[v]===g.tag){l.length=v;break}}else g.selfClosing||a(g.after,g.tag)||l.push(g.tag)}if(c===-1||c>=t)break;u=c+1}return l.length>0}function cbe(e,t){const n=j9e.exec(e);if(!n)return null;const i=n[1]??"",o=n.index+i.length,s=e.indexOf(` -`,o),r=e.slice(o,s===-1?e.length:s);return!i0(r.endsWith("\r")?r.slice(0,-1):r)||HG(e,o)||lbe(e,o)||ube(e,o,t)?null:`${e.slice(0,n.index)}${i}`}function LE(e,t,n){let i=t;for(;ii&&(r=!0),t.inMath=!1,t.mathOpenOffset=null,s+=2;continue}s++;continue}if(t.inDollarMath){if(e.startsWith("$$",s)&&!Rc(e,a)){i!=null&&o&&n+s+2>i&&(r=!0),t.inDollarMath=!1,t.dollarMathOpenOffset=null,s+=2;continue}s++;continue}if(e[s]==="`"&&!Rc(e,a)){const l=LE(e,s,"`"),u=UG(e,s+l,l);if(u===-1)break;s=u+l;continue}if(e.startsWith("\\[",s)&&!Rc(e,a)){t.inMath=!0,t.mathOpenOffset=n+s,s+=2;continue}if(e.startsWith("$$",s)&&!Rc(e,a)){t.inDollarMath=!0,t.dollarMathOpenOffset=n+s,s+=2;continue}s++}return r}function dbe(e,t){if(!SE(t))return e;const n=t,i=DN.get(n),o=i?.source===e?i.state:i&&e.startsWith(i.source)?WG(i.state,e.slice(i.source.length),i.source.length-i.state.lineBuffer.length).state:iC(e).state;DN.set(n,{source:e,state:o});const{context:s}=o,r=s.inMath?s.mathOpenOffset:s.inDollarMath?s.dollarMathOpenOffset:null;if(r==null)return e;const a=e.slice(r+2),l=e.lastIndexOf(` -`,r-1)+1;if(e.slice(l,r).trim()!==""&&!/^\r?\n/.test(a)||/^\s*!\[/.test(a))return e;const u=a.trim(),c=/^(?:[a-z]|pi)$/i.test(u);return Of(a)&&!c?e:e.slice(0,r)}function fbe(e,t,n,i,o){const s=FE(e),r=RE(e);if(t.inFence&&t.fenceInBlockquote&&e.trim()&&DE(e)==null&&L8(t),t.inFence&&t.fenceInList&&e.trim()&&s.column=t.fenceLen&&/^\s*$/.test(a.rest)&&L8(t):(t.inFence=!0,t.fenceChar=a.markerChar,t.fenceLen=a.markerLen,t.fenceInBlockquote=a.inBlockquote,t.fenceInList=a.inList||t.listContentIndent!=null&&!a.inBlockquote&&s.column>=t.listContentIndent,t.fenceListIndent=a.listIndent||t.listContentIndent||0);else if(!t.inFence)return ON(e,t,n,i,o)}else return ON(e,t,n,i,o);return!1}function iC(e,t=ibe(),n=null,i=!1,o=0){const s=uA(t);let r=uA(t),a="",l=!1,u=0;for(;uu&&e[c-1]==="\r"?c-1:d?c:e.length,h=e.slice(u,f);fbe(h,s,o+u,n,i)&&(l=!0),d?(r=uA(s),a=""):a=h,u=d?c+1:e.length}return{closedOpenMath:l,state:{committedContext:r,context:s,lineBuffer:a}}}function WG(e,t,n=0){return t&&!e.context.inMath&&!e.context.inDollarMath&&!e.context.inFence&&!e.committedContext.inFence&&!/[\\$`~\r\n]/.test(t)&&!(e.lineBuffer.endsWith("\\")&&(t[0]==="["||t[0]==="]"))?{closedOpenMath:!1,state:{committedContext:uA(e.committedContext),context:uA(e.context),lineBuffer:e.lineBuffer+t}}:iC(e.lineBuffer+t,e.committedContext,n+e.lineBuffer.length,e.context.inMath||e.context.inDollarMath,n)}function hbe(e,t){if(!SE(e))return;const n=e.stream;if(typeof n?.reset!="function")return;const i=e,o=nC.get(i);if(o?.source===t)return;const s=o?t.startsWith(o.source):!1,r=s&&o?t.slice(o.source.length):"",a=s&&o?WG(o.explicitBracketMath,r,o.source.length-o.explicitBracketMath.lineBuffer.length):iC(t),l=a.state,u=s&&o?a.closedOpenMath:!1;if(o&&s&&o.key===null&&o.pendingCandidate===!1&&!u&&!abe(o.source,r)&&!sbe(t)){o.source=t,o.explicitBracketMath=l;return}const c=Kye(t);(o&&(o&&!s||o.key!==c||u)||!o&&c)&&n.reset(),obe(e,t,c,l)}function pbe(e){return typeof e.preTransformTokens=="function"||typeof e.postTransformTokens=="function"}function QG(e,t){const n=e?.map,i=t?.map;return n===i?!0:!Array.isArray(n)||!Array.isArray(i)?!1:n.length===i.length&&n.every((o,s)=>o===i[s])}function mbe(e,t){const n=e?.attrs,i=t?.attrs;if(n===i)return!0;if(!Array.isArray(n)||!Array.isArray(i)||n.length!==i.length)return!1;for(let o=0;o":""}function HN(e){return{type:"paragraph",children:e,raw:e.map(ybe).join("")}}function UN(e,t){if(t.sourceMap)for(const n of e)n.sourceMap||(n.sourceMap=t.sourceMap)}function WN(e,t){if(e.type!=="paragraph")return null;const n=e.children,i=Array.isArray(n)?n:[];if(i.length===0)return null;const o=J9e(t);if(!o?.size)return null;let s=-1;for(let c=0;ch?.type==="hardbreak")){s=c;break}}if(s===-1)return null;const r=i.slice(0,s),a=i[s];if(!a)return null;const l=[];r.length&&l.push(HN(r)),l.push(a);const u=i.slice(s+1);return u.length&&l.push(HN(u)),l}function kbe(e){const t=e.trim();if(!t)return null;const n=/^(?:]*>\s*)?]*)?>/i.test(t),i=/<\/html>\s*$/i.test(t);return!n||!i?null:[{type:"html_block",tag:"html",raw:e,content:e,loading:!1}]}function cA(e){const t=e.raw;if(typeof t=="string")return t;const n=e.content;return typeof n=="string"?n:""}function bbe(e,t){if(e.type!=="html_block"||!t)return!1;const n=String(e.raw??e.content??"");return new RegExp(String.raw`^\s*<\s*\/\s*${Xu(t)}\s*>\s*$`,"i").test(n)}const O8=new Set(["iframe","script","style","textarea","title"]);function Mg(e,t,n){if(!e||!t)return null;const i=t.toLowerCase(),o=f=>{if(e.startsWith("",f+4);return{closing:!1,end:b===-1?e.length:b+3,selfClosing:!1,tag:""}}if(e.startsWith("",f+9);return{closing:!1,end:b===-1?e.length:b+3,selfClosing:!1,tag:""}}const h=Wo(e.slice(f));if(h===-1)return null;const m=f+h+1,g=e.slice(f,m);if(/^<\s*[!?]/.test(g))return{closing:!1,end:m,selfClosing:!1,tag:""};let v=g.slice(1).trimStart();const y=v.startsWith("/");y&&(v=v.slice(1).trimStart());const A=v.match(/^([A-Z][\w:-]*)/i);return A?.[1]?{closing:y,end:m,selfClosing:/\/\s*>$/.test(g),tag:A[1].toLowerCase()}:{closing:!1,end:f+1,selfClosing:!1,tag:""}},s=(f,h)=>{const m=new RegExp(String.raw`<\s*\/\s*${Xu(f)}(?=\s|>)`,"gi");m.lastIndex=h;const g=m.exec(e);if(!g||g.index==null)return null;const v=o(g.index);return v?{start:g.index,end:v.end}:null};let r=-1,a=-1,l=Math.max(0,n);for(;l$/.test(u))return{raw:u,start:r,end:a+1,closed:!0};if(O8.has(i)){const f=s(i,a+1);return f?{raw:e.slice(r,f.end),start:r,end:f.end,closeStart:f.start,closed:!0}:{raw:e.slice(r),start:r,end:e.length,closed:!1}}let c=1,d=a+1;for(;d]*$/,"")} -`}function QN(e){return e.replace(/\r\n/g,` -`).replace(/(^|\n)[ \t]{1,4}/g,"$1")}function Sbe(e,t,n){return n?e.includes(n,t)?!0:QN(e.slice(Math.max(0,t))).includes(QN(n)):!1}function xbe(e,t){let n=Math.max(0,t);for(;n)`,"gi");let i=-1,o;for(;(o=n.exec(e))!==null;)i=o.index;return i}function R9(e,t){return{final:t,__disableStreamParse:!0,requireClosingStrong:e.requireClosingStrong,customHtmlTags:e.customHtmlTags,validateLink:e.validateLink}}const Ebe=new Set(["admonition","blockquote","code_block","definition_list","footnote","heading","list","math_block","table","thematic_break"]),Ibe=/(?:^|\n)\s{0,3}(?:#{1,6}\s+\S|[-+*]\s+\S|\d+[.)]\s+\S|>\s*\S|`{3,}|~{3,}|(?:\*{3,}|-{3,}|_{3,})(?:\s|$)|\|.*\|)/m;function Mbe(e){return/\n\s*\n/.test(e)||Ibe.test(e)}function Tbe(e,t){if(!e.trim()||t.length===0)return!1;if(t.some(i=>Ebe.has(String(i?.type??"").toLowerCase()))||t.some(i=>{if(i?.type!=="html_block")return!1;const o=i;return Array.isArray(o.children)&&o.children.length>0}))return!0;if(!Mbe(e))return!1;if(t.length>1)return!0;const[n]=t;return!!(n&&n.type==="paragraph")}function Bbe(e){const t=[];let n=0;for(;n=e.length)break;const i=e.slice(n).match(/^<([A-Z][\w:-]*)/i);if(!i?.[1])return null;const o=Mg(e,i[1],n);if(!o||o.start!==n)return null;t.push(o.raw),n=o.end}return t.length>1?t:null}function Fbe(e,t,n,i){const o=n.customHtmlTags?.join("\0")??"",s=t,r=RN.get(s),a=r&&r.final===i&&r.customHtmlTags===o&&r.requireClosingStrong===n.requireClosingStrong&&r.validateLink===n.validateLink,l=e.map((u,c)=>a&&r.blocks[c]===u?r.children[c]:cg(u,t,n));return RN.set(s,{blocks:e,children:l,customHtmlTags:o,final:i,requireClosingStrong:n.requireClosingStrong,validateLink:n.validateLink}),l.flat()}function Rbe(e,t,n,i){return e.map(o=>{if(o?.type!=="html_block")return o;const s=o,r=String(s.tag??"").toLowerCase();if(!r||r==="details"||VV.has(r)||Array.isArray(s.children))return o;const a=String(o.raw??s.content??"");if(!a)return o;const l=Wo(a);if(l===-1)return o;const u=Mg(a,r,0),c=u?.closeStart??-1,d=u?.closed===!0&&c>=l+1,f=d?a.slice(l+1,c):a.slice(l+1);if(!f.trim())return o;const h=R9(n,i),m=d?null:Bbe(f),g=m?Fbe(m,t,h,i):cg(f,t,h);return Tbe(f,g)?{...o,children:g}:o})}function Dbe(e){for(const t of e)if(t?.type==="html_block")return!0;return!1}function cg(e,t,n){return e.trim()?qG(e,t,{...n,__disableStreamParse:!0,__disableStructuredReuse:!0}):[]}function Nbe(e,t,n){const i=cg(e,t,n),o=i[0];return i.length===1&&o?.type==="paragraph"&&Array.isArray(o.children)?o.children:i}function c7(e,t,n){const i=FG({content:e}),o=Wo(e),s=VG(e,"summary");if(o!==-1&&s!==-1&&s>=o+1){const r=Nbe(e.slice(o+1,s),t,n);r.length>0&&(i.children=r)}return i.raw=e,i}function Lbe(e,t,n){const i=Wo(e);if(i===-1)return[];const o=e.slice(i+1);if(!o.trim())return[];const s=Mg(o,"summary",0);if(!s)return cg(o,t,n);const r=o.slice(0,s.start),a=o.slice(s.end);return[...cg(r,t,n),c7(s.raw,t,n),...cg(a,t,n)]}function GG(e,t,n,i,o,s=0){const r=[];let a=s;for(let l=0;l{const Z=VG(f,"details");return Z!==-1?f.slice(0,Z):f})():f,b=g===-1?"":String(e[g].raw??cA(e[g])??""),w=y||g!==-1&&v?.closed===!0,_=b.replace(/[\t\r\n ]+$/,""),M=w?(()=>{const Z=(v?.raw??"").lastIndexOf(_);return Z===-1?t.length:h+Z})():t.length,B=Wo(f),C=B!==-1?h+B+1:h+f.length,S=t.slice(C,M===-1?t.length:M),I=M+_.length,F=w?Math.max(M+b.length,xbe(t,I)):t.length,E=w?t.slice(M,F):b,D=w?t.slice(h,F):t.slice(h),j=i.__structuredReuseTailStart!==void 0&&i.__structuredReuseTailStart>0?l7.get(n)??(()=>{const Z=new WeakMap;return l7.set(n,Z),Z})():void 0,z=j?.get(u);if(z&&z.openRaw===f&&z.explicitClose===w&&z.closeSliceEnd===F&&z.middleSource===S){if(r.push(z.node),a=w?F:t.length,g===-1&&!y)break;g!==-1&&(l=g);continue}const[T]=GG(y?[]:g===-1?e.slice(l+1):e.slice(l+1,g),t,n,i,o,h+f.length);let N=Lbe(A,n,R9(i,o)),L=T;const H=T[0];if(!N.some(Z=>{const ee=Z;return ee?.type==="html_block"&&String(ee.tag??"").toLowerCase()==="summary"})){if(H?.type==="html_block"&&String(H.tag??"").toLowerCase()==="summary"&&!Array.isArray(H.children))L=[c7(String(H.raw??H.content??""),n,R9(i,o)),...T.slice(1)];else if(B!==-1){const Z=Mg(t,"summary",h+B+1);if(Z&&Z.closed){const ee=t.slice(h+B+1,Z.start);/^[\t \r\n]*$/.test(ee)&&(N=[c7(Z.raw,n,R9(i,o)),...N])}}}const O=n.parse(S,{__markstreamFinal:o}),Q=n.renderer.render(O,n.options,{__markstreamFinal:o}),Y=B!==-1?t.slice(h,h+B+1):f,W={...u,tag:"details",attrs:eC(f.slice(0,B+1)),raw:D,content:`${Y}${Q}${E}`,children:[...N,...L],loading:!o&&!w};if(i.includeSourceMap&&(W.sourceMap=u2(t,h,w?F:t.length,i)),j&&w&&j.set(u,{openRaw:f,explicitClose:w,closeSliceEnd:F,middleSource:S,node:W}),r.push(W),a=w?F:t.length,g===-1&&!y)break;g!==-1&&(l=g)}return[r,a]}function Pbe(e,t,n,i){if(!n)return e;const o=e.slice();let s=0;for(let r=0;r=d.start&&S.end<=d.end){o.splice(M,1);continue}break}_=C+B.length,o.splice(M,1)}}return o}function Obe(e){const t=a=>a===" "||a===" "||a===` -`||a==="\r",n=a=>{if(!a||a[0]!=="<"||a.includes(">"))return!1;let l=1;if(l{const v=g.charCodeAt(0);return v>=65&&v<=90||v>=97&&v<=122},c=g=>{const v=g.charCodeAt(0);return v>=48&&v<=57},d=g=>g==="!"||u(g),f=g=>u(g)||c(g)||g===":"||g==="-",h=g=>u(g)||c(g)||g==="_"||g==="."||g===":"||g==="-",m=h;if(l>=a.length||!d(a[l]))return!1;for(l++;l=a.length)return!0;if(a[l]==="/"){for(l++;l=a.length}if(!h(a[l]))return!1;for(l++;l=a.length)return!0;const g=a[l];if(g==='"'||g==="'"){for(l++;l=a.length)return!0;l++}else{for(;l"||v==='"'||v==="'"||v==="`")break;l++}if(l>=a.length)return!0}}}return!0},i=(a,l)=>HG(a,l),o=String(e??""),s=o.lastIndexOf("<");if(s===-1||i(o,s))return o;if(s>0){const a=o[s-1],l=a===" "||a===" "||a===` -`||a==="\r",u=o[s-2];if(!l&&!((a==="n"||a==="r")&&u==="\\"))return o}const r=o.slice(s);return r.includes(">")||r.length>1&&(r[1]===" "||r[1]===" "||r[1]===` -`||r[1]==="\r")||!n(r)?o:o.slice(0,s)}function GN(e,t){if(e===t)return;const n=e.split(/\r?\n/),i=t.split(/\r?\n/),o=[];let s=0;for(let r=0;r{const a=Number.isFinite(r)?Math.max(0,Math.trunc(r)):0;if(aString(m??"").toLowerCase()).filter(Boolean));if(!n.size)return e;const i=m=>m===" "||m===" ",o=m=>{const g=m.charCodeAt(0);return g>=65&&g<=90||g>=97&&g<=122||g>=48&&g<=57||m==="_"||m==="-"||m===":"},s=m=>{if(!m)return!1;if(m[0]===" ")return!0;let g=0;for(let v=0;v=4)return!0;continue}if(y===" ")return!0;break}return!1},r=m=>{let g=!1,v=!1;for(let y=0;y")return y}return-1},a=m=>{let g=0;for(;g{if(s(m))return-1;const v=m.replace(/^[ \t]+/,"");if(!v||v.startsWith(">")||v.startsWith("|")||/^(?:[*+-]|\d+[.)])[\t ]+/.test(v))return-1;let y=!1,A=0;for(;A=_.length){y=!0,A++;continue}const B=_[M];if(B==="!"||B==="?"){y=!0,A+=w+1;continue}if(B==="/"){y=!0,A+=w+1;continue}const C=M;for(;M<_.length&&o(_[M]);)M++;if(M===C){y=!0,A++;continue}const S=_.slice(C,M).toLowerCase(),I=_[M];if(I&&I!==" "&&I!==" "&&I!==">"&&I!=="/"){y=!0,A++;continue}const F=new RegExp(String.raw`<\s*\/\s*${S}\s*>`,"i"),E=/\/\s*>$/.test(_),D=F.test(m.slice(A+w+1)),j=F.test(e.slice(g+A+w+1)),z=/[\r\n]/.test(e.slice(g+A+w+1));if(y&&n.has(S)&&!E&&!D&&(j||z))return A;y=!0,A+=w+1}return-1};let u=!1,c="",d=0,f="",h=0;for(;hh&&e[m-1]==="\r",y=g?v?m-1:m:e.length,A=e.slice(h,y),b=g?v?`\r -`:` -`:"",w=a(A);let _=A;if(!u&&!w){const M=l(A,h);if(M!==-1){const B=b||` -`;_=`${A.slice(0,M).replace(/[ \t]+$/,"")}${B}${B}${A.slice(M).replace(/^[ \t]+/,"")}`}}f+=_,f+=b,w&&(u?w.markerChar===c&&w.markerLen>=d&&/^\s*$/.test(w.rest)&&(u=!1,c="",d=0):(u=!0,c=w.markerChar,d=w.markerLen)),h=g?m+1:e.length}return f}function $be(e,t){if(!e||!t.length)return e;const n=new Set(t.map(d=>String(d??"").toLowerCase()));if(!n.size)return e;const i=d=>d===" "||d===" ",o=d=>{const f=d.charCodeAt(0);return f>=65&&f<=90||f>=97&&f<=122||f>=48&&f<=57||d==="_"||d==="-"},s=d=>{let f=0;for(;f{let f=!1,h=!1;for(let m=0;m")return m}return-1},a=(d,f,h)=>{const m=h.toLowerCase();let g=d.indexOf("<",f);for(;g!==-1;){let v=g+1;for(;v=d.length||d[v]!=="/"){g=d.indexOf("<",g+1);continue}for(v++;vd.length){g=d.indexOf("<",g+1);continue}let y=!0;for(let b=0;b="A"&&w<="Z"?String.fromCharCode(w.charCodeAt(0)+32):w)!==m[b]){y=!1;break}}if(!y){g=d.indexOf("<",g+1);continue}let A=v+m.length;if(A")return!0;g=d.indexOf("<",g+1)}return!1},l=d=>{let f=0;for(;f=d.length||d[f]!=="<")return d;for(f++;f=d.length||d[f]==="/")return d;const h=f;for(;fc&&e[d-1]==="\r",h=f?d-1:d,m=e.slice(c,h);u+=l(m),u+=f?`\r -`:` -`,c=d+1}return u}function jbe(e,t){if(!e||!t.length)return e;const n=new Set(t.map(f=>String(f??"").toLowerCase()));if(!n.size)return e;const i=f=>f===" "||f===" ",o=f=>{let h=0,m=!1,g=0;for(;h=f.length||f[h]!==">")break;for(m=!0,h++;h{let h=0;for(;hnew RegExp(String.raw`(<\s*\/\s*${f}\s*>)${"(?=[\\t ]*(?:#{1,6}[\\t ]+|>|(?:[*+-]|\\d+[.)])[\\t ]+|(?:`{3,}|~{3,})|\\||\\$\\$|:{3,}|\\[\\^[^\\]]+\\]:|(?:-{3,}|\\*{3,}|_{3,})))"}`,"gi"));let a=!1,l="",u=0,c="",d=0;for(;dd&&e[f-1]==="\r",g=h?m?f-1:f:e.length,v=e.slice(d,g),y=h?m?`\r -`:` -`:"",A=o(v),b=A?.prefix??"",w=A?.content??v,_=s(w);_&&(a?_.markerChar===l&&_.markerLen>=u&&/^\s*$/.test(_.rest)&&(a=!1,l="",u=0):(a=!0,l=_.markerChar,u=_.markerLen));let M=w;if(!a&&M.includes("{if(F.replace(/^[\t ]+/,"").startsWith("|"))return C;const E=F.slice(0,I).replace(/^[\t ]+/,"");if(E.length>0){const D=S.match(/^<\s*\/\s*([A-Z][\w:-]*)/i)?.[1]?.toLowerCase()??"",j=E.match(/^<\s*([A-Z][\w:-]*)/i)?.[1]?.toLowerCase()??"";if(!D||!j||D!==j)return C}return`${S} - -`});if(b){const B=b+M.split(` -`).join(` -${b}`);c+=B}else c+=M;c+=y,d=h?f+1:e.length}return c}function Hbe(e,t){if(!e||!t.length)return e;const n=new Set(t.map(E=>String(E??"").toLowerCase()));if(!n.size)return e;const i=E=>E===" "||E===" ",o=E=>{if(!E)return!1;if(E[0]===" ")return!0;let D=0;for(let j=0;j=4)return!0;continue}if(z===" ")return!0;break}return!1},s=E=>{const D=E.charCodeAt(0);return D>=65&&D<=90||D>=97&&D<=122||D>=48&&D<=57||E==="_"||E==="-"||E===":"},r=E=>{let D=0;for(;D{let D=0,j=!1,z=0;for(;D=E.length||E[D]!==">")break;for(j=!0,D++;Dr(E).startsWith("<"),u=E=>{for(let D=0;D{if(o(E))return"";const D=r(E);if(!D.startsWith("<"))return"";let j=1;for(;j=D.length||D[j]==="/"||D[j]==="!"||D[j]==="?")return"";const z=j;for(;j"&&N!=="/"?"":T},d=E=>{if(o(E))return null;const D=r(E);if(!D.startsWith("<"))return null;let j=1;for(;j=D.length)return null;const z=D[j]==="/";if(z)for(j++;j"&&H!=="/")return null;if(z)return{type:"close",name:L};if(/\/\s*>\s*$/.test(D))return{type:"open",name:L,complete:!0};const O=D.indexOf(">",j);if(O!==-1){const Q=D.slice(O+1);if(new RegExp(`<\\s*\\/\\s*${L}\\s*>`,"i").test(Q))return{type:"open",name:L,complete:!0}}return{type:"open",name:L,complete:!1}},f=E=>{if(o(E))return null;const D=r(E).replace(/[ \t]+$/,"");if(!D.startsWith("<")||/^<\s*(?:!--|!doctype\b|\?)/i.test(D))return null;const j=D.match(/^<\s*([A-Z][\w:-]*)\b[^>]*\/\s*>\s*$/i);if(j?.[1])return j[1].toLowerCase();const z=D.match(/^<\s*([A-Z][\w:-]*)\b[^>]*>[\s\S]*<\s*\/\s*([A-Z][\w:-]*)\s*>\s*$/i);if(!z?.[1]||!z[2])return null;const T=z[1].toLowerCase();return T===z[2].toLowerCase()?T:null};let h=!1,m="",g=0;const v=E=>{let D=0;for(;Dv(E),A=E=>{const D=r(E);return D?o(E)?!0:/^(?:#{1,6}[ \t]+|>|[*+-][ \t]+|\d+[.)][ \t]+|`{3,}|~{3,}|\||\$\$|:{3,}|\[\^[^\]]+\]:|-{3,}|\*{3,}|_{3,})/.test(D):!1},b=(E,D,j)=>{let z=E,T=0;for(;zz&&e[N-1]==="\r",O=L?H?N-1:N:e.length,Q=e.slice(z,O),Y=a(Q),W=Y?.key??"";if(T>0&&D&&W!==D)break;const Z=Y?.content??Q,ee=d(Z);if(ee?.name===j){if(ee.type==="open")ee.complete||T++;else if(T>0&&(T--,T===0))return!1}else if(T>0&&(u(Z)||A(Z)))return!0;if(L)z=N+1;else break}return!1};let w="",_=0,M=!0,B=!1,C=!1,S=` -`;const I=[];let F="";for(;__&&e[E-1]==="\r",z=D?j?E-1:E:e.length,T=e.slice(_,z),N=D?j?`\r -`:` -`:"",L=a(T),H=L?.key??"",O=L?.content??T,Q=y(O);Q&&(h?Q.markerChar===m&&Q.markerLen>=g&&/^\s*$/.test(Q.rest)&&(h=!1,m="",g=0):(h=!0,m=Q.markerChar,g=Q.markerLen));const Y=I.length>0;if(!h&&!Y){const Z=c(O),ee=!!Z&&!M&&B&&C&&b(_,H,Z);Z&&!M&&(!B||ee)&&(H&&F&&H===F?w+=`${H}${S}`:H||(w+=S))}if(w+=T,w+=N,N&&(S=N),!h){const Z=d(O);if(Z){if(Z.type==="open")Z.complete||I.push(Z.name);else for(let ee=I.length-1;ee>=0;ee--)if(I[ee]===Z.name){I.length=ee;break}}}const W=u(O);M=W,B=!W&&l(O),C=!W&&!!f(O),F=H,_=D?E+1:e.length}return w}function Ube(e){let t=!1,n="",i=0,o=!1,s=!1,r=!1,a=0;const l=(c,d)=>{const f=NE(c);if(f){t?f.markerChar===n&&f.markerLen>=i&&/^\s*$/.test(f.rest)&&(t=!1,n="",i=0):(t=!0,n=f.markerChar,i=f.markerLen);return}if(t)return;let h=0;for(;h{for(;a=c?c:d,h=f>a&&e[f-1]==="\r"?f-1:f;if(l(e.slice(a,h)),d===-1||d>=c){a=c;break}r=!1,a=d+1}},inMath:()=>o||s||r}}function z8(e,t,n,i){let o=e.replace(/([^\\])\r(ight|ho)/g,"$1\\r$2");const s=Ube(o);if(o=o.replace(/([^\\])\r?\n(abla|eq|ot|exists)/g,(r,a,l,u)=>{s.scanTo(u+1);const c=s.inMath();return s.scanTo(u+r.length),c?`${a}\\n${l}`:r}),t||(o.endsWith("- *")&&(o=o.replace(/- \*$/,"- \\*")),/(?:^|\n)\s*-\s*$/.test(o)?o=o.replace(/(?:^|\n)\s*-\s*$/,r=>r.startsWith(` -`)?` -`:""):/(?:^|\n)\s*--\s*$/.test(o)?o=o.replace(/(?:^|\n)\s*--\s*$/,r=>r.startsWith(` -`)?` -`:""):/(?:^|\n)\s*>\s*$/.test(o)?o=o.replace(/(?:^|\n)\s*>\s*$/,r=>r.startsWith(` -`)?` -`:""):/\n\s*[*+]\s*$/.test(o)?o=o.replace(/\n\s*[*+]\s*$/,` -`):/(?:^|\n)\s*\d+\s*$/.test(o)?/^\d+$/.test(o.trim())||(o=o.replace(/(?:^|\n)\s*\d+\s*$/,r=>r.startsWith(` -`)?` -`:"")):/(?:^|\n)\s*\d+[.)]\s+\*{1,3}\s*$/.test(o)?o=o.replace(/((?:^|\n)\s*\d+[.)]\s+)(\*{1,3})\s*$/,(r,a,l)=>`${a}${l.split("").map(()=>"\\*").join("")}`):/(?:^|\n)\s*\d+[.)]\s*$/.test(o)?o=o.replace(/(?:^|\n)\s*\d+[.)]\s*$/,r=>r.startsWith(` -`)?` -`:""):/\n[[(]\n*$/.test(o)&&(o=o.replace(/(\n\[|\n\()+\n*$/g,` -`)),o=cbe(o,i.customHtmlTags)??o),i.customHtmlTags?.length&&o.includes("<")){const r=T1(i.customHtmlTags);if(r.length&&(o=zbe(o,r),o=$be(o,r),o=Hbe(o,r),o=jbe(o,r),o.includes("[\t ]*)(\r?\n)(?![\t ]*\r?\n|$)`,"gim");o=o.replace(l,"$1$2$2")}}return t||(o=Obe(o)),o}function Wbe(e,t,n,i){const o=e,s=`${n?"final":"stream"}:${(i.customHtmlTags??[]).join(",")}`,r=a7.get(o);let a;if(!n&&!i.customHtmlTags?.length&&r&&r.mode===s&&t.length>=r.source.length&&t.startsWith(r.source)){const l=Math.max(0,r.source.length-H9e-U9e),u=z8(t.slice(l),n,e,i),c=r.source.length-l;a=u.length>=c&&u.slice(0,c)===r.safeMarkdown.slice(-c)?r.safeMarkdown.slice(0,r.safeMarkdown.length-c)+u:z8(t,n,e,i)}else a=z8(t,n,e,i);return n||(a=dbe(a,e)),a7.set(o,{source:t,safeMarkdown:a,mode:s}),a}function qG(e,t,n={}){const i=LG(n),o=i?Pu():0,s=!!n.final,r=(e??"").toString();tbe(t,n)&&(t.stream.reset(),nbe(t),a7.delete(t),l7.delete(t));const a=Wbe(t,r,s,n);i&&Yf(i,"safeMarkdownMs",Pu()-o);const l=kbe(a);if(l){if(n.includeSourceMap){const _={...n,__sourceLineMapper:GN(r,a)};l[0].sourceMap=u2(a,0,a.length,_)}const b=n.preTransformTokens,w=n.postTransformTokens;if(BE(t,n)||typeof b=="function"||typeof w=="function"){const _=jN(t,a,{__markstreamFinal:s},n),M=typeof b=="function"&&b(_)||_;typeof w=="function"&&w(M)}return NN(l,n,i,o)}const u=i?Pu():0,c=jN(t,a,{__markstreamFinal:s},n);if(i&&Yf(i,"tokenizeMs",Pu()-u),!c||!Array.isArray(c))return NN([],n,i,o);const d=n.preTransformTokens,f=n.postTransformTokens;let h=c;d&&typeof d=="function"&&(h=d(h)||h);const m=t,g=typeof m.validateLink=="function"&&m.__markstreamOriginalValidateLink&&m.validateLink!==m.__markstreamOriginalValidateLink?m.validateLink:void 0,v=n.validateLink??g??m.options?.validateLink??(typeof m.validateLink=="function"?m.validateLink:void 0),y={...n,validateLink:v,__markdownIt:t,__sourceLineMapper:n.includeSourceMap===!0?GN(r,a):void 0,__sourceMarkdown:a,__customHtmlBlockCursor:0};let A=Y9e(t,a,h,y,i);if(f&&typeof f=="function"){const b=f(h);if(Array.isArray(b)){const w=b[0],_=w?.type;w&&typeof _=="string"?A=Cm(b,{...y,__customHtmlBlockCursor:0},i):A=b}}if(Dbe(A)){const b=i?Pu():0;A=Pbe(A,s,a,y),A=GG(A,a,t,y,s)[0],A=Rbe(A,t,y,s),i&&Yf(i,"htmlBlockPassesMs",Pu()-b)}if(s){const b=new WeakSet,w=_=>{if(!_||typeof _!="object"||b.has(_))return;if(b.add(_),Array.isArray(_)){for(const B of _)w(B);return}const M=_;M.type==="html_block"&&M.loading===!0&&(M.loading=!1);for(const B of Object.values(M))w(B)};w(A)}return A=OG(A,n),n.debug&&console.log("Parsed Markdown Tree Structure:",A),PG(A,i,o)}function qN(e,t){if(!e||!Array.isArray(e))return[];const n=[],i=Nh(t),o=t?.__linkifyDemotionSeed;if(Array.isArray(o)&&o.length)for(const a of o)i.remember(String(a??""));const s=t?.includeSourceMap===!0;let r=0;for(;rd.type==="html_block")){if(s)for(const d of c)Si(d,l,t);for(const d of c)Ac(d,l,t);n.push(...c)}else{const d={type:"paragraph",raw:u,children:c};s&&Si(d,l,t);const f=WN(d,t);if(f){s&&UN(f,d);for(const h of f)Ac(h,l,t);n.push(...f)}else Ac(d,l,t),n.push(d)}i.remember(u)}r+=1;break;default:r+=1;break}}return n}const Qbe=/\\([ \\!"#$%&'()*+,./:;<=>?@[\]^_`{|}~-])/g,dA=/\d/u,Vbe=/[,.!?;:,。;、!?:]/u,Gbe=/\d\p{Script=Han}{1,3}$/u;function qbe(e){return e.pos>0&&e.pos+1{const u=a,c=u.posMax,d=u.pos;if(u.src.charCodeAt(d)!==r||l||s.refuseDigitRange&&qbe(u))return!1;u.pos=d+1;let f=!1;for(;u.pos]|$)/i,Jbe=new Set([...Z2,"base","button","datalist","dialog","embed","fieldset","form","iframe","input","legend","link","meta","object","optgroup","option","output","param","select","style","template","textarea","title"]),Xbe=new Set(["a","abbr","b","blockquote","br","caption","code","col","colgroup","dd","details","div","dl","dt","em","h1","h2","h3","h4","h5","h6","hr","i","img","ins","kbd","li","mark","ol","p","picture","pre","s","small","source","span","strong","sub","summary","sup","table","tbody","td","tfoot","th","thead","tr","ul"]);function KN(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function ewe(e){return typeof e=="string"?e:e==null?"":String(e)}function KG(e){return/^[^\s"'<>`=]+$/.test(e)&&!/^on/i.test(e)}function zf(e){return ewe(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function ZG(e){return zf(e).replace(/`/g,"`")}function sC(e){return String(e??"").trim().toLowerCase()}function PE(e,t="safe"){const n=sC(e);return n?t==="escape"?!0:t==="trusted"?Z2.has(n):!Xbe.has(n):!1}function YG(e,t="safe"){const n=sC(e);return n?t==="escape"?!0:t==="trusted"?Z2.has(n):Jbe.has(n):!1}function ZN(e){const t=Object.entries(e);return t.length===0?"":t.map(([n,i])=>i===""?` ${n}`:` ${n}="${ZG(i)}"`).join("")}function JG(e){const t=e.startsWith("/"),n=t?e.slice(1):e,i=n.match(Ybe);return i?{attrsStr:t?"":n.slice(i[0].length).trimStart(),isClosing:t,isSelfClosing:!t&&e.trimEnd().endsWith("/"),tagName:i[1]}:null}function twe(e,t){const n=e.split(",").map(i=>i.trim()).filter(Boolean);return n.length===0?!1:n.some(i=>{const o=i.split(/\s+/,1)[0]??"";return!o||Yp(o,{tagName:t,attrName:"srcset"})})}function XG(e,t,n,i){return zAe.has(e)||n==="safe"&&e==="style"?!0:e==="srcset"?twe(t,i):!!($Ae.has(e)&&t&&Yp(t,{tagName:i,attrName:e}))}function _p(e,t){const n=t.toLowerCase();return Object.keys(e).find(i=>i.toLowerCase()===n)}function eq(e,t,n,i=!1){if(t!=="safe"||sC(n)!=="a")return e;const o=_p(e,"href");if(i&&(!o||!e[o])){const l=_p(e,"target"),u=_p(e,"rel");return l&&delete e[l],u&&delete e[u],e}const s=_p(e,"target");if((s?String(e[s]).trim():"").toLowerCase()!=="_blank")return e;const r=_p(e,"rel"),a=new Set(String(r?e[r]:"").split(/\s+/).map(l=>l.trim()).filter(Boolean).filter(l=>l.toLowerCase()!=="opener"));return a.add("noopener"),a.add("noreferrer"),r&&r!=="rel"&&delete e[r],e.rel=Array.from(a).join(" "),e}function YN(e,t="safe",n){const i={};for(const[o,s]of Object.entries(e)){const r=o.trim(),a=r.toLowerCase();!r||!KG(r)||XG(a,s,t,n)||(i[r]=s)}return eq(i,t,n,!!_p(e,"href"))}function tq(e,t){const n=e.toLowerCase();return QV.has(n)?!1:KN(t,n)||KN(t,e)}function OE(e,t="safe",n){const i={};for(const[o,s]of Object.entries(e)){const r=o.trim(),a=r.toLowerCase();!r||!KG(r)||XG(a,s,t,n)||(i[r]=s)}return eq(i,t,n,!!_p(e,"href"))}function fA(e){const t={};if(!Array.isArray(e)||e.length===0)return t;for(const[n,i]of e)n&&(t[String(n)]=i==null?"":String(i));return t}function D9(e,t="safe",n){const i=OE(fA(e),t,n),o=Object.entries(i).map(([s,r])=>[s,r]);return o.length>0?o:void 0}function nwe(e,t){const n=t.toLowerCase();if(["checked","disabled","readonly","required","autofocus","multiple","hidden"].includes(n))return e==="true"||e===""||e===t;if(["value","min","max","step","width","height","size","maxlength"].includes(n)){const i=Number(e);if(e!==""&&!Number.isNaN(i))return i}return e}function iwe(e){const t={};for(const[n,i]of Object.entries(e))t[n]=nwe(i,n);return t}function $8(e){return e.trim().length>0}function nq(e){const t=[];let n=0;for(;n",n);if(r!==-1){n=r+3;continue}break}const i=e.indexOf("<",n);if(i===-1){if(nn){const r=e.slice(n,i);$8(r)&&t.push({type:"text",content:r})}if(e.startsWith("![CDATA[",i+1)){const r=e.indexOf("]]>",i);if(r!==-1){t.push({type:"text",content:e.slice(i,r+3)}),n=r+3;continue}break}if(e.startsWith("!",i+1)){const r=e.indexOf(">",i);if(r!==-1){n=r+1;continue}break}const o=e.indexOf(">",i);if(o===-1)break;const s=JG(e.slice(i+1,o));if(!s){const r=e.slice(i,o+1);$8(r)&&t.push({type:"text",content:r}),n=o+1;continue}if(s.isClosing)t.push({type:"tag_close",tagName:s.tagName});else{const r={};if(s.attrsStr){const a=/([^\s=]+)(?:=(?:"([^"]*)"|'([^']*)'|(\S*)))?/g;let l;for(;(l=a.exec(s.attrsStr))!==null;){const u=l[1],c=l[2]??l[3]??l[4]??"";u&&!u.endsWith("/")&&(r[u]=c)}}t.push({type:s.isSelfClosing||hh.has(s.tagName.toLowerCase())?"self_closing":"tag_open",tagName:s.tagName,attrs:r})}n=o+1}return t}function owe(e){const t=[];let n=0;for(;n",n);if(a!==-1){n=a+3;continue}break}const i=e.indexOf("<",n);if(i===-1){nn&&t.push({type:"text",content:e.slice(n,i)}),e.startsWith("![CDATA[",i+1)){const a=e.indexOf("]]>",i);if(a!==-1){t.push({type:"text",content:e.slice(i,a+3)}),n=a+3;continue}break}if(e.startsWith("!",i+1)){const a=e.indexOf(">",i);if(a!==-1){n=a+1;continue}break}const o=e.indexOf(">",i);if(o===-1)break;const s=JG(e.slice(i+1,o));if(!s){t.push({type:"text",content:e.slice(i,o+1)}),n=o+1;continue}if(s.isClosing){t.push({type:"tag_close",tagName:s.tagName}),n=o+1;continue}const r={};if(s.attrsStr){const a=/([^\s=]+)(?:=(?:"([^"]*)"|'([^']*)'|(\S*)))?/g;let l;for(;(l=a.exec(s.attrsStr))!==null;){const u=l[1],c=l[2]??l[3]??l[4]??"";u&&!u.endsWith("/")&&(r[u]=c)}}t.push({type:s.isSelfClosing||hh.has(s.tagName.toLowerCase())?"self_closing":"tag_open",tagName:s.tagName,attrs:r}),n=o+1}return t}function swe(e){const t=String(e.tagName??"").trim();if(!t)return"";if(e.type==="tag_close")return`</${zf(t)}>`;const n=Object.entries(e.attrs??{}).map(([i,o])=>o===""?` ${zf(i)}`:` ${zf(i)}="${ZG(o)}"`).join("");return e.type==="self_closing"?`<${zf(t)}${n} />`:`<${zf(t)}${n}>`}function rwe(e,t){if(!e||!e.includes("<")||!t||Object.keys(t).length===0)return!1;for(const n of nq(e))if((n.type==="tag_open"||n.type==="self_closing")&&tq(n.tagName??"",t))return!0;return!1}function dg(e,t="safe"){if(!e)return"";if(t==="escape")return zf(e);const n=owe(e),i=[],o=[],s=[];for(const r of n){if(r.type==="text"){s.length===0&&o.push(zf(r.content??""));continue}const a=sC(r.tagName);if(!a)continue;if(YG(a,t)){r.type==="tag_open"?s.push(a):r.type==="tag_close"&&s[s.length-1]===a&&s.pop();continue}if(s.length>0)continue;if(t==="safe"&&PE(a,t)){o.push(swe(r));continue}if(r.type==="self_closing"){o.push(`<${a}${ZN(YN(r.attrs??{},t,a))}>`);continue}if(r.type==="tag_open"){o.push(`<${a}${ZN(YN(r.attrs??{},t,a))}>`),hh.has(a)||i.push(a);continue}const l=i.lastIndexOf(a);if(l===-1)continue;for(;i.length>l+1;){const c=i.pop();c&&o.push(``)}const u=i.pop();u&&o.push(``)}for(;i.length>0;){const r=i.pop();r&&o.push(``)}return o.join("")}const awe=[/javascript:/i,/vbscript:/i,/data:text\/html/i,/expression\s*\(/i,/@import/i],JN="http://www.w3.org/2000/svg",lwe=new Set(["script","style","iframe","object","embed","link","meta"]),uwe=new Set(["svg","style","g","a","defs","marker","path","rect","circle","ellipse","line","polyline","polygon","text","tspan","title","desc","use","image","lineargradient","radialgradient","stop","clippath","mask","pattern"]),cwe=new Set(["href","xlink:href","src","srcdoc","action","data","formaction","poster"]),dwe=new Set(["clip-path","fill","filter","marker-end","marker-mid","marker-start","mask","stroke"]),fwe=new Set(["circle","ellipse","image","line","path","polygon","polyline","rect","text","tspan","use"]);function hwe(e){return(e.getAttribute("href")||e.getAttribute("xlink:href"))?.startsWith("#")===!0}function pwe(e){return!!(e.getAttribute("href")||e.getAttribute("xlink:href")||e.getAttribute("src"))}function mwe(e){const t=e.nodeName.toLowerCase();return t==="use"?hwe(e):t==="image"?pwe(e):t==="text"||t==="tspan"?!!e.textContent?.trim():fwe.has(t)}function gwe(e){return e.replace(/(["'])\s*javascript:/gi,"$1#").replace(/\bjavascript:/gi,"#").replace(/(["'])\s*vbscript:/gi,"$1#").replace(/\bvbscript:/gi,"#").replace(/\bdata:text\/html/gi,"#")}function vwe(e,t,n){const i=e.toLowerCase(),o=t.toLowerCase(),s=String(n??"").trim();return s?(i==="use"||i==="marker"||i==="clippath"||i==="mask")&&(o==="href"||o==="xlink:href")?s.startsWith("#")?s:"":i==="a"&&(o==="href"||o==="xlink:href")?Yp(s,{tagName:"a",attrName:"href"})?"":s:i==="image"&&(o==="href"||o==="xlink:href"||o==="src")?Yp(s,{tagName:"img",attrName:"src"})?"":s:o==="href"||o==="xlink:href"?s.startsWith("#")?s:"":Yp(s,{tagName:i,attrName:o})?"":s:""}function Awe(e,t){let n=t+4;for(;n{const i=n.trim();if(/^[0-9a-f]+$/i.test(i)){const o=Number.parseInt(i,16);try{return Number.isFinite(o)?String.fromCodePoint(o):""}catch{return""}}return String(n).trim()})}function oq(e){const t=iq(e),n=t.toLowerCase();let i=0;for(;in.test(t))||oq(t)}function ywe(e){if(e.tagName.toLowerCase()!=="a"||e.getAttribute("target")?.trim().toLowerCase()!=="_blank")return;const t=new Set(String(e.getAttribute("rel")??"").split(/\s+/).map(n=>n.trim()).filter(Boolean).filter(n=>n.toLowerCase()!=="opener"));t.add("noopener"),t.add("noreferrer"),e.setAttribute("rel",Array.from(t).join(" "))}function Ak(e){const t=Number.parseFloat(String(e??""));return Number.isFinite(t)?t:0}function sq(e,t){if(e.nodeType===Node.TEXT_NODE){const o=e.textContent??"";o&&t.push(o);return}if(e.nodeType!==Node.ELEMENT_NODE)return;const n=e,i=n.tagName.toLowerCase();if(!lwe.has(i)){if(i==="br"){t.push(` -`);return}for(const o of Array.from(n.childNodes))sq(o,t)}}function kwe(e){for(const t of Array.from(e.querySelectorAll("foreignObject"))){const n=[];sq(t,n);const i=n.join("").split(/\r?\n/).map(c=>c.trim()).filter(Boolean);if(!i.length){t.remove();continue}const o=Ak(t.getAttribute("width")),s=Ak(t.getAttribute("height")),r=Ak(t.getAttribute("x")),a=Ak(t.getAttribute("y")),l=e.ownerDocument.createElementNS(JN,"text");l.setAttribute("x",String(r+o/2)),l.setAttribute("y",String(a+s/2)),l.setAttribute("text-anchor","middle"),l.setAttribute("dominant-baseline","central");const u=t.querySelector(".nodeLabel");if(u?.getAttribute("class")&&l.setAttribute("class",u.getAttribute("class")),i.length===1)l.textContent=i[0];else{const c=-.6*(i.length-1);for(const[d,f]of i.entries()){const h=e.ownerDocument.createElementNS(JN,"tspan");h.setAttribute("x",String(r+o/2)),h.setAttribute("dy",d===0?`${c}em`:"1.2em"),h.textContent=f,l.appendChild(h)}}t.parentNode?.replaceChild(l,t)}}function bwe(e){kwe(e);const t=[e,...Array.from(e.querySelectorAll("*"))];for(const n of t){const i=n.tagName.toLowerCase();if(!uwe.has(i)){n.remove();continue}if(i==="style"&&XN(n.textContent??"")){n.remove();continue}const o=Array.from(n.attributes);for(const s of o){const r=s.name.toLowerCase();if(/^on/i.test(r)){n.removeAttribute(s.name);continue}if(r==="style"&&s.value&&XN(s.value)){n.removeAttribute(s.name);continue}if(r==="srcdoc"){n.removeAttribute(s.name);continue}if(cwe.has(r)&&s.value){const a=vwe(i,r,s.value);if(!a){n.removeAttribute(s.name);continue}a!==s.value&&n.setAttribute(s.name,a);continue}if(dwe.has(r)&&s.value&&oq(s.value)){n.removeAttribute(s.name);continue}if(s.value){const a=gwe(s.value);a!==s.value&&n.setAttribute(s.name,a)}}ywe(n)}}function M_t(e){if(typeof DOMParser>"u"||!e)return null;try{const t=new DOMParser().parseFromString(e,"image/svg+xml").documentElement;if(!t||t.nodeName.toLowerCase()!=="svg")return null;const n=t;return bwe(n),wwe(n)?null:n}catch{return null}}function wwe(e){const t=e.getAttribute("viewBox");if(t){const o=t.trim().split(/[\s,]+/);if(o.length===4){const s=Number.parseFloat(o[2]||""),r=Number.parseFloat(o[3]||"");if(!Number.isFinite(s)||!Number.isFinite(r)||s<=0||r<=0)return!0}}const n=[e,...Array.from(e.querySelectorAll("*"))];let i=!1;for(const o of n){mwe(o)&&(i=!0);for(const s of Array.from(o.attributes))if(/\bNaN\b/i.test(s.value)||s.name==="style"&&/max-width:\s*0(?:px)?/i.test(s.value))return!0}return!i}const yk=[];function j8(e){return String(e??"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Cwe(e){return(String(e||"text").trim().split(/\s+/)[0]||"text").replace(/[^\w+.#:-]/g,"-").replace(/-+/g,"-")||"text"}function Swe(e){return e.replace(/[^\w:.+-]/g,"-").replace(/-+/g,"-")}function eL(e=`editor-${Date.now()}`,t={}){const n=oke(t),i=n;i.__markstreamRegisteredPluginCount=yk.length,i.__markstreamHasCustomParserExtensions=!!(t.plugin?.length||t.apply?.length||yk.length);const o={"common.copy":"Copy"};let s;if(typeof t.i18n=="function")s=t.i18n;else if(t.i18n&&typeof t.i18n=="object"){const h=t.i18n;s=m=>h[m]??o[m]??m}else s=h=>o[h]??h;if(Array.isArray(t.plugin))for(const h of t.plugin){const m=h;if(Array.isArray(m)){const[g,...v]=m;typeof g=="function"&&n.use(g,...v)}else typeof m=="function"&&n.use(m)}if(Array.isArray(t.apply))for(const h of t.apply)try{h(n)}catch(m){console.error("[getMarkdown] apply function threw an error",m)}if(yk.length)for(const h of yk)if(Array.isArray(h)){const[m,...g]=h;typeof m=="function"&&n.use(m,...g)}else typeof h=="function"&&n.use(h);n.use(Zbe),n.use(Sme),n.use(bme);const r=Pme,a=r.default??r;n.use(a),n.use(kme),n.use(yme),n.core.ruler.after("block","mark_fence_closed",h=>{const m=h,g=m.src,v=!!m.env?.__markstreamFinal,y=g.split(/\r?\n/);for(const A of m.tokens){if(A.type!=="fence"||!A.map||!A.markup)continue;const b=A.map[0],w=A.map[1],_=A.markup,M=_[0],B=_.length,C=y[Math.max(0,w-1)]??"";let S=0;for(;Sb+1&&I>=B&&F===C.length,D=A;D.meta=D.meta??{},D.meta.unclosed=!E,D.meta.closed=!!E}}),n.renderer.rules.fence=(h,m)=>{const g=h[m],v=String(g.info??"").trim(),y=String(g.content??""),A=btoa(unescape(encodeURIComponent(y))),b=Cwe(v),w=j8(b),_=Swe(`editor-${e}-${m}-${b}`),M=j8(s("common.copy"));return`
      -
      - ${j8(b.toUpperCase())} - -
      -
      -
      `};const l=/^\[(\d+)\]/,u=/^\[([^\]\n]+)\]/,c=h=>{if(!h.startsWith("["))return!1;const m=u.exec(h);if(!m)return h!=="["&&!/^\[\d+$/.test(h);const g=String(m[1]??"");return h.slice(m[0].length).startsWith("(")?!1:!/^\d+$/.test(g)},d=(h,m)=>{const g=h;if(g.src[g.pos]!=="[")return!1;const v=l.exec(g.src.slice(g.pos));if(!v)return!1;const y=g.src.slice(Math.max(0,g.pos-120),g.pos);if(/"[^"\n]{1,80}"\s*:\s*$/.test(y))return!1;const A=g.src.slice(g.pos+v[0].length);if(A.startsWith("](")||A.startsWith("(")||c(A))return!1;if(!m){const b=v[1],w=g.push("reference","span",0);w.content=b,w.markup=v[0],w.raw=v[0]}return g.pos+=v[0].length,!0};n.inline.ruler.before("escape","reference",d),n.renderer.rules.reference=(h,m)=>{const v=String(h[m].content??"");return`${v}`};const f=n.use.bind(n);return n.use=((...h)=>(i.__markstreamHasCustomParserExtensions=!0,f(...h))),n}const xwe="modulepreload",_we=function(e){return"/"+e},tL={},rs=function(t,n,i){let o=Promise.resolve();if(n&&n.length>0){let r=function(u){return Promise.all(u.map(c=>Promise.resolve(c).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),l=a?.nonce||a?.getAttribute("nonce");o=r(n.map(u=>{if(u=_we(u),u in tL)return;tL[u]=!0;const c=u.endsWith(".css"),d=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${d}`))return;const f=document.createElement("link");if(f.rel=c?"stylesheet":xwe,c||(f.as="script"),f.crossOrigin="",f.href=u,l&&f.setAttribute("nonce",l),document.head.appendChild(f),c)return new Promise((h,m)=>{f.addEventListener("load",h),f.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${u}`)))})}))}function s(r){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=r,window.dispatchEvent(a),!a.defaultPrevented)throw r}return o.then(r=>{for(const a of r||[])a.status==="rejected"&&s(a.reason);return t().catch(s)})};function Ewe({nextContent:e,previousContent:t,typewriterEnabled:n}){return n?e===t?{settledContent:e,streamedDelta:"",appended:!1}:t&&e.startsWith(t)&&e.length>t.length?{settledContent:t,streamedDelta:e.slice(t.length),appended:!0}:{settledContent:e,streamedDelta:"",appended:!1}:{settledContent:e,streamedDelta:"",appended:!1}}function rq({nextContent:e,persistedContent:t,currentState:n,typewriterEnabled:i,streamRenderVersionChanged:o=!1}){const s=`${n.settledContent}${n.streamedDelta}`;return i?n.streamedDelta&&s===e?o?{settledContent:s,streamedDelta:"",appended:!1}:{settledContent:n.settledContent,streamedDelta:n.streamedDelta,appended:!1}:Ewe({nextContent:e,previousContent:t??s,typewriterEnabled:i}):{settledContent:e,streamedDelta:"",appended:!1}}const Iwe={plain:"plaintext",text:"plaintext",txt:"plaintext",js:"javascript",mjs:"javascript",cjs:"javascript",ts:"typescript",mts:"typescript",cts:"typescript",golang:"go",py:"python",rb:"ruby",rs:"rust",kt:"kotlin",kts:"kotlin",md:"markdown",yml:"yaml",sh:"shellscript",bash:"shellscript",zsh:"shellscript",shell:"shellscript",shellscript:"shellscript",ps:"powershell",ps1:"powershell",pwsh:"powershell","c++":"cpp","c#":"csharp",cs:"csharp",objc:"objective-c",objectivec:"objective-c","objective-c":"objective-c",objectivecpp:"objective-cpp","objective-c++":"objective-cpp","objective-cpp":"objective-cpp"};function Mwe(e){var t,n;const i=String(e??"").trim();if(!i)return"";const[o=""]=i.split(/\s+/);return(t=(n=o.split(":")[0])===null||n===void 0?void 0:n.trim().toLowerCase())!==null&&t!==void 0?t:""}function aq(e){var t;const n=Mwe(e);return(t=Iwe[n])!==null&&t!==void 0?t:n}function Twe(e){if(!Array.isArray(e))return;const t=e.filter(i=>typeof i=="string").map(i=>aq(i)).filter(Boolean),n=Array.from(new Set(t)).sort();return n.length>0?n:void 0}function Bwe(e){if(!Array.isArray(e))return;const t=[],n=new Set;for(const i of e){if(typeof i!="string")continue;const o=i.trim();!o||n.has(o)||(n.add(o),t.push(o))}return t.length>0?t:void 0}function Fwe(e){var t,n;return(t=(n=Bwe(e))===null||n===void 0?void 0:n.join("\0"))!==null&&t!==void 0?t:""}function Rwe(e,t){var n,i;return`${Fwe(e)}\0\0${(n=(i=Twe(t))===null||i===void 0?void 0:i.join("\0"))!==null&&n!==void 0?n:""}`}function om(e,t,n=1){const i=Number(e);return Number.isFinite(i)?Math.max(n,i):t}function nL(e,t){const n=Number(e);return Number.isFinite(n)?Math.max(0,n):t}var Dwe=class{constructor(e={},t){this.source="",this.visible="",this.done=!1,this.paused=!1,this.listeners=new Set,this.rafId=0,this.startedAt=0,this.lastTick=0,this.charBudget=0,this.hasStarted=!1,this.destroyed=!1,this.fenceScanOffset=0,this.fenceLineStart=0,this.fenceLineState="candidate",this.fenceIndent=0,this.fenceMarker="",this.fenceMarkerLength=0,this.activeFenceMarker="",this.activeFenceLength=0,this.blockedRevealEnd=0,this.atomicRevealRanges=[],this.atomicRevealRangeIndex=0,this.getSnapshot=()=>({source:this.source,visible:this.visible,done:this.done,paused:this.paused,pendingChars:this.pendingChars,caughtUp:this.caughtUp,final:this.final}),this.subscribe=d=>this.destroyed?()=>{}:(this.listeners.add(d),()=>{this.listeners.delete(d)}),this.enqueue=d=>{if(this.destroyed||!d)return;this.done&&(this.done=!1);const f=this.source.length>0,h=this.pendingChars<=0,m=this.isRevealBlocked();if(this.source+=d,this.scanAppendedSource(),h||m&&!this.isRevealBlocked()){const g=oL();this.startedAt=f&&this.hasStarted?g-this.normalizedStartDelayMs:g,this.lastTick=g,this.charBudget=0}this.hasStarted=!0,this.emit(),this.ensureLoop()},this.finish=(d={})=>{var f;if(!this.destroyed){if(this.done=!0,this.releaseTrailingFenceCandidate(),(f=d.flush)!==null&&f!==void 0?f:this.flushOnFinish){this.visible=this.source,this.discardConsumedAtomicRanges(),this.charBudget=0,this.currentCps=this.minCharsPerSecond,this.cancelLoop(),this.emit();return}this.emit(),this.ensureLoop()}},this.flush=()=>{this.destroyed||(this.releaseTrailingFenceCandidate(),this.visible=this.source,this.discardConsumedAtomicRanges(),this.charBudget=0,this.currentCps=this.minCharsPerSecond,this.cancelLoop(),this.emit())},this.reset=(d="")=>{this.destroyed||(this.cancelLoop(),d.startsWith(this.source)?(this.source=d,this.scanAppendedSource()):(this.resetFenceScanner(),this.source=d,this.scanAppendedSource()),this.visible=this.source.slice(0,this.getRevealableEnd()),this.discardConsumedAtomicRanges(),this.done=!1,this.paused=!1,this.hasStarted=!1,this.startedAt=0,this.lastTick=0,this.charBudget=0,this.currentCps=this.minCharsPerSecond,this.emit())},this.pause=()=>{this.destroyed||this.paused||(this.paused=!0,this.cancelLoop(),this.emit())},this.resume=()=>{if(this.destroyed||!this.paused)return;this.paused=!1;const d=oL();this.lastTick=d,this.startedAt||(this.startedAt=d),this.emit(),this.ensureLoop()},this.destroy=()=>{this.destroyed||(this.destroyed=!0,this.cancelLoop(),this.listeners.clear())},this.dispose=()=>{this.destroy()},this.tick=d=>{if(this.rafId=0,this.destroyed||this.paused)return;if(!this.hasRevealableChars()){this.startedAt=0,this.lastTick=0,this.charBudget=0,this.currentCps=this.minCharsPerSecond;return}if(d-this.startedAtthis.normalizedCatchUpThreshold?this.normalizedCatchUpLatencyMs:this.normalizedTargetLatencyMs,v=Pwe(m/Math.max(.001,g/1e3),this.minCharsPerSecond,this.maxCharsPerSecond);if(this.currentCps+=(v-this.currentCps)*.2,this.charBudget+=this.currentCps*(h/1e3),this.charBudget<1){this.ensureLoop();return}const y=Math.min(Math.floor(this.charBudget),this.maxCharsPerCommit),A=this.takeNextRevealSlice(y);A.text&&(this.visible+=A.text,this.charBudget=Math.max(0,this.charBudget-A.graphemeCount),this.emit()),this.ensureLoop()};const{minCharsPerSecond:n=40,maxCharsPerSecond:i=1e3,targetLatencyMs:o=900,catchUpLatencyMs:s=350,catchUpThreshold:r=600,maxCommitFps:a=30,startDelayMs:l=80,maxCharsPerCommit:u=80,flushOnFinish:c=!1}=e;this.minCharsPerSecond=om(n,40,1),this.maxCharsPerSecond=Math.max(this.minCharsPerSecond,om(i,1e3,1)),this.normalizedTargetLatencyMs=om(o,900,1),this.normalizedCatchUpLatencyMs=om(s,350,1),this.normalizedCatchUpThreshold=nL(r,600),this.normalizedStartDelayMs=nL(l,80),this.maxCommitFps=Math.trunc(om(a,30,1)),this.maxCharsPerCommit=Math.trunc(om(u,80,1)),this.flushOnFinish=c,this.segmenter=Lwe(),t&&this.listeners.add(t),this.currentCps=this.minCharsPerSecond}get pendingChars(){return Math.max(0,this.source.length-this.visible.length)}get caughtUp(){return this.pendingChars===0}get final(){return this.done&&this.caughtUp}resetFenceScanner(){this.fenceScanOffset=0,this.fenceLineStart=0,this.fenceLineState="candidate",this.fenceIndent=0,this.fenceMarker="",this.fenceMarkerLength=0,this.activeFenceMarker="",this.activeFenceLength=0,this.blockedRevealEnd=0,this.atomicRevealRanges.length=0,this.atomicRevealRangeIndex=0}scanAppendedSource(e=!1){for(;this.fenceScanOffset=this.source.length&&!e)break;if(this.source[this.fenceScanOffset+1]===` -`){const n=this.fenceScanOffset+2;this.completeFenceLine(n),this.fenceScanOffset=n;continue}}if(t===` -`){const n=this.fenceScanOffset+1;this.completeFenceLine(n),this.fenceScanOffset=n;continue}this.consumeFenceCharacter(t),this.fenceScanOffset++}this.updateFenceRevealBlock()}consumeFenceCharacter(e){if(this.fenceLineState!=="normal"){if(this.fenceLineState==="opening"){this.fenceMarker==="`"&&e==="`"&&(this.fenceLineState="normal");return}if(this.fenceLineState==="closing"){e!==" "&&e!==" "&&(this.fenceLineState="normal");return}if(!this.fenceMarker){if(e===" "&&this.fenceIndent<3){this.fenceIndent++;return}if(e==="`"||e==="~"){this.fenceMarker=e,this.fenceMarkerLength=1;return}this.fenceLineState="normal";return}if(e===this.fenceMarker){this.fenceMarkerLength++;return}if(this.activeFenceMarker){this.fenceLineState=this.fenceMarker===this.activeFenceMarker&&this.fenceMarkerLength>=this.activeFenceLength&&(e===" "||e===" ")?"closing":"normal";return}this.fenceLineState=this.fenceMarkerLength>=3?"opening":"normal"}}completeFenceLine(e){const t=this.fenceLineState==="candidate"&&this.fenceMarkerLength>=3;!this.activeFenceMarker&&(this.fenceLineState==="opening"||t)?(this.atomicRevealRanges.push({start:this.fenceLineStart,end:e}),this.activeFenceMarker=this.fenceMarker,this.activeFenceLength=this.fenceMarkerLength):this.activeFenceMarker&&this.fenceMarker===this.activeFenceMarker&&this.fenceMarkerLength>=this.activeFenceLength&&(this.fenceLineState==="closing"||t)&&(this.activeFenceMarker="",this.activeFenceLength=0),this.fenceLineStart=e,this.fenceLineState="candidate",this.fenceIndent=0,this.fenceMarker="",this.fenceMarkerLength=0,this.blockedRevealEnd=0}updateFenceRevealBlock(){this.blockedRevealEnd=!this.activeFenceMarker&&(this.fenceLineState==="opening"||this.fenceLineState==="candidate"&&(this.fenceIndent>0||this.fenceMarkerLength>0))?this.fenceLineStart+1:0}releaseTrailingFenceCandidate(){this.scanAppendedSource(!0),this.blockedRevealEnd&&((this.fenceLineState==="opening"||this.fenceLineState==="candidate"&&this.fenceMarkerLength>=3)&&this.source.length>this.fenceLineStart&&this.atomicRevealRanges.push({start:this.fenceLineStart,end:this.source.length}),this.fenceLineState="normal",this.blockedRevealEnd=0)}isRevealBlocked(){return this.blockedRevealEnd!==0}getRevealableEnd(){return this.blockedRevealEnd?Math.min(this.source.length,this.blockedRevealEnd-1):this.source.length}hasRevealableChars(){return this.visible.length=t)return{text:"",graphemeCount:0};const n=this.atomicRevealRanges[this.atomicRevealRangeIndex];if(n&&this.visible.length>=n.start&&this.visible.lengththis.visible.length?Math.min(n.start,t):t;return iL(this.source,this.visible.length,e,this.segmenter,i)}discardConsumedAtomicRanges(){for(;this.atomicRevealRangeIndex=64&&this.atomicRevealRangeIndex*2>=this.atomicRevealRanges.length&&(this.atomicRevealRanges.splice(0,this.atomicRevealRangeIndex),this.atomicRevealRangeIndex=0)}ensureLoop(){if(!(this.destroyed||this.rafId||this.paused||!this.hasRevealableChars())){if(typeof requestAnimationFrame!="function"){this.flush();return}this.rafId=requestAnimationFrame(this.tick)}}cancelLoop(){this.rafId&&(typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(this.rafId),this.rafId=0)}emit(){if(!this.destroyed)for(const e of this.listeners)e()}};function Nwe(e={},t){const n=new Dwe(e,t);return{getSnapshot:n.getSnapshot,subscribe:n.subscribe,enqueue:n.enqueue,finish:n.finish,flush:n.flush,reset:n.reset,pause:n.pause,resume:n.resume,destroy:n.destroy,dispose:n.dispose}}function Lwe(){if(typeof Intl>"u")return null;const e=Intl.Segmenter;return e?new e(void 0,{granularity:"grapheme"}):null}function iL(e,t,n,i,o=e.length){const s=Math.min(e.length,Math.max(t,o));if(t>=s||n<=0)return{text:"",graphemeCount:0};if(!i){let l=t,u=0;for(;l=55296&&c<=56319&&d>=56320&&d<=57343?2:1;l=Math.min(s,l+f),u++}return{text:e.slice(t,l),graphemeCount:u}}const r=s-t;let a=Math.min(r,Math.max(64,n*2));for(;;){const l=a>=r,u=e.slice(t,t+a);let c=0,d=0;for(const f of i.segment(u)){if(d>=n)return{text:e.slice(t,t+c),graphemeCount:d};c+=f.segment.length,d++}if(l)return{text:e.slice(t,t+c),graphemeCount:d};a=Math.min(r,a*2)}}function oL(){return typeof performance<"u"?performance.now():Date.now()}function Pwe(e,t,n){return Math.min(n,Math.max(t,e))}var Owe=(e,t,n)=>new Promise((i,o)=>{var s=l=>{try{a(n.next(l))}catch(u){o(u)}},r=l=>{try{a(n.throw(l))}catch(u){o(u)}},a=l=>l.done?i(l.value):Promise.resolve(l.value).then(s,r);a((n=n.apply(e,t)).next())});const d7=Symbol.for("markstream-vue:node-lifecycle");function T_t(){}const zE=new Map;let lq="material";const Nm=new Map,sL=new Map;let f7=null;function zwe(e){zE.set(e.id,e)}function $we(e){const t=zE.get(lq);if(!t)return;const n=t.core[e];if(n)return n;const i=Nm.get(t.id);if(i){const o=i[e];if(o)return o}t.loadExtended&&!Nm.has(t.id)&&Hwe(t)}function jwe(){var e,t;return(t=(e=zE.get(lq))==null?void 0:e.fallback)!=null?t:""}function Hwe(e){return Owe(this,null,function*(){var t,n,i;if(Nm.has(e.id))return(t=Nm.get(e.id))!=null?t:null;let o=sL.get(e.id);return o||(o=((i=(n=e.loadExtended)==null?void 0:n.call(e))!=null?i:Promise.resolve(null)).then(s=>(Nm.set(e.id,s),f7?.(),s)).catch(()=>(Nm.set(e.id,null),null)),sL.set(e.id,o)),o})}const rL='',aL='',Uwe={id:"material",core:{"":aL,plain:'',text:aL,javascript:'',typescript:'',jsx:'',tsx:'',html:'',css:'',scss:'',json:'',python:'',ruby:'',go:'',java:'',kotlin:'',c:'',cpp:'',cs:rL,csharp:rL,php:'',shell:'',powershell:'',sql:'',yaml:'',markdown:'',xml:'',rust:'',vue:'',mermaid:''},fallback:'',loadExtended:()=>rs(()=>import("./extended-p72mFE2C.js"),[]).then(e=>e.materialExtendedMap)},Wwe=qa(0);f7=()=>{Wwe.value++},zwe(Uwe);const Qwe={"":"",javascript:"javascript",js:"javascript",mjs:"javascript",cjs:"javascript",typescript:"typescript",ts:"typescript",jsx:"jsx",tsx:"tsx",golang:"go",py:"python",rb:"ruby",sh:"shell",bash:"shell",zsh:"shell",shellscript:"shell",bat:"shell",batch:"shell",ps1:"powershell",plaintext:"plain",text:"plain",txt:"plain","c++":"cpp","c#":"csharp",cs:"csharp","objective-c":"objectivec","objective-c++":"objectivecpp",yml:"yaml",md:"markdown",rs:"rust",kt:"kotlin"};function rC(e){var t;const n=(function(i){if(!i)return"";const o=i.trim();if(!o)return"";const[s]=o.split(/\s+/),[r]=s.split(":");return r.toLowerCase()})(e);return(t=Qwe[n])!=null?t:n}function B_t(e){const t=rC(e);if(!t)return"plaintext";switch(t){case"plain":return"plaintext";case"jsx":return"javascript";case"tsx":return"typescript";case"objectivec":return"objective-c";case"objectivecpp":return"objective-cpp";default:return t}}function F_t(e){return $we(rC(e))||jwe()}const lL={js:"JavaScript",javascript:"JavaScript",ts:"TypeScript",jsx:"JSX",tsx:"TSX",html:"HTML",css:"CSS",scss:"SCSS",json:"JSON",py:"Python",python:"Python",rb:"Ruby",go:"Go",java:"Java",c:"C",cpp:"C++",cs:"C#",csharp:"C#",php:"PHP",sh:"Shell",bash:"Bash",sql:"SQL",yaml:"YAML",md:"Markdown",d2:"D2",d2lang:"D2","":"Plain Text",plain:"Plain Text"};var aC=(e,t,n)=>new Promise((i,o)=>{var s=l=>{try{a(n.next(l))}catch(u){o(u)}},r=l=>{try{a(n.throw(l))}catch(u){o(u)}},a=l=>l.done?i(l.value):Promise.resolve(l.value).then(s,r);a((n=n.apply(e,t)).next())});let ha=null,Np=!1,Lp=null,lC=jE;function X2(e){var t;const n=(t=e?.default)!=null?t:e;return n&&typeof n.renderToString=="function"?n:null}function $E(){try{const e=globalThis;return X2(e?.katex)}catch{return null}}function jE(){return aC(null,null,function*(){const e=$E();if(e)return e;const t=yield rs(()=>import("./katex-DnlPpQZa.js"),[]);try{yield rs(()=>import("./mhchem-DtR62fUK.js"),__vite__mapDeps([0,1]))}catch{}return X2(t)})}function uq(e){const t=Promise.resolve(e).then(n=>{var i;return Lp===t&&n?(ha=(i=X2(n))!=null?i:n,ha):null}).catch(()=>null).finally(()=>{Lp===t&&(Lp=null)});return Lp=t,Np=!0,t}function Vwe(e){lC=e,ha=null,Np=!1,Lp=null}function Gwe(e){Vwe(jE)}function cq(){return typeof lC=="function"}function R_t(){var e;const t=lC;if(!t||t===jE)return null;if(ha)return ha;const n=$E();if(n)return ha=n,ha;if(Np)return null;try{const i=t();return i?typeof i?.then=="function"?(uq(i),null):(ha=(e=X2(i))!=null?e:i,ha):null}catch{return null}}function dq(){return aC(this,null,function*(){var e;const t=$E();if(t)return ha=t,ha;if(ha)return ha;if(Lp)return Lp;if(Np)return null;const n=lC;if(!n)return Np=!0,null;try{const i=n();if(typeof i?.then=="function")return uq(i);if(i)return ha=(e=X2(i))!=null?e:i,Np=!0,ha}catch{}return Np=!0,null})}function fq(e){return e?e.replace(/·/g,"⋅").replace(/℃/g,"°C"):""}let N9=null,pp=null;const ca=new Map,Bd=new Map;let c2=5;const Xp=new Set;function hA(){if(ca.size{const{id:n,html:i,error:o}=t.data,s=ca.get(n);if(s)if(ca.delete(n),clearTimeout(s.timeoutId),s.cleanup(),hA(),o)s.aborted||s.reject(new Error(o));else{const{content:r,displayMode:a}=t.data;if(r){const l=`${a?"d":"i"}:${r}`;if(Bd.set(l,i),Bd.size>200){const u=Bd.keys().next().value;Bd.delete(u)}}s.aborted||s.resolve(i)}},N9.onerror=t=>{console.error("[katexWorkerClient] Worker error:",t);for(const[n,i]of ca.entries())clearTimeout(i.timeoutId),i.cleanup(),i.aborted||i.reject(new Error(`Worker error: ${t.message}`));ca.clear(),qwe()}}function Zwe(e,t=!0,n=2e3,i){return aC(this,null,function*(){performance.now();const o=fq(e);if(!cq()){const l=new Error("KaTeX rendering disabled");return l.name="KaTeXDisabled",l.code="KATEX_DISABLED",Promise.reject(l)}if(pp)return Promise.reject(pp);const s=`${t?"d":"i"}:${o}`,r=Bd.get(s);if(r)return hA(),Promise.resolve(r);const a=N9||(pp=new Error("[katexWorkerClient] No worker instance set. Please inject a Worker via setKaTeXWorker()."),pp.name="WorkerInitError",pp.code="WORKER_INIT_ERROR",null);if(!a)return Promise.reject(pp);if(ca.size>=c2){const l=new Error("Worker busy");return l.name="WorkerBusy",l.code="WORKER_BUSY",l.busy=!0,l.inFlight=ca.size,l.max=c2,Promise.reject(l)}return new Promise((l,u)=>{if(i?.aborted){const g=new Error("Aborted");return g.name="AbortError",void u(g)}const c=Math.random().toString(36).slice(2);let d=null;const f=globalThis.setTimeout(()=>{const g=ca.get(c);if(!g)return;ca.delete(c),g.cleanup();const v=new Error("Worker render timed out");v.name="WorkerTimeout",v.code="WORKER_TIMEOUT",g.aborted||g.reject(v),hA()},n);d=()=>{const g=ca.get(c);if(!g||g.aborted)return;g.aborted=!0,g.cleanup();const v=new Error("Aborted");v.name="AbortError",u(v)},i&&i.addEventListener("abort",d,{once:!0});const h=l,m=u;ca.set(c,{resolve:g=>{h(g)},reject:g=>{m(g)},timeoutId:f,aborted:!1,cleanup:()=>{i&&d&&i.removeEventListener("abort",d),d=null}});try{a.postMessage({id:c,content:o,displayMode:t})}catch(g){const v=ca.get(c);ca.delete(c),clearTimeout(f),v?.cleanup(),v?.reject(g),hA()}})})}function D_t(e,t=!0,n){const i=`${t?"d":"i"}:${fq(e)}`;if(Bd.set(i,n),Bd.size>200){const o=Bd.keys().next().value;Bd.delete(o)}}const Ywe="WORKER_BUSY";function Jwe(e=2e3,t){return ca.size{let o,s=!1,r=null,a=()=>{};const l=()=>{o&&globalThis.clearTimeout(o),Xp.delete(a),t&&r&&t.removeEventListener("abort",r),r=null};a=()=>{s||(s=!0,l(),n())},Xp.add(a),o=globalThis.setTimeout(()=>{if(s)return;s=!0,l();const u=new Error("Wait for worker slot timed out");u.name="WorkerBusyTimeout",u.code="WORKER_BUSY_TIMEOUT",i(u)},e),queueMicrotask(()=>hA()),t&&(r=()=>{if(s)return;s=!0,l();const u=new Error("Aborted");u.name="AbortError",i(u)},t.aborted?r():t.addEventListener("abort",r,{once:!0}))})}const ev={timeout:2e3,waitTimeout:1500,backoffMs:30,maxRetries:1};function N_t(e){return aC(this,arguments,function*(t,n=!0,i={}){var o,s,r,a;if(!cq()){const g=new Error("KaTeX rendering disabled");throw g.name="KaTeXDisabled",g.code="KATEX_DISABLED",g}const l=(o=i.timeout)!=null?o:ev.timeout,u=(s=i.waitTimeout)!=null?s:ev.waitTimeout,c=(r=i.backoffMs)!=null?r:ev.backoffMs,d=(a=i.maxRetries)!=null?a:ev.maxRetries,f=Number.isFinite(d)?Math.max(0,Math.min(Math.floor(d),8)):ev.maxRetries,h=i.signal;let m=0;for(;;){if(h?.aborted){const g=new Error("Aborted");throw g.name="AbortError",g}try{return yield Zwe(t,n,l,h)}catch(g){if(g?.code!==Ywe||m>=f)throw g;if(m++,yield Jwe(u,h).catch(()=>{}),h?.aborted){const v=new Error("Aborted");throw v.name="AbortError",v}c>0&&(yield new Promise(v=>globalThis.setTimeout(v,c*m)))}}})}function Lm(e){const t=typeof e=="number"?e:Number.parseFloat(String(e??""));return Number.isFinite(t)&&t>0?t:null}function Xwe(e){var t;for(const n of e.split(/\r?\n/)){const i=n.trim();if(!i||i.startsWith("%%"))continue;const o=i.match(/^([A-Z][\w-]*)\b/i);return((t=o?.[1])==null?void 0:t.toLowerCase())||""}return""}function mw(e){const t=e.split(/\r?\n/).map(o=>o.trim()).filter(o=>o&&!o.startsWith("%%")),n=Math.max(1,t.length),i=Xwe(e);return i==="gantt"?220+28*n:i==="sequencediagram"?180+26*n:i==="classdiagram"||i==="statediagram"||i==="erdiagram"?180+24*n:i==="flowchart"||i==="graph"?170+28*n:200+22*n}function gw(e){const t=e.split(/\r?\n/).filter(n=>/^\s*-\s+/.test(n)).length;return t>=3?500:t>0?280+60*t:360}function hq(e,t=360,n=500){return n==null?Math.max(t,e):Math.min(Math.max(t,e),n)}function vw(e,t=360,n=500){return hq(e,t,n)}function Aw(e,t=360,n=500){return hq(e,t,n)}var e4e=Object.defineProperty,t4e=Object.defineProperties,n4e=Object.getOwnPropertyDescriptors,uL=Object.getOwnPropertySymbols,i4e=Object.prototype.hasOwnProperty,o4e=Object.prototype.propertyIsEnumerable,cL=(e,t,n)=>t in e?e4e(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,pq=(e,t)=>{for(var n in t||(t={}))i4e.call(t,n)&&cL(e,n,t[n]);if(uL)for(var n of uL(t))o4e.call(t,n)&&cL(e,n,t[n]);return e},dL=(e,t,n)=>new Promise((i,o)=>{var s=l=>{try{a(n.next(l))}catch(u){o(u)}},r=l=>{try{a(n.throw(l))}catch(u){o(u)}},a=l=>l.done?i(l.value):Promise.resolve(l.value).then(s,r);a((n=n.apply(e,t)).next())});const yw=()=>rs(()=>import("./mermaid.core-CgZTgv7Y.js").then(e=>e.bp),__vite__mapDeps([2,3]));let vd=null,Pm=yw,Mv=null,h7=!1,p7=!1,Tv=0;function s4e(e){Pm=e,Tv++,vd=null,Mv=null,h7=!1,p7=!1}function r4e(e){s4e(yw)}function fL(){return typeof Pm=="function"}function hL(e){if(!e)return e;const t=e&&e.default?e.default:e;if(t&&(typeof t.render=="function"||typeof t.parse=="function"||typeof t.initialize=="function"))return t;if(t&&t.mermaidAPI&&(typeof t.mermaidAPI.render=="function"||typeof t.mermaidAPI.parse=="function")){const o=t.mermaidAPI;return n=pq({},t),i={render:o.render.bind(o),parse:o.parse?o.parse.bind(o):void 0,initialize:s=>typeof t.initialize=="function"?t.initialize(s):o.initialize?o.initialize(s):void 0},t4e(n,n4e(i))}var n,i;return e.mermaid&&typeof e.mermaid.render=="function"?e.mermaid:t}function pL(e){if(e)try{const t=e?.initialize;e.initialize=n=>{const i=pq({suppressErrorRendering:!0},n||{});return typeof t=="function"?t.call(e,i):e?.mermaidAPI&&typeof e.mermaidAPI.initialize=="function"?e.mermaidAPI.initialize(i):void 0}}catch{}}function L_t(){return dL(this,null,function*(){if(vd)return vd;const e=(function(){try{const i=globalThis;return hL(i?.mermaid)}catch{return null}})();if(e)return vd=e,pL(vd),vd;const t=Pm,n=Tv;return t?t===yw&&h7?null:Mv||(Mv=dL(null,null,function*(){let i;try{i=yield t()}catch(o){if(t===yw)return n===Tv&&t===Pm&&(h7=!0,(function(s){p7||(p7=!0,console.warn('[markstream-vue] Optional dependency "mermaid" is not installed. Mermaid blocks will render as source.',s))})(o)),null;throw o}finally{n===Tv&&t===Pm&&(Mv=null)}return n!==Tv||t!==Pm?null:i?(vd=hL(i),pL(vd),vd):null}),Mv):null})}let bc=null,mp=null;const Ou=new Map,gp=new Map;function H8(e){for(const t of Ou.values())t.reject(e);Ou.clear(),gp.clear()}let mL=5,gL=!1;const a4e="WORKER_BUSY",vL="MERMAID_DISABLED";function l4e(e){if(bc&&bc!==e){const n=new Error("Worker replaced");n.code="WORKER_REPLACED",H8(n)}bc=e,mp=null;const t=e;bc.onmessage=n=>{if(bc!==t)return;const{id:i,ok:o,result:s,error:r}=n.data,a=Ou.get(i);a&&(o===!1||r?a.reject(new Error(r||"Unknown error")):a.resolve(s))},bc.onerror=n=>{var i,o;if(bc===t)if(Ou.size!==0){try{gL?console.error("[mermaidWorkerClient] Worker error:",n?.message||n):(o=console.debug)==null||o.call(console,"[mermaidWorkerClient] Worker error:",n?.message||n)}catch{}H8(new Error(`Worker error: ${n.message}`))}else(i=console.debug)==null||i.call(console,"[mermaidWorkerClient] Worker error (no pending):",n?.message||n)},bc.onmessageerror=n=>{var i,o;if(bc===t)if(Ou.size!==0){try{gL?console.error("[mermaidWorkerClient] Worker messageerror:",n):(o=console.debug)==null||o.call(console,"[mermaidWorkerClient] Worker messageerror:",n)}catch{}H8(new Error("Worker messageerror"))}else(i=console.debug)==null||i.call(console,"[mermaidWorkerClient] Worker messageerror (no pending):",n)}}function mq(e,t,n,i){if(!fL()){const r=new Error("Mermaid rendering disabled");return r.name="MermaidDisabled",r.code=vL,Promise.reject(r)}const o=`${e}\0${t.theme}\0${n}\0${t.code}`;let s=gp.get(o);return s||(s=(function(r,a,l=1400){if(!fL()){const c=new Error("Mermaid rendering disabled");return c.name="MermaidDisabled",c.code=vL,Promise.reject(c)}if(mp)return Promise.reject(mp);const u=bc||(mp=new Error("[mermaidWorkerClient] No worker instance set. Please inject a Worker via setMermaidWorker()."),mp.name="WorkerInitError",mp.code="WORKER_INIT_ERROR",null);if(!u)return Promise.reject(mp);if(Ou.size>=mL){const c=new Error("Worker busy");return c.name="WorkerBusy",c.code=a4e,c.inFlight=Ou.size,c.max=mL,Promise.reject(c)}return new Promise((c,d)=>{const f=Math.random().toString(36).slice(2);let h,m=!1;const g=()=>{m||(m=!0,h!=null&&globalThis.clearTimeout(h),Ou.delete(f))},v={resolve:y=>{g(),c(y)},reject:y=>{g(),d(y)}};Ou.set(f,v);try{u.postMessage({id:f,action:r,payload:a})}catch(y){return Ou.delete(f),void d(y)}h=globalThis.setTimeout(()=>{const y=new Error("Worker call timed out");y.name="WorkerTimeout",y.code="WORKER_TIMEOUT";const A=Ou.get(f);A&&A.reject(y)},l)})})(e,t,n),gp.set(o,s),s.then(()=>{gp.get(o)===s&&gp.delete(o)},()=>{gp.get(o)===s&&gp.delete(o)})),(function(r,a){if(!a)return r;if(a.aborted){const l=new Error("Aborted");return l.name="AbortError",Promise.reject(l)}return new Promise((l,u)=>{let c=()=>{};const d=()=>a.removeEventListener("abort",c);c=()=>{d();const f=new Error("Aborted");f.name="AbortError",u(f)},a.addEventListener("abort",c,{once:!0}),r.then(f=>{d(),l(f)},f=>{d(),u(f)})})})(s,i)}function P_t(e,t,n=1400,i){return mq("canParse",{code:e,theme:t},n,i)}function O_t(e,t,n=1400,i){return mq("findPrefix",{code:e,theme:t},n,i)}var u4e=Object.defineProperty,c4e=Object.defineProperties,d4e=Object.getOwnPropertyDescriptors,AL=Object.getOwnPropertySymbols,f4e=Object.prototype.hasOwnProperty,h4e=Object.prototype.propertyIsEnumerable,yL=(e,t,n)=>t in e?u4e(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Pt=(e,t)=>{for(var n in t||(t={}))f4e.call(t,n)&&yL(e,n,t[n]);if(AL)for(var n of AL(t))h4e.call(t,n)&&yL(e,n,t[n]);return e},Nn=(e,t)=>c4e(e,d4e(t)),uo=(e,t,n)=>new Promise((i,o)=>{var s=l=>{try{a(n.next(l))}catch(u){o(u)}},r=l=>{try{a(n.throw(l))}catch(u){o(u)}},a=l=>l.done?i(l.value):Promise.resolve(l.value).then(s,r);a((n=n.apply(e,t)).next())});const p4e="__global__",U8="__MARKSTREAM_VUE_CUSTOM_COMPONENTS_STORE__",m7=(()=>{const e=globalThis;if(e[U8])return e[U8];const t={scopedCustomComponents:{},revision:qa(0)};return e[U8]=t,t})(),kL=m7.revision,m4e=Symbol("markstreamCustomComponents"),g4e=new Set(["text","paragraph","heading","code_block","list","list_item","blockquote","table","table_row","table_cell","definition_list","definition_item","footnote","footnote_reference","footnote_anchor","admonition","hardbreak","link","image","thematic_break","math_inline","math_block","strong","emphasis","strikethrough","highlight","insert","subscript","superscript","emoji","checkbox","checkbox_input","inline_code","html_inline","html_block","reference","mermaid","infographic","d2","vmr_container"]);function ey(e){return g4e.has(String(e).trim().toLowerCase())}function v4e(e){return e.trim().replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/[_\s]+/g,"-").toLowerCase()}function W8(e={}){const t={};for(const[n,i]of Object.entries(e))if(i!=null){t[n]=i;for(const o of new Set([gu(n),gu(v4e(n))]))!o||ey(o)||Object.prototype.hasOwnProperty.call(t,o)||(t[o]=i)}return t}function Ts(e){const t=qt(m4e,null);return P(()=>{var n;return kL.value,(function(i,o={}){return kL.value,Pt(Pt(Pt({},W8(m7.scopedCustomComponents[p4e]||{})),W8(o)),W8((function(s){return s&&m7.scopedCustomComponents[s]||{}})(i)))})(e?.(),(n=t?.value)!=null?n:{})})}const A4e=["aria-label"],y4e={key:0,xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",class:"checkbox-icon checkbox-unchecked"},k4e={key:1,xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",class:"checkbox-icon checkbox-checked"},Ri=(e,t)=>{const n=e.__vccOpts||e;for(const[i,o]of t)n[i]=o;return n},xl=Ri(st({__name:"CheckboxNode",props:{node:{}},setup:e=>(t,n)=>(k(),R("span",{class:"checkbox-node",role:"img","aria-label":e.node.checked?"checked":"unchecked"},[e.node.checked?(k(),R("svg",k4e,[...n[1]||(n[1]=[x("rect",{x:"3",y:"3",width:"18",height:"18",rx:"4",fill:"currentColor"},null,-1),x("path",{d:"M9 12l2 2 4-4",stroke:"hsl(var(--ms-background))","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])])):(k(),R("svg",y4e,[...n[0]||(n[0]=[x("rect",{x:"3",y:"3",width:"18",height:"18",rx:"4",stroke:"currentColor","stroke-width":"2"},null,-1)])]))],8,A4e))}),[["__scopeId","data-v-be21ab83"]]);xl.install=e=>{e.component(xl.__name,xl)};const b4e={class:"emoji-node"},$a=Ri(st({__name:"EmojiNode",props:{node:{}},setup:e=>(t,n)=>(k(),R("span",b4e,$(e.node.name),1))}),[["__scopeId","data-v-de55dc97"]]);$a.install=e=>{e.component($a.__name,$a)};const w4e=["id"],C4e=["title"],_l=Ri(st({__name:"FootnoteReferenceNode",props:{node:{}},setup(e){const t=`#fnref--${e.node.id}`;function n(){if(typeof document>"u")return;const i=document.querySelector(t);i?i.scrollIntoView({behavior:"smooth"}):console.warn(`Element with href: ${t} not found`)}return(i,o)=>(k(),R("sup",{id:`fnref-${e.node.id}`,class:"footnote-reference",onClick:n},[x("span",{href:t,title:`查看脚注 ${e.node.id}`,class:"footnote-link cursor-pointer"},"["+$(e.node.id)+"]",9,C4e)],8,w4e))}}),[["__scopeId","data-v-c1463a29"]]);_l.install=e=>{e.component(_l.__name,_l)};const gq=(()=>{try{return!1}catch{}return!1})();function Q8(e){gq&&console.warn(e)}function bL(e,t="safe",n){return OE(e,t,n)}function vq(e){return iwe(e)}function V8(e){return e===!0?"":e===!1?"false":e==null?null:String(e)}function HE(e,t="safe"){const n=String(e.tag||e.type||"").trim(),i=D9((o=e.attrs)?Array.isArray(o)?o.every(Array.isArray)?o.map(([r,a])=>[String(r),V8(a)]):o.filter(r=>r&&typeof r=="object"&&!Array.isArray(r)&&"name"in r).map(r=>[String(r.name),V8(r.value)]):Object.entries(o).map(([r,a])=>[r,V8(a)]):null,t,n);var o;if(!i)return;const s=vq(fA(i));return Object.keys(s).length>0?s:void 0}function wL(e,t,n=!1){const i=Object.entries(t??{}),o=i.length>0?i.map(([s,r])=>r===""?` ${s}`:` ${s}="${r}"`).join(""):"";return n?`<${e}${o} />`:`<${e}${o}>`}function tv(e,t){Array.isArray(t)?e.push(...t):t!=null&&e.push(t)}function G8(e,t,n,i,o,s,r=!1){const a=(function(d,f){return tq(d,f)})(e,i);if(Z2.has(e.toLowerCase())||!a&&YG(e,s))return null;if(!a&&PE(e,s))return r?[wL(e,t,!0)]:[wL(e,t),...n,``];const l=OE(t,s,e),u=l.key,c=u!=null&&u!==""?u:o;if(a){const d=i[e]||i[e.toLowerCase()],f=vq(l);return Dn(d,Nn(Pt({},f),{key:c}),n.length>0?n:void 0)}return Dn(e,Nn(Pt({},l),{innerHTML:void 0,key:c}),n.length>0?n:void 0)}function Aq(e,t){return rwe(e,t)}function kw(e,t,n="safe"){if(!e)return[];try{return(function(s,r,a="safe"){let l=0;const u=[],c=[];for(const d of s)if(d.type==="text")(u.length>0?u[u.length-1].children:c).push(d.content);else if(d.type==="self_closing"){const f=G8(d.tagName,d.attrs||{},[],r,"ms-html-"+l++,a,!0);tv(u.length>0?u[u.length-1].children:c,f)}else if(d.type==="tag_open")u.push({tagName:d.tagName,children:[],attrs:d.attrs,autoKey:"ms-html-"+l++});else if(d.type==="tag_close"){const f=d.tagName.toLowerCase();let h=-1;for(let m=u.length-1;m>=0;m--)if(u[m].tagName.toLowerCase()===f){h=m;break}if(h!==-1)for(;u.length>h;){const m=u.pop(),g=G8(m.tagName,m.attrs||{},m.children,r,m.autoKey,a);u.length>0?tv(u[u.length-1].children,g):tv(c,g),m.tagName.toLowerCase()!==f&&u.length>h&&Q8(`Auto-closing unclosed tag: <${m.tagName}>`)}else Q8(`Ignoring closing tag with no matching opening tag: `)}for(;u.length>0;){const d=u.pop(),f=G8(d.tagName,d.attrs||{},d.children,r,d.autoKey,a);u.length>0?tv(u[u.length-1].children,f):tv(c,f),Q8(`Auto-closing unclosed tag: <${d.tagName}>`)}return c})(nq(e),t,n)}catch(o){return i=o,gq&&console.error("Failed to parse HTML to VNodes:",i),null}var i}const S4e=["innerHTML"],El=Ri(st({__name:"HtmlInlineNode",props:{node:{},customId:{},htmlPolicy:{}},setup(e){const t=e,n=qt("markstreamHtmlPolicy",void 0),i=P(()=>{var a,l;return(l=(a=t.htmlPolicy)!=null?a:n?.value)!=null?l:"safe"}),o=Ts(()=>t.customId),s=st({name:"DynamicRenderer",props:{nodes:{type:Array,required:!0}},render(){return this.nodes}}),r=P(()=>{const a=t.node.content;if(!a)return{mode:"html",content:""};if(i.value==="escape")return{mode:"html",content:dg(a,i.value)};if(t.node.loading&&!t.node.autoClosed)return{mode:"text",content:a};if(t.node.loading&&t.node.autoClosed){const u=kw(a,o.value,i.value);if(u!==null)return{mode:"dynamic",nodes:u}}if(!Aq(a,o.value))return{mode:"html",content:dg(a,i.value)};const l=kw(a,o.value,i.value);return l===null?{mode:"html",content:dg(a,i.value)}:{mode:"dynamic",nodes:l}});return(a,l)=>r.value.mode==="dynamic"?(k(),R("span",{key:0,class:De(["html-inline-node",{"html-inline-node--loading":t.node.loading}])},[K(p(s),{nodes:r.value.nodes},null,8,["nodes"])],2)):r.value.mode==="text"?(k(),R("span",{key:1,class:De(["html-inline-node",{"html-inline-node--loading":t.node.loading}])},$(r.value.content),3)):(k(),R("span",{key:2,class:De(["html-inline-node",{"html-inline-node--loading":t.node.loading}]),innerHTML:r.value.content},null,10,S4e))}}),[["__scopeId","data-v-d17f12b0"]]);El.install=e=>{e.component(El.__name,El)};const x4e={class:"inline-code"},_4e={key:0},qr=Ri(st({__name:"InlineCodeNode",props:{node:{}},setup(e){const t=e,n=Yg(),i=qt("markstreamFade",void 0),o=qt("markstreamTextStreamState",void 0),s=qt("markstreamStreamVersion",void 0),r=P(()=>{const A=n.fade;return A===""||A===!0||A==="true"||A!==!1&&A!=="false"&&void 0}),a=P(()=>typeof r.value=="boolean"?r.value:typeof i?.value!="boolean"||i.value),l=P(()=>{var A;return String((A=t.node.code)!=null?A:"")}),u=P(()=>!a.value),c=P(()=>{var A;const b=(A=n["index-key"])!=null?A:n.indexKey;return b==null||b===""?"":String(b)}),d=V(t.node.code),f=V(""),h=V(0);let m;function g(){m?.(),m=void 0}function v(){g(),f.value&&(d.value=d.value+f.value,f.value="")}$e([()=>t.node.code,c,a],([A])=>{const b=String(A??""),w=c.value,_=rq({nextContent:b,persistedContent:w?o?.get(w):void 0,currentState:{settledContent:d.value,streamedDelta:f.value},typewriterEnabled:a.value});d.value=_.settledContent,f.value=_.streamedDelta,_.appended?(h.value+=1,(function(){if(!f.value||m||!s)return;const M=s.value;m=$e(()=>s.value,B=>{B!==M&&v()},{flush:"sync"})})()):f.value||g(),w&&o?.set(w,b)},{immediate:!0}),Yd(g);const y=P(()=>h.value%2==0?"inline-code-stream-delta--a":"inline-code-stream-delta--b");return(A,b)=>(k(),R("code",x4e,[u.value?(k(),R(Be,{key:0},[ze($(l.value),1)],64)):(k(),R(Be,{key:1},[d.value?(k(),R("span",_4e,$(d.value),1)):ne("",!0),f.value?(k(),R("span",{key:1,class:De(["inline-code-stream-delta",[y.value]]),onAnimationend:v},$(f.value),35)):ne("",!0)],64))]))}}),[["__scopeId","data-v-4e331c97"]]);qr.install=e=>{e.component(qr.__name,qr)};const g7=V(!1),CL=V(""),SL=V("top"),pA=V(null),mA=V(null),v7=V(null),A7=V(null),xL=V(null);let L9=null,P9=null,y7=0;function yq(){L9&&(clearTimeout(L9),L9=null),P9&&(clearTimeout(P9),P9=null)}let kk=!1,bk=null,_L=!1;function E4e(e,t,n="top",i=!1,o,s){if(!e)return;const r=++y7;yq();const a=()=>uo(null,null,function*(){var l,u;if(yield(function(){return uo(this,null,function*(){if(!kk&&!_L&&typeof document<"u"){bk!=null||(bk=uo(null,null,function*(){const[{createApp:c,h:d},{default:f}]=yield Promise.all([rs(()=>import("./vue.runtime.esm-bundler-BeN4Xi6a.js"),[]),rs(()=>import("./Tooltip-Dvr1al-t.js"),[])]),h=document.createElement("div");h.setAttribute("data-singleton-tooltip","1"),document.body.appendChild(h),c({setup:()=>()=>{var m;return d(f,{visible:g7.value,"anchor-el":pA.value,content:CL.value,placement:SL.value,id:mA.value,originX:v7.value,originY:A7.value,isDark:(m=xL.value)!=null?m:void 0})}}).mount(h),kk=!0}));try{yield bk}catch(c){kk=!1,bk=null,_L=!0,console.warn("[markstream-vue] Failed to mount Tooltip component. Tooltips will be disabled.",c)}}})})(),kk&&r===y7){mA.value=`tooltip-${Date.now()}-${Math.floor(1e3*Math.random())}`,pA.value=e,CL.value=t,SL.value=n,v7.value=(l=o?.x)!=null?l:null,A7.value=(u=o?.y)!=null?u:null,xL.value=typeof s=="boolean"?s:null,g7.value=!0;try{e.setAttribute("aria-describedby",mA.value)}catch{}}});i?a():L9=setTimeout(a,80)}function I4e(e=!1){y7+=1,yq();const t=()=>{if(pA.value&&mA.value)try{pA.value.removeAttribute("aria-describedby")}catch{}g7.value=!1,pA.value=null,mA.value=null,v7.value=null,A7.value=null};e?t():P9=setTimeout(t,120)}const M4e={"common.copy":"Copy","common.copied":"Copied","common.decrease":"Decrease","common.reset":"Reset","common.increase":"Increase","common.expand":"Expand","common.collapse":"Collapse","common.preview":"Preview","common.source":"Source","common.export":"Export","common.open":"Open","common.minimize":"Minimize","common.zoomIn":"Zoom in","common.zoomOut":"Zoom out","common.resetZoom":"Reset zoom","image.loadError":"Image failed to load","image.loading":"Loading image..."},T4e=Symbol("markstreamI18nFallback");function kq(e,t){var n;return(n=t?.[e])!=null?n:M4e[e]}const k7=(e,t)=>{var n;return(n=kq(e,t))!=null?n:(function(i){return(i.split(".").pop()||i).replace(/[_-]/g," ").replace(/([A-Z])/g," $1").replace(/\s+/g," ").replace(/\b\w/g,o=>o.toUpperCase()).trim()})(e)};function EL(e,t){return{t(n){const i=kq(n,t);if(e.te&&i!=null&&!e.te(n))return k7(n,t);const o=e.t(n);return o===n&&i!=null?k7(n,t):o}}}function B4e(){const e=(function(){var n,i,o;try{const s=Ms(),r=T4e,a=s?.provides,l=(n=s?.appContext)==null?void 0:n.provides;return(o=(i=a?.[r])!=null?i:l?.[r])!=null?o:null}catch{}return null})(),t=(function(){var n,i;try{const o=Ms(),s=o?.proxy,r=s?.$t;if(typeof r=="function"){const u=s?.$te;return{t:r.bind(s),te:typeof u=="function"?u.bind(s):void 0}}const a=(i=(n=o?.appContext)==null?void 0:n.config)==null?void 0:i.globalProperties,l=a?.$t;if(typeof l=="function"){const u=a?.$te;return{t:l.bind(a),te:typeof u=="function"?u.bind(a):void 0}}}catch{}return null})();if(t)return EL(t,e);try{const n=globalThis.$vueI18nUse||null;if(n&&typeof n=="function")try{const i=n();if(i&&typeof i.t=="function")return EL({t:i.t.bind(i),te:typeof i.te=="function"?i.te.bind(i):void 0},e)}catch{}}catch{}return{t:n=>k7(n,e)}}const bq=Symbol("ViewportPriority"),wq=Symbol("ViewportPriorityOptions"),Cq=Symbol("OffscreenHeavyNodeDeferral"),F4e=P(()=>!1),d1="400px";function UE(){return qt(wq,void 0)}function WE(){return qt(Cq,F4e)}function R4e(e,t){var n,i;const o=typeof window<"u"&&typeof document<"u",s=typeof t=="boolean"?V(t):t,r=o?(n=window.requestIdleCallback)!=null?n:B=>window.setTimeout(()=>B({didTimeout:!0,timeRemaining:()=>0}),16):null,a=o?(i=window.cancelIdleCallback)!=null?i:B=>window.clearTimeout(B):null,l=new WeakMap;let u=1;const c=new Map,d=new Map,f=new Set;let h=null,m=null;function g(B){if(!B)return"viewport";let C=l.get(B);return C||(C=u++,l.set(B,C)),String(C)}function v(){if(h!=null){try{a?.(h)}catch{}h=null}}function y(B){if(B){const C=c.get(B);if(C&&!C.targets.size){try{C.io.disconnect()}catch{}c.delete(B)}}d.size||f.size||v()}function A(B){const C=d.get(B);if(!C)return;const S=c.get(C.bucketKey);if(!C.visible.value){C.visible.value=!0;try{C.resolve()}catch{}}try{S?.io.unobserve(B)}catch{}S?.targets.delete(B),d.delete(B),f.delete(B),y(C.bucketKey)}function b(){window.__MARKSTREAM_DISABLE_VIEWPORT_PRIORITY_IDLE_DRAIN__!==!0&&r&&h==null&&f.size&&(h=r(()=>{h=null;const B=f.values().next().value;B&&(f.delete(B),A(B),f.size&&b())},{timeout:1200}))}function w(B,C){if(!o||typeof IntersectionObserver>"u")return null;const S=(function(z,T){var N,L,H;return{root:(N=e?.(z??null))!=null?N:null,rootMargin:(L=T?.rootMargin)!=null?L:d1,threshold:(H=T?.threshold)!=null?H:0}})(B,C),I=[g((F=S).root),F.rootMargin,F.threshold].join("\0");var F;const E=c.get(I);if(E)return{key:I,bucket:E};let D;try{D=new IntersectionObserver(z=>{for(const T of z)(T.isIntersecting||T.intersectionRatio>0)&&A(T.target)},{root:S.root,rootMargin:S.rootMargin,threshold:S.threshold})}catch{return null}const j={io:D,targets:new Map};return c.set(I,j),{key:I,bucket:j}}function _(){if(o&&s.value)for(const[B,C]of Array.from(d.entries())){const S=w(B,C.opts);if(!S){A(B);continue}if(S.key===C.bucketKey)continue;const I=C.bucketKey,F=c.get(I);try{F?.io.unobserve(B)}catch{}F?.targets.delete(B),C.bucketKey=S.key,S.bucket.targets.set(B,C),S.bucket.io.observe(B),y(I)}}$e(s,B=>{if(!B){for(const C of Array.from(d.keys()))A(C);v()}},{flush:"sync"});const M=(B,C)=>{const S=V(!1);let I,F=!1;const E=new Promise(T=>{I=()=>{F||(F=!0,T())}}),D=()=>{const T=d.get(B);if(!T)return f.delete(B),void y();const N=c.get(T.bucketKey);try{N?.io.unobserve(B)}catch{}N?.targets.delete(B),d.delete(B),f.delete(B),y(T.bucketKey)};if(!o||!s.value)return S.value=!0,I(),{isVisible:S,whenVisible:E,destroy:D};const j=w(B,C);if(!j)return S.value=!0,I(),{isVisible:S,whenVisible:E,destroy:D};const z={resolve:I,visible:S,bucketKey:j.key,opts:C};return d.set(B,z),j.bucket.targets.set(B,z),j.bucket.io.observe(B),o&&m==null&&(m=window.requestAnimationFrame(()=>{m=null,_()})),C?.allowIdle!==!1&&(f.add(B),b()),{isVisible:S,whenVisible:E,destroy:D}};return M.refresh=_,Wn(bq,M),M}function QE(){var e,t;const n=qt(bq,void 0);if(n)return n;const i=new WeakMap,o=new Map,s=new Set;let r=null;const a=typeof window<"u"?(e=window.requestIdleCallback)!=null?e:h=>window.setTimeout(()=>h({didTimeout:!0,timeRemaining:()=>0}),16):null,l=typeof window<"u"?(t=window.cancelIdleCallback)!=null?t:h=>window.clearTimeout(h):null,u=()=>{if(r!=null){try{l?.(r)}catch{}r=null}},c=h=>{if(!h)return;const m=o.get(h);if(m&&!m.targets.size){try{m.io.disconnect()}catch{}o.delete(h)}},d=h=>{const m=i.get(h);if(!m)return;const g=o.get(m.bucketKey);if(!m.visible.value){m.visible.value=!0;try{m.resolve()}catch{}}try{g?.io.unobserve(h)}catch{}i.delete(h),g?.targets.delete(h),s.delete(h),c(m.bucketKey),s.size||u()},f=()=>{window.__MARKSTREAM_DISABLE_VIEWPORT_PRIORITY_IDLE_DRAIN__!==!0&&a&&r==null&&s.size&&(r=a(()=>{r=null;const h=s.values().next().value;h&&(s.delete(h),d(h),s.size&&f())},{timeout:1200}))};return(h,m)=>{const g=V(!1);let v,y=!1;const A=new Promise(_=>{v=()=>{y||(y=!0,_())}}),b=()=>{const _=i.get(h);if(!_)return s.delete(h),void(s.size||u());const M=o.get(_.bucketKey);try{M?.io.unobserve(h)}catch{}i.delete(h),M?.targets.delete(h),s.delete(h),c(_.bucketKey),s.size||u()},w=(_=>{var M,B;if(typeof window>"u"||typeof IntersectionObserver>"u")return null;const C=(D=>{var j,z;return[(j=D?.rootMargin)!=null?j:d1,(z=D?.threshold)!=null?z:0].join("\0")})(_),S=o.get(C);if(S)return{key:C,bucket:S};const I=(M=_?.rootMargin)!=null?M:d1;let F;try{F=new IntersectionObserver(D=>{for(const j of D)(j.isIntersecting||j.intersectionRatio>0)&&d(j.target)},{root:null,rootMargin:I,threshold:(B=_?.threshold)!=null?B:0})}catch{return null}const E={io:F,targets:new Set};return o.set(C,E),{key:C,bucket:E}})(m);return w?(i.set(h,{resolve:v,visible:g,bucketKey:w.key}),w.bucket.targets.add(h),w.bucket.io.observe(h),m?.allowIdle!==!1&&(s.add(h),f()),{isVisible:g,whenVisible:A,destroy:b}):(g.value=!0,v(),{isVisible:g,whenVisible:A,destroy:b})}}function D4e(e,t){var n,i;const o=(i=(n=e.indexKey)!=null?n:t["index-key"])!=null?i:t.indexKey;return o==null||o===""?"":String(o)}const N4e=["data-markstream-viewport-pending"],L4e=["src","alt","title","loading","fetchpriority","decoding","tabindex","aria-label"],P4e={key:1,class:"image-placeholder"},O4e={key:1,class:"image-node__raw-text"},z4e={key:2,class:"image-shimmer-overlay"},$4e={key:1,class:"image-node__raw-text"},j4e={key:3,class:"image-error"},Jf=Ri(st({__name:"ImageNode",props:{node:{},fallbackSrc:{default:""},lazy:{type:Boolean,default:!1},usePlaceholder:{type:Boolean,default:!0}},emits:["load","error","click"],setup(e,{emit:t}){var n,i,o;const s=e,r=t,a=V(!1),l=V(!1),u=V(""),c=V("primary"),d=V(null),f=Yg(),h=qt(d7,null),m=QE(),g=UE(),v=WE(),y=P(()=>qD(s.node.src)),A=P(()=>qD(s.fallbackSrc)),b=(o=(i=(n=Ms())==null?void 0:n.vnode.el)==null?void 0:i.querySelector)==null?void 0:o.call(i,"img"),w=typeof window<"u"&&b?.getAttribute("src")===(y.value||A.value),_=V(typeof window>"u"||w||!v.value),M=qa(null);let B="",C=null;const S=P(()=>u.value),I=P(()=>!s.lazy),F=P(()=>typeof window<"u"&&v.value&&!w),E=P(()=>!F.value||_.value),D=P(()=>E.value?S.value:""),j=P(()=>{var q,pe;return(pe=(q=g?.value.heavyBlockMargin)!=null?q:g?.value.rootMargin)!=null?pe:d1}),z=P(()=>!s.node.loading&&c.value!=="failed"&&u.value.length>0),T=P(()=>c.value==="failed"),N=P(()=>(!I.value||F.value&&!_.value)&&!a.value&&!l.value&&c.value!=="failed"&&u.value.length>0),L=P(()=>D4e(s,f));function H(q=L.value){q&&d.value&&h?.reportHeight(q,d.value.offsetHeight)}function O(q=L.value){q&>(()=>{H(q)})}function Q(){C&&(clearTimeout(C),C=null)}function Y(){const q=L.value;q&&B!==q&&(B&&h?.markSettled(B),Q(),B=q,h?.markPending(q),typeof window<"u"&&(C=window.setTimeout(()=>{B===q&&(O(q),W())},8e3)))}function W(){return uo(this,null,function*(){const q=B;q&&(Q(),B="",yield gt(),H(q),h?.markSettled(q))})}function Z(){if(c.value==="primary"&&A.value&&A.value!==u.value)return c.value="fallback",u.value=A.value,a.value=!1,l.value=!1,void O();c.value="failed",l.value=!0,r("error",u.value),O()}function ee(){a.value=!0,l.value=!1,r("load",S.value),O()}function X(q){q.preventDefault(),a.value&&!l.value&&r("click",[q,S.value])}const{t:ge}=B4e();return $e([y,A,()=>s.node.loading],()=>(a.value=!1,l.value=!1,s.node.loading||y.value?(u.value=y.value,void(c.value="primary")):A.value?(u.value=A.value,void(c.value="fallback")):(u.value="",c.value="failed",void(l.value=!0))),{immediate:!0}),typeof window<"u"&&$e([d,F],([q,pe],we,te)=>{var ie;if((ie=M.value)==null||ie.destroy(),M.value=null,!pe||_.value)return void(_.value=!0);if(!q)return void(_.value=!1);let G=!0;const J=m(q,{rootMargin:j.value,allowIdle:!1});M.value=J,_.value=J.isVisible.value,J.whenVisible.then(()=>{G&&M.value===J&&(_.value=!0)}),te(()=>{G=!1,J.destroy(),M.value===J&&(M.value=null)})},{immediate:!0}),$e([z,a,l,S,()=>s.lazy,E],([q,pe,we,te,ie,G])=>q&&te&&!we&&G?pe?(W(),void O()):ie?(Y(),void O()):void(pe||we||Y()):(W(),void O()),{flush:"post",immediate:!0}),ni(()=>{var q;(q=M.value)==null||q.destroy(),M.value=null,(function(){const pe=B;pe&&(Q(),B="",h?.markSettled(pe))})()}),(q,pe)=>{var we,te,ie,G,J;return k(),R("span",{ref_key:"rootRef",ref:d,class:"image-node-container","data-markstream-viewport-pending":F.value&&!_.value?"true":void 0},[z.value?(k(),R("img",{key:0,src:D.value||void 0,alt:String((te=(we=s.node.alt)!=null?we:s.node.title)!=null?te:""),title:String((G=(ie=s.node.title)!=null?ie:s.node.alt)!=null?G:""),class:De(["image-node__img",{"is-loading":!I.value&&!a.value,"is-loaded":I.value||a.value,"has-natural-size":a.value,"cursor-pointer":a.value}]),loading:s.lazy?"lazy":void 0,fetchpriority:I.value?"high":void 0,decoding:I.value?"sync":"async",tabindex:a.value?0:-1,"aria-label":(J=s.node.alt)!=null?J:p(ge)("image.preview"),onError:Z,onLoad:ee,onClick:X},null,42,L4e)):ne("",!0),e.node.loading&&!l.value?(k(),R("span",P4e,[s.usePlaceholder?On(q.$slots,"placeholder",{key:0,node:s.node,displaySrc:S.value,imageLoaded:a.value,hasError:l.value,fallbackSrc:s.fallbackSrc,lazy:s.lazy},()=>[pe[0]||(pe[0]=x("span",{class:"image-shimmer"},null,-1))],!0):(k(),R("span",O4e,$(e.node.raw),1))])):ne("",!0),N.value&&!e.node.loading?(k(),R("span",z4e,[s.usePlaceholder?On(q.$slots,"placeholder",{key:0,node:s.node,displaySrc:S.value,imageLoaded:a.value,hasError:l.value,fallbackSrc:s.fallbackSrc,lazy:s.lazy},()=>[pe[1]||(pe[1]=x("span",{class:"image-shimmer"},null,-1))],!0):(k(),R("span",$4e,$(e.node.raw),1))])):ne("",!0),T.value?(k(),R("span",j4e,[On(q.$slots,"error",{node:s.node,displaySrc:S.value,imageLoaded:a.value,hasError:l.value,fallbackSrc:s.fallbackSrc,lazy:s.lazy},()=>[pe[2]||(pe[2]=x("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24"},[x("path",{fill:"currentColor",d:"M2 2h20v10h-2V4H4v9.586l5-5L14.414 14L13 15.414l-4-4l-5 5V20h8v2H2zm13.547 5a1 1 0 1 0 0 2a1 1 0 0 0 0-2m-3 1a3 3 0 1 1 6 0a3 3 0 0 1-6 0m3.625 6.757L19 17.586l2.828-2.829l1.415 1.415L20.414 19l2.829 2.828l-1.415 1.415L19 20.414l-2.828 2.829l-1.415-1.415L17.586 19l-2.829-2.828z"})],-1)),x("span",null,$(p(ge)("image.loadError")),1)],!0)])):ne("",!0)],8,N4e)}}}),[["__scopeId","data-v-046e82ac"]]);Jf.install=e=>{e.component(Jf.__name,Jf)};const H4e={key:2},td=st({__name:"NodeChildRenderer",props:{node:{},components:{},customId:{},indexKey:{},fallbackToText:{type:Boolean,default:!1}},setup(e){const t=e,n=Ts(()=>t.customId),i=qt("markstreamHtmlPolicy",void 0),o=qt("markstreamNestedRendererProps",void 0),s=P(()=>{var m;return(m=i?.value)!=null?m:"safe"}),r=P(()=>{var m,g;const v=(m=o?.value)!=null?m:{};return Nn(Pt({},v),{customId:(g=t.customId)!=null?g:v.customId,htmlPolicy:s.value})}),a=Lc({loader:()=>Promise.resolve().then(()=>nI),suspensible:!1}),l=P(()=>t.components[String(t.node.type)]),u=P(()=>!!(l.value&&n.value[t.node.type]&&!ey(String(t.node.type)))),c=P(()=>u.value?HE(t.node,s.value):void 0),d=P(()=>Array.isArray(t.node.children)&&t.node.children.length>0),f=P(()=>{var m;return String((m=t.node.content)!=null?m:"")}),h=P(()=>{var m,g;return String((g=(m=t.node.content)!=null?m:t.node.raw)!=null?g:"")});return(m,g)=>l.value&&u.value?(k(),de(jo(l.value),fi({key:0},c.value,{node:e.node,loading:e.node.loading,"index-key":e.indexKey,"custom-id":e.customId,"is-dark":r.value.isDark}),{default:le(()=>[d.value?(k(),de(p(a),fi({key:0},r.value,{nodes:e.node.children,"index-key":e.indexKey,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["nodes","index-key"])):f.value?(k(),de(p(a),fi({key:1},r.value,{content:f.value,final:!e.node.loading,"index-key":`${e.indexKey||"child"}-content`,"smooth-streaming":!1,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["content","final","index-key"])):ne("",!0)]),_:1},16,["node","loading","index-key","custom-id","is-dark"])):l.value?(k(),de(jo(l.value),{key:1,node:e.node,"custom-id":e.customId,"index-key":e.indexKey},null,8,["node","custom-id","index-key"])):e.fallbackToText?(k(),R("span",H4e,$(h.value),1)):ne("",!0)}}),IL=Object.freeze({enabled:!0,contextLineCount:2,minimumLineCount:4,revealLineCount:5});function U4e(e){var t;if(typeof e=="boolean")return e;if(e&&typeof e=="object"){const n=e;return Nn(Pt(Pt({},IL),n),{enabled:(t=n.enabled)==null||t})}return Pt({},IL)}function VE(e,t){if(e.renderSideBySide===!1)return!0;if(e.useInlineViewWhenSpaceIsLimited!==!0)return!1;const n=e.renderSideBySideInlineBreakpoint,i=typeof n=="number"&&Number.isFinite(n)?n:900;return t>0&&t<=i}function Sq(e){var t,n;const i=(n=(t=String(e??"").split(/\r?\n/,1)[0])==null?void 0:t.trim())!=null?n:"";if(i.length<3)return"";const o=i[0];if(o!=="`"&&o!=="~"||i[1]!==o||i[2]!==o)return"";let s=3;for(;i[s]===o;)s+=1;return i.slice(s).trim()}function ML(e){var t;return((t=String(e??"").trim().split(/\s+/,1)[0])!=null?t:"")==="diff"}function W4e(e){var t;return e.diff===!0||ML(e.language)||ML(Sq(String((t=e.raw)!=null?t:"")))}function Q4e(e,t,n){const i=(function(o){const s=Sq(o);if(!s)return"";const r=s.split(/\s+/).filter(Boolean);if(!r.length)return"";const a=r[0]==="diff"?r.slice(1):r;for(const l of a){const u=l.includes(":")?l.slice(l.indexOf(":")+1):l;if(u&&/[./\\-]/.test(u))return u}return""})(e);return{title:i||t,caption:i?n?`Diff / ${t}`:t:""}}const V4e=["aria-busy","aria-label","data-language","data-markstream-line-numbers"],G4e={key:0,translate:"no",class:"markstream-pre__diff-code"},q4e={class:"markstream-pre__diff-pane-content"},K4e={class:"markstream-pre__diff-number","aria-hidden":"true"},Z4e={class:"markstream-pre__diff-content"},Y4e={class:"markstream-pre__diff-content-inner"},J4e={key:0,class:"markstream-pre__line-numbers","aria-hidden":"true"},X4e=["textContent"],eCe=["textContent"],Na=st({__name:"PreCodeNode",props:{node:{},loading:{type:Boolean},showLineNumbers:{type:Boolean},diffInline:{type:Boolean},diffHideUnchangedRegions:{type:[Boolean,Object]},reservedHeightPx:{}},setup(e){const t=e;function n(X,ge){const q=String(X??"");return ge?q:q.replace(/\r\n$|\n$|\r$/,"")}const i=P(()=>{var X,ge,q;const pe=String((ge=(X=t.node)==null?void 0:X.language)!=null?ge:"");return String((q=String(pe).split(/\s+/g)[0])!=null?q:"").toLowerCase().replace(/[^\w-]/g,"")||"plaintext"}),o=P(()=>`language-${i.value}`),s=P(()=>{var X;return t.loading===!0||((X=t.node)==null?void 0:X.loading)===!0}),r=P(()=>{var X;return n((X=t.node)==null?void 0:X.code,s.value)});let a="",l=1;const u=P(()=>(function(X){let ge=0,q=1;X.startsWith(a)&&(ge=a.length,q=l,ge>0&&X[ge-1]==="\r"&&X[ge]===` -`&&ge++);for(let pe=ge;per.value.split(/\r\n|\n|\r/));let d=0,f="";const h=P(()=>{const X=u.value;X{var X;return t.showLineNumbers===!0&&((X=t.node)==null?void 0:X.diff)===!0}),g=P(()=>m.value&&t.diffInline===!0),v=P(()=>{const X=Number(t.reservedHeightPx);if(!Number.isFinite(X)||X<=0)return;const ge=`${Math.ceil(X)}px`;return s.value?{maxHeight:ge,overflow:"auto"}:{height:ge,minHeight:ge,maxHeight:ge,overflow:"auto"}}),y=["diff ","index ","--- ","+++ ","@@ "];function A(X){return String(X??"").trim().length===0}function b(X,ge="context",q={}){const pe=A(X);return{code:X,kind:pe&&ge!=="hunk"&&ge!=="spacer"&&!q.preserveBlankKind?"context":ge,empty:pe}}function w(X){const ge=n(X,s.value);return ge?ge.split(/\r\n|\n|\r/):[]}function _(X,ge){return!A(X[ge])||gey.some(q=>ge.startsWith(q)))}function S(X,ge){return ge||!X.startsWith(" ")||X.startsWith(" ")?X:` ${X}`}function I(X,ge){const q=X.length,pe=ge.length,we=[];let te=0;for(;te=te&&J>=te&&X[G]===ge[J];)ie.unshift({originalIndex:G,modifiedIndex:J}),G--,J--;const fe=G-te+1,me=J-te+1;if(fe<=0||me<=0||s.value||(fe+1)*(me+1)>15e5)return we.concat(ie);const ve=me+1,oe=new Uint32Array((fe+1)*(me+1));for(let Se=fe-1;Se>=0;Se--)for(let ce=me-1;ce>=0;ce--){const se=Se*ve+ce;if(X[te+Se]===ge[te+ce])oe[se]=oe[(Se+1)*ve+ce+1]+1;else{const Ie=oe[(Se+1)*ve+ce],he=oe[Se*ve+ce+1];oe[se]=Ie>=he?Ie:he}}const ae=[];let Ae=0,ue=0;for(;Ae=oe[Ae*ve+ue+1]?Ae++:ue++;return we.concat(ae,ie)}function F(X){var ge;const q=(function(){var J,fe;const me=t.diffHideUnchangedRegions;if(me==null||me===!1)return null;const ve=me===!0?{}:me;return ve.enabled===!1?null:{contextLineCount:Math.max(0,Math.floor((J=ve.contextLineCount)!=null?J:2)),minimumLineCount:Math.max(1,Math.floor((fe=ve.minimumLineCount)!=null?fe:4))}})();if(!q||X.length<1||X.length>2||X.length===2&&X[0].lines.length!==X[1].lines.length)return X;const pe=X[0].lines,we=(ge=X[1])==null?void 0:ge.lines,te=J=>pe[J].kind==="context"&&(we===void 0||we[J].kind==="context"&&pe[J].code===we[J].code),ie=[];let G=0;for(;G=q.minimumLineCount){const me=J+(J===0?0:q.contextLineCount),ve=fe-(fe===pe.length?0:q.contextLineCount);ve-me>=q.minimumLineCount&&ie.push({start:me,end:ve})}G===J&&G++}return ie.length?X.map((J,fe)=>{const me=[];let ve=0;for(const oe of ie)me.push(...J.lines.slice(ve,oe.start)),me.push({code:fe===0?"Unmodified lines":"",kind:"collapsed",empty:!1,key:`${J.key}-collapsed-${oe.start}-${oe.end}`,number:""}),ve=oe.end;return me.push(...J.lines.slice(ve)),Nn(Pt({},J),{lines:me})}):X}const E=P(()=>{var X,ge,q,pe;if(!m.value)return[];const we=(function(fe){const me=fe.some(oe=>M(oe)),ve=fe.some(oe=>B(oe));return me&&ve||(function(){var oe,ae,Ae,ue;if(i.value==="diff")return!0;const Se=(ue=(Ae=String((ae=(oe=t.node)==null?void 0:oe.raw)!=null?ae:"").split(/\r?\n/,1)[0])==null?void 0:Ae.trim())!=null?ue:"";return/^`{3,}\s*diff(?:\s|$)|^~{3,}\s*diff(?:\s|$)/.test(Se)})()&&(me||ve)})(c.value),te=(function(){var fe,me;return((fe=t.node)==null?void 0:fe.originalCode)!=null||((me=t.node)==null?void 0:me.updatedCode)!=null})();if(g.value){const fe=te?(function(me,ve){const oe=w(me),ae=w(ve),Ae=I(oe,ae);if(Ae.length>0){const he=[];let Ce=0,Re=0;for(const Pe of Ae){for(;Ce=Se&&se>=Se&&oe[ce]===ae[se];)Ie.unshift(Nn(Pt({},b(ae[se])),{key:`inline-suffix-${se}`,number:se+1})),ce--,se--;for(let he=Se;he<=ce;he++)ue.push(Nn(Pt({},b(oe[he],"removed",{preserveBlankKind:_(oe,he)})),{key:`inline-removed-source-${he}`,number:he+1}));for(let he=Se;he<=se;he++)ue.push(Nn(Pt({},b(ae[he],"added",{preserveBlankKind:_(ae,he)})),{key:`inline-added-source-${he}`,number:he+1}));return ue.concat(Ie)})((X=t.node)==null?void 0:X.originalCode,(ge=t.node)==null?void 0:ge.updatedCode):(function(me){const ve=[];let oe=1,ae=1;const Ae=C(me);for(const[ue,Se]of me.entries())if(Se.startsWith("@@")){const ce=Se.match(/^@@\s+-(\d+)(?:,\d+)?\s+\+(\d+)(?:,\d+)?\s+@@/);ce&&(oe=Number(ce[1]),ae=Number(ce[2])),ve.push(Nn(Pt({},b(Se,"hunk")),{key:`inline-hunk-${ue}`,number:""}))}else if(M(Se))ve.push(Nn(Pt({},b(S(Se.slice(1),Ae),"removed",{preserveBlankKind:!0})),{key:`inline-removed-${ue}`,number:oe++}));else if(B(Se))ve.push(Nn(Pt({},b(S(Se.slice(1),Ae),"added",{preserveBlankKind:!0})),{key:`inline-added-${ue}`,number:ae++}));else{const ce=Ae&&Se.startsWith(" ")?Se.slice(1):Se;ve.push(Nn(Pt({},b(ce)),{key:`inline-context-${ue}`,number:ae})),oe++,ae++}return ve})(c.value);return F([{key:"inline",className:"markstream-pre__diff-pane--inline",lines:fe}])}if(!we&&te)return(function(fe,me){const ve=w(fe),oe=w(me),ae=I(ve,oe),Ae=[],ue=[];let Se=0,ce=0,se=0;const Ie=(he,Ce)=>{const Re=Math.max(he-Se,Ce-ce);for(let Pe=0;PeNn(Pt({},fe),{key:`original-${me}`,number:me+1}))},{key:"modified",className:"markstream-pre__diff-pane--modified",lines:G.map((fe,me)=>Nn(Pt({},fe),{key:`modified-${me}`,number:me+1}))}])}),D=P(()=>{var X,ge;if(t.showLineNumbers!==!0)return;let q=m.value?1:u.value;if(m.value){q=Math.max(q,w((X=t.node)==null?void 0:X.originalCode).length,w((ge=t.node)==null?void 0:ge.updatedCode).length);for(const we of E.value)for(const te of we.lines)typeof te.number=="number"&&(q=Math.max(q,te.number))}const pe=`${Math.max(2,String(q).length)}ch`;return{"--markstream-pre-line-number-width":pe,"--markstream-pre-diff-line-number-width":pe,"--markstream-code-padding-left":"calc(var(--markstream-pre-line-number-padding-left, 2ch) + var(--markstream-pre-line-number-width, 2ch) + var(--markstream-pre-line-number-padding-right, 1ch) + var(--markstream-pre-line-number-separator-width, 2px) + var(--markstream-pre-line-number-gap-to-code, 1ch))"}}),j=P(()=>E.value.some(X=>X.lines.some(ge=>ge.kind==="collapsed"))),z=P(()=>{const X=i.value;return X?`Code block: ${X}`:"Code block"}),T=V(null),N=V([]);let L=null,H=!1,O=null;function Q(X){const ge=Number.parseFloat(String(X??""));return Number.isFinite(ge)&&ge>0?ge:0}function Y(X,ge){var q;if(!X)return ge;if(X.classList.contains("markstream-pre__diff-line--collapsed"))return 32;const pe=X.querySelector(".markstream-pre__diff-content"),we=pe?.getBoundingClientRect(),te=(q=we?.height)!=null?q:0;return Math.max(ge,Math.ceil(te))}function W(){H||typeof window>"u"||(L!=null&&window.cancelAnimationFrame(L),L=window.requestAnimationFrame(()=>{L=null,H||(function(){var X,ge;L=null;const q=T.value;if(!q||!m.value||g.value||!q.classList.contains("is-wrap"))return void(N.value.length&&(N.value=[]));const pe=(function(me){const ve=window.getComputedStyle(me),oe=Q(ve.getPropertyValue("--markstream-pre-diff-line-height"));if(oe>0)return oe;const ae=Q(ve.lineHeight);return ae>0?ae:18})(q),we=Array.from(q.querySelectorAll(".markstream-pre__diff-pane--original .markstream-pre__diff-line")),te=Array.from(q.querySelectorAll(".markstream-pre__diff-pane--modified .markstream-pre__diff-line")),ie=Math.max(we.length,te.length),G=[];for(let me=0;me{const oe=fe[ve];return oe&&Math.abs(me.rowHeight-oe.rowHeight)<=.5&&Math.abs(me.originalHeight-oe.originalHeight)<=.5&&Math.abs(me.modifiedHeight-oe.modifiedHeight)<=.5})||(N.value=G)})()}))}function Z(X){O?.disconnect(),O=null,X&&m.value&&!g.value&&typeof ResizeObserver<"u"&&(O=new ResizeObserver(()=>{W()}),O.observe(X))}function ee(X,ge){const q=N.value[X];if(!q)return;const pe=ge==="original"?q.originalHeight:q.modifiedHeight;return{"--markstream-pre-diff-synced-row-height":`${Math.ceil(q.rowHeight)}px`,"--markstream-pre-diff-content-height":`${Math.ceil(pe)}px`}}return $e(T,X=>{Z(X),gt(()=>W())},{flush:"post"}),$e([m,g,E],()=>{Z(T.value),gt(()=>W())},{flush:"post",immediate:!0}),ni(()=>{H=!0,L!=null&&(window.cancelAnimationFrame(L),L=null),O?.disconnect(),O=null}),(X,ge)=>(k(),R("pre",{ref_key:"preRef",ref:T,style:an([v.value,D.value]),class:De([o.value,{"markstream-pre--line-numbers":t.showLineNumbers,"markstream-pre--diff-preview":m.value,"markstream-pre--diff-inline":g.value,"markstream-pre--diff-collapsed":j.value}]),"aria-busy":s.value,"aria-label":z.value,"data-language":i.value,"data-markstream-line-numbers":t.showLineNumbers?"1":void 0,"data-markstream-pre":"1",tabindex:"0"},[m.value?(k(),R("code",G4e,[(k(!0),R(Be,null,_t(E.value,q=>(k(),R("span",{key:q.key,class:De(["markstream-pre__diff-pane",q.className])},[x("span",q4e,[(k(!0),R(Be,null,_t(q.lines,(pe,we)=>(k(),R("span",{key:pe.key,class:De(["markstream-pre__diff-line",[`markstream-pre__diff-line--${pe.kind}`,{"markstream-pre__diff-line--empty":pe.empty}]]),style:an(ee(we,q.key))},[ge[0]||(ge[0]=x("span",{class:"markstream-pre__diff-rail","aria-hidden":"true"},null,-1)),x("span",K4e,$(pe.number),1),x("span",Z4e,[x("span",Y4e,$(pe.code),1)])],6))),128))])],2))),128))])):(k(),R(Be,{key:1},[t.showLineNumbers?(k(),R("span",J4e,[x("span",{class:"markstream-pre__line-numbers-text",textContent:$(h.value)},null,8,X4e)])):ne("",!0),x("code",{translate:"no",class:"markstream-pre__code",textContent:$(r.value)},null,8,eCe)],64))],14,V4e))}});Na.install=e=>{e.component(Na.__name,Na)};const Qo=Ri(st({__name:"TextNode",props:{node:{}},emits:["copy"],setup(e){const t=e,n=Yg(),i=qt("markstreamFade",void 0),o=qt("markstreamTextStreamState",void 0),s=qt("markstreamStreamVersion",void 0),r=P(()=>{const _=n.fade;return _===""||_===!0||_==="true"||_!==!1&&_!=="false"&&void 0}),a=P(()=>typeof r.value=="boolean"?r.value:typeof i?.value!="boolean"||i.value),l=P(()=>{var _;const M=(_=n["index-key"])!=null?_:n.indexKey;return M==null||M===""?"":String(M)}),u=V(t.node.content),c=V(""),d=V(0),f=V(t.node.content);let h;const m=V(null),g=V(null);let v="",y=null;function A(){h?.(),h=void 0}function b(){A(),c.value&&(u.value=u.value+c.value,c.value="")}$e([u,m,g],function(){var _,M;const B=m.value;if(!B)return;const C=String((_=u.value)!=null?_:""),S=g.value;return y||(y=B.firstChild,v=(M=y?.data)!=null?M:""),C.startsWith(v)?!y&&C?(B.textContent=C,y=B.firstChild,void(v=C)):void(C.length>v.length&&S&&(S.appendChild(document.createTextNode(C.slice(v.length))),v=C)):(B.textContent=C,y=B.firstChild,S&&(S.textContent=""),void(v=C))},{immediate:!0}),$e([()=>t.node.content,l,a],([_])=>{const M=String(_??""),B=l.value,C=rq({nextContent:M,persistedContent:B?o?.get(B):void 0,currentState:{settledContent:u.value,streamedDelta:c.value},typewriterEnabled:a.value});u.value=C.settledContent,c.value=C.streamedDelta,C.appended?(d.value+=1,(function(){if(!c.value||h||!s)return;const S=s.value;h=$e(()=>s.value,I=>{I!==S&&b()},{flush:"sync"})})()):c.value||A(),B&&o?.set(B,M)},{immediate:!0}),Yd(A);const w=P(()=>d.value%2==0?"text-node-stream-delta--a":"text-node-stream-delta--b");return(_,M)=>(k(),R("span",{class:De([[e.node.center?"text-node-center":""],"text-node"])},[ui(x("span",{ref_key:"settledTextEl",ref:m},$(f.value),513),[[Ho,u.value!==""]]),ui(x("span",{ref_key:"settledAppendsEl",ref:g},null,512),[[Ho,u.value!==""]]),c.value?(k(),R("span",{key:0,class:De(["text-node-stream-delta",[w.value]]),onAnimationend:b},$(c.value),35)):ne("",!0)],2))}}),[["__scopeId","data-v-fd79037c"]]);function Bv(e,t,n){return st({name:e,inheritAttrs:!1,setup(i,{attrs:o,slots:s}){var r,a;const l=QE(),u=UE(),c=WE(),d=typeof window<"u"&&((a=(r=Ms())==null?void 0:r.vnode.el)==null?void 0:a.nodeType)===1,f=V(typeof window>"u"||d||!c.value),h=qa(null);let m=null;function g(v){const y=v&&"$el"in v?v.$el:v;h.value=y instanceof HTMLElement?y:null}return typeof window<"u"&&$e([h,c],([v,y],A,b)=>{if(m?.destroy(),m=null,!y||f.value)return void(f.value=!0);if(!v)return;let w=!0;const _=l(v,{rootMargin:u?.value.heavyBlockMargin,allowIdle:!1});m=_,f.value=_.isVisible.value,_.whenVisible.then(()=>{w&&m===_&&(f.value=!0)}),b(()=>{w=!1,_.destroy(),m===_&&(m=null)})},{immediate:!0}),ni(()=>{m?.destroy(),m=null}),()=>Dn(f.value?t:n,Nn(Pt({},o),{ref:g}),s)}})}Qo.install=e=>{e.component(Qo.__name,Qo)};const bw=st({name:"CodeBlockNodeLoading",inheritAttrs:!1,props:["node","isDark","loading","stream","theme","darkTheme","lightTheme","isShowPreview","monacoOptions","enableFontSizeControl","minWidth","maxWidth","themes","showHeader","showCopyButton","showExpandButton","showPreviewButton","showCollapseButton","showFontSizeButtons","showTooltips","htmlPreviewAllowScripts","htmlPreviewSandbox","customId","estimatedHeightPx","estimatedContentHeightPx","estimatedDiffInline"],emits:["previewCode","copy"],setup(e,{attrs:t}){const n=e;return()=>{var i,o,s,r,a,l,u;const c=rC(String((o=(i=n.node)==null?void 0:i.language)!=null?o:"")),d=lL[c]||(c?c.charAt(0).toUpperCase()+c.slice(1):lL[""]),f=W4e(n.node),h=Q4e(String((r=(s=n.node)==null?void 0:s.raw)!=null?r:""),d,f),m=n.monacoOptions,g=f&&((a=n.estimatedDiffInline)!=null?a:VE(m??{},typeof window>"u"?0:window.innerWidth)),v=m?.diffAppearance,y=v==="dark"||v!=="light"&&n.isDark===!0,A=typeof m?.fontSize=="number"&&Number.isFinite(m.fontSize)&&m.fontSize>0?m.fontSize:12,b=typeof m?.lineHeight=="number"&&Number.isFinite(m.lineHeight)&&m.lineHeight>0?m.lineHeight:A===12?18:Math.max(12,Math.round(1.5*A)),w=typeof m?.tabSize=="number"&&Number.isFinite(m.tabSize)&&m.tabSize>0?m.tabSize:4,_=f?0:8,M=typeof((l=m?.padding)==null?void 0:l.top)=="number"&&Number.isFinite(m.padding.top)&&m.padding.top>=0?m.padding.top:_,B=typeof((u=m?.padding)==null?void 0:u.bottom)=="number"&&Number.isFinite(m.padding.bottom)&&m.padding.bottom>=0?m.padding.bottom:_,C=typeof m?.fontFamily=="string"?m.fontFamily.trim():"",S=Pt(Pt({fontSize:`${A}px`,lineHeight:`${b}px`,tabSize:w,paddingTop:`${M}px`,paddingBottom:`${B}px`,"--markstream-pre-line-number-top":`${M}px`},f?{"--markstream-pre-diff-line-height":`${b}px`}:{}),C?{"--markstream-code-font-family":C}:{}),I=()=>Dn("button",{class:"code-action-btn inline-flex items-center justify-center p-[var(--ms-action-btn-padding)] rounded leading-none shrink-0","aria-hidden":"true",disabled:!0,tabindex:-1,type:"button"},[Dn("svg",{class:"action-icon",width:"14",height:"14"})]),F=n.isShowPreview!==!1&&(c==="html"||c==="svg"),E=n.showFontSizeButtons!==!1&&n.enableFontSizeControl!==!1||n.showExpandButton!==!1||F&&n.showPreviewButton!==!1,D=z=>{if(z!=null)return typeof z=="number"?`${z}px`:String(z)},j=Pt(Pt(Pt({"--markstream-code-layout-character-width":"1ch"},D(n.minWidth)?{minWidth:D(n.minWidth)}:{}),D(n.maxWidth)?{maxWidth:D(n.maxWidth)}:{}),f?{}:{color:"var(--vscode-editor-foreground, var(--markstream-code-fallback-fg, var(--code-fg)))",backgroundColor:"var(--markstream-code-fallback-bg, var(--code-bg, #fff))",borderColor:"var(--markstream-code-border-color, var(--code-border))"});return Dn("div",Nn(Pt({},t),{class:["code-block-container","rounded-lg","border",{dark:n.isDark===!0,"is-rendering":n.loading!==!1,"is-dark":y,"is-diff":f,"is-plain-text":c===""||c==="plaintext"||c==="text"},t.class],style:[j,t.style],"data-markstream-code-block":"1","data-markstream-enhanced":"false","data-markstream-code-block-state":n.loading?"streaming":"settled","data-markstream-code-loading":"1"}),[n.showHeader===!1?null:Dn("div",{class:"code-block-header flex justify-between items-center border-b px-[var(--ms-inset-panel-x)] py-[var(--ms-inset-panel-y)] border-[var(--code-border)] bg-[var(--code-header-bg)] text-[var(--code-fg)]"},[Dn("div",{class:"code-header-main",style:{minWidth:0,flex:"1 1 auto",display:"flex",alignItems:"center",gap:"var(--ms-gap-header-main, 0.625rem)",overflow:"hidden"}},[Dn("span",{class:"icon-slot h-4 w-4 flex-shrink-0","aria-hidden":"true",style:{display:"inline-flex",width:"1rem",height:"1rem",flex:"0 0 auto"}}),Dn("div",{class:"code-header-copy",style:{minWidth:0,display:"grid",gap:"2px"}},[Dn("div",{class:"code-header-title",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:"var(--ms-text-label, 0.75rem)",fontWeight:"500",color:"var(--code-action-fg)"}},h.title),h.caption?Dn("div",{class:"code-header-caption",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:"0.75rem",color:"var(--code-line-number)"}},h.caption):null])]),Dn("div",{class:"flex items-center gap-0.5",style:{visibility:"hidden"}},[f?Dn("div",{class:"code-diff-stats","aria-hidden":"true"},[Dn("span",{class:"code-diff-stat removed"},"-0"),Dn("span",{class:"code-diff-stat added"},"+0")]):null,n.showCopyButton===!1?null:I(),n.showCollapseButton===!1?null:I(),E?Dn("div",{class:"relative"},[I()]):null])]),Dn("div",{class:"code-block-shell-content",style:n.stream!==!1||n.loading===!1?void 0:{display:"none"}},[Dn(Na,{node:n.node,loading:n.loading,showLineNumbers:!0,reservedHeightPx:f?void 0:n.estimatedContentHeightPx,diffInline:g,diffHideUnchangedRegions:f?U4e(m?.diffHideUnchangedRegions):void 0,class:"code-pre-fallback",style:S,"data-markstream-code-loading":"1"})]),Dn("div",{class:"code-loading-placeholder",style:n.stream===!1&&n.loading!==!1?void 0:{display:"none"}},[Dn("div",{class:"loading-skeleton"},[Dn("div",{class:"skeleton-line"}),Dn("div",{class:"skeleton-line"}),Dn("div",{class:"skeleton-line short"})])]),Dn("span",{class:"sr-only","aria-live":"polite",role:"status"})])}}}),q8=Bv("ViewportDeferredCodeBlockNode",Lc({loader:()=>uo(null,null,function*(){try{return(yield rs(()=>import("./CodeBlockNode-ClI5Zc7C.js"),__vite__mapDeps([4,5]))).default}catch(e){return console.warn('[markstream-vue] Failed to load the enhanced CodeBlockNode chunk; falling back to preformatted code rendering. Enhanced code blocks require the optional "stream-diffs" peer (or "stream-monaco" as a fallback).',e),Na}}),loadingComponent:bw,delay:0,suspensible:!1}),bw),tc=Lc(()=>uo(null,null,function*(){var e;if(((e=(function(){const t=Reflect.get(globalThis,"process");return t?.env})())==null?void 0:e.NODE_ENV)==="test"&&typeof window<"u")return t=>{var n,i,o,s;return Dn(Qo,Nn(Pt({},t),{node:{type:"text",content:(i=t.node.raw)!=null?i:`$${(n=t.node.content)!=null?n:""}$`,raw:(s=t.node.raw)!=null?s:`$${(o=t.node.content)!=null?o:""}$`}}))};try{return yield dq(),(yield rs(()=>import("./index7-BRjOZjxG.js"),[])).default}catch(t){console.warn('[markstream-vue] Optional peer dependencies for MathInlineNode are missing. Falling back to text rendering. To enable full math rendering features, please install "katex".',t)}return t=>{var n,i,o,s;return Dn(Qo,Nn(Pt({},t),{node:{type:"text",content:(i=t.node.raw)!=null?i:`$${(n=t.node.content)!=null?n:""}$`,raw:(s=t.node.raw)!=null?s:`$${(o=t.node.content)!=null?o:""}$`}}))}})),xq=Lc(()=>uo(null,null,function*(){try{return yield dq(),(yield rs(()=>import("./index6-Dsp2NXNw.js"),[])).default}catch(e){console.warn('[markstream-vue] Optional peer dependencies for MathBlockNode are missing. Falling back to text rendering. To enable full math rendering features, please install "katex".',e)}return e=>{var t,n,i,o;return Dn(Qo,Nn(Pt({},e),{node:{type:"text",content:(n=e.node.raw)!=null?n:`$$${(t=e.node.content)!=null?t:""}$$`,raw:(o=e.node.raw)!=null?o:`$$${(i=e.node.content)!=null?i:""}$$`}}))}})),ga=Ri(st({__name:"ReferenceNode",props:{node:{},messageId:{},threadId:{}},emits:["click","mouseEnter","mouseLeave"],setup:e=>(t,n)=>(k(),R("span",{class:"reference-node cursor-pointer text-xs rounded-md px-1.5 mx-0.5",role:"button",tabindex:"0",onClick:n[0]||(n[0]=i=>t.$emit("click",i,e.node.id,e.messageId,e.threadId)),onMouseenter:n[1]||(n[1]=i=>t.$emit("mouseEnter",i,e.node.id,e.messageId,e.threadId)),onMouseleave:n[2]||(n[2]=i=>t.$emit("mouseLeave",i,e.node.id,e.messageId,e.threadId))},$(e.node.id),33))}),[["__scopeId","data-v-775c65e4"]]);ga.install=e=>{e.component(ga.__name,ga)};const tCe={class:"superscript-node"},ja=Ri(st({__name:"SuperscriptNode",props:{node:{},customId:{},indexKey:{}},setup(e){const t=e,n=Ts(()=>t.customId),i=P(()=>Pt({text:Qo,inline_code:qr,link:ya,html_inline:El,strong:va,emphasis:ka,footnote_reference:_l,strikethrough:Aa,highlight:Il,insert:Ua,subscript:Ha,emoji:$a,math_inline:tc,reference:ga},n.value));return(o,s)=>(k(),R("sup",tCe,[(k(!0),R(Be,null,_t(e.node.children,(r,a)=>(k(),de(p(td),{key:`${e.indexKey||"superscript"}-${a}`,components:i.value,node:r,"custom-id":t.customId,"index-key":`${e.indexKey||"superscript"}-${a}`,"fallback-to-text":""},null,8,["components","node","custom-id","index-key"]))),128))]))}}),[["__scopeId","data-v-24160b22"]]);ja.install=e=>{e.component(ja.__name,ja)};const nCe={class:"subscript-node"},Ha=Ri(st({__name:"SubscriptNode",props:{node:{},customId:{},indexKey:{}},setup(e){const t=e,n=Ts(()=>t.customId),i=P(()=>Pt({text:Qo,inline_code:qr,link:ya,html_inline:El,strong:va,emphasis:ka,footnote_reference:_l,strikethrough:Aa,highlight:Il,insert:Ua,superscript:ja,emoji:$a,math_inline:tc,reference:ga},n.value));return(o,s)=>(k(),R("sub",nCe,[(k(!0),R(Be,null,_t(e.node.children,(r,a)=>(k(),de(p(td),{key:`${e.indexKey||"subscript"}-${a}`,components:i.value,node:r,"custom-id":t.customId,"index-key":`${e.indexKey||"subscript"}-${a}`,"fallback-to-text":""},null,8,["components","node","custom-id","index-key"]))),128))]))}}),[["__scopeId","data-v-197fa13b"]]);Ha.install=e=>{e.component(Ha.__name,Ha)};const iCe={class:"strong-node"},va=Ri(st({__name:"StrongNode",props:{node:{},customId:{},indexKey:{}},setup(e){const t=e,n=Ts(()=>t.customId),i=P(()=>Pt({text:Qo,inline_code:qr,link:ya,html_inline:El,emphasis:ka,strikethrough:Aa,highlight:Il,insert:Ua,subscript:Ha,superscript:ja,emoji:$a,footnote_reference:_l,math_inline:tc,reference:ga},n.value));return(o,s)=>(k(),R("strong",iCe,[(k(!0),R(Be,null,_t(e.node.children,(r,a)=>(k(),de(p(td),{key:`${e.indexKey||"strong"}-${a}`,components:i.value,node:r,"index-key":`${e.indexKey||"strong"}-${a}`,"custom-id":t.customId},null,8,["components","node","index-key","custom-id"]))),128))]))}}),[["__scopeId","data-v-a8647104"]]);va.install=e=>{e.component(va.__name,va)};const oCe={class:"strikethrough-node"},Aa=Ri(st({__name:"StrikethroughNode",props:{node:{},customId:{},indexKey:{}},setup(e){const t=e,n=Ts(()=>t.customId),i=P(()=>Pt({text:Qo,inline_code:qr,link:ya,html_inline:El,strong:va,emphasis:ka,highlight:Il,insert:Ua,subscript:Ha,superscript:ja,emoji:$a,footnote_reference:_l,math_inline:tc,reference:ga},n.value));return(o,s)=>(k(),R("del",oCe,[(k(!0),R(Be,null,_t(e.node.children,(r,a)=>(k(),de(p(td),{key:`${e.indexKey||"strikethrough"}-${a}`,components:i.value,node:r,"custom-id":t.customId,"index-key":`${e.indexKey||"strikethrough"}-${a}`},null,8,["components","node","custom-id","index-key"]))),128))]))}}),[["__scopeId","data-v-b7a531fa"]]);Aa.install=e=>{e.component(Aa.__name,Aa)};const sCe=["href","title","aria-label","aria-hidden","target","rel"],rCe=["aria-hidden"],aCe={class:"link-text-wrapper relative inline-flex"},lCe={class:"leading-[normal] link-text"},ya=Ri(st({__name:"LinkNode",props:{node:{},indexKey:{},customId:{},showTooltip:{type:Boolean,default:!0},color:{},underlineHeight:{},underlineBottom:{},animationDuration:{},animationOpacity:{},animationTiming:{},animationIteration:{}},setup(e){const t=e,n=qt("markstreamShowTooltips",void 0),i=P(()=>{const y=n?.value;return typeof y=="boolean"?y:t.showTooltip}),o=P(()=>{var y,A,b,w,_;const M=t.underlineBottom!==void 0?typeof t.underlineBottom=="number"?`${t.underlineBottom}px`:String(t.underlineBottom):"-3px",B=(y=t.animationOpacity)!=null?y:.35,C=Math.max(.12,Math.min(.5*B,B)),S={"--underline-height":`${(A=t.underlineHeight)!=null?A:2}px`,"--underline-bottom":M,"--underline-opacity":String(B),"--underline-rest-opacity":String(C),"--underline-duration":`${(b=t.animationDuration)!=null?b:1.6}s`,"--underline-timing":(w=t.animationTiming)!=null?w:"ease-in-out","--underline-iteration":typeof t.animationIteration=="number"?String(t.animationIteration):(_=t.animationIteration)!=null?_:"infinite"};return t.color&&(S["--link-color"]=t.color),S}),s=Ts(()=>t.customId),r=P(()=>Pt({text:Qo,strong:va,strikethrough:Aa,emphasis:ka,image:Jf,html_inline:El,inline_code:qr},s.value)),a=Yg(),l=P(()=>{var y,A;const b=(y=t.node)==null?void 0:y.attrs;if(!b||typeof b!="object")return{};const w={};if(Array.isArray(b))for(const _ of b)Array.isArray(_)&&_[0]&&(w[String(_[0])]=String((A=_[1])!=null?A:""));else for(const[_,M]of Object.entries(b))_&&M!=null&&M!==!1&&(w[_]=M===!0?"":String(M));return bL(w,"safe","a")}),u=P(()=>Pt(Pt({},a),l.value)),c=P(()=>{var y,A;return bL({href:String((A=(y=t.node)==null?void 0:y.href)!=null?A:"")},"safe","a").href}),d=P(()=>{if(!c.value)return;const y=u.value.target;return(typeof y=="string"?y.trim():String(y??"").trim())||(GAe(c.value)?"_blank":void 0)}),f=P(()=>{var y;return String((y=d.value)!=null?y:"").trim().toLowerCase()==="_blank"}),h=P(()=>{if(!c.value)return;const y=u.value.rel,A=new Set((typeof y=="string"?y:String(y??"")).split(/\s+/).filter(Boolean)),b=new Set(Array.from(A).filter(w=>w.toLowerCase()!=="opener"));return f.value&&(b.add("noopener"),b.add("noreferrer")),b.size>0?Array.from(b).join(" "):void 0}),m=P(()=>{const y=Pt({},u.value);return delete y.title,delete y.href,delete y.target,delete y.rel,y});function g(){i.value&&I4e()}const v=P(()=>{var y,A;const b=(y=t.node)==null?void 0:y.title;return typeof b=="string"&&b.trim().length>0?b:String((A=c.value)!=null?A:"")});return(y,A)=>{var b,w;return e.node.loading?(k(),R("span",fi({key:1,class:"link-loading inline-flex items-baseline gap-1.5","aria-hidden":e.node.loading?"false":"true"},p(a),{style:o.value}),[x("span",aCe,[x("span",lCe,[K(p(Qo),{class:"leading-[normal] link-text",node:{type:"text",content:String((b=e.node.text)!=null?b:""),raw:String((w=e.node.text)!=null?w:"")},"index-key":`${e.indexKey||"link-text"}-loading`},null,8,["node","index-key"])]),A[1]||(A[1]=x("span",{class:"link-loading-indicator","aria-hidden":"true"},null,-1))])],16,rCe)):(k(),R("a",fi({key:0,class:"link-node",href:c.value,title:i.value?"":v.value,"aria-label":`Link: ${v.value}`,"aria-hidden":e.node.loading?"true":"false",target:d.value,rel:h.value},m.value,{style:o.value,onMouseenter:A[0]||(A[0]=_=>(function(M){var B,C,S,I;if(!i.value)return;const F=M,E=F?.clientX!=null&&F?.clientY!=null?{x:F.clientX,y:F.clientY}:void 0,D=((B=t.node)==null?void 0:B.title)||((C=c.value)!=null&&C.includes("xn--")&&((I=(S=t.node)==null?void 0:S.text)!=null&&I.includes("://"))?t.node.text:c.value)||"";E4e(M.currentTarget,D,"top",!1,E)})(_)),onMouseleave:g}),[(k(!0),R(Be,null,_t(e.node.children,(_,M)=>(k(),de(p(td),{key:`${e.indexKey||"emphasis"}-${M}`,components:r.value,node:_,"custom-id":t.customId,"index-key":`${e.indexKey||"link-text"}-${M}`},null,8,["components","node","custom-id","index-key"]))),128))],16,sCe))}}}),[["__scopeId","data-v-367e6ca4"]]);ya.install=e=>{e.component(ya.__name,ya)};const uCe={class:"insert-node"},Ua=Ri(st({__name:"InsertNode",props:{node:{},customId:{},indexKey:{}},setup(e){const t=e,n=Ts(()=>t.customId),i=P(()=>Pt({text:Qo,inline_code:qr,link:ya,html_inline:El,strong:va,emphasis:ka,strikethrough:Aa,highlight:Il,subscript:Ha,superscript:ja,emoji:$a,footnote_reference:_l,math_inline:tc,reference:ga},n.value));return(o,s)=>(k(),R("ins",uCe,[(k(!0),R(Be,null,_t(e.node.children,(r,a)=>(k(),de(p(td),{key:`${e.indexKey||"insert"}-${a}`,components:i.value,node:r,"custom-id":t.customId,"index-key":`${e.indexKey||"insert"}-${a}`},null,8,["components","node","custom-id","index-key"]))),128))]))}}),[["__scopeId","data-v-1e2c29d4"]]);Ua.install=e=>{e.component(Ua.__name,Ua)};const cCe={class:"highlight-node"},Il=Ri(st({__name:"HighlightNode",props:{node:{},customId:{},indexKey:{}},setup(e){const t=e,n=Ts(()=>t.customId),i=P(()=>Pt({text:Qo,inline_code:qr,link:ya,html_inline:El,strong:va,emphasis:ka,strikethrough:Aa,insert:Ua,subscript:Ha,superscript:ja,emoji:$a,footnote_reference:_l,math_inline:tc,reference:ga},n.value));return(o,s)=>(k(),R("mark",cCe,[(k(!0),R(Be,null,_t(e.node.children,(r,a)=>(k(),de(p(td),{key:`${e.indexKey||"highlight"}-${a}`,components:i.value,node:r,"custom-id":t.customId,"index-key":`${e.indexKey||"highlight"}-${a}`},null,8,["components","node","custom-id","index-key"]))),128))]))}}),[["__scopeId","data-v-7a62982a"]]);Il.install=e=>{e.component(Il.__name,Il)};const dCe={class:"emphasis-node"},ka=Ri(st({__name:"EmphasisNode",props:{node:{},customId:{},indexKey:{}},setup(e){const t=e,n=Ts(()=>t.customId),i=P(()=>Pt({text:Qo,inline_code:qr,link:ya,html_inline:El,strong:va,strikethrough:Aa,highlight:Il,insert:Ua,subscript:Ha,superscript:ja,emoji:$a,footnote_reference:_l,math_inline:tc,reference:ga},n.value));return(o,s)=>(k(),R("em",dCe,[(k(!0),R(Be,null,_t(e.node.children,(r,a)=>(k(),de(p(td),{key:`${e.indexKey||"emphasis"}-${a}`,components:i.value,node:r,"custom-id":t.customId,"index-key":`${e.indexKey||"emphasis"}-${a}`},null,8,["components","node","custom-id","index-key"]))),128))]))}}),[["__scopeId","data-v-2a5aafbf"]]);ka.install=e=>{e.component(ka.__name,ka)};const fCe={class:"hard-break"},Xf=Ri(st({__name:"HardBreakNode",props:{node:{}},setup:e=>(t,n)=>(k(),R("br",fCe))}),[["__scopeId","data-v-50c58f70"]]);Xf.install=e=>{e.component(Xf.__name,Xf)};const d2=st({__name:"SimpleInlineRenderer",props:{nodes:{},customId:{},indexKey:{}},setup(e){const t=e,n=Tt({checkbox:xl,checkbox_input:xl,emoji:$a,emphasis:ka,hardbreak:Xf,highlight:Il,inline_code:qr,insert:Ua,link:ya,reference:ga,strikethrough:Aa,strong:va,subscript:Ha,superscript:ja,text:Qo}),i=Ts(()=>t.customId),o=P(()=>{const s=i.value;return Object.keys(s).length>0?Pt(Pt({},n),s):n});return(s,r)=>(k(!0),R(Be,null,_t(e.nodes,(a,l)=>(k(),de(p(td),{key:l,components:o.value,node:a,"custom-id":t.customId,"index-key":`${e.indexKey||"inline"}-${l}`},null,8,["components","node","custom-id","index-key"]))),128))}});function b7(e){if(!e||typeof e!="object")return!1;const t=`|${e.type}|`;if(!"|checkbox|checkbox_input|emoji|emphasis|hardbreak|highlight|inline_code|insert|link|reference|strikethrough|strong|subscript|superscript|text|".includes(t))return!1;if(!"|emphasis|highlight|insert|link|strikethrough|strong|subscript|superscript|".includes(t))return!0;const n=e.children;return Array.isArray(n)&&n.every(b7)}function ww(e,t=!0,n=!1){if(!e||!n&&e.length===0)return null;if(e.every(b7))return e;if(!t||e.length!==1)return null;const i=e[0];if(i?.type!=="paragraph"||!Array.isArray(i.children))return null;const o=i.children;return(n||o.length>0)&&o.every(b7)?o:null}function f1(e){var t,n;if(!e?.length)return null;let i="";for(const o of e){if(o?.type!=="text"||o.center===!0)return null;i+=String((n=(t=o.content)!=null?t:o.raw)!=null?n:"")}return i}const hCe=["cite"],pCe={key:0,dir:"auto",class:"paragraph-node"},mCe=["custom-id"],O9=Ri(st({__name:"BlockquoteNode",props:{node:{},indexKey:{},typewriter:{type:Boolean},fade:{type:Boolean},customId:{},showTooltips:{type:Boolean}},emits:["copy"],setup(e){const t=e,n=Ts(()=>t.customId),i=P(()=>!!n.value.paragraph),o=P(()=>!!n.value.text),s=P(()=>ww(t.node.children,!i.value)),r=P(()=>t.fade!==!1||o.value?null:f1(s.value));return Wn("markstreamShowTooltips",P(()=>t.showTooltips)),Wn("markstreamFade",P(()=>t.fade)),(a,l)=>(k(),R("blockquote",{class:"blockquote blockquote-node",dir:"auto",cite:e.node.cite},[s.value?(k(),R("p",pCe,[r.value!==null?(k(),R("span",{key:0,class:"text-node","custom-id":t.customId},$(r.value),9,mCe)):(k(),de(p(d2),{key:1,nodes:s.value,"custom-id":t.customId,"index-key":`blockquote-${t.indexKey}-paragraph`},null,8,["nodes","custom-id","index-key"]))])):(k(),de(p(Wa),{key:1,"show-tooltips":t.showTooltips,"index-key":`blockquote-${t.indexKey}`,nodes:t.node.children||[],"custom-id":t.customId,typewriter:t.typewriter,fade:t.fade,onCopy:l[0]||(l[0]=u=>a.$emit("copy",u))},null,8,["show-tooltips","index-key","nodes","custom-id","typewriter","fade"]))],8,hCe))}}),[["__scopeId","data-v-abfecebc"]]);O9.install=e=>{e.component(O9.__name,O9)};const gCe={class:"definition-list"},vCe={class:"definition-term"},ACe={class:"definition-desc"},z9=Ri(st({__name:"DefinitionListNode",props:{node:{},indexKey:{},typewriter:{type:Boolean},fade:{type:Boolean},customId:{}},emits:["copy"],setup(e){const t=e;return(n,i)=>(k(),R("dl",gCe,[(k(!0),R(Be,null,_t(t.node.items,(o,s)=>(k(),R(Be,{key:s},[x("dt",vCe,[K(p(Wa),{"index-key":`definition-term-${t.indexKey}-${s}`,nodes:o.term,"custom-id":t.customId,typewriter:t.typewriter,fade:t.fade,onCopy:i[0]||(i[0]=r=>n.$emit("copy",r))},null,8,["index-key","nodes","custom-id","typewriter","fade"])]),x("dd",ACe,[K(p(Wa),{"index-key":`definition-desc-${t.indexKey}-${s}`,nodes:o.definition,"custom-id":t.customId,typewriter:t.typewriter,fade:t.fade,onCopy:i[1]||(i[1]=r=>n.$emit("copy",r))},null,8,["index-key","nodes","custom-id","typewriter","fade"])])],64))),128))]))}}),[["__scopeId","data-v-4e103b30"]]);z9.install=e=>{e.component(z9.__name,z9)};const yCe=["href","title"],gA=Ri(st({__name:"FootnoteAnchorNode",props:{node:{}},setup(e){const t=e;function n(i){var o;if(i.preventDefault(),typeof document>"u")return;const s=`fnref-${String((o=t.node.id)!=null?o:"")}`,r=document.getElementById(s);r&&r.scrollIntoView({behavior:"smooth",block:"center"})}return(i,o)=>(k(),R("a",{class:"footnote-anchor text-sm hover:underline cursor-pointer",href:`#fnref-${e.node.id}`,title:`返回引用 ${e.node.id}`,onClick:n}," ↩︎ ",8,yCe))}}),[["__scopeId","data-v-e1eb37b6"]]);gA.install=e=>{e.component(gA.__name,gA)};const kCe=["id"],bCe={class:"flex-1"},$9=st({__name:"FootnoteNode",props:{node:{},indexKey:{},typewriter:{type:Boolean},fade:{type:Boolean},customId:{}},emits:["copy"],setup(e){const t=e;return(n,i)=>(k(),R("div",{id:`fnref--${e.node.id}`,class:"footnote-node flex text-sm leading-relaxed border-t border-[var(--footnote-border)] pt-2"},[x("div",bCe,[K(p(Wa),{"index-key":`footnote-${t.indexKey}`,nodes:t.node.children,"custom-id":t.customId,typewriter:t.typewriter,fade:t.fade,onCopy:i[0]||(i[0]=o=>n.$emit("copy",o))},null,8,["index-key","nodes","custom-id","typewriter","fade"])])],8,kCe))}});$9.install=e=>{e.component($9.__name,$9)};const wCe=["custom-id"],w7=Ri(st({__name:"HeadingNode",props:{node:{},customId:{},indexKey:{}},setup(e){const t=e,n=Ts(()=>t.customId),i=qt("markstreamFade",void 0),o=P(()=>i?.value!==!1||n.value.text?null:f1(t.node.children)),s=P(()=>Pt({text:Qo,inline_code:qr,link:ya,image:Jf,strong:va,emphasis:ka,strikethrough:Aa,highlight:Il,insert:Ua,subscript:Ha,superscript:ja,emoji:$a,checkbox:xl,checkbox_input:xl,footnote_reference:_l,hardbreak:Xf,math_inline:tc,reference:ga},n.value));return(r,a)=>(k(),de(jo(`h${e.node.level}`),fi({class:["heading-node",[`heading-${e.node.level}`]],dir:"auto"},e.node.attrs),{default:le(()=>[o.value!==null?(k(),R("span",{key:0,class:"text-node","custom-id":t.customId},$(o.value),9,wCe)):(k(!0),R(Be,{key:1},_t(e.node.children,(l,u)=>(k(),de(p(td),{key:u,components:s.value,"custom-id":t.customId,node:l,"index-key":`${e.indexKey||"heading"}-${u}`},null,8,["components","custom-id","node","index-key"]))),128))]),_:1},16,["class"]))}}),[["__scopeId","data-v-7122dbe1"]]),uC=w7;uC.install=e=>{e.component(w7.__name,w7)};const CCe={key:0,dir:"auto",class:"paragraph-node"},SCe=["custom-id"],xCe={dir:"auto",class:"paragraph-node"},_Ce=["custom-id"],fg=Ri(st({__name:"ListItemNode",props:{node:{},item:{},indexKey:{},customId:{},typewriter:{type:Boolean},fade:{type:Boolean},showTooltips:{type:Boolean},value:{},isDark:{type:Boolean}},emits:["copy"],setup(e){const t=e,n=P(()=>{var h;return(h=t.node)!=null?h:t.item}),i=Ts(()=>t.customId),o=P(()=>!!i.value.paragraph),s=P(()=>!!i.value.text),r=P(()=>{var h;return ww((h=n.value)==null?void 0:h.children,!o.value)}),a=P(()=>{var h;if(o.value)return null;const m=(h=n.value)==null?void 0:h.children;if(!Array.isArray(m)||m.length<2)return null;const g=m[0];if(g?.type!=="paragraph"||!Array.isArray(g.children))return null;const v=m.slice(1);if(!v.every(A=>A?.type==="list"))return null;const y=ww([g]);return y?{paragraphChildren:y,nestedLists:v}:null});function l(){return t.fade===!1&&!s.value}const u=P(()=>l()?f1(r.value):null),c=P(()=>{var h;return l()?f1((h=a.value)==null?void 0:h.paragraphChildren):null}),d=Object.freeze({}),f=P(()=>{const{value:h}=t;return typeof h=="number"&&Number.isFinite(h)?{value:h}:d});return Wn("markstreamShowTooltips",P(()=>t.showTooltips)),Wn("markstreamFade",P(()=>t.fade)),(h,m)=>{var g,v;return k(),R("li",fi({class:"list-item",dir:"auto"},f.value),[r.value?(k(),R("p",CCe,[u.value!==null?(k(),R("span",{key:0,class:"text-node","custom-id":t.customId},$(u.value),9,SCe)):(k(),de(p(d2),{key:1,nodes:r.value,"custom-id":t.customId,"index-key":`list-item-${t.indexKey}-paragraph`},null,8,["nodes","custom-id","index-key"]))])):a.value?(k(),R(Be,{key:1},[x("p",xCe,[c.value!==null?(k(),R("span",{key:0,class:"text-node","custom-id":t.customId},$(c.value),9,_Ce)):(k(),de(p(d2),{key:1,nodes:a.value.paragraphChildren,"custom-id":t.customId,"index-key":`list-item-${t.indexKey}-paragraph`},null,8,["nodes","custom-id","index-key"]))]),(k(!0),R(Be,null,_t(a.value.nestedLists,(y,A)=>(k(),de(p(Wa),{key:A,nodes:[y],"custom-id":t.customId,"index-key":`list-item-${t.indexKey}-nested-${A}`,"show-tooltips":t.showTooltips,typewriter:t.typewriter,fade:t.fade,"is-dark":t.isDark,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0,onCopy:m[0]||(m[0]=b=>h.$emit("copy",b))},null,8,["nodes","custom-id","index-key","show-tooltips","typewriter","fade","is-dark"]))),128))],64)):(k(),de(p(Wa),{key:2,"show-tooltips":t.showTooltips,"index-key":`list-item-${t.indexKey}`,nodes:(v=(g=n.value)==null?void 0:g.children)!=null?v:[],"custom-id":t.customId,typewriter:t.typewriter,fade:t.fade,"is-dark":t.isDark,"batch-rendering":!1,onCopy:m[1]||(m[1]=y=>h.$emit("copy",y))},null,8,["show-tooltips","index-key","nodes","custom-id","typewriter","fade","is-dark"]))],16)}}}),[["__scopeId","data-v-617214f9"]]);fg.install=e=>{e.component(fg.__name,fg)};const hg=Ri(st({__name:"ListNode",props:{node:{},customId:{},indexKey:{},typewriter:{type:Boolean},fade:{type:Boolean},showTooltips:{type:Boolean},isDark:{type:Boolean}},emits:["copy"],setup(e){const t=Ts(()=>e.customId),n=P(()=>t.value.list_item||fg);return(i,o)=>(k(),de(jo(e.node.ordered?"ol":"ul"),{class:De(["list-node",{"list-decimal":e.node.ordered,"list-disc":!e.node.ordered}])},{default:le(()=>[(k(!0),R(Be,null,_t(e.node.items,(s,r)=>{var a;return k(),de(jo(n.value),fi({key:`${e.indexKey||"list"}-${r}`},{ref_for:!0},{showTooltips:e.showTooltips},{node:s,"custom-id":e.customId,"index-key":`${e.indexKey||"list"}-${r}`,typewriter:e.typewriter,fade:e.fade,"is-dark":e.isDark,value:e.node.ordered?((a=e.node.start)!=null?a:1)+r:void 0,onCopy:o[0]||(o[0]=l=>i.$emit("copy",l))}),null,16,["node","custom-id","index-key","typewriter","fade","is-dark","value"])}),128))]),_:1},8,["class"]))}}),[["__scopeId","data-v-99cb95e0"]]);hg.install=e=>{e.component(hg.__name,hg)};const ECe={key:2,class:"html-block-node__raw"},ICe=["innerHTML"],MCe={key:1,class:"html-block-node__placeholder"},vA=Ri(st({__name:"HtmlBlockNode",props:{node:{},customId:{},htmlPolicy:{}},setup(e){const t=e,n=qt("markstreamHtmlPolicy",void 0),i=qt("markstreamNestedRendererProps",void 0),o=P(()=>{var E,D;return(D=(E=t.htmlPolicy)!=null?E:n?.value)!=null?D:"safe"}),s=P(()=>{var E,D;const j=(E=i?.value)!=null?E:{};return Nn(Pt({},j),{customId:(D=t.customId)!=null?D:j.customId,htmlPolicy:o.value})}),r=Lc({loader:()=>Promise.resolve().then(()=>nI),suspensible:!1}),a=P(()=>{const E=D9(t.node.attrs,o.value);if(!E)return;const D=fA(E);return Object.keys(D).length>0?D:void 0}),l=P(()=>{const E=String(t.node.tag||"").trim(),D=D9(t.node.attrs,o.value,E);if(!D)return;const j=fA(D);return Object.keys(j).length>0?j:void 0}),u=Ts(()=>t.customId),c=st({name:"DynamicRenderer",props:{nodes:{type:Array,required:!0}},render(){return this.nodes}}),d=V(null),f=V(typeof window>"u"),h=V(t.node.content),m=P(()=>Array.isArray(t.node.children)?t.node.children:[]),g=P(()=>String(t.node.tag||"div")),v=P(()=>{var E;if(g.value.trim().toLowerCase()!=="details"||(E=t.node.attrs)!=null&&E.some(([j])=>String(j).toLowerCase()==="open"))return null;const D=m.value[0];return D?.type==="html_block"&&String(D.tag||"").toLowerCase()==="summary"?D:null}),y=P(()=>{var E;return f1((E=v.value)==null?void 0:E.children)}),A=P(()=>{const E=v.value;if(!E)return;const D=D9(E.attrs,o.value,"summary");if(!D)return;const j=fA(D);return Object.keys(j).length>0?j:void 0}),b=P(()=>y.value==null?m.value:m.value.slice(1)),w=P(()=>{const E=g.value.trim().toLowerCase();return VV.has(E)||PE(E,o.value)}),_=P(()=>m.value.length>0&&!!t.node.tag&&!w.value),M=P(()=>{var E,D,j;if(_.value)return{mode:"structured"};if(!f.value)return{mode:"html",content:(E=h.value)!=null?E:""};const z=(D=h.value)!=null?D:t.node.content;if(!z)return{mode:"html",content:""};if(o.value==="escape")return{mode:"html",content:dg(z,o.value)};if(t.node.loading){const N=kw(z,u.value,o.value);return N===null?{mode:"text",content:(j=t.node.raw)!=null?j:z}:{mode:"dynamic",nodes:N}}if(!Aq(z,u.value))return{mode:"html",content:dg(z,o.value)};const T=kw(z,u.value,o.value);return T===null?{mode:"html",content:dg(z,o.value)}:{mode:"dynamic",nodes:T}}),B=QE(),C=UE(),S=WE(),I=qa(null),F=!!t.node.loading;return typeof window<"u"?($e([()=>d.value,()=>C?.value.heavyBlockMargin,()=>C?.value.rootMargin],([E],D,j)=>{var z,T,N,L;if((T=(z=I.value)==null?void 0:z.destroy)==null||T.call(z),I.value=null,!F)return f.value=!0,void(h.value=t.node.content);if(!E)return void(f.value=!1);let H=!0;const O=(L=(N=C?.value.heavyBlockMargin)!=null?N:C?.value.rootMargin)!=null?L:d1,Q=B(E,{rootMargin:O,allowIdle:!S.value});I.value=Q,f.value=f.value||Q.isVisible.value,Q.whenVisible.then(()=>{H&&I.value===Q&&(f.value=!0)}),j(()=>{H=!1,Q.destroy(),I.value===Q&&(I.value=null)})},{immediate:!0}),$e(()=>t.node.content,E=>{F&&!f.value||(h.value=E)})):f.value=!0,ni(()=>{var E,D;(D=(E=I.value)==null?void 0:E.destroy)==null||D.call(E),I.value=null}),(E,D)=>(k(),de(jo(_.value?g.value:"div"),fi({ref_key:"htmlRef",ref:d,class:"html-block-node","data-markstream-viewport-pending":p(S)&&!f.value?"true":void 0},_.value?l.value:void 0),{default:le(()=>[f.value?(k(),R(Be,{key:0},[M.value.mode==="structured"?(k(),R(Be,{key:0},[y.value!==null?(k(),R(Be,{key:0},[x("summary",Qne(wU(A.value)),$(y.value),17),b.value.length?(k(),de(p(r),fi({key:0},s.value,{nodes:b.value,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["nodes"])):ne("",!0)],64)):(k(),de(p(r),fi({key:1},s.value,{nodes:m.value,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["nodes"]))],64)):M.value.mode==="dynamic"?(k(),de(p(c),{key:1,nodes:M.value.nodes},null,8,["nodes"])):M.value.mode==="text"?(k(),R("pre",ECe,$(M.value.content),1)):(k(),R("div",fi({key:3},a.value,{innerHTML:M.value.content}),null,16,ICe))],64)):(k(),R("div",MCe,[On(E.$slots,"placeholder",{node:e.node},()=>[D[0]||(D[0]=x("span",{class:"html-block-node__placeholder-bar"},null,-1)),D[1]||(D[1]=x("span",{class:"html-block-node__placeholder-bar w-4/5"},null,-1)),D[2]||(D[2]=x("span",{class:"html-block-node__placeholder-bar w-2/3"},null,-1))],!0)]))]),_:3},16,["data-markstream-viewport-pending"]))}}),[["__scopeId","data-v-e140a874"]]);vA.install=e=>{e.component(vA.__name,vA)};const TCe={dir:"auto",class:"paragraph-node"},BCe=["custom-id"],e1=Ri(st({__name:"ParagraphNode",props:{node:{},customId:{},indexKey:{},customHtmlTags:{},parseOptions:{},customMarkdownIt:{type:Function}},setup(e){const t=e,n=Ts(()=>t.customId),i=qt("markstreamHtmlPolicy",void 0),o=qt("markstreamFade",void 0),s=qt("markstreamParseOptions",void 0),r=qt("markstreamCustomMarkdownIt",void 0),a=qt("markstreamNestedRendererProps",void 0),l=P(()=>{var C;return(C=i?.value)!=null?C:"safe"}),u=P(()=>{var C;return(C=t.parseOptions)!=null?C:s?.value}),c=P(()=>{var C;return(C=t.customMarkdownIt)!=null?C:r?.value}),d=P(()=>{var C,S;return(S=t.customHtmlTags)!=null?S:(C=a?.value)==null?void 0:C.customHtmlTags}),f=P(()=>{var C,S;const I=(C=a?.value)!=null?C:{};return Nn(Pt({},I),{customId:(S=t.customId)!=null?S:I.customId,customHtmlTags:d.value,parseOptions:u.value,customMarkdownIt:c.value,htmlPolicy:l.value})}),h=Lc({loader:()=>Promise.resolve().then(()=>nI),suspensible:!1});function m(C){var S;return C.type==="text"&&String((S=C.content)!=null?S:"").trim()===""}const g=P(()=>t.node.children.filter(C=>!m(C))),v=P(()=>g.value.length>0&&g.value.every(C=>C.type==="image"||(function(S){var I;const F=(function(E){return E.type==="link"&&Array.isArray(E.children)?E.children.filter(D=>!m(D)):[]})(S);return F.length===1&&((I=F[0])==null?void 0:I.type)==="image"})(C))),y=P(()=>new Set(T1(d.value))),A=P(()=>{if(!v.value||g.value.length<=1)return t.node.children;const C=[];for(let S=0;S0,E=t.node.children.slice(S+1).some(D=>!m(D));F&&E&&C.push(Nn(Pt({},I),{content:" ",raw:" "}))}return C}),b=P(()=>o?.value===!1&&!n.value.text),w=P(()=>b.value?f1(A.value):null);function _(C,S){return{node:C,"index-key":`${t.indexKey}-${S}`,"custom-id":t.customId,"custom-html-tags":d.value}}const M=P(()=>Pt({inline_code:qr,image:Jf,link:ya,hardbreak:Xf,emphasis:ka,strong:va,strikethrough:Aa,highlight:Il,insert:Ua,subscript:Ha,superscript:ja,html_inline:El,html_block:vA,emoji:$a,checkbox:xl,math_inline:tc,checkbox_input:xl,reference:ga,footnote_anchor:gA,footnote_reference:_l,text:Qo},n.value)),B=P(()=>A.value.map((C,S)=>{var I;const F=(function(E){var D,j,z,T;if(E.type==="html_block"||E.type==="html_inline"){const N=String((D=E.tag)!=null?D:"").trim().toLowerCase()||YV(E.content);if(N&&!y.value.has(N)&&JV((j=E.content)!=null?j:E.raw,N)){const L=String((T=(z=E.content)!=null?z:E.raw)!=null?T:"");return{child:{type:"text",content:L,raw:L},component:Qo,isCustomComponent:!1}}}return{child:E,component:M.value[E.type],isCustomComponent:!!(n.value[E.type]&&!ey(String(E.type)))}})(C);return Nn(Pt({},F),{index:S,key:`${t.indexKey||"paragraph"}-${S}`,customAttrs:F.isCustomComponent?HE(F.child,l.value):void 0,hasSlotChildren:Array.isArray(F.child.children)&&F.child.children.length>0,slotContent:String((I=F.child.content)!=null?I:""),originalChild:C})}));return(C,S)=>(k(),R("p",TCe,[w.value!==null?(k(),R("span",{key:0,class:"text-node","custom-id":t.customId},$(w.value),9,BCe)):(k(!0),R(Be,{key:1},_t(B.value,I=>{return k(),R(Be,{key:I.key},[v.value&&m(I.originalChild)?(k(),R(Be,{key:0},[ze($((F=I.originalChild,String((E=F.content)!=null?E:""))),1)],64)):I.isCustomComponent?(k(),de(jo(I.component),fi({key:1,ref_for:!0},I.customAttrs,{node:I.child,loading:I.child.loading,"index-key":I.key,"custom-id":t.customId,"custom-html-tags":d.value,"is-dark":f.value.isDark}),{default:le(()=>[I.hasSlotChildren?(k(),de(p(h),fi({key:0,ref_for:!0},f.value,{nodes:I.child.children,"index-key":I.key,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["nodes","index-key"])):I.slotContent?(k(),de(p(h),fi({key:1,ref_for:!0},f.value,{content:I.slotContent,final:!I.child.loading,"index-key":`${I.key}-content`,"smooth-streaming":!1,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["content","final","index-key"])):ne("",!0)]),_:2},1040,["node","loading","index-key","custom-id","custom-html-tags","is-dark"])):(k(),de(jo(I.component),fi({key:2,ref_for:!0},_(I.child,I.index)),null,16))],64);var F,E}),128))]))}}),[["__scopeId","data-v-c59ff506"]]);e1.install=e=>{e.component(e1.__name,e1)};const FCe={class:"table-node-wrapper"},RCe=["aria-busy"],DCe={key:0},NCe=["custom-id"],LCe=["aria-label","onPointerdown"],PCe=["custom-id"],OCe={key:0,class:"table-node__loading",role:"status","aria-live":"polite"},AA=Ri(st({__name:"TableNode",props:{node:{},indexKey:{},isDark:{type:Boolean},typewriter:{type:Boolean},fade:{type:Boolean},customId:{},showTooltips:{type:Boolean}},emits:["copy"],setup(e){const t=e,n=P(()=>{var y;return(y=t.node.loading)!=null&&y}),i=P(()=>{var y;return(y=t.node.rows)!=null?y:[]}),o=V(null),s=V([]);let r=null;const a=P(()=>t.node.header.cells.length),l=P(()=>s.value.some(y=>Number.isFinite(y)&&y>0)),u=P(()=>l.value?s.value.map(y=>y>0?{width:`${y}px`}:void 0):[]);Wn("markstreamShowTooltips",P(()=>t.showTooltips)),Wn("markstreamFade",P(()=>t.fade));const c=Ts(()=>t.customId),d=P(()=>!!c.value.text),f=P(()=>!!c.value.paragraph),h=new WeakMap;function m(y){const A=t.fade===!1&&!d.value,b=!f.value,w=h.get(y);if(w?.children===y.children&&w.textFastPath===A&&w.paragraphFastPath===b)return w.info;const _=ww(y.children,b,!0),M={simpleChildren:_,plainText:_&&A?f1(_):null};return h.set(y,{children:y.children,textFastPath:A,paragraphFastPath:b,info:M}),M}function g(y){if(!r)return;y.preventDefault();const A=r.startWidth+r.nextStartWidth,b=Math.min(48,Math.floor(A/2)),w=Math.max(b,Math.min(A-b,Math.round(r.startWidth+y.clientX-r.startX))),_=[...r.widths];_[r.index]=w,_[r.index+1]=A-w,s.value=_}function v(){r&&(window.removeEventListener("pointermove",g),window.removeEventListener("pointerup",v),window.removeEventListener("pointercancel",v),r=null)}return $e(a,()=>{v(),s.value=[]}),ni(v),(y,A)=>(k(),R("div",FCe,[x("table",{ref_key:"tableRef",ref:o,class:De(["table-node",{"table-node--loading":n.value}]),"aria-busy":n.value},[l.value?(k(),R("colgroup",DCe,[(k(!0),R(Be,null,_t(e.node.header.cells,(b,w)=>(k(),R("col",{key:w,style:an(u.value[w])},null,4))),128))])):ne("",!0),x("thead",null,[x("tr",null,[(k(!0),R(Be,null,_t(e.node.header.cells,(b,w)=>(k(),R("th",{key:w,dir:"auto",class:De([b.align==="right"?"text-right":b.align==="center"?"text-center":"text-left"])},[m(b).plainText!==null?(k(),R("span",{key:0,class:"text-node","custom-id":t.customId},$(m(b).plainText),9,NCe)):m(b).simpleChildren?(k(),de(p(d2),{key:1,nodes:m(b).simpleChildren,"custom-id":t.customId,"index-key":`table-th-${t.indexKey}-${w}`},null,8,["nodes","custom-id","index-key"])):(k(),de(p(Wa),{key:2,nodes:b.children,"index-key":`table-th-${t.indexKey}`,"custom-id":t.customId,typewriter:t.typewriter,fade:t.fade,"show-tooltips":t.showTooltips,onCopy:A[0]||(A[0]=_=>y.$emit("copy",_))},null,8,["nodes","index-key","custom-id","typewriter","fade","show-tooltips"])),w(function(M,B){if(B.button!==0)return;const C=(function(){var F;const E=(F=o.value)==null?void 0:F.querySelectorAll("thead th");return Array.from(E??[],D=>Math.round(D.getBoundingClientRect().width))})(),S=C[M],I=C[M+1];S&&I&&(B.preventDefault(),r={index:M,startX:B.clientX,startWidth:S,nextStartWidth:I,widths:C},s.value=C,window.addEventListener("pointermove",g),window.addEventListener("pointerup",v),window.addEventListener("pointercancel",v))})(w,_)},null,40,LCe)):ne("",!0)],2))),128))])]),x("tbody",null,[(k(!0),R(Be,null,_t(i.value,(b,w)=>(k(),R("tr",{key:w},[(k(!0),R(Be,null,_t(b.cells,(_,M)=>(k(),R("td",{key:M,class:De([_.align==="right"?"text-right":_.align==="center"?"text-center":"text-left"]),dir:"auto"},[m(_).plainText!==null?(k(),R("span",{key:0,class:"text-node","custom-id":t.customId},$(m(_).plainText),9,PCe)):m(_).simpleChildren?(k(),de(p(d2),{key:1,nodes:m(_).simpleChildren,"custom-id":t.customId,"index-key":`table-td-${t.indexKey}-${w}-${M}`},null,8,["nodes","custom-id","index-key"])):(k(),de(p(Wa),{key:2,nodes:_.children,"index-key":`table-td-${t.indexKey}`,"custom-id":t.customId,typewriter:t.typewriter,fade:t.fade,"show-tooltips":t.showTooltips,onCopy:A[1]||(A[1]=B=>y.$emit("copy",B))},null,8,["nodes","index-key","custom-id","typewriter","fade","show-tooltips"]))],2))),128))]))),128))])],10,RCe),K(wo,{name:"table-node-fade"},{default:le(()=>[n.value?(k(),R("div",OCe,[On(y.$slots,"loading",{isLoading:n.value},()=>[A[2]||(A[2]=x("span",{class:"table-node__spinner animate-spin","aria-hidden":"true"},null,-1)),A[3]||(A[3]=x("span",{class:"sr-only"},"Loading",-1))],!0)])):ne("",!0)]),_:3})]))}}),[["__scopeId","data-v-39f87b5d"]]);AA.install=e=>{e.component(AA.__name,AA)};const zCe={class:"hr-node"},j9=Ri({},[["render",function(e,t){return k(),R("hr",zCe)}],["__scopeId","data-v-39b2349c"]]);j9.install=e=>{e.component(j9.__name,j9)};const $Ce={class:"unknown-node"},C7=st({__name:"FallbackComponent",props:{node:{}},setup:e=>(t,n)=>(k(),R("div",$Ce,$(e.node.raw),1))}),H9=Ri(st({__name:"VmrContainerNode",props:{node:{},indexKey:{},isDark:{type:Boolean},typewriter:{type:Boolean},fade:{type:Boolean},customId:{}},setup(e){const t=e,n=P(()=>`vmr-container vmr-container-${t.node.name}`),i=Ts(()=>t.customId),o=P(()=>Pt({text:Qo,paragraph:e1,heading:uC,inline_code:qr,link:ya,image:Jf,strong:va,emphasis:ka,strikethrough:Aa,insert:Ua,subscript:Ha,superscript:ja,checkbox:xl,checkbox_input:xl,hardbreak:Xf,math_inline:tc,reference:ga,list:hg,math_block:xq,table:AA},i.value));return(s,r)=>(k(),R("div",fi({class:n.value},e.node.attrs),[(k(!0),R(Be,null,_t(e.node.children,(a,l)=>{return k(),de(jo((u=a.type,o.value[u]||C7)),{key:`${e.indexKey||"vmr-container"}-${l}`,"custom-id":t.customId,node:a,"index-key":`${e.indexKey||"vmr-container"}-${l}`,typewriter:t.typewriter,fade:t.fade},null,8,["custom-id","node","index-key","typewriter","fade"]);var u}),128))],16))}}),[["__scopeId","data-v-911e41c4"]]);H9.install=e=>{e.component(H9.__name,H9)};const jCe=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],TL=[[697,698,"ON"],[706,719,"ON"],[722,735,"ON"],[741,749,"ON"],[751,767,"ON"],[768,879,"NSM"],[884,885,"ON"],[894,894,"ON"],[900,901,"ON"],[903,903,"ON"],[1014,1014,"ON"],[1155,1161,"NSM"],[1418,1418,"ON"],[1421,1422,"ON"],[1423,1423,"ET"],[1424,1424,"R"],[1425,1469,"NSM"],[1470,1470,"R"],[1471,1471,"NSM"],[1472,1472,"R"],[1473,1474,"NSM"],[1475,1475,"R"],[1476,1477,"NSM"],[1478,1478,"R"],[1479,1479,"NSM"],[1480,1535,"R"],[1536,1541,"AN"],[1542,1543,"ON"],[1544,1544,"AL"],[1545,1546,"ET"],[1547,1547,"AL"],[1548,1548,"CS"],[1549,1549,"AL"],[1550,1551,"ON"],[1552,1562,"NSM"],[1563,1610,"AL"],[1611,1631,"NSM"],[1632,1641,"AN"],[1642,1642,"ET"],[1643,1644,"AN"],[1645,1647,"AL"],[1648,1648,"NSM"],[1649,1749,"AL"],[1750,1756,"NSM"],[1757,1757,"AN"],[1758,1758,"ON"],[1759,1764,"NSM"],[1765,1766,"AL"],[1767,1768,"NSM"],[1769,1769,"ON"],[1770,1773,"NSM"],[1774,1775,"AL"],[1776,1785,"EN"],[1786,1808,"AL"],[1809,1809,"NSM"],[1810,1839,"AL"],[1840,1866,"NSM"],[1867,1957,"AL"],[1958,1968,"NSM"],[1969,1983,"AL"],[1984,2026,"R"],[2027,2035,"NSM"],[2036,2037,"R"],[2038,2041,"ON"],[2042,2044,"R"],[2045,2045,"NSM"],[2046,2069,"R"],[2070,2073,"NSM"],[2074,2074,"R"],[2075,2083,"NSM"],[2084,2084,"R"],[2085,2087,"NSM"],[2088,2088,"R"],[2089,2093,"NSM"],[2094,2136,"R"],[2137,2139,"NSM"],[2140,2143,"R"],[2144,2191,"AL"],[2192,2193,"AN"],[2194,2198,"AL"],[2199,2207,"NSM"],[2208,2249,"AL"],[2250,2273,"NSM"],[2274,2274,"AN"],[2275,2306,"NSM"],[2362,2362,"NSM"],[2364,2364,"NSM"],[2369,2376,"NSM"],[2381,2381,"NSM"],[2385,2391,"NSM"],[2402,2403,"NSM"],[2433,2433,"NSM"],[2492,2492,"NSM"],[2497,2500,"NSM"],[2509,2509,"NSM"],[2530,2531,"NSM"],[2546,2547,"ET"],[2555,2555,"ET"],[2558,2558,"NSM"],[2561,2562,"NSM"],[2620,2620,"NSM"],[2625,2626,"NSM"],[2631,2632,"NSM"],[2635,2637,"NSM"],[2641,2641,"NSM"],[2672,2673,"NSM"],[2677,2677,"NSM"],[2689,2690,"NSM"],[2748,2748,"NSM"],[2753,2757,"NSM"],[2759,2760,"NSM"],[2765,2765,"NSM"],[2786,2787,"NSM"],[2801,2801,"ET"],[2810,2815,"NSM"],[2817,2817,"NSM"],[2876,2876,"NSM"],[2879,2879,"NSM"],[2881,2884,"NSM"],[2893,2893,"NSM"],[2901,2902,"NSM"],[2914,2915,"NSM"],[2946,2946,"NSM"],[3008,3008,"NSM"],[3021,3021,"NSM"],[3059,3064,"ON"],[3065,3065,"ET"],[3066,3066,"ON"],[3072,3072,"NSM"],[3076,3076,"NSM"],[3132,3132,"NSM"],[3134,3136,"NSM"],[3142,3144,"NSM"],[3146,3149,"NSM"],[3157,3158,"NSM"],[3170,3171,"NSM"],[3192,3198,"ON"],[3201,3201,"NSM"],[3260,3260,"NSM"],[3276,3277,"NSM"],[3298,3299,"NSM"],[3328,3329,"NSM"],[3387,3388,"NSM"],[3393,3396,"NSM"],[3405,3405,"NSM"],[3426,3427,"NSM"],[3457,3457,"NSM"],[3530,3530,"NSM"],[3538,3540,"NSM"],[3542,3542,"NSM"],[3633,3633,"NSM"],[3636,3642,"NSM"],[3647,3647,"ET"],[3655,3662,"NSM"],[3761,3761,"NSM"],[3764,3772,"NSM"],[3784,3790,"NSM"],[3864,3865,"NSM"],[3893,3893,"NSM"],[3895,3895,"NSM"],[3897,3897,"NSM"],[3898,3901,"ON"],[3953,3966,"NSM"],[3968,3972,"NSM"],[3974,3975,"NSM"],[3981,3991,"NSM"],[3993,4028,"NSM"],[4038,4038,"NSM"],[4141,4144,"NSM"],[4146,4151,"NSM"],[4153,4154,"NSM"],[4157,4158,"NSM"],[4184,4185,"NSM"],[4190,4192,"NSM"],[4209,4212,"NSM"],[4226,4226,"NSM"],[4229,4230,"NSM"],[4237,4237,"NSM"],[4253,4253,"NSM"],[4957,4959,"NSM"],[5008,5017,"ON"],[5120,5120,"ON"],[5760,5760,"WS"],[5787,5788,"ON"],[5906,5908,"NSM"],[5938,5939,"NSM"],[5970,5971,"NSM"],[6002,6003,"NSM"],[6068,6069,"NSM"],[6071,6077,"NSM"],[6086,6086,"NSM"],[6089,6099,"NSM"],[6107,6107,"ET"],[6109,6109,"NSM"],[6128,6137,"ON"],[6144,6154,"ON"],[6155,6157,"NSM"],[6158,6158,"BN"],[6159,6159,"NSM"],[6277,6278,"NSM"],[6313,6313,"NSM"],[6432,6434,"NSM"],[6439,6440,"NSM"],[6450,6450,"NSM"],[6457,6459,"NSM"],[6464,6464,"ON"],[6468,6469,"ON"],[6622,6655,"ON"],[6679,6680,"NSM"],[6683,6683,"NSM"],[6742,6742,"NSM"],[6744,6750,"NSM"],[6752,6752,"NSM"],[6754,6754,"NSM"],[6757,6764,"NSM"],[6771,6780,"NSM"],[6783,6783,"NSM"],[6832,6877,"NSM"],[6880,6891,"NSM"],[6912,6915,"NSM"],[6964,6964,"NSM"],[6966,6970,"NSM"],[6972,6972,"NSM"],[6978,6978,"NSM"],[7019,7027,"NSM"],[7040,7041,"NSM"],[7074,7077,"NSM"],[7080,7081,"NSM"],[7083,7085,"NSM"],[7142,7142,"NSM"],[7144,7145,"NSM"],[7149,7149,"NSM"],[7151,7153,"NSM"],[7212,7219,"NSM"],[7222,7223,"NSM"],[7376,7378,"NSM"],[7380,7392,"NSM"],[7394,7400,"NSM"],[7405,7405,"NSM"],[7412,7412,"NSM"],[7416,7417,"NSM"],[7616,7679,"NSM"],[8125,8125,"ON"],[8127,8129,"ON"],[8141,8143,"ON"],[8157,8159,"ON"],[8173,8175,"ON"],[8189,8190,"ON"],[8192,8202,"WS"],[8203,8205,"BN"],[8207,8207,"R"],[8208,8231,"ON"],[8232,8232,"WS"],[8233,8233,"B"],[8234,8238,"BN"],[8239,8239,"CS"],[8240,8244,"ET"],[8245,8259,"ON"],[8260,8260,"CS"],[8261,8286,"ON"],[8287,8287,"WS"],[8288,8303,"BN"],[8304,8304,"EN"],[8308,8313,"EN"],[8314,8315,"ES"],[8316,8318,"ON"],[8320,8329,"EN"],[8330,8331,"ES"],[8332,8334,"ON"],[8352,8399,"ET"],[8400,8432,"NSM"],[8448,8449,"ON"],[8451,8454,"ON"],[8456,8457,"ON"],[8468,8468,"ON"],[8470,8472,"ON"],[8478,8483,"ON"],[8485,8485,"ON"],[8487,8487,"ON"],[8489,8489,"ON"],[8494,8494,"ET"],[8506,8507,"ON"],[8512,8516,"ON"],[8522,8525,"ON"],[8528,8543,"ON"],[8585,8587,"ON"],[8592,8721,"ON"],[8722,8722,"ES"],[8723,8723,"ET"],[8724,9013,"ON"],[9083,9108,"ON"],[9110,9257,"ON"],[9280,9290,"ON"],[9312,9351,"ON"],[9352,9371,"EN"],[9450,9899,"ON"],[9901,10239,"ON"],[10496,11123,"ON"],[11126,11263,"ON"],[11493,11498,"ON"],[11503,11505,"NSM"],[11513,11519,"ON"],[11647,11647,"NSM"],[11744,11775,"NSM"],[11776,11869,"ON"],[11904,11929,"ON"],[11931,12019,"ON"],[12032,12245,"ON"],[12272,12287,"ON"],[12288,12288,"WS"],[12289,12292,"ON"],[12296,12320,"ON"],[12330,12333,"NSM"],[12336,12336,"ON"],[12342,12343,"ON"],[12349,12351,"ON"],[12441,12442,"NSM"],[12443,12444,"ON"],[12448,12448,"ON"],[12539,12539,"ON"],[12736,12773,"ON"],[12783,12783,"ON"],[12829,12830,"ON"],[12880,12895,"ON"],[12924,12926,"ON"],[12977,12991,"ON"],[13004,13007,"ON"],[13175,13178,"ON"],[13278,13279,"ON"],[13311,13311,"ON"],[19904,19967,"ON"],[42128,42182,"ON"],[42509,42511,"ON"],[42607,42610,"NSM"],[42611,42611,"ON"],[42612,42621,"NSM"],[42622,42623,"ON"],[42654,42655,"NSM"],[42736,42737,"NSM"],[42752,42785,"ON"],[42888,42888,"ON"],[43010,43010,"NSM"],[43014,43014,"NSM"],[43019,43019,"NSM"],[43045,43046,"NSM"],[43048,43051,"ON"],[43052,43052,"NSM"],[43064,43065,"ET"],[43124,43127,"ON"],[43204,43205,"NSM"],[43232,43249,"NSM"],[43263,43263,"NSM"],[43302,43309,"NSM"],[43335,43345,"NSM"],[43392,43394,"NSM"],[43443,43443,"NSM"],[43446,43449,"NSM"],[43452,43453,"NSM"],[43493,43493,"NSM"],[43561,43566,"NSM"],[43569,43570,"NSM"],[43573,43574,"NSM"],[43587,43587,"NSM"],[43596,43596,"NSM"],[43644,43644,"NSM"],[43696,43696,"NSM"],[43698,43700,"NSM"],[43703,43704,"NSM"],[43710,43711,"NSM"],[43713,43713,"NSM"],[43756,43757,"NSM"],[43766,43766,"NSM"],[43882,43883,"ON"],[44005,44005,"NSM"],[44008,44008,"NSM"],[44013,44013,"NSM"],[64285,64285,"R"],[64286,64286,"NSM"],[64287,64296,"R"],[64297,64297,"ES"],[64298,64335,"R"],[64336,64450,"AL"],[64451,64466,"ON"],[64467,64829,"AL"],[64830,64847,"ON"],[64848,64911,"AL"],[64912,64913,"ON"],[64914,64967,"AL"],[64968,64975,"ON"],[64976,65007,"BN"],[65008,65020,"AL"],[65021,65023,"ON"],[65024,65039,"NSM"],[65040,65049,"ON"],[65056,65071,"NSM"],[65072,65103,"ON"],[65104,65104,"CS"],[65105,65105,"ON"],[65106,65106,"CS"],[65108,65108,"ON"],[65109,65109,"CS"],[65110,65118,"ON"],[65119,65119,"ET"],[65120,65121,"ON"],[65122,65123,"ES"],[65124,65126,"ON"],[65128,65128,"ON"],[65129,65130,"ET"],[65131,65131,"ON"],[65136,65278,"AL"],[65279,65279,"BN"],[65281,65282,"ON"],[65283,65285,"ET"],[65286,65290,"ON"],[65291,65291,"ES"],[65292,65292,"CS"],[65293,65293,"ES"],[65294,65295,"CS"],[65296,65305,"EN"],[65306,65306,"CS"],[65307,65312,"ON"],[65339,65344,"ON"],[65371,65381,"ON"],[65504,65505,"ET"],[65506,65508,"ON"],[65509,65510,"ET"],[65512,65518,"ON"],[65520,65528,"BN"],[65529,65533,"ON"],[65534,65535,"BN"],[65793,65793,"ON"],[65856,65932,"ON"],[65936,65948,"ON"],[65952,65952,"ON"],[66045,66045,"NSM"],[66272,66272,"NSM"],[66273,66299,"EN"],[66422,66426,"NSM"],[67584,67870,"R"],[67871,67871,"ON"],[67872,68096,"R"],[68097,68099,"NSM"],[68100,68100,"R"],[68101,68102,"NSM"],[68103,68107,"R"],[68108,68111,"NSM"],[68112,68151,"R"],[68152,68154,"NSM"],[68155,68158,"R"],[68159,68159,"NSM"],[68160,68324,"R"],[68325,68326,"NSM"],[68327,68408,"R"],[68409,68415,"ON"],[68416,68863,"R"],[68864,68899,"AL"],[68900,68903,"NSM"],[68904,68911,"AL"],[68912,68921,"AN"],[68922,68927,"AL"],[68928,68937,"AN"],[68938,68968,"R"],[68969,68973,"NSM"],[68974,68974,"ON"],[68975,69215,"R"],[69216,69246,"AN"],[69247,69290,"R"],[69291,69292,"NSM"],[69293,69311,"R"],[69312,69327,"AL"],[69328,69336,"ON"],[69337,69369,"AL"],[69370,69375,"NSM"],[69376,69423,"R"],[69424,69445,"AL"],[69446,69456,"NSM"],[69457,69487,"AL"],[69488,69505,"R"],[69506,69509,"NSM"],[69510,69631,"R"],[69633,69633,"NSM"],[69688,69702,"NSM"],[69714,69733,"ON"],[69744,69744,"NSM"],[69747,69748,"NSM"],[69759,69761,"NSM"],[69811,69814,"NSM"],[69817,69818,"NSM"],[69826,69826,"NSM"],[69888,69890,"NSM"],[69927,69931,"NSM"],[69933,69940,"NSM"],[70003,70003,"NSM"],[70016,70017,"NSM"],[70070,70078,"NSM"],[70089,70092,"NSM"],[70095,70095,"NSM"],[70191,70193,"NSM"],[70196,70196,"NSM"],[70198,70199,"NSM"],[70206,70206,"NSM"],[70209,70209,"NSM"],[70367,70367,"NSM"],[70371,70378,"NSM"],[70400,70401,"NSM"],[70459,70460,"NSM"],[70464,70464,"NSM"],[70502,70508,"NSM"],[70512,70516,"NSM"],[70587,70592,"NSM"],[70606,70606,"NSM"],[70608,70608,"NSM"],[70610,70610,"NSM"],[70625,70626,"NSM"],[70712,70719,"NSM"],[70722,70724,"NSM"],[70726,70726,"NSM"],[70750,70750,"NSM"],[70835,70840,"NSM"],[70842,70842,"NSM"],[70847,70848,"NSM"],[70850,70851,"NSM"],[71090,71093,"NSM"],[71100,71101,"NSM"],[71103,71104,"NSM"],[71132,71133,"NSM"],[71219,71226,"NSM"],[71229,71229,"NSM"],[71231,71232,"NSM"],[71264,71276,"ON"],[71339,71339,"NSM"],[71341,71341,"NSM"],[71344,71349,"NSM"],[71351,71351,"NSM"],[71453,71453,"NSM"],[71455,71455,"NSM"],[71458,71461,"NSM"],[71463,71467,"NSM"],[71727,71735,"NSM"],[71737,71738,"NSM"],[71995,71996,"NSM"],[71998,71998,"NSM"],[72003,72003,"NSM"],[72148,72151,"NSM"],[72154,72155,"NSM"],[72160,72160,"NSM"],[72193,72198,"NSM"],[72201,72202,"NSM"],[72243,72248,"NSM"],[72251,72254,"NSM"],[72263,72263,"NSM"],[72273,72278,"NSM"],[72281,72283,"NSM"],[72330,72342,"NSM"],[72344,72345,"NSM"],[72544,72544,"NSM"],[72546,72548,"NSM"],[72550,72550,"NSM"],[72752,72758,"NSM"],[72760,72765,"NSM"],[72850,72871,"NSM"],[72874,72880,"NSM"],[72882,72883,"NSM"],[72885,72886,"NSM"],[73009,73014,"NSM"],[73018,73018,"NSM"],[73020,73021,"NSM"],[73023,73029,"NSM"],[73031,73031,"NSM"],[73104,73105,"NSM"],[73109,73109,"NSM"],[73111,73111,"NSM"],[73459,73460,"NSM"],[73472,73473,"NSM"],[73526,73530,"NSM"],[73536,73536,"NSM"],[73538,73538,"NSM"],[73562,73562,"NSM"],[73685,73692,"ON"],[73693,73696,"ET"],[73697,73713,"ON"],[78912,78912,"NSM"],[78919,78933,"NSM"],[90398,90409,"NSM"],[90413,90415,"NSM"],[92912,92916,"NSM"],[92976,92982,"NSM"],[94031,94031,"NSM"],[94095,94098,"NSM"],[94178,94178,"ON"],[94180,94180,"NSM"],[113821,113822,"NSM"],[113824,113827,"BN"],[117760,117973,"ON"],[118e3,118009,"EN"],[118010,118012,"ON"],[118016,118451,"ON"],[118458,118480,"ON"],[118496,118512,"ON"],[118528,118573,"NSM"],[118576,118598,"NSM"],[119143,119145,"NSM"],[119155,119162,"BN"],[119163,119170,"NSM"],[119173,119179,"NSM"],[119210,119213,"NSM"],[119273,119274,"ON"],[119296,119361,"ON"],[119362,119364,"NSM"],[119365,119365,"ON"],[119552,119638,"ON"],[120513,120513,"ON"],[120539,120539,"ON"],[120571,120571,"ON"],[120597,120597,"ON"],[120629,120629,"ON"],[120655,120655,"ON"],[120687,120687,"ON"],[120713,120713,"ON"],[120745,120745,"ON"],[120771,120771,"ON"],[120782,120831,"EN"],[121344,121398,"NSM"],[121403,121452,"NSM"],[121461,121461,"NSM"],[121476,121476,"NSM"],[121499,121503,"NSM"],[121505,121519,"NSM"],[122880,122886,"NSM"],[122888,122904,"NSM"],[122907,122913,"NSM"],[122915,122916,"NSM"],[122918,122922,"NSM"],[123023,123023,"NSM"],[123184,123190,"NSM"],[123566,123566,"NSM"],[123628,123631,"NSM"],[123647,123647,"ET"],[124140,124143,"NSM"],[124398,124399,"NSM"],[124643,124643,"NSM"],[124646,124646,"NSM"],[124654,124655,"NSM"],[124661,124661,"NSM"],[124928,125135,"R"],[125136,125142,"NSM"],[125143,125251,"R"],[125252,125258,"NSM"],[125259,126063,"R"],[126064,126143,"AL"],[126144,126207,"R"],[126208,126287,"AL"],[126288,126463,"R"],[126464,126703,"AL"],[126704,126705,"ON"],[126706,126719,"AL"],[126720,126975,"R"],[126976,127019,"ON"],[127024,127123,"ON"],[127136,127150,"ON"],[127153,127167,"ON"],[127169,127183,"ON"],[127185,127221,"ON"],[127232,127242,"EN"],[127243,127247,"ON"],[127279,127279,"ON"],[127338,127343,"ON"],[127405,127405,"ON"],[127584,127589,"ON"],[127744,128728,"ON"],[128732,128748,"ON"],[128752,128764,"ON"],[128768,128985,"ON"],[128992,129003,"ON"],[129008,129008,"ON"],[129024,129035,"ON"],[129040,129095,"ON"],[129104,129113,"ON"],[129120,129159,"ON"],[129168,129197,"ON"],[129200,129211,"ON"],[129216,129217,"ON"],[129232,129240,"ON"],[129280,129623,"ON"],[129632,129645,"ON"],[129648,129660,"ON"],[129664,129674,"ON"],[129678,129734,"ON"],[129736,129736,"ON"],[129741,129756,"ON"],[129759,129770,"ON"],[129775,129784,"ON"],[129792,129938,"ON"],[129940,130031,"ON"],[130032,130041,"EN"],[130042,130042,"ON"],[131070,131071,"BN"],[196606,196607,"BN"],[262142,262143,"BN"],[327678,327679,"BN"],[393214,393215,"BN"],[458750,458751,"BN"],[524286,524287,"BN"],[589822,589823,"BN"],[655358,655359,"BN"],[720894,720895,"BN"],[786430,786431,"BN"],[851966,851967,"BN"],[917502,917759,"BN"],[917760,917999,"NSM"],[918e3,921599,"BN"],[983038,983039,"BN"],[1048574,1048575,"BN"],[1114110,1114111,"BN"]];function HCe(e){if(e<=255)return jCe[e];let t=0,n=TL.length-1;for(;t<=n;){const i=t+n>>1,o=TL[i];if(eo[1]))return o[2];t=i+1}}return"L"}const UCe=/[ \t\n\r\f]+/g,WCe=/[\t\n\r\f]| {2,}|^ | $/;let K8=null;const QCe=new RegExp("\\p{Script=Arabic}","u"),gh=new RegExp("\\p{M}","u"),GE=new RegExp("\\p{Nd}","u");function BL(e){return QCe.test(e)}function FL(e){return e>=19968&&e<=40959||e>=13312&&e<=19903||e>=131072&&e<=173791||e>=173824&&e<=177983||e>=177984&&e<=178207||e>=178208&&e<=183983||e>=183984&&e<=191471||e>=191472&&e<=192093||e>=194560&&e<=195103||e>=196608&&e<=201551||e>=201552&&e<=205743||e>=205744&&e<=210041||e>=63744&&e<=64255||e>=12288&&e<=12351||e>=12352&&e<=12447||e>=12448&&e<=12543||e>=12592&&e<=12687||e>=44032&&e<=55215||e>=65280&&e<=65519}function Oc(e){for(let t=0;t=55296&&n<=56319&&t+1=56320&&i<=57343){if(FL(i-56320+(n-55296<<10)+65536))return!0;t++;continue}}if(FL(n))return!0}}return!1}const VCe=new Set([" "," ","⁠","\uFEFF"]),GCe=new Set(["-","‐","–","—"]);function _q(e,t){return!((function(n){const i=yA(n);return i!==null&&VCe.has(i)})(e)||t&&((function(n){const i=yA(n);return i!==null&&(qE.has(i)||h1.has(i))})(e)||(function(n){const i=yA(n);return i!==null&&GCe.has(i)})(e)))}const qE=new Set([",",".","!",":",";","?","、","。","・",")","〕","〉","》","」","』","】","〗","〙","〛","ー","々","〻","ゝ","ゞ","ヽ","ヾ"]),cC=new Set(['"',"(","[","{","¡","¿","“","‘","‚","„","«","‹","⸘","(","〔","〈","《","「","『","【","〖","〘","〚"]),KE=new Set(["'","’"]),h1=new Set([".",",","!","?",":",";","،","؛","؟","।","॥","၊","။","၌","၍","၏",")","]","}","%",'"',"”","’","»","›","…"]),qCe=new Set([":",".","،","؛"]),KCe=new Set(["၏"]),ZCe=new Set(["”","’","»","›","」","』","】","》","〉","〕",")"]);function YCe(e){if(ZE(e))return!0;let t=!1;for(const n of e)if(h1.has(n)||Sw(n))t=!0;else if(!t||!gh.test(n))return!1;return t}function JCe(e){for(const t of e)if(!qE.has(t)&&!h1.has(t))return!1;return e.length>0}function XCe(e){if(ZE(e))return!0;for(const t of e)if(!(cC.has(t)||KE.has(t)||gh.test(t)||Sw(t)))return!1;return e.length>0}function ZE(e){let t=!1;for(const n of e)if(n!=="\\"&&!gh.test(n)){if(!(cC.has(n)||h1.has(n)||KE.has(n)))return!1;t=!0}return t}function Cw(e,t){const n=t-1;if(n<=0)return Math.max(n,0);const i=e.charCodeAt(n);if(i<56320||i>57343)return n;const o=n-1;if(o<0)return n;const s=e.charCodeAt(o);return s>=55296&&s<=56319?o:n}function yA(e){if(e.length===0)return null;const t=Cw(e,e.length);return e.slice(t)}const e3e=[36,37,43,43,92,92,162,165,176,177,1423,1423,1545,1547,1642,1642,2046,2047,2546,2547,2553,2555,2801,2801,3065,3065,3449,3449,3647,3647,6107,6107,8240,8247,8279,8279,8352,8399,8451,8451,8457,8457,8470,8470,8722,8723,43064,43064,65020,65020,65129,65130,65284,65285,65504,65505,65509,65510,73693,73696,123647,123647,126124,126124,126128,126128];function Sw(e){const t=e.codePointAt(0);return t!==void 0&&(function(n,i){for(let o=0;o=i[o]&&n<=i[o+1])return!0;return!1})(t,e3e)}function t3e(e){const t=(function(n){for(const i of n)if(!gh.test(i))return i;return null})(e);return t!==null&&GE.test(t)}function n3e(e){const t=Array.from(e);let n=t.length;for(;n>0;){const i=t[n-1];if(gh.test(i))n--;else{if(!cC.has(i)&&!KE.has(i))break;n--}}return n<=0||n===t.length?null:{head:t.slice(0,n).join(""),tail:t.slice(n).join("")}}function i3e(e,t,n){return n!=="text"||t||e.length!==1||e==="-"||e==="—"?null:e}function RL(e,t,n,i){const o=t[i],s=e[i];if(o==null)return s;const r=n[i];if(s.length===r)return s;const a=o.repeat(r);return e[i]=a,a}function DL(e,t){return e&&t!==null&&qCe.has(t)}function o3e(e){const t=yA(e);return t!==null&&KCe.has(t)}function s3e(e){if(e.length<2||e[0]!==" ")return null;const t=e.slice(1);return new RegExp("^\\p{M}+$","u").test(t)?{space:" ",marks:t}:null}function S7(e){let t=e.length;for(;t>0;){const n=Cw(e,t),i=e.slice(n,t);if(ZCe.has(i))return!0;if(!h1.has(i))return!1;t=n}return!1}function r3e(e,t){if(t.preserveOrdinarySpaces||t.preserveHardBreaks){if(e===" ")return"preserved-space";if(e===" ")return"tab";if(t.preserveHardBreaks&&e===` -`)return"hard-break"}return e===" "?"space":e===" "||e===" "||e==="⁠"||e==="\uFEFF"?"glue":e==="​"?"zero-width-break":e==="­"?"soft-hyphen":"text"}const a3e=/[\x20\t\n\xA0\xAD\u200B\u202F\u2060\uFEFF]/;function Nu(e){return e.length===1?e[0]:e.join("")}function l3e(e,t){const n=[];for(let i=e.length-1;i>=0;i--)n.push(e[i]);return n.push(t),Nu(n)}function u3e(e,t,n,i){if(!a3e.test(e))return[{text:e,isWordLike:t,kind:"text",start:n}];const o=[];let s=null,r=[],a=n,l=!1,u=0;for(const c of e){const d=r3e(c,i),f=d==="text"&&t;s===null||d!==s||f!==l?(s!==null&&o.push({text:Nu(r),isWordLike:l,kind:s,start:a}),s=d,r=[c],a=n+u,l=f,u+=c.length):(r.push(c),u+=c.length)}return s!==null&&o.push({text:Nu(r),isWordLike:l,kind:s,start:a}),o}function Z8(e){return e==="space"||e==="preserved-space"||e==="zero-width-break"||e==="hard-break"}const c3e=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function d3e(e,t){const n=e.texts[t];return!!n.startsWith("www.")||c3e.test(n)&&t+1=33&&n<=47&&n!==45||n>=58&&n<=64&&n!==63||n>=91&&n<=96||n>=123&&n<=126})(t):!g3e.has(e)&&!m3e.test(e)&&p3e.test(e)}function NL(e){let t=!1;for(const n of e)if(!gh.test(n)){if(!Eq(n))return!1;t=!0}return t}function v3e(e,t,n,i){const o=!t&&NL(e),s=!i&&NL(n),r=(function(l){const u=(function(c){for(let d=c.length;d>0;){const f=Cw(c,d),h=c.slice(f,d);if(!gh.test(h))return h;d=f}return null})(l);return u!==null&&Sw(u)})(e),a=(t||r)&&(function(l){for(let u=l.length;u>0;){const c=Cw(l,u),d=l.slice(c,u);if(!gh.test(d))return Eq(d)||Sw(d);u=c}return!1})(e);return!!(o||s||a)&&!Oc(e)&&!Oc(n)&&(t||o||r)&&(i||s)}function LL(e){for(const t of e)if(GE.test(t))return!0;return!1}function U9(e){if(e.length===0)return!1;for(const t of e)if(!GE.test(t)&&!h3e.has(t))return!1;return!0}function A3e(e,t){if(e.len===0)return[];if(!t.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:e.len,consumedEndSegmentIndex:e.len}];const n=[];let i=0;for(let o=0;o0&&u.charCodeAt(u.length-1)===32&&(u=u.slice(0,-1)),u})(e);if(s.length===0)return{normalized:s,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};const r=(function(l,u,c){var d,f,h;const m=(K8===null&&(K8=new Intl.Segmenter(void 0,{granularity:"word"})),K8);let g=0;const v=[],y=[],A=[],b=[],w=[],_=[],M=[],B=[],C=[],S=[],I=[],F=[];for(const T of m.segment(l))for(const N of u3e(T.segment,(d=T.isWordLike)!=null&&d,T.index,c)){let L=function(){_[X]!==null&&(y[X]=[RL(v,_,M,X)],_[X]=null),y[X].push(N.text),A[X]=A[X]||N.isWordLike,B[X]=B[X]||Q,C[X]=C[X]||Y,S[X]=Z,I[X]=ee,F[X]=DL(C[X],W)};const H=N.kind==="text",O=i3e(N.text,N.isWordLike,N.kind),Q=Oc(N.text),Y=BL(N.text),W=yA(N.text),Z=S7(N.text),ee=o3e(N.text),X=g-1;u.carryCJKAfterClosingQuote&&H&&g>0&&b[X]==="text"&&Q&&B[X]&&S[X]||H&&g>0&&b[X]==="text"&&JCe(N.text)&&B[X]||H&&g>0&&b[X]==="text"&&I[X]?L():H&&g>0&&b[X]==="text"&&N.isWordLike&&Y&&F[X]?(L(),A[X]=!0):O!==null&&g>0&&b[X]==="text"&&_[X]===O?M[X]=((f=M[X])!=null?f:1)+1:H&&!N.isWordLike&&g>0&&b[X]==="text"&&!B[X]&&(YCe(N.text)||N.text==="-"&&A[X])?L():(v[g]=N.text,y[g]=[N.text],A[g]=N.isWordLike,b[g]=N.kind,w[g]=N.start,_[g]=O,M[g]=O===null?0:1,B[g]=Q,C[g]=Y,S[g]=Z,I[g]=ee,F[g]=DL(Y,W),g++)}for(let T=0;Tnull);let D=-1;for(let T=g-1;T>=0;T--){const N=v[T];if(N.length!==0){if(b[T]==="text"&&!A[T]&&D>=0&&b[D]==="text"&&(XCe(N)||N==="-"&&t3e(v[D]))){const L=(h=E[D])!=null?h:[];L.push(N),E[D]=L,w[D]=w[T],v[T]="";continue}D=T}}for(let T=0;TQ+1){N.push(Nu(ee)),L.push(ge),H.push("text"),O.push(T.starts[Q]),Q=X;continue}}N.push(Y),L.push(Z),H.push(W),O.push(T.starts[Q]),Q++}return{len:N.length,texts:N,isWordLike:L,kinds:H,starts:O}})((function(T){const N=[],L=[],H=[],O=[];for(let Q=0;Q1;for(let ee=0;ee=T.len||Z8(T.kinds[W]))continue;const Z=[],ee=T.starts[W];let X=W;for(;X0&&(N.push(Nu(Z)),L.push(!0),H.push("text"),O.push(ee),Q=X-1)}return{len:N.length,texts:N,isWordLike:L,kinds:H,starts:O}})((function(T){const N=T.texts.slice(),L=T.isWordLike.slice(),H=T.kinds.slice(),O=T.starts.slice();for(let Y=0;Y=0&&!_q(u.texts[b-1],c)&&A(b),g<0&&(g=b),v=v||Oc(w))}return A(u.len),{len:d.length,texts:d,isWordLike:f,kinds:h,starts:m}})(s,r,t.breakKeepAllAfterPunctuation):r;return Pt({normalized:s,chunks:A3e(a,o)},a)}let sm=null;const PL=new Map;let rm=null;const k3e=new RegExp("\\p{Emoji_Presentation}","u"),b3e=/[\p{Emoji_Presentation}\p{Extended_Pictographic}\p{Regional_Indicator}\uFE0F\u20E3]/u;let Y8=null;const OL=new Map;function x7(){if(sm!==null)return sm;if(typeof OffscreenCanvas<"u")return sm=new OffscreenCanvas(1,1).getContext("2d"),sm;if(typeof document<"u")return sm=document.createElement("canvas").getContext("2d"),sm;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function kf(e,t){let n=t.get(e);return n===void 0&&(n={width:x7().measureText(e).width,containsCJK:Oc(e)},t.set(e,n)),n}function xw(){if(rm!==null)return rm;if(typeof navigator>"u")return rm={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,breakKeepAllAfterPunctuation:!0,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},rm;const e=navigator.userAgent,t=navigator.vendor==="Apple Computer, Inc."&&e.includes("Safari/")&&!e.includes("Chrome/")&&!e.includes("Chromium/")&&!e.includes("CriOS/")&&!e.includes("FxiOS/")&&!e.includes("EdgiOS/"),n=e.includes("Chrome/")||e.includes("Chromium/")||e.includes("CriOS/")||e.includes("Edg/");return rm={lineFitEpsilon:t?1/64:.005,carryCJKAfterClosingQuote:n,breakKeepAllAfterPunctuation:!t,preferPrefixWidthsForBreakableRuns:t,preferEarlySoftHyphenBreak:t},rm}function Iq(){return Y8===null&&(Y8=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Y8}function w3e(e){return k3e.test(e)||e.includes("️")}function ap(e,t,n){return n===0?t.width:t.width-(function(i,o){return o.emojiCount===void 0&&(o.emojiCount=(function(s){let r=0;const a=Iq();for(const l of a.segment(s))w3e(l.segment)&&r++;return r})(i)),o.emojiCount})(e,t)*n}function C3e(e){return e==="space"||e==="zero-width-break"||e==="soft-hyphen"}function zL(e){return e==="space"||e==="preserved-space"||e==="tab"||e==="zero-width-break"||e==="soft-hyphen"}function $L(e,t,n=e.widths.length){for(;t0?e.letterSpacing:0}function YE(e,t){return t===0?0:e+t}function _3e(e,t,n,i,o){return YE(i,t==="tab"?o+(function(s,r){return s.letterSpacing!==0&&s.spacingGraphemeCounts[r]>0?s.letterSpacing:0})(e,n):e.lineEndFitAdvances[n])}function jL(e,t,n,i){return YE(i,t==="tab"?0:e.lineEndFitAdvances[n])}function HL(e,t,n,i,o){return YE(i,t==="tab"?o:e.lineEndPaintAdvances[n])}function E3e(e,t,n){return e.letterSpacing!==0&&t?n+e.letterSpacing:n}function I3e(e,t){return e.letterSpacing===0?t:t+e.letterSpacing}function wk(e,t,n){let i=t;for(;iL){if(me!==null&&oe>G){X(ie,oe,ae),Ae=oe,ve=wk(me,ve,Ae+1),oe=-1,ae=0;continue}X(),q(ie,Ae,ue)}else O+=ue,Y=ie,W=Ae+1;else q(ie,Ae,ue);const Se=Ae+1;me!==null&&me[ve]===Se&&(oe=Se,ae=O,ve++),Ae++}Q&&Y===ie&&W===fe.length&&(Y=ie+1,W=0)}let te=0;for(;te=j.length)));){const ie=j[te],G=zL(z[te]);if(Q)if(O+ie>L){if(G){pe(te,ie),X(te+1,0,O-ie),te++;continue}if(Z>=0){if(Y>Z||Y===Z&&W>0){X();continue}X(Z,0,ee);continue}if(ie>L&&T[te]!==null){X(),we(te,0),te++;continue}X()}else pe(te,ie),G&&(Z=te+1,ee=O-ie),te++;else ie>L&&T[te]!==null?we(te,0):ge(te,ie),G&&(Z=te+1,ee=O-ie),te++}return Q&&X(),H})(n,i);const{widths:o,kinds:s,breakableFitAdvances:r,breakablePreferredBreaks:a,discretionaryHyphenWidth:l,chunks:u}=n;if(o.length===0||u.length===0)return 0;const c=xw(),d=i+c.lineFitEpsilon;let f=0,h=0,m=!1,g=0,v=0,y=-1,A=0,b=null;function w(){y=-1,A=0,b=null}function _(E=g,D=v,j){f++,h=0,m=!1,w()}function M(E,D){m=!0,g=E+1,v=0,h=D}function B(E,D,j){m=!0,g=E,v=D+1,h=j}function C(E,D){m?(h+=D,g=E+1,v=0):M(E,D)}function S(E,D,j,z,T,N){if(!D)return;const L=jL(n,E,j,T);HL(n,E,j,T,z),y=j+1,A=h-N+L,b=E}function I(E,D){var j;const z=r[E],T=(j=a[E])!=null?j:null;let N=T===null?-1:wk(T,0,D+1),L=-1,H=D;for(;Hd){if(T!==null&&L>D){_(E,L),H=L,N=wk(T,N,H+1),L=-1;continue}_(),B(E,H,O)}else h=W,g=E,v=H+1}else B(E,H,O);const Q=H+1;T!==null&&T[N]===Q&&(L=Q,N++),H++}m&&g===E&&v===z.length&&(g=E+1,v=0)}function F(E){f++,w()}for(let E=0;E=D.endSegmentIndex)));){const z=s[j],T=zL(z),N=x3e(n,m,j),L=z==="tab"?S3e(h+N,n.tabStopAdvance):o[j],H=N+L,O=_3e(n,z,j,N,L);if(z!=="soft-hyphen")if(m){if(h+O>d){const Q=h+jL(n,z,j,N);if(HL(n,z,j,N,L),b==="soft-hyphen"&&c.preferEarlySoftHyphenBreak&&A<=d){_(y,0);continue}if(T&&Q<=d){C(j,H),_(j+1,0),j++;continue}if(y>=0&&A<=d){if(g>y||g===y&&v>0){_();continue}const Y=y;_(Y,0),j=Y;continue}if(O>d&&r[j]!==null){_(),I(j,0),j++;continue}_();continue}C(j,H),S(z,T,j,L,N,H),j++}else O>d&&r[j]!==null?I(j,0):M(j,L),S(z,T,j,L,N,H),j++;else m&&(g=j+1,v=0,y=j+1,A=h+l,b=z),j++}m&&(D.consumedEndSegmentIndex,_(D.consumedEndSegmentIndex,0))}return f})(e,t)}let J8=null;function JE(){return J8===null&&(J8=new Intl.Segmenter(void 0,{granularity:"grapheme"})),J8}function T3e(e,t){const n=[];let i=[],o=0,s=!1,r=!1,a=!1;function l(){i.length!==0&&(n.push({text:i.length===1?i[0]:i.join(""),start:o}),i=[],s=!1,r=!1,a=!1)}function u(d,f,h){i=[d],o=f,s=h,r=S7(d),a=cC.has(d)}function c(d,f){i.push(d),s=s||f;const h=S7(d);r=d.length===1&&h1.has(d)&&r||h,a=!1}for(const d of JE().segment(e)){const f=d.segment,h=Oc(f);i.length!==0?a||qE.has(f)||h1.has(f)||t.carryCJKAfterClosingQuote&&h&&r?c(f,h):s||h?(l(),u(f,d.index,h)):c(f,h):u(f,d.index,h)}return l(),n}function B3e(e,t,n){if(t.length<=1)return t;const i=[];let o=-1,s=!1;function r(a){if(!(o<0)){if(s)o+1===a?i.push(t[o]):(function(l,u){const c=t[l].start,d=u=0&&!_q(t[a-1].text,n)&&r(a),o<0&&(o=a),s=s||Oc(l.text)}return r(t.length),i}function UL(e,t){if(t==="zero-width-break"||t==="soft-hyphen"||t==="hard-break")return 0;if(t==="tab")return 1;let n=0;const i=JE();for(const o of i.segment(e))n++;return n}function F3e(e){return e==="-"||e==="֊"||e==="‐"||e==="‒"||e==="–"||e==="—"}function R3e(e,t,n,i,o){const s=xw(),{cache:r,emojiCorrection:a}=(function(F,E){x7().font=F;const D=(function(T){let N=PL.get(T);return N||(N=new Map,PL.set(T,N)),N})(F),j=(function(T){const N=T.match(/(\d+(?:\.\d+)?)\s*px/);return N?parseFloat(N[1]):16})(F),z=E?(function(T,N){let L=OL.get(T);if(L!==void 0)return L;const H=x7();H.font=T;const O=H.measureText("😀").width;if(L=0,O>N+.5&&typeof document<"u"&&document.body!==null){const Q=document.createElement("span");Q.style.font=T,Q.style.display="inline-block",Q.style.visibility="hidden",Q.style.position="absolute",Q.textContent="😀",document.body.appendChild(Q);const Y=Q.getBoundingClientRect().width;document.body.removeChild(Q),O-Y>.5&&(L=O-Y)}return OL.set(T,L),L})(F,j):0;return{cache:D,fontSize:j,emojiCorrection:z}})(t,(l=e.normalized,b3e.test(l)));var l;const u=ap("-",kf("-",r),a)+(o===0?0:2*o),c=8*ap(" ",kf(" ",r),a),d=o!==0;if(e.len===0)return{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],breakablePreferredBreaks:[],letterSpacing:0,spacingGraphemeCounts:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[]};const f=[],h=[],m=[],g=[];let v=e.chunks.length<=1&&!d;const y=null,A=[],b=[],w=[],_=null,M=Array.from({length:e.len});function B(F,E,D,j,z,T,N,L,H){z!=="text"&&z!=="space"&&z!=="zero-width-break"&&(v=!1),f.push(E),h.push(D),m.push(j),g.push(z),A.push(N),b.push(L),d&&w.push(H)}function C(F,E,D,j,z){const T=kf(F,r),N=d?UL(F,E):0,L=(function(Y,W,Z){return W>1?Y+(W-1)*Z:Y})(ap(F,T,a),N,o),H=E==="space"||E==="preserved-space"||E==="zero-width-break"?0:L,O=H===0?0:H+(N>0?o:0),Q=E==="space"||E==="zero-width-break"?0:L;if(z&&j&&F.length>1){let Y="sum-graphemes";o!==0?Y="segment-prefixes":U9(F)?Y="pair-context":s.preferPrefixWidthsForBreakableRuns&&(Y="segment-prefixes");const W=(function(ee,X,ge,q,pe){if(X.breakableFitAdvances!==void 0&&X.breakableFitMode===pe)return X.breakableFitAdvances;X.breakableFitMode=pe;const we=Iq(),te=[];for(const fe of we.segment(ee))te.push(fe.segment);if(te.length<=1)return X.breakableFitAdvances=null,X.breakableFitAdvances;if(pe==="sum-graphemes"){const fe=[];for(const me of te){const ve=kf(me,ge);fe.push(ap(me,ve,q))}return X.breakableFitAdvances=fe,X.breakableFitAdvances}if(pe==="pair-context"||te.length>96){const fe=[];let me=null,ve=0;for(const oe of te){const ae=ap(oe,kf(oe,ge),q);if(me===null)fe.push(ae);else{const Ae=me+oe,ue=kf(Ae,ge);fe.push(ap(Ae,ue,q)-ve)}me=oe,ve=ae}return X.breakableFitAdvances=fe,X.breakableFitAdvances}const ie=[];let G="",J=0;for(const fe of te){G+=fe;const me=ap(G,kf(G,ge),q);ie.push(me-J),J=me}return X.breakableFitAdvances=ie,X.breakableFitAdvances})(F,T,r,a,Y),Z=W===null||i==="keep-all"?null:(function(ee){if(!/[-\u058A\u2010\u2012\u2013\u2014]/u.test(ee))return null;const X=[];let ge=0;for(const q of JE().segment(ee))ge++,F3e(q.segment)&&X.push(ge);return X.length===0?null:X})(F);return void B(F,L,O,Q,E,D,W,Z,N)}B(F,L,O,Q,E,D,null,null,N)}for(let F=0;F=55296&&ee<=56319&&Z+1=56320&&pe<=57343&&(X=pe-56320+(ee-55296<<10)+65536,ge=2)}const q=HCe(X);q!=="R"&&q!=="AL"&&q!=="AN"||(L=!0);for(let pe=0;pe=0&&N[ee]==="ET";ee--)N[ee]="EN";for(ee=Z+1;ee0?N[Z-1]:Y)!=="L"?"R":"L";if(X===((ee{const e=globalThis;if(e[X8])return e[X8];const t={configs:{},controllers:{},revision:qa(0),preparedCache:new Map,blockEstimateCache:new Map};return e[X8]=t,t})();let nv=null;const e5=Os.revision;function WL(e){var t;return e&&(t=Os.configs[e])!=null?t:null}function QL(e,t){const n=Number.parseFloat(String(e??""));return Number.isFinite(n)&&n>0?n:t}function N3e(e){return e?.type==="text"||e?.type==="emoji"||e?.type==="hardbreak"}function t5(e){var t,n,i;if(!Array.isArray(e)||e.length===0)return null;let o="";for(const s of e){if(!N3e(s))return null;s.type==="text"?o+=String((t=s.content)!=null?t:""):s.type==="emoji"?o+=String((i=(n=s.name)!=null?n:s.raw)!=null?i:""):s.type==="hardbreak"&&(o+=` -`)}return o.length>0?o:null}function n5(e,t,n){var i,o;if(!e||!Number.isFinite(t)||t<=0||!(function(){var s;if(nv!=null)return nv;if(typeof document>"u")return!1;try{const r=document.createElement("canvas");return nv=!!((s=r.getContext)!=null&&s.call(r,"2d")),nv}catch{return nv=!1,!1}})())return null;try{const s=Math.round(100*t)/100,r=[(i=n.whiteSpace)!=null?i:"pre-wrap",n.font,n.lineHeight,n.wrapperOverhead,n.widthAdjustment,s,e].join("\0"),a=Os.blockEstimateCache.get(r);if(a)return Os.blockEstimateCache.delete(r),Os.blockEstimateCache.set(r,a),{kind:"simple-text",height:a.height,contentHeight:a.contentHeight};const l=(o=n.whiteSpace)!=null?o:"pre-wrap",u=(function(h,m,g){const v=`${g}\0${m}\0${h}`,y=Os.preparedCache.get(v);if(y)return Os.preparedCache.delete(v),Os.preparedCache.set(v,y),y.prepared;const A=(function(b,w,_){return(function(M,B,C,S){var I,F;const E=(I=S?.wordBreak)!=null?I:"normal",D=(F=S?.letterSpacing)!=null?F:0;return R3e(y3e(M,xw(),S?.whiteSpace,E),B,!1,E,D)})(b,w,0,_)})(h,m,{whiteSpace:g});for(Os.preparedCache.set(v,{prepared:A});Os.preparedCache.size>240;){const b=Os.preparedCache.keys().next().value;if(!b)break;Os.preparedCache.delete(b)}return A})(e,n.font,l),c=(function(h,m,g){const v=M3e(h,m);return{lineCount:v,height:v*g}})(u,Math.max(24,s-n.widthAdjustment),n.lineHeight),d=Math.max(n.lineHeight,c.height),f=Math.max(n.lineHeight,Math.round(d+n.wrapperOverhead));for(Os.blockEstimateCache.set(r,{height:f,contentHeight:Math.round(d)});Os.blockEstimateCache.size>4e3;){const h=Os.blockEstimateCache.keys().next().value;if(!h)break;Os.blockEstimateCache.delete(h)}return{kind:"simple-text",height:f,contentHeight:Math.round(d)}}catch{return null}}function Mq(e,t,n){var i,o;if(!n||!e||!Number.isFinite(t)||t<=0)return null;if(e.type==="paragraph"){const s=t5(e.children);return s&&n.paragraph?n5(s,t,n.paragraph):null}if(e.type==="heading"){const s=Number(e.level||0),r=t5(e.children),a=n.headings[s];return r&&a?n5(r,t,a):null}if(e.type==="list_item"){const s=Array.isArray(e.children)?e.children:[];if(s.length!==1||((i=s[0])==null?void 0:i.type)!=="paragraph"||!n.listItem)return null;const r=t5((o=s[0])==null?void 0:o.children);return r?n5(r,t,n.listItem):null}if(e.type==="list"){const s=Array.isArray(e.items)?e.items:[];if(!s.length)return null;let r=Math.max(0,n.listWrapperOverhead);for(const a of s){const l=Mq(a,t,n);if(!l)return null;r+=l.height}return{kind:"simple-text",height:Math.max(1,Math.round(r)),contentHeight:Math.max(1,Math.round(r))}}return null}function iv(e){if(!e)return 1;const t=String(e).split(/\r?\n/);return Math.max(1,t.length)}function lp(e,t){const n=String(e??"");return t?n:n.replace(/\r\n$|\n$|\r$/,"")}function i5(e,t,n=0){return e.diff?VE(t??{},n)?(function(i){const o=lp(i.raw);if(o){const s=o.split(/\r?\n/);return i.originalCode!=null||i.updatedCode!=null?Math.max(1,s.filter(r=>!D3e.some(a=>r.startsWith(a))).length):Math.max(1,s.length)}return iv(lp(i.originalCode))+iv(lp(i.updatedCode))})(e):(function(i){const o=i.originalCode,s=i.updatedCode;if(o!=null||s!=null)return Math.max(iv(lp(o)),iv(lp(s)));const r=lp(i.code).split(/\r?\n/);let a=0,l=0;for(const u of r)u.startsWith("+")&&!u.startsWith("+++")?l++:u.startsWith("-")&&!u.startsWith("---")?a++:(a++,l++);return Math.max(1,a,l)})(e):iv(lp(e.code,e.loading===!0))}function L3e(e){return e?`${e.fontStyle||"normal"} ${e.fontWeight||"400"} ${e.fontSize||"16px"} ${e.fontFamily||"sans-serif"}`:""}function o5(e,t,n="pre-wrap"){if(!e||!t||typeof window>"u")return null;const i=window.getComputedStyle(t),o=e.offsetHeight,s=QL(i.lineHeight,1.5*QL(i.fontSize,16)),r=e.getBoundingClientRect().width,a=t.getBoundingClientRect().width;return{font:L3e(i),lineHeight:s,wrapperOverhead:Math.max(0,o-s),widthAdjustment:Math.max(0,r-a),whiteSpace:n}}const P3e=new Set(["node","key","ref","ctx","renderNode","indexKey","__proto__","prototype","constructor"]);function VL(e,t={}){var n;const i={},o=new Set((n=t.omit)!=null?n:[]);if(!e||typeof e!="object")return i;const s=Object.getOwnPropertyDescriptors(e);for(const[r,a]of Object.entries(s))P3e.has(r)||o.has(r)||a.enumerable&&"value"in a&&(i[r]=a.value);return i}function GL(e,t,n,i){var o;const s=(function(f){return Math.max(0,Math.ceil(f.scrollHeight||0)-Math.ceil(f.clientHeight||0))})(e),r=(function(f,h){return Number.isFinite(f)?Math.min(Math.max(0,f),h):0})(n,s);if(!i.isReverseFlexScrollRoot(e))return void(e.scrollTop=r);const a=Math.max(0,s-r),l=[-a,a];let u=l[0],c=Number.POSITIVE_INFINITY;for(const f of l){e.scrollTop=f;const h=i.getNormalizedScrollTop(e,t,!1),m=Math.abs(h-r);md&&(e.scrollTop=u)}function qL(e,t){let n=0,i=null,o=null;const s=()=>{const r=o;o=null,i=null,r&&(n=Date.now(),e(...r))};return function(...r){const a=Date.now(),l=t-(a-n);o=r,l<=0?(i&&(clearTimeout(i),i=null),n=a,o=null,e(...r)):i||(i=setTimeout(s,l))}}function KL(e){return e==="simple"?"simple":e===!0||e==="true"||e==="precise"?"precise":"off"}const Tq=Symbol("MarkstreamMathBlockMinHeightCache");function z_t(){return qt(Tq,null)}const O3e=new Set(["text","inline_code","emoji","footnote_reference"]),z3e=new Set(["strong","emphasis","strikethrough","highlight","insert","subscript","superscript","link"]);function ov(e){const t=Number(e);return!Number.isFinite(t)||t<=0?-1:Math.round(t/32)}function up(e,t,n,i=22){const o=String(e??"");if(!o)return n;const s=Math.max(18,Math.floor(Math.max(320,t)/8)),r=o.split(/\r?\n/).length,a=Math.ceil(o.length/s),l=Math.max(1,r,a);return Math.max(n,Math.ceil(l*i+12))}function Bq(e){var t;if(!e||typeof e!="object")return!1;const n=e,i=String((t=n.type)!=null?t:"");if(O3e.has(i))return!0;if(!z3e.has(i))return!1;const o=n.children;return!Array.isArray(o)||!o.length||o.every(Bq)}function _7(e){var t,n,i,o,s,r,a,l;if(!e||typeof e!="object")return"";const u=e,c=String((t=u.type)!=null?t:"");if(c==="text")return String((i=(n=u.content)!=null?n:u.raw)!=null?i:"");if(c==="inline_code")return String((r=(s=(o=u.code)!=null?o:u.content)!=null?s:u.raw)!=null?r:"");if(c==="emoji")return String((l=(a=u.name)!=null?a:u.raw)!=null?l:"");if(typeof u.text=="string")return u.text;const d=[];for(const f of["children","items","cells","rows"]){const h=u[f];if(Array.isArray(h)){const m=h.map(_7).filter(Boolean).join(" ");m&&d.push(m)}}return d.join(" ").replace(/\s+/g," ").trim()}function Fq(e){if(!e||typeof e!="object")return!1;const t=e;return t.type==="inline_code"||["children","items","cells","rows"].some(n=>{const i=t[n];return Array.isArray(i)&&i.some(Fq)})}function $3e(e,t){if(!e)return 30;const n=Math.max(18,Math.floor(Math.max(320,t)/8)),i=e.split(/\r?\n/).length,o=Math.ceil(e.length/n),s=Math.max(1,i,o);return 30+26*Math.max(0,s-1)}function j3e(e,t){var n,i,o,s,r,a,l,u,c,d,f,h,m,g;if(!e||typeof e!="object")return 32;const v=e,y=String((n=v.type)!=null?n:""),A=Number.isFinite(t)&&t>0?t:640;switch(y){case"heading":return(function(b){var w;const _=Number((w=b.level)!=null?w:b.depth);return _>=4?20:_===3?30:_===2?32:44})(v);case"paragraph":return(function(b,w){const _=String(b??"");if(!_)return 28;const M=Math.max(18,Math.floor(Math.max(320,w)/8)),B=_.split(/\r?\n/).length,C=Math.ceil(_.length/M);return Math.max(1,B,C)<=1?28:up(_,w,34)})(String((o=(i=v.raw)!=null?i:v.content)!=null?o:""),A);case"list":return(function(b,w){var _;const M=Array.isArray(b.items)?b.items:[];if(!M.length)return 48;const B=Math.max(48,30*M.length+12);let C=12;for(const F of M)C+=$3e(_7(F)||String((_=F.raw)!=null?_:""),w);const S=Math.max(0,C-B);if(M.length>20){const F=Math.round(2.4*M.length);return Math.round(B+Math.max(F,Math.min(S,3*M.length)))}if(S<=0)return B;const I=M.length>8?8*M.length:S;return Math.round(B+Math.min(S,I))})(v,A);case"list_item":return up(String((r=(s=v.raw)!=null?s:v.content)!=null?r:""),A,34);case"blockquote":return up(String((l=(a=v.raw)!=null?a:v.content)!=null?l:""),A,56);case"table":return(function(b,w){const _=[...b.header?[b.header]:[],...Array.isArray(b.rows)?b.rows:[]];if(!_.length){const M=Array.isArray(b.children)?b.children.length:3;return Math.max(120,38*M+48)}return Math.max(120,Math.round(4+_.reduce((M,B)=>M+(function(C,S){const I=Math.max(1,C.length),F=Math.max(80,(S-32)/I),E=Math.max(10,Math.floor(F/8)),D=Math.max(1,...C.map(j=>{var z;const T=_7(j)||String((z=j?.raw)!=null?z:"");return Math.ceil(T.length/E)||1}));return 54+34*Math.max(0,D-1)+(I<=3&&C.some(Fq)?14:0)})((function(C){var S;return Array.isArray(C?.cells)&&(S=C.cells)!=null?S:[]})(B),w),0)))})(v,A);case"code_block":{const b=String((u=v.language)!=null?u:"").trim().toLowerCase(),w=String((d=(c=v.code)!=null?c:v.raw)!=null?d:"");return b==="mermaid"?vw(mw(w)):b==="infographic"?Aw(gw(w)):up(w,A,96,20)}case"math_block":return 72;case"image":return 220;case"admonition":case"vmr_container":case"html_block":return(function(b,w){var _,M,B;const C=b.match(/^\s*]*)>/i);return C&&!/(?:^|\s)open(?:\s|=|$)/i.test((_=C[1])!=null?_:"")?up(((B=(M=b.match(/]*>([\s\S]*?)<\/summary>/i))==null?void 0:M[1])==null?void 0:B.replace(/<[^>]*>/g,"").trim())||"Details",w,28,28):up(b,w,96)})(String((h=(f=v.raw)!=null?f:v.content)!=null?h:""),A);case"thematic_break":return 24;default:return up(String((g=(m=v.raw)!=null?m:v.content)!=null?g:""),A,40)}}function ZL(e,t,n){return Math.min(Math.max(e,t),n)}const H3e=["total","cacheHits","appendHits","tailHits","fullParses","chunkedParses"],U3e=["tokenCloneMs","processTokensInputTokens","processTokensReusedTopLevelNodes","processTokensMs","safeMarkdownMs","tokenizeMs","htmlBlockPassesMs","parseMarkdownToStructureTotalMs"],W3e=new Set(["attrs","data","items","header","payload","props","rows","cells","term","definition","sourceMap"]),Rq=["raw","content","code","originalCode","updatedCode"],YL=new WeakMap,JL=new WeakMap;let Q3e=1;function Ru(){return typeof performance<"u"?performance.now():Date.now()}function XL(e){const t=e.stream;return t&&typeof t.stats=="function"?t.stats():null}function kl(e){if(typeof e!="object"&&typeof e!="function"||e===null)return"";const t=e;let n=YL.get(t);return n||(n=Q3e++,YL.set(t,n)),String(n)}function eP(e,t,n,i={}){var o,s;const r=i.includeFinal!==!1,a={md:kl(t),customMarkdownIt:kl(n),requireClosingStrong:e.requireClosingStrong===!0,customHtmlTags:(o=e.customHtmlTags)!=null?o:[],includeSourceMap:e.includeSourceMap===!0,streamParse:(s=e.streamParse)!=null?s:"auto",validateLink:kl(e.validateLink),preTransformTokens:kl(e.preTransformTokens),postTransformTokens:kl(e.postTransformTokens),postTransformNodes:kl(e.postTransformNodes)};return r&&(a.final=e.final===!0),JSON.stringify(a)}function tP(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===10;)t-=1;const n=e.lastIndexOf(` -`,t-1)+1;return e.slice(n,t).trim()}function nP(e){const t=Dq(e);return t.length>=2&&t.every(n=>{const i=n.trim();return i.length>=1&&i.replace(/^:/,"").replace(/:$/,"").split("").every(o=>o==="-")})}function Dq(e){return e.includes("|")?e.replace(/^\|/,"").replace(/\|$/,"").split("|"):[]}function Nq(e){let t=2166136261;for(let n=0;n>>0).toString(36)}function XE(e){const t=String(e??"");return`${t.length}:${Nq(t)}`}function E7(e,t=new WeakMap,n=0){if(e==null||typeof e=="number"||typeof e=="boolean")return String(e);if(typeof e=="string")return`s:${(function(r){return r.length<=8192?XE(r):`${r.length}:${Nq(r.slice(0,8192))}:truncated`})(e)}`;if(typeof e=="function")return`fn:${kl(e)}`;if(typeof e!="object")return typeof e;const i=e,o=t.get(i);if(o)return`cycle:${o}`;if(n>=6)return`object:${kl(i)}`;const s=kl(i);if(t.set(i,s),Array.isArray(e)){const r=e.slice(0,200);return`a:${e.length}:${r.map(a=>E7(a,t,n+1)).join(",")}`}if(typeof e=="object"){const r=e,a=Object.keys(r).sort(),l=a.slice(0,80);return`o:${a.length}:${l.sort().map(u=>`${u}:${E7(r[u],t,n+1)}`).join(";")}`}return typeof e}function _w(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"&&typeof e.raw=="string"}function Lq(e,t=new WeakMap,n=0){return Array.isArray(e)?`a:${e.length}:${e.slice(0,200).map(i=>_w(i)?vh(i,t,n+1):Lq(i,t,n+1)).join(",")}`:_w(e)?vh(e,t,n):E7(e,t,n)}function V3e(e,t,n){return Object.keys(e).sort().filter(i=>i!=="children"&&!Rq.includes(i)).map(i=>{const o=e[i];return typeof o=="string"?`${i}=s:${XE(o)}`:typeof o=="number"||typeof o=="boolean"||o==null?`${i}=${String(o)}`:typeof o=="function"?`${i}=fn:${kl(o)}`:W3e.has(i)&&(Array.isArray(o)||typeof o=="object")?`${i}=${Lq(o,t,n+1)}`:o&&typeof o=="object"?`${i}=object:${kl(o)}`:""}).filter(Boolean).join(";")}function G3e(e){return Rq.map(t=>{const n=e[t];return typeof n=="string"?`${t}=s:${XE(n)}`:""}).filter(Boolean).join(";")}function vh(e,t=new WeakMap,n=0){const i=JL.get(e);if(i)return i;const o=e,s=t.get(o);if(s)return`node-cycle:${s}`;if(n>=6)return`node:${e.type}:${kl(o)}`;const r=kl(o);t.set(o,r);const a=(function(l,u,c){const d=l,f=Array.isArray(d.children)?d.children:[],h=f.length?f.slice(0,200).map(m=>vh(m,u,c+1)).join("|"):"";return[l.type,G3e(d),V3e(d,u,c),f.length,h].join(":")})(e,t,n);return JL.set(o,a),a}function Pq(e,t){return vh(e)===vh(t)}function eI(e,t,n){const i=Ru(),o=t==="stabilizeSignatureMs"?"stabilizeSignatureCallCount":"primeSignatureCallCount";try{return n()}finally{e[t]+=Ru()-i,e[o]+=1,e.signatureMs=e.stabilizeSignatureMs+e.primeSignatureMs,e.signatureCallCount=e.stabilizeSignatureCallCount+e.primeSignatureCallCount}}function iP(e,t,n){return eI(t,n,()=>vh(e))}function Oq(e,t,n){return iP(e,n,"stabilizeSignatureMs")===iP(t,n,"stabilizeSignatureMs")}function Ck(e){return{reusedNodeCount:0,dirtyStartIndex:e>0?0:-1,stablePrefixNodeCount:0,dirtyTailNodeCount:e}}function oP(e,t,n){return e<0?0:Math.max(t.length,n.length)-e}function sP(e){return e.__markstreamHasCustomParserExtensions===!0||(function(t){var n;return Number((n=t.__markstreamRegisteredPluginCount)!=null?n:0)>0})(e)}function q3e(e,t){return e.length===t.length&&e===t}function tI(e,t,n=0){if(n>=4)return null;if(e.type!==t.type)return!1;const i=e,o=t,s=Object.keys(i).filter(c=>c!=="type"&&c!=="children").sort(),r=Object.keys(o).filter(c=>c!=="type"&&c!=="children").sort();if(s.length!==r.length)return!1;for(let c=0;c{i=tI(e,t)}),i??Oq(e,t,n)}function Y3e(e,t){const n={};for(const i of H3e){const o=e[i],s=t?.[i];typeof o=="number"&&(n[i]=o-(typeof s=="number"?s:0))}return n}function J3e(e,t){var n;const i=eL(t.instanceMsgId),o=new Map,s=(n=t.smoothStreamingEnabled)!=null?n:P(()=>!1),r=V(t.renderContent.value);let a=[],l="",u="",c="",d=!1;const f=(function(){let j="",z=0,T=!1,N=!1,L=!1,H=!1;function O(){j="",z=0,T=!1,N=!1,L=!1,H=!1}function Q(Y){let W=!1;for(let Z=0;Z{if(!Y||!W.startsWith(Y)||W.length<=Y.length)return O(),[!0,0];let Z=0;j!==Y&&(O(),Q(Y),Z=Y.length);const ee=W.slice(Y.length),X=Q(ee);return j=W,[X,Z+ee.length]}})();let h,m=0,g=0,v=Ru(),y=-1,A=0;function b(j){y=Number.isInteger(j)?j:0,A+=1}function w(){h&&(clearTimeout(h),h=void 0)}function _(){w();const j=t.renderContent.value;r.value!==j&&(r.value=j),v=Ru()}$e([t.renderContent,t.effectiveFinal,s],([j,z,T])=>{r.value!==j&&(!T||z||(function(N,L){if(!N&&L||L.length<=80||L.length\s*|`{3,}|~{3,})/.test(H))||H.endsWith(` -`)&&!(function(O){const Q=tP(O);if(nP(Q))return!1;const Y=Dq(Q);return Y.length>=2&&Y.some(W=>W.trim())})(L))})(r.value,j)?_():(function(){if(g+=1,h)return;const N=Math.max(0,(function(L){const H=L.parseCoalesceMs;return typeof H=="number"&&Number.isFinite(H)&&H>=0?H:80})(e)-(Ru()-v));N<=0?_():h=setTimeout(_,N)})())},{flush:"sync",immediate:!0}),Yd(w);const M=P(()=>{var j,z,T,N;return XAe(e.customHtmlTags,(j=e.parseOptions)==null?void 0:j.customHtmlTags,(N=(T=(z=t.customComponentsMap)==null?void 0:z.value)!=null?T:{},Object.entries(N).map(([L,H])=>{const O=gu(L);return H==null||!O||ey(O)||QV.has(O)||Z2.has(O)?"":O}).filter(Boolean)))}),B=P(()=>{const{key:j,tags:z}=e2e(M.value);if(!j)return i;const T=o.get(j);if(T)return T;const N=eL(t.instanceMsgId,{customHtmlTags:z});return o.set(j,N),N}),C=P(()=>{const j=B.value;if(!e.customMarkdownIt)return j;const z=e.customMarkdownIt(j);return j.__markstreamHasCustomParserExtensions=!0,z.__markstreamHasCustomParserExtensions=!0,z}),S=P(()=>{var j,z;const T=(j=e.parseOptions)!=null?j:{},N=t.effectiveFinal.value,L=M.value,H=N!=null,O=L.length>0;return H||O||T.streamParse==null?Pt(Pt(Nn(Pt({},T),{streamParse:(z=T.streamParse)==null||z}),H?{final:N}:{}),O?{customHtmlTags:L}:{}):T}),I=P(()=>{var j;return new Set(((j=S.value.customHtmlTags)!=null?j:[]).map(z=>String(z).trim().toLowerCase()).filter(Boolean))}),F=P(()=>eP(S.value,C.value,e.customMarkdownIt,{includeFinal:!0})),E=P(()=>eP(S.value,C.value,e.customMarkdownIt,{includeFinal:!1}));$e([F,E],([j,z],[T,N])=>{T&&(j===T&&z===N||(_(),z!==N&&(a=[],c="")))},{flush:"sync"});const D=P(()=>{var j,z,T,N,L,H,O,Q,Y,W,Z;if((j=e.nodes)!=null&&j.length)return a=[],c="",b(0),Tt(e.nodes.slice());const ee=r.value;if(!ee)return a=[],c="",b(-1),[];const X=t.debugPerformanceEnabled.value,ge=X?Ru():0,q=C.value,pe=F.value,we=E.value;l&&pe!==l&&(function(Ce){var Re,Pe;(Pe=(Re=Ce.stream)==null?void 0:Re.reset)==null||Pe.call(Re)})(q),u&&we!==u&&(a=[],c="");const te=Object.keys((T=(z=t.customComponentsMap)==null?void 0:z.value)!=null?T:{}).length>0||typeof S.value.postTransformNodes=="function";te!==d&&(a=[],c="");const ie=!te&&a.length>0&&ee.startsWith(c)&&we===u,G=X?XL(q):null,J=X?{}:void 0,fe=sP(q),me=!fe&&!te,ve=Pt(Pt(Nn(Pt({},S.value),{__reuseStableTopLevelNodes:me}),fe?{__disableStreamParse:!0}:{}),J?{__timing:J}:{}),oe=qG(ee,q,ve),ae=X?Ru():0,Ae=X?{signatureMs:0,stabilizeSignatureMs:0,primeSignatureMs:0,signatureCallCount:0,stabilizeSignatureCallCount:0,primeSignatureCallCount:0}:void 0;let ue,Se=X?Ck(oe.length):void 0,ce=0,se=0,Ie=0;if(ie){const Ce=X?Ru():0,[Re,Pe]=(function(lt){var Dt,ht;const[Rt,wt]=lt.scanGlobalReferenceAppend(lt.previousContent,lt.content),Fe=lt.parseOptions;return[lt.previousDirtyStartIndex>0&&Fe.final!==!0&&!lt.customMarkdownIt&&!sP(lt.md)&&!Rt&&typeof Fe.preTransformTokens!="function"&&typeof Fe.postTransformTokens!="function"&&typeof Fe.postTransformNodes!="function"&&((ht=(Dt=Fe.customHtmlTags)==null?void 0:Dt.length)!=null?ht:0)===0?lt.previousDirtyStartIndex:0,wt]})({content:ee,previousContent:c,previousDirtyStartIndex:y,parseOptions:S.value,customMarkdownIt:e.customMarkdownIt,md:q,scanGlobalReferenceAppend:f});Ie=Pe;const Ze=Re<=0;if(Ae){const lt=(function(Dt,ht,Rt,wt={}){var Fe;if(!ht.length)return{nodes:Dt,metrics:Ck(Dt.length)};const et=(Fe=wt.scanStartIndex)!=null?Fe:0,xe=wt.reuseDirtyTail!==!1,He=(function(Ee,Le,Ge,vt=0){const at=Math.min(Ee.length,Le.length);for(let Qe=Math.min(at,Math.max(0,vt));Qevh(Ce[Ze]))})(ue,Ae,se):(function(Ce,Re=0){for(let Pe=Math.max(0,Re);Pe((L=G?.total)!=null?L:0);t.logPerf(Re?"parse(stream)":"parse(sync)",Pt(Pt(Pt({rendererId:t.instanceMsgId,ms:Math.round(Ru()-ge),nodes:ue.length,contentLength:ee.length,parseCommitCount:m,parseCoalescedCount:g,nodeReuseMs:he,referenceDefinitionScanChars:Ie,signatureMs:(H=Ae?.signatureMs)!=null?H:0,stabilizeSignatureMs:(O=Ae?.stabilizeSignatureMs)!=null?O:0,primeSignatureMs:(Q=Ae?.primeSignatureMs)!=null?Q:0,signatureCallCount:(Y=Ae?.signatureCallCount)!=null?Y:0,stabilizeSignatureCallCount:(W=Ae?.stabilizeSignatureCallCount)!=null?W:0,primeSignatureCallCount:(Z=Ae?.primeSignatureCallCount)!=null?Z:0,stabilizeMs:ce},Se??{}),J?Object.fromEntries(U3e.map(Pe=>{var Ze;return[Pe,(Ze=J[Pe])!=null?Ze:0]})):{}),Ce?{streamMode:Ce.lastMode,streamDelta:Y3e(Ce,G),streamStats:Ce}:{}))}return Tt(ue)});return{effectiveCustomHtmlTags:M,effectiveCustomHtmlTagsSet:I,mdBase:B,mdInstance:C,mergedParseOptions:S,getParsedNodesDirtyStartIndex:()=>y,getParsedNodesRevision:()=>A,parsedNodes:D}}function X3e(e){const{isClient:t}=e,n=V(new Set),i=new Map,o=new Map,s=new Map;function r(u){if(!t)return;const c=s.get(u);c!=null&&(window.clearTimeout(c),s.delete(u))}function a(){if(t)for(const u of s.values())window.clearTimeout(u);s.clear()}function l(){n.value=new Set}return{visibleNodeIndices:n,nodeVisibilityHandles:i,nodeVisibilityWatchStops:o,nodeVisibilityFallbackTimers:s,clearVisibilityFallback:r,clearAllVisibilityFallbacks:a,markNodeVisible:function(u,c=!0){var d;c&&r(u),(function(f,h){if((g=(m=e.shouldTrackVisibleNodeIndices)==null?void 0:m.call(e))!=null&&!g)return;var m,g;const v=n.value,y=v.has(f);if(h){if(y)return;const b=new Set(v);return b.add(f),void(n.value=b)}if(!y)return;const A=new Set(v);A.delete(f),n.value=A})(u,c),c&&((d=e.onNodeMarkedVisible)==null||d.call(e,u))},resetNodeVisibleState:l,cleanupNodeVisibility:function(u){var c;if(e.shouldCleanupNodeVisibility&&!e.shouldCleanupNodeVisibility())return;for(const[f,h]of o.entries())f{const c=o.getSnapshot();t.value=c.source,n.value=c.visible,i.value=c.done},r=o.subscribe(s);s();const a=P(()=>Math.max(0,t.value.length-n.value.length)),l=P(()=>a.value===0),u=P(()=>i.value&&l.value);return qg()&&Yd(()=>{r(),o.destroy()}),{source:t,visible:n,done:i,final:u,caughtUp:l,pendingChars:a,enqueue:c=>o.enqueue(c),finish:c=>o.finish(c),flush:()=>o.flush(),reset:c=>o.reset(c),pause:()=>o.pause(),resume:()=>o.resume()}}const t8e={maxCharsPerSecond:3e3,maxCommitFps:20,maxCharsPerCommit:160,catchUpLatencyMs:220,catchUpThreshold:400},rP=/auto|scroll|overlay/i;function n8e(e){if(!e)return!1;const t=(e.overflowY||"").toLowerCase(),n=(e.overflow||"").toLowerCase();return rP.test(t)||rP.test(n)}function i8e(e){const t=Math.ceil(e.scrollHeight)>Math.ceil(e.clientHeight)+1,n=Math.ceil(e.scrollWidth)>Math.ceil(e.clientWidth)+1;return t||n}const o8e={class:"m-0 p-0"},s8e=["data-probe"],r8e=Ri(st(Nn(Pt({},{name:"HeightEstimationProbes"}),{__name:"HeightEstimationProbes",props:{width:{},flowRoot:{type:Boolean},paragraphNode:{},listItemNode:{},listNode:{},headingNodes:{},setParagraphWrapper:{type:Function},setListItemWrapper:{type:Function},setListWrapper:{type:Function},setHeadingWrapper:{type:Function}},setup(e){const t=e;function n(i){var o,s;return(s=(o=t.headingNodes)==null?void 0:o[i])!=null?s:null}return(i,o)=>(k(),R("div",{class:"height-estimation-probes",style:an({width:`${e.width}px`}),"aria-hidden":"true"},[x("div",{ref:s=>e.setParagraphWrapper(s),class:De(["node-content",{"node-content-flow-root":e.flowRoot}]),"data-probe":"paragraph"},[K(p(e1),{node:e.paragraphNode,"index-key":"probe-paragraph"},null,8,["node"])],2),x("div",{ref:s=>e.setListItemWrapper(s),class:De(["node-content",{"node-content-flow-root":e.flowRoot}]),"data-probe":"list-item"},[x("ul",o8e,[K(p(fg),{node:e.listItemNode,"index-key":"probe-list-item"},null,8,["node"])])],2),x("div",{ref:s=>e.setListWrapper(s),class:De(["node-content",{"node-content-flow-root":e.flowRoot}]),"data-probe":"list"},[K(p(hg),{node:e.listNode,"index-key":"probe-list"},null,8,["node"])],2),(k(),R(Be,null,_t(6,s=>x("div",{key:`probe-heading-${s}`,ref_for:!0,ref:r=>e.setHeadingWrapper(s,r),class:De(["node-content",{"node-content-flow-root":e.flowRoot}]),"data-probe":`heading-${s}`},[K(p(uC),{node:n(s),"index-key":`probe-heading-${s}`},null,8,["node","index-key"])],10,s8e)),64))],4))}})),[["__scopeId","data-v-3e0766e2"]]),aP=st({name:"InfographicBlockNodeLoading",props:{node:{type:Object,required:!0},showHeader:{type:Boolean,default:!0},estimatedPreviewHeightPx:{type:Number,default:void 0}},setup(e){const t=P(()=>{var n,i;return Aw((i=Lm(e.estimatedPreviewHeightPx))!=null?i:gw(String((n=e.node.code)!=null?n:"")))});return()=>{var n;return Dn("div",{class:"infographic-block-container rounded-lg border overflow-hidden",style:{margin:"var(--ms-flow-diagram-y) 0",background:"var(--diagram-bg)",borderColor:"var(--diagram-border)",color:"hsl(var(--ms-foreground))"},"data-markstream-infographic":"1","data-markstream-mode":"pending"},[e.showHeader?Dn("div",{class:"infographic-block-header flex justify-between items-center border-b",style:{padding:"var(--ms-inset-panel-y) var(--ms-inset-panel-x)",background:"var(--diagram-header-bg)",borderColor:"var(--diagram-border)",minHeight:"calc(var(--ms-action-btn-icon) + var(--ms-action-btn-padding) + var(--ms-action-btn-padding) + var(--ms-inset-panel-y) + var(--ms-inset-panel-y) + 1px)"}},[Dn("div",{class:"flex items-center gap-x-2 overflow-hidden"},[Dn("span",{class:"icon-slot action-icon shrink-0",style:{display:"inline-flex",width:"var(--ms-action-btn-icon)",height:"var(--ms-action-btn-icon)"}}),Dn("span",{class:"infographic-label font-medium font-mono truncate",style:{fontSize:"var(--ms-text-label)",color:"hsl(var(--ms-muted-foreground))"}},"Infographic")]),Dn("div",{class:"infographic-header-actions flex items-center opacity-0 pointer-events-none",style:{gap:"var(--ms-gap-header-actions)"},"aria-hidden":"true"},Array.from({length:4},()=>Dn("span",{class:"infographic-action-btn inline-flex items-center justify-center p-[var(--ms-action-btn-padding)] rounded",style:{width:"calc(var(--ms-action-btn-icon) + var(--ms-action-btn-padding) + var(--ms-action-btn-padding))",height:"calc(var(--ms-action-btn-icon) + var(--ms-action-btn-padding) + var(--ms-action-btn-padding))"}})))]):null,Dn("div",{class:"infographic-preview relative overflow-hidden block",style:{height:`${t.value}px`,minHeight:"var(--ms-size-diagram-min-height)",background:"var(--diagram-bg)"}},[Dn("pre",{class:"infographic-pending-source text-sm font-mono whitespace-pre-wrap",style:{position:"absolute",inset:"0",zIndex:"1",margin:"0",padding:"var(--ms-inset-panel-body)",overflow:"auto",textAlign:"left"}},String((n=e.node.code)!=null?n:"")),Dn("div",{class:"absolute inset-0"},[Dn("div",{class:"w-full text-center flex items-center justify-center min-h-full"})])])])}}}),lP=st({name:"MermaidBlockNodeLoading",props:{node:{type:Object,required:!0},showHeader:{type:Boolean,default:!0},estimatedPreviewHeightPx:{type:Number,default:void 0}},setup(e){const t=P(()=>{var n,i;return vw((i=Lm(e.estimatedPreviewHeightPx))!=null?i:mw(String((n=e.node.code)!=null?n:"")))});return()=>{var n;return Dn("div",{class:"mermaid-block-container rounded-lg border overflow-hidden",style:{margin:"var(--ms-flow-diagram-y) 0",borderColor:"var(--diagram-border)"},"data-markstream-mermaid":"1","data-markstream-mode":"pending"},[e.showHeader?Dn("div",{class:"mermaid-block-header flex justify-between items-center border-b px-[var(--ms-inset-panel-x)] py-[var(--ms-inset-panel-y)]",style:{background:"var(--diagram-header-bg)",borderColor:"var(--diagram-border)"}},[Dn("div",{class:"flex items-center gap-x-2 overflow-hidden"},[Dn("span",{class:"mermaid-label-text text-[length:var(--ms-text-label)] font-medium font-mono truncate",style:{color:"var(--code-action-fg)"}},"Mermaid")]),Dn("div",{class:"mermaid-header-actions flex items-center gap-[var(--ms-gap-header-actions)] opacity-0 pointer-events-none","aria-hidden":"true"},Array.from({length:4},()=>Dn("span",{class:"mermaid-action-btn inline-flex items-center justify-center p-[var(--ms-action-btn-padding)] rounded"},[Dn("span",{class:"action-icon block"})])))]):null,Dn("div",{class:"mermaid-preview-area relative overflow-hidden block",style:{height:`${t.value}px`,minHeight:"var(--ms-size-diagram-min-height)",background:"var(--diagram-bg)"}},[Dn("pre",{class:"mermaid-source-code text-sm font-mono whitespace-pre-wrap",style:{position:"absolute",inset:"0",margin:"0",padding:"var(--ms-inset-panel-body)",overflow:"auto",textAlign:"left"}},String((n=e.node.code)!=null?n:"")),Dn("div",{class:"_mermaid w-full text-center flex items-center justify-center min-h-full",style:{fontFamily:"inherit",contentVisibility:"auto",contain:"content",containIntrinsicSize:"var(--ms-size-diagram-min-height) 240px"}})])])}}}),a8e={docs:{showTooltips:!0,fade:!0,batchRendering:!0,initialRenderBatchSize:40,renderBatchSize:80,renderBatchDelay:16,renderBatchBudgetMs:6,renderBatchIdleTimeoutMs:120,deferNodesUntilVisible:!0,maxLiveNodes:220,liveNodeBuffer:60,nodeVirtual:"auto"},chat:{showTooltips:!1,fade:!1,batchRendering:!0,initialRenderBatchSize:32,renderBatchSize:48,renderBatchDelay:6,renderBatchBudgetMs:8,renderBatchIdleTimeoutMs:60,deferNodesUntilVisible:!0,maxLiveNodes:0,liveNodeBuffer:0,nodeVirtual:"auto"},minimal:{showTooltips:!1,fade:!1,batchRendering:!0,initialRenderBatchSize:32,renderBatchSize:48,renderBatchDelay:6,renderBatchBudgetMs:8,renderBatchIdleTimeoutMs:60,deferNodesUntilVisible:!0,maxLiveNodes:0,liveNodeBuffer:0,nodeVirtual:"auto"}};function er(e){if(e==null)return"";if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}const l8e=["data-custom-id"],u8e=["data-node-index","data-node-type"],uP="typewriter-simple-cursor-target",zq=Ri(st(Nn(Pt({},{name:"NodeRenderer"}),{__name:"NodeRenderer",props:{content:{},nodes:{},final:{type:Boolean},parseOptions:{},customMarkdownIt:{},debugPerformance:{type:Boolean,default:!1},customHtmlTags:{},mode:{},domMode:{},htmlPolicy:{},viewportPriority:{type:Boolean,default:void 0},viewportPriorityOptions:{},codeBlockStream:{type:Boolean,default:!0},codeBlockDarkTheme:{},codeBlockLightTheme:{},codeBlockMonacoOptions:{},codeRenderer:{},renderCodeBlocksAsPre:{type:Boolean,default:void 0},codeBlockMinWidth:{},codeBlockMaxWidth:{},codeBlockProps:{},mermaidProps:{},d2Props:{},infographicProps:{},showTooltips:{type:Boolean,default:void 0},themes:{},langs:{},isDark:{type:Boolean},customId:{},indexKey:{},typewriter:{type:[Boolean,String],default:!1},smoothStreaming:{type:[Boolean,String],default:"auto"},smoothStreamingOptions:{},parseCoalesceMs:{},fade:{type:Boolean,default:void 0},batchRendering:{type:Boolean,default:void 0},initialRenderBatchSize:{},renderBatchSize:{},renderBatchDelay:{},renderBatchBudgetMs:{},renderBatchIdleTimeoutMs:{},deferNodesUntilVisible:{type:Boolean,default:void 0},maxLiveNodes:{},liveNodeBuffer:{},nodeVirtual:{type:[Boolean,String],default:void 0},virtualScroll:{},renderAsFragment:{type:Boolean}},emits:["copy","copy-code","handleArtifactClick","click","mouseover","mouseout","virtual-state-change","height-change","render-settled","render-final","anchor-change"],setup(e,{expose:t,emit:n}){const i=e,o=n;function s(U){if(!(typeof Event<"u"&&U instanceof Event))return typeof U=="string"&&o("copy-code",U),void o("copy",U)}const r=Ms(),a=qt("markstreamNestedRendererProps",void 0);function l(U){const re=r?.vnode.props;return!!re&&(Object.prototype.hasOwnProperty.call(re,U)||Object.prototype.hasOwnProperty.call(re,String(U).replace(/[A-Z]/g,ye=>`-${ye.toLowerCase()}`)))}function u(U){var re,ye;const be=i[U];return l(U)?be:(ye=(re=a?.value)==null?void 0:re[U])!=null?ye:be}const c=P(()=>{return(U=u("mode"))==="chat"||U==="minimal"||U==="docs"?U:"docs";var U}),d=P(()=>KL(u("typewriter"))),f=P(()=>d.value!=="off"),h=P(()=>u("domMode")==="minimal"?"minimal":"full"),m=P(()=>{return(U={mode:c.value,codeRenderer:u("codeRenderer"),renderCodeBlocksAsPre:u("renderCodeBlocksAsPre")}).renderCodeBlocksAsPre===!0?"pre":U.codeRenderer==="pre"||U.codeRenderer==="shiki"||U.codeRenderer==="monaco"?U.codeRenderer:U.renderCodeBlocksAsPre===!1||U.mode==="docs"?"monaco":"pre";var U}),g=P(()=>a8e[c.value]),v=P(()=>{var U;return(U=u("showTooltips"))!=null?U:g.value.showTooltips}),y=P(()=>{var U;return(U=u("fade"))!=null?U:g.value.fade}),A=P(()=>{var U;return(U=u("batchRendering"))!=null?U:g.value.batchRendering}),b=P(()=>{var U;return(U=u("initialRenderBatchSize"))!=null?U:g.value.initialRenderBatchSize}),w=P(()=>{var U;return(U=u("renderBatchSize"))!=null?U:g.value.renderBatchSize}),_=P(()=>{var U;return(U=u("renderBatchDelay"))!=null?U:g.value.renderBatchDelay}),M=P(()=>{var U;return(U=u("renderBatchBudgetMs"))!=null?U:g.value.renderBatchBudgetMs}),B=P(()=>{var U;return(U=u("renderBatchIdleTimeoutMs"))!=null?U:g.value.renderBatchIdleTimeoutMs}),C=P(()=>{var U;return(U=u("deferNodesUntilVisible"))!=null?U:g.value.deferNodesUntilVisible}),S=P(()=>{var U;return(U=u("maxLiveNodes"))!=null?U:g.value.maxLiveNodes}),I=P(()=>{var U;return(U=u("liveNodeBuffer"))!=null?U:g.value.liveNodeBuffer}),F=P(()=>{var U;return(U=u("nodeVirtual"))!=null?U:g.value.nodeVirtual}),E={get content(){return i.content},get nodes(){return i.nodes},get final(){return i.final},get parseOptions(){return u("parseOptions")},get customMarkdownIt(){return u("customMarkdownIt")},get debugPerformance(){return i.debugPerformance},get customHtmlTags(){return u("customHtmlTags")},get mode(){return u("mode")},get domMode(){return h.value},get htmlPolicy(){return u("htmlPolicy")},get viewportPriority(){return u("viewportPriority")},get viewportPriorityOptions(){return u("viewportPriorityOptions")},get codeBlockStream(){return u("codeBlockStream")},get codeBlockDarkTheme(){return u("codeBlockDarkTheme")},get codeBlockLightTheme(){return u("codeBlockLightTheme")},get codeBlockMonacoOptions(){return u("codeBlockMonacoOptions")},get codeRenderer(){return u("codeRenderer")},get renderCodeBlocksAsPre(){return u("renderCodeBlocksAsPre")},get codeBlockMinWidth(){return u("codeBlockMinWidth")},get codeBlockMaxWidth(){return u("codeBlockMaxWidth")},get codeBlockProps(){return u("codeBlockProps")},get mermaidProps(){return u("mermaidProps")},get d2Props(){return u("d2Props")},get infographicProps(){return u("infographicProps")},get showTooltips(){return v.value},get themes(){return u("themes")},get langs(){return u("langs")},get isDark(){return u("isDark")},get customId(){return u("customId")},get indexKey(){return i.indexKey},get typewriter(){return u("typewriter")},get smoothStreaming(){return i.smoothStreaming},get smoothStreamingOptions(){return u("smoothStreamingOptions")},get parseCoalesceMs(){return u("parseCoalesceMs")},get fade(){return y.value},get batchRendering(){return A.value},get initialRenderBatchSize(){return b.value},get renderBatchSize(){return w.value},get renderBatchDelay(){return _.value},get renderBatchBudgetMs(){return M.value},get renderBatchIdleTimeoutMs(){return B.value},get deferNodesUntilVisible(){return C.value},get maxLiveNodes(){return S.value},get liveNodeBuffer(){return I.value},get nodeVirtual(){return F.value},get virtualScroll(){return i.virtualScroll},get renderAsFragment(){return i.renderAsFragment}};function D(U){o("height-change",U)}function j(U){o("virtual-state-change",U)}function z(U){o("anchor-change",U)}const T=V(),N=V(null),L=V(null),H=V(null),O=go({1:null,2:null,3:null,4:null,5:null,6:null}),Q=V(!1),Y=new Map,W=V(0),Z=V(0),ee=V({paragraph:null,listItem:null,listWrapperOverhead:0,headings:{1:null,2:null,3:null,4:null,5:null,6:null}});function X(U,re){return typeof U!="string"?re:U.trim()||re}function ge(U){const re=Number(U);return Number.isFinite(re)&&re>0?Math.max(1,Math.trunc(re)):640}const q=P(()=>{var U;const re=(U=E.viewportPriorityOptions)!=null?U:{},ye=X(re.rootMargin,d1);return{rootMargin:ye,heavyBlockMargin:X(re.heavyBlockMargin,ye),maxTargets:ge(re.maxTargets)}}),pe=P(()=>{var U;return(U=q.value.rootMargin)!=null?U:d1}),we=P(()=>{var U;return(U=q.value.maxTargets)!=null?U:640});function te(){var U,re;if(((U=i.virtualScroll)==null?void 0:U.enabled)!==!0)return null;const ye=(re=i.virtualScroll)==null?void 0:re.scrollRoot;return ie(typeof ye=="function"?ye():ye)}function ie(U){return U?typeof HTMLElement<"u"&&U instanceof HTMLElement?U:typeof U=="object"&&"value"in U?ie(U.value):typeof U=="object"&&"$el"in U?ie(U.$el):null:null}Wn(wq,q);const{isClient:G,renderAsFragment:J,debugPerformanceEnabled:fe,resolvedShowTooltips:me,resolvedHtmlPolicy:ve,inheritedSmoothStreaming:oe,ownsTypewriterCursor:ae}=(function(U){const re=typeof window<"u",ye=Yg(),be=qt("markstreamHtmlPolicy",void 0),Te=qt("markstreamTypewriterCursor",void 0),je=qt("markstreamSmoothStreaming",void 0),tt=P(()=>U.renderAsFragment===!0),ot=P(()=>!!(U.debugPerformance&&re&&typeof console<"u")),kt=P(()=>{var bt;if(typeof U.showTooltips=="boolean")return U.showTooltips;const Je=(bt=ye.showTooltips)!=null?bt:ye["show-tooltips"];return Je===""||Je===!0||Je==="true"||Je!==!1&&Je!=="false"&&void 0}),ft=P(()=>{var bt,Je;return(Je=(bt=U.htmlPolicy)!=null?bt:be?.value)!=null?Je:"safe"}),rt=P(()=>Te?.value!==!0);return{isClient:re,renderAsFragment:tt,debugPerformanceEnabled:ot,resolvedShowTooltips:kt,resolvedHtmlPolicy:ft,inheritedSmoothStreaming:je,inheritedTypewriterCursor:Te,ownsTypewriterCursor:rt}})(E),{resolveViewportRoot:Ae,resolveScrollContainer:ue,isReverseFlexScrollRoot:Se,getNormalizedScrollTop:ce,getOffsetTopWithinRoot:se}=(function(U,re){function ye(){var ot,kt;return(kt=(ot=re.scrollRoot)==null?void 0:ot.call(re))!=null?kt:null}function be(ot){if(typeof window>"u")return null;const kt=ye();if(kt)return kt;const ft=ot??U.value;if(!ft)return null;const rt=ft.ownerDocument||document,bt=rt.scrollingElement||rt.documentElement;let Je=ft;for(;Je&&Je!==rt.body&&Je!==bt;){if(n8e(window.getComputedStyle(Je))&&i8e(Je))return Je;Je=Je.parentElement}return null}function Te(ot){if(!re.isClient)return!1;try{const kt=window.getComputedStyle(ot);return!!(kt.display||"").toLowerCase().includes("flex")&&(kt.flexDirection||"").toLowerCase().endsWith("reverse")}catch{return!1}}function je(ot,kt,ft){var rt,bt;if(ft)return tt(kt);const Je=ot.scrollTop;if(!Te(ot))return Je;const mt=Je<0?-Je:Je;return Math.max(0,((rt=ot.scrollHeight)!=null?rt:0)-((bt=ot.clientHeight)!=null?bt:0))-mt}function tt(ot){var kt,ft,rt,bt,Je;const mt=Number((kt=ot.scrollingElement)==null?void 0:kt.scrollTop),It=Number((rt=(ft=ot.documentElement)==null?void 0:ft.scrollTop)!=null?rt:0),Ct=Number((Je=(bt=ot.body)==null?void 0:bt.scrollTop)!=null?Je:0);return Math.max(0,Number.isFinite(mt)?mt:0,Number.isFinite(It)?It:0,Number.isFinite(Ct)?Ct:0)}return{resolveViewportRoot:be,resolveScrollContainer:function(ot){var kt,ft,rt,bt;const Je=ye();if(Je)return Je;const mt=be((kt=ot??U.value)!=null?kt:null);if(mt)return mt;const It=(bt=(rt=ot?.ownerDocument)!=null?rt:(ft=U.value)==null?void 0:ft.ownerDocument)!=null?bt:typeof document<"u"?document:null;return It?.scrollingElement||It?.documentElement||null},isReverseFlexScrollRoot:Te,getNormalizedScrollTop:je,getOffsetTopWithinRoot:function(ot,kt){const ft=kt.ownerDocument||ot.ownerDocument||document;if((function(mt,It){return mt===It.documentElement||mt===It.body||mt===It.scrollingElement})(kt,ft))return ot.getBoundingClientRect().top+tt(ft);const rt=kt.getBoundingClientRect(),bt=ot.getBoundingClientRect(),Je=je(kt,ft,!1);return bt.top-rt.top+Je}}})(T,{isClient:G,scrollRoot:te});Wn("markstreamShowTooltips",me),Wn("markstreamHtmlPolicy",ve),Wn("markstreamTypewriter",f),Wn("markstreamFade",P(()=>E.fade!==!1)),Wn("markstreamTypewriterCursor",P(()=>!0)),Wn("markstreamTextStreamState",Y),Wn("markstreamStreamVersion",W),Wn("markstreamParseOptions",P(()=>E.parseOptions)),Wn("markstreamCustomMarkdownIt",P(()=>E.customMarkdownIt));const{smoothStreamingEnabled:Ie,renderContent:he,requestedFinal:Ce,effectiveFinal:Re}=(function(U,re){const ye=e8e(Pt(Pt({},t8e),U.smoothStreamingOptions)),be=P(()=>{var Je,mt,It;return U.smoothStreaming!==!1&&!((Je=U.nodes)!=null&&Je.length)&&(U.smoothStreaming===!0||!((mt=re.inheritedSmoothStreaming)!=null&&mt.value))&&(U.smoothStreaming===!0||KL(U.typewriter)!=="off"||((It=U.maxLiveNodes)!=null?It:0)<=0)}),Te=V(!re.isClient||U.smoothStreaming===!0);yn(()=>{Te.value=!0});const je=P(()=>Te.value&&be.value),tt=P(()=>{var Je;return je.value?ye.visible.value:(Je=U.content)!=null?Je:""}),ot=P(()=>{var Je,mt;const It=(Je=U.parseOptions)!=null?Je:{};return(mt=U.final)!=null?mt:It.final}),kt=P(()=>{const Je=ot.value;return je.value&&Je!=null?!!Je&&ye.caughtUp.value:Je});let ft=0,rt=!1;function bt(){ft=0,rt=!1}return $e([()=>U.content,()=>U.nodes,je,ot],([Je,mt,It,Ct])=>{if(mt?.length)return bt(),void ye.reset("");const Vt=Je??"";if(!It)return bt(),ye.reset(Vt),void(Ct&&ye.finish({flush:!0}));const Ht=ye.source.value;if(Vt){if(Vt!==Ht)if(Vt.startsWith(Ht)){const bn=Vt.slice(Ht.length),Jt=ye.pendingChars.value;bn.length<=8?(ft++,rt||ft>=2&&Jt<=8?(rt=!0,ye.reset(Vt)):ye.enqueue(bn)):(bt(),ye.enqueue(bn))}else bt(),ye.reset(Vt)}else bt(),ye.reset("");Ct&&ye.finish()},{immediate:!0}),{smoothStream:ye,smoothStreamingEligible:be,smoothStreamingEnabled:je,renderContent:tt,requestedFinal:ot,effectiveFinal:kt}})(E,{isClient:G,inheritedSmoothStreaming:oe}),Pe=Ce.value===!0;Wn("markstreamSmoothStreaming",Ie);const Ze=V(!1),lt=V(!1),Dt=V(!1);let ht="",Rt=!1,wt=null;function Fe(){G&&wt!=null&&(window.clearTimeout(wt),wt=null)}function et(){Ze.value=!1,Fe()}function xe(U,re){if(!fe.value)return;const ye=(function(){if(!fe.value)return null;const be=Le(He),Te=Le(nt),je=Math.max(Ee,Te);if(be<=0&&je<=0)return null;const tt={total:be,maxPerFrame:je,byLabel:(ot=He,Object.fromEntries(Array.from(ot.entries()).sort((kt,ft)=>ft[1]-kt[1]||kt[0].localeCompare(ft[0]))))};var ot;return He.clear(),nt.clear(),Ee=0,tt})();console.info(`[markstream-vue][perf] ${U}`,ye?Nn(Pt({},re),{layoutReads:ye}):re)}$e([()=>E.indexKey,()=>E.customId],()=>{var U,re;et(),lt.value=!1,Dt.value=!((U=i.nodes)!=null&&U.length)&&Ce.value!==!0&&!!i.content,ht=(re=he.value)!=null?re:"",Rt=ht.length>0},{flush:"sync"}),$e([()=>i.content,()=>i.nodes,Ce],([U,re,ye])=>{!re?.length&&ye!==!0&&U&&(Dt.value=!0)},{flush:"sync",immediate:!0}),$e([he,()=>i.nodes,Ce],([U,re,ye])=>{const be=U??"";return re?.length||ye===!0?(et(),lt.value=!1,ht=be,void(Rt=!0)):(be.length>0&&(Dt.value=!0),Rt?(ht&&be.length>ht.length&&be.startsWith(ht)?(Ze.value=!0,lt.value=!0,G&&(Fe(),wt=window.setTimeout(()=>{var Te;wt=null,Re.value===!0||(Te=i.nodes)!=null&&Te.length||(Q1(),Ze.value=!1,uf())},1200))):(be.length"u")return null;const je=window;if(je.__markstreamLayoutReadPerformance)return je.__markstreamLayoutReadPerformance;const tt={total:0,maxPerFrame:0,byLabel:{}};return je.__markstreamLayoutReadPerformance=tt,tt})();Te&&(Te.total=Number(Te.total||0)+1,Te.byLabel[be]=Number(Te.byLabel[be]||0)+1,Te.currentFrameTotal=Number(Te.currentFrameTotal||0)+1,Te.frameScheduled||(Te.frameScheduled=!0,typeof window.requestAnimationFrame!="function"?typeof queueMicrotask!="function"?setTimeout(()=>vt(Te),0):queueMicrotask(()=>vt(Te)):window.requestAnimationFrame(()=>vt(Te))))})(U),it||(it=!0,G&&typeof window<"u"&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame(Ge):typeof queueMicrotask!="function"?setTimeout(Ge,0):queueMicrotask(Ge)))}function Qe(U,re){return at(U),re()}const ct=E.customId?`renderer-${E.customId}`:`renderer-${Date.now()}-${Math.random().toString(36).slice(2)}`,zt=(function(U){const re=new Map;return{scope:U,cache:re,clear:()=>re.clear()}})(ct),vn=ct;Wn(Tq,zt);const Gt=Ts(()=>E.customId),{effectiveCustomHtmlTagsSet:ri,mergedParseOptions:So,parsedNodes:en,getParsedNodesDirtyStartIndex:Ki,getParsedNodesRevision:xo}=J3e(E,{instanceMsgId:ct,renderContent:he,effectiveFinal:Re,smoothStreamingEnabled:Ie,debugPerformanceEnabled:fe,customComponentsMap:Gt,logPerf:xe});$e(en,()=>{Ze.value||zt.clear(),W.value+=1},{immediate:!0});const so=P(()=>({customId:E.customId,customHtmlTags:So.value.customHtmlTags,parseOptions:E.parseOptions,customMarkdownIt:E.customMarkdownIt,htmlPolicy:ve.value,viewportPriority:E.viewportPriority,viewportPriorityOptions:q.value,mode:c.value,domMode:E.domMode,codeRenderer:m.value,codeBlockStream:E.codeBlockStream,codeBlockDarkTheme:E.codeBlockDarkTheme,codeBlockLightTheme:E.codeBlockLightTheme,codeBlockMonacoOptions:E.codeBlockMonacoOptions,renderCodeBlocksAsPre:E.renderCodeBlocksAsPre,codeBlockMinWidth:E.codeBlockMinWidth,codeBlockMaxWidth:E.codeBlockMaxWidth,codeBlockProps:E.codeBlockProps,mermaidProps:E.mermaidProps,d2Props:E.d2Props,infographicProps:E.infographicProps,showTooltips:me.value,themes:E.themes,langs:E.langs,isDark:E.isDark,typewriter:f.value,smoothStreamingOptions:E.smoothStreamingOptions,parseCoalesceMs:E.parseCoalesceMs,fade:E.fade}));Wn("markstreamNestedRendererProps",so);const Ks=P(()=>en.value),_o=P(()=>en.value.length),Br=V(null),Fr=V(null),lr=V(null),Hi=V(null),Rs=i.indexKey!=null&&String(i.indexKey).startsWith("list-item-"),Zr=!Rs&&E.customId?WL(E.customId):null,Yr=P(()=>Zr?(e5.value,WL(E.customId)):null),ai=P(()=>{var U;return!!(!J.value&&E.customId&&!Rs&&((U=Yr.value)!=null&&U.enabled))}),wn=P(()=>!!(G&&ai.value)),ki=P(()=>{var U;return!!(!J.value&&((U=i.virtualScroll)!=null&&U.enabled))}),Ds=P(()=>ki.value),qo=V(!1);yn(()=>{qo.value=!0});const Oe=P(()=>!!(G&&ki.value));Wn("markstreamHostScrollManaged",Oe);const dt=P(()=>!!(qo.value&&Oe.value)),Ye=P(()=>wn.value||Oe.value),Yt=P(()=>wn.value||dt.value),Xe=P(()=>{var U;return Ye.value&&((U=Yr.value)==null?void 0:U.textEstimation)!==!1});function ut(){const U=Z.value||Qe("getMeasuredContainerWidth.clientWidth",()=>{var re;return((re=T.value)==null?void 0:re.clientWidth)||0});return Number.isFinite(U)&&U>0?U:0}const Nt=P(()=>{const U=ut();return U>0?Math.max(1,Math.round(U)):640}),Qt=P(()=>{var U,re;return!(Re.value!==!0||ki.value||c.value!=="chat"&&c.value!=="minimal"||l("maxLiveNodes")||l("liveNodeBuffer")||(U=i.nodes)!=null&&U.length||Dt.value||!(((re=E.maxLiveNodes)!=null?re:0)<=0))}),zn=P(()=>{var U;return Qt.value?50:Math.max(1,(U=E.maxLiveNodes)!=null?U:320)}),Zi=P(()=>{var U;return Qt.value?16:Math.max(0,(U=E.liveNodeBuffer)!=null?U:60)}),xn=P(()=>{var U;return!J.value&&E.nodeVirtual!==!1&&!(((U=E.maxLiveNodes)!=null?U:0)<=0&&!Qt.value)&&(E.nodeVirtual===!0?en.value.length>0:en.value.length>zn.value)}),sc=P(()=>xn.value||wn.value||Oe.value),Ko=P(()=>E.viewportPriority!==!1),Xa=P(()=>!!Ko.value&&!Q.value);var el;el=P(()=>Ko.value),Wn(Cq,el);const tl=P(()=>{var U;return!(J.value||E.deferNodesUntilVisible===!1||((U=E.maxLiveNodes)!=null?U:0)<=0||xn.value||en.value.length>900||E.viewportPriority===!1)}),nl=R4e(U=>{var re;return Ae((re=U??T.value)!=null?re:null)},Ko),{requestFrame:Ui,cancelFrame:Zo,hasIdleCallback:Rr,isTestEnv:Dr}=(function(U){const re=U.isClient&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame.bind(window):null,ye=U.isClient&&typeof window.cancelAnimationFrame=="function"?window.cancelAnimationFrame.bind(window):null,be=U.isClient&&typeof window.requestIdleCallback=="function",Te=(function(){var je;if(typeof globalThis>"u"||!("process"in globalThis))return;const tt=(je=Object.getOwnPropertyDescriptor(globalThis,"process"))==null?void 0:je.value;return tt?.env})();return{requestFrame:re,cancelFrame:ye,hasIdleCallback:be,isTestEnv:Te?.NODE_ENV==="test"}})({isClient:G}),rc=P(()=>Re.value===!0&&!ki.value),{resolvedBatchSize:ac,resolvedInitialBatch:il,batchingEnabled:id,incrementalRenderingActive:wu,renderedCount:fs,previousRenderContext:Ns,adaptiveBatchSize:Ls,previousBatchConfig:Ll}=(function(U,re){var ye;const be=P(()=>{var bt;const Je=Math.trunc((bt=U.renderBatchSize)!=null?bt:80);return Number.isFinite(Je)?Math.max(0,Je):0}),Te=P(()=>{var bt;const Je=Math.trunc((bt=U.initialRenderBatchSize)!=null?bt:be.value);return Number.isFinite(Je)?Math.max(0,Je):be.value}),je=P(()=>!re.renderAsFragment.value&&U.batchRendering!==!1&&be.value>0&&re.isClient&&!re.isTestEnv),tt=V(0),ot=V({key:U.indexKey,total:0}),kt=V(Math.max(1,be.value||1)),ft=P(()=>{var bt,Je,mt;return je.value&&!((bt=re.continuousStreaming)!=null&&bt.value)&&!((Je=re.forceFullRenderFinalContent)!=null&&Je.value)&&((mt=U.maxLiveNodes)!=null?mt:0)<=0}),rt=V({batchSize:be.value,initial:Te.value,delay:(ye=U.renderBatchDelay)!=null?ye:16,enabled:ft.value});return{resolvedBatchSize:be,resolvedInitialBatch:Te,batchingEnabled:je,incrementalRenderingActive:ft,renderedCount:tt,previousRenderContext:ot,adaptiveBatchSize:kt,previousBatchConfig:rt}})(E,{isClient:G,isTestEnv:Dr,renderAsFragment:J,forceFullRenderFinalContent:rc,continuousStreaming:P(()=>lt.value&&Re.value!==!0)}),Eo=P(()=>{var U;return!J.value&&E.batchRendering!==!1&&ac.value>0&&!Dr&&((U=E.maxLiveNodes)!=null?U:0)<=0&&!rc.value}),ur=P(()=>Eo.value),Cu=P(()=>Ye.value||ur.value),xa=P(()=>{var U;return Cu.value&&((U=Yr.value)==null?void 0:U.codeBlockEstimation)!==!1}),Lo=new Map,ol=new Map,od=new WeakMap;let Io=null;const lc=new WeakMap,po=new Map,Pl=[];let Jr=[],hs=[],ii=-1;const Yo=qa(Pl),Nr=new Set,sl=V(0);let rl=0;const Su=V(0),sd=P(()=>(Su.value,Array.from(Lo.entries()).sort((U,re)=>U[0]-re[0]))),al=V(null),Jo=V(null);let Di,Ao=null,Wi=0,Ii=null;function Ni(){Di.markFallbackHeightPrefixDirty()}function Lr(U){return Di.getFallbackNodeHeight(U)}function Zs(U,re){return Di.estimateHeightRange(U,re)}function _a(U){return Di.estimateIndexForOffset(U)}const{activeRestoreAnchor:to,getRelativeScrollTopWithinContainer:Ol,setRelativeScrollTopWithinContainer:cr,resolveAnchorOffset:ll,clearRestoreReconcile:Xr,scheduleRestoreReconcile:zl,captureRestoreAnchor:Ps,restoreAnchor:Pr,getAnchorDrift:ul}=(function(U){const{isClient:re,containerRef:ye,parsedNodeCount:be,requestFrame:Te,cancelFrame:je,resolveScrollContainer:tt,getNormalizedScrollTop:ot,getOffsetTopWithinRoot:kt,isReverseFlexScrollRoot:ft,estimateIndexForOffset:rt,estimateHeightRange:bt,getFallbackNodeHeight:Je,clamp:mt}=U,It=V(null);let Ct=null,Vt=[];function Ht(){const un=tt(),$n=ye.value;if(!un||!$n)return null;const oi=un.ownerDocument||$n.ownerDocument||document;if(un===oi.documentElement||un===oi.body||un===oi.scrollingElement){const Xo=$n.getBoundingClientRect();return Math.max(0,-Xo.top)}return Math.max(0,ot(un,oi,!1)-kt($n,un))}function bn(un){var $n;const oi=tt(),Xo=ye.value;if(!oi||!Xo)return;const vr=Math.max(0,un),mo=oi.ownerDocument||Xo.ownerDocument||document,Tu=mo.defaultView||(typeof window<"u"?window:null);if(oi===mo.documentElement||oi===mo.body||oi===mo.scrollingElement){const Ta=ot(oi,mo,!0)+Xo.getBoundingClientRect().top;return void(($n=Tu?.scrollTo)==null||$n.call(Tu,0,Math.max(0,Ta+vr)))}GL(oi,mo,kt(Xo,oi)+vr,{isReverseFlexScrollRoot:Ta=>{var df;return(df=ft?.(Ta))!=null&&df},getNormalizedScrollTop:ot})}function Jt(un){const $n=be.value,oi=mt(un.nodeIndex,0,Math.max(0,$n-1));return bt(0,oi)+Math.max(0,un.offsetWithinNodePx)}function Sn(){if(Ct!=null&&(je?.(Ct),Ct=null),re)for(const un of Vt)window.clearTimeout(un);Vt=[]}function Zt(un){const $n=Jt(un),oi=Ht();oi!=null&&Math.abs(oi-$n)<=.5||bn($n)}return{activeRestoreAnchor:It,getRelativeScrollTopWithinContainer:Ht,setRelativeScrollTopWithinContainer:bn,resolveAnchorOffset:Jt,clearRestoreReconcile:Sn,applyRestoreAnchor:Zt,scheduleRestoreReconcile:function(){It.value&&re&&Ct==null&&(Ct=Te?Te(()=>{Ct=null,It.value&&Zt(It.value)}):null,Ct==null&&It.value&&Zt(It.value))},captureRestoreAnchor:function(){const un=Ht(),$n=be.value;if(un==null||$n<=0)return null;const oi=mt(rt(un+1),0,$n-1),Xo=bt(0,oi),vr=Je(oi);return{nodeIndex:oi,offsetWithinNodePx:mt(un-Xo,0,Math.max(0,vr-1))}},restoreAnchor:function(un){const $n=be.value;if(It.value={nodeIndex:mt(un.nodeIndex,0,Math.max(0,$n-1)),offsetWithinNodePx:Math.max(0,un.offsetWithinNodePx)},Sn(),Zt(It.value),re)for(const oi of[0,120,280,480])Vt.push(window.setTimeout(()=>{It.value&&Zt(It.value)},oi))},getAnchorDrift:function(un){const $n=Ht();return $n==null?null:$n-Jt(un)}}})({isClient:G,containerRef:T,parsedNodeCount:_o,requestFrame:Ui,cancelFrame:Zo,resolveScrollContainer:()=>al.value||ue(),getNormalizedScrollTop:ce,getOffsetTopWithinRoot:se,isReverseFlexScrollRoot:Se,estimateIndexForOffset:_a,estimateHeightRange:Zs,getFallbackNodeHeight:Lr,clamp:ms}),{nodeHeights:$l,heightStats:yo,heightTreeSize:Po,heightSumTree:rd,heightKnownTree:xu,averageNodeHeight:_u,resetHeightMeasurements:Eu,pruneHeightMeasurements:cl,rebuildHeightTrees:ko,syncHeightTreeSize:ad,recordNodeHeight:uc,removeNodeHeights:jl,exportHeightCache:ld,importHeightCache:dr,fenwickRangeSum:ea}=(function(U={}){const re=go({}),ye=go({total:0,count:0}),be=V(0),Te=V([]),je=V([]);function tt(){for(const Je of Object.keys(re))delete re[Number(Je)];ye.total=0,ye.count=0,be.value=0,Te.value=[],je.value=[]}function ot(Je,mt,It){for(let Ct=mt+1;Ct0;Ct-=Ct&-Ct)It+=Je[Ct];return It}function ft(Je){be.value=Je;const mt=new Array(Je+1).fill(0),It=new Array(Je+1).fill(0);for(const[Ct,Vt]of Object.entries(re)){const Ht=Number(Ct),bn=Number(Vt);!Number.isFinite(Ht)||Ht<0||Ht>=Je||!Number.isFinite(bn)||bn<=0||(ot(mt,Ht,bn),ot(It,Ht,1))}Te.value=mt,je.value=It}function rt(Je){if(!Number.isInteger(Je)||Je<0)return!1;const mt=re[Je];if(!Number.isFinite(mt)||mt<=0)return!1;if(delete re[Je],ye.total=Math.max(0,ye.total-mt),ye.count=Math.max(0,ye.count-1),be.value>Je){const It=Te.value,Ct=je.value;It.length&&Ct.length&&(ot(It,Je,-mt),ot(Ct,Je,-1))}return!0}const bt=P(()=>ye.count>0?Math.max(12,ye.total/ye.count):32);return{nodeHeights:re,heightStats:ye,heightTreeSize:be,heightSumTree:Te,heightKnownTree:je,averageNodeHeight:bt,resetHeightMeasurements:tt,pruneHeightMeasurements:function(Je){if(Je<=0)return void tt();let mt=0,It=0;for(const[Ct,Vt]of Object.entries(re)){const Ht=Number(Ct),bn=Number(Vt);!Number.isFinite(Ht)||Ht<0||Ht>=Je||!Number.isFinite(bn)||bn<=0?delete re[Ht]:(mt+=bn,It++)}ye.total=mt,ye.count=It},rebuildHeightTrees:ft,syncHeightTreeSize:function(Je){const mt=be.value;if(Je===mt)return;if(Je=Je||!Number.isFinite(Sn)||Sn<=0)continue;let Zt=Jt+1;for(;ZtCt){const Sn=Te.value,Zt=je.value;if(Sn.length&&Zt.length)if(Jt){const un=Vt-Jt;un!==0&&ot(Sn,Ct,un)}else ot(Sn,Ct,Vt),ot(Zt,Ct,1)}Ht.notify!==!1&&((bn=U.onHeightRecorded)==null||bn.call(U))})(Je,mt,Nn(Pt({},It),{notify:!0}))},removeNodeHeight:function(Je,mt={}){var It;const Ct=rt(Je);return Ct&&mt.notify!==!1&&((It=U.onHeightRecorded)==null||It.call(U)),Ct},removeNodeHeights:function(Je,mt={}){var It;let Ct=0;for(const Vt of Je)rt(Number(Vt))&&Ct++;return Ct>0&&mt.notify!==!1&&((It=U.onHeightRecorded)==null||It.call(U)),Ct},exportHeightCache:function(){return Object.entries(re).map(([Je,mt])=>({index:Number(Je),height:Number(mt)})).filter(Je=>Number.isFinite(Je.index)&&Je.index>=0&&Number.isFinite(Je.height)&&Je.height>0).sort((Je,mt)=>Je.index-mt.index)},importHeightCache:function(Je,mt={}){var It;if(!Array.isArray(Je))return;const Ct=be.value;let Vt=!1;if(mt.mode!=="merge"){const Ht=Object.keys(re);if(Ht.length>0){for(const bn of Ht)delete re[Number(bn)];Vt=!0}}for(const Ht of Je){const bn=Number(Ht.index),Jt=Number(Ht.height);if(!Number.isInteger(bn)||bn<0||Ct>0&&bn>=Ct||!Number.isFinite(Jt)||Jt<=0)continue;const Sn=re[bn];Sn&&Math.abs(Sn-Jt)<=1||(re[bn]=Jt,Vt=!0)}Vt&&((function(){let Ht=0,bn=0;const Jt=be.value;for(const[Sn,Zt]of Object.entries(re)){const un=Number(Sn),$n=Number(Zt);!Number.isFinite(un)||un<0||Jt>0&&un>=Jt||!Number.isFinite($n)||$n<=0?delete re[un]:(Ht+=$n,bn++)}ye.total=Ht,ye.count=bn})(),Ct>0&&ft(Ct),(It=U.onHeightRecorded)==null||It.call(U))},fenwickRangeSum:function(Je,mt,It){if(It<=mt)return 0;const Ct=kt(Je,It-1);return mt<=0?Ct:Ct-kt(Je,mt-1)}}})({onHeightRecorded:()=>{Ni(),Oe.value&&$0(),to.value&&zl(),Jo.value&&j1(),ao("node-resize")}});function ta(U){Number.isInteger(U)&&U>=0&&Nr.add(U)}function dl(U){for(const re of U)ta(Number(re))}function Ve(U){rl++;let re=!0;try{const ye=U();return re=ye!==!1,ye}finally{rl--,rl===0&&re&&sl.value++}}function Ne(){Jr=[],hs=[],ii=-1,Nr.clear(),Yo.value=Pl}function pt(){Ne(),Ve(()=>Eu()),po.clear()}function hn(U){!Number.isInteger(U)||U<0||U>=en.value.length||po.set(U,M0(U))}function Ln(U,re,ye={}){const be=$l[U];ta(U),uc(U,re,ye);const Te=$l[U];return Object.is(be,Te)?(Nr.delete(U),!1):(Te&&Te>0?hn(U):be&&po.delete(U),!0)}function Fn(U,re){const ye=Qe("getNodeLayoutHeight.slot.offsetHeight",()=>{var be,Te;return(Te=(be=Lo.get(U))==null?void 0:be.offsetHeight)!=null?Te:0});return ye>0?ye:Qe("getNodeLayoutHeight.content.offsetHeight",()=>re.offsetHeight)}function Li(U,re={}){re.mode!=="merge"?Ne():dl(U.map(ye=>ye.index)),Ve(()=>dr(U,re)),m3()}const Gn=P(()=>tl.value&&Xa.value),ps=P(()=>{var U;return!J.value&&E.batchRendering!==!1&&ac.value>0&&((U=E.maxLiveNodes)!=null?U:0)<=0}),fr=P(()=>!J.value&&Pe&&Re.value===!0&&!xn.value&&!ki.value&&!ai.value&&!Gn.value&&!ps.value),Ys=P(()=>!!nl&&Gn.value),nf=P(()=>xn.value||Oe.value),{focusIndex:na,liveRange:Mo,updateLiveRange:fl}=(function(U,re){const{parsedNodeCount:ye,virtualizationEnabled:be,maxLiveNodesResolved:Te,liveNodeBufferResolved:je,clamp:tt}=re,ot=je??P(()=>{var rt;return Math.max(0,(rt=U.liveNodeBuffer)!=null?rt:60)}),kt=V(0),ft=go({start:0,end:0});return{liveNodeBufferResolved:ot,focusIndex:kt,liveRange:ft,updateLiveRange:function(){const rt=ye.value;if(!be.value||rt===0)return ft.start=0,void(ft.end=rt);const bt=Math.min(Te.value,rt),Je=ot.value,mt=tt(kt.value-Je,0,Math.max(0,rt-bt));ft.start=mt,ft.end=Math.min(rt,mt+bt)}}})(E,{parsedNodeCount:_o,virtualizationEnabled:xn,maxLiveNodesResolved:zn,liveNodeBufferResolved:Zi,clamp:ms}),Or=new Map,Hl=new Map,Ea=new Map,hl=[],hr=new Map;let of=-1/0;const pl=new Set,ml=V(0);let sf=!1;const rf=P(()=>(ml.value,pl.size)),Js=new Map,pr=new Map,ud=V(0),Wh=P(()=>{ud.value;let U=0;for(const re of Js.values())U+=Math.max(0,re);return U});let mr=null;const Me=P(()=>{if(!xn.value)return en.value.length;const U=Zi.value,re=Math.max(Mo.end+U,il.value),ye=Math.min(en.value.length,re);return Math.max(fs.value,ye)});function Ue(){sf||(sf=!0,queueMicrotask(()=>{sf=!1,ml.value+=1}))}function At(U,re,ye="node-resize"){if(!G||typeof window>"u")return null;const be=window.setTimeout(()=>{pl.delete(be)&&Ue();try{re()}finally{ao(ye)}},Math.max(0,U));return pl.add(be),Ue(),be}function $t(U){G&&U!=null&&(pl.delete(U)&&Ue(),window.clearTimeout(U))}function Cn(){if(G&&typeof window<"u")for(const U of pl)window.clearTimeout(U);pl.size&&(pl.clear(),Ue()),hl.length=0,Ea.clear()}function jn(U){N.value=U}function bi(U){L.value=U}function no(U){H.value=U}const{cancelScheduledFocusSync:Oo,scheduleFocusSync:Xs}=(function(U){const{isClient:re,containerRef:ye,virtualizationEnabled:be,requestFrame:Te,cancelFrame:je,syncFocusToScroll:tt}=U;let ot=null;function kt(){var rt,bt,Je;return(Je=(bt=(rt=ye.value)==null?void 0:rt.ownerDocument)==null?void 0:bt.defaultView)!=null?Je:typeof window<"u"?window:null}function ft(){if(!ot)return;const rt=kt();ot.viaTimeout?rt?rt.clearTimeout(ot.id):clearTimeout(ot.id):je?.(ot.id),ot=null}return{cancelScheduledFocusSync:ft,scheduleFocusSync:function(rt={}){if(!be.value)return;if(!re)return void tt(!0);if(rt.immediate)return ft(),void tt(!0);if(ot)return;const bt=()=>{ot=null,tt()};if(Te)return void(ot={id:Te(bt),viaTimeout:!1});const Je=kt();ot={id:Je?Je.setTimeout(bt,16):setTimeout(bt,16),viaTimeout:!0}}}})({isClient:G,containerRef:T,virtualizationEnabled:xn,requestFrame:Ui,cancelFrame:Zo,syncFocusToScroll:function(U=!1){var re;if(!xn.value)return;const ye=al.value||ue();if(!ye)return;const be=ye.ownerDocument||((re=T.value)==null?void 0:re.ownerDocument)||document,Te=be?.defaultView||(typeof window<"u"?window:null),je=ye===be?.documentElement||ye===be?.body,tt=en.value.length;if(tt<=0)return;if(!je&&tt>0&&Se(ye)){const Ct=Qe("syncFocusToScroll.clientHeight",()=>ye.clientHeight||0),Vt=Qe("syncFocusToScroll.scrollTop",()=>ye.scrollTop),Ht=Vt<0?-Vt:Vt;return void Qh(ms((ot=Math.max(0,Ht)+.5*Math.max(0,Ct),Di.estimateIndexForOffsetFromEnd(ot)),0,Math.max(0,tt-1)),U)}var ot;const kt=(function(Ct,Vt,Ht,bn){const Jt=T.value;if(!Jt)return null;const Sn=bn?0:Qe("syncFocusToScroll.model.root.getBoundingClientRect",()=>Ct.getBoundingClientRect().top),Zt=Qe("syncFocusToScroll.model.container.getBoundingClientRect",()=>Jt.getBoundingClientRect().top),un=Math.max(0,Sn-Zt),$n=bn?Qe("syncFocusToScroll.model.viewport.clientHeight",()=>{var oi,Xo,vr,mo;return(mo=(vr=(Xo=Ht?.innerHeight)!=null?Xo:(oi=Vt.documentElement)==null?void 0:oi.clientHeight)!=null?vr:Ct.clientHeight)!=null?mo:0}):Qe("syncFocusToScroll.model.root.clientHeight",()=>Ct.clientHeight);return ms(_a(un+.5*Math.max(0,$n)),0,Math.max(0,en.value.length-1))})(ye,be,Te,je);if(kt!=null)return void Qh(kt,U);const ft=je?null:Qe("syncFocusToScroll.root.getBoundingClientRect",()=>ye.getBoundingClientRect()),rt=je?0:ft.top,bt=je?Qe("syncFocusToScroll.viewport.clientHeight",()=>{var Ct,Vt;return(Vt=(Ct=Te?.innerHeight)!=null?Ct:ye.clientHeight)!=null?Vt:0}):ft.bottom,Je=sd.value;let mt=null,It=null;for(const[Ct,Vt]of Je){if(!Vt)continue;const Ht=Qe("syncFocusToScroll.slot.getBoundingClientRect",()=>Vt.getBoundingClientRect());Ht.bottom<=rt||Ht.top>=bt||(mt==null&&(mt=Ct),It=Ct)}if(mt==null||It==null){const Ct=T.value;if(!Ct)return;const Vt=je?{top:0}:Qe("syncFocusToScroll.fallback.root.getBoundingClientRect",()=>ye.getBoundingClientRect()),Ht=Qe("syncFocusToScroll.fallback.scrollTop",()=>ce(ye,be,je)),bn=je?(()=>{const Sn=Qe("syncFocusToScroll.fallback.container.getBoundingClientRect",()=>Ct.getBoundingClientRect()),Zt=(je?0:Vt.top)-Sn.top;return Math.max(0,Zt)})():(()=>{const Sn=se(Ct,ye);return Math.max(0,Ht-Sn)})(),Jt=je?Qe("syncFocusToScroll.fallback.viewport.clientHeight",()=>{var Sn,Zt,un,$n;return($n=(un=(Zt=Te?.innerHeight)!=null?Zt:(Sn=be?.documentElement)==null?void 0:Sn.clientHeight)!=null?un:ye.clientHeight)!=null?$n:0}):Qe("syncFocusToScroll.fallback.root.clientHeight",()=>ye.clientHeight);return void Qh(ms(_a(bn+.5*Math.max(0,Jt)),0,Math.max(0,en.value.length-1)),!0)}Qh(Math.round((mt+It)/2),U)}}),{visibleNodeIndices:cc,nodeVisibilityHandles:Iu,nodeVisibilityWatchStops:L1,nodeVisibilityFallbackTimers:Mu,clearVisibilityFallback:Pi,markNodeVisible:ia,cleanupNodeVisibility:gl,destroyNodeVisibilityState:dc}=X3e({isClient:G,shouldTrackVisibleNodeIndices:()=>Gn.value,shouldCleanupNodeVisibility:()=>xn.value,onNodeMarkedVisible:U=>{xn.value?Xs():na.value=ms(U,0,Math.max(0,en.value.length-1))},onNodeVisibilityCleaned:U=>{Lo.delete(U)&&RT()}}),{cleanupScrollListener:y0,setupScrollListener:wy}=(function(U){const{isClient:re,virtualizationEnabled:ye,listenerEnabled:be,scrollRootElement:Te,resolveScrollContainer:je,scheduleFocusSync:tt,onScroll:ot}=U;let kt=null,ft=null;function rt(){kt&&(kt(),kt=null),ft=null,Te.value=null}function bt(Je){const mt=U.getScrollTop?U.getScrollTop(Je):Je.scrollTop;return Math.max(0,Number.isFinite(mt)?Math.abs(mt):0)}return{cleanupScrollListener:rt,setupScrollListener:function(){if(!re)return;if(!((Je=be?.value)!=null?Je:ye.value))return void rt();var Je;const mt=je();if(!mt)return void rt();if(Te.value===mt&&kt)return;rt(),ft=bt(mt);const It=()=>{if(ot?.(),ye.value){const Ct=(function(Vt){const Ht=bt(Vt),bn=ft;ft=Ht;const Jt=Math.max(480,.75*(Vt.clientHeight||0));return bn==null?Ht>Jt?{immediate:!0}:void 0:Math.abs(Ht-bn)>Jt?{immediate:!0}:void 0})(mt);Ct?tt(Ct):tt()}};mt.addEventListener("scroll",It,{passive:!0}),Te.value=mt,kt=()=>{mt.removeEventListener("scroll",It)}}}})({isClient:G,virtualizationEnabled:xn,listenerEnabled:nf,scrollRootElement:al,resolveScrollContainer:ue,scheduleFocusSync:Xs,onScroll:function(){const U=Jo.value;if(!U)return;const re=Gh();if(!re||(function(be){if(U1()>=Wi)return Ii=null,!1;const Te=Ii;if(Te==null)return!0;const je=Math.abs(be.scrollTop-Te)<=2;return je||(Ii=null),je})(re))return;const ye=kT(re);ye!=null?(ye<-32||Math.abs(Math.max(0,ye)-Math.max(0,U.distanceFromBottomPx))>32)&&$1("restore"):$1("restore")},getScrollTop:U=>{var re;const ye=U.ownerDocument||((re=T.value)==null?void 0:re.ownerDocument)||document,be=U===ye.documentElement||U===ye.body||U===ye.scrollingElement;return Qe("scrollListener.getScrollTop",()=>ce(U,ye,be))}});function Qh(U,re=!1){const ye=ms(U,0,Math.max(0,en.value.length-1));!re&&Math.abs(ye-na.value)<=1||(na.value=ye,fl())}function ms(U,re,ye){return Math.min(Math.max(U,re),ye)}function Vh(U=en.value.length){const re=Ki();return!Number.isInteger(re)||re<0?U:ms(re,0,U)}function k0(U){return U?.firstElementChild}function b0(U,re){var ye;return U?(ye=U.matches)!=null&&ye.call(U,re)?U:U.querySelector(re):null}function Cy(U,re){U<1||U>6||(O[U]=re)}function Sy(){if(!Ye.value)return void(Z.value=0);const U=Qe("updateExperimentContainerWidth.clientWidth",()=>{var re,ye;return(ye=(re=T.value)==null?void 0:re.clientWidth)!=null?ye:0});Z.value=U>0?U:0}let zr=null;function af(){zr?.disconnect(),zr=null}const xy=Bv("ViewportDeferredMarkdownCodeBlockNode",Lc({loader:()=>uo(null,null,function*(){return(yield rs(()=>import("./index5-COqqDMp9.js"),__vite__mapDeps([6,4,5]))).default}),loadingComponent:bw,delay:0,suspensible:!1}),bw);function w0(U){return U===xy}const cd=P(()=>m.value==="pre"?Na:m.value==="shiki"?xy:q8);function P1(){var U;return((U=E.codeBlockProps)==null?void 0:U.showHeader)!==!1}function _y(U,re,ye){const be=$l[re],Te=typeof be=="number"&&be>0;if(Xe.value&&!Te&&!(function(je){return!!Gt.value.paragraph&&(je.type==="paragraph"||je.type==="list_item"||je.type==="list")})(U)){const je=Mq(U,ye,ee.value);if(je)return je}if(xa.value&&U.type==="code_block"){const je=(function(tt){if(tt.type!=="code_block")return null;const ot=JT(tt,Dy(tt));return w0(ot)?"markdown":ot===Na?"pre":ot===cd.value||ot===q8?"monaco":null})(U);if(je==="monaco"||je==="markdown"||je==="pre")return(function(tt,ot){var kt,ft,rt;if(!tt||tt.type!=="code_block")return null;const bt=ot.rendererKind,Je=bt!=="pre"&&ot.showHeader!==!1,mt=!!tt.diff;let It=0,Ct=500;if(bt==="monaco"){const Ht=(kt=ot.monacoOptions)!=null?kt:{},bn=i5(tt,Ht,ot.width),Jt=(function(Zt){const un=typeof Zt?.fontSize=="number"&&Zt.fontSize>0?Zt.fontSize:12;return typeof Zt?.lineHeight=="number"&&Zt.lineHeight>0?Zt.lineHeight:Math.round(1.5*un)})(Ht),Sn=(function(Zt,un){var $n,oi;const Xo=typeof(($n=Zt?.padding)==null?void 0:$n.top)=="number"?Zt.padding.top:un?0:8,vr=typeof((oi=Zt?.padding)==null?void 0:oi.bottom)=="number"?Zt.padding.bottom:un?0:8;return Math.max(0,Xo)+Math.max(0,vr)})(Ht,mt);Ct=typeof Ht.MAX_HEIGHT=="number"&&Ht.MAX_HEIGHT>0?Ht.MAX_HEIGHT:500,It=Math.round(bn*Jt+Sn)}else if(bt==="markdown"){const Ht=i5(tt);It=Math.round(21*Ht+32)}else{const Ht=i5(tt);It=Math.round(28*Ht),Ct=Number.POSITIVE_INFINITY}const Vt=Math.max(1,Math.min(It,Ct));return Pt({kind:"code-block",height:Math.round(Vt+(Je?40:0)),contentHeight:Vt,rendererKind:bt},mt&&bt==="monaco"?{diffInline:VE((ft=ot.monacoOptions)!=null?ft:{},(rt=ot.width)!=null?rt:0)}:{})})(U,{rendererKind:je,monacoOptions:E.codeBlockMonacoOptions,showHeader:P1(),width:ye})}return null}tg(()=>{if(sl.value,rl>0)return;const U=en.value,re=xo();if(!U.length||!Cu.value)return Jr=[],hs=[],ii=-1,Nr.clear(),void(Yo.value=Pl);const ye=Z.value||Qe("estimatedNodeHeights.clientWidth",()=>{var ft;return((ft=T.value)==null?void 0:ft.clientWidth)||0});if(!Number.isFinite(ye)||ye<=0)return Jr=[],hs=[],ii=-1,Nr.clear(),void(Yo.value=Pl);const be=(function(ft){return[Math.round(ft),Xe.value,xa.value,ee.value,E.codeBlockMonacoOptions,P1(),m.value,Gt.value,e5.value]})(ye),Te=Jr.length<=U.length&&(tt=be,(je=hs).length===tt.length&&je.every((ft,rt)=>Object.is(ft,tt[rt])));var je,tt;const ot=Te&&ii===re?U.length:Te?Vh(U.length):0,kt=Te?Array.from(Nr):[];Jr.length=U.length;for(let ft=ot;ft=0&&ftYo.value);Di=(function(U){let re=!0,ye=[0],be="";function Te(rt){var bt;const Je=U.nodeHeights[rt];if(Number.isFinite(Je)&&Je>0)return Je;const mt=U.parsedNodes.value[rt],It=mt?.type,Ct=!!((bt=U.hasCustomParagraphComponent)!=null&&bt.call(U)),Vt=U.estimatedNodeHeights.value[rt],Ht=Vt?.height;if(!(function(Jt,Sn,Zt){return!!(Zt&&Sn?.kind==="simple-text"&&(Jt==="paragraph"||Jt==="list_item"||Jt==="list"))})(It,Vt,Ct)&&Number.isFinite(Ht)&&Ht>0)return Ht;const bn=j3e(mt,U.getContainerWidth()||640);return It==="heading"||It==="paragraph"&&bn<=28&&(function(Jt,Sn){if(Sn)return!1;const Zt=Jt.children;return!Array.isArray(Zt)||!Zt.length||Zt.every(Bq)})(mt,Ct)?bn:Math.max(U.averageNodeHeight.value,bn)}function je(){var rt;const bt=U.parsedNodes.value.length,Je=U.getPrefixCacheKeyParts().join(":");if(!re&&be===Je)return ye;const mt=new Array(bt+1);mt[0]=0;for(let It=0;It=((bt=It[mt])!=null?bt:0))return mt-1;let Ct=0,Vt=mt-1,Ht=mt-1;for(;Ct<=Vt;){const bn=Ct+Vt>>1;((Je=It[bn+1])!=null?Je:0)>=rt?(Ht=bn,Vt=bn-1):Ct=bn+1}return Ht}function ot(rt,bt){var Je,mt;if(rt>=bt)return 0;if(U.heightEstimationActive.value)return(function(Vt,Ht){var bn,Jt;const Sn=U.parsedNodes.value.length,Zt=ZL(Math.trunc(Vt),0,Sn),un=ZL(Math.trunc(Ht),Zt,Sn);if(Zt>=un)return 0;const $n=je();return((bn=$n[un])!=null?bn:0)-((Jt=$n[Zt])!=null?Jt:0)})(rt,bt);if(U.heightTreeSize.value!==U.parsedNodes.value.length){let Vt=0;for(let Ht=rt;HtZt<=0?0:U.fenwickRangeSum(Ct,0,Zt)+(Zt-U.fenwickRangeSum(Vt,0,Zt))*It;let bn=0,Jt=Je.length-1,Sn=Je.length-1;for(;bn<=Jt;){const Zt=bn+Jt>>1;Ht(Zt+1)>=rt?(Sn=Zt,Jt=Zt-1):bn=Zt+1}return Sn}let mt=rt;for(let It=0;It0||rt++}return rt}return{markFallbackHeightPrefixDirty:function(){re=!0},getFallbackNodeHeight:Te,estimateHeightRange:ot,estimateIndexForOffset:kt,estimateIndexForOffsetFromEnd:function(rt){var bt,Je;const mt=U.parsedNodes.value;if(!mt.length)return 0;if(rt<=0)return Math.max(0,mt.length-1);if(U.heightEstimationActive.value){const Ct=(bt=je()[mt.length])!=null?bt:0;return tt(Math.max(0,Ct-rt))}if(U.heightTreeSize.value===mt.length){const Ct=ot(0,mt.length);return kt(Math.max(0,Ct-rt))}let It=rt;for(let Ct=mt.length-1;Ct>=0;Ct--){const Vt=(Je=U.nodeHeights[Ct])!=null?Je:U.averageNodeHeight.value;if(It<=Vt)return Ct;It-=Vt}return 0},getEstimatedNodeHeightCount:ft,buildVirtualHeightSummary:function(rt){var bt;const Je=U.parsedNodes.value.length;return{totalNodes:Je,measuredCount:U.heightStats.count,estimatedCount:ft(),averageNodeHeight:U.averageNodeHeight.value,topSpacerHeight:rt.topSpacerHeight,bottomSpacerHeight:rt.bottomSpacerHeight,estimatedTotalHeight:ot(0,Je),width:(bt=rt.width)!=null?bt:U.getContainerWidth()}}}})({parsedNodes:en,nodeHeights:$l,heightStats:yo,heightTreeSize:Po,heightSumTree:rd,heightKnownTree:xu,averageNodeHeight:_u,heightEstimationActive:Ye,estimatedNodeHeights:dd,getContainerWidth:ut,hasCustomParagraphComponent:()=>!!Gt.value.paragraph,getPrefixCacheKeyParts:()=>{var U;const re=ov(Z.value||Qe("getFallbackHeightPrefix.clientWidth",()=>{var be;return((be=T.value)==null?void 0:be.clientWidth)||0})),ye=((U=i.virtualScroll)==null?void 0:U.measurementKey)==null?"":String(i.virtualScroll.measurementKey);return[en.value.length,yo.count,Math.round(yo.total),Math.round(100*_u.value),ye,re,Ye.value?1:0,e5.value,W.value,Gt.value.paragraph?1:0]},fenwickRangeSum:ea}),$e(()=>en.value.length,U=>{var re;Ni(),U<=0?pt():(Ucl(re))),ad(U))},{immediate:!0});const Ey=P(()=>{if(!xn.value)return en.value.map((be,Te)=>({node:be,index:Te}));const U=en.value.length,re=ms(Mo.start,0,U),ye=ms(Mo.end,re,U);return en.value.slice(re,ye).map((be,Te)=>({node:be,index:re+Te}))}),C0=P(()=>xn.value?Zs(0,Math.min(Mo.start,en.value.length)):0),S0=P(()=>{if(!xn.value)return 0;const U=en.value.length;return Zs(Math.min(Mo.end,U),U)});function x0(){return Di.buildVirtualHeightSummary({topSpacerHeight:C0.value,bottomSpacerHeight:S0.value,width:hd()})}function _0(){const U=en.value,re=x0();return Nn(Pt({},re),{probe:{paragraphReady:!!ee.value.paragraph,listItemReady:!!ee.value.listItem,listWrapperOverhead:ee.value.listWrapperOverhead,headingReadyLevels:Object.entries(ee.value.headings).filter(([,ye])=>!!ye).map(([ye])=>Number(ye))},nodes:U.map((ye,be)=>{var Te,je,tt,ot,kt,ft,rt,bt,Je;return{index:be,type:ye.type,estimateKind:(je=(Te=dd.value[be])==null?void 0:Te.kind)!=null?je:null,rendererKind:(ot=(tt=dd.value[be])==null?void 0:tt.rendererKind)!=null?ot:null,estimatedHeight:(ft=(kt=dd.value[be])==null?void 0:kt.height)!=null?ft:null,estimatedContentHeight:(bt=(rt=dd.value[be])==null?void 0:rt.contentHeight)!=null?bt:null,measuredHeight:(Je=$l[be])!=null?Je:null}})})}function O1(){return i.indexKey!=null?String(i.indexKey):ki.value?`virtual-${Qi()}`:"markdown-renderer"}function E0(U){const re=String(U),ye=`${O1()}-`;if(!re.startsWith(ye))return null;const be=re.slice(ye.length).match(/^(\d+)(?:$|-)/);if(!be)return null;const Te=Number(be[1]);return!Number.isInteger(Te)||Te<0||Te>=en.value.length?null:Te}function Qi(){var U,re,ye;const be=(U=i.virtualScroll)==null?void 0:U.sessionKey;return String(be!=null&&be!==""?be:(ye=(re=i.indexKey)!=null?re:E.customId)!=null?ye:ct)}function zo(){var U;const re=(U=i.virtualScroll)==null?void 0:U.threadKey;return re==null||re===""?void 0:String(re)}const fd=P(()=>{var U,re,ye;return(ye=zo())!=null?ye:String((re=(U=i.indexKey)!=null?U:E.customId)!=null?re:ct)});function I0(U){var re;return(U??"")===((re=zo())!=null?re:"")}function Ul(){var U,re,ye;return re=(U=i.virtualScroll)==null?void 0:U.measurementKey,ye=(function(){const be=m.value;return(function(Te){var je,tt;const ot=Te.renderer,kt=ot==="monaco"?Te.codeBlockMonacoOptions:void 0,ft=Te.codeBlockProps,rt=ot==="shiki";return[Te.isDark?"dark":"light",ot==="monaco"?"code-rich":ot==="pre"?"code-pre":"code-shiki",Te.codeBlockStream===!1?"code-static":"code-stream",er(Te.codeBlockMinWidth),er(Te.codeBlockMaxWidth),...rt?[Rwe((je=ft?.themes)!=null?je:Te.themes,(tt=ft?.langs)!=null?tt:Te.langs)]:[],er(kt?.fontSize),er(kt?.lineHeight),er(kt?.fontFamily),er(kt?.tabSize),er(kt?.MAX_HEIGHT),er(kt?.wordWrap),er(kt?.wrappingIndent),er(kt?.padding),er(ft?.showHeader),er(ft?.showCopyButton),er(ft?.showExpandButton),er(ft?.showPreviewButton),er(ft?.showCollapseButton),er(ft?.showFontSizeButtons)].join("\0")})({renderer:be,isDark:E.isDark,codeBlockStream:E.codeBlockStream,codeBlockMinWidth:E.codeBlockMinWidth,codeBlockMaxWidth:E.codeBlockMaxWidth,codeBlockMonacoOptions:be==="monaco"?E.codeBlockMonacoOptions:void 0,codeBlockProps:E.codeBlockProps,themes:be==="shiki"?E.themes:void 0,langs:be==="shiki"?E.langs:void 0})})(),[re==null?"":String(re),ye].join("\0")}function hd(){return ut()}const lf=P(()=>ov(hd())),ke=P(()=>[Ul(),lf.value].join("\0")),qe=P(()=>{var U;return ki.value?["virtual",(U=zo())!=null?U:"",Qi(),ke.value].join("\0"):i.indexKey});function Ke(){ud.value+=1}function yt(U){return!(!U||!Number.isInteger(U.index)||U.index<0||U.index>=en.value.length||U.sessionKey!==Qi()||U.threadKey!==zo()||U.layoutEpochKey!==ke.value)}function Ot(U){const re=String(U),ye=pr.get(re);return ye?yt(ye)?ye.index:null:E0(re)}function ln(U="async-node"){(Js.size||pr.size)&&(Js.clear(),pr.clear(),Ke(),ao(U))}const dn=qt(d7,null),In={reportHeight(U,re){if(!Oe.value)return;const ye=Ot(U);if(ye==null)return;const be=Or.get(ye);if(!be)return;const Te=Number(re),je=Fn(ye,be);(function(tt,ot,kt={}){Ve(()=>Ln(tt,ot,kt))})(ye,Number.isFinite(Te)&&Te>0?Math.max(Te,je||0):je)},markPending(U){if(!Oe.value)return;const re=E0(U);re!=null&&(function(ye,be){var Te;const je=pr.get(ye);if(je&&yt(je))return Js.set(ye,Math.max(0,(Te=Js.get(ye))!=null?Te:0)+1),Ke(),void ao("async-node");Js.set(ye,1),pr.set(ye,(function(tt){return{index:tt,sessionKey:Qi(),threadKey:zo(),layoutEpochKey:ke.value}})(be)),Ke(),ao("async-node")})(String(U),re)},markSettled(U){if(!Oe.value)return;const re=String(U),ye=Ot(U);if((ye!=null||(function(be){return Js.has(String(be))})(re))&&(function(be){var Te;const je=(Te=Js.get(be))!=null?Te:0;return!(je<=0||(je<=1?(Js.delete(be),pr.delete(be)):Js.set(be,je-1),Ke(),je===1&&ao("async-node"),0))})(re)&&ye!=null){const be=Or.get(ye);be&&P0(ye,be)}}};function pn(){let U=0;for(const re of Or.values())U+=Qe("getVisibleDomHeight.offsetHeight",()=>{var ye;return(ye=re?.offsetHeight)!=null?ye:0});return Math.ceil(Math.max(0,U))}Wn(d7,{reportHeight(U,re){In.reportHeight(U,re),dn?.reportHeight(U,re)},markPending(U){In.markPending(U),dn?.markPending(U)},markSettled(U){In.markSettled(U),dn?.markSettled(U)}});let Hn,Kn=null,di=null;function li(U){return U!==!1&&U!=null&&U!==""}function ro(){return xn.value?(function(){if(!xn.value)return!0;const U=en.value.length,re=ms(Mo.start,0,U),ye=ms(Mo.end,re,U);if(re>=ye)return!0;for(let be=re;be=Me.value}function gr(){return Re.value===!0&&!Ze.value&&Wh.value===0&&pl.size===0&&hr.size===0&&mr==null&&ro()}function oa(){var U,re;if(((U=i.virtualScroll)==null?void 0:U.settleMode)!=="manual"||Kn===Qi()&&Hn===zo())return!0;const ye=(re=i.virtualScroll)==null?void 0:re.settledToken;return!!li(ye)&&di===j0(ye)}function gs(){return gr()&&oa()}function Ia(U,re){return re.totalNodes<=0?U==="final"?"final":"estimate":re.measuredCount>=re.totalNodes?U==="final"?"final":"measured":re.measuredCount>0||re.estimatedCount>0?"mixed":"estimate"}function fc(U="manual",re){const ye=x0(),be=(function(Te){return Te||(Re.value!==!0?en.value.length>0?"streaming":"estimating":!ro()||hr.size>0||mr!=null?"measuring":gs()?"settled":"settling")})(re);return{sessionKey:Qi(),threadKey:zo(),phase:be,nodeCount:ye.totalNodes,liveRange:{start:Mo.start,end:Mo.end},renderedCount:fs.value,measuredCount:ye.measuredCount,estimatedCount:ye.estimatedCount,averageNodeHeight:ye.averageNodeHeight,topSpacerHeight:ye.topSpacerHeight,bottomSpacerHeight:ye.bottomSpacerHeight,visibleDomHeight:pn(),totalHeight:yT(),width:ye.width,final:Re.value===!0,stable:gs(),confidence:Ia(be,ye),reason:U}}function Gh(){const U=al.value||ue(),re=T.value;if(!U||!re)return null;const ye=U.ownerDocument||re.ownerDocument||document,be=U===ye.documentElement||U===ye.body||U===ye.scrollingElement,Te=Qe("getScrollBox.scrollTop",()=>ce(U,ye,be)),je=Qe("getScrollBox.scrollHeight",()=>{var ot,kt,ft,rt,bt;return be?Math.max((kt=(ot=ye.documentElement)==null?void 0:ot.scrollHeight)!=null?kt:0,(rt=(ft=ye.body)==null?void 0:ft.scrollHeight)!=null?rt:0,(bt=U.scrollHeight)!=null?bt:0):U.scrollHeight}),tt=Qe("getScrollBox.clientHeight",()=>{var ot;return be?((ot=ye.documentElement)==null?void 0:ot.clientHeight)||U.clientHeight||0:U.clientHeight});return{root:U,doc:ye,isViewportRoot:be,scrollTop:Te,scrollHeight:je,clientHeight:tt}}function yT(){const U=en.value.length,re=Math.max(0,Zs(0,U)),ye=Qe("getRendererLogicalHeight.offsetHeight",()=>{var Te,je;return(je=(Te=T.value)==null?void 0:Te.offsetHeight)!=null?je:0}),be=Math.max(0,ye>0?ye:Qe("getRendererLogicalHeight.scrollHeight",()=>{var Te,je;return(je=(Te=T.value)==null?void 0:Te.scrollHeight)!=null?je:0}));return U<=0?Math.ceil(ye):xn.value?re>0?Math.max(1,Math.ceil(re),(function(){let Te=C0.value+S0.value;for(const je of Lo.values())je&&(Te+=Math.max(0,Qe("getVirtualizedDomLogicalHeight.offsetHeight",()=>je.offsetHeight||0)));return Math.ceil(Math.max(0,Te))})(),(function(Te,je){return Te<=0||je<=0?0:je<=Te+Math.max(512,.05*Te)?Math.ceil(je):0})(re,be)):Math.max(1,Math.ceil(be)):Oe.value?re>0||yo.count>0||Di.getEstimatedNodeHeightCount()>0?(wu.value&&fs.value,Math.max(1,Math.ceil(be),Math.ceil(re))):Math.ceil(be):Math.max(1,Math.ceil(be),Math.ceil(re))}function kT(U){const re=T.value;if(!re)return null;const ye=Qe("getRendererBottomDistanceFromViewport.getBoundingClientRect",()=>re.getBoundingClientRect());return(function(Te){return Te.isViewportRoot?Te.clientHeight:Qe("getViewportBottomInRoot.getBoundingClientRect",()=>Te.root.getBoundingClientRect().bottom)})(U)-ye.bottom}function dne(U={}){const re=U.requireViewport!==!1,ye=(function(je=64){const tt=Gh(),ot=T.value;if(!tt||!ot)return!1;const kt=(function(rt){if(rt.isViewportRoot)return{top:0,bottom:rt.clientHeight};const bt=Qe("getVirtualViewportRect.getBoundingClientRect",()=>rt.root.getBoundingClientRect());return{top:bt.top,bottom:bt.bottom}})(tt),ft=Qe("isRendererNearVirtualViewport.getBoundingClientRect",()=>ot.getBoundingClientRect());return ft.bottom>=kt.top-je&&ft.top<=kt.bottom+je})();if(re&&!ye)return null;const be=(function(){const je=Gh(),tt=T.value;if(!je||!tt||Math.max(0,je.scrollHeight-je.scrollTop-je.clientHeight)>64)return null;const ot=kT(je);return ot==null?null:ot>=-8&&ot<=160?{type:"bottom",distanceFromBottomPx:Math.max(0,ot)}:null})();if(be)return{anchor:be,captured:!0};const Te=Ps();if(Te)return{anchor:{type:"node",nodeIndex:Te.nodeIndex,offsetWithinNodePx:Te.offsetWithinNodePx},captured:ye};if(U.allowFallback===!0){const je=(function(){const tt=en.value.length;return tt<=0?null:{type:"node",nodeIndex:ms(na.value,0,Math.max(0,tt-1)),offsetWithinNodePx:0}})();return je?{anchor:je,captured:!1}:null}return null}function r3(U){let re=2166136261;for(let ye=0;ye>>0).toString(36)}function fne(U,re){let ye=U;for(let be=0;be8192?`${be.slice(0,8192)}...${be.length}`:be;return`${be.length}:${r3(Te)}`})(U)}`;if(typeof U=="function")return"fn";if(typeof U!="object")return typeof U;if(re.has(U))return"cycle";if(ye>=6)return"max-depth";re.add(U);try{if(Array.isArray(U)){if(U.length<=160){const ft=[];for(let rt=0;rt=ot&&tt.push(rt)}return[`a:${U.length}`,`h=${je.join(",")}`,`t=${tt.join(",")}`,`all=${(kt>>>0).toString(36)}`].join(":")}const be=U,Te=Object.keys(be).filter(je=>{const tt=be[je];return je!=="parent"&&je!=="el"&&je!=="component"&&(tt==null||typeof tt=="string"||typeof tt=="number"||typeof tt=="boolean"||hne.has(je))}).sort();return`o:${Te.length}:${Te.map(je=>`${je}=${Iy(be[je],re,ye+1)}`).join(";")}`}finally{re.delete(U)}}let a3=-1,l3="",qh=[2166136261];function M0(U){const re=en.value[U];return re?r3(Iy(re)):""}function pne(U,re){let ye=U;for(let be=0;be>>0}function u3(){var U,re;const ye=W.value;if(a3===ye)return l3;const be=en.value.length;let Te=Vh(be);(a3!==ye-1||Te>be||qh.length>>0).toString(36),a3=ye,l3}function z1(U,re={}){var ye;const be=re.includeHeightCache===!0,Te=(ye=re.includeContentHash)!=null?ye:be,je=be?(function(ot){const kt=(function(){var Ct,Vt;const Ht=Number((Vt=(Ct=i.virtualScroll)==null?void 0:Ct.heightCacheLimit)!=null?Vt:5e3);return!Number.isFinite(Ht)||Ht<=0?Number.POSITIVE_INFINITY:Math.max(1,Math.trunc(Ht))})();if(!Number.isFinite(kt)||ot.length<=kt)return ot;const ft=new Map,rt=Ct=>{!Ct||ft.size>=kt||ft.set(Ct.index,Ct)},bt=en.value.length,Je=ms(Mo.start-2*Zi.value,0,bt),mt=ms(Mo.end+2*Zi.value,Je,bt);for(const Ct of ot)Ct.index>=Je&&Ct.index=0&&ft.sizeCt.index-Vt.index).slice(0,kt)})(ld().map(ot=>{var kt;const ft=en.value[ot.index];return ft?Nn(Pt({},ot),{nodeType:String((kt=ft.type)!=null?kt:""),signature:M0(ot.index)}):null}).filter(ot=>!!ot)):[],tt=dne({allowFallback:re.allowAnchorFallback===!0,requireViewport:re.requireViewport});return tt||je.length||re.includeEmptyState===!0?Nn(Pt({sessionKey:U.sessionKey,threadKey:U.threadKey},tt?{anchor:tt.anchor,anchorCaptured:tt.captured}:{anchorCaptured:!1}),{metrics:U,width:U.width,contentHash:Te?u3():void 0,measurementKey:Ul()||void 0,heightCache:je.length?je:void 0}):null}function c3(U){var re,ye;const be=Gh();if(!be)return;const Te=(function(ot){const kt=T.value;if(!kt)return null;const ft=se(kt,ot.root),rt=en.value.length,bt=Qe("getRendererBottomOffsetWithinRoot.offsetHeight",()=>kt.offsetHeight||0),Je=Math.max(0,bt>0?bt:rt>0?Qe("getRendererBottomOffsetWithinRoot.scrollHeight",()=>kt.scrollHeight||0):0),mt=yT();return ft+Math.max(Je,mt)})(be);if(Te==null)return;const je=Math.max(0,U.distanceFromBottomPx),tt=Math.max(0,Te-be.clientHeight-je);(function(ot){Wi=U1()+120,Ii=ot})(tt),be.isViewportRoot?(ye=(re=be.doc.defaultView)==null?void 0:re.scrollTo)==null||ye.call(re,0,tt):GL(be.root,be.doc,tt,{isReverseFlexScrollRoot:Se,getNormalizedScrollTop:ce})}const d3=[];function bT(){if(G)for(Ao!=null&&(Zo?.(Ao),Ao=null);d3.length;){const U=d3.pop();U!=null&&window.clearTimeout(U)}}function $1(U){const re=!!Jo.value;Jo.value=null,Wi=0,Ii=null,bT(),re&&U&&ao(U)}function j1(){if(!Jo.value||!G||Ao!=null)return;const U=()=>{Ao=null;const re=Jo.value;re&&c3(re)};Ao=Ui?Ui(U):null,Ao==null&&U()}function wT(U,re={}){const ye=en.value.length;return ye<=0?[]:U.filter(be=>!(!Number.isInteger(be.index)||be.index<0||be.index>=ye)&&!(!Number.isFinite(be.height)||be.height<=0)&&!(re.requireSignature&&!be.signature)&&!(re.requireCompatibilityMetadata&&!be.nodeType&&!be.signature)&&(function(Te){var je;const tt=en.value[Te.index];return!(!tt||Te.nodeType&&Te.nodeType!==String((je=tt.type)!=null?je:"")||Te.signature&&Te.signature!==M0(Te.index))})(be))}function CT(U){const re=ov(hd()),ye=ov(U);return re!==-1&&ye!==-1&&re===ye}function f3(U){var re;const ye=Number(U?.width);if(Number.isFinite(ye)&&ye>0)return ye;const be=Number((re=U?.metrics)==null?void 0:re.width);return Number.isFinite(be)&&be>0?be:null}function ST(U){var re;return U.sessionKey===Qi()&&!!I0(U.threadKey)&&((re=U.measurementKey)!=null?re:"")===Ul()&&!!CT(f3(U))&&!!(function(ye){const be=ye.heightCache;return!!be?.length&&(xT(ye)?be.some(Te=>!!(Te.nodeType||Te.signature)):be.some(Te=>!!Te.signature))})(U)}function xT(U){return!!(U.contentHash&&U.contentHash===u3())}function mne(U){return!xT(U)}let Kh=null,Zh=null,My=null,T0=null,B0=null;function h3(U){var re;const ye=U.map(Te=>{var je,tt;return[Te.index,Math.round(10*Te.height),(je=Te.nodeType)!=null?je:"",(tt=Te.signature)!=null?tt:""].join("")}).join(""),be=ov(hd());return[(re=zo())!=null?re:"",Qi(),Ul(),en.value.length,be,U.length,r3(ye)].join(":")}function _T(U=(re=>(re=i.virtualScroll)==null?void 0:re.heightCache)()){if(!Oe.value||!U?.length||en.value.length<=0||!CT((re=i.virtualScroll)==null?void 0:re.heightCacheWidth))return!1;var re;const ye=wT(U,{requireSignature:!0});if(!ye.length)return!1;const be=h3(ye);return be===Kh?(Zh="standalone",!0):(Li(ye,{mode:"merge"}),Ni(),Kh=be,Zh="standalone",N0(),ao("restore"),!0)}function p3(U,re={}){var ye,be,Te;if(!Oe.value||!U||U.sessionKey!==Qi()||!I0(U.threadKey)||en.value.length<=0)return!1;const je=!!((ye=U.heightCache)!=null&&ye.length)&&!Ty(),tt=!U.anchor||U.anchorCaptured===!1&&re.allowUncapturedAnchor!==!0?null:U.anchor,ot=re.restoreAnchor===!0&&!!tt&&!Ty()&&Number(f3(U))>0;let kt=!1;if((be=U.heightCache)!=null&&be.length&&ST(U)){const rt=wT(U.heightCache,{requireCompatibilityMetadata:!U.contentHash,requireSignature:mne(U)});rt.length&&(Li(rt,{mode:"merge"}),Ni(),Kh=h3(rt),Zh="restore",N0(),kt=!0)}if(je||ot)return!1;if(!re.restoreAnchor||!tt)return kt&&ao("restore"),!0;const ft=(function(rt,bt){var Je;const mt=rt.anchor,It=mt?mt.type==="bottom"?`bottom:${Math.round(mt.distanceFromBottomPx)}`:`node:${mt.nodeIndex}:${Math.round(mt.offsetWithinNodePx)}`:"none";return[(Je=zo())!=null?Je:"",Qi(),Ul(),lf.value,bt,It].join(":")})(U,(Te=re.restoreToken)!=null?Te:"imperative");return My===ft?(kt&&ao("restore"),!0):(My=ft,(function(rt){const bt=()=>{if(rt.type==="node")return $1(),void Pr({nodeIndex:rt.nodeIndex,offsetWithinNodePx:rt.offsetWithinNodePx});if(Xr(),to.value=null,Jo.value=rt,bT(),c3(rt),G)for(const Je of[0,120,280,480])d3.push(window.setTimeout(()=>{const mt=Jo.value;mt&&c3(mt)},Je))};(function(Je){if(!xn.value)return!1;const mt=en.value.length;return!(mt<=0||(na.value=Je.type==="node"?ms(Je.nodeIndex,0,mt-1):mt-1,fl(),0))})(rt)?gt(bt):bt()})(tt),ao("restore"),!0)}function Ty(){const U=hd();return Number.isFinite(U)&&U>0}function ET(U){var re;return U.sessionKey===Qi()&&!!I0(U.threadKey)&&(en.value.length<=0||!(!((re=U.heightCache)!=null&&re.length)||Ty())||!(!(U.anchor&&Number(f3(U))>0)||Ty()))}function m3(){po.clear();for(const U of Object.keys($l)){const re=Number(U);Number.isInteger(re)&&re>=0&&re{let re=!1,ye=null;const be=()=>{re||(re=!0,ye!=null&&window.clearTimeout(ye),U())};if(Ui)return Ui(be),void(ye=window.setTimeout(be,50));ye=window.setTimeout(be,0)})}function g3(U,re=zo(),ye=ke.value){return Qi()===U&&zo()===re&&ke.value===ye}function v3(){return uo(this,arguments,function*(U={}){var re,ye,be,Te,je;const tt=Qi(),ot=zo(),kt=ke.value,ft=(re=U.frames)!=null?re:2,rt=(ye=U.timeoutMs)!=null?ye:120,bt=(be=U.reason)!=null?be:"manual",Je=U.expectedSettledTokenKey,mt=U.flushPendingTimers===!0,It=fc(bt),Ct=()=>Nn(Pt({},It),{phase:It.final?"settling":It.phase,stable:!1,confidence:It.confidence==="final"?"mixed":It.confidence,reason:bt}),Vt=()=>g3(tt,ot,kt)&&(Je==null||D0()===Je);for(let Sn=0;Snwindow.setTimeout(Zt,Sn))})(rt),!Vt()||(mt&&Cn(),uf(),F0(),!Vt()))return Ct();const Ht=gr();Ht&&(Kn=tt,Hn=ot,((Te=i.virtualScroll)==null?void 0:Te.settleMode)==="manual"&&Je!=null&&li((je=i.virtualScroll)==null?void 0:je.settledToken)&&D0()===Je&&(di=j0(i.virtualScroll.settledToken)));const bn=Vt()&&Ht&&oa(),Jt=fc(bt,bn?"final":void 0);return b3(Jt,!0),Jt})}let MT="content",Yh=null,Jh=null,A3=0,R0=null,H1=null,y3=null,k3=null;function U1(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}function TT(U){var re,ye;const be=R0;if(!be)return!0;const Te=(ye=(re=i.virtualScroll)==null?void 0:re.heightDiffThresholdPx)!=null?ye:1;return Math.abs(U.totalHeight-be.totalHeight)>Te||U.sessionKey!==be.sessionKey||U.phase!==be.phase||U.stable!==be.stable||U.final!==be.final||U.threadKey!==be.threadKey||U.nodeCount!==be.nodeCount||U.measuredCount!==be.measuredCount||U.width!==be.width}function D0(U=(re=>(re=i.virtualScroll)==null?void 0:re.settledToken)()){return er(U)}function BT(U,re){var ye,be;return[U,re.sessionKey,(ye=re.threadKey)!=null?ye:"",Ul(),u3(),er((be=i.virtualScroll)==null?void 0:be.settledToken),Math.round(re.totalHeight),Math.round(re.width)].join("\0")}function N0(){y3=null,k3=null,H1=null}function gne(U){const re=U.heightCache;return re?.length?h3(re):""}function L0(U){var re,ye,be;const Te=U.metrics,je=U.anchor?(tt=U.anchor).type==="bottom"?`bottom:${Math.round(tt.distanceFromBottomPx)}`:`node:${tt.nodeIndex}:${Math.round(tt.offsetWithinNodePx)}`:"none";var tt;return[U.sessionKey,(re=U.threadKey)!=null?re:"",(ye=U.measurementKey)!=null?ye:Ul(),(be=U.contentHash)!=null?be:"",gne(U),je,U.anchorCaptured?1:0,Te.liveRange.start,Te.liveRange.end,Te.renderedCount,Te.nodeCount,Math.round(Te.totalHeight),Math.round(Te.width),Te.phase,Te.stable?1:0].join("\0")}function b3(U,re=!1){if(!Oe.value||(function(tt=!1){return!tt&&ki.value&&!dt.value})(re))return;const ye=re||TT(U),be=(function(tt,ot=!1){return ot||tt.stable||tt.phase==="final"?{state:z1(tt,{includeHeightCache:!0})}:{state:z1(tt)}})(U,re),Te=be.state,je=!!(Te&&(ye||(function(tt,ot=!1){return!!ot||L0(tt)!==H1})(Te,re)));if(ye&&(D(U),R0=U,A3=U1()),Te&&je&&(j(Te),Te.anchor&&z(Te.anchor),H1=L0(Te)),U.stable){const tt=BT("settled",U);if(tt!==y3){y3=tt;const ot=z1(U,{includeHeightCache:!0});ot&&(j(ot),H1=L0(ot)),(function(kt){o("render-settled",kt)})(U)}}if(U.phase==="final"){const tt=BT("final",U);if(tt!==k3){k3=tt;const ot=z1(U,{includeHeightCache:!0});ot&&(j(ot),H1=L0(ot)),(function(kt){o("render-final",kt)})(U)}}}function w3(){Yh!=null&&(Zo?.(Yh),Yh=null),Jh!=null&&G&&(window.clearTimeout(Jh),Jh=null)}function FT(){Yh=null,Jh=null;const U=U1();U-of>=120&&(of=U,uf()),(hr.size>0||mr!=null)&&F0(),b3(fc(MT))}function ao(U){var re,ye;if(!Oe.value||(MT=U,Yh!=null||Jh!=null))return;const be=Math.max(0,(ye=(re=i.virtualScroll)==null?void 0:re.emitIntervalMs)!=null?ye:32),Te=Math.max(0,be-(U1()-A3)),je=()=>{Jh=null,Yh=Ui?Ui(FT):null,Yh==null&&FT()};G&&Te>0?Jh=window.setTimeout(je,Te):je()}function RT(){Su.value+=1}function By(U){if(wu.value&&U>=fs.value){const re=en.value[U],ye=Ce.value===!0&&Re.value!==!0&&U>=en.value.length-2,be=re?.type==="code_block"||re?.type==="image"||re?.type==="mermaid"||re?.type==="infographic";if(!ye||be)return!1}return!Gn.value||U=we.value&&(Q.value||(Q.value=!0,dc()),!Ys.value||!nl))return W1(U),void(re&&ia(U,!0));if(U{if(Mu.delete(je),!Gn.value||cc.value.has(je))return;const kt=Lo.get(je);if(!kt)return;const ft=ue(kt),rt=kt.ownerDocument||document,bt=rt.defaultView||window,Je=!ft||ft===rt.documentElement||ft===rt.body,mt=!Je&&ft?Qe("nodeVisibilityFallback.root.getBoundingClientRect",()=>ft.getBoundingClientRect()):null,It=Je?0:mt.top,Ct=Je?Qe("nodeVisibilityFallback.clientHeight",()=>{var Ht,bn;return(bn=(Ht=bt.innerHeight)!=null?Ht:ft?.clientHeight)!=null?bn:0}):mt.bottom,Vt=Qe("nodeVisibilityFallback.node.getBoundingClientRect",()=>kt.getBoundingClientRect());Vt.bottom>=It-500&&Vt.top<=Ct+500&&ia(je,!0)},1800+tt);Mu.set(je,ot)})(U);let Te=null;Te=$e(()=>be.isVisible.value,je=>{if(je){Pi(U),ia(U,!0),Te?.(),L1.delete(U),Iu.get(U)===be&&Iu.delete(U);try{be.destroy()}catch{}}},{immediate:!0}),L1.set(U,Te),xn.value&&Xs()}function C3(){mr=null,Ve(()=>{let U=!1;for(const[re,ye]of hr)hr.delete(re),Or.get(re)===ye.el&&Hl.get(re)===ye.version&&(U=Ln(re,ye.height,{allowShrink:ye.allowShrink})||U);return U})}function Q1(){mr!=null&&(Zo?.(mr),mr=null),hr.clear()}function P0(U,re){(function(ye,be,Te){var je;if(!Number.isFinite(Te)||Te<=0||Or.get(ye)!==be)return;const tt=Hl.get(ye);if(tt==null)return;const ot=en.value[ye],kt=Ze.value&&Re.value!==!0&&!((je=i.nodes)!=null&&je.length)&&ye>=en.value.length-2,ft=!(ot?.loading===!0||kt),rt=hr.get(ye),bt=rt?rt.allowShrink&&ft:ft,Je=rt&&!bt?Math.max(rt.height,Te):Te;hr.set(ye,{height:Je,allowShrink:bt,version:tt,el:be}),mr==null&&(mr=Ui?Ui(C3):null,mr==null&&C3())})(U,re,Fn(U,re))}function uf(){for(const[U,re]of Or)re&&P0(U,re)}function DT(){Io?.disconnect(),Io=null,ol.clear()}function S3(){for(;hl.length;)$t(hl.pop())}$e(dt,U=>{U&&ao("content")},{flush:"post"}),t({getVirtualMetrics:fc,captureVirtualState:function(U={}){var re;return z1(fc("manual"),{includeHeightCache:!0,includeContentHash:!0,allowAnchorFallback:U.allowFallbackAnchor===!0,requireViewport:U.requireViewport===!0,includeEmptyState:(re=U.includeEmptyState)==null||re})},restoreVirtualState:function(U,re={}){const ye=re.restoreAnchor===!0,be=re.restoreToken==null?"imperative":String(re.restoreToken);T0=U,B0={restoreAnchor:ye,restoreToken:be,allowUncapturedAnchor:re.allowUncapturedAnchor===!0},!p3(U,{restoreAnchor:ye,restoreToken:be,allowUncapturedAnchor:re.allowUncapturedAnchor===!0})&&ET(U)||(T0=null,B0=null)},forceMeasure:function(U="manual"){return uo(this,null,function*(){yield gt(),yield IT(),uf(),F0(),yield gt();const re=fc(U);return b3(re,!0),re})},settle:v3,scrollToNode:function(U,re="start"){$1(),Xr();const ye=en.value.length;if(ye<=0)return;const be=ms(U,0,ye-1),Te=()=>{var je;const tt=ll({nodeIndex:be,offsetWithinNodePx:0}),ot=Lr(be),kt=Gh(),ft=(je=kt?.clientHeight)!=null?je:0,rt=Ol();let bt=tt;if(re==="center")bt=tt-ft/2+ot/2;else if(re==="end")bt=tt-ft+ot;else if(re==="nearest"&&rt!=null){if(tt>=rt&&tt+ot<=rt+ft)return;bt=ttsc.value,U=>{if(!U){DT();for(const re of Ea.values())for(const ye of re)$t(ye);Ea.clear(),Hl.clear(),S3(),Q1()}},{immediate:!0}),$e(Re,U=>{U&&(function(){if(G&&Re.value&&Or.size){S3();for(const re of[80,240,640]){const ye=At(re,()=>{for(const[be,Te]of Or)Te&&P0(be,Te)},"final");ye!=null&&hl.push(ye)}}})(),ao(U?"final":"content")});const vne=qL(()=>ao("content"),16),Ane=qL(()=>ao("batch"),16);$e([()=>en.value.length,()=>fs.value],()=>{Jo.value&&j1(),vne()},{flush:"post",immediate:!0}),$e([()=>Mo.start,()=>Mo.end],()=>{Ane()},{flush:"post"});const{cleanupBatchScheduler:yne}=(function(U){const{props:re,isClient:ye,isTestEnv:be,parsedNodesIdentity:Te,parsedNodeCount:je,desiredRenderedCount:tt,datasetKey:ot,batchingEnabled:kt,incrementalRenderingActive:ft,resolvedBatchSize:rt,resolvedInitialBatch:bt,renderedCount:Je,adaptiveBatchSize:mt,previousRenderContext:It,previousBatchConfig:Ct,requestFrame:Vt,cancelFrame:Ht,hasIdleCallback:bn,cleanupNodeVisibility:Jt,onDatasetKeyChanged:Sn,onDatasetChanged:Zt}=U;let un=null,$n="raf",oi=null,Xo=0,vr=!1,mo=!1;const Tu=new Set,Ta=new Set;function df(){if(ye){un!=null&&($n==="raf"&&Ht?Ht(un):$n==="idle"&&typeof window.cancelIdleCallback=="function"?window.cancelIdleCallback(un):$n==="timeout"&&window.clearTimeout(un),un=null),Xo+=1;for(const $r of Tu)Ht&&Ht($r);for(const $r of Ta)window.clearTimeout($r);Tu.clear(),Ta.clear(),oi=null,vr=!1,mo=!1}}function jy(){return typeof performance<"u"?performance.now():Date.now()}function sB($r){(function(Bu){var ff;if(!ft.value)return;const hc=Math.max(2,(ff=re.renderBatchBudgetMs)!=null?ff:6),pc=Math.max(1,rt.value||1),mc=Math.max(1,Math.floor(pc/4));Bu>1.5*hc?mt.value=Math.max(mc,Math.floor(.8*mt.value)):Bu<.6*hc&&mt.value=hc)return;const pc=Math.max(1,$r),mc=()=>{const hf=jy();un=null;const Hy=oi??pc;oi=null;const Q0=jy();Je.value=Math.min(hc,Je.value+Hy),Jt(Je.value),(function(K1,Uy){if(!ye)return void sB(Uy);vr=!0;const Wy=++Xo;gt().then(()=>{var uB;if(Wy!==Xo)return;const Fne=jy(),Rne=Math.max(Uy,Fne-K1),cB=()=>{Wy===Xo&&sB(Rne)};if(Vt){let tp=null,Z1=null,fB=!1;const hB=()=>{fB||(fB=!0,tp!==null&&(Tu.delete(tp),tp=null),Z1!==null&&(Ta.delete(Z1),window.clearTimeout(Z1),Z1=null),cB())};return tp=Vt(()=>{hB()}),Tu.add(tp),Z1=window.setTimeout(()=>{tp!==null&&Ht&&Ht(tp),hB()},Math.max(32,(uB=re.renderBatchIdleTimeoutMs)!=null?uB:120)),void Ta.add(Z1)}const dB=window.setTimeout(()=>{Ta.delete(dB),cB()},0);Ta.add(dB)})})(hf,jy()-Q0)};if(!ye||sa.immediate)return void mc();const ep=Math.max(0,(Bu=re.renderBatchDelay)!=null?Bu:16);if(oi=oi!=null?Math.max(oi,pc):pc,un==null){if(!be&&bn&&window.requestIdleCallback){const hf=Math.max(0,(ff=re.renderBatchIdleTimeoutMs)!=null?ff:120);return $n="idle",void(un=window.requestIdleCallback(()=>mc(),{timeout:hf}))}if(Vt&&!be)return $n="raf",void(un=Vt(()=>{ep===0?mc():($n="timeout",un=window.setTimeout(()=>mc(),ep))}));$n="timeout",un=window.setTimeout(()=>mc(),ep)}}function aB($r,sa={}){vr?mo=!0:$r==null?lB():rB($r,sa)}function lB(){ft.value&&rB(kt.value?Math.max(1,Math.round(mt.value)):Math.max(1,rt.value))}return $e([Te,je,ot,ft,rt,bt,()=>re.renderBatchDelay],()=>{var $r;const sa=je.value,Bu=It.value,ff=ot.value,hc=!Object.is(ff,Bu.key),pc=sa!==Bu.total,mc=pc&&sa>Bu.total&&Bu.total>0&&!hc,ep=hc||pc;It.value={key:ff,total:sa};const hf=Ct.value,Hy=($r=re.renderBatchDelay)!=null?$r:16,Q0=hf.batchSize!==rt.value||hf.initial!==bt.value||hf.delay!==Hy||hf.enabled!==ft.value;Ct.value={batchSize:rt.value,initial:bt.value,delay:Hy,enabled:ft.value},hc&&Sn(sa),(ep||Q0||!ft.value)&&df(),(ep&&!mc||Q0)&&(mt.value=Math.max(1,rt.value||1)),ep&&!mc&&Zt();const K1=tt.value;if(!sa)return Je.value=0,void Jt(0);if(!ft.value)return Je.value=K1,void Jt(Je.value);const Uy=hc||Bu.total===0;Je.value=Uy||Q0?Math.min(K1,bt.value):Math.min(Je.value,K1);const Wy=Math.max(1,bt.value||rt.value||sa);Je.value{ft.value&&(typeof sa=="number"&&$r<=sa||$r>Je.value&&aB())}),{cleanupBatchScheduler:df}})({props:E,isClient:G,isTestEnv:Dr,parsedNodesIdentity:Ks,parsedNodeCount:_o,desiredRenderedCount:Me,datasetKey:qe,batchingEnabled:id,incrementalRenderingActive:wu,resolvedBatchSize:ac,resolvedInitialBatch:il,renderedCount:fs,adaptiveBatchSize:Ls,previousRenderContext:Ns,previousBatchConfig:Ll,requestFrame:Ui,cancelFrame:Zo,hasIdleCallback:Rr,cleanupNodeVisibility:gl,onDatasetKeyChanged:U=>{Q1(),pt(),Ni(),N0(),U>0&&ko(U)},onDatasetChanged:()=>{xn.value&&Xs({immediate:!0})}});$e([nf,xn,()=>T.value,()=>te()],([U,re])=>{if(!U)return y0(),void Oo();wy(),re?Xs({immediate:!0}):Oo()},{flush:"post",immediate:!0}),$e([()=>en.value.length,()=>xn.value],U=>uo(null,[U],function*([re,ye]){ye&&re&&G&&(yield gt(),Xs({immediate:!0}))}),{flush:"post"}),$e(Ye,U=>{U&&(function(){var re;if(Br.value&&Fr.value&&lr.value&&((re=Hi.value)!=null&&re[1]))return;const ye=Tt({type:"paragraph",children:[{type:"text",content:"Probe paragraph text",raw:"Probe paragraph text"}],raw:"Probe paragraph text"}),be=Tt({type:"list_item",children:[ye],raw:"- Probe paragraph text"}),Te=Tt({type:"list",ordered:!1,items:[be],raw:"- Probe paragraph text"});Br.value=ye,Fr.value=be,lr.value=Te;const je={1:null,2:null,3:null,4:null,5:null,6:null};for(let tt=1;tt<=6;tt++)je[tt]=Tt({type:"heading",level:tt,text:"Probe heading",children:[{type:"text",content:"Probe heading",raw:"Probe heading"}],raw:`${"#".repeat(tt)} Probe heading`});Hi.value=je})()},{immediate:!0}),$e([()=>T.value,Ye],()=>{if(!Ye.value)return af(),void(Z.value=0);Sy(),af(),Ye.value&&T.value&&typeof ResizeObserver<"u"&&(zr=new ResizeObserver(()=>{Sy(),to.value&&zl(),Jo.value&&j1(),ao("resize")}),zr.observe(T.value))},{immediate:!0}),$e([Ye,Nt,ke],()=>uo(null,null,function*(){if(!Ye.value)return ee.value={paragraph:null,listItem:null,listWrapperOverhead:0,headings:{1:null,2:null,3:null,4:null,5:null,6:null}},void Ni();yield gt(),(function(){if(!Ye.value||typeof window>"u")return ee.value={paragraph:null,listItem:null,listWrapperOverhead:0,headings:{1:null,2:null,3:null,4:null,5:null,6:null}},void Ni();const U={paragraph:null,listItem:null,listWrapperOverhead:0,headings:{1:null,2:null,3:null,4:null,5:null,6:null}},re=b0(k0(N.value),".paragraph-node");U.paragraph=o5(N.value,re,"pre-wrap");const ye=k0(L.value),be=ye?.querySelector(".paragraph-node");U.listItem=o5(L.value,be,"pre-wrap");const Te=Qe("readSimpleTextProbeProfile.list.offsetHeight",()=>{var tt,ot;return(ot=(tt=H.value)==null?void 0:tt.offsetHeight)!=null?ot:0}),je=Qe("readSimpleTextProbeProfile.listItem.offsetHeight",()=>{var tt,ot;return(ot=(tt=L.value)==null?void 0:tt.offsetHeight)!=null?ot:0});U.listWrapperOverhead=Math.max(0,Te-je);for(let tt=1;tt<=6;tt++){const ot=b0(k0(O[tt]),`h${tt}`);U.headings[tt]=o5(O[tt],ot,"pre-wrap")}ee.value=U,Ni()})()}),{flush:"post",immediate:!0}),$e(()=>en.value.length,()=>{xn.value&&Xs({immediate:!0})}),$e([Ye,Z],()=>{Ni(),xn.value&&Xs({immediate:!0}),to.value&&zl(),Jo.value&&j1(),ao("resize")},{immediate:!1}),$e(()=>Gn.value,U=>{if(U)for(const[re,ye]of Lo)Fy(re,ye);else if(dc(),xn.value)Xs({immediate:!0});else for(const[re,ye]of Lo)ye&&ia(re,!0)},{immediate:!1}),$e([pe,we,()=>te()],()=>{var U;(U=nl.refresh)==null||U.call(nl);for(const[re,ye]of Lo)Fy(re,ye)},{immediate:!1}),$e([()=>E.viewportPriority,()=>en.value.length,we],([U,re,ye])=>{if(U!==!1){if(Q.value&&(re<=200||re<=ye)){Q.value=!1;for(const[be,Te]of Lo)Fy(be,Te)}}else Q.value=!1}),$e(()=>fs.value,()=>{xn.value&&Xs({immediate:!0})}),$e([na,zn,Zi,()=>en.value.length,xn],()=>{fl()},{immediate:!0});let O0=null,z0=!1,V1=null;function $0(){O0=null,Kn=null,Hn=void 0,di=null,N0()}function x3(){Q1(),pt(),Ni(),po.clear();const U=en.value.length;U>0&&ko(U),m3()}function _3(){w3(),Cn(),R0=null,Kh=null,Zh=null,My=null,T0=null,B0=null,z0=!1,$0(),ln("restore"),Xr(),$1()}function j0(U){var re;return[(re=zo())!=null?re:"",Qi(),Ul(),lf.value,D0(U),en.value.length,Math.round(Zs(0,en.value.length)),Math.round(hd()),yo.count,Math.round(yo.total)].join(":")}function NT(){return uo(this,null,function*(){var U,re,ye,be;const Te=(U=i.virtualScroll)==null?void 0:U.settledToken,je=D0(Te),tt=Qi(),ot=zo(),kt=ke.value;if(Oe.value&&((re=i.virtualScroll)==null?void 0:re.settleMode)==="manual"&&li(Te))if(gr()){if(j0(Te)!==di&&!z0){z0=!0;try{const ft=yield v3({reason:"manual",expectedSettledTokenKey:je}),rt=D0()===je;g3(tt,ot,kt)&&ft.sessionKey===tt&&ft.threadKey===ot&&rt&&ft.stable&&ft.phase==="final"&&(di=j0((ye=i.virtualScroll)==null?void 0:ye.settledToken))}finally{z0=!1,yield gt();const ft=(be=i.virtualScroll)==null?void 0:be.settledToken,rt=li(ft)?j0(ft):"";g3(tt,ot,kt)&&rt&&di!==rt&&NT()}}}else ao("manual")})}$e(Oe,(U,re)=>{if(U!==re){if(!U)return _3(),void w3();_3(),x3(),V1=ke.value,ao("content")}},{flush:"post"}),$e([Oe,ke],([U,re])=>{U?V1!=null?V1!==re&&(V1=re,(function(ye="resize"){Q1(),pt(),Ni(),po.clear();const be=en.value.length;be>0&&ko(be),m3(),Kh=null,Zh=null,My=null,R0=null,z0=!1,$0(),_T(),gt(()=>{uf(),to.value&&zl(),Jo.value&&j1(),ao(ye)})})("resize")):V1=re:V1=null},{flush:"post",immediate:!0}),$e([Oe,()=>Qi(),()=>zo()],([U])=>{U&&(_3(),x3(),ln("content"),ao("content"))}),$e([Oe,()=>Qi(),()=>zo(),ke,()=>en.value.length],([U])=>{U&&(function(re="async-node"){let ye=!1;for(const[be,Te]of Array.from(pr.entries()))yt(Te)||(pr.delete(be),Js.delete(be),ye=!0);ye&&(Ke(),ao(re))})("async-node")},{flush:"post"}),$e([Oe,()=>{var U;return(U=i.virtualScroll)==null?void 0:U.sessionKey},()=>{var U;return(U=i.virtualScroll)==null?void 0:U.measurementKey},()=>i.indexKey,()=>W.value],([U])=>{U&&(N0(),(function(re="content"){if(!Oe.value)return;const ye=[],be=en.value.length,Te=Vh(be);for(const je of Array.from(po.keys())){if(je>=be){ye.push(je);continue}if(je=be&&po.delete(je);ye.length&&((function(je,tt={}){const ot=Array.from(je,Number);dl(ot);let kt=0;if(Ve(()=>(kt=jl(ot,tt),kt>0)),kt>0)(function(ft){for(const rt of ft)po.delete(rt)})(ot);else for(const ft of ot)Nr.delete(ft)})(ye,{notify:!1}),Ni(),$0(),to.value&&zl(),Jo.value&&j1(),ao(re))})("content"))},{flush:"post",immediate:!0}),$e([Oe,()=>en.value.length,()=>Qi(),()=>zo()],([U,re,ye,be],[Te,je,tt,ot])=>{U&&Te&&ye===tt&&be===ot&&re!==je&&$0()},{flush:"post"}),$e([Oe,()=>{var U;return(U=i.virtualScroll)==null?void 0:U.heightCache},()=>{var U;return(U=i.virtualScroll)==null?void 0:U.heightCacheWidth},()=>{var U;return(U=i.virtualScroll)==null?void 0:U.restoreState},()=>{var U;return(U=i.virtualScroll)==null?void 0:U.measurementKey},()=>en.value.length,()=>Qi(),Z],()=>{_T()},{flush:"post",immediate:!0}),$e([Oe,()=>{var U;return(U=i.virtualScroll)==null?void 0:U.restoreState},()=>{var U;return(U=i.virtualScroll)==null?void 0:U.restoreAnchor},()=>{var U;return(U=i.virtualScroll)==null?void 0:U.measurementKey},()=>en.value.length,()=>Qi(),Z],U=>uo(null,[U],function*([re,ye]){if(!re||!ye)return;yield gt();const be=(function(){var Te;const je=(Te=i.virtualScroll)==null?void 0:Te.restoreAnchor;return je==null||je===!1?null:je===!0?"true":String(je)})();p3(ye,{restoreAnchor:be!=null,restoreToken:be??void 0})}),{flush:"post",immediate:!0}),$e([Oe,Z,()=>{var U;return(U=i.virtualScroll)==null?void 0:U.restoreState},()=>{var U;return(U=i.virtualScroll)==null?void 0:U.measurementKey}],([U])=>{var re;if(!U)return;const ye=(re=i.virtualScroll)==null?void 0:re.restoreState;ye&&Kh&&Zh==="restore"&&(ST(ye)||(x3(),Kh=null,Zh=null,ao("resize")))},{flush:"post"}),$e([Oe,()=>en.value.length,()=>Qi(),Z],U=>uo(null,[U],function*([re]){var ye;const be=T0,Te=B0;re&&be&&(yield gt(),!p3(be,{restoreAnchor:Te?.restoreAnchor===!0,restoreToken:(ye=Te?.restoreToken)!=null?ye:"imperative",allowUncapturedAnchor:Te?.allowUncapturedAnchor===!0})&&ET(be)||(T0=null,B0=null))}),{flush:"post",immediate:!0}),$e([Oe,Re,()=>{var U;return(U=i.virtualScroll)==null?void 0:U.settleMode},()=>Qi(),()=>zo(),ke,Wh,rf,()=>fs.value,Me,()=>yo.count,()=>yo.total],([U,re,ye])=>{if(!U||re!==!0||ye==="manual"||!gs())return;const be=(function(){var Te;const je=en.value.length;return[(Te=zo())!=null?Te:"",Qi(),Ul(),lf.value,je,Math.round(Zs(0,je)),Math.round(hd()),yo.count,Math.round(yo.total)].join(":")})();O0!==be&&(O0=be,v3({reason:"final"}).then(Te=>{Te.stable||O0!==be||(O0=null)}))},{flush:"post",immediate:!0}),$e([Oe,Re,()=>{var U;return(U=i.virtualScroll)==null?void 0:U.settleMode},()=>{var U;return(U=i.virtualScroll)==null?void 0:U.settledToken},()=>Qi(),()=>zo(),ke,Wh,rf,()=>fs.value,Me,()=>en.value.length,()=>yo.count,()=>yo.total],()=>{NT()},{flush:"post",immediate:!0}),$e([()=>en.value.length,xn,zn,Zi,()=>Mo.start,()=>Mo.end],([U,re,ye,be,Te,je])=>{fe.value&&xe("virtualization",{nodes:U,virtualization:re,maxLiveNodes:ye,buffer:be,focusIndex:na.value,scroll:re?(()=>{const tt=al.value||ue();return tt?{reverse:Se(tt),scrollTop:Math.round(tt.scrollTop),scrollTopAbs:Math.round(Math.abs(tt.scrollTop)),scrollHeight:Math.round(tt.scrollHeight),clientHeight:Math.round(tt.clientHeight)}:null})():null,liveRange:{start:Te,end:je},rendered:fs.value})}),$e([()=>E.customId],([U],re,ye)=>{if(!U||Rs)return;const be=(function(Te,je){return Te?(Os.controllers[Te]=je,()=>{Os.controllers[Te]===je&&delete Os.controllers[Te]}):()=>{}})(U,{captureRestoreAnchor:Ps,restoreAnchor:Pr,getAnchorDrift:ul,getReport:_0});ye(()=>{be()})},{immediate:!0}),ni(()=>{(function(){if(Oe.value)try{uf(),F0();const U=fc("manual");TT(U)&&(D(U),R0=U,A3=U1());const re=z1(U,{includeHeightCache:!0,includeContentHash:!0,allowAnchorFallback:!1,requireViewport:!0,includeEmptyState:!0});re&&(j(re),re.anchor&&z(re.anchor),H1=L0(re))}catch{}})(),yne(),dc(),Fe(),DT();for(const U of Ea.values())for(const re of U)$t(re);Ea.clear(),Hl.clear(),po.clear(),S3(),Q1(),af(),Xr(),$1(),w3(),y0(),Oo()});const kne=Bv("ViewportDeferredMermaidBlockNode",Lc({loader:()=>uo(null,null,function*(){try{return(yield rs(()=>import("./index11-DW3IQa8f.js"),__vite__mapDeps([7,5]))).default}catch(U){return console.warn('[markstream-vue] Optional peer dependencies for MermaidBlockNode are missing. Falling back to preformatted code rendering. To enable Mermaid rendering, please install "mermaid".',U),Na}}),loadingComponent:lP,delay:0}),lP),bne=Bv("ViewportDeferredInfographicBlockNode",Lc({loader:()=>uo(null,null,function*(){try{return(yield rs(()=>import("./index10-DApEPd0n.js"),[])).default}catch(U){return console.warn('[markstream-vue] Failed to load InfographicBlockNode. Falling back to preformatted code rendering. To enable Infographic rendering, install "@antv/infographic" and configure setInfographicLoader with a dynamic loader.',U),Na}}),loadingComponent:aP,delay:0}),aP),wne=Bv("ViewportDeferredD2BlockNode",Lc(()=>uo(null,null,function*(){try{return(yield rs(()=>import("./index8-CrWWf7aj.js"),[])).default}catch(U){return console.warn('[markstream-vue] Optional peer dependencies for D2BlockNode are missing. Falling back to preformatted code rendering. To enable D2 rendering, please install "@terrastruct/d2".',U),Na}})),Na),LT={text:Qo,paragraph:e1,heading:uC,code_block:q8,list:hg,list_item:fg,blockquote:O9,table:AA,definition_list:z9,footnote:$9,footnote_reference:_l,footnote_anchor:gA,admonition:W9,vmr_container:H9,hardbreak:Xf,link:ya,image:Jf,thematic_break:j9,math_inline:tc,math_block:xq,strong:va,emphasis:ka,strikethrough:Aa,highlight:Il,insert:Ua,subscript:Ha,superscript:ja,emoji:$a,checkbox:xl,checkbox_input:xl,inline_code:qr,html_inline:El,reference:ga,html_block:vA},PT=P(()=>O1()),OT=P(()=>VL(E.codeBlockProps)),Cne=P(()=>VL(E.codeBlockProps,{omit:["langs"]})),E3=P(()=>Pt(Pt({stream:E.codeBlockStream,darkTheme:E.codeBlockDarkTheme,lightTheme:E.codeBlockLightTheme,monacoOptions:E.codeBlockMonacoOptions,themes:E.themes,langs:m.value==="shiki"?E.langs:void 0,minWidth:E.codeBlockMinWidth,maxWidth:E.codeBlockMaxWidth},typeof me.value=="boolean"?{showTooltips:me.value}:{}),Cne.value)),I3=P(()=>Pt(Nn(Pt({},E3.value),{langs:E.langs}),OT.value));function zT(U){return typeof U=="boolean"?U:void 0}const $T=P(()=>{const U=E.codeBlockProps||{},re={},ye=zT(U.showLineNumbers);ye!==void 0&&(re.showLineNumbers=ye);const be=zT(U.diffInline);be!==void 0&&(re.diffInline=be);const Te=(function(je){const tt=Number(je);return Number.isFinite(tt)&&tt>0?tt:void 0})(U.reservedHeightPx);return Te!==void 0&&(re.reservedHeightPx=Te),re}),Sne=P(()=>Pt(Pt({stream:E.codeBlockStream,darkTheme:E.codeBlockDarkTheme,lightTheme:E.codeBlockLightTheme,themes:E.themes,langs:E.langs,minWidth:E.codeBlockMinWidth,maxWidth:E.codeBlockMaxWidth},typeof me.value=="boolean"?{showTooltips:me.value}:{}),OT.value)),jT=P(()=>Pt({},E.mermaidProps||{})),M3=P(()=>Pt({},E.d2Props||{})),HT=P(()=>Pt({},E.infographicProps||{})),G1=P(()=>({typewriter:f.value,fade:E.fade,customHtmlTags:So.value.customHtmlTags})),UT=P(()=>Pt(Pt({},G1.value),typeof me.value=="boolean"?{showTooltip:me.value}:{})),WT=P(()=>Pt(Pt({},G1.value),typeof me.value=="boolean"?{showTooltips:me.value}:{})),QT=P(()=>Pt(Pt({},G1.value),typeof me.value=="boolean"?{showTooltips:me.value}:{})),VT=P(()=>Pt(Pt({},G1.value),typeof me.value=="boolean"?{showTooltips:me.value}:{}));function xne(U){return Array.isArray(U.children)&&U.children.length>0}const GT=new WeakMap,qT=new WeakMap;function T3(U,re){var ye;const be=String((ye=U?.code)!=null?ye:""),Te=qT.get(U);if(Te&&Te.code===be)return Te.height;const je=re(be);return qT.set(U,{code:be,height:je}),je}const Ry=P(()=>Ey.value.map(U=>{var re,ye,be,Te,je,tt;const ot=[kt=U.index,Ye.value?dd.value[kt]:null,m.value==="pre",Gt.value,ri.value,ve.value,fd.value,PT.value,vn,cd.value,$T.value,E3.value,I3.value,jT.value,HT.value,M3.value,G1.value,UT.value,WT.value,QT.value,VT.value];var kt;const ft=GT.get(U.node);if(ft&&(function(Jt,Sn){if(Jt.length!==Sn.length)return!1;for(let Zt=0;Zt!(E.domMode!=="minimal"||J.value||E.fade!==!1||f.value||Ma.value||Eo.value||xn.value||Ds.value||ai.value||tl.value||Object.keys(Gt.value).length!==0));let U0,q1=null,R3=0,Ny=0,Ly=0;const tB=["code_block","admonition","table","math_block","html_block","image","thematic_break"],Mne=new Set(tB),nB=[".typewriter-cursor",".height-estimation-probes",...tB.map(U=>`[data-node-type="${U}"]`),"script","style"].join(",");function iB(U){if(!U||typeof U!="object")return!1;const re=U.type;return typeof re=="string"&&Mne.has(re)}function Py(U){var re,ye;if(!U||typeof U!="object")return 0;const be=U,Te=(ye=(re=be.raw)!=null?re:be.content)!=null?ye:be.code;if(typeof Te=="string")return Te.length;const je=be.children;if(Array.isArray(je))return je.reduce((ot,kt)=>ot+Py(kt),0);const tt=be.items;return Array.isArray(tt)?tt.reduce((ot,kt)=>ot+Py(kt),0):0}function Oy(){U0&&(clearTimeout(U0),U0=void 0)}function D3(){R3+=1,q1!=null&&(Zo?.(q1),q1=null)}function W0(){D3(),cf(),Xh.value&&(Xh.value.style.visibility="hidden")}function Tne(U){var re;if(U.nodeType!==Node.TEXT_NODE||!((re=U.textContent)!=null?re:"").trim())return!1;const ye=U.parentElement;return!!ye&&!ye.closest(nB)}function Bne(U){let re=U.lastChild;for(;re;){if(Tne(re))return re;if(re.nodeType===Node.ELEMENT_NODE){const ye=re;if(!ye.matches(nB)&&ye.lastChild){re=ye.lastChild;continue}}for(;re&&re!==U&&!re.previousSibling;)re=re.parentNode;if(!re||re===U)break;re=re.previousSibling}return null}function oB(){const U=Ry.value;for(let re=U.length-1;re>=0;re--){const ye=U[re];if(!ye||iB(ye.node)||!By(ye.index))continue;const be=Lo.get(ye.index);if(!be)continue;const Te=Bne(be);if(Te)return Te}return null}function cf(){H0.value&&(H0.value.classList.remove(uP),H0.value=null)}function zy(){if(d.value!=="simple"||!G||!Ma.value||!T.value)return void cf();const U=oB(),re=U?(function(ye){var be;const Te=(be=ye.parentElement)==null?void 0:be.closest(".text-node");return Te instanceof HTMLElement?Te:ye.parentElement})(U):null;re!==H0.value&&(cf(),re&&(re.classList.add(uP),H0.value=re))}function $y(){if(d.value!=="precise"||!G||!Ma.value||q1!=null)return;const U=R3,re=()=>{q1=null,U===R3&&(function(){var ye,be;if(d.value!=="precise"||!(G&&Ma.value&&T.value&&Xh.value))return;const Te=T.value,je=Xh.value;je.style.visibility="hidden";const tt=oB();if(!tt)return;let ot=0,kt=0,ft=20,rt=!1;if(tt?.textContent){const bt=tt.textContent.length,Je=document.createRange();Je.setStart(tt,Math.max(0,bt-1)),Je.setEnd(tt,bt);const mt=typeof Je.getClientRects=="function"?Je.getClientRects():void 0,It=(be=mt?.[mt.length-1])!=null?be:(ye=tt.parentElement)==null?void 0:ye.getBoundingClientRect();if(It){const Ct=Qe("typewriterCursor.root.getBoundingClientRect",()=>Te.getBoundingClientRect());ot=It.right-Ct.left+Te.scrollLeft,kt=It.top-Ct.top+Te.scrollTop,ft=It.height||ft,rt=!0}Je.detach()}rt&&(je.style.transform=`translate(${Math.max(0,ot)}px, ${Math.max(0,kt)}px)`,je.style.height=`${ft}px`,je.style.visibility="visible")})()};Ui?q1=Ui(re):re()}return $e([he,()=>i.content,()=>i.nodes,()=>E.typewriter,Re],()=>uo(null,null,function*(){var U,re;if(!G||J.value||!ae.value)return;if(Re.value)return Ma.value=!1,Oy(),void W0();if((U=i.nodes)!=null&&U.length)return Ma.value=!1,Oy(),W0(),Ny=((re=i.content)!=null?re:"").length,void(Ly=he.value.length);const ye=(function(){var ot,kt;return(ot=i.nodes)!=null&&ot.length?i.nodes.reduce((ft,rt)=>ft+Py(rt),0):((kt=i.content)!=null?kt:"").length})(),be=(function(){var ot;return(ot=i.nodes)!=null&&ot.length?i.nodes.reduce((kt,ft)=>kt+Py(ft),0):he.value.length})(),Te=!iB(en.value[en.value.length-1]),je=ye>Ny,tt=be>Ly;if(!f.value||!Te||!je&&!tt)return f.value&&Te||(Ma.value=!1,W0()),Ny=ye,void(Ly=be);Ny=ye,Ly=be,Ma.value=!0,d.value==="precise"&&Xh.value&&(Xh.value.style.visibility="hidden"),Oy(),yield gt(),d.value==="simple"?zy():(cf(),$y()),U0=setTimeout(()=>{U0=void 0,Ma.value=!1},3e3)}),{flush:"post",immediate:!0}),$e(Ma,U=>uo(null,null,function*(){U?(yield gt(),d.value!=="simple"?(cf(),d.value==="precise"&&$y()):zy()):W0()}),{flush:"post"}),$e(d,()=>uo(null,null,function*(){if(G&&!J.value&&ae.value&&Ma.value){if(yield gt(),d.value==="simple")return D3(),void zy();cf(),d.value!=="precise"?W0():$y()}}),{flush:"post"}),$e([()=>fs.value,()=>Mo.start,()=>Mo.end],()=>uo(null,null,function*(){G&&!J.value&&ae.value&&Ma.value&&(yield gt(),d.value!=="simple"?(cf(),d.value==="precise"&&$y()):zy())}),{flush:"post"}),ni(()=>{Oy(),D3(),cf(),zt.clear()}),(U,re)=>{const ye=ZH("NodeRenderer",!0);return p(J)?(k(!0),R(Be,{key:0},_t(Ry.value,be=>(k(),R(Be,{key:be.vnodeKey},[be.rendersCustomNode?(k(),de(jo(be.component),fi({key:0,ref_for:!0},be.customBindings,{node:be.node,loading:be.node.loading,"index-key":be.indexKey,"custom-id":E.customId,"is-dark":E.isDark,onClick:F3,onMouseover:XT,onMouseout:eB,onCopy:re[0]||(re[0]=Te=>s(Te)),onHandleArtifactClick:re[1]||(re[1]=Te=>o("handleArtifactClick",Te))}),{default:le(()=>[be.hasSlotChildren?(k(),de(ye,fi({key:0,ref_for:!0},so.value,{nodes:be.node.children,"index-key":be.indexKey,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["nodes","index-key"])):be.slotContent?(k(),de(ye,fi({key:1,ref_for:!0},so.value,{content:be.slotContent,final:!be.node.loading,"index-key":`${be.indexKey}-content`,"smooth-streaming":!1,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["content","final","index-key"])):ne("",!0)]),_:2},1040,["node","loading","index-key","custom-id","is-dark"])):(k(),de(jo(be.component),fi({key:1,node:be.node,loading:be.node.loading,"index-key":be.indexKey},{ref_for:!0},be.bindings,{"custom-id":E.customId,"is-dark":E.isDark,onClick:F3,onMouseover:XT,onMouseout:eB,onCopy:re[2]||(re[2]=Te=>s(Te)),onHandleArtifactClick:re[3]||(re[3]=Te=>o("handleArtifactClick",Te))}),null,16,["node","loading","index-key","custom-id","is-dark"]))],64))),128)):(k(),R("div",{key:1,ref_key:"containerRef",ref:T,class:De(["markstream-vue markdown-renderer",[{dark:E.isDark},{virtualized:xn.value},{"virtual-scroll-coordinated":dt.value},{"stable-layout":fr.value},{"typewriter-simple-cursor":Ma.value&&d.value==="simple"}]]),"data-custom-id":E.customId,onClick:F3,onMouseover:_ne,onMouseout:Ene},[Yt.value||xn.value?(k(),R(Be,{key:0},[Yt.value?(k(),de(r8e,{key:0,width:Nt.value,"flow-root":xn.value||dt.value,"paragraph-node":Br.value,"list-item-node":Fr.value,"list-node":lr.value,"heading-nodes":Hi.value,"set-paragraph-wrapper":jn,"set-list-item-wrapper":bi,"set-list-wrapper":no,"set-heading-wrapper":Cy},null,8,["width","flow-root","paragraph-node","list-item-node","list-node","heading-nodes"])):ne("",!0),xn.value?(k(),R("div",{key:1,class:"node-spacer",style:an({height:`${C0.value}px`}),"aria-hidden":"true"},null,4)):ne("",!0)],64)):ne("",!0),Ine.value?(k(!0),R(Be,{key:1},_t(Ry.value,be=>(k(),R(Be,{key:be.vnodeKey},[By(be.index)?(k(),de(jo(be.component),fi({key:0,node:be.node,loading:be.node.loading,"index-key":be.indexKey},{ref_for:!0},be.bindings,{"custom-id":E.customId,"is-dark":E.isDark,onMouseover:re[4]||(re[4]=Te=>o("mouseover",Te)),onMouseout:re[5]||(re[5]=Te=>o("mouseout",Te)),onCopy:re[6]||(re[6]=Te=>s(Te)),onHandleArtifactClick:re[7]||(re[7]=Te=>o("handleArtifactClick",Te))}),null,16,["node","loading","index-key","custom-id","is-dark"])):ne("",!0)],64))),128)):(k(!0),R(Be,{key:2},_t(Ry.value,be=>(k(),R("div",{key:be.vnodeKey,ref_for:!0,ref:Te=>Fy(be.index,Te),class:"node-slot","data-node-index":be.index,"data-node-type":be.node.type},[By(be.index)?(k(),R("div",{key:0,ref_for:!0,ref:Te=>(function(je,tt){var ot;tt||(function(bt){const Je=`${O1()}-${bt}`;let mt=!1;for(const It of Array.from(Js.keys())){const Ct=pr.get(It);(Ct?.index===bt||It===Je||It.startsWith(`${Je}-`))&&(Js.delete(It),pr.delete(It),mt=!0)}mt&&(Ke(),ao("async-node"))})(je),hr.delete(je),(function(bt){var Je;const mt=((Je=Hl.get(bt))!=null?Je:0)+1;Hl.set(bt,mt)})(je);const kt=Ea.get(je);if(kt){for(const bt of kt)$t(bt);Ea.delete(je)}if((function(bt){const Je=ol.get(bt);Je&&(Io?.unobserve(Je),od.delete(Je),ol.delete(bt))})(je),!tt||!sc.value)return Or.delete(je),void Hl.delete(je);Or.set(je,tt);const ft=()=>{P0(je,tt)};queueMicrotask(ft);const rt=(Io||typeof ResizeObserver>"u"||(Io=new ResizeObserver(bt=>{if(bt.length)for(const Je of bt){const mt=od.get(Je.target),It=ol.get(mt??-1);mt!=null&&It&&P0(mt,It)}else uf()})),Io);if(rt&&(ol.set(je,tt),od.set(tt,je),rt.observe(tt)),typeof window<"u"){const bt=((ot=en.value[je])==null?void 0:ot.type)==="code_block"?[16,80,240,800]:Re.value?[80]:[];if(bt.length){const Je=bt.map(mt=>At(mt,ft,"node-resize")).filter(mt=>mt!=null);Je.length&&Ea.set(je,Je)}}})(be.index,Te),class:"node-content"},[be.isCodeBlock?be.rendersCustomNode?(k(),de(jo(be.component),fi({key:1,ref_for:!0},be.customBindings,{node:be.node,loading:be.node.loading,"index-key":be.indexKey,"custom-id":E.customId,"is-dark":E.isDark,onCopy:re[12]||(re[12]=Te=>s(Te)),onHandleArtifactClick:re[13]||(re[13]=Te=>o("handleArtifactClick",Te))}),{default:le(()=>[be.hasSlotChildren?(k(),de(ye,fi({key:0,ref_for:!0},so.value,{nodes:be.node.children,"index-key":be.indexKey,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["nodes","index-key"])):be.slotContent?(k(),de(ye,fi({key:1,ref_for:!0},so.value,{content:be.slotContent,final:!be.node.loading,"index-key":`${be.indexKey}-content`,"smooth-streaming":!1,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["content","final","index-key"])):ne("",!0)]),_:2},1040,["node","loading","index-key","custom-id","is-dark"])):(k(),de(jo(be.component),fi({key:2,node:be.node,loading:be.node.loading,"index-key":be.indexKey},{ref_for:!0},be.bindings,{"custom-id":E.customId,"is-dark":E.isDark,onCopy:re[14]||(re[14]=Te=>s(Te)),onHandleArtifactClick:re[15]||(re[15]=Te=>o("handleArtifactClick",Te))}),null,16,["node","loading","index-key","custom-id","is-dark"])):(k(),de(wo,{key:0,name:"fade",css:E.fade!==!1,appear:E.fade!==!1},{default:le(()=>[be.rendersCustomNode?(k(),de(jo(be.component),fi({key:0,ref_for:!0},be.customBindings,{node:be.node,loading:be.node.loading,"index-key":be.indexKey,"custom-id":E.customId,"is-dark":E.isDark,onCopy:re[8]||(re[8]=Te=>s(Te)),onHandleArtifactClick:re[9]||(re[9]=Te=>o("handleArtifactClick",Te))}),{default:le(()=>[be.hasSlotChildren?(k(),de(ye,fi({key:0,ref_for:!0},so.value,{nodes:be.node.children,"index-key":be.indexKey,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["nodes","index-key"])):be.slotContent?(k(),de(ye,fi({key:1,ref_for:!0},so.value,{content:be.slotContent,final:!be.node.loading,"index-key":`${be.indexKey}-content`,"smooth-streaming":!1,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["content","final","index-key"])):ne("",!0)]),_:2},1040,["node","loading","index-key","custom-id","is-dark"])):(k(),de(jo(be.component),fi({key:1,node:be.node,loading:be.node.loading,"index-key":be.indexKey},{ref_for:!0},be.bindings,{"custom-id":E.customId,"is-dark":E.isDark,onCopy:re[10]||(re[10]=Te=>s(Te)),onHandleArtifactClick:re[11]||(re[11]=Te=>o("handleArtifactClick",Te))}),null,16,["node","loading","index-key","custom-id","is-dark"]))]),_:2},1032,["css","appear"]))],512)):(k(),R("div",{key:1,class:"node-placeholder",style:an({height:`${Lr(be.index)}px`})},null,4))],8,u8e))),128)),Ma.value&&d.value==="precise"?(k(),R("span",{key:3,ref_key:"typewriterCursorRef",ref:Xh,class:"typewriter-cursor","aria-hidden":"true"},null,512)):ne("",!0),xn.value?(k(),R("div",{key:4,class:"node-spacer",style:an({height:`${S0.value}px`}),"aria-hidden":"true"},null,4)):ne("",!0)],42,l8e))}}})),[["__scopeId","data-v-9d192751"]]),Wa=zq;Wa.install=e=>{const t=new Set(["MarkdownRender","NodeRenderer",Wa.__name,Wa.name].filter(n=>!!n));for(const n of t)e.component(n,zq)};const nI=Object.freeze(Object.defineProperty({__proto__:null,default:Wa},Symbol.toStringTag,{value:"Module"})),c8e={key:0,xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"admonition-icon"},d8e={key:1,xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"admonition-icon"},f8e={key:2,xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"admonition-icon"},h8e={key:3,xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"admonition-icon"},p8e={class:"admonition-title"},m8e=["aria-expanded","aria-controls"],g8e=["id"],W9=Ri(st({__name:"AdmonitionNode",props:{node:{},indexKey:{},isDark:{type:Boolean},typewriter:{type:Boolean},fade:{type:Boolean},customId:{}},emits:["copy"],setup(e,{emit:t}){var n;const i=e,o=t,s=P(()=>{if(i.node.title&&i.node.title.trim().length)return i.node.title;const u=i.node.kind||"note";return u.charAt(0).toUpperCase()+u.slice(1)}),r=V(!!i.node.collapsible&&!((n=i.node.open)==null||n));function a(){i.node.collapsible&&(r.value=!r.value)}const l=`admonition-${Math.random().toString(36).slice(2,9)}`;return(u,c)=>(k(),R("div",{class:De(["admonition",[`admonition-${i.node.kind}`]])},[x("div",{id:l,class:"admonition-legend"},[i.node.kind==="note"||i.node.kind==="info"?(k(),R("svg",c8e,[...c[1]||(c[1]=[x("circle",{cx:"12",cy:"12",r:"10"},null,-1),x("path",{d:"M12 16v-4"},null,-1),x("path",{d:"M12 8h.01"},null,-1)])])):i.node.kind==="tip"?(k(),R("svg",d8e,[...c[2]||(c[2]=[x("path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"},null,-1),x("path",{d:"M9 18h6"},null,-1),x("path",{d:"M10 22h4"},null,-1)])])):i.node.kind==="warning"||i.node.kind==="caution"?(k(),R("svg",f8e,[...c[3]||(c[3]=[x("path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"},null,-1),x("path",{d:"M12 9v4"},null,-1),x("path",{d:"M12 17h.01"},null,-1)])])):i.node.kind==="danger"||i.node.kind==="error"?(k(),R("svg",h8e,[...c[4]||(c[4]=[x("polygon",{points:"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"},null,-1),x("path",{d:"M12 8v4"},null,-1),x("path",{d:"M12 16h.01"},null,-1)])])):ne("",!0),x("span",p8e,$(s.value),1),i.node.collapsible?(k(),R("button",{key:4,class:"admonition-toggle","aria-expanded":!r.value,"aria-controls":`${l}-content`,onClick:a},[(k(),R("svg",{style:an({rotate:r.value?"0deg":"90deg"}),xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[...c[5]||(c[5]=[x("path",{d:"m9 18 6-6-6-6"},null,-1)])],4))],8,m8e)):ne("",!0)]),ui(x("div",{id:`${l}-content`,class:"admonition-content","aria-labelledby":l},[K(p(Wa),{"index-key":`admonition-${e.indexKey}`,nodes:i.node.children,"custom-id":i.customId,typewriter:i.typewriter,fade:i.fade,onCopy:c[0]||(c[0]=d=>o("copy",d))},null,8,["index-key","nodes","custom-id","typewriter","fade"])],8,g8e),[[Ho,!r.value]])],2))}}),[["__scopeId","data-v-a83480e1"]]);W9.install=e=>{e.component(W9.__name,W9)};const I7=()=>rs(()=>import("./d2_markstream-vue-yoD6TSFD.js"),[]);let Sk=null,xk=I7,_k=null,cP=!1,dP=!1;function $_t(){return uo(this,null,function*(){if(Sk)return Sk;const e=xk;return e?e===I7&&cP?null:_k||(_k=uo(null,null,function*(){let t;try{t=yield e()}catch(n){if(e===I7)return e===xk&&(cP=!0,(function(i){dP||(dP=!0,console.warn('[markstream-vue] Optional dependency "@terrastruct/d2" is not installed. D2 blocks will render as source.',i))})(n)),null;throw n}finally{e===xk&&(_k=null)}return e!==xk?null:t?(Sk=(function(n){var i;if(!n)return n;if(n.D2&&typeof n.D2=="function")return n.D2;if(n.default&&n.default.D2&&typeof n.default.D2=="function")return n.default.D2;const o=(i=n.default)!=null?i:n;return typeof o=="function"?o:o?.D2&&typeof o.D2=="function"?o.D2:o})(t),Sk):null}),_k):null})}let Ek=null,$q=null,Ik=null;function j_t(){return typeof $q=="function"}function H_t(){return uo(this,null,function*(){if(Ek)return Ek;const e=$q;return e?Ik||(Ik=uo(null,null,function*(){const t=yield e(),n=(function(i){var o,s,r;if(!i)return null;const a=(o=i.default)!=null?o:i,l=typeof a=="function"&&typeof((s=a.prototype)==null?void 0:s.render)=="function"?a:(r=i.Infographic)!=null?r:a?.Infographic;return typeof l=="function"?l:null})(t);return n?(Ek=n,Ek):null}).finally(()=>{Ik=null}),Ik):null})}const U_t=Symbol("markstreamLanguageIconResolver");function v8e(e){return new Worker("/assets/katexRenderer.worker-CO_gEm4q.js",{type:"module",name:e?.name})}function A8e(e){return new Worker("/assets/mermaidParser.worker-BFSlSHEW.js",{type:"module",name:e?.name})}let fP=!1;function jq(){fP||typeof Worker>"u"||(fP=!0,Kwe(new v8e),l4e(new A8e))}jq();function $f(e,t,n="/api/v1"){return`${e}${n}${t.startsWith("/")?t:`/${t}`}`}function hP(e,t){const n=new URL(`${e}/api/v1/ws`);return n.protocol=n.protocol==="https:"?"wss:":"ws:",n.searchParams.set("client_id",t),n.toString()}const y8e=Symbol("history-scroll"),Hq=Symbol("history-all"),B1=Symbol("history-state"),iI={},Ew=Symbol("resolveImage"),wc=3e4,Mk=5*6e4,pP=5*6e4,Uq="0123456789ABCDEFGHJKMNPQRSTVWXYZ",M7=500,Wq=40101;function mP(e,t){for(const[n,i]of Object.entries(t))if(i!==void 0)if(Array.isArray(i))for(const o of i)o!==void 0&&e.append(n,String(o));else e.set(n,String(i))}function Fv(e=wc){try{return AbortSignal.timeout(e)}catch{return}}function gP(e,t){const n=Fv(e);if(n===void 0)return t;try{return AbortSignal.any([n,t])}catch{return t}}function k8e(e,t){let n="",i=e;for(let o=0;oUq[n%32]).join("")}function sv(){return`${k8e(Date.now(),10)}${b8e(16)}`}function vP(e){try{const t=[];return e.forEach((n,i)=>{typeof n=="string"?t.push({field:i,value:n}):t.push({field:i,file:n.name,size:n.size,type:n.type})}),{formData:t}}catch{return"[FormData]"}}async function s5(e){try{const t=await e.text();return t?t.length>M7?`${t.slice(0,M7)}...`:t:void 0}catch{return}}class AP{constructor(t){this.opts=t,this.tracer=t.tracer??iI}tracer;async get(t,n){return this.request("GET",t,void 0,n)}async getBlob(t,n,i){let o=$f(this.opts.origin,t,this.opts.restBasePath);if(n){const c=new URLSearchParams;mP(c,n);const d=c.toString();d&&(o=`${o}?${d}`)}const s=sv(),r={"X-Request-Id":s};if(this.addClientHeaders(r),i?.prefixBytes!==void 0){if(!Number.isSafeInteger(i.prefixBytes)||i.prefixBytes<1)throw new RangeError("Media prefix size must be a positive integer");r.Range=`bytes=0-${i.prefixBytes-1}`}const a=Date.now();this.tracer.restRequest?.({method:"GET",path:t,url:o,requestId:s});let l;try{l=await fetch(o,{method:"GET",headers:r,signal:i?.signal?gP(wc,i.signal):Fv()})}catch(c){throw this.tracer.restFailure?.({method:"GET",path:t,requestId:s,phase:"fetch",durationMs:Date.now()-a,error:c}),new vl({message:`Network error calling GET ${t}`,cause:c,method:"GET",path:t,url:o,requestId:s,phase:"fetch",timeoutMs:wc,timestamp:Date.now(),durationMs:Date.now()-a})}if(l.ok){this.tracer.restResponse?.({method:"GET",path:t,requestId:s,status:l.status,durationMs:Date.now()-a,code:0,msg:""});const c=Number(l.headers.get("content-length")??0),d=i?.prefixBytes??i?.maxBytes;if(d!==void 0&&c>d)throw l.body?.cancel(),new zb({size:c,limit:d});if(i?.prefixBytes!==void 0&&l.body!==null){const f=l.body.getReader(),h=[];let m=0;try{for(;;){const{done:g,value:v}=await f.read();if(g)break;if(m+=v.byteLength,m>i.prefixBytes)throw new zb({size:m,limit:i.prefixBytes});h.push(new Uint8Array(v))}return new Blob(h,{type:l.headers.get("content-type")??""})}finally{await f.cancel(),f.releaseLock()}}return l.blob()}let u;try{u=await l.clone().json()}catch{}throw this.checkAuthRequired(l,u?.code??0),this.tracer.restResponse?.({method:"GET",path:t,requestId:s,status:l.status,durationMs:Date.now()-a,code:u?.code??l.status,msg:u?.msg??l.statusText,envelopeRequestId:u?.request_id}),new Tc({code:u?.code??l.status,msg:u?.msg??l.statusText,requestId:u?.request_id??s,details:u?.details,timestamp:Date.now(),durationMs:Date.now()-a})}async post(t,n,i){return this.request("POST",t,n,void 0,i)}async postZip(t,n,i){const o="POST",s=$f(this.opts.origin,t,this.opts.restBasePath),r=sv(),a={"X-Request-Id":r,"Content-Type":"application/json; charset=utf-8"};this.addClientHeaders(a);const l=Date.now();this.tracer.restRequest?.({method:o,path:t,url:s,requestId:r,body:i});let u;try{u=await fetch(s,{method:o,headers:a,body:JSON.stringify(n),signal:Fv(Mk)})}catch(h){throw this.tracer.restFailure?.({method:o,path:t,requestId:r,phase:"fetch",durationMs:Date.now()-l,error:h}),new vl({message:`Network error calling ${o} ${t}`,cause:h,method:o,path:t,url:s,requestId:r,phase:"fetch",timeoutMs:Mk,timestamp:Date.now(),durationMs:Date.now()-l})}const c=u.headers.get("content-type")??void 0,d=c?.split(";",1)[0]?.trim().toLowerCase();if(!u.ok||d!=="application/zip"){let h;try{h=await u.clone().json()}catch{}if(this.checkAuthRequired(u,h?.code??0),!u.ok||h!==void 0&&h.code!==0){const v=h?.code??u.status,y=h?.msg??u.statusText;throw this.tracer.restResponse?.({method:o,path:t,requestId:r,status:u.status,durationMs:Date.now()-l,code:v,msg:y,envelopeRequestId:h?.request_id}),new Tc({code:v,msg:y,requestId:h?.request_id??r,details:h?.details,timestamp:Date.now(),durationMs:Date.now()-l})}const m=u.clone(),g=new TypeError(`Expected application/zip, received ${c??"no content type"}`);throw this.tracer.restFailure?.({method:o,path:t,requestId:r,phase:"parse",durationMs:Date.now()-l,status:u.status,error:g}),new vl({message:`Invalid ZIP response from ${o} ${t}`,cause:g,method:o,path:t,url:s,requestId:r,phase:"parse",timeoutMs:Mk,status:u.status,statusText:u.statusText,contentType:c,bodyPreview:await s5(m),timestamp:Date.now(),durationMs:Date.now()-l})}let f;try{f=await u.blob()}catch(h){throw this.tracer.restFailure?.({method:o,path:t,requestId:r,phase:"parse",durationMs:Date.now()-l,status:u.status,error:h}),new vl({message:`Failed to read ZIP response from ${o} ${t}`,cause:h,method:o,path:t,url:s,requestId:r,phase:"parse",timeoutMs:Mk,status:u.status,statusText:u.statusText,contentType:c,timestamp:Date.now(),durationMs:Date.now()-l})}return this.tracer.restResponse?.({method:o,path:t,requestId:r,status:u.status,durationMs:Date.now()-l,code:0,msg:""}),{blob:f,contentDisposition:u.headers.get("content-disposition")??void 0}}async postForm(t,n,i){if(i?.onUploadProgress!==void 0)return this.postFormXhr(t,n,i.onUploadProgress,i.signal);const o=$f(this.opts.origin,t,this.opts.restBasePath),s=sv(),r={"X-Request-Id":s};this.addClientHeaders(r);const a=Date.now();this.tracer.restRequest?.({method:"POST",path:t,url:o,requestId:s,body:vP(n)});const l=i?.signal,u=Fv(),c=l===void 0?u:u===void 0?l:AbortSignal.any([u,l]);let d;try{d=await fetch(o,{method:"POST",headers:r,body:n,signal:c})}catch(m){throw this.tracer.restFailure?.({method:"POST",path:t,requestId:s,phase:"fetch",durationMs:Date.now()-a,error:m}),new vl({message:`Network error calling POST ${t}`,cause:m,method:"POST",path:t,url:o,requestId:s,phase:"fetch",timeoutMs:wc,timestamp:Date.now(),durationMs:Date.now()-a})}let f;const h=d.clone();try{f=await d.json()}catch(m){throw this.tracer.restFailure?.({method:"POST",path:t,requestId:s,phase:"parse",durationMs:Date.now()-a,status:d.status,error:m}),new vl({message:`Failed to parse JSON response from POST ${t}`,cause:m,method:"POST",path:t,url:o,requestId:s,phase:"parse",timeoutMs:wc,status:d.status,statusText:d.statusText,contentType:d.headers.get("content-type")??void 0,bodyPreview:await s5(h),timestamp:Date.now(),durationMs:Date.now()-a})}if(this.tracer.restResponse?.({method:"POST",path:t,requestId:s,status:d.status,durationMs:Date.now()-a,code:f.code,msg:f.msg,envelopeRequestId:f.request_id,data:f.data}),this.checkAuthRequired(d,f.code),f.code!==0){const m=f.code??d.status;throw new Tc({code:m,msg:f.msg??d.statusText,requestId:f.request_id??s,details:f.details,timestamp:Date.now(),durationMs:Date.now()-a})}return f.data}postFormXhr(t,n,i,o){const s=$f(this.opts.origin,t,this.opts.restBasePath),r=sv(),a={"X-Request-Id":r};this.addClientHeaders(a);const l=Date.now();return this.tracer.restRequest?.({method:"POST",path:t,url:s,requestId:r,body:vP(n)}),new Promise((u,c)=>{const d=new XMLHttpRequest,f=()=>d.abort(),h=()=>o?.removeEventListener("abort",f);d.open("POST",s),d.timeout=wc;for(const[m,g]of Object.entries(a))d.setRequestHeader(m,g);if(d.upload.onprogress=m=>{m.lengthComputable&&i(m.loaded,m.total)},d.onerror=()=>{h(),this.tracer.restFailure?.({method:"POST",path:t,requestId:r,phase:"fetch",durationMs:Date.now()-l,error:d.statusText||"network error"}),c(new vl({message:`Network error calling POST ${t}`,cause:null,method:"POST",path:t,url:s,requestId:r,phase:"fetch",timeoutMs:wc,timestamp:Date.now(),durationMs:Date.now()-l}))},d.ontimeout=()=>{h(),this.tracer.restFailure?.({method:"POST",path:t,requestId:r,phase:"fetch",durationMs:Date.now()-l,error:"timeout"}),c(new vl({message:`Timeout calling POST ${t}`,cause:null,method:"POST",path:t,url:s,requestId:r,phase:"fetch",timeoutMs:wc,timestamp:Date.now(),durationMs:Date.now()-l}))},d.onload=()=>{h();let m;try{m=JSON.parse(d.responseText)}catch(g){this.tracer.restFailure?.({method:"POST",path:t,requestId:r,phase:"parse",durationMs:Date.now()-l,status:d.status,error:g}),c(new vl({message:`Failed to parse JSON response from POST ${t}`,cause:g,method:"POST",path:t,url:s,requestId:r,phase:"parse",timeoutMs:wc,status:d.status,statusText:d.statusText,bodyPreview:d.responseText.slice(0,M7),timestamp:Date.now(),durationMs:Date.now()-l}));return}if(this.tracer.restResponse?.({method:"POST",path:t,requestId:r,status:d.status,durationMs:Date.now()-l,code:m.code,msg:m.msg,envelopeRequestId:m.request_id,data:m.data}),this.checkAuthStatus(d.status,m.code),m.code!==0){const g=m.code??d.status;c(new Tc({code:g,msg:m.msg??d.statusText,requestId:m.request_id??r,details:m.details,timestamp:Date.now(),durationMs:Date.now()-l}));return}u(m.data)},d.onabort=()=>{h(),c(new DOMException("Upload aborted","AbortError"))},o?.addEventListener("abort",f,{once:!0}),o?.aborted===!0){h(),c(new DOMException("Upload aborted","AbortError"));return}d.send(n)})}async patch(t,n){return this.request("PATCH",t,n)}async put(t,n){return this.request("PUT",t,n)}async delete(t){return this.request("DELETE",t)}async request(t,n,i,o,s={}){const r=s.allowCodes??[],a=s.timeoutMs??wc,l=s.signal;let u=$f(this.opts.origin,n,this.opts.restBasePath);if(o){const v=new URLSearchParams;mP(v,o);const y=v.toString();y&&(u=`${u}?${y}`)}const c=sv(),d={"X-Request-Id":c};this.addClientHeaders(d),i!==void 0&&(d["Content-Type"]="application/json; charset=utf-8");const f=Date.now();this.tracer.restRequest?.({method:t,path:n,url:u,requestId:c,body:i});let h;try{h=await fetch(u,{method:t,headers:d,body:i!==void 0?JSON.stringify(i):void 0,signal:l!==void 0?gP(a,l):Fv(a)})}catch(v){throw l?.aborted&&v instanceof Error&&v.name==="AbortError"?v:(this.tracer.restFailure?.({method:t,path:n,requestId:c,phase:"fetch",durationMs:Date.now()-f,error:v}),new vl({message:`Network error calling ${t} ${n}`,cause:v,method:t,path:n,url:u,requestId:c,phase:"fetch",timeoutMs:a,timestamp:Date.now(),durationMs:Date.now()-f}))}let m;const g=h.clone();try{const v=await h.text();m=h.status===204&&v===""?{code:0,msg:"",data:null,request_id:c}:JSON.parse(v)}catch(v){throw l?.aborted&&v instanceof Error&&v.name==="AbortError"?v:(this.tracer.restFailure?.({method:t,path:n,requestId:c,phase:"parse",durationMs:Date.now()-f,status:h.status,error:v}),new vl({message:`Failed to parse JSON response from ${t} ${n}`,cause:v,method:t,path:n,url:u,requestId:c,phase:"parse",timeoutMs:a,status:h.status,statusText:h.statusText,contentType:h.headers.get("content-type")??void 0,bodyPreview:await s5(g),timestamp:Date.now(),durationMs:Date.now()-f}))}if(this.tracer.restResponse?.({method:t,path:n,requestId:c,status:h.status,durationMs:Date.now()-f,code:m.code,msg:m.msg,envelopeRequestId:m.request_id,data:m.data}),this.checkAuthRequired(h,m.code),m.code!==0&&!r.includes(m.code))throw new Tc({code:typeof m.code=="number"?m.code:h.status,msg:typeof m.msg=="string"&&m.msg.length>0?m.msg:`HTTP ${h.status}${h.statusText?` ${h.statusText}`:""}`,requestId:m.request_id??c,details:m.details,timestamp:Date.now(),durationMs:Date.now()-f});return m.data}addClientHeaders(t){const n=this.opts.credentialStore?.getToken();n!==void 0&&(t.Authorization=`Bearer ${n}`);const i=this.opts.identity;i!==void 0&&(t["X-Kimi-Client-Id"]=i.clientId,t["X-Kimi-Client-Name"]=i.clientName,t["X-Kimi-Client-Version"]=i.clientVersion,t["X-Kimi-Client-Ui-Mode"]=i.clientUiMode)}checkAuthRequired(t,n){this.checkAuthStatus(t.status,n)}checkAuthStatus(t,n){(t===401||n===Wq)&&this.opts.credentialStore?.markAuthRequired?.()}}function Qq(e){return{inputTokens:e.input_tokens,outputTokens:e.output_tokens,cacheReadTokens:e.cache_read_tokens,cacheCreationTokens:e.cache_creation_tokens,totalCostUsd:e.total_cost_usd,contextTokens:e.context_tokens,contextLimit:e.context_limit,turnCount:e.turn_count}}function yP(e){return e.contextTokens===0&&e.contextLimit===0&&e.inputTokens===0&&e.outputTokens===0&&e.turnCount===0}function Sc(e){return{id:e.id,title:e.title,createdAt:e.created_at,updatedAt:e.updated_at,busy:e.busy,mainTurnActive:e.main_turn_active,pendingInteraction:e.pending_interaction,lastTurnReason:e.last_turn_reason,archived:e.archived??!1,archivedAt:e.archived_at,currentPromptId:e.current_prompt_id,lastPrompt:e.last_prompt,cwd:e.metadata.cwd,model:e.agent_config.model,usage:Qq(e.usage),messageCount:e.message_count,lastSeq:e.last_seq,workspaceId:e.workspace_id,parentSessionId:typeof e.metadata.parent_session_id=="string"?e.metadata.parent_session_id:void 0}}function Tk(e){const t=e.activity.status;return{id:e.id,title:e.meta.title??e.meta.last_prompt??e.id.slice(0,12),createdAt:new Date(e.meta.created_at).toISOString(),updatedAt:new Date(e.meta.updated_at).toISOString(),busy:t==="running",pendingInteraction:t==="approval"?"approval":t==="question"?"question":void 0,lastTurnReason:t==="failed"?"failed":void 0,archived:e.meta.archived,archivedAt:e.meta.archived_at==null?void 0:new Date(e.meta.archived_at).toISOString(),lastPrompt:e.meta.last_prompt??void 0,cwd:e.workspace.cwd??"",model:e.activity.model??"",pullRequest:e.git===void 0?void 0:e.git.pull_request,usage:{inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheCreationTokens:0,totalCostUsd:0,contextTokens:0,contextLimit:0,turnCount:0},messageCount:0,lastSeq:0,workspaceId:e.workspace.id.length>0?e.workspace.id:void 0}}function kA(e){return{id:e.id,root:e.root,name:e.name,lastOpenedAt:e.last_opened_at,sessionCount:e.session_count}}function kP(e){return e.kind==="base64"?{kind:"base64",mediaType:e.media_type,data:e.data}:e.kind==="file"?{kind:"file",fileId:e.file_id}:e.kind==="session_media"?{kind:"sessionMedia",fileId:e.file_id}:{kind:"url",url:e.url}}function dC(e){switch(e.type){case"text":return{type:"text",text:e.text};case"tool_use":return{type:"toolUse",toolCallId:e.tool_call_id,toolName:e.tool_name,input:e.input};case"tool_result":return{type:"toolResult",toolCallId:e.tool_call_id,output:e.output,isError:e.is_error};case"image":return{type:"image",source:kP(e.source),...e.name===void 0?{}:{name:e.name}};case"video":return{type:"video",source:kP(e.source),...e.name===void 0?{}:{name:e.name}};case"file":return{type:"file",fileId:e.file_id,name:e.name,mediaType:e.media_type,size:e.size};case"thinking":return{type:"thinking",thinking:e.thinking,signature:e.signature};default:return{type:"unknown",raw:e}}}function Vq(e){return{id:e.id,sessionId:e.session_id,role:e.role,content:e.content.map(dC),createdAt:e.created_at,promptId:e.prompt_id,parentMessageId:e.parent_message_id,metadata:e.metadata}}function Gq(e){switch(e.type){case"text":return{type:"text",text:e.text};case"toolUse":return{type:"tool_use",tool_call_id:e.toolCallId,tool_name:e.toolName,input:e.input};case"toolResult":return{type:"tool_result",tool_call_id:e.toolCallId,output:e.output,is_error:e.isError};case"image":case"video":{const t=e.source;let n;return t.kind==="base64"?n={kind:"base64",media_type:t.mediaType,data:t.data}:t.kind==="file"?n={kind:"file",file_id:t.fileId}:t.kind==="sessionMedia"?n={kind:"session_media",file_id:t.fileId}:n={kind:"url",url:t.url},{type:e.type,source:n,...e.name===void 0?{}:{name:e.name}}}case"file":return{type:"file",file_id:e.fileId,name:e.name,media_type:e.mediaType,size:e.size};case"thinking":return{type:"thinking",thinking:e.thinking,signature:e.signature};case"unknown":return e.raw}}function w8e(e){return{content:e.content.map(Gq),metadata:e.metadata,agent_id:e.agentId,model:e.model,thinking:e.thinking,permission_mode:e.permissionMode,plan_mode:e.planMode,swarm_mode:e.swarmMode,goal_objective:e.goalObjective,goal_control:e.goalControl,skills:e.skills}}function C8e(e){return{decision:e.decision,scope:e.scope,feedback:e.feedback,selected_label:e.selectedLabel}}function S8e(e){return{approvalId:e.approval_id,sessionId:e.session_id,turnId:e.turn_id,toolCallId:e.tool_call_id,toolName:e.tool_name,action:e.action,display:e.tool_input_display??e.display,expiresAt:e.expires_at,createdAt:e.created_at}}function x8e(e){return{id:e.id,label:e.label,description:e.description,recommended:e.recommended===!0||e.is_recommended===!0}}function _8e(e){return{id:e.id,question:e.question,header:e.header,body:e.body,options:e.options.map(x8e),multiSelect:e.multi_select,allowOther:e.allow_other,otherLabel:e.other_label,otherDescription:e.other_description}}function E8e(e){return{questionId:e.question_id,sessionId:e.session_id,turnId:e.turn_id,toolCallId:e.tool_call_id,questions:e.questions.map(_8e),createdAt:e.created_at}}function I8e(e){switch(e.kind){case"single":return{kind:"single",option_id:e.optionId};case"multi":return{kind:"multi",option_ids:e.optionIds};case"other":return{kind:"other",text:e.text};case"multiWithOther":return{kind:"multi_with_other",option_ids:e.optionIds,other_text:e.otherText};case"skipped":return{kind:"skipped"}}}function M8e(e){const t={};for(const[n,i]of Object.entries(e.answers))t[n]=I8e(i);return{answers:t,method:e.method,note:e.note}}function T7(e,t){if(typeof e.run_in_background!="boolean")throw new Error(`task wire missing required run_in_background (id ${e.id})`);return{id:e.id,agentId:e.agent_id??t,sessionId:e.session_id,kind:e.kind,description:e.description,status:e.status,command:e.command,createdAt:e.created_at,startedAt:e.started_at,completedAt:e.completed_at,outputPreview:e.output_preview,outputBytes:e.output_bytes,subagentPhase:e.subagent_phase,subagentType:e.subagent_type,model:e.model,thinkingEffort:e.thinking_effort,parentToolCallId:e.parent_tool_call_id,suspendedReason:e.suspended_reason,swarmIndex:e.swarm_index,runInBackground:e.run_in_background}}function bP(e){return{path:e.path,name:e.name,kind:e.kind,size:e.size,modifiedAt:e.modified_at,etag:e.etag,mime:e.mime,languageId:e.language_id,isBinary:e.is_binary,isSymlinkTo:e.is_symlink_to,gitStatus:e.git_status,childCount:e.child_count}}function bf(e,t){const n=e[t];return typeof n=="string"?n:void 0}function am(e,t){const n=e[t];return typeof n=="number"&&Number.isFinite(n)?n:void 0}function Ql(e,t){const n=e[t];return typeof n=="number"&&Number.isFinite(n)?n:null}function qq(e){if(!e||typeof e!="object")return null;const t=e,n=bf(t,"status");if(n!=="active"&&n!=="paused"&&n!=="blocked"&&n!=="complete")return null;const i=t.budget,o=i&&typeof i=="object"?i:{};return{goalId:bf(t,"goalId")??bf(t,"goal_id")??"goal",objective:bf(t,"objective")??"",completionCriterion:bf(t,"completionCriterion")??bf(t,"completion_criterion"),status:n,turnsUsed:am(t,"turnsUsed")??am(t,"turns_used")??0,tokensUsed:am(t,"tokensUsed")??am(t,"tokens_used")??0,wallClockMs:am(t,"wallClockMs")??am(t,"wall_clock_ms")??0,terminalReason:bf(t,"terminalReason")??bf(t,"terminal_reason"),budget:{tokenBudget:Ql(o,"tokenBudget")??Ql(o,"token_budget"),remainingTokens:Ql(o,"remainingTokens")??Ql(o,"remaining_tokens"),turnBudget:Ql(o,"turnBudget")??Ql(o,"turn_budget"),remainingTurns:Ql(o,"remainingTurns")??Ql(o,"remaining_turns"),wallClockBudgetMs:Ql(o,"wallClockBudgetMs")??Ql(o,"wall_clock_budget_ms"),remainingWallClockMs:Ql(o,"remainingWallClockMs")??Ql(o,"remaining_wall_clock_ms"),overBudget:o.overBudget===!0||o.over_budget===!0}}}function T8e(e){const t=e;switch(e.type){case"event.session.created":return{type:"sessionCreated",session:Sc(t.payload.session)};case"event.session.updated":return{type:"sessionUpdated",session:Sc(t.payload.session),changedFields:t.payload.changed_fields};case"event.session.deleted":{const n=t.payload?.sessionId;return typeof n!="string"||n.length===0?{type:"unknown",raw:{_noop:!0,_wireType:t.type}}:{type:"sessionDeleted",sessionId:n}}case"event.session.archived":{const n=t.payload?.sessionId??t.payload?.session_id;if(typeof n!="string"||n.length===0)return{type:"unknown",raw:{_noop:!0,_wireType:t.type}};const i=t.payload?.workspace_id;return{type:"sessionArchived",sessionId:n,workspaceId:typeof i=="string"&&i.length>0?i:void 0}}case"event.workspace.created":return{type:"workspaceCreated",workspace:kA(t.payload.workspace)};case"event.workspace.updated":return{type:"workspaceUpdated",workspace:kA(t.payload.workspace)};case"event.workspace.deleted":return{type:"workspaceDeleted",workspaceId:t.payload.workspace_id,root:t.payload.root};case"event.session.work_changed":return{type:"sessionWorkChanged",sessionId:t.session_id,busy:t.payload.busy,mainTurnActive:t.payload.main_turn_active,pendingInteraction:t.payload.pending_interaction,lastTurnReason:t.payload.last_turn_reason};case"event.session.status_changed":return{type:"sessionWorkChanged",sessionId:t.session_id,busy:t.payload.status!=="idle"&&t.payload.status!=="aborted",mainTurnActive:t.payload.status!=="idle"&&t.payload.status!=="aborted",pendingInteraction:t.payload.status==="awaiting_approval"?"approval":t.payload.status==="awaiting_question"?"question":"none",lastTurnReason:t.payload.status==="aborted"?"cancelled":void 0};case"event.session.usage_updated":return{type:"sessionUsageUpdated",sessionId:t.session_id,usage:Qq(t.payload.usage)};case"event.session.history_compacted":return{type:"historyCompacted",sessionId:t.session_id,beforeSeq:t.payload.before_seq,reason:t.payload.reason,summaryMessageId:t.payload.summary_message_id};case"event.goal.updated":{const n=qq(t.payload.snapshot??null);return{type:"goalUpdated",sessionId:t.session_id,goal:n?.status==="complete"?null:n}}case"event.message.created":return{type:"messageCreated",message:Vq(t.payload.message)};case"event.message.updated":return{type:"messageUpdated",sessionId:t.session_id,messageId:t.payload.message_id,content:t.payload.content.map(dC),status:t.payload.status};case"event.assistant.delta":return{type:"assistantDelta",sessionId:t.session_id,messageId:t.payload.message_id,contentIndex:t.payload.content_index,delta:t.payload.delta};case"event.assistant.tool_use_started":case"event.assistant.tool_use_delta":case"event.assistant.tool_use_completed":case"event.assistant.completed":case"event.tool.started":return{type:"unknown",raw:{_noop:!0,_wireType:t.type}};case"event.tool.output":return{type:"toolOutput",sessionId:t.session_id,toolCallId:t.payload.tool_call_id,outputChunk:t.payload.chunk,stream:t.payload.stream};case"event.tool.progress":return typeof t.payload.message=="string"&&t.payload.message.length>0?{type:"toolOutput",sessionId:t.session_id,toolCallId:t.payload.tool_call_id,outputChunk:t.payload.message,stream:"stdout"}:{type:"unknown",raw:{_noop:!0,_wireType:t.type}};case"event.tool.completed":return{type:"unknown",raw:{_noop:!0,_wireType:t.type}};case"event.approval.requested":return{type:"approvalRequested",sessionId:t.session_id,approval:S8e(t.payload)};case"event.approval.resolved":return{type:"approvalResolved",sessionId:t.session_id,approvalId:t.payload.approval_id,decision:t.payload.decision,resolvedAt:t.payload.resolved_at,feedback:t.payload.feedback,selectedLabel:t.payload.selected_label};case"event.approval.expired":return{type:"approvalExpired",sessionId:t.session_id,approvalId:t.payload.approval_id};case"event.question.requested":return{type:"questionRequested",sessionId:t.session_id,question:E8e(t.payload)};case"event.question.answered":return{type:"questionAnswered",sessionId:t.session_id,questionId:t.payload.question_id,resolvedAt:t.payload.resolved_at};case"event.question.dismissed":return{type:"questionDismissed",sessionId:t.session_id,questionId:t.payload.question_id,dismissedAt:t.payload.dismissed_at};case"event.task.created":return{type:"taskCreated",sessionId:t.session_id,task:T7(t.payload.task)};case"event.task.progress":return{type:"taskProgress",sessionId:t.session_id,taskId:t.payload.task_id,outputChunk:t.payload.output_chunk,stream:t.payload.stream};case"event.task.completed":return{type:"taskCompleted",sessionId:t.session_id,taskId:t.payload.task_id,status:t.payload.status,outputPreview:t.payload.output_preview,outputBytes:t.payload.output_bytes};case"event.plugin.changed":return{type:"pluginsChanged"};case"event.capability.changed":return{type:"capabilityChanged",capabilityId:t.payload.capability_id,install:t.payload.install};case"event.config.changed":return{type:"configChanged",changedFields:t.payload.changed_fields,config:B7(t.payload.config)};case"event.model_catalog.changed":return{type:"modelCatalogChanged",changed:t.payload.changed.map(n=>({providerId:n.provider_id,providerName:n.provider_name,added:n.added,removed:n.removed})),unchanged:t.payload.unchanged,failed:t.payload.failed};default:return{type:"unknown",raw:e}}}function B8e(e){return{id:e.model,provider:e.provider,model:e.model,displayName:e.display_name,maxContextSize:e.max_context_size,capabilities:e.capabilities,supportEfforts:e.support_efforts,defaultEffort:e.default_effort}}function lm(e){return{id:e.id,type:e.type,baseUrl:e.base_url,defaultModel:e.default_model,hasApiKey:e.has_api_key,status:e.status,models:e.models}}function wP(e){return{id:e.id,name:e.name,wireType:e.wire_type,guessed:e.guessed,needsBaseUrl:e.needs_base_url,rejected:e.rejected,rejectReason:e.reject_reason,envKey:e.env_key,models:e.models.map(t=>({id:t.id,name:t.name,maxContextSize:t.max_context_size,capabilities:t.capabilities,reasoning:t.reasoning}))}}function B7(e){const t={};for(const[n,i]of Object.entries(e.providers))t[n]={type:i.type,baseUrl:i.base_url,defaultModel:i.default_model,hasApiKey:i.has_api_key};return{providers:t,defaultProvider:e.default_provider,defaultModel:e.default_model,secondaryModel:e.secondary_model,models:e.models,thinking:e.thinking,planMode:e.plan_mode,yolo:e.yolo,defaultPermissionMode:e.default_permission_mode,defaultPlanMode:e.default_plan_mode,permission:e.permission,hooks:e.hooks,services:e.services,mergeAllAvailableSkills:e.merge_all_available_skills,extraSkillDirs:e.extra_skill_dirs,loopControl:e.loop_control,background:e.background,experimental:e.experimental,telemetry:e.telemetry,raw:e.raw}}function F8e(e){return e.session_id}function R8e(e){return e.seq}function D8e(e){const t=Number(e.slice(1));return Number.isFinite(t)?t:0}function CP(e){switch(e.kind){case"turn":return e.turnId;case"marker":return e.markerId;case"taskref":return e.refId}}const N8e={items:[],tasks:new Map,interactions:new Map,attachments:new Map,todos:new Map,prompts:new Map,meta:{},pendingInteractions:new Set,hasMoreOlder:!1};function L8e(e,t){switch(t.op){case"reset":return P8e(e,t);case"turn.upsert":return z8e(e,t.turn);case"step.upsert":return j8e(e,t.turnId,t.step);case"frame.upsert":return U8e(e,t);case"append":return Q8e(e,t);case"marker.upsert":return xP(e,t.item,t.item.markerId,t.beforeTurn);case"taskref.upsert":return xP(e,t.item,t.item.refId,t.beforeTurn);case"task.upsert":return q8e(e,t.task);case"interaction.upsert":return K8e(e,t.interaction);case"attachment.upsert":return Y8e(e,t.attachment);case"todo.upsert":return X8e(e,t.todo);case"prompt.upsert":return t5e(e,t.prompt);case"meta.merge":return o5e(e,t.meta);case"items.remove":return G8e(e,t.ids)}}function P8e(e,t){const n=new Set;for(const i of t.snapshot.interactions)i.state==="pending"&&n.add(i.interactionId);return{state:{items:t.snapshot.items,tasks:new Map(t.snapshot.tasks.map(i=>[i.taskId,i])),interactions:new Map(t.snapshot.interactions.map(i=>[i.interactionId,i])),attachments:new Map(t.snapshot.attachments.map(i=>[i.attachmentId,i])),todos:new Map(t.snapshot.todos.map(i=>[i.todoId,i])),prompts:new Map(t.snapshot.prompts.map(i=>[i.promptId,i])),meta:t.snapshot.meta,pendingInteractions:n,hasMoreOlder:t.snapshot.hasMoreOlder??!1},changed:!0}}function SP(e,t){return{...e,kind:"turn",steps:[...t]}}function Kq(e){return{kind:"turn",turnId:e,ordinal:D8e(e),state:"running",origin:{kind:"other"},steps:[]}}function O8e(e,t){const n=Number(e.slice(t.length+1))||0;return{kind:"step",stepId:e,turnId:t,ordinal:n,state:"running",frames:[]}}function Tg(e,t){const n=e.items.find(i=>i.kind==="turn"&&i.turnId===t);return n?.kind==="turn"?n:void 0}function oI(e,t){const n=[...e];let i=n.length;for(let o=0;ot.ordinal){i=o;break}}return n.splice(i,0,t),n}function fC(e,t,n){return e.map(i=>i.kind==="turn"&&i.turnId===t?n(i):i)}function z8e(e,t){const n=Tg(e,t.turnId);return n?$8e(n,t)?{state:e,changed:!1}:{state:{...e,items:fC(e.items,t.turnId,i=>SP(t,i.steps))},changed:!0}:{state:{...e,items:oI(e.items,SP(t,[]))},changed:!0}}function $8e(e,t){return e.ordinal===t.ordinal&&e.triggerPromptId===t.triggerPromptId&&e.state===t.state&&e.prompt===t.prompt&&e.attachmentIds===t.attachmentIds&&e.startedAt===t.startedAt&&e.endedAt===t.endedAt&&e.origin.kind===t.origin.kind&&e.origin.payload===t.origin.payload&&e.usage===t.usage&&e.durationMs===t.durationMs&&e.error===t.error}function j8e(e,t,n){const i=Tg(e,t)??Kq(t),o=i.steps.findIndex(u=>u.stepId===n.stepId);let s,r=!0;if(o>=0){const u=i.steps[o];u&&H8e(u,n)?(r=!1,s=i.steps):s=i.steps.map(c=>c.stepId===n.stepId?{...n,kind:"step",frames:c.frames}:c)}else s=[...i.steps,{...n,kind:"step",frames:[]}].toSorted((u,c)=>u.ordinal-c.ordinal);if(!r)return{state:e,changed:!1};const a={...i,steps:[...s]},l=Tg(e,t)?fC(e.items,t,()=>a):oI(e.items,a);return{state:{...e,items:l},changed:!0}}function H8e(e,t){return e.ordinal===t.ordinal&&e.state===t.state&&e.startedAt===t.startedAt&&e.endedAt===t.endedAt&&e.usage===t.usage&&e.finishReason===t.finishReason&&e.timing===t.timing&&e.retry===t.retry&&e.endReason===t.endReason&&e.endMessage===t.endMessage}function U8e(e,t){const n=Tg(e,t.turnId)??Kq(t.turnId),i=n.steps.find(c=>c.stepId===t.stepId)??O8e(t.stepId,t.turnId),o=i.frames.findIndex(c=>c.frameId===t.frame.frameId);let s;if(o>=0){const c=i.frames[o];if(c!==void 0&&W8e(c,t.frame))return{state:e,changed:!1};s=i.frames.map(d=>d.frameId===t.frame.frameId?t.frame:d)}else s=[...i.frames,t.frame];const r={...i,frames:[...s]},a=n.steps.some(c=>c.stepId===t.stepId)?n.steps.map(c=>c.stepId===t.stepId?r:c):[...n.steps,r].toSorted((c,d)=>c.ordinal-d.ordinal),l={...n,steps:a},u=Tg(e,t.turnId)?fC(e.items,t.turnId,()=>l):oI(e.items,l);return{state:{...e,items:u},changed:!0}}function W8e(e,t){return e.kind!==t.kind?!1:e.kind==="text"&&t.kind==="text"?e.text===t.text&&e.role===t.role&&e.attachmentIds===t.attachmentIds&&e.taskId===t.taskId:e.kind==="thinking"&&t.kind==="thinking"?e.text===t.text:e.kind==="tool"&&t.kind==="tool"?e.state===t.state&&e.toolCallId===t.toolCallId&&e.name===t.name&&e.view===t.view&&e.input===t.input&&e.output===t.output&&e.display===t.display&&e.error===t.error&&e.inputText===t.inputText&&e.progress===t.progress&&e.taskId===t.taskId&&e.approvalId===t.approvalId&&e.todoId===t.todoId&&e.agentRefs===t.agentRefs:e.kind==="notice"&&t.kind==="notice"?e.message===t.message&&e.level===t.level&&e.detail===t.detail:!1}function Q8e(e,t){if(t.target.type==="task")return V8e(e,t);const{turnId:n,stepId:i,frameId:o}=t.target,s=Tg(e,n),r=s?.steps.find(f=>f.stepId===i),a=r?.frames.find(f=>f.frameId===o);if(!s||!r||!a||a.kind!=="text"&&a.kind!=="thinking")return{state:e,changed:!1,gap:{expected:0,got:t.offset}};const l=Zq(a.text,t.offset,t.text);if(l.gap)return{state:e,changed:!1,gap:l.gap};if(!l.changed)return{state:e,changed:!1};const u={...a,text:l.text},c={...r,frames:r.frames.map(f=>f.frameId===o?u:f)},d={...s,steps:s.steps.map(f=>f.stepId===i?c:f)};return{state:{...e,items:fC(e.items,n,()=>d)},changed:!0}}function V8e(e,t){if(t.target.type!=="task")throw new Error("unreachable");const n=t.target.taskId,i=e.tasks.get(n),o=i?.outputTail??"",s=Zq(o,t.offset,t.text);if(s.gap)return{state:e,changed:!1,gap:s.gap};if(!s.changed)return{state:e,changed:!1};const r=i?{...i,outputTail:s.text}:{taskId:n,kind:"other",state:"running",detached:!1,outputTail:s.text},a=new Map(e.tasks);return a.set(n,r),{state:{...e,tasks:a},changed:!0}}function Zq(e,t,n){if(t>e.length)return{text:e,changed:!1,gap:{expected:e.length,got:t}};if(e.slice(t,t+n.length)===n)return{text:e,changed:!1};const i=e.length-t;return e.slice(t)!==n.slice(0,i)?{text:e,changed:!1,gap:{expected:e.length,got:t}}:(i>0?n.slice(i):n).length===0?{text:e,changed:!1}:{text:e.slice(0,t)+n,changed:!0}}function xP(e,t,n,i){if(e.items.some(s=>F7(s)===n)){let s=!1;const r=e.items.map(a=>F7(a)!==n||a===t?a:(s=!0,t));return s?{state:{...e,items:r},changed:!0}:{state:e,changed:!1}}if(i!==void 0){const s=[...e.items];let r=s.length;for(let a=0;a=i){r=a;break}}return s.splice(r,0,t),{state:{...e,items:s},changed:!0}}return{state:{...e,items:[...e.items,t]},changed:!0}}function F7(e){switch(e.kind){case"turn":return e.turnId;case"marker":return e.markerId;case"taskref":return e.refId}}function G8e(e,t){const n=new Set(t),i=e.items.filter(a=>a.kind==="turn"&&n.has(a.turnId)),o=e.items.filter(a=>!n.has(F7(a)));if(o.length===e.items.length)return{state:e,changed:!1};let s=e.pendingInteractions,r=e.interactions;if(i.length>0){const a=new Set,l=new Set(s),u=new Set;for(const c of i)for(const d of c.steps)for(const f of d.frames)f.kind==="tool"&&a.add(f.toolCallId);for(const c of r.values())c.toolCallId!==void 0&&a.has(c.toolCallId)&&(u.add(c.interactionId),l.delete(c.interactionId));if(u.size>0){const c=new Map(r);for(const d of u)c.delete(d);r=c}s=l}return{state:{...e,items:o,interactions:r,pendingInteractions:s},changed:!0}}function q8e(e,t){const n=e.tasks.get(t.taskId);if(n&&i5e(n,t))return{state:e,changed:!1};const i=new Map(e.tasks);return i.set(t.taskId,t),{state:{...e,tasks:i},changed:!0}}function K8e(e,t){const n=e.interactions.get(t.interactionId);if(n&&Z8e(n,t))return{state:e,changed:!1};const i=new Map(e.interactions);i.set(t.interactionId,t);let o=e.pendingInteractions;if(t.state==="pending"){if(!o.has(t.interactionId)){const s=new Set(o);s.add(t.interactionId),o=s}}else if(o.has(t.interactionId)){const s=new Set(o);s.delete(t.interactionId),o=s}return{state:{...e,interactions:i,pendingInteractions:o},changed:!0}}function Z8e(e,t){return e.interactionKind===t.interactionKind&&e.toolCallId===t.toolCallId&&e.state===t.state&&e.request===t.request&&e.response===t.response}function Y8e(e,t){const n=e.attachments.get(t.attachmentId);if(n&&J8e(n,t))return{state:e,changed:!1};const i=new Map(e.attachments);return i.set(t.attachmentId,t),{state:{...e,attachments:i},changed:!0}}function J8e(e,t){return e.mediaType===t.mediaType&&e.name===t.name&&e.size===t.size&&e.source===t.source&&e.placeholder===t.placeholder}function X8e(e,t){const n=e.todos.get(t.todoId);if(n&&e5e(n,t))return{state:e,changed:!1};const i=new Map(e.todos);return i.set(t.todoId,t),{state:{...e,todos:i},changed:!0}}function e5e(e,t){return e.items===t.items&&e.updatedAt===t.updatedAt}function t5e(e,t){const n=e.prompts.get(t.promptId);if(n&&n5e(n,t))return{state:e,changed:!1};const i=new Map(e.prompts);return i.set(t.promptId,t),{state:{...e,prompts:i},changed:!0}}function n5e(e,t){return e.status===t.status&&e.userMessageId===t.userMessageId&&e.content===t.content&&e.createdAt===t.createdAt&&e.finishedAt===t.finishedAt&&e.steeredAt===t.steeredAt}function i5e(e,t){return e.kind===t.kind&&e.state===t.state&&e.detached===t.detached&&e.description===t.description&&e.agentId===t.agentId&&e.outputTail===t.outputTail&&e.startedAt===t.startedAt&&e.endedAt===t.endedAt&&e.resultSummary===t.resultSummary&&e.error===t.error&&e.stateReason===t.stateReason&&e.usage===t.usage}function o5e(e,t){const n=t.modes!==void 0?{plan:t.modes.plan===null?void 0:t.modes.plan??e.meta.modes?.plan,swarm:t.modes.swarm===null?void 0:t.modes.swarm??e.meta.modes?.swarm,tower:t.modes.tower===null?void 0:t.modes.tower??e.meta.modes?.tower}:e.meta.modes,i=t.agent!==void 0?{...e.meta.agent,...t.agent}:e.meta.agent,o={goal:t.goal===null?void 0:t.goal??e.meta.goal,activity:t.activity??e.meta.activity,modes:n!==void 0&&n.plan===void 0&&n.swarm===void 0&&n.tower===void 0?void 0:n,agent:i};return o.goal===e.meta.goal&&o.activity===e.meta.activity&&o.modes===e.meta.modes&&o.agent===e.meta.agent?{state:e,changed:!1}:{state:{...e,meta:o},changed:!0}}class s5e{constructor(t){this.agentId=t}#e=N8e;#t=new Set;receive(t){return this.apply(t)}apply(t){const n=[];let i,o=this.#e;for(const s of t){const r=L8e(o,s);if(r.gap){i={target:s.target,...r.gap};continue}r.changed&&(o=r.state,n.push(s))}if(this.#e=o,n.length>0){const s={agentId:this.agentId,ops:n};for(const r of this.#t)r(s)}return{accepted:n,gap:i}}onChange(t){return this.#t.add(t),{dispose:()=>void this.#t.delete(t)}}getItems(){return this.#e.items}getTurn(t){const n=this.#e.items.find(i=>i.kind==="turn"&&i.turnId===t);return n?.kind==="turn"?n:void 0}getTasks(){return this.#e.tasks}getTask(t){return this.#e.tasks.get(t)}getInteractions(){return this.#e.interactions}getInteraction(t){return this.#e.interactions.get(t)}getAttachments(){return this.#e.attachments}getAttachment(t){return this.#e.attachments.get(t)}getTodos(){return this.#e.todos}getTodo(t){return this.#e.todos.get(t)}getPrompts(){return this.#e.prompts}getPrompt(t){return this.#e.prompts.get(t)}getMeta(){return this.#e.meta}listPendingInteractions(){return[...this.#e.pendingInteractions]}get hasMoreOlder(){return this.#e.hasMoreOlder}snapshot(t){let n=this.#e.items,i=this.#e.hasMoreOlder;if(t!==void 0){const o=n.reduce((s,r)=>r.kind==="turn"?s+1:s,0);if(o>t.tailTurns){const s=o-t.tailTurns,r=[];let a=0;for(const l of n)if(l.kind==="turn"){if(a+=1,a<=s)continue;r.push(l)}else a>s&&r.push(l);n=r,i=!0}}return{items:n,tasks:[...this.#e.tasks.values()],interactions:[...this.#e.interactions.values()],attachments:[...this.#e.attachments.values()],todos:[...this.#e.todos.values()],prompts:[...this.#e.prompts.values()],meta:this.#e.meta,hasMoreOlder:i}}}function Ft(e,t,n){function i(a,l){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:l,constr:r,traits:new Set},enumerable:!1}),a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,l);const u=r.prototype,c=Object.keys(u);for(let d=0;dn?.Parent&&a instanceof n.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(r,"name",{value:e}),r}class pg extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class Yq extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}const Jq={};function Ah(e){return Jq}function Xq(e){const t=Object.values(e).filter(i=>typeof i=="number");return Object.entries(e).filter(([i,o])=>t.indexOf(+i)===-1).map(([i,o])=>o)}function R7(e,t){return typeof t=="bigint"?t.toString():t}function hC(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function sI(e){return e==null}function rI(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function r5e(e,t){const n=(e.toString().split(".")[1]||"").length,i=t.toString();let o=(i.split(".")[1]||"").length;if(o===0&&/\d?e-\d?/.test(i)){const l=i.match(/\d?e-(\d?)/);l?.[1]&&(o=Number.parseInt(l[1]))}const s=n>o?n:o,r=Number.parseInt(e.toFixed(s).replace(".","")),a=Number.parseInt(t.toFixed(s).replace(".",""));return r%a/10**s}const _P=Symbol("evaluating");function ji(e,t,n){let i;Object.defineProperty(e,t,{get(){if(i!==_P)return i===void 0&&(i=_P,i=n()),i},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function F1(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Lh(...e){const t={};for(const n of e){const i=Object.getOwnPropertyDescriptors(n);Object.assign(t,i)}return Object.defineProperties({},t)}function EP(e){return JSON.stringify(e)}function a5e(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const eK="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function f2(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const l5e=hC(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function Bg(e){if(f2(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const n=t.prototype;return!(f2(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function tK(e){return Bg(e)?{...e}:Array.isArray(e)?[...e]:e}const u5e=new Set(["string","number","symbol"]);function Fg(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ph(e,t,n){const i=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(i._zod.parent=e),i}function Bn(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function c5e(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const d5e={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function f5e(e,t){const n=e._zod.def,i=n.checks;if(i&&i.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const s=Lh(e._zod.def,{get shape(){const r={};for(const a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&(r[a]=n.shape[a])}return F1(this,"shape",r),r},checks:[]});return Ph(e,s)}function h5e(e,t){const n=e._zod.def,i=n.checks;if(i&&i.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const s=Lh(e._zod.def,{get shape(){const r={...e._zod.def.shape};for(const a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&delete r[a]}return F1(this,"shape",r),r},checks:[]});return Ph(e,s)}function p5e(e,t){if(!Bg(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const s=e._zod.def.shape;for(const r in t)if(Object.getOwnPropertyDescriptor(s,r)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const o=Lh(e._zod.def,{get shape(){const s={...e._zod.def.shape,...t};return F1(this,"shape",s),s}});return Ph(e,o)}function m5e(e,t){if(!Bg(t))throw new Error("Invalid input to safeExtend: expected a plain object");const n=Lh(e._zod.def,{get shape(){const i={...e._zod.def.shape,...t};return F1(this,"shape",i),i}});return Ph(e,n)}function g5e(e,t){const n=Lh(e._zod.def,{get shape(){const i={...e._zod.def.shape,...t._zod.def.shape};return F1(this,"shape",i),i},get catchall(){return t._zod.def.catchall},checks:[]});return Ph(e,n)}function v5e(e,t,n){const o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const r=Lh(t._zod.def,{get shape(){const a=t._zod.def.shape,l={...a};if(n)for(const u in n){if(!(u in a))throw new Error(`Unrecognized key: "${u}"`);n[u]&&(l[u]=e?new e({type:"optional",innerType:a[u]}):a[u])}else for(const u in a)l[u]=e?new e({type:"optional",innerType:a[u]}):a[u];return F1(this,"shape",l),l},checks:[]});return Ph(t,r)}function A5e(e,t,n){const i=Lh(t._zod.def,{get shape(){const o=t._zod.def.shape,s={...o};if(n)for(const r in n){if(!(r in s))throw new Error(`Unrecognized key: "${r}"`);n[r]&&(s[r]=new e({type:"nonoptional",innerType:o[r]}))}else for(const r in o)s[r]=new e({type:"nonoptional",innerType:o[r]});return F1(this,"shape",s),s}});return Ph(t,i)}function Om(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n{var i;return(i=n).path??(i.path=[]),n.path.unshift(e),n})}function Bk(e){return typeof e=="string"?e:e?.message}function yh(e,t,n){const i={...e,path:e.path??[]};if(!e.message){const o=Bk(e.inst?._zod.def?.error?.(e))??Bk(t?.error?.(e))??Bk(n.customError?.(e))??Bk(n.localeError?.(e))??"Invalid input";i.message=o}return delete i.inst,delete i.continue,t?.reportInput||delete i.input,i}function aI(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function h2(...e){const[t,n,i]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:i}:{...t}}const nK=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,R7,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},iK=Ft("$ZodError",nK),oK=Ft("$ZodError",nK,{Parent:Error});function y5e(e,t=n=>n.message){const n={},i=[];for(const o of e.issues)o.path.length>0?(n[o.path[0]]=n[o.path[0]]||[],n[o.path[0]].push(t(o))):i.push(t(o));return{formErrors:i,fieldErrors:n}}function k5e(e,t=n=>n.message){const n={_errors:[]},i=o=>{for(const s of o.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(r=>i({issues:r}));else if(s.code==="invalid_key")i({issues:s.issues});else if(s.code==="invalid_element")i({issues:s.issues});else if(s.path.length===0)n._errors.push(t(s));else{let r=n,a=0;for(;a(t,n,i,o)=>{const s=i?Object.assign(i,{async:!1}):{async:!1},r=t._zod.run({value:n,issues:[]},s);if(r instanceof Promise)throw new pg;if(r.issues.length){const a=new(o?.Err??e)(r.issues.map(l=>yh(l,s,Ah())));throw eK(a,o?.callee),a}return r.value},uI=e=>async(t,n,i,o)=>{const s=i?Object.assign(i,{async:!0}):{async:!0};let r=t._zod.run({value:n,issues:[]},s);if(r instanceof Promise&&(r=await r),r.issues.length){const a=new(o?.Err??e)(r.issues.map(l=>yh(l,s,Ah())));throw eK(a,o?.callee),a}return r.value},pC=e=>(t,n,i)=>{const o=i?{...i,async:!1}:{async:!1},s=t._zod.run({value:n,issues:[]},o);if(s instanceof Promise)throw new pg;return s.issues.length?{success:!1,error:new(e??iK)(s.issues.map(r=>yh(r,o,Ah())))}:{success:!0,data:s.value}},b5e=pC(oK),mC=e=>async(t,n,i)=>{const o=i?Object.assign(i,{async:!0}):{async:!0};let s=t._zod.run({value:n,issues:[]},o);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(r=>yh(r,o,Ah())))}:{success:!0,data:s.value}},w5e=mC(oK),C5e=e=>(t,n,i)=>{const o=i?Object.assign(i,{direction:"backward"}):{direction:"backward"};return lI(e)(t,n,o)},S5e=e=>(t,n,i)=>lI(e)(t,n,i),x5e=e=>async(t,n,i)=>{const o=i?Object.assign(i,{direction:"backward"}):{direction:"backward"};return uI(e)(t,n,o)},_5e=e=>async(t,n,i)=>uI(e)(t,n,i),E5e=e=>(t,n,i)=>{const o=i?Object.assign(i,{direction:"backward"}):{direction:"backward"};return pC(e)(t,n,o)},I5e=e=>(t,n,i)=>pC(e)(t,n,i),M5e=e=>async(t,n,i)=>{const o=i?Object.assign(i,{direction:"backward"}):{direction:"backward"};return mC(e)(t,n,o)},T5e=e=>async(t,n,i)=>mC(e)(t,n,i),B5e=/^[cC][^\s-]{8,}$/,F5e=/^[0-9a-z]+$/,R5e=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,D5e=/^[0-9a-vA-V]{20}$/,N5e=/^[A-Za-z0-9]{27}$/,L5e=/^[a-zA-Z0-9_-]{21}$/,P5e=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,O5e=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,IP=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,z5e=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,$5e="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function j5e(){return new RegExp($5e,"u")}const H5e=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,U5e=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,W5e=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Q5e=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,V5e=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,sK=/^[A-Za-z0-9_-]*$/,G5e=/^\+[1-9]\d{6,14}$/,rK="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",q5e=new RegExp(`^${rK}$`);function aK(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function K5e(e){return new RegExp(`^${aK(e)}$`)}function Z5e(e){const t=aK({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const i=`${t}(?:${n.join("|")})`;return new RegExp(`^${rK}T(?:${i})$`)}const Y5e=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},J5e=/^-?\d+$/,lK=/^-?\d+(?:\.\d+)?$/,X5e=/^(?:true|false)$/i,e6e=/^[^A-Z]*$/,t6e=/^[^a-z]*$/,Ya=Ft("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),uK={number:"number",bigint:"bigint",object:"date"},cK=Ft("$ZodCheckLessThan",(e,t)=>{Ya.init(e,t);const n=uK[typeof t.value];e._zod.onattach.push(i=>{const o=i._zod.bag,s=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value{(t.inclusive?i.value<=t.value:i.value{Ya.init(e,t);const n=uK[typeof t.value];e._zod.onattach.push(i=>{const o=i._zod.bag,s=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>s&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=i=>{(t.inclusive?i.value>=t.value:i.value>t.value)||i.issues.push({origin:n,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:i.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),n6e=Ft("$ZodCheckMultipleOf",(e,t)=>{Ya.init(e,t),e._zod.onattach.push(n=>{var i;(i=n._zod.bag).multipleOf??(i.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):r5e(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),i6e=Ft("$ZodCheckNumberFormat",(e,t)=>{Ya.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),i=n?"int":"number",[o,s]=d5e[t.format];e._zod.onattach.push(r=>{const a=r._zod.bag;a.format=t.format,a.minimum=o,a.maximum=s,n&&(a.pattern=J5e)}),e._zod.check=r=>{const a=r.value;if(n){if(!Number.isInteger(a)){r.issues.push({expected:i,format:t.format,code:"invalid_type",continue:!1,input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?r.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:i,inclusive:!0,continue:!t.abort}):r.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:i,inclusive:!0,continue:!t.abort});return}}as&&r.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inclusive:!0,inst:e,continue:!t.abort})}}),o6e=Ft("$ZodCheckMaxLength",(e,t)=>{var n;Ya.init(e,t),(n=e._zod.def).when??(n.when=i=>{const o=i.value;return!sI(o)&&o.length!==void 0}),e._zod.onattach.push(i=>{const o=i._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{const o=i.value;if(o.length<=t.maximum)return;const r=aI(o);i.issues.push({origin:r,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),s6e=Ft("$ZodCheckMinLength",(e,t)=>{var n;Ya.init(e,t),(n=e._zod.def).when??(n.when=i=>{const o=i.value;return!sI(o)&&o.length!==void 0}),e._zod.onattach.push(i=>{const o=i._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(i._zod.bag.minimum=t.minimum)}),e._zod.check=i=>{const o=i.value;if(o.length>=t.minimum)return;const r=aI(o);i.issues.push({origin:r,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),r6e=Ft("$ZodCheckLengthEquals",(e,t)=>{var n;Ya.init(e,t),(n=e._zod.def).when??(n.when=i=>{const o=i.value;return!sI(o)&&o.length!==void 0}),e._zod.onattach.push(i=>{const o=i._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=i=>{const o=i.value,s=o.length;if(s===t.length)return;const r=aI(o),a=s>t.length;i.issues.push({origin:r,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:i.value,inst:e,continue:!t.abort})}}),gC=Ft("$ZodCheckStringFormat",(e,t)=>{var n,i;Ya.init(e,t),e._zod.onattach.push(o=>{const s=o._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(i=e._zod).check??(i.check=()=>{})}),a6e=Ft("$ZodCheckRegex",(e,t)=>{gC.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),l6e=Ft("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=e6e),gC.init(e,t)}),u6e=Ft("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=t6e),gC.init(e,t)}),c6e=Ft("$ZodCheckIncludes",(e,t)=>{Ya.init(e,t);const n=Fg(t.includes),i=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=i,e._zod.onattach.push(o=>{const s=o._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(i)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),d6e=Ft("$ZodCheckStartsWith",(e,t)=>{Ya.init(e,t);const n=new RegExp(`^${Fg(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(i=>{const o=i._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(n)}),e._zod.check=i=>{i.value.startsWith(t.prefix)||i.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:i.value,inst:e,continue:!t.abort})}}),f6e=Ft("$ZodCheckEndsWith",(e,t)=>{Ya.init(e,t);const n=new RegExp(`.*${Fg(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(i=>{const o=i._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(n)}),e._zod.check=i=>{i.value.endsWith(t.suffix)||i.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:i.value,inst:e,continue:!t.abort})}}),h6e=Ft("$ZodCheckOverwrite",(e,t)=>{Ya.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class p6e{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const i=t.split(` -`).filter(r=>r),o=Math.min(...i.map(r=>r.length-r.trimStart().length)),s=i.map(r=>r.slice(o)).map(r=>" ".repeat(this.indent*2)+r);for(const r of s)this.content.push(r)}compile(){const t=Function,n=this?.args,o=[...(this?.content??[""]).map(s=>` ${s}`)];return new t(...n,o.join(` -`))}}const m6e={major:4,minor:3,patch:6},Ro=Ft("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=m6e;const i=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&i.unshift(e);for(const o of i)for(const s of o._zod.onattach)s(e);if(i.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const o=(r,a,l)=>{let u=Om(r),c;for(const d of a){if(d._zod.def.when){if(!d._zod.def.when(r))continue}else if(u)continue;const f=r.issues.length,h=d._zod.check(r);if(h instanceof Promise&&l?.async===!1)throw new pg;if(c||h instanceof Promise)c=(c??Promise.resolve()).then(async()=>{await h,r.issues.length!==f&&(u||(u=Om(r,f)))});else{if(r.issues.length===f)continue;u||(u=Om(r,f))}}return c?c.then(()=>r):r},s=(r,a,l)=>{if(Om(r))return r.aborted=!0,r;const u=o(a,i,l);if(u instanceof Promise){if(l.async===!1)throw new pg;return u.then(c=>e._zod.parse(c,l))}return e._zod.parse(u,l)};e._zod.run=(r,a)=>{if(a.skipChecks)return e._zod.parse(r,a);if(a.direction==="backward"){const u=e._zod.parse({value:r.value,issues:[]},{...a,skipChecks:!0});return u instanceof Promise?u.then(c=>s(c,r,a)):s(u,r,a)}const l=e._zod.parse(r,a);if(l instanceof Promise){if(a.async===!1)throw new pg;return l.then(u=>o(u,i,a))}return o(l,i,a)}}ji(e,"~standard",()=>({validate:o=>{try{const s=b5e(e,o);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return w5e(e,o).then(r=>r.success?{value:r.data}:{issues:r.error?.issues})}},vendor:"zod",version:1}))}),cI=Ft("$ZodString",(e,t)=>{Ro.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Y5e(e._zod.bag),e._zod.parse=(n,i)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),Co=Ft("$ZodStringFormat",(e,t)=>{gC.init(e,t),cI.init(e,t)}),g6e=Ft("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=O5e),Co.init(e,t)}),v6e=Ft("$ZodUUID",(e,t)=>{if(t.version){const i={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(i===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=IP(i))}else t.pattern??(t.pattern=IP());Co.init(e,t)}),A6e=Ft("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=z5e),Co.init(e,t)}),y6e=Ft("$ZodURL",(e,t)=>{Co.init(e,t),e._zod.check=n=>{try{const i=n.value.trim(),o=new URL(i);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=o.href:n.value=i;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),k6e=Ft("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=j5e()),Co.init(e,t)}),b6e=Ft("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=L5e),Co.init(e,t)}),w6e=Ft("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=B5e),Co.init(e,t)}),C6e=Ft("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=F5e),Co.init(e,t)}),S6e=Ft("$ZodULID",(e,t)=>{t.pattern??(t.pattern=R5e),Co.init(e,t)}),x6e=Ft("$ZodXID",(e,t)=>{t.pattern??(t.pattern=D5e),Co.init(e,t)}),_6e=Ft("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=N5e),Co.init(e,t)}),E6e=Ft("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Z5e(t)),Co.init(e,t)}),I6e=Ft("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=q5e),Co.init(e,t)}),M6e=Ft("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=K5e(t)),Co.init(e,t)}),T6e=Ft("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=P5e),Co.init(e,t)}),B6e=Ft("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=H5e),Co.init(e,t),e._zod.bag.format="ipv4"}),F6e=Ft("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=U5e),Co.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),R6e=Ft("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=W5e),Co.init(e,t)}),D6e=Ft("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Q5e),Co.init(e,t),e._zod.check=n=>{const i=n.value.split("/");try{if(i.length!==2)throw new Error;const[o,s]=i;if(!s)throw new Error;const r=Number(s);if(`${r}`!==s)throw new Error;if(r<0||r>128)throw new Error;new URL(`http://[${o}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function fK(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const N6e=Ft("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=V5e),Co.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{fK(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});function L6e(e){if(!sK.test(e))return!1;const t=e.replace(/[-_]/g,i=>i==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return fK(n)}const P6e=Ft("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=sK),Co.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{L6e(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),O6e=Ft("$ZodE164",(e,t)=>{t.pattern??(t.pattern=G5e),Co.init(e,t)});function z6e(e,t=null){try{const n=e.split(".");if(n.length!==3)return!1;const[i]=n;if(!i)return!1;const o=JSON.parse(atob(i));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}const $6e=Ft("$ZodJWT",(e,t)=>{Co.init(e,t),e._zod.check=n=>{z6e(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),hK=Ft("$ZodNumber",(e,t)=>{Ro.init(e,t),e._zod.pattern=e._zod.bag.pattern??lK,e._zod.parse=(n,i)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}const o=n.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return n;const s=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...s?{received:s}:{}}),n}}),j6e=Ft("$ZodNumberFormat",(e,t)=>{i6e.init(e,t),hK.init(e,t)}),H6e=Ft("$ZodBoolean",(e,t)=>{Ro.init(e,t),e._zod.pattern=X5e,e._zod.parse=(n,i)=>{if(t.coerce)try{n.value=!!n.value}catch{}const o=n.value;return typeof o=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),n}}),U6e=Ft("$ZodUnknown",(e,t)=>{Ro.init(e,t),e._zod.parse=n=>n}),W6e=Ft("$ZodNever",(e,t)=>{Ro.init(e,t),e._zod.parse=(n,i)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)});function MP(e,t,n){e.issues.length&&t.issues.push(...zm(n,e.issues)),t.value[n]=e.value}const Q6e=Ft("$ZodArray",(e,t)=>{Ro.init(e,t),e._zod.parse=(n,i)=>{const o=n.value;if(!Array.isArray(o))return n.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),n;n.value=Array(o.length);const s=[];for(let r=0;rMP(u,n,r))):MP(l,n,r)}return s.length?Promise.all(s).then(()=>n):n}});function Iw(e,t,n,i,o){if(e.issues.length){if(o&&!(n in i))return;t.issues.push(...zm(n,e.issues))}e.value===void 0?n in i&&(t.value[n]=void 0):t.value[n]=e.value}function pK(e){const t=Object.keys(e.shape);for(const i of t)if(!e.shape?.[i]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${i}": expected a Zod schema`);const n=c5e(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function mK(e,t,n,i,o,s){const r=[],a=o.keySet,l=o.catchall._zod,u=l.def.type,c=l.optout==="optional";for(const d in t){if(a.has(d))continue;if(u==="never"){r.push(d);continue}const f=l.run({value:t[d],issues:[]},i);f instanceof Promise?e.push(f.then(h=>Iw(h,n,d,t,c))):Iw(f,n,d,t,c)}return r.length&&n.issues.push({code:"unrecognized_keys",keys:r,input:t,inst:s}),e.length?Promise.all(e).then(()=>n):n}const V6e=Ft("$ZodObject",(e,t)=>{if(Ro.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const a=t.shape;Object.defineProperty(t,"shape",{get:()=>{const l={...a};return Object.defineProperty(t,"shape",{value:l}),l}})}const i=hC(()=>pK(t));ji(e._zod,"propValues",()=>{const a=t.shape,l={};for(const u in a){const c=a[u]._zod;if(c.values){l[u]??(l[u]=new Set);for(const d of c.values)l[u].add(d)}}return l});const o=f2,s=t.catchall;let r;e._zod.parse=(a,l)=>{r??(r=i.value);const u=a.value;if(!o(u))return a.issues.push({expected:"object",code:"invalid_type",input:u,inst:e}),a;a.value={};const c=[],d=r.shape;for(const f of r.keys){const h=d[f],m=h._zod.optout==="optional",g=h._zod.run({value:u[f],issues:[]},l);g instanceof Promise?c.push(g.then(v=>Iw(v,a,f,u,m))):Iw(g,a,f,u,m)}return s?mK(c,u,a,l,i.value,e):c.length?Promise.all(c).then(()=>a):a}}),G6e=Ft("$ZodObjectJIT",(e,t)=>{V6e.init(e,t);const n=e._zod.parse,i=hC(()=>pK(t)),o=f=>{const h=new p6e(["shape","payload","ctx"]),m=i.value,g=b=>{const w=EP(b);return`shape[${w}]._zod.run({ value: input[${w}], issues: [] }, ctx)`};h.write("const input = payload.value;");const v=Object.create(null);let y=0;for(const b of m.keys)v[b]=`key_${y++}`;h.write("const newResult = {};");for(const b of m.keys){const w=v[b],_=EP(b),B=f[b]?._zod?.optout==="optional";h.write(`const ${w} = ${g(b)};`),B?h.write(` - if (${w}.issues.length) { - if (${_} in input) { - payload.issues = payload.issues.concat(${w}.issues.map(iss => ({ - ...iss, - path: iss.path ? [${_}, ...iss.path] : [${_}] - }))); - } - } - - if (${w}.value === undefined) { - if (${_} in input) { - newResult[${_}] = undefined; - } - } else { - newResult[${_}] = ${w}.value; - } - - `):h.write(` - if (${w}.issues.length) { - payload.issues = payload.issues.concat(${w}.issues.map(iss => ({ - ...iss, - path: iss.path ? [${_}, ...iss.path] : [${_}] - }))); - } - - if (${w}.value === undefined) { - if (${_} in input) { - newResult[${_}] = undefined; - } - } else { - newResult[${_}] = ${w}.value; - } - - `)}h.write("payload.value = newResult;"),h.write("return payload;");const A=h.compile();return(b,w)=>A(f,b,w)};let s;const r=f2,a=!Jq.jitless,u=a&&l5e.value,c=t.catchall;let d;e._zod.parse=(f,h)=>{d??(d=i.value);const m=f.value;return r(m)?a&&u&&h?.async===!1&&h.jitless!==!0?(s||(s=o(t.shape)),f=s(f,h),c?mK([],m,f,h,d,e):f):n(f,h):(f.issues.push({expected:"object",code:"invalid_type",input:m,inst:e}),f)}});function TP(e,t,n,i){for(const s of e)if(s.issues.length===0)return t.value=s.value,t;const o=e.filter(s=>!Om(s));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(s=>s.issues.map(r=>yh(r,i,Ah())))}),t)}const gK=Ft("$ZodUnion",(e,t)=>{Ro.init(e,t),ji(e._zod,"optin",()=>t.options.some(o=>o._zod.optin==="optional")?"optional":void 0),ji(e._zod,"optout",()=>t.options.some(o=>o._zod.optout==="optional")?"optional":void 0),ji(e._zod,"values",()=>{if(t.options.every(o=>o._zod.values))return new Set(t.options.flatMap(o=>Array.from(o._zod.values)))}),ji(e._zod,"pattern",()=>{if(t.options.every(o=>o._zod.pattern)){const o=t.options.map(s=>s._zod.pattern);return new RegExp(`^(${o.map(s=>rI(s.source)).join("|")})$`)}});const n=t.options.length===1,i=t.options[0]._zod.run;e._zod.parse=(o,s)=>{if(n)return i(o,s);let r=!1;const a=[];for(const l of t.options){const u=l._zod.run({value:o.value,issues:[]},s);if(u instanceof Promise)a.push(u),r=!0;else{if(u.issues.length===0)return u;a.push(u)}}return r?Promise.all(a).then(l=>TP(l,o,e,s)):TP(a,o,e,s)}}),q6e=Ft("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,gK.init(e,t);const n=e._zod.parse;ji(e._zod,"propValues",()=>{const o={};for(const s of t.options){const r=s._zod.propValues;if(!r||Object.keys(r).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(const[a,l]of Object.entries(r)){o[a]||(o[a]=new Set);for(const u of l)o[a].add(u)}}return o});const i=hC(()=>{const o=t.options,s=new Map;for(const r of o){const a=r._zod.propValues?.[t.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(const l of a){if(s.has(l))throw new Error(`Duplicate discriminator value "${String(l)}"`);s.set(l,r)}}return s});e._zod.parse=(o,s)=>{const r=o.value;if(!f2(r))return o.issues.push({code:"invalid_type",expected:"object",input:r,inst:e}),o;const a=i.value.get(r?.[t.discriminator]);return a?a._zod.run(o,s):t.unionFallback?n(o,s):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:r,path:[t.discriminator],inst:e}),o)}}),K6e=Ft("$ZodIntersection",(e,t)=>{Ro.init(e,t),e._zod.parse=(n,i)=>{const o=n.value,s=t.left._zod.run({value:o,issues:[]},i),r=t.right._zod.run({value:o,issues:[]},i);return s instanceof Promise||r instanceof Promise?Promise.all([s,r]).then(([l,u])=>BP(n,l,u)):BP(n,s,r)}});function D7(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(Bg(e)&&Bg(t)){const n=Object.keys(t),i=Object.keys(e).filter(s=>n.indexOf(s)!==-1),o={...e,...t};for(const s of i){const r=D7(e[s],t[s]);if(!r.valid)return{valid:!1,mergeErrorPath:[s,...r.mergeErrorPath]};o[s]=r.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let i=0;ia.l&&a.r).map(([a])=>a);if(s.length&&o&&e.issues.push({...o,keys:s}),Om(e))return e;const r=D7(t.value,n.value);if(!r.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(r.mergeErrorPath)}`);return e.value=r.data,e}const Z6e=Ft("$ZodRecord",(e,t)=>{Ro.init(e,t),e._zod.parse=(n,i)=>{const o=n.value;if(!Bg(o))return n.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),n;const s=[],r=t.keyType._zod.values;if(r){n.value={};const a=new Set;for(const u of r)if(typeof u=="string"||typeof u=="number"||typeof u=="symbol"){a.add(typeof u=="number"?u.toString():u);const c=t.valueType._zod.run({value:o[u],issues:[]},i);c instanceof Promise?s.push(c.then(d=>{d.issues.length&&n.issues.push(...zm(u,d.issues)),n.value[u]=d.value})):(c.issues.length&&n.issues.push(...zm(u,c.issues)),n.value[u]=c.value)}let l;for(const u in o)a.has(u)||(l=l??[],l.push(u));l&&l.length>0&&n.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:l})}else{n.value={};for(const a of Reflect.ownKeys(o)){if(a==="__proto__")continue;let l=t.keyType._zod.run({value:a,issues:[]},i);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof a=="string"&&lK.test(a)&&l.issues.length){const d=t.keyType._zod.run({value:Number(a),issues:[]},i);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");d.issues.length===0&&(l=d)}if(l.issues.length){t.mode==="loose"?n.value[a]=o[a]:n.issues.push({code:"invalid_key",origin:"record",issues:l.issues.map(d=>yh(d,i,Ah())),input:a,path:[a],inst:e});continue}const c=t.valueType._zod.run({value:o[a],issues:[]},i);c instanceof Promise?s.push(c.then(d=>{d.issues.length&&n.issues.push(...zm(a,d.issues)),n.value[l.value]=d.value})):(c.issues.length&&n.issues.push(...zm(a,c.issues)),n.value[l.value]=c.value)}}return s.length?Promise.all(s).then(()=>n):n}}),Y6e=Ft("$ZodEnum",(e,t)=>{Ro.init(e,t);const n=Xq(t.entries),i=new Set(n);e._zod.values=i,e._zod.pattern=new RegExp(`^(${n.filter(o=>u5e.has(typeof o)).map(o=>typeof o=="string"?Fg(o):o.toString()).join("|")})$`),e._zod.parse=(o,s)=>{const r=o.value;return i.has(r)||o.issues.push({code:"invalid_value",values:n,input:r,inst:e}),o}}),J6e=Ft("$ZodLiteral",(e,t)=>{if(Ro.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");const n=new Set(t.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.values.map(i=>typeof i=="string"?Fg(i):i?Fg(i.toString()):String(i)).join("|")})$`),e._zod.parse=(i,o)=>{const s=i.value;return n.has(s)||i.issues.push({code:"invalid_value",values:t.values,input:s,inst:e}),i}}),X6e=Ft("$ZodTransform",(e,t)=>{Ro.init(e,t),e._zod.parse=(n,i)=>{if(i.direction==="backward")throw new Yq(e.constructor.name);const o=t.transform(n.value,n);if(i.async)return(o instanceof Promise?o:Promise.resolve(o)).then(r=>(n.value=r,n));if(o instanceof Promise)throw new pg;return n.value=o,n}});function FP(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const vK=Ft("$ZodOptional",(e,t)=>{Ro.init(e,t),e._zod.optin="optional",e._zod.optout="optional",ji(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),ji(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${rI(n.source)})?$`):void 0}),e._zod.parse=(n,i)=>{if(t.innerType._zod.optin==="optional"){const o=t.innerType._zod.run(n,i);return o instanceof Promise?o.then(s=>FP(s,n.value)):FP(o,n.value)}return n.value===void 0?n:t.innerType._zod.run(n,i)}}),eSe=Ft("$ZodExactOptional",(e,t)=>{vK.init(e,t),ji(e._zod,"values",()=>t.innerType._zod.values),ji(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(n,i)=>t.innerType._zod.run(n,i)}),tSe=Ft("$ZodNullable",(e,t)=>{Ro.init(e,t),ji(e._zod,"optin",()=>t.innerType._zod.optin),ji(e._zod,"optout",()=>t.innerType._zod.optout),ji(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${rI(n.source)}|null)$`):void 0}),ji(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,i)=>n.value===null?n:t.innerType._zod.run(n,i)}),nSe=Ft("$ZodDefault",(e,t)=>{Ro.init(e,t),e._zod.optin="optional",ji(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,i)=>{if(i.direction==="backward")return t.innerType._zod.run(n,i);if(n.value===void 0)return n.value=t.defaultValue,n;const o=t.innerType._zod.run(n,i);return o instanceof Promise?o.then(s=>RP(s,t)):RP(o,t)}});function RP(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const iSe=Ft("$ZodPrefault",(e,t)=>{Ro.init(e,t),e._zod.optin="optional",ji(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,i)=>(i.direction==="backward"||n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,i))}),oSe=Ft("$ZodNonOptional",(e,t)=>{Ro.init(e,t),ji(e._zod,"values",()=>{const n=t.innerType._zod.values;return n?new Set([...n].filter(i=>i!==void 0)):void 0}),e._zod.parse=(n,i)=>{const o=t.innerType._zod.run(n,i);return o instanceof Promise?o.then(s=>DP(s,e)):DP(o,e)}});function DP(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const sSe=Ft("$ZodCatch",(e,t)=>{Ro.init(e,t),ji(e._zod,"optin",()=>t.innerType._zod.optin),ji(e._zod,"optout",()=>t.innerType._zod.optout),ji(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,i)=>{if(i.direction==="backward")return t.innerType._zod.run(n,i);const o=t.innerType._zod.run(n,i);return o instanceof Promise?o.then(s=>(n.value=s.value,s.issues.length&&(n.value=t.catchValue({...n,error:{issues:s.issues.map(r=>yh(r,i,Ah()))},input:n.value}),n.issues=[]),n)):(n.value=o.value,o.issues.length&&(n.value=t.catchValue({...n,error:{issues:o.issues.map(s=>yh(s,i,Ah()))},input:n.value}),n.issues=[]),n)}}),rSe=Ft("$ZodPipe",(e,t)=>{Ro.init(e,t),ji(e._zod,"values",()=>t.in._zod.values),ji(e._zod,"optin",()=>t.in._zod.optin),ji(e._zod,"optout",()=>t.out._zod.optout),ji(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,i)=>{if(i.direction==="backward"){const s=t.out._zod.run(n,i);return s instanceof Promise?s.then(r=>Fk(r,t.in,i)):Fk(s,t.in,i)}const o=t.in._zod.run(n,i);return o instanceof Promise?o.then(s=>Fk(s,t.out,i)):Fk(o,t.out,i)}});function Fk(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const aSe=Ft("$ZodReadonly",(e,t)=>{Ro.init(e,t),ji(e._zod,"propValues",()=>t.innerType._zod.propValues),ji(e._zod,"values",()=>t.innerType._zod.values),ji(e._zod,"optin",()=>t.innerType?._zod?.optin),ji(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(n,i)=>{if(i.direction==="backward")return t.innerType._zod.run(n,i);const o=t.innerType._zod.run(n,i);return o instanceof Promise?o.then(NP):NP(o)}});function NP(e){return e.value=Object.freeze(e.value),e}const lSe=Ft("$ZodCustom",(e,t)=>{Ya.init(e,t),Ro.init(e,t),e._zod.parse=(n,i)=>n,e._zod.check=n=>{const i=n.value,o=t.fn(i);if(o instanceof Promise)return o.then(s=>LP(s,n,i,e));LP(o,n,i,e)}});function LP(e,t,n,i){if(!e){const o={code:"custom",input:n,inst:i,path:[...i._zod.def.path??[]],continue:!i._zod.def.abort};i._zod.def.params&&(o.params=i._zod.def.params),t.issues.push(h2(o))}}var PP;class uSe{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){const i=n[0];return this._map.set(t,i),i&&typeof i=="object"&&"id"in i&&this._idmap.set(i.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){const n=t._zod.parent;if(n){const i={...this.get(n)??{}};delete i.id;const o={...i,...this._map.get(t)};return Object.keys(o).length?o:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function cSe(){return new uSe}(PP=globalThis).__zod_globalRegistry??(PP.__zod_globalRegistry=cSe());const Rv=globalThis.__zod_globalRegistry;function dSe(e,t){return new e({type:"string",...Bn(t)})}function fSe(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Bn(t)})}function OP(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Bn(t)})}function hSe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Bn(t)})}function pSe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Bn(t)})}function mSe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Bn(t)})}function gSe(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Bn(t)})}function vSe(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Bn(t)})}function ASe(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Bn(t)})}function ySe(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Bn(t)})}function kSe(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Bn(t)})}function bSe(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Bn(t)})}function wSe(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Bn(t)})}function CSe(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Bn(t)})}function SSe(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Bn(t)})}function xSe(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Bn(t)})}function _Se(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Bn(t)})}function ESe(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Bn(t)})}function ISe(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Bn(t)})}function MSe(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Bn(t)})}function TSe(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Bn(t)})}function BSe(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Bn(t)})}function FSe(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Bn(t)})}function RSe(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Bn(t)})}function DSe(e,t){return new e({type:"string",format:"date",check:"string_format",...Bn(t)})}function NSe(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Bn(t)})}function LSe(e,t){return new e({type:"string",format:"duration",check:"string_format",...Bn(t)})}function PSe(e,t){return new e({type:"number",checks:[],...Bn(t)})}function OSe(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Bn(t)})}function zSe(e,t){return new e({type:"boolean",...Bn(t)})}function $Se(e){return new e({type:"unknown"})}function jSe(e,t){return new e({type:"never",...Bn(t)})}function zP(e,t){return new cK({check:"less_than",...Bn(t),value:e,inclusive:!1})}function r5(e,t){return new cK({check:"less_than",...Bn(t),value:e,inclusive:!0})}function $P(e,t){return new dK({check:"greater_than",...Bn(t),value:e,inclusive:!1})}function a5(e,t){return new dK({check:"greater_than",...Bn(t),value:e,inclusive:!0})}function jP(e,t){return new n6e({check:"multiple_of",...Bn(t),value:e})}function AK(e,t){return new o6e({check:"max_length",...Bn(t),maximum:e})}function Mw(e,t){return new s6e({check:"min_length",...Bn(t),minimum:e})}function yK(e,t){return new r6e({check:"length_equals",...Bn(t),length:e})}function HSe(e,t){return new a6e({check:"string_format",format:"regex",...Bn(t),pattern:e})}function USe(e){return new l6e({check:"string_format",format:"lowercase",...Bn(e)})}function WSe(e){return new u6e({check:"string_format",format:"uppercase",...Bn(e)})}function QSe(e,t){return new c6e({check:"string_format",format:"includes",...Bn(t),includes:e})}function VSe(e,t){return new d6e({check:"string_format",format:"starts_with",...Bn(t),prefix:e})}function GSe(e,t){return new f6e({check:"string_format",format:"ends_with",...Bn(t),suffix:e})}function o0(e){return new h6e({check:"overwrite",tx:e})}function qSe(e){return o0(t=>t.normalize(e))}function KSe(){return o0(e=>e.trim())}function ZSe(){return o0(e=>e.toLowerCase())}function YSe(){return o0(e=>e.toUpperCase())}function JSe(){return o0(e=>a5e(e))}function XSe(e,t,n){return new e({type:"array",element:t,...Bn(n)})}function e7e(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Bn(n)})}function t7e(e){const t=n7e(n=>(n.addIssue=i=>{if(typeof i=="string")n.issues.push(h2(i,n.value,t._zod.def));else{const o=i;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=n.value),o.inst??(o.inst=t),o.continue??(o.continue=!t._zod.def.abort),n.issues.push(h2(o))}},e(n.value,n)));return t}function n7e(e,t){const n=new Ya({check:"custom",...Bn(t)});return n._zod.check=e,n}function kK(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??Rv,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function Es(e,t,n={path:[],schemaPath:[]}){var i;const o=e._zod.def,s=t.seen.get(e);if(s)return s.count++,n.schemaPath.includes(e)&&(s.cycle=n.path),s.schema;const r={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,r);const a=e._zod.toJSONSchema?.();if(a)r.schema=a;else{const c={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,r.schema,c);else{const f=r.schema,h=t.processors[o.type];if(!h)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);h(e,t,f,c)}const d=e._zod.parent;d&&(r.ref||(r.ref=d),Es(d,t,c),t.seen.get(d).isParent=!0)}const l=t.metadataRegistry.get(e);return l&&Object.assign(r.schema,l),t.io==="input"&&aa(e)&&(delete r.schema.examples,delete r.schema.default),t.io==="input"&&r.schema._prefault&&((i=r.schema).default??(i.default=r.schema._prefault)),delete r.schema._prefault,t.seen.get(e).schema}function bK(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const i=new Map;for(const r of e.seen.entries()){const a=e.metadataRegistry.get(r[0])?.id;if(a){const l=i.get(a);if(l&&l!==r[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);i.set(a,r[0])}}const o=r=>{const a=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const d=e.external.registry.get(r[0])?.id,f=e.external.uri??(m=>m);if(d)return{ref:f(d)};const h=r[1].defId??r[1].schema.id??`schema${e.counter++}`;return r[1].defId=h,{defId:h,ref:`${f("__shared")}#/${a}/${h}`}}if(r[1]===n)return{ref:"#"};const u=`#/${a}/`,c=r[1].schema.id??`__schema${e.counter++}`;return{defId:c,ref:u+c}},s=r=>{if(r[1].schema.$ref)return;const a=r[1],{ref:l,defId:u}=o(r);a.def={...a.schema},u&&(a.defId=u);const c=a.schema;for(const d in c)delete c[d];c.$ref=l};if(e.cycles==="throw")for(const r of e.seen.entries()){const a=r[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/ - -Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const r of e.seen.entries()){const a=r[1];if(t===r[0]){s(r);continue}if(e.external){const u=e.external.registry.get(r[0])?.id;if(t!==r[0]&&u){s(r);continue}}if(e.metadataRegistry.get(r[0])?.id){s(r);continue}if(a.cycle){s(r);continue}if(a.count>1&&e.reused==="ref"){s(r);continue}}}function wK(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const i=r=>{const a=e.seen.get(r);if(a.ref===null)return;const l=a.def??a.schema,u={...l},c=a.ref;if(a.ref=null,c){i(c);const f=e.seen.get(c),h=f.schema;if(h.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(l.allOf=l.allOf??[],l.allOf.push(h)):Object.assign(l,h),Object.assign(l,u),r._zod.parent===c)for(const g in l)g==="$ref"||g==="allOf"||g in u||delete l[g];if(h.$ref&&f.def)for(const g in l)g==="$ref"||g==="allOf"||g in f.def&&JSON.stringify(l[g])===JSON.stringify(f.def[g])&&delete l[g]}const d=r._zod.parent;if(d&&d!==c){i(d);const f=e.seen.get(d);if(f?.schema.$ref&&(l.$ref=f.schema.$ref,f.def))for(const h in l)h==="$ref"||h==="allOf"||h in f.def&&JSON.stringify(l[h])===JSON.stringify(f.def[h])&&delete l[h]}e.override({zodSchema:r,jsonSchema:l,path:a.path??[]})};for(const r of[...e.seen.entries()].reverse())i(r[0]);const o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const r=e.external.registry.get(t)?.id;if(!r)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(r)}Object.assign(o,n.def??n.schema);const s=e.external?.defs??{};for(const r of e.seen.entries()){const a=r[1];a.def&&a.defId&&(s[a.defId]=a.def)}e.external||Object.keys(s).length>0&&(e.target==="draft-2020-12"?o.$defs=s:o.definitions=s);try{const r=JSON.parse(JSON.stringify(o));return Object.defineProperty(r,"~standard",{value:{...t["~standard"],jsonSchema:{input:Tw(t,"input",e.processors),output:Tw(t,"output",e.processors)}},enumerable:!1,writable:!1}),r}catch{throw new Error("Error converting schema to JSON.")}}function aa(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const i=e._zod.def;if(i.type==="transform")return!0;if(i.type==="array")return aa(i.element,n);if(i.type==="set")return aa(i.valueType,n);if(i.type==="lazy")return aa(i.getter(),n);if(i.type==="promise"||i.type==="optional"||i.type==="nonoptional"||i.type==="nullable"||i.type==="readonly"||i.type==="default"||i.type==="prefault")return aa(i.innerType,n);if(i.type==="intersection")return aa(i.left,n)||aa(i.right,n);if(i.type==="record"||i.type==="map")return aa(i.keyType,n)||aa(i.valueType,n);if(i.type==="pipe")return aa(i.in,n)||aa(i.out,n);if(i.type==="object"){for(const o in i.shape)if(aa(i.shape[o],n))return!0;return!1}if(i.type==="union"){for(const o of i.options)if(aa(o,n))return!0;return!1}if(i.type==="tuple"){for(const o of i.items)if(aa(o,n))return!0;return!!(i.rest&&aa(i.rest,n))}return!1}const i7e=(e,t={})=>n=>{const i=kK({...n,processors:t});return Es(e,i),bK(i,e),wK(i,e)},Tw=(e,t,n={})=>i=>{const{libraryOptions:o,target:s}=i??{},r=kK({...o??{},target:s,io:t,processors:n});return Es(e,r),bK(r,e),wK(r,e)},o7e={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},s7e=(e,t,n,i)=>{const o=n;o.type="string";const{minimum:s,maximum:r,format:a,patterns:l,contentEncoding:u}=e._zod.bag;if(typeof s=="number"&&(o.minLength=s),typeof r=="number"&&(o.maxLength=r),a&&(o.format=o7e[a]??a,o.format===""&&delete o.format,a==="time"&&delete o.format),u&&(o.contentEncoding=u),l&&l.size>0){const c=[...l];c.length===1?o.pattern=c[0].source:c.length>1&&(o.allOf=[...c.map(d=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},r7e=(e,t,n,i)=>{const o=n,{minimum:s,maximum:r,format:a,multipleOf:l,exclusiveMaximum:u,exclusiveMinimum:c}=e._zod.bag;typeof a=="string"&&a.includes("int")?o.type="integer":o.type="number",typeof c=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.minimum=c,o.exclusiveMinimum=!0):o.exclusiveMinimum=c),typeof s=="number"&&(o.minimum=s,typeof c=="number"&&t.target!=="draft-04"&&(c>=s?delete o.minimum:delete o.exclusiveMinimum)),typeof u=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u),typeof r=="number"&&(o.maximum=r,typeof u=="number"&&t.target!=="draft-04"&&(u<=r?delete o.maximum:delete o.exclusiveMaximum)),typeof l=="number"&&(o.multipleOf=l)},a7e=(e,t,n,i)=>{n.type="boolean"},l7e=(e,t,n,i)=>{n.not={}},u7e=(e,t,n,i)=>{},c7e=(e,t,n,i)=>{const o=e._zod.def,s=Xq(o.entries);s.every(r=>typeof r=="number")&&(n.type="number"),s.every(r=>typeof r=="string")&&(n.type="string"),n.enum=s},d7e=(e,t,n,i)=>{const o=e._zod.def,s=[];for(const r of o.values)if(r===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof r=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");s.push(Number(r))}else s.push(r);if(s.length!==0)if(s.length===1){const r=s[0];n.type=r===null?"null":typeof r,t.target==="draft-04"||t.target==="openapi-3.0"?n.enum=[r]:n.const=r}else s.every(r=>typeof r=="number")&&(n.type="number"),s.every(r=>typeof r=="string")&&(n.type="string"),s.every(r=>typeof r=="boolean")&&(n.type="boolean"),s.every(r=>r===null)&&(n.type="null"),n.enum=s},f7e=(e,t,n,i)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},h7e=(e,t,n,i)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},p7e=(e,t,n,i)=>{const o=n,s=e._zod.def,{minimum:r,maximum:a}=e._zod.bag;typeof r=="number"&&(o.minItems=r),typeof a=="number"&&(o.maxItems=a),o.type="array",o.items=Es(s.element,t,{...i,path:[...i.path,"items"]})},m7e=(e,t,n,i)=>{const o=n,s=e._zod.def;o.type="object",o.properties={};const r=s.shape;for(const u in r)o.properties[u]=Es(r[u],t,{...i,path:[...i.path,"properties",u]});const a=new Set(Object.keys(r)),l=new Set([...a].filter(u=>{const c=s.shape[u]._zod;return t.io==="input"?c.optin===void 0:c.optout===void 0}));l.size>0&&(o.required=Array.from(l)),s.catchall?._zod.def.type==="never"?o.additionalProperties=!1:s.catchall?s.catchall&&(o.additionalProperties=Es(s.catchall,t,{...i,path:[...i.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},g7e=(e,t,n,i)=>{const o=e._zod.def,s=o.inclusive===!1,r=o.options.map((a,l)=>Es(a,t,{...i,path:[...i.path,s?"oneOf":"anyOf",l]}));s?n.oneOf=r:n.anyOf=r},v7e=(e,t,n,i)=>{const o=e._zod.def,s=Es(o.left,t,{...i,path:[...i.path,"allOf",0]}),r=Es(o.right,t,{...i,path:[...i.path,"allOf",1]}),a=u=>"allOf"in u&&Object.keys(u).length===1,l=[...a(s)?s.allOf:[s],...a(r)?r.allOf:[r]];n.allOf=l},A7e=(e,t,n,i)=>{const o=n,s=e._zod.def;o.type="object";const r=s.keyType,l=r._zod.bag?.patterns;if(s.mode==="loose"&&l&&l.size>0){const c=Es(s.valueType,t,{...i,path:[...i.path,"patternProperties","*"]});o.patternProperties={};for(const d of l)o.patternProperties[d.source]=c}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(o.propertyNames=Es(s.keyType,t,{...i,path:[...i.path,"propertyNames"]})),o.additionalProperties=Es(s.valueType,t,{...i,path:[...i.path,"additionalProperties"]});const u=r._zod.values;if(u){const c=[...u].filter(d=>typeof d=="string"||typeof d=="number");c.length>0&&(o.required=c)}},y7e=(e,t,n,i)=>{const o=e._zod.def,s=Es(o.innerType,t,i),r=t.seen.get(e);t.target==="openapi-3.0"?(r.ref=o.innerType,n.nullable=!0):n.anyOf=[s,{type:"null"}]},k7e=(e,t,n,i)=>{const o=e._zod.def;Es(o.innerType,t,i);const s=t.seen.get(e);s.ref=o.innerType},b7e=(e,t,n,i)=>{const o=e._zod.def;Es(o.innerType,t,i);const s=t.seen.get(e);s.ref=o.innerType,n.default=JSON.parse(JSON.stringify(o.defaultValue))},w7e=(e,t,n,i)=>{const o=e._zod.def;Es(o.innerType,t,i);const s=t.seen.get(e);s.ref=o.innerType,t.io==="input"&&(n._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},C7e=(e,t,n,i)=>{const o=e._zod.def;Es(o.innerType,t,i);const s=t.seen.get(e);s.ref=o.innerType;let r;try{r=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=r},S7e=(e,t,n,i)=>{const o=e._zod.def,s=t.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;Es(s,t,i);const r=t.seen.get(e);r.ref=s},x7e=(e,t,n,i)=>{const o=e._zod.def;Es(o.innerType,t,i);const s=t.seen.get(e);s.ref=o.innerType,n.readOnly=!0},CK=(e,t,n,i)=>{const o=e._zod.def;Es(o.innerType,t,i);const s=t.seen.get(e);s.ref=o.innerType},_7e=Ft("ZodISODateTime",(e,t)=>{E6e.init(e,t),No.init(e,t)});function E7e(e){return RSe(_7e,e)}const I7e=Ft("ZodISODate",(e,t)=>{I6e.init(e,t),No.init(e,t)});function M7e(e){return DSe(I7e,e)}const T7e=Ft("ZodISOTime",(e,t)=>{M6e.init(e,t),No.init(e,t)});function B7e(e){return NSe(T7e,e)}const F7e=Ft("ZodISODuration",(e,t)=>{T6e.init(e,t),No.init(e,t)});function R7e(e){return LSe(F7e,e)}const D7e=(e,t)=>{iK.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>k5e(e,n)},flatten:{value:n=>y5e(e,n)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,R7,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,R7,2)}},isEmpty:{get(){return e.issues.length===0}}})},ku=Ft("ZodError",D7e,{Parent:Error}),N7e=lI(ku),L7e=uI(ku),P7e=pC(ku),O7e=mC(ku),z7e=C5e(ku),$7e=S5e(ku),j7e=x5e(ku),H7e=_5e(ku),U7e=E5e(ku),W7e=I5e(ku),Q7e=M5e(ku),V7e=T5e(ku),Do=Ft("ZodType",(e,t)=>(Ro.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Tw(e,"input"),output:Tw(e,"output")}}),e.toJSONSchema=i7e(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(Lh(t,{checks:[...t.checks??[],...n.map(i=>typeof i=="function"?{_zod:{check:i,def:{check:"custom"},onattach:[]}}:i)]}),{parent:!0}),e.with=e.check,e.clone=(n,i)=>Ph(e,n,i),e.brand=()=>e,e.register=((n,i)=>(n.add(e,i),e)),e.parse=(n,i)=>N7e(e,n,i,{callee:e.parse}),e.safeParse=(n,i)=>P7e(e,n,i),e.parseAsync=async(n,i)=>L7e(e,n,i,{callee:e.parseAsync}),e.safeParseAsync=async(n,i)=>O7e(e,n,i),e.spa=e.safeParseAsync,e.encode=(n,i)=>z7e(e,n,i),e.decode=(n,i)=>$7e(e,n,i),e.encodeAsync=async(n,i)=>j7e(e,n,i),e.decodeAsync=async(n,i)=>H7e(e,n,i),e.safeEncode=(n,i)=>U7e(e,n,i),e.safeDecode=(n,i)=>W7e(e,n,i),e.safeEncodeAsync=async(n,i)=>Q7e(e,n,i),e.safeDecodeAsync=async(n,i)=>V7e(e,n,i),e.refine=(n,i)=>e.check(zxe(n,i)),e.superRefine=n=>e.check($xe(n)),e.overwrite=n=>e.check(o0(n)),e.optional=()=>WP(e),e.exactOptional=()=>_xe(e),e.nullable=()=>QP(e),e.nullish=()=>WP(QP(e)),e.nonoptional=n=>Fxe(e,n),e.array=()=>vi(e),e.or=n=>vxe([e,n]),e.and=n=>kxe(e,n),e.transform=n=>VP(e,Sxe(n)),e.default=n=>Mxe(e,n),e.prefault=n=>Bxe(e,n),e.catch=n=>Dxe(e,n),e.pipe=n=>VP(e,n),e.readonly=()=>Pxe(e),e.describe=n=>{const i=e.clone();return Rv.add(i,{description:n}),i},Object.defineProperty(e,"description",{get(){return Rv.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return Rv.get(e);const i=e.clone();return Rv.add(i,n[0]),i},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=n=>n(e),e)),SK=Ft("_ZodString",(e,t)=>{cI.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(i,o,s)=>s7e(e,i,o);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...i)=>e.check(HSe(...i)),e.includes=(...i)=>e.check(QSe(...i)),e.startsWith=(...i)=>e.check(VSe(...i)),e.endsWith=(...i)=>e.check(GSe(...i)),e.min=(...i)=>e.check(Mw(...i)),e.max=(...i)=>e.check(AK(...i)),e.length=(...i)=>e.check(yK(...i)),e.nonempty=(...i)=>e.check(Mw(1,...i)),e.lowercase=i=>e.check(USe(i)),e.uppercase=i=>e.check(WSe(i)),e.trim=()=>e.check(KSe()),e.normalize=(...i)=>e.check(qSe(...i)),e.toLowerCase=()=>e.check(ZSe()),e.toUpperCase=()=>e.check(YSe()),e.slugify=()=>e.check(JSe())}),G7e=Ft("ZodString",(e,t)=>{cI.init(e,t),SK.init(e,t),e.email=n=>e.check(fSe(q7e,n)),e.url=n=>e.check(vSe(K7e,n)),e.jwt=n=>e.check(FSe(cxe,n)),e.emoji=n=>e.check(ASe(Z7e,n)),e.guid=n=>e.check(OP(HP,n)),e.uuid=n=>e.check(hSe(Rk,n)),e.uuidv4=n=>e.check(pSe(Rk,n)),e.uuidv6=n=>e.check(mSe(Rk,n)),e.uuidv7=n=>e.check(gSe(Rk,n)),e.nanoid=n=>e.check(ySe(Y7e,n)),e.guid=n=>e.check(OP(HP,n)),e.cuid=n=>e.check(kSe(J7e,n)),e.cuid2=n=>e.check(bSe(X7e,n)),e.ulid=n=>e.check(wSe(exe,n)),e.base64=n=>e.check(MSe(axe,n)),e.base64url=n=>e.check(TSe(lxe,n)),e.xid=n=>e.check(CSe(txe,n)),e.ksuid=n=>e.check(SSe(nxe,n)),e.ipv4=n=>e.check(xSe(ixe,n)),e.ipv6=n=>e.check(_Se(oxe,n)),e.cidrv4=n=>e.check(ESe(sxe,n)),e.cidrv6=n=>e.check(ISe(rxe,n)),e.e164=n=>e.check(BSe(uxe,n)),e.datetime=n=>e.check(E7e(n)),e.date=n=>e.check(M7e(n)),e.time=n=>e.check(B7e(n)),e.duration=n=>e.check(R7e(n))});function Ut(e){return dSe(G7e,e)}const No=Ft("ZodStringFormat",(e,t)=>{Co.init(e,t),SK.init(e,t)}),q7e=Ft("ZodEmail",(e,t)=>{A6e.init(e,t),No.init(e,t)}),HP=Ft("ZodGUID",(e,t)=>{g6e.init(e,t),No.init(e,t)}),Rk=Ft("ZodUUID",(e,t)=>{v6e.init(e,t),No.init(e,t)}),K7e=Ft("ZodURL",(e,t)=>{y6e.init(e,t),No.init(e,t)}),Z7e=Ft("ZodEmoji",(e,t)=>{k6e.init(e,t),No.init(e,t)}),Y7e=Ft("ZodNanoID",(e,t)=>{b6e.init(e,t),No.init(e,t)}),J7e=Ft("ZodCUID",(e,t)=>{w6e.init(e,t),No.init(e,t)}),X7e=Ft("ZodCUID2",(e,t)=>{C6e.init(e,t),No.init(e,t)}),exe=Ft("ZodULID",(e,t)=>{S6e.init(e,t),No.init(e,t)}),txe=Ft("ZodXID",(e,t)=>{x6e.init(e,t),No.init(e,t)}),nxe=Ft("ZodKSUID",(e,t)=>{_6e.init(e,t),No.init(e,t)}),ixe=Ft("ZodIPv4",(e,t)=>{B6e.init(e,t),No.init(e,t)}),oxe=Ft("ZodIPv6",(e,t)=>{F6e.init(e,t),No.init(e,t)}),sxe=Ft("ZodCIDRv4",(e,t)=>{R6e.init(e,t),No.init(e,t)}),rxe=Ft("ZodCIDRv6",(e,t)=>{D6e.init(e,t),No.init(e,t)}),axe=Ft("ZodBase64",(e,t)=>{N6e.init(e,t),No.init(e,t)}),lxe=Ft("ZodBase64URL",(e,t)=>{P6e.init(e,t),No.init(e,t)}),uxe=Ft("ZodE164",(e,t)=>{O6e.init(e,t),No.init(e,t)}),cxe=Ft("ZodJWT",(e,t)=>{$6e.init(e,t),No.init(e,t)}),xK=Ft("ZodNumber",(e,t)=>{hK.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(i,o,s)=>r7e(e,i,o),e.gt=(i,o)=>e.check($P(i,o)),e.gte=(i,o)=>e.check(a5(i,o)),e.min=(i,o)=>e.check(a5(i,o)),e.lt=(i,o)=>e.check(zP(i,o)),e.lte=(i,o)=>e.check(r5(i,o)),e.max=(i,o)=>e.check(r5(i,o)),e.int=i=>e.check(UP(i)),e.safe=i=>e.check(UP(i)),e.positive=i=>e.check($P(0,i)),e.nonnegative=i=>e.check(a5(0,i)),e.negative=i=>e.check(zP(0,i)),e.nonpositive=i=>e.check(r5(0,i)),e.multipleOf=(i,o)=>e.check(jP(i,o)),e.step=(i,o)=>e.check(jP(i,o)),e.finite=()=>e;const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function En(e){return PSe(xK,e)}const dxe=Ft("ZodNumberFormat",(e,t)=>{j6e.init(e,t),xK.init(e,t)});function UP(e){return OSe(dxe,e)}const fxe=Ft("ZodBoolean",(e,t)=>{H6e.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>a7e(e,n,i)});function ty(e){return zSe(fxe,e)}const hxe=Ft("ZodUnknown",(e,t)=>{U6e.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>u7e()});function $s(){return $Se(hxe)}const pxe=Ft("ZodNever",(e,t)=>{W6e.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>l7e(e,n,i)});function _K(e){return jSe(pxe,e)}const mxe=Ft("ZodArray",(e,t)=>{Q6e.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>p7e(e,n,i,o),e.element=t.element,e.min=(n,i)=>e.check(Mw(n,i)),e.nonempty=n=>e.check(Mw(1,n)),e.max=(n,i)=>e.check(AK(n,i)),e.length=(n,i)=>e.check(yK(n,i)),e.unwrap=()=>e.element});function vi(e,t){return XSe(mxe,e,t)}const gxe=Ft("ZodObject",(e,t)=>{G6e.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>m7e(e,n,i,o),ji(e,"shape",()=>t.shape),e.keyof=()=>Vo(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:$s()}),e.loose=()=>e.clone({...e._zod.def,catchall:$s()}),e.strict=()=>e.clone({...e._zod.def,catchall:_K()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>p5e(e,n),e.safeExtend=n=>m5e(e,n),e.merge=n=>g5e(e,n),e.pick=n=>f5e(e,n),e.omit=n=>h5e(e,n),e.partial=(...n)=>v5e(IK,e,n[0]),e.required=(...n)=>A5e(MK,e,n[0])});function tn(e,t){const n={type:"object",shape:e??{},...Bn(t)};return new gxe(n)}const EK=Ft("ZodUnion",(e,t)=>{gK.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>g7e(e,n,i,o),e.options=t.options});function vxe(e,t){return new EK({type:"union",options:e,...Bn(t)})}const Axe=Ft("ZodDiscriminatedUnion",(e,t)=>{EK.init(e,t),q6e.init(e,t)});function Xd(e,t,n){return new Axe({type:"union",options:t,discriminator:e,...Bn(n)})}const yxe=Ft("ZodIntersection",(e,t)=>{K6e.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>v7e(e,n,i,o)});function kxe(e,t){return new yxe({type:"intersection",left:e,right:t})}const bxe=Ft("ZodRecord",(e,t)=>{Z6e.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>A7e(e,n,i,o),e.keyType=t.keyType,e.valueType=t.valueType});function dI(e,t,n){return new bxe({type:"record",keyType:e,valueType:t,...Bn(n)})}const N7=Ft("ZodEnum",(e,t)=>{Y6e.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(i,o,s)=>c7e(e,i,o),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(i,o)=>{const s={};for(const r of i)if(n.has(r))s[r]=t.entries[r];else throw new Error(`Key ${r} not found in enum`);return new N7({...t,checks:[],...Bn(o),entries:s})},e.exclude=(i,o)=>{const s={...t.entries};for(const r of i)if(n.has(r))delete s[r];else throw new Error(`Key ${r} not found in enum`);return new N7({...t,checks:[],...Bn(o),entries:s})}});function Vo(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(i=>[i,i])):e;return new N7({type:"enum",entries:n,...Bn(t)})}const wxe=Ft("ZodLiteral",(e,t)=>{J6e.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>d7e(e,n,i),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function Vn(e,t){return new wxe({type:"literal",values:Array.isArray(e)?e:[e],...Bn(t)})}const Cxe=Ft("ZodTransform",(e,t)=>{X6e.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>h7e(e,n),e._zod.parse=(n,i)=>{if(i.direction==="backward")throw new Yq(e.constructor.name);n.addIssue=s=>{if(typeof s=="string")n.issues.push(h2(s,n.value,t));else{const r=s;r.fatal&&(r.continue=!1),r.code??(r.code="custom"),r.input??(r.input=n.value),r.inst??(r.inst=e),n.issues.push(h2(r))}};const o=t.transform(n.value,n);return o instanceof Promise?o.then(s=>(n.value=s,n)):(n.value=o,n)}});function Sxe(e){return new Cxe({type:"transform",transform:e})}const IK=Ft("ZodOptional",(e,t)=>{vK.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>CK(e,n,i,o),e.unwrap=()=>e._zod.def.innerType});function WP(e){return new IK({type:"optional",innerType:e})}const xxe=Ft("ZodExactOptional",(e,t)=>{eSe.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>CK(e,n,i,o),e.unwrap=()=>e._zod.def.innerType});function _xe(e){return new xxe({type:"optional",innerType:e})}const Exe=Ft("ZodNullable",(e,t)=>{tSe.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>y7e(e,n,i,o),e.unwrap=()=>e._zod.def.innerType});function QP(e){return new Exe({type:"nullable",innerType:e})}const Ixe=Ft("ZodDefault",(e,t)=>{nSe.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>b7e(e,n,i,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Mxe(e,t){return new Ixe({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():tK(t)}})}const Txe=Ft("ZodPrefault",(e,t)=>{iSe.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>w7e(e,n,i,o),e.unwrap=()=>e._zod.def.innerType});function Bxe(e,t){return new Txe({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():tK(t)}})}const MK=Ft("ZodNonOptional",(e,t)=>{oSe.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>k7e(e,n,i,o),e.unwrap=()=>e._zod.def.innerType});function Fxe(e,t){return new MK({type:"nonoptional",innerType:e,...Bn(t)})}const Rxe=Ft("ZodCatch",(e,t)=>{sSe.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>C7e(e,n,i,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Dxe(e,t){return new Rxe({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const Nxe=Ft("ZodPipe",(e,t)=>{rSe.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>S7e(e,n,i,o),e.in=t.in,e.out=t.out});function VP(e,t){return new Nxe({type:"pipe",in:e,out:t})}const Lxe=Ft("ZodReadonly",(e,t)=>{aSe.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>x7e(e,n,i,o),e.unwrap=()=>e._zod.def.innerType});function Pxe(e){return new Lxe({type:"readonly",innerType:e})}const Oxe=Ft("ZodCustom",(e,t)=>{lSe.init(e,t),Do.init(e,t),e._zod.processJSONSchema=(n,i,o)=>f7e(e,n)});function zxe(e,t={}){return e7e(Oxe,e,t)}function $xe(e){return t7e(e)}const p1=Ut().min(1),fI=Ut().min(1),ny=Ut().min(1),m1=Ut().min(1),Nl=Ut().min(1),jxe=/^[A-Za-z0-9._-]{1,128}$/;function Hxe(e){return jxe.test(e)&&e!=="."&&e!==".."}const TK=Xd("kind",[tn({kind:Vn("user"),payload:$s().optional()}),tn({kind:Vn("cron"),taskId:m1.optional(),payload:$s().optional()}),tn({kind:Vn("task"),taskId:m1,payload:$s().optional()}),tn({kind:Vn("hook"),payload:$s().optional()}),tn({kind:Vn("compaction"),payload:$s().optional()}),tn({kind:Vn("side"),payload:$s().optional()}),tn({kind:Vn("other"),payload:$s().optional()})]),Uxe=tn({inputTokens:En().optional(),outputTokens:En().optional(),cachedTokens:En().optional(),cost:En().optional()}),bA=tn({inputOther:En(),output:En(),inputCacheRead:En(),inputCacheCreation:En()}),Wxe=tn({llmFirstTokenLatencyMs:En().optional(),llmStreamDurationMs:En().optional(),llmRequestBuildMs:En().optional(),llmServerFirstTokenMs:En().optional(),llmServerDecodeMs:En().optional(),llmClientConsumeMs:En().optional(),llmClientBlockedMs:En().optional()}),Qxe=tn({failedAttempt:En(),nextAttempt:En(),maxAttempts:En(),delayMs:En(),errorName:Ut(),errorMessage:Ut(),statusCode:En().optional()}),BK=Vo(["queued","running","completed","failed","cancelled"]),Vxe=Vo(["running","completed","interrupted","failed"]),Gxe=tn({skillName:Ut(),skillArgs:Ut().optional()}),qxe=tn({kind:Vn("user"),skillActivations:vi(Gxe).optional()}),GP={kind:Vn("text"),frameId:ny,text:Ut(),attachmentIds:vi(Ut()).optional(),taskId:m1.optional(),promptIds:vi(Ut()).optional()},Kxe=Xd("role",[tn({...GP,role:Vn("assistant"),origin:_K().optional()}),tn({...GP,role:Vn("user"),origin:qxe.optional()})]),Zxe=tn({kind:Vn("thinking"),frameId:ny,text:Ut()}),Yxe=tn({agentId:Nl,role:Vo(["child","member"]).optional()}),Jxe=tn({kind:Vo(["stdout","stderr","progress","status","custom"]),text:Ut().optional(),percent:En().optional(),customKind:Ut().optional(),customData:$s().optional()}),Xxe=tn({kind:Vn("tool"),frameId:ny,toolCallId:Ut(),name:Ut(),view:Ut().optional(),state:Vo(["running","done","error"]),input:$s().optional(),output:$s().optional(),display:$s().optional(),error:Ut().optional(),inputText:Ut().optional(),progress:Jxe.optional(),taskId:m1.optional(),approvalId:Ut().optional(),todoId:Ut().optional(),agentRefs:vi(Yxe).optional()}),hI=tn({interactionId:Ut(),interactionKind:Vo(["approval","question"]),toolCallId:Ut().optional(),state:Vo(["pending","approved","rejected","cancelled","answered","dismissed"]),request:$s().optional(),response:$s().optional()}),e_e=tn({kind:Vn("notice"),frameId:ny,level:Vo(["error","warning","info"]),source:Ut().optional(),message:Ut(),detail:$s().optional()}),FK=Xd("kind",[Kxe,Zxe,Xxe,e_e]),RK=tn({kind:Vn("step"),stepId:fI,turnId:p1,ordinal:En().int(),state:Vxe,frames:vi(FK),startedAt:Ut().optional(),endedAt:Ut().optional(),usage:bA.optional(),finishReason:Ut().optional(),timing:Wxe.optional(),retry:Qxe.optional(),endReason:Ut().optional(),endMessage:Ut().optional()}),DK=tn({kind:Vn("turn"),turnId:p1,triggerPromptId:Ut().min(1).optional(),ordinal:En().int(),state:BK,origin:TK,prompt:Ut().optional(),attachmentIds:vi(Ut()).optional(),steps:vi(RK),startedAt:Ut().optional(),endedAt:Ut().optional(),usage:Uxe.optional(),durationMs:En().optional(),error:Ut().optional()}),NK=tn({kind:Vn("marker"),markerId:Ut(),marker:Ut(),payload:$s().optional(),at:Ut().optional()}),LK=tn({kind:Vn("taskref"),refId:Ut(),taskId:m1,at:Ut().optional()}),PK=Xd("kind",[DK,NK,LK]),pI=tn({taskId:m1,kind:Vo(["shell","subagent","tool","other"]),state:Vo(["running","completed","failed","timed_out","killed","lost"]),detached:ty(),description:Ut().optional(),agentId:Nl.optional(),outputTail:Ut(),startedAt:Ut().optional(),endedAt:Ut().optional(),resultSummary:Ut().optional(),error:Ut().optional(),stateReason:Ut().optional(),usage:bA.optional(),model:Ut().optional(),thinkingEffort:Ut().optional()}),OK=tn({objective:Ut(),status:Vo(["active","paused","blocked","complete"]),completionCriterion:Ut().optional(),budgetUsed:En().optional(),budgetLimit:En().optional()}),t_e=tn({plan:tn({reviewPath:Ut().optional(),version:En().optional()}).optional(),swarm:tn({trigger:Ut().optional()}).optional(),tower:tn({}).optional()}),n_e=tn({plan:tn({reviewPath:Ut().optional(),version:En().optional()}).nullable().optional(),swarm:tn({trigger:Ut().optional()}).nullable().optional(),tower:tn({}).nullable().optional()}),i_e=Xd("kind",[tn({kind:Vn("idle")}),tn({kind:Vn("running"),turnId:En(),step:En(),stepId:Ut(),since:En()}),tn({kind:Vn("tool_call"),turnId:En(),step:En(),toolCallId:Ut(),name:Ut(),since:En()}),tn({kind:Vn("retrying"),turnId:En(),step:En(),stepId:Ut(),failedAttempt:En(),nextAttempt:En(),maxAttempts:En(),delayMs:En(),errorName:Ut().optional(),statusCode:En().optional(),since:En()}),tn({kind:Vn("awaiting_approval"),turnId:En(),step:En().optional(),approval:$s().optional(),since:En()}),tn({kind:Vn("interrupted"),turnId:En(),step:En().optional(),reason:Vo(["aborted","max_steps","error"]),message:Ut().optional(),at:En()}),tn({kind:Vn("ended"),turnId:En(),reason:Vo(["completed","cancelled","failed","blocked"]),durationMs:En().optional(),at:En()})]),o_e=tn({byModel:dI(Ut(),bA).optional(),currentTurn:bA.optional(),total:bA.optional()}),s_e=tn({model:Ut().optional(),thinkingEffort:Ut().optional(),usage:o_e.optional(),contextTokens:En().optional(),maxContextTokens:En().optional(),contextUsage:En().optional(),permission:Vo(["manual","yolo","auto"]).optional(),phase:i_e.optional()}),mI=tn({goal:OK.optional(),modes:t_e.optional(),activity:Vo(["idle","turn","disposing","unknown"]).optional(),agent:s_e.optional()}),r_e=mI.extend({goal:OK.nullable().optional(),modes:n_e.optional()}),vC=tn({attachmentId:Ut(),mediaType:Ut(),name:Ut().optional(),size:En().optional(),source:Xd("kind",[tn({kind:Vn("url"),url:Ut()}),tn({kind:Vn("file"),fileId:Ut()}),tn({kind:Vn("session_media"),fileId:Ut()})]).optional(),placeholder:Ut().optional()}),a_e=tn({title:Ut(),status:Vo(["pending","in_progress","done"])}),gI=tn({todoId:Ut(),items:vi(a_e),updatedAt:Ut().optional()}),vI=tn({promptId:Ut(),status:Vo(["running","queued","blocked","completed","failed","aborted"]),userMessageId:Ut().optional(),content:$s().optional(),createdAt:Ut(),finishedAt:Ut().optional(),steeredAt:Ut().optional()}),zK=tn({items:vi(PK),tasks:vi(pI),interactions:vi(hI).default([]),attachments:vi(vC).default([]),todos:vi(gI).default([]),prompts:vi(vI).default([]),meta:mI,hasMoreOlder:ty().optional()}),l_e=DK.omit({steps:!0}),u_e=RK.omit({frames:!0}),c_e=Xd("type",[tn({type:Vn("frame"),turnId:p1,stepId:fI,frameId:ny}),tn({type:Vn("task"),taskId:m1})]),AI=Xd("op",[tn({op:Vn("reset"),agentId:Nl,snapshot:zK}),tn({op:Vn("turn.upsert"),turn:l_e}),tn({op:Vn("step.upsert"),turnId:p1,step:u_e}),tn({op:Vn("frame.upsert"),turnId:p1,stepId:fI,frame:FK}),tn({op:Vn("append"),target:c_e,offset:En().int().nonnegative(),text:Ut()}),tn({op:Vn("marker.upsert"),item:NK,beforeTurn:En().int().optional()}),tn({op:Vn("taskref.upsert"),item:LK,beforeTurn:En().int().optional()}),tn({op:Vn("task.upsert"),task:pI}),tn({op:Vn("interaction.upsert"),interaction:hI}),tn({op:Vn("attachment.upsert"),attachment:vC}),tn({op:Vn("todo.upsert"),todo:gI}),tn({op:Vn("prompt.upsert"),prompt:vI}),tn({op:Vn("meta.merge"),meta:r_e}),tn({op:Vn("items.remove"),ids:vi(Ut())})]);tn({agentId:Nl,ops:vi(AI)});const d_e=Vo(["off","turn","block","delta"]),Rg=En().int().nonnegative(),f_e=dI(Ut(),d_e);tn({session_id:Ut().min(1),transcript:f_e,transcript_since:dI(Ut(),Rg).optional()});tn({agent_id:Nl,before_turn:Ut().min(1).optional(),after_turn:Ut().min(1).optional(),page_size:En().int().min(1).max(100).optional()}).superRefine((e,t)=>{e.before_turn!==void 0&&e.after_turn!==void 0&&t.addIssue({code:"custom",message:"before_turn and after_turn are mutually exclusive",path:["before_turn"]}),Hxe(e.agent_id)||t.addIssue({code:"custom",message:"agent_id must be a plain agent id (no path separators)",path:["agent_id"]})});const h_e=tn({agentId:Nl,type:Vo(["main","sub","independent"]).optional(),parentAgentId:Nl.optional(),label:Ut().optional(),createdAt:Ut().optional(),disposedAt:Ut().optional()}),p_e=tn({agent_id:Nl,items:vi(PK),has_more:ty(),tasks:vi(pI),interactions:vi(hI).default([]),attachments:vi(vC).default([]),todos:vi(gI).default([]),prompts:vi(vI).default([]),meta:mI,agents:vi(h_e),pending_interactions:vi(Ut()),seq:Rg.optional()});tn({agent_id:Nl,batches:vi(tn({seq:Rg,ops:vi(AI)})),latest_seq:Rg,complete:ty()});const m_e=tn({turn_id:p1,ordinal:En().int(),state:BK,origin:TK,prompt:Ut(),attachment_ids:vi(Ut()).optional(),started_at:Ut().optional()});tn({agents:vi(tn({agent_id:Nl,messages:vi(m_e),attachments:vi(vC).default([])}))});const g_e=tn({state:Vo(["pending","approved","rejected","cancelled"]),selected_option:Ut().optional(),feedback:Ut().optional()}),v_e=tn({tool_call_id:Ut(),turn_id:p1,source:Vo(["interaction","display","output"]),plan:Ut(),path:Ut().optional(),options:vi(tn({label:Ut(),description:Ut().optional()})).optional(),review:g_e.optional()});tn({agent_id:Nl,plans:vi(v_e)});const A_e=tn({agent_id:Nl,snapshot:zK,has_more_older:ty(),seq:Rg.optional()}),y_e=tn({agent_id:Nl,ops:vi(AI),seq:Rg.optional()}),$K=A_e.extend({type:Vn("transcript.reset")}),jK=y_e.extend({type:Vn("transcript.ops")});Xd("type",[$K,jK]);const qP=new Set(["turn.started","turn.step.started","turn.step.completed","turn.step.retrying","turn.step.interrupted","turn.ended","thinking.delta","assistant.delta","tool.call.started","tool.use","tool.call.delta","tool.progress","tool.result","agent.status.updated","prompt.submitted","prompt.completed","prompt.aborted","session.meta.updated","compaction.started","compaction.completed","compaction.cancelled","goal.updated","error","warning","subagent.spawned","subagent.started","subagent.suspended","subagent.completed","subagent.failed","task.started","task.terminated","background.task.started","background.task.terminated","cron.fired"]),k_e=new Set(["session.created","session.updated","session.deleted","session.status_changed","session.usage_updated","session.history_compacted","message.created","message.updated","approval.requested","approval.resolved","approval.expired","question.requested","question.answered","question.dismissed","task.created","task.progress","task.completed","assistant.tool_use_started","assistant.tool_use_delta","assistant.tool_use_completed","assistant.completed","tool.started","tool.output","tool.completed"]),b_e=new Set(["server_hello","ack","ping","resync_required","error","pong"]),w_e=new Set(["assistant.delta","thinking.delta"]);function C_e(e,t){if(b_e.has(e))return{route:"ignore"};const n=e.startsWith("event."),i=n?e.slice(6):e;return w_e.has(i)?S_e(t)?{route:"agent",agentType:i}:{route:"protocol"}:n?k_e.has(i)?{route:"protocol"}:qP.has(i)?{route:"agent",agentType:i}:{route:"protocol"}:qP.has(i)?{route:"agent",agentType:i}:{route:"agent",agentType:i}}function S_e(e){if(!e||typeof e!="object")return!1;const t=e;return"message_id"in t||"content_index"in t?!1:typeof t.delta=="string"}const x_e="kimi-code.bearer.",__e=3e4;class KP{constructor(t){this.opts=t,this.tracer=t.tracer??iI}ws=null;connected=!1;closed=!1;subscriptions=new Map;transcriptSubscriptions=new Map;sideChannelAgents=new Map;pendingSubscriptions=[];terminalAttachments=new Map;msgSeq=0;clientHelloId=null;reconnectAttempts=0;reconnectTimer=null;heartbeatMs=3e4;lastActivityAt=0;tracer;connect(){if(this.ws!==null||this.closed)return;this.lastActivityAt=Date.now(),this.tracer.wsEvent?.({kind:"lifecycle",event:"connect",detail:{url:this.opts.wsUrl,attempt:this.reconnectAttempts}});const t=this.opts.credentialStore?.getToken(),n=t!==void 0?[`${x_e}${t}`]:void 0,i=new WebSocket(this.opts.wsUrl,n);this.ws=i,i.onopen=()=>{this.tracer.wsEvent?.({kind:"lifecycle",event:"open"})},i.onmessage=o=>{this.lastActivityAt=Date.now();try{const s=JSON.parse(String(o.data));this.tracer.wsEvent?.({kind:"in",frame:s}),this.handleFrame(s)}catch(s){this.tracer.wsEvent?.({kind:"lifecycle",event:"parse-error",detail:{error:String(s)}}),this.opts.handlers.onError(0,`Failed to parse WS frame: ${String(s)}`,!1)}},i.onerror=()=>{this.tracer.wsEvent?.({kind:"lifecycle",event:"error"}),this.opts.handlers.onError(0,"WebSocket error",!1)},i.onclose=o=>{this.tracer.wsEvent?.({kind:"lifecycle",event:"close",detail:o?{code:o.code,reason:o.reason,wasClean:o.wasClean}:void 0}),this.connected=!1,this.ws=null,this.opts.handlers.onConnectionState(!1),this.scheduleReconnect()}}scheduleReconnect(){if(this.closed||this.reconnectTimer!==null)return;const n=Math.min(3e4,1e3*2**this.reconnectAttempts)+Math.floor(Math.random()*250);this.reconnectAttempts+=1,this.tracer.wsEvent?.({kind:"lifecycle",event:"reconnect-scheduled",detail:{delayMs:n,attempt:this.reconnectAttempts}}),this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},n)}subscribe(t,n={seq:0}){if(this.subscriptions.set(t,{...n}),this.connected)this.sendSubscribe([t],{[t]:n});else{const i=this.pendingSubscriptions.findIndex(o=>o.sessionId===t);i!==-1&&this.pendingSubscriptions.splice(i,1),this.pendingSubscriptions.push({sessionId:t,cursor:{...n}})}}unsubscribe(t){this.subscriptions.delete(t);const n=this.pendingSubscriptions.findIndex(i=>i.sessionId===t);n!==-1&&this.pendingSubscriptions.splice(n,1),this.connected&&this.ws&&this.send({type:"unsubscribe",id:this.nextId(),payload:{session_ids:[t]}})}subscribeTranscript(t,n,i){let o=this.transcriptSubscriptions.get(t);o===void 0&&(o=new Map,this.transcriptSubscriptions.set(t,o)),o.set(n,i!==void 0?{sinceSeq:i}:{}),this.connected&&this.sendTranscriptSubscribe(t,n)}unsubscribeTranscript(t,n){const i=this.transcriptSubscriptions.get(t);if(i!==void 0)if(n===void 0)this.transcriptSubscriptions.delete(t);else{for(const o of n)i.delete(o);i.size===0&&this.transcriptSubscriptions.delete(t)}!this.connected||!this.ws||this.send({type:"unsubscribe_v2",id:this.nextId(),payload:{session_id:t,...n!==void 0?{agent_ids:n}:{}}})}markSideChannelAgent(t,n){if(!this.opts.mainAgentOnly)return;let i=this.sideChannelAgents.get(t);if(i===void 0&&(i=new Set,this.sideChannelAgents.set(t,i)),i.has(n))return;i.add(n);const o=this.subscriptions.get(t);this.connected&&o!==void 0&&this.sendSubscribe([t],{[t]:o})}abort(t,n){!this.connected||!this.ws||this.send({type:"abort",id:this.nextId(),payload:{session_id:t,prompt_id:n}})}terminalAttach(t,n,i){const o=Dk(t,n),s=this.terminalAttachments.get(o),r=i??s?.lastSeq??0;this.terminalAttachments.set(o,{sessionId:t,terminalId:n,lastSeq:r}),!(!this.connected||!this.ws)&&this.sendTerminalAttach(t,n,r)}terminalInput(t,n,i){!this.connected||!this.ws||this.send({type:"terminal_input",id:this.nextId(),payload:{session_id:t,terminal_id:n,data:i}})}terminalResize(t,n,i,o){!this.connected||!this.ws||this.send({type:"terminal_resize",id:this.nextId(),payload:{session_id:t,terminal_id:n,cols:i,rows:o}})}terminalDetach(t,n){this.terminalAttachments.delete(Dk(t,n)),!(!this.connected||!this.ws)&&this.send({type:"terminal_detach",id:this.nextId(),payload:{session_id:t,terminal_id:n}})}terminalClose(t,n){this.terminalAttachments.delete(Dk(t,n)),!(!this.connected||!this.ws)&&this.send({type:"terminal_close",id:this.nextId(),payload:{session_id:t,terminal_id:n}})}close(){this.closed=!0,this.connected=!1,this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.ws&&(this.ws.close(1e3),this.ws=null)}health(){const t=this.ws!==null&&this.ws.readyState===WebSocket.OPEN,n=Math.max(this.heartbeatMs*2,__e),i=this.lastActivityAt>0&&Date.now()-this.lastActivityAt>n;return{connected:this.connected,open:t,stale:i}}reconnect(){if(this.closed)return;this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null);const t=this.ws;if(t!==null){t.onopen=null,t.onmessage=null,t.onerror=null,t.onclose=null;try{t.close(1e3,"reconnect")}catch{}}const n=this.connected;this.ws=null,this.connected=!1,n&&this.opts.handlers.onConnectionState(!1),this.connect()}handleFrame(t){const n=t,i=t.type;if(i==="transcript.reset"){const o=$K.safeParse({type:i,...n.payload}),s=n.session_id;if(!o.success||typeof s!="string"){this.opts.handlers.onError(0,"Invalid transcript.reset frame",!1);return}const r=o.data;this.opts.handlers.onTranscriptReset?.(s,r.agent_id,{...r.snapshot,hasMoreOlder:r.has_more_older},r.seq);const a=this.transcriptSubscriptions.get(s)?.get(r.agent_id);a!==void 0&&r.seq!==void 0&&(a.sinceSeq=r.seq);return}if(i==="transcript.ops"){const o=jK.safeParse({type:i,...n.payload}),s=n.session_id;if(!o.success||typeof s!="string"){this.opts.handlers.onError(0,"Invalid transcript.ops frame",!1);return}const r=o.data,a=this.opts.handlers.onTranscriptOps?.(s,r.agent_id,r.ops,r.seq),l=this.transcriptSubscriptions.get(s)?.get(r.agent_id);a!==!1&&l!==void 0&&r.seq!==void 0&&(l.sinceSeq=r.seq);return}switch(i){case"server_hello":{const o=n.payload?.heartbeat_ms;typeof o=="number"&&o>0&&(this.heartbeatMs=o),this.onServerHello();break}case"ping":this.send({type:"pong",payload:{nonce:n.payload.nonce}});break;case"resync_required":{const o=n.payload.session_id,s=n.payload.epoch;this.subscriptions.set(o,{seq:n.payload.current_seq,epoch:s}),this.opts.handlers.onResync(o,n.payload.current_seq,s);break}case"error":{const o=n.session_id;typeof o=="string"&&this.opts.handlers.onRawAgentEvent?this.opts.handlers.onRawAgentEvent({type:"error",seq:n.seq,session_id:o,timestamp:n.timestamp,payload:n.payload}):this.opts.handlers.onError(n.payload.code,n.payload.msg,n.payload.fatal);break}case"ack":n.id===this.clientHelloId&&(this.clientHelloId=null,n.code===0&&this.opts.handlers.onReplayComplete?.());break;case"terminal_output":{const o=n.session_id,s=n.terminal_id,r=n.seq,a=Dk(o,s),l=this.terminalAttachments.get(a);l&&this.terminalAttachments.set(a,{...l,lastSeq:Math.max(l.lastSeq,r)});const u=typeof n.payload?.data=="string"?n.payload.data:"";this.opts.handlers.onTerminalOutput?.(o,s,u,r);break}case"terminal_exit":{const o=n.session_id,s=n.terminal_id,r=n.payload?.exit_code,a=typeof r=="number"?r:null;this.opts.handlers.onTerminalExit?.(o,s,a);break}default:{this.trackCursor(n);const o=n.type,s=C_e(o,n.payload);if(s.route==="protocol"){this.opts.handlers.onWireEvent(n);break}if(s.route==="agent"){if(this.opts.handlers.onRawAgentEvent&&typeof n.session_id=="string"){const r=n,a=n;this.opts.handlers.onRawAgentEvent({type:s.agentType,seq:r.seq,session_id:r.session_id,timestamp:r.timestamp,payload:r.payload,...a.volatile!==void 0?{volatile:a.volatile}:{},...a.offset!==void 0?{offset:a.offset}:{}})}break}break}}}onServerHello(){this.connected=!0,this.reconnectAttempts=0,this.opts.handlers.onConnectionState(!0);const t=Array.from(this.subscriptions.keys());for(const o of this.pendingSubscriptions)this.subscriptions.set(o.sessionId,o.cursor),t.includes(o.sessionId)||t.push(o.sessionId);this.pendingSubscriptions.length=0;const n={};for(const[o,s]of this.subscriptions.entries())n[o]=s;const i=this.nextId();this.clientHelloId=i,this.send({type:"client_hello",id:i,payload:{client_id:this.opts.clientId,subscriptions:t,cursors:n,...this.opts.mainAgentOnly?{agent_filter:this.rawAgentFilter(t)}:{}}});for(const o of this.transcriptSubscriptions.keys())this.sendTranscriptSubscribe(o);for(const o of this.terminalAttachments.values())this.sendTerminalAttach(o.sessionId,o.terminalId,o.lastSeq)}sendSubscribe(t,n){this.send({type:"subscribe",id:this.nextId(),payload:{session_ids:t,cursors:n,...this.opts.mainAgentOnly?{agent_filter:this.rawAgentFilter(t)}:{}}})}rawAgentFilter(t){return Object.fromEntries(t.map(n=>[n,["main",...this.sideChannelAgents.get(n)??[]]]))}sendTranscriptSubscribe(t,n){const i=this.transcriptSubscriptions.get(t);if(i===void 0||i.size===0)return;const o={},s={};for(const[r,a]of i)o[r]="delta",a.sinceSeq!==void 0&&(n===void 0||n===r)&&(s[r]=a.sinceSeq);this.send({type:"subscribe_v2",id:this.nextId(),payload:{session_id:t,transcript:o,...Object.keys(s).length>0?{transcript_since:s}:{}}})}sendTerminalAttach(t,n,i){this.send({type:"terminal_attach",id:this.nextId(),payload:{session_id:t,terminal_id:n,since_seq:i>0?i:void 0}})}trackCursor(t){if(t.volatile===!0)return;const n=t.session_id,i=t.seq;if(typeof n!="string"||typeof i!="number")return;const o=this.subscriptions.get(n);if(!o||i<=o.seq&&o.epoch!==void 0)return;const s=typeof t.epoch=="string"?t.epoch:o.epoch;this.subscriptions.set(n,{seq:Math.max(i,o.seq),epoch:s})}send(t){if(!(!this.ws||this.ws.readyState!==WebSocket.OPEN))try{this.ws.send(JSON.stringify(t)),this.tracer.wsEvent?.({kind:"out",frame:t})}catch{}}nextId(){return`c_${++this.msgSeq}`}}function Dk(e,t){return`${e}\0${t}`}async function E_e(e,t,n){const i=await e.get(`/sessions/${encodeURIComponent(t)}/transcript`,{agent_id:n.agentId,before_turn:n.beforeTurn,after_turn:n.afterTurn,page_size:n.pageSize}),o=p_e.parse(i),s={items:o.items,tasks:o.tasks,interactions:o.interactions,attachments:o.attachments,todos:o.todos,prompts:o.prompts,meta:o.meta,hasMoreOlder:o.has_more};return{agentId:o.agent_id,...s,agents:o.agents,pendingInteractions:o.pending_interactions,...o.seq!==void 0?{seq:o.seq}:{}}}const l5=10485760,I_e=5e3,ZP=40001;function M_e(e,t){if(e===void 0)return t;let n;const i=/filename\*\s*=\s*UTF-8''([^;]+)/i.exec(e)?.[1]?.trim();if(i!==void 0)try{n=decodeURIComponent(i.replaceAll(/^"|"$/g,""))}catch{return t}else n=/filename\s*=\s*"([^"]*)"/i.exec(e)?.[1]??/filename\s*=\s*([^;]+)/i.exec(e)?.[1]?.trim();return n===void 0||n.length===0||n.length>200||n==="."||n===".."||/[\u0000-\u001F\u007F/\\]/.test(n)||!n.toLowerCase().endsWith(".zip")?t:n}function T_e(e){if(typeof e!="object"||e===null)return{errorName:typeof e};const t=e;return{errorName:typeof t.name=="string"?t.name:"Error",errorCode:typeof t.code=="number"?t.code:void 0,requestId:typeof t.requestId=="string"?t.requestId:void 0,phase:typeof t.phase=="string"?t.phase:void 0,httpStatus:typeof t.status=="number"?t.status:void 0}}function u5(e){return{id:e.id,sessionId:e.session_id,cwd:e.cwd,shell:e.shell,cols:e.cols,rows:e.rows,status:e.status,createdAt:e.created_at,exitedAt:e.exited_at,exitCode:e.exit_code}}function YP(e){return e==="auto_compact"||e==="manual_compact"}class B_e{constructor(t){this.opts=t,this.tracer=t.tracer??iI,this.http=new AP({origin:t.origin,identity:t.identity,tracer:this.tracer,credentialStore:t.credentialStore}),this.httpV2=new AP({origin:t.origin,identity:t.identity,tracer:this.tracer,credentialStore:t.credentialStore,restBasePath:"/api/v2"})}http;httpV2;tracer;async getHealth(){return{status:"ok",uptimeSec:(await this.http.get("/healthz")).uptime_sec??0}}async getMeta(){const t=await this.http.get("/meta");return{serverVersion:t.server_version,serverId:t.server_id,startedAt:t.started_at,capabilities:t.capabilities,openInApps:Array.isArray(t.open_in_apps)?t.open_in_apps:[],dangerousBypassAuth:t.dangerous_bypass_auth===!0,experimentalFlags:t.experimental_flags??{},backend:t.backend==="v2"?"v2":"v1",webTitle:t.web_title??""}}async listSessions(t){const n={before_id:t?.beforeId,after_id:t?.afterId,page_size:t?.pageSize,busy:t?.busy,include_archive:t?.includeArchive,archived_only:t?.archivedOnly,exclude_empty:t?.excludeEmpty,workspace_id:t?.workspaceId},i=await this.http.get("/sessions",n);return{items:i.items.map(Sc),hasMore:i.has_more}}async listSessionsV2(t){const n={sort:t?.sort,page_size:t?.pageSize,page_token:t?.pageToken,page:t?.page,"meta.updated_after":t?.updatedAfter,"meta.updated_before":t?.updatedBefore,"meta.archived":t?.archived===void 0?void 0:String(t.archived),include:t?.include,"workspace.id":t?.workspaceIds,"activity.status":t?.statuses},i=await this.httpV2.get("/sessions",n);return{items:i.items,hasMore:i.has_more,nextPageToken:i.next_page_token,total:i.total}}async listSessionIdsV2(t){const n={sort:t?.sort,page_size:t?.pageSize,page_token:t?.pageToken,page:t?.page,"meta.updated_after":t?.updatedAfter,"meta.updated_before":t?.updatedBefore,"meta.archived":t?.archived===void 0?void 0:String(t.archived),fields:"id,archived","workspace.id":t?.workspaceIds,"activity.status":t?.statuses},i=await this.httpV2.get("/sessions",n);return{items:i.items,hasMore:i.has_more,nextPageToken:i.next_page_token,total:i.total}}async listSessionGroupsV2(t){const n={view:"by_workspace","group.page_size":t?.groupPageSize,"meta.has_prompt":t?.hasPrompt===void 0?void 0:String(t.hasPrompt),sort:t?.sort,page_size:t?.pageSize,page_token:t?.pageToken,"meta.archived":t?.archived===void 0?void 0:String(t.archived),"workspace.id":t?.workspaceIds,"activity.status":t?.statuses},i=await this.httpV2.get("/sessions",n);return{groups:i.groups,hasMore:i.has_more,nextPageToken:i.next_page_token,total:i.total}}async createSession(t){const n={metadata:t.cwd!==void 0?{cwd:t.cwd}:{}};t.workspaceId!==void 0&&(n.workspace_id=t.workspaceId),t.title!==void 0&&(n.title=t.title),t.model!==void 0&&(n.agent_config={model:t.model});const i=await this.http.post("/sessions",n);return Sc(i)}async getSession(t){const n=await this.http.get(`/sessions/${encodeURIComponent(t)}`);return Sc(n)}async updateSession(t,n){const i={};n.title!==void 0&&(i.title=n.title),n.cwd!==void 0&&(i.metadata={cwd:n.cwd});const o={};n.model!==void 0&&(o.model=n.model),n.permissionMode!==void 0&&(o.permission_mode=n.permissionMode),n.planMode!==void 0&&(o.plan_mode=n.planMode),n.swarmMode!==void 0&&(o.swarm_mode=n.swarmMode),n.towerMode!==void 0&&(o.tower_mode=n.towerMode),n.towerBase!==void 0&&(o.tower_base=n.towerBase),n.goalObjective!==void 0&&(o.goal_objective=n.goalObjective),n.goalControl!==void 0&&(o.goal_control=n.goalControl),n.thinking!==void 0&&(o.thinking=n.thinking),Object.keys(o).length>0&&(i.agent_config=o);const s=await this.http.post(`/sessions/${encodeURIComponent(t)}/profile`,i);return Sc(s)}async getSessionStatus(t){const n=await this.http.get(`/sessions/${encodeURIComponent(t)}/status`);return{model:n.model&&n.model.length>0?n.model:null,thinkingEffort:n.thinking_level,permission:n.permission,planMode:n.plan_mode===!0,swarmMode:n.swarm_mode===!0,towerMode:n.tower_mode===!0,contextTokens:n.context_tokens??0,maxContextTokens:n.max_context_tokens??0,contextUsage:n.context_usage??0}}async getSessionGoal(t){const n=await this.http.get(`/sessions/${encodeURIComponent(t)}/goal`);return qq(n)}async getSessionPlans(t,n){const i=await this.http.get(`/sessions/${encodeURIComponent(t)}/transcript/plan`,{agent_id:n.agentId,tool_call_id:n.toolCallId});return i.plans.map(o=>({agentId:i.agent_id,toolCallId:o.tool_call_id,turnId:o.turn_id,source:o.source,plan:o.plan,...o.path!==void 0?{path:o.path}:{},...o.options!==void 0?{options:o.options.map(s=>({label:s.label,...s.description!==void 0?{description:s.description}:{}}))}:{},...o.review!==void 0?{review:{state:o.review.state,...o.review.selected_option!==void 0?{selectedOption:o.review.selected_option}:{},...o.review.feedback!==void 0?{feedback:o.review.feedback}:{}}}:{}}))}async getTurnFileChanges(t,n){const i=await this.http.get(`/sessions/${encodeURIComponent(t)}/file-history/changes`,{turn_id:n});return i.recorded===!1?"unrecorded":i.changes??[]}async getTurnFileContent(t,n,i,o){return(await this.http.get(`/sessions/${encodeURIComponent(t)}/file-history/content`,{turn_id:n,path:i,phase:o})).content??null}async getSessionWarnings(t){return(await this.http.get(`/sessions/${encodeURIComponent(t)}/warnings`)).warnings??[]}async archiveSession(t){return await this.http.post(`/sessions/${encodeURIComponent(t)}:archive`,{})}async restoreSession(t){const n=await this.http.post(`/sessions/${encodeURIComponent(t)}:restore`,{});return Sc(n)}async deleteSession(t){return await this.http.post(`/sessions/${encodeURIComponent(t)}:delete`,{})}async archiveSessions(t){return this.httpV2.post("/sessions:archive",{ids:t})}async restoreSessions(t){return this.httpV2.post("/sessions:restore",{ids:t})}async listMessages(t,n){const i={before_id:n?.beforeId,after_id:n?.afterId,page_size:n?.pageSize,role:n?.role},o=await this.http.get(`/sessions/${encodeURIComponent(t)}/messages`,i);return{items:o.items.map(Vq),hasMore:o.has_more}}async getSessionTranscript(t,n){return E_e(this.http,t,n)}async exportSession(t,n,i){const o=n===void 0?0:new TextEncoder().encode(n).byteLength,s=n===void 0||n.length===0?0:n.split(` -`).length,r=`/sessions/${encodeURIComponent(t)}/export`,a={web_log_bytes:o,web_log_entries:s},l=i?.desktop===!0;let u;try{u=await this.http.postZip(r,{web_log:n,...l?{desktop:!0}:{}},a)}catch(d){if(l&&ci(d)&&d.code===ZP)u=await this.http.postZip(r,{web_log:n},a);else throw d}const c=`${t}.zip`;return{blob:u.blob,fileName:M_e(u.contentDisposition,c)}}async submitPrompt(t,n){const i=Date.now();this.tracer.traceKeyEvent?.("prompt:start",{sessionId:t,contentCount:n.content.length,mediaCount:n.content.filter(o=>o.type==="image"||o.type==="video"||o.type==="file").length});try{const o=await this.http.post(`/sessions/${encodeURIComponent(t)}/prompts`,w8e(n));return this.tracer.traceKeyEvent?.("prompt:accepted",{sessionId:t,promptId:o.prompt_id,status:o.status,durationMs:Date.now()-i}),{promptId:o.prompt_id,userMessageId:o.user_message_id,origin:o.origin,status:o.status}}catch(o){throw this.tracer.traceKeyEvent?.("prompt:failed",{sessionId:t,status:"failed",durationMs:Date.now()-i,...T_e(o)}),o}}async steerPrompts(t,n){const i=await this.http.post(`/sessions/${encodeURIComponent(t)}/prompts:steer`,{prompt_ids:n});return{steered:i.steered,promptIds:i.prompt_ids}}async abortPrompt(t,n){const i=await this.http.post(`/sessions/${encodeURIComponent(t)}/prompts/${encodeURIComponent(n)}:abort`,void 0,{allowCodes:[40903]});return{aborted:i.aborted,atSeq:i.at_seq}}async abortSession(t){return{aborted:(await this.http.post(`/sessions/${encodeURIComponent(t)}:abort`,{})).aborted}}async compactSession(t,n){await this.http.post(`/sessions/${encodeURIComponent(t)}:compact`,n?{instruction:n}:{})}async undoSession(t,n=1){await this.http.post(`/sessions/${encodeURIComponent(t)}:undo`,{count:n})}async generateSessionTitle(t,n){try{const i={};n?.force===!0&&(i.force=!0),n?.source!==void 0&&(i.source=n.source);const o=await this.http.post(`/sessions/${encodeURIComponent(t)}/title/generate`,i);return typeof o?.title=="string"&&o.title.length>0?o.title:null}catch{return null}}async forkSession(t,n){const i={};n?.title!==void 0&&(i.title=n.title);const o=await this.http.post(`/sessions/${encodeURIComponent(t)}:fork`,i,{timeoutMs:pP});return Sc(o)}async createChildSession(t,n){const i={};n?.title!==void 0&&(i.title=n.title);const o=await this.http.post(`/sessions/${encodeURIComponent(t)}/children`,i,{timeoutMs:pP});return Sc(o)}async listChildSessions(t){return(await this.http.get(`/sessions/${encodeURIComponent(t)}/children`)).items.map(Sc)}async startBtw(t){return{agentId:(await this.http.post(`/sessions/${encodeURIComponent(t)}:btw`,{})).agent_id}}async respondApproval(t,n,i){const o=await this.http.post(`/sessions/${encodeURIComponent(t)}/approvals/${encodeURIComponent(n)}`,C8e(i));return{resolved:o.resolved,resolvedAt:o.resolved_at}}async respondQuestion(t,n,i){const o=await this.http.post(`/sessions/${encodeURIComponent(t)}/questions/${encodeURIComponent(n)}`,M8e(i));return{resolved:o.resolved,resolvedAt:o.resolved_at}}async dismissQuestion(t,n){return{dismissed:!0,dismissedAt:(await this.http.post(`/sessions/${encodeURIComponent(t)}/questions/${encodeURIComponent(n)}:dismiss`,void 0,{allowCodes:[40909]})).dismissed_at}}async listTasks(t,n){const i={status:n};return(await this.http.get(`/sessions/${encodeURIComponent(t)}/tasks`,i)).items.map(s=>T7(s))}async getTask(t,n,i){const o={with_output:i?.withOutput,output_bytes:i?.outputBytes},s=await this.http.get(`/sessions/${encodeURIComponent(t)}/tasks/${encodeURIComponent(n)}`,o);return T7(s)}async cancelTask(t,n){return await this.http.post(`/sessions/${encodeURIComponent(t)}/tasks/${encodeURIComponent(n)}:cancel`)}async detachTask(t,n){return await this.http.post(`/sessions/${encodeURIComponent(t)}/tasks/${encodeURIComponent(n)}:detach`)}async listTerminals(t){return(await this.http.get(`/sessions/${encodeURIComponent(t)}/terminals`)).items.map(u5)}async createTerminal(t,n={}){const i={cwd:n.cwd,shell:n.shell,cols:n.cols,rows:n.rows},o=await this.http.post(`/sessions/${encodeURIComponent(t)}/terminals`,i);return u5(o)}async getTerminal(t,n){const i=await this.http.get(`/sessions/${encodeURIComponent(t)}/terminals/${encodeURIComponent(n)}`);return u5(i)}async closeTerminal(t,n){return this.http.post(`/sessions/${encodeURIComponent(t)}/terminals/${encodeURIComponent(n)}:close`)}async listSkills(t){return((await this.http.get(`/sessions/${encodeURIComponent(t)}/skills`)).skills??[]).map(i=>({name:i.name,description:i.description,path:i.path,source:i.source}))}async listSkillsForWorkspace(t){return((await this.http.get(`/workspaces/${encodeURIComponent(t)}/skills`)).skills??[]).map(i=>({name:i.name,description:i.description,path:i.path,source:i.source}))}async activateSkill(t,n,i,o){const s={};i!==void 0&&i.length>0&&(s.args=i),o!==void 0&&o.length>0&&(s.attachments=o.map(Gq));const r=await this.http.post(`/sessions/${encodeURIComponent(t)}/skills/${encodeURIComponent(n)}:activate`,s);return{activated:r.activated,skillName:r.skill_name}}async listCapabilities(){return(await this.http.get("/capabilities")).capabilities??[]}async getCapability(t){return this.http.get(`/capabilities/${encodeURIComponent(t)}`)}async installCapability(t){return this.http.post(`/capabilities/${encodeURIComponent(t)}:install`,{})}async listPlugins(){return(await this.http.get("/plugins")).plugins??[]}async listPluginMarketplace(){return(await this.http.get("/plugins/marketplace")).entries??[]}async installPlugin(t){return this.http.post("/plugins",{source:t})}async setPluginEnabled(t,n){return this.http.post(`/plugins/${encodeURIComponent(t)}:${n?"enable":"disable"}`,{})}async removePlugin(t){return this.http.post(`/plugins/${encodeURIComponent(t)}:remove`,{})}async listDirectory(t,n){const i={};n.path!==void 0&&(i.path=n.path),n.depth!==void 0&&(i.depth=n.depth),n.includeGitStatus!==void 0&&(i.include_git_status=n.includeGitStatus);const o=await this.http.post(`/sessions/${encodeURIComponent(t)}/fs:list`,i),s=o.children_by_path?Object.fromEntries(Object.entries(o.children_by_path).map(([r,a])=>[r,a.map(bP)])):void 0;return{items:o.items.map(bP),childrenByPath:s,truncated:o.truncated}}async readFile(t,n){const i={path:n.path};n.offset!==void 0&&(i.offset=n.offset),n.length!==void 0&&(i.length=n.length);const o=await this.http.post(`/sessions/${encodeURIComponent(t)}/fs:read`,i);return{path:o.path,content:o.content,encoding:o.encoding,size:o.size,truncated:o.truncated,etag:o.etag,mime:o.mime,languageId:o.language_id,lineCount:o.line_count,isBinary:o.is_binary}}async searchFiles(t,n,i){const o={workspace:t,query:n.query};n.limit!==void 0&&(o.limit=n.limit);const s=await this.http.post("/workspace/fs:search",o,{signal:i?.signal});return{items:s.items.map(r=>({path:r.path,name:r.name,kind:r.kind,score:r.score,matchPositions:r.match_positions})),truncated:s.truncated}}async suggestFiles(t,n,i){const o={workspace:t,query:n.query};n.limit!==void 0&&(o.limit=n.limit);const s=await this.http.post("/workspace/fs:suggest",o,{signal:i?.signal});return{items:s.items.map(r=>({path:r.path,name:r.name,kind:r.kind,score:r.score,matchPositions:r.match_positions})),truncated:s.truncated}}async grepFiles(t,n){const i={pattern:n.pattern};n.regex!==void 0&&(i.regex=n.regex),n.caseSensitive!==void 0&&(i.case_sensitive=n.caseSensitive);const o=await this.http.post(`/sessions/${encodeURIComponent(t)}/fs:grep`,i);return{files:o.files,filesScanned:o.files_scanned,truncated:o.truncated,elapsedMs:o.elapsed_ms}}async getGitStatus(t,n){const i={};n!==void 0&&(i.paths=n);const o=await this.http.post(`/sessions/${encodeURIComponent(t)}/fs:git_status`,i);return{branch:o.branch,ahead:o.ahead,behind:o.behind,entries:o.entries,additions:o.additions,deletions:o.deletions,pullRequest:o.pullRequest??null}}async getFileDiff(t,n){const i=await this.http.post(`/sessions/${encodeURIComponent(t)}/fs:diff`,{path:n});return{path:i.path,diff:i.diff,truncated:i.truncated??!1}}getFileDownloadUrl(t,n){const i=n.split("/").map(o=>encodeURIComponent(o)).join("/");return $f(this.opts.origin,`/sessions/${encodeURIComponent(t)}/fs/${i}:download`)}async openFile(t,n){const i={path:n.path};return n.line!==void 0&&(i.line=n.line),this.http.post(`/sessions/${encodeURIComponent(t)}/fs:open`,i)}async revealFile(t,n){return this.http.post(`/sessions/${encodeURIComponent(t)}/fs:reveal`,{path:n.path})}async openInApp(t,n,i,o){const s={app_id:n,path:i};o!==void 0&&(s.line=o),await this.http.post(`/sessions/${encodeURIComponent(t)}/fs:open-in`,s)}async listWorkspaces(){try{return((await this.http.get("/workspaces")).items??[]).map(kA)}catch{return[]}}async addWorkspace(t){const n={root:t.root};t.name!==void 0&&(n.name=t.name);const i=await this.http.post("/workspaces",n);return kA(i)}async deleteWorkspace(t){await this.http.delete(`/workspaces/${encodeURIComponent(t)}`)}async updateWorkspace(t,n){const i=await this.http.patch(`/workspaces/${encodeURIComponent(t)}`,{name:n.name});return kA(i)}async browseFs(t){try{const n=await this.http.get("/fs:browse",{path:t});return{path:n.path,parent:n.parent,entries:(n.entries??[]).map(i=>({name:i.name,path:i.path,isDir:i.is_dir}))}}catch{return{path:"",parent:null,entries:[]}}}async getFsHome(){try{const t=await this.http.get("/fs:home");return{home:t.home,recentRoots:t.recent_roots??[]}}catch{return{home:"",recentRoots:[]}}}async listModels(){return(await this.http.get("/models")).items.map(B8e)}async listProviders(){return(await this.http.get("/providers")).items.map(lm)}async getProvider(t){const n=await this.http.get(`/providers/${encodeURIComponent(t)}`),i=lm(n);return n.api_key!==void 0?{...i,apiKey:n.api_key}:i}async addProvider(t){const n={id:t.id??"",type:t.type,models:(t.models??[]).map(o=>{const s={model:o.model,max_context_size:o.maxContextSize};return o.displayName!==void 0&&(s.display_name=o.displayName),o.capabilities!==void 0&&(s.capabilities=o.capabilities),o.maxOutputSize!==void 0&&(s.max_output_size=o.maxOutputSize),o.supportEfforts!==void 0&&(s.support_efforts=o.supportEfforts),o.adaptiveThinking!==void 0&&(s.adaptive_thinking=o.adaptiveThinking),s})};t.apiKey!==void 0&&(n.api_key=t.apiKey),t.baseUrl!==void 0&&(n.base_url=t.baseUrl),t.defaultModel!==void 0&&(n.default_model=t.defaultModel);const i=await this.http.post("/providers",n);return lm(i)}async updateProvider(t,n){const i={type:n.type,models:(n.models??[]).map(s=>{const r={model:s.model,max_context_size:s.maxContextSize};return s.displayName!==void 0&&(r.display_name=s.displayName),s.capabilities!==void 0&&(r.capabilities=s.capabilities),s.maxOutputSize!==void 0&&(r.max_output_size=s.maxOutputSize),s.supportEfforts!==void 0&&(r.support_efforts=s.supportEfforts),s.adaptiveThinking!==void 0&&(r.adaptive_thinking=s.adaptiveThinking),r})};n.newId!==void 0&&(i.new_id=n.newId),n.apiKey!==void 0&&(i.api_key=n.apiKey),n.baseUrl!==void 0&&(i.base_url=n.baseUrl),n.defaultModel!==void 0&&(i.default_model=n.defaultModel);const o=await this.http.put(`/providers/${encodeURIComponent(t)}`,i);return{provider:lm(o.provider)}}async deleteProvider(t){return await this.http.delete(`/providers/${encodeURIComponent(t)}`),{deleted:t}}async listCatalogProviders(){return(await this.http.get("/catalog/providers")).items.map(wP)}async getCatalogProvider(t){const n=await this.http.get(`/catalog/providers/${encodeURIComponent(t)}`);return wP(n)}async importCatalogProvider(t){const n={catalog_id:t.catalogId};t.apiKey!==void 0&&(n.api_key=t.apiKey),t.baseUrl!==void 0&&(n.base_url=t.baseUrl),t.id!==void 0&&(n.id=t.id);const i=await this.http.post("/providers:import_catalog",n);return{provider:lm(i.provider),modelsImported:i.models_imported}}async importCustomRegistry(t){const n={url:t.url};t.apiKey!==void 0&&(n.api_key=t.apiKey);const i=await this.http.post("/providers:import_registry",n);return{providers:i.providers.map(lm),modelsImported:i.models_imported}}async refreshProvider(t){const n=await this.http.post(`/providers/${encodeURIComponent(t)}:refresh`);return c5(n)}async refreshAllProviders(){const t=await this.http.post("/providers:refresh");return c5(t)}async refreshOAuthProviderModels(){const t=await this.http.post("/providers:refresh_oauth");return c5(t)}async getConfig(){const t=await this.http.get("/config");return B7(t)}async setConfig(t){const n={},i={providers:"providers",defaultProvider:"default_provider",defaultModel:"default_model",secondaryModel:"secondary_model",models:"models",thinking:"thinking",planMode:"plan_mode",yolo:"yolo",defaultPermissionMode:"default_permission_mode",defaultPlanMode:"default_plan_mode",permission:"permission",hooks:"hooks",services:"services",mergeAllAvailableSkills:"merge_all_available_skills",extraSkillDirs:"extra_skill_dirs",loopControl:"loop_control",background:"background",experimental:"experimental",telemetry:"telemetry",raw:"raw"};for(const[s,r]of Object.entries(t)){const a=i[s];a!==void 0&&(n[a]=r)}const o=await this.http.post("/config",n);return B7(o)}async getAuth(){const t=await this.http.get("/auth");return{modelsReady:t.models_ready,providersCount:t.providers_count,managedProvider:t.managed_provider?{status:t.managed_provider.status}:null}}async startOAuthLogin(t){let n;try{n=await this.http.post("/oauth/login",t===void 0?{}:{region:t})}catch(i){if(t!==void 0&&ci(i)&&i.code===ZP)n=await this.http.post("/oauth/login",{});else throw i}return n.status==="authenticated"?{flowId:n.flow_id,provider:n.provider,status:"authenticated"}:{flowId:n.flow_id,provider:n.provider,status:"pending",verificationUri:n.verification_uri,verificationUriComplete:n.verification_uri_complete,userCode:n.user_code,expiresIn:n.expires_in,interval:n.interval,expiresAt:n.expires_at}}async pollOAuthLogin(){const t=await this.http.get("/oauth/login");return t?{flowId:t.flow_id,status:t.status,resolvedAt:t.resolved_at,errorMessage:t.error_message}:null}async cancelOAuthLogin(){const t=await this.http.delete("/oauth/login");return{cancelled:t.cancelled,status:t.status}}async logout(){return{loggedOut:(await this.http.post("/oauth/logout",{})).logged_out}}async getUsage(){const t=await this.http.get("/oauth/usage");if(t.kind==="error")return{kind:"error",message:t.message,status:t.status};const n=i=>({name:i.name,window:i.window,used:i.used,limit:i.limit,resetAt:i.reset_at});return{kind:"ok",summary:t.summary===null?null:n(t.summary),limits:t.limits.map(n),extraUsage:t.extra_usage===null?null:{balanceCents:t.extra_usage.balance_cents,totalCents:t.extra_usage.total_cents,monthlyChargeLimitEnabled:t.extra_usage.monthly_charge_limit_enabled,monthlyChargeLimitCents:t.extra_usage.monthly_charge_limit_cents,monthlyUsedCents:t.extra_usage.monthly_used_cents,currency:t.extra_usage.currency}}}async getUserInfo(){return this.http.get("/oauth/userinfo")}async getOAuthRegion(){try{const t=await Promise.race([this.http.get("/oauth/region"),new Promise((n,i)=>{setTimeout(()=>i(new Error("oauth region probe timed out")),I_e)})]);return t.region==="mainland-cn"||t.region==="global"?t.region:null}catch{return null}}async uploadFile(t){const n=new FormData;n.append("file",t.file,t.name??(t.file instanceof File?t.file.name:"upload")),t.name!==void 0&&n.append("name",t.name);const i=await this.http.postForm("/files",n,{onUploadProgress:t.onProgress,signal:t.signal});return{id:i.id,name:i.name,mediaType:i.media_type,size:i.size}}getFileUrl(t){return $f(this.opts.origin,`/files/${encodeURIComponent(t)}`)}async getFileBlob(t,n){return this.http.getBlob(`/files/${encodeURIComponent(t)}`,void 0,n)}getSessionMediaUrl(t,n){return $f(this.opts.origin,`/sessions/${encodeURIComponent(t)}/media/${encodeURIComponent(n)}`)}async getSessionMediaBlob(t,n,i){return this.http.getBlob(`/sessions/${encodeURIComponent(t)}/media/${encodeURIComponent(n)}`,void 0,i)}async readHostFileContent(t){const n=await this.http.getBlob("/fs:content",{path:t},{maxBytes:l5});if(n.size>l5)throw new zb({size:n.size,limit:l5});const i=n.type,o=!F_e(i),s=i||(o?"application/octet-stream":"text/plain");if(o){const a=await R_e(n);return{path:t,content:a,encoding:"base64",mime:s,isBinary:!0,size:n.size}}const r=await n.text();return{path:t,content:r,encoding:"utf-8",mime:s,isBinary:!1,size:n.size}}connectEvents(t){const n=hP(this.opts.origin,this.opts.identity.clientId),i=this.opts.projectorFactory(),o=new KP({wsUrl:n,clientId:this.opts.identity.clientId,tracer:this.tracer,credentialStore:this.opts.credentialStore,mainAgentOnly:this.opts.mainAgentOnly,handlers:{onWireEvent:s=>{const r=F8e(s),a=R8e(s),l=T8e(s);l.type==="historyCompacted"&&!YP(l.reason)&&t.onResync(l.sessionId,l.beforeSeq),t.onEvent(l,{sessionId:r,seq:a})},onRawAgentEvent:s=>{const{type:r,seq:a,session_id:l,payload:u,offset:c}=s,d=i.project(r,u,l,{offset:c});for(const f of d){const h=u?.turnId,m=f.type==="assistantDelta"&&typeof h=="number"&&typeof c=="number"&&(r==="assistant.delta"||r==="thinking.delta")?{turnId:h,offset:c,kind:r==="assistant.delta"?"text":"thinking"}:void 0;f.type==="historyCompacted"&&!YP(f.reason)&&t.onResync(l,a),t.onEvent(f,{sessionId:l,seq:a,stream:m})}},onResync:(s,r,a)=>{i.reset(s),t.onResync(s,r,a)},onConnectionState:s=>{t.onConnectionChange(s)},onReplayComplete:()=>{t.onReplayComplete?.()},onError:(s,r,a)=>{t.onError(s,r,a)},onTerminalOutput:(s,r,a,l)=>{t.onTerminalOutput?.(s,r,a,l)},onTerminalExit:(s,r,a)=>{t.onTerminalExit?.(s,r,a)},onTranscriptReset:(s,r,a,l)=>{t.onTranscriptReset?.(s,r,a,l)},onTranscriptOps:(s,r,a,l)=>t.onTranscriptOps?.(s,r,a,l)??!0}});return o.connect(),{subscribe(s,r){o.subscribe(s,r??{seq:0})},unsubscribe(s){o.unsubscribe(s),i.forgetSession(s)},subscribeTranscript(s,r,a){o.subscribeTranscript(s,r,a)},unsubscribeTranscript(s,r){o.unsubscribeTranscript(s,r)},bindNextPromptId(s,r){i.bindNextPromptId(s,r)},abort(s,r){o.abort(s,r)},terminalAttach(s,r,a){o.terminalAttach(s,r,a)},terminalInput(s,r,a){o.terminalInput(s,r,a)},terminalResize(s,r,a,l){o.terminalResize(s,r,a,l)},terminalDetach(s,r){o.terminalDetach(s,r)},terminalClose(s,r){o.terminalClose(s,r)},markSideChannelAgent(s,r){o.markSideChannelAgent(s,r),i.markSideChannelAgent(r)},health(){return o.health()},reconnect(){o.reconnect()},close(){o.close()}}}connectTranscriptChannel(t){const n=`${this.opts.identity.clientId}-transcript`,i=new KP({wsUrl:hP(this.opts.origin,n),clientId:n,tracer:this.tracer,credentialStore:this.opts.credentialStore,handlers:{onWireEvent:()=>{},onResync:()=>{},onConnectionState:o=>t.onConnectionState?.(o),onError:(o,s,r)=>t.onError?.(o,s,r),onTranscriptReset:t.onTranscriptReset,onTranscriptOps:t.onTranscriptOps}});return i.connect(),{subscribe:()=>{},unsubscribe:()=>{},subscribeTranscript:(o,s,r)=>i.subscribeTranscript(o,s,r),unsubscribeTranscript:(o,s)=>i.unsubscribeTranscript(o,s),bindNextPromptId:()=>{},abort:()=>{},terminalAttach:()=>{},terminalInput:()=>{},terminalResize:()=>{},terminalDetach:()=>{},terminalClose:()=>{},markSideChannelAgent:()=>{},health:()=>i.health(),reconnect:()=>i.reconnect(),close:()=>i.close()}}}function c5(e){return{changed:e.changed.map(t=>({providerId:t.provider_id,providerName:t.provider_name,added:t.added,removed:t.removed})),unchanged:e.unchanged,failed:e.failed}}function F_e(e){const t=e.toLowerCase().split(";")[0].trim();return t===""||t==="text/plain"||t.startsWith("text/")?!0:/(json|xml|javascript|typescript|x-yaml|yaml|svg|x-sh|x-python|markdown|csv|html|css)$/.test(t)}function R_e(e){return new Promise((t,n)=>{const i=new FileReader;i.onload=()=>{const o=typeof i.result=="string"?i.result:"";t(o.slice(o.indexOf(",")+1))},i.onerror=()=>n(i.error),i.readAsDataURL(e)})}const D_e="main",N_e=new Set(["turn.started","turn.step.started","turn.step.completed","turn.step.retrying","turn.step.interrupted","turn.ended","thinking.delta","assistant.delta","tool.use","tool.call.started","tool.call.delta","tool.progress","tool.result","agent.status.updated","prompt.completed","prompt.aborted","error"]);function d5(e="msg_"){const t=Date.now().toString(36).padStart(10,"0"),n=Math.random().toString(36).slice(2,12).padEnd(10,"0");return`${e}${t}${n}`}function L_e(e){if(!e||typeof e!="object")return{input:0,output:0,cacheRead:0,cacheCreate:0};const t=e;return{input:t.inputOther??t.input_tokens??0,output:t.output??t.output_tokens??0,cacheRead:t.inputCacheRead??t.cache_read_input_tokens??0,cacheCreate:t.inputCacheCreation??t.cache_creation_input_tokens??0}}function JP(){return{turnPromptId:new Map,currentPromptId:void 0,totalInput:0,totalOutput:0,totalCacheRead:0,totalCacheCreate:0,contextTokens:0,contextLimit:0,turnCount:0,model:"",subagentMeta:new Map,restartedThisRun:new Set,settledByKernel:new Set,retiredBindings:new Set,registrationSeq:0,registrationOrderByKey:new Map,retryActive:!1}}function Ur(e,t){const n=e[t];return typeof n=="string"?n:void 0}function kr(e,t){const n=e[t];return typeof n=="number"&&Number.isFinite(n)?n:void 0}function Vl(e,t){const n=e[t];return typeof n=="number"&&Number.isFinite(n)?n:null}function P_e(e){if(!e||typeof e!="object")return null;const t=e,n=t.budget,i=n&&typeof n=="object"?n:{},o=Ur(t,"status");if(o!=="active"&&o!=="paused"&&o!=="blocked"&&o!=="complete")return null;const s=Ur(t,"goalId")??Ur(t,"goal_id")??"goal",r=Ur(t,"objective")??"";return{goalId:s,objective:r,completionCriterion:Ur(t,"completionCriterion")??Ur(t,"completion_criterion"),status:o,turnsUsed:kr(t,"turnsUsed")??kr(t,"turns_used")??0,tokensUsed:kr(t,"tokensUsed")??kr(t,"tokens_used")??0,wallClockMs:kr(t,"wallClockMs")??kr(t,"wall_clock_ms")??0,terminalReason:Ur(t,"terminalReason")??Ur(t,"terminal_reason"),budget:{tokenBudget:Vl(i,"tokenBudget")??Vl(i,"token_budget"),remainingTokens:Vl(i,"remainingTokens")??Vl(i,"remaining_tokens"),turnBudget:Vl(i,"turnBudget")??Vl(i,"turn_budget"),remainingTurns:Vl(i,"remainingTurns")??Vl(i,"remaining_turns"),wallClockBudgetMs:Vl(i,"wallClockBudgetMs")??Vl(i,"wall_clock_budget_ms"),remainingWallClockMs:Vl(i,"remainingWallClockMs")??Vl(i,"remaining_wall_clock_ms"),overBudget:i.overBudget===!0||i.over_budget===!0}}}function Bf(e,t,n,i,o){if(typeof i!="string"||i.length===0)return null;const r={...t.subagentMeta.get(i)??{id:i,agentId:i,sessionId:n,kind:"subagent",description:e("tasks.dockSubagent"),status:"running",createdAt:new Date().toISOString(),subagentPhase:"queued"},...o,id:i,sessionId:n,kind:"subagent"};return t.subagentMeta.set(i,r),r}function O_e(e,t,n){if(t==="turn.step.started")return null;if(t==="tool.use"||t==="tool.call.started"){const i=Ur(n,"name")??Ur(n,"toolName")??"tool",o=wW(e,z_e(i)),s=$_e(e,i,n.args??n.input);return s?`Calling ${o}: ${s}`:`Calling ${o}`}if(t==="tool.progress"){const i=n.update;if(i&&typeof i=="object"){const s=Ur(i,"text");if(s)return f5(s);const r=Ur(i,"message");if(r)return f5(r)}const o=Ur(n,"message");if(o)return f5(o)}return null}function z_e(e){return e.replace(/_\d+$/,"")}const XP=2e3;function f5(e){return e.length>XP?`${e.slice(0,XP)}…`:e}function $_e(e,t,n){if(n==null)return"";const i=typeof n=="string"?n:JSON.stringify(n);return j_(e,t,i)}function j_e(e,t,n,i,o,s,r){if(r.has(i)&&o==="turn.step.started")return[];if(o==="assistant.delta"){const h=Ur(s,"delta");if(!h)return[];const m=t.subagentMeta.get(i),g=Bf(e,t,n,i,{status:"running",subagentPhase:"working",startedAt:m?.startedAt??new Date().toISOString()}),v=[];return g&&v.push({type:"taskCreated",sessionId:n,task:g}),v.push({type:"taskProgress",sessionId:n,taskId:i,outputChunk:h,stream:"stdout",kind:"text"}),v}const a=O_e(e,o,s);if(a===null||a.length===0)return[];const l=o==="tool.progress"?s.update:void 0,u=l!=null&&typeof l=="object"?l.replace===!0:!1,c=t.subagentMeta.get(i),d=Bf(e,t,n,i,{status:"running",subagentPhase:"working",startedAt:c?.startedAt??new Date().toISOString()}),f=[];return d&&f.push({type:"taskCreated",sessionId:n,task:d}),f.push({type:"taskProgress",sessionId:n,taskId:i,outputChunk:a,stream:"stdout",replace:u}),f}function H_e(e){return Array.isArray(e)?e.map(t=>dC(t)):[]}function U_e(e){return{inputTokens:e.totalInput,outputTokens:e.totalOutput,cacheReadTokens:e.totalCacheRead,cacheCreationTokens:e.totalCacheCreate,totalCostUsd:0,contextTokens:e.contextTokens,contextLimit:e.contextLimit,turnCount:e.turnCount}}const W_e=new Set(["session.meta.updated","goal.updated","compaction.completed","compaction.started","compaction.cancelled","compaction.blocked","hook.result","mcp.server.status","skill.activated","tool.list.updated"]);function Q_e(e,t,n){switch(e){case"session.meta.updated":{const i=t?.patch?.title??t?.title,o=t?.patch?.lastPrompt,s={};return typeof i=="string"&&i.length>0&&(s.title=i),typeof o=="string"&&(s.lastPrompt=o),s.title!==void 0||s.lastPrompt!==void 0?[{type:"sessionMetaUpdated",sessionId:n,...s}]:[]}case"goal.updated":{const i=P_e(t?.snapshot??null);return[{type:"goalUpdated",sessionId:n,goal:i?.status==="complete"?null:i}]}case"compaction.completed":{const i=t?.result??{};return[{type:"compactionCompleted",sessionId:n,tokensBefore:typeof i.tokensBefore=="number"?i.tokensBefore:void 0,tokensAfter:typeof i.tokensAfter=="number"?i.tokensAfter:void 0,summary:typeof i.summary=="string"?i.summary:void 0},{type:"historyCompacted",sessionId:n,beforeSeq:0,reason:"auto_compact"}]}case"compaction.started":return[{type:"compactionStarted",sessionId:n,trigger:t?.trigger==="manual"?"manual":"auto",instruction:typeof t?.instruction=="string"?t.instruction:void 0}];case"compaction.cancelled":return[{type:"compactionCancelled",sessionId:n}];default:return[]}}function V_e(e){const{t}=e,n=new Map,i=new Set;function o(f){let h=n.get(f);return h||(h=JP(),n.set(f,h)),h}function s(f){n.set(f,JP())}function r(f){n.delete(f)}function a(f){return n.has(f)}function l(f){i.add(f)}function u(f,h){const m=o(f);m.currentPromptId=h}function c(f,h,m,g){try{return d(f,h,m,g)}catch(v){return Bc("[agentProjector] Error projecting event:",f,v instanceof Error?v.message:v),[]}}function d(f,h,m,g){if(W_e.has(f))return Q_e(f,h,m);const v=o(m),y=h,A=[],b=y?.agentId;if(typeof b=="string"&&b!==D_e){const w=i.has(b);if(f==="prompt.submitted"){if(!w)return[];const _=y?.promptId,M=y?.userMessageId;if(!_||!M)return[];const B=H_e(y?.content);return B.length===0?[]:[{type:"messageCreated",agentId:b,message:{id:M,sessionId:m,role:"user",content:B,createdAt:typeof y?.createdAt=="string"?y.createdAt:new Date().toISOString(),promptId:_}}]}if(w&&(f==="thinking.delta"||f==="assistant.delta")){const _=y?.delta??"";return _?[{type:"agentDelta",sessionId:m,agentId:b,delta:{[f==="thinking.delta"?"thinking":"text"]:_}}]:[]}if(w&&f==="turn.ended")return[{type:"agentTurnEnded",sessionId:m,agentId:b,reason:y?.reason}];if(N_e.has(f))return j_e(t,v,m,b,f,y??{},i)}switch(f){case"turn.started":{const w=y?.turnId,_=v.currentPromptId??d5("pr_");v.currentPromptId=_,w!==void 0&&v.turnPromptId.set(w,_),A.push({type:"turnActiveChanged",sessionId:m,active:!0});break}case"turn.step.started":case"thinking.delta":case"assistant.delta":case"tool.use":case"tool.call.started":case"tool.call.delta":case"tool.progress":case"tool.result":break;case"turn.step.completed":{const w=L_e(y?.usage);v.totalInput+=w.input,v.totalOutput+=w.output,v.totalCacheRead+=w.cacheRead,v.totalCacheCreate+=w.cacheCreate;break}case"agent.status.updated":{y?.model&&(v.model=y.model),y?.contextTokens!==void 0&&(v.contextTokens=y.contextTokens),y?.maxContextTokens!==void 0&&(v.contextLimit=y.maxContextTokens);const w=y?.phase;w!=null&&w.kind==="retrying"?(v.retryActive=!0,A.push({type:"turnRetry",sessionId:m,retry:{failedAttempt:kr(w,"failedAttempt")??0,nextAttempt:kr(w,"nextAttempt")??0,maxAttempts:kr(w,"maxAttempts")??0,delayMs:kr(w,"delayMs")??0,errorName:Ur(w,"errorName"),statusCode:kr(w,"statusCode"),turnId:kr(w,"turnId")}})):v.retryActive&&w!==void 0&&w!==null&&typeof w.kind=="string"&&(v.retryActive=!1,A.push({type:"turnRetry",sessionId:m,retry:void 0})),A.push({type:"sessionUsageUpdated",sessionId:m,usage:U_e(v),model:v.model||void 0,swarmMode:y?.swarmMode===!0?!0:y?.swarmMode===!1?!1:void 0,towerMode:y?.towerMode===!0?!0:y?.towerMode===!1?!1:void 0,planMode:y?.planMode===!0?!0:y?.planMode===!1?!1:void 0,thinking:typeof y?.thinkingEffort=="string"&&y.thinkingEffort.length>0?y.thinkingEffort:void 0});break}case"turn.ended":{const w=y?.turnId,_=(w!==void 0?v.turnPromptId.get(w):void 0)??v.currentPromptId;A.push({type:"turnActiveChanged",sessionId:m,active:!1,reason:y?.reason,promptId:_}),v.turnCount++,v.currentPromptId=void 0;break}case"prompt.completed":{const w=y?.promptId;typeof w=="string"&&w.length>0&&A.push({type:"promptCompleted",sessionId:m,promptId:w,reason:y?.reason??"completed"});break}case"prompt.aborted":{const w=y?.promptId;typeof w=="string"&&w.length>0&&A.push({type:"promptAborted",sessionId:m,promptId:w});break}case"turn.step.retrying":{v.retryActive=!0,A.push({type:"turnRetry",sessionId:m,retry:{failedAttempt:kr(y??{},"failedAttempt")??0,nextAttempt:kr(y??{},"nextAttempt")??0,maxAttempts:kr(y??{},"maxAttempts")??0,delayMs:kr(y??{},"delayMs")??0,errorName:Ur(y??{},"errorName"),statusCode:kr(y??{},"statusCode"),turnId:typeof y?.turnId=="number"?y.turnId:void 0}});break}case"turn.step.interrupted":break;case"subagent.spawned":{const w=typeof y?.subagentId=="string"&&y.subagentId.length>0?y.subagentId:d5("task_"),_=typeof y?.taskId=="string"&&y.taskId.length>0?y.taskId:void 0,M=_!==void 0&&_!==w?v.subagentMeta.get(_):void 0,B=v.subagentMeta.get(w);M!==void 0&&v.subagentMeta.delete(_),_!==void 0&&!v.registrationOrderByKey.has(_)&&v.registrationOrderByKey.set(_,++v.registrationSeq);const C=B===void 0||M===void 0?B??M:{...B,createdAt:M.createdAt,startedAt:M.startedAt??B.startedAt,runInBackground:!0,backgroundTaskId:B.backgroundTaskId??_},S=C?.backgroundTaskId??(C!==void 0&&_!==void 0&&C.id===_?_:void 0),I=_!==void 0?v.registrationOrderByKey.get(_):void 0,F=S!==void 0?v.registrationOrderByKey.get(S):void 0,E=v.retiredBindings.has(_??"")||I!==void 0&&F!==void 0&&I0?y.model:C?.model,thinkingEffort:typeof y?.thinkingEffort=="string"&&y.thinkingEffort.length>0?y.thinkingEffort:C?.thinkingEffort,parentToolCallId:typeof y?.parentToolCallId=="string"?y.parentToolCallId:C?.parentToolCallId,swarmIndex:typeof y?.swarmIndex=="number"?y.swarmIndex:C?.swarmIndex,runInBackground:D?y?.runInBackground===!0||y?.runInBackground===void 0&&C?.runInBackground===!0:y?.runInBackground===!0||C?.runInBackground===!0,outputPreview:D?void 0:C?.outputPreview,outputBytes:D?void 0:C?.outputBytes,outputLines:D?void 0:C?.outputLines,suspendedReason:D?void 0:C?.suspendedReason,text:D?void 0:C?.text,backgroundTaskId:E?C?.backgroundTaskId:D?_:_??C?.backgroundTaskId};v.subagentMeta.set(z.id,z),A.push({type:"taskCreated",sessionId:m,task:z});break}case"subagent.started":{const w=typeof y?.subagentId=="string"?y.subagentId:void 0,_=w!==void 0&&(v.subagentMeta.get(w)?.status!==void 0&&v.subagentMeta.get(w).status!=="running"||v.settledByKernel.has(w));_&&v.settledByKernel.delete(w);const M=Bf(t,v,m,y?.subagentId,{subagentPhase:"working",status:"running",startedAt:new Date().toISOString(),suspendedReason:void 0,..._?{createdAt:new Date().toISOString(),completedAt:void 0,completedAtEstimated:void 0,outputPreview:void 0,outputBytes:void 0,outputLines:void 0,text:void 0}:{}});_&&w!==void 0&&v.restartedThisRun.add(w),M&&A.push({type:"taskCreated",sessionId:m,task:M});break}case"subagent.suspended":{const w=Bf(t,v,m,y?.subagentId,{subagentPhase:"suspended",status:"running",suspendedReason:typeof y?.reason=="string"?y.reason:void 0});w&&A.push({type:"taskCreated",sessionId:m,task:w});break}case"subagent.completed":{const w=typeof y?.resultSummary=="string"?y.resultSummary:void 0,_=Bf(t,v,m,y?.subagentId,{subagentPhase:"completed",status:"completed",completedAt:new Date().toISOString(),completedAtEstimated:!0,outputPreview:w});_&&A.push({type:"taskCreated",sessionId:m,task:_}),_!==null&&v.restartedThisRun.delete(_.id),A.push({type:"taskCompleted",sessionId:m,taskId:y?.subagentId??"",status:"completed",outputPreview:w});break}case"subagent.failed":{const w=typeof y?.error=="string"?y.error:void 0,_=Bf(t,v,m,y?.subagentId,{subagentPhase:"failed",status:"failed",completedAt:new Date().toISOString(),completedAtEstimated:!0,outputPreview:w});_&&A.push({type:"taskCreated",sessionId:m,task:_}),_!==null&&v.restartedThisRun.delete(_.id),A.push({type:"taskCompleted",sessionId:m,taskId:y?.subagentId??"",status:"failed",outputPreview:w});break}case"error":{A.push({type:"unknown",raw:{_agentError:!0,code:y?.code,message:y?.message,name:y?.name,details:y?.details,retryable:y?.retryable}});break}case"warning":{A.push({type:"unknown",raw:{_agentWarning:!0,message:y?.message}});break}case"task.started":case"background.task.started":{const w=y?.info??{},_=typeof w.startedAt=="number"?new Date(w.startedAt).toISOString():void 0,M=typeof w.taskId=="string"?w.taskId:typeof w.taskId=="number"?String(w.taskId):d5("task_"),B=typeof w.description=="string"?w.description:typeof w.command=="string"?w.command:t("tasks.defaultDescription");if(w.kind==="agent"){const S=typeof w.agentId=="string"&&w.agentId.length>0?w.agentId:void 0;if(S!==void 0){const I=v.subagentMeta.get(S),F=v.registrationOrderByKey.get(M),E=I?.backgroundTaskId!==void 0?v.registrationOrderByKey.get(I.backgroundTaskId):void 0;if(v.retiredBindings.has(M)||F!==void 0&&E!==void 0&&FE.backgroundTaskId===M);if(I===void 0&&(v.retiredBindings.has(M)||v.registrationOrderByKey.has(M)&&v.registrationOrderByKey.get(M)0&&v.settledByKernel.add(w.agentId),A.push({type:"taskCompleted",sessionId:m,taskId:typeof w.taskId=="string"?w.taskId:typeof w.taskId=="number"?String(w.taskId):"",status:w.status==="killed"?"cancelled":_?"failed":"completed"});break}}return A}return{project:c,bindNextPromptId:u,reset:s,forgetSession:r,markSideChannelAgent:l,hasSessionState:a}}function G_e(e){return new B_e({origin:e.origin,identity:e.identity,tracer:e.tracer,credentialStore:e.credentialStore,projectorFactory:()=>V_e({t:e.t}),mainAgentOnly:e.mainAgentOnly})}const q_e={t:e=>e},eO="Sub Agent";function K_e(){return{sessions:[],activeSessionId:void 0,approvalsBySession:{},planReviewByToolCallId:{},questionsBySession:{},tasksBySession:{},goalBySession:{},goalVersionBySession:{},lastSeqBySession:{},turnActiveBySession:{},turnErrorBySession:{},turnRetryBySession:{},compactionBySession:{},warnings:[]}}function Z_e(e){return{...e,sessions:e.sessions,approvalsBySession:{...e.approvalsBySession},planReviewByToolCallId:{...e.planReviewByToolCallId},questionsBySession:{...e.questionsBySession},tasksBySession:{...e.tasksBySession},goalBySession:{...e.goalBySession},goalVersionBySession:{...e.goalVersionBySession},lastSeqBySession:{...e.lastSeqBySession},turnActiveBySession:{...e.turnActiveBySession},turnErrorBySession:{...e.turnErrorBySession},turnRetryBySession:{...e.turnRetryBySession},compactionBySession:{...e.compactionBySession},warnings:[...e.warnings]}}function Y_e(e,t,n){if(t!==void 0&&n!==void 0&&n>0){const i=e.lastSeqBySession[t]??0;n>i&&(e.lastSeqBySession[t]=n)}}function Nk(e,t){const n=e.sessions.find(i=>i.id===t.sessionId)?.lastSeq??0;return t.seq>Math.max(e.lastSeqBySession[t.sessionId]??0,n)}const J_e={"provider.connection_error":"connection","provider.auth_error":"auth","provider.rate_limit":"rateLimit","provider.overloaded":"overloaded","provider.filtered":"filtered","provider.api_error":"api","context.overflow":"contextOverflow"};function L7(e,t){const n=[],i=(r,a)=>{typeof a=="number"||typeof a=="boolean"?n.push({label:r,value:String(a)}):typeof a=="string"&&a.length>0&&n.push({label:r,value:a})};i(t("warnings.details.code"),e.code);const o=e.details??{};i(t("warnings.details.status"),o.statusCode),i(t("warnings.details.requestId"),o.requestId),i(t("warnings.details.errorName"),e.name);for(const[r,a]of Object.entries(o))r==="statusCode"||r==="requestId"||i(r,a);const s=(e.code!==void 0?J_e[e.code]:void 0)??"title";return{severity:"error",title:t(`warnings.agentError.${s}`),message:e.message,details:n.length>0?n:void 0}}function X_e(e,t,n,i=q_e){const o=Z_e(e);switch(Y_e(o,n.sessionId,n.seq),t.type){case"sessionCreated":{o.sessions.some(r=>r.id===t.session.id)||(o.sessions=[t.session,...o.sessions]);break}case"sessionUpdated":{o.sessions=o.sessions.map(s=>s.id===t.session.id?{...t.session,pullRequest:s.pullRequest}:s);break}case"sessionDeleted":{const s=t.sessionId;o.sessions=o.sessions.filter(r=>r.id!==s),delete o.tasksBySession[s],delete o.goalBySession[s],delete o.goalVersionBySession[s],delete o.approvalsBySession[s],delete o.questionsBySession[s],delete o.lastSeqBySession[s],delete o.turnActiveBySession[s],delete o.turnErrorBySession[s],delete o.turnRetryBySession[s],o.activeSessionId===s&&(o.activeSessionId=void 0);break}case"sessionWorkChanged":{if(!Nk(e,n))break;let s;o.sessions=o.sessions.map(r=>r.id!==t.sessionId?r:(s=t.pendingInteraction??(t.busy?r.pendingInteraction:"none"),{...r,busy:t.busy,mainTurnActive:t.mainTurnActive??(t.busy?r.mainTurnActive:!1),pendingInteraction:s,lastTurnReason:t.lastTurnReason})),s==="none"?(delete o.approvalsBySession[t.sessionId],delete o.questionsBySession[t.sessionId]):s==="question"&&delete o.approvalsBySession[t.sessionId],t.mainTurnActive===!0?o.turnActiveBySession[t.sessionId]=!0:(t.mainTurnActive===!1||!t.busy)&&(delete o.turnActiveBySession[t.sessionId],delete o.turnRetryBySession[t.sessionId]);break}case"sessionMetaUpdated":{o.sessions=o.sessions.map(s=>s.id===t.sessionId?{...s,title:t.title??s.title,lastPrompt:t.lastPrompt??s.lastPrompt}:s);break}case"sessionUsageUpdated":{o.sessions=o.sessions.map(s=>{if(s.id!==t.sessionId)return s;const r=t.model&&t.model.length>0?t.model:s.model;return{...s,usage:t.usage,model:r}});break}case"historyCompacted":break;case"compactionStarted":{o.compactionBySession={...o.compactionBySession,[t.sessionId]:{status:"running",trigger:t.trigger}};break}case"compactionCompleted":{const s=t.sessionId,{[s]:r,...a}=o.compactionBySession;o.compactionBySession=a;break}case"compactionCancelled":{const{[t.sessionId]:s,...r}=o.compactionBySession;o.compactionBySession=r;break}case"messageCreated":case"messageUpdated":case"assistantDelta":case"toolOutput":break;case"approvalRequested":{const s=t.sessionId,r=o.approvalsBySession[s]??[];r.some(u=>u.approvalId===t.approval.approvalId)||(o.approvalsBySession[s]=[...r,t.approval]);const l=t.approval.display;l?.kind==="plan_review"&&typeof l.plan=="string"&&l.plan.length>0&&(o.planReviewByToolCallId={...o.planReviewByToolCallId,[t.approval.toolCallId]:{plan:l.plan,path:typeof l.path=="string"?l.path:void 0}});break}case"approvalResolved":case"approvalExpired":{const s=t.sessionId,r=t.approvalId,a=o.approvalsBySession[s]??[];o.approvalsBySession[s]=a.filter(l=>l.approvalId!==r);break}case"questionRequested":{const s=t.sessionId,r=o.questionsBySession[s]??[];r.some(l=>l.questionId===t.question.questionId)||(o.questionsBySession[s]=[...r,t.question]);break}case"questionAnswered":case"questionDismissed":{const s=t.sessionId,r=t.questionId,a=o.questionsBySession[s]??[];o.questionsBySession[s]=a.filter(l=>l.questionId!==r);break}case"taskCreated":{const s=t.sessionId,r=o.tasksBySession[s]??[],a=r.findIndex(f=>f.id===t.task.id),l=t.task.backgroundTaskId===void 0?-1:r.findIndex(f=>f.id===t.task.backgroundTaskId),u=l!==-1&&a!==-1&&l!==a?r[l]:void 0,c=u!==void 0?r.filter((f,h)=>h!==l):r,d=c.findIndex(f=>f.id===t.task.id||t.task.backgroundTaskId!==void 0&&f.id===t.task.backgroundTaskId);if(d===-1)o.tasksBySession[s]=[...c,t.task];else{const f=[...c],h=c[d],m=t.task.backgroundTaskId!==void 0&&(t.task.backgroundTaskId===h.backgroundTaskId||h.id===t.task.backgroundTaskId)||h.id===t.task.id&&(h.kind!=="subagent"||h.agentId===void 0),g=(m&&h.status!=="running"?h:void 0)??(u!==void 0&&u.status!=="running"?u:void 0),v=g!==void 0&&(t.task.status==="running"||t.task.status!==g.status),y=!m&&h.status!=="running"||t.task.backgroundTaskId!==void 0&&h.backgroundTaskId!==void 0&&t.task.backgroundTaskId!==h.backgroundTaskId,A=m&&h.completedAt!==void 0&&h.completedAtEstimated!==!0;f[d]={...t.task,status:v?g.status:t.task.status,subagentPhase:v?g.subagentPhase:t.task.subagentPhase,completedAt:v?g.completedAt:A?h.completedAt:t.task.completedAt,completedAtEstimated:v?g.completedAtEstimated:A?h.completedAtEstimated:t.task.completedAtEstimated,outputLines:v?g.outputLines:y?u?.outputLines??t.task.outputLines:h.outputLines??u?.outputLines??t.task.outputLines,text:v?g.text:y?u?.text??t.task.text:h.text??u?.text??t.task.text,outputPreview:v?g.outputPreview:t.task.outputPreview??(y?u?.outputPreview:h.outputPreview??u?.outputPreview),outputBytes:v?g.outputBytes:t.task.outputBytes??(y?u?.outputBytes:h.outputBytes??u?.outputBytes),description:t.task.description===eO&&h.description!==eO?h.description:t.task.description,swarmIndex:t.task.swarmIndex??h.swarmIndex,parentToolCallId:t.task.parentToolCallId??h.parentToolCallId,subagentType:t.task.subagentType??h.subagentType,model:t.task.model??h.model,thinkingEffort:t.task.thinkingEffort??h.thinkingEffort,runInBackground:y?t.task.runInBackground:t.task.runInBackground??h.runInBackground,backgroundTaskId:y?t.task.backgroundTaskId:t.task.backgroundTaskId??h.backgroundTaskId,agentId:t.task.agentId??h.agentId},o.tasksBySession[s]=f}break}case"taskProgress":{const s=t.sessionId,r=o.tasksBySession[s]??[];o.tasksBySession[s]=r.map(a=>{if(a.id!==t.taskId||a.status==="completed"||a.status==="failed"||a.status==="cancelled")return a;if(a.kind==="subagent"&&t.kind==="text")return{...a,text:(a.text??"")+t.outputChunk};const l=a.outputLines??[];if(t.replace===!0){const c=l.length>0?[...l.slice(0,-1),t.outputChunk]:[t.outputChunk];return{...a,outputLines:c}}if(l.at(-1)===t.outputChunk)return a;const u=[...l,t.outputChunk];return{...a,outputLines:a.kind==="subagent"?u:u.slice(-40)}});break}case"taskCompleted":{const s=t.sessionId,r=o.tasksBySession[s]??[];o.tasksBySession[s]=r.map(a=>a.id!==t.taskId&&a.backgroundTaskId!==t.taskId||t.status==="completed"&&(a.status==="cancelled"||a.status==="failed")||t.status==="failed"&&a.status==="cancelled"?a:{...a,status:t.status,completedAt:a.completedAt??new Date().toISOString(),completedAtEstimated:a.completedAt===void 0?!0:a.completedAtEstimated,outputPreview:t.outputPreview??a.outputPreview,outputBytes:t.outputBytes??a.outputBytes});break}case"goalUpdated":{const s=t.sessionId;o.goalVersionBySession[s]=(o.goalVersionBySession[s]??0)+1,t.goal===null||t.goal.status==="complete"?delete o.goalBySession[s]:o.goalBySession[s]=t.goal;break}case"configChanged":{o.config=t.config;break}case"modelCatalogChanged":break;case"agentDelta":case"agentTurnEnded":break;case"promptCompleted":case"promptAborted":break;case"turnActiveChanged":{if(!Nk(e,n))break;if(o.sessions=o.sessions.map(s=>s.id===t.sessionId?{...s,mainTurnActive:t.active}:s),t.active)o.turnActiveBySession[t.sessionId]=!0,delete o.turnErrorBySession[t.sessionId],delete o.turnRetryBySession[t.sessionId];else{delete o.turnActiveBySession[t.sessionId],delete o.turnRetryBySession[t.sessionId];const s=t.reason===void 0||t.reason==="completed"?"completed":"failed",r=o.tasksBySession[t.sessionId];r!==void 0&&(o.tasksBySession[t.sessionId]=r.map(a=>a.kind!=="subagent"||a.status!=="running"||a.runInBackground===!0?a:{...a,status:s,subagentPhase:s,completedAt:a.completedAt??new Date().toISOString(),completedAtEstimated:a.completedAt===void 0?!0:a.completedAtEstimated,suspendedReason:void 0}))}break}case"turnRetry":{if(!Nk(e,n))break;t.retry===void 0?delete o.turnRetryBySession[t.sessionId]:o.turnRetryBySession[t.sessionId]=t.retry;break}case"unknown":{const s=t.raw;if(!(s&&s._noop===!0))if(s&&s._agentError){if(Nk(e,n)){if(n.sessionId!==void 0){const r=s.details??{};o.turnErrorBySession[n.sessionId]={code:s.code,message:s.message,name:s.name,retryable:s.retryable,statusCode:typeof r.statusCode=="number"?r.statusCode:void 0,requestId:typeof r.requestId=="string"?r.requestId:void 0}}(n.sessionId===void 0||n.sessionId!==e.activeSessionId)&&(o.warnings=[...o.warnings,L7(s,i.t)])}}else if(s&&s._agentWarning){const r=s.message??s.code??i.t("warnings.agentWarningFallback");o.warnings=[...o.warnings,`${i.t("warnings.noteLabel")}: ${r}`]}else{const r=s?.type??"(unknown)";o.warnings=[...o.warnings,i.t("warnings.unhandledEvent",{type:r})]}break}}return o}function eEe(e,t){if(e===t)return!0;const n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(const o of n)if(e[o]!==t[o])return!1;return!0}function tEe(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n").replaceAll("&","&")}function h5(e){const t={};for(const[n,i]of Object.entries(PW(e)))t[n]=Q9(i);return t}function oEe(e,t,n){const i=h5(e),o=nEe.exec(t)?.[1]?.trim()??"",s=iEe.exec(t)?.[1]?.trim()??"";let r=t.split(` -`).filter(f=>!f.startsWith("Title: ")&&!f.startsWith("Severity: ")).join(` -`);const a=r.search(/^<\w/m);a!==-1&&(r=r.slice(0,a)),r=r.trim();const l=cS(t,"output-file").next().value,u=l?(()=>{const f=h5(l.attributes),h=Number(f.bytes);return f.path!==void 0&&f.path!==""?{path:f.path,bytes:Number.isFinite(h)?h:void 0}:void 0})():void 0,c=cS(t,"output-preview").next().value,d=c?(()=>{const f=h5(c.attributes),h=c.content.replace(/^\n/,""),m=h.indexOf(` -`),g=Q9(m===-1?"":h.slice(m+1)).replace(/\n$/,""),v=Number(f.bytes),y=Number(f.total_bytes);return{text:g,bytes:Number.isFinite(v)?v:void 0,totalBytes:Number.isFinite(y)?y:void 0,truncated:f.truncated==="true"?!0:f.truncated==="false"?!1:void 0}})():void 0;return{id:i.id??"",category:i.category??"",type:i.type??"",sourceKind:i.source_kind??"",sourceId:i.source_id??"",agentId:i.agent_id,title:Q9(o),severity:s,body:Q9(r),outputFile:u,outputPreview:d,raw:n}}function sEe(e){if(!e.includes("(/^Background (process|agent)$/.test(u.description)&&(u={...u,description:""}),u),r=uEe.exec(n);if(r?.[1]!==void 0&&r[2]!==void 0)return s({status:r[2]==="timed out"?"timed_out":r[2],description:r[1],reason:r[3],rest:o});const a=cEe.exec(n);if(a?.[1]!==void 0)return s({status:"killed",description:a[1],userStopped:a[2]!==void 0,reason:a[3],rest:o});const l=dEe.exec(n);if(l?.[1]!==void 0&&l[2]!==void 0)return s({status:l[2]==="was killed"?"killed":l[2]==="timed out"?"timed_out":l[2],description:l[1],reason:l[3],rest:o})}function hEe(e){if(!UK(e.title))return;const t=fEe(e.body);if(!(t===void 0||t.status!==Bw(e)))return t}const pEe=1e6,tO=5e3;function Kc(e){return e===""?[]:e.endsWith(` -`)?e.slice(0,-1).split(` -`):e.split(` -`)}const WK="\0";function nO(e){return e===""||e.endsWith(` -`)?e:`${e}${WK}`}function QK(e,t){const n=Fw(nO(e),nO(t));return n===null?null:n.map(i=>i.text.endsWith(WK)?{...i,text:i.text.slice(0,-1)}:i)}function Fw(e,t){const n=Kc(e),i=Kc(t),o=n.length,s=i.length;if(o===0&&s===0)return[];if(o>tO||s>tO||(o+1)*(s+1)>pEe)return null;const r=Array.from({length:o+1},()=>Array.from({length:s+1},()=>0));for(let h=1;h<=o;h++)for(let m=1;m<=s;m++)r[h][m]=n[h-1]===i[m-1]?r[h-1][m-1]+1:Math.max(r[h-1][m],r[h][m-1]);const a=[];let l=o,u=s;for(;l>0||u>0;)l>0&&u>0&&n[l-1]===i[u-1]?(a.push({type:"context",text:n[l-1]}),l--,u--):u>0&&(l===0||r[l][u-1]>=r[l-1][u])?(a.push({type:"add",text:i[u-1]}),u--):(a.push({type:"del",text:n[l-1]}),l--);a.reverse();const c=[];let d=1,f=1;for(const h of a)h.type==="context"?(c.push({type:"context",text:h.text,oldNo:d,newNo:f}),d++,f++):h.type==="add"?(c.push({type:"add",text:h.text,newNo:f}),f++):(c.push({type:"del",text:h.text,oldNo:d}),d++);return c}const iO=500;function oO(e,t){const n=[],i=Kc(e),o=Kc(t),s=Math.min(i.length,iO),r=Math.min(o.length,iO);for(let a=1;a<=s;a++)n.push({type:"del",text:i[a-1],oldNo:a});i.length>s&&n.push({type:"context",text:`… ${i.length-s} more lines …`});for(let a=1;a<=r;a++)n.push({type:"add",text:o[a-1],newNo:a});return o.length>r&&n.push({type:"context",text:`… ${o.length-r} more lines …`}),n}function mEe(e){let t=0,n=0;for(const i of e)i.type==="add"?t++:i.type==="del"&&n++;return{added:t,removed:n}}function Ku(e){const t=e;return t?.kind!=="user"||!Array.isArray(t.skillActivations)?[]:t.skillActivations.flatMap(n=>{if(typeof n!="object"||n===null)return[];const i=n;return typeof i.skillName!="string"?[]:[{name:i.skillName,...typeof i.skillArgs=="string"?{args:i.skillArgs}:{}}]})}function gEe(e){return{content:e.content,skillActivations:Ku(e.metadata?.origin)}}function wA(e,t){return e.length===t.length&&e.every((n,i)=>{const o=t[i];return o!==void 0&&n.name===o.name&&n.args===o.args})}const vEe=/^read[_-]?media(?:file)?$/i,AEe=/^data:([^;]+);base64,(.*)$/s,yEe=/^<(image|video|audio)\s+path="([^"]+)">$/,kEe=/^<(image|video|audio)\s+path="([^"]+)">(?:<\/\1>)?$/,bEe=/Mime type:\s*([^.\s]+)/i,wEe=/Size:\s*(\d+)\s*bytes/i,CEe=/Original dimensions:\s*(\d+)x(\d+)\s*pixels/i,sO="Image compressed to fit model limits:";function rO(e){return e.includes(sO)?nce(e,sO,""):e}function SEe(e){return e.replaceAll(""",'"').replaceAll("<","<").replaceAll(">",">").replaceAll("&","&")}function aO(e){const t=kEe.exec(e.trim());return t?{kind:t[1],path:SEe(t[2])}:null}const VK=/^f_(?:[0-9A-Za-z]{26}|[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12})$/,xEe=/f_(?:[0-9A-Za-z]{26}|[0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12})$/;function P7(e){const t=e.split(/[\\/]/).at(-1)??"",n=t.lastIndexOf("."),i=n>0?t.slice(0,n):t;return VK.test(i)?i:void 0}const Fd='Attached file "',GK=" — open it with the Read tool";function _Ee(e,t,n,i){const o=`-${e}`,s=i.endsWith(o)?i.slice(0,-o.length):i,r=xEe.exec(s)?.[0];return{name:e,mediaType:t,size:Number(n),fileId:r!==void 0&&VK.test(r)?r:void 0}}const qK="attachmentRecords",EEe=65536;function IEe(e,t,n){const i=t+Fd.length,o=e.slice(i,n),s=o.indexOf('" (');if(s<=0)return!1;const r=o.indexOf(", ",s+3);if(r<=s+3)return!1;let a=i+r+2;if(a>=n||e.charCodeAt(a)<48||e.charCodeAt(a)>57)return!1;for(;a=48&&e.charCodeAt(a)<=57;)a++;return e.startsWith(" bytes): ",a)}function MEe(e,t,n){let i=e.indexOf(Fd,t);for(;i>=0&&i=n?n:s;if(IEe(e,i,r))return i;if(s<0||s>=n)return-1;i=s}return-1}function TEe(e,t){const n=t+Fd.length,i=Math.min(e.length,n+EEe),o=e.slice(n,i),s=o.indexOf('" (');if(s<=0)return null;const r=n+s,a=o.indexOf(", ",s+3);if(a<=s+3)return null;const l=n+a+2;let u=l;for(;u=48&&e.charCodeAt(u)<=57;)u++;if(u===l||!e.startsWith(" bytes): ",u))return null;const c=e.slice(l,u),d=u+9,f=MEe(e,r,i),h=f>=0?Math.min(f,i):i,m=e.slice(d,h),g=o.slice(0,s),v=`-${g}${GK}`;let y=m.lastIndexOf(v);for(;y>=0;){const b=m.slice(0,y),w=Math.max(b.lastIndexOf("/"),b.lastIndexOf("\\"));if(!/\s/.test(b.slice(w+1)))break;y=m.lastIndexOf(v,y-1)}if(y<0)return null;const A=m.slice(0,y+1+g.length);return{start:t,end:d+y+v.length,info:_Ee(g,o.slice(s+3,a),c,A)}}function yI(e){if(!e.includes(GK))return[];const t=[];let n=e.indexOf(Fd);for(;n>=0;){const i=TEe(e,n);n=i?e.indexOf(Fd,i.end):e.indexOf(Fd,n+Fd.length),i&&t.push(i)}return t}function lO(e){const t=yI(e);if(t.length===0)return e;let n="",i=0;for(const o of t)n+=e.slice(i,o.start),i=o.end;return n+e.slice(i)}function BEe(e){const t=[];for(const o of e.content)o.type==="file"&&t.push({fileId:o.fileId,name:o.name});const n=[...t],i=e.metadata?.[qK];if(Array.isArray(i))for(const o of i){if(typeof o!="object"||o===null)continue;const s=o.fileId,r=o.name,a={fileId:typeof s=="string"&&s.length>0?s:void 0,name:typeof r=="string"&&r.length>0?r:void 0},l=n.findIndex(u=>a.fileId!==void 0?u.fileId===a.fileId:u.fileId===void 0&&u.name===a.name);l>=0?n.splice(l,1):t.push(a)}return t.length>0?t:null}function FEe(e){const t=BEe(e);if(t)return{kind:"paired",records:t};let n=0;for(const s of e.content)if(s.type==="text")for(const r of uO(s.text))n=Math.max(n,r);const i=e.metadata?.origin;for(const s of[i?.skillArgs,i?.commandArgs])if(typeof s=="string")for(const r of uO(s))n=Math.max(n,r);if(n===0)return{kind:"legacy"};let o=0;for(const s of e.content)s.type==="text"&&(o+=yI(s.text).length);return{kind:"pill",keepLast:n,total:o}}function REe(e){let t=0;const n=e.kind==="pill"?Math.max(0,e.total-e.keepLast):0;return i=>{const o=yI(i);if(o.length===0)return{notices:[],text:i};const s=[];for(const l of o){const u=t++;if(e.kind==="legacy")s.push(l);else if(e.kind==="pill")u>=n&&s.push(l);else{const c=l.info.fileId,d=e.records.findIndex(f=>c!==void 0?f.fileId===c:f.fileId===void 0&&f.name===l.info.name);d>=0&&(e.records.splice(d,1),s.push(l))}}if(s.length===0)return{notices:[],text:i};let r="",a=0;for(const l of s)r+=i.slice(a,l.start),a=l.end;return{notices:s.map(l=>l.info),text:r+i.slice(a)}}}const p5="](kimi-code-composer://attachments/";function DEe(e){if(!e.includes("!["))return e;const t=[],n=[],i=new Map;for(let r=0;ri+1&&e.startsWith(p5,o)){let r=o+p5.length;const a=e[r]==="m";a&&(r+=1);let l=r;if(e.charCodeAt(l)>=49&&e.charCodeAt(l)<=57){do l+=1;while(e.charCodeAt(l)>=48&&e.charCodeAt(l)<=57);e[l]===")"&&((a?n:t).add(Number(e.slice(r,l))),o=l)}}i=-1}else s==="\\"&&e[o+1]!==` -`&&(o+=1)}return{files:t,media:n}}function uO(e){return KK(e).files}function NEe(e){if(e.length===0)return 0;const t=e.endsWith("==")?2:e.endsWith("=")?1:0;return Math.floor(e.length*3/4)-t}function LEe(e){if(Array.isArray(e))return e;if(typeof e!="string")return null;try{const t=JSON.parse(e);return Array.isArray(t)?t:null}catch{return null}}function PEe(e){const t=e.type,n=t==="image_url"?"image":t==="video_url"?"video":t==="audio_url"?"audio":null;if(n===null)return null;const o=e[n==="image"?"imageUrl":n==="video"?"videoUrl":"audioUrl"];if(typeof o!="object"||o===null)return null;const s=o.url;return typeof s=="string"?{kind:n,url:s}:null}function OEe(e,t){if(!vEe.test(e))return;const n=LEe(t);if(n===null)return;let i,o,s,r,a,l=null;for(const c of n){if(typeof c!="object"||c===null)continue;const d=c;if(d.type==="text"&&typeof d.text=="string"){const h=d.text,m=yEe.exec(h);m&&(o=m[1],i=m[2]);const g=bEe.exec(h);g?.[1]&&(s=g[1]);const v=wEe.exec(h);v?.[1]&&(r=Number(v[1]));const y=CEe.exec(h);y?.[1]&&y[2]&&(a=`${y[1]}x${y[2]}`);continue}const f=PEe(d);f&&(l=f)}if(l===null)return;const u=AEe.exec(l.url);return u?.[1]&&(s=u[1]),u?.[2]&&(r=NEe(u[2])),{kind:l.kind??o??"image",url:l.url,path:i,fileId:l.url.startsWith("ms://")&&i!==void 0?P7(i):void 0,mimeType:s,bytes:Number.isFinite(r)?r:void 0,dimensions:a}}function kI(e){if(e!=null){if(typeof e=="string")return e.split(` -`);if(Array.isArray(e)){const t=[];for(const n of e)if(typeof n=="string")t.push(...n.split(` -`));else if(n&&typeof n=="object"){const i=n;i.type==="text"&&typeof i.text=="string"?t.push(...i.text.split(` -`)):i.type==="think"&&typeof i.think=="string"?t.push(...i.think.split(` -`)):i.type==="image_url"||i.type==="image"?t.push("[image]"):typeof i.type=="string"?t.push(`[${i.type}]`):t.push(JSON.stringify(n))}return t.length>0?t:void 0}return[JSON.stringify(e)]}}function zEe(e,t){if(Tr(e)==="task")for(const n of t??[]){const i=/^agent_id:\s*(\S+)\s*$/.exec(n);if(i?.[1])return i[1]}}function $Ee(e,t){return{id:e.agentId??e.id,toolCallId:e.parentToolCallId,name:e.description,kind:e.kind,subagentType:e.subagentType,prompt:e.command??t,model:e.model,thinkingEffort:e.thinkingEffort,phase:e.status==="completed"?"completed":e.status==="failed"?"failed":e.status==="cancelled"?"cancelled":e.subagentPhase??"working",status:e.status,summary:e.outputPreview,outputLines:e.outputLines,text:e.text,suspendedReason:e.suspendedReason,swarmIndex:e.swarmIndex}}function ZK(e){const t=e.display??{},n=typeof t.kind=="string"?t.kind:"";if(n==="diff"){const i=typeof t.path=="string"?t.path:"";if(Array.isArray(t.diff))return{kind:"diff",path:i,diff:t.diff};const o=typeof t.old_text=="string"?t.old_text:typeof t.before=="string"?t.before:void 0,s=typeof t.new_text=="string"?t.new_text:typeof t.after=="string"?t.after:void 0;if(o!==void 0&&s!==void 0){const r=QK(o,s)??oO(o,s);return{kind:"diff",path:i,diff:r}}return{kind:"diff",path:i,diff:[]}}if(n==="file_io"){const i=typeof t.path=="string"?t.path:"",o=typeof t.operation=="string"?t.operation:"";if(o==="write"&&typeof t.content=="string")return{kind:"file",path:i,content:t.content};if(o==="edit"&&typeof t.before=="string"&&typeof t.after=="string"){const r=Fw(t.before,t.after)??oO(t.before,t.after);return{kind:"diff",path:i,diff:r}}const s=typeof t.detail=="string"?t.detail:void 0;return{kind:"fileop",op:o||n,path:i,detail:s}}if(n==="shell"||n==="command"){const i=typeof t.command=="string"?t.command:e.action;return{kind:"shell",command:i,cwd:typeof t.cwd=="string"?t.cwd:void 0,danger:typeof t.danger=="string"?t.danger:Hde(i)}}if(n==="file_content"||n==="file")return{kind:"file",path:typeof t.path=="string"?t.path:"",content:typeof t.content=="string"?t.content:"",language:typeof t.language=="string"?t.language:void 0};if(n==="file_op"||n==="fileop")return{kind:"fileop",op:typeof t.operation=="string"?t.operation:typeof t.op=="string"?t.op:n,path:typeof t.path=="string"?t.path:"",detail:typeof t.detail=="string"?t.detail:void 0};if(n==="url_fetch"||n==="url")return{kind:"url",method:typeof t.method=="string"?t.method:void 0,url:typeof t.url=="string"?t.url:e.action};if(n==="search")return{kind:"search",query:typeof t.query=="string"?t.query:e.action,scope:typeof t.scope=="string"?t.scope:void 0};if(n==="invocation"||n==="agent_call"||n==="skill_call")return{kind:"invocation",kind2:typeof t.kind=="string"?t.kind:n,name:typeof t.name=="string"?t.name:e.toolName,description:typeof t.description=="string"?t.description:void 0};if(n==="todo"||n==="todo_list")return{kind:"todo",items:(Array.isArray(t.items)?t.items:[]).map(s=>{const r=s??{};return{title:typeof r.title=="string"?r.title:"",status:typeof r.status=="string"?r.status:"pending"}})};if(n==="plan_review"){const i=typeof t.plan=="string"?t.plan:"",o=typeof t.path=="string"?t.path:void 0,r=(Array.isArray(t.options)?t.options:[]).map(a=>{const l=a??{},u=typeof l.label=="string"?l.label:"";if(!u)return null;const c=typeof l.description=="string"?l.description:void 0;return{label:u,description:c}}).filter(a=>a!==null);return{kind:"plan_review",plan:i,path:o,options:r.length>0?r:void 0}}return{kind:"generic",summary:e.action}}function bI(e){const t=` -`,n=` -`,i=e.indexOf(t),o=e.lastIndexOf(n);return i>=0&&o>=i+t.length?e.slice(i+t.length,o):jEe(e)}function jEe(e){const t=e.split(` -`);return t.length>=2&&t[0]?.startsWith(""?t.slice(1,-1).join(` -`):e}function HEe(e){const t=e.metadata?.origin;if(t?.kind==="cron_job"||t?.kind==="cron_missed")return t.kind}function UEe(e){const t=e.content.filter(n=>n.type==="text").map(n=>n.text).join(` -`);return bI(t)}function WEe(e,t){const n=e.metadata?.origin??{},i=UEe(e);return t==="cron_missed"?{text:i,cron:{missedCount:typeof n.count=="number"?n.count:void 0}}:{text:i,cron:{jobId:typeof n.jobId=="string"?n.jobId:void 0,cron:typeof n.cron=="string"?n.cron:void 0,recurring:typeof n.recurring=="boolean"?n.recurring:void 0,coalescedCount:typeof n.coalescedCount=="number"?n.coalescedCount:void 0,stale:typeof n.stale=="boolean"?n.stale:void 0}}}function QEe(e,t,n){const{text:i,cron:o}=WEe(e,n);return{id:e.id,role:"cron",no:t,text:i,createdAt:e.createdAt,cron:o}}function VEe(e){const t=e.metadata?.origin,n=t?.kind;return n===void 0||n==="user"?!0:n==="skill_activation"||n==="plugin_command"?t?.trigger==="user-slash":!1}function GEe(e){const t=e.metadata?.["kimiWeb.steeredPromptIds"];if(Array.isArray(t)){const i=t.filter(o=>typeof o=="string"&&o.length>0);if(i.length>0)return i}if(e.promptId!==void 0&&e.promptId.length>0)return[e.promptId];const n=e.metadata?.["kimiWeb.promptId"];if(typeof n=="string"&&n.length>0)return[n]}function qEe(e){return e.metadata?.origin?.kind==="compaction_summary"}function KEe(e,t){return e===null?!1:e.promptId===void 0||t===void 0||e.promptId===t}function ZEe(e){if(!e||e.length===0)return;const t="Plan saved to: ";for(const n of e)if(n.startsWith(t))return n.slice(t.length).trim()}function YEe(e){const t=[];for(const n of e){const i=t.at(-1);n.type==="text"&&i?.type==="text"?i.text+=n.text:n.type==="thinking"&&i?.type==="thinking"?i.thinking+=n.thinking:n.type==="thinking"?t.push({type:"thinking",thinking:n.thinking}):t.push({...n})}return JSON.stringify(t)}function AC(e,t,n,i=!0,o={},s={},r){const a=[];let l=r?.startNo??1;const u=r?.collect,c=new Map;for(const g of t)c.set(g.toolCallId,g);let d=null;function f(g=!1){if(!d)return;const v=d;if(d=null,!g&&v.blocks.length===0&&v.textParts.length===0&&v.thinkingParts.length===0&&v.tools.length===0)return;if(!g||!i)for(let b=0;bB.kind==="tool"&&B.tool.id===_.id);M&&M.kind==="tool"&&(M.tool=_)}const y=v.sources.find(b=>b.daemonTurnId!==void 0),A={id:v.id,sessionId:v.sources.find(b=>b.sessionId)?.sessionId||void 0,role:"assistant",no:l++,text:v.textParts.join(` -`),thinking:v.thinkingParts.length>0?v.thinkingParts.join(` -`):void 0,tools:v.tools.length>0?v.tools:void 0,blocks:v.blocks.length>0?v.blocks:void 0,approval:v.approval,approvalId:v.approvalId,durationMs:v.durationMs,createdAt:v.createdAt,endedAt:v.endedAt,goalContinuation:v.goalContinuation,daemonTurnId:y?.daemonTurnId,daemonTurnState:y?.daemonTurnState};a.push(A),u?.(A,v.sources)}function h(g,v){let y=null;for(const A of v)if(A.type==="text"){if(A.text){y==="text"?g.textParts[g.textParts.length-1]+=A.text:g.textParts.push(A.text);const b=g.blocks.at(-1);b&&b.kind==="text"?b.text+=(y==="text"?"":` -`)+A.text:g.blocks.push({kind:"text",text:A.text}),y="text"}}else if(A.type==="thinking"){if(A.thinking){y==="thinking"?g.thinkingParts[g.thinkingParts.length-1]+=A.thinking:g.thinkingParts.push(A.thinking);const b=g.blocks.at(-1);if(b&&b.kind==="thinking"){b.thinking+=(y==="thinking"?"":` -`)+A.thinking;const w=[b.startedAt,A.startedAt].filter(B=>B!==void 0).sort()[0],_=b.startedAt!==void 0&&b.durationMs===void 0||A.startedAt!==void 0&&A.durationMs===void 0,M=[b,A].flatMap(B=>B.startedAt!==void 0&&B.durationMs!==void 0?[Date.parse(B.startedAt)+B.durationMs]:[]);b.startedAt=w,b.durationMs=!_&&w!==void 0&&M.length>0?Math.max(...M)-Date.parse(w):void 0}else g.blocks.push({kind:"thinking",thinking:A.thinking,startedAt:A.startedAt,durationMs:A.durationMs});y="thinking"}}else if(A.type==="toolUse"){y=null;const b=c.get(A.toolCallId),w=A.toolName==="ExitPlanMode"?s[A.toolCallId]:void 0,_={id:A.toolCallId,name:A.toolName,arg:typeof A.input=="string"?A.input:JSON.stringify(A.input),agentId:Tr(A.toolName)==="task"?A.agentRefs?.find(M=>M.role!=="member")?.agentId??A.agentRefs?.[0]?.agentId:void 0,status:"running",output:A.outputLines,plan:w,planPath:A.toolName==="ExitPlanMode"?w?.path??o[A.toolCallId]?.path:void 0};g.tools.push(_),g.blocks.push({kind:"tool",tool:_}),b&&(g.approval=ZK(b),g.approvalId=b.approvalId)}else if(A.type==="toolResult"){y=null;const b=g.tools.findIndex(w=>w.id===A.toolCallId);if(b!==-1){const w=g.tools[b],_=kI(A.output),M={...w,status:A.isError?"error":"ok",output:_,media:A.isError?void 0:OEe(w.name,A.output),agentId:w.agentId??zEe(w.name,_)};M.name==="ExitPlanMode"&&!M.planPath&&(M.planPath=ZEe(M.output)),g.tools[b]=M;const B=g.blocks.find(C=>C.kind==="tool"&&C.tool.id===A.toolCallId);B&&B.kind==="tool"&&(B.tool=M)}}else y=null}function m(g,v){if(g.type==="image"||g.type==="video"){const y=g.type,A=g.source;if(A.kind==="url")return{url:A.url,kind:y,name:g.name};if(A.kind==="base64")return{url:`data:${A.mediaType};base64,${A.data}`,kind:y,name:g.name};if(A.kind==="file"&&n)return{url:n(A.fileId),kind:y,name:g.name,fileId:A.fileId};if(A.kind==="sessionMedia")return{url:r?.getSessionMediaUrl?.(v,A.fileId)??"",kind:y,name:g.name,fileId:A.fileId,sessionId:v}}if(g.type==="file"&&n){if(H_(g.mediaType))return{url:n(g.fileId),kind:"image",name:g.name,fileId:g.fileId};if(g.mediaType.startsWith("video/"))return{url:n(g.fileId),kind:"video",name:g.name,fileId:g.fileId}}}for(const g of e){if(g.role==="system")continue;if(qEe(g)){f();const w=g.metadata?.[qW],_={id:g.id,role:"compaction",no:l,text:g.content.filter(M=>M.type==="text").map(M=>M.text).join(` -`),compaction:{trigger:w?.trigger,tokensBefore:w?.tokensBefore,tokensAfter:w?.tokensAfter}};a.push(_),u?.(_,[g]);continue}if(g.role==="user"){const w=HEe(g),_=g.metadata?.origin?.kind,M=_==="skill_activation"&&g.metadata?.origin?.trigger!=="user-slash";if(w===void 0&&(_==="injection"||M))continue;if(w===void 0&&(_==="task"||_==="background_task"||_==="task_notification")){const ie=g.content.filter(fe=>fe.type==="text").map(fe=>fe.text).join(` -`),G=rEe(g.metadata),J=G!==void 0?[G]:sEe(ie);if(J.length>0){d??={id:g.id,promptId:void 0,textParts:[],thinkingParts:[],tools:[],blocks:[],approval:void 0,approvalId:void 0,seenSigs:new Set,sources:[g],createdAt:g.createdAt};for(const fe of J)d.blocks.push({kind:"notification",notification:{...fe,createdAt:g.createdAt}})}continue}if(f(),w!==void 0){const ie=QEe(g,l++,w);a.push(ie),u?.(ie,[g]);continue}if(_==="system_trigger"&&g.metadata?.origin?.name==="goal_continuation"){d={id:g.id,promptId:void 0,textParts:[],thinkingParts:[],tools:[],blocks:[],approval:void 0,approvalId:void 0,seenSigs:new Set,sources:[g],createdAt:g.createdAt,goalContinuation:!0};continue}if(!VEe(g))continue;const B=g.metadata?.origin,C=B?.kind==="skill_activation"&&B?.trigger==="user-slash",S=B?.kind==="plugin_command"&&B?.trigger==="user-slash",I=gEe(g),F=I.skillActivations,E=I.content,D=[];let j=[];const z=REe(FEe(g)),T=new Set,N=ie=>{const G={kind:"file",url:ie.fileId&&n?n(ie.fileId):"",fileId:ie.fileId,name:ie.name,mediaType:ie.mediaType,size:ie.size};j.push(G),T.add(G)};for(const ie of E){if(ie.type==="text")if(C){const J=aO(ie.text);if(J&&(J.kind==="video"||J.kind==="image")&&n){const fe=P7(J.path);if(fe){j.push({url:n(fe),kind:J.kind,fileId:fe});continue}}for(const fe of z(ie.text).notices)N(fe)}else if(S)D.push(B.commandArgs??"");else{const J=aO(ie.text);if(J&&(J.kind==="video"||J.kind==="image")&&n){const ve=P7(J.path);if(ve){j.push({url:n(ve),kind:J.kind,fileId:ve});continue}}const fe=z(ie.text);if(fe.notices.length>0){for(const oe of fe.notices)N(oe);if(fe.text.trim().length===0)continue;const ve=rO(fe.text);if(ve!==fe.text&&ve.trim().length===0)continue;D.push(ve);continue}const me=rO(ie.text);if(me!==ie.text&&me.trim().length===0)continue;D.push(me)}const G=m(ie,g.sessionId);if(G){j.push({url:G.url,kind:G.kind,name:G.name,fileId:G.fileId,sessionId:G.sessionId});continue}ie.type==="file"&&n&&j.push({kind:"file",url:n(ie.fileId),fileId:ie.fileId,name:ie.name,mediaType:ie.mediaType||void 0,size:ie.size})}const L=new Map;for(const ie of T){if(ie.fileId===void 0)continue;const G=`${ie.kind}|${ie.fileId}`;L.set(G,(L.get(G)??0)+1)}j=j.filter(ie=>{if(T.has(ie)||ie.fileId===void 0)return!0;const G=`${ie.kind}|${ie.fileId}`,J=L.get(G)??0;return J>0?(L.set(G,J-1),!1):!0});const H=C?B?.skillArgs??"":D.join(` -`),{files:O,media:Q}=KK(H);let Y=0;j=j.map(ie=>ie.kind!=="image"&&ie.kind!=="video"?ie:{kind:ie.kind,url:ie.url,mediaOrdinal:++Y,...ie.fileId===void 0?{}:{fileId:ie.fileId},...ie.sessionId===void 0?{}:{sessionId:ie.sessionId},...ie.name===void 0?{}:{name:ie.name},...ie.mediaType===void 0?{}:{mediaType:ie.mediaType},...ie.size===void 0?{}:{size:ie.size}});const W=j.filter(ie=>ie.kind==="file"),Z=j.filter(ie=>ie.kind==="image"||ie.kind==="video"),ee=[...O].some(ie=>ie<=W.length),X=[...Q].some(ie=>ie<=Z.length),ge=ee||X?j:[];let q=0;const pe=j.filter(ie=>ie.kind==="file"?(q+=1,!(ee&&O.has(q))):(ie.kind==="image"||ie.kind==="video",!0)),we=g.metadata?.["kimiWeb.steeredPromptIds"],te={id:g.id,role:"user",no:l++,text:H,hasUndoAnchor:g.metadata?.["kimiWeb.settledWithoutEcho"]===!0||g.metadata?.["kimiWeb.steered"]===!0?!1:void 0,steered:g.metadata?.["kimiWeb.steered"]===!0||Array.isArray(we)&&we.length>0?!0:void 0,promptIds:GEe(g),attachments:pe.length>0?pe:void 0,inlineAttachments:ge.length>0?ge:void 0,skillActivation:C?{name:B.skillName,args:B.skillArgs}:void 0,skillActivations:F.length>0?F.map(ie=>({name:ie.name,args:ie.args})):void 0,pluginCommand:S?{pluginId:B.pluginId,commandName:B.commandName,args:B.commandArgs}:void 0,createdAt:g.createdAt};a.push(te),u?.(te,[g]);continue}if(g.role==="tool"){d&&(d.sources.push(g),h(d,g.content),d.endedAt=g.createdAt);continue}const v=g.promptId;KEe(d,v)?d!==null&&d.promptId===void 0&&v!==void 0&&(d.promptId=v):(f(),d={id:g.id,promptId:v,textParts:[],thinkingParts:[],tools:[],blocks:[],approval:void 0,approvalId:void 0,seenSigs:new Set,sources:[],durationMs:g.durationMs,createdAt:g.createdAt});const A=d;if(A===null)continue;const b=YEe(g.content);A.promptId!==void 0&&A.seenSigs.has(b)||(A.seenSigs.add(b),A.sources.push(g),g.durationMs!==void 0&&(A.durationMs=g.durationMs),h(A,g.content),g.endedAt!==void 0?A.endedAt=g.endedAt:g.id!==A.id&&(A.endedAt=g.createdAt))}return f(!0),a}function YK(e,t,n){return e.state==="running"&&e.frames.at(-1)===t&&!n}function JEe(e,t){if(t.size===0)return;let n=!1;for(const a of t.values())if(a.settledAt===void 0){n=!0;break}if(!n)return;const i=new Date().toISOString(),o=e.items.findLast(a=>a.kind==="turn"&&a.state==="running"),s=o?.kind==="turn"?o.steps.findLast(a=>a.state==="running"):void 0,r=e.interactions.some(a=>a.state==="pending");for(const a of e.items)if(a.kind==="turn")for(const l of a.steps){const u=r&&l===s;for(const c of l.frames){if(c.kind!=="thinking")continue;const d=t.get(c.frameId);d===void 0||d.settledAt!==void 0||YK(l,c,u)||(d.settledAt=i)}}}function XEe(e,t){if(t.size===0)return;const n=new Set;for(const i of e.items)if(i.kind==="turn")for(const o of i.steps)for(const s of o.frames)s.kind==="thinking"&&n.add(s.frameId);for(const i of[...t.keys()])n.has(i)||t.delete(i)}function eIe(e,t,n,i){const o=e.items.filter(f=>f.kind==="turn"),s=o[0]?.turnId,r=o.length===1?s:void 0,a=new Map(e.tasks.map(f=>[f.taskId,f])),l=new Map(e.prompts.map(f=>[f.promptId,f])),u=JK(e.prompts,wI(e.items)),c=e.items.flatMap(f=>f.kind==="turn"?CI(f,e.attachments,a,f.turnId===s?n?.createdAt:void 0,f.turnId===r?n?.disposedAt:void 0,i?.sessionId,{promptById:l,promptForTurn:u}):[]),d=e.meta.activity==="turn";return AC(c,[],t,d,{},{},{getSessionMediaUrl:i?.getSessionMediaUrl}).map(sIe)}function cO(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){if(typeof n!="object"||n===null)continue;const i=n;if(i.type!=="file")continue;const o=typeof i.fileId=="string"?i.fileId:i.file_id;t.push({fileId:typeof o=="string"?o:void 0,name:typeof i.name=="string"?i.name:void 0})}return t}function dO(e,t){return t.length===0?e:{...e,[qK]:t}}const tIe=new Set(["user","skill_activation","plugin_command"]);function nIe(e){return(e.origin.payload??e.origin)?.kind}function iIe(e){const t=e.content;if(!Array.isArray(t))return;const n=[];for(const i of t)if(typeof i=="object"&&i!==null&&i.type==="text"){const o=i.text;typeof o=="string"&&n.push(o)}return n.join("")}function wI(e){const t=new Set;for(const n of e)if(n.kind==="turn"){for(const i of n.steps)for(const o of i.frames)if(o.kind==="text")for(const s of o.promptIds??[])t.add(s)}return t}function JK(e,t){const n=new Set(t??[]);return i=>{const o=nIe(i);if(o!==void 0&&!tIe.has(o)||i.prompt===void 0&&(i.attachmentIds??[]).length===0)return;const s=lO(i.prompt??"");for(const r of e){if(n.has(r.promptId))continue;const a=iIe(r);if(a!==void 0&&lO(a)===s)return n.add(r.promptId),r}}}function CI(e,t,n,i,o,s="",r){const a=[],l=new Map(t.map(y=>[y.attachmentId,y])),u=O7([e.startedAt,...e.steps.map(y=>y.startedAt),i])??"",c=fO(e.endedAt)??fO(o),d=e.triggerPromptId??e.turnId,f=e.origin.payload??e.origin,h=(e.attachmentIds??[]).length>0,m=r?.includeOrigin===!0&&Ku(f).length>0;if(e.prompt!==void 0&&e.prompt.length>0||h||m){const y=e.prompt!==void 0&&e.prompt.length>0?[{type:"text",text:e.prompt}]:[];for(const A of e.attachmentIds??[]){const b=hO(l.get(A));b!==void 0&&y.push(b)}a.push({id:`${e.turnId}:input`,sessionId:s,role:"user",content:y,createdAt:u,promptId:d,metadata:dO(r?.includeOrigin===!0||e.origin.kind==="task"&&(e.prompt??"").includes("0;if(A.role==="user"){if(A.taskId!==void 0){if(A.text.length===0&&!b)continue;const I=oIe(A.taskId,A.text,n.get(A.taskId));a.push({id:A.frameId,sessionId:s,role:"user",content:[{type:"text",text:A.text}],createdAt:y.startedAt??u,promptId:d,metadata:{origin:{kind:"task",taskId:A.taskId},[HK]:I}});continue}const w=A.text.length>0?[{type:"text",text:A.text}]:[];for(const I of A.attachmentIds??[]){const F=hO(l.get(I));F!==void 0&&w.push(F)}const _=A.promptIds?.map(I=>r?.promptById?.get(I)).find(I=>I!==void 0),M=[];for(const I of A.promptIds??[])M.push(...cO(r?.promptById?.get(I)?.content));const B=A.origin,C=Ku(B);if(A.text.length===0&&!b&&C.length===0)continue;const S={...C.length>0?{origin:B}:{},...(A.promptIds?.length??0)>0?{"kimiWeb.steeredPromptIds":A.promptIds}:{}};a.push({id:A.frameId,sessionId:s,role:"user",content:w,createdAt:_?.createdAt??y.startedAt??u,promptId:d,metadata:dO(Object.keys(S).length>0?S:void 0,M)});continue}if(A.text.length===0&&!b)continue;a.push({id:A.frameId,sessionId:s,role:"assistant",content:[{type:"text",text:A.text}],createdAt:y.startedAt??u,promptId:d})}else if(A.kind==="thinking"){if(A.text.length===0)continue;const b=r?.pendingInteractionAtByStepId?.get(y.stepId),w=YK(y,A,b!==void 0),_=r?.thinkingTiming,M=_?.get(A.frameId);let B,C;if(M!==void 0)M.settledAt===void 0&&!w&&(M.settledAt=new Date().toISOString()),B=M.startedAt,C=m5(M.startedAt,M.settledAt);else if(_!==void 0&&w){const S=new Date().toISOString();_.set(A.frameId,{startedAt:S}),B=S}else B=y.startedAt,C=m5(y.startedAt,O7([y.endedAt,b]));a.push({id:A.frameId,sessionId:s,role:"assistant",content:[{type:"thinking",thinking:A.text,startedAt:B,durationMs:C}],createdAt:y.startedAt??u,promptId:d})}else A.kind==="tool"&&(a.push({id:`${A.frameId}:call`,sessionId:s,role:"assistant",content:[{type:"toolUse",toolCallId:A.toolCallId,toolName:A.name,input:A.input??A.display??{},outputLines:A.state==="running"?kI(A.output):void 0,agentRefs:A.agentRefs}],createdAt:y.startedAt??u,promptId:d}),A.state!=="running"&&a.push({id:`${A.frameId}:result`,sessionId:s,role:"tool",content:[{type:"toolResult",toolCallId:A.toolCallId,output:A.output??A.error??"",isError:A.state==="error"}],createdAt:y.endedAt??y.startedAt??u,promptId:d}));const g=e.durationMs??m5(u||void 0,c),v=a.findLastIndex(y=>y.role==="assistant");v>=0&&(g!==void 0||c!==void 0)&&(a[v]={...a[v],durationMs:g,endedAt:c??a[v].endedAt});for(const y of a)y.daemonTurnId=e.ordinal,y.daemonTurnState=e.state;return a}function oIe(e,t,n){const[i="",...o]=t.split(` -`),s=n?.state??"info";return{id:`task:${e}:${s}`,category:"task",type:`task.${s}`,sourceKind:n?.kind==="subagent"?"subagent":"background_task",sourceId:e,agentId:n?.agentId,title:i.trim(),severity:s==="completed"?"info":"warning",body:o.join(` -`).trim(),raw:t}}function sIe(e){if(e.createdAt!==""&&e.endedAt!=="")return e;const t={...e};return t.createdAt===""&&delete t.createdAt,t.endedAt===""&&delete t.endedAt,t}function O7(e){let t;for(const n of e){if(n===void 0)continue;const i=Date.parse(n);Number.isFinite(i)&&(t===void 0||i=0?n:void 0}const pO=6e3,Dg=256*1024,rIe=/^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/;function mO(e,t){return t===0?e:e-1}function aIe(e,t){const n=Kc(t),i=[];let o=0;for(const s of e){if(s.type==="hunk"){const r=rIe.exec(s.text);if(!r)return null;const a=mO(Number(r[1]),r[2]===void 0?1:Number(r[2])),l=mO(Number(r[3]),r[4]===void 0?1:Number(r[4]));if(ln.length)return null;for(;o=n.length||n[o]!==s.text)return null;o++,s.type==="context"&&i.push(s.text)}for(;oDg||Kc(n).length>pO)return null;const i=aIe(e,n);return i===null||i.length>Dg||Kc(i).length>pO?null:{before:i,after:n}}const uIe=new Set(["assistantDelta","agentDelta","toolOutput","taskProgress"]);function cIe(e){return uIe.has(e.type)}const dIe=50,fIe=100,z7=32*1024,hIe={requestFrame(e){return typeof requestAnimationFrame=="function"?requestAnimationFrame(e):null},cancelFrame(e){typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(e)},requestTask(e){return setTimeout(e,dIe)},cancelTask(e){clearTimeout(e)}};function pIe(e,t,n={}){const i=n.scheduler??hIe,o=Math.max(1,Math.floor(n.maxItemsPerSlice??fIe)),s=[];let r=0,a=null,l=null,u=0,c=!1;const d=()=>s.length-r,f=()=>{u+=1,a!==null&&(i.cancelFrame(a),a=null),l!==null&&(i.cancelTask(l),l=null)},h=()=>{r===s.length?(s.length=0,r=0):r>=1024&&(s.splice(0,r),r=0)};let m;const g=()=>{if(c||a!==null||l!==null||d()===0)return;const y=++u,A=()=>{y===u&&m()};a=i.requestFrame(A),l=i.requestTask(A)};m=()=>{f();let y=0;for(;!c&&y{if(!c){if(t(y)){const A=s.length>r?s.at(-1):void 0,b=A===void 0?void 0:n.coalesce?.(A,y);b===void 0?s.push(y):s[s.length-1]=b,g();return}if(d()===0){e(y);return}s.push(y),m()}});return v.flush=()=>{if(!c){for(f();!c&&r{if(c||d()===0)return;let A=r;for(let b=r;b{c||(c=!0,f(),s.length=0,r=0)},v}function $7(e){if(e.type==="assistantDelta"){if(e.delta.text!==void 0&&e.delta.thinking===void 0)return{kind:"text",value:e.delta.text};if(e.delta.thinking!==void 0&&e.delta.text===void 0)return{kind:"thinking",value:e.delta.thinking}}}function mIe(e){if(e.appEvent.type!=="assistantDelta")return[e];const t=e.appEvent,n=e.meta.stream,i=$7(t);if(n===void 0||i===void 0||n.kind!==i.kind||i.value.length<=z7)return[e];const o=[];let s=0;for(;ss&&/[\uD800-\uDBFF]/u.test(i.value[r-1])&&/[\uDC00-\uDFFF]/u.test(i.value[r])&&(r-=1);const a=i.value.slice(s,r);o.push({appEvent:{...t,delta:i.kind==="text"?{text:a}:{thinking:a}},meta:{...e.meta,stream:{...n,offset:n.offset+s}}}),s=r}return o}function gIe(e,t){if(e.appEvent.type!=="assistantDelta"||t.appEvent.type!=="assistantDelta")return;const n=e.meta.stream,i=t.meta.stream,o=$7(e.appEvent),s=$7(t.appEvent);if(n===void 0||i===void 0||o===void 0||s===void 0||e.meta.sessionId!==t.meta.sessionId||e.appEvent.sessionId!==t.appEvent.sessionId||e.appEvent.messageId!==t.appEvent.messageId||e.appEvent.contentIndex!==t.appEvent.contentIndex||n.turnId!==i.turnId||n.kind!==i.kind||o.kind!==s.kind||n.kind!==o.kind||i.kind!==s.kind||i.offset!==n.offset+o.value.length||o.value.length+s.value.length>z7)return;const r=o.value+s.value;return{appEvent:{...e.appEvent,delta:o.kind==="text"?{text:r}:{thinking:r}},meta:{...t.meta,stream:{...n}}}}function XK(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&t.type==="text").map(t=>t.text).join(""):""}function vIe(e){for(let t=e.items.length-1;t>=0;t--){const n=e.items[t];if(n.kind==="marker"){const i=n.at;if(typeof i=="string")return i;continue}if(n.kind==="turn"){let i;const o=s=>{typeof s=="string"&&(i===void 0||s>i)&&(i=s)};o(n.endedAt),o(n.startedAt);for(const s of n.steps)o(s.endedAt),o(s.startedAt);if(i!==void 0)return i}}}function AIe(e,t){if(t===void 0)return;const n=e.find(i=>i.kind==="turn"&&i.turnId===t);return n?.kind==="turn"?n.startedAt:void 0}function g1(e,t){const n=AIe(e,t?.["kimiWeb.anchorTurnId"]),i=t?.["kimiWeb.anchorPromptCreatedAt"];return typeof i=="string"&&(n===void 0||i>=n)?{at:i,exclusive:!0}:n!==void 0?{at:n,exclusive:!1}:void 0}function SI(e,t,n){const i=new Map,o=new Set(n??[]);for(const s of e){if(s.skills.length>0)continue;const r=t.find(a=>!o.has(a.promptId)&&a.status!=="queued"&&(s.floor===void 0||(s.floor.exclusive?a.createdAt>s.floor.at:a.createdAt>=s.floor.at))&&XK(a.content)===s.text);r!==void 0&&(o.add(r.promptId),i.set(s.id,r.promptId))}return i}function xI(e,t,n){const i=[];for(const r of t.items){if(r.kind!=="turn")continue;const a=Ku(r.origin.payload);a.length>0&&i.push({id:`turn:${r.turnId}`,text:r.prompt??"",attachmentCount:r.attachmentIds?.length??0,at:r.startedAt,skills:a})}const o=new Map,s=new Set(n??[]);for(const r of e){const a=i.find(l=>s.has(l.id)||r.floor!==void 0&&(l.at===void 0||(r.floor.exclusive?l.at<=r.floor.at:l.atr.kind==="turn"&&r.turnId===t);return t!==void 0&&s===-1?!1:e.slice(s+1).some(r=>{if(r.kind!=="marker"||r.marker!=="skill")return!1;if(o!==void 0){const l=r.at;if(typeof l!="string"||l<=o)return!1}const a=r.payload?.origin;return a?.kind==="skill_activation"&&a.skillName===n&&a.skillArgs===i})}function eZ(e,t,n,i,o){const s=t===void 0?-1:e.findIndex(r=>r.kind==="turn"&&r.turnId===t);return t!==void 0&&s===-1?!1:e.slice(s+1).some(r=>{if(r.kind!=="turn"||o?.terminalOnly===!0&&r.state==="running")return!1;const a=r.origin.payload??r.origin;return a.kind==="skill_activation"&&a.skillName===n&&a.skillArgs===i})}function _I(e,t,n){const i=new Map,o=new Set(n??[]);for(const s of e){const r=s.anchorTurnId===void 0?-1:t.findIndex(l=>l.kind==="turn"&&l.turnId===s.anchorTurnId);if(s.anchorTurnId!==void 0&&r===-1)continue;const a=t.slice(r+1).find(l=>{if(l.kind==="turn"){if(o.has(l.turnId))return!1;const u=l.origin.payload??l.origin;return u.kind==="skill_activation"&&u.skillName===s.skillName&&u.skillArgs===s.skillArgs}if(l.kind==="marker"&&l.marker==="skill"){if(o.has(l.markerId))return!1;if(s.promptFloor!==void 0){const c=l.at;if(typeof c!="string"||c<=s.promptFloor)return!1}const u=l.payload?.origin;return u?.kind==="skill_activation"&&u.skillName===s.skillName&&u.skillArgs===s.skillArgs}return!1});if(a!==void 0){const l=a.kind==="turn"?a.turnId:a.markerId;o.add(l),i.set(s.id,l)}}return i}function or(e){return Ku(e?.origin)}function j7(e,t){const n=or(e.metadata);if(n.length===0)return!1;const i=e.content.filter(u=>u.type==="text").map(u=>"text"in u?u.text:"").join(""),o=e.content.filter(u=>u.type!=="text").length,s=e.metadata?.["kimiWeb.promptId"];if(s!==void 0)return t.items.some(c=>c.kind==="turn"&&c.steps.some(d=>d.frames.some(f=>f.kind==="text"&&f.role==="user"&&(f.promptIds?.includes(s)??!1)&&wA(Ku(f.origin),n))))?!0:t.items.some(c=>c.kind==="turn"&&c.triggerPromptId===s&&(c.prompt??"")===i&&(c.attachmentIds?.length??0)===o&&wA(Ku(c.origin.payload),n));const r=e.metadata?.["kimiWeb.anchorTurnId"],a=r===void 0?-1:t.items.findIndex(u=>u.kind==="turn"&&u.turnId===r);return r!==void 0&&a===-1?!1:(a===-1?t.items:t.items.slice(a+1)).some(u=>u.kind==="turn"&&(u.prompt??"")===i&&(u.attachmentIds?.length??0)===o&&wA(Ku(u.origin.payload),n))}function kIe(e,t){const i=e.items.filter(h=>h.kind==="turn")[0]?.turnId,o=new Map(e.tasks.map(h=>[h.taskId,h])),s=new Map(e.prompts.map(h=>[h.promptId,h])),r=JK(e.prompts,wI(e.items)),a=h=>h.kind==="turn"?h.origin.payload??h.origin:void 0,l=new Set,u=bIe(e.items),c=e.items.flatMap((h,m)=>{if(h.kind==="turn"){const g=u.turnPart.get(m)??h,v=g.startedAt!==void 0||g.steps.some(y=>y.startedAt!==void 0);return gO(g,e.attachments,o,h.turnId===i&&!v&&e.hasMoreOlder!==!0?t.agentCreatedAt:void 0,void 0,t.sessionId,t.pendingInteractionAtByStepId,t.thinkingTiming,s,r)}if(h.kind==="marker"&&h.marker==="compaction"){const g=wIe(h.payload,h.at,t.sessionId,h.markerId,SIe(e.items,m));if(g===void 0)return[];const v=u.continuation.get(h.markerId);return v===void 0?[g]:[g,...gO(v,e.attachments,o,void 0,void 0,t.sessionId,t.pendingInteractionAtByStepId,t.thinkingTiming,s,r,!0,`:${h.markerId}`)]}if(h.kind==="marker"&&h.marker==="cron.fired"){const g=h.payload,v=g?.origin?.jobId,y=typeof g?.prompt=="string"?g.prompt:void 0,A=e.items.slice(m+1).find(w=>{if(w.kind!=="turn"||l.has(w.turnId))return!1;const _=a(w);return _?.kind==="cron_job"&&(v===void 0||_.jobId===v)&&(y===void 0||w.kind==="turn"&&bI(w.prompt??"")===y)});if(A!==void 0&&A.kind==="turn")return l.add(A.turnId),[];const b=CIe(h.payload,h.at,t.sessionId,h.markerId);return b===void 0?[]:[b]}return[]}),d=e.interactions.map(h=>Sm(h,t.sessionId)).filter(h=>h!==void 0),f=e.meta.activity==="turn";return AC(c,d,t.getFileUrl,f,t.planReviewByToolCallId??{},t.plansByToolCallId??{},{getSessionMediaUrl:t.getSessionMediaUrl}).map(EIe)}function bIe(e){const t=new Map,n=new Map;for(let i=0;i[]);let l=-1;for(const u of o.steps){for(;l+1=s[l+1].at;)l+=1;l<0?r.push(u):a[l].push(u)}if(r.length!==o.steps.length){t.set(i,{...o,steps:r,endedAt:r.at(-1)?.endedAt,durationMs:void 0});for(let u=0;ug.startedAt),i])??"",promptId:e.turnId,daemonTurnId:e.ordinal,daemonTurnState:e.state,metadata:{origin:f}}]:[],...CI(e,t,n,i,o,s,{includeOrigin:c!==!0,pendingInteractionAtByStepId:r,thinkingTiming:a,promptById:l,promptForTurn:u})]}function wIe(e,t,n,i,o){const s=e;if(s?.phase!=="completed")return;const r=s.result??{},a={trigger:o,tokensBefore:typeof r.tokensBefore=="number"?r.tokensBefore:void 0,tokensAfter:typeof r.tokensAfter=="number"?r.tokensAfter:void 0};return{id:i,sessionId:n,role:"assistant",content:typeof r.summary=="string"?[{type:"text",text:r.summary}]:[],createdAt:t??"",metadata:{origin:{kind:"compaction_summary"},[qW]:a}}}function CIe(e,t,n,i){const o=e,s=o?.origin;if(!(s?.kind!=="cron_job"||typeof o?.prompt!="string"))return{id:i,sessionId:n,role:"user",content:[{type:"text",text:o.prompt}],createdAt:t??"",metadata:{origin:s}}}function SIe(e,t){for(let n=t-1;n>=0;n--){const i=e[n];if(i?.kind!=="marker"||i.marker!=="compaction")continue;const o=i.payload;if(o?.phase==="started")return o.trigger==="manual"?"manual":"auto"}return"auto"}function Sm(e,t){if(e.interactionKind!=="approval"||e.state!=="pending")return;const n=e.request??{};if(typeof n.toolName!="string"||typeof n.action!="string")return;const i=typeof e.toolCallId=="string"?e.toolCallId:typeof n.toolCallId=="string"?n.toolCallId:void 0;if(i!==void 0)return{approvalId:e.interactionId,sessionId:t,turnId:typeof n.turnId=="number"?n.turnId:void 0,toolCallId:i,toolName:n.toolName,action:n.action,display:n.display,expiresAt:"",createdAt:""}}function rv(e,t){if(e.interactionKind!=="question"||e.state!=="pending")return;const n=e.request??{};if(!Array.isArray(n.questions))return;const i=typeof e.toolCallId=="string"?e.toolCallId:typeof n.toolCallId=="string"?n.toolCallId:typeof n.tool_call_id=="string"?n.tool_call_id:void 0;return{questionId:e.interactionId,sessionId:t,turnId:typeof n.turnId=="number"?n.turnId:typeof n.turn_id=="number"?n.turn_id:void 0,toolCallId:i,questions:n.questions.map(xIe),createdAt:""}}function xIe(e){const t=Array.isArray(e.options)?e.options:[];return{id:typeof e.id=="string"?e.id:"",question:typeof e.question=="string"?e.question:"",header:typeof e.header=="string"?e.header:void 0,body:typeof e.body=="string"?e.body:void 0,options:t.map(_Ie),multiSelect:e.multi_select===!0,allowOther:e.allow_other===!0,otherLabel:typeof e.other_label=="string"?e.other_label:void 0,otherDescription:typeof e.other_description=="string"?e.other_description:void 0}}function _Ie(e){const t=e??{};return{id:typeof t.id=="string"?t.id:"",label:typeof t.label=="string"?t.label:"",description:typeof t.description=="string"?t.description:void 0,recommended:t.recommended===!0||t.is_recommended===!0}}function EIe(e){if(e.createdAt!==""&&e.endedAt!=="")return e;const t={...e};return t.createdAt===""&&delete t.createdAt,t.endedAt===""&&delete t.endedAt,t}function IIe(){let e=null,t=null;function n(o){if(o===void 0)return[];const s=t;if(s!==null&&s.map===o&&s.entries.length===o.size){let l=0,u=!0;for(const[c,d]of o){const f=s.entries[l];if(f[0]!==c||f[1]!==d.startedAt||f[2]!==(d.settledAt??"")){u=!1;break}l++}if(u)return s.sorted}const r=[...o.entries()].map(([l,u])=>[l,u.startedAt,u.settledAt??""]),a=[...r].sort((l,u)=>l[0]u[0]?1:0);return t={map:o,entries:r,sorted:a},a}const i=(o,s)=>{const r=MIe(o,s,n);if(e!==null&&$m(o.items,e.items)&&vO(r,e.globals,!1))return e.out;const a=kIe(o,s);r.steered=[...wI(o.items)],r.promptMatch=DIe(o.items),r.cronPairs=NIe(o.items);const l=zIe(o,s),u=e?.slots,c=e?.items,d=e!==null&&vO(r,e.globals,!0),f=o.meta.activity==="turn",h=Array.from({length:a.length}),m=Array.from({length:a.length});let g=e!==null&&a.length===e.out.length;for(let y=0;yM.status==="running")===!0&&(b.flushBoundary=b.spanEnd{e=null,t=null},i}function MIe(e,t,n){return{prompts:e.prompts,interactions:e.interactions,tasks:e.tasks,attachments:e.attachments,meta:e.meta,hasMoreOlder:e.hasMoreOlder,sessionId:t.sessionId,agentCreatedAt:t.agentCreatedAt,pendingInteractionAtByStepId:t.pendingInteractionAtByStepId,getFileUrl:t.getFileUrl,getSessionMediaUrl:t.getSessionMediaUrl,plansByToolCallId:t.plansByToolCallId,planReview:TIe(t.planReviewByToolCallId),thinking:n(t.thinkingTiming),steered:[],promptMatch:[],cronPairs:[]}}function TIe(e){return e===void 0?[]:Object.entries(e).map(([t,n])=>[t,n.plan,n.path??""]).sort((t,n)=>t[0]n[0]?1:0)}function vO(e,t,n){return!$m(e.prompts,t.prompts)||!$m(e.interactions,t.interactions)||!$m(e.tasks,t.tasks)||!$m(e.attachments,t.attachments)||e.meta!==t.meta||e.hasMoreOlder!==t.hasMoreOlder||e.sessionId!==t.sessionId||e.agentCreatedAt!==t.agentCreatedAt||e.pendingInteractionAtByStepId!==t.pendingInteractionAtByStepId||e.getFileUrl!==t.getFileUrl||e.getSessionMediaUrl!==t.getSessionMediaUrl?!1:n?FIe(e.steered,t.steered)&&RIe(e.promptMatch,t.promptMatch)&&LIe(e.cronPairs,t.cronPairs):e.plansByToolCallId===t.plansByToolCallId&&BIe(e.planReview,t.planReview)&&tZ(e.thinking,t.thinking)}function $m(e,t){if(e.length!==t.length)return!1;for(let n=0;n`${typeof s}:${String(s)}`,o=(s,r,a)=>{let l=n.get(s);l===void 0&&(l={at:[],entry:[],head:0},n.set(s,l)),l.at.push(r),l.entry.push(a)};for(let s=0;s=h.at.length||(d===void 0||h.at[h.head]=0;g--){const v=n[g];if(v.kind!=="marker"||v.marker!=="compaction")continue;if(v.payload?.phase==="started")return v}}function f(m){const g=m.tools;if(g===void 0)return null;const v=g.filter(A=>A.name==="ExitPlanMode");if(v.length===0)return null;const y=[t.plansByToolCallId??null,t.planReviewByToolCallId??null];for(const A of v){const b=t.planReviewByToolCallId?.[A.id];y.push(A.id,t.plansByToolCallId?.[A.id]??null,b?.plan??null,b?.path??null)}return y}function h(m){if(m.role==="assistant"&&m.daemonTurnId!==void 0){const g=i.get(m.daemonTurnId);if(g!==void 0){const v=l(g.pos);return{out:m,src:g.item,srcPos:g.pos,spanEnd:v,triggerMarker:void 0,thinking:c(g.pos,v),plan:f(m)}}}if(m.role==="compaction"){const g=r.get(m.id);if(g!==void 0)return{out:m,src:g.item,srcPos:g.pos,spanEnd:g.pos+1,triggerMarker:d(g.pos),thinking:[],plan:null}}if(m.role==="user"){const g=UIe(m.id),v=(g!==void 0?o.get(g):void 0)??s.get(m.id);if(v!==void 0)return{out:m,src:v.item,srcPos:v.pos,spanEnd:l(v.pos),triggerMarker:void 0,thinking:[],plan:null}}return{out:m,src:null,srcPos:-1,spanEnd:-1,triggerMarker:void 0,thinking:[],plan:null}}return{attribute:h}}function $Ie(e){if(e.kind==="turn"){if(nZ(e))return e.triggerPromptId??e.turnId;if(!jIe(e))return e.triggerPromptId??e.turnId}}function nZ(e){for(const t of e.steps)for(const n of t.frames)if(n.kind==="tool"||n.kind==="thinking"&&n.text.length>0||n.kind==="text"&&n.role!=="user"&&(n.text.length>0||(n.attachmentIds??[]).length>0))return!0;return!1}function jIe(e){const n=e.origin.payload??e.origin;if(n?.kind==="system_trigger")return e.prompt===void 0&&n.name==="goal_continuation";if(n?.kind==="task"||n?.kind==="background_task"||n?.kind==="task_notification")return!0;for(const i of e.steps)for(const o of i.frames)if(o.kind==="text"&&o.role==="user"&&o.taskId!==void 0&&(o.text.length>0||(o.attachmentIds??[]).length>0))return!0;return!1}function HIe(e,t){if(e.kind!=="turn")return"none";let n=!1;const i=e.origin.payload??e.origin,o=i?.kind;if(e.prompt!==void 0&&e.prompt.length>0||(e.attachmentIds??[]).length>0||Ku(i).length>0)if(o==="task"||o==="background_task"||o==="task_notification")n=!0;else{const l=i?.trigger;if(!(o==="injection"||o==="skill_activation"&&l!=="user-slash"))return"flush"}else if(o==="system_trigger")return"flush";const r=e.triggerPromptId??e.turnId;for(const a of e.steps)for(const l of a.frames){if(l.kind==="text"&&l.role==="user"){if(l.taskId!==void 0){(l.text.length>0||(l.attachmentIds??[]).length>0)&&(n=!0);continue}if(l.text.length===0&&(l.attachmentIds??[]).length===0&&Ku(l.origin).length===0)continue;const u=l.origin;if(u?.kind==="injection"||u?.kind==="skill_activation"&&u.trigger!=="user-slash")continue;return n?"absorbed-flush":"flush"}if(t!==void 0&&r!==t&&(l.kind==="tool"||l.kind==="thinking"&&l.text.length>0||l.kind==="text"&&(l.text.length>0||(l.attachmentIds??[]).length>0)))return n?"absorbed-flush":"flush"}return"none"}function UIe(e){if(e.endsWith(":input"))return e.slice(0,-6);const t=e.indexOf(":origin");if(t>0)return e.slice(0,t)}function iZ(e){if(e instanceof Error)return typeof e.stack=="string"&&e.stack?e.stack:e.message?`${e.name}: ${e.message}`:e.name;if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean"||typeof e=="bigint")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function WIe(e){if(e instanceof Error)return{name:e.name,message:e.message};const t=e;return{name:typeof t?.name=="string"?t.name:void 0,message:typeof t?.message=="string"?t.message:void 0}}function QIe(e){return e instanceof Error&&typeof e.stack=="string"&&e.stack?e.stack:void 0}function VIe(e){if(!(typeof e!="number"||!Number.isFinite(e)))return new Date(e).toISOString()}function AO(e){if(!(typeof e!="number"||!Number.isFinite(e)))return`${Math.round(e)}ms`}function GIe(e,t,n){const i=ZIe(e),o=KIe(e),s=new Map(e.prompts.map(d=>[d.promptId,d])),r=n.filter(d=>{const f=d.metadata?.["kimiWeb.promptId"];if(f===void 0||o===void 0)return!0;const h=s.get(f)?.steeredAt;return h===void 0||h>=o}),a=e.prompts.filter(qIe).filter(d=>!i.has(d.promptId)).filter(d=>o===void 0||d.steeredAt>=o);if(a.length===0)return[...r];a.sort((d,f)=>d.steeredAtt)&&(t=n.startedAt);return t}function ZIe(e){const t=new Set;for(const n of e.items)if(n.kind==="turn"){for(const i of n.steps)for(const o of i.frames)if(!(o.kind!=="text"||o.role!=="user"))for(const s of o.promptIds??[])t.add(s)}return t}function YIe(e){return Array.isArray(e)?e.map(t=>dC(t)).filter(t=>t.type!=="text"||t.text.length>0):[]}function JIe(e){return e.startsWith("diff --git")||e.startsWith("index ")||e.startsWith("--- ")||e.startsWith("+++ ")||e.startsWith("new file mode")||e.startsWith("deleted file mode")||e.startsWith("old mode")||e.startsWith("new mode")||e.startsWith("similarity index")||e.startsWith("dissimilarity index")||e.startsWith("rename from")||e.startsWith("rename to")||e.startsWith("copy from")||e.startsWith("copy to")||e.startsWith("Binary files")}function XIe(e){const t=[];if(!e)return t;let n=0,i=0,o=!1;for(const s of e.split(` -`)){if(s.startsWith("diff --git")){o=!1;continue}if(!o&&JIe(s))continue;if(s.startsWith("@@")){const l=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/.exec(s);l&&(n=Number.parseInt(l[1],10),i=Number.parseInt(l[2],10)),o=!0,t.push({type:"hunk",text:s});continue}if(!o||s.startsWith("\\"))continue;const r=s.charAt(0),a=s.slice(1);r==="+"?(t.push({type:"add",text:a,newNo:i}),i+=1):r==="-"?(t.push({type:"del",text:a,oldNo:n}),n+=1):r===" "&&(t.push({type:"context",text:a,oldNo:n,newNo:i}),n+=1,i+=1)}return t}function yO(e){return e?e.split(` -`).map(t=>t.trimEnd()).filter(Boolean).at(-1)??"":""}function eMe(e){return e.suspendedReason||yO(e.text)||yO(e.outputLines?.join(` -`))||e.summary||""}function tMe(e){return e.suspendedReason?e.suspendedReason:e.text?e.text:e.outputLines&&e.outputLines.length>0?e.outputLines.join(` -`):e.summary??""}function nMe(e){return e==="completed"?"completed":e==="failed"?"failed":e==="aborted"?"cancelled":"working"}function kO(e,t){return{id:e.agentId??e.item??`result-${t}`,agentId:e.agentId,name:e.item??`subagent ${t+1}`,activity:e.body.split(` -`)[0]??"",phase:nMe(e.outcome),body:e.body}}function iMe(e,t){return!!(t.agentId&&e.agentId===t.agentId||t.item&&e.name.includes(t.item))}function oMe(e,t){const n=e.map(o=>({id:o.id,agentId:o.agentId,name:o.name,activity:eMe(o),phase:o.phase,body:tMe(o)}));if(!t)return n;const i=t.subagents.filter(o=>(o.outcome==="aborted"||o.state==="not_started")&&!e.some(s=>iMe(s,o))).map((o,s)=>kO(o,s));return n.length>0?[...n,...i]:t.subagents.map((o,s)=>kO(o,s))}const sMe=["queued","working","suspended","completed","failed","cancelled"];function oZ(e){return e.status==="completed"?"completed":e.status==="failed"?"failed":e.status==="cancelled"?"cancelled":e.subagentPhase?e.subagentPhase:"working"}function rMe(){return{queued:0,working:0,suspended:0,completed:0,failed:0,cancelled:0}}function aMe(e){const t=new Map;for(const n of e){if(n.kind!=="subagent"||n.swarmIndex===void 0)continue;const i=n.parentToolCallId??"swarm",o=t.get(i)??[];o.push({id:n.id,agentId:n.agentId,name:n.description,subagentType:n.subagentType,model:n.model,thinkingEffort:n.thinkingEffort,phase:oZ(n),summary:n.outputPreview,outputLines:n.outputLines,text:n.text,suspendedReason:n.suspendedReason,swarmIndex:n.swarmIndex}),t.set(i,o)}return[...t.entries()].map(([n,i])=>{const o=i.toSorted((r,a)=>r.swarmIndex-a.swarmIndex||r.id.localeCompare(a.id)),s=rMe();for(const r of o)s[r.phase]++;return{id:n,members:o,counts:s}}).filter(n=>n.members.length>1).toSorted((n,i)=>{const o=n.members.at(0)?.swarmIndex??0,s=i.members.at(0)?.swarmIndex??0;return o!==s?o-s:n.id.localeCompare(i.id)})}function lMe(e){let t=0,n=0;for(const i of e){n+=i.members.length;for(const o of sMe)(o==="completed"||o==="failed"||o==="cancelled")&&(t+=i.counts[o])}return{done:t,total:n}}function uMe(e){const t=new Map;for(const n of e){if(n.kind!=="subagent"||!n.parentToolCallId)continue;const i=t.get(n.parentToolCallId)??[];i.push({id:n.id,agentId:n.agentId,name:n.description,subagentType:n.subagentType,model:n.model,thinkingEffort:n.thinkingEffort,phase:oZ(n),summary:n.outputPreview,outputLines:n.outputLines,text:n.text,suspendedReason:n.suspendedReason,swarmIndex:n.swarmIndex??Number.MAX_SAFE_INTEGER}),t.set(n.parentToolCallId,i)}for(const[n,i]of t)t.set(n,i.toSorted((o,s)=>o.swarmIndex-s.swarmIndex||o.id.localeCompare(s.id)));return t}function EI(e){const t=e.trim();if(!t.startsWith("{"))return null;try{const n=JSON.parse(t);return n&&typeof n=="object"&&!Array.isArray(n)?n:null}catch{return null}}function sZ(e){for(const t of["path","file_path","filePath","filename"]){const n=e[t];if(typeof n=="string"&&n.length>0)return n}}const Dv=100*1024;function cMe(e){const t=Tr(e.name);if(t!=="edit"&&t!=="multi_edit")return null;const n=EI(e.arg);if(!n)return null;if(t==="edit"){if(n.replace_all===!0)return null;const a=typeof n.old_string=="string"?n.old_string:void 0,l=typeof n.new_string=="string"?n.new_string:void 0;return a===void 0||l===void 0||a.length>Dv||l.length>Dv?null:Fw(a,l)}const i=Array.isArray(n.edits)?n.edits:void 0;if(!i||i.length===0)return null;const o=[];let s=0,r=0;for(const a of i){if(!a||typeof a!="object")return null;const l=a;if(l.replace_all===!0)return null;const u=typeof l.old_string=="string"?l.old_string:void 0,c=typeof l.new_string=="string"?l.new_string:void 0;if(u===void 0||c===void 0||u.length>Dv||c.length>Dv)return null;const d=Fw(u,c);if(d===null)return null;o.length>0&&o.push({type:"hunk",text:"···"});for(const f of d)o.push({...f,oldNo:f.oldNo!==void 0?f.oldNo+s:void 0,newNo:f.newNo!==void 0?f.newNo+r:void 0});s+=Kc(u).length,r+=Kc(c).length}return o}const dMe=5e3;function fMe(e){if(Tr(e.name)!=="write")return null;const t=EI(e.arg);return!t||typeof t.content!="string"||t.content.length>Dv||t.content.split(` -`).length>dMe?null:{content:t.content,path:sZ(t)}}function hMe(e){const t=EI(e.arg);return t?sZ(t):void 0}function pMe(e){switch(e){case"running":return"running";case"completed":return"completed";case"killed":return"cancelled";default:return"failed"}}function mMe(e,t){return t==="running"?e.stateReason!==void 0?"suspended":"working":t}function gMe(e){return e==="subagent"?"subagent":e==="shell"?"bash":"tool"}function vMe(e){return rZ(e).parents}function rZ(e){const t=new Map,n=new Map;for(const i of e.items)if(i.kind==="turn")for(const o of i.steps)for(const s of o.frames)s.kind!=="tool"||s.agentRefs===void 0||s.agentRefs.forEach((r,a)=>{t.set(r.agentId,s.toolCallId),n.set(r.agentId,a)});return{parents:t,swarmIndexes:n}}function AMe(e,t,n){const i=rZ(e);let o=i.parents,s=i.swarmIndexes;if(n!==void 0){for(const[u,c]of i.parents)n.parents.set(u,c);for(const[u,c]of i.swarmIndexes)n.swarmIndexes.set(u,c);o=n.parents,s=n.swarmIndexes}const r=e.tasks.map(u=>{const c=pMe(u.state);return{id:u.taskId,agentId:u.agentId,sessionId:t,kind:gMe(u.kind),description:u.description??"",status:c,createdAt:u.startedAt??"",startedAt:u.startedAt,completedAt:u.endedAt,outputPreview:u.outputTail.length>0?u.outputTail:void 0,text:u.resultSummary,subagentPhase:u.kind==="subagent"?mMe(u,c):void 0,suspendedReason:c==="running"?u.stateReason:void 0,model:u.model,thinkingEffort:u.thinkingEffort,runInBackground:u.detached,parentToolCallId:u.agentId!==void 0?o.get(u.agentId):void 0,swarmIndex:u.agentId!==void 0?s.get(u.agentId):void 0}}),a=new Map;r.forEach((u,c)=>{u.agentId!==void 0&&u.id===u.agentId&&a.set(u.agentId,c)});const l=new Set;return r.forEach((u,c)=>{if(u.agentId===void 0||u.id===u.agentId)return;const d=a.get(u.agentId);if(d===void 0)return;const f=r[d],h=u.completedAt!==void 0&&f.startedAt!==void 0&&u.completedAt>=f.startedAt,m=f.status==="running"&&u.status!=="running"&&h;r[d]={...f,backgroundTaskId:u.status==="running"||h?u.id:void 0,status:m?u.status:f.status,subagentPhase:m?u.status==="completed"?"completed":u.status==="cancelled"?"cancelled":"failed":f.subagentPhase,description:f.description.length>0?f.description:u.description,model:f.model??u.model,thinkingEffort:f.thinkingEffort??u.thinkingEffort,completedAt:h?u.completedAt??f.completedAt:f.completedAt,outputPreview:h?f.outputPreview??u.outputPreview:f.outputPreview,text:h?f.text??u.text:f.text},l.add(c)}),r.filter((u,c)=>!l.has(c))}function yMe(){let e=[],t=null,n=null,i=null,o,s,r=!0;const a=new WeakMap,l=u=>{const{messages:c,approvals:d}=u,f=u.sessionActive??!0,h=u.planReviewByToolCallId??{},m=u.plansByToolCallId??{},g=(C,S)=>a.set(C,S);let v=n!==null;if(v){const C=n,S=Object.keys(h);v=S.length===Object.keys(C).length&&S.every(I=>h[I]===C[I])}let y=i!==null;if(y){const C=i,S=Object.keys(m);y=S.length===Object.keys(C).length&&S.every(I=>m[I]===C[I])}const A=e.length>0&&d===t&&v&&y&&u.getFileUrl===o&&u.getSessionMediaUrl===s;let b=0,w=0,_=1;if(A){let C=-1;for(let S=e.length-1;S>=0;S--)if(e[S].role==="assistant"){C=S;break}for(let S=0;S0?[...e.slice(0,b),...M]:M;return e=B,t=d,n={...h},i={...m},o=u.getFileUrl,s=u.getSessionMediaUrl,r=f,B};return l.reset=()=>{e=[],t=null,n=null,i=null,o=void 0,r=!0},l}function kMe(e){const t=new Map;let n=0;for(let i=e.length-1;i>=0;i--){const o=e[i];if(o.role==="compaction"||o.goalContinuation===!0)break;o.role==="user"&&o.hasUndoAnchor!==!1&&(n++,t.set(o.id,n))}return t}const aZ=["light","dark","system"],bMe=["small","medium","large","xlarge"],g5="medium",lZ="kimi-web.color-scheme",H7="kimi-web.font-scale",bO="kimi-web.ui-font-size";function U7(e){try{return globalThis.localStorage.getItem(e)}catch{return null}}function II(e,t){try{globalThis.localStorage.setItem(e,t)}catch{}}function wMe(e){try{globalThis.localStorage.removeItem(e)}catch{}}function CMe(){const e=U7(lZ);return e&&aZ.includes(e)?e:"system"}const Lk={light:"#ffffff",dark:"#121212"};function SMe(e){if(typeof document>"u"||!document.documentElement)return;document.documentElement.dataset.colorScheme=e;const t=document.querySelectorAll('meta[name="theme-color"]');if(t.length===0)return;const n=e==="dark"?Lk.dark:e==="light"?Lk.light:null;t.forEach(i=>{const s=(i.getAttribute("media")??"").includes("dark")?Lk.dark:Lk.light;i.setAttribute("content",n??s)})}function uZ(e){return bMe.includes(e)}function xMe(e){return e<=13?"small":e<=15?"medium":e<=17?"large":"xlarge"}function _Me(){const e=U7(H7);if(e==="xxlarge")return"xlarge";if(e!==null)return uZ(e)?e:g5;const t=U7(bO);if(t===null)return g5;const n=Number(t),i=Number.isFinite(n)?xMe(n):g5;return II(H7,i),wMe(bO),i}function EMe(e){typeof document>"u"||!document.documentElement||(document.documentElement.dataset.fontScale=e)}const MI=V(CMe()),TI=V(_Me());let wO=!1;function IMe(){wO||(wO=!0,$e(MI,SMe,{immediate:!0}),$e(TI,EMe,{immediate:!0}))}function MMe(e){aZ.includes(e)&&(MI.value=e,II(lZ,e))}function TMe(e){uZ(e)&&(TI.value=e,II(H7,e))}function s0(){return IMe(),{colorScheme:MI,fontScale:TI,setColorScheme:MMe,setFontScale:TMe}}const Pk=V(!1);let CO=!1;function v5(){const e=document.documentElement.dataset.colorScheme;return e==="dark"?!0:e==="light"?!1:window.matchMedia("(prefers-color-scheme: dark)").matches}function yC(){return!CO&&typeof window<"u"&&typeof document<"u"&&(CO=!0,Pk.value=v5(),new MutationObserver(()=>{Pk.value=v5()}).observe(document.documentElement,{attributes:!0,attributeFilter:["data-color-scheme"]}),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{Pk.value=v5()})),Pk}const cZ="kimi-web.sidebar-multi-tab";function BMe(e){try{return globalThis.localStorage.getItem(e)}catch{return null}}function FMe(e,t){try{globalThis.localStorage.setItem(e,t)}catch{}}function RMe(){return BMe(cZ)==="1"}const dZ=V(RMe());function DMe(e){dZ.value=e,FMe(cZ,e?"1":"0")}function R1(){return{sidebarTabs:dZ,setSidebarTabs:DMe}}function CA(e){let t="";for(const n of e)n.codePointAt(0)>127||/[A-Za-z0-9\-._~]/.test(n)?t+=n:t+=`%${n.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`;return t}function NMe(e){const t=e.split("/").map(CA).join("/");return t.startsWith("//")?`/%2F${t.slice(2)}`:t}function BI(e){return e.replace(/%/g,"%25").replace(/&/g,"%26").replace(//g,"%3E").replace(/([\\[\]])/g,"\\$1").replace(/\n/g,"%0A").replace(/\r/g,"%0D")}function SO(e){return e.replace(/\\([\\[\]])/g,"$1").replace(/%0A/g,` -`).replace(/%0D/g,"\r").replace(/%26/g,"&").replace(/%3C/g,"<").replace(/%3E/g,">").replace(/%25/g,"%")}function LMe(e){return e.replace(/%0A/g,` -`).replace(/%0D/g,"\r").replace(/%26/g,"&").replace(/%3C/g,"<").replace(/%3E/g,">").replace(/%25/g,"%")}function PMe(e,t){const n=t?e.replace(/\\([\\<>])/g,"$1"):e.replace(/\\([\\()])/g,"$1");return SA(n)}function SA(e){try{return decodeURIComponent(e)}catch{return e}}let xO;function W7(e){return xO??=new Intl.Segmenter("und",{granularity:"grapheme"}),[...xO.segment(e)].map(t=>t.segment)}function fZ(e,t){const n=W7(e);return n.length<=t?e:`${n.slice(0,t-1).join("")}…`}const Rw="kimi-code://skill/";function FI(e){return e?e.startsWith(Rw)&&e.length>Rw.length?"skill":e.startsWith("#")||e.startsWith("?")||e.startsWith("//")||/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(e)&&!/^[a-zA-Z]:(?:[\\/]|%5c)/i.test(e)?null:e.endsWith("/")||e.endsWith("\\")||/%5c$/i.test(e)?"folder":"file":null}function jm(e){const t=e.search(/[#?]/);return t>0?e.slice(0,t):e}function hZ(e){const t=e.slice(Rw.length);return SA(t)}function D1(e){const t=BI(e.name);if(e.kind==="skill")return`[${t}](${Rw}${CA(e.name)})`;const n=e.kind==="folder"&&!e.path.endsWith("/")&&!e.path.endsWith("\\")?`${e.path}/`:e.path;return`[${t}](${NMe(n)})`}const V9="kimi-code-composer://attachments/";function kh(e){return`[${BI(e.name)}](${V9}${e.attId})`}const Rd="kimi-code-composer://quote/",OMe=12;function Ng(e){const t=e.split(` -`).map(i=>i.trim()).find(i=>i.length>0)??"",n=fZ(t,OMe);return n.length>0?n:"…"}function kC(e){const t=e.source!==void 0&&e.source.length>0?`?source=${CA(e.source)}`:"",n=e.comment!==void 0&&e.comment.length>0?`?comment=${CA(e.comment)}`:"";return`[${BI(Ng(e.text))}](${Rd}${CA(e.text)}${t}${n})`}function pZ(e){const t=e.indexOf("?source="),n=e.indexOf("?comment="),i=[t,n].filter(s=>s>=0).sort((s,r)=>s-r)[0]??-1,o={text:SA(i===-1?e:e.slice(0,i))};if(t>=0){const s=n>t?n:e.length;o.source=SA(e.slice(t+8,s))}if(n>=0){const s=t>n?t:e.length;o.comment=SA(e.slice(n+9,s))}return o}const _O=document.createElement("i");function zMe(e){const t="&"+e+";";_O.innerHTML=t;const n=_O.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function Zc(e,t,n,i){const o=e.length;let s=0,r;if(t<0?t=-t>o?0:o+t:t=t>o?o:t,n=n>0?n:0,i.length<1e4)r=Array.from(i),r.unshift(t,n),e.splice(...r);else for(n&&e.splice(t,n);s0?(Zc(e,e.length,0,t),e):t}const EO={}.hasOwnProperty;function $Me(e){const t={};let n=-1;for(;++n-1&&e.test(String.fromCharCode(n))}}function co(e,t,n,i){const o=i?i-1:Number.POSITIVE_INFINITY;let s=0;return r;function r(l){return Ti(l)?(e.enter(n),a(l)):t(l)}function a(l){return Ti(l)&&s++r))return;const B=t.events.length;let C=B,S,I;for(;C--;)if(t.events[C][0]==="exit"&&t.events[C][1].type==="chunkFlow"){if(S){I=t.events[C][1].end;break}S=!0}for(y(i),M=B;Mb;){const _=n[w];t.containerState=_[1],_[0].exit.call(t,e)}n.length=b}function A(){o.write([null]),s=void 0,o=void 0,t.containerState._closeFlow=void 0}}function JMe(e,t,n){return co(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function MO(e){if(e===null||Qa(e)||GMe(e))return 1;if(VMe(e))return 2}function DI(e,t,n){const i=[];let o=-1;for(;++o1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const d={...e[i][1].end},f={...e[n][1].start};TO(d,-l),TO(f,l),r={type:l>1?"strongSequence":"emphasisSequence",start:d,end:{...e[i][1].end}},a={type:l>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:f},s={type:l>1?"strongText":"emphasisText",start:{...e[i][1].end},end:{...e[n][1].start}},o={type:l>1?"strong":"emphasis",start:{...r.start},end:{...a.end}},e[i][1].end={...r.start},e[n][1].start={...a.end},u=[],e[i][1].end.offset-e[i][1].start.offset&&(u=eu(u,[["enter",e[i][1],t],["exit",e[i][1],t]])),u=eu(u,[["enter",o,t],["enter",r,t],["exit",r,t],["enter",s,t]]),u=eu(u,DI(t.parser.constructs.insideSpan.null,e.slice(i+1,n),t)),u=eu(u,[["exit",s,t],["enter",a,t],["exit",a,t],["exit",o,t]]),e[n][1].end.offset-e[n][1].start.offset?(c=2,u=eu(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):c=0,Zc(e,i-1,n-i+3,u),n=i+u.length-c-2;break}}for(n=-1;++n0&&Ti(M)?co(e,A,"linePrefix",s+1)(M):A(M)}function A(M){return M===null||Qn(M)?e.check(BO,g,w)(M):(e.enter("codeFlowValue"),b(M))}function b(M){return M===null||Qn(M)?(e.exit("codeFlowValue"),A(M)):(e.consume(M),b)}function w(M){return e.exit("codeFenced"),t(M)}function _(M,B,C){let S=0;return I;function I(z){return M.enter("lineEnding"),M.consume(z),M.exit("lineEnding"),F}function F(z){return M.enter("codeFencedFence"),Ti(z)?co(M,E,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(z):E(z)}function E(z){return z===a?(M.enter("codeFencedFenceSequence"),D(z)):C(z)}function D(z){return z===a?(S++,M.consume(z),D):S>=r?(M.exit("codeFencedFenceSequence"),Ti(z)?co(M,j,"whitespace")(z):j(z)):C(z)}function j(z){return z===null||Qn(z)?(M.exit("codeFencedFence"),B(z)):C(z)}}}function cTe(e,t,n){const i=this;return o;function o(r){return r===null?n(r):(e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),s)}function s(r){return i.parser.lazy[i.now().line]?n(r):t(r)}}const A5={name:"codeIndented",tokenize:fTe},dTe={partial:!0,tokenize:hTe};function fTe(e,t,n){const i=this;return o;function o(u){return e.enter("codeIndented"),co(e,s,"linePrefix",5)(u)}function s(u){const c=i.events[i.events.length-1];return c&&c[1].type==="linePrefix"&&c[2].sliceSerialize(c[1],!0).length>=4?r(u):n(u)}function r(u){return u===null?l(u):Qn(u)?e.attempt(dTe,r,l)(u):(e.enter("codeFlowValue"),a(u))}function a(u){return u===null||Qn(u)?(e.exit("codeFlowValue"),r(u)):(e.consume(u),a)}function l(u){return e.exit("codeIndented"),t(u)}}function hTe(e,t,n){const i=this;return o;function o(r){return i.parser.lazy[i.now().line]?n(r):Qn(r)?(e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),o):co(e,s,"linePrefix",5)(r)}function s(r){const a=i.events[i.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?t(r):Qn(r)?o(r):n(r)}}const pTe={name:"codeText",previous:gTe,resolve:mTe,tokenize:vTe};function mTe(e){let t=e.length-4,n=3,i,o;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(i=n;++i=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-i+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-i+this.left.length).reverse())}splice(t,n,i){const o=n||0;this.setCursor(Math.trunc(t));const s=this.right.splice(this.right.length-o,Number.POSITIVE_INFINITY);return i&&av(this.left,i),s.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),av(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),av(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(r):e.interrupt(i.parser.constructs.flow,n,t)(r)}}function yZ(e,t,n,i,o,s,r,a,l){const u=l||Number.POSITIVE_INFINITY;let c=0;return d;function d(y){return y===60?(e.enter(i),e.enter(o),e.enter(s),e.consume(y),e.exit(s),f):y===null||y===32||y===41||Q7(y)?n(y):(e.enter(i),e.enter(r),e.enter(a),e.enter("chunkString",{contentType:"string"}),g(y))}function f(y){return y===62?(e.enter(s),e.consume(y),e.exit(s),e.exit(o),e.exit(i),t):(e.enter(a),e.enter("chunkString",{contentType:"string"}),h(y))}function h(y){return y===62?(e.exit("chunkString"),e.exit(a),f(y)):y===null||y===60||Qn(y)?n(y):(e.consume(y),y===92?m:h)}function m(y){return y===60||y===62||y===92?(e.consume(y),h):h(y)}function g(y){return!c&&(y===null||y===41||Qa(y))?(e.exit("chunkString"),e.exit(a),e.exit(r),e.exit(i),t(y)):c999||h===null||h===91||h===93&&!l||h===94&&!a&&"_hiddenFootnoteSupport"in r.parser.constructs?n(h):h===93?(e.exit(s),e.enter(o),e.consume(h),e.exit(o),e.exit(i),t):Qn(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),d(h))}function d(h){return h===null||h===91||h===93||Qn(h)||a++>999?(e.exit("chunkString"),c(h)):(e.consume(h),l||(l=!Ti(h)),h===92?f:d)}function f(h){return h===91||h===92||h===93?(e.consume(h),a++,d):d(h)}}function bZ(e,t,n,i,o,s){let r;return a;function a(f){return f===34||f===39||f===40?(e.enter(i),e.enter(o),e.consume(f),e.exit(o),r=f===40?41:f,l):n(f)}function l(f){return f===r?(e.enter(o),e.consume(f),e.exit(o),e.exit(i),t):(e.enter(s),u(f))}function u(f){return f===r?(e.exit(s),l(r)):f===null?n(f):Qn(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),co(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(f))}function c(f){return f===r||f===null||Qn(f)?(e.exit("chunkString"),u(f)):(e.consume(f),f===92?d:c)}function d(f){return f===r||f===92?(e.consume(f),c):c(f)}}function xA(e,t){let n;return i;function i(o){return Qn(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),n=!0,i):Ti(o)?co(e,i,n?"linePrefix":"lineSuffix")(o):t(o)}}const xTe={name:"definition",tokenize:ETe},_Te={partial:!0,tokenize:ITe};function ETe(e,t,n){const i=this;let o;return s;function s(h){return e.enter("definition"),r(h)}function r(h){return kZ.call(i,e,a,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function a(h){return o=RI(i.sliceSerialize(i.events[i.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),l):n(h)}function l(h){return Qa(h)?xA(e,u)(h):u(h)}function u(h){return yZ(e,c,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function c(h){return e.attempt(_Te,d,d)(h)}function d(h){return Ti(h)?co(e,f,"whitespace")(h):f(h)}function f(h){return h===null||Qn(h)?(e.exit("definition"),i.parser.defined.push(o),t(h)):n(h)}}function ITe(e,t,n){return i;function i(a){return Qa(a)?xA(e,o)(a):n(a)}function o(a){return bZ(e,s,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function s(a){return Ti(a)?co(e,r,"whitespace")(a):r(a)}function r(a){return a===null||Qn(a)?t(a):n(a)}}const MTe={name:"hardBreakEscape",tokenize:TTe};function TTe(e,t,n){return i;function i(s){return e.enter("hardBreakEscape"),e.consume(s),o}function o(s){return Qn(s)?(e.exit("hardBreakEscape"),t(s)):n(s)}}const BTe={name:"headingAtx",resolve:FTe,tokenize:RTe};function FTe(e,t){let n=e.length-2,i=3,o,s;return e[i][1].type==="whitespace"&&(i+=2),n-2>i&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(i===n-1||n-4>i&&e[n-2][1].type==="whitespace")&&(n-=i+1===n?2:4),n>i&&(o={type:"atxHeadingText",start:e[i][1].start,end:e[n][1].end},s={type:"chunkText",start:e[i][1].start,end:e[n][1].end,contentType:"text"},Zc(e,i,n-i+1,[["enter",o,t],["enter",s,t],["exit",s,t],["exit",o,t]])),e}function RTe(e,t,n){let i=0;return o;function o(c){return e.enter("atxHeading"),s(c)}function s(c){return e.enter("atxHeadingSequence"),r(c)}function r(c){return c===35&&i++<6?(e.consume(c),r):c===null||Qa(c)?(e.exit("atxHeadingSequence"),a(c)):n(c)}function a(c){return c===35?(e.enter("atxHeadingSequence"),l(c)):c===null||Qn(c)?(e.exit("atxHeading"),t(c)):Ti(c)?co(e,a,"whitespace")(c):(e.enter("atxHeadingText"),u(c))}function l(c){return c===35?(e.consume(c),l):(e.exit("atxHeadingSequence"),a(c))}function u(c){return c===null||c===35||Qa(c)?(e.exit("atxHeadingText"),a(c)):(e.consume(c),u)}}const DTe=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],RO=["pre","script","style","textarea"],NTe={concrete:!0,name:"htmlFlow",resolveTo:OTe,tokenize:zTe},LTe={partial:!0,tokenize:jTe},PTe={partial:!0,tokenize:$Te};function OTe(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function zTe(e,t,n){const i=this;let o,s,r,a,l;return u;function u(W){return c(W)}function c(W){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(W),d}function d(W){return W===33?(e.consume(W),f):W===47?(e.consume(W),s=!0,g):W===63?(e.consume(W),o=3,i.interrupt?t:O):Dc(W)?(e.consume(W),r=String.fromCharCode(W),v):n(W)}function f(W){return W===45?(e.consume(W),o=2,h):W===91?(e.consume(W),o=5,a=0,m):Dc(W)?(e.consume(W),o=4,i.interrupt?t:O):n(W)}function h(W){return W===45?(e.consume(W),i.interrupt?t:O):n(W)}function m(W){const Z="CDATA[";return W===Z.charCodeAt(a++)?(e.consume(W),a===Z.length?i.interrupt?t:E:m):n(W)}function g(W){return Dc(W)?(e.consume(W),r=String.fromCharCode(W),v):n(W)}function v(W){if(W===null||W===47||W===62||Qa(W)){const Z=W===47,ee=r.toLowerCase();return!Z&&!s&&RO.includes(ee)?(o=1,i.interrupt?t(W):E(W)):DTe.includes(r.toLowerCase())?(o=6,Z?(e.consume(W),y):i.interrupt?t(W):E(W)):(o=7,i.interrupt&&!i.parser.lazy[i.now().line]?n(W):s?A(W):b(W))}return W===45||Wu(W)?(e.consume(W),r+=String.fromCharCode(W),v):n(W)}function y(W){return W===62?(e.consume(W),i.interrupt?t:E):n(W)}function A(W){return Ti(W)?(e.consume(W),A):I(W)}function b(W){return W===47?(e.consume(W),I):W===58||W===95||Dc(W)?(e.consume(W),w):Ti(W)?(e.consume(W),b):I(W)}function w(W){return W===45||W===46||W===58||W===95||Wu(W)?(e.consume(W),w):_(W)}function _(W){return W===61?(e.consume(W),M):Ti(W)?(e.consume(W),_):b(W)}function M(W){return W===null||W===60||W===61||W===62||W===96?n(W):W===34||W===39?(e.consume(W),l=W,B):Ti(W)?(e.consume(W),M):C(W)}function B(W){return W===l?(e.consume(W),l=null,S):W===null||Qn(W)?n(W):(e.consume(W),B)}function C(W){return W===null||W===34||W===39||W===47||W===60||W===61||W===62||W===96||Qa(W)?_(W):(e.consume(W),C)}function S(W){return W===47||W===62||Ti(W)?b(W):n(W)}function I(W){return W===62?(e.consume(W),F):n(W)}function F(W){return W===null||Qn(W)?E(W):Ti(W)?(e.consume(W),F):n(W)}function E(W){return W===45&&o===2?(e.consume(W),T):W===60&&o===1?(e.consume(W),N):W===62&&o===4?(e.consume(W),Q):W===63&&o===3?(e.consume(W),O):W===93&&o===5?(e.consume(W),H):Qn(W)&&(o===6||o===7)?(e.exit("htmlFlowData"),e.check(LTe,Y,D)(W)):W===null||Qn(W)?(e.exit("htmlFlowData"),D(W)):(e.consume(W),E)}function D(W){return e.check(PTe,j,Y)(W)}function j(W){return e.enter("lineEnding"),e.consume(W),e.exit("lineEnding"),z}function z(W){return W===null||Qn(W)?D(W):(e.enter("htmlFlowData"),E(W))}function T(W){return W===45?(e.consume(W),O):E(W)}function N(W){return W===47?(e.consume(W),r="",L):E(W)}function L(W){if(W===62){const Z=r.toLowerCase();return RO.includes(Z)?(e.consume(W),Q):E(W)}return Dc(W)&&r.length<8?(e.consume(W),r+=String.fromCharCode(W),L):E(W)}function H(W){return W===93?(e.consume(W),O):E(W)}function O(W){return W===62?(e.consume(W),Q):W===45&&o===2?(e.consume(W),O):E(W)}function Q(W){return W===null||Qn(W)?(e.exit("htmlFlowData"),Y(W)):(e.consume(W),Q)}function Y(W){return e.exit("htmlFlow"),t(W)}}function $Te(e,t,n){const i=this;return o;function o(r){return Qn(r)?(e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),s):n(r)}function s(r){return i.parser.lazy[i.now().line]?n(r):t(r)}}function jTe(e,t,n){return i;function i(o){return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),e.attempt(bC,t,n)}}const HTe={name:"htmlText",tokenize:UTe};function UTe(e,t,n){const i=this;let o,s,r;return a;function a(O){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(O),l}function l(O){return O===33?(e.consume(O),u):O===47?(e.consume(O),_):O===63?(e.consume(O),b):Dc(O)?(e.consume(O),C):n(O)}function u(O){return O===45?(e.consume(O),c):O===91?(e.consume(O),s=0,m):Dc(O)?(e.consume(O),A):n(O)}function c(O){return O===45?(e.consume(O),h):n(O)}function d(O){return O===null?n(O):O===45?(e.consume(O),f):Qn(O)?(r=d,N(O)):(e.consume(O),d)}function f(O){return O===45?(e.consume(O),h):d(O)}function h(O){return O===62?T(O):O===45?f(O):d(O)}function m(O){const Q="CDATA[";return O===Q.charCodeAt(s++)?(e.consume(O),s===Q.length?g:m):n(O)}function g(O){return O===null?n(O):O===93?(e.consume(O),v):Qn(O)?(r=g,N(O)):(e.consume(O),g)}function v(O){return O===93?(e.consume(O),y):g(O)}function y(O){return O===62?T(O):O===93?(e.consume(O),y):g(O)}function A(O){return O===null||O===62?T(O):Qn(O)?(r=A,N(O)):(e.consume(O),A)}function b(O){return O===null?n(O):O===63?(e.consume(O),w):Qn(O)?(r=b,N(O)):(e.consume(O),b)}function w(O){return O===62?T(O):b(O)}function _(O){return Dc(O)?(e.consume(O),M):n(O)}function M(O){return O===45||Wu(O)?(e.consume(O),M):B(O)}function B(O){return Qn(O)?(r=B,N(O)):Ti(O)?(e.consume(O),B):T(O)}function C(O){return O===45||Wu(O)?(e.consume(O),C):O===47||O===62||Qa(O)?S(O):n(O)}function S(O){return O===47?(e.consume(O),T):O===58||O===95||Dc(O)?(e.consume(O),I):Qn(O)?(r=S,N(O)):Ti(O)?(e.consume(O),S):T(O)}function I(O){return O===45||O===46||O===58||O===95||Wu(O)?(e.consume(O),I):F(O)}function F(O){return O===61?(e.consume(O),E):Qn(O)?(r=F,N(O)):Ti(O)?(e.consume(O),F):S(O)}function E(O){return O===null||O===60||O===61||O===62||O===96?n(O):O===34||O===39?(e.consume(O),o=O,D):Qn(O)?(r=E,N(O)):Ti(O)?(e.consume(O),E):(e.consume(O),j)}function D(O){return O===o?(e.consume(O),o=void 0,z):O===null?n(O):Qn(O)?(r=D,N(O)):(e.consume(O),D)}function j(O){return O===null||O===34||O===39||O===60||O===61||O===96?n(O):O===47||O===62||Qa(O)?S(O):(e.consume(O),j)}function z(O){return O===47||O===62||Qa(O)?S(O):n(O)}function T(O){return O===62?(e.consume(O),e.exit("htmlTextData"),e.exit("htmlText"),t):n(O)}function N(O){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(O),e.exit("lineEnding"),L}function L(O){return Ti(O)?co(e,H,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(O):H(O)}function H(O){return e.enter("htmlTextData"),r(O)}}const NI={name:"labelEnd",resolveAll:GTe,resolveTo:qTe,tokenize:KTe},WTe={tokenize:ZTe},QTe={tokenize:YTe},VTe={tokenize:JTe};function GTe(e){let t=-1;const n=[];for(;++t=3&&(u===null||Qn(u))?(e.exit("thematicBreak"),t(u)):n(u)}function l(u){return u===o?(e.consume(u),i++,l):(e.exit("thematicBreakSequence"),Ti(u)?co(e,a,"whitespace")(u):a(u))}}const Fa={continuation:{tokenize:lBe},exit:cBe,name:"list",tokenize:aBe},sBe={partial:!0,tokenize:dBe},rBe={partial:!0,tokenize:uBe};function aBe(e,t,n){const i=this,o=i.events[i.events.length-1];let s=o&&o[1].type==="linePrefix"?o[2].sliceSerialize(o[1],!0).length:0,r=0;return a;function a(h){const m=i.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(m==="listUnordered"?!i.containerState.marker||h===i.containerState.marker:V7(h)){if(i.containerState.type||(i.containerState.type=m,e.enter(m,{_container:!0})),m==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(G9,n,u)(h):u(h);if(!i.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),l(h)}return n(h)}function l(h){return V7(h)&&++r<10?(e.consume(h),l):(!i.interrupt||r<2)&&(i.containerState.marker?h===i.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):n(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),i.containerState.marker=i.containerState.marker||h,e.check(bC,i.interrupt?n:c,e.attempt(sBe,f,d))}function c(h){return i.containerState.initialBlankLine=!0,s++,f(h)}function d(h){return Ti(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),f):n(h)}function f(h){return i.containerState.size=s+i.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function lBe(e,t,n){const i=this;return i.containerState._closeFlow=void 0,e.check(bC,o,s);function o(a){return i.containerState.furtherBlankLines=i.containerState.furtherBlankLines||i.containerState.initialBlankLine,co(e,t,"listItemIndent",i.containerState.size+1)(a)}function s(a){return i.containerState.furtherBlankLines||!Ti(a)?(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,r(a)):(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,e.attempt(rBe,t,r)(a))}function r(a){return i.containerState._closeFlow=!0,i.interrupt=void 0,co(e,e.attempt(Fa,t,n),"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function uBe(e,t,n){const i=this;return co(e,o,"listItemIndent",i.containerState.size+1);function o(s){const r=i.events[i.events.length-1];return r&&r[1].type==="listItemIndent"&&r[2].sliceSerialize(r[1],!0).length===i.containerState.size?t(s):n(s)}}function cBe(e){e.exit(this.containerState.type)}function dBe(e,t,n){const i=this;return co(e,o,"listItemPrefixWhitespace",i.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function o(s){const r=i.events[i.events.length-1];return!Ti(s)&&r&&r[1].type==="listItemPrefixWhitespace"?t(s):n(s)}}const DO={name:"setextUnderline",resolveTo:fBe,tokenize:hBe};function fBe(e,t){let n=e.length,i,o,s;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){i=n;break}e[n][1].type==="paragraph"&&(o=n)}else e[n][1].type==="content"&&e.splice(n,1),!s&&e[n][1].type==="definition"&&(s=n);const r={type:"setextHeading",start:{...e[i][1].start},end:{...e[e.length-1][1].end}};return e[o][1].type="setextHeadingText",s?(e.splice(o,0,["enter",r,t]),e.splice(s+1,0,["exit",e[i][1],t]),e[i][1].end={...e[s][1].end}):e[i][1]=r,e.push(["exit",r,t]),e}function hBe(e,t,n){const i=this;let o;return s;function s(u){let c=i.events.length,d;for(;c--;)if(i.events[c][1].type!=="lineEnding"&&i.events[c][1].type!=="linePrefix"&&i.events[c][1].type!=="content"){d=i.events[c][1].type==="paragraph";break}return!i.parser.lazy[i.now().line]&&(i.interrupt||d)?(e.enter("setextHeadingLine"),o=u,r(u)):n(u)}function r(u){return e.enter("setextHeadingLineSequence"),a(u)}function a(u){return u===o?(e.consume(u),a):(e.exit("setextHeadingLineSequence"),Ti(u)?co(e,l,"lineSuffix")(u):l(u))}function l(u){return u===null||Qn(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const pBe={tokenize:mBe};function mBe(e){const t=this,n=e.attempt(bC,i,e.attempt(this.parser.constructs.flowInitial,o,co(e,e.attempt(this.parser.constructs.flow,o,e.attempt(kTe,o)),"linePrefix")));return n;function i(s){if(s===null){e.consume(s);return}return e.enter("lineEndingBlank"),e.consume(s),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function o(s){if(s===null){e.consume(s);return}return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const gBe={resolveAll:CZ()},vBe=wZ("string"),ABe=wZ("text");function wZ(e){return{resolveAll:CZ(e==="text"?yBe:void 0),tokenize:t};function t(n){const i=this,o=this.parser.constructs[e],s=n.attempt(o,r,a);return r;function r(c){return u(c)?s(c):a(c)}function a(c){if(c===null){n.consume(c);return}return n.enter("data"),n.consume(c),l}function l(c){return u(c)?(n.exit("data"),s(c)):(n.consume(c),l)}function u(c){if(c===null)return!0;const d=o[c];let f=-1;if(d)for(;++f-1){const a=r[0];typeof a=="string"?r[0]=a.slice(i):r.shift()}s>0&&r.push(e[o].slice(0,s))}return r}function FBe(e,t){let n=-1;const i=[];let o;for(;++n0;if(s||e[c]!==(h?"!":"[")||r===null)continue;const m=e.slice(c+(h?2:1),d-1);let g=e.slice(r.start,r.end),v=!1;g.startsWith("<")&&(v=!0,g=g.slice(1,-1)),!(!m||!g)&&n.push({start:c,end:f,rawText:m,rawDest:g,angle:v,image:h})}return n}function PBe(e,t){const{start:n,end:i,rawText:o,rawDest:s,angle:r,image:a}=e;if(a&&!s.startsWith(Rd))return null;if(s.startsWith(V9)&&s.length>V9.length){const u=SO(o),c=s.slice(V9.length);return{type:"attachment",start:n,end:i,attrs:{attId:c,name:u,kind:t?.(c)??(u.endsWith("/")?"folder":"file")},rawDest:s}}if(s.startsWith(Rd)&&s.length>Rd.length)return{type:"quote",start:n,end:i,attrs:pZ(s.slice(Rd.length)),rawDest:s};const l=FI(s);return l===null?null:l==="skill"?{type:"mention",start:n,end:i,attrs:{kind:l,name:hZ(s),path:""},rawDest:s}:{type:"mention",start:n,end:i,attrs:{kind:l,name:SO(o),path:PMe(s,r)},rawDest:s}}function OBe(e){const t=[];if(!e.includes(Rd))return t;const n=new Int32Array(e.length+1).fill(-1);for(let s=e.length-1;s>=0;s-=1){const r=e[s];r==="]"?n[s]=s:r==="\\"?s+1i.start-o.start),n}function bh(e){return wC(e).filter(t=>t.type==="mention").map(({start:t,end:n,attrs:i,rawDest:o})=>({start:t,end:n,attrs:i,rawDest:o}))}function bl(e){return wC(e).filter(t=>t.type==="attachment").map(({start:t,end:n,attrs:i,rawDest:o})=>({start:t,end:n,attrs:i,rawDest:o}))}function xZ(e){return wC(e).filter(t=>t.type==="quote").map(({start:t,end:n,attrs:i,rawDest:o})=>({start:t,end:n,attrs:i,rawDest:o}))}function _Z(e,t){const n=wC(e,t);if(n.length===0)return[{type:"text",value:e}];const i=[];let o=0;for(const s of n)s.start>o&&i.push({type:"text",value:e.slice(o,s.start)}),s.type==="mention"?i.push({type:"mention",attrs:s.attrs,rawDest:s.rawDest}):s.type==="attachment"?i.push({type:"attachment",attrs:s.attrs,rawDest:s.rawDest}):i.push({type:"quote",attrs:s.attrs,rawDest:s.rawDest}),o=s.end;return o[l,u+1])),s=new Map(t.mediaAttIds.map((l,u)=>[l,u+1]));let r="",a=0;for(const l of i){r+=e.slice(a,l.start),a=l.end;const{attId:u,name:c,kind:d}=l.attrs,f=d==="folder"?n?.resolveFolder?.(u):void 0;if(f!==void 0){const v=f==="/"||/^[a-zA-Z]:\/$/.test(f)?f.slice(0,-1)||"/":c.endsWith("/")?c.slice(0,-1):c;r+=D1({kind:"folder",name:v,path:f});continue}const h=o.get(u);if(h!==void 0){r+=kh({attId:String(h),name:c});continue}const m=s.get(u);if(m!==void 0){const g=n?.resolveMediaName?.(u,m)??c;r+=kh({attId:`m${m}`,name:g});continue}r+=c}return r+=e.slice(a),r}function LO(e,t,n=0){if(t<=0&&n<=0)return e;const i=bl(e);if(i.length===0)return e;let o="",s=0;for(const r of i){const{attId:a,name:l,kind:u}=r.attrs;let c,d=l;if(t>0&&/^[1-9]\d*$/.test(a))c=String(Number(a)+t);else if(n>0&&/^m[1-9]\d*$/.test(a)){const f=Number(a.slice(1)),h=f+n;c=`m${h}`;const m=` ${f}`;l.endsWith(m)&&(d=`${l.slice(0,-m.length)} ${h}`)}c!==void 0&&(o+=e.slice(s,r.start),s=r.end,o+=kh({attId:c,name:d}))}return o+=e.slice(s),o}function Uf(e,t){const n=bl(e);if(n.length===0)return e;let i="",o=0;for(const s of n)i+=e.slice(o,s.start)+(t?.(s.attrs.name)??s.attrs.name),o=s.end;return i+=e.slice(o),i}function q7(e,t){const n=bl(e);if(n.length===0)return e;let i="",o=0;for(const s of n)t.has(s.attrs.attId)||(i+=e.slice(o,s.start)+s.attrs.name,o=s.end);return i+=e.slice(o),i}function K7(e){const t=bl(e);if(t.length===0)return e;let n="",i=0;for(const o of t)n+=e.slice(i,o.start),i=o.end;return n+=e.slice(i),n}let $Be=!0;const jBe=/^> (.*)$/,HBe=/^>$/;function LI(e){return e.replaceAll("%","%25").replaceAll(` -`,"%0A").replaceAll("\r","%0D")}function UBe(e){return e.replaceAll("%0A",` -`).replaceAll("%0D","\r").replaceAll("%25","%")}const WBe=/^from: (.+)$/;function EZ(e){let t=e,n;const i=e.indexOf(` -`),o=WBe.exec(i===-1?e:e.slice(0,i));o!==null&&(n=UBe(o[1]),t=i===-1?"":e.slice(i+1));const s=[];for(const r of t.split(` -`)){const a=jBe.exec(r);if(a!==null){s.push(a[1]??"");continue}if(HBe.test(r)){s.push("");continue}return null}return{text:s.join(` -`),...n!==void 0?{source:n}:{}}}function PI(e){const t=[];for(const i of e.split(/(\n{2,})/)){if(i==="")continue;if(/^\n{2,}$/.test(i)){t.push({type:"sep",text:i});continue}const o=EZ(i);t.push(o===null?{type:"inline",text:i}:{type:"quote",text:o.text,...o.source!==void 0?{source:o.source}:{}})}const n=[];for(let i=0;i`> ${t}`).join(` -`)}function VBe(e){const t=e.split(/(\n{2,})/),n=new Array(t.length).fill(!1);let i=!1;for(let s=t.length-1;s>=0;s-=1){n[s]=i;const r=t[s];r!==""&&!/^\n{2,}$/.test(r)&&(i=!0)}let o="";for(let s=0;s{i.type==="sep"&&i.text===` - -`&&t[o-1]?.type==="quote"&&t[o+1]?.type==="quote"&&n.add(o)}),t.map((i,o)=>{if(n.has(o))return" ";if(i.type!=="quote")return i.text;const s={text:i.text};return i.source!==void 0&&(s.source=i.source),i.comment!==void 0&&(s.comment=i.comment),kC(s)}).join("")}function yr(e){this.content=e}yr.prototype={constructor:yr,find:function(e){for(var t=0;t>1}};yr.from=function(e){if(e instanceof yr)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new yr(t)};function TZ(e,t,n){for(let i=0;;i++){if(i==e.childCount||i==t.childCount)return e.childCount==t.childCount?null:n;let o=e.child(i),s=t.child(i);if(o==s){n+=o.nodeSize;continue}if(!o.sameMarkup(s))return n;if(o.isText&&o.text!=s.text){let r=o.text,a=s.text,l=0;for(;r[l]==a[l];l++)n++;return l&&l0&&f>0&&u[d-1]==c[f-1];)d--,f--,n--,i--;return d&&f&&d=56320&&e<57344}function RZ(e){return e>=55296&&e<56320}class fn{constructor(t,n){if(this.content=t,this.size=n||0,n==null)for(let i=0;it&&i(l,o+a,s||null,r)!==!1&&l.content.size){let c=a+1;l.nodesBetween(Math.max(0,t-c),Math.min(l.content.size,n-c),i,o+c)}a=u}}descendants(t){this.nodesBetween(0,this.size,t)}textBetween(t,n,i,o){let s="",r=!0;return this.nodesBetween(t,n,(a,l)=>{let u=a.isText?a.text.slice(Math.max(t,l)-l,n-l):a.isLeaf?o?typeof o=="function"?o(a):o:a.type.spec.leafText?a.type.spec.leafText(a):"":"";a.isBlock&&(a.isLeaf&&u||a.isTextblock)&&i&&(r?r=!1:s+=i),s+=u},0),s}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,i=t.firstChild,o=this.content.slice(),s=0;for(n.isText&&n.sameMarkup(i)&&(o[o.length-1]=n.withText(n.text+i.text),s=1);st)for(let s=0,r=0;rt&&((rn)&&(a.isText?a=a.cut(Math.max(0,t-r),Math.min(a.text.length,n-r)):a=a.cut(Math.max(0,t-r-1),Math.min(a.content.size,n-r-1))),i.push(a),o+=a.nodeSize),r=l}return new fn(i,o)}cutByIndex(t,n){return t==n?fn.empty:t==0&&n==this.content.length?this:new fn(this.content.slice(t,n))}replaceChild(t,n){let i=this.content[t];if(i==n)return this;let o=this.content.slice(),s=this.size+n.nodeSize-i.nodeSize;return o[t]=n,new fn(o,s)}addToStart(t){return new fn([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new fn(this.content.concat(t),this.size+t.nodeSize)}eq(t){if(this.content.length!=t.content.length)return!1;for(let n=0;nthis.size||t<0)throw new RangeError(`Position ${t} outside of fragment (${this})`);for(let n=0,i=0;;n++){let o=this.child(n),s=i+o.nodeSize;if(s>=t)return s==t?Ok(n+1,s):Ok(n,i);i=s}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(t=>t.toJSON()):null}static fromJSON(t,n){if(!n)return fn.empty;if(!Array.isArray(n))throw new RangeError("Invalid input for Fragment.fromJSON");return fn.fromArray(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return fn.empty;let n,i=0;for(let o=0;othis.type.rank&&(n||(n=t.slice(0,o)),n.push(this),i=!0),n&&n.push(s)}}return n||(n=t.slice()),i||n.push(this),n}removeFromSet(t){for(let n=0;ni.type.rank-o.type.rank),n}}$i.none=[];class p2 extends Error{}class kn{constructor(t,n,i){this.content=t,this.openStart=n,this.openEnd=i}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let i=NZ(this.content,t+this.openStart,n,this.openStart+1,this.openEnd+1);return i&&new kn(i,this.openStart,this.openEnd)}removeBetween(t,n){return new kn(DZ(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(t){return this.content.eq(t.content)&&this.openStart==t.openStart&&this.openEnd==t.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let t={content:this.content.toJSON()};return this.openStart>0&&(t.openStart=this.openStart),this.openEnd>0&&(t.openEnd=this.openEnd),t}static fromJSON(t,n){if(!n)return kn.empty;let i=n.openStart||0,o=n.openEnd||0;if(typeof i!="number"||typeof o!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new kn(fn.fromJSON(t,n.content),i,o)}static maxOpen(t,n=!0){let i=0,o=0;for(let s=t.firstChild;s&&!s.isLeaf&&(n||!s.type.spec.isolating);s=s.firstChild)i++;for(let s=t.lastChild;s&&!s.isLeaf&&(n||!s.type.spec.isolating);s=s.lastChild)o++;return new kn(t,i,o)}}kn.empty=new kn(fn.empty,0,0);function DZ(e,t,n){let{index:i,offset:o}=e.findIndex(t),s=e.maybeChild(i),{index:r,offset:a}=e.findIndex(n);if(o==t||s.isText){if(a!=n&&!e.child(r).isText)throw new RangeError("Removing non-flat range");return e.cut(0,t).append(e.cut(n))}if(i!=r)throw new RangeError("Removing non-flat range");return e.replaceChild(i,s.copy(DZ(s.content,t-o-1,n-o-1)))}function NZ(e,t,n,i,o,s){let{index:r,offset:a}=e.findIndex(t),l=e.maybeChild(r);if(a==t||l.isText)return s&&i<=0&&o<=0&&!s.canReplace(r,r,n)?null:e.cut(0,t).append(n).append(e.cut(t));let u=NZ(l.content,t-a-1,n,r==0?i-1:0,r==e.childCount-1?o-1:0,l);return u&&e.replaceChild(r,l.copy(u))}function GBe(e,t,n){if(n.openStart>e.depth)throw new p2("Inserted content deeper than insertion position");if(e.depth-n.openStart!=t.depth-n.openEnd)throw new p2("Inconsistent open depths");return LZ(e,t,n,0)}function LZ(e,t,n,i){let o=e.index(i),s=e.node(i);if(o==t.index(i)&&i=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function _A(e,t,n,i){let o=(t||e).node(n),s=0,r=t?t.index(n):o.childCount;e&&(s=e.index(n),e.depth>n?s++:e.textOffset&&(t1(e.nodeAfter,i),s++));for(let a=s;ao&&Z7(e,t,o+1),r=i.depth>o&&Z7(n,i,o+1),a=[];return _A(null,e,o,a),s&&r&&t.index(o)==n.index(o)?(PZ(s,r),t1(n1(s,OZ(e,t,n,i,o+1)),a)):(s&&t1(n1(s,Nw(e,t,o+1)),a),_A(t,n,o,a),r&&t1(n1(r,Nw(n,i,o+1)),a)),_A(i,null,o,a),new fn(a)}function Nw(e,t,n){let i=[];if(_A(null,e,n,i),e.depth>n){let o=Z7(e,t,n+1);t1(n1(o,Nw(e,t,n+1)),i)}return _A(t,null,n,i),new fn(i)}function qBe(e,t){let n=t.depth-e.openStart,o=t.node(n).copy(e.content);for(let s=n-1;s>=0;s--)o=t.node(s).copy(fn.from(o));return{start:o.resolveNoCache(e.openStart+n),end:o.resolveNoCache(o.content.size-e.openEnd-n)}}class m2{constructor(t,n,i){this.pos=t,this.path=n,this.parentOffset=i,this.depth=n.length/3-1}resolveDepth(t){return t==null?this.depth:t<0?this.depth+t:t}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(t){return this.path[this.resolveDepth(t)*3]}index(t){return this.path[this.resolveDepth(t)*3+1]}indexAfter(t){return t=this.resolveDepth(t),this.index(t)+(t==this.depth&&!this.textOffset?0:1)}start(t){return t=this.resolveDepth(t),t==0?0:this.path[t*3-1]+1}end(t){return t=this.resolveDepth(t),this.start(t)+this.node(t).content.size}before(t){if(t=this.resolveDepth(t),!t)throw new RangeError("There is no position before the top-level node");return t==this.depth+1?this.pos:this.path[t*3-1]}after(t){if(t=this.resolveDepth(t),!t)throw new RangeError("There is no position after the top-level node");return t==this.depth+1?this.pos:this.path[t*3-1]+this.path[t*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let t=this.parent,n=this.index(this.depth);if(n==t.childCount)return null;let i=this.pos-this.path[this.path.length-1],o=t.child(n);return i?t.child(n).cut(i):o}get nodeBefore(){let t=this.index(this.depth),n=this.pos-this.path[this.path.length-1];return n?this.parent.child(t).cut(0,n):t==0?null:this.parent.child(t-1)}posAtIndex(t,n){n=this.resolveDepth(n);let i=this.path[n*3],o=n==0?0:this.path[n*3-1]+1;for(let s=0;s0;n--)if(this.start(n)<=t&&this.end(n)>=t)return n;return 0}blockRange(t=this,n){if(t.pos=0;i--)if(t.pos<=this.end(i)&&(!n||n(this.node(i))))return new YBe(this,t,i);return null}sameParent(t){return this.pos-this.parentOffset==t.pos-t.parentOffset}max(t){return t.pos>this.pos?t:this}min(t){return t.pos=0&&n<=t.content.size))throw new RangeError("Position "+n+" out of range");let i=[],o=0,s=n;for(let r=t;;){let{index:a,offset:l}=r.content.findIndex(s),u=s-l;if(i.push(r,a,o+l),!u||(r=r.child(a),r.isText))break;s=u-1,o+=l+1}return new m2(n,i,s)}static resolveCached(t,n){let i=PO.get(t);if(i)for(let s=0;st&&this.nodesBetween(t,n,s=>(i.isInSet(s.marks)&&(o=!0),!o)),o}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let t=this.type.name;return this.content.size&&(t+="("+this.content.toStringInner()+")"),zZ(this.marks,t)}contentMatchAt(t){let n=this.type.contentMatch.matchFragment(this.content,0,t);if(!n)throw new Error("Called contentMatchAt on a node with invalid content");return n}canReplace(t,n,i=fn.empty,o=0,s=i.childCount){let r=this.contentMatchAt(t).matchFragment(i,o,s),a=r&&r.matchFragment(this.content,n);if(!a||!a.validEnd)return!1;for(let l=o;ln.type.name)}`);this.content.forEach(n=>n.check())}toJSON(){let t={type:this.type.name};for(let n in this.attrs){t.attrs=this.attrs;break}return this.content.size&&(t.content=this.content.toJSON()),this.marks.length&&(t.marks=this.marks.map(n=>n.toJSON())),t}static fromJSON(t,n){if(!n)throw new RangeError("Invalid input for Node.fromJSON");let i;if(n.marks){if(!Array.isArray(n.marks))throw new RangeError("Invalid mark data for Node.fromJSON");i=n.marks.map(t.markFromJSON)}if(n.type=="text"){if(typeof n.text!="string")throw new RangeError("Invalid text node in JSON");return t.text(n.text,i)}let o=fn.fromJSON(t,n.content),s=t.nodeType(n.type).create(n.attrs,o,i);return s.type.checkAttrs(s.attrs),s}};i1.prototype.text=void 0;class Lw extends i1{constructor(t,n,i,o){if(super(t,n,null,o),!i)throw new RangeError("Empty text nodes are not allowed");this.text=i}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):zZ(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(t,n){return this.text.slice(t,n)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new Lw(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new Lw(this.type,this.attrs,t,this.marks)}cut(t=0,n=this.text.length){return t==0&&n==this.text.length?this:this.withText(this.text.slice(t,n))}eq(t){return this.sameMarkup(t)&&this.text==t.text}toJSON(){let t=super.toJSON();return t.text=this.text,t}}function zZ(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+"("+t+")";return t}class v1{constructor(t){this.validEnd=t,this.next=[],this.wrapCache=[]}static parse(t,n){let i=new XBe(t,n);if(i.next==null)return v1.empty;let o=$Z(i);i.next&&i.err("Unexpected trailing text");let s=rFe(sFe(o));return aFe(s,i),s}matchType(t){for(let n=0;nu.createAndFill()));for(let u=0;u=this.next.length)throw new RangeError(`There's no ${t}th edge in this content match`);return this.next[t]}toString(){let t=[];function n(i){t.push(i);for(let o=0;o{let s=o+(i.validEnd?"*":" ")+" ";for(let r=0;r"+t.indexOf(i.next[r].next);return s}).join(` -`)}}v1.empty=new v1(!0);class XBe{constructor(t,n){this.string=t,this.nodeTypes=n,this.inline=null,this.pos=0,this.tokens=t.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==""&&this.tokens.pop(),this.tokens[0]==""&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(t){return this.next==t&&(this.pos++||!0)}err(t){throw new SyntaxError(t+" (in content expression '"+this.string+"')")}}function $Z(e){let t=[];do t.push(eFe(e));while(e.eat("|"));return t.length==1?t[0]:{type:"choice",exprs:t}}function eFe(e){let t=[];do t.push(tFe(e));while(e.next&&e.next!=")"&&e.next!="|");return t.length==1?t[0]:{type:"seq",exprs:t}}function tFe(e){let t=oFe(e);for(;;)if(e.eat("+"))t={type:"plus",expr:t};else if(e.eat("*"))t={type:"star",expr:t};else if(e.eat("?"))t={type:"opt",expr:t};else if(e.eat("{"))t=nFe(e,t);else break;return t}function OO(e){/\D/.test(e.next)&&e.err("Expected number, got '"+e.next+"'");let t=Number(e.next);return e.pos++,t}function nFe(e,t){let n=OO(e),i=n;return e.eat(",")&&(e.next!="}"?i=OO(e):i=-1),e.eat("}")||e.err("Unclosed braced range"),{type:"range",min:n,max:i,expr:t}}function iFe(e,t){let n=e.nodeTypes,i=n[t];if(i)return[i];let o=[];for(let s in n){let r=n[s];r.isInGroup(t)&&o.push(r)}return o.length==0&&e.err("No node type or group '"+t+"' found"),o}function oFe(e){if(e.eat("(")){let t=$Z(e);return e.eat(")")||e.err("Missing closing paren"),t}else if(/\W/.test(e.next))e.err("Unexpected token '"+e.next+"'");else{let t=iFe(e,e.next).map(n=>(e.inline==null?e.inline=n.isInline:e.inline!=n.isInline&&e.err("Mixing inline and block content"),{type:"name",value:n}));return e.pos++,t.length==1?t[0]:{type:"choice",exprs:t}}}function sFe(e){let t=[[]];return o(s(e,0),n()),t;function n(){return t.push([])-1}function i(r,a,l){let u={term:l,to:a};return t[r].push(u),u}function o(r,a){r.forEach(l=>l.to=a)}function s(r,a){if(r.type=="choice")return r.exprs.reduce((l,u)=>l.concat(s(u,a)),[]);if(r.type=="seq")for(let l=0;;l++){let u=s(r.exprs[l],a);if(l==r.exprs.length-1)return u;o(u,a=n())}else if(r.type=="star"){let l=n();return i(a,l),o(s(r.expr,l),l),[i(l)]}else if(r.type=="plus"){let l=n();return o(s(r.expr,a),l),o(s(r.expr,l),l),[i(l)]}else{if(r.type=="opt")return[i(a)].concat(s(r.expr,a));if(r.type=="range"){let l=a;for(let u=0;u{e[r].forEach(({term:a,to:l})=>{if(!a)return;let u;for(let c=0;c{u||o.push([a,u=[]]),u.indexOf(c)==-1&&u.push(c)})})});let s=t[i.join(",")]=new v1(i.indexOf(e.length-1)>-1);for(let r=0;r-1}get whitespace(){return this.spec.whitespace||(this.spec.code?"pre":"normal")}hasRequiredAttrs(){for(let t in this.attrs)if(this.attrs[t].isRequired)return!0;return!1}compatibleContent(t){return this==t||this.contentMatch.compatible(t.contentMatch)}computeAttrs(t){return!t&&this.defaultAttrs?this.defaultAttrs:UZ(this.attrs,t)}create(t=null,n,i){if(this.isText)throw new Error("NodeType.create can't construct text nodes");return new i1(this,this.computeAttrs(t),fn.from(n),$i.setFrom(i))}createChecked(t=null,n,i){return n=fn.from(n),this.checkContent(n),new i1(this,this.computeAttrs(t),n,$i.setFrom(i))}createAndFill(t=null,n,i){if(t=this.computeAttrs(t),n=fn.from(n),n.size){let r=this.contentMatch.fillBefore(n);if(!r)return null;n=r.append(n)}let o=this.contentMatch.matchFragment(n),s=o&&o.fillBefore(fn.empty,!0);return s?new i1(this,t,n.append(s),$i.setFrom(i)):null}validContent(t){let n=this.contentMatch.matchFragment(t);if(!n||!n.validEnd)return!1;for(let i=0;i-1}allowsMarks(t){if(this.markSet==null)return!0;for(let n=0;ni[s]=new VZ(s,n,r));let o=n.spec.topNode||"doc";if(!i[o])throw new RangeError("Schema is missing its top node type ('"+o+"')");if(!i.text)throw new RangeError("Every schema needs a 'text' type");for(let s in i.text.attrs)throw new RangeError("The text node type should not have attributes");return i}};function lFe(e,t,n){let i=n.split("|");return o=>{let s=o===null?"null":typeof o;if(i.indexOf(s)<0)throw new RangeError(`Expected value of type ${i} for attribute ${t} on type ${e}, got ${s}`)}}class uFe{constructor(t,n,i){this.hasDefault=Object.prototype.hasOwnProperty.call(i,"default"),this.default=i.default,this.validate=typeof i.validate=="string"?lFe(t,n,i.validate):i.validate}get isRequired(){return!this.hasDefault}}class CC{constructor(t,n,i,o){this.name=t,this.rank=n,this.schema=i,this.spec=o,this.attrs=QZ(t,o.attrs),this.excluded=null;let s=HZ(this.attrs);this.instance=s?new $i(this,s):null}create(t=null){return!t&&this.instance?this.instance:new $i(this,UZ(this.attrs,t))}static compile(t,n){let i=Object.create(null),o=0;return t.forEach((s,r)=>i[s]=new CC(s,o++,n,r)),i}removeFromSet(t){for(var n=0;n-1}}let cFe=class{constructor(t){this.linebreakReplacement=null,this.cached=Object.create(null);let n=this.spec={};for(let o in t)n[o]=t[o];n.nodes=yr.from(t.nodes),n.marks=yr.from(t.marks||{}),this.nodes=$O.compile(this.spec.nodes,this),this.marks=CC.compile(this.spec.marks,this);let i=Object.create(null);for(let o in this.nodes){if(o in this.marks)throw new RangeError(o+" can not be both a node and a mark");let s=this.nodes[o],r=s.spec.content||"",a=s.spec.marks;if(s.contentMatch=i[r]||(i[r]=v1.parse(r,this.nodes)),s.inlineContent=s.contentMatch.inlineContent,s.spec.linebreakReplacement){if(this.linebreakReplacement)throw new RangeError("Multiple linebreak nodes defined");if(!s.isInline||!s.isLeaf)throw new RangeError("Linebreak replacement nodes must be inline leaf nodes");this.linebreakReplacement=s}s.markSet=a=="_"?null:a?jO(this,a.split(" ")):a==""||!s.inlineContent?[]:null}for(let o in this.marks){let s=this.marks[o],r=s.spec.excludes;s.excluded=r==null?[s]:r==""?[]:jO(this,r.split(" "))}this.nodeFromJSON=o=>i1.fromJSON(this,o),this.markFromJSON=o=>$i.fromJSON(this,o),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached.wrappings=Object.create(null)}node(t,n=null,i,o){if(typeof t=="string")t=this.nodeType(t);else if(t instanceof $O){if(t.schema!=this)throw new RangeError("Node type from different schema used ("+t.name+")")}else throw new RangeError("Invalid node type: "+t);return t.createChecked(n,i,o)}text(t,n){let i=this.nodes.text;return new Lw(i,i.defaultAttrs,t,$i.setFrom(n))}mark(t,n){return typeof t=="string"&&(t=this.marks[t]),t.create(n)}nodeType(t){let n=this.nodes[t];if(!n)throw new RangeError("Unknown node type: "+t);return n}};function jO(e,t){let n=[];for(let i=0;i-1)&&n.push(r=l)}if(!r)throw new SyntaxError("Unknown mark type: '"+t[i]+"'")}return n}function dFe(e){return e.tag!=null}function fFe(e){return e.style!=null}let GZ=class J7{constructor(t,n){this.schema=t,this.rules=n,this.tags=[],this.styles=[];let i=this.matchedStyles=[];n.forEach(o=>{if(dFe(o))this.tags.push(o);else if(fFe(o)){let s=/[^=]*/.exec(o.style)[0];i.indexOf(s)<0&&i.push(s),this.styles.push(o)}}),this.normalizeLists=!this.tags.some(o=>{if(!/^(ul|ol)\b/.test(o.tag)||!o.node)return!1;let s=t.nodes[o.node];return s.contentMatch.matchType(s)})}parse(t,n={}){let i=new UO(this,n,!1);return i.addAll(t,$i.none,n.from,n.to),i.finish()}parseSlice(t,n={}){let i=new UO(this,n,!0);return i.addAll(t,$i.none,n.from,n.to),kn.maxOpen(i.finish())}matchTag(t,n,i){for(let o=i?this.tags.indexOf(i)+1:0;ot.length&&(a.charCodeAt(t.length)!=61||a.slice(t.length+1)!=n))){if(r.getAttrs){let l=r.getAttrs(n);if(l===!1)continue;r.attrs=l||void 0}return r}}}static schemaRules(t){let n=[];function i(o){let s=o.priority==null?50:o.priority,r=0;for(;r{i(r=WO(r)),r.mark||r.ignore||r.clearMark||(r.mark=o)})}for(let o in t.nodes){let s=t.nodes[o].spec.parseDOM;s&&s.forEach(r=>{i(r=WO(r)),r.node||r.ignore||r.mark||(r.node=o)})}return n}static fromSchema(t){return t.cached.domParser||(t.cached.domParser=new J7(t,J7.schemaRules(t)))}};const qZ={address:!0,article:!0,aside:!0,blockquote:!0,body:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},hFe={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},KZ={ol:!0,ul:!0},g2=1,X7=2,EA=4;function HO(e,t,n){return t!=null?(t?g2:0)|(t==="full"?X7:0):e&&e.whitespace=="pre"?g2|X7:n&~EA}class zk{constructor(t,n,i,o,s,r){this.type=t,this.attrs=n,this.marks=i,this.solid=o,this.options=r,this.content=[],this.activeMarks=$i.none,this.match=s||(r&EA?null:t.contentMatch)}findWrapping(t){if(!this.match){if(!this.type)return[];let n=this.type.contentMatch.fillBefore(fn.from(t));if(n)this.match=this.type.contentMatch.matchFragment(n);else{let i=this.type.contentMatch,o;return(o=i.findWrapping(t.type))?(this.match=i,o):null}}return this.match.findWrapping(t.type)}finish(t){if(!(this.options&g2)){let i=this.content[this.content.length-1],o;if(i&&i.isText&&(o=/[ \t\r\n\u000c]+$/.exec(i.text))){let s=i;i.text.length==o[0].length?this.content.pop():this.content[this.content.length-1]=s.withText(s.text.slice(0,s.text.length-o[0].length))}}let n=fn.from(this.content);return!t&&this.match&&(n=n.append(this.match.fillBefore(fn.empty,!0))),this.type?this.type.create(this.attrs,n,this.marks):n}inlineContext(t){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:t.parentNode&&!qZ.hasOwnProperty(t.parentNode.nodeName.toLowerCase())}}class UO{constructor(t,n,i){this.parser=t,this.options=n,this.isOpen=i,this.open=0,this.localPreserveWS=!1;let o=n.topNode,s,r=HO(null,n.preserveWhitespace,0)|(i?EA:0);o?s=new zk(o.type,o.attrs,$i.none,!0,n.topMatch||o.type.contentMatch,r):i?s=new zk(null,null,$i.none,!0,null,r):s=new zk(t.schema.topNodeType,null,$i.none,!0,null,r),this.nodes=[s],this.find=n.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(t,n){t.nodeType==3?this.addTextNode(t,n):t.nodeType==1&&this.addElement(t,n)}addTextNode(t,n){let i=t.nodeValue,o=this.top,s=o.options&X7?"full":this.localPreserveWS||(o.options&g2)>0,{schema:r}=this.parser;if(s==="full"||o.inlineContext(t)||/[^ \t\r\n\u000c]/.test(i)){if(s)if(s==="full")i=i.replace(/\r\n?/g,` -`);else if(r.linebreakReplacement&&/[\r\n]/.test(i)&&this.top.findWrapping(r.linebreakReplacement.create())){let a=i.split(/\r?\n|\r/);for(let l=0;l!l.clearMark(u)):n=n.concat(this.parser.schema.marks[l.mark].create(l.attrs)),l.consuming===!1)a=l;else break}}return n}addElementByRule(t,n,i,o){let s,r;if(n.node)if(r=this.parser.schema.nodes[n.node],r.isLeaf)this.insertNode(r.create(n.attrs),i,t.nodeName=="BR")||this.leafFallback(t,i);else{let l=this.enter(r,n.attrs||null,i,n.preserveWhitespace);l&&(s=!0,i=l)}else{let l=this.parser.schema.marks[n.mark];i=i.concat(l.create(n.attrs))}let a=this.top;if(r&&r.isLeaf)this.findInside(t);else if(o)this.addElement(t,i,o);else if(n.getContent)this.findInside(t),n.getContent(t,this.parser.schema).forEach(l=>this.insertNode(l,i,!1));else{let l=t;typeof n.contentElement=="string"?l=t.querySelector(n.contentElement):typeof n.contentElement=="function"?l=n.contentElement(t):n.contentElement&&(l=n.contentElement),this.findAround(t,l,!0),this.addAll(l,i),this.findAround(t,l,!1)}s&&this.sync(a)&&this.open--}addAll(t,n,i,o){let s=i||0;for(let r=i?t.childNodes[i]:t.firstChild,a=o==null?null:t.childNodes[o];r!=a;r=r.nextSibling,++s)this.findAtPoint(t,s),this.addDOM(r,n);this.findAtPoint(t,s)}findPlace(t,n,i){let o,s;for(let r=this.open,a=0;r>=0;r--){let l=this.nodes[r],u=l.findWrapping(t);if(u&&(!o||o.length>u.length+a)&&(o=u,s=l,!u.length))break;if(l.solid){if(i)break;a+=2}}if(!o)return null;this.sync(s);for(let r=0;r(r.type?r.type.allowsMarkType(u.type):QO(u.type,t))?(l=u.addToSet(l),!1):!0),this.nodes.push(new zk(t,n,l,o,null,a)),this.open++,i}closeExtra(t=!1){let n=this.nodes.length-1;if(n>this.open){for(;n>this.open;n--)this.nodes[n-1].content.push(this.nodes[n].finish(t));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(t){for(let n=this.open;n>=0;n--){if(this.nodes[n]==t)return this.open=n,!0;this.localPreserveWS&&(this.nodes[n].options|=g2)}return!1}get currentPos(){this.closeExtra();let t=0;for(let n=this.open;n>=0;n--){let i=this.nodes[n].content;for(let o=i.length-1;o>=0;o--)t+=i[o].nodeSize;n&&t++}return t}findAtPoint(t,n){if(this.find)for(let i=0;i-1)return t.split(/\s*\|\s*/).some(this.matchesContext,this);let n=t.split("/"),i=this.options.context,o=!this.isOpen&&(!i||i.parent.type==this.nodes[0].type),s=-(i?i.depth+1:0)+(o?0:1),r=(a,l)=>{for(;a>=0;a--){let u=n[a];if(u==""){if(a==n.length-1||a==0)continue;for(;l>=s;l--)if(r(a-1,l))return!0;return!1}else{let c=l>0||l==0&&o?this.nodes[l].type:i&&l>=s?i.node(l-s).type:null;if(!c||c.name!=u&&!c.isInGroup(u))return!1;l--}}return!0};return r(n.length-1,this.open)}textblockFromContext(){let t=this.options.context;if(t)for(let n=t.depth;n>=0;n--){let i=t.node(n).contentMatchAt(t.indexAfter(n)).defaultType;if(i&&i.isTextblock&&i.defaultAttrs)return i}for(let n in this.parser.schema.nodes){let i=this.parser.schema.nodes[n];if(i.isTextblock&&i.defaultAttrs)return i}}}function pFe(e){for(let t=e.firstChild,n=null;t;t=t.nextSibling){let i=t.nodeType==1?t.nodeName.toLowerCase():null;i&&KZ.hasOwnProperty(i)&&n?(n.appendChild(t),t=n):i=="li"?n=t:i&&(n=null)}}function mFe(e,t){return(e.matches||e.msMatchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector).call(e,t)}function WO(e){let t={};for(let n in e)t[n]=e[n];return t}function QO(e,t){let n=t.schema.nodes;for(let i in n){let o=n[i];if(!o.allowsMarkType(e))continue;let s=[],r=a=>{s.push(a);for(let l=0;l{if(s.length||r.marks.length){let a=0,l=0;for(;a=0;o--){let s=this.serializeMark(t.marks[o],t.isInline,n);s&&((s.contentDOM||s.dom).appendChild(i),i=s.dom)}return i}serializeMark(t,n,i={}){let o=this.marks[t.type.name];return o&&q9($k(i),o(t,n),null,t.attrs)}static renderSpec(t,n,i=null,o){return typeof n=="string"?{dom:t.createTextNode(n)}:q9(t,n,i,o)}static fromSchema(t){return t.cached.domSerializer||(t.cached.domSerializer=new Qc(this.nodesFromSchema(t),this.marksFromSchema(t)))}static nodesFromSchema(t){let n=VO(t.nodes);return n.text||(n.text=i=>i.text),n}static marksFromSchema(t){return VO(t.marks)}}function VO(e){let t={};for(let n in e){let i=e[n].spec.toDOM;i&&(t[n]=i)}return t}function $k(e){return e.document||window.document}const GO=new WeakMap;function gFe(e){let t=GO.get(e);return t===void 0&&GO.set(e,t=vFe(e)),t}function vFe(e){let t=null;function n(i){if(i&&typeof i=="object")if(Array.isArray(i))if(typeof i[0]=="string")t||(t=[]),t.push(i);else for(let o=0;o-1)throw new RangeError("Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.");let r=o.indexOf(" ");r>0&&(n=o.slice(0,r),o=o.slice(r+1));let a,l=n?e.createElementNS(n,o):e.createElement(o),u=t[1],c=1;if(u&&typeof u=="object"&&u.nodeType==null&&!Array.isArray(u)){c=2;for(let d in u)if(u[d]!=null){let f=d.indexOf(" ");f>0?l.setAttributeNS(d.slice(0,f),d.slice(f+1),u[d]):d=="style"&&l.style?l.style.cssText=u[d]:l.setAttribute(d,u[d])}}for(let d=c;dc)throw new RangeError("Content hole must be the only child of its parent node");return{dom:l,contentDOM:l}}else if(typeof f=="string")l.appendChild(e.createTextNode(f));else{let{dom:h,contentDOM:m}=q9(e,f,n,i);if(l.appendChild(h),m){if(a)throw new RangeError("Multiple content holes");a=m}}}return{dom:l,contentDOM:a}}const ti=new cFe({nodes:{doc:{content:"block+"},paragraph:{group:"block",content:"inline*",toDOM:()=>["p",0],parseDOM:[{tag:"p"}]},text:{group:"inline"},mention:{group:"inline",inline:!0,atom:!0,selectable:!0,attrs:{kind:{},name:{},path:{default:""}},leafText:e=>D1(e.attrs),toDOM:e=>{const t=e.attrs;return["span",{class:`mention-pill mention-${t.kind}`,"data-mention-path":t.path},t.name]}},attachment:{group:"inline",inline:!0,atom:!0,selectable:!0,attrs:{attId:{},name:{},kind:{}},leafText:e=>kh(e.attrs),toDOM:e=>{const t=e.attrs;return["span",{class:`attachment-pill attachment-${t.kind}`,"data-attachment-id":t.attId,"data-attachment-kind":t.kind,"data-attachment-name":t.name},t.name]}},quote:{group:"inline",inline:!0,atom:!0,selectable:!0,attrs:{text:{},comment:{default:""},source:{default:""}},leafText:e=>kC(e.attrs),toDOM:e=>{const t=e.attrs,n={class:"quote-pill","data-quote-text":t.text};return typeof t.comment=="string"&&t.comment.length>0&&(n["data-quote-comment"]=t.comment),typeof t.source=="string"&&t.source.length>0&&(n["data-quote-source"]=t.source),["span",n,Ng(t.text)]}}}});function ZZ(e){return ti.nodes.mention.create(e)}function YZ(e){return ti.nodes.attachment.create(e)}function JZ(e){return ti.nodes.quote.create(e)}function AFe(e,t){return e?_Z(e,t).map(n=>n.type==="mention"?ZZ(n.attrs):n.type==="attachment"?YZ(n.attrs):n.type==="quote"?JZ(n.attrs):ti.text(n.value)):[]}function v2(e,t){const n=e.split(` -`);return ti.node("doc",null,n.map(i=>i?ti.node("paragraph",null,t?.reviveMentions?AFe(i,t?.attachmentKindFor):ti.text(i)):ti.node("paragraph")))}function A2(e){return e.textBetween(0,e.content.size,` -`)}const XZ=65535,eY=Math.pow(2,16);function yFe(e,t){return e+t*eY}function qO(e){return e&XZ}function kFe(e){return(e-(e&XZ))/eY}const tY=1,nY=2,K9=4,iY=8;class ex{constructor(t,n,i){this.pos=t,this.delInfo=n,this.recover=i}get deleted(){return(this.delInfo&iY)>0}get deletedBefore(){return(this.delInfo&(tY|K9))>0}get deletedAfter(){return(this.delInfo&(nY|K9))>0}get deletedAcross(){return(this.delInfo&K9)>0}}class Oa{constructor(t,n=!1){if(this.ranges=t,this.inverted=n,!t.length&&Oa.empty)return Oa.empty}recover(t){let n=0,i=qO(t);if(!this.inverted)for(let o=0;ot)break;let u=this.ranges[a+s],c=this.ranges[a+r],d=l+u;if(t<=d){let f=u?t==l?-1:t==d?1:n:n,h=l+o+(f<0?0:c);if(i)return h;let m=t==(n<0?l:d)?null:yFe(a/3,t-l),g=t==l?nY:t==d?tY:K9;return(n<0?t!=l:t!=d)&&(g|=iY),new ex(h,g,m)}o+=c-u}return i?t+o:new ex(t+o,0,null)}touches(t,n){let i=0,o=qO(n),s=this.inverted?2:1,r=this.inverted?1:2;for(let a=0;at)break;let u=this.ranges[a+s],c=l+u;if(t<=c&&a==o*3)return!0;i+=this.ranges[a+r]-u}return!1}forEach(t){let n=this.inverted?2:1,i=this.inverted?1:2;for(let o=0,s=0;o=0;n--){let o=t.getMirror(n);this.appendMap(t._maps[n].invert(),o!=null&&o>n?i-o-1:void 0)}}invert(){let t=new y2;return t.appendMappingInverted(this),t}map(t,n=1){if(this.mirror)return this._map(t,n,!0);for(let i=this.from;is&&l!r.isAtom||!a.type.allowsMarkType(this.mark.type)?r:r.mark(this.mark.addToSet(r.marks)),o),n.openStart,n.openEnd);return as.fromReplace(t,this.from,this.to,s)}invert(){return new zc(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),i=t.mapResult(this.to,-1);return n.deleted&&i.deleted||n.pos>=i.pos?null:new Wf(n.pos,i.pos,this.mark)}merge(t){return t instanceof Wf&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new Wf(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!="number"||typeof n.to!="number")throw new RangeError("Invalid input for AddMarkStep.fromJSON");return new Wf(n.from,n.to,t.markFromJSON(n.mark))}}ar.jsonID("addMark",Wf);class zc extends ar{constructor(t,n,i){super(),this.from=t,this.to=n,this.mark=i}apply(t){let n=t.slice(this.from,this.to),i=new kn(OI(n.content,o=>o.mark(this.mark.removeFromSet(o.marks)),t),n.openStart,n.openEnd);return as.fromReplace(t,this.from,this.to,i)}invert(){return new Wf(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),i=t.mapResult(this.to,-1);return n.deleted&&i.deleted||n.pos>=i.pos?null:new zc(n.pos,i.pos,this.mark)}merge(t){return t instanceof zc&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new zc(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!="number"||typeof n.to!="number")throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");return new zc(n.from,n.to,t.markFromJSON(n.mark))}}ar.jsonID("removeMark",zc);class Qf extends ar{constructor(t,n){super(),this.pos=t,this.mark=n}apply(t){let n=t.nodeAt(this.pos);if(!n)return as.fail("No node at mark step's position");let i=n.type.create(n.attrs,null,this.mark.addToSet(n.marks));return as.fromReplace(t,this.pos,this.pos+1,new kn(fn.from(i),0,n.isLeaf?0:1))}invert(t){let n=t.nodeAt(this.pos);if(n){let i=this.mark.addToSet(n.marks);if(i.length==n.marks.length){for(let o=0;oi.pos?null:new Ml(n.pos,i.pos,o,s,this.slice,this.insert,this.structure)}toJSON(){let t={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(t.slice=this.slice.toJSON()),this.structure&&(t.structure=!0),t}static fromJSON(t,n){if(typeof n.from!="number"||typeof n.to!="number"||typeof n.gapFrom!="number"||typeof n.gapTo!="number"||typeof n.insert!="number")throw new RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new Ml(n.from,n.to,n.gapFrom,n.gapTo,kn.fromJSON(t,n.slice),n.insert,!!n.structure)}}ar.jsonID("replaceAround",Ml);function tx(e,t,n){let i=e.resolve(t),o=n-t,s=i.depth;for(;o>0&&s>0&&i.indexAfter(s)==i.node(s).childCount;)s--,o--;if(o>0){let r=i.node(s).maybeChild(i.indexAfter(s));for(;o>0;){if(!r||r.isLeaf)return!0;r=r.firstChild,o--}}return!1}function bFe(e,t,n,i){let o=[],s=[],r,a;e.doc.nodesBetween(t,n,(l,u,c)=>{if(!l.isInline)return;let d=l.marks;if(!i.isInSet(d)&&c.type.allowsMarkType(i.type)){let f=Math.max(u,t),h=Math.min(u+l.nodeSize,n),m=i.addToSet(d);for(let g=0;ge.step(l)),s.forEach(l=>e.step(l))}function wFe(e,t,n,i){let o=[],s=0;e.doc.nodesBetween(t,n,(r,a)=>{if(!r.isInline)return;s++;let l=null;if(i instanceof CC){let u=r.marks,c;for(;c=i.isInSet(u);)(l||(l=[])).push(c),u=c.removeFromSet(u)}else i?i.isInSet(r.marks)&&(l=[i]):l=r.marks;if(l&&l.length){let u=Math.min(a+r.nodeSize,n);for(let c=0;ce.step(new zc(r.from,r.to,r.style)))}function zI(e,t,n,i=n.contentMatch,o=!0){let s=e.doc.nodeAt(t),r=[],a=t+1;for(let l=0;l=0;l--)e.step(r[l])}function CFe(e,t,n){return(t==0||e.canReplace(t,e.childCount))&&(n==e.childCount||e.canReplace(0,n))}function $I(e){let n=e.parent.content.cutByIndex(e.startIndex,e.endIndex);for(let i=e.depth,o=0,s=0;;--i){let r=e.$from.node(i),a=e.$from.index(i)+o,l=e.$to.indexAfter(i)-s;if(in;m--)g||i.index(m)>0?(g=!0,c=fn.from(i.node(m).copy(c)),d++):l--;let f=fn.empty,h=0;for(let m=s,g=!1;m>n;m--)g||o.after(m+1)=0;r--){if(i.size){let a=n[r].type.contentMatch.matchFragment(i);if(!a||!a.validEnd)throw new RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper")}i=fn.from(n[r].type.create(n[r].attrs,i))}let o=t.start,s=t.end;e.step(new Ml(o,s,o,s,new kn(i,0,0),n.length,!0))}function _Fe(e,t,n,i,o){if(!i.isTextblock)throw new RangeError("Type given to setBlockType should be a textblock");let s=e.steps.length;e.doc.nodesBetween(t,n,(r,a)=>{let l=typeof o=="function"?o(r):o;if(r.isTextblock&&!r.hasMarkup(i,l)&&EFe(e.doc,e.mapping.slice(s).map(a),i)){let u=null;if(i.schema.linebreakReplacement){let h=i.whitespace=="pre",m=!!i.contentMatch.matchType(i.schema.linebreakReplacement);h&&!m?u=!1:!h&&m&&(u=!0)}u===!1&&sY(e,r,a,s),zI(e,e.mapping.slice(s).map(a,1),i,void 0,u===null);let c=e.mapping.slice(s),d=c.map(a,1),f=c.map(a+r.nodeSize,1);return e.step(new Ml(d,f,d+1,f-1,new kn(fn.from(i.create(l,null,r.marks)),0,0),1,!0)),u===!0&&oY(e,r,a,s),!1}})}function oY(e,t,n,i){t.forEach((o,s)=>{if(o.isText){let r,a=/\r?\n|\r/g;for(;r=a.exec(o.text);){let l=e.mapping.slice(i).map(n+1+s+r.index);e.replaceWith(l,l+1,t.type.schema.linebreakReplacement.create())}}})}function sY(e,t,n,i){t.forEach((o,s)=>{if(o.type==o.type.schema.linebreakReplacement){let r=e.mapping.slice(i).map(n+1+s);e.replaceWith(r,r+1,t.type.schema.text(` -`))}})}function EFe(e,t,n){let i=e.resolve(t),o=i.index();return i.parent.canReplaceWith(o,o+1,n)}function IFe(e,t,n,i,o){let s=e.doc.nodeAt(t);if(!s)throw new RangeError("No node at given position");n||(n=s.type);let r=n.create(i,null,o||s.marks);if(s.isLeaf)return e.replaceWith(t,t+s.nodeSize,r);if(!n.validContent(s.content))throw new RangeError("Invalid content for node type "+n.name);e.step(new Ml(t,t+s.nodeSize,t+1,t+s.nodeSize-1,new kn(fn.from(r),0,0),1,!0))}function Z9(e,t,n=1,i){let o=e.resolve(t),s=o.depth-n,r=i&&i[i.length-1]||o.parent;if(s<0||o.parent.type.spec.isolating||!o.parent.canReplace(o.index(),o.parent.childCount)||!r.type.validContent(o.parent.content.cutByIndex(o.index(),o.parent.childCount)))return!1;for(let u=o.depth-1,c=n-2;u>s;u--,c--){let d=o.node(u),f=o.index(u);if(d.type.spec.isolating)return!1;let h=d.content.cutByIndex(f,d.childCount),m=i&&i[c+1];m&&(h=h.replaceChild(0,m.type.create(m.attrs)));let g=i&&i[c]||d;if(!d.canReplace(f+1,d.childCount)||!g.type.validContent(h))return!1}let a=o.indexAfter(s),l=i&&i[0];return o.node(s).canReplaceWith(a,a,l?l.type:o.node(s+1).type)}function MFe(e,t,n=1,i){let o=e.doc.resolve(t),s=fn.empty,r=fn.empty;for(let a=o.depth,l=o.depth-n,u=n-1;a>l;a--,u--){s=fn.from(o.node(a).copy(s));let c=i&&i[u];r=fn.from(c?c.type.create(c.attrs,r):o.node(a).copy(r))}e.step(new ir(t,t,new kn(s.append(r),n,n),!0))}function rY(e,t){let n=e.resolve(t),i=n.index();return BFe(n.nodeBefore,n.nodeAfter)&&n.parent.canReplace(i,i+1)}function TFe(e,t){t.content.size||e.type.compatibleContent(t.type);let n=e.contentMatchAt(e.childCount),{linebreakReplacement:i}=e.type.schema;for(let o=0;o=0;o--){let s=i.index(o);if(i.node(o).canReplaceWith(s,s,n))return i.before(o+1);if(s>0)return null}if(i.parentOffset==i.parent.content.size)for(let o=i.depth-1;o>=0;o--){let s=i.indexAfter(o);if(i.node(o).canReplaceWith(s,s,n))return i.after(o+1);if(s=0;r--){let a=r==i.depth?0:i.pos<=(i.start(r+1)+i.end(r+1))/2?-1:1,l=i.index(r)+(a>0?1:0),u=i.node(r),c=!1;if(s==1)c=u.canReplace(l,l,o);else{let d=u.contentMatchAt(l).findWrapping(o.firstChild.type);c=d&&u.canReplaceWith(l,l,d[0])}if(c)return a==0?i.pos:a<0?i.before(r+1):i.after(r+1)}return null}function jI(e,t,n=t,i=kn.empty){if(t==n&&!i.size)return null;let o=e.resolve(t),s=e.resolve(n);return aY(o,s,i)?new ir(t,n,i):new NFe(o,s,i).fit()}function aY(e,t,n){return!n.openStart&&!n.openEnd&&e.start()==t.start()&&e.parent.canReplace(e.index(),t.index(),n.content)}class NFe{constructor(t,n,i){this.$from=t,this.$to=n,this.unplaced=i,this.frontier=[],this.placed=fn.empty;for(let o=0;o<=t.depth;o++){let s=t.node(o);this.frontier.push({type:s.type,match:s.contentMatchAt(t.indexAfter(o))})}for(let o=t.depth;o>0;o--)this.placed=fn.from(t.node(o).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){for(;this.unplaced.size;){let u=this.findFittable();u?this.placeNodes(u):this.openMore()||this.dropNode()}let t=this.mustMoveInline(),n=this.placed.size-this.depth-this.$from.depth,i=this.$from,o=this.close(t<0?this.$to:i.doc.resolve(t));if(!o)return null;let s=this.placed,r=i.depth,a=o.depth;for(;r&&a&&s.childCount==1;)s=s.firstChild.content,r--,a--;let l=new kn(s,r,a);return t>-1?new Ml(i.pos,t,this.$to.pos,this.$to.end(),l,n):l.size||i.pos!=this.$to.pos?new ir(i.pos,o.pos,l):null}findFittable(){let t=this.unplaced.openStart;for(let n=this.unplaced.content,i=0,o=this.unplaced.openEnd;i1&&(o=0),s.type.spec.isolating&&o<=i){t=i;break}n=s.content}for(let n=1;n<=2;n++)for(let i=n==1?t:this.unplaced.openStart;i>=0;i--){let o,s=null;i?(s=w5(this.unplaced.content,i-1).firstChild,o=s.content):o=this.unplaced.content;let r=o.firstChild;for(let a=this.depth;a>=0;a--){let{type:l,match:u}=this.frontier[a],c,d=null;if(n==1&&(r?u.matchType(r.type)||(d=u.fillBefore(fn.from(r),!1)):s&&l.compatibleContent(s.type)))return{sliceDepth:i,frontierDepth:a,parent:s,inject:d};if(n==2&&r&&(c=u.findWrapping(r.type)))return{sliceDepth:i,frontierDepth:a,parent:s,wrap:c};if(s&&u.matchType(s.type))break}}}openMore(){let{content:t,openStart:n,openEnd:i}=this.unplaced,o=w5(t,n);return!o.childCount||o.firstChild.isLeaf?!1:(this.unplaced=new kn(t,n+1,Math.max(i,o.size+n>=t.size-i?n+1:0)),!0)}dropNode(){let{content:t,openStart:n,openEnd:i}=this.unplaced,o=w5(t,n);if(o.childCount<=1&&n>0){let s=t.size-n<=n+o.size;this.unplaced=new kn(Nv(t,n-1,1),n-1,s?n-1:i)}else this.unplaced=new kn(Nv(t,n,1),n,i)}placeNodes({sliceDepth:t,frontierDepth:n,parent:i,inject:o,wrap:s}){for(;this.depth>n;)this.closeFrontierNode();if(s)for(let g=0;g1||l==0||g.content.size)&&(d=v,c.push(lY(g.mark(f.allowedMarks(g.marks)),u==1?l:0,u==a.childCount?h:-1)))}let m=u==a.childCount;m||(h=-1),this.placed=Lv(this.placed,n,fn.from(c)),this.frontier[n].match=d,m&&h<0&&i&&i.type==this.frontier[this.depth].type&&this.frontier.length>1&&this.closeFrontierNode();for(let g=0,v=a;g1&&o==this.$to.end(--i);)++o;return o}findCloseLevel(t){e:for(let n=Math.min(this.depth,t.depth);n>=0;n--){let{match:i,type:o}=this.frontier[n],s=n=0;a--){let{match:l,type:u}=this.frontier[a],c=C5(t,a,u,l,!0);if(!c||c.childCount)continue e}return{depth:n,fit:r,move:s?t.doc.resolve(t.after(n+1)):t}}}}close(t){let n=this.findCloseLevel(t);if(!n)return null;for(;this.depth>n.depth;)this.closeFrontierNode();n.fit.childCount&&(this.placed=Lv(this.placed,n.depth,n.fit)),t=n.move;for(let i=n.depth+1;i<=t.depth;i++){let o=t.node(i),s=o.type.contentMatch.fillBefore(o.content,!0,t.index(i));this.openFrontierNode(o.type,o.attrs,s)}return t}openFrontierNode(t,n=null,i){let o=this.frontier[this.depth];o.match=o.match.matchType(t),this.placed=Lv(this.placed,this.depth,fn.from(t.create(n,i))),this.frontier.push({type:t,match:t.contentMatch})}closeFrontierNode(){let n=this.frontier.pop().match.fillBefore(fn.empty,!0);n.childCount&&(this.placed=Lv(this.placed,this.frontier.length,n))}}function Nv(e,t,n){return t==0?e.cutByIndex(n,e.childCount):e.replaceChild(0,e.firstChild.copy(Nv(e.firstChild.content,t-1,n)))}function Lv(e,t,n){return t==0?e.append(n):e.replaceChild(e.childCount-1,e.lastChild.copy(Lv(e.lastChild.content,t-1,n)))}function w5(e,t){for(let n=0;n1&&(i=i.replaceChild(0,lY(i.firstChild,t-1,i.childCount==1?n-1:0))),t>0&&(i=e.type.contentMatch.fillBefore(i).append(i),n<=0&&(i=i.append(e.type.contentMatch.matchFragment(i).fillBefore(fn.empty,!0)))),e.copy(i)}function C5(e,t,n,i,o){let s=e.node(t),r=o?e.indexAfter(t):e.index(t);if(r==s.childCount&&!n.compatibleContent(s.type))return null;let a=i.fillBefore(s.content,!0,r);return a&&!LFe(n,s.content,r)?a:null}function LFe(e,t,n){for(let i=n;i0;f--,h--){let m=o.node(f).type.spec;if(m.defining||m.definingAsContext||m.isolating)break;r.indexOf(f)>-1?a=f:o.before(f)==h&&r.splice(1,0,-f)}let l=r.indexOf(a),u=[],c=i.openStart;for(let f=i.content,h=0;;h++){let m=f.firstChild;if(u.push(m),h==i.openStart)break;f=m.content}for(let f=c-1;f>=0;f--){let h=u[f],m=PFe(h.type);if(m&&!h.sameMarkup(o.node(Math.abs(a)-1)))c=f;else if(m||!h.type.isTextblock)break}for(let f=i.openStart;f>=0;f--){let h=(f+c+1)%(i.openStart+1),m=u[h];if(m)for(let g=0;g=0&&(e.replace(t,n,i),!(e.steps.length>d));f--){let h=r[f];h<0||(t=o.before(h),n=s.after(h))}}function uY(e,t,n,i,o){if(ti){let s=o.contentMatchAt(0),r=s.fillBefore(e).append(e);e=r.append(s.matchFragment(r).fillBefore(fn.empty,!0))}return e}function zFe(e,t,n,i){if(!i.isInline&&t==n&&e.doc.resolve(t).parent.content.size){let o=RFe(e.doc,t,i.type);o!=null&&(t=n=o)}e.replaceRange(t,n,new kn(fn.from(i),0,0))}function $Fe(e,t,n){let i=e.doc.resolve(t),o=e.doc.resolve(n);if(i.parent.isTextblock&&o.parent.isTextblock&&i.start()!=o.start()&&i.parentOffset==0&&o.parentOffset==0){let r=i.sharedDepth(n),a=!1;for(let l=i.depth;l>r;l--)i.node(l).type.spec.isolating&&(a=!0);for(let l=o.depth;l>r;l--)o.node(l).type.spec.isolating&&(a=!0);if(!a){for(let l=i.depth;l>0&&t==i.start(l);l--)t=i.before(l);for(let l=o.depth;l>0&&n==o.start(l);l--)n=o.before(l);i=e.doc.resolve(t),o=e.doc.resolve(n)}}let s=cY(i,o);for(let r=0;r0&&(l||i.node(a-1).canReplace(i.index(a-1),o.indexAfter(a-1))))return e.delete(i.before(a),o.after(a))}for(let r=1;r<=i.depth&&r<=o.depth;r++)if(t-i.start(r)==i.depth-r&&n>i.end(r)&&o.end(r)-n!=o.depth-r&&i.start(r-1)==o.start(r-1)&&i.node(r-1).canReplace(i.index(r-1),o.index(r-1)))return e.delete(i.before(r),n);e.delete(t,n)}function cY(e,t){let n=[],i=Math.min(e.depth,t.depth);for(let o=i;o>=0;o--){let s=e.start(o);if(st.pos+(t.depth-o)||e.node(o).type.spec.isolating||t.node(o).type.spec.isolating)break;(s==t.start(o)||o==e.depth&&o==t.depth&&e.parent.inlineContent&&t.parent.inlineContent&&o&&t.start(o-1)==s-1)&&n.push(o)}return n}class mg extends ar{constructor(t,n,i){super(),this.pos=t,this.attr=n,this.value=i}apply(t){let n=t.nodeAt(this.pos);if(!n)return as.fail("No node at attribute step's position");let i=Object.create(null);for(let s in n.attrs)i[s]=n.attrs[s];i[this.attr]=this.value;let o=n.type.create(i,null,n.marks);return as.fromReplace(t,this.pos,this.pos+1,new kn(fn.from(o),0,n.isLeaf?0:1))}getMap(){return Oa.empty}invert(t){return new mg(this.pos,this.attr,t.nodeAt(this.pos).attrs[this.attr])}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new mg(n.pos,this.attr,this.value)}toJSON(){return{stepType:"attr",pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(t,n){if(typeof n.pos!="number"||typeof n.attr!="string")throw new RangeError("Invalid input for AttrStep.fromJSON");return new mg(n.pos,n.attr,n.value)}}ar.jsonID("attr",mg);class k2 extends ar{constructor(t,n){super(),this.attr=t,this.value=n}apply(t){let n=Object.create(null);for(let o in t.attrs)n[o]=t.attrs[o];n[this.attr]=this.value;let i=t.type.create(n,t.content,t.marks);return as.ok(i)}getMap(){return Oa.empty}invert(t){return new k2(this.attr,t.attrs[this.attr])}map(t){return this}toJSON(){return{stepType:"docAttr",attr:this.attr,value:this.value}}static fromJSON(t,n){if(typeof n.attr!="string")throw new RangeError("Invalid input for DocAttrStep.fromJSON");return new k2(n.attr,n.value)}}ar.jsonID("docAttr",k2);let Lg=class extends Error{};Lg=function e(t){let n=Error.call(this,t);return n.__proto__=e.prototype,n};Lg.prototype=Object.create(Error.prototype);Lg.prototype.constructor=Lg;Lg.prototype.name="TransformError";class jFe{constructor(t){this.doc=t,this.steps=[],this.docs=[],this.mapping=new y2}get before(){return this.docs.length?this.docs[0]:this.doc}step(t){let n=this.maybeStep(t);if(n.failed)throw new Lg(n.failed);return this}maybeStep(t){let n=t.apply(this.doc);return n.failed||this.addStep(t,n.doc),n}get docChanged(){return this.steps.length>0}changedRange(){let t=1e9,n=-1e9;for(let i=0;i{t=Math.min(t,a),n=Math.max(n,l)})}return t==1e9?null:{from:t,to:n}}addStep(t,n){this.docs.push(this.doc),this.steps.push(t),this.mapping.appendMap(t.getMap()),this.doc=n}replace(t,n=t,i=kn.empty){let o=jI(this.doc,t,n,i);return o&&this.step(o),this}replaceWith(t,n,i){return this.replace(t,n,new kn(fn.from(i),0,0))}delete(t,n){return this.replace(t,n,kn.empty)}insert(t,n){return this.replaceWith(t,t,n)}replaceRange(t,n,i){return OFe(this,t,n,i),this}replaceRangeWith(t,n,i){return zFe(this,t,n,i),this}deleteRange(t,n){return $Fe(this,t,n),this}lift(t,n){return SFe(this,t,n),this}join(t,n=1){return FFe(this,t,n),this}wrap(t,n){return xFe(this,t,n),this}setBlockType(t,n=t,i,o=null){return _Fe(this,t,n,i,o),this}setNodeMarkup(t,n,i=null,o){return IFe(this,t,n,i,o),this}setNodeAttribute(t,n,i){return this.step(new mg(t,n,i)),this}setDocAttribute(t,n){return this.step(new k2(t,n)),this}addNodeMark(t,n){return this.step(new Qf(t,n)),this}removeNodeMark(t,n){let i=this.doc.nodeAt(t);if(!i)throw new RangeError("No node at position "+t);if(n instanceof $i)n.isInSet(i.marks)&&this.step(new A1(t,n));else{let o=i.marks,s,r=[];for(;s=n.isInSet(o);)r.push(new A1(t,s)),o=s.removeFromSet(o);for(let a=r.length-1;a>=0;a--)this.step(r[a])}return this}split(t,n=1,i){return MFe(this,t,n,i),this}addMark(t,n,i){return bFe(this,t,n,i),this}removeMark(t,n,i){return wFe(this,t,n,i),this}clearIncompatible(t,n,i){return zI(this,t,n,i),this}}const S5=Object.create(null);class zi{constructor(t,n,i){this.$anchor=t,this.$head=n,this.ranges=i||[new HFe(t.min(n),t.max(n))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let t=this.ranges;for(let n=0;n=0;s--){let r=n<0?xm(t.node(0),t.node(s),t.before(s+1),t.index(s),n,i):xm(t.node(0),t.node(s),t.after(s+1),t.index(s)+1,n,i);if(r)return r}return null}static near(t,n=1){return this.findFrom(t,n)||this.findFrom(t,-n)||new Tl(t.node(0))}static atStart(t){return xm(t,t,0,0,1)||new Tl(t)}static atEnd(t){return xm(t,t,t.content.size,t.childCount,-1)||new Tl(t)}static fromJSON(t,n){if(!n||!n.type)throw new RangeError("Invalid input for Selection.fromJSON");let i=S5[n.type];if(!i)throw new RangeError(`No selection type ${n.type} defined`);return i.fromJSON(t,n)}static jsonID(t,n){if(t in S5)throw new RangeError("Duplicate use of selection JSON ID "+t);return S5[t]=n,n.prototype.jsonID=t,n}getBookmark(){return si.between(this.$anchor,this.$head).getBookmark()}}zi.prototype.visible=!0;class HFe{constructor(t,n){this.$from=t,this.$to=n}}let KO=!1;function ZO(e){!KO&&!e.parent.inlineContent&&(KO=!0,console.warn("TextSelection endpoint not pointing into a node with inline content ("+e.parent.type.name+")"))}class si extends zi{constructor(t,n=t){ZO(t),ZO(n),super(t,n)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(t,n){let i=t.resolve(n.map(this.head));if(!i.parent.inlineContent)return zi.near(i);let o=t.resolve(n.map(this.anchor));return new si(o.parent.inlineContent?o:i,i)}replace(t,n=kn.empty){if(super.replace(t,n),n==kn.empty){let i=this.$from.marksAcross(this.$to);i&&t.ensureMarks(i)}}eq(t){return t instanceof si&&t.anchor==this.anchor&&t.head==this.head}getBookmark(){return new SC(this.anchor,this.head)}toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}static fromJSON(t,n){if(typeof n.anchor!="number"||typeof n.head!="number")throw new RangeError("Invalid input for TextSelection.fromJSON");return new si(t.resolve(n.anchor),t.resolve(n.head))}static create(t,n,i=n){let o=t.resolve(n);return new this(o,i==n?o:t.resolve(i))}static between(t,n,i){let o=t.pos-n.pos;if((!i||o)&&(i=o>=0?1:-1),!n.parent.inlineContent){let s=zi.findFrom(n,i,!0)||zi.findFrom(n,-i,!0);if(s)n=s.$head;else return zi.near(n,i)}return t.parent.inlineContent||(o==0?t=n:(t=(zi.findFrom(t,-i,!0)||zi.findFrom(t,i,!0)).$anchor,t.pos0?0:1);o>0?r=0;r+=o){let a=t.child(r);if(a.isAtom){if(!s&&Yn.isSelectable(a))return Yn.create(e,n-(o<0?a.nodeSize:0))}else{let l=xm(e,a,n+o,o<0?a.childCount:0,o,s);if(l)return l}n+=a.nodeSize*o}return null}function YO(e,t,n){let i=e.steps.length-1;if(i{r==null&&(r=c)}),e.setSelection(zi.near(e.doc.resolve(r),n))}const JO=1,jk=2,XO=4;class WFe extends jFe{constructor(t){super(t.doc),this.curSelectionFor=0,this.updated=0,this.meta=Object.create(null),this.time=Date.now(),this.curSelection=t.selection,this.storedMarks=t.storedMarks}get selection(){return this.curSelectionFor0}setStoredMarks(t){return this.storedMarks=t,this.updated|=jk,this}ensureMarks(t){return $i.sameSet(this.storedMarks||this.selection.$from.marks(),t)||this.setStoredMarks(t),this}addStoredMark(t){return this.ensureMarks(t.addToSet(this.storedMarks||this.selection.$head.marks()))}removeStoredMark(t){return this.ensureMarks(t.removeFromSet(this.storedMarks||this.selection.$head.marks()))}get storedMarksSet(){return(this.updated&jk)>0}addStep(t,n){super.addStep(t,n),this.updated=this.updated&~jk,this.storedMarks=null}setTime(t){return this.time=t,this}replaceSelection(t){return this.selection.replace(this,t),this}replaceSelectionWith(t,n=!0){let i=this.selection;return n&&(t=t.mark(this.storedMarks||(i.empty?i.$from.marks():i.$from.marksAcross(i.$to)||$i.none))),i.replaceWith(this,t),this}deleteSelection(){return this.selection.replace(this),this}insertText(t,n,i){let o=this.doc.type.schema;if(n==null)return t?this.replaceSelectionWith(o.text(t),!0):this.deleteSelection();{if(i==null&&(i=n),!t)return this.deleteRange(n,i);let s=this.storedMarks;if(!s){let r=this.doc.resolve(n);s=i==n?r.marks():r.marksAcross(this.doc.resolve(i))}return this.replaceRangeWith(n,i,o.text(t,s)),!this.selection.empty&&this.selection.to==n+t.length&&this.setSelection(zi.near(this.selection.$to)),this}}setMeta(t,n){return this.meta[typeof t=="string"?t:t.key]=n,this}getMeta(t){return this.meta[typeof t=="string"?t:t.key]}get isGeneric(){for(let t in this.meta)return!1;return!0}scrollIntoView(){return this.updated|=XO,this}get scrolledIntoView(){return(this.updated&XO)>0}}function ez(e,t){return!t||!e?e:e.bind(t)}class Pv{constructor(t,n,i){this.name=t,this.init=ez(n.init,i),this.apply=ez(n.apply,i)}}const QFe=[new Pv("doc",{init(e){return e.doc||e.schema.topNodeType.createAndFill()},apply(e){return e.doc}}),new Pv("selection",{init(e,t){return e.selection||zi.atStart(t.doc)},apply(e){return e.selection}}),new Pv("storedMarks",{init(e){return e.storedMarks||null},apply(e,t,n,i){return i.selection.$cursor?e.storedMarks:null}}),new Pv("scrollToSelection",{init(){return 0},apply(e,t){return e.scrolledIntoView?t+1:t}})];class x5{constructor(t,n){this.schema=t,this.plugins=[],this.pluginsByKey=Object.create(null),this.fields=QFe.slice(),n&&n.forEach(i=>{if(this.pluginsByKey[i.key])throw new RangeError("Adding different instances of a keyed plugin ("+i.key+")");this.plugins.push(i),this.pluginsByKey[i.key]=i,i.spec.state&&this.fields.push(new Pv(i.key,i.spec.state,i))})}}class Pp{constructor(t){this.config=t}get schema(){return this.config.schema}get plugins(){return this.config.plugins}apply(t){return this.applyTransaction(t).state}filterTransaction(t,n=-1){for(let i=0;ii.toJSON())),t&&typeof t=="object")for(let i in t){if(i=="doc"||i=="selection")throw new RangeError("The JSON fields `doc` and `selection` are reserved");let o=t[i],s=o.spec.state;s&&s.toJSON&&(n[i]=s.toJSON.call(o,this[o.key]))}return n}static fromJSON(t,n,i){if(!n)throw new RangeError("Invalid input for EditorState.fromJSON");if(!t.schema)throw new RangeError("Required config field 'schema' missing");let o=new x5(t.schema,t.plugins),s=new Pp(o);return o.fields.forEach(r=>{if(r.name=="doc")s.doc=i1.fromJSON(t.schema,n.doc);else if(r.name=="selection")s.selection=zi.fromJSON(s.doc,n.selection);else if(r.name=="storedMarks")n.storedMarks&&(s.storedMarks=n.storedMarks.map(t.schema.markFromJSON));else{if(i)for(let a in i){let l=i[a],u=l.spec.state;if(l.key==r.name&&u&&u.fromJSON&&Object.prototype.hasOwnProperty.call(n,a)){s[r.name]=u.fromJSON.call(l,t,n[a],s);return}}s[r.name]=r.init(t,s)}}),s}}function dY(e,t,n){for(let i in e){let o=e[i];o instanceof Function?o=o.bind(t):i=="handleDOMEvents"&&(o=dY(o,t,{})),n[i]=o}return n}class r0{constructor(t){this.spec=t,this.props={},t.props&&dY(t.props,this,this.props),this.key=t.key?t.key.key:fY("plugin")}getState(t){return t[this.key]}}const _5=Object.create(null);function fY(e){return e in _5?e+"$"+ ++_5[e]:(_5[e]=0,e+"$")}class xC{constructor(t="key"){this.key=fY(t)}get(t){return t.config.pluginsByKey[this.key]}getState(t){return t[this.key]}}function IA(e){return e.isText?e.text.length:e.type===ti.nodes.attachment?kh(e.attrs).length:e.type===ti.nodes.quote?kC(e.attrs).length:D1(e.attrs).length}function VFe(e,t){if(!t.parent.isTextblock)return $c(e,t.pos);if(t.textOffset>0)return $c(e,t.pos-t.textOffset);const n=t.nodeBefore;return n&&n.isText?$c(e,t.pos-n.nodeSize):$c(e,t.pos)}function $d(e,t){let n=Math.max(0,t),i=-1;return e.forEach((o,s)=>{if(i!==-1)return;let r=0;if(o.forEach(a=>{r+=IA(a)}),n>r){n-=r+1;return}o.forEach((a,l)=>{if(i!==-1)return;const u=s+1+l,c=IA(a);if(n<=c){a.isText?i=u+n:i=n===0?u:u+1;return}n-=c}),i===-1&&(i=s+1+o.content.size)}),i===-1?e.content.size-1:i}function $c(e,t){let n=0,i=-1;return e.forEach((o,s)=>{if(i!==-1)return;const r=s+o.nodeSize;if(t>r){o.forEach(l=>{n+=IA(l)}),n+=1;return}let a=0;o.forEach((l,u)=>{if(i!==-1)return;const c=s+1+u;if(l.isText){const d=c+l.nodeSize;if(t<=d){i=n+a+Math.max(0,t-c);return}a+=l.text.length}else{const d=c+1;if(t<=d){i=n+a+(t<=c?0:IA(l));return}a+=IA(l)}}),i===-1&&(i=n+a)}),i===-1?n:i}function GFe(e){const t=[];return e.forEach(n=>{n.forEach(i=>{!i.isText&&i.type===ti.nodes.mention&&i.attrs.kind==="skill"&&t.push({name:i.attrs.name})})}),t}function tz(e){return(t,n)=>{const i=t.selection.$head,o=e?i.start():i.end();return n&&n(t.tr.setSelection(si.create(t.doc,t.selection.$anchor.pos,o)).scrollIntoView()),!0}}var Pw=200,rr=function(){};rr.prototype.append=function(t){return t.length?(t=rr.from(t),!this.length&&t||t.length=n?rr.empty:this.sliceInner(Math.max(0,t),Math.min(this.length,n))};rr.prototype.get=function(t){if(!(t<0||t>=this.length))return this.getInner(t)};rr.prototype.forEach=function(t,n,i){n===void 0&&(n=0),i===void 0&&(i=this.length),n<=i?this.forEachInner(t,n,i,0):this.forEachInvertedInner(t,n,i,0)};rr.prototype.map=function(t,n,i){n===void 0&&(n=0),i===void 0&&(i=this.length);var o=[];return this.forEach(function(s,r){return o.push(t(s,r))},n,i),o};rr.from=function(t){return t instanceof rr?t:t&&t.length?new hY(t):rr.empty};var hY=(function(e){function t(i){e.call(this),this.values=i}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={length:{configurable:!0},depth:{configurable:!0}};return t.prototype.flatten=function(){return this.values},t.prototype.sliceInner=function(o,s){return o==0&&s==this.length?this:new t(this.values.slice(o,s))},t.prototype.getInner=function(o){return this.values[o]},t.prototype.forEachInner=function(o,s,r,a){for(var l=s;l=r;l--)if(o(this.values[l],a+l)===!1)return!1},t.prototype.leafAppend=function(o){if(this.length+o.length<=Pw)return new t(this.values.concat(o.flatten()))},t.prototype.leafPrepend=function(o){if(this.length+o.length<=Pw)return new t(o.flatten().concat(this.values))},n.length.get=function(){return this.values.length},n.depth.get=function(){return 0},Object.defineProperties(t.prototype,n),t})(rr);rr.empty=new hY([]);var qFe=(function(e){function t(n,i){e.call(this),this.left=n,this.right=i,this.length=n.length+i.length,this.depth=Math.max(n.depth,i.depth)+1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},t.prototype.getInner=function(i){return ia&&this.right.forEachInner(i,Math.max(o-a,0),Math.min(this.length,s)-a,r+a)===!1)return!1},t.prototype.forEachInvertedInner=function(i,o,s,r){var a=this.left.length;if(o>a&&this.right.forEachInvertedInner(i,o-a,Math.max(s,a)-a,r+a)===!1||s=s?this.right.slice(i-s,o-s):this.left.slice(i,s).append(this.right.slice(0,o-s))},t.prototype.leafAppend=function(i){var o=this.right.leafAppend(i);if(o)return new t(this.left,o)},t.prototype.leafPrepend=function(i){var o=this.left.leafPrepend(i);if(o)return new t(o,this.right)},t.prototype.appendInner=function(i){return this.left.depth>=Math.max(this.right.depth,i.depth)+1?new t(this.left,new t(this.right,i)):new t(this,i)},t})(rr);const KFe=500;class ju{constructor(t,n){this.items=t,this.eventCount=n}popEvent(t,n){if(this.eventCount==0)return null;let i=this.items.length;for(;;i--)if(this.items.get(i-1).selection){--i;break}let o,s;n&&(o=this.remapping(i,this.items.length),s=o.maps.length);let r=t.tr,a,l,u=[],c=[];return this.items.forEach((d,f)=>{if(!d.step){o||(o=this.remapping(i,f+1),s=o.maps.length),s--,c.push(d);return}if(o){c.push(new xc(d.map));let h=d.step.map(o.slice(s)),m;h&&r.maybeStep(h).doc&&(m=r.mapping.maps[r.mapping.maps.length-1],u.push(new xc(m,void 0,void 0,u.length+c.length))),s--,m&&o.appendMap(m,s)}else r.maybeStep(d.step);if(d.selection)return a=o?d.selection.map(o.slice(s)):d.selection,l=new ju(this.items.slice(0,i).append(c.reverse().concat(u)),this.eventCount-1),!1},this.items.length,0),{remaining:l,transform:r,selection:a}}addTransform(t,n,i,o){let s=[],r=this.eventCount,a=this.items,l=!o&&a.length?a.get(a.length-1):null;for(let c=0;cYFe&&(a=ZFe(a,u),r-=u),new ju(a.append(s),r)}remapping(t,n){let i=new y2;return this.items.forEach((o,s)=>{let r=o.mirrorOffset!=null&&s-o.mirrorOffset>=t?i.maps.length-o.mirrorOffset:void 0;i.appendMap(o.map,r)},t,n),i}addMaps(t){return this.eventCount==0?this:new ju(this.items.append(t.map(n=>new xc(n))),this.eventCount)}rebased(t,n){if(!this.eventCount)return this;let i=[],o=Math.max(0,this.items.length-n),s=t.mapping,r=t.steps.length,a=this.eventCount;this.items.forEach(f=>{f.selection&&a--},o);let l=n;this.items.forEach(f=>{let h=s.getMirror(--l);if(h==null)return;r=Math.min(r,h);let m=s.maps[h];if(f.step){let g=t.steps[h].invert(t.docs[h]),v=f.selection&&f.selection.map(s.slice(l+1,h));v&&a++,i.push(new xc(m,g,v))}else i.push(new xc(m))},o);let u=[];for(let f=n;fKFe&&(d=d.compress(this.items.length-i.length)),d}emptyItemCount(){let t=0;return this.items.forEach(n=>{n.step||t++}),t}compress(t=this.items.length){let n=this.remapping(0,t),i=n.maps.length,o=[],s=0;return this.items.forEach((r,a)=>{if(a>=t)o.push(r),r.selection&&s++;else if(r.step){let l=r.step.map(n.slice(i)),u=l&&l.getMap();if(i--,u&&n.appendMap(u,i),l){let c=r.selection&&r.selection.map(n.slice(i));c&&s++;let d=new xc(u.invert(),l,c),f,h=o.length-1;(f=o.length&&o[h].merge(d))?o[h]=f:o.push(d)}}else r.map&&i--},this.items.length,0),new ju(rr.from(o.reverse()),s)}}ju.empty=new ju(rr.empty,0);function ZFe(e,t){let n;return e.forEach((i,o)=>{if(i.selection&&t--==0)return n=o,!1}),e.slice(n)}class xc{constructor(t,n,i,o){this.map=t,this.step=n,this.selection=i,this.mirrorOffset=o}merge(t){if(this.step&&t.step&&!t.selection){let n=t.step.merge(this.step);if(n)return new xc(n.getMap().invert(),n,this.selection)}}}class Ff{constructor(t,n,i,o,s){this.done=t,this.undone=n,this.prevRanges=i,this.prevTime=o,this.prevComposition=s}}const YFe=20;function JFe(e,t,n,i){let o=n.getMeta(o1),s;if(o)return o.historyState;n.getMeta(mY)&&(e=new Ff(e.done,e.undone,null,0,-1));let r=n.getMeta("appendedTransaction");if(n.steps.length==0)return e;if(r&&r.getMeta(o1))return r.getMeta(o1).redo?new Ff(e.done.addTransform(n,void 0,i,Y9(t)),e.undone,nz(n.mapping.maps),e.prevTime,e.prevComposition):new Ff(e.done,e.undone.addTransform(n,void 0,i,Y9(t)),null,e.prevTime,e.prevComposition);if(n.getMeta("addToHistory")!==!1&&!(r&&r.getMeta("addToHistory")===!1)){let a=n.getMeta("composition"),l=e.prevTime==0||!r&&e.prevComposition!=a&&(e.prevTime<(n.time||0)-i.newGroupDelay||!XFe(n,e.prevRanges)),u=r?E5(e.prevRanges,n.mapping):nz(n.mapping.maps);return new Ff(e.done.addTransform(n,l?t.selection.getBookmark():void 0,i,Y9(t)),ju.empty,u,n.time,a??e.prevComposition)}else return(s=n.getMeta("rebased"))?new Ff(e.done.rebased(n,s),e.undone.rebased(n,s),E5(e.prevRanges,n.mapping),e.prevTime,e.prevComposition):new Ff(e.done.addMaps(n.mapping.maps),e.undone.addMaps(n.mapping.maps),E5(e.prevRanges,n.mapping),e.prevTime,e.prevComposition)}function XFe(e,t){if(!t)return!1;if(!e.docChanged)return!0;let n=!1;return e.mapping.maps[0].forEach((i,o)=>{for(let s=0;s=t[s]&&(n=!0)}),n}function nz(e){let t=[];for(let n=e.length-1;n>=0&&t.length==0;n--)e[n].forEach((i,o,s,r)=>t.push(s,r));return t}function E5(e,t){if(!e)return null;let n=[];for(let i=0;i{let o=o1.getState(n);if(!o||(e?o.undone:o.done).eventCount==0)return!1;if(i){let s=eRe(o,n,e);s&&i(t?s.scrollIntoView():s)}return!0}}const vY=gY(!1,!0),nx=gY(!0,!0);function nRe(e,t,n){const i=$d(e.doc,n.start),o=$d(e.doc,n.end),s=A2(e.doc),r=n.start>0?s.charAt(n.start-1):"",a=s.charAt(n.end),l=[];(r==="!"||r==="\\")&&l.push(ti.text(" ")),l.push(ZZ(t)),(a===""||!/\s/.test(a))&&l.push(ti.text(" "));const u=e.tr.replaceWith(i,o,l);return u.setSelection(si.create(u.doc,i+l.reduce((c,d)=>c+d.nodeSize,0))),u.scrollIntoView()}function iRe(e,t,n){const i=$d(e.doc,n.start),o=$d(e.doc,n.end),s=e.tr.insertText(t,i,o);return s.setSelection(si.create(s.doc,i+t.length)),pY(s.scrollIntoView())}function oRe(e,t,n){const i=n?n.start:$c(e.doc,e.selection.from),o=n?n.end:$c(e.doc,e.selection.to),s=$d(e.doc,i),r=$d(e.doc,o),a=A2(e.doc),l=i>0?a.charAt(i-1):"",u=a.charAt(o),c=[];(l==="!"||l==="\\")&&c.push(ti.text(" ")),c.push(YZ(t)),(u===""||!/\s/.test(u))&&c.push(ti.text(" "));const d=e.tr.replaceWith(s,r,c);return d.setSelection(si.create(d.doc,s+c.reduce((f,h)=>f+h.nodeSize,0))),d.scrollIntoView()}function sRe(e,t,n){const i=e.selection.to,o=A2(e.doc),s=$c(e.doc,i),r=s>0?o.charAt(s-1):"",a=o.charAt(s),l=[];r!==""&&!/\s/.test(r)&&l.push(ti.text(" ")),l.push(JZ(n!==void 0&&n.length>0?{...t,comment:n}:t)),(a===""||!/\s/.test(a))&&l.push(ti.text(" "));const u=e.tr.replaceWith(i,i,l);return u.setSelection(si.create(u.doc,i+l.reduce((c,d)=>c+d.nodeSize,0))),u.scrollIntoView()}function Hk(e,t){return kn.maxOpen(v2(e.replace(/\r\n?/g,` -`),t).content)}function oz(e){const t=typeof e.source=="string"&&e.source.length>0?`from: ${LI(e.source)} -`:"",n=typeof e.comment=="string"&&e.comment.length>0?` - -${e.comment}`:"";return`${t}${IZ(e.text)}${n}`}function AY(e){const t=i=>i.isText?i.text??"":i.type===ti.nodes.mention?D1(i.attrs):i.type===ti.nodes.attachment?i.attrs.name:i.type===ti.nodes.quote?oz(i.attrs):i.textBetween(0,i.content.size,""),n=[];return e.content.forEach(i=>{if(i.type===ti.nodes.mention||i.type===ti.nodes.attachment||i.type===ti.nodes.quote)n.push(t(i));else{let o="",s=!1;i.forEach(r=>{if(r.type===ti.nodes.quote){const l=oz(r.attrs);o=o.length>0?`${o.replace(/ +$/,"")} - -${l}`:l,s=!0;return}let a=t(r);s&&(a=a.replace(/^ /,""),o+=` - -`,s=!1),o+=a}),n.push(o)}}),n.join(` -`)}const ix=` - - - - -`,yY=` - - - - -`,kY='',bY=` - - - -`,wY=` - - -`,CY='',SY=` - - -`,xY=` - - -`,_Y=` - - -`,rRe='',aRe='',lRe='',uRe='',cRe='',dRe={sm:14,md:16,lg:20},fRe={file:ix,folder:yY,skill:kY,copy:bY,check:wY,"external-link":CY,target:SY,"file-edit":xY,close:_Y,attachment:rRe,image:aRe,video:lRe,fullscreen:uRe,quote:cRe};function ba(e,t="md"){const n=dRe[t];return fRe[e].replace(/]*>/,i=>i.replace(/\s(?:width|height)="[^"]*"/g,"")).replace(/^
      ${r}`}function YNe(e,t,n){return(n.xhtmlOut?`
      +`:`
      +`)+`
      +
        +`}function JNe(){return`
      +
      +`}function XNe(e,t,n,i,o){let s=o.rules.footnote_anchor_name(e,t,n,i,o);return e[t].meta.subId>0&&(s+=`:${e[t].meta.subId}`),`
    1. `}function eBe(){return`
    2. +`}function tBe(e,t,n,i,o){let s=o.rules.footnote_anchor_name(e,t,n,i,o);return e[t].meta.subId>0&&(s+=`:${e[t].meta.subId}`),` ↩︎`}function nBe(e){const t=e.helpers.parseLinkLabel,n=e.utils.isSpace;e.renderer.rules.footnote_ref=QNe,e.renderer.rules.footnote_block_open=YNe,e.renderer.rules.footnote_block_close=JNe,e.renderer.rules.footnote_open=XNe,e.renderer.rules.footnote_close=eBe,e.renderer.rules.footnote_anchor=tBe,e.renderer.rules.footnote_caption=GNe,e.renderer.rules.footnote_anchor_name=ZNe;function i(a,l,c,u){const d=a.bMarks[l]+a.tShift[l],f=a.eMarks[l];if(d+4>f||a.src.charCodeAt(d)!==91||a.src.charCodeAt(d+1)!==94)return!1;let h;for(h=d+2;h=f||a.src.charCodeAt(++h)!==58)return!1;if(u)return!0;h++,a.env.footnotes||(a.env.footnotes={}),a.env.footnotes.refs||(a.env.footnotes.refs={});const m=a.src.slice(d+2,h-2);a.env.footnotes.refs[`:${m}`]=-1;const g=new a.Token("footnote_reference_open","",1);g.meta={label:m},g.level=a.level++,a.tokens.push(g);const y=a.bMarks[l],v=a.tShift[l],k=a.sCount[l],w=a.parentType,C=h,x=a.sCount[l]+h-(a.bMarks[l]+a.tShift[l]);let S=x;for(;h=c||a.src.charCodeAt(u)!==94||a.src.charCodeAt(u+1)!==91)return!1;const d=u+2,f=t(a,u+1);if(f<0)return!1;if(!l){a.env.footnotes||(a.env.footnotes={}),a.env.footnotes.list||(a.env.footnotes.list=[]);const h=a.env.footnotes.list.length,m=[];a.md.inline.parse(a.src.slice(d,f),a.md,a.env,m);const g=a.push("footnote_ref","",0);g.meta={id:h},a.env.footnotes.list[h]={content:a.src.slice(d,f),tokens:m}}return a.pos=f+1,a.posMax=c,!0}function s(a,l){const c=a.posMax,u=a.pos;if(u+3>c||!a.env.footnotes||!a.env.footnotes.refs||a.src.charCodeAt(u)!==91||a.src.charCodeAt(u+1)!==94)return!1;let d;for(d=u+2;d=c)return!1;d++;const f=a.src.slice(u+2,d-1);if(typeof a.env.footnotes.refs[`:${f}`]>"u")return!1;if(!l){a.env.footnotes.list||(a.env.footnotes.list=[]);let h;a.env.footnotes.refs[`:${f}`]<0?(h=a.env.footnotes.list.length,a.env.footnotes.list[h]={label:f,count:0},a.env.footnotes.refs[`:${f}`]=h):h=a.env.footnotes.refs[`:${f}`];const m=a.env.footnotes.list[h].count;a.env.footnotes.list[h].count++;const g=a.push("footnote_ref","",0);g.meta={id:h,subId:m,label:f}}return a.pos=d,a.posMax=c,!0}function r(a){let l,c,u,d=!1;const f={};if(!a.env.footnotes||(a.tokens=a.tokens.filter(function(m){return m.type==="footnote_reference_open"?(d=!0,c=[],u=m.meta.label,!1):m.type==="footnote_reference_close"?(d=!1,f[":"+u]=c,!1):(d&&c.push(m),!d)}),!a.env.footnotes.list))return;const h=a.env.footnotes.list;a.tokens.push(new a.Token("footnote_block_open","",1));for(let m=0,g=h.length;m0?h[m].count:1;for(let w=0;w?@[\]^_`{|}~-])/g;function rBe(e,t){const n=e.posMax,i=e.pos;if(e.src.charCodeAt(i)!==94||t||i+2>=n)return!1;e.pos=i+1;let o=!1;for(;e.pos{t.exports=function(g,y){y=Object.assign({},{disabled:!0,divWrap:!1,divClass:"checkbox",idPrefix:"cbx_",ulClass:"task-list",liClass:"task-list-item"},y),g.core.ruler.after("inline","github-task-lists",function(v){for(var k=v.tokens,w=0,C=2;C=0;k--)if(g[k].level===v)return k;return-1}function o(g,y){return d(g[y])&&f(g[y-1])&&h(g[y-2])&&m(g[y])}function s(g,y,v,k){var w=v.idPrefix+y;g.children[0].content=g.children[0].content.slice(3),g.children.unshift(a(w,k)),g.children.push(l(k)),g.children.unshift(r(g,w,v,k)),v.divWrap&&(g.children.unshift(c(v,k)),g.children.push(u(k)))}function r(g,y,v,k){var w=new k("checkbox_input","input",0);return w.attrs=[["type","checkbox"],["id",y]],/^\[[xX]\][ \u00A0]/.test(g.content)===!0&&w.attrs.push(["checked","true"]),v.disabled===!0&&w.attrs.push(["disabled","true"]),w}function a(g,y){var v=new y("label_open","label",1);return v.attrs=[["for",g]],v}function l(g){return new g("label_close","label",-1)}function c(g,y){var v=new y("checkbox_open","div",0);return v.attrs=[["class",g.divClass]],v}function u(g){return new g("checkbox_close","div",-1)}function d(g){return g.type==="inline"}function f(g){return g.type==="paragraph_open"}function h(g){return g.type==="list_item_open"}function m(g){return/^\[[xX \u00A0]\][ \u00A0]/.test(g.content)}})}),cBe=koe(lBe());const uBe=161,dBe=1114109,fBe=[161,161,164,164,167,168,170,170,173,174,176,180,182,186,188,191,198,198,208,208,215,216,222,225,230,230,232,234,236,237,240,240,242,243,247,250,252,252,254,254,257,257,273,273,275,275,283,283,294,295,299,299,305,307,312,312,319,322,324,324,328,331,333,333,338,339,358,359,363,363,462,462,464,464,466,466,468,468,470,470,472,472,474,474,476,476,593,593,609,609,708,708,711,711,713,715,717,717,720,720,728,731,733,733,735,735,768,879,913,929,931,937,945,961,963,969,1025,1025,1040,1103,1105,1105,8208,8208,8211,8214,8216,8217,8220,8221,8224,8226,8228,8231,8240,8240,8242,8243,8245,8245,8251,8251,8254,8254,8308,8308,8319,8319,8321,8324,8364,8364,8451,8451,8453,8453,8457,8457,8467,8467,8470,8470,8481,8482,8486,8486,8491,8491,8531,8532,8539,8542,8544,8555,8560,8569,8585,8585,8592,8601,8632,8633,8658,8658,8660,8660,8679,8679,8704,8704,8706,8707,8711,8712,8715,8715,8719,8719,8721,8721,8725,8725,8730,8730,8733,8736,8739,8739,8741,8741,8743,8748,8750,8750,8756,8759,8764,8765,8776,8776,8780,8780,8786,8786,8800,8801,8804,8807,8810,8811,8814,8815,8834,8835,8838,8839,8853,8853,8857,8857,8869,8869,8895,8895,8978,8978,9312,9449,9451,9547,9552,9587,9600,9615,9618,9621,9632,9633,9635,9641,9650,9651,9654,9655,9660,9661,9664,9665,9670,9672,9675,9675,9678,9681,9698,9701,9711,9711,9733,9734,9737,9737,9742,9743,9756,9756,9758,9758,9792,9792,9794,9794,9824,9825,9827,9829,9831,9834,9836,9837,9839,9839,9886,9887,9919,9919,9926,9933,9935,9939,9941,9953,9955,9955,9960,9961,9963,9969,9972,9972,9974,9977,9979,9980,9982,9983,10045,10045,10102,10111,11094,11097,12872,12879,57344,63743,65024,65039,65533,65533,127232,127242,127248,127277,127280,127337,127344,127373,127375,127376,127387,127404,917760,917999,983040,1048573,1048576,1114109],hBe=12288,pBe=65510,mBe=[12288,12288,65281,65376,65504,65510],gBe=8361,vBe=65518,yBe=[8361,8361,65377,65470,65474,65479,65482,65487,65490,65495,65498,65500,65512,65518],bBe=32,kBe=10630,wBe=[32,126,162,163,165,166,172,172,175,175,10214,10221,10629,10630],CBe=4352,ABe=262141,woe=[4352,4447,8986,8987,9001,9002,9193,9196,9200,9200,9203,9203,9725,9726,9748,9749,9776,9783,9800,9811,9855,9855,9866,9871,9875,9875,9889,9889,9898,9899,9917,9918,9924,9925,9934,9934,9940,9940,9962,9962,9970,9971,9973,9973,9978,9978,9981,9981,9989,9989,9994,9995,10024,10024,10060,10060,10062,10062,10067,10069,10071,10071,10133,10135,10160,10160,10175,10175,11035,11036,11088,11088,11093,11093,11904,11929,11931,12019,12032,12245,12272,12287,12289,12350,12353,12438,12441,12543,12549,12591,12593,12686,12688,12773,12783,12830,12832,12871,12880,42124,42128,42182,43360,43388,44032,55203,63744,64255,65040,65049,65072,65106,65108,65126,65128,65131,94176,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,119552,119638,119648,119670,126980,126980,127183,127183,127374,127374,127377,127386,127488,127490,127504,127547,127552,127560,127568,127569,127584,127589,127744,127776,127789,127797,127799,127868,127870,127891,127904,127946,127951,127955,127968,127984,127988,127988,127992,128062,128064,128064,128066,128252,128255,128317,128331,128334,128336,128359,128378,128378,128405,128406,128420,128420,128507,128591,128640,128709,128716,128716,128720,128722,128725,128728,128732,128735,128747,128748,128756,128764,128992,129003,129008,129008,129292,129338,129340,129349,129351,129535,129648,129660,129664,129674,129678,129734,129736,129736,129741,129756,129759,129770,129775,129784,131072,196605,196608,262141],tb=(e,t)=>{let n=0,i=Math.floor(e.length/2)-1;for(;n<=i;){const o=Math.floor((n+i)/2),s=o*2;if(te[s+1])n=o+1;else return!0}return!1},CW=19968,[xBe,SBe]=_Be(woe);function _Be(e){let t=e[0],n=e[1];for(let i=0;i=o&&CW<=s)return[o,s];s-o>n-t&&(t=o,n=s)}return[t,n]}const IBe=e=>edBe?!1:tb(fBe,e),TBe=e=>epBe?!1:tb(mBe,e),MBe=e=>evBe?!1:tb(yBe,e),EBe=e=>ekBe?!1:tb(wBe,e),LBe=e=>e>=xBe&&e<=SBe?!0:eABe?!1:tb(woe,e);function RBe(e){return IBe(e)?"ambiguous":TBe(e)?"fullwidth":MBe(e)?"halfwidth":EBe(e)?"narrow":LBe(e)?"wide":"neutral"}function PBe(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function $Be(e){return PBe(e),RBe(e)}function OBe(e){return/^\p{Emoji_Presentation}/u.test(String.fromCodePoint(e))}function JP(e){if(e<4352)return!1;switch($Be(e)){case"fullwidth":case"halfwidth":return!0;case"wide":return!OBe(e);case"narrow":return!1;case"ambiguous":return null;case"neutral":return/^\p{sc=Hangul}/u.test(String.fromCodePoint(e))}}function FBe(e,t){return JP(e)??(t===65025&&n(e));function n(i){return i===8216||i===8217||i===8220||i===8221}}function DBe(e){return JP(e)??(917760<=e&&e<=917999)}function NBe(e){return JP(e)??!1}function BBe(e){return e>=65024&&e<=65038}function zBe(e){const t=e.inline.State;class n extends t{scanDelims(o,s){const r=this.posMax,a=this.src.charCodeAt(o),[l,c]=x(this.src,o);let u=l,d=null;BBe(l)&&(d=x(this.src,c)[0],/^\p{Zs}/u.test(String.fromCodePoint(d))||(u=d));let f=o;for(;f65535?[T,M-2]:[_,M-1]}}}e.inline.State=n}const HBe=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);function jBe(e){return e>=55296&&e<=57343||e>1114111?65533:HBe.get(e)??e}function WBe(e){const t=atob(e),n=t.length&-2,i=new Uint16Array(n/2);for(let o=0,s=0;o=Fs.ZERO&&e<=Fs.NINE}function VBe(e){return e>=Fs.UPPER_A&&e<=Fs.UPPER_F||e>=Fs.LOWER_A&&e<=Fs.LOWER_F}function UBe(e){return e>=Fs.UPPER_A&&e<=Fs.UPPER_Z||e>=Fs.LOWER_A&&e<=Fs.LOWER_Z||HM(e)}function KBe(e){return e===Fs.EQUALS||UBe(e)}var ia;(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(ia||(ia={}));var g1;(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(g1||(g1={}));var ZBe=class{decodeTree;emitCodePoint;errors;constructor(e,t,n){this.decodeTree=e,this.emitCodePoint=t,this.errors=n}state=ia.EntityStart;consumed=1;result=0;treeIndex=0;excess=1;decodeMode=g1.Strict;runConsumed=0;startEntity(e){this.decodeMode=e,this.state=ia.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1,this.runConsumed=0}write(e,t){switch(this.state){case ia.EntityStart:return e.charCodeAt(t)===Fs.NUM?(this.state=ia.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=ia.NamedEntity,this.stateNamedEntity(e,t));case ia.NumericStart:return this.stateNumericStart(e,t);case ia.NumericDecimal:return this.stateNumericDecimal(e,t);case ia.NumericHex:return this.stateNumericHex(e,t);case ia.NamedEntity:return this.stateNamedEntity(e,t)}}stateNumericStart(e,t){return t>=e.length?-1:(e.charCodeAt(t)|AW)===Fs.LOWER_X?(this.state=ia.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=ia.NumericDecimal,this.stateNumericDecimal(e,t))}stateNumericHex(e,t){for(;t>14;for(;t>7;if(this.runConsumed===0){const a=i&ol.JUMP_TABLE;if(e.charCodeAt(t)!==a)return this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}for(;this.runConsumed=e.length)return-1;const a=this.runConsumed-1,l=n[this.treeIndex+1+(a>>1)],c=a%2===0?l&255:l>>8&255;if(e.charCodeAt(t)!==c)return this.runConsumed=0,this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}this.runConsumed=0,this.treeIndex+=1+(r>>1),i=n[this.treeIndex],o=(i&ol.VALUE_LENGTH)>>14}if(t>=e.length)break;const s=e.charCodeAt(t);if(s===Fs.SEMI&&o!==0&&(i&ol.FLAG13)!==0)return this.emitNamedEntityData(this.treeIndex,o,this.consumed+this.excess);if(this.treeIndex=QBe(n,i,this.treeIndex+Math.max(1,o),s),this.treeIndex<0)return this.result===0||this.decodeMode===g1.Attribute&&(o===0||KBe(s))?0:this.emitNotTerminatedNamedEntity();if(i=n[this.treeIndex],o=(i&ol.VALUE_LENGTH)>>14,o!==0){if(s===Fs.SEMI)return this.emitNamedEntityData(this.treeIndex,o,this.consumed+this.excess);this.decodeMode!==g1.Strict&&(i&ol.FLAG13)===0&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}t++,this.excess++}return-1}emitNotTerminatedNamedEntity(){const{result:e,decodeTree:t}=this,n=(t[e]&ol.VALUE_LENGTH)>>14;return this.emitNamedEntityData(e,n,this.consumed),this.errors?.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,n){const{decodeTree:i}=this;return this.emitCodePoint(t===1?i[e]&~(ol.VALUE_LENGTH|ol.FLAG13):i[e+1],n),t===3&&this.emitCodePoint(i[e+2],n),n}end(){switch(this.state){case ia.NamedEntity:return this.result!==0&&(this.decodeMode!==g1.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case ia.NumericDecimal:return this.emitNumericEntity(0,2);case ia.NumericHex:return this.emitNumericEntity(0,3);case ia.NumericStart:return this.errors?.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case ia.EntityStart:return 0}}};function GBe(e){let t="";const n=new ZBe(e,i=>t+=String.fromCodePoint(i));return function(o,s){let r=0,a=0;for(;(a=o.indexOf("&",a))>=0;){t+=o.slice(r,a),n.startEntity(s);const c=n.write(o,a+1);if(c<0){r=a+n.end();break}r=a+c,a=c===0?r+1:r}const l=t+o.slice(r);return t="",l}}function QBe(e,t,n,i){const o=(t&ol.BRANCH_LENGTH)>>7,s=t&ol.JUMP_TABLE;if(o===0)return s!==0&&i===s?n:-1;if(s){const c=i-s;return c<0||c>=o?-1:e[n+c]-1}const r=o+1>>1;let a=0,l=o-1;for(;a<=l;){const c=a+l>>>1,u=e[n+(c>>1)]>>(c&1)*8&255;if(ui)l=c-1;else return e[n+r+c]}return-1}const YBe=GBe(qBe);function XP(e,t=g1.Legacy){return YBe(e,t)}const xW={};function JBe(e){let t=xW[e];if(t)return t;t=xW[e]=[];for(let n=0;n<128;n++){const i=String.fromCharCode(n);t.push(i)}for(let n=0;n=55296&&u<=57343?o+="���":o+=String.fromCharCode(u),s+=6;continue}}if((a&248)===240&&s+91114111?o+="����":(d-=65536,o+=String.fromCharCode(55296+(d>>10),56320+(d&1023))),s+=9;continue}}o+="�"}return o})}_C.defaultChars=";/?:@&=+$,#";_C.componentChars="";var jM=_C;const SW={};function XBe(e){let t=SW[e];if(t)return t;t=SW[e]=[];for(let n=0;n<128;n++){const i=String.fromCharCode(n);/^[0-9a-z]$/i.test(i)?t.push(i):t.push("%"+("0"+n.toString(16).toUpperCase()).slice(-2))}for(let n=0;n"u"&&(n=!0);const i=XBe(t);let o="";for(let s=0,r=e.length;s=55296&&a<=57343){if(a>=55296&&a<=56319&&s+1=56320&&l<=57343){o+=encodeURIComponent(e[s]+e[s+1]),s++;continue}}o+="%EF%BF%BD";continue}o+=encodeURIComponent(e[s])}return o}IC.defaultChars=";/?:@&=+$,-_.!~*'()#";IC.componentChars="-_.!~*'()";var Coe=IC;function e$(e){let t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&e.hostname.indexOf(":")!==-1?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||"",t}function dw(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}const eze=/^([a-z0-9.+-]+:)/i,tze=/:[0-9]*$/,nze=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,ize=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",` +`," "]),oze=["'"].concat(ize),_W=["%","/","?",";","#"].concat(oze),IW=["/","?","#"],sze=255,TW=/^[+a-z0-9A-Z_-]{0,63}$/,rze=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,MW={javascript:!0,"javascript:":!0},EW={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function aze(e,t){if(e&&e instanceof dw)return e;const n=new dw;return n.parse(e,t),n}dw.prototype.parse=function(e,t){let n,i,o,s=e;if(s=s.trim(),!t&&e.split("#").length===1){const c=nze.exec(s);if(c)return this.pathname=c[1],c[2]&&(this.search=c[2]),this}let r=eze.exec(s);if(r&&(r=r[0],n=r.toLowerCase(),this.protocol=r,s=s.substr(r.length)),(t||r||s.match(/^\/\/[^@\/]+@[^@\/]+/))&&(o=s.substr(0,2)==="//",o&&!(r&&MW[r])&&(s=s.substr(2),this.slashes=!0)),!MW[r]&&(o||r&&!EW[r])){let c=-1;for(let m=0;m127?k+="x":k+=v[w];if(!k.match(TW)){const w=m.slice(0,g),C=m.slice(g+1),x=v.match(rze);x&&(w.push(x[1]),C.unshift(x[2])),C.length&&(s=C.join(".")+s),this.hostname=w.join(".");break}}}}this.hostname.length>sze&&(this.hostname=""),h&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}const a=s.indexOf("#");a!==-1&&(this.hash=s.substr(a),s=s.slice(0,a));const l=s.indexOf("?");return l!==-1&&(this.search=s.substr(l),s=s.slice(0,l)),s&&(this.pathname=s),EW[n]&&this.hostname&&!this.pathname&&(this.pathname=""),this};dw.prototype.parseHost=function(e){let t=tze.exec(e);t&&(t=t[0],t!==":"&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)};var t$=aze,Aoe=UNe({decode:()=>jM,encode:()=>Coe,format:()=>e$,parse:()=>t$}),lze=Object.defineProperty,xoe=e=>{let t={};for(var n in e)lze(t,n,{get:e[n],enumerable:!0});return t},Zr=class{type;tag;attrs;map;nesting;level;children;content;markup;info;meta;block;hidden;constructor(e,t,n){this.type=e,this.tag=t,this.attrs=null,this.map=null,this.nesting=n,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=!1,this.hidden=!1}attrIndex(e){if(!this.attrs)return-1;const t=this.attrs;for(let n=0,i=t.length;n=0&&(n=this.attrs[t][1]),n}attrJoin(e,t){const n=this.attrIndex(e);n<0?this.attrPush([e,t]):this.attrs[n][1]=`${this.attrs[n][1]} ${t}`}},cze=xoe({arrayReplaceAt:()=>gze,assign:()=>pze,countLines:()=>$s,escapeHtml:()=>Sze,escapeRE:()=>Ize,fromCodePoint:()=>J9,has:()=>hze,isMdAsciiPunct:()=>_oe,isPunctChar:()=>Soe,isPunctCode:()=>Y9,isSpace:()=>mze,isString:()=>dze,isValidEntityCode:()=>MC,isWhiteSpace:()=>Q9,lib:()=>Tze,mdurl:()=>Aoe,normalizeReference:()=>TC,ucmicro:()=>fw,unescapeAll:()=>X9,unescapeMd:()=>kze});const fw={Any:/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Cc:/[\0-\x1F\x7F-\x9F]/,Cf:/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,P:/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,S:/[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/,Z:/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/};function uze(e){return Object.prototype.toString.call(e)}function dze(e){return uze(e)==="[object String]"}const fze=Object.prototype.hasOwnProperty;function hze(e,t){return fze.call(e,t)}function pze(e,...t){return t.forEach(n=>{if(n){if(typeof n!="object")throw new TypeError(`${String(n)}must be object`);Object.keys(n).forEach(i=>{e[i]=n[i]})}}),e}function mze(e){return e===9||e===32}function Q9(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1}function Soe(e){return fw.P.test(e)||fw.S.test(e)}const LW=new Map;function Y9(e){if(_oe(e))return!0;if(e>=0&&e<128)return!1;const t=LW.get(e);if(t!==void 0)return t;const n=Soe(String.fromCharCode(e));return LW.set(e,n),n}function _oe(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}}function TC(e){return e=e.trim().replace(/\s+/g," "),"ẞ".toLowerCase()==="Ṿ"&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}function gze(e,t,n){return[...e.slice(0,t),...n,...e.slice(t+1)]}function MC(e){return!(e>=55296&&e<=57343||e>=64976&&e<=65007||(e&65535)===65535||(e&65535)===65534||e>=0&&e<=8||e===11||e>=14&&e<=31||e>=127&&e<=159||e>1114111)}function J9(e){if(e>65535){e-=65536;const t=55296+(e>>10),n=56320+(e&1023);return String.fromCharCode(t,n)}return String.fromCharCode(e)}const Ioe=/\\([!"#$%&'()*+,\-\./:;<=>?@[\\\]^_`{|}~])/g,vze=new RegExp(`${Ioe.source}|${/&([a-z#][a-z0-9]{1,31});/gi.source}`,"gi"),yze=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function bze(e,t){if(t.charCodeAt(0)===35&&yze.test(t)){const i=t[1].toLowerCase()==="x"?Number.parseInt(t.slice(2),16):Number.parseInt(t.slice(1),10);return MC(i)?J9(i):e}const n=XP(e);return n!==e?n:e}function kze(e){return e.includes("\\")?e.replace(Ioe,"$1"):e}function X9(e){return!e.includes("\\")&&!e.includes("&")?e:e.replace(vze,(t,n,i)=>n||bze(t,i))}const wze=/[&<>"]/,Cze=/[&<>"]/g,Aze={"&":"&","<":"<",">":">",'"':"""};function xze(e){return Aze[e]}function Sze(e){return wze.test(e)?e.replace(Cze,xze):e}const _ze=/[.?*+^$[\]\\(){}|-]/g;function Ize(e){return e.replace(_ze,"\\$&")}const Tze={mdurl:Aoe,ucmicro:fw};function $s(e){if(e.length===0)return 0;let t=0,n=-1;for(;(n=e.indexOf(` +`,n+1))!==-1;)t++;return t}const Mze=/(?:^|\n)[ \t]{0,3}\[\^[^\]\n]+\]:/m,Eze=/(?:^|\n)[ \t]{0,3}\*\[[^\]\n]+\]:/m,n$=["references","footnotes","abbreviations","abbr","abbrs"],i$=Symbol.for("markdown-it-ts.global-state"),o$=Object.prototype.hasOwnProperty;function Lze(e){const t=e.length;let n=0;for(;n=0&&e.charCodeAt(s)!==10;){const r=e.charCodeAt(s);if(r===32||r===9){o++,s--;continue}break}if((s<0||e.charCodeAt(s)===10)&&o<=3&&e.charCodeAt(i+1)!==94){let r=i+1;if(r>=t||e.charCodeAt(r)===93){n=i+1;continue}for(;rH1(t));if(Xu(e)){const t={};for(const n of Object.keys(e))t[n]=H1(e[n]);return t}return e}function hw(e){return Array.isArray(e)?e.map((t,n)=>String(n)):Xu(e)?Object.keys(e):[]}function WM(e,t){if(Array.isArray(e)||Array.isArray(t)){if(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;ns.has(r)?!WM(o[r],Toe(i.value,r)):!0)}}function vh(e){const t=s$(e);if(t){for(const n of n$){const i=t.snapshot[n];if(!i){delete e[n];continue}if(i.ownedKeys){Pze(e,n,i);continue}i.existed?e[n]=Rze(e[n],i.value):delete e[n]}delete e[i$]}}function AS(e){return{area:e,attempted:!0,matched:!1,attemptMs:0,blocks:0,headings:0,paragraphs:0,lists:0,fences:0,paragraphCacheHits:0,paragraphCacheMisses:0,paragraphCacheBypasses:0,listCacheHits:0,listCacheMisses:0,fenceCacheHits:0,fenceCacheMisses:0}}const qM=Symbol.for("markdown-it-ts.diagnostics");function ib(e,t){if(e)try{const n=e[qM];if(n&&typeof n=="object")return n;if(!t)return;const i={};return e[qM]=i,i}catch{return}}function uc(e){return ib(e,!1)}function Oze(e){if(e)try{const t=e[qM];t&&typeof t=="object"&&(delete t.strategy,delete t.chunk,delete t.unbounded,delete t.editable,delete t.stockFast)}catch{}}function sl(e){Oze(e)}function hy(e,t){const n=ib(e,!0);n&&(n.stockFast=t)}function Ir(e,t){const n=ib(e,!0);n&&(n.strategy=t)}function xS(e,t){const n=ib(e,!0);n&&(n.chunk=t)}function Moe(e,t){const n=ib(e,!0);n&&(n.unbounded=t)}const Fze=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Dze=/[\0-\x1F\x7F-\x9F]/,Nze=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B4E\u1B4F\u1B5A-\u1B60\u1B7D-\u1B7F\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDD6E\uDEAD\uDED0\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9\uDFD4\uDFD5\uDFD7\uDFD8]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09\uDFE1]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDD6D-\uDD6F\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD839\uDDFF|\uD83A[\uDD5E\uDD5F]/,Bze=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/;var zze=class{src_Any=Fze.source;src_Cc=Dze.source;src_Z=Bze.source;src_P=Nze.source;src_ZPCc=[this.src_Z,this.src_P,this.src_Cc].join("|");src_ZCc=[this.src_Z,this.src_Cc].join("|");cache={};opts={maxLength:1e4,urlAuth:!1,schema_names:[]};constructor(e={}){this.opts={...this.opts,...e}}set(e={}){return this.opts={...this.opts,...e},this.cache={},this}escapeRE(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}nestedPairRE(e,t,n=4){const i=this.escapeRE(e),o=this.escapeRE(t),s=`(?:(?!${this.src_ZCc}|${i}|${o}).)`;let r=`${i}${s}{0,1000}${o}`;for(let a=2;a<=n;a++)r=`${i}(?:${s}|${r}){0,1000}${o}`;return r}get_text_separators(){return this.cache.text_separators??=/[><\uff5c]/}get_pseudo_letter(){return this.cache.src_pseudo_letter??=new RegExp(`(?:(?!${this.get_text_separators().source}|${this.src_ZPCc})${this.src_Any})`)}get_ipv4_addr(){return this.cache.src_ip4??=new RegExp("(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])[.]){3}(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])")}get_ipv6_addr(){const e="[0-9A-Fa-f]{1,4}",t=`(?:(?:${e}:${e})|${this.get_ipv4_addr().source})`;return this.cache.src_ip6_addr??=new RegExp(`(?:(?:${e}:){6}${t}|::(?:${e}:){5}${t}|(?:${e})?::(?:${e}:){4}${t}|(?:(?:${e}:){0,1}${e})?::(?:${e}:){3}${t}|(?:(?:${e}:){0,2}${e})?::(?:${e}:){2}${t}|(?:(?:${e}:){0,3}${e})?::${e}:${t}|(?:(?:${e}:){0,4}${e})?::${t}|(?:(?:${e}:){0,5}${e})?::${e}|(?:(?:${e}:){0,6}${e})?::)`)}get_ipv6_url_host(){return this.cache.src_ip6_host??=new RegExp(`\\[${this.get_ipv6_addr().source}\\]`)}get_ipv6_mail_host(){return this.cache.src_ipv6_mail_host??=new RegExp(`\\[IPv6:${this.get_ipv6_addr().source}\\]`)}get_auth(){return this.cache.src_auth??=new RegExp(`(?:(?:(?!${this.src_ZCc}|[@/\\[\\]()]).){1,50}@)?`)}get_port(){return this.cache.src_port??=new RegExp("(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?")}get_host_terminator(){return this.cache.src_host_terminator??=new RegExp(`(?=$|${this.get_text_separators().source}|${this.src_ZPCc})(?!${this.opts["---"]?"-(?!--)|":"-|"}_|:\\d|\\.-|\\.(?!$|${this.src_ZPCc}))`)}get_path_terminator(){return this.cache.src_path_terminator??=new RegExp(`${this.src_ZPCc}|${this.get_text_separators().source}`)}get_path(){return this.cache.src_path??=new RegExp(`(?:[/?#](?:${this.nestedPairRE("[","]")}|${this.nestedPairRE("(",")")}|${this.nestedPairRE("{","}")}|\\"(?:(?!${this.src_ZCc}|["]).){1,100}\\"|\\'(?:(?!${this.src_ZCc}|[']).){1,100}\\'|\\'(?=${this.get_pseudo_letter().source}|[-])|\\.{2,20}[:]?[a-zA-Z0-9%/&]|\\.(?!${this.src_ZCc}|[.]|$)|`+(this.opts["---"]?"\\-(?!--(?:[^-]|$))(?:-{0,19})|":"\\-{1,20}|")+`,(?!${this.src_ZCc}|$)|;(?!${this.src_ZCc}|$)|\\!{1,20}(?!${this.src_ZCc}|[!]|$)|\\?(?!${this.src_ZCc}|[?]|$)|`+this.get_path_extra().source+`[\\\\/:%@#&=_~*]|(?!${this.get_path_terminator().source}).){1,${this.opts.maxLength}}|\\/)?`)}get_mail_name(){return this.cache.src_mail_name??=new RegExp("[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9](?:[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9]|[.](?=[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9])){0,63}")}get_xn(){return this.cache.src_xn??=new RegExp("xn--[a-z0-9\\-]{1,59}")}get_tld(){if(this.cache.tld)return this.cache.tld;const e=[...new Set(this.opts.tlds||[])].sort().reverse().join("|");return this.cache.tld=new RegExp(`${e||"$#none#$"}|${this.get_xn().source}`),this.cache.tld}get_domain_root(){return this.cache.src_domain_root??=new RegExp("(?:"+this.get_xn().source+`|${this.get_pseudo_letter().source}{1,63})`)}get_domain(){return this.cache.src_domain??=new RegExp("(?:"+this.get_xn().source+`|(?:${this.get_pseudo_letter().source})|(?:${this.get_pseudo_letter().source}(?:-|${this.get_pseudo_letter().source}){0,61}${this.get_pseudo_letter().source}))`)}get_url_host_port(){return this.cache.url_host_port??=new RegExp("(?:"+this.get_ipv6_url_host().source+`|(?:(?:(?:${this.get_domain().source})\\.){0,10}${this.get_domain().source}))`+this.get_port().source+this.get_host_terminator().source)}get_fuzzy_url_host_port(){return this.cache.fuzzy_url_host_port??=new RegExp("(?:"+(this.opts.fuzzyIP?this.get_ipv4_addr().source+"|":"")+`(?:(?:(?:${this.get_domain().source})\\.){1,10}(?:${this.get_tld().source})))`+this.get_host_terminator().source)}get_mail_host(){return this.cache.src_mail_host??=new RegExp("(?:"+this.get_ipv6_mail_host().source+`|(?:(?:(?:${this.get_domain().source})\\.){0,4}${this.get_domain().source}))`+this.get_host_terminator().source)}get_fuzzy_mail_host(){return this.cache.src_fuzzy_mail_host??=new RegExp("(?:"+this.get_ipv6_mail_host().source+`|(?:(?:(?:${this.get_domain().source})[.]){1,4}${this.get_domain_root().source}))`+this.get_host_terminator().source)}get_path_extra(){return this.cache.src_path_extra??=new RegExp("")}get_fuzzy_mail_host_search(){return this.cache.mail_fuzzy_host_search??=new RegExp(`@${this.get_fuzzy_mail_host().source}`,"ig")}get_fuzzy_link_search(){return this.cache.link_fuzzy_search??=new RegExp(`(^|(?![.:/\\-_@])(?:[$+<=>^\`||]|${this.src_ZPCc}))(?:(?![$+<=>^\`||])${this.get_fuzzy_url_host_port().source}${this.get_path().source})`,"ig")}get_http_validator(){return this.cache.http_validator??=new RegExp("\\/\\/"+(this.opts.urlAuth?this.get_auth().source:"")+this.get_url_host_port().source+this.get_path().source,"iy")}get_relative_proto_validator(){return this.cache.relative_proto_validator??=new RegExp((this.opts.urlAuth?this.get_auth().source:"")+`(?:localhost|${this.get_ipv6_url_host().source}|(?:(?:${this.get_domain().source})[.]){1,10}${this.get_domain_root().source})`+this.get_port().source+this.get_host_terminator().source+this.get_path().source,"iy")}get_mail_name_validator(){return this.cache.mail_name_validator??=new RegExp(`(?:^|${this.get_text_separators().source}|"|\\(|${this.src_ZCc})(${this.get_mail_name().source})$`)}get_mailto_validator(){return this.cache.mailto_validator??=new RegExp(`${this.get_mail_name().source}@${this.get_mail_host().source}`,"iy")}get_schema_names(){return this.cache.schema_names??=new RegExp((this.opts.schema_names||[]).map(e=>this.escapeRE(e)).join("|"))}get_schema_search(){return this.cache.schema_search??=new RegExp(`(^|(?!_)(?:[><|]|${this.src_ZPCc}))(${this.get_schema_names().source})`,"ig")}get_schema_at_start(){return this.cache.schema_at_start??=new RegExp(`^${this.get_schema_search().source}`,"i")}},SS={validate:(e,t,n)=>{const i=n.re.get_http_validator();i.lastIndex=t;const o=i.exec(e);return o?o[0].length:0},normalize:(e,t)=>t.normalize(e)},Hze={"http:":SS,"https:":SS,"ftp:":SS,"//":{validate:function(e,t,n){const i=n.re.get_relative_proto_validator();i.lastIndex=t;const o=i.exec(e);return o?t>=3&&e[t-3]===":"||t>=3&&e[t-3]==="/"?0:o[0].length:0},normalize:(e,t)=>t.normalize(e)},"mailto:":{validate:function(e,t,n){const i=n.re.get_mailto_validator();i.lastIndex=t;const o=i.exec(e);return o?o[0].length:0},normalize:(e,t)=>t.normalize(e)}},jze="a:cdefgilmnoqrstuwxz|b:abdefghijmnorstvwyz|c:acdfghiklmnoruvwxyz|d:ejkmoz|e:cegrstu|f:ijkmor|g:abdefghilmnpqrstuwy|h:kmnrtu|i:delmnoqrst|j:emop|k:eghimnprwyz|l:abcikrstuvy|m:acdeghklmnopqrstuvwxyz|n:acefgilopruz|o:m|p:aefghklmnrstwy|q:a|r:eosuw|s:abcdeghijklmnortuvxyz|t:cdfghjklmnortvwz|u:agksyz|v:aceginu|w:fs|y:et|z:amw",Wze="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф";function qze(){const e=Wze.split("|");return jze.split("|").forEach(t=>{const n=t.indexOf(":"),i=t.slice(0,n);for(const o of t.slice(n+1))e.push(i+o)}),e}var Vze={fuzzyLink:!1,fuzzyEmail:!0,fuzzyIP:!1,"---":!1,tlds:qze(),urlAuth:!1,maxLength:1e4},PW=class{schema;index;lastIndex;raw;text;url;constructor(e,t,n,i){const o=e.slice(n,i);this.schema=t.toLowerCase(),this.index=n,this.lastIndex=i,this.raw=o,this.text=o,this.url=o}},Eoe=class{__opts__;__schemas__;re;constructor(e={}){const{rebuilder:t,...n}=e;this.__opts__={...Vze,...n},this.__schemas__={...Hze},this.re=t||new zze,this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)})}add(e,t=null){if(!t)delete this.__schemas__[e];else{const n={normalize:(i,o)=>o.normalize(i),...t};this.__schemas__[e]=n}return this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}set(e={}){return this.__opts__={...this.__opts__,...e},this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}test(e){if(!e.length)return!1;let t,n;for(n=this.re.get_schema_search(),n.lastIndex=0;(t=n.exec(e))!==null;)if(this.testSchemaAt(e,t[2],n.lastIndex))return!0;if(this.__opts__.fuzzyLink&&this.__schemas__["http:"]&&(n=this.re.get_fuzzy_link_search(),n.lastIndex=0,n.exec(e)!==null))return!0;if(this.__opts__.fuzzyEmail&&this.__schemas__["mailto:"]&&e.indexOf("@")>=0){const i=this.re.get_fuzzy_mail_host_search(),o=this.re.get_mail_name_validator();for(i.lastIndex=0;(t=i.exec(e))!==null;){const s=e.slice(Math.max(0,t.index-65),t.index);if(o.test(s))return!0}}return!1}testSchemaAt(e,t,n){return this.__schemas__[t.toLowerCase()]?this.__schemas__[t.toLowerCase()].validate(e.slice(0,n+this.__opts__.maxLength),n,this):0}match(e){const t=[],n=this.re.get_schema_search();let i,o,s,r,a,l,c=!1,u=!1,d=!1,f=0;if(!e.length)return null;for(n.lastIndex=0,this.__opts__.fuzzyLink&&this.__schemas__["http:"]&&(i=this.re.get_fuzzy_link_search(),i.lastIndex=0),this.__opts__.fuzzyEmail&&this.__schemas__["mailto:"]&&(o=this.re.get_fuzzy_mail_host_search(),o.lastIndex=0,s=this.re.get_mail_name_validator());;){const h=Math.max(f-1,0);if(o&&s&&!d&&(!a||a.index=f)break;o.lastIndex=f)break;i.lastIndexm.lastIndex))&&(m=r);let g;if(!c)for(;;){if(!l){n.lastIndexm.index)break;const k=l;l=void 0;const w=this.testSchemaAt(e,k.schema,k.lastIndex);if(w){g={schema:k.schema,index:k.index,lastIndex:k.lastIndex+w};break}}let y=g;if((!y||a&&(a.indexy.lastIndex))&&(y=a),(!y||r&&(r.indexy.lastIndex))&&(y=r),!y)break;y===a?a=void 0:y===r&&(r=void 0);const v=new PW(e,y.schema,y.index,y.lastIndex);v.schema?this.__schemas__[v.schema].normalize(v,this):this.normalize(v),t.push(v),f=y.lastIndex}return t.length?t:null}matchAtStart(e){if(!e.length)return null;const t=this.re.get_schema_at_start().exec(e);if(!t)return null;const n=this.testSchemaAt(e,t[2],t[0].length);if(!n)return null;const i=new PW(e,t[2],t.index+t[1].length,t.index+t[0].length+n);return this.__schemas__[i.schema].normalize(i,this),i}tlds(e,t=!1){return e=Array.isArray(e)?e:[e],t?this.__opts__.tlds=this.__opts__.tlds.concat(e):this.__opts__.tlds=e,this.re.set({...this.__opts__,schema_names:Object.keys(this.__schemas__)}),this}normalize(e){e.schema||(e.url=`http://${e.url}`),e.schema==="mailto:"&&!/^mailto:/i.test(e.url)&&(e.url=`mailto:${e.url}`)}},Uze=boe({"../../node_modules/.pnpm/punycode.js@2.3.1/node_modules/punycode.js/punycode.js":((e,t)=>{const d=/^xn--/,f=/[^\0-\x7F]/,h=/[\x2E\u3002\uFF0E\uFF61]/g,m={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},g=35,y=Math.floor,v=String.fromCharCode;function k(F){throw new RangeError(m[F])}function w(F,B){const W=[];let D=F.length;for(;D--;)W[D]=B(F[D]);return W}function C(F,B){const W=F.split("@");let D="";W.length>1&&(D=W[0]+"@",F=W[1]),F=F.replace(h,".");const z=w(F.split("."),B).join(".");return D+z}function x(F){const B=[];let W=0;const D=F.length;for(;W=55296&&z<=56319&&WString.fromCodePoint(...F),M=function(F){return F>=48&&F<58?26+(F-48):F>=65&&F<91?F-65:F>=97&&F<123?F-97:36},_=function(F,B){return F+22+75*(F<26)-((B!=0)<<5)},T=function(F,B,W){let D=0;for(F=W?y(F/700):F>>1,F+=y(F/B);F>g*26>>1;D+=36)F=y(F/g);return y(D+(g+1)*F/(F+38))},E=function(F){const B=[],W=F.length;let D=0,z=128,$=72,j=F.lastIndexOf("-");j<0&&(j=0);for(let G=0;G=128&&k("not-basic"),B.push(F.charCodeAt(G));for(let G=j>0?j+1:0;G=W&&k("invalid-input");const Y=M(F.charCodeAt(G++));Y>=36&&k("invalid-input"),Y>y((2147483647-D)/J)&&k("overflow"),D+=Y*J;const ae=q<=$?1:q>=$+26?26:q-$;if(Yy(2147483647/pe)&&k("overflow"),J*=pe}const te=B.length+1;$=T(D-K,te,K==0),y(D/te)>2147483647-z&&k("overflow"),z+=y(D/te),D%=te,B.splice(D++,0,z)}return String.fromCodePoint(...B)},L=function(F){const B=[];F=x(F);const W=F.length;let D=128,z=0,$=72;for(const K of F)K<128&&B.push(v(K));const j=B.length;let G=j;for(j&&B.push("-");G=D&&Jy((2147483647-z)/te)&&k("overflow"),z+=(K-D)*te,D=K;for(const J of F)if(J2147483647&&k("overflow"),J===D){let q=z;for(let Y=36;;Y+=36){const ae=Y<=$?1:Y>=$+26?26:Y-$;if(q32))return s;if(i===41){if(r===0)break;r--}o++}return t===o||r!==0||(s.str=X9(e.slice(t,o)),s.pos=o,s.ok=!0),s}var Roe=l$;const ik=-2;function Kze(e,t,n,i){let o=1,s=t+1;for(;s=0&&t+1>=u)return-1;const d=a.indexOf("]",t+1);if(d<0||d>=l)return e.linkLabelNoCloseFrom=t+1,-1;const f=Kze(a,t,l,n);if(f!==ik)return f;for(e.pos=t+1;e.pos=n)return r;let a=e.charCodeAt(s);if(a!==34&&a!==39&&a!==40)return r;t++,s++,a===40&&(a=41),r.marker=a}for(;s=0?e.attrs[n][1]:null}function Qze(e,t,n){const i=EC(e,t);i<0?d$(e,[t,n]):e.attrs[i][1]=`${e.attrs[i][1]} ${n}`}var Yze=xoe({attrGet:()=>Gze,attrIndex:()=>EC,attrJoin:()=>Qze,attrPush:()=>d$,attrSet:()=>Zze,parseLinkDestination:()=>l$,parseLinkLabel:()=>c$,parseLinkTitle:()=>u$});function Jze(e){return e.includes("\r")||e.includes("\0")}function $oe(e){return typeof e=="string"?e:e.toString()}function VM(e){if(e.inlineMode){const t=new Zr("inline","",0);t.content=$oe(e.src),t.map=[0,1],t.children=[],t.level=0,e.tokens.push(t)}else e.md&&e.md.block&&e.md.block.parse(e.src,e.md,e.env,e.tokens)}const Xze=/^([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])?)*)$/,eHe=/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\x00-\x20]*)$/;function tHe(e,t){let n=e.pos;const i=e.src;if(i.charCodeAt(n)!==60)return!1;const o=n,s=e.posMax;for(;;){if(++n>=s)return!1;const a=i.charCodeAt(n);if(a===60)return!1;if(a===62)break}const r=i.slice(o+1,n);if(eHe.test(r)){const a=e.md.normalizeLink(r);if(!e.md.validateLink(a))return!1;if(!t){const l=e.push("link_open","a",1);l.attrs=[["href",a]],l.markup="autolink",l.info="auto";const c=e.push("text","",0);c.content=e.md.normalizeLinkText(r);const u=e.push("link_close","a",-1);u.markup="autolink",u.info="auto"}return e.pos+=r.length+2,!0}if(Xze.test(r)){const a=e.md.normalizeLink(`mailto:${r}`);if(!e.md.validateLink(a))return!1;if(!t){const l=e.push("link_open","a",1);l.attrs=[["href",a]],l.markup="autolink",l.info="auto";const c=e.push("text","",0);c.content=e.md.normalizeLinkText(r);const u=e.push("link_close","a",-1);u.markup="autolink",u.info="auto"}return e.pos+=r.length+2,!0}return!1}var Ooe=tHe;function nHe(e,t){const n=e.src;let i=e.pos;if(n.charCodeAt(i)!==96)return!1;const o=i;i++;const s=e.posMax;for(;i2&&f.charCodeAt(0)===32&&f.charCodeAt(f.length-1)===32&&(f=f.slice(1,-1)),d.content=f}return e.pos=l,!0}e.backticks[u]=c}return e.backticksScanned=!0,t||(e.pending+=r),e.pos+=a,!0}var Foe=nHe;function $W(e){const t={},n=e.length;if(!n)return;let i=0,o=-2;const s=[];for(let r=0;rl;c-=s[c]+1){const d=e[c];if(d.marker===a.marker&&d.open&&d.end<0){let f=!1;if((d.close||a.open)&&(d.length+a.length)%3===0&&(d.length%3!==0||a.length%3!==0)&&(f=!0),!f){const h=c>0&&!e[c-1].open?s[c-1]+1:0;s[r]=r-c+h,s[c]=h,a.open=!1,d.end=r,d.close=!1,u=-1,o=-2;break}}}u!==-1&&(t[a.marker][(a.open?3:0)+(a.length||0)%3]=u)}}function iHe(e){const t=e.tokens_meta,n=e.tokens_meta.length;$W(e.delimiters);for(let i=0;i=0;o--){const s=t[o],r=s.marker;if(r!==95&&r!==42||s.end===-1)continue;const a=t[s.end],l=s.token,c=a.token,u=o>0&&t[o-1].end===s.end+1&&t[o-1].marker===r&&t[o-1].token===l-1&&t[s.end+1].token===c+1,d=r===42?Doe:Noe,f=i[l];u?(f.type="strong_open",f.tag="strong",f.nesting=1,f.markup=d+d,f.content=""):(f.type="em_open",f.tag="em",f.nesting=1,f.markup=d,f.content="");const h=i[c];u?(h.type="strong_close",h.tag="strong",h.nesting=-1,h.markup=d+d,h.content=""):(h.type="em_close",h.tag="em",h.nesting=-1,h.markup=d,h.content=""),u&&(i[t[o-1].token].content="",i[t[s.end+1].token].content="",o--)}}function rHe(e){const t=e.tokens_meta,n=e.tokens_meta.length;OW(e,e.delimiters);for(let i=0;i=48&&e<=57}function aHe(e){const t=e|32;return f$(e)||t>=97&&t<=102}function zoe(e){const t=e|32;return t>=97&&t<=122}function lHe(e){return zoe(e)||f$(e)}function cHe(e,t,n){let i=t+2;if(i>=n)return null;let o=!1,s=7,r=i;for((e.charCodeAt(i)|32)===120&&(o=!0,s=6,i++,r=i);i=n||e.charCodeAt(i)!==59?null:e.slice(t,i+1)}function uHe(e,t,n){let i=t+1;if(i>=n||!zoe(e.charCodeAt(i)))return null;for(i++;i=n||e.charCodeAt(i)!==59)return null;const o=e.slice(t,i+1);return Boe(o)!==o?o:null}function dHe(e,t){const n=e.pos,i=e.posMax;if(e.src.charCodeAt(n)!==38||n+1>=i)return!1;if(e.src.charCodeAt(n+1)===35){const o=cHe(e.src,n,i);if(o){if(!t){const s=(o.charCodeAt(2)|32)===120?Number.parseInt(o.slice(3,-1),16):Number.parseInt(o.slice(2,-1),10),r=e.push("text_special","",0);r.content=MC(s)?J9(s):J9(65533),r.markup=o,r.info="entity"}return e.pos+=o.length,!0}}else{const o=uHe(e.src,n,i);if(o){const s=Boe(o);if(!t){const r=e.push("text_special","",0);r.content=s,r.markup=o,r.info="entity"}return e.pos+=o.length,!0}}return!1}var Hoe=dHe;const joe=(()=>{const e=new Array(256).fill(0),t="\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-";for(let n=0;n<32;n++)e[t.charCodeAt(n)]=1;return e})(),KM=new Array(128),Woe=new Array(128);for(let e=0;e<128;e++){const t=String.fromCharCode(e);KM[e]=`\\${t}`,Woe[e]=joe[e]?t:KM[e]}function FW(e,t,n){e.pending&&e.pushPending();const i=new Zr("text_special","",0);i.level=e.level,i.content=t,i.markup=n,i.info="escape",e.pendingLevel=e.level,e.tokens.push(i),e.tokens_meta.push(null)}function fHe(e,t){let n=e.pos;const i=e.posMax,o=e.src;if(o.charCodeAt(n)!==92||(n++,n>=i))return!1;let s=o.charCodeAt(n);if(s===10){for(t||e.push("hardbreak","br",0),n++;n=55296&&s<=56319&&n+1=56320&&l<=57343&&n++}return e.pos=n+1,!0}let r=o.charAt(n);if(s>=55296&&s<=56319&&n+1=56320&&l<=57343&&(r+=o.charAt(n+1),n++)}const a=`\\${r}`;return FW(e,s<256&&joe[s]?r:a,a),e.pos=n+1,!0}var qoe=fHe;function hHe(e){let t,n,i=0;const o=e.tokens,s=e.tokens.length;for(t=n=0;t0&&i++,r.type==="text"&&t+1\`\\x00-\\x20]+|'[^']*'|"[^"]*"))?)*\\s*\\/?>`,Uoe="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",mHe=new RegExp(`^(?:${Voe}|${Uoe}||<\\?[\\s\\S]*?\\?>|]*>|)`),gHe=new RegExp(`^(?:${Voe}|${Uoe})`);function Koe(e){return e===32||e===9||e===10||e===12||e===13}function vHe(e){if(e.length<3||e.charCodeAt(0)!==60||(e.charCodeAt(1)|32)!==97)return!1;const t=e.charCodeAt(2);return t===62||Koe(t)}function yHe(e){if(e.length<4||e.charCodeAt(0)!==60||e.charCodeAt(1)!==47||(e.charCodeAt(2)|32)!==97)return!1;for(let t=3;t=97&&t<=122}function kHe(e,t){if(!e.md.options.html)return!1;const n=e.posMax,i=e.pos,o=e.src;if(o.charCodeAt(i)!==60||i+2>=n)return!1;const s=o.charCodeAt(i+1);if(s!==33&&s!==63&&s!==47&&!bHe(s))return!1;const r=o.slice(i).match(mHe);if(!r)return!1;const a=r[0];if(!t){const l=e.pushSimple("html_inline","");l.content=a,vHe(a)&&e.linkLevel++,yHe(a)&&e.linkLevel--}return e.pos+=a.length,!0}var Zoe=kHe;function wHe(e,t){let n,i,o,s,r,a,l,c,u="";const d=e.pos,f=e.posMax;if(e.src.charCodeAt(e.pos)!==33||e.src.charCodeAt(e.pos+1)!==91)return!1;const h=e.pos+2,m=pw(e,e.pos+1,!1);if(m<0)return!1;if(s=m+1,s=f)return!1;if(a=Roe(e.src,s,e.posMax),a.ok){for(u=e.md.normalizeLink(a.str),e.md.validateLink(u)?s=a.pos:u="",c=s;s=f||e.src.charCodeAt(s)!==41)return e.pos=d,!1;s++}else{if(typeof e.env.references>"u")return!1;if(s=0?o=e.src.slice(c,s++):s=m+1):s=m+1,o||(o=e.src.slice(h,m)),r=e.env.references[TC(o)],!r)return e.pos=d,!1;u=r.href,l=r.title}if(!t){i=e.src.slice(h,m);const g=[];e.md.inline.parse(i,e.md,e.env,g);const y=e.push("image","img",0);y.attrs=[["src",u],["alt",""]],y.children=g,y.content=i,l&&y.attrs.push(["title",l])}return e.pos=s,e.posMax=f,!0}var Goe=wHe;function _S(e,t,n){for(;t"u")return!1;let d;if(a=r+1,a=0?(d=n.slice(h,m),d||(d=n.slice(s,r)),a=m+1):d=n.slice(s,r)}else d=n.slice(s,r);const f=e.env.references[TC(d)];if(!f)return e.pos=i,!1;l=f.href,c=f.title}if(!t){e.pos=s,e.posMax=r;const d=e.push("link_open","a",1);d.attrs=c?[["href",l],["title",c]]:[["href",l]],e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push("link_close","a",-1)}return e.pos=a,e.posMax=o,!0}var Qoe=CHe;function Yoe(e){const t=e|32;return t>=97&&t<=122}function AHe(e){return e>=48&&e<=57}function xHe(e){return Yoe(e)||AHe(e)||e===43||e===45||e===46}function SHe(e){if(e.length===0)return null;let t=e.length-1;for(;t>=0&&xHe(e.charCodeAt(t));)t--;return t++,t>=e.length||!Yoe(e.charCodeAt(t))?null:e.slice(t)}function _He(e,t,n){let i=t;for(;i0)return!1;const n=e.pos,i=e.posMax;if(n+3>i||e.src.charCodeAt(n)!==58||e.src.charCodeAt(n+1)!==47||e.src.charCodeAt(n+2)!==47)return!1;const o=SHe(e.pending);if(!o)return!1;const s=_He(e.src,n-o.length,i),r=e.md.linkify.matchAtStart(s);if(!r)return!1;let a=r.url;if(a.length<=o.length)return!1;let l=a.length;for(;l>0&&a.charCodeAt(l-1)===42;)l--;l!==a.length&&(a=a.slice(0,l));const c=e.md.normalizeLink(a);if(!e.md.validateLink(c))return!1;if(!t){e.pending=e.pending.slice(0,-o.length);const u=e.push("link_open","a",1);u.attrs=[["href",c]],u.markup="linkify",u.info="auto";const d=e.push("text","",0);d.content=e.md.normalizeLinkText(a);const f=e.push("link_close","a",-1);f.markup="linkify",f.info="auto"}return e.pos+=a.length-o.length,!0}function IHe(e,t){let n=e.pos;if(e.src.charCodeAt(n)!==10)return!1;const i=e.pending.length-1,o=e.posMax;if(!t)if(i>=0&&e.pending.charCodeAt(i)===32)if(i>=1&&e.pending.charCodeAt(i-1)===32){let s=i-1;for(;s>=1&&e.pending.charCodeAt(s-1)===32;)s--;e.pending=e.pending.slice(0,s),e.pushSimple("hardbreak","br")}else e.pending=e.pending.slice(0,-1),e.pushSimple("softbreak","br");else e.pushSimple("softbreak","br");for(n++;n=o||NW(n.charCodeAt(i)))return!1;let s=i+1;for(;si-o),n=Math.floor(t.length/2);return t.length%2===0?(t[n-1]+t[n])/2:t[n]}function RHe(e,t){return{chain:e,name:t,calls:0,hits:0,inclusiveMs:0,medianMs:0,maxMs:0,normalCalls:0,normalHits:0,silentCalls:0,silentHits:0,samples:[]}}function nse(e){const t=e;if(!t)return null;if(t.__mdtsRuleProfile)return t.__mdtsRuleProfile;if(!t.__mdtsProfileRules)return null;const n=t.__mdtsProfileRules===!0?{}:t.__mdtsProfileRules,i={enabled:!0,fixture:n.fixture,mode:n.mode,startedAt:h$(),records:Object.create(null)};return t.__mdtsRuleProfile=i,i}function h2(e,t,n,i,o,s){const r=nse(e);if(!r)return;const a=`${t}:${n}`,l=r.records[a]??(r.records[a]=RHe(t,n));l.calls++,l.inclusiveMs+=i,i>l.maxMs&&(l.maxMs=i),l.samples.push(i),s?(l.silentCalls++,o&&l.silentHits++):(l.normalCalls++,o&&l.normalHits++),o&&l.hits++,r.completedAt=h$()}function PHe(e){const t=nse(e);if(!t)return null;const n=Object.keys(t.records);for(let i=0;io.name===e);i>=0&&this.rules.splice(i,1),this.rules.push({name:e,fn:t,alt:n?.alt||[],enabled:!0}),this.invalidateCache()}at(e,t,n){const i=this.rules.findIndex(o=>o.name===e);if(t===void 0){if(i<0)return;const o=this.rules[i];return Object.freeze({name:o.name,fn:o.fn,alt:o.alt?Object.freeze(o.alt.slice()):void 0,enabled:o.enabled})}if(i<0)throw new Error(`Parser rule not found: ${e}`);this.rules[i].fn=t,n?.alt!==void 0&&(this.rules[i].alt=n.alt),this.invalidateCache()}before(e,t,n,i){const o=this.rules.findIndex(r=>r.name===e);if(o<0)throw new Error(`Parser rule not found: ${e}`);const s=this.rules.findIndex(r=>r.name===t);s>=0&&this.rules.splice(s,1),this.rules.splice(o,0,{name:t,fn:n,alt:i?.alt||[],enabled:!0}),this.invalidateCache()}after(e,t,n,i){const o=this.rules.findIndex(r=>r.name===e);if(o<0)throw new Error(`Parser rule not found: ${e}`);const s=this.rules.findIndex(r=>r.name===t);s>=0&&this.rules.splice(s,1),this.rules.splice(o+1,0,{name:t,fn:n,alt:i?.alt||[],enabled:!0}),this.invalidateCache()}enable(e,t){const n=Array.isArray(e)?e:[e],i=[];let o=!1;for(const s of n){const r=this.rules.findIndex(a=>a.name===s);if(r<0){if(!t)throw new Error(`Rules manager: invalid rule name ${s}`);continue}i.push(s),this.rules[r].enabled||(this.rules[r].enabled=!0,o=!0)}return o&&this.invalidateCache(),i}disable(e,t){const n=Array.isArray(e)?e:[e],i=[];let o=!1;for(const s of n){const r=this.rules.findIndex(a=>a.name===s);if(r<0){if(!t)throw new Error(`Rules manager: invalid rule name ${s}`);continue}i.push(s),this.rules[r].enabled&&(this.rules[r].enabled=!1,o=!0)}return o&&this.invalidateCache(),i}enableOnly(e){const t=new Set(e);let n=!1;for(const i of this.rules){const o=t.has(i.name);i.enabled!==o&&(i.enabled=o,n=!0)}n&&this.invalidateCache()}getRules(e){const t=e||"";return this.cache||this.compileCache(),this.cache.get(t)??[]}getNamedRules(e){const t=e||"";return this.namedCache||this.compileCache(),this.namedCache.get(t)??[]}compileCache(){const e=new Set([""]);for(const i of this.rules)if(i.enabled&&i.alt)for(const o of i.alt)e.add(o);const t=new Map,n=new Map;for(const i of e){const o=[],s=[];for(const r of this.rules)r.enabled&&(i!==""&&!r.alt?.includes(i)||(o.push(r.fn),s.push({name:r.name,fn:r.fn})));t.set(i,o),n.set(i,s)}this.cache=t,this.namedCache=n}},GM=class{src;md;env;tokens;tokens_meta;pos;posMax;level;pending;pendingLevel;cache;delimiters;_prev_delimiters;backticks;backticksScanned;linkLevel;linkLabelNoCloseFrom;maxNesting;constructor(e,t,n,i){this.src=e,this.md=t,this.env=n,this.tokens=i,this.tokens_meta=new Array(i.length),this.pos=0,this.posMax=e.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache=[],this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1,this.linkLevel=0,this.linkLabelNoCloseFrom=-1,this.maxNesting=t.options.maxNesting}pushPending(){const e=new Zr("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e}pushSimple(e,t){this.pending&&this.pushPending();const n=new Zr(e,t,0);return n.level=this.level,this.pendingLevel=this.level,this.tokens.push(n),this.tokens_meta.push(null),n}push(e,t,n){if(this.pending&&this.pushPending(),n===0)return this.pushSimple(e,t);const i=new Zr(e,t,n);let o=null;return n<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),i.level=this.level,n>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],o={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(i),this.tokens_meta.push(o),i}scanDelims(e,t){const{src:n,posMax:i}=this,o=n.charCodeAt(e);let s=e;for(;s0?n.charCodeAt(e-1):32,l=s@[\]\\^_`{}~]/;function zW(e,t){switch(e.src.charCodeAt(e.pos)){case 10:return Xoe(e,t);case 33:return Goe(e,t);case 38:return Hoe(e,t);case 42:case 95:return UM.tokenize(e,t);case 58:return e.md.options.linkify&&Joe(e,t);case 60:return Ooe(e,t)||Zoe(e,t);case 91:return Qoe(e,t);case 92:return qoe(e,t);case 96:return Foe(e,t);case 126:return ZM.tokenize(e,t);default:return tse(e,t)}}function ise(e){return!$He.test(e)}var OHe=class{ruler;ruler2;State=GM;cachedRulesVersion=-1;cachedRules=[];cachedRules2Version=-1;cachedRules2=[];defaultRulerVersion;defaultRuler2Version;constructor(){this.ruler=new BW,this.ruler2=new BW,this.ruler.push("text",tse),this.ruler.push("linkify",Joe),this.ruler.push("newline",Xoe),this.ruler.push("escape",qoe),this.ruler.push("backticks",Foe),this.ruler.push("strikethrough",ZM.tokenize),this.ruler.push("emphasis",UM.tokenize),this.ruler.push("link",Qoe),this.ruler.push("image",Goe),this.ruler.push("autolink",Ooe),this.ruler.push("html_inline",Zoe),this.ruler.push("entity",Hoe),this.ruler2.push("balance_pairs",oHe),this.ruler2.push("strikethrough",ZM.postProcess),this.ruler2.push("emphasis",UM.postProcess),this.ruler2.push("fragments_join",pHe),this.defaultRulerVersion=this.ruler.version,this.defaultRuler2Version=this.ruler2.version}skipToken(e){const t=e.pos,n=this.getRules(),i=n.length,o=e.cache,s=o[t],r=!!e.env&&(Object.prototype.hasOwnProperty.call(e.env,"__mdtsRuleProfile")||Object.prototype.hasOwnProperty.call(e.env,"__mdtsProfileRules"));if(s!==void 0){e.pos=s;return}let a=!1;if(e.level=e.pos)throw new Error("inline rule didn't increment state.pos");break}}}else if(this.isDefaultRuleset()){if(e.level++,a=zW(e,!0),e.level--,a&&t>=e.pos)throw new Error("inline rule didn't increment state.pos")}else for(let l=0;l=e.pos)throw new Error("inline rule didn't increment state.pos");break}}else e.pos=e.posMax;a||e.pos++,o[t]=e.pos}tokenize(e){const t=this.getRules(),n=t.length,i=e.posMax;if(!(e.env&&(Object.prototype.hasOwnProperty.call(e.env,"__mdtsRuleProfile")||Object.prototype.hasOwnProperty.call(e.env,"__mdtsProfileRules")))){const s=this.isDefaultRuleset();for(;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos")}if(a){if(e.pos>=i)break;continue}e.pending+=e.src.charAt(e.pos++)}e.pending&&e.pushPending();return}const o=this.ruler.getNamedRules("");for(;e.pos=e.pos)throw new Error("inline rule didn't increment state.pos");break}}if(r){if(e.pos>=i)break;continue}e.pending+=e.src.charAt(e.pos++)}e.pending&&e.pushPending()}isDefaultRuleset(){return this.ruler.version===this.defaultRulerVersion&&this.ruler2.version===this.defaultRuler2Version}usesDefaultState(){return this.State===GM}parseSource(e,t,n,i){if(typeof e=="string"&&e.length>0&&this.isDefaultRuleset()&&this.usesDefaultState()&&ise(e)){const l=new Zr("text","",0);l.content=e,i.push(l);return}const o=new this.State(e,t,n,i);this.tokenize(o);const s=this.getRules2(),r=s.length;if(!(o.env&&(Object.prototype.hasOwnProperty.call(o.env,"__mdtsRuleProfile")||Object.prototype.hasOwnProperty.call(o.env,"__mdtsProfileRules")))){for(let l=0;l0&&ise(r.content)){const a=new Zr("text","",0);a.content=r.content,r.children.push(a);continue}e.md.inline.parse(r.content,e.md,e.env,r.children)}}}const FHe=/[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}]/u,DHe=/[0-9a-z]/i;function NHe(e){return e.includes(".")||e.includes("@")||e.includes(":")}const HW=new WeakMap;function BHe(e){const t=e.re?.get_schema_search?.();if(!t)return!1;const n=HW.get(e);if(n&&n.schemaSearch===t)return n.safe;const i=e.__schemas__;let o=!0;if(i){for(const s in i)if(s.charCodeAt(s.length-1)!==58){o=!1;break}}return HW.set(e,{schemaSearch:t,safe:o}),o}function zHe(e){return/^\s]/i.test(e)}function HHe(e){return/^<\/a\s*>/i.test(e)}function jHe(e,t){if(t.schema||t.index!==0||!t.raw)return t;for(let n=1;nn?NHe(o):!0;for(let o=0;o=0;l--){const c=r[l];if(c.type==="link_close"){for(l--;l>=0&&r[l].level!==c.level&&r[l].type!=="link_open";)l--;continue}if(c.type==="html_inline"&&(zHe(c.content)&&a>0&&a--,HHe(c.content)&&a++),a>0||c.type!=="text"||!i(c.content))continue;const u=c.content;let d=(e.md.linkify.match(u)||[]).map(g=>jHe(e.md.linkify,g));if(d.length===0)continue;const f=[];let h=c.level,m=0;d.length>0&&d[0].index===0&&l>0&&r[l-1].type==="text_special"&&(d=d.slice(1));for(let g=0;gm){const M=new Zr("text","",0);M.content=u.slice(m,w),M.level=h,f.push(M)}const C=new Zr("link_open","a",1);C.attrs=[["href",v]],C.level=h++,C.markup="linkify",C.info="auto",f.push(C);const x=new Zr("text","",0);x.content=k,x.level=h,f.push(x);const S=new Zr("link_close","a",-1);S.level=--h,S.markup="linkify",S.info="auto",f.push(S),m=y.lastIndex}if(m!==0){if(m=0;n--){const i=e[n];i.type==="text"&&!t&&(i.content=i.content.replace(UHe,ZHe)),i.type==="link_open"&&i.info==="auto"&&t--,i.type==="link_close"&&i.info==="auto"&&t++}}function QHe(e){let t=0;for(let n=e.length-1;n>=0;n--){const i=e[n];i.type==="text"&&!t&&rse.test(i.content)&&(i.content=i.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1—").replace(/(^|\s)--(?=\s|$)/gm,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1–")),i.type==="link_open"&&i.info==="auto"&&t--,i.type==="link_close"&&i.info==="auto"&&t++}}function ase(e){if(e.md?.options?.typographer)for(let t=e.tokens.length-1;t>=0;t--){const n=e.tokens[t];if(n.type!=="inline")continue;const i=n.content||(Array.isArray(n.children)?n.children.map(o=>o.type==="text"?o.content:"").join(""):"");VHe.test(i)&&GHe(n.children||[]),rse.test(i)&&QHe(n.children||[])}}var YHe=class{rules=[];cache=null;namedCache=null;version=0;invalidateCache(){this.cache=null,this.namedCache=null,this.version++}push(e,t){const n=this.rules.findIndex(i=>i.name===e);n>=0&&this.rules.splice(n,1),this.rules.push({name:e,fn:t,enabled:!0}),this.invalidateCache()}at(e,t){const n=this.rules.findIndex(i=>i.name===e);if(n<0)throw new Error(`Parser rule not found: ${e}`);this.rules[n].fn=t,this.invalidateCache()}before(e,t,n){const i=this.rules.findIndex(s=>s.name===e);if(i<0)throw new Error(`Parser rule not found: ${e}`);const o=this.rules.findIndex(s=>s.name===t);o>=0&&this.rules.splice(o,1),this.rules.splice(i,0,{name:t,fn:n,enabled:!0}),this.invalidateCache()}after(e,t,n){const i=this.rules.findIndex(s=>s.name===e);if(i<0)throw new Error(`Parser rule not found: ${e}`);const o=this.rules.findIndex(s=>s.name===t);o>=0&&this.rules.splice(o,1),this.rules.splice(i+1,0,{name:t,fn:n,enabled:!0}),this.invalidateCache()}enable(e,t){const n=Array.isArray(e)?e:[e],i=[];let o=!1;for(const s of n){const r=this.rules.findIndex(a=>a.name===s);if(r<0){if(!t)throw new Error(`Rules manager: invalid rule name ${s}`);continue}i.push(s),this.rules[r].enabled||(this.rules[r].enabled=!0,o=!0)}return o&&this.invalidateCache(),i}disable(e,t){const n=Array.isArray(e)?e:[e],i=[];let o=!1;for(const s of n){const r=this.rules.findIndex(a=>a.name===s);if(r<0){if(!t)throw new Error(`Rules manager: invalid rule name ${s}`);continue}i.push(s),this.rules[r].enabled&&(this.rules[r].enabled=!1,o=!0)}return o&&this.invalidateCache(),i}enableOnly(e){const t=new Set(e);let n=!1;for(const i of this.rules){const o=t.has(i.name);i.enabled!==o&&(i.enabled=o,n=!0)}n&&this.invalidateCache()}compileCache(){this.cache=this.rules.filter(e=>e.enabled).map(e=>e.fn),this.namedCache=this.rules.filter(e=>e.enabled).map(e=>({name:e.name,fn:e.fn}))}getRules(e=""){return this.cache||this.compileCache(),this.cache}getNamedRules(e=""){return this.namedCache||this.compileCache(),this.namedCache}};const JHe=/['"]/,jW=/['"]/g,WW="’";function F5(e,t,n){return e.slice(0,t)+n+e.slice(t+1)}function XHe(e,t){let n;const i=[],o=t.md&&t.md.options&&t.md.options.quotes||"“”‘’";for(let s=0;s=0&&!(i[n].level<=a);n--);if(i.length=n+1,r.type!=="text")continue;let l=r.content,c=0,u=l.length;e:for(;c=0)g=l.charCodeAt(d.index-1);else for(n=s-1;n>=0&&!(e[n].type==="softbreak"||e[n].type==="hardbreak");n--)if(e[n].content){g=e[n].content.charCodeAt(e[n].content.length-1);break}let y=32;if(c=48&&g<=57&&(h=f=!1),f&&h&&(f=v,h=k),!f&&!h){m&&(r.content=F5(r.content,d.index,WW));continue}if(h)for(n=i.length-1;n>=0;n--){let x=i[n];if(i[n].level=0;t--){const n=e.tokens[t];if(n.type!=="inline")continue;const i=typeof n.content=="string"?n.content:(n.children||[]).map(o=>o.content||"").join("");!JHe.test(i)||!n.children||XHe(n.children,e)}}function cse(e){const t=e.tokens||[],n=t.length;for(let i=0;i=4||o.charCodeAt(u)!==62)return!1;if(i)return!0;const h=[],m=[],g=[],y=[],v=e.md.block.ruler.getRulesForState(e,"blockquote"),k=e.parentType;e.parentType="blockquote";let w=!1,C;for(C=t;C=d)break;if(o.charCodeAt(u++)===62&&!T){let L=l[C]+1,P,N;o.charCodeAt(u)===32?(u++,L++,N=!1,P=!0):o.charCodeAt(u)===9?(P=!0,(c[C]+L)%4===3?(u++,L++,N=!1):N=!0):P=!1;let U=L;for(h.push(s[C]),s[C]=u;u=d,m.push(c[C]),c[C]=l[C]+1+(P?1:0),g.push(l[C]),l[C]=U-L,y.push(a[C]),a[C]=u-s[C];continue}if(w)break;let E=!1;for(let L=0,P=v.length;L";const M=[t,0];S.map=M,e.md.block.tokenize(e,t,C);const _=e.push("blockquote_close","blockquote",-1);_.markup=">",e.lineMax=f,e.parentType=k,M[1]=e.line;for(let T=0;T=4){i++,o=i;continue}break}e.line=o;const s=e.push("code_block","code",0);return s.content=`${e.getLines(t,o,4+e.blkIndent,!1)} +`,s.map=[t,e.line],!0}function lje(e,t,n,i){let o=e.bMarks[t]+e.tShift[t],s=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||o+3>s)return!1;const r=e.src.charCodeAt(o);if(r!==126&&r!==96)return!1;let a=o;o=e.skipChars(o,r);let l=o-a;if(l<3)return!1;const c=e.src.slice(a,o),u=e.src.slice(o,s);if(r===96&&u.includes(String.fromCharCode(r)))return!1;if(i)return!0;let d=t,f=!1;for(;d++,!(d>=n||(o=a=e.bMarks[d]+e.tShift[d],s=e.eMarks[d],o=4)&&(o=e.skipChars(o,r),!(o-a=4)return!1;let u=o.charCodeAt(l);if(u!==35||l>=c)return!1;let d=1;for(u=o.charCodeAt(++l);u===35&&l6||ll&&UW(o.charCodeAt(f-1))&&(c=f),e.line=t+1;const h=e.push("heading_open",qW[d],1);h.markup=VW[d],h.map=[t,e.line];const m=e.push("inline","",0);m.content=o.slice(l,c).trim(),m.map=[t,e.line],m.children=[];const g=e.push("heading_close",qW[d],-1);return g.markup=VW[d],!0}function uje(e){switch(e){case 9:case 32:return!0}return!1}function dje(e,t,n,i){const o=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;let s=e.bMarks[t]+e.tShift[t];const r=e.src.charCodeAt(s++);if(r!==42&&r!==45&&r!==95)return!1;let a=1;for(;s|$))/i,/<\/(script|pre|style|textarea)>/i,!0],[/^/,!0],[/^<\?/,/\?>/,!0],[/^/,!0],[/^/,!0],[new RegExp(`^|$))`,"i"),/^$/,!0],[new RegExp(`${gHe.source}\\s*$`),/^$/,!1]];function fje(e,t,n,i){let o=e.bMarks[t]+e.tShift[t],s=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4||!e.md.options.html||e.src.charCodeAt(o)!==60)return!1;let r=e.src.slice(o,s),a=0;for(;a0&&this.level++,this.tokens.push(i),i}isEmpty(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]}skipEmptyLines(e){const t=this.bMarks,n=this.tShift,i=this.eMarks;for(let o=this.lineMax;et;){const i=n.charCodeAt(--e);if(i!==9&&i!==32)return e+1}return e}skipChars(e,t){const n=this.src;for(let i=n.length;en;)if(t!==i.charCodeAt(--e))return e+1;return e}getLines(e,t,n,i){if(e>=t)return"";if(e+1===t){const u=e,d=this.bMarks[u];let f=d;const h=i?this.eMarks[u]+1:this.eMarks[u];let m=0;const g=this.src,y=this.bsCount,v=this.tShift;for(;fn?" ".repeat(m-n)+g.slice(f,h):g.slice(f,h)}const o=new Array(t-e),s=this.src,r=this.bMarks,a=this.eMarks,l=this.bsCount,c=this.tShift;for(let u=0,d=e;dn?o[u]=" ".repeat(f-n)+s.slice(m,g):o[u]=s.slice(m,g)}return o.join("")}};gse.prototype.Token=Zr;function pje(e,t,n){for(let i=t;i=o)return!1;const s=n.charCodeAt(i);switch(s){case 35:case 42:case 43:case 45:case 60:case 62:case 95:case 96:case 126:return!0}return s>=48&&s<=57?!0:pje(n,i,o)}const KW=["","h1","h2"];function mje(e,t,n){const i=e.md.block.ruler.getRulesForState(e,"paragraph"),o=e.src,s=e.bMarks,r=e.tShift,a=e.eMarks,l=e.sCount,c=e.blkIndent,u=vse(e);if(l[t]-c>=4)return!1;const d=e.parentType;e.parentType="paragraph";let f=0,h,m=t+1;for(;m=x)break;if(l[m]-c>3)continue;if(l[m]>=c&&(h=o.charCodeAt(C),h===45||h===61)){let M=C+1,_=M;for(;M=x){f=h===61?1:2;break}if(_-C>1)continue}if(l[m]<0||u&&!yse(e,m,o,C,x))continue;let S=!1;for(let M=0,_=i.length;M<_;M++)if(i[M](e,m,n,!0)){S=!0;break}if(S)break}if(!f)return!1;let g;if(m===t+1){const C=s[t]+r[t];let x=a[t];for(;x>C;){const S=o.charCodeAt(x-1);if(S!==9&&S!==32)break;x--}g=o.slice(C,x)}else g=e.getLines(t,m,c,!1).trim();e.line=m+1;const y=h===61?"=":"-",v=e.push("heading_open",KW[f],1);v.markup=y,v.map=[t,e.line];const k=e.push("inline","",0);k.content=g,k.map=[t,e.line-1],k.children=[];const w=e.push("heading_close",KW[f],-1);return w.markup=y,e.parentType=d,!0}function bse(e){switch(e){case 9:case 32:return!0}return!1}function ZW(e,t){const n=e.eMarks,i=e.bMarks,o=e.tShift,s=e.src,r=n[t];let a=i[t]+o[t];const l=s.charCodeAt(a++);return l!==42&&l!==45&&l!==43||a=a)return-1;let c=s.charCodeAt(l++);if(c<48||c>57)return-1;for(;;){if(l>=a)return-1;if(c=s.charCodeAt(l++),c>=48&&c<=57){if(l-r>=10)return-1;continue}if(c===41||c===46)break;return-1}return l0&&++o=4||e.listIndent>=0&&e.sCount[a]-e.listIndent>=4&&e.sCount[a]=e.blkIndent&&(c=!0);let u,d,f;const h=e.src,m=e.bMarks,g=e.tShift,y=e.eMarks,v=e.sCount,k=e.bsCount,w=m[a]+g[a];if(w>=y[a])return!1;const C=h.charCodeAt(w);if(C>=48&&C<=57){if(f=GW(e,a),f<0||(u=!0,r=w,d=gje(e,a,f),c&&d!==1))return!1}else if(C===42||C===45||C===43){if(f=ZW(e,a),f<0)return!1;u=!1}else return!1;if(c&&e.skipSpaces(f)>=y[a])return!1;if(i)return!0;const x=h.charCodeAt(f-1),S=String.fromCharCode(x);if(u){const P=e.push("ordered_list_open","ol",1);d!==void 0&&d!==1&&(P.attrs=[["start",String(d)]])}else e.push("bullet_list_open","ul",1);const M=[a,0];e.tokens[e.tokens.length-1].map=M,e.tokens[e.tokens.length-1].markup=S;let _=!1;const T=e.tokens.length-1,E=e.md.block.ruler.getRulesForState(e,"list"),L=e.parentType;for(e.parentType="list";a=o?F=1:F=N-P,F>4&&(F=1);const B=P+F,W=e.push("list_item_open","li",1);W.markup=S;const D=[a,0];W.map=D,u&&(W.info=f-r-1===1?vje[h.charCodeAt(r)-48]:h.slice(r,f-1));const z=e.tight,$=e.tShift[a],j=e.sCount[a],G=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=B,e.tight=!0,e.tShift[a]=U-m[a],e.sCount[a]=N,U>=o&&e.isEmpty(a+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,a,n,!0),(!e.tight||_)&&(l=!1),_=e.line-a>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=G,e.tShift[a]=$,e.sCount[a]=j,e.tight=z,e.push("list_item_close","li",-1).markup=S,a=e.line,D[1]=a,a>=n||e.sCount[a]=4)break;let K=!1;for(let te=0,J=E.length;te3||c[f]<0)continue;if(o==="list"&&c[f]>=u){const w=r[f]+a[f],C=l[f];if(w=C||QW(s.charCodeAt(w+1)))break}else if(x>=48&&x<=57&&w+1=C){S=-1;break}const M=s.charCodeAt(S++);if(M>=48&&M<=57){if(S-w>=10){S=-1;break}continue}if((M===41||M===46)&&(S>=C||QW(s.charCodeAt(S))))break;S=-1;break}if(S>=0)break}}}const y=r[f]+a[f],v=l[f];if(d&&!yse(e,f,s,y,v))continue;let k=!1;for(let w=0,C=i.length;w=4||e.src.charCodeAt(o)!==91)return!1;function l(w){const C=e.lineMax;if(w>=C||e.isEmpty(w))return null;let x=!1;if(e.sCount[w]-e.blkIndent>3&&(x=!0),e.sCount[w]<0&&(x=!0),!x){const _=e.parentType;e.parentType="reference";let T=!1;for(let E=0,L=a.length;E"u"&&(e.env.references={}),typeof e.env.references[k]>"u"&&(e.env.references[k]={title:v,href:f}),e.line=r),!0):!1}function IS(e){switch(e){case 9:case 32:return!0}return!1}const Cje=65536;function TS(e,t){const n=e.bMarks[t]+e.tShift[t],i=e.eMarks[t];return e.src.slice(n,i)}function Aje(e,t){if(e.lineFlags)return(e.lineFlags[t]&O4.Pipe)!==0;for(let n=e.bMarks[t]+e.tShift[t],i=e.eMarks[t];nn)return!1;let o=t+1;if(e.sCount[o]=4)return!1;let s=e.bMarks[o]+e.tShift[o];if(s>=e.eMarks[o])return!1;const r=e.src.charCodeAt(s++);if(r!==124&&r!==45&&r!==58||s>=e.eMarks[o])return!1;const a=e.src.charCodeAt(s++);if(a!==124&&a!==45&&a!==58&&!IS(a)||r===45&&IS(a)||!Aje(e,t))return!1;for(;s=4)return!1;c=YW(l),c.length&&c[0]===""&&c.shift(),c.length&&c[c.length-1]===""&&c.pop();const d=c.length;if(d===0||d!==u.length)return!1;if(i)return!0;const f=e.parentType;e.parentType="table";const h=e.md.block.ruler.getRulesForState(e,"blockquote"),m=e.push("table_open","table",1),g=[t,0];m.map=g;const y=e.push("thead_open","thead",1);y.map=[t,t+1];const v=e.push("tr_open","tr",1);v.map=[t,t+1];for(let C=0;C=4||(c=YW(l),c.length&&c[0]===""&&c.shift(),c.length&&c[c.length-1]===""&&c.pop(),w+=d-c.length,w>Cje))break;if(o===t+2){const S=e.push("tbody_open","tbody",1);S.map=k=[t+2,0]}const x=e.push("tr_open","tr",1);x.map=[o,o+1];for(let S=0;Sr.name===e);if(o<0)throw new Error(`Parser rule not found: ${e}`);const s=this._rules.findIndex(r=>r.name===t);s>=0&&this._rules.splice(s,1),this._rules.splice(o,0,{name:t,enabled:!0,fn:n,alt:i?.alt||[]}),this.invalidateCache()}after(e,t,n,i){const o=this._rules.findIndex(r=>r.name===e);if(o<0)throw new Error(`Parser rule not found: ${e}`);const s=this._rules.findIndex(r=>r.name===t);s>=0&&this._rules.splice(s,1),this._rules.splice(o+1,0,{name:t,enabled:!0,fn:n,alt:i?.alt||[]}),this.invalidateCache()}getRules(e){const t=e||"";return this.cache||this.compileCache(),this.cache[t]??[]}getNamedRules(e){const t=e||"";return this.namedCache||this.compileCache(),this.namedCache[t]??[]}getRulesForState(e,t){const n=e?.env;return n&&(Object.prototype.hasOwnProperty.call(n,"__mdtsRuleProfile")||Object.prototype.hasOwnProperty.call(n,"__mdtsProfileRules"))?this.getNamedRules(t).map(({name:i,fn:o})=>(s,r,a,l)=>{const c=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),u=o(s,r,a,l),d=typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now();return h2(s?.env,"block",i,d-c,u,!!l),u}):this.getRules(t)}at(e,t,n){const i=this._rules.findIndex(o=>o.name===e);if(i===-1)throw new Error(`Parser rule not found: ${e}`);this._rules[i].fn=t,n?.alt&&(this._rules[i].alt=n.alt),this.invalidateCache()}enable(e,t){const n=Array.isArray(e)?e:[e],i=[];let o=!1;return n.forEach(s=>{const r=this._rules.findIndex(a=>a.name===s);if(r===-1){if(t)return;throw new Error(`Rules manager: invalid rule name ${s}`)}i.push(s),this._rules[r].enabled||(this._rules[r].enabled=!0,o=!0)}),o&&this.invalidateCache(),i}disable(e,t){const n=Array.isArray(e)?e:[e],i=[];let o=!1;return n.forEach(s=>{const r=this._rules.findIndex(a=>a.name===s);if(r===-1){if(t)return;throw new Error(`Rules manager: invalid rule name ${s}`)}i.push(s),this._rules[r].enabled&&(this._rules[r].enabled=!1,o=!0)}),o&&this.invalidateCache(),i}enableOnly(e){const t=new Set(e);let n=!1;for(const i of this._rules){const o=t.has(i.name);i.enabled!==o&&(i.enabled=o,n=!0)}n&&this.invalidateCache()}compileCache(){const e=new Set([""]);for(const i of this._rules)if(i.enabled)for(const o of i.alt)e.add(o);const t=Object.create(null),n=Object.create(null);for(const i of e){const o=[],s=[];for(const r of this._rules)r.enabled&&(i!==""&&!r.alt.includes(i)||(o.push(r.fn),s.push({name:r.name,fn:r.fn})));t[i]=o,n[i]=s}this.cache=t,this.namedCache=n}};const N5=[["table",xje,["paragraph","reference"]],["code",aje],["fence",lje,["paragraph","reference","blockquote","list"]],["blockquote",rje,["paragraph","reference","blockquote","list"]],["hr",dje,["paragraph","reference","blockquote","list"]],["list",bje,["paragraph","reference","blockquote"]],["reference",wje],["html_block",fje,["paragraph","reference","blockquote"]],["heading",cje,["paragraph","reference","blockquote"]],["lheading",mje],["paragraph",kje]];var kse=class{ruler;cachedRulesVersion=-1;cachedRules=[];constructor(){this.ruler=new Sje;for(let e=0;e=l[u];)u++;if(e.line=u,u>=n||c[u]=s){e.line=n;break}const h=e.line;let m=!1;for(let g=0;g=e.line)throw new Error("block rule didn't increment state.line");break}if(!m)throw new Error("none of the block rules matched");e.tight=!d,r[e.line-1]+a[e.line-1]>=l[e.line-1]&&(d=!0),u=e.line,u=l[u]&&(d=!0,u++,e.line=u)}return}const f=this.ruler.getNamedRules("");for(;u=l[u];)u++;if(e.line=u,u>=n||c[u]=s){e.line=n;break}const h=e.line;let m=!1;for(let g=0;g=e.line)throw new Error("block rule didn't increment state.line");break}}if(!m)throw new Error("none of the block rules matched");e.tight=!d,r[e.line-1]+a[e.line-1]>=l[e.line-1]&&(d=!0),u=e.line,u=l[u]&&(d=!0,u++,e.line=u)}}parse(e,t,n,i){if(!e||e.length===0)return;const o=new gse(e,t,n,i);this.tokenize(o,o.line,o.lineMax)}getRules(){return this.cachedRulesVersion!==this.ruler.version&&(this.cachedRules=this.ruler.getRules(""),this.cachedRulesVersion=this.ruler.version),this.cachedRules}},wse=class{src;env;tokens;inlineMode;md;constructor(e,t,n={}){this.src=typeof e=="string"?e||"":e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=t}};wse.prototype.Token=Zr;const JW=[["normalize",Gy],["block",VM],["inline",ose],["linkify",sse],["replacements",ase],["smartquotes",lse],["text_join",cse]],_je={html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",maxNesting:100},Ije={parseLinkLabel:c$,parseLinkDestination:l$,parseLinkTitle:u$};function Tje(){return{..._je}}function Mje(){return{...Ije}}var Eje=class{fallbackParser;lastState=null;block;inline;ruler;linkifyInstance=null;cachedCoreRulesVersion=-1;cachedCoreRules=[];cachedCoreNamedRulesVersion=-1;cachedCoreNamedRules=[];constructor(){this.block=new kse,this.inline=new OHe,this.ruler=new YHe;for(let e=0;e@[\]\\^_`{}~]/;function mw(e){return!Lje.test(e)}function Qy(e,t){const n=e.indexOf(` +`,t);return n===-1?e.length:n}function ok(e,t,n){for(let i=t;i3)return mw(e);for(let t=0;t=i||t.charCodeAt(r)!==32)return!1;let a=r+1;for(;aa&&t.charCodeAt(l-1)===32;)l--;let c=l;for(;c>a&&t.charCodeAt(c-1)===35;)c--;if(c>a&&t.charCodeAt(c-1)===32)for(l=c-1;l>a&&t.charCodeAt(l-1)===32;)l--;const u=t.slice(a,l);if(!mw(u))return!1;const d=Pje[s],f=$je[s],h=pu("heading_open",d,1,0);h.map=[o,o+1],h.markup=f,e.push(h),e.push(p$(u,o,1));const m=pu("heading_close",d,-1,0);return m.markup=f,e.push(m),!0}function Fje(e,t,n){const i=pu("paragraph_open","p",1,0);i.map=[n,n+1],e.push(i),e.push(p$(t,n,1)),e.push(pu("paragraph_close","p",-1,0))}function Dje(e,t,n){const i=e.charCodeAt(n-1);return i===32||i===9?e.slice(t,n).trim():e.slice(t,n)}function RS(e,t){for(;t=1e5?eq:LS,o="",s=!1,r=!1,a=0,l=0;for(;a"]/,tq=/[&<>"]/g,qje=/&/g,Vje=/[<>"]/g,Uje={"&":"&","<":"<",">":">",'"':"""};function PS(e){return Uje[e]||e}function No(e){if(e.length===0)return"";if(e.length<32)return Wje.test(e)?e.replace(tq,PS):e;const t=e.includes("&"),n=e.includes("<"),i=e.includes(">"),o=e.includes('"');return!t&&!n&&!i&&!o?e:t&&!n&&!i&&!o?e.replace(qje,"&"):t?e.replace(tq,PS):e.replace(Vje,PS)}const Kje=new RegExp(`${/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g.source}|${/&([a-z#][a-z0-9]{1,31});/gi.source}`,"gi"),Zje=/^#(?:x[a-f0-9]{1,8}|\d{1,8})$/i;function Cse(e){return!e.includes("\\")&&!e.includes("&")?e:e.replace(Kje,(t,n,i)=>{if(n)return n;if(Zje.test(i)){const s=i[1].toLowerCase()==="x"?Number.parseInt(i.slice(2),16):Number.parseInt(i.slice(1),10);return MC(s)?J9(s):"�"}const o=XP(t);return o!==t?o:t})}const Gje=/[\n!#$%&*+\-:<=>@[\]\\^_`{}~]/,Qje=/[\n!"#$%&*+\-:<=>@[\]\\^_`{}~]/,Yje=/"/g;function jg(e,t){const n=e.indexOf(` +`,t);return n===-1?e.length:n}function gw(e,t,n){for(let i=t;i=e.length||e.charCodeAt(t)===10?!1:!gw(e,t,jg(e,t))}function nq(e,t,n){return t+2=n||e.charCodeAt(o)!==32)return null;let s=o+1;for(;ss&&e.charCodeAt(r-1)===32;)r--;let a=r;for(;a>s&&e.charCodeAt(a-1)===35;)a--;if(a>s&&e.charCodeAt(a-1)===32)for(r=a-1;r>s&&e.charCodeAt(r-1)===32;)r--;const l=m$(e.slice(s,r));return l===null?null:`${l} +`}function iq(e,t,n){return t+1" +`:n<256&&g$[n]===0?null:`
    3. ${e[t]}
    4. +`}function nWe(e,t,n){const i=t+2;if(n===i+1)return tWe(e,i);const o=m$(e.slice(t+2,n));return o===null?null:`
    5. ${o}
    6. +`}function iWe(e,t,n){for(;tt;){const o=e.charCodeAt(n-1);if(o!==32&&o!==9)break;n--}let i=n;for(let o=t;o`:"
      ",i.lang=s,i.open=d),{html:`${d}${No(u)}
      +`,nextPos:c=25e4,s=[],r={lang:null,open:""};let a="",l="",c="",u="";for(;n +`;C +`,a=v,l=k}let w=B5(e,y);for(;w${y}

      +`,c=h,u=m}const g=de.core.parse(t,n,e).tokens);let r=sk(t,o);if(o.maxChunks&&r.length>o.maxChunks&&(r=cWe(r,o.maxChunks)),rk(t,r))return xS(n,{count:1,fallback:!0,fallbackReason:"unsafe-chunk-boundary",maxChunkChars:o.maxChunkChars,maxChunkLines:o.maxChunkLines}),f2(n,s,()=>e.core.parse(t,n,e).tokens);let a=0;const l=[];return xS(n,{count:r.length,maxChunkChars:o.maxChunkChars,maxChunkLines:o.maxChunkLines,globalStateDetected:s||void 0,globalStateFallbackDisabled:o.fallbackOnGlobalState===!1&&!!s}),f2(n,s,()=>{for(let c=0;c=3&&(u?u.marker===w&&x>=u.length&&(u=null):u={marker:w,length:x})}}const y=m-f;o+=y,s+=1,a+=1,g?(l=0,c=0):(l+=1,c+=y);const v=g;if((o>=t.maxChunkChars||s>=t.maxChunkLines)&&!u)if(v)d(m);else{const k=Math.max(10,Math.floor(t.maxChunkLines*.5)),w=Math.max(t.maxChunkChars,8e3);(l>=k||c>=w)&&d(m)}f=m}return n&&d(e.length),i}function rk(e,t,n={rangesCoverWholeSource:!0}){const i=n.rangesCoverWholeSource?t.length-1:t.length;for(let o=0;oe.length||e.charCodeAt(t-1)!==10)return!1;let n=t-2;for(;n>=0&&e.charCodeAt(n)!==10;)n--;for(let i=n+1;i=0;i--)n.push(e[i]);for(;n.length;){const i=n.pop();if(i.map&&(i.map[0]+=t,i.map[1]+=t),i.children)for(let o=i.children.length-1;o>=0;o--)n.push(i.children[o])}}function lWe(e,t){for(let n=0;n=0;i--)n.push(e[i]);for(;n.length;){const i=n.pop();if(i.map&&(i.map[0]+=t,i.map[1]+=t),i.children)for(let o=i.children.length-1;o>=0;o--)n.push(i.children[o])}}function Kh(e){return e.length===0?0:$s(e)+(e.charCodeAt(e.length-1)===10?0:1)}function gWe(e,t,n){for(let i=t;i=3&&(n?n.marker===r&&l>=n.length&&(n=null):n={marker:r,length:l})}i=o===e.length?e.length:o+1}return n!==null}function yWe(e,t){if(e.length===0||e.charCodeAt(e.length-1)!==10)return!1;let n=e.length-2;for(;n>=0&&e.charCodeAt(n)!==10;)n--;return gWe(e,n+1,e.length-1)?!vWe(e,t):!1}function bWe(e,t,n,i={}){const o=i.mode??"full",s=i.fenceAware??(o==="stream"?e.options.streamChunkFenceAware??!0:e.options.fullChunkFenceAware??!0);if(i.maxChunkChars!==void 0||i.maxChunkLines!==void 0||i.autoTune===!1){const r=i.maxChunkChars??(o==="stream"?e.options.streamChunkSizeChars??hWe:e.options.fullChunkSizeChars??dWe),a=i.maxChunkLines??(o==="stream"?e.options.streamChunkSizeLines??pWe:e.options.fullChunkSizeLines??fWe);return{maxChunkChars:r,maxChunkLines:a,holdBelowChars:r,holdBelowLines:a,fenceAware:s}}return o==="stream"?t<=5e3?{maxChunkChars:16e3,maxChunkLines:250,holdBelowChars:16e3,holdBelowLines:250,fenceAware:s}:t<=2e4?{maxChunkChars:16e3,maxChunkLines:200,holdBelowChars:16e3,holdBelowLines:200,fenceAware:s}:t<=5e4?{maxChunkChars:16e3,maxChunkLines:250,holdBelowChars:16e3,holdBelowLines:250,fenceAware:s}:t<=5e5?{maxChunkChars:32e3,maxChunkLines:350,holdBelowChars:32e3,holdBelowLines:350,fenceAware:s}:{maxChunkChars:64e3,maxChunkLines:700,holdBelowChars:64e3,holdBelowLines:700,fenceAware:s}:t<=1e5&&n<=2500?{maxChunkChars:32e3,maxChunkLines:350,holdBelowChars:1e5,holdBelowLines:2500,fenceAware:s}:t<=2e5?{maxChunkChars:2e4,maxChunkLines:150,holdBelowChars:2e4,holdBelowLines:150,fenceAware:s}:t<=5e5?{maxChunkChars:32e3,maxChunkLines:350,holdBelowChars:32e3,holdBelowLines:350,fenceAware:s}:{maxChunkChars:64e3,maxChunkLines:700,holdBelowChars:64e3,holdBelowLines:700,fenceAware:s}}var ob=class{md;options;pending="";tokens=[];committedChars=0;committedLines=0;fedChunks=0;parsedChunks=0;globalStateEnv=null;markedGlobalStateReason=null;constructor(e,t={}){if(this.md=e,this.options={mode:"full",autoTune:!0,retainTokens:!0,...t},this.options.retainTokens===!1&&!this.options.onChunkTokens)throw new Error("UnboundedBuffer with retainTokens=false requires onChunkTokens")}feed(e){e&&(this.pending+=e,this.fedChunks+=1)}flushAvailable(e={}){if(!this.pending)return null;const t=this.resolveWindow(),n=Kh(this.pending);if(this.pending.length=i||n>=o}function Tse(e,t,n){if(e.options.autoUnbounded===!1)return"no";if(t>=(e.options.autoUnboundedThresholdChars??xse))return"yes";const i=e.options.autoUnboundedThresholdLines??Sse;return n!==void 0?n>=i?"yes":"no":t<2*i-1?"no":"need-lines"}function F4(e,t,n={},i={}){sl(n);const o=E1(t);if(nb(n)&&vh(n),i.fallbackOnGlobalState!==!1&&o)return Moe(n,{mode:"full",fallback:!0,fallbackReason:o,committedChars:t.length,committedLines:$s(t),pendingChars:0,pendingLines:0,fedChunks:1,parsedChunks:1,globalStateDetected:o}),f2(n,o,()=>e.core.parse(t,n,e).tokens);const s=[],r=new ob(e,{mode:"full",...i,retainTokens:!1,onChunkTokens(a){_se(s,a)}});if(o&&r$(n,o),r.feed(t),r.flushForce(n),o&&(a$(n),i.fallbackOnGlobalState===!1)){const a=uc(n)?.unbounded;a&&(a.globalStateDetected=o,a.globalStateFallbackDisabled=!0)}return s}const p2=(e,t,n)=>en?n:e;function Mse(e){return e.experimental?{...e,...e.experimental}:e}const rq=[{max:5e3,strategy:"discrete",maxChunkChars:32e3,maxChunkLines:150,maxChunks:8,notes:"<=5k"},{max:2e4,strategy:"discrete",maxChunkChars:24e3,maxChunkLines:200,maxChunks:12,notes:"<=20k"},{max:1e5,strategy:"plain",notes:"<=100k plain"},{max:2e5,strategy:"discrete",maxChunkChars:2e4,maxChunkLines:150,maxChunks:12,notes:"<=200k"},{max:5e5,strategy:"discrete",maxChunkChars:64e3,maxChunkLines:700,maxChunks:16,notes:"<=500k"},{max:5e6,strategy:"discrete",maxChunkChars:64e3,maxChunkLines:700,maxChunks:16,notes:"<=5M"}],aq=[{max:5e3,strategy:"discrete",maxChunkChars:16e3,maxChunkLines:250,maxChunks:8,notes:"<=5k"},{max:2e4,strategy:"discrete",maxChunkChars:2e4,maxChunkLines:200,maxChunks:24,notes:"<=20k"},{max:1e5,strategy:"discrete",maxChunkChars:2e4,maxChunkLines:200,maxChunks:24,notes:"<=100k"},{max:5e5,strategy:"discrete",maxChunkChars:64e3,maxChunkLines:700,maxChunks:32,notes:"<=500k"},{max:5e6,strategy:"discrete",maxChunkChars:64e3,maxChunkLines:700,maxChunks:32,notes:"<=5M"}];function Ese(e,t){return{strategy:t.strategy,maxChunkChars:t.maxChunkChars,maxChunkLines:t.maxChunkLines,maxChunks:t.maxChunks,fenceAware:e,notes:t.notes}}function xWe(e,t=Math.max(0,e/40|0),n={}){const i=Mse(n),o=i.fullChunkFenceAware??!0,s=i.fullChunkTargetChunks??8,r=i.fullChunkAdaptive!==!1;for(let a=0;a5e6?{strategy:"plain",fenceAware:o,notes:">5M plain"}:r?{strategy:"adaptive",maxChunkChars:p2(Math.ceil(e/s),8e3,64e3),maxChunkLines:p2(Math.ceil(t/s),150,700),maxChunks:p2(Math.ceil(e/64e3),s,16),fenceAware:o,notes:"adaptive fallback"}:{strategy:"discrete",maxChunkChars:i.fullChunkSizeChars??1e4,maxChunkLines:i.fullChunkSizeLines??200,fenceAware:o,maxChunks:i.fullChunkMaxChunks}}function lq(e,t=Math.max(0,e/40|0),n={}){const i=Mse(n),o=i.streamChunkFenceAware??!0,s=i.streamChunkTargetChunks??8,r=i.streamChunkAdaptive!==!1;for(let a=0;a5e6?{strategy:"plain",fenceAware:o,notes:">5M plain"}:r?{strategy:"adaptive",maxChunkChars:p2(Math.ceil(e/s),8e3,64e3),maxChunkLines:p2(Math.ceil(t/s),150,700),maxChunks:p2(Math.ceil(e/64e3),s,32),fenceAware:o,notes:"adaptive fallback"}:{strategy:"discrete",maxChunkChars:i.streamChunkSizeChars??1e4,maxChunkLines:i.streamChunkSizeLines??200,maxChunks:i.streamChunkMaxChunks,fenceAware:o}}var SWe={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"]},inline2:{rules:["balance_pairs","emphasis","fragments_join"]}}},_We={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}},IWe={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["paragraph"]},inline:{rules:["text"]},inline2:{rules:["balance_pairs","fragments_join"]}}};function LC(e){return!!e&&(typeof e=="object"||typeof e=="function")&&typeof e.then=="function"}function ak(e,t){if(LC(e))throw new TypeError(`Renderer rule "${t}" returned a Promise. Use renderAsync() instead.`);return e}const cq=e=>LC(e)?e:Promise.resolve(e);function D4(e){switch(e){case"alt":case"class":case"href":case"id":case"lang":case"rel":case"src":case"start":case"style":case"target":case"title":return e;default:return No(e)}}function op(e){if(!e||e.length===0)return"";const t=e[0];let n=` ${D4(t[0])}="${No(t[1])}"`;for(let i=1;i=e.length)return{langName:e,langAttrs:""};let n=t;for(;n${t} +`;const s=e.attrIndex("class"),r=e.attrs?e.attrs.slice():[],a=`${o.langPrefix??"language-"}${i}`;return s<0?r.push(["class",a]):(r[s]=r[s].slice(),r[s][1]+=` ${a}`),`
      ${t}
      +`}return`
      ${t}
      +`}function e3(e){return!e.attrs||e.attrs.length===0?`${No(e.content)}`:`${No(e.content)}`}function QM(e){const t=No(e.content);return e.attrs?`${t} +`:`
      ${t}
      +`}function TWe(e,t){const n=e.attrs;if(!n||n.length===0)switch(e.type){case"paragraph_open":return`${t}

      `;case"heading_open":return`<${e.tag}>`;case"td_open":return`${t}`;case"th_open":return`${t}`;default:return null}if(n.length===1&&n[0][0]==="style"){if(e.type==="td_open")return`${t}`;if(e.type==="th_open")return`${t}`}return null}function uq(e){const t=e.attrs;return!t||t.length===0?"":t.length===1?``:t.length===2?``:``}function MWe(e){switch(e.type){case"text":case"text_special":case"softbreak":case"hardbreak":case"html_inline":case"code_inline":case"image":return!0;default:return!1}}function dq(e){switch(e.type){case"text":case"text_special":case"softbreak":case"hardbreak":case"html_inline":case"code_inline":return!0;default:return!1}}function yw(e,t){if(e.hidden)return"";const n=e.attrs,i=e.nesting,o=e.tag;if(!n||n.length===0)return i===0?t?`<${o} />`:`<${o}>`:i===-1?``:`<${o}>`;let s=(i===-1?"`}const EWe={langPrefix:"language-",xhtmlOut:!1,breaks:!1},z5=Object.prototype.hasOwnProperty,oo={code_inline(e,t){return e3(e[t])},code_block(e,t){return QM(e[t])},fence(e,t,n,i,o){const s=e[t],r=s.info?Cse(s.info).trim():"",{langName:a,langAttrs:l}=Lse(r),c=n.highlight,u=No(s.content);if(!c)return N4(s,u,r,a,n);const d=c(s.content,a,l);return LC(d)?d.then(f=>N4(s,f||u,r,a,n)):N4(s,d||u,r,a,n)},image(e,t,n,i,o){const s=e[t],r=o.renderInlineAsText(s.children||[],n,i),a=s.attrIndex("alt");return a>=0&&s.attrs?s.attrs[a][1]=r:s.attrs?s.attrs.push(["alt",r]):s.attrs=[["alt",r]],yw(s,n.xhtmlOut===!0)},hardbreak(e,t,n){return n.xhtmlOut?`
      +`:`
      +`},softbreak(e,t,n){return n.breaks?n.xhtmlOut?`
      +`:`
      +`:` +`},text(e,t){return No(e[t].content)},text_special(e,t){return No(e[t].content)},html_block(e,t){return e[t].content},html_inline(e,t){return e[t].content}};function fq(e,t,n){const i=e.info?Cse(e.info).trim():"",{langName:o,langAttrs:s}=Lse(i),r=t.highlight,a=No(e.content);if(!r)return N4(e,a,i,o,t);const l=r(e.content,o,s);if(LC(l))throw new TypeError('Renderer rule "fence" returned a Promise. Use renderAsync() instead.');return N4(e,l||a,i,o,t)}function $S(e,t,n,i){switch(e.type){case"text":return t.text===oo.text?e.content.length===0?"":No(e.content):null;case"text_special":return t.text_special===oo.text_special?e.content.length===0?"":No(e.content):null;case"softbreak":return t.softbreak===oo.softbreak?i:null;case"hardbreak":return t.hardbreak===oo.hardbreak?n:null;case"html_inline":return t.html_inline===oo.html_inline?e.content:null;case"code_inline":return t.code_inline===oo.code_inline?e3(e):null;default:return null}}function LWe(e,t,n,i,o){const s=e[0];switch(s.type){case"text":if(o.text===oo.text)return s.content.length===0?"":No(s.content);break;case"text_special":if(o.text_special===oo.text_special)return s.content.length===0?"":No(s.content);break;case"softbreak":if(o.softbreak===oo.softbreak)return t.breaks?t.xhtmlOut?`
      +`:`
      +`:` +`;break;case"hardbreak":if(o.hardbreak===oo.hardbreak)return t.xhtmlOut?`
      +`:`
      +`;break;case"html_inline":if(o.html_inline===oo.html_inline)return s.content;break;case"code_inline":if(o.code_inline===oo.code_inline)return e3(s);break}const r=o[s.type];if(!r)return yw(s,t.xhtmlOut===!0);const a=r(e,0,t,n,i);return typeof a=="string"?a:ak(a,s.type)}var RWe=class{rules;baseOptions;normalizedBase;constructor(e={}){this.baseOptions={...e},this.normalizedBase=this.buildNormalizedBase(),this.rules={...oo}}set(e){return this.baseOptions={...this.baseOptions,...e},this.normalizedBase=this.buildNormalizedBase(),this}render(e,t,n){if(!Array.isArray(e))throw new TypeError("render expects token array as first argument");if(e.length===1)return this.renderSingleToken(e,e[0],t,n);const i=this.mergeOptions(t),o=n??{},s=this.rules,r=i.xhtmlOut===!0;let a,l,c,u,d,f,h="",m="",g=!1,y="";for(let v=0;v0&&e[v-1].hidden?` +`:"";if(w==="list_item_open"&&(!k.attrs||k.attrs.length===0)&&v+3${this.renderInlineTokens(_.children||[],i,o)}`,v+=3;continue}}if(v+2 +`,v+=2;continue}}}if(w==="inline"){const M=k.children||[];if(M.length===1){g||(a=s.text,l=s.text_special,c=s.softbreak,u=s.hardbreak,d=s.html_inline,f=s.code_inline,h=i.xhtmlOut?`
      +`:`
      +`,m=i.breaks?h:` +`,g=!0);const _=M[0];switch(_.type){case"text":if(a===oo.text){y+=No(_.content);continue}break;case"text_special":if(l===oo.text_special){y+=No(_.content);continue}break;case"softbreak":if(c===oo.softbreak){y+=m;continue}break;case"hardbreak":if(u===oo.hardbreak){y+=h;continue}break;case"html_inline":if(d===oo.html_inline){y+=_.content;continue}break;case"code_inline":if(f===oo.code_inline){y+=e3(_);continue}break}}y+=this.renderInlineTokens(M,i,o);continue}const x=s[w];if(!x){const M=k.attrs;if(!k.hidden){if(!M||M.length===0)switch(w){case"hr":y+=r?`


      +`:`
      +`;continue;case"heading_open":y+=`<${k.tag}>`;continue;case"heading_close":y+=` +`;continue;case"paragraph_open":y+=`${C}

      `;continue;case"paragraph_close":y+=`

      +`;continue;case"list_item_open":{const _=e[v+1];y+=C+(_&&(_.type==="inline"||_.hidden||_.nesting===-1&&_.tag==="li")?"
    7. ":`
    8. +`);continue}case"list_item_close":y+=`
    9. +`;continue;case"bullet_list_open":y+=`${C}
        +`;continue;case"bullet_list_close":y+=`
      +`;continue;case"blockquote_open":y+=C+(e[v+1]&&e[v+1].nesting===-1&&e[v+1].tag==="blockquote"?"
      ":`
      +`);continue;case"blockquote_close":y+=`
      +`;continue;case"ordered_list_open":y+=`${C}
        +`;continue;case"ordered_list_close":y+=`
      +`;continue;case"table_open":y+=`${C} +`;continue;case"table_close":y+=`
      +`;continue;case"thead_open":y+=`${C} +`;continue;case"thead_close":y+=` +`;continue;case"tbody_open":y+=`${C} +`;continue;case"tbody_close":y+=` +`;continue;case"tr_open":y+=`${C} +`;continue;case"tr_close":y+=` +`;continue;case"td_open":y+=`${C}`;continue;case"td_close":y+=` +`;continue;case"th_open":y+=`${C}`;continue;case"th_close":y+=` +`;continue}else if(M.length===1){const _=M[0];if(w==="ordered_list_open"&&_[0]==="start"){y+=`${C}
        +`;continue}if(w==="td_open"&&_[0]==="style"){y+=`${C}`;continue}if(w==="th_open"&&_[0]==="style"){y+=`${C}`;continue}}}y+=this.renderToken(e,v,i);continue}if(w==="code_block"&&x===oo.code_block){y+=QM(k);continue}if(w==="fence"&&x===oo.fence){y+=fq(k,i);continue}if(w==="html_block"&&x===oo.html_block){y+=k.content;continue}const S=x(e,v,i,o,this);typeof S=="string"?y+=S:y+=ak(S,k.type)}return y}async renderAsync(e,t,n){if(!Array.isArray(e))throw new TypeError("render expects token array as first argument");const i=this.mergeOptions(t),o=n??{},s=this.rules;let r="";for(let a=0;a0&&e[t-1].hidden?` +`:"",u=l?`> +`:">";if(!a||a.length===0)return s===0?n.xhtmlOut?`${c}<${r} /${u}`:`${c}<${r}${u}`:s===-1?`${c}(n||(n={...t}),n);if(z5.call(e,"highlight")&&e.highlight!==t.highlight&&(i().highlight=e.highlight),z5.call(e,"langPrefix")){const o=e.langPrefix;o!==t.langPrefix&&(i().langPrefix=o)}if(z5.call(e,"xhtmlOut")){const o=e.xhtmlOut;o!==t.xhtmlOut&&(i().xhtmlOut=o)}if(z5.call(e,"breaks")){const o=e.breaks;o!==t.breaks&&(i().breaks=o)}return n||t}buildNormalizedBase(){return Object.freeze({...EWe,...this.baseOptions})}renderSingleToken(e,t,n,i){const o=this.rules,s=t.type;if(s==="code_block"&&o.code_block===oo.code_block)return QM(t);if(s==="html_block"&&o.html_block===oo.html_block)return t.content;const r=this.mergeOptions(n),a=i??{};if(s==="inline")return this.renderInlineTokens(t.children||[],r,a);const l=o[s];if(!l)return t.block?this.renderToken(e,0,r):yw(t,r.xhtmlOut===!0);if(s==="fence"&&l===oo.fence)return fq(t,r);const c=l(e,0,r,a,this);return typeof c=="string"?c:ak(c,s)}renderInlineTokens(e,t,n){if(!e||e.length===0)return"";const i=this.rules;if(e.length===1)return LWe(e,t,n,this,i);const o=t.xhtmlOut===!0,s=o?`
        +`:`
        +`,r=t.breaks?s:` +`,a=i.text,l=i.text_special,c=i.softbreak,u=i.hardbreak,d=i.html_inline,f=i.code_inline,h=i.link_open,m=i.link_close,g=i.em_open,y=i.em_close,v=i.strong_open,k=i.strong_close;let w="";for(let C=0;C`;if(c===oo.softbreak&&C+3`,C+=1;continue}if(x.type==="em_open"&&!g&&!y&&C+2${T}`,C+=2;continue}}}if(x.type==="strong_open"&&!v&&!k&&C+2${T}`,C+=2;continue}}}switch(x.type){case"text":if(a===oo.text){const _=x.content.length===0?"":No(x.content);if(d===oo.html_inline&&C+1{if(!Object.hasOwn(e,i))return!1;const o=e[i],s=t[i];if(Array.isArray(o)&&Array.isArray(s))return o.length===s.length&&o.every((r,a)=>Object.is(r,s[a]));if(i==="experimental"&&o&&s){const r=o,a=s,l=Object.keys(a);return Object.keys(r).length===l.length&&l.every(c=>Object.hasOwn(r,c)&&Object.is(r[c],a[c]))}return Object.is(o,s)})}function DWe(e){return{options:OWe(e.options),coreVersion:e.core.ruler.version,blockVersion:e.block.ruler.version,inlineVersion:e.inline.ruler.version,inline2Version:e.inline.ruler2.version}}function hq(e,t){return FWe(e.options,t.options)&&e.coreVersion===t.core.ruler.version&&e.blockVersion===t.block.ruler.version&&e.inlineVersion===t.inline.ruler.version&&e.inline2Version===t.inline.ruler2.version}function NWe(e){const t=e.length;let n=0;for(;n<=t;){let i=e.indexOf(` +`,n);i===-1&&(i=t);const o=i=4)return!0;continue}if(a===9){if(r+=4-r%4,s++,r>=4)return!0;continue}break}if(s0&&c<=6){if(l=3)return!0;break}default:if(a>=48&&a<=57){let l=s+1;for(;l57)break;l++}if(lY.fn===Gy),l=r.findIndex(Y=>Y.fn===VM),c=r.find(Y=>Y.name==="normalize");this.normalizeLineEndings=a>=0&&l>=0&&aY.fn!==Gy);this.tokenMapsTrusted=!(l<0||r.slice(l+1).some(Y=>Y.fn!==ose&&Y.fn!==sse&&Y.fn!==ase&&Y.fn!==lse&&Y.fn!==cse)),this.allowUntrustedTailReuse=this.tokenMapsTrusted||n.options?.streamTailLocalPostBlockRules===!0;const g=d||f||h||m?null:o;if(sl(u??o?.env??s),!g||u&&u!==g.env){const Y=u??o?.env??s??{},ae=!!n.__explicitStreamChunkFallbackSetting,pe=typeof n.__canUseImplicitLargeInputStrategy=="function"?n.__canUseImplicitLargeInputStrategy():!0,Me=!!n.options?.streamChunkedFallback,fe=!ae&&pe,se=Me||fe,Q=n.options?.streamChunkAdaptive!==!1,ee=n.options?.streamChunkTargetChunks??8,he=n.options?.streamChunkSizeChars,Re=n.options?.streamChunkSizeLines,Pe=n.options?.streamChunkMaxChunks,le=!!n.__explicitStreamChunkConfig,ke=n.options?.autoTuneChunks!==!1,ne=n.options?.streamChunkFenceAware??!0,ce=n.options?.streamLargeCachePolicy??"retain",be=n.options?.streamSkipCacheAboveChars??this.DEFAULT_SKIP_CACHE_CHARS,xe=n.options?.streamSkipCacheAboveLines??this.DEFAULT_SKIP_CACHE_LINES;let de,$e=!1;if(ce==="skip"&&($e=e.length>=be,!$e&&xe!==void 0&&(de=$s(e),$e=de>=xe)),$e&&i===void 0&&!o?.snapshotState){const Pt=this.parseFullDocument(e,Y,n,de,!1);return this.cache=null,this.stats.total+=1,this.stats.fullParses+=1,this.stats.lastMode="full",Ir(Y,{area:"stream",path:"stream-full",reason:"skip-cache-large-one-shot",unbounded:!!uc(Y)?.unbounded}),Pt.tokens}else if(se){const Pt=(Le,Ke,Ee)=>LeEe?Ee:Le;de===void 0&&(de=$s(e));const $t=ke&&!le?lq(e.length,de,n.options):null,jt=$t?.maxChunkChars??(Q?Pt(Math.ceil(e.length/ee),8e3,64e3):he??1e4),Kt=$t?.maxChunkLines??(Q?Pt(Math.ceil(de/ee),150,700):Re??200),sn=$t?.maxChunks??(Q?Pt(Math.ceil(e.length/64e3),ee,32):Pe),Jt=e.length>0&&e.charCodeAt(e.length-1)===10,Oe=fe&&e.length>=this.IMPLICIT_STREAM_CHUNK_MIN_CHARS&&$t?.strategy!=="plain";if((Me||Oe)&&(e.length>=jt*2||de>=Kt*2)&&Jt){const Le=vw(n,e,Y,{maxChunkChars:jt,maxChunkLines:Kt,fenceAware:$t?.fenceAware??ne,maxChunks:sn}),Ke=uc(Y)?.chunk?.globalStateDetected??null,Ee=this.setCache({src:e,tokens:Le,env:Y,lineCount:de,lastSegment:void 0,globalStateReason:Ke},n);return this.updateCacheLineCount(Ee,de),this.recordChunkedParseResult(Y,Me?"explicit-initial-large-doc":"default-initial-large-doc"),Le}}const Ye=this.parseFullDocument(e,Y,n,de);de=Ye.lineCount;const rt=this.setCache({src:e,tokens:Ye.tokens,env:Y,lineCount:de,lastSegment:void 0,globalStateReason:Ye.globalStateReason},n);return this.updateCacheLineCount(rt,de),this.stats.total+=1,this.stats.fullParses+=1,this.stats.lastMode="full",Ir(Y,{area:"stream",path:"stream-full",reason:"initial-parse",unbounded:!!uc(Y)?.unbounded}),Ye.tokens}if(e===g.src)return this.stats.total+=1,this.stats.cacheHits+=1,this.stats.lastMode="cache",Ir(g.env,{area:"stream",path:"stream-cache",reason:"same-source"}),g.tokens;const y=i!==void 0?i:e.startsWith(g.src)?e.slice(g.src.length):null;let v=g.globalStateReason;v===void 0&&(v=E1(g.src),g.globalStateReason=v);const k=v?null:y!==null?this.detectGlobalStateForAppend(g,y):E1(e),w=v||k;if(w){const Y=u??g.env;vh(Y);const ae=this.parseFullDocument(e,Y,n),pe=ae.tokens,Me=ae.lineCount,fe=this.setCache({src:e,tokens:pe,env:Y,lineCount:Me,lastSegment:void 0,globalStateReason:ae.globalStateReason},n);return this.updateCacheLineCount(fe,Me),this.stats.total+=1,this.stats.fullParses+=1,this.stats.lastMode="full",Ir(Y,{area:"stream",path:"stream-full",reason:`global-state:${w}`,unbounded:!!uc(Y)?.unbounded}),pe}const C=n.options?.streamOptimizationMinSize??this.MIN_SIZE_FOR_OPTIMIZATION;if(g.src.length5e3?ae=8:M.length>1e3?ae=6:M.length>200&&(ae=4),ae=Math.min(ae,Y);let pe=null;const Me=n.options?.streamContextParseStrategy??"chars",fe=n.options?.streamContextParseMinChars??200,se=n.options?.streamContextParseMinLines??2;let Q;const ee=()=>(Q===void 0&&(Q=$s(M)),Q),he=this.canDirectlyParseAppend(g),Re=he&&this.shouldUseUnboundedAppend(e,g,M);let Pe=!1;if(!he)switch(Me){case"lines":Pe=ee()>=se;break;case"constructs":if(M.length>=fe){Pe=!0;break}if(NWe(M)){Pe=!0;break}Pe=ee()>=se;break;case"chars":default:Pe=M.length>=fe}if(ae>0&&Pe){const ne=this.getTailLines(g.src,ae)+M;try{const ce=this.core.parse(ne,g.env,n).tokens,be=ce.findIndex(xe=>xe.map&&typeof xe.map[1]=="number"&&xe.map[1]>ae);if(be!==-1){const xe=ce.slice(be),de=Y-ae;de!==0&&this.shiftTokenLines(xe,de),pe={tokens:xe}}}catch{pe=null}}else pe=null;if(!pe){const ne=Y;if(Re)pe={tokens:F4(n,M,g.env,{mode:"stream"})},ne>0&&this.shiftTokenLines(pe.tokens,ne);else{const ce=this.core.parse(M,g.env,n);ne>0&&this.shiftTokenLines(ce.tokens,ne),pe=ce}}let le=0;if(g.tokens.length>0&&pe.tokens.length>0){const ne=g.tokens[g.tokens.length-1],ce=pe.tokens[0];try{ne.type==="inline"&&ce.type==="inline"&&(ce.children&&ce.children.length>0&&(ne.children||(ne.children=[]),this.appendTokens(ne.children,ce.children)),ne.content=(ne.content||"")+(ce.content||""),le=1)}catch{le=0}}const ke=g.tokens.length;if(pe.tokens.length>le){const ne=g.tokens,ce=pe.tokens,be=Math.min(ne.length,ce.length-le);let xe=0;for(let de=be;de>0;de--){let $e=!0;for(let Ye=0;Ye0&&(le+=xe),ce.length>le&&this.appendTokens(g.tokens,ce,le)}if(g.boundary?this.updateBoundaryStateForAppend(g,M):this.updateFenceMarkerCacheForAppend(g,M),g.src=e,g.globalStateReason=null,g.lineCount=Y+(Q??ee()),g.tokens.length>ke){const ne=this.getLastSegment(g.tokens,e,ke,g.tokens.length,e.length-M.length,Y);if(ne){g.lastSegment=ne;const ce=e.length-M.length;g.lastSegmentSource=M.slice(Math.max(0,ne.srcOffset-ce))}else g.lastSegment=void 0,g.lastSegmentSource=void 0}else g.lastSegment=void 0,g.lastSegmentSource=void 0;return g.lastSegmentVerified=void 0,this.stats.total+=1,this.stats.appendHits+=1,Re&&(this.stats.unboundedAppendHits=(this.stats.unboundedAppendHits||0)+1),this.stats.lastMode="append",Ir(g.env,{area:"stream",path:Re?"stream-unbounded-append":"stream-append",reason:Re?"large-delta":"safe-append",unbounded:Re}),g.tokens}const _=u??g.env,T=S?this.tryTailSegmentReparse(e,g,_,n,x??void 0,y??void 0):this.allowUntrustedTailReuse?this.tryUntrustedParagraphTailReparse(e,g,_,n):null;if(T)return this.stats.total+=1,this.stats.tailHits+=1,this.stats.lastMode="tail",Ir(_,{area:"stream",path:"stream-tail",reason:"tail-reparse"}),T;const E=!!n.__explicitStreamChunkFallbackSetting,L=typeof n.__canUseImplicitLargeInputStrategy=="function"?n.__canUseImplicitLargeInputStrategy():!0,P=!!n.options?.streamChunkedFallback,N=!E&&!M&&L,U=P||N,F=n.options?.streamChunkAdaptive!==!1,B=n.options?.streamChunkTargetChunks??8,W=n.options?.streamChunkSizeChars,D=n.options?.streamChunkSizeLines,z=n.options?.streamChunkMaxChunks,$=!!n.__explicitStreamChunkConfig,j=n.options?.autoTuneChunks!==!1,G=n.options?.streamChunkFenceAware??!0;let K=M&&g.lineCount!==void 0?g.lineCount+$s(M):void 0;if(U){K===void 0&&(K=$s(e));const Y=(ee,he,Re)=>eeRe?Re:ee,ae=j&&!$?lq(e.length,K,n.options):null,pe=ae?.maxChunkChars??(F?Y(Math.ceil(e.length/B),8e3,64e3):W??1e4),Me=ae?.maxChunkLines??(F?Y(Math.ceil(K/B),150,700):D??200),fe=ae?.maxChunks??(F?Y(Math.ceil(e.length/64e3),B,32):z),se=e.length>0&&e.charCodeAt(e.length-1)===10,Q=N&&e.length>=this.IMPLICIT_STREAM_CHUNK_MIN_CHARS&&ae?.strategy!=="plain";if((P||Q)&&(e.length>=pe*2||K>=Me*2)&&se){const ee=vw(n,e,_,{maxChunkChars:pe,maxChunkLines:Me,fenceAware:ae?.fenceAware??G,maxChunks:fe}),he=uc(_)?.chunk?.globalStateDetected??null,Re=this.setCache({src:e,tokens:ee,env:_,lineCount:K,lastSegment:void 0,globalStateReason:he},n);return this.updateCacheLineCount(Re,K),this.recordChunkedParseResult(_,P?"explicit-fallback-large-doc":"default-fallback-large-doc"),ee}}const te=this.parseFullDocument(e,_,n,K),J=te.tokens;K=te.lineCount;const q=this.setCache({src:e,tokens:J,env:_,lineCount:K,lastSegment:void 0,globalStateReason:te.globalStateReason},n);return this.updateCacheLineCount(q,K),this.stats.total+=1,this.stats.fullParses+=1,this.stats.lastMode="full",Ir(_,{area:"stream",path:"stream-full",reason:"fallback-full",unbounded:!!uc(_)?.unbounded}),J}recordChunkedParseResult(e,t){const n=uc(e)?.chunk,i=n?.fallback?String(n.fallbackReason||"global-state"):null;if(this.stats.total+=1,i){this.stats.fullParses+=1,this.stats.lastMode="full",Ir(e,{area:"stream",path:"stream-full",reason:`global-state:${i}`,unbounded:!!uc(e)?.unbounded});return}this.stats.chunkedParses=(this.stats.chunkedParses||0)+1,this.stats.lastMode="chunked",Ir(e,{area:"stream",path:"stream-chunked",chunked:!0,reason:t})}parseFullDocument(e,t,n,i,o=!0){nb(t)&&vh(t);const s=typeof n.__canUseImplicitLargeInputStrategy!="function"||n.__canUseImplicitLargeInputStrategy()?Tse(n,e.length,i):"no";if(s==="yes"){const l=F4(n,e,t),c=uc(t)?.unbounded?.globalStateDetected??null;return Ir(t,{area:"stream",path:"stream-full",reason:"auto-unbounded-char-threshold",unbounded:!0}),{tokens:l,lineCount:i??(o?$s(e):0),globalStateReason:c}}let r=i;if(s==="need-lines"&&(r=$s(e),Ise(n,e.length,r))){const l=F4(n,e,t),c=uc(t)?.unbounded?.globalStateDetected??null;return Ir(t,{area:"stream",path:"stream-full",reason:"auto-unbounded-line-threshold",unbounded:!0}),{tokens:l,lineCount:r,globalStateReason:c}}r===void 0&&(r=o?$s(e):0);const a=E1(e);return{tokens:f2(t,a,()=>this.core.parse(e,t,n).tokens),lineCount:r,globalStateReason:a}}shouldUseUnboundedAppend(e,t,n){return!n||e.length=this.MIN_UNBOUNDED_APPEND_CHARS?!0:$s(n)>=this.MIN_UNBOUNDED_APPEND_LINES}getAppendedSegment(e,t,n){const i=e.src;if(n===null||n===void 0&&!t.startsWith(i)||(n!==void 0?!this.ensureBoundaryState(e).endsWithNewline:!i.endsWith(` +`)))return null;const o=n??t.slice(i.length);if(!o)return null;const s=o.length;if(o.charCodeAt(s-1)!==10)return null;let r=0,a=-1;for(let c=0;c=2));c++);if(r<2)return null;const l=(a===-1?o:o.slice(0,a)).trim();if(l.length===0)return null;if(/^[-=]+$/.test(l)){let c;if(n!==void 0)c=this.ensureBoundaryState(e).previousLineNonBlank;else{const u=i.slice(0,-1),d=u.lastIndexOf(` +`);c=u.slice(d+1).trim().length>0}if(c)return null}if(n!==void 0){const c=this.ensureLastSegment(e);if(c&&this.segmentHasFence(e,c)){const u=this.tokenMapsTrusted?this.ensureSegmentSourceOffset(e,c):0;if(this.endsInsideOpenFence(i,u))return null}}else{const c=this.tokenMapsTrusted?this.ensureLastSegment(e)?.srcOffset??0:0;if((this.tokenMapsTrusted||this.cacheHasFenceMarker(e))&&this.endsInsideOpenFence(i,c))return null}return this.mayContainReferenceDefinition(o)?null:o}tryTailSegmentReparse(e,t,n,i,o,s){const r=o??this.ensureLastSegment(t);if(!r)return null;const a=s!==void 0;if(a&&this.ensureSegmentSourceOffset(t,r),r.srcOffset<=0&&r.tokenStart<=0)return null;if(!a){const f=t.src.slice(0,r.srcOffset);if(!e.startsWith(f))return null}const l=a?t.lastSegmentSource??t.src.slice(r.srcOffset):t.src.slice(r.srcOffset),c=a?l+s:e.slice(r.srcOffset);if(c===l)return null;const u=a?s:e.startsWith(t.src)?e.slice(t.src.length):null,d=a&&this.tokenMapsTrusted?e:this.getNormalizedUpdatedSource(t,e,s);if(u){const f=this.tryContainerTailAppendMerge(e,t,n,i,r,u,d);if(f)return t.lastSegmentSource=a?c:void 0,f}if(this.mayContainReferenceDefinition(l)||this.mayContainReferenceDefinition(c))return null;try{const f=this.parseAtLineOffset(c,n,i,r.lineStart,d),h=f.state,m=this.getLastSegment(h.tokens,c,0,h.tokens.length,f.mapsShifted?0:void 0,f.mapsShifted?r.lineStart:void 0);return r.lineStart>0&&!f.mapsShifted&&this.shiftTokenLines(h.tokens,r.lineStart),u?a?this.updateBoundaryStateForAppend(t,u):this.updateFenceMarkerCacheForAppend(t,u):(t.boundary=void 0,t.hasFenceMarker=void 0),t.src=e,t.normalizedSrc=d,t.env=n,t.globalStateReason=null,(!a||!u)&&(t.globalStateCarry=void 0),t.tokens.length=r.tokenStart,this.appendTokens(t.tokens,h.tokens),t.lineCount=r.lineStart+$s(c),m?(t.lastSegment={tokenStart:r.tokenStart+m.tokenStart,tokenEnd:r.tokenStart+m.tokenEnd,lineStart:f.mapsShifted?m.lineStart:r.lineStart+m.lineStart,lineEnd:f.mapsShifted?m.lineEnd:r.lineStart+m.lineEnd,srcOffset:r.srcOffset+m.srcOffset},t.lastSegmentSource=a?c.slice(m.srcOffset):void 0):(t.lastSegment=null,t.lastSegmentSource=void 0),t.lastSegmentVerified=void 0,t.tokens}catch{return null}}tryUntrustedParagraphTailReparse(e,t,n,i){if(t.boundary?t.boundary.endsWithBlankLine:this.endsWithBlankLine(t.src))return null;const o=this.ensureLastSegment(t);if(!o||t.tokens[o.tokenStart]?.type!=="paragraph_open")return null;const s=t.tokens.slice(o.tokenStart,o.tokenEnd).find(l=>l.type==="inline");if(!s?.content)return null;let r=t.src.length;for(;r>0;){const l=t.src.charCodeAt(r-1);if(l!==10&&l!==13)break;r--}const a=t.src.lastIndexOf(s.content,r-s.content.length);return a<0||a+s.content.length!==r?null:this.tryTailSegmentReparse(e,t,n,i,{...o,lineStart:this.countSourceLineBreaks(t.src,a),srcOffset:a})}countSourceLineBreaks(e,t){let n=0;for(let i=0;i=0&&t.lineStart<=t.lineEnd&&t.lineEnd<=o&&t.srcOffsetg.content).filter(Boolean);let m=0;for(const g of h){if(m=c.indexOf(g,m),m<0)return!1;m+=g.length}return!0}catch{return!1}}normalizeSource(e){return e.replace(/\r\n?/g,` +`).replace(/\0/g,"�")}cacheHasFenceMarker(e){return e.hasFenceMarker===void 0&&(e.hasFenceMarker=e.src.includes("```")||e.src.includes("~~~")),e.hasFenceMarker}updateFenceMarkerCacheForAppend(e,t){if(this.cacheHasFenceMarker(e))return;const n=e.src.slice(-2)+t;e.hasFenceMarker=n.includes("```")||n.includes("~~~")}getNormalizedUpdatedSource(e,t,n){if(!this.normalizeLineEndings)return t;if(n===void 0&&!t.startsWith(e.src))return this.normalizeSource(t);const i=e.normalizedSrc??this.normalizeSource(e.src),o=n??t.slice(e.src.length);let s=this.normalizeSource(o);return e.src.endsWith("\r")&&o.startsWith(` +`)&&(s=s.slice(1)),i+s}parseAtLineOffset(e,t,n,i,o){if(this.tokenMapsTrusted||i<=0)return{state:this.core.parse(e,t,n),mapsShifted:!1};const s=this.core.createState(e,t,n);let r=!1;return this.core.process(s,(a,l)=>{!r&&a.fn===VM&&(this.shiftTokenLines(l.tokens,i),o!==void 0&&(l.src=o),r=!0)}),{state:s,mapsShifted:r}}getTailLines(e,t){if(t<=0)return"";let n=t;for(let i=e.length-1;i>=0;i--)if(e.charCodeAt(i)===10&&(n--,n===0))return e.slice(i+1);return e}endsInsideOpenFence(e,t){const n=e.slice(t),i=n.length;let o=null,s=0;for(;s=0&&(r===-1||c=4)break}else if(c===9){l=4;break}else break}if(l<4&&a=3)if(o){if(o.marker===c&&d>=o.length){let f=u;for(;f=0&&fH5?n.slice(n.length-H5):n,i&&(e.globalStateReason=i),i}ensureLastSegment(e,t=!1){return e.lastSegment!==void 0||(e.lastSegment=this.getLastSegment(e.tokens,e.src,0,e.tokens.length,void 0,void 0,t)),e.lastSegment}getLastSegment(e,t,n=0,i=e.length,o,s,r=!1){if(i<=n)return null;let a=Number.POSITIVE_INFINITY,l=-1,c=0;for(let u=i-1;u>=n;u--){const d=e[u];if(d.map&&(d.map[0]l&&(l=d.map[1])),d.nesting<0){c+=-d.nesting;continue}if(d.nesting>0){if(c-=d.nesting,d.level===0&&c<=0){const f=Number.isFinite(a)?a:d.map?.[0]??0,h=l>=f?l:d.map?.[1]??f;return{tokenStart:u,tokenEnd:i,lineStart:f,lineEnd:h,srcOffset:r?-1:this.getLineStartOffset(t,f,o,s)}}continue}if(d.level===0&&c===0){const f=Number.isFinite(a)?a:d.map?.[0]??0,h=l>=f?l:d.map?.[1]??f;return{tokenStart:u,tokenEnd:i,lineStart:f,lineEnd:h,srcOffset:r?-1:this.getLineStartOffset(t,f,o,s)}}}return null}segmentHasFence(e,t){const n=Math.min(t.tokenEnd,e.tokens.length);for(let i=t.tokenStart;i0;){if(o=e.lastIndexOf(` +`,o-1),o<0)return 0;i--}return o+1}getLineStartOffset(e,t,n,i){return n!==void 0&&i!==void 0&&t>=i?this.getLineStartOffsetFrom(e,n,t-i):this.getLineStartOffsetFrom(e,0,t)}getLineStartOffsetFrom(e,t,n){if(n<=0)return t;let i=n,o=t;for(;o0&&!h&&this.shiftTokenLines(m,d);const g=this.getListParagraphMode(t.tokens,o.tokenStart,t.tokens.length,r.level),y=this.getListParagraphMode(f,0,f.length,0);(g==="loose"||y==="loose"||(t.boundary?t.boundary.endsWithBlankLine:this.endsWithBlankLine(t.src))||(f[0]?.map?.[0]??0)-(h?d:0)>0)&&(this.setListParagraphVisibility(t.tokens,o.tokenStart,t.tokens.length,r.level,!1),this.setListParagraphVisibility(m,0,m.length,r.level,!1)),t.tokens.splice(t.tokens.length-1,0,...m),t.boundary?this.updateBoundaryStateForAppend(t,s):this.updateFenceMarkerCacheForAppend(t,s),t.src=e,t.normalizedSrc=a,t.env=n,t.globalStateReason=null;const v=d+$s(s);t.lineCount=v;const k=this.getCachedDocLineCount(t,v);return r.map&&(r.map[1]=k),t.lastSegment={tokenStart:o.tokenStart,tokenEnd:t.tokens.length,lineStart:o.lineStart,lineEnd:k,srcOffset:o.srcOffset},t.lastSegmentVerified=!0,t.tokens}tryTableTailAppendMerge(e,t,n,i,o,s,r,a){if(t.src.length===0||!(t.boundary?t.boundary.endsWithNewline:t.src.charCodeAt(t.src.length-1)===10)||/(?:^|\n)[ \t]*\n/.test(s))return null;this.ensureSegmentSourceOffset(t,o);const l=o.lineEnd-o.lineStart,c=t.src.length-o.srcOffset;if(l=0?h.slice(g.tbodyOpenIndex+1,g.tbodyCloseIndex):h.slice(g.tbodyOpenIndex,g.tbodyCloseIndex+1);if(v.length===0)return null;f!==0&&!m&&this.shiftTokenLines(v,f);const k=y.tbodyCloseIndex>=0?y.tbodyCloseIndex:y.tableCloseIndex,w=t.lineCount??$s(t.src);t.tokens.splice(k,0,...v),t.boundary?this.updateBoundaryStateForAppend(t,s):this.updateFenceMarkerCacheForAppend(t,s),t.src=e,t.normalizedSrc=a,t.env=n,t.globalStateReason=null;const C=w+$s(s);t.lineCount=C;const x=this.getCachedDocLineCount(t,C);if(r.map&&(r.map[1]=x),y.tbodyOpenIndex>=0){const S=t.tokens[y.tbodyOpenIndex];S?.map&&(S.map[1]=x)}return t.lastSegment={tokenStart:o.tokenStart,tokenEnd:t.tokens.length,lineStart:o.lineStart,lineEnd:x,srcOffset:o.srcOffset},t.lastSegmentVerified=!0,t.tokens}getTableHeaderContext(e){const t=e.indexOf(` +`);if(t<0)return null;const n=e.indexOf(` +`,t+1);return n<0?null:e.slice(0,n+1)}getTableBodySection(e,t,n,i){if(t<0||t>=n||e[t]?.type!=="table_open")return null;let o=-1;for(let a=n-1;a>t;a--){const l=e[a];if(l.type==="table_close"&&l.level===i){o=a;break}}if(o<0)return null;let s=-1,r=-1;for(let a=t+1;a=0){for(let a=o-1;a>s;a--){const l=e[a];if(l.type==="tbody_close"&&l.level===i+1){r=a;break}}if(r<0)return null}return{tableCloseIndex:o,tbodyOpenIndex:s,tbodyCloseIndex:r}}isSingleTopLevelContainer(e,t,n,i){if(e.length<2)return!1;const o=e[0],s=e[e.length-1];if(o.type!==t||s.type!==n||o.level!==0||s.level!==0||i!==void 0&&o.markup!==i)return!1;let r=0;for(let a=0;a0&&a0||l.nesting<0)&&(r+=l.nesting)}return r===0}getListParagraphMode(e,t,n,i){let o=!1,s=!1;const r=i+2;for(let a=t;a=0;){const i=e.charCodeAt(n);if(i===32||i===9){n--;continue}return i===10}return!0}ensureBoundaryState(e){if(e.boundary)return e.boundary;const t=e.src,n=t.length,i=n>0&&t.charCodeAt(n-1)===10,o=i?n-1:n;let s=o-1;for(;s>=0&&t.charCodeAt(s)!==10;)s--;let r=!1;for(let a=s+1;a0?t.charCodeAt(t.length-1)===10:n.endsWithNewline,n.endsWithBlankLine=e.src.length+t.length>=2&&n.endsWithNewline&&!o}getDocLineCount(e,t=$s(e)){return e.length===0?0:e.charCodeAt(e.length-1)===10?t:t+1}getCachedDocLineCount(e,t){return e.src.length===0?0:e.boundary?e.boundary.endsWithNewline?t:t+1:this.getDocLineCount(e.src,t)}shiftTokenLines(e,t){if(t===0)return;let n=null;for(let i=0;i=0;s--)n.push(o.children[s]);for(;n.length>0;){const s=n.pop();if(s.map&&(s.map[0]+=t,s.map[1]+=t),s.children)for(let r=s.children.length-1;r>=0;r--)n.push(s.children[r])}}}}};const mq={default:_We,zero:IWe,commonmark:SWe};function jWe(e){return{core:e.core.ruler.version,block:e.block.ruler.version,inline:e.inline.ruler.version,inline2:e.inline.ruler2.version,inlineState:e.inline.State}}function WWe(e,t){return e.core.ruler.version!==t.core||e.block.ruler.version!==t.block||e.inline.ruler.version!==t.inline||e.inline.ruler2.version!==t.inline2||e.inline.State!==t.inlineState}function gq(e){return e.experimental?{...e,...e.experimental}:e}function Jc(e,t){if(!e)return!1;if(Object.prototype.hasOwnProperty.call(e,t)&&e[t]!==void 0)return!0;const n=e.experimental;return!!n&&Object.prototype.hasOwnProperty.call(n,t)&&n[t]!==void 0}function vq(e,t,n){for(let i=0;i=4?n.quotes=[_[0],_[1],_[2],_[3]]:n.quotes=["“","”","‘","’"]}let r=vq(s?.options,o,["fullChunkSizeChars","fullChunkSizeLines","fullChunkMaxChunks"]),a=vq(s?.options,o,["streamChunkSizeChars","streamChunkSizeLines","streamChunkMaxChunks"]),l=yq(s?.options,o,"fullChunkedFallback"),c=yq(s?.options,o,"streamChunkedFallback"),u=!1,d=null,f=null;const h=new Eje;let m=null;const g=()=>(m||(m=new PWe(n)),m);let y=null;const v=()=>(y||(y=new HWe(h)),y);let k=null;const w=()=>(k||(k=new Eoe({fuzzyLink:!0})),k),C=_=>!u&&!!d&&!WWe(_,d),x=(_,T)=>i==="default"&&!u&&m===null&&f!==null&&_.parse===f&&C(_)&&!_.stream.enabled&&T<(_.options.autoUnboundedThresholdChars??4e6)&&_.options.html===!1&&_.options.xhtmlOut===!1&&_.options.breaks===!1&&_.options.langPrefix==="language-"&&_.options.linkify===!1&&_.options.typographer===!1&&_.options.highlight===null,S=(_,T)=>i==="default"&&!u&&C(_)&&!_.stream.enabled&&!_.options.fullChunkedFallback&&T<(_.options.autoUnboundedThresholdChars??4e6)&&_.options.html===!1&&_.options.linkify===!1&&_.options.typographer===!1,M={core:h,block:h.block,inline:h.inline,get linkify(){const _=w();return Object.defineProperty(this,"linkify",{value:_,writable:!0,configurable:!0}),_},get renderer(){const _=g();return Object.defineProperty(this,"renderer",{value:_,writable:!0,configurable:!0}),_},options:n,__explicitFullChunkConfig:r,__explicitStreamChunkConfig:a,__explicitFullChunkFallbackSetting:l,__explicitStreamChunkFallbackSetting:c,__canUseImplicitLargeInputStrategy(){return C(this)},set(_){const T=gq(_);return this.options={...this.options,...T},(Jc(_,"fullChunkSizeChars")||Jc(_,"fullChunkSizeLines")||Jc(_,"fullChunkMaxChunks"))&&(r=!0,this.__explicitFullChunkConfig=!0),(Jc(_,"streamChunkSizeChars")||Jc(_,"streamChunkSizeLines")||Jc(_,"streamChunkMaxChunks"))&&(a=!0,this.__explicitStreamChunkConfig=!0),Jc(_,"fullChunkedFallback")&&(l=!0,this.__explicitFullChunkFallbackSetting=!0),Jc(_,"streamChunkedFallback")&&(c=!0,this.__explicitStreamChunkFallbackSetting=!0),m&&m.set(T),typeof T.stream=="boolean"&&(this.stream.enabled=T.stream,y&&(y.reset(),y.resetStats())),this},configure(_){const T=typeof _=="string"?mq[_]:_;if(!T)throw new Error("Wrong `markdown-it` preset, can't be empty");if(T.options&&this.set(T.options),T.components){const E=T.components;E.core?.rules&&this.core.ruler.enableOnly(E.core.rules),E.block?.rules&&this.block.ruler.enableOnly(E.block.rules),E.inline?.rules&&this.inline.ruler.enableOnly(E.inline.rules),E.inline2?.rules&&this.inline.ruler2.enableOnly(E.inline2.rules)}return this},enable(_,T){const E=Array.isArray(_)?_:[_],L=[this.core?.ruler,this.block?.ruler,this.inline?.ruler,this.inline?.ruler2],P=new Set;for(const N of L){if(!N)continue;const U=N.enable(E,!0);for(let F=0;F!P.has(U));if(N.length)throw new Error(`Rules manager: invalid rule name ${N.join(", ")}`)}return this},disable(_,T){const E=Array.isArray(_)?_:[_],L=[this.core?.ruler,this.block?.ruler,this.inline?.ruler,this.inline?.ruler2],P=new Set;for(const N of L){if(!N)continue;const U=N.disable(E,!0);for(let F=0;F!P.has(U));if(N.length)throw new Error(`Rules manager: invalid rule name ${N.join(", ")}`)}return this},use(_,...T){const E=typeof _=="function"?_:_&&typeof _.default=="function"?_.default:void 0;if(!E)throw new TypeError("MarkdownIt.use: plugin must be a function");const L=[this,...T],P=_;return u=!0,E.apply(P,L),this},render(_,T){let E;if(x(this,_.length)){T!==void 0&&(sl(T),E=AS("render"));const N=E?dg():0,U=E?sq(_,E):oq(_);if(E&&(E.attemptMs=dg()-N,U===null&&(E.fallbackReason="unsupported-stock-subset"),hy(T,E)),U!==null)return T!==void 0&&Ir(T,{area:"render",path:"stock-fast",reason:"stock-subset"}),U}const L=T??{},P=this.parse(_,L);return E&&hy(L,E),g().render(P,this.options,L)},async renderAsync(_,T){let E;if(x(this,_.length)){T!==void 0&&(sl(T),E=AS("render"));const N=E?dg():0,U=E?sq(_,E):oq(_);if(E&&(E.attemptMs=dg()-N,U===null&&(E.fallbackReason="unsupported-stock-subset"),hy(T,E)),U!==null)return T!==void 0&&Ir(T,{area:"render",path:"stock-fast",reason:"stock-subset"}),U}const L=T??{},P=this.parse(_,L);return E&&hy(L,E),g().renderAsync(P,this.options,L)},renderIterable(_,T={}){const E=this.parseIterable(_,T);return g().render(E,this.options,T)},async renderAsyncIterable(_,T={}){const E=await this.parseAsyncIterable(_,T);return g().renderAsync(E,this.options,T)},renderInline(_,T={}){const E=this.parseInline(_,T);return g().render(E,this.options,T)},validateLink:fse,normalizeLink:hse,normalizeLinkText:pse,utils:cze,helpers:{...Yze},parse(_,T){if(typeof _!="string")throw new TypeError("Input data should be a String");if(T!==void 0&&sl(T),S(this,_.length)){const N=T===void 0?void 0:AS("parse"),U=N?dg():0,F=jje(_,N);if(N&&(N.attemptMs=dg()-U,F===null&&(N.fallbackReason="unsupported-stock-subset"),hy(T,N)),F!==null)return T!==void 0&&Ir(T,{area:"parse",path:"stock-fast",reason:"stock-subset"}),F}const E=T??{};let L;if(!this.stream.enabled&&!this.options.fullChunkedFallback&&C(this)){const N=Tse(this,_.length);if(N==="yes"){const U=F4(this,_,E);return Ir(T,{area:"parse",path:"auto-unbounded",unbounded:!0,reason:"char-threshold"}),U}N==="need-lines"&&(L=$s(_))}if(!this.stream.enabled){const N=_.length,U=this.options.autoTuneChunks!==!1,F=r,B=!l&&C(this),W=!!this.options.fullChunkedFallback,D=B&&N>=2e5;let z;(W||D||L!==void 0)&&(z=L??$s(_));const $=(W||D)&&U&&!F?xWe(N,z,this.options):null;if(W||D){const j=z??0;if(W?N>=(this.options.fullChunkThresholdChars??2e4)||j>=(this.options.fullChunkThresholdLines??400):D){if($&&$.strategy!=="plain"){const G=vw(this,_,E,{maxChunkChars:$.maxChunkChars,maxChunkLines:$.maxChunkLines,fenceAware:$.fenceAware,maxChunks:$.maxChunks});return T&&bq(T,W?"explicit-full-chunk":"default-large-string"),G}if(W){const G=(fe,se,Q)=>feQ?Q:fe,K=this.options.fullChunkAdaptive!==!1,te=this.options.fullChunkTargetChunks??8,J=G(Math.ceil(N/te),8e3,64e3),q=G(Math.ceil(j/te),150,700),Y=K?J:this.options.fullChunkSizeChars??1e4,ae=K?q:this.options.fullChunkSizeLines??200,pe=K?G(Math.ceil(N/64e3),te,32):this.options.fullChunkMaxChunks,Me=vw(this,_,E,{maxChunkChars:Y,maxChunkLines:ae,fenceAware:this.options.fullChunkFenceAware??!0,maxChunks:pe});return T&&bq(T,"explicit-full-chunk"),Me}}}if(L!==void 0&&C(this)&&Ise(this,N,z??L)){const j=F4(this,_,E);return Ir(T,{area:"parse",path:"auto-unbounded",unbounded:!0,reason:"line-threshold"}),j}}const P=E1(_);return Ir(T,{area:"parse",path:"plain",reason:"default-plain"}),f2(E,P,()=>h.parse(_,E,this).tokens)},parseIterable(_,T={}){return sl(T),kWe(this,_,T)},parseAsyncIterable(_,T={}){return sl(T),wWe(this,_,T)},parseIterableToSink(_,T,E={}){return sl(E),CWe(this,_,T,E)},parseAsyncIterableToSink(_,T,E={}){return sl(E),AWe(this,_,T,E)},parseInline(_,T={}){if(typeof _!="string")throw new TypeError("Input data should be a String");sl(T),nb(T)&&vh(T);const E=h.createState(_,T,this);return E.inlineMode=!0,h.process(E),E.tokens}};if(M.stream={enabled:!!n.stream,parse(_,T){return M.stream.enabled?v().parse(_,T,M):M.parse(_,T??{})},append(_,T){if(!M.stream.enabled)throw new Error("Stream append requires stream mode");return v().append(_,T,M)},snapshot(){return y?y.snapshot():null},restore(_){if(!M.stream.enabled)throw new Error("Stream restore requires stream mode");return v().restore(_,M)},reset(){v().reset()},hasCache(){return y?.hasCache()??!1},peek(){return y?y.peek():[]},stats(){return y?y.getStats():{total:0,cacheHits:0,appendHits:0,unboundedAppendHits:0,tailHits:0,fullParses:0,resets:0,chunkedParses:0,lastMode:"idle"}},resetStats(){y&&y.resetStats()}},s?.components){const _=s.components;_.core?.rules&&M.core.ruler.enableOnly(_.core.rules),_.block?.rules&&M.block.ruler.enableOnly(_.block.rules),_.inline?.rules&&M.inline.ruler.enableOnly(_.inline.rules),_.inline2?.rules&&M.inline.ruler2.enableOnly(_.inline2.rules)}return d=jWe(M),f=M.parse,M}var VWe=qWe;const Pse=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"],UWe=["a","abbr","b","bdi","bdo","button","cite","code","data","del","dfn","em","font","i","ins","kbd","label","mark","q","s","samp","small","span","strong","sub","sup","time","u","var"],$se=["article","aside","blockquote","details","div","figcaption","figure","footer","header","h1","h2","h3","h4","h5","h6","li","main","nav","ol","p","pre","section","summary","table","tbody","td","th","thead","tr","ul"],KWe=["svg","g","path"],ZWe=["address","audio","body","canvas","caption","colgroup","datalist","dd","dialog","dl","dt","fieldset","form","head","hgroup","html","iframe","legend","map","menu","meter","noscript","object","optgroup","option","output","picture","progress","rp","rt","ruby","script","select","style","template","textarea","tfoot","title","video"],GWe=["onclick","onerror","onload","onmouseover","onmouseout","onmousedown","onmouseup","onkeydown","onkeyup","onfocus","onblur","onsubmit","onreset","onchange","onselect","ondblclick","ontouchstart","ontouchend","ontouchmove","ontouchcancel","onwheel","onscroll","oncopy","oncut","onpaste","oninput","oninvalid","onsearch","innerhtml","outerhtml","textcontent","innertext","srcdoc","ping"],QWe=["action","data","href","src","srcset","poster","xlink:href","formaction"],YWe=["script"],JWe=["pre","iframe","picture","script","style","table","tbody","td","tfoot","th","thead","textarea","tr","title","video"],sp=new Set(Pse),Ose=new Set($se),t3=new Set([...Pse,...UWe,...$se,...KWe]),Fse=new Set([...t3,...ZWe]),XWe=new Set(GWe),eqe=new Set(QWe),sb=new Set(YWe),Dse=new Set(JWe);function Nse(e){let t="";for(const n of e){const i=n.charCodeAt(0);i<=31||i>=127&&i<=159||/\s/u.test(n)||(t+=n)}return t}const tqe={amp:"&",bsol:"\\",colon:":",newline:` +`,sol:"/",tab:" "};function Bse(e){return e.replace(/&(?:#(\d+)|#x([0-9a-f]+)|([a-z][a-z0-9]+));?/gi,(t,n,i,o)=>{const s=n??i;if(s){const r=Number.parseInt(s,n?10:16);try{return Number.isFinite(r)?String.fromCodePoint(r):""}catch{return""}}return tqe[String(o??"").toLowerCase()]??t})}const j5=new Set(["http","https","mailto","tel"]),nqe=new Set(["javascript","vbscript","data","file","ftp","blob","filesystem","intent","chrome","chrome-extension","moz-extension","ms-browser-extension","view-source"]),Yp=new Set(["http","https"]);function zse(e){return e.match(/^([a-z][a-z0-9+.-]*):/i)?.[1]?.toLowerCase()??""}const iqe=/^https?:\/\//i;function oqe(e){if(!iqe.test(e))return!1;for(const t of e){const n=t.charCodeAt(0);if(t==="&"||n<=32||n>=127&&n<=159||n>127&&/\s/u.test(t))return!1}return!0}function sqe(e,t,n){if(!B4(t,n)||!e.startsWith("file:///"))return!1;const i=e.charAt(8);return i!=="/"&&i!=="\\"}function B4(e,t){return e?(e==="a"||e==="area")&&(!t||t==="href"||t==="xlink:href"):!t||t==="href"}function rqe(e,t){return t==="href"||t==="xlink:href"?B4(e,t)?j5:Yp:t==="src"||t==="srcset"||t==="poster"||t==="action"||t==="formaction"||t==="data"?Yp:(B4(e,t),j5)}function Q0(e,t={}){if(oqe(e))return!1;const n=Nse(Bse(e)).toLowerCase(),i=String(t.tagName??"").toLowerCase(),o=String(t.attrName??"").toLowerCase();if(!n)return!1;if(n.startsWith("data:")){const r=/^data:image\/(?:png|gif|jpe?g|webp|avif|bmp);/i.test(n);return i==="img"&&o==="src"?!r:!0}if(/^[\\/]{2}/.test(n))return!0;if(n.startsWith("/")||n.startsWith("./")||n.startsWith("../")||n.startsWith("#")||n.startsWith("?"))return!1;const s=zse(n);return s?s==="file"?!sqe(n,i,o):B4(i,o)?nqe.has(s):!rqe(i,o).has(s):!1}function aqe(e){const t=Bse(String(e??"")).trim();if(!t||t.startsWith("#")||t.startsWith("/")||t.startsWith("./")||t.startsWith("../")||t.startsWith("?"))return!1;const n=zse(Nse(t).toLowerCase());return n==="http"||n==="https"}function lqe(e,t={}){const n=String(e??"").trim();return n?Q0(n,t)?"":n:""}function kq(e){return lqe(e,{tagName:"img",attrName:"src"})}function cqe(e,t,n){function i(f){return f.trim().split(" ",2)[0]===t}function o(f,h,m,g,y){return f[h].nesting===1&&f[h].attrJoin("class",t),y.renderToken(f,h,m,g,y)}n=n||{};const s=3,r=n.marker||":",a=r.charCodeAt(0),l=r.length,c=n.validate||i,u=n.render||o;function d(f,h,m,g){let y,v=!1,k=f.bMarks[h]+f.tShift[h],w=f.eMarks[h];if(a!==f.src.charCodeAt(k))return!1;for(y=k+1;y<=w&&r[(y-k)%l]===f.src[y];y++);const C=Math.floor((y-k)/l);if(C=m||(k=f.bMarks[M]+f.tShift[M],w=f.eMarks[M],k=4)){for(y=k+1;y<=w&&r[(y-k)%l]===f.src[y];y++);if(!(Math.floor((y-k)/l)=2){const r=Number(s[0]),a=Number(s[1]);Number.isFinite(r)&&Number.isFinite(a)&&(o.map=[r+t,Math.min(a+t,n)])}Array.isArray(o.children)&&Hse(o.children,t,n)}}function dqe(e){["admonition","info","warning","error","tip","danger","note","caution"].forEach(t=>{e.use(cqe,t,{render(n,i){return n[i].nesting===1?`
        `:`
        +`}})}),e.block.ruler.before("fence","vmr_container_fallback",(t,n,i,o)=>{const s=t,r=s.bMarks[n]+s.tShift[n],a=s.eMarks[n],l=s.src.slice(r,a),c=l.match(/^:::\s*([^\s{]+)/);if(!c)return!1;const u=c[1];if(!u.trim())return!1;const d=l.slice(c[0].length).trim();let f,h;const m=d.indexOf("{"),g=m>=0?d.slice(m).trimStart():void 0;if(m===-1)f=d||void 0;else{if(f=d.slice(0,m).trim()||void 0,g?.startsWith("{")){let S=0,M=-1;for(let _=0;_0&&(h=g.slice(0,M))}h||(f=d||void 0)}if(o)return!0;const y=!!s.env.__markstreamFinal;let v=n+1,k=!1;for(;v<=i;){const S=s.bMarks[v]+s.tShift[v],M=s.eMarks[v];if(s.src.slice(S,M).trim()===":::"){k=!0;break}v++}k||(v=i);const w=s.push("vmr_container_open","div",1);if(w.attrSet("class",`vmr-container vmr-container-${u}`),w.map=[n,k?v:i],w.meta={...w.meta??{},unclosed:!k&&!y},f&&w.attrSet("data-args",f),h)try{const S=JSON.parse(h);for(const[M,_]of Object.entries(S)){const T=_!=null&&typeof _=="object";w.attrSet(`data-${M}`,T?JSON.stringify(_):String(_))}}catch{const S=uqe(h);if(S)for(const[M,_]of Object.entries(S)){const T=_!=null&&typeof _=="object";w.attrSet(`data-${M}`,T?JSON.stringify(_):String(_))}else w.attrSet("data-attrs",h)}const C=[];for(let S=n+1;SS.trim().length>0)){let S=C.join(` +`);S.endsWith(` +`)||(S+=` +`),S.endsWith(` + +`)||(S+=` +`);const M=s.tokens[s.tokens.length-1];M&&(M.raw=S);const _=[];s.md.block.parse(S,s.md,s.env,_),Hse(_,n+1,n+1+C.length),s.tokens.push(..._)}const x=s.push("vmr_container_close","div",-1);return k||(x.hidden=!0,x.map=[i,i]),s.line=k?v+1:v,!0},{alt:["paragraph","reference","blockquote","list"]})}function df(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function or(e,t=0){let n=!1,i=!1;for(let o=t;o")return o}return-1}function RC(e){const t=[],n=/\s([\w:-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>]+)))?/g;let i;for(;(i=n.exec(e))!==null;){const o=i[1];if(!o)continue;const s=i[2]||i[3]||i[4]||"";t.push([o,s])}return t}const fqe=/^[a-z][a-z0-9_-]*$/;function wq(e){return fqe.test(String(e??"").trim().toLowerCase())}function Iu(e){const t=String(e??"").trim();if(!t)return"";if(!t.startsWith("<"))return wq(t)?t.toLowerCase():"";let n=1;for(;n]/.test(s)?"":wq(o)?o:""}function Tm(e){if(!e||e.length===0)return[];const t=new Set,n=[];for(const i of e){const o=Iu(i);!o||t.has(o)||(t.add(o),n.push(o))}return n}function hqe(...e){const t=new Set,n=[];for(const i of e)for(const o of Tm(i))t.has(o)||(t.add(o),n.push(o));return n}function pqe(e){const t=Tm(e);return{key:t.join(","),tags:t}}function jse(e){return Iu(e)}function mqe(e,t){const n=String(e??""),i=Iu(t);if(!i)return!1;const o=df(i),s=n.match(new RegExp(String.raw`^\s*<\s*${o}(?:\s[^>]*)?(\s*\/)?>`,"i"));return s?s[1]?!0:new RegExp(String.raw`<\s*\/\s*${o}\s*>`,"i").test(n):!1}function Wse(e,t){const n=Iu(t);return!!n&&!t3.has(n)&&!mqe(e,n)}function gqe(e,t){const n=String(e??""),i=Iu(t);if(!i)return n;const o=df(i),s=new RegExp(String.raw`^\s*<\s*${o}(?:\s[^>]*)?>\s*`,"i"),r=new RegExp(String.raw`\s*<\s*\/\s*${o}\s*>\s*$`,"i");return n.replace(s,"").replace(r,"")}const qse=sp,vqe=t3,Vse=new Set(Ose);Vse.delete("details");const yqe=/<([A-Z][\w-]*)(?=[\s/>]|$)/gi,bqe=/<\/\s*([A-Z][\w-]*)(?=[\s/>]|$)/gi,YM=/^<\s*(?:\/\s*)?([A-Z][\w-]*)/i,kqe=/^<\s*([A-Z][\w:-]*)(?=[\s/>]|$)/i;function bw(e){return(e.match(YM)?.[1]??"").toLowerCase()}function v$(e){return/^\s*<\s*\//.test(e)}function y$(e,t){return qse.has(t)||/\/\s*>\s*$/.test(e)}function wqe(e,t){let n=0;for(let i=0;i0&&n--;continue}y$(o,s)||n++}}return n}function Cq(e,t,n=0){const i=new RegExp(String.raw`<\s*(\/?)\s*${df(t)}(?=[\s>/])[^>]*>`,"gi");i.lastIndex=Math.max(0,n);let o=0,s;for(;(s=i.exec(e))!==null;){const r=s[0]??"",a=!!s[1],l=!a&&/\/\s*>$/.test(r);if(a){if(o===0)return{start:s.index,end:s.index+r.length};o--;continue}l||o++}return null}function Aqe(e,t){const n=new RegExp(String.raw`<\s*(\/?)\s*${df(t)}(?=[\s>/])[^>]*>`,"gi");let i=0,o;for(;(o=n.exec(e))!==null;){const s=o[0]??"",r=!!o[1],a=!r&&/\/\s*>$/.test(s);if(r){i>0&&i--;continue}a||i++}return i}function kw(e){const t=e;return String(t.raw??t.content??t.markup??"")}function xqe(e){const t=e;return t.meta||(t.meta={}),t.meta}function OS(e,t,n){const i=xqe(e);i.markstreamCustomHtmlRaw=t,i.markstreamCustomHtmlInner=n}function Sqe(e,t){if(!t.size)return;const n=Array.from(t,h=>new RegExp(String.raw`<\s*${df(h)}(?=[\s>/])`,"i")),i=[];let o=!1;const s=h=>h?n.some(m=>m.test(h)):!1,r=h=>{if(!(!h||!i.length))for(const m of i)m.raw+=h,m.inner+=h},a=()=>{!i.length||!o||(r(` +`),o=!1)},l=h=>{r(h)},c=h=>{for(let g=0;g{const m=i[i.length-1]?.tag;if(!m)return null;const g=new RegExp(String.raw`^\s*<\s*\/\s*${df(m)}\s*>`,"i");return h.match(g)?.[0]??null},d=h=>!!u(h),f=(h,m,g)=>{const y=g??(h.type==="html_inline"?bw(m):"");if(!(y&&t.has(y))){r(m);return}const v=v$(m),k=!v&&y$(m,y);if(v){if(!i.length||i[i.length-1].tag!==y){r(m);return}c(m);return}if(r(m),k){OS(h,m,"");return}i.push({tag:y,token:h,raw:m,inner:""})};for(const h of e){if(h.type==="inline"&&Array.isArray(h.children)){const m=String(h.content??"");if(d(m)?o=!1:a(),!i.length&&!s(m)){o=!1;continue}let g=0,y=!0;for(const v of h.children){const k=kw(v),w=v.type==="html_inline"?bw(k):"",C=w&&t.has(w);let x=k;if(y&&m&&k&&(i.length||C)){const S=m.indexOf(k,g);if(S!==-1)l(m.slice(g,S)),x=m.slice(S,S+k.length),g=S+k.length;else{if(i.length&&!C)continue;y=!1}}f(v,x,w)}y&&m&&g0;continue}if(i.length&&typeof h.content=="string"){const m=kw(h),g=h.type==="html_block"?u(m):null;if(g){c(`${o?` +`:""}${g}`),o=i.length>0;continue}if(!h.content)continue;a(),r(h.content),o=!0}}for(const h of i)OS(h.token,h.raw,h.inner)}function _qe(e){return/^\s*<\s*[!?]/.test(e)}function Iqe(e){const t=new Set(vqe);if(e&&Array.isArray(e))for(const n of e){const i=String(n??"").trim();if(!i)continue;const o=i.match(/^[<\s/]*([A-Z][\w-]*)/i);o&&t.add(o[1].toLowerCase())}return t}function Aq(e,t){if(t.has(e))return!0;for(const n of t)if(n.startsWith(e))return!0;return!1}function Tqe(e,t){let n=null;for(const s of e.matchAll(yqe)){const r=s.index??-1;if(r<0)continue;const a=(s[1]??"").toLowerCase();Aq(a,t)&&or(e.slice(r))===-1&&(!n||r")&&(!n||s")&&(!n||s{const h=f,m=new Set(n),g=Array.isArray(h.env?.__markstreamCustomHtmlTags)?h.env.__markstreamCustomHtmlTags:[];for(const w of g){const C=Iu(String(w??""));C&&m.add(C)}const y=Iqe(Array.from(m)),v=new Set(Lqe);for(const w of m)v.add(w);return{autoCloseInlineTagSet:v,commonHtmlTags:y,customTagSet:m,shouldMergeHtmlBlockTag:w=>m.has(w)||!y.has(w)||Vse.has(w)}},o=f=>{if(f.type==="html_block")return String(f.content??"");if(f.type!=="inline"||!Array.isArray(f.children)||f.children.length!==1)return"";const h=f.children[0];return h?.type!=="html_block"?"":String(f.content??h.content??"")},s=(f,h)=>{f.type="html_block",f.content=h,f.raw=h,f.children=[]},r=f=>f.replace(/^(?:\r?\n)+/,""),a=f=>/^(?: {4}|\t)/.test(f),l=f=>f.replace(/^(?: {4}|\t)/gm,""),c=(f,h)=>{const m=r(f);if(!/\S/.test(m))return[];if(a(m))return[{type:"code_block",content:l(m),raw:m}];const g=m.replace(/^[\t ]+/,"");if(!g)return[];if(g.startsWith("<"))return[{type:"html_block",content:g}];const y={type:"inline",tag:"",nesting:0,content:g,children:[{type:"text",content:g,raw:g}]};return h==="paragraph"?[{type:"paragraph_open",tag:"p",nesting:1},y,{type:"paragraph_close",tag:"p",nesting:-1}]:h==="text"?[{type:"text",content:g,raw:g}]:[y]},u=(f,h,m)=>f[h-1]?.type==="paragraph_open"&&f[h+1]?.type==="paragraph_close"?"inline":m,d=(f,h)=>{const m=r(h);return!/\S/.test(m)||f.type!=="inline"||!Array.isArray(f.children)?!1:(f.content=`${String(f.content??"")}${m}`,f.children.push({type:"text",content:m,raw:m}),!0)};e.core.ruler.after("inline","fix_html_inline_streaming",f=>{const h=f.tokens??[],{commonHtmlTags:m,customTagSet:g}=i(f);for(const y of h){const v=y;if(v.type!=="inline"||!Array.isArray(v.children))continue;const k=String(v.content??""),w=v.children.length?v.children:k.includes("<")?[{type:"text",content:k,raw:k}]:null;if(w)try{const C=Eqe(w,m);if(v.children=C.children,C.pendingBuffer){const x=k.lastIndexOf(C.pendingBuffer);if(x!==-1){const S=k.slice(0,x);v.content=S,typeof v.raw=="string"&&(v.raw=S)}}}catch(C){console.error("[applyFixHtmlInlineTokens] failed to fix streaming html inline",C)}}Sqe(h,g)}),e.core.ruler.push("fix_html_inline_tokens",f=>{const h=f.tokens??[],{autoCloseInlineTagSet:m,customTagSet:g,shouldMergeHtmlBlockTag:y}=i(f),v=[];for(let k=0;k0){const[x,S]=v[v.length-1];if(k!==S){if(w.type==="paragraph_open"||w.type==="paragraph_close"){h.splice(k,1),k--;continue}const M=String(w.content??w.raw??"");if(M){const _=h[S],T=`${String(_.content||"")} +${M}`,E=or(T),L=E===-1?null:Cq(T,x,E+1);if(L){const P=T.slice(0,L.end),N=T.slice(L.end);_.content=P,_.loading=!1,h.splice(k,1),v.pop();const U=d(_,N)?[]:c(N,u(h,k,"paragraph"));U.length&&h.splice(k,0,...U),k--;continue}_.content=T,_.loading!==!1&&(_.loading=!0)}h.splice(k,1),k--;continue}}const C=o(w);if(C){if(_qe(C))continue;const x=(C.match(/<\s*(?:\/\s*)?([^\s>/]+)/)?.[1]??"").toLowerCase(),S=/^\s*<\s*\//.test(C);if(!x||!y(x))continue;if(s(w,C),!S)x&&!new RegExp(`^\\s*<\\s*${x}\\b[^>]*\\/\\s*>`,"i").test(C)&&Aqe(C,x)>0&&v.push([x,k]);else if(v.length>0&&x&&v[v.length-1][0]===x){const[,M]=v[v.length-1],_=h[M];_.content=`${String(_.content||"")} +${C}`,_.loading=!1,v.pop(),h.splice(k,1),k--}continue}else if(v.length>0){if(w.type==="paragraph_open"||w.type==="paragraph_close"){h.splice(k,1),k--;continue}const x=w.content||"",S=new RegExp(`<\\s*\\/\\s*${v[v.length-1][0]}\\s*>`,"i").test(x);if(x){const[,M]=v[v.length-1],_=h[M];_.content=`${_.content||""} +${x}`,_.loading!==!1&&(_.loading=!S)}S&&v.pop(),h.splice(k,1),k--}else continue}if(g.size>0){const k=new Map,w=new Map,C=M=>{let _=k.get(M);return _||(_=new RegExp(`<\\s*${M}\\b`,"i"),k.set(M,_)),_},x=M=>{let _=w.get(M);return _||(_=new RegExp(`<\\s*\\/\\s*${M}\\s*>`,"i"),w.set(M,_)),_},S=[];for(let M=0;M0){const L=S[S.length-1],P=h[L.index],N=_.type==="html_block"?x(L.tag).exec(T):null;if(N){const B=N.index+N[0].length,W=T.slice(0,B),D=T.slice(B);P.content=`${String(P.content??"")} +${W}`,Array.isArray(P.children)&&P.children.push({type:"html_inline",content:``,raw:``}),S.pop();const z=d(P,D)?[]:c(D,u(h,M,"paragraph"));z.length?h.splice(M,1,...z):(h.splice(M,1),M--);continue}if(_.type!=="inline")continue;const U=Array.isArray(_.children)?_.children:[],F=wqe(U,L.tag);if(F!==-1){const B=U.slice(0,F+1),W=U.slice(F+1),D=B.map(z=>String(z?.content??z?.raw??"")).join("");if(P.content=`${String(P.content??"")} +${D}`,Array.isArray(P.children)&&P.children.push(...B),W.length){const z=W.map($=>String($.content??$.raw??"")).join("");if(z.trim()){const $=z.replace(/^\s+/,"");if(d(P,z))h.splice(M,1),M--;else if($.startsWith("<"))h.splice(M,1,{type:"html_block",content:$});else{const j=c(z,u(h,M,"paragraph"));h.splice(M,1,...j)}}else h.splice(M,1),M--}else h.splice(M,1),M--;S.pop();continue}P.content=`${String(P.content??"")} +${T}`,Array.isArray(P.children)&&P.children.push(...U),h.splice(M,1),M--;continue}if(_.type!=="inline")continue;const E=Array.isArray(_.children)?_.children:[];for(const L of g)if((E.length?Cqe(E,L):C(L).test(T)&&!x(L).test(T)?1:0)>0){S.push({tag:L,index:M});break}}}{let k=0;for(let w=0;w0?k--:(h.splice(w,1),w--))}}for(let k=0;k/]+)/)?.[1]??"").toLowerCase();if(_.startsWith("!")||_.startsWith("?")){w.loading=!1;continue}if(g.has(_)){const F=String(w.content??""),B=or(F),W=B===-1?null:Cq(F,_,B+1);w.loading=W?!1:w.loading!==void 0?w.loading:!0;const D=W?.start??-1,z=W?W.end-W.start:0;if(D!==-1){const $=F.slice(0,D+z);let j="";B!==-1&&B]+)))?/g;let E;for(;(E=T.exec(w.content||""))!==null;)E[1],E[2]||E[3]||E[4];const L=String(w.content??""),P=new RegExp(`<\\/\\s*${_}\\s*>`,"i").exec(L),N=P?P.index:-1,U=P?P[0].length:0;if(N!==-1){const F=L.slice(0,N+U),B=(L.slice(N+U)||"").replace(/^\s+/,"");w.children=[{type:"html_block",content:F,tag:_,loading:!1}],w.content=F,w.raw=F,B&&h.splice(k+1,0,B.startsWith("<")?{type:"html_block",content:B}:{type:"text",content:B,raw:B})}else w.children=[{type:"html_block",content:w.content,tag:_,loading:!0}];continue}if(!w||w.type!=="inline")continue;if(w.children.length===2&&w.children[0].type==="html_inline"){const _=(w.children[0].content?.match(/<([^\s>/]+)/)?.[1]??"").toLowerCase(),T=w.children[1],E=String(T?.content??"").match(/^<\s*\/\s*([^\s>]+)/)?.[1]?.toLowerCase()??"";if(T?.type==="html_inline"&&E===_)continue;m.has(_)?(w.children[0].loading=!0,w.children[0].tag=_,w.children.push({type:"html_inline",tag:_,loading:!0,content:``})):w.children=[{type:"html_block",loading:!0,tag:_,content:String(w.children[0]?.content??"")+String(w.children[1]?.content??"")}];continue}else if(w.children.length===3&&w.children[0].type==="html_inline"&&w.children[2].type==="html_inline"){const _=(w.children[0].content?.match(/<([^\s>/]+)/)?.[1]??"").toLowerCase();if(m.has(_))continue;w.children=[{type:"html_block",loading:!1,tag:_,content:w.children.map(T=>T.content).join("")}];continue}if(!w.content?.startsWith("<")||w.children?.length!==1)continue;const C=String(w.content),x=w,S=x.children[0];if(S?.type!=="html_inline"){/^<\s*(?:\/\s*)?[A-Z][\w:-]*\s*$/i.test(C)&&(x.children.length=0);continue}const M=String(S.content??C).match(kqe)?.[1]?.toLowerCase()??"";if(M){if(/\/\s*>\s*$/.test(C)||qse.has(M)){x.children=[{type:"html_inline",content:C}];continue}x.children.length=0}}})}function Pqe(e){const t=e.trim();return!t||/^&[a-z0-9#]+;/i.test(t)?!1:!!(/^(?:const|let|var|function|class|import|export|if|for|while|return|await|async|yield|try|catch|throw|new|typeof|instanceof|switch|case|break|continue|def|ruby|perl|print|echo|true|false|null|undefined|NaN|Infinity|this)\b/.test(t)||/[a-z_$][\w$]*(?:\.[a-z_$][\w$]*|\['[^']*'\]|\["[^"]*"\]|\[\d+\])*\s*\(/i.test(t)||/[a-z_$][\w$]*(?:\.[a-z_$][\w$]*|\['[^']*'\]|\["[^"]*"\]|\[[\d+\]])+/i.test(t)||/\w+\s*(?:===?|!==?|<=?|>=?|\+\+|--|&&|\|\||\?\.)/.test(t)||/^(?:!!|\+\+|--)\s*\w/.test(t)||/[\w$]+\s*(?:\+=|-=|\*=|\/=|%=|\*\*=|=)/.test(t)||/^(?:https?:\/\/|ftp:\/\/|file:\/\/|\/\/|www\.)/i.test(t)||/`[^`]*\$\{[^}]*\}[^`]*`/.test(t)||/<\/?[A-Z][a-zA-Z0-9]*/.test(t)||/<[a-z][a-z0-9]*\s[^>]+>/.test(t)||/^(["'`]).*\1\s*[;,]?$/.test(t)||/^\[[\s\S]*\]$/.test(t)||/^\{[\s\S]*\}$/.test(t)||/^\(\s*\)$/.test(t)||/[\w$]+(?:\s*[+\-*/%<>=!&|^~:]+\s*[\w$]+|\s*\.\s*[\w$]+)/.test(t)||/=>|->|::/.test(t)||/^@[\w.$]+$/.test(t)||/^(?:0x[0-9a-fA-F]+|0b[01]+|0o[0-7]+|\d+(?:\.\d*)?(?:px|em|rem|%|vh|vw|deg|s|ms)?)$/.test(t)||/^\$[\w$]+\s*[=:]/.test(t)||/\|\s*\w+|\w+\s*\|/.test(t)||/^(?:git|npm|yarn|pnpm|bun|pip|cargo|go|rust|python|node|java|mvn|gradle|docker|kubectl)\s+/.test(t)||/(?:console|window|document|Math|JSON|Date|Array|Object|String|Number|Boolean)\.[a-zA-Z]/.test(t)||/^(?:\/\/|#|\/\*|\*\/|)/.test(t)||/^(?:<<<|<<\s*['"]?\w+['"]?)/.test(t))}function $qe(e,t={}){t.enabled!==!1&&e.core.ruler.after("inline","fix_indented_code_block",n=>{const i=n.tokens??[];for(let o=0;ol.trim().length>0);if(a.length===1&&!Pqe(a[0]??"")){const l=a[0]??"",c=s.level??0;i.splice(o,1,{type:"paragraph_open",tag:"p",nesting:1,level:c},{type:"inline",tag:"",nesting:0,level:c,content:l,children:[{type:"text",content:l,level:c+1,raw:l}],block:!0},{type:"paragraph_close",tag:"p",nesting:-1,level:c}),o+=2}}})}const Use=Symbol("markstream.parse-context");function PC(e){return!!(e&&e[Use]===!0)}function b$(e={},t={}){return{...e,[Use]:!0,customHtmlBlockCursor:0,disableStreamParse:!1,disableStructuredReuse:!1,insideStrong:!1,isFragment:!1,...t}}function rb(e){return PC(e)?e:b$(e)}function Oqe(e,t=e,n={}){return b$(t,{runtime:e.runtime,markdownIt:e.markdownIt,...n})}const Kse=/\.([a-z0-9]{1,15})$/i,Fqe=/[_()[\]{}<>]/u,Dqe=/^(?:https?:\/\/|ftp:\/\/|mailto:|www\.)/i,Nqe=/[?#@]/u,Bqe=/[\\/]/u,zqe=/^[\p{L}\p{N}./\\-]+$/u,Hqe=/^[A-Za-z0-9-]{1,63}$/u,jqe=/^xn--[a-z0-9-]{2,59}$/i,Wqe=/^(?:[A-Z]{1,6}|\d{1,8})$/u,qqe=/^(?=.{1,12}$)[A-Z0-9]+(?:[-.][A-Z0-9]+)*$/iu,Vqe=/文件名\s*[::]?|附件\s*[::]?|路径\s*[::]?|路徑\s*[::]?|文件列表\s*[::]?|文档列表\s*[::]?|文檔列表\s*[::]?|\bfile\s*names?\b\s*[::]?|\battachments?\b\s*[::]?|\bpaths?\b\s*[::]?|\bfile\s+lists?\b\s*[::]?|\bdocument\s+lists?\b\s*[::]?/iu,Uqe=/文件名\s*[::]?|文件\s*[::]?|附件\s*[::]?|档案\s*[::]?|檔案\s*[::]?|文档\s*[::]?|文檔\s*[::]?|资料\s*[::]?|資料\s*[::]?|路径\s*[::]?|路徑\s*[::]?|\bfile\s*name\b\s*[::]?|\battachments?\b\s*[::]?|\bfiles?\b\s*[::]?|\bdocuments?\b\s*[::]?|\bdocs?\b\s*[::]?|\bpaths?\b\s*[::]?/iu,Kqe=/股票代码|股票代碼|证券代码|證券代碼|(?:代码|代碼|交易所|后缀|後綴|市场|市場)(?=$|[\s::/|,,、()()])|\btickers?\b|\bsymbols?\b|\bexchanges?\b/iu,Zse=2e3,Zqe=16384,Gqe=512*Zse,Qqe={},Yqe=new Set(["ai","md","py","rs","sh","zip"]),Gse=new Set(["as","bj","de","hk","l","ln","ny","pa","sh","ss","sz","t","us"]),Jqe=new Set([...Gse,"at","ax","cn","co","it","jp","ks","mc","mx","nz","pl","sa","si","to","tw"]),Xqe=new Set(["com","dev","io","page","site"]),eVe=new Set(["app","apk","dmg","exe","ipa","lock","log","markdown","webmanifest"]),tVe=new Set(["7z","ai","astro","avi","bash","bz2","c","cjs","cpp","cs","csv","doc","docx","fish","flac","gif","go","gz","h","hpp","html","java","jpeg","jpg","js","json","jsx","kt","md","mdx","mjs","mov","mp3","mp4","pdf","php","png","ppt","pptx","ps1","py","rar","rb","rs","sh","sql","svg","swift","svelte","tar","tgz","toml","ts","tsx","txt","vue","wav","webp","xls","xlsx","xml","yaml","yml","zip","zsh"]),Eg=new Map;let FS=0;function xq(e,t){if(!e||e.length>Zqe)return t;for(Eg.has(e)||(FS+=e.length),Eg.set(e,t);Eg.size>Zse||FS>Gqe;){const n=Eg.keys().next().value;if(!n)break;Eg.delete(n),FS-=n.length}return t}function n3(e){return e?.filename===!0||e?.explicitFilename===!0||e?.marketTicker===!0}function DS(e,t){const n={filename:e?.filename||t?.filename,explicitFilename:e?.explicitFilename||t?.explicitFilename,marketTicker:e?.marketTicker||t?.marketTicker};return n3(n)?n:void 0}function Sq(e,t){if(!n3(t))return e;const n=rb(e),i=n.linkifyDemotionContext;return{...n,linkifyDemotionContext:{filename:i?.filename||t?.filename,explicitFilename:i?.explicitFilename||t?.explicitFilename,marketTicker:i?.marketTicker||t?.marketTicker}}}function _q(e){const t=ab(e);return n3(t)?t:void 0}function nVe(e){return e.replace(/^[\s>*_`[\]((【《"'“‘]+/u,"").replace(/[\s<*_`\]))】》"'.。;;,,、::!?!?]+$/u,"")}function Iq(e,t){if(!n3(t))return;const n=String(e??"").trim().split(/\s+/u).map(nVe).filter(Boolean);if(n.length===0)return;const i={};return t?.filename&&n.every(o=>ww(o,{filename:!0,explicitFilename:t.explicitFilename}))&&(i.filename=!0),t?.explicitFilename&&i.filename&&(i.explicitFilename=!0),t?.marketTicker&&n.every(o=>ww(o,{marketTicker:!0}))&&(i.marketTicker=!0),n3(i)?i:void 0}function Ap(e,t=!1){let n=rb(e).linkifyDemotionSeedContext;return{options(i){return t||i==null?Sq(e,n):Sq(e,DS(_q(i),Iq(i,n)))},remember(i){const o=_q(i);n=t?DS(n,o):DS(o,Iq(i,n))},reset(){n=void 0},snapshot(){return n}}}function Tq(e){return Hqe.test(e)&&!e.startsWith("-")&&!e.endsWith("-")}function iVe(e){const t=e.split(".");if(t.length<2)return!1;const n=t[t.length-1]?.toLowerCase()??"";return Tq(n)||jqe.test(n)?t.every(Tq):!1}function Qse(e){return Array.from(e).some(t=>t.charCodeAt(0)>127)}function oVe(e){return e.replace(/^[a-z][a-z0-9+.-]*:\/\//i,"").split(/[/?#]/,1)[0]??""}function sVe(e){return e.split(".").some(t=>t.toLowerCase().startsWith("xn--"))}function Yse(e,t,n){const i=oVe(t);return Qse(e)&&sVe(i)&&String(n??"").toLowerCase().includes(i.toLowerCase())}function rVe(e){if(!e)return!1;if(e.includes("文件")||e.includes("附件")||e.includes("路径")||e.includes("路徑")||e.includes("文档")||e.includes("文檔")||e.includes("档案")||e.includes("檔案")||e.includes("资料")||e.includes("資料")||e.includes("股票")||e.includes("证券")||e.includes("證券")||e.includes("代码")||e.includes("代碼")||e.includes("交易所")||e.includes("后缀")||e.includes("後綴")||e.includes("市场")||e.includes("市場"))return!0;const t=e.toLowerCase();return t.includes("file")||t.includes("attachment")||t.includes("document")||t.includes("doc")||t.includes("path")||t.includes("ticker")||t.includes("symbol")||t.includes("exchange")}function ab(e){const t=String(e??""),n=Eg.get(t);return n||(rVe(t)?xq(t,{explicitFilename:Vqe.test(t),filename:Uqe.test(t),marketTicker:Kqe.test(t)}):xq(t,Qqe))}function aVe(e){return iVe(e.split(/[\\/]/)[0]??"")}function lVe(e){const t=e.replace(/[^a-z]/gi,"");return t.length>=2&&t===t.toUpperCase()}function cVe(e){if(Fqe.test(e)||!zqe.test(e))return!0;if(Bqe.test(e))return!aVe(e);const t=e.replace(Kse,"");return Qse(t)?!0:t.split(".").filter(Boolean).some(lVe)}function uVe(e,t,n){if(!(n?Jqe:Gse).has(t))return!1;const i=e.slice(0,-(t.length+1));return i===""?e.startsWith("."):(n?qqe:Wqe).test(i)}function ww(e,t={}){if(!e||Dqe.test(e)||Nqe.test(e))return!1;const n=e.match(Kse);if(!n)return!1;const i=String(n[1]??"").toLowerCase();return uVe(e,i,t.marketTicker===!0)?!0:tVe.has(i)?!Yqe.has(i)||t.filename?!0:cVe(e):!!(t.explicitFilename&&Xqe.has(i)||t.filename&&eVe.has(i))}const k$=new WeakMap,Jse=new WeakSet;function JM(e,t){return k$.set(e,t),e}function w$(e){return k$.get(e)}function C$(e){if(!e)return"";const t=w$(e);if(t==="linkify"||t==="autolink")return t;const n=typeof e.markup=="string"?e.markup:"";return n==="linkify"||n==="autolink"?n:""}function Xse(e,t){if(!e||!t)return;const n=w$(e);n&&k$.set(t,n)}function dVe(e){Jse.add(e)}function ere(e){return e===void 0||Jse.has(e)}const Mq=["!"];function Eq(e){return e==="linkify"||e==="autolink"?e:"recovery"}function Rl(e){return{type:"text",content:e,raw:e}}function Jp(e,t){t===1?e.push({type:"em_open",tag:"em",nesting:1}):t===2?e.push({type:"strong_open",tag:"strong",nesting:1}):t===3&&(e.push({type:"strong_open",tag:"strong",nesting:1}),e.push({type:"em_open",tag:"em",nesting:1}))}function Xp(e,t){t===1?e.push({type:"em_close",tag:"em",nesting:-1}):t===2?e.push({type:"strong_close",tag:"strong",nesting:-1}):t===3&&(e.push({type:"em_close",tag:"em",nesting:-1}),e.push({type:"strong_close",tag:"strong",nesting:-1}))}function Zh(e,t,n,i="recovery"){let o="";if(t.includes('"')){const s=t.split('"');t=s[0].trim(),o=s[1].trim()}return JM({type:"link",loading:n,href:t,title:o,text:e,children:[{type:"text",content:e,raw:e}],raw:`[${e}](${t})`},i)}function fVe(e,t){if(!(!e||!t)&&(e.href=String(e.href??"")+t,e.text=String(e.text??"")+t,e.raw=`[${e.text}](${e.href})`,Array.isArray(e.children)&&e.children.length)){const n=e.children[e.children.length-1];n?.type==="text"?(n.content=String(n.content??"")+t,n.raw=String(n.raw??"")+t):e.children.push(Rl(t))}}function Lq(e,t){let n=-1;for(const i of t){const o=e.indexOf(i);o!==-1&&(n===-1||on?.[0]==="href")?.[1];return typeof t=="string"?t:""}function pVe(e,t){if(!e)return;e.attrs=Array.isArray(e.attrs)?e.attrs:[];const n=e.attrs.findIndex(i=>i?.[0]==="href");n>=0?e.attrs[n][1]=t:e.attrs.push(["href",t])}function Rq(e,t,n){let i="";for(let o=t+1;o{const n=t.tokens??[];for(let i=0;ir.type==="code_inline"),i=new Map;let o=0;for(let r=0;r0&&c?Pq(c):-1;if(u!==-1&&c)for(const d of c.slice(u))d==="("?o++:d===")"&&o>0&&o--}l!==-1&&(r=l);continue}if(!(a.type!=="text"||typeof a.content!="string"))for(const l of a.content)l==="("?o++:l===")"&&o>0&&o--}const s=ab(t);for(let r=0;r<=e.length-1;r++){r<0&&(r=0);const a=e[r];if(!a)break;if(a.type==="link_open"&&(a.markup==="linkify"||a.markup==="autolink")){let l=-1;for(let c=r+1;c0){const m=Pq(c);m!==-1&&(d===-1||m=g.content.length){h-=g.content.length;continue}if(h<0)break;const y=g.content[h],v=g.content.slice(0,h);let k=g.content.slice(h);for(let x=m+1;x0&&(e.splice(m+1,w),l=m+1);let C=u;if(y==="!"&&f!==-1)C=u.slice(0,f);else if(k){const x=encodeURI(k);if(x&&u.endsWith(x))C=u.slice(0,u.length-x.length);else{const S=y?encodeURI(y):"",M=S?u.indexOf(S):-1;M!==-1&&(C=u.slice(0,M))}}C!==u&&pVe(a,C),k&&e.splice(l+1,0,Rl(k));break}}}if(!n){if(a?.type==="em_open"&&e[r-1]?.type==="text"&&e[r-1].content?.endsWith("*")){const l=e[r-1].content?.replace(/(\*+)$/,"")||"";e[r-1].content=l,a.type="strong_open",a.tag="strong",a.markup="**";for(let c=r+1;cd[0]==="href")?.[1]||"";if(e[r+3]?.type==="text"){const d=(e[r+3]?.content??"").indexOf(")"),f=d===-1;d===-1&&(u+=e[r+3]?.content?.slice(0,d)||"",e[r+3].content=""),l.push(Zh(c,u,f,"linkify"));const h=e[r+3].content?.replace(/^\)\**/,"");h&&l.push(Rl(h)),e.splice(r-4,8,...l)}else l.push(JM({type:"link",loading:!0,href:u,title:"",text:c,children:[{type:"text",content:u,raw:u}],raw:`[${c}](${u})`},"linkify")),e.splice(r-4,7,...l);continue}else if(e[r-1].content==="]("&&e[r-3]?.type==="text"&&e[r-3].content?.endsWith(")"))if(e[r-2]?.type==="strong_open"){const[l,c]=e[r-3].content?.split("[**")||[];e[r+1].content=c||"",e[r-3].content=l||"",e[r-1].content=""}else if(e[r-2]?.type==="em_open"){const[l,c]=e[r-3].content?.split("[*")||[];e[r+1].content=c||"",e[r-3].content=l||"",e[r-1].content=""}else{const[l,c]=e[r-3].content?.split("[")||[];e[r+1].content=c||"",e[r-3].content=l||"",e[r-1].content=""}}if(a.type==="link_close"&&a.nesting===-1&&e[r-2]?.type==="link_open"&&e[r+1]?.type==="text"&&e[r-1]?.type==="text"){const l=e[r-1].content||"",c=e[r-2].attrs||[],u=c.find(v=>v[0]==="href")?.[1]||"",d=c.find(v=>v[0]==="title")?.[1]||"";let f=3,h=2;const m=(e[r-3]?.content||"").match(/^(\*+)$/),g=[];if(m){h+=1;const v=m[1].length;Jp(g,v)}if(a.markup!=="linkify"&&e[r+1].type==="text"&&e[r+1]?.content?.startsWith("](")){f+=1;for(let v=r+1;vy[0]==="href")?.[1];e[r+5]?.type==="text"&&e[r+5].content==="."?(f=(g||f)+e[r+5].content,e[r+5].content=""):f=g||f,h+=3}let m=!0;if(a.nesting===-1&&(d=d.replace(/\*+$/,"")),e[r+2]?.type==="text"){const g=(e[r+2]?.content??"").indexOf(")");m=g===-1,g===-1&&(f+=e[r+2]?.content?.slice(0,g)||"",e[r+2].content="")}l.push(Zh(d,f,m)),Xp(l,2),e.splice(r-2,h,...l)}if(a.type==="text"&&/\*+\[[^\]]*$/.test(a.content||"")&&e[r+1]?.type==="strong_open"&&e[r+2]?.type==="text"&&e[r+2].content==="]("&&e[r+3]?.type==="link_open"&&e[r+5]?.type==="link_close"&&e[r+6]?.type==="text"&&e[r+6].content===")"&&e[r+7]?.type==="strong_close"){const l=(a.content||"").match(/^(\*+)\[(.*)$/);if(l){const c=(l[2]||"")+l[1];let u=e[r+3]?.attrs?.find(f=>f[0]==="href")?.[1]||"";!u&&e[r+4]?.type==="text"&&(u=e[r+4].content||"");const d=[];Jp(d,2),d.push(Zh(c,u,!1)),Xp(d,2),e.splice(r,9,...d),r-=d.length-1;continue}}}}if(n)return e;for(let r=0;r{const n=t.tokens??[];for(let i=0;i{const n=t.tokens??[];for(let i=0;i=0&&e[m].type==="text"&&e[m].content==="";)m--;const g=e[m];let y=u+1;for(;y=0&&e[m].type==="text"&&e[m].content==="";)m--;const g=e[m];let y=u+1;for(;y{const n=t;try{const i=MVe(n.tokens??[],!!n.env?.__markstreamFinal,n.src??"");Array.isArray(i)&&(n.tokens=i)}catch(i){console.error("[applyFixTableTokens] failed to fix table tokens",i)}})}function $q(e){const t=Array.isArray(e)?[...e]:null,n=t?[t[0],t[0]+1]:null;return[{type:"table_open",tag:"table",attrs:null,map:t,children:null,content:"",markup:"",info:"",level:0,nesting:1,block:!0,loading:!0,meta:null},{type:"thead_open",tag:"thead",attrs:null,block:!0,level:1,map:n,nesting:1,children:null},{type:"tr_open",tag:"tr",attrs:null,block:!0,level:2,map:n,nesting:1,children:null}]}function Oq(){return[{type:"tr_close",tag:"tr",attrs:null,block:!0,level:2,map:null,nesting:-1,children:null},{type:"thead_close",tag:"thead",attrs:null,block:!0,level:1,map:null,nesting:-1,children:null},{type:"table_close",tag:"table",attrs:null,map:null,children:null,content:"",markup:"",info:"",level:0,nesting:-1,block:!0,meta:null}]}function Fq(e){return[{type:"th_open",tag:"th",attrs:null,block:!0,level:3,map:null,nesting:1,children:null},{type:"inline",tag:"",children:null,content:e,level:4,attrs:null,map:null,nesting:0,block:!0},{type:"th_close",tag:"th",attrs:null,block:!0,level:3,map:null,nesting:-1,children:null}]}function tre(e,t){if(!e.startsWith("|")||e.includes(` +`)||!e.endsWith("|"))return null;const n=e.slice(1).split("|");return n.at(-1)===""&&n.pop(),n.length>0&&n.every(i=>i.trim().length>0)?n:null}function NS(e){return tre(e)!==null}function nre(e){return/^:?-+:?$/.test(e.trim())}function xVe(e){if(!e.startsWith("|"))return!1;const t=e.slice(1).split("|");return t.at(-1)===""&&t.pop(),t.length>0&&t.every(nre)}function SVe(e){return/^(?:[::]-*|:?-+:?)?$/.test(e.trim())}function _Ve(e){if(e==="")return!0;if(!e.startsWith("|"))return!1;const t=e.slice(1).split("|"),n=t.at(-1)??"";return t.slice(0,-1).every(nre)&&SVe(n)}function IVe(e){return e==="|"||e==="|:"}function TVe(e){const t=tre(e);return t!==null&&t.every(n=>!n.includes(":"))}function MVe(e,t=!1,n=""){if(e.length<3)return e;const i=e.length-2,o=e[i];if(o.type!=="inline")return e;const s=e[i-1]?.map,r=String(o.content??""),a=r.split(` +`)[0]??"",[l="",c="",...u]=r.split(` +`),d=!t&&!r.includes(` +`)&&/\r?\n$/.test(n)&&NS(r);let f=null;if(!t&&(r.includes(` +`)&&u.length===0&&NS(l)&&_Ve(c)||d)){const h=a.slice(1,-1).split("|").map(g=>g.trim()).flatMap(g=>Fq(g)),m=[...$q(s),...h,...Oq()];f=[...e],f.splice(i-1,3,...m)}else if(r.includes(` +`)&&u.length===0&&NS(l)&&xVe(c)){const h=a.slice(1,-1).split("|").map(g=>g.trim()).flatMap(g=>Fq(g)),m=[...$q(s),...h,...Oq()];f=[...e],f.splice(i-1,3,...m)}else if(r.includes(` +`)&&u.length===0&&TVe(l)&&IVe(c))return o.content=r.slice(0,-2),o.children.splice(2,1),e;return f??e}function EVe(e,t,n,i){const o=e.length;if(n==="$$"&&i==="$$"){let c=t;for(;c=0&&e[u]==="\\";)d++,u--;if(d%2===0)return c}c++}return-1}const s=n[n.length-1],r=i;let a=0,l=t;for(;l=0&&e[u]==="\\";)d++,u--;if(d%2===0){if(a===0)return l;a--,l+=r.length;continue}}const c=e[l];if(c==="\\"){l+=2;continue}c===s?a++:c===r[r.length-1]&&a>0&&a--,l++}return-1}var LVe=EVe;const RVe=["boldsymbol","mathbb","mathcal","mathfrak","mathrm","mathit","mathsf","vec","hat","bar","tilde","overline","underline","mathscr","mathnormal","operatorname","mathbf*"],Cw=RVe.map(e=>e.replace(/[.*+?^${}()|[\\]"\]/g,"\\$&")).join("|"),PVe=/\\[a-z]+/i,ire="(?:\\\\|\\u0008)",$Ve=new RegExp(String.raw`${ire}(?:${Cw})\s*\{[^}]+\}`,"i"),OVe=new RegExp(String.raw`(?:${ire})?(?:${Cw})\s*\{`,"i"),FVe=/\\(?:text|frac|left|right|times)/,DVe=/(?:^|[^+])\+(?!\+)|[=\-*/^<>]|\\times|\\pm|\\cdot|\\le|\\ge|\\neq/,NVe=/\b[A-Z]{2,}-[A-Z]{2,}\b/i,BVe=/[A-Z]+\s*\([^)]+\)/i,zVe=/^\(\s*[a-z](?:\s*,\s*[a-z])+\s*\)$/i,HVe=/\b(?:sin|cos|tan|log|ln|exp|sqrt|frac|sum|lim|int|prod)\b/,jVe=/\b\d{4}\/\d{1,2}\/\d{1,2}(?:[ T]\d{1,2}:\d{2}(?::\d{2})?)?\b/,WVe={"\b":"\\b","\v":"\\v","\f":"\\f"};function qVe(e){let t="";for(const n of e)t+=WVe[n]??n;return t}function v1(e){if(!e)return!1;const t=qVe(e),n=t.trim();if(jVe.test(n)||n.includes("**"))return!1;if(n.length>2e3)return!0;const i=PVe.test(t),o=$Ve.test(t),s=OVe.test(t),r=FVe.test(t),a=/(?:^|[^\w\\])(?:[A-Z]|\\[A-Z]+)_(?:\{[^}]+\}|[A-Z0-9\\])/i.test(t)||/(?:^|[^\w\\])(?:[A-Z]|\\[A-Z]+)\^(?:\{[^}]+\}|[A-Z0-9\\])/i.test(t),l=DVe.test(t)&&!NVe.test(t),c=BVe.test(t),u=zVe.test(n),d=HVe.test(t),f=/^\([a-z]\)$/i.test(n)||/^(?:[a-z]|pi)$/i.test(n),h=/^(?:[A-Z][a-z]?(?:_\{?\d+\}?|\^\{?\d+\}?)?)+$/.test(n);return i||o||s||r||a||l||c||u||d||f||h}const ore="__markstreamMathPluginApplied",XM=80,sre=2e4,BS=sre+4096;function A$(e){return!!e[ore]}function VVe(e){e[ore]=!0}const rre=["ldots","cdots","quad","in","displaystyle","int_","lim","lim_","ce","pu","end","infty","perp","mid","operatorname","to","rightarrow","leftarrow","math","mathrm","mathit","mathbb","mathcal","mathfrak","implies","alpha","beta","gamma","delta","epsilon","lambda","sum","sum_","prod","sqrt","fbox","boxed","color","rule","edef","fcolorbox","hline","hdashline","cdot","times","pm","le","ge","neq","sin","cos","tan","log","ln","exp","frac","text","left","right"],UVe=["cdot","mathbf{","partial","mu_{"],are=rre.slice().sort((e,t)=>t.length-e.length).map(e=>e.replace(/[.*+?^${}()|[\\]\\\]/g,"\\$&")).join("|"),lre="[ \r\b\f\v]",KVe=new RegExp(`([^\\\\])(${UVe.map(e=>e).join("|")})+`,"g"),ZVe=/span\{([^}]+)\}/,GVe=/\\operatorname\{span\}\{((?:[^{}]|\{[^}]*\})+)\}/,QVe=/(^|[^\\])\\\r?\n/g,YVe=/(^|[^\\])\\$/g,JVe=/[\p{L}\p{M}\p{N}\p{Pe}\p{Pf}'′″‴|‖]/u,XVe=new RegExp(`(${lre})|(${are})\\b`,"g"),Dq=new Map,Nq=new Map;function eUe(e){if(!e)return XVe;const t=[...e];t.sort((r,a)=>a.length-r.length);const n=t.join(""),i=Dq.get(n);if(i)return i;const o=`(?:${t.map(r=>r.replace(/[.*+?^${}()|[\\]\\"\]/g,"\\$&")).join("|")})`,s=new RegExp(`(${lre})|(${o})\\b`,"g");return Dq.set(n,s),s}function tUe(e,t){const n=e?[]:[...t??[]];e||n.sort((a,l)=>l.length-a.length);const i=e?"__default__":n.join(""),o=Nq.get(i);if(o)return o;const s=e?[Cw,are].filter(Boolean).join("|"):[n.map(a=>a.replace(/[.*+?^${}()|[\\]\\\]/g,"\\$&")).join("|"),Cw].filter(Boolean).join("|"),r=new RegExp(`(^|[^\\\\\\w])(${s})\\s*\\{`,"g");return Nq.set(i,r),r}const Bq={" ":"t","\r":"r","\b":"b","\f":"f","\v":"v"};function zq(e){const t=/(^|[^\\])(__|\*\*)/g;let n=0;for(;t.exec(e)!==null;)n++;return n}function nUe(e){return e.replace(/(^|[^\\])!+/gu,(t,n)=>{if(n&&JVe.test(n))return t;const i=n?t.slice(n.length):t;return`${n}${"\\!".repeat(i.length)}`})}function Hq(e){const t=/(^|[^\\])(__|\*\*)/g;let n,i=null;for(;(n=t.exec(e))!==null;)i={marker:n[2],index:n.index+(n[1]?.length??0)};return i}function Gh(e,t){const n=t?.commands??rre,i=t?.escapeExclamation??!0,o=t?.commands==null,s=eUe(o?void 0:n);let r=e.replace(s,(c,u,d,f,h)=>{if(u!==void 0&&Bq[u]!==void 0)return`\\${Bq[u]}`;if(d&&n.includes(d)){const m=h&&typeof f=="number"?h[f-1]:void 0;return m==="\\"||m&&/\w/.test(m)?c:`\\${d}`}return c});i&&(r=nUe(r));let a=r;const l=tUe(o,o?void 0:n);return a=a.replace(l,(c,u,d)=>`${u}\\${d}{`),a=a.replace(ZVe,"span\\{$1\\}").replace(GVe,"\\operatorname{span}\\{$1\\}"),a=a.replace(QVe,`$1\\\\ +`),a=a.replace(YVe,"$1\\\\"),a=a.replace(KVe,"$1\\$2"),a}function jq(e){const t=e.trim();return!(!v1(t)||/"[^"\n]{1,80}"\s*:\s*/.test(t)||!(/\\[a-z]+/i.test(t)||/[=+*/^<>]|\\times|\\pm|\\cdot|\\le|\\ge|\\neq/.test(t)||/[_^]/.test(t))&&/\s-\s/.test(t))}const Wq=new WeakMap;function iUe(e){let t=Wq.get(e);if(t)return t;const n=e.src,i=e.env?.__markstreamFinal!==!0,o=[];for(let s=0;s>1;e[o]=n[0]&&t0;){if(e[s]==="\\"&&s+10;){if(e[a]==="\\"&&a+1=0&&e[n]==="\\";)i++,n--;return i%2===1}function eE(e,t){let n=t;for(;n0&&e[i-1]==="$"||i+1=a)break;const c=Aw(o,l);if(c){r=Math.max(l+Math.max(1,t.length),c[1]);continue}lb(e,l)||s++,r=l+Math.max(1,t.length)}return s}function x$(e,t,n){const i=o3(String(e??""));if(!i.endsWith(t))return-1;const o=i.length-t.length;if(o<=0||!o3(i.slice(0,o)).trim()||lb(i,o))return-1;const s=cre(i);if(Aw(s,o))return-1;const r=qq(i,t,0,o,s);if(t==="$$"){if(r%2===1)return-1}else if(r>qq(i,n,0,o,s))return-1;return o}function i3(e){return e===" "||e===" "}function o3(e){let t=e.length;for(;t>0&&i3(e[t-1]);)t--;return e.slice(0,t)}function Vq(e){let t=0;for(let n=0;n=48&&t<=57}function rUe(e){if(e.length<3)return!1;const t=e[0];if(t!=="-"&&t!=="*"&&t!=="_"&&t!=="=")return!1;let n=0;for(let i=0;i=3}function aUe(e){const t=e.trim();if(!t)return!1;let n=0;t[n]===":"&&n++;let i=0;for(;t[n]==="-";)i++,n++;return i<3?!1:(t[n]===":"&&n++,n===t.length)}function lUe(e){if(!e.includes("|"))return!1;const t=e[0]==="|"?e.slice(1):e;return(t.endsWith("|")?t.slice(0,-1):t).split("|").every(aUe)}function cUe(e){let t=0;if(!Uq(e[t]))return!1;for(;Uq(e[t]);)t++;return e[t]!=="."&&e[t]!==")"?!1:i3(e[t+1])}function ure(e){const t=e.trimStart();if(!t||t.startsWith("```")||t.startsWith("~~~")||t.startsWith(":::")||t[0]===">"||t[0]==="<")return!0;if(t[0]==="#"){let n=0;for(;t[n]==="#";)n++;if(n>=1&&n<=6&&i3(t[n]))return!0}return!!((t[0]==="-"||t[0]==="+"||t[0]==="*")&&i3(t[1])||cUe(t)||rUe(t)||lUe(t))}function Kq(e,t){return e?t?`${e} +${t}`:e:t}function tE(e){const t=String(e??"").trim();return t?v1(t):!1}function Zq(e){let t=0;for(let n=0;nXM){m=!0;break}const y=s[g],v=Lg(y,d);if(v!==-1){const k=Kq(h,y.slice(0,v));if(!tE(k)){m=!0;break}const w=y.slice(v+d.length),C=w.trim()?`suffix:${Zq(w)}`:"nosuffix";return["closed",u,o+l,f,o+g,v,Zq(k),C].join(":")}if(ure(y)){m=!0;break}if(h=Kq(h,y),h.length>sre){m=!0;break}}if(!m&&tE(h))return["pending",u,o+l,f].join(":")}}return null}function HS(e,t){const n=String(e??"").trim();return!n||!/^\d[\d,.]*\s*[~~-]\s*$/.test(n)?!1:/\d/.test(String(t??""))}function dUe(e){const t=String(e??"").trimStart(),n=t.match(/^\d+(?:,\d{3})*(?:\.\d+)?/);if(!n)return!1;const i=t.slice(n[0].length);return/^\s*(?:[+\-*/^_=<>]|\\[a-z]+)/i.test(i)?!1:i===""||/^[)\s,.!?;:]/.test(i)}function jS(e){const t=String(e??"").trim();return t?/^(?:\.{3,}|…+)$/.test(t):!1}function fUe(e,t){VVe(e);const n=(r,a,l)=>{const c=String(a??"").replace(/^[\t ]+/,"").replace(/[\t ]+$/,"");if(!c)return;const u=r.push("paragraph_open","p",1);u.map=[l,l+1];const d=r.push("inline","",0);d.content=c,d.map=[l,l+1],d.children=[],r.push("paragraph_close","p",-1)},i=(r,a)=>{const l=r,c=!!t?.strictDelimiters,u=!l?.env?.__markstreamFinal,d=(S,M)=>{let _=M;for(;_=3&&(!_||/\s/.test(_))){const T=l.push("text","",0);return T.content=l.src.slice(l.pos,S),l.pos=S,!0}}const g=[["$$","$$"],["$","$"],["\\(","\\)"]];let y=h,v=h;const k=h,w=l.src,{codeSpanRanges:C,imageRanges:x}=m;for(const[S,M]of g){let _=!1;S==="$$"&&y!==k&&(y=k);let T=-1,E=-1,L=0;const P=N=>{if((N==="undefined"||N==null)&&(N=""),N==="\\"){l.pos=l.pos+N.length,y=l.pos;return}if(N==="\\)"||N==="\\("){const B=l.push("text_special","",0);B.content=N==="\\)"?")":"(",B.markup=N,l.pos=l.pos+N.length,y=l.pos;return}if(!N)return;if(S==="$$"&&N.includes("$")){let B=0;for(;B0&&N[W-1]==="$"||W+10){const D=N.slice(0,U),z=l.push("text","",0);z.content=D,l.pos=l.pos+D.length,y=l.pos}const B=N.slice(U).match(/^!\[([^\]]*)\]\(([^)]+)\)/);if(B){const[,D,z]=B,$=z.match(/^(\S+)(?:\s+"([^"]+)")?\s*$/),j=$?$[1]:z,G=$&&$[2]?$[2]:null,K=l.push("image","img",0);K.attrs=[["src",j],["alt",D]],G&&K.attrs.push(["title",G]),K.content=D,K.children=[{type:"text",content:D,tag:""}],l.pos=l.pos+B[0].length,y=l.pos;const te=N.slice(U+B[0].length);te&&P(te);return}const W=l.push("text","",0);W.content=N,l.pos=l.pos+N.length,y=l.pos;return}const F=l.push("text","",0);F.content=N,l.pos=l.pos+N.length,y=l.pos};for(;!(y>=w.length);){const N=w.indexOf(S,y);if(N===-1)break;if(lb(w,N)){y=N+Math.max(1,S.length);continue}const U=Aw(C,N);if(U){y=U[1];continue}const F=Aw(x,N);if(F){y=F[1];continue}if(N===T&&y===E){if(L++,L>2){y=N+Math.max(1,S.length);continue}}else L=0,T=N,E=y;if(S==="("&&N>0){let te=N-1;for(;te>=0&&w[te]===" ";)te--;if(te>=0&&w[te]==="]"){y=N+S.length;continue}}if(S==="$"&&N>0&&w[N-1]==="$"){y=N+1;continue}if(S==="$"&&N=w.length);){const U=eE(w,N);if(U===-1)break;if(U+10&&w[U-1]==="$"){N=U+1;continue}const F=zS(w,U+1);if(F===-1)break;const B=w.slice(U+1,F),W=B.includes("`"),D=!B||!B.trim(),z=w[F+1],$=HS(B,z),j=jS(B);if(!W&&!D&&!$&&!j){const G=w.slice(y,U);G&&P(G);const K=l.push("math_inline","math",0);K.content=Gh(B,t),K.markup="$",K.raw=`$${B}$`,K.loading=!1,y=F+1,N=F+1}else P("$"),N=U+1}N{const u=r,d=!u?.env?.__markstreamFinal,f=t?.strictDelimiters,h=f?[["\\[","\\]"],["$$","$$"]]:[["\\[","\\]"],["[","]"],["$$","$$"]],m=u.bMarks[a]+u.tShift[a];let g=u.src.slice(m,u.eMarks[a]).trim(),y=!1,v="",k="",w=!1,C="",x=!1;for(const[j,G]of h)if(g.startsWith(j))if(j.includes("[")){const K=j==="\\["?g.slice(j.length):"";if(j==="\\["&&Lg(K,G)===-1&&!/^\s*!\[/.test(K)&&!K.includes("`")&&v1(K)){y=!0,v=j,k=G;break}if(t?.strictDelimiters){if(g.replace("\\","")==="["){if(a+1=0?"\\]":k,E=_>=0?_:Lg(g,k,M);if(!w&&E>v.length){const j=g.slice(S+v.length,E),G=u.push("math_block","math",0);G.content=Gh(j),G.markup=v==="$$"?"$$":v==="["?"[]":"\\[\\]",G.map=[a,a+1],G.raw=`${v}${j}${T}`,G.block=!0,G.loading=!1,u.line=a+1;const K=g.slice(E+T.length);return K.trim()&&n(u,K,a),!0}let L=a,P="",N=!1,U="",F=a;const B=w?g:g===v?"":g.slice(v.length),W=!f&&v==="\\["?"]":"",D=Lg(B,k);if(D!==-1){const j=D;P=B.slice(0,j),U=B.slice(j+k.length),F=w?a+1:a,N=!0,L=F}else for(B&&!w&&(P=B),L=a+1;L{const u=r,d=u.bMarks[a]+u.tShift[a],f=u.src.slice(d,u.eMarks[a]).trim();return!f.startsWith("$$")&&!f.startsWith("\\[")?!1:o(r,a,l,c)};e.inline.ruler.before("escape","math",i),e.block.ruler.before("lheading","explicit_math_block",s,{alt:["paragraph","reference","blockquote","list"]}),e.block.ruler.before("paragraph","math_block",o,{alt:["paragraph","reference","blockquote","list"]})}function hUe(e){const t=e.renderer.rules.image||function(n,i,o,s,r){const a=n,l=r;return l.renderToken?l.renderToken(a,i,o):""};e.renderer.rules.image=(n,i,o,s,r)=>{const a=n;return a[i].attrSet?.("loading","lazy"),t(a,i,o,s,r)},e.renderer.rules.fence=e.renderer.rules.fence||((n,i)=>{const o=n[i],s=String(o.info??"").trim();return`
        ${e.utils.escapeHtml(String(o.content??""))}
        `})}const pUe=/^\s]/i,mUe=/^<\/a\s*>/i,Gq=/[@:]|\/\/|\.\S/;function gUe(e,t){if(e?.type!=="inline")return!1;const n=e.children;if(!Array.isArray(n)||n.length===0)return t.test(String(e.content??""));let i=0;for(let o=n.length-1;o>=0;o--){const s=n[o];if(s?.type==="link_close"){for(o--;o>=0&&n[o]?.level!==s.level&&n[o]?.type!=="link_open";)o--;continue}if(s?.type==="html_inline"){const r=String(s.content??"");pUe.test(r)&&i>0&&i--,mUe.test(r)&&i++}if(!(i>0)&&s?.type==="text"&&t.test(String(s.content??"")))return!0}return!1}function vUe(e){const t=e.core?.ruler,n=t.getNamedRules?.().find(c=>c.name==="linkify")?.fn;if(typeof n!="function")return;const i=e.options.linkify?e.linkify:void 0,o=i?.test,s=i?.match,r=i?.re&&Object.getPrototypeOf(i.re);let a,l=!1;t.at("linkify",c=>{if(!c.md?.options?.linkify)return;const u=Array.isArray(c.tokens)?c.tokens:[],d=c.md.linkify;if(!d||!u.some(v=>v?.type==="inline"))return;const f=d.re,h=f&&Object.getPrototypeOf(f)===r&&!Object.values(f).some(v=>typeof v=="function"),m=d.test===o&&d.match===s;if(m&&h&&a!==f.cache){a=f.cache;const{schema_names:v=[],tlds:k=[]}=f.opts;l=v.every(w=>w==="//"||w.endsWith(":"))&&k.every(w=>/^[\p{L}\p{N}-]+$/u.test(w))}let g=!!m&&!!h&&l&&(c.env?.__markstreamFinal!==!1||!!f?.cache.link_fuzzy_search);const y=u.filter(v=>{if(g&&v?.type==="inline"){const k=v.children;if(Array.isArray(k)&&k.length>0){if(!k.some(w=>w?.type==="text"&&Gq.test(String(w.content??""))))return!1}else if(!Gq.test(String(v.content??"")))return!1;g=!1}return gUe(v,d)});if(y.length)return n(Object.assign(Object.create(Object.getPrototypeOf(c)),c,{tokens:y}))})}function yUe(e){const t=e.inline.ruler,n=t.getNamedRules?.(),i=n?.find(a=>a.name==="link")?.fn,o=n?.find(a=>a.name==="image")?.fn;if(typeof i!="function"||typeof o!="function")return;const s=e.validateLink,r=e;r.__markstreamOriginalValidateLink=s,t.at("link",(...a)=>{const l=a[0].md,c=l?.validateLink===s?l.options?.validateLink:l?.validateLink;if(!l||typeof c!="function")return i(...a);const u=l.validateLink;l.validateLink=c;try{return i(...a)}finally{l.validateLink=u}}),t.at("image",(...a)=>{const l=a[0].md;if(!l)return o(...a);const c=l.validateLink;l.validateLink=s;try{return o(...a)}finally{l.validateLink=c}})}function bUe(e={}){const t=e.markdownItOptions??{},n=typeof t.experimental=="object"&&t.experimental!==null?t.experimental:{},i=Object.prototype.hasOwnProperty.call(t,"stream")?!!t.stream:!0,o=Object.prototype.hasOwnProperty.call(t,"validateLink"),s={stream:i,...n},r=new VWe({html:!0,linkify:!0,typographer:!0,...t,experimental:s}),a="streamTailLocalPostBlockRules";if(!(Object.prototype.hasOwnProperty.call(t,a)||Object.prototype.hasOwnProperty.call(n,a))&&Object.prototype.hasOwnProperty.call(r.options,a)&&(r.options[a]=!0),!o){const l=c=>!Q0(c,{tagName:"a",attrName:"href"});dVe(l),r.set({validateLink:l})}return yUe(r),vUe(r),(e.cjkFriendly??!0)&&r.use(zBe),(e.enableMath??!0)&&fUe(r,{...e.mathOptions??{}}),(e.enableContainers??!0)&&dqe(r),e.enableFixIndentedCodeBlock!==!1&&$qe(r),mVe(r),bVe(r),vVe(r),AVe(r),hUe(r),Rqe(r,{customHtmlTags:e.customHtmlTags}),r}const py=new Map;function G2(e,t){const n=t?`${e}:::${t}`:e;let i=py.get(n);if(!i&&(i=new RegExp(e,t),py.set(n,i),py.size>200)){const o=Array.from(py.keys()).slice(0,50);for(const s of o)py.delete(s)}return i.lastIndex=0,i}const kUe=/\S/,wUe=/^(?:]*>\s*)?]*)?>/i,CUe=/<\/html>\s*$/i,AUe=/^<\s*[!?]/,xUe=/^([A-Z][\w:-]*)/i,Qq=/\/\s*>$/;function SUe(e){const t=e.search(kUe);if(t===-1||e.charCodeAt(t)!==60)return null;const n=e.trim();if(!n)return null;const i=wUe.test(n),o=CUe.test(n);return!i||!o?null:[{type:"html_block",tag:"html",raw:e,content:e,loading:!1}]}function z4(e){const t=e.raw;if(typeof t=="string")return t;const n=e.content;return typeof n=="string"?n:""}function _Ue(e,t){if(e.type!=="html_block"||!t)return!1;const n=String(e.raw??e.content??"");return G2(String.raw`^\s*<\s*\/\s*${df(t)}\s*>\s*$`,"i").test(n)}const WS=new Set(["iframe","script","style","textarea","title"]);function Q2(e,t,n){if(!e||!t)return null;const i=t.toLowerCase(),o=f=>{if(e.startsWith("",f+4);return{closing:!1,end:w===-1?e.length:w+3,selfClosing:!1,tag:""}}if(e.startsWith("",f+9);return{closing:!1,end:w===-1?e.length:w+3,selfClosing:!1,tag:""}}const h=or(e,f);if(h===-1)return null;const m=h+1,g=e.slice(f,m);if(AUe.test(g))return{closing:!1,end:m,selfClosing:!1,tag:""};let y=g.slice(1).trimStart();const v=y.startsWith("/");v&&(y=y.slice(1).trimStart());const k=y.match(xUe);return k?.[1]?{closing:v,end:m,selfClosing:Qq.test(g),tag:k[1].toLowerCase()}:{closing:!1,end:f+1,selfClosing:!1,tag:""}},s=(f,h)=>{const m=G2(String.raw`<\s*\/\s*${df(f)}(?=\s|>)`,"gi");m.lastIndex=h;const g=m.exec(e);if(!g||g.index==null)return null;const y=o(g.index);return y?{start:g.index,end:y.end}:null};let r=-1,a=-1,l=Math.max(0,n);for(;l]*$/,"")} +`}function Yq(e){return e.replace(/\r\n/g,` +`).replace(/(^|\n)[ \t]{1,4}/g,"$1")}function MUe(e,t,n){return n?e.includes(n,t)?!0:Yq(e.slice(Math.max(0,t))).includes(Yq(n)):!1}function EUe(e,t){let n=Math.max(0,t);for(;n)`,"gi");let i=-1,o;for(;(o=n.exec(e))!==null;)i=o.index;return i}const LUe=/^\s*(?:");else if(l)l=!y.includes(">");else if(c)c=!y.includes("?>");else if(y.startsWith("");else if(y.startsWith("");else if(y.startsWith("");else{const v=o(y);if(v)if(v.closing){for(let k=r.length-1;k>=0;k--)if(r[k]===v.tag){r.length=k;break}}else v.selfClosing||s(v.after,v.tag)||r.push(v.tag)}}if(d===-1||d>=t)break;u=d+1}return a||l||c||r.length>0}function QUe(e,t,n){if(!n?.length)return!1;const i=new Set(Tm(n));if(!i.size)return!1;const o=u=>{const d=u.charCodeAt(0);return d>=65&&d<=90||d>=97&&d<=122||d>=48&&d<=57||u==="_"||u==="-"||u===":"},s=u=>u===" "||u===" ",r=u=>{if(u[0]!=="<")return null;let d=1;for(;d"&&g!=="/")return null;const y=u.indexOf(">",d);if(y===-1)return null;let v=y-1;for(;v>=0&&s(u[v]);)v--;return{closing:f,tag:m,selfClosing:!f&&u[v]==="/",after:u.slice(y+1)}},a=(u,d)=>{const f=u.toLowerCase();let h=0;for(;h")return!0}}return!1},l=[];let c=0;for(;c=t?t:u,f=e.slice(c,d),h=f.endsWith("\r")?f.slice(0,-1):f,m=mv(h);if(m){const g=r(h.slice(m.index));if(g)if(g.closing){for(let y=l.length-1;y>=0;y--)if(l[y]===g.tag){l.length=y;break}}else g.selfClosing||a(g.after,g.tag)||l.push(g.tag)}if(u===-1||u>=t)break;c=u+1}return l.length>0}function YUe(e,t){const n=WUe.exec(e);if(!n)return null;const i=n[1]??"",o=n.index+i.length,s=e.indexOf(` +`,o),r=e.slice(o,s===-1?e.length:s);return!mv(r.endsWith("\r")?r.slice(0,-1):r)||yre(e,o)||GUe(e,o)||QUe(e,o,t)?null:`${e.slice(0,n.index)}${i}`}function VS(e){e.inFence=!1,e.fenceChar="",e.fenceLen=0,e.fenceInBlockquote=!1,e.fenceInList=!1,e.fenceListIndent=0}function tV(e,t,n,i,o){let s=0,r=!1;for(;si&&(r=!0),t.inMath=!1,t.mathOpenOffset=null,s+=2;continue}s++;continue}if(t.inDollarMath){if(e.startsWith("$$",s)&&!Gd(e,a)){i!=null&&o&&n+s+2>i&&(r=!0),t.inDollarMath=!1,t.dollarMathOpenOffset=null,s+=2;continue}s++;continue}if(e[s]==="`"&&!Gd(e,a)){const l=L$(e,s,"`"),c=vre(e,s+l,l);if(c===-1)break;s=c+l;continue}if(e.startsWith("\\[",s)&&!Gd(e,a)){t.inMath=!0,t.mathOpenOffset=n+s,s+=2;continue}if(e.startsWith("$$",s)&&!Gd(e,a)){t.inDollarMath=!0,t.dollarMathOpenOffset=n+s,s+=2;continue}s++}return r}function JUe(e,t,n=!0){const i=t.markdownIt;if(!A$(i))return e;const o=n?t.pendingExplicitMathTail:void 0,s=o?.source===e?o.state:o&&t.sourceExtends(o.source,e)?bre(o.state,e.slice(o.source.length),o.source.length-o.state.lineBuffer.length).state:$C(e).state;n&&(t.pendingExplicitMathTail={source:e,state:s});const{context:r}=s,a=r.inMath?r.mathOpenOffset:r.inDollarMath?r.dollarMathOpenOffset:null;if(a==null)return e;const l=e.slice(a+2),c=e.lastIndexOf(` +`,a-1)+1;if(e.slice(c,a).trim()!==""&&!/^\r?\n/.test(l)||/^\s*!\[/.test(l))return e;const u=l.trim(),d=/^(?:[a-z]|pi)$/i.test(u);return v1(l)&&!d?e:e.slice(0,a)}function XUe(e,t,n,i,o){const s=I$(e),r=T$(e);if(t.inFence&&t.fenceInBlockquote&&e.trim()&&M$(e)==null&&VS(t),t.inFence&&t.fenceInList&&e.trim()&&s.column=t.fenceLen&&/^\s*$/.test(a.rest)&&VS(t):(t.inFence=!0,t.fenceChar=a.markerChar,t.fenceLen=a.markerLen,t.fenceInBlockquote=a.inBlockquote,t.fenceInList=a.inList||t.listContentIndent!=null&&!a.inBlockquote&&s.column>=t.listContentIndent,t.fenceListIndent=a.listIndent||t.listContentIndent||0);else if(!t.inFence)return tV(e,t,n,i,o)}else return tV(e,t,n,i,o);return!1}function $C(e,t=qUe(),n=null,i=!1,o=0){const s=H4(t);let r=H4(t),a="",l=!1,c=0;for(;cc&&e[u-1]==="\r"?u-1:d?u:e.length,h=e.slice(c,f);XUe(h,s,o+c,n,i)&&(l=!0),d?(r=H4(s),a=""):a=h,c=d?u+1:e.length}return{closedOpenMath:l,state:{committedContext:r,context:s,lineBuffer:a}}}function bre(e,t,n=0){return t&&!e.context.inMath&&!e.context.inDollarMath&&!e.context.inFence&&!e.committedContext.inFence&&!/[\\$`~\r\n]/.test(t)&&!(e.lineBuffer.endsWith("\\")&&(t[0]==="["||t[0]==="]"))?{closedOpenMath:!1,state:{committedContext:H4(e.committedContext),context:H4(e.context),lineBuffer:e.lineBuffer+t}}:$C(e.lineBuffer+t,e.committedContext,n+e.lineBuffer.length,e.context.inMath||e.context.inDollarMath,n)}function eKe(e,t){const n=e.markdownIt;if(!A$(n)||typeof n.stream?.reset!="function")return;const i=e.tolerantMathBoundary;if(i?.source===t)return;const o=i?e.sourceExtends(i.source,t):!1,s=o&&i?t.slice(i.source.length):"",r=o&&i?bre(i.explicitBracketMath,s,i.source.length-i.explicitBracketMath.lineBuffer.length):$C(t),a=r.state,l=o&&i?r.closedOpenMath:!1;if(i&&o&&i.key===null&&i.pendingCandidate===!1&&!l&&!ZUe(i.source,s)&&!UUe(t)){i.source=t,i.explicitBracketMath=a;return}const c=o&&i?i.scanWindow:{lineOffset:0,windowStart:0},u=uUe(t,c);(i&&(i&&!o||i.key!==u||l)||!i&&u)&&e.resetStreamOnly(),VUe(e,t,u,a,c)}function tKe(e){const t=e.tolerantMathBoundary;return typeof t?.key=="string"&&t.key.startsWith("pending:")}function nKe(e){let t=!1,n="",i=0,o=!1,s=!1,r=!1,a=0;const l=(u,d)=>{const f=E$(u);if(f){t?f.markerChar===n&&f.markerLen>=i&&/^\s*$/.test(f.rest)&&(t=!1,n="",i=0):(t=!0,n=f.markerChar,i=f.markerLen);return}if(t)return;let h=0;for(;h{for(;a=u?u:d,h=f>a&&e[f-1]==="\r"?f-1:f;if(l(e.slice(a,h)),d===-1||d>=u){a=u;break}r=!1,a=d+1}},inMath:()=>o||s||r}}function nV(){return typeof performance<"u"?performance.now():Date.now()}function iKe(e,t){const n=t.__markstreamFinal===!0?"final":"streaming";let i=e.streamParseEnvs.get(n);i||(i={},e.streamParseEnvs.set(n,i));for(const o of Object.keys(i))Object.prototype.hasOwnProperty.call(t,o)||delete i[o];return Object.assign(i,t),i}function R$(e,t){const n=e.markdownIt,i=n.stream,o=t.streamParse??"auto";return t.disableStreamParse!==!0&&n.__markstreamHasCustomParserExtensions===!1&&(o===!0||o==="auto"&&t.final!==!0)&&i?.enabled===!0&&typeof i.parse=="function"}function oKe(e,t){const n=e.markdownIt,i=t.streamParse??"auto",o=n.stream;return t.final===!0&&i==="auto"&&t.disableStreamParse!==!0&&n.__markstreamHasCustomParserExtensions===!1&&o?.enabled===!0&&typeof o.reset=="function"}function sKe(e,t){return oKe(e,t)?(e.resetForFinalAutoParse(),!0):!1}function rKe(e){return typeof e.preTransformTokens=="function"||typeof e.postTransformTokens=="function"}function aKe(e,t){const n=e?.map,i=t?.map;return n===i?!0:!Array.isArray(n)||!Array.isArray(i)?!1:n.length===i.length&&n.every((o,s)=>o===i[s])}function US(e,t){return!!e&&!!t&&e.type===t.type&&e.tag===t.tag&&e.nesting===t.nesting&&e.markup===t.markup&&e.content===t.content&&aKe(e,t)}function iV(e,t){return e[t]?.type==="paragraph_open"&&e[t+1]?.type==="inline"&&e[t+2]?.type==="paragraph_close"}function lKe(e){for(let t=0;t+5{if(!dKe.has(n.type)||(n.type==="link"||n.type==="link_open"||n.type==="link_close")&&!ere(t))return!1;if(n.type==="link"){const o=w$(n);if(o!=="explicit"&&o!=="linkify"&&o!=="autolink")return!1}if(n.type==="link_open"||n.type==="link_close"){const o=n.markup??"";if(o!==""&&o!=="linkify"&&o!=="autolink")return!1}const i=n.children;return!Array.isArray(i)||kre(i,t)})}function pKe(e){const t=fKe.get(e);if(t)return t;const n=/^container_(.+)_open$/.exec(e);return n?`container_${n[1]}_close`:void 0}function KS(e,t,n=0){const i=[];let o=!1,s=n;for(;so===i[s])}function vKe(e,t){const n=e?.attrs,i=t?.attrs;if(n===i)return!0;if(!Array.isArray(n)||!Array.isArray(i)||n.length!==i.length)return!1;for(let o=0;o{const y=c[g+1]??n.length;return{firstToken:n[m],lastToken:n[y-1],tokenCount:y-m}}),d=i.mixed?Math.max(0,c.length-1):mKe(t)?c.length:Math.max(0,c.length-1),f=d-a-1,h=f>=0?r?.[f]:l;e.structuredStream={groupBoundaries:u,groupStarts:c,tokenCount:n.length,tokens:n,mixed:i.mixed,source:t,nodes:o,linkifyDemotionContext:h,stableGroupCount:d,requireClosingStrong:s.requireClosingStrong,validateLink:s.validateLink}}function yKe(e,t,n,i){if(e.tokens===t)return!0;const o=n.length-1;for(let s=0;s=o||!sV(l.firstToken,t[r])||!sV(l.lastToken,t[a-1])))return!1}return!0}function bKe(e,t,n,i,o){const s=i.disableStructuredReuse,r=R$(e,i)&&wre(i);if(i.isFragment||(e.structuredReuseTailStart=void 0),!r)return s||(e.structuredStream=void 0),o.processTokens(n,i);if(s)return o.processTokens(n,i);const a=e.structuredStream,l=uKe(e),c=!!a&&(l==="append"||l==="tail")&&a.tokenCount!==void 0&&a.tokenCount<=n.length&&n===a.tokens;let u;if(c){const m=KS(n,i.validateLink,a.tokenCount);u=m?{starts:a.groupStarts.concat(m.starts),mixed:a.mixed||m.mixed}:KS(n,i.validateLink)}else u=KS(n,i.validateLink);if(!u)return e.structuredStream=void 0,o.processTokens(n,i);const d=u.starts,f=a&&u.mixed?Math.min(a.stableGroupCount,Math.max(0,a.groupBoundaries.length-1)):a?.stableGroupCount??0;if(a&&f>0&&a.requireClosingStrong===i.requireClosingStrong&&a.validateLink===i.validateLink&&e.sourceExtends(a.source,t)&&d.length>=f&&(l==="append"||l==="tail")&&yKe(a,n,d,f)){const m=d[f]??n.length,g={...i,linkifyDemotionSeedContext:a.linkifyDemotionContext},y=o.processTokens(n.slice(m),g),v=d.length-f;if(y.length===v){const k=a.nodes.slice(0,f).concat(y);return e.structuredReuseTailStart=f,o.recordReusedTopLevelNodes?.(f),rV(e,t,n,u,k,i,g.linkifyDemotionResultContexts,f,a.linkifyDemotionContext),k}}const h=o.processTokens(n,i);return rV(e,t,n,u,h,i,i.linkifyDemotionResultContexts),h}function aV(e){if(e.type!=="html_block"||String(e.tag??"").toLowerCase()!=="details")return!1;const t=String(e.raw??e.content??"");return/^\s*\s*\S|`{3,}|~{3,}|(?:\*{3,}|-{3,}|_{3,})(?:\s|$)|\|.*\|)/m,AKe=/(?:^|\n)(?: {4}|\t)(?![ \t]*<)\S/m;function xKe(e){return/\n\s*\n/.test(e)||CKe.test(e)||AKe.test(e)}function SKe(e){if(e.length===0)return!1;if(e.some(n=>wKe.has(String(n?.type??"").toLowerCase()))||e.some(n=>{if(n?.type!=="html_block")return!1;const i=n;return Array.isArray(i.children)&&i.children.length>0})||e.length>1)return!0;const[t]=e;return!!(t&&t.type==="paragraph")}function _Ke(e){const t=[];let n=0;for(;n=e.length)break;const i=e.slice(n).match(/^<([A-Z][\w:-]*)/i);if(!i?.[1])return null;const o=Q2(e,i[1],n);if(!o||o.start!==n)return null;t.push(o.raw),n=o.end}return t.length>1?t:null}function m2(e,t,n){return e.trim()?t.parseFragment(e,n):[]}function IKe(e,t,n,i,o){const s=n.customHtmlTags?.join("\0")??"",r=n.runtime,a=o?r?.siblingHtmlChildren:void 0,l=a&&a.final===i&&a.customHtmlTags===s&&a.requireClosingStrong===n.requireClosingStrong&&a.validateLink===n.validateLink,c=e.map((u,d)=>l&&a.blocks[d]===u?a.children[d]:m2(u,t,n));return o&&r&&(r.siblingHtmlChildren={blocks:e,children:c,customHtmlTags:s,final:i,requireClosingStrong:n.requireClosingStrong,validateLink:n.validateLink}),c.flat()}function TKe(e,t,n,i){const o=s=>{if(s?.type!=="html_block")return s;const r=s,a=String(r.tag??"").toLowerCase();if(!a||a==="details"||Dse.has(a)||Array.isArray(r.children))return s;const l=String(s.raw??r.content??"");if(!l)return s;const c=or(l);if(c===-1)return s;const u=Q2(l,a,0),d=u?.closeStart??-1,f=u?.closed===!0&&d>=c+1,h=f?l.slice(c+1,d):l.slice(c+1);if(!h.trim()||!xKe(h))return s;const m=lk(n,i),g=f?null:_Ke(h),y=!n.isFragment&&typeof n.preTransformTokens!="function"&&typeof n.postTransformTokens!="function"&&typeof n.postTransformNodes!="function"&&t.markdownIt.__markstreamHasCustomParserExtensions===!1&&ere(n.validateLink),v=g?IKe(g,t,m,i,y):m2(h,t,m);return SKe(v)&&(r.children=v),s};return e.map(o)}function MKe(e,t=0){for(let n=t;n=o+1){const r=EKe(e.slice(o+1,s),t,n);r.length>0&&(i.children=r)}return i.raw=e,i}function LKe(e,t,n){const i=or(e);if(i===-1)return[];const o=e.slice(i+1);if(!o.trim())return[];const s=Q2(o,"summary",0);if(!s)return m2(o,t,n);const r=o.slice(0,s.start),a=o.slice(s.end);return[...m2(r,t,n),iE(s.raw,t,n),...m2(a,t,n)]}function Cre(e,t,n,i,o,s=0){const r=[];let a=s;for(let l=0;l{const te=hre(f,"details");return te!==-1?f.slice(0,te):f})():f,w=g===-1?"":String(e[g].raw??z4(e[g])??""),C=v||g!==-1&&y?.closed===!0,x=w.replace(/[\t\r\n ]+$/,""),S=C?(()=>{const te=(y?.raw??"").lastIndexOf(x);return te===-1?t.length:h+te})():t.length,M=or(f),_=M!==-1?h+M+1:h+f.length,T=t.slice(_,S===-1?t.length:S),E=S+x.length,L=C?Math.max(S+w.length,EUe(t,E)):t.length,P=C?t.slice(S,L):w,N=C?t.slice(h,L):t.slice(h),U=wre(i)&&(i.runtime?.structuredReuseTailStart??0)>0?i.runtime?.detailsStitchCache:void 0,F=U?.get(c);if(F&&F.openRaw===f&&F.explicitClose===C&&F.closeSliceEnd===L&&F.middleSource===T){if(r.push(F.node),a=C?L:t.length,g===-1&&!v)break;g!==-1&&(l=g);continue}const[B]=Cre(v?[]:g===-1?e.slice(l+1):e.slice(l+1,g),t,n,i,o,h+f.length);let W=LKe(k,n,lk(i,o)),D=B;const z=B[0];if(!W.some(te=>{const J=te;return J?.type==="html_block"&&String(J.tag??"").toLowerCase()==="summary"})){if(z?.type==="html_block"&&String(z.tag??"").toLowerCase()==="summary"&&!Array.isArray(z.children))D=[iE(String(z.raw??z.content??""),n,lk(i,o)),...B.slice(1)];else if(M!==-1){const te=Q2(t,"summary",h+M+1);if(te&&te.closed){const J=t.slice(h+M+1,te.start);/^[\t \r\n]*$/.test(J)&&(W=[iE(te.raw,n,lk(i,o)),...W])}}}const $=n.markdownIt.parse(T,{__markstreamFinal:o}),j=n.markdownIt.renderer.render($,n.markdownIt.options,{__markstreamFinal:o}),G=M!==-1?t.slice(h,h+M+1):f,K={...c,tag:"details",attrs:RC(f.slice(0,M+1)),raw:N,content:`${G}${j}${P}`,children:[...W,...D],loading:!o&&!C};if(i.includeSourceMap&&(K.sourceMap=s3(t,h,C?L:t.length,i)),U&&C&&U.set(c,{openRaw:f,explicitClose:C,closeSliceEnd:L,middleSource:T,node:K}),r.push(K),a=C?L:t.length,g===-1&&!v)break;g!==-1&&(l=g)}return[r,a]}function RKe(e,t,n,i,o){if(!t)return-1;const s=o.getInternalNodeSourceRange(e)?.start??-1,r=s>=i&&n.startsWith(t,s);return e?.type==="html_block"?r&&s===i?s:n.indexOf(t,i):s<0?n.indexOf(t,i):r?s:-1}function PKe(e,t,n,i,o,s=0){if(!n)return e;const r=e.slice();let a=s;for(let l=0;l=h.start&&L.end<=h.end){r.splice(_,1);continue}break}M=E+T.length,r.splice(_,1)}}return r}function $Ke(e){const t=e.meta??{};return{type:"checkbox",checked:t.checked===!0,raw:t.checked?"[x]":"[ ]"}}function OKe(e){const t=e,n=t.attrGet?t.attrGet("checked"):void 0,i=n===""||n==="true";return{type:"checkbox_input",checked:i,raw:i?"[x]":"[ ]"}}function FKe(e){const t=String(e.content??"");return{type:"emoji",name:t,markup:String(e.markup??""),raw:`:${t}:`}}function Em(e,t,n,i,o=!1){let s="",r=t+1,a=1;const l=[];for(;rn.startsWith(t)||t.startsWith(n)):!1}function lV(e,t,n,i){n.length>0&&e.push(...n),i.length>0&&t.push(...i),n.length=0,i.length=0}function cV(e,t){return!t&&e.startsWith(" ")&&!e.startsWith(" ")?` ${e}`:e}function zKe(e,t){const n=[],i=[],o=[],s=[],r=e.split(NKe),a=/\r?\n$/.test(e),l=r.some(h=>h.startsWith("diff ")||h.startsWith("--- ")||h.startsWith("+++ ")||h.startsWith("@@ ")),c=h=>{const m=h;if(!Are.some(g=>m.startsWith(g)))if(m.startsWith("-")){const g=m.slice(1);o.push(cV(g,l))}else if(m.startsWith("+")){const g=m.slice(1);s.push(cV(g,l))}else{lV(n,i,o,s);const g=l&&m.startsWith(" ")?m.slice(1):m;n.push(g),i.push(g)}},u=a?Math.max(0,r.length-1):r.length;for(let h=0;h0||s.length>0)&&lV(n,i,o,s);const d=n.join(` +`),f=i.join(` +`);return{original:t&&a&&d?`${d} +`:d,updated:t&&a&&f?`${f} +`:f}}function P$(e){const t=Array.isArray(e.map)&&e.map.length===2,n=e.meta??{},i=typeof n.closed=="boolean"?n.closed:void 0,o=i===!0||i!==!1&&t,s=String(e.info??""),r=s.startsWith("diff"),a=r?(()=>{const c=s,u=c.indexOf(" ");return u===-1?"":String(c.slice(u+1)??"")})():s;let l=String(e.content??"");if(!o&&e.markup){const c=e.markup[0],u=DKe(c);u.test(l)&&(l=l.replace(u,""))}if(r){const{original:c,updated:u}=zKe(l,o===!0);return{type:"code_block",language:a,code:String(u??""),raw:String(l??""),diff:r,loading:i===!0?!1:i===!1?!0:!t,originalCode:c,updatedCode:u}}return{type:"code_block",language:a,code:String(l??""),raw:String(l??""),diff:r,loading:i===!0?!1:i===!1?!0:!t}}function HKe(e){const t=e.meta??{};return{type:"footnote_reference",id:String(t.label??""),raw:`[^${String(t.label??"")}]`}}function jKe(){return{type:"hardbreak",raw:`\\ +`}}function WKe(e,t,n,i){const o=[],{content:s,innerTokens:r,nextIndex:a}=Em(e,t,"mark_close");return o.push(...n(r,void 0,void 0,i)),{node:{type:"highlight",children:o,raw:`==${s}==`},nextIndex:a}}function OC(e){const t=e?.customHtmlTags;if(!Array.isArray(t)||t.length===0)return t3;const n=new Set(t3);for(const i of Tm(t))i&&n.add(i);return n}let ZS=null;const GS=new WeakMap;function uV(){return ZS||(ZS={customTagSet:null,allowedTagSet:OC()}),ZS}function xre(e){const t=e.match(/^<\s*(?:\/\s*)?([\w-]+)/);return t?t[1].toLowerCase():""}function Sre(e){return/^<\s*\//.test(e)}function _re(e,t){return/\/\s*>\s*$/.test(t)||sp.has(e)}function qKe(e){if(!e||e.length===0)return uV();const t=GS.get(e);if(t)return t;const n=e.map(Iu).filter(Boolean);if(!n.length){const o=uV();return GS.set(e,o),o}const i={customTagSet:new Set(n),allowedTagSet:OC({customHtmlTags:e})};return GS.set(e,i),i}function Ire(e){const t=e,n=t.raw??t.content??t.markup??"";return String(n??"")}function VKe(e){const t=e.meta,n=t?.markstreamCustomHtmlRaw,i=t?.markstreamCustomHtmlInner;return typeof n=="string"&&typeof i=="string"?{raw:n,inner:i}:null}function Sw(e,t){const n=t.toLowerCase();for(let i=e.length-1;i>=0;i--){const[o,s]=e[i];if(String(o).toLowerCase()===n)return s}}function UKe(e,t,n){const i=e.slice();return Sw(i,"href")||i.push(["href",t]),n!=null&&!Sw(i,"title")&&i.push(["title",n]),i}function oE(e){return e.map(Ire).join("")}function ck(e){const t=[],n=i=>{const o=String(i??"");if(!o)return;const s=t[t.length-1];if(s?.type==="text"){s.content=`${s.content}${o}`,s.raw=`${s.raw}${o}`;return}t.push({type:"text",content:o,raw:o})};for(const i of e)if(i){if(i.type==="reference"||i.type==="footnote_reference"){n(String(i.raw??""));continue}if("children"in i&&Array.isArray(i.children)){t.push({...i,children:ck(i.children)});continue}t.push(i)}return t}function KKe(e,t,n){let i=0;for(let o=t;o`;g.toLowerCase().includes(x.toLowerCase())||(g+=x),v=!0,y=!0}const k=[],w=/\s([\w:-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'>]+)))?/g;let C;for(;(C=w.exec(a))!==null;){const x=C[1],S=C[2]||C[3]||C[4]||"";k.push([x,S])}if(c?.has(l)){const x=VKe(e);return[{type:l,tag:l,attrs:k,content:x?x.inner:h.innerTokens.length?oE(h.innerTokens):"",children:h.innerTokens.length?i(h.innerTokens,o,s,r):[],raw:x?.raw??g,loading:e.loading||y,autoClosed:v},h.nextIndex]}return[{type:"html_inline",tag:l,attrs:k,content:g,children:m,raw:g,loading:y,autoClosed:v},h.nextIndex]}function GKe(e){const t=String(e.content??"");return{type:"inline_code",code:t,raw:t}}function QKe(e,t,n,i){const o=[],{content:s,innerTokens:r,nextIndex:a}=Em(e,t,"ins_close");return o.push(...n(r,void 0,void 0,i)),{node:{type:"insert",children:o,raw:`++${String(s)}++`},nextIndex:a}}function Tre(e){if(e.type==="math_inline"){if(e.raw)return String(e.raw);const t=e.markup==="$$"?"$$":"$";return`${t}${String(e.content??"")}${t}`}return Array.isArray(e.children)&&e.children.length>0?e.children.map(t=>Tre(t)).join(""):String(e.content??"")}function YKe(e){return!e||!Array.isArray(e.children)||e.children.length===0?"":e.children.map(t=>Tre(t)).join("")}function Mre(e,t=!1){let n=e.attrs??[],i=null;if((!n||n.length===0)&&Array.isArray(e.children))for(const d of e.children){const f=d.attrs;if(Array.isArray(f)&&f.length>0){n=f,i=d;break}}const o=String(n.find(d=>d[0]==="src")?.[1]??""),s=n.find(d=>d[0]==="alt")?.[1],r=YKe(i??e);let a="";r?a=r:s!=null&&String(s).length>0?a=String(s):i?.content!=null&&String(i.content).length>0?a=String(i.content):Array.isArray(i?.children)&&i.children[0]?.content?a=String(i.children[0].content):Array.isArray(e.children)&&e.children[0]?.content?a=String(e.children[0].content):e.content!=null&&String(e.content).length>0&&(a=String(e.content));const l=n.find(d=>d[0]==="title")?.[1]??null,c=l===null?null:String(l),u=String(e.content??"");return{type:"image",src:o,alt:a,title:c,raw:u,loading:t}}function JKe(e){const t=[];if(!Array.isArray(e))return t;for(const n of e){const i=n?.[0];i&&t.push([String(i),String(n?.[1]??"")])}return t}function _w(e,t){const n=t.toLowerCase();for(let i=e.length-1;i>=0;i--){const[o,s]=e[i];if(String(o).toLowerCase()===n)return s}}function XKe(e,t,n){const i=e.slice();return _w(i,"href")||i.push(["href",t]),n!=null&&!_w(i,"title")&&i.push(["title",n]),i}function Iw(e,t,n,i){const o=e[t],s=JKe(o.attrs),r=String(_w(s,"href")??""),a=_w(s,"title"),l=a==null?null:String(a),c=XKe(s,r,l);let u=t+1;const d=[];let f=!0;for(;uv.type==="strong_open")){const v=String(m.content??""),k=String(m.raw??v),w=Mm(m);w.content=v.slice(0,-2),w.raw=k.replace(/\*\*$/,""),h=d.slice(),h[h.length-1]=w}const g=n(h,void 0,void 0,i),y=g.map(v=>{const k=v;return"content"in v?String(k.content??""):String(k.raw??"")}).join("");return{node:{type:"link",href:r,title:l,text:y,children:g,raw:`[${y}](${r}${l?` "${l}"`:""})`,loading:f,attrs:c,markup:C$(o)},nextIndex:u=0&&e[s]==="\\";s--)o++;return o%2===1}function aZe(e,t){if(!e||!t)return null;const n=e.match(/\[([^\]\n]+)\]\(([^)]*)$/);return n&&n[2]===t?n[1]:null}function mu(e,t){return String(e.markup??"").startsWith(t)}function dV(e,t,n=Tw(e)){let i=e;const o=String(t.content??"");return(n&O$)!==0&&i.endsWith("\\")&&!mu(t,"\\\\")&&!o.endsWith("\\\\")&&(i=i.slice(0,-1)),(n&j4)!==0&&i.endsWith("(")&&!mu(t,"\\(")&&!o.endsWith("\\(")&&(i=i.slice(0,-1)),(n&Lre)!==0&&/\*+$/.test(i)&&!mu(t,"\\*")&&!o.endsWith("\\*")&&(i=i.replace(/\*+$/,"")),i}function lZe(e,t){if(!e)return;const n=String(e);if(n&&(n===t||n.replace(Ere,"$1")===t))return n}function r3(e,t,n,i,o){const s=[],{content:r,innerTokens:a,nextIndex:l}=Em(e,t,"strong_close","strong_open"),c={...rb(o),insideStrong:!0};return s.push(...n(a,lZe(i,r),void 0,c)),{node:{type:"strong",children:s,raw:`**${String(r)}**`},nextIndex:l}}const cZe=/^(?:https?:\/\/|mailto:|ftp:\/\/)/i,uZe=/:\/\//;function dZe(e){return e?cZe.test(e)||uZe.test(e):!1}function fV(e,t,n){if(!t)return;const i=e.parseInlineTokens([{...n,type:"text",content:t,raw:t}],t,e.pPreToken,e.options);if(i.length===1&&i[0]?.type==="text"){const o=i[0];e.pushText(String(o.content??""),String(o.raw??o.content??""));return}for(const o of i)e.pushParsed(o)}function fZe(e,t){return t.endsWith("](")?e.tokens[e.index+1]?.type==="link_open"&&e.tokens[e.index+1]?.markup==="linkify"&&e.tokens[e.index+2]?.type==="text"&&e.tokens[e.index+3]?.type==="link_close"&&e.tokens[e.index+4]?.type==="text"&&String(e.tokens[e.index+4]?.content??"").startsWith(")"):!1}function hZe(e,t){if(pZe(e,t))return;if(kZe(e)){const{node:c,nextIndex:u}=Iw(e.tokens,e.index,e.parseInlineTokens,e.options),d=String(c.text||c.href||"");e.pushText(d,d),e.index=u;return}e.resetCurrentTextNode();const n=e.index,{node:i,nextIndex:o}=Iw(e.tokens,e.index,e.parseInlineTokens,e.options);e.index=o;const s=i.text||i.href||"";if(t.markup==="linkify"&&!Yse(s,i.href,e.raw)&&ww(s,e.options.linkifyDemotionContext)){e.pushText(s,s);return}const r=i.children.length===1&&i.children[0]?.type==="text";if(i.loading&&e.raw&&i.text===i.href&&r){const c=aZe(e.raw,i.href);c&&(i.text=c,i.children=[{type:"text",content:c,raw:c}],i.raw=`[${c}](${i.href}${i.title?` "${i.title}"`:""})`)}if(e.options?.validateLink&&!e.options.validateLink(i.href)){e.pushText(i.text,i.text);return}const a=t.attrs?.find(([c])=>c==="href")?.[1],l=String(a??"");if(e.raw&&l){const c=e.raw.indexOf("](");if(c!==-1){const u=e.raw.indexOf(")",c+2);u===-1?i.loading=!0:i.loading&&e.raw.slice(c+2,u).includes(l)&&(i.loading=!1)}}/^file:\/\/\/[a-z]:\//i.test(i.href)&&Fre(e,i,n-1)||$re(e,i)||e.pushParsed(i)}function pZe(e,t){if(t.markup!=="linkify")return!1;const{node:n,nextIndex:i}=Iw(e.tokens,e.index,e.parseInlineTokens,e.options);return Ore(e,n,i)?(e.index=i,!0):!1}function $re(e,t){if(t.type!=="link")return!1;const n=e.result[e.result.length-1];if(!n||n.type!=="text")return!1;const i=String(n.content??"").match(/^([^[]*)\[([^\]\n]+)\]\($/);if(!i)return!1;const o=t,s=String(o.href??""),r=String(o.text??""),a=String(i[2]??""),l=s.replace(/^(?:https?:\/\/|mailto:|ftp:\/\/)/i,"");if(!s||!(r===s||r===l||dZe(r)))return!1;const c=String(i[1]??"");return c?(n.content=c,n.raw=c):e.result.pop(),e.pushParsed({...t,text:a,children:[{type:"text",content:a,raw:a}],raw:`[${a}](${s}${o.title?` "${o.title}"`:""})`,markup:C$(t)}),!0}function mZe(e,t){if(t.type!=="link")return!1;const n=t,i=String(n.href??"");return i?Ore(e,{href:i,title:n.title==null||n.title===""?null:String(n.title),loading:!!n.loading},e.index+1):!1}function Ore(e,t,n){const i=e.result[e.result.length-1];if(i?.type!=="image"||i.src||!i.loading||!String(i.raw??"").endsWith("]("))return!1;const o=e.tokens[n],s=String(o?.content??"");if(o?.type!=="text"||!s.startsWith(")"))return!1;e.result.pop(),e.currentTextNode=null;const r=String(i.alt??"");e.pushParsed({type:"image",src:t.href,alt:r,title:t.title,raw:`![${r}](${t.href}${t.title?` "${t.title}"`:""})`,loading:!!t.loading});const a=s.slice(1),l=Mm(o);return l.content=a,l.raw=a,e.ensureWorkingTokens()[n]=l,!0}function Fre(e,t,n=e.index-1){if(t.type!=="link")return!1;const i=e.result[e.result.length-1],o=e.tokens[n];if(!i||i.type!=="text"||o?.type!=="text")return!1;const s=String(i.content??""),r=String(o.content??"");if(!s.endsWith("!")||!r.endsWith("!")||mu(o,"\\!"))return!1;const a=s.slice(0,-1);a?(i.content=a,i.raw=a,e.currentTextNode=i):(e.result.pop(),e.currentTextNode=null);const l=t,c=String(l.text??l.children?.map(f=>String(f?.content??f?.raw??"")).join("")??""),u=String(l.href??""),d=l.title==null||l.title===""?null:String(l.title);return e.pushParsed({type:"image",src:u,alt:c,title:d,raw:`![${c}](${u}${d?` "${d}"`:""})`,loading:!!l.loading}),!0}function FC(e,t="",n=null){const i=String(e.alt??e.raw??"");return{type:"link",href:t,title:n,text:i,children:[e],raw:`[${i}](${t}${n?` "${n}"`:""})`,loading:!0,markup:""}}function Dre(e){const t=e.startsWith("![")?e:`![${e}`,n=t.slice(2),i=n.indexOf("](");return{type:"image",src:"",alt:i===-1?n.replace(/\]$/,""):n.slice(0,i),title:null,raw:t,loading:!0}}function gZe(e,t){const n=t.indexOf("[![");if(n===-1||typeof e.raw=="string"&&e.tokens.length===1&&rZe(e.raw,n,"["))return!1;const i=t.slice(0,n);i&&e.pushText(i,i);const o=Dre(t.slice(n+1));return e.pushParsed(FC(o)),e.index++,!0}function vZe(e,t){if(e.options?.final)return!1;const n=e.tokens[e.index-1];if(n?.type!=="text"||!String(n.content??"").endsWith("[")||mu(n,"\\["))return!1;const i=e.result[e.result.length-1];if(i?.type==="text"&&i.content.endsWith("[")){const s=i.content.slice(0,-1);s?(i.content=s,i.raw=s,e.currentTextNode=i):(e.result.pop(),e.currentTextNode=null)}const o=Mre(t);return e.pushParsed(FC(o)),e.index++,!0}function yZe(e,t){if(t.type!=="link")return!1;const n=t,i=String(n.raw??""),o=String(n.text??"");if(!i.startsWith("[![")&&!o.startsWith("!["))return!1;const s=n.title==null||n.title===""?null:String(n.title),r={type:"image",src:String(n.href??""),alt:o.replace(/^!\[/,"").replace(/\]$/,""),title:s,raw:i.startsWith("[![")?i.slice(1):i,loading:!0};return e.pushParsed(FC(r)),!0}function bZe(e,t){if(!t.startsWith("]("))return!1;const n=e.tokens[e.index-2];if(n?.type==="text"&&String(n.content??"").endsWith("[")&&mu(n,"\\["))return!1;const i=e.result[e.result.length-1];if(i?.type!=="image"&&i?.type!=="link")return!1;const o=i,s=i?.type==="link"&&Array.isArray(o.children)&&o.children.length===1&&o.children[0]?.type==="image"?e.result.pop():null,r=s?s.children[0]:e.result.pop();if(!r||r.type!=="image")return!1;const a=e.tokens[e.index+1];let l=String(s?.href??""),c=s?.title==null?null:String(s.title),u=!0;if(a?.type==="link_open"){const{node:f,nextIndex:h}=Iw(e.tokens,e.index+1,e.parseInlineTokens,e.options);l=f.href,c=f.title,u=!0,e.index=h}else{if(l=t.slice(2),l.includes('"')){const f=l.split('"');l=String(f[0]??"").trim(),c=f[1]==null?null:String(f[1]).trim()}e.index++}const d=FC(r,l,c);return d.loading=u,e.pushParsed(d),!0}function kZe(e){const t=e.tokens[e.index-3];return e.tokens[e.index-2]?.type==="image"&&e.tokens[e.index-1]?.type==="text"&&String(e.tokens[e.index-1].content??"")==="]("&&t?.type==="text"&&String(t.content??"").endsWith("[")&&mu(t,"\\[")}function wZe(e,t,n){const i=t.indexOf("[");if(i===-1)return!1;let o=t.slice(0,i);const s=t.indexOf("](",i);if(s!==-1){const r=e.tokens[e.index+2];let a=t.slice(i+1,s);if(a.includes("[")){const m=a.indexOf("[");o+=t.slice(0,i+m+1);const g=i+m+1;a=t.slice(g+1,s)}const l=e.tokens[e.index+1];if(t.endsWith("](")&&l?.type==="link_open"&&r){const m=e.tokens[e.index+4];let g=4,y=!0;if(m?.type==="text"){const k=String(m.content??"");if(k.startsWith(")")){y=!1;const w=k.slice(1);if(w){const C=Mm(m);C.content=w,C.raw=w,e.ensureWorkingTokens()[e.index+4]=C}else g++}else k==="."&&g++}fV(e,o,n);const v=String(r.content??"");return e.options?.validateLink&&!e.options.validateLink(v)?e.pushText(a,a):e.pushParsed({type:"link",href:v,title:null,text:a,children:[{type:"text",content:a,raw:a}],loading:y,markup:""}),e.index+=g,!0}const c=t.indexOf(")",s),u=c!==-1?t.slice(s+2,c):"",d=c===-1;let f=o.match(/\*+$/);if(f&&(o=o.replace(/\*+$/,"")),fV(e,o,n),f||(f=a.match(/^\*+/)),!e.requireClosingStrong&&f){const m=f[0].length;a=a.replace(/^\*+/,"").replace(/\*+$/,"");const g=[];if(m===1?g.push({type:"em_open",tag:"em",nesting:1}):m===2?g.push({type:"strong_open",tag:"strong",nesting:1}):m===3&&(g.push({type:"strong_open",tag:"strong",nesting:1}),g.push({type:"em_open",tag:"em",nesting:1})),g.push({type:"link",href:u,title:null,text:a,children:[{type:"text",content:a,raw:a}],loading:d,markup:""}),m===1){g.push({type:"em_close",tag:"em",nesting:-1});const{node:y}=xw(g,0,e.parseInlineTokens,e.options);e.pushParsed(y)}else if(m===2){g.push({type:"strong_close",tag:"strong",nesting:-1});const{node:y}=r3(g,0,e.parseInlineTokens,void 0,e.options);e.pushParsed(y)}else if(m===3){g.push({type:"em_close",tag:"em",nesting:-1}),g.push({type:"strong_close",tag:"strong",nesting:-1});const{node:y}=r3(g,0,e.parseInlineTokens,void 0,e.options);e.pushParsed(y)}else{const{node:y}=xw(g,0,e.parseInlineTokens,e.options);e.pushParsed(y)}}else e.options?.validateLink&&!e.options.validateLink(u)?e.pushText(a,a):e.pushParsed({type:"link",href:u,title:null,text:a,children:[{type:"text",content:a,raw:a}],loading:d,markup:""});const h=c!==-1?t.slice(c+1):"";return h&&(e.dispatchToken({type:"text",content:h,raw:h}),e.index--),e.index++,!0}return!1}function CZe(e,t){const n=t.indexOf("![");if(n===-1)return!1;const i=t.slice(0,n);return i&&!e.currentTextNode?e.currentTextNode={type:"text",content:i,raw:i}:i&&e.currentTextNode&&(e.currentTextNode.content+=i),e.currentTextNode&&(e.result.push(e.currentTextNode),e.currentTextNode=null),e.pushParsed(Dre(t.slice(n))),e.index++,!0}function AZe(e,t){vZe(e,t)||(e.resetCurrentTextNode(),e.pushParsed(Mre(t)),e.index++)}function xZe(e,t){const n=t;if(t.type==="link"&&n.href!=null&&e.options.validateLink&&!e.options.validateLink(String(n.href))){e.resetCurrentTextNode();const i=String(n.text??"");e.pushText(i,i),e.index++}else yZe(e,t)||mZe(e,t)||Fre(e,t)||$re(e,t)||e.pushToken(t),e.index++}function hV(e){const t=e.content??"",n=e.raw==="$$"?`$${t}$`:e.raw||"";return{type:"math_inline",content:t,loading:!!e.loading,raw:n,markup:e.markup}}function SZe(e){return{type:"reference",id:String(e.content??""),raw:String(e.markup??`[${e.content??""}]`)}}function Nre(e,t,n,i){const o=[],{content:s,innerTokens:r,nextIndex:a}=Em(e,t,"s_close");return o.push(...n(r,void 0,void 0,i)),{node:{type:"strikethrough",children:o,raw:`~~${s}~~`},nextIndex:a}}function _Ze(e,t,n,i){const o=[],{content:s,innerTokens:r,nextIndex:a}=Em(e,t,"sub_close");o.push(...n(r,void 0,void 0,i));const l=String(e[t].content??""),c=s||l;return{node:{type:"subscript",children:o.length>0?o:[{type:"text",content:c,raw:c}],raw:`~${c}~`},nextIndex:a}}function IZe(e,t,n,i){const o=[],{content:s,innerTokens:r,nextIndex:a}=Em(e,t,"sup_close");return o.push(...n(r,void 0,void 0,i)),{node:{type:"superscript",children:o.length>0?o:[{type:"text",content:s||String(e[t].content??""),raw:s||String(e[t].content??"")}],raw:`^${s||String(e[t].content??"")}^`},nextIndex:a}}const TZe=/\s/u,MZe=/[!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~]/,EZe=/\p{P}/u,LZe=/^[\x22\x27《「『【〔〖〘〚〈([{“‘﹁﹃﹙﹛﹝]$/u,RZe=/^[\x22\x27》」』】〕〗〙〛〉)]}”’﹂﹄﹚﹜﹞]$/u;function PZe(e){let t=0,n=0;for(;n=t){n++,i++;continue}n++,i++;continue}if(o==="*"&&n>=t)return n;n++}return-1}function rp(e){return!!e&&TZe.test(e)}function ap(e){return!!e&&(MZe.test(e)||EZe.test(e))}function zre(e,t){return!!e&&!!t&&/^\p{Script=Han}$/u.test(t)&&LZe.test(e)}function Hre(e,t){return!!e&&!!t&&/^[\p{L}\p{N}]$/u.test(t)&&RZe.test(e)}function $Ze(e,t){const n=t>0?e[t-1]:void 0,i=e[t+1];return!i||rp(i)?!1:!(ap(i)&&!zre(i,n)&&n&&!rp(n)&&!ap(n))}function OZe(e,t){const n=t>0?e[t-1]:void 0,i=e[t+1];return!n||rp(n)?!1:!(ap(n)&&!Hre(n,i)&&i&&!rp(i)&&!ap(i))}function FZe(e,t,n=0){let i=n,o=!1;for(;i0?e[t-1]:void 0,i=e[t+2];return!i||rp(i)?!1:!(ap(i)&&!zre(i,n)&&n&&!rp(n)&&!ap(n))}function NZe(e,t){const n=t>0?e[t-1]:void 0,i=e[t+2];return!n||rp(n)?!1:!(ap(n)&&!Hre(n,i)&&i&&!rp(i)&&!ap(i))}function BZe(e,t=0){let n=t,i=!1;for(;n0?e[t-1]:void 0,o=n=2&&i.intraword&&t.push({start:n,end:o}),n=o}for(let n=0;n=3)return i;n=i+o.len}return-1}function VZe(e){const t=String(e.content??"");return{type:"text",content:t,raw:t}}const UZe=/[^~]*~{2,}[^~]+/,KZe=/\*\*/,ZZe=/[[_*^~]/;function Wre(e,t){return t===e.tokens[e.index]}function rE(e,t,n){const i=Wre(e,n)&&e.tokens.length===1?e.raw:String(n.content??""),o=[],s=jZe(t);if(s!==-1){e.pushText(t.slice(0,s),t.slice(0,s));const a=t.slice(s);return a&&(e.dispatchToken({type:"text",content:a,raw:a}),e.index--),e.index++,!0}if(UZe.test(t)){const a=t.indexOf("~~");a!==-1&&o.push({type:"strikethrough",index:a})}if(KZe.test(t)){const a=t.indexOf("**");a!==-1&&o.push({type:"strong",index:a})}if(/[^*]*\*[^*]+/.test(t)){const a=i?Bre(i,0):t.indexOf("*");if(i&&a===-1)return!1;a!==-1&&o.push({type:"emphasis",index:a})}o.sort((a,l)=>a.index!==l.index?a.index-l.index:a.type===l.type?0:a.type==="strong"?-1:l.type==="strong"?1:0);const r=o[0];if(!r)return!1;if(r.type==="strikethrough"){const a=r.index,l=a>-1?t.slice(0,a):"";if(l&&e.pushText(l,l),a===-1)return e.index++,!0;const c=t.indexOf("~~",a+2),u=c===-1?t.slice(a+2):t.slice(a+2,c),d=c===-1?"":t.slice(c+2),{node:f}=Nre([{type:"s_open",tag:"s",content:"",markup:"~~",info:"",meta:null},{type:"text",tag:"",content:u,markup:"",info:"",meta:null},{type:"s_close",tag:"s",content:"",markup:"~~",info:"",meta:null}],0,e.parseInlineTokens,e.options);return e.resetCurrentTextNode(),e.pushParsed(f),d&&(e.dispatchToken({type:"text",content:d,raw:d}),e.index--),e.index++,!0}if(r.type==="strong"){const a=r.index,l=a>-1?t.slice(0,a):"";if(l&&e.pushText(l,l),a===-1)return e.index++,!0;if(e.raw&&a===0){let m=!1,g=0;for(;g=2)return e.pushText(t,t),e.index++,!0}}if(e.raw&&(t.match(/\*/g)||[]).length>PZe(e.raw))return e.pushText(t.slice(l.length),t.slice(l.length)),e.index++,!0;const c=W4(t,a);if(c.len>=3){const m=qZe(t,a+c.len);if(m!==-1){const g=t.slice(a+c.len,m);if(WZe(g)){const{node:y}=r3([{type:"strong_open",tag:"strong",content:"",markup:"**",info:"",meta:null},{type:"em_open",tag:"em",content:"",markup:"*",info:"",meta:null},{type:"text",tag:"",content:g,markup:"",info:"",meta:null},{type:"em_close",tag:"em",content:"",markup:"*",info:"",meta:null},{type:"strong_close",tag:"strong",content:"",markup:"**",info:"",meta:null}],0,e.parseInlineTokens,e.raw,e.options);e.resetCurrentTextNode(),e.pushParsed(y);const v=t.slice(m+3);return v&&(e.dispatchToken({type:"text",content:v,raw:v}),e.index--),e.index++,!0}}}if(!DZe(t,a)){const m=t.slice(a,a+c.len);e.pushText(m,m);const g=t.slice(a+c.len);return g&&(e.dispatchToken({type:"text",content:g,raw:g}),e.index--),e.index++,!0}const u=BZe(t,a+2);let d="",f="";if(u.index!==-1){d=t.slice(a+2,u.index),f=t.slice(u.index+2);const m=u.index,g=W4(t,m);if(c.intraword&&g.intraword&&!jre(d)||!d&&c.len>=4&&c.intraword)return e.pushText(t.slice(l.length),t.slice(l.length)),e.index++,!0}else{if(e.requireClosingStrong||u.sawInvalidClose||c.intraword)return e.pushText(t.slice(l.length),t.slice(l.length)),e.index++,!0;d=t.slice(a+2),f=""}if(!d&&/^\*+$/.test(f))return e.pushText(t,t),e.index++,!0;const{node:h}=r3([{type:"strong_open",tag:"strong",content:"",markup:"**",info:"",meta:null},{type:"text",tag:"",content:d,markup:"",info:"",meta:null},{type:"strong_close",tag:"strong",content:"",markup:"**",info:"",meta:null}],0,e.parseInlineTokens,e.raw,e.options);return e.resetCurrentTextNode(),e.pushParsed(h),f&&(e.dispatchToken({type:"text",content:f,raw:f}),e.index--),e.index++,!0}if(r.type==="emphasis"){let a=r.index;a===-1&&(a=0);const l=t.slice(0,a);if(l&&e.pushText(l,l),!$Ze(t,a)){e.pushText(t[a],t[a]);const m=t.slice(a+1);return m&&(e.dispatchToken({type:"text",content:m,raw:m}),e.index--),e.index++,!0}const c=W4(t,a),u=FZe(i,t,a+1),d=u.index,f=e.tokens[e.index+1];if(e.options?.final&&f?.type==="em_open"&&d!==-1&&t.slice(a+1,d).trim()!==t.slice(a+1,d)||d===-1&&(u.sawInvalidClose||e.options?.final||c.intraword||!sE(t[a+1])))return e.pushText(t.slice(a),t.slice(a)),e.index++,!0;const{node:h}=xw([{type:"em_open",tag:"em",content:"",markup:"*",info:"",meta:null},{type:"text",tag:"",content:d>-1?t.slice(a+1,d):t.slice(a+1),markup:"",info:"",meta:null},{type:"em_close",tag:"em",content:"",markup:"*",info:"",meta:null}],0,e.parseInlineTokens,e.options);if(e.resetCurrentTextNode(),e.pushParsed(h),d!==-1&&d{for(let h=0;h=0&&f[g]==="\\";g--)m++;if(m%2===0)return h}return-1})(t);if(o===-1)return!1;let s=1;for(let f=o+1;fr?.type==="math_inline")||!ZZe.test(t))return null;const i=n.parseInline(t,{__markstreamFinal:!!e.options?.final});if(!Array.isArray(i)||i.length===0)return null;const o=(i.find(r=>r?.type==="inline")?.children??[]).filter(r=>!(r?.type==="text"&&String(r.content??"")===""));if(!o.length||!o.some(r=>r?.type!=="text")||o.length===1&&o[0]?.type==="text"&&String(o[0].content??"")===t)return null;const s=e.parseInlineTokens(o,t,e.pPreToken,e.options);return s.length?s:null}function pV(e,t,n,i,o,s=Tw(t)){const r=VZe({...n,content:t});if(e.currentTextNode){e.currentTextNode.content+=e.options?.final?r.content:dV(r.content,n,s),e.currentTextNode.raw+=r.raw;return}const a=i?.tag==="br"&&e.tokens[e.index-2]?.content==="[";o||(r.content=e.options?.final?r.content:dV(r.content,n,s)),e.currentTextNode=r,e.currentTextNode.center=a,e.result.push(e.currentTextNode)}function YZe(e,t){const n=String(t.content??""),i=Tw(n),o=(i&O$)!==0,s=Wre(e,t)&&e.tokens.length===1&&o&&typeof e.raw=="string"?String(e.raw):"";let r=s?oZe(s):o?n.replace(Ere,"$1"):n;const a=r===n?i:Tw(r);if(t.content==="<"||r==="1"&&e.tokens[e.index-1]?.tag==="br"){e.index++;return}const l=(a&Pre)!==0?r.indexOf("$"):-1;l!==-1&&l===r.lastIndexOf("$")&&r.endsWith("$")&&(r=r.slice(0,-1)),r.endsWith("undefined")&&!e.raw?.endsWith("undefined")&&(r=r.slice(0,-9));let c=e.result.length,u="";for(let m=e.result.length-1;m>=0;m--){const g=e.result[m];if(g.type!=="text")break;c=m,u=String(g.content??"")+u}cmV(u,y),ensureWorkingTokens:d,pushParsed:h,pushText:g,pushToken:m,resetCurrentTextNode:f};function d(){return u.tokens===c&&(u.tokens=u.tokens.slice()),u.tokens}function f(){u.currentTextNode=null}function h(y){f(),u.result.push(y)}function m(y){f();const v=Mm(y);v.type==="link"&&(v.markup=C$(y)),u.result.push(v)}function g(y,v){u.currentTextNode?(u.currentTextNode.content+=y,u.currentTextNode.raw+=v??y):(u.currentTextNode={type:"text",content:String(y??""),raw:String(v??y??"")},u.result.push(u.currentTextNode))}for(;u.index{if(!i||typeof i!="object"||t.has(i))return;if(t.add(i),Array.isArray(i)){for(const s of i)n(s);return}const o=i;o.type==="html_block"&&o.loading===!0&&(o.loading=!1);for(const s of Object.values(o))n(s)};n(e)}function qre(e,t){const n=t.postTransformNodes;if(typeof n!="function")return e;const i=n(e);return Array.isArray(i)?i:e}function iGe(e){const t=String(e.content??""),n=t.replace(/[ \t\r\n]+$/g,"");if(n===t)return;e.content=n;const i=e.children;if(!(!Array.isArray(i)||i.length===0))for(;i.length;){const o=i[i.length-1];if(!o){i.pop();continue}if(o.type==="softbreak"||o.type==="hardbreak"){i.pop();continue}if(o.type==="text"){const s=String(o.content??""),r=s.replace(/[ \t\r\n]+$/g,"");if(r===s)break;if(r){o.content=r;break}i.pop();continue}break}}function oGe(e){const t=String(e.content??""),n=t.match(/\r?\n\s*\d+[.)]?\s*$/);if(!n||typeof n.index!="number")return;e.content=t.slice(0,n.index);const i=e.children;if(!(!Array.isArray(i)||i.length===0))for(;i.length;){const o=i[i.length-1];if(!o){i.pop();continue}if(o.type==="softbreak"||o.type==="hardbreak"){i.pop();continue}if(o.type==="text"){const s=String(o.content??"");if(/^[ \t\r\n\d.)]*$/.test(s)){i.pop();continue}const r=s.replace(/[ \t\r\n\d.)]+$/g,"");r!==s&&(r?o.content=r:i.pop())}break}}function sGe(e){const t=String(e.content??"");return/[ \t\r\n]+$/.test(t)||/\r?\n\s*\d+[.)]?\s*$/.test(t)}function gv(e,t,n,i){const o=e[t],s=[],r=Ap(n,!0);let a=t+1;for(;af.raw).join("")};n?.includeSourceMap&&ao(d,e[a],n),s.push(d),a=u+1}else a+=1;const l={type:"list",ordered:o.type==="ordered_list_open",start:(()=>{if(o.attrs&&o.attrs.length){const c=o.attrs.find(u=>u[0]==="start");if(c){const u=Number(c[1]);return Number.isFinite(u)&&u!==0?u:1}}})(),items:s,raw:s.map(c=>c.raw).join(` +`)};return n?.includeSourceMap&&ao(l,o,n),[l,a+1]}function rGe(e,t,n,i,o){const s=String(n[1]??"note"),r=String(n[2]??s.charAt(0).toUpperCase()+s.slice(1)),a=[],l=Ap(i,!0);let c=t+1;for(;cu.raw).join(` +`)} +:::`},c+1]}const aGe=new Set(["warning","info","note","tip","danger","caution"]);function lGe(e){let t=0;for(;t=0;y--){const v=h[y];if(v.type==="text"&&/:+/.test(v.content)){m=y;break}}const g={type:"paragraph",children:i((m!==-1?h.slice(0,m):h)||[],void 0,void 0,c.options()),raw:String(f.content??"").replace(/\n:+$/,"").replace(/\n\s*:::\s*$/,"")};n?.includeSourceMap&&ao(g,e[u],n),l.push(g),c.remember(g.raw)}u+=3}else if(e[u].type==="bullet_list_open"||e[u].type==="ordered_list_open"){const[f,h]=gv(e,u,c.options(),i);n?.includeSourceMap&&ao(f,e[u],n),l.push(f),c.remember(f.raw),u=h}else if(e[u].type==="blockquote_open"){const[f,h]=vv(e,u,c.options(),i);n?.includeSourceMap&&ao(f,e[u],n),l.push(f),c.remember(f.raw),u=h}else{const f=DC(e,u,c.options(),i);f?(l.push(f[0]),c.remember(f[0].raw),u=f[1]):u++}return[{type:"admonition",kind:s,title:r,children:l,raw:`:::${s} ${r} +${l.map(f=>f.raw).join(` +`)} +:::`},u+1]}const uGe=/^::: ?(warning|info|note|tip|danger|caution|error) ?(.*)$/;function dGe(e,t,n,i){const o=e[t];if(o.type!=="container_open")return null;const s=uGe.exec(String(o.info??""));return s?rGe(e,t,s,n,i):null}const F$={parseContainer:(e,t,n,i)=>cGe(e,t,n,i),matchAdmonition:dGe};function vv(e,t,n,i){const o=[],s=Ap(n,!0);let r=t+1;for(;rl.raw).join(` +`)};return n?.includeSourceMap&&ao(a,e[t],n),[a,r+1]}function fGe(e){if(e.info?.startsWith("diff"))return P$(e);const t=String(e.content??""),n=t.match(/ type="application\/vnd\.ant\.([^"]+)"/);let i=t;n?.[1]&&(i=t.replace(/]*>/g,"").replace(/<\/antArtifact>/g,""));const o=Array.isArray(e.map)&&e.map.length===2;return{type:"code_block",language:n?n[1]:String(e.info??""),code:i,raw:i,loading:!o}}function hGe(e,t,n,i){const o=[];let s=t+1,r=[],a=[];const l=Ap(n,!0);for(;su.raw).join("")),s+=3}else if(e[s].type==="dd_open"){let c=s+1;for(a=[];c0&&(o.push({type:"definition_item",term:r,definition:a,raw:`${r.map(u=>u.raw).join("")}: ${a.map(u=>u.raw).join(` +`)}`}),r=[]),s=c+1}else s++;return[{type:"definition_list",items:o,raw:o.map(c=>c.raw).join(` +`)},s+1]}function pGe(e,t,n,i){const o=e[t].meta??{},s=String(o?.label??"0"),r=[],a=Ap(n,!0);let l=t+1;for(;lc.raw).join(` +`)}`},l+1]}function mGe(e,t,n,i){const o=e[t],s=o.attrs,r=Array.isArray(s)&&s.length?Object.fromEntries(s.filter(d=>Array.isArray(d)&&d.length>=1&&d[0]).map(([d,f])=>[String(d),f==null||f===""?!0:String(f)])):void 0,a=String(o.tag?.substring(1)??"1"),l=Number.parseInt(a,10),c=e[t+1],u=String(c.content??"");return{type:"heading",level:l,text:u,...r?{attrs:r}:{},children:i(c.children||[],u,void 0,n),raw:u}}function gGe(e){const t=String(e.content??""),n=e.raw==="$$"?`$$${t}$$`:String(e.raw??"");return{type:"math_block",content:t,loading:!!e.loading,raw:n,markup:e.markup}}function vGe(e){if(!e)return"left";for(const t of e){if(!t)continue;const[n,i]=t;if(!i)continue;const o=String(i).trim().toLowerCase();if(n==="style"){const s=/text-align\s*:\s*(left|right|center)/i.exec(o);if(s)return s[1].toLowerCase()}}return"left"}function Vre(e){return e?.filename===!0||e?.explicitFilename===!0||e?.marketTicker===!0}function Ure(e,t){const n={filename:e?.filename||t?.filename,explicitFilename:e?.explicitFilename||t?.explicitFilename,marketTicker:e?.marketTicker||t?.marketTicker};return Vre(n)?n:void 0}function yGe(e,t,n){const i=Ure(ab(t),n);if(!Vre(i))return e;const o=rb(e),s=o.linkifyDemotionContext;return{...o,linkifyDemotionContext:{filename:s?.filename||i?.filename,explicitFilename:s?.explicitFilename||i?.explicitFilename,marketTicker:s?.marketTicker||i?.marketTicker}}}function bGe(e,t,n,i){let o=t+1,s=null;const r=[];let a=!1;for(;oh.raw).join("|")};a?s=f:r.push(f),o=u+1}else o++;s||(s={type:"table_row",cells:[],raw:""});const l=e[t].loading===!0;return[{type:"table",header:s,rows:r,loading:l&&!n?.final&&r.length===0,raw:[s,...r].map(c=>c.raw).join(` +`)},o+1]}function kGe(){return{type:"thematic_break",raw:"---"}}let YS=null;const JS=new WeakMap;function gV(){return YS||(YS={allowedTagSet:OC(),customTagSet:null}),YS}function wGe(e){if(!e||e.length===0)return gV();const t=JS.get(e);if(t)return t;const n=e.map(Iu).filter(Boolean);if(!n.length){const o=gV();return JS.set(e,o),o}const i={allowedTagSet:OC({customHtmlTags:e}),customTagSet:new Set(n)};return JS.set(e,i),i}function CGe(e,t,n,i){const o=e[t],s=o.attrs;let r="";const a={};if(s){for(const[m,g]of s)if(m==="class"){const y=g.match(/(?:\s|^)vmr-container-(\S+)/);y&&(r=y[1])}else if(m.startsWith("data-")){const y=m.slice(5);try{a[y]=JSON.parse(g)}catch{a[y]=g}}}const l=[],c=Ap(n,!0);let u=t+1;for(;u0&&(h+=` ${JSON.stringify(a)}`),h+=` +`,l.length>0&&(h+=o.raw??l.map(m=>m.raw).join(` +`),h+=` +`),h+=":::",[{type:"vmr_container",name:r,loading:!f,attrs:Object.keys(a).length>0?a:void 0,children:l,raw:h},d?u+1:u]}function XS(e,t,n,i){if(n?.type.endsWith("_close")){let o=Array.isArray(n.map)?Number(n.map[1]):NaN;return Number.isFinite(o)||(o=Array.isArray(t.map)?Number(t.map[1])+1:NaN),DUe(e,t,o,i)}return ao(e,t,i)}function AGe(e){return e.replace(/^\r?\n/,"").replace(/\r?\n$/,"")}const vV=new Map;function D$(e){let t=vV.get(e);if(t)return t;const n=df(e);return t={strip:new RegExp(`[\\t ]*<\\s*\\/\\s*${n}[^>]*$`,"i"),search:new RegExp(`<\\s*${n}(?=\\s|>|/)`,"gi"),openAny:new RegExp(`<\\s*${n}(?=\\s|>|/)`,"gi"),closeAny:new RegExp(`<\\s*\\/\\s*${n}(?=\\s|>)`,"gi")},vV.set(e,t),t}function xGe(e,t){if(!e||!t)return e;const n=D$(t).strip;return e.replace(n,"")}function SGe(e,t,n){if(!e||!t)return null;const{openAny:i,closeAny:o}=D$(t.toLowerCase());let s=0,r=Math.max(0,n);for(;r$/.test(c)||s++,r=a+l+1;continue}r=a+1}return null}function _Ge(e,t,n){if(!e||!t)return null;const{search:i,openAny:o,closeAny:s}=D$(t.toLowerCase());i.lastIndex=Math.max(0,n||0);const r=i.exec(e);if(!r||r.index==null)return null;const a=r.index,l=e.slice(a),c=or(l);if(c===-1)return null;const u=a+c;if(/\/\s*>\s*$/.test(l.slice(0,c+1))){const g=u+1;return{raw:e.slice(a,g),start:a,end:g}}let d=1,f=u+1;const h=g=>(o.lastIndex=g,o.exec(e)?.index===g),m=g=>(s.lastIndex=g,s.exec(e)?.index===g);for(;f",g);if(y===-1)return null;if(d--,d===0){const v=y+1;return{raw:e.slice(a,v),start:a,end:v}}f=y+1;continue}if(h(g)){const y=or(e.slice(g));if(y===-1)return null;d++,f=g+y+1;continue}f=g+1}return{raw:e.slice(a),start:a,end:e.length}}function lE(e){return Number.isFinite(e)&&e>0?e:0}function IGe(e,t){const n=lE(t);if(!e||n<=0)return 0;let i=0;for(let o=0;o\s*$/.test(v),w=y===-1?null:SGe(g,l,y+1),C=w?.start??-1;let x="";y!==-1&&(C!==-1&&y]+)))?/g;let _;for(;(_=M.exec(v))!==null;){const L=_[1];if(!L||L.toLowerCase()===l)continue;const P=_[2]||_[3]||_[4]||"";S.push([L,P])}const T=!n?.final&&!k&&w==null,E={type:l,tag:l,content:AGe(x),raw:String(m?.raw??r.raw??g),loading:T,attrs:S.length?S:void 0};return s&&(m?E.sourceMap=s3(u,m.start,m.end,n):ao(E,o,n)),[E,t+1]}return s&&ao(r,o,n),[r,t+1]}case"table_open":{const[r,a]=bGe(e,t,n,i);return s&&ao(r,o,n),[r,a]}case"dl_open":{const[r,a]=hGe(e,t,n,i);return s&&ao(r,o,n),[r,a]}case"footnote_open":{const[r,a]=pGe(e,t,n,i);return s&&ao(r,o,n),[r,a]}case"hr":{const r=kGe();return s&&ao(r,o,n),[r,t+1]}}return null}function N$(e,t,n,i,o){const s=DC(e,t,n,o);if(s)return s;const r=e[t],a=n?.includeSourceMap===!0;switch(r.type){case"container_warning_open":case"container_info_open":case"container_note_open":case"container_tip_open":case"container_danger_open":case"container_caution_open":case"container_error_open":if(i?.parseContainer){const l=i.parseContainer(e,t,n,o);return a&&XS(l[0],r,e[l[1]-1],n),l}break;case"container_open":if(i?.matchAdmonition){const l=i.matchAdmonition(e,t,n,o);if(l)return a&&XS(l[0],r,e[l[1]-1],n),l}break;case"vmr_container_open":{const l=CGe(e,t,n,o);return a&&XS(l[0],r,e[l[1]-1],n),l}}return null}function TGe(){return{type:"hardbreak",raw:`\\ +`}}function MGe(e,t,n,i){const o=e[t+1],s=String(o.content??"");return{type:"paragraph",children:i(o.children||[],s,void 0,n),raw:s}}function $d(e,t,n){const i=t?.map,o=n.sourceMarkdown,s=n.runtime;if(!Array.isArray(i)||i.length<2||typeof o!="string"||!s)return;const r=Number(i[0]),a=Number(i[1]);if(!Number.isFinite(r)||!Number.isFinite(a))return;let l=n.sourceLineOffsets;if(!l){l=[0];for(let c=0;c":""}function kV(e){return{type:"paragraph",children:e,raw:e.map(LGe).join("")}}function wV(e,t){if(t.sourceMap)for(const n of e)n.sourceMap||(n.sourceMap=t.sourceMap)}function CV(e,t){if(e.type!=="paragraph")return null;const n=e.children,i=Array.isArray(n)?n:[];if(i.length===0)return null;const o=EGe(t);if(!o?.size)return null;let s=-1;for(let u=0;uh?.type==="hardbreak")){s=u;break}}if(s===-1)return null;const r=i.slice(0,s),a=i[s];if(!a)return null;const l=[];r.length&&l.push(kV(r)),l.push(a);const c=i.slice(s+1);return c.length&&l.push(kV(c)),l}function AV(e,t,n){if(!e||!Array.isArray(e))return[];const i=[],o=[],s=Ap(t),r=t?.includeSourceMap===!0;let a=0;for(;ah.type==="html_block")){if(r)for(const h of f)ao(h,c,t);for(const h of f)$d(h,c,t);i.push(...f)}else{const h={type:"paragraph",raw:d,children:f};r&&ao(h,c,t);const m=CV(h,t);if(m){r&&wV(m,h);for(const g of m)$d(g,c,t);i.push(...m)}else $d(h,c,t),i.push(h)}s.remember(d)}a+=1;break;default:a+=1;break}const u=s.snapshot();for(;o.lengthn.source.length&&e.sourceExtends(n.source,t)){const o=n.offsets;for(let s=n.source.length;s{const a=Number.isFinite(r)?Math.max(0,Math.trunc(r)):0;if(a[\t ]*)(\r?\n)(?![\t ]*\r?\n|$)`,"gim"),q5.size>=64&&q5.clear(),q5.set(e,t)),t}function NGe(e){const t=r=>r===" "||r===" "||r===` +`||r==="\r",n=r=>{if(!r||r[0]!=="<"||r.includes(">"))return!1;let a=1;if(a{const g=m.charCodeAt(0);return g>=65&&g<=90||g>=97&&g<=122},c=m=>{const g=m.charCodeAt(0);return g>=48&&g<=57},u=m=>m==="!"||l(m),d=m=>l(m)||c(m)||m===":"||m==="-",f=m=>l(m)||c(m)||m==="_"||m==="."||m===":"||m==="-",h=f;if(a>=r.length||!u(r[a]))return!1;for(a++;a=r.length)return!0;if(r[a]==="/"){for(a++;a=r.length}if(!f(r[a]))return!1;for(a++;a=r.length)return!0;const m=r[a];if(m==='"'||m==="'"){for(a++;a=r.length)return!0;a++}else{for(;a"||g==='"'||g==="'"||g==="`")break;a++}if(a>=r.length)return!0}}}return!0},i=String(e??""),o=i.lastIndexOf("<");if(o===-1)return i;if(o>0){const r=i[o-1],a=r===" "||r===" "||r===` +`||r==="\r",l=i[o-2];if(!a&&!((r==="n"||r==="r")&&l==="\\"))return i}const s=i.slice(o);return s.includes(">")||s.length>1&&(s[1]===" "||s[1]===" "||s[1]===` +`||s[1]==="\r")||!n(s)||yre(i,o)?i:i.slice(0,o)}function BGe(e,t){if(!e||!t.length)return e;const n=new Set(t.map(m=>String(m??"").toLowerCase()).filter(Boolean));if(!n.size)return e;const i=m=>m===" "||m===" ",o=m=>{const g=m.charCodeAt(0);return g>=65&&g<=90||g>=97&&g<=122||g>=48&&g<=57||m==="_"||m==="-"||m===":"},s=m=>{if(!m)return!1;if(m[0]===" ")return!0;let g=0;for(let y=0;y=4)return!0;continue}if(v===" ")return!0;break}return!1},r=m=>{let g=!1,y=!1;for(let v=0;v")return v}return-1},a=m=>{let g=0;for(;g{if(s(m))return-1;const y=m.replace(/^[ \t]+/,"");if(!y||y.startsWith(">")||y.startsWith("|")||/^(?:[*+-]|\d+[.)])[\t ]+/.test(y))return-1;let v=!1,k=0;for(;k=x.length){v=!0,k++;continue}const M=x[S];if(M==="!"||M==="?"){v=!0,k+=C+1;continue}if(M==="/"){v=!0,k+=C+1;continue}const _=S;for(;S"&&E!=="/"){v=!0,k++;continue}const L=new RegExp(String.raw`<\s*\/\s*${T}\s*>`,"i"),P=/\/\s*>$/.test(x),N=L.test(m.slice(k+C+1)),U=L.test(e.slice(g+k+C+1)),F=/[\r\n]/.test(e.slice(g+k+C+1));if(v&&n.has(T)&&!P&&!N&&(U||F))return k;v=!0,k+=C+1}return-1};let c=!1,u="",d=0,f="",h=0;for(;hh&&e[m-1]==="\r",v=g?y?m-1:m:e.length,k=e.slice(h,v),w=g?y?`\r +`:` +`:"",C=a(k);let x=k;if(!c&&!C){const S=l(k,h);if(S!==-1){const M=w||` +`;x=`${k.slice(0,S).replace(/[ \t]+$/,"")}${M}${M}${k.slice(S).replace(/^[ \t]+/,"")}`}}f+=x,f+=w,C&&(c?C.markerChar===u&&C.markerLen>=d&&/^\s*$/.test(C.rest)&&(c=!1,u="",d=0):(c=!0,u=C.markerChar,d=C.markerLen)),h=g?m+1:e.length}return f}function zGe(e,t){if(!e||!t.length)return e;const n=new Set(t.map(d=>String(d??"").toLowerCase()));if(!n.size)return e;const i=d=>d===" "||d===" ",o=d=>{const f=d.charCodeAt(0);return f>=65&&f<=90||f>=97&&f<=122||f>=48&&f<=57||d==="_"||d==="-"},s=d=>{let f=0;for(;f{let f=!1,h=!1;for(let m=0;m")return m}return-1},a=(d,f,h)=>{const m=h.toLowerCase();let g=d.indexOf("<",f);for(;g!==-1;){let y=g+1;for(;y=d.length||d[y]!=="/"){g=d.indexOf("<",g+1);continue}for(y++;yd.length){g=d.indexOf("<",g+1);continue}let v=!0;for(let w=0;w="A"&&C<="Z"?String.fromCharCode(C.charCodeAt(0)+32):C)!==m[w]){v=!1;break}}if(!v){g=d.indexOf("<",g+1);continue}let k=y+m.length;if(k")return!0;g=d.indexOf("<",g+1)}return!1},l=d=>{let f=0;for(;f=d.length||d[f]!=="<")return d;for(f++;f=d.length||d[f]==="/")return d;const h=f;for(;fu&&e[d-1]==="\r",h=f?d-1:d,m=e.slice(u,h);c+=l(m),c+=f?`\r +`:` +`,u=d+1}return c}function HGe(e,t){if(!e||!t.length)return e;const n=new Set(t.map(f=>String(f??"").toLowerCase()));if(!n.size)return e;const i=f=>f===" "||f===" ",o=f=>{let h=0,m=!1,g=0;for(;h=f.length||f[h]!==">")break;for(m=!0,h++;h{let h=0;for(;hnew RegExp(String.raw`(<\s*\/\s*${f}\s*>)${"(?=[\\t ]*(?:#{1,6}[\\t ]+|>|(?:[*+-]|\\d+[.)])[\\t ]+|(?:`{3,}|~{3,})|\\||\\$\\$|:{3,}|\\[\\^[^\\]]+\\]:|(?:-{3,}|\\*{3,}|_{3,})))"}`,"gi"));let a=!1,l="",c=0,u="",d=0;for(;dd&&e[f-1]==="\r",g=h?m?f-1:f:e.length,y=e.slice(d,g),v=h?m?`\r +`:` +`:"",k=o(y),w=k?.prefix??"",C=k?.content??y,x=s(C);x&&(a?x.markerChar===l&&x.markerLen>=c&&/^\s*$/.test(x.rest)&&(a=!1,l="",c=0):(a=!0,l=x.markerChar,c=x.markerLen));let S=C;if(!a&&S.includes("{if(L.replace(/^[\t ]+/,"").startsWith("|"))return _;const P=L.slice(0,E).replace(/^[\t ]+/,"");if(P.length>0){const N=T.match(/^<\s*\/\s*([A-Z][\w:-]*)/i)?.[1]?.toLowerCase()??"",U=P.match(/^<\s*([A-Z][\w:-]*)/i)?.[1]?.toLowerCase()??"";if(!N||!U||N!==U)return _}return`${T} + +`});if(w){const M=w+S.split(` +`).join(` +${w}`);u+=M}else u+=S;u+=v,d=h?f+1:e.length}return u}function jGe(e,t){if(!e||!t.length)return e;const n=new Set(t.map(P=>String(P??"").toLowerCase()));if(!n.size)return e;const i=P=>P===" "||P===" ",o=P=>{if(!P)return!1;if(P[0]===" ")return!0;let N=0;for(let U=0;U=4)return!0;continue}if(F===" ")return!0;break}return!1},s=P=>{const N=P.charCodeAt(0);return N>=65&&N<=90||N>=97&&N<=122||N>=48&&N<=57||P==="_"||P==="-"||P===":"},r=P=>{let N=0;for(;N{let N=0,U=!1,F=0;for(;N=P.length||P[N]!==">")break;for(U=!0,N++;Nr(P).startsWith("<"),c=P=>{for(let N=0;N{if(o(P))return"";const N=r(P);if(!N.startsWith("<"))return"";let U=1;for(;U=N.length||N[U]==="/"||N[U]==="!"||N[U]==="?")return"";const F=U;for(;U"&&W!=="/"?"":B},d=P=>{if(o(P))return null;const N=r(P);if(!N.startsWith("<"))return null;let U=1;for(;U=N.length)return null;const F=N[U]==="/";if(F)for(U++;U"&&z!=="/")return null;if(F)return{type:"close",name:D};if(/\/\s*>\s*$/.test(N))return{type:"open",name:D,complete:!0};const $=N.indexOf(">",U);if($!==-1){const j=N.slice($+1);if(new RegExp(`<\\s*\\/\\s*${D}\\s*>`,"i").test(j))return{type:"open",name:D,complete:!0}}return{type:"open",name:D,complete:!1}},f=P=>{if(o(P))return null;const N=r(P).replace(/[ \t]+$/,"");if(!N.startsWith("<")||/^<\s*(?:!--|!doctype\b|\?)/i.test(N))return null;const U=N.match(/^<\s*([A-Z][\w:-]*)\b[^>]*\/\s*>\s*$/i);if(U?.[1])return U[1].toLowerCase();const F=N.match(/^<\s*([A-Z][\w:-]*)\b[^>]*>[\s\S]*<\s*\/\s*([A-Z][\w:-]*)\s*>\s*$/i);if(!F?.[1]||!F[2])return null;const B=F[1].toLowerCase();return B===F[2].toLowerCase()?B:null};let h=!1,m="",g=0;const y=P=>{let N=0;for(;Ny(P),k=P=>{const N=r(P);return N?o(P)?!0:/^(?:#{1,6}[ \t]+|>|[*+-][ \t]+|\d+[.)][ \t]+|`{3,}|~{3,}|\||\$\$|:{3,}|\[\^[^\]]+\]:|-{3,}|\*{3,}|_{3,})/.test(N):!1},w=(P,N,U)=>{let F=P,B=0;for(;FF&&e[W-1]==="\r",$=D?z?W-1:W:e.length,j=e.slice(F,$),G=a(j),K=G?.key??"";if(B>0&&N&&K!==N)break;const te=G?.content??j,J=d(te);if(J?.name===U){if(J.type==="open")J.complete||B++;else if(B>0&&(B--,B===0))return!1}else if(B>0&&(c(te)||k(te)))return!0;if(D)F=W+1;else break}return!1};let C="",x=0,S=!0,M=!1,_=!1,T=` +`;const E=[];let L="";for(;xx&&e[P-1]==="\r",F=N?U?P-1:P:e.length,B=e.slice(x,F),W=N?U?`\r +`:` +`:"",D=a(B),z=D?.key??"",$=D?.content??B,j=v($);j&&(h?j.markerChar===m&&j.markerLen>=g&&/^\s*$/.test(j.rest)&&(h=!1,m="",g=0):(h=!0,m=j.markerChar,g=j.markerLen));const G=E.length>0;if(!h&&!G){const te=u($),J=!!te&&!S&&M&&_&&w(x,z,te);te&&!S&&(!M||J)&&(z&&L&&z===L?C+=`${z}${T}`:z||(C+=T))}if(C+=B,C+=W,W&&(T=W),!h){const te=d($);if(te){if(te.type==="open")te.complete||E.push(te.name);else for(let J=E.length-1;J>=0;J--)if(E[J]===te.name){E.length=J;break}}}const K=c($);S=K,M=!K&&l($),_=!K&&!!f($),L=z,x=N?P+1:e.length}return C}function WGe(e,t,n){let i=e;if(t?.length&&i.includes("<")){const o=Tm(t);if(o.length&&(i=BGe(i,o),i=zGe(i,o),i=jGe(i,o),i=HGe(i,o),i.includes("{o.scanTo(l+1);const c=o.inMath();return o.scanTo(l+s.length),c?`${r}\\n${a}`:s}),t||(i.endsWith("- *")&&(i=i.replace(/- \*$/,"- \\*")),/(?:^|\n)\s*-\s*$/.test(i)?i=i.replace(/(?:^|\n)\s*-\s*$/,s=>s.startsWith(` +`)?` +`:""):/(?:^|\n)\s*--\s*$/.test(i)?i=i.replace(/(?:^|\n)\s*--\s*$/,s=>s.startsWith(` +`)?` +`:""):/(?:^|\n)\s*>\s*$/.test(i)?i=i.replace(/(?:^|\n)\s*>\s*$/,s=>s.startsWith(` +`)?` +`:""):/\n\s*[*+]\s*$/.test(i)?i=i.replace(/\n\s*[*+]\s*$/,` +`):/(?:^|\n)\s*\d+\s*$/.test(i)?/^\d+$/.test(i.trim())||(i=i.replace(/(?:^|\n)\s*\d+\s*$/,s=>s.startsWith(` +`)?` +`:"")):/(?:^|\n)\s*\d+[.)]\s+\*{1,3}\s*$/.test(i)?i=i.replace(/((?:^|\n)\s*\d+[.)]\s+)(\*{1,3})\s*$/,(s,r,a)=>`${r}${a.split("").map(()=>"\\*").join("")}`):/(?:^|\n)\s*\d+[.)]\s*$/.test(i)?i=i.replace(/(?:^|\n)\s*\d+[.)]\s*$/,s=>s.startsWith(` +`)?` +`:""):/\n[[(]\n*$/.test(i)&&(i=i.replace(/(\n\[|\n\()+\n*$/g,` +`)),i=YUe(i,n.customHtmlTags)??i),i=WGe(i,n.customHtmlTags,t),i}function UGe(e,t,n,i){const o=`${n?"final":"stream"}:${(i.customHtmlTags??[]).join(",")}`,s=i.isFragment?void 0:e.safeMarkdown;let r;if(!n&&!i.customHtmlTags?.length&&s&&s.mode===o&&t.length>=s.source.length&&e.sourceExtends(s.source,t)){const a=Math.max(0,s.source.length-qGe-VGe),l=e_(t.slice(a),n,i),c=s.source.length-a;r=l.length>=c&&l.slice(0,c)===s.safeMarkdown.slice(-c)?s.safeMarkdown.slice(0,s.safeMarkdown.length-c)+l:e_(t,n,i)}else r=e_(t,n,i);return n||(r=JUe(r,e,!i.isFragment)),i.isFragment||(e.safeMarkdown={source:t,safeMarkdown:r,mode:o}),r}function Bf(){return typeof performance<"u"?performance.now():Date.now()}function b1(e,t,n){e&&(e[t]=(e[t]??0)+n)}function KGe(e){return e.parserMetrics}function Zre(e,t,n){return t&&b1(t,"parseMarkdownToStructureTotalMs",Bf()-n),e}function IV(e,t,n,i){return Zre(qre(e,t),n,i)}function TV(e,t,n){if(!n)return AV(e,t,aE);b1(n,"processTokensInputTokens",e.length);const i=Bf(),o=AV(e,t,aE);return b1(n,"processTokensMs",Bf()-i),o}function ZGe(e,t){const n=e,i=typeof n.validateLink=="function"&&n.__markstreamOriginalValidateLink&&n.validateLink!==n.__markstreamOriginalValidateLink?n.validateLink:void 0;return t.validateLink??i??n.options?.validateLink??(typeof n.validateLink=="function"?n.validateLink:void 0)}function Gre(e,t){const n=t.runtime,i=t.markdownIt,o={...t,customHtmlBlockCursor:0,sourceLineOffsets:void 0},s=KGe(o),r=s?{recordTokenCloneMs:x=>b1(s,"tokenCloneMs",x)}:void 0,a=s?Bf():0,l=!!o.final,c=(e??"").toString();o.isFragment||sKe(n,o);const u=UGe(n,c,l,o);s&&b1(s,"safeMarkdownMs",Bf()-a);const d=SUe(u);if(d){if(o.includeSourceMap){const M={...o,sourceLineMapper:_V(c,u)};d[0].sourceMap=s3(u,0,u.length,M)}const x=o.preTransformTokens,S=o.postTransformTokens;if(R$(n,o)||typeof x=="function"||typeof S=="function"){const M=oV(n,u,{__markstreamFinal:l},o,r),_=typeof x=="function"&&x(M)||M;typeof S=="function"&&S(_)}return IV(d,o,s,a)}const f=s?Bf():0,h=oV(n,u,{__markstreamFinal:l},o,r);if(s&&b1(s,"tokenizeMs",Bf()-f),!h||!Array.isArray(h))return IV([],o,s,a);const m=o.preTransformTokens,g=o.postTransformTokens;let y=h;m&&typeof m=="function"&&(y=m(y)||y);const v={...o,sourceLineMapper:o.includeSourceMap===!0?_V(c,u):void 0,sourceMarkdown:u,sourceLineOffsets:o.isFragment?Kre(u):RGe(n,u),customHtmlBlockCursor:0};let k=bKe(n,u,y,v,{processTokens:(x,S)=>TV(x,S,s),recordReusedTopLevelNodes:x=>b1(s,"processTokensReusedTopLevelNodes",x)});if(g&&typeof g=="function"){const x=g(y);if(Array.isArray(x)){const S=x[0],M=S?.type;S&&typeof M=="string"?k=TV(x,{...v,customHtmlBlockCursor:0},s):k=x}}const w=n.structuredReuseTailStart,C=w&&w>0&&wyV(B,n),markdownIt:i,parseFragment:(B,W)=>Gre(B,W)},M=C>0&&n.htmlPassIdentityPreserving,_=M?yV(k[C],n)?.start:void 0;let T=!1;for(let B=M?C:0;BB===P[W]);T&&(U=Cre(U,u,S,v,l,N)[0]),U=TKe(U,S,v,l),k=E?L.concat(U):U,n.htmlPassIdentityPreserving=!T&&F,s&&b1(s,"htmlBlockPassesMs",Bf()-x)}else n.htmlPassIdentityPreserving=!0;return l&&nGe(k),k=qre(k,o),o.debug&&console.log("Parsed Markdown Tree Structure:",k),Zre(k,s,a)}function GGe(e,t,n={}){const i=(e??"").toString(),o=FGe(t),s=ZGe(t,n),r=b$(n,{markdownIt:t,runtime:o,validateLink:s}),a=t;o.beginRootParse(i,{customHtmlTags:(n.customHtmlTags??[]).join("\0"),hasCustomParserExtensions:a.__markstreamHasCustomParserExtensions===!0,includeSourceMap:n.includeSourceMap===!0,postTransformNodes:n.postTransformNodes,postTransformTokens:n.postTransformTokens,preTransformTokens:n.preTransformTokens,requireClosingStrong:n.requireClosingStrong,reuseStableTopLevelNodes:n.reuseStableTopLevelNodes===!0,streamParse:n.streamParse,validateLink:s});try{return Gre(i,r)}finally{o.finishRootParse(n.final===!0)}}const QGe=/\\([ \\!"#$%&'()*+,./:;<=>?@[\]^_`{|}~-])/g,q4=/\d/u,YGe=/[,.!?;:,。;、!?:]/u,JGe=/\d\p{Script=Han}{1,3}$/u;function XGe(e){return e.pos>0&&e.pos+1{const c=a,u=c.posMax,d=c.pos;if(c.src.charCodeAt(d)!==r||l||s.refuseDigitRange&&XGe(c))return!1;c.pos=d+1;let f=!1;for(;c.pos]|$)/i,iQe=new Set([...sb,"base","button","datalist","dialog","embed","fieldset","form","iframe","input","legend","link","meta","object","optgroup","option","output","param","select","style","template","textarea","title"]),oQe=new Set(["a","abbr","b","blockquote","br","caption","code","col","colgroup","dd","details","div","dl","dt","em","h1","h2","h3","h4","h5","h6","hr","i","img","ins","kbd","li","mark","ol","p","picture","pre","s","small","source","span","strong","sub","summary","sup","table","tbody","td","tfoot","th","thead","tr","ul"]);function MV(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function sQe(e){return typeof e=="string"?e:e==null?"":String(e)}function Qre(e){return/^[^\s"'<>`=]+$/.test(e)&&!/^on/i.test(e)}function k1(e){return sQe(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Yre(e){return k1(e).replace(/`/g,"`")}function NC(e){return String(e??"").trim().toLowerCase()}function B$(e,t="safe"){const n=NC(e);return n?t==="escape"?!0:t==="trusted"?sb.has(n):!oQe.has(n):!1}function Jre(e,t="safe"){const n=NC(e);return n?t==="escape"?!0:t==="trusted"?sb.has(n):iQe.has(n):!1}function EV(e){const t=Object.entries(e);return t.length===0?"":t.map(([n,i])=>i===""?` ${n}`:` ${n}="${Yre(i)}"`).join("")}function Xre(e){const t=e.startsWith("/"),n=t?e.slice(1):e,i=n.match(nQe);return i?{attrsStr:t?"":n.slice(i[0].length).trimStart(),isClosing:t,isSelfClosing:!t&&e.trimEnd().endsWith("/"),tagName:i[1]}:null}function rQe(e,t){const n=e.split(",").map(i=>i.trim()).filter(Boolean);return n.length===0?!1:n.some(i=>{const o=i.split(/\s+/,1)[0]??"";return!o||Q0(o,{tagName:t,attrName:"srcset"})})}function eae(e,t,n,i){return XWe.has(e)||n==="safe"&&e==="style"?!0:e==="srcset"?rQe(t,i):!!(eqe.has(e)&&t&&Q0(t,{tagName:i,attrName:e}))}function y0(e,t){const n=t.toLowerCase();return Object.keys(e).find(i=>i.toLowerCase()===n)}function tae(e,t,n,i=!1){if(t!=="safe"||NC(n)!=="a")return e;const o=y0(e,"href");if(i&&(!o||!e[o])){const l=y0(e,"target"),c=y0(e,"rel");return l&&delete e[l],c&&delete e[c],e}const s=y0(e,"target");if((s?String(e[s]).trim():"").toLowerCase()!=="_blank")return e;const r=y0(e,"rel"),a=new Set(String(r?e[r]:"").split(/\s+/).map(l=>l.trim()).filter(Boolean).filter(l=>l.toLowerCase()!=="opener"));return a.add("noopener"),a.add("noreferrer"),r&&r!=="rel"&&delete e[r],e.rel=Array.from(a).join(" "),e}function LV(e,t="safe",n){const i={};for(const[o,s]of Object.entries(e)){const r=o.trim(),a=r.toLowerCase();!r||!Qre(r)||eae(a,s,t,n)||(i[r]=s)}return tae(i,t,n,!!y0(e,"href"))}function aQe(e,t){const n=e.toLowerCase();return Fse.has(n)?!1:MV(t,n)||MV(t,e)}function z$(e,t="safe",n){const i={};for(const[o,s]of Object.entries(e)){const r=o.trim(),a=r.toLowerCase();!r||!Qre(r)||eae(a,s,t,n)||(i[r]=s)}return tae(i,t,n,!!y0(e,"href"))}function V4(e){const t={};if(!Array.isArray(e)||e.length===0)return t;for(const[n,i]of e)n&&(t[String(n)]=i==null?"":String(i));return t}function dk(e,t="safe",n){const i=z$(V4(e),t,n),o=Object.entries(i).map(([s,r])=>[s,r]);return o.length>0?o:void 0}function lQe(e,t){const n=t.toLowerCase();if(["checked","disabled","readonly","required","autofocus","multiple","hidden"].includes(n))return e==="true"||e===""||e===t;if(["value","min","max","step","width","height","size","maxlength"].includes(n)){const i=Number(e);if(e!==""&&!Number.isNaN(i))return i}return e}function cQe(e){const t={};for(const[n,i]of Object.entries(e))t[n]=lQe(i,n);return t}function t_(e){return e.trim().length>0}function uQe(e){const t=[];let n=0;for(;n",n);if(r!==-1){n=r+3;continue}break}const i=e.indexOf("<",n);if(i===-1){if(nn){const r=e.slice(n,i);t_(r)&&t.push({type:"text",content:r})}if(e.startsWith("![CDATA[",i+1)){const r=e.indexOf("]]>",i);if(r!==-1){t.push({type:"text",content:e.slice(i,r+3)}),n=r+3;continue}break}if(e.startsWith("!",i+1)){const r=e.indexOf(">",i);if(r!==-1){n=r+1;continue}break}const o=e.indexOf(">",i);if(o===-1)break;const s=Xre(e.slice(i+1,o));if(!s){const r=e.slice(i,o+1);t_(r)&&t.push({type:"text",content:r}),n=o+1;continue}if(s.isClosing)t.push({type:"tag_close",tagName:s.tagName});else{const r={};if(s.attrsStr){const a=/([^\s=]+)(?:=(?:"([^"]*)"|'([^']*)'|(\S*)))?/g;let l;for(;(l=a.exec(s.attrsStr))!==null;){const c=l[1],u=l[2]??l[3]??l[4]??"";c&&!c.endsWith("/")&&(r[c]=u)}}t.push({type:s.isSelfClosing||sp.has(s.tagName.toLowerCase())?"self_closing":"tag_open",tagName:s.tagName,attrs:r})}n=o+1}return t}function dQe(e){const t=[];let n=0;for(;n",n);if(a!==-1){n=a+3;continue}break}const i=e.indexOf("<",n);if(i===-1){nn&&t.push({type:"text",content:e.slice(n,i)}),e.startsWith("![CDATA[",i+1)){const a=e.indexOf("]]>",i);if(a!==-1){t.push({type:"text",content:e.slice(i,a+3)}),n=a+3;continue}break}if(e.startsWith("!",i+1)){const a=e.indexOf(">",i);if(a!==-1){n=a+1;continue}break}const o=e.indexOf(">",i);if(o===-1)break;const s=Xre(e.slice(i+1,o));if(!s){t.push({type:"text",content:e.slice(i,o+1)}),n=o+1;continue}if(s.isClosing){t.push({type:"tag_close",tagName:s.tagName}),n=o+1;continue}const r={};if(s.attrsStr){const a=/([^\s=]+)(?:=(?:"([^"]*)"|'([^']*)'|(\S*)))?/g;let l;for(;(l=a.exec(s.attrsStr))!==null;){const c=l[1],u=l[2]??l[3]??l[4]??"";c&&!c.endsWith("/")&&(r[c]=u)}}t.push({type:s.isSelfClosing||sp.has(s.tagName.toLowerCase())?"self_closing":"tag_open",tagName:s.tagName,attrs:r}),n=o+1}return t}function fQe(e){const t=String(e.tagName??"").trim();if(!t)return"";if(e.type==="tag_close")return`</${k1(t)}>`;const n=Object.entries(e.attrs??{}).map(([i,o])=>o===""?` ${k1(i)}`:` ${k1(i)}="${Yre(o)}"`).join("");return e.type==="self_closing"?`<${k1(t)}${n} />`:`<${k1(t)}${n}>`}function Mw(e,t="safe"){if(!e)return"";if(t==="escape")return k1(e);const n=dQe(e),i=[],o=[],s=[];for(const r of n){if(r.type==="text"){s.length===0&&o.push(k1(r.content??""));continue}const a=NC(r.tagName);if(!a)continue;if(Jre(a,t)){r.type==="tag_open"?s.push(a):r.type==="tag_close"&&s[s.length-1]===a&&s.pop();continue}if(s.length>0)continue;if(t==="safe"&&B$(a,t)){o.push(fQe(r));continue}if(r.type==="self_closing"){o.push(`<${a}${EV(LV(r.attrs??{},t,a))}>`);continue}if(r.type==="tag_open"){o.push(`<${a}${EV(LV(r.attrs??{},t,a))}>`),sp.has(a)||i.push(a);continue}const l=i.lastIndexOf(a);if(l===-1)continue;for(;i.length>l+1;){const u=i.pop();u&&o.push(``)}const c=i.pop();c&&o.push(``)}for(;i.length>0;){const r=i.pop();r&&o.push(``)}return o.join("")}const hQe=[/javascript:/i,/vbscript:/i,/data:text\/html/i,/expression\s*\(/i,/@import/i],RV="http://www.w3.org/2000/svg",pQe=new Set(["script","style","iframe","object","embed","link","meta"]),mQe=new Set(["svg","style","g","a","defs","marker","path","rect","circle","ellipse","line","polyline","polygon","text","tspan","title","desc","use","image","lineargradient","radialgradient","stop","clippath","mask","pattern"]),gQe=new Set(["href","xlink:href","src","srcdoc","action","data","formaction","poster"]),vQe=new Set(["clip-path","fill","filter","marker-end","marker-mid","marker-start","mask","stroke"]),yQe=new Set(["circle","ellipse","image","line","path","polygon","polyline","rect","text","tspan","use"]);function bQe(e){return(e.getAttribute("href")||e.getAttribute("xlink:href"))?.startsWith("#")===!0}function kQe(e){return!!(e.getAttribute("href")||e.getAttribute("xlink:href")||e.getAttribute("src"))}function wQe(e){const t=e.nodeName.toLowerCase();return t==="use"?bQe(e):t==="image"?kQe(e):t==="text"||t==="tspan"?!!e.textContent?.trim():yQe.has(t)}function CQe(e){return e.replace(/(["'])\s*javascript:/gi,"$1#").replace(/\bjavascript:/gi,"#").replace(/(["'])\s*vbscript:/gi,"$1#").replace(/\bvbscript:/gi,"#").replace(/\bdata:text\/html/gi,"#")}function AQe(e,t,n){const i=e.toLowerCase(),o=t.toLowerCase(),s=String(n??"").trim();return s?(i==="use"||i==="marker"||i==="clippath"||i==="mask")&&(o==="href"||o==="xlink:href")?s.startsWith("#")?s:"":i==="a"&&(o==="href"||o==="xlink:href")?Q0(s,{tagName:"a",attrName:"href"})?"":s:i==="image"&&(o==="href"||o==="xlink:href"||o==="src")?Q0(s,{tagName:"img",attrName:"src"})?"":s:o==="href"||o==="xlink:href"?s.startsWith("#")?s:"":Q0(s,{tagName:i,attrName:o})?"":s:""}function xQe(e,t){let n=t+4;for(;n{const i=n.trim();if(/^[0-9a-f]+$/i.test(i)){const o=Number.parseInt(i,16);try{return Number.isFinite(o)?String.fromCodePoint(o):""}catch{return""}}return String(n).trim()})}function iae(e){const t=nae(e),n=t.toLowerCase();let i=0;for(;in.test(t))||iae(t)}function SQe(e){if(e.tagName.toLowerCase()!=="a"||e.getAttribute("target")?.trim().toLowerCase()!=="_blank")return;const t=new Set(String(e.getAttribute("rel")??"").split(/\s+/).map(n=>n.trim()).filter(Boolean).filter(n=>n.toLowerCase()!=="opener"));t.add("noopener"),t.add("noreferrer"),e.setAttribute("rel",Array.from(t).join(" "))}function V5(e){const t=Number.parseFloat(String(e??""));return Number.isFinite(t)?t:0}function oae(e,t){if(e.nodeType===Node.TEXT_NODE){const o=e.textContent??"";o&&t.push(o);return}if(e.nodeType!==Node.ELEMENT_NODE)return;const n=e,i=n.tagName.toLowerCase();if(!pQe.has(i)){if(i==="br"){t.push(` +`);return}for(const o of Array.from(n.childNodes))oae(o,t)}}function _Qe(e){for(const t of Array.from(e.querySelectorAll("foreignObject"))){const n=[];oae(t,n);const i=n.join("").split(/\r?\n/).map(u=>u.trim()).filter(Boolean);if(!i.length){t.remove();continue}const o=V5(t.getAttribute("width")),s=V5(t.getAttribute("height")),r=V5(t.getAttribute("x")),a=V5(t.getAttribute("y")),l=e.ownerDocument.createElementNS(RV,"text");l.setAttribute("x",String(r+o/2)),l.setAttribute("y",String(a+s/2)),l.setAttribute("text-anchor","middle"),l.setAttribute("dominant-baseline","central");const c=t.querySelector(".nodeLabel");if(c?.getAttribute("class")&&l.setAttribute("class",c.getAttribute("class")),i.length===1)l.textContent=i[0];else{const u=-.6*(i.length-1);for(const[d,f]of i.entries()){const h=e.ownerDocument.createElementNS(RV,"tspan");h.setAttribute("x",String(r+o/2)),h.setAttribute("dy",d===0?`${u}em`:"1.2em"),h.textContent=f,l.appendChild(h)}}t.parentNode?.replaceChild(l,t)}}function IQe(e){_Qe(e);const t=[e,...Array.from(e.querySelectorAll("*"))];for(const n of t){const i=n.tagName.toLowerCase();if(!mQe.has(i)){n.remove();continue}if(i==="style"&&PV(n.textContent??"")){n.remove();continue}const o=Array.from(n.attributes);for(const s of o){const r=s.name.toLowerCase();if(/^on/i.test(r)){n.removeAttribute(s.name);continue}if(r==="style"&&s.value&&PV(s.value)){n.removeAttribute(s.name);continue}if(r==="srcdoc"){n.removeAttribute(s.name);continue}if(gQe.has(r)&&s.value){const a=AQe(i,r,s.value);if(!a){n.removeAttribute(s.name);continue}a!==s.value&&n.setAttribute(s.name,a);continue}if(vQe.has(r)&&s.value&&iae(s.value)){n.removeAttribute(s.name);continue}if(s.value){const a=CQe(s.value);a!==s.value&&n.setAttribute(s.name,a)}}SQe(n)}}function Ysn(e){if(typeof DOMParser>"u"||!e)return null;try{const t=new DOMParser().parseFromString(e,"image/svg+xml").documentElement;if(!t||t.nodeName.toLowerCase()!=="svg")return null;const n=t;return IQe(n),TQe(n)?null:n}catch{return null}}function TQe(e){const t=e.getAttribute("viewBox");if(t){const o=t.trim().split(/[\s,]+/);if(o.length===4){const s=Number.parseFloat(o[2]||""),r=Number.parseFloat(o[3]||"");if(!Number.isFinite(s)||!Number.isFinite(r)||s<=0||r<=0)return!0}}const n=[e,...Array.from(e.querySelectorAll("*"))];let i=!1;for(const o of n){wQe(o)&&(i=!0);for(const s of Array.from(o.attributes))if(/\bNaN\b/i.test(s.value)||s.name==="style"&&/max-width:\s*0(?:px)?/i.test(s.value))return!0}return!i}const U5=[];function n_(e){return String(e??"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function MQe(e){return(String(e||"text").trim().split(/\s+/)[0]||"text").replace(/[^\w+.#:-]/g,"-").replace(/-+/g,"-")||"text"}function EQe(e){return e.replace(/[^\w:.+-]/g,"-").replace(/-+/g,"-")}function Ew(e=`editor-${Date.now()}`,t={}){const n=bUe(t),i=n;i.__markstreamRegisteredPluginCount=U5.length,i.__markstreamHasCustomParserExtensions=!!(t.plugin?.length||t.apply?.length||U5.length);const o={"common.copy":"Copy"};let s;if(typeof t.i18n=="function")s=t.i18n;else if(t.i18n&&typeof t.i18n=="object"){const h=t.i18n;s=m=>h[m]??o[m]??m}else s=h=>o[h]??h;if(Array.isArray(t.plugin))for(const h of t.plugin){const m=h;if(Array.isArray(m)){const[g,...y]=m;typeof g=="function"&&n.use(g,...y)}else typeof m=="function"&&n.use(m)}if(Array.isArray(t.apply))for(const h of t.apply)try{h(n)}catch(m){console.error("[getMarkdown] apply function threw an error",m)}if(U5.length)for(const h of U5)if(Array.isArray(h)){const[m,...g]=h;typeof m=="function"&&n.use(m,...g)}else typeof h=="function"&&n.use(h);n.use(tQe),n.use(aBe),n.use(oBe);const r=cBe,a=r.default??r;n.use(a),n.use(iBe),n.use(nBe),n.core.ruler.after("block","mark_fence_closed",h=>{const m=h,g=m.src,y=!!m.env?.__markstreamFinal;let v;for(const k of m.tokens){if(k.type!=="fence"||!k.map||!k.markup)continue;const w=k.map[0],C=k.map[1],x=k.markup,S=x[0],M=x.length,_=Math.max(0,C-1);v??=g.split(/\r?\n/);const T=v[_]??"";let E=0;for(;Ew+1&&L>=M&&P===T.length,U=k;U.meta=U.meta??{},U.meta.unclosed=!N,U.meta.closed=!!N}}),n.renderer.rules.fence=(h,m)=>{const g=h[m],y=String(g.info??"").trim(),v=String(g.content??""),k=btoa(unescape(encodeURIComponent(v))),w=MQe(y),C=n_(w),x=EQe(`editor-${e}-${m}-${w}`),S=n_(s("common.copy"));return`
        +
        + ${n_(w.toUpperCase())} + +
        +
        +
        `};const l=/^\[(\d+)\]/,c=/^\[([^\]\n]+)\]/,u=h=>{if(!h.startsWith("["))return!1;const m=c.exec(h);if(!m)return h!=="["&&!/^\[\d+$/.test(h);const g=String(m[1]??"");return h.slice(m[0].length).startsWith("(")?!1:!/^\d+$/.test(g)},d=(h,m)=>{const g=h;if(g.src[g.pos]!=="[")return!1;const y=l.exec(g.src.slice(g.pos));if(!y)return!1;const v=g.src.slice(Math.max(0,g.pos-120),g.pos);if(/"[^"\n]{1,80}"\s*:\s*$/.test(v))return!1;const k=g.src.slice(g.pos+y[0].length);if(k.startsWith("](")||k.startsWith("(")||u(k))return!1;if(!m){const w=y[1],C=g.push("reference","span",0);C.content=w,C.markup=y[0],C.raw=y[0]}return g.pos+=y[0].length,!0};n.inline.ruler.before("escape","reference",d),n.renderer.rules.reference=(h,m)=>{const y=String(h[m].content??"");return`${y}`};const f=n.use.bind(n);return n.use=((...h)=>(i.__markstreamHasCustomParserExtensions=!0,f(...h))),n}const LQe="modulepreload",RQe=function(e){return"/"+e},$V={},pn=function(t,n,i){let o=Promise.resolve();if(n&&n.length>0){let r=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),l=a?.nonce||a?.getAttribute("nonce");o=r(n.map(c=>{if(c=RQe(c),c in $V)return;$V[c]=!0;const u=c.endsWith(".css"),d=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${d}`))return;const f=document.createElement("link");if(f.rel=u?"stylesheet":LQe,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((h,m)=>{f.addEventListener("load",h),f.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${c}`)))})}))}function s(r){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=r,window.dispatchEvent(a),!a.defaultPrevented)throw r}return o.then(r=>{for(const a of r||[])a.status==="rejected"&&s(a.reason);return t().catch(s)})};var PQe=(e,t,n)=>new Promise((i,o)=>{var s=l=>{try{a(n.next(l))}catch(c){o(c)}},r=l=>{try{a(n.throw(l))}catch(c){o(c)}},a=l=>l.done?i(l.value):Promise.resolve(l.value).then(s,r);a((n=n.apply(e,t)).next())});const cE=Symbol.for("markstream-vue:node-lifecycle"),OV='',FV='',$Qe={id:"material",core:{"":FV,plain:'',text:FV,javascript:'',typescript:'',jsx:'',tsx:'',html:'',css:'',scss:'',json:'',python:'',ruby:'',go:'',java:'',kotlin:'',c:'',cpp:'',cs:OV,csharp:OV,php:'',shell:'',powershell:'',sql:'',yaml:'',markdown:'',xml:'',rust:'',vue:'',mermaid:''},fallback:'',loadExtended:()=>pn(()=>import("./extended-p72mFE2C.js"),[]).then(e=>e.materialExtendedMap)},H$=new Map;let sae="material";const Wg=new Map,DV=new Map;let uE=null;function OQe(e){H$.set(e.id,e)}function FQe(e){const t=H$.get(sae);if(!t)return;const n=t.core[e];if(n)return n;const i=Wg.get(t.id);if(i){const o=i[e];if(o)return o}t.loadExtended&&!Wg.has(t.id)&&NQe(t)}function DQe(){var e,t;return(t=(e=H$.get(sae))==null?void 0:e.fallback)!=null?t:""}function NQe(e){return PQe(this,null,function*(){var t,n,i;if(Wg.has(e.id))return(t=Wg.get(e.id))!=null?t:null;let o=DV.get(e.id);return o||(o=((i=(n=e.loadExtended)==null?void 0:n.call(e))!=null?i:Promise.resolve(null)).then(s=>(Wg.set(e.id,s),uE?.(),s)).catch(()=>(Wg.set(e.id,null),null)),DV.set(e.id,o)),o})}const BQe=Is(0);uE=()=>{BQe.value++},OQe($Qe);const zQe={"":"",javascript:"javascript",js:"javascript",mjs:"javascript",cjs:"javascript",typescript:"typescript",ts:"typescript",jsx:"jsx",tsx:"tsx",golang:"go",py:"python",rb:"ruby",sh:"shell",bash:"shell",zsh:"shell",shellscript:"shell",bat:"shell",batch:"shell",ps1:"powershell",plaintext:"plain",text:"plain",txt:"plain","c++":"cpp","c#":"csharp",cs:"csharp","objective-c":"objectivec","objective-c++":"objectivecpp",yml:"yaml",md:"markdown",rs:"rust",kt:"kotlin"};function BC(e){var t;const n=(function(i){if(!i)return"";const o=i.trim();if(!o)return"";const[s]=o.split(/\s+/),[r]=s.split(":");return r.toLowerCase()})(e);return(t=zQe[n])!=null?t:n}function Jsn(e){const t=BC(e);if(!t)return"plaintext";switch(t){case"plain":return"plaintext";case"shell":return"zsh";case"objectivec":return"objective-c";case"objectivecpp":return"objective-cpp";default:return t}}function HQe(e){return FQe(BC(e))||DQe()}const dE={js:"JavaScript",javascript:"JavaScript",ts:"TypeScript",typescript:"TypeScript",jsx:"JSX",tsx:"TSX",html:"HTML",css:"CSS",scss:"SCSS",json:"JSON",py:"Python",python:"Python",rb:"Ruby",go:"Go",java:"Java",c:"C",cpp:"C++",cs:"C#",csharp:"C#",php:"PHP",sh:"Shell",bash:"Bash",sql:"SQL",yaml:"YAML",md:"Markdown",d2:"D2",d2lang:"D2","":"Plain Text",plain:"Plain Text"};function Xsn(){}var zC=(e,t,n)=>new Promise((i,o)=>{var s=l=>{try{a(n.next(l))}catch(c){o(c)}},r=l=>{try{a(n.throw(l))}catch(c){o(c)}},a=l=>l.done?i(l.value):Promise.resolve(l.value).then(s,r);a((n=n.apply(e,t)).next())});let ul=null,I0=!1,T0=null,HC=W$;function cb(e){var t;const n=(t=e?.default)!=null?t:e;return n&&typeof n.renderToString=="function"?n:null}function j$(){try{const e=globalThis;return cb(e?.katex)}catch{return null}}function W$(){return zC(null,null,function*(){const e=j$();if(e)return e;const t=yield pn(()=>import("./katex-DnlPpQZa.js"),[]);try{yield pn(()=>import("./mhchem-DtR62fUK.js"),__vite__mapDeps([0,1]))}catch{}return cb(t)})}function rae(e){const t=Promise.resolve(e).then(n=>{var i;return T0===t&&n?(ul=(i=cb(n))!=null?i:n,ul):null}).catch(()=>null).finally(()=>{T0===t&&(T0=null)});return T0=t,I0=!0,t}function jQe(e){HC=e,ul=null,I0=!1,T0=null}function WQe(e){jQe(W$)}function aae(){return typeof HC=="function"}function ern(){var e;const t=HC;if(!t||t===W$)return null;if(ul)return ul;const n=j$();if(n)return ul=n,ul;if(I0)return null;try{const i=t();return i?typeof i?.then=="function"?(rae(i),null):(ul=(e=cb(i))!=null?e:i,ul):null}catch{return null}}function lae(){return zC(this,null,function*(){var e;const t=j$();if(t)return ul=t,ul;if(ul)return ul;if(T0)return T0;if(I0)return null;const n=HC;if(!n)return I0=!0,null;try{const i=n();if(typeof i?.then=="function")return rae(i);if(i)return ul=(e=cb(i))!=null?e:i,I0=!0,ul}catch{}return I0=!0,null})}function cae(e){return e?e.replace(/·/g,"⋅").replace(/℃/g,"°C"):""}let fk=null,r0=null;const rl=new Map,Jf=new Map;let a3=5;const Y0=new Set;function U4(){if(rl.size{const{id:n,html:i,error:o}=t.data,s=rl.get(n);if(s)if(rl.delete(n),clearTimeout(s.timeoutId),s.cleanup(),U4(),o)s.aborted||s.reject(new Error(o));else{const{content:r,displayMode:a}=t.data;if(r){const l=`${a?"d":"i"}:${r}`;if(Jf.set(l,i),Jf.size>200){const c=Jf.keys().next().value;Jf.delete(c)}}s.aborted||s.resolve(i)}},fk.onerror=t=>{console.error("[katexWorkerClient] Worker error:",t);for(const[n,i]of rl.entries())clearTimeout(i.timeoutId),i.cleanup(),i.aborted||i.reject(new Error(`Worker error: ${t.message}`));rl.clear(),qQe()}}function UQe(e,t=!0,n=2e3,i){return zC(this,null,function*(){performance.now();const o=cae(e);if(!aae()){const l=new Error("KaTeX rendering disabled");return l.name="KaTeXDisabled",l.code="KATEX_DISABLED",Promise.reject(l)}if(r0)return Promise.reject(r0);const s=`${t?"d":"i"}:${o}`,r=Jf.get(s);if(r)return U4(),Promise.resolve(r);const a=fk||(r0=new Error("[katexWorkerClient] No worker instance set. Please inject a Worker via setKaTeXWorker()."),r0.name="WorkerInitError",r0.code="WORKER_INIT_ERROR",null);if(!a)return Promise.reject(r0);if(rl.size>=a3){const l=new Error("Worker busy");return l.name="WorkerBusy",l.code="WORKER_BUSY",l.busy=!0,l.inFlight=rl.size,l.max=a3,Promise.reject(l)}return new Promise((l,c)=>{if(i?.aborted){const g=new Error("Aborted");return g.name="AbortError",void c(g)}const u=Math.random().toString(36).slice(2);let d=null;const f=globalThis.setTimeout(()=>{const g=rl.get(u);if(!g)return;rl.delete(u),g.cleanup();const y=new Error("Worker render timed out");y.name="WorkerTimeout",y.code="WORKER_TIMEOUT",g.aborted||g.reject(y),U4()},n);d=()=>{const g=rl.get(u);if(!g||g.aborted)return;g.aborted=!0,g.cleanup();const y=new Error("Aborted");y.name="AbortError",c(y)},i&&i.addEventListener("abort",d,{once:!0});const h=l,m=c;rl.set(u,{resolve:g=>{h(g)},reject:g=>{m(g)},timeoutId:f,aborted:!1,cleanup:()=>{i&&d&&i.removeEventListener("abort",d),d=null}});try{a.postMessage({id:u,content:o,displayMode:t})}catch(g){const y=rl.get(u);rl.delete(u),clearTimeout(f),y?.cleanup(),y?.reject(g),U4()}})})}function trn(e,t=!0,n){const i=`${t?"d":"i"}:${cae(e)}`;if(Jf.set(i,n),Jf.size>200){const o=Jf.keys().next().value;Jf.delete(o)}}const KQe="WORKER_BUSY";function ZQe(e=2e3,t){return rl.size{let o,s=!1,r=null,a=()=>{};const l=()=>{o&&globalThis.clearTimeout(o),Y0.delete(a),t&&r&&t.removeEventListener("abort",r),r=null};a=()=>{s||(s=!0,l(),n())},Y0.add(a),o=globalThis.setTimeout(()=>{if(s)return;s=!0,l();const c=new Error("Wait for worker slot timed out");c.name="WorkerBusyTimeout",c.code="WORKER_BUSY_TIMEOUT",i(c)},e),queueMicrotask(()=>U4()),t&&(r=()=>{if(s)return;s=!0,l();const c=new Error("Aborted");c.name="AbortError",i(c)},t.aborted?r():t.addEventListener("abort",r,{once:!0}))})}const my={timeout:2e3,waitTimeout:1500,backoffMs:30,maxRetries:1};function nrn(e){return zC(this,arguments,function*(t,n=!0,i={}){var o,s,r,a;if(!aae()){const g=new Error("KaTeX rendering disabled");throw g.name="KaTeXDisabled",g.code="KATEX_DISABLED",g}const l=(o=i.timeout)!=null?o:my.timeout,c=(s=i.waitTimeout)!=null?s:my.waitTimeout,u=(r=i.backoffMs)!=null?r:my.backoffMs,d=(a=i.maxRetries)!=null?a:my.maxRetries,f=Number.isFinite(d)?Math.max(0,Math.min(Math.floor(d),8)):my.maxRetries,h=i.signal;let m=0;for(;;){if(h?.aborted){const g=new Error("Aborted");throw g.name="AbortError",g}try{return yield UQe(t,n,l,h)}catch(g){if(g?.code!==KQe||m>=f)throw g;if(m++,yield ZQe(c,h).catch(()=>{}),h?.aborted){const y=new Error("Aborted");throw y.name="AbortError",y}u>0&&(yield new Promise(y=>globalThis.setTimeout(y,u*m)))}}})}function l3(e){"@babel/helpers - typeof";return l3=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},l3(e)}function GQe(e,t){if(l3(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var i=n.call(e,t);if(l3(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function QQe(e){var t=GQe(e,"string");return l3(t)=="symbol"?t:t+""}function YQe(e,t,n){return(t=QQe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function NV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,i)}return n}function L1(e){for(var t=1;tt.length)return!1;for(let n=0;nXQe.some(n=>t.startsWith(n)))}function Pw(e,t){return!t&&e.startsWith(" ")&&!e.startsWith(" ")?` ${e}`:e}function $w(e){return tYe.test(String(e??""))}function Xf(e,t){return L1(L1({},fo("No newline at end of file","metadata",e,"")),{},{metadataKind:t})}function iYe(e,t,n){const i=String(t??"").length>0&&!$w(t),o=String(n??"").length>0&&!$w(n);return!i&&!o||(i&&e.push(Xf("inline-no-newline-original","removed")),o&&e.push(Xf("inline-no-newline-modified","added"))),e}function oYe(e,t){var n,i;if(nYe(e)==="diff")return!0;const o=(n=(i=String(t??"").split(/\r?\n/,1)[0])===null||i===void 0?void 0:i.trim())!==null&&n!==void 0?n:"";return/^`{3,}\s*diff(?:\s|$)|^~{3,}\s*diff(?:\s|$)/.test(o)}function sYe(e,t,n){const i=e.some(s=>K4(s)),o=e.some(s=>Rw(s));return i&&o||oYe(t,n)&&(i||o)}function mae(e,t,n){if(n&&BV(n.original,e)&&BV(n.modified,t)){const o=e.slice(n.original.length),s=t.slice(n.modified.length);if(o.every(r=>!n.modifiedLines.has(r))&&s.every(r=>!n.originalLines.has(r))){const r=n.matches.concat(zV(o,s).map(a=>({originalIndex:a.originalIndex+n.original.length,modifiedIndex:a.modifiedIndex+n.modified.length})));for(const a of o)n.originalLines.add(a);for(const a of s)n.modifiedLines.add(a);return n.original=e,n.modified=t,n.matches=r,r}}const i=zV(e,t);return n&&JQe(n,e,t,i),i}function zV(e,t){var n;const i=[];let o=0;for(;o=o&&a>=o&&e[r]===t[a];)s.push({originalIndex:r,modifiedIndex:a}),r--,a--;s.reverse();const l=r-o+1,c=a-o+1;if(l<=0||c<=0||(l+1)*(c+1)>15e5)return i.concat(s);const u=new Map,d=new Uint32Array(c);for(let k=0;k=0;k--)for(let w=c-1;w>=0;w--){const C=k*h+w;f[k]===d[w]?m[C]=m[(k+1)*h+w+1]+1:m[C]=Math.max(m[(k+1)*h+w],m[k*h+w+1])}const g=[];let y=0,v=0;for(;y=m[y*h+v+1]?y++:v++;return i.concat(g,s)}const rYe=["diff ","index ","--- ","+++ "];function gae(e,t){return t&&rYe.some(n=>e.startsWith(n))}function aYe(e){const t=[];let n=1,i=1;const o=pae(e);for(const[r,a]of e.entries())if(a===dae){var s;const l=(s=t.at(-1))===null||s===void 0?void 0:s.kind,c=l==="removed"||l==="added"?l:"context";t.push(Xf(`inline-no-newline-${r}`,c))}else{if(gae(a,o))continue;if(a.startsWith("@@")){const l=a.match(/^@@\s+-(\d+)(?:,\d+)?\s+\+(\d+)(?:,\d+)?\s+@@/);l&&(n=Number(l[1]),i=Number(l[2])),t.push(fo(a,"hunk",`inline-hunk-${r}`,""))}else if(K4(a))t.push(fo(Pw(a.slice(1),o),"removed",`inline-removed-${r}`,n++,!0));else if(Rw(a))t.push(fo(Pw(a.slice(1),o),"added",`inline-added-${r}`,i++,!0));else{const l=o&&a.startsWith(" ")?a.slice(1):a;t.push(fo(l,"context",`inline-context-${r}`,i)),n++,i++}}return t}function lYe(e,t,n,i){const o=i?Lw(e,n,i,"original"):c3(e,n),s=i?Lw(t,n,i,"modified"):c3(t,n),r=mae(o,s,i);if(r.length>0){const f=[];let h=0,m=0;for(const g of r){for(;h=l&&u>=l&&o[c]===s[u];)d.unshift(fo(s[u],"context",`inline-suffix-${u}`,u+1)),c--,u--;for(let f=l;f<=c;f++)a.push(fo(o[f],"removed",`inline-removed-source-${f}`,f+1,d1(o,f)));for(let f=l;f<=u;f++)a.push(fo(s[f],"added",`inline-added-source-${f}`,f+1,d1(s,f)));return a.concat(d)}function cYe(e,t,n,i,o){const s=o?Lw(e,n,o,"original"):c3(e,n),r=o?Lw(t,n,o,"modified"):c3(t,n),a=mae(s,r,o),l=[],c=[];let u=0,d=0,f=0;const h=(y,v)=>{const k=Math.max(y-u,v-d);for(let w=0;w0&&!$w(e),g=String(t??"").length>0&&!$w(t);return(m||g)&&(l.push(m?Xf("original-no-newline","removed"):fo("","spacer","original-no-newline-spacer","")),c.push(g?Xf("modified-no-newline","added"):fo("","spacer","modified-no-newline-spacer",""))),hE([{key:"original",className:"markstream-pre__diff-pane--original",lines:l},{key:"modified",className:"markstream-pre__diff-pane--modified",lines:c}],i)}function uYe(e){var t,n;if(e==null||e===!1)return null;const i=e===!0?{}:e;return i.enabled===!1?null:{contextLineCount:Math.max(0,Math.floor((t=i.contextLineCount)!==null&&t!==void 0?t:2)),minimumLineCount:Math.max(1,Math.floor((n=i.minimumLineCount)!==null&&n!==void 0?n:4))}}function hE(e,t){var n;const i=uYe(t);if(!i||e.length<1||e.length>2||e.length===2&&e[0].lines.length!==e[1].lines.length)return e;const o=e[0].lines,s=(n=e[1])===null||n===void 0?void 0:n.lines;let r=o.length;for(;r>0&&e.every(u=>u.lines[r-1].kind==="metadata");)r--;const a=u=>o[u].kind==="context"&&(s===void 0||s[u].kind==="context"&&o[u].code===s[u].code),l=[];let c=0;for(;c=i.minimumLineCount){const f=u+(u===0?0:i.contextLineCount),h=d===r,m=d-(h?0:i.contextLineCount);m-f>=i.minimumLineCount&&l.push({start:f,end:h?o.length:m,count:h?r-f:m-f,first:f===0,last:h})}c===u&&c++}return l.length?e.map((u,d)=>{const f=[];let h=0;for(const m of l)f.push(...u.lines.slice(h,m.start)),f.push({code:d===0?`${m.count} unmodified lines`:"",kind:"collapsed",empty:!1,key:`${u.key}-collapsed-${m.start}-${m.end}`,number:"",collapsedFirst:m.first,collapsedLast:m.last}),h=m.end;return f.push(...u.lines.slice(h)),L1(L1({},u),{},{lines:f})}):e}function vae(e){const t=e.loading===!0,n=e.inline===!0,i=c3(e.code,t),o=e.originalCode,s=e.updatedCode,r=o!=null||s!=null;if(n)return hE([{key:"inline",className:"markstream-pre__diff-pane--inline",lines:r?iYe(lYe(o,s,t,e.matchCache),o,s):aYe(i)}],e.hideUnchangedRegions);if(!sYe(i,e.language,e.raw)&&r)return cYe(o,s,t,e.hideUnchangedRegions,e.matchCache);const{original:a,modified:l}=fYe(i);return hE([{key:"original",className:"markstream-pre__diff-pane--original",lines:a.map((c,u)=>L1(L1({},c),{},{key:`original-${u}`,number:c.kind==="metadata"||c.kind==="spacer"?"":c.number}))},{key:"modified",className:"markstream-pre__diff-pane--modified",lines:l.map((c,u)=>L1(L1({},c),{},{key:`modified-${u}`,number:c.kind==="metadata"||c.kind==="spacer"?"":c.number}))}],e.hideUnchangedRegions)}function dYe(e){const t=e.match(/^@@\s+-(\d+)(?:,\d+)?\s+\+(\d+)(?:,\d+)?\s+@@/);return t?{original:Number(t[1]),modified:Number(t[2])}:void 0}function fYe(e){const t=[],n=[],i=pae(e);let o=1,s=1,r="context",a=0;for(;a"u"){s=null;return}window.addEventListener("pointermove",c),window.addEventListener("pointerup",l),window.addEventListener("pointercancel",l),window.addEventListener("blur",l),o?.(!0)}}return{start:u,stop:l,isActive:()=>s!=null}}const hYe={plain:"plaintext",text:"plaintext",txt:"plaintext",js:"javascript",mjs:"javascript",cjs:"javascript",ts:"typescript",mts:"typescript",cts:"typescript",golang:"go",py:"python",rb:"ruby",rs:"rust",kt:"kotlin",kts:"kotlin",md:"markdown",yml:"yaml",sh:"shellscript",bash:"shellscript",zsh:"shellscript",shell:"shellscript",shellscript:"shellscript",ps:"powershell",ps1:"powershell",pwsh:"powershell","c++":"cpp","c#":"csharp",cs:"csharp",objc:"objective-c",objectivec:"objective-c","objective-c":"objective-c",objectivecpp:"objective-cpp","objective-c++":"objective-cpp","objective-cpp":"objective-cpp"};function pYe(e){var t,n;const i=String(e??"").trim();if(!i)return"";const[o=""]=i.split(/\s+/);return(t=(n=o.split(":")[0])===null||n===void 0?void 0:n.trim().toLowerCase())!==null&&t!==void 0?t:""}function mYe(e){var t;const n=pYe(e);return(t=hYe[n])!==null&&t!==void 0?t:n}function e0(e,t,n=1){const i=Number(e);return Number.isFinite(i)?Math.max(n,i):t}function HV(e,t){const n=Number(e);return Number.isFinite(n)?Math.max(0,n):t}const jV=2048,gYe=200;function i_(){return typeof performance<"u"?performance.now():Date.now()}var vYe=class{constructor(e={},t){this.source="",this.visible="",this.done=!1,this.paused=!1,this.listeners=new Set,this.rafId=0,this.timerId=null,this.visibilityListener=null,this.startedAt=0,this.lastTick=0,this.charBudget=0,this.hasStarted=!1,this.destroyed=!1,this.fenceScanOffset=0,this.fenceLineStart=0,this.fenceLineState="candidate",this.fenceIndent=0,this.fenceMarker="",this.fenceMarkerLength=0,this.activeFenceMarker="",this.activeFenceLength=0,this.blockedRevealEnd=0,this.atomicRevealRanges=[],this.atomicRevealRangeIndex=0,this.getSnapshot=()=>({source:this.source,visible:this.visible,done:this.done,paused:this.paused,pendingChars:this.pendingChars,caughtUp:this.caughtUp,final:this.final}),this.subscribe=h=>this.destroyed?()=>{}:(this.listeners.add(h),()=>{this.listeners.delete(h)}),this.enqueue=h=>{if(this.destroyed||!h)return;this.done&&(this.done=!1);const m=this.source.length>0,g=this.pendingChars<=0,y=this.isRevealBlocked();if(this.source+=h,this.scanAppendedSource(),g||y&&!this.isRevealBlocked()){const v=i_();this.startedAt=m&&this.hasStarted?v-this.normalizedStartDelayMs:v,this.lastTick=v,this.charBudget=0}this.hasStarted=!0,this.emit(),this.ensureLoop()},this.finish=(h={})=>{var m;if(!this.destroyed){if(this.done=!0,this.releaseTrailingFenceCandidate(),(m=h.flush)!==null&&m!==void 0?m:this.flushOnFinish){this.visible=this.source,this.discardConsumedAtomicRanges(),this.charBudget=0,this.currentCps=this.minCharsPerSecond,this.cancelLoop(),this.emit();return}this.emit(),this.ensureLoop()}},this.flush=()=>{this.destroyed||(this.releaseTrailingFenceCandidate(),this.visible=this.source,this.discardConsumedAtomicRanges(),this.charBudget=0,this.currentCps=this.minCharsPerSecond,this.cancelLoop(),this.emit())},this.reset=(h="",m)=>{if(this.destroyed)return;this.cancelLoop(),m?.prefixKnown?(this.source=h,this.scanAppendedSource()):h.startsWith(this.source)?(this.source=h,this.scanAppendedSource()):(this.resetFenceScanner(),this.source=h,this.scanAppendedSource());const g=this.getRevealableEnd();this.visible=g>=this.source.length?this.source:this.source.slice(0,g),this.discardConsumedAtomicRanges(),this.done=!1,this.paused=!1,this.hasStarted=!1,this.startedAt=0,this.lastTick=0,this.charBudget=0,this.currentCps=this.minCharsPerSecond,this.emit()},this.pause=()=>{this.destroyed||this.paused||(this.paused=!0,this.cancelLoop(),this.emit())},this.resume=()=>{if(this.destroyed||!this.paused)return;this.paused=!1;const h=i_();this.lastTick=h,this.startedAt||(this.startedAt=h),this.emit(),this.ensureLoop()},this.destroy=()=>{this.destroyed||(this.destroyed=!0,this.cancelLoop(),this.detachVisibilityListener(),this.listeners.clear())},this.dispose=()=>{this.destroy()},this.tick=h=>{if(this.rafId=0,this.timerId=null,this.destroyed||this.paused)return;if(!this.hasRevealableChars()){this.startedAt=0,this.lastTick=0,this.charBudget=0,this.currentCps=this.minCharsPerSecond;return}if(h-this.startedAt=this.burstRevealThresholdChars){const S=this.getRevealableEnd();this.visible.length=this.source.length?this.source:this.source.slice(0,S),this.charBudget=0,this.currentCps=this.minCharsPerSecond,this.emit()),this.ensureLoop();return}const g=1e3/Math.max(1,this.maxCommitFps),y=Math.min(100,Math.max(0,h-this.lastTick));if(ythis.normalizedCatchUpThreshold?this.normalizedCatchUpLatencyMs:this.normalizedTargetLatencyMs,w=kYe(v/Math.max(.001,k/1e3),this.minCharsPerSecond,this.maxCharsPerSecond);if(this.currentCps+=(w-this.currentCps)*.2,this.charBudget+=this.currentCps*(y/1e3),this.charBudget<1){this.ensureLoop();return}const C=Math.min(Math.floor(this.charBudget),this.maxCharsPerCommit),x=this.takeNextRevealSlice(C);x.text&&(this.visible+=x.text,this.charBudget=Math.max(0,this.charBudget-x.graphemeCount),this.emit()),this.ensureLoop()},this.handleVisibilityChange=()=>{if(!this.destroyed){if(this.isDocumentHidden()){this.cancelLoop(),this.ensureLoop();return}(this.timerId!=null||!this.rafId)&&(this.cancelLoop(),this.ensureLoop())}};const{minCharsPerSecond:n=40,maxCharsPerSecond:i=1e3,targetLatencyMs:o=900,catchUpLatencyMs:s=350,catchUpThreshold:r=600,maxCommitFps:a=30,startDelayMs:l=80,maxCharsPerCommit:c=80,flushOnFinish:u=!1,burstInitialContent:d=!1,burstRevealThresholdChars:f=jV}=e;this.minCharsPerSecond=e0(n,40,1),this.maxCharsPerSecond=Math.max(this.minCharsPerSecond,e0(i,1e3,1)),this.normalizedTargetLatencyMs=e0(o,900,1),this.normalizedCatchUpLatencyMs=e0(s,350,1),this.normalizedCatchUpThreshold=HV(r,600),this.normalizedStartDelayMs=HV(l,80),this.maxCommitFps=Math.trunc(e0(a,30,1)),this.maxCharsPerCommit=Math.trunc(e0(c,80,1)),this.flushOnFinish=u,this.burstInitialContent=d===!0,this.burstRevealThresholdChars=Math.max(1,Math.trunc(e0(f,jV,1))),this.segmenter=bYe(),t&&this.listeners.add(t),this.currentCps=this.minCharsPerSecond}attachVisibilityListener(){this.visibilityListener||typeof document>"u"||typeof document.addEventListener!="function"||(this.visibilityListener=this.handleVisibilityChange,document.addEventListener("visibilitychange",this.visibilityListener))}detachVisibilityListener(){!this.visibilityListener||typeof document>"u"||typeof document.removeEventListener!="function"||(document.removeEventListener("visibilitychange",this.visibilityListener),this.visibilityListener=null)}get pendingChars(){return Math.max(0,this.source.length-this.visible.length)}get caughtUp(){return this.pendingChars===0}get final(){return this.done&&this.caughtUp}resetFenceScanner(){this.fenceScanOffset=0,this.fenceLineStart=0,this.fenceLineState="candidate",this.fenceIndent=0,this.fenceMarker="",this.fenceMarkerLength=0,this.activeFenceMarker="",this.activeFenceLength=0,this.blockedRevealEnd=0,this.atomicRevealRanges.length=0,this.atomicRevealRangeIndex=0}scanAppendedSource(e=!1){for(;this.fenceScanOffset=this.source.length&&!e)break;if(this.source[this.fenceScanOffset+1]===` +`){const n=this.fenceScanOffset+2;this.completeFenceLine(n),this.fenceScanOffset=n;continue}}if(t===` +`){const n=this.fenceScanOffset+1;this.completeFenceLine(n),this.fenceScanOffset=n;continue}this.consumeFenceCharacter(t),this.fenceScanOffset++}this.updateFenceRevealBlock()}consumeFenceCharacter(e){if(this.fenceLineState!=="normal"){if(this.fenceLineState==="opening"){this.fenceMarker==="`"&&e==="`"&&(this.fenceLineState="normal");return}if(this.fenceLineState==="closing"){e!==" "&&e!==" "&&(this.fenceLineState="normal");return}if(!this.fenceMarker){if(e===" "&&this.fenceIndent<3){this.fenceIndent++;return}if(e==="`"||e==="~"){this.fenceMarker=e,this.fenceMarkerLength=1;return}this.fenceLineState="normal";return}if(e===this.fenceMarker){this.fenceMarkerLength++;return}if(this.activeFenceMarker){this.fenceLineState=this.fenceMarker===this.activeFenceMarker&&this.fenceMarkerLength>=this.activeFenceLength&&(e===" "||e===" ")?"closing":"normal";return}this.fenceLineState=this.fenceMarkerLength>=3?"opening":"normal"}}completeFenceLine(e){const t=this.fenceLineState==="candidate"&&this.fenceMarkerLength>=3;!this.activeFenceMarker&&(this.fenceLineState==="opening"||t)?(this.atomicRevealRanges.push({start:this.fenceLineStart,end:e}),this.activeFenceMarker=this.fenceMarker,this.activeFenceLength=this.fenceMarkerLength):this.activeFenceMarker&&this.fenceMarker===this.activeFenceMarker&&this.fenceMarkerLength>=this.activeFenceLength&&(this.fenceLineState==="closing"||t)&&(this.activeFenceMarker="",this.activeFenceLength=0),this.fenceLineStart=e,this.fenceLineState="candidate",this.fenceIndent=0,this.fenceMarker="",this.fenceMarkerLength=0,this.blockedRevealEnd=0}updateFenceRevealBlock(){this.blockedRevealEnd=!this.activeFenceMarker&&(this.fenceLineState==="opening"||this.fenceLineState==="candidate"&&(this.fenceIndent>0||this.fenceMarkerLength>0))?this.fenceLineStart+1:0}releaseTrailingFenceCandidate(){this.scanAppendedSource(!0),this.blockedRevealEnd&&((this.fenceLineState==="opening"||this.fenceLineState==="candidate"&&this.fenceMarkerLength>=3)&&this.source.length>this.fenceLineStart&&this.atomicRevealRanges.push({start:this.fenceLineStart,end:this.source.length}),this.fenceLineState="normal",this.blockedRevealEnd=0)}isRevealBlocked(){return this.blockedRevealEnd!==0}getRevealableEnd(){return this.blockedRevealEnd?Math.min(this.source.length,this.blockedRevealEnd-1):this.source.length}hasRevealableChars(){return this.visible.length=t)return{text:"",graphemeCount:0};const n=this.atomicRevealRanges[this.atomicRevealRangeIndex];if(n&&this.visible.length>=n.start&&this.visible.lengththis.visible.length?Math.min(n.start,t):t;return WV(this.source,this.visible.length,e,this.segmenter,i)}discardConsumedAtomicRanges(){for(;this.atomicRevealRangeIndex=64&&this.atomicRevealRangeIndex*2>=this.atomicRevealRanges.length&&(this.atomicRevealRanges.splice(0,this.atomicRevealRangeIndex),this.atomicRevealRangeIndex=0)}isDocumentHidden(){return typeof document<"u"&&document.visibilityState==="hidden"}ensureLoop(){if(!(this.destroyed||this.rafId||this.timerId!=null||this.paused||!this.hasRevealableChars())){if(typeof requestAnimationFrame!="function"){this.flush();return}if(this.attachVisibilityListener(),this.isDocumentHidden()&&typeof setTimeout=="function"){this.timerId=setTimeout(()=>{this.timerId=null,this.tick(i_())},gYe);return}this.rafId=requestAnimationFrame(this.tick)}}cancelLoop(){this.rafId&&(typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(this.rafId),this.rafId=0),this.timerId!=null&&(clearTimeout(this.timerId),this.timerId=null),this.detachVisibilityListener()}emit(){if(!this.destroyed)for(const e of this.listeners)e()}};function yYe(e={},t){const n=new vYe(e,t);return{getSnapshot:n.getSnapshot,subscribe:n.subscribe,enqueue:n.enqueue,finish:n.finish,flush:n.flush,reset:n.reset,pause:n.pause,resume:n.resume,destroy:n.destroy,dispose:n.dispose}}function bYe(){if(typeof Intl>"u")return null;const e=Intl.Segmenter;return e?new e(void 0,{granularity:"grapheme"}):null}function WV(e,t,n,i,o=e.length){const s=Math.min(e.length,Math.max(t,o));if(t>=s||n<=0)return{text:"",graphemeCount:0};if(!i){let d=t,f=0;for(;d=55296&&h<=56319&&m>=56320&&m<=57343?2:1;d=Math.min(s,d+g),f++}return{text:e.slice(t,d),graphemeCount:f}}let r=t,a=0,l=!0;for(;a65535?2:1;if(r+f>s||!qV(d)){l=!1;break}r+=f,a++}if(l&&r>t&&!(r65535?2:1)<=s&&qV(d);if(r>=s||f)return{text:e.slice(t,r),graphemeCount:a}}const c=s-t;let u=Math.min(c,Math.max(64,n*2));for(;;){const d=u>=c,f=e.slice(t,t+u);let h=0,m=0;for(const g of i.segment(f)){if(m>=n)return{text:e.slice(t,t+h),graphemeCount:m};h+=g.segment.length,m++}if(d)return{text:e.slice(t,t+h),graphemeCount:m};u=Math.min(c,u*2)}}function kYe(e,t,n){return Math.min(n,Math.max(t,e))}function wYe(e){return e>=11904&&e<=12329||e>=12336&&e<=12351||e>=12352&&e<=12440||e>=12443&&e<=12543||e>=12544&&e<=12799||e>=12800&&e<=13311||e>=13312&&e<=19903||e>=19968&&e<=40959||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65072&&e<=65103||e>=65280&&e<=65437||e>=65440&&e<=65519||e>=127488&&e<=127743||e>=131072&&e<=196607}function qV(e){return e<=127||wYe(e)}const orn=120,srn=360;function M0(e){const t=typeof e=="number"?e:Number.parseFloat(String(e??""));return Number.isFinite(t)&&t>0?t:null}function CYe(e){var t;for(const n of e.split(/\r?\n/)){const i=n.trim();if(!i||i.startsWith("%%"))continue;const o=i.match(/^([A-Z][\w-]*)\b/i);return((t=o?.[1])==null?void 0:t.toLowerCase())||""}return""}function Ow(e){const t=e.split(/\r?\n/).map(o=>o.trim()).filter(o=>o&&!o.startsWith("%%")),n=Math.max(1,t.length),i=CYe(e);return i==="gantt"?220+28*n:i==="sequencediagram"?180+26*n:i==="classdiagram"||i==="statediagram"||i==="erdiagram"?180+24*n:i==="flowchart"||i==="graph"?170+28*n:200+22*n}function Fw(e){const t=e.split(/\r?\n/).filter(n=>/^\s*-\s+/.test(n)).length;return t>=3?500:t>0?280+60*t:360}function ub(e,t=360,n=500){return n==null?Math.max(t,e):Math.min(Math.max(t,e),n)}function Dw(e,t=360,n=500){return ub(e,t,n)}function rrn(e,t=120,n=500){return ub(e,t,n)}function Nw(e,t=360,n=500){return ub(e,t,n)}function yae(e,t=240,n=500){return ub(e,t,n)}const AYe=new Set(["direction","label","shape","icon","near","link","tooltip","width","height","grid-rows","grid-columns","grid-gap","vertical-gap","horizontal-gap","class","constraint","source-arrowhead","target-arrowhead"]),xYe=new Set(["vars","classes","style","layers","scenarios","steps"]);function VV(e){let t=0,n=!1;for(let i=0;i0){i=Math.max(0,i+VV(s));continue}if(!s||s.startsWith("#")||s.startsWith("...")||/^[}\]]+$/.test(s))continue;const r=s.match(/^([A-Z_][\w-]*)\s*:(.*)$/i);if(r){const a=r[1].toLowerCase();if(xYe.has(a)){t+=1,i=Math.max(0,VV(r[2]));continue}if(AYe.has(a)){t+=1;continue}}n+=1,t+=1}return ub(120+46*Math.max(1,n)+8*Math.max(0,t-n),240,500)}var SYe=Object.defineProperty,_Ye=Object.defineProperties,IYe=Object.getOwnPropertyDescriptors,UV=Object.getOwnPropertySymbols,TYe=Object.prototype.hasOwnProperty,MYe=Object.prototype.propertyIsEnumerable,KV=(e,t,n)=>t in e?SYe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,kae=(e,t)=>{for(var n in t||(t={}))TYe.call(t,n)&&KV(e,n,t[n]);if(UV)for(var n of UV(t))MYe.call(t,n)&&KV(e,n,t[n]);return e},ZV=(e,t,n)=>new Promise((i,o)=>{var s=l=>{try{a(n.next(l))}catch(c){o(c)}},r=l=>{try{a(n.throw(l))}catch(c){o(c)}},a=l=>l.done?i(l.value):Promise.resolve(l.value).then(s,r);a((n=n.apply(e,t)).next())});const Bw=()=>pn(()=>import("./mermaid.core-B_UcP3X_.js").then(e=>e.bq),[]);let Lf=null,qg=Bw,Jy=null,pE=!1,mE=!1,Xy=0;function EYe(e){qg=e,Xy++,Lf=null,Jy=null,pE=!1,mE=!1}function LYe(e){EYe(Bw)}function GV(){return typeof qg=="function"}function QV(e){if(!e)return e;const t=e&&e.default?e.default:e;if(t&&(typeof t.render=="function"||typeof t.parse=="function"||typeof t.initialize=="function"))return t;if(t&&t.mermaidAPI&&(typeof t.mermaidAPI.render=="function"||typeof t.mermaidAPI.parse=="function")){const o=t.mermaidAPI;return n=kae({},t),i={render:o.render.bind(o),parse:o.parse?o.parse.bind(o):void 0,initialize:s=>typeof t.initialize=="function"?t.initialize(s):o.initialize?o.initialize(s):void 0},_Ye(n,IYe(i))}var n,i;return e.mermaid&&typeof e.mermaid.render=="function"?e.mermaid:t}function YV(e){if(e)try{const t=e?.initialize;e.initialize=n=>{const i=kae({suppressErrorRendering:!0},n||{});return typeof t=="function"?t.call(e,i):e?.mermaidAPI&&typeof e.mermaidAPI.initialize=="function"?e.mermaidAPI.initialize(i):void 0}}catch{}}function arn(){return ZV(this,null,function*(){if(Lf)return Lf;const e=(function(){try{const i=globalThis;return QV(i?.mermaid)}catch{return null}})();if(e)return Lf=e,YV(Lf),Lf;const t=qg,n=Xy;return t?t===Bw&&pE?null:Jy||(Jy=ZV(null,null,function*(){let i;try{i=yield t()}catch(o){if(t===Bw)return n===Xy&&t===qg&&(pE=!0,(function(s){mE||(mE=!0,console.warn('[markstream-vue] Optional dependency "mermaid" is not installed. Mermaid blocks will render as source.',s))})(o)),null;throw o}finally{n===Xy&&t===qg&&(Jy=null)}return n!==Xy||t!==qg?null:i?(Lf=QV(i),YV(Lf),Lf):null}),Jy):null})}let Bd=null,a0=null;const Ku=new Map,l0=new Map;function o_(e){for(const t of Ku.values())t.reject(e);Ku.clear(),l0.clear()}let JV=5,XV=!1;const RYe="WORKER_BUSY",eU="MERMAID_DISABLED";function PYe(e){if(Bd&&Bd!==e){const n=new Error("Worker replaced");n.code="WORKER_REPLACED",o_(n)}Bd=e,a0=null;const t=e;Bd.onmessage=n=>{if(Bd!==t)return;const{id:i,ok:o,result:s,error:r}=n.data,a=Ku.get(i);a&&(o===!1||r?a.reject(new Error(r||"Unknown error")):a.resolve(s))},Bd.onerror=n=>{var i,o;if(Bd===t)if(Ku.size!==0){try{XV?console.error("[mermaidWorkerClient] Worker error:",n?.message||n):(o=console.debug)==null||o.call(console,"[mermaidWorkerClient] Worker error:",n?.message||n)}catch{}o_(new Error(`Worker error: ${n.message}`))}else(i=console.debug)==null||i.call(console,"[mermaidWorkerClient] Worker error (no pending):",n?.message||n)},Bd.onmessageerror=n=>{var i,o;if(Bd===t)if(Ku.size!==0){try{XV?console.error("[mermaidWorkerClient] Worker messageerror:",n):(o=console.debug)==null||o.call(console,"[mermaidWorkerClient] Worker messageerror:",n)}catch{}o_(new Error("Worker messageerror"))}else(i=console.debug)==null||i.call(console,"[mermaidWorkerClient] Worker messageerror (no pending):",n)}}function wae(e,t,n,i){if(!GV()){const r=new Error("Mermaid rendering disabled");return r.name="MermaidDisabled",r.code=eU,Promise.reject(r)}const o=`${e}\0${t.theme}\0${n}\0${t.code}`;let s=l0.get(o);return s||(s=(function(r,a,l=1400){if(!GV()){const u=new Error("Mermaid rendering disabled");return u.name="MermaidDisabled",u.code=eU,Promise.reject(u)}if(a0)return Promise.reject(a0);const c=Bd||(a0=new Error("[mermaidWorkerClient] No worker instance set. Please inject a Worker via setMermaidWorker()."),a0.name="WorkerInitError",a0.code="WORKER_INIT_ERROR",null);if(!c)return Promise.reject(a0);if(Ku.size>=JV){const u=new Error("Worker busy");return u.name="WorkerBusy",u.code=RYe,u.inFlight=Ku.size,u.max=JV,Promise.reject(u)}return new Promise((u,d)=>{const f=Math.random().toString(36).slice(2);let h,m=!1;const g=()=>{m||(m=!0,h!=null&&globalThis.clearTimeout(h),Ku.delete(f))},y={resolve:v=>{g(),u(v)},reject:v=>{g(),d(v)}};Ku.set(f,y);try{c.postMessage({id:f,action:r,payload:a})}catch(v){return Ku.delete(f),void d(v)}h=globalThis.setTimeout(()=>{const v=new Error("Worker call timed out");v.name="WorkerTimeout",v.code="WORKER_TIMEOUT";const k=Ku.get(f);k&&k.reject(v)},l)})})(e,t,n),l0.set(o,s),s.then(()=>{l0.get(o)===s&&l0.delete(o)},()=>{l0.get(o)===s&&l0.delete(o)})),(function(r,a){if(!a)return r;if(a.aborted){const l=new Error("Aborted");return l.name="AbortError",Promise.reject(l)}return new Promise((l,c)=>{let u=()=>{};const d=()=>a.removeEventListener("abort",u);u=()=>{d();const f=new Error("Aborted");f.name="AbortError",c(f)},a.addEventListener("abort",u,{once:!0}),r.then(f=>{d(),l(f)},f=>{d(),c(f)})})})(s,i)}function lrn(e,t,n=1400,i){return wae("canParse",{code:e,theme:t},n,i)}function crn(e,t,n=1400,i){return wae("findPrefix",{code:e,theme:t},n,i)}var $Ye=Object.defineProperty,OYe=Object.defineProperties,FYe=Object.getOwnPropertyDescriptors,tU=Object.getOwnPropertySymbols,DYe=Object.prototype.hasOwnProperty,NYe=Object.prototype.propertyIsEnumerable,nU=(e,t,n)=>t in e?$Ye(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,wn=(e,t)=>{for(var n in t||(t={}))DYe.call(t,n)&&nU(e,n,t[n]);if(tU)for(var n of tU(t))NYe.call(t,n)&&nU(e,n,t[n]);return e},Ji=(e,t)=>OYe(e,FYe(t)),us=(e,t,n)=>new Promise((i,o)=>{var s=l=>{try{a(n.next(l))}catch(c){o(c)}},r=l=>{try{a(n.throw(l))}catch(c){o(c)}},a=l=>l.done?i(l.value):Promise.resolve(l.value).then(s,r);a((n=n.apply(e,t)).next())});const BYe="__global__",s_="__MARKSTREAM_VUE_CUSTOM_COMPONENTS_STORE__",zw=(()=>{const e=globalThis;if(e[s_])return e[s_];const t={scopedCustomComponents:{},revision:Is(0)};return e[s_]=t,t})(),gE=zw.revision,zYe=Symbol("markstreamCustomComponents"),HYe=new Set(["text","paragraph","heading","code_block","list","list_item","blockquote","table","table_row","table_cell","definition_list","definition_item","footnote","footnote_reference","footnote_anchor","admonition","hardbreak","link","image","thematic_break","math_inline","math_block","strong","emphasis","strikethrough","highlight","insert","subscript","superscript","emoji","checkbox","checkbox_input","inline_code","html_inline","html_block","reference","mermaid","infographic","d2","vmr_container"]);function db(e){return HYe.has(String(e).trim().toLowerCase())}function jYe(e){return e.trim().replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/[_\s]+/g,"-").toLowerCase()}function hk(e={}){const t={};for(const[n,i]of Object.entries(e))if(i!=null){t[n]=i;for(const o of new Set([Iu(n),Iu(jYe(n))]))!o||db(o)||Object.prototype.hasOwnProperty.call(t,o)||(t[o]=i)}return t}function WYe(e,t){zw.scopedCustomComponents[e]=hk(t||{}),gE.value++}function zr(e){const t=Zt(zYe,null);return R(()=>{var n;return gE.value,(function(i,o={}){return gE.value,wn(wn(wn({},hk(zw.scopedCustomComponents[BYe]||{})),hk(o)),hk((function(s){return s&&zw.scopedCustomComponents[s]||{}})(i)))})(e?.(),(n=t?.value)!=null?n:{})})}const qYe=["aria-label"],VYe={key:0,xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",class:"checkbox-icon checkbox-unchecked"},UYe={key:1,xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",class:"checkbox-icon checkbox-checked"},xo=(e,t)=>{const n=e.__vccOpts||e;for(const[i,o]of t)n[i]=o;return n},Lc=xo(Xe({__name:"CheckboxNode",props:{node:{}},setup:e=>(t,n)=>(b(),I("span",{class:"checkbox-node",role:"img","aria-label":e.node.checked?"checked":"unchecked"},[e.node.checked?(b(),I("svg",UYe,[...n[1]||(n[1]=[A("rect",{x:"3",y:"3",width:"18",height:"18",rx:"4",fill:"currentColor"},null,-1),A("path",{d:"M9 12l2 2 4-4",stroke:"hsl(var(--ms-background))","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])])):(b(),I("svg",VYe,[...n[0]||(n[0]=[A("rect",{x:"3",y:"3",width:"18",height:"18",rx:"4",stroke:"currentColor","stroke-width":"2"},null,-1)])]))],8,qYe))}),[["__scopeId","data-v-be21ab83"]]);Lc.install=e=>{e.component(Lc.__name,Lc)};const KYe={class:"emoji-node"},ql=xo(Xe({__name:"EmojiNode",props:{node:{}},setup:e=>(t,n)=>(b(),I("span",KYe,O(e.node.name),1))}),[["__scopeId","data-v-de55dc97"]]);ql.install=e=>{e.component(ql.__name,ql)};const iU=".markdown-renderer";function Cae(e,t){var n,i;if(typeof document>"u"||typeof Element>"u")return null;const o=(function(r){return`[id="${r.replace(/["\\]/g,"\\$&")}"]`})(t);let s=e instanceof Element?e.closest(iU):null;for(;s;){const r=s.querySelector(o);if(r)return r;s=(i=(n=s.parentElement)==null?void 0:n.closest(iU))!=null?i:null}return document.querySelector(o)}const ZYe=["id"],GYe=["title"],Rc=xo(Xe({__name:"FootnoteReferenceNode",props:{node:{}},setup(e){const t=e,n=`#fnref--${t.node.id}`;function i(o){if(typeof document>"u")return;const s=Cae(o.currentTarget,`fnref--${t.node.id}`);s?s.scrollIntoView({behavior:"smooth"}):console.warn(`Element with href: ${n} not found`)}return(o,s)=>(b(),I("sup",{id:`fnref-${e.node.id}`,class:"footnote-reference",onClick:i},[A("span",{href:n,title:`查看脚注 ${e.node.id}`,class:"footnote-link cursor-pointer"},"["+O(e.node.id)+"]",9,GYe)],8,ZYe))}}),[["__scopeId","data-v-d1baf613"]]);Rc.install=e=>{e.component(Rc.__name,Rc)};const Aae=(()=>{try{return!1}catch{}return!1})();function r_(e){Aae&&console.warn(e)}function xae(e,t){return aQe(e,t)}function oU(e,t="safe",n){return z$(e,t,n)}function Sae(e){return cQe(e)}function a_(e){return e===!0?"":e===!1?"false":e==null?null:String(e)}function q$(e,t="safe"){const n=String(e.tag||e.type||"").trim(),i=dk((o=e.attrs)?Array.isArray(o)?o.every(Array.isArray)?o.map(([r,a])=>[String(r),a_(a)]):o.filter(r=>r&&typeof r=="object"&&!Array.isArray(r)&&"name"in r).map(r=>[String(r.name),a_(r.value)]):Object.entries(o).map(([r,a])=>[r,a_(a)]):null,t,n);var o;if(!i)return;const s=Sae(V4(i));return Object.keys(s).length>0?s:void 0}function sU(e,t,n=!1){const i=Object.entries(t??{}),o=i.length>0?i.map(([s,r])=>r===""?` ${s}`:` ${s}="${r}"`).join(""):"";return n?`<${e}${o} />`:`<${e}${o}>`}function gy(e,t){Array.isArray(t)?e.push(...t):t!=null&&e.push(t)}function l_(e,t,n,i,o,s,r=!1){const a=xae(e,i);if(sb.has(e.toLowerCase())||!a&&Jre(e,s))return null;if(!a&&B$(e,s))return r?[sU(e,t,!0)]:[sU(e,t),...n,``];const l=z$(t,s,e),c=l.key,u=c!=null&&c!==""?c:o;if(a){const d=i[e]||i[e.toLowerCase()],f=Sae(l);return Gn(d,Ji(wn({},f),{key:u}),n.length>0?n:void 0)}return Gn(e,Ji(wn({},l),{innerHTML:void 0,key:u}),n.length>0?n:void 0)}function _ae(e,t,n="safe",i=!1){var o,s;try{if(!i&&Object.keys(t).length===0)return{ok:!0,hasCustomComponents:!1,nodes:null};const r=uQe(e);let a=!1;for(const c of r)if((c.type==="tag_open"||c.type==="self_closing")&&xae((o=c.tagName)!=null?o:"",t)){a=!0;break}const l=i||a?(function(c,u,d="safe"){let f=0;const h=[],m=[];for(const g of c)if(g.type==="text")(h.length>0?h[h.length-1].children:m).push(g.content);else if(g.type==="self_closing"){const y=l_(g.tagName,g.attrs||{},[],u,"ms-html-"+f++,d,!0);gy(h.length>0?h[h.length-1].children:m,y)}else if(g.type==="tag_open")h.push({tagName:g.tagName,children:[],attrs:g.attrs,autoKey:"ms-html-"+f++});else if(g.type==="tag_close"){const y=g.tagName.toLowerCase();let v=-1;for(let k=h.length-1;k>=0;k--)if(h[k].tagName.toLowerCase()===y){v=k;break}if(v!==-1)for(;h.length>v;){const k=h.pop(),w=l_(k.tagName,k.attrs||{},k.children,u,k.autoKey,d);h.length>0?gy(h[h.length-1].children,w):gy(m,w),k.tagName.toLowerCase()!==y&&h.length>v&&r_(`Auto-closing unclosed tag: <${k.tagName}>`)}else r_(`Ignoring closing tag with no matching opening tag: `)}for(;h.length>0;){const g=h.pop(),y=l_(g.tagName,g.attrs||{},g.children,u,g.autoKey,d);h.length>0?gy(h[h.length-1].children,y):gy(m,y),r_(`Auto-closing unclosed tag: <${g.tagName}>`)}return m})(r,t,n):null;return{ok:!0,hasCustomComponents:a,nodes:l}}catch(r){return s=r,Aae&&console.error("Failed to parse HTML to VNodes:",s),{ok:!1,hasCustomComponents:!1,nodes:null}}}const QYe=["innerHTML"],Pc=xo(Xe({__name:"HtmlInlineNode",props:{node:{},customId:{},htmlPolicy:{}},setup(e){const t=e,n=Zt("markstreamHtmlPolicy",void 0),i=R(()=>{var a,l;return(l=(a=t.htmlPolicy)!=null?a:n?.value)!=null?l:"safe"}),o=zr(()=>t.customId),s=Xe({name:"DynamicRenderer",props:{nodes:{type:Array,required:!0}},render(){return this.nodes}}),r=R(()=>{const a=t.node.content;if(!a)return{mode:"html",content:""};if(i.value==="escape")return{mode:"html",content:Mw(a,i.value)};if(t.node.loading&&!t.node.autoClosed)return{mode:"text",content:a};const l=t.node.loading===!0&&t.node.autoClosed===!0,c=_ae(a,o.value,i.value,l);return c.ok&&(l||c.hasCustomComponents)?{mode:"dynamic",nodes:c.nodes}:{mode:"html",content:Mw(a,i.value)}});return(a,l)=>r.value.mode==="dynamic"?(b(),I("span",{key:0,class:De(["html-inline-node",{"html-inline-node--loading":t.node.loading}])},[V(p(s),{nodes:r.value.nodes},null,8,["nodes"])],2)):r.value.mode==="text"?(b(),I("span",{key:1,class:De(["html-inline-node",{"html-inline-node--loading":t.node.loading}])},O(r.value.content),3)):(b(),I("span",{key:2,class:De(["html-inline-node",{"html-inline-node--loading":t.node.loading}]),innerHTML:r.value.content},null,10,QYe))}}),[["__scopeId","data-v-fbbbc497"]]);function Iae(e){const t=Z(e),n=Is([]);let i=e,o=0;function s(){let r=0,a="";for(const l of n.value){if(!l.finished)break;a+=l.content,r++}r&&(t.value+=a,n.value=n.value.slice(r))}return{settledContent:t,segments:n,update:function(r,a,l){if(l&&r===i&&(!a||a===r||n.value.length>0))return;const c=a??i;if(l&&c&&r.length>c.length&&r.startsWith(c)){c!==i&&(t.value=c,n.value=[]);const u=r.slice(c.length),d=performance.now(),f=n.value.at(-1);f&&(d-f.startedAt<50||n.value.length>=4)?n.value=[...n.value.slice(0,-1),Ji(wn({},f),{content:f.content+u})]:n.value=[...n.value,{id:o++,content:u,startedAt:d,finished:!1}]}else t.value=r,n.value=[];i=r},finish:function(r,a=!1){const l=n.value.find(c=>c.id===r);l&&(l.finished=!0,a||s())},settleFinished:s}}Pc.install=e=>{e.component(Pc.__name,Pc)};const YYe={class:"inline-code"},JYe={key:0},XYe=["onAnimationend"],qa=xo(Xe({__name:"InlineCodeNode",props:{node:{}},setup(e){const t=e,n=Sm(),i=Zt("markstreamFade",void 0),o=Zt("markstreamTextStreamState",void 0),s=R(()=>{const m=n.fade;return m===""||m===!0||m==="true"||m!==!1&&m!=="false"&&void 0}),r=R(()=>typeof s.value=="boolean"?s.value:typeof i?.value!="boolean"||i.value),a=R(()=>{var m;return String((m=t.node.code)!=null?m:"")}),l=R(()=>!r.value),c=R(()=>{var m;const g=(m=n["index-key"])!=null?m:n.indexKey;return g==null||g===""?"":String(g)}),{settledContent:u,segments:d,update:f,finish:h}=Iae(t.node.code);return Fe([()=>t.node.code,c,r],([m])=>{const g=String(m??""),y=c.value;f(g,y?o?.get(y):void 0,r.value),y&&o?.set(y,g)},{immediate:!0}),(m,g)=>(b(),I("code",YYe,[l.value?(b(),I(_e,{key:0},[Be(O(a.value),1)],64)):(b(),I(_e,{key:1},[p(u)?(b(),I("span",JYe,O(p(u)),1)):X("",!0),(b(!0),I(_e,null,yt(p(d),y=>(b(),I("span",{key:y.id,class:"inline-code-stream-delta",onAnimationend:v=>p(h)(y.id)},O(y.content),41,XYe))),128))],64))]))}}),[["__scopeId","data-v-557cf4dd"]]);qa.install=e=>{e.component(qa.__name,qa)};const e4=Z(!1),rU=Z(""),aU=Z("top"),zf=Z(null),Z4=Z(null),vE=Z(null),yE=Z(null),lU=Z(null);let pk=null,mk=null,gk=0,K5=null;function Tae(){pk&&(clearTimeout(pk),pk=null),mk&&(clearTimeout(mk),mk=null)}let Z5=!1,G5=null,cU=!1;function eJe(e,t,n="top",i=!1,o,s){if(!e)return;const r=++gk;Tae();const a=()=>us(null,null,function*(){var l,c;if(K5?yield K5:e4.value&&zf.value&&zf.value!==e&&Math.hypot(zf.value.getBoundingClientRect().left-e.getBoundingClientRect().left,zf.value.getBoundingClientRect().top-e.getBoundingClientRect().top)>120&&(e4.value=!1,yield K5=new Promise(u=>setTimeout(u,120)).then(()=>{K5=null})),r===gk&&(yield(function(){return us(this,null,function*(){if(!Z5&&!cU&&typeof document<"u"){G5!=null||(G5=us(null,null,function*(){const[{createApp:u,h:d},{default:f}]=yield Promise.all([pn(()=>import("./vue.runtime.esm-bundler-IQcAQR5v.js"),[]),pn(()=>import("./Tooltip-B-G_7eI0.js"),[])]),h=document.createElement("div");h.setAttribute("data-singleton-tooltip","1"),document.body.appendChild(h),u({setup:()=>()=>{var m;return d(f,{visible:e4.value,"anchor-el":zf.value,content:rU.value,placement:aU.value,id:Z4.value,originX:vE.value,originY:yE.value,isDark:(m=lU.value)!=null?m:void 0})}}).mount(h),Z5=!0}));try{yield G5}catch(u){Z5=!1,G5=null,cU=!0,console.warn("[markstream-vue] Failed to mount Tooltip component. Tooltips will be disabled.",u)}}})})(),Z5&&r===gk)){Z4.value=`tooltip-${Date.now()}-${Math.floor(1e3*Math.random())}`,zf.value=e,rU.value=t,aU.value=n,vE.value=(l=o?.x)!=null?l:null,yE.value=(c=o?.y)!=null?c:null,lU.value=typeof s=="boolean"?s:null,e4.value=!0;try{e.setAttribute("aria-describedby",Z4.value)}catch{}}});i?a():pk=setTimeout(a,80)}function tJe(e=!1){gk+=1,Tae();const t=()=>{if(zf.value&&Z4.value)try{zf.value.removeAttribute("aria-describedby")}catch{}e4.value=!1,zf.value=null,Z4.value=null,vE.value=null,yE.value=null};e?t():mk=setTimeout(t,120)}const nJe={"common.copy":"Copy","common.selectCopy":"全选(复制)","common.copied":"Copied","common.decrease":"Decrease","common.reset":"Reset","common.increase":"Increase","common.expand":"Expand","common.collapse":"Collapse","common.preview":"Preview","common.source":"Source","common.export":"Export","common.open":"Open","common.minimize":"Minimize","common.zoomIn":"Zoom in","common.zoomOut":"Zoom out","common.resetZoom":"Reset zoom","image.loadError":"Image failed to load","image.loading":"Loading image..."},iJe=Symbol("markstreamI18nFallback");function Mae(e,t){var n;return(n=t?.[e])!=null?n:nJe[e]}const bE=(e,t)=>{var n;return(n=Mae(e,t))!=null?n:(function(i){return(i.split(".").pop()||i).replace(/[_-]/g," ").replace(/([A-Z])/g," $1").replace(/\s+/g," ").replace(/\b\w/g,o=>o.toUpperCase()).trim()})(e)};function uU(e,t){return{t(n){const i=Mae(n,t);if(e.te&&i!=null&&!e.te(n))return bE(n,t);const o=e.t(n);return o===n&&i!=null?bE(n,t):o}}}function oJe(){const e=(function(){var n,i,o;try{const s=Dr(),r=iJe,a=s?.provides,l=(n=s?.appContext)==null?void 0:n.provides;return(o=(i=a?.[r])!=null?i:l?.[r])!=null?o:null}catch{}return null})(),t=(function(){var n,i;try{const o=Dr(),s=o?.proxy,r=s?.$t;if(typeof r=="function"){const c=s?.$te;return{t:r.bind(s),te:typeof c=="function"?c.bind(s):void 0}}const a=(i=(n=o?.appContext)==null?void 0:n.config)==null?void 0:i.globalProperties,l=a?.$t;if(typeof l=="function"){const c=a?.$te;return{t:l.bind(a),te:typeof c=="function"?c.bind(a):void 0}}}catch{}return null})();if(t)return uU(t,e);try{const n=globalThis.$vueI18nUse||null;if(n&&typeof n=="function")try{const i=n();if(i&&typeof i.t=="function")return uU({t:i.t.bind(i),te:typeof i.te=="function"?i.te.bind(i):void 0},e)}catch{}}catch{}return{t:n=>bE(n,e)}}const Eae=Symbol("ViewportPriority"),Lae=Symbol("ViewportPriorityOptions"),Rae=Symbol("OffscreenHeavyNodeDeferral"),sJe=R(()=>!1),mm="400px";function V$(){return Zt(Lae,void 0)}function U$(){return Zt(Rae,sJe)}function rJe(e,t){var n,i;const o=typeof window<"u"&&typeof document<"u",s=typeof t=="boolean"?Z(t):t,r=o?(n=window.requestIdleCallback)!=null?n:M=>window.setTimeout(()=>M({didTimeout:!0,timeRemaining:()=>0}),16):null,a=o?(i=window.cancelIdleCallback)!=null?i:M=>window.clearTimeout(M):null,l=new WeakMap;let c=1;const u=new Map,d=new Map,f=new Set;let h=null,m=null;function g(M){if(!M)return"viewport";let _=l.get(M);return _||(_=c++,l.set(M,_)),String(_)}function y(){if(h!=null){try{a?.(h)}catch{}h=null}}function v(M){if(M){const _=u.get(M);if(_&&!_.targets.size){try{_.io.disconnect()}catch{}u.delete(M)}}d.size||f.size||y()}function k(M){const _=d.get(M);if(!_)return;const T=u.get(_.bucketKey);if(!_.visible.value){_.visible.value=!0;try{_.resolve()}catch{}}try{T?.io.unobserve(M)}catch{}T?.targets.delete(M),d.delete(M),f.delete(M),v(_.bucketKey)}function w(){window.__MARKSTREAM_DISABLE_VIEWPORT_PRIORITY_IDLE_DRAIN__!==!0&&r&&h==null&&f.size&&(h=r(()=>{h=null;const M=f.values().next().value;M&&(f.delete(M),k(M),f.size&&w())},{timeout:1200}))}function C(M,_){if(!o||typeof IntersectionObserver>"u")return null;const T=(function(F,B){var W,D,z;return{root:(W=e?.(F??null))!=null?W:null,rootMargin:(D=B?.rootMargin)!=null?D:mm,threshold:(z=B?.threshold)!=null?z:0}})(M,_),E=[g((L=T).root),L.rootMargin,L.threshold].join("\0");var L;const P=u.get(E);if(P)return{key:E,bucket:P};let N;try{N=new IntersectionObserver(F=>{for(const B of F)(B.isIntersecting||B.intersectionRatio>0)&&k(B.target)},{root:T.root,rootMargin:T.rootMargin,threshold:T.threshold})}catch{return null}const U={io:N,targets:new Map};return u.set(E,U),{key:E,bucket:U}}function x(){if(o&&s.value)for(const[M,_]of Array.from(d.entries())){const T=C(M,_.opts);if(!T){k(M);continue}if(T.key===_.bucketKey)continue;const E=_.bucketKey,L=u.get(E);try{L?.io.unobserve(M)}catch{}L?.targets.delete(M),_.bucketKey=T.key,T.bucket.targets.set(M,_),T.bucket.io.observe(M),v(E)}}Fe(s,M=>{if(!M){for(const _ of Array.from(d.keys()))k(_);y()}},{flush:"sync"});const S=(M,_)=>{const T=Z(!1);let E,L=!1;const P=new Promise(B=>{E=()=>{L||(L=!0,B())}}),N=()=>{const B=d.get(M);if(!B)return f.delete(M),void v();const W=u.get(B.bucketKey);try{W?.io.unobserve(M)}catch{}W?.targets.delete(M),d.delete(M),f.delete(M),v(B.bucketKey)};if(!o||!s.value)return T.value=!0,E(),{isVisible:T,whenVisible:P,destroy:N};const U=C(M,_);if(!U)return T.value=!0,E(),{isVisible:T,whenVisible:P,destroy:N};const F={resolve:E,visible:T,bucketKey:U.key,opts:_};return d.set(M,F),U.bucket.targets.set(M,F),U.bucket.io.observe(M),o&&m==null&&(m=window.requestAnimationFrame(()=>{m=null,x()})),_?.allowIdle!==!1&&(f.add(M),w()),{isVisible:T,whenVisible:P,destroy:N}};return S.refresh=x,fi(Eae,S),S}function K$(){var e,t;const n=Zt(Eae,void 0);if(n)return n;const i=new WeakMap,o=new Map,s=new Set;let r=null;const a=typeof window<"u"?(e=window.requestIdleCallback)!=null?e:h=>window.setTimeout(()=>h({didTimeout:!0,timeRemaining:()=>0}),16):null,l=typeof window<"u"?(t=window.cancelIdleCallback)!=null?t:h=>window.clearTimeout(h):null,c=()=>{if(r!=null){try{l?.(r)}catch{}r=null}},u=h=>{if(!h)return;const m=o.get(h);if(m&&!m.targets.size){try{m.io.disconnect()}catch{}o.delete(h)}},d=h=>{const m=i.get(h);if(!m)return;const g=o.get(m.bucketKey);if(!m.visible.value){m.visible.value=!0;try{m.resolve()}catch{}}try{g?.io.unobserve(h)}catch{}i.delete(h),g?.targets.delete(h),s.delete(h),u(m.bucketKey),s.size||c()},f=()=>{window.__MARKSTREAM_DISABLE_VIEWPORT_PRIORITY_IDLE_DRAIN__!==!0&&a&&r==null&&s.size&&(r=a(()=>{r=null;const h=s.values().next().value;h&&(s.delete(h),d(h),s.size&&f())},{timeout:1200}))};return(h,m)=>{const g=Z(!1);let y,v=!1;const k=new Promise(x=>{y=()=>{v||(v=!0,x())}}),w=()=>{const x=i.get(h);if(!x)return s.delete(h),void(s.size||c());const S=o.get(x.bucketKey);try{S?.io.unobserve(h)}catch{}i.delete(h),S?.targets.delete(h),s.delete(h),u(x.bucketKey),s.size||c()},C=(x=>{var S,M;if(typeof window>"u"||typeof IntersectionObserver>"u")return null;const _=(N=>{var U,F;return[(U=N?.rootMargin)!=null?U:mm,(F=N?.threshold)!=null?F:0].join("\0")})(x),T=o.get(_);if(T)return{key:_,bucket:T};const E=(S=x?.rootMargin)!=null?S:mm;let L;try{L=new IntersectionObserver(N=>{for(const U of N)(U.isIntersecting||U.intersectionRatio>0)&&d(U.target)},{root:null,rootMargin:E,threshold:(M=x?.threshold)!=null?M:0})}catch{return null}const P={io:L,targets:new Set};return o.set(_,P),{key:_,bucket:P}})(m);return C?(i.set(h,{resolve:y,visible:g,bucketKey:C.key}),C.bucket.targets.add(h),C.bucket.io.observe(h),m?.allowIdle!==!1&&(s.add(h),f()),{isVisible:g,whenVisible:k,destroy:w}):(g.value=!0,y(),{isVisible:g,whenVisible:k,destroy:w})}}function aJe(e,t){var n,i;const o=(i=(n=e.indexKey)!=null?n:t["index-key"])!=null?i:t.indexKey;return o==null||o===""?"":String(o)}const lJe=["data-markstream-viewport-pending"],cJe=["src","alt","title","loading","fetchpriority","decoding","tabindex","aria-label"],uJe={key:1,class:"image-placeholder"},dJe={key:1,class:"image-node__raw-text"},fJe={key:2,class:"image-error"},ah=xo(Xe({__name:"ImageNode",props:{node:{},fallbackSrc:{default:""},lazy:{type:Boolean,default:!1},usePlaceholder:{type:Boolean,default:!0}},emits:["load","error","click"],setup(e,{emit:t}){var n,i,o;const s=e,r=t,a=Z(!1),l=Z(!1),c=Z(!1),u=Z(""),d=Z("primary"),f=Z(null),h=Sm(),m=Zt(cE,null),g=K$(),y=V$(),v=U$(),k=R(()=>kq(s.node.src)),w=R(()=>kq(s.fallbackSrc)),C=(o=(i=(n=Dr())==null?void 0:n.vnode.el)==null?void 0:i.querySelector)==null?void 0:o.call(i,"img"),x=typeof window<"u"&&C?.getAttribute("src")===(k.value||w.value),S=Z(typeof window>"u"||x||!v.value),M=Is(null);let _="",T=null;const E=R(()=>u.value),L=R(()=>!s.lazy),P=R(()=>typeof window<"u"&&v.value&&!x),N=R(()=>!P.value||S.value),U=R(()=>N.value?E.value:""),F=R(()=>{var pe,Me;return(Me=(pe=y?.value.heavyBlockMargin)!=null?pe:y?.value.rootMargin)!=null?Me:mm}),B=R(()=>!s.node.loading&&d.value!=="failed"&&u.value.length>0),W=R(()=>d.value==="failed"),D=R(()=>(l.value||!L.value||P.value)&&!a.value&&!c.value&&d.value!=="failed"&&u.value.length>0),z=R(()=>aJe(s,h));function $(pe=z.value){pe&&f.value&&m?.reportHeight(pe,f.value.offsetHeight)}function j(pe=z.value){pe&&bt(()=>{$(pe)})}function G(){T&&(clearTimeout(T),T=null)}function K(){const pe=z.value;pe&&_!==pe&&(_&&m?.markSettled(_),G(),_=pe,m?.markPending(pe),typeof window<"u"&&(T=window.setTimeout(()=>{_===pe&&(j(pe),te())},8e3)))}function te(){return us(this,null,function*(){const pe=_;pe&&(G(),_="",yield bt(),$(pe),m?.markSettled(pe))})}function J(){if(d.value==="primary"&&w.value&&w.value!==u.value)return d.value="fallback",u.value=w.value,a.value=!1,c.value=!1,void j();d.value="failed",c.value=!0,r("error",u.value),j()}function q(){a.value=!0,l.value=!1,c.value=!1,r("load",E.value),j()}function Y(pe){pe.preventDefault(),a.value&&!c.value&&r("click",[pe,E.value])}const{t:ae}=oJe();return Fe([k,w,()=>s.node.loading],()=>(a.value=!1,c.value=!1,s.node.loading?(l.value=!0,u.value=k.value,void(d.value="primary")):k.value?(u.value=k.value,void(d.value="primary")):w.value?(u.value=w.value,void(d.value="fallback")):(u.value="",d.value="failed",void(c.value=!0))),{immediate:!0}),typeof window<"u"&&Fe([f,P],([pe,Me],fe,se)=>{var Q;if((Q=M.value)==null||Q.destroy(),M.value=null,!Me||S.value)return void(S.value=!0);if(!pe)return void(S.value=!1);let ee=!0;const he=g(pe,{rootMargin:F.value,allowIdle:!1});M.value=he,S.value=he.isVisible.value,he.whenVisible.then(()=>{ee&&M.value===he&&(S.value=!0)}),se(()=>{ee=!1,he.destroy(),M.value===he&&(M.value=null)})},{immediate:!0}),Fe([B,a,c,E,()=>s.lazy,N],([pe,Me,fe,se,Q,ee])=>pe&&se&&!fe&&ee?Me?(te(),void j()):Q?(K(),void j()):void(Me||fe||K()):(te(),void j()),{flush:"post",immediate:!0}),ki(()=>{var pe;(pe=M.value)==null||pe.destroy(),M.value=null,(function(){const Me=_;Me&&(G(),_="",m?.markSettled(Me))})()}),(pe,Me)=>{var fe,se,Q,ee,he;return b(),I("span",{ref_key:"rootRef",ref:f,class:"image-node-container","data-markstream-viewport-pending":P.value&&!S.value?"true":void 0},[B.value?(b(),I("img",{key:0,src:U.value||void 0,alt:String((se=(fe=s.node.alt)!=null?fe:s.node.title)!=null?se:""),title:String((ee=(Q=s.node.title)!=null?Q:s.node.alt)!=null?ee:""),class:De(["image-node__img",{"has-placeholder":e.node.loading||D.value,"is-loading":!L.value&&!a.value,"is-loaded":L.value||a.value,"has-natural-size":a.value,"cursor-pointer":a.value}]),loading:s.lazy?"lazy":void 0,fetchpriority:L.value?"high":void 0,decoding:L.value?"sync":"async",tabindex:a.value?0:-1,"aria-label":(he=s.node.alt)!=null?he:p(ae)("image.preview"),onError:J,onLoad:q,onClick:Y},null,42,cJe)):X("",!0),!e.node.loading&&!D.value||c.value?X("",!0):(b(),I("span",uJe,[s.usePlaceholder?si(pe.$slots,"placeholder",{key:0,node:s.node,displaySrc:E.value,imageLoaded:a.value,hasError:c.value,fallbackSrc:s.fallbackSrc,lazy:s.lazy},()=>[Me[0]||(Me[0]=A("span",{class:"image-shimmer"},null,-1))],!0):(b(),I("span",dJe,O(e.node.raw),1))])),W.value?(b(),I("span",fJe,[si(pe.$slots,"error",{node:s.node,displaySrc:E.value,imageLoaded:a.value,hasError:c.value,fallbackSrc:s.fallbackSrc,lazy:s.lazy},()=>[Me[1]||(Me[1]=A("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24"},[A("path",{fill:"currentColor",d:"M2 2h20v10h-2V4H4v9.586l5-5L14.414 14L13 15.414l-4-4l-5 5V20h8v2H2zm13.547 5a1 1 0 1 0 0 2a1 1 0 0 0 0-2m-3 1a3 3 0 1 1 6 0a3 3 0 0 1-6 0m3.625 6.757L19 17.586l2.828-2.829l1.415 1.415L20.414 19l2.829 2.828l-1.415 1.415L19 20.414l-2.828 2.829l-1.415-1.415L17.586 19l-2.829-2.828z"})],-1)),A("span",null,O(p(ae)("image.loadError")),1)],!0)])):X("",!0)],8,lJe)}}}),[["__scopeId","data-v-e4e45fcb"]]);ah.install=e=>{e.component(ah.__name,ah)};const Hw=ih({loader:()=>Promise.resolve().then(()=>Kae),suspensible:!1}),hJe={key:2},vf=Xe({__name:"NodeChildRenderer",props:{node:{},components:{},customId:{},indexKey:{},fallbackToText:{type:Boolean,default:!1}},setup(e){const t=e,n=zr(()=>t.customId),i=Zt("markstreamHtmlPolicy",void 0),o=Zt("markstreamNestedRendererProps",void 0),s=R(()=>{var h;return(h=i?.value)!=null?h:"safe"}),r=R(()=>{var h,m;const g=(h=o?.value)!=null?h:{};return Ji(wn({},g),{customId:(m=t.customId)!=null?m:g.customId,htmlPolicy:s.value})}),a=R(()=>t.components[String(t.node.type)]),l=R(()=>!!(a.value&&n.value[t.node.type]&&!db(String(t.node.type)))),c=R(()=>l.value?q$(t.node,s.value):void 0),u=R(()=>Array.isArray(t.node.children)&&t.node.children.length>0),d=R(()=>{var h;return String((h=t.node.content)!=null?h:"")}),f=R(()=>{var h,m;return String((m=(h=t.node.content)!=null?h:t.node.raw)!=null?m:"")});return(h,m)=>a.value&&l.value?(b(),oe(Ds(a.value),Ni({key:0},c.value,{node:e.node,loading:e.node.loading,"index-key":e.indexKey,"custom-id":e.customId,"is-dark":r.value.isDark,"data-markstream-reference-id":e.node.type==="reference"?String(e.node.id):void 0}),{default:ie(()=>[u.value?(b(),oe(p(Hw),Ni({key:0},r.value,{nodes:e.node.children,"index-key":e.indexKey,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["nodes","index-key"])):d.value?(b(),oe(p(Hw),Ni({key:1},r.value,{content:d.value,final:!e.node.loading,"index-key":`${e.indexKey||"child"}-content`,"smooth-streaming":!1,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["content","final","index-key"])):X("",!0)]),_:1},16,["node","loading","index-key","custom-id","is-dark","data-markstream-reference-id"])):a.value?(b(),oe(Ds(a.value),{key:1,node:e.node,"custom-id":e.customId,"index-key":e.indexKey,"data-markstream-reference-id":e.node.type==="reference"?String(e.node.id):void 0},null,8,["node","custom-id","index-key","data-markstream-reference-id"])):e.fallbackToText?(b(),I("span",hJe,O(f.value),1)):X("",!0)}}),pJe=["aria-busy","aria-label","data-language","data-markstream-line-numbers"],mJe={key:0,translate:"no",class:"markstream-pre__diff-code"},gJe={class:"markstream-pre__diff-pane-content"},vJe={key:0,class:"markstream-pre__diff-collapsed-icon","aria-hidden":"true"},yJe={class:"markstream-pre__diff-number","aria-hidden":"true"},bJe={class:"markstream-pre__diff-content"},kJe={class:"markstream-pre__diff-content-inner"},wJe={key:0,translate:"no",class:"markstream-pre__code markstream-pre__code--wrapped"},CJe=["data-line-number","textContent"],AJe={key:0,class:"markstream-pre__line-numbers","aria-hidden":"true"},xJe=["textContent"],SJe=["textContent"],J0=Xe({__name:"PreCodeNode",props:{node:{},loading:{type:Boolean},showLineNumbers:{type:Boolean},diffInline:{type:Boolean},diffHideUnchangedRegions:{type:[Boolean,Object]},reservedHeightPx:{}},setup(e){const t=e,n=Sm(),i=uae();function o(J,q){const Y=String(J??"");return q?Y:Y.replace(/\r\n$|\n$|\r$/,"")}const s=R(()=>{var J,q,Y;const ae=String((q=(J=t.node)==null?void 0:J.language)!=null?q:"");return String((Y=String(ae).split(/\s+/g)[0])!=null?Y:"").toLowerCase().replace(/[^\w-]/g,"")||"plaintext"}),r=R(()=>`language-${s.value}`),a=R(()=>{var J;return t.loading===!0||((J=t.node)==null?void 0:J.loading)===!0}),l=R(()=>{var J;return o((J=t.node)==null?void 0:J.code,a.value)});let c="",u=1;const d=R(()=>(function(J){let q=0,Y=1;J.startsWith(c)&&(q=c.length,Y=u,q>0&&J[q-1]==="\r"&&J[q]===` +`&&q++);for(let ae=q;ae(function(J){const q=J.length>f.length&&J.startsWith(f),Y=q?h:[],ae=q?g:0;q&&(Y.length=m);for(const Me of J.slice(ae).split(y))Y.push(Me);const pe=J[J.length-1];return pe===` +`?(m=Y.length,g=J.length,Y.push("")):(m=Y.length-1,g=J.length-Y[Y.length-1].length,pe==="\r"&&Y.push("")),f=J,h=Y,Y})(l.value)),k=R(()=>{var J;return t.showLineNumbers===!0&&((J=t.node)==null?void 0:J.diff)===!0}),w=R(()=>{var J;if(De(n.class).split(/\s+/).includes("is-wrap"))return!0;const q=nn(n.style);return typeof q=="string"?/(?:^|;)\s*white-space\s*:\s*(?:pre-wrap|break-spaces)(?:\s*!important)?\s*(?:;|$)/i.test(q):["pre-wrap","break-spaces"].includes(String((J=q?.whiteSpace)!=null?J:q?.["white-space"]))}),C=R(()=>k.value&&w.value);let x=0,S="";const M=R(()=>{const J=d.value;Jk.value&&t.diffInline===!0),T=R(()=>{const J=Number(t.reservedHeightPx);if(!Number.isFinite(J)||J<=0)return;const q=`${Math.ceil(J)}px`;return a.value?{maxHeight:q,overflow:"auto"}:{height:q,minHeight:q,maxHeight:q,overflow:"auto"}});function E(J,q){const Y=o(J,q);if(!Y)return 0;let ae=1;for(let pe=0;pe{var J,q,Y,ae,pe;return k.value?vae({code:(J=t.node)==null?void 0:J.code,hideUnchangedRegions:t.diffHideUnchangedRegions,inline:_.value,language:(q=t.node)==null?void 0:q.language,loading:a.value,matchCache:i,originalCode:(Y=t.node)==null?void 0:Y.originalCode,raw:(ae=t.node)==null?void 0:ae.raw,updatedCode:(pe=t.node)==null?void 0:pe.updatedCode}):[]}),P=R(()=>{const J=L.value;let q=1,Y=!1;for(const ae of J)for(const pe of ae.lines)pe.kind==="collapsed"&&(Y=!0),typeof pe.number=="number"&&pe.number>q&&(q=pe.number);return{maxNumberedLine:q,hasCollapsed:Y}}),N=R(()=>{var J,q;if(t.showLineNumbers!==!0)return;let Y=k.value?1:d.value;k.value&&(Y=Math.max(Y,E((J=t.node)==null?void 0:J.originalCode,a.value),E((q=t.node)==null?void 0:q.updatedCode,a.value),P.value.maxNumberedLine));const ae=`${Math.max(2,String(Y).length)}ch`;return{"--markstream-pre-line-number-width":ae,"--markstream-pre-diff-line-number-width":ae,"--markstream-code-padding-left":"calc(var(--markstream-pre-line-number-padding-left, 2ch) + var(--markstream-pre-line-number-width, 2ch) + var(--markstream-pre-line-number-padding-right, 1ch) + var(--markstream-pre-line-number-separator-width, 2px) + var(--markstream-pre-line-number-gap-to-code, 1ch))"}}),U=R(()=>k.value&&P.value.hasCollapsed),F=R(()=>{const J=s.value;return J?`Code block: ${J}`:"Code block"}),B=Z(null),W=Z([]);let D=null,z=null,$=!1,j=null;function G(){if($||typeof window>"u"||!k.value||_.value||!C.value||D!=null)return;const J=z??(z=pn(()=>import("./preCodeDiffMetrics-CMO2XhRi.js"),[]));D=window.requestAnimationFrame(()=>{J.then(({measurePreCodeDiffLines:q})=>{!$&&B.value&&(W.value=q(B.value,W.value))},()=>{z=null}).finally(()=>{D=null})})}function K(J){j?.disconnect(),j=null,J&&k.value&&!_.value&&C.value&&typeof ResizeObserver<"u"&&(j=new ResizeObserver(()=>{G()}),j.observe(J))}function te(J,q){if(!C.value)return;const Y=W.value[J];if(!Y)return;const ae=q==="original"?Y.originalHeight:Y.modifiedHeight;return{"--markstream-pre-diff-synced-row-height":`${Math.ceil(Y.rowHeight)}px`,"--markstream-pre-diff-content-height":`${Math.ceil(ae)}px`}}return Fe(B,J=>{K(J),G()},{flush:"post"}),Fe([k,_,L,C],()=>{K(B.value),k.value&&!_.value&&C.value?G():W.value.length&&(W.value=[])},{flush:"post",immediate:!0}),ki(()=>{$=!0,D!=null&&(window.cancelAnimationFrame(D),D=null),j?.disconnect(),j=null}),(J,q)=>{return b(),I("pre",{ref_key:"preRef",ref:B,style:nn([T.value,N.value]),class:De([r.value,{"markstream-pre--line-numbers":t.showLineNumbers,"markstream-pre--diff-preview":k.value,"markstream-pre--diff-inline":_.value,"markstream-pre--diff-collapsed":U.value}]),"aria-busy":a.value,"aria-label":F.value,"data-language":s.value,"data-markstream-line-numbers":t.showLineNumbers?"1":void 0,"data-markstream-pre":"1",tabindex:"0"},[k.value?(b(),I("code",mJe,[(b(!0),I(_e,null,yt(L.value,ae=>(b(),I("span",{key:ae.key,class:De(["markstream-pre__diff-pane",ae.className])},[A("span",gJe,[(b(!0),I(_e,null,yt(ae.lines,(pe,Me)=>(b(),I("span",{key:pe.key,class:De(["markstream-pre__diff-line",[`markstream-pre__diff-line--${pe.kind}`,pe.metadataKind?`markstream-pre__diff-line--metadata-${pe.metadataKind}`:"",{"markstream-pre__diff-line--empty":pe.empty,"markstream-pre__diff-line--collapsed-first":pe.collapsedFirst===!0,"markstream-pre__diff-line--collapsed-last":pe.collapsedLast===!0}]]),style:nn(te(Me,ae.key))},[q[1]||(q[1]=A("span",{class:"markstream-pre__diff-rail","aria-hidden":"true"},null,-1)),pe.kind==="collapsed"?(b(),I("span",vJe,[...q[0]||(q[0]=[A("svg",{viewBox:"0 0 16 16",width:"16",height:"16","aria-hidden":"true"},[A("path",{d:"M3.47 5.47a.75.75 0 0 1 1.06 0L8 8.94l3.47-3.47a.75.75 0 1 1 1.06 1.06l-4 4a.75.75 0 0 1-1.06 0l-4-4a.75.75 0 0 1 0-1.06"})],-1)])])):X("",!0),A("span",yJe,O(pe.number),1),A("span",bJe,[A("span",kJe,O(pe.code),1)])],6))),128))])],2))),128))])):(b(),I(_e,{key:1},[t.showLineNumbers===!0&&((Y=t.node)==null?void 0:Y.diff)!==!0&&w.value?(b(),I("code",wJe,[(b(!0),I(_e,null,yt(v.value,(ae,pe)=>(b(),I("span",{key:pe,class:"markstream-pre__logical-line","data-line-number":pe+1,textContent:O(ae)},null,8,CJe))),128))])):(b(),I(_e,{key:1},[t.showLineNumbers?(b(),I("span",AJe,[A("span",{class:"markstream-pre__line-numbers-text",textContent:O(M.value)},null,8,xJe)])):X("",!0),A("code",{translate:"no",class:"markstream-pre__code",textContent:O(l.value)},null,8,SJe)],64))],64))],14,pJe);var Y}}});J0.install=e=>{e.component(J0.__name,J0)};const _Je=["onAnimationend"],sr=xo(Xe({__name:"TextNode",props:{node:{}},emits:["copy"],setup(e){const t=e,n=Sm(),i=Zt("markstreamFade",void 0),o=Zt("markstreamTextStreamState",void 0),s=R(()=>{const L=n.fade;return L===""||L===!0||L==="true"||L!==!1&&L!=="false"&&void 0}),r=R(()=>typeof s.value=="boolean"?s.value:typeof i?.value!="boolean"||i.value),a=R(()=>{var L;const P=(L=n["index-key"])!=null?L:n.indexKey;return P==null||P===""?"":String(P)}),{settledContent:l,segments:c,update:u,finish:d,settleFinished:f}=Iae(t.node.content),h=Z(null),m=Z(null),g=Z([]);let y,v="",k=null,w=null,C=!1;function x(){var L;if(!g.value.length)return!1;const P=(L=document.getSelection)==null?void 0:L.call(document);if(!P||P.isCollapsed)return!1;for(let N=0;NU.intersectsNode(F)))return!0}return!1}function S(L){const P=a.value;u(L,P?o?.get(P):void 0,r.value),P&&o?.set(P,L)}Fe([l,h,m],function(){var L,P;const N=h.value;if(!N)return;const U=String((L=l.value)!=null?L:""),F=m.value;return k||(k=N.firstChild,v=(P=k?.data)!=null?P:""),U.startsWith(v)?!k&&U?(N.textContent=U,k=N.firstChild,void(v=U)):void(U.length>v.length&&F&&(F.appendChild(document.createTextNode(U.slice(v.length))),v=U,(function(B){var W,D;if(B.childNodes.length<=4||(function($){var j;const G=(j=document.getSelection)==null?void 0:j.call(document);if(!G||G.rangeCount===0)return!1;const{anchorNode:K,focusNode:te}=G;return K!=null&&$.contains(K)||te!=null&&$.contains(te)})(B))return;let z="";for(let $=0;$t.node.content,a,r],([L])=>{const P=String(L??"");if(x())return w=P,void T();w=null,C=!1,S(P)},{immediate:!0});const M=Z(l.value);function _(){if(!x())if(E(),w!=null){const L=w;w=null,C=!1,S(L),f()}else C&&(C=!1,f())}function T(){y||(y=document,y.addEventListener("selectionchange",_))}function E(){y?.removeEventListener("selectionchange",_),y=void 0}return Qr(E),(L,P)=>(b(),I("span",{class:De([[e.node.center?"text-node-center":""],"text-node"])},[qi(A("span",{ref_key:"settledTextEl",ref:h},O(M.value),513),[[Js,p(l)!==""]]),qi(A("span",{ref_key:"settledAppendsEl",ref:m},null,512),[[Js,p(l)!==""]]),(b(!0),I(_e,null,yt(p(c),N=>(b(),I("span",{key:N.id,ref_for:!0,ref_key:"streamedDeltaEls",ref:g,class:"text-node-stream-delta",onAnimationend:U=>(function(F){const B=x();d(F,B),B&&(C=!0,T())})(N.id)},O(N.content),41,_Je))),128))],2))}}),[["__scopeId","data-v-3be01052"]]);function IJe(e){var t;if(typeof e=="boolean")return e;const n=e;if(n?.expandUnchanged===!0)return!1;const i=Number((t=n?.parseDiffOptions)==null?void 0:t.context),o=Number(n?.collapsedContextThreshold);return{enabled:!0,contextLineCount:isFinite(i)&&i>=0?Math.floor(i):2,minimumLineCount:isFinite(o)&&o>=0?Math.floor(o)+1:6,revealLineCount:5}}function kE(e){return e.diffStyle==="unified"}function Pae(e){var t,n;const i=(n=(t=String(e??"").split(/\r?\n/,1)[0])==null?void 0:t.trim())!=null?n:"";if(i.length<3)return"";const o=i[0];if(o!=="`"&&o!=="~"||i[1]!==o||i[2]!==o)return"";let s=3;for(;i[s]===o;)s+=1;return i.slice(s).trim()}function dU(e){var t;return((t=String(e??"").trim().split(/\s+/,1)[0])!=null?t:"")==="diff"}function TJe(e){var t;return e.diff===!0||dU(e.language)||dU(Pae(String((t=e.raw)!=null?t:"")))}function MJe(e,t,n){const i=(function(o){const s=Pae(o);if(!s)return"";const r=s.split(/\s+/).filter(Boolean);if(!r.length)return"";const a=r[0]==="diff"?r.slice(1):r;for(const l of a){const c=l.includes(":")?l.slice(l.indexOf(":")+1):l;if(c&&/[./\\-]/.test(c))return c}return""})(e);return{title:i||t,caption:i?n?`Diff / ${t}`:t:""}}function fU(e){const t=String(e??"").replace(/\r\n$|\n$|\r$/,"");return t?t.split(/\r\n|\n|\r/):[]}sr.install=e=>{e.component(sr.__name,sr)};let hU="",pU="",c_=null;function urn(e,t){var n;if(c_&&hU===e&&pU===t)return c_;const i=fU(e),o=fU(t);let s=0,r=i.length-1,a=o.length-1;for(;s<=r&&s<=a&&i[s]===o[s];)s++;for(;r>=s&&a>=s&&i[r]===o[a];)r--,a--;const l=Math.max(0,r-s+1),c=Math.max(0,a-s+1);let u;if(l===0||c===0)u={removed:l,added:c};else if((l+1)*(c+1)<=15e5){const d=new Map,f=new Uint32Array(c);for(let k=0;k=0;k--){y[c]=0;for(let C=c-1;C>=0;C--)y[C]=h[k]===f[C]?g[C+1]+1:Math.max(g[C],y[C+1]);const w=g;g=y,y=w}const v=g[0];u={removed:l-v,added:c-v}}else u={removed:l,added:c};return hU=e,pU=t,c_=u,u}function EJe(e){var t,n,i,o,s;const r=e.isDark?"dark":"light";return e.theme!==void 0?typeof e.theme=="string"?e.theme:e.theme[r]:(s=e.isDark?(n=e.darkTheme)!=null?n:(t=e.themes)==null?void 0:t[0]:(o=e.lightTheme)!=null?o:(i=e.themes)==null?void 0:i[1])!=null?s:`vitesse-${r}`}function LJe(e,t=!1){const n=e.toLowerCase();return n?/dark|night|moon|black|dracula|mocha|frappe|macchiato|ocean|poimandres|monokai|laserwave|tokyo|rose-pine|material-theme/.test(n)&&!/light|latte|dawn|lotus/.test(n):t}function RJe(e){const t=EJe(e),n=t==="vitesse-dark"||t!=="vitesse-light"&&LJe(t,e.isDark===!0);if(t!=="vitesse-dark"&&t!=="vitesse-light"){const i=n?"var(--markstream-code-theme-bg, #121212)":"var(--markstream-code-theme-bg, #ffffff)";return{builtin:!1,dark:n,name:t,background:i,diffAddedLine:`color-mix(in lab, ${i} ${n?"80%":"88%"}, ${n?"#4d9375":"#1e754f"})`,diffAddedNumber:`color-mix(in lab, ${i} ${n?"85%":"91%"}, ${n?"#4d9375":"#1e754f"})`,diffRemovedLine:`color-mix(in lab, ${i} ${n?"80%":"88%"}, ${n?"#cb7676":"#ab5959"})`,diffRemovedNumber:`color-mix(in lab, ${i} ${n?"85%":"91%"}, ${n?"#cb7676":"#ab5959"})`,foreground:n?"var(--markstream-code-theme-fg, #dbd7caee)":"var(--markstream-code-theme-fg, #393a34)",lineNumber:n?"var(--markstream-code-theme-line-number, #dedcd550)":"var(--markstream-code-theme-line-number, #393a3450)"}}return n?{builtin:!0,dark:!0,name:t,background:"#121212",diffAddedLine:"color-mix(in lab, #121212 80%, #4d9375)",diffAddedNumber:"color-mix(in lab, #121212 85%, #4d9375)",diffRemovedLine:"color-mix(in lab, #121212 80%, #cb7676)",diffRemovedNumber:"color-mix(in lab, #121212 85%, #cb7676)",foreground:"#dbd7caee",lineNumber:"#dedcd550"}:{builtin:!0,dark:!1,name:t,background:"#ffffff",diffAddedLine:"color-mix(in lab, #ffffff 88%, #1e754f)",diffAddedNumber:"color-mix(in lab, #ffffff 91%, #1e754f)",diffRemovedLine:"color-mix(in lab, #ffffff 88%, #ab5959)",diffRemovedNumber:"color-mix(in lab, #ffffff 91%, #ab5959)",foreground:"#393a34",lineNumber:"#393a3450"}}const drn=12,frn=18;function Q5(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:void 0}function wE(e){var t,n,i,o,s,r;const a=(t=Q5(e?.fontSize))!=null?t:12,l=(n=Q5(e?.lineHeight))!=null?n:a===12?18:Math.max(12,Math.round(1.5*a)),c=typeof e?.fontFamily=="string"&&e.fontFamily.trim()?e.fontFamily.trim():'"SF Mono", Monaco, Consolas, "Ubuntu Mono", "Liberation Mono", "Courier New", monospace',u=(i=typeof(d=e?.padding)=="number"&&Number.isFinite(d)&&d>=0?d:void 0)!=null?i:8;var d;return{fontFamily:c,fontSize:a,lineHeight:l,maxHeight:(o=Q5(e?.maxHeight))!=null?o:500,overflow:(s=e?.overflow)!=null?s:"wrap",padding:u,paddingBottom:u,scrollbarGutter:6,tabSize:(r=Q5(e?.tabSize))!=null?r:4}}function vk(e,t,n){return Xe({name:e,inheritAttrs:!1,setup(i,{attrs:o,slots:s}){var r,a;const l=K$(),c=V$(),u=U$(),d=typeof window<"u"&&((a=(r=Dr())==null?void 0:r.vnode.el)==null?void 0:a.nodeType)===1,f=Z(typeof window>"u"||d||!u.value),h=Is(null);let m=null;function g(y){const v=y&&"$el"in y?y.$el:y;h.value=v instanceof HTMLElement?v:null}return typeof window<"u"&&Fe([h,u],([y,v],k,w)=>{if(m?.destroy(),m=null,!v||f.value)return void(f.value=!0);if(!y)return;let C=!0;const x=l(y,{rootMargin:c?.value.heavyBlockMargin,allowIdle:!1});m=x,f.value=x.isVisible.value,x.whenVisible.then(()=>{C&&m===x&&(f.value=!0)}),w(()=>{C=!1,x.destroy(),m===x&&(m=null)})},{immediate:!0}),ki(()=>{m?.destroy(),m=null}),()=>Gn(f.value?t:n,Ji(wn({},o),{ref:g}),s)}})}const CE=Xe({name:"CodeBlockNodeLoadingShell",inheritAttrs:!1,props:["node","isDark","loading","stream","codeBlockOptions","showLineNumbers","theme","darkTheme","lightTheme","isShowPreview","showHeader","showCopyButton","showExpandButton","showPreviewButton","showCollapseButton","showFontSizeButtons","enableFontSizeControl","minWidth","maxWidth","themes","showTooltips","htmlPreviewAllowScripts","htmlPreviewSandbox","customId","indexKey","estimatedHeightPx","estimatedContentHeightPx","estimatedDiffInline","diffInline","diffHideUnchangedRegions","reservedHeightPx"],emits:["click","mouseover","mouseout","copy","previewCode","handleArtifactClick"],setup(e,{attrs:t}){const n=e,i=uae();return()=>{var o,s,r,a,l,c,u,d,f,h,m,g;const y=(o=n.codeBlockOptions)!=null?o:{},v=wE(y),k=RJe({darkTheme:n.darkTheme,isDark:n.isDark,lightTheme:n.lightTheme,theme:n.theme,themes:n.themes}),w=BC(String((r=(s=n.node)==null?void 0:s.language)!=null?r:"")),C=TJe(n.node),x=MJe(String((l=(a=n.node)==null?void 0:a.raw)!=null?l:""),dE[w]||(w==="typescript"?"TypeScript":w?w.charAt(0).toUpperCase()+w.slice(1):dE[""]),C),S=C?vae({originalCode:(c=n.node)==null?void 0:c.originalCode,updatedCode:(u=n.node)==null?void 0:u.updatedCode,loading:!0,matchCache:i}).flatMap(U=>U.lines):[],M=C?{removed:S.filter(U=>U.kind==="removed").length,added:S.filter(U=>U.kind==="added").length}:null,_=Number((d=n.estimatedContentHeightPx)!=null?d:n.reservedHeightPx),T=!C&&Number.isFinite(_)&&_>0?Math.min(v.maxHeight,Math.ceil(_)):void 0,E=U=>Gn("button",{class:`code-action-btn code-loading-action code-loading-action--${U} inline-flex items-center justify-center p-[var(--ms-action-btn-padding)] rounded leading-none shrink-0`,"aria-hidden":"true",disabled:!0,tabindex:-1,type:"button"}),L=n.showExpandButton!==!1||n.showPreviewButton!==!1&&n.isShowPreview!==!1&&(w==="html"||w==="svg")||n.showFontSizeButtons!==!1&&n.enableFontSizeControl!==!1,P=U=>U==null?void 0:typeof U=="number"?`${U}px`:String(U),N={"--code-bg":k.background,"--code-fg":k.foreground,"--code-line-number":k.lineNumber,"--markstream-code-fallback-bg":k.background,"--markstream-code-fallback-fg":k.foreground,"--markstream-diff-added-line-fill":k.diffAddedLine,"--markstream-diff-added-number-fill":k.diffAddedNumber,"--markstream-diff-editor-bg":k.background,"--markstream-diff-metadata-bg":k.background,"--markstream-diff-metadata-fg":k.lineNumber,"--markstream-diff-removed-line-fill":k.diffRemovedLine,"--markstream-diff-removed-number-fill":k.diffRemovedNumber,"--markstream-diff-shell-bg":k.background,"--markstream-pre-resolved-theme-bg":k.background,"--markstream-pre-resolved-theme-fg":k.foreground,"--markstream-pre-resolved-theme-line-number":k.lineNumber};return Gn("div",Ji(wn({},t),{class:["code-block-container rounded-lg border",{dark:n.isDark===!0,"is-dark":k.dark,"is-rendering":n.loading!==!1,"is-diff":C},t.class],style:[wn(Ji(wn({},N),{backgroundColor:k.background,color:k.foreground,minWidth:P(n.minWidth),maxWidth:P(n.maxWidth)}),C?{}:{borderColor:"var(--markstream-code-border-color, var(--code-border))"}),t.style],"data-markstream-code-block":"1","data-markstream-enhanced":"false","data-markstream-code-block-state":n.loading?"streaming":"settled","data-markstream-code-loading":"1"}),[n.showHeader===!1?null:Gn("div",{class:"code-block-header flex justify-between items-center border-b px-[var(--ms-inset-panel-x)] py-[var(--ms-inset-panel-y)] border-[var(--code-border)] bg-[var(--code-header-bg)] text-[var(--code-fg)]"},[Gn("div",{class:"code-header-main"},[Gn("span",{class:"icon-slot h-4 w-4 flex-shrink-0","aria-hidden":"true",innerHTML:HQe(w)}),Gn("div",{class:"code-header-copy"},[Gn("div",{class:"code-header-title"},x.title),x.caption?Gn("div",{class:"code-header-caption"},x.caption):null])]),Gn("div",{class:"flex items-center gap-0.5"},[M?Gn("div",{class:"code-diff-stats","aria-label":`-${M.removed} +${M.added}`},[Gn("span",{class:"code-diff-stat removed"},`-${M.removed}`),Gn("span",{class:"code-diff-stat added"},`+${M.added}`)]):null,n.showCopyButton===!1?null:E("copy"),n.showCollapseButton===!1?null:E("collapse"),L?Gn("div",{class:"relative"},[E("more")]):null])]),Gn("div",{class:"code-block-shell-content",style:n.stream!==!1||n.loading===!1?void 0:{display:"none"}},[Gn(J0,{node:n.node,loading:n.loading,showLineNumbers:(f=n.showLineNumbers)!=null?f:y.disableLineNumbers!==!0,diffInline:C&&!!((m=(h=n.diffInline)!=null?h:n.estimatedDiffInline)!=null?m:y.diffStyle==="unified"),diffHideUnchangedRegions:C?(g=n.diffHideUnchangedRegions)!=null?g:IJe(y):void 0,reservedHeightPx:T,class:["code-pre-fallback",{"is-wrap":v.overflow==="wrap"}],style:Ji(wn({},N),{"--markstream-code-padding-x":`${v.padding}px`,"--markstream-code-padding-y":`${v.padding}px`,"--markstream-code-tab-size":v.tabSize,"--markstream-pre-diff-line-height":`${v.lineHeight}px`,backgroundColor:k.background,color:k.foreground,fontFamily:v.fontFamily,fontSize:`${v.fontSize}px`,lineHeight:`${v.lineHeight}px`,maxHeight:`${T??v.maxHeight}px`,overflow:"auto",paddingTop:`${v.padding}px`,paddingBottom:`${v.paddingBottom}px`,tabSize:v.tabSize,whiteSpace:v.overflow==="wrap"?"pre-wrap":"pre",overflowWrap:v.overflow==="wrap"?"anywhere":"normal"}),"data-markstream-code-loading":"1"})]),Gn("div",{class:"code-loading-placeholder",style:n.stream===!1&&n.loading!==!1?void 0:{display:"none"}},[Gn("div",{class:"loading-skeleton"},[Gn("div",{class:"skeleton-line"}),Gn("div",{class:"skeleton-line"}),Gn("div",{class:"skeleton-line short"})])])])}}}),vy=ih({loader:()=>pn(()=>import("./PreCodeBlock-txKBqZ4o.js").then(e=>e.P),[]),loadingComponent:CE,delay:0,suspensible:!0}),u_=vk("ViewportDeferredCodeBlockNode",ih({loader:()=>us(null,null,function*(){try{return(yield pn(()=>import("./CodeBlockNode-DXHZxqco.js"),__vite__mapDeps([2,3,4]))).default}catch(e){return console.warn('[markstream-vue] Failed to load the enhanced CodeBlockNode chunk; falling back to preformatted code rendering. Enhanced code blocks require the optional "stream-diffs" peer.',e),J0}}),loadingComponent:CE,delay:0,suspensible:!1}),CE),dd=ih(()=>us(null,null,function*(){var e;if(((e=(function(){const t=Reflect.get(globalThis,"process");return t?.env})())==null?void 0:e.NODE_ENV)==="test"&&typeof window<"u")return t=>{var n,i,o,s;return Gn(sr,Ji(wn({},t),{node:{type:"text",content:(i=t.node.raw)!=null?i:`$${(n=t.node.content)!=null?n:""}$`,raw:(s=t.node.raw)!=null?s:`$${(o=t.node.content)!=null?o:""}$`}}))};try{return yield lae(),(yield pn(()=>import("./index6-j0GEB-FX.js"),[])).default}catch(t){console.warn('[markstream-vue] Optional peer dependencies for MathInlineNode are missing. Falling back to text rendering. To enable full math rendering features, please install "katex".',t)}return t=>{var n,i,o,s;return Gn(sr,Ji(wn({},t),{node:{type:"text",content:(i=t.node.raw)!=null?i:`$${(n=t.node.content)!=null?n:""}$`,raw:(s=t.node.raw)!=null?s:`$${(o=t.node.content)!=null?o:""}$`}}))}})),$ae=ih(()=>us(null,null,function*(){try{return yield lae(),(yield pn(()=>import("./index5-Cn8mMRE9.js"),[])).default}catch(e){console.warn('[markstream-vue] Optional peer dependencies for MathBlockNode are missing. Falling back to text rendering. To enable full math rendering features, please install "katex".',e)}return e=>{var t,n,i,o;return Gn(sr,Ji(wn({},e),{node:{type:"text",content:(n=e.node.raw)!=null?n:`$$${(t=e.node.content)!=null?t:""}$$`,raw:(o=e.node.raw)!=null?o:`$$${(i=e.node.content)!=null?i:""}$$`}}))}})),PJe=["data-reference-id","data-markstream-reference-id"],gl=xo(Xe({__name:"ReferenceNode",props:{node:{},messageId:{},threadId:{}},emits:["click","mouseEnter","mouseLeave"],setup:e=>(t,n)=>(b(),I("span",{class:"reference-node cursor-pointer text-xs rounded-md px-1.5 mx-0.5",role:"button",tabindex:"0","data-reference-id":e.node.id,"data-markstream-reference-id":e.node.id,onClick:n[0]||(n[0]=i=>t.$emit("click",i,e.node.id,e.messageId,e.threadId)),onMouseenter:n[1]||(n[1]=i=>t.$emit("mouseEnter",i,e.node.id,e.messageId,e.threadId)),onMouseleave:n[2]||(n[2]=i=>t.$emit("mouseLeave",i,e.node.id,e.messageId,e.threadId))},O(e.node.id),41,PJe))}),[["__scopeId","data-v-b96c91c3"]]);gl.install=e=>{e.component(gl.__name,gl)};const $Je={class:"superscript-node"},Vl=xo(Xe({__name:"SuperscriptNode",props:{node:{},customId:{},indexKey:{}},setup(e){const t=e,n=zr(()=>t.customId),i=R(()=>wn({text:sr,inline_code:qa,link:bl,html_inline:Pc,strong:vl,emphasis:kl,footnote_reference:Rc,strikethrough:yl,highlight:$c,insert:Kl,subscript:Ul,emoji:ql,math_inline:dd,reference:gl},n.value));return(o,s)=>(b(),I("sup",$Je,[(b(!0),I(_e,null,yt(e.node.children,(r,a)=>(b(),oe(p(vf),{key:`${e.indexKey||"superscript"}-${a}`,components:i.value,node:r,"custom-id":t.customId,"index-key":`${e.indexKey||"superscript"}-${a}`,"fallback-to-text":""},null,8,["components","node","custom-id","index-key"]))),128))]))}}),[["__scopeId","data-v-24160b22"]]);Vl.install=e=>{e.component(Vl.__name,Vl)};const OJe={class:"subscript-node"},Ul=xo(Xe({__name:"SubscriptNode",props:{node:{},customId:{},indexKey:{}},setup(e){const t=e,n=zr(()=>t.customId),i=R(()=>wn({text:sr,inline_code:qa,link:bl,html_inline:Pc,strong:vl,emphasis:kl,footnote_reference:Rc,strikethrough:yl,highlight:$c,insert:Kl,superscript:Vl,emoji:ql,math_inline:dd,reference:gl},n.value));return(o,s)=>(b(),I("sub",OJe,[(b(!0),I(_e,null,yt(e.node.children,(r,a)=>(b(),oe(p(vf),{key:`${e.indexKey||"subscript"}-${a}`,components:i.value,node:r,"custom-id":t.customId,"index-key":`${e.indexKey||"subscript"}-${a}`,"fallback-to-text":""},null,8,["components","node","custom-id","index-key"]))),128))]))}}),[["__scopeId","data-v-197fa13b"]]);Ul.install=e=>{e.component(Ul.__name,Ul)};const FJe={class:"strong-node"},vl=xo(Xe({__name:"StrongNode",props:{node:{},customId:{},indexKey:{}},setup(e){const t=e,n=zr(()=>t.customId),i=R(()=>wn({text:sr,inline_code:qa,link:bl,html_inline:Pc,emphasis:kl,strikethrough:yl,highlight:$c,insert:Kl,subscript:Ul,superscript:Vl,emoji:ql,footnote_reference:Rc,math_inline:dd,reference:gl},n.value));return(o,s)=>(b(),I("strong",FJe,[(b(!0),I(_e,null,yt(e.node.children,(r,a)=>(b(),oe(p(vf),{key:`${e.indexKey||"strong"}-${a}`,components:i.value,node:r,"index-key":`${e.indexKey||"strong"}-${a}`,"custom-id":t.customId},null,8,["components","node","index-key","custom-id"]))),128))]))}}),[["__scopeId","data-v-a8647104"]]);vl.install=e=>{e.component(vl.__name,vl)};const DJe={class:"strikethrough-node"},yl=xo(Xe({__name:"StrikethroughNode",props:{node:{},customId:{},indexKey:{}},setup(e){const t=e,n=zr(()=>t.customId),i=R(()=>wn({text:sr,inline_code:qa,link:bl,html_inline:Pc,strong:vl,emphasis:kl,highlight:$c,insert:Kl,subscript:Ul,superscript:Vl,emoji:ql,footnote_reference:Rc,math_inline:dd,reference:gl},n.value));return(o,s)=>(b(),I("del",DJe,[(b(!0),I(_e,null,yt(e.node.children,(r,a)=>(b(),oe(p(vf),{key:`${e.indexKey||"strikethrough"}-${a}`,components:i.value,node:r,"custom-id":t.customId,"index-key":`${e.indexKey||"strikethrough"}-${a}`},null,8,["components","node","custom-id","index-key"]))),128))]))}}),[["__scopeId","data-v-b7a531fa"]]);yl.install=e=>{e.component(yl.__name,yl)};const NJe=["href","title","aria-label","aria-hidden","target","rel"],BJe=["aria-hidden"],zJe={class:"link-text-wrapper relative inline-flex"},HJe={class:"leading-[normal] link-text"},bl=xo(Xe({__name:"LinkNode",props:{node:{},indexKey:{},customId:{},showTooltip:{type:Boolean,default:!0},color:{},underlineHeight:{},underlineBottom:{},animationDuration:{},animationOpacity:{},animationTiming:{},animationIteration:{}},setup(e){const t=e,n=Zt("markstreamShowTooltips",void 0),i=R(()=>{const v=n?.value;return typeof v=="boolean"?v:t.showTooltip}),o=R(()=>{var v,k,w,C,x;const S=t.underlineBottom!==void 0?typeof t.underlineBottom=="number"?`${t.underlineBottom}px`:String(t.underlineBottom):"-3px",M=(v=t.animationOpacity)!=null?v:.35,_=Math.max(.12,Math.min(.5*M,M)),T={"--underline-height":`${(k=t.underlineHeight)!=null?k:2}px`,"--underline-bottom":S,"--underline-opacity":String(M),"--underline-rest-opacity":String(_),"--underline-duration":`${(w=t.animationDuration)!=null?w:1.6}s`,"--underline-timing":(C=t.animationTiming)!=null?C:"ease-in-out","--underline-iteration":typeof t.animationIteration=="number"?String(t.animationIteration):(x=t.animationIteration)!=null?x:"infinite"};return t.color&&(T["--link-color"]=t.color),T}),s=zr(()=>t.customId),r=R(()=>wn({text:sr,strong:vl,strikethrough:yl,emphasis:kl,image:ah,html_inline:Pc,inline_code:qa},s.value)),a=Sm(),l=R(()=>{var v,k;const w=(v=t.node)==null?void 0:v.attrs;if(!w||typeof w!="object")return{};const C={};if(Array.isArray(w))for(const x of w)Array.isArray(x)&&x[0]&&(C[String(x[0])]=String((k=x[1])!=null?k:""));else for(const[x,S]of Object.entries(w))x&&S!=null&&S!==!1&&(C[x]=S===!0?"":String(S));return oU(C,"safe","a")}),c=R(()=>wn(wn({},a),l.value)),u=R(()=>{var v,k;return oU({href:String((k=(v=t.node)==null?void 0:v.href)!=null?k:"")},"safe","a").href}),d=R(()=>{if(!u.value)return;const v=c.value.target;return(typeof v=="string"?v.trim():String(v??"").trim())||(aqe(u.value)?"_blank":void 0)}),f=R(()=>{var v;return String((v=d.value)!=null?v:"").trim().toLowerCase()==="_blank"}),h=R(()=>{if(!u.value)return;const v=c.value.rel,k=new Set((typeof v=="string"?v:String(v??"")).split(/\s+/).filter(Boolean)),w=new Set(Array.from(k).filter(C=>C.toLowerCase()!=="opener"));return f.value&&(w.add("noopener"),w.add("noreferrer")),w.size>0?Array.from(w).join(" "):void 0}),m=R(()=>{const v=wn({},c.value);return delete v.title,delete v.href,delete v.target,delete v.rel,v});function g(){i.value&&tJe()}const y=R(()=>{var v,k;const w=(v=t.node)==null?void 0:v.title;return typeof w=="string"&&w.trim().length>0?w:String((k=u.value)!=null?k:"")});return(v,k)=>{var w,C;return e.node.loading?(b(),I("span",Ni({key:1,class:"link-loading inline-flex items-baseline gap-1.5","aria-hidden":e.node.loading?"false":"true"},p(a),{style:o.value}),[A("span",zJe,[A("span",HJe,[V(p(sr),{class:"leading-[normal] link-text",node:{type:"text",content:String((w=e.node.text)!=null?w:""),raw:String((C=e.node.text)!=null?C:"")},"index-key":`${e.indexKey||"link-text"}-loading`},null,8,["node","index-key"])]),k[1]||(k[1]=A("span",{class:"link-loading-indicator","aria-hidden":"true"},null,-1))])],16,BJe)):(b(),I("a",Ni({key:0,class:"link-node",href:u.value,title:i.value?"":y.value,"aria-label":`Link: ${y.value}`,"aria-hidden":e.node.loading?"true":"false",target:d.value,rel:h.value},m.value,{style:o.value,onMouseenter:k[0]||(k[0]=x=>(function(S){var M,_,T,E;if(!i.value)return;const L=S,P=L?.clientX!=null&&L?.clientY!=null?{x:L.clientX,y:L.clientY}:void 0,N=((M=t.node)==null?void 0:M.title)||((_=u.value)!=null&&_.includes("xn--")&&((E=(T=t.node)==null?void 0:T.text)!=null&&E.includes("://"))?t.node.text:u.value)||"";eJe(S.currentTarget,N,"top",!1,P)})(x)),onMouseleave:g}),[(b(!0),I(_e,null,yt(e.node.children,(x,S)=>(b(),oe(p(vf),{key:`${e.indexKey||"emphasis"}-${S}`,components:r.value,node:x,"custom-id":t.customId,"index-key":`${e.indexKey||"link-text"}-${S}`},null,8,["components","node","custom-id","index-key"]))),128))],16,NJe))}}}),[["__scopeId","data-v-a414d325"]]);bl.install=e=>{e.component(bl.__name,bl)};const jJe={class:"insert-node"},Kl=xo(Xe({__name:"InsertNode",props:{node:{},customId:{},indexKey:{}},setup(e){const t=e,n=zr(()=>t.customId),i=R(()=>wn({text:sr,inline_code:qa,link:bl,html_inline:Pc,strong:vl,emphasis:kl,strikethrough:yl,highlight:$c,subscript:Ul,superscript:Vl,emoji:ql,footnote_reference:Rc,math_inline:dd,reference:gl},n.value));return(o,s)=>(b(),I("ins",jJe,[(b(!0),I(_e,null,yt(e.node.children,(r,a)=>(b(),oe(p(vf),{key:`${e.indexKey||"insert"}-${a}`,components:i.value,node:r,"custom-id":t.customId,"index-key":`${e.indexKey||"insert"}-${a}`},null,8,["components","node","custom-id","index-key"]))),128))]))}}),[["__scopeId","data-v-1e2c29d4"]]);Kl.install=e=>{e.component(Kl.__name,Kl)};const WJe={class:"highlight-node"},$c=xo(Xe({__name:"HighlightNode",props:{node:{},customId:{},indexKey:{}},setup(e){const t=e,n=zr(()=>t.customId),i=R(()=>wn({text:sr,inline_code:qa,link:bl,html_inline:Pc,strong:vl,emphasis:kl,strikethrough:yl,insert:Kl,subscript:Ul,superscript:Vl,emoji:ql,footnote_reference:Rc,math_inline:dd,reference:gl},n.value));return(o,s)=>(b(),I("mark",WJe,[(b(!0),I(_e,null,yt(e.node.children,(r,a)=>(b(),oe(p(vf),{key:`${e.indexKey||"highlight"}-${a}`,components:i.value,node:r,"custom-id":t.customId,"index-key":`${e.indexKey||"highlight"}-${a}`},null,8,["components","node","custom-id","index-key"]))),128))]))}}),[["__scopeId","data-v-7a62982a"]]);$c.install=e=>{e.component($c.__name,$c)};const qJe={class:"emphasis-node"},kl=xo(Xe({__name:"EmphasisNode",props:{node:{},customId:{},indexKey:{}},setup(e){const t=e,n=zr(()=>t.customId),i=R(()=>wn({text:sr,inline_code:qa,link:bl,html_inline:Pc,strong:vl,strikethrough:yl,highlight:$c,insert:Kl,subscript:Ul,superscript:Vl,emoji:ql,footnote_reference:Rc,math_inline:dd,reference:gl},n.value));return(o,s)=>(b(),I("em",qJe,[(b(!0),I(_e,null,yt(e.node.children,(r,a)=>(b(),oe(p(vf),{key:`${e.indexKey||"emphasis"}-${a}`,components:i.value,node:r,"custom-id":t.customId,"index-key":`${e.indexKey||"emphasis"}-${a}`},null,8,["components","node","custom-id","index-key"]))),128))]))}}),[["__scopeId","data-v-2a5aafbf"]]);kl.install=e=>{e.component(kl.__name,kl)};const VJe={class:"hard-break"},j1=xo(Xe({__name:"HardBreakNode",props:{node:{}},setup:e=>(t,n)=>(b(),I("br",VJe))}),[["__scopeId","data-v-50c58f70"]]);j1.install=e=>{e.component(j1.__name,j1)};const u3=Xe({__name:"SimpleInlineRenderer",props:{nodes:{},customId:{},indexKey:{}},setup(e){const t=e,n=it({checkbox:Lc,checkbox_input:Lc,emoji:ql,emphasis:kl,hardbreak:j1,highlight:$c,inline_code:qa,insert:Kl,link:bl,reference:gl,strikethrough:yl,strong:vl,subscript:Ul,superscript:Vl,text:sr}),i=zr(()=>t.customId),o=R(()=>{const s=i.value;return Object.keys(s).length>0?wn(wn({},n),s):n});return(s,r)=>(b(!0),I(_e,null,yt(e.nodes,(a,l)=>(b(),oe(p(vf),{key:l,components:o.value,node:a,"custom-id":t.customId,"index-key":`${e.indexKey||"inline"}-${l}`},null,8,["components","node","custom-id","index-key"]))),128))}});function AE(e){if(!e||typeof e!="object")return!1;const t=`|${e.type}|`;if(!"|checkbox|checkbox_input|emoji|emphasis|hardbreak|highlight|inline_code|insert|link|reference|strikethrough|strong|subscript|superscript|text|".includes(t))return!1;if(!"|emphasis|highlight|insert|link|strikethrough|strong|subscript|superscript|".includes(t))return!0;const n=e.children;return Array.isArray(n)&&n.every(AE)}function jw(e,t=!0,n=!1){if(!e||!n&&e.length===0)return null;if(e.every(AE))return e;if(!t||e.length!==1)return null;const i=e[0];if(i?.type!=="paragraph"||!Array.isArray(i.children))return null;const o=i.children;return(n||o.length>0)&&o.every(AE)?o:null}function gm(e){var t,n;if(!e?.length)return null;let i="";for(const o of e){if(o?.type!=="text"||o.center===!0)return null;i+=String((n=(t=o.content)!=null?t:o.raw)!=null?n:"")}return i}const UJe=["cite"],KJe={key:0,dir:"auto",class:"paragraph-node"},ZJe=["custom-id"],yk=xo(Xe({__name:"BlockquoteNode",props:{node:{},indexKey:{},typewriter:{type:Boolean},fade:{type:Boolean},customId:{},showTooltips:{type:Boolean}},emits:["copy"],setup(e){const t=e,n=zr(()=>t.customId),i=R(()=>!!n.value.paragraph),o=R(()=>!!n.value.text),s=R(()=>jw(t.node.children,!i.value)),r=R(()=>t.fade!==!1||o.value?null:gm(s.value));return fi("markstreamShowTooltips",R(()=>t.showTooltips)),fi("markstreamFade",R(()=>t.fade)),(a,l)=>(b(),I("blockquote",{class:"blockquote blockquote-node",dir:"auto",cite:e.node.cite},[s.value?(b(),I("p",KJe,[r.value!==null?(b(),I("span",{key:0,class:"text-node","custom-id":t.customId},O(r.value),9,ZJe)):(b(),oe(p(u3),{key:1,nodes:s.value,"custom-id":t.customId,"index-key":`blockquote-${t.indexKey}-paragraph`},null,8,["nodes","custom-id","index-key"]))])):(b(),oe(p(wl),{key:1,"show-tooltips":t.showTooltips,"index-key":`blockquote-${t.indexKey}`,nodes:t.node.children||[],"custom-id":t.customId,typewriter:t.typewriter,fade:t.fade,onCopy:l[0]||(l[0]=c=>a.$emit("copy",c))},null,8,["show-tooltips","index-key","nodes","custom-id","typewriter","fade"]))],8,UJe))}}),[["__scopeId","data-v-abfecebc"]]);yk.install=e=>{e.component(yk.__name,yk)};const GJe={class:"definition-list"},QJe={class:"definition-term"},YJe={class:"definition-desc"},bk=xo(Xe({__name:"DefinitionListNode",props:{node:{},indexKey:{},typewriter:{type:Boolean},fade:{type:Boolean},customId:{}},emits:["copy"],setup(e){const t=e;return(n,i)=>(b(),I("dl",GJe,[(b(!0),I(_e,null,yt(t.node.items,(o,s)=>(b(),I(_e,{key:s},[A("dt",QJe,[V(p(wl),{"index-key":`definition-term-${t.indexKey}-${s}`,nodes:o.term,"custom-id":t.customId,typewriter:t.typewriter,fade:t.fade,onCopy:i[0]||(i[0]=r=>n.$emit("copy",r))},null,8,["index-key","nodes","custom-id","typewriter","fade"])]),A("dd",YJe,[V(p(wl),{"index-key":`definition-desc-${t.indexKey}-${s}`,nodes:o.definition,"custom-id":t.customId,typewriter:t.typewriter,fade:t.fade,onCopy:i[1]||(i[1]=r=>n.$emit("copy",r))},null,8,["index-key","nodes","custom-id","typewriter","fade"])])],64))),128))]))}}),[["__scopeId","data-v-4e103b30"]]);bk.install=e=>{e.component(bk.__name,bk)};const JJe=["href","title"],G4=xo(Xe({__name:"FootnoteAnchorNode",props:{node:{}},setup(e){const t=e;function n(i){var o;if(i.preventDefault(),typeof document>"u")return;const s=Cae(i.currentTarget,`fnref-${String((o=t.node.id)!=null?o:"")}`);s&&s.scrollIntoView({behavior:"smooth",block:"center"})}return(i,o)=>(b(),I("a",{class:"footnote-anchor text-sm hover:underline cursor-pointer",href:`#fnref-${e.node.id}`,title:`返回引用 ${e.node.id}`,onClick:n}," ↩︎ ",8,JJe))}}),[["__scopeId","data-v-0dbaa45e"]]);G4.install=e=>{e.component(G4.__name,G4)};const XJe=["id"],eXe={class:"flex-1"},Q4=Xe({__name:"FootnoteNode",props:{node:{},indexKey:{},typewriter:{type:Boolean},fade:{type:Boolean},customId:{}},emits:["copy"],setup(e){const t=e;return(n,i)=>(b(),I("div",{id:`fnref--${e.node.id}`,class:"footnote-node flex text-sm leading-relaxed border-t border-[var(--footnote-border)] pt-2"},[A("div",eXe,[V(p(wl),{"index-key":`footnote-${t.indexKey}`,nodes:t.node.children,"custom-id":t.customId,typewriter:t.typewriter,fade:t.fade,onCopy:i[0]||(i[0]=o=>n.$emit("copy",o))},null,8,["index-key","nodes","custom-id","typewriter","fade"])])],8,XJe))}});Q4.install=e=>{e.component(Q4.__name,Q4)};const tXe=["custom-id"],xE=xo(Xe({__name:"HeadingNode",props:{node:{},customId:{},indexKey:{}},setup(e){const t=e,n=zr(()=>t.customId),i=Zt("markstreamFade",void 0),o=R(()=>i?.value!==!1||n.value.text?null:gm(t.node.children)),s=R(()=>wn({text:sr,inline_code:qa,link:bl,image:ah,strong:vl,emphasis:kl,strikethrough:yl,highlight:$c,insert:Kl,subscript:Ul,superscript:Vl,emoji:ql,checkbox:Lc,checkbox_input:Lc,footnote_reference:Rc,hardbreak:j1,math_inline:dd,reference:gl},n.value));return(r,a)=>(b(),oe(Ds(`h${e.node.level}`),Ni({class:["heading-node",[`heading-${e.node.level}`]],dir:"auto"},e.node.attrs),{default:ie(()=>[o.value!==null?(b(),I("span",{key:0,class:"text-node","custom-id":t.customId},O(o.value),9,tXe)):(b(!0),I(_e,{key:1},yt(e.node.children,(l,c)=>(b(),oe(p(vf),{key:c,components:s.value,"custom-id":t.customId,node:l,"index-key":`${e.indexKey||"heading"}-${c}`},null,8,["components","custom-id","node","index-key"]))),128))]),_:1},16,["class"]))}}),[["__scopeId","data-v-7122dbe1"]]),jC=xE;jC.install=e=>{e.component(xE.__name,xE)};const nXe={key:0,dir:"auto",class:"paragraph-node"},iXe=["custom-id"],oXe={dir:"auto",class:"paragraph-node"},sXe=["custom-id"],v2=xo(Xe({__name:"ListItemNode",props:{node:{},item:{},indexKey:{},customId:{},typewriter:{type:Boolean},fade:{type:Boolean},showTooltips:{type:Boolean},value:{},isDark:{type:Boolean}},emits:["copy"],setup(e){const t=e,n=R(()=>{var h;return(h=t.node)!=null?h:t.item}),i=zr(()=>t.customId),o=R(()=>!!i.value.paragraph),s=R(()=>!!i.value.text),r=R(()=>{var h;return jw((h=n.value)==null?void 0:h.children,!o.value)}),a=R(()=>{var h;if(o.value)return null;const m=(h=n.value)==null?void 0:h.children;if(!Array.isArray(m)||m.length<2)return null;const g=m[0];if(g?.type!=="paragraph"||!Array.isArray(g.children))return null;const y=m.slice(1);if(!y.every(k=>k?.type==="list"))return null;const v=jw([g]);return v?{paragraphChildren:v,nestedLists:y}:null});function l(){return t.fade===!1&&!s.value}const c=R(()=>l()?gm(r.value):null),u=R(()=>{var h;return l()?gm((h=a.value)==null?void 0:h.paragraphChildren):null}),d=Object.freeze({}),f=R(()=>{const{value:h}=t;return typeof h=="number"&&Number.isFinite(h)?{value:h}:d});return fi("markstreamShowTooltips",R(()=>t.showTooltips)),fi("markstreamFade",R(()=>t.fade)),(h,m)=>{var g,y;return b(),I("li",Ni({class:"list-item",dir:"auto"},f.value),[r.value?(b(),I("p",nXe,[c.value!==null?(b(),I("span",{key:0,class:"text-node","custom-id":t.customId},O(c.value),9,iXe)):(b(),oe(p(u3),{key:1,nodes:r.value,"custom-id":t.customId,"index-key":`list-item-${t.indexKey}-paragraph`},null,8,["nodes","custom-id","index-key"]))])):a.value?(b(),I(_e,{key:1},[A("p",oXe,[u.value!==null?(b(),I("span",{key:0,class:"text-node","custom-id":t.customId},O(u.value),9,sXe)):(b(),oe(p(u3),{key:1,nodes:a.value.paragraphChildren,"custom-id":t.customId,"index-key":`list-item-${t.indexKey}-paragraph`},null,8,["nodes","custom-id","index-key"]))]),(b(!0),I(_e,null,yt(a.value.nestedLists,(v,k)=>(b(),oe(p(wl),{key:k,nodes:[v],"custom-id":t.customId,"index-key":`list-item-${t.indexKey}-nested-${k}`,"show-tooltips":t.showTooltips,typewriter:t.typewriter,fade:t.fade,"is-dark":t.isDark,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0,onCopy:m[0]||(m[0]=w=>h.$emit("copy",w))},null,8,["nodes","custom-id","index-key","show-tooltips","typewriter","fade","is-dark"]))),128))],64)):(b(),oe(p(wl),{key:2,"show-tooltips":t.showTooltips,"index-key":`list-item-${t.indexKey}`,nodes:(y=(g=n.value)==null?void 0:g.children)!=null?y:[],"custom-id":t.customId,typewriter:t.typewriter,fade:t.fade,"is-dark":t.isDark,"batch-rendering":!1,onCopy:m[1]||(m[1]=v=>h.$emit("copy",v))},null,8,["show-tooltips","index-key","nodes","custom-id","typewriter","fade","is-dark"]))],16)}}}),[["__scopeId","data-v-617214f9"]]);v2.install=e=>{e.component(v2.__name,v2)};const y2=xo(Xe({__name:"ListNode",props:{node:{},customId:{},indexKey:{},typewriter:{type:Boolean},fade:{type:Boolean},showTooltips:{type:Boolean},isDark:{type:Boolean}},emits:["copy"],setup(e){const t=zr(()=>e.customId),n=R(()=>t.value.list_item||v2);return(i,o)=>(b(),oe(Ds(e.node.ordered?"ol":"ul"),{class:De(["list-node",{"list-decimal":e.node.ordered,"list-disc":!e.node.ordered}])},{default:ie(()=>[(b(!0),I(_e,null,yt(e.node.items,(s,r)=>{var a;return b(),oe(Ds(n.value),Ni({key:`${e.indexKey||"list"}-${r}`},{ref_for:!0},{showTooltips:e.showTooltips},{node:s,"custom-id":e.customId,"index-key":`${e.indexKey||"list"}-${r}`,typewriter:e.typewriter,fade:e.fade,"is-dark":e.isDark,value:e.node.ordered?((a=e.node.start)!=null?a:1)+r:void 0,onCopy:o[0]||(o[0]=l=>i.$emit("copy",l))}),null,16,["node","custom-id","index-key","typewriter","fade","is-dark","value"])}),128))]),_:1},8,["class"]))}}),[["__scopeId","data-v-99cb95e0"]]);y2.install=e=>{e.component(y2.__name,y2)};const rXe={key:2,class:"html-block-node__raw"},aXe=["innerHTML"],lXe={key:1,class:"html-block-node__placeholder"},Y4=xo(Xe({__name:"HtmlBlockNode",props:{node:{},customId:{},htmlPolicy:{}},setup(e){var t;const n=e,i=Zt("markstreamHtmlPolicy",void 0),o=Zt("markstreamNestedRendererProps",void 0),s=R(()=>{var D,z;return(z=(D=n.htmlPolicy)!=null?D:i?.value)!=null?z:"safe"}),r=R(()=>{var D,z;const $=(D=o?.value)!=null?D:{};return Ji(wn({},$),{customId:(z=n.customId)!=null?z:$.customId,htmlPolicy:s.value})}),a=ih({loader:()=>Promise.resolve().then(()=>Kae),suspensible:!1}),l=R(()=>{const D=dk(n.node.attrs,s.value);if(!D)return;const z=V4(D);return Object.keys(z).length>0?z:void 0}),c=R(()=>{const D=String(n.node.tag||"").trim(),z=dk(n.node.attrs,s.value,D);if(!z)return;const $=V4(z);return Object.keys($).length>0?$:void 0}),u=zr(()=>n.customId),d=Xe({name:"DynamicRenderer",props:{nodes:{type:Array,required:!0}},render(){return this.nodes}}),f=Z(null);function h(D,z,$,j){if(D!==!0)return!1;const G=String(z??"");if(!G)return!1;if(G!==String($??""))return!0;const K=String(j??"").trim();return!!K&&G.toLowerCase().includes(`"u"||m.value),y=Z(n.node.content),v=Z(0),k=Z(String((t=n.node.raw)!=null?t:"")),w=R(()=>Array.isArray(n.node.children)?n.node.children:[]);Fe(()=>[n.node.loading,n.node.raw,n.node.content,n.node.tag],([D,z,$,j])=>{const G=String(z??""),K=!k.value||G.startsWith(k.value),te=h(D,z,$,j);K?te&&(m.value=!0):(m.value=te,v.value=0),te&&(g.value=!0),k.value=G},{flush:"sync"});const C=R(()=>String(n.node.tag||"div")),x=R(()=>{var D;if(C.value.trim().toLowerCase()!=="details"||(D=n.node.attrs)!=null&&D.some(([$])=>String($).toLowerCase()==="open"))return null;const z=w.value[0];return z?.type==="html_block"&&String(z.tag||"").toLowerCase()==="summary"?z:null}),S=R(()=>{var D;return gm((D=x.value)==null?void 0:D.children)}),M=R(()=>{const D=x.value;if(!D)return;const z=dk(D.attrs,s.value,"summary");if(!z)return;const $=V4(z);return Object.keys($).length>0?$:void 0}),_=R(()=>S.value==null?w.value:w.value.slice(1)),T=R(()=>{const D=C.value.trim().toLowerCase();return Dse.has(D)||B$(D,s.value)}),E=R(()=>w.value.length>0&&!!n.node.tag&&!T.value),L=R(()=>{var D,z,$;if(E.value)return{mode:"structured"};if(!g.value)return{mode:"html",content:(D=y.value)!=null?D:""};const j=(z=y.value)!=null?z:n.node.content;if(!j)return{mode:"html",content:""};if(s.value==="escape")return{mode:"html",content:Mw(j,s.value)};const G=m.value||n.node.loading===!0,K=_ae(j,u.value,s.value,G);return K.ok&&(G||K.hasCustomComponents)?{mode:"dynamic",nodes:K.nodes}:G?{mode:"text",content:($=n.node.raw)!=null?$:j}:{mode:"html",content:Mw(j,s.value)}}),P=K$(),N=V$(),U=U$(),F=Is(null),B=!!n.node.loading;let W=null;return typeof window<"u"?(Fe([()=>f.value,()=>n.node.loading,m],([D,z,$],j,G)=>{if(W?.disconnect(),W=null,!D||!$||z===!1||typeof ResizeObserver>"u")return;const K=new ResizeObserver(te=>{var J,q;if(!m.value||n.node.loading===!1)return;const Y=te[0],ae=Array.isArray(Y?.borderBoxSize)?Y.borderBoxSize[0]:Y?.borderBoxSize,pe=(q=(J=ae?.blockSize)!=null?J:Y?.contentRect.height)!=null?q:0;pe>v.value&&(v.value=pe)});W=K,K.observe(D),G(()=>K.disconnect())},{immediate:!0}),Fe(()=>n.node.loading,D=>us(null,null,function*(){D!==!1||!m.value||v.value<=0||(yield bt(),requestAnimationFrame(()=>{n.node.loading===!1&&(v.value=0)}))})),Fe([()=>f.value,()=>N?.value.heavyBlockMargin,()=>N?.value.rootMargin],([D],z,$)=>{var j,G,K,te;if((G=(j=F.value)==null?void 0:j.destroy)==null||G.call(j),F.value=null,!B)return g.value=!0,void(y.value=n.node.content);if(!D)return void(m.value||(g.value=!1));let J=!0;const q=(te=(K=N?.value.heavyBlockMargin)!=null?K:N?.value.rootMargin)!=null?te:mm,Y=P(D,{rootMargin:q,allowIdle:!U.value});F.value=Y,g.value=g.value||Y.isVisible.value,Y.whenVisible.then(()=>{J&&F.value===Y&&(g.value=!0)}),$(()=>{J=!1,Y.destroy(),F.value===Y&&(F.value=null)})},{immediate:!0}),Fe(()=>n.node.content,D=>{B&&!g.value||(y.value=D)})):g.value=!0,ki(()=>{var D,z;W?.disconnect(),W=null,(z=(D=F.value)==null?void 0:D.destroy)==null||z.call(D),F.value=null}),(D,z)=>(b(),oe(Ds(E.value?C.value:"div"),Ni({ref_key:"htmlRef",ref:f,class:"html-block-node",style:v.value>0?{boxSizing:"border-box",minHeight:`${v.value}px`}:void 0,"data-markstream-viewport-pending":p(U)&&!g.value?"true":void 0},E.value?c.value:void 0),{default:ie(()=>[g.value?(b(),I(_e,{key:0},[L.value.mode==="structured"?(b(),I(_e,{key:0},[S.value!==null?(b(),I(_e,{key:0},[A("summary",Ahe(tY(M.value)),O(S.value),17),_.value.length?(b(),oe(p(a),Ni({key:0},r.value,{nodes:_.value,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["nodes"])):X("",!0)],64)):(b(),oe(p(a),Ni({key:1},r.value,{nodes:w.value,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["nodes"]))],64)):L.value.mode==="dynamic"?(b(),oe(p(d),{key:1,nodes:L.value.nodes},null,8,["nodes"])):L.value.mode==="text"?(b(),I("pre",rXe,O(L.value.content),1)):(b(),I("div",Ni({key:3},l.value,{innerHTML:L.value.content}),null,16,aXe))],64)):(b(),I("div",lXe,[si(D.$slots,"placeholder",{node:e.node},()=>[z[0]||(z[0]=A("span",{class:"html-block-node__placeholder-bar"},null,-1)),z[1]||(z[1]=A("span",{class:"html-block-node__placeholder-bar w-4/5"},null,-1)),z[2]||(z[2]=A("span",{class:"html-block-node__placeholder-bar w-2/3"},null,-1))],!0)]))]),_:3},16,["style","data-markstream-viewport-pending"]))}}),[["__scopeId","data-v-08559f85"]]);Y4.install=e=>{e.component(Y4.__name,Y4)};const cXe={dir:"auto",class:"paragraph-node"},uXe=["custom-id"],X0=xo(Xe({__name:"ParagraphNode",props:{node:{},customId:{},indexKey:{},customHtmlTags:{},parseOptions:{},customMarkdownIt:{type:Function}},setup(e){const t=e,n=zr(()=>t.customId),i=Zt("markstreamHtmlPolicy",void 0),o=Zt("markstreamFade",void 0),s=Zt("markstreamParseOptions",void 0),r=Zt("markstreamCustomMarkdownIt",void 0),a=Zt("markstreamNestedRendererProps",void 0),l=R(()=>{var T;return(T=i?.value)!=null?T:"safe"}),c=R(()=>{var T;return(T=t.parseOptions)!=null?T:s?.value}),u=R(()=>{var T;return(T=t.customMarkdownIt)!=null?T:r?.value}),d=R(()=>{var T,E;return(E=t.customHtmlTags)!=null?E:(T=a?.value)==null?void 0:T.customHtmlTags}),f=R(()=>{var T,E;const L=(T=a?.value)!=null?T:{};return Ji(wn({},L),{customId:(E=t.customId)!=null?E:L.customId,customHtmlTags:d.value,parseOptions:c.value,customMarkdownIt:u.value,htmlPolicy:l.value})});function h(T){var E;return T.type==="text"&&String((E=T.content)!=null?E:"").trim()===""}const m=R(()=>t.node.children.filter(T=>!h(T))),g=R(()=>m.value.length>0&&m.value.every(T=>T.type==="image"||(function(E){var L;const P=(function(N){return N.type==="link"&&Array.isArray(N.children)?N.children.filter(U=>!h(U)):[]})(E);return P.length===1&&((L=P[0])==null?void 0:L.type)==="image"})(T))),y=R(()=>new Set(Tm(d.value))),v=R(()=>{if(!g.value||m.value.length<=1)return t.node.children;const T=[];for(let E=0;E0,N=t.node.children.slice(E+1).some(U=>!h(U));P&&N&&T.push(Ji(wn({},L),{content:" ",raw:" "}))}return T}),k=R(()=>o?.value===!1&&!n.value.text),w=R(()=>k.value?gm(v.value):null);function C(T,E){return wn({node:T,"index-key":`${t.indexKey}-${E}`,"custom-id":t.customId,"custom-html-tags":d.value},T.type==="reference"?{"data-markstream-reference-id":String(T.id)}:{})}function x(T){var E,L;const P=T,N=String(P.type);if(n.value[N])return null;const U=(function(B){if(!Array.isArray(B))return"";const W=[];for(const D of B){if(!D||typeof D!="object")return null;const z=x(D);if(z==null)return null;W.push(z)}return W.join("")})(P.children);if(U==null)return null;const F=[N,P.loading,U];switch(N){case"text":return[...F,P.content,P.center].join("");case"inline_code":return[...F,P.code].join("");case"image":return[...F,P.src,P.alt,P.title].join("");case"link":return[...F,P.href,P.title,P.text,JSON.stringify((E=P.attrs)!=null?E:null)].join("");case"html_inline":case"html_block":return[...F,P.tag,P.content,P.autoClosed,JSON.stringify((L=P.attrs)!=null?L:null)].join("");case"emoji":return[...F,P.name,P.markup].join("");case"checkbox":case"checkbox_input":return[...F,P.checked].join("");case"math_inline":return[...F,P.content,P.markup].join("");case"reference":case"footnote_anchor":case"footnote_reference":return[...F,P.id].join("");case"hardbreak":case"emphasis":case"strong":case"strikethrough":case"highlight":case"insert":case"subscript":case"superscript":return F.join("");default:return null}}const S=new Map,M=R(()=>wn({inline_code:qa,image:ah,link:bl,hardbreak:j1,emphasis:kl,strong:vl,strikethrough:yl,highlight:$c,insert:Kl,subscript:Ul,superscript:Vl,html_inline:Pc,html_block:Y4,emoji:ql,checkbox:Lc,math_inline:dd,checkbox_input:Lc,reference:gl,footnote_anchor:G4,footnote_reference:Rc,text:sr},n.value)),_=R(()=>{const T=v.value;if(S.size>T.length)for(const E of S.keys())E>=T.length&&S.delete(E);return T.map((E,L)=>{var P;const N=x(E),U=S.get(L),F=N!=null&&U?.sig===N?U.child:E;N==null?S.delete(L):S.set(L,{child:F,sig:N});const B=(function(W){var D,z,$,j;if(W.type==="html_block"||W.type==="html_inline"){const G=String((D=W.tag)!=null?D:"").trim().toLowerCase()||jse(W.content);if(G&&!y.value.has(G)&&Wse((z=W.content)!=null?z:W.raw,G)){const K=String((j=($=W.content)!=null?$:W.raw)!=null?j:"");return{child:{type:"text",content:K,raw:K},component:sr,isCustomComponent:!1}}}return{child:W,component:M.value[W.type],isCustomComponent:!!(n.value[W.type]&&!db(String(W.type)))}})(F);return Ji(wn({},B),{index:L,key:`${t.indexKey||"paragraph"}-${L}`,customAttrs:B.isCustomComponent?q$(B.child,l.value):void 0,hasSlotChildren:Array.isArray(B.child.children)&&B.child.children.length>0,slotContent:String((P=B.child.content)!=null?P:""),originalChild:F})})});return(T,E)=>(b(),I("p",cXe,[w.value!==null?(b(),I("span",{key:0,class:"text-node","custom-id":t.customId},O(w.value),9,uXe)):(b(!0),I(_e,{key:1},yt(_.value,L=>{return b(),I(_e,{key:L.key},[g.value&&h(L.originalChild)?(b(),I(_e,{key:0},[Be(O((P=L.originalChild,String((N=P.content)!=null?N:""))),1)],64)):L.isCustomComponent?(b(),oe(Ds(L.component),Ni({key:1,ref_for:!0},L.customAttrs,{node:L.child,loading:L.child.loading,"index-key":L.key,"custom-id":t.customId,"custom-html-tags":d.value,"is-dark":f.value.isDark}),{default:ie(()=>[L.hasSlotChildren?(b(),oe(p(Hw),Ni({key:0,ref_for:!0},f.value,{nodes:L.child.children,"index-key":L.key,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["nodes","index-key"])):L.slotContent?(b(),oe(p(Hw),Ni({key:1,ref_for:!0},f.value,{content:L.slotContent,final:!L.child.loading,"index-key":`${L.key}-content`,"smooth-streaming":!1,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["content","final","index-key"])):X("",!0)]),_:2},1040,["node","loading","index-key","custom-id","custom-html-tags","is-dark"])):(b(),oe(Ds(L.component),Ni({key:2,ref_for:!0},C(L.child,L.index)),null,16))],64);var P,N}),128))]))}}),[["__scopeId","data-v-0498f5d7"]]);X0.install=e=>{e.component(X0.__name,X0)};const dXe={class:"table-node-wrapper"},fXe=["aria-busy"],hXe={key:0},pXe=["custom-id"],mXe=["aria-label","onPointerdown"],gXe=["custom-id"],vXe={key:0,class:"table-node__loading",role:"status","aria-live":"polite"},J4=xo(Xe({__name:"TableNode",props:{node:{},indexKey:{},isDark:{type:Boolean},typewriter:{type:Boolean},fade:{type:Boolean},customId:{},showTooltips:{type:Boolean}},emits:["copy"],setup(e){const t=e,n=R(()=>{var v;return(v=t.node.loading)!=null&&v}),i=R(()=>{var v;return(v=t.node.rows)!=null?v:[]}),o=Z(null),s=Z([]);let r=null;const a=R(()=>t.node.header.cells.length),l=R(()=>s.value.some(v=>Number.isFinite(v)&&v>0)),c=R(()=>l.value?s.value.map(v=>v>0?{width:`${v}px`}:void 0):[]);fi("markstreamShowTooltips",R(()=>t.showTooltips)),fi("markstreamFade",R(()=>t.fade));const u=zr(()=>t.customId),d=R(()=>!!u.value.text),f=R(()=>!!u.value.paragraph),h=new WeakMap;function m(v){const k=t.fade===!1&&!d.value,w=!f.value,C=h.get(v);if(C?.children===v.children&&C.textFastPath===k&&C.paragraphFastPath===w)return C.info;const x=jw(v.children,w,!0),S={simpleChildren:x,plainText:x&&k?gm(x):null};return h.set(v,{children:v.children,textFastPath:k,paragraphFastPath:w,info:S}),S}function g(v){if(!r)return;v.preventDefault();const k=r.startWidth+r.nextStartWidth,w=Math.min(48,Math.floor(k/2)),C=Math.max(w,Math.min(k-w,Math.round(r.startWidth+v.clientX-r.startX))),x=[...r.widths];x[r.index]=C,x[r.index+1]=k-C,s.value=x}function y(){r&&(window.removeEventListener("pointermove",g),window.removeEventListener("pointerup",y),window.removeEventListener("pointercancel",y),r=null)}return Fe(a,()=>{y(),s.value=[]}),ki(y),(v,k)=>(b(),I("div",dXe,[A("table",{ref_key:"tableRef",ref:o,class:De(["table-node",{"table-node--loading":n.value}]),"aria-busy":n.value},[l.value?(b(),I("colgroup",hXe,[(b(!0),I(_e,null,yt(e.node.header.cells,(w,C)=>(b(),I("col",{key:C,style:nn(c.value[C])},null,4))),128))])):X("",!0),A("thead",null,[A("tr",null,[(b(!0),I(_e,null,yt(e.node.header.cells,(w,C)=>(b(),I("th",{key:C,dir:"auto",class:De([w.align==="right"?"text-right":w.align==="center"?"text-center":"text-left"])},[m(w).plainText!==null?(b(),I("span",{key:0,class:"text-node","custom-id":t.customId},O(m(w).plainText),9,pXe)):m(w).simpleChildren?(b(),oe(p(u3),{key:1,nodes:m(w).simpleChildren,"custom-id":t.customId,"index-key":`table-th-${t.indexKey}-${C}`},null,8,["nodes","custom-id","index-key"])):(b(),oe(p(wl),{key:2,nodes:w.children,"index-key":`table-th-${t.indexKey}`,"custom-id":t.customId,typewriter:t.typewriter,fade:t.fade,"show-tooltips":t.showTooltips,onCopy:k[0]||(k[0]=x=>v.$emit("copy",x))},null,8,["nodes","index-key","custom-id","typewriter","fade","show-tooltips"])),C(function(S,M){if(M.button!==0)return;const _=(function(){var L;const P=(L=o.value)==null?void 0:L.querySelectorAll("thead th");return Array.from(P??[],N=>Math.round(N.getBoundingClientRect().width))})(),T=_[S],E=_[S+1];T&&E&&(M.preventDefault(),r={index:S,startX:M.clientX,startWidth:T,nextStartWidth:E,widths:_},s.value=_,window.addEventListener("pointermove",g),window.addEventListener("pointerup",y),window.addEventListener("pointercancel",y))})(C,x)},null,40,mXe)):X("",!0)],2))),128))])]),A("tbody",null,[(b(!0),I(_e,null,yt(i.value,(w,C)=>(b(),I("tr",{key:C},[(b(!0),I(_e,null,yt(w.cells,(x,S)=>(b(),I("td",{key:S,class:De([x.align==="right"?"text-right":x.align==="center"?"text-center":"text-left"]),dir:"auto"},[m(x).plainText!==null?(b(),I("span",{key:0,class:"text-node","custom-id":t.customId},O(m(x).plainText),9,gXe)):m(x).simpleChildren?(b(),oe(p(u3),{key:1,nodes:m(x).simpleChildren,"custom-id":t.customId,"index-key":`table-td-${t.indexKey}-${C}-${S}`},null,8,["nodes","custom-id","index-key"])):(b(),oe(p(wl),{key:2,nodes:x.children,"index-key":`table-td-${t.indexKey}`,"custom-id":t.customId,typewriter:t.typewriter,fade:t.fade,"show-tooltips":t.showTooltips,onCopy:k[1]||(k[1]=M=>v.$emit("copy",M))},null,8,["nodes","index-key","custom-id","typewriter","fade","show-tooltips"]))],2))),128))]))),128))])],10,fXe),V(Co,{name:"table-node-fade"},{default:ie(()=>[n.value?(b(),I("div",vXe,[si(v.$slots,"loading",{isLoading:n.value},()=>[k[2]||(k[2]=A("span",{class:"table-node__spinner animate-spin","aria-hidden":"true"},null,-1)),k[3]||(k[3]=A("span",{class:"sr-only"},"Loading",-1))],!0)])):X("",!0)]),_:3})]))}}),[["__scopeId","data-v-cd7fd3ec"]]);J4.install=e=>{e.component(J4.__name,J4)};const yXe={class:"hr-node"},kk=xo({},[["render",function(e,t){return b(),I("hr",yXe)}],["__scopeId","data-v-39b2349c"]]);kk.install=e=>{e.component(kk.__name,kk)};const bXe={class:"unknown-node"},SE=Xe({__name:"FallbackComponent",props:{node:{}},setup:e=>(t,n)=>(b(),I("div",bXe,O(e.node.raw),1))}),wk=xo(Xe({__name:"VmrContainerNode",props:{node:{},indexKey:{},isDark:{type:Boolean},typewriter:{type:Boolean},fade:{type:Boolean},customId:{}},setup(e){const t=e,n=R(()=>`vmr-container vmr-container-${t.node.name}`),i=zr(()=>t.customId),o=R(()=>wn({text:sr,paragraph:X0,heading:jC,inline_code:qa,link:bl,image:ah,strong:vl,emphasis:kl,strikethrough:yl,insert:Kl,subscript:Ul,superscript:Vl,checkbox:Lc,checkbox_input:Lc,hardbreak:j1,math_inline:dd,reference:gl,list:y2,math_block:$ae,table:J4},i.value));return(s,r)=>(b(),I("div",Ni({class:n.value},e.node.attrs),[(b(!0),I(_e,null,yt(e.node.children,(a,l)=>{return b(),oe(Ds((c=a.type,o.value[c]||SE)),{key:`${e.indexKey||"vmr-container"}-${l}`,"custom-id":t.customId,node:a,"index-key":`${e.indexKey||"vmr-container"}-${l}`,typewriter:t.typewriter,fade:t.fade,"data-markstream-reference-id":a.type==="reference"?String(a.id):void 0},null,8,["custom-id","node","index-key","typewriter","fade","data-markstream-reference-id"]);var c}),128))],16))}}),[["__scopeId","data-v-672fe0a7"]]);wk.install=e=>{e.component(wk.__name,wk)};const d_="__MARKSTREAM_VUE_HEIGHT_ESTIMATION_EXPERIMENT__",kXe=["diff ","index ","--- ","+++ ","@@ "],xr=(()=>{const e=globalThis;if(e[d_])return e[d_];const t={configs:{},controllers:{},revision:Is(0),preparedCache:new Map,blockEstimateCache:new Map};return e[d_]=t,t})();let yy=null,_E=null,f_=null;function Oae(){return _E||typeof window>"u"?null:(f_||(f_=pn(()=>import("./layout-DcalC1b9.js"),[]).then(e=>(_E=e,xr.revision.value++,e)).catch(()=>null)),f_.then(()=>{}))}const Y5=xr.revision;function mU(e){var t;return e&&(t=xr.configs[e])!=null?t:null}function gU(e,t){const n=Number.parseFloat(String(e??""));return Number.isFinite(n)&&n>0?n:t}function wXe(e){return e?.type==="text"||e?.type==="emoji"||e?.type==="hardbreak"}function h_(e){var t,n,i;if(!Array.isArray(e)||e.length===0)return null;let o="";for(const s of e){if(!wXe(s))return null;s.type==="text"?o+=String((t=s.content)!=null?t:""):s.type==="emoji"?o+=String((i=(n=s.name)!=null?n:s.raw)!=null?i:""):s.type==="hardbreak"&&(o+=` +`)}return o.length>0?o:null}function p_(e,t,n){var i,o;if(!e||!Number.isFinite(t)||t<=0||!(function(){var r;if(yy!=null)return yy;if(typeof document>"u")return!1;try{const a=document.createElement("canvas");return yy=!!((r=a.getContext)!=null&&r.call(a,"2d")),yy}catch{return yy=!1,!1}})())return null;const s=_E;if(!s)return Oae(),null;try{const r=Math.round(100*t)/100,a=[(i=n.whiteSpace)!=null?i:"pre-wrap",n.font,n.lineHeight,n.wrapperOverhead,n.widthAdjustment,r,e].join("\0"),l=xr.blockEstimateCache.get(a);if(l)return xr.blockEstimateCache.delete(a),xr.blockEstimateCache.set(a,l),{kind:"simple-text",height:l.height,contentHeight:l.contentHeight};const c=(o=n.whiteSpace)!=null?o:"pre-wrap",u=(function(g,y,v,k){const w=`${k}\0${v}\0${y}`,C=xr.preparedCache.get(w);if(C)return xr.preparedCache.delete(w),xr.preparedCache.set(w,C),C.prepared;const x=g.prepare(y,v,{whiteSpace:k});for(xr.preparedCache.set(w,{prepared:x});xr.preparedCache.size>240;){const S=xr.preparedCache.keys().next().value;if(!S)break;xr.preparedCache.delete(S)}return x})(s,e,n.font,c),d=Math.max(24,r-n.widthAdjustment),f=s.layout(u,d,n.lineHeight),h=Math.max(n.lineHeight,f.height),m=Math.max(n.lineHeight,Math.round(h+n.wrapperOverhead));for(xr.blockEstimateCache.set(a,{height:m,contentHeight:Math.round(h)});xr.blockEstimateCache.size>4e3;){const g=xr.blockEstimateCache.keys().next().value;if(!g)break;xr.blockEstimateCache.delete(g)}return{kind:"simple-text",height:m,contentHeight:Math.round(h)}}catch{return null}}function Fae(e,t,n){var i,o;if(!n||!e||!Number.isFinite(t)||t<=0)return null;if(e.type==="paragraph"){const s=h_(e.children);return s&&n.paragraph?p_(s,t,n.paragraph):null}if(e.type==="heading"){const s=Number(e.level||0),r=h_(e.children),a=n.headings[s];return r&&a?p_(r,t,a):null}if(e.type==="list_item"){const s=Array.isArray(e.children)?e.children:[];if(s.length!==1||((i=s[0])==null?void 0:i.type)!=="paragraph"||!n.listItem)return null;const r=h_((o=s[0])==null?void 0:o.children);return r?p_(r,t,n.listItem):null}if(e.type==="list"){const s=Array.isArray(e.items)?e.items:[];if(!s.length)return null;let r=Math.max(0,n.listWrapperOverhead);for(const a of s){const l=Fae(a,t,n);if(!l)return null;r+=l.height}return{kind:"simple-text",height:Math.max(1,Math.round(r)),contentHeight:Math.max(1,Math.round(r))}}return null}function by(e){if(!e)return 1;const t=String(e).split(/\r\n|\n|\r/);return Math.max(1,t.length)}function gc(e,t){const n=String(e??"");return t?n:n.replace(/\r\n$|\n$|\r$/,"")}function vU(e,t){return e.diff?kE({diffStyle:t})?(function(n){const i=gc(n.raw);if(i){const o=i.split(/\r?\n/);return n.originalCode!=null||n.updatedCode!=null?Math.max(1,o.filter(s=>!kXe.some(r=>s.startsWith(r))).length):Math.max(1,o.length)}return by(gc(n.originalCode))+by(gc(n.updatedCode))})(e):(function(n){const i=n.originalCode,o=n.updatedCode;if(i!=null||o!=null)return Math.max(by(gc(i)),by(gc(o)));const s=gc(n.code).split(/\r?\n/);let r=0,a=0;for(const l of s)l.startsWith("+")&&!l.startsWith("+++")?a++:l.startsWith("-")&&!l.startsWith("---")?r++:(r++,a++);return Math.max(1,r,a)})(e):by(gc(e.code,e.loading===!0))}function m_(e,t,n){return Math.max(1,Math.ceil((function(i,o){let s=0;for(const r of i)s+=r===" "?o-s%o:r>="ᄀ"?2:1;return s})(e,n)/t))}function yU(e,t,n,i,o,s){var r,a,l;const c=e/(s?2:1),u=((r=o.codeBlockOptions)==null?void 0:r.padding)==null?t:i.padding,d=(l=o.showLineNumbers)!=null?l:((a=o.codeBlockOptions)==null?void 0:a.disableLineNumbers)!==!0,f=Math.max(2,String(Math.max(1,n)).length)*t,h=d?3*t+f+2:0;return Math.max(1,Math.floor((c-h-2*u)/t))}function CXe(e){return e?`${e.fontStyle||"normal"} ${e.fontWeight||"400"} ${e.fontSize||"16px"} ${e.fontFamily||"sans-serif"}`:""}function g_(e,t,n="pre-wrap"){if(!e||!t||typeof window>"u")return null;const i=window.getComputedStyle(t),o=e.offsetHeight,s=gU(i.lineHeight,1.5*gU(i.fontSize,16)),r=e.getBoundingClientRect().width,a=t.getBoundingClientRect().width;return{font:CXe(i),lineHeight:s,wrapperOverhead:Math.max(0,o-s),widthAdjustment:Math.max(0,r-a),whiteSpace:n}}const AXe=new Set(["node","key","ref","ctx","renderNode","indexKey","__proto__","prototype","constructor"]);function bU(e,t={}){var n;const i={},o=new Set((n=t.omit)!=null?n:[]);if(!e||typeof e!="object")return i;const s=Object.getOwnPropertyDescriptors(e);for(const[r,a]of Object.entries(s))AXe.has(r)||o.has(r)||a.enumerable&&"value"in a&&(i[r]=a.value);return i}function Ck(e,t){const n=t.trim().toLowerCase();if(n)for(const i of[n,BC(n),mYe(n),n==="d2lang"?"d2":""]){const o=i&&e[i];if(o)return o}}function kU(e,t,n,i){var o;const s=(function(f){return Math.max(0,Math.ceil(f.scrollHeight||0)-Math.ceil(f.clientHeight||0))})(e),r=(function(f,h){return Number.isFinite(f)?Math.min(Math.max(0,f),h):0})(n,s);if(!i.isReverseFlexScrollRoot(e))return void(e.scrollTop=r);const a=Math.max(0,s-r),l=[-a,a];let c=l[0],u=Number.POSITIVE_INFINITY;for(const f of l){e.scrollTop=f;const h=i.getNormalizedScrollTop(e,t,!1),m=Math.abs(h-r);md&&(e.scrollTop=c)}function wU(e,t){let n=0,i=null,o=null;const s=()=>{const r=o;o=null,i=null,r&&(n=Date.now(),e(...r))};return function(...r){const a=Date.now(),l=t-(a-n);o=r,l<=0?(i&&(clearTimeout(i),i=null),n=a,o=null,e(...r)):i||(i=setTimeout(s,l))}}function Dae(e){return e==="simple"?"simple":e===!0||e==="true"||e==="precise"?"precise":"off"}function CU(e){return Dae(e)!=="off"}const Nae=Symbol("MarkstreamMathBlockMinHeightCache");function hrn(){return Zt(Nae,null)}const xXe=new Set(["text","inline_code","emoji","footnote_reference"]),SXe=new Set(["strong","emphasis","strikethrough","highlight","insert","subscript","superscript","link"]);function ky(e){const t=Number(e);return!Number.isFinite(t)||t<=0?-1:Math.round(t/32)}function t0(e,t,n,i=22){const o=String(e??"");if(!o)return n;const s=Math.max(18,Math.floor(Math.max(320,t)/8)),r=o.split(/\r?\n/).length,a=Math.ceil(o.length/s),l=Math.max(1,r,a);return Math.max(n,Math.ceil(l*i+12))}function Bae(e){var t;if(!e||typeof e!="object")return!1;const n=e,i=String((t=n.type)!=null?t:"");if(xXe.has(i))return!0;if(!SXe.has(i))return!1;const o=n.children;return!Array.isArray(o)||!o.length||o.every(Bae)}function IE(e){var t,n,i,o,s,r,a,l;if(!e||typeof e!="object")return"";const c=e,u=String((t=c.type)!=null?t:"");if(u==="text")return String((i=(n=c.content)!=null?n:c.raw)!=null?i:"");if(u==="inline_code")return String((r=(s=(o=c.code)!=null?o:c.content)!=null?s:c.raw)!=null?r:"");if(u==="emoji")return String((l=(a=c.name)!=null?a:c.raw)!=null?l:"");if(typeof c.text=="string")return c.text;const d=[];for(const f of["children","items","cells","rows"]){const h=c[f];if(Array.isArray(h)){const m=h.map(IE).filter(Boolean).join(" ");m&&d.push(m)}}return d.join(" ").replace(/\s+/g," ").trim()}function zae(e){if(!e||typeof e!="object")return!1;const t=e;return t.type==="inline_code"||["children","items","cells","rows"].some(n=>{const i=t[n];return Array.isArray(i)&&i.some(zae)})}function _Xe(e,t){if(!e)return 30;const n=Math.max(18,Math.floor(Math.max(320,t)/8)),i=e.split(/\r?\n/).length,o=Math.ceil(e.length/n),s=Math.max(1,i,o);return 30+26*Math.max(0,s-1)}function AU(e,t){var n,i,o,s,r,a,l,c,u,d,f,h,m,g;if(!e||typeof e!="object")return 32;const y=e,v=String((n=y.type)!=null?n:""),k=Number.isFinite(t)&&t>0?t:640;switch(v){case"heading":return(function(w){var C;const x=Number((C=w.level)!=null?C:w.depth);return x>=4?20:x===3?30:x===2?32:44})(y);case"paragraph":return(function(w,C){const x=String(w??"");if(!x)return 28;const S=Math.max(18,Math.floor(Math.max(320,C)/8)),M=x.split(/\r?\n/).length,_=Math.ceil(x.length/S);return Math.max(1,M,_)<=1?28:t0(x,C,34)})(String((o=(i=y.raw)!=null?i:y.content)!=null?o:""),k);case"list":return(function(w,C){var x;const S=Array.isArray(w.items)?w.items:[];if(!S.length)return 48;const M=Math.max(48,30*S.length+12);let _=12;for(const L of S)_+=_Xe(IE(L)||String((x=L.raw)!=null?x:""),C);const T=Math.max(0,_-M);if(S.length>20){const L=Math.round(2.4*S.length);return Math.round(M+Math.max(L,Math.min(T,3*S.length)))}if(T<=0)return M;const E=S.length>8?8*S.length:T;return Math.round(M+Math.min(T,E))})(y,k);case"list_item":return t0(String((r=(s=y.raw)!=null?s:y.content)!=null?r:""),k,34);case"blockquote":return t0(String((l=(a=y.raw)!=null?a:y.content)!=null?l:""),k,56);case"table":return(function(w,C){const x=[...w.header?[w.header]:[],...Array.isArray(w.rows)?w.rows:[]];if(!x.length){const S=Array.isArray(w.children)?w.children.length:3;return Math.max(120,38*S+48)}return Math.max(120,Math.round(4+x.reduce((S,M)=>S+(function(_,T){const E=Math.max(1,_.length),L=Math.max(80,(T-32)/E),P=Math.max(10,Math.floor(L/8)),N=Math.max(1,..._.map(U=>{var F;const B=IE(U)||String((F=U?.raw)!=null?F:"");return Math.ceil(B.length/P)||1}));return 54+34*Math.max(0,N-1)+(E<=3&&_.some(zae)?14:0)})((function(_){var T;return Array.isArray(_?.cells)&&(T=_.cells)!=null?T:[]})(M),C),0)))})(y,k);case"code_block":{const w=String((c=y.language)!=null?c:"").trim().toLowerCase(),C=String((d=(u=y.code)!=null?u:y.raw)!=null?d:"");return w==="mermaid"?Dw(Ow(C)):w==="infographic"?Nw(Fw(C)):t0(C,k,96,20)}case"math_block":return 72;case"image":return 220;case"admonition":case"vmr_container":case"html_block":return(function(w,C){var x,S,M;const _=w.match(/^\s*]*)>/i);return _&&!/(?:^|\s)open(?:\s|=|$)/i.test((x=_[1])!=null?x:"")?t0(((M=(S=w.match(/]*>([\s\S]*?)<\/summary>/i))==null?void 0:S[1])==null?void 0:M.replace(/<[^>]*>/g,"").trim())||"Details",C,28,28):t0(w,C,96)})(String((h=(f=y.raw)!=null?f:y.content)!=null?h:""),k);case"thematic_break":return 24;default:return t0(String((g=(m=y.raw)!=null?m:y.content)!=null?g:""),k,40)}}function xU(e,t,n){return Math.min(Math.max(e,t),n)}const SU=new WeakMap;function X4(e,t,n){var i;const o=e;if(n.has(o))return n.get(o);const s=String(e.type).trim().toLowerCase();if(t[s])return n.set(o,!0),!0;if(s==="code_block"){const l=String((i=e.language)!=null?i:"").trim().toLowerCase();if(l&&Ck(t,l))return n.set(o,!0),!0}const r=e;n.set(o,!1);const a=Object.values(r).some(l=>Array.isArray(l)?l.some(c=>lp(c)&&X4(c,t,n)):lp(l)&&X4(l,t,n));return n.set(o,a),a}const IXe=["total","cacheHits","appendHits","tailHits","fullParses","chunkedParses"],TXe=["tokenCloneMs","processTokensInputTokens","processTokensReusedTopLevelNodes","processTokensMs","safeMarkdownMs","tokenizeMs","htmlBlockPassesMs","parseMarkdownToStructureTotalMs"],MXe=new Set(["attrs","data","items","header","payload","props","rows","cells","term","definition","sourceMap"]),Hae=["raw","content","code","originalCode","updatedCode"],_U=new WeakMap,IU=new WeakMap;let EXe=1;function Vu(){return typeof performance<"u"?performance.now():Date.now()}function TU(e){const t=e.stream;return t&&typeof t.stats=="function"?t.stats():null}function Nl(e){if(typeof e!="object"&&typeof e!="function"||e===null)return"";const t=e;let n=_U.get(t);return n||(n=EXe++,_U.set(t,n)),String(n)}function MU(e,t,n,i={}){var o,s;const r=i.includeFinal!==!1,a={md:Nl(t),customMarkdownIt:Nl(n),requireClosingStrong:e.requireClosingStrong===!0,customHtmlTags:(o=e.customHtmlTags)!=null?o:[],includeSourceMap:e.includeSourceMap===!0,streamParse:(s=e.streamParse)!=null?s:"auto",validateLink:Nl(e.validateLink),preTransformTokens:Nl(e.preTransformTokens),postTransformTokens:Nl(e.postTransformTokens),postTransformNodes:Nl(e.postTransformNodes)};return r&&(a.final=e.final===!0),JSON.stringify(a)}function EU(e){let t=e.length;for(;t>0&&e.charCodeAt(t-1)===10;)t-=1;const n=e.lastIndexOf(` +`,t-1)+1;return e.slice(n,t).trim()}function jae(e){let t=2166136261;for(let n=0;n>>0).toString(36)}function Z$(e){const t=String(e??"");return`${t.length}:${jae(t)}`}function TE(e,t=new WeakMap,n=0){if(e==null||typeof e=="number"||typeof e=="boolean")return String(e);if(typeof e=="string")return`s:${(function(r){return r.length<=8192?Z$(r):`${r.length}:${jae(r.slice(0,8192))}:truncated`})(e)}`;if(typeof e=="function")return`fn:${Nl(e)}`;if(typeof e!="object")return typeof e;const i=e,o=t.get(i);if(o)return`cycle:${o}`;if(n>=6)return`object:${Nl(i)}`;const s=Nl(i);if(t.set(i,s),Array.isArray(e)){const r=e.slice(0,200);return`a:${e.length}:${r.map(a=>TE(a,t,n+1)).join(",")}`}if(typeof e=="object"){const r=e,a=Object.keys(r).sort(),l=a.slice(0,80);return`o:${a.length}:${l.map(c=>`${c}:${TE(r[c],t,n+1)}`).join(";")}`}return typeof e}function lp(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"&&typeof e.raw=="string"}function Wae(e,t=new WeakMap,n=0){return Array.isArray(e)?`a:${e.length}:${e.slice(0,200).map(i=>lp(i)?cp(i,t,n+1):Wae(i,t,n+1)).join(",")}`:lp(e)?cp(e,t,n):TE(e,t,n)}function LXe(e,t,n){return Object.keys(e).sort().filter(i=>i!=="children"&&!Hae.includes(i)).map(i=>{const o=e[i];return typeof o=="string"?`${i}=s:${Z$(o)}`:typeof o=="number"||typeof o=="boolean"||o==null?`${i}=${String(o)}`:typeof o=="function"?`${i}=fn:${Nl(o)}`:MXe.has(i)&&(Array.isArray(o)||typeof o=="object")?`${i}=${Wae(o,t,n+1)}`:o&&typeof o=="object"?`${i}=object:${Nl(o)}`:""}).filter(Boolean).join(";")}function RXe(e){return Hae.map(t=>{const n=e[t];return typeof n=="string"?`${t}=s:${Z$(n)}`:""}).filter(Boolean).join(";")}function cp(e,t=new WeakMap,n=0){const i=IU.get(e);if(i)return i;const o=e,s=t.get(o);if(s)return`node-cycle:${s}`;if(n>=6)return`node:${e.type}:${Nl(o)}`;const r=Nl(o);t.set(o,r);const a=(function(l,c,u){const d=l,f=Array.isArray(d.children)?d.children:[],h=f.length?f.slice(0,200).map(m=>cp(m,c,u+1)).join("|"):"";return[l.type,RXe(d),LXe(d,c,u),f.length,h].join(":")})(e,t,n);return IU.set(o,a),a}function qae(e,t){return cp(e)===cp(t)}function G$(e,t,n){const i=Vu(),o=t==="stabilizeSignatureMs"?"stabilizeSignatureCallCount":"primeSignatureCallCount";try{return n()}finally{e[t]+=Vu()-i,e[o]+=1,e.signatureMs=e.stabilizeSignatureMs+e.primeSignatureMs,e.signatureCallCount=e.stabilizeSignatureCallCount+e.primeSignatureCallCount}}function LU(e,t,n){return G$(t,n,()=>cp(e))}function Vae(e,t,n){return LU(e,n,"stabilizeSignatureMs")===LU(t,n,"stabilizeSignatureMs")}function J5(e){return{reusedNodeCount:0,dirtyStartIndex:e>0?0:-1,stablePrefixNodeCount:0,dirtyTailNodeCount:e}}function RU(e,t,n){return e<0?0:Math.max(t.length,n.length)-e}function PU(e){return e.__markstreamHasCustomParserExtensions===!0||(function(t){var n;return Number((n=t.__markstreamRegisteredPluginCount)!=null?n:0)>0})(e)}function PXe(e,t){return e.length===t.length&&e===t}function WC(e,t,n=0){if(n>=4)return null;if(e.type!==t.type)return!1;const i=e,o=t,s=Object.keys(i).filter(u=>u!=="type"&&u!=="children").sort(),r=Object.keys(o).filter(u=>u!=="type"&&u!=="children").sort();if(s.length!==r.length)return!1;for(let u=0;u=6)return;const i=e,o=t;for(const s of["children","items","rows","cells"]){const r=i[s],a=o[s];if(!Array.isArray(r)||!Array.isArray(a))continue;const l=Math.min(r.length,a.length);for(let c=0;c{i=WC(e,t)}),i??Vae(e,t,n)}function FXe(e,t){const n={};for(const i of IXe){const o=e[i],s=t?.[i];typeof o=="number"&&(n[i]=o-(typeof s=="number"?s:0))}return n}function DXe(e,t){var n;const i=Ew(t.instanceMsgId),o=new Map,s=(n=t.smoothStreamingEnabled)!=null?n:R(()=>!1),r=Z(t.renderContent.value);let a=[],l="",c="",u="",d=!1,f="",h=new WeakMap;const m=(function(){let B="",W=0,D=!1,z=!1,$=!1,j=!1;function G(){B="",W=0,D=!1,z=!1,$=!1,j=!1}function K(te){let J=!1;for(let q=0;q{if(!te||!J.startsWith(te)||J.length<=te.length)return G(),[!0,0];let q=0;B!==te&&(G(),K(te),q=te.length);const Y=J.slice(te.length),ae=K(Y);return B=J,[ae,q+Y.length]}})();let g,y=0,v=0,k=Vu(),w=-1,C=0;function x(B){w=Number.isInteger(B)?B:0,C+=1}function S(){g&&(clearTimeout(g),g=void 0)}function M(){S();const B=t.renderContent.value;r.value!==B&&(r.value=B),k=Vu()}Fe([t.renderContent,t.effectiveFinal,s],([B,W,D])=>{r.value!==B&&(!D||W||(function(z,$){if(!z&&$||$.length<=80||$.length=2&&J.every(q=>{const Y=q.trim();return Y.length>=1&&Y.replace(/^:/,"").replace(/:$/,"").split("").every(ae=>ae==="-")})})(EU($))&&(G=$,K=EU(G),!(/^={3,}$/.test(K)||/^-{3,}$/.test(K)||j.includes(` + +`)||/(?:^|\n)(?:#{1,6}\s|[-+*]\s+|\d+[.)]\s+|>\s*|`{3,}|~{3,})/.test(j))));var G,K})(r.value,B)?M():(function(){if(v+=1,g)return;const z=Math.max(0,(function($){const j=$.parseCoalesceMs;return typeof j=="number"&&Number.isFinite(j)&&j>=0?j:80})(e)-(Vu()-k));z<=0?M():g=setTimeout(M,z)})())},{flush:"sync",immediate:!0}),Qr(S);const _=R(()=>{var B,W,D,z;return hqe(e.customHtmlTags,(B=e.parseOptions)==null?void 0:B.customHtmlTags,(z=(D=(W=t.customComponentsMap)==null?void 0:W.value)!=null?D:{},Object.entries(z).map(([$,j])=>{const G=Iu($);return j==null||!G||db(G)||Fse.has(G)||sb.has(G)?"":G}).filter(Boolean)))}),T=R(()=>{const{key:B,tags:W}=pqe(_.value);if(!B)return i;const D=o.get(B);if(D)return D;const z=Ew(t.instanceMsgId,{customHtmlTags:W});return o.set(B,z),z}),E=R(()=>{const B=T.value;if(!e.customMarkdownIt)return B;const W=e.customMarkdownIt(B);return B.__markstreamHasCustomParserExtensions=!0,W.__markstreamHasCustomParserExtensions=!0,W}),L=R(()=>{var B,W;const D=(B=e.parseOptions)!=null?B:{},z=t.effectiveFinal.value,$=_.value,j=z!=null,G=$.length>0;return j||G||D.streamParse==null?wn(wn(Ji(wn({},D),{streamParse:(W=D.streamParse)==null||W}),j?{final:z}:{}),G?{customHtmlTags:$}:{}):D}),P=R(()=>{var B;return new Set(((B=L.value.customHtmlTags)!=null?B:[]).map(W=>String(W).trim().toLowerCase()).filter(Boolean))}),N=R(()=>MU(L.value,E.value,e.customMarkdownIt,{includeFinal:!0})),U=R(()=>MU(L.value,E.value,e.customMarkdownIt,{includeFinal:!1}));Fe([N,U],([B,W],[D,z])=>{D&&(B===D&&W===z||(M(),W!==z&&(a=[],u="")))},{flush:"sync"});const F=R(()=>{var B,W,D,z,$,j,G,K,te,J,q;if((B=e.nodes)!=null&&B.length)return a=[],u="",x(0),it(e.nodes.slice());const Y=r.value;if(!Y)return a=[],u="",x(-1),[];const ae=t.debugPerformanceEnabled.value,pe=ae?Vu():0,Me=E.value,fe=N.value,se=U.value;l&&fe!==l&&(function(Jt){var Oe,Le;(Le=(Oe=Jt.stream)==null?void 0:Oe.reset)==null||Le.call(Oe)})(Me),c&&se!==c&&(a=[],u="");const Q=(D=(W=t.customComponentsMap)==null?void 0:W.value)!=null?D:{},ee=(function(Jt){const Oe=Jt,Le=SU.get(Oe);if(Le!==void 0)return Le;const Ke=(function(Ee){return JSON.stringify(Object.entries(Ee).sort(([Ie],[Ve])=>Ie.localeCompare(Ve)).map(([Ie,Ve])=>[Ie,Nl(Ve)]))})(Jt);return SU.set(Oe,Ke),Ke})(Q);f&&ee!==f&&(a=[],u="",h=new WeakMap);const he=Object.keys(Q).length>0,Re=typeof L.value.postTransformNodes=="function";Re!==d&&(a=[],u="");const Pe=!Re&&a.length>0&&Y.startsWith(u)&&se===c,le=ae?TU(Me):null,ke=ae?{}:void 0,ne=PU(Me),ce=he&&a.some(Jt=>X4(Jt,Q,h)),be=!ne&&!Re&&(!he||a.length>0&&!ce),xe=wn(Ji(wn({},L.value),{reuseStableTopLevelNodes:be}),ke?{parserMetrics:ke}:{}),de=GGe(Y,Me,xe),$e=ae?Vu():0;if(Pe&&!ne&&!he&&!L.value.preTransformTokens&&!L.value.postTransformTokens){const Jt=Math.min(a.length,de.length);for(let Oe=0;Oe0&&ge.final!==!0&&!Ie.customMarkdownIt&&!PU(Ie.md)&&!Lt&&typeof ge.preTransformTokens!="function"&&typeof ge.postTransformTokens!="function"&&typeof ge.postTransformNodes!="function"&&((pt=(Ve=ge.customHtmlTags)==null?void 0:Ve.length)!=null?pt:0)===0?Ie.previousDirtyStartIndex:0,Te]})({content:Y,previousContent:u,previousDirtyStartIndex:w,parseOptions:L.value,customMarkdownIt:e.customMarkdownIt,md:Me,scanGlobalReferenceAppend:m});Kt=Le;const Ke=Oe<=0,Ee=he?Ie=>!X4(Ie,Q,h):void 0;if(Ye){const Ie=(function(Ve,pt,Lt,Te={}){if(!pt.length)return{nodes:Ve,metrics:J5(Ve.length)};const ge=Te.reuseDirtyTail!==!1,je=(function(gt,St,wt,tt){var st;const Rt=Math.min(gt.length,St.length);for(let ln=Math.min(Rt,Math.max(0,(st=tt.scanStartIndex)!=null?st:0));lncp(Jt[Ke]))})(rt,Ye,jt):(function(Jt,Oe=0){for(let Le=Math.max(0,Oe);Le=0?Pt.dirtyStartIndex:rt.length;Jt(($=le?.total)!=null?$:0);t.logPerf(Oe?"parse(stream)":"parse(sync)",wn(wn(wn({rendererId:t.instanceMsgId,ms:Math.round(Vu()-pe),nodes:rt.length,contentLength:Y.length,parseCommitCount:y,parseCoalescedCount:v,nodeReuseMs:sn,referenceDefinitionScanChars:Kt,signatureMs:(j=Ye?.signatureMs)!=null?j:0,stabilizeSignatureMs:(G=Ye?.stabilizeSignatureMs)!=null?G:0,primeSignatureMs:(K=Ye?.primeSignatureMs)!=null?K:0,signatureCallCount:(te=Ye?.signatureCallCount)!=null?te:0,stabilizeSignatureCallCount:(J=Ye?.stabilizeSignatureCallCount)!=null?J:0,primeSignatureCallCount:(q=Ye?.primeSignatureCallCount)!=null?q:0,stabilizeMs:$t},Pt??{}),ke?Object.fromEntries(TXe.map(Le=>{var Ke;return[Le,(Ke=ke[Le])!=null?Ke:0]})):{}),Jt?{streamMode:Jt.lastMode,streamDelta:FXe(Jt,le),streamStats:Jt}:{}))}return it(rt)});return{effectiveCustomHtmlTags:_,effectiveCustomHtmlTagsSet:P,mdBase:T,mdInstance:E,mergedParseOptions:L,getParsedNodesDirtyStartIndex:()=>w,getParsedNodesRevision:()=>C,parsedNodes:F}}function NXe(e){const{isClient:t}=e,n=Z(new Set),i=new Map,o=new Map,s=new Map;function r(c){if(!t)return;const u=s.get(c);u!=null&&(window.clearTimeout(u),s.delete(c))}function a(){if(t)for(const c of s.values())window.clearTimeout(c);s.clear()}function l(){n.value=new Set}return{visibleNodeIndices:n,nodeVisibilityHandles:i,nodeVisibilityWatchStops:o,nodeVisibilityFallbackTimers:s,clearVisibilityFallback:r,clearAllVisibilityFallbacks:a,markNodeVisible:function(c,u=!0){var d;u&&r(c),(function(f,h){if((g=(m=e.shouldTrackVisibleNodeIndices)==null?void 0:m.call(e))!=null&&!g)return;var m,g;const y=n.value,v=y.has(f);if(h){if(v)return;const w=new Set(y);return w.add(f),void(n.value=w)}if(!v)return;const k=new Set(y);k.delete(f),n.value=k})(c,u),u&&((d=e.onNodeMarkedVisible)==null||d.call(e,c))},resetNodeVisibleState:l,cleanupNodeVisibility:function(c){var u;if(e.shouldCleanupNodeVisibility&&!e.shouldCleanupNodeVisibility())return;for(const[f,h]of o.entries())f{a?.(),n.value&&(()=>{if(u)return;u=!0;const w=()=>{if(u=!1,d=null,n.value){const C=(function(x){const S=g(x),M=c;c=S;const _=Math.max(480,.75*(x.clientHeight||0));return M==null?S>_?{immediate:!0}:void 0:Math.abs(S-M)>_?{immediate:!0}:void 0})(v);C?r(C):r()}};f?d=f(w):w()})()};v.addEventListener("scroll",k,{passive:!0}),o.value=v,l=()=>{v.removeEventListener("scroll",k)}}}}function zXe(e={}){const t=Z(""),n=Z(""),i=Z(!1),o=yYe(e),s=()=>{const u=o.getSnapshot();t.value=u.source,n.value=u.visible,i.value=u.done},r=o.subscribe(s);s();const a=R(()=>Math.max(0,t.value.length-n.value.length)),l=R(()=>a.value===0),c=R(()=>i.value&&l.value);return ad()&&Qr(()=>{r(),o.destroy()}),{source:t,visible:n,done:i,final:c,caughtUp:l,pendingChars:a,enqueue:u=>o.enqueue(u),finish:u=>o.finish(u),flush:()=>o.flush(),reset:(u,d)=>o.reset(u,d),pause:()=>o.pause(),resume:()=>o.resume()}}const HXe={maxCharsPerSecond:3e3,maxCommitFps:20,maxCharsPerCommit:160,catchUpLatencyMs:220,catchUpThreshold:400},$U=/auto|scroll|overlay/i;function jXe(e){if(!e)return!1;const t=(e.overflowY||"").toLowerCase(),n=(e.overflow||"").toLowerCase();return $U.test(t)||$U.test(n)}function WXe(e){const t=Math.ceil(e.scrollHeight)>Math.ceil(e.clientHeight)+1,n=Math.ceil(e.scrollWidth)>Math.ceil(e.clientWidth)+1;return t||n}const OU=Xe({name:"D2BlockNodeLoading",props:{node:{type:Object,required:!0},showHeader:{type:Boolean,default:!0},estimatedPreviewHeightPx:{type:Number,default:void 0}},setup(e){const t=R(()=>{var n,i;return yae((i=M0(e.estimatedPreviewHeightPx))!=null?i:bae(String((n=e.node.code)!=null?n:"")))});return()=>Gn("div",{class:"d2-block-container rounded-lg border overflow-hidden",style:{margin:"var(--ms-flow-diagram-y) 0",background:"var(--diagram-bg)",borderColor:"var(--diagram-border)",color:"hsl(var(--ms-foreground))",boxShadow:"var(--ms-shadow-subtle)"},"data-markstream-d2":"1","data-markstream-mode":"pending"},[e.showHeader?Gn("div",{class:"d2-block-header flex justify-between items-center border-b",style:{padding:"var(--ms-inset-panel-y) var(--ms-inset-panel-x)",background:"var(--diagram-header-bg)",borderColor:"var(--diagram-border)"}},[Gn("div",{class:"flex items-center gap-x-2"},[Gn("span",{class:"d2-label font-medium font-mono",style:{fontSize:"var(--ms-text-label)",color:"var(--code-action-fg)"}},"D2")]),Gn("div",{class:"d2-header-actions flex items-center","aria-hidden":"true"})]):null,Gn("div",{class:"d2-block-body",style:{minHeight:`${t.value}px`}})])}}),qXe={class:"m-0 p-0"},VXe=["data-probe"],UXe=xo(Xe(Ji(wn({},{name:"HeightEstimationProbes"}),{__name:"HeightEstimationProbes",props:{width:{},flowRoot:{type:Boolean},paragraphNode:{},listItemNode:{},listNode:{},headingNodes:{},setParagraphWrapper:{type:Function},setListItemWrapper:{type:Function},setListWrapper:{type:Function},setHeadingWrapper:{type:Function}},setup(e){const t=e;function n(i){var o,s;return(s=(o=t.headingNodes)==null?void 0:o[i])!=null?s:null}return(i,o)=>(b(),I("div",{class:"height-estimation-probes",style:nn({width:`${e.width}px`}),"aria-hidden":"true"},[A("div",{ref:s=>e.setParagraphWrapper(s),class:De(["node-content",{"node-content-flow-root":e.flowRoot}]),"data-probe":"paragraph"},[V(p(X0),{node:e.paragraphNode,"index-key":"probe-paragraph"},null,8,["node"])],2),A("div",{ref:s=>e.setListItemWrapper(s),class:De(["node-content",{"node-content-flow-root":e.flowRoot}]),"data-probe":"list-item"},[A("ul",qXe,[V(p(v2),{node:e.listItemNode,"index-key":"probe-list-item"},null,8,["node"])])],2),A("div",{ref:s=>e.setListWrapper(s),class:De(["node-content",{"node-content-flow-root":e.flowRoot}]),"data-probe":"list"},[V(p(y2),{node:e.listNode,"index-key":"probe-list"},null,8,["node"])],2),(b(),I(_e,null,yt(6,s=>A("div",{key:`probe-heading-${s}`,ref_for:!0,ref:r=>e.setHeadingWrapper(s,r),class:De(["node-content",{"node-content-flow-root":e.flowRoot}]),"data-probe":`heading-${s}`},[V(p(jC),{node:n(s),"index-key":`probe-heading-${s}`},null,8,["node","index-key"])],10,VXe)),64))],4))}})),[["__scopeId","data-v-3e0766e2"]]),v_=Xe({name:"InfographicBlockNodeLoading",props:{node:{type:Object,required:!0},showHeader:{type:Boolean,default:!0},estimatedPreviewHeightPx:{type:Number,default:void 0}},setup(e){const t=R(()=>{var n,i;return Nw((i=M0(e.estimatedPreviewHeightPx))!=null?i:Fw(String((n=e.node.code)!=null?n:"")))});return()=>{var n;return Gn("div",{class:"infographic-block-container rounded-lg border overflow-hidden",style:{margin:"var(--ms-flow-diagram-y) 0",background:"var(--diagram-bg)",borderColor:"var(--diagram-border)",color:"hsl(var(--ms-foreground))"},"data-markstream-infographic":"1","data-markstream-mode":"pending"},[e.showHeader?Gn("div",{class:"infographic-block-header flex justify-between items-center border-b",style:{padding:"var(--ms-inset-panel-y) var(--ms-inset-panel-x)",background:"var(--diagram-header-bg)",borderColor:"var(--diagram-border)",minHeight:"calc(var(--ms-action-btn-icon) + var(--ms-action-btn-padding) + var(--ms-action-btn-padding) + var(--ms-inset-panel-y) + var(--ms-inset-panel-y) + 1px)"}},[Gn("div",{class:"flex items-center gap-x-2 overflow-hidden"},[Gn("span",{class:"icon-slot action-icon shrink-0",style:{display:"inline-flex",width:"var(--ms-action-btn-icon)",height:"var(--ms-action-btn-icon)"}}),Gn("span",{class:"infographic-label font-medium font-mono truncate",style:{fontSize:"var(--ms-text-label)",color:"hsl(var(--ms-muted-foreground))"}},"Infographic")]),Gn("div",{class:"infographic-header-actions flex items-center opacity-0 pointer-events-none",style:{gap:"var(--ms-gap-header-actions)"},"aria-hidden":"true"},Array.from({length:4},()=>Gn("span",{class:"infographic-action-btn inline-flex items-center justify-center p-[var(--ms-action-btn-padding)] rounded",style:{width:"calc(var(--ms-action-btn-icon) + var(--ms-action-btn-padding) + var(--ms-action-btn-padding))",height:"calc(var(--ms-action-btn-icon) + var(--ms-action-btn-padding) + var(--ms-action-btn-padding))"}})))]):null,Gn("div",{class:"infographic-preview relative overflow-hidden block",style:{height:`${t.value}px`,minHeight:"var(--ms-size-diagram-min-height)",background:"var(--diagram-bg)"}},[Gn("pre",{class:"infographic-pending-source text-sm font-mono whitespace-pre-wrap",style:{position:"absolute",inset:"0",zIndex:"1",margin:"0",padding:"var(--ms-inset-panel-body)",overflow:"auto",textAlign:"left"}},String((n=e.node.code)!=null?n:"")),Gn("div",{class:"absolute inset-0"},[Gn("div",{class:"w-full text-center flex items-center justify-center min-h-full"})])])])}}}),FU=Xe({name:"MermaidBlockNodeLoading",props:{node:{type:Object,required:!0},showHeader:{type:Boolean,default:!0},estimatedPreviewHeightPx:{type:Number,default:void 0}},setup(e){const t=R(()=>{var n,i;return Dw((i=M0(e.estimatedPreviewHeightPx))!=null?i:Ow(String((n=e.node.code)!=null?n:"")))});return()=>{var n;return Gn("div",{class:"mermaid-block-container rounded-lg border overflow-hidden",style:{margin:"var(--ms-flow-diagram-y) 0",borderColor:"var(--diagram-border)"},"data-markstream-mermaid":"1","data-markstream-mode":"pending"},[e.showHeader?Gn("div",{class:"mermaid-block-header flex justify-between items-center border-b px-[var(--ms-inset-panel-x)] py-[var(--ms-inset-panel-y)]",style:{background:"var(--diagram-header-bg)",borderColor:"var(--diagram-border)"}},[Gn("div",{class:"flex items-center gap-x-2 overflow-hidden"},[Gn("span",{class:"mermaid-label-text text-[length:var(--ms-text-label)] font-medium font-mono truncate",style:{color:"var(--code-action-fg)"}},"Mermaid")]),Gn("div",{class:"mermaid-header-actions flex items-center gap-[var(--ms-gap-header-actions)] opacity-0 pointer-events-none","aria-hidden":"true"},Array.from({length:4},()=>Gn("span",{class:"mermaid-action-btn inline-flex items-center justify-center p-[var(--ms-action-btn-padding)] rounded"},[Gn("span",{class:"action-icon block"})])))]):null,Gn("div",{class:"mermaid-preview-area relative overflow-hidden block",style:{height:`${t.value}px`,minHeight:"var(--ms-size-diagram-min-height)",background:"var(--diagram-bg)"}},[Gn("pre",{class:"mermaid-source-code text-sm font-mono whitespace-pre-wrap",style:{position:"absolute",inset:"0",margin:"0",padding:"var(--ms-inset-panel-body)",overflow:"auto",textAlign:"left"}},String((n=e.node.code)!=null?n:"")),Gn("div",{class:"_mermaid w-full text-center flex items-center justify-center min-h-full",style:{fontFamily:"inherit",contentVisibility:"auto",contain:"content",containIntrinsicSize:"var(--ms-size-diagram-min-height) 240px"}})])])}}}),KXe=Xe({name:"NodeRendererContent",props:["item","sourceNodes","fade","final","nestedRendererProps"],setup:e=>()=>Gn(Co,{name:"fade",css:e.fade!==!1,appear:e.fade!==!1&&e.final!==!0},{default:()=>{const t=e.item;return t.rendersCustomNode?Gn(t.component,wn({key:0},t.customNodeProps),{default:()=>t.hasSlotChildren?Gn(Ww,Ji(wn({key:0},e.nestedRendererProps),{nodes:t.node.children,indexKey:t.indexKey,batchRendering:!1,deferNodesUntilVisible:!1,renderAsFragment:!0})):t.slotContent?Gn(Ww,Ji(wn({key:1},e.nestedRendererProps),{content:t.slotContent,final:!t.node.loading,indexKey:`${t.indexKey}-content`,smoothStreaming:!1,batchRendering:!1,deferNodesUntilVisible:!1,renderAsFragment:!0})):X("v-if",!0)}):Gn(t.component,wn({key:1},t.nodeProps))}})}),ZXe={docs:{showTooltips:!0,fade:!0,batchRendering:!0,initialRenderBatchSize:40,renderBatchSize:80,renderBatchDelay:16,renderBatchBudgetMs:6,renderBatchIdleTimeoutMs:120,deferNodesUntilVisible:!0,maxLiveNodes:220,liveNodeBuffer:60,nodeVirtual:"auto"},chat:{showTooltips:!1,fade:!1,batchRendering:!0,initialRenderBatchSize:32,renderBatchSize:48,renderBatchDelay:6,renderBatchBudgetMs:8,renderBatchIdleTimeoutMs:60,deferNodesUntilVisible:!0,maxLiveNodes:0,liveNodeBuffer:0,nodeVirtual:"auto"},minimal:{showTooltips:!1,fade:!1,batchRendering:!0,initialRenderBatchSize:32,renderBatchSize:48,renderBatchDelay:6,renderBatchBudgetMs:8,renderBatchIdleTimeoutMs:60,deferNodesUntilVisible:!0,maxLiveNodes:0,liveNodeBuffer:0,nodeVirtual:"auto"}};function ls(e){if(e==null)return"";if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}const GXe=["data-custom-id"],QXe=["data-node-index","data-node-type"],DU="typewriter-simple-cursor-target",Ww=xo(Xe(Ji(wn({},{name:"NodeRenderer"}),{__name:"NodeRenderer",props:{content:{},nodes:{},final:{type:Boolean},parseOptions:{},customMarkdownIt:{},debugPerformance:{type:Boolean,default:!1},customHtmlTags:{},mode:{},domMode:{},htmlPolicy:{},viewportPriority:{type:Boolean,default:void 0},viewportPriorityOptions:{},codeBlockStream:{type:Boolean,default:!0},codeBlockDarkTheme:{},codeBlockLightTheme:{},renderCodeBlocksAsPre:{type:Boolean,default:void 0},codeBlockMinWidth:{},codeBlockMaxWidth:{},codeBlockOptions:{},codeBlockProps:{},mermaidProps:{},d2Props:{},infographicProps:{},showTooltips:{type:Boolean,default:void 0},themes:{},isDark:{type:Boolean},customId:{},indexKey:{},typewriter:{type:[Boolean,String],default:!1},smoothStreaming:{type:[Boolean,String],default:"auto"},smoothStreamingOptions:{},parseCoalesceMs:{},fade:{type:Boolean,default:void 0},batchRendering:{type:Boolean,default:void 0},initialRenderBatchSize:{},renderBatchSize:{},renderBatchDelay:{},renderBatchBudgetMs:{},renderBatchIdleTimeoutMs:{},deferNodesUntilVisible:{type:Boolean,default:void 0},maxLiveNodes:{},liveNodeBuffer:{},nodeVirtual:{type:[Boolean,String],default:void 0},virtualScroll:{},renderAsFragment:{type:Boolean}},emits:["copy","copy-code","handleArtifactClick","click","mouseover","mouseout","virtual-state-change","height-change","render-settled","render-final","anchor-change"],setup(e,{expose:t,emit:n}){const i=e,o=n;function s(H){if(!(typeof Event<"u"&&H instanceof Event))return typeof H=="string"&&o("copy-code",H),void o("copy",H)}function r(H){o("handleArtifactClick",H)}function a(H){o("mouseover",H)}function l(H){o("mouseout",H)}const c=Dr(),u=Zt("markstreamNestedRendererProps",void 0);function d(H){const ue=c?.vnode.props;return!!ue&&(Object.prototype.hasOwnProperty.call(ue,H)||Object.prototype.hasOwnProperty.call(ue,String(H).replace(/[A-Z]/g,me=>`-${me.toLowerCase()}`)))}function f(H){var ue,me;const we=i[H];return d(H)?we:(me=(ue=u?.value)==null?void 0:ue[H])!=null?me:we}const h=R(()=>{return(H=f("mode"))==="chat"||H==="minimal"||H==="docs"?H:"docs";var H}),m=R(()=>Dae(f("typewriter"))),g=R(()=>m.value!=="off"),y=R(()=>f("domMode")==="minimal"?"minimal":"full"),v=R(()=>f("renderCodeBlocksAsPre")===!0),k=R(()=>ZXe[h.value]),w=R(()=>{var H;return(H=f("showTooltips"))!=null?H:k.value.showTooltips}),C=R(()=>{var H;return(H=f("fade"))!=null?H:k.value.fade}),x=R(()=>{var H;return(H=f("batchRendering"))!=null?H:k.value.batchRendering}),S=R(()=>{var H;return(H=f("initialRenderBatchSize"))!=null?H:k.value.initialRenderBatchSize}),M=R(()=>{var H;return(H=f("renderBatchSize"))!=null?H:k.value.renderBatchSize}),_=R(()=>{var H;return(H=f("renderBatchDelay"))!=null?H:k.value.renderBatchDelay}),T=R(()=>{var H;return(H=f("renderBatchBudgetMs"))!=null?H:k.value.renderBatchBudgetMs}),E=R(()=>{var H;return(H=f("renderBatchIdleTimeoutMs"))!=null?H:k.value.renderBatchIdleTimeoutMs}),L=R(()=>{var H;return(H=f("deferNodesUntilVisible"))!=null?H:k.value.deferNodesUntilVisible}),P=R(()=>{var H;return(H=f("maxLiveNodes"))!=null?H:k.value.maxLiveNodes}),N=R(()=>{var H;return(H=f("liveNodeBuffer"))!=null?H:k.value.liveNodeBuffer}),U=R(()=>{var H;return(H=f("nodeVirtual"))!=null?H:k.value.nodeVirtual}),F={get content(){return i.content},get nodes(){return i.nodes},get final(){return i.final},get parseOptions(){return f("parseOptions")},get customMarkdownIt(){return f("customMarkdownIt")},get debugPerformance(){return i.debugPerformance},get customHtmlTags(){return f("customHtmlTags")},get mode(){return f("mode")},get domMode(){return y.value},get htmlPolicy(){return f("htmlPolicy")},get viewportPriority(){return f("viewportPriority")},get viewportPriorityOptions(){return f("viewportPriorityOptions")},get codeBlockStream(){return f("codeBlockStream")},get codeBlockDarkTheme(){return f("codeBlockDarkTheme")},get codeBlockLightTheme(){return f("codeBlockLightTheme")},get codeBlockMinWidth(){return f("codeBlockMinWidth")},get codeBlockMaxWidth(){return f("codeBlockMaxWidth")},get codeBlockOptions(){return f("codeBlockOptions")},get codeBlockProps(){return f("codeBlockProps")},get mermaidProps(){return f("mermaidProps")},get d2Props(){return f("d2Props")},get infographicProps(){return f("infographicProps")},get showTooltips(){return w.value},get themes(){return f("themes")},get isDark(){return f("isDark")},get customId(){return f("customId")},get indexKey(){return i.indexKey},get typewriter(){return f("typewriter")},get smoothStreaming(){return i.smoothStreaming},get smoothStreamingOptions(){return f("smoothStreamingOptions")},get parseCoalesceMs(){return f("parseCoalesceMs")},get fade(){return C.value},get batchRendering(){return x.value},get initialRenderBatchSize(){return S.value},get renderBatchSize(){return M.value},get renderBatchDelay(){return _.value},get renderBatchBudgetMs(){return T.value},get renderBatchIdleTimeoutMs(){return E.value},get deferNodesUntilVisible(){return L.value},get maxLiveNodes(){return P.value},get liveNodeBuffer(){return N.value},get nodeVirtual(){return U.value},get virtualScroll(){return i.virtualScroll},get renderAsFragment(){return i.renderAsFragment}};function B(H){o("height-change",H)}function W(H){o("virtual-state-change",H)}function D(H){o("anchor-change",H)}const z=Z(),$=Z(null),j=Z(null),G=Z(null),K=Qo({1:null,2:null,3:null,4:null,5:null,6:null}),te=Z(!1),J=new Map,q=Z(0);let Y=!1;const ae=Z(0),pe=Z({paragraph:null,listItem:null,listWrapperOverhead:0,headings:{1:null,2:null,3:null,4:null,5:null,6:null}});function Me(H,ue){return typeof H!="string"?ue:H.trim()||ue}function fe(H){const ue=Number(H);return Number.isFinite(ue)&&ue>0?Math.max(1,Math.trunc(ue)):640}const se=R(()=>{var H;const ue=(H=F.viewportPriorityOptions)!=null?H:{},me=Me(ue.rootMargin,mm);return{rootMargin:me,heavyBlockMargin:Me(ue.heavyBlockMargin,me),maxTargets:fe(ue.maxTargets)}}),Q=R(()=>{var H;return(H=se.value.rootMargin)!=null?H:mm}),ee=R(()=>{var H;return(H=se.value.maxTargets)!=null?H:640});function he(){var H,ue;if(((H=i.virtualScroll)==null?void 0:H.enabled)!==!0)return null;const me=(ue=i.virtualScroll)==null?void 0:ue.scrollRoot;return Re(typeof me=="function"?me():me)}function Re(H){return H?typeof HTMLElement<"u"&&H instanceof HTMLElement?H:typeof H=="object"&&"value"in H?Re(H.value):typeof H=="object"&&"$el"in H?Re(H.$el):null:null}fi(Lae,se);const{isClient:Pe,renderAsFragment:le,debugPerformanceEnabled:ke,resolvedShowTooltips:ne,resolvedHtmlPolicy:ce,inheritedSmoothStreaming:be,ownsTypewriterCursor:xe}=(function(H){const ue=typeof window<"u",me=Sm(),we=Zt("markstreamHtmlPolicy",void 0),We=Zt("markstreamTypewriterCursor",void 0),Ge=Zt("markstreamSmoothStreaming",void 0),ut=R(()=>H.renderAsFragment===!0),et=R(()=>!!(H.debugPerformance&&ue&&typeof console<"u")),Tt=R(()=>{var Ut;if(typeof H.showTooltips=="boolean")return H.showTooltips;const Dt=(Ut=me.showTooltips)!=null?Ut:me["show-tooltips"];return Dt===""||Dt===!0||Dt==="true"||Dt!==!1&&Dt!=="false"&&void 0}),dt=R(()=>{var Ut,Dt;return(Dt=(Ut=H.htmlPolicy)!=null?Ut:we?.value)!=null?Dt:"safe"}),Bt=R(()=>We?.value!==!0);return{isClient:ue,renderAsFragment:ut,debugPerformanceEnabled:et,resolvedShowTooltips:Tt,resolvedHtmlPolicy:dt,inheritedSmoothStreaming:Ge,inheritedTypewriterCursor:We,ownsTypewriterCursor:Bt}})(F),{resolveViewportRoot:de,resolveScrollContainer:$e,isReverseFlexScrollRoot:Ye,getNormalizedScrollTop:rt,getOffsetTopWithinRoot:Pt}=(function(H,ue){function me(){var et,Tt;return(Tt=(et=ue.scrollRoot)==null?void 0:et.call(ue))!=null?Tt:null}function we(et){if(typeof window>"u")return null;const Tt=me();if(Tt)return Tt;const dt=et??H.value;if(!dt)return null;const Bt=dt.ownerDocument||document,Ut=Bt.scrollingElement||Bt.documentElement;let Dt=dt;for(;Dt&&Dt!==Bt.body&&Dt!==Ut;){if(jXe(window.getComputedStyle(Dt))&&WXe(Dt))return Dt;Dt=Dt.parentElement}return null}function We(et){if(!ue.isClient)return!1;try{const Tt=window.getComputedStyle(et);return!!(Tt.display||"").toLowerCase().includes("flex")&&(Tt.flexDirection||"").toLowerCase().endsWith("reverse")}catch{return!1}}function Ge(et,Tt,dt){var Bt,Ut;if(dt)return ut(Tt);const Dt=et.scrollTop;if(!We(et))return Dt;const xt=Dt<0?-Dt:Dt;return Math.max(0,((Bt=et.scrollHeight)!=null?Bt:0)-((Ut=et.clientHeight)!=null?Ut:0))-xt}function ut(et){var Tt,dt,Bt,Ut,Dt;const xt=Number((Tt=et.scrollingElement)==null?void 0:Tt.scrollTop),_t=Number((Bt=(dt=et.documentElement)==null?void 0:dt.scrollTop)!=null?Bt:0),At=Number((Dt=(Ut=et.body)==null?void 0:Ut.scrollTop)!=null?Dt:0);return Math.max(0,Number.isFinite(xt)?xt:0,Number.isFinite(_t)?_t:0,Number.isFinite(At)?At:0)}return{resolveViewportRoot:we,resolveScrollContainer:function(et){var Tt,dt,Bt,Ut;const Dt=me();if(Dt)return Dt;const xt=we((Tt=et??H.value)!=null?Tt:null);if(xt)return xt;const _t=(Ut=(Bt=et?.ownerDocument)!=null?Bt:(dt=H.value)==null?void 0:dt.ownerDocument)!=null?Ut:typeof document<"u"?document:null;return _t?.scrollingElement||_t?.documentElement||null},isReverseFlexScrollRoot:We,getNormalizedScrollTop:Ge,getOffsetTopWithinRoot:function(et,Tt){const dt=Tt.ownerDocument||et.ownerDocument||document;if((function(xt,_t){return xt===_t.documentElement||xt===_t.body||xt===_t.scrollingElement})(Tt,dt))return et.getBoundingClientRect().top+ut(dt);const Bt=Tt.getBoundingClientRect(),Ut=et.getBoundingClientRect(),Dt=Ge(Tt,dt,!1);return Ut.top-Bt.top+Dt}}})(z,{isClient:Pe,scrollRoot:he});fi("markstreamShowTooltips",ne),fi("markstreamHtmlPolicy",ce),fi("markstreamTypewriter",g),fi("markstreamFade",R(()=>F.fade!==!1)),fi("markstreamTypewriterCursor",R(()=>!0)),fi("markstreamTextStreamState",J),fi("markstreamStreamVersion",q),fi("markstreamParseOptions",R(()=>F.parseOptions)),fi("markstreamCustomMarkdownIt",R(()=>F.customMarkdownIt));const{smoothStreamingEnabled:$t,renderContent:jt,requestedFinal:Kt,effectiveFinal:sn}=(function(H,ue){const me=zXe(Ji(wn(wn({},HXe),H.smoothStreamingOptions),{burstInitialContent:!CU(H.typewriter)})),we=R(()=>{var Dt,xt,_t;return H.smoothStreaming!==!1&&!((Dt=H.nodes)!=null&&Dt.length)&&(H.smoothStreaming===!0||!((xt=ue.inheritedSmoothStreaming)!=null&&xt.value))&&(H.smoothStreaming===!0||CU(H.typewriter)||((_t=H.maxLiveNodes)!=null?_t:0)<=0)}),We=Z(!ue.isClient||H.smoothStreaming===!0);Pn(()=>{We.value=!0});const Ge=R(()=>We.value&&we.value),ut=R(()=>{var Dt;return Ge.value?me.visible.value:(Dt=H.content)!=null?Dt:""}),et=R(()=>{var Dt,xt;const _t=(Dt=H.parseOptions)!=null?Dt:{};return(xt=H.final)!=null?xt:_t.final}),Tt=R(()=>{const Dt=et.value;return Ge.value&&Dt!=null?!!Dt&&me.caughtUp.value:Dt});let dt=0,Bt=!1;function Ut(){dt=0,Bt=!1}return Fe([()=>H.content,()=>H.nodes,Ge,et],([Dt,xt,_t,At])=>{if(xt?.length)return Ut(),void me.reset("");const Nt=Dt??"";if(!_t)return Ut(),me.reset(Nt),void(At&&me.finish({flush:!0}));const qt=me.source.value;if(Nt){if(Nt!==qt)if(Nt.startsWith(qt)){const hn=Nt.slice(qt.length),Sn=me.pendingChars.value;hn.length<=8?(dt++,Bt||dt>=2&&Sn<=8?(Bt=!0,me.reset(Nt,{prefixKnown:!0})):me.enqueue(hn)):(Ut(),me.enqueue(hn))}else Ut(),me.reset(Nt)}else Ut(),me.reset("");At&&me.finish()},{immediate:!0}),{smoothStream:me,smoothStreamingEligible:we,smoothStreamingEnabled:Ge,renderContent:ut,requestedFinal:et,effectiveFinal:Tt}})(F,{isClient:Pe,inheritedSmoothStreaming:be}),Jt=Kt.value===!0;fi("markstreamSmoothStreaming",$t);const Oe=Z(!1),Le=Z(!1),Ke=Z(!1);let Ee="",Ie=!1,Ve=null;function pt(){Pe&&Ve!=null&&(window.clearTimeout(Ve),Ve=null)}function Lt(){Oe.value=!1,pt()}function Te(H,ue){if(!ke.value)return;const me=(function(){if(!ke.value)return null;const we=gt(ge),We=gt(je),Ge=Math.max(Ct,We);if(we<=0&&Ge<=0)return null;const ut={total:we,maxPerFrame:Ge,byLabel:(et=ge,Object.fromEntries(Array.from(et.entries()).sort((Tt,dt)=>dt[1]-Tt[1]||Tt[0].localeCompare(dt[0]))))};var et;return ge.clear(),je.clear(),Ct=0,ut})();console.info(`[markstream-vue][perf] ${H}`,me?Ji(wn({},ue),{layoutReads:me}):ue)}Fe([()=>F.indexKey,()=>F.customId],()=>{var H,ue;Lt(),Le.value=!1,Ke.value=!((H=i.nodes)!=null&&H.length)&&Kt.value!==!0&&!!i.content,Ee=(ue=jt.value)!=null?ue:"",Ie=Ee.length>0},{flush:"sync"}),Fe([()=>i.content,()=>i.nodes,Kt],([H,ue,me])=>{!ue?.length&&me!==!0&&H&&(Ke.value=!0)},{flush:"sync",immediate:!0}),Fe([jt,()=>i.nodes,sn],([H,ue,me])=>{const we=H??"";return ue?.length||me===!0?(Lt(),Le.value=!1,Ee=we,void(Ie=!0)):(we.length>0&&(Ke.value=!0),Ie?(Ee&&we.length>Ee.length&&we.startsWith(Ee)?(Oe.value=!0,Le.value=!0,Pe&&(pt(),Ve=window.setTimeout(()=>{var We;Ve=null,sn.value===!0||(We=i.nodes)!=null&&We.length||(Wm(),Oe.value=!1,Dh())},1200))):(we.length"u")return null;const Ge=window;if(Ge.__markstreamLayoutReadPerformance)return Ge.__markstreamLayoutReadPerformance;const ut={total:0,maxPerFrame:0,byLabel:{}};return Ge.__markstreamLayoutReadPerformance=ut,ut})();We&&(We.total=Number(We.total||0)+1,We.byLabel[we]=Number(We.byLabel[we]||0)+1,We.currentFrameTotal=Number(We.currentFrameTotal||0)+1,We.frameScheduled||(We.frameScheduled=!0,typeof window.requestAnimationFrame!="function"?typeof queueMicrotask!="function"?setTimeout(()=>wt(We),0):queueMicrotask(()=>wt(We)):window.requestAnimationFrame(()=>wt(We))))})(H),He||(He=!0,Pe&&typeof window<"u"&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame(St):typeof queueMicrotask!="function"?setTimeout(St,0):queueMicrotask(St)))}function st(H,ue){return tt(H),ue()}const Rt=F.customId?`renderer-${F.customId}`:`renderer-${Date.now()}-${Math.random().toString(36).slice(2)}`,ln=(function(H){const ue=new Map;return{scope:H,cache:ue,clear:()=>ue.clear()}})(Rt),ht=Rt;fi(Nae,ln);const ct=zr(()=>F.customId),{effectiveCustomHtmlTagsSet:Vt,mdInstance:en,mergedParseOptions:cn,parsedNodes:Ft,getParsedNodesDirtyStartIndex:$n,getParsedNodesRevision:Vn}=DXe(F,{instanceMsgId:Rt,renderContent:jt,effectiveFinal:sn,smoothStreamingEnabled:$t,debugPerformanceEnabled:ke,customComponentsMap:ct,logPerf:Te});Fe(Ft,()=>{Oe.value||ln.clear(),q.value+=1,Y&&Wr(Mh(Ft.value.length))},{immediate:!0});const xi=R(()=>({customId:F.customId,customHtmlTags:cn.value.customHtmlTags,parseOptions:F.parseOptions,customMarkdownIt:F.customMarkdownIt,htmlPolicy:ce.value,viewportPriority:F.viewportPriority,viewportPriorityOptions:se.value,mode:h.value,domMode:F.domMode,codeBlockStream:F.codeBlockStream,codeBlockDarkTheme:F.codeBlockDarkTheme,codeBlockLightTheme:F.codeBlockLightTheme,renderCodeBlocksAsPre:v.value,codeBlockMinWidth:F.codeBlockMinWidth,codeBlockMaxWidth:F.codeBlockMaxWidth,codeBlockOptions:F.codeBlockOptions,codeBlockProps:F.codeBlockProps,mermaidProps:F.mermaidProps,d2Props:F.d2Props,infographicProps:F.infographicProps,showTooltips:ne.value,themes:F.themes,isDark:F.isDark,typewriter:g.value,smoothStreamingOptions:F.smoothStreamingOptions,parseCoalesceMs:F.parseCoalesceMs,fade:F.fade}));fi("markstreamNestedRendererProps",xi);const Mi=R(()=>Ft.value),hi=R(()=>Ft.value.length),pi=Z(null),Lo=Z(null),mo=Z(null),Qi=Z(null),Zn=i.indexKey!=null&&String(i.indexKey).startsWith("list-item-"),Ko=!Zn&&F.customId?mU(F.customId):null,Ms=R(()=>Ko?(Y5.value,mU(F.customId)):null),Ro=R(()=>{var H;return!!(!le.value&&F.customId&&!Zn&&((H=Ms.value)!=null&&H.enabled))}),js=R(()=>!!(Pe&&Ro.value)),Oi=R(()=>{var H;return!!(!le.value&&((H=i.virtualScroll)!=null&&H.enabled))}),Ai=R(()=>Oi.value),Po=Z(!1);Pn(()=>{Po.value=!0});const wi=R(()=>!!(Pe&&Oi.value));fi("markstreamHostScrollManaged",wi);const go=R(()=>!!(Po.value&&wi.value)),Dn=R(()=>js.value||wi.value);Fe(Dn,H=>{H&&Oae()},{immediate:!0});const Xi=R(()=>js.value||go.value),es=R(()=>{var H;return Dn.value&&((H=Ms.value)==null?void 0:H.textEstimation)!==!1});function ts(){if(ae.value>0)return ae.value;const H=st("getMeasuredContainerWidth.clientWidth",()=>{var ue;return((ue=z.value)==null?void 0:ue.clientWidth)||0});return Number.isFinite(H)&&H>0?H:0}const ms=R(()=>{const H=ts();return H>0?Math.max(1,Math.round(H)):640}),Ws=R(()=>{var H,ue;return!(sn.value!==!0||Oi.value||h.value!=="chat"&&h.value!=="minimal"||d("maxLiveNodes")||d("liveNodeBuffer")||(H=i.nodes)!=null&&H.length||Ke.value||!(((ue=F.maxLiveNodes)!=null?ue:0)<=0))}),ye=R(()=>{var H;return Ws.value?50:Math.max(1,(H=F.maxLiveNodes)!=null?H:320)}),Ae=R(()=>{var H;return Ws.value?16:Math.max(0,(H=F.liveNodeBuffer)!=null?H:60)}),Ce=R(()=>{var H;return!le.value&&F.nodeVirtual!==!1&&!(((H=F.maxLiveNodes)!=null?H:0)<=0&&!Ws.value)&&(F.nodeVirtual===!0?Ft.value.length>0:Ft.value.length>ye.value)}),Je=R(()=>Ce.value||js.value||wi.value),vt=R(()=>F.viewportPriority!==!1),Qt=R(()=>!!vt.value&&!te.value);var un;un=R(()=>vt.value),fi(Rae,un);const yn=R(()=>{var H;return!(le.value||F.deferNodesUntilVisible===!1||((H=F.maxLiveNodes)!=null?H:0)<=0||Ce.value||Ft.value.length>900||F.viewportPriority===!1)}),On=rJe(H=>{var ue,me;return de((me=(ue=H?.parentElement)!=null?ue:z.value)!=null?me:null)},vt),{requestFrame:Kn,cancelFrame:ti,hasIdleCallback:Es,isTestEnv:no}=(function(H){const ue=H.isClient&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame.bind(window):null,me=H.isClient&&typeof window.cancelAnimationFrame=="function"?window.cancelAnimationFrame.bind(window):null,we=H.isClient&&typeof window.requestIdleCallback=="function",We=(function(){var Ge;if(typeof globalThis>"u"||!("process"in globalThis))return;const ut=(Ge=Object.getOwnPropertyDescriptor(globalThis,"process"))==null?void 0:Ge.value;return ut?.env})();return{requestFrame:ue,cancelFrame:me,hasIdleCallback:we,isTestEnv:We?.NODE_ENV==="test"}})({isClient:Pe}),gs=R(()=>sn.value===!0&&!Oi.value),{resolvedBatchSize:_l,resolvedInitialBatch:vo,batchingEnabled:qs,incrementalRenderingActive:Ne,renderedCount:lt,previousRenderContext:ot,adaptiveBatchSize:Xt,previousBatchConfig:Ht}=(function(H,ue){var me;const we=R(()=>{var Ut;const Dt=Math.trunc((Ut=H.renderBatchSize)!=null?Ut:80);return Number.isFinite(Dt)?Math.max(0,Dt):0}),We=R(()=>{var Ut;const Dt=Math.trunc((Ut=H.initialRenderBatchSize)!=null?Ut:we.value);return Number.isFinite(Dt)?Math.max(0,Dt):we.value}),Ge=R(()=>!ue.renderAsFragment.value&&H.batchRendering!==!1&&we.value>0&&ue.isClient&&!ue.isTestEnv),ut=Z(0),et=Z({key:H.indexKey,total:0}),Tt=Z(Math.max(1,we.value||1)),dt=R(()=>{var Ut,Dt,xt;return Ge.value&&!((Ut=ue.continuousStreaming)!=null&&Ut.value)&&!((Dt=ue.forceFullRenderFinalContent)!=null&&Dt.value)&&((xt=H.maxLiveNodes)!=null?xt:0)<=0}),Bt=Z({batchSize:we.value,initial:We.value,delay:(me=H.renderBatchDelay)!=null?me:16,enabled:dt.value});return{resolvedBatchSize:we,resolvedInitialBatch:We,batchingEnabled:Ge,incrementalRenderingActive:dt,renderedCount:ut,previousRenderContext:et,adaptiveBatchSize:Tt,previousBatchConfig:Bt}})(F,{isClient:Pe,isTestEnv:no,renderAsFragment:le,forceFullRenderFinalContent:gs,continuousStreaming:R(()=>Le.value&&sn.value!==!0)}),di=R(()=>{var H;return!le.value&&F.batchRendering!==!1&&_l.value>0&&!no&&((H=F.maxLiveNodes)!=null?H:0)<=0&&!gs.value}),co=R(()=>di.value),Ga=R(()=>Dn.value||co.value),Ls=R(()=>{var H;return Ga.value&&((H=Ms.value)==null?void 0:H.codeBlockEstimation)!==!1}),vs=new Map,Hr=new Map,Ru=new Map,Yl=new WeakMap;let Si=null;const io=[];Fe(()=>Ft.value.length,H=>{io.length>H&&(io.length=H)});const eo=[],Jl=[];let br=[],Zo=[],Xl=-1;const Yr=Is(Jl),ha=new Set,gd=Z(0);let Pu=0;const Qa=Z(0),xh=R(()=>(Qa.value,Array.from(vs.entries()).sort((H,ue)=>H[0]-ue[0]))),Pa=Z(null),Vs=Z(null);let jr,pa=null,Us=0,ma=null;function Wr(H){jr.markFallbackHeightPrefixDirty(H)}function Jr(H){return jr.getFallbackNodeHeight(H)}function $a(H,ue){return jr.estimateHeightRange(H,ue)}function $u(H){return jr.estimateIndexForOffset(H)}const{activeRestoreAnchor:Xr,getRelativeScrollTopWithinContainer:vd,setRelativeScrollTopWithinContainer:yd,resolveAnchorOffset:Mp,clearRestoreReconcile:cr,scheduleRestoreReconcile:Cs,captureRestoreAnchor:kr,restoreAnchor:wr,getAnchorDrift:jc}=(function(H){const{isClient:ue,containerRef:me,parsedNodeCount:we,requestFrame:We,cancelFrame:Ge,resolveScrollContainer:ut,getNormalizedScrollTop:et,getOffsetTopWithinRoot:Tt,isReverseFlexScrollRoot:dt,estimateIndexForOffset:Bt,estimateHeightRange:Ut,getFallbackNodeHeight:Dt,clamp:xt}=H,_t=Z(null);let At=null,Nt=[];function qt(){const zn=ut(),Wn=me.value;if(!zn||!Wn)return null;const Jn=zn.ownerDocument||Wn.ownerDocument||document;if(zn===Jn.documentElement||zn===Jn.body||zn===Jn.scrollingElement){const _i=Wn.getBoundingClientRect();return Math.max(0,-_i.top)}return Math.max(0,et(zn,Jn,!1)-Tt(Wn,zn))}function hn(zn){var Wn;const Jn=ut(),_i=me.value;if(!Jn||!_i)return;const ss=Math.max(0,zn),rs=Jn.ownerDocument||_i.ownerDocument||document,va=rs.defaultView||(typeof window<"u"?window:null);if(Jn===rs.documentElement||Jn===rs.body||Jn===rs.scrollingElement){const Li=et(Jn,rs,!0)+_i.getBoundingClientRect().top;return void((Wn=va?.scrollTo)==null||Wn.call(va,0,Math.max(0,Li+ss)))}kU(Jn,rs,Tt(_i,Jn)+ss,{isReverseFlexScrollRoot:Li=>{var Ho;return(Ho=dt?.(Li))!=null&&Ho},getNormalizedScrollTop:et})}function Sn(zn){const Wn=we.value,Jn=xt(zn.nodeIndex,0,Math.max(0,Wn-1));return Ut(0,Jn)+Math.max(0,zn.offsetWithinNodePx)}function Bn(){if(At!=null&&(Ge?.(At),At=null),ue)for(const zn of Nt)window.clearTimeout(zn);Nt=[]}function ci(zn){const Wn=Sn(zn),Jn=qt();Jn!=null&&Math.abs(Jn-Wn)<=.5||hn(Wn)}return{activeRestoreAnchor:_t,getRelativeScrollTopWithinContainer:qt,setRelativeScrollTopWithinContainer:hn,resolveAnchorOffset:Sn,clearRestoreReconcile:Bn,applyRestoreAnchor:ci,scheduleRestoreReconcile:function(){_t.value&&ue&&At==null&&(At=We?We(()=>{At=null,_t.value&&ci(_t.value)}):null,At==null&&_t.value&&ci(_t.value))},captureRestoreAnchor:function(){const zn=qt(),Wn=we.value;if(zn==null||Wn<=0)return null;const Jn=xt(Bt(zn+1),0,Wn-1),_i=Ut(0,Jn),ss=Dt(Jn);return{nodeIndex:Jn,offsetWithinNodePx:xt(zn-_i,0,Math.max(0,ss-1))}},restoreAnchor:function(zn){const Wn=we.value;if(_t.value={nodeIndex:xt(zn.nodeIndex,0,Math.max(0,Wn-1)),offsetWithinNodePx:Math.max(0,zn.offsetWithinNodePx)},Bn(),ci(_t.value),ue)for(const Jn of[0,120,280,480])Nt.push(window.setTimeout(()=>{_t.value&&ci(_t.value)},Jn))},getAnchorDrift:function(zn){const Wn=qt();return Wn==null?null:Wn-Sn(zn)}}})({isClient:Pe,containerRef:z,parsedNodeCount:hi,requestFrame:Kn,cancelFrame:ti,resolveScrollContainer:()=>Pa.value||$e(),getNormalizedScrollTop:rt,getOffsetTopWithinRoot:Pt,isReverseFlexScrollRoot:Ye,estimateIndexForOffset:$u,estimateHeightRange:$a,getFallbackNodeHeight:Jr,clamp:Ar}),{nodeHeights:ea,heightStats:As,heightTreeSize:Ks,heightSumTree:Rs,heightKnownTree:Ou,averageNodeHeight:ec,resetHeightMeasurements:Wc,pruneHeightMeasurements:Il,rebuildHeightTrees:Fu,syncHeightTreeSize:bd,recordNodeHeight:$o,removeNodeHeights:Qe,exportHeightCache:ze,importHeightCache:ft,fenwickRangeSum:Rn}=(function(H={}){const ue=Qo({}),me=Qo({total:0,count:0}),we=Z(0),We=Z([]),Ge=Z([]);function ut(){for(const xt of Object.keys(ue))delete ue[Number(xt)];me.total=0,me.count=0,we.value=0,We.value=[],Ge.value=[]}function et(xt,_t,At){for(let Nt=_t+1;Nt0;Nt-=Nt&-Nt)At+=xt[Nt];return At}function dt(xt,_t,At){if(At<=_t)return 0;const Nt=Tt(xt,At-1);return _t<=0?Nt:Nt-Tt(xt,_t-1)}function Bt(xt){we.value=xt;const _t=new Array(xt+1).fill(0),At=new Array(xt+1).fill(0);for(const[Nt,qt]of Object.entries(ue)){const hn=Number(Nt),Sn=Number(qt);!Number.isFinite(hn)||hn<0||hn>=xt||!Number.isFinite(Sn)||Sn<=0||(et(_t,hn,Sn),et(At,hn,1))}We.value=_t,Ge.value=At}function Ut(xt){if(!Number.isInteger(xt)||xt<0)return!1;const _t=ue[xt];if(!Number.isFinite(_t)||_t<=0)return!1;if(delete ue[xt],me.total=Math.max(0,me.total-_t),me.count=Math.max(0,me.count-1),we.value>xt){const At=We.value,Nt=Ge.value;At.length&&Nt.length&&(et(At,xt,-_t),et(Nt,xt,-1))}return!0}const Dt=R(()=>me.count>0?Math.max(12,me.total/me.count):32);return{nodeHeights:ue,heightStats:me,heightTreeSize:we,heightSumTree:We,heightKnownTree:Ge,averageNodeHeight:Dt,resetHeightMeasurements:ut,pruneHeightMeasurements:function(xt){if(xt<=0)return void ut();let _t=0,At=0;for(const[Nt,qt]of Object.entries(ue)){const hn=Number(Nt),Sn=Number(qt);!Number.isFinite(hn)||hn<0||hn>=xt||!Number.isFinite(Sn)||Sn<=0?delete ue[hn]:(_t+=Sn,At++)}me.total=_t,me.count=At},rebuildHeightTrees:Bt,syncHeightTreeSize:function(xt){const _t=we.value;if(xt===_t)return;if(xt<_t||_t===0)return void Bt(xt);const At=We.value,Nt=Ge.value;At.length=xt+1,Nt.length=xt+1;for(let qt=_t;qt=_t||(At[qt]+=dt(At,hn,_t),Nt[qt]+=dt(Nt,hn,_t))}we.value=xt},recordNodeHeight:function(xt,_t,At={}){(function(Nt,qt,hn={}){var Sn;if(!Number.isFinite(qt)||qt<=0)return!1;const Bn=ue[Nt];if(Bn&&(hn.allowShrink===!1&&qtNt){const ci=We.value,zn=Ge.value;if(ci.length&&zn.length)if(Bn){const Wn=qt-Bn;Wn!==0&&et(ci,Nt,Wn)}else et(ci,Nt,qt),et(zn,Nt,1)}hn.notify!==!1&&((Sn=H.onHeightRecorded)==null||Sn.call(H,Nt))})(xt,_t,Ji(wn({},At),{notify:!0}))},removeNodeHeight:function(xt,_t={}){var At;const Nt=Ut(xt);return Nt&&_t.notify!==!1&&((At=H.onHeightRecorded)==null||At.call(H,xt)),Nt},removeNodeHeights:function(xt,_t={}){var At;let Nt=0,qt=Number.POSITIVE_INFINITY;for(const hn of xt){const Sn=Number(hn);Ut(Sn)&&(Nt++,Sn0&&_t.notify!==!1&&((At=H.onHeightRecorded)==null||At.call(H,Number.isFinite(qt)?qt:void 0)),Nt},exportHeightCache:function(){return Object.entries(ue).map(([xt,_t])=>({index:Number(xt),height:Number(_t)})).filter(xt=>Number.isFinite(xt.index)&&xt.index>=0&&Number.isFinite(xt.height)&&xt.height>0).sort((xt,_t)=>xt.index-_t.index)},importHeightCache:function(xt,_t={}){var At;if(!Array.isArray(xt))return;const Nt=we.value;let qt=!1;if(_t.mode!=="merge"){const hn=Object.keys(ue);if(hn.length>0){for(const Sn of hn)delete ue[Number(Sn)];qt=!0}}for(const hn of xt){const Sn=Number(hn.index),Bn=Number(hn.height);if(!Number.isInteger(Sn)||Sn<0||Nt>0&&Sn>=Nt||!Number.isFinite(Bn)||Bn<=0)continue;const ci=ue[Sn];ci&&Math.abs(ci-Bn)<=1||(ue[Sn]=Bn,qt=!0)}qt&&((function(){let hn=0,Sn=0;const Bn=we.value;for(const[ci,zn]of Object.entries(ue)){const Wn=Number(ci),Jn=Number(zn);!Number.isFinite(Wn)||Wn<0||Bn>0&&Wn>=Bn||!Number.isFinite(Jn)||Jn<=0?delete ue[Wn]:(hn+=Jn,Sn++)}me.total=hn,me.count=Sn})(),Nt>0&&Bt(Nt),(At=H.onHeightRecorded)==null||At.call(H))},fenwickRangeSum:dt}})({onHeightRecorded:H=>{Wr(H??0),wi.value&&Gv(),Xr.value&&Cs(),Vs.value&&dn(),is("node-resize")}});function ri(H){Number.isInteger(H)&&H>=0&&ha.add(H)}function ni(H){for(const ue of H)ri(Number(ue))}function Fn(H){Pu++;let ue=!0;try{const me=H();return ue=me!==!1,me}finally{Pu--,Pu===0&&ue&&gd.value++}}function gi(){br=[],Zo=[],Xl=-1,ha.clear(),Yr.value=Jl}function yo(){gi(),Fn(()=>Wc()),eo.length=0}function xs(H){!Number.isInteger(H)||H<0||H>=Ft.value.length||(eo[H]=Fh(H))}function ur(H,ue,me={}){const we=ea[H];ri(H),$o(H,ue,me);const We=ea[H];return Object.is(we,We)?(ha.delete(H),!1):(We&&We>0?xs(H):we&&Hue.offsetHeight);return me>0?me:st("getNodeLayoutHeight.slot.offsetHeight",()=>{var we,We;return(We=(we=vs.get(H))==null?void 0:we.offsetHeight)!=null?We:0})}function Sh(H,ue={}){ue.mode!=="merge"?gi():ni(H.map(me=>me.index)),Fn(()=>ft(H,ue)),MA()}const Cr=R(()=>yn.value&&Qt.value),Tl=R(()=>Dn.value||di.value||Cr.value&&Ft.value.length>vo.value),qc=R(()=>{var H;return!le.value&&F.batchRendering!==!1&&_l.value>0&&((H=F.maxLiveNodes)!=null?H:0)<=0}),Lv=R(()=>!le.value&&Jt&&sn.value===!0&&!Ce.value&&!Oi.value&&!Ro.value&&!Cr.value&&!qc.value),Ep=R(()=>!!On&&Cr.value),kd=R(()=>[Ep.value,Cr.value,Ce.value,te.value,ee.value,Q.value,vo.value,!!On].join("|")),Rv=R(()=>Ce.value||wi.value),{focusIndex:Ja,liveRange:Oo,updateLiveRange:Du}=(function(H,ue){const{parsedNodeCount:me,virtualizationEnabled:we,maxLiveNodesResolved:We,liveNodeBufferResolved:Ge,clamp:ut}=ue,et=Ge??R(()=>{var Bt;return Math.max(0,(Bt=H.liveNodeBuffer)!=null?Bt:60)}),Tt=Z(0),dt=Qo({start:0,end:0});return{liveNodeBufferResolved:et,focusIndex:Tt,liveRange:dt,updateLiveRange:function(){const Bt=me.value;if(!we.value||Bt===0)return dt.start=0,void(dt.end=Bt);const Ut=Math.min(We.value,Bt),Dt=et.value,xt=ut(Tt.value-Dt,0,Math.max(0,Bt-Ut));dt.start=xt,dt.end=Math.min(Bt,xt+Ut)}}})(F,{parsedNodeCount:hi,virtualizationEnabled:Ce,maxLiveNodesResolved:ye,liveNodeBufferResolved:Ae,clamp:Ar}),Zs=new Map,tc=new Map,ys=new Map,Ml=new Map,wd=[],Xa=new Map;let _h=-1/0;const nc=new Set,Ih=Z(0);let yf=!1;const Lp=R(()=>(Ih.value,nc.size)),ta=new Map,El=new Map,$m=Z(0);let Se=0;const nt=R(()=>($m.value,Se));let Mt=null;const on=R(()=>{if(!Ce.value)return Ft.value.length;const H=Ae.value,ue=Math.max(Oo.end+H,vo.value),me=Math.min(Ft.value.length,ue);return Math.max(lt.value,me)});function Tn(){yf||(yf=!0,queueMicrotask(()=>{yf=!1,Ih.value+=1}))}function ii(H,ue,me="node-resize"){if(!Pe||typeof window>"u")return null;const we=window.setTimeout(()=>{nc.delete(we)&&Tn();try{ue()}finally{is(me)}},Math.max(0,H));return nc.add(we),Tn(),we}function Ei(H){Pe&&H!=null&&(nc.delete(H)&&Tn(),window.clearTimeout(H))}function zo(){if(Pe&&typeof window<"u")for(const H of nc)window.clearTimeout(H);nc.size&&(nc.clear(),Tn()),wd.length=0,Ml.clear()}function ga(H){$.value=H}function el(H){j.value=H}function Rp(H){G.value=H}const{cancelScheduledFocusSync:Pv,scheduleFocusSync:ic}=(function(H){const{isClient:ue,containerRef:me,virtualizationEnabled:we,requestFrame:We,cancelFrame:Ge,syncFocusToScroll:ut}=H;let et=null;function Tt(){var Bt,Ut,Dt;return(Dt=(Ut=(Bt=me.value)==null?void 0:Bt.ownerDocument)==null?void 0:Ut.defaultView)!=null?Dt:typeof window<"u"?window:null}function dt(){if(!et)return;const Bt=Tt();et.viaTimeout?Bt?Bt.clearTimeout(et.id):clearTimeout(et.id):Ge?.(et.id),et=null}return{cancelScheduledFocusSync:dt,scheduleFocusSync:function(Bt={}){if(!we.value)return;if(!ue)return void ut(!0);if(Bt.immediate)return dt(),void ut(!0);if(et)return;const Ut=()=>{et=null,ut()};if(We)return void(et={id:We(Ut),viaTimeout:!1});const Dt=Tt();et={id:Dt?Dt.setTimeout(Ut,16):setTimeout(Ut,16),viaTimeout:!0}}}})({isClient:Pe,containerRef:z,virtualizationEnabled:Ce,requestFrame:Kn,cancelFrame:ti,syncFocusToScroll:function(H=!1){var ue;if(!Ce.value)return;const me=Pa.value||$e();if(!me)return;const we=me.ownerDocument||((ue=z.value)==null?void 0:ue.ownerDocument)||document,We=we?.defaultView||(typeof window<"u"?window:null),Ge=me===we?.documentElement||me===we?.body,ut=Ft.value.length;if(ut<=0)return;if(!Ge&&ut>0&&Ye(me)){const At=st("syncFocusToScroll.clientHeight",()=>me.clientHeight||0),Nt=st("syncFocusToScroll.scrollTop",()=>me.scrollTop),qt=Nt<0?-Nt:Nt;return void xd(Ar((et=Math.max(0,qt)+.5*Math.max(0,At),jr.estimateIndexForOffsetFromEnd(et)),0,Math.max(0,ut-1)),H)}var et;const Tt=(function(At,Nt,qt,hn){const Sn=z.value;if(!Sn)return null;const Bn=hn?0:st("syncFocusToScroll.model.root.getBoundingClientRect",()=>At.getBoundingClientRect().top),ci=st("syncFocusToScroll.model.container.getBoundingClientRect",()=>Sn.getBoundingClientRect().top),zn=Math.max(0,Bn-ci),Wn=hn?st("syncFocusToScroll.model.viewport.clientHeight",()=>{var Jn,_i,ss,rs;return(rs=(ss=(_i=qt?.innerHeight)!=null?_i:(Jn=Nt.documentElement)==null?void 0:Jn.clientHeight)!=null?ss:At.clientHeight)!=null?rs:0}):st("syncFocusToScroll.model.root.clientHeight",()=>At.clientHeight);return Ar($u(zn+.5*Math.max(0,Wn)),0,Math.max(0,Ft.value.length-1))})(me,we,We,Ge);if(Tt!=null)return void xd(Tt,H);const dt=Ge?null:st("syncFocusToScroll.root.getBoundingClientRect",()=>me.getBoundingClientRect()),Bt=Ge?0:dt.top,Ut=Ge?st("syncFocusToScroll.viewport.clientHeight",()=>{var At,Nt;return(Nt=(At=We?.innerHeight)!=null?At:me.clientHeight)!=null?Nt:0}):dt.bottom,Dt=xh.value;let xt=null,_t=null;for(const[At,Nt]of Dt){if(!Nt)continue;const qt=st("syncFocusToScroll.slot.getBoundingClientRect",()=>Nt.getBoundingClientRect());qt.bottom<=Bt||qt.top>=Ut||(xt==null&&(xt=At),_t=At)}if(xt==null||_t==null){const At=z.value;if(!At)return;const Nt=Ge?{top:0}:st("syncFocusToScroll.fallback.root.getBoundingClientRect",()=>me.getBoundingClientRect()),qt=st("syncFocusToScroll.fallback.scrollTop",()=>rt(me,we,Ge)),hn=Ge?(()=>{const Bn=st("syncFocusToScroll.fallback.container.getBoundingClientRect",()=>At.getBoundingClientRect()),ci=(Ge?0:Nt.top)-Bn.top;return Math.max(0,ci)})():(()=>{const Bn=Pt(At,me);return Math.max(0,qt-Bn)})(),Sn=Ge?st("syncFocusToScroll.fallback.viewport.clientHeight",()=>{var Bn,ci,zn,Wn;return(Wn=(zn=(ci=We?.innerHeight)!=null?ci:(Bn=we?.documentElement)==null?void 0:Bn.clientHeight)!=null?zn:me.clientHeight)!=null?Wn:0}):st("syncFocusToScroll.fallback.root.clientHeight",()=>me.clientHeight);return void xd(Ar($u(hn+.5*Math.max(0,Sn)),0,Math.max(0,Ft.value.length-1)),!0)}xd(Math.round((xt+_t)/2),H)}}),{visibleNodeIndices:Th,nodeVisibilityHandles:bf,nodeVisibilityWatchStops:Pp,nodeVisibilityFallbackTimers:Om,clearVisibilityFallback:Cd,markNodeVisible:oc,cleanupNodeVisibility:Ib,destroyNodeVisibilityState:$v}=NXe({isClient:Pe,shouldTrackVisibleNodeIndices:()=>Cr.value,shouldCleanupNodeVisibility:()=>Ce.value,onNodeMarkedVisible:H=>{Ce.value?ic():Ja.value=Ar(H,0,Math.max(0,Ft.value.length-1))},onNodeVisibilityCleaned:H=>{vs.delete(H)&&$F()}}),{cleanupScrollListener:Ad,setupScrollListener:Tb}=BXe({isClient:Pe,virtualizationEnabled:Ce,listenerEnabled:Rv,scrollRootElement:Pa,resolveScrollContainer:$e,scheduleFocusSync:ic,onScroll:function(){const H=Vs.value;if(!H)return;const ue=Td();if(!ue||(function(we){if(Hm()>=Us)return ma=null,!1;const We=ma;if(We==null)return!0;const Ge=Math.abs(we.scrollTop-We)<=2;return Ge||(ma=null),Ge})(ue))return;const me=xf(ue);me!=null?(me<-32||Math.abs(Math.max(0,me)-Math.max(0,H.distanceFromBottomPx))>32)&&zt("restore"):zt("restore")},requestFrame:Kn,cancelFrame:ti,getScrollTop:H=>{var ue;const me=H.ownerDocument||((ue=z.value)==null?void 0:ue.ownerDocument)||document,we=H===me.documentElement||H===me.body||H===me.scrollingElement;return st("scrollListener.getScrollTop",()=>rt(H,me,we))}});function xd(H,ue=!1){const me=Ar(H,0,Math.max(0,Ft.value.length-1));!ue&&Math.abs(me-Ja.value)<=1||(Ja.value=me,Du())}function Ar(H,ue,me){return Math.min(Math.max(H,ue),me)}function Mh(H=Ft.value.length){const ue=$n();return!Number.isInteger(ue)||ue<0?H:Ar(ue,0,H)}function Eh(H){return H?.firstElementChild}function Mb(H,ue){var me;return H?(me=H.matches)!=null&&me.call(H,ue)?H:H.querySelector(ue):null}function CA(H,ue){H<1||H>6||(K[H]=ue)}function Eb(){if(!Tl.value||typeof ResizeObserver>"u")return void(ae.value=0);const H=st("updateMeasuredContainerWidth.clientWidth",()=>{var ue,me;return(me=(ue=z.value)==null?void 0:ue.clientWidth)!=null?me:0});ae.value=H>0?H:0}let $p=null;function Nu(){$p?.disconnect(),$p=null}const Op=R(()=>v.value?vy:u_);function Lb(){var H;return((H=F.codeBlockProps)==null?void 0:H.showHeader)!==!1}function AA(){var H;return((H=F.codeBlockProps)==null?void 0:H.showCopyButton)!==!1}function Rb(){var H,ue;const me=(H=F.codeBlockProps)==null?void 0:H.showLineNumbers;return typeof me=="boolean"?me:((ue=F.codeBlockOptions)==null?void 0:ue.disableLineNumbers)!==!0}function Pb(H,ue,me){var we;const We=ea[ue],Ge=typeof We=="number"&&We>0;if(es.value&&!Ge&&!(function(ut){return!!ct.value.paragraph&&(ut.type==="paragraph"||ut.type==="list_item"||ut.type==="list")})(H)){const ut=Fae(H,me,pe.value);if(ut)return ut}if(Ls.value&&!Ge&&H.type==="code_block"){const ut=(function(et){if(et.type!=="code_block")return null;const Tt=iD(et,Kb(et));return Tt===vy?"pre":Tt===Op.value||Tt===u_?"stream-diffs":null})(H);if(ut==="stream-diffs"||ut==="pre")return(function(et,Tt){if(!et||et.type!=="code_block")return null;const dt=Tt.rendererKind,Bt=dt!=="pre"&&Tt.showHeader!==!1,Ut=dt==="pre"&&Tt.showHeader!==!1,Dt=!!et.diff;let xt=0,_t=500;if(dt==="stream-diffs"){const Nt=vU(et,Tt.diffStyle),qt=18,hn=(function(Sn){return Sn?0:16})(Dt);_t=500,xt=Math.round(Nt*qt+hn)}else{const Nt=wE(Tt.codeBlockOptions),qt=(function(hn,Sn,Bn){var ci,zn;const Wn=vU(hn,Sn.diffStyle),Jn=Number(Sn.width);if(Bn.overflow!=="wrap"||!Number.isFinite(Jn)||Jn<=0)return Wn;const _i=Math.max(1,.6*Bn.fontSize),ss=!!hn.diff,rs=ss&&kE({diffStyle:Sn.diffStyle});if(!ss||rs){const as=(ss?gc(hn.raw)||[gc(hn.originalCode),gc(hn.updatedCode)].filter(Boolean).join(` +`):gc(hn.code,hn.loading===!0)).split(/\r\n|\n|\r/),jp=yU(Jn,_i,as.length,Bn,Sn,!1);return as.reduce((zh,dr)=>zh+m_(dr,jp,Bn.tabSize),0)}const va=gc(hn.originalCode).split(/\r\n|\n|\r/),Li=gc(hn.updatedCode).split(/\r\n|\n|\r/);if(hn.originalCode==null&&hn.updatedCode==null)return Wn;const Ho=Math.max(va.length,Li.length),ks=yU(Jn,_i,Ho,Bn,Sn,!0);let jo=0;for(let as=0;as{if(gd.value,Pu>0)return;const H=Ft.value,ue=Vn();if(!H.length||!Ga.value)return br=[],Zo=[],Xl=-1,ha.clear(),void(Yr.value=Jl);const me=ae.value||st("estimatedNodeHeights.clientWidth",()=>{var dt;return((dt=z.value)==null?void 0:dt.clientWidth)||0});if(!Number.isFinite(me)||me<=0)return br=[],Zo=[],Xl=-1,ha.clear(),void(Yr.value=Jl);const we=(function(dt){var Bt,Ut;const Dt=wE(F.codeBlockOptions);return[Math.round(dt),es.value,Ls.value,pe.value,Dt.fontSize,Dt.lineHeight,Dt.fontFamily,Dt.padding,Dt.paddingBottom,Dt.maxHeight,Dt.tabSize,Dt.overflow,(Ut=(Bt=F.codeBlockOptions)==null?void 0:Bt.diffStyle)!=null?Ut:"split",Rb(),Lb(),AA(),v.value,ct.value,Y5.value]})(me),We=br.length<=H.length&&(ut=we,(Ge=Zo).length===ut.length&&Ge.every((dt,Bt)=>Object.is(dt,ut[Bt])));var Ge,ut;const et=We&&Xl===ue?H.length:We?Mh(H.length):0,Tt=We?Array.from(ha):[];br.length=H.length;for(let dt=et;dt=0&&dtYr.value);jr=(function(H){let ue=!0,me=-1;const we=[0];let We="",Ge=-1;const ut=new WeakMap;function et(_t=0){ue=!0,_t<=0?me=0:(me<0||_t0)return Nt;const qt=H.parsedNodes.value[_t],hn=qt?.type,Sn=!!((At=H.hasCustomParagraphComponent)!=null&&At.call(H)),Bn=H.estimatedNodeHeights.value[_t],ci=Bn?.height;if(!(function(Wn,Jn,_i){return!!(_i&&Jn?.kind==="simple-text"&&(Wn==="paragraph"||Wn==="list_item"||Wn==="list"))})(hn,Bn,Sn)&&Number.isFinite(ci)&&ci>0)return ci;const zn=(function(Wn,Jn){var _i;if(!Wn||typeof Wn!="object"||((_i=H.shouldCacheStaticFallbackHeight)==null?void 0:_i.call(H))===!1)return AU(Wn,Jn);const ss=Wn,rs=ut.get(ss);if(rs&&rs.width===Jn)return rs.height;const va=AU(Wn,Jn);return ut.set(ss,{width:Jn,height:va}),va})(qt,H.getContainerWidth()||640);return hn==="heading"||hn==="paragraph"&&zn<=28&&(function(Wn,Jn){if(Jn)return!1;const _i=Wn.children;return!Array.isArray(_i)||!_i.length||_i.every(Bae)})(qt,Sn)?zn:Math.max(H.averageNodeHeight.value,zn)}function dt(){var _t;const At=H.parsedNodes.value.length,Nt=H.getPrefixCacheKeyParts().join(":"),qt=we;We!==Nt&&(We=Nt,et(0));const hn=H.averageNodeHeight.value;Ge!==hn&&(Ge=hn,et(0)),qt.length>At+1&&(qt.length=At+1,me>=0&&me>=qt.length-1&&(ue=!1));const Sn=qt.length-1;if(!ue){if(Sn===At)return qt;me=Sn}const Bn=Math.min(me,Sn);qt.length=((At=hn[qt])!=null?At:0))return qt-1;let Sn=0,Bn=qt-1,ci=qt-1;for(;Sn<=Bn;){const zn=Sn+Bn>>1;((Nt=hn[zn+1])!=null?Nt:0)>=_t?(ci=zn,Bn=zn-1):Sn=zn+1}return ci}function Ut(_t,At){var Nt,qt;if(_t>=At)return 0;if(H.heightEstimationActive.value)return(function(Bn,ci){var zn,Wn;const Jn=H.parsedNodes.value.length,_i=xU(Math.trunc(Bn),0,Jn),ss=xU(Math.trunc(ci),_i,Jn);if(_i>=ss)return 0;const rs=dt();return((zn=rs[ss])!=null?zn:0)-((Wn=rs[_i])!=null?Wn:0)})(_t,At);if(H.heightTreeSize.value!==H.parsedNodes.value.length){let Bn=0;for(let ci=_t;ci_i<=0?0:H.fenwickRangeSum(Sn,0,_i)+(_i-H.fenwickRangeSum(Bn,0,_i))*hn;let zn=0,Wn=Nt.length-1,Jn=Nt.length-1;for(;zn<=Wn;){const _i=zn+Wn>>1;ci(_i+1)>=_t?(Jn=_i,Wn=_i-1):zn=_i+1}return Jn}let qt=_t;for(let hn=0;hn0||_t++}return _t}return{markFallbackHeightPrefixDirty:et,getFallbackNodeHeight:Tt,estimateHeightRange:Ut,estimateIndexForOffset:Dt,estimateIndexForOffsetFromEnd:function(_t){var At,Nt;const qt=H.parsedNodes.value;if(!qt.length)return 0;if(_t<=0)return Math.max(0,qt.length-1);if(H.heightEstimationActive.value){const Sn=(At=dt()[qt.length])!=null?At:0;return Bt(Math.max(0,Sn-_t))}if(H.heightTreeSize.value===qt.length){const Sn=Ut(0,qt.length);return Dt(Math.max(0,Sn-_t))}let hn=_t;for(let Sn=qt.length-1;Sn>=0;Sn--){const Bn=(Nt=H.nodeHeights[Sn])!=null?Nt:H.averageNodeHeight.value;if(hn<=Bn)return Sn;hn-=Bn}return 0},getEstimatedNodeHeightCount:xt,buildVirtualHeightSummary:function(_t){var At;const Nt=H.parsedNodes.value.length;return{totalNodes:Nt,measuredCount:H.heightStats.count,estimatedCount:xt(),averageNodeHeight:H.averageNodeHeight.value,topSpacerHeight:_t.topSpacerHeight,bottomSpacerHeight:_t.bottomSpacerHeight,estimatedTotalHeight:Ut(0,Nt),width:(At=_t.width)!=null?At:H.getContainerWidth()}}}})({parsedNodes:Ft,nodeHeights:ea,heightStats:As,heightTreeSize:Ks,heightSumTree:Rs,heightKnownTree:Ou,averageNodeHeight:ec,heightEstimationActive:Dn,estimatedNodeHeights:Bu,getContainerWidth:ts,shouldCacheStaticFallbackHeight:()=>{var H;return!((H=i.nodes)!=null&&H.length)},hasCustomParagraphComponent:()=>!!ct.value.paragraph,getPrefixCacheKeyParts:()=>{var H;const ue=ky(ae.value||st("getFallbackHeightPrefix.clientWidth",()=>{var me;return((me=z.value)==null?void 0:me.clientWidth)||0}));return[((H=i.virtualScroll)==null?void 0:H.measurementKey)==null?"":String(i.virtualScroll.measurementKey),ue,Dn.value?1:0,Y5.value,ct.value.paragraph?1:0]},fenwickRangeSum:Rn}),Y=!0,Fe(()=>Ft.value.length,(H,ue)=>{var me;Wr(ue!=null&&H>=ue?Mh(H):0),H<=0?yo():(HIl(me))),bd(H))},{immediate:!0});const $b=R(()=>{if(!Ce.value)return Ft.value.map((we,We)=>({node:we,index:We}));const H=Ft.value.length,ue=Ar(Oo.start,0,H),me=Ar(Oo.end,ue,H);return Ft.value.slice(ue,me).map((we,We)=>({node:we,index:ue+We}))}),Fp=R(()=>Ce.value?$a(0,Math.min(Oo.start,Ft.value.length)):0),Lh=R(()=>{if(!Ce.value)return 0;const H=Ft.value.length;return $a(Math.min(Oo.end,H),H)});function Ob(){return jr.buildVirtualHeightSummary({topSpacerHeight:Fp.value,bottomSpacerHeight:Lh.value,width:_d()})}function Sd(){const H=Ft.value,ue=Ob();return Ji(wn({},ue),{probe:{paragraphReady:!!pe.value.paragraph,listItemReady:!!pe.value.listItem,listWrapperOverhead:pe.value.listWrapperOverhead,headingReadyLevels:Object.entries(pe.value.headings).filter(([,me])=>!!me).map(([me])=>Number(me))},nodes:H.map((me,we)=>{var We,Ge,ut,et,Tt,dt,Bt,Ut,Dt;return{index:we,type:me.type,estimateKind:(Ge=(We=Bu.value[we])==null?void 0:We.kind)!=null?Ge:null,rendererKind:(et=(ut=Bu.value[we])==null?void 0:ut.rendererKind)!=null?et:null,estimatedHeight:(dt=(Tt=Bu.value[we])==null?void 0:Tt.height)!=null?dt:null,estimatedContentHeight:(Ut=(Bt=Bu.value[we])==null?void 0:Bt.contentHeight)!=null?Ut:null,measuredHeight:(Dt=ea[we])!=null?Dt:null}})})}function bs(){return i.indexKey!=null?String(i.indexKey):Oi.value?`virtual-${Yi()}`:"markdown-renderer"}function kf(H){const ue=String(H),me=`${bs()}-`;if(!ue.startsWith(me))return null;const we=ue.slice(me.length).match(/^(\d+)(?:$|-)/);if(!we)return null;const We=Number(we[1]);return!Number.isInteger(We)||We<0||We>=Ft.value.length?null:We}function Yi(){var H,ue,me;const we=(H=i.virtualScroll)==null?void 0:H.sessionKey;return String(we!=null&&we!==""?we:(me=(ue=i.indexKey)!=null?ue:F.customId)!=null?me:Rt)}function ns(){var H;const ue=(H=i.virtualScroll)==null?void 0:H.threadKey;return ue==null||ue===""?void 0:String(ue)}const Ov=R(()=>{var H,ue,me;return(me=ns())!=null?me:String((ue=(H=i.indexKey)!=null?H:F.customId)!=null?ue:Rt)});function Fm(H){var ue;return(H??"")===((ue=ns())!=null?ue:"")}function Vc(){var H,ue,me;return ue=(H=i.virtualScroll)==null?void 0:H.measurementKey,me=(function(we){const We=we.codeBlockProps,Ge=we.codeBlockOptions,ut=Ge?.parseDiffOptions;return[we.isDark?"dark":"light",we.renderCodeBlocksAsPre?"code-pre":"code-rich",we.codeBlockStream===!1?"code-static":"code-stream",ls(we.codeBlockMinWidth),ls(we.codeBlockMaxWidth),ls(Ge?.fontSize),ls(Ge?.lineHeight),ls(Ge?.fontFamily),ls(Ge?.maxHeight),ls(Ge?.tabSize),ls(Ge?.padding),ls(Ge?.overflow),ls(Ge?.disableLineNumbers),ls(Ge?.diffStyle),ls(Ge?.diffIndicators),ls(Ge?.hunkSeparators),ls(Ge?.expandUnchanged),ls(Ge?.collapsedContextThreshold),ls(Ge?.expansionLineCount),ls(ut?.context),ls(We?.showHeader),ls(We?.showCopyButton),ls(We?.showExpandButton),ls(We?.showPreviewButton),ls(We?.showCollapseButton),ls(We?.showFontSizeButtons),ls(We?.showLineNumbers)].join("\0")})({renderCodeBlocksAsPre:v.value,isDark:F.isDark,codeBlockStream:F.codeBlockStream,codeBlockMinWidth:F.codeBlockMinWidth,codeBlockMaxWidth:F.codeBlockMaxWidth,codeBlockOptions:F.codeBlockOptions,codeBlockProps:F.codeBlockProps}),[ue==null?"":String(ue),me].join("\0")}function _d(){return ts()}const Rh=R(()=>ky(_d())),tl=R(()=>[Vc(),Rh.value].join("\0")),xA=R(()=>{var H;return Oi.value?["virtual",(H=ns())!=null?H:"",Yi(),tl.value].join("\0"):i.indexKey});function wf(){$m.value+=1}function Dm(H){return!(!H||!Number.isInteger(H.index)||H.index<0||H.index>=Ft.value.length||H.sessionKey!==Yi()||H.threadKey!==ns()||H.layoutEpochKey!==tl.value)}function Fb(H){const ue=String(H),me=El.get(ue);return me?Dm(me)?me.index:null:kf(ue)}function sc(H="async-node"){(ta.size||El.size)&&(Se=0,ta.clear(),El.clear(),wf(),is(H))}const zu=Zt(cE,null),Fv={reportHeight(H,ue){if(!wi.value)return;const me=Fb(H);if(me==null)return;const we=Zs.get(me);if(!we)return;const We=Number(ue),Ge=Ya(me,we);(function(ut,et,Tt={}){Fn(()=>ur(ut,et,Tt))})(me,Number.isFinite(We)&&We>0?Math.max(We,Ge||0):Ge)},markPending(H){if(!wi.value)return;const ue=kf(H);ue!=null&&(function(me,we){var We;const Ge=El.get(me);if(Ge&&Dm(Ge))return ta.set(me,Math.max(0,(We=ta.get(me))!=null?We:0)+1),Se+=1,wf(),void is("async-node");ta.set(me,1),Se+=1,El.set(me,(function(ut){return{index:ut,sessionKey:Yi(),threadKey:ns(),layoutEpochKey:tl.value}})(we)),wf(),is("async-node")})(String(H),ue)},markSettled(H){if(!wi.value)return;const ue=String(H),me=Fb(H);if((me!=null||(function(we){return ta.has(String(we))})(ue))&&(function(we){var We;const Ge=(We=ta.get(we))!=null?We:0;return!(Ge<=0||(Ge<=1?(ta.delete(we),El.delete(we)):ta.set(we,Ge-1),Se=Math.max(0,Se-1),wf(),Ge===1&&is("async-node"),0))})(ue)&&me!=null){const we=Zs.get(me);we&&qb(me,we)}}};function Db(H){if(H!==void 0)return H;let ue=0;for(const me of Zs.values())ue+=st("getVisibleDomHeight.offsetHeight",()=>me.offsetHeight);return ue}fi(cE,{reportHeight(H,ue){Fv.reportHeight(H,ue),zu?.reportHeight(H,ue)},markPending(H){Fv.markPending(H),zu?.markPending(H)},markSettled(H){Fv.markSettled(H),zu?.markSettled(H)}});let Id,Cf=null,Ph=null;function Dp(H){return H!==!1&&H!=null&&H!==""}function Nb(){return Ce.value?(function(){if(!Ce.value)return!0;const H=Ft.value.length,ue=Ar(Oo.start,0,H),me=Ar(Oo.end,ue,H);if(ue>=me)return!0;for(let we=ue;we=on.value}function Dv(){return sn.value===!0&&!Oe.value&&nt.value===0&&nc.size===0&&Xa.size===0&&Mt==null&&Nb()}function Nm(){var H,ue;if(((H=i.virtualScroll)==null?void 0:H.settleMode)!=="manual"||Cf===Yi()&&Id===ns())return!0;const me=(ue=i.virtualScroll)==null?void 0:ue.settledToken;return!!Dp(me)&&Ph===Qv(me)}function Af(){return Dv()&&Nm()}function Nv(H,ue){return ue.totalNodes<=0?H==="final"?"final":"estimate":ue.measuredCount>=ue.totalNodes?H==="final"?"final":"measured":ue.measuredCount>0||ue.estimatedCount>0?"mixed":"estimate"}function Hu(H="manual",ue,me){const we=Ob(),We=(function(Ge){return Ge||(sn.value!==!0?Ft.value.length>0?"streaming":"estimating":!Nb()||Xa.size>0||Mt!=null?"measuring":Af()?"settled":"settling")})(ue);return{sessionKey:Yi(),threadKey:ns(),phase:We,nodeCount:we.totalNodes,liveRange:{start:Oo.start,end:Oo.end},renderedCount:lt.value,measuredCount:we.measuredCount,estimatedCount:we.estimatedCount,averageNodeHeight:we.averageNodeHeight,topSpacerHeight:we.topSpacerHeight,bottomSpacerHeight:we.bottomSpacerHeight,visibleDomHeight:Db(me),totalHeight:Bb(we),width:we.width,final:sn.value===!0,stable:Af(),confidence:Nv(We,we),reason:H}}function Td(){const H=Pa.value||$e(),ue=z.value;if(!H||!ue)return null;const me=H.ownerDocument||ue.ownerDocument||document,we=H===me.documentElement||H===me.body||H===me.scrollingElement,We=st("getScrollBox.scrollTop",()=>rt(H,me,we)),Ge=st("getScrollBox.scrollHeight",()=>{var et,Tt,dt,Bt,Ut;return we?Math.max((Tt=(et=me.documentElement)==null?void 0:et.scrollHeight)!=null?Tt:0,(Bt=(dt=me.body)==null?void 0:dt.scrollHeight)!=null?Bt:0,(Ut=H.scrollHeight)!=null?Ut:0):H.scrollHeight}),ut=st("getScrollBox.clientHeight",()=>{var et;return we?((et=me.documentElement)==null?void 0:et.clientHeight)||H.clientHeight||0:H.clientHeight});return{root:H,doc:me,isViewportRoot:we,scrollTop:We,scrollHeight:Ge,clientHeight:ut}}function Bb(H){var ue;const me=Ft.value.length,we=Math.max(0,$a(0,me)),We=st("getRendererLogicalHeight.offsetHeight",()=>{var ut,et;return(et=(ut=z.value)==null?void 0:ut.offsetHeight)!=null?et:0}),Ge=Math.max(0,We>0?We:st("getRendererLogicalHeight.scrollHeight",()=>{var ut,et;return(et=(ut=z.value)==null?void 0:ut.scrollHeight)!=null?et:0}));return me<=0?Math.ceil(We):Ce.value?we>0?Math.max(1,Math.ceil(we),(function(){let ut=Fp.value+Lh.value;for(const et of vs.values())et&&(ut+=Math.max(0,st("getVirtualizedDomLogicalHeight.offsetHeight",()=>et.offsetHeight||0)));return Math.ceil(Math.max(0,ut))})(),(function(ut,et){return ut<=0||et<=0?0:et<=ut+Math.max(512,.05*ut)?Math.ceil(et):0})(we,Ge)):Math.max(1,Math.ceil(Ge)):wi.value?we>0||As.count>0||((ue=H?.estimatedCount)!=null?ue:jr.getEstimatedNodeHeightCount())>0?(Ne.value&<.value,Math.max(1,Math.ceil(Ge),Math.ceil(we))):Math.ceil(Ge):Math.max(1,Math.ceil(Ge),Math.ceil(we))}function xf(H){const ue=z.value;if(!ue)return null;const me=st("getRendererBottomDistanceFromViewport.getBoundingClientRect",()=>ue.getBoundingClientRect());return(function(We){return We.isViewportRoot?We.clientHeight:st("getViewportBottomInRoot.getBoundingClientRect",()=>We.root.getBoundingClientRect().bottom)})(H)-me.bottom}function SA(H={}){const ue=H.requireViewport!==!1,me=(function(Ge=64){const ut=Td(),et=z.value;if(!ut||!et)return!1;const Tt=(function(Bt){if(Bt.isViewportRoot)return{top:0,bottom:Bt.clientHeight};const Ut=st("getVirtualViewportRect.getBoundingClientRect",()=>Bt.root.getBoundingClientRect());return{top:Ut.top,bottom:Ut.bottom}})(ut),dt=st("isRendererNearVirtualViewport.getBoundingClientRect",()=>et.getBoundingClientRect());return dt.bottom>=Tt.top-Ge&&dt.top<=Tt.bottom+Ge})();if(ue&&!me)return null;const we=(function(){const Ge=Td(),ut=z.value;if(!Ge||!ut||Math.max(0,Ge.scrollHeight-Ge.scrollTop-Ge.clientHeight)>64)return null;const et=xf(Ge);return et==null?null:et>=-8&&et<=160?{type:"bottom",distanceFromBottomPx:Math.max(0,et)}:null})();if(we)return{anchor:we,captured:!0};const We=kr();if(We)return{anchor:{type:"node",nodeIndex:We.nodeIndex,offsetWithinNodePx:We.offsetWithinNodePx},captured:me};if(H.allowFallback===!0){const Ge=(function(){const ut=Ft.value.length;return ut<=0?null:{type:"node",nodeIndex:Ar(Ja.value,0,Math.max(0,ut-1)),offsetWithinNodePx:0}})();return Ge?{anchor:Ge,captured:!1}:null}return null}function Np(H){let ue=2166136261;for(let me=0;me>>0).toString(36)}function _A(H,ue){let me=H;for(let we=0;we8192?`${we.slice(0,8192)}...${we.length}`:we;return`${we.length}:${Np(We)}`})(H)}`;if(typeof H=="function")return"fn";if(typeof H!="object")return typeof H;if(ue.has(H))return"cycle";if(me>=6)return"max-depth";ue.add(H);try{if(Array.isArray(H)){if(H.length<=160){const dt=[];for(let Bt=0;Bt=et&&ut.push(Bt)}return[`a:${H.length}`,`h=${Ge.join(",")}`,`t=${ut.join(",")}`,`all=${(Tt>>>0).toString(36)}`].join(":")}const we=H,We=Object.keys(we).filter(Ge=>{const ut=we[Ge];return Ge!=="parent"&&Ge!=="el"&&Ge!=="component"&&(ut==null||typeof ut=="string"||typeof ut=="number"||typeof ut=="boolean"||Bm.has(Ge))}).sort();return`o:${We.length}:${We.map(Ge=>`${Ge}=${$h(we[Ge],ue,me+1)}`).join(";")}`}finally{ue.delete(H)}}let Bv=-1;const zv=new Map;let rc=-1,Oh="",ju=[2166136261];function Fh(H){var ue;const me=Ft.value[H],we=Vn();if(Bv!==we&&(Bv=we,zv.clear()),!me)return"";if((ue=i.nodes)!=null&&ue.length||F.parseOptions||F.customMarkdownIt||en.value.__markstreamHasCustomParserExtensions||Object.keys(ct.value).length!==0)return Np($h(me));const We=zv.get(H);if(We!==void 0)return We;const Ge=Np($h(me));return zv.set(H,Ge),Ge}function IA(H,ue){let me=H;for(let we=0;we>>0}function ac(){var H,ue;const me=q.value;if(rc===me)return Oh;const we=Ft.value.length;let We=Mh(we);(rc!==me-1||We>we||ju.length>>0).toString(36),rc=me,Oh}function re(H,ue={}){var me;const we=ue.includeHeightCache===!0,We=(me=ue.includeContentHash)!=null?me:we,Ge=we?(function(et){const Tt=(function(){var At,Nt;const qt=Number((Nt=(At=i.virtualScroll)==null?void 0:At.heightCacheLimit)!=null?Nt:5e3);return!Number.isFinite(qt)||qt<=0?Number.POSITIVE_INFINITY:Math.max(1,Math.trunc(qt))})();if(!Number.isFinite(Tt)||et.length<=Tt)return et;const dt=new Map,Bt=At=>{!At||dt.size>=Tt||dt.set(At.index,At)},Ut=Ft.value.length,Dt=Ar(Oo.start-2*Ae.value,0,Ut),xt=Ar(Oo.end+2*Ae.value,Dt,Ut);for(const At of et)At.index>=Dt&&At.index=0&&dt.sizeAt.index-Nt.index).slice(0,Tt)})(ze().map(et=>{var Tt;const dt=Ft.value[et.index];return dt?Ji(wn({},et),{nodeType:String((Tt=dt.type)!=null?Tt:""),signature:Fh(et.index)}):null}).filter(et=>!!et)):[],ut=SA({allowFallback:ue.allowAnchorFallback===!0,requireViewport:ue.requireViewport});return ut||Ge.length||ue.includeEmptyState===!0?Ji(wn({sessionKey:H.sessionKey,threadKey:H.threadKey},ut?{anchor:ut.anchor,anchorCaptured:ut.captured}:{anchorCaptured:!1}),{metrics:H,width:H.width,contentHash:We?ac():void 0,measurementKey:Vc()||void 0,heightCache:Ge.length?Ge:void 0}):null}function qe(H){var ue,me;const we=Td();if(!we)return;const We=(function(et){const Tt=z.value;if(!Tt)return null;const dt=Pt(Tt,et.root),Bt=Ft.value.length,Ut=st("getRendererBottomOffsetWithinRoot.offsetHeight",()=>Tt.offsetHeight||0),Dt=Math.max(0,Ut>0?Ut:Bt>0?st("getRendererBottomOffsetWithinRoot.scrollHeight",()=>Tt.scrollHeight||0):0),xt=Bb();return dt+Math.max(Dt,xt)})(we);if(We==null)return;const Ge=Math.max(0,H.distanceFromBottomPx),ut=Math.max(0,We-we.clientHeight-Ge);(function(et){Us=Hm()+120,ma=et})(ut),we.isViewportRoot?(me=(ue=we.doc.defaultView)==null?void 0:ue.scrollTo)==null||me.call(ue,0,ut):kU(we.root,we.doc,ut,{isReverseFlexScrollRoot:Ye,getNormalizedScrollTop:rt})}const Ue=[];function mt(){if(Pe)for(pa!=null&&(ti?.(pa),pa=null);Ue.length;){const H=Ue.pop();H!=null&&window.clearTimeout(H)}}function zt(H){const ue=!!Vs.value;Vs.value=null,Us=0,ma=null,mt(),ue&&H&&is(H)}function dn(){if(!Vs.value||!Pe||pa!=null)return;const H=()=>{pa=null;const ue=Vs.value;ue&&qe(ue)};pa=Kn?Kn(H):null,pa==null&&H()}function vn(H,ue={}){const me=Ft.value.length;return me<=0?[]:H.filter(we=>!(!Number.isInteger(we.index)||we.index<0||we.index>=me)&&!(!Number.isFinite(we.height)||we.height<=0)&&!(ue.requireSignature&&!we.signature)&&!(ue.requireCompatibilityMetadata&&!we.nodeType&&!we.signature)&&(function(We){var Ge;const ut=Ft.value[We.index];return!(!ut||We.nodeType&&We.nodeType!==String((Ge=ut.type)!=null?Ge:"")||We.signature&&We.signature!==Fh(We.index))})(we))}function _n(H){const ue=ky(_d()),me=ky(H);return ue!==-1&&me!==-1&&ue===me}function mn(H){var ue;const me=Number(H?.width);if(Number.isFinite(me)&&me>0)return me;const we=Number((ue=H?.metrics)==null?void 0:ue.width);return Number.isFinite(we)&&we>0?we:null}function li(H){var ue;return H.sessionKey===Yi()&&!!Fm(H.threadKey)&&((ue=H.measurementKey)!=null?ue:"")===Vc()&&!!_n(mn(H))&&!!(function(me){const we=me.heightCache;return!!we?.length&&(vi(me)?we.some(We=>!!(We.nodeType||We.signature)):we.some(We=>!!We.signature))})(H)}function vi(H){return!!(H.contentHash&&H.contentHash===ac())}function uo(H){return!vi(H)}let Di=null,bo=null,qr=null,na=null,Gs=null;function Oa(H){var ue;const me=H.map(We=>{var Ge,ut;return[We.index,Math.round(10*We.height),(Ge=We.nodeType)!=null?Ge:"",(ut=We.signature)!=null?ut:""].join("")}).join(""),we=ky(_d());return[(ue=ns())!=null?ue:"",Yi(),Vc(),Ft.value.length,we,H.length,Np(me)].join(":")}function Hv(H=(ue=>(ue=i.virtualScroll)==null?void 0:ue.heightCache)()){if(!wi.value||!H?.length||Ft.value.length<=0||!_n((ue=i.virtualScroll)==null?void 0:ue.heightCacheWidth))return!1;var ue;const me=vn(H,{requireSignature:!0});if(!me.length)return!1;const we=Oa(me);return we===Di?(bo="standalone",!0):(Sh(me,{mode:"merge"}),Wr(),Di=we,bo="standalone",Vv(),is("restore"),!0)}function zb(){var H;const ue=(H=i.virtualScroll)==null?void 0:H.restoreAnchor;return ue==null||ue===!1?null:ue===!0?"true":String(ue)}function TA(H,ue={}){var me,we,We;if(!wi.value||!H||H.sessionKey!==Yi()||!Fm(H.threadKey)||Ft.value.length<=0)return!1;const Ge=!!((me=H.heightCache)!=null&&me.length)&&!Hb(),ut=!H.anchor||H.anchorCaptured===!1&&ue.allowUncapturedAnchor!==!0?null:H.anchor,et=ue.restoreAnchor===!0&&!!ut&&!Hb()&&Number(mn(H))>0;let Tt=!1;if((we=H.heightCache)!=null&&we.length&&li(H)){const Bt=vn(H.heightCache,{requireCompatibilityMetadata:!H.contentHash,requireSignature:uo(H)});Bt.length&&(Sh(Bt,{mode:"merge"}),Wr(),Di=Oa(Bt),bo="restore",Vv(),Tt=!0)}if(Ge||et)return!1;if(!ue.restoreAnchor||!ut)return Tt&&is("restore"),!0;const dt=(function(Bt,Ut){var Dt;const xt=Bt.anchor,_t=xt?xt.type==="bottom"?`bottom:${Math.round(xt.distanceFromBottomPx)}`:`node:${xt.nodeIndex}:${Math.round(xt.offsetWithinNodePx)}`:"none";return[(Dt=ns())!=null?Dt:"",Yi(),Vc(),Rh.value,Ut,_t].join(":")})(H,(We=ue.restoreToken)!=null?We:"imperative");return qr===dt?(Tt&&is("restore"),!0):(qr=dt,(function(Bt){const Ut=()=>{if(Bt.type==="node")return zt(),void wr({nodeIndex:Bt.nodeIndex,offsetWithinNodePx:Bt.offsetWithinNodePx});if(cr(),Xr.value=null,Vs.value=Bt,mt(),qe(Bt),Pe)for(const Dt of[0,120,280,480])Ue.push(window.setTimeout(()=>{const xt=Vs.value;xt&&qe(xt)},Dt))};(function(Dt){if(!Ce.value)return!1;const xt=Ft.value.length;return!(xt<=0||(Ja.value=Dt.type==="node"?Ar(Dt.nodeIndex,0,xt-1):xt-1,Du(),0))})(Bt)?bt(Ut):Ut()})(ut),is("restore"),!0)}function Hb(){const H=_d();return Number.isFinite(H)&&H>0}function TF(H){var ue;return H.sessionKey===Yi()&&!!Fm(H.threadKey)&&(Ft.value.length<=0||!(!((ue=H.heightCache)!=null&&ue.length)||Hb())||!(!(H.anchor&&Number(mn(H))>0)||Hb()))}function MA(){eo.length=0;for(const H of Object.keys(ea)){const ue=Number(H);Number.isInteger(ue)&&ue>=0&&ue{let ue=!1,me=null;const we=()=>{ue||(ue=!0,me!=null&&window.clearTimeout(me),H())};if(Kn)return Kn(we),void(me=window.setTimeout(we,50));me=window.setTimeout(we,0)})}function EA(H,ue=ns(),me=tl.value){return Yi()===H&&ns()===ue&&tl.value===me}function LA(){return us(this,arguments,function*(H={}){var ue,me,we,We,Ge;const ut=Yi(),et=ns(),Tt=tl.value,dt=(ue=H.frames)!=null?ue:2,Bt=(me=H.timeoutMs)!=null?me:120,Ut=(we=H.reason)!=null?we:"manual",Dt=H.expectedSettledTokenKey,xt=H.flushPendingTimers===!0,_t=Hu(Ut),At=()=>Ji(wn({},_t),{phase:_t.final?"settling":_t.phase,stable:!1,confidence:_t.confidence==="final"?"mixed":_t.confidence,reason:Ut}),Nt=()=>EA(ut,et,Tt)&&(Dt==null||qv()===Dt);for(let Bn=0;Bnwindow.setTimeout(ci,Bn))})(Bt),!Nt()||(xt&&zo(),Dh(),jv(),!Nt()))return At();const qt=Dv();qt&&(Cf=ut,Id=et,((We=i.virtualScroll)==null?void 0:We.settleMode)==="manual"&&Dt!=null&&Dp((Ge=i.virtualScroll)==null?void 0:Ge.settledToken)&&qv()===Dt&&(Ph=Qv(i.virtualScroll.settledToken)));const hn=Nt()&&qt&&Nm(),Sn=Hu(Ut,hn?"final":void 0);return OA(Sn,!0),Sn})}let EF="content",Bp=null,zp=null,RA=0,Wv=null,zm=null,PA=null,$A=null;function Hm(){return typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now()}function LF(H){var ue,me;const we=Wv;if(!we)return!0;const We=(me=(ue=i.virtualScroll)==null?void 0:ue.heightDiffThresholdPx)!=null?me:1;return Math.abs(H.totalHeight-we.totalHeight)>We||H.sessionKey!==we.sessionKey||H.phase!==we.phase||H.stable!==we.stable||H.final!==we.final||H.threadKey!==we.threadKey||H.nodeCount!==we.nodeCount||H.measuredCount!==we.measuredCount||H.width!==we.width}function qv(H=(ue=>(ue=i.virtualScroll)==null?void 0:ue.settledToken)()){return ls(H)}function RF(H,ue){var me,we;return[H,ue.sessionKey,(me=ue.threadKey)!=null?me:"",Vc(),ac(),ls((we=i.virtualScroll)==null?void 0:we.settledToken),Math.round(ue.totalHeight),Math.round(ue.width)].join("\0")}function Vv(){PA=null,$A=null,zm=null}function Vfe(H){const ue=H.heightCache;return ue?.length?Oa(ue):""}function Uv(H){var ue,me,we;const We=H.metrics,Ge=H.anchor?(ut=H.anchor).type==="bottom"?`bottom:${Math.round(ut.distanceFromBottomPx)}`:`node:${ut.nodeIndex}:${Math.round(ut.offsetWithinNodePx)}`:"none";var ut;return[H.sessionKey,(ue=H.threadKey)!=null?ue:"",(me=H.measurementKey)!=null?me:Vc(),(we=H.contentHash)!=null?we:"",Vfe(H),Ge,H.anchorCaptured?1:0,We.liveRange.start,We.liveRange.end,We.renderedCount,We.nodeCount,Math.round(We.totalHeight),Math.round(We.width),We.phase,We.stable?1:0].join("\0")}function OA(H,ue=!1){if(!wi.value||(function(ut=!1){return!ut&&Oi.value&&!go.value})(ue))return;const me=ue||LF(H),we=(function(ut,et=!1){return et||ut.stable||ut.phase==="final"?{state:re(ut,{includeHeightCache:!0})}:{state:re(ut)}})(H,ue),We=we.state,Ge=!!(We&&(me||(function(ut,et=!1){return!!et||Uv(ut)!==zm})(We,ue)));if(me&&(B(H),Wv=H,RA=Hm()),We&&Ge&&(W(We),We.anchor&&D(We.anchor),zm=Uv(We)),H.stable){const ut=RF("settled",H);if(ut!==PA){PA=ut;const et=re(H,{includeHeightCache:!0});et&&(W(et),zm=Uv(et)),(function(Tt){o("render-settled",Tt)})(H)}}if(H.phase==="final"){const ut=RF("final",H);if(ut!==$A){$A=ut;const et=re(H,{includeHeightCache:!0});et&&(W(et),zm=Uv(et)),(function(Tt){o("render-final",Tt)})(H)}}}function FA(){Bp!=null&&(ti?.(Bp),Bp=null),zp!=null&&Pe&&(window.clearTimeout(zp),zp=null)}function PF(){Bp=null,zp=null;const H=Hm();let ue;H-_h>=120&&(_h=H,ue=Dh()),(Xa.size>8||Mt==null)&&jv(),OA(Hu(EF,void 0,ue))}function is(H){var ue,me;if(!wi.value||(EF=H,Bp!=null||zp!=null))return;const we=Math.max(0,(me=(ue=i.virtualScroll)==null?void 0:ue.emitIntervalMs)!=null?me:32),We=Math.max(0,we-(Hm()-RA)),Ge=()=>{zp=null,Bp=Kn?Kn(PF):null,Bp==null&&PF()};Pe&&We>0?zp=window.setTimeout(Ge,We):Ge()}function $F(){Qa.value+=1}function jb(H){var ue;if(Ne.value&&H>=lt.value){const me=Ft.value[H],we=Kt.value===!0&&sn.value!==!0&&H>=Ft.value.length-2,We=me?.type==="code_block"||me?.type==="image"||me?.type==="mermaid"||me?.type==="infographic";if(!we||We)return!1}return!Cr.value||H=Ft.value.length-Ae.value)||Th.value.has(H)}function jm(H){const ue=Pp.get(H);ue&&(ue(),Pp.delete(H));const me=bf.get(H);me&&(me.destroy(),bf.delete(H)),Cd(H)}function Wb(H,ue){let me=!1;if(ue){const Ge=vs.get(H);if(Ge===ue&&Hr.get(H)===kd.value)return;vs.set(H,ue),Ge!==ue&&(me=!0)}else vs.delete(H)&&(me=!0);if(me&&$F(),ue||Cd(H),!Ep.value||!On)return jm(H),ue?Hr.set(H,kd.value):Hr.delete(H),void(ue&&Cr.value&&oc(H,!0));if(!Ce.value&&Cr.value&&!te.value&&bf.size>=ee.value&&(te.value||(te.value=!0,$v()),!Ep.value||!On))return jm(H),Hr.set(H,kd.value),void(ue&&oc(H,!0));if(H{if(Om.delete(Ge),!Cr.value||Th.value.has(Ge))return;const Tt=vs.get(Ge);if(!Tt)return;const dt=$e(Tt),Bt=Tt.ownerDocument||document,Ut=Bt.defaultView||window,Dt=!dt||dt===Bt.documentElement||dt===Bt.body,xt=!Dt&&dt?st("nodeVisibilityFallback.root.getBoundingClientRect",()=>dt.getBoundingClientRect()):null,_t=Dt?0:xt.top,At=Dt?st("nodeVisibilityFallback.clientHeight",()=>{var qt,hn;return(hn=(qt=Ut.innerHeight)!=null?qt:dt?.clientHeight)!=null?hn:0}):xt.bottom,Nt=st("nodeVisibilityFallback.node.getBoundingClientRect",()=>Tt.getBoundingClientRect());Nt.bottom>=_t-500&&Nt.top<=At+500&&oc(Ge,!0)},1800+ut);Om.set(Ge,et)})(H);let We=null;We=Fe(()=>we.isVisible.value,Ge=>{if(Ge){Cd(H),oc(H,!0),We?.(),Pp.delete(H),bf.get(H)===we&&bf.delete(H);try{we.destroy()}catch{}}},{immediate:!0}),Pp.set(H,We),Ce.value&&ic()}function DA(){Mt=null,Fn(()=>{let H=!1;for(const[ue,me]of Xa)Xa.delete(ue),Zs.get(ue)===me.el&&tc.get(ue)===me.version&&(H=ur(ue,me.height,{allowShrink:me.allowShrink})||H);return H})}function Wm(){Mt!=null&&(ti?.(Mt),Mt=null),Xa.clear()}function OF(H,ue,me){var we;if(!Number.isFinite(me)||me<=0||Zs.get(H)!==ue)return;const We=tc.get(H);if(We==null)return;const Ge=Ft.value[H],ut=Oe.value&&sn.value!==!0&&!((we=i.nodes)!=null&&we.length)&&H>=Ft.value.length-2,et=!(Ge?.loading===!0||ut),Tt=Xa.get(H),dt=Tt?Tt.allowShrink&&et:et,Bt=Tt&&!dt?Math.max(Tt.height,me):me;Xa.set(H,{height:Bt,allowShrink:dt,version:We,el:ue}),Mt==null&&(Mt=Kn?Kn(DA):null,Mt==null&&DA())}function qb(H,ue){OF(H,ue,Ya(H,ue))}function Dh(){let H=0;for(const[ue,me]of Zs){const we=Ya(ue,me);H+=we,OF(ue,me,we)}return H}function FF(){Si?.disconnect(),Si=null,Ru.clear()}function NA(){for(;wd.length;)Ei(wd.pop())}Fe(go,H=>{H&&is("content")},{flush:"post"}),t({getVirtualMetrics:Hu,captureVirtualState:function(H={}){var ue;return re(Hu("manual"),{includeHeightCache:!0,includeContentHash:!0,allowAnchorFallback:H.allowFallbackAnchor===!0,requireViewport:H.requireViewport===!0,includeEmptyState:(ue=H.includeEmptyState)==null||ue})},restoreVirtualState:function(H,ue={}){const me=ue.restoreAnchor===!0,we=ue.restoreToken==null?"imperative":String(ue.restoreToken);na=H,Gs={restoreAnchor:me,restoreToken:we,allowUncapturedAnchor:ue.allowUncapturedAnchor===!0},!TA(H,{restoreAnchor:me,restoreToken:we,allowUncapturedAnchor:ue.allowUncapturedAnchor===!0})&&TF(H)||(na=null,Gs=null)},forceMeasure:function(H="manual"){return us(this,null,function*(){yield bt(),yield MF(),Dh(),jv(),yield bt();const ue=Hu(H);return OA(ue,!0),ue})},settle:LA,scrollToNode:function(H,ue="start"){zt(),cr();const me=Ft.value.length;if(me<=0)return;const we=Ar(H,0,me-1),We=()=>{var Ge;const ut=Mp({nodeIndex:we,offsetWithinNodePx:0}),et=Jr(we),Tt=Td(),dt=(Ge=Tt?.clientHeight)!=null?Ge:0,Bt=vd();let Ut=ut;if(ue==="center")Ut=ut-dt/2+et/2;else if(ue==="end")Ut=ut-dt+et;else if(ue==="nearest"&&Bt!=null){if(ut>=Bt&&ut+et<=Bt+dt)return;Ut=utJe.value,H=>{if(H)ys.clear();else{FF();for(const ue of Ml.values())for(const me of ue)Ei(me);Ml.clear(),tc.clear(),NA(),Wm()}},{immediate:!0}),Fe(sn,H=>{H&&(function(){if(Pe&&sn.value&&Zs.size){NA();for(const ue of Si?[80]:[80,240,640]){const me=ii(ue,()=>{for(const[we,We]of Zs)We&&qb(we,We)},"final");me!=null&&wd.push(me)}}})(),is(H?"final":"content")});const Ufe=wU(()=>is("content"),16),Kfe=wU(()=>is("batch"),16);Fe([()=>Ft.value.length,()=>lt.value],()=>{Vs.value&&dn(),Ufe()},{flush:"post",immediate:!0}),Fe([()=>Oo.start,()=>Oo.end],()=>{Kfe()},{flush:"post"});const{cleanupBatchScheduler:Zfe}=(function(H){const{props:ue,isClient:me,isTestEnv:we,parsedNodesIdentity:We,parsedNodeCount:Ge,desiredRenderedCount:ut,datasetKey:et,batchingEnabled:Tt,incrementalRenderingActive:dt,resolvedBatchSize:Bt,resolvedInitialBatch:Ut,renderedCount:Dt,adaptiveBatchSize:xt,previousRenderContext:_t,previousBatchConfig:At,requestFrame:Nt,cancelFrame:qt,hasIdleCallback:hn,cleanupNodeVisibility:Sn,onDatasetKeyChanged:Bn,onDatasetChanged:ci}=H;let zn=null,Wn="raf",Jn=null,_i=0,ss=!1,rs=!1;const va=new Set,Li=new Set;function Ho(){if(me){zn!=null&&(Wn==="raf"&&qt?qt(zn):Wn==="idle"&&typeof window.cancelIdleCallback=="function"?window.cancelIdleCallback(zn):Wn==="timeout"&&window.clearTimeout(zn),zn=null),_i+=1;for(const dr of va)qt&&qt(dr);for(const dr of Li)window.clearTimeout(dr);va.clear(),Li.clear(),Jn=null,ss=!1,rs=!1}}function ks(){return typeof performance<"u"?performance.now():Date.now()}function jo(dr){(function(lc){var Hh;if(!dt.value)return;const Md=Math.max(2,(Hh=ue.renderBatchBudgetMs)!=null?Hh:6),Ed=Math.max(1,Bt.value||1),Ld=Math.max(1,Math.floor(Ed/4));lc>1.5*Md?xt.value=Math.max(Ld,Math.floor(.8*xt.value)):lc<.6*Md&&xt.value=Md)return;const Ed=Math.max(1,dr),Ld=()=>{const Qm=ks();zn=null;const Xv=Jn??Ed;Jn=null;const Ym=ks();Dt.value=Math.min(Md,Dt.value+Xv),Sn(Dt.value),(function(QA,Xb){if(!me)return void jo(Xb);ss=!0;const cD=++_i;bt().then(()=>{var uD;if(cD!==_i)return;const uhe=ks(),dhe=Math.max(Xb,uhe-QA),dD=()=>{cD===_i&&jo(dhe)};if(Nt){let Vp=null,Jm=null,hD=!1;const pD=()=>{hD||(hD=!0,Vp!==null&&(va.delete(Vp),Vp=null),Jm!==null&&(Li.delete(Jm),window.clearTimeout(Jm),Jm=null),dD())};return Vp=Nt(()=>{pD()}),va.add(Vp),Jm=window.setTimeout(()=>{Vp!==null&&qt&&qt(Vp),pD()},Math.max(32,(uD=ue.renderBatchIdleTimeoutMs)!=null?uD:120)),void Li.add(Jm)}const fD=window.setTimeout(()=>{Li.delete(fD),dD()},0);Li.add(fD)})})(Qm,ks()-Ym)};if(!me||ya.immediate)return void Ld();const Wp=Math.max(0,(lc=ue.renderBatchDelay)!=null?lc:16);if(Jn=Jn!=null?Math.max(Jn,Ed):Ed,zn!=null)return;const qp=typeof document<"u"&&document.visibilityState==="hidden";if(!we&&!qp&&hn&&window.requestIdleCallback){const Qm=Math.max(0,(Hh=ue.renderBatchIdleTimeoutMs)!=null?Hh:120);return Wn="idle",void(zn=window.requestIdleCallback(()=>Ld(),{timeout:Qm}))}if(Nt&&!we&&!qp)return Wn="raf",void(zn=Nt(()=>{Wp===0?Ld():(Wn="timeout",zn=window.setTimeout(()=>Ld(),Wp))}));Wn="timeout",zn=window.setTimeout(()=>Ld(),Wp)}function jp(dr,ya={}){ss?rs=!0:dr==null?zh():as(dr,ya)}function zh(){dt.value&&as(Tt.value?Math.max(1,Math.round(xt.value)):Math.max(1,Bt.value))}return Fe([We,Ge,et,dt,Bt,Ut,()=>ue.renderBatchDelay],()=>{var dr;const ya=Ge.value,lc=_t.value,Hh=et.value,Md=!Object.is(Hh,lc.key),Ed=ya!==lc.total,Ld=Ed&&ya>lc.total&&lc.total>0&&!Md,Wp=Md||Ed;_t.value={key:Hh,total:ya};const qp=At.value,Qm=(dr=ue.renderBatchDelay)!=null?dr:16,Xv=qp.batchSize!==Bt.value||qp.initial!==Ut.value||qp.delay!==Qm||qp.enabled!==dt.value;At.value={batchSize:Bt.value,initial:Ut.value,delay:Qm,enabled:dt.value},Md&&Bn(ya),(Wp||Xv||!dt.value)&&Ho(),(Wp&&!Ld||Xv)&&(xt.value=Math.max(1,Bt.value||1)),Wp&&!Ld&&ci();const Ym=ut.value;if(!ya)return Dt.value=0,void Sn(0);if(!dt.value)return Dt.value=Ym,void Sn(Dt.value);const QA=Md||lc.total===0;Dt.value=QA||Xv?Math.min(Ym,Ut.value):Math.min(Dt.value,Ym);const Xb=Math.max(1,Ut.value||Bt.value||ya);Dt.value{dt.value&&(typeof ya=="number"&&dr<=ya||dr>Dt.value&&jp())}),{cleanupBatchScheduler:Ho}})({props:F,isClient:Pe,isTestEnv:no,parsedNodesIdentity:Mi,parsedNodeCount:hi,desiredRenderedCount:on,datasetKey:xA,batchingEnabled:qs,incrementalRenderingActive:Ne,resolvedBatchSize:_l,resolvedInitialBatch:vo,renderedCount:lt,adaptiveBatchSize:Xt,previousRenderContext:ot,previousBatchConfig:Ht,requestFrame:Kn,cancelFrame:ti,hasIdleCallback:Es,cleanupNodeVisibility:Ib,onDatasetKeyChanged:H=>{Wm(),yo(),Wr(),Vv(),H>0&&Fu(H)},onDatasetChanged:()=>{Ce.value&&ic({immediate:!0})}});Fe([Rv,Ce,()=>z.value,()=>he()],([H,ue])=>{if(!H)return Ad(),void Pv();Tb(),ue?ic({immediate:!0}):Pv()},{flush:"post",immediate:!0});let Vb=!1;function DF(){Ce.value&&Pe&&!Vb&&(Vb=!0,Kn?Kn(()=>{Vb=!1,ic({immediate:!0})}):queueMicrotask(()=>{Vb=!1,ic({immediate:!0})}))}Fe([()=>Ft.value.length,()=>Ce.value],([H,ue])=>{ue&&H&&Pe&&DF()},{flush:"post"}),Fe(Dn,H=>{H&&(function(){var ue;if(pi.value&&Lo.value&&mo.value&&((ue=Qi.value)!=null&&ue[1]))return;const me=it({type:"paragraph",children:[{type:"text",content:"Probe paragraph text",raw:"Probe paragraph text"}],raw:"Probe paragraph text"}),we=it({type:"list_item",children:[me],raw:"- Probe paragraph text"}),We=it({type:"list",ordered:!1,items:[we],raw:"- Probe paragraph text"});pi.value=me,Lo.value=we,mo.value=We;const Ge={1:null,2:null,3:null,4:null,5:null,6:null};for(let ut=1;ut<=6;ut++)Ge[ut]=it({type:"heading",level:ut,text:"Probe heading",children:[{type:"text",content:"Probe heading",raw:"Probe heading"}],raw:`${"#".repeat(ut)} Probe heading`});Qi.value=Ge})()},{immediate:!0}),Fe([()=>z.value,Tl],()=>{if(!Tl.value)return Nu(),void(ae.value=0);Eb(),Nu(),Tl.value&&z.value&&typeof ResizeObserver<"u"&&($p=new ResizeObserver(()=>{Eb(),Dn.value&&(Xr.value&&Cs(),Vs.value&&dn(),is("resize"))}),$p.observe(z.value))},{immediate:!0}),Fe([Dn,ms,tl],()=>us(null,null,function*(){if(!Dn.value)return pe.value={paragraph:null,listItem:null,listWrapperOverhead:0,headings:{1:null,2:null,3:null,4:null,5:null,6:null}},void Wr();yield bt(),(function(){if(!Dn.value||typeof window>"u")return pe.value={paragraph:null,listItem:null,listWrapperOverhead:0,headings:{1:null,2:null,3:null,4:null,5:null,6:null}},void Wr();const H={paragraph:null,listItem:null,listWrapperOverhead:0,headings:{1:null,2:null,3:null,4:null,5:null,6:null}},ue=Mb(Eh($.value),".paragraph-node");H.paragraph=g_($.value,ue,"pre-wrap");const me=Eh(j.value),we=me?.querySelector(".paragraph-node");H.listItem=g_(j.value,we,"pre-wrap");const We=st("readSimpleTextProbeProfile.list.offsetHeight",()=>{var ut,et;return(et=(ut=G.value)==null?void 0:ut.offsetHeight)!=null?et:0}),Ge=st("readSimpleTextProbeProfile.listItem.offsetHeight",()=>{var ut,et;return(et=(ut=j.value)==null?void 0:ut.offsetHeight)!=null?et:0});H.listWrapperOverhead=Math.max(0,We-Ge);for(let ut=1;ut<=6;ut++){const et=Mb(Eh(K[ut]),`h${ut}`);H.headings[ut]=g_(K[ut],et,"pre-wrap")}pe.value=H,Wr()})()}),{flush:"post",immediate:!0}),Fe(()=>Ft.value.length,()=>{Ce.value&&DF()}),Fe([Dn,ae],()=>{Wr(),Ce.value&&ic({immediate:!0}),Xr.value&&Cs(),Vs.value&&dn(),is("resize")},{immediate:!1}),Fe(()=>Cr.value,H=>{if(H)for(const[ue,me]of vs)Wb(ue,me);else if($v(),Ce.value)ic({immediate:!0});else for(const[ue,me]of vs)me&&oc(ue,!0)},{immediate:!1}),Fe([Q,ee,()=>he()],()=>{var H;(H=On.refresh)==null||H.call(On);for(const[ue,me]of vs)Wb(ue,me)},{immediate:!1}),Fe([()=>F.viewportPriority,()=>Ft.value.length,ee],([H,ue,me])=>{if(H!==!1){if(te.value&&(ue<=200||ue<=me)){te.value=!1;for(const[we,We]of vs)Wb(we,We)}}else te.value=!1}),Fe(()=>lt.value,()=>{Ce.value&&ic({immediate:!0})}),Fe([Ja,ye,Ae,()=>Ft.value.length,Ce],()=>{Du()},{immediate:!0});let Kv=null,Zv=!1,qm=null;function Gv(){Kv=null,Cf=null,Id=void 0,Ph=null,Vv()}function zA(){Wm(),yo(),Wr(),eo.length=0;const H=Ft.value.length;H>0&&Fu(H),MA()}function HA(){FA(),zo(),Wv=null,Di=null,bo=null,qr=null,na=null,Gs=null,Zv=!1,Gv(),sc("restore"),cr(),zt()}function Qv(H){var ue;return[(ue=ns())!=null?ue:"",Yi(),Vc(),Rh.value,qv(H),Ft.value.length,Math.round($a(0,Ft.value.length)),Math.round(_d()),As.count,Math.round(As.total)].join(":")}function NF(){return us(this,null,function*(){var H,ue,me,we;const We=(H=i.virtualScroll)==null?void 0:H.settledToken,Ge=qv(We),ut=Yi(),et=ns(),Tt=tl.value;if(wi.value&&((ue=i.virtualScroll)==null?void 0:ue.settleMode)==="manual"&&Dp(We))if(Dv()){if(Qv(We)!==Ph&&!Zv){Zv=!0;try{const dt=yield LA({reason:"manual",expectedSettledTokenKey:Ge}),Bt=qv()===Ge;EA(ut,et,Tt)&&dt.sessionKey===ut&&dt.threadKey===et&&Bt&&dt.stable&&dt.phase==="final"&&(Ph=Qv((me=i.virtualScroll)==null?void 0:me.settledToken))}finally{Zv=!1,yield bt();const dt=(we=i.virtualScroll)==null?void 0:we.settledToken,Bt=Dp(dt)?Qv(dt):"";EA(ut,et,Tt)&&Bt&&Ph!==Bt&&NF()}}}else is("manual")})}Fe(wi,(H,ue)=>{if(H!==ue){if(!H)return HA(),void FA();HA(),zA(),qm=tl.value,is("content")}},{flush:"post"}),Fe([wi,tl],([H,ue])=>{H?qm!=null?qm!==ue&&(qm=ue,(function(me="resize"){Wm(),yo(),Wr(),eo.length=0;const we=Ft.value.length;we>0&&Fu(we),MA(),Di=null,bo=null,qr=null,Wv=null,Zv=!1,Gv(),Hv(),bt(()=>{Dh(),Xr.value&&Cs(),Vs.value&&dn(),is(me)})})("resize")):qm=ue:qm=null},{flush:"post",immediate:!0}),Fe([wi,()=>Yi(),()=>ns()],([H])=>{H&&(HA(),zA(),sc("content"),is("content"))}),Fe([wi,()=>Yi(),()=>ns(),tl,()=>Ft.value.length],([H])=>{H&&(function(ue="async-node"){var me;let we=!1;for(const[We,Ge]of Array.from(El.entries()))Dm(Ge)||(Se-=Math.max(0,(me=ta.get(We))!=null?me:0),El.delete(We),ta.delete(We),we=!0);we&&(wf(),is(ue))})("async-node")},{flush:"post"}),Fe([wi,()=>{var H;return(H=i.virtualScroll)==null?void 0:H.sessionKey},()=>{var H;return(H=i.virtualScroll)==null?void 0:H.measurementKey},()=>i.indexKey,()=>q.value],([H])=>{H&&(Vv(),(function(ue="content"){if(!wi.value)return;const me=[],we=Ft.value.length,We=Mh(we),Ge=eo.length-1,ut=Math.max(we-1,Ge);for(let et=We;et<=ut;et++){if(et>=we){et<=Ge&&eo[et]!==void 0&&me.push(et);continue}const Tt=Fh(et),dt=eo[et];dt!=null&&dt!==Tt&&me.push(et),eo[et]=Tt}if(Ge>=we){for(let et=we;et<=Ge;et++)eo[et]=void 0;eo.length=we}me.length&&((function(et,Tt={}){const dt=Array.from(et,Number);ni(dt);let Bt=0;if(Fn(()=>(Bt=Qe(dt,Tt),Bt>0)),Bt>0)(function(Ut){for(const Dt of Ut)Number.isInteger(Dt)&&Dt>=0&&DtFt.value.length,()=>Yi(),()=>ns()],([H,ue,me,we],[We,Ge,ut,et])=>{H&&We&&me===ut&&we===et&&ue!==Ge&&Gv()},{flush:"post"}),Fe([wi,()=>{var H;return(H=i.virtualScroll)==null?void 0:H.heightCache},()=>{var H;return(H=i.virtualScroll)==null?void 0:H.heightCacheWidth},()=>{var H;return(H=i.virtualScroll)==null?void 0:H.restoreState},()=>{var H;return(H=i.virtualScroll)==null?void 0:H.measurementKey},()=>Ft.value.length,()=>Yi(),ae],()=>{Hv()},{flush:"post",immediate:!0}),Fe(zb,(H,ue)=>{H==null&&ue!=null&&(cr(),Xr.value=null,zt(),qr=null)},{flush:"post"}),Fe([wi,()=>{var H;return(H=i.virtualScroll)==null?void 0:H.restoreState},()=>{var H;return(H=i.virtualScroll)==null?void 0:H.restoreAnchor},()=>{var H;return(H=i.virtualScroll)==null?void 0:H.measurementKey},()=>Ft.value.length,()=>Yi(),ae],H=>us(null,[H],function*([ue,me]){if(!ue||!me)return;yield bt();const we=zb();TA(me,{restoreAnchor:we!=null,restoreToken:we??void 0})}),{flush:"post",immediate:!0}),Fe([wi,ae,()=>{var H;return(H=i.virtualScroll)==null?void 0:H.restoreState},()=>{var H;return(H=i.virtualScroll)==null?void 0:H.measurementKey}],([H])=>{var ue;if(!H)return;const me=(ue=i.virtualScroll)==null?void 0:ue.restoreState;me&&Di&&bo==="restore"&&(li(me)||(zA(),Di=null,bo=null,is("resize")))},{flush:"post"}),Fe([wi,()=>Ft.value.length,()=>Yi(),ae],H=>us(null,[H],function*([ue]){var me;const we=na,We=Gs;ue&&we&&(yield bt(),!TA(we,{restoreAnchor:We?.restoreAnchor===!0,restoreToken:(me=We?.restoreToken)!=null?me:"imperative",allowUncapturedAnchor:We?.allowUncapturedAnchor===!0})&&TF(we)||(na=null,Gs=null))}),{flush:"post",immediate:!0}),Fe([wi,sn,()=>{var H;return(H=i.virtualScroll)==null?void 0:H.settleMode},()=>Yi(),()=>ns(),tl,nt,Lp,()=>lt.value,on,()=>As.count,()=>As.total],([H,ue,me])=>{if(!H||ue!==!0||me==="manual"||!Af())return;const we=(function(){var We;const Ge=Ft.value.length;return[(We=ns())!=null?We:"",Yi(),Vc(),Rh.value,Ge,Math.round($a(0,Ge)),Math.round(_d()),As.count,Math.round(As.total)].join(":")})();Kv!==we&&(Kv=we,LA({reason:"final"}).then(We=>{We.stable||Kv!==we||(Kv=null)}))},{flush:"post",immediate:!0}),Fe([wi,sn,()=>{var H;return(H=i.virtualScroll)==null?void 0:H.settleMode},()=>{var H;return(H=i.virtualScroll)==null?void 0:H.settledToken},()=>Yi(),()=>ns(),tl,nt,Lp,()=>lt.value,on,()=>Ft.value.length,()=>As.count,()=>As.total],()=>{NF()},{flush:"post",immediate:!0}),Fe([()=>Ft.value.length,Ce,ye,Ae,()=>Oo.start,()=>Oo.end],([H,ue,me,we,We,Ge])=>{ke.value&&Te("virtualization",{nodes:H,virtualization:ue,maxLiveNodes:me,buffer:we,focusIndex:Ja.value,scroll:ue?(()=>{const ut=Pa.value||$e();return ut?{reverse:Ye(ut),scrollTop:Math.round(ut.scrollTop),scrollTopAbs:Math.round(Math.abs(ut.scrollTop)),scrollHeight:Math.round(ut.scrollHeight),clientHeight:Math.round(ut.clientHeight)}:null})():null,liveRange:{start:We,end:Ge},rendered:lt.value})}),Fe([()=>F.customId],([H],ue,me)=>{if(!H||Zn)return;const we=(function(We,Ge){return We?(xr.controllers[We]=Ge,()=>{xr.controllers[We]===Ge&&delete xr.controllers[We]}):()=>{}})(H,{captureRestoreAnchor:kr,restoreAnchor:wr,getAnchorDrift:jc,getReport:Sd});me(()=>{we()})},{immediate:!0}),ki(()=>{(function(){if(wi.value)try{Dh(),jv();const H=Hu("manual");LF(H)&&(B(H),Wv=H,RA=Hm());const ue=re(H,{includeHeightCache:!0,includeContentHash:!0,allowAnchorFallback:!1,requireViewport:!0,includeEmptyState:!0});ue&&(W(ue),ue.anchor&&D(ue.anchor),zm=Uv(ue))}catch{}})(),Zfe(),$v(),pt(),FF();for(const H of Ml.values())for(const ue of H)Ei(ue);Ml.clear(),tc.clear(),eo.length=0,NA(),Wm(),Nu(),cr(),zt(),FA(),Ad(),Pv()});const Gfe=vk("ViewportDeferredMermaidBlockNode",ih({loader:()=>us(null,null,function*(){try{return(yield pn(()=>import("./index10-Bk1rSddE.js"),__vite__mapDeps([5,4]))).default}catch(H){return console.warn('[markstream-vue] Optional peer dependencies for MermaidBlockNode are missing. Falling back to preformatted code rendering. To enable Mermaid rendering, please install "mermaid".',H),J0}}),loadingComponent:FU,delay:0}),FU),Qfe=vk("ViewportDeferredInfographicBlockNode",ih({loader:()=>us(null,null,function*(){try{return(yield pn(()=>import("./index8-DvUceGOQ.js"),[])).default}catch(H){return console.warn('[markstream-vue] Failed to load InfographicBlockNode. Showing the Infographic source fallback. To enable Infographic rendering, install "@antv/infographic" and configure setInfographicLoader with a dynamic loader.',H),v_}}),loadingComponent:v_,delay:0}),v_),Yfe=vk("ViewportDeferredD2BlockNode",ih({loader:()=>us(null,null,function*(){try{return(yield pn(()=>import("./index9-IShPpQOf.js"),[])).default}catch(H){return console.warn('[markstream-vue] Optional peer dependencies for D2BlockNode are missing. Falling back to preformatted code rendering. To enable D2 rendering, please install "@terrastruct/d2".',H),J0}}),loadingComponent:OU,delay:0}),OU),BF={text:sr,paragraph:X0,heading:jC,code_block:u_,list:y2,list_item:v2,blockquote:yk,table:J4,definition_list:bk,footnote:Q4,footnote_reference:Rc,footnote_anchor:G4,admonition:Ak,vmr_container:wk,hardbreak:j1,link:bl,image:ah,thematic_break:kk,math_inline:dd,math_block:$ae,strong:vl,emphasis:kl,strikethrough:yl,highlight:$c,insert:Kl,subscript:Ul,superscript:Vl,emoji:ql,checkbox:Lc,checkbox_input:Lc,inline_code:qa,html_inline:Pc,reference:gl,html_block:Y4},zF=R(()=>bs()),Jfe=R(()=>bU(F.codeBlockProps)),Xfe=R(()=>bU(F.codeBlockProps)),jA=R(()=>Ji(wn(wn({stream:F.codeBlockStream,darkTheme:F.codeBlockDarkTheme,lightTheme:F.codeBlockLightTheme,themes:F.themes,minWidth:F.codeBlockMinWidth,maxWidth:F.codeBlockMaxWidth},typeof ne.value=="boolean"?{showTooltips:ne.value}:{}),Xfe.value),{codeBlockOptions:F.codeBlockOptions})),WA=R(()=>Ji(wn(wn({},jA.value),Jfe.value),{codeBlockOptions:F.codeBlockOptions}));function Yv(H){return typeof H=="boolean"?H:void 0}const HF=R(()=>{var H,ue,me,we,We,Ge,ut;const et=F.codeBlockProps||{},Tt={},dt=Yv(et.showLineNumbers);Tt.showLineNumbers=dt??((H=F.codeBlockOptions)==null?void 0:H.disableLineNumbers)!==!0,Tt.showHeader=(ue=Yv(et.showHeader))==null||ue,Tt.showCopyButton=(me=Yv(et.showCopyButton))==null||me,typeof et.clipboardWriter=="function"&&(Tt.clipboardWriter=et.clipboardWriter);const Bt=(we=Yv(et.showTooltips))!=null?we:ne.value;typeof Bt=="boolean"&&(Tt.showTooltips=Bt),Tt.codeBlockOptions=F.codeBlockOptions,Tt.isDark=F.isDark,Tt.darkTheme=(We=et.darkTheme)!=null?We:F.codeBlockDarkTheme,Tt.lightTheme=(Ge=et.lightTheme)!=null?Ge:F.codeBlockLightTheme,Tt.theme=et.theme,Tt.themes=(ut=et.themes)!=null?ut:F.themes;const Ut=Yv(et.diffInline);Ut!==void 0&&(Tt.diffInline=Ut),et.diffHideUnchangedRegions!==void 0&&(Tt.diffHideUnchangedRegions=et.diffHideUnchangedRegions);const Dt=(function(xt){const _t=Number(xt);return Number.isFinite(_t)&&_t>0?_t:void 0})(et.reservedHeightPx);return Dt!==void 0&&(Tt.reservedHeightPx=Dt),Tt}),jF=R(()=>wn({},F.mermaidProps||{})),WF=R(()=>wn({},F.d2Props||{})),qF=R(()=>wn({},F.infographicProps||{})),Vm=R(()=>({typewriter:g.value,fade:F.fade,customHtmlTags:cn.value.customHtmlTags})),VF=R(()=>wn(wn({},Vm.value),typeof ne.value=="boolean"?{showTooltip:ne.value}:{})),UF=R(()=>wn(wn({},Vm.value),typeof ne.value=="boolean"?{showTooltips:ne.value}:{})),KF=R(()=>wn(wn({},Vm.value),typeof ne.value=="boolean"?{showTooltips:ne.value}:{})),ZF=R(()=>wn(wn({},Vm.value),typeof ne.value=="boolean"?{showTooltips:ne.value}:{}));function ehe(H){return Array.isArray(H.children)&&H.children.length>0}const GF=new WeakMap,QF=new WeakMap,qA=[],VA=[];let Um=null,YF=[];function UA(H,ue){var me;const we=String((me=H?.code)!=null?me:""),We=QF.get(H);if(We&&We.code===we)return We.height;const Ge=ue(we);return QF.set(H,{code:we,height:Ge}),Ge}function JF(H,ue){if(H.length!==ue.length)return!1;for(let me=0;me{const H=new Map,ue=new Map;return Ft.value.forEach((me,we)=>{var We;if(me.type!=="footnote")return;const Ge=me.id,ut=(We=H.get(Ge))!=null?We:0;ue.set(we,ut),H.set(Ge,ut+1)}),ue});function XF(H,ue){var me,we,We,Ge,ut;const et=(function(Li,Ho,ks){const jo=Dn.value?Bu.value[Ho]:null;return[Ho,Li.loading,jo,ks]})(H.node,H.index,ue),Tt=GF.get(H.node);if(Tt&&JF(Tt.signature,et))return Tt.item;let dt=(function(Li,Ho){var ks,jo;if(Li.type!=="code_block")return io[Ho]=void 0,Li;const as=Li,jp=[as.language,as.loading,as.diff,as.code,as.originalCode,as.updatedCode,as.raw,as.startLine,as.endLine,(ks=as.sourceMap)==null?void 0:ks.startLine,(jo=as.sourceMap)==null?void 0:jo.endLine],zh=io[Ho];if(zh&&jp.every((ya,lc)=>ya===zh.signature[lc]))return zh.node;const dr=wn({},as);return io[Ho]={signature:jp,node:dr},dr})(H.node,H.index);const Bt=Kb(dt);let Ut=iD(dt,Bt);if((dt.type==="html_block"||dt.type==="html_inline")&&Ut===BF[dt.type]){const Li=dt,Ho=String((me=Li.tag)!=null?me:"").trim().toLowerCase()||jse(Li.content);if(Ho){const ks=ct.value[Ho];if(Vt.value.has(Ho)&&ks)Ut=ks,dt=Ji(wn({},Li),{type:Ho,tag:Ho,content:gqe(Li.content,Ho)});else if(Wse((we=Li.content)!=null?we:Li.raw,Ho)){const jo=String((Ge=(We=Li.content)!=null?We:Li.raw)!=null?Ge:"");dt.type==="html_inline"?(Ut=sr,dt={type:"text",content:jo,raw:jo}):(Ut=X0,dt={type:"paragraph",children:[{type:"text",content:jo,raw:jo}],raw:jo})}}}const Dt=dt.type==="code_block"&&v.value&&Ut===vy&&!Ck(ct.value,Bt);let xt=wn({},(function(Li,Ho,ks){const jo=Ho??Kb(Li);if(Li.type==="code_block"){const as=jo?Ck(ct.value,jo):void 0;if(ks&&v.value&&!as&&ks===vy)return HF.value;if(ks&&jo&&ks===as)return jo==="mermaid"?eD(Li):jo==="infographic"?tD(Li):jo==="d2"||jo==="d2lang"?nD(Li):WA.value;if(ks&&ks===ct.value.code_block)return WA.value}return jo==="mermaid"?eD(Li):jo==="infographic"?tD(Li):jo==="d2"||jo==="d2lang"?nD(Li):Li.type==="link"?VF.value:Li.type==="list"?UF.value:Li.type==="blockquote"?KF.value:Li.type==="table"?ZF.value:Li.type==="code_block"?jA.value:Vm.value})(dt,Bt,Ut));const _t=Dn.value?Bu.value[H.index]:null;dt.type==="code_block"&&_t?.kind==="code-block"&&(xt=Ji(wn({},xt),Dt?{reservedHeightPx:_t.contentHeight}:{estimatedHeightPx:_t.height,estimatedContentHeightPx:_t.contentHeight,estimatedDiffInline:_t.diffInline})),Dt||dt.type!=="code_block"||Bt!=="mermaid"||M0(xt.estimatedPreviewHeightPx)!=null||(xt=Ji(wn({},xt),{estimatedPreviewHeightPx:Dw(UA(dt,Ow))})),Dt||dt.type!=="code_block"||Bt!=="infographic"||M0(xt.estimatedPreviewHeightPx)!=null||(xt=Ji(wn({},xt),{estimatedPreviewHeightPx:Nw(UA(dt,Fw))})),dt.type==="math_block"&&(xt=Ji(wn({},xt),{cacheScope:ht}));const At=(function(Li,Ho){const ks=String(Li.type);return!db(ks)&&ct.value[ks]===Ho})(dt,Ut),Nt=At?q$(dt,ce.value):void 0,qt=dt.loading;let hn=H.index;dt.type==="footnote"&&Ut===Q4&&(hn=`footnote-${dt.id}-${the.value.get(H.index)}`);const Sn=`${zF.value}-${hn}`,Bn=wn({node:dt,loading:qt,"index-key":Sn},dt.type==="reference"?{"data-markstream-reference-id":String(dt.id)}:{}),ci={"custom-id":F.customId,"is-dark":F.isDark},zn={onCopy:s,onHandleArtifactClick:r},Wn={onClick:oD,onMouseover:ohe,onMouseout:she},Jn={onMouseover:a,onMouseout:l},_i=wn(wn({},Nt??{}),xt),ss=Ni(Bn,xt,ci,zn),rs=Ni(_i,Bn,ci,zn),va={node:dt,sourceLoading:qt,index:H.index,component:Ut,bindings:xt,customBindings:_i,nodeProps:ss,customNodeProps:rs,fragmentNodeProps:Ni(ss,Wn),customFragmentNodeProps:Ni(rs,Wn),minimalNodeProps:Ni(ss,Jn),rendersCustomNode:At,hasSlotChildren:ehe(dt),slotContent:String((ut=dt.content)!=null?ut:""),isCodeBlock:dt.type==="code_block",indexKey:Sn,vnodeKey:`${Ov.value}\0${hn}\0${dt.type}`};return GF.set(H.node,{signature:et,item:va}),va}const Ub=R(()=>{var H,ue,me,we,We;const Ge=Um,ut=(function(){const At=[v.value,ct.value,Vt.value,ce.value,Ov.value,zF.value,ht,Op.value,F.customId,F.isDark,HF.value,jA.value,WA.value,jF.value,qF.value,WF.value,Vm.value,VF.value,UF.value,KF.value,ZF.value,Dn.value,Y5.value,ae.value];return Um&&JF(Um,At)?Um:(Um=At,At)})(),et=Ge!==ut;if(Um=ut,Ce.value)return $b.value.map(At=>XF(At,ut));const Tt=Ft.value,dt=Tt.length;let Bt=!1;qA.length>dt&&(qA.length=dt,VA.length=dt,Bt=!0);const Ut=qA,Dt=Math.min(Ut.length,dt);let xt=et?0:Dt;if(!et)for(let At=0;At!(F.domMode!=="minimal"||le.value||F.fade!==!1||g.value||Fa.value||di.value||Ce.value||Ai.value||Ro.value||yn.value||Object.keys(ct.value).length!==0));let Zm,Hp=null,ZA=0,Zb=0,Gb=0;const sD=["code_block","admonition","table","math_block","html_block","image","thematic_break"],ahe=new Set(sD),rD=[".typewriter-cursor",".height-estimation-probes",...sD.map(H=>`[data-node-type="${H}"]`),"script","style"].join(",");function aD(H){if(!H||typeof H!="object")return!1;const ue=H.type;return typeof ue=="string"&&ahe.has(ue)}function Qb(H){var ue,me;if(!H||typeof H!="object")return 0;const we=H,We=(me=(ue=we.raw)!=null?ue:we.content)!=null?me:we.code;if(typeof We=="string")return We.length;const Ge=we.children;if(Array.isArray(Ge))return Ge.reduce((et,Tt)=>et+Qb(Tt),0);const ut=we.items;return Array.isArray(ut)?ut.reduce((et,Tt)=>et+Qb(Tt),0):0}function Jv(){Zm&&(clearTimeout(Zm),Zm=void 0)}function GA(){ZA+=1,Hp!=null&&(ti?.(Hp),Hp=null)}function Gm(){GA(),Bh(),Nh.value&&(Nh.value.style.visibility="hidden")}function lhe(H){var ue;if(H.nodeType!==Node.TEXT_NODE||!((ue=H.textContent)!=null?ue:"").trim())return!1;const me=H.parentElement;return!!me&&!me.closest(rD)}function che(H){let ue=H.lastChild;for(;ue;){if(lhe(ue))return ue;if(ue.nodeType===Node.ELEMENT_NODE){const me=ue;if(!me.matches(rD)&&me.lastChild){ue=me.lastChild;continue}}for(;ue&&ue!==H&&!ue.previousSibling;)ue=ue.parentNode;if(!ue||ue===H)break;ue=ue.previousSibling}return null}function lD(){const H=Ub.value;for(let ue=H.length-1;ue>=0;ue--){const me=H[ue];if(!me||aD(me.node)||!jb(me.index))continue;const we=vs.get(me.index);if(!we)continue;const We=che(we);if(We)return We}return null}function Bh(){Km.value&&(Km.value.classList.remove(DU),Km.value=null)}function Yb(){if(m.value!=="simple"||!Pe||!Fa.value||!z.value)return void Bh();const H=lD(),ue=H?(function(me){var we;const We=(we=me.parentElement)==null?void 0:we.closest(".text-node");return We instanceof HTMLElement?We:me.parentElement})(H):null;ue!==Km.value&&(Bh(),ue&&(ue.classList.add(DU),Km.value=ue))}function Jb(){if(m.value!=="precise"||!Pe||!Fa.value||Hp!=null)return;const H=ZA,ue=()=>{Hp=null,H===ZA&&(function(){var me,we;if(m.value!=="precise"||!(Pe&&Fa.value&&z.value&&Nh.value))return;const We=z.value,Ge=Nh.value;Ge.style.visibility="hidden";const ut=lD();if(!ut)return;let et=0,Tt=0,dt=20,Bt=!1;if(ut?.textContent){const Ut=ut.textContent.length,Dt=document.createRange();Dt.setStart(ut,Math.max(0,Ut-1)),Dt.setEnd(ut,Ut);const xt=typeof Dt.getClientRects=="function"?Dt.getClientRects():void 0,_t=(we=xt?.[xt.length-1])!=null?we:(me=ut.parentElement)==null?void 0:me.getBoundingClientRect();if(_t){const At=st("typewriterCursor.root.getBoundingClientRect",()=>We.getBoundingClientRect());et=_t.right-At.left+We.scrollLeft,Tt=_t.top-At.top+We.scrollTop,dt=_t.height||dt,Bt=!0}Dt.detach()}Bt&&(Ge.style.transform=`translate(${Math.max(0,et)}px, ${Math.max(0,Tt)}px)`,Ge.style.height=`${dt}px`,Ge.style.visibility="visible")})()};Kn?Hp=Kn(ue):ue()}return Fe([jt,()=>i.content,()=>i.nodes,()=>F.typewriter,sn],()=>us(null,null,function*(){var H,ue;if(!Pe||le.value||!xe.value)return;if(!g.value)return void((Fa.value||Zm||Hp!=null||Km.value||Nh.value)&&(Fa.value=!1,Jv(),Gm()));if(sn.value)return Fa.value=!1,Jv(),void Gm();if((H=i.nodes)!=null&&H.length)return Fa.value=!1,Jv(),Gm(),Zb=((ue=i.content)!=null?ue:"").length,void(Gb=jt.value.length);const me=(function(){var et,Tt;return(et=i.nodes)!=null&&et.length?i.nodes.reduce((dt,Bt)=>dt+Qb(Bt),0):((Tt=i.content)!=null?Tt:"").length})(),we=(function(){var et;return(et=i.nodes)!=null&&et.length?i.nodes.reduce((Tt,dt)=>Tt+Qb(dt),0):jt.value.length})(),We=!aD(Ft.value[Ft.value.length-1]),Ge=me>Zb,ut=we>Gb;if(!g.value||!We||!Ge&&!ut)return g.value&&We||(Fa.value=!1,Gm()),Zb=me,void(Gb=we);Zb=me,Gb=we,Fa.value=!0,m.value==="precise"&&Nh.value&&(Nh.value.style.visibility="hidden"),Jv(),yield bt(),m.value==="simple"?Yb():(Bh(),Jb()),Zm=setTimeout(()=>{Zm=void 0,Fa.value=!1},3e3)}),{flush:"post",immediate:!0}),Fe(Fa,H=>us(null,null,function*(){H?(yield bt(),m.value!=="simple"?(Bh(),m.value==="precise"&&Jb()):Yb()):Gm()}),{flush:"post"}),Fe(m,()=>us(null,null,function*(){if(Pe&&!le.value&&xe.value&&Fa.value){if(yield bt(),m.value==="simple")return GA(),void Yb();Bh(),m.value!=="precise"?Gm():Jb()}}),{flush:"post"}),Fe([()=>lt.value,()=>Oo.start,()=>Oo.end],()=>us(null,null,function*(){Pe&&!le.value&&xe.value&&Fa.value&&(yield bt(),m.value!=="simple"?(Bh(),m.value==="precise"&&Jb()):Yb())}),{flush:"post"}),ki(()=>{Jv(),GA(),Bh(),ln.clear()}),(H,ue)=>{const me=GL("NodeRenderer",!0);return p(le)?(b(!0),I(_e,{key:0},yt(Ub.value,we=>(b(),I(_e,{key:we.vnodeKey},[we.rendersCustomNode?(b(),oe(Ds(we.component),Ni({key:0,ref_for:!0},we.customFragmentNodeProps),{default:ie(()=>[we.hasSlotChildren?(b(),oe(me,Ni({key:0,ref_for:!0},xi.value,{nodes:we.node.children,"index-key":we.indexKey,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["nodes","index-key"])):we.slotContent?(b(),oe(me,Ni({key:1,ref_for:!0},xi.value,{content:we.slotContent,final:!we.node.loading,"index-key":`${we.indexKey}-content`,"smooth-streaming":!1,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["content","final","index-key"])):X("",!0)]),_:2},1040)):(b(),oe(Ds(we.component),Ni({key:1,ref_for:!0},we.fragmentNodeProps),null,16))],64))),128)):(b(),I("div",{key:1,ref_key:"containerRef",ref:z,class:De(["markstream-vue markdown-renderer",[{dark:F.isDark},{virtualized:Ce.value},{"virtual-scroll-coordinated":go.value},{"stable-layout":Lv.value},{"typewriter-simple-cursor":Fa.value&&m.value==="simple"}]]),"data-custom-id":F.customId,onClick:oD,onMouseover:nhe,onMouseout:ihe},[Xi.value||Ce.value?(b(),I(_e,{key:0},[Xi.value?(b(),oe(UXe,{key:0,width:ms.value,"flow-root":Ce.value||go.value,"paragraph-node":pi.value,"list-item-node":Lo.value,"list-node":mo.value,"heading-nodes":Qi.value,"set-paragraph-wrapper":ga,"set-list-item-wrapper":el,"set-list-wrapper":Rp,"set-heading-wrapper":CA},null,8,["width","flow-root","paragraph-node","list-item-node","list-node","heading-nodes"])):X("",!0),Ce.value?(b(),I("div",{key:1,class:"node-spacer",style:nn({height:`${Fp.value}px`}),"aria-hidden":"true"},null,4)):X("",!0)],64)):X("",!0),rhe.value?(b(!0),I(_e,{key:1},yt(Ub.value,we=>(b(),I(_e,{key:we.vnodeKey},[jb(we.index)?(b(),oe(Ds(we.component),Ni({key:0,ref_for:!0},we.minimalNodeProps),null,16)):X("",!0)],64))),128)):(b(!0),I(_e,{key:2},yt(Ub.value,we=>(b(),I("div",{key:we.vnodeKey,ref_for:!0,ref:We=>Wb(we.index,We),class:"node-slot","data-node-index":we.index,"data-node-type":we.node.type},[p(BA).has(we.vnodeKey)||jb(we.index)?(b(),I("div",{key:0,ref_for:!0,ref:We=>(function(Ge,ut,et){var Tt,dt;if(et?BA.add(ut):BA.delete(ut),et){const xt=Ft.value[Ge],_t=ys.get(Ge);if(_t&&_t.el===et&&_t.node===xt&&_t.loading===xt?.loading)return}et||(function(xt){var _t;const At=`${bs()}-${xt}`;let Nt=!1;for(const qt of Array.from(ta.keys())){const hn=El.get(qt);(hn?.index===xt||qt===At||qt.startsWith(`${At}-`))&&(Se-=Math.max(0,(_t=ta.get(qt))!=null?_t:0),ta.delete(qt),El.delete(qt),Nt=!0)}Nt&&(wf(),is("async-node"))})(Ge),Xa.delete(Ge),(function(xt){var _t;const At=((_t=tc.get(xt))!=null?_t:0)+1;tc.set(xt,At)})(Ge);const Bt=Ml.get(Ge);if(Bt){for(const xt of Bt)Ei(xt);Ml.delete(Ge)}if((function(xt){const _t=Ru.get(xt);_t&&(Si?.unobserve(_t),Yl.delete(_t),Ru.delete(xt))})(Ge),!et||!Je.value)return Zs.delete(Ge),tc.delete(Ge),void ys.delete(Ge);Zs.set(Ge,et),ys.set(Ge,{el:et,node:Ft.value[Ge],loading:(Tt=Ft.value[Ge])==null?void 0:Tt.loading});const Ut=()=>{qb(Ge,et)};queueMicrotask(Ut);const Dt=(Si||typeof ResizeObserver>"u"||(Si=new ResizeObserver(xt=>{if(xt.length)for(const _t of xt){const At=Yl.get(_t.target),Nt=Ru.get(At??-1);At!=null&&Nt&&qb(At,Nt)}else Dh()})),Si);if(Dt&&(Ru.set(Ge,et),Yl.set(et,Ge),Dt.observe(et)),typeof window<"u"){const xt=((dt=Ft.value[Ge])==null?void 0:dt.type)==="code_block"?[16,80,240,800]:sn.value?[80]:[];if(xt.length){const _t=xt.map(At=>ii(At,Ut,"node-resize")).filter(At=>At!=null);_t.length&&Ml.set(Ge,_t)}}})(we.index,we.vnodeKey,We),class:"node-content"},[we.isCodeBlock?we.rendersCustomNode?(b(),oe(Ds(we.component),Ni({key:1,ref_for:!0},we.customNodeProps),{default:ie(()=>[we.hasSlotChildren?(b(),oe(me,Ni({key:0,ref_for:!0},xi.value,{nodes:we.node.children,"index-key":we.indexKey,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["nodes","index-key"])):we.slotContent?(b(),oe(me,Ni({key:1,ref_for:!0},xi.value,{content:we.slotContent,final:!we.node.loading,"index-key":`${we.indexKey}-content`,"smooth-streaming":!1,"batch-rendering":!1,"defer-nodes-until-visible":!1,"render-as-fragment":!0}),null,16,["content","final","index-key"])):X("",!0)]),_:2},1040)):(b(),oe(Ds(we.component),Ni({key:2,ref_for:!0},we.nodeProps),null,16)):(b(),oe(KXe,{key:0,item:we,"source-nodes":i.nodes,fade:F.fade,final:p(Kt),"nested-renderer-props":we.rendersCustomNode?xi.value:void 0},null,8,["item","source-nodes","fade","final","nested-renderer-props"]))],512)):(b(),I("div",{key:1,class:"node-placeholder",style:nn({height:`${Jr(we.index)}px`})},null,4))],8,QXe))),128)),Fa.value&&m.value==="precise"?(b(),I("span",{key:3,ref_key:"typewriterCursorRef",ref:Nh,class:"typewriter-cursor","aria-hidden":"true"},null,512)):X("",!0),Ce.value?(b(),I("div",{key:4,class:"node-spacer",style:nn({height:`${Lh.value}px`}),"aria-hidden":"true"},null,4)):X("",!0)],42,GXe))}}})),[["__scopeId","data-v-179398b5"]]),wl=Ww;wl.install=e=>{const t=new Set(["MarkdownRender","NodeRenderer",wl.__name,wl.name].filter(n=>!!n));for(const n of t)e.component(n,Ww)};const Kae=Object.freeze(Object.defineProperty({__proto__:null,default:wl},Symbol.toStringTag,{value:"Module"})),YXe={key:0,xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"admonition-icon"},JXe={key:1,xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"admonition-icon"},XXe={key:2,xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"admonition-icon"},eet={key:3,xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"admonition-icon"},tet={class:"admonition-title"},net=["aria-expanded","aria-controls"],iet=["id"],Ak=xo(Xe({__name:"AdmonitionNode",props:{node:{},indexKey:{},isDark:{type:Boolean},typewriter:{type:Boolean},fade:{type:Boolean},customId:{}},emits:["copy"],setup(e,{emit:t}){var n;const i=e,o=t,s=R(()=>{if(i.node.title&&i.node.title.trim().length)return i.node.title;const c=i.node.kind||"note";return c.charAt(0).toUpperCase()+c.slice(1)}),r=Z(!!i.node.collapsible&&!((n=i.node.open)==null||n));function a(){i.node.collapsible&&(r.value=!r.value)}const l=`admonition-${Math.random().toString(36).slice(2,9)}`;return(c,u)=>(b(),I("div",{class:De(["admonition",[`admonition-${i.node.kind}`]])},[A("div",{id:l,class:"admonition-legend"},[i.node.kind==="note"||i.node.kind==="info"?(b(),I("svg",YXe,[...u[1]||(u[1]=[A("circle",{cx:"12",cy:"12",r:"10"},null,-1),A("path",{d:"M12 16v-4"},null,-1),A("path",{d:"M12 8h.01"},null,-1)])])):i.node.kind==="tip"?(b(),I("svg",JXe,[...u[2]||(u[2]=[A("path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"},null,-1),A("path",{d:"M9 18h6"},null,-1),A("path",{d:"M10 22h4"},null,-1)])])):i.node.kind==="warning"||i.node.kind==="caution"?(b(),I("svg",XXe,[...u[3]||(u[3]=[A("path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"},null,-1),A("path",{d:"M12 9v4"},null,-1),A("path",{d:"M12 17h.01"},null,-1)])])):i.node.kind==="danger"||i.node.kind==="error"?(b(),I("svg",eet,[...u[4]||(u[4]=[A("polygon",{points:"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"},null,-1),A("path",{d:"M12 8v4"},null,-1),A("path",{d:"M12 16h.01"},null,-1)])])):X("",!0),A("span",tet,O(s.value),1),i.node.collapsible?(b(),I("button",{key:4,class:"admonition-toggle","aria-expanded":!r.value,"aria-controls":`${l}-content`,onClick:a},[(b(),I("svg",{style:nn({rotate:r.value?"0deg":"90deg"}),xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[...u[5]||(u[5]=[A("path",{d:"m9 18 6-6-6-6"},null,-1)])],4))],8,net)):X("",!0)]),qi(A("div",{id:`${l}-content`,class:"admonition-content","aria-labelledby":l},[V(p(wl),{"index-key":`admonition-${e.indexKey}`,nodes:i.node.children,"custom-id":i.customId,typewriter:i.typewriter,fade:i.fade,onCopy:u[0]||(u[0]=d=>o("copy",d))},null,8,["index-key","nodes","custom-id","typewriter","fade"])],8,iet),[[Js,!r.value]])],2))}}),[["__scopeId","data-v-a83480e1"]]);Ak.install=e=>{e.component(Ak.__name,Ak)};const ME=()=>pn(()=>import("./d2_markstream-vue-yoD6TSFD.js"),[]);let X5=null,e8=ME,t8=null,NU=!1,BU=!1;function prn(){return us(this,null,function*(){if(X5)return X5;const e=e8;return e?e===ME&&NU?null:t8||(t8=us(null,null,function*(){let t;try{t=yield e()}catch(n){if(e===ME)return e===e8&&(NU=!0,(function(i){BU||(BU=!0,console.warn('[markstream-vue] Optional dependency "@terrastruct/d2" is not installed. D2 blocks will render as source.',i))})(n)),null;throw n}finally{e===e8&&(t8=null)}return e!==e8?null:t?(X5=(function(n){var i;if(!n)return n;if(n.D2&&typeof n.D2=="function")return n.D2;if(n.default&&n.default.D2&&typeof n.default.D2=="function")return n.default.D2;const o=(i=n.default)!=null?i:n;return typeof o=="function"?o:o?.D2&&typeof o.D2=="function"?o.D2:o})(t),X5):null}),t8):null})}let n8=null,Zae=null,i8=null;function mrn(){return typeof Zae=="function"}function grn(){return us(this,null,function*(){if(n8)return n8;const e=Zae;return e?i8||(i8=us(null,null,function*(){const t=yield e(),n=(function(i){var o,s,r;if(!i)return null;const a=(o=i.default)!=null?o:i,l=typeof a=="function"&&typeof((s=a.prototype)==null?void 0:s.render)=="function"?a:(r=i.Infographic)!=null?r:a?.Infographic;return typeof l=="function"?l:null})(t);return n?(n8=n,n8):null}).finally(()=>{i8=null}),i8):null})}const vrn=Symbol("markstreamLanguageIconResolver");let oet=null;function yrn(){return oet}function brn(e){return us(this,null,function*(){})}function set(e){return new Worker("/assets/katexRenderer.worker-CO_gEm4q.js",{type:"module",name:e?.name})}function ret(e){return new Worker("/assets/mermaidParser.worker-BFSlSHEW.js",{type:"module",name:e?.name})}let zU=!1;function Gae(){zU||typeof Worker>"u"||(zU=!0,VQe(new set),PYe(new ret))}Gae();const Qae=["light","dark","system"],aet=["small","medium","large","xlarge"],y_="medium",Yae="kimi-web.color-scheme",EE="kimi-web.font-scale",HU="kimi-web.ui-font-size";function LE(e){try{return globalThis.localStorage.getItem(e)}catch{return null}}function Q$(e,t){try{globalThis.localStorage.setItem(e,t)}catch{}}function cet(e){try{globalThis.localStorage.removeItem(e)}catch{}}function uet(){const e=LE(Yae);return e&&Qae.includes(e)?e:"system"}const o8={light:"#ffffff",dark:"#121212"};function det(e){if(typeof document>"u"||!document.documentElement)return;document.documentElement.dataset.colorScheme=e;const t=document.querySelectorAll('meta[name="theme-color"]');if(t.length===0)return;const n=e==="dark"?o8.dark:e==="light"?o8.light:null;t.forEach(i=>{const s=(i.getAttribute("media")??"").includes("dark")?o8.dark:o8.light;i.setAttribute("content",n??s)})}function Jae(e){return aet.includes(e)}function fet(e){return e<=13?"small":e<=15?"medium":e<=17?"large":"xlarge"}function het(){const e=LE(EE);if(e==="xxlarge")return"xlarge";if(e!==null)return Jae(e)?e:y_;const t=LE(HU);if(t===null)return y_;const n=Number(t),i=Number.isFinite(n)?fet(n):y_;return Q$(EE,i),cet(HU),i}function pet(e){typeof document>"u"||!document.documentElement||(document.documentElement.dataset.fontScale=e)}const Y$=Z(uet()),J$=Z(het());let jU=!1;function met(){jU||(jU=!0,Fe(Y$,det,{immediate:!0}),Fe(J$,pet,{immediate:!0}))}function get(e){Qae.includes(e)&&(Y$.value=e,Q$(Yae,e))}function vet(e){Jae(e)&&(J$.value=e,Q$(EE,e))}function Lm(){return met(),{colorScheme:Y$,fontScale:J$,setColorScheme:get,setFontScale:vet}}const s8=Z(!1);let WU=!1;function b_(){const e=document.documentElement.dataset.colorScheme;return e==="dark"?!0:e==="light"?!1:window.matchMedia("(prefers-color-scheme: dark)").matches}function Xae(){return!WU&&typeof window<"u"&&typeof document<"u"&&(WU=!0,s8.value=b_(),new MutationObserver(()=>{s8.value=b_()}).observe(document.documentElement,{attributes:!0,attributeFilter:["data-color-scheme"]}),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{s8.value=b_()})),s8}const ele="kimi-web.sidebar-multi-tab";function yet(e){try{return globalThis.localStorage.getItem(e)}catch{return null}}function bet(e,t){try{globalThis.localStorage.setItem(e,t)}catch{}}function ket(){return yet(ele)==="1"}const tle=Z(ket());function wet(e){tle.value=e,bet(ele,e?"1":"0")}function Rm(){return{sidebarTabs:tle,setSidebarTabs:wet}}function Vg(e){try{return decodeURIComponent(e)}catch{return e}}function wy(e,t,n){if(t===void 0||t.length===0||e.length===0)return[{text:e,hit:!1}];const i=new Set;for(const a of t){const l=a-n;l>=0&&l{const i=e();if(!i)return;const o=i.ownerDocument?.getSelection?.()??document.getSelection(),s=o&&o.rangeCount>0&&!o.isCollapsed?o.getRangeAt(0):null;let r=!1;if(s&&i instanceof Node)try{r=s.intersectsNode(i)}catch{r=!1}if(!s||!r){for(const l of t)l.classList.remove("pill-in-selection");t=new Set;return}const a=new Set;for(const l of i.querySelectorAll(".mention-pill, .attachment-pill, .quote-pill"))try{s.intersectsNode(l)&&a.add(l)}catch{}for(const l of a)t.has(l)||l.classList.add("pill-in-selection");for(const l of t)a.has(l)||l.classList.remove("pill-in-selection");t=a};return document.addEventListener("selectionchange",n),()=>document.removeEventListener("selectionchange",n)}function ile(e){const t=X1(e.args??"").filter(n=>n.attrs.kind==="skill");return t.length===1&&t[0].attrs.name===e.name}function ole(e,t){if(ile(e))return t.revivePill?e.args??"":null;if(e.name.includes(" "))return null;const n=e.args??"";return`/skill:${e.name}${n.length>0?` ${n}`:""}`}function Cet(e,t){return ole(e,t)!==null}function Aet(e,t){const n=new Map;for(const o of X1(t))o.attrs.kind==="skill"&&n.set(o.attrs.name,(n.get(o.attrs.name)??0)+1);const i=[];for(const o of e){const s=n.get(o.name)??0;s>0?n.set(o.name,s-1):i.push(o)}return i}function sle(e,t,n){if(!n.revivePill||e.some(a=>(a.args??"")!=="")||new Set(e.map(a=>a.name)).size!==e.length||[...rle(t).values()].reduce((a,l)=>a+l,0)<2||A6(t)!==null)return null;const o=e.map(a=>a.name),s=[],r=new Set;for(const a of X1(t))a.attrs.kind!=="skill"||r.has(a.attrs.name)||(r.add(a.attrs.name),s.push(a.attrs.name));return s.length!==o.length||s.some((a,l)=>a!==o[l])?null:xet(e,t)?t:null}function xet(e,t){if(e.length===0||Aet(e,t).length>0)return!1;const n=new Set(e.map(i=>i.name));for(const i of rle(t).keys())if(!n.has(i))return!1;return!0}function _et(e,t,n){return sle(e,t,n)!==null}function rle(e){const t=new Map;for(const n of X1(e))n.attrs.kind==="skill"&&t.set(n.attrs.name,(t.get(n.attrs.name)??0)+1);return t}function ale(e,t){const n=X1(t).filter(c=>c.attrs.kind==="skill"),i=[],o=new Map,s=e.map(c=>{const u=n.filter(h=>h.attrs.name===c.name),d=o.get(c.name)??0,f=u[d];return o.set(c.name,d+1),f});for(const[c,u]of e.entries()){const d=s[c];if(d===void 0)continue;const f=u.args??"";if(f==="")continue;const h=d===void 0?t:t.slice(d.end,n[n.indexOf(d)+1]?.start??t.length),m=X1(f).length>0,g=m?t.slice(d.end):qU(h),y=m?f:qU(f);Iet(g,y)||i.push({at:d.end,text:` ${f}`})}const r=new Map;for(const[c,u]of e.entries()){if(s[c]!==void 0)continue;const f=s.slice(c+1).find(g=>g!==void 0)?.start??(n.length===0?0:t.length),h=fv({kind:"skill",name:u.name,path:""}),m=u.args?`${h} ${u.args}`:h;r.set(f,[...r.get(f)??[],m])}const a=[];for(const[c,u]of r){const d=u.join(" ");c===0?a.push({at:c,text:`${d}${t?" ":""}`}):c===t.length?a.push({at:c,text:`${/\s$/u.test(t)?"":" "}${d}`}):a.push({at:c,text:`${d} `})}a.push(...i);let l=t;for(const c of a.toSorted((u,d)=>d.at-u.at))l=`${l.slice(0,c.at)}${c.text}${l.slice(c.at)}`;return l}function Iet(e,t){const n=e.trimStart();return n.startsWith(t)?n.length===t.length||/\s$/u.test(t)?!0:!/[\p{L}\p{N}_]/u.test(n.slice(t.length,t.length+1)):!1}function qU(e){let t=e;for(const n of X1(e).toReversed())t=`${t.slice(0,n.start)}${n.attrs.name}${t.slice(n.end)}`;return t}const lle=["cjs","css","csv","gif","htm","html","jpeg","jpg","js","json","jsx","log","md","mjs","pdf","png","scss","svg","ts","tsx","txt","vue","webp","xml","yaml","yml"],Tet=new Set(["AGENTS.md","CHANGELOG.md","Dockerfile","LICENSE","Makefile","README.md","package.json","pnpm-lock.yaml","pnpm-workspace.yaml","tsconfig.json","vite.config.ts"]),RE=[...lle].sort((e,t)=>t.length-e.length).join("|"),r8=new RegExp([String.raw`(?:^|[\s([{"'`+"`"+String.raw`])`,String.raw`(`,String.raw`(?:~|\.{1,2}|/)?(?:[A-Za-z0-9_.@+()[\]-]+/)+[A-Za-z0-9_.@+()[\]-]+(?:\.(?:${RE}))?`,String.raw`|`,String.raw`[A-Za-z0-9_.@+()[\]-]+\.(?:${RE})`,String.raw`)`,String.raw`(?:#L?(\d+)|:(\d+))?`,String.raw`(?=$|[\s)"'\]}>.,;!?,。;!?)])`].join(""),"iy"),cle=/[),.;!?,。;!?)]+$/;function Met(e){return e.startsWith("~")||N0(e)?!1:!e.replace(/\\/g,"/").split("/").includes("..")}function Eet(e){const t=e.toLowerCase();return lle.some(n=>t.endsWith(`.${n}`))}function Let(e){const t=new Map,n=new RegExp(String.raw`\b(?:path|src)=["'](\/[^"']+\.(?:${RE}))["']`,"gi");let i;for(;(i=n.exec(e))!==null;){const o=i[1];if(!o)continue;const s=o.split("/").pop();s&&t.set(s,o)}return t}function Ret(e,t={}){const n=e.trim();if(!n||/^[a-z][a-z0-9+.-]*:\/\//i.test(n))return null;const i=n.match(/^(.*?)(?:#L?(\d+)|:(\d+))?$/i);if(!i)return null;let o=(i[1]??"").replace(cle,"");if(!o)return null;const s=o.split("/").pop()??o,r=o.includes("/"),a=Tet.has(s),l=Eet(s);if(r&&!a&&!l)return null;if(!r&&!a){const d=t.aliases?.get(s);if(!d)return null;o=d}const c=i[2]??i[3],u=c?Number(c):void 0;return{path:o,line:u!==void 0&&Number.isFinite(u)&&u>0?u:void 0}}function Pet(e,t={}){const n=[];let i=0;for(const o of e.matchAll(/~?\/?[A-Za-z0-9_.@+()[\]-]+(?:\/[A-Za-z0-9_.@+()[\]-]+)*/g)){const s=Math.max(o.index,i);if(s>=o.index+o[0].length)continue;if(s===0||/[\s([{"'`]/.test(e[s-1]))r8.lastIndex=Math.max(0,s-1);else{const y=o[0].slice(s-o.index).search(/[([]/);if(y===-1)continue;r8.lastIndex=s+y}const r=r8.exec(e);if(r===null)continue;i=r8.lastIndex;const a=r[0]??"",l=r[1]??"",c=a.indexOf(l);if(c<0)continue;const u=r[2]??r[3];let d=l+(u?a.slice(c+l.length):"");d=d.replace(cle,"");const h=Ret(d,t);if(!h)continue;const m=r.index+c,g=m+d.length;n.push({...h,start:m,end:g,text:d})}return n}const $et=/^---[ \t]*$/,Oet=/^---[ \t]*(?:\r\n|\n)/;function Fet(e){const t=Oet.exec(e);if(t===null)return{frontmatter:null,body:e};let n=t[0].length;const i=n;for(;n<=e.length;){let o=e.indexOf(` +`,n);o===-1&&(o=e.length);let s=e.slice(n,o);if(s.endsWith("\r")&&(s=s.slice(0,-1)),$et.test(s)){const r=e.slice(i,n);if(r==="")return{frontmatter:null,body:e};const a=o!!e&&typeof e=="object"&&e[Tu]===X$,fb=e=>!!e&&typeof e=="object"&&e[Tu]===PE,kv=e=>!!e&&typeof e=="object"&&e[Tu]===W1,gr=e=>!!e&&typeof e=="object"&&e[Tu]===ule,Jo=e=>!!e&&typeof e=="object"&&e[Tu]===ff,hb=e=>!!e&&typeof e=="object"&&e[Tu]===yv;function hr(e){if(e&&typeof e=="object")switch(e[Tu]){case W1:case yv:return!0}return!1}function mr(e){if(e&&typeof e=="object")switch(e[Tu]){case X$:case W1:case ff:case yv:return!0}return!1}const dle=e=>(Jo(e)||hr(e))&&!!e.anchor,c0=Symbol("break visit"),Det=Symbol("skip children"),e9=Symbol("remove node");function wv(e,t){const n=Net(t);fb(e)?Ug(null,e.contents,n,Object.freeze([e]))===e9&&(e.contents=null):Ug(null,e,n,Object.freeze([]))}wv.BREAK=c0;wv.SKIP=Det;wv.REMOVE=e9;function Ug(e,t,n,i){const o=Bet(e,t,n,i);if(mr(o)||gr(o))return zet(e,i,o),Ug(e,o,n,i);if(typeof o!="symbol"){if(hr(t)){i=Object.freeze(i.concat(t));for(let s=0;se.replace(/[!,[\]{}]/g,t=>Het[t]);class al{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},al.defaultYaml,t),this.tags=Object.assign({},al.defaultTags,n)}clone(){const t=new al(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){const t=new al(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:al.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},al.defaultTags);break}return t}add(t,n){this.atNextDocument&&(this.yaml={explicit:al.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},al.defaultTags),this.atNextDocument=!1);const i=t.trim().split(/[ \t]+/),o=i.shift();switch(o){case"%TAG":{if(i.length!==2&&(n(0,"%TAG directive should contain exactly two parts"),i.length<2))return!1;const[s,r]=i;return this.tags[s]=r,!0}case"%YAML":{if(this.yaml.explicit=!0,i.length!==1)return n(0,"%YAML directive should contain exactly one part"),!1;const[s]=i;if(s==="1.1"||s==="1.2")return this.yaml.version=s,!0;{const r=/^\d+\.\d+$/.test(s);return n(6,`Unsupported YAML version ${s}`,r),!1}}default:return n(0,`Unknown directive ${o}`,!0),!1}}tagName(t,n){if(t==="!")return"!";if(t[0]!=="!")return n(`Not a valid tag: ${t}`),null;if(t[1]==="<"){const r=t.slice(2,-1);return r==="!"||r==="!!"?(n(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&n("Verbatim tags must end with a >"),r)}const[,i,o]=t.match(/^(.*!)([^!]*)$/s);o||n(`The ${t} tag has no suffix`);const s=this.tags[i];if(s)try{return s+decodeURIComponent(o)}catch(r){return n(String(r)),null}return i==="!"?t:(n(`Could not resolve tag: ${t}`),null)}tagString(t){for(const[n,i]of Object.entries(this.tags))if(t.startsWith(i))return n+jet(t.substring(i.length));return t[0]==="!"?t:`!<${t}>`}toString(t){const n=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],i=Object.entries(this.tags);let o;if(t&&i.length>0&&mr(t.contents)){const s={};wv(t.contents,(r,a)=>{mr(a)&&a.tag&&(s[a.tag]=!0)}),o=Object.keys(s)}else o=[];for(const[s,r]of i)s==="!!"&&r==="tag:yaml.org,2002:"||(!t||o.some(a=>a.startsWith(r)))&&n.push(`%TAG ${s} ${r}`);return n.join(` +`)}}al.defaultYaml={explicit:!1,version:"1.2"};al.defaultTags={"!!":"tag:yaml.org,2002:"};function fle(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){const n=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw new Error(n)}return!0}function hle(e){const t=new Set;return wv(e,{Value(n,i){i.anchor&&t.add(i.anchor)}}),t}function ple(e,t){for(let n=1;;++n){const i=`${e}${n}`;if(!t.has(i))return i}}function Wet(e,t){const n=[],i=new Map;let o=null;return{onAnchor:s=>{n.push(s),o??(o=hle(e));const r=ple(t,o);return o.add(r),r},setAnchors:()=>{for(const s of n){const r=i.get(s);if(typeof r=="object"&&r.anchor&&(Jo(r.node)||hr(r.node)))r.node.anchor=r.anchor;else{const a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=s,a}}},sourceObjects:i}}function Kg(e,t,n,i){if(i&&typeof i=="object")if(Array.isArray(i))for(let o=0,s=i.length;oCu(i,String(o),n));if(e&&typeof e.toJSON=="function"){if(!n||!dle(e))return e.toJSON(t,n);const i={aliasCount:0,count:1,res:void 0};n.anchors.set(e,i),n.onCreate=s=>{i.res=s,delete n.onCreate};const o=e.toJSON(t,n);return n.onCreate&&n.onCreate(o),o}return typeof e=="bigint"&&!n?.keep?Number(e):e}class eO{constructor(t){Object.defineProperty(this,Tu,{value:t})}clone(){const t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(t.range=this.range.slice()),t}toJS(t,{mapAsMap:n,maxAliasCount:i,onAnchor:o,reviver:s}={}){if(!fb(t))throw new TypeError("A document argument is required");const r={anchors:new Map,doc:t,keep:!0,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},a=Cu(this,"",r);if(typeof o=="function")for(const{count:l,res:c}of r.anchors.values())o(c,l);return typeof s=="function"?Kg(s,{"":a},"",a):a}}class tO extends eO{constructor(t){super(X$),this.source=t,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(t,n){if(n?.maxAliasCount===0)throw new ReferenceError("Alias resolution is disabled");let i;n?.aliasResolveCache?i=n.aliasResolveCache:(i=[],wv(t,{Node:(s,r)=>{(bv(r)||dle(r))&&i.push(r)}}),n&&(n.aliasResolveCache=i));let o;for(const s of i){if(s===this)break;s.anchor===this.source&&(o=s)}return o}toJSON(t,n){if(!n)return{source:this.source};const{anchors:i,doc:o,maxAliasCount:s}=n,r=this.resolve(o,n);if(!r){const l=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(l)}let a=i.get(r);if(a||(Cu(r,null,n),a=i.get(r)),a?.res===void 0){const l="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(l)}if(s>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=xk(o,r,i)),a.count*a.aliasCount>s)){const l="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(l)}return a.res}toString(t,n,i){const o=`*${this.source}`;if(t){if(fle(this.source),t.options.verifyAliasOrder&&!t.anchors.has(this.source)){const s=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(s)}if(t.implicitKey)return`${o} `}return o}}function xk(e,t,n){if(bv(t)){const i=t.resolve(e),o=n&&i&&n.get(i);return o?o.count*o.aliasCount:0}else if(hr(t)){let i=0;for(const o of t.items){const s=xk(e,o,n);s>i&&(i=s)}return i}else if(gr(t)){const i=xk(e,t.key,n),o=xk(e,t.value,n);return Math.max(i,o)}return 1}const mle=e=>!e||typeof e!="function"&&typeof e!="object";class Fi extends eO{constructor(t){super(ff),this.value=t}toJSON(t,n){return n?.keep?this.value:Cu(this.value,t,n)}toString(){return String(this.value)}}Fi.BLOCK_FOLDED="BLOCK_FOLDED";Fi.BLOCK_LITERAL="BLOCK_LITERAL";Fi.PLAIN="PLAIN";Fi.QUOTE_DOUBLE="QUOTE_DOUBLE";Fi.QUOTE_SINGLE="QUOTE_SINGLE";const qet="tag:yaml.org,2002:";function Vet(e,t,n){if(t){const i=n.filter(s=>s.tag===t),o=i.find(s=>!s.format)??i[0];if(!o)throw new Error(`Tag ${t} not found`);return o}return n.find(i=>i.identify?.(e)&&!i.format)}function d3(e,t,n){if(fb(e)&&(e=e.contents),mr(e))return e;if(gr(e)){const d=n.schema[W1].createNode?.(n.schema,null,n);return d.items.push(e),d}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<"u"&&e instanceof BigInt)&&(e=e.valueOf());const{aliasDuplicateObjects:i,onAnchor:o,onTagObj:s,schema:r,sourceObjects:a}=n;let l;if(i&&e&&typeof e=="object"){if(l=a.get(e),l)return l.anchor??(l.anchor=o(e)),new tO(l.anchor);l={anchor:null,node:null},a.set(e,l)}t?.startsWith("!!")&&(t=qet+t.slice(2));let c=Vet(e,t,r.tags);if(!c){if(e&&typeof e.toJSON=="function"&&(e=e.toJSON()),!e||typeof e!="object"){const d=new Fi(e);return l&&(l.node=d),d}c=e instanceof Map?r[W1]:Symbol.iterator in Object(e)?r[yv]:r[W1]}s&&(s(c),delete n.onTagObj);const u=c?.createNode?c.createNode(n.schema,e,n):typeof c?.nodeClass?.from=="function"?c.nodeClass.from(n.schema,e,n):new Fi(e);return t?u.tag=t:c.default||(u.tag=c.tag),l&&(l.node=u),u}function qw(e,t,n){let i=n;for(let o=t.length-1;o>=0;--o){const s=t[o];if(typeof s=="number"&&Number.isInteger(s)&&s>=0){const r=[];r[s]=i,i=r}else i=new Map([[s,i]])}return d3(i,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}const t4=e=>e==null||typeof e=="object"&&!!e[Symbol.iterator]().next().done;class gle extends eO{constructor(t,n){super(t),Object.defineProperty(this,"schema",{value:n,configurable:!0,enumerable:!1,writable:!0})}clone(t){const n=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return t&&(n.schema=t),n.items=n.items.map(i=>mr(i)||gr(i)?i.clone(t):i),this.range&&(n.range=this.range.slice()),n}addIn(t,n){if(t4(t))this.add(n);else{const[i,...o]=t,s=this.get(i,!0);if(hr(s))s.addIn(o,n);else if(s===void 0&&this.schema)this.set(i,qw(this.schema,o,n));else throw new Error(`Expected YAML collection at ${i}. Remaining path: ${o}`)}}deleteIn(t){const[n,...i]=t;if(i.length===0)return this.delete(n);const o=this.get(n,!0);if(hr(o))return o.deleteIn(i);throw new Error(`Expected YAML collection at ${n}. Remaining path: ${i}`)}getIn(t,n){const[i,...o]=t,s=this.get(i,!0);return o.length===0?!n&&Jo(s)?s.value:s:hr(s)?s.getIn(o,n):void 0}hasAllNullValues(t){return this.items.every(n=>{if(!gr(n))return!1;const i=n.value;return i==null||t&&Jo(i)&&i.value==null&&!i.commentBefore&&!i.comment&&!i.tag})}hasIn(t){const[n,...i]=t;if(i.length===0)return this.has(n);const o=this.get(n,!0);return hr(o)?o.hasIn(i):!1}setIn(t,n){const[i,...o]=t;if(o.length===0)this.set(i,n);else{const s=this.get(i,!0);if(hr(s))s.setIn(o,n);else if(s===void 0&&this.schema)this.set(i,qw(this.schema,o,n));else throw new Error(`Expected YAML collection at ${i}. Remaining path: ${o}`)}}}const Uet=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function eh(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}const E0=(e,t,n)=>e.endsWith(` +`)?eh(n,t):n.includes(` +`)?` +`+eh(n,t):(e.endsWith(" ")?"":" ")+n,vle="flow",$E="block",Sk="quoted";function qC(e,t,n="flow",{indentAtStart:i,lineWidth:o=80,minContentWidth:s=20,onFold:r,onOverflow:a}={}){if(!o||o<0)return e;oo-Math.max(2,s)?c.push(0):d=o-i);let f,h,m=!1,g=-1,y=-1,v=-1;n===$E&&(g=VU(e,g,t.length),g!==-1&&(d=g+l));for(let w;w=e[g+=1];){if(n===Sk&&w==="\\"){switch(y=g,e[g+1]){case"x":g+=3;break;case"u":g+=5;break;case"U":g+=9;break;default:g+=1}v=g}if(w===` +`)n===$E&&(g=VU(e,g,t.length)),d=g+t.length+l,f=void 0;else{if(w===" "&&h&&h!==" "&&h!==` +`&&h!==" "){const C=e[g+1];C&&C!==" "&&C!==` +`&&C!==" "&&(f=g)}if(g>=d)if(f)c.push(f),d=f+l,f=void 0;else if(n===Sk){for(;h===" "||h===" ";)h=w,w=e[g+=1],m=!0;const C=g>v+1?g-2:y-1;if(u[C])return e;c.push(C),u[C]=!0,d=C+l,f=void 0}else m=!0}h=w}if(m&&a&&a(),c.length===0)return e;r&&r();let k=e.slice(0,c[0]);for(let w=0;w({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),UC=e=>/^(%|---|\.\.\.)/m.test(e);function Ket(e,t,n){if(!t||t<0)return!1;const i=t-n,o=e.length;if(o<=i)return!1;for(let s=0,r=0;si)return!0;if(r=s+1,o-r<=i)return!1}return!0}function t9(e,t){const n=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return n;const{implicitKey:i}=t,o=t.options.doubleQuotedMinMultiLineLength,s=t.indent||(UC(e)?" ":"");let r="",a=0;for(let l=0,c=n[l];c;c=n[++l])if(c===" "&&n[l+1]==="\\"&&n[l+2]==="n"&&(r+=n.slice(a,l)+"\\ ",l+=1,a=l,c="\\"),c==="\\")switch(n[l+1]){case"u":{r+=n.slice(a,l);const u=n.substr(l+2,4);switch(u){case"0000":r+="\\0";break;case"0007":r+="\\a";break;case"000b":r+="\\v";break;case"001b":r+="\\e";break;case"0085":r+="\\N";break;case"00a0":r+="\\_";break;case"2028":r+="\\L";break;case"2029":r+="\\P";break;default:u.substr(0,2)==="00"?r+="\\x"+u.substr(2):r+=n.substr(l,6)}l+=5,a=l+1}break;case"n":if(i||n[l+2]==='"'||n.length +`;let d,f;for(f=n.length;f>0;--f){const x=n[f-1];if(x!==` +`&&x!==" "&&x!==" ")break}let h=n.substring(f);const m=h.indexOf(` +`);m===-1?d="-":n===h||m!==h.length-1?(d="+",s&&s()):d="",h&&(n=n.slice(0,-h.length),h[h.length-1]===` +`&&(h=h.slice(0,-1)),h=h.replace(FE,`$&${c}`));let g=!1,y,v=-1;for(y=0;y{S=!0});const _=qC(`${k}${x}${h}`,c,$E,M);if(!S)return`>${C} +${c}${_}`}return n=n.replace(/\n+/g,`$&${c}`),`|${C} +${c}${k}${n}${h}`}function Zet(e,t,n,i){const{type:o,value:s}=e,{actualString:r,implicitKey:a,indent:l,indentStep:c,inFlow:u}=t;if(a&&s.includes(` +`)||u&&/[[\]{},]/.test(s))return Zg(s,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(s))return a||u||!s.includes(` +`)?Zg(s,t):_k(e,t,n,i);if(!a&&!u&&o!==Fi.PLAIN&&s.includes(` +`))return _k(e,t,n,i);if(UC(s)){if(l==="")return t.forceBlockIndent=!0,_k(e,t,n,i);if(a&&l===c)return Zg(s,t)}const d=s.replace(/\n+/g,`$& +${l}`);if(r){const f=g=>g.default&&g.tag!=="tag:yaml.org,2002:str"&&g.test?.test(d),{compat:h,tags:m}=t.doc.schema;if(m.some(f)||h?.some(f))return Zg(s,t)}return a?d:qC(d,l,vle,VC(t,!1))}function nO(e,t,n,i){const{implicitKey:o,inFlow:s}=t,r=typeof e.value=="string"?e:Object.assign({},e,{value:String(e.value)});let{type:a}=e;a!==Fi.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(r.value)&&(a=Fi.QUOTE_DOUBLE);const l=u=>{switch(u){case Fi.BLOCK_FOLDED:case Fi.BLOCK_LITERAL:return o||s?Zg(r.value,t):_k(r,t,n,i);case Fi.QUOTE_DOUBLE:return t9(r.value,t);case Fi.QUOTE_SINGLE:return OE(r.value,t);case Fi.PLAIN:return Zet(r,t,n,i);default:return null}};let c=l(a);if(c===null){const{defaultKeyType:u,defaultStringType:d}=t.options,f=o&&u||d;if(c=l(f),c===null)throw new Error(`Unsupported default string type ${f}`)}return c}function yle(e,t){const n=Object.assign({blockQuote:!0,commentString:Uet,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},e.schema.toStringOptions,t);let i;switch(n.collectionStyle){case"block":i=!1;break;case"flow":i=!0;break;default:i=null}return{anchors:new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?" ":"",indent:"",indentStep:typeof n.indent=="number"?" ".repeat(n.indent):" ",inFlow:i,options:n}}function Get(e,t){if(t.tag){const o=e.filter(s=>s.tag===t.tag);if(o.length>0)return o.find(s=>s.format===t.format)??o[0]}let n,i;if(Jo(t)){i=t.value;let o=e.filter(s=>s.identify?.(i));if(o.length>1){const s=o.filter(r=>r.test);s.length>0&&(o=s)}n=o.find(s=>s.format===t.format)??o.find(s=>!s.format)}else i=t,n=e.find(o=>o.nodeClass&&i instanceof o.nodeClass);if(!n){const o=i?.constructor?.name??(i===null?"null":typeof i);throw new Error(`Tag not resolved for ${o} value`)}return n}function Qet(e,t,{anchors:n,doc:i}){if(!i.directives)return"";const o=[],s=(Jo(e)||hr(e))&&e.anchor;s&&fle(s)&&(n.add(s),o.push(`&${s}`));const r=e.tag??(t.default?null:t.tag);return r&&o.push(i.directives.tagString(r)),o.join(" ")}function Y2(e,t,n,i){if(gr(e))return e.toString(t,n,i);if(bv(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e))throw new TypeError("Cannot stringify circular structure without alias nodes");t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let o;const s=mr(e)?e:t.doc.createNode(e,{onTagObj:l=>o=l});o??(o=Get(t.doc.schema.tags,s));const r=Qet(s,o,t);r.length>0&&(t.indentAtStart=(t.indentAtStart??0)+r.length+1);const a=typeof o.stringify=="function"?o.stringify(s,t,n,i):Jo(s)?nO(s,t,n,i):s.toString(t,n,i);return r?Jo(s)||a[0]==="{"||a[0]==="["?`${r} ${a}`:`${r} +${t.indent}${a}`:a}function Yet({key:e,value:t},n,i,o){const{allNullValues:s,doc:r,indent:a,indentStep:l,options:{commentString:c,indentSeq:u,simpleKeys:d}}=n;let f=mr(e)&&e.comment||null;if(d){if(f)throw new Error("With simple keys, key nodes cannot have comments");if(hr(e)||!mr(e)&&typeof e=="object"){const M="With simple keys, collection cannot be used as a key value";throw new Error(M)}}let h=!d&&(!e||f&&t==null&&!n.inFlow||hr(e)||(Jo(e)?e.type===Fi.BLOCK_FOLDED||e.type===Fi.BLOCK_LITERAL:typeof e=="object"));n=Object.assign({},n,{allNullValues:!1,implicitKey:!h&&(d||!s),indent:a+l});let m=!1,g=!1,y=Y2(e,n,()=>m=!0,()=>g=!0);if(!h&&!n.inFlow&&y.length>1024){if(d)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");h=!0}if(n.inFlow){if(s||t==null)return m&&i&&i(),y===""?"?":h?`? ${y}`:y}else if(s&&!d||t==null&&h)return y=`? ${y}`,f&&!m?y+=E0(y,n.indent,c(f)):g&&o&&o(),y;m&&(f=null),h?(f&&(y+=E0(y,n.indent,c(f))),y=`? ${y} +${a}:`):(y=`${y}:`,f&&(y+=E0(y,n.indent,c(f))));let v,k,w;mr(t)?(v=!!t.spaceBefore,k=t.commentBefore,w=t.comment):(v=!1,k=null,w=null,t&&typeof t=="object"&&(t=r.createNode(t))),n.implicitKey=!1,!h&&!f&&Jo(t)&&(n.indentAtStart=y.length+1),g=!1,!u&&l.length>=2&&!n.inFlow&&!h&&hb(t)&&!t.flow&&!t.tag&&!t.anchor&&(n.indent=n.indent.substring(2));let C=!1;const x=Y2(t,n,()=>C=!0,()=>g=!0);let S=" ";if(f||v||k){if(S=v?` +`:"",k){const M=c(k);S+=` +${eh(M,n.indent)}`}x===""&&!n.inFlow?S===` +`&&w&&(S=` + +`):S+=` +${n.indent}`}else if(!h&&hr(t)){const M=x[0],_=x.indexOf(` +`),T=_!==-1,E=n.inFlow??t.flow??t.items.length===0;if(T||!E){let L=!1;if(T&&(M==="&"||M==="!")){let P=x.indexOf(" ");M==="&"&&P!==-1&&P<_&&x[P+1]==="!"&&(P=x.indexOf(" ",P+1)),(P===-1||_e===a8||typeof e=="symbol"&&e.description===a8,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Fi(Symbol(a8)),{addToJSMap:ble}),stringify:()=>a8},Xet=(e,t)=>(lh.identify(t)||Jo(t)&&(!t.type||t.type===Fi.PLAIN)&&lh.identify(t.value))&&e?.doc.schema.tags.some(n=>n.tag===lh.tag&&n.default);function ble(e,t,n){const i=kle(e,n);if(hb(i))for(const o of i.items)k_(e,t,o);else if(Array.isArray(i))for(const o of i)k_(e,t,o);else k_(e,t,i)}function k_(e,t,n){const i=kle(e,n);if(!kv(i))throw new Error("Merge sources must be maps or map aliases");const o=i.toJSON(null,e,Map);for(const[s,r]of o)t instanceof Map?t.has(s)||t.set(s,r):t instanceof Set?t.add(s):Object.prototype.hasOwnProperty.call(t,s)||Object.defineProperty(t,s,{value:r,writable:!0,enumerable:!0,configurable:!0});return t}function kle(e,t){return e&&bv(t)?t.resolve(e.doc,e):t}function wle(e,t,{key:n,value:i}){if(mr(n)&&n.addToJSMap)n.addToJSMap(e,t,i);else if(Xet(e,n))ble(e,t,i);else{const o=Cu(n,"",e);if(t instanceof Map)t.set(o,Cu(i,o,e));else if(t instanceof Set)t.add(o);else{const s=ett(n,o,e),r=Cu(i,s,e);s in t?Object.defineProperty(t,s,{value:r,writable:!0,enumerable:!0,configurable:!0}):t[s]=r}}return t}function ett(e,t,n){if(t===null)return"";if(typeof t!="object")return String(t);if(mr(e)&&n?.doc){const i=yle(n.doc,{});i.anchors=new Set;for(const s of n.anchors.keys())i.anchors.add(s.anchor);i.inFlow=!0,i.inStringifyKey=!0;const o=e.toString(i);if(!n.mapKeyWarned){let s=JSON.stringify(o);s.length>40&&(s=s.substring(0,36)+'..."'),Jet(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${s}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return o}return JSON.stringify(t)}function iO(e,t,n){const i=d3(e,void 0,n),o=d3(t,void 0,n);return new Cl(i,o)}class Cl{constructor(t,n=null){Object.defineProperty(this,Tu,{value:ule}),this.key=t,this.value=n}clone(t){let{key:n,value:i}=this;return mr(n)&&(n=n.clone(t)),mr(i)&&(i=i.clone(t)),new Cl(n,i)}toJSON(t,n){const i=n?.mapAsMap?new Map:{};return wle(n,i,this)}toString(t,n,i){return t?.doc?Yet(this,t,n,i):JSON.stringify(this)}}function Cle(e,t,n){return(t.inFlow??e.flow?ntt:ttt)(e,t,n)}function ttt({comment:e,items:t},n,{blockItemPrefix:i,flowChars:o,itemIndent:s,onChompKeep:r,onComment:a}){const{indent:l,options:{commentString:c}}=n,u=Object.assign({},n,{indent:s,type:null});let d=!1;const f=[];for(let m=0;my=null,()=>d=!0);y&&(v+=E0(v,s,c(y))),d&&y&&(d=!1),f.push(i+v)}let h;if(f.length===0)h=o.start+o.end;else{h=f[0];for(let m=1;my=null);c||(c=d.length>u||v.includes(` +`)),m0&&(c||(c=d.reduce((k,w)=>k+w.length+2,2)+(v.length+2)>t.options.lineWidth)),c&&(v+=",")),y&&(v+=E0(v,i,a(y))),d.push(v),u=d.length}const{start:f,end:h}=n;if(d.length===0)return f+h;if(!c){const m=d.reduce((g,y)=>g+y.length+2,2);c=t.options.lineWidth>0&&m>t.options.lineWidth}if(c){let m=f;for(const g of d)m+=g?` +${s}${o}${g}`:` +`;return`${m} +${o}${h}`}else return`${f}${r}${d.join(" ")}${r}${h}`}function Vw({indent:e,options:{commentString:t}},n,i,o){if(i&&o&&(i=i.replace(/^\n+/,"")),i){const s=eh(t(i),e);n.push(s.trimStart())}}function L0(e,t){const n=Jo(t)?t.value:t;for(const i of e)if(gr(i)&&(i.key===t||i.key===n||Jo(i.key)&&i.key.value===n))return i}class lu extends gle{static get tagName(){return"tag:yaml.org,2002:map"}constructor(t){super(W1,t),this.items=[]}static from(t,n,i){const{keepUndefined:o,replacer:s}=i,r=new this(t),a=(l,c)=>{if(typeof s=="function")c=s.call(n,l,c);else if(Array.isArray(s)&&!s.includes(l))return;(c!==void 0||o)&&r.items.push(iO(l,c,i))};if(n instanceof Map)for(const[l,c]of n)a(l,c);else if(n&&typeof n=="object")for(const l of Object.keys(n))a(l,n[l]);return typeof t.sortMapEntries=="function"&&r.items.sort(t.sortMapEntries),r}add(t,n){let i;gr(t)?i=t:!t||typeof t!="object"||!("key"in t)?i=new Cl(t,t?.value):i=new Cl(t.key,t.value);const o=L0(this.items,i.key),s=this.schema?.sortMapEntries;if(o){if(!n)throw new Error(`Key ${i.key} already set`);Jo(o.value)&&mle(i.value)?o.value.value=i.value:o.value=i.value}else if(s){const r=this.items.findIndex(a=>s(i,a)<0);r===-1?this.items.push(i):this.items.splice(r,0,i)}else this.items.push(i)}delete(t){const n=L0(this.items,t);return n?this.items.splice(this.items.indexOf(n),1).length>0:!1}get(t,n){const o=L0(this.items,t)?.value;return(!n&&Jo(o)?o.value:o)??void 0}has(t){return!!L0(this.items,t)}set(t,n){this.add(new Cl(t,n),!0)}toJSON(t,n,i){const o=i?new i:n?.mapAsMap?new Map:{};n?.onCreate&&n.onCreate(o);for(const s of this.items)wle(n,o,s);return o}toString(t,n,i){if(!t)return JSON.stringify(this);for(const o of this.items)if(!gr(o))throw new Error(`Map items must all be pairs; found ${JSON.stringify(o)} instead`);return!t.allNullValues&&this.hasAllNullValues(!1)&&(t=Object.assign({},t,{allNullValues:!0})),Cle(this,t,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:t.indent||"",onChompKeep:i,onComment:n})}}const Cv={collection:"map",default:!0,nodeClass:lu,tag:"tag:yaml.org,2002:map",resolve(e,t){return kv(e)||t("Expected a mapping for this tag"),e},createNode:(e,t,n)=>lu.from(e,t,n)};class vm extends gle{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(t){super(yv,t),this.items=[]}add(t){this.items.push(t)}delete(t){const n=l8(t);return typeof n!="number"?!1:this.items.splice(n,1).length>0}get(t,n){const i=l8(t);if(typeof i!="number")return;const o=this.items[i];return!n&&Jo(o)?o.value:o}has(t){const n=l8(t);return typeof n=="number"&&n=0?t:null}const Av={collection:"seq",default:!0,nodeClass:vm,tag:"tag:yaml.org,2002:seq",resolve(e,t){return hb(e)||t("Expected a sequence for this tag"),e},createNode:(e,t,n)=>vm.from(e,t,n)},KC={identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,n,i){return t=Object.assign({actualString:!0},t),nO(e,t,n,i)}},ZC={identify:e=>e==null,createNode:()=>new Fi(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Fi(null),stringify:({source:e},t)=>typeof e=="string"&&ZC.test.test(e)?e:t.options.nullStr},oO={identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new Fi(e[0]==="t"||e[0]==="T"),stringify({source:e,value:t},n){if(e&&oO.test.test(e)){const i=e[0]==="t"||e[0]==="T";if(t===i)return e}return t?n.options.trueStr:n.options.falseStr}};function fd({format:e,minFractionDigits:t,tag:n,value:i}){if(typeof i=="bigint")return String(i);const o=typeof i=="number"?i:Number(i);if(!isFinite(o))return isNaN(o)?".nan":o<0?"-.inf":".inf";let s=Object.is(i,-0)?"-0":JSON.stringify(i);if(!e&&t&&(!n||n==="tag:yaml.org,2002:float")&&/^-?\d/.test(s)&&!s.includes("e")){let r=s.indexOf(".");r<0&&(r=s.length,s+=".");let a=t-(s.length-r-1);for(;a-- >0;)s+="0"}return s}const Ale={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:fd},xle={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():fd(e)}},Sle={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){const t=new Fi(parseFloat(e)),n=e.indexOf(".");return n!==-1&&e[e.length-1]==="0"&&(t.minFractionDigits=e.length-n-1),t},stringify:fd},GC=e=>typeof e=="bigint"||Number.isInteger(e),sO=(e,t,n,{intAsBigInt:i})=>i?BigInt(e):parseInt(e.substring(t),n);function _le(e,t,n){const{value:i}=e;return GC(i)&&i>=0?n+i.toString(t):fd(e)}const Ile={identify:e=>GC(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,n)=>sO(e,2,8,n),stringify:e=>_le(e,8,"0o")},Tle={identify:GC,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>sO(e,0,10,n),stringify:fd},Mle={identify:e=>GC(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>sO(e,2,16,n),stringify:e=>_le(e,16,"0x")},itt=[Cv,Av,KC,ZC,oO,Ile,Tle,Mle,Ale,xle,Sle];function UU(e){return typeof e=="bigint"||Number.isInteger(e)}const c8=({value:e})=>JSON.stringify(e),ott=[{identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:c8},{identify:e=>e==null,createNode:()=>new Fi(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:c8},{identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:e=>e==="true",stringify:c8},{identify:UU,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>UU(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:c8}],stt={default:!0,tag:"",test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}},rtt=[Cv,Av].concat(ott,stt),rO={identify:e=>e instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(e,t){if(typeof atob=="function"){const n=atob(e.replace(/[\n\r]/g,"")),i=new Uint8Array(n.length);for(let o=0;o1&&t("Each pair must have its own sequence indicator");const o=i.items[0]||new Cl(new Fi(null));if(i.commentBefore&&(o.key.commentBefore=o.key.commentBefore?`${i.commentBefore} +${o.key.commentBefore}`:i.commentBefore),i.comment){const s=o.value??o.key;s.comment=s.comment?`${i.comment} +${s.comment}`:i.comment}i=o}e.items[n]=gr(i)?i:new Cl(i)}}else t("Expected a sequence for this tag");return e}function Lle(e,t,n){const{replacer:i}=n,o=new vm(e);o.tag="tag:yaml.org,2002:pairs";let s=0;if(t&&Symbol.iterator in Object(t))for(let r of t){typeof i=="function"&&(r=i.call(t,String(s++),r));let a,l;if(Array.isArray(r))if(r.length===2)a=r[0],l=r[1];else throw new TypeError(`Expected [key, value] tuple: ${r}`);else if(r&&r instanceof Object){const c=Object.keys(r);if(c.length===1)a=c[0],l=r[a];else throw new TypeError(`Expected tuple with one key, not ${c.length} keys`)}else a=r;o.items.push(iO(a,l,n))}return o}const aO={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Ele,createNode:Lle};class b2 extends vm{constructor(){super(),this.add=lu.prototype.add.bind(this),this.delete=lu.prototype.delete.bind(this),this.get=lu.prototype.get.bind(this),this.has=lu.prototype.has.bind(this),this.set=lu.prototype.set.bind(this),this.tag=b2.tag}toJSON(t,n){if(!n)return super.toJSON(t);const i=new Map;n?.onCreate&&n.onCreate(i);for(const o of this.items){let s,r;if(gr(o)?(s=Cu(o.key,"",n),r=Cu(o.value,s,n)):s=Cu(o,"",n),i.has(s))throw new Error("Ordered maps must not include duplicate keys");i.set(s,r)}return i}static from(t,n,i){const o=Lle(t,n,i),s=new this;return s.items=o.items,s}}b2.tag="tag:yaml.org,2002:omap";const lO={collection:"seq",identify:e=>e instanceof Map,nodeClass:b2,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,t){const n=Ele(e,t),i=[];for(const{key:o}of n.items)Jo(o)&&(i.includes(o.value)?t(`Ordered maps must not include duplicate keys: ${o.value}`):i.push(o.value));return Object.assign(new b2,n)},createNode:(e,t,n)=>b2.from(e,t,n)};function Rle({value:e,source:t},n){return t&&(e?Ple:$le).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}const Ple={identify:e=>e===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Fi(!0),stringify:Rle},$le={identify:e=>e===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Fi(!1),stringify:Rle},att={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:fd},ltt={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():fd(e)}},ctt={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){const t=new Fi(parseFloat(e.replace(/_/g,""))),n=e.indexOf(".");if(n!==-1){const i=e.substring(n+1).replace(/_/g,"");i[i.length-1]==="0"&&(t.minFractionDigits=i.length)}return t},stringify:fd},pb=e=>typeof e=="bigint"||Number.isInteger(e);function QC(e,t,n,{intAsBigInt:i}){const o=e[0];if((o==="-"||o==="+")&&(t+=1),e=e.substring(t).replace(/_/g,""),i){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}const r=BigInt(e);return o==="-"?BigInt(-1)*r:r}const s=parseInt(e,n);return o==="-"?-1*s:s}function cO(e,t,n){const{value:i}=e;if(pb(i)){const o=i.toString(t);return i<0?"-"+n+o.substr(1):n+o}return fd(e)}const utt={identify:pb,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>QC(e,2,2,n),stringify:e=>cO(e,2,"0b")},dtt={identify:pb,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>QC(e,1,8,n),stringify:e=>cO(e,8,"0")},ftt={identify:pb,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>QC(e,0,10,n),stringify:fd},htt={identify:pb,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>QC(e,2,16,n),stringify:e=>cO(e,16,"0x")};class k2 extends lu{constructor(t){super(t),this.tag=k2.tag}add(t){let n;gr(t)?n=t:t&&typeof t=="object"&&"key"in t&&"value"in t&&t.value===null?n=new Cl(t.key,null):n=new Cl(t,null),L0(this.items,n.key)||this.items.push(n)}get(t,n){const i=L0(this.items,t);return!n&&gr(i)?Jo(i.key)?i.key.value:i.key:i}set(t,n){if(typeof n!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof n}`);const i=L0(this.items,t);i&&!n?this.items.splice(this.items.indexOf(i),1):!i&&n&&this.items.push(new Cl(t))}toJSON(t,n){return super.toJSON(t,n,Set)}toString(t,n,i){if(!t)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},t,{allNullValues:!0}),n,i);throw new Error("Set items must all have null values")}static from(t,n,i){const{replacer:o}=i,s=new this(t);if(n&&Symbol.iterator in Object(n))for(let r of n)typeof o=="function"&&(r=o.call(n,r,r)),s.items.push(iO(r,null,i));return s}}k2.tag="tag:yaml.org,2002:set";const uO={collection:"map",identify:e=>e instanceof Set,nodeClass:k2,default:!1,tag:"tag:yaml.org,2002:set",createNode:(e,t,n)=>k2.from(e,t,n),resolve(e,t){if(kv(e)){if(e.hasAllNullValues(!0))return Object.assign(new k2,e);t("Set items must all have null values")}else t("Expected a mapping for this tag");return e}};function dO(e,t){const n=e[0],i=n==="-"||n==="+"?e.substring(1):e,o=r=>t?BigInt(r):Number(r),s=i.replace(/_/g,"").split(":").reduce((r,a)=>r*o(60)+o(a),o(0));return n==="-"?o(-1)*s:s}function Ole(e){let{value:t}=e,n=r=>r;if(typeof t=="bigint")n=r=>BigInt(r);else if(isNaN(t)||!isFinite(t))return fd(e);let i="";t<0&&(i="-",t*=n(-1));const o=n(60),s=[t%o];return t<60?s.unshift(0):(t=(t-s[0])/o,s.unshift(t%o),t>=60&&(t=(t-s[0])/o,s.unshift(t))),i+s.map(r=>String(r).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}const Fle={identify:e=>typeof e=="bigint"||Number.isInteger(e),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:n})=>dO(e,n),stringify:Ole},Dle={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>dO(e,!1),stringify:Ole},YC={identify:e=>e instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(e){const t=e.match(YC.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");const[,n,i,o,s,r,a]=t.map(Number),l=t[7]?Number((t[7]+"00").substr(1,3)):0;let c=Date.UTC(n,i-1,o,s||0,r||0,a||0,l);const u=t[8];if(u&&u!=="Z"){let d=dO(u,!1);Math.abs(d)<30&&(d*=60),c-=6e4*d}return new Date(c)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""},KU=[Cv,Av,KC,ZC,Ple,$le,utt,dtt,ftt,htt,att,ltt,ctt,rO,lh,lO,aO,uO,Fle,Dle,YC],ZU=new Map([["core",itt],["failsafe",[Cv,Av,KC]],["json",rtt],["yaml11",KU],["yaml-1.1",KU]]),GU={binary:rO,bool:oO,float:Sle,floatExp:xle,floatNaN:Ale,floatTime:Dle,int:Tle,intHex:Mle,intOct:Ile,intTime:Fle,map:Cv,merge:lh,null:ZC,omap:lO,pairs:aO,seq:Av,set:uO,timestamp:YC},ptt={"tag:yaml.org,2002:binary":rO,"tag:yaml.org,2002:merge":lh,"tag:yaml.org,2002:omap":lO,"tag:yaml.org,2002:pairs":aO,"tag:yaml.org,2002:set":uO,"tag:yaml.org,2002:timestamp":YC};function w_(e,t,n){const i=ZU.get(t);if(i&&!e)return n&&!i.includes(lh)?i.concat(lh):i.slice();let o=i;if(!o)if(Array.isArray(e))o=[];else{const s=Array.from(ZU.keys()).filter(r=>r!=="yaml11").map(r=>JSON.stringify(r)).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${s} or define customTags array`)}if(Array.isArray(e))for(const s of e)o=o.concat(s);else typeof e=="function"&&(o=e(o.slice()));return n&&(o=o.concat(lh)),o.reduce((s,r)=>{const a=typeof r=="string"?GU[r]:r;if(!a){const l=JSON.stringify(r),c=Object.keys(GU).map(u=>JSON.stringify(u)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return s.includes(a)||s.push(a),s},[])}const mtt=(e,t)=>e.keyt.key?1:0;class fO{constructor({compat:t,customTags:n,merge:i,resolveKnownTags:o,schema:s,sortMapEntries:r,toStringDefaults:a}){this.compat=Array.isArray(t)?w_(t,"compat"):t?w_(null,t):null,this.name=typeof s=="string"&&s||"core",this.knownTags=o?ptt:{},this.tags=w_(n,this.name,i),this.toStringOptions=a??null,Object.defineProperty(this,W1,{value:Cv}),Object.defineProperty(this,ff,{value:KC}),Object.defineProperty(this,yv,{value:Av}),this.sortMapEntries=typeof r=="function"?r:r===!0?mtt:null}clone(){const t=Object.create(fO.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}}function gtt(e,t){const n=[];let i=t.directives===!0;if(t.directives!==!1&&e.directives){const l=e.directives.toString(e);l?(n.push(l),i=!0):e.directives.docStart&&(i=!0)}i&&n.push("---");const o=yle(e,t),{commentString:s}=o.options;if(e.commentBefore){n.length!==1&&n.unshift("");const l=s(e.commentBefore);n.unshift(eh(l,""))}let r=!1,a=null;if(e.contents){if(mr(e.contents)){if(e.contents.spaceBefore&&i&&n.push(""),e.contents.commentBefore){const u=s(e.contents.commentBefore);n.push(eh(u,""))}o.forceBlockIndent=!!e.comment,a=e.contents.comment}const l=a?void 0:()=>r=!0;let c=Y2(e.contents,o,()=>a=null,l);a&&(c+=E0(c,"",s(a))),(c[0]==="|"||c[0]===">")&&n[n.length-1]==="---"?n[n.length-1]=`--- ${c}`:n.push(c)}else n.push(Y2(e.contents,o));if(e.directives?.docEnd)if(e.comment){const l=s(e.comment);l.includes(` +`)?(n.push("..."),n.push(eh(l,""))):n.push(`... ${l}`)}else n.push("...");else{let l=e.comment;l&&r&&(l=l.replace(/^\n+/,"")),l&&((!r||a)&&n[n.length-1]!==""&&n.push(""),n.push(eh(s(l),"")))}return n.join(` +`)+` +`}let hO=class Nle{constructor(t,n,i){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Tu,{value:PE});let o=null;typeof n=="function"||Array.isArray(n)?o=n:i===void 0&&n&&(i=n,n=void 0);const s=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},i);this.options=s;let{version:r}=s;i?._directives?(this.directives=i._directives.atDocument(),this.directives.yaml.explicit&&(r=this.directives.yaml.version)):this.directives=new al({version:r}),this.setSchema(r,i),this.contents=t===void 0?null:this.createNode(t,o,i)}clone(){const t=Object.create(Nle.prototype,{[Tu]:{value:PE}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=mr(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(t){fg(this.contents)&&this.contents.add(t)}addIn(t,n){fg(this.contents)&&this.contents.addIn(t,n)}createAlias(t,n){if(!t.anchor){const i=hle(this);t.anchor=!n||i.has(n)?ple(n||"a",i):n}return new tO(t.anchor)}createNode(t,n,i){let o;if(typeof n=="function")t=n.call({"":t},"",t),o=n;else if(Array.isArray(n)){const y=k=>typeof k=="number"||k instanceof String||k instanceof Number,v=n.filter(y).map(String);v.length>0&&(n=n.concat(v)),o=n}else i===void 0&&n&&(i=n,n=void 0);const{aliasDuplicateObjects:s,anchorPrefix:r,flow:a,keepUndefined:l,onTagObj:c,tag:u}=i??{},{onAnchor:d,setAnchors:f,sourceObjects:h}=Wet(this,r||"a"),m={aliasDuplicateObjects:s??!0,keepUndefined:l??!1,onAnchor:d,onTagObj:c,replacer:o,schema:this.schema,sourceObjects:h},g=d3(t,u,m);return a&&hr(g)&&(g.flow=!0),f(),g}createPair(t,n,i={}){const o=this.createNode(t,null,i),s=this.createNode(n,null,i);return new Cl(o,s)}delete(t){return fg(this.contents)?this.contents.delete(t):!1}deleteIn(t){return t4(t)?this.contents==null?!1:(this.contents=null,!0):fg(this.contents)?this.contents.deleteIn(t):!1}get(t,n){return hr(this.contents)?this.contents.get(t,n):void 0}getIn(t,n){return t4(t)?!n&&Jo(this.contents)?this.contents.value:this.contents:hr(this.contents)?this.contents.getIn(t,n):void 0}has(t){return hr(this.contents)?this.contents.has(t):!1}hasIn(t){return t4(t)?this.contents!==void 0:hr(this.contents)?this.contents.hasIn(t):!1}set(t,n){this.contents==null?this.contents=qw(this.schema,[t],n):fg(this.contents)&&this.contents.set(t,n)}setIn(t,n){t4(t)?this.contents=n:this.contents==null?this.contents=qw(this.schema,Array.from(t),n):fg(this.contents)&&this.contents.setIn(t,n)}setSchema(t,n={}){typeof t=="number"&&(t=String(t));let i;switch(t){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new al({version:"1.1"}),i={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=t:this.directives=new al({version:t}),i={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,i=null;break;default:{const o=JSON.stringify(t);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${o}`)}}if(n.schema instanceof Object)this.schema=n.schema;else if(i)this.schema=new fO(Object.assign(i,n));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:t,jsonArg:n,mapAsMap:i,maxAliasCount:o,onAnchor:s,reviver:r}={}){const a={anchors:new Map,doc:this,keep:!t,mapAsMap:i===!0,mapKeyWarned:!1,maxAliasCount:typeof o=="number"?o:100},l=Cu(this.contents,n??"",a);if(typeof s=="function")for(const{count:c,res:u}of a.anchors.values())s(u,c);return typeof r=="function"?Kg(r,{"":l},"",l):l}toJSON(t,n){return this.toJS({json:!0,jsonArg:t,mapAsMap:!1,onAnchor:n})}toString(t={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in t&&(!Number.isInteger(t.indent)||Number(t.indent)<=0)){const n=JSON.stringify(t.indent);throw new Error(`"indent" option must be a positive integer, not ${n}`)}return gtt(this,t)}};function fg(e){if(hr(e))return!0;throw new Error("Expected a YAML collection as document contents")}class Ble extends Error{constructor(t,n,i,o){super(),this.name=t,this.code=i,this.message=o,this.pos=n}}class n4 extends Ble{constructor(t,n,i){super("YAMLParseError",t,n,i)}}class vtt extends Ble{constructor(t,n,i){super("YAMLWarning",t,n,i)}}const QU=(e,t)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(a=>t.linePos(a));const{line:i,col:o}=n.linePos[0];n.message+=` at line ${i}, column ${o}`;let s=o-1,r=e.substring(t.lineStarts[i-1],t.lineStarts[i]).replace(/[\n\r]+$/,"");if(s>=60&&r.length>80){const a=Math.min(s-39,r.length-79);r="…"+r.substring(a),s-=a-1}if(r.length>80&&(r=r.substring(0,79)+"…"),i>1&&/^ *$/.test(r.substring(0,s))){let a=e.substring(t.lineStarts[i-2],t.lineStarts[i-1]);a.length>80&&(a=a.substring(0,79)+`… +`),r=a+r}if(/[^ ]/.test(r)){let a=1;const l=n.linePos[1];l?.line===i&&l.col>o&&(a=Math.max(1,Math.min(l.col-o,80-s)));const c=" ".repeat(s)+"^".repeat(a);n.message+=`: + +${r} +${c} +`}};function J2(e,{flow:t,indicator:n,next:i,offset:o,onError:s,parentIndent:r,startOnNewline:a}){let l=!1,c=a,u=a,d="",f="",h=!1,m=!1,g=null,y=null,v=null,k=null,w=null,C=null,x=null;for(const _ of e)switch(m&&(_.type!=="space"&&_.type!=="newline"&&_.type!=="comma"&&s(_.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),m=!1),g&&(c&&_.type!=="comment"&&_.type!=="newline"&&s(g,"TAB_AS_INDENT","Tabs are not allowed as indentation"),g=null),_.type){case"space":!t&&(n!=="doc-start"||i?.type!=="flow-collection")&&_.source.includes(" ")&&(g=_),u=!0;break;case"comment":{u||s(_,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const T=_.source.substring(1)||" ";d?d+=f+T:d=T,f="",c=!1;break}case"newline":c?d?d+=_.source:(!C||n!=="seq-item-ind")&&(l=!0):f+=_.source,c=!0,h=!0,(y||v)&&(k=_),u=!0;break;case"anchor":y&&s(_,"MULTIPLE_ANCHORS","A node can have at most one anchor"),_.source.endsWith(":")&&s(_.offset+_.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),y=_,x??(x=_.offset),c=!1,u=!1,m=!0;break;case"tag":{v&&s(_,"MULTIPLE_TAGS","A node can have at most one tag"),v=_,x??(x=_.offset),c=!1,u=!1,m=!0;break}case n:(y||v)&&s(_,"BAD_PROP_ORDER",`Anchors and tags must be after the ${_.source} indicator`),C&&s(_,"UNEXPECTED_TOKEN",`Unexpected ${_.source} in ${t??"collection"}`),C=_,c=n==="seq-item-ind"||n==="explicit-key-ind",u=!1;break;case"comma":if(t){w&&s(_,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`),w=_,c=!1,u=!1;break}default:s(_,"UNEXPECTED_TOKEN",`Unexpected ${_.type} token`),c=!1,u=!1}const S=e[e.length-1],M=S?S.offset+S.source.length:o;return m&&i&&i.type!=="space"&&i.type!=="newline"&&i.type!=="comma"&&(i.type!=="scalar"||i.source!=="")&&s(i.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),g&&(c&&g.indent<=r||i?.type==="block-map"||i?.type==="block-seq")&&s(g,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:w,found:C,spaceBefore:l,comment:d,hasNewline:h,anchor:y,tag:v,newlineAfterProp:k,end:M,start:x??M}}function f3(e){if(!e)return null;switch(e.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(e.source.includes(` +`))return!0;if(e.end){for(const t of e.end)if(t.type==="newline")return!0}return!1;case"flow-collection":for(const t of e.items){for(const n of t.start)if(n.type==="newline")return!0;if(t.sep){for(const n of t.sep)if(n.type==="newline")return!0}if(f3(t.key)||f3(t.value))return!0}return!1;default:return!0}}function DE(e,t,n){if(t?.type==="flow-collection"){const i=t.end[0];i.indent===e&&(i.source==="]"||i.source==="}")&&f3(t)&&n(i,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function zle(e,t,n){const{uniqueKeys:i}=e.options;if(i===!1)return!1;const o=typeof i=="function"?i:(s,r)=>s===r||Jo(s)&&Jo(r)&&s.value===r.value;return t.some(s=>o(s.key,n))}const YU="All mapping items must start at the same column";function ytt({composeNode:e,composeEmptyNode:t},n,i,o,s){const r=s?.nodeClass??lu,a=new r(n.schema);n.atRoot&&(n.atRoot=!1);let l=i.offset,c=null;for(const u of i.items){const{start:d,key:f,sep:h,value:m}=u,g=J2(d,{indicator:"explicit-key-ind",next:f??h?.[0],offset:l,onError:o,parentIndent:i.indent,startOnNewline:!0}),y=!g.found;if(y){if(f&&(f.type==="block-seq"?o(l,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in f&&f.indent!==i.indent&&o(l,"BAD_INDENT",YU)),!g.anchor&&!g.tag&&!h){c=g.end,g.comment&&(a.comment?a.comment+=` +`+g.comment:a.comment=g.comment);continue}(g.newlineAfterProp||f3(f))&&o(f??d[d.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else g.found?.indent!==i.indent&&o(l,"BAD_INDENT",YU);n.atKey=!0;const v=g.end,k=f?e(n,f,g,o):t(n,v,d,null,g,o);n.schema.compat&&DE(i.indent,f,o),n.atKey=!1,zle(n,a.items,k)&&o(v,"DUPLICATE_KEY","Map keys must be unique");const w=J2(h??[],{indicator:"map-value-ind",next:m,offset:k.range[2],onError:o,parentIndent:i.indent,startOnNewline:!f||f.type==="block-scalar"});if(l=w.end,w.found){y&&(m?.type==="block-map"&&!w.hasNewline&&o(l,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),n.options.strict&&g.starte&&(e.type==="block-map"||e.type==="block-seq");function ktt({composeNode:e,composeEmptyNode:t},n,i,o,s){const r=i.start.source==="{",a=r?"flow map":"flow sequence",l=s?.nodeClass??(r?lu:vm),c=new l(n.schema);c.flow=!0;const u=n.atRoot;u&&(n.atRoot=!1),n.atKey&&(n.atKey=!1);let d=i.offset+i.start.source.length;for(let y=0;y0){const y=mb(m,g,n.options.strict,o);y.comment&&(c.comment?c.comment+=` +`+y.comment:c.comment=y.comment),c.range=[i.offset,g,y.offset]}else c.range=[i.offset,g,g];return c}function x_(e,t,n,i,o,s){const r=n.type==="block-map"?ytt(e,t,n,i,s):n.type==="block-seq"?btt(e,t,n,i,s):ktt(e,t,n,i,s),a=r.constructor;return o==="!"||o===a.tagName?(r.tag=a.tagName,r):(o&&(r.tag=o),r)}function wtt(e,t,n,i,o){const s=i.tag,r=s?t.directives.tagName(s.source,f=>o(s,"TAG_RESOLVE_FAILED",f)):null;if(n.type==="block-seq"){const{anchor:f,newlineAfterProp:h}=i,m=f&&s?f.offset>s.offset?f:s:f??s;m&&(!h||h.offsetf.tag===r&&f.collection===a);if(!l){const f=t.schema.knownTags[r];if(f?.collection===a)t.schema.tags.push(Object.assign({},f,{default:!1})),l=f;else return f?o(s,"BAD_COLLECTION_TYPE",`${f.tag} used for ${a} collection, but expects ${f.collection??"scalar"}`,!0):o(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${r}`,!0),x_(e,t,n,o,r)}const c=x_(e,t,n,o,r,l),u=l.resolve?.(c,f=>o(s,"TAG_RESOLVE_FAILED",f),t.options)??c,d=mr(u)?u:new Fi(u);return d.range=c.range,d.tag=r,l?.format&&(d.format=l.format),d}function Ctt(e,t,n){const i=t.offset,o=Att(t,e.options.strict,n);if(!o)return{value:"",type:null,comment:"",range:[i,i,i]};const s=o.mode===">"?Fi.BLOCK_FOLDED:Fi.BLOCK_LITERAL,r=t.source?xtt(t.source):[];let a=r.length;for(let g=r.length-1;g>=0;--g){const y=r[g][1];if(y===""||y==="\r")a=g;else break}if(a===0){const g=o.chomp==="+"&&r.length>0?` +`.repeat(Math.max(1,r.length-1)):"";let y=i+o.length;return t.source&&(y+=t.source.length),{value:g,type:s,comment:o.comment,range:[i,y,y]}}let l=t.indent+o.indent,c=t.offset+o.length,u=0;for(let g=0;gl&&(l=y.length);else{y.length=a;--g)r[g][0].length>l&&(a=g+1);let d="",f="",h=!1;for(let g=0;gl||v[0]===" "?(f===" "?f=` +`:!h&&f===` +`&&(f=` + +`),d+=f+y.slice(l)+v,f=` +`,h=!0):v===""?f===` +`?d+=` +`:f=` +`:(d+=f+v,f=" ",h=!1)}switch(o.chomp){case"-":break;case"+":for(let g=a;gn(i+f,h,m);switch(o){case"scalar":a=Fi.PLAIN,l=_tt(s,c);break;case"single-quoted-scalar":a=Fi.QUOTE_SINGLE,l=Itt(s,c);break;case"double-quoted-scalar":a=Fi.QUOTE_DOUBLE,l=Ttt(s,c);break;default:return n(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${o}`),{value:"",type:null,comment:"",range:[i,i+s.length,i+s.length]}}const u=i+s.length,d=mb(r,u,t,n);return{value:l,type:a,comment:d.comment,range:[i,u,d.offset]}}function _tt(e,t){let n="";switch(e[0]){case" ":n="a tab character";break;case",":n="flow indicator character ,";break;case"%":n="directive indicator character %";break;case"|":case">":{n=`block scalar indicator ${e[0]}`;break}case"@":case"`":{n=`reserved character ${e[0]}`;break}}return n&&t(0,"BAD_SCALAR_START",`Plain value cannot start with ${n}`),Hle(e)}function Itt(e,t){return(e[e.length-1]!=="'"||e.length===1)&&t(e.length,"MISSING_CHAR","Missing closing 'quote"),Hle(e.slice(1,-1)).replace(/''/g,"'")}function Hle(e){let t,n;try{t=new RegExp(`(.*?)(?s?e.slice(s,i+1):o)}else n+=o}return(e[e.length-1]!=='"'||e.length===1)&&t(e.length,"MISSING_CHAR",'Missing closing "quote'),n}function Mtt(e,t){let n="",i=e[t+1];for(;(i===" "||i===" "||i===` +`||i==="\r")&&!(i==="\r"&&e[t+2]!==` +`);)i===` +`&&(n+=` +`),t+=1,i=e[t+1];return n||(n=" "),{fold:n,offset:t}}const Ett={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:` +`,r:"\r",t:" ",v:"\v",N:"…",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function Ltt(e,t,n,i){const o=e.substr(t,n),r=o.length===n&&/^[0-9a-fA-F]+$/.test(o)?parseInt(o,16):NaN;try{return String.fromCodePoint(r)}catch{const a=e.substr(t-2,n+2);return i(t-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}}function jle(e,t,n,i){const{value:o,type:s,comment:r,range:a}=t.type==="block-scalar"?Ctt(e,t,i):Stt(t,e.options.strict,i),l=n?e.directives.tagName(n.source,d=>i(n,"TAG_RESOLVE_FAILED",d)):null;let c;e.options.stringKeys&&e.atKey?c=e.schema[ff]:l?c=Rtt(e.schema,o,l,n,i):t.type==="scalar"?c=Ptt(e,o,t,i):c=e.schema[ff];let u;try{const d=c.resolve(o,f=>i(n??t,"TAG_RESOLVE_FAILED",f),e.options);u=Jo(d)?d:new Fi(d)}catch(d){const f=d instanceof Error?d.message:String(d);i(n??t,"TAG_RESOLVE_FAILED",f),u=new Fi(o)}return u.range=a,u.source=o,s&&(u.type=s),l&&(u.tag=l),c.format&&(u.format=c.format),r&&(u.comment=r),u}function Rtt(e,t,n,i,o){if(n==="!")return e[ff];const s=[];for(const a of e.tags)if(!a.collection&&a.tag===n)if(a.default&&a.test)s.push(a);else return a;for(const a of s)if(a.test?.test(t))return a;const r=e.knownTags[n];return r&&!r.collection?(e.tags.push(Object.assign({},r,{default:!1,test:void 0})),r):(o(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${n}`,n!=="tag:yaml.org,2002:str"),e[ff])}function Ptt({atKey:e,directives:t,schema:n},i,o,s){const r=n.tags.find(a=>(a.default===!0||e&&a.default==="key")&&a.test?.test(i))||n[ff];if(n.compat){const a=n.compat.find(l=>l.default&&l.test?.test(i))??n[ff];if(r.tag!==a.tag){const l=t.tagString(r.tag),c=t.tagString(a.tag),u=`Value may be parsed as either ${l} or ${c}`;s(o,"TAG_RESOLVE_FAILED",u,!0)}}return r}function $tt(e,t,n){if(t){n??(n=t.length);for(let i=n-1;i>=0;--i){let o=t[i];switch(o.type){case"space":case"comment":case"newline":e-=o.source.length;continue}for(o=t[++i];o?.type==="space";)e+=o.source.length,o=t[++i];break}}return e}const Ott={composeNode:Wle,composeEmptyNode:pO};function Wle(e,t,n,i){const o=e.atKey,{spaceBefore:s,comment:r,anchor:a,tag:l}=n;let c,u=!0;switch(t.type){case"alias":c=Ftt(e,t,i),(a||l)&&i(t,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":c=jle(e,t,l,i),a&&(c.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{c=wtt(Ott,e,t,n,i),a&&(c.anchor=a.source.substring(1))}catch(d){const f=d instanceof Error?d.message:String(d);i(t,"RESOURCE_EXHAUSTION",f)}break;default:{const d=t.type==="error"?t.message:`Unsupported token (type: ${t.type})`;i(t,"UNEXPECTED_TOKEN",d),u=!1}}return c??(c=pO(e,t.offset,void 0,null,n,i)),a&&c.anchor===""&&i(a,"BAD_ALIAS","Anchor cannot be an empty string"),o&&e.options.stringKeys&&(!Jo(c)||typeof c.value!="string"||c.tag&&c.tag!=="tag:yaml.org,2002:str")&&i(l??t,"NON_STRING_KEY","With stringKeys, all keys must be strings"),s&&(c.spaceBefore=!0),r&&(t.type==="scalar"&&t.source===""?c.comment=r:c.commentBefore=r),e.options.keepSourceTokens&&u&&(c.srcToken=t),c}function pO(e,t,n,i,{spaceBefore:o,comment:s,anchor:r,tag:a,end:l},c){const u={type:"scalar",offset:$tt(t,n,i),indent:-1,source:""},d=jle(e,u,a,c);return r&&(d.anchor=r.source.substring(1),d.anchor===""&&c(r,"BAD_ALIAS","Anchor cannot be an empty string")),o&&(d.spaceBefore=!0),s&&(d.comment=s,d.range[2]=l),d}function Ftt({options:e},{offset:t,source:n,end:i},o){const s=new tO(n.substring(1));s.source===""&&o(t,"BAD_ALIAS","Alias cannot be an empty string"),s.source.endsWith(":")&&o(t+n.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);const r=t+n.length,a=mb(i,r,e.strict,o);return s.range=[t,r,a.offset],a.comment&&(s.comment=a.comment),s}function Dtt(e,t,{offset:n,start:i,value:o,end:s},r){const a=Object.assign({_directives:t},e),l=new hO(void 0,a),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},u=J2(i,{indicator:"doc-start",next:o??s?.[0],offset:n,onError:r,parentIndent:0,startOnNewline:!0});u.found&&(l.directives.docStart=!0,o&&(o.type==="block-map"||o.type==="block-seq")&&!u.hasNewline&&r(u.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),l.contents=o?Wle(c,o,u,r):pO(c,u.end,i,null,u,r);const d=l.contents.range[2],f=mb(s,d,!1,r);return f.comment&&(l.comment=f.comment),l.range=[n,d,f.offset],l}function Cy(e){if(typeof e=="number")return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];const{offset:t,source:n}=e;return[t,t+(typeof n=="string"?n.length:1)]}function JU(e){let t="",n=!1,i=!1;for(let o=0;o{const r=Cy(n);s?this.warnings.push(new vtt(r,i,o)):this.errors.push(new n4(r,i,o))},this.directives=new al({version:t.version||"1.2"}),this.options=t}decorate(t,n){const{comment:i,afterEmptyLine:o}=JU(this.prelude);if(i){const s=t.contents;if(n)t.comment=t.comment?`${t.comment} +${i}`:i;else if(o||t.directives.docStart||!s)t.commentBefore=i;else if(hr(s)&&!s.flow&&s.items.length>0){let r=s.items[0];gr(r)&&(r=r.key);const a=r.commentBefore;r.commentBefore=a?`${i} +${a}`:i}else{const r=s.commentBefore;s.commentBefore=r?`${i} +${r}`:i}}if(n){for(let s=0;s{const s=Cy(t);s[0]+=n,this.onError(s,"BAD_DIRECTIVE",i,o)}),this.prelude.push(t.source),this.atDirectives=!0;break;case"document":{const n=Dtt(this.options,this.directives,t,this.onError);this.atDirectives&&!n.directives.docStart&&this.onError(t,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(n,!1),this.doc&&(yield this.doc),this.doc=n,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(t.source);break;case"error":{const n=t.source?`${t.message}: ${JSON.stringify(t.source)}`:t.message,i=new n4(Cy(t),"UNEXPECTED_TOKEN",n);this.atDirectives||!this.doc?this.errors.push(i):this.doc.errors.push(i);break}case"doc-end":{if(!this.doc){const i="Unexpected doc-end without preceding document";this.errors.push(new n4(Cy(t),"UNEXPECTED_TOKEN",i));break}this.doc.directives.docEnd=!0;const n=mb(t.end,t.offset+t.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),n.comment){const i=this.doc.comment;this.doc.comment=i?`${i} +${n.comment}`:n.comment}this.doc.range[2]=n.offset;break}default:this.errors.push(new n4(Cy(t),"UNEXPECTED_TOKEN",`Unsupported token ${t.type}`))}}*end(t=!1,n=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(t){const i=Object.assign({_directives:this.directives},this.options),o=new hO(void 0,i);this.atDirectives&&this.onError(n,"MISSING_CHAR","Missing directives-end indicator line"),o.range=[0,n,n],this.decorate(o,!1),yield o}}};const qle="\uFEFF",Vle="",Ule="",NE="";function Btt(e){switch(e){case qle:return"byte-order-mark";case Vle:return"doc-mode";case Ule:return"flow-error-end";case NE:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case` +`:case`\r +`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(e[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}function Wu(e){switch(e){case void 0:case" ":case` +`:case"\r":case" ":return!0;default:return!1}}const XU=new Set("0123456789ABCDEFabcdef"),ztt=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),u8=new Set(",[]{}"),Htt=new Set(` ,[]{} +\r `),S_=e=>!e||Htt.has(e);class jtt{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(t,n=!1){if(t){if(typeof t!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+t:t,this.lineEndPos=null}this.atEnd=!n;let i=this.next??"stream";for(;i&&(n||this.hasChars(1));)i=yield*this.parseNext(i)}atLineEnd(){let t=this.pos,n=this.buffer[t];for(;n===" "||n===" ";)n=this.buffer[++t];return!n||n==="#"||n===` +`?!0:n==="\r"?this.buffer[t+1]===` +`:!1}charAt(t){return this.buffer[this.pos+t]}continueScalar(t){let n=this.buffer[t];if(this.indentNext>0){let i=0;for(;n===" ";)n=this.buffer[++i+t];if(n==="\r"){const o=this.buffer[i+t+1];if(o===` +`||!o&&!this.atEnd)return t+i+1}return n===` +`||i>=this.indentNext||!n&&!this.atEnd?t+i:-1}if(n==="-"||n==="."){const i=this.buffer.substr(t,3);if((i==="---"||i==="...")&&Wu(this.buffer[t+3]))return-1}return t}getLine(){let t=this.lineEndPos;return(typeof t!="number"||t!==-1&&tthis.indentValue&&!Wu(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){const[t,n]=this.peek(2);if(!n&&!this.atEnd)return this.setNext("block-start");if((t==="-"||t==="?"||t===":")&&Wu(n)){const i=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=i,"block-start"}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);const t=this.getLine();if(t===null)return this.setNext("doc");let n=yield*this.pushIndicators();switch(t[n]){case"#":yield*this.pushCount(t.length-n);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(S_),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return n+=yield*this.parseBlockScalarHeader(),n+=yield*this.pushSpaces(!0),yield*this.pushCount(t.length-n),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let t,n,i=-1;do t=yield*this.pushNewline(),t>0?(n=yield*this.pushSpaces(!1),this.indentValue=i=n):n=0,n+=yield*this.pushSpaces(!0);while(t+n>0);const o=this.getLine();if(o===null)return this.setNext("flow");if((i!==-1&&i"0"&&n<="9")this.blockScalarIndent=Number(n)-1;else if(n!=="-")break}return yield*this.pushUntil(n=>Wu(n)||n==="#")}*parseBlockScalar(){let t=this.pos-1,n=0,i;e:for(let s=this.pos;i=this.buffer[s];++s)switch(i){case" ":n+=1;break;case` +`:t=s,n=0;break;case"\r":{const r=this.buffer[s+1];if(!r&&!this.atEnd)return this.setNext("block-scalar");if(r===` +`)break}default:break e}if(!i&&!this.atEnd)return this.setNext("block-scalar");if(n>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=n:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{const s=this.continueScalar(t+1);if(s===-1)break;t=this.buffer.indexOf(` +`,s)}while(t!==-1);if(t===-1){if(!this.atEnd)return this.setNext("block-scalar");t=this.buffer.length}}let o=t+1;for(i=this.buffer[o];i===" ";)i=this.buffer[++o];if(i===" "){for(;i===" "||i===" "||i==="\r"||i===` +`;)i=this.buffer[++o];t=o-1}else if(!this.blockScalarKeep)do{let s=t-1,r=this.buffer[s];r==="\r"&&(r=this.buffer[--s]);const a=s;for(;r===" ";)r=this.buffer[--s];if(r===` +`&&s>=this.pos&&s+1+n>a)t=s;else break}while(!0);return yield NE,yield*this.pushToIndex(t+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){const t=this.flowLevel>0;let n=this.pos-1,i=this.pos-1,o;for(;o=this.buffer[++i];)if(o===":"){const s=this.buffer[i+1];if(Wu(s)||t&&u8.has(s))break;n=i}else if(Wu(o)){let s=this.buffer[i+1];if(o==="\r"&&(s===` +`?(i+=1,o=` +`,s=this.buffer[i+1]):n=i),s==="#"||t&&u8.has(s))break;if(o===` +`){const r=this.continueScalar(i+1);if(r===-1)break;i=Math.max(i,r-2)}}else{if(t&&u8.has(o))break;n=i}return!o&&!this.atEnd?this.setNext("plain-scalar"):(yield NE,yield*this.pushToIndex(n+1,!0),t?"flow":"doc")}*pushCount(t){return t>0?(yield this.buffer.substr(this.pos,t),this.pos+=t,t):0}*pushToIndex(t,n){const i=this.buffer.slice(this.pos,t);return i?(yield i,this.pos+=i.length,i.length):(n&&(yield""),0)}*pushIndicators(){let t=0;e:for(;;){switch(this.charAt(0)){case"!":t+=yield*this.pushTag(),t+=yield*this.pushSpaces(!0);continue e;case"&":t+=yield*this.pushUntil(S_),t+=yield*this.pushSpaces(!0);continue e;case"-":case"?":case":":{const n=this.flowLevel>0,i=this.charAt(1);if(Wu(i)||n&&u8.has(i)){n?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,t+=yield*this.pushCount(1),t+=yield*this.pushSpaces(!0);continue e}}}break e}return t}*pushTag(){if(this.charAt(1)==="<"){let t=this.pos+2,n=this.buffer[t];for(;!Wu(n)&&n!==">";)n=this.buffer[++t];return yield*this.pushToIndex(n===">"?t+1:t,!1)}else{let t=this.pos+1,n=this.buffer[t];for(;n;)if(ztt.has(n))n=this.buffer[++t];else if(n==="%"&&XU.has(this.buffer[t+1])&&XU.has(this.buffer[t+2]))n=this.buffer[t+=3];else break;return yield*this.pushToIndex(t,!1)}}*pushNewline(){const t=this.buffer[this.pos];return t===` +`?yield*this.pushCount(1):t==="\r"&&this.charAt(1)===` +`?yield*this.pushCount(2):0}*pushSpaces(t){let n=this.pos-1,i;do i=this.buffer[++n];while(i===" "||t&&i===" ");const o=n-this.pos;return o>0&&(yield this.buffer.substr(this.pos,o),this.pos=n),o}*pushUntil(t){let n=this.pos,i=this.buffer[n];for(;!t(i);)i=this.buffer[++n];return yield*this.pushToIndex(n,!1)}}class Wtt{constructor(){this.lineStarts=[],this.addNewLine=t=>this.lineStarts.push(t),this.linePos=t=>{let n=0,i=this.lineStarts.length;for(;n>1;this.lineStarts[s]=0;)switch(e[t].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;e[++t]?.type==="space";);return e.splice(t,e.length)}function Uw(e,t){if(t.length<1e5)Array.prototype.push.apply(e,t);else for(let n=0;n0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){const t=this.peek(1);if(this.type==="doc-end"&&t?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!t)return yield*this.stream();switch(t.type){case"document":return yield*this.document(t);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(t);case"block-scalar":return yield*this.blockScalar(t);case"block-map":return yield*this.blockMap(t);case"block-seq":return yield*this.blockSequence(t);case"flow-collection":return yield*this.flowCollection(t);case"doc-end":return yield*this.documentEnd(t)}yield*this.pop()}peek(t){return this.stack[this.stack.length-t]}*pop(t){const n=t??this.stack.pop();if(!n)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield n;else{const i=this.peek(1);switch(n.type==="block-scalar"?n.indent="indent"in i?i.indent:0:n.type==="flow-collection"&&i.type==="document"&&(n.indent=0),n.type==="flow-collection"&&tK(n),i.type){case"document":i.value=n;break;case"block-scalar":i.props.push(n);break;case"block-map":{const o=i.items[i.items.length-1];if(o.value){i.items.push({start:[],key:n,sep:[]}),this.onKeyLine=!0;return}else if(o.sep)o.value=n;else{Object.assign(o,{key:n,sep:[]}),this.onKeyLine=!o.explicitKey;return}break}case"block-seq":{const o=i.items[i.items.length-1];o.value?i.items.push({start:[],value:n}):o.value=n;break}case"flow-collection":{const o=i.items[i.items.length-1];!o||o.value?i.items.push({start:[],key:n,sep:[]}):o.sep?o.value=n:Object.assign(o,{key:n,sep:[]});return}default:yield*this.pop(),yield*this.pop(n)}if((i.type==="document"||i.type==="block-map"||i.type==="block-seq")&&(n.type==="block-map"||n.type==="block-seq")){const o=n.items[n.items.length-1];o&&!o.sep&&!o.value&&o.start.length>0&&eK(o.start)===-1&&(n.indent===0||o.start.every(s=>s.type!=="comment"||s.indent=t.indent){const i=!this.onKeyLine&&this.indent===t.indent,o=i&&(n.sep||n.explicitKey)&&this.type!=="seq-item-ind";let s=[];if(o&&n.sep&&!n.value){const r=[];for(let a=0;at.indent&&(r.length=0);break;default:r.length=0}}r.length>=2&&(s=n.sep.splice(r[1]))}switch(this.type){case"anchor":case"tag":o||n.value?(s.push(this.sourceToken),t.items.push({start:s}),this.onKeyLine=!0):n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"explicit-key-ind":!n.sep&&!n.explicitKey?(n.start.push(this.sourceToken),n.explicitKey=!0):o||n.value?(s.push(this.sourceToken),t.items.push({start:s,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(n.explicitKey)if(n.sep)if(n.value)t.items.push({start:[],key:null,sep:[this.sourceToken]});else if(f1(n.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,key:null,sep:[this.sourceToken]}]});else if(Kle(n.key)&&!f1(n.sep,"newline")){const r=hg(n.start),a=n.key,l=n.sep;l.push(this.sourceToken),delete n.key,delete n.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:a,sep:l}]})}else s.length>0?n.sep=n.sep.concat(s,this.sourceToken):n.sep.push(this.sourceToken);else if(f1(n.start,"newline"))Object.assign(n,{key:null,sep:[this.sourceToken]});else{const r=hg(n.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]})}else n.sep?n.value||o?t.items.push({start:s,key:null,sep:[this.sourceToken]}):f1(n.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):n.sep.push(this.sourceToken):Object.assign(n,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const r=this.flowScalar(this.type);o||n.value?(t.items.push({start:s,key:r,sep:[]}),this.onKeyLine=!0):n.sep?this.stack.push(r):(Object.assign(n,{key:r,sep:[]}),this.onKeyLine=!0);return}default:{const r=this.startBlockValue(t);if(r){if(r.type==="block-seq"){if(!n.explicitKey&&n.sep&&!f1(n.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else i&&t.items.push({start:s});this.stack.push(r);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(t){const n=t.items[t.items.length-1];switch(this.type){case"newline":if(n.value){const i="end"in n.value?n.value.end:void 0;(Array.isArray(i)?i[i.length-1]:void 0)?.type==="comment"?i?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else n.start.push(this.sourceToken);return;case"space":case"comment":if(n.value)t.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(n.start,t.indent)){const o=t.items[t.items.length-2]?.value?.end;if(Array.isArray(o)){Uw(o,n.start),o.push(this.sourceToken),t.items.pop();return}}n.start.push(this.sourceToken)}return;case"anchor":case"tag":if(n.value||this.indent<=t.indent)break;n.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==t.indent)break;n.value||f1(n.start,"seq-item-ind")?t.items.push({start:[this.sourceToken]}):n.start.push(this.sourceToken);return}if(this.indent>t.indent){const i=this.startBlockValue(t);if(i){this.stack.push(i);return}}yield*this.pop(),yield*this.step()}*flowCollection(t){const n=t.items[t.items.length-1];if(this.type==="flow-error-end"){let i;do yield*this.pop(),i=this.peek(1);while(i?.type==="flow-collection")}else if(t.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!n||n.sep?t.items.push({start:[this.sourceToken]}):n.start.push(this.sourceToken);return;case"map-value-ind":!n||n.value?t.items.push({start:[],key:null,sep:[this.sourceToken]}):n.sep?n.sep.push(this.sourceToken):Object.assign(n,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!n||n.value?t.items.push({start:[this.sourceToken]}):n.sep?n.sep.push(this.sourceToken):n.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const o=this.flowScalar(this.type);!n||n.value?t.items.push({start:[],key:o,sep:[]}):n.sep?this.stack.push(o):Object.assign(n,{key:o,sep:[]});return}case"flow-map-end":case"flow-seq-end":t.end.push(this.sourceToken);return}const i=this.startBlockValue(t);i?this.stack.push(i):(yield*this.pop(),yield*this.step())}else{const i=this.peek(2);if(i.type==="block-map"&&(this.type==="map-value-ind"&&i.indent===t.indent||this.type==="newline"&&!i.items[i.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&i.type!=="flow-collection"){const o=d8(i),s=hg(o);tK(t);const r=t.end.splice(1,t.end.length);r.push(this.sourceToken);const a={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:s,key:t,sep:r}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(t)}}flowScalar(t){if(this.onNewLine){let n=this.source.indexOf(` +`)+1;for(;n!==0;)this.onNewLine(this.offset+n),n=this.source.indexOf(` +`,n)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;const n=d8(t),i=hg(n);return i.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;const n=d8(t),i=hg(n);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,n){return this.type!=="comment"||this.indent<=n?!1:t.every(i=>i.type==="newline"||i.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}}function Vtt(e){const t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new Wtt||null,prettyErrors:t}}function Utt(e,t={}){const{lineCounter:n,prettyErrors:i}=Vtt(t),o=new qtt(n?.addNewLine),s=new Ntt(t);let r=null;for(const a of s.compose(o.parse(e),!0,e.length))if(!r)r=a;else if(r.options.logLevel!=="silent"){r.errors.push(new n4(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return i&&n&&(r.errors.forEach(QU(e,n)),r.warnings.forEach(QU(e,n))),r}function Ktt(e,t,n){let i=null;if(Array.isArray(t)&&(i=t),e===void 0){const{keepUndefined:o}={};if(!o)return}return fb(e)&&!i?e.toString(n):new hO(e,i,n).toString(n)}function nK(e){return e===null||e===""?"—":typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):Ktt(e).trimEnd()}function Ztt(e){if(e.length>65536)return null;try{const t=Utt(e,{schema:"core"});if(t.errors.length||t.warnings.length||!kv(t.contents)||!t.contents.items.every(({key:i})=>Jo(i)&&typeof i.value=="string"))return null;const n=t.toJS({mapAsMap:!0,maxAliasCount:0});return n.size===0?null:Array.from(n,([i,o])=>({key:i,value:nK(o),tags:Array.isArray(o)&&o.length>0&&o.every(s=>s===null||typeof s!="object")?o.map(nK):null}))}catch{return null}}const Gtt={class:"metadata-title"},Qtt={key:0,class:"metadata-fields"},Ytt={key:0,class:"metadata-tags"},Jtt={key:1,class:"metadata-value"},Xtt={key:1,class:"metadata-source"},ent=Xe({__name:"Frontmatter",props:{source:{}},setup(e){const t=e,{t:n}=_m(),i=R(()=>Ztt(t.source));return(o,s)=>(b(),oe(p(vX),{size:"sm",class:"md-frontmatter",role:"region","aria-label":p(n)("filePreview.metadata")},{default:ie(()=>[A("div",Gtt,O(p(n)("filePreview.metadata")),1),i.value?(b(),I("dl",Qtt,[(b(!0),I(_e,null,yt(i.value,r=>(b(),I(_e,{key:r.key},[A("dt",null,O(r.key),1),A("dd",null,[r.tags?(b(),I("div",Ytt,[(b(!0),I(_e,null,yt(r.tags,(a,l)=>(b(),I("span",{key:l,class:"metadata-tag"},[V(p(pr),{variant:"soft",size:"lg"},{default:ie(()=>[Be(O(a),1)]),_:2},1024)]))),128))])):(b(),I("span",Jtt,O(r.value),1))])],64))),128))])):(b(),I("pre",Xtt,O(e.source),1))]),_:1},8,["aria-label"]))}}),tnt=kt(ent,[["__scopeId","data-v-88212169"]]),iK=new WeakSet;function nnt(e){iK.has(e)||(iK.add(e),e.core.ruler.after("github-task-lists","task-list-spacing",t=>{for(const n of t.tokens){if(n.type!=="inline"||n.children?.[0]?.type!=="checkbox_input")continue;const i=n.children.find(o=>o.type==="text");i&&(i.content=i.content.replace(/^[ \u00a0]/u,""))}}))}function f8(e,t){let n=0,i=t-1;for(;i>=0&&e[i]==="\\";)n++,i--;return n%2===1}const int=/\s/,ont=/\p{Nd}/u;function up(e,t){const n=e.codePointAt(t);return n===void 0?void 0:String.fromCodePoint(n)}function snt(e,t){if(t<=0)return;const n=e.charCodeAt(t-1),i=n>=56320&&n<=57343&&t>1?t-2:t-1,o=e.codePointAt(i);return o===void 0?void 0:String.fromCodePoint(o)}function oK(e){return e!==void 0&&int.test(e)}function ym(e){return e!==void 0&&ont.test(e)}function rnt(e,t){const n=e[t+1];return ym(up(e,t+1))?!0:(n==="-"||n==="+"||n==="."||n==="−"||n==="+"||n==="-")&&ym(up(e,t+2))}function Kw(e){return e!==void 0&&e>="A"&&e<="Z"}const Zle=new RegExp(String.raw`^(?:AED|AFN|ALL|AMD|ANG|AOA|ARS|AUD|AWG|AZN|BAM|BBD|BDT|BGN|BHD|BIF|BMD|BND|BOB|BRL|BSD|BTN|BWP|BYN|BZD|CAD|CDF|CHF|CLF|CLP|CNY|COP|CRC|CUC|CUP|CVE|CZK|DJF|DKK|DOP|DZD|EGP|ERN|ETB|EUR|FJD|FKP|GBP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HKD|HNL|HRK|HTG|HUF|IDR|ILS|INR|IQD|IRR|ISK|JMD|JOD|JPY|KES|KGS|KHR|KMF|KPW|KRW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRU|MUR|MVR|MWK|MXN|MYR|MZN|NAD|NGN|NIO|NOK|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PLN|PYG|QAR|RON|RSD|RUB|RWF|SAR|SBD|SCR|SDG|SEK|SGD|SHP|SLE|SLL|SOS|SRD|SSP|STN|SVC|SYP|SZL|THB|TJS|TMT|TND|TOP|TRY|TTD|TWD|TZS|UAH|UGX|USD|UYU|UZS|VED|VES|VND|VUV|WST|XAF|XCD|XOF|XPF|YER|ZAR|ZMW|ZWL|HK|US|SG|AU|CA|NZ|NT|TW|RMB|MEX|TT|BZ|EU|UK)$`);function ant(e,t){if(!Kw(e[t-1]))return!1;let n=t-1;for(;n>0&&Kw(e[n-1]);)n--;return Zle.test(e.slice(n,t))||ym(up(e,t+1))?!0:t-n<=2&&!/[\p{L}\p{Nd}]/u.test(e[n-1]??"")&&!/\p{L}/u.test(up(e,t+1)??"")}function lnt(e,t){if(!Kw(e[t-1]))return!1;let n=t-1;for(;n>0&&Kw(e[n-1]);)n--;return Zle.test(e.slice(n,t))?!0:t-n<=2&&!/[\p{L}\p{Nd}]/u.test(e[n-1]??"")}const cnt=/^[-–—,,、;;::~~(([【//]$/;function unt(e,t){const n=e[t+1];if(n!=="-"&&n!=="+"&&n!=="."||!ym(up(e,t+2)))return!1;const i=e[t-1];return i!==void 0&&cnt.test(i)}function dnt(e){const t=String.raw`[、,,;;::~~\-–—至到//\s()()=*×=]|和|跟|与|及|或|and|or`;let n=e.replace(new RegExp(String.raw`^(?:${t})+`,"u"),"");for(;;){const c=n.replace(new RegExp(String.raw`^\p{L}+(?:${t})+`,"u"),"").replace(/^[\p{L}][\p{L} ]*(?=\p{Nd})/u,"");if(c===n)break;n=c}if(!/\p{Nd}/u.test(n))return!1;const i=1,o=2,s=4,r=8,a=16,l=new Uint8Array(n.length+1);l[0]=i;for(let c=0;c{for(;l=(a[l]?.[1]??0);)l++;const z=a[l];return z!==void 0&&D>=z[0]},u=new Set(' \n\r)。,、;:!?"<>`「」『』【】〔〕()*—–“”‘’'),d=[];for(const D of e.matchAll(/\b(?:https?:\/\/|ftp:\/\/|mailto:|www\.)/gi))d.push(D.index);for(const D of e.matchAll(/[\w.-]+/g)){const z=D.index+D[0].length;if(e[z]!=="/"&&e[z]!=="?"&&!(e[z]===":"&&/\d/.test(e[z+1]??"")))continue;const $=D[0].replace(/^\.+/,"");/^(?:localhost|(?:\d{1,3}\.){3}\d{1,3}|[\w-]+(?:\.[\w-]+)*\.[a-zA-Z]{2,})$/i.test($)&&d.push(z-$.length)}for(const D of e.matchAll(/[\p{L}\p{Nd}._~/-]+/gu))e[D.index+D[0].length]==="?"&&/^(?:\.{1,2})?\/[\p{L}\p{Nd}._-]+(?:\/[\p{L}\p{Nd}._-]*)*$/u.test(D[0])&&d.push(D.index);d.sort((D,z)=>D-z);let f=-1;for(const D of d){if(DD+7&&!/[\w/?#@~.+&=%-]/.test(e[z+1]??""))break}z++}r.push([D,z]),f=z}const h=[];for(let D=0;D]/.test(G))continue;let K=z,te=Od,J=Od;for(;K"){J=K;break}if(!$&&q==="/"&&e[K+1]===">"){J=K+1;break}if(!/\s/.test(q)){te=K;break}for(;K"){J=K;break}if($){te=K;break}if(Y==="/"&&e[K+1]===">"){J=K+1;break}const ae=/^[a-zA-Z_:][\w:.-]*/.exec(e.slice(K));if(!ae){te=K;break}K+=ae[0].length;let pe=K;for(;pe`]+/.exec(e.slice(pe));if(!fe){te=pe;break}K=pe+fe[0].length}}}if(J!==Od)h.push([D,J+1]),D=J;else if(te!==Od){const q=e.indexOf("<",D+1);D=(q!==-1&&q",D+2);te===-1?g=!1:(h.push([D,te+2]),D=te+1,$=!0)}else if(z==="!"){if(e[D+2]==="-"&&e[D+3]==="-"){if(m){const te=e.indexOf("-->",D+4);te===-1?m=!1:(h.push([D,te+3]),D=te+2,$=!0)}}else if(e.startsWith("[CDATA[",D+2)){if(y){const te=e.indexOf("]]>",D+9);te===-1?y=!1:(h.push([D,te+3]),D=te+2,$=!0)}}else if(v&&/[A-Z]/.test(e[D+2]??"")){const te=e.indexOf(">",D+3);te===-1?v=!1:(h.push([D,te+1]),D=te,$=!0)}}if($)continue;if(z!==void 0&&/[a-zA-Z]/.test(z)){const te=/^[a-zA-Z][a-zA-Z0-9+.-]{1,31}:/.exec(e.slice(D+1));if(te){let J=D+1+te[0].length;for(;J"&&e[J]!=="<"&&!/\s/.test(e[J]);)J++;if(e[J]===">"){h.push([D,J+1]),D=J;continue}}}if(z===void 0||!/[\w.!#$%&'*+/=?^`{|}~-]/.test(z))continue;let j=D+1;for(;j"&&(h.push([D,j+1]),D=j)}}h.sort((D,z)=>D[0]-z[0]);const k=[];for(const[D,z]of h){const $=k[k.length-1];$&&D<=$[1]?$[1]=Math.max($[1],z):k.push([D,z])}r.push(...k);let w=0;const C=D=>{for(;w=(k[w]?.[1]??0);)w++;const z=k[w];return z!==void 0&&D>=z[0]},x=[];let S=null,M=0,_=!1;for(let D=0;D"&&(_=!1);else if(!(c(D)||C(D))){if(S!==null)e[D]===S&&(S=null);else if(x.length>0&&(e[D]==='"'||e[D]==="'")&&D>0&&/\s/.test(e[D-1]))S=e[D];else if(e[D]==="[")M++;else if(e[D]==="]")M>0&&e[D+1]==="("&&(x.push(D),_=e[D+2]==="<",D++),M=Math.max(0,M-1);else if(e[D]==="("&&x.length>0)x.push(-1);else if(e[D]===")"&&x.length>0){const z=x.pop();if(z!==void 0&&z>=0){const $=e.slice(z+2,D);(/\s/.exec($)===null||$.startsWith("<")&&/^<(?:\\[<>]|[^<>])*>$/.test($)||/^[^\s]*\s+("([^"\\]|\\.)*"|'([^'\\]|\\.)*'|\(([^()\\]|\\.)*\))$/.test($))&&r.push([z,D+1])}}}r.sort((D,z)=>D[0]-z[0]);const T=[];for(const[D,z]of r){const $=T[T.length-1];$&&D<=$[1]?$[1]=Math.max($[1],z):T.push([D,z])}const E=D=>{let z=0,$=T.length-1;for(;z<=$;){const j=z+$>>1,G=T[j];if(G===void 0)return!1;if(D=G[1])z=j+1;else return!0}return!1},L=new Uint8Array(t);{let D=-1,z=!1,$=!1,j=0;for(let G=0;G<=t;G++){const K=G0&&(te==="{"?j++:te==="}"&&j--)}}for(let D=0;D=0;D--)n[D]===aK&&(P=D),i[D]=P;const N=/^[\p{L}\p{Nd}\\|{([+.¬°-±×÷′-″←-⇿∀-⋿^_<>=-]$/u,U=/[^\p{L}\p{Nd}\s]$/u,F=/[^\s\u0020-\u007E\u0370-\u03FF\u{1D400}-\u{1D7FF}\p{Nd}¬°-±×÷′-″←-⇿∀-⋿]/u,B=/(?:^|\s)[a-z]{2,}/,W=(D,z)=>{const $=up(e,D+1);if($===void 0||!N.test($))return!1;const j=i[D+1]??Od;if(j!==Od){const G=e.slice(D+1,j);return!(G.length===((G.codePointAt(0)??0)>65535?2:1))&&F.test(G)||/[,;:!?]$/.test(G)||/^[a-z]{2,}$/.test(G)?!1:(o[j]??0)-(o[D+1]??0)===0&&(s[j]??0)-(s[D+1]??0)===0}return U.test(z)||F.test(z)||B.test(z)};return(D,z=-1)=>{if(e[D]!=="$"||n[D]===sK||e[D+1]==="$"||e[D-1]==="$"&&z!==D||ant(e,D)||D+1>=t||oK(e[D+1]))return null;const $=i[D+1]??Od;if($===Od||(o[$]??0)-(o[D+1]??0)>0||(s[$]??0)-(s[D+1]??0)>0)return null;const j=e.slice(D+1,$);return/^\{[A-Z_][A-Z0-9_]*(?:\}$|[:-])/.test(j)||e[$+1]==="{"&&/^\{[A-Za-z_][A-Za-z0-9_]*(?:[:-][^{}]*)?\}$/.test(j)||ym(snt(e,D))&&dnt(j)||rnt(e,D)&&(W($,j)||lnt(e,$)||/\s/.test(j)&&/\p{Nd}$/u.test(j)&&!/[+\-*/^=_<>|\\¬°-±×÷′-″←-⇿∀-⋿]/.test(j)||e[$+1]==="$"&&!/\p{L}/u.test(j)&&/[^\p{L}\p{Nd}\s]$/u.test(j))?null:{content:j,end:$+1}}}const lK=new WeakMap;function hnt(e,t){if(e.src[e.pos]!=="$")return!1;let n=lK.get(e);(!n||n.src!==e.src)&&(n={src:e.src,match:fnt(e.src),lastEnd:-1},lK.set(e,n));const i=n.match(e.pos,n.lastEnd);if(!i||i.end>e.posMax)return!1;if(n.lastEnd=i.end,t)return e.pos=i.end,!0;const o=e.push("math_inline","math",0);return o.content=i.content,o.markup="$",o.raw=e.src.slice(e.pos,i.end),o.loading=!1,e.pos=i.end,!0}function cK(e){return nnt(e),e.set({typographer:!1}),e.inline.ruler.disable("math"),e.inline.ruler.before("escape","math",hnt),e}function*Gle(e){let t,n=0;for(;n=t.length&&c===""&&(yield{start:t.start,end:o,info:t.info,contentStart:t.contentStart,contentEnd:Math.max(t.contentStart,n-1)},t=void 0):i!==-1&&(a!=="`"||!c.includes("`"))&&(t={start:n,marker:a,length:l,info:c,contentStart:o+1})}n=o+1}}function pnt(e){const t=[];let n=0;for(const o of Gle(e)){if(!/^diff\b/.test(o.info))continue;const s=e.slice(n,o.start);s.trim()&&t.push({kind:"md",text:s}),t.push({kind:"diff",code:e.slice(o.contentStart,o.contentEnd)}),n=o.end}const i=e.slice(n);return(i.trim()||t.length===0)&&t.push({kind:"md",text:i}),t}const mnt=12e4,gnt=6e4,vnt=32,ynt=3e4;function uK(e){let t=0,n=0,i=0;for(const s of Gle(e)){const r=s.contentEnd-s.contentStart;t+=1,n+=r,i=Math.max(i,r)}return{renderCodeBlocksAsPre:e.length>=mnt||n>=gnt||t>=vnt||i>=ynt,codeFenceCount:t,codeChars:n}}function bnt(e){const t=[];let n=-1,i=-1;for(let u=0;ud&&t.push({start:d,end:f,src:e.slice(d,f)}),u=i}const o=[];let s=-1;const r=/",r.lastIndex)),s!==-1);){const u=e.slice(r.lastIndex,s);for(const d of u.matchAll(/\bsrc="/gi)){const f=r.lastIndex+d.index+d[0].length,h=e.indexOf('"',f);if(h===-1)break;if(h!==f){o.push({start:f,end:h,src:e.slice(f,h)}),s=Math.max(s,h);break}}r.lastIndex=s+1}const a=[];let l=0,c=0;for(;l{for(let i in n)e[i]=n[i]}),e}function Yle(e){const t=~e.lastIndexOf("/")||~e.lastIndexOf("\\");return t===0?e:~t===e.length-1?Yle(e.substring(0,e.length-1)):e.substr(~t+1)}var __=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g,h8=class{static hasCaptures(e){return e===null?!1:(__.lastIndex=0,__.test(e))}static replaceCaptures(e,t,n){return e.replace(__,(i,o,s,r)=>{let a=n[parseInt(o||s,10)];if(a){let l=t.substring(a.start,a.end);for(;l[0]===".";)l=l.substring(1);switch(r){case"downcase":return l.toLowerCase();case"upcase":return l.toUpperCase();default:return l}}else return i})}};function Jle(e,t){return et?1:0}function Xle(e,t){if(e===null&&t===null)return 0;if(!e)return-1;if(!t)return 1;let n=e.length,i=t.length;if(n===i){for(let o=0;othis._root.match(e));getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(e){if(e===null)return this._defaults;const t=e.scopeName,i=this._cachedMatchRoot.get(t).find(o=>xnt(e.parent,o.parentScopes));return i?new nce(i.fontStyle,i.foreground,i.background):null}},I_=class Ik{constructor(t,n){this.parent=t,this.scopeName=n}static push(t,n){for(const i of n)t=new Ik(t,i);return t}static from(...t){let n=null;for(let i=0;i"){if(n===t.length-1)return!1;i=t[++n],o=!0}for(;e&&!Snt(e.scopeName,i);){if(o)return!1;e=e.parent}if(!e)return!1;e=e.parent}return!0}function Snt(e,t){return t===e||e.startsWith(t)&&e[t.length]==="."}var nce=class{constructor(e,t,n){this.fontStyle=e,this.foregroundId=t,this.backgroundId=n}};function _nt(e){if(!e)return[];if(!e.settings||!Array.isArray(e.settings))return[];let t=e.settings,n=[],i=0;for(let o=0,s=t.length;o1&&(y=m.slice(0,m.length-1),y.reverse()),n[i++]=new Int(g,y,o,l,c,u)}}return n}var Int=class{constructor(e,t,n,i,o,s){this.scope=e,this.parentScopes=t,this.index=n,this.fontStyle=i,this.foreground=o,this.background=s}},Tnt=(e=>(e[e.NotSet=-1]="NotSet",e[e.None=0]="None",e[e.Italic=1]="Italic",e[e.Bold=2]="Bold",e[e.Underline=4]="Underline",e[e.Strikethrough=8]="Strikethrough",e))(Tnt||{});function Mnt(e,t){e.sort((l,c)=>{let u=Jle(l.scope,c.scope);return u!==0||(u=Xle(l.parentScopes,c.parentScopes),u!==0)?u:l.index-c.index});let n=0,i="#000000",o="#ffffff";for(;e.length>=1&&e[0].scope==="";){let l=e.shift();l.fontStyle!==-1&&(n=l.fontStyle),l.foreground!==null&&(i=l.foreground),l.background!==null&&(o=l.background)}let s=new Ent(t),r=new nce(n,s.getId(i),s.getId(o)),a=new Rnt(new BE(0,null,-1,0,0),[]);for(let l=0,c=e.length;lt?console.log("how did this happen?"):this.scopeDepth=t,n!==-1&&(this.fontStyle=n),i!==0&&(this.foreground=i),o!==0&&(this.background=o)}},Rnt=class zE{constructor(t,n=[],i={}){this._mainRule=t,this._children=i,this._rulesWithParentScopes=n}_rulesWithParentScopes;static _cmpBySpecificity(t,n){if(t.scopeDepth!==n.scopeDepth)return n.scopeDepth-t.scopeDepth;let i=0,o=0;for(;t.parentScopes[i]===">"&&i++,n.parentScopes[o]===">"&&o++,!(i>=t.parentScopes.length||o>=n.parentScopes.length);){const s=n.parentScopes[o].length-t.parentScopes[i].length;if(s!==0)return s;i++,o++}return n.parentScopes.length-t.parentScopes.length}match(t){if(t!==""){let i=t.indexOf("."),o,s;if(i===-1?(o=t,s=""):(o=t.substring(0,i),s=t.substring(i+1)),this._children.hasOwnProperty(o))return this._children[o].match(s)}const n=this._rulesWithParentScopes.concat(this._mainRule);return n.sort(zE._cmpBySpecificity),n}insert(t,n,i,o,s,r){if(n===""){this._doInsertHere(t,i,o,s,r);return}let a=n.indexOf("."),l,c;a===-1?(l=n,c=""):(l=n.substring(0,a),c=n.substring(a+1));let u;this._children.hasOwnProperty(l)?u=this._children[l]:(u=new zE(this._mainRule.clone(),BE.cloneArr(this._rulesWithParentScopes)),this._children[l]=u),u.insert(t+1,c,i,o,s,r)}_doInsertHere(t,n,i,o,s){if(n===null){this._mainRule.acceptOverwrite(t,i,o,s);return}for(let r=0,a=this._rulesWithParentScopes.length;r>>0}static getTokenType(t){return(t&768)>>>8}static containsBalancedBrackets(t){return(t&1024)!==0}static getFontStyle(t){return(t&30720)>>>11}static getForeground(t){return(t&16744448)>>>15}static getBackground(t){return(t&4278190080)>>>24}static set(t,n,i,o,s,r,a){let l=Yc.getLanguageId(t),c=Yc.getTokenType(t),u=Yc.containsBalancedBrackets(t)?1:0,d=Yc.getFontStyle(t),f=Yc.getForeground(t),h=Yc.getBackground(t);return n!==0&&(l=n),i!==8&&(c=i),o!==null&&(u=o?1:0),s!==-1&&(d=s),r!==0&&(f=r),a!==0&&(h=a),(l<<0|c<<8|u<<10|d<<11|f<<15|h<<24)>>>0}};function Gw(e,t){const n=[],i=Pnt(e);let o=i.next();for(;o!==null;){let l=0;if(o.length===2&&o.charAt(1)===":"){switch(o.charAt(0)){case"R":l=1;break;case"L":l=-1;break;default:console.log(`Unknown priority ${o} in scope selector`)}o=i.next()}let c=r();if(n.push({matcher:c,priority:l}),o!==",")break;o=i.next()}return n;function s(){if(o==="-"){o=i.next();const l=s();return c=>!!l&&!l(c)}if(o==="("){o=i.next();const l=a();return o===")"&&(o=i.next()),l}if(fK(o)){const l=[];do l.push(o),o=i.next();while(fK(o));return c=>t(l,c)}return null}function r(){const l=[];let c=s();for(;c;)l.push(c),c=s();return u=>l.every(d=>d(u))}function a(){const l=[];let c=r();for(;c&&(l.push(c),o==="|"||o===",");){do o=i.next();while(o==="|"||o===",");c=r()}return u=>l.some(d=>d(u))}}function fK(e){return!!e&&!!e.match(/[\w\.:]+/)}function Pnt(e){let t=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,n=t.exec(e);return{next:()=>{if(!n)return null;const i=n[0];return n=t.exec(e),i}}}function oce(e){typeof e.dispose=="function"&&e.dispose()}var h3=class{constructor(e){this.scopeName=e}toKey(){return this.scopeName}},$nt=class{constructor(e,t){this.scopeName=e,this.ruleName=t}toKey(){return`${this.scopeName}#${this.ruleName}`}},Ont=class{_references=[];_seenReferenceKeys=new Set;get references(){return this._references}visitedRule=new Set;add(e){const t=e.toKey();this._seenReferenceKeys.has(t)||(this._seenReferenceKeys.add(t),this._references.push(e))}},Fnt=class{constructor(e,t){this.repo=e,this.initialScopeName=t,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new h3(this.initialScopeName)]}seenFullScopeRequests=new Set;seenPartialScopeRequests=new Set;Q;processQueue(){const e=this.Q;this.Q=[];const t=new Ont;for(const n of e)Dnt(n,this.initialScopeName,this.repo,t);for(const n of t.references)if(n instanceof h3){if(this.seenFullScopeRequests.has(n.scopeName))continue;this.seenFullScopeRequests.add(n.scopeName),this.Q.push(n)}else{if(this.seenFullScopeRequests.has(n.scopeName)||this.seenPartialScopeRequests.has(n.toKey()))continue;this.seenPartialScopeRequests.add(n.toKey()),this.Q.push(n)}}};function Dnt(e,t,n,i){const o=n.lookup(e.scopeName);if(!o){if(e.scopeName===t)throw new Error(`No grammar provided for <${t}>`);return}const s=n.lookup(t);e instanceof h3?Tk({baseGrammar:s,selfGrammar:o},i):HE(e.ruleName,{baseGrammar:s,selfGrammar:o,repository:o.repository},i);const r=n.injections(e.scopeName);if(r)for(const a of r)i.add(new h3(a))}function HE(e,t,n){if(t.repository&&t.repository[e]){const i=t.repository[e];Qw([i],t,n)}}function Tk(e,t){e.selfGrammar.patterns&&Array.isArray(e.selfGrammar.patterns)&&Qw(e.selfGrammar.patterns,{...e,repository:e.selfGrammar.repository},t),e.selfGrammar.injections&&Qw(Object.values(e.selfGrammar.injections),{...e,repository:e.selfGrammar.repository},t)}function Qw(e,t,n){for(const i of e){if(n.visitedRule.has(i))continue;n.visitedRule.add(i);const o=i.repository?Qle({},t.repository,i.repository):t.repository;Array.isArray(i.patterns)&&Qw(i.patterns,{...t,repository:o},n);const s=i.include;if(!s)continue;const r=sce(s);switch(r.kind){case 0:Tk({...t,selfGrammar:t.baseGrammar},n);break;case 1:Tk(t,n);break;case 2:HE(r.ruleName,{...t,repository:o},n);break;case 3:case 4:const a=r.scopeName===t.selfGrammar.scopeName?t.selfGrammar:r.scopeName===t.baseGrammar.scopeName?t.baseGrammar:void 0;if(a){const l={baseGrammar:t.baseGrammar,selfGrammar:a,repository:o};r.kind===4?HE(r.ruleName,l,n):Tk(l,n)}else r.kind===4?n.add(new $nt(r.scopeName,r.ruleName)):n.add(new h3(r.scopeName));break}}}var Nnt=class{kind=0},Bnt=class{kind=1},znt=class{constructor(e){this.ruleName=e}kind=2},Hnt=class{constructor(e){this.scopeName=e}kind=3},jnt=class{constructor(e,t){this.scopeName=e,this.ruleName=t}kind=4};function sce(e){if(e==="$base")return new Nnt;if(e==="$self")return new Bnt;const t=e.indexOf("#");if(t===-1)return new Hnt(e);if(t===0)return new znt(e.substring(1));{const n=e.substring(0,t),i=e.substring(t+1);return new jnt(n,i)}}var Wnt=/\\(\d+)/,hK=/\\(\d+)/g,qnt=-1,rce=-2;var gb=class{$location;id;_nameIsCapturing;_name;_contentNameIsCapturing;_contentName;constructor(e,t,n,i){this.$location=e,this.id=t,this._name=n||null,this._nameIsCapturing=h8.hasCaptures(this._name),this._contentName=i||null,this._contentNameIsCapturing=h8.hasCaptures(this._contentName)}get debugName(){const e=this.$location?`${Yle(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${e}`}getName(e,t){return!this._nameIsCapturing||this._name===null||e===null||t===null?this._name:h8.replaceCaptures(this._name,e,t)}getContentName(e,t){return!this._contentNameIsCapturing||this._contentName===null?this._contentName:h8.replaceCaptures(this._contentName,e,t)}},Vnt=class extends gb{retokenizeCapturedWithRuleId;constructor(e,t,n,i,o){super(e,t,n,i),this.retokenizeCapturedWithRuleId=o}dispose(){}collectPatterns(e,t){throw new Error("Not supported!")}compile(e,t){throw new Error("Not supported!")}compileAG(e,t,n,i){throw new Error("Not supported!")}},Unt=class extends gb{_match;captures;_cachedCompiledPatterns;constructor(e,t,n,i,o){super(e,t,n,null),this._match=new p3(i,this.id),this.captures=o,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(e,t){t.push(this._match)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,i){return this._getCachedCompiledPatterns(e).compileAG(e,n,i)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new m3,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},pK=class extends gb{hasMissingPatterns;patterns;_cachedCompiledPatterns;constructor(e,t,n,i,o){super(e,t,n,i),this.patterns=o.patterns,this.hasMissingPatterns=o.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(e,t){for(const n of this.patterns)e.getRule(n).collectPatterns(e,t)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,i){return this._getCachedCompiledPatterns(e).compileAG(e,n,i)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new m3,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},jE=class extends gb{_begin;beginCaptures;_end;endHasBackReferences;endCaptures;applyEndPatternLast;hasMissingPatterns;patterns;_cachedCompiledPatterns;constructor(e,t,n,i,o,s,r,a,l,c){super(e,t,n,i),this._begin=new p3(o,this.id),this.beginCaptures=s,this._end=new p3(r||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=a,this.applyEndPatternLast=l||!1,this.patterns=c.patterns,this.hasMissingPatterns=c.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(e,t){return this._end.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e,t).compile(e)}compileAG(e,t,n,i){return this._getCachedCompiledPatterns(e,t).compileAG(e,n,i)}_getCachedCompiledPatterns(e,t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new m3;for(const n of this.patterns)e.getRule(n).collectPatterns(e,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,t):this._cachedCompiledPatterns.setSource(0,t)),this._cachedCompiledPatterns}},Yw=class extends gb{_begin;beginCaptures;whileCaptures;_while;whileHasBackReferences;hasMissingPatterns;patterns;_cachedCompiledPatterns;_cachedCompiledWhilePatterns;constructor(e,t,n,i,o,s,r,a,l){super(e,t,n,i),this._begin=new p3(o,this.id),this.beginCaptures=s,this.whileCaptures=a,this._while=new p3(r,rce),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=l.patterns,this.hasMissingPatterns=l.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(e,t){return this._while.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,i){return this._getCachedCompiledPatterns(e).compileAG(e,n,i)}_getCachedCompiledPatterns(e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new m3;for(const t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(e,t){return this._getCachedCompiledWhilePatterns(e,t).compile(e)}compileWhileAG(e,t,n,i){return this._getCachedCompiledWhilePatterns(e,t).compileAG(e,n,i)}_getCachedCompiledWhilePatterns(e,t){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new m3,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,t||"￿"),this._cachedCompiledWhilePatterns}},ace=class Da{static createCaptureRule(t,n,i,o,s){return t.registerRule(r=>new Vnt(n,r,i,o,s))}static getCompiledRuleId(t,n,i){return t.id||n.registerRule(o=>{if(t.id=o,t.match)return new Unt(t.$vscodeTextmateLocation,t.id,t.name,t.match,Da._compileCaptures(t.captures,n,i));if(typeof t.begin>"u"){t.repository&&(i=Qle({},i,t.repository));let s=t.patterns;return typeof s>"u"&&t.include&&(s=[{include:t.include}]),new pK(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,Da._compilePatterns(s,n,i))}return t.while?new Yw(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,Da._compileCaptures(t.beginCaptures||t.captures,n,i),t.while,Da._compileCaptures(t.whileCaptures||t.captures,n,i),Da._compilePatterns(t.patterns,n,i)):new jE(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,Da._compileCaptures(t.beginCaptures||t.captures,n,i),t.end,Da._compileCaptures(t.endCaptures||t.captures,n,i),t.applyEndPatternLast,Da._compilePatterns(t.patterns,n,i))}),t.id}static _compileCaptures(t,n,i){let o=[];if(t){let s=0;for(const r in t){if(r==="$vscodeTextmateLocation")continue;const a=parseInt(r,10);a>s&&(s=a)}for(let r=0;r<=s;r++)o[r]=null;for(const r in t){if(r==="$vscodeTextmateLocation")continue;const a=parseInt(r,10);let l=0;t[r].patterns&&(l=Da.getCompiledRuleId(t[r],n,i)),o[a]=Da.createCaptureRule(n,t[r].$vscodeTextmateLocation,t[r].name,t[r].contentName,l)}}return o}static _compilePatterns(t,n,i){let o=[];if(t)for(let s=0,r=t.length;st.substring(o.start,o.end));return hK.lastIndex=0,this.source.replace(hK,(o,s)=>ece(i[parseInt(s,10)]||""))}_buildAnchorCache(){if(typeof this.source!="string")throw new Error("This method should only be called if the source is a string");let t=[],n=[],i=[],o=[],s,r,a,l;for(s=0,r=this.source.length;sn.source);this._cached=new mK(e,t,this._items.map(n=>n.ruleId))}return this._cached}compileAG(e,t,n){return this._hasAnchors?t?n?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(e,t,n)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(e,t,n)),this._anchorCache.A1_G0):n?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(e,t,n)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(e,t,n)),this._anchorCache.A0_G0):this.compile(e)}_resolveAnchors(e,t,n){let i=this._items.map(o=>o.resolveAnchors(t,n));return new mK(e,i,this._items.map(o=>o.ruleId))}},mK=class{constructor(e,t,n){this.regExps=t,this.rules=n,this.scanner=e.createOnigScanner(t)}scanner;dispose(){typeof this.scanner.dispose=="function"&&this.scanner.dispose()}toString(){const e=[];for(let t=0,n=this.rules.length;t{const n=this._scopeToLanguage(t),i=this._toStandardTokenType(t);return new T_(n,i)});_scopeToLanguage(t){return this._embeddedLanguagesMatcher.match(t)||0}_toStandardTokenType(t){const n=t.match(WE.STANDARD_TOKEN_TYPE_REGEXP);if(!n)return 8;switch(n[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}static STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/},Znt=class{values;scopesRegExp;constructor(e){if(e.length===0)this.values=null,this.scopesRegExp=null;else{this.values=new Map(e);const t=e.map(([n,i])=>ece(n));t.sort(),t.reverse(),this.scopesRegExp=new RegExp(`^((${t.join(")|(")}))($|\\.)`,"")}}match(e){if(!this.scopesRegExp)return;const t=e.match(this.scopesRegExp);if(t)return this.values.get(t[1])}},gK=class{constructor(e,t){this.stack=e,this.stoppedEarly=t}};function cce(e,t,n,i,o,s,r,a){const l=t.content.length;let c=!1,u=-1;if(r){const h=Gnt(e,t,n,i,o,s);o=h.stack,i=h.linePos,n=h.isFirstLine,u=h.anchorPosition}const d=Date.now();for(;!c;){if(a!==0&&Date.now()-d>a)return new gK(o,!0);f()}return new gK(o,!1);function f(){const h=Qnt(e,t,n,i,o,u);if(!h){s.produce(o,l),c=!0;return}const m=h.captureIndices,g=h.matchedRuleId,y=m&&m.length>0?m[0].end>i:!1;if(g===qnt){const v=o.getRule(e);s.produce(o,m[0].start),o=o.withContentNameScopesList(o.nameScopesList),i4(e,t,n,o,s,v.endCaptures,m),s.produce(o,m[0].end);const k=o;if(o=o.parent,u=k.getAnchorPos(),!y&&k.getEnterPos()===i){o=k,s.produce(o,l),c=!0;return}}else{const v=e.getRule(g);s.produce(o,m[0].start);const k=o,w=v.getName(t.content,m),C=o.contentNameScopesList.pushAttributed(w,e);if(o=o.push(g,i,u,m[0].end===l,null,C,C),v instanceof jE){const x=v;i4(e,t,n,o,s,x.beginCaptures,m),s.produce(o,m[0].end),u=m[0].end;const S=x.getContentName(t.content,m),M=C.pushAttributed(S,e);if(o=o.withContentNameScopesList(M),x.endHasBackReferences&&(o=o.withEndRule(x.getEndWithResolvedBackReferences(t.content,m))),!y&&k.hasSameRuleAs(o)){o=o.pop(),s.produce(o,l),c=!0;return}}else if(v instanceof Yw){const x=v;i4(e,t,n,o,s,x.beginCaptures,m),s.produce(o,m[0].end),u=m[0].end;const S=x.getContentName(t.content,m),M=C.pushAttributed(S,e);if(o=o.withContentNameScopesList(M),x.whileHasBackReferences&&(o=o.withEndRule(x.getWhileWithResolvedBackReferences(t.content,m))),!y&&k.hasSameRuleAs(o)){o=o.pop(),s.produce(o,l),c=!0;return}}else if(i4(e,t,n,o,s,v.captures,m),s.produce(o,m[0].end),o=o.pop(),!y){o=o.safePop(),s.produce(o,l),c=!0;return}}m[0].end>i&&(i=m[0].end,n=!1)}}function Gnt(e,t,n,i,o,s){let r=o.beginRuleCapturedEOL?0:-1;const a=[];for(let l=o;l;l=l.pop()){const c=l.getRule(e);c instanceof Yw&&a.push({rule:c,stack:l})}for(let l=a.pop();l;l=a.pop()){const{ruleScanner:c,findOptions:u}=Xnt(l.rule,e,l.stack.endRule,n,i===r),d=c.findNextMatchSync(t,i,u);if(d){if(d.ruleId!==rce){o=l.stack.pop();break}d.captureIndices&&d.captureIndices.length&&(s.produce(l.stack,d.captureIndices[0].start),i4(e,t,n,l.stack,s,l.rule.whileCaptures,d.captureIndices),s.produce(l.stack,d.captureIndices[0].end),r=d.captureIndices[0].end,d.captureIndices[0].end>i&&(i=d.captureIndices[0].end,n=!1))}else{o=l.stack.pop();break}}return{stack:o,linePos:i,anchorPosition:r,isFirstLine:n}}function Qnt(e,t,n,i,o,s){const r=Ynt(e,t,n,i,o,s),a=e.getInjections();if(a.length===0)return r;const l=Jnt(a,e,t,n,i,o,s);if(!l)return r;if(!r)return l;const c=r.captureIndices[0].start,u=l.captureIndices[0].start;return u=a)&&(a=w,l=k.captureIndices,c=k.ruleId,u=m.priority,a===o))break}return l?{priorityMatch:u===-1,captureIndices:l,matchedRuleId:c}:null}function uce(e,t,n,i,o){return{ruleScanner:e.compileAG(t,n,i,o),findOptions:0}}function Xnt(e,t,n,i,o){return{ruleScanner:e.compileWhileAG(t,n,i,o),findOptions:0}}function i4(e,t,n,i,o,s,r){if(s.length===0)return;const a=t.content,l=Math.min(s.length,r.length),c=[],u=r[0].end;for(let d=0;du)break;for(;c.length>0&&c[c.length-1].endPos<=h.start;)o.produceFromScopes(c[c.length-1].scopes,c[c.length-1].endPos),c.pop();if(c.length>0?o.produceFromScopes(c[c.length-1].scopes,h.start):o.produce(i,h.start),f.retokenizeCapturedWithRuleId){const g=f.getName(a,r),y=i.contentNameScopesList.pushAttributed(g,e),v=f.getContentName(a,r),k=y.pushAttributed(v,e),w=i.push(f.retokenizeCapturedWithRuleId,h.start,-1,!1,null,y,k),C=e.createOnigString(a.substring(0,h.end));cce(e,C,n&&h.start===0,h.start,w,o,!1,0),oce(C);continue}const m=f.getName(a,r);if(m!==null){const y=(c.length>0?c[c.length-1].scopes:i.contentNameScopesList).pushAttributed(m,e);c.push(new eit(y,h.end))}}for(;c.length>0;)o.produceFromScopes(c[c.length-1].scopes,c[c.length-1].endPos),c.pop()}var eit=class{scopes;endPos;constructor(e,t){this.scopes=e,this.endPos=t}};function tit(e,t,n,i,o,s,r,a){return new iit(e,t,n,i,o,s,r,a)}function vK(e,t,n,i,o){const s=Gw(t,Jw),r=ace.getCompiledRuleId(n,i,o.repository);for(const a of s)e.push({debugSelector:t,matcher:a.matcher,ruleId:r,grammar:o,priority:a.priority})}function Jw(e,t){if(t.length{for(let o=n;on&&e.substr(0,n)===t&&e[n]==="."}var iit=class{constructor(e,t,n,i,o,s,r,a){if(this._rootScopeName=e,this.balancedBracketSelectors=s,this._onigLib=a,this._basicScopeAttributesProvider=new Knt(n,i),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=r,this._grammar=yK(t,null),this._injections=null,this._tokenTypeMatchers=[],o)for(const l of Object.keys(o)){const c=Gw(l,Jw);for(const u of c)this._tokenTypeMatchers.push({matcher:u.matcher,type:o[l]})}}_rootId;_lastRuleId;_ruleId2desc;_includedGrammars;_grammarRepository;_grammar;_injections;_basicScopeAttributesProvider;_tokenTypeMatchers;get themeProvider(){return this._grammarRepository}dispose(){for(const e of this._ruleId2desc)e&&e.dispose()}createOnigScanner(e){return this._onigLib.createOnigScanner(e)}createOnigString(e){return this._onigLib.createOnigString(e)}getMetadataForScope(e){return this._basicScopeAttributesProvider.getBasicScopeAttributes(e)}_collectInjections(){const e={lookup:o=>o===this._rootScopeName?this._grammar:this.getExternalGrammar(o),injections:o=>this._grammarRepository.injections(o)},t=[],n=this._rootScopeName,i=e.lookup(n);if(i){const o=i.injections;if(o)for(let r in o)vK(t,r,o[r],this,i);const s=this._grammarRepository.injections(n);s&&s.forEach(r=>{const a=this.getExternalGrammar(r);if(a){const l=a.injectionSelector;l&&vK(t,l,a,this,a)}})}return t.sort((o,s)=>o.priority-s.priority),t}getInjections(){return this._injections===null&&(this._injections=this._collectInjections()),this._injections}registerRule(e){const t=++this._lastRuleId,n=e(t);return this._ruleId2desc[t]=n,n}getRule(e){return this._ruleId2desc[e]}getExternalGrammar(e,t){if(this._includedGrammars[e])return this._includedGrammars[e];if(this._grammarRepository){const n=this._grammarRepository.lookup(e);if(n)return this._includedGrammars[e]=yK(n,t&&t.$base),this._includedGrammars[e]}}tokenizeLine(e,t,n=0){const i=this._tokenize(e,t,!1,n);return{tokens:i.lineTokens.getResult(i.ruleStack,i.lineLength),ruleStack:i.ruleStack,stoppedEarly:i.stoppedEarly}}tokenizeLine2(e,t,n=0){const i=this._tokenize(e,t,!0,n);return{tokens:i.lineTokens.getBinaryResult(i.ruleStack,i.lineLength),ruleStack:i.ruleStack,stoppedEarly:i.stoppedEarly}}_tokenize(e,t,n,i){this._rootId===-1&&(this._rootId=ace.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections());let o;if(!t||t===qE.NULL){o=!0;const c=this._basicScopeAttributesProvider.getDefaultAttributes(),u=this.themeProvider.getDefaults(),d=em.set(0,c.languageId,c.tokenType,null,u.fontStyle,u.foregroundId,u.backgroundId),f=this.getRule(this._rootId).getName(null,null);let h;f?h=n9.createRootAndLookUpScopeName(f,d,this):h=n9.createRoot("unknown",d),t=new qE(null,this._rootId,-1,-1,!1,null,h,h)}else o=!1,t.reset();e=e+` +`;const s=this.createOnigString(e),r=s.content.length,a=new sit(n,e,this._tokenTypeMatchers,this.balancedBracketSelectors),l=cce(this,s,o,0,t,a,!0,i);return oce(s),{lineLength:r,lineTokens:a,ruleStack:l.stack,stoppedEarly:l.stoppedEarly}}};function yK(e,t){return e=wnt(e),e.repository=e.repository||{},e.repository.$self={$vscodeTextmateLocation:e.$vscodeTextmateLocation,patterns:e.patterns,name:e.scopeName},e.repository.$base=t||e.repository.$self,e}var n9=class zd{constructor(t,n,i){this.parent=t,this.scopePath=n,this.tokenAttributes=i}static fromExtension(t,n){let i=t,o=t?.scopePath??null;for(const s of n)o=I_.push(o,s.scopeNames),i=new zd(i,o,s.encodedTokenAttributes);return i}static createRoot(t,n){return new zd(null,new I_(null,t),n)}static createRootAndLookUpScopeName(t,n,i){const o=i.getMetadataForScope(t),s=new I_(null,t),r=i.themeProvider.themeMatch(s),a=zd.mergeAttributes(n,o,r);return new zd(null,s,a)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(" ")}equals(t){return zd.equals(this,t)}static equals(t,n){do{if(t===n||!t&&!n)return!0;if(!t||!n||t.scopeName!==n.scopeName||t.tokenAttributes!==n.tokenAttributes)return!1;t=t.parent,n=n.parent}while(!0)}static mergeAttributes(t,n,i){let o=-1,s=0,r=0;return i!==null&&(o=i.fontStyle,s=i.foregroundId,r=i.backgroundId),em.set(t,n.languageId,n.tokenType,null,o,s,r)}pushAttributed(t,n){if(t===null)return this;if(t.indexOf(" ")===-1)return zd._pushAttributed(this,t,n);const i=t.split(/ /g);let o=this;for(const s of i)o=zd._pushAttributed(o,s,n);return o}static _pushAttributed(t,n,i){const o=i.getMetadataForScope(n),s=t.scopePath.push(n),r=i.themeProvider.themeMatch(s),a=zd.mergeAttributes(t.tokenAttributes,o,r);return new zd(t,s,a)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(t){const n=[];let i=this;for(;i&&i!==t;)n.push({encodedTokenAttributes:i.tokenAttributes,scopeNames:i.scopePath.getExtensionIfDefined(i.parent?.scopePath??null)}),i=i.parent;return i===t?n.reverse():void 0}},qE=class u0{constructor(t,n,i,o,s,r,a,l){this.parent=t,this.ruleId=n,this.beginRuleCapturedEOL=s,this.endRule=r,this.nameScopesList=a,this.contentNameScopesList=l,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=i,this._anchorPos=o}_stackElementBrand=void 0;static NULL=new u0(null,0,0,0,!1,null,null,null);_enterPos;_anchorPos;depth;equals(t){return t===null?!1:u0._equals(this,t)}static _equals(t,n){return t===n?!0:this._structuralEquals(t,n)?n9.equals(t.contentNameScopesList,n.contentNameScopesList):!1}static _structuralEquals(t,n){do{if(t===n||!t&&!n)return!0;if(!t||!n||t.depth!==n.depth||t.ruleId!==n.ruleId||t.endRule!==n.endRule)return!1;t=t.parent,n=n.parent}while(!0)}clone(){return this}static _reset(t){for(;t;)t._enterPos=-1,t._anchorPos=-1,t=t.parent}reset(){u0._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(t,n,i,o,s,r,a){return new u0(this,t,n,i,o,s,r,a)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(t){return t.getRule(this.ruleId)}toString(){const t=[];return this._writeString(t,0),"["+t.join(",")+"]"}_writeString(t,n){return this.parent&&(n=this.parent._writeString(t,n)),t[n++]=`(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`,n}withContentNameScopesList(t){return this.contentNameScopesList===t?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,t)}withEndRule(t){return this.endRule===t?this:new u0(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,t,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(t){let n=this;for(;n&&n._enterPos===t._enterPos;){if(n.ruleId===t.ruleId)return!0;n=n.parent}return!1}toStateStackFrame(){return{ruleId:this.ruleId,beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList??null)??[],contentNameScopesList:this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList)??[]}}static pushFrame(t,n){const i=n9.fromExtension(t?.nameScopesList??null,n.nameScopesList);return new u0(t,n.ruleId,n.enterPos??-1,n.anchorPos??-1,n.beginRuleCapturedEOL,n.endRule,i,n9.fromExtension(i,n.contentNameScopesList))}},oit=class{balancedBracketScopes;unbalancedBracketScopes;allowAny=!1;constructor(e,t){this.balancedBracketScopes=e.flatMap(n=>n==="*"?(this.allowAny=!0,[]):Gw(n,Jw).map(i=>i.matcher)),this.unbalancedBracketScopes=t.flatMap(n=>Gw(n,Jw).map(i=>i.matcher))}get matchesAlways(){return this.allowAny&&this.unbalancedBracketScopes.length===0}get matchesNever(){return this.balancedBracketScopes.length===0&&!this.allowAny}match(e){for(const t of this.unbalancedBracketScopes)if(t(e))return!1;for(const t of this.balancedBracketScopes)if(t(e))return!0;return this.allowAny}},sit=class{constructor(e,t,n,i){this.balancedBracketSelectors=i,this._emitBinaryTokens=e,this._tokenTypeOverrides=n,this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}_emitBinaryTokens;_lineText;_tokens;_binaryTokens;_lastTokenEndIndex;_tokenTypeOverrides;produce(e,t){this.produceFromScopes(e.contentNameScopesList,t)}produceFromScopes(e,t){if(this._lastTokenEndIndex>=t)return;if(this._emitBinaryTokens){let i=e?.tokenAttributes??0,o=!1;if(this.balancedBracketSelectors?.matchesAlways&&(o=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const s=e?.getScopeNames()??[];for(const r of this._tokenTypeOverrides)r.matcher(s)&&(i=em.set(i,0,r.type,null,-1,0,0));this.balancedBracketSelectors&&(o=this.balancedBracketSelectors.match(s))}if(o&&(i=em.set(i,0,8,o,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===i){this._lastTokenEndIndex=t;return}this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(i),this._lastTokenEndIndex=t;return}const n=e?.getScopeNames()??[];this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:t,scopes:n}),this._lastTokenEndIndex=t}getResult(e,t){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===t-1&&this._tokens.pop(),this._tokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(e,t){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===t-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),this._binaryTokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._binaryTokens[this._binaryTokens.length-2]=0);const n=new Uint32Array(this._binaryTokens.length);for(let i=0,o=this._binaryTokens.length;i0;)r.Q.map(a=>this._loadSingleGrammar(a.scopeName)),r.processQueue();return this._grammarForScopeName(t,n,i,o,s)}_loadSingleGrammar(t){this._ensureGrammarCache.has(t)||(this._doLoadSingleGrammar(t),this._ensureGrammarCache.set(t,!0))}_doLoadSingleGrammar(t){const n=this._options.loadGrammar(t);if(n){const i=typeof this._options.getInjections=="function"?this._options.getInjections(t):void 0;this._syncRegistry.addGrammar(n,i)}}addGrammar(t,n=[],i=0,o=null){return this._syncRegistry.addGrammar(t,n),this._grammarForScopeName(t.scopeName,i,o)}_grammarForScopeName(t,n=0,i=null,o=null,s=null){return this._syncRegistry.grammarForScopeName(t,n,i,o,s)}},VE=qE.NULL;function lit(e,t){const n=typeof e=="string"?{}:{...e.colorReplacements},i=typeof e=="string"?e:e.name;for(const[o,s]of Object.entries(t?.colorReplacements||{}))typeof s=="string"?n[o]=s:o===i&&Object.assign(n,s);return n}function cit(e,t){return e&&(t?.[e?.toLowerCase()]||e)}function uit(e){return Array.isArray(e)?e:[e]}async function dce(e){return Promise.resolve(typeof e=="function"?e():e).then(t=>t.default||t)}function gO(e){return!e||["plaintext","txt","text","plain"].includes(e)}function dit(e){return e==="ansi"||gO(e)}function vO(e){return e==="none"}function fit(e){return vO(e)}const hit=/(\r?\n)/g;function fce(e,t=!1){if(e.length===0)return[["",0]];const n=e.split(hit);let i=0;const o=[];for(let s=0;s!l.name&&!l.scope):void 0;a?.settings?.foreground&&(i=a.settings.foreground),a?.settings?.background&&(n=a.settings.background),!i&&t?.colors?.["editor.foreground"]&&(i=t.colors["editor.foreground"]),!n&&t?.colors?.["editor.background"]&&(n=t.colors["editor.background"]),i||(i=t.type==="light"?bK.light:bK.dark),n||(n=t.type==="light"?kK.light:kK.dark),t.fg=i,t.bg=n}t.settings[0]&&t.settings[0].settings&&!t.settings[0].scope||t.settings.unshift({settings:{foreground:t.fg,background:t.bg}});let o=0;const s=new Map;function r(a){if(s.has(a))return s.get(a);o+=1;const l=`#${o.toString(16).padStart(8,"0").toLowerCase()}`;return t.colorReplacements?.[`#${l}`]?r(a):(s.set(a,l),l)}t.settings=t.settings.map(a=>{const l=a.settings?.foreground&&!a.settings.foreground.startsWith("#"),c=a.settings?.background&&!a.settings.background.startsWith("#");if(!l&&!c)return a;const u={...a,settings:{...a.settings}};if(l){const d=r(a.settings.foreground);t.colorReplacements[d]=a.settings.foreground,u.settings.foreground=d}if(c){const d=r(a.settings.background);t.colorReplacements[d]=a.settings.background,u.settings.background=d}return u});for(const a of Object.keys(t.colors||{}))if((a==="editor.foreground"||a==="editor.background"||a.startsWith("terminal.ansi"))&&!t.colors[a]?.startsWith("#")){const l=r(t.colors[a]);t.colorReplacements[l]=t.colors[a],t.colors[a]=l}return Object.defineProperty(t,wK,{enumerable:!1,writable:!1,value:!0}),t}async function hce(e){return[...new Set((await Promise.all(e.filter(t=>!dit(t)).map(async t=>await dce(t).then(n=>Array.isArray(n)?n:[n])))).flat())]}async function pce(e){return(await Promise.all(e.map(async t=>fit(t)?null:JC(await dce(t))))).filter(t=>!!t)}function mce(e,t){if(!t)return e;if(t[e]){const n=new Set([e]);for(;t[e];){if(e=t[e],n.has(e))throw new ed(`Circular alias \`${[...n].join(" -> ")} -> ${e}\``);n.add(e)}}return e}var pit=class extends ait{_resolver;_themes;_langs;_alias;_resolvedThemes=new Map;_resolvedGrammars=new Map;_langMap=new Map;_langGraph=new Map;_textmateThemeCache=new WeakMap;_loadedThemesCache=null;_loadedLanguagesCache=null;constructor(e,t,n,i={}){super(e),this._resolver=e,this._themes=t,this._langs=n,this._alias=i,this._themes.map(o=>this.loadTheme(o)),this.loadLanguages(this._langs)}getTheme(e){return typeof e=="string"?this._resolvedThemes.get(e):this.loadTheme(e)}loadTheme(e){const t=JC(e);return t.name&&(this._resolvedThemes.set(t.name,t),this._loadedThemesCache=null),t}getLoadedThemes(){return this._loadedThemesCache||(this._loadedThemesCache=[...this._resolvedThemes.keys()]),this._loadedThemesCache}setTheme(e){let t=this._textmateThemeCache.get(e);t||(t=Zw.createFromRawTheme(e),this._textmateThemeCache.set(e,t)),this._syncRegistry.setTheme(t)}getGrammar(e){return e=mce(e,this._alias),this._resolvedGrammars.get(e)}loadLanguage(e){if(this.getGrammar(e.name))return;const t=new Set([...this._langMap.values()].filter(o=>o.embeddedLangsLazy?.includes(e.name)));this._resolver.addLanguage(e);const n={balancedBracketSelectors:e.balancedBracketSelectors||["*"],unbalancedBracketSelectors:e.unbalancedBracketSelectors||[]};this._syncRegistry._rawGrammars.set(e.scopeName,e);const i=this.loadGrammarWithConfiguration(e.scopeName,1,n);if(i.name=e.name,this._resolvedGrammars.set(e.name,i),e.aliases&&e.aliases.forEach(o=>{this._alias[o]=e.name}),this._loadedLanguagesCache=null,t.size)for(const o of t)this._resolvedGrammars.delete(o.name),this._loadedLanguagesCache=null,this._syncRegistry?._injectionGrammars?.delete(o.scopeName),this._syncRegistry?._grammars?.delete(o.scopeName),this.loadLanguage(this._langMap.get(o.name))}dispose(){super.dispose(),this._resolvedThemes.clear(),this._resolvedGrammars.clear(),this._langMap.clear(),this._langGraph.clear(),this._loadedThemesCache=null}loadLanguages(e){for(const i of e)this.resolveEmbeddedLanguages(i);const t=[...this._langGraph.entries()],n=t.filter(([i,o])=>!o);if(n.length){const i=t.filter(([o,s])=>s?(s.embeddedLanguages||s.embeddedLangs)?.some(r=>n.map(([a])=>a).includes(r)):!1).filter(o=>!n.includes(o));throw new ed(`Missing languages ${n.map(([o])=>`\`${o}\``).join(", ")}, required by ${i.map(([o])=>`\`${o}\``).join(", ")}`)}for(const[i,o]of t)this._resolver.addLanguage(o);for(const[i,o]of t)this.loadLanguage(o)}getLoadedLanguages(){return this._loadedLanguagesCache||(this._loadedLanguagesCache=[...new Set([...this._resolvedGrammars.keys(),...Object.keys(this._alias)])]),this._loadedLanguagesCache}resolveEmbeddedLanguages(e){this._langMap.set(e.name,e),this._langGraph.set(e.name,e);const t=e.embeddedLanguages??e.embeddedLangs;if(t)for(const n of t)this._langGraph.set(n,this._langMap.get(n))}},mit=class{_langs=new Map;_scopeToLang=new Map;_injections=new Map;_onigLib;constructor(e,t){this._onigLib={createOnigScanner:n=>e.createScanner(n),createOnigString:n=>e.createString(n)},t.forEach(n=>this.addLanguage(n))}get onigLib(){return this._onigLib}getLangRegistration(e){return this._langs.get(e)}loadGrammar(e){return this._scopeToLang.get(e)}addLanguage(e){this._langs.set(e.name,e),e.aliases&&e.aliases.forEach(t=>{this._langs.set(t,e)}),this._scopeToLang.set(e.scopeName,e),e.injectTo&&e.injectTo.forEach(t=>{this._injections.get(t)||this._injections.set(t,[]),this._injections.get(t).push(e.scopeName)})}getInjections(e){const t=e.split(".");let n=[];for(let i=1;i<=t.length;i++){const o=t.slice(0,i).join(".");n=[...n,...this._injections.get(o)||[]]}return n}};let Ay=0;function gce(e){Ay+=1,e.warnings!==!1&&Ay>=10&&Ay%10===0&&console.warn(`[Shiki] ${Ay} instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call \`highlighter.dispose()\` to release unused instances.`);let t=!1;if(!e.engine)throw new ed("`engine` option is required for synchronous mode");const n=(e.langs||[]).flat(1),i=(e.themes||[]).flat(1).map(JC),o=new pit(new mit(e.engine,n),i,n,e.langAlias);let s;function r(k){return mce(k,e.langAlias)}function a(k){y();const w=o.getGrammar(typeof k=="string"?k:k.name);if(!w)throw new ed(`Language \`${k}\` not found, you may need to load it first`);return w}function l(k){if(k==="none")return{bg:"",fg:"",name:"none",settings:[],type:"dark"};y();const w=o.getTheme(k);if(!w)throw new ed(`Theme \`${k}\` not found, you may need to load it first`);return w}function c(k){y();const w=l(k);return s!==k&&(o.setTheme(w),s=k),{theme:w,colorMap:o.getColorMap()}}function u(){return y(),o.getLoadedThemes()}function d(){return y(),o.getLoadedLanguages()}function f(...k){y(),o.loadLanguages(k.flat(1))}async function h(...k){return f(await hce(k))}function m(...k){y();for(const w of k.flat(1))o.loadTheme(w)}async function g(...k){return y(),m(await pce(k))}function y(){if(t)throw new ed("Shiki instance has been disposed")}function v(){t||(t=!0,o.dispose(),Ay-=1)}return{setTheme:c,getTheme:l,getLanguage:a,getLoadedThemes:u,getLoadedLanguages:d,resolveLangAlias:r,loadLanguage:h,loadLanguageSync:f,loadTheme:g,loadThemeSync:m,dispose:v,[Symbol.dispose]:v}}const Crn=gce;async function git(e){e.engine||console.warn("`engine` option is required. Use `createOnigurumaEngine` or `createJavaScriptRegexEngine` to create an engine.");const[t,n,i]=await Promise.all([pce(e.themes||[]),hce(e.langs||[]),e.engine]);return gce({...e,themes:t,langs:n,engine:i})}const Arn=git,vce=new WeakMap;function yce(e,t){vce.set(e,t)}function bce(e){return vce.get(e)}var XC=class kce{_stacks={};lang;get themes(){return Object.keys(this._stacks)}get theme(){return this.themes[0]}get _stack(){return this._stacks[this.theme]}static initial(t,n){return new kce(Object.fromEntries(uit(n).map(i=>[i,VE])),t)}constructor(...t){if(t.length===2){const[n,i]=t;this.lang=i,this._stacks=n}else{const[n,i,o]=t;this.lang=i,this._stacks={[o]:n}}}getInternalStack(t=this.theme){return this._stacks[t]}getScopes(t=this.theme){return vit(this._stacks[t])}toJSON(){return{lang:this.lang,theme:this.theme,themes:this.themes,scopes:this.getScopes()}}};function vit(e){const t=[],n=new Set;function i(o){if(n.has(o))return;n.add(o);const s=o?.nameScopesList?.scopeName;s&&t.push(s),o.parent&&i(o.parent)}return i(e),t}function yit(e,t){if(!(e instanceof XC))throw new ed("Invalid grammar state");return e.getInternalStack(t)}const bit=/,/,kit=/ /;function wit(e,t,n={}){const{theme:i=e.getLoadedThemes()[0]}=n;if(gO(e.resolveLangAlias(n.lang||"text"))||vO(i))return fce(t).map(a=>[{content:a[0],offset:a[1]}]);const{theme:o,colorMap:s}=e.setTheme(i),r=e.getLanguage(n.lang||"text");if(n.grammarState){if(n.grammarState.lang!==r.name)throw new ed(`Grammar state language "${n.grammarState.lang}" does not match highlight language "${r.name}"`);if(!n.grammarState.themes.includes(o.name))throw new ed(`Grammar state themes "${n.grammarState.themes}" do not contain highlight theme "${o.name}"`)}return Cit(t,r,o,s,n)}function xrn(...e){if(e.length===2)return bce(e[1]);const[t,n,i={}]=e,{lang:o="text",theme:s=t.getLoadedThemes()[0]}=i;if(gO(o)||vO(s))throw new ed("Plain language does not have grammar state");if(o==="ansi")throw new ed("ANSI language does not have grammar state");const{theme:r,colorMap:a}=t.setTheme(s),l=t.getLanguage(o);return new XC(yO(n,l,r,a,i).stateStack,l.name,r.name)}function Cit(e,t,n,i,o){const s=yO(e,t,n,i,o),r=new XC(s.stateStack,t.name,n.name);return yce(s.tokens,r),s.tokens}function yO(e,t,n,i,o){const s=lit(n,o),{tokenizeMaxLineLength:r=0,tokenizeTimeLimit:a=500,includeExplanation:l=!1}=o,c=fce(e);let u=o.grammarState?yit(o.grammarState,n.name)??VE:o.grammarContextCode!=null?yO(o.grammarContextCode,t,n,i,{...o,grammarState:void 0,grammarContextCode:void 0}).stateStack:VE,d=[];const f=[];for(let h=0,m=c.length;h0&&g.length>=r){d=[],f.push([{content:g,offset:y,color:"",fontStyle:0}]);continue}let v,k,w;l&&l!=="tokenType"&&(v=t.tokenizeLine(g,u,a),k=v.tokens,w=0);const C=t.tokenizeLine2(g,u,a),x=C.tokens.length/2;for(let S=0;SW.trim());break;case"object":B=F.scope;break;default:continue}N.push({settings:F,selectors:B.map(W=>W.split(kit))})}P.explanation=[];let U=0;for(;M+U<_;){const F=k[w],B=g.substring(F.startIndex,F.endIndex);U+=B.length,P.explanation.push({content:B,scopes:l==="scopeName"?Ait(F.scopes):xit(N,F.scopes)}),w+=1}}d.push(P)}f.push(d),d=[],u=C.ruleStack}return{tokens:f,stateStack:u}}function Ait(e){return e.map(t=>({scopeName:t}))}function xit(e,t){const n=[];for(let i=0,o=t.length;i=0&&o>=0;)CK(e[i],n[o])&&(i-=1),o-=1;return i===-1}function _it(e,t,n){const i=[];for(const{selectors:o,settings:s}of e)for(const r of o)if(Sit(r,t,n)){i.push(s);break}return i}function Srn(e,t,n,i=wit){const o=Object.entries(n.themes).filter(c=>c[1]).map(c=>({color:c[0],theme:c[1]})),s=o.map(c=>{const u=i(e,t,{...n,theme:c.theme});return{tokens:u,state:bce(u),theme:typeof c.theme=="string"?c.theme:c.theme.name}}),r=Iit(...s.map(c=>c.tokens)),a=r[0].map((c,u)=>c.map((d,f)=>{const h={content:d.content,variants:{},offset:d.offset};return"includeExplanation"in n&&n.includeExplanation&&(h.explanation=d.explanation),r.forEach((m,g)=>{const{content:y,explanation:v,offset:k,...w}=m[u][f];h.variants[o[g].color]=w}),h})),l=s[0].state?new XC(Object.fromEntries(s.map(c=>[c.theme,c.state?.getInternalStack(c.theme)])),s[0].state.lang):void 0;return l&&yce(a,l),a}function Iit(...e){const t=e.map(()=>[]),n=e.length;for(let i=0;il[i]),s=t.map(()=>[]);t.forEach((l,c)=>l.push(s[c]));const r=o.map(()=>0),a=o.map(l=>l[0]);for(;a.every(l=>l);){const l=Math.min(...a.map(c=>c.content.length));for(let c=0;cd.colorScheme==="light")),s=Object.freeze(i.filter(d=>d.colorScheme==="dark")),r=new Map(i.map(d=>[d.name,d])),a=Object.freeze(i.map(d=>d.name)),l=Object.freeze(o.map(d=>d.name)),c=Object.freeze(s.map(d=>d.name));function u(d){if(d==null)return i;const{colorScheme:f,collection:h}=d;return h==null?f==="light"?o:f==="dark"?s:i:i.filter(m=>m.collection!==h?!1:f==null||m.colorScheme===f)}return{getTheme(d){return r.get(d)},getThemes(d){return u(d)},getThemeNames(d){return d?.collection==null?d?.colorScheme==="light"?l:d?.colorScheme==="dark"?c:a:u(d).map(f=>f.name)},hasTheme(d){return r.has(d)},orderBy(d){return g3({themes:i.map((f,h)=>({descriptor:f,index:h})).sort((f,h)=>{const m=d(f.descriptor,h.descriptor);return m!==0?m:f.index-h.index}).map(f=>f.descriptor)})},pick(d){const f=[],h=new Set;for(const m of d){if(h.has(m))throw new Error(`Theme collection pick already includes theme "${m}"`);h.add(m);const g=r.get(m);if(g==null)throw new Error(`Theme collection does not contain theme "${m}"`);f.push(g)}return g3({themes:f})},registerInto(d){for(const f of i)d.registerThemeIfAbsent(f.name,f.load)}}}function Tit(e){return Mit(e)?[e]:e}function Mit(e){return wce(e)||Eit(e)}function Eit(e){return typeof e.name=="string"&&typeof e.load=="function"}function wce(e){return typeof e.getThemes=="function"}function Cce(e){return e!==null&&typeof e=="object"&&"default"in e?e.default:e}var Ace=class extends Error{constructor(e){super(`Theme "${e}" is already registered`),this.name="DuplicateThemeError"}},Lit=class extends Error{constructor(e){super(`No loader registered for theme "${e}"`),this.name="UnregisteredThemeError"}},Rit=class extends Error{constructor(e){super(`Theme "${e}" has not been resolved`),this.name="UnresolvedThemeError"}};function Pit(){const e=new Map,t=new Map,n=new Map;let i=0;function o(v,k){if(e.has(v))throw new Ace(v);e.set(v,k)}function s(v,k){return e.has(v)?!1:(e.set(v,k),!0)}function r(v){return e.has(v)}function a(v){const k=t.get(v);if(k!==void 0)return Promise.resolve(k);const w=n.get(v);if(w!==void 0)return w;const C=e.get(v);if(C===void 0)return Promise.reject(new Lit(v));const x=i,S=C().then(M=>{const _=Cce(M);return x===i&&t.set(v,_),n.get(v)===S&&n.delete(v),_}).catch(M=>{throw n.get(v)===S&&n.delete(v),M});return n.set(v,S),S}function l(v){return Promise.all(v.map(k=>a(k)))}function c(v,k){t.set(v,k)}function u(v){for(const[k,w]of v)c(k,w)}function d(v){return t.get(v)}function f(v){const k=[];for(const w of v){const C=t.get(w);if(C===void 0)throw new Rit(w);k.push(C)}return k}function h(v){return t.has(v)}function m(v){for(const k of v)if(!t.has(k))return!1;return!0}function g(v){const k=t.get(v);return k!==void 0?k:a(v)}function y(){i++,t.clear(),n.clear()}return{clearResolvedThemes:y,getResolvedOrResolveTheme:g,getResolvedTheme:d,getResolvedThemes:f,hasRegisteredTheme:r,hasResolvedTheme:h,hasResolvedThemes:m,registerTheme:o,registerThemeIfAbsent:s,resolveTheme:a,resolveThemes:l,seedResolvedTheme:c,seedResolvedThemes:u}}const $it=Pit();function bO({name:e,load:t,colorScheme:n,collection:i,displayName:o}){return{name:e,colorScheme:n,collection:i,displayName:o,load:Oit(t)}}function Oit(e){return async()=>JC(Cce(await e()))}const Fit="pierre",Dit=["pierre-dark","pierre-dark-soft","pierre-dark-vibrant","pierre-dark-protanopia-deuteranopia","pierre-dark-tritanopia"],xce=["pierre-light","pierre-light-soft","pierre-light-vibrant","pierre-light-protanopia-deuteranopia","pierre-light-tritanopia"],Nit=[...xce,...Dit],Bit=new Set(xce);function zit(e){return Bit.has(e)?"light":"dark"}const Hit={"pierre-dark":"Pierre Dark","pierre-dark-soft":"Pierre Dark Soft","pierre-dark-vibrant":"Pierre Dark Vibrant","pierre-dark-protanopia-deuteranopia":"Pierre Dark Protanopia & Deuteranopia","pierre-dark-tritanopia":"Pierre Dark Tritanopia","pierre-light":"Pierre Light","pierre-light-soft":"Pierre Light Soft","pierre-light-vibrant":"Pierre Light Vibrant","pierre-light-protanopia-deuteranopia":"Pierre Light Protanopia & Deuteranopia","pierre-light-tritanopia":"Pierre Light Tritanopia"},jit={"pierre-dark":()=>pn(()=>import("./pierre-dark-CyvmCCZW.js"),[]),"pierre-dark-soft":()=>pn(()=>import("./pierre-dark-soft-BHGpRqa4.js"),[]),"pierre-dark-vibrant":()=>pn(()=>import("./pierre-dark-vibrant-BWBVywrn.js"),[]),"pierre-dark-protanopia-deuteranopia":()=>pn(()=>import("./pierre-dark-protanopia-deuteranopia-Rgc0TwpF.js"),[]),"pierre-dark-tritanopia":()=>pn(()=>import("./pierre-dark-tritanopia-Beq2gCRQ.js"),[]),"pierre-light":()=>pn(()=>import("./pierre-light-480U9XYS.js"),[]),"pierre-light-soft":()=>pn(()=>import("./pierre-light-soft-CVdyfjmI.js"),[]),"pierre-light-vibrant":()=>pn(()=>import("./pierre-light-vibrant-DdTDNdfJ.js"),[]),"pierre-light-protanopia-deuteranopia":()=>pn(()=>import("./pierre-light-protanopia-deuteranopia-CaVOBURG.js"),[]),"pierre-light-tritanopia":()=>pn(()=>import("./pierre-light-tritanopia-B4_gpKOM.js"),[])};function Wit(e){return bO({name:e,collection:Fit,colorScheme:zit(e),displayName:Hit[e],load:jit[e]})}const qit=g3({themes:Nit.map(e=>Wit(e))}),Vit="shiki",Sce=["ayu-light","catppuccin-latte","everforest-light","github-light","github-light-default","github-light-high-contrast","gruvbox-light-hard","gruvbox-light-medium","gruvbox-light-soft","horizon-bright","kanagawa-lotus","light-plus","material-theme-lighter","min-light","night-owl-light","one-light","rose-pine-dawn","slack-ochin","snazzy-light","solarized-light","vitesse-light"],Uit=["andromeeda","aurora-x","ayu-dark","ayu-mirage","catppuccin-frappe","catppuccin-macchiato","catppuccin-mocha","dark-plus","dracula","dracula-soft","everforest-dark","github-dark","github-dark-default","github-dark-dimmed","github-dark-high-contrast","gruvbox-dark-hard","gruvbox-dark-medium","gruvbox-dark-soft","horizon","houston","kanagawa-dragon","kanagawa-wave","laserwave","material-theme","material-theme-darker","material-theme-ocean","material-theme-palenight","min-dark","monokai","night-owl","nord","one-dark-pro","plastic","poimandres","red","rose-pine","rose-pine-moon","slack-dark","solarized-dark","synthwave-84","tokyo-night","vesper","vitesse-black","vitesse-dark"],Kit=new Set(Sce);function Zit(e){return Kit.has(e)?"light":"dark"}const Git={andromeeda:()=>pn(()=>import("./andromeeda-C4gqWexZ.js"),[]),"aurora-x":()=>pn(()=>import("./aurora-x-D-2ljcwZ.js"),[]),"ayu-dark":()=>pn(()=>import("./ayu-dark-DYE7WIF3.js"),[]),"ayu-light":()=>pn(()=>import("./ayu-light-BA47KaF1.js"),[]),"ayu-mirage":()=>pn(()=>import("./ayu-mirage-32ctXXKs.js"),[]),"catppuccin-frappe":()=>pn(()=>import("./catppuccin-frappe-DFWUc33u.js"),[]),"catppuccin-latte":()=>pn(()=>import("./catppuccin-latte-C9dUb6Cb.js"),[]),"catppuccin-macchiato":()=>pn(()=>import("./catppuccin-macchiato-DQyhUUbL.js"),[]),"catppuccin-mocha":()=>pn(()=>import("./catppuccin-mocha-D87Tk5Gz.js"),[]),"dark-plus":()=>pn(()=>import("./dark-plus-C3mMm8J8.js"),[]),dracula:()=>pn(()=>import("./dracula-BzJJZx-M.js"),[]),"dracula-soft":()=>pn(()=>import("./dracula-soft-BXkSAIEj.js"),[]),"everforest-dark":()=>pn(()=>import("./everforest-dark-BgDCqdQA.js"),[]),"everforest-light":()=>pn(()=>import("./everforest-light-C8M2exoo.js"),[]),"github-dark":()=>pn(()=>import("./github-dark-DHJKELXO.js"),[]),"github-dark-default":()=>pn(()=>import("./github-dark-default-Cuk6v7N8.js"),[]),"github-dark-dimmed":()=>pn(()=>import("./github-dark-dimmed-DH5Ifo-i.js"),[]),"github-dark-high-contrast":()=>pn(()=>import("./github-dark-high-contrast-E3gJ1_iC.js"),[]),"github-light":()=>pn(()=>import("./github-light-DAi9KRSo.js"),[]),"github-light-default":()=>pn(()=>import("./github-light-default-D7oLnXFd.js"),[]),"github-light-high-contrast":()=>pn(()=>import("./github-light-high-contrast-BfjtVDDH.js"),[]),"gruvbox-dark-hard":()=>pn(()=>import("./gruvbox-dark-hard-CFHQjOhq.js"),[]),"gruvbox-dark-medium":()=>pn(()=>import("./gruvbox-dark-medium-GsRaNv29.js"),[]),"gruvbox-dark-soft":()=>pn(()=>import("./gruvbox-dark-soft-CVdnzihN.js"),[]),"gruvbox-light-hard":()=>pn(()=>import("./gruvbox-light-hard-CH1njM8p.js"),[]),"gruvbox-light-medium":()=>pn(()=>import("./gruvbox-light-medium-DRw_LuNl.js"),[]),"gruvbox-light-soft":()=>pn(()=>import("./gruvbox-light-soft-hJgmCMqR.js"),[]),horizon:()=>pn(()=>import("./horizon-BUw7H-hv.js"),[]),"horizon-bright":()=>pn(()=>import("./horizon-bright-CUuTKBJd.js"),[]),houston:()=>pn(()=>import("./houston-DnULxvSX.js"),[]),"kanagawa-dragon":()=>pn(()=>import("./kanagawa-dragon-CkXjmgJE.js"),[]),"kanagawa-lotus":()=>pn(()=>import("./kanagawa-lotus-CfQXZHmo.js"),[]),"kanagawa-wave":()=>pn(()=>import("./kanagawa-wave-DWedfzmr.js"),[]),laserwave:()=>pn(()=>import("./laserwave-DUszq2jm.js"),[]),"light-plus":()=>pn(()=>import("./light-plus-B7mTdjB0.js"),[]),"material-theme":()=>pn(()=>import("./material-theme-D5KoaKCx.js"),[]),"material-theme-darker":()=>pn(()=>import("./material-theme-darker-BfHTSMKl.js"),[]),"material-theme-lighter":()=>pn(()=>import("./material-theme-lighter-B0m2ddpp.js"),[]),"material-theme-ocean":()=>pn(()=>import("./material-theme-ocean-CyktbL80.js"),[]),"material-theme-palenight":()=>pn(()=>import("./material-theme-palenight-Csfq5Kiy.js"),[]),"min-dark":()=>pn(()=>import("./min-dark-CafNBF8u.js"),[]),"min-light":()=>pn(()=>import("./min-light-CTRr51gU.js"),[]),monokai:()=>pn(()=>import("./monokai-D4h5O-jR.js"),[]),"night-owl":()=>pn(()=>import("./night-owl-C39BiMTA.js"),[]),"night-owl-light":()=>pn(()=>import("./night-owl-light-CMTm3GFP.js"),[]),nord:()=>pn(()=>import("./nord-Ddv68eIx.js"),[]),"one-dark-pro":()=>pn(()=>import("./one-dark-pro-DVMEJ2y_.js"),[]),"one-light":()=>pn(()=>import("./one-light-C3Wv6jpd.js"),[]),plastic:()=>pn(()=>import("./plastic-3e1v2bzS.js"),[]),poimandres:()=>pn(()=>import("./poimandres-CS3Unz2-.js"),[]),red:()=>pn(()=>import("./red-bN70gL4F.js"),[]),"rose-pine":()=>pn(()=>import("./rose-pine-qdsjHGoJ.js"),[]),"rose-pine-dawn":()=>pn(()=>import("./rose-pine-dawn-DHQR4-dF.js"),[]),"rose-pine-moon":()=>pn(()=>import("./rose-pine-moon-D4_iv3hh.js"),[]),"slack-dark":()=>pn(()=>import("./slack-dark-BthQWCQV.js"),[]),"slack-ochin":()=>pn(()=>import("./slack-ochin-DqwNpetd.js"),[]),"snazzy-light":()=>pn(()=>import("./snazzy-light-Bw305WKR.js"),[]),"solarized-dark":()=>pn(()=>import("./solarized-dark-DXbdFlpD.js"),[]),"solarized-light":()=>pn(()=>import("./solarized-light-L9t79GZl.js"),[]),"synthwave-84":()=>pn(()=>import("./synthwave-84-CbfX1IO0.js"),[]),"tokyo-night":()=>pn(()=>import("./tokyo-night-hegEt444.js"),[]),vesper:()=>pn(()=>import("./vesper-DRje8inN.js"),[]),"vitesse-black":()=>pn(()=>import("./vitesse-black-Bkuqu6BP.js"),[]),"vitesse-dark":()=>pn(()=>import("./vitesse-dark-D0r3Knsf.js"),[]),"vitesse-light":()=>pn(()=>import("./vitesse-light-CVO1_9PV.js"),[])};function AK(e){return bO({name:e,collection:Vit,colorScheme:Zit(e),load:Git[e]})}const Qit=g3({themes:Object.freeze([...Sce.map(e=>AK(e)),...Uit.map(e=>AK(e))])});g3({themes:[qit,Qit]});function _ce(e,t){try{const n=bO({name:e,load:t});$it.registerTheme(n.name,n.load)}catch(n){if(n instanceof Ace){console.error("SharedHighlight.registerCustomTheme: theme name already registered",e);return}throw n}}const kO="markdown-design",UE="markdown-design-dark",Ice={name:kO,type:"light",colors:{"editor.background":"var(--markdown-code-background)","editor.foreground":"var(--markdown-text-color)"},tokenColors:[{scope:["markup.heading"],settings:{foreground:"var(--markdown-syntax-heading-color)",fontStyle:"bold"}},{scope:["markup.bold"],settings:{foreground:"var(--markdown-syntax-keyword-color)",fontStyle:"bold"}},{scope:["markup.italic"],settings:{foreground:"var(--markdown-syntax-keyword-color)",fontStyle:"italic"}},{scope:["markup.strikethrough"],settings:{foreground:"var(--markdown-syntax-comment-color)",fontStyle:"strikethrough"}},{scope:["string.other.link.title","markup.underline.link"],settings:{foreground:"var(--markdown-link-color)"}},{scope:["markup.inline.raw"],settings:{foreground:"var(--markdown-syntax-string-color)"}},{scope:["markup.quote"],settings:{foreground:"var(--markdown-syntax-comment-color)"}},{scope:["punctuation.definition.list.begin.markdown","punctuation.definition.markdown","fenced_code.block.language.markdown","punctuation.definition.link","punctuation.definition.metadata.markdown"],settings:{foreground:"var(--markdown-syntax-keyword-color)"}},{scope:["support.type.property-name.json"],settings:{foreground:"var(--markdown-syntax-property-color)"}},{scope:["string.quoted.double.json"],settings:{foreground:"var(--markdown-syntax-string-color)"}},{scope:["keyword","storage"],settings:{foreground:"var(--markdown-syntax-keyword-color)"}},{scope:["entity.name.function","support.function"],settings:{foreground:"var(--markdown-syntax-function-color)"}},{scope:["constant.numeric","constant.language"],settings:{foreground:"var(--markdown-syntax-number-color)"}},{scope:["comment"],settings:{foreground:"var(--markdown-syntax-comment-color)"}}]};_ce(kO,()=>Promise.resolve(Ice));_ce(UE,()=>Promise.resolve({...Ice,name:UE}));function Yit(e){return/(?:`{3,}|~{3,})[ \t]*(?:markdown|md)\b/i.test(e)?Ew("markdown-code-preview").parse(e,{}).filter(t=>t.type==="fence"&&/^(?:markdown|md)(?:\s|$)/i.test(t.info.trim())).map(t=>t.content):[]}function Jit(e,t){const n=i=>i!=null&&["markdown","md"].includes(i.trim().toLowerCase());return n(e)||n(t)}function Xit(e,t,n=!1){let i=e,o=1;for(const s of t)s!==null&&(i=s),o=Math.max(o,String(i).length),i+=n?-1:1;return`${o+2}ch`}function eot(){const e=new Map;let t=0,n=0;const i=o=>{const s=e.get(o);s&&(t-=s.bytes,n-=s.images.size,e.delete(o))};return{get(o,s){const r=e.get(o);if(r){if(r.text!==s){i(o);return}return e.delete(o),e.set(o,r),r.images}},set(o,s,r){i(o);const a=new Map([...r].filter(([c,u])=>u&&u!==c)),l=2*(s.length+[...a].reduce((c,[u,d])=>c+u.length+d.length,0));if(!(!a.size||a.size>128||l>32*1024*1024))for(e.set(o,{text:s,images:a,bytes:l}),t+=l,n+=a.size;t>32*1024*1024||n>128;)i(e.keys().next().value)}}}const Tce=Symbol("history-images");async function wO(e){const t=typeof navigator<"u"?navigator.clipboard:void 0;if(t&&typeof t.writeText=="function")try{return await t.writeText(e),!0}catch{}return tot(e)}function xK(e){if(typeof e!="string")return;const t=typeof navigator<"u"?navigator.clipboard:void 0;t&&typeof t.writeText=="function"||wO(e)}function tot(e){if(typeof document>"u"||typeof document.execCommand!="function")return!1;const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.top="-9999px",t.style.left="-9999px",t.style.opacity="0",document.body.appendChild(t);let n=!1;try{t.focus(),t.select(),n=document.execCommand("copy")}catch{n=!1}finally{document.body.removeChild(t)}return n}function not(e){if(!e.includes("|"))return[];const t=e.split(` +`),n=[];for(const i of Ew("markdown-table-sources").parse(e,{}))i.type!=="table_open"||!i.map||n.push(t.slice(i.map[0],i.map[1]).join(` +`));return n}const iot=640,oot=`(max-width: ${iot}px)`;function hd(){const e=Z(!1);if(typeof window>"u"||typeof window.matchMedia!="function")return e;const t=window.matchMedia(oot);e.value=t.matches;const n=i=>{e.value=i.matches};return typeof t.addEventListener=="function"?(t.addEventListener("change",n),Xn(()=>t.removeEventListener("change",n))):typeof t.addListener=="function"&&(t.addListener(n),Xn(()=>t.removeListener(n))),e}const Mce=Z(typeof window>"u"?0:window.innerWidth);let p8=0,Xw=!1;function KE(){Mce.value=window.innerWidth}function sot(){Xw||typeof window>"u"||(window.addEventListener("resize",KE),Xw=!0,KE())}function rot(){!Xw||typeof window>"u"||(window.removeEventListener("resize",KE),Xw=!1)}function Ece(e,t,n){return Math.max(t,e-n)}function ZE(e,t,n){return Math.min(n,Math.max(t,e))}function Lce(){return Pn(()=>{p8+=1,sot()}),ki(()=>{p8=Math.max(0,p8-1),p8===0&&rot()}),{viewportWidth:Mce}}const aot=24;function CO(e){const t=Z(null),n=Z(!0),i=Z(!1),o=R(()=>!n.value&&i.value);let s=null,r=null,a=null,l=0,c=0,u=!1,d=0;function f(){const C=t.value;C&&(C.scrollTop=Math.max(C.scrollTop,l))}function h(){const x=t.value?.firstElementChild??null;x!==a&&(a&&s?.unobserve(a),a=x,x&&s?.observe(x))}function m(C){const x=l-C.scrollTop-c;return i.value=KI(i.value,x,c),x}function g(){const C=t.value;!C||u||(n.value=m(C)y(C));return}requestAnimationFrame(()=>{requestAnimationFrame(()=>y(C))})}function k(){n.value=!0,f()}function w(){const C=t.value;C&&(s?.disconnect(),r?.disconnect(),a=null,u=!1,d++,l=0,c=0,typeof ResizeObserver=="function"?(s=new ResizeObserver(()=>{const x=t.value;if(!x)return;const{scrollHeight:S,clientHeight:M}=x,_=S>l+1,T=M{n.value=!0,bt(w)}),Fe(t,()=>void bt(w)),Pn(()=>void bt(w)),Xn(()=>{d++,s?.disconnect(),r?.disconnect()}),{scroller:t,following:n,showJump:o,onScroll:g,pinScroll:v,jumpToBottom:k}}function lot(e){try{const t=lo(e);if(t===null)return null;const n=Number(t);return Number.isFinite(n)?n:null}catch{return null}}function cot(e,t){try{Eo(e,String(t))}catch{}}function Rce(e){const{storageKey:t,defaultWidth:n,min:i,max:o,reverse:s=!1,axis:r="x",applyLive:a,persist:l}=e;function c(N){return Number.isFinite(N)?Math.min($l(o),Math.max($l(i),Math.round(N))):n}const u=Z(c(lot(t)??n)),d=Z(!1);function f(N){const U=N<=$l(i),F=N>=$l(o),B=r==="x"?"col-resize":"row-resize";if(U&&F)return B;const[W,D]=r==="x"?["e-resize","w-resize"]:["s-resize","n-resize"];return F?$l(s)?W:D:U?$l(s)?D:W:B}const h=Z(null),m=R(()=>f(h.value??u.value));function g(N){typeof document>"u"||(document.body.style.cursor=f(N))}function y(N){l&&!l()||cot(t,N)}function v(N){const U=c(N);u.value=U,y(U)}Fe(()=>$l(o),N=>{!d.value&&u.value>N&&v(N)}),Fe(()=>$l(i),N=>{!d.value&&u.valuet.value!==null&&(n.value||i.value||o.value||s.value));function a(){const y=e.value;if(!y){t.value=null;return}const v=Pce(y.scrollTop,y.scrollHeight,y.clientHeight,M_(y,"--overlay-scrollbar-track-inset",0),M_(y,"--overlay-scrollbar-thumb-min",24)),k=v===null?null:{top:y.offsetTop+v.top,height:v.height},w=t.value;w!==null&&k!==null&&w.top===k.top&&w.height===k.height||(t.value=k)}let l=null;function c(){o.value=!0,l&&clearTimeout(l),l=setTimeout(()=>{o.value=!1,l=null},uot)}let u=null;function d(y){const v=e.value,k=t.value;if(!v||!k)return;y.preventDefault(),u?.();const w=y.pointerId;y.target.setPointerCapture?.(y.pointerId);const C=M_(v,"--overlay-scrollbar-track-inset",0),x=v.clientHeight-C*2-k.height,S=v.scrollHeight-v.clientHeight,M=y.clientY,_=v.scrollTop;s.value=!0;const T=P=>{P.pointerId!==w||x<=0||(v.scrollTop=_+(P.clientY-M)/x*S)},E=P=>{P.pointerId===w&&L()},L=()=>{window.removeEventListener("pointerup",E),window.removeEventListener("pointermove",T),window.removeEventListener("pointercancel",E),s.value=!1,u===L&&(u=null)};u=L,window.addEventListener("pointermove",T),window.addEventListener("pointerup",E),window.addEventListener("pointercancel",E)}function f(){n.value=!0}function h(){n.value=!1}function m(){i.value=!0}function g(){i.value=!1}return ki(()=>{l&&clearTimeout(l),u?.()}),{thumb:t,thumbVisible:r,scrolling:o,update:a,markScrolling:c,onThumbPointerDown:d,onListMouseEnter:f,onListMouseLeave:h,onThumbMouseEnter:m,onThumbMouseLeave:g}}const Yu=Z(null),w2=Z(!1),dot=R(()=>Yu.value!==null);function AO(e){const t=Yu.value;!t||w2.value||(Yu.value=null,t.resolve(e))}async function fot(){const e=Yu.value;if(!(!e||w2.value)){if(!e.action){AO(!0);return}w2.value=!0;try{await e.action(),Yu.value===e&&(Yu.value=null),e.resolve(!0)}catch(t){Yu.value===e&&(Yu.value=null),e.reject(t)}finally{w2.value=!1}}}let SK=0;function hot(e){return w2.value?Promise.resolve(!1):(Yu.value&&AO(!1),new Promise((t,n)=>{SK+=1,Yu.value={...e,seq:SK,resolve:t,reject:n}}))}function wh(){return{current:Yu,busy:w2,isConfirmOpen:dot,confirm:hot,settle:AO,runAction:fot}}function pot(e){const{sessionId:t}=e;function n(v){const k=o(v);return k!==null?_a(Mc(k)):lo(su(v))??""}function i(v,k){const w=su(v);v&&An().hasDeletedTombstone(v)&&(k="",Do(Ol(v)));const C=o(v);C!==null&&_a(Mc(C))!==k&&Do(Ol(v)),k?Eo(w,k):Do(w)}function o(v){return sf(Ua(Ol(v)))}function s(v){const k=o(v);if(k===null)return null;const w=new Set(k.attachments.filter(C=>C.purpose!=="browser-screenshot"&&!H8(C,v)).map(C=>C.attId));return kCe(k,w)}function r(v,k){if(v&&An().hasDeletedTombstone(v)){Do(Ol(v)),Do(su(v));return}const w=_a(Mc(k));w.length===0&&k.attachmentOrder.length===0?Do(Ol(v)):ua(Ol(v),k),w?Eo(su(v),w):Do(su(v))}function a(v){const k=n(v);if(k==="")return k;const w=new Set(l(v).map(C=>C.attId));return KT(k,w)}function l(v){const k=Ua(oh(v));if(!Array.isArray(k))return[];const w=[];for(const C of k){const x=wX(C);x!==null&&H8(x,v)&&w.push(x)}return w}let c=null;function u(v,k){const w=oh(v);if(k.length===0||v&&An().hasDeletedTombstone(v)){c=null,Do(w);return}const C=k.filter(M=>H8(M,v)).map(G7);if(C.length===0){c=null,Do(w);return}const x=o(v);if(x!==null&&C.length>0){const M=new Map(x.attachments.map(_=>[_.attId,_]));for(const _ of C)M.set(_.attId,_);ua(Ol(v),{...x,attachments:[...M.values()]})}const S=JSON.stringify(C);c?.key===w&&c.json===S||(c={key:w,json:S},ua(w,C))}let d=t();const f=Z(a(d)),h=Z(null);Fe(f,v=>{i(d,v)}),Fe(t,(v,k)=>{v!==k&&(e.onBeforeSessionSave?.(k),i(k,f.value),d=v,f.value=a(v))});function m(v){g(v)}function g(v){f.value=v,bt(()=>{const k=h.value;if(!k)return;k.focus();const w=v.length;k.setSelectionRange(w,w)})}function y(){Do(Ol(t())),i(t(),"")}return{text:f,editorRef:h,loadForEdit:m,clearDraft:y,loadDraftAttachments:l,saveDraftAttachments:u,saveDraft:i,loadDraftSnapshot:o,loadRestorableDraftSnapshot:s,saveDraftSnapshot:r}}function mot(e){return e?e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.isContentEditable===!0:!1}function got(e){const{sessionId:t,mobile:n,starting:i,dockedComposer:o,emptyComposer:s}=e,r=Z(!1);Fe(t,()=>{n()||(r.value=!0)}),Fe([r,o,s,i],()=>{if(!r.value)return;const a=o.value??s.value;if(!a)return;const l=typeof document<"u"?document.activeElement:null;if(mot(l)){r.value=!1;return}a.focus(),(typeof document>"u"||document.activeElement!==l)&&(r.value=!1)},{flush:"post"})}const C2=100,vot=1024*1024;function yot(e){if(typeof e=="string")return e.length>0?e:null;if(typeof e!="object"||e===null)return null;const t=e;if(typeof t.text!="string")return null;const n=sf(t.snapshot);return n===null?t.text.length>0?t.text:null:{text:t.text,snapshot:n}}function _K(e){let t=vot-4;const n={};for(const[i,o]of Object.entries(e).reverse()){const s=JSON.stringify(i).length*2+8;if(s>t)continue;let r=t-s;const a=[];for(const l of o.slice(-C2).reverse()){const c=JSON.stringify(l).length*2+2;c>r||(a.unshift(l),r-=c)}a.length>0&&(n[i]=a,t=r)}return Object.fromEntries(Object.entries(n).reverse())}function GE(e){const t=Ua(xn.inputHistory);if(Array.isArray(t)){const n=t.filter(s=>typeof s=="string"&&s.length>0);if(!e||n.length===0)return{};const i=n.length>C2?n.slice(-C2):n,o={[e]:i};return ua(xn.inputHistory,o),o}return t&&typeof t=="object"?Object.fromEntries(Object.entries(t).flatMap(([n,i])=>Array.isArray(i)?[[n,i.flatMap(o=>yot(o)??[]).slice(-C2)]]:[])):{}}function bot(e){const t=GE(e);if(!(e in t))return;const{[e]:n,...i}=t;ua(xn.inputHistory,i)}function kot(e){const{text:t,editorRef:n,sessionId:i}=e,o=Z(_K(GE(i()))),s=R(()=>o.value[i()??""]??[]);let r=-1,a="",l,c=0;function u(C,x){const S=i();if(v(),!S)return;const M=C.trim();if(!M&&(x?.attachmentOrder.length??0)===0)return;const _=x===void 0?void 0:{...x,attachments:x.attachments.map(W=>{const{previewUrl:D,thumbnailUrl:z,...$}=W;return $})},T=_===void 0?null:sf(_),E=T===null?M:{text:M,snapshot:T},L=GE(S),P=L[S]??o.value[S]??[];if(JSON.stringify(P.at(-1))===JSON.stringify(E))return;const N=[...P,E],U=N.length>C2?N.slice(-C2):N,{[S]:F,...B}=L;o.value=_K({...B,[S]:U}),ua(xn.inputHistory,o.value)}function d(){return t.value.length===0&&e.hasAttachments?.()!==!0}function f(){return s.value.length>0&&(r!==-1||d())}function h(C,x=i()){const S=typeof C=="string"?void 0:sf(C.snapshot)??void 0,M=S===void 0?typeof C=="string"?C:C.text:_a(Mc(S)),_=++c,T=i();t.value=M,l===x&&(e.onRecall?.(M,S,x),bt(()=>{if(_!==c||T!==i()||x!==T)return;const E=n.value;if(!E)return;const L=M.length;E.setSelectionRange(L,L)}))}function m(){const C=s.value;if(C.length!==0){if(r===-1){if(e.hasAttachments?.()===!0)return;const x=e.getSnapshot?.(),S=x===void 0?null:sf(x);a=S===null?t.value:{text:t.value,snapshot:S},l=i(),r=C.length-1}else if(r>0)r-=1;else return;h(C[r])}}function g(){if(r===-1)return;const C=s.value;l===i()&&r0}return Fe(i,()=>{r!==-1&&(r=-1,h(a))}),{push:u,canRecallOlder:f,recallOlder:m,recallNewer:g,restoreDraft:y,resetBrowsing:v,isBrowsing:k,hasHistory:w}}function wot(e){const t=Z(!1);let n=0,i;function o(){clearTimeout(i),i=void 0,n=0,t.value=!1}function s(){if(e.working()){if(t.value&&Date.now()k.item),f.value=v.map(k=>k.ranges),h.value=0,u.value=!0}else u.value=!1}function g(y){if(u.value=!1,y.isSkill===!0&&a){a({kind:"skill",name:K7(y.name)},{start:0,end:t.value.length});return}if(y.acceptsInput){t.value=`${y.name} `,bt(()=>{const v=n.value;if(!v)return;const k=t.value.length;v.setSelectionRange(k,k),v.focus()});return}t.value="",r?.(),s(y.name),o(y.name)}return{open:u,items:d,ranges:f,active:h,update:m,select:g}}function Aot(e){const t=e.toLowerCase(),n=[];let i=0;for(const o of e){const s=o.toLowerCase().length;for(let r=0;r=3&&Oce(e,t)!==null?1:0}function IK(e,t){const n=t.toLowerCase(),i=[];for(const o of e){const{lower:s,map:r}=Aot(o.name),a=xot(s,n);if(a===0)continue;const l=a>=2?Array.from({length:n.length},(c,u)=>s.indexOf(n)+u):Oce(s,n);i.push({skill:o,tier:a,positions:l.map(c=>r[c])})}return i}function Sot(e,t){return t.includes("/")?!0:e.name.toLowerCase().includes(t)}function m8(e){return e.kind==="directory"||e.path.endsWith("/")?"folder":"file"}function TK(e,t){if(t.length===0)return;const n=e.toLowerCase().indexOf(t.toLowerCase());if(n!==-1)return Array.from({length:t.length},(i,o)=>n+o)}function MK(e){return e.toLowerCase().replace(/[\s_-]+/g,"")}function _ot(e,t){if(t.length===0)return 1;const n=t.toLowerCase(),i=MK(t);let o=0;for(const s of[e.label,e.entry.name]){const r=s.toLowerCase();r===n?o=Math.max(o,5):r.startsWith(n)?o=Math.max(o,4):r.includes(n)?o=Math.max(o,3):i.length>0&&MK(s).includes(i)&&(o=Math.max(o,2))}return o}function Iot(e,t){return e.map((n,i)=>({attachment:n,index:i,tier:_ot(n,t)})).filter(({tier:n})=>n>0).sort((n,i)=>i.tier-n.tier||n.index-i.index).map(({attachment:n})=>({kind:"attachment",attachment:n,labelMatchPositions:TK(n.label,t),nameMatchPositions:TK(n.entry.name,t)}))}function Tot(e){const{text:t,editorRef:n,searchFiles:i,skills:o,attachments:s,browsers:r,insertMention:a,completeMention:l}=e,c=Z(!1),u=Z([]),d=Z(""),f=Z(""),h=Z(!1),m=Z([]),g=Z(0),y=Z(!1),v=Z(!1),k=R(()=>v.value?Iot(s?.()??[],f.value):[]),w=R(()=>{const te=d.value,J=[],q=[];for(const le of u.value){const ke={kind:m8(le),file:le};(Sot(le,te)?J:q).push(ke)}const Y=[],ae=[],pe=[],Me=[];for(const{skill:le,tier:ke,positions:ne}of m.value){const ce={kind:"skill",skill:le,matchPositions:ne};ke===4?Y.push(ce):ke===3?ae.push(ce):ke===2?pe.push(ce):Me.push(ce)}const fe=[...Y,...ae,...J,...pe,...Me,...q],se=k.value.filter(le=>le.kind==="attachment"&&(le.attachment.entry.kind==="image"||le.attachment.entry.kind==="video")),Q=k.value.filter(le=>le.kind==="attachment"&&le.attachment.entry.kind!=="image"&&le.attachment.entry.kind!=="video"),ee=[...Q,...J,...q],he=[...Y,...ae,...pe,...Me],Re=Q.length===0&&fe[0]?.kind==="skill"?[...he,...ee]:[...ee,...he],Pe=v.value?(r?.()??[]).filter(le=>[le.label,le.title,le.url].some(ke=>ke.toLowerCase().includes(f.value.toLowerCase()))).map(le=>({kind:"browser",browser:le})):[];return[...se,...Pe,...Re]});let C=0,x=null,S=null,M=!1;function _(){const te=t.value,J=n.value?.selectionStart??te.length,q=n.value?.inlineTextRunStart?.()??0;let Y=J-1;for(;Y>=q&&!/\s/.test(te[Y]);)Y--;Y++,Y=Math.max(Y,q);const ae=te.slice(Y,J);return!ae.startsWith("@")&&!ae.startsWith("@")?null:{token:ae.slice(1),start:Y,end:J}}function T(te){return te.kind==="browser"?`browser:${te.browser.captureId}`:te.kind==="attachment"?`attachment:${te.attachment.entry.attId}`:te.kind==="skill"?`skill:${te.skill.name}`:`${te.kind}:${te.file.path}`}let E=!1,L=!1;Fe(g,()=>{L||(E=!0)},{flush:"sync"});function P(te){L=!0,g.value=te,L=!1}function N(te){E=!0,P(te)}function U(te){if(te===null||!E){P(0);return}const J=w.value.findIndex(q=>T(q)===te);P(J===-1?0:J)}function F(te,J){const q=w.value[g.value],Y=q?T(q):null;h.value=!1,d.value=J.toLowerCase(),u.value=te,U(Y)}async function B(te,J){const q=++C;x?.abort();const Y=new AbortController;x=Y,y.value=!0,c.value=!0;const ae=()=>{const pe=_();return q===C&&pe!==null&&pe.token===J&&c.value};try{const pe=await te(J,{signal:Y.signal});ae()&&F(pe,J)}catch{ae()&&F([],J)}finally{x===Y&&(x=null),ae()&&(y.value=!1)}}function W(){const te=_(),J=i();if(M=!1,E=!1,!te){S=null,v.value=!1,f.value="",c.value=!1,y.value=!1,h.value=!1,x?.abort(),x=null;return}const q=te.token;v.value=!0,f.value=q,q!==S&&(u.value.length>0&&(h.value=!0),C+=1),S=q;const Y=o?.()??[];if(m.value=q.length>0?IK(Y,q):[],P(0),!J){u.value=[],d.value=q.toLowerCase(),y.value=!1,h.value=!1,c.value=w.value.length>0;return}if(q.length===0){B(J,q);return}(k.value.length>0||m.value.length>0)&&(c.value=!0),B(J,q)}function D(){const te=_();if(!te)return;const J=w.value[g.value],q=J?T(J):null,Y=o?.()??[];m.value=te.token.length>0?IK(Y,te.token):[],U(q)}Fe(()=>o?.(),()=>{M||D()}),Fe(()=>[s?.(),r?.()],()=>{if(M)return;const te=_();if(!te)return;const J=w.value[g.value],q=J?T(J):null;f.value=te.token,U(q),c.value=w.value.length>0||y.value});function z(te){if(te.kind==="browser")return{kind:"browser",captureId:te.browser.captureId,name:te.browser.label};if(te.kind==="attachment")return{kind:"attachment",attId:te.attachment.entry.attId,name:te.attachment.label,attachmentKind:te.attachment.entry.kind};if(te.kind==="skill")return{kind:"skill",name:te.skill.name};const J=te.file.path;return{kind:m8(te.file),path:J,name:te.file.name||J.split("/").filter(Boolean).pop()||J}}function $(){M=!0,E=!1,c.value=!1,y.value=!1,h.value=!1,u.value=[],d.value="",f.value="",v.value=!1,m.value=[],S=null,C+=1,x?.abort(),x=null}function j(te){const J=_();if(!J||(te.kind==="file"||te.kind==="folder")&&h.value)return;if($(),a){a(z(te),{start:J.start,end:J.end});return}if(te.kind==="skill"||te.kind==="attachment"||te.kind==="browser")return;const q=t.value;t.value=q.slice(0,J.start)+te.file.path+q.slice(J.end),bt(()=>{const Y=n.value;if(!Y)return;const ae=J.start+te.file.path.length;Y.setSelectionRange(ae,ae),Y.focus()})}function G(te,J){if(te.kind==="browser")return te.browser.label===J;if(te.kind==="attachment")return te.attachment.label===J;if(te.kind==="skill")return te.skill.name===J;const q=te.file.path.replace(/\/+$/,""),Y=J.replace(/\/+$/,"");return q!==Y?!1:m8(te.file)==="folder"?J.endsWith("/"):!0}function K(te){const J=_();if(!J||(te.kind==="file"||te.kind==="folder")&&h.value)return;if(te.kind==="attachment"||te.kind==="browser"){j(te);return}const q=te.kind==="skill"?te.skill.name:te.file.path.replace(/\/+$/,"")+(m8(te.file)==="folder"?"/":"");if(/[\s[\]\\]/u.test(q)){j(te);return}if(G(te,J.token))return;const Y={start:J.start+1,end:J.end};if(l){l(q,Y);return}const ae=t.value;t.value=ae.slice(0,Y.start)+q+ae.slice(Y.end),bt(()=>{const pe=n.value;if(pe){const Me=Y.start+q.length;pe.setSelectionRange(Me,Me),pe.focus()}W()})}return ad()&&Qr(()=>x?.abort()),{open:c,items:w,fileItems:u,fileStale:h,skillItems:m,active:g,loading:y,update:W,close:$,select:j,complete:K,navigate:N,getToken:_}}function E_(e,t,n){if(t==="all")return[...e];const i=e.findIndex(o=>o.id===n);return i<0?[]:t==="close"?e.slice(i,i+1):t==="right"?e.slice(i+1):e.filter(o=>o.id!==n)}const v3=Qo(new Map),Mot="kimi-web.file-preview-width",d0=320,Eot=16;function Lot(e){return`__draft__:${e}`}let Mk=null;function EK(e){Mk?.(e)}function Rot({client:e,sideWidth:t,t:n,locale:i,onTabRemoved:o,onBrowserSuspended:s,browserPersistence:r,storage:a=$P()}){const{viewportWidth:l}=Lce(),c=R(()=>Math.max(0,l.value-t.value)),u=R(()=>Ece(c.value,d0,d0));function d(ye){return ZE(Math.round(ye),d0,u.value)}function f(){return d(c.value/2)}const h=R(()=>f()),m=Z(d0),g=R(()=>ZE(m.value,d0,u.value)),y=Z(!1),v=Is([]),k=new Map,w=Is(null),C=Z(null),x=Z(!1),S=Z(!1),M=Z(0),_=R(()=>v.value.find(ye=>ye.id===C.value)??null),T=R(()=>_.value!==null&&ll[_.value.type].expandable!==!1);Fe([_,S],([ye,Ae])=>{ye!==null&&Ae&&!T.value&&(S.value=!1)},{flush:"sync"});const E=new Set(["agent","diff","files","turn-diff","compaction","btw","term","browser"]);i!==void 0&&Fe(i,()=>{v.value=v.value.map(ye=>E.has(ye.type)?{...ye,title:W(ye.type,ye.payload)}:ye)});let L=0;function P(){return L+=1,`panel-tab-${L}`}function N(ye){const Ae=ll[ye.type];return Ae.keyOf&&ye.payload!==void 0?Ae.keyOf(ye.payload):null}function U(ye,Ae){return{id:P(),type:ye,title:W(ye,Ae),payload:Ae}}function F(ye,Ae){const Ce=U(ye,Ae);return v.value=[...v.value,Ce],Ce}function B(ye){return e.activeAppTasks.value.find(Ce=>Ce.agentId===ye||Ce.id===ye||Ce.backgroundTaskId===ye)?.description||void 0}function W(ye,Ae){if(ye==="agent"&&Ae!==void 0){const Ce=Ae.subagentId,Je=Ke(Ce).name??B(Ce);if(Je)return Je}return ll[ye].title(Ae,n)}let D=null;const z=R(()=>{const ye=_.value;if(!x.value||ye?.type!=="agent"||ye.payload===void 0)return null;const Ae=ye.payload,Ce=e.activeAppTasks.value.find(vt=>vt.agentId===Ae.subagentId||vt.id===Ae.subagentId||vt.backgroundTaskId===Ae.subagentId);if(Ce===void 0)return null;const Je=Ce.status==="running"?e.activeRestTasks?.value.find(vt=>(vt.id===Ce.backgroundTaskId||vt.id===Ce.id||Ce.agentId!==void 0&&vt.agentId===Ce.agentId)&&vt.status!=="running"&&(Ce.startedAt===void 0||vt.completedAt===void 0||vt.completedAt>=Ce.startedAt))??Ce:Ce;return Je.status==="running"||Je.kind==="subagent"&&(Je.outputLines?.length??0)>0||e.hasTaskOutput?.(Ae.sessionId,Je.id)===!0?null:{sessionId:Ae.sessionId,taskId:Je.backgroundTaskId??Je.id}});let $=null;Fe(z,ye=>{if(ye===null){$=null;return}$?.sessionId===ye.sessionId&&$?.taskId===ye.taskId||($=ye,e.loadTaskOutput?.(ye.sessionId,ye.taskId))},{immediate:!0});function j(ye){const Ae=e.activeAppTasks.value.find(Ce=>Ce.agentId===ye||Ce.id===ye||Ce.backgroundTaskId===ye);return!Ae||Ae.kind==="subagent"&&Ae.agentId===ye}function G(ye){return e.activeAppTasks.value.find(Ce=>Ce.agentId===ye||Ce.id===ye||Ce.backgroundTaskId===ye)?.agentId??ye}function K(){const ye=_.value,Ae=x.value&&ye?.type==="agent"&&ye.payload!==void 0?ye.payload:null;D!==null&&Ae!==null&&D.sessionId===Ae.sessionId&&D.subagentId===Ae.subagentId&&D!==null&&j(D.subagentId)||(D&&(e.auxiliaryTranscripts.deactivate(D.sessionId,D.subagentId),D=null),Ae&&j(Ae.subagentId)&&(e.auxiliaryTranscripts.activate(Ae.sessionId,Ae.subagentId),D={sessionId:Ae.sessionId,subagentId:Ae.subagentId}))}Fe(()=>e.activeAppTasks.value,ye=>{let Ae=!1,Ce=!1,vt=v.value.map(Qt=>{if(Qt.type!=="agent"||Qt.payload===void 0)return Qt;const un=Qt.payload,yn=ye.find(ti=>ti.backgroundTaskId===un.subagentId&&ti.agentId!==void 0),On=yn&&yn.agentId!==un.subagentId?{...un,subagentId:yn.agentId}:un;On!==un&&(Ae=!0);const Kn=W("agent",On);return On===un&&Kn===Qt.title?Qt:(Ce=!0,{...Qt,payload:On,title:Kn})});if(Ae){const Qt=new Map;for(const yn of vt){if(yn.type!=="agent")continue;const On=N(yn);if(On===null)continue;const Kn=Qt.get(On);Kn?Kn.push(yn):Qt.set(On,[yn])}const un=new Set;for(const yn of Qt.values()){if(yn.length<2)continue;const On=yn.find(Kn=>Kn.id===C.value)??yn[0];for(const Kn of yn)Kn.id!==On.id&&un.add(Kn.id)}un.size>0&&(vt=vt.filter(yn=>!un.has(yn.id)),Ce=!0)}Ce&&(v.value=vt),K()});function te(ye,Ae){const Ce=ll[ye];let Je;if(Ce.policy==="singleton")Je=v.value.find(vt=>vt.type===ye);else if(Ce.policy==="keyed"&&Ae!==void 0){const vt=Ce.keyOf(Ae);Je=v.value.find(Qt=>Qt.type===ye&&N(Qt)===vt)}if(Je){if(Ae!==void 0&&Je.payload!==Ae){const vt={...Je,title:W(ye,Ae),payload:Ae};v.value=v.value.map(Qt=>Qt.id===vt.id?vt:Qt),Je=vt}}else Je=F(ye,Ae);return J(Je.id),Je}function J(ye){v.value.some(Ae=>Ae.id===ye)&&(C.value=ye,x.value=!0,M.value+=1,K())}function q(ye,Ae){if(ye===Ae)return;const Ce=v.value.find(vt=>vt.id===ye);if(!Ce||!v.value.some(vt=>vt.id===Ae))return;const Je=v.value.filter(vt=>vt.id!==ye);Je.splice(Je.findIndex(vt=>vt.id===Ae)+1,0,Ce),v.value=Je,M.value+=1}function Y(ye,Ae){const Ce=Ae.trim().slice(0,512)||void 0;v.value=v.value.map(Je=>{if(Je.id!==ye||Je.type!=="browser"||Je.payload===void 0)return Je;const vt={...Je.payload,customTitle:Ce};return{...Je,payload:vt,title:W("browser",vt)}})}function ae(ye,Ae){const Ce=Ae.trim();v.value=v.value.map(Je=>{if(Je.id!==ye||Je.type!=="browser"||Je.payload===void 0)return Je;const vt=Je.payload,Qt=Ce||void 0;if(vt.title===Qt)return Je;const un={...vt,title:Qt};return{...Je,payload:un,title:W("browser",un)}})}function pe(ye,Ae){v.value=v.value.map(Ce=>{if(Ce.id!==ye||Ce.type!=="browser"||Ce.payload===void 0)return Ce;const Je=Ce.payload;return Je.loading===!0===Ae?Ce:{...Ce,payload:{...Je,loading:Ae}}})}function Me(ye,Ae){v.value=v.value.map(Ce=>{if(Ce.id!==ye||Ce.type!=="browser"||Ce.payload===void 0)return Ce;const Je=Ce.payload;return Je.favicon===Ae?Ce:{...Ce,payload:{...Je,favicon:Ae}}})}function fe(ye,Ae){v.value=v.value.map(Ce=>{if(Ce.id!==ye||Ce.type!=="browser"||Ce.payload===void 0)return Ce;const Je=Ce.payload;if(Je.localFile===!0===Ae)return Ce;const{localFile:vt,...Qt}=Je;return{...Ce,payload:Ae?{...Qt,localFile:!0}:Qt}})}function se(ye,Ae){const Ce=F(ye,Ae);return C.value===null&&(C.value=Ce.id,x.value=!1),Ce}function Q(ye){return(ye===e.activeSessionId.value?v.value:Ft[ye]?.tabs??[]).filter(Ce=>Ce.type==="browser")}function ee(ye,Ae){if(ye===e.activeSessionId.value)v.value=Ae(v.value);else{const Ce=Ft[ye];Ce!==void 0&&(Ft[ye]={...Ce,tabs:Ae(Ce.tabs)})}}function he(ye,Ae){let Ce=Ae===void 0?-1:ye.findIndex(Je=>Je.id===Ae);if(Ce===-1)return ye.length;for(;Ce+1ti.id!==yn.id),Kn=he(On,Ce);return Ce!==void 0&&k.set(yn.id,Ce),v.value=[...On.slice(0,Kn),yn,...On.slice(Kn)],Ce!==void 0&&(w.value=yn.id),yn}const Je={id:P(),type:"browser",payload:Ae,title:W("browser",Ae)},vt=Ft[ye]??{tabs:[],activeIndex:null,visible:!1,expanded:!1},Qt=he(vt.tabs,Ce);Ce!==void 0&&k.set(Je.id,Ce);const un=vt.activeIndex!==null&&vt.activeIndex>=Qt?vt.activeIndex+1:vt.activeIndex;return Ft[ye]={...vt,tabs:[...vt.tabs.slice(0,Qt),Je,...vt.tabs.slice(Qt)],activeIndex:un},hi(ye),Lo(null,Je.id),Je}function Pe(ye,Ae){if(ye===e.activeSessionId.value)return be(Ae);const Ce=Ft[ye],Je=Q(ye).find(yn=>yn.id===Ae);if(Ce===void 0||Je===void 0)return;const vt=Ce.activeIndex===null?void 0:Ce.tabs[Ce.activeIndex],Qt=Ce.tabs.filter(yn=>yn.id!==Ae),un=vt?.id===Ae?Math.min(Ce.activeIndex??0,Qt.length-1):Qt.findIndex(yn=>yn.id===vt?.id);Ft[ye]={...Ce,tabs:Qt,activeIndex:un<0?null:un},o?.(Je)}function le(ye,Ae,Ce){return Ae!==null&&!Q(ye).some(Je=>Je.id===Ae)?!1:(ee(ye,Je=>Je.map(vt=>{if(vt.type!=="browser"||vt.payload===void 0)return vt;const Qt=vt.payload,un=vt.id===Ae?{leaseId:crypto.randomUUID(),turnId:Ce,status:"running"}:void 0;return un!==void 0&&xi.delete(Qt.browserId),{...vt,payload:{...Qt,controlled:un}}})),!0)}function ke(ye){const Ae=new Set(Object.keys(Ft));e.activeSessionId.value!==null&&Ae.add(e.activeSessionId.value);for(const Ce of Ae){const Je=Q(Ce).find(vt=>vt.payload?.browserId===ye);if(Je)return{sessionId:Ce,tabId:Je.id}}return null}function ne(){const ye=new Set(Object.keys(Ft));return e.activeSessionId.value!==null&&ye.add(e.activeSessionId.value),[...ye].filter(Ae=>Q(Ae).some(Ce=>Ce.payload.controlled!==void 0))}function ce(ye){const Ae=new Set(Object.keys(Ft));e.activeSessionId.value!==null&&Ae.add(e.activeSessionId.value);let Ce=!1;for(const Je of Ae){const vt=Q(Je).filter(un=>un.payload.controlled!==void 0);if(vt.length===0)continue;const Qt=ye(Je);for(const un of vt){const yn=un.payload,On=yn.controlled,Kn=Qt.status!=="unknown"&&(Qt.status==="idle"||Qt.turnId!==On.turnId);if(!Kn&&On.status===Qt.status)continue;const ti=Kn?void 0:{...On,status:Qt.status};Ce||=Kn,ee(Je,Es=>Es.map(no=>no.id===un.id?{...no,payload:{...yn,controlled:ti}}:no))}}Ce&&Lo()}function be(ye){const Ae=v.value.findIndex(Je=>Je.id===ye);if(Ae===-1)return;const Ce=v.value[Ae];if(Ce.type==="btw"&&Ce.payload!==void 0?e.closeSideChat(Ce.payload.agentId):Ce.type==="diff"&&(tt(),e.clearFileDiff()),v.value=v.value.filter(Je=>Je.id!==ye),C.value===ye){const Je=v.value[Math.min(Ae,v.value.length-1)];C.value=Je?.id??null}v.value.length===0&&(x.value=!1,S.value=!1),M.value+=1,o?.(Ce),K()}function xe(ye){if(!x.value||v.value.length<2)return!1;const Ce=(v.value.findIndex(Je=>Je.id===C.value)+ye+v.value.length)%v.value.length;return J(v.value[Ce].id),!0}function de(ye,Ae){const Ce=v.value.findIndex(un=>un.id===ye);if(Ce<0||!Number.isFinite(Ae))return;const Je=Math.max(0,Math.min(v.value.length-1,Math.trunc(Ae)));if(Ce===Je)return;const vt=[...v.value],[Qt]=vt.splice(Ce,1);vt.splice(Je,0,Qt),v.value=vt,M.value+=1}function $e(ye){for(const Ae of E_(v.value,"others",ye))be(Ae.id)}function Ye(ye){for(const Ae of E_(v.value,"right",ye))be(Ae.id)}function rt(){for(const ye of E_(v.value,"all"))be(ye.id)}function Pt(){return x.value?(x.value=!1,S.value=!1,M.value+=1,K(),!0):!1}function $t(){x.value=!0,M.value+=1,K()}function jt(){T.value&&(S.value=!S.value,S.value&&(x.value=!0),M.value+=1)}function Kt(){S.value=!1,M.value+=1}function sn(){M.value+=1}function Jt(ye){const Ae=e.turns.value.find(Je=>Je.id===ye);return Ae?.role==="compaction"&&Ae.text?Ae.text:v.value.find(Je=>Je.type==="compaction"&&Je.payload.turnId===ye)?.payload?.text??null}function Oe(ye){te("compaction",{turnId:ye.turnId,text:Jt(ye.turnId)??void 0})}function Le(ye){const Ae=e.auxiliaryTranscripts.getEntry(ye.sessionId,ye.subagentId);return{entry:Ae,version:Ae?.version.value??0}}function Ke(ye){const Ae=e.turns.value.flatMap(Ce=>Ce.tools??[]).find(Ce=>Ce.agentId===ye);if(!Ae)return{};try{const Ce=JSON.parse(Ae.arg);return{name:typeof Ce.description=="string"?Ce.description:void 0,subagentType:typeof Ce.subagent_type=="string"?Ce.subagent_type:void 0,prompt:typeof Ce.prompt=="string"?Ce.prompt:void 0,model:typeof Ce.model=="string"?Ce.model:void 0,thinking:typeof Ce.thinking=="string"?Ce.thinking:void 0,status:Ae.status,outputLines:Ae.output}}catch{return{}}}function Ee(ye,Ae){const Ce=ye?.channel;if(Ce===void 0||Ce.loading||Ce.snapshot.hasMoreOlder)return Ae;const Je=Ce.snapshot.items.find(Qt=>Qt.kind==="turn"),vt=Je?.kind==="turn"?Je.prompt:void 0;return vt!==void 0&&vt.length>0?vt:Ae}function Ie(ye){const Ae={...ye,subagentId:G(ye.subagentId)},{entry:Ce}=Le(Ae),Je=e.activeAppTasks.value.find(vo=>vo.agentId===ye.subagentId||vo.id===ye.subagentId||vo.backgroundTaskId===ye.subagentId);if(Je){const vo=y$e(Je,e.findBashCommandForTask(Je));if(vo.outputLoading=e.isTaskOutputLoading?.(ye.sessionId,Je.id)===!0,Je.kind==="subagent"){const qs=Ke(vo.id);vo.prompt??=Ee(Ce,qs.prompt),vo.model??=qs.model,vo.thinkingEffort??=qs.thinking}return vo}const vt=Ce?.channel,Qt=vt?.agents.find(vo=>vo.agentId===ye.subagentId),un=vt?.refreshError??!1,yn=vt===void 0||vt.loading,On=vt?.snapshot.meta.activity==="turn",Kn=Ke(ye.subagentId),ti=vt?.snapshot.items.findLast(vo=>vo.kind==="turn"),Es=ti?.kind==="turn"&&ti.state==="cancelled",no=ti?.kind==="turn"&&ti.state==="failed"||Kn.status==="error",gs=On?"working":Es?"cancelled":no?"failed":yn?"queued":un&&Kn.status===void 0?"failed":"completed",_l=On?"running":Es?"cancelled":no?"failed":yn?"running":un&&Kn.status===void 0?"failed":"completed";return{id:ye.subagentId,kind:"subagent",name:Qt?.label??Kn.name??ye.subagentId,subagentType:Kn.subagentType??(Qt?.type==="sub"?"subagent":Qt?.type),model:Kn.model,thinkingEffort:Kn.thinking,prompt:Ee(Ce,Kn.prompt),phase:gs,status:_l,outputLines:Kn.outputLines}}function Ve(ye){const Ae=Le(ye).entry;if(!Ae)return[];const Ce=Ae.channel.agents.find(Je=>Je.agentId===ye.subagentId);return L$e(Ae.channel.snapshot,e.getFileUrl,Ce,{sessionId:ye.sessionId,getSessionMediaUrl:e.getSessionMediaUrl})}const pt=ye=>Le(ye).entry?.channel.loading??!1,Lt=ye=>Le(ye).entry?.channel.refreshError??!1,Te=ye=>Le(ye).entry?.channel.loadingOlder??!1,ge=ye=>Le(ye).entry?.channel.loadOlderError??!1,je=ye=>Le(ye).entry?.channel.snapshot.hasMoreOlder??!1,He=ye=>Le(ye).entry?.channel.snapshot.meta.activity==="turn";function Ct(ye){const Ae=Le(ye).entry;Ae&&Ae.channel.loadOlder().catch(()=>{})}function gt(ye){const Ae=e.activeSessionId.value;if(!ye||!Ae)return;const Ce=G(ye);te("agent",{sessionId:Ae,subagentId:Ce})}const St=Z("list"),wt=Z(null);function tt(){St.value="list",wt.value=null}function st(){v.value.some(Ae=>Ae.type==="diff")||tt(),te("diff",{}),e.loadGitStatus(e.activeSessionId.value)}function Rt(){const ye=v.value.find(Ae=>Ae.type==="diff");ye&&be(ye.id)}async function ln(ye){St.value="detail",wt.value=ye,await e.loadFileDiff(ye)}function ht(ye){const Ae=e.turns.value.find(Qt=>Qt.id===ye.turnId),Ce=ye.sessionId??Ae?.sessionId;ye={turnId:ye.turnId,daemonTurnId:ye.daemonTurnId,sessionId:Ce,cwd:ye.cwd,change:ye.change};const Je=_.value,vt=Je?.type==="turn-diff"?Je.payload:void 0;if(x.value&&Je!=null&&vt!==void 0&&vt.sessionId===ye.sessionId&&vt.turnId===ye.turnId&&vt.change.path===ye.change.path){be(Je.id);return}te("turn-diff",{turnId:ye.turnId,daemonTurnId:ye.daemonTurnId,sessionId:ye.sessionId,cwd:ye.cwd,change:ye.change})}function ct(ye){te("file",{...ye})}function Vt(){return te("files")}async function en(ye){const Ae=M.value,Ce=e.activeWorkspaceId.value,Je=(un,yn)=>{const On={parentId:yn,agentId:un.agentId,seq:un.seq};M.value===Ae?te("btw",On):se("btw",On)};if(!e.activeSessionId.value&&e.activeWorkspaceId.value){const un=await e.startSessionAndOpenSideChat(e.activeWorkspaceId.value,ye);if(!un)return{sessionId:null,agentId:null,sent:!1};const yn=un.sessionId;return e.activeSessionId.value!==yn?(un.target&&cn(yn,{parentId:yn,agentId:un.target.agentId,seq:un.target.seq},Ce),{sessionId:yn,agentId:un.target?.agentId??null,sent:un.sent}):(un.target&&Je(un.target,yn),{sessionId:yn,agentId:un.target?.agentId??null,sent:un.sent})}const vt=e.activeSessionId.value;if(!vt)return{sessionId:null,agentId:null,sent:!1};const Qt=await e.openSideChatOn(vt,ye);return Qt.target&&!Qt.sent&&typeof ye=="string"&&ye&&v3.set(Qt.target.agentId,ye),Qt.target&&e.activeSessionId.value!==vt?(cn(vt,{parentId:vt,agentId:Qt.target.agentId,seq:Qt.target.seq},Ce),{sessionId:vt,agentId:Qt.target.agentId,sent:Qt.sent}):(Qt.target&&Je(Qt.target,vt),{sessionId:vt,agentId:Qt.target?.agentId??null,sent:Qt.sent})}function cn(ye,Ae,Ce){if($n.has(ye))return;const Je=Ft[ye]??{tabs:[],activeIndex:null,visible:!1,expanded:!1};Je.workspaceId=Ce,Je.tabs=[...Je.tabs.filter(vt=>!(vt.type==="btw"&&vt.payload.agentId===Ae.agentId)),U("btw",Ae)],Ft[ye]=Je,cy(a,ye,Je),hi(ye),Lo()}const Ft=V1({}),$n=new Set,Vn=[],xi=new Set,Mi=new Set;function hi(ye){const Ae=Vn.indexOf(ye);Ae!==-1&&Vn.splice(Ae,1),Vn.push(ye)}function pi(ye,Ae){Ft[ye],delete Ft[ye];const Ce=Vn.indexOf(ye);Ce!==-1&&Vn.splice(Ce,1)}function Lo(ye,Ae){let Ce=Object.entries(Ft).reduce((vt,[Qt,un])=>vt+(Qt===ye||Qt===Oi.value?0:un.tabs.filter(yn=>yn.type==="browser"&&!xi.has(yn.payload.browserId)).length),0);const Je=vt=>vt.type==="browser"&&vt.id!==Ae&&!xi.has(vt.payload.browserId)&&vt.payload.controlled===void 0;for(;Ce>Eot;){const vt=Vn.find(On=>On!==ye&&On!==Oi.value&&Ft[On]?.tabs.some(Je));if(vt===void 0)break;const Qt=Ft[vt];if(Qt===void 0)break;const un=Qt.tabs.findIndex(Je);if(un===-1)break;if(s!==void 0){const On=Qt.tabs[un];xi.add(On.payload.browserId),s(On),Ce-=1;continue}const[yn]=Qt.tabs.splice(un,1);Qt.activeIndex===un?Qt.activeIndex=null:Qt.activeIndex!==null&&Qt.activeIndex>un&&(Qt.activeIndex-=1),yn!==void 0&&o?.(yn),Ce-=1,Qt.tabs.length===0&&pi(vt)}}function mo(ye){Dn(ye)}Mk=mo,ad()!==void 0&&Qr(()=>{Mk===mo&&(Mk=null)});function Qi(ye,Ae){if($n.has(ye))return;const Ce=v.value.filter(vt=>ll[vt.type].restorable);if(Ce.length===0&&!x.value){pi(ye),cy(a,ye,{tabs:[],activeIndex:null,visible:!1,expanded:!1});return}const Je=Ce.findIndex(vt=>vt.id===C.value);Ft[ye]={workspaceId:Po,tabs:Ce.map(vt=>({...vt})),activeIndex:Je===-1?null:Je,visible:x.value,expanded:S.value},cy(a,ye,Ft[ye]),hi(ye),Lo(Ae)}function Zn(ye,Ae){const Ce={...Ae,tabs:Ae.tabs.map(Je=>({...Je,id:P(),title:W(Je.type,Je.payload)}))};for(const Je of Ce.tabs){if(Je.type!=="btw")continue;const vt=Je.payload;e.restoreSideChatTarget?.(ye,{agentId:vt.agentId,seq:vt.seq})}return Ce}let Ko=!1;function Ms(ye,Ae,Ce){const Je=ti=>ti.payload.browserId,vt=new Map(Ae.map(ti=>[Je(ti),ti])),Qt=ye.activeIndex===null?void 0:ye.tabs[ye.activeIndex],un=new Set,yn=[];for(const ti of ye.tabs){if(ti.type!=="browser"){yn.push(ti);continue}const Es=vt.get(Je(ti));Es===void 0||un.has(Je(ti))||(un.add(Je(ti)),yn.push(Es))}for(const ti of Ae)un.has(Je(ti))||yn.push(ti);const On=Qt?.type==="browser"?vt.get(Je(Qt)):Qt;let Kn=On===void 0?-1:yn.indexOf(On);return Kn<0&&Ce!==null&&(Kn=yn.findIndex(ti=>ti.type==="browser"&&Je(ti)===Ce)),{...ye,tabs:yn,activeIndex:Kn<0?null:Kn,visible:Kn>=0&&ye.visible}}function Ro(ye){let Ae=Ft[ye];const Ce=Ae===void 0?Mj(a,ye):void 0;if(Ce!==void 0&&(Ae=Zn(ye,Ce),Ko&&(Ae=Ms(Ae,[],null))),!Ae)return;pi(ye);const Je=e.sideChatTargetsOfSession(ye);let vt=null;const Qt=new Map;if(Ae.tabs.forEach((un,yn)=>{let On=un.payload;if(un.type==="agent")On={sessionId:ye,subagentId:G(On.subagentId)};else if(un.type==="btw"){const no=On;if(!Je.some(gs=>gs.agentId===no.agentId))return}const Kn=ll[un.type].keyOf,ti=Kn!==void 0&&On!==void 0?`${un.type}:${Kn(On)}`:null;if(ti!==null){const no=Qt.get(ti);if(no!==void 0){Ae.activeIndex===yn&&(vt=no);return}}const Es=F(un.type,On);Es.id=un.id,Es.presentation=un.presentation,un.type==="browser"&&xi.delete(On.browserId),ti!==null&&Qt.set(ti,Es.id),Ae.activeIndex===yn&&(vt=Es.id)}),v.value.length===0){x.value=Ae.tabs.length===0&&Ae.visible,S.value=x.value&&Ae.expanded;return}C.value=vt??v.value.at(-1).id,x.value=Ae.visible,S.value=x.value&&Ae.expanded,K()}const js="__draft__:",Oi=R(()=>e.activeSessionId.value||Lot(e.activeWorkspaceId.value??"none"));let Ai=Oi.value,Po=e.activeWorkspaceId.value;Fe(Oi,(ye,Ae)=>{const Ce=Ae.startsWith(js)?null:Ae,Je=ye.startsWith(js)?null:ye,vt=e.getDraftPromotion(),Qt=Ae.startsWith(js)?Ae.slice(js.length):null,un=!Ce&&Je!==null&&vt!==null&&vt.sessionId===Je&&vt.workspaceId===Qt;un?(delete Ft[Ae],cy(a,Ae,{tabs:[],activeIndex:null,visible:!1,expanded:!1})):Qi(Ae,ye),un||(M.value+=1);const yn=un?v.value:[];for(const On of v.value)yn.includes(On)||ll[On.type].restorable||o?.(On);v.value=yn,yn.length===0?(C.value=null,x.value=!1,S.value=!1):yn.some(On=>On.id===C.value)||(C.value=yn.at(-1).id),tt(),e.clearFileDiff(),K(),$n.delete(ye),un||Ro(ye),Ai=ye,Po=e.activeWorkspaceId.value});const wi=Z(r===void 0),go=r===void 0?Promise.resolve():r.load().then(ye=>{for(const Ce of ye){if(Mi.has(Ce.sessionId)){for(const un of Ce.tabs)o?.(U("browser",un));continue}const Je=Ce.tabs.map(un=>({id:P(),type:"browser",payload:un,title:W("browser",un)})),vt=Ce.tabs.findIndex(un=>un.browserId===Ce.activeBrowserId),Qt=Mj(a,Ce.sessionId);Ft[Ce.sessionId]=Qt!==void 0?Ms(Zn(Ce.sessionId,Qt),Je,Ce.activeBrowserId):{tabs:Je,activeIndex:vt<0?null:vt,visible:Ce.visible&&vt>=0,expanded:!1};for(const un of Je)xi.add(un.payload.browserId),s?.(un);hi(Ce.sessionId)}Ko=!0;const Ae=Oi.value;if(v.value.length===0)Ro(Ae);else{const Ce=Ft[Ae];for(const Je of Ce?.tabs??[]){if(Je.type!=="browser")continue;const vt=Je.payload;v.value.some(Qt=>Qt.type==="browser"&&Qt.payload.browserId===vt.browserId)||(se("browser",vt),xi.delete(vt.browserId))}pi(Ae)}wi.value=!0}).catch(ye=>r.onError(ye)).finally(()=>{Mi.clear(),wi.value=!0});Wf(()=>{if(r===void 0||!wi.value)return;const ye=new Map(Object.entries(Ft));ye.set(Oi.value,{expanded:S.value,tabs:v.value,activeIndex:v.value.findIndex(Ce=>Ce.id===C.value),visible:x.value});const Ae=[];for(const[Ce,Je]of ye){const vt=Je.tabs.filter(un=>un.type==="browser").map(un=>{const yn=un.payload;return{browserId:yn.browserId,...yn.title===void 0?{}:{title:yn.title},...yn.customTitle===void 0?{}:{customTitle:yn.customTitle}}});if(vt.length===0)continue;const Qt=Je.activeIndex===null?void 0:Je.tabs[Je.activeIndex];Ae.push({sessionId:Ce,tabs:vt,activeBrowserId:Qt?.type==="browser"?Qt.payload.browserId:null,visible:Je.visible})}r.save(Ae).catch(Ce=>r.onError(Ce))},{flush:"post"});function Dn(ye){$n.add(ye),wi.value||Mi.add(ye);const Ae=new Map((Ft[ye]?.tabs??[]).map(Ce=>[Ce.id,Ce]));if(Ai===ye)for(const Ce of v.value)Ae.set(Ce.id,Ce);for(const Ce of Ae.values())o?.(Ce);pi(ye),cy(a,ye,{tabs:[],activeIndex:null,visible:!1,expanded:!1}),Ai===ye&&(v.value=[],C.value=null,x.value=!1,S.value=!1,K(),tt())}const Xi=GRe(Dn),es=QRe(ye=>{const Ae=new Set(fie(a,ye));for(const[Ce,Je]of Object.entries(Ft))Je.workspaceId===ye&&Ae.add(Ce);Po===ye&&Ae.add(Ai);for(const Ce of Ae)Dn(Ce)});Ro(Ai);const ts=()=>Qi(Ai);Fe([v,C,x,S],ts,{flush:"post"}),typeof window<"u"&&window.addEventListener("pagehide",ts),ad()!==void 0&&Qr(()=>{ts(),Xi(),es(),typeof window<"u"&&window.removeEventListener("pagehide",ts)});function ms(ye,Ae){v.value=v.value.map(Ce=>Ce.id===ye?{...Ce,presentation:Ae}:Ce)}function Ws(ye,Ae){v.value=v.value.map(Ce=>Ce.id===ye?{...Ce,payload:Ae,title:W(Ce.type,Ae)}:Ce)}return{browserPersistenceReady:go,PREVIEW_WIDTH_KEY:Mot,PREVIEW_MIN:d0,previewDefaultWidth:h,previewMax:u,previewWidth:m,previewPanelWidth:g,panelDragging:y,panelTabs:v,activeTabId:C,activeTab:_,panelVisible:x,panelExpanded:S,panelCanExpand:T,panelInteractionVersion:d9(M),revealedTabId:d9(w),openTab:te,closeTab:be,updateTabPayload:Ws,updateTabPresentation:ms,closeOtherTabs:$e,moveTab:de,cycleTab:xe,closeTabsToRight:Ye,closeAllTabs:rt,activateTab:J,updateBrowserTabTitle:ae,renameBrowserTab:Y,moveTabAfter:q,updateBrowserTabFavicon:Me,updateBrowserTabLoading:pe,updateBrowserTabLocalFile:fe,sessionBrowserTabs:Q,browserTabOwner:ke,addSessionBrowserTab:Re,isSessionDestroyed:ye=>$n.has(ye),closeSessionBrowserTab:Pe,syncBrowserControls:ce,controlledBrowserSessions:ne,controlBrowserTab:le,addTabInBackground:se,hidePanel:Pt,showPanel:$t,toggleExpanded:jt,compactionPanelTextOf:Jt,openCompactionPanel:Oe,agentPanelMemberOf:Ie,agentPanelTurnsOf:Ve,agentPanelLoadingOf:pt,agentPanelLoadErrorOf:Lt,agentPanelLoadingMoreOf:Te,agentPanelLoadMoreErrorOf:ge,agentPanelHasMoreOf:je,agentPanelRunningOf:He,loadOlderAgentMessages:Ct,openAgentPanel:gt,detailDiffMode:St,detailDiffPath:wt,openDiffDetail:st,closeDiffDetail:Rt,selectDiffFile:ln,openTurnDiff:ht,openFilePreview:ct,openFilesPanel:Vt,openSideChatTab:en,leaveChatView:Kt,bumpInteractionVersion:sn}}const Fce=xn.sidebarWidth,LK=xn.sidebarCollapsed,QE=270,L_=220,Pot=480,$ot=320;function Oot(){const e=lo(Fce);if(e===null)return QE;const t=Number(e);return Number.isFinite(t)?t:QE}function Fot(e={}){const{viewportWidth:t}=Lce(),n=Z(Oot()),i=Z(lo(LK)==="true"),o=Z(!1),s=R(()=>{const c=$ot+($l(e.previewOpen)?d0:0);return Math.min(Pot,Ece(t.value,L_,c))}),r=R(()=>ZE(n.value,L_,s.value));function a(){try{Eo(LK,String(i.value))}catch{}}function l(){i.value=!i.value,a()}return{SIDEBAR_WIDTH_KEY:Fce,SIDEBAR_DEFAULT:QE,SIDEBAR_MIN:L_,sidebarMax:s,sessionColWidth:n,sidebarCollapsed:i,sidebarDragging:o,sideWidth:r,toggleSidebarCollapse:l}}const Dot=40409,Not=41302,Bot=/\((\d+) bytes >/;function g8(e){return Ti(e)&&e.code===Dot}function zot(e){return Ti(e)&&e.code===Not||cJ(e)}function Hot(e){if(!Ti(e))return;const t=Bot.exec(e.message);if(t===null)return;const n=Number(t[1]);return Number.isSafeInteger(n)?n:void 0}const jot={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".bmp":"image/bmp",".ico":"image/x-icon",".avif":"image/avif",".pdf":"application/pdf"};function Wot(e){const t=/\.[^./\\]+$/.exec(e);if(t!==null)return jot[t[0].toLowerCase()]}function qot(e){return e.includes(0)}function RK(e){if(e.startsWith("\\\\"))return e;const t=/^[a-zA-Z]:/.test(e)?e.slice(0,2):"",n=[];for(const i of e.slice(t.length).split(/[\\/]+/))if(!(!i||i===".")){if(i===".."){n.pop();continue}n.push(i)}return t?`${t}/${n.join("/")}`:`/${n.join("/")}`}function Dce({client:e,t}){const n=Z(null),i=Z(null),o=Z(!1),s=Z(null),r=Z(null),a=Z(0),l=Z(0),c=Z(!1);let u=0;const d=Z(null);let f=null;function h(U){f!==null&&(URL.revokeObjectURL(f),f=null),U!==null&&typeof URL.createObjectURL=="function"&&(f=URL.createObjectURL(U)),d.value=f}ad()!==void 0&&Qr(()=>{u+=1,h(null)});const m=R(()=>{const U=r.value;return U?e.getFileDownloadUrl(U):null}),g=R(()=>n.value!==null&&r.value!==null);function y(U){return U.length>1?U.replace(/\/+$/,""):U}function v(U){const F=dv(U,e.status.value.cwd);return F===null||F.split(/[\\/]+/).includes("..")?null:m4(F)||null}const k=R(()=>{const U=n.value;if(!U)return null;const F=r.value;if(F===null)return U.path;const B=e.status.value.cwd;return B?/[/\\]$/.test(B)?`${B}${F}`:`${B}/${F}`:F});function w(U){const F=U.trim();if(!F)return{error:t("filePreview.errors.emptyPath")};if(/^[a-z][a-z0-9+.-]*:\/\//i.test(F))return{error:t("filePreview.errors.unsupportedPath")};if(F.startsWith("~"))return{error:t("filePreview.errors.outsideWorkspace")};const B=y(e.status.value.cwd);if(F.startsWith("/")){if(!B||F!==B&&!F.startsWith(`${B}/`))return{error:t("filePreview.errors.outsideWorkspace")};const D=F===B?"":F.slice(B.length+1);if(D.split(/[\\/]+/).includes(".."))return{error:t("filePreview.errors.outsideWorkspace")};const z=m4(D);return z?{path:z}:{error:t("filePreview.errors.isDirectory")}}if(F.split(/[\\/]+/).includes(".."))return{error:t("filePreview.errors.outsideWorkspace")};const W=m4(F);return W?{path:W}:{error:t("filePreview.errors.emptyPath")}}async function C(U,F){const B=++u,W=F?.preserveCurrent===!0&&i.value!==null;if(W?c.value=!0:(i.value=null,s.value=null,o.value=!0,c.value=!1,h(null)),n.value=U,W||(r.value=null),typeof U.content=="string"){o.value=!1,c.value=!1,i.value={path:U.path,content:U.content,encoding:"utf-8",mime:"text/markdown",isBinary:!1,size:U.content.length};return}if(l.value+=1,!N0(U.path)&&U.path.split(/[\\/]+/).includes("..")){const $=y(e.status.value.cwd);$&&(U={...U,path:RK(`${$}/${U.path}`)})}if(N0(U.path)){U={...U,path:RK(U.path)},n.value=U;const $=v(U.path);if($!==null)U={...U,path:$};else{try{const j=await e.readHostFileContent(U.path);if(B!==u)return;r.value=null,i.value={path:U.path,content:j.content,encoding:j.encoding,mime:j.mime,isBinary:j.isBinary,size:j.size},a.value+=1}catch(j){if(B!==u)return;W||(s.value=g8(j)?t("filePreview.errors.notFound"):cJ(j)?t("filePreview.errors.tooLarge"):j instanceof Error?j.message:t("filePreview.errors.loadFailed"))}finally{B===u&&_(W)}return}}const D=w(U.path);if("error"in D){o.value=!1,c.value=!1,s.value=D.error;return}r.value=D.path;const z=Wot(D.path);if(z!==void 0){await S(D.path,z,B,W);return}try{const $=await e.readFileContent(D.path);if(B!==u)return;$?(i.value={...$,path:$.path||D.path},a.value+=1):W||(s.value=t("filePreview.errors.loadFailed"))}catch($){if(B!==u)return;zot($)?await M(D.path,B,W,Hot($)):W||(g8($)?s.value=x(D.path):s.value=$ instanceof Error?$.message:t("filePreview.errors.loadFailed"))}finally{B===u&&_(W)}}function x(U){const F=y(e.status.value.cwd);return F?t("filePreview.errors.notFoundInWorkspace",{path:`${F}/${U}`}):t("filePreview.errors.notFound")}async function S(U,F,B,W){try{const D=await e.readWorkspaceFileBlob(U);if(B!==u)return;D?(h(D),i.value={path:U,content:"",encoding:"base64",mime:F,isBinary:!0,size:D.size},a.value+=1):W||(s.value=t("filePreview.errors.loadFailed"))}catch(D){if(B!==u)return;W||(s.value=g8(D)?x(U):t("filePreview.errors.loadFailed"))}finally{B===u&&_(W)}}async function M(U,F,B,W){try{const D=await e.readWorkspaceFileBlob(U,{prefixBytes:_M});if(F!==u)return;if(!D){B||(s.value=t("filePreview.errors.tooLarge"));return}const z=new Uint8Array(await D.slice(0,4096).arrayBuffer());if(F!==u)return;if(D.type==="application/octet-stream"||qot(z)){B||(s.value=t("filePreview.errors.tooLarge"));return}const $=await D.slice(0,_M).text();if(F!==u)return;i.value={path:U,content:$,encoding:"utf-8",mime:"text/plain",isBinary:!1,size:W??D.size,truncated:!0},a.value+=1}catch(D){if(F!==u)return;B||(s.value=g8(D)?x(U):t("filePreview.errors.tooLarge"))}}function _(U){U?c.value=!1:o.value=!1}function T(){u+=1,n.value=null,r.value=null,i.value=null,s.value=null,o.value=!1,c.value=!1,h(null)}function E(){T()}function L(){const U=n.value;!U||c.value||C(U,{preserveCurrent:!0})}function P(){const U=i.value?.path??n.value?.path;U&&e.openWorkspaceFile(U,n.value?.line)}function N(){const U=i.value?.path??n.value?.path;U&&e.revealWorkspaceFile(U)}return{previewTarget:n,previewFile:i,previewLoading:o,previewError:s,previewNormalizedPath:r,previewLoadedSeq:a,previewLoadStartedSeq:l,previewRefreshing:c,previewDownloadUrl:m,previewExternalActions:g,previewAbsolutePath:k,previewMediaUrl:d,openFilePreview:C,closeFilePreview:E,refreshFilePreview:L,openPreviewInEditor:P,revealPreviewFile:N}}function Vot(e){const t=e.replace(/[/\\]+$/,"");return t===""?e:t.split(/[/\\]/).pop()??t}function Uot(e,t){return e!==""?e:t?`${Vot(t)} | Kimi Code`:"Kimi Code"}function Kot(e){return R(()=>Uot($l(e.webTitle),$l(e.activeWorkspaceRoot)))}function Zot({running:e,title:t="Kimi Code"}){if(lv){Wf(()=>{typeof document<"u"&&(document.title=$l(t))});return}const n=["◐","◓","◑","◒"],i=Z(0);let o=null;function s(){o===null&&(i.value=0,o=setInterval(()=>{i.value=(i.value+1)%n.length},250))}function r(){o!==null&&(clearInterval(o),o=null),i.value=0}Fe(e,l=>{l?s():r()},{immediate:!0});const a=R(()=>`${e.value?`${n[i.value]} `:""}${$l(t)}`);Wf(()=>{typeof document<"u"&&(document.title=a.value)}),Xn(()=>{r()})}function Got(e,t,n){return e==="idle"&&!t&&!n}function xO(...e){for(const t of e){const n=t?.trim();if(n)return n}return""}function Qot(e,t){return{title:e("settings.notifyTitle"),body:xO(t,e("settings.notifyFallback"))}}function Yot(e,t,n){return{title:e("settings.notifyQuestionTitle"),body:xO(n,t,e("settings.notifyQuestionFallback"))}}function Jot(e,t,n){return{title:e("settings.notifyApprovalTitle"),body:xO(n,t,e("settings.notifyApprovalFallback"))}}const Xot=1e3,est=4096,tst=32*1024,nst=2e3,PK=3,ist=4;function $K(e,t){return uie(e,t)}function ost(e,t,n){let i,o=!1;const s=new Map,r=new AbortController,a=new Set,l=Z(new Set);let c=0;const u=[];function d($,j){const G=i?.sessionId===$?i.controller.signal:void 0;return{background:j?.background??!0,signal:G&&j?.signal?AbortSignal.any([G,j.signal]):G??j?.signal}}function f($,j){if(o||j.signal?.aborted)return Promise.reject(j.signal?.reason??new DOMException("Aborted","AbortError"));const G=i?.sessionId===$?i.controller.signal:j.signal;let K=s.get($);K||(K=new Map,s.set($,K));const te=Y=>{K.get(G)===Y&&(K.delete(G),K.size===0&&s.get($)===K&&s.delete($))};let J=K.get(G);if(!J||J.controller.signal.aborted){const Y=new AbortController;J={controller:Y,consumers:0,promise:n.api.listTasks($,void 0,{...j,signal:Y.signal})},K.set(G,J);const ae=J;J.promise.then(()=>te(ae),()=>te(ae))}const q=J;return q.consumers+=1,new Promise((Y,ae)=>{let pe=!1;const Me=()=>pe?!1:(pe=!0,j.signal?.removeEventListener("abort",fe),q.consumers-=1,!0),fe=()=>{Me()&&(q.consumers===0&&(te(q),q.controller.abort()),ae(j.signal?.reason))};j.signal?.addEventListener("abort",fe,{once:!0}),q.promise.then(se=>{Me()&&Y(se)},se=>{Me()&&ae(se)})})}function h(){for(;c0;){const $=u.shift();c+=1,$().finally(()=>{c-=1,h()})}}function m($,j,G){return JSON.stringify([$,j,G??null])}function g($,j){const G=e.tasksBySession[$];G!==void 0&&G.length===j.length&&G.every((K,te)=>K===j[te])||(e.tasksBySession[$]=j)}function y($,j){return j===void 0?!0:j.completedAt!==void 0?$.startedAt===void 0||$.startedAt<=j.completedAt:$.startedAt===void 0?!0:j.startedAt===void 0?!1:$.startedAt<=j.startedAt}function v($,j){return $.status!=="running"||j===void 0||j.status==="running"?!1:j.completedAt!==void 0?$.startedAt===void 0||$.startedAt<=j.completedAt:$.startedAt===void 0?!0:j.startedAt===void 0?!1:$.startedAt<=j.startedAt}async function k($,j){const G=d($,j);try{const K=await f($,G);if(o||G.signal?.aborted)return;const te=e.tasksBySession[$]??[],J=new Map(te.map(ae=>[ae.id,ae])),q=new Map(te.filter(ae=>ae.backgroundTaskId!==void 0).map(ae=>[ae.backgroundTaskId,ae])),Y=K.map(ae=>{const pe=J.get(ae.id)??q.get(ae.id),Me=v(ae,pe),fe=y(ae,pe)?pe:void 0,se=ae.completedAt===void 0&&fe?.completedAt===void 0&&fe?.status==="running"&&ae.status!=="running",Q={...ae,status:Me?pe.status:ae.status,runInBackground:ae.runInBackground===!0||fe?.runInBackground===!0?!0:ae.runInBackground,completedAt:Me?pe.completedAt??ae.completedAt:ae.completedAt??fe?.completedAt??(se?new Date().toISOString():void 0),completedAtEstimated:Me?pe.completedAtEstimated:ae.completedAt!==void 0?void 0:fe?.completedAt!==void 0?fe.completedAtEstimated:se?!0:void 0,outputPreview:ae.outputPreview??fe?.outputPreview,outputBytes:ae.outputBytes??fe?.outputBytes};return pe!==void 0&&$K(Q,pe)?pe:Q});g($,nz(Y,te))}catch{}}function w($,j){const K=(e.tasksBySession[$]??[]).find(te=>te.id===j||te.backgroundTaskId===j||te.agentId===j);return{task:K,restId:K?.backgroundTaskId??K?.id??j,startedAt:K?.startedAt}}function C($,j){const{restId:G}=w($,j);return l.value.has(m($,G))}function x($,j){const{restId:G,startedAt:K}=w($,j);return a.has(m($,G,K))}async function S($,j,G){const K=await n.api.getTask($,j,{withOutput:!0,outputBytes:tst},{background:!1,signal:r.signal});if(o||K.status==="running")return!1;const te=e.tasksBySession[$]??[],J=te.find(q=>q.id===j||q.backgroundTaskId===j);return J===void 0||J.startedAt!==G||J.startedAt!==void 0&&K.completedAt!==void 0&&J.startedAt>K.completedAt?!1:(a.add(m($,j,J.startedAt)),K.outputPreview===void 0||g($,te.map(q=>q.id===j||q.backgroundTaskId===j?{...q,status:K.status,completedAt:K.completedAt??q.completedAt,completedAtEstimated:K.completedAt!==void 0?void 0:q.completedAtEstimated,outputPreview:K.outputPreview,outputBytes:K.outputBytes,outputLines:void 0}:q)),!0)}async function M($,j){if(o)return;const{task:G}=w($,j);if(G!==void 0&&G.kind==="subagent"&&(G.outputLines?.length??0)>0)return;const K=t.value.some(J=>(J.id===j||J.backgroundTaskId===j||J.agentId===j)&&J.status!=="running");if(G?.status==="running"&&!K)return;const te=m($,w($,j).restId);l.value.has(te)||x($,j)||(l.value=new Set(l.value).add(te),await new Promise(J=>{u.push(async()=>{try{for(let q=0;!o&&q{const Me=()=>{clearTimeout(fe),r.signal.removeEventListener("abort",Me),pe()},fe=setTimeout(Me,nst);r.signal.addEventListener("abort",Me,{once:!0})})}}finally{const q=new Set(l.value);q.delete(te),l.value=q,J()}}),h()}))}function _($){return!o&&i===$&&!$.controller.signal.aborted&&e.activeSessionId===$.sessionId}async function T($){if(!_($))return!0;const{sessionId:j}=$,G={background:!0,signal:$.controller.signal},K=n.api;let te;try{te=await f(j,G)}catch{return!1}if(!_($))return!0;const J=!te.some(fe=>fe.status==="running"),q=new Map;if(await Promise.all(te.map(async fe=>{if(!(fe.status!=="running"||!_($)))try{const se=await K.getTask(j,fe.id,{withOutput:!0,outputBytes:est},G);_($)&&se.outputPreview!==void 0&&q.set(fe.id,{preview:se.outputPreview,bytes:se.outputBytes})}catch{}})),!_($))return!0;const Y=e.tasksBySession[j]??[],ae=new Map(Y.map(fe=>[fe.id,fe])),pe=new Map(Y.filter(fe=>fe.backgroundTaskId!==void 0).map(fe=>[fe.backgroundTaskId,fe])),Me=te.map(fe=>{const se=ae.get(fe.id)??pe.get(fe.id),Q=q.get(fe.id),ee=y(fe,se)?se:void 0,he=!a.has(m(j,fe.id,ee?.startedAt))&&(ee===void 0||ee.status==="running"),Re=v(fe,se),Pe=fe.completedAt===void 0&&ee?.completedAt===void 0&&ee?.status==="running"&&fe.status!=="running",le={...fe,status:Re?se.status:fe.status,runInBackground:fe.runInBackground===!0||ee?.runInBackground===!0?!0:fe.runInBackground,outputLines:ee?.outputLines,text:ee?.text,completedAt:Re?se.completedAt??fe.completedAt:fe.completedAt??ee?.completedAt??(Pe?new Date().toISOString():void 0),completedAtEstimated:Re?se.completedAtEstimated:fe.completedAt!==void 0?void 0:ee?.completedAt!==void 0?ee.completedAtEstimated:Pe?!0:void 0,outputPreview:he?Q?.preview??ee?.outputPreview:ee?.outputPreview??Q?.preview,outputBytes:he?Q?.bytes??ee?.outputBytes:ee?.outputBytes??Q?.bytes};return se!==void 0&&$K(le,se)?se:le});return g(j,nz(Me,Y)),J}function E($,j=!1){if(!_($))return;if($.inFlight)return j&&($.finalPending=!0),$.inFlight;$.finalPending=!1;const G=T($).then(K=>{!_($)||$.hasRunning||($.finalBeats+=1,!$.finalPending&&!K&&$.finalBeats<10&&B($))}).finally(()=>{$.inFlight===G&&($.inFlight=void 0),_($)&&$.finalPending&&!$.hasRunning&&E($,!0)});return $.inFlight=G,G}function L($){clearTimeout($.finalTimer),$.finalTimer=void 0,$.finalPending=!1,$.finalBeats=0,$.interval===void 0&&(E($),$.interval=setInterval(()=>{typeof document<"u"&&document.visibilityState==="hidden"||E($)},Xot))}function P(){i&&(clearInterval(i.interval),clearTimeout(i.finalTimer),i.finalPending=!1,i.controller.abort(),i=void 0)}const N=Z(0);let U=null;const F=Fe(()=>t.value.some($=>$.status==="running"),$=>{$&&U===null?U=setInterval(()=>{typeof document<"u"&&document.visibilityState==="hidden"||(N.value=(N.value+1)%Number.MAX_SAFE_INTEGER)},1e3):!$&&U!==null&&(clearInterval(U),U=null)},{immediate:!0});function B($){!_($)||$.finalTimer!==void 0||($.finalTimer=setTimeout(()=>{$.finalTimer=void 0,E($,!0)},1500))}const W=R(()=>{const $=e.activeSessionId;return $?{sid:$,hasRunning:t.value.some(j=>j.status==="running")}:{sid:void 0,hasRunning:!1}}),D=Fe(W,({sid:$,hasRunning:j})=>{i?.sessionId!==$&&P(),$!==void 0&&i?.hasRunning!==j&&(i||(i={sessionId:$,controller:new AbortController,hasRunning:j,finalPending:!1,finalBeats:0}),i.hasRunning=j,j?L(i):(clearInterval(i.interval),i.interval=void 0,i.finalBeats=0,i.inFlight?i.finalPending=!0:B(i)))},{immediate:!0,flush:"sync"});function z(){if(!o){o=!0,D(),F(),P(),U!==null&&clearInterval(U);for(const $ of s.values())for(const j of $.values())j.controller.abort();s.clear(),r.abort(),a.clear(),l.value=new Set;for(const $ of u.splice(0))$()}}return ad()&&Qr(z),{dispose:z,taskClock:R(()=>N.value),loadTasksForSession:k,loadTaskOutput:M,isTaskOutputLoading:C,hasTaskOutput:x}}const Nce=Symbol("latestNotifyToolCallId"),Bce=Symbol("notifyUserEnabled");const xp=Symbol("pinScroll"),zce=Symbol("resolveAgentTaskId"),Hce=Symbol("resolveAgentModel"),jce=Symbol("resolveAgentTaskState"),SO=Symbol("resolveDetachableTask"),Wce=Symbol("resolveSwarmMembers"),qce=Symbol("loadTaskOutput"),sst=Symbol("taskOutputLoading"),xv=Symbol("modelDisplay"),_O=Symbol("fetchTurnFileChanges"),Vce=Symbol("fetchTurnFileContent"),Sv=Symbol("subagentEffort"),Uce=Symbol("openInService"),rst=Symbol("sessionRating"),ast=(e,t)=>e==="newline"?{matches:n=>n.key==="Enter"&&n.shiftKey&&!n.metaKey&&!n.ctrlKey&&!n.altKey}:e==="send"?{matches:n=>n.key==="Enter"&&!n.shiftKey&&!n.altKey&&(n.metaKey||n.ctrlKey||!t.expanded)}:null;let lst=ast;function R0(e,t){return lst(e,t)}const eA=Symbol("revealInFolder"),IO=Symbol("insertPathMention"),Kce=Symbol("openWithDefaultApp");function Zce(){oi().pushWarning({severity:"warning",title:Un("warnings.sessionOccupied.title"),message:Un("warnings.sessionOccupied.message")})}async function cst(e,t){const n=wh();return n.isConfirmOpen.value?(Zce(),!1):(Sve(e),await n.confirm({title:Un("warnings.sessionOccupied.title"),message:Un("warnings.sessionOccupied.message"),confirmLabel:Un("warnings.sessionOccupied.retry"),variant:"primary"})&&Et().activeSessionId===t)}async function e7(e,t,n){for(;;)try{return await t()}catch(i){if(!P2(i)||!await cst(i,e))throw i;n?.()}}function ust(e){return P2(e)?(Zce(),!0):!1}function Gce(e,t){return xve(e)?(oi().pushWarning({severity:"warning",title:Un("warnings.sessionStale.title"),message:Un(t==="operation"?"warnings.sessionStale.retryMessage":"warnings.sessionStale.message")}),!0):!1}function dst(e){if(!Ti(e)||e.code!==OP)return!1;const t=e.details;return t===null||typeof t!="object"?!0:typeof t.model_id!="string"}function TO(e){return(t,n,i)=>{ust(n)||Gce(n,"send")||(e.pushOperationFailure(t,n,{sessionId:i,...dst(n)?{title:Un("warnings.sendFailedTitle"),message:Un("warnings.sendFailedNoDefaultModelMessage")}:{}}),e.mapSendAuthFailure!==void 0&&e.mapSendAuthFailure(n,i))}}function fst(e,t){const{api:n,pushOperationFailure:i,nextOptimisticMsgId:o,connectEventsIfNeeded:s,getEventConn:r,resolveThinkingForPrompt:a,refreshSessionStatus:l,mapSendAuthFailure:c,ensureSideChatReady:u}=t,d=TO({pushOperationFailure:i,mapSendAuthFailure:c}),f=Z({}),h={},m=V1(new Set),g=new Set,y=new Map;function v(Oe){return Oe!==void 0&&m.has(Oe)}function k(Oe){return f.value[Oe]??[]}function w(Oe,Le){if(k(Oe).some(Ee=>Ee.agentId===Le.agentId))return;m.add(Le.agentId),h[Oe]=Math.max(h[Oe]??0,Le.seq),f.value={...f.value,[Oe]:[...k(Oe),Le]};const Ke=r();Ke&&(Ke.markSideChannelAgent(Oe,Le.agentId),le(Oe,Le))}function C(Oe){for(const[Le,Ke]of Object.entries(f.value))if(Ke.some(Ee=>Ee.agentId===Oe))return Le}function x(Oe,Le){return y.get(Le)===Oe}const S=R(()=>{const Oe=e.activeSessionId;if(!Oe)return null;const Le=k(Oe).at(-1);return Le?{parentId:Oe,agentId:Le.agentId}:null}),M=R(()=>S.value?.parentId??null),_=R(()=>S.value!==null);function T(Oe){return!!e.sideChatSendingByAgent[Oe]}function E(Oe){return e.sideChatTurnErrorByAgent[Oe]??null}function L(Oe,Le){if(Le===void 0)return;const Ke=Le.details!==null&&typeof Le.details=="object"?Le.details:void 0;e.sideChatTurnErrorByAgent={...e.sideChatTurnErrorByAgent,[Oe]:{code:Le.code,message:Le.message,statusCode:typeof Ke?.statusCode=="number"?Ke.statusCode:void 0,requestId:typeof Ke?.requestId=="string"?Ke.requestId:void 0}}}function P(Oe){if(!Object.prototype.hasOwnProperty.call(e.sideChatTurnErrorByAgent,Oe))return;const{[Oe]:Le,...Ke}=e.sideChatTurnErrorByAgent;e.sideChatTurnErrorByAgent=Ke}function N(Oe){if(e.sideChatSendingByAgent[Oe])return!0;if(g.has(Oe))return!1;const Le=C(Oe);return Le?(e.tasksBySession[Le]??[]).some(Ke=>Ke.id===Oe&&Ke.status==="running"):!1}function U(Oe){g.delete(Oe)}const F=R(()=>{const Oe=S.value;return Oe?T(Oe.agentId):!1}),B=R(()=>{const Oe=S.value;return Oe?N(Oe.agentId):!1}),W=(Oe,Le)=>n.getSessionMediaUrl(Oe,Le),D=Oe=>n.getFileUrl(Oe),z=[],$=new Map;function j(Oe){let Le=$.get(Oe);return Le||(Le=XOe(),$.set(Oe,Le)),Le({messages:e.sideChatMessagesByAgent[Oe]??[],approvals:z,getFileUrl:D,getSessionMediaUrl:W,sessionActive:N(Oe)})}const G=R(()=>{const Oe=S.value;return Oe?j(Oe.agentId):[]});function K(Oe,Le){e.sideChatMessagesByAgent[Oe]=Le(e.sideChatMessagesByAgent[Oe]??[])}function te(Oe,Le){K(Oe,Ke=>[...Ke,Le])}function J(Oe,Le){K(Oe,Ke=>{const Ee=Ke.find(Ie=>Ie.id===Le);return Ee?.promptId!==void 0||Ee?.userMessageId!==void 0?Ke:Ke.filter(Ie=>Ie.id!==Le)})}function q(Oe,Le){const Ke=e.sideChatUserMessageIdsBySession[Oe]??[];Ke.includes(Le)||(e.sideChatUserMessageIdsBySession={...e.sideChatUserMessageIdsBySession,[Oe]:[...Ke,Le]})}function Y(Oe,Le,Ke,Ee){K(Oe,Ie=>{const Ve=Ie.findIndex(ge=>ge.id===Le);if(Ve===-1)return Ie;const pt=Ie.findIndex((ge,je)=>je!==Ve&&ge.role==="user"&&(ge.id===Ee||ge.userMessageId===Ee||ge.promptId===Ke)),Lt=Ie[Ve],Te=pt===-1?Lt:Ie[pt];return Ie.flatMap((ge,je)=>je===pt?[]:je!==Ve?[ge]:[{...Te,id:Lt.id,promptId:Ke,userMessageId:Ee,metadata:{...Te.metadata,...Lt.metadata}}])})}function ae(Oe,Le){q(Le.sessionId,Le.userMessageId??Le.id),K(Oe,Ke=>{const Ee=Ke.findIndex(pt=>pt.role==="user"&&(pt.userMessageId===(Le.userMessageId??Le.id)||pt.promptId!==void 0&&pt.promptId===Le.promptId));if(Ee===-1)return[...Ke,Le];const Ie=Ke[Ee],Ve=[...Ke];return Ve[Ee]={...Le,id:Ie.id,promptId:Le.promptId??Ie.promptId,userMessageId:Le.userMessageId??Le.id,metadata:{...Le.metadata,...Ie.metadata}},Ve})}function pe(Oe,Le,Ke){if(!Ke||!C(Oe))return;const Ee=se.get(Oe);if(Ee!==void 0){Ee.push({text:Ke});return}K(Oe,Ie=>{const Ve=Ie.at(-1);if(Ve?.role==="assistant"){const pt=Ve.content,Lt=pt.at(-1);return Lt?.type==="text"?[...Ie.slice(0,-1),{...Ve,content:[...pt.slice(0,-1),{type:"text",text:`${Lt.text}${Ke}`}]}]:[...Ie.slice(0,-1),{...Ve,content:[...pt,{type:"text",text:Ke}]}]}return[...Ie,{id:o(),sessionId:Le,role:"assistant",content:[{type:"text",text:Ke}],createdAt:new Date().toISOString()}]})}function Me(Oe,Le,Ke){if(!C(Oe))return;const Ee=se.get(Oe);if(Ee!==void 0){Ee.push({tool:Ke});return}fe(Oe,Le,Ke)}function fe(Oe,Le,Ke){if(Ke.phase==="progress"){K(Oe,Ee=>{const Ie=Ee.findIndex(Lt=>Lt.content.some(Te=>Te.type==="toolUse"&&Te.toolCallId===Ke.toolCallId));if(Ie===-1)return Ee;const Ve=Ee[Ie],pt=[...Ee];return pt[Ie]={...Ve,content:Ve.content.map(Lt=>{if(Lt.type!=="toolUse"||Lt.toolCallId!==Ke.toolCallId)return Lt;const Te=Ke.progressText??"",ge=Lt.outputLines??[];return Ke.replace===!0&&ge.length>0?{...Lt,outputLines:[...ge.slice(0,-1),Te]}:ge.at(-1)===Te?Lt:{...Lt,outputLines:[...ge,Te]}})},pt});return}if(Ke.phase==="started"){K(Oe,Ee=>Ee.some(Ve=>Ve.content.some(pt=>pt.type==="toolUse"&&pt.toolCallId===Ke.toolCallId))?Ee:[...Ee,{id:o(),sessionId:Le,role:"assistant",content:[{type:"toolUse",toolCallId:Ke.toolCallId,toolName:Ke.toolName??"tool",input:Ke.args??{}}],createdAt:new Date().toISOString()}]);return}K(Oe,Ee=>{const Ie=Ee.findIndex(Lt=>Lt.content.some(Te=>Te.type==="toolUse"&&Te.toolCallId===Ke.toolCallId));if(Ie===-1||Ee.some(Lt=>Lt.role==="tool"&&Lt.content.some(Te=>Te.type==="toolResult"&&Te.toolCallId===Ke.toolCallId)))return Ee;const pt={id:o(),sessionId:Le,role:"tool",content:[{type:"toolResult",toolCallId:Ke.toolCallId,output:Ke.output??"",isError:Ke.isError}],createdAt:new Date().toISOString()};return[...Ee.slice(0,Ie+1),pt,...Ee.slice(Ie+1)]})}const se=new Map,Q=new Map,ee=new Map,he=new Set,Re=new Set;async function Pe(Oe){const Le=k(Oe);await Promise.all(Le.map(Ke=>le(Oe,Ke)))}async function le(Oe,Le){if(he.has(Le.agentId)){Re.add(Le.agentId);return}he.add(Le.agentId);const Ke=e.sideChatMessagesByAgent[Le.agentId]??[],Ee=Ke.findLast(Ie=>Ie.metadata?.["kimiWeb.optimisticUserMessage"]===!0)?.promptId;se.set(Le.agentId,[]);try{const Ie=await n.getSessionTranscript(Oe,{agentId:Le.agentId});if(!k(Oe).some(gt=>gt.agentId===Le.agentId))return;const Ve=new Map(Ie.tasks.map(gt=>[gt.taskId,gt])),pt=Ie.items.flatMap(gt=>gt.kind==="turn"?zP(gt,Ie.attachments,Ve,void 0,void 0,Oe,{includeOrigin:!0}):[]),Lt=(e.sideChatMessagesByAgent[Le.agentId]??[]).slice(Ke.length).filter(gt=>{const St=gt.promptId??gt.metadata?.["kimiWeb.promptId"];return St===void 0?!0:!Ie.prompts.some(wt=>wt.promptId===St&&wt.status!=="queued")}),ge=(e.sideChatMessagesByAgent[Le.agentId]??[]).slice(0,Ke.length).filter(gt=>{if(gt.metadata?.["kimiWeb.optimisticUserMessage"]!==!0)return!1;const St=gt.promptId??gt.metadata?.["kimiWeb.promptId"];return St===void 0?!0:!Ie.prompts.some(wt=>wt.promptId===St&&wt.status!=="queued")});e.sideChatMessagesByAgent={...e.sideChatMessagesByAgent,[Le.agentId]:[...pt,...ge,...Lt]};const je=se.get(Le.agentId)??[];se.delete(Le.agentId);let He="";const Ct=()=>{if(He.length===0)return;const St=(e.sideChatMessagesByAgent[Le.agentId]??[]).findLast(Rt=>Rt.role==="assistant"&&Rt.content.some(ln=>ln.type==="text"))?.content.findLast(Rt=>Rt.type==="text")?.text??"";let wt=0;const tt=Math.min(St.length,He.length);for(let Rt=tt;Rt>0;Rt--)if(St.endsWith(He.slice(0,Rt))){wt=Rt;break}wt<16&&(wt=0);const st=He.slice(wt);He="",st.length>0&&pe(Le.agentId,Oe,st)};for(const gt of je)gt.tool!==void 0?(Ct(),fe(Le.agentId,Oe,gt.tool)):gt.terminal===!0?(Ct(),ke(Le.agentId,Oe,gt.text)):He+=gt.text??"";if(Ct(),Ee!==void 0&&e.sideChatSendingByAgent[Le.agentId]===!0&&Ie.meta.activity!=="turn"){const gt=Ie.prompts.find(St=>St.promptId===Ee);gt!==void 0&>.status!=="queued"&>.status!=="running"&&ke(Le.agentId,Oe)}}catch{const Ie=se.get(Le.agentId)??[];if(se.delete(Le.agentId),!k(Oe).some(Ve=>Ve.agentId===Le.agentId))return;for(const Ve of Ie)Ve.tool!==void 0?fe(Le.agentId,Oe,Ve.tool):Ve.terminal===!0?ke(Le.agentId,Oe,Ve.text):pe(Le.agentId,Oe,Ve.text??"")}finally{se.delete(Le.agentId),he.delete(Le.agentId),Re.delete(Le.agentId)&&le(Oe,Le)}}function ke(Oe,Le,Ke,Ee){if(!k(Le).some(Te=>Te.agentId===Oe))return;if(Ee===!0&&!g.has(Oe)){ne(Oe,Le,Ke);return}if(e.sideChatSendingByAgent={...e.sideChatSendingByAgent,[Oe]:!1},g.add(Oe),!Ke)return;const Ie=se.get(Oe);if(Ie!==void 0){Ie.push({text:Ke,terminal:!0});return}const pt=(e.sideChatMessagesByAgent[Oe]??[]).at(-1);(pt?.role==="assistant"?pt.content.findLast(Te=>Te.type==="text")?.text??"":"").trim().length>0||pe(Oe,Le,Ke)}async function ne(Oe,Le,Ke){if((Q.get(Oe)??0)>0){ee.set(Oe,{outputPreview:Ke});return}const Ie=(e.sideChatMessagesByAgent[Oe]??[]).findLast(Lt=>Lt.metadata?.["kimiWeb.optimisticUserMessage"]===!0)?.promptId;let Ve;try{const Lt=await n.getSessionTranscript(Le,{agentId:Oe});if(Ie!==void 0){const Te=Lt.prompts.find(He=>He.promptId===Ie),ge=Te!==void 0&&Te.status!=="queued"&&Te.status!=="running",je=Lt.prompts.some(He=>He.status==="queued"||He.status==="running");Ve=ge&&!je&&Lt.meta.activity!=="turn"}else Ve=Lt.meta.activity!=="turn"}catch{return}!Ve||(e.sideChatMessagesByAgent[Oe]??[]).findLast(Lt=>Lt.metadata?.["kimiWeb.optimisticUserMessage"]===!0)?.promptId!==Ie||ke(Oe,Le,Ke)}async function ce(Oe){const Le=e.activeSessionId;if(!Le)return!1;const Ke=Cn().forPrompt(Le),Ee=k(Le).at(-1);if(Ee)return Oe&&Oe.trim()?$t(Le,Ee.agentId,Oe,{permissionMode:Ke}):!0;const Ie=await Pt(Le,Oe,{permissionMode:Ke});return Ie.target!==null&&Ie.sent}const be=new Map;function xe(Oe){return be.get(Oe)??0}const de=Z({});function $e(Oe,Le){if(Le){de.value={...de.value,[Oe]:Le};return}if(de.value[Oe]===void 0)return;const{[Oe]:Ke,...Ee}=de.value;de.value=Ee}function Ye(Oe){return de.value[Oe]??""}function rt(Oe,Le){if(de.value[Oe]!==Le)return;const{[Oe]:Ke,...Ee}=de.value;de.value=Ee}async function Pt(Oe,Le,Ke){Le!==void 0&&typeof Le!="string"&&(Le=structuredClone(Le));const Ee=Ke!==void 0?Ke:{permissionMode:Cn().forPrompt(Oe)},Ie=xe(Oe);let Ve;try{({agentId:Ve}=await n.startBtw(Oe))}catch(Te){return i("openSideChat",Te,{sessionId:Oe}),{target:null,sent:!1}}if(xe(Oe)!==Ie)return{target:null,sent:!1};m.add(Ve),e.sideChatMessagesByAgent={...e.sideChatMessagesByAgent,[Ve]:e.sideChatMessagesByAgent[Ve]??[]};const pt=(h[Oe]??0)+1;h[Oe]=pt;const Lt={agentId:Ve,seq:pt};if(f.value={...f.value,[Oe]:[...k(Oe),Lt]},s(),r()?.markSideChannelAgent(Oe,Ve),Le&&(typeof Le=="string"?Le.trim():Le.text.trim()||Le.attachments?.length)){const Te=await $t(Oe,Ve,Le,Ee);return xe(Oe)!==Ie||!k(Oe).some(ge=>ge.agentId===Ve)?{target:null,sent:Te}:{target:Lt,sent:Te}}return{target:Lt,sent:!0}}async function $t(Oe,Le,Ke,Ee){const Ie=typeof Ke=="string"?{text:Ke}:structuredClone(Ke),Ve={...Ie,text:Ie.text.trim(),attachments:Ie.attachments??Ee?.attachments??[]};if(!Ve.text&&Ve.attachments.length===0)return!1;let pt,Lt;try{pt=cw(Ve),Lt=lw(Ve)}catch(tt){return d("sendSideChatPrompt",tt,Oe),!1}const Te=Oe;if(u!==void 0&&await u(Te)!=="ok")return!1;const je=Ee?.permissionMode??Cn().forPrompt(Oe)??Cn().explicit[Oe];g.delete(Le),m.add(Le),e.sideChatSendingByAgent={...e.sideChatSendingByAgent,[Le]:!0},P(Le);const He=o(),Ct={id:He,sessionId:Te,role:"user",content:pt,createdAt:new Date().toISOString(),metadata:{"kimiWeb.optimisticUserMessage":!0,...Ve.snapshot===void 0?{}:{"kimiWeb.composerSnapshot":Ve.snapshot}}};te(Le,Ct),Q.set(Le,(Q.get(Le)??0)+1);let gt,St=!1,wt=!1;try{const tt=e.sessions.find(ht=>ht.id===Te),st=Go().resolveSendModel(tt?.model)??void 0,Rt=await a(Te,st)??e.thinking;gt=e.pendingThinkingBySession[Te],St=!0;const ln=await n.submitPrompt(Te,{content:pt,...Lt===void 0?{}:{metadata:Lt},agentId:Le,model:st,thinking:Rt,permissionMode:je,planMode:e.planModeBySession[Te]??!1,swarmMode:e.swarmModeBySession[Te]??!1});return Rt!==void 0&&uu(e,Te,gt),k(Te).some(ht=>ht.agentId===Le)&&(Y(Le,He,ln.promptId,ln.userMessageId),q(Te,ln.userMessageId)),!0}catch(tt){return uu(e,Te,gt)&&l(Te),d("sendSideChatPrompt",tt,Te),k(Te).some(st=>st.agentId===Le)&&(J(Le,He),e.sideChatSendingByAgent={...e.sideChatSendingByAgent,[Le]:!1}),wt=!St||tt instanceof Vf,wt&&k(Te).some(st=>st.agentId===Le)&&g.add(Le),!1}finally{const tt=(Q.get(Le)??1)-1;tt>0?Q.set(Le,tt):Q.delete(Le);const st=ee.get(Le);tt===0&&st!==void 0&&(ee.delete(Le),ne(Le,Te,st.outputPreview))}}function jt(Oe){if($.delete(Oe),v3.delete(Oe),m.delete(Oe),g.delete(Oe),Q.delete(Oe),ee.delete(Oe),CC(`sidechat:${Oe}`,"",[]),bot(`sidechat:${Oe}`),Object.prototype.hasOwnProperty.call(e.sideChatMessagesByAgent,Oe)){const{[Oe]:Le,...Ke}=e.sideChatMessagesByAgent;e.sideChatMessagesByAgent=Ke}if(Object.prototype.hasOwnProperty.call(e.sideChatSendingByAgent,Oe)){const{[Oe]:Le,...Ke}=e.sideChatSendingByAgent;e.sideChatSendingByAgent=Ke}P(Oe)}function Kt(Oe){if(Oe!==void 0){const Ie=C(Oe);if(!Ie)return;jt(Oe),y.set(Oe,Ie),f.value={...f.value,[Ie]:k(Ie).filter(Ve=>Ve.agentId!==Oe)};return}const Le=e.activeSessionId;if(!Le)return;for(const Ie of k(Le))jt(Ie.agentId),y.set(Ie.agentId,Le);const{[Le]:Ke,...Ee}=f.value;f.value=Ee}async function sn(Oe){const Le=S.value;return Le?$t(Le.parentId,Le.agentId,Oe):!1}function Jt(Oe){if(be.set(Oe,xe(Oe)+1),e.sideChatUserMessageIdsBySession[Oe]!==void 0){const{[Oe]:Ee,...Ie}=e.sideChatUserMessageIdsBySession;e.sideChatUserMessageIdsBySession=Ie}if(delete h[Oe],de.value[Oe]!==void 0){const{[Oe]:Ee,...Ie}=de.value;de.value=Ie}for(const Ee of k(Oe))jt(Ee.agentId);for(const[Ee,Ie]of y)Ie===Oe&&y.delete(Ee);const{[Oe]:Le,...Ke}=f.value;f.value=Ke}return Fe(r,Oe=>{if(Oe!==null)for(const[Le,Ke]of Object.entries(f.value)){for(const Ee of Ke)Oe.markSideChannelAgent(Le,Ee.agentId);Pe(Le)}},{flush:"sync"}),{sideChatTargetBySession:f,sideChatTargetsOfSession:k,restoreSideChatTarget:w,isClosedSideChatAgent:x,sideChatSessionId:M,sideChatVisible:_,sideChatSending:F,sideChatRunning:B,sideChatTurns:G,sideChatSendingOf:T,sideChatRunningOf:N,sideChatTurnsOf:j,sideChatTurnErrorOf:E,setSideChatTurnError:L,appendSideChatAssistantText:pe,appendSideChatToolCall:Me,reviveSideChatAgent:U,finishSideChatAgent:ke,reconcileSideChatUserMessage:ae,resyncSideChat:Pe,wasSideChatAgent:v,openSideChat:ce,openSideChatOn:Pt,closeSideChat:Kt,sendSideChatPrompt:sn,sendSideChatPromptOn:$t,saveSideChatDraft:$e,sideChatDraft:Ye,clearSideChatDraftIfUnchanged:rt,clearSideChatForSession:Jt}}const pg=new Error("profile persist failed");function hst(e,t){const{api:n,pushOperationFailure:i,refreshSessionStatus:o,persistSessionProfile:s,whenSessionProfileSettled:r,savePlanModeToStorage:a,saveTowerModeToStorage:l,activity:c,updateSession:u,loadConfig:d,checkAuth:f,mapSendAuthFailure:h,mainTranscriptTailTurnId:m,mainTranscriptTailPromptCreatedAt:g,settleIfFateProven:y}=t,v=TO({pushOperationFailure:i,mapSendAuthFailure:h}),k=Go();function w(se){if(!(se==null||se.length===0))return k.models.find(Q=>Q.id===se)??k.models.find(Q=>Q.model===se)}function C(){const se=e.activeSessionId?e.sessions.find(ee=>ee.id===e.activeSessionId):void 0,Q=se===void 0?k.draftModel??k.defaultModel:se.model||k.defaultModel;return w(Q)?.id??Q??void 0}function x(se){if(se===void 0)return;const Q=w(se);return Q===void 0?void 0:B0(Q)}function S(se,Q){const ee=se==null?void 0:e.thinkingBySession[se];return ee!==void 0?f6(Q,ee)?ee:B0(Q):wR(e.config?.thinking,Q)??B0(Q)}function M(se,Q){if(Q===void 0)return;const ee=w(Q);return ee===void 0?void 0:S(se,ee)}async function _(se,Q){return se!=null&&e.thinkingBySession[se]===void 0&&await o(se),M(se,Q)}function T(se){e.thinking=se;const Q=e.activeSessionId;return se!==void 0&&Q!==null&&Q!==void 0?(e.thinkingBySession={...e.thinkingBySession,[Q]:se},O8(e,Q)):Q==null&&(e.draftThinkingExplicit=se!==void 0),se}function E(){const se=e.activeSessionId,Q=w(C());if(se==null){if(e.draftThinkingExplicit){if(Q===void 0||e.thinking!==void 0&&f6(Q,e.thinking))return;e.draftThinkingExplicit=!1}}else e.draftThinkingExplicit&&(e.draftThinkingExplicit=!1);Q!==void 0&&(e.thinking=S(se,Q))}Fe([()=>e.activeSessionId,()=>C(),()=>{const se=e.activeSessionId;return se==null?void 0:e.thinkingBySession[se]},()=>e.config?.thinking],E);async function L(){try{return k.setModels(await n.listModels()),E(),!0}catch(se){return i("loadModels",se),!1}}async function P(){try{k.setProviders(await n.listProviders())}catch(se){i("loadProviders",se)}}async function N(se){const Q=e.activeSessionId,ee=w(se),he=e.thinking,Re=Q?e.sessions.find(ne=>ne.id===Q)?.model:void 0,Pe=C()!==(ee?.id??se),le=ZN(ee,he,Pe,Q?void 0:e.config?.thinking);if(!Q)return k.setDraftModel(se),e.thinking=le,Pe&&(e.draftThinkingExplicit=!1),!0;u(Q,ne=>({...ne,model:se}));let ke;le!==he&&(e.thinking=le,le!==void 0&&(e.thinkingBySession={...e.thinkingBySession,[Q]:le},ke=O8(e,Q)));try{await n.updateSession(Q,{model:se,thinking:le!==he?le:void 0})}catch(ne){return u(Q,ce=>({...ce,model:Re??ce.model})),le!==he&&(e.thinking=he,he!==void 0&&(e.thinkingBySession={...e.thinkingBySession,[Q]:he}),uu(e,Q,ke)&&o(Q)),i("setModel",ne,{sessionId:Q}),!1}return uu(e,Q,ke),await o(Q),!0}async function U(se,Q){const ee=se,he=e.sessions.find(be=>be.id===ee);if(he===void 0)return!1;const Re=w(Q),Pe=he.model,le=e.thinkingBySession[ee],ke=(Pe??"")!==(Re?.id??Q),ne=ZN(Re,le,ke,void 0);u(ee,be=>({...be,model:Q}));let ce;ne!==le&&ne!==void 0&&(e.thinkingBySession={...e.thinkingBySession,[ee]:ne},ce=O8(e,ee));try{await n.updateSession(ee,{model:Q,thinking:ne!==le?ne:void 0})}catch(be){if(u(ee,xe=>({...xe,model:Pe??xe.model})),ne!==le){if(le===void 0){const xe={...e.thinkingBySession};delete xe[ee],e.thinkingBySession=xe}else e.thinkingBySession={...e.thinkingBySession,[ee]:le};uu(e,ee,ce)&&o(ee)}return i("setModel",be,{sessionId:ee}),!1}return uu(e,ee,ce),await o(ee),!0}async function F(se,Q,ee,he,Re){const Pe=he??e.activeSessionId;if(!Pe)return!1;const le=Re?.snapshot===void 0?void 0:structuredClone(Re.snapshot),ke=le===void 0?Q:Gie(Q??"",le)||void 0,ne=c.value==="idle"&&!It().inFlightBySession[Pe],ce=`msg_skill_opt_${Date.now().toString(36)}`,be=ne?It().beginLocalTurn(Pe):void 0;let xe=!1,de=!1;if(ne){It().setInFlight(Pe,!0);const $e={id:ce,sessionId:Pe,role:"user",content:[{type:"text",text:`/${se}${Q?` ${Q}`:""}`},...aw(ee)],createdAt:new Date().toISOString(),metadata:{...le===void 0?{}:{"kimiWeb.composerSnapshot":le},"kimiWeb.optimisticUserMessage":!0,"kimiWeb.anchorTurnId":m?.(Pe),"kimiWeb.anchorPromptCreatedAt":g?.(Pe),origin:{kind:"skill_activation",trigger:"user-slash",skillName:se,skillArgs:ke}}};It().addOptimisticMessage(Pe,$e)}try{if(Re?.skipThinkingPersist!==!0){const Ye=k.resolveSendModel(e.sessions.find($t=>$t.id===Pe)?.model)??void 0,rt=e.planArmedBySession[Pe]??!1;if(!await s({thinking:await _(Pe,Ye)??e.thinking,swarmMode:e.swarmModeBySession?.[Pe]??!1,towerMode:rt?!1:e.towerModeBySession?.[Pe],permissionMode:Cn().forPrompt(Pe),...rt?{planMode:!0}:{}},Pe))throw pg;rt&&(e.planArmedBySession={...e.planArmedBySession,[Pe]:!1},a(),e.planModeBySession={...e.planModeBySession,[Pe]:!0},e.towerModeBySession={...e.towerModeBySession,[Pe]:!1},l())}if(!await r(Pe))throw pg;if(Cn().hasOpenSubmissionsFor(Pe)||Cn().hasOneShotEchoFor(Pe)){for(let rt=0;rt<10&&Cn().hasOpenSubmissionsFor(Pe);rt++)await new Promise(Pt=>setTimeout(Pt,200));if(Cn().hasOpenSubmissionsFor(Pe))throw pg;const Ye=Cn().forPrompt(Pe);if(Ye!==void 0&&(!await s({permissionMode:Ye},Pe)||!await r(Pe)))throw pg}return await e7(Pe,async()=>{if(le===void 0)xe=!0,await n.activateSkill(Pe,se,Q,aw(ee));else{const Ye={text:"",attachments:ee??[],snapshot:le},rt=cw(Ye),Pt=lw(Ye);xe=!0,await n.activateSkill(Pe,se,ke,rt,{metadata:Pt})}}),de=!0,!0}catch($e){return ne&&(It().setInFlight(Pe,!1),!xe||$e instanceof Vf?It().removeOptimisticMessage(Pe,ce):It().markOptimisticUncertain(Pe,ce)),$e!==pg&&!P2($e)&&v("activateSkill",$e,Pe),!1}finally{be!==void 0&&It().settleLocalTurn(Pe,be),de&&be!==void 0&&y?.(Pe)}}async function B(se){return n.getProvider(se)}async function W(se){try{return await n.addProvider(se),await Promise.all([P(),L(),d()]),await f(),null}catch(Q){return Ud("[kimi-code] operation failed: addProvider",Q),Q instanceof Error?Q.message:String(Q)}}async function D(se,Q){try{return await n.updateProvider(se,Q),await Promise.all([P(),L(),d()]),await f(),null}catch(ee){return Ud("[kimi-code] operation failed: updateProvider",ee),ee instanceof Error?ee.message:String(ee)}}async function z(se){try{const Q=await n.deleteProvider(se);return await Promise.all([P(),L(),d()]),await f(),Q}catch(Q){return i("deleteProvider",Q),null}}async function $(se){try{const Q=await n.refreshProvider(se);for(const ee of Q.failed)i("refreshProvider",new Error(ee.reason),{message:Hl(ee.provider,Un)});await Promise.all([P(),L(),d()]),await f()}catch(Q){i("refreshProvider",Q)}}async function j(){try{const se=await n.refreshAllProviders();for(const Q of se.failed)i("refreshAllProviders",new Error(Q.reason),{message:Hl(Q.provider,Un)});await Promise.all([P(),L(),d()]),await f()}catch(se){i("refreshAllProviders",se)}}async function G(){try{const se=await n.refreshOAuthProviderModels();if(se.failed.length>0)return{ok:!1,failed:se.failed,changed:se.changed};const Q=await L(),ee=await d()!=="failed",he=await f();return{ok:Q&&ee&&he==="proceed",failed:se.failed,changed:se.changed}}catch{return{ok:!1,failed:[],changed:[]}}}async function K(){try{return{kind:"ok",items:await n.listCatalogProviders()}}catch(se){return se instanceof Vf&&se.code===void 0?{kind:"unsupported"}:(Ud("[kimi-code] operation failed: loadCatalogProviders",se),{kind:"error"})}}async function te(se){try{return await n.importCatalogProvider(se),await Promise.all([P(),L(),d()]),await f(),null}catch(Q){return Ud("[kimi-code] operation failed: importCatalogProvider",Q),Q instanceof Error?Q.message:String(Q)}}async function J(se){try{const Q=await n.importCustomRegistry(se);return await Promise.all([P(),L(),d()]),await f(),Q}catch(Q){return Ud("[kimi-code] operation failed: importCustomRegistry",Q),Q instanceof Error?Q.message:String(Q)}}async function q(se){try{return await n.startOAuthLogin(se)}catch(Q){return{error:Q instanceof Error?Q.message:String(Q)}}}async function Y(){return n.getOAuthRegion()}async function ae(){try{return await n.pollOAuthLogin()}catch(se){return La("[kimi-code] pollOAuthLogin failed",se),null}}async function pe(){try{await n.cancelOAuthLogin()}catch{}}async function Me(){try{return await n.getUsage()}catch(se){return{kind:"error",message:se instanceof Error?se.message:String(se)}}}function fe(se){const Q=T(se);s({thinking:Q})}return{models:R(()=>k.models),starredModelIds:R(()=>k.starredModelIds),providers:R(()=>k.providers),draftModel:R(()=>k.draftModel),skillsBySession:R(()=>k.skillsBySession),skillsByWorkspace:R(()=>k.skillsByWorkspace),skillsFetchedBySession:R(()=>k.skillsFetchedBySession),skillsFetchedByWorkspace:R(()=>k.skillsFetchedByWorkspace),loadSkillsForSession:k.loadSkillsForSession,loadSkillsForWorkspace:k.loadSkillsForWorkspace,loadModels:L,loadProviders:P,setModel:N,setSessionModel:U,thinkingLevelForModelId:x,thinkingLevelForSessionId:M,resolveThinkingForPrompt:_,toggleStarModel:k.toggleStarModel,activateSkill:F,addProvider:W,updateProvider:D,deleteProvider:z,getProvider:B,loadCatalogProviders:K,importCatalogProvider:te,importCustomRegistry:J,refreshProvider:$,refreshAllProviders:j,refreshOAuthProviderModels:G,startOAuthLogin:q,pollOAuthLogin:ae,cancelOAuthLogin:pe,getOAuthRegion:Y,getUsage:Me,setThinking:fe}}const pst=20,mst=300,gst=1e4,OK=5e3;function Qce(e){const[t,n,i]=e.split("-").map(Number);return new Date(t??0,(n??1)-1,i??1,0,0,0,0).getTime()}function Yce(e){const[t,n,i]=e.split("-").map(Number);return new Date(t??0,(n??1)-1,i??1,23,59,59,999).getTime()}function vst(e,t,n){return{workspaceIds:e.workspaceIds.length>0?[...e.workspaceIds]:void 0,archived:e.status==="all"?"all":e.status==="done",updatedAfter:e.updatedFrom!==""?Qce(e.updatedFrom):void 0,updatedBefore:e.updatedTo!==""?Yce(e.updatedTo):void 0,sort:"meta.updated_at_desc",page:t,pageSize:n}}function yst(e){return{workspaceIds:e.workspaceIds.length>0?[...e.workspaceIds]:void 0,archived:e.status==="all"?"all":e.status==="done",updatedAfter:e.updatedFrom!==""?Qce(e.updatedFrom):void 0,updatedBefore:e.updatedTo!==""?Yce(e.updatedTo):void 0,sort:"meta.updated_at_desc"}}function v8(e){return JSON.stringify([[...e.workspaceIds].toSorted(),e.status,e.updatedFrom,e.updatedTo])}function bst(e){const t=Qo({filters:{workspaceIds:[],status:"all",updatedFrom:"",updatedTo:""},page:1,pageSize:pst,items:[],total:0,loading:!1,seeded:!1,selectedIds:new Set,selectedArchivedById:new Map,allMatching:!1,materializingAll:!1});let n=0,i=null;async function o(){i!==null&&(clearTimeout(i),i=null);const _=++n;t.loading=!0;try{const T=await tn().listSessionsV2(vst(t.filters,t.page,t.pageSize));if(_!==n)return;t.items=T.items,t.total=T.total;for(const L of T.items)t.selectedArchivedById.has(L.id)&&t.selectedArchivedById.set(L.id,L.meta.archived);const E=Math.max(1,Math.ceil(T.total/t.pageSize));t.page>E&&(t.page=E,o())}catch(T){if(_!==n)return;e.pushOperationFailure("sessionAdmin",T)}finally{_===n&&(t.loading=!1)}}function s(){i!==null&&clearTimeout(i),i=setTimeout(()=>{i=null,o()},mst)}function r(){t.seeded||(t.seeded=!0,o())}async function a(){await o()}function l(_){t.allMatching&&v8(_)!==v8(t.filters)&&v(),t.filters.workspaceIds=[..._.workspaceIds],t.filters.status=_.status,t.filters.updatedFrom=_.updatedFrom,t.filters.updatedTo=_.updatedTo,t.page=1,t.seeded=!0,o()}function c(_){t.allMatching&&v(),t.filters.workspaceIds=[..._],t.page=1,s()}function u(_){t.allMatching&&v(),t.filters.status=_,t.page=1,s()}function d(_,T){t.allMatching&&v(),t.filters.updatedFrom=_,t.filters.updatedTo=T,t.page=1,s()}function f(_){_!==t.page&&(t.page=_,s())}function h(_){_!==t.pageSize&&(t.pageSize=_,t.page=1,s())}function m(_,T){if(t.selectedIds.has(_)){t.selectedIds.delete(_),t.selectedArchivedById.delete(_),t.selectedIds.size===0&&(t.allMatching=!1);return}t.selectedIds.add(_),t.selectedArchivedById.set(_,T)}function g(_){const T=_.length>0&&_.every(E=>t.selectedIds.has(E.id));for(const E of _)T?(t.selectedIds.delete(E.id),t.selectedArchivedById.delete(E.id)):(t.selectedIds.add(E.id),t.selectedArchivedById.set(E.id,E.archived));t.selectedIds.size===0&&(t.allMatching=!1)}function y(_){t.selectedIds=new Set(_.map(T=>T.id)),t.selectedArchivedById=new Map(_.map(T=>[T.id,T.archived])),t.allMatching=!1}function v(){t.selectedIds=new Set,t.selectedArchivedById=new Map,t.allMatching=!1}function k(_){n+=1,t.loading=!1,t.items=t.items.filter(T=>T.id!==_),t.selectedIds.delete(_),t.selectedArchivedById.delete(_),t.selectedIds.size===0&&(t.allMatching=!1),t.seeded&&o()}async function w(){if(t.allMatching||t.materializingAll)return;t.materializingAll=!0;const _=n,T=yst(t.filters),E=v8(t.filters);try{const L=[];let P;for(;;){const N=await tn().listSessionIdsV2({...T,pageSize:gst,pageToken:P});if(L.push(...N.items),!N.hasMore||N.nextPageToken===null)break;P=N.nextPageToken}if(v8(t.filters)!==E||_!==n)return;for(const N of L)t.selectedIds.add(N.id),t.selectedArchivedById.set(N.id,N.archived);t.allMatching=!0}catch(L){e.pushOperationFailure("sessionAdmin",L)}finally{t.materializingAll=!1}}function C(_){const T=[];for(const[E,L]of t.selectedArchivedById)L===_&&T.push(E);return T}async function x(_,T,E){const L=[];let P=0,N=0;for(let U=0;U<_.length;U+=OK){const F=_.slice(U,U+OK);try{const B=await E(F),W=B.results.filter(D=>D.ok).map(D=>D.id);L.push(...W),P+=B.succeeded,N+=B.failed}catch(B){N+=_.length-U,e.pushOperationFailure(T?"archiveSessions":"restoreSessions",B);break}}if(L.length>0){await e.applySessionsArchivedLocally(L,T);for(const U of L)t.selectedIds.delete(U),t.selectedArchivedById.delete(U);t.selectedIds.size===0&&(t.allMatching=!1),await a()}return{okIds:L,succeeded:P,failed:N}}async function S(_){return x(_,!0,T=>tn().archiveSessions(T))}async function M(_){return x(_,!1,T=>tn().restoreSessions(T))}return{state:t,ensureSeeded:r,refresh:a,applyFilters:l,setWorkspaceIds:c,setStatus:u,setTimeRange:d,setPage:f,setPageSize:h,toggleSelection:m,togglePageSelection:g,setSelection:y,clearSelection:v,dropSession:k,selectAllMatching:w,selectedIdsByArchived:C,archiveSessions:S,restoreSessions:M}}const h1=new Map,Gg=new Map,b0=new Map;let Ek=0;const kst=500,wst=J8*2,Cst=32*1024*1024,Ast=500,R_=new WeakMap;function Jce(e,t,n,i,o){let s=e.get(t);const r=s&&R_.get(s);if(r&&(r.aborted||r!==o)&&(s=void 0),s===void 0){const a=n();s=a,e.set(t,a);const l=()=>{e.get(t)===a&&e.delete(t)},c=()=>{o?.removeEventListener("abort",l),R_.delete(a)};o&&(R_.set(a,o),o.addEventListener("abort",l,{once:!0}),o.aborted&&l()),a.then(u=>{c(),!o?.aborted&&e.get(t)===a&&i(a,u)},()=>{c(),l()})}return s}function xst(e){const t=`${e}:`;for(const n of[...h1.keys()])n.startsWith(t)&&h1.delete(n);for(const n of[...Gg.keys()]){if(!n.startsWith(t))continue;Gg.delete(n);const i=b0.get(n);i!==void 0&&(Ek-=i,b0.delete(n))}}function Sst(e,t){return Object.assign(i=>{const o=e(),s=t?.();if(!o)return Promise.resolve(void 0);if(s?.signal?.aborted)return Promise.resolve("cancelled");const r=`${o}:${i}`;return Jce(h1,r,()=>{const a=tn();return s===void 0?a.getTurnFileChanges(o,i):a.getTurnFileChanges(o,i,s)},(a,l)=>{if(l==="unrecorded"){h1.get(r)===a&&h1.delete(r);return}for(;h1.size>kst;){const c=h1.keys().next().value;if(c===void 0)break;h1.delete(c)}},s?.signal).then(a=>s?.signal?.aborted?"cancelled":a==="unrecorded"?void 0:a,a=>{if(s?.signal?.aborted||a instanceof Error&&a.name==="AbortError")return"cancelled";throw a})},{getSignal:()=>t?.()?.signal})}function _st(e){return(t,n,i,o)=>{const s=o??e();if(!s)return Promise.resolve(void 0);const r=`${s}:${t}:${i}:${n}`;return Jce(Gg,r,()=>tn().getTurnFileContent(s,t,n,i).then(a=>a??void 0),(a,l)=>{if(Gg.get(r)!==a)return;const c=(l?.content?.length??0)*2;if(l===void 0||c>wst){Gg.delete(r);return}for(b0.set(r,c),Ek+=c;Ek>Cst||b0.size>Ast;){const u=b0.keys().next().value;if(u===void 0)break;Ek-=b0.get(u)??0,b0.delete(u),Gg.delete(u)}})}}let i9=null;function Ist(e){i9=e}function Tst(e){i9!==null&&e!==i9.sessionId&&(i9=null)}function Mst(){return i9}const Est=lr("kimi.modelSwitchConfirm",()=>{const e=Z(void 0),t=Z(null);let n=null;async function i(d){try{const f=await tn().getClientConfig(gye,d);e.value=f===null?void 0:yye(f)}catch{e.value=void 0}}function o(){return e.value}function s(d){return new Promise(f=>{t.value?.resolve("cancel"),t.value={...d,resolve:f}})}function r(d){const f=t.value;f!==null&&(t.value=null,f.resolve(d))}function a(d,f){if(n?.sessionId===d)return n.promise;n?.resolve("cancelled");let h;const m=new Promise(y=>{h=y}),g=setTimeout(()=>{n?.sessionId===d&&(n=null),h("timeout")},f);return n={sessionId:d,promise:m,resolve:y=>{clearTimeout(g),n=null,h(y)}},m}function l(d,f){n?.sessionId===d&&n.resolve(f)}function c(d){return n?.sessionId===d}function u(){e.value=void 0,t.value=null,n=null}return{config:e,pending:t,refresh:i,peek:o,requestConfirm:s,settle:r,waitCompactionSettled:a,noteCompactionSettled:l,hasCompactionWait:c,resetForTest:u}});function Oc(){return Est(Hs)}const P_=new WeakMap,$_=new WeakMap;function xy(e,t,n){if(P_.has(e))return P_.get(e);const i=Nie(e,t),o=i!==void 0&&n!==void 0?{...i,agentId:n}:i;return P_.set(e,o),o}function Sy(e,t,n){if($_.has(e))return $_.get(e);const i=oOe(e,t),o=i!==void 0&&n!==void 0?{...i,agentId:n}:i;return $_.set(e,o),o}function Lst(e){if(e.startsWith("kimi-complete-"))return"turn_complete";if(e.startsWith("kimi-question-"))return"question";if(e.startsWith("kimi-approval-"))return"approval"}function FK(e,t){const n=lo(e);return n===null?t:n==="1"}const Rst="/favicon.ico",Pst=lr("kimi.notifications",()=>{const e=Z(FK(xn.notifyEnabled,!0)),t=Z(FK(xn.notifySound,!0)),n=Z(typeof Notification<"u"?Notification.permission:"denied");async function i(u){if(!u){e.value=!1,Eo(xn.notifyEnabled,"0");return}if(typeof Notification>"u")return;let d=Notification.permission;if(d==="default")try{d=await Notification.requestPermission()}catch{}n.value=d,d==="granted"&&(e.value=!0,Eo(xn.notifyEnabled,"1"))}function o(u){t.value=u,Eo(xn.notifySound,u?"1":"0")}function s(u,d,f){if(!e.value||typeof Notification>"u")return;const h=Notification.permission;if(h!=="denied"){if(h==="default"){Notification.requestPermission().then(m=>{n.value=m,m==="granted"&&r(u,d,f)});return}r(u,d,f)}}function r(u,d,f){if(!u.isUserWatching)try{const h=new Notification(d.title,{body:d.body,tag:f,icon:Rst,silent:!t.value}),m=Lst(f);m!==void 0&&void 0,h.onclick=()=>{try{window.kimiDesktop?.showWindow?.(),window.focus()}catch{}m!==void 0&&void 0,u.onClick(),h.close()}}catch{}}function a(u,d){s(d,Qot(Un,d.sessionTitle),`kimi-complete-${u}-${d.promptId??Date.now()}`)}function l(u){s(u,Yot(Un,u.sessionTitle,u.questionPreview),`kimi-question-${u.questionId}`)}function c(u){s(u,Jot(Un,u.sessionTitle,u.toolName),`kimi-approval-${u.approvalId}`)}return{notifyEnabled:e,notifySound:t,notifyPermission:n,setNotifyEnabled:i,setNotifySound:o,maybeNotifyCompletion:a,maybeNotifyQuestion:l,maybeNotifyApproval:c}});function y3(){return Pst(Hs)}class Xce{transcript;sessionId;agentId;fetchPage;pageSize;onChange;onGap;onReset;refreshPromise=null;buffered=[];agents_=[];seq_;loadingOlder_=!1;loadOlderError_=!1;refreshError_=!1;constructor(t){this.sessionId=t.sessionId,this.agentId=t.agentId,this.transcript=new G_e(t.agentId),this.fetchPage=t.fetchPage,this.pageSize=t.pageSize??20,this.onChange=t.onChange,this.onGap=t.onGap,this.onReset=t.onReset}get snapshot(){return this.transcript.snapshot()}get seq(){return this.seq_}get agents(){return this.agents_}get loading(){return this.refreshPromise!==null}get loadingOlder(){return this.loadingOlder_||this.loadOlderTask_!==void 0}get loadOlderError(){return this.loadOlderError_}get refreshError(){return this.refreshError_}readChain=Promise.resolve();activeReads=0;enqueueRead(t,n){const i=this.activeReads===0;this.activeReads+=1;const s=(i?new Promise(r=>{r(t())}):this.readChain.then(t)).finally(()=>{this.activeReads-=1,n();const r=this.buffered;this.buffered=[];for(const a of r)this.applyOps(a.ops,a.seq);this.onChange?.()});return this.readChain=s.catch(()=>{}),s}refresh(){if(this.refreshPromise!==null)return this.refreshPromise;this.refreshError_=!1;const t=this.enqueueRead(async()=>{try{const n=await this.fetchPage({pageSize:this.pageSize});this.applyPage(n,!0)}catch(n){throw this.refreshError_=!0,n}},()=>{this.refreshPromise=null});return this.refreshPromise=t,this.onChange?.(),t}receiveReset(t,n){this.transcript.receive([{op:"reset",agentId:this.agentId,snapshot:t}]),n!==void 0&&(this.seq_=n),this.refreshError_=!1,this.onReset?.(),this.onChange?.()}applyOps(t,n){if(this.refreshPromise!==null||this.loadingOlder)return this.buffered.push({ops:t,...n!==void 0?{seq:n}:{}}),!1;if(n!==void 0&&this.seq_!==void 0){if(n<=this.seq_)return!0;if(n!==this.seq_+1)return this.onGap?.(),!1}const i=this.transcript.apply(t);return n!==void 0&&(this.seq_=n),i.gap!==void 0&&this.onGap?.(),i.accepted.length>0&&this.onChange?.(),i.gap===void 0}loadOlderTask_;async loadOlder(){if(!this.snapshot.hasMoreOlder||this.loadingOlder)return;const t=this.enqueueRead(async()=>{if(!this.snapshot.hasMoreOlder)return;const n=this.snapshot.items.find(i=>i.kind==="turn");if(n?.kind==="turn"){this.loadingOlder_=!0,this.loadOlderError_=!1,this.onChange?.();try{const i=await this.fetchPage({beforeTurn:n.turnId,pageSize:this.pageSize});this.applyPage(i,!1)}catch(i){throw this.loadOlderError_=!0,i}}},()=>{this.loadingOlder_=!1,this.loadOlderTask_=void 0});this.loadOlderTask_=t;try{await t}finally{this.loadOlderTask_===t&&(this.loadOlderTask_=void 0)}}settleOlder(){return this.loadOlderTask_??Promise.resolve()}applyPage(t,n){this.agents_=t.agents;const i=this.snapshot;if(n){this.receiveReset(t,t.seq);return}const o={...t,items:$st(t.items,i.items),hasMoreOlder:t.hasMoreOlder};this.transcript.receive([{op:"reset",agentId:this.agentId,snapshot:o}]),this.refreshError_=!1,this.onChange?.()}}function $st(e,t){const n=new Set,i=[];for(const o of[...e,...t]){const s=o.kind==="turn"?o.turnId:o.kind==="marker"?o.markerId:o.refId;n.has(s)||(n.add(s),i.push(o))}return i}function Ost(e){const t=V1(new Map),n=V1(new Map),i=new Map,o=new Set;let s=null,r=null;function a(){s!==null&&(typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(s),s=null),r!==null&&(clearTimeout(r),r=null);for(const w of o)w.version.value+=1;o.clear()}function l(w){o.add(w),!(s!==null||r!==null)&&(typeof requestAnimationFrame=="function"&&(s=requestAnimationFrame(a)),r=setTimeout(a,50))}function c(w,C){return`${w}\0${C}`}function u(w,C,x){const S=e.getEventConnection();S!==null&&(S.subscribeTranscript(w,C,x),i.set(w,C))}function d(w,C){const x=c(w,C),S=t.get(x);if(S!==void 0)return S;const M={channel:new Xce({sessionId:w,agentId:C,fetchPage:_=>e.api.getSessionTranscript(w,{..._,agentId:C}),onChange:()=>{l(M)},onGap:()=>{f(M)}}),version:Z(0),baselineLoaded:!1,resumePromise:null};return t.set(x,M),M}async function f(w){if(w.resumePromise!==null)return w.resumePromise;const C=h(w).finally(()=>{w.resumePromise===C&&(w.resumePromise=null)});return w.resumePromise=C,C}async function h(w){const C=()=>t.get(c(w.channel.sessionId,w.channel.agentId))===w;try{await w.channel.refresh(),w.baselineLoaded=!0,C()&&n.get(w.channel.sessionId)===w.channel.agentId&&u(w.channel.sessionId,w.channel.agentId,w.channel.seq)}catch{C()&&n.get(w.channel.sessionId)===w.channel.agentId&&u(w.channel.sessionId,w.channel.agentId)}}function m(w,C){e.connectEventsIfNeeded();const x=i.get(w);x!==void 0&&x!==C&&(e.getEventConnection()?.unsubscribeTranscript(w,[x]),i.delete(w)),n.set(w,C);const S=d(w,C);return S.baselineLoaded?u(w,C,S.channel.seq):f(S),S}function g(w,C){if(n.get(w)!==C)return;n.delete(w);const x=i.get(w);x!==void 0&&(e.getEventConnection()?.unsubscribeTranscript(w,[x]),i.delete(w));const S=c(w,C),M=t.get(S);M!==void 0&&(t.delete(S),o.delete(M))}function y(w,C,x,S){if(n.get(w)!==C)return;const M=d(w,C);M.channel.receiveReset(x,S),M.baselineLoaded=!0}function v(w,C,x,S){return n.get(w)!==C?!0:d(w,C).channel.applyOps(x,S)}function k(w){n.delete(w),i.delete(w)&&e.getEventConnection()?.unsubscribeTranscript(w);for(const[C,x]of t)x.channel.sessionId===w&&(t.delete(C),o.delete(x))}return{getEntry:(w,C)=>t.get(c(w,C)),desiredAgentBySession:n,activate:m,deactivate:g,receiveReset:y,applyOps:v,forgetSession:k}}const _y="main",Fst=4;function Dst(e){const t=V1(new Map),n=V1(new Set),i=e.maxResidentSessions??Fst;let o=0;const s=new Map;function r(T){const E=s.get(T);E?.timer!=null&&clearTimeout(E.timer),s.delete(T)}const a=new Set,l=new Set;let c=null,u=null;function d(){c!==null&&(typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(c),c=null),u!==null&&(clearTimeout(u),u=null);for(const T of l)T.version.value+=1;l.clear()}function f(T){M$e(T.channel.snapshot,T.thinkingTiming),l.add(T),!(c!==null||u!==null)&&(typeof requestAnimationFrame=="function"&&(c=requestAnimationFrame(d)),u=setTimeout(d,50))}function h(T,E){const L=e.getEventConnection();L!==null&&(L.subscribeTranscript(T,_y,E),n.add(T))}function m(T){const E=t.get(T);if(E!==void 0)return E;const L=new Map,P={channel:new Xce({sessionId:T,agentId:_y,pageSize:10,fetchPage:N=>e.api.getSessionTranscript(T,{...N,agentId:_y}),onChange:()=>{e.onSnapshotChange?.(T),f(P)},onReset:()=>{E$e(P.channel.snapshot,L)},onGap:()=>{if(P.resumePromise!==null){P.gapRetryPending=!0;return}y(P)}}),thinkingTiming:L,version:Z(0),baselineLoaded:!1,resumePromise:null,gapRetryPending:!1,pendingReset:null,opsAfterReset:[],emptyResetRetries:0,recoveredViaEmptyReset:!1,lastTouchedSeq:0};return t.set(T,P),P}function g(T){const E=T.pendingReset;if(T.pendingReset=null,E===null||t.get(T.channel.sessionId)!==T)return;T.channel.receiveReset(E.snapshot,E.seq),T.baselineLoaded=!0,r(T.channel.sessionId),h(T.channel.sessionId,T.channel.seq);const L=T.opsAfterReset;T.opsAfterReset=[];for(const P of L)T.channel.applyOps(P.ops,P.seq)}async function y(T){if(T.resumePromise!==null)return T.resumePromise;const E=v(T).finally(()=>{T.resumePromise===E&&(T.resumePromise=null,g(T),T.gapRetryPending&&(T.gapRetryPending=!1,y(T)))});return T.resumePromise=E,E}async function v(T){const E=T.channel.sessionId;try{T.channel.loadingOlder&&await T.channel.settleOlder().catch(()=>{});for(let L=0;L<3;L++){const P=e.getLocalTurnState?.(E);await T.channel.refresh();const N=e.getLocalTurnState?.(E);if(P===void 0||N===void 0||P.generation===N.generation&&P.pending===N.pending)break}!T.baselineLoaded&&T.emptyResetRetries>0&&(T.recoveredViaEmptyReset=!0),T.baselineLoaded=!0,T.emptyResetRetries=0,d(),t.get(E)===T&&(r(E),h(E,T.channel.seq))}catch(L){if(Ti(L)&&L.code===40401){e.onSessionGone?.(E);return}if(T.baselineLoaded){t.get(E)===T&&h(E);return}if(t.get(E)!==T)return;if(t.delete(E),l.delete(T),a.has(E)){e.onBaselineError?.(E,L);return}{const P=s.get(E)??{attempt:0,timer:null};P.attempt+=1,s.set(E,P),P.attempt===1?e.onBaselineError?.(E,L):La("[kimi-code] transcript baseline retry failed",{sessionId:E,attempt:P.attempt,err:L}),P.timer=setTimeout(()=>{P.timer=null,s.get(E)===P&&t.get(E)===void 0&&y(m(E))},Math.min(P.attempt*2e3,15e3))}}}function k(){if(t.size<=i)return;const E=[...t.values()].sort((L,P)=>P.lastTouchedSeq-L.lastTouchedSeq).filter(L=>e.hasPendingLocalWork?.(L.channel.sessionId)!==!0);for(const L of E.slice(i)){const P=L.channel.sessionId;t.delete(P),l.delete(L),n.delete(P)&&e.getEventConnection()?.unsubscribeTranscript(P,[_y])}}function w(T){e.connectEventsIfNeeded(),r(T),a.delete(T);const E=m(T);return o+=1,E.lastTouchedSeq=o,E.baselineLoaded?h(T,E.channel.seq):y(E),k(),E}function C(T){r(T),a.add(T),k()}function x(T){const E=m(T);o+=1,E.lastTouchedSeq=o,E.baselineLoaded||y(E)}function S(T,E,L){const P=t.get(T);if(P!==void 0){if(E.items.length===0){P.emptyResetRetries+=1;const N=P.emptyResetRetries;setTimeout(()=>{t.get(T)===P&&y(P)},Math.min(N*2e3,15e3));return}if(P.resumePromise!==null){P.pendingReset!==null&&(P.opsAfterReset=[]),P.pendingReset={snapshot:E,seq:L};return}if(P.channel.loadingOlder){P.pendingReset!==null&&(P.opsAfterReset=[]),P.pendingReset={snapshot:E,seq:L},P.channel.settleOlder().catch(()=>{}).then(()=>{P.resumePromise===null&&g(P)});return}P.channel.receiveReset(E,L),P.baselineLoaded=!0,r(T)}}function M(T,E,L){const P=t.get(T);return P===void 0?!0:P.pendingReset!==null?(P.opsAfterReset.push({ops:E,...L!==void 0?{seq:L}:{}}),!0):P.channel.applyOps(E,L)}function _(T){r(T),a.delete(T);const E=t.get(T);E!==void 0&&(t.delete(T),l.delete(E)),n.delete(T)&&e.getEventConnection()?.unsubscribeTranscript(T,[_y])}return{getEntry:T=>t.get(T),activate:w,prefetch:x,deactivate:C,receiveReset:S,applyOps:M,forgetSession:_,refreshSession:T=>{const E=t.get(T);return E===void 0?Promise.resolve():y(E)},trimResident:k,subscribedSessions:n}}const DK="main";function Nst(e){let t=null;const n=e.getSharedConnection!==void 0,i=Dst({api:e.api,connectEventsIfNeeded:()=>{n?e.ensureSharedConnection?.():o()},getEventConnection:()=>n?e.getSharedConnection():t,maxResidentSessions:e.maxResidentSessions,onSessionGone:e.onSessionGone,getLocalTurnState:e.getLocalTurnState,hasPendingLocalWork:e.hasPendingLocalWork,onBaselineError:e.onBaselineError,onSnapshotChange:e.onSnapshotChange});function o(){t===null&&(t=e.api.connectTranscriptChannel({onTranscriptReset:(r,a,l,c)=>{a===DK&&i.receiveReset(r,l,c)},onTranscriptOps:(r,a,l,c)=>a===DK?i.applyOps(r,l,c):!0}))}function s(){n||t===null||t.health().stale&&t.reconnect()}return{pool:i,activate:r=>i.activate(r),deactivate:r=>i.deactivate(r),forgetSession:r=>i.forgetSession(r),trimResident:()=>i.trimResident(),recoverIfStale:s,close:()=>{n||t?.close()}}}let eue=null;function Bst(e){eue=e}const zst=lr("kimi.auth",()=>{const e=Z(null),t=Z(null),n=Z(null),i=Z(!1),o=Z(null),s=R(()=>e.value==="authenticated"),r=R(()=>n.value==="free");let a=null,l=!1,c=0,u=0,d=null;async function f(x){try{const S=await tn().getUserInfo();if(x!==u||e.value!=="authenticated")return;t.value=S.kind==="ok"?S.userInfo:null,S.kind==="ok"?n.value=z4e(S.userInfo.userLevel,S.userInfo.goodsVersion)?"free":"member":n.value=S.status===402?"free":null}catch{if(x!==u)return;e.value==="authenticated"&&(t.value=null,n.value=null)}}function h(x){const S=f(x).finally(()=>{d===S&&(d=null)});return d=S,S}async function m(){if(e.value==="authenticated"){if(d!==null)return d;await h(++u)}}async function g(x){try{const S=await tn().getAuth();return x!==c?"retry":(e.value=S.managedProvider?.status??null,i.value=!0,Go().setModelsReady(S.modelsReady),e.value==="authenticated"?h(++u):(t.value=null,n.value=null),o.value=null,"proceed")}catch(S){return x!==c?"retry":Ti(S)&&(S.code===401||S.code===une)?(o.value=null,"server-auth-required"):(o.value=_ve(S),"retry")}}function y(){const x=a;if(x!==null)return l=!0,v(x);const S=g(c);return a=S,S.finally(()=>{a===S&&(a=null,l&&(l=!1,y()))})}async function v(x){await x.catch(()=>"retry");const S=a;return S===null?y():S}function k(){a!==null&&(l=!0)}function w(){c+=1,a=null,l=!1,d=null,e.value=null,t.value=null,n.value=null,i.value=!1}async function C(){try{await tn().logout(),w(),await y(),await eue?.reload?.()}catch(x){oi().pushOperationFailure("logout",x)}}return{managedProviderStatus:e,managedUserInfo:t,managedMembership:n,authChecked:i,connectIssue:o,signedIn:s,isFree:r,checkAuth:y,probeMembership:m,markAuthDirty:k,resetAuth:w,logout:C}});function nr(){return zst(Hs)}function o9(){return{pathname:u9e(window.location.pathname)}}function Hst(e,t){function n(c,u){if(u==="none"||typeof window>"u"||!window.history||o9().pathname===c)return;const d=zJ(c,window.location.search);try{u==="push"?window.history.pushState(null,"",d):window.history.replaceState(null,"",d)}catch{}}function i(c,u){e.mainView==="chat"&&n(N9e(c),u)}function o(){e.mainView!=="sessionAdmin"&&(e.mainView="sessionAdmin",n(qJ,"push"))}function s(c){e.mainView==="sessionAdmin"&&(e.mainView="chat",i(e.activeSessionId,c?.urlMode??"push"))}function r(){if(VJ(o9())){e.mainView="sessionAdmin";return}e.mainView="chat";const c=UJ(o9());if(c===void 0){t.setActiveSessionId(void 0);return}if(c!==e.activeSessionId){if(e.sessions.some(u=>u.id===c)){t.selectSession(c,{urlMode:"none",skipTrack:!0});return}(async()=>{if(await t.fetchSessionIntoList(c)==="ok"){await t.selectSession(c,{urlMode:"none",skipTrack:!0});return}const u=e.sessions[0];u?await t.selectSession(u.id,{urlMode:"replace",skipTrack:!0}):(t.setActiveSessionId(void 0),i(void 0,"replace"))})()}}let a=!1;function l(){a||typeof window>"u"||(a=!0,window.addEventListener("popstate",r))}return{writeSessionUrl:i,openSessionAdmin:o,closeSessionAdmin:s,onSessionRoutePopState:r,bindSessionRoute:l}}const jst=2e3;function Wst(e,t){const n=Z(!1),i=Z("auth"),o=Z(0);let s;function r(){s?.abort(),s=void 0,An().cancelBackgroundReads(),gie(),e.loading=!1}async function a(c){let u=!0;for(;;){c.throwIfAborted();const d=await nr().checkAuth();if(c.throwIfAborted(),d!=="retry")return d;o.value+=1,u&&(nr().connectIssue=null,u=!1),await new Promise((f,h)=>{const m=()=>{clearTimeout(g),h(c.reason)},g=setTimeout(()=>{c.removeEventListener("abort",m),f()},jst);c.addEventListener("abort",m,{once:!0})})}}async function l(){r();const c=new AbortController;s=c;const u={signal:c.signal},d=Date.now();let f="accepted";hu("app:load:start"),e.loading=!0,An().clearPoolInserts();const h=!n.value;let m=!0;try{if(i.value="auth",o.value=0,h&&await a(c.signal)==="server-auth-required"){m=!1,f="auth-required";return}u.signal.throwIfAborted(),o.value=0;const g=tn();t.connectEventsIfNeeded?.(),i.value="server",Go().loadCatalogProviders(),Oc().refresh({signal:c.signal}),await Promise.all([g.getHealth().catch(()=>null),ws().refreshServerMeta(),t.modelProvider.loadModels()]),u.signal.throwIfAborted(),h||await nr().checkAuth(),u.signal.throwIfAborted(),i.value="config",await ws().loadConfig(),u.signal.throwIfAborted(),i.value="sessions";const y=An().fireFirstSessionGroupPage(u);u.signal=y.signal,await bn().loadWorkspaces(),u.signal.throwIfAborted();const v=await An().loadInitialSessionsByWorkspace(y);u.signal.throwIfAborted(),v!==void 0&&An().setSessionsPreservingLiveUsage(v.sessions);const k=An().takePendingLiveHydrateIds(),w=new Set,C=async B=>{k.includes(B)&&(await An().hydrateLiveSession(B,{...u,background:!1}),u.signal.throwIfAborted(),w.add(B))},x=!h&&v!==void 0&&e.flatSessionsSeeded,S=Et().activeSessionId;if(S!==void 0&&!Et().sessions.some(B=>B.id===S)){const B=await t.sessionSelection.fetchSessionIntoList(S,u);u.signal.throwIfAborted(),B==="not-found"&&Et().activeSessionId===S&&(t.setActiveSessionId(void 0),t.writeSessionUrl(void 0,"replace"))}const M=Et().activeSessionId;M!==void 0&&(await C(M),await t.refreshSessionStatus(M),u.signal.throwIfAborted()),i.value="session";const _=Et().sessions[0],T=bn().storedActiveWorkspaceId;!(T!==null&&bn().mergedWorkspaces.some(B=>B.id===T))&&_&&bn().selectWorkspace(bn().workspaceIdForSession(_)),t.bindSessionRoute();const L=typeof window<"u"&&VJ(o9());L&&(e.mainView="sessionAdmin");const P=typeof window<"u"?UJ(o9()):void 0;let N=!0;if(!Et().activeSessionId&&P!==void 0){const B=Et().sessions.some(W=>W.id===P)?"ok":await t.sessionSelection.fetchSessionIntoList(P,u);u.signal.throwIfAborted(),N=B==="not-found",B==="ok"&&!Et().activeSessionId&&(await C(P),!Et().activeSessionId&&!An().hasDeletedTombstone(P)&&(await t.sessionSelection.selectSession(P,{urlMode:"replace",skipTrack:!0}),u.signal.throwIfAborted()))}const U=Et().sessions[0];h&&!Et().activeSessionId&&N&&U!==void 0&&(await C(U.id),!Et().activeSessionId&&!An().hasDeletedTombstone(U.id)&&(await t.sessionSelection.selectSession(U.id,{urlMode:L?"none":"replace",skipTrack:!0}),u.signal.throwIfAborted())),t.resumeObservationReads?.();const F=An().backgroundReadOptions(u);v?.finishInBackground!==void 0&&v.finishInBackground(F);for(const B of k)w.has(B)||An().hydrateLiveSession(B,F).then(()=>{if(F.signal.aborted||An().hasDeletedTombstone(B)||An().hasArchiveTombstone(B))return;const W=Et().sessions.find(D=>D.id===B);(W?.mainTurnActive??W?.busy)&&!Wa().hasLoadedGoal(B)&&Wa().refillSessionGoalOnReload(B,F)});for(const B of Et().sessions)k.includes(B.id)&&!w.has(B.id)||(B.mainTurnActive??B.busy)&&!Wa().hasLoadedGoal(B.id)&&Wa().refillSessionGoalOnReload(B.id,F);for(const B of SJ())Et().sessions.some(W=>W.id===B)||t.sessionSelection.backfillPinnedSession(B,F).then(W=>{!F.signal.aborted&&W==="stale"&&t.unpinSessions([B])}).catch(()=>{});x&&(e.flatSessionsSeeded=!1,e.flatSessionsNextPageToken=null,e.flatSessionsHasMore=!0,Yo().setFlatSessionsFrontier(null),An().fetchFlatSessionsFirstPage(F).catch(B=>{F.signal.aborted||oi().pushOperationFailure("ensureFlatSessions",B)}))}catch(g){f=u.signal.aborted?"cancelled":"failed",u.signal.aborted||oi().pushOperationFailure("load",g)}finally{s===c&&!u.signal.aborted&&(e.loading=!1,m&&(n.value=!0)),hu("app:load:complete",{status:f,sessionId:Et().activeSessionId,sessionCount:Et().sessions.length,workspaceCount:bn().workspaces.length,durationMs:Date.now()-d})}}return{initialized:n,bootStage:i,bootRetries:o,load:l,cancel:r}}const qst=2e3;let NK,tm,Lk;function Vst(e){const t=tm;t===void 0||t.endedAt!==void 0||(t.count+=1,t.totalMs+=e,t.maxMs=Math.max(t.maxMs,e))}function Ust(){if(typeof PerformanceObserver>"u"||!PerformanceObserver.supportedEntryTypes.includes("longtask"))return!1;try{return new PerformanceObserver(e=>{for(const t of e.getEntries())Vst(t.duration)}).observe({type:"longtask"}),!0}catch{return!1}}function Kst(e){typeof requestAnimationFrame=="function"?requestAnimationFrame(e):setTimeout(e,0)}function tue(){Lk!==void 0&&(clearTimeout(Lk),Lk=void 0)}function nue(){tue();const e=tm;e!==void 0&&(tm=void 0,e.sessionId,e.count,Math.round(e.totalMs),Math.round(e.maxMs),Math.round((e.endedAt??performance.now())-e.t0),void 0)}function Zst(e){if(tm?.sessionId===e){tue(),tm.endedAt=void 0;return}nue(),NK??=Ust(),NK&&(tm={sessionId:e,t0:performance.now(),endedAt:void 0,count:0,totalMs:0,maxMs:0})}function Gst(){const e=tm;e===void 0||e.endedAt!==void 0||(e.endedAt=performance.now(),Lk=setTimeout(nue,qst))}function Qst(e){const t=performance.now();return({cached:n,baseline:i,isLoaded:o,retryBaseline:s,isCurrent:r})=>{const a=()=>{r()&&(Math.round(performance.now()-t),void 0)},l=c=>{c.then(()=>{if(!r())return;if(o()){Kst(a);return}const u=s();u!==void 0&&l(u)},()=>{})};l(i)}}const BK=40401;function Yst(e){let t=0,n=0;function i(a,l){const c=Er.options(a);e.taskPoller.loadTasksForSession(a,c),so().loadGitStatus(a,c),l?.skipStatus!==!0?e.refreshSessionStatus(a):e.markSessionStatusSettled(a),Wa().refreshSessionGoal(a,c),Kr().refreshSessionPlans(a,c),oi().refreshSessionWarnings(a,c),Object.prototype.hasOwnProperty.call(e.modelProvider.skillsBySession.value,a)||e.modelProvider.loadSkillsForSession(a,c)}async function o(a,l){if(l?.signal?.aborted)return"error";try{const c=await tn().getSession(a,l);return l?.signal?.aborted?"error":An().hasDeletedTombstone(a)||!c.archived&&An().hasArchiveTombstone(a)?"not-found":(e.noteSessionWatermark(c.id,c.lastSeq),Et().sessions.some(u=>u.id===c.id)||(An().notePoolInsert(c.id),e.appendSession(c)),"ok")}catch(c){return l?.signal?.aborted?"error":Ti(c)&&c.code===BK?"not-found":"error"}}async function s(a,l){try{const c=await tn().getSession(a,{...l,background:!0});return l?.signal?.aborted?"retry":c.archived||An().hasDeletedTombstone(a)||An().hasArchiveTombstone(a)?"stale":(Et().sessions.some(u=>u.id===c.id)||(An().notePoolInsert(c.id),e.appendSession(c)),"ok")}catch(c){return l?.signal?.aborted?"retry":Ti(c)&&c.code===BK?"stale":"retry"}}async function r(a,l){const c=l?.source??"sidebar",u=++t,d=l?.skipTrack===!0||Et().activeSessionId===a?void 0:Qst();if(!Et().sessions.some(g=>g.id===a)&&(await o(a)!=="ok"||u!==t))return;const f=e.hasLoadedMessages(a),h=Et().activeSessionId!==a,m=!f;try{m&&e.prefetchMainTranscript?.(a),(l?.urlMode??"push")==="push"&&e.setMainView("chat"),e.writeSessionUrl(a,l?.urlMode??"push");const g=++n;e.setSessionLoading(m),Er.activate(a),e.setActiveSessionId(a),!l?.skipTrack&&h&&void 0,Yo().unreadBySession[a]&&Yo().clearUnread(a),so().clearFileDiff();const y=Et().sessions.find(k=>k.id===a);if(y){const k=bn().workspaceIdForSession(y);bn().storedActiveWorkspaceId!==k&&bn().selectWorkspace(k)}e.subscribeSessionEvents(a),i(a,{skipStatus:l?.skipStatusRefresh===!0});const v=e.whenMainTranscriptBaseline?.(a)??Promise.resolve();if(m){const k=()=>{g===n&&Et().activeSessionId===a&&e.setSessionLoading(!1)};v.then(k,k)}d?.({cached:f,baseline:v,isLoaded:()=>e.hasLoadedMessages(a),retryBaseline:()=>e.whenMainTranscriptBaseline?.(a),isCurrent:()=>g===n&&Et().activeSessionId===a})}catch(g){oi().pushOperationFailure("selectSession",g,{sessionId:a})}finally{!m&&Et().activeSessionId===a&&e.setSessionLoading(!1)}}return{refreshSessionSidecars:i,fetchSessionIntoList:o,backfillPinnedSession:s,selectSession:r}}function Jst(e){let t=!1;async function n(a){if(t)return!1;const l=a??Et().activeSessionId;if(!l){const u=Un("commands.export.noSession");return hu("export:failed",{status:"no-session"}),oi().pushOperationFailure("exportSession",new Error(u),{message:u}),!1}t=!0;const c=Date.now();hu("export:start",{sessionId:l});try{const u=sPe(),{blob:d,fileName:f}=await tn().exportSession(l,u,{desktop:lv});if(typeof document>"u")throw new Error("Document is unavailable");const h=URL.createObjectURL(d);let m;try{m=document.createElement("a"),m.href=h,m.download=f,document.body.append(m),m.click()}finally{m?.remove(),setTimeout(()=>{try{URL.revokeObjectURL(h)}catch{}},0)}return hu("export:accepted",{sessionId:l,status:"accepted",zipBytes:d.size,durationMs:Date.now()-c}),!0}catch(u){const d=typeof u=="object"&&u!==null?u:void 0;return hu("export:failed",{sessionId:l,status:"failed",durationMs:Date.now()-c,errorName:typeof d?.name=="string"?d.name:typeof u,errorCode:typeof d?.code=="number"?d.code:void 0,requestId:typeof d?.requestId=="string"?d.requestId:void 0,phase:typeof d?.phase=="string"?d.phase:void 0,httpStatus:typeof d?.status=="number"?d.status:void 0}),oi().pushOperationFailure("exportSession",u,{sessionId:l,...Ti(u)&&u.code===kve?{message:Un("commands.export.tooLarge",{sessionId:l})}:{}}),!1}finally{t=!1}}function i(a,l){const c=Et().activeSessionId;if(!c)return;if(e.isCompactionRunning(c))return"compacting";const u=e.promptBacklog(c);if(u!=="clear"){const d=It();return d.hasQueuedCompact(c)?"duplicate":(d.enqueueCompactForSession(c,a),u==="lined-up"&&e.flushQueue(c),"queued")}return e7(c,()=>tn().compactSession(c,a)).catch(d=>{l?.onRequestRejected?.(d),!P2(d)&&oi().pushOperationFailure("compact",d,{sessionId:c})}),"sent"}async function o(a){const l=a??Et().activeSessionId;if(l)try{const c=await tn().forkSession(l);An().notePoolInsert(c.id),e.upsertSessionSorted(c);try{await aPe(l,c.id)}catch(u){oi().pushOperationFailure("fork",u,{sessionId:c.id,message:Un("browser.forkTabsFailed")})}await e.selectSession(c.id,{skipTrack:!0})}catch(c){oi().pushOperationFailure("fork",c,{sessionId:l})}}async function s(a=1){const l=Et().activeSessionId;if(!l)return null;const c=e.lastMainUserPromptText(l);try{T1().endSession(l),await e7(l,()=>tn().undoSession(l,a)),delete Ln().turnErrorBySession[l],delete Ln().turnRetryBySession[l];const u=Ln().sessionLastTurnReasonSeqBySession[l];return tn().getSession(l).then(d=>{Ln().sessionLastTurnReasonSeqBySession[l]===u&&e.updateSession(l,f=>({...f,lastTurnReason:d.lastTurnReason}))}).catch(()=>{}),await e.refreshMainTranscript(l).catch(()=>{}),{text:c}}catch(u){return P2(u)||Gce(u,"operation")||oi().pushOperationFailure("undo",u,{sessionId:l}),null}}async function r(a){const l=a??Et().activeSessionId;if(!l)return!1;const c=Et().sessions.find(u=>u.id===l);if(c?.archived===!0)return oi().pushOperationFailure("reloadSession",new Error(Un("commands.reload.archived")),{sessionId:l,message:Un("commands.reload.archived")}),!1;try{T1().endSession(l);const u=await tn().reloadSession(l),d={...u},f=c?.pullRequest;f!=null&&(u.pullRequest===void 0||u.pullRequest===null)&&(d.pullRequest=f);const h=c?.usage;return h!==void 0&&X6(u.usage)&&!X6(h)&&(d.usage=h),e.upsertSessionSorted(d),await e.refreshMainTranscript(l).catch(()=>{}),await Go().loadSkillsForSession(l).catch(()=>{}),oi().refreshSessionWarnings(l),oi().pushWarning({severity:"success",title:Un("header.sessionReloaded")}),!0}catch(u){const d=Ti(u)&&u.code===wve;return oi().pushOperationFailure("reloadSession",u,{sessionId:l,...d?{message:Un("commands.reload.busy")}:{}}),!1}}return{exportSession:n,compact:i,forkSession:o,undo:s,reloadSession:r}}const O_=3,Xst=1e3,ert=40402;function trt(e,t){const{sideChat:n,modelProvider:i,activity:o,nextOptimisticMsgId:s,mainTranscriptTailTurnId:r,mainTranscriptTailPromptCreatedAt:a,refreshSessionStatus:l,persistSessionProfile:c,settleIfFateProven:u,mapSendAuthFailure:d,getEventConn:f,isTranscriptBusy:h,isMainWaitForWaiting:m,selectSession:g,upsertSessionSorted:y}=t,v=TO({pushOperationFailure:oi().pushOperationFailure,mapSendAuthFailure:d}),k=new Map;function w(ne){const ce=Et().activeSessionId;return{text:ne.text,snapshot:ne.snapshot===void 0?void 0:structuredClone(ne.snapshot),attachments:[...ne.attachments??[]],skills:[...ne.skills??[]],permissionMode:ce===void 0?Cn().forDraftPrompt():Cn().forPrompt(ce)}}function C(ne){return{text:ne.text,snapshot:ne.snapshot===void 0?void 0:Hi(ne.snapshot),attachments:ne.attachments??[],skills:ne.skills??[],permissionMode:ne.permissionMode}}async function x(ne){const ce=bn().mergedWorkspaces.find(sn=>sn.id===ne);if(!ce)return null;cPe("sidebar");const be=Gt().thinking,xe=Gt().draftThinkingExplicit,de=Cn().forDraftPrompt(),$e=tn();let Ye,rt=ce.root;try{const sn=await $e.addWorkspace({root:ce.root});Ye=sn.id,rt=sn.root,bn().upsertWorkspacePreserveOrder(sn)}catch{}const Pt=Go().draftModel??void 0,$t=await $e.createSession({workspaceId:Ye,cwd:rt,model:Pt});Go().setDraftModel(null);const jt=Pt!==void 0&&(!$t.model||$t.model.length===0)?{...$t,model:Pt}:$t;An().notePoolInsert(jt.id),y(jt);const Kt=$t.id;return be!==void 0&&xe&&(Gt().thinkingBySession={...Gt().thinkingBySession,[Kt]:be},O8(e,Kt)),Ist({workspaceId:ne,sessionId:Kt}),Gt().draftThinkingExplicit=!1,bn().selectWorkspace($t.workspaceId??Ye??ne),await g($t.id,{skipTrack:!0,skipStatusRefresh:!0}),Cn().materializeDraft(Kt,{mode:de}),Gt().draftModes.planMode&&(Gt().planArmedBySession={...Gt().planArmedBySession,[Kt]:!0},Gt().savePlanModeToStorage()),Gt().draftModes.swarmMode&&(Gt().swarmModeBySession={...Gt().swarmModeBySession,[Kt]:!0},Gt().saveSwarmModeToStorage()),Gt().draftModes.towerMode&&(Gt().towerModeBySession={...Gt().towerModeBySession,[Kt]:!0},Gt().saveTowerModeToStorage(),wT({pendingTowerBySession:Gt().pendingTowerBySession},Kt),await c({towerMode:!0,towerBase:Gt().draftModes.towerBase},Kt)),Gt().draftModes.goalMode&&(Gt().goalModeBySession={...Gt().goalModeBySession,[Kt]:!0},Gt().saveGoalModeToStorage()),Gt().draftModes.planMode=!1,Gt().draftModes.swarmMode=!1,Gt().draftModes.towerMode=!1,Gt().draftModes.towerBase=void 0,Gt().draftModes.goalMode=!1,Kt}async function S(ne,ce){if(!It().tryBeginStartingFirstPrompt(ne))return{sessionId:null,promptRejected:!1,concurrent:!0};let be=null;try{const xe=await x(ne);if(!xe)return{sessionId:null,promptRejected:!1};be=xe;const de=await N(xe,ce);return{sessionId:xe,promptRejected:de==="rejected"||de==="uncertain"}}catch(xe){return oi().pushOperationFailure("startSessionAndSendPrompt",xe),{sessionId:be,promptRejected:!1}}finally{It().endStartingFirstPrompt(ne)}}async function M(ne,ce,be,xe,de){if(!It().tryBeginStartingFirstPrompt(ne))return{sessionId:null,activated:!1};const $e=de===void 0?void 0:structuredClone(de);let Ye=null;try{const rt=await x(ne);if(!rt)return{sessionId:null,activated:!1};Ye=rt;const Pt=Gt().planArmedBySession[rt]??!1,$t=Gt().swarmModeBySession[rt]??!1,jt=Gt().towerModeBySession?.[rt]??!1,Kt=Et().sessions.find(Ke=>Ke.id===rt),sn=Go().resolveSendModel(Kt?.model)??void 0,Jt=await i.resolveThinkingForPrompt(rt,sn)??Gt().thinking;if(!await c({model:sn,planMode:Pt,swarmMode:$t,towerMode:jt,permissionMode:Cn().forPrompt(rt),thinking:Jt},rt))return{sessionId:rt,activated:!1};Pt&&(Gt().planArmedBySession={...Gt().planArmedBySession,[rt]:!1},Gt().savePlanModeToStorage(),Gt().planModeBySession={...Gt().planModeBySession,[rt]:!0});const Le=await i.activateSkill(ce,be,xe,rt,{skipThinkingPersist:!0,snapshot:$e});return{sessionId:rt,activated:Le}}catch(rt){return oi().pushOperationFailure("startSessionAndActivateSkill",rt),{sessionId:Ye,activated:!1}}finally{It().endStartingFirstPrompt(ne)}}async function _(ne,ce){if(ce!==void 0&&typeof ce!="string"&&(ce=structuredClone(ce)),!It().tryBeginStartingFirstPrompt(ne))return null;let be=null;try{const xe=await x(ne);if(!xe)return null;be=xe;const de=Cn().forPrompt(xe);de!==void 0&&c({permissionMode:de},xe);const $e=await n.openSideChatOn(xe,ce,{permissionMode:Cn().forPrompt(xe)});return $e.target&&!$e.sent&&typeof ce=="string"&&ce&&v3.set($e.target.agentId,ce),{sessionId:xe,target:$e.target,sent:$e.sent}}catch(xe){return oi().pushOperationFailure("startSessionAndOpenSideChat",xe),be?{sessionId:be,target:null,sent:!1}:null}finally{It().endStartingFirstPrompt(ne)}}function T(ne,ce,be,xe,de){return{id:ce,sessionId:ne,role:"user",content:be,createdAt:new Date().toISOString(),metadata:{"kimiWeb.optimisticUserMessage":!0,"kimiWeb.anchorTurnId":r?.(ne),"kimiWeb.anchorPromptCreatedAt":a?.(ne),...de,...xe.length>0?{origin:{kind:"user",skillActivations:xe.map(($e,Ye)=>({activationId:`optimistic-${Ye}-${$e.name}`,skillName:$e.name,skillArgs:$e.args}))}}:{}}}}function E(ne,ce,be,xe){It().inFlightBySession[ne]===!0&&It().localTurnStartState(ne).generation===xe&&(It().stampPromptIds(ne,be),It().stampOptimisticPromptId(ne,ce,be),f()?.bindNextPromptId(ne,be))}function L(ne,ce,be,xe,de,$e,Ye){It().setInFlight(ne,!1);const rt=!xe||Ti(be);return rt&&de!==!1&&Cn().retireSubmissionMarker(ne,de.id),rt?It().removeOptimisticMessage(ne,ce):It().markOptimisticUncertain(ne,ce),uu(e,ne,$e)&&l(ne),Ye&&v("sendPrompt",be,ne),rt?"rejected":"uncertain"}function P(ne,ce){ce!==!1&&(Cn().retireSubmissionMarker(ne,ce.id),Cn().settleSubmittedMode(ne,ce.id,{reachedDaemon:!1}))}async function N(ne,ce,be){let xe;const de={promise:new Promise(Le=>{xe=Le}),resolve:()=>xe()};k.set(ne,de);const{text:$e,skills:Ye,permissionMode:rt}=ce,Pt=It().beginLocalTurn(ne),$t=Cn().sessionTeardownGenFor(ne);Cn().noteSubmitPrepStart(ne),It().setInFlight(ne,!0);const jt=s();let Kt=Gt().pendingThinkingBySession[ne],sn=!1,Jt=!1,Oe=null;try{const Le=tn(),Ke=cw(ce);if(Ke.length===0)return It().setInFlight(ne,!1),"rejected";It().addOptimisticMessage(ne,T(ne,jt,Ke,Ye,{...ce.snapshot===void 0?{}:{"kimiWeb.composerSnapshot":ce.snapshot}}));const Ee=Et().sessions.find(wt=>wt.id===ne),Ie=Go().resolveSendModel(Ee?.model)??void 0,Ve=Gt().planArmedBySession[ne]??!1,pt=Ve||(Gt().planModeBySession[ne]??!1),Lt=Gt().swarmModeBySession[ne]??!1,Te=Gt().goalModeBySession[ne]??!1;if((Gt().pendingSwarmBySession?.[ne]!==void 0||Gt().pendingTowerBySession?.[ne]!==void 0||Gt().pendingPlanBySession?.[ne]!==void 0)&&!await t.whenSessionProfileSettled(ne))return It().setInFlight(ne,!1),It().removeOptimisticMessage(ne,jt),"rejected";Ve&&(Gt().planArmedBySession={...Gt().planArmedBySession,[ne]:!1},Gt().savePlanModeToStorage(),(Gt().planModeBySession[ne]??!1)||(await Le.updateSession(ne,{planMode:!0,towerMode:!1}),Gt().planModeBySession={...Gt().planModeBySession,[ne]:!0},Gt().towerModeBySession={...Gt().towerModeBySession,[ne]:!1},Gt().saveTowerModeToStorage())),Te&&$e&&(await Le.updateSession(ne,{goalObjective:$e.trim(),planMode:!1}),Gt().planModeBySession={...Gt().planModeBySession,[ne]:!1},Gt().goalModeBySession={...Gt().goalModeBySession,[ne]:!1},Gt().saveGoalModeToStorage());const ge=await i.resolveThinkingForPrompt(ne,Ie)??Gt().thinking;Kt=Gt().pendingThinkingBySession[ne];const je={content:Ke,metadata:lw(ce),model:Ie,thinking:ge,permissionMode:rt,planMode:pt&&!(Te&&$e),swarmMode:Lt,skills:Ye.length>0?Ye:void 0},He=async()=>{if(Cn().sessionTeardownGenFor(ne)!==$t)return null;sn=!0,Jt=Cn().noteSubmittedMode(ne,rt,jt);const wt=Cn().explicitSeqFor(ne);return{result:await Le.submitPrompt(ne,je),permissionSeqAtSubmit:wt}},Ct=be?.recoverConflicts===!0?await e7(ne,He,()=>{P(ne,Jt),Jt=!1}):await He();if(Ct===null)return It().setInFlight(ne,!1),"rejected";const{result:gt,permissionSeqAtSubmit:St}=Ct;return ge!==void 0&&uu(e,ne,Kt),rt!==void 0&&Cn().explicit[ne]===rt&&St!==void 0&&Cn().ackExplicit(ne,St),E(ne,jt,gt.promptId,Pt),be?.nonComposerSource===!0&&It().noteNonComposerPromptId(ne,gt.promptId),Oe="ok",Oe}catch(Le){const Ke=be?.recoverConflicts===!0&&P2(Le);return Oe=L(ne,jt,Le,sn,Jt,Kt,!Ke),Oe}finally{de.resolve(),k.get(ne)===de&&k.delete(ne),It().settleLocalTurn(ne,Pt),Jt!==!1&&(Oe==="ok"||Oe==="rejected"?Cn().settleSubmittedMode(ne,Jt.id,{reachedDaemon:Oe==="ok"}):Cn().markSubmittedUncertain(ne,Jt.id)),Oe==="ok"&&u?.(ne),Cn().noteSubmitPrepEnd(ne)}}function U(ne){return o.value!=="idle"||It().inFlightBySession[ne]?"busy":It().isCompactFlushHeld(ne)||It().isCompactionActive(ne)||(It().queuedBySession[ne]?.length??0)>0||It().isSteerInFlight(ne)?"lined-up":"clear"}function F(ne){const ce=ne??Et().activeSessionId;return ce!==void 0&&U(ce)!=="clear"}function B(ne){return(Gt().towerModeBySession?.[ne]??!1)||D(ne)}function W(ne){return Gt().pendingSwarmBySession?.[ne]!==void 0||Gt().pendingTowerBySession?.[ne]!==void 0||Gt().pendingPlanBySession?.[ne]!==void 0}function D(ne){return(m?.(ne)??!1)&&!k.has(ne)&&!(Gt().planArmedBySession[ne]??!1)&&!(Gt().goalModeBySession[ne]??!1)}function z(ne){const ce=ne??Et().activeSessionId;return ce===void 0?!1:U(ce)==="clear"?D(ce):B(ce)}async function $(ne,ce,be){const xe=Et().activeSessionId;if(!xe)return"rejected";const de=U(xe);if(de!=="clear"||D(xe)){if(B(xe)){const $e=W(xe)?t.whenSessionProfileSettled(xe):void 0,Ye=await uy(xe,async()=>($e!==void 0||W(xe))&&(!(($e===void 0||await $e)&&(!W(xe)||await t.whenSessionProfileSettled(xe)))||Et().activeSessionId!==xe)?"rejected":B(xe)?J(xe,ne,ce):"requeue");return Ye==="requeue"?(It().enqueueForSession(xe,ne,ce),G(xe),"queued"):Ye==="noop"?"rejected":Ye}return Me(ne,ce),de==="lined-up"&&fe(xe),"queued"}return N(xe,ne,be)}async function j(ne,ce){const{skills:be,permissionMode:xe}=ce;It().noteSteerStart(ne);try{if(!(Ln().turnActiveBySession[ne]??!1)&&!It().inFlightBySession[ne]&&m?.(ne)!==!0)return await N(ne,ce);const de=cw(ce),$e=s(),Ye=T(ne,$e,de,be,{"kimiWeb.steered":!0,...ce.snapshot===void 0?{}:{"kimiWeb.composerSnapshot":ce.snapshot}});It().addOptimisticMessage(ne,Ye);const rt=It().beginLocalTurn(ne),Pt=Cn().sessionTeardownGenFor(ne);Cn().noteSubmitPrepStart(ne);let $t=!1,jt=null,Kt=!1;try{const sn=tn(),Jt=Et().sessions.find(Ve=>Ve.id===ne),Oe=Go().resolveSendModel(Jt?.model)??void 0,Le=await i.resolveThinkingForPrompt(ne,Oe)??Gt().thinking;if(Cn().sessionTeardownGenFor(ne)!==Pt)return jt="rejected",jt;const Ke=Gt().pendingThinkingBySession[ne];$t=!0,Kt=Cn().noteSubmittedMode(ne,xe,$e);const Ee=Cn().explicitSeqFor(ne),Ie=await sn.submitPrompt(ne,{content:de,metadata:lw(ce),model:Oe,thinking:Le,permissionMode:xe,planMode:Gt().planModeBySession[ne]??!1,swarmMode:Gt().swarmModeBySession[ne]??!1,skills:be.length>0?be:void 0});if(Kt!==!1&&Cn().settleSubmittedMode(ne,Kt.id),Le!==void 0&&uu(e,ne,Ke),xe!==void 0&&Cn().explicit[ne]===xe&&Ee!==void 0&&Cn().ackExplicit(ne,Ee),It().stampOptimisticPromptId(ne,$e,Ie.promptId),Ie.status!=="queued")return It().noteNonComposerPromptId(ne,Ie.promptId),It().patchOptimisticMessage(ne,$e,{"kimiWeb.promptId":Ie.promptId,"kimiWeb.steered":void 0}),It().stampPromptIds(ne,Ie.promptId),f()?.bindNextPromptId(ne,Ie.promptId),jt="ok",jt;It().noteNonComposerPromptId(ne,Ie.promptId);try{const Ve=await sn.steerPrompts(ne,[Ie.promptId]);(Ve.steered!==!0||!Ve.promptIds.includes(Ie.promptId))&&It().patchOptimisticMessage(ne,$e,{"kimiWeb.steered":void 0})}catch(Ve){if(Ti(Ve)&&Ve.code===40402)It().patchOptimisticMessage(ne,$e,{"kimiWeb.steered":void 0});else if(It().markOptimisticUncertain(ne,$e),!Ti(Ve))throw Ve}return jt="ok",jt}catch(sn){return Ti(sn)||!$t?(Kt!==!1&&Cn().retireSubmissionMarker(ne,Kt.id),It().removeOptimisticMessage(ne,$e)):It().markOptimisticUncertain(ne,$e),v("steer",sn,ne),jt=Ti(sn)||!$t?"rejected":"uncertain",jt}finally{It().settleLocalTurn(ne,rt),Kt!==!1&&(jt==="ok"||jt==="rejected"?Cn().settleSubmittedMode(ne,Kt.id,{reachedDaemon:jt==="ok"}):Cn().markSubmittedUncertain(ne,Kt.id)),Cn().noteSubmitPrepEnd(ne)}}finally{It().noteSteerSettled(ne)}}function G(ne){It().isSteerInFlight(ne)||It().inFlightBySession[ne]||(Ln().turnActiveBySession[ne]??!1)!==!0&&fe(ne)}async function K(ne,ce){const be=Et().activeSessionId;return be?uy(be,()=>J(be,ne,ce)):"noop"}async function te(ne){const ce=Et().activeSessionId;if(!ce)return"noop";const be=uy(ce,async()=>(await k.get(ce)?.promise,await j(ce,ne))),xe=await be;return xe!=="ok"&&hFe(ce,be)&&G(ce),xe}async function J(ne,ce,be){const xe=It().queuedBySession[ne]??[],de=xe.findIndex(ge=>ge.kind==="compact"),$e=de>=0?xe.slice(0,de):xe;let Ye=!1;de>=0&&ce!==void 0&&(It().enqueueForSession(ne,ce,be),Ye=!0);const rt=de>=0?void 0:ce,Pt=rDe([...$e.map(C),...rt===void 0?[]:[rt]]),$t=rt===void 0?void 0:Pt.prompts.at(-1),jt=[],Kt=[];let sn=0,Jt=0;for(const ge of Pt.prompts.slice(0,$e.length)){const je=ge.text.trim();je&&jt.push(Qz(je,sn,Jt)),ge.attachments?.length&&(Kt.push(...ge.attachments),sn+=ge.attachments.filter(He=>He.kind==="file").length,Jt+=ge.attachments.filter(He=>He.kind==="image"||He.kind==="video").length)}const Oe=$t?.text.trim()??"";if(Oe&&jt.push(Qz(Oe,sn,Jt)),$t!==void 0&&$t.attachments.length>0&&Kt.push(...$t.attachments),jt.length===0&&Kt.length===0)return Ye?"queued":"noop";if($e.length>0){const ge=It().queuedBySession[ne]??[];It().setQueuedEntries(ne,de>=0?ge.slice(de):[])}const Le=jt.join(` + +`),Ke=[],Ee=new Set,Ie=ge=>{for(const je of ge)Ee.has(je.name)||(Ee.add(je.name),Ke.push({...je}))};for(const ge of $e)Ie(ge.skills??[]);Ie(rt?.skills??[]);const Ve=()=>{if($e.length===0)return;const ge=It().queuedBySession[ne]??[];It().setQueuedEntries(ne,[...$e,...ge])},pt=[...rt===void 0?[]:[rt.permissionMode],...$e.map(ge=>ge.permissionMode)],Lt=pt.some(ge=>ge!==void 0)?m4e(pt.map(ge=>ge??"manual")):void 0,Te=await j(ne,{text:Le,snapshot:Pt.snapshot,attachments:Kt,permissionMode:Lt,skills:Ke});return Te==="rejected"&&Ve(),Te!=="ok"&&G(ne),Ye?"queued":Te}async function q(ne){if((It().queuedBySession[ne]?.length??0)===0)return"noop";const ce=W(ne)?t.whenSessionProfileSettled(ne):void 0;return uy(ne,async()=>{if(ce!==void 0&&!await ce||W(ne)&&!await t.whenSessionProfileSettled(ne))return"rejected";if(!D(ne))return"noop";try{return await J(ne,void 0)}catch(be){return oi().pushOperationFailure("steerQueueIntoWait",be,{sessionId:ne}),"rejected"}})}async function Y(ne){const ce=Et().activeSessionId;if(!ce)return"rejected";const be=(It().queuedBySession[ce]??[])[ne];if(be===void 0)return"rejected";const xe=be.id??be.text;return uy(ce,()=>ae(ce,xe))}async function ae(ne,ce){const be=It().queuedBySession[ne]??[],xe=be.findIndex(rt=>(rt.id??rt.text)===ce),de=xe>=0?be[xe]:void 0;if(de===void 0||de.kind==="compact")return"rejected";const $e=de.attachments??[];if(de.text.trim().length===0&&$e.length===0)return"rejected";It().removeQueuedAt(ne,xe);const Ye=await j(ne,C(de));return Ye==="rejected"&&Et().sessions.some(rt=>rt.id===ne)&&It().restoreQueueEntry(ne,de,xe),Ye!=="ok"&&G(ne),Ye}async function pe(ne,ce,be,xe){try{const $e=await tn().uploadFile({file:ne,name:ce,onProgress:be,signal:xe});return{fileId:$e.id,name:$e.name,mediaType:$e.mediaType}}catch(de){return de instanceof DOMException&&de.name==="AbortError"||oi().pushOperationFailure("uploadImage",de),null}}function Me(ne,ce){const be=Et().activeSessionId;be&&It().enqueueForSession(be,ne,ce)}function fe(ne){if(It().isSteerInFlight(ne)||It().isCompactFlushHeld(ne))return;const ce=(It().queuedBySession[ne]??[])[0];if(ce===void 0)return;if(ce.kind==="compact"){Q(ne,ce);return}const be=ce.id??ce.text,xe=It().queueFlushFailureFor(ne);xe?.key===be&&xe.count>=O_||(It().dropQueueHead(ne),N(ne,C(ce),{nonComposerSource:!0}).then(de=>{if(de==="ok"){It().clearQueueFlushFailure(ne);return}if(de==="uncertain"){It().clearQueueFlushFailure(ne);return}if(!Et().sessions.some(rt=>rt.id===ne)){It().clearQueueFlushFailure(ne);return}const $e=It().queueFlushFailureFor(ne),Ye=$e!==void 0&&$e.key===be?$e.count+1:1;It().noteQueueFlushFailure(ne,be,Ye),It().restoreQueueEntry(ne,ce)}))}function se(ne){setTimeout(()=>{if(U(ne)==="busy"||e.compactionBySession[ne]!==void 0||It().isCompactFlushHeld(ne)||It().isCompactionActive(ne)){se(ne);return}fe(ne)},Xst)}function Q(ne,ce){if(It().isCompactFlushHeld(ne)||It().isCompactionActive(ne)||e.compactionBySession[ne]!==void 0){se(ne);return}const be=e.autoCompactionCompletedAtBySession[ne],xe=e.autoCompactionObservedAtBySession[ne];if(ce.enqueuedAt!==void 0&&xe!==void 0&&xe>=ce.enqueuedAt&&be!==void 0&&be>=ce.enqueuedAt-3e5){It().dropQueueHead(ne),oi().pushWarning({severity:"info",title:Un("commands.compactQueue.skippedAuto")}),fe(ne);return}It().dropQueueHead(ne),It().holdCompactFlush(ne),tn().compactSession(ne,ce.instruction).then(()=>{},de=>{if(!It().releaseCompactFlush(ne))return;const $e=(ce.compactRetries??0)+1;if($e>=O_){Oc().noteCompactionSettled(ne,"request-failed"),oi().pushOperationFailure("compact",de,{sessionId:ne}),fe(ne);return}It().restoreQueueEntry(ne,{...ce,compactRetries:$e}),se(ne)})}function ee(ne){It().releaseCompactFlush(ne)&&fe(ne)}function he(ne,ce,be){if(ce===void 0)return;const xe=ce.id??ce.text,de=be===void 0?void 0:be.id??be.text;if(xe===de)return;const $e=It().queueFlushFailureFor(ne);$e?.key!==xe||$e.countrt.id===ne);let be=It().abortPromptIdBySession[ne];if(be===void 0){const rt=ce?.currentPromptId;rt!==void 0&&rt.length>0&&!rt.startsWith("pr_")&&(be=rt)}const xe=tn();let de=!1;const $e=()=>{It().setInFlight(ne,!1),Ln().turnActiveBySession={...Ln().turnActiveBySession,[ne]:!1}};if(be!==void 0)try{if((await xe.abortPrompt(ne,be)).aborted)return!0;de=!0,It().clearPromptIds(ne),$e()}catch(rt){if(Ti(rt)&&rt.code===ert)de=!0,It().clearPromptIds(ne),$e();else return oi().pushOperationFailure("abortCurrentPrompt",rt,{sessionId:ne}),!1}if(de||!((It().inFlightBySession[ne]??!1)||(Ln().turnActiveBySession[ne]??!1)||(ce?.mainTurnActive??!1)||h?.(ne)===!0))return!1;try{return(await xe.abortSession(ne)).aborted===!0}catch(rt){return oi().pushOperationFailure("abortCurrentPrompt",rt,{sessionId:ne}),!1}}function le(ne){const ce=Et().activeSessionId;if(!ce)return;const be=It().removeQueuedAt(ce,ne);be!==null&&he(ce,be.previousHead,be.nextHead)}function ke(ne,ce){const be=Et().activeSessionId;if(!be)return;const xe=It().moveQueued(be,ne,ce);xe!==null&&he(be,xe.previousHead,xe.nextHead)}return{createPromptEnvelope:w,createDraftSession:x,startSessionAndSendPrompt:S,startSessionAndActivateSkill:M,startSessionAndOpenSideChat:_,buildOptimisticUserMessage:T,landSubmitResponse:E,classifySubmitFailure:L,submitPromptInternal:N,promptBacklog:U,wouldEnqueuePrompt:F,wouldSteerPrompt:z,steerQueueIntoWait:q,sendPrompt:$,runSteerIntoTurn:j,resumeQueueIfIdle:G,steerPrompt:K,steerPromptDirect:te,steerPromptNow:J,steerQueued:Y,steerQueuedNow:ae,uploadImage:pe,enqueue:Me,flushQueueHead:fe,resumeAfterCompaction:ee,resumeAfterExhaustedHeadChanged:he,finishPromptLocal:Re,abortCurrentPrompt:Pe,unqueue:le,reorderQueue:ke}}const nrt=lr("kimi.debug",()=>{const e=Z(!1);async function t(){const n=window.kimiDesktop;if(typeof n?.getDebugFlags=="function")try{const i=await n.getDebugFlags();e.value=i.enabled===!0}catch{}}return{enabled:e,load:t}});function irt(){return nrt(Hs)}const ort=40904,srt=40406;function zK(e){return Ti(e)&&e.code===ort}function rrt(e){return Ti(e)&&e.code===srt}let f0=null;function art(e){f0=e}const lrt=lr("kimi.tasks",()=>{const e=Z({}),t=Z({}),n=Z({});function i(u){Ec(e.value,u)}function o(u,d){return u.parentToolCallId===d&&u.status==="running"&&u.runInBackground!==!0}function s(u,d){return(e.value[u]??[]).find(f=>o(f,d))}async function r(u){const d=Et().activeSessionId;if(d&&!t.value[u]){t.value[u]=!0;try{const f=tn(),h=(e.value[d]??[]).find(g=>g.id===u)?.backgroundTaskId??f0?.resolveTaskRestId?.(d,u);await f.cancelTask(d,h??u);const m=e.value[d]??[];e.value={...e.value,[d]:m.map(g=>(h!==void 0?g.backgroundTaskId===h||g.id===h:g.id===u||g.backgroundTaskId===u)?{...g,status:"cancelled",completedAt:g.completedAt??new Date().toISOString(),completedAtEstimated:g.completedAt===void 0?!0:g.completedAtEstimated}:g)}}catch(f){zK(f)||f0?.pushOperationFailure("cancelTask",f,{sessionId:d})}finally{delete t.value[u]}}}async function a(u){const d=Et().activeSessionId;if(d&&!n.value[u]){n.value[u]=!0;try{const f=tn();let h=s(d,u),m;if(h===void 0){let k;try{k=await f.listTasks(d,void 0,{background:!1})}catch(w){f0?.pushOperationFailure("detachTask",w,{sessionId:d});return}h=k.find(w=>o(w,u)),m=h?.id}if(h===void 0)return;const g=h;m??=g.backgroundTaskId??f0?.resolveTaskRestId?.(d,g.id)??g.id;const y=await f.detachTask(d,m),v=e.value[d]??[];e.value={...e.value,[d]:v.map(k=>k.id!==g.id||(k.backgroundTaskId??f0?.resolveTaskRestId?.(d,k.id)??k.id)!==m?k:y.status==="running"?{...k,runInBackground:!0}:{...k,status:y.status,completedAt:k.completedAt??new Date().toISOString(),completedAtEstimated:k.completedAt===void 0?!0:k.completedAtEstimated})}}catch(f){!rrt(f)&&!zK(f)&&f0?.pushOperationFailure("detachTask",f,{sessionId:d})}finally{delete n.value[u]}}}function l(u){delete e.value[u]}function c(){e.value={},t.value={},n.value={}}return{tasksBySession:e,pendingTaskCancellations:t,pendingTaskDetachments:n,applyTasksDiff:i,isDetachableRow:o,findDetachableTask:s,cancelTask:r,detachTask:a,forgetSessionTasks:l,resetTasks:c}});function t7(){return lrt(Hs)}const y8=Lm(),n7=xn.onboarded;Do(xn.codeFont);Do(xn.accent);Do(xn.theme);Do(xn.notifyOnComplete);Do(xn.notifyOnQuestion);Do(xn.notifyOnApproval);Do(xn.soundOnComplete);const Ze=Qo({...HRe(),get sessions(){return Et().sessions},set sessions(e){Et().setSessions(e)},get activeSessionId(){return Et().activeSessionId},set activeSessionId(e){Et().setActiveSessionId(e)},get approvalsBySession(){return er().approvalsBySession},get planReviewByToolCallId(){return Kr().planReviewByToolCallId},get goalBySession(){return Wa().goalBySession},get goalVersionBySession(){return Wa().goalVersionBySession},get tasksBySession(){return t7().tasksBySession},get questionsBySession(){return er().questionsBySession},get gitStatusBySession(){return so().gitStatusBySession},get warnings(){return oi().warnings},set warnings(e){oi().setWarnings(e)},sessionStatusSettledBySession:{},get serverVersion(){return ws().serverVersion},get webTitle(){return ws().webTitle},get dangerousBypassAuth(){return ws().dangerousBypassAuth},set dangerousBypassAuth(e){ws().dangerousBypassAuth=e},get backend(){return ws().backend},get experimentalFlags(){return ws().experimentalFlags},workspaceName:"kimi-code",get thinking(){return Gt().thinking},set thinking(e){Gt().thinking=e},get draftThinkingExplicit(){return Gt().draftThinkingExplicit},set draftThinkingExplicit(e){Gt().draftThinkingExplicit=e},get thinkingBySession(){return Gt().thinkingBySession},set thinkingBySession(e){Gt().thinkingBySession=e},get pendingThinkingBySession(){return Gt().pendingThinkingBySession},set pendingThinkingBySession(e){Gt().pendingThinkingBySession=e},get planModeBySession(){return Gt().planModeBySession},set planModeBySession(e){Gt().planModeBySession=e},get planArmedBySession(){return Gt().planArmedBySession},set planArmedBySession(e){Gt().planArmedBySession=e},get pendingPlanBySession(){return Gt().pendingPlanBySession},set pendingPlanBySession(e){Gt().pendingPlanBySession=e},get swarmModeBySession(){return Gt().swarmModeBySession},set swarmModeBySession(e){Gt().swarmModeBySession=e},get pendingSwarmBySession(){return Gt().pendingSwarmBySession},set pendingSwarmBySession(e){Gt().pendingSwarmBySession=e},get towerModeBySession(){return Gt().towerModeBySession},set towerModeBySession(e){Gt().towerModeBySession=e},get pendingTowerBySession(){return Gt().pendingTowerBySession},set pendingTowerBySession(e){Gt().pendingTowerBySession=e},get goalModeBySession(){return Gt().goalModeBySession},set goalModeBySession(e){Gt().goalModeBySession=e},loading:!1,sessionLoading:!1,get availableOpenInApps(){return ws().availableOpenInApps},get config(){return ws().config},set config(e){ws().config=e},sideChatMessagesByAgent:{},sideChatUserMessageIdsBySession:{},sideChatSendingByAgent:{},sideChatTurnErrorByAgent:{},get sessionsFullyLoaded(){return An().sessionsFullyLoaded},set sessionsFullyLoaded(e){An().sessionsFullyLoaded=e},get flatSessionsNextPageToken(){return An().flatSessionsNextPageToken},set flatSessionsNextPageToken(e){An().flatSessionsNextPageToken=e},get flatSessionsHasMore(){return An().flatSessionsHasMore},set flatSessionsHasMore(e){An().flatSessionsHasMore=e},get flatSessionsLoading(){return An().flatSessionsLoading},set flatSessionsLoading(e){An().flatSessionsLoading=e},get flatSessionsLoadingMore(){return An().flatSessionsLoadingMore},set flatSessionsLoadingMore(e){An().flatSessionsLoadingMore=e},get flatSessionsSeeded(){return An().flatSessionsSeeded},set flatSessionsSeeded(e){An().flatSessionsSeeded=e},get doneSessions(){return An().doneSessions},set doneSessions(e){An().doneSessions=e},get doneSessionsNextPageToken(){return An().doneSessionsNextPageToken},set doneSessionsNextPageToken(e){An().doneSessionsNextPageToken=e},get doneSessionsHasMore(){return An().doneSessionsHasMore},set doneSessionsHasMore(e){An().doneSessionsHasMore=e},get doneSessionsLoading(){return An().doneSessionsLoading},set doneSessionsLoading(e){An().doneSessionsLoading=e},get doneSessionsLoadingMore(){return An().doneSessionsLoadingMore},set doneSessionsLoadingMore(e){An().doneSessionsLoadingMore=e},get doneSessionsSeeded(){return An().doneSessionsSeeded},set doneSessionsSeeded(e){An().doneSessionsSeeded=e},mainView:"chat"});function iue(e){Ze.sessions=e}function vb(e,t){Ze.sessions=Ze.sessions.map(n=>n.id===e?t(n):n)}function oue(e){Ze.sessions=WJ(Ze.sessions,e)}function crt(e){Ze.sessions=[...Ze.sessions,e]}function urt(e){Ze.sessions=Ze.sessions.filter(t=>t.id!==e)}function sue(){const e=Ze.activeSessionId;e&&Yo().unreadBySession[e]&&typeof document<"u"&&document.visibilityState==="visible"&&Yo().clearUnread(e)}typeof window<"u"&&window.addEventListener("storage",e=>{e.key===xn.unread&&(Yo().reloadUnread(),sue())});function YE(){const e=ef();e!==null&&e.health().stale&&(hu("ws:stale-reconnect",{sessionId:Ze.activeSessionId,status:"stale"}),oPe("ws: stale socket on focus, reconnecting",{activeSessionId:Ze.activeSessionId}),e.reconnect()),Vi.recoverIfStale()}typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&(sue(),YE())});typeof window<"u"&&(window.addEventListener("focus",YE),window.addEventListener("online",YE));function bm(e){Er.activate(e),Tst(e),e===void 0&&Cn().enterDraft(),Ze.activeSessionId=e}function HK(e){Er.forget(e),ai.clear(e),Bi().forgetSession(e),Vd.forgetSession(e),Vi.forgetSession(e),Wi.clearSideChatForSession(e),kb.discard(({meta:t})=>t.sessionId===e),urt(e),Kr().forgetSessionPlans(e),Ln().dispose(e),er().clearSessionApprovals(e),er().clearSessionQuestions(e),delete Ze.tasksBySession[e],delete Ze.goalBySession[e],delete Ze.goalVersionBySession[e],so().clearSessionGitStatus(e),so().clearSessionFileTree(e),delete Ze.compactionBySession[e],delete Ze.autoCompactionCompletedAtBySession[e],delete Ze.autoCompactionObservedAtBySession[e],JE.delete(e),XE.delete(e),It().clearOptimisticMessages(e),An().clearSessionSeqs(e),delete Ze.sessionStatusSettledBySession[e];for(const t of[...i7.keys()])t.startsWith(`${e}:`)&&i7.delete(t);It().forgetLocalTurnState(e),It().clearQueued(e),It().clearPromptIds(e),It().clearInFlight(e),delete Ze.planModeBySession[e],delete Ze.planArmedBySession[e],delete Ze.pendingPlanBySession[e],delete Ze.swarmModeBySession[e],delete Ze.pendingSwarmBySession[e],delete Ze.towerModeBySession[e],delete Ze.pendingTowerBySession[e],delete Ze.goalModeBySession[e],delete Ze.thinkingBySession[e],delete Ze.pendingThinkingBySession[e],Cn().clearSession(e),Gt().savePlanModeToStorage(),Gt().saveSwarmModeToStorage(),Gt().saveTowerModeToStorage(),Gt().saveGoalModeToStorage(),Et().unpinSession(e),Yo().clearUnread(e)}function rue(e){An().applySessionDeletedLocally(e)}const drt=R(()=>nr().connectIssue);function Ia(e,t){const n=frt(e,t);Ln().runtimeFor(e).sessionStatusFlight=n;const i=()=>{const o=Ln().peekRuntime(e);o!==void 0&&o.sessionStatusFlight===n&&(o.sessionStatusFlight=void 0)};return n.then(i,i),n}async function frt(e,t){const n=Ln().runtimeFor(e),i=n.sessionStatusVersion,o=n.statusTeardownGen??0,s=(n.statusRequestSeq??0)+1;n.statusRequestSeq=s,Ln().trackStatusRead(e,s);let r;try{r=await tn().getSessionStatus(e)}catch{Ln().untrackStatusRead(e,s);const u=Ln().peekRuntime(e);return u!==void 0&&u.statusRequestSeq===s&&u.discardedStatusReadAt&&(u.discardedStatusReadAt=!1,yb(e,{},1)),!1}Ln().untrackStatusRead(e,s);const a=Ln().peekRuntime(e);if((a?.sessionStatusVersion??0)!==i)return a!==void 0&&(a.lastStatusSuccessSeq??0)u.id===e)||a===void 0)return!1;if(a.statusRequestSeq!==s)return(a.lastStatusSuccessSeq??0)<=s&&(a.discardedStatusReadAt=!0),!1;s>(a.lastStatusSuccessSeq??0)&&(a.lastStatusSuccessSeq=s);const l=Vi.pool.getEntry(e)?.channel.snapshot.meta.agent;if(vb(e,u=>({...u,model:r.model||u.model,usage:{...u.usage,contextTokens:l?.contextTokens!==void 0?u.usage.contextTokens:r.contextTokens,contextLimit:l?.maxContextTokens!==void 0?u.usage.contextLimit:r.maxContextTokens}})),t?.throughShield!==void 0){const u=t.throughShield.swarm===!0&&(t.throughTokens?.swarm===void 0||Ze.pendingSwarmBySession[e]===t.throughTokens.swarm),d=t.throughShield.tower===!0&&(t.throughTokens?.tower===void 0||Ze.pendingTowerBySession[e]===t.throughTokens.tower),f=t.throughShield.plan===!0&&(t.throughTokens?.plan===void 0||Ze.pendingPlanBySession[e]===t.throughTokens.plan);u?Ze.swarmModeBySession={...Ze.swarmModeBySession,[e]:r.swarmMode}:t.throughShield.swarm!==!0&&kT(Ze,e,r.swarmMode),d?Ze.towerModeBySession={...Ze.towerModeBySession,[e]:r.towerMode===!0}:t.throughShield.tower!==!0&&CT(Ze,e,r.towerMode===!0),f?Ze.planModeBySession={...Ze.planModeBySession,[e]:r.planMode}:t.throughShield.plan!==!0&&eT(Ze,e,r.planMode)}else kT(Ze,e,r.swarmMode),CT(Ze,e,r.towerMode===!0),eT(Ze,e,r.planMode);Gt().saveTowerModeToStorage();const c=G1(r.permission);if(c!==void 0){const u=a.statusRequestSeq===s;a.statusPermissionFresh=u,u?(a.discardedStatusReadAt=!1,a.lastStatusPermission=c,a.lastMetaPermission=c,Cn().foldDaemonMode(e,c,{authoritative:!0,markerEffects:!0})):(a.lastStatusSuccessSeq??0)<=s&&(a.discardedStatusReadAt=!0)}else a.statusPermissionFresh=!1,Cn().dropLiveCoverageTrust(e);return Do(xn.planMode),r.thinkingEffort.length>0&&CR(Ze,e,r.thinkingEffort),eL(e),!0}function yb(e,t,n,i){if(!Ze.sessions.some(u=>u.id===e))return;const o=Ln().runtimeFor(e),s=o.statusConfirmRetry,r=(u,d)=>u===void 0?d:d===void 0?u:Math.max(u,d),a={thinking:r(t.thinking,s?.tokens.thinking),swarm:r(t.swarm,s?.tokens.swarm),tower:r(t.tower,s?.tokens.tower),plan:r(t.plan,s?.tokens.plan),permission:r(t.permission,s?.tokens.permission)},l={swarm:t.swarm!==void 0||s?.fields.swarm===!0,tower:t.tower!==void 0||s?.fields.tower===!0,plan:t.plan!==void 0||s?.fields.plan===!0};s?.timer!=null&&clearTimeout(s.timer);const c={attempt:n,timer:null,tokens:a,fields:l,permissionMode:(t.permission??0)>=(s?.tokens.permission??0)?i??s?.permissionMode:s?.permissionMode};o.statusConfirmRetry=c,c.timer=setTimeout(()=>{c.timer=null;const u=Ln().peekRuntime(e);if(!Ze.sessions.some(d=>d.id===e)){u!==void 0&&u.statusConfirmRetry===c&&(u.statusConfirmRetry=void 0);return}Ia(e,{throughShield:c.fields,throughTokens:c.tokens}).then(d=>{const f=Ln().peekRuntime(e);if(d&&(c.permissionMode===void 0||f?.statusPermissionFresh===!0)){f!==void 0&&f.statusConfirmRetry===c&&(f.statusConfirmRetry=void 0),uu(Ze,e,c.tokens.thinking),FR(Ze,e,c.tokens.swarm),DR(Ze,e,c.tokens.tower),TR(Ze,e,c.tokens.plan),c.permissionMode!==void 0&&Cn().confirmOrReleaseExplicit(e,c.permissionMode,c.tokens.permission,f?.lastStatusPermission);return}if(!(f===void 0||f.statusConfirmRetry!==c)){if(!Ze.sessions.some(m=>m.id===e)){f.statusConfirmRetry=void 0;return}yb(e,c.tokens,n+1,c.permissionMode)}})},Math.min(n*2e3,15e3))}function jK(e){return Object.keys(e).filter(t=>e[t]!==void 0)}function bb(e,t){const n=t??Ze.activeSessionId;if(!n)return Promise.resolve(!1);const i=e.thinking!==void 0?Ze.pendingThinkingBySession[n]:void 0,o=e.swarmMode!==void 0?Ze.pendingSwarmBySession[n]:void 0,s=e.towerMode!==void 0?Ze.pendingTowerBySession[n]:void 0,r=e.planMode!==void 0?Ze.pendingPlanBySession[n]:void 0,a=e.permissionMode!==void 0&&Cn().explicit[n]===e.permissionMode?Cn().explicitSeqFor(n):void 0,l=Ln().profileWriteChainBySid.get(n)??Promise.resolve(),c=Cn().sessionTeardownGenFor(n);Cn().noteSubmitPrepStart(n);const u=l.catch(()=>{}).then(()=>{if(Cn().sessionTeardownGenFor(n)!==c)throw new Error("session.torn_down");return Promise.resolve(tn().updateSession(n,e)).then(()=>{})});Ln().profileWriteChainBySid.set(n,u);const d=h=>{if(Ze.sessions.some(g=>g.id===n)){const g=Ln().runtimeFor(n);if(e.permissionMode!==void 0)g.profileWriteOutcome=h;else if(h){const y=g.profileWriteLastTailFailure;if(y!==void 0){for(const v of jK(e))y.delete(v);y.size===0&&(g.profileWriteLastTailFailure=void 0)}}else{const y=g.profileWriteLastTailFailure??new Set;for(const v of jK(e))y.add(v);g.profileWriteLastTailFailure=y}}const m=Ln().profileWriteChainBySid;m.get(n)===u&&m.delete(n),Cn().noteSubmitPrepEnd(n)};u.then(()=>d(!0),()=>d(!1));const f={thinkingToken:i,swarmToken:o,towerToken:s,planToken:r,permissionSeq:a};return u.then(()=>hrt(n,e,f),h=>lue(n,e,f,h))}async function aue(e){const t=Ln().peekRuntime(e);let n=t?.profileWriteOutcome??!0;for(t!==void 0&&(t.profileWriteLastTailFailure?.size??0)>0&&(t.profileWriteLastTailFailure=void 0,n=!1);;){const i=Ln().profileWriteChainBySid.get(e);if(i===void 0)return n;const o=await i.then(()=>!0,()=>!1),s=Ln().peekRuntime(e);if(n=n&&(s?.profileWriteOutcome??!0)&&o,Ln().profileWriteChainBySid.get(e)===i)return n}}function hrt(e,t,n){const{thinkingToken:i,swarmToken:o,towerToken:s,planToken:r,permissionSeq:a}=n;return Promise.resolve().then(()=>Ia(e,{throughShield:{swarm:t.swarmMode!==void 0,tower:t.towerMode!==void 0,plan:t.planMode!==void 0},throughTokens:{swarm:o,tower:s,plan:r}})).then(l=>l&&(t.permissionMode===void 0||Ln().peekRuntime(e)?.statusPermissionFresh===!0)?(uu(Ze,e,i),FR(Ze,e,o),DR(Ze,e,s),TR(Ze,e,r),t.permissionMode!==void 0&&Cn().confirmOrReleaseExplicit(e,t.permissionMode,a,Ln().peekRuntime(e)?.lastStatusPermission),!0):(yb(e,{thinking:i,swarm:o,tower:s,plan:r,permission:a},1,t.permissionMode),!0)).catch(l=>lue(e,t,n,l))}function lue(e,t,n,i){const{thinkingToken:o,swarmToken:s,towerToken:r,planToken:a,permissionSeq:l}=n;if(uu(Ze,e,o)&&Ia(e),FR(Ze,e,s)&&Ia(e),DR(Ze,e,r)&&Ia(e),TR(Ze,e,a)&&Ia(e),t.permissionMode!==void 0)if(Ti(i))Cn().revertExplicitIf(e,t.permissionMode,l);else{const c=Cn().noteSubmittedMode(e,t.permissionMode);c!==!1&&Cn().markSubmittedUncertain(e,c.id),Ia(e).then(u=>{u&&Ln().peekRuntime(e)?.statusPermissionFresh===!0?Cn().confirmOrReleaseExplicit(e,t.permissionMode,l,Ln().peekRuntime(e)?.lastStatusPermission):yb(e,{permission:l},1,t.permissionMode)})}return oi().pushOperationFailure("persistSessionProfile",i,{sessionId:e}),!1}function cue(e){try{return lo(e)??""}catch{return""}}function prt(){return typeof window>"u"?!1:new URLSearchParams(window.location.search).get("kimi_onboarded")==="1"}const uue=prt();if(uue&&cue(n7)!=="1")try{Eo(n7,"1")}catch{}const due=Z(uue||cue(n7)==="1");function mrt(e){due.value=e;try{Eo(n7,e?"1":"0")}catch{}e&&window.kimiDesktop?.setOnboarded?.()}const Vd=Ost({api:tn(),connectEventsIfNeeded:_v,getEventConnection:ef}),Rg=new Map,Vi=Nst({api:tn(),getSharedConnection:ef,ensureSharedConnection:_v,onSessionGone:e=>rue(e),getLocalTurnState:e=>It().localTurnStartState(e),hasPendingLocalWork:e=>Rg.has(e)||It().inFlightBySession[e]===!0||(It().queuedBySession[e]??[]).length>0||(It().optimisticMessagesBySession[e]??[]).some(t=>t.metadata?.[Mg]!==!0),onBaselineError:(e,t)=>oi().pushOperationFailure("loadSessionTranscript",t,{sessionId:e}),onSnapshotChange:e=>{yrt(e),grt(e)}}),JE=new Map,XE=new Map;function grt(e){const t=Vi.pool.getEntry(e)?.channel.snapshot.items;if(t===void 0)return;const n=XE.get(e),i=n===void 0||n.index===0?void 0:t[n.index-1],o=n!==void 0&&n.index>0&&n.index<=t.length&&i!==void 0&&ew(i)===n.tailId?n.index:0,s=t.at(-1);XE.set(e,{index:t.length,tailId:s===void 0?void 0:ew(s)});for(let r=o;r=d-6e4;h&&It().noteCompactionSettled(e);const m=h&&Oc().hasCompactionWait(e);if(m&&Oc().noteCompactionSettled(e,c==="completed"?"completed":"cancelled"),c==="completed"){let v="auto";for(let w=r-1;w>=0;w--){const C=t[w];if(C?.kind!=="marker"||C.marker!=="compaction")continue;const x=C.payload;if(x?.phase==="started"){v=x.trigger==="manual"?"manual":"auto";break}}const k=a.at===void 0?NaN:Date.parse(a.at);v==="auto"&&!Number.isNaN(k)&&(Ze.autoCompactionCompletedAtBySession[e]=k,Ze.autoCompactionObservedAtBySession[e]=Date.now())}const g=It().compactFlushHoldAt(e);if(g===void 0)continue;const y=a.at===void 0?NaN:Date.parse(a.at);Number.isNaN(y)||yr.kind==="turn"),o=i?.kind==="turn"?i.turnId:null;if(n.meta.activity!=="turn")return{turnId:o,status:"idle"};const s=n.interactions.filter(r=>r.state==="pending");if(s.length>0){const r=s.every(a=>a.interactionKind==="approval"&&er().isApprovalAnswered(e,a.interactionId));return r?{turnId:o,status:"paused",resolving:r}:{turnId:o,status:"paused"}}return{turnId:o,status:"running"}}function fue(e){const t=Vi.pool.getEntry(e)?.channel.snapshot.items.findLast(n=>n.kind==="turn");if(t?.kind==="turn")for(const n of t.steps){const i=n.frames.find(o=>o.kind==="tool"&&o.name==="WaitFor"&&o.state==="running"&&o.progress!==void 0);if(i?.kind==="tool")return i.toolCallId}}function vrt(e){return fue(e)!==void 0}const qK=new WeakMap;function yrt(e){const t=Vi.pool.getEntry(e);if(t===void 0)return;const n=fue(e),i=qK.get(t);qK.set(t,n),n!==void 0&&n!==i&&queueMicrotask(()=>void Zi.steerQueueIntoWait(e))}function hue(e){const t=Vi.pool.getEntry(e)?.channel.snapshot.items.findLast(n=>n.kind==="turn");return t?.kind==="turn"?t.turnId:void 0}function pue(e){const t=Vi.pool.getEntry(e)?.channel.snapshot.prompts;if(t===void 0||t.length===0)return;let n;for(const i of t)(n===void 0||i.createdAt>n)&&(n=i.createdAt);return n}let VK=0;function mue(){return VK+=1,`msg_opt_${Date.now().toString(36)}_${VK}`}function UK(e,t,n){if(e.type==="sessionDeleted"){An().applySessionDeletedLocally(e.sessionId);return}const i={sessions:Ze.sessions,activeSessionId:Ze.activeSessionId,approvalsBySession:Ze.approvalsBySession,planReviewByToolCallId:Ze.planReviewByToolCallId,questionsBySession:Ze.questionsBySession,tasksBySession:Ze.tasksBySession,goalBySession:Ze.goalBySession,goalVersionBySession:Ze.goalVersionBySession,lastSeqBySession:Bi().lastSeqBySession,turnActiveBySession:Ln().turnActiveBySession,turnErrorBySession:Ln().turnErrorBySession,turnRetryBySession:Ln().turnRetryBySession,compactionBySession:Ze.compactionBySession,autoCompactionCompletedAtBySession:Ze.autoCompactionCompletedAtBySession,autoCompactionObservedAtBySession:Ze.autoCompactionObservedAtBySession,config:Ze.config,warnings:Ze.warnings},o=i.lastSeqBySession[t]??0,s=VRe(i,e,{sessionId:t,seq:n},{t:(r,a)=>a===void 0?Un(r):Un(r,a)});if(s.sessions!==i.sessions&&iue(s.sessions),s.activeSessionId!==i.activeSessionId&&bm(s.activeSessionId),er().applyApprovalsDiff(s.approvalsBySession),Kr().applyPlanReviewDiff(s.planReviewByToolCallId),er().applyQuestionsDiff(s.questionsBySession),t7().applyTasksDiff(s.tasksBySession),Wa().applyGoalDiff(s.goalBySession,s.goalVersionBySession),Bi().applyLastSeqDiff(s.lastSeqBySession),Ln().applyTurnActiveDiff(s.turnActiveBySession),Ln().applyTurnErrorDiff(s.turnErrorBySession),Ln().applyTurnRetryDiff(s.turnRetryBySession),Ec(Ze.compactionBySession,s.compactionBySession),Ec(Ze.autoCompactionCompletedAtBySession,s.autoCompactionCompletedAtBySession),Ec(Ze.autoCompactionObservedAtBySession,s.autoCompactionObservedAtBySession),s.config!==i.config&&(Ze.config=s.config??null),URe(s.warnings,i.warnings)||oi().setWarnings(s.warnings),e.type==="goalUpdated"&&Wa().clearGoalFetchPending(t),(e.type==="compactionCompleted"||e.type==="compactionCancelled")&&n>o){const r=Oc().hasCompactionWait(t);Oc().noteCompactionSettled(t,e.type==="compactionCompleted"?"completed":"cancelled"),It().noteCompactionSettled(t),r||Zi.resumeAfterCompaction(t)}e.type==="configChanged"&&(ws().noteConfigWrite(),Go().setDefaultModel(e.config.defaultModel??null),nr().checkAuth()),e.type==="modelCatalogChanged"&&(Ri.loadModels(),Ri.loadProviders(),nr().checkAuth()),e.type==="sessionUsageUpdated"&&(e.swarmMode!==void 0&&kT(Ze,e.sessionId,e.swarmMode),e.towerMode!==void 0&&(CT(Ze,e.sessionId,e.towerMode),Gt().saveTowerModeToStorage()),e.planMode!==void 0&&eT(Ze,e.sessionId,e.planMode),e.thinking!==void 0&&CR(Ze,e.sessionId,e.thinking)),e.type==="sessionUpdated"&&"archived"in e.session&&An().noteSessionArchivedSeq(e.session.id,n),e.type==="sessionArchived"&&An().noteSessionArchivedSeq(e.sessionId,n),e.type==="sessionMetaUpdated"&&"title"in e&&An().noteSessionTitleSeq(e.sessionId,n),(e.type==="sessionWorkChanged"||e.type==="turnActiveChanged")&&"lastTurnReason"in e&&Ln().noteLastTurnReasonSeq(e.sessionId,n),e.type==="sessionCreated"&&An().notePoolInsert(e.session.id),e.type==="sessionUpdated"&&e.session.archived===!0&&pv(e.session.id)}function brt(e,t){const n=Bi().lastSeqBySession[t.sessionId]??0,i=Ln().turnActiveBySession[t.sessionId]??!1,o=e.type==="approvalResolved"||e.type==="approvalExpired"?Ze.approvalsBySession[t.sessionId]?.find(l=>l.approvalId===e.approvalId&&l.toolName==="ExitPlanMode")?.toolCallId:void 0,s=Wi.sideChatTargetBySession.value[t.sessionId]??[],r=e.type==="messageCreated"&&e.message.role==="user"&&e.agentId!==void 0&&Object.prototype.hasOwnProperty.call(Ze.sideChatMessagesByAgent,e.agentId),a=e.type==="messageCreated"&&e.message.role==="user"&&e.agentId!==void 0&&Wi.isClosedSideChatAgent(t.sessionId,e.agentId);if(r||a){UK({type:"unknown",raw:{_noop:!0}},t.sessionId,t.seq),r&&e.type==="messageCreated"&&Wi.reconcileSideChatUserMessage(e.agentId,e.message);return}UK(e,t.sessionId,t.seq);for(const{agentId:l}of s){const c=t.sessionId;e.type==="agentDelta"&&e.agentId===l?(Wi.reviveSideChatAgent(l),e.delta.text&&Wi.appendSideChatAssistantText(l,c,e.delta.text)):e.type==="agentToolCall"&&e.agentId===l&&(Wi.reviveSideChatAgent(l),Wi.appendSideChatToolCall(l,c,e))}if(e.type==="agentTurnEnded"&&Wi.wasSideChatAgent(e.agentId)?(e.reason==="failed"&&Wi.setSideChatTurnError(e.agentId,e.error),Wi.finishSideChatAgent(e.agentId,t.sessionId)):e.type==="taskCompleted"&&Wi.wasSideChatAgent(e.taskId)&&Wi.finishSideChatAgent(e.taskId,t.sessionId,e.outputPreview,!0),e.type==="sessionWorkChanged"&&(e.mainTurnActive===!1||e.mainTurnActive===void 0&&!e.busy)&&t.seq>n){const l=e.sessionId,c=Vi.pool.getEntry(l),u=(It().inFlightBySession[l]??!1)||(It().queuedBySession[l]?.length??0)>0||It().localTurnStartState(l).pending;if(c!==void 0&&(u||c.channel.snapshot.meta.activity==="turn")){const d=c.channel.snapshot.items.findLast(y=>y.kind==="turn"),f=d?.kind==="turn"?d.turnId:void 0,h=Ln().peekRuntime(l)?.settledTurnEnd,m=It().localTurnStartState(l).generation,g=y=>{const v=Vi.pool.getEntry(l);if(v!==c)return;const k=v.channel.snapshot.items.findLast(C=>C.kind==="turn");(k?.kind==="turn"?k.turnId:void 0)===f&&(wlt(l,c,m),!(v.channel.snapshot.meta.activity!=="turn"||!y)&&setTimeout(()=>{const C=Vi.pool.getEntry(l);if(C!==c)return;const x=C.channel.snapshot.items.findLast(M=>M.kind==="turn");(x?.kind==="turn"?x.turnId:void 0)===f&&Ln().peekRuntime(l)?.settledTurnEnd===h&&Vi.pool.refreshSession(l).finally(()=>g(!1))},2e3))};Vi.pool.refreshSession(l).finally(()=>g(!0))}else u||klt(l)}if(t.seq>n&&(e.type==="turnActiveChanged"||e.type==="approvalRequested"||e.type==="questionRequested"||e.type==="promptCompleted"&&e.reason==="blocked"||e.type==="promptAborted"||e.type==="sessionWorkChanged"&&(e.mainTurnActive===!1||!e.busy)&&i)&&h0(t.sessionId),o!==void 0){const l=e.type==="approvalResolved"?{state:e.decision,selectedOption:e.selectedLabel,feedback:e.feedback}:{state:"cancelled"};Kr().settlePlanReviewLocally(t.sessionId,o,l);const c=t.sessionId===Ze.activeSessionId?Er.options(t.sessionId):Er.offscreenOptions(t.sessionId);Kr().refreshSessionPlans(t.sessionId,c)}}const kb=K$e(({appEvent:e,meta:t})=>brt(e,t),({appEvent:e})=>W$e(e),{coalesce:G$e});function krt(e){const t=Ln().runtimeFor(e);t.sessionStatusVersion+=1}function eL(e){Ze.sessionStatusSettledBySession[e]!==!0&&(Ze.sessionStatusSettledBySession={...Ze.sessionStatusSettledBySession,[e]:!0})}const i7=new Map;function wrt(e,t){const n=new Map(e.map(c=>[c.id,c]));let i=!1,o=!1;const s={...Ln().turnActiveBySession},r=[],a=new Map,l=Ze.sessions.map(c=>{const u=n.get(c.id);if(u===void 0)return c;const d=t.workEventSeqBySession.get(c.id)??0,f=t.turnEventSeqBySession.get(c.id)??0,h=t.pendingEventBySession.get(c.id),m=d>u.lastSeq,g=f>u.lastSeq,y=h!==void 0&&h.seq>u.lastSeq,v=m||g&&c.mainTurnActive===!0?c.busy||c.mainTurnActive===!0:u.busy,k=m||g?c.mainTurnActive:u.mainTurnActive??(v?c.mainTurnActive:!1),w=y?h.source==="work"?c.pendingInteraction:(Ze.approvalsBySession[c.id]?.length??0)>0?"approval":(Ze.questionsBySession[c.id]?.length??0)>0?"question":"none":u.pendingInteraction??(v?c.pendingInteraction:"none");(y&&h.source==="work"||!y&&(u.pendingInteraction!==void 0||u.busy===!1))&&w!==void 0&&a.set(c.id,w);const C=m?c.lastTurnReason:u.lastTurnReason;Bi().noteSessionWatermark(c.id,u.lastSeq);const x=t.turnStartBySession.get(c.id);return(k===!1||k===void 0&&!v)&&t.witnessedTurnBySession.has(c.id)&&x!==void 0&&It().isLocalTurnSnapshotCurrent(c.id,x)&&r.push(c.id),k===!0&&!s[c.id]?(s[c.id]=!0,o=!0):(k===!1||!v)&&s[c.id]&&(delete s[c.id],o=!0),c.busy===v&&c.mainTurnActive===k&&c.pendingInteraction===w&&c.lastTurnReason===C?c:(i=!0,{...c,busy:v,mainTurnActive:k,pendingInteraction:w,lastTurnReason:C})});i&&iue(l),o&&Ln().applyTurnActiveDiff(s);for(const[c,u]of a)u==="none"?(er().clearSessionApprovals(c),er().clearSessionQuestions(c)):u==="question"&&er().clearSessionApprovals(c);for(const c of r){const u=Vi.pool.getEntry(c);if(u!==void 0)Vi.pool.refreshSession(c).catch(()=>{setTimeout(()=>{Vi.pool.getEntry(c)===u&&Vi.pool.refreshSession(c).catch(()=>{})},2e3)});else{const d=Ze.sessions.find(f=>f.id===c)?.lastTurnReason;cL(c,d==="cancelled"||d==="failed"?"aborted":"idle",!0,{firstTurn:!0})}}}async function MO(){const e={workEventSeqBySession:new Map,turnEventSeqBySession:new Map,pendingEventBySession:new Map,turnStartBySession:new Map(Ze.sessions.map(t=>[t.id,It().localTurnStartState(t.id)])),witnessedTurnBySession:new Set(Ze.sessions.filter(t=>It().inFlightBySession[t.id]||Ln().turnActiveBySession[t.id]).map(t=>t.id))};Bi().beginSessionWorkBaseline(e);try{const t=await An().listAllSessionsGlobal({shouldContinue:()=>Bi().isSessionWorkBaselineCurrent(e)&&Bi().connected});if(!Bi().isSessionWorkBaselineCurrent(e)||!Bi().connected)return;kb.flush(),wrt(t.sessions,e),Bi().clearSessionWorkBaseline(),t.error!==void 0?Bi().scheduleSessionWorkBaselineRetry(t.error,KK):Bi().resetSessionWorkBaselineBackoff()}catch(t){if(!Bi().isSessionWorkBaselineCurrent(e)||!Bi().connected)return;Bi().clearSessionWorkBaseline(),Bi().scheduleSessionWorkBaselineRetry(t,KK)}}function KK(){MO()}function Crt(){return(e,t)=>{const n=Bi().resumeFloorOf(t.sessionId);if(n!==void 0&&t.seq>=n.throughSeq&&Bi().clearResumeFloor(t.sessionId),e.type==="sessionArchived"){An().applyRemoteSessionArchived(e.sessionId,e.workspaceId).then(a=>{a&&pv(e.sessionId)});return}if(e.type==="workspaceCreated"||e.type==="workspaceUpdated"||e.type==="workspaceDeleted"){if(e.type==="workspaceDeleted"){const a=Ze.sessions.filter(l=>l.workspaceId===e.workspaceId||l.cwd===e.root).map(l=>l.id);lPe(e.workspaceId,e.root,a)}bn().applyWorkspaceEvent(e);return}if((e.type==="pluginsChanged"||e.type==="capabilityChanged")&&uPe(e))return;const i=e.type==="sessionWorkChanged",o=e.type==="turnActiveChanged",s=e.type==="approvalRequested"||e.type==="approvalResolved"||e.type==="approvalExpired"||e.type==="questionRequested"||e.type==="questionAnswered"||e.type==="questionDismissed";if((i||o||s)&&t.seq>0&&!Bi().noteSessionActivityIfFresh(t.sessionId,t.seq))return;const r=Bi().sessionWorkBaseline.run;if(r!==null&&(i||o||s))if(i){const a=r.workEventSeqBySession.get(t.sessionId)??0;if(t.seq>a&&r.workEventSeqBySession.set(t.sessionId,t.seq),e.pendingInteraction!==void 0||!e.busy){const l=r.pendingEventBySession.get(t.sessionId);(l===void 0||t.seq>l.seq)&&r.pendingEventBySession.set(t.sessionId,{seq:t.seq,source:"work"})}}else if(o){const a=r.turnEventSeqBySession.get(t.sessionId)??0;t.seq>a&&r.turnEventSeqBySession.set(t.sessionId,t.seq)}else{const a=r.pendingEventBySession.get(t.sessionId);(a===void 0||t.seq>a.seq)&&r.pendingEventBySession.set(t.sessionId,{seq:t.seq,source:"interaction"})}for(const a of Z$e({appEvent:e,meta:t}))kb(a)}}function Art(){return(e,t,n)=>{const i=Bi().noteResync(e);hu("ws:resync",{sessionId:e,status:"required",seq:t}),kb.flush(),Bi().applyResyncSeq(e,t),Wi.resyncSideChat(e),(async()=>{const o=Ze.sessions.find(l=>l.id===e),s=An().sessionArchivedSeqOf(e),r=An().sessionTitleSeqOf(e),a=Ln().sessionLastTurnReasonSeqBySession[e];try{const l=await tn().getSession(e);if(Bi().resyncGenerationOf(e)!==i)return;const c=Ze.sessions.find(u=>u.id===e);if(l.archived===!0&&c?.archived!==!0&&o?.archived!==!0&&An().sessionArchivedSeqOf(e)===s){await An().applyRemoteSessionArchived(e,l.workspaceId),pv(e);return}vb(e,u=>({...u,title:An().sessionTitleSeqOf(e)===r?l.title:u.title,archived:An().sessionArchivedSeqOf(e)===s?u.archived||l.archived:u.archived,busy:u.busy!==o?.busy?u.busy:l.busy,mainTurnActive:u.mainTurnActive!==o?.mainTurnActive?u.mainTurnActive:l.mainTurnActive??u.mainTurnActive,pendingInteraction:u.pendingInteraction!==o?.pendingInteraction?u.pendingInteraction:l.pendingInteraction??u.pendingInteraction,lastTurnReason:Ln().sessionLastTurnReasonSeqBySession[e]===a?l.lastTurnReason:u.lastTurnReason}))}catch(l){if(Ti(l)&&l.code===40401){rue(e);return}}bn().loadWorkspaces(),MO()})(),n!==void 0&&Bi().noteJournalEpoch(n)}}function xrt(){return(e,t,n)=>{hu("ws:error",{status:"failed",errorCode:e,fatal:n}),oi().pushWarning({severity:"error",title:Un("warnings.wsTitle"),message:t,details:[Ps("message",t)].filter(i=>i!==void 0)})}}function Srt(){return e=>{hu("ws:connection",{status:e?"connected":"disconnected"}),e?(Bi().markConnected(),Promise.all([...Bi().wsSubscriptions()].map(async t=>{if(!await Ia(t)||Ln().peekRuntime(t)?.statusPermissionFresh!==!0)return;const i=Cn().explicit[t];i!==void 0&&Cn().explicitSeqFor(t)===void 0&&Cn().forPrompt(t)===void 0&&Cn().hasOneShotEchoFor(t)&&bb({permissionMode:i},t)})),oi().dismissWsError(),ws().refreshServerMeta()):(Bi().markDisconnected(),Cn().dropAllLiveCoverageTrust())}}function _rt(){return()=>{kb.flush(),Bi().connectionGeneration>1&&MO();const e=Ze.activeSessionId;e!==void 0&&!Bi().wsSubscriptions().includes(e)&&yue(e)}}function Irt(){return(e,t,n,i)=>{Vd.receiveReset(e,t,n,i),t==="main"&&(Vi.pool.receiveReset(e,n,i),xst(e))}}function Trt(){return(e,t,n,i)=>{const o=Vd.applyOps(e,t,n,i);return t==="main"?Vi.pool.applyOps(e,n,i):o}}function _v(){if(ef()!==null||typeof WebSocket>"u")return;hu("ws:connection",{status:"connecting"}),Bi().markConnecting();const e=tn();rFe(e.connectEvents({onEvent:Crt(),onResync:Art(),onError:xrt(),onConnectionChange:Srt(),onReplayComplete:_rt(),onTranscriptReset:Irt(),onTranscriptOps:Trt()}))}function gue(e){return Vi.pool.getEntry(e)?.baselineLoaded===!0}function Mrt(e){return gue(e)?Promise.resolve():new Promise(t=>{const n=Fe(()=>{const i=Vi.pool.getEntry(e);return i===void 0?!0:(i.version.value,i.baselineLoaded===!0)},i=>{i&&(n(),t())})})}function vue(e,t){vb(e,n=>({...n,title:t.title??n.title,archived:t.archived??n.archived,archivedAt:t.archivedAt??n.archivedAt,updatedAt:t.updatedAt!==void 0&&t.updatedAt>n.updatedAt?t.updatedAt:n.updatedAt,lastPrompt:t.lastPrompt??n.lastPrompt,messageCount:t.messageCount??n.messageCount}))}const F_=new Map;function h0(e){if(F_.has(e))return;const t=(async()=>{try{const n=await tn().getSession(e);n!=null&&vue(e,n)}catch{}finally{F_.delete(e)}})();F_.set(e,t)}function yue(e){Bi().subscribeSessionEvents(e,{ensureConnection:_v,fetchRow:()=>tn().getSession(e),mergeRow:t=>vue(e,t)})}function Ert(e){return{questionId:e.questionId,sessionId:e.sessionId,toolCallId:e.toolCallId,questions:e.questions.map(t=>({id:t.id,question:t.question,header:t.header,body:t.body,options:t.options.map(n=>({id:n.id,label:n.label,description:n.description,recommended:n.recommended})),multiSelect:t.multiSelect,allowOther:t.allowOther,otherLabel:t.otherLabel,otherDescription:t.otherDescription}))}}const Lrt=R(()=>{const e=pd(),t=new Map;if(e===null)return t;const n=new Map,i=[];for(const o of e.channel.snapshot.items)if(o.kind==="turn")for(const s of o.steps)for(const r of s.frames){if(r.kind!=="tool")continue;if(r.name==="Bash"||r.name==="bash"){const l=r.input;typeof l?.command=="string"&&n.set(r.toolCallId,l.command)}const a=DP(r.output);a!==void 0&&a.length>0&&i.push({toolCallId:r.toolCallId,output:a.join(` +`)})}if(n.size===0)return t;for(const{toolCallId:o,output:s}of i){const r=/task_id:\s*(\S+)/.exec(s);if(!r?.[1])continue;const a=n.get(o);a&&t.set(r[1],a)}return t});function bue(e){return Lrt.value.get(e.id)}const Rrt=R(()=>{const e=pd(),t=new Map;if(e===null)return t;for(const n of e.channel.snapshot.items)if(n.kind==="turn")for(const i of n.steps)for(const o of i.frames){if(o.kind!=="tool")continue;const s=o.input,r=typeof s?.prompt=="string"?s.prompt:void 0;r&&!t.has(o.toolCallId)&&t.set(o.toolCallId,r);const a=s?.items;if(!r&&Array.isArray(a)&&!t.has(o.toolCallId)){const l=a.filter(c=>typeof c=="string");l.length>0&&t.set(o.toolCallId,l)}}return t});function kue(e){if(!e.parentToolCallId)return;const t=Rrt.value.get(e.parentToolCallId);return Array.isArray(t)?e.swarmIndex!==void 0?t[e.swarmIndex]:void 0:t}function Prt(e){let t;e.status==="running"?t="run":e.status==="completed"?t="done":e.status==="cancelled"?t="cancelled":t="fail";let n="",i;if(e.status==="running"&&e.startedAt){i=Date.now()-new Date(e.startedAt).getTime();const a=Math.round(i/1e3),l=Math.floor(a/60),c=a%60;n=Un("tasks.timingRunning",{time:`${l}:${String(c).padStart(2,"0")}`})}else e.completedAt&&e.startedAt&&!e.completedAtEstimated?(i=new Date(e.completedAt).getTime()-new Date(e.startedAt).getTime(),n=Un("tasks.timingDone",{time:cd(i,{h:Un("status.timeUnitHour"),m:Un("status.timeUnitMinute"),s:Un("status.timeUnitSecond")})})):n=e.status;const o=e.outputLines&&e.outputLines.length>0?e.outputLines:e.outputPreview?e.outputPreview.split(/\r?\n/):void 0,s=e.command??bue(e),r=e.kind==="bash"&&s?`$ ${s}`:e.kind==="subagent"?kue(e)??e.subagentType:void 0;return{id:e.id,agentId:e.agentId,backgroundTaskId:e.backgroundTaskId,name:e.description,kind:e.kind,state:t,timing:n,durationMs:i,meta:r,output:o,runInBackground:e.runInBackground,parentToolCallId:e.parentToolCallId,swarmIndex:e.swarmIndex,completedAt:e.completedAt,createdAt:e.createdAt,model:e.model,thinkingEffort:e.thinkingEffort}}const $rt=R(()=>{const e=Ze.sessions.find(n=>n.id===Ze.activeSessionId),t=e?e.cwd.split("/").pop()??e.cwd:"main";return{name:Ze.workspaceName,branch:t}}),Ort=R(()=>(Yo().sessionTimeClock,Ze.sessions.toSorted((e,t)=>new Date(t.updatedAt).getTime()-new Date(e.updatedAt).getTime()).map(e=>({id:e.id,title:e.title,time:v0(e.updatedAt),busy:Yo().isMainTurnActive(e.id,e.mainTurnActive),pendingInteraction:e.pendingInteraction,lastTurnReason:e.lastTurnReason,workspaceId:rL(e),cwd:e.cwd})))),Frt=R(()=>Ze.activeSessionId??""),Drt=R(()=>{const e=Ze.activeSessionId;if(e)return Ri.skillsBySession.value[e]??[];const t=wb.value;return t?Ri.skillsByWorkspace.value[t]??[]:[]}),Nrt=R(()=>{const e=Ze.activeSessionId;if(e)return Ri.skillsFetchedBySession.value[e]===!0;const t=wb.value;return t?Ri.skillsFetchedByWorkspace.value[t]===!0:!1}),EO=R(()=>{const e=Ze.activeSessionId;return e?It().inFlightBySession[e]??!1:!1}),Brt=R(()=>It().isStartingFirstPrompt),Wi=fst(Ze,{api:tn(),pushOperationFailure:oi().pushOperationFailure,nextOptimisticMsgId:mue,connectEventsIfNeeded:_v,getEventConn:ef,resolveThinkingForPrompt:(e,t)=>Ri.resolveThinkingForPrompt(e,t),refreshSessionStatus:Ia,mapSendAuthFailure:RO,ensureSideChatReady:Hat});function wue(e){const t=Ln().runtimeFor(e);let n=t.spawnedIndexCache;return n===void 0&&(n={parents:new Map,swarmIndexes:new Map},t.spawnedIndexCache=n),n}const Iv=R(()=>{const e=Ze.activeSessionId;if(!e)return[];const t=new Set((Wi.sideChatTargetBySession.value[e]??[]).map(o=>o.agentId)),n=o=>o!==void 0&&(t.has(o)||Wi.isClosedSideChatAgent(e,o)),i=pd();if(i!==null){const o=JOe(i.channel.snapshot,e,wue(e)),s=new Map((Ze.tasksBySession[e]??[]).map(r=>[r.id,r]));return o.filter(r=>!n(r.agentId??r.id)).map(r=>{const a=s.get(r.id)??(r.backgroundTaskId!==void 0?s.get(r.backgroundTaskId):void 0);if(a===void 0)return r;const l=r.status==="running"&&a.status!=="running"&&r.startedAt!==void 0&&(a.completedAtEstimated===!0?a.startedAt!==void 0&&a.startedAt>=r.startedAt:a.completedAt!==void 0&&a.completedAt>=r.startedAt),c=l||r.id===a.id;return{...r,status:l?a.status:r.status,subagentPhase:l?a.status==="completed"?"completed":a.status==="cancelled"?"cancelled":"failed":r.subagentPhase,completedAt:c?a.completedAt??r.completedAt:r.completedAt,completedAtEstimated:a.completedAt!==void 0&&c?void 0:r.completedAtEstimated,outputPreview:c?a.outputPreview??r.outputPreview:r.outputPreview,outputBytes:c?a.outputBytes??r.outputBytes:r.outputBytes,model:r.model??a.model,thinkingEffort:r.thinkingEffort??a.thinkingEffort,command:r.command??a.command}})}return(Ze.tasksBySession[e]??[]).filter(o=>!n(o.agentId??o.id))}),zrt=R(()=>{const e=Ze.activeSessionId;return e?Ze.tasksBySession[e]??[]:[]}),s9=ost(Ze,Iv,{api:tn()});function Cue(e){const t=Vi.pool.getEntry(e);if(t===void 0)return!1;t.version.value;const n=t.channel.snapshot;if(n.meta.activity!=="turn")return!1;const i=n.items.findLast(s=>s.kind==="turn"),o=Ln().peekRuntime(e)?.settledTurnEnd;return i?.kind==="turn"?i.state==="running"&&o!==i.turnId:o===void 0}function Aue(e){const t=Vi.pool.getEntry(e);if(t===void 0)return!1;t.version.value;const n=t.channel.snapshot;return n.meta.activity!=="turn"?!1:n.prompts.some(i=>i.status==="running"||i.status==="queued")?!0:Cue(e)}const Hrt=R(()=>{const e=Ze.activeSessionId;return e?Cue(e):!1}),xue=R(()=>{const e=Ze.activeSessionId;return e?Aue(e):!1}),tA=R(()=>{const e=Ze.activeSessionId;return e?(Ln().turnActiveBySession[e]??!1)||(Ze.sessions.find(t=>t.id===e)?.mainTurnActive??!1)||Hrt.value:!1}),jrt=R(()=>{const e=Ze.activeSessionId;if(!e)return;const t=pd();if(t!==null){const n=t.channel.snapshot;if(n.meta.activity==="turn")return;const i=n.items.findLast(l=>l.kind==="turn");if(i?.kind!=="turn"||i.state!=="failed"||i.error===void 0)return;const o=n.items.findLast(l=>l.kind==="marker"&&l.marker==="notice"&&l.payload?.level==="error"),s=o?.kind==="marker"?o.payload:void 0,r=s?.event??s,a=r?.details??{};return{code:typeof r?.code=="string"?r.code:void 0,message:i.error,name:typeof r?.name=="string"?r.name:void 0,retryable:typeof r?.retryable=="boolean"?r.retryable:void 0,statusCode:typeof a.statusCode=="number"?a.statusCode:void 0,requestId:typeof a.requestId=="string"?a.requestId:void 0}}return Ln().turnErrorBySession[e]}),Wrt=R(()=>{const e=Ze.activeSessionId;if(!e||!tA.value)return;const t=pd();if(t!==null){const i=t.channel.snapshot.items.findLast(s=>s.kind==="turn"),o=i?.state==="running"?i.steps.at(-1)?.retry:void 0;return o===void 0?void 0:{failedAttempt:o.failedAttempt,nextAttempt:o.nextAttempt,maxAttempts:o.maxAttempts,delayMs:o.delayMs,errorName:o.errorName,statusCode:o.statusCode}}return Ln().turnRetryBySession[e]}),tL=e=>tn().getFileUrl(e),nL=(e,t)=>tn().getSessionMediaUrl(e,t),qrt=lOe(),Sue=R(()=>{const e=Ze.activeSessionId;if(!e)return[];const t=pd();if(t===null)return[];const n=qrt(t.channel.snapshot,{sessionId:e,getFileUrl:tL,getSessionMediaUrl:nL,plansByToolCallId:Kr().plansBySession[e],planReviewByToolCallId:Ze.planReviewByToolCallId,agentCreatedAt:Ze.sessions.find(d=>d.id===e)?.createdAt,pendingInteractionAtByStepId:Ln().peekRuntime(e)?.pendingInteractionAt.value,thinkingTiming:t.thinkingTiming,includeStepTiming:irt().enabled}),i=It().optimisticMessagesBySession[e]??[],o=IOe(t.channel.snapshot,e,i);if(o.length===0)return n;const s=t.channel.snapshot.items.filter(d=>d.kind==="turn"),r=HP(o.filter(d=>d.metadata?.["kimiWeb.uncertain"]===!0&&d.metadata?.["kimiWeb.promptId"]===void 0&&la(d.metadata).length===0&&d.metadata?.origin?.kind!=="skill_activation").map(d=>({id:d.id,text:d.content.filter(f=>f.type==="text").map(f=>"text"in f?f.text:"").join(""),floor:pm(t.channel.snapshot.items,d.metadata),skills:la(d.metadata)})),t.channel.snapshot.prompts,Ln().peekRuntime(e)?.consumedEchoPromptIds),a=jP(o.filter(d=>d.metadata?.["kimiWeb.uncertain"]===!0&&d.metadata?.["kimiWeb.promptId"]===void 0&&la(d.metadata).length>0).map(d=>({id:d.id,text:d.content.filter(f=>f.type==="text").map(f=>"text"in f?f.text:"").join(""),attachmentCount:d.content.filter(f=>f.type!=="text").length,floor:pm(t.channel.snapshot.items,d.metadata),skills:la(d.metadata)})),t.channel.snapshot,Ln().peekRuntime(e)?.consumedBundledEchoIds),l=WP(o.filter(d=>d.metadata?.["kimiWeb.uncertain"]===!0&&d.metadata?.origin?.kind==="skill_activation").map(d=>{const f=d.metadata?.origin;return{id:d.id,anchorTurnId:d.metadata?.["kimiWeb.anchorTurnId"],promptFloor:d.metadata?.["kimiWeb.anchorPromptCreatedAt"],skillName:f?.skillName,skillArgs:f?.skillArgs}}),t.channel.snapshot.items,Ln().peekRuntime(e)?.consumedSkillEchoIds),c=o.filter(d=>{const f=d.metadata?.["kimiWeb.promptId"];if(f!==void 0){if(la(d.metadata).length>0)return!OM(d,t.channel.snapshot);if(d.metadata?.["kimiWeb.steered"]===!0&&Z2(t.channel.snapshot,f))return!1;const k=t.channel.snapshot.prompts.find(w=>w.promptId===f);if(k!==void 0)return k.status==="queued"||d.metadata?.["kimiWeb.steered"]===!0}const h=d.metadata?.origin;if(h?.kind==="skill_activation"){if(d.metadata?.["kimiWeb.uncertain"]===!0)return!l.has(d.id);const k=d.metadata?.["kimiWeb.anchorTurnId"];return!Die(t.channel.snapshot.items,k,h.skillName,h.skillArgs)}if(d.metadata?.["kimiWeb.uncertain"]===!0)return la(d.metadata).length>0?!a.has(d.id):!r.has(d.id);const m=d.metadata?.["kimiWeb.anchorTurnId"],g=m===void 0?-1:s.findIndex(k=>k.kind==="turn"&&k.turnId===m);if(m!==void 0&&g===-1)return!0;const y=s.slice(g+1),v=d.content.filter(k=>k.type==="text").map(k=>"text"in k?k.text:"").join("");return!y.some(k=>k.kind==="turn"&&((k.prompt??"")===v||v===""&&(k.attachmentIds?.length??0)>0))});if(c.length===0)return n;const u=n.filter(d=>d.role!=="compaction").length+1;return[...n,...c.flatMap((d,f)=>wC([d],[],tL,!1,{},{},{startNo:u+f,getSessionMediaUrl:nL}))]}),_ue=R(()=>EO.value||tA.value||xue.value);Fe([()=>Ze.activeSessionId,_ue],([e,t])=>{e!==void 0&&t?Zst(e):Gst()});{const e=Vi;Fe(()=>Ze.activeSessionId,(n,i)=>{Er.activate(n),i!==void 0&&i!==n&&e.deactivate(i),n&&e.activate(n)},{immediate:!0}),Fe(()=>[Ze.activeSessionId,...[...e.pool.subscribedSessions].flatMap(n=>[e.pool.getEntry(n)?.version.value??-1,...(Wi.sideChatTargetBySession.value[n]??[]).map(i=>Vd.getEntry(n,i.agentId)?.version.value??-1),Vd.desiredAgentBySession.get(n),Vd.getEntry(n,Vd.desiredAgentBySession.get(n)??"")?.version.value??-1])],()=>{for(const n of e.pool.subscribedSessions){const i=e.pool.getEntry(n);if(i===void 0||!i.baselineLoaded)continue;const o=i.channel.snapshot.meta;let s=!1;const r=o.modes?.plan!==void 0;Ze.pendingPlanBySession[n]===void 0&&(Ze.planModeBySession[n]??!1)!==r&&(Ze.planModeBySession={...Ze.planModeBySession,[n]:r},s=!0);const a=o.modes?.swarm!==void 0;Ze.pendingSwarmBySession[n]===void 0&&(Ze.swarmModeBySession[n]??!1)!==a&&(Ze.swarmModeBySession={...Ze.swarmModeBySession,[n]:a},s=!0);const l=o.modes?.tower!==void 0;Ze.pendingTowerBySession[n]===void 0&&(Ze.towerModeBySession[n]??!1)!==l&&(Ze.towerModeBySession={...Ze.towerModeBySession,[n]:l},Gt().saveTowerModeToStorage(),s=!0);const c=o.agent?.model;if(c!==void 0){const E=Ze.sessions.find(L=>L.id===n);E!==void 0&&E.model!==c&&(Ze.sessions=Ze.sessions.map(L=>L.id===n?{...L,model:c}:L),s=!0)}const u=o.agent?.contextTokens,d=o.agent?.maxContextTokens;if(u!==void 0||d!==void 0){const E=Ze.sessions.find(L=>L.id===n);if(E!==void 0){const L=u??E.usage.contextTokens,P=d??E.usage.contextLimit;(E.usage.contextTokens!==L||E.usage.contextLimit!==P)&&(Ze.sessions=Ze.sessions.map(N=>N.id===n?{...N,usage:{...N.usage,contextTokens:L,contextLimit:P}}:N))}}const f=o.agent?.thinkingEffort;f!==void 0&&(Ze.pendingThinkingBySession[n]===void 0&&Ze.thinkingBySession[n]!==f&&(s=!0),CR(Ze,n,f));let h=!1;const m=G1(o.agent?.permission);if(m!==void 0){const E=Cn().modes[n];Cn().foldDaemonMode(n,m);const L=Cn().modes[n]!==E;L&&(s=!0);const P=Ln().runtimeFor(n),N=P.lastMetaPermission;h=N===void 0?L||!Cn().mirrorConfirmedFor(n):N!==m,P.lastMetaPermission=m}s&&(krt(n),!h&&(Ln().peekRuntime(n)?.statusInFlight.size??0)>0&&Ia(n)),h&&Ia(n).then(E=>{E||yb(n,{},1)});const g=i.channel.snapshot;if(g.hasMoreOlder===!0&&!i.channel.loadingOlder){const E=YOe(g),L=wue(n);if(g.tasks.some(N=>N.kind==="subagent"&&N.agentId!==void 0&&N.state==="running"&&!L.parents.has(N.agentId)&&!E.has(N.agentId))){const N=Ln().peekRuntime(n)?.loadOlderFailedAt??0;Date.now()-N>3e4&&i.channel.loadOlder().catch(()=>{const U=Ln().peekRuntime(n);U!==void 0&&(U.loadOlderFailedAt=Date.now()),setTimeout(()=>{const F=e.pool.getEntry(n);F!==void 0&&(F.version.value+=1)},3e4)})}}const y=o.goal,v=n===Ze.activeSessionId?Er.options(n):Er.offscreenOptions(n);Wa().foldMetaGoal(n,y,v);const k=[],w=[],C={};for(const E of i.channel.snapshot.interactions){const L=xy(E,n,i.channel.agentId);L!==void 0&&k.push(L);const P=Sy(E,n,i.channel.agentId);P!==void 0&&w.push(P);const N=E.request,U=N?.display,F=typeof E.toolCallId=="string"?E.toolCallId:typeof N?.toolCallId=="string"?N.toolCallId:void 0;F!==void 0&&U?.kind==="plan_review"&&typeof U.plan=="string"&&U.plan.length>0&&(C[F]={plan:U.plan,path:typeof U.path=="string"?U.path:void 0})}const x=new Set;for(const E of Wi.sideChatTargetBySession.value[n]??[])x.add(E.agentId);const S=Vd.desiredAgentBySession.get(n);S!==void 0&&x.add(S);const M=[...x].map(E=>Vd.getEntry(n,E)).filter(E=>E?.baselineLoaded===!0);for(const E of M){const L=`${n}:${E.channel.agentId}`;let P=i7.get(L);if(P===void 0)P=new Set(E.channel.snapshot.interactions.map(F=>F.interactionId)),i7.set(L,P);else{for(const F of E.channel.snapshot.interactions){if(F.state!=="pending"||P.has(F.interactionId))continue;P.add(F.interactionId);const B=xy(F,n,E.channel.agentId);B!==void 0&&B_(n,B);const W=Sy(F,n,E.channel.agentId);W!==void 0&&N_(n,W)}for(const F of[...P])E.channel.snapshot.interactions.some(B=>B.interactionId===F)||P.delete(F)}const N=new Set(k.map(F=>F.approvalId)),U=new Set(w.map(F=>F.questionId));for(const F of E.channel.snapshot.interactions){const B=xy(F,n,E.channel.agentId);if(B!==void 0&&!N.has(B.approvalId)){const D=(Ze.approvalsBySession[n]??[]).find(z=>z.approvalId===B.approvalId);k.push(D??B)}const W=Sy(F,n,E.channel.agentId);if(W!==void 0&&!U.has(W.questionId)){const D=(Ze.questionsBySession[n]??[]).find(z=>z.questionId===W.questionId);w.push(D??W)}}}const _=new Set(i.channel.snapshot.interactions.map(E=>E.interactionId)),T=new Set(M.flatMap(E=>E.channel.snapshot.interactions.filter(L=>L.state!=="pending").map(L=>L.interactionId)));for(const E of Ze.approvalsBySession[n]??[])_.has(E.approvalId)||T.has(E.approvalId)||k.some(L=>L.approvalId===E.approvalId)||k.push(E);for(const E of Ze.questionsBySession[n]??[])_.has(E.questionId)||T.has(E.questionId)||w.some(L=>L.questionId===E.questionId)||w.push(E);er().setSessionApprovals(n,k),er().setSessionQuestions(n,w),n===Ze.activeSessionId&&Kr().applyPlanReviewDiff(C)}},{immediate:!0});const t=(n,i,o)=>{let s=!1;for(const r of i.interactions){if(r.state==="pending"||o.has(r.interactionId)||r.request?.toolName!=="ExitPlanMode")continue;o.add(r.interactionId),s=!0;const a=r.request,l=typeof r.toolCallId=="string"?r.toolCallId:typeof a?.toolCallId=="string"?a.toolCallId:void 0,c=r.state;if(l!==void 0&&(c==="approved"||c==="rejected"||c==="cancelled")){const u=r.response;Kr().settlePlanReviewLocally(n,l,{state:c,selectedOption:typeof u?.selectedOption=="string"?u.selectedOption:void 0,feedback:typeof u?.feedback=="string"?u.feedback:void 0})}}return s};Fe(()=>[...e.pool.subscribedSessions].map(n=>e.pool.getEntry(n)?.version.value??-1),()=>{Ln().dropEdgeStateOutsidePool(e.pool.subscribedSessions);for(const n of e.pool.subscribedSessions){const i=e.pool.getEntry(n);if(i===void 0||!i.baselineLoaded)continue;const o=i.channel.snapshot,s=o.items.filter(_=>_.kind==="turn"),r=o.interactions.filter(_=>_.state==="pending"),a=new Map(o.prompts.map(_=>[_.promptId,_.status])),l=Ln().runtimeFor(n),c=l.edgePrev,u=s.at(-1),d=u?.kind==="turn"?u.turnId:void 0,f=u?.kind==="turn"?u.state:void 0;T1().observeTurn(n,d,f==="running"),l.edgePrev={activity:o.meta.activity,lastTurnId:d,lastTurnState:f,maxTurnOrdinal:s.reduce((_,T)=>T.kind==="turn"?Math.max(_,T.ordinal):_,-1),firstItemId:o.items[0]===void 0?void 0:ew(o.items[0]),seenPendingInteractionIds:new Set(r.map(_=>_.interactionId)),settledPlanInteractionIds:c?.settledPlanInteractionIds??new Set,seenNoticeIds:new Set(o.items.filter(_=>_.kind==="marker"&&_.marker==="notice").map(_=>_.kind==="marker"?_.markerId:"")),promptStatusById:a};const h=r.some(_=>!c?.seenPendingInteractionIds.has(_.interactionId));if(r.length>0&&h){const _=o.items.findLast(E=>E.kind==="turn"&&E.state==="running"),T=_?.kind==="turn"?_.steps.findLast(E=>E.state==="running"):void 0;if(T!==void 0){const E=new Map(l.pendingInteractionAt.value);E.set(T.stepId,Q$e(o)??new Date().toISOString()),l.pendingInteractionAt.value=E}}if(c===void 0){if(u?.kind==="turn"&&u.state!=="running"&&!It().localTurnStartState(n).pending&&It().promptIdBySession[n]===void 0&&It().inFlightBySession[n]!==!0&&(l.settledTurnEnd=u.turnId),i.recoveredViaEmptyReset){i.recoveredViaEmptyReset=!1;for(const T of r){h0(n);const E=xy(T,n);E!==void 0&&B_(n,E);const L=Sy(T,n);L!==void 0&&N_(n,L)}if(n!==Ze.activeSessionId)for(const T of o.items){if(T.kind!=="marker"||T.marker!=="notice")continue;const E=T.payload;E?.level==="error"&&(oi().pushWarning(AM(E.event??E,Un)),oi().markSessionWarningShown(n,`${typeof E.event?.code=="string"?E.event.code:""} ${typeof E.message=="string"?E.message:""}`))}}const _=Rk(n,o);if(o.meta.activity!=="turn"&&!o.prompts.some(T=>T.status==="running"||T.status==="queued")&&_.settle&&Zi.finishPromptLocal(n,{skipDrain:!_.drain}),t(n,o,l.edgePrev.settledPlanInteractionIds)){const T=n===Ze.activeSessionId?Er.options(n):Er.offscreenOptions(n);Kr().refreshSessionPlans(n,T)}continue}let m=!1;const g=s.reduce((_,T)=>T.kind==="turn"?Math.max(_,T.ordinal):_,-1),v=c.lastTurnId!==void 0&&c.lastTurnId!==d&&!s.some(_=>_.kind==="turn"&&_.turnId===c.lastTurnId)&&gT.kind==="turn"&&T.turnId===c.lastTurnId);_?.kind==="turn"&&c.lastTurnState==="running"&&_.state!=="running"&&k.push(_);for(const T of s)T.kind==="turn"&&T.ordinal>c.maxTurnOrdinal&&T.state!=="running"&&k.push(T)}!v&&s.some(_=>_.kind==="turn"&&_.state==="running"&&_.ordinal>c.maxTurnOrdinal)&&h0(n);const w=c.activity==="turn"&&o.meta.activity!=="turn";if(k.length>0||w){const _=k.filter(T=>l.settledTurnEnd!==T.turnId);for(const[T,E]of _.entries()){const L=E.state==="cancelled"||E.state==="failed",P=T===_.length-1,N=P?Rk(n,o):{settle:!1,drain:!1};P&&!N.settle||(l.settledTurnEnd=E.turnId,cL(n,L?"aborted":"idle",!0,{drain:P&&N.drain,settleLocal:N.settle,firstTurn:E.ordinal===1,ratingTurnId:E.turnId}),h0(n))}k.length>0&&r.length===0&&(l.pendingInteractionAt.value=void 0)}if(u?.kind==="turn"&&(w||u.state!=="running")&&l.settledTurnEnd!==u.turnId){const _=u.state==="cancelled"||u.state==="failed",T=Rk(n,o);T.settle&&(l.settledTurnEnd=u.turnId,cL(n,_?"aborted":"idle",!0,{drain:T.drain,settleLocal:T.settle,firstTurn:u.ordinal===1,ratingTurnId:u.turnId}),h0(n))}for(const _ of r){if(c.seenPendingInteractionIds.has(_.interactionId))continue;h0(n);const T=xy(_,n);T!==void 0&&B_(n,T);const E=Sy(_,n);E!==void 0&&N_(n,E)}{const _=c.firstItemId===void 0?0:o.items.findIndex(E=>ew(E)===c.firstItemId),T=_>0?o.items.slice(_):o.items;for(const E of T){if(E.kind!=="marker"||E.marker!=="notice"||c.seenNoticeIds.has(E.markerId))continue;const L=E.payload,P=`${typeof L?.event?.code=="string"?L.event.code:""} ${typeof L?.message=="string"?L.message:""}`;if(L?.level==="error"){if(oi().markSessionWarningShown(n,P),n===Ze.activeSessionId)continue;oi().pushWarning(AM(L?.event??L??{},Un));continue}L?.level!=="warning"&&L?.level!=="info"||(oi().pushWarning({severity:L.level,title:Un("warnings.noteLabel"),message:typeof L.message=="string"?L.message:void 0}),oi().markSessionWarningShown(n,P))}}for(const _ of c.seenPendingInteractionIds){if(r.some(E=>E.interactionId===_))continue;const T=o.interactions.find(E=>E.interactionId===_);if(T!==void 0&&T.request?.toolName==="ExitPlanMode"){c.settledPlanInteractionIds.add(_),m=!0;const E=T.request,L=typeof T.toolCallId=="string"?T.toolCallId:typeof E?.toolCallId=="string"?E.toolCallId:void 0,P=T.state;if(L!==void 0&&(P==="approved"||P==="rejected"||P==="cancelled")){const N=T.response;Kr().settlePlanReviewLocally(n,L,{state:P,selectedOption:typeof N?.selectedOption=="string"?N.selectedOption:void 0,feedback:typeof N?.feedback=="string"?N.feedback:void 0})}}}if(t(n,o,c.settledPlanInteractionIds)&&(m=!0),m){const _=n===Ze.activeSessionId?Er.options(n):Er.offscreenOptions(n);Kr().refreshSessionPlans(n,_)}for(const _ of o.prompts){if(_.status==="running"||_.status==="queued")continue;const T=c.promptStatusById.get(_.promptId);(_.status==="blocked"||_.status==="aborted")&&T!==_.status&&d===c.lastTurnId&&(h0(n),It().promptIdBySession[n]===_.promptId&&(It().preserveTerminalBundledBubble(n,_.promptId,o),Zi.finishPromptLocal(n)))}It().retireSettledBundledEchoes(n,o);const C=It().optimisticMessagesBySession[n];if(C!==void 0&&C.some(_=>_.metadata?.["kimiWeb.steered"]===!0)){const _=C.filter(T=>{if(T.metadata?.["kimiWeb.steered"]!==!0)return!0;const E=T.metadata?.["kimiWeb.promptId"];return!Z2(o,E)});if(_.length!==C.length){const T=new Set(_.map(E=>E.id));for(const E of C)T.has(E.id)||Cn().settleSubmissionByBubble(E.id);It().setOptimisticMessages(n,_),o.meta.activity!=="turn"&&(_.some(L=>L.metadata?.["kimiWeb.uncertain"]===!0)||(It().queuedBySession[n]??[]).length>0&&queueMicrotask(()=>Zi.resumeQueueIfIdle(n)))}}const x=It().optimisticMessagesBySession[n];if(x!==void 0&&x.some(_=>_.metadata?.["kimiWeb.uncertain"]===!0)){const _=l.consumedEchoPromptIds;for(const B of[..._])o.prompts.some(W=>W.promptId===B)||_.delete(B);const T=HP(x.filter(B=>B.metadata?.["kimiWeb.uncertain"]===!0&&!(B.metadata?.["kimiWeb.steered"]===!0&&B.metadata?.["kimiWeb.promptId"]!==void 0)&&la(B.metadata).length===0&&B.metadata?.origin?.kind!=="skill_activation").map(B=>({id:B.id,text:B.content.filter(W=>W.type==="text").map(W=>"text"in W?W.text:"").join(""),floor:pm(o.items,B.metadata),skills:la(B.metadata)})),o.prompts,_),E=new Set([...T.entries()].filter(([B])=>{const W=x.find(D=>D.id===B);return W!==void 0&&W.metadata?.["kimiWeb.steered"]!==!0}).map(([,B])=>B));for(const B of E)_.add(B);const L=l.consumedBundledEchoIds;for(const B of L){const W=B.startsWith("turn:")?B.slice(5):void 0;o.items.some(z=>z.kind==="turn"&&W!==void 0&&z.turnId===W)||L.delete(B)}const P=jP(x.filter(B=>B.metadata?.["kimiWeb.uncertain"]===!0&&B.metadata?.["kimiWeb.promptId"]===void 0&&la(B.metadata).length>0).map(B=>({id:B.id,text:B.content.filter(W=>W.type==="text").map(W=>"text"in W?W.text:"").join(""),attachmentCount:B.content.filter(W=>W.type!=="text").length,floor:pm(o.items,B.metadata),skills:la(B.metadata)})),o,L);for(const B of P.values())L.add(B);const N=l.consumedSkillEchoIds;for(const B of[...N])o.items.some(D=>D.kind==="turn"&&D.turnId===B||D.kind==="marker"&&D.markerId===B)||N.delete(B);const U=WP(x.filter(B=>B.metadata?.["kimiWeb.uncertain"]===!0&&B.metadata?.origin?.kind==="skill_activation").map(B=>{const W=B.metadata?.origin;return{id:B.id,anchorTurnId:B.metadata?.["kimiWeb.anchorTurnId"],promptFloor:B.metadata?.["kimiWeb.anchorPromptCreatedAt"],skillName:W?.skillName,skillArgs:W?.skillArgs}}),o.items,N);for(const B of U.values())N.add(B);const F=x.filter(B=>{if(B.metadata?.["kimiWeb.uncertain"]!==!0)return!0;if(B.metadata?.["kimiWeb.promptId"]===void 0&&la(B.metadata).length>0)return!P.has(B.id);if(B.metadata?.["kimiWeb.steered"]===!0&&B.metadata?.["kimiWeb.promptId"]!==void 0){const D=B.metadata?.["kimiWeb.promptId"],z=o.prompts.find(te=>te.promptId===D);if(z===void 0||z.status==="queued")return!0;if(z.status==="blocked"||z.status==="aborted")return!1;const $=B.content.filter(te=>te.type==="text").map(te=>"text"in te?te.text:"").join(""),j=B.metadata?.["kimiWeb.anchorTurnId"],G=j===void 0?-1:o.items.findIndex(te=>te.kind==="turn"&&te.turnId===j),K=G===-1?o.items:o.items.slice(G+1);return!Z2(o,D)&&!K.some(te=>te.kind==="turn"&&((te.prompt??"")===$||$===""&&(te.attachmentIds?.length??0)>0))}return B.metadata?.origin?.kind==="skill_activation"?!U.has(B.id):!T.has(B.id)});if(F.length!==x.length){const B=new Set(F.map(W=>W.id));for(const W of x)B.has(W.id)||Cn().settleSubmissionByBubble(W.id);It().setOptimisticMessages(n,F),o.meta.activity!=="turn"&&(F.some(D=>D.metadata?.["kimiWeb.uncertain"]===!0)||(It().queuedBySession[n]??[]).length>0&&queueMicrotask(()=>Zi.resumeQueueIfIdle(n)))}}const M=o.prompts.find(_=>_.status==="running")??o.prompts.find(_=>_.status==="queued");M!==void 0&&It().abortPromptIdBySession[n]!==M.promptId?It().setAbortPromptId(n,M.promptId):M===void 0&&It().abortPromptIdBySession[n]!==void 0&&It().clearAbortPromptId(n)}Vi.trimResident()},{immediate:!0})}const Vrt=R(()=>{s9.taskClock.value;const e=Iv.value.map(Prt),t=Ze.activeSessionId;if(t){const n=Ln().runtimeFor(t);let i=n.subagentCardSerials;i||(i=new Map,n.subagentCardSerials=i);const o=e.filter(a=>a.kind==="subagent"&&a.runInBackground);for(const a of o){const l=a.agentId??a.id;if(a.agentId!==void 0&&a.backgroundTaskId!==void 0&&!i.has(l)){const c=i.get(a.backgroundTaskId);c!==void 0&&(i.delete(a.backgroundTaskId),i.set(l,c))}}const s=o.filter(a=>!i.has(a.agentId??a.id)).sort((a,l)=>(a.createdAt??"").localeCompare(l.createdAt??""));let r=i.size===0?0:Math.max(...i.values())+1;for(const a of s)i.set(a.agentId??a.id,r++);for(const a of o)a.swarmIndex=i.get(a.agentId??a.id)}return e}),Iue=R(()=>HOe(Iv.value)),Urt=R(()=>WOe(Iv.value)),Pg=R(()=>{const e=Ze.activeSessionId;return e?Ze.goalBySession[e]??null:null}),Krt=R(()=>{if(!Ze.activeSessionId)return[];const t=pd();return t===null?[]:(t.channel.snapshot.todos.at(-1)?.items??[]).map(i=>({title:i.title,status:i.status}))}),Zrt=R(()=>{const e=Ze.activeSessionId;if(!e)return null;const t=pd();if(t!==null){const n=t.channel.snapshot.items.findLast(o=>o.kind==="marker"&&o.marker==="compaction"),i=n?.payload;return n===void 0||i?.phase!=="started"?null:{status:"running",trigger:i.trigger==="manual"?"manual":"auto"}}return Ze.compactionBySession[e]??null}),Tue=R(()=>Bi().connection),Grt=R(()=>Ze.loading),Qrt=R(()=>Ze.sessionLoading),Yrt=R(()=>pd()?.channel.loadingOlder??!1),Jrt=R(()=>Ze.activeSessionId?pd()?.channel.snapshot.hasMoreOlder===!0:!1),Xrt=R(()=>pd()?.channel.loadOlderError??!1),eat=R(()=>Ze.serverVersion),Mue=R(()=>Ze.webTitle),tat=R(()=>Ze.experimentalFlags),nat=R(()=>Ze.backend),iat=R(()=>Ze.dangerousBypassAuth);function oat(){Ze.dangerousBypassAuth=!1}const sat=R(()=>Cn().forActive()),rat=R(()=>Ze.thinking),Eue=R(()=>Gt().planMode),aat=R(()=>Gt().planArmed),lat=R(()=>Gt().swarmMode),cat=R(()=>Gt().towerMode),uat=R(()=>Gt().goalMode),dat=R(()=>{const e=Ze.activeSessionId,t=(e?Kr().plansBySession[e]:void 0)??{},n={},i=new Set;for(const s of Sue.value)for(const r of s.tools??[]){if(r.name!=="ExitPlanMode")continue;i.add(r.id);const a=t[r.id];if(a){n[r.id]=a;continue}const l=Ze.planReviewByToolCallId[r.id],c=fat(r.arg),u=l?.plan??c?.plan,d=r.planPath??l?.path;!u&&!d||(n[r.id]={agentId:"main",toolCallId:r.id,turnId:s.id,source:"interaction",plan:u??"",path:d,options:c?.options,review:Kr().settledPlanReviewByToolCallId[r.id]})}return{...Object.fromEntries(Object.entries(t).filter(([s])=>!i.has(s))),...n}});function fat(e){try{const t=JSON.parse(e);return{plan:typeof t.plan=="string"?t.plan:void 0,options:Array.isArray(t.options)?t.options:void 0}}catch{return}}const hat=R(()=>{const e=jOe(Iue.value);return{plan:Eue.value,goal:Pg.value&&Pg.value.status!=="complete"?{status:Pg.value.status,turnsUsed:Pg.value.turnsUsed,elapsedMs:Pg.value.wallClockMs}:null,swarm:e.total>0?e:null}}),pat=R(()=>{const e=Ze.activeSessionId;if(!e)return[];const t=tn();return(It().queuedBySession[e]??[]).map(n=>({id:n.id??n.text,text:n.text,attachmentCount:n.attachments?.length??0,attachments:n.attachments?.map(i=>UP(t,i)),editText:n.editText,snapshot:n.snapshot,kind:n.kind,instruction:n.instruction}))}),mat=R(()=>{const e=Ze.activeSessionId;return e?It().recentNonComposerPromptIds(e):[]}),gat=R(()=>Ze.warnings),vat=R(()=>{const e=Ze.activeSessionId;return e?(Ze.questionsBySession[e]??[]).map(Ert):[]}),yat=R(()=>{const e=Ze.activeSessionId;return e?(Ze.approvalsBySession[e]??[]).map(t=>({approvalId:t.approvalId,block:Rie(t),agentName:t.agentId!==void 0&&t.agentId!=="main"?t.agentId:void 0,toolCallId:t.toolCallId})):[]}),nA=R(()=>{const e=Ze.activeSessionId;return e?(Ze.approvalsBySession[e]??[]).length>0?"awaiting-approval":(Ze.questionsBySession[e]??[]).length>0?"awaiting-question":EO.value||tA.value||xue.value?"running":"idle":"idle"}),Ri=hst(Ze,{api:tn(),pushOperationFailure:oi().pushOperationFailure,refreshSessionStatus:Ia,persistSessionProfile:bb,whenSessionProfileSettled:aue,savePlanModeToStorage:()=>Gt().savePlanModeToStorage(),saveTowerModeToStorage:()=>Gt().saveTowerModeToStorage(),activity:nA,updateSession:vb,loadConfig:()=>ws().loadConfig(),checkAuth:()=>nr().checkAuth(),mapSendAuthFailure:RO,mainTranscriptTailTurnId:hue,mainTranscriptTailPromptCreatedAt:pue,settleIfFateProven:DO}),iL=R(()=>{const e=Ze.activeSessionId;if(!e)return null;const t=Ze.gitStatusBySession[e];return t?{branch:t.branch,ahead:t.ahead,behind:t.behind}:null}),bat=R(()=>{const e=Ze.activeSessionId;return e?Ze.gitStatusBySession[e]?.pullRequest??null:null}),kat=R(()=>{const e=Ze.activeSessionId;if(!e)return[];const t=Ze.gitStatusBySession[e];return t?Object.entries(t.entries).map(([n,i])=>({path:n,status:i})).sort((n,i)=>n.path.localeCompare(i.path)):[]}),wat=R(()=>{const e=Ze.activeSessionId;if(!e)return null;const t=Ze.gitStatusBySession[e];return t?{totalAdditions:t.additions,totalDeletions:t.deletions}:null}),Cat=R(()=>{const e=Ze.sessions.find(s=>s.id===Ze.activeSessionId),t=iL.value?.branch??(e?e.cwd.split("/").pop()??e.cwd:"main"),n=Go().resolveSendModel(e?.model,{includeDraft:e===void 0})??"—",i=Ri.models.value.find(s=>s.id===n)??Ri.models.value.find(s=>s.model===n);return{model:i?.displayName||i?.model||(n.includes("/")?n.split("/").pop():n),modelId:i?.id??n,ctxUsed:e?.usage.contextTokens??0,ctxMax:e?.usage.contextLimit??0,permission:Cn().forActive(),branch:t,cwd:e?.cwd??"",isGitRepo:iL.value!==null}}),Aat=R(()=>so().fileDiffLines),xat=R(()=>Ze.sessions.find(t=>t.id===Ze.activeSessionId)?.usage.totalCostUsd??0),Sat=R(()=>Go().modelsReady),_at=R(()=>Go().defaultModel),Iat=R(()=>Go().catalogProviders),Tat=R(()=>Go().catalogState),Mat=R(()=>nr().managedProviderStatus),Eat=R(()=>nr().managedUserInfo),Lat=R(()=>nr().managedMembership),Rat=R(()=>Ze.config);function LO(e,t){const n=Go(),i=n.resolveSendModel(e,t),o=i===null?void 0:n.models.find(s=>s.id===i||s.model===i);return{chatModel:i,chatModelManaged:o?.provider===O1}}function w1(){const e=Ze.activeSessionId?Ze.sessions.find(t=>t.id===Ze.activeSessionId):void 0;return{...LO(e?.model,{includeDraft:e===void 0}),modelsReady:Go().modelsReady,hasModels:Go().hasModels,signedIn:nr().signedIn,isFree:nr().isFree}}function Pat(){const e=Ze.activeSessionId;if(e==null)return!1;const t=Ze.sessions.find(n=>n.id===e);return t===void 0||t.model!==""?!1:Ze.sessionStatusSettledBySession[e]!==!0}const $at=R(()=>{const e=S0(w1());return e==="pick-model"&&Pat()?"ok":e}),Oat=600*1e3;let o7=0;async function o4(e){await Ri.setModel(e)&&e!==_at.value&&ws().updateConfig({defaultModel:e})}function Fat(e){const t=Ze.activeSessionId;if(t==null)return;const n=Ze.sessions.find(u=>u.id===t);if(n===void 0||n.lastPrompt===void 0||n.model===e)return;const i=Go(),o=i.models.find(u=>u.id===n.model),s=i.models.find(u=>u.id===e);if(o===void 0||s===void 0)return;const r=ws().config?.models,a=QN(r,n.model),l=QN(r,e);if(a===void 0||l===void 0)return;const c=bye(Oc().peek(),a,l);if(c!==void 0)return{rule:c,fromDisplay:o.displayName??o.model,toDisplay:s.displayName??s.model}}function Dat(e){if(e==null)return;const t=lo(su(e));t!==null?Eo(su(void 0),t):Do(su(void 0));const n=Ua(Ol(e));n!==null?ua(Ol(void 0),n):Do(Ol(void 0));const i=Ua(oh(e));i!==null?ua(oh(void 0),i):Do(oh(void 0)),Qte(Fl(void 0))}async function Nat(e,t,n,i){const o=()=>i!==o7||Ze.activeSessionId!==n;switch(e){case"cancel":return;case"continue":if(o())return;await o4(t);return;case"new":if(o())return;Dat(n),bn().clearActiveSession(),await o4(t);return;case"compact":{if(n==null){if(o())return;await o4(t);return}const s=n;if(o())return;if(k0.compact(void 0,Oc().hasCompactionWait(s)?void 0:{onRequestRejected:()=>Oc().noteCompactionSettled(s,"request-failed")})===void 0){oi().pushOperationFailure("compact",new Error("compact request was not sent"),{sessionId:s});return}const a=await Oc().waitCompactionSettled(s,Oat);try{if(a==="request-failed"||i!==o7)return;if(a==="completed"){if(Ze.activeSessionId!==s){oi().pushOperationFailure("modelSwitch",new Error("session changed while compacting"),{sessionId:s,message:Un("model.switchCompactAborted")});return}await o4(t);return}oi().pushOperationFailure("modelSwitch",new Error(`compaction ${a}`),{sessionId:s,message:Un("model.switchCompactAborted")})}finally{Zi.resumeAfterCompaction(s)}}}}async function Bat(e){o7+=1;const t=o7,n=Fat(e);if(n===void 0){await o4(e);return}const i=Ze.activeSessionId,o=await Oc().requestConfirm({fromModel:n.fromDisplay,toModel:n.toDisplay,hint:kye(n.rule,pR())});await Nat(o,e,i,t)}let mg=null;function Lue(){const e=Ze.activeSessionId;if(mg!==null&&mg.sid===e)return mg.promise;const t=zat();return mg={sid:e,promise:t},t.finally(()=>{mg?.promise===t&&(mg=null)})}async function zat(){const e=Ze.activeSessionId;if(e!=null){await Ln().peekRuntime(e)?.sessionStatusFlight?.catch(()=>!1);const a=Ze.sessions.find(l=>l.id===e);a!==void 0&&a.model===""&&Ze.sessionStatusSettledBySession[e]!==!0&&await Ia(e).catch(()=>!1)}const t=w1();if(t.chatModel!==null){t.chatModelManaged&&t.signedIn&&nr().managedMembership!=="member"&&await nr().probeMembership();const a=S0(w1());if(a==="ok"||a==="upgrade")return a}const[n,i,o]=await Promise.all([nr().checkAuth(),Ri.loadModels(),ws().loadConfig()]);if(n==="retry"||i===!1||o==="failed")return"ok";if(n==="server-auth-required")return"server-auth-required";let s=S0(w1());return s!=="upgrade"&&s!=="configure-model"||(await nr().probeMembership(),s=S0(w1()),s!=="configure-model")?s:(await Ri.refreshOAuthProviderModels()).ok?S0(w1()):"configure-model"}async function Hat(e){let t;if(e===Ze.activeSessionId)t=await Lue();else{const[n,i,o]=await Promise.all([nr().checkAuth(),Ri.loadModels(),ws().loadConfig()]);if(n==="retry"||i===!1||o==="failed")return"ok";if(n==="server-auth-required")return"server-auth-required";const s=w1();Object.assign(s,LO(Ze.sessions.find(r=>r.id===e)?.model)),t=S0(s)}return t!=="ok"&&t!=="server-auth-required"&&(oL+=1,iA.value={verdict:t,sessionId:e}),t}const iA=Z(null);let oL=0;function jat(){iA.value=null}async function RO(e,t){const n=mPe(e,{hasModels:Go().hasModels});if(n===null)return null;const i=++oL;let o=n;if(Ti(e)&&e.code===OP){const s=await Ri.loadModels(),r=await ws().loadConfig()!=="failed",a=await nr().checkAuth();if(s&&!Go().hasModels)o="configure-model";else if(s&&r&&a==="proceed"){const l=w1();t!==void 0&&t!==Ze.activeSessionId&&Object.assign(l,LO(Ze.sessions.find(c=>c.id===t)?.model)),o=S0(l)}}return i===oL&&(iA.value=t===void 0?{verdict:o}:{verdict:o,sessionId:t}),o}const Wat=R(()=>{const e=Ze.activeSessionId;if(!e)return{};const t=Ze.gitStatusBySession[e];return t?{...t.entries}:{}}),sL=R(()=>bn().workspacesView),wb=R(()=>bn().activeWorkspaceId),Rue=R(()=>bn().visibleWorkspace),qat=R(()=>{const e=bn(),t=e.activeWorkspaceId;if(!(!t||!Object.prototype.hasOwnProperty.call(e.trustByWorkspaceId,t)))return e.trustByWorkspaceId[t]}),Vat=R(()=>bn().workspaceSortMode);function rL(e){return bn().workspaceIdForSession(e)}function Uat(e){bn().setWorkspaceSortMode(e)}function Kat(e){bn().reorderWorkspaces(e)}Fe(()=>Ze.config,e=>{e!==null&&Cn().setDaemonDefault(G1(e.defaultPermissionMode))},{immediate:!0});Fe(()=>[bn().mergedWorkspaces.map(e=>e.id).join("\0"),Ze.loading],([e,t])=>{if(t)return;const n=e?e.split("\0"):[];bn().reconcileOrder(n)});function Zat(e){Et().pinSession(e)}function Gat(e){Et().unpinSession(e)}function Qat(e){Et().unpinSessions(e)}function Yat(e){Et().togglePinSession(e)}function Pue(e){R4.activate(e??void 0),e&&(Object.prototype.hasOwnProperty.call(Ri.skillsByWorkspace.value,e)||Ri.loadSkillsForWorkspace(e,R4.options(e)),bn().ensureWorkspaceTrust(e,R4.options(e)))}Fe(wb,Pue,{immediate:!0});const Jat=Kot({webTitle:Mue,activeWorkspaceRoot:()=>Rue.value?.root??null}),PO=R(()=>Yo().sessionsForView),oA=R(()=>Yo().flatSessionsAll),Xat=R(()=>Yo().workspaceGroups),aL=R(()=>Yo().pendingBySession),$ue=R(()=>Yo().unreadBySession);function elt(e,t=6){return Yo().recentSessionsForWorkspace(e,t,Ze.doneSessions)}const lL=Z(M1);function tlt(e){return z3({busy:e.busy,unread:$ue.value[e.id]??!1,questionCount:aL.value[e.id]?.questions??0,approvalCount:aL.value[e.id]?.approvals??0,pendingInteraction:e.pendingInteraction,lastTurnReason:e.lastTurnReason})!=="idle"}const $O=R(()=>{const e=oA.value;let t=lL.value;for(let n=e.length-1;n>=t;n--)if(tlt(e[n])){t=n+1;break}return t}),nlt=R(()=>oA.value.slice(0,$O.value)),ilt=R(()=>Ze.flatSessionsHasMore||$O.valueoA.value.length&&Ze.flatSessionsHasMore&&An().loadMoreFlatSessions()}const s7=Z(M1),OO=R(()=>{Yo().sessionTimeClock;const e=new Set(sL.value.map(n=>n.id)),t=new Map(sL.value.map(n=>[n.id,n.name]));return Ze.doneSessions.filter(n=>e.has(rL(n))).map(n=>{const i=rL(n),o=Ze.sessions.find(r=>r.id===n.id),s=o!==void 0&&new Date(o.updatedAt).getTime()>new Date(n.updatedAt).getTime()?o.updatedAt:n.updatedAt;return{id:n.id,title:n.title,time:v0(s),busy:o?.busy??n.busy,pendingInteraction:o?.pendingInteraction??n.pendingInteraction,lastTurnReason:o?.lastTurnReason??n.lastTurnReason,lastPrompt:n.lastPrompt,updatedAt:s,workspaceId:i,workspaceName:t.get(i),archived:!0,cwdLabel:n.cwd?id(n.cwd):"-",pullRequest:n.pullRequest}}).sort((n,i)=>new Date(i.updatedAt).getTime()-new Date(n.updatedAt).getTime())}),slt=R(()=>OO.value.slice(0,s7.value)),rlt=R(()=>Ze.doneSessionsHasMore||s7.valueOO.value.length&&Ze.doneSessionsHasMore&&An().loadMoreDoneSessions()}const llt=R(()=>{const e=Ze.activeSessionId;return e?Ze.sessions.find(t=>t.id===e)?.archived===!0:!1}),clt=R(()=>Ze.availableOpenInApps),ult=e=>{const t=Vi.pool.getEntry(e);if(t===void 0)return null;const n=t.channel.snapshot.items.findLast(i=>i.kind==="turn"&&i.origin.kind==="user");return n?.kind==="turn"?n.prompt??null:null},dlt=async e=>{const t=Vi.pool.getEntry(e);t!==void 0&&(await t.channel.settleOlder().catch(()=>{}),await Vi.pool.refreshSession(e).catch(()=>{}),await Vi.pool.refreshSession(e))},zc=Yst({taskPoller:s9,modelProvider:Ri,hasLoadedMessages:gue,whenMainTranscriptBaseline:Mrt,prefetchMainTranscript:e=>Vi.pool.prefetch(e),refreshSessionStatus:Ia,markSessionStatusSettled:eL,subscribeSessionEvents:yue,noteSessionWatermark:(e,t)=>Bi().noteSessionWatermark(e,t),appendSession:crt,setActiveSessionId:bm,writeSessionUrl:(e,t)=>dp.writeSessionUrl(e,t),setMainView:e=>{Ze.mainView=e},setSessionLoading:e=>{Ze.sessionLoading=e}}),dp=Hst(Ze,{selectSession:zc.selectSession,fetchSessionIntoList:zc.fetchSessionIntoList,setActiveSessionId:bm}),Zi=trt(Ze,{sideChat:Wi,modelProvider:Ri,activity:nA,nextOptimisticMsgId:mue,mainTranscriptTailTurnId:hue,mainTranscriptTailPromptCreatedAt:pue,refreshSessionStatus:Ia,persistSessionProfile:bb,whenSessionProfileSettled:aue,settleIfFateProven:DO,mapSendAuthFailure:RO,getEventConn:ef,isTranscriptBusy:Aue,isMainWaitForWaiting:vrt,selectSession:zc.selectSession,upsertSessionSorted:oue}),k0=Jst({lastMainUserPromptText:ult,updateSession:vb,refreshMainTranscript:dlt,selectSession:zc.selectSession,upsertSessionSorted:oue,promptBacklog:Zi.promptBacklog,isCompactionRunning:e=>Ze.compactionBySession[e]!==void 0||It().isCompactFlushHeld(e)||It().isCompactionActive(e),flushQueue:Zi.flushQueueHead}),s4=Wst(Ze,{connectEventsIfNeeded:_v,refreshSessionStatus:Ia,modelProvider:Ri,bindSessionRoute:dp.bindSessionRoute,writeSessionUrl:dp.writeSessionUrl,unpinSessions:Qat,setActiveSessionId:bm,sessionSelection:zc,resumeObservationReads:()=>{const e=Ze.activeSessionId;Er.activate(e)&&e!==void 0&&zc.refreshSessionSidecars(e,{skipStatus:Ze.sessionStatusSettledBySession[e]===!0}),Pue(wb.value)}}),{confirm:FO}=wh();wFe({persistSessionProfile:bb,confirmSwarmEnable:()=>FO({title:Un("workspace.swarmEnableTitle"),message:Un("workspace.swarmEnableConfirm"),variant:"primary"})});DFe({pushOperationFailure:oi().pushOperationFailure,confirmGoalStart:e=>FO({title:Un("workspace.goalStartTitle"),message:Un("workspace.goalStartConfirm",{objective:e}),variant:"primary"}),createDraftSession:Zi.createDraftSession,sendPrompt:Zi.sendPrompt,submitPromptInternal:Zi.submitPromptInternal,flushQueueHead:Zi.flushQueueHead});kPe({persistSessionProfile:bb});_Fe({pushOperationFailure:oi().pushOperationFailure});CPe({pushOperationFailure:oi().pushOperationFailure});oFe({pushOperationFailure:oi().pushOperationFailure});art({pushOperationFailure:oi().pushOperationFailure,resolveTaskRestId:(e,t)=>Iv.value.find(n=>n.id===t)?.backgroundTaskId});Bst({reload:()=>s4.load()});RFe({selectSession:(e,t)=>zc.selectSession(e,t),writeSessionUrl:(e,t)=>dp.writeSessionUrl(e,t),setMainView:e=>{Ze.mainView=e},setSessionLoading:e=>{Ze.sessionLoading=e},setActiveSessionId:bm});jFe({pushOperationFailure:oi().pushOperationFailure,onSessionsArchivedLocally:async e=>{const t=new Set(e);for(const n of e)HK(n);if(Ze.activeSessionId!==void 0&&t.has(Ze.activeSessionId)){const n=Ze.sessions[0];n?await zc.selectSession(n.id,{urlMode:"replace",skipTrack:!0}):(bm(void 0),dp.writeSessionUrl(void 0,"replace"))}},onSessionDeletedLocally:async e=>{if(CC(e,""),HK(e),Fo.dropSession(e),pv(e),rPe(e),!(Ze.activeSessionId===e))return;const n=Ze.sessions[0];n?await zc.selectSession(n.id,{urlMode:"replace",skipTrack:!0}):(bm(void 0),dp.writeSessionUrl(void 0,"replace"),Ze.sessionLoading=!1)},notify:oi().pushWarning});const Fo=bst({pushOperationFailure:oi().pushOperationFailure,applySessionsArchivedLocally:An().applySessionsArchivedLocally});Fe(()=>Ze.mainView,e=>{e==="sessionAdmin"&&Fo.ensureSeeded()});async function flt(e,t){const n=Ze.activeSessionId;if(!n){const o=bn().activeWorkspaceId;if(!o)return;await Zi.startSessionAndSendPrompt(o,Zi.createPromptEnvelope({text:e}));return}if((nA.value!=="idle"||It().inFlightBySession[n]===!0)&&(Ze.towerModeBySession?.[n]??!1)){await Zi.steerPrompt(Zi.createPromptEnvelope({text:e}));return}await Zi.sendPrompt(Zi.createPromptEnvelope({text:e}),t)}const fr=Z(null);let km=0;function hlt(e){fr.value={...e,key:++km}}function plt(e){e!==void 0&&fr.value?.key===e&&(fr.value=null)}async function mlt(e){await An().archiveSession(e),!PO.value.some(t=>t.id===e)&&(pv(e),fr.value={kind:"archive",id:e,key:++km})}async function glt(e){const t=Ze.sessions.find(o=>o.id===e)?.title??An().doneSessions.find(o=>o.id===e)?.title??e;let n=!1;!await FO({title:Un("sidebar.deleteConfirmTitle"),message:Un("sidebar.deleteConfirmMessage",{title:t}),confirmLabel:Un("sidebar.deleteConfirmButton"),cancelLabel:Un("common.cancel"),variant:"danger",action:async()=>{n=await An().deleteSession(e)}})||!n||(fr.value={kind:"delete",key:++km})}async function vlt(e){await An().restoreSession(e)&&(fr.value={kind:"archive",id:e,reopen:!0,key:++km})}let D_=!1;async function ylt(e){if(D_)return;D_=!0;const t=++km,n=setTimeout(()=>{(fr.value===null||fr.value.key<=t)&&(fr.value={kind:"export",state:"running",key:t})},400);try{await k0.exportSession(e)&&!lv?(fr.value===null||fr.value.key<=t)&&(fr.value={kind:"export",state:"done",key:++km}):fr.value?.kind==="export"&&fr.value.key===t&&(fr.value=null)}finally{clearTimeout(n),D_=!1}}async function blt(){const e=fr.value;if(!(!e||e.kind!=="archive")){if(e.reopen){if(await An().archiveSession(e.id),PO.value.some(t=>t.id===e.id)||(pv(e.id),fr.value?.key!==e.key))return;fr.value={kind:"archive",id:e.id,key:++km};return}await An().restoreSession(e.id)&&fr.value?.key===e.key&&(fr.value=null)}}function r7(e){return e===Ze.activeSessionId&&typeof document<"u"&&document.visibilityState==="visible"&&document.hasFocus()}function klt(e){Ln().turnActiveBySession[e]&&delete Ln().turnActiveBySession[e],It().inFlightBySession[e]&&It().setInFlight(e,!1)}function ZK(e,t,n){const i=e.metadata?.origin;if(i?.kind==="skill_activation"){const u=e.metadata?.["kimiWeb.anchorTurnId"];return Die(t.items,u,i.skillName,i.skillArgs,{terminalOnly:!0})||J$e(t.items,u,i.skillName,i.skillArgs,e.metadata?.["kimiWeb.anchorPromptCreatedAt"])}const o=e.content.filter(u=>u.type==="text").map(u=>"text"in u?u.text:"").join(""),s=e.metadata?.["kimiWeb.anchorTurnId"],r=s===void 0?-1:t.items.findIndex(u=>u.kind==="turn"&&u.turnId===s);if(s!==void 0&&r===-1)return!1;const a=la(e.metadata);if(t.items.slice(r+1).some(u=>u.kind==="turn"&&u.state!=="running"&&(n===void 0||u.triggerPromptId===void 0||u.triggerPromptId===n)&&((u.prompt??"")===o||o===""&&(u.attachmentIds?.length??0)>0)&&P4(sd(u.origin.payload),a)))return!0;if(a.length>0||n!==void 0)return!1;const c=pm(t.items,e.metadata);return t.prompts.some(u=>u.status!=="queued"&&u.status!=="running"&&(c===void 0||(c.exclusive?u.createdAt>c.at:u.createdAt>=c.at))&&Fie(u.content)===o)}function Rk(e,t){const n=It().optimisticMessagesBySession[e]??[],i=n.findLast(f=>f.metadata?.["kimiWeb.uncertain"]!==!0);let o;const s=It().promptIdBySession[e],r=s===void 0?void 0:t.prompts.find(f=>f.promptId===s);if(It().localTurnStartState(e).pending)o=!1;else if(s!==void 0){const f=Ze.sessions.find(k=>k.id===e),h=t.items.some(k=>k.kind==="turn"&&k.triggerPromptId===s),m=t.items.some(k=>k.kind==="turn"&&k.state==="running"),g=t.items.some((k,w)=>k.kind==="turn"&&k.triggerPromptId===s&&k.state!=="running"&&!t.items.slice(w+1).some(C=>C.kind==="turn"&&C.state==="running")),y=r!==void 0&&r.status!=="queued"&&r.status!=="running"&&!h&&!m;o=f!==void 0&&f.mainTurnActive!==!0&&(y||r?.status!=="queued"&&g)||r!==void 0&&r.status==="running"&&(i===void 0||ZK(i,t,s))}else It().inFlightBySession[e]===!0?o=i===void 0||ZK(i,t):o=!0;const a=n.filter(f=>f.metadata?.["kimiWeb.uncertain"]===!0&&la(f.metadata).length===0&&f.metadata?.origin?.kind!=="skill_activation"),l=n.filter(f=>f.metadata?.["kimiWeb.uncertain"]===!0&&f.metadata?.["kimiWeb.promptId"]===void 0&&la(f.metadata).length>0),c=n.filter(f=>f.metadata?.["kimiWeb.uncertain"]===!0&&f.metadata?.origin?.kind==="skill_activation"),u=HP(a.map(f=>({id:f.id,text:f.content.filter(h=>h.type==="text").map(h=>"text"in h?h.text:"").join(""),floor:pm(t.items,f.metadata),skills:la(f.metadata)})),t.prompts,Ln().peekRuntime(e)?.consumedEchoPromptIds).size===a.length&&jP(l.map(f=>({id:f.id,text:f.content.filter(h=>h.type==="text").map(h=>"text"in h?h.text:"").join(""),attachmentCount:f.content.filter(h=>h.type!=="text").length,floor:pm(t.items,f.metadata),skills:la(f.metadata)})),t,Ln().peekRuntime(e)?.consumedBundledEchoIds).size===l.length&&WP(c.map(f=>{const h=f.metadata?.origin;return{id:f.id,anchorTurnId:f.metadata?.["kimiWeb.anchorTurnId"],promptFloor:f.metadata?.["kimiWeb.anchorPromptCreatedAt"],skillName:h?.skillName,skillArgs:h?.skillArgs}}),t.items,Ln().peekRuntime(e)?.consumedSkillEchoIds).size===c.length;return{settle:o,drain:o&&u}}function DO(e){const t=Vi.pool.getEntry(e);if(t===void 0||!t.baselineLoaded)return;const n=Rk(e,t.channel.snapshot);if(n.settle){const i=It().promptIdBySession[e];i!==void 0&&It().preserveTerminalBundledBubble(e,i,t.channel.snapshot),Oue(e,!0,n.drain)}}function wlt(e,t,n){const i=()=>{if(Vi.pool.getEntry(e)!==t)return;const o=It().localTurnStartState(e);if(o.generation!==n)return;if(o.pending){It().afterLocalTurnStartsSettle(e,()=>setTimeout(i,0));return}Ze.sessions.find(r=>r.id===e)?.mainTurnActive!==!0&&It().inFlightBySession[e]===!0&&DO(e)};i()}function Oue(e,t,n){const i=It().optimisticMessagesBySession[e];let o=[];if(i!==void 0&&i.length>0){const s=Vi.pool.getEntry(e)?.channel.snapshot;if(o=i.filter(r=>{const a=r.metadata?.["kimiWeb.promptId"];if(a===void 0||s===void 0)return!1;const l=s.prompts.find(c=>c.promptId===a);if(l===void 0){const c=r.content.filter(h=>h.type==="text").map(h=>"text"in h?h.text:"").join(""),u=r.metadata?.["kimiWeb.anchorTurnId"],d=u===void 0?-1:s.items.findIndex(h=>h.kind==="turn"&&h.turnId===u);return u!==void 0&&d===-1?!0:!(d===-1?s.items:s.items.slice(d+1)).some(h=>h.kind==="turn"&&((h.prompt??"")===c||c===""&&(h.attachmentIds?.length??0)>0))}return l.status==="queued"?!0:r.metadata?.["kimiWeb.steered"]!==!0?!1:!Z2(s,a)}),o.length>0){const r=i.filter(a=>!o.includes(a));It().setOptimisticMessages(e,r)}}if(Zi.finishPromptLocal(e,{turnWasActive:t,retireOptimistic:"all",skipDrain:!n}),o.length>0){const s=It().optimisticMessagesBySession[e]??[],r=new Set(o.map(u=>u.id)),a=new Set((i??[]).map(u=>u.id)),l=s.filter(u=>!a.has(u.id)),c=[];for(const u of i??[])(r.has(u.id)||s.some(d=>d.id===u.id))&&c.push(u);It().setOptimisticMessages(e,[...c,...l])}}function cL(e,t,n,i){const o=It().promptIdBySession[e],s=Ze.goalBySession[e]?.status==="active"||Wa().isGoalFetchPending(e);i?.settleLocal!==!1&&Oue(e,n,i?.drain!==!1),i?.firstTurn===!0&&An().maybeGenerateSessionTitle(e),i?.ratingTurnId!==void 0&&T1().noteMainTurnEnded(e,i.ratingTurnId,()=>r7(e));const r=e===Ze.activeSessionId?Er.options(e):Er.offscreenOptions(e);so().loadGitStatus(e,r),Wa().refreshSessionGoal(e,r),oi().refreshSessionWarnings(e,r),Go().loadSkillsForSession(e,r),e===Ze.activeSessionId?Ia(e):t==="idle"&&!s&&Yo().markUnread(e);const a=(Ze.approvalsBySession[e]??[]).length>0,l=(Ze.questionsBySession[e]??[]).length>0;!s&&Got(t,a,l)&&y3().maybeNotifyCompletion(e,{isUserWatching:r7(e),sessionTitle:Ze.sessions.find(c=>c.id===e)?.title??"",promptId:o,onClick:()=>{zc.selectSession(e,{source:"notification"})}})}function N_(e,t){const n=t.questions[0],i=n?.header?.trim()??"",o=n?.question?.trim()??"",s=i&&o?`${i}: ${o}`:o||i;y3().maybeNotifyQuestion({isUserWatching:r7(e),sessionTitle:Ze.sessions.find(r=>r.id===e)?.title??"",questionPreview:s,questionId:t.questionId,onClick:()=>{zc.selectSession(e,{source:"notification"})}})}function B_(e,t){y3().maybeNotifyApproval({isUserWatching:r7(e),sessionTitle:Ze.sessions.find(n=>n.id===e)?.title??"",toolName:t.toolName,approvalId:t.approvalId,onClick:()=>{zc.selectSession(e,{source:"notification"})}})}function Xo(){return Yo().ensureSessionTimeClock(),{workspace:$rt,sessions:Ort,activeSessionId:Frt,workspacesView:sL,workspaceSortMode:Vat,visibleWorkspace:Rue,activeWorkspaceId:wb,activeWorkspaceTrust:qat,sessionsForView:PO,workspaceGroups:Xat,flatSessions:nlt,flatSessionsHasMore:ilt,flatSessionsLoadingMore:R(()=>Ze.flatSessionsLoadingMore),doneSessions:slt,doneSessionsHasMore:rlt,doneSessionsLoadingMore:R(()=>Ze.doneSessionsLoadingMore),activeSessionArchived:llt,recentSessionsForWorkspace:elt,draftEntry:R(()=>It().draftEntry),draftEntryNonce:R(()=>It().draftEntryNonce),mainView:R(()=>Ze.mainView),pendingBySession:aL,unreadBySession:$ue,turns:Sue,tasks:Vrt,activeAppTasks:Iv,activeRestTasks:zrt,findBashCommandForTask:bue,findSubagentPromptForTask:kue,auxiliaryTranscripts:Vd,getFileUrl:tL,getSessionMediaUrl:nL,todos:Krt,goal:Pg,sessionPlans:dat,refreshSessionPlans:Kr().refreshSessionPlans,invalidateSessionPlans:Kr().invalidateSessionPlans,swarms:Iue,swarmMembersByToolCallId:Urt,activationBadges:hat,compaction:Zrt,status:Cat,sessionCost:xat,fileDiff:Aat,selectedDiffPath:R(()=>so().selectedDiffPath),fileDiffLoading:R(()=>so().fileDiffLoading),fileDiffLoadedSeq:R(()=>so().fileDiffLoadedSeq),fileDiffLoadStartedSeq:R(()=>so().fileDiffLoadStartedSeq),fileDiffRefreshing:R(()=>so().fileDiffRefreshing),fileDiffTexts:R(()=>so().fileDiffTexts),fileDiffEmptyFile:R(()=>so().fileDiffEmptyFile),changes:kat,gitInfo:iL,gitDiffStats:wat,activePullRequest:bat,changesByPath:Wat,pendingApprovals:yat,availableOpenInApps:clt,retainSessionExecution(e){Rg.set(e,(Rg.get(e)??0)+1);const t=Vi.activate(e);let n=!1;return Object.assign(()=>{if(n)return;n=!0;const o=Rg.get(e)??0;o>1?Rg.set(e,o-1):(Rg.delete(e),Ze.activeSessionId!==e&&Vi.deactivate(e))},{ready:t.resumePromise??Promise.resolve()})},getSessionExecutionState(e){return WK(e)},awaitSessionExecutionState(e,t){return TNe({read:()=>WK(e),turnActive:()=>Yo().isMainTurnActive(e),timeoutMs:t})},connection:Tue,loading:Grt,sessionLoading:Qrt,loadingMoreMessages:Yrt,hasMoreMessages:Jrt,loadMoreMessagesError:Xrt,serverVersion:eat,webTitle:Mue,documentBaseTitle:Jat,backend:nat,dangerousBypassAuth:iat,experimentalFlags:tat,clearDangerousBypassAuth:oat,initialized:s4.initialized,connectIssue:drt,bootStage:s4.bootStage,bootRetries:s4.bootRetries,permission:sat,thinking:rat,planMode:Eue,planArmed:aat,swarmMode:lat,towerMode:cat,goalMode:uat,queued:pat,recentNonComposerPromptIds:mat,warnings:gat,questions:vat,activity:nA,turnActive:tA,activeTurnError:jrt,activeTurnRetry:Wrt,inFlight:EO,working:_ue,isStartingFirstPrompt:Brt,models:Ri.models,starredModelIds:Ri.starredModelIds,providers:Ri.providers,fontScale:y8.fontScale,setFontScale:y8.setFontScale,colorScheme:y8.colorScheme,setColorScheme:y8.setColorScheme,onboarded:due,setOnboarded:mrt,load:s4.load,selectSession:zc.selectSession,clearActiveSession:bn().clearActiveSession,openSessionAdmin:e=>{e!==void 0&&Fo.applyFilters({workspaceIds:[e],status:"all",updatedFrom:"",updatedTo:""}),dp.openSessionAdmin()},closeSessionAdmin:dp.closeSessionAdmin,sessionAdminItems:R(()=>Fo.state.items),sessionAdminTotal:R(()=>Fo.state.total),sessionAdminLoading:R(()=>Fo.state.loading),sessionAdminFilters:R(()=>Fo.state.filters),sessionAdminPage:R(()=>Fo.state.page),sessionAdminPageSize:R(()=>Fo.state.pageSize),refreshSessionAdminSessions:Fo.refresh,applySessionAdminFilters:Fo.applyFilters,setSessionAdminWorkspaceFilter:Fo.setWorkspaceIds,setSessionAdminStatusFilter:Fo.setStatus,setSessionAdminTimeRange:Fo.setTimeRange,setSessionAdminPage:Fo.setPage,setSessionAdminPageSize:Fo.setPageSize,sessionAdminSelectedIds:R(()=>Fo.state.selectedIds),sessionAdminSelectedCount:R(()=>Fo.state.selectedIds.size),sessionAdminOpenSelectedIds:R(()=>Fo.selectedIdsByArchived(!1)),sessionAdminDoneSelectedIds:R(()=>Fo.selectedIdsByArchived(!0)),toggleSessionAdminSelection:Fo.toggleSelection,toggleSessionAdminPageSelection:Fo.togglePageSelection,setSessionAdminSelection:Fo.setSelection,clearSessionAdminSelection:Fo.clearSelection,selectSessionAdminAllMatching:Fo.selectAllMatching,sessionAdminAllMatching:R(()=>Fo.state.allMatching),sessionAdminMaterializingAll:R(()=>Fo.state.materializingAll),archiveSessions:Fo.archiveSessions,restoreSessions:Fo.restoreSessions,loadOlderMessages:async e=>{const t=Vi.pool.getEntry(e)?.channel;t?.snapshot.hasMoreOlder===!0&&await t.loadOlder().catch(()=>{})},loadWorkspaces:()=>bn().loadWorkspaces(),loadMoreSessions:An().loadMoreSessions,loadAllSessions:An().loadAllSessions,ensureFlatSessions:An().ensureFlatSessions,loadMoreFlatSessions:olt,ensureDoneSessions:An().ensureDoneSessions,loadMoreDoneSessions:alt,selectWorkspace:e=>bn().selectWorkspace(e),ensureWorkspaceTrust:(e,t)=>bn().ensureWorkspaceTrust(e,t),trustWorkspace:async e=>{await bn().trustWorkspace(e),bn().trustByWorkspaceId[e]===!0&&Ri.loadSkillsForWorkspace(e)},openWorkspace:bn().openWorkspace,openWorkspaceDraft:bn().openWorkspaceDraft,createPromptEnvelope:Zi.createPromptEnvelope,startSessionAndSendPrompt:Zi.startSessionAndSendPrompt,startSessionAndActivateSkill:Zi.startSessionAndActivateSkill,startSessionAndOpenSideChat:Zi.startSessionAndOpenSideChat,getDraftPromotion:Mst,addWorkspaceByPath:bn().addWorkspaceByPath,browseFs:bn().browseFs,getFsHome:bn().getFsHome,sendPrompt:Zi.sendPrompt,wouldEnqueuePrompt:Zi.wouldEnqueuePrompt,wouldSteerPrompt:Zi.wouldSteerPrompt,steerPrompt:Zi.steerPrompt,steerPromptDirect:Zi.steerPromptDirect,steerQueued:Zi.steerQueued,sideChatVisible:Wi.sideChatVisible,sideChatSessionId:Wi.sideChatSessionId,sideChatTurns:Wi.sideChatTurns,sideChatRunning:Wi.sideChatRunning,sideChatSending:Wi.sideChatSending,openSideChat:Wi.openSideChat,closeSideChat:Wi.closeSideChat,sendSideChatPrompt:Wi.sendSideChatPrompt,sideChatTargetsOfSession:Wi.sideChatTargetsOfSession,restoreSideChatTarget:Wi.restoreSideChatTarget,sideChatTurnsOf:Wi.sideChatTurnsOf,sideChatRunningOf:Wi.sideChatRunningOf,sideChatSendingOf:Wi.sideChatSendingOf,sideChatTurnErrorOf:Wi.sideChatTurnErrorOf,openSideChatOn:Wi.openSideChatOn,sendSideChatPromptOn:Wi.sendSideChatPromptOn,saveSideChatDraft:Wi.saveSideChatDraft,sideChatDraft:Wi.sideChatDraft,clearSideChatDraftIfUnchanged:Wi.clearSideChatDraftIfUnchanged,uploadImage:Zi.uploadImage,abortCurrentPrompt:Zi.abortCurrentPrompt,respondApproval:er().respondApproval,respondQuestion:er().respondQuestion,dismissQuestion:er().dismissQuestion,pendingQuestionActions:er().pendingQuestionActions,pendingApprovalActions:er().pendingApprovalActions,cancelTask:t7().cancelTask,detachTask:t7().detachTask,loadTaskOutput:s9.loadTaskOutput,isTaskOutputLoading:s9.isTaskOutputLoading,hasTaskOutput:s9.hasTaskOutput,setPermission:Cn().setPermission,setThinking:Ri.setThinking,setPlanMode:Gt().setPlanMode,togglePlanMode:Gt().togglePlanMode,setSwarmMode:Gt().setSwarmMode,toggleSwarmMode:Gt().toggleSwarmMode,setTowerMode:Gt().setTowerMode,toggleTowerMode:Gt().toggleTowerMode,sendTowerPrompt:flt,setGoalMode:Gt().setGoalMode,toggleGoalMode:Gt().toggleGoalMode,createGoal:Wa().createGoal,controlGoal:Wa().controlGoal,enqueue:Zi.enqueue,dismissWarning:oi().dismissWarning,renameSession:An().renameSession,regenerateSessionTitle:An().regenerateSessionTitle,renameWorkspace:bn().renameWorkspace,deleteWorkspace:bn().deleteWorkspace,reorderWorkspaces:Kat,setWorkspaceSortMode:Uat,pinSession:Zat,unpinSession:Gat,togglePinSession:Yat,archiveSession:An().archiveSession,exportSession:k0.exportSession,restoreSession:An().restoreSession,actionToast:fr,showActionToast:hlt,dismissActionToast:plt,archiveSessionWithToast:mlt,deleteSessionWithToast:glt,restoreSessionWithToast:vlt,exportSessionWithToast:ylt,undoArchive:blt,loadArchivedSessions:An().loadArchivedSessions,isSessionDeleted:An().hasDeletedTombstone,compact:k0.compact,forkSession:k0.forkSession,undo:k0.undo,reloadSession:k0.reloadSession,unqueue:Zi.unqueue,reorderQueue:Zi.reorderQueue,searchFiles:so().searchFiles,loadGitStatus:so().loadGitStatus,loadFileDiff:so().loadFileDiff,clearFileDiff:so().clearFileDiff,readFileContent:so().readFileContent,readHostFileContent:so().readHostFileContent,readWorkspaceFileBlob:so().readWorkspaceFileBlob,probeWorkspacePath:so().probeWorkspacePath,getFileDownloadUrl:so().getFileDownloadUrl,openWorkspaceFile:so().openWorkspaceFile,revealWorkspaceFile:so().revealWorkspaceFile,resolveImageUrl:so().resolveImageUrl,loadModels:Ri.loadModels,loadProviders:Ri.loadProviders,skills:Drt,skillsLoaded:Nrt,activateSkill:Ri.activateSkill,selectModel:Bat,setSessionModel:Ri.setSessionModel,toggleStarModel:Ri.toggleStarModel,addProvider:Ri.addProvider,updateProvider:Ri.updateProvider,getProvider:Ri.getProvider,deleteProvider:Ri.deleteProvider,refreshProvider:Ri.refreshProvider,refreshAllProviders:Ri.refreshAllProviders,refreshOAuthProviderModels:Ri.refreshOAuthProviderModels,loadCatalogProviders:Ri.loadCatalogProviders,importCatalogProvider:Ri.importCatalogProvider,importCustomRegistry:Ri.importCustomRegistry,modelsReady:Sat,presetCatalogProviders:Iat,presetCatalogState:Tat,loadPresetCatalog:Go().loadCatalogProviders,managedProviderStatus:Mat,managedUserInfo:Eat,managedMembership:Lat,chatGateVerdict:$at,ensureChatReady:Lue,sendFailureVerdict:iA,dismissSendFailureVerdict:jat,notify:oi().pushWarning,config:Rat,loadConfig:ws().loadConfig,updateConfig:ws().updateConfig,checkAuth:()=>nr().checkAuth(),probeManagedMembership:()=>nr().probeMembership(),startOAuthLogin:Ri.startOAuthLogin,pollOAuthLogin:Ri.pollOAuthLogin,cancelOAuthLogin:Ri.cancelOAuthLogin,getOAuthRegion:Ri.getOAuthRegion,getUsage:Ri.getUsage,logout:nr().logout}}const Pk=Z(!1),Fue=Z(!1),r9=Z(!1),$k=Z(!1),Ok=Z(!1),r4=Z(!1),Due=Z(!1),Rf=Z(!1),GK=Z(!1),b8=Z(void 0),uL=Z(void 0),QK=Z(void 0),z_=Z(!1),H_=Z(!1),Clt=Z(!1),j_=Z(null),Iy=Z(null);Fe(r9,e=>{e||(uL.value=void 0)});const Alt=R(()=>ml.value>0||$k.value||Ok.value||r4.value||Due.value||Rf.value||Pk.value||Fue.value||r9.value);let Ty=null,YK=!1;function NO(e){const t=Xo(),n=hd();YK||(YK=!0,Pk.value=!t.onboarded.value),e!==void 0&&(Ty=e);const i=R(()=>!t.dangerousBypassAuth.value&&GK.value);function o(){t.setOnboarded(!0),Pk.value=!1}function s(){o(),b8.value="providers",Rf.value=!0}async function r(g){QK.value=g,z_.value=!0,H_.value=!1,$k.value=!0;try{await t.refreshAllProviders()}catch{H_.value=!0}finally{z_.value=!1}}function a(){Ok.value=!0}function l(){r4.value=!0}function c(){$k.value=!1,n.value?(Rf.value=!1,uL.value="providers",r9.value=!0):(r9.value=!1,b8.value="providers",Rf.value?(Rf.value=!1,bt(()=>{Rf.value=!0})):Rf.value=!0)}function u(){b8.value="archived",Rf.value=!0}function d(){const g=Iy.value;Iy.value=null,g&&Ty?.restorePendingComposer(g)}async function f(g){if(j_.value=null,!await t.addWorkspaceByPath(g))return!1;Ty?.onWorkspaceAdded?.(),r4.value=!1;const v=Iy.value;Iy.value=null;const k=t.activeWorkspaceId.value;if(v&&k){if(await t.ensureWorkspaceTrust(k,{background:!1}),t.activeSessionId.value!==null||t.activeWorkspaceId.value!==k||t.activeWorkspaceTrust.value!==!0)return Ty?.restorePendingComposer(v),!0;const w=await t.startSessionAndSendPrompt(k,v.prompt);(w.promptRejected||w.sessionId===null&&w.concurrent!==!0)&&Ty?.restorePendingComposer(v,w.sessionId??void 0)}return!0}function h(){d(),j_.value=null,r4.value=!1}async function m(){Ok.value=!1,await t.checkAuth(),await t.load(),S6(()=>t.getOAuthRegion())}return{showOnboarding:Pk,showMobileSwitcher:Fue,showMobileSettings:r9,showModelPicker:$k,showLogin:Ok,showAddWorkspace:r4,showStatusPanel:Due,showSettings:Rf,authRequired:GK,showServerAuth:i,settingsInitialTab:b8,mobileSettingsInitialTab:uL,modelPickerTargetSid:QK,modelsLoading:z_,modelsUnavailable:H_,configSaving:Clt,addWorkspaceError:j_,pendingWorkspaceSubmit:Iy,anyOverlayOpen:Alt,completeOnboarding:o,handleWizardAddProvider:s,openModelPicker:r,openLogin:a,openAddWorkspace:l,openProviderSettings:c,openArchivedSettings:u,dropPendingWorkspaceSubmit:d,addWorkspace:f,handleCloseAddWorkspace:h,handleLoginSuccess:m}}const dL=new Set;function JK(){for(const e of dL)e()}function xlt(e){const{api:t,uploadImage:n,sessionId:i,insertFolderPaths:o,insertFileAttachment:s,insertFileAttachments:r,adoptFileAttachment:a,adoptMediaAttachment:l}=e,c=Z(null),u=Z(!1);function d($){const j=Ua(oB($));if(!Array.isArray(j)||j.length===0)return null;const G=[];for(const K of j)!K||typeof K.fileId!="string"||K.fileId===""||K.kind!=="image"&&K.kind!=="video"&&K.kind!=="file"||G.push({fileId:K.fileId,kind:K.kind,name:typeof K.name=="string"&&K.name!==""?K.name:K.kind,mediaType:typeof K.mediaType=="string"?K.mediaType:void 0,size:typeof K.size=="number"?K.size:void 0,sessionId:typeof K.sessionId=="string"?K.sessionId:void 0});return G.length===0?null:G}let f=null;function h($){for(const j of $){const G=UP(t,j);G.kind==="file"?a?.(G):l?.(G)}}function m($){const j=d($);j&&((a!==void 0||l!==void 0)&&(f={sid:$,drafts:j}),Do(oB($)))}function g(){const $=f;f=null,!(!$||$.sid!==(i()??""))&&h($.drafts)}function y($){return $<1024*1024?"<1mb":$<10*1024*1024?"1-10mb":$<50*1024*1024?"10-50mb":"50mb+"}function v($,j,G,K){if(!s&&!r||!n()||$.length===0)return;const te={source:G,...K===void 0?{}:{at:K}};if(r!==void 0){const q=r($.map(Y=>({file:Y,path:px(Y)})),te);$.forEach((Y,ae)=>{q[ae]===!0&&(V6(Y.type),y(Y.size),Math.min($.length,100),void 0)});return}let J=!1;for(const q of $)s(q,px(q),{source:G,...J||K===void 0?{}:{at:K}})&&(J=!0,V6(q.type),y(q.size),Math.min($.length,100),void 0)}function k(){c.value?.click()}function w($){v($,"screenshot","screenshot")}function C($){const j=$.target,G=Array.from(j.files??[]);v(G,"click","picker"),j.value=""}function x($){const j=$.clipboardData;if(!j)return;const G=e.pasteTarget?.()??"editor";if(G==="ignore")return;const{items:K,folderPaths:te,hasFolders:J}=Cye(j),q=K.some(pe=>pe.kind==="file")&&n();(te.length>0||J||q)&&$.preventDefault();let Y=[];const ae=()=>{Y.length!==0&&(v(S(Y),"paste",G==="editor"?"paste-editor":"paste-composer"),Y=[])};for(const pe of K)pe.kind==="folder"?(ae(),o?.([pe.path])):q&&Y.push(pe.file);ae()}function S($){return $.map(j=>{if(j.name.includes(".")||px(j)!==null)return j;const G=j.type.split("/")[1]??"png";return new File([j],`paste-${Date.now()}.${G}`,{type:j.type})})}let M=0;function _($){!n()||!Array.from($.dataTransfer?.items??[]).some(G=>G.kind==="file")||($.preventDefault(),$.stopPropagation(),u.value=!0)}function T(){u.value=!1}function E($,j,G){let K=[],te=j;const J=()=>{K.length!==0&&(v(K,"drop","drop",te),te=void 0,K=[])};for(const q of $)q.kind==="folder"?(J(),o?.([q.path]),te=void 0):G&&K.push(q.file);J()}function L($){JK();const{items:j,folderPaths:G}=ZI($);G.length>0&&($.preventDefault(),$.stopPropagation());const K=n();K&&($.preventDefault(),$.stopPropagation()),E(j,{clientX:$.clientX,clientY:$.clientY},!!K)}function P($){return Array.from($.dataTransfer?.items??[]).some(j=>j.kind==="file")}function N(){return e.dropSurfaceVisible?.()===!1}function U($){N()||!n()||!P($)||($.preventDefault(),M+=1,u.value=!0)}function F($){N()||!n()||!P($)||$.preventDefault()}function B($){!n()||!P($)||(M=Math.max(0,M-1),M===0&&(u.value=!1))}function W($){if(JK(),N())return;const{items:j,folderPaths:G}=ZI($);G.length>0&&$.preventDefault();const K=n();K&&$.preventDefault(),E(j,{clientX:$.clientX,clientY:$.clientY},!!K)}Fe(i,()=>{m(i()??"")}),m(i()??"");let D=!1;const z=()=>{M=0,u.value=!1};return Pn(()=>{dL.add(z),document.addEventListener("paste",x),D=e.windowDrop?.()!==!1,D&&(document.addEventListener("dragenter",U),document.addEventListener("dragover",F),document.addEventListener("dragleave",B),document.addEventListener("drop",W))}),Xn(()=>{dL.delete(z),document.removeEventListener("paste",x),D&&(document.removeEventListener("dragenter",U),document.removeEventListener("dragover",F),document.removeEventListener("dragleave",B),document.removeEventListener("drop",W))}),{fileInputRef:c,isDragOver:u,openFilePicker:k,addFiles:w,handleFileInputChange:C,handleDragOver:_,handleDragLeave:T,handleDrop:L,adoptStoredDrafts:g}}const Slt=3;function Nue(e){const t=Z("starting"),n=Z(!1),i=Z(null),o=Z(null),s=Z(0),r=Z(!1);let a=null,l=null,c=null,u=0,d=0,f=!1,h,m=!1,g=null,y=!1;function v(){a&&(clearTimeout(a),a=null),l&&(clearInterval(l),l=null),c&&(clearTimeout(c),c=null)}function k(E){v(),C(),t.value="success",c=setTimeout(()=>{c=null,e.onSuccess?.()},e.successDwellMs??E)}function w(){l&&clearInterval(l),l=setInterval(()=>{s.value>0?s.value--:(l&&clearInterval(l),l=null)},1e3)}function C(){g?.(),g=null}async function x(E){m=!0;try{const L=await e.onPollOAuthLogin();if(y||f)return;if(L===null){if(u+=1,u>=Slt){v(),C(),n.value=!0,t.value="error",e.autoOpen?.settle(!1,{keepNavigated:!0}),Date.now()-d;return}S(E);return}u=0,L.status==="authenticated"?k(1200):L.status==="denied"?(v(),C(),t.value="denied",e.autoOpen?.settle(!1),Date.now()-d,void 0):L.status==="expired"||L.status==="cancelled"?(v(),C(),t.value="expired",e.autoOpen?.settle(!1),Date.now()-d,L.status,void 0):S(E)}finally{m=!1}}function S(E){a&&clearTimeout(a),a=setTimeout(()=>{a=null,x(E)},E*1e3)}function M(){t.value!=="device-code"||o.value===null||f||m||(a&&(clearTimeout(a),a=null),x(o.value.interval))}async function _(E){E!==void 0&&(h=E),v(),C(),o.value=null,n.value=!1,i.value=null,u=0,f=!1,d=Date.now(),t.value="starting",r.value=!1,e.autoOpen?.onGesture?.();const L=await e.onStartOAuthLogin(h);if(y){L!==null&&!("error"in L)&&L.status!=="authenticated"&&e.onCancelOAuthLogin();return}if(!L||"error"in L){i.value=L!==null&&"error"in L?L.error:null,t.value="error",e.autoOpen?.settle(!1);return}if(L.status==="authenticated"){e.autoOpen?.settle(!0),k(800);return}if(o.value={flowId:L.flowId,verificationUri:L.verificationUri,verificationUriComplete:L.verificationUriComplete,userCode:L.userCode,expiresIn:L.expiresIn,interval:L.interval},s.value=L.expiresIn,t.value="device-code",e.autoOpen){const P=e.autoOpen.openUrl(L.verificationUriComplete,L.flowId);if(P===!1)r.value=!0;else if(P instanceof Promise){const N=L.flowId;P.then(U=>{!U&&!y&&o.value?.flowId===N&&(r.value=!0)})}}w(),S(L.interval),g=e.authWake?.subscribe(M)??null}function T(){t.value!=="success"&&(v(),C(),e.autoOpen?.settle(!1),t.value==="device-code"&&!f&&(f=!0,e.onCancelOAuthLogin()))}return ad()&&Qr(()=>{y=!0,T()}),{step:t,pollError:n,flow:o,secondsLeft:s,autoOpenBlocked:r,errorMessage:i,startFlow:_,cancelFlow:T,pollNow:M}}const _lt={state:"idle"};function Ilt(e){const t=Z(_lt),n=Z(lo(xn.updateSkippedVersion)),i=Z(!1);if(typeof e?.getUpdateAutoDownload=="function"&&e.getUpdateAutoDownload().then(s=>{i.value=s}).catch(()=>{}),e!==void 0){let s=!1;e.onUpdateStatus(r=>{s=!0,t.value=r}),e.getUpdateStatus().then(r=>{s||(t.value=r)}).catch(()=>{})}const o=R(()=>{const s=t.value;return!(s.state==="idle"||s.state==="available"&&s.version!==void 0&&s.version===n.value)});return{status:t,visible:o,canCheck:typeof e?.checkForUpdates=="function",autoDownload:i,canToggleAutoDownload:typeof e?.getUpdateAutoDownload=="function"&&typeof e?.setUpdateAutoDownload=="function",setAutoDownload:(s,r)=>{i.value=s,typeof e?.setUpdateAutoDownload=="function"&&e.setUpdateAutoDownload(s).then(()=>{}).catch(()=>{})},skipVersion:()=>{const s=t.value.version;t.value.state==="available"&&s!==void 0&&(n.value=s,Eo(xn.updateSkippedVersion,s))},check:async()=>{if(typeof e?.checkForUpdates!="function")return Promise.resolve({outcome:"unsupported"});const s=await e.checkForUpdates().catch(()=>({outcome:"error",message:"bridge call failed"}));return s.outcome==="available"&&s.version!==void 0&&s.version===n.value&&(n.value=null,Do(xn.updateSkippedVersion)),s},download:()=>{e?.downloadUpdate().catch(()=>{})},install:()=>{e?.installUpdate().catch(()=>{})}}}let W_=null;function Tlt(){return W_===null&&(W_=Ilt(window.kimiDesktop)),W_}function Mlt(e){const t=Z(null),n=Z(!1);let i=!1,o=!1,s;function r(v){setTimeout(()=>{const k=i?null:Xie(window.getSelection(),e.containerSelector);if(k!==null){const w=t.value,C=w!==null&&w.quote===k.quote&&w.x===k.x&&w.y===k.y&&w.bottom===k.bottom?w:null,x=v?.x??C?.px,S=v?.y??C?.py;x!==void 0&&S!==void 0&&(k.px=x,k.py=S)}t.value=k,s=k===null?void 0:e.captureSource?.(window.getSelection())},0)}function a(v){n.value=!1,r(v!==void 0&&(v.clientX||v.clientY)?{x:v.clientX,y:v.clientY}:void 0)}function l(){o=!0,n.value=!1}function c(v){o&&(o=!1,v.button===0&&r())}function u(v){v.key!=="Escape"&&(v.target instanceof Element&&v.target.closest(".sab")||(n.value=!0,r()))}const d=250;let f=null;function h(){f!==null&&(clearTimeout(f),f=null)}function m(){i=!1,f!==null&&clearTimeout(f),f=setTimeout(()=>{f=null;const v=document.activeElement;if(v instanceof Element&&v.closest(".sab"))return;const k=window.getSelection();if(k&&!k.isCollapsed&&!Yie(k,e.root.value)){t.value=null;return}o||r()},d)}Pn(()=>{document.addEventListener("selectionchange",m),document.addEventListener("keyup",u),document.addEventListener("pointerup",c),document.addEventListener("pointercancel",c)}),Xn(()=>{document.removeEventListener("selectionchange",m),document.removeEventListener("keyup",u),document.removeEventListener("pointerup",c),document.removeEventListener("pointercancel",c),h()});function g(){t.value=null,i=!0,h()}function y(v){t.value=null;const k=s;s=void 0,window.getSelection()?.removeAllRanges(),e.onAction(v,k)}return{selectionBubble:t,selectionKeyboard:n,onMouseup:a,onPointerdown:l,onBubbleClose:g,onBubbleAction:y}}const Bue="kimi-web.turn-folding";function Elt(e){try{return globalThis.localStorage.getItem(e)}catch{return null}}function Llt(e,t){try{globalThis.localStorage.setItem(e,t)}catch{}}function Rlt(){return Elt(Bue)==="1"}const zue=Z(Rlt());function Plt(e){zue.value=e,Llt(Bue,e?"1":"0")}function BO(){return{turnFolding:zue,setTurnFolding:Plt}}const Hue="kimi-web.activity-run-folding";function $lt(e){try{return globalThis.localStorage.getItem(e)}catch{return null}}function Olt(e,t){try{globalThis.localStorage.setItem(e,t)}catch{}}function Flt(){return $lt(Hue)!=="0"}const jue=Z(Flt());function Dlt(e){jue.value=e,Olt(Hue,e?"1":"0")}function zO(){return{activityRunFolding:jue,setActivityRunFolding:Dlt}}const k8=Z([]),q_=Z(!1),w8=Z(!1),C8=Z(!1);let n0,V_=!1,U_=!1;function HO(){const e=Xo();if(!U_){U_=!0;const c=Fe(()=>e.activeWorkspaceId.value,()=>{q_.value=!1,C8.value=!1,n0!==void 0&&(clearTimeout(n0),n0=void 0)});ad()&&Qr(()=>{c(),U_=!1})}const t=R(()=>e.activeWorkspaceId.value!==null&&e.activeWorkspaceTrust.value!==!0),n=R(()=>e.activeWorkspaceTrust.value===!1),i=R(()=>{const c=e.activeWorkspaceId.value;return c!==null&&k8.value.includes(c)}),o=R(()=>C8.value?Un("workspace.trust.trustedNote"):void 0);async function s(){const c=e.activeWorkspaceId.value;if(!c||w8.value)return!1;w8.value=!0;try{return await e.trustWorkspace(c),e.activeWorkspaceTrust.value!==!0?!1:(C8.value=!0,n0!==void 0&&clearTimeout(n0),n0=setTimeout(()=>{C8.value=!1,n0=void 0},4e3),!0)}finally{w8.value=!1}}function r(){const c=e.activeWorkspaceId.value;!c||k8.value.includes(c)||(k8.value=[...k8.value,c])}async function a(){const c=e.activeWorkspaceId.value;if(!(!c||V_)){V_=!0;try{await e.ensureWorkspaceTrust(c,{background:!1}),e.activeWorkspaceId.value===c&&e.activeWorkspaceTrust.value===void 0&&e.notify({severity:"warning",title:Un("workspace.trust.readFailedTitle")})}finally{V_=!1}}}function l(){return t.value?(n.value?q_.value=!0:a(),!1):!0}return{showTrustCard:t,trustDenied:n,trustRejected:i,trustGateOpen:q_,statusNote:o,busy:w8,trustWorkspace:s,rejectTrust:r,gateSubmitForTrust:l}}const Fk="__custom__",En=Qo({entries:[],installed:[],capabilities:[],loaded:!1,loading:!1,error:null,catalogError:null,unsupported:!1,capabilitiesUnsupported:!1,capabilitiesLoadFailed:!1,extensionHint:!1,busy:{},rowErrors:{}}),fL=new Set;let Nlt=18e4,Blt=5e3;function zlt(e){let t;const n=new Promise(o=>{t=s=>{s===e&&(i(),o())},fL.add(t)});function i(){t!==void 0&&(fL.delete(t),t=void 0)}return{promise:n,dispose:i}}async function Wue(e){const t=Date.now()+Nlt;for(;;){const n=await tn().getCapability(e).catch(()=>{});if(n===void 0||!n.install.running)return n;if(Date.now()>=t)return;const i=zlt(e);try{await Promise.race([i.promise,new Promise(o=>{setTimeout(o,Blt)})])}finally{i.dispose()}}}async function Hlt(e){const t=await tn().getCapability(e).catch(()=>{});t!==void 0&&await jO(e,t)}function jlt(e){if(En.unsupported)return;if(e.type==="pluginsChanged"){sA(),Vlt();return}En.loading&&(Qg=!0);const t=En.capabilities.find(n=>n.id===e.capabilityId);if(t!==void 0&&(t.install=e.install),!e.install.running){for(const n of fL)n(e.capabilityId);Hlt(e.capabilityId)}}function que(e,t){return`${e}:${t}`}function hL(e){if(Ti(e)){const t=typeof e.details=="string"?e.details:void 0;return t!==void 0&&t.length>0&&!e.message.includes(t)?`${e.message} — ${t}`:e.message}return e instanceof Error?e.message:String(e)}function Vue(e){const t=new Map(En.installed.map(i=>[i.id,i]));let n=!1;for(const i of En.entries){const o=t.get(i.id);i.installed=o===void 0?void 0:{version:o.version,enabled:o.enabled},o?.version!==void 0&&i.version!==void 0&&(o.version===i.version?i.updateAvailable=void 0:i.updateAvailable!==!0&&(n=!0))}n&&e?.requeueCatalogOnDivergence===!0&&X2(!0)}function XK(e){return Ti(e)&&e.code===40419}function pL(e){return e instanceof cc?e.status===404:Ti(e)&&e.code===404}let Qg=!1;async function X2(e=!1){if(En.loading){e&&(Qg=!0);return}if(!(En.loaded&&!e)){En.loading=!0,En.error=null;try{const t=tn(),[n,i,o]=await Promise.allSettled([t.listPluginMarketplace(),t.listPlugins(),t.listCapabilities()]);if(Qg)return;if(i.status==="rejected"?(En.unsupported=pL(i.reason),En.error=En.unsupported?null:hL(i.reason),En.unsupported&&(En.entries=[],En.installed=[])):(En.installed=i.value,En.unsupported=!1,n.status==="fulfilled"?(En.entries=n.value,En.catalogError=null):En.catalogError=hL(n.reason),Vue(),En.error=null),o.status==="fulfilled"){En.capabilities=o.value,En.capabilitiesUnsupported=!1,En.capabilitiesLoadFailed=!1;const s=En.capabilities.find(r=>r.id==="kimi-webbridge");En.extensionHint&&s?.steps.find(r=>r.id==="extension")?.state==="ok"&&(En.extensionHint=!1)}else En.capabilities=[],En.capabilitiesUnsupported=pL(o.reason),En.capabilitiesLoadFailed=!En.capabilitiesUnsupported;if(i.status==="fulfilled"){for(const r of En.capabilities)r.install.running&&Wlt(r.id);const s=new Map(En.installed.map(r=>[r.id,r]));En.capabilities.some(r=>r.state==="ready"&&s.get(r.pluginId??r.id)===void 0)&&sA()}}finally{En.loading=!1,En.loaded=!0,Qg&&(Qg=!1,X2(!0))}}}async function jO(e,t){Ult(t),await sA(),e==="kimi-webbridge"&&t.install.error===void 0&&t.steps.find(n=>n.id==="extension")?.state!=="ok"&&(En.extensionHint=!0)}async function Wlt(e){const t=await Wue(e);t!==void 0&&(await jO(e,t),await X2(!0))}async function My(e,t,n,i){const o=que(e,t);if(En.busy[o])return;En.busy[o]=!0,En.rowErrors[e]=void 0;let s=!1;try{await n()}catch(r){s=!0,En.rowErrors[e]=hL(r)}finally{En.busy[o]=void 0}s||(i?.fullRefresh===!1?sA():X2(!0))}async function qlt(){try{await tn().listPlugins(),En.unsupported=!1}catch(e){pL(e)?(En.unsupported=!0,En.entries=[],En.installed=[]):En.unsupported=!1}}async function sA(){En.loading&&(Qg=!0);try{En.installed=await tn().listPlugins(),Vue({requeueCatalogOnDivergence:!0})}catch{}}async function Vlt(){if(!En.capabilitiesUnsupported)try{En.capabilities=await tn().listCapabilities(),En.extensionHint&&En.capabilities.find(t=>t.id==="kimi-webbridge")?.steps.find(t=>t.id==="extension")?.state==="ok"&&(En.extensionHint=!1)}catch{}}function Ult(e){const t=En.capabilities.findIndex(n=>n.id===e.id);t>=0?En.capabilities[t]=e:En.capabilities.push(e)}function eZ(e){const t=En.installed.findIndex(i=>i.id===e.id);t>=0?En.installed[t]=e:En.installed.push(e);const n=En.entries.find(i=>i.id===e.id);n!==void 0&&(n.installed={version:e.version,enabled:e.enabled},e.version!==void 0&&e.version===n.version&&(n.updateAvailable=void 0))}function Klt(e,t){const n=En.installed.find(r=>r.id===e),i=n?.enabled;n!==void 0&&(n.enabled=t);const o=En.entries.find(r=>r.id===e),s=o?.installed?.enabled;return o?.installed!==void 0&&(o.installed.enabled=t),()=>{n!==void 0&&i!==void 0&&(n.enabled=i),o?.installed!==void 0&&s!==void 0&&(o.installed.enabled=s)}}function tZ(e){const t=En.installed.findIndex(s=>s.id===e),n=t>=0?En.installed.splice(t,1)[0]:void 0,i=En.entries.find(s=>s.id===e),o=i?.installed;return i!==void 0&&(i.installed=void 0),()=>{n!==void 0&&En.installed.splice(t,0,n),i!==void 0&&(i.installed=o)}}function Zlt(e){return e.status.install.running?!0:e.status.state==="ready"?e.updateAvailable:e.plugin===void 0}function nZ(e){const t=new Set;for(const n of e)t.add(n.id),n.pluginId!==void 0&&t.add(n.pluginId);return t}function Uue(){const e=R(()=>En.capabilities.filter(s=>s.supported).map(s=>{const r=s.pluginId??s.id,a=En.installed.find(c=>c.id===r),l=En.entries.find(c=>c.id===r||c.id===s.id);return{status:s,pluginId:r,plugin:a,catalogEntry:l,updateAvailable:l?.updateAvailable===!0}})),t=R(()=>{const s=nZ(En.capabilities);return En.entries.filter(r=>!(s.has(r.id)||r.capabilityId!==void 0))}),n=R(()=>t.value.filter(s=>s.tier==="official")),i=R(()=>t.value.filter(s=>s.tier!=="official")),o=R(()=>{const s=nZ(En.capabilities.filter(a=>a.supported)),r=new Set(t.value.map(a=>a.id));return En.installed.filter(a=>!s.has(a.id)&&!r.has(a.id))});return{state:En,probeSupport:qlt,clearRowErrors:()=>{En.rowErrors={}},capabilityRows:e,officialEntries:n,thirdPartyEntries:i,installedOnly:o,refresh:X2,install:async s=>{await My(s.id,"install",async()=>{eZ(await tn().installPlugin(s.source))})},installSource:async s=>{await My(Fk,"install",async()=>{eZ(await tn().installPlugin(s))})},setupCapability:async s=>{await My(s,"install",async()=>{try{await tn().installCapability(s)}catch(a){if(!(Ti(a)&&a.code===40924))throw a}const r=await Wue(s);if(r!==void 0&&(await jO(s,r),r.install.error!==void 0))throw new Error(r.install.error)})},dismissExtensionHint:()=>{En.extensionHint=!1},remove:async s=>{const r=tZ(s),a=En.capabilities.find(c=>c.id===s||c.pluginId===s),l=a?.state;a!==void 0&&l==="ready"&&(a.state="partial"),await My(s,"remove",async()=>{try{await tn().removePlugin(s)}catch(c){if(XK(c))return;throw r(),a!==void 0&&l!==void 0&&(a.state=l),c}})},setEnabled:async(s,r)=>{const a=Klt(s,r);await My(s,"toggle",async()=>{try{await tn().setPluginEnabled(s,r)}catch(l){if(XK(l)){tZ(s);const c=En.capabilities.find(u=>u.id===s||u.pluginId===s);c?.state==="ready"&&(c.state="partial"),X2(!0);return}throw a(),l}},{fullRefresh:!1})},busyKey:que}}function Glt(e,t,n){let i=0;for(const o of e)if(o.id!==t){if(nt&&e<=n?-i-o:t>n&&e>=n&&en.bottom)return 0;const i=Math.min(48,(n.right-n.left)/3);if(i<=0)return 0;const o=Math.max(0,Math.min(1,(n.left+i-e)/i));return(Math.max(0,Math.min(1,(e-n.right+i)/i))-o)*720}function Xlt(e){const t=Z(null),n=Z(null),i=Z(null),o=Z(0),s=Is([]);let r=null,a=0,l=new Map,c=0,u=0,d=0,f=null,h=!1,m,g=null,y=0;function v(){if(!r||t.value===null)return;const U=r.container,F=U.getBoundingClientRect(),B=Math.max(F.left,Math.min(F.right,c)),W=s.value[r.index],D=s.value[0],z=s.value.at(-1);if(!W||!D||!z)return;const $=B-F.left+U.scrollLeft-r.grabOffset-W.start;o.value=Math.max(D.start-W.start,Math.min(z.start+z.size-W.start-W.size,$));const j=Glt(s.value,r.tabId,B-F.left+U.scrollLeft);n.value=j,i.value=Math.max(a/2,Qlt(s.value,r.index,j)-a/2)}function k(){!d&&t.value!==null&&(d=requestAnimationFrame(w))}function w(U){if(d=0,!r||t.value===null)return;const F=r.container,B=Jlt(c,u,F.getBoundingClientRect()),W=f===null?1e3/60:Math.min(32,U-f);f=U;const D=F.scrollLeft,z=Math.max(0,Math.min(F.scrollWidth-F.clientWidth,D+B*W/1e3));z!==D&&(F.scrollLeft=z),v(),B!==0&&F.scrollLeft!==D?k():f=null}function C(U){if(t.value===null||!r||n.value===null)return;const F=l.get(U)??-1,B=s.value[F],W=s.value[r.index];if(!B||!W)return;const D=U===t.value?o.value:Ylt(F,r.index,n.value,W.size,a);return{width:`${B.size}px`,minWidth:`${B.size}px`,maxWidth:`${B.size}px`,transform:`translate3d(${D}px, 0, 0)`}}function x(U){const F=r,B=n.value,W=t.value!==null,D=F&&W?F.container.getBoundingClientRect().left-F.container.scrollLeft+(s.value[F.index]?.start??0)+o.value:0;r=null;const z=++y;d&&cancelAnimationFrame(d),d=0,f=null,F?.container.removeEventListener("scroll",k),F?.button.removeEventListener("lostpointercapture",T),F?.button.hasPointerCapture(F.id)&&F.button.releasePointerCapture(F.id),window.removeEventListener("pointermove",M),window.removeEventListener("pointerup",_),window.removeEventListener("pointercancel",E),window.removeEventListener("keydown",L,!0),window.removeEventListener("blur",T),t.value=null,n.value=null,i.value=null,o.value=0,s.value=[],l.clear(),W&&(h=!0,clearTimeout(m),m=setTimeout(()=>{h=!1},0)),!(!F||!W||!U||B===null)&&(B!==F.index&&e.move(F.tabId,B),bt(()=>{if(y!==z||!F.tab.isConnected||typeof F.tab.animate!="function"||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;const $=D-F.tab.getBoundingClientRect().left;if(Math.abs($)<1)return;const j=getComputedStyle(F.tab),G=j.getPropertyValue("--duration-fast").trim(),K=Number.parseFloat(G)*(G.endsWith("ms")?1:1e3);!Number.isFinite(K)||K<=0||(g=F.tab.animate([{transform:`translate3d(${$}px, 0, 0)`},{transform:"translate3d(0, 0, 0)"}],{duration:K,easing:j.getPropertyValue("--ease-in-out").trim()||"ease-in-out"}))}))}function S(){if(!r)return;const U=r.container,F=U.getBoundingClientRect();if(s.value=[...U.querySelectorAll("[data-panel-tab-id]")].map(B=>{const W=B.getBoundingClientRect();return{id:B.dataset.panelTabId,start:W.left-F.left+U.scrollLeft,size:W.width}}),l=new Map(s.value.map((B,W)=>[B.id,W])),r.index=l.get(r.tabId)??-1,r.index<0){x(!1);return}a=Number.parseFloat(getComputedStyle(U).columnGap)||0,t.value=r.tabId,r.button.blur(),r.button.setPointerCapture(r.id),r.button.addEventListener("lostpointercapture",T),r.container.addEventListener("scroll",k,{passive:!0}),e.start?.(),v(),k()}function M(U){if(!(!r||r.id!==U.pointerId)){if(c=U.clientX,u=U.clientY,t.value===null){if(Math.hypot(c-r.x,u-r.y)<=4)return;S()}t.value!==null&&(U.preventDefault(),k())}}function _(U){if(!r||U.pointerId!==r.id)return;c=U.clientX,u=U.clientY,v();const F=r.container.getBoundingClientRect();x(u>=F.top&&u<=F.bottom)}function T(){x(!1)}function E(U){U.pointerId===r?.id&&x(!1)}function L(U){U.key!=="Escape"||U.isComposing||(U.preventDefault(),U.stopPropagation(),x(!1))}function P(U,F){if(U.pointerType==="touch"||U.button!==0||!U.isPrimary||e.enabled?.()===!1||!(U.currentTarget instanceof HTMLElement))return;const B=e.container.value,W=U.currentTarget.closest("[data-panel-tab-id]");!B||!W||(x(!1),g?.cancel(),g=null,clearTimeout(m),h=!1,c=U.clientX,u=U.clientY,r={id:U.pointerId,tabId:F,x:c,y:u,index:-1,button:U.currentTarget,tab:W,container:B,grabOffset:c-W.getBoundingClientRect().left},window.addEventListener("pointermove",M,{passive:!1}),window.addEventListener("pointerup",_),window.addEventListener("pointercancel",E),window.addEventListener("keydown",L,!0),window.addEventListener("blur",T))}function N(){const U=h;return h=!1,U}return Fe(()=>e.tabs().map(U=>U.id).join(","),()=>{r&&x(!1)}),Fe(()=>e.enabled?.()??!0,U=>{U||x(!1)}),Qr(()=>{x(!1),clearTimeout(m),g?.cancel()}),{draggingId:t,indicatorLeft:i,styleFor:C,onPointerDown:P,consumeClick:N}}function ect(e){const t=Z(e.visible.value),n=Z(!1);let i=0,o,s=!1,r;function a(){o!==void 0&&cancelAnimationFrame(o),o=void 0}function l(d){s||d!==i||e.onGeometryChange===void 0||(e.onGeometryChange(),o=requestAnimationFrame(()=>{s||d!==i||(o=void 0,l(d))}))}function c(){const d=++i;a(),clearTimeout(r),n.value=!1,t.value=e.visible.value,bt(()=>{!s&&d===i&&e.onGeometryChange?.()})}Fe([e.visible,e.enabled],async([d,f],[h,m])=>{if(!f||!m||d===h||e.element.value===null){c();return}const g=++i;if(a(),clearTimeout(r),t.value=!0,n.value=!0,await bt(),g!==i)return;const y=e.element.value;if(y===null){c();return}const v=getComputedStyle(y).transitionDuration.split(",")[0]?.trim()??"0s",k=Number.parseFloat(v)*(v.endsWith("ms")?1:1e3);if(!Number.isFinite(k)||k<=1){c();return}l(g),r=setTimeout(c,k+50)});function u(d){d.target===e.element.value&&d.propertyName==="width"&&c()}return Qr(()=>{s=!0,i+=1,a(),clearTimeout(r)}),{contentVisible:t,sliding:n,onTransitionEnd:u}}const tct=500,iZ=".code-block-container, .diff-wrap, .table-node-wrapper, .node-content > pre[data-markstream-pre]";function Kue(e,t={}){const n=new Map,i=t.viewports?`${iZ}, ${t.viewports}`:iZ;function o(s){const r=s.classList.contains("table-node-wrapper"),a=s.matches(".node-content > pre[data-markstream-pre]")||t.viewports!==void 0&&s.matches(t.viewports),l=r||a,c=l?s.parentElement:s;a&&c.classList.add("md-code-scroll-host"),r&&c.classList.add("md-table-scroll-host");let u=null,d=null,f=0,h=!1,m,g=!0;const y=document.createElement("div");y.className="md-code-edges",y.setAttribute("aria-hidden","true"),c.append(y);function v(){if(!u)return;if(r){const F="var(--markdown-table-fade-size)";u.style.setProperty("--md-table-visible-start",`${u.scrollLeft}px`),u.style.setProperty("--md-table-visible-end",`${u.scrollLeft+u.clientWidth}px`),u.style.setProperty("--md-table-fade-start",u.scrollLeft>1?F:"0px"),u.style.setProperty("--md-table-fade-end",u.scrollWidth-u.clientWidth-u.scrollLeft>1?F:"0px");return}const U=[u.scrollTop>1,u.scrollHeight-u.clientHeight-u.scrollTop>1,u.scrollLeft>1,u.scrollWidth-u.clientWidth-u.scrollLeft>1];["top","bottom","left","right"].forEach((F,B)=>{const W=U[B]?"1":"0",D=`--markdown-edge-${F}`;y.style.getPropertyValue(D)!==W&&y.style.setProperty(D,W)})}const k=["horizontal","vertical"].map(U=>{const F=document.createElement("div");F.className=`md-code-scrollbar md-code-scrollbar--${U}`,F.hidden=!0,F.setAttribute("aria-hidden","true");const B=document.createElement("span");B.className="md-code-scrollbar-thumb",F.append(B),c.append(F);let W=null,D=0,z=0,$=-1;const j=J=>U==="horizontal"?J.clientX:J.clientY,G=()=>U==="horizontal"?u.scrollLeft:u.scrollTop,K=J=>{u&&(U==="horizontal"?u.scrollLeft=J:u.scrollTop=J)};F.addEventListener("pointerdown",J=>{if(!(!u||J.button!==0)){if(J.preventDefault(),J.stopPropagation(),J.target!==B){const q=F.getBoundingClientRect(),Y=j(J)-(U==="horizontal"?q.left:q.top),ae=U==="horizontal"?B.offsetWidth:B.offsetHeight;K((Y-ae/2)/Math.max(1,z)*D)}W={pointerId:J.pointerId,pointer:j(J),scroll:G()},F.setPointerCapture(J.pointerId),F.classList.add("is-dragging")}}),F.addEventListener("pointermove",J=>{!W||J.pointerId!==W.pointerId||K(W.scroll+(j(J)-W.pointer)/Math.max(1,z)*D)});const te=()=>{W=null,F.classList.remove("is-dragging")};return F.addEventListener("pointerup",te),F.addEventListener("pointercancel",te),F.addEventListener("lostpointercapture",te),F.addEventListener("wheel",J=>{if(!u)return;const q=J.deltaMode===1?22:J.deltaMode===2?u.clientHeight:1,Y=G(),ae=U==="horizontal"?J.deltaX||(J.shiftKey?J.deltaY:0):J.deltaY;K(Y+ae*q),Y!==G()&&J.preventDefault()},{passive:!1}),{axis:U,track:F,thumb:B,paint(){if(!u||F.hidden)return;const J=D>0?Math.max(0,Math.min(D,G()))/D*z:0;J!==$&&(B.style.transform=`translate${U==="horizontal"?"X":"Y"}(${J}px)`,$=J)},update(J){if(!u)return;const q=U==="horizontal"?u.clientWidth:u.clientHeight,Y=U==="horizontal"?u.scrollWidth:u.scrollHeight,ae=(q-J)/2,pe=Pce(G(),Y,q,ae,24);F.hidden=!pe||J<=0||q<=0,pe&&(D=Y-q,z=J-pe.height,B.style[U==="horizontal"?"width":"height"]=`${pe.height}px`,$=-1,this.paint())}}}),w=new Set;let C=-1;const x=new ResizeObserver(U=>{const F=r?U.find(B=>B.target===c):void 0;if(F){const B=F.contentRect.width;C>=0&&B!==C&&(P(),v()),C=B}_()}),S=new MutationObserver(_);S.observe(s,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:["data-overflow","data-md-nums","class"]});const M=new MutationObserver(_);function _(){g=!0,T()}function T(){!h&&!f&&(f=requestAnimationFrame(N))}function E(){const U=getComputedStyle(s).getPropertyValue("--markdown-code-scrollbar-idle-delay").trim(),F=parseFloat(U);return Number.isFinite(F)?U.endsWith("ms")?F:F*1e3:tct}function L(){r&&(c.classList.add("md-table-scrolling"),clearTimeout(m),m=setTimeout(()=>c.classList.remove("md-table-scrolling"),E())),T()}function P(){u&&u.classList.toggle("md-table-scroll-overflow",u.scrollWidth>u.clientWidth+1)}function N(){if(f=0,h)return;if(!g){for(const q of k)q.paint();v();return}g=!1;const U=s.querySelector("diffs-container")?.shadowRoot??null;U!==d&&(M.disconnect(),d=U,d&&M.observe(d,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:["data-overflow","data-md-nums"]}));const F=l?s:d?.querySelector("code[data-code]")??s.querySelector("pre");if(F!==u&&(u?.removeEventListener("scroll",L),u?.classList.remove("md-code-scroll-viewport"),u=F,u?.classList.add("md-code-scroll-viewport"),u?.addEventListener("scroll",L,{passive:!0})),!u){y.hidden=!0;for(const q of k)q.track.hidden=!0;return}const B=new Set([c,s,u]),W=r?u.querySelector("table"):u.parentElement;W&&B.add(W);for(const q of w)B.has(q)||(x.unobserve(q),w.delete(q));for(const q of B)w.has(q)||(x.observe(q),w.add(q));r&&P();const D=u.getBoundingClientRect(),z=c.getBoundingClientRect(),$=parseFloat(getComputedStyle(s).borderBottomLeftRadius)||0,j=getComputedStyle(s).getPropertyValue("--markdown-code-scrollbar-edge-gap").trim(),G=j.endsWith("rem")?parseFloat(getComputedStyle(document.documentElement).fontSize):1,K=r?parseFloat(j)*G:$;let te=D.left-z.left+K,J=D.left-z.left;if(s.classList.contains("md-code-nums")){const q=u.querySelector("[data-line], .diff-line:not(.diff-hunk)");if(q){const Y=getComputedStyle(q,"::before"),ae=(parseFloat(Y.width)||0)+(parseFloat(Y.paddingLeft)||0)+(parseFloat(Y.paddingRight)||0);J+=ae,te=Math.max($,J)}}y.hidden=r||!D.width||!D.height,y.style.borderEndStartRadius=s.classList.contains("md-code-nums")?"0px":"var(--markdown-code-radius)",y.style.left=`${J}px`,y.style.top=`${D.top-z.top}px`,y.style.width=`${Math.max(0,D.right-z.left-J)}px`,y.style.height=`${D.height}px`,v();for(const q of k){if(!D.width||!D.height){q.track.hidden=!0;continue}const Y=q.axis==="horizontal",ae=Y?te:Math.max($,D.top-z.top),pe=Y?D.right-z.left-K:D.bottom-z.top-$;Y?(q.track.style.left=`${ae}px`,q.track.style.width=`${Math.max(0,pe-ae)}px`,q.track.style.top=`calc(${D.bottom-z.top}px - var(--markdown-code-scrollbar-size) - var(--markdown-code-scrollbar-edge-gap))`):(q.track.style.top=`${ae}px`,q.track.style.height=`${Math.max(0,pe-ae)}px`,l&&(q.track.style.right=`calc(${z.right-D.right}px + var(--markdown-code-scrollbar-edge-gap))`)),q.update(pe-ae)}}return _(),{update:_,destroy(){h=!0,cancelAnimationFrame(f),clearTimeout(m),x.disconnect(),S.disconnect(),M.disconnect(),u?.removeEventListener("scroll",L),u?.classList.remove("md-code-scroll-viewport");for(const U of k)U.track.remove();y.remove(),a&&c.classList.remove("md-code-scroll-host"),r&&(c.classList.remove("md-table-scroll-host"),c.classList.remove("md-table-scrolling"),s.classList.remove("md-table-scroll-overflow"),s.style.removeProperty("--md-table-visible-start"),s.style.removeProperty("--md-table-visible-end"),s.style.removeProperty("--md-table-fade-start"),s.style.removeProperty("--md-table-fade-end"))}}}return{sync(){const s=new Set(e.querySelectorAll(i));for(const[r,a]of n)s.has(r)||(a.destroy(),n.delete(r));for(const r of s)n.has(r)||n.set(r,o(r))},destroy(){for(const s of n.values())s.destroy();n.clear()}}}const nct={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",overflow:"visible"};function ict(e,t){return b(),I("svg",nct,[...t[0]||(t[0]=[A("g",{transform:"scale(0.1)","stroke-width":"20"},[A("path",{d:"M10 174h14q12 0 16-14l18-72q4-14 18-14h58q14 0 18 14l18 72q4 14 16 14h14"}),A("path",{d:"M240 95v58m-29-29h58",transform:"translate(0 -15)"})],-1)])])}const oct=it({name:"kimi-tab-new-right",render:ict}),sct=` + + +`,rct={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",overflow:"visible"};function act(e,t){return b(),I("svg",rct,[...t[0]||(t[0]=[A("g",{transform:"scale(0.1)","stroke-width":"20"},[A("path",{d:"M40 174h14q12 0 16-14l18-72q4-14 18-14h28q14 0 18 14l18 72q4 14 16 14h14"}),A("path",{d:"M-19 99l50 50m0-50-50 50 M215 99l50 50m0-50-50 50",transform:"translate(0 -15)"})],-1)])])}const lct=it({name:"kimi-tab-close-others",render:act}),cct=` + + +`,uct={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",overflow:"visible"};function dct(e,t){return b(),I("svg",uct,[...t[0]||(t[0]=[A("g",{transform:"scale(0.1)","stroke-width":"20"},[A("path",{d:"M10 174h14q12 0 16-14l18-72q4-14 18-14h58q14 0 18 14l18 72q4 14 16 14h14"}),A("path",{d:"M215 99l50 50m0-50-50 50",transform:"translate(0 -15)"})],-1)])])}const fct=it({name:"kimi-tab-close-right",render:dct}),hct=` + + +`,pct={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function mct(e,t){return b(),I("svg",pct,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"M10 7.22L6.603 10H3v4h3.603L10 16.78zM5.889 16H2a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h3.889l5.294-4.332a.5.5 0 0 1 .817.387v15.89a.5.5 0 0 1-.817.387zm14.525-4l3.536 3.536l-1.415 1.414L19 13.414l-3.536 3.536l-1.414-1.414L17.586 12L14.05 8.465l1.414-1.415L19 10.586l3.535-3.536l1.415 1.415z"},null,-1)])])}const gct=it({name:"ri-volume-mute-line",render:mct}),vct={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function yct(e,t){return b(),I("svg",vct,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"M6.603 10L10 7.22v9.56L6.603 14H3v-4zM2 16h3.889l5.294 4.332a.5.5 0 0 0 .817-.387V4.055a.5.5 0 0 0-.817-.387L5.89 8H2a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1m21-4c0 3.292-1.446 6.246-3.738 8.262l-1.418-1.418A8.98 8.98 0 0 0 21 12a8.98 8.98 0 0 0-3.155-6.844l1.417-1.418A10.97 10.97 0 0 1 23 12m-5 0a5.99 5.99 0 0 0-2.287-4.713l-1.429 1.429A4 4 0 0 1 16 12c0 1.36-.679 2.561-1.716 3.284l1.43 1.43A5.99 5.99 0 0 0 18 12"},null,-1)])])}const bct=it({name:"ri-volume-up-line",render:yct}),kct='',wct='',Cct={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Act(e,t){return b(),I("svg",Cct,[...t[0]||(t[0]=[A("path",{d:"M12.0684 2.03418C12.5654 2.03421 12.9687 2.43755 12.9688 2.93457V11.0996H21.0654C21.5625 11.0996 21.9658 11.503 21.9658 12C21.9658 12.497 21.5625 12.9004 21.0654 12.9004H12.9688V21.0654C12.9687 21.5624 12.5654 21.9658 12.0684 21.9658C11.5713 21.9658 11.168 21.5625 11.168 21.0654V12.9004H2.93457C2.43751 12.9004 2.03418 12.4971 2.03418 12C2.03418 11.5029 2.43751 11.0996 2.93457 11.0996H11.168V2.93457C11.168 2.43753 11.5713 2.03418 12.0684 2.03418Z",fill:"currentColor"},null,-1)])])}const xct=it({name:"kimi-add",render:Act}),Sct={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"};function _ct(e,t){return b(),I("svg",Sct,[...t[0]||(t[0]=[A("path",{id:"p0",d:"M 0 -9.9 C -5.468 -9.9 -9.9 -5.468 -9.9 0 C -9.9 1.923 -9.351 3.719 -8.402 5.239 C -8.402 5.239 -9.483 7.821 -9.483 7.821 C -9.896 8.809 -9.171 9.9 -8.099 9.9 C -8.099 9.9 0 9.9 0 9.9 C 5.468 9.9 9.9 5.468 9.9 0 C 9.9 -5.468 5.468 -9.9 0 -9.9 Z M -8.1 0 C -8.1 -4.474 -4.474 -8.1 0 -8.1 C 4.473 -8.1 8.1 -4.474 8.1 0 C 8.1 4.473 4.473 8.1 -0.001 8.1 C -0.001 8.1 -7.648 8.1 -7.648 8.1 L -6.365 5.035 C -6.365 5.035 -6.648 4.629 -6.648 4.629 C -7.563 3.317 -8.1 1.723 -8.1 0 Z",transform:"matrix(1 0 0 1 12 12)",fill:"currentColor","fill-rule":"evenodd"},null,-1),A("path",{id:"p1",d:"M 3.6 0.5 L -2.6 0.5 M 0.5 -2.573 L 0.5 3.573",transform:"translate(11.5 11.5)",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round"},null,-1)])])}const Ict=it({name:"kimi-add-conversation",render:_ct}),Tct={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Mct(e,t){return b(),I("svg",Tct,[...t[0]||(t[0]=[A("path",{d:"M15.0996 12C15.5967 12 16 12.4033 16 12.9004C15.9998 13.3973 15.5965 13.7998 15.0996 13.7998H8.90039C8.40346 13.7998 8.00021 13.3973 8 12.9004C8 12.4033 8.40333 12 8.90039 12H15.0996Z",fill:"currentColor"},null,-1),A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M19 3.2002C20.5464 3.2002 21.7998 4.4536 21.7998 6V7C21.7998 8.03565 21.2363 8.93754 20.4004 9.42188V17C20.4004 19.1539 18.6539 20.9004 16.5 20.9004H7.5C5.34609 20.9004 3.59961 19.1539 3.59961 17V9.42188C2.76374 8.93754 2.2002 8.03565 2.2002 7V6C2.2002 4.4536 3.4536 3.2002 5 3.2002H19ZM5.40039 17C5.40039 18.1598 6.3402 19.0996 7.5 19.0996H16.5C17.6598 19.0996 18.5996 18.1598 18.5996 17V9.7998H5.40039V17ZM4.89746 5.00488C4.39333 5.05621 4 5.48232 4 6V7L4.00488 7.10254C4.05278 7.57297 4.42703 7.94722 4.89746 7.99512L5 8H19C19.5523 8 20 7.55228 20 7V6C20 5.44772 19.5523 5 19 5H5L4.89746 5.00488Z",fill:"currentColor"},null,-1)])])}const Ect=it({name:"kimi-archive",render:Mct}),Lct={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Rct(e,t){return b(),I("svg",Lct,[...t[0]||(t[0]=[A("path",{d:"M12.3994 12.4863C12.396 10.8789 14.2659 9.99419 15.5068 11.0156L21.3887 15.8594C22.6251 16.8787 22.1145 18.8522 20.5918 19.1816L20.4404 19.207L17.6953 19.5889C17.6853 19.5903 17.675 19.5934 17.666 19.5977L17.6416 19.6143L15.6055 21.4961L15.4902 21.5957C14.3092 22.5333 12.5401 21.7604 12.4238 20.2568L12.417 20.1045L12.3994 12.4863ZM14.2568 12.3916C14.2298 12.4044 14.2145 12.4205 14.209 12.4287C14.2068 12.4321 14.2055 12.4358 14.2041 12.4404C14.2028 12.4447 14.1992 12.4578 14.1992 12.4824L14.2168 20.0996L14.2227 20.1445C14.2241 20.149 14.2254 20.1522 14.2275 20.1553C14.2329 20.1629 14.2486 20.1788 14.2773 20.1914C14.3063 20.204 14.329 20.2044 14.3379 20.2031C14.3414 20.2026 14.3446 20.2011 14.3486 20.1992C14.3527 20.1972 14.3649 20.1912 14.3838 20.1738L16.4199 18.292L16.5156 18.2041L16.623 18.1299L16.6475 18.1133L16.7646 18.0342L16.8916 17.9727C17.104 17.8715 17.3 17.827 17.4443 17.8066H17.4473L20.1475 17.4307L20.2217 17.417C20.231 17.4143 20.2373 17.4141 20.2393 17.4131C20.2419 17.4115 20.2448 17.4086 20.248 17.4053C20.2562 17.3968 20.27 17.378 20.2773 17.3486C20.2846 17.3193 20.2817 17.298 20.2793 17.29C20.2783 17.2869 20.2761 17.2833 20.2734 17.2793C20.2707 17.2752 20.2631 17.2637 20.2441 17.248V17.249L14.3623 12.4053C14.3434 12.3898 14.3313 12.3836 14.3271 12.3818C14.323 12.3802 14.3192 12.3793 14.3154 12.3789C14.3054 12.378 14.2834 12.3791 14.2568 12.3916ZM18.6797 2.00488C20.5292 2.09842 22 3.62727 22 5.5L21.9951 13H20.2002V9H3.7998V16C3.7998 16.9389 4.56112 17.7002 5.5 17.7002H11V19.5H5.5L5.32031 19.4951C3.53035 19.4046 2.09541 17.9697 2.00488 16.1797L2 16V5.5C2 3.62727 3.47083 2.09842 5.32031 2.00488L5.5 2H18.5L18.6797 2.00488ZM5.5 3.7998C4.61979 3.7998 3.89565 4.46893 3.80859 5.32617L3.7998 5.5V7.2002H20.2002V5.5C20.2002 4.61979 19.5311 3.89565 18.6738 3.80859L18.5 3.7998H5.5ZM7.3916 4.60449C7.84564 4.65038 8.2002 5.03386 8.2002 5.5C8.2002 5.96614 7.84564 6.34962 7.3916 6.39551L7.2998 6.40039H5.5C5.00294 6.40039 4.59961 5.99706 4.59961 5.5C4.59961 5.00294 5.00294 4.59961 5.5 4.59961H7.2998L7.3916 4.60449Z",fill:"currentColor"},null,-1)])])}const Pct=it({name:"kimi-browser",render:Rct}),$ct={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Oct(e,t){return b(),I("svg",$ct,[...t[0]||(t[0]=[A("path",{d:"M2.20312 12.2657C2.20312 6.22136 6.37933 2.2002 12.2978 2.2002C17.8831 2.2002 21.8031 5.81671 21.8031 11.2541C21.8031 14.4407 20.2659 16.6157 18.0625 16.6157C16.7302 16.6157 15.731 15.8317 15.3467 14.5419H15.1929C14.5524 15.9581 13.297 16.7421 11.606 16.7421C9.04391 16.7421 7.0711 14.7695 7.0711 12.0128C7.0711 9.15503 9.04391 7.10652 11.606 7.10652C13.0408 7.10652 14.3731 7.91581 14.9623 9.00329H15.0904V7.51116H16.8839V13.0497C16.8839 14.1119 17.3707 14.7948 18.1393 14.7948C19.1385 14.7948 19.8303 13.4038 19.8303 11.33C19.8303 6.95477 16.7046 4.04639 12.2978 4.04639C7.5579 4.04639 4.20156 7.33413 4.20156 12.2657C4.20156 16.8939 7.5579 19.9287 12.2721 19.9287C13.835 19.9287 15.7053 19.4482 17.1145 18.5883L17.96 20.2322C16.3459 21.1932 14.1681 21.8002 12.2978 21.8002C6.37933 21.8002 2.20312 17.9814 2.20312 12.2657ZM9.2745 12.0128C9.2745 13.6567 10.3762 14.7695 11.9647 14.7695C13.6044 14.7695 14.7574 13.6567 14.7574 12.0128C14.7574 10.2678 13.6044 9.07916 11.9647 9.07916C10.3762 9.07916 9.2745 10.2678 9.2745 12.0128Z",fill:"currentColor"},null,-1)])])}const Fct=it({name:"kimi-at",render:Oct}),Dct={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Nct(e,t){return b(),I("svg",Dct,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.386 21.6387C11.7378 21.988 12.3059 21.987 12.6565 21.6364L18.1949 16.098C18.5464 15.7465 18.5464 15.1766 18.1949 14.8252C17.8434 14.4737 17.2736 14.4737 16.9221 14.8252L12.9201 18.8272V3.00002C12.9201 2.50297 12.5171 2.10003 12.0201 2.10003C11.523 2.10003 11.1201 2.50297 11.1201 3.00002V18.8383L7.07554 14.8229C6.7228 14.4727 6.15295 14.4747 5.80275 14.8275C5.45255 15.1802 5.45461 15.7501 5.80735 16.1003L11.386 21.6387Z",fill:"currentColor"},null,-1)])])}const Bct=it({name:"kimi-arrow-down",render:Nct}),zct={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Hct(e,t){return b(),I("svg",zct,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M2.16127 12.814C1.81197 12.4622 1.81299 11.8941 2.16357 11.5435L7.70203 6.00506C8.0535 5.65359 8.62335 5.65359 8.97482 6.00506C9.32629 6.35653 9.32629 6.92638 8.97482 7.27785L4.97276 11.2799H20.8C21.297 11.2799 21.7 11.6829 21.7 12.1799C21.7 12.677 21.297 13.0799 20.8 13.0799H4.96171L8.97712 17.1244C9.32732 17.4772 9.32526 18.047 8.97252 18.3972C8.61978 18.7474 8.04993 18.7454 7.69973 18.3926L2.16127 12.814Z",fill:"currentColor"},null,-1)])])}const jct=it({name:"kimi-arrow-left",render:Hct}),Wct={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function qct(e,t){return b(),I("svg",Wct,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M21.4387 12.814C21.788 12.4622 21.787 11.8941 21.4364 11.5436L15.8979 6.0051C15.5464 5.65363 14.9766 5.65363 14.6251 6.0051C14.2737 6.35657 14.2737 6.92642 14.6251 7.27789L18.6272 11.28H2.79998C2.30293 11.28 1.89998 11.6829 1.89998 12.18C1.89998 12.677 2.30293 13.08 2.79998 13.08H18.6382L14.6228 17.1245C14.2726 17.4772 14.2747 18.0471 14.6274 18.3973C14.9802 18.7475 15.55 18.7454 15.9002 18.3927L21.4387 12.814Z",fill:"currentColor"},null,-1)])])}const Vct=it({name:"kimi-arrow-right",render:qct}),Uct={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Kct(e,t){return b(),I("svg",Uct,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.386 2.36129C11.7378 2.01198 12.3059 2.013 12.6565 2.36358L18.1949 7.90204C18.5464 8.25351 18.5464 8.82336 18.1949 9.17483C17.8434 9.52631 17.2736 9.52631 16.9221 9.17483L12.9201 5.17277V21C12.9201 21.497 12.5171 21.9 12.0201 21.9C11.523 21.9 11.1201 21.497 11.1201 21V5.16172L7.07554 9.17713C6.7228 9.52733 6.15295 9.52527 5.80275 9.17253C5.45255 8.81979 5.45461 8.24995 5.80735 7.89975L11.386 2.36129Z",fill:"currentColor"},null,-1)])])}const Zct=it({name:"kimi-arrow-up",render:Kct}),Gct={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Qct(e,t){return b(),I("svg",Gct,[...t[0]||(t[0]=[A("path",{d:"M19.3027 5.9053C19.6542 5.55397 20.2247 5.55388 20.5761 5.9053C20.9273 6.25675 20.9273 6.82734 20.5761 7.17874L9.65911 18.0948C9.30773 18.4461 8.73814 18.446 8.38665 18.0948L3.42376 13.1328C3.0726 12.7814 3.07263 12.2118 3.42376 11.8604C3.77524 11.509 4.34575 11.5089 4.6972 11.8604L9.02239 16.1856L19.3027 5.9053Z",fill:"currentColor"},null,-1)])])}const Yct=it({name:"kimi-check",render:Qct}),Jct={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Xct(e,t){return b(),I("svg",Jct,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.3912 16.7134C11.743 17.0627 12.3111 17.0617 12.6617 16.7111L19.6364 9.73641C19.9878 9.38494 19.9878 8.81509 19.6364 8.46362C19.2849 8.11215 18.7151 8.11215 18.3636 8.46362L12.023 14.8042L5.63407 8.46132C5.28133 8.11112 4.71149 8.11318 4.36129 8.46592C4.01109 8.81866 4.01314 9.3885 4.36588 9.73871L11.3912 16.7134Z",fill:"currentColor"},null,-1)])])}const eut=it({name:"kimi-chevron-down",render:Xct}),tut={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function nut(e,t){return b(),I("svg",tut,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M16.1261 12.6088C16.4754 12.257 16.4743 11.6889 16.1238 11.3383L9.14904 4.36363C8.79757 4.01216 8.22772 4.01216 7.87625 4.36363C7.52477 4.7151 7.52477 5.28495 7.87625 5.63642L14.2169 11.977L7.87395 18.3659C7.52375 18.7187 7.52581 19.2885 7.87855 19.6387C8.23129 19.9889 8.80113 19.9869 9.15133 19.6341L16.1261 12.6088Z",fill:"currentColor"},null,-1)])])}const iut=it({name:"kimi-chevron-right",render:nut}),out={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function sut(e,t){return b(),I("svg",out,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.3912 8.46132C11.743 8.11202 12.3111 8.11304 12.6617 8.46362L19.6364 15.4383C19.9878 15.7898 19.9878 16.3597 19.6364 16.7111C19.2849 17.0626 18.7151 17.0626 18.3636 16.7111L12.023 10.3705L5.63407 16.7134C5.28133 17.0636 4.71149 17.0616 4.36129 16.7088C4.01109 16.3561 4.01314 15.7862 4.36588 15.436L11.3912 8.46132Z",fill:"currentColor"},null,-1)])])}const rut=it({name:"kimi-chevron-up",render:sut}),aut={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function lut(e,t){return b(),I("svg",aut,[...t[0]||(t[0]=[A("circle",{cx:"12",cy:"12",r:"10.875",stroke:"currentColor","stroke-width":"2.25"},null,-1),A("path",{d:"M7.125 12.6L10.65 16.125L17.025 8.85",stroke:"currentColor","stroke-width":"2.25","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])])}const cut=it({name:"kimi-circle-check",render:lut}),uut={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function dut(e,t){return b(),I("svg",uut,[...t[0]||(t[0]=[A("g",{transform:"scale(1.333333)"},[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M9.00033 1.50033C13.1423 1.5005 16.5003 4.8583 16.5003 9.00033C16.5001 13.1422 13.1422 16.5001 9.00033 16.5003C4.8583 16.5003 1.5005 13.1423 1.50033 9.00033C1.50033 4.85819 4.85819 1.50033 9.00033 1.50033ZM12.8519 6.42318C12.5883 6.15957 12.1614 6.15957 11.8978 6.42318L7.88411 10.4359L6.32064 8.8724C6.05703 8.60879 5.62916 8.60879 5.36556 8.8724C5.10235 9.13593 5.10234 9.56297 5.36556 9.8265L7.40755 11.8675C7.67116 12.1311 8.09806 12.1311 8.36165 11.8675L12.8519 7.37728C13.1155 7.11368 13.1155 6.68678 12.8519 6.42318Z",fill:"currentColor"})],-1)])])}const fut=it({name:"kimi-circle-check-filled",render:dut}),hut={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function put(e,t){return b(),I("svg",hut,[...t[0]||(t[0]=[A("g",{transform:"scale(1.333333)"},[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M1.575 9C1.575 4.89918 4.89918 1.575 9 1.575C13.1008 1.575 16.425 4.89918 16.425 9C16.425 13.1008 13.1008 16.425 9 16.425C4.89918 16.425 1.575 13.1008 1.575 9ZM9 2.925C5.64477 2.925 2.925 5.64477 2.925 9C2.925 12.3552 5.64477 15.075 9 15.075C12.3552 15.075 15.075 12.3552 15.075 9C15.075 5.64477 12.3552 2.925 9 2.925Z",fill:"currentColor"})],-1)])])}const mut=it({name:"kimi-circle-empty",render:put}),gut={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function vut(e,t){return b(),I("svg",gut,[...t[0]||(t[0]=[A("g",{transform:"translate(12,12) scale(1.333333) translate(-9.752,-9.483)"},[A("path",{d:"M6.82857 14.4013C6.46392 14.4013 6.12991 14.3125 5.82654 14.1347C5.52317 13.954 5.28109 13.7119 5.1003 13.4085C4.92257 13.1051 4.8337 12.7711 4.8337 12.4065C4.8337 12.0388 4.92257 11.7032 5.1003 11.3998C5.28109 11.0965 5.52317 10.8544 5.82654 10.6736C6.12991 10.4928 6.46392 10.4024 6.82857 10.4024H7.89496V8.55462H6.82857C6.46392 8.55462 6.12991 8.46576 5.82654 8.28803C5.52317 8.10723 5.28109 7.86668 5.1003 7.56638C4.92257 7.26301 4.8337 6.92747 4.8337 6.55975C4.8337 6.19203 4.92257 5.85802 5.1003 5.55772C5.28109 5.25435 5.52317 5.0138 5.82654 4.83607C6.12991 4.65528 6.46392 4.56488 6.82857 4.56488C7.19629 4.56488 7.53183 4.65528 7.8352 4.83607C8.13857 5.0138 8.38065 5.25435 8.56144 5.55772C8.74224 5.85802 8.83264 6.19203 8.83264 6.55975V7.61694H10.6804V6.55975C10.6804 6.19203 10.7693 5.85802 10.947 5.55772C11.1278 5.25435 11.3684 5.0138 11.6687 4.83607C11.972 4.65528 12.3076 4.56488 12.6753 4.56488C13.043 4.56488 13.377 4.65528 13.6773 4.83607C13.9807 5.0138 14.2212 5.25435 14.399 5.55772C14.5798 5.85802 14.6702 6.19203 14.6702 6.55975C14.6702 6.92747 14.5798 7.26301 14.399 7.56638C14.2212 7.86668 13.9807 8.10723 13.6773 8.28803C13.377 8.46576 13.043 8.55462 12.6753 8.55462H11.6181V10.4024H12.6753C13.043 10.4024 13.377 10.4928 13.6773 10.6736C13.9807 10.8544 14.2212 11.0965 14.399 11.3998C14.5798 11.7032 14.6702 12.0388 14.6702 12.4065C14.6702 12.7711 14.5798 13.1051 14.399 13.4085C14.2212 13.7119 13.9807 13.954 13.6773 14.1347C13.377 14.3125 13.043 14.4013 12.6753 14.4013C12.3076 14.4013 11.972 14.3125 11.6687 14.1347C11.3684 13.954 11.1278 13.7119 10.947 13.4085C10.7693 13.1051 10.6804 12.7711 10.6804 12.4065V11.3401H8.83264V12.4065C8.83264 12.7711 8.74224 13.1051 8.56144 13.4085C8.38065 13.7119 8.13857 13.954 7.8352 14.1347C7.53183 14.3125 7.19629 14.4013 6.82857 14.4013ZM6.82857 13.4637C7.02469 13.4637 7.20242 13.4162 7.36176 13.3212C7.52417 13.2262 7.65287 13.099 7.74787 12.9397C7.84593 12.7773 7.89496 12.5995 7.89496 12.4065V11.3401H6.82857C6.63552 11.3401 6.45779 11.3891 6.29538 11.4872C6.13604 11.5822 6.00887 11.7109 5.91387 11.8733C5.81888 12.0326 5.77138 12.2104 5.77138 12.4065C5.77138 12.5995 5.81888 12.7773 5.91387 12.9397C6.00887 13.099 6.13604 13.2262 6.29538 13.3212C6.45779 13.4162 6.63552 13.4637 6.82857 13.4637ZM6.82857 7.61694H7.89496V6.55975C7.89496 6.36364 7.84593 6.18591 7.74787 6.02656C7.65287 5.86722 7.52417 5.74005 7.36176 5.64505C7.20242 5.55006 7.02469 5.50256 6.82857 5.50256C6.63552 5.50256 6.45779 5.55006 6.29538 5.64505C6.13604 5.74005 6.00887 5.86722 5.91387 6.02656C5.81888 6.18591 5.77138 6.36364 5.77138 6.55975C5.77138 6.75587 5.81888 6.93513 5.91387 7.09754C6.00887 7.25688 6.13604 7.38405 6.29538 7.47905C6.45779 7.57098 6.63552 7.61694 6.82857 7.61694ZM11.6181 7.61694H12.6753C12.8714 7.61694 13.0491 7.57098 13.2085 7.47905C13.3678 7.38405 13.495 7.25688 13.59 7.09754C13.685 6.93513 13.7325 6.75587 13.7325 6.55975C13.7325 6.36364 13.685 6.18591 13.59 6.02656C13.495 5.86722 13.3678 5.74005 13.2085 5.64505C13.0491 5.55006 12.8714 5.50256 12.6753 5.50256C12.4792 5.50256 12.2999 5.55006 12.1375 5.64505C11.9782 5.74005 11.851 5.86722 11.756 6.02656C11.6641 6.18591 11.6181 6.36364 11.6181 6.55975V7.61694ZM12.6753 13.4637C12.8714 13.4637 13.0491 13.4162 13.2085 13.3212C13.3678 13.2262 13.495 13.099 13.59 12.9397C13.685 12.7773 13.7325 12.5995 13.7325 12.4065C13.7325 12.2104 13.685 12.0326 13.59 11.8733C13.495 11.7109 13.3678 11.5822 13.2085 11.4872C13.0491 11.3891 12.8714 11.3401 12.6753 11.3401H11.6181V12.4065C11.6181 12.5995 11.6641 12.7773 11.756 12.9397C11.851 13.099 11.9782 13.2262 12.1375 13.3212C12.2999 13.4162 12.4792 13.4637 12.6753 13.4637ZM8.83264 10.4024H10.6804V8.55462H8.83264V10.4024Z",fill:"currentColor"})],-1)])])}const yut=it({name:"kimi-key-command",render:vut}),but={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function kut(e,t){return b(),I("svg",but,[...t[0]||(t[0]=[A("g",{transform:"translate(12,12) scale(1.333333) translate(-12,-9)"},[A("path",{d:"M9.95492 13.8535C10.2909 13.8535 10.5131 13.6261 10.5131 13.3056C10.5131 13.1402 10.4459 13.0162 10.3477 12.9128L9.01422 11.6155L8.10453 10.8505L9.30366 10.9022H15.7593C17.0515 10.9022 17.5994 10.3181 17.5994 9.0518V5.98677C17.5994 4.69461 17.0515 4.14673 15.7593 4.14673H12.8907C12.5548 4.14673 12.317 4.39999 12.317 4.71011C12.317 5.02023 12.5496 5.2735 12.8907 5.2735H15.7335C16.2607 5.2735 16.4829 5.49575 16.4829 6.01779V9.01561C16.4829 9.54799 16.2555 9.77024 15.7335 9.77024H9.30366L8.10453 9.8271L9.01422 9.05696L10.3477 7.75963C10.4459 7.66142 10.5131 7.53738 10.5131 7.36681C10.5131 7.04635 10.2909 6.81893 9.95492 6.81893C9.81536 6.81893 9.6603 6.88095 9.54659 6.99466L6.57978 9.91496C6.4609 10.0287 6.39887 10.1837 6.39887 10.3388C6.39887 10.4887 6.4609 10.6437 6.57978 10.7575L9.54659 13.6829C9.6603 13.7915 9.81536 13.8535 9.95492 13.8535Z",fill:"currentColor"})],-1)])])}const wut=it({name:"kimi-key-enter",render:kut}),Cut={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Aut(e,t){return b(),I("svg",Cut,[...t[0]||(t[0]=[A("g",{transform:"translate(12,12) scale(1.333333) translate(-21.754,-9.022)"},[A("path",{d:"M22.2586 8.51709H24.2259C24.505 8.51709 24.7312 8.74335 24.7312 9.02246C24.7312 9.30157 24.505 9.52783 24.2259 9.52783H22.2586V11.4941C22.2586 11.7733 22.0323 11.9995 21.7532 11.9995C21.4741 11.9995 21.2478 11.7733 21.2478 11.4941V9.52783H19.2815C19.0024 9.52783 18.7761 9.30157 18.7761 9.02246C18.7761 8.74335 19.0024 8.51709 19.2815 8.51709H21.2478V6.54981C21.2478 6.2707 21.4741 6.04444 21.7532 6.04444C22.0323 6.04444 22.2586 6.2707 22.2586 6.54981V8.51709Z",fill:"currentColor"})],-1)])])}const xut=it({name:"kimi-key-plus",render:Aut}),Sut={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function _ut(e,t){return b(),I("svg",Sut,[...t[0]||(t[0]=[A("g",{transform:"scale(1.090909)"},[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.5833 2.75C17.6084 2.75 19.25 4.39162 19.25 6.41667V15.5833C19.2499 17.6083 17.6083 19.25 15.5833 19.25H6.41667C4.39168 19.25 2.7501 17.6083 2.75 15.5833V6.41667C2.75 4.39162 4.39162 2.75 6.41667 2.75H15.5833ZM15.2378 8.16496C14.9479 7.87503 14.4777 7.87511 14.1877 8.16496L9.77271 12.5791L8.05216 10.8595C7.76219 10.5696 7.29205 10.5695 7.00212 10.8595C6.71247 11.1494 6.71234 11.6196 7.00212 11.9095L9.24813 14.1546C9.53811 14.4444 10.0083 14.4445 10.2982 14.1546L15.2378 9.21501C15.5276 8.92508 15.5276 8.45489 15.2378 8.16496Z",fill:"currentColor"})],-1)])])}const Iut=it({name:"kimi-checkbox-checked",render:_ut}),Tut={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Mut(e,t){return b(),I("svg",Tut,[...t[0]||(t[0]=[A("path",{d:"M11.8999 6.79965C12.397 6.79965 12.7997 7.20235 12.7997 7.69941V11.7266L14.7359 13.6629C15.0873 14.0143 15.0879 14.584 14.7366 14.9355C14.3852 15.287 13.8148 15.287 13.4633 14.9355L11.2632 12.7355C11.0947 12.5668 11.0002 12.338 11.0001 12.0995V7.69941C11.0001 7.20238 11.4029 6.7997 11.8999 6.79965Z",fill:"currentColor"},null,-1),A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M12 1.89893C17.4677 1.89893 21.9001 6.33147 21.9002 11.7991C21.9002 17.2669 17.4678 21.6993 12 21.6993C6.53228 21.6993 2.09985 17.2669 2.09985 11.7991C2.09998 6.33147 6.53236 1.89893 12 1.89893ZM20.1 11.7998C20.1 7.32616 16.4737 3.69984 12 3.69984C7.5264 3.69984 3.90008 7.32616 3.90008 11.7998C3.90032 16.2732 7.52655 19.8998 12 19.8998C16.4735 19.8998 20.0998 16.2732 20.1 11.7998Z",fill:"currentColor"},null,-1)])])}const Eut=it({name:"kimi-clock",render:Mut}),Lut={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Rut(e,t){return b(),I("svg",Lut,[...t[0]||(t[0]=[A("path",{d:"M17.9542 4.77253C18.3056 4.42106 18.8761 4.42106 19.2276 4.77253C19.579 5.12401 19.579 5.69452 19.2276 6.04597L13.2735 12.0001L19.2276 17.9542C19.5791 18.3056 19.5791 18.8761 19.2276 19.2276C18.8761 19.5791 18.3056 19.5791 17.9542 19.2276L12.0001 13.2735L6.04595 19.2276C5.69451 19.5791 5.12399 19.579 4.77252 19.2276C4.42104 18.8761 4.42104 18.3056 4.77252 17.9542L10.7266 12.0001L4.77252 6.04597C4.42104 5.6945 4.42104 5.124 4.77252 4.77253C5.12399 4.42107 5.69448 4.42106 6.04595 4.77253L12.0001 10.7266L17.9542 4.77253Z",fill:"currentColor"},null,-1)])])}const Put=it({name:"kimi-close",render:Rut}),$ut={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Out(e,t){return b(),I("svg",$ut,[...t[0]||(t[0]=[A("path",{d:"M9.85815 11.957C10.9074 11.957 11.7583 12.8083 11.7585 13.8574V19.8574C11.7585 20.3545 11.3552 20.7578 10.8582 20.7578C10.3611 20.7578 9.95776 20.3545 9.95776 19.8574V13.8574C9.95755 13.8024 9.91325 13.7578 9.85815 13.7578H3.85815C3.3611 13.7578 2.95776 13.3545 2.95776 12.8574C2.95798 12.3605 3.36123 11.957 3.85815 11.957H9.85815Z",fill:"currentColor"},null,-1),A("path",{d:"M12.8582 2.95703C13.3551 2.95703 13.7583 3.36054 13.7585 3.85742V9.85742C13.7585 9.91265 13.8029 9.95703 13.8582 9.95703H19.8582C20.3551 9.95703 20.7583 10.3605 20.7585 10.8574C20.7585 11.3545 20.3552 11.7578 19.8582 11.7578H13.8582C12.8088 11.7578 11.9578 10.9068 11.9578 9.85742V3.85742C11.958 3.36054 12.3612 2.95703 12.8582 2.95703Z",fill:"currentColor"},null,-1)])])}const Fut=it({name:"kimi-collapse",render:Out}),Dut={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Nut(e,t){return b(),I("svg",Dut,[...t[0]||(t[0]=[A("path",{d:"M11.9004 2.19995C17.3678 2.20016 21.7998 6.63285 21.7998 12.1003C21.7996 17.5677 17.3677 21.9995 11.9004 21.9998H3.80078C2.72946 21.9996 2.00334 20.9089 2.41699 19.9207L3.49805 17.3386C2.54871 15.8189 2.00007 14.0226 2 12.1003C2 6.63272 6.43277 2.19995 11.9004 2.19995ZM11.9004 3.99976C7.42688 3.99976 3.7998 7.62684 3.7998 12.1003C3.79989 13.8228 4.33669 15.4175 5.25195 16.7292L5.53516 17.1345L4.25195 20.2H11.8994C16.3727 20.1999 19.9998 16.5736 20 12.1003C20 7.62697 16.3737 3.99997 11.9004 3.99976ZM8.9541 10.8005C9.75473 10.8006 10.4041 11.4491 10.4043 12.2498C10.4043 13.0505 9.75482 13.6998 8.9541 13.7C8.15329 13.7 7.50391 13.0506 7.50391 12.2498C7.50406 11.4491 8.15339 10.8005 8.9541 10.8005ZM15.1533 10.8005C15.9539 10.8006 16.6034 11.4491 16.6035 12.2498C16.6035 13.0505 15.954 13.6998 15.1533 13.7C14.3525 13.7 13.7031 13.0506 13.7031 12.2498C13.7033 11.4491 14.3526 10.8005 15.1533 10.8005Z",fill:"currentColor"},null,-1)])])}const But=it({name:"kimi-comment",render:Nut}),zut={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Hut(e,t){return b(),I("svg",zut,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M17 7.09961C19.1539 7.09961 20.9004 8.84609 20.9004 11V17C20.9004 19.1539 19.1539 20.9004 17 20.9004H11C8.84609 20.9004 7.09961 19.1539 7.09961 17V11C7.09961 8.84609 8.84609 7.09961 11 7.09961H17ZM11 8.90039C9.8402 8.90039 8.90039 9.8402 8.90039 11V17C8.90039 18.1598 9.8402 19.0996 11 19.0996H17C18.1598 19.0996 19.0996 18.1598 19.0996 17V11C19.0996 9.8402 18.1598 8.90039 17 8.90039H11Z",fill:"currentColor"},null,-1),A("path",{d:"M13 3.09961C14.4447 3.09961 15.705 3.88644 16.3779 5.0498C16.6265 5.47999 16.4789 6.03049 16.0488 6.2793C15.6186 6.52781 15.0681 6.38029 14.8193 5.9502C14.4548 5.32041 13.776 4.90039 13 4.90039H7C5.8402 4.90039 4.90039 5.8402 4.90039 7V13C4.90039 13.776 5.32041 14.4548 5.9502 14.8193C6.38029 15.0681 6.52781 15.6186 6.2793 16.0488C6.03049 16.4789 5.47999 16.6265 5.0498 16.3779C3.88644 15.705 3.09961 14.4447 3.09961 13V7C3.09961 4.84609 4.84609 3.09961 7 3.09961H13Z",fill:"currentColor"},null,-1)])])}const jut=it({name:"kimi-copy",render:Hut}),Wut={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function qut(e,t){return b(),I("svg",Wut,[...t[0]||(t[0]=[A("path",{d:"M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 10.2797 2.43414 8.66074 3.19922 7.24707C3.20172 7.24246 3.20453 7.23801 3.20703 7.2334C3.33385 6.99995 3.47181 6.77351 3.61621 6.55176C3.73214 6.37355 3.85079 6.19744 3.97754 6.02734C5.35905 4.17471 7.36856 2.81959 9.68945 2.27051C9.69952 2.26813 9.70965 2.26602 9.71973 2.26367C9.85224 2.23276 9.98563 2.2043 10.1201 2.17871C10.1542 2.17221 10.1884 2.16631 10.2227 2.16016C10.3466 2.13791 10.4712 2.11724 10.5967 2.09961C10.6301 2.09489 10.6637 2.0913 10.6973 2.08691C10.8216 2.07073 10.9465 2.05552 11.0723 2.04395C11.1125 2.04022 11.153 2.0384 11.1934 2.03516C11.4595 2.0139 11.7284 2 12 2ZM11.9941 3.7998C11.9968 3.86623 12 3.93292 12 4C12 6.76142 9.76142 9 7 9C6.14209 9 5.33517 8.78324 4.62988 8.40234C4.09862 9.48861 3.7998 10.7093 3.7998 12C3.7998 12.4438 3.83644 12.8791 3.9043 13.3037C4.52807 12.5673 5.45945 12.0996 6.5 12.0996C8.37777 12.0996 9.90039 13.6222 9.90039 15.5C9.90039 17.0702 8.83532 18.3903 7.38867 18.7812C8.70267 19.6765 10.2901 20.2002 12 20.2002C12.468 20.2002 12.9264 20.1583 13.373 20.083C13.1323 19.4342 13 18.7327 13 18C13 14.6863 15.6863 12 19 12C19.4098 12 19.8098 12.0416 20.1963 12.1201C20.1969 12.0801 20.2002 12.0401 20.2002 12C20.2002 7.47126 16.5287 3.7998 12 3.7998H11.9941ZM19 13.7998C16.6804 13.7998 14.7998 15.6804 14.7998 18C14.7998 18.5617 14.9112 19.0972 15.1113 19.5869C17.5225 18.597 19.3558 16.4929 19.9727 13.9141C19.6605 13.8399 19.3349 13.7998 19 13.7998ZM6.5 13.9004C5.61634 13.9004 4.90039 14.6163 4.90039 15.5C4.90039 16.3837 5.61634 17.0996 6.5 17.0996C7.38366 17.0996 8.09961 16.3837 8.09961 15.5C8.09961 14.6163 7.38366 13.9004 6.5 13.9004ZM15.5 6.09961C16.8255 6.09961 17.9004 7.17452 17.9004 8.5C17.9004 9.82548 16.8255 10.9004 15.5 10.9004C14.1745 10.9004 13.0996 9.82548 13.0996 8.5C13.0996 7.17452 14.1745 6.09961 15.5 6.09961ZM15.5 7.90039C15.1686 7.90039 14.9004 8.16863 14.9004 8.5C14.9004 8.83137 15.1686 9.09961 15.5 9.09961C15.8314 9.09961 16.0996 8.83137 16.0996 8.5C16.0996 8.16863 15.8314 7.90039 15.5 7.90039ZM10.1992 4C8.35326 4.41375 6.74333 5.44923 5.59961 6.87598C6.02235 7.08306 6.49716 7.2002 7 7.2002C8.76731 7.2002 10.1992 5.76731 10.1992 4Z",fill:"currentColor"},null,-1)])])}const Vut=it({name:"kimi-dark-mode",render:qut}),Uut={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Kut(e,t){return b(),I("svg",Uut,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M12 2.90002C12.4971 2.90002 12.9 3.30297 12.9 3.80002V12.2939L15.8081 9.38585C16.1595 9.03438 16.7294 9.03438 17.0808 9.38585C17.4323 9.73732 17.4323 10.3072 17.0808 10.6586L12.6364 15.1031C12.4676 15.2719 12.2387 15.3667 12 15.3667C11.7613 15.3667 11.5324 15.2719 11.3636 15.1031L6.91917 10.6586C6.5677 10.3072 6.5677 9.73732 6.91917 9.38585C7.27064 9.03438 7.84049 9.03438 8.19196 9.38585L11.1 12.2939V3.80002C11.1 3.30297 11.503 2.90002 12 2.90002ZM4.00001 13.5874C4.49706 13.5874 4.90001 13.9903 4.90001 14.4874V18.043C4.90001 18.2758 4.99249 18.499 5.1571 18.6636C5.32172 18.8282 5.54498 18.9207 5.77778 18.9207H18.2222C18.455 18.9207 18.6783 18.8283 18.8429 18.6636C19.0075 18.499 19.1 18.2758 19.1 18.043V14.4874C19.1 13.9903 19.5029 13.5874 20 13.5874C20.4971 13.5874 20.9 13.9903 20.9 14.4874V18.043C20.9 18.7531 20.6179 19.4342 20.1157 19.9364C19.6135 20.4386 18.9324 20.7207 18.2222 20.7207H5.77778C5.06759 20.7207 4.38649 20.4386 3.88431 19.9364C3.38213 19.4342 3.10001 18.7531 3.10001 18.043V14.4874C3.10001 13.9903 3.50295 13.5874 4.00001 13.5874Z",fill:"currentColor"},null,-1)])])}const Zut=it({name:"kimi-download",render:Kut}),Gut={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Qut(e,t){return b(),I("svg",Gut,[...t[0]||(t[0]=[A("path",{d:"M18.0179 3.09998C18.3963 3.10003 18.7709 3.17491 19.1205 3.31971C19.4701 3.46454 19.7884 3.67614 20.056 3.94373C20.3237 4.21144 20.5362 4.52965 20.681 4.87928C20.8258 5.22887 20.8997 5.60423 20.8997 5.9828C20.8997 6.36118 20.8257 6.73591 20.681 7.08533C20.5362 7.43497 20.3237 7.75317 20.056 8.02088L17.639 10.4379L9.15756 18.9183C8.5296 19.5463 7.74274 19.992 6.8812 20.2074L4.21811 20.8734C3.91148 20.95 3.5871 20.8596 3.36362 20.6361C3.14017 20.4126 3.05063 20.0883 3.12729 19.7816L3.79233 17.1185C4.00771 16.257 4.45344 15.4701 5.08139 14.8422L15.9798 3.94373C16.5203 3.40346 17.2536 3.09998 18.0179 3.09998ZM19.0003 19.1C19.4972 19.1002 19.8997 19.5034 19.8997 20.0004C19.8995 20.4971 19.4971 20.8996 19.0003 20.8998H12.0003C11.5034 20.8998 11.1001 20.4973 11.0999 20.0004C11.0999 19.5033 11.5033 19.1 12.0003 19.1H19.0003ZM18.0179 4.89979C17.7309 4.89979 17.4553 5.01417 17.2523 5.21717L6.35385 16.1146C5.95661 16.5119 5.67469 17.01 5.53842 17.5551L5.23666 18.7631L6.44467 18.4613C6.98971 18.3251 7.48782 18.0431 7.8851 17.6459L18.7826 6.74744C18.883 6.64702 18.9635 6.52821 19.0179 6.39686C19.0723 6.26558 19.0999 6.1247 19.0999 5.9828C19.0999 5.84075 19.0723 5.69916 19.0179 5.56776C18.9635 5.43645 18.883 5.31757 18.7826 5.21717C18.6821 5.11678 18.5631 5.03716 18.432 4.9828C18.3008 4.92845 18.16 4.89983 18.0179 4.89979Z",fill:"currentColor"},null,-1)])])}const Yut=it({name:"kimi-edit",render:Qut}),Jut={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Xut(e,t){return b(),I("svg",Jut,[...t[0]||(t[0]=[A("path",{d:"M5 11.0996C5.49693 11.0996 5.90018 11.5031 5.90039 12V18C5.90039 18.0552 5.94477 18.0996 6 18.0996H12C12.4969 18.0996 12.9002 18.5031 12.9004 19C12.9004 19.4971 12.4971 19.9004 12 19.9004H6C4.95066 19.9004 4.09961 19.0493 4.09961 18V12C4.09982 11.5031 4.50307 11.0996 5 11.0996ZM18 4.09961C19.0492 4.09961 19.9002 4.95084 19.9004 6V12C19.9004 12.4971 19.4971 12.9004 19 12.9004C18.5029 12.9004 18.0996 12.4971 18.0996 12V6C18.0994 5.94495 18.0551 5.90039 18 5.90039H12C11.5029 5.90039 11.0996 5.49706 11.0996 5C11.0998 4.50312 11.5031 4.09961 12 4.09961H18Z",fill:"currentColor"},null,-1)])])}const edt=it({name:"kimi-expand",render:Xut}),tdt={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function ndt(e,t){return b(),I("svg",tdt,[...t[0]||(t[0]=[A("g",null,[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M13.1723 2.1001C13.9413 2.10018 14.6793 2.40592 15.2231 2.94971L19.0512 6.77783C19.595 7.32162 19.9007 8.0596 19.9008 8.82861V18.0005C19.9008 20.1544 18.1543 21.9009 16.0004 21.9009H8.0004C5.84649 21.9009 4.10001 20.1544 4.10001 18.0005V6.00049C4.10001 3.84658 5.84649 2.1001 8.0004 2.1001H13.1723ZM8.0004 3.90088C6.8406 3.90088 5.90079 4.84069 5.90079 6.00049V18.0005C5.90079 19.1603 6.8406 20.1001 8.0004 20.1001H16.0004C17.1602 20.1001 18.1 19.1603 18.1 18.0005V9.90088H15.0004C13.3988 9.90088 12.1 8.60211 12.1 7.00049V3.90088H8.0004ZM13.9008 7.00049C13.9008 7.608 14.3929 8.1001 15.0004 8.1001H17.8217C17.8072 8.08375 17.7933 8.06681 17.7777 8.05127L13.9496 4.22314C13.9339 4.20745 13.9173 4.19286 13.9008 4.17822V7.00049Z",fill:"currentColor"})],-1)])])}const oZ=it({name:"kimi-file",render:ndt}),idt={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function odt(e,t){return b(),I("svg",idt,[...t[0]||(t[0]=[A("path",{d:"M15.4795 15.4971C15.9765 15.4971 16.3799 15.9004 16.3799 16.3975C16.3799 16.8945 15.9765 17.2978 15.4795 17.2979H8.52051C8.02345 17.2979 7.62012 16.8945 7.62012 16.3975C7.62012 15.9004 8.02345 15.4971 8.52051 15.4971H15.4795Z",fill:"currentColor"},null,-1),A("path",{d:"M12.3359 11.0996C12.8329 11.0997 13.2354 11.503 13.2354 12C13.2354 12.497 12.8329 12.9003 12.3359 12.9004H8.52051C8.02345 12.9004 7.62012 12.4971 7.62012 12C7.62012 11.5029 8.02345 11.0996 8.52051 11.0996H12.3359Z",fill:"currentColor"},null,-1),A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M13.1719 2.09961C13.9408 2.09969 14.6789 2.40555 15.2227 2.94922L19.0508 6.77734C19.5946 7.32113 19.9003 8.05911 19.9004 8.82812V18C19.9004 20.1539 18.1539 21.9004 16 21.9004H8C5.84626 21.9002 4.09961 20.1538 4.09961 18V6C4.09961 3.84621 5.84626 2.09981 8 2.09961H13.1719ZM8 3.90039C6.84037 3.90059 5.90039 4.84032 5.90039 6V18C5.90039 19.1597 6.84037 20.0994 8 20.0996H16C17.1598 20.0996 18.0996 19.1598 18.0996 18V9.90039H15C13.3985 9.90019 12.0996 8.6015 12.0996 7V3.90039H8ZM13.9004 7C13.9004 7.60739 14.3927 8.09941 15 8.09961H17.8213C17.8068 8.08333 17.7928 8.06626 17.7773 8.05078L13.9492 4.22266C13.9335 4.20696 13.9169 4.19237 13.9004 4.17773V7Z",fill:"currentColor"},null,-1)])])}const sdt=it({name:"kimi-file-text",render:odt}),rdt={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function adt(e,t){return b(),I("svg",rdt,[...t[0]||(t[0]=[A("path",{d:"M9.2373 3.7002C10.4169 3.7002 11.5297 4.24779 12.249 5.18262L12.4424 5.43359H18C20.0987 5.43359 21.7998 7.13472 21.7998 9.2334V16.5C21.7998 18.5987 20.0987 20.2998 18 20.2998H6C3.90132 20.2998 2.2002 18.5987 2.2002 16.5V7.5C2.2002 5.40132 3.90132 3.7002 6 3.7002H9.2373ZM6 5.5C4.89543 5.5 4 6.39543 4 7.5V16.5C4 17.6046 4.89543 18.5 6 18.5H18C19.0357 18.5 19.887 17.7128 19.9893 16.7041L20 16.5V9.2334C20 8.19775 19.2128 7.34641 18.2041 7.24414L18 7.2334H12.0479L11.9326 7.22656C11.666 7.19561 11.4205 7.05812 11.2549 6.84277L10.8223 6.28027C10.4437 5.78834 9.85808 5.5 9.2373 5.5H6ZM16 9.59961C16.4971 9.59961 16.9004 10.0029 16.9004 10.5C16.9004 10.9971 16.4971 11.4004 16 11.4004H8C7.50294 11.4004 7.09961 10.9971 7.09961 10.5C7.09961 10.0029 7.50294 9.59961 8 9.59961H16Z",fill:"currentColor"},null,-1)])])}const ldt=it({name:"kimi-folder",render:adt}),cdt={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function udt(e,t){return b(),I("svg",cdt,[...t[0]||(t[0]=[A("path",{d:"M9.2373 3.69922C10.4169 3.69922 11.5297 4.24681 12.249 5.18164L12.4424 5.43262H18C20.0987 5.43262 21.7998 7.13374 21.7998 9.23242V10.874C21.7995 11.3706 21.397 11.7732 20.9004 11.7734C20.4036 11.7734 20.0003 11.3708 20 10.874V9.23242C20 8.19677 19.2128 7.34543 18.2041 7.24316L18 7.23242H12.0479L11.9326 7.22559C11.666 7.19464 11.4205 7.05714 11.2549 6.8418L10.8223 6.2793C10.4437 5.78736 9.85808 5.49902 9.2373 5.49902H6C4.89543 5.49902 4 6.39445 4 7.49902V16.499C4 17.6036 4.89543 18.499 6 18.499H12.627C13.124 18.499 13.5273 18.9024 13.5273 19.3994C13.5271 19.896 13.1245 20.2986 12.6279 20.2988H6C3.90132 20.2988 2.2002 18.5977 2.2002 16.499V7.49902C2.2002 5.40034 3.90132 3.69922 6 3.69922H9.2373Z",fill:"currentColor"},null,-1),A("path",{d:"M20.9893 13.9863C21.1951 14.0069 21.3886 14.0986 21.5361 14.2461C21.7049 14.4149 21.7998 14.6442 21.7998 14.8828V18.2646C21.7998 18.7617 21.3964 19.165 20.8994 19.165C20.4028 19.1648 20.0004 18.7622 20 18.2656V17.1143L17.0908 20.0352C16.7393 20.3866 16.1688 20.3866 15.8174 20.0352C15.4662 19.6837 15.467 19.1141 15.8184 18.7627L18.7861 15.7822L17.627 15.7832C17.1301 15.7832 16.7268 15.3796 16.7266 14.8828C16.7267 14.386 17.1292 13.9827 17.626 13.9824L20.8994 13.9814L20.9893 13.9863Z",fill:"currentColor"},null,-1),A("path",{d:"M16 9.59863C16.4971 9.59863 16.9004 10.002 16.9004 10.499C16.9004 10.9961 16.4971 11.3994 16 11.3994H8C7.50294 11.3994 7.09961 10.9961 7.09961 10.499C7.09961 10.002 7.50294 9.59863 8 9.59863H16Z",fill:"currentColor"},null,-1)])])}const ddt=it({name:"kimi-folder-jump",render:udt}),fdt={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function hdt(e,t){return b(),I("svg",fdt,[...t[0]||(t[0]=[A("g",null,[A("path",{d:"M18.3623 9.99976L18.209 8.48999C18.2031 8.43161 18.2004 8.37289 18.2002 8.31421C18.1988 8.31196 18.1956 8.30842 18.1904 8.30347C18.1718 8.28559 18.1302 8.26245 18.0713 8.26245H11C10.261 8.26245 9.59753 7.81016 9.32617 7.1228L8.9082 6.06421C8.88101 5.9953 8.85737 5.92501 8.83887 5.85327C8.83778 5.85099 8.833 5.84268 8.81836 5.83179C8.79454 5.81475 8.7549 5.79939 8.70605 5.80054H3.92871C3.86986 5.80054 3.82825 5.82368 3.80957 5.84155C3.80816 5.8429 3.80675 5.84428 3.80566 5.84546L4.47559 14.0955L3.62109 17.5154L5.12109 11.5154C5.34367 10.6251 6.1438 9.99977 7.06152 9.99976H18.3623ZM7.06152 11.7996C6.96976 11.7996 6.88944 11.8629 6.86719 11.9519L5.36719 17.9519C5.33598 18.078 5.43158 18.1999 5.56152 18.2H19.4385C19.5302 18.1999 19.6106 18.1376 19.6328 18.0486L21.1328 12.0486C21.1644 11.9224 21.0686 11.7996 20.9385 11.7996H7.06152ZM20.9385 9.99976C22.2396 9.99977 23.1945 11.2228 22.8789 12.4851L21.3789 18.4851C21.1563 19.3754 20.3562 19.9997 19.4385 19.9998H4.92871C4.41722 19.9998 3.92613 19.8059 3.56445 19.4597C3.20281 19.1135 3.00004 18.6436 3 18.1541L2 5.84644C2.00006 5.35711 2.20311 4.88786 2.56445 4.54175C2.92613 4.19554 3.41722 4.00073 3.92871 4.00073H8.66406C9.10133 3.99051 9.5296 4.1225 9.87793 4.37573C10.2285 4.63118 10.4767 4.99457 10.582 5.40405L11 6.46167H18.0713C18.5828 6.46167 19.0739 6.65648 19.4355 7.00269C19.7971 7.34888 20 7.81883 20 8.30835L20.1719 9.99976H20.9385Z",fill:"currentColor"})],-1)])])}const pdt=it({name:"kimi-folder-open",render:hdt}),mdt={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function gdt(e,t){return b(),I("svg",mdt,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M19.072 14.427C20.342 14.427 21.373 15.457 21.373 16.727V17.527C21.373 18.797 20.343 19.827 19.072 19.827H12.928C11.658 19.827 10.628 18.797 10.628 17.527V16.727C10.628 15.457 11.658 14.427 12.928 14.427H19.072ZM12.928 16.227L12.827 16.237C12.6 16.284 12.428 16.486 12.428 16.727V17.527C12.428 17.768 12.6 17.97 12.827 18.016L12.928 18.027H19.072L19.173 18.016C19.369 17.976 19.522 17.823 19.562 17.627L19.573 17.527V16.727C19.573 16.486 19.401 16.284 19.173 16.237L19.072 16.227H12.928Z",fill:"currentColor"},null,-1),A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M4.429 4.309C4.925 4.309 5.329 4.712 5.329 5.209V7.655H8.17C8.667 7.655 9.07 8.058 9.07 8.555C9.07 9.051 8.667 9.455 8.17 9.455H5.329V15.176C5.329 15.783 5.821 16.276 6.428 16.276H8.17C8.667 16.276 9.07 16.679 9.07 17.176C9.07 17.673 8.667 18.076 8.17 18.076H6.428C4.826 18.076 3.529 16.777 3.529 15.176V5.209C3.529 4.712 3.932 4.309 4.429 4.309Z",fill:"currentColor"},null,-1),A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M19.072 5.771C20.342 5.771 21.373 6.802 21.373 8.072V8.871C21.373 10.141 20.343 11.171 19.072 11.171H12.928C11.658 11.171 10.628 10.141 10.628 8.871V8.072C10.628 6.802 11.658 5.771 12.928 5.771H19.072ZM12.827 7.582C12.6 7.628 12.428 7.83 12.428 8.072V8.871C12.428 9.113 12.6 9.314 12.827 9.361L12.928 9.371H19.072L19.173 9.361C19.369 9.321 19.522 9.167 19.562 8.972L19.573 8.871V8.072C19.573 7.83 19.401 7.629 19.173 7.582L19.072 7.571H12.928L12.827 7.582Z",fill:"currentColor"},null,-1)])])}const vdt=it({name:"kimi-folder-tree",render:gdt}),ydt={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function bdt(e,t){return b(),I("svg",ydt,[...t[0]||(t[0]=[A("path",{d:"M9.5 3Q10.8 8.2 16 9.5Q10.8 10.8 9.5 16Q8.2 10.8 3 9.5Q8.2 8.2 9.5 3Z",fill:"currentColor"},null,-1),A("path",{d:"M17.25 13.5Q18 16.5 21 17.25Q18 18 17.25 21Q16.5 18 13.5 17.25Q16.5 16.5 17.25 13.5Z",fill:"currentColor"},null,-1)])])}const kdt=it({name:"kimi-gen-title",render:bdt}),wdt={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"};function Cdt(e,t){return b(),I("svg",wdt,[...t[0]||(t[0]=[A("path",{id:"af-p0",d:"M -2.619 -8.3 C -1.815 -8.3 -1.048 -7.97 -0.499 -7.39 C -0.499 -7.39 0.141 -6.712 0.141 -6.712 C 0.141 -6.712 5.75 -6.712 5.75 -6.712 C 7.904 -6.712 9.65 -4.986 9.65 -2.858 C 9.65 -2.858 9.65 -1.71 9.65 -1.71 C 9.65 -1.219 9.247 -0.821 8.75 -0.821 C 8.253 -0.821 7.85 -1.219 7.85 -1.71 C 7.85 -1.71 7.85 -2.858 7.85 -2.858 C 7.849 -4.004 6.91 -4.934 5.75 -4.934 C 5.75 -4.934 -0.207 -4.934 -0.207 -4.934 C -0.484 -4.934 -0.749 -5.047 -0.938 -5.247 C -0.938 -5.247 -1.815 -6.177 -1.815 -6.177 C -2.023 -6.397 -2.315 -6.521 -2.619 -6.521 C -2.619 -6.521 -6.25 -6.521 -6.25 -6.521 C -7.41 -6.521 -8.35 -5.592 -8.35 -4.446 C -8.35 -4.446 -8.35 4.446 -8.35 4.446 C -8.35 5.592 -7.41 6.521 -6.25 6.521 C -6.25 6.521 1.25 6.521 1.25 6.521 C 1.747 6.521 2.15 6.919 2.15 7.41 C 2.15 7.901 1.747 8.3 1.25 8.3 C 1.25 8.3 -6.25 8.3 -6.25 8.3 C -8.404 8.3 -10.15 6.574 -10.15 4.446 C -10.15 4.446 -10.15 -4.446 -10.15 -4.446 C -10.15 -6.574 -8.404 -8.3 -6.25 -8.3 C -6.25 -8.3 -2.619 -8.3 -2.619 -8.3 Z M 3.75 -2.5 C 4.247 -2.5 4.65 -2.097 4.65 -1.6 C 4.65 -1.103 4.247 -0.699 3.75 -0.699 C 3.75 -0.699 -4.25 -0.699 -4.25 -0.699 C -4.747 -0.699 -5.15 -1.103 -5.15 -1.6 C -5.15 -2.097 -4.747 -2.5 -4.25 -2.5 C -4.25 -2.5 3.75 -2.5 3.75 -2.5 Z",transform:"matrix(1 0 0 1 11.75 12)",fill:"currentColor"},null,-1),A("g",{id:"af-p1"},[A("path",{d:"M 2.635 0 L -2.635 0 M 0 -2.635 L 0 2.635",transform:"matrix(1 0 0 1 18.4 16.3)",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round"})],-1)])])}const Adt=it({name:"kimi-folder-plus",render:Cdt}),xdt={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Sdt(e,t){return b(),I("svg",xdt,[...t[0]||(t[0]=[A("path",{d:"M12 3C16.9706 3 21 7.02944 21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3ZM12 19.2002C15.9764 19.2002 19.2002 15.9764 19.2002 12C19.2002 8.02355 15.9764 4.7998 12 4.7998V19.2002Z",fill:"currentColor"},null,-1)])])}const _dt=it({name:"kimi-follow-system",render:Sdt}),Idt={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Tdt(e,t){return b(),I("svg",Idt,[...t[0]||(t[0]=[A("path",{d:"M17 2C19.2091 2 21 3.79086 21 6V15.7646C21 17.2361 20.192 18.5884 18.8965 19.2861L13.8965 21.9785C12.7126 22.616 11.2874 22.616 10.1035 21.9785L5.10352 19.2861C3.80802 18.5884 3 17.2361 3 15.7646V6C3 3.79086 4.79086 2 7 2H17ZM7 3.7998C5.78498 3.7998 4.79981 4.78497 4.7998 6V15.7646C4.7998 16.574 5.24443 17.3184 5.95703 17.7021L10.957 20.3936C11.6082 20.7442 12.3918 20.7442 13.043 20.3936L18.043 17.7021C18.7556 17.3184 19.2002 16.574 19.2002 15.7646V6C19.2002 4.78497 18.215 3.7998 17 3.7998H7ZM12 15.6992C12.4968 15.6992 12.8994 16.1028 12.8994 16.5996C12.8994 17.0964 12.4968 17.5 12 17.5C11.5024 17.5 11.0996 17.0964 11.0996 16.5996C11.0996 16.1028 11.5024 15.6992 12 15.6992ZM12 6.49902C12.4969 6.49922 12.8994 6.86908 12.8994 7.3252V13.6729C12.8994 14.129 12.4969 14.4988 12 14.499C11.5029 14.499 11.0996 14.1291 11.0996 13.6729V7.3252C11.0996 6.86896 11.5029 6.49902 12 6.49902Z",fill:"currentColor"},null,-1)])])}const Mdt=it({name:"kimi-full-access",render:Tdt}),Edt={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Ldt(e,t){return b(),I("svg",Edt,[...t[0]||(t[0]=[A("path",{d:"M12.5092 2.11279C17.7402 2.37781 21.8998 6.70364 21.8998 12.0005C21.8996 17.4153 17.5524 21.8108 12.1576 21.895C12.1056 21.898 12.0532 21.8999 12.0004 21.8999C11.948 21.8999 11.8954 21.8968 11.8432 21.896L11.8422 21.895C6.44751 21.8107 2.10022 17.4152 2.10001 12.0005C2.10001 6.53287 6.53278 2.1001 12.0004 2.1001L12.5092 2.11279ZM8.92715 13.0005C9.02896 14.9787 9.42581 16.721 9.99356 17.9985C10.3249 18.7441 10.6971 19.292 11.0639 19.6411C11.4259 19.9855 11.741 20.1001 12.0004 20.1001C12.2598 20.1 12.5749 19.9856 12.9369 19.6411C13.3037 19.292 13.6749 18.7441 14.0063 17.9985C14.574 16.721 14.9718 14.9788 15.0736 13.0005H8.92715ZM3.96329 13.0005C4.31462 15.8522 6.14714 18.2427 8.66837 19.3823C8.55544 19.1733 8.44916 18.9552 8.34903 18.73C7.66574 17.1926 7.22657 15.1926 7.12344 13.0005H3.96329ZM16.8764 13.0005C16.7732 15.1926 16.3341 17.1926 15.6508 18.73C15.5506 18.9554 15.4435 19.1732 15.3305 19.3823C17.8522 18.2429 19.6851 15.8525 20.0365 13.0005H16.8764ZM8.66934 4.6167C6.08869 5.78266 4.22826 8.25964 3.93985 11.1997H7.11661C7.20176 8.92954 7.64512 6.85497 8.34903 5.271C8.4494 5.04516 8.5561 4.82619 8.66934 4.6167ZM12.0004 3.8999C11.7411 3.8999 11.4259 4.01454 11.0639 4.35889C10.6971 4.70797 10.3249 5.25587 9.99356 6.00146C9.40671 7.32188 9.00186 9.13885 8.91739 11.1997H15.0834C14.9989 9.13884 14.5931 7.32189 14.0063 6.00146C13.6749 5.2559 13.3037 4.70796 12.9369 4.35889C12.5749 4.0144 12.2598 3.90002 12.0004 3.8999ZM15.3295 4.61572C15.443 4.82559 15.5502 5.04471 15.6508 5.271C16.3547 6.85498 16.799 8.92949 16.8842 11.1997H20.06C19.7715 8.25914 17.9108 5.78143 15.3295 4.61572Z",fill:"currentColor"},null,-1)])])}const Rdt=it({name:"kimi-globe",render:Ldt}),Pdt={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function $dt(e,t){return b(),I("svg",Pdt,[...t[0]||(t[0]=[A("path",{d:"M8 17C8.82834 17 9.5 17.6717 9.5 18.5C9.5 19.3283 8.82834 20 8 20C7.17166 20 6.5 19.3283 6.5 18.5C6.5 17.6717 7.17166 17 8 17ZM16 17C16.8283 17 17.5 17.6717 17.5 18.5C17.5 19.3283 16.8283 20 16 20C15.1717 20 14.5 19.3283 14.5 18.5C14.5 17.6717 15.1717 17 16 17ZM8 10.5C8.82834 10.5 9.5 11.1717 9.5 12C9.5 12.8283 8.82834 13.5 8 13.5C7.17166 13.5 6.5 12.8283 6.5 12C6.5 11.1717 7.17166 10.5 8 10.5ZM16 10.5C16.8283 10.5 17.5 11.1717 17.5 12C17.5 12.8283 16.8283 13.5 16 13.5C15.1717 13.5 14.5 12.8283 14.5 12C14.5 11.1717 15.1717 10.5 16 10.5ZM8 4C8.82834 4 9.5 4.67166 9.5 5.5C9.5 6.32834 8.82834 7 8 7C7.17166 7 6.5 6.32834 6.5 5.5C6.5 4.67166 7.17166 4 8 4ZM16 4C16.8283 4 17.5 4.67166 17.5 5.5C17.5 6.32834 16.8283 7 16 7C15.1717 7 14.5 6.32834 14.5 5.5C14.5 4.67166 15.1717 4 16 4Z",fill:"currentColor"},null,-1)])])}const Odt=it({name:"kimi-grip",render:$dt}),Fdt={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Ddt(e,t){return b(),I("svg",Fdt,[...t[0]||(t[0]=[A("path",{d:"M7.22264 6.10352C7.22264 5.5078 7.48259 4.95449 7.91405 4.56055C8.34271 4.16918 8.90831 3.96198 9.48241 3.96191C9.64155 3.96191 9.80001 3.97936 9.95507 4.01074C10.0127 3.5042 10.2586 3.04178 10.6338 2.69922C11.0625 2.30778 11.6279 2.09961 12.2021 2.09961C12.7763 2.09966 13.3418 2.30783 13.7705 2.69922C13.9947 2.90401 14.1709 3.15244 14.29 3.42676C14.4947 3.37044 14.7071 3.34182 14.9209 3.3418C15.4951 3.3418 16.0605 3.549 16.4892 3.94043C16.8644 4.28293 17.1093 4.74548 17.167 5.25195C17.3223 5.22045 17.4812 5.20312 17.6406 5.20312C18.2147 5.20318 18.7803 5.41135 19.209 5.80273C19.6402 6.19663 19.9004 6.74922 19.9004 7.34473V14.6543C19.9004 17.413 19.2914 19.0434 18.0137 20.21C16.82 21.2998 15.2175 21.9004 13.5615 21.9004C11.7538 21.9004 10.2315 21.5696 8.95702 20.8535C7.67664 20.1341 6.71683 19.0652 5.97362 17.708L3.3496 12.916C3.18848 12.6213 3.10112 12.2914 3.0996 11.9531C3.09812 11.6147 3.18309 11.2835 3.34179 10.9873C3.5001 10.692 3.72639 10.4416 3.99706 10.251C4.26771 10.0604 4.57776 9.93235 4.90136 9.87305C5.56617 9.75102 6.25934 9.84517 6.86425 10.1445C6.9942 10.2088 7.11461 10.2788 7.22264 10.3477V6.10352ZM9.02343 12.7969C9.02336 13.1912 8.76624 13.5395 8.38964 13.6562C8.0129 13.773 7.60387 13.6309 7.38085 13.3057L6.53514 12.0723C6.51218 12.0529 6.48411 12.0282 6.45018 12.002C6.34595 11.9213 6.20986 11.8289 6.06639 11.7578C5.81525 11.6335 5.51637 11.5904 5.22655 11.6436H5.22557C5.15055 11.6573 5.08558 11.6865 5.03417 11.7227C4.98289 11.7588 4.94815 11.7998 4.92772 11.8379C4.90762 11.8755 4.90023 11.9122 4.90038 11.9453C4.90057 11.9782 4.9084 12.0144 4.9287 12.0518L7.55272 16.8438C8.16912 17.9693 8.90989 18.7622 9.83886 19.2842C10.7737 19.8094 11.9704 20.0996 13.5615 20.0996C14.7902 20.0996 15.9536 19.6533 16.7998 18.8809C17.5619 18.185 18.0996 17.1383 18.0996 14.6543V7.34473C18.0996 7.28204 18.0734 7.20342 17.9951 7.13184C17.9139 7.05771 17.7875 7.00396 17.6406 7.00391C17.4937 7.00391 17.3674 7.05771 17.2861 7.13184C17.2077 7.20347 17.1807 7.28199 17.1807 7.34473V11.0693C17.1805 11.5661 16.778 11.9685 16.2812 11.9688C15.7843 11.9688 15.381 11.5662 15.3808 11.0693V5.48242C15.3808 5.41973 15.3537 5.34107 15.2754 5.26953C15.1941 5.19547 15.0677 5.1416 14.9209 5.1416C14.774 5.14166 14.6476 5.19541 14.5664 5.26953C14.4881 5.34105 14.462 5.41974 14.4619 5.48242V11.0693C14.4617 11.5662 14.0584 11.9688 13.5615 11.9688C13.0646 11.9687 12.6613 11.5662 12.6611 11.0693V4.24121C12.6611 4.17852 12.635 4.09989 12.5566 4.02832C12.4754 3.95419 12.349 3.90045 12.2021 3.90039C12.0552 3.90039 11.9289 3.95421 11.8476 4.02832C11.7692 4.09992 11.7422 4.17849 11.7422 4.24121V11.0693C11.742 11.5661 11.3395 11.9685 10.8428 11.9688C10.3458 11.9688 9.94257 11.5662 9.94237 11.0693V6.10352L9.93651 6.05371C9.92534 6.00177 9.89573 5.94433 9.8369 5.89062C9.75567 5.81647 9.62938 5.76172 9.48241 5.76172C9.33554 5.76179 9.2091 5.81651 9.12792 5.89062C9.04964 5.96222 9.02343 6.04084 9.02343 6.10352V12.7969Z",fill:"currentColor"},null,-1)])])}const Ndt=it({name:"kimi-hand",render:Ddt}),Bdt={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function zdt(e,t){return b(),I("svg",Bdt,[...t[0]||(t[0]=[A("path",{d:"M4 3.33203C4.55224 3.33203 4.99993 3.7798 5 4.33203V18.0908H20.0674C20.6195 18.0908 21.0671 18.5388 21.0674 19.0908C21.0674 19.6431 20.6197 20.0908 20.0674 20.0908H5C3.89543 20.0908 3 19.1954 3 18.0908V4.33203C3.00007 3.7798 3.44776 3.33203 4 3.33203ZM8.19922 9.28418C8.7515 9.28418 9.19922 9.73189 9.19922 10.2842V15.6045C9.19908 16.1567 8.75142 16.6045 8.19922 16.6045C7.64719 16.6043 7.19936 16.1565 7.19922 15.6045V10.2842C7.19922 9.73202 7.6471 9.28438 8.19922 9.28418ZM17.2227 6.85645C17.7748 6.85658 18.2226 7.3043 18.2227 7.85645V15.6045C18.2225 16.1566 17.7747 16.6044 17.2227 16.6045C16.6705 16.6045 16.2228 16.1566 16.2227 15.6045V7.85645C16.2227 7.30422 16.6704 6.85645 17.2227 6.85645ZM12.7109 3.96387C13.2631 3.96387 13.7107 4.41175 13.7109 4.96387V15.6035C13.7109 16.1558 13.2632 16.6035 12.7109 16.6035C12.1587 16.6035 11.7109 16.1558 11.7109 15.6035V4.96387C11.7111 4.41175 12.1588 3.96387 12.7109 3.96387Z",fill:"currentColor"},null,-1)])])}const Hdt=it({name:"kimi-histogram",render:zdt}),jdt={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Wdt(e,t){return b(),I("svg",jdt,[...t[0]||(t[0]=[A("path",{d:"M8.00916 7.50488C8.47326 7.50488 8.91828 7.68943 9.24646 8.01758C9.57465 8.34577 9.75916 8.79075 9.75916 9.25488C9.75916 9.71901 9.57465 10.164 9.24646 10.4922C8.91828 10.8203 8.47326 11.0049 8.00916 11.0049C7.54507 11.0049 7.10001 10.8203 6.77185 10.4922C6.4437 10.164 6.25916 9.71898 6.25916 9.25488C6.25916 8.79078 6.4437 8.34576 6.77185 8.01758C7.10001 7.68942 7.54507 7.50492 8.00916 7.50488Z",fill:"currentColor"},null,-1),A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M17.8998 4.09961C20.0537 4.09961 21.8002 5.84609 21.8002 8V16C21.8002 18.1539 20.0537 19.9004 17.8998 19.9004H5.89978C3.74598 19.9003 1.99939 18.1538 1.99939 16V8C1.99939 5.84617 3.74598 4.09974 5.89978 4.09961H17.8998ZM15.4867 12.2539C15.448 12.2184 15.3885 12.2192 15.351 12.2559L11.7338 15.8027C11.0146 16.5079 9.87305 16.5222 9.13708 15.835L6.98669 13.8262C6.95049 13.7924 6.89516 13.791 6.85681 13.8223L3.82361 16.2988C3.96873 17.3168 4.84165 18.0995 5.89978 18.0996H17.8998C18.9375 18.0996 19.7964 17.3466 19.9662 16.3574L15.4867 12.2539ZM5.89978 5.90039C4.74009 5.90052 3.80017 6.84028 3.80017 8V14.002L5.73181 12.4238C6.46046 11.8286 7.51253 11.8634 8.20056 12.5059L10.351 14.5146C10.3897 14.5508 10.4498 14.5497 10.4877 14.5127L14.1049 10.9658C14.819 10.2656 15.9506 10.2466 16.6879 10.9219L19.9994 13.9551V8C19.9994 6.8402 19.0596 5.90039 17.8998 5.90039H5.89978Z",fill:"currentColor"},null,-1)])])}const qdt=it({name:"kimi-image",render:Wdt}),Vdt={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Udt(e,t){return b(),I("svg",Vdt,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M5.09375 2.81174C5.4825 2.50796 6.04376 2.56488 6.34766 2.93869L20.1855 19.9602C20.4895 20.3341 20.421 20.8836 20.0322 21.1877C19.6435 21.4917 19.0823 21.4355 18.7783 21.0617L17.9971 20.1008H5.99609C3.84224 20.1008 2.0958 18.3552 2.0957 16.2014V8.13889C2.09589 6.26755 3.41429 4.70428 5.17285 4.32639L4.93945 4.03928C4.63577 3.66536 4.7051 3.11573 5.09375 2.81174ZM7.13184 14.1096C7.09416 14.0738 7.03659 14.0713 6.99609 14.1037L3.92871 16.5569C4.09761 17.5472 4.95753 18.301 5.99609 18.301H16.5342L13.373 14.4133L11.9072 15.9455C11.1531 16.7324 9.92202 16.7621 9.13281 16.0119L7.13184 14.1096ZM5.99609 6.03928C4.83643 6.03928 3.89669 6.97927 3.89648 8.13889V14.1408L5.83496 12.5901C6.60469 11.9742 7.69929 12.022 8.41504 12.7024L10.416 14.6037C10.4575 14.6431 10.5218 14.642 10.5615 14.6008L12.1641 12.926L9.78906 10.0051C9.70282 10.2646 9.55682 10.5038 9.35645 10.7004C9.02202 11.0285 8.56767 11.2131 8.09473 11.2131C7.62195 11.213 7.1683 11.0284 6.83398 10.7004C6.49961 10.3724 6.31152 9.92701 6.31152 9.46311C6.3116 8.99941 6.49981 8.55474 6.83398 8.22678C7.12986 7.93654 7.51931 7.75901 7.93262 7.7219L6.56543 6.03928H5.99609Z",fill:"currentColor"},null,-1),A("path",{d:"M18.0049 4.31272C20.1587 4.31288 21.9043 6.0593 21.9043 8.21311V13.718C21.9039 15.4743 19.7248 16.2906 18.5713 14.966L14.9141 10.7658C14.5882 10.3912 14.6278 9.82271 15.002 9.49631C15.3768 9.16994 15.9451 9.20948 16.2715 9.5842L19.9287 13.7844C19.9528 13.812 19.9696 13.8167 19.9775 13.8186C19.9908 13.8216 20.0141 13.8213 20.04 13.8117C20.0655 13.8021 20.0826 13.7875 20.0908 13.7766C20.0955 13.7702 20.1044 13.7552 20.1045 13.718V8.21311C20.1045 7.05341 19.1645 6.11366 18.0049 6.1135H10.6328C10.1361 6.11327 9.73267 5.70981 9.73242 5.21311C9.73242 4.71619 10.136 4.31295 10.6328 4.31272H18.0049Z",fill:"currentColor"},null,-1)])])}const Kdt=it({name:"kimi-image-failed",render:Udt}),Zdt={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Gdt(e,t){return b(),I("svg",Zdt,[...t[0]||(t[0]=[A("path",{d:"M12 2.1001C17.4676 2.10031 21.8994 6.53286 21.8994 12.0005C21.8992 17.4679 17.4674 21.8997 12 21.8999C6.53237 21.8999 2.09982 17.4681 2.09961 12.0005C2.09961 6.53273 6.53224 2.1001 12 2.1001ZM12 3.8999C7.52636 3.8999 3.89941 7.52684 3.89941 12.0005C3.89963 16.474 7.52649 20.1001 12 20.1001C16.4733 20.0999 20.0994 16.4738 20.0996 12.0005C20.0996 7.52697 16.4735 3.90011 12 3.8999ZM12 9.50049C12.4969 9.50068 12.8994 9.87055 12.8994 10.3267V16.6743C12.8992 17.1303 12.4968 17.5003 12 17.5005C11.503 17.5005 11.0998 17.1304 11.0996 16.6743V10.3267C11.0996 9.87043 11.5029 9.50049 12 9.50049ZM12 6.49951C12.4968 6.49951 12.8994 6.90313 12.8994 7.3999C12.8992 7.8965 12.4966 8.30029 12 8.30029C11.5025 8.30028 11.0998 7.8965 11.0996 7.3999C11.0996 6.90313 11.5024 6.49952 12 6.49951Z",fill:"currentColor"},null,-1)])])}const Qdt=it({name:"kimi-info",render:Gdt}),Ydt={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Jdt(e,t){return b(),I("svg",Ydt,[...t[0]||(t[0]=[Eu('',10)])])}const Xdt=it({name:"kimi-keyboard",render:Jdt}),eft={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"};function tft(e,t){return b(),I("svg",eft,[...t[0]||(t[0]=[A("path",{id:"bar-divider",d:"M 9.3 18.951 L 9.3 4.3",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),A("path",{id:"bar-box",d:"M -7.9 -4.8 C -7.9 -6.512 -6.512 -7.9 -4.8 -7.9 L 4.8 -7.9 C 6.512 -7.9 7.9 -6.512 7.9 -4.8 L 7.9 4.8 C 7.9 6.512 6.512 7.9 4.8 7.9 L -4.8 7.9 C -6.512 7.9 -7.9 6.512 -7.9 4.8 L -7.9 -4.8 Z",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"butt","stroke-linejoin":"miter",transform:"matrix(1 0 0 1 11.8 11.8)"},null,-1),A("path",{id:"bar-arrow",d:"M -1.25 -2.5 L 1.25 0 L -1.25 2.5",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])])}const nft=it({name:"kimi-left-panel",render:tft}),ift={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"};function oft(e,t){return b(),I("svg",ift,[...t[0]||(t[0]=[A("path",{id:"bar-divider",d:"M 9.3 18.951 L 9.3 4.3",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),A("path",{id:"bar-box",d:"M -7.9 -4.8 C -7.9 -6.512 -6.512 -7.9 -4.8 -7.9 L 4.8 -7.9 C 6.512 -7.9 7.9 -6.512 7.9 -4.8 L 7.9 4.8 C 7.9 6.512 6.512 7.9 4.8 7.9 L -4.8 7.9 C -6.512 7.9 -7.9 6.512 -7.9 4.8 L -7.9 -4.8 Z",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"butt","stroke-linejoin":"miter",transform:"matrix(1 0 0 1 11.8 11.8)"},null,-1),A("path",{id:"bar-arrow-expand",d:"M -1.25 -2.5 L 1.25 0 L -1.25 2.5",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])])}const sft=it({name:"kimi-left-panel-expand",render:oft}),rft={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"};function aft(e,t){return b(),I("svg",rft,[...t[0]||(t[0]=[A("path",{id:"rbar-divider",d:"M 14.7 18.951 L 14.7 4.3",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),A("path",{id:"rbar-box",d:"M -7.9 -4.8 C -7.9 -6.512 -6.512 -7.9 -4.8 -7.9 L 4.8 -7.9 C 6.512 -7.9 7.9 -6.512 7.9 -4.8 L 7.9 4.8 C 7.9 6.512 6.512 7.9 4.8 7.9 L -4.8 7.9 C -6.512 7.9 -7.9 6.512 -7.9 4.8 L -7.9 -4.8 Z",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"butt","stroke-linejoin":"miter",transform:"matrix(1 0 0 1 11.8 11.8)"},null,-1),A("path",{id:"rbar-arrow",d:"M -1.25 -2.5 L 1.25 0 L -1.25 2.5",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])])}const lft=it({name:"kimi-right-panel",render:aft}),cft={xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"};function uft(e,t){return b(),I("svg",cft,[...t[0]||(t[0]=[A("path",{id:"rbar-divider",d:"M 14.7 18.951 L 14.7 4.3",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),A("path",{id:"rbar-box",d:"M -7.9 -4.8 C -7.9 -6.512 -6.512 -7.9 -4.8 -7.9 L 4.8 -7.9 C 6.512 -7.9 7.9 -6.512 7.9 -4.8 L 7.9 4.8 C 7.9 6.512 6.512 7.9 4.8 7.9 L -4.8 7.9 C -6.512 7.9 -7.9 6.512 -7.9 4.8 L -7.9 -4.8 Z",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"butt","stroke-linejoin":"miter",transform:"matrix(1 0 0 1 11.8 11.8)"},null,-1),A("path",{id:"rbar-arrow-expand",d:"M -1.25 -2.5 L 1.25 0 L -1.25 2.5",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])])}const dft=it({name:"kimi-right-panel-expand",render:uft}),fft={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function hft(e,t){return b(),I("svg",fft,[...t[0]||(t[0]=[Eu('',1)])])}const pft=it({name:"kimi-light-mode",render:hft}),mft={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function gft(e,t){return b(),I("svg",mft,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M3.97427 8.06961C4.99348 7.33581 6.18946 7.1 7.00001 7.1H9.00001C9.49706 7.1 9.90001 7.50294 9.90001 8C9.90001 8.49706 9.49706 8.9 9.00001 8.9H7.00001C6.47755 8.9 5.67353 9.06419 5.02599 9.53039C4.42434 9.96356 3.90001 10.6934 3.90001 12C3.90001 13.3066 4.42434 14.0364 5.02599 14.4696C5.67353 14.9358 6.47755 15.1 7.00001 15.1H9.00001C9.49706 15.1 9.90001 15.5029 9.90001 16C9.90001 16.4971 9.49706 16.9 9.00001 16.9H7.00001C6.18946 16.9 4.99348 16.6642 3.97427 15.9304C2.90917 15.1636 2.10001 13.8934 2.10001 12C2.10001 10.1066 2.90917 8.83644 3.97427 8.06961ZM14.1 8C14.1 7.50294 14.5029 7.1 15 7.1H17C17.8105 7.1 19.0065 7.33581 20.0257 8.06961C21.0908 8.83644 21.9 10.1066 21.9 12C21.9 13.8934 21.0908 15.1636 20.0257 15.9304C19.0065 16.6642 17.8105 16.9 17 16.9H15C14.5029 16.9 14.1 16.4971 14.1 16C14.1 15.5029 14.5029 15.1 15 15.1H17C17.5225 15.1 18.3265 14.9358 18.974 14.4696C19.5757 14.0364 20.1 13.3066 20.1 12C20.1 10.6934 19.5757 9.96356 18.974 9.53039C18.3265 9.06419 17.5225 8.9 17 8.9H15C14.5029 8.9 14.1 8.49706 14.1 8ZM7.10001 12C7.10001 11.5029 7.50295 11.1 8.00001 11.1H16C16.4971 11.1 16.9 11.5029 16.9 12C16.9 12.4971 16.4971 12.9 16 12.9H8.00001C7.50295 12.9 7.10001 12.4971 7.10001 12Z",fill:"currentColor"},null,-1)])])}const vft=it({name:"kimi-link",render:gft}),yft={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function bft(e,t){return b(),I("svg",yft,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M4.10001 5.99998C4.10001 5.50292 4.50295 5.09998 5.00001 5.09998H19C19.4971 5.09998 19.9 5.50292 19.9 5.99998C19.9 6.49703 19.4971 6.89998 19 6.89998H5.00001C4.50295 6.89998 4.10001 6.49703 4.10001 5.99998ZM4.10001 12C4.10001 11.5029 4.50295 11.1 5.00001 11.1H19C19.4971 11.1 19.9 11.5029 19.9 12C19.9 12.497 19.4971 12.9 19 12.9H5.00001C4.50295 12.9 4.10001 12.497 4.10001 12ZM4.10001 18C4.10001 17.5029 4.50295 17.1 5.00001 17.1H19C19.4971 17.1 19.9 17.5029 19.9 18C19.9 18.497 19.4971 18.9 19 18.9H5.00001C4.50295 18.9 4.10001 18.497 4.10001 18Z",fill:"currentColor"},null,-1)])])}const kft=it({name:"kimi-list",render:bft}),wft={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Cft(e,t){return b(),I("svg",wft,[...t[0]||(t[0]=[A("g",null,[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M18 4.09961C20.1539 4.09961 21.9004 5.84609 21.9004 8V16C21.9004 18.1539 20.1539 19.9004 18 19.9004H6C3.84609 19.9004 2.09961 18.1539 2.09961 16V8C2.09961 5.84609 3.84609 4.09961 6 4.09961H18ZM3.90039 16C3.90039 17.1598 4.8402 18.0996 6 18.0996H18C19.1598 18.0996 20.0996 17.1598 20.0996 16V9.49805L13.5361 13.5361C12.5955 14.1147 11.4075 14.1084 10.4727 13.5205L3.90039 9.38672V16ZM6 5.90039C5.0746 5.90039 4.29039 6.49909 4.01074 7.33008L11.4316 11.9971C11.7861 12.2199 12.2361 12.2222 12.5928 12.0029L20.0195 7.43457C19.7725 6.54993 18.9636 5.90039 18 5.90039H6Z",fill:"currentColor"})],-1)])])}const Aft=it({name:"kimi-mail",render:Cft}),xft={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Sft(e,t){return b(),I("svg",xft,[...t[0]||(t[0]=[A("path",{d:"M17 11.0996C17.4971 11.0996 17.9004 11.5029 17.9004 12C17.9004 12.4971 17.4971 12.9004 17 12.9004H7C6.50294 12.9004 6.09961 12.4971 6.09961 12C6.09961 11.5029 6.50294 11.0996 7 11.0996H17Z",fill:"currentColor"},null,-1)])])}const _ft=it({name:"kimi-minus",render:Sft}),Ift={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Tft(e,t){return b(),I("svg",Ift,[...t[0]||(t[0]=[A("path",{d:"M15.182 3.32802C15.9304 2.72235 17.0309 2.76978 17.724 3.46767L18.5424 4.29189L18.6722 4.43642C19.2377 5.13495 19.234 6.1404 18.6635 6.83486L18.5326 6.97841L18.0248 7.48232C17.9549 7.55172 17.8793 7.61254 17.8021 7.66884C17.9794 8.18027 17.9316 8.7498 17.6595 9.22841C17.6847 9.24522 17.7091 9.2635 17.7328 9.2831L17.8002 9.3456L17.9847 9.53798C19.8515 11.5442 20.4549 14.0022 19.6224 16.2196C19.1921 17.3657 18.4025 18.3827 17.2992 19.203H19.0873L19.1801 19.2079C19.6337 19.2542 19.9877 19.6375 19.9877 20.1034C19.9876 20.5692 19.6337 20.9527 19.1801 20.9989L19.0873 21.0028H13.0385C13.0244 21.0033 13.0104 21.0031 12.9965 21.0028H4.9115C4.41448 21.0028 4.01117 20.6004 4.01111 20.1034C4.01111 19.6064 4.41444 19.203 4.9115 19.203H12.9047C15.7614 18.5471 17.3679 17.1023 17.9369 15.5868C18.4678 14.1726 18.179 12.4782 16.807 10.9188L16.5189 10.6093L16.4574 10.5399C16.4549 10.5368 16.453 10.5333 16.4506 10.5302L12.3011 14.6522C11.6031 15.3454 10.5023 15.3845 9.75818 14.7733L9.61365 14.6425L7.31091 12.3231C6.5717 11.5786 6.57617 10.376 7.32068 9.63662L12.3676 4.62392L12.5121 4.49404C13.0358 4.06988 13.7318 3.96755 14.3402 4.18251C14.3969 4.10597 14.4591 4.03197 14.5287 3.96279L15.0365 3.45791L15.182 3.32802ZM4.83044 12.9335C5.16112 12.6052 5.68305 12.5863 6.03552 12.8759L6.10291 12.9384L9.07361 15.9286L9.13513 15.997C9.42218 16.3514 9.3992 16.8727 9.06873 17.2011C8.7381 17.5294 8.21712 17.5482 7.86462 17.2587L7.79626 17.1972L4.82654 14.2069L4.76501 14.1376C4.47792 13.7831 4.49979 13.2619 4.83044 12.9335ZM13.6693 5.87978L13.6361 5.90126L8.58826 10.914C8.54935 10.9529 8.54943 11.0165 8.58826 11.0556L10.891 13.3739L10.9242 13.3964C10.9602 13.4111 11.0032 13.404 11.0326 13.3749L16.0795 8.3622L16.1019 8.329C16.1117 8.3049 16.1117 8.2779 16.1019 8.2538L16.0804 8.2206L13.7777 5.90224C13.7486 5.87289 13.7054 5.86535 13.6693 5.87978ZM16.3383 4.71376L16.3051 4.73525L15.7972 5.24013C15.7584 5.27904 15.7585 5.34166 15.7972 5.38076L16.6146 6.20498L16.6478 6.22744C16.6838 6.24221 16.7268 6.23487 16.7562 6.20595L17.264 5.70107L17.2865 5.66787C17.2962 5.64382 17.2963 5.61672 17.2865 5.59267L17.265 5.55947L16.4467 4.73623C16.4174 4.70681 16.3744 4.6992 16.3383 4.71376Z",fill:"currentColor"},null,-1)])])}const Mft=it({name:"kimi-microscope",render:Tft}),Eft={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Lft(e,t){return b(),I("svg",Eft,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.669 7.94435C11.6812 7.94435 11.6912 7.9546 11.6914 7.96681C11.6914 7.96922 11.6926 7.97233 11.6934 7.97462L14.0908 15.1924C14.1283 15.3052 14.0437 15.4219 13.9248 15.4219H12.709C12.6327 15.4217 12.5655 15.3718 12.543 15.2988L11.9639 13.418C11.9526 13.3814 11.9181 13.3565 11.8799 13.3565H9.1504C9.11222 13.3565 9.07868 13.3815 9.06739 13.418L8.48829 15.2988C8.46577 15.3719 8.39778 15.4219 8.3213 15.4219H7.10548C6.98659 15.4219 6.90296 15.3052 6.94044 15.1924L9.30762 8.06446C9.3313 7.99321 9.39855 7.94435 9.47364 7.94435H11.669ZM9.4961 12.041C9.47878 12.0971 9.52043 12.1543 9.57911 12.1543H11.4512C11.5098 12.1543 11.5525 12.0971 11.5352 12.041L10.6113 9.05177H10.4199L9.4961 12.041Z",fill:"currentColor"},null,-1),A("path",{d:"M16.0576 7.94435C16.1539 7.94435 16.2324 8.02289 16.2324 8.11915V15.2481C16.2322 15.3441 16.1537 15.4219 16.0576 15.4219H15.0645C14.9683 15.4219 14.8899 15.3441 14.8897 15.2481V8.11915C14.8897 8.02289 14.9682 7.94435 15.0645 7.94435H16.0576Z",fill:"currentColor"},null,-1),A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M12.0534 2.091C12.5082 2.091 12.8766 2.45946 12.8766 2.91425L12.874 3.90821H14.3076L14.3102 2.92499C14.3103 2.47035 14.6788 2.10186 15.1334 2.10175C15.5882 2.10175 15.9566 2.47028 15.9567 2.92499L15.9541 3.90821H17.0293C18.4439 3.90854 19.5908 5.05504 19.5908 6.46974V7.90821L21.0852 7.93105C21.54 7.93105 21.9085 8.29951 21.9085 8.7543C21.9084 9.20899 21.54 9.57754 21.0852 9.57754L19.6074 9.5547C19.6019 9.5547 19.5964 9.55383 19.5908 9.55372V11.0215L21.0852 11.0443C21.54 11.0443 21.9084 11.4129 21.9085 11.8676C21.9085 12.3224 21.54 12.6908 21.0852 12.6908L19.6074 12.668C19.6019 12.668 19.5964 12.6671 19.5908 12.667V14.1016L21.0852 14.1244C21.54 14.1244 21.9084 14.4929 21.9085 14.9477C21.9085 15.4024 21.54 15.7709 21.0852 15.7709L19.6074 15.7481C19.6019 15.7481 19.5964 15.7472 19.5908 15.7471V16.8975C19.5907 18.312 18.4438 19.4587 17.0293 19.459H15.9453L15.9875 21.0863C15.9875 21.5409 15.6189 21.9094 15.1643 21.9095C14.7095 21.9095 14.3411 21.541 14.341 21.0863L14.2988 19.459H12.8311L12.8733 21.0863C12.8732 21.541 12.5048 21.9095 12.05 21.9095C11.5955 21.9093 11.2269 21.5409 11.2268 21.0863L11.1846 19.459H9.75098L9.79319 21.0687C9.79319 21.5235 9.42474 21.8919 8.96995 21.8919C8.51536 21.8917 8.14671 21.5233 8.14671 21.0687L8.1045 19.459H6.75489C5.34008 19.459 4.19352 18.3122 4.19337 16.8975V15.7031L2.90033 15.7353C2.4456 15.7353 2.07709 15.3668 2.07709 14.9121C2.0771 14.4574 2.44561 14.0889 2.90033 14.0889L4.19337 14.0567V12.5899L2.91595 12.6221C2.46128 12.6221 2.09289 12.2535 2.09271 11.7988C2.09271 11.344 2.46116 10.9756 2.91595 10.9756L4.19337 10.9434V9.50978L2.91595 9.54198C2.46126 9.54198 2.09287 9.1734 2.09271 8.71874C2.09271 8.26395 2.46116 7.8955 2.91595 7.8955L4.19337 7.86329V6.46974C4.19337 5.05483 5.33999 3.90821 6.75489 3.90821H8.11427L8.11684 2.91425C8.11684 2.45946 8.48529 2.091 8.94008 2.091C9.39483 2.09105 9.76332 2.45949 9.76332 2.91425L9.76075 3.90821H11.2275L11.2301 2.91425C11.2301 2.45955 11.5987 2.09115 12.0534 2.091ZM6.66114 5.55958C6.19983 5.6065 5.83985 5.99605 5.83985 6.46974V16.8975L5.84473 16.9912C5.88868 17.4216 6.23075 17.7639 6.66114 17.8076L6.75489 17.8125H17.0293L17.1221 17.8076C17.5526 17.764 17.8955 17.4217 17.9395 16.9912L17.9434 16.8975V6.46974C17.9434 5.99595 17.5835 5.60637 17.1221 5.55958L17.0293 5.5547H6.75489L6.66114 5.55958Z",fill:"currentColor"},null,-1)])])}const Rft=it({name:"kimi-model",render:Lft}),Pft={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function $ft(e,t){return b(),I("svg",Pft,[...t[0]||(t[0]=[A("path",{d:"M6 12C6 12.8283 5.32834 13.5 4.5 13.5C3.67166 13.5 3 12.8283 3 12C3 11.1717 3.67166 10.5 4.5 10.5C5.32834 10.5 6 11.1717 6 12Z",fill:"currentColor"},null,-1),A("path",{d:"M13.5 12C13.5 12.8283 12.8283 13.5 12 13.5C11.1717 13.5 10.5 12.8283 10.5 12C10.5 11.1717 11.1717 10.5 12 10.5C12.8283 10.5 13.5 11.1717 13.5 12Z",fill:"currentColor"},null,-1),A("path",{d:"M19.5002 13.5C20.3287 13.5 21 12.8287 21 12.0002C21 11.1718 20.3287 10.5 19.5002 10.5C18.6718 10.5 18 11.1718 18 12.0002C18 12.8287 18.6718 13.5 19.5002 13.5Z",fill:"currentColor"},null,-1)])])}const Oft=it({name:"kimi-more",render:$ft}),Fft={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Dft(e,t){return b(),I("svg",Fft,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M8 12.0993C8.49691 12.0993 8.90016 12.5028 8.90039 12.9997V17.9997C8.90039 19.6013 7.60163 20.9001 6 20.9001C4.39837 20.9001 3.09961 19.6013 3.09961 17.9997C3.09984 16.3982 4.39852 15.0993 6 15.0993C6.38939 15.0993 6.76033 15.1778 7.09961 15.317V12.9997C7.09984 12.5028 7.50309 12.0993 8 12.0993ZM6 16.9001C5.39263 16.9001 4.90062 17.3923 4.90039 17.9997C4.90039 18.6072 5.39249 19.0993 6 19.0993C6.60751 19.0993 7.09961 18.6072 7.09961 17.9997C7.09938 17.3923 6.60737 16.9001 6 16.9001Z",fill:"currentColor"},null,-1),A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M18.627 3.35611C19.8025 3.12106 20.9001 4.02068 20.9004 5.21939V15.9997C20.9004 17.6013 19.6016 18.9001 18 18.9001C16.3984 18.9001 15.0996 17.6013 15.0996 15.9997C15.0998 14.3982 16.3985 13.0993 18 13.0993C18.3894 13.0993 18.7603 13.1778 19.0996 13.317V9.21939C19.0993 9.15657 19.0421 9.10946 18.9805 9.12173L12.6768 10.3825C12.1894 10.4799 11.7148 10.1637 11.6172 9.67642C11.52 9.18922 11.8361 8.71439 12.3232 8.61685L18.627 7.35611C18.7868 7.32415 18.9452 7.31502 19.0996 7.32291V5.21939C19.0993 5.15657 19.0421 5.10946 18.9805 5.12173L12.6768 6.38248C12.1894 6.47994 11.7148 6.16372 11.6172 5.67642C11.52 5.18922 11.8361 4.71439 12.3232 4.61685L18.627 3.35611ZM18 14.9001C17.3926 14.9001 16.9006 15.3923 16.9004 15.9997C16.9004 16.6072 17.3925 17.0993 18 17.0993C18.6075 17.0993 19.0996 16.6072 19.0996 15.9997C19.0994 15.3923 18.6074 14.9001 18 14.9001Z",fill:"currentColor"},null,-1),A("path",{d:"M7.32422 5.38931C7.61669 4.87032 8.38346 4.87015 8.67578 5.38931L8.73047 5.50845L8.89551 5.95376L8.97949 6.1481C9.19937 6.58817 9.57968 6.93145 10.0459 7.10415L10.4912 7.26919C11.127 7.50461 11.1666 8.36217 10.6104 8.67544L10.4912 8.73013L10.0459 8.89517C9.5799 9.06783 9.19939 9.41141 8.97949 9.85123L8.89551 10.0456L8.73047 10.4909C8.49495 11.1267 7.63737 11.1665 7.32422 10.61L7.26953 10.4909L7.10449 10.0456C6.93172 9.57931 6.58767 9.19898 6.14746 8.97916L5.9541 8.89517L5.50879 8.73013C4.83054 8.47903 4.83061 7.52037 5.50879 7.26919L5.9541 7.10415L6.14746 7.02017C6.58757 6.80032 6.93176 6.41995 7.10449 5.95376L7.26953 5.50845L7.32422 5.38931Z",fill:"currentColor"},null,-1)])])}const Nft=it({name:"kimi-music",render:Dft}),Bft={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function zft(e,t){return b(),I("svg",Bft,[...t[0]||(t[0]=[A("path",{d:"M17.9551 6.32648C17.955 5.82951 17.5517 5.42706 17.0547 5.42706H15.4844C14.9875 5.42717 14.5851 5.82958 14.585 6.32648V17.6732C14.585 18.1701 14.9874 18.5734 15.4844 18.5735H17.0547C17.5518 18.5735 17.9551 18.1702 17.9551 17.6732V6.32648ZM19.7549 17.6732C19.7549 19.1643 18.5459 20.3734 17.0547 20.3734H15.4844C13.9933 20.3732 12.7842 19.1643 12.7842 17.6732V6.32648C12.7843 4.83546 13.9934 3.62639 15.4844 3.62628H17.0547C18.5458 3.62628 19.7548 4.8354 19.7549 6.32648V17.6732Z",fill:"currentColor"},null,-1),A("path",{d:"M9.41571 6.32648C9.41561 5.82951 9.01231 5.42706 8.51532 5.42706H6.94501C6.44811 5.42717 6.0457 5.82958 6.04559 6.32648V17.6732C6.04559 18.1701 6.44804 18.5734 6.94501 18.5735H8.51532C9.01238 18.5735 9.41571 18.1702 9.41571 17.6732V6.32648ZM11.2155 17.6732C11.2155 19.1643 10.0065 20.3734 8.51532 20.3734H6.94501C5.45393 20.3732 4.24481 19.1643 4.24481 17.6732V6.32648C4.24492 4.83546 5.45399 3.62639 6.94501 3.62628H8.51532C10.0064 3.62628 11.2154 4.8354 11.2155 6.32648V17.6732Z",fill:"currentColor"},null,-1)])])}const Hft=it({name:"kimi-pause",render:zft}),jft={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Wft(e,t){return b(),I("svg",jft,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M18.0176 4.89998C17.7305 4.89998 17.4552 5.014 17.2522 5.217L6.35429 16.1149C5.957 16.5122 5.67517 17.01 5.53889 17.5551L5.23691 18.763L6.44486 18.4611C6.98994 18.3248 7.48773 18.0429 7.88502 17.6456L18.783 6.74773C18.8834 6.64728 18.9631 6.52797 19.0176 6.39658C19.072 6.26517 19.1 6.12441 19.1 5.98236C19.1 5.84031 19.072 5.69956 19.0176 5.56815C18.9631 5.43676 18.8834 5.31745 18.783 5.217C18.6825 5.11649 18.5631 5.03676 18.4318 4.98237C18.3005 4.92798 18.1597 4.89998 18.0176 4.89998ZM15.9794 3.94421C16.52 3.40366 17.2531 3.09998 18.0176 3.09998C18.3961 3.09998 18.7709 3.17452 19.1207 3.31938C19.4704 3.46424 19.7881 3.67656 20.0558 3.94421C20.3235 4.21192 20.5357 4.52969 20.6805 4.87932C20.8254 5.22895 20.9 5.60375 20.9 5.98236C20.9 6.36098 20.8254 6.73578 20.6805 7.08541C20.5357 7.43504 20.3235 7.75281 20.0558 8.02052L17.6385 10.4378L9.15781 18.9184C8.52984 19.5464 7.74301 19.9919 6.88142 20.2073L4.21828 20.8731C3.91158 20.9498 3.58714 20.8599 3.3636 20.6364C3.14006 20.4128 3.05019 20.0884 3.12686 19.7817L3.79264 17.1185C4.00803 16.257 4.45351 15.4701 5.0815 14.8421L15.9794 3.94421Z",fill:"currentColor"},null,-1)])])}const qft=it({name:"kimi-pencil",render:Wft}),Vft={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Uft(e,t){return b(),I("svg",Vft,[...t[0]||(t[0]=[A("path",{d:"M7.76251 3.10547C8.25776 3.10552 8.74422 3.23849 9.17072 3.49023L19.533 9.60742C20.8536 10.3869 21.2922 12.0901 20.5174 13.4121C20.2785 13.8195 19.9398 14.1604 19.533 14.4004L9.16974 20.5156C7.84721 21.2958 6.14595 20.8511 5.36993 19.5273C5.1196 19.1003 4.98719 18.6142 4.98712 18.1191V5.88672C4.98716 4.3537 6.2273 3.10547 7.76251 3.10547ZM6.7879 18.1191C6.78797 18.2945 6.8343 18.4664 6.92267 18.6172C7.19638 19.0841 7.79336 19.2377 8.25568 18.9648L18.618 12.8496C18.7607 12.7654 18.8803 12.6458 18.9647 12.502C19.2393 12.0334 19.082 11.4311 18.618 11.1572L8.25568 5.04102C8.1061 4.95273 7.93562 4.9063 7.76251 4.90625C7.22703 4.90625 6.78794 5.34218 6.7879 5.88672V18.1191Z",fill:"currentColor"},null,-1)])])}const Kft=it({name:"kimi-play",render:Uft}),Zft={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Gft(e,t){return b(),I("svg",Zft,[...t[0]||(t[0]=[A("path",{d:"M18.36 6.64a9 9 0 1 1-12.73 0",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),A("path",{d:"M12 2v10",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])])}const Qft=it({name:"kimi-power",render:Gft}),Yft={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Jft(e,t){return b(),I("svg",Yft,[...t[0]||(t[0]=[A("path",{d:"M11.999 15.0049C12.6208 15.0049 13.1259 15.5091 13.126 16.1309C13.126 16.7528 12.6209 17.2578 11.999 17.2578C11.3773 17.2576 10.873 16.7526 10.873 16.1309C10.8732 15.5092 11.3774 15.0051 11.999 15.0049Z",fill:"currentColor"},null,-1),A("path",{d:"M10.1611 7.37109C10.9017 6.79576 11.8605 6.60385 12.7881 6.8457C13.808 7.10861 14.6385 7.93756 14.9014 8.95898C15.2694 10.3845 14.5793 11.8629 13.2598 12.4736C13.0803 12.557 12.75 12.9552 12.75 13.3525V13.502C12.75 13.9172 12.4142 14.2527 11.999 14.2529C11.5837 14.2529 11.248 13.9173 11.248 13.502V13.3525C11.248 12.313 11.9587 11.4215 12.6279 11.1113C13.1777 10.8567 13.6681 10.192 13.4473 9.33496C13.3195 8.84253 12.9038 8.42684 12.4121 8.2998C11.9292 8.17289 11.4573 8.26727 11.0811 8.55859C10.71 8.84626 10.4971 9.28012 10.4971 9.74805C10.4968 10.1632 10.1613 10.499 9.74609 10.499C9.33092 10.499 8.99536 10.1632 8.99512 9.74805C8.99512 8.81152 9.41918 7.94493 10.1611 7.37109Z",fill:"currentColor"},null,-1),A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM12 3.7998C7.47126 3.7998 3.7998 7.47126 3.7998 12C3.7998 16.5287 7.47126 20.2002 12 20.2002C16.5287 20.2002 20.2002 16.5287 20.2002 12C20.2002 7.47126 16.5287 3.7998 12 3.7998Z",fill:"currentColor"},null,-1)])])}const Xft=it({name:"kimi-question",render:Jft}),eht={xmlns:"http://www.w3.org/2000/svg",width:"40",height:"56",viewBox:"0 0 40 56"},tht=["id"],nht=["filter"];function iht(e,t){return b(),I("svg",eht,[A("defs",null,[A("filter",{id:e.idMap["cursor-shadow"],x:"-50%",y:"-50%",width:"200%",height:"200%","color-interpolation-filters":"sRGB"},[...t[0]||(t[0]=[A("feDropShadow",{dx:"0",dy:"2",stdDeviation:"1.8","flood-color":"#000","flood-opacity":"0.28"},null,-1)])],8,tht)]),A("g",{filter:"url(#"+e.idMap["cursor-shadow"]+")"},[...t[1]||(t[1]=[A("path",{fill:"#252525",d:"M8.846,4.983L8.846,4.983Q8.500,4.739 8.100,4.879L6.717,5.363Q6.500,5.439 6.411,5.651L6.145,6.288Q6.056,6.500 6.056,6.730L6.056,37.048Q6.056,37.500 6.345,37.848L7.217,38.899Q7.500,39.241 7.900,39.433L9.100,40.009Q9.500,40.201 9.938,40.133L11.991,39.814Q12.500,39.735 12.900,39.411L14.283,38.292Q14.500,38.116 14.700,38.311L15.300,38.898Q15.500,39.093 15.623,39.344L18.898,46.001Q19.143,46.500 19.614,46.796L21.029,47.682Q21.500,47.978 22.056,47.981L23.951,47.992Q24.500,47.996 24.960,47.697L26.410,46.754Q26.801,46.500 27.039,46.100L27.787,44.845Q27.993,44.500 28.033,44.100L28.152,42.900Q28.192,42.500 28.123,42.104L27.913,40.900Q27.843,40.500 27.691,40.124L25.648,35.086Q25.411,34.500 26.028,34.364L27.988,33.932Q28.500,33.819 28.953,33.555L30.367,32.732Q30.766,32.500 30.997,32.100L31.692,30.900Q31.923,30.500 31.884,30.040L31.717,28.100Q31.665,27.500 31.243,27.071L11.429,6.936Q11.000,6.500 10.500,6.148Z"},null,-1),A("path",{fill:"#fff",d:"M9.663,8.884L9.663,8.884Q9.500,8.719 9.328,8.876L8.812,9.344Q8.641,9.500 8.641,9.732L8.641,36.280Q8.641,36.500 8.812,36.638L9.342,37.061Q9.500,37.188 9.700,37.222L10.300,37.324Q10.500,37.358 10.656,37.229L15.387,33.292Q15.500,33.198 15.633,33.258L16.033,33.440Q16.167,33.500 16.227,33.633L21.020,44.223Q21.146,44.500 21.417,44.638L22.229,45.053Q22.500,45.191 22.799,45.135L24.183,44.871Q24.500,44.811 24.688,44.549L25.325,43.664Q25.442,43.500 25.469,43.300L25.549,42.700Q25.576,42.500 25.500,42.313L21.138,31.606Q21.095,31.500 21.176,31.418L21.419,31.174Q21.500,31.092 21.615,31.086L28.211,30.739Q28.500,30.723 28.654,30.479L29.163,29.672Q29.271,29.500 29.236,29.300L29.131,28.700Q29.096,28.500 28.953,28.356Z"},null,-1)])],8,nht)])}const oht=it({name:"kimi-browser-pointer",render:iht,setup(){return{idMap:{"cursor-shadow":"uicons-"+Math.random().toString(36).substr(2,10)}}}}),sht={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function rht(e,t){return b(),I("svg",sht,[...t[0]||(t[0]=[A("path",{d:"M12 2C13.1046 2 14 2.89543 14 4C14 4.78019 13.552 5.45353 12.9004 5.7832V7H16.5C18.1569 7 19.5 8.34315 19.5 10V17C19.5 18.6051 18.2394 19.9158 16.6543 19.9961L16.5 20H7.5L7.3457 19.9961C5.81166 19.9184 4.58163 18.6883 4.50391 17.1543L4.5 17V10C4.5 8.34315 5.84315 7 7.5 7H11.0996V5.7832C10.448 5.45353 10 4.78019 10 4C10 2.89543 10.8954 2 12 2ZM7.5 8.7998C6.83726 8.7998 6.2998 9.33726 6.2998 10V17C6.2998 17.6627 6.83726 18.2002 7.5 18.2002H16.5C17.1627 18.2002 17.7002 17.6627 17.7002 17V10C17.7002 9.33726 17.1627 8.7998 16.5 8.7998H7.5ZM3 10.7666C3.49706 10.7666 3.90039 11.1699 3.90039 11.667V15C3.90039 15.4971 3.49706 15.9004 3 15.9004C2.50294 15.9004 2.09961 15.4971 2.09961 15V11.667C2.09961 11.1699 2.50294 10.7666 3 10.7666ZM21 10.7666C21.4971 10.7666 21.9004 11.1699 21.9004 11.667V15C21.9004 15.4971 21.4971 15.9004 21 15.9004C20.5029 15.9004 20.0996 15.4971 20.0996 15V11.667C20.0996 11.1699 20.5029 10.7666 21 10.7666ZM9.5 11.0996C9.99706 11.0996 10.4004 11.5029 10.4004 12V14.5C10.4004 14.9971 9.99706 15.4004 9.5 15.4004C9.00294 15.4004 8.59961 14.9971 8.59961 14.5V12C8.59961 11.5029 9.00294 11.0996 9.5 11.0996ZM14.5 11.0996C14.9971 11.0996 15.4004 11.5029 15.4004 12V14.5C15.4004 14.9971 14.9971 15.4004 14.5 15.4004C14.0029 15.4004 13.5996 14.9971 13.5996 14.5V12C13.5996 11.5029 14.0029 11.0996 14.5 11.0996ZM12 3.5C11.7239 3.5 11.5 3.72386 11.5 4C11.5 4.27614 11.7239 4.5 12 4.5C12.2761 4.5 12.5 4.27614 12.5 4C12.5 3.72386 12.2761 3.5 12 3.5Z",fill:"currentColor"},null,-1)])])}const aht=it({name:"kimi-robot",render:rht}),lht={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function cht(e,t){return b(),I("svg",lht,[...t[0]||(t[0]=[A("path",{d:"M9 3H5.5C4.11929 3 3 4.11929 3 5.5V9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round"},null,-1),A("path",{d:"M15 3H18.5C19.8807 3 21 4.11929 21 5.5V9",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round"},null,-1),A("path",{d:"M21 15V18.5C21 19.8807 19.8807 21 18.5 21H15",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round"},null,-1),A("path",{d:"M9 21H5.5C4.11929 21 3 19.8807 3 18.5V15",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round"},null,-1)])])}const uht=it({name:"kimi-screenshot",render:cht}),dht={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function fht(e,t){return b(),I("svg",dht,[...t[0]||(t[0]=[A("path",{d:"M11.5 3C16.1944 3 20 6.80558 20 11.5C20 13.523 19.2933 15.381 18.1132 16.8404L21.1364 19.8636C21.4879 20.2151 21.4879 20.7849 21.1364 21.1364C20.7849 21.4879 20.2151 21.4879 19.8636 21.1364L16.8404 18.1132C15.381 19.2933 13.523 20 11.5 20C6.80558 20 3 16.1944 3 11.5C3 6.80558 6.80558 3 11.5 3ZM11.5 18.2C15.2003 18.2 18.2 15.2003 18.2 11.5C18.2 7.79969 15.2003 4.8 11.5 4.8C7.79969 4.8 4.8 7.79969 4.8 11.5C4.8 15.2003 7.79969 18.2 11.5 18.2Z",fill:"currentColor"},null,-1)])])}const hht=it({name:"kimi-search",render:fht}),pht={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function mht(e,t){return b(),I("svg",pht,[...t[0]||(t[0]=[A("path",{d:"M16.5364 10.1636C16.8879 10.5151 16.8879 11.0849 16.5364 11.4364C16.1849 11.7879 15.6151 11.7879 15.2636 11.4364L12.9 9.07281V17.1C12.9 17.597 12.4971 18 12 18C11.503 18 11.1 17.597 11.1 17.1V9.07281L8.73641 11.4364C8.38494 11.7879 7.81509 11.7879 7.46362 11.4364C7.11214 11.0849 7.11214 10.5151 7.46362 10.1636L11.3636 6.2636C11.7151 5.91211 12.2849 5.91211 12.6364 6.2636L16.5364 10.1636Z",fill:"currentColor"},null,-1)])])}const ght=it({name:"kimi-send",render:mht}),vht={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function yht(e,t){return b(),I("svg",vht,[...t[0]||(t[0]=[A("path",{d:"M16.0404 12C16.0404 9.76874 14.2313 7.9596 12.0001 7.9596C9.76883 7.9596 7.95972 9.76874 7.95972 12C7.95972 14.2313 9.76883 16.0404 12.0001 16.0404C14.2313 16.0404 16.0404 14.2313 16.0404 12ZM14.2222 12C14.2222 13.2271 13.2271 14.2222 12 14.2222C10.7729 14.2222 9.77783 13.2271 9.77783 12C9.77783 10.7729 10.7729 9.77778 12 9.77778C13.2271 9.77778 14.2222 10.7729 14.2222 12Z",fill:"currentColor"},null,-1),A("path",{d:"M9.91145 21.8009C9.29001 21.6797 8.76914 21.2612 8.50632 20.6922L8.07372 19.7556C7.88838 19.3544 7.43553 19.1048 6.95371 19.1549L5.89572 19.2647C5.2733 19.3293 4.64823 19.114 4.22298 18.6611C3.74343 18.1504 3.32454 17.6037 2.97033 17.0181C2.61571 16.4318 2.32839 15.8106 2.10407 15.1566C1.89769 14.5549 2.02148 13.8954 2.4089 13.3902L3.0376 12.5704C3.30043 12.2277 3.30042 11.7722 3.03758 11.4295L2.40413 10.6035C2.01474 10.0958 1.891 9.43198 2.10208 8.82826C2.55037 7.54612 3.27017 6.35997 4.22 5.34259C4.64518 4.8872 5.27275 4.67067 5.89701 4.73544L6.95383 4.84514C7.43561 4.89515 7.88844 4.6456 8.07377 4.24441L8.50266 3.31593C8.76494 2.74818 9.28448 2.33019 9.90423 2.20761C11.2916 1.9332 12.7148 1.93127 14.0885 2.19913C14.7099 2.32029 15.2308 2.73881 15.4937 3.3078L15.9263 4.24441C16.1116 4.6456 16.5644 4.89514 17.0462 4.84514L18.1043 4.73532C18.7267 4.67072 19.3518 4.88603 19.777 5.33886C20.2566 5.84953 20.6755 6.3963 21.0297 6.98193C21.3843 7.56823 21.6716 8.18942 21.8959 8.84339C22.1023 9.44509 21.9785 10.1046 21.5911 10.6098L20.9624 11.4295C20.6996 11.7722 20.6996 12.2278 20.9624 12.5705L21.5959 13.3964C21.9853 13.9042 22.109 14.568 21.8979 15.1717C21.4497 16.4538 20.7299 17.6399 19.7801 18.6573C19.3549 19.1128 18.7273 19.3294 18.103 19.2646L17.0462 19.1549C16.5645 19.1049 16.1116 19.3544 15.9263 19.7556L15.4974 20.6841C15.2351 21.2518 14.7156 21.6698 14.0958 21.7924C12.7083 22.0668 11.2852 22.0687 9.91145 21.8009ZM13.7432 20.0088C13.7844 20.0006 13.8259 19.9673 13.847 19.9216L14.2758 18.9931C14.7915 17.8768 15.9886 17.2171 17.2341 17.3464L18.2909 17.4561C18.3649 17.4638 18.4272 17.4423 18.4512 17.4166C19.2296 16.5828 19.8171 15.6146 20.1817 14.5716C20.1845 14.5636 20.1796 14.5373 20.1532 14.5029L19.5198 13.677C18.7564 12.6815 18.7564 11.3185 19.5198 10.323L20.1485 9.5033C20.1746 9.46927 20.1795 9.4429 20.1762 9.43327C19.9932 8.89965 19.7603 8.39623 19.4741 7.92293C19.1873 7.4489 18.846 7.00333 18.4517 6.58351C18.4272 6.55739 18.3656 6.53616 18.2921 6.54378L17.234 6.65361C15.9886 6.78287 14.7915 6.12317 14.2758 5.00689L13.8432 4.07027C13.822 4.02448 13.7811 3.9916 13.7406 3.98371C12.5983 3.76097 11.4132 3.76258 10.2571 3.99124C10.2158 3.99941 10.1744 4.03271 10.1533 4.07842L9.72441 5.00689C9.20875 6.12317 8.01164 6.7829 6.76619 6.6536L5.70942 6.54391C5.63535 6.53623 5.573 6.55774 5.54905 6.5834C4.77067 7.41713 4.18312 8.38534 3.81845 9.42835C3.81564 9.43637 3.82054 9.46265 3.84693 9.49706L4.48038 10.323C5.24381 11.3185 5.24383 12.6815 4.48041 13.6769L3.85171 14.4967C3.82561 14.5307 3.82066 14.5571 3.82396 14.5667C4.00701 15.1004 4.23986 15.6038 4.52613 16.0771C4.81284 16.5511 5.15421 16.9967 5.54845 17.4165C5.57298 17.4426 5.63461 17.4638 5.70811 17.4562L6.76608 17.3464C8.01157 17.2171 9.20871 17.8768 9.72438 18.9932L10.157 19.9297C10.1781 19.9755 10.2191 20.0084 10.2595 20.0163C11.4018 20.239 12.587 20.2374 13.7432 20.0088Z",fill:"currentColor"},null,-1)])])}const bht=it({name:"kimi-setting",render:yht}),kht={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function wht(e,t){return b(),I("svg",kht,[...t[0]||(t[0]=[A("path",{d:"M17 2C19.2091 2 21 3.79086 21 6V15.7646C21 17.2361 20.192 18.5884 18.8965 19.2861L13.8965 21.9785C12.7126 22.616 11.2874 22.616 10.1035 21.9785L5.10352 19.2861C3.80802 18.5884 3 17.2361 3 15.7646V6C3 3.79086 4.79086 2 7 2H17ZM7 3.7998C5.78498 3.7998 4.79981 4.78497 4.7998 6V15.7646C4.7998 16.574 5.24443 17.3184 5.95703 17.7021L10.957 20.3936C11.6082 20.7442 12.3918 20.7442 13.043 20.3936L18.043 17.7021C18.7556 17.3184 19.2002 16.574 19.2002 15.7646V6C19.2002 4.78497 18.215 3.7998 17 3.7998H7Z",fill:"currentColor"},null,-1),A("path",{d:"M10.1611 7.37109C10.9017 6.79576 11.8605 6.60385 12.7881 6.8457C13.808 7.10861 14.6385 7.93756 14.9014 8.95898C15.2694 10.3845 14.5793 11.8629 13.2598 12.4736C13.0803 12.557 12.75 12.9552 12.75 13.3525V13.502C12.75 13.9172 12.4142 14.2527 11.999 14.2529C11.5837 14.2529 11.248 13.9173 11.248 13.502V13.3525C11.248 12.313 11.9587 11.4215 12.6279 11.1113C13.1777 10.8567 13.6681 10.192 13.4473 9.33496C13.3195 8.84253 12.9038 8.42684 12.4121 8.2998C11.9292 8.17289 11.4573 8.26727 11.0811 8.55859C10.71 8.84626 10.4971 9.28012 10.4971 9.74805C10.4968 10.1632 10.1613 10.499 9.74609 10.499C9.33092 10.499 8.99536 10.1632 8.99512 9.74805C8.99512 8.81152 9.41918 7.94493 10.1611 7.37109Z",fill:"currentColor"},null,-1),A("path",{d:"M11.999 15.0049C12.6208 15.0049 13.1259 15.5091 13.126 16.1309C13.126 16.7528 12.6209 17.2578 11.999 17.2578C11.3773 17.2576 10.873 16.7526 10.873 16.1309C10.8732 15.5092 11.3774 15.0051 11.999 15.0049Z",fill:"currentColor"},null,-1)])])}const Cht=it({name:"kimi-shield-question",render:wht}),Aht={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function xht(e,t){return b(),I("svg",Aht,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M12.305 3.686C7.571 3.686 3.733 7.523 3.733 12.257C3.733 13.906 4.199 15.447 5.007 16.755L4.098 18.927C3.719 19.831 4.383 20.828 5.363 20.828H12.305C17.039 20.828 20.876 16.991 20.876 12.257C20.876 7.523 17.039 3.686 12.305 3.686ZM15.549 7.907C14.966 7.987 14.559 8.524 14.638 9.107L14.928 11.227C15.008 11.809 15.545 12.217 16.128 12.137C16.711 12.058 17.119 11.521 17.039 10.938L16.749 8.818C16.669 8.235 16.132 7.827 15.549 7.907ZM10.959 8.472C10.376 8.552 9.968 9.089 10.048 9.672L10.338 11.792C10.418 12.374 10.955 12.782 11.538 12.702C12.121 12.623 12.528 12.086 12.449 11.503L12.159 9.383C12.079 8.8 11.542 8.392 10.959 8.472Z",fill:"currentColor"},null,-1)])])}const Sht=it({name:"kimi-side-chat",render:xht}),_ht={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Iht(e,t){return b(),I("svg",_ht,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M2.90005 12C2.90005 11.503 3.303 11.1 3.80005 11.1H12.2939L9.38588 8.19197C9.03441 7.8405 9.03441 7.27065 9.38588 6.91918C9.73735 6.56771 10.3072 6.56771 10.6587 6.91918L15.1031 11.3636C15.2719 11.5324 15.3667 11.7613 15.3667 12C15.3667 12.2387 15.2719 12.4676 15.1031 12.6364L10.6587 17.0809C10.3072 17.4323 9.73735 17.4323 9.38588 17.0809C9.03441 16.7294 9.03441 16.1595 9.38588 15.8081L12.2939 12.9H3.80005C3.303 12.9 2.90005 12.4971 2.90005 12ZM13.5874 20C13.5874 19.503 13.9904 19.1 14.4874 19.1H18.043C18.2758 19.1 18.4991 19.0075 18.6637 18.8429C18.8283 18.6783 18.9208 18.455 18.9208 18.2222V5.7778C18.9208 5.545 18.8283 5.32174 18.6637 5.15712C18.499 4.9925 18.2758 4.90002 18.043 4.90002H14.4874C13.9904 4.90002 13.5874 4.49708 13.5874 4.00002C13.5874 3.50297 13.9904 3.10003 14.4874 3.10003H18.043C18.7532 3.10003 19.4343 3.38215 19.9365 3.88433C20.4386 4.38651 20.7208 5.06761 20.7208 5.7778V18.2222C20.7208 18.9324 20.4386 19.6135 19.9365 20.1157C19.4343 20.6179 18.7532 20.9 18.043 20.9H14.4874C13.9904 20.9 13.5874 20.4971 13.5874 20Z",fill:"currentColor"},null,-1)])])}const Tht=it({name:"kimi-sign-in",render:Iht}),Mht={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Eht(e,t){return b(),I("svg",Mht,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M20.6364 11.3636C20.9879 11.7151 20.9879 12.2849 20.6364 12.6364L16.1919 17.0808C15.8405 17.4323 15.2706 17.4323 14.9192 17.0808C14.5677 16.7293 14.5677 16.1595 14.9192 15.808L17.8272 12.9H9.33333C8.83627 12.9 8.43333 12.497 8.43333 12C8.43333 11.5029 8.83627 11.1 9.33333 11.1H17.8272L14.9192 8.19193C14.5677 7.84046 14.5677 7.27061 14.9192 6.91914C15.2706 6.56766 15.8405 6.56766 16.1919 6.91914L20.6364 11.3636ZM10.2333 3.99998C10.2333 4.49703 9.83038 4.89998 9.33333 4.89998H5.77777C5.54497 4.89998 5.3217 4.99246 5.15709 5.15707C4.99247 5.32169 4.89999 5.54495 4.89999 5.77775V18.2222C4.89999 18.455 4.99247 18.6783 5.15709 18.8429C5.32171 19.0075 5.54497 19.1 5.77777 19.1H9.33333C9.83038 19.1 10.2333 19.5029 10.2333 20C10.2333 20.497 9.83038 20.9 9.33333 20.9H5.77777C5.06758 20.9 4.38648 20.6179 3.8843 20.1157C3.38212 19.6135 3.09999 18.9324 3.09999 18.2222V5.77775C3.09999 5.06756 3.38212 4.38646 3.8843 3.88428C4.38648 3.3821 5.06758 3.09998 5.77777 3.09998H9.33333C9.83038 3.09998 10.2333 3.50292 10.2333 3.99998Z",fill:"currentColor"},null,-1)])])}const Lht=it({name:"kimi-sign-out",render:Eht}),Rht={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Pht(e,t){return b(),I("svg",Rht,[...t[0]||(t[0]=[Eu('',9)])])}const $ht=it({name:"kimi-sliders",render:Pht}),Oht={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Fht(e,t){return b(),I("svg",Oht,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M7.78027 8.90405C7.5 9.45411 7.5 10.1742 7.5 11.6144V12.3856C7.5 13.8258 7.5 14.5459 7.78027 15.096C8.02681 15.5798 8.42019 15.9732 8.90405 16.2197C9.45411 16.5 10.1742 16.5 11.6144 16.5H12.3856C13.8258 16.5 14.5459 16.5 15.096 16.2197C15.5798 15.9732 15.9732 15.5798 16.2197 15.096C16.5 14.5459 16.5 13.8258 16.5 12.3856V11.6144C16.5 10.1742 16.5 9.45411 16.2197 8.90405C15.9732 8.42019 15.5798 8.02681 15.096 7.78027C14.5459 7.5 13.8258 7.5 12.3856 7.5H11.6144C10.1742 7.5 9.45411 7.5 8.90405 7.78027C8.42019 8.02681 8.02681 8.42019 7.78027 8.90405Z",fill:"currentColor"},null,-1)])])}const Dht=it({name:"kimi-stop",render:Fht}),Nht={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Bht(e,t){return b(),I("svg",Nht,[...t[0]||(t[0]=[A("path",{d:"M7.01562 3.41459C7.4446 3.16449 7.9954 3.30924 8.24609 3.73784C8.49645 4.167 8.35189 4.71868 7.92285 4.96928C5.51497 6.37506 3.90054 8.98498 3.90039 11.9703C3.90076 16.4435 7.52672 20.0699 12 20.0699C16.4733 20.0699 20.0992 16.4435 20.0996 11.9703C20.0996 11.2291 20 10.5116 19.8145 9.83159C19.6838 9.35222 19.967 8.85702 20.4463 8.72612C20.9256 8.59541 21.4207 8.87778 21.5518 9.35698C21.7792 10.1901 21.9004 11.0674 21.9004 11.9703C21.9 17.4376 17.4674 21.8697 12 21.8697C6.53261 21.8697 2.09998 17.4376 2.09961 11.9703C2.09976 8.31904 4.07782 5.12972 7.01562 3.41459ZM8.39258 8.24077C8.75015 7.89591 9.3199 7.90591 9.66504 8.26323C10.01 8.62076 9.99985 9.19051 9.64258 9.53569C9.00203 10.1541 8.60558 11.02 8.60547 11.979C8.60584 13.8536 10.1253 15.3736 12 15.3736C13.8746 15.3735 15.3942 13.8536 15.3945 11.979C15.3945 11.6847 15.3577 11.3989 15.2881 11.1285C15.1646 10.6474 15.4536 10.1568 15.9346 10.0328C16.4158 9.9089 16.9071 10.1991 17.0312 10.6802C17.1383 11.096 17.1943 11.5321 17.1943 11.979C17.194 14.8477 14.8688 17.1733 12 17.1734C9.1312 17.1734 6.80506 14.8478 6.80469 11.979C6.8048 10.5117 7.41519 9.18431 8.39258 8.24077ZM11.5459 1.12651C11.8216 0.965605 12.1631 0.963306 12.4414 1.11967L19.1953 4.91752C19.4859 5.08108 19.662 5.39277 19.6533 5.72612C19.6443 6.05972 19.4515 6.36154 19.1523 6.50932L12.9004 9.5933V12.2583C12.9004 12.7554 12.4971 13.1587 12 13.1587C11.5029 13.1587 11.0996 12.7554 11.0996 12.2583V1.90385C11.0999 1.58444 11.2702 1.2878 11.5459 1.12651ZM12.9004 7.58549L16.8252 5.64897L12.9004 3.44194V7.58549Z",fill:"currentColor"},null,-1)])])}const zht=it({name:"kimi-target",render:Bht}),Hht={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function jht(e,t){return b(),I("svg",Hht,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M18.9893 6.60743C20.5897 6.60757 21.8877 7.8926 21.8877 9.47736C21.8877 10.7416 21.0607 11.8129 19.9141 12.1955V14.257C19.914 15.8428 18.6152 17.1288 17.0137 17.1289H12.8438V20.1381C12.8437 20.6301 12.4412 21.0293 11.9443 21.0296C11.4473 21.0296 11.044 20.6302 11.0439 20.1381V16.4356C11.0441 15.8343 11.5363 15.3461 12.1436 15.3458H17.0137C17.6211 15.3457 18.1133 14.8585 18.1133 14.257V12.2129C16.9408 11.8451 16.0909 10.7598 16.0908 9.47736C16.0908 7.89251 17.3887 6.60743 18.9893 6.60743ZM18.9893 8.38953C18.3828 8.38953 17.8906 8.87684 17.8906 9.47736C17.8907 10.0778 18.3828 10.5642 18.9893 10.5642C19.5956 10.5641 20.0869 10.0777 20.0869 9.47736C20.0869 8.87693 19.5956 8.38967 18.9893 8.38953Z",fill:"currentColor"},null,-1),A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M4.89844 6.60743C6.49899 6.60747 7.79688 7.89254 7.79688 9.47736C7.79684 10.7388 6.97371 11.8078 5.83105 12.1926V14.4021C5.83105 15.0036 6.32315 15.4918 6.93066 15.4918H8.37109C8.86789 15.492 9.27038 15.8905 9.27051 16.3824C9.27051 16.8744 8.86797 17.2737 8.37109 17.2739H6.93066C5.32904 17.2739 4.03027 15.9879 4.03027 14.4021V12.2158C2.85382 11.8504 2.00004 10.7627 2 9.47736C2 7.89251 3.29784 6.60743 4.89844 6.60743ZM4.89844 8.38953C4.29196 8.38953 3.7998 8.87684 3.7998 9.47736C3.79985 10.0778 4.29198 10.5642 4.89844 10.5642C5.50485 10.5642 5.99605 10.0778 5.99609 9.47736C5.99609 8.87687 5.50488 8.38958 4.89844 8.38953Z",fill:"currentColor"},null,-1),A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.9434 2.9707C13.5439 2.97075 14.8418 4.25581 14.8418 5.84063C14.8418 7.11413 14.0035 8.1923 12.8438 8.56745V13.0135C12.8436 13.5056 12.4403 13.9041 11.9434 13.9041C11.4466 13.9039 11.0431 13.5055 11.043 13.0135V8.56745C9.8836 8.19209 9.04496 7.11387 9.04492 5.84063C9.04492 4.25592 10.343 2.97093 11.9434 2.9707ZM11.9434 4.75281C11.3371 4.75303 10.8447 5.24026 10.8447 5.84063C10.8448 6.44097 11.3371 6.92726 11.9434 6.92749C12.5498 6.92745 13.041 6.44108 13.041 5.84063C13.041 5.24014 12.5498 4.75285 11.9434 4.75281Z",fill:"currentColor"},null,-1)])])}const Wht=it({name:"kimi-task",render:jht}),qht={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Vht(e,t){return b(),I("svg",qht,[...t[0]||(t[0]=[A("path",{d:"M16.5293 15.0596C16.9496 15.1021 17.2772 15.4572 17.2773 15.8887C17.2773 16.3202 16.9497 16.6753 16.5293 16.7178L16.4443 16.7217H12C11.5399 16.7216 11.167 16.3488 11.167 15.8887C11.1671 15.4286 11.54 15.0558 12 15.0557H16.4443L16.5293 15.0596Z",fill:"currentColor"},null,-1),A("path",{d:"M6.96582 7.52246C7.27077 7.21751 7.75375 7.1983 8.08105 7.46484L8.14453 7.52246L10.8232 10.2002C11.5102 10.8872 11.5102 12.0014 10.8232 12.6885L8.14453 15.3672L8.08105 15.4248C7.75377 15.6913 7.27075 15.6721 6.96582 15.3672C6.66114 15.0621 6.64234 14.5791 6.90918 14.252L6.96582 14.1885L9.64453 11.5098C9.68057 11.4736 9.68062 11.415 9.64453 11.3789L6.96582 8.7002C6.64116 8.37488 6.6411 7.84774 6.96582 7.52246Z",fill:"currentColor"},null,-1),A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M17 3.09961C19.1539 3.09966 20.9004 4.84612 20.9004 7V17C20.9004 19.1539 19.1539 20.9003 17 20.9004H7C4.84609 20.9004 3.09961 19.1539 3.09961 17V7C3.09961 4.84609 4.84609 3.09961 7 3.09961H17ZM7 4.90039C5.8402 4.90039 4.90039 5.8402 4.90039 7V17C4.90039 18.1598 5.8402 19.0996 7 19.0996H17C18.1598 19.0996 19.0996 18.1598 19.0996 17V7C19.0996 5.84024 18.1598 4.90044 17 4.90039H7Z",fill:"currentColor"},null,-1)])])}const Uht=it({name:"kimi-terminal",render:Vht}),Kht={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Zht(e,t){return b(),I("svg",Kht,[...t[0]||(t[0]=[A("path",{d:"M16.9971 3.90597C15.9799 2.99725 14.7342 2.38312 13.394 2.12966C12.0538 1.8762 10.6699 1.99301 9.39111 2.46751C8.11236 2.94202 6.98721 3.75626 6.13676 4.82261C5.2863 5.88896 4.74274 7.16703 4.56457 8.5193C4.40455 9.70501 4.53253 10.9118 4.93767 12.0376C5.34281 13.1634 6.01318 14.175 6.89207 14.9868C7.43557 15.4634 7.87413 16.0477 8.17997 16.7027C8.48581 17.3577 8.65224 18.0691 8.66873 18.7918V18.926C8.66962 19.7412 8.99387 20.5229 9.57035 21.0993C10.1468 21.6758 10.9285 22.0001 11.7437 22.001H12.2604C13.0757 22.0001 13.8573 21.6758 14.4338 21.0993C15.0103 20.5229 15.3345 19.7412 15.3354 18.926V18.4685C15.3479 17.8297 15.4982 17.2011 15.7761 16.6258C16.0539 16.0505 16.4528 15.542 16.9454 15.1351C17.7442 14.4355 18.3853 13.5741 18.826 12.608C19.2668 11.642 19.4973 10.5932 19.5022 9.53136C19.5071 8.46948 19.2863 7.41869 18.8544 6.4486C18.4225 5.4785 17.7894 4.61125 16.9971 3.9043V3.90597ZM12.2604 20.3343H11.7437C11.3704 20.3339 11.0124 20.1853 10.7484 19.9213C10.4844 19.6573 10.3358 19.2993 10.3354 18.926C10.3354 18.926 10.3296 18.7093 10.3287 18.6676H13.6687V18.926C13.6683 19.2993 13.5198 19.6573 13.2558 19.9213C12.9917 20.1853 12.6338 20.3339 12.2604 20.3343ZM15.8437 13.8835C14.8949 14.7064 14.2097 15.7908 13.8737 17.001H12.8354V11.0143C13.3212 10.8426 13.742 10.5249 14.0403 10.1049C14.3387 9.68482 14.4999 9.18285 14.5021 8.66763C14.5021 8.44662 14.4143 8.23466 14.258 8.07838C14.1017 7.9221 13.8897 7.8343 13.6687 7.8343C13.4477 7.8343 13.2358 7.9221 13.0795 8.07838C12.9232 8.23466 12.8354 8.44662 12.8354 8.66763C12.8354 8.88865 12.7476 9.10061 12.5913 9.25689C12.435 9.41317 12.2231 9.50097 12.0021 9.50097C11.7811 9.50097 11.5691 9.41317 11.4128 9.25689C11.2565 9.10061 11.1687 8.88865 11.1687 8.66763C11.1687 8.44662 11.0809 8.23466 10.9247 8.07838C10.7684 7.9221 10.5564 7.8343 10.3354 7.8343C10.1144 7.8343 9.90242 7.9221 9.74614 8.07838C9.58986 8.23466 9.50207 8.44662 9.50207 8.66763C9.5042 9.18285 9.66547 9.68482 9.96381 10.1049C10.2621 10.5249 10.683 10.8426 11.1687 11.0143V17.001H10.0671C9.69123 15.7586 8.98633 14.6411 8.02707 13.7668C7.21286 13.0081 6.63267 12.0324 6.35496 10.9547C6.07725 9.87703 6.1136 8.7424 6.45974 7.68471C6.80588 6.62702 7.44735 5.69042 8.30846 4.98543C9.16956 4.28045 10.2144 3.83649 11.3196 3.70597C11.5487 3.68039 11.779 3.66759 12.0096 3.66763C13.4409 3.66338 14.8226 4.19149 15.8862 5.1493C16.5026 5.69896 16.9952 6.37337 17.3312 7.12782C17.6672 7.88227 17.839 8.69952 17.8352 9.5254C17.8314 10.3513 17.6522 11.1669 17.3092 11.9183C16.9663 12.6696 16.4677 13.3395 15.8462 13.8835H15.8437Z",fill:"currentColor"},null,-1)])])}const Ght=it({name:"kimi-thinking",render:Zht}),Qht={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Yht(e,t){return b(),I("svg",Qht,[...t[0]||(t[0]=[Eu('',6)])])}const Jht=it({name:"kimi-todo",render:Yht}),Xht={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function e1t(e,t){return b(),I("svg",Xht,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M8.09752 2.19507C8.5421 1.97278 9.08271 2.15298 9.305 2.59756L10.0562 4.10005H13.5C13.9971 4.10005 14.4 4.50299 14.4 5.00005C14.4 5.49711 13.9971 5.90005 13.5 5.90005H12.3106C12.2556 6.2319 12.1667 6.64073 12.0226 7.0987C11.7254 8.04355 11.191 9.20402 10.2334 10.3239C11.4166 11.196 12.5606 11.7524 13.4512 12.0987C13.978 12.3036 14.4136 12.434 14.7124 12.5122L14.7348 12.5181L15.695 10.5976C15.8475 10.2927 16.1591 10.1 16.5 10.1C16.8409 10.1 17.1525 10.2927 17.305 10.5976L20.7969 17.5814L20.8044 17.5959L20.8137 17.615L21.805 19.5976C22.0273 20.0421 21.8471 20.5827 21.4025 20.805C20.9579 21.0273 20.4173 20.8471 20.195 20.4025L19.4438 18.9H13.5562L12.805 20.4025C12.5827 20.8471 12.0421 21.0273 11.5975 20.805C11.1529 20.5827 10.9727 20.0421 11.195 19.5976L12.1863 17.615C12.1917 17.6036 12.1973 17.5924 12.2031 17.5814L13.9146 14.1583C13.6034 14.0667 13.2256 13.9423 12.7988 13.7764C11.7294 13.3605 10.3442 12.6802 8.92538 11.5924C7.79753 12.5167 6.69473 13.0764 5.83285 13.4112C5.33899 13.603 4.92286 13.7216 4.62401 13.7931C4.47449 13.8288 4.35399 13.8529 4.26741 13.8684C4.2241 13.8762 4.18924 13.8818 4.16343 13.8858L4.13156 13.8904L4.12084 13.8919L4.11682 13.8924L4.11514 13.8927C4.11514 13.8927 4.11368 13.8928 4.00001 13L4.11368 13.8928C3.62061 13.9556 3.17 13.6068 3.10722 13.1137C3.0446 12.6219 3.39148 12.1723 3.88256 12.1077L3.94947 12.0967C4.00428 12.0869 4.09114 12.0698 4.20543 12.0424C4.43422 11.9877 4.77156 11.8924 5.18106 11.7334C5.84103 11.477 6.68484 11.0564 7.56458 10.3753C7.15054 9.93496 6.78945 9.48388 6.50421 9.10102C6.26672 8.78224 6.07517 8.50172 5.94227 8.29973C5.87571 8.19858 5.82359 8.11671 5.78748 8.05909C5.76942 8.03027 5.75535 8.00749 5.74545 7.99135L5.73377 7.9722L5.73032 7.96651L5.72864 7.96371C5.71133 7.9349 5.69582 7.9055 5.68208 7.87566C5.49265 7.46416 5.6393 6.96717 6.03659 6.72853C6.09037 6.69623 6.14617 6.6702 6.20315 6.65023C6.59739 6.51205 7.04758 6.66421 7.27129 7.03623L7.27266 7.0385L7.28001 7.05054C7.28695 7.06186 7.29793 7.07964 7.31274 7.10328C7.34239 7.15059 7.38731 7.2212 7.44595 7.31032C7.56343 7.48886 7.73484 7.73997 7.94765 8.02562C8.21085 8.37889 8.52772 8.77187 8.8756 9.14201C9.64226 8.24147 10.0681 7.3133 10.3056 6.55854C10.381 6.3186 10.4372 6.09683 10.4791 5.90005H9.51951C9.50696 5.90031 9.49442 5.90031 9.48191 5.90005H4.00001C3.50296 5.90005 3.10001 5.49711 3.10001 5.00005C3.10001 4.50299 3.50296 4.10005 4.00001 4.10005H8.04378L7.69503 3.40254C7.67314 3.35877 7.65516 3.31407 7.64094 3.26883C7.51078 2.8546 7.69671 2.39547 8.09752 2.19507ZM16.5 13.0125L18.5438 17.1H14.4562L16.5 13.0125Z",fill:"currentColor"},null,-1),A("path",{d:"M15.1 4.00007C15.1 3.50301 15.5029 3.10007 16 3.10007H18C19.6016 3.10007 20.9 4.39844 20.9 6.00007V8.00007C20.9 8.49712 20.497 8.90007 20 8.90007C19.5029 8.90007 19.1 8.49712 19.1 8.00007V6.00007C19.1 5.39255 18.6075 4.90007 18 4.90007H16C15.5029 4.90007 15.1 4.49712 15.1 4.00007Z",fill:"currentColor"},null,-1),A("path",{d:"M3.99998 15.1001C4.49703 15.1001 4.89998 15.503 4.89998 16.0001V18.0001C4.89998 18.6076 5.39246 19.1001 5.99998 19.1001H7.99998C8.49703 19.1001 8.89998 19.503 8.89998 20.0001C8.89998 20.4971 8.49703 20.9001 7.99998 20.9001H5.99998C4.39835 20.9001 3.09998 19.6017 3.09998 18.0001V16.0001C3.09998 15.503 3.50292 15.1001 3.99998 15.1001Z",fill:"currentColor"},null,-1)])])}const t1t=it({name:"kimi-translate",render:e1t}),n1t={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function i1t(e,t){return b(),I("svg",n1t,[...t[0]||(t[0]=[A("path",{d:"M8.10001 3C8.10001 2.50294 8.50295 2.1 9.00001 2.1H15C15.4971 2.1 15.9 2.50294 15.9 3C15.9 3.49706 15.4971 3.9 15 3.9H9.00001C8.50295 3.9 8.10001 3.49706 8.10001 3Z",fill:"currentColor"},null,-1),A("path",{d:"M10 15.9C9.50295 15.9 9.10001 15.4971 9.10001 15L9.10001 10C9.10001 9.50294 9.50295 9.1 10 9.1C10.4971 9.1 10.9 9.50294 10.9 10L10.9 15C10.9 15.4971 10.4971 15.9 10 15.9Z",fill:"currentColor"},null,-1),A("path",{d:"M13.1 15C13.1 15.4971 13.5029 15.9 14 15.9C14.4971 15.9 14.9 15.4971 14.9 15L14.9 10C14.9 9.50294 14.4971 9.1 14 9.1C13.5029 9.1 13.1 9.50294 13.1 10V15Z",fill:"currentColor"},null,-1),A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M2.10001 6C2.10001 5.50294 2.50295 5.1 3.00001 5.1H4.99152C4.99785 5.09993 5.00417 5.09993 5.01048 5.1H18.9895C18.9958 5.09993 19.0021 5.09993 19.0085 5.1H21C21.4971 5.1 21.9 5.50294 21.9 6C21.9 6.49706 21.4971 6.9 21 6.9H19.8281L18.8448 18.6993C18.7412 19.9432 17.7013 20.9 16.4531 20.9H7.54686C6.29865 20.9 5.25881 19.9432 5.15515 18.6993L4.17188 6.9H3.00001C2.50295 6.9 2.10001 6.49706 2.10001 6ZM5.97811 6.9L18.0219 6.9L17.0511 18.5498C17.0251 18.8608 16.7652 19.1 16.4531 19.1H7.54686C7.23481 19.1 6.97485 18.8608 6.94893 18.5498L5.97811 6.9Z",fill:"currentColor"},null,-1)])])}const o1t=it({name:"kimi-trash",render:i1t}),s1t={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function r1t(e,t){return b(),I("svg",s1t,[...t[0]||(t[0]=[A("path",{d:"M7.36336 3.3634C7.71483 3.01192 8.28533 3.01192 8.6368 3.3634C8.98817 3.71488 8.98824 4.2854 8.6368 4.63683L6.17391 7.09972H15.0001C18.2585 7.09977 20.9005 9.74166 20.9005 13.0001C20.9004 16.2585 18.2585 18.9005 15.0001 18.9005H7.00008C6.50307 18.9005 6.09976 18.4971 6.09969 18.0001C6.09969 17.5031 6.50302 17.0997 7.00008 17.0997H15.0001C17.2644 17.0997 19.0996 15.2644 19.0997 13.0001C19.0997 10.7358 17.2644 8.90055 15.0001 8.90051H6.17391L8.6368 11.3634L8.69832 11.4318C8.98668 11.7853 8.96632 12.3073 8.6368 12.6368C8.30728 12.9663 7.78521 12.9867 7.43172 12.6984L7.36336 12.6368L3.36336 8.63683C3.33098 8.60445 3.30286 8.56908 3.27645 8.53332C3.25597 8.50559 3.23607 8.47741 3.21883 8.44738C3.20492 8.42311 3.19221 8.39837 3.18074 8.37316C3.1764 8.36365 3.17109 8.35453 3.16707 8.34484C3.1627 8.33427 3.1593 8.32331 3.15535 8.31261C3.12946 8.24274 3.11237 8.16872 3.10457 8.09191C3.09258 7.97426 3.10262 7.85446 3.1368 7.74035C3.14281 7.72035 3.15094 7.70114 3.15828 7.68176C3.16165 7.67283 3.16341 7.66325 3.16707 7.65441C3.17216 7.64216 3.17806 7.63025 3.18367 7.61828C3.19055 7.60356 3.19744 7.58874 3.20516 7.57433C3.24709 7.49624 3.3012 7.42556 3.36336 7.3634L7.36336 3.3634Z",fill:"currentColor"},null,-1)])])}const a1t=it({name:"kimi-undo",render:r1t}),l1t={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function c1t(e,t){return b(),I("svg",l1t,[...t[0]||(t[0]=[A("path",{d:"M11.9997 12.8779C16.0197 12.878 19.4393 15.3848 20.7048 18.8828C21.0812 19.9234 20.2782 20.8962 19.2038 21.0137L18.9861 21.0264H5.0134L4.79562 21.0137C3.7213 20.8961 2.91743 19.9233 3.29367 18.8828C4.55905 15.3847 7.9797 12.8781 11.9997 12.8779ZM11.9997 14.6777C8.84467 14.6779 6.17462 16.5794 5.09152 19.2256H18.9079C17.8248 16.5793 15.1549 14.6778 11.9997 14.6777ZM12.2312 3.00586C14.6088 3.1264 16.4997 5.09239 16.4997 7.5L16.4939 7.73145C16.3734 10.1091 14.4073 11.9999 11.9997 12C9.59225 11.9998 7.62604 10.109 7.50558 7.73145L7.49973 7.5C7.49973 5.01485 9.51462 3.00021 11.9997 3L12.2312 3.00586ZM11.9997 4.7998C10.5087 4.80001 9.29953 6.00896 9.29953 7.5C9.29953 8.99104 10.5087 10.2 11.9997 10.2002C13.4908 10.2001 14.6999 8.99112 14.6999 7.5C14.6999 6.00888 13.4908 4.79989 11.9997 4.7998Z",fill:"currentColor"},null,-1)])])}const u1t=it({name:"kimi-user",render:c1t}),d1t={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function f1t(e,t){return b(),I("svg",d1t,[...t[0]||(t[0]=[A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M14.636 12.195C16.486 12.195 18.036 13.485 18.436 15.214C18.434 15.208 18.433 15.201 18.432 15.195H20.088C20.585 15.196 20.988 15.599 20.988 16.096C20.988 16.593 20.585 16.996 20.088 16.996H18.432C18.435 16.983 18.437 16.969 18.44 16.955C18.049 18.696 16.494 19.996 14.636 19.996C12.792 19.996 11.247 18.716 10.841 16.996H3.913L3.821 16.991C3.368 16.945 3.014 16.561 3.014 16.096C3.014 15.63 3.368 15.246 3.821 15.2L3.913 15.195H10.841C11.247 13.476 12.792 12.195 14.636 12.195ZM14.636 13.996C13.476 13.996 12.536 14.936 12.536 16.096C12.536 17.255 13.476 18.195 14.636 18.195C15.796 18.195 16.735 17.255 16.735 16.096C16.735 14.936 15.795 13.996 14.636 13.996Z",fill:"currentColor"},null,-1),A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M9.423 4.004C11.28 4.004 12.834 5.302 13.227 7.041C13.224 7.029 13.222 7.016 13.219 7.004H20.088L20.18 7.009C20.633 7.055 20.987 7.439 20.987 7.904C20.987 8.37 20.633 8.753 20.18 8.8L20.088 8.805H13.219C13.224 8.783 13.228 8.761 13.232 8.739C12.85 10.492 11.29 11.805 9.423 11.805C7.579 11.805 6.035 10.524 5.628 8.805H3.913C3.416 8.804 3.012 8.401 3.012 7.904C3.012 7.407 3.416 7.004 3.913 7.004H5.628C6.034 5.284 7.579 4.004 9.423 4.004ZM9.423 5.805C8.263 5.805 7.323 6.745 7.323 7.904C7.323 9.064 8.263 10.004 9.423 10.004C10.583 10.004 11.522 9.064 11.522 7.904C11.522 6.744 10.583 5.805 9.423 5.805Z",fill:"currentColor"},null,-1)])])}const h1t=it({name:"kimi-view-switch",render:f1t}),p1t={width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function m1t(e,t){return b(),I("svg",p1t,[...t[0]||(t[0]=[A("path",{d:"M11.9996 7C11.5026 7 11.0996 7.36985 11.0996 7.82609V14.1739C11.0996 14.6301 11.5026 15 11.9996 15C12.4967 15 12.8996 14.6301 12.8996 14.1739V7.82609C12.8996 7.36985 12.4967 7 11.9996 7Z",fill:"currentColor"},null,-1),A("path",{d:"M12.8996 17.1006C12.8996 17.5974 12.4968 18.001 11.9992 18.001C11.5024 18.001 11.0996 17.5974 11.0996 17.1006C11.0996 16.6038 11.5024 16.2002 11.9992 16.2002C12.4968 16.2002 12.8996 16.6038 12.8996 17.1006Z",fill:"currentColor"},null,-1),A("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M14.5108 3.5501C13.3946 1.61676 10.6041 1.61676 9.48786 3.5501L1.69363 17.0501C0.577423 18.9834 1.97269 21.4001 4.20511 21.4001H19.7936C22.026 21.4001 23.4212 18.9834 22.305 17.0501L14.5108 3.5501ZM11.0467 4.4501C11.4701 3.71676 12.5286 3.71676 12.952 4.4501L20.7462 17.9501C21.1696 18.6834 20.6403 19.6001 19.7936 19.6001H4.20511C3.35833 19.6001 2.82909 18.6834 3.25248 17.9501L11.0467 4.4501Z",fill:"currentColor"},null,-1)])])}const g1t=it({name:"kimi-warning",render:m1t}),v1t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function y1t(e,t){return b(),I("svg",v1t,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M7.904 17.563a1.2 1.2 0 0 0 2.228.308l2.09-3.093l4.907 4.907a1.067 1.067 0 0 0 1.509 0l1.047-1.047a1.067 1.067 0 0 0 0-1.509l-4.907-4.907l3.113-2.09a1.2 1.2 0 0 0-.309-2.228L4 4z"},null,-1)])])}const b1t=it({name:"tabler-pointer",render:y1t}),k1t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function w1t(e,t){return b(),I("svg",k1t,[...t[0]||(t[0]=[A("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[A("path",{d:"M9 11a3 3 0 1 0 6 0a3 3 0 0 0-6 0"}),A("path",{d:"M17.657 16.657L13.414 20.9a2 2 0 0 1-2.827 0l-4.244-4.243a8 8 0 1 1 11.314 0"})],-1)])])}const C1t=it({name:"tabler-map-pin",render:w1t}),A1t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function x1t(e,t){return b(),I("svg",A1t,[...t[0]||(t[0]=[A("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[A("path",{d:"M5 7h1a2 2 0 0 0 2-2a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1a2 2 0 0 0 2 2h1a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2"}),A("path",{d:"M9 13a3 3 0 1 0 6 0a3 3 0 0 0-6 0"})],-1)])])}const S1t=it({name:"tabler-camera",render:x1t}),_1t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function I1t(e,t){return b(),I("svg",_1t,[...t[0]||(t[0]=[A("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[A("path",{d:"M9 5a3 3 0 0 1 3-3a3 3 0 0 1 3 3v5a3 3 0 0 1-3 3a3 3 0 0 1-3-3z"}),A("path",{d:"M5 10a7 7 0 0 0 14 0M8 21h8m-4-4v4"})],-1)])])}const T1t=it({name:"tabler-microphone",render:I1t}),M1t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function E1t(e,t){return b(),I("svg",M1t,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 5a2 2 0 1 1 4 0a7 7 0 0 1 4 6v3a4 4 0 0 0 2 3H4a4 4 0 0 0 2-3v-3a7 7 0 0 1 4-6M9 17v1a3 3 0 0 0 6 0v-1"},null,-1)])])}const L1t=it({name:"tabler-bell",render:E1t}),R1t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function P1t(e,t){return b(),I("svg",R1t,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2zm6 4l6 6m0-6l-6 6"},null,-1)])])}const $1t=it({name:"tabler-square-x",render:P1t}),O1t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function F1t(e,t){return b(),I("svg",O1t,[...t[0]||(t[0]=[A("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[A("path",{d:"M7 9.667A2.667 2.667 0 0 1 9.667 7h8.666A2.667 2.667 0 0 1 21 9.667v8.666A2.667 2.667 0 0 1 18.333 21H9.667A2.667 2.667 0 0 1 7 18.333z"}),A("path",{d:"M4.012 16.737A2 2 0 0 1 3 15V5c0-1.1.9-2 2-2h10c.75 0 1.158.385 1.5 1m-5 7.5l4.9 5m.1-5l-5.1 5"})],-1)])])}const D1t=it({name:"tabler-copy-x",render:F1t}),N1t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function B1t(e,t){return b(),I("svg",N1t,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 6a2 2 0 1 0 4 0a2 2 0 1 0-4 0M4 6h8m4 0h4M6 12a2 2 0 1 0 4 0a2 2 0 1 0-4 0m-2 0h2m4 0h10m-5 6a2 2 0 1 0 4 0a2 2 0 1 0-4 0M4 18h11m4 0h1"},null,-1)])])}const z1t=it({name:"tabler-adjustments-horizontal",render:B1t}),H1t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function j1t(e,t){return b(),I("svg",H1t,[...t[0]||(t[0]=[A("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[A("path",{d:"m15 14l4-4l-4-4"}),A("path",{d:"M19 10H8a4 4 0 1 0 0 8h1"})],-1)])])}const W1t=it({name:"tabler-arrow-forward-up",render:j1t}),q1t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function V1t(e,t){return b(),I("svg",q1t,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M17 7L7 17M8 7h9v9"},null,-1)])])}const U1t=it({name:"tabler-arrow-up-right",render:V1t}),K1t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Z1t(e,t){return b(),I("svg",K1t,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 21a9 9 0 0 0 2.32-.302a9 9 0 0 0 1.74-16.733A9 9 0 1 0 12 21m0-18v17m0-8h9m-9-3h8m-8-3h6m-6 12h6m-6-3h8"},null,-1)])])}const G1t=it({name:"tabler-blur",render:Z1t}),Q1t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Y1t(e,t){return b(),I("svg",Q1t,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m15 6l-6 6l6 6"},null,-1)])])}const J1t=it({name:"tabler-chevron-left",render:Y1t}),X1t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function ept(e,t){return b(),I("svg",X1t,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0"},null,-1)])])}const tpt=it({name:"tabler-circle",render:ept}),npt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function ipt(e,t){return b(),I("svg",npt,[...t[0]||(t[0]=[A("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[A("path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0"}),A("path",{d:"m9 12l2 2l4-4"})],-1)])])}const opt=it({name:"tabler-circle-check",render:ipt}),spt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function rpt(e,t){return b(),I("svg",spt,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8.56 3.69a9 9 0 0 0-2.92 1.95M3.69 8.56A9 9 0 0 0 3 12m.69 3.44a9 9 0 0 0 1.95 2.92m2.92 1.95A9 9 0 0 0 12 21m3.44-.69a9 9 0 0 0 2.92-1.95m1.95-2.92A9 9 0 0 0 21 12m-.69-3.44a9 9 0 0 0-1.95-2.92m-2.92-1.95A9 9 0 0 0 12 3"},null,-1)])])}const apt=it({name:"tabler-circle-dashed",render:rpt}),lpt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function cpt(e,t){return b(),I("svg",lpt,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 5a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1zm4 15h10m-8-4v4m6-4v4"},null,-1)])])}const upt=it({name:"tabler-device-desktop",render:cpt}),dpt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function fpt(e,t){return b(),I("svg",dpt,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2zm5-1h2m-1 13v.01"},null,-1)])])}const hpt=it({name:"tabler-device-mobile",render:fpt}),ppt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function mpt(e,t){return b(),I("svg",ppt,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 8a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2zm17 3v2M7 12h-.01"},null,-1)])])}const gpt=it({name:"tabler-device-mobile-rotated",render:mpt}),vpt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function ypt(e,t){return b(),I("svg",vpt,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 20H8.5l-4.21-4.3a1 1 0 0 1 0-1.41l10-10a1 1 0 0 1 1.41 0l5 5a1 1 0 0 1 0 1.41L11.5 20m6.5-6.7L11.7 7"},null,-1)])])}const bpt=it({name:"tabler-eraser",render:ypt}),kpt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function wpt(e,t){return b(),I("svg",kpt,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 3h6m-5 6h4m-4-6v6L6 20a.7.7 0 0 0 .5 1h11a.7.7 0 0 0 .5-1L14 9V3"},null,-1)])])}const Cpt=it({name:"tabler-flask",render:wpt}),Apt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function xpt(e,t){return b(),I("svg",Apt,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 5a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0M4 12a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0M4 19a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0"},null,-1)])])}const Spt=it({name:"tabler-grid-dots",render:xpt}),_pt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Ipt(e,t){return b(),I("svg",_pt,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 19h4L17.5 8.5a2.828 2.828 0 1 0-4-4L3 15zm9.5-13.5l4 4m-12 4l4 4M21 15v4h-8l4-4z"},null,-1)])])}const Tpt=it({name:"tabler-highlight",render:Ipt}),Mpt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Ept(e,t){return b(),I("svg",Mpt,[...t[0]||(t[0]=[A("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[A("path",{d:"M12 8v4l2 2"}),A("path",{d:"M3.05 11a9 9 0 1 1 .5 4m-.5 5v-5h5"})],-1)])])}const Lpt=it({name:"tabler-history",render:Ept}),Rpt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Ppt(e,t){return b(),I("svg",Rpt,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 18a2 2 0 1 0 4 0a2 2 0 1 0-4 0M16 6a2 2 0 1 0 4 0a2 2 0 1 0-4 0M7.5 16.5l9-9"},null,-1)])])}const $pt=it({name:"tabler-line",render:Ppt}),Opt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Fpt(e,t){return b(),I("svg",Opt,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m15 7l-6.5 6.5a1.5 1.5 0 0 0 3 3L18 10a3 3 0 0 0-6-6l-6.5 6.5a4.5 4.5 0 0 0 9 9L21 13"},null,-1)])])}const Dpt=it({name:"tabler-paperclip",render:Fpt}),Npt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Bpt(e,t){return b(),I("svg",Npt,[...t[0]||(t[0]=[A("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[A("path",{d:"M11 19H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v4"}),A("path",{d:"M14 15a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-5a1 1 0 0 1-1-1z"})],-1)])])}const zpt=it({name:"tabler-picture-in-picture",render:Bpt}),Hpt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function jpt(e,t){return b(),I("svg",Hpt,[...t[0]||(t[0]=[A("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[A("path",{d:"M17 17h2a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h2m10-8V5a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v4"}),A("path",{d:"M7 15a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2z"})],-1)])])}const Wpt=it({name:"tabler-printer",render:jpt}),qpt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Vpt(e,t){return b(),I("svg",qpt,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"},null,-1)])])}const Upt=it({name:"tabler-square",render:Vpt}),Kpt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Zpt(e,t){return b(),I("svg",Kpt,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 6h16M4 18h5m-5-6h13a3 3 0 0 1 0 6h-4l2-2m0 4l-2-2"},null,-1)])])}const Gpt=it({name:"tabler-text-wrap",render:Zpt}),Qpt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Ypt(e,t){return b(),I("svg",Qpt,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 6h10M4 18h10M4 12h17l-3-3m0 6l3-3"},null,-1)])])}const Jpt=it({name:"tabler-text-wrap-disabled",render:Ypt}),Xpt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function e0t(e,t){return b(),I("svg",Xpt,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 20h3m7 0h7M6.9 15h6.9m-3.6-8.7L16 20M5 20l6-16h2l7 16"},null,-1)])])}const t0t=it({name:"tabler-typography",render:e0t}),n0t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function i0t(e,t){return b(),I("svg",n0t,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M11 6h9m-9 6h9m-8 6h8M4 16a2 2 0 1 1 4 0c0 .591-.5 1-1 1.5L4 20h4M6 10V4L4 6"},null,-1)])])}const o0t=it({name:"tabler-list-numbers",render:i0t}),s0t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function r0t(e,t){return b(),I("svg",s0t,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 11a3 3 0 1 0 6 0a3 3 0 0 0-6 0m8 5l-2.5-2.5M3 7V5a2 2 0 0 1 2-2h2M3 17v2a2 2 0 0 0 2 2h2M17 3h2a2 2 0 0 1 2 2v2m-4 14h2a2 2 0 0 0 2-2v-2"},null,-1)])])}const a0t=it({name:"tabler-zoom-scan",render:r0t}),l0t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function c0t(e,t){return b(),I("svg",l0t,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 8V6a2 2 0 0 1 2-2h2M4 16v2a2 2 0 0 0 2 2h2m8-16h2a2 2 0 0 1 2 2v2m-4 12h2a2 2 0 0 0 2-2v-2M9 12h6m-3-3v6"},null,-1)])])}const u0t=it({name:"tabler-crosshair",render:c0t}),d0t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function f0t(e,t){return b(),I("svg",d0t,[...t[0]||(t[0]=[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M20 11A8.1 8.1 0 0 0 4.5 9M4 5v4h4m-4 4a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4"},null,-1)])])}const h0t=it({name:"tabler-refresh",render:f0t}),p0t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function m0t(e,t){return b(),I("svg",p0t,[...t[0]||(t[0]=[A("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[A("path",{d:"M5 3h1a1 1 0 0 1 1 1v2h3V4a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2h3V4a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v4.394a2 2 0 0 1-.336 1.11l-1.328 1.992a2 2 0 0 0-.336 1.11V20a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-7.394a2 2 0 0 0-.336-1.11L4.336 9.504A2 2 0 0 1 4 8.394V4a1 1 0 0 1 1-1"}),A("path",{d:"M10 21v-5a2 2 0 1 1 4 0v5"})],-1)])])}const g0t=it({name:"tabler-tower",render:m0t}),v0t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function y0t(e,t){return b(),I("svg",v0t,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"M4 18v-3.7a1.5 1.5 0 0 0-1.5-1.5H2v-1.6h.5A1.5 1.5 0 0 0 4 9.7V6a3 3 0 0 1 3-3h1v2H7a1 1 0 0 0-1 1v4.1A2 2 0 0 1 4.626 12A2 2 0 0 1 6 13.9V18a1 1 0 0 0 1 1h1v2H7a3 3 0 0 1-3-3m16-3.7V18a3 3 0 0 1-3 3h-1v-2h1a1 1 0 0 0 1-1v-4.1a2 2 0 0 1 1.374-1.9A2 2 0 0 1 18 10.1V6a1 1 0 0 0-1-1h-1V3h1a3 3 0 0 1 3 3v3.7a1.5 1.5 0 0 0 1.5 1.5h.5v1.6h-.5a1.5 1.5 0 0 0-1.5 1.5"},null,-1)])])}const b0t=it({name:"ri-braces-line",render:y0t}),k0t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function w0t(e,t){return b(),I("svg",k0t,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"M9 3V1H7v2H3a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1h-4V1h-2v2zm-5 7h16v9H4zm0-5h3v1h2V5h6v1h2V5h3v3H4zm5.879 5.964L12 13.086l2.121-2.122l1.415 1.415l-2.122 2.121l2.121 2.121l-1.414 1.414L12 15.915l-2.121 2.12l-1.415-1.414l2.122-2.12l-2.122-2.122z"},null,-1)])])}const C0t=it({name:"ri-calendar-close-line",render:w0t}),A0t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function x0t(e,t){return b(),I("svg",A0t,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"M7 3V1h2v2h6V1h2v2h4a1 1 0 0 1 1 1v5h-2V5h-3v2h-2V5H9v2H7V5H4v14h6v2H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm10 9a4 4 0 1 0 0 8a4 4 0 0 0 0-8m-6 4a6 6 0 1 1 12 0a6 6 0 0 1-12 0m5-3v3.414l2.293 2.293l1.414-1.414L18 15.586V13z"},null,-1)])])}const S0t=it({name:"ri-calendar-schedule-line",render:x0t}),_0t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function I0t(e,t){return b(),I("svg",_0t,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"M9 1v2h6V1h2v2h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1zm11 10H4v8h16zM8 14v2H6v-2zm10 0v2h-8v-2zM7 5H4v4h16V5h-3v2h-2V5H9v2H7z"},null,-1)])])}const T0t=it({name:"ri-calendar-todo-line",render:I0t}),M0t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function E0t(e,t){return b(),I("svg",M0t,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"m23 12l-7.071 7.071l-1.414-1.414L20.172 12l-5.657-5.657l1.414-1.414zM3.828 12l5.657 5.657l-1.414 1.414L1 12l7.071-7.071l1.414 1.414z"},null,-1)])])}const L0t=it({name:"ri-code-line",render:E0t}),R0t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function P0t(e,t){return b(),I("svg",R0t,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10s-4.477 10-10 10m0-2a8 8 0 1 0 0-16a8 8 0 0 0 0 16m-4-7h8a4 4 0 0 1-8 0m0-2a1.5 1.5 0 1 1 0-3a1.5 1.5 0 0 1 0 3m8 0a1.5 1.5 0 1 1 0-3a1.5 1.5 0 0 1 0 3"},null,-1)])])}const $0t=it({name:"ri-emotion-line",render:P0t}),O0t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function F0t(e,t){return b(),I("svg",O0t,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"M10 6v2H5v11h11v-5h2v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1zm11-3v8h-2V6.413l-7.793 7.794l-1.414-1.414L17.585 5H13V3z"},null,-1)])])}const D0t=it({name:"ri-external-link-line",render:F0t}),N0t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function B0t(e,t){return b(),I("svg",N0t,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"M12 3c5.392 0 9.878 3.88 10.819 9c-.94 5.12-5.427 9-10.819 9s-9.878-3.88-10.818-9C2.122 6.88 6.608 3 12 3m0 16a9.005 9.005 0 0 0 8.778-7a9.005 9.005 0 0 0-17.555 0A9.005 9.005 0 0 0 12 19m0-2.5a4.5 4.5 0 1 1 0-9a4.5 4.5 0 0 1 0 9m0-2a2.5 2.5 0 1 0 0-5a2.5 2.5 0 0 0 0 5"},null,-1)])])}const z0t=it({name:"ri-eye-line",render:B0t}),H0t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function j0t(e,t){return b(),I("svg",H0t,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"M17.883 19.297A10.95 10.95 0 0 1 12 21c-5.392 0-9.878-3.88-10.818-9A11 11 0 0 1 4.52 5.935L1.394 2.808l1.414-1.414l19.799 19.798l-1.414 1.415zM5.936 7.35A8.97 8.97 0 0 0 3.223 12a9.005 9.005 0 0 0 13.201 5.838l-2.028-2.028A4.5 4.5 0 0 1 8.19 9.604zm6.978 6.978l-3.242-3.241a2.5 2.5 0 0 0 3.241 3.241m7.893 2.265l-1.431-1.431A8.9 8.9 0 0 0 20.778 12A9.005 9.005 0 0 0 9.552 5.338L7.974 3.76C9.221 3.27 10.58 3 12 3c5.392 0 9.878 3.88 10.819 9a10.95 10.95 0 0 1-2.012 4.593m-9.084-9.084Q11.86 7.5 12 7.5a4.5 4.5 0 0 1 4.492 4.778z"},null,-1)])])}const W0t=it({name:"ri-eye-off-line",render:j0t}),q0t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function V0t(e,t){return b(),I("svg",q0t,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"M15 4H5v16h14V8h-4zM3 2.992C3 2.444 3.447 2 3.999 2H16l5 5v13.993A1 1 0 0 1 20.007 22H3.993A1 1 0 0 1 3 21.008zM11 11V8h2v3h3v2h-3v3h-2v-3H8v-2z"},null,-1)])])}const U0t=it({name:"ri-file-add-line",render:V0t}),K0t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Z0t(e,t){return b(),I("svg",K0t,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"M13 9h8L11 24v-9H4l9-15zm-2 2V7.22L7.532 13H13v4.394L17.263 11z"},null,-1)])])}const G0t=it({name:"ri-flashlight-line",render:Z0t}),Q0t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Y0t(e,t){return b(),I("svg",Q0t,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"M14 4.438A2.437 2.437 0 0 0 16.438 2h1.125A2.437 2.437 0 0 0 20 4.438v1.125A2.437 2.437 0 0 0 17.563 8h-1.125A2.437 2.437 0 0 0 14 5.563zM1 11a6 6 0 0 0 6-6h2a6 6 0 0 0 6 6v2a6 6 0 0 0-6 6H7a6 6 0 0 0-6-6zm3.876 1A8.04 8.04 0 0 1 8 15.124A8.04 8.04 0 0 1 11.124 12A8.04 8.04 0 0 1 8 8.876A8.04 8.04 0 0 1 4.876 12m12.374 2A3.25 3.25 0 0 1 14 17.25v1.5A3.25 3.25 0 0 1 17.25 22h1.5A3.25 3.25 0 0 1 22 18.75v-1.5A3.25 3.25 0 0 1 18.75 14z"},null,-1)])])}const J0t=it({name:"ri-sparkling-line",render:Y0t}),X0t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function emt(e,t){return b(),I("svg",X0t,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"M12.414 5H21a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7.414z"},null,-1)])])}const tmt=it({name:"ri-folder-fill",render:emt}),nmt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function imt(e,t){return b(),I("svg",nmt,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"M6 5a1 1 0 1 0 0 2a1 1 0 0 0 0-2M3 6a3 3 0 1 1 4 2.83V9a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-.17a3.001 3.001 0 1 1 2 0V9a4 4 0 0 1-4 4h-2v2.17a3.001 3.001 0 1 1-2 0V13H9a4 4 0 0 1-4-4v-.17A3 3 0 0 1 3 6m15-1a1 1 0 1 0 0 2a1 1 0 0 0 0-2m-6 12a1 1 0 1 0 0 2a1 1 0 0 0 0-2"},null,-1)])])}const omt=it({name:"ri-git-fork-line",render:imt}),smt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function rmt(e,t){return b(),I("svg",smt,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"M15 5h2a2 2 0 0 1 2 2v8.17a3.001 3.001 0 1 1-2 0V7h-2v3l-4.5-4L15 2zM5 8.83a3.001 3.001 0 1 1 2 0v6.34a3.001 3.001 0 1 1-2 0zM6 7a1 1 0 1 0 0-2a1 1 0 0 0 0 2m0 12a1 1 0 1 0 0-2a1 1 0 0 0 0 2m12 0a1 1 0 1 0 0-2a1 1 0 0 0 0 2"},null,-1)])])}const amt=it({name:"ri-git-pull-request-line",render:rmt}),lmt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function cmt(e,t){return b(),I("svg",lmt,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"M10 2a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H8v2h5V9a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-1H8v6h5v-1a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-1H7a1 1 0 0 1-1-1V8H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1zm9 16h-4v2h4zm0-8h-4v2h4zM9 4H5v2h4z"},null,-1)])])}const umt=it({name:"ri-node-tree",render:cmt}),dmt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function fmt(e,t){return b(),I("svg",dmt,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"m13.827 1.69l8.486 8.485l-1.415 1.414l-.707-.707l-4.242 4.243l-.707 3.536l-1.415 1.414l-4.242-4.243l-4.95 4.95l-1.414-1.414l4.95-4.95l-4.243-4.243l1.414-1.414l3.536-.707l4.242-4.243l-.707-.707zm.707 3.536l-4.67 4.67l-2.822.565l6.5 6.5l.564-2.822l4.671-4.67z"},null,-1)])])}const hmt=it({name:"ri-pushpin-line",render:fmt}),pmt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function mmt(e,t){return b(),I("svg",pmt,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"M20 4v12h3l-4 5l-4-5h3V4zm-8 14v2H3v-2zm2-7v2H3v-2zm0-7v2H3V4z"},null,-1)])])}const gmt=it({name:"ri-sort-desc",render:mmt}),vmt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function ymt(e,t){return b(),I("svg",vmt,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"m12 18.26l-7.053 3.948l1.575-7.928L.588 8.792l8.027-.952L12 .5l3.385 7.34l8.027.952l-5.934 5.488l1.575 7.928z"},null,-1)])])}const bmt=it({name:"ri-star-fill",render:ymt}),kmt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function wmt(e,t){return b(),I("svg",kmt,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"m12 18.26l-7.053 3.948l1.575-7.928L.588 8.792l8.027-.952L12 .5l3.385 7.34l8.027.952l-5.934 5.488l1.575 7.928zm0-2.292l4.247 2.377l-.948-4.773l3.573-3.305l-4.833-.573l-2.038-4.419l-2.039 4.42l-4.833.572l3.573 3.305l-.948 4.773z"},null,-1)])])}const Cmt=it({name:"ri-star-line",render:wmt}),Amt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function xmt(e,t){return b(),I("svg",Amt,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"M5.33 3.272a3.5 3.5 0 0 1 4.254 4.962l10.709 10.71l-1.414 1.414l-10.71-10.71a3.502 3.502 0 0 1-4.962-4.255L5.444 7.63a1.5 1.5 0 0 0 2.121-2.121zm10.367 1.883l3.182-1.768l1.414 1.415l-1.768 3.182l-1.768.353l-2.12 2.121l-1.415-1.414l2.121-2.121zm-6.718 8.132l1.415 1.414l-5.304 5.303a1 1 0 0 1-1.492-1.327l.078-.087z"},null,-1)])])}const Smt=it({name:"ri-tools-line",render:xmt}),_mt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Imt(e,t){return b(),I("svg",_mt,[...t[0]||(t[0]=[A("path",{fill:"currentColor",d:"m20.97 17.172l-1.414 1.414l-3.535-3.535l-.073.074l-.707 3.536l-1.415 1.414l-4.242-4.243l-4.95 4.95l-1.414-1.414l4.95-4.95l-4.243-4.243L5.34 8.761l3.536-.707l.073-.074l-3.536-3.536L6.828 3.03zM10.365 9.394l-.502.502l-2.822.565l6.5 6.5l.564-2.822l.502-.502zm8.411.074l-1.34 1.34l1.414 1.415l1.34-1.34l.707.707l1.415-1.415l-8.486-8.485l-1.414 1.414l.707.707l-1.34 1.34l1.414 1.415l1.34-1.34z"},null,-1)])])}const Tmt=it({name:"ri-unpin-line",render:Imt}),Mmt={viewBox:"0 0 16 16",width:"1.2em",height:"1.2em"};function Emt(e,t){return b(),I("svg",Mmt,[...t[0]||(t[0]=[A("path",{fill:"#0288d1",d:"M2 2v12h12V2zm4 6h3v1H8v4H7V9H6zm5 0h2v1h-2v1h1a1.003 1.003 0 0 1 1 1v1a1.003 1.003 0 0 1-1 1h-2v-1h2v-1h-1a1.003 1.003 0 0 1-1-1V9a1.003 1.003 0 0 1 1-1"},null,-1)])])}const Lmt=it({name:"material-icon-theme-typescript",render:Emt}),Rmt={viewBox:"0 0 16 16",width:"1.2em",height:"1.2em"};function Pmt(e,t){return b(),I("svg",Rmt,[...t[0]||(t[0]=[A("path",{fill:"#ffca28",d:"M2 2v12h12V2zm6 6h1v4a1.003 1.003 0 0 1-1 1H7a1.003 1.003 0 0 1-1-1v-1h1v1h1zm3 0h2v1h-2v1h1a1.003 1.003 0 0 1 1 1v1a1.003 1.003 0 0 1-1 1h-2v-1h2v-1h-1a1.003 1.003 0 0 1-1-1V9a1.003 1.003 0 0 1 1-1"},null,-1)])])}const $mt=it({name:"material-icon-theme-javascript",render:Pmt}),Omt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Fmt(e,t){return b(),I("svg",Omt,[...t[0]||(t[0]=[A("path",{fill:"#41b883",d:"M1.791 3.851L12 21.471L22.209 3.936V3.85H18.24l-6.18 10.616L5.906 3.851z"},null,-1),A("path",{fill:"#35495e",d:"m5.907 3.851l6.152 10.617L18.24 3.851h-3.723L12.084 8.03L9.66 3.85z"},null,-1)])])}const Dmt=it({name:"material-icon-theme-vue",render:Fmt}),Nmt={viewBox:"0 0 300 300",width:"1.2em",height:"1.2em"};function Bmt(e,t){return b(),I("svg",Nmt,[...t[0]||(t[0]=[A("path",{fill:"#ff5722",d:"M175.94 24.328c-13.037.252-26.009 3.872-37.471 11.174L79.912 72.818a67.13 67.13 0 0 0-30.355 44.906a70.8 70.8 0 0 0 6.959 45.445a67.2 67.2 0 0 0-10.035 25.102a71.54 71.54 0 0 0 12.236 54.156c23.351 33.41 69.468 43.311 102.81 22.07l58.559-37.158a67.36 67.36 0 0 0 30.355-44.906a70.77 70.77 0 0 0-6.982-45.422a67.65 67.65 0 0 0 10.059-25.102a71.63 71.63 0 0 0-12.236-54.156v-.18c-15.324-21.925-40.453-33.727-65.342-33.246zm5.137 28.68a46.5 46.5 0 0 1 36.09 19.969a42.98 42.98 0 0 1 7.365 32.557a45 45 0 0 1-1.393 5.455l-1.123 3.37l-2.986-2.247a75.9 75.9 0 0 0-22.902-11.45l-2.244-.651l.201-2.246a13.16 13.16 0 0 0-2.379-8.711a13.99 13.99 0 0 0-14.953-5.412a12.8 12.8 0 0 0-3.594 1.572l-58.578 37.25a12.24 12.24 0 0 0-5.502 8.15a13.1 13.1 0 0 0 2.246 9.834a14.03 14.03 0 0 0 14.93 5.569a13.5 13.5 0 0 0 3.594-1.573l22.453-14.234a41.8 41.8 0 0 1 11.898-5.232a46.48 46.48 0 0 1 49.914 18.502a43.02 43.02 0 0 1 7.363 32.557a40.42 40.42 0 0 1-18.254 27.078l-58.58 37.316a43 43 0 0 1-11.898 5.23A46.545 46.545 0 0 1 82.81 227.14a42.98 42.98 0 0 1-7.341-32.557a38 38 0 0 1 1.39-5.41l1.102-3.37l3.008 2.246a75.9 75.9 0 0 0 22.836 11.361l2.244.65l-.201 2.247a13.25 13.25 0 0 0 2.447 8.644a14.03 14.03 0 0 0 15.043 5.569a13.1 13.1 0 0 0 3.592-1.573l58.467-37.316a12.17 12.17 0 0 0 5.502-8.173a12.96 12.96 0 0 0-2.246-9.811a14.03 14.03 0 0 0-15.043-5.568a12.8 12.8 0 0 0-3.592 1.57l-22.453 14.258a42.9 42.9 0 0 1-11.877 5.209a46.52 46.52 0 0 1-49.846-18.5a43.02 43.02 0 0 1-7.297-32.557A40.42 40.42 0 0 1 96.798 96.98l58.646-37.316a42.8 42.8 0 0 1 11.811-5.21a46.5 46.5 0 0 1 13.822-1.444z"},null,-1)])])}const zmt=it({name:"material-icon-theme-svelte",render:Bmt}),Hmt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function jmt(e,t){return b(),I("svg",Hmt,[...t[0]||(t[0]=[A("path",{fill:"#7c4dff",d:"M12.106 25.849c-1.262-1.156-1.63-3.586-1.105-5.346a5.18 5.18 0 0 0 3.484 1.66a9.68 9.68 0 0 0 5.882-.734c.215-.106.413-.247.648-.39a3.5 3.5 0 0 1 .16 1.555a4.26 4.26 0 0 1-1.798 3.021c-.404.3-.832.569-1.25.852a2.613 2.613 0 0 0-1.15 3.372l.048.161a3.4 3.4 0 0 1-1.5-1.285a3.6 3.6 0 0 1-.578-1.962a9 9 0 0 0-.05-1.037c-.114-.831-.504-1.204-1.238-1.225a1.45 1.45 0 0 0-1.507 1.18c-.012.056-.028.112-.046.178M4.901 20a17.75 17.75 0 0 1 7.4-2l2.913-8.38a.765.765 0 0 1 1.527 0L19.7 18a14.24 14.24 0 0 1 7.399 2S20.704 2.877 20.692 2.842C20.51 2.33 20.202 2 19.787 2h-7.619c-.415 0-.71.33-.904.842z"},null,-1)])])}const Wmt=it({name:"material-icon-theme-astro",render:jmt}),qmt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Vmt(e,t){return b(),I("svg",qmt,[...t[0]||(t[0]=[A("path",{fill:"#0288d1",d:"M9.86 2A2.86 2.86 0 0 0 7 4.86v1.68h4.29c.39 0 .71.57.71.96H4.86A2.86 2.86 0 0 0 2 10.36v3.781a2.86 2.86 0 0 0 2.86 2.86h1.18v-2.68a2.85 2.85 0 0 1 2.85-2.86h5.25c1.58 0 2.86-1.271 2.86-2.851V4.86A2.86 2.86 0 0 0 14.14 2zm-.72 1.61c.4 0 .72.12.72.71s-.32.891-.72.891c-.39 0-.71-.3-.71-.89s.32-.711.71-.711"},null,-1),A("path",{fill:"#fdd835",d:"M17.959 7v2.68a2.85 2.85 0 0 1-2.85 2.859H9.86A2.85 2.85 0 0 0 7 15.389v3.75a2.86 2.86 0 0 0 2.86 2.86h4.28A2.86 2.86 0 0 0 17 19.14v-1.68h-4.291c-.39 0-.709-.57-.709-.96h7.14A2.86 2.86 0 0 0 22 13.64V9.86A2.86 2.86 0 0 0 19.14 7zM8.32 11.513l-.004.004l.038-.004zm6.54 7.276c.39 0 .71.3.71.89a.71.71 0 0 1-.71.71c-.4 0-.72-.12-.72-.71s.32-.89.72-.89"},null,-1)])])}const Umt=it({name:"material-icon-theme-python",render:Vmt}),Kmt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Zmt(e,t){return b(),I("svg",Kmt,[...t[0]||(t[0]=[A("path",{fill:"#f44336",d:"M18.041 3.177c2.24.382 2.879 1.919 2.843 3.527V6.67l-1.013 13.266l-13.132.897h.008c-1.093-.044-3.518-.151-3.634-3.545l1.217-2.222l2.462 5.74l2.097-6.77l-.045.009l.018-.018l6.85 2.186L13.945 9.3l6.53-.409l-5.144-4.212l2.71-1.51v.009M3.113 17.252v.017zM6.916 6.874c2.63-2.622 6.033-4.168 7.34-2.844c1.297 1.306-.072 4.523-2.702 7.135c-2.666 2.613-6.015 4.248-7.322 2.933c-1.306-1.324.036-4.612 2.675-7.224z"},null,-1)])])}const Gmt=it({name:"material-icon-theme-ruby",render:Zmt}),Qmt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function Ymt(e,t){return b(),I("svg",Qmt,[...t[0]||(t[0]=[A("path",{fill:"#00acc1",d:"M2 12h4v2H2zm-2 4h6v2H0zm4 4h2v2H4zm16.954-5H14v3h3.239a4.42 4.42 0 0 1-3.531 2a2.65 2.65 0 0 1-2.053-.858a2.86 2.86 0 0 1-.628-2.28A4.515 4.515 0 0 1 15.292 13a2.73 2.73 0 0 1 1.749.584l2.962-1.185A5.6 5.6 0 0 0 15.292 10a7.526 7.526 0 0 0-7.243 6.5a5.614 5.614 0 0 0 5.659 6.5a7.526 7.526 0 0 0 7.243-6.5a6.4 6.4 0 0 0 .003-1.5"},null,-1),A("path",{fill:"#00acc1",d:"M26.292 10a7.526 7.526 0 0 0-7.243 6.5a5.614 5.614 0 0 0 5.659 6.5a7.526 7.526 0 0 0 7.243-6.5a5.614 5.614 0 0 0-5.659-6.5m2.681 6.137A4.515 4.515 0 0 1 24.708 20a2.65 2.65 0 0 1-2.053-.858a2.86 2.86 0 0 1-.628-2.28A4.515 4.515 0 0 1 26.292 13a2.65 2.65 0 0 1 2.053.858a2.86 2.86 0 0 1 .628 2.28Z"},null,-1)])])}const Jmt=it({name:"material-icon-theme-go",render:Ymt}),Xmt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function egt(e,t){return b(),I("svg",Xmt,[...t[0]||(t[0]=[A("path",{fill:"#ff7043",d:"m30 12l-4-2V6h-4l-2-4l-4 2l-4-2l-2 4H6v4l-4 2l2 4l-2 4l4 2v4h4l2 4l4-2l4 2l2-4h4v-4l4-2l-2-4ZM6 16a9.9 9.9 0 0 1 .842-4H10v8H6.842A9.9 9.9 0 0 1 6 16m10 10a9.98 9.98 0 0 1-7.978-4H16v-2h-2v-2h4c.819.819.297 2.308 1.179 3.37a1.89 1.89 0 0 0 1.46.63h3.34A9.98 9.98 0 0 1 16 26m-2-12v-2h4a1 1 0 0 1 0 2Zm11.158 6H24a2.006 2.006 0 0 1-2-2a2 2 0 0 0-2-2a3 3 0 0 0 3-3q0-.08-.004-.161A3.115 3.115 0 0 0 19.83 10H8.022a9.986 9.986 0 0 1 17.136 10"},null,-1)])])}const tgt=it({name:"material-icon-theme-rust",render:egt}),ngt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function igt(e,t){return b(),I("svg",ngt,[...t[0]||(t[0]=[A("path",{fill:"#f44336",d:"M4 26h24v2H4zM28 4H7a1 1 0 0 0-1 1v13a4 4 0 0 0 4 4h10a4 4 0 0 0 4-4v-4h4a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2m0 8h-4V6h4Z"},null,-1)])])}const ogt=it({name:"material-icon-theme-java",render:igt}),sgt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function rgt(e,t){return b(),I("svg",sgt,[...t[0]||(t[0]=[A("path",{fill:"#f44336",d:"M22 10h2v4h-2z"},null,-1),A("path",{fill:"#f44336",d:"M28 2H4a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2m-2 12a2 2 0 0 1-2 2h-2v4a4 4 0 0 1-4 4h-8a4 4 0 0 1-4-4V8h18a2 2 0 0 1 2 2Z"},null,-1)])])}const agt=it({name:"material-icon-theme-jar",render:rgt}),lgt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"},cgt=["id"],ugt=["fill"];function dgt(e,t){return b(),I("svg",lgt,[A("defs",null,[A("linearGradient",{id:e.idMap.SVGO9IkJb7f,x1:"1.725",x2:"22.185",y1:"22.67",y2:"1.982",gradientTransform:"translate(1.306 1.129)scale(.89324)",gradientUnits:"userSpaceOnUse"},[...t[0]||(t[0]=[A("stop",{offset:"0","stop-color":"#7c4dff"},null,-1),A("stop",{offset:".5","stop-color":"#d500f9"},null,-1),A("stop",{offset:"1","stop-color":"#ef5350"},null,-1)])],8,cgt)]),A("path",{fill:"url(#"+e.idMap.SVGO9IkJb7f+")",d:"M2.975 2.976v18.048h18.05v-.03l-4.478-4.511l-4.48-4.515l4.48-4.515l4.443-4.477z"},null,8,ugt)])}const fgt=it({name:"material-icon-theme-kotlin",render:dgt,setup(){return{idMap:{SVGO9IkJb7f:"uicons-"+Math.random().toString(36).substr(2,10)}}}}),hgt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function pgt(e,t){return b(),I("svg",hgt,[...t[0]||(t[0]=[A("path",{fill:"#f44336",d:"m6.457 9.894l12.523 5.163l-.456 1.211L6 11.105Zm7.02-3.091L26 11.966l-.457 1.21L13.02 8.015ZM6.465 18.885l12.524 5.163l-.457 1.21L6.01 20.097Zm7.007-3.086l12.524 5.163l-.456 1.21l-12.524-5.162Z"},null,-1),A("path",{fill:"#f44336",d:"M6 24.07V30l19.997-3.106V20.96zM6 5.11v5.99l20-3.11V2zm0 9.96v5.03l20-3.11v-5.03z"},null,-1)])])}const mgt=it({name:"material-icon-theme-scala",render:pgt}),ggt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function vgt(e,t){return b(),I("svg",ggt,[...t[0]||(t[0]=[A("path",{fill:"#ff6e40",d:"M17.087 19.721c-2.36 1.36-5.59 1.5-8.86.1a13.8 13.8 0 0 1-6.23-5.32c.67.55 1.46 1 2.3 1.4c3.37 1.57 6.73 1.46 9.1 0c-3.37-2.59-6.24-5.96-8.37-8.71c-.45-.45-.78-1.01-1.12-1.51c8.28 6.05 7.92 7.59 2.41-1.01c4.89 4.94 9.43 7.74 9.43 7.74c.16.09.25.16.36.22c.1-.25.19-.51.26-.78c.79-2.85-.11-6.12-2.08-8.81c4.55 2.75 7.25 7.91 6.12 12.24c-.03.11-.06.22-.05.39c2.24 2.83 1.64 5.78 1.35 5.22c-1.21-2.39-3.48-1.65-4.62-1.17"},null,-1)])])}const ygt=it({name:"material-icon-theme-swift",render:vgt}),bgt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function kgt(e,t){return b(),I("svg",bgt,[...t[0]||(t[0]=[A("path",{fill:"#0288d1",d:"M19.563 22A5.57 5.57 0 0 1 14 16.437v-2.873A5.57 5.57 0 0 1 19.563 8H24V2h-4.437A11.563 11.563 0 0 0 8 13.563v2.873A11.564 11.564 0 0 0 19.563 28H24v-6Z"},null,-1)])])}const wgt=it({name:"material-icon-theme-c",render:kgt}),Cgt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function Agt(e,t){return b(),I("svg",Cgt,[...t[0]||(t[0]=[A("path",{fill:"#0288d1",d:"M18.5 11a5.49 5.49 0 0 0-4.5 2.344V4H8v24h6V17a2 2 0 0 1 4 0v11h6V16.5a5.5 5.5 0 0 0-5.5-5.5"},null,-1)])])}const xgt=it({name:"material-icon-theme-h",render:Agt}),Sgt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function _gt(e,t){return b(),I("svg",Sgt,[...t[0]||(t[0]=[A("path",{fill:"#0288d1",d:"M28 14v-4h-2v4h-6v-4h-2v4h-4v2h4v4h2v-4h6v4h2v-4h4v-2z"},null,-1),A("path",{fill:"#0288d1",d:"M13.563 22A5.57 5.57 0 0 1 8 16.437v-2.873A5.57 5.57 0 0 1 13.563 8H18V2h-4.437A11.563 11.563 0 0 0 2 13.563v2.873A11.564 11.564 0 0 0 13.563 28H18v-6Z"},null,-1)])])}const Igt=it({name:"material-icon-theme-cpp",render:_gt}),Tgt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function Mgt(e,t){return b(),I("svg",Tgt,[...t[0]||(t[0]=[A("path",{fill:"#0288d1",d:"M30 14v-2h-2V8h-2v4h-2V8h-2v4h-2v2h2v2h-2v2h2v4h2v-4h2v4h2v-4h2v-2h-2v-2Zm-4 2h-2v-2h2Zm-12.437 6A5.57 5.57 0 0 1 8 16.437v-2.873A5.57 5.57 0 0 1 13.563 8H18V2h-4.437A11.563 11.563 0 0 0 2 13.563v2.873A11.564 11.564 0 0 0 13.563 28H18v-6Z"},null,-1)])])}const Egt=it({name:"material-icon-theme-csharp",render:Mgt}),Lgt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Rgt(e,t){return b(),I("svg",Lgt,[...t[0]||(t[0]=[A("path",{fill:"#1e88e5",d:"M12 18.08c-6.63 0-12-2.72-12-6.08s5.37-6.08 12-6.08S24 8.64 24 12s-5.37 6.08-12 6.08m-5.19-7.95c.54 0 .91.1 1.09.31c.18.2.22.56.13 1.03c-.1.53-.29.87-.58 1.09q-.42.33-1.29.33h-.87l.53-2.76zm-3.5 5.55h1.44l.34-1.75h1.23c.54 0 .98-.06 1.33-.17c.35-.12.67-.31.96-.58c.24-.22.43-.46.58-.73c.15-.26.26-.56.31-.88c.16-.78.05-1.39-.33-1.82c-.39-.44-.99-.65-1.82-.65H4.59zm7.25-8.33l-1.28 6.58h1.42l.74-3.77h1.14c.36 0 .6.06.71.18s.13.34.07.66l-.57 2.93h1.45l.59-3.07c.13-.62.03-1.07-.27-1.36c-.3-.27-.85-.4-1.65-.4h-1.27L12 7.35zM18 10.13c.55 0 .91.1 1.09.31c.18.2.22.56.13 1.03c-.1.53-.29.87-.57 1.09c-.29.22-.72.33-1.3.33h-.85l.5-2.76zm-3.5 5.55h1.44l.34-1.75h1.22c.55 0 1-.06 1.35-.17c.35-.12.65-.31.95-.58c.24-.22.44-.46.58-.73c.15-.26.26-.56.32-.88c.15-.78.04-1.39-.34-1.82c-.36-.44-.99-.65-1.82-.65h-2.75z"},null,-1)])])}const Pgt=it({name:"material-icon-theme-php",render:Rgt}),$gt={viewBox:"0 0 16 16",width:"1.2em",height:"1.2em"};function Ogt(e,t){return b(),I("svg",$gt,[...t[0]||(t[0]=[A("path",{fill:"#ff7043",d:"M2 2a1 1 0 0 0-1 1v10c0 .554.446 1 1 1h12c.554 0 1-.446 1-1V3a1 1 0 0 0-1-1zm0 3h12v8H2zm1 2l2 2l-2 2l1 1l3-3l-3-3zm5 3.5V12h5v-1.5z"},null,-1)])])}const Fgt=it({name:"material-icon-theme-console",render:Ogt}),Dgt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function Ngt(e,t){return b(),I("svg",Dgt,[...t[0]||(t[0]=[A("path",{fill:"#03a9f4",d:"M29.07 6H7.677A1.535 1.535 0 0 0 6.24 7.113l-4.2 17.774A.852.852 0 0 0 2.93 26h21.393a1.535 1.535 0 0 0 1.436-1.113L29.96 7.112A.852.852 0 0 0 29.07 6M8.626 23.797a1.4 1.4 0 0 1-1.814-.31l-.007-.009a1.075 1.075 0 0 1 .315-1.599l9.6-6.061l-6.102-5.852l-.01-.01a1.068 1.068 0 0 1 .084-1.625l.037-.03a1.38 1.38 0 0 1 1.8.07l7.233 6.957a1.1 1.1 0 0 1 .236.739a1.08 1.08 0 0 1-.412.79c-.074.04-.146.119-10.951 6.935ZM24 22.94A1.135 1.135 0 0 1 22.803 24h-5.634a1.061 1.061 0 1 1 .001-2.112h5.633A1.134 1.134 0 0 1 24 22.938Z"},null,-1)])])}const Bgt=it({name:"material-icon-theme-powershell",render:Ngt}),zgt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function Hgt(e,t){return b(),I("svg",zgt,[...t[0]||(t[0]=[A("path",{fill:"#90a4ae",d:"M24 18h-3v-4h3a6 6 0 1 0-6-6v3h-4V8a6 6 0 1 0-6 6h3v4H8a6 6 0 1 0 6 6v-3h4v3a6 6 0 1 0 6-6M21 8a3 3 0 1 1 3 3h-3ZM11 24a3 3 0 1 1-3-3h3Zm0-13H8a3 3 0 1 1 3-3Zm7 7h-4v-4h4Zm6 9a3.003 3.003 0 0 1-3-3v-3h3a3 3 0 0 1 0 6"},null,-1)])])}const jgt=it({name:"material-icon-theme-command",render:Hgt}),Wgt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function qgt(e,t){return b(),I("svg",Wgt,[...t[0]||(t[0]=[A("path",{fill:"#ffca28",d:"M16 24c-5.525 0-10-.9-10-2v4c0 1.1 4.475 2 10 2s10-.9 10-2v-4c0 1.1-4.475 2-10 2m0-8c-5.525 0-10-.9-10-2v4c0 1.1 4.475 2 10 2s10-.9 10-2v-4c0 1.1-4.475 2-10 2m0-12C10.477 4 6 4.895 6 6v4c0 1.1 4.475 2 10 2s10-.9 10-2V6c0-1.105-4.477-2-10-2"},null,-1)])])}const Vgt=it({name:"material-icon-theme-database",render:qgt}),Ugt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function Kgt(e,t){return b(),I("svg",Ugt,[...t[0]||(t[0]=[Eu('',14)])])}const Zgt=it({name:"material-icon-theme-graphql",render:Kgt}),Ggt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function Qgt(e,t){return b(),I("svg",Ggt,[...t[0]||(t[0]=[A("path",{fill:"#00bfa5",d:"m27.777 22.617l-.459-.946L18.43 3.26a2.25 2.25 0 0 0-1.914-1.256A2 2 0 0 0 16.379 2a2.23 2.23 0 0 0-1.891 1.042L4.348 19.056a2.2 2.2 0 0 0 .025 2.417l4.957 7.488A2.34 2.34 0 0 0 11.29 30a2.4 2.4 0 0 0 .655-.092l14.387-4.149a2.32 2.32 0 0 0 1.458-1.234a2.21 2.21 0 0 0-.013-1.908m-3.538.604l-11.268 3.25l4.075-19.033l7.568 15.671l-.376.098Z"},null,-1)])])}const Ygt=it({name:"material-icon-theme-prisma",render:Qgt}),Jgt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function Xgt(e,t){return b(),I("svg",Jgt,[...t[0]||(t[0]=[A("path",{fill:"#e65100",d:"m4 4l2 22l10 2l10-2l2-22Zm19.72 7H11.28l.29 3h11.86l-.802 9.335L15.99 25l-6.635-1.646L8.93 19h3.02l.19 2l3.86.77l3.84-.77l.29-4H8.84L8 8h16Z"},null,-1)])])}const e2t=it({name:"material-icon-theme-html",render:Xgt}),t2t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function n2t(e,t){return b(),I("svg",t2t,[...t[0]||(t[0]=[A("path",{fill:"#8bc34a",d:"M13 9h5.5L13 3.5zM6 2h8l6 6v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4c0-1.11.89-2 2-2m.12 13.5l3.74 3.74l1.42-1.41l-2.33-2.33l2.33-2.33l-1.42-1.41zm11.16 0l-3.74-3.74l-1.42 1.41l2.33 2.33l-2.33 2.33l1.42 1.41z"},null,-1)])])}const i2t=it({name:"material-icon-theme-xml",render:n2t}),o2t={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function s2t(e,t){return b(),I("svg",o2t,[...t[0]||(t[0]=[A("path",{fill:"#ffb300",d:"M29.168 14.03a2.7 2.7 0 0 0-1.968-.83a2.51 2.51 0 0 0-1.929.8h-4.443l3.078-3.078a2.835 2.835 0 0 0 2.857-2.842a2.6 2.6 0 0 0-.831-1.969a2.82 2.82 0 0 0-2.014-.788a2.67 2.67 0 0 0-1.968.788a2.36 2.36 0 0 0-.812 1.922L18 11.17V6.726a2.51 2.51 0 0 0 .8-1.929a2.7 2.7 0 0 0-.832-1.968a2.745 2.745 0 0 0-3.936 0a2.7 2.7 0 0 0-.832 1.968a2.51 2.51 0 0 0 .8 1.93v4.443l-3.138-3.138a2.36 2.36 0 0 0-.812-1.922a2.66 2.66 0 0 0-1.968-.788a2.83 2.83 0 0 0-2.014.788a2.6 2.6 0 0 0-.831 1.969a2.74 2.74 0 0 0 .831 2.013a2.8 2.8 0 0 0 2.026.829l3.078 3.078H6.729a2.51 2.51 0 0 0-1.929-.8a2.7 2.7 0 0 0-1.968.831a2.745 2.745 0 0 0 0 3.937a2.7 2.7 0 0 0 1.968.832a2.51 2.51 0 0 0 1.929-.8h4.443l-3.078 3.077a2.835 2.835 0 0 0-2.857 2.842a2.6 2.6 0 0 0 .831 1.969a2.82 2.82 0 0 0 2.014.788a2.67 2.67 0 0 0 1.968-.788a2.36 2.36 0 0 0 .812-1.922L14 20.827v4.444a2.51 2.51 0 0 0-.8 1.929a2.784 2.784 0 0 0 4.768 1.968A2.7 2.7 0 0 0 18.8 27.2a2.51 2.51 0 0 0-.8-1.929v-4.444l3.138 3.138a2.36 2.36 0 0 0 .812 1.922a2.66 2.66 0 0 0 1.968.788a2.83 2.83 0 0 0 2.014-.788a2.6 2.6 0 0 0 .831-1.969a2.74 2.74 0 0 0-.831-2.013a2.8 2.8 0 0 0-2.026-.829L20.828 18h4.443a2.51 2.51 0 0 0 1.93.8a2.784 2.784 0 0 0 1.967-4.769Z"},null,-1)])])}const r2t=it({name:"material-icon-theme-svg",render:s2t}),a2t={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function l2t(e,t){return b(),I("svg",a2t,[...t[0]||(t[0]=[A("path",{fill:"#7e57c2",d:"M20 18h-2v-2h-2v2c0 .193 0 .703 1.254 1.033A3.345 3.345 0 0 1 20 22h2v2h2v-2c0-.388-.562-.851-1.254-1.034C20.356 20.34 20 18.84 20 18m-3.254 2.966C14.356 20.34 14 18.84 14 18h-2v-2h-2v8h2v-2h4v2h2v-2c0-.388-.562-.851-1.254-1.034"},null,-1),A("path",{fill:"#7e57c2",d:"M24 4H4v20a4 4 0 0 0 4 4h16.16A3.84 3.84 0 0 0 28 24.16V8a4 4 0 0 0-4-4m2 14h-2v-2h-2v2c0 .193 0 .703 1.254 1.033A3.345 3.345 0 0 1 26 22v2a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2Z"},null,-1)])])}const c2t=it({name:"material-icon-theme-css",render:l2t}),u2t={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function d2t(e,t){return b(),I("svg",u2t,[...t[0]||(t[0]=[A("path",{fill:"#ec407a",d:"M27.837 5.673a4.33 4.33 0 0 0-2.293-2.701c-2.362-1.261-6.11-1.298-9.548-.092a26.3 26.3 0 0 0-8.76 4.966c-2.752 2.542-3.438 4.925-3.189 6.194c.523 2.668 3.274 4.539 5.485 6.042c.418.284.822.559 1.175.816c-1.429.76-4.261 2.444-5.088 4.248a3.88 3.88 0 0 0-.118 3.332A2.37 2.37 0 0 0 6.869 29.8a5.6 5.6 0 0 0 1.49.2a6.35 6.35 0 0 0 5.19-2.856a6.74 6.74 0 0 0 .864-5.382a7.3 7.3 0 0 1 2.044-.03a3.92 3.92 0 0 1 2.816 1.311a1.82 1.82 0 0 1 .423 1.262a1.55 1.55 0 0 1-.772 1.05c-.234.14-.586.355-.504.803c.036.194.198.633.894.512a2.93 2.93 0 0 0 2.145-2.651a4 4 0 0 0-1.197-2.904a5.94 5.94 0 0 0-4.396-1.626a10.6 10.6 0 0 0-2.672.304a20 20 0 0 0-2.203-1.846c-1.712-1.3-3.33-2.529-3.235-4.26c.125-2.263 2.468-4.532 6.964-6.744c4.016-1.976 7.254-2.037 8.944-1.438a2 2 0 0 1 1.204.883a2.77 2.77 0 0 1-.36 2.47a9.71 9.71 0 0 1-7.425 4.304a3.86 3.86 0 0 1-3.238-.757c-.278-.302-.593-.645-1.074-.383q-.565.31-.225 1.189a3.9 3.9 0 0 0 2.407 1.92a11.7 11.7 0 0 0 7.128-.671c3.527-1.35 6.681-5.202 5.756-8.787M11.895 24.475a4 4 0 0 1-.192.468a4.5 4.5 0 0 1-.753 1.081a2.83 2.83 0 0 1-2.533 1.107c-.056-.032-.078-.146-.085-.193a3.28 3.28 0 0 1 1.076-2.284a11.3 11.3 0 0 1 2.644-1.933a3.85 3.85 0 0 1-.157 1.754"},null,-1)])])}const f2t=it({name:"material-icon-theme-sass",render:d2t}),h2t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function p2t(e,t){return b(),I("svg",h2t,[...t[0]||(t[0]=[A("path",{fill:"#0277bd",d:"M8 3a2 2 0 0 0-2 2v4a2 2 0 0 1-2 2H3v2h1a2 2 0 0 1 2 2v4a2 2 0 0 0 2 2h2v-2H8v-5a2 2 0 0 0-2-2a2 2 0 0 0 2-2V5h2V3m6 0a2 2 0 0 1 2 2v4a2 2 0 0 0 2 2h1v2h-1a2 2 0 0 0-2 2v4a2 2 0 0 1-2 2h-2v-2h2v-5a2 2 0 0 1 2-2a2 2 0 0 1-2-2V5h-2V3z"},null,-1)])])}const m2t=it({name:"material-icon-theme-less",render:p2t}),g2t={viewBox:"0 -960 960 960",width:"1.2em",height:"1.2em"};function v2t(e,t){return b(),I("svg",g2t,[...t[0]||(t[0]=[A("path",{fill:"#f9a825",d:"M560-160v-80h120q17 0 28.5-11.5T720-280v-80q0-38 22-69t58-44v-14q-36-13-58-44t-22-69v-80q0-17-11.5-28.5T680-720H560v-80h120q50 0 85 35t35 85v80q0 17 11.5 28.5T840-560h40v160h-40q-17 0-28.5 11.5T800-360v80q0 50-35 85t-85 35zm-280 0q-50 0-85-35t-35-85v-80q0-17-11.5-28.5T120-400H80v-160h40q17 0 28.5-11.5T160-600v-80q0-50 35-85t85-35h120v80H280q-17 0-28.5 11.5T240-680v80q0 38-22 69t-58 44v14q36 13 58 44t22 69v80q0 17 11.5 28.5T280-240h120v80z"},null,-1)])])}const y2t=it({name:"material-icon-theme-json",render:v2t}),b2t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function k2t(e,t){return b(),I("svg",b2t,[...t[0]||(t[0]=[A("path",{fill:"#ff5252",d:"M13 9h5.5L13 3.5zM6 2h8l6 6v12c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2m12 16v-2H9v2zm-4-4v-2H6v2z"},null,-1)])])}const w2t=it({name:"material-icon-theme-yaml",render:k2t}),C2t={viewBox:"0 0 16 16",width:"1.2em",height:"1.2em"};function A2t(e,t){return b(),I("svg",C2t,[...t[0]||(t[0]=[A("path",{fill:"#cfd8dc",d:"M4 6V4h8v2H9v7H7V6z"},null,-1),A("path",{fill:"#ef5350",d:"M4 1v1H2v12h2v1H1V1zm8 0v1h2v12h-2v1h3V1z"},null,-1)])])}const x2t=it({name:"material-icon-theme-toml",render:A2t}),S2t={viewBox:"0 0 3473 3473",width:"1.2em",height:"1.2em"};function _2t(e,t){return b(),I("svg",S2t,[...t[0]||(t[0]=[Eu('',6)])])}const I2t=it({name:"material-icon-theme-editorconfig",render:_2t}),T2t={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function M2t(e,t){return b(),I("svg",T2t,[...t[0]||(t[0]=[A("path",{fill:"#42a5f5",d:"m14 10l-4 3.5L6 10H4v12h4v-6l2 2l2-2v6h4V10zm12 6v-6h-4v6h-4l6 8l6-8z"},null,-1)])])}const E2t=it({name:"material-icon-theme-markdown",render:M2t}),L2t={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function R2t(e,t){return b(),I("svg",L2t,[...t[0]||(t[0]=[A("path",{fill:"#ffca28",d:"m14 10l-4 3.5L6 10H4v12h4v-6l2 2l2-2v6h4V10zm12 6v-6h-4v6h-4l6 8l6-8z"},null,-1)])])}const P2t=it({name:"material-icon-theme-mdx",render:R2t}),$2t={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function O2t(e,t){return b(),I("svg",$2t,[...t[0]||(t[0]=[A("path",{fill:"#42a5f5",d:"M30 6a3.86 3.86 0 0 1-1.167 2.833a4.024 4.024 0 0 1-5.666 0A3.86 3.86 0 0 1 22 6a3.86 3.86 0 0 1 1.167-2.833a4.024 4.024 0 0 1 5.666 0A3.86 3.86 0 0 1 30 6m-9.208 5.208A10.6 10.6 0 0 0 13 8a10.6 10.6 0 0 0-7.792 3.208A10.6 10.6 0 0 0 2 19a10.6 10.6 0 0 0 3.208 7.792A10.6 10.6 0 0 0 13 30a10.6 10.6 0 0 0 7.792-3.208A10.6 10.6 0 0 0 24 19a10.6 10.6 0 0 0-3.208-7.792m-1.959 7.625a4.024 4.024 0 0 1-5.666 0a4.024 4.024 0 0 1 0-5.666a4.024 4.024 0 0 1 5.666 0a4.024 4.024 0 0 1 0 5.666"},null,-1)])])}const F2t=it({name:"material-icon-theme-lua",render:O2t}),D2t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function N2t(e,t){return b(),I("svg",D2t,[...t[0]||(t[0]=[A("path",{fill:"#1976d2",d:"M11.956 4.05c-5.694 0-10.354 3.106-10.354 6.947c0 3.396 3.686 6.212 8.531 6.813v2.205h3.53V17.82c.88-.093 1.699-.259 2.475-.497l1.43 2.692h3.996l-2.402-4.048c1.936-1.263 3.147-3.034 3.147-4.97c0-3.841-4.659-6.947-10.354-6.947m1.584 2.712c4.349 0 7.558 1.45 7.558 4.753c0 1.77-.952 3.013-2.505 3.779a1 1 0 0 1-.228-.156c-.373-.165-.994-.352-.994-.352s3.085-.227 3.085-3.302s-3.23-3.127-3.23-3.127h-7.092v7.413c-2.64-.766-4.462-2.392-4.462-4.255c0-2.63 3.52-4.753 7.868-4.753m.156 4.12h2.143s.983-.05.983.974c0 1.004-.983 1.004-.983 1.004h-2.143v-1.977m-.031 4.566h.952c.186 0 .28.052.445.207c.135.103.28.3.404.476c-.57.073-1.17.104-1.801.104z"},null,-1)])])}const B2t=it({name:"material-icon-theme-r",render:N2t}),z2t={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function H2t(e,t){return b(),I("svg",z2t,[...t[0]||(t[0]=[A("path",{fill:"#4fc3f7",d:"M16.83 2a1.3 1.3 0 0 0-.916.377l-.013.01L7.323 7.34l8.556 8.55v.005l10.283 10.277l1.96-3.529l-7.068-16.96l-3.299-3.297A1.3 1.3 0 0 0 16.828 2Z"},null,-1),A("path",{fill:"#01579b",d:"m7.343 7.32l-4.955 8.565l-.01.013a1.297 1.297 0 0 0 .004 1.835l.005.005l4.106 4.107l16.064 6.314l3.632-2.015l-.098-.098l-.025.002L15.995 15.97h-.012z"},null,-1),A("path",{fill:"#01579b",d:"m7.321 7.324l8.753 8.755h.013L26.16 26.156l3.835-.73L30 14.089l-4.049-3.965a6.5 6.5 0 0 0-3.618-1.612l.002-.043L7.323 7.325Z"},null,-1),A("path",{fill:"#64b5f6",d:"m7.332 7.335l8.758 8.75v.013l10.079 10.071L25.436 30H14.09l-3.967-4.048a6.5 6.5 0 0 1-1.611-3.618l-.045.004Z"},null,-1)])])}const j2t=it({name:"material-icon-theme-dart",render:H2t}),W2t={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function q2t(e,t){return b(),I("svg",W2t,[...t[0]||(t[0]=[A("path",{fill:"#f9a825",d:"M2 8h6v4H2zm8 0h12v4H10zm0 12h12v4H10zm14 0h2v4h-2zM8 20l-3 4H2V12h4v8zm14-8h-6l-6 8h6z"},null,-1),A("path",{fill:"#f9a825",d:"M16 20h-6l-6 8m12-16h6l6-8m2 4v16h-4V12h-2l3-4z"},null,-1)])])}const V2t=it({name:"material-icon-theme-zig",render:q2t}),U2t={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function K2t(e,t){return b(),I("svg",U2t,[...t[0]||(t[0]=[A("path",{fill:"#ef5350",d:"m29.5 24.02l-1.6-.92a4.4 4.4 0 0 0 .09-.9A1.3 1.3 0 0 0 28 22a5.6 5.6 0 0 0-.1-1.1l1.6-.92a.493.493 0 0 0 .18-.68l-1.5-2.6a.45.45 0 0 0-.18-.18V6.01a2.006 2.006 0 0 0-2-2H4a2.006 2.006 0 0 0-2 2V22a2.006 2.006 0 0 0 2 2h10.53l-.03.02a.493.493 0 0 0-.18.68l1.5 2.6a.493.493 0 0 0 .68.18l1.6-.92a5.9 5.9 0 0 0 1.9 1.09v1.85a.495.495 0 0 0 .5.5h3a.495.495 0 0 0 .5-.5v-1.85a5.9 5.9 0 0 0 1.9-1.09l1.6.92a.493.493 0 0 0 .68-.18l1.5-2.6a.493.493 0 0 0-.18-.68M24 22.01a1.99 1.99 0 0 1-.88 1.65l-.18.11a2.04 2.04 0 0 1-1.88 0l-.18-.11a1.99 1.99 0 0 1-.88-1.65V22a2 2 0 0 1 .88-1.66l.18-.11a2.04 2.04 0 0 1 1.88 0l.18.11A2 2 0 0 1 24 22Zm2-4.63l-.1.06a5.9 5.9 0 0 0-1.9-1.09V14.5a.495.495 0 0 0-.5-.5h-3a.495.495 0 0 0-.5.5v1.85a5.9 5.9 0 0 0-1.9 1.09l-1.6-.92a.493.493 0 0 0-.68.18l-1.5 2.6a.493.493 0 0 0 .18.68l1.6.92A5.6 5.6 0 0 0 16 22v.01L4 22V10.01h22Z"},null,-1)])])}const Z2t=it({name:"material-icon-theme-makefile",render:K2t}),G2t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Q2t(e,t){return b(),I("svg",G2t,[...t[0]||(t[0]=[A("path",{fill:"#1e88e5",d:"M11.94 2.984L2.928 21.017l9.875-8.47z"},null,-1),A("path",{fill:"#e53935",d:"m11.958 2.982l.002.29l1.312 14.499l-.002.006l.023.26l7.363 2.978h.415l-.158-.31l-.114-.228h-.001l-8.84-17.494z"},null,-1),A("path",{fill:"#7cb342",d:"m8.558 16.13l-5.627 4.884h17.743v-.016z"},null,-1)])])}const Y2t=it({name:"material-icon-theme-cmake",render:Q2t}),J2t={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function X2t(e,t){return b(),I("svg",J2t,[...t[0]||(t[0]=[A("g",{fill:"none"},[A("path",{d:"M0 0h24v24H0z"}),A("path",{fill:"#42a5f5",d:"M18 23H4c-1.1 0-2-.9-2-2V7h2v14h14zM14.5 7V5h-2v2h-2v2h2v2h2V9h2V7zm2 6h-6v2h6zM15 1H8c-1.1 0-1.99.9-1.99 2L6 17c0 1.1.89 2 1.99 2H19c1.1 0 2-.9 2-2V7zm4 16H8V3h6.17L19 7.83z"})],-1)])])}const evt=it({name:"material-icon-theme-diff",render:X2t}),tvt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function nvt(e,t){return b(),I("svg",tvt,[...t[0]||(t[0]=[Eu('',5)])])}const ivt=it({name:"material-icon-theme-proto",render:nvt}),ovt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function svt(e,t){return b(),I("svg",ovt,[...t[0]||(t[0]=[A("g",{fill:"none"},[A("path",{d:"M0 0h24v24H0z"}),A("path",{fill:"#42a5f5",d:"M8 16h8v2H8zm0-4h8v2H8zm6-10H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8zm4 18H6V4h7v5h5z"})],-1)])])}const rvt=it({name:"material-icon-theme-document",render:svt}),avt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function lvt(e,t){return b(),I("svg",avt,[...t[0]||(t[0]=[A("g",{fill:"none"},[A("path",{d:"M0 0h24v24H0z"}),A("path",{fill:"#afb42b",d:"M19 5v9h-5v5H5V5zm0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h10l6-6V5c0-1.1-.9-2-2-2m-7 11H7v-2h5zm5-4H7V8h10z"})],-1)])])}const cvt=it({name:"material-icon-theme-log",render:lvt}),uvt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function dvt(e,t){return b(),I("svg",uvt,[...t[0]||(t[0]=[A("path",{fill:"#ef5350",d:"M13 9h5.5L13 3.5zM6 2h8l6 6v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2m4.93 10.44c.41.9.93 1.64 1.53 2.15l.41.32c-.87.16-2.07.44-3.34.93l-.11.04l.5-1.04c.45-.87.78-1.66 1.01-2.4m6.48 3.81c.18-.18.27-.41.28-.66c.03-.2-.02-.39-.12-.55c-.29-.47-1.04-.69-2.28-.69l-1.29.07l-.87-.58c-.63-.52-1.2-1.43-1.6-2.56l.04-.14c.33-1.33.64-2.94-.02-3.6a.85.85 0 0 0-.61-.24h-.24c-.37 0-.7.39-.79.77c-.37 1.33-.15 2.06.22 3.27v.01c-.25.88-.57 1.9-1.08 2.93l-.96 1.8l-.89.49c-1.2.75-1.77 1.59-1.88 2.12c-.04.19-.02.36.05.54l.03.05l.48.31l.44.11c.81 0 1.73-.95 2.97-3.07l.18-.07c1.03-.33 2.31-.56 4.03-.75c1.03.51 2.24.74 3 .74c.44 0 .74-.11.91-.3m-.41-.71l.09.11c-.01.1-.04.11-.09.13h-.04l-.19.02c-.46 0-1.17-.19-1.9-.51c.09-.1.13-.1.23-.1c1.4 0 1.8.25 1.9.35M7.83 17c-.65 1.19-1.24 1.85-1.69 2c.05-.38.5-1.04 1.21-1.69zm3.02-6.91c-.23-.9-.24-1.63-.07-2.05l.07-.12l.15.05c.17.24.19.56.09 1.1l-.03.16l-.16.82z"},null,-1)])])}const fvt=it({name:"material-icon-theme-pdf",render:dvt}),hvt={viewBox:"0 0 16 16",width:"1.2em",height:"1.2em"};function pvt(e,t){return b(),I("svg",hvt,[...t[0]||(t[0]=[A("path",{fill:"#26a69a",d:"M8.5 6h4l-4-4zM3.875 1H9.5l4 4v8.6c0 .773-.616 1.4-1.375 1.4h-8.25c-.76 0-1.375-.627-1.375-1.4V2.4c0-.777.612-1.4 1.375-1.4M4 13.6h8V8l-2.625 2.8L8 9.4zm1.25-7.7c-.76 0-1.375.627-1.375 1.4s.616 1.4 1.375 1.4c.76 0 1.375-.627 1.375-1.4S6.009 5.9 5.25 5.9"},null,-1)])])}const mvt=it({name:"material-icon-theme-image",render:pvt}),gvt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function vvt(e,t){return b(),I("svg",gvt,[...t[0]||(t[0]=[A("path",{fill:"#ef5350",d:"M16 2a14 14 0 1 0 14 14A14 14 0 0 0 16 2m6 10h-4v8a4 4 0 1 1-4-4a3.96 3.96 0 0 1 2 .555V8h6Z"},null,-1)])])}const yvt=it({name:"material-icon-theme-audio",render:vvt}),bvt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function kvt(e,t){return b(),I("svg",bvt,[...t[0]||(t[0]=[A("path",{fill:"#ff9800",d:"m24 6l2 6h-4l-2-6h-3l2 6h-4l-2-6h-3l2 6H8L6 6H5a3 3 0 0 0-3 3v14a3 3 0 0 0 3 3h22a3 3 0 0 0 3-3V6Z"},null,-1)])])}const wvt=it({name:"material-icon-theme-video",render:kvt}),Cvt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Avt(e,t){return b(),I("svg",Cvt,[...t[0]||(t[0]=[A("path",{fill:"#afb42b",d:"M14 17h-2v-2h-2v-2h2v2h2m0-6h-2v2h2v2h-2v-2h-2V9h2V7h-2V5h2v2h2m5-4H5c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2"},null,-1)])])}const xvt=it({name:"material-icon-theme-zip",render:Avt}),Svt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function _vt(e,t){return b(),I("svg",Svt,[...t[0]||(t[0]=[A("path",{fill:"#f44336",d:"M24 28h4L18 4h-4L4 28h4l8-19.422"},null,-1),A("path",{fill:"#f44336",d:"M8 20h16v4H8z"},null,-1)])])}const Ivt=it({name:"material-icon-theme-font",render:_vt}),Tvt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function Mvt(e,t){return b(),I("svg",Tvt,[...t[0]||(t[0]=[A("path",{fill:"#e64a19",d:"M28 4H4a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2m0 22H4V10h24Z"},null,-1)])])}const Evt=it({name:"material-icon-theme-exe",render:Mvt}),Lvt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function Rvt(e,t){return b(),I("svg",Lvt,[...t[0]||(t[0]=[A("path",{fill:"#42a5f5",d:"M6 2a2 2 0 0 0-2 2v16c0 1.11.89 2 2 2h6v-2H6V4h7v5h5v3h2V8l-6-6m4 12a.26.26 0 0 0-.26.21l-.19 1.32c-.3.13-.59.29-.85.47l-1.24-.5c-.11 0-.24 0-.31.13l-1 1.73c-.06.11-.04.24.06.32l1.06.82a4.2 4.2 0 0 0 0 1l-1.06.82a.26.26 0 0 0-.06.32l1 1.73c.06.13.19.13.31.13l1.24-.5c.26.18.54.35.85.47l.19 1.32c.02.12.12.21.26.21h2c.11 0 .22-.09.24-.21l.19-1.32c.3-.13.57-.29.84-.47l1.23.5c.13 0 .26 0 .33-.13l1-1.73a.26.26 0 0 0-.06-.32l-1.07-.82c.02-.17.04-.33.04-.5s-.01-.33-.04-.5l1.06-.82a.26.26 0 0 0 .06-.32l-1-1.73c-.06-.13-.19-.13-.32-.13l-1.23.5c-.27-.18-.54-.35-.85-.47l-.19-1.32A.236.236 0 0 0 20 14m-1 3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5c-.84 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5"},null,-1)])])}const Pvt=it({name:"material-icon-theme-dll",render:Rvt}),$vt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function Ovt(e,t){return b(),I("svg",$vt,[...t[0]||(t[0]=[A("path",{fill:"#e53935",d:"M4 4v24h24V4Zm20 20h-4V12h-4v12H8V8h16Z"},null,-1)])])}const Fvt=it({name:"material-icon-theme-npm",render:Ovt}),Dvt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function Nvt(e,t){return b(),I("svg",Dvt,[...t[0]||(t[0]=[A("path",{fill:"#e0e0e0",d:"M2 22h8v8H2zm10 0h8v8h-8zm10 0h8v8h-8zM12 12h8v8h-8z"},null,-1),A("path",{fill:"#ffb300",d:"M2 2h8v8H2zm10 0h8v8h-8zm10 0h8v8h-8zm0 10h8v8h-8z"},null,-1)])])}const Bvt=it({name:"material-icon-theme-pnpm",render:Nvt}),zvt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function Hvt(e,t){return b(),I("svg",zvt,[...t[0]||(t[0]=[A("path",{fill:"#0288d1",d:"M27.575 23.967a9.9 9.9 0 0 0-3.751 1.726a22.6 22.6 0 0 1-5.537 2.504a1.55 1.55 0 0 1-.931.52a59 59 0 0 1-6.11.548c-1.102.008-1.777-.282-1.965-.735a1.49 1.49 0 0 1 .82-1.965a3.6 3.6 0 0 1-.486-.359c-.163-.162-.334-.487-.385-.367c-.213.52-.324 1.794-.897 2.366c-.786.795-2.273.53-3.153.069c-.965-.513.069-1.718.069-1.718a.69.69 0 0 1-.94-.324a4.6 4.6 0 0 1-.632-2.794a5.2 5.2 0 0 1 1.674-2.76a8.84 8.84 0 0 1 .624-4.17a9.9 9.9 0 0 1 3-3.469S7.136 11.015 7.82 9.177c.444-1.196.623-1.187.769-1.239a3.44 3.44 0 0 0 1.375-.811a4.99 4.99 0 0 1 4.178-1.607s1.094-3.357 2.12-2.7a17.4 17.4 0 0 1 1.452 2.735s1.213-.71 1.35-.445a10.74 10.74 0 0 1 .495 5.81a13.3 13.3 0 0 1-2.46 5.127c-.129.214 1.47.889 2.477 3.683c.932 2.554.103 4.699.248 4.938c.026.043.034.06.034.06s1.068.085 3.213-1.24a8.05 8.05 0 0 1 4.05-1.52a1.026 1.026 0 0 1 .453 2Z"},null,-1)])])}const jvt=it({name:"material-icon-theme-yarn",render:Hvt}),Wvt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function qvt(e,t){return b(),I("svg",Wvt,[...t[0]||(t[0]=[A("path",{fill:"#0288d1",d:"M21.81 10.25c-.06-.04-.56-.43-1.64-.43c-.28 0-.56.03-.84.08c-.21-1.4-1.38-2.11-1.43-2.14l-.29-.17l-.18.27c-.24.36-.43.77-.51 1.19c-.2.8-.08 1.56.33 2.21c-.49.28-1.29.35-1.46.35H2.62c-.34 0-.62.28-.62.63c0 1.15.18 2.3.58 3.38c.45 1.19 1.13 2.07 2 2.61c.98.6 2.59.94 4.42.94c.79 0 1.61-.07 2.42-.22c1.12-.2 2.2-.59 3.19-1.16A8.3 8.3 0 0 0 16.78 16c1.05-1.17 1.67-2.5 2.12-3.65h.19c1.14 0 1.85-.46 2.24-.85c.26-.24.45-.53.59-.87l.08-.24zm-17.96.99h1.76c.08 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16H3.85c-.09 0-.16.07-.16.16v1.58c.01.09.07.16.16.16m2.43 0h1.76c.08 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16H6.28c-.09 0-.16.07-.16.16v1.58c.01.09.07.16.16.16m2.47 0h1.75c.1 0 .17-.07.17-.16V9.5c0-.08-.06-.16-.17-.16H8.75c-.08 0-.15.07-.15.16v1.58c0 .09.06.16.15.16m2.44 0h1.77c.08 0 .15-.07.15-.16V9.5c0-.08-.06-.16-.15-.16h-1.77c-.08 0-.15.07-.15.16v1.58c0 .09.07.16.15.16M6.28 9h1.76c.08 0 .16-.09.16-.18V7.25c0-.09-.07-.16-.16-.16H6.28c-.09 0-.16.06-.16.16v1.57c.01.09.07.18.16.18m2.47 0h1.75c.1 0 .17-.09.17-.18V7.25c0-.09-.06-.16-.17-.16H8.75c-.08 0-.15.06-.15.16v1.57c0 .09.06.18.15.18m2.44 0h1.77c.08 0 .15-.09.15-.18V7.25c0-.09-.07-.16-.15-.16h-1.77c-.08 0-.15.06-.15.16v1.57c0 .09.07.18.15.18m0-2.28h1.77c.08 0 .15-.07.15-.16V5c0-.1-.07-.17-.15-.17h-1.77c-.08 0-.15.06-.15.17v1.56c0 .08.07.16.15.16m2.46 4.52h1.76c.09 0 .16-.07.16-.16V9.5c0-.08-.07-.16-.16-.16h-1.76c-.08 0-.15.07-.15.16v1.58c0 .09.07.16.15.16"},null,-1)])])}const Vvt=it({name:"material-icon-theme-docker",render:qvt}),Uvt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function Kvt(e,t){return b(),I("svg",Uvt,[...t[0]||(t[0]=[A("path",{fill:"#e64a19",d:"M13.172 2.828L11.78 4.22l1.91 1.91l2 2A2.986 2.986 0 0 1 20 10.81a3.25 3.25 0 0 1-.31 1.31l2.06 2a2.68 2.68 0 0 1 3.37.57a2.86 2.86 0 0 1 .88 2.117a3.02 3.02 0 0 1-.856 2.109A2.9 2.9 0 0 1 23 19.81a2.93 2.93 0 0 1-2.13-.87a2.694 2.694 0 0 1-.56-3.38l-2-2.06a3 3 0 0 1-.31.12V20a3 3 0 0 1 1.44 1.09a2.92 2.92 0 0 1 .56 1.72a2.88 2.88 0 0 1-.878 2.128a2.98 2.98 0 0 1-2.048.871a2.981 2.981 0 0 1-2.514-4.719A3 3 0 0 1 16 20v-6.38a2.96 2.96 0 0 1-1.44-1.09a2.9 2.9 0 0 1-.56-1.72a2.9 2.9 0 0 1 .31-1.31l-3.9-3.9l-7.579 7.572a4 4 0 0 0-.001 5.658l10.342 10.342a4 4 0 0 0 5.656 0l10.344-10.344a4 4 0 0 0 0-5.656L18.828 2.828a4 4 0 0 0-5.656 0"},null,-1)])])}const Zvt=it({name:"material-icon-theme-git",render:Kvt}),Gvt={viewBox:"0 0 16 16",width:"1.2em",height:"1.2em"};function Qvt(e,t){return b(),I("svg",Gvt,[...t[0]||(t[0]=[A("g",{fill:"none"},[A("path",{d:"M0 0h24v24H0z"}),A("path",{fill:"#42a5f5",d:"M8 1C4.136 1 1 4.136 1 8s3.136 7 7 7s7-3.136 7-7s-3.136-7-7-7m1 11H7V7.5h2zm0-6H7V4h2z"})],-1)])])}const Yvt=it({name:"material-icon-theme-readme",render:Qvt}),Jvt={viewBox:"0 0 16 16",width:"1.2em",height:"1.2em"};function Xvt(e,t){return b(),I("svg",Jvt,[...t[0]||(t[0]=[A("path",{fill:"#ff5722",d:"M8 1a5.5 5.5 0 0 0-4 9.26V15l4-1.5l4 1.5v-4.74A5.49 5.49 0 0 0 8 1m0 1.5a4 4 0 1 1 0 8a4 4 0 0 1 0-8m0 2a2 2 0 1 0 0 4a2 2 0 0 0 0-4"},null,-1)])])}const eyt=it({name:"material-icon-theme-license",render:Xvt}),tyt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function nyt(e,t){return b(),I("svg",tyt,[...t[0]||(t[0]=[A("path",{fill:"#757575",d:"M15 2H6a2.006 2.006 0 0 0-2 2v22a2.006 2.006 0 0 0 2 2h6v-4H6v-2h6v-2H6v-2h6v-2H6v-2h6v-2h2V4l8 8h2v-1Z"},null,-1),A("path",{fill:"#0288d1",d:"M12 12v18h18V12Zm8 6h-2v8h-2v-8h-2v-2h6Zm8 0h-4v2h2a2.006 2.006 0 0 1 2 2v2a2.006 2.006 0 0 1-2 2h-4v-2h4v-2h-2a2.006 2.006 0 0 1-2-2v-2a2.006 2.006 0 0 1 2-2h4Z"},null,-1)])])}const iyt=it({name:"material-icon-theme-tsconfig",render:nyt}),oyt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function syt(e,t){return b(),I("svg",oyt,[...t[0]||(t[0]=[A("path",{fill:"#757575",d:"M15 2H6a2.006 2.006 0 0 0-2 2v22a2.006 2.006 0 0 0 2 2h6v-4H6v-2h6v-2H6v-2h6v-2H6v-2h6v-2h2V4l8 8h2v-1Z"},null,-1),A("path",{fill:"#ffca28",d:"M12 12v18h18V12zm8 12a2.006 2.006 0 0 1-2 2h-2a2.006 2.006 0 0 1-2-2v-2h2v2h2v-8h2zm8-6h-4v2h2a2.006 2.006 0 0 1 2 2v2a2.006 2.006 0 0 1-2 2h-4v-2h4v-2h-2a2.006 2.006 0 0 1-2-2v-2a2.006 2.006 0 0 1 2-2h4z"},null,-1)])])}const ryt=it({name:"material-icon-theme-jsconfig",render:syt}),ayt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function lyt(e,t){return b(),I("svg",ayt,[...t[0]||(t[0]=[A("path",{fill:"#3f51b5",d:"M22.713 4H9.287a.5.5 0 0 0-.432.248l-6.708 11.5a.5.5 0 0 0 0 .504l6.708 11.5a.5.5 0 0 0 .432.248h13.426a.5.5 0 0 0 .432-.248l6.708-11.5a.5.5 0 0 0 0-.504l-6.708-11.5A.5.5 0 0 0 22.713 4m-6.937 20.888l-7.5-3.75A.5.5 0 0 1 8 20.691v-9.382a.5.5 0 0 1 .276-.447l7.5-3.75a.5.5 0 0 1 .448 0l7.5 3.75a.5.5 0 0 1 .276.447v9.382a.5.5 0 0 1-.276.447l-7.5 3.75a.5.5 0 0 1-.448 0"},null,-1),A("path",{fill:"#7986cb",d:"M22 19.441v-6.882a.5.5 0 0 0-.276-.447l-5.5-2.75a.5.5 0 0 0-.448 0l-5.5 2.75a.5.5 0 0 0-.276.447v6.882a.5.5 0 0 0 .276.447l5.5 2.75a.5.5 0 0 0 .448 0l5.5-2.75a.5.5 0 0 0 .276-.447"},null,-1)])])}const cyt=it({name:"material-icon-theme-eslint",render:lyt}),uyt={viewBox:"0 0 16 16",width:"1.2em",height:"1.2em"};function dyt(e,t){return b(),I("svg",uyt,[...t[0]||(t[0]=[A("path",{fill:"#f44336",d:"M2 8h4v1H2zm0 6h4v1H2zm9-10h3v1h-3zM2 2h3v1H2z"},null,-1),A("path",{fill:"#f9a825",d:"M9 2h3v1H9zm1 4h4v1h-4zm-5 6h1v1H5zm-3-2h6v1H2z"},null,-1),A("path",{fill:"#26a69a",d:"M2 12h3v1H2zm7-4h5v1H9zM2 4h4v1H2zm3-2h4v1H5z"},null,-1),A("path",{fill:"#ba68c8",d:"M2 6h3v1H2zm7-2h2v1H9zm-1 6h4v1H8z"},null,-1)])])}const fyt=it({name:"material-icon-theme-prettier",render:dyt}),hyt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function pyt(e,t){return b(),I("svg",hyt,[...t[0]||(t[0]=[A("path",{fill:"#a0f",d:"M29.313 12h-6.664a1.427 1.427 0 0 1-1.1-2.24l4.398-6.676A.703.703 0 0 0 25.397 2H8.428a.62.62 0 0 0-.55.289l-5.77 8.627A.703.703 0 0 0 2.658 12h8.175a1.427 1.427 0 0 1 1.099 2.24l-4.48 6.676A.702.702 0 0 0 8 22l6.695.002A1.34 1.34 0 0 1 16 23.375v5.934a.652.652 0 0 0 1.168.433l12.694-16.586a.725.725 0 0 0-.55-1.156"},null,-1)])])}const myt=it({name:"material-icon-theme-vite",render:pyt}),gyt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"};function vyt(e,t){return b(),I("svg",gyt,[...t[0]||(t[0]=[A("path",{fill:"#00e676",d:"M15.438 29.636a.685.685 0 0 1-1.029.213L2.274 20.755A.65.65 0 0 1 2 20.187V9.175a.715.715 0 0 1 1.166-.568l7.404 5.612a1.47 1.47 0 0 0 2.125-.497l6.102-11.367A.72.72 0 0 1 19.414 2h9.872a.76.76 0 0 1 .617 1.137l-14.465 26.57Z"},null,-1)])])}const yyt=it({name:"material-icon-theme-vitest",render:vyt}),byt={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"};function kyt(e,t){return b(),I("svg",byt,[...t[0]||(t[0]=[A("path",{fill:"#fafafa","fill-opacity":".785",d:"m19.376 15.988l-7.708 4.45l-7.709-4.45v-8.9l7.709-4.451l7.708 4.45z"},null,-1),A("path",{fill:"#90caf9",d:"M12.286 1.98c-.21 0-.41.059-.57.179l-7.9 4.44c-.32.17-.53.5-.53.88v9c0 .38.21.711.53.881l7.9 4.44c.16.12.36.18.57.18s.41-.06.57-.18l7.9-4.44c.32-.17.53-.5.53-.88v-9c0-.38-.21-.712-.53-.882l-7.9-4.44a.95.95 0 0 0-.57-.179zm0 2.15l7 3.94v2.103h-.016v5.177h.016v.54l-7 3.939l-7-3.94V8.07zm0 2.08l-4.9 2.83l4.9 2.83l4.9-2.83zm-5 5.08v3.58l4 2.309v-3.58l-4-2.31zm10 0l-4 2.308v3.58l4-2.308z"},null,-1),A("path",{fill:"#0277bd",d:"m12.286 6.21l-4.9 2.83l4.9 2.83l4.9-2.83zm-5 5.08v3.58l4 2.309v-3.58l-4-2.31zm10 0l-4 2.308v3.58l4-2.308z"},null,-1)])])}const wyt=it({name:"material-icon-theme-webpack",render:kyt}),Cyt='',Ayt='',xyt=` + + +`,Syt=` + + + +`,_yt=` + + + +`,Iyt=` + + +`,Tyt=` + + +`,Myt=` + + +`,Eyt=` + + +`,Lyt=` + + +`,Ryt=` + + +`,Pyt=` + + +`,$yt=` + + +`,Oyt=` + + + +`,Fyt=` + + + + +`,Dyt=` + + + + +`,Nyt=` + + + + +`,Byt=` + + + + +`,zyt=` + + + + +`,Hyt=` + + + + +`,jyt=` + + + +`,Wyt=` + + + +`,qyt=` + + +`,Vyt=` + + +`,Uyt=` + + +`,Kyt=` + + +`,Zyt=` + + + + +`,Gyt=` + + +`,Qyt=` + + + + +`,Yyt=` + + + + +`,Jyt=` + + + +`,Xyt=` + + + + + +`,e4t=` + + +`,t4t=` + + +`,n4t=` + + +`,i4t=` + + +`,o4t=` + + +`,s4t=` + + +`,r4t=` + + + +`,a4t=` + + + +`,l4t=` + + +`,c4t=` + + + + + + + + + + + +`,u4t=` + + + + +`,d4t=` + + + + +`,f4t=` + + + + +`,h4t=` + + + + +`,p4t=` + + + + + + + + + + + + +`,m4t=` + + +`,g4t=` + + +`,v4t=` + + + + +`,y4t=` + + +`,b4t=` + + +`,k4t=` + + + + +`,w4t=` + + + + +`,C4t=` + + + + +`,A4t=` + + + +`,x4t=` + + +`,S4t=` + + +`,_4t=` + + + +`,I4t=` + + + + +`,T4t=` +`,M4t=` + + +`,E4t=` + + + + + +`,L4t=` + + +`,R4t=` + + +`,P4t=` + + + +`,$4t=` + + + + +`,O4t=` + + +`,F4t=` + + +`,D4t=` + + +`,N4t='',B4t=` + + +`,z4t=` + + + + +`,H4t=` + + + + +`,j4t=` + + +`,W4t=` + + + + + + + +`,q4t=` + + + + +`,V4t=` + + + + + +`,U4t=` + + +`,K4t=` + + +`,Z4t=` + + + +`,G4t=` + + + + +`,Q4t='',Y4t='',J4t='',X4t='',e9t='',t9t='',n9t='',i9t='',o9t='',s9t='',r9t='',a9t='',l9t='',c9t='',u9t='',d9t='',f9t='',h9t='',p9t='',m9t='',g9t='',v9t='',y9t='',b9t='',k9t='',w9t='',C9t='',A9t='',x9t='',S9t='',_9t='',I9t='',T9t='',M9t='',E9t='',L9t='',R9t='',P9t='',$9t='',O9t='',F9t='',D9t='',N9t='',B9t='',z9t='',H9t='',j9t='',W9t='',q9t='',V9t='',U9t='',K9t='',Z9t='',G9t='',Q9t='',Y9t='',J9t='',X9t='',e3t='',t3t='',n3t='',i3t='',o3t='',s3t='',r3t='',a3t='',l3t='',c3t='',u3t='',d3t='',f3t='',h3t='',p3t='',m3t='',g3t='',v3t='',y3t='',b3t='',k3t='',w3t='',C3t='',A3t='',x3t='',S3t='',_3t='',I3t='',T3t='',M3t='',E3t='',L3t='',R3t='',P3t='',$3t='',O3t='',F3t='',D3t='',N3t='',B3t='',z3t='',H3t='',j3t='',W3t='',q3t='',V3t='',U3t='',K3t='',Z3t='',G3t='',Q3t='',Y3t='',J3t='',X3t='',ebt='',tbt='',nbt='',ibt='',obt='',sbt='',rbt='',abt='',lbt='',cbt='',ubt='',dbt={sm:14,md:16,lg:20};function at(e,t){return{component:e,svg:t}}const Zue={"volume-off":at(gct,kct),volume:at(bct,wct),plus:at(xct,xyt),"chat-new":at(Ict,Syt),"calendar-close":at(C0t,L9t),"calendar-schedule":at(S0t,R9t),"calendar-todo":at(T0t,P9t),"tab-close-others":at(lct,cct),"tab-close-right":at(fct,hct),"tab-close":at($1t,Cyt),"tabs-close-all":at(D1t,Ayt),close:at(Put,Xee),check:at(Yct,Gee),"circle-check":at(cut,Oyt),"circle-check-filled":at(fut,Fyt),"circle-empty":at(mut,Dyt),"key-command":at(yut,Nyt),"key-enter":at(wut,Byt),"key-plus":at(xut,zyt),"checkbox-checked":at(Iut,Hyt),"state-open":at(apt,l9t),"state-done":at(opt,a9t),archive:at(Ect,_yt),browser:at(Pct,ete),at:at(Fct,Iyt),pointer:at(b1t,Q4t),"shape-square":at(Upt,w9t),"shape-circle":at(tpt,r9t),line:at($pt,v9t),"arrow-up-right":at(U1t,i9t),highlight:at(Tpt,m9t),typography:at(t0t,x9t),"grid-dots":at(Spt,p9t),blur:at(G1t,o9t),eraser:at(bpt,f9t),redo:at(W1t,n9t),screenshot:at(uht,E4t),search:at(hht,L4t),copy:at(jut,Zee),"tab-new-right":at(oct,sct),"text-wrap":at(Gpt,C9t),"text-wrap-disabled":at(Jpt,A9t),"list-numbers":at(o0t,S9t),refresh:at(h0t,T9t),link:at(vft,m4t),"external-link":at(D0t,Qee),pip:at(zpt,b9t),download:at(Zut,Uyt),"map-pin":at(C1t,Y4t),camera:at(S1t,J4t),microphone:at(T1t,X4t),bell:at(L1t,e9t),printer:at(Wpt,k9t),"zoom-scan":at(a0t,_9t),crosshair:at(u0t,I9t),history:at(Lpt,g9t),undo:at(a1t,U4t),send:at(ght,R4t),image:at(qdt,r4t),settings:at(bht,P4t),sliders:at($ht,N4t),"light-mode":at(pft,p4t),"dark-mode":at(Vut,Vyt),"follow-system":at(_dt,e4t),"log-in":at(Tht,F4t),"log-out":at(Lht,D4t),hand:at(Ndt,o4t),"full-access":at(Mdt,t4t),"shield-question":at(Cht,$4t),"side-chat":at(Sht,O4t),"chevron-down":at(eut,Ryt),"chevron-right":at(iut,Pyt),"chevron-left":at(J1t,s9t),"chevron-up":at(rut,$yt),"arrow-up":at(Zct,Lyt),"arrow-down":at(Bct,Tyt),"arrow-right":at(Vct,Eyt),"arrow-left":at(jct,Myt),minus:at(_ft,y4t),microscope:at(Mft,b4t),flask:at(Cpt,h9t),"panel-collapse":at(nft,u4t),"panel-collapse-right":at(lft,f4t),"panel-expand":at(sft,d4t),"panel-expand-right":at(dft,h4t),expand:at(edt,Kyt),collapse:at(Fut,Wyt),list:at(kft,g4t),"view-switch":at(h1t,Z4t),"tree-view":at(umt,W9t),sort:at(gmt,V9t),grip:at(Odt,i4t),"session-admin":at(z1t,t9t),folder:at(pdt,Uee),"folder-closed":at(ldt,Gyt),"folder-jump":at(ddt,Qyt),"folder-plus":at(Adt,Xyt),"folder-solid":at(tmt,z9t),"folder-tree":at(vdt,Yyt),file:at(oZ,JT),"file-text":at(sdt,Zyt),"file-edit":at(Yut,Jee),"file-plus":at(U0t,N9t),"file-off":at(oZ,JT),attachment:at(Dpt,y9t),"image-off":at(Kdt,a4t),eye:at(z0t,F9t),"eye-off":at(W0t,D9t),code:at(L0t,$9t),terminal:at(Uht,H4t),"device-desktop":at(upt,c9t),"device-mobile":at(hpt,u9t),"device-rotate":at(gpt,d9t),pencil:at(qft,x4t),tool:at(Smt,Z9t),glob:at(b0t,E9t),globe:at(Rdt,n4t),translate:at(t1t,q4t),"check-list":at(Jht,W4t),bolt:at(G0t,B9t),sparkling:at(J0t,Kee),keyboard:at(Xdt,c4t),trash:at(o1t,V4t),"git-fork":at(omt,H9t),"git-pull-request":at(amt,j9t),message:at(But,qyt),mail:at(Aft,v4t),user:at(u1t,K4t),info:at(Qdt,l4t),"help-circle":at(Xft,I4t),"alert-triangle":at(g1t,G4t),clock:at(Eut,jyt),"browser-pointer":at(oht,T4t),robot:at(aht,M4t),sparkles:at(Wht,z4t),tower:at(g0t,M9t),"gen-title":at(kdt,Jyt),histogram:at(Hdt,s4t),music:at(Nft,C4t),emoji:at($0t,O9t),target:at(zht,Yee),pause:at(Hft,A4t),play:at(Kft,S4t),power:at(Qft,_4t),pin:at(hmt,q9t),stop:at(Dht,B4t),star:at(bmt,U9t),"star-outline":at(Cmt,K9t),unpin:at(Tmt,G9t),"dots-horizontal":at(Oft,w4t),model:at(Rft,k4t),thinking:at(Ght,j4t),"ft-typescript":at(Lmt,Q9t),"ft-javascript":at($mt,Y9t),"ft-vue":at(Dmt,J9t),"ft-svelte":at(zmt,X9t),"ft-astro":at(Wmt,e3t),"ft-python":at(Umt,t3t),"ft-ruby":at(Gmt,n3t),"ft-go":at(Jmt,i3t),"ft-rust":at(tgt,o3t),"ft-java":at(ogt,s3t),"ft-jar":at(agt,r3t),"ft-kotlin":at(fgt,a3t),"ft-scala":at(mgt,l3t),"ft-swift":at(ygt,c3t),"ft-c":at(wgt,u3t),"ft-h":at(xgt,d3t),"ft-cpp":at(Igt,f3t),"ft-csharp":at(Egt,h3t),"ft-php":at(Pgt,p3t),"ft-console":at(Fgt,m3t),"ft-powershell":at(Bgt,g3t),"ft-command":at(jgt,v3t),"ft-database":at(Vgt,y3t),"ft-graphql":at(Zgt,b3t),"ft-prisma":at(Ygt,k3t),"ft-html":at(e2t,w3t),"ft-xml":at(i2t,C3t),"ft-svg":at(r2t,A3t),"ft-css":at(c2t,x3t),"ft-sass":at(f2t,S3t),"ft-less":at(m2t,_3t),"ft-json":at(y2t,I3t),"ft-yaml":at(w2t,T3t),"ft-toml":at(x2t,M3t),"ft-editorconfig":at(I2t,E3t),"ft-markdown":at(E2t,L3t),"ft-mdx":at(P2t,R3t),"ft-lua":at(F2t,P3t),"ft-r":at(B2t,$3t),"ft-dart":at(j2t,O3t),"ft-zig":at(V2t,F3t),"ft-makefile":at(Z2t,D3t),"ft-cmake":at(Y2t,N3t),"ft-diff":at(evt,B3t),"ft-proto":at(ivt,z3t),"ft-file":at(rvt,H3t),"ft-log":at(cvt,j3t),"ft-pdf":at(fvt,W3t),"ft-image":at(mvt,q3t),"ft-audio":at(yvt,V3t),"ft-video":at(wvt,U3t),"ft-zip":at(xvt,K3t),"ft-font":at(Ivt,Z3t),"ft-exe":at(Evt,G3t),"ft-dll":at(Pvt,Q3t),"ft-npm":at(Fvt,Y3t),"ft-pnpm":at(Bvt,J3t),"ft-yarn":at(jvt,X3t),"ft-docker":at(Vvt,ebt),"ft-git":at(Zvt,tbt),"ft-readme":at(Yvt,nbt),"ft-license":at(eyt,ibt),"ft-tsconfig":at(iyt,obt),"ft-jsconfig":at(ryt,sbt),"ft-eslint":at(cyt,rbt),"ft-prettier":at(fyt,abt),"ft-vite":at(myt,lbt),"ft-vitest":at(yyt,cbt),"ft-webpack":at(wyt,ubt)};function fbt(e){return Zue[e]}function hbt(e,t){return e.replace(/]*>/,n=>n.replace(/\s(?:width|height)="[^"]*"/g,"")).replace(/^
        /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:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i")},bw=/^(?:[ \t]*(?:\n|$))+/,kw=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,ww=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,ro=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Tw=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,il=/(?:[*+-]|\d{1,9}[.)])/,Gf=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Xf=xt(Gf).replace(/bull/g,il).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(),Sw=xt(Gf).replace(/bull/g,il).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(),ol=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,_w=/^[^\n]+/,sl=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Bw=xt(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",sl).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),vw=xt(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,il).getRegex(),_s="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",al=/|$))/,Lw=xt("^ {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",al).replace("tag",_s).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Vf=xt(ol).replace("hr",ro).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",_s).getRegex(),Fw=xt(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Vf).getRegex(),nl={blockquote:Fw,code:kw,def:Bw,fences:ww,heading:Tw,hr:ro,html:Lw,lheading:Xf,list:vw,newline:bw,paragraph:Vf,table:Ii,text:_w},Hh=xt("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",ro).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",_s).getRegex(),Aw={...nl,lheading:Sw,table:Hh,paragraph:xt(ol).replace("hr",ro).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Hh).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",_s).getRegex()},Ew={...nl,html:xt(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",al).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:Ii,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:xt(ol).replace("hr",ro).replace("heading",` *#{1,6} *[^ +`,"ig");e=e.trim().replace(r,"").replace(/'/gm,'"'),q.debug(`Detecting diagram directive${t!==null?" type:"+t:""} based on the text:${e}`);let i;const o=[];for(;(i=$i.exec(e))!==null;)if(i.index===$i.lastIndex&&$i.lastIndex++,i&&!t||t&&i[1]?.match(t)||t&&i[2]?.match(t)){const s=i[1]?i[1]:i[2],a=i[3]?i[3].trim():i[4]?JSON.parse(i[4].trim()):null;o.push({type:s,args:a})}return o.length===0?{type:e,args:null}:o.length===1?o[0]:o}catch(r){return q.error(`ERROR: ${r.message} - Unable to parse directive type: '${t}' based on the text: '${e}'`),{type:void 0,args:null}}},"detectDirective"),P2=p(function(e){return e.replace($i,"")},"removeDirectives"),R2=p(function(e,t){for(const[r,i]of t.entries())if(i.match(e))return r;return-1},"isSubstringInArray");function Vn(e,t){if(!e)return t;const r=`curve${e.charAt(0).toUpperCase()+e.slice(1)}`;return O2[r]??t}p(Vn,"interpolateToCurve");function Of(e,t){const r=e.trim();if(r)return t.securityLevel!=="loose"?i2.sanitizeUrl(r):r}p(Of,"formatUrl");var N2=p((e,...t)=>{const r=e.split("."),i=r.length-1,o=r[i];let s=window;for(let a=0;a{r+=Zn(o,t),t=o});const i=r/2;return Kn(e,i)}p(If,"traverseEdge");function Df(e){return e.length===1?e[0]:If(e)}p(Df,"calcLabelPosition");var Ph=p((e,t=2)=>{const r=Math.pow(10,t);return Math.round(e*r)/r},"roundNumber"),Kn=p((e,t)=>{let r,i=t;for(const o of e){if(r){const s=Zn(o,r);if(s===0)return r;if(s=1)return{x:o.x,y:o.y};if(a>0&&a<1)return{x:Ph((1-a)*r.x+a*o.x,5),y:Ph((1-a)*r.y+a*o.y,5)}}}r=o}throw new Error("Could not find a suitable point for the given distance")},"calculatePoint"),q2=p((e,t,r)=>{q.info(`our points ${JSON.stringify(t)}`),t[0]!==r&&(t=t.reverse());const o=Kn(t,25),s=e?10:5,a=Math.atan2(t[0].y-o.y,t[0].x-o.x),n={x:0,y:0};return n.x=Math.sin(a)*s+(t[0].x+o.x)/2,n.y=-Math.cos(a)*s+(t[0].y+o.y)/2,n},"calcCardinalityPosition");function Pf(e,t,r){const i=structuredClone(r);q.info("our points",i),t!=="start_left"&&t!=="start_right"&&i.reverse();const o=25+e,s=Kn(i,o),a=10+e*.5,n=Math.atan2(i[0].y-s.y,i[0].x-s.x),l={x:0,y:0};return t==="start_left"?(l.x=Math.sin(n+Math.PI)*a+(i[0].x+s.x)/2,l.y=-Math.cos(n+Math.PI)*a+(i[0].y+s.y)/2):t==="end_right"?(l.x=Math.sin(n-Math.PI)*a+(i[0].x+s.x)/2-5,l.y=-Math.cos(n-Math.PI)*a+(i[0].y+s.y)/2-5):t==="end_left"?(l.x=Math.sin(n)*a+(i[0].x+s.x)/2-5,l.y=-Math.cos(n)*a+(i[0].y+s.y)/2-5):(l.x=Math.sin(n)*a+(i[0].x+s.x)/2,l.y=-Math.cos(n)*a+(i[0].y+s.y)/2),l}p(Pf,"calcTerminalLabelPosition");function Rf(e){let t="",r="";for(const i of e)i!==void 0&&(i.startsWith("color:")||i.startsWith("text-align:")?r=r+i+";":t=t+i+";");return{style:t,labelStyle:r}}p(Rf,"getStylesFromArray");var Rh=0,W2=p(()=>(Rh++,"id-"+Math.random().toString(36).substr(2,12)+"-"+Rh),"generateId");function Nf(e){let t="";const r="0123456789abcdef",i=r.length;for(let o=0;oNf(e.length),"random"),H2=p(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"),Y2=p(function(e,t){const r=t.text.replace(Zi.lineBreakRegex," "),[,i]=Ss(t.fontSize),o=e.append("text");o.attr("x",t.x),o.attr("y",t.y),o.style("text-anchor",t.anchor),o.style("font-family",t.fontFamily),o.style("font-size",i),o.style("font-weight",t.fontWeight),o.attr("fill",t.fill),t.class!==void 0&&o.attr("class",t.class);const s=o.append("tspan");return s.attr("x",t.x+t.textMargin*2),s.attr("fill",t.fill),s.text(r),o},"drawSimpleText"),U2=to((e,t,r)=>{if(!e||(r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
        "},r),Zi.lineBreakRegex.test(e)))return e;const i=e.split(" ").filter(Boolean),o=[];let s="";return i.forEach((a,n)=>{const l=je(`${a} `,r),c=je(s,r);if(l>t){const{hyphenatedStrings:f,remainingWord:u}=j2(a,t,"-",r);o.push(s,...f),s=u}else c+l>=t?(o.push(s),s=a):s=[s,a].filter(Boolean).join(" ");n+1===i.length&&o.push(s)}),o.filter(a=>a!=="").join(r.joinWith)},(e,t,r)=>`${e}${t}${r.fontSize}${r.fontWeight}${r.fontFamily}${r.joinWith}`),j2=to((e,t,r="-",i)=>{i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},i);const o=[...e],s=[];let a="";return o.forEach((n,l)=>{const c=`${a}${n}`;if(je(c,i)>=t){const d=l+1,f=o.length===d,u=`${c}${r}`;s.push(f?c:u),a=""}else a=c}),{hyphenatedStrings:s,remainingWord:a}},(e,t,r="-",i)=>`${e}${t}${r}${i.fontSize}${i.fontWeight}${i.fontFamily}`);function qf(e,t){return Qn(e,t).height}p(qf,"calculateTextHeight");function je(e,t){return Qn(e,t).width}p(je,"calculateTextWidth");var Qn=to((e,t)=>{const{fontSize:r=12,fontFamily:i="Arial",fontWeight:o=400}=t;if(!e)return{width:0,height:0};const[,s]=Ss(r),a=["sans-serif",i],n=e.split(Zi.lineBreakRegex),l=[],c=ct("body");if(!c.remove)return{width:0,height:0,lineHeight:0};const h=c.append("svg");for(const f of a){let u=0;const g={width:0,height:0,lineHeight:0};for(const m of n){const y=H2();y.text=m||$2;const C=Y2(h,y).style("font-size",s).style("font-weight",o).style("font-family",f),b=(C._groups||C)[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)),u=Math.round(b.height),g.height+=u,g.lineHeight=Math.round(Math.max(g.lineHeight,u))}l.push(g)}h.remove();const d=isNaN(l[1].height)||isNaN(l[1].width)||isNaN(l[1].lineHeight)||l[0].height>l[1].height&&l[0].width>l[1].width&&l[0].lineHeight>l[1].lineHeight?0:1;return l[d]},(e,t)=>`${e}${t.fontSize}${t.fontWeight}${t.fontFamily}`),G2=class{constructor(e=!1,t){this.count=0,this.count=t?t.length:0,this.next=e?()=>this.count++:()=>Date.now()}static{p(this,"InitIDGenerator")}},yo,X2=p(function(e){return yo=yo||document.createElement("div"),e=escape(e).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),yo.innerHTML=e,unescape(yo.textContent)},"entityDecode");function Jn(e){return"str"in e}p(Jn,"isDetailedError");var V2=p((e,t,r,i)=>{if(!i)return;const o=e.node()?.getBBox();o&&e.append("text").text(i).attr("text-anchor","middle").attr("x",o.x+o.width/2).attr("y",-r).attr("class",t)},"insertTitle"),Ss=p(e=>{if(typeof e=="number")return[e,e+"px"];const t=parseInt(e??"",10);return Number.isNaN(t)?[void 0,void 0]:e===String(t)?[t,e+"px"]:[t,e]},"parseFontSize");function tl(e,t){return M2({},e,t)}p(tl,"cleanAndMerge");var ye={assignWithDepth:Dt,wrapLabel:U2,calculateTextHeight:qf,calculateTextWidth:je,calculateTextDimensions:Qn,cleanAndMerge:tl,detectInit:D2,detectDirective:$f,isSubstringInArray:R2,interpolateToCurve:Vn,calcLabelPosition:Df,calcCardinalityPosition:q2,calcTerminalLabelPosition:Pf,formatUrl:Of,getStylesFromArray:Rf,generateId:W2,random:z2,runFunc:N2,entityDecode:X2,insertTitle:V2,isLabelCoordinateInPath:Wf,parseFontSize:Ss,InitIDGenerator:G2},Z2=p(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){const i=r.substring(1,r.length-1);return/^\+?\d+$/.test(i)?"fl°°"+i+"¶ß":"fl°"+i+"¶ß"}),t},"encodeEntities"),vr=p(function(e){return e.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},"decodeEntities"),IL=p((e,t,{counter:r=0,prefix:i,suffix:o},s)=>s||`${i?`${i}_`:""}${e}_${t}_${r}${o?`_${o}`:""}`,"getEdgeId");function qt(e){return e??null}p(qt,"handleUndefinedAttr");function Wf(e,t){const r=Math.round(e.x),i=Math.round(e.y),o=t.replace(/(\d+\.\d+)/g,s=>Math.round(parseFloat(s)).toString());return o.includes(r.toString())||o.includes(i.toString())}p(Wf,"isLabelCoordinateInPath");var el=p(({flowchart:e})=>{const t=e?.subGraphTitleMargin?.top??0,r=e?.subGraphTitleMargin?.bottom??0,i=t+r;return{subGraphTitleTopMargin:t,subGraphTitleBottomMargin:r,subGraphTitleTotalMargin:i}},"getSubGraphTitleMargins");async function zf(e,t){const r=e.getElementsByTagName("img");if(!r||r.length===0)return;const i=t.replace(/]*>/g,"").trim()==="";await Promise.all([...r].map(o=>new Promise(s=>{function a(){if(o.style.display="flex",o.style.flexDirection="column",i){const n=Ct().fontSize?Ct().fontSize:window.getComputedStyle(document.body).fontSize,l=5,[c=$c.fontSize]=Ss(n),h=c*l+"px";o.style.minWidth=h,o.style.maxWidth=h}else o.style.width="100%";s(o)}p(a,"setupImage"),setTimeout(()=>{o.complete&&a()}),o.addEventListener("error",a),o.addEventListener("load",a)})))}p(zf,"configureLabelImages");const K2=Object.freeze({left:0,top:0,width:16,height:16}),os=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),Hf=Object.freeze({...K2,...os}),Q2=Object.freeze({...Hf,body:"",hidden:!1}),J2=Object.freeze({width:null,height:null}),tw=Object.freeze({...J2,...os}),ew=(e,t,r,i="")=>{const o=e.split(":");if(e.slice(0,1)==="@"){if(o.length<2||o.length>3)return null;i=o.shift().slice(1)}if(o.length>3||!o.length)return null;if(o.length>1){const n=o.pop(),l=o.pop(),c={provider:o.length>0?o[0]:i,prefix:l,name:n};return na(c)?c:null}const s=o[0],a=s.split("-");if(a.length>1){const n={provider:i,prefix:a.shift(),name:a.join("-")};return na(n)?n:null}if(r&&i===""){const n={provider:i,prefix:"",name:s};return na(n,r)?n:null}return null},na=(e,t)=>e?!!((t&&e.prefix===""||e.prefix)&&e.name):!1;function rw(e,t){const r={};!e.hFlip!=!t.hFlip&&(r.hFlip=!0),!e.vFlip!=!t.vFlip&&(r.vFlip=!0);const i=((e.rotate||0)+(t.rotate||0))%4;return i&&(r.rotate=i),r}function Nh(e,t){const r=rw(e,t);for(const i in Q2)i in os?i in e&&!(i in r)&&(r[i]=os[i]):i in t?r[i]=t[i]:i in e&&(r[i]=e[i]);return r}function iw(e,t){const r=e.icons,i=e.aliases||Object.create(null),o=Object.create(null);function s(a){if(r[a])return o[a]=[];if(!(a in o)){o[a]=null;const n=i[a]&&i[a].parent,l=n&&s(n);l&&(o[a]=[n].concat(l))}return o[a]}return(t||Object.keys(r).concat(Object.keys(i))).forEach(s),o}function qh(e,t,r){const i=e.icons,o=e.aliases||Object.create(null);let s={};function a(n){s=Nh(i[n]||o[n],s)}return a(t),r.forEach(a),Nh(e,s)}function ow(e,t){if(e.icons[t])return qh(e,t,[]);const r=iw(e,[t])[t];return r?qh(e,t,r):null}const sw=/(-?[0-9.]*[0-9]+[0-9.]*)/g,aw=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function Wh(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;const i=e.split(sw);if(i===null||!i.length)return e;const o=[];let s=i.shift(),a=aw.test(s);for(;;){if(a){const n=parseFloat(s);isNaN(n)?o.push(s):o.push(Math.ceil(n*t*r)/r)}else o.push(s);if(s=i.shift(),s===void 0)return o.join("");a=!a}}function nw(e,t="defs"){let r="";const i=e.indexOf("<"+t);for(;i>=0;){const o=e.indexOf(">",i),s=e.indexOf("",s);if(a===-1)break;r+=e.slice(o+1,s).trim(),e=e.slice(0,i).trim()+e.slice(a+1)}return{defs:r,content:e}}function lw(e,t){return e?""+e+""+t:t}function hw(e,t,r){const i=nw(e);return lw(i.defs,t+i.content+r)}const cw=e=>e==="unset"||e==="undefined"||e==="none";function dw(e,t){const r={...Hf,...e},i={...tw,...t},o={left:r.left,top:r.top,width:r.width,height:r.height};let s=r.body;[r,i].forEach(m=>{const y=[],C=m.hFlip,b=m.vFlip;let k=m.rotate;C?b?k+=2:(y.push("translate("+(o.width+o.left).toString()+" "+(0-o.top).toString()+")"),y.push("scale(-1 1)"),o.top=o.left=0):b&&(y.push("translate("+(0-o.left).toString()+" "+(o.height+o.top).toString()+")"),y.push("scale(1 -1)"),o.top=o.left=0);let T;switch(k<0&&(k-=Math.floor(k/4)*4),k=k%4,k){case 1:T=o.height/2+o.top,y.unshift("rotate(90 "+T.toString()+" "+T.toString()+")");break;case 2:y.unshift("rotate(180 "+(o.width/2+o.left).toString()+" "+(o.height/2+o.top).toString()+")");break;case 3:T=o.width/2+o.left,y.unshift("rotate(-90 "+T.toString()+" "+T.toString()+")");break}k%2===1&&(o.left!==o.top&&(T=o.left,o.left=o.top,o.top=T),o.width!==o.height&&(T=o.width,o.width=o.height,o.height=T)),y.length&&(s=hw(s,'',""))});const a=i.width,n=i.height,l=o.width,c=o.height;let h,d;a===null?(d=n===null?"1em":n==="auto"?c:n,h=Wh(d,l/c)):(h=a==="auto"?l:a,d=n===null?Wh(h,c/l):n==="auto"?c:n);const f={},u=(m,y)=>{cw(y)||(f[m]=y.toString())};u("width",h),u("height",d);const g=[o.left,o.top,l,c];return f.viewBox=g.join(" "),{attributes:f,viewBox:g,body:s}}const uw=/\sid="(\S+)"/g,zh=new Map;function fw(e){e=e.replace(/[0-9]+$/,"")||"a";const t=zh.get(e)||0;return zh.set(e,t+1),t?`${e}${t}`:e}function pw(e){const t=[];let r;for(;r=uw.exec(e);)t.push(r[1]);if(!t.length)return e;const i="suffix"+(Math.random()*16777216|Date.now()).toString(16);return t.forEach(o=>{const s=fw(o),a=o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+a+')([")]|\\.[a-z])',"g"),"$1"+s+i+"$3")}),e=e.replace(new RegExp(i,"g"),""),e}function gw(e,t){let r=e.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const i in t)r+=" "+i+'="'+t[i]+'"';return'"+e+""}var mw={body:'?',height:80,width:80},Qa=new Map,Yf=new Map,yw=p(e=>{for(const t of e){if(!t.name)throw new Error('Invalid icon loader. Must have a "name" property with non-empty string value.');if(q.debug("Registering icon pack:",t.name),"loader"in t)Yf.set(t.name,t.loader);else if("icons"in t)Qa.set(t.name,t.icons);else throw q.error("Invalid icon loader:",t),new Error('Invalid icon loader. Must have either "icons" or "loader" property.')}},"registerIconPacks"),Uf=p(async(e,t)=>{const r=ew(e,!0,t!==void 0);if(!r)throw new Error(`Invalid icon name: ${e}`);const i=r.prefix||t;if(!i)throw new Error(`Icon name must contain a prefix: ${e}`);let o=Qa.get(i);if(!o){const a=Yf.get(i);if(!a)throw new Error(`Icon set not found: ${r.prefix}`);try{o={...await a(),prefix:i},Qa.set(i,o)}catch(n){throw q.error(n),new Error(`Failed to load icon set: ${r.prefix}`)}}const s=ow(o,r.name);if(!s)throw new Error(`Icon not found: ${e}`);return s},"getRegisteredIconData"),Cw=p(async e=>{try{return await Uf(e),!0}catch{return!1}},"isIconAvailable"),eo=p(async(e,t,r)=>{let i;try{i=await Uf(e,t?.fallbackPrefix)}catch(a){q.error(a),i=mw}const o=dw(i,t),s=gw(pw(o.body),{...o.attributes,...r});return be(s,vt())},"getIconSVG");function rl(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Ar=rl();function jf(e){Ar=e}var Ii={exec:()=>null};function xt(e,t=""){let r=typeof e=="string"?e:e.source,i={replace:(o,s)=>{let a=typeof s=="string"?s:s.source;return a=a.replace(te.caret,"$1"),r=r.replace(o,a),i},getRegex:()=>new RegExp(r,t)};return i}var xw=(()=>{try{return!!new RegExp("(?<=1)(?/,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:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i")},bw=/^(?:[ \t]*(?:\n|$))+/,kw=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,ww=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,ro=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Tw=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,il=/(?:[*+-]|\d{1,9}[.)])/,Gf=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Xf=xt(Gf).replace(/bull/g,il).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(),Sw=xt(Gf).replace(/bull/g,il).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(),ol=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,_w=/^[^\n]+/,sl=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Bw=xt(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",sl).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),vw=xt(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,il).getRegex(),_s="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",al=/|$))/,Lw=xt("^ {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",al).replace("tag",_s).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Vf=xt(ol).replace("hr",ro).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",_s).getRegex(),Fw=xt(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Vf).getRegex(),nl={blockquote:Fw,code:kw,def:Bw,fences:ww,heading:Tw,hr:ro,html:Lw,lheading:Xf,list:vw,newline:bw,paragraph:Vf,table:Ii,text:_w},Hh=xt("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",ro).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",_s).getRegex(),Aw={...nl,lheading:Sw,table:Hh,paragraph:xt(ol).replace("hr",ro).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Hh).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",_s).getRegex()},Ew={...nl,html:xt(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",al).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:Ii,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:xt(ol).replace("hr",ro).replace("heading",` *#{1,6} *[^ ]`).replace("lheading",Xf).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Mw=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,$w=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Zf=/^( {2,}|\\)\n(?!\s*$)/,Ow=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",xw?"(?`+)[^`]+\k(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),Jf=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,Nw=xt(Jf,"u").replace(/punct/g,Bs).getRegex(),qw=xt(Jf,"u").replace(/punct/g,Qf).getRegex(),tp="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Ww=xt(tp,"gu").replace(/notPunctSpace/g,Kf).replace(/punctSpace/g,ll).replace(/punct/g,Bs).getRegex(),zw=xt(tp,"gu").replace(/notPunctSpace/g,Pw).replace(/punctSpace/g,Dw).replace(/punct/g,Qf).getRegex(),Hw=xt("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Kf).replace(/punctSpace/g,ll).replace(/punct/g,Bs).getRegex(),Yw=xt(/\\(punct)/,"gu").replace(/punct/g,Bs).getRegex(),Uw=xt(/^<(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(),jw=xt(al).replace("(?:-->|$)","-->").getRegex(),Gw=xt("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",jw).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),ss=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,Xw=xt(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",ss).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),ep=xt(/^!?\[(label)\]\[(ref)\]/).replace("label",ss).replace("ref",sl).getRegex(),rp=xt(/^!?\[(ref)\](?:\[\])?/).replace("ref",sl).getRegex(),Vw=xt("reflink|nolink(?!\\()","g").replace("reflink",ep).replace("nolink",rp).getRegex(),Yh=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,hl={_backpedal:Ii,anyPunctuation:Yw,autolink:Uw,blockSkip:Rw,br:Zf,code:$w,del:Ii,emStrongLDelim:Nw,emStrongRDelimAst:Ww,emStrongRDelimUnd:Hw,escape:Mw,link:Xw,nolink:rp,punctuation:Iw,reflink:ep,reflinkSearch:Vw,tag:Gw,text:Ow,url:Ii},Zw={...hl,link:xt(/^!?\[(label)\]\((.*?)\)/).replace("label",ss).getRegex(),reflink:xt(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",ss).getRegex()},Ja={...hl,emStrongRDelimAst:zw,emStrongLDelim:qw,url:xt(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Yh).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:xt(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},Uh=e=>Qw[e];function ve(e,t){if(t){if(te.escapeTest.test(e))return e.replace(te.escapeReplace,Uh)}else if(te.escapeTestNoEncode.test(e))return e.replace(te.escapeReplaceNoEncode,Uh);return e}function jh(e){try{e=encodeURI(e).replace(te.percentDecode,"%")}catch{return null}return e}function Gh(e,t){let r=e.replace(te.findPipe,(s,a,n)=>{let l=!1,c=a;for(;--c>=0&&n[c]==="\\";)l=!l;return l?"|":" |"}),i=r.split(te.splitPipe),o=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 Xh(e,t,r,i,o){let s=t.href,a=t.title||null,n=e[1].replace(o.other.outputLinkReplace,"$1");i.state.inLink=!0;let l={type:e[0].charAt(0)==="!"?"image":"link",raw:r,href:s,title:a,text:n,tokens:i.inlineTokens(n)};return i.state.inLink=!1,l}function tT(e,t,r){let i=e.match(r.other.indentCodeCompensation);if(i===null)return t;let o=i[1];return t.split(` `).map(s=>{let a=s.match(r.other.beginningSpace);if(a===null)return s;let[n]=a;return n.length>=o.length?s.slice(o.length):s}).join(` `)}var as=class{options;rules;lexer;constructor(t){this.options=t||Ar}space(t){let r=this.rules.block.newline.exec(t);if(r&&r[0].length>0)return{type:"space",raw:r[0]}}code(t){let r=this.rules.block.code.exec(t);if(r){let i=r[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:r[0],codeBlockStyle:"indented",text:this.options.pedantic?i:yi(i,` @@ -230,7 +230,7 @@ Please report this to https://github.com/markedjs/marked.`,t){let o="

        An error `);return ip(i)}p(op,"preprocessMarkdown");function sp(e){return e.split(/\\n|\n|/gi).map(t=>t.trim().match(/<[^>]+>|[^\s<>]+/g)?.map(r=>({content:r,type:"normal"}))??[])}p(sp,"nonMarkdownToLines");function ap(e,t={}){const r=op(e,t),i=wt.lexer(r),o=[[]];let s=0;function a(n,l="normal"){n.type==="text"?n.text.split(` `).forEach((h,d)=>{d!==0&&(s++,o.push([])),h.split(" ").forEach(f=>{f=f.replace(/'/g,"'"),f&&o[s].push({content:f,type:l})})}):n.type==="strong"||n.type==="em"?n.tokens.forEach(c=>{a(c,n.type)}):n.type==="html"&&o[s].push({content:n.text,type:"normal"})}return p(a,"processNode"),i.forEach(n=>{n.type==="paragraph"?n.tokens?.forEach(l=>{a(l)}):n.type==="html"?o[s].push({content:n.text,type:"normal"}):o[s].push({content:n.raw,type:"normal"})}),o}p(ap,"markdownToLines");function np(e){return e?`

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

        `:""}p(np,"nonMarkdownToHTML");function lp(e,{markdownAutoWrap:t}={}){const r=wt.lexer(e);function i(o){return o.type==="text"?t===!1?o.text.replace(/\n */g,"
        ").replace(/ /g," "):o.text.replace(/\n */g,"
        "):o.type==="strong"?`${o.tokens?.map(i).join("")}`:o.type==="em"?`${o.tokens?.map(i).join("")}`:o.type==="paragraph"?`

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

        `:o.type==="space"?"":o.type==="html"?`${o.text}`:o.type==="escape"?o.text:(q.warn(`Unsupported markdown: ${o.type}`),o.raw)}return p(i,"output"),r.map(i).join("")}p(lp,"markdownToHTML");function hp(e){return Intl.Segmenter?[...new Intl.Segmenter().segment(e)].map(t=>t.segment):[...e]}p(hp,"splitTextToChars");function cp(e,t){const r=hp(t.content);return dl(e,[],r,t.type)}p(cp,"splitWordToFitWidth");function dl(e,t,r,i){if(r.length===0)return[{content:t.join(""),type:i},{content:"",type:i}];const[o,...s]=r,a=[...t,o];return e([{content:a.join(""),type:i}])?dl(e,a,s,i):(t.length===0&&o&&(t.push(o),r.shift()),[{content:t.join(""),type:i},{content:r.join(""),type:i}])}p(dl,"splitWordToFitWidthRecursion");function dp(e,t){if(e.some(({content:r})=>r.includes(` `)))throw new Error("splitLineToFitWidth does not support newlines in the line");return ls(e,t)}p(dp,"splitLineToFitWidth");function ls(e,t,r=[],i=[]){if(e.length===0)return i.length>0&&r.push(i),r.length>0?r:[];let o="";e[0].content===" "&&(o=" ",e.shift());const s=e.shift()??{content:" ",type:"normal"},a=[...i];if(o!==""&&a.push({content:o,type:"normal"}),a.push(s),t(a))return ls(e,t,r,a);if(i.length>0)r.push(i),e.unshift(s);else if(s.content){const[n,l]=cp(t,s);r.push([n]),l.content&&e.unshift(l)}return ls(e,t,r)}p(ls,"splitLineToFitWidthRecursion");function rn(e,t){t&&e.attr("style",t)}p(rn,"applyStyle");var Vh=16384;async function up(e,t,r,i,o=!1,s=vt()){const a=e.append("foreignObject");a.attr("width",`${Math.min(10*r,Vh)}px`),a.attr("height",`${Math.min(10*r,Vh)}px`);const n=a.append("xhtml:div"),l=Pi(t.label)?await jc(t.label.replace(Zi.lineBreakRegex,` -`),s):be(t.label,s),c=t.isNode?"nodeLabel":"edgeLabel",h=n.append("span");h.html(l),rn(h,t.labelStyle),h.attr("class",`${c} ${i}`),rn(n,t.labelStyle),n.style("display","table-cell"),n.style("white-space","nowrap"),n.style("line-height","1.5"),r!==Number.POSITIVE_INFINITY&&(n.style("max-width",r+"px"),n.style("text-align","center")),n.attr("xmlns","http://www.w3.org/1999/xhtml"),o&&n.attr("class","labelBkg");let d=n.node().getBoundingClientRect();return d.width===r&&(n.style("display","table"),n.style("white-space","break-spaces"),n.style("width",r+"px"),d=n.node().getBoundingClientRect()),a.node()}p(up,"addHtmlSpan");function vs(e,t,r,i=!1){const o=e.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",t*r-.1+"em").attr("dy",r+"em");return i&&o.attr("text-anchor","middle"),o}p(vs,"createTspan");function fp(e,t,r){const i=e.append("text"),o=vs(i,1,t);Ls(o,r);const s=o.node().getComputedTextLength();return i.remove(),s}p(fp,"computeWidthOfText");function rT(e,t,r){const i=e.append("text"),o=vs(i,1,t);Ls(o,[{content:r,type:"normal"}]);const s=o.node()?.getBoundingClientRect();return s&&i.remove(),s}p(rT,"computeDimensionOfText");function pp(e,t,r,i=!1,o=!1){const a=t.append("g"),n=a.insert("rect").attr("class","background").attr("style","stroke: none"),l=a.append("text").attr("y","-10.1");o&&l.attr("text-anchor","middle");let c=0;for(const h of r){const d=p(u=>fp(a,1.1,u)<=e,"checkWidth"),f=d(h)?[h]:dp(h,d);for(const u of f){const g=vs(l,c,1.1,o);Ls(g,u),c++}}if(i){const h=l.node().getBBox(),d=2;return n.attr("x",h.x-d).attr("y",h.y-d).attr("width",h.width+2*d).attr("height",h.height+2*d),a.node()}else return l.node()}p(pp,"createFormattedText");function on(e){const 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}})}p(on,"decodeHTMLEntities");function Ls(e,t){e.text(""),t.forEach((r,i)=>{const o=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?o.text(on(r.content)):o.text(" "+on(r.content))})}p(Ls,"updateTextContentAndStyles");async function gp(e,t={}){const r=[];e.replace(/(fa[bklrs]?):fa-([\w-]+)/g,(o,s,a)=>(r.push((async()=>{const n=`${s}:${a}`;return await Cw(n)?await eo(n,void 0,{class:"label-icon"}):``})()),o));const i=await Promise.all(r);return e.replace(/(fa[bklrs]?):fa-([\w-]+)/g,()=>i.shift()??"")}p(gp,"replaceIconSubstring");var Pe=p(async(e,t="",{style:r="",isTitle:i=!1,classes:o="",useHtmlLabels:s=!0,markdown:a=!0,isNode:n=!0,width:l=200,addSvgBackground:c=!1}={},h)=>{if(q.debug("XYZ createText",t,r,i,o,s,n,"addSvgBackground: ",c),s){const d=a?lp(t,h):np(t),f=await gp(vr(d),h),u=t.replace(/\\\\/g,"\\"),g={isNode:n,label:Pi(t)?u:f,labelStyle:r.replace("fill:","color:")};return await up(e,g,l,o,c,h)}else{const d=vr(t.replace(//g,"
        ")),f=a?ap(d.replace("
        ","
        "),h):sp(d),u=pp(l,e,f,t?c:!1,!n);if(n){/stroke:/.exec(r)&&(r=r.replace("stroke:","lineColor:"));const g=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");ct(u).attr("style",g)}else{const g=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:");ct(u).select("rect").attr("style",g.replace(/background:/g,"fill:"));const m=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");ct(u).select("text").attr("style",m)}return i?ct(u).selectAll("tspan.text-outer-tspan").classed("title-row",!0):ct(u).selectAll("tspan.text-outer-tspan").classed("row",!0),u}},"createText");function la(e,t,r){if(e&&e.length){const[i,o]=t,s=Math.PI/180*r,a=Math.cos(s),n=Math.sin(s);for(const l of e){const[c,h]=l;l[0]=(c-i)*a-(h-o)*n+i,l[1]=(c-i)*n+(h-o)*a+o}}}function iT(e,t){return e[0]===t[0]&&e[1]===t[1]}function oT(e,t,r,i=1){const o=r,s=Math.max(t,.1),a=e[0]&&e[0][0]&&typeof e[0][0]=="number"?[e]:e,n=[0,0];if(o)for(const c of a)la(c,n,o);const l=(function(c,h,d){const f=[];for(const b of c){const k=[...b];iT(k[0],k[k.length-1])||k.push([k[0][0],k[0][1]]),k.length>2&&f.push(k)}const u=[];h=Math.max(h,.1);const g=[];for(const b of f)for(let k=0;kb.ymink.ymin?1:b.xk.x?1:b.ymax===k.ymax?0:(b.ymax-k.ymax)/Math.abs(b.ymax-k.ymax))),!g.length)return u;let m=[],y=g[0].ymin,C=0;for(;m.length||g.length;){if(g.length){let b=-1;for(let k=0;ky);k++)b=k;g.splice(0,b+1).forEach((k=>{m.push({s:y,edge:k})}))}if(m=m.filter((b=>!(b.edge.ymax<=y))),m.sort(((b,k)=>b.edge.x===k.edge.x?0:(b.edge.x-k.edge.x)/Math.abs(b.edge.x-k.edge.x))),(d!==1||C%h==0)&&m.length>1)for(let b=0;b=m.length)break;const T=m[b].edge,S=m[k].edge;u.push([[Math.round(T.x),y],[Math.round(S.x),y]])}y+=d,m.forEach((b=>{b.edge.x=b.edge.x+d*b.edge.islope})),C++}return u})(a,s,i);if(o){for(const c of a)la(c,n,-o);(function(c,h,d){const f=[];c.forEach((u=>f.push(...u))),la(f,h,d)})(l,n,-o)}return l}function io(e,t){var r;const i=t.hachureAngle+90;let o=t.hachureGap;o<0&&(o=4*t.strokeWidth),o=Math.round(Math.max(o,.1));let s=1;return t.roughness>=1&&(((r=t.randomizer)===null||r===void 0?void 0:r.next())||Math.random())>.7&&(s=o),oT(e,o,i,s||1)}class ul{constructor(t){this.helper=t}fillPolygons(t,r){return this._fillPolygons(t,r)}_fillPolygons(t,r){const i=io(t,r);return{type:"fillSketch",ops:this.renderLines(i,r)}}renderLines(t,r){const i=[];for(const o of t)i.push(...this.helper.doubleLineOps(o[0][0],o[0][1],o[1][0],o[1][1],r));return i}}function Fs(e){const t=e[0],r=e[1];return Math.sqrt(Math.pow(t[0]-r[0],2)+Math.pow(t[1]-r[1],2))}class sT extends ul{fillPolygons(t,r){let i=r.hachureGap;i<0&&(i=4*r.strokeWidth),i=Math.max(i,.1);const o=io(t,Object.assign({},r,{hachureGap:i})),s=Math.PI/180*r.hachureAngle,a=[],n=.5*i*Math.cos(s),l=.5*i*Math.sin(s);for(const[c,h]of o)Fs([c,h])&&a.push([[c[0]-n,c[1]+l],[...h]],[[c[0]+n,c[1]-l],[...h]]);return{type:"fillSketch",ops:this.renderLines(a,r)}}}class aT extends ul{fillPolygons(t,r){const i=this._fillPolygons(t,r),o=Object.assign({},r,{hachureAngle:r.hachureAngle+90}),s=this._fillPolygons(t,o);return i.ops=i.ops.concat(s.ops),i}}class nT{constructor(t){this.helper=t}fillPolygons(t,r){const i=io(t,r=Object.assign({},r,{hachureAngle:0}));return this.dotsOnLines(i,r)}dotsOnLines(t,r){const i=[];let o=r.hachureGap;o<0&&(o=4*r.strokeWidth),o=Math.max(o,.1);let s=r.fillWeight;s<0&&(s=r.strokeWidth/2);const a=o/4;for(const n of t){const l=Fs(n),c=l/o,h=Math.ceil(c)-1,d=l-h*o,f=(n[0][0]+n[1][0])/2-o/4,u=Math.min(n[0][1],n[1][1]);for(let g=0;g{const n=Fs(a),l=Math.floor(n/(i+o)),c=(n+o-l*(i+o))/2;let h=a[0],d=a[1];h[0]>d[0]&&(h=a[1],d=a[0]);const f=Math.atan((d[1]-h[1])/(d[0]-h[0]));for(let u=0;u{const a=Fs(s),n=Math.round(a/(2*r));let l=s[0],c=s[1];l[0]>c[0]&&(l=s[1],c=s[0]);const h=Math.atan((c[1]-l[1])/(c[0]-l[0]));for(let d=0;dh%2?c+r:c+t));s.push({key:"C",data:l}),t=l[4],r=l[5];break}case"Q":s.push({key:"Q",data:[...n]}),t=n[2],r=n[3];break;case"q":{const l=n.map(((c,h)=>h%2?c+r:c+t));s.push({key:"Q",data:l}),t=l[2],r=l[3];break}case"A":s.push({key:"A",data:[...n]}),t=n[5],r=n[6];break;case"a":t+=n[5],r+=n[6],s.push({key:"A",data:[n[0],n[1],n[2],n[3],n[4],t,r]});break;case"H":s.push({key:"H",data:[...n]}),t=n[0];break;case"h":t+=n[0],s.push({key:"H",data:[t]});break;case"V":s.push({key:"V",data:[...n]}),r=n[0];break;case"v":r+=n[0],s.push({key:"V",data:[r]});break;case"S":s.push({key:"S",data:[...n]}),t=n[2],r=n[3];break;case"s":{const l=n.map(((c,h)=>h%2?c+r:c+t));s.push({key:"S",data:l}),t=l[2],r=l[3];break}case"T":s.push({key:"T",data:[...n]}),t=n[0],r=n[1];break;case"t":t+=n[0],r+=n[1],s.push({key:"T",data:[t,r]});break;case"Z":case"z":s.push({key:"Z",data:[]}),t=i,r=o}return s}function yp(e){const t=[];let r="",i=0,o=0,s=0,a=0,n=0,l=0;for(const{key:c,data:h}of e){switch(c){case"M":t.push({key:"M",data:[...h]}),[i,o]=h,[s,a]=h;break;case"C":t.push({key:"C",data:[...h]}),i=h[4],o=h[5],n=h[2],l=h[3];break;case"L":t.push({key:"L",data:[...h]}),[i,o]=h;break;case"H":i=h[0],t.push({key:"L",data:[i,o]});break;case"V":o=h[0],t.push({key:"L",data:[i,o]});break;case"S":{let d=0,f=0;r==="C"||r==="S"?(d=i+(i-n),f=o+(o-l)):(d=i,f=o),t.push({key:"C",data:[d,f,...h]}),n=h[0],l=h[1],i=h[2],o=h[3];break}case"T":{const[d,f]=h;let u=0,g=0;r==="Q"||r==="T"?(u=i+(i-n),g=o+(o-l)):(u=i,g=o);const m=i+2*(u-i)/3,y=o+2*(g-o)/3,C=d+2*(u-d)/3,b=f+2*(g-f)/3;t.push({key:"C",data:[m,y,C,b,d,f]}),n=u,l=g,i=d,o=f;break}case"Q":{const[d,f,u,g]=h,m=i+2*(d-i)/3,y=o+2*(f-o)/3,C=u+2*(d-u)/3,b=g+2*(f-g)/3;t.push({key:"C",data:[m,y,C,b,u,g]}),n=d,l=f,i=u,o=g;break}case"A":{const d=Math.abs(h[0]),f=Math.abs(h[1]),u=h[2],g=h[3],m=h[4],y=h[5],C=h[6];d===0||f===0?(t.push({key:"C",data:[i,o,y,C,y,C]}),i=y,o=C):(i!==y||o!==C)&&(Cp(i,o,y,C,d,f,u,g,m).forEach((function(b){t.push({key:"C",data:b})})),i=y,o=C);break}case"Z":t.push({key:"Z",data:[]}),i=s,o=a}r=c}return t}function Ci(e,t,r){return[e*Math.cos(r)-t*Math.sin(r),e*Math.sin(r)+t*Math.cos(r)]}function Cp(e,t,r,i,o,s,a,n,l,c){const h=(d=a,Math.PI*d/180);var d;let f=[],u=0,g=0,m=0,y=0;if(c)[u,g,m,y]=c;else{[e,t]=Ci(e,t,-h),[r,i]=Ci(r,i,-h);const W=(e-r)/2,$=(t-i)/2;let A=W*W/(o*o)+$*$/(s*s);A>1&&(A=Math.sqrt(A),o*=A,s*=A);const F=o*o,D=s*s,M=F*D-F*$*$-D*W*W,H=F*$*$+D*W*W,Y=(n===l?-1:1)*Math.sqrt(Math.abs(M/H));m=Y*o*$/s+(e+r)/2,y=Y*-s*W/o+(t+i)/2,u=Math.asin(parseFloat(((t-y)/s).toFixed(9))),g=Math.asin(parseFloat(((i-y)/s).toFixed(9))),eg&&(u-=2*Math.PI),!l&&g>u&&(g-=2*Math.PI)}let C=g-u;if(Math.abs(C)>120*Math.PI/180){const W=g,$=r,A=i;g=l&&g>u?u+120*Math.PI/180*1:u+120*Math.PI/180*-1,f=Cp(r=m+o*Math.cos(g),i=y+s*Math.sin(g),$,A,o,s,a,0,l,[g,W,m,y])}C=g-u;const b=Math.cos(u),k=Math.sin(u),T=Math.cos(g),S=Math.sin(g),_=Math.tan(C/4),L=4/3*o*_,v=4/3*s*_,N=[e,t],R=[e+L*k,t-v*b],P=[r+L*S,i-v*T],z=[r,i];if(R[0]=2*N[0]-R[0],R[1]=2*N[1]-R[1],c)return[R,P,z].concat(f);{f=[R,P,z].concat(f);const W=[];for(let $=0;$2){const o=[];for(let s=0;s2*Math.PI&&(u=0,g=2*Math.PI);const m=2*Math.PI/l.curveStepCount,y=Math.min(m/2,(g-u)/2),C=rc(y,c,h,d,f,u,g,1,l);if(!l.disableMultiStroke){const b=rc(y,c,h,d,f,u,g,1.5,l);C.push(...b)}return a&&(n?C.push(...lr(c,h,c+d*Math.cos(u),h+f*Math.sin(u),l),...lr(c,h,c+d*Math.cos(g),h+f*Math.sin(g),l)):C.push({op:"lineTo",data:[c,h]},{op:"lineTo",data:[c+d*Math.cos(u),h+f*Math.sin(u)]})),{type:"path",ops:C}}function Jh(e,t){const r=yp(mp(fl(e))),i=[];let o=[0,0],s=[0,0];for(const{key:a,data:n}of r)switch(a){case"M":s=[n[0],n[1]],o=[n[0],n[1]];break;case"L":i.push(...lr(s[0],s[1],n[0],n[1],t)),s=[n[0],n[1]];break;case"C":{const[l,c,h,d,f,u]=n;i.push(...pT(l,c,h,d,f,u,s,t)),s=[f,u];break}case"Z":i.push(...lr(s[0],s[1],o[0],o[1],t)),s=[o[0],o[1]]}return{type:"path",ops:i}}function da(e,t){const r=[];for(const i of e)if(i.length){const o=t.maxRandomnessOffset||0,s=i.length;if(s>2){r.push({op:"move",data:[i[0][0]+ot(o,t),i[0][1]+ot(o,t)]});for(let a=1;a500?.4:-.0016668*l+1.233334;let h=o.maxRandomnessOffset||0;h*h*100>n&&(h=l/10);const d=h/2,f=.2+.2*kp(o);let u=o.bowing*o.maxRandomnessOffset*(i-t)/200,g=o.bowing*o.maxRandomnessOffset*(e-r)/200;u=ot(u,o,c),g=ot(g,o,c);const m=[],y=()=>ot(d,o,c),C=()=>ot(h,o,c),b=o.preserveVertices;return a?m.push({op:"move",data:[e+(b?0:y()),t+(b?0:y())]}):m.push({op:"move",data:[e+(b?0:ot(h,o,c)),t+(b?0:ot(h,o,c))]}),a?m.push({op:"bcurveTo",data:[u+e+(r-e)*f+y(),g+t+(i-t)*f+y(),u+e+2*(r-e)*f+y(),g+t+2*(i-t)*f+y(),r+(b?0:y()),i+(b?0:y())]}):m.push({op:"bcurveTo",data:[u+e+(r-e)*f+C(),g+t+(i-t)*f+C(),u+e+2*(r-e)*f+C(),g+t+2*(i-t)*f+C(),r+(b?0:C()),i+(b?0:C())]}),m}function bo(e,t,r){if(!e.length)return[];const i=[];i.push([e[0][0]+ot(t,r),e[0][1]+ot(t,r)]),i.push([e[0][0]+ot(t,r),e[0][1]+ot(t,r)]);for(let o=1;o3){const s=[],a=1-r.curveTightness;o.push({op:"move",data:[e[1][0],e[1][1]]});for(let n=1;n+21&&o.push(n)):o.push(n),o.push(e[t+3])}else{const l=e[t+0],c=e[t+1],h=e[t+2],d=e[t+3],f=yr(l,c,.5),u=yr(c,h,.5),g=yr(h,d,.5),m=yr(f,u,.5),y=yr(u,g,.5),C=yr(m,y,.5);nn([l,f,m,C],0,r,o),nn([C,y,g,d],0,r,o)}var s,a;return o}function mT(e,t){return ds(e,0,e.length,t)}function ds(e,t,r,i,o){const s=o||[],a=e[t],n=e[r-1];let l=0,c=1;for(let h=t+1;hl&&(l=d,c=h)}return Math.sqrt(l)>i?(ds(e,t,c+1,i,s),ds(e,c,r,i,s)):(s.length||s.push(a),s.push(n)),s}function ua(e,t=.15,r){const i=[],o=(e.length-1)/3;for(let s=0;s0?ds(i,0,i.length,r):i}const ae="none";class us{constructor(t){this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:"#000",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:"hachure",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1,fillShapeRoughnessGain:.8},this.config=t||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}static newSeed(){return Math.floor(Math.random()*2**31)}_o(t){return t?Object.assign({},this.defaultOptions,t):this.defaultOptions}_d(t,r,i){return{shape:t,sets:r||[],options:i||this.defaultOptions}}line(t,r,i,o,s){const a=this._o(s);return this._d("line",[xp(t,r,i,o,a)],a)}rectangle(t,r,i,o,s){const a=this._o(s),n=[],l=fT(t,r,i,o,a);if(a.fill){const c=[[t,r],[t+i,r],[t+i,r+o],[t,r+o]];a.fillStyle==="solid"?n.push(da([c],a)):n.push(qr([c],a))}return a.stroke!==ae&&n.push(l),this._d("rectangle",n,a)}ellipse(t,r,i,o,s){const a=this._o(s),n=[],l=bp(i,o,a),c=sn(t,r,a,l);if(a.fill)if(a.fillStyle==="solid"){const h=sn(t,r,a,l).opset;h.type="fillPath",n.push(h)}else n.push(qr([c.estimatedPoints],a));return a.stroke!==ae&&n.push(c.opset),this._d("ellipse",n,a)}circle(t,r,i,o){const s=this.ellipse(t,r,i,i,o);return s.shape="circle",s}linearPath(t,r){const i=this._o(r);return this._d("linearPath",[Oo(t,!1,i)],i)}arc(t,r,i,o,s,a,n=!1,l){const c=this._o(l),h=[],d=Qh(t,r,i,o,s,a,n,!0,c);if(n&&c.fill)if(c.fillStyle==="solid"){const f=Object.assign({},c);f.disableMultiStroke=!0;const u=Qh(t,r,i,o,s,a,!0,!1,f);u.type="fillPath",h.push(u)}else h.push((function(f,u,g,m,y,C,b){const k=f,T=u;let S=Math.abs(g/2),_=Math.abs(m/2);S+=ot(.01*S,b),_+=ot(.01*_,b);let L=y,v=C;for(;L<0;)L+=2*Math.PI,v+=2*Math.PI;v-L>2*Math.PI&&(L=0,v=2*Math.PI);const N=(v-L)/b.curveStepCount,R=[];for(let P=L;P<=v;P+=N)R.push([k+S*Math.cos(P),T+_*Math.sin(P)]);return R.push([k+S*Math.cos(v),T+_*Math.sin(v)]),R.push([k,T]),qr([R],b)})(t,r,i,o,s,a,c));return c.stroke!==ae&&h.push(d),this._d("arc",h,c)}curve(t,r){const i=this._o(r),o=[],s=Kh(t,i);if(i.fill&&i.fill!==ae)if(i.fillStyle==="solid"){const a=Kh(t,Object.assign(Object.assign({},i),{disableMultiStroke:!0,roughness:i.roughness?i.roughness+i.fillShapeRoughnessGain:0}));o.push({type:"fillPath",ops:this._mergedShape(a.ops)})}else{const a=[],n=t;if(n.length){const l=typeof n[0][0]=="number"?[n]:n;for(const c of l)c.length<3?a.push(...c):c.length===3?a.push(...ua(ic([c[0],c[0],c[1],c[2]]),10,(1+i.roughness)/2)):a.push(...ua(ic(c),10,(1+i.roughness)/2))}a.length&&o.push(qr([a],i))}return i.stroke!==ae&&o.push(s),this._d("curve",o,i)}polygon(t,r){const i=this._o(r),o=[],s=Oo(t,!0,i);return i.fill&&(i.fillStyle==="solid"?o.push(da([t],i)):o.push(qr([t],i))),i.stroke!==ae&&o.push(s),this._d("polygon",o,i)}path(t,r){const i=this._o(r),o=[];if(!t)return this._d("path",o,i);t=(t||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");const s=i.fill&&i.fill!=="transparent"&&i.fill!==ae,a=i.stroke!==ae,n=!!(i.simplification&&i.simplification<1),l=(function(h,d,f){const u=yp(mp(fl(h))),g=[];let m=[],y=[0,0],C=[];const b=()=>{C.length>=4&&m.push(...ua(C,d)),C=[]},k=()=>{b(),m.length&&(g.push(m),m=[])};for(const{key:S,data:_}of u)switch(S){case"M":k(),y=[_[0],_[1]],m.push(y);break;case"L":b(),m.push([_[0],_[1]]);break;case"C":if(!C.length){const L=m.length?m[m.length-1]:y;C.push([L[0],L[1]])}C.push([_[0],_[1]]),C.push([_[2],_[3]]),C.push([_[4],_[5]]);break;case"Z":b(),m.push([y[0],y[1]])}if(k(),!f)return g;const T=[];for(const S of g){const _=mT(S,f);_.length&&T.push(_)}return T})(t,1,n?4-4*(i.simplification||1):(1+i.roughness)/2),c=Jh(t,i);if(s)if(i.fillStyle==="solid")if(l.length===1){const h=Jh(t,Object.assign(Object.assign({},i),{disableMultiStroke:!0,roughness:i.roughness?i.roughness+i.fillShapeRoughnessGain:0}));o.push({type:"fillPath",ops:this._mergedShape(h.ops)})}else o.push(da(l,i));else o.push(qr(l,i));return a&&(n?l.forEach((h=>{o.push(Oo(h,!1,i))})):o.push(c)),this._d("path",o,i)}opsToPath(t,r){let i="";for(const o of t.ops){const s=typeof r=="number"&&r>=0?o.data.map((a=>+a.toFixed(r))):o.data;switch(o.op){case"move":i+=`M${s[0]} ${s[1]} `;break;case"bcurveTo":i+=`C${s[0]} ${s[1]}, ${s[2]} ${s[3]}, ${s[4]} ${s[5]} `;break;case"lineTo":i+=`L${s[0]} ${s[1]} `}}return i.trim()}toPaths(t){const r=t.sets||[],i=t.options||this.defaultOptions,o=[];for(const s of r){let a=null;switch(s.type){case"path":a={d:this.opsToPath(s),stroke:i.stroke,strokeWidth:i.strokeWidth,fill:ae};break;case"fillPath":a={d:this.opsToPath(s),stroke:ae,strokeWidth:0,fill:i.fill||ae};break;case"fillSketch":a=this.fillSketch(s,i)}a&&o.push(a)}return o}fillSketch(t,r){let i=r.fillWeight;return i<0&&(i=r.strokeWidth/2),{d:this.opsToPath(t),stroke:r.fill||ae,strokeWidth:i,fill:ae}}_mergedShape(t){return t.filter(((r,i)=>i===0||r.op!=="move"))}}class yT{constructor(t,r){this.canvas=t,this.ctx=this.canvas.getContext("2d"),this.gen=new us(r)}draw(t){const r=t.sets||[],i=t.options||this.getDefaultOptions(),o=this.ctx,s=t.options.fixedDecimalPlaceDigits;for(const a of r)switch(a.type){case"path":o.save(),o.strokeStyle=i.stroke==="none"?"transparent":i.stroke,o.lineWidth=i.strokeWidth,i.strokeLineDash&&o.setLineDash(i.strokeLineDash),i.strokeLineDashOffset&&(o.lineDashOffset=i.strokeLineDashOffset),this._drawToContext(o,a,s),o.restore();break;case"fillPath":{o.save(),o.fillStyle=i.fill||"";const n=t.shape==="curve"||t.shape==="polygon"||t.shape==="path"?"evenodd":"nonzero";this._drawToContext(o,a,s,n),o.restore();break}case"fillSketch":this.fillSketch(o,a,i)}}fillSketch(t,r,i){let o=i.fillWeight;o<0&&(o=i.strokeWidth/2),t.save(),i.fillLineDash&&t.setLineDash(i.fillLineDash),i.fillLineDashOffset&&(t.lineDashOffset=i.fillLineDashOffset),t.strokeStyle=i.fill||"",t.lineWidth=o,this._drawToContext(t,r,i.fixedDecimalPlaceDigits),t.restore()}_drawToContext(t,r,i,o="nonzero"){t.beginPath();for(const s of r.ops){const a=typeof i=="number"&&i>=0?s.data.map((n=>+n.toFixed(i))):s.data;switch(s.op){case"move":t.moveTo(a[0],a[1]);break;case"bcurveTo":t.bezierCurveTo(a[0],a[1],a[2],a[3],a[4],a[5]);break;case"lineTo":t.lineTo(a[0],a[1])}}r.type==="fillPath"?t.fill(o):t.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(t,r,i,o,s){const a=this.gen.line(t,r,i,o,s);return this.draw(a),a}rectangle(t,r,i,o,s){const a=this.gen.rectangle(t,r,i,o,s);return this.draw(a),a}ellipse(t,r,i,o,s){const a=this.gen.ellipse(t,r,i,o,s);return this.draw(a),a}circle(t,r,i,o){const s=this.gen.circle(t,r,i,o);return this.draw(s),s}linearPath(t,r){const i=this.gen.linearPath(t,r);return this.draw(i),i}polygon(t,r){const i=this.gen.polygon(t,r);return this.draw(i),i}arc(t,r,i,o,s,a,n=!1,l){const c=this.gen.arc(t,r,i,o,s,a,n,l);return this.draw(c),c}curve(t,r){const i=this.gen.curve(t,r);return this.draw(i),i}path(t,r){const i=this.gen.path(t,r);return this.draw(i),i}}const ko="http://www.w3.org/2000/svg";class CT{constructor(t,r){this.svg=t,this.gen=new us(r)}draw(t){const r=t.sets||[],i=t.options||this.getDefaultOptions(),o=this.svg.ownerDocument||window.document,s=o.createElementNS(ko,"g"),a=t.options.fixedDecimalPlaceDigits;for(const n of r){let l=null;switch(n.type){case"path":l=o.createElementNS(ko,"path"),l.setAttribute("d",this.opsToPath(n,a)),l.setAttribute("stroke",i.stroke),l.setAttribute("stroke-width",i.strokeWidth+""),l.setAttribute("fill","none"),i.strokeLineDash&&l.setAttribute("stroke-dasharray",i.strokeLineDash.join(" ").trim()),i.strokeLineDashOffset&&l.setAttribute("stroke-dashoffset",`${i.strokeLineDashOffset}`);break;case"fillPath":l=o.createElementNS(ko,"path"),l.setAttribute("d",this.opsToPath(n,a)),l.setAttribute("stroke","none"),l.setAttribute("stroke-width","0"),l.setAttribute("fill",i.fill||""),t.shape!=="curve"&&t.shape!=="polygon"||l.setAttribute("fill-rule","evenodd");break;case"fillSketch":l=this.fillSketch(o,n,i)}l&&s.appendChild(l)}return s}fillSketch(t,r,i){let o=i.fillWeight;o<0&&(o=i.strokeWidth/2);const s=t.createElementNS(ko,"path");return s.setAttribute("d",this.opsToPath(r,i.fixedDecimalPlaceDigits)),s.setAttribute("stroke",i.fill||""),s.setAttribute("stroke-width",o+""),s.setAttribute("fill","none"),i.fillLineDash&&s.setAttribute("stroke-dasharray",i.fillLineDash.join(" ").trim()),i.fillLineDashOffset&&s.setAttribute("stroke-dashoffset",`${i.fillLineDashOffset}`),s}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(t,r){return this.gen.opsToPath(t,r)}line(t,r,i,o,s){const a=this.gen.line(t,r,i,o,s);return this.draw(a)}rectangle(t,r,i,o,s){const a=this.gen.rectangle(t,r,i,o,s);return this.draw(a)}ellipse(t,r,i,o,s){const a=this.gen.ellipse(t,r,i,o,s);return this.draw(a)}circle(t,r,i,o){const s=this.gen.circle(t,r,i,o);return this.draw(s)}linearPath(t,r){const i=this.gen.linearPath(t,r);return this.draw(i)}polygon(t,r){const i=this.gen.polygon(t,r);return this.draw(i)}arc(t,r,i,o,s,a,n=!1,l){const c=this.gen.arc(t,r,i,o,s,a,n,l);return this.draw(c)}curve(t,r){const i=this.gen.curve(t,r);return this.draw(i)}path(t,r){const i=this.gen.path(t,r);return this.draw(i)}}var Z={canvas:(e,t)=>new yT(e,t),svg:(e,t)=>new CT(e,t),generator:e=>new us(e),newSeed:()=>us.newSeed()},it=p(async(e,t,r)=>{let i;const o=t.useHtmlLabels||Ie(Ct()?.htmlLabels);r?i=r:i="node default";const s=e.insert("g").attr("class",i).attr("id",t.domId||t.id),a=s.insert("g").attr("class","label").attr("style",qt(t.labelStyle));let n;t.label===void 0?n="":n=typeof t.label=="string"?t.label:t.label[0];const l=!!t.icon||!!t.img,c=t.labelType==="markdown",h=await Pe(a,be(vr(n),Ct()),{useHtmlLabels:o,width:t.width||Ct().flowchart?.wrappingWidth,classes:c?"markdown-node-label":"",style:t.labelStyle,addSvgBackground:l,markdown:c},Ct());let d=h.getBBox();const f=(t?.padding??0)/2;if(o){const u=h.children[0],g=ct(h);await zf(u,n),d=u.getBoundingClientRect(),g.attr("width",d.width),g.attr("height",d.height)}return o?a.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"):a.attr("transform","translate(0, "+-d.height/2+")"),t.centerLabel&&a.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),a.insert("rect",":first-child"),{shapeSvg:s,bbox:d,halfPadding:f,label:a}},"labelHelper"),fa=p(async(e,t,r)=>{const i=r.useHtmlLabels??ee(Ct()),o=e.insert("g").attr("class","label").attr("style",r.labelStyle||""),s=await Pe(o,be(vr(t),Ct()),{useHtmlLabels:i,width:r.width||Ct()?.flowchart?.wrappingWidth,style:r.labelStyle,addSvgBackground:!!r.icon||!!r.img});let a=s.getBBox();const n=r.padding/2;if(ee(Ct())){const l=s.children[0],c=ct(s);a=l.getBoundingClientRect(),c.attr("width",a.width),c.attr("height",a.height)}return i?o.attr("transform","translate("+-a.width/2+", "+-a.height/2+")"):o.attr("transform","translate(0, "+-a.height/2+")"),r.centerLabel&&o.attr("transform","translate("+-a.width/2+", "+-a.height/2+")"),o.insert("rect",":first-child"),{shapeSvg:e,bbox:a,halfPadding:n,label:o}},"insertLabel"),Q=p((e,t)=>{const r=t.node().getBBox();e.width=r.width,e.height=r.height},"updateNodeBounds"),rt=p((e,t)=>(e.look==="handDrawn"?"rough-node":"node")+" "+e.cssClasses+" "+(t||""),"getNodeClasses");function gt(e){const t=e.map((r,i)=>`${i===0?"M":"L"}${r.x},${r.y}`);return t.push("Z"),t.join(" ")}p(gt,"createPathFromPoints");function hr(e,t,r,i,o,s){const a=[],l=r-e,c=i-t,h=l/s,d=2*Math.PI/h,f=t+c/2;for(let u=0;u<=50;u++){const g=u/50,m=e+g*l,y=f+o*Math.sin(d*(m-e));a.push({x:m,y})}return a}p(hr,"generateFullSineWavePoints");function ji(e,t,r,i,o,s){const a=[],n=o*Math.PI/180,h=(s*Math.PI/180-n)/(i-1);for(let d=0;dl.tagName==="path"),r=document.createElementNS("http://www.w3.org/2000/svg","path"),i=t.map(l=>l.getAttribute("d")).filter(l=>l!==null).join(" ");r.setAttribute("d",i);const o=t.find(l=>l.getAttribute("fill")!=="none"),s=t.find(l=>l.getAttribute("stroke")!=="none"),a=p((l,c)=>l?.getAttribute(c)??void 0,"getAttr");if(o){const l={fill:a(o,"fill"),"fill-opacity":a(o,"fill-opacity")??"1"};Object.entries(l).forEach(([c,h])=>{h&&r.setAttribute(c,h)})}if(s){const l={stroke:a(s,"stroke"),"stroke-width":a(s,"stroke-width")??"1","stroke-opacity":a(s,"stroke-opacity")??"1"};Object.entries(l).forEach(([c,h])=>{h&&r.setAttribute(c,h)})}const n=document.createElementNS("http://www.w3.org/2000/svg","g");return n.appendChild(r),n}p(ln,"mergePaths");var xT=p((e,t)=>{var r=e.x,i=e.y,o=t.x-r,s=t.y-i,a=e.width/2,n=e.height/2,l,c;return Math.abs(s)*a>Math.abs(o)*n?(s<0&&(n=-n),l=s===0?0:n*o/s,c=n):(o<0&&(a=-a),l=a,c=o===0?0:a*s/o),{x:r+l,y:i+c}},"intersectRect"),Er=xT,bT=p(async(e,t,r,i=!1,o=!1)=>{let s=t||"";typeof s=="object"&&(s=s[0]);const a=Ct(),n=ee(a);return await Pe(e,s,{style:r,isTitle:i,useHtmlLabels:n,markdown:!1,isNode:o,width:Number.POSITIVE_INFINITY},a)},"createLabel"),rr=bT,cr=p((e,t,r,i,o)=>["M",e+o,t,"H",e+r-o,"A",o,o,0,0,1,e+r,t+o,"V",t+i-o,"A",o,o,0,0,1,e+r-o,t+i,"H",e+o,"A",o,o,0,0,1,e,t+i-o,"V",t+o,"A",o,o,0,0,1,e+o,t,"Z"].join(" "),"createRoundedRectPathD"),kT=p(async(e,t)=>{const r=Ct(),{themeVariables:i,handDrawnSeed:o}=r,{clusterBkg:s,clusterBorder:a}=i,n=a,{labelStyles:l,nodeStyles:c,borderStyles:h,backgroundStyles:d}=K(t),f=e.insert("g").attr("class","cluster swimlane "+(t.cssClasses||"")).attr("id",t.id).attr("data-id",t.id).attr("data-et","cluster").attr("data-look",t.look),u=Ie(r.flowchart.htmlLabels),g=t.direction==="LR",m=f.insert("g").attr("class","cluster-label swimlane-label"),y=await Pe(m,t.label,{style:t.labelStyle,useHtmlLabels:u,isNode:!0,width:t.width});let C=y.getBBox();if(u){const W=y.children[0],$=ct(y);C=W.getBoundingClientRect(),$.attr("width",C.width),$.attr("height",C.height)}const b=t.padding??0,k=t.width<=C.width+b?C.width+b:t.width;t.width<=C.width+b?t.diff=(k-t.width)/2-b:t.diff=-b;const T=t.height,S=t.y-T/2,_=t.y+T/2,L=t.x-k/2,v=t.swimlaneContentTop!==void 0?t.swimlaneContentTop:S+T/3,N=g?4:0,R=C.height+2*N;let P,z;if(g){const W=Math.max(R,C.height+2*N),$=L+W,A=Math.max(0,k-W);if(t.look==="handDrawn"){const M=Z.svg(f),H=V(t,{roughness:.7,fill:s,stroke:n,fillWeight:3,seed:o}),Y=V(t,{roughness:.7,fill:"none",stroke:n,seed:o}),G=M.rectangle(L,S,W,T,H);P=f.insert(()=>G,":first-child");const lt=M.rectangle($,S,A,T,Y);z=f.insert(()=>lt,":first-child"),P.select("path:nth-child(2)").attr("style",h.join(";")),P.select("path").attr("style",d.join(";").replace("fill","stroke"))}else P=f.insert("rect",":first-child"),z=f.insert("rect",":first-child"),P.attr("class","swimlane-title").attr("style",c).attr("x",L).attr("y",S).attr("width",W).attr("height",T).attr("fill",s).attr("stroke",n),z.attr("class","swimlane-body").attr("style",c).attr("x",$).attr("y",S).attr("width",A).attr("height",T).attr("fill","none").attr("stroke",n);const F=L+W/2,D=t.y;m.attr("transform",`translate(${F}, ${D}) rotate(-90) translate(${-C.width/2}, ${-C.height/2})`)}else{const W=Math.max(0,v-S),$=Math.min(R,W),A=S+$,F=Math.max(0,_-A),D=t.x-k/2;if(t.look==="handDrawn"){const Y=Z.svg(f),G=V(t,{roughness:.7,fill:s,stroke:n,fillWeight:3,seed:o}),lt=V(t,{roughness:.7,fill:"none",stroke:n,seed:o}),ht=Y.rectangle(D,S,k,$,G);P=f.insert(()=>ht,":first-child");const dt=Y.rectangle(D,A,k,F,lt);z=f.insert(()=>dt,":first-child"),P.select("path:nth-child(2)").attr("style",h.join(";")),P.select("path").attr("style",d.join(";").replace("fill","stroke"))}else P=f.insert("rect",":first-child"),z=f.insert("rect",":first-child"),P.attr("class","swimlane-title").attr("style",c).attr("x",D).attr("y",S).attr("width",k).attr("height",$).attr("fill",s).attr("stroke",n),z.attr("class","swimlane-body").attr("style",c).attr("x",D).attr("y",A).attr("width",k).attr("height",F).attr("fill","none").attr("stroke",n);const M=t.x-C.width/2,H=S+($-C.height)/2;m.attr("transform",`translate(${M}, ${H})`)}if(q.trace("Swimlane data ",t,JSON.stringify(t)),l){const W=m.select("span");W&&W.attr("style",l)}return t.offsetX=0,t.width=k,t.height=T,t.offsetY=C.height-b/2,t.intersect=function(W){return Er(t,W)},{cluster:f,labelBBox:C}},"swimlane"),wp=p(async(e,t)=>{q.info("Creating subgraph rect for ",t.id,t);const r=Ct(),{themeVariables:i,handDrawnSeed:o}=r,{clusterBkg:s,clusterBorder:a}=i,{labelStyles:n,nodeStyles:l,borderStyles:c,backgroundStyles:h}=K(t),d=e.insert("g").attr("class","cluster "+t.cssClasses).attr("id",t.domId).attr("data-look",t.look),f=ee(r),u=d.insert("g").attr("class","cluster-label ");let g;t.labelType==="markdown"?g=await Pe(u,t.label,{style:t.labelStyle,useHtmlLabels:f,isNode:!0,width:t.width}):g=await rr(u,t.label,t.labelStyle||"",!1,!0);let m=g.getBBox();if(ee(r)){const L=g.children[0],v=ct(g);m=L.getBoundingClientRect(),v.attr("width",m.width),v.attr("height",m.height)}const y=t.width<=m.width+t.padding?m.width+t.padding:t.width;t.width<=m.width+t.padding?t.diff=(y-t.width)/2-t.padding:t.diff=-t.padding;const C=t.height,b=t.x-y/2,k=t.y-C/2;q.trace("Data ",t,JSON.stringify(t));let T;if(t.look==="handDrawn"){const L=Z.svg(d),v=V(t,{roughness:.7,fill:s,stroke:a,fillWeight:3,seed:o}),N=L.path(cr(b,k,y,C,0),v);T=d.insert(()=>(q.debug("Rough node insert CXC",N),N),":first-child"),T.select("path:nth-child(2)").attr("style",c.join(";")),T.select("path").attr("style",h.join(";").replace("fill","stroke"))}else T=d.insert("rect",":first-child"),T.attr("style",l).attr("rx",t.rx).attr("ry",t.ry).attr("x",b).attr("y",k).attr("width",y).attr("height",C);const{subGraphTitleTopMargin:S}=el(r);if(u.attr("transform",`translate(${t.x-m.width/2}, ${t.y-t.height/2+S})`),n){const L=u.select("span");L&&L.attr("style",n)}const _=T.node().getBBox();return t.offsetX=0,t.width=_.width,t.height=_.height,t.offsetY=m.height-t.padding/2,t.intersect=function(L){return Er(t,L)},{cluster:d,labelBBox:m}},"rect"),wT=p((e,t)=>{const r=e.insert("g").attr("class","note-cluster").attr("id",t.domId),i=r.insert("rect",":first-child"),o=0*t.padding,s=o/2;i.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-s).attr("y",t.y-t.height/2-s).attr("width",t.width+o).attr("height",t.height+o).attr("fill","none");const a=i.node().getBBox();return t.width=a.width,t.height=a.height,t.intersect=function(n){return Er(t,n)},{cluster:r,labelBBox:{width:0,height:0}}},"noteGroup"),TT=p(async(e,t)=>{const r=Ct(),{themeVariables:i,handDrawnSeed:o}=r,{altBackground:s,compositeBackground:a,compositeTitleBackground:n,nodeBorder:l}=i,c=e.insert("g").attr("class",t.cssClasses).attr("id",t.domId).attr("data-id",t.id).attr("data-look",t.look),h=c.insert("g",":first-child"),d=c.insert("g").attr("class","cluster-label");let f=c.append("rect");const u=await rr(d,t.label,t.labelStyle,void 0,!0);let g=u.getBBox();if(ee(r)){const N=u.children[0],R=ct(u);g=N.getBoundingClientRect(),R.attr("width",g.width),R.attr("height",g.height)}const m=0*t.padding,y=m/2,C=(t.width<=g.width+t.padding?g.width+t.padding:t.width)+m;t.width<=g.width+t.padding?t.diff=(C-t.width)/2-t.padding:t.diff=-t.padding;const b=t.height+m,k=t.height+m-g.height-6,T=t.x-C/2,S=t.y-b/2;t.width=C;const _=t.y-t.height/2-y+g.height+2;let L;if(t.look==="handDrawn"){const N=t.cssClasses.includes("statediagram-cluster-alt"),R=Z.svg(c),P=t.rx||t.ry?R.path(cr(T,S,C,b,10),{roughness:.7,fill:n,fillStyle:"solid",stroke:l,seed:o}):R.rectangle(T,S,C,b,{seed:o});L=c.insert(()=>P,":first-child");const z=R.rectangle(T,_,C,k,{fill:N?s:a,fillStyle:N?"hachure":"solid",stroke:l,seed:o});L=c.insert(()=>P,":first-child"),f=c.insert(()=>z)}else L=h.insert("rect",":first-child"),L.attr("class","outer").attr("x",T).attr("y",S).attr("width",C).attr("height",b).attr("data-look",t.look),f.attr("class","inner").attr("x",T).attr("y",_).attr("width",C).attr("height",k);d.attr("transform",`translate(${t.x-g.width/2}, ${S+1-(ee(r)?0:3)})`);const v=L.node().getBBox();return t.height=v.height,t.offsetX=0,t.offsetY=g.height-t.padding/2,t.labelBBox=g,t.intersect=function(N){return Er(t,N)},{cluster:c,labelBBox:g}},"roundedWithTitle"),ST=p(async(e,t)=>{q.info("Creating subgraph rect for ",t.id,t);const r=Ct(),{themeVariables:i,handDrawnSeed:o}=r,{clusterBkg:s,clusterBorder:a}=i,{labelStyles:n,nodeStyles:l,borderStyles:c,backgroundStyles:h}=K(t),d=e.insert("g").attr("class","cluster "+t.cssClasses).attr("id",t.domId).attr("data-look",t.look),f=ee(r),u=d.insert("g").attr("class","cluster-label "),g=await Pe(u,t.label,{style:t.labelStyle,useHtmlLabels:f,isNode:!0,width:t.width});let m=g.getBBox();if(ee(r)){const L=g.children[0],v=ct(g);m=L.getBoundingClientRect(),v.attr("width",m.width),v.attr("height",m.height)}const y=t.width<=m.width+t.padding?m.width+t.padding:t.width;t.width<=m.width+t.padding?t.diff=(y-t.width)/2-t.padding:t.diff=-t.padding;const C=t.height,b=t.x-y/2,k=t.y-C/2;q.trace("Data ",t,JSON.stringify(t));let T;if(t.look==="handDrawn"){const L=Z.svg(d),v=V(t,{roughness:.7,fill:s,stroke:a,fillWeight:4,seed:o}),N=L.path(cr(b,k,y,C,t.rx),v);T=d.insert(()=>(q.debug("Rough node insert CXC",N),N),":first-child"),T.select("path:nth-child(2)").attr("style",c.join(";")),T.select("path").attr("style",h.join(";").replace("fill","stroke"))}else T=d.insert("rect",":first-child"),T.attr("style",l).attr("rx",t.rx).attr("ry",t.ry).attr("x",b).attr("y",k).attr("width",y).attr("height",C);const{subGraphTitleTopMargin:S}=el(r);if(u.attr("transform",`translate(${t.x-m.width/2}, ${t.y-t.height/2+S})`),n){const L=u.select("span");L&&L.attr("style",n)}const _=T.node().getBBox();return t.offsetX=0,t.width=_.width,t.height=_.height,t.offsetY=m.height-t.padding/2,t.intersect=function(L){return Er(t,L)},{cluster:d,labelBBox:m}},"kanbanSection"),_T=p((e,t)=>{const r=Ct(),{themeVariables:i,handDrawnSeed:o}=r,{nodeBorder:s}=i,a=e.insert("g").attr("class",t.cssClasses).attr("id",t.domId).attr("data-look",t.look),n=a.insert("g",":first-child"),l=0*t.padding,c=t.width+l;t.diff=-t.padding;const h=t.height+l,d=t.x-c/2,f=t.y-h/2;t.width=c;let u;if(t.look==="handDrawn"){const y=Z.svg(a).rectangle(d,f,c,h,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:s,seed:o});u=a.insert(()=>y,":first-child")}else{u=n.insert("rect",":first-child");let m="outer";t.look,m="divider",u.attr("class",m).attr("x",d).attr("y",f).attr("width",c).attr("height",h).attr("data-look",t.look)}const g=u.node().getBBox();return t.height=g.height,t.offsetX=0,t.offsetY=0,t.intersect=function(m){return Er(t,m)},{cluster:a,labelBBox:{}}},"divider"),BT=wp,vT={rect:wp,squareRect:BT,roundedWithTitle:TT,noteGroup:wT,divider:_T,kanbanSection:ST,swimlane:kT},Tp=new Map,LT=p(async(e,t)=>{const r=t.shape||"rect",i=await vT[r](e,t);return Tp.set(t.id,i),i},"insertCluster"),zL=p(()=>{Tp=new Map},"clear");function Sp(e,t){return e.intersect(t)}p(Sp,"intersectNode");var FT=Sp;function _p(e,t,r,i){var o=e.x,s=e.y,a=o-i.x,n=s-i.y,l=Math.sqrt(t*t*n*n+r*r*a*a),c=Math.abs(t*r*a/l);i.x0}p(hn,"sameSign");var ET=Lp;function Fp(e,t,r){let i=e.x,o=e.y,s=[],a=Number.POSITIVE_INFINITY,n=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(h){a=Math.min(a,h.x),n=Math.min(n,h.y)}):(a=Math.min(a,t.x),n=Math.min(n,t.y));let l=i-e.width/2-a,c=o-e.height/2-n;for(let h=0;h1&&s.sort(function(h,d){let f=h.x-r.x,u=h.y-r.y,g=Math.sqrt(f*f+u*u),m=d.x-r.x,y=d.y-r.y,C=Math.sqrt(m*m+y*y);return gh,":first-child");return d.attr("class","anchor").attr("style",qt(n)),Q(t,d),t.intersect=function(f){return q.info("Circle intersect",t,a,f),X.circle(t,a,f)},s}p(Ap,"anchor");function cn(e,t,r,i,o,s,a){const l=(e+r)/2,c=(t+i)/2,h=Math.atan2(i-t,r-e),d=(r-e)/2,f=(i-t)/2,u=d/o,g=f/s,m=Math.sqrt(u**2+g**2);if(m>1)throw new Error("The given radii are too small to create an arc between the points.");const y=Math.sqrt(1-m**2),C=l+y*s*Math.sin(h)*(a?-1:1),b=c-y*o*Math.cos(h)*(a?-1:1),k=Math.atan2((t-b)/s,(e-C)/o);let S=Math.atan2((i-b)/s,(r-C)/o)-k;a&&S<0&&(S+=2*Math.PI),!a&&S>0&&(S-=2*Math.PI);const _=[];for(let L=0;L<20;L++){const v=L/19,N=k+v*S,R=C+o*Math.cos(N),P=b+s*Math.sin(N);_.push({x:R,y:P})}return _}p(cn,"generateArcPoints");function Ep(e,t,r){const[i,o]=[t,r].sort((s,a)=>a-s);return o*(1-Math.sqrt(1-(e/i/2)**2))}p(Ep,"calculateArcSagitta");async function Mp(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t.padding??0,s=t.look==="neo"?16:o,a=t.look==="neo"?12:o,n=p(N=>N+a,"calcTotalHeight"),l=p(N=>{const R=N/2;return[R/(2.5+N/50),R]},"calcEllipseRadius"),{shapeSvg:c,bbox:h}=await it(e,t,rt(t)),d=n(t?.height?t?.height:h.height),[f,u]=l(d),g=Ep(d,f,u),y=(t?.width?t?.width:h.width)+s*2+g-g,C=d,{cssStyles:b}=t,k=[{x:y/2,y:-C/2},{x:-y/2,y:-C/2},...cn(-y/2,-C/2,-y/2,C/2,f,u,!1),{x:y/2,y:C/2},...cn(y/2,C/2,y/2,-C/2,f,u,!0)],T=Z.svg(c),S=V(t,{});t.look!=="handDrawn"&&(S.roughness=0,S.fillStyle="solid");const _=gt(k),L=T.path(_,S),v=c.insert(()=>L,":first-child");return v.attr("class","basic label-container outer-path"),b&&t.look!=="handDrawn"&&v.selectAll("path").attr("style",b),i&&t.look!=="handDrawn"&&v.selectAll("path").attr("style",i),v.attr("transform",`translate(${f/2}, 0)`),Q(t,v),t.intersect=function(N){return X.polygon(t,k,N)},c}p(Mp,"bowTieRect");function Xe(e,t,r,i){return e.insert("polygon",":first-child").attr("points",i.map(function(o){return o.x+","+o.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+r/2+")")}p(Xe,"insertPolygonShape");var wo=12;async function $p(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t.padding??0,s=t.look==="neo"?28:o,a=t.look==="neo"?24:o,{shapeSvg:n,bbox:l}=await it(e,t,rt(t)),c=(t?.width??l.width)+(t.look==="neo"?s*2:s+wo),h=(t?.height??l.height)+(t.look==="neo"?a*2:a),d=0,f=c,u=-h,g=0,m=[{x:d+wo,y:u},{x:f,y:u},{x:f,y:g},{x:d,y:g},{x:d,y:u+wo},{x:d+wo,y:u}];let y;const{cssStyles:C}=t;if(t.look==="handDrawn"){const b=Z.svg(n),k=V(t,{}),T=gt(m),S=b.path(T,k);y=n.insert(()=>S,":first-child").attr("transform",`translate(${-c/2}, ${h/2})`),C&&y.attr("style",C)}else y=Xe(n,c,h,m);return i&&y.attr("style",i),Q(t,y),t.intersect=function(b){return X.polygon(t,m,b)},n}p($p,"card");function Op(e,t){const{nodeStyles:r}=K(t);t.label="";const i=e.insert("g").attr("class",rt(t)).attr("id",t.domId??t.id),{cssStyles:o}=t,s=Math.max(28,t.width??0),a=[{x:0,y:s/2},{x:s/2,y:0},{x:0,y:-s/2},{x:-s/2,y:0}],n=Z.svg(i),l=V(t,{});t.look!=="handDrawn"&&(l.roughness=0,l.fillStyle="solid");const c=gt(a),h=n.path(c,l),d=i.insert(()=>h,":first-child");return o&&t.look!=="handDrawn"&&d.selectAll("path").attr("style",o),r&&t.look!=="handDrawn"&&d.selectAll("path").attr("style",r),t.width=28,t.height=28,t.intersect=function(f){return X.polygon(t,a,f)},i}p(Op,"choice");async function pl(e,t,r){const{labelStyles:i,nodeStyles:o}=K(t);t.labelStyle=i;const{shapeSvg:s,bbox:a,halfPadding:n}=await it(e,t,rt(t)),l=16,c=r?.padding??n,h=t.look==="neo"?a.width/2+l*2:a.width/2+c;let d;const{cssStyles:f}=t;if(t.look==="handDrawn"){const u=Z.svg(s),g=V(t,{}),m=u.circle(0,0,h*2,g);d=s.insert(()=>m,":first-child"),d.attr("class","basic label-container").attr("style",qt(f))}else d=s.insert("circle",":first-child").attr("class","basic label-container").attr("style",o).attr("r",h).attr("cx",0).attr("cy",0);return Q(t,d),t.calcIntersect=function(u,g){const m=u.width/2;return X.circle(u,m,g)},t.intersect=function(u){return q.info("Circle intersect",t,h,u),X.circle(t,h,u)},s}p(pl,"circle");function Ip(e){const t=Math.cos(Math.PI/4),r=Math.sin(Math.PI/4),i=e*2,o={x:i/2*t,y:i/2*r},s={x:-(i/2)*t,y:i/2*r},a={x:-(i/2)*t,y:-(i/2)*r},n={x:i/2*t,y:-(i/2)*r};return`M ${s.x},${s.y} L ${n.x},${n.y} +`),s):be(t.label,s),c=t.isNode?"nodeLabel":"edgeLabel",h=n.append("span");h.html(l),rn(h,t.labelStyle),h.attr("class",`${c} ${i}`),rn(n,t.labelStyle),n.style("display","table-cell"),n.style("white-space","nowrap"),n.style("line-height","1.5"),r!==Number.POSITIVE_INFINITY&&(n.style("max-width",r+"px"),n.style("text-align","center")),n.attr("xmlns","http://www.w3.org/1999/xhtml"),o&&n.attr("class","labelBkg");let d=n.node().getBoundingClientRect();return d.width===r&&(n.style("display","table"),n.style("white-space","break-spaces"),n.style("width",r+"px"),d=n.node().getBoundingClientRect()),a.node()}p(up,"addHtmlSpan");function vs(e,t,r,i=!1){const o=e.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",t*r-.1+"em").attr("dy",r+"em");return i&&o.attr("text-anchor","middle"),o}p(vs,"createTspan");function fp(e,t,r){const i=e.append("text"),o=vs(i,1,t);Ls(o,r);const s=o.node().getComputedTextLength();return i.remove(),s}p(fp,"computeWidthOfText");function rT(e,t,r){const i=e.append("text"),o=vs(i,1,t);Ls(o,[{content:r,type:"normal"}]);const s=o.node()?.getBoundingClientRect();return s&&i.remove(),s}p(rT,"computeDimensionOfText");function pp(e,t,r,i=!1,o=!1){const a=t.append("g"),n=a.insert("rect").attr("class","background").attr("style","stroke: none"),l=a.append("text").attr("y","-10.1");o&&l.attr("text-anchor","middle");let c=0;for(const h of r){const d=p(u=>fp(a,1.1,u)<=e,"checkWidth"),f=d(h)?[h]:dp(h,d);for(const u of f){const g=vs(l,c,1.1,o);Ls(g,u),c++}}if(i){const h=l.node().getBBox(),d=2;return n.attr("x",h.x-d).attr("y",h.y-d).attr("width",h.width+2*d).attr("height",h.height+2*d),a.node()}else return l.node()}p(pp,"createFormattedText");function on(e){const 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}})}p(on,"decodeHTMLEntities");function Ls(e,t){e.text(""),t.forEach((r,i)=>{const o=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?o.text(on(r.content)):o.text(" "+on(r.content))})}p(Ls,"updateTextContentAndStyles");async function gp(e,t={}){const r=[];e.replace(/(fa[bklrs]?):fa-([\w-]+)/g,(o,s,a)=>(r.push((async()=>{const n=`${s}:${a}`;return await Cw(n)?await eo(n,void 0,{class:"label-icon"}):``})()),o));const i=await Promise.all(r);return e.replace(/(fa[bklrs]?):fa-([\w-]+)/g,()=>i.shift()??"")}p(gp,"replaceIconSubstring");var Pe=p(async(e,t="",{style:r="",isTitle:i=!1,classes:o="",useHtmlLabels:s=!0,markdown:a=!0,isNode:n=!0,width:l=200,addSvgBackground:c=!1}={},h)=>{if(q.debug("XYZ createText",t,r,i,o,s,n,"addSvgBackground: ",c),s){const d=a?lp(t,h):np(t),f=await gp(vr(d),h),u=t.replace(/\\\\/g,"\\"),g={isNode:n,label:Pi(t)?u:f,labelStyle:r.replace("fill:","color:")};return await up(e,g,l,o,c,h)}else{const d=vr(t.replace(//g,"
        ")),f=a?ap(d.replace("
        ","
        "),h):sp(d),u=pp(l,e,f,t?c:!1,!n);if(n){/stroke:/.exec(r)&&(r=r.replace("stroke:","lineColor:"));const g=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");ct(u).attr("style",g)}else{const g=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:");ct(u).select("rect").attr("style",g.replace(/background:/g,"fill:"));const m=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");ct(u).select("text").attr("style",m)}return i?ct(u).selectAll("tspan.text-outer-tspan").classed("title-row",!0):ct(u).selectAll("tspan.text-outer-tspan").classed("row",!0),u}},"createText");function la(e,t,r){if(e&&e.length){const[i,o]=t,s=Math.PI/180*r,a=Math.cos(s),n=Math.sin(s);for(const l of e){const[c,h]=l;l[0]=(c-i)*a-(h-o)*n+i,l[1]=(c-i)*n+(h-o)*a+o}}}function iT(e,t){return e[0]===t[0]&&e[1]===t[1]}function oT(e,t,r,i=1){const o=r,s=Math.max(t,.1),a=e[0]&&e[0][0]&&typeof e[0][0]=="number"?[e]:e,n=[0,0];if(o)for(const c of a)la(c,n,o);const l=(function(c,h,d){const f=[];for(const b of c){const k=[...b];iT(k[0],k[k.length-1])||k.push([k[0][0],k[0][1]]),k.length>2&&f.push(k)}const u=[];h=Math.max(h,.1);const g=[];for(const b of f)for(let k=0;kb.ymink.ymin?1:b.xk.x?1:b.ymax===k.ymax?0:(b.ymax-k.ymax)/Math.abs(b.ymax-k.ymax))),!g.length)return u;let m=[],y=g[0].ymin,C=0;for(;m.length||g.length;){if(g.length){let b=-1;for(let k=0;ky);k++)b=k;g.splice(0,b+1).forEach((k=>{m.push({s:y,edge:k})}))}if(m=m.filter((b=>!(b.edge.ymax<=y))),m.sort(((b,k)=>b.edge.x===k.edge.x?0:(b.edge.x-k.edge.x)/Math.abs(b.edge.x-k.edge.x))),(d!==1||C%h==0)&&m.length>1)for(let b=0;b=m.length)break;const T=m[b].edge,S=m[k].edge;u.push([[Math.round(T.x),y],[Math.round(S.x),y]])}y+=d,m.forEach((b=>{b.edge.x=b.edge.x+d*b.edge.islope})),C++}return u})(a,s,i);if(o){for(const c of a)la(c,n,-o);(function(c,h,d){const f=[];c.forEach((u=>f.push(...u))),la(f,h,d)})(l,n,-o)}return l}function io(e,t){var r;const i=t.hachureAngle+90;let o=t.hachureGap;o<0&&(o=4*t.strokeWidth),o=Math.round(Math.max(o,.1));let s=1;return t.roughness>=1&&(((r=t.randomizer)===null||r===void 0?void 0:r.next())||Math.random())>.7&&(s=o),oT(e,o,i,s||1)}class ul{constructor(t){this.helper=t}fillPolygons(t,r){return this._fillPolygons(t,r)}_fillPolygons(t,r){const i=io(t,r);return{type:"fillSketch",ops:this.renderLines(i,r)}}renderLines(t,r){const i=[];for(const o of t)i.push(...this.helper.doubleLineOps(o[0][0],o[0][1],o[1][0],o[1][1],r));return i}}function Fs(e){const t=e[0],r=e[1];return Math.sqrt(Math.pow(t[0]-r[0],2)+Math.pow(t[1]-r[1],2))}class sT extends ul{fillPolygons(t,r){let i=r.hachureGap;i<0&&(i=4*r.strokeWidth),i=Math.max(i,.1);const o=io(t,Object.assign({},r,{hachureGap:i})),s=Math.PI/180*r.hachureAngle,a=[],n=.5*i*Math.cos(s),l=.5*i*Math.sin(s);for(const[c,h]of o)Fs([c,h])&&a.push([[c[0]-n,c[1]+l],[...h]],[[c[0]+n,c[1]-l],[...h]]);return{type:"fillSketch",ops:this.renderLines(a,r)}}}class aT extends ul{fillPolygons(t,r){const i=this._fillPolygons(t,r),o=Object.assign({},r,{hachureAngle:r.hachureAngle+90}),s=this._fillPolygons(t,o);return i.ops=i.ops.concat(s.ops),i}}class nT{constructor(t){this.helper=t}fillPolygons(t,r){const i=io(t,r=Object.assign({},r,{hachureAngle:0}));return this.dotsOnLines(i,r)}dotsOnLines(t,r){const i=[];let o=r.hachureGap;o<0&&(o=4*r.strokeWidth),o=Math.max(o,.1);let s=r.fillWeight;s<0&&(s=r.strokeWidth/2);const a=o/4;for(const n of t){const l=Fs(n),c=l/o,h=Math.ceil(c)-1,d=l-h*o,f=(n[0][0]+n[1][0])/2-o/4,u=Math.min(n[0][1],n[1][1]);for(let g=0;g{const n=Fs(a),l=Math.floor(n/(i+o)),c=(n+o-l*(i+o))/2;let h=a[0],d=a[1];h[0]>d[0]&&(h=a[1],d=a[0]);const f=Math.atan((d[1]-h[1])/(d[0]-h[0]));for(let u=0;u{const a=Fs(s),n=Math.round(a/(2*r));let l=s[0],c=s[1];l[0]>c[0]&&(l=s[1],c=s[0]);const h=Math.atan((c[1]-l[1])/(c[0]-l[0]));for(let d=0;dh%2?c+r:c+t));s.push({key:"C",data:l}),t=l[4],r=l[5];break}case"Q":s.push({key:"Q",data:[...n]}),t=n[2],r=n[3];break;case"q":{const l=n.map(((c,h)=>h%2?c+r:c+t));s.push({key:"Q",data:l}),t=l[2],r=l[3];break}case"A":s.push({key:"A",data:[...n]}),t=n[5],r=n[6];break;case"a":t+=n[5],r+=n[6],s.push({key:"A",data:[n[0],n[1],n[2],n[3],n[4],t,r]});break;case"H":s.push({key:"H",data:[...n]}),t=n[0];break;case"h":t+=n[0],s.push({key:"H",data:[t]});break;case"V":s.push({key:"V",data:[...n]}),r=n[0];break;case"v":r+=n[0],s.push({key:"V",data:[r]});break;case"S":s.push({key:"S",data:[...n]}),t=n[2],r=n[3];break;case"s":{const l=n.map(((c,h)=>h%2?c+r:c+t));s.push({key:"S",data:l}),t=l[2],r=l[3];break}case"T":s.push({key:"T",data:[...n]}),t=n[0],r=n[1];break;case"t":t+=n[0],r+=n[1],s.push({key:"T",data:[t,r]});break;case"Z":case"z":s.push({key:"Z",data:[]}),t=i,r=o}return s}function yp(e){const t=[];let r="",i=0,o=0,s=0,a=0,n=0,l=0;for(const{key:c,data:h}of e){switch(c){case"M":t.push({key:"M",data:[...h]}),[i,o]=h,[s,a]=h;break;case"C":t.push({key:"C",data:[...h]}),i=h[4],o=h[5],n=h[2],l=h[3];break;case"L":t.push({key:"L",data:[...h]}),[i,o]=h;break;case"H":i=h[0],t.push({key:"L",data:[i,o]});break;case"V":o=h[0],t.push({key:"L",data:[i,o]});break;case"S":{let d=0,f=0;r==="C"||r==="S"?(d=i+(i-n),f=o+(o-l)):(d=i,f=o),t.push({key:"C",data:[d,f,...h]}),n=h[0],l=h[1],i=h[2],o=h[3];break}case"T":{const[d,f]=h;let u=0,g=0;r==="Q"||r==="T"?(u=i+(i-n),g=o+(o-l)):(u=i,g=o);const m=i+2*(u-i)/3,y=o+2*(g-o)/3,C=d+2*(u-d)/3,b=f+2*(g-f)/3;t.push({key:"C",data:[m,y,C,b,d,f]}),n=u,l=g,i=d,o=f;break}case"Q":{const[d,f,u,g]=h,m=i+2*(d-i)/3,y=o+2*(f-o)/3,C=u+2*(d-u)/3,b=g+2*(f-g)/3;t.push({key:"C",data:[m,y,C,b,u,g]}),n=d,l=f,i=u,o=g;break}case"A":{const d=Math.abs(h[0]),f=Math.abs(h[1]),u=h[2],g=h[3],m=h[4],y=h[5],C=h[6];d===0||f===0?(t.push({key:"C",data:[i,o,y,C,y,C]}),i=y,o=C):(i!==y||o!==C)&&(Cp(i,o,y,C,d,f,u,g,m).forEach((function(b){t.push({key:"C",data:b})})),i=y,o=C);break}case"Z":t.push({key:"Z",data:[]}),i=s,o=a}r=c}return t}function Ci(e,t,r){return[e*Math.cos(r)-t*Math.sin(r),e*Math.sin(r)+t*Math.cos(r)]}function Cp(e,t,r,i,o,s,a,n,l,c){const h=(d=a,Math.PI*d/180);var d;let f=[],u=0,g=0,m=0,y=0;if(c)[u,g,m,y]=c;else{[e,t]=Ci(e,t,-h),[r,i]=Ci(r,i,-h);const W=(e-r)/2,$=(t-i)/2;let A=W*W/(o*o)+$*$/(s*s);A>1&&(A=Math.sqrt(A),o*=A,s*=A);const F=o*o,D=s*s,M=F*D-F*$*$-D*W*W,H=F*$*$+D*W*W,Y=(n===l?-1:1)*Math.sqrt(Math.abs(M/H));m=Y*o*$/s+(e+r)/2,y=Y*-s*W/o+(t+i)/2,u=Math.asin(parseFloat(((t-y)/s).toFixed(9))),g=Math.asin(parseFloat(((i-y)/s).toFixed(9))),eg&&(u-=2*Math.PI),!l&&g>u&&(g-=2*Math.PI)}let C=g-u;if(Math.abs(C)>120*Math.PI/180){const W=g,$=r,A=i;g=l&&g>u?u+120*Math.PI/180*1:u+120*Math.PI/180*-1,f=Cp(r=m+o*Math.cos(g),i=y+s*Math.sin(g),$,A,o,s,a,0,l,[g,W,m,y])}C=g-u;const b=Math.cos(u),k=Math.sin(u),T=Math.cos(g),S=Math.sin(g),_=Math.tan(C/4),L=4/3*o*_,v=4/3*s*_,N=[e,t],R=[e+L*k,t-v*b],P=[r+L*S,i-v*T],z=[r,i];if(R[0]=2*N[0]-R[0],R[1]=2*N[1]-R[1],c)return[R,P,z].concat(f);{f=[R,P,z].concat(f);const W=[];for(let $=0;$2){const o=[];for(let s=0;s2*Math.PI&&(u=0,g=2*Math.PI);const m=2*Math.PI/l.curveStepCount,y=Math.min(m/2,(g-u)/2),C=rc(y,c,h,d,f,u,g,1,l);if(!l.disableMultiStroke){const b=rc(y,c,h,d,f,u,g,1.5,l);C.push(...b)}return a&&(n?C.push(...lr(c,h,c+d*Math.cos(u),h+f*Math.sin(u),l),...lr(c,h,c+d*Math.cos(g),h+f*Math.sin(g),l)):C.push({op:"lineTo",data:[c,h]},{op:"lineTo",data:[c+d*Math.cos(u),h+f*Math.sin(u)]})),{type:"path",ops:C}}function Jh(e,t){const r=yp(mp(fl(e))),i=[];let o=[0,0],s=[0,0];for(const{key:a,data:n}of r)switch(a){case"M":s=[n[0],n[1]],o=[n[0],n[1]];break;case"L":i.push(...lr(s[0],s[1],n[0],n[1],t)),s=[n[0],n[1]];break;case"C":{const[l,c,h,d,f,u]=n;i.push(...pT(l,c,h,d,f,u,s,t)),s=[f,u];break}case"Z":i.push(...lr(s[0],s[1],o[0],o[1],t)),s=[o[0],o[1]]}return{type:"path",ops:i}}function da(e,t){const r=[];for(const i of e)if(i.length){const o=t.maxRandomnessOffset||0,s=i.length;if(s>2){r.push({op:"move",data:[i[0][0]+ot(o,t),i[0][1]+ot(o,t)]});for(let a=1;a500?.4:-.0016668*l+1.233334;let h=o.maxRandomnessOffset||0;h*h*100>n&&(h=l/10);const d=h/2,f=.2+.2*kp(o);let u=o.bowing*o.maxRandomnessOffset*(i-t)/200,g=o.bowing*o.maxRandomnessOffset*(e-r)/200;u=ot(u,o,c),g=ot(g,o,c);const m=[],y=()=>ot(d,o,c),C=()=>ot(h,o,c),b=o.preserveVertices;return a?m.push({op:"move",data:[e+(b?0:y()),t+(b?0:y())]}):m.push({op:"move",data:[e+(b?0:ot(h,o,c)),t+(b?0:ot(h,o,c))]}),a?m.push({op:"bcurveTo",data:[u+e+(r-e)*f+y(),g+t+(i-t)*f+y(),u+e+2*(r-e)*f+y(),g+t+2*(i-t)*f+y(),r+(b?0:y()),i+(b?0:y())]}):m.push({op:"bcurveTo",data:[u+e+(r-e)*f+C(),g+t+(i-t)*f+C(),u+e+2*(r-e)*f+C(),g+t+2*(i-t)*f+C(),r+(b?0:C()),i+(b?0:C())]}),m}function bo(e,t,r){if(!e.length)return[];const i=[];i.push([e[0][0]+ot(t,r),e[0][1]+ot(t,r)]),i.push([e[0][0]+ot(t,r),e[0][1]+ot(t,r)]);for(let o=1;o3){const s=[],a=1-r.curveTightness;o.push({op:"move",data:[e[1][0],e[1][1]]});for(let n=1;n+21&&o.push(n)):o.push(n),o.push(e[t+3])}else{const l=e[t+0],c=e[t+1],h=e[t+2],d=e[t+3],f=yr(l,c,.5),u=yr(c,h,.5),g=yr(h,d,.5),m=yr(f,u,.5),y=yr(u,g,.5),C=yr(m,y,.5);nn([l,f,m,C],0,r,o),nn([C,y,g,d],0,r,o)}var s,a;return o}function mT(e,t){return ds(e,0,e.length,t)}function ds(e,t,r,i,o){const s=o||[],a=e[t],n=e[r-1];let l=0,c=1;for(let h=t+1;hl&&(l=d,c=h)}return Math.sqrt(l)>i?(ds(e,t,c+1,i,s),ds(e,c,r,i,s)):(s.length||s.push(a),s.push(n)),s}function ua(e,t=.15,r){const i=[],o=(e.length-1)/3;for(let s=0;s0?ds(i,0,i.length,r):i}const ae="none";class us{constructor(t){this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:"#000",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:"hachure",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1,fillShapeRoughnessGain:.8},this.config=t||{},this.config.options&&(this.defaultOptions=this._o(this.config.options))}static newSeed(){return Math.floor(Math.random()*2**31)}_o(t){return t?Object.assign({},this.defaultOptions,t):this.defaultOptions}_d(t,r,i){return{shape:t,sets:r||[],options:i||this.defaultOptions}}line(t,r,i,o,s){const a=this._o(s);return this._d("line",[xp(t,r,i,o,a)],a)}rectangle(t,r,i,o,s){const a=this._o(s),n=[],l=fT(t,r,i,o,a);if(a.fill){const c=[[t,r],[t+i,r],[t+i,r+o],[t,r+o]];a.fillStyle==="solid"?n.push(da([c],a)):n.push(qr([c],a))}return a.stroke!==ae&&n.push(l),this._d("rectangle",n,a)}ellipse(t,r,i,o,s){const a=this._o(s),n=[],l=bp(i,o,a),c=sn(t,r,a,l);if(a.fill)if(a.fillStyle==="solid"){const h=sn(t,r,a,l).opset;h.type="fillPath",n.push(h)}else n.push(qr([c.estimatedPoints],a));return a.stroke!==ae&&n.push(c.opset),this._d("ellipse",n,a)}circle(t,r,i,o){const s=this.ellipse(t,r,i,i,o);return s.shape="circle",s}linearPath(t,r){const i=this._o(r);return this._d("linearPath",[Oo(t,!1,i)],i)}arc(t,r,i,o,s,a,n=!1,l){const c=this._o(l),h=[],d=Qh(t,r,i,o,s,a,n,!0,c);if(n&&c.fill)if(c.fillStyle==="solid"){const f=Object.assign({},c);f.disableMultiStroke=!0;const u=Qh(t,r,i,o,s,a,!0,!1,f);u.type="fillPath",h.push(u)}else h.push((function(f,u,g,m,y,C,b){const k=f,T=u;let S=Math.abs(g/2),_=Math.abs(m/2);S+=ot(.01*S,b),_+=ot(.01*_,b);let L=y,v=C;for(;L<0;)L+=2*Math.PI,v+=2*Math.PI;v-L>2*Math.PI&&(L=0,v=2*Math.PI);const N=(v-L)/b.curveStepCount,R=[];for(let P=L;P<=v;P+=N)R.push([k+S*Math.cos(P),T+_*Math.sin(P)]);return R.push([k+S*Math.cos(v),T+_*Math.sin(v)]),R.push([k,T]),qr([R],b)})(t,r,i,o,s,a,c));return c.stroke!==ae&&h.push(d),this._d("arc",h,c)}curve(t,r){const i=this._o(r),o=[],s=Kh(t,i);if(i.fill&&i.fill!==ae)if(i.fillStyle==="solid"){const a=Kh(t,Object.assign(Object.assign({},i),{disableMultiStroke:!0,roughness:i.roughness?i.roughness+i.fillShapeRoughnessGain:0}));o.push({type:"fillPath",ops:this._mergedShape(a.ops)})}else{const a=[],n=t;if(n.length){const l=typeof n[0][0]=="number"?[n]:n;for(const c of l)c.length<3?a.push(...c):c.length===3?a.push(...ua(ic([c[0],c[0],c[1],c[2]]),10,(1+i.roughness)/2)):a.push(...ua(ic(c),10,(1+i.roughness)/2))}a.length&&o.push(qr([a],i))}return i.stroke!==ae&&o.push(s),this._d("curve",o,i)}polygon(t,r){const i=this._o(r),o=[],s=Oo(t,!0,i);return i.fill&&(i.fillStyle==="solid"?o.push(da([t],i)):o.push(qr([t],i))),i.stroke!==ae&&o.push(s),this._d("polygon",o,i)}path(t,r){const i=this._o(r),o=[];if(!t)return this._d("path",o,i);t=(t||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");const s=i.fill&&i.fill!=="transparent"&&i.fill!==ae,a=i.stroke!==ae,n=!!(i.simplification&&i.simplification<1),l=(function(h,d,f){const u=yp(mp(fl(h))),g=[];let m=[],y=[0,0],C=[];const b=()=>{C.length>=4&&m.push(...ua(C,d)),C=[]},k=()=>{b(),m.length&&(g.push(m),m=[])};for(const{key:S,data:_}of u)switch(S){case"M":k(),y=[_[0],_[1]],m.push(y);break;case"L":b(),m.push([_[0],_[1]]);break;case"C":if(!C.length){const L=m.length?m[m.length-1]:y;C.push([L[0],L[1]])}C.push([_[0],_[1]]),C.push([_[2],_[3]]),C.push([_[4],_[5]]);break;case"Z":b(),m.push([y[0],y[1]])}if(k(),!f)return g;const T=[];for(const S of g){const _=mT(S,f);_.length&&T.push(_)}return T})(t,1,n?4-4*(i.simplification||1):(1+i.roughness)/2),c=Jh(t,i);if(s)if(i.fillStyle==="solid")if(l.length===1){const h=Jh(t,Object.assign(Object.assign({},i),{disableMultiStroke:!0,roughness:i.roughness?i.roughness+i.fillShapeRoughnessGain:0}));o.push({type:"fillPath",ops:this._mergedShape(h.ops)})}else o.push(da(l,i));else o.push(qr(l,i));return a&&(n?l.forEach((h=>{o.push(Oo(h,!1,i))})):o.push(c)),this._d("path",o,i)}opsToPath(t,r){let i="";for(const o of t.ops){const s=typeof r=="number"&&r>=0?o.data.map((a=>+a.toFixed(r))):o.data;switch(o.op){case"move":i+=`M${s[0]} ${s[1]} `;break;case"bcurveTo":i+=`C${s[0]} ${s[1]}, ${s[2]} ${s[3]}, ${s[4]} ${s[5]} `;break;case"lineTo":i+=`L${s[0]} ${s[1]} `}}return i.trim()}toPaths(t){const r=t.sets||[],i=t.options||this.defaultOptions,o=[];for(const s of r){let a=null;switch(s.type){case"path":a={d:this.opsToPath(s),stroke:i.stroke,strokeWidth:i.strokeWidth,fill:ae};break;case"fillPath":a={d:this.opsToPath(s),stroke:ae,strokeWidth:0,fill:i.fill||ae};break;case"fillSketch":a=this.fillSketch(s,i)}a&&o.push(a)}return o}fillSketch(t,r){let i=r.fillWeight;return i<0&&(i=r.strokeWidth/2),{d:this.opsToPath(t),stroke:r.fill||ae,strokeWidth:i,fill:ae}}_mergedShape(t){return t.filter(((r,i)=>i===0||r.op!=="move"))}}class yT{constructor(t,r){this.canvas=t,this.ctx=this.canvas.getContext("2d"),this.gen=new us(r)}draw(t){const r=t.sets||[],i=t.options||this.getDefaultOptions(),o=this.ctx,s=t.options.fixedDecimalPlaceDigits;for(const a of r)switch(a.type){case"path":o.save(),o.strokeStyle=i.stroke==="none"?"transparent":i.stroke,o.lineWidth=i.strokeWidth,i.strokeLineDash&&o.setLineDash(i.strokeLineDash),i.strokeLineDashOffset&&(o.lineDashOffset=i.strokeLineDashOffset),this._drawToContext(o,a,s),o.restore();break;case"fillPath":{o.save(),o.fillStyle=i.fill||"";const n=t.shape==="curve"||t.shape==="polygon"||t.shape==="path"?"evenodd":"nonzero";this._drawToContext(o,a,s,n),o.restore();break}case"fillSketch":this.fillSketch(o,a,i)}}fillSketch(t,r,i){let o=i.fillWeight;o<0&&(o=i.strokeWidth/2),t.save(),i.fillLineDash&&t.setLineDash(i.fillLineDash),i.fillLineDashOffset&&(t.lineDashOffset=i.fillLineDashOffset),t.strokeStyle=i.fill||"",t.lineWidth=o,this._drawToContext(t,r,i.fixedDecimalPlaceDigits),t.restore()}_drawToContext(t,r,i,o="nonzero"){t.beginPath();for(const s of r.ops){const a=typeof i=="number"&&i>=0?s.data.map((n=>+n.toFixed(i))):s.data;switch(s.op){case"move":t.moveTo(a[0],a[1]);break;case"bcurveTo":t.bezierCurveTo(a[0],a[1],a[2],a[3],a[4],a[5]);break;case"lineTo":t.lineTo(a[0],a[1])}}r.type==="fillPath"?t.fill(o):t.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(t,r,i,o,s){const a=this.gen.line(t,r,i,o,s);return this.draw(a),a}rectangle(t,r,i,o,s){const a=this.gen.rectangle(t,r,i,o,s);return this.draw(a),a}ellipse(t,r,i,o,s){const a=this.gen.ellipse(t,r,i,o,s);return this.draw(a),a}circle(t,r,i,o){const s=this.gen.circle(t,r,i,o);return this.draw(s),s}linearPath(t,r){const i=this.gen.linearPath(t,r);return this.draw(i),i}polygon(t,r){const i=this.gen.polygon(t,r);return this.draw(i),i}arc(t,r,i,o,s,a,n=!1,l){const c=this.gen.arc(t,r,i,o,s,a,n,l);return this.draw(c),c}curve(t,r){const i=this.gen.curve(t,r);return this.draw(i),i}path(t,r){const i=this.gen.path(t,r);return this.draw(i),i}}const ko="http://www.w3.org/2000/svg";class CT{constructor(t,r){this.svg=t,this.gen=new us(r)}draw(t){const r=t.sets||[],i=t.options||this.getDefaultOptions(),o=this.svg.ownerDocument||window.document,s=o.createElementNS(ko,"g"),a=t.options.fixedDecimalPlaceDigits;for(const n of r){let l=null;switch(n.type){case"path":l=o.createElementNS(ko,"path"),l.setAttribute("d",this.opsToPath(n,a)),l.setAttribute("stroke",i.stroke),l.setAttribute("stroke-width",i.strokeWidth+""),l.setAttribute("fill","none"),i.strokeLineDash&&l.setAttribute("stroke-dasharray",i.strokeLineDash.join(" ").trim()),i.strokeLineDashOffset&&l.setAttribute("stroke-dashoffset",`${i.strokeLineDashOffset}`);break;case"fillPath":l=o.createElementNS(ko,"path"),l.setAttribute("d",this.opsToPath(n,a)),l.setAttribute("stroke","none"),l.setAttribute("stroke-width","0"),l.setAttribute("fill",i.fill||""),t.shape!=="curve"&&t.shape!=="polygon"||l.setAttribute("fill-rule","evenodd");break;case"fillSketch":l=this.fillSketch(o,n,i)}l&&s.appendChild(l)}return s}fillSketch(t,r,i){let o=i.fillWeight;o<0&&(o=i.strokeWidth/2);const s=t.createElementNS(ko,"path");return s.setAttribute("d",this.opsToPath(r,i.fixedDecimalPlaceDigits)),s.setAttribute("stroke",i.fill||""),s.setAttribute("stroke-width",o+""),s.setAttribute("fill","none"),i.fillLineDash&&s.setAttribute("stroke-dasharray",i.fillLineDash.join(" ").trim()),i.fillLineDashOffset&&s.setAttribute("stroke-dashoffset",`${i.fillLineDashOffset}`),s}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(t,r){return this.gen.opsToPath(t,r)}line(t,r,i,o,s){const a=this.gen.line(t,r,i,o,s);return this.draw(a)}rectangle(t,r,i,o,s){const a=this.gen.rectangle(t,r,i,o,s);return this.draw(a)}ellipse(t,r,i,o,s){const a=this.gen.ellipse(t,r,i,o,s);return this.draw(a)}circle(t,r,i,o){const s=this.gen.circle(t,r,i,o);return this.draw(s)}linearPath(t,r){const i=this.gen.linearPath(t,r);return this.draw(i)}polygon(t,r){const i=this.gen.polygon(t,r);return this.draw(i)}arc(t,r,i,o,s,a,n=!1,l){const c=this.gen.arc(t,r,i,o,s,a,n,l);return this.draw(c)}curve(t,r){const i=this.gen.curve(t,r);return this.draw(i)}path(t,r){const i=this.gen.path(t,r);return this.draw(i)}}var Z={canvas:(e,t)=>new yT(e,t),svg:(e,t)=>new CT(e,t),generator:e=>new us(e),newSeed:()=>us.newSeed()},it=p(async(e,t,r)=>{let i;const o=t.useHtmlLabels||Ie(Ct()?.htmlLabels);r?i=r:i="node default";const s=e.insert("g").attr("class",i).attr("id",t.domId||t.id),a=s.insert("g").attr("class","label").attr("style",qt(t.labelStyle));let n;t.label===void 0?n="":n=typeof t.label=="string"?t.label:t.label[0];const l=!!t.icon||!!t.img,c=t.labelType==="markdown",h=await Pe(a,be(vr(n),Ct()),{useHtmlLabels:o,width:t.width||Ct().flowchart?.wrappingWidth,classes:c?"markdown-node-label":"",style:t.labelStyle,addSvgBackground:l,markdown:c},Ct());let d=h.getBBox();const f=(t?.padding??0)/2;if(o){const u=h.children[0],g=ct(h);await zf(u,n),d=u.getBoundingClientRect(),g.attr("width",d.width),g.attr("height",d.height)}return o?a.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"):a.attr("transform","translate(0, "+-d.height/2+")"),t.centerLabel&&a.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),a.insert("rect",":first-child"),{shapeSvg:s,bbox:d,halfPadding:f,label:a}},"labelHelper"),fa=p(async(e,t,r)=>{const i=r.useHtmlLabels??ee(Ct()),o=e.insert("g").attr("class","label").attr("style",r.labelStyle||""),s=await Pe(o,be(vr(t),Ct()),{useHtmlLabels:i,width:r.width||Ct()?.flowchart?.wrappingWidth,style:r.labelStyle,addSvgBackground:!!r.icon||!!r.img});let a=s.getBBox();const n=r.padding/2;if(ee(Ct())){const l=s.children[0],c=ct(s);a=l.getBoundingClientRect(),c.attr("width",a.width),c.attr("height",a.height)}return i?o.attr("transform","translate("+-a.width/2+", "+-a.height/2+")"):o.attr("transform","translate(0, "+-a.height/2+")"),r.centerLabel&&o.attr("transform","translate("+-a.width/2+", "+-a.height/2+")"),o.insert("rect",":first-child"),{shapeSvg:e,bbox:a,halfPadding:n,label:o}},"insertLabel"),Q=p((e,t)=>{const r=t.node().getBBox();e.width=r.width,e.height=r.height},"updateNodeBounds"),rt=p((e,t)=>(e.look==="handDrawn"?"rough-node":"node")+" "+e.cssClasses+" "+(t||""),"getNodeClasses");function gt(e){const t=e.map((r,i)=>`${i===0?"M":"L"}${r.x},${r.y}`);return t.push("Z"),t.join(" ")}p(gt,"createPathFromPoints");function hr(e,t,r,i,o,s){const a=[],l=r-e,c=i-t,h=l/s,d=2*Math.PI/h,f=t+c/2;for(let u=0;u<=50;u++){const g=u/50,m=e+g*l,y=f+o*Math.sin(d*(m-e));a.push({x:m,y})}return a}p(hr,"generateFullSineWavePoints");function ji(e,t,r,i,o,s){const a=[],n=o*Math.PI/180,h=(s*Math.PI/180-n)/(i-1);for(let d=0;dl.tagName==="path"),r=document.createElementNS("http://www.w3.org/2000/svg","path"),i=t.map(l=>l.getAttribute("d")).filter(l=>l!==null).join(" ");r.setAttribute("d",i);const o=t.find(l=>l.getAttribute("fill")!=="none"),s=t.find(l=>l.getAttribute("stroke")!=="none"),a=p((l,c)=>l?.getAttribute(c)??void 0,"getAttr");if(o){const l={fill:a(o,"fill"),"fill-opacity":a(o,"fill-opacity")??"1"};Object.entries(l).forEach(([c,h])=>{h&&r.setAttribute(c,h)})}if(s){const l={stroke:a(s,"stroke"),"stroke-width":a(s,"stroke-width")??"1","stroke-opacity":a(s,"stroke-opacity")??"1"};Object.entries(l).forEach(([c,h])=>{h&&r.setAttribute(c,h)})}const n=document.createElementNS("http://www.w3.org/2000/svg","g");return n.appendChild(r),n}p(ln,"mergePaths");var xT=p((e,t)=>{var r=e.x,i=e.y,o=t.x-r,s=t.y-i,a=e.width/2,n=e.height/2,l,c;return Math.abs(s)*a>Math.abs(o)*n?(s<0&&(n=-n),l=s===0?0:n*o/s,c=n):(o<0&&(a=-a),l=a,c=o===0?0:a*s/o),{x:r+l,y:i+c}},"intersectRect"),Er=xT,bT=p(async(e,t,r,i=!1,o=!1)=>{let s=t||"";typeof s=="object"&&(s=s[0]);const a=Ct(),n=ee(a);return await Pe(e,s,{style:r,isTitle:i,useHtmlLabels:n,markdown:!1,isNode:o,width:Number.POSITIVE_INFINITY},a)},"createLabel"),rr=bT,cr=p((e,t,r,i,o)=>["M",e+o,t,"H",e+r-o,"A",o,o,0,0,1,e+r,t+o,"V",t+i-o,"A",o,o,0,0,1,e+r-o,t+i,"H",e+o,"A",o,o,0,0,1,e,t+i-o,"V",t+o,"A",o,o,0,0,1,e+o,t,"Z"].join(" "),"createRoundedRectPathD"),kT=p(async(e,t)=>{const r=Ct(),{themeVariables:i,handDrawnSeed:o}=r,{clusterBkg:s,clusterBorder:a}=i,n=a,{labelStyles:l,nodeStyles:c,borderStyles:h,backgroundStyles:d}=K(t),f=e.insert("g").attr("class","cluster swimlane "+(t.cssClasses||"")).attr("id",t.id).attr("data-id",t.id).attr("data-et","cluster").attr("data-look",t.look),u=Ie(r.flowchart.htmlLabels),g=t.direction==="LR",m=f.insert("g").attr("class","cluster-label swimlane-label"),y=await Pe(m,t.label,{style:t.labelStyle,useHtmlLabels:u,isNode:!0,width:t.width});let C=y.getBBox();if(u){const W=y.children[0],$=ct(y);C=W.getBoundingClientRect(),$.attr("width",C.width),$.attr("height",C.height)}const b=t.padding??0,k=t.width<=C.width+b?C.width+b:t.width;t.width<=C.width+b?t.diff=(k-t.width)/2-b:t.diff=-b;const T=t.height,S=t.y-T/2,_=t.y+T/2,L=t.x-k/2,v=t.swimlaneContentTop!==void 0?t.swimlaneContentTop:S+T/3,N=g?4:0,R=C.height+2*N;let P,z;if(g){const W=Math.max(R,C.height+2*N),$=L+W,A=Math.max(0,k-W);if(t.look==="handDrawn"){const M=Z.svg(f),H=V(t,{roughness:.7,fill:s,stroke:n,fillWeight:3,seed:o}),Y=V(t,{roughness:.7,fill:"none",stroke:n,seed:o}),G=M.rectangle(L,S,W,T,H);P=f.insert(()=>G,":first-child");const lt=M.rectangle($,S,A,T,Y);z=f.insert(()=>lt,":first-child"),P.select("path:nth-child(2)").attr("style",h.join(";")),P.select("path").attr("style",d.join(";").replace("fill","stroke"))}else P=f.insert("rect",":first-child"),z=f.insert("rect",":first-child"),P.attr("class","swimlane-title").attr("style",c).attr("x",L).attr("y",S).attr("width",W).attr("height",T).attr("fill",s).attr("stroke",n),z.attr("class","swimlane-body").attr("style",c).attr("x",$).attr("y",S).attr("width",A).attr("height",T).attr("fill","none").attr("stroke",n);const F=L+W/2,D=t.y;m.attr("transform",`translate(${F}, ${D}) rotate(-90) translate(${-C.width/2}, ${-C.height/2})`)}else{const W=Math.max(0,v-S),$=Math.min(R,W),A=S+$,F=Math.max(0,_-A),D=t.x-k/2;if(t.look==="handDrawn"){const Y=Z.svg(f),G=V(t,{roughness:.7,fill:s,stroke:n,fillWeight:3,seed:o}),lt=V(t,{roughness:.7,fill:"none",stroke:n,seed:o}),ht=Y.rectangle(D,S,k,$,G);P=f.insert(()=>ht,":first-child");const dt=Y.rectangle(D,A,k,F,lt);z=f.insert(()=>dt,":first-child"),P.select("path:nth-child(2)").attr("style",h.join(";")),P.select("path").attr("style",d.join(";").replace("fill","stroke"))}else P=f.insert("rect",":first-child"),z=f.insert("rect",":first-child"),P.attr("class","swimlane-title").attr("style",c).attr("x",D).attr("y",S).attr("width",k).attr("height",$).attr("fill",s).attr("stroke",n),z.attr("class","swimlane-body").attr("style",c).attr("x",D).attr("y",A).attr("width",k).attr("height",F).attr("fill","none").attr("stroke",n);const M=t.x-C.width/2,H=S+($-C.height)/2;m.attr("transform",`translate(${M}, ${H})`)}if(q.trace("Swimlane data ",t,JSON.stringify(t)),l){const W=m.select("span");W&&W.attr("style",l)}return t.offsetX=0,t.width=k,t.height=T,t.offsetY=C.height-b/2,t.intersect=function(W){return Er(t,W)},{cluster:f,labelBBox:C}},"swimlane"),wp=p(async(e,t)=>{q.info("Creating subgraph rect for ",t.id,t);const r=Ct(),{themeVariables:i,handDrawnSeed:o}=r,{clusterBkg:s,clusterBorder:a}=i,{labelStyles:n,nodeStyles:l,borderStyles:c,backgroundStyles:h}=K(t),d=e.insert("g").attr("class","cluster "+t.cssClasses).attr("id",t.domId).attr("data-look",t.look),f=ee(r),u=d.insert("g").attr("class","cluster-label ");let g;t.labelType==="markdown"?g=await Pe(u,t.label,{style:t.labelStyle,useHtmlLabels:f,isNode:!0,width:t.width}):g=await rr(u,t.label,t.labelStyle||"",!1,!0);let m=g.getBBox();if(ee(r)){const L=g.children[0],v=ct(g);m=L.getBoundingClientRect(),v.attr("width",m.width),v.attr("height",m.height)}const y=t.width<=m.width+t.padding?m.width+t.padding:t.width;t.width<=m.width+t.padding?t.diff=(y-t.width)/2-t.padding:t.diff=-t.padding;const C=t.height,b=t.x-y/2,k=t.y-C/2;q.trace("Data ",t,JSON.stringify(t));let T;if(t.look==="handDrawn"){const L=Z.svg(d),v=V(t,{roughness:.7,fill:s,stroke:a,fillWeight:3,seed:o}),N=L.path(cr(b,k,y,C,0),v);T=d.insert(()=>(q.debug("Rough node insert CXC",N),N),":first-child"),T.select("path:nth-child(2)").attr("style",c.join(";")),T.select("path").attr("style",h.join(";").replace("fill","stroke"))}else T=d.insert("rect",":first-child"),T.attr("style",l).attr("rx",t.rx).attr("ry",t.ry).attr("x",b).attr("y",k).attr("width",y).attr("height",C);const{subGraphTitleTopMargin:S}=el(r);if(u.attr("transform",`translate(${t.x-m.width/2}, ${t.y-t.height/2+S})`),n){const L=u.select("span");L&&L.attr("style",n)}const _=T.node().getBBox();return t.offsetX=0,t.width=_.width,t.height=_.height,t.offsetY=m.height-t.padding/2,t.intersect=function(L){return Er(t,L)},{cluster:d,labelBBox:m}},"rect"),wT=p((e,t)=>{const r=e.insert("g").attr("class","note-cluster").attr("id",t.domId),i=r.insert("rect",":first-child"),o=0*t.padding,s=o/2;i.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-s).attr("y",t.y-t.height/2-s).attr("width",t.width+o).attr("height",t.height+o).attr("fill","none");const a=i.node().getBBox();return t.width=a.width,t.height=a.height,t.intersect=function(n){return Er(t,n)},{cluster:r,labelBBox:{width:0,height:0}}},"noteGroup"),TT=p(async(e,t)=>{const r=Ct(),{themeVariables:i,handDrawnSeed:o}=r,{altBackground:s,compositeBackground:a,compositeTitleBackground:n,nodeBorder:l}=i,c=e.insert("g").attr("class",t.cssClasses).attr("id",t.domId).attr("data-id",t.id).attr("data-look",t.look),h=c.insert("g",":first-child"),d=c.insert("g").attr("class","cluster-label");let f=c.append("rect");const u=await rr(d,t.label,t.labelStyle,void 0,!0);let g=u.getBBox();if(ee(r)){const N=u.children[0],R=ct(u);g=N.getBoundingClientRect(),R.attr("width",g.width),R.attr("height",g.height)}const m=0*t.padding,y=m/2,C=(t.width<=g.width+t.padding?g.width+t.padding:t.width)+m;t.width<=g.width+t.padding?t.diff=(C-t.width)/2-t.padding:t.diff=-t.padding;const b=t.height+m,k=t.height+m-g.height-6,T=t.x-C/2,S=t.y-b/2;t.width=C;const _=t.y-t.height/2-y+g.height+2;let L;if(t.look==="handDrawn"){const N=t.cssClasses.includes("statediagram-cluster-alt"),R=Z.svg(c),P=t.rx||t.ry?R.path(cr(T,S,C,b,10),{roughness:.7,fill:n,fillStyle:"solid",stroke:l,seed:o}):R.rectangle(T,S,C,b,{seed:o});L=c.insert(()=>P,":first-child");const z=R.rectangle(T,_,C,k,{fill:N?s:a,fillStyle:N?"hachure":"solid",stroke:l,seed:o});L=c.insert(()=>P,":first-child"),f=c.insert(()=>z)}else L=h.insert("rect",":first-child"),L.attr("class","outer").attr("x",T).attr("y",S).attr("width",C).attr("height",b).attr("data-look",t.look),f.attr("class","inner").attr("x",T).attr("y",_).attr("width",C).attr("height",k);d.attr("transform",`translate(${t.x-g.width/2}, ${S+1-(ee(r)?0:3)})`);const v=L.node().getBBox();return t.height=v.height,t.offsetX=0,t.offsetY=g.height-t.padding/2,t.labelBBox=g,t.intersect=function(N){return Er(t,N)},{cluster:c,labelBBox:g}},"roundedWithTitle"),ST=p(async(e,t)=>{q.info("Creating subgraph rect for ",t.id,t);const r=Ct(),{themeVariables:i,handDrawnSeed:o}=r,{clusterBkg:s,clusterBorder:a}=i,{labelStyles:n,nodeStyles:l,borderStyles:c,backgroundStyles:h}=K(t),d=e.insert("g").attr("class","cluster "+t.cssClasses).attr("id",t.domId).attr("data-look",t.look),f=ee(r),u=d.insert("g").attr("class","cluster-label "),g=await Pe(u,t.label,{style:t.labelStyle,useHtmlLabels:f,isNode:!0,width:t.width});let m=g.getBBox();if(ee(r)){const L=g.children[0],v=ct(g);m=L.getBoundingClientRect(),v.attr("width",m.width),v.attr("height",m.height)}const y=t.width<=m.width+t.padding?m.width+t.padding:t.width;t.width<=m.width+t.padding?t.diff=(y-t.width)/2-t.padding:t.diff=-t.padding;const C=t.height,b=t.x-y/2,k=t.y-C/2;q.trace("Data ",t,JSON.stringify(t));let T;if(t.look==="handDrawn"){const L=Z.svg(d),v=V(t,{roughness:.7,fill:s,stroke:a,fillWeight:4,seed:o}),N=L.path(cr(b,k,y,C,t.rx),v);T=d.insert(()=>(q.debug("Rough node insert CXC",N),N),":first-child"),T.select("path:nth-child(2)").attr("style",c.join(";")),T.select("path").attr("style",h.join(";").replace("fill","stroke"))}else T=d.insert("rect",":first-child"),T.attr("style",l).attr("rx",t.rx).attr("ry",t.ry).attr("x",b).attr("y",k).attr("width",y).attr("height",C);const{subGraphTitleTopMargin:S}=el(r);if(u.attr("transform",`translate(${t.x-m.width/2}, ${t.y-t.height/2+S})`),n){const L=u.select("span");L&&L.attr("style",n)}const _=T.node().getBBox();return t.offsetX=0,t.width=_.width,t.height=_.height,t.offsetY=m.height-t.padding/2,t.intersect=function(L){return Er(t,L)},{cluster:d,labelBBox:m}},"kanbanSection"),_T=p((e,t)=>{const r=Ct(),{themeVariables:i,handDrawnSeed:o}=r,{nodeBorder:s}=i,a=e.insert("g").attr("class",t.cssClasses).attr("id",t.domId).attr("data-look",t.look),n=a.insert("g",":first-child"),l=0*t.padding,c=t.width+l;t.diff=-t.padding;const h=t.height+l,d=t.x-c/2,f=t.y-h/2;t.width=c;let u;if(t.look==="handDrawn"){const y=Z.svg(a).rectangle(d,f,c,h,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:s,seed:o});u=a.insert(()=>y,":first-child")}else{u=n.insert("rect",":first-child");let m="outer";t.look,m="divider",u.attr("class",m).attr("x",d).attr("y",f).attr("width",c).attr("height",h).attr("data-look",t.look)}const g=u.node().getBBox();return t.height=g.height,t.offsetX=0,t.offsetY=0,t.intersect=function(m){return Er(t,m)},{cluster:a,labelBBox:{}}},"divider"),BT=wp,vT={rect:wp,squareRect:BT,roundedWithTitle:TT,noteGroup:wT,divider:_T,kanbanSection:ST,swimlane:kT},Tp=new Map,LT=p(async(e,t)=>{const r=t.shape||"rect",i=await vT[r](e,t);return Tp.set(t.id,i),i},"insertCluster"),WL=p(()=>{Tp=new Map},"clear");function Sp(e,t){return e.intersect(t)}p(Sp,"intersectNode");var FT=Sp;function _p(e,t,r,i){var o=e.x,s=e.y,a=o-i.x,n=s-i.y,l=Math.sqrt(t*t*n*n+r*r*a*a),c=Math.abs(t*r*a/l);i.x0}p(hn,"sameSign");var ET=Lp;function Fp(e,t,r){let i=e.x,o=e.y,s=[],a=Number.POSITIVE_INFINITY,n=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(h){a=Math.min(a,h.x),n=Math.min(n,h.y)}):(a=Math.min(a,t.x),n=Math.min(n,t.y));let l=i-e.width/2-a,c=o-e.height/2-n;for(let h=0;h1&&s.sort(function(h,d){let f=h.x-r.x,u=h.y-r.y,g=Math.sqrt(f*f+u*u),m=d.x-r.x,y=d.y-r.y,C=Math.sqrt(m*m+y*y);return gh,":first-child");return d.attr("class","anchor").attr("style",qt(n)),Q(t,d),t.intersect=function(f){return q.info("Circle intersect",t,a,f),X.circle(t,a,f)},s}p(Ap,"anchor");function cn(e,t,r,i,o,s,a){const l=(e+r)/2,c=(t+i)/2,h=Math.atan2(i-t,r-e),d=(r-e)/2,f=(i-t)/2,u=d/o,g=f/s,m=Math.sqrt(u**2+g**2);if(m>1)throw new Error("The given radii are too small to create an arc between the points.");const y=Math.sqrt(1-m**2),C=l+y*s*Math.sin(h)*(a?-1:1),b=c-y*o*Math.cos(h)*(a?-1:1),k=Math.atan2((t-b)/s,(e-C)/o);let S=Math.atan2((i-b)/s,(r-C)/o)-k;a&&S<0&&(S+=2*Math.PI),!a&&S>0&&(S-=2*Math.PI);const _=[];for(let L=0;L<20;L++){const v=L/19,N=k+v*S,R=C+o*Math.cos(N),P=b+s*Math.sin(N);_.push({x:R,y:P})}return _}p(cn,"generateArcPoints");function Ep(e,t,r){const[i,o]=[t,r].sort((s,a)=>a-s);return o*(1-Math.sqrt(1-(e/i/2)**2))}p(Ep,"calculateArcSagitta");async function Mp(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t.padding??0,s=t.look==="neo"?16:o,a=t.look==="neo"?12:o,n=p(N=>N+a,"calcTotalHeight"),l=p(N=>{const R=N/2;return[R/(2.5+N/50),R]},"calcEllipseRadius"),{shapeSvg:c,bbox:h}=await it(e,t,rt(t)),d=n(t?.height?t?.height:h.height),[f,u]=l(d),g=Ep(d,f,u),y=(t?.width?t?.width:h.width)+s*2+g-g,C=d,{cssStyles:b}=t,k=[{x:y/2,y:-C/2},{x:-y/2,y:-C/2},...cn(-y/2,-C/2,-y/2,C/2,f,u,!1),{x:y/2,y:C/2},...cn(y/2,C/2,y/2,-C/2,f,u,!0)],T=Z.svg(c),S=V(t,{});t.look!=="handDrawn"&&(S.roughness=0,S.fillStyle="solid");const _=gt(k),L=T.path(_,S),v=c.insert(()=>L,":first-child");return v.attr("class","basic label-container outer-path"),b&&t.look!=="handDrawn"&&v.selectAll("path").attr("style",b),i&&t.look!=="handDrawn"&&v.selectAll("path").attr("style",i),v.attr("transform",`translate(${f/2}, 0)`),Q(t,v),t.intersect=function(N){return X.polygon(t,k,N)},c}p(Mp,"bowTieRect");function Xe(e,t,r,i){return e.insert("polygon",":first-child").attr("points",i.map(function(o){return o.x+","+o.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+r/2+")")}p(Xe,"insertPolygonShape");var wo=12;async function $p(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t.padding??0,s=t.look==="neo"?28:o,a=t.look==="neo"?24:o,{shapeSvg:n,bbox:l}=await it(e,t,rt(t)),c=(t?.width??l.width)+(t.look==="neo"?s*2:s+wo),h=(t?.height??l.height)+(t.look==="neo"?a*2:a),d=0,f=c,u=-h,g=0,m=[{x:d+wo,y:u},{x:f,y:u},{x:f,y:g},{x:d,y:g},{x:d,y:u+wo},{x:d+wo,y:u}];let y;const{cssStyles:C}=t;if(t.look==="handDrawn"){const b=Z.svg(n),k=V(t,{}),T=gt(m),S=b.path(T,k);y=n.insert(()=>S,":first-child").attr("transform",`translate(${-c/2}, ${h/2})`),C&&y.attr("style",C)}else y=Xe(n,c,h,m);return i&&y.attr("style",i),Q(t,y),t.intersect=function(b){return X.polygon(t,m,b)},n}p($p,"card");function Op(e,t){const{nodeStyles:r}=K(t);t.label="";const i=e.insert("g").attr("class",rt(t)).attr("id",t.domId??t.id),{cssStyles:o}=t,s=Math.max(28,t.width??0),a=[{x:0,y:s/2},{x:s/2,y:0},{x:0,y:-s/2},{x:-s/2,y:0}],n=Z.svg(i),l=V(t,{});t.look!=="handDrawn"&&(l.roughness=0,l.fillStyle="solid");const c=gt(a),h=n.path(c,l),d=i.insert(()=>h,":first-child");return o&&t.look!=="handDrawn"&&d.selectAll("path").attr("style",o),r&&t.look!=="handDrawn"&&d.selectAll("path").attr("style",r),t.width=28,t.height=28,t.intersect=function(f){return X.polygon(t,a,f)},i}p(Op,"choice");async function pl(e,t,r){const{labelStyles:i,nodeStyles:o}=K(t);t.labelStyle=i;const{shapeSvg:s,bbox:a,halfPadding:n}=await it(e,t,rt(t)),l=16,c=r?.padding??n,h=t.look==="neo"?a.width/2+l*2:a.width/2+c;let d;const{cssStyles:f}=t;if(t.look==="handDrawn"){const u=Z.svg(s),g=V(t,{}),m=u.circle(0,0,h*2,g);d=s.insert(()=>m,":first-child"),d.attr("class","basic label-container").attr("style",qt(f))}else d=s.insert("circle",":first-child").attr("class","basic label-container").attr("style",o).attr("r",h).attr("cx",0).attr("cy",0);return Q(t,d),t.calcIntersect=function(u,g){const m=u.width/2;return X.circle(u,m,g)},t.intersect=function(u){return q.info("Circle intersect",t,h,u),X.circle(t,h,u)},s}p(pl,"circle");function Ip(e){const t=Math.cos(Math.PI/4),r=Math.sin(Math.PI/4),i=e*2,o={x:i/2*t,y:i/2*r},s={x:-(i/2)*t,y:i/2*r},a={x:-(i/2)*t,y:-(i/2)*r},n={x:i/2*t,y:-(i/2)*r};return`M ${s.x},${s.y} L ${n.x},${n.y} M ${o.x},${o.y} L ${a.x},${a.y}`}p(Ip,"createLine");function Dp(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r,t.label="";const o=e.insert("g").attr("class",rt(t)).attr("id",t.domId??t.id),s=Math.max(30,t?.width??0),{cssStyles:a}=t,n=Z.svg(o),l=V(t,{});t.look!=="handDrawn"&&(l.roughness=0,l.fillStyle="solid");const c=n.circle(0,0,s*2,l),h=Ip(s),d=n.path(h,l),f=o.insert(()=>c,":first-child");return f.insert(()=>d),f.attr("class","outer-path"),a&&t.look!=="handDrawn"&&f.selectAll("path").attr("style",a),i&&t.look!=="handDrawn"&&f.selectAll("path").attr("style",i),Q(t,f),t.intersect=function(u){return q.info("crossedCircle intersect",t,{radius:s,point:u}),X.circle(t,s,u)},o}p(Dp,"crossedCircle");function We(e,t,r,i=100,o=0,s=180){const a=[],n=o*Math.PI/180,h=(s*Math.PI/180-n)/(i-1);for(let d=0;dS,":first-child").attr("stroke-opacity",0),_.insert(()=>k,":first-child"),_.attr("class","text"),f&&t.look!=="handDrawn"&&_.selectAll("path").attr("style",f),i&&t.look!=="handDrawn"&&_.selectAll("path").attr("style",i),_.attr("transform",`translate(${d}, 0)`),a.attr("transform",`translate(${-c/2+d-(s.x-(s.left??0))},${-h/2+(t.padding??0)/2-(s.y-(s.top??0))})`),Q(t,_),t.intersect=function(L){return X.polygon(t,g,L)},o}p(Pp,"curlyBraceLeft");function ze(e,t,r,i=100,o=0,s=180){const a=[],n=o*Math.PI/180,h=(s*Math.PI/180-n)/(i-1);for(let d=0;dS,":first-child").attr("stroke-opacity",0),_.insert(()=>k,":first-child"),_.attr("class","text"),f&&t.look!=="handDrawn"&&_.selectAll("path").attr("style",f),i&&t.look!=="handDrawn"&&_.selectAll("path").attr("style",i),_.attr("transform",`translate(${-d}, 0)`),a.attr("transform",`translate(${-c/2+(t.padding??0)/2-(s.x-(s.left??0))},${-h/2+(t.padding??0)/2-(s.y-(s.top??0))})`),Q(t,_),t.intersect=function(L){return X.polygon(t,g,L)},o}p(Rp,"curlyBraceRight");function Ht(e,t,r,i=100,o=0,s=180){const a=[],n=o*Math.PI/180,h=(s*Math.PI/180-n)/(i-1);for(let d=0;dN,":first-child").attr("stroke-opacity",0),R.insert(()=>T,":first-child"),R.insert(()=>L,":first-child"),R.attr("class","text"),f&&t.look!=="handDrawn"&&R.selectAll("path").attr("style",f),i&&t.look!=="handDrawn"&&R.selectAll("path").attr("style",i),R.attr("transform",`translate(${d-d/4}, 0)`),a.attr("transform",`translate(${-c/2+(t.padding??0)/2-(s.x-(s.left??0))},${-h/2+(t.padding??0)/2-(s.y-(s.top??0))})`),Q(t,R),t.intersect=function(P){return X.polygon(t,m,P)},o}p(Np,"curlyBraces");async function qp(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t.padding??0,s=t.look==="neo"?16:o,a=t.look==="neo"?12:o,n=20,l=5,{shapeSvg:c,bbox:h}=await it(e,t,rt(t)),d=Math.max(n,(h.width+s*2)*1.25,t?.width??0),f=Math.max(l,h.height+a*2,t?.height??0),u=f/2,{cssStyles:g}=t,m=Z.svg(c),y=V(t,{});t.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");const C=d,b=f,k=C-u,T=b/4,S=[{x:k,y:0},{x:T,y:0},{x:0,y:b/2},{x:T,y:b},{x:k,y:b},...ji(-k,-b/2,u,50,270,90)],_=gt(S),L=m.path(_,y),v=c.insert(()=>L,":first-child");return v.attr("class","basic label-container outer-path"),g&&t.look!=="handDrawn"&&v.selectChildren("path").attr("style",g),i&&t.look!=="handDrawn"&&v.selectChildren("path").attr("style",i),v.attr("transform",`translate(${-d/2}, ${-f/2})`),Q(t,v),t.intersect=function(N){return X.polygon(t,S,N)},c}p(qp,"curvedTrapezoid");var $T=p((e,t,r,i,o,s)=>[`M${e},${t+s}`,`a${o},${s} 0,0,0 ${r},0`,`a${o},${s} 0,0,0 ${-r},0`,`l0,${i}`,`a${o},${s} 0,0,0 ${r},0`,`l0,${-i}`].join(" "),"createCylinderPathD"),OT=p((e,t,r,i,o,s)=>[`M${e},${t+s}`,`M${e+r},${t+s}`,`a${o},${s} 0,0,0 ${-r},0`,`l0,${i}`,`a${o},${s} 0,0,0 ${r},0`,`l0,${-i}`].join(" "),"createOuterCylinderPathD"),IT=p((e,t,r,i,o,s)=>[`M${e-r/2},${-i/2}`,`a${o},${s} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD"),oc=8,sc=8;async function Wp(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t.padding??0,s=t.look==="neo"?24:o,a=t.look==="neo"?24:o;if(t.width||t.height){const y=t.width??0;t.width=(t.width??0)-a,t.widthS,":first-child"),g=n.insert(()=>T,":first-child"),g.attr("class","basic label-container"),m&&g.attr("style",m)}else{const y=$T(0,0,h,u,d,f);g=n.insert("path",":first-child").attr("d",y).attr("class","basic label-container outer-path").attr("style",qt(m)).attr("style",i)}return g.attr("label-offset-y",f),g.attr("transform",`translate(${-h/2}, ${-(u/2+f)})`),Q(t,g),c.attr("transform",`translate(${-(l.width/2)-(l.x-(l.left??0))}, ${-(l.height/2)+(t.padding??0)/1.5-(l.y-(l.top??0))})`),t.intersect=function(y){const C=X.rect(t,y),b=C.x-(t.x??0);if(d!=0&&(Math.abs(b)<(t.width??0)/2||Math.abs(b)==(t.width??0)/2&&Math.abs(C.y-(t.y??0))>(t.height??0)/2-f)){let k=f*f*(1-b*b/(d*d));k>0&&(k=Math.sqrt(k)),k=f-k,y.y-(t.y??0)>0&&(k=-k),C.y+=k}return C},n}p(Wp,"cylinder");async function ai(e,t,r){const{labelStyles:i,nodeStyles:o}=K(t);t.labelStyle=i;const{shapeSvg:s,bbox:a}=await it(e,t,rt(t)),n=Math.max(a.width+r.labelPaddingX*2,t?.width||0),l=Math.max(a.height+r.labelPaddingY*2,t?.height||0),c=-n/2,h=-l/2;let d,{rx:f,ry:u}=t;const{cssStyles:g}=t;if(r?.rx&&r.ry&&(f=r.rx,u=r.ry),t.look==="handDrawn"){const m=Z.svg(s),y=V(t,{}),C=f||u?m.path(cr(c,h,n,l,f||0),y):m.rectangle(c,h,n,l,y);d=s.insert(()=>C,":first-child"),d.attr("class","basic label-container").attr("style",qt(g))}else d=s.insert("rect",":first-child"),d.attr("class","basic label-container").attr("style",o).attr("rx",qt(f)).attr("ry",qt(u)).attr("x",c).attr("y",h).attr("width",n).attr("height",l);return Q(t,d),t.calcIntersect=function(m,y){return X.rect(m,y)},t.intersect=function(m){return X.rect(t,m)},s}p(ai,"drawRect");async function zp(e,t){const{cssClasses:r,labelPaddingX:i,labelPaddingY:o,padding:s,width:a,height:n}=t,l={rx:0,ry:0,labelPaddingX:i??(s??0)*2,labelPaddingY:o??s??0},c=await ai(e,t,l);if(t.look==="handDrawn"){const u=Z.svg(c),g=V(t,{}),m=c.select(".basic.label-container > path:nth-child(2)"),y=m.node();if(!y)return c;let C=null;if(y instanceof SVGGraphicsElement)C=y.getBBox();else return c;return c.insert(()=>u.line(C.x,C.y,C.x+C.width,C.y,g),".basic.label-container g.label"),c.insert(()=>u.line(C.x,C.y+C.height,C.x+C.width,C.y+C.height,g),".basic.label-container g.label"),m.remove(),c}const h=c.select(".basic.label-container"),d=(Number(h.attr("width"))||a)??0,f=(Number(h.attr("height"))||n)??0;return d>0&&f>0&&h.attr("stroke-dasharray",`${d} ${f}`),c}p(zp,"datastore");async function Hp(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t.look==="neo"?16:t.padding??0,s=t.look==="neo"?16:t.padding??0,{shapeSvg:a,bbox:n,label:l}=await it(e,t,rt(t)),c=n.width+o,h=n.height+s,d=h*.2,f=-c/2,u=-h/2-d/2,{cssStyles:g}=t,m=Z.svg(a),y=V(t,{});t.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");const C=[{x:f,y:u+d},{x:-f,y:u+d},{x:-f,y:-u},{x:f,y:-u},{x:f,y:u},{x:-f,y:u},{x:-f,y:u+d}],b=m.polygon(C.map(T=>[T.x,T.y]),y),k=a.insert(()=>b,":first-child");return k.attr("class","basic label-container outer-path"),g&&t.look!=="handDrawn"&&k.selectAll("path").attr("style",g),i&&t.look!=="handDrawn"&&k.selectAll("path").attr("style",i),l.attr("transform",`translate(${f+(t.padding??0)/2-(n.x-(n.left??0))}, ${u+d+(t.padding??0)/2-(n.y-(n.top??0))})`),Q(t,k),t.intersect=function(T){return X.rect(t,T)},a}p(Hp,"dividedRectangle");async function Yp(e,t){const{labelStyles:r,nodeStyles:i}=K(t),o=t.look==="neo"?12:5;t.labelStyle=r;const s=t.padding??0,a=t.look==="neo"?16:s,{shapeSvg:n,bbox:l}=await it(e,t,rt(t)),c=(t?.width?t?.width/2:l.width/2)+(a??0),h=c-o;let d;const{cssStyles:f}=t;if(t.look==="handDrawn"){const u=Z.svg(n),g=V(t,{roughness:.2,strokeWidth:2.5}),m=V(t,{roughness:.2,strokeWidth:1.5}),y=u.circle(0,0,c*2,g),C=u.circle(0,0,h*2,m);d=n.insert("g",":first-child"),d.attr("class",qt(t.cssClasses)).attr("style",qt(f)),d.node()?.appendChild(y),d.node()?.appendChild(C)}else{d=n.insert("g",":first-child");const u=d.insert("circle",":first-child"),g=d.insert("circle");d.attr("class","basic label-container").attr("style",i),u.attr("class","outer-circle").attr("style",i).attr("r",c).attr("cx",0).attr("cy",0),g.attr("class","inner-circle").attr("style",i).attr("r",h).attr("cx",0).attr("cy",0)}return Q(t,d),t.intersect=function(u){return q.info("DoubleCircle intersect",t,c,u),X.circle(t,c,u)},n}p(Yp,"doublecircle");function Up(e,t,{config:{themeVariables:r}}){const{labelStyles:i,nodeStyles:o}=K(t);t.label="",t.labelStyle=i;const s=e.insert("g").attr("class",rt(t)).attr("id",t.domId??t.id),a=7,{cssStyles:n}=t,l=Z.svg(s),{nodeBorder:c}=r,h=V(t,{fillStyle:"solid"});t.look!=="handDrawn"&&(h.roughness=0);const d=l.circle(0,0,a*2,h),f=s.insert(()=>d,":first-child");return f.selectAll("path").attr("style",`fill: ${c} !important;`),n&&n.length>0&&t.look!=="handDrawn"&&f.selectAll("path").attr("style",n),o&&t.look!=="handDrawn"&&f.selectAll("path").attr("style",o),Q(t,f),t.intersect=function(u){return q.info("filledCircle intersect",t,{radius:a,point:u}),X.circle(t,a,u)},s}p(Up,"filledCircle");var ac=10,nc=10;async function jp(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t.padding??0,s=t.look==="neo"?o*2:o;(t.width||t.height)&&(t.height=t?.height??0,t.heightC,":first-child").attr("transform",`translate(${-h/2}, ${h/2})`).attr("class","outer-path");return u&&t.look!=="handDrawn"&&b.selectChildren("path").attr("style",u),i&&t.look!=="handDrawn"&&b.selectChildren("path").attr("style",i),t.width=c,t.height=h,Q(t,b),l.attr("transform",`translate(${-n.width/2-(n.x-(n.left??0))}, ${-h/2+(t.padding??0)/2+(n.y-(n.top??0))})`),t.intersect=function(k){return q.info("Triangle intersect",t,f,k),X.polygon(t,f,k)},a}p(jp,"flippedTriangle");function Gp(e,t,{dir:r,config:{state:i,themeVariables:o}}){const{nodeStyles:s}=K(t);t.label="";const a=e.insert("g").attr("class",rt(t)).attr("id",t.domId??t.id),{cssStyles:n}=t;let l=Math.max(70,t?.width??0),c=Math.max(10,t?.height??0);r==="LR"&&(l=Math.max(10,t?.width??0),c=Math.max(70,t?.height??0));const h=-1*l/2,d=-1*c/2,f=Z.svg(a),u=V(t,{stroke:o.lineColor,fill:o.lineColor});t.look!=="handDrawn"&&(u.roughness=0,u.fillStyle="solid");const g=f.rectangle(h,d,l,c,u),m=a.insert(()=>g,":first-child");n&&t.look!=="handDrawn"&&m.selectAll("path").attr("style",n),s&&t.look!=="handDrawn"&&m.selectAll("path").attr("style",s),Q(t,m);const y=i?.padding??0;return t.width&&t.height&&(t.width+=y/2||0,t.height+=y/2||0),t.intersect=function(C){return X.rect(t,C)},a}p(Gp,"forkJoin");async function Xp(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=15,s=10,a=t.look==="neo"?16:t.padding??0,n=t.look==="neo"?12:t.padding??0;(t.width||t.height)&&(t.height=(t?.height??0)-n*2,t.heightb,":first-child");return k.attr("class","basic label-container outer-path"),u&&t.look!=="handDrawn"&&k.selectChildren("path").attr("style",u),i&&t.look!=="handDrawn"&&k.selectChildren("path").attr("style",i),Q(t,k),t.intersect=function(T){return q.info("Pill intersect",t,{radius:f,point:T}),X.polygon(t,y,T)},l}p(Xp,"halfRoundedRectangle");var DT=p((e,t,r,i,o)=>[`M${e+o},${t}`,`L${e+r-o},${t}`,`L${e+r},${t-i/2}`,`L${e+r-o},${t-i}`,`L${e+o},${t-i}`,`L${e},${t-i/2}`,"Z"].join(" "),"createHexagonPathD");async function Vp(e,t){const{labelStyles:r,nodeStyles:i}=K(t),o=t.look==="neo"?3.5:4;t.labelStyle=r;const s=t.padding??0,a=70,n=32,l=t.look==="neo"?a:s,c=t.look==="neo"?n:s;if(t.width||t.height){const k=(t.height??0)/o;t.width=(t?.width??0)-2*k-c,t.height=(t.height??0)-l}const{shapeSvg:h,bbox:d}=await it(e,t,rt(t)),f=(t?.height?t?.height:d.height)+l,u=f/o,g=(t?.width?t?.width:d.width)+2*u+c,m=[{x:u,y:0},{x:g-u,y:0},{x:g,y:-f/2},{x:g-u,y:-f},{x:u,y:-f},{x:0,y:-f/2}];let y;const{cssStyles:C}=t;if(t.look==="handDrawn"){const b=Z.svg(h),k=V(t,{}),T=DT(0,0,g,f,u),S=b.path(T,k);y=h.insert(()=>S,":first-child").attr("transform",`translate(${-g/2}, ${f/2})`),C&&y.attr("style",C)}else y=Xe(h,g,f,m);return i&&y.attr("style",i),t.width=g,t.height=f,Q(t,y),t.intersect=function(b){return X.polygon(t,m,b)},h}p(Vp,"hexagon");async function Zp(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.label="",t.labelStyle=r;const{shapeSvg:o}=await it(e,t,rt(t)),s=Math.max(30,t?.width??0),a=Math.max(30,t?.height??0),{cssStyles:n}=t,l=Z.svg(o),c=V(t,{});t.look!=="handDrawn"&&(c.roughness=0,c.fillStyle="solid");const h=[{x:0,y:0},{x:s,y:0},{x:0,y:a},{x:s,y:a}],d=gt(h),f=l.path(d,c),u=o.insert(()=>f,":first-child");return u.attr("class","basic label-container outer-path"),n&&t.look!=="handDrawn"&&u.selectChildren("path").attr("style",n),i&&t.look!=="handDrawn"&&u.selectChildren("path").attr("style",i),u.attr("transform",`translate(${-s/2}, ${-a/2})`),Q(t,u),t.intersect=function(g){return q.info("Pill intersect",t,{points:h}),X.polygon(t,h,g)},o}p(Zp,"hourglass");async function Kp(e,t,{config:{themeVariables:r,flowchart:i}}){const{labelStyles:o}=K(t);t.labelStyle=o;const s=t.assetHeight??48,a=t.assetWidth??48,n=Math.max(s,a),l=i?.wrappingWidth;t.width=Math.max(n,l??0);const{shapeSvg:c,bbox:h,label:d}=await it(e,t,"icon-shape default"),f=t.pos==="t",u=n,g=n,{nodeBorder:m}=r,{stylesMap:y}=si(t),C=-g/2,b=-u/2,k=t.label?8:0,T=Z.svg(c),S=V(t,{stroke:"none",fill:"none"});t.look!=="handDrawn"&&(S.roughness=0,S.fillStyle="solid");const _=T.rectangle(C,b,g,u,S),L=Math.max(g,h.width),v=u+h.height+k,N=T.rectangle(-L/2,-v/2,L,v,{...S,fill:"transparent",stroke:"none"}),R=c.insert(()=>_,":first-child"),P=c.insert(()=>N);if(t.icon){const z=c.append("g");z.html(`${await eo(t.icon,{height:n,width:n,fallbackPrefix:""})}`);const W=z.node().getBBox(),$=W.width,A=W.height,F=W.x,D=W.y;z.attr("transform",`translate(${-$/2-F},${f?h.height/2+k/2-A/2-D:-h.height/2-k/2-A/2-D})`),z.attr("style",`color: ${y.get("stroke")??m};`)}return d.attr("transform",`translate(${-h.width/2-(h.x-(h.left??0))},${f?-v/2:v/2-h.height})`),R.attr("transform",`translate(0,${f?h.height/2+k/2:-h.height/2-k/2})`),Q(t,P),t.intersect=function(z){if(q.info("iconSquare intersect",t,z),!t.label)return X.rect(t,z);const W=t.x??0,$=t.y??0,A=t.height??0;let F=[];return f?F=[{x:W-h.width/2,y:$-A/2},{x:W+h.width/2,y:$-A/2},{x:W+h.width/2,y:$-A/2+h.height+k},{x:W+g/2,y:$-A/2+h.height+k},{x:W+g/2,y:$+A/2},{x:W-g/2,y:$+A/2},{x:W-g/2,y:$-A/2+h.height+k},{x:W-h.width/2,y:$-A/2+h.height+k}]:F=[{x:W-g/2,y:$-A/2},{x:W+g/2,y:$-A/2},{x:W+g/2,y:$-A/2+u},{x:W+h.width/2,y:$-A/2+u},{x:W+h.width/2/2,y:$+A/2},{x:W-h.width/2,y:$+A/2},{x:W-h.width/2,y:$-A/2+u},{x:W-g/2,y:$-A/2+u}],X.polygon(t,F,z)},c}p(Kp,"icon");async function Qp(e,t,{config:{themeVariables:r,flowchart:i}}){const{labelStyles:o}=K(t);t.labelStyle=o;const s=t.assetHeight??48,a=t.assetWidth??48,n=Math.max(s,a),l=i?.wrappingWidth;t.width=Math.max(n,l??0);const{shapeSvg:c,bbox:h,label:d}=await it(e,t,"icon-shape default"),f=20,u=t.label?8:0,g=t.pos==="t",{nodeBorder:m,mainBkg:y}=r,{stylesMap:C}=si(t),b=Z.svg(c),k=V(t,{});t.look!=="handDrawn"&&(k.roughness=0,k.fillStyle="solid");const T=C.get("fill");k.stroke=T??y;const S=c.append("g");t.icon&&S.html(`${await eo(t.icon,{height:n,width:n,fallbackPrefix:""})}`);const _=S.node().getBBox(),L=_.width,v=_.height,N=_.x,R=_.y,P=Math.max(L,v)*Math.SQRT2+f*2,z=b.circle(0,0,P,k),W=Math.max(P,h.width),$=P+h.height+u,A=b.rectangle(-W/2,-$/2,W,$,{...k,fill:"transparent",stroke:"none"}),F=c.insert(()=>z,":first-child"),D=c.insert(()=>A);return S.attr("transform",`translate(${-L/2-N},${g?h.height/2+u/2-v/2-R:-h.height/2-u/2-v/2-R})`),S.attr("style",`color: ${C.get("stroke")??m};`),d.attr("transform",`translate(${-h.width/2-(h.x-(h.left??0))},${g?-$/2:$/2-h.height})`),F.attr("transform",`translate(0,${g?h.height/2+u/2:-h.height/2-u/2})`),Q(t,D),t.intersect=function(M){return q.info("iconSquare intersect",t,M),X.rect(t,M)},c}p(Qp,"iconCircle");async function Jp(e,t,{config:{themeVariables:r,flowchart:i}}){const{labelStyles:o}=K(t);t.labelStyle=o;const s=t.assetHeight??48,a=t.assetWidth??48,n=Math.max(s,a),l=i?.wrappingWidth;t.width=Math.max(n,l??0);const{shapeSvg:c,bbox:h,halfPadding:d,label:f}=await it(e,t,"icon-shape default"),u=t.pos==="t",g=n+d*2,m=n+d*2,{nodeBorder:y,mainBkg:C}=r,{stylesMap:b}=si(t),k=-m/2,T=-g/2,S=t.label?8:0,_=Z.svg(c),L=V(t,{});t.look!=="handDrawn"&&(L.roughness=0,L.fillStyle="solid");const v=b.get("fill");L.stroke=v??C;const N=_.path(cr(k,T,m,g,5),L),R=Math.max(m,h.width),P=g+h.height+S,z=_.rectangle(-R/2,-P/2,R,P,{...L,fill:"transparent",stroke:"none"}),W=c.insert(()=>N,":first-child").attr("class","icon-shape2"),$=c.insert(()=>z);if(t.icon){const A=c.append("g");A.html(`${await eo(t.icon,{height:n,width:n,fallbackPrefix:""})}`);const F=A.node().getBBox(),D=F.width,M=F.height,H=F.x,Y=F.y;A.attr("transform",`translate(${-D/2-H},${u?h.height/2+S/2-M/2-Y:-h.height/2-S/2-M/2-Y})`),A.attr("style",`color: ${b.get("stroke")??y};`)}return f.attr("transform",`translate(${-h.width/2-(h.x-(h.left??0))},${u?-P/2:P/2-h.height})`),W.attr("transform",`translate(0,${u?h.height/2+S/2:-h.height/2-S/2})`),Q(t,$),t.intersect=function(A){if(q.info("iconSquare intersect",t,A),!t.label)return X.rect(t,A);const F=t.x??0,D=t.y??0,M=t.height??0;let H=[];return u?H=[{x:F-h.width/2,y:D-M/2},{x:F+h.width/2,y:D-M/2},{x:F+h.width/2,y:D-M/2+h.height+S},{x:F+m/2,y:D-M/2+h.height+S},{x:F+m/2,y:D+M/2},{x:F-m/2,y:D+M/2},{x:F-m/2,y:D-M/2+h.height+S},{x:F-h.width/2,y:D-M/2+h.height+S}]:H=[{x:F-m/2,y:D-M/2},{x:F+m/2,y:D-M/2},{x:F+m/2,y:D-M/2+g},{x:F+h.width/2,y:D-M/2+g},{x:F+h.width/2/2,y:D+M/2},{x:F-h.width/2,y:D+M/2},{x:F-h.width/2,y:D-M/2+g},{x:F-m/2,y:D-M/2+g}],X.polygon(t,H,A)},c}p(Jp,"iconRounded");async function tg(e,t,{config:{themeVariables:r,flowchart:i}}){const{labelStyles:o}=K(t);t.labelStyle=o;const s=t.assetHeight??48,a=t.assetWidth??48,n=Math.max(s,a),l=i?.wrappingWidth;t.width=Math.max(n,l??0);const{shapeSvg:c,bbox:h,halfPadding:d,label:f}=await it(e,t,"icon-shape default"),u=t.pos==="t",g=n+d*2,m=n+d*2,{nodeBorder:y,mainBkg:C}=r,{stylesMap:b}=si(t),k=-m/2,T=-g/2,S=t.label?8:0,_=Z.svg(c),L=V(t,{});t.look!=="handDrawn"&&(L.roughness=0,L.fillStyle="solid");const v=b.get("fill");L.stroke=v??C;const N=_.path(cr(k,T,m,g,.1),L),R=Math.max(m,h.width),P=g+h.height+S,z=_.rectangle(-R/2,-P/2,R,P,{...L,fill:"transparent",stroke:"none"}),W=c.insert(()=>N,":first-child"),$=c.insert(()=>z);if(t.icon){const A=c.append("g");A.html(`${await eo(t.icon,{height:n,width:n,fallbackPrefix:""})}`);const F=A.node().getBBox(),D=F.width,M=F.height,H=F.x,Y=F.y;A.attr("transform",`translate(${-D/2-H},${u?h.height/2+S/2-M/2-Y:-h.height/2-S/2-M/2-Y})`),A.attr("style",`color: ${b.get("stroke")??y};`)}return f.attr("transform",`translate(${-h.width/2-(h.x-(h.left??0))},${u?-P/2:P/2-h.height})`),W.attr("transform",`translate(0,${u?h.height/2+S/2:-h.height/2-S/2})`),Q(t,$),t.intersect=function(A){if(q.info("iconSquare intersect",t,A),!t.label)return X.rect(t,A);const F=t.x??0,D=t.y??0,M=t.height??0;let H=[];return u?H=[{x:F-h.width/2,y:D-M/2},{x:F+h.width/2,y:D-M/2},{x:F+h.width/2,y:D-M/2+h.height+S},{x:F+m/2,y:D-M/2+h.height+S},{x:F+m/2,y:D+M/2},{x:F-m/2,y:D+M/2},{x:F-m/2,y:D-M/2+h.height+S},{x:F-h.width/2,y:D-M/2+h.height+S}]:H=[{x:F-m/2,y:D-M/2},{x:F+m/2,y:D-M/2},{x:F+m/2,y:D-M/2+g},{x:F+h.width/2,y:D-M/2+g},{x:F+h.width/2/2,y:D+M/2},{x:F-h.width/2,y:D+M/2},{x:F-h.width/2,y:D-M/2+g},{x:F-m/2,y:D-M/2+g}],X.polygon(t,H,A)},c}p(tg,"iconSquare");async function eg(e,t,{config:{flowchart:r}}){const i=new Image;i.src=t?.img??"",await i.decode();const o=Number(i.naturalWidth.toString().replace("px","")),s=Number(i.naturalHeight.toString().replace("px",""));t.imageAspectRatio=o/s;const{labelStyles:a}=K(t);t.labelStyle=a;const n=r?.wrappingWidth;t.defaultWidth=r?.wrappingWidth;const l=Math.max(t.label?n??0:0,t?.assetWidth??o),c=t.constraint==="on"&&t?.assetHeight?t.assetHeight*t.imageAspectRatio:l,h=t.constraint==="on"?c/t.imageAspectRatio:t?.assetHeight??s;t.width=Math.max(c,n??0);const{shapeSvg:d,bbox:f,label:u}=await it(e,t,"image-shape default"),g=t.pos==="t",m=-c/2,y=-h/2,C=t.label?8:0,b=Z.svg(d),k=V(t,{});t.look!=="handDrawn"&&(k.roughness=0,k.fillStyle="solid");const T=b.rectangle(m,y,c,h,k),S=Math.max(c,f.width),_=h+f.height+C,L=b.rectangle(-S/2,-_/2,S,_,{...k,fill:"none",stroke:"none"}),v=d.insert(()=>T,":first-child"),N=d.insert(()=>L);if(t.img){const R=d.append("image");R.attr("href",t.img),R.attr("width",c),R.attr("height",h),R.attr("preserveAspectRatio","none"),R.attr("transform",`translate(${-c/2},${g?_/2-h:-_/2})`)}return u.attr("transform",`translate(${-f.width/2-(f.x-(f.left??0))},${g?-h/2-f.height/2-C/2:h/2-f.height/2+C/2})`),v.attr("transform",`translate(0,${g?f.height/2+C/2:-f.height/2-C/2})`),Q(t,N),t.intersect=function(R){if(q.info("iconSquare intersect",t,R),!t.label)return X.rect(t,R);const P=t.x??0,z=t.y??0,W=t.height??0;let $=[];return g?$=[{x:P-f.width/2,y:z-W/2},{x:P+f.width/2,y:z-W/2},{x:P+f.width/2,y:z-W/2+f.height+C},{x:P+c/2,y:z-W/2+f.height+C},{x:P+c/2,y:z+W/2},{x:P-c/2,y:z+W/2},{x:P-c/2,y:z-W/2+f.height+C},{x:P-f.width/2,y:z-W/2+f.height+C}]:$=[{x:P-c/2,y:z-W/2},{x:P+c/2,y:z-W/2},{x:P+c/2,y:z-W/2+h},{x:P+f.width/2,y:z-W/2+h},{x:P+f.width/2/2,y:z+W/2},{x:P-f.width/2,y:z+W/2},{x:P-f.width/2,y:z-W/2+h},{x:P-c/2,y:z-W/2+h}],X.polygon(t,$,R)},d}p(eg,"imageSquare");async function rg(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t.padding??0,s=o,a=t.look==="neo"?o*2:o,{shapeSvg:n,bbox:l}=await it(e,t,rt(t)),c=Math.max(l.width+(a??0)*2,t?.width??0),h=Math.max(l.height+(s??0)*2,t?.height??0),d=[{x:0,y:0},{x:c,y:0},{x:c+3*h/6,y:-h},{x:-3*h/6,y:-h}];let f;const{cssStyles:u}=t;if(t.look==="handDrawn"){const g=Z.svg(n),m=V(t,{}),y=gt(d),C=g.path(y,m);f=n.insert(()=>C,":first-child").attr("transform",`translate(${-c/2}, ${h/2})`),u&&f.attr("style",u)}else f=Xe(n,c,h,d);return i&&f.attr("style",i),t.width=c,t.height=h,Q(t,f),t.intersect=function(g){return X.polygon(t,d,g)},n}p(rg,"inv_trapezoid");async function ig(e,t){const{shapeSvg:r,bbox:i,label:o}=await it(e,t,"label"),s=r.insert("rect",":first-child");return s.attr("width",.1).attr("height",.1),r.attr("class","label edgeLabel"),o.attr("transform",`translate(${-(i.width/2)-(i.x-(i.left??0))}, ${-(i.height/2)-(i.y-(i.top??0))})`),Q(t,s),t.intersect=function(l){return X.rect(t,l)},r}p(ig,"labelRect");async function og(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t.padding??0,s=o,a=t.look==="neo"?o*2:o,{shapeSvg:n,bbox:l}=await it(e,t,rt(t)),c=(t?.height??l.height)+s,h=(t?.width??l.width)+a,d=[{x:0,y:0},{x:h+3*c/6,y:0},{x:h,y:-c},{x:-(3*c)/6,y:-c}];let f;const{cssStyles:u}=t;if(t.look==="handDrawn"){const g=Z.svg(n),m=V(t,{}),y=gt(d),C=g.path(y,m);f=n.insert(()=>C,":first-child").attr("transform",`translate(${-h/2}, ${c/2})`),u&&f.attr("style",u)}else f=Xe(n,h,c,d);return i&&f.attr("style",i),t.width=h,t.height=c,Q(t,f),t.intersect=function(g){return X.polygon(t,d,g)},n}p(og,"lean_left");async function sg(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t.padding??0,s=o,a=t.look==="neo"?o*2:o,{shapeSvg:n,bbox:l}=await it(e,t,rt(t)),c=(t?.height??l.height)+s,h=(t?.width??l.width)+a,d=[{x:-3*c/6,y:0},{x:h,y:0},{x:h+3*c/6,y:-c},{x:0,y:-c}];let f;const{cssStyles:u}=t;if(t.look==="handDrawn"){const g=Z.svg(n),m=V(t,{}),y=gt(d),C=g.path(y,m);f=n.insert(()=>C,":first-child").attr("transform",`translate(${-h/2}, ${c/2})`),u&&f.attr("style",u)}else f=Xe(n,h,c,d);return i&&f.attr("style",i),t.width=h,t.height=c,Q(t,f),t.intersect=function(g){return X.polygon(t,d,g)},n}p(sg,"lean_right");function ag(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.label="",t.labelStyle=r;const o=e.insert("g").attr("class",rt(t)).attr("id",t.domId??t.id),{cssStyles:s}=t,a=Math.max(35,t?.width??0),n=Math.max(35,t?.height??0),l=7,c=[{x:a,y:0},{x:0,y:n+l/2},{x:a-2*l,y:n+l/2},{x:0,y:2*n},{x:a,y:n-l/2},{x:2*l,y:n-l/2}],h=Z.svg(o),d=V(t,{});t.look!=="handDrawn"&&(d.roughness=0,d.fillStyle="solid");const f=gt(c),u=h.path(f,d),g=o.insert(()=>u,":first-child");return g.attr("class","outer-path"),s&&t.look!=="handDrawn"&&g.selectAll("path").attr("style",s),i&&t.look!=="handDrawn"&&g.selectAll("path").attr("style",i),g.attr("transform",`translate(-${a/2},${-n})`),Q(t,g),t.intersect=function(m){return q.info("lightningBolt intersect",t,m),X.polygon(t,c,m)},o}p(ag,"lightningBolt");var PT=p((e,t,r,i,o,s,a)=>[`M${e},${t+s}`,`a${o},${s} 0,0,0 ${r},0`,`a${o},${s} 0,0,0 ${-r},0`,`l0,${i}`,`a${o},${s} 0,0,0 ${r},0`,`l0,${-i}`,`M${e},${t+s+a}`,`a${o},${s} 0,0,0 ${r},0`].join(" "),"createCylinderPathD"),RT=p((e,t,r,i,o,s,a)=>[`M${e},${t+s}`,`M${e+r},${t+s}`,`a${o},${s} 0,0,0 ${-r},0`,`l0,${i}`,`a${o},${s} 0,0,0 ${r},0`,`l0,${-i}`,`M${e},${t+s+a}`,`a${o},${s} 0,0,0 ${r},0`].join(" "),"createOuterCylinderPathD"),NT=p((e,t,r,i,o,s)=>[`M${e-r/2},${-i/2}`,`a${o},${s} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD"),lc=10,hc=10;async function ng(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t.padding??0,s=t.look==="neo"?16:o,a=t.look==="neo"?24:o;if(t.width||t.height){const C=t.width??0;t.width=(t.width??0)-s,t.width_,":first-child").attr("class","line"),m=n.insert(()=>S,":first-child"),m.attr("class","basic label-container"),y&&m.attr("style",y)}else{const C=PT(0,0,h,u,d,f,g);m=n.insert("path",":first-child").attr("d",C).attr("class","basic label-container outer-path").attr("style",qt(y)).attr("style",i)}return m.attr("label-offset-y",f),m.attr("transform",`translate(${-h/2}, ${-(u/2+f)})`),Q(t,m),c.attr("transform",`translate(${-(l.width/2)-(l.x-(l.left??0))}, ${-(l.height/2)+f-(l.y-(l.top??0))})`),t.intersect=function(C){const b=X.rect(t,C),k=b.x-(t.x??0);if(d!=0&&(Math.abs(k)<(t.width??0)/2||Math.abs(k)==(t.width??0)/2&&Math.abs(b.y-(t.y??0))>(t.height??0)/2-f)){let T=f*f*(1-k*k/(d*d));T>0&&(T=Math.sqrt(T)),T=f-T,C.y-(t.y??0)>0&&(T=-T),b.y+=T}return b},n}p(ng,"linedCylinder");async function lg(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t.padding??0,s=t.look==="neo"?16:o,a=t.look==="neo"?12:o;if(t.width||t.height){const T=t.width;t.width=(T??0)*10/11-s*2,t.width<10&&(t.width=10),t.height=(t?.height??0)-a*2,t.height<10&&(t.height=10)}const{shapeSvg:n,bbox:l,label:c}=await it(e,t,rt(t)),h=(t?.width?t?.width:l.width)+(s??0)*2,d=(t?.height?t?.height:l.height)+(a??0)*2,f=t.look==="neo"?d/4:d/8,u=d+f,{cssStyles:g}=t,m=Z.svg(n),y=V(t,{});t.look!=="handDrawn"&&(y.roughness=0,y.fillStyle="solid");const C=[{x:-h/2-h/2*.1,y:-u/2},{x:-h/2-h/2*.1,y:u/2},...hr(-h/2-h/2*.1,u/2,h/2+h/2*.1,u/2,f,.8),{x:h/2+h/2*.1,y:-u/2},{x:-h/2-h/2*.1,y:-u/2},{x:-h/2,y:-u/2},{x:-h/2,y:u/2*1.1},{x:-h/2,y:-u/2}],b=m.polygon(C.map(T=>[T.x,T.y]),y),k=n.insert(()=>b,":first-child");return k.attr("class","basic label-container outer-path"),g&&t.look!=="handDrawn"&&k.selectAll("path").attr("style",g),i&&t.look!=="handDrawn"&&k.selectAll("path").attr("style",i),k.attr("transform",`translate(0,${-f/2})`),c.attr("transform",`translate(${-h/2+(t.padding??0)+h/2*.1/2-(l.x-(l.left??0))},${-d/2+(t.padding??0)-f/2-(l.y-(l.top??0))})`),Q(t,k),t.intersect=function(T){return X.polygon(t,C,T)},n}p(lg,"linedWaveEdgedRect");async function hg(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t.padding??0,s=t.look==="neo"?16:o,a=t.look==="neo"?12:o,n=t.look==="neo"?10:5;(t.width||t.height)&&(t.width=Math.max((t?.width??0)-s*2-2*n,10),t.height=Math.max((t?.height??0)-a*2-2*n,10));const{shapeSvg:l,bbox:c,label:h}=await it(e,t,rt(t)),d=(t?.width?t?.width:c.width)+s*2+2*n,f=(t?.height?t?.height:c.height)+a*2+2*n,u=d-2*n,g=f-2*n,m=-u/2,y=-g/2,{cssStyles:C}=t,b=Z.svg(l),k=V(t,{}),T=[{x:m-n,y:y+n},{x:m-n,y:y+g+n},{x:m+u-n,y:y+g+n},{x:m+u-n,y:y+g},{x:m+u,y:y+g},{x:m+u,y:y+g-n},{x:m+u+n,y:y+g-n},{x:m+u+n,y:y-n},{x:m+n,y:y-n},{x:m+n,y},{x:m,y},{x:m,y:y+n}],S=[{x:m,y:y+n},{x:m+u-n,y:y+n},{x:m+u-n,y:y+g},{x:m+u,y:y+g},{x:m+u,y},{x:m,y}];t.look!=="handDrawn"&&(k.roughness=0,k.fillStyle="solid");const _=gt(T);let L=b.path(_,k);const v=gt(S);let N=b.path(v,k);t.look!=="handDrawn"&&(L=ln(L),N=ln(N));const R=l.insert("g",":first-child");return R.insert(()=>L),R.insert(()=>N),R.attr("class","basic label-container outer-path"),C&&t.look!=="handDrawn"&&R.selectAll("path").attr("style",C),i&&t.look!=="handDrawn"&&R.selectAll("path").attr("style",i),h.attr("transform",`translate(${-(c.width/2)-n-(c.x-(c.left??0))}, ${-(c.height/2)+n-(c.y-(c.top??0))})`),Q(t,R),t.intersect=function(P){return X.polygon(t,T,P)},l}p(hg,"multiRect");async function cg(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const{shapeSvg:o,bbox:s,label:a}=await it(e,t,rt(t)),n=t.padding??0,l=t.look==="neo"?16:n,c=t.look==="neo"?12:n;let h=!0;(t.width||t.height)&&(h=!1,t.width=(t?.width??0)-l*2,t.height=(t?.height??0)-c*3);const d=Math.max(s.width,t?.width??0)+l*2,f=Math.max(s.height,t?.height??0)+c*3,u=t.look==="neo"?f/4:f/8,g=f+(h?u/2:-u/2),m=-d/2,y=-g/2,C=10,{cssStyles:b}=t,k=hr(m-C,y+g+C,m+d-C,y+g+C,u,.8),T=k?.[k.length-1],S=[{x:m-C,y:y+C},{x:m-C,y:y+g+C},...k,{x:m+d-C,y:T.y-C},{x:m+d,y:T.y-C},{x:m+d,y:T.y-2*C},{x:m+d+C,y:T.y-2*C},{x:m+d+C,y:y-C},{x:m+C,y:y-C},{x:m+C,y},{x:m,y},{x:m,y:y+C}],_=[{x:m,y:y+C},{x:m+d-C,y:y+C},{x:m+d-C,y:T.y-C},{x:m+d,y:T.y-C},{x:m+d,y},{x:m,y}],L=Z.svg(o),v=V(t,{});t.look!=="handDrawn"&&(v.roughness=0,v.fillStyle="solid");const N=gt(S),R=L.path(N,v),P=gt(_),z=L.path(P,v),W=o.insert(()=>R,":first-child");return W.insert(()=>z),W.attr("class","basic label-container outer-path"),b&&t.look!=="handDrawn"&&W.selectAll("path").attr("style",b),i&&t.look!=="handDrawn"&&W.selectAll("path").attr("style",i),W.attr("transform",`translate(0,${-u/2})`),a.attr("transform",`translate(${-(s.width/2)-C-(s.x-(s.left??0))}, ${-(s.height/2)+C-u/2-(s.y-(s.top??0))})`),Q(t,W),t.intersect=function($){return X.polygon(t,S,$)},o}p(cg,"multiWaveEdgedRectangle");async function dg(e,t,{config:{themeVariables:r}}){const{labelStyles:i,nodeStyles:o}=K(t);t.labelStyle=i,t.useHtmlLabels||ee(vt())||(t.centerLabel=!0);const{shapeSvg:a,bbox:n,label:l}=await it(e,t,rt(t)),c=Math.max(n.width+(t.padding??0)*2,t?.width??0),h=Math.max(n.height+(t.padding??0)*2,t?.height??0),d=-c/2,f=-h/2,{cssStyles:u}=t,g=Z.svg(a),m=V(t,{fill:r.noteBkgColor,stroke:r.noteBorderColor});t.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");const y=g.rectangle(d,f,c,h,m),C=a.insert(()=>y,":first-child");return C.attr("class","basic label-container outer-path"),l.attr("class","label noteLabel"),u&&t.look!=="handDrawn"&&C.selectAll("path").attr("style",u),o&&t.look!=="handDrawn"&&C.selectAll("path").attr("style",o),l.attr("transform",`translate(${-n.width/2-(n.x-(n.left??0))}, ${-(n.height/2)-(n.y-(n.top??0))})`),Q(t,C),t.intersect=function(b){return X.rect(t,b)},a}p(dg,"note");var qT=p((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");async function ug(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const{shapeSvg:o,bbox:s}=await it(e,t,rt(t)),a=s.width+(t.padding??0),n=s.height+(t.padding??0),l=a+n,c=.5,h=[{x:l/2,y:0},{x:l,y:-l/2},{x:l/2,y:-l},{x:0,y:-l/2}];let d;const{cssStyles:f}=t;if(t.look==="handDrawn"){const u=Z.svg(o),g=V(t,{}),m=qT(0,0,l),y=u.path(m,g);d=o.insert(()=>y,":first-child").attr("transform",`translate(${-l/2+c}, ${l/2})`),f&&d.attr("style",f)}else d=Xe(o,l,l,h),d.attr("transform",`translate(${-l/2+c}, ${l/2})`);return i&&d.attr("style",i),Q(t,d),t.calcIntersect=function(u,g){const m=u.width,y=[{x:m/2,y:0},{x:m,y:-m/2},{x:m/2,y:-m},{x:0,y:-m/2}],C=X.polygon(u,y,g);return{x:C.x-.5,y:C.y-.5}},t.intersect=function(u){return this.calcIntersect(t,u)},o}p(ug,"question");async function fg(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t.padding??0,s=t.look==="neo"?21:o??0,a=t.look==="neo"?12:o??0,{shapeSvg:n,bbox:l,label:c}=await it(e,t,rt(t)),h=(t?.width??l.width)+(t.look==="neo"?s*2:s),d=(t?.height??l.height)+(t.look==="neo"?a*2:a),f=-h/2,u=-d/2,g=u/2,m=[{x:f+g,y:u},{x:f,y:0},{x:f+g,y:-u},{x:-f,y:-u},{x:-f,y:u}],{cssStyles:y}=t,C=Z.svg(n),b=V(t,{});t.look!=="handDrawn"&&(b.roughness=0,b.fillStyle="solid");const k=gt(m),T=C.path(k,b),S=n.insert(()=>T,":first-child");return S.attr("class","basic label-container outer-path"),y&&t.look!=="handDrawn"&&S.selectAll("path").attr("style",y),i&&t.look!=="handDrawn"&&S.selectAll("path").attr("style",i),S.attr("transform",`translate(${-g/2},0)`),c.attr("transform",`translate(${-g/2-l.width/2-(l.x-(l.left??0))}, ${-(l.height/2)-(l.y-(l.top??0))})`),Q(t,S),t.intersect=function(_){return X.polygon(t,m,_)},n}p(fg,"rect_left_inv_arrow");async function pg(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;let o;t.cssClasses?o="node "+t.cssClasses:o="node default";const s=e.insert("g").attr("class",o).attr("id",t.domId||t.id),a=s.insert("g"),n=s.insert("g").attr("class","label").attr("style",i),l=t.description,c=t.label,h=await rr(n,c,t.labelStyle,!0,!0);let d={width:0,height:0};if(ee(Ct())){const v=h.children[0],N=ct(h);d=v.getBoundingClientRect(),N.attr("width",d.width),N.attr("height",d.height)}q.info("Text 2",l);const f=l||[],u=h.getBBox(),g=await rr(n,Array.isArray(f)?f.join("
        "):f,t.labelStyle,!0,!0),m=g.children[0],y=ct(g);d=m.getBoundingClientRect(),y.attr("width",d.width),y.attr("height",d.height);const C=(t.padding||0)/2;ct(g).attr("transform","translate( "+(d.width>u.width?0:(u.width-d.width)/2)+", "+(u.height+C+5)+")"),ct(h).attr("transform","translate( "+(d.width(q.debug("Rough node insert CXC",R),P),":first-child"),_=s.insert(()=>(q.debug("Rough node insert CXC",R),R),":first-child")}else _=a.insert("rect",":first-child"),L=a.insert("line"),_.attr("class","outer title-state").attr("style",i).attr("x",-d.width/2-C).attr("y",-d.height/2-C).attr("width",d.width+(t.padding||0)).attr("height",d.height+(t.padding||0)),L.attr("class","divider").attr("x1",-d.width/2-C).attr("x2",d.width/2+C).attr("y1",-d.height/2-C+u.height+C).attr("y2",-d.height/2-C+u.height+C);return Q(t,_),t.intersect=function(v){return X.rect(t,v)},s}p(pg,"rectWithTitle");async function gg(e,t,{config:{themeVariables:r}}){const i=r?.radius??5,o={rx:i,ry:i,labelPaddingX:(t?.padding??0)*1,labelPaddingY:(t?.padding??0)*1};return ai(e,t,o)}p(gg,"roundedRect");var gr=8;async function mg(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t.look==="neo"?16:t.padding??0,s=t.look==="neo"?12:t.padding??0,{shapeSvg:a,bbox:n,label:l}=await it(e,t,rt(t)),c=(t?.width??n.width)+o*2+(t.look==="neo"?gr:gr*2),h=(t?.height??n.height)+s*2,d=c-gr,f=h,u=gr-c/2,g=-h/2,{cssStyles:m}=t,y=Z.svg(a),C=V(t,{});t.look!=="handDrawn"&&(C.roughness=0,C.fillStyle="solid");const b=[{x:u,y:g},{x:u+d,y:g},{x:u+d,y:g+f},{x:u-gr,y:g+f},{x:u-gr,y:g},{x:u,y:g},{x:u,y:g+f}],k=y.polygon(b.map(S=>[S.x,S.y]),C),T=a.insert(()=>k,":first-child");return T.attr("class","basic label-container outer-path").attr("style",qt(m)),i&&t.look!=="handDrawn"&&T.selectAll("path").attr("style",i),m&&t.look!=="handDrawn"&&T.selectAll("path").attr("style",i),l.attr("transform",`translate(${gr/2-n.width/2-(n.x-(n.left??0))}, ${-(n.height/2)-(n.y-(n.top??0))})`),Q(t,T),t.intersect=function(S){return X.rect(t,S)},a}p(mg,"shadedProcess");async function yg(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t.padding??0,s=t.look==="neo"?16:o,a=t.look==="neo"?12:o;(t.width||t.height)&&(t.width=Math.max((t?.width??0)-s*2,10),t.height=Math.max((t?.height??0)/1.5-a*2,10));const{shapeSvg:n,bbox:l,label:c}=await it(e,t,rt(t)),h=(t?.width?t?.width:l.width)+s*2,d=((t?.height?t?.height:l.height)+a*2)*1.5,f=h,u=d/1.5,g=-f/2,m=-u/2,{cssStyles:y}=t,C=Z.svg(n),b=V(t,{});t.look!=="handDrawn"&&(b.roughness=0,b.fillStyle="solid");const k=[{x:g,y:m},{x:g,y:m+u},{x:g+f,y:m+u},{x:g+f,y:m-u/2}],T=gt(k),S=C.path(T,b),_=n.insert(()=>S,":first-child");return _.attr("class","basic label-container outer-path"),y&&t.look!=="handDrawn"&&_.selectChildren("path").attr("style",y),i&&t.look!=="handDrawn"&&_.selectChildren("path").attr("style",i),_.attr("transform",`translate(0, ${u/4})`),c.attr("transform",`translate(${-f/2+(t.padding??0)-(l.x-(l.left??0))}, ${-u/4+(t.padding??0)-(l.y-(l.top??0))})`),Q(t,_),t.intersect=function(L){return X.polygon(t,k,L)},n}p(yg,"slopedRect");async function Cg(e,t){const r=t.padding??0,i=t.look==="neo"?16:r*2,o=t.look==="neo"?12:r,s={rx:0,ry:0,labelPaddingX:t.labelPaddingX??i,labelPaddingY:o};return ai(e,t,s)}p(Cg,"squareRect");async function xg(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t.padding??0,s=t.look==="neo"?20:o,a=t.look==="neo"?12:o,{shapeSvg:n,bbox:l}=await it(e,t,rt(t)),c=l.height+(t.look==="neo"?a*2:a),h=l.width+c/4+(t.look==="neo"?s*2:s),d=c/2,{cssStyles:f}=t,u=Z.svg(n),g=V(t,{});t.look!=="handDrawn"&&(g.roughness=0,g.fillStyle="solid");const m=[{x:-h/2+d,y:-c/2},{x:h/2-d,y:-c/2},...ji(-h/2+d,0,d,50,90,270),{x:h/2-d,y:c/2},...ji(h/2-d,0,d,50,270,450)],y=gt(m),C=u.path(y,g),b=n.insert(()=>C,":first-child");return b.attr("class","basic label-container outer-path"),f&&t.look!=="handDrawn"&&b.selectChildren("path").attr("style",f),i&&t.look!=="handDrawn"&&b.selectChildren("path").attr("style",i),Q(t,b),t.intersect=function(k){return X.polygon(t,m,k)},n}p(xg,"stadium");async function bg(e,t){const r={rx:t.look==="neo"?3:5,ry:t.look==="neo"?3:5};return ai(e,t,r)}p(bg,"state");function kg(e,t,{config:{themeVariables:r}}){const{labelStyles:i,nodeStyles:o}=K(t);t.labelStyle=i;const{cssStyles:s}=t,{lineColor:a,stateBorder:n,nodeBorder:l,nodeShadow:c}=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);const h=e.insert("g").attr("class","node default").attr("id",t.domId??t.id),d=Z.svg(h),f=V(t,{});t.look!=="handDrawn"&&(f.roughness=0,f.fillStyle="solid");const u=d.circle(0,0,t.width,{...f,stroke:a,strokeWidth:2}),g=n??l,m=(t.width??0)*5/14,y=d.circle(0,0,m,{...f,fill:g,stroke:g,strokeWidth:2,fillStyle:"solid"}),C=h.insert(()=>u,":first-child");if(C.insert(()=>y),t.look!=="handDrawn"&&C.attr("class","outer-path"),s&&C.selectAll("path").attr("style",s),o&&C.selectAll("path").attr("style",o),t.width<25&&c&&t.look!=="handDrawn"){const b=e.node()?.ownerSVGElement?.id??"",k=b?`${b}-drop-shadow-small`:"drop-shadow-small";C.attr("style",`filter:url(#${k})`)}return Q(t,C),t.intersect=function(b){return X.circle(t,(t.width??0)/2,b)},h}p(kg,"stateEnd");function wg(e,t,{config:{themeVariables:r}}){const{lineColor:i,nodeShadow:o}=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);const s=e.insert("g").attr("class","node default").attr("id",t.domId||t.id);let a;if(t.look==="handDrawn"){const l=Z.svg(s).circle(0,0,t.width,Q1(i));a=s.insert(()=>l),a.attr("class","state-start").attr("r",(t.width??7)/2).attr("width",t.width??14).attr("height",t.height??14)}else a=s.insert("circle",":first-child"),a.attr("class","state-start").attr("r",(t.width??7)/2).attr("width",t.width??14).attr("height",t.height??14);if(t.width<25&&o&&t.look!=="handDrawn"){const n=e.node()?.ownerSVGElement?.id??"",l=n?`${n}-drop-shadow-small`:"drop-shadow-small";a.attr("style",`filter:url(#${l})`)}return Q(t,a),t.intersect=function(n){return X.circle(t,(t.width??7)/2,n)},s}p(wg,"stateStart");var Wr=8;async function Tg(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t?.padding??8,s=t.look==="neo"?28:o,a=t.look==="neo"?12:o,{shapeSvg:n,bbox:l}=await it(e,t,rt(t)),c=(t?.width??l.width)+2*Wr+s,h=(t?.height??l.height)+a,d=c-2*Wr,f=h,u=-c/2,g=-h/2,m=[{x:0,y:0},{x:d,y:0},{x:d,y:-f},{x:0,y:-f},{x:0,y:0},{x:-8,y:0},{x:d+8,y:0},{x:d+8,y:-f},{x:-8,y:-f},{x:-8,y:0}];if(t.look==="handDrawn"){const y=Z.svg(n),C=V(t,{}),b=y.rectangle(u,g,d+16,f,C),k=y.line(u+Wr,g,u+Wr,g+f,C),T=y.line(u+Wr+d,g,u+Wr+d,g+f,C);n.insert(()=>k,":first-child"),n.insert(()=>T,":first-child");const S=n.insert(()=>b,":first-child"),{cssStyles:_}=t;S.attr("class","basic label-container").attr("style",qt(_)),Q(t,S)}else{const y=Xe(n,d,f,m);i&&y.attr("style",i),Q(t,y)}return t.intersect=function(y){return X.polygon(t,m,y)},n}p(Tg,"subroutine");var pa=.2;async function Sg(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const o=t.padding??0,s=t.look==="neo"?16:o,a=t.look==="neo"?12:o;(t.width||t.height)&&(t.height=Math.max((t?.height??0)-a*2,10),t.width=Math.max((t?.width??0)-s*2-pa*(t.height+a*2),10));const{shapeSvg:n,bbox:l}=await it(e,t,rt(t)),c=(t?.height?t?.height:l.height)+a*2,h=pa*c,d=pa*c,u=(t?.width?t?.width:l.width)+s*2+h-h,g=c,m=-u/2,y=-g/2,{cssStyles:C}=t,b=Z.svg(n),k=V(t,{}),T=[{x:m-h/2,y},{x:m+u+h/2,y},{x:m+u+h/2,y:y+g},{x:m-h/2,y:y+g}],S=[{x:m+u-h/2,y:y+g},{x:m+u+h/2,y:y+g},{x:m+u+h/2,y:y+g-d}];t.look!=="handDrawn"&&(k.roughness=0,k.fillStyle="solid");const _=gt(T),L=b.path(_,k),v=gt(S),N=b.path(v,{...k,fillStyle:"solid"}),R=n.insert(()=>N,":first-child");return R.insert(()=>L,":first-child"),R.attr("class","basic label-container outer-path"),C&&t.look!=="handDrawn"&&R.selectAll("path").attr("style",C),i&&t.look!=="handDrawn"&&R.selectAll("path").attr("style",i),Q(t,R),t.intersect=function(P){return X.polygon(t,T,P)},n}p(Sg,"taggedRect");async function _g(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const{shapeSvg:o,bbox:s,label:a}=await it(e,t,rt(t)),n=Math.max(s.width+(t.padding??0)*2,t?.width??0),l=Math.max(s.height+(t.padding??0)*2,t?.height??0),c=l/8,h=.2*n,d=.2*l,f=l+c,{cssStyles:u}=t,g=Z.svg(o),m=V(t,{});t.look!=="handDrawn"&&(m.roughness=0,m.fillStyle="solid");const y=[{x:-n/2-n/2*.1,y:f/2},...hr(-n/2-n/2*.1,f/2,n/2+n/2*.1,f/2,c,.8),{x:n/2+n/2*.1,y:-f/2},{x:-n/2-n/2*.1,y:-f/2}],C=-n/2+n/2*.1,b=-f/2-d*.4,k=[{x:C+n-h,y:(b+l)*1.3},{x:C+n,y:b+l-d},{x:C+n,y:(b+l)*.9},...hr(C+n,(b+l)*1.25,C+n-h,(b+l)*1.3,-l*.02,.5)],T=gt(y),S=g.path(T,m),_=gt(k),L=g.path(_,{...m,fillStyle:"solid"}),v=o.insert(()=>L,":first-child");return v.insert(()=>S,":first-child"),v.attr("class","basic label-container outer-path"),u&&t.look!=="handDrawn"&&v.selectAll("path").attr("style",u),i&&t.look!=="handDrawn"&&v.selectAll("path").attr("style",i),v.attr("transform",`translate(0,${-c/2})`),a.attr("transform",`translate(${-n/2+(t.padding??0)-(s.x-(s.left??0))},${-l/2+(t.padding??0)-c/2-(s.y-(s.top??0))})`),Q(t,v),t.intersect=function(N){return X.polygon(t,y,N)},o}p(_g,"taggedWaveEdgedRectangle");async function Bg(e,t){const{labelStyles:r,nodeStyles:i}=K(t);t.labelStyle=r;const{shapeSvg:o,bbox:s}=await it(e,t,rt(t)),a=Math.max(s.width+(t.padding??0),t?.width||0),n=Math.max(s.height+(t.padding??0),t?.height||0),l=-a/2,c=-n/2,h=o.insert("rect",":first-child");return h.attr("class","text").attr("style",i).attr("rx",0).attr("ry",0).attr("x",l).attr("y",c).attr("width",a).attr("height",n),Q(t,h),t.intersect=function(d){return X.rect(t,d)},o}p(Bg,"text");var WT=p((e,t,r,i,o,s)=>`M${e},${t} a${o},${s} 0,0,1 0,${-i} l${r},0 @@ -291,7 +291,7 @@ Please report this to https://github.com/markedjs/marked.`,t){let o="

        An error h${-(l-2*h)} q${-h},0 ${-h},${-h} Z - `;if(!t.domId)throw new Error(`defaultMindmapNode: node "${t.id}" is missing a domId — was render.ts domId prefixing skipped?`);const f=o.append("path").attr("id",t.domId).attr("class","node-bkg node-"+t.type).attr("style",i).attr("d",d);return o.append("line").attr("class","node-line-").attr("x1",-l/2).attr("y1",c/2).attr("x2",l/2).attr("y2",c/2),n.attr("transform",`translate(${-s.width/2}, ${-s.height/2})`),o.append(()=>n.node()),Q(t,f),t.calcIntersect=function(u,g){return X.rect(u,g)},t.intersect=function(u){return X.rect(t,u)},o}p(qg,"defaultMindmapNode");async function Wg(e,t){const r={padding:t.padding??0};return pl(e,t,r)}p(Wg,"mindmapCircle");var jT=[{semanticName:"Process",name:"Rectangle",shortName:"rect",description:"Standard process shape",aliases:["proc","process","rectangle"],internalAliases:["squareRect"],handler:Cg},{semanticName:"Event",name:"Rounded Rectangle",shortName:"rounded",description:"Represents an event",aliases:["event"],internalAliases:["roundedRect"],handler:gg},{semanticName:"Terminal Point",name:"Stadium",shortName:"stadium",description:"Terminal point",aliases:["terminal","pill"],handler:xg},{semanticName:"Subprocess",name:"Framed Rectangle",shortName:"fr-rect",description:"Subprocess",aliases:["subprocess","subproc","framed-rectangle","subroutine"],handler:Tg},{semanticName:"Database",name:"Cylinder",shortName:"cyl",description:"Database storage",aliases:["db","database","cylinder"],handler:Wp},{semanticName:"Data Store",name:"Data Store",shortName:"datastore",description:"Data flow diagram data store",aliases:["data-store"],handler:zp},{semanticName:"Start",name:"Circle",shortName:"circle",description:"Starting point",aliases:["circ"],handler:pl},{semanticName:"Bang",name:"Bang",shortName:"bang",description:"Bang",aliases:["bang"],handler:Rg},{semanticName:"Cloud",name:"Cloud",shortName:"cloud",description:"cloud",aliases:["cloud"],handler:Ng},{semanticName:"Decision",name:"Diamond",shortName:"diam",description:"Decision-making step",aliases:["decision","diamond","question"],handler:ug},{semanticName:"Prepare Conditional",name:"Hexagon",shortName:"hex",description:"Preparation or condition step",aliases:["hexagon","prepare"],handler:Vp},{semanticName:"Data Input/Output",name:"Lean Right",shortName:"lean-r",description:"Represents input or output",aliases:["lean-right","in-out"],internalAliases:["lean_right"],handler:sg},{semanticName:"Data Input/Output",name:"Lean Left",shortName:"lean-l",description:"Represents output or input",aliases:["lean-left","out-in"],internalAliases:["lean_left"],handler:og},{semanticName:"Priority Action",name:"Trapezoid Base Bottom",shortName:"trap-b",description:"Priority action",aliases:["priority","trapezoid-bottom","trapezoid"],handler:Lg},{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:rg},{semanticName:"Stop",name:"Double Circle",shortName:"dbl-circ",description:"Represents a stop point",aliases:["double-circle"],internalAliases:["doublecircle"],handler:Yp},{semanticName:"Text Block",name:"Text Block",shortName:"text",description:"Text block",handler:Bg},{semanticName:"Card",name:"Notched Rectangle",shortName:"notch-rect",description:"Represents a card",aliases:["card","notched-rectangle"],handler:$p},{semanticName:"Lined/Shaded Process",name:"Lined Rectangle",shortName:"lin-rect",description:"Lined process shape",aliases:["lined-rectangle","lined-process","lin-proc","shaded-process"],handler:mg},{semanticName:"Start",name:"Small Circle",shortName:"sm-circ",description:"Small starting point",aliases:["start","small-circle"],internalAliases:["stateStart"],handler:wg},{semanticName:"Stop",name:"Framed Circle",shortName:"fr-circ",description:"Stop point",aliases:["stop","framed-circle"],internalAliases:["stateEnd"],handler:kg},{semanticName:"Fork/Join",name:"Filled Rectangle",shortName:"fork",description:"Fork or join in process flow",aliases:["join"],internalAliases:["forkJoin"],handler:Gp},{semanticName:"Collate",name:"Hourglass",shortName:"hourglass",description:"Represents a collate operation",aliases:["hourglass","collate"],handler:Zp},{semanticName:"Comment",name:"Curly Brace",shortName:"brace",description:"Adds a comment",aliases:["comment","brace-l"],handler:Pp},{semanticName:"Comment Right",name:"Curly Brace",shortName:"brace-r",description:"Adds a comment",handler:Rp},{semanticName:"Comment with braces on both sides",name:"Curly Braces",shortName:"braces",description:"Adds a comment",handler:Np},{semanticName:"Com Link",name:"Lightning Bolt",shortName:"bolt",description:"Communication link",aliases:["com-link","lightning-bolt"],handler:ag},{semanticName:"Document",name:"Document",shortName:"doc",description:"Represents a document",aliases:["doc","document"],handler:Eg},{semanticName:"Delay",name:"Half-Rounded Rectangle",shortName:"delay",description:"Represents a delay",aliases:["half-rounded-rectangle"],handler:Xp},{semanticName:"Direct Access Storage",name:"Horizontal Cylinder",shortName:"h-cyl",description:"Direct access storage",aliases:["das","horizontal-cylinder"],handler:vg},{semanticName:"Disk Storage",name:"Lined Cylinder",shortName:"lin-cyl",description:"Disk storage",aliases:["disk","lined-cylinder"],handler:ng},{semanticName:"Display",name:"Curved Trapezoid",shortName:"curv-trap",description:"Represents a display",aliases:["curved-trapezoid","display"],handler:qp},{semanticName:"Divided Process",name:"Divided Rectangle",shortName:"div-rect",description:"Divided process shape",aliases:["div-proc","divided-rectangle","divided-process"],handler:Hp},{semanticName:"Extract",name:"Triangle",shortName:"tri",description:"Extraction process",aliases:["extract","triangle"],handler:Ag},{semanticName:"Internal Storage",name:"Window Pane",shortName:"win-pane",description:"Internal storage",aliases:["internal-storage","window-pane"],handler:$g},{semanticName:"Junction",name:"Filled Circle",shortName:"f-circ",description:"Junction point",aliases:["junction","filled-circle"],handler:Up},{semanticName:"Loop Limit",name:"Trapezoidal Pentagon",shortName:"notch-pent",description:"Loop limit step",aliases:["loop-limit","notched-pentagon"],handler:Fg},{semanticName:"Manual File",name:"Flipped Triangle",shortName:"flip-tri",description:"Manual file operation",aliases:["manual-file","flipped-triangle"],handler:jp},{semanticName:"Manual Input",name:"Sloped Rectangle",shortName:"sl-rect",description:"Manual input step",aliases:["manual-input","sloped-rectangle"],handler:yg},{semanticName:"Multi-Document",name:"Stacked Document",shortName:"docs",description:"Multiple documents",aliases:["documents","st-doc","stacked-document"],handler:cg},{semanticName:"Multi-Process",name:"Stacked Rectangle",shortName:"st-rect",description:"Multiple processes",aliases:["procs","processes","stacked-rectangle"],handler:hg},{semanticName:"Stored Data",name:"Bow Tie Rectangle",shortName:"bow-rect",description:"Stored data",aliases:["stored-data","bow-tie-rectangle"],handler:Mp},{semanticName:"Summary",name:"Crossed Circle",shortName:"cross-circ",description:"Summary",aliases:["summary","crossed-circle"],handler:Dp},{semanticName:"Tagged Document",name:"Tagged Document",shortName:"tag-doc",description:"Tagged document",aliases:["tag-doc","tagged-document"],handler:_g},{semanticName:"Tagged Process",name:"Tagged Rectangle",shortName:"tag-rect",description:"Tagged process",aliases:["tagged-rectangle","tag-proc","tagged-process"],handler:Sg},{semanticName:"Paper Tape",name:"Flag",shortName:"flag",description:"Paper tape",aliases:["paper-tape"],handler:Mg},{semanticName:"Odd",name:"Odd",shortName:"odd",description:"Odd shape",internalAliases:["rect_left_inv_arrow"],handler:fg},{semanticName:"Lined Document",name:"Lined Document",shortName:"lin-doc",description:"Lined document",aliases:["lined-document"],handler:lg}],GT=p(()=>{const t=[...Object.entries({state:bg,choice:Op,note:dg,rectWithTitle:pg,labelRect:ig,iconSquare:tg,iconCircle:Qp,icon:Kp,iconRounded:Jp,imageSquare:eg,anchor:Ap,kanbanItem:Pg,mindmapCircle:Wg,defaultMindmapNode:qg,classBox:Ig,erBox:gl,requirementBox:Dg}),...jT.flatMap(r=>[r.shortName,..."aliases"in r?r.aliases:[],..."internalAliases"in r?r.internalAliases:[]].map(o=>[o,r.handler]))];return Object.fromEntries(t)},"generateShapeMap"),zg=GT();function XT(e){return e in zg}p(XT,"isValidShape");var As=new Map;async function Hg(e,t,r){let i,o;t.shape==="rect"&&(t.rx&&t.ry?t.shape="roundedRect":t.shape="squareRect");const s=t.shape?zg[t.shape]:void 0;if(!s)throw new Error(`No such shape: ${t.shape}. Please check your syntax.`);if(t.link){let a;r.config.securityLevel==="sandbox"?a="_top":t.linkTarget&&(a=t.linkTarget||"_blank"),i=e.insert("svg:a").attr("xlink:href",t.link).attr("target",a??null),o=await s(i,t,r)}else o=await s(e,t,r),i=o;return i.attr("data-look",qt(t.look)),t.tooltip&&o.attr("title",t.tooltip),As.set(t.id,i),t.haveCallback&&i.attr("class",i.attr("class")+" clickable"),i}p(Hg,"insertNode");var HL=p((e,t)=>{As.set(t.id,e)},"setNodeElem"),YL=p(()=>{As.clear()},"clear"),UL=p(e=>{const t=As.get(e.id);q.trace("Transforming node",e.diff,e,"translate("+(e.x-e.width/2-5)+", "+e.width/2+")");const 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"),bi=p((e,t)=>{if(t)return"translate("+-e.width/2+", "+-e.height/2+")";const r=e.x??0,i=e.y??0;return"translate("+-(r+e.width/2)+", "+-(i+e.height/2)+")"},"computeLabelTransform"),Xt={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},gc={arrow_point:4,arrow_cross:12.5,arrow_circle:12.5};function Fi(e,t){if(e===void 0||t===void 0)return{angle:0,deltaX:0,deltaY:0};e=_t(e),t=_t(t);const[r,i]=[e.x,e.y],[o,s]=[t.x,t.y],a=o-r,n=s-i;return{angle:Math.atan(n/a),deltaX:a,deltaY:n}}p(Fi,"calculateDeltaAndAngle");var _t=p(e=>Array.isArray(e)?{x:e[0],y:e[1]}:e,"pointTransformer"),VT=p(e=>({x:p(function(t,r,i){let o=0;const s=_t(i[0]).x<_t(i[i.length-1]).x?"left":"right";if(r===0&&Object.hasOwn(Xt,e.arrowTypeStart)){const{angle:u,deltaX:g}=Fi(i[0],i[1]);o=Xt[e.arrowTypeStart]*Math.cos(u)*(g>=0?1:-1)}else if(r===i.length-1&&Object.hasOwn(Xt,e.arrowTypeEnd)){const{angle:u,deltaX:g}=Fi(i[i.length-1],i[i.length-2]);o=Xt[e.arrowTypeEnd]*Math.cos(u)*(g>=0?1:-1)}const a=Math.abs(_t(t).x-_t(i[i.length-1]).x),n=Math.abs(_t(t).y-_t(i[i.length-1]).y),l=Math.abs(_t(t).x-_t(i[0]).x),c=Math.abs(_t(t).y-_t(i[0]).y),h=Xt[e.arrowTypeStart],d=Xt[e.arrowTypeEnd],f=1;if(a0&&n0&&c=0?1:-1)}else if(r===i.length-1&&Object.hasOwn(Xt,e.arrowTypeEnd)){const{angle:u,deltaY:g}=Fi(i[i.length-1],i[i.length-2]);o=Xt[e.arrowTypeEnd]*Math.abs(Math.sin(u))*(g>=0?1:-1)}const a=Math.abs(_t(t).y-_t(i[i.length-1]).y),n=Math.abs(_t(t).x-_t(i[i.length-1]).x),l=Math.abs(_t(t).y-_t(i[0]).y),c=Math.abs(_t(t).x-_t(i[0]).x),h=Xt[e.arrowTypeStart],d=Xt[e.arrowTypeEnd],f=1;if(a0&&n0&&c{t.arrowTypeStart&&mc(e,"start",t.arrowTypeStart,r,i,o,s,a),t.arrowTypeEnd&&mc(e,"end",t.arrowTypeEnd,r,i,o,s,a)},"addEdgeMarkers"),KT={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}},QT=["cross","point","circle","lollipop","aggregation","extension","composition","dependency","barb"],mc=p((e,t,r,i,o,s,a=!1,n)=>{const l=KT[r],c=l&&QT.includes(l.type);if(!l){q.warn(`Unknown arrow type: ${r}`);return}const h=l.type,u=`${o}_${s}-${h}${t==="start"?"Start":"End"}${a&&c?"-margin":""}`;if(n&&n.trim()!==""){const g=n.replace(/[^\dA-Za-z]/g,"_"),m=`${u}_${g}`;if(!document.getElementById(m)){const y=document.getElementById(u);if(y){const C=y.cloneNode(!0);C.id=m,C.querySelectorAll("path, circle, line").forEach(k=>{k.setAttribute("stroke",n),l.fill&&k.setAttribute("fill",n)}),y.parentNode?.appendChild(C)}}e.attr(`marker-${t}`,`url(${i}#${m})`)}else e.attr(`marker-${t}`,`url(${i}#${u})`)},"addEdgeMarker"),JT=p(e=>typeof e=="string"?e:Ct()?.flowchart?.curve,"resolveEdgeCurveType"),fs=new Map,Yt=new Map,jL=p(()=>{fs.clear(),Yt.clear()},"clear"),ki=p(e=>e?typeof e=="string"?e:e.reduce((t,r)=>t+";"+r,""):"","getLabelStyles"),tS=p(async(e,t)=>{const r=Ct();let i=ee(r);const{labelStyles:o}=K(t);t.labelStyle=o;const s=e.insert("g").attr("class","edgeLabel"),a=s.insert("g").attr("class","label").attr("data-id",t.id),n=t.labelType==="markdown",c=await Pe(e,t.label,{style:ki(t.labelStyle),useHtmlLabels:i,addSvgBackground:!0,isNode:!1,markdown:n,width:n?void 0:void 0},r);a.node().appendChild(c),q.info("abc82",t,t.labelType);let h=c.getBBox(),d=h;if(i){const u=c.children[0],g=ct(c);h=u.getBoundingClientRect(),d=h,g.attr("width",h.width),g.attr("height",h.height)}else{const u=ct(c).select("text").node();u&&typeof u.getBBox=="function"&&(d=u.getBBox())}a.attr("transform",bi(d,i)),fs.set(t.id,s),t.width=h.width,t.height=h.height;let f;if(t.startLabelLeft){const u=e.insert("g").attr("class","edgeTerminals"),g=u.insert("g").attr("class","inner"),m=await rr(g,t.startLabelLeft,ki(t.labelStyle)||"",!1,!1);f=m;let y=m.getBBox();if(i){const C=m.children[0],b=ct(m);y=C.getBoundingClientRect(),b.attr("width",y.width),b.attr("height",y.height)}g.attr("transform",bi(y,i)),Yt.get(t.id)||Yt.set(t.id,{}),Yt.get(t.id).startLeft=u,Ai(f,t.startLabelLeft)}if(t.startLabelRight){const u=e.insert("g").attr("class","edgeTerminals"),g=u.insert("g").attr("class","inner"),m=await rr(g,t.startLabelRight,ki(t.labelStyle)||"",!1,!1);f=m;let y=m.getBBox();if(i){const C=m.children[0],b=ct(m);y=C.getBoundingClientRect(),b.attr("width",y.width),b.attr("height",y.height)}g.attr("transform",bi(y,i)),Yt.get(t.id)||Yt.set(t.id,{}),Yt.get(t.id).startRight=u,Ai(f,t.startLabelRight)}if(t.endLabelLeft){const u=e.insert("g").attr("class","edgeTerminals"),g=u.insert("g").attr("class","inner"),m=await rr(u,t.endLabelLeft,ki(t.labelStyle)||"",!1,!1);f=m;let y=m.getBBox();if(i){const C=m.children[0],b=ct(m);y=C.getBoundingClientRect(),b.attr("width",y.width),b.attr("height",y.height)}g.attr("transform",bi(y,i)),Yt.get(t.id)||Yt.set(t.id,{}),Yt.get(t.id).endLeft=u,Ai(f,t.endLabelLeft)}if(t.endLabelRight){const u=e.insert("g").attr("class","edgeTerminals"),g=u.insert("g").attr("class","inner"),m=await rr(u,t.endLabelRight,ki(t.labelStyle)||"",!1,!1);f=m;let y=m.getBBox();if(i){const C=m.children[0],b=ct(m);y=C.getBoundingClientRect(),b.attr("width",y.width),b.attr("height",y.height)}g.attr("transform",bi(y,i)),Yt.get(t.id)||Yt.set(t.id,{}),Yt.get(t.id).endRight=u,Ai(f,t.endLabelRight)}return c},"insertEdgeLabel");function Ai(e,t){ee(Ct())&&e&&(e.style.width=t.length*9+"px",e.style.height="12px")}p(Ai,"setTerminalWidth");var eS=p((e,t)=>{q.debug("Moving label abc88 ",e.id,e.label,fs.get(e.id),t);let r=t.updatedPath?t.updatedPath:t.originalPath;const i=Ct(),{subGraphTitleTotalMargin:o}=el(i);if(e.label){const s=fs.get(e.id);let a=e.x,n=e.y;if(r){const l=ye.calcLabelPosition(r);q.debug("Moving label "+e.label+" from (",a,",",n,") to (",l.x,",",l.y,") abc88"),t.updatedPath&&(a=l.x,n=l.y)}s.attr("transform",`translate(${a}, ${n+o/2})`)}if(e.startLabelLeft){const s=Yt.get(e.id).startLeft;let a=e.x,n=e.y;if(r){const l=ye.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",r);a=l.x,n=l.y}s.attr("transform",`translate(${a}, ${n})`)}if(e.startLabelRight){const s=Yt.get(e.id).startRight;let a=e.x,n=e.y;if(r){const l=ye.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",r);a=l.x,n=l.y}s.attr("transform",`translate(${a}, ${n})`)}if(e.endLabelLeft){const s=Yt.get(e.id).endLeft;let a=e.x,n=e.y;if(r){const l=ye.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",r);a=l.x,n=l.y}s.attr("transform",`translate(${a}, ${n})`)}if(e.endLabelRight){const s=Yt.get(e.id).endRight;let a=e.x,n=e.y;if(r){const l=ye.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",r);a=l.x,n=l.y}s.attr("transform",`translate(${a}, ${n})`)}},"positionEdgeLabel"),rS=p((e,t)=>{if(!e?.isLabelEdge||!e?.id?.endsWith("-to-label")||!Array.isArray(t)||t.length!==2)return t;const[r,i]=t,o=Math.abs(i.x-r.x),s=Math.abs(i.y-r.y);return o<.001||s<.001?t:s>=o?[r,{x:r.x,y:i.y},i]:[r,{x:i.x,y:r.y},i]},"orthogonalizeToLabelClippedPoints"),iS=p((e,t)=>{const r=e.x,i=e.y,o=Math.abs(t.x-r),s=Math.abs(t.y-i),a=e.width/2,n=e.height/2;return o>=a||s>=n},"outsideNode"),oS=p((e,t,r)=>{q.debug(`intersection calc abc89: + `;if(!t.domId)throw new Error(`defaultMindmapNode: node "${t.id}" is missing a domId — was render.ts domId prefixing skipped?`);const f=o.append("path").attr("id",t.domId).attr("class","node-bkg node-"+t.type).attr("style",i).attr("d",d);return o.append("line").attr("class","node-line-").attr("x1",-l/2).attr("y1",c/2).attr("x2",l/2).attr("y2",c/2),n.attr("transform",`translate(${-s.width/2}, ${-s.height/2})`),o.append(()=>n.node()),Q(t,f),t.calcIntersect=function(u,g){return X.rect(u,g)},t.intersect=function(u){return X.rect(t,u)},o}p(qg,"defaultMindmapNode");async function Wg(e,t){const r={padding:t.padding??0};return pl(e,t,r)}p(Wg,"mindmapCircle");var jT=[{semanticName:"Process",name:"Rectangle",shortName:"rect",description:"Standard process shape",aliases:["proc","process","rectangle"],internalAliases:["squareRect"],handler:Cg},{semanticName:"Event",name:"Rounded Rectangle",shortName:"rounded",description:"Represents an event",aliases:["event"],internalAliases:["roundedRect"],handler:gg},{semanticName:"Terminal Point",name:"Stadium",shortName:"stadium",description:"Terminal point",aliases:["terminal","pill"],handler:xg},{semanticName:"Subprocess",name:"Framed Rectangle",shortName:"fr-rect",description:"Subprocess",aliases:["subprocess","subproc","framed-rectangle","subroutine"],handler:Tg},{semanticName:"Database",name:"Cylinder",shortName:"cyl",description:"Database storage",aliases:["db","database","cylinder"],handler:Wp},{semanticName:"Data Store",name:"Data Store",shortName:"datastore",description:"Data flow diagram data store",aliases:["data-store"],handler:zp},{semanticName:"Start",name:"Circle",shortName:"circle",description:"Starting point",aliases:["circ"],handler:pl},{semanticName:"Bang",name:"Bang",shortName:"bang",description:"Bang",aliases:["bang"],handler:Rg},{semanticName:"Cloud",name:"Cloud",shortName:"cloud",description:"cloud",aliases:["cloud"],handler:Ng},{semanticName:"Decision",name:"Diamond",shortName:"diam",description:"Decision-making step",aliases:["decision","diamond","question"],handler:ug},{semanticName:"Prepare Conditional",name:"Hexagon",shortName:"hex",description:"Preparation or condition step",aliases:["hexagon","prepare"],handler:Vp},{semanticName:"Data Input/Output",name:"Lean Right",shortName:"lean-r",description:"Represents input or output",aliases:["lean-right","in-out"],internalAliases:["lean_right"],handler:sg},{semanticName:"Data Input/Output",name:"Lean Left",shortName:"lean-l",description:"Represents output or input",aliases:["lean-left","out-in"],internalAliases:["lean_left"],handler:og},{semanticName:"Priority Action",name:"Trapezoid Base Bottom",shortName:"trap-b",description:"Priority action",aliases:["priority","trapezoid-bottom","trapezoid"],handler:Lg},{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:rg},{semanticName:"Stop",name:"Double Circle",shortName:"dbl-circ",description:"Represents a stop point",aliases:["double-circle"],internalAliases:["doublecircle"],handler:Yp},{semanticName:"Text Block",name:"Text Block",shortName:"text",description:"Text block",handler:Bg},{semanticName:"Card",name:"Notched Rectangle",shortName:"notch-rect",description:"Represents a card",aliases:["card","notched-rectangle"],handler:$p},{semanticName:"Lined/Shaded Process",name:"Lined Rectangle",shortName:"lin-rect",description:"Lined process shape",aliases:["lined-rectangle","lined-process","lin-proc","shaded-process"],handler:mg},{semanticName:"Start",name:"Small Circle",shortName:"sm-circ",description:"Small starting point",aliases:["start","small-circle"],internalAliases:["stateStart"],handler:wg},{semanticName:"Stop",name:"Framed Circle",shortName:"fr-circ",description:"Stop point",aliases:["stop","framed-circle"],internalAliases:["stateEnd"],handler:kg},{semanticName:"Fork/Join",name:"Filled Rectangle",shortName:"fork",description:"Fork or join in process flow",aliases:["join"],internalAliases:["forkJoin"],handler:Gp},{semanticName:"Collate",name:"Hourglass",shortName:"hourglass",description:"Represents a collate operation",aliases:["hourglass","collate"],handler:Zp},{semanticName:"Comment",name:"Curly Brace",shortName:"brace",description:"Adds a comment",aliases:["comment","brace-l"],handler:Pp},{semanticName:"Comment Right",name:"Curly Brace",shortName:"brace-r",description:"Adds a comment",handler:Rp},{semanticName:"Comment with braces on both sides",name:"Curly Braces",shortName:"braces",description:"Adds a comment",handler:Np},{semanticName:"Com Link",name:"Lightning Bolt",shortName:"bolt",description:"Communication link",aliases:["com-link","lightning-bolt"],handler:ag},{semanticName:"Document",name:"Document",shortName:"doc",description:"Represents a document",aliases:["doc","document"],handler:Eg},{semanticName:"Delay",name:"Half-Rounded Rectangle",shortName:"delay",description:"Represents a delay",aliases:["half-rounded-rectangle"],handler:Xp},{semanticName:"Direct Access Storage",name:"Horizontal Cylinder",shortName:"h-cyl",description:"Direct access storage",aliases:["das","horizontal-cylinder"],handler:vg},{semanticName:"Disk Storage",name:"Lined Cylinder",shortName:"lin-cyl",description:"Disk storage",aliases:["disk","lined-cylinder"],handler:ng},{semanticName:"Display",name:"Curved Trapezoid",shortName:"curv-trap",description:"Represents a display",aliases:["curved-trapezoid","display"],handler:qp},{semanticName:"Divided Process",name:"Divided Rectangle",shortName:"div-rect",description:"Divided process shape",aliases:["div-proc","divided-rectangle","divided-process"],handler:Hp},{semanticName:"Extract",name:"Triangle",shortName:"tri",description:"Extraction process",aliases:["extract","triangle"],handler:Ag},{semanticName:"Internal Storage",name:"Window Pane",shortName:"win-pane",description:"Internal storage",aliases:["internal-storage","window-pane"],handler:$g},{semanticName:"Junction",name:"Filled Circle",shortName:"f-circ",description:"Junction point",aliases:["junction","filled-circle"],handler:Up},{semanticName:"Loop Limit",name:"Trapezoidal Pentagon",shortName:"notch-pent",description:"Loop limit step",aliases:["loop-limit","notched-pentagon"],handler:Fg},{semanticName:"Manual File",name:"Flipped Triangle",shortName:"flip-tri",description:"Manual file operation",aliases:["manual-file","flipped-triangle"],handler:jp},{semanticName:"Manual Input",name:"Sloped Rectangle",shortName:"sl-rect",description:"Manual input step",aliases:["manual-input","sloped-rectangle"],handler:yg},{semanticName:"Multi-Document",name:"Stacked Document",shortName:"docs",description:"Multiple documents",aliases:["documents","st-doc","stacked-document"],handler:cg},{semanticName:"Multi-Process",name:"Stacked Rectangle",shortName:"st-rect",description:"Multiple processes",aliases:["procs","processes","stacked-rectangle"],handler:hg},{semanticName:"Stored Data",name:"Bow Tie Rectangle",shortName:"bow-rect",description:"Stored data",aliases:["stored-data","bow-tie-rectangle"],handler:Mp},{semanticName:"Summary",name:"Crossed Circle",shortName:"cross-circ",description:"Summary",aliases:["summary","crossed-circle"],handler:Dp},{semanticName:"Tagged Document",name:"Tagged Document",shortName:"tag-doc",description:"Tagged document",aliases:["tag-doc","tagged-document"],handler:_g},{semanticName:"Tagged Process",name:"Tagged Rectangle",shortName:"tag-rect",description:"Tagged process",aliases:["tagged-rectangle","tag-proc","tagged-process"],handler:Sg},{semanticName:"Paper Tape",name:"Flag",shortName:"flag",description:"Paper tape",aliases:["paper-tape"],handler:Mg},{semanticName:"Odd",name:"Odd",shortName:"odd",description:"Odd shape",internalAliases:["rect_left_inv_arrow"],handler:fg},{semanticName:"Lined Document",name:"Lined Document",shortName:"lin-doc",description:"Lined document",aliases:["lined-document"],handler:lg}],GT=p(()=>{const t=[...Object.entries({state:bg,choice:Op,note:dg,rectWithTitle:pg,labelRect:ig,iconSquare:tg,iconCircle:Qp,icon:Kp,iconRounded:Jp,imageSquare:eg,anchor:Ap,kanbanItem:Pg,mindmapCircle:Wg,defaultMindmapNode:qg,classBox:Ig,erBox:gl,requirementBox:Dg}),...jT.flatMap(r=>[r.shortName,..."aliases"in r?r.aliases:[],..."internalAliases"in r?r.internalAliases:[]].map(o=>[o,r.handler]))];return Object.fromEntries(t)},"generateShapeMap"),zg=GT();function XT(e){return e in zg}p(XT,"isValidShape");var As=new Map;async function Hg(e,t,r){let i,o;t.shape==="rect"&&(t.rx&&t.ry?t.shape="roundedRect":t.shape="squareRect");const s=t.shape?zg[t.shape]:void 0;if(!s)throw new Error(`No such shape: ${t.shape}. Please check your syntax.`);if(t.link){let a;r.config.securityLevel==="sandbox"?a="_top":t.linkTarget&&(a=t.linkTarget||"_blank"),i=e.insert("svg:a").attr("xlink:href",t.link).attr("target",a??null),o=await s(i,t,r)}else o=await s(e,t,r),i=o;return i.attr("data-look",qt(t.look)),t.tooltip&&o.attr("title",t.tooltip),As.set(t.id,i),t.haveCallback&&i.attr("class",i.attr("class")+" clickable"),i}p(Hg,"insertNode");var zL=p((e,t)=>{As.set(t.id,e)},"setNodeElem"),HL=p(()=>{As.clear()},"clear"),YL=p(e=>{const t=As.get(e.id);q.trace("Transforming node",e.diff,e,"translate("+(e.x-e.width/2-5)+", "+e.width/2+")");const 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"),bi=p((e,t)=>{if(t)return"translate("+-e.width/2+", "+-e.height/2+")";const r=e.x??0,i=e.y??0;return"translate("+-(r+e.width/2)+", "+-(i+e.height/2)+")"},"computeLabelTransform"),Xt={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},gc={arrow_point:4,arrow_cross:12.5,arrow_circle:12.5};function Fi(e,t){if(e===void 0||t===void 0)return{angle:0,deltaX:0,deltaY:0};e=_t(e),t=_t(t);const[r,i]=[e.x,e.y],[o,s]=[t.x,t.y],a=o-r,n=s-i;return{angle:Math.atan(n/a),deltaX:a,deltaY:n}}p(Fi,"calculateDeltaAndAngle");var _t=p(e=>Array.isArray(e)?{x:e[0],y:e[1]}:e,"pointTransformer"),VT=p(e=>({x:p(function(t,r,i){let o=0;const s=_t(i[0]).x<_t(i[i.length-1]).x?"left":"right";if(r===0&&Object.hasOwn(Xt,e.arrowTypeStart)){const{angle:u,deltaX:g}=Fi(i[0],i[1]);o=Xt[e.arrowTypeStart]*Math.cos(u)*(g>=0?1:-1)}else if(r===i.length-1&&Object.hasOwn(Xt,e.arrowTypeEnd)){const{angle:u,deltaX:g}=Fi(i[i.length-1],i[i.length-2]);o=Xt[e.arrowTypeEnd]*Math.cos(u)*(g>=0?1:-1)}const a=Math.abs(_t(t).x-_t(i[i.length-1]).x),n=Math.abs(_t(t).y-_t(i[i.length-1]).y),l=Math.abs(_t(t).x-_t(i[0]).x),c=Math.abs(_t(t).y-_t(i[0]).y),h=Xt[e.arrowTypeStart],d=Xt[e.arrowTypeEnd],f=1;if(a0&&n0&&c=0?1:-1)}else if(r===i.length-1&&Object.hasOwn(Xt,e.arrowTypeEnd)){const{angle:u,deltaY:g}=Fi(i[i.length-1],i[i.length-2]);o=Xt[e.arrowTypeEnd]*Math.abs(Math.sin(u))*(g>=0?1:-1)}const a=Math.abs(_t(t).y-_t(i[i.length-1]).y),n=Math.abs(_t(t).x-_t(i[i.length-1]).x),l=Math.abs(_t(t).y-_t(i[0]).y),c=Math.abs(_t(t).x-_t(i[0]).x),h=Xt[e.arrowTypeStart],d=Xt[e.arrowTypeEnd],f=1;if(a0&&n0&&c{t.arrowTypeStart&&mc(e,"start",t.arrowTypeStart,r,i,o,s,a),t.arrowTypeEnd&&mc(e,"end",t.arrowTypeEnd,r,i,o,s,a)},"addEdgeMarkers"),KT={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}},QT=["cross","point","circle","lollipop","aggregation","extension","composition","dependency","barb"],mc=p((e,t,r,i,o,s,a=!1,n)=>{const l=KT[r],c=l&&QT.includes(l.type);if(!l){q.warn(`Unknown arrow type: ${r}`);return}const h=l.type,u=`${o}_${s}-${h}${t==="start"?"Start":"End"}${a&&c?"-margin":""}`;if(n&&n.trim()!==""){const g=n.replace(/[^\dA-Za-z]/g,"_"),m=`${u}_${g}`;if(!document.getElementById(m)){const y=document.getElementById(u);if(y){const C=y.cloneNode(!0);C.id=m,C.querySelectorAll("path, circle, line").forEach(k=>{k.setAttribute("stroke",n),l.fill&&k.setAttribute("fill",n)}),y.parentNode?.appendChild(C)}}e.attr(`marker-${t}`,`url(${i}#${m})`)}else e.attr(`marker-${t}`,`url(${i}#${u})`)},"addEdgeMarker"),JT=p(e=>typeof e=="string"?e:Ct()?.flowchart?.curve,"resolveEdgeCurveType"),fs=new Map,Yt=new Map,UL=p(()=>{fs.clear(),Yt.clear()},"clear"),ki=p(e=>e?typeof e=="string"?e:e.reduce((t,r)=>t+";"+r,""):"","getLabelStyles"),tS=p(async(e,t)=>{const r=Ct();let i=ee(r);const{labelStyles:o}=K(t);t.labelStyle=o;const s=e.insert("g").attr("class","edgeLabel"),a=s.insert("g").attr("class","label").attr("data-id",t.id),n=t.labelType==="markdown",c=await Pe(e,t.label,{style:ki(t.labelStyle),useHtmlLabels:i,addSvgBackground:!0,isNode:!1,markdown:n,width:n?void 0:void 0},r);a.node().appendChild(c),q.info("abc82",t,t.labelType);let h=c.getBBox(),d=h;if(i){const u=c.children[0],g=ct(c);h=u.getBoundingClientRect(),d=h,g.attr("width",h.width),g.attr("height",h.height)}else{const u=ct(c).select("text").node();u&&typeof u.getBBox=="function"&&(d=u.getBBox())}a.attr("transform",bi(d,i)),fs.set(t.id,s),t.width=h.width,t.height=h.height;let f;if(t.startLabelLeft){const u=e.insert("g").attr("class","edgeTerminals"),g=u.insert("g").attr("class","inner"),m=await rr(g,t.startLabelLeft,ki(t.labelStyle)||"",!1,!1);f=m;let y=m.getBBox();if(i){const C=m.children[0],b=ct(m);y=C.getBoundingClientRect(),b.attr("width",y.width),b.attr("height",y.height)}g.attr("transform",bi(y,i)),Yt.get(t.id)||Yt.set(t.id,{}),Yt.get(t.id).startLeft=u,Ai(f,t.startLabelLeft)}if(t.startLabelRight){const u=e.insert("g").attr("class","edgeTerminals"),g=u.insert("g").attr("class","inner"),m=await rr(g,t.startLabelRight,ki(t.labelStyle)||"",!1,!1);f=m;let y=m.getBBox();if(i){const C=m.children[0],b=ct(m);y=C.getBoundingClientRect(),b.attr("width",y.width),b.attr("height",y.height)}g.attr("transform",bi(y,i)),Yt.get(t.id)||Yt.set(t.id,{}),Yt.get(t.id).startRight=u,Ai(f,t.startLabelRight)}if(t.endLabelLeft){const u=e.insert("g").attr("class","edgeTerminals"),g=u.insert("g").attr("class","inner"),m=await rr(u,t.endLabelLeft,ki(t.labelStyle)||"",!1,!1);f=m;let y=m.getBBox();if(i){const C=m.children[0],b=ct(m);y=C.getBoundingClientRect(),b.attr("width",y.width),b.attr("height",y.height)}g.attr("transform",bi(y,i)),Yt.get(t.id)||Yt.set(t.id,{}),Yt.get(t.id).endLeft=u,Ai(f,t.endLabelLeft)}if(t.endLabelRight){const u=e.insert("g").attr("class","edgeTerminals"),g=u.insert("g").attr("class","inner"),m=await rr(u,t.endLabelRight,ki(t.labelStyle)||"",!1,!1);f=m;let y=m.getBBox();if(i){const C=m.children[0],b=ct(m);y=C.getBoundingClientRect(),b.attr("width",y.width),b.attr("height",y.height)}g.attr("transform",bi(y,i)),Yt.get(t.id)||Yt.set(t.id,{}),Yt.get(t.id).endRight=u,Ai(f,t.endLabelRight)}return c},"insertEdgeLabel");function Ai(e,t){ee(Ct())&&e&&(e.style.width=t.length*9+"px",e.style.height="12px")}p(Ai,"setTerminalWidth");var eS=p((e,t)=>{q.debug("Moving label abc88 ",e.id,e.label,fs.get(e.id),t);let r=t.updatedPath?t.updatedPath:t.originalPath;const i=Ct(),{subGraphTitleTotalMargin:o}=el(i);if(e.label){const s=fs.get(e.id);let a=e.x,n=e.y;if(r){const l=ye.calcLabelPosition(r);q.debug("Moving label "+e.label+" from (",a,",",n,") to (",l.x,",",l.y,") abc88"),t.updatedPath&&(a=l.x,n=l.y)}s.attr("transform",`translate(${a}, ${n+o/2})`)}if(e.startLabelLeft){const s=Yt.get(e.id).startLeft;let a=e.x,n=e.y;if(r){const l=ye.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",r);a=l.x,n=l.y}s.attr("transform",`translate(${a}, ${n})`)}if(e.startLabelRight){const s=Yt.get(e.id).startRight;let a=e.x,n=e.y;if(r){const l=ye.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",r);a=l.x,n=l.y}s.attr("transform",`translate(${a}, ${n})`)}if(e.endLabelLeft){const s=Yt.get(e.id).endLeft;let a=e.x,n=e.y;if(r){const l=ye.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",r);a=l.x,n=l.y}s.attr("transform",`translate(${a}, ${n})`)}if(e.endLabelRight){const s=Yt.get(e.id).endRight;let a=e.x,n=e.y;if(r){const l=ye.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",r);a=l.x,n=l.y}s.attr("transform",`translate(${a}, ${n})`)}},"positionEdgeLabel"),rS=p((e,t)=>{if(!e?.isLabelEdge||!e?.id?.endsWith("-to-label")||!Array.isArray(t)||t.length!==2)return t;const[r,i]=t,o=Math.abs(i.x-r.x),s=Math.abs(i.y-r.y);return o<.001||s<.001?t:s>=o?[r,{x:r.x,y:i.y},i]:[r,{x:i.x,y:r.y},i]},"orthogonalizeToLabelClippedPoints"),iS=p((e,t)=>{const r=e.x,i=e.y,o=Math.abs(t.x-r),s=Math.abs(t.y-i),a=e.width/2,n=e.height/2;return o>=a||s>=n},"outsideNode"),oS=p((e,t,r)=>{q.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}`);const i=e.x,o=e.y,s=Math.abs(i-r.x),a=e.width/2;let n=r.xMath.abs(i-t.x)*l){let d=r.y{q.warn("abc88 cutPathAtIntersect",e,t);let r=[],i=e[0],o=!1;return e.forEach(s=>{if(q.info("abc88 checking point",s,t),!iS(t,s)&&!o){const a=oS(t,i,s);q.debug("abc88 inside",s,i,a),q.debug("abc88 intersection",a,t);let n=!1;r.forEach(l=>{n=n||l.x===a.x&&l.y===a.y}),r.some(l=>l.x===a.x&&l.y===a.y)?q.warn("abc88 no intersect",a,r):r.push(a),o=!0}else q.warn("abc88 outside",s,i),i=s,o||r.push(s)}),q.debug("returning points",r),r},"cutPathAtIntersect");function Yg(e){const t=[],r=[];for(let i=1;i5&&Math.abs(s.y-o.y)>5||o.y===s.y&&s.x===a.x&&Math.abs(s.x-o.x)>5&&Math.abs(s.y-a.y)>5)&&(t.push(s),r.push(i))}return{cornerPoints:t,cornerPointPositions:r}}p(Yg,"extractCornerPoints");var Cc=p(function(e,t,r){const i=t.x-e.x,o=t.y-e.y,s=Math.sqrt(i*i+o*o),a=r/s;return{x:t.x-a*i,y:t.y-a*o}},"findAdjacentPoint"),sS=p(function(e){const{cornerPointPositions:t}=Yg(e),r=[];for(let i=0;i10&&Math.abs(s.y-o.y)>=10){q.debug("Corner point fixing",Math.abs(s.x-o.x),Math.abs(s.y-o.y));const u=5;a.x===n.x?f={x:c<0?n.x-u+d:n.x+u-d,y:h<0?n.y-d:n.y+d}:f={x:c<0?n.x-d:n.x+d,y:h<0?n.y-u+d:n.y+u-d}}else q.debug("Corner point skipping fixing",Math.abs(s.x-o.x),Math.abs(s.y-o.y));r.push(f,l)}else r.push(e[i]);return r},"fixCorners"),aS=p((e,t,r)=>{const i=e-t-r,o=2,s=2,a=o+s,n=Math.floor(i/a),l=Array(n).fill(`${o} ${s}`).join(" ");return`0 ${t} ${l} ${r}`},"generateDashArray"),nS=p(function(e,t,r,i,o,s,a,n=!1){if(!a)throw new Error(`insertEdge: missing diagramId for edge "${t.id}" — edge IDs require a diagram prefix for uniqueness`);const{handDrawnSeed:l,layout:c}=Ct();let h=t.points,d=!1;const f=o;var u=s;const g=[];for(const M in t.cssCompiledStyles)Bf(M)||g.push(t.cssCompiledStyles[M]);if(c==="swimlane"){if(u.intersect&&f.intersect&&Array.isArray(h)&&h.length>=2)if(h.length===2)h=[f.intersect(h[0]),u.intersect(h[1])];else{const M=h.slice(1,-1),H=M[0],Y=M[M.length-1],G=.5,lt=Math.abs(h[h.length-1].x-Y.x)!Number.isNaN(M.y));const C=JT(t.curve);C!=="rounded"&&(y=sS(y));let b=Oi;switch(C){case"linear":b=Oi;break;case"basis":b=Oa;break;case"cardinal":b=Fd;break;case"bumpX":b=Sd;break;case"bumpY":b=_d;break;case"catmullRom":b=Ed;break;case"monotoneX":b=Pd;break;case"monotoneY":b=Rd;break;case"natural":b=qd;break;case"step":b=Wd;break;case"stepAfter":b=Hd;break;case"stepBefore":b=zd;break;case"rounded":b=Oi;break;default:b=Oa}const{x:k,y:T}=VT(t),S=Ik().x(k).y(T).curve(b);let _;switch(t.thickness){case"normal":_="edge-thickness-normal";break;case"thick":_="edge-thickness-thick";break;case"invisible":_="edge-thickness-invisible";break;default:_="edge-thickness-normal"}switch(t.pattern){case"solid":_+=" edge-pattern-solid";break;case"dotted":_+=" edge-pattern-dotted";break;case"dashed":_+=" edge-pattern-dashed";break;default:_+=" edge-pattern-solid"}let L,v=C==="rounded"?Ug(jg(y,t),5):S(y);const N=Array.isArray(t.style)?t.style:[t.style];let R=N.find(M=>M?.startsWith("stroke:")),P="";t.animate&&(P="edge-animation-fast"),t.animation&&(P="edge-animation-"+t.animation);let z=!1;if(t.look==="handDrawn"){const M=Z.svg(e);Object.assign([],y);const H=M.path(v,{roughness:.3,seed:l});_+=" transition",L=ct(H).select("path").attr("id",`${a}-${t.id}`).attr("class"," "+_+(t.classes?" "+t.classes:"")+(P?" "+P:"")).attr("style",N?N.reduce((G,lt)=>G+";"+lt,""):"");let Y=L.attr("d");L.attr("d",Y),e.node().appendChild(L.node())}else{const M=g.join(";"),H=N?N.reduce((bt,et)=>bt+et+";",""):"",Y=(M?M+";"+H+";":H)+";"+(N?N.reduce((bt,et)=>bt+";"+et,""):"");L=e.append("path").attr("d",v).attr("id",`${a}-${t.id}`).attr("class"," "+_+(t.classes?" "+t.classes:"")+(P?" "+P:"")).attr("style",Y),R=Y.match(/stroke:([^;]+)/)?.[1],z=t.animate===!0||!!t.animation||M.includes("animation");const G=L.node(),lt=typeof G.getTotalLength=="function"?G.getTotalLength():0,ht=gc[t.arrowTypeStart]||0,dt=gc[t.arrowTypeEnd]||0;if(t.look==="neo"&&!z){const et=`stroke-dasharray: ${t.pattern==="dotted"||t.pattern==="dashed"?aS(lt,ht,dt):`0 ${ht} ${lt-ht-dt} ${dt}`}; stroke-dashoffset: 0;`;L.attr("style",et+L.attr("style"))}}L.attr("data-edge",!0),L.attr("data-et","edge"),L.attr("data-id",t.id),L.attr("data-points",m),L.attr("data-look",qt(t.look)),t.showPoints&&y.forEach(M=>{e.append("circle").style("stroke","red").style("fill","red").attr("r",1).attr("cx",M.x).attr("cy",M.y)});let W="";(Ct().flowchart.arrowMarkerAbsolute||Ct().state.arrowMarkerAbsolute)&&(W=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,W=W.replace(/\(/g,"\\(").replace(/\)/g,"\\)")),q.info("arrowTypeStart",t.arrowTypeStart),q.info("arrowTypeEnd",t.arrowTypeEnd);const $=!z&&t?.look==="neo";ZT(L,t,W,a,i,$,R);const A=Math.floor(h.length/2),F=h[A];ye.isLabelCoordinateInPath(F,L.attr("d"))||(d=!0);let D={};return d&&(D.updatedPath=h),D.originalPath=t.points,D},"insertEdge");function Ug(e,t){if(e.length<2)return"";let r="";const i=e.length,o=1e-5;for(let s=0;s({...o}));if(e.length>=2&&Xt[t.arrowTypeStart]){const o=Xt[t.arrowTypeStart],s=e[0],a=e[1],{angle:n}=dn(s,a),l=o*Math.cos(n),c=o*Math.sin(n);r[0].x=s.x+l,r[0].y=s.y+c}const i=e.length;if(i>=2&&Xt[t.arrowTypeEnd]){const o=Xt[t.arrowTypeEnd],s=e[i-1],a=e[i-2],{angle:n}=dn(a,s),l=o*Math.cos(n),c=o*Math.sin(n);r[i-1].x=s.x-l,r[i-1].y=s.y-c}return r}p(jg,"applyMarkerOffsetsToPoints");var lS=p((e,t,r,i)=>{t.forEach(o=>{ES[o](e,r,i)})},"insertMarkers"),hS=p((e,t,r)=>{q.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"),cS=p((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"),dS=p((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"),uS=p((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"),fS=p((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"),pS=p((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"),gS=p((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"),mS=p((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"),yS=p((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"),CS=p((e,t,r)=>{const i=vt(),{themeVariables:o}=i,{transitionColor:s}=o;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",`${s}`)},"barbNeo"),xS=p((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"),bS=p((e,t,r)=>{const 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");const o=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");o.append("circle").attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),o.append("path").attr("d","M21,0 L21,18")},"zero_or_one"),kS=p((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"),wS=p((e,t,r)=>{const 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");const o=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");o.append("circle").attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),o.append("path").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},"zero_or_more"),TS=p((e,t,r)=>{const i=vt(),{themeVariables:o}=i,{strokeWidth:s}=o;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",`${s}`),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",`${s}`)},"only_one_neo"),SS=p((e,t,r)=>{const i=vt(),{themeVariables:o}=i,{strokeWidth:s,mainBkg:a}=o,n=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");n.append("circle").attr("fill",a??"white").attr("cx",21).attr("cy",9).attr("stroke-width",`${s}`).attr("r",6),n.append("path").attr("d","M9,0 L9,18").attr("stroke-width",`${s}`);const l=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");l.append("circle").attr("fill",a??"white").attr("cx",9).attr("cy",9).attr("stroke-width",`${s}`).attr("r",6),l.append("path").attr("d","M21,0 L21,18").attr("stroke-width",`${s}`)},"zero_or_one_neo"),_S=p((e,t,r)=>{const i=vt(),{themeVariables:o}=i,{strokeWidth:s}=o;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",`${s}`),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",`${s}`)},"one_or_more_neo"),BS=p((e,t,r)=>{const i=vt(),{themeVariables:o}=i,{strokeWidth:s,mainBkg:a}=o,n=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");n.append("circle").attr("fill",a??"white").attr("cx",45.5).attr("cy",18).attr("r",6).attr("stroke-width",`${s}`),n.append("path").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18").attr("stroke-width",`${s}`);const l=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");l.append("circle").attr("fill",a??"white").attr("cx",11).attr("cy",18).attr("r",6).attr("stroke-width",`${s}`),l.append("path").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18").attr("stroke-width",`${s}`)},"zero_or_more_neo"),vS=p((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 @@ -300,8 +300,8 @@ Please report this to https://github.com/markedjs/marked.`,t){let o="

        An error L0,20`)},"requirement_arrow"),LS=p((e,t,r)=>{const i=vt(),{themeVariables:o}=i,{strokeWidth:s}=o;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",`${s}`).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"),FS=p((e,t,r)=>{const 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"),AS=p((e,t,r)=>{const i=vt(),{themeVariables:o}=i,{strokeWidth:s}=o,a=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");a.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),a.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),a.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10),a.selectAll("*").attr("stroke-width",`${s}`)},"requirement_contains_neo"),ES={extension:hS,composition:cS,aggregation:dS,dependency:uS,lollipop:fS,point:pS,circle:gS,cross:mS,barb:yS,barbNeo:CS,only_one:xS,zero_or_one:bS,one_or_more:kS,zero_or_more:wS,only_one_neo:TS,zero_or_one_neo:SS,one_or_more_neo:_S,zero_or_more_neo:BS,requirement_arrow:vS,requirement_contains:FS,requirement_arrow_neo:LS,requirement_contains_neo:AS},MS=lS,$S={common:Zi,getConfig:vt,insertCluster:LT,insertEdge:nS,insertEdgeLabel:tS,insertMarkers:MS,insertNode:Hg,interpolateToCurve:Vn,labelHelper:it,log:q,positionEdgeLabel:eS},Gi={},Gg=p(e=>{for(const t of e)Gi[t.name]=t},"registerLayoutLoaders"),OS=p(()=>{Gg([{name:"dagre",loader:p(async()=>await nt(()=>import("./dagre-VKFMJZFB-4bDkTcg2.js"),__vite__mapDeps([0,1,2,3,4,5,6,7])),"loader")},{name:"swimlane",loader:p(async()=>await nt(()=>import("./swimlanes-5IMT3BWC-C0-5MIxj.js"),__vite__mapDeps([8,5,6,1,2,3,7])),"loader")},{name:"cose-bilkent",loader:p(async()=>await nt(()=>import("./cose-bilkent-JH36ORCC-BdAGtrTa.js"),__vite__mapDeps([9,10,7,5,6])),"loader")}])},"registerDefaultLayoutLoaders");OS();var GL=p(async(e,t,r)=>{if(!(e.layoutAlgorithm in Gi))throw new Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);if(e.diagramId)for(const d of e.nodes){const f=d.domId||d.id;d.domId=`${e.diagramId}-${f}`}const i=Gi[e.layoutAlgorithm],o=await i.loader(),{theme:s,themeVariables:a}=e.config,{useGradient:n,gradientStart:l,gradientStop:c}=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",`${s?.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",`${s?.includes("dark")?"#FFFFFF":"#000000"}`),n){const 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",c).attr("stop-opacity",1)}return o.render(e,t,$S,{algorithm:i.algorithm},r)},"render"),XL=p((e="",{fallback:t="dagre"}={})=>{if(e in Gi)return e;if(t in Gi)return q.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"),ml="comm",Xg="rule",Vg="decl",IS="@media",DS="@import",PS="@supports",RS="@namespace",un="@keyframes",Zg="@layer",NS="@scope",qS=Math.abs,Di=String.fromCharCode;function Kg(e){return e.trim()}function fn(e,t,r){return e.replace(t,r)}function Zr(e,t){return e.charCodeAt(t)|0}function ii(e,t,r){return e.slice(t,r)}function Fe(e){return e.length}function Qg(e){return e.length}function To(e,t){return t.push(e),e}var Es=1,oi=1,Jg=0,ce=0,$t=0,ni="";function yl(e,t,r,i,o,s,a,n){return{value:e,root:t,parent:r,type:i,props:o,children:s,line:Es,column:oi,length:a,return:"",siblings:n}}function WS(){return $t}function zS(){return $t=ce>0?Zr(ni,--ce):0,oi--,$t===10&&(oi=1,Es--),$t}function xe(){return $t=ce2||Xi($t)>3?"":" "}function jS(e,t){for(;--t&&xe()&&!($t<48||$t>102||$t>57&&$t<65||$t>70&&$t<97););return Ms(e,Do()+(t<6&&ir()==32&&xe()==32))}function pn(e){for(;xe();)switch($t){case e:return ce;case 34:case 39:e!==34&&e!==39&&pn($t);break;case 40:e===41&&pn(e);break;case 92:xe();break}return ce}function GS(e,t){for(;xe()&&e+$t!==57;)if(e+$t===84&&ir()===47)break;return"/*"+Ms(t,ce-1)+"*"+Di(e===47?e:xe())}function XS(e){for(;!Xi(ir());)xe();return Ms(e,ce)}function VS(e){return YS(Po("",null,null,null,[""],e=HS(e),0,[0],e))}function Po(e,t,r,i,o,s,a,n,l){for(var c=0,h=0,d=a,f=0,u=0,g=0,m=1,y=1,C=1,b=0,k=0,T="",S=o,_=s,L=i,v=T;y;)switch(g=k,k=xe()){case 40:g!=108&&Zr(v,d-1)==58?(b++,v+="("):v+=ga(k);break;case 41:b--,v+=")";break;case 34:case 39:case 91:v+=ga(k);break;case 9:case 10:case 13:case 32:if(b>0){v+=Di(k);break}v+=US(g);break;case 92:v+=jS(Do()-1,7);continue;case 47:switch(ir()){case 42:case 47:To(ZS(GS(xe(),Do()),t,r,l),l),(Xi(g||1)==5||Xi(ir()||1)==5)&&Fe(v)&&ii(v,-1,void 0)!==" "&&(v+=" ");break;default:v+="/"}break;case 123*m:n[c++]=Fe(v)*C;case 125*m:case 59:case 0:if(b>0&&k){v+=Di(k);break}switch(k){case 0:case 125:y=0;case 59+h:C==-1&&(v=fn(v,/\f/g,"")),u>0&&(Fe(v)-d||m===0)&&To(u>32?bc(v+";",i,r,d-1,l):bc(fn(v," ","")+";",i,r,d-2,l),l);break;case 59:v+=";";default:if(To(L=xc(v,t,r,c,h,o,n,T,S=[],_=[],d,s),s),k===123)if(h===0)Po(v,t,L,L,S,s,d,n,_);else{switch(f){case 99:if(Zr(v,3)===110)break;case 108:if(Zr(v,2)===97)break;default:h=0;case 100:case 109:case 115:}h?Po(e,L,L,i&&To(xc(e,L,L,0,0,o,n,T,o,S=[],d,_),_),o,_,d,n,i?S:_):Po(v,L,L,L,[""],_,0,n,_)}}c=h=u=0,m=C=1,T=v="",d=a;break;case 58:d=1+Fe(v),u=g;default:if(m<1){if(k==123)--m;else if(k==125&&m++==0&&zS()==125)continue}switch(v+=Di(k),k*m){case 38:C=h>0?1:(v+="\f",-1);break;case 44:if(b>0)break;n[c++]=(Fe(v)-1)*C,C=1;break;case 64:ir()===45&&(v+=ga(xe())),f=ir(),h=d=Fe(T=v+=XS(Do())),k++;break;case 45:g===45&&Fe(v)==2&&(m=0)}}return s}function xc(e,t,r,i,o,s,a,n,l,c,h,d){for(var f=o-1,u=o===0?s:[""],g=Qg(u),m=0,y=0,C=0;m0?u[b]+" "+k:fn(k,/&\f/g,u[b])))&&(l[C++]=T);return yl(e,t,r,o===0?Xg:n,l,c,h,d)}function ZS(e,t,r,i){return yl(e,t,r,ml,Di(WS()),ii(e,2,-2),0,i)}function bc(e,t,r,i,o){return yl(e,t,r,Vg,ii(e,0,i),ii(e,i+1,-1),i,o)}function gn(e,t){for(var r="",i=0;i/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),"detector"),t_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./c4Diagram-LMCZKHZV-DLgWFktO.js");return{diagram:t}},__vite__mapDeps([11,12,5,6,7]));return{id:tm,diagram:e}},"loader"),e_={id:tm,detector:JS,loader:t_},r_=e_,em="flowchart",i_=p((e,t)=>t?.flowchart?.defaultRenderer==="dagre-wrapper"||t?.flowchart?.defaultRenderer==="elk"?!1:/^\s*graph/.test(e),"detector"),o_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./flowDiagram-23GEKE2U-DUMMY9pi.js").then(r=>r.f);return{diagram:t}},__vite__mapDeps([13,14,15,16,12,17]));return{id:em,diagram:e}},"loader"),s_={id:em,detector:i_,loader:o_},a_=s_,rm="flowchart-v2",n_=p((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"),l_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./flowDiagram-23GEKE2U-DUMMY9pi.js").then(r=>r.f);return{diagram:t}},__vite__mapDeps([13,14,15,16,12,17]));return{id:rm,diagram:e}},"loader"),h_={id:rm,detector:n_,loader:l_},c_=h_,im="swimlane",d_=p(e=>/^\s*swimlane-beta\b/.test(e),"detector"),u_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./swimlanesDiagram-G3AALYLV-DMbj4GHb.js");return{diagram:t}},__vite__mapDeps([18,13,14,15,16,12,17,5,6,7]));return{id:im,diagram:e}},"loader"),f_={id:im,detector:d_,loader:u_},p_=f_,om="er",g_=p(e=>/^\s*erDiagram/.test(e),"detector"),m_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./erDiagram-Q63AITRT-DOSLOW_g.js");return{diagram:t}},__vite__mapDeps([19,15,16,17,5,6,7]));return{id:om,diagram:e}},"loader"),y_={id:om,detector:g_,loader:m_},C_=y_,sm="gitGraph",x_=p(e=>/^\s*gitGraph/.test(e),"detector"),b_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./gitGraphDiagram-IHSO6WYX-EeKfrgej.js");return{diagram:t}},__vite__mapDeps([20,21,22,23,5,6,7]));return{id:sm,diagram:e}},"loader"),k_={id:sm,detector:x_,loader:b_},w_=k_,am="gantt",T_=p(e=>/^\s*gantt/.test(e),"detector"),S_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./ganttDiagram-NO4QXBWP-NYl4Z3R4.js");return{diagram:t}},__vite__mapDeps([24,7,25,26,27,5,6]));return{id:am,diagram:e}},"loader"),__={id:am,detector:T_,loader:S_},B_=__,nm="info",v_=p(e=>/^\s*info/.test(e),"detector"),L_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./infoDiagram-FWYZ7A6U-DaH4t3R3.js");return{diagram:t}},__vite__mapDeps([28,23,5,6,7]));return{id:nm,diagram:e}},"loader"),F_={id:nm,detector:v_,loader:L_},lm="pie",A_=p(e=>/^\s*pie/.test(e),"detector"),E_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./pieDiagram-ENE6RG2P-DiFeh11k.js");return{diagram:t}},__vite__mapDeps([29,22,23,5,6,30,31,26,7]));return{id:lm,diagram:e}},"loader"),M_={id:lm,detector:A_,loader:E_},hm="quadrantChart",$_=p(e=>/^\s*quadrantChart/.test(e),"detector"),O_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./quadrantDiagram-ABIIQ3AL-Bss2swqr.js");return{diagram:t}},__vite__mapDeps([32,25,26,27,5,6,7]));return{id:hm,diagram:e}},"loader"),I_={id:hm,detector:$_,loader:O_},D_=I_,cm="xychart",P_=p(e=>/^\s*xychart(-beta)?/.test(e),"detector"),R_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./xychartDiagram-FW5EYKEG---3Lbwvl.js");return{diagram:t}},__vite__mapDeps([33,26,31,25,27,5,6,7]));return{id:cm,diagram:e}},"loader"),N_={id:cm,detector:P_,loader:R_},q_=N_,dm="requirement",W_=p(e=>/^\s*requirement(Diagram)?/.test(e),"detector"),z_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./requirementDiagram-TGXJPOKE-BXFV4Te6.js");return{diagram:t}},__vite__mapDeps([34,15,16,5,6,7]));return{id:dm,diagram:e}},"loader"),H_={id:dm,detector:W_,loader:z_},Y_=H_,um="sequence",U_=p(e=>/^\s*sequenceDiagram/.test(e),"detector"),j_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./sequenceDiagram-DBY2YBRQ-DyUTbMwM.js");return{diagram:t}},__vite__mapDeps([35,21,12,5,6,7]));return{id:um,diagram:e}},"loader"),G_={id:um,detector:U_,loader:j_},X_=G_,fm="class",V_=p((e,t)=>t?.class?.defaultRenderer==="dagre-wrapper"?!1:/^\s*classDiagram/.test(e),"detector"),Z_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./classDiagram-OUVF2IWQ-CqrT8Lg9.js");return{diagram:t}},__vite__mapDeps([36,37,14,15,16,12,5,6,7]));return{id:fm,diagram:e}},"loader"),K_={id:fm,detector:V_,loader:Z_},Q_=K_,pm="classDiagram",J_=p((e,t)=>/^\s*classDiagram/.test(e)&&t?.class?.defaultRenderer==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(e),"detector"),tB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./classDiagram-v2-EOCWNBFH-CqrT8Lg9.js");return{diagram:t}},__vite__mapDeps([38,37,14,15,16,12,5,6,7]));return{id:pm,diagram:e}},"loader"),eB={id:pm,detector:J_,loader:tB},rB=eB,gm="state",iB=p((e,t)=>t?.state?.defaultRenderer==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(e),"detector"),oB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./stateDiagram-2N3HPSRC-B9WRkRTB.js");return{diagram:t}},__vite__mapDeps([39,40,15,16,12,2,4,3,5,6,7]));return{id:gm,diagram:e}},"loader"),sB={id:gm,detector:iB,loader:oB},aB=sB,mm="stateDiagram",nB=p((e,t)=>!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&t?.state?.defaultRenderer==="dagre-wrapper"),"detector"),lB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./stateDiagram-v2-6OUMAXLB-DaA_2kTJ.js");return{diagram:t}},__vite__mapDeps([41,40,15,16,12,5,6,7]));return{id:mm,diagram:e}},"loader"),hB={id:mm,detector:nB,loader:lB},cB=hB,ym="journey",dB=p(e=>/^\s*journey/.test(e),"detector"),uB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./journeyDiagram-5HDEW3XC-JJbVJr8m.js");return{diagram:t}},__vite__mapDeps([42,14,12,30,5,6,7]));return{id:ym,diagram:e}},"loader"),fB={id:ym,detector:dB,loader:uB},pB=fB,gB=p((e,t,r)=>{q.debug(`rendering svg for syntax error -`);const i=Yk(t),o=i.append("g");i.attr("viewBox","0 0 2412 512"),Gc(i,100,512,!0),o.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"),o.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"),o.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"),o.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"),o.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"),o.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"),o.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"),o.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"),Cm={draw:gB},mB=Cm,yB={db:{},renderer:Cm,parser:{parse:p(()=>{},"parse")}},CB=yB,xm="flowchart-elk",xB=p((e,t={})=>/^\s*flowchart-elk/.test(e)||/^\s*(flowchart|graph)/.test(e)&&t?.flowchart?.defaultRenderer==="elk"?(t.layout="elk",!0):!1,"detector"),bB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./flowDiagram-23GEKE2U-DUMMY9pi.js").then(r=>r.f);return{diagram:t}},__vite__mapDeps([13,14,15,16,12,17]));return{id:xm,diagram:e}},"loader"),kB={id:xm,detector:xB,loader:bB},wB=kB,bm="timeline",TB=p(e=>/^\s*timeline/.test(e),"detector"),SB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./timeline-definition-FHXFAJF6-Blm9HJcK.js");return{diagram:t}},__vite__mapDeps([43,30,5,6,7]));return{id:bm,diagram:e}},"loader"),_B={id:bm,detector:TB,loader:SB},BB=_B,km="mindmap",vB=p(e=>/^\s*mindmap/.test(e),"detector"),LB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./mindmap-definition-LN4V7U3C-Bd7aLAJp.js");return{diagram:t}},__vite__mapDeps([44,15,16,5,6,7]));return{id:km,diagram:e}},"loader"),FB={id:km,detector:vB,loader:LB},AB=FB,wm="kanban",EB=p(e=>/^\s*kanban/.test(e),"detector"),MB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./kanban-definition-HUTT4EX6-CeRZEVYd.js");return{diagram:t}},__vite__mapDeps([45,14,5,6,7]));return{id:wm,diagram:e}},"loader"),$B={id:wm,detector:EB,loader:MB},OB=$B,Tm="sankey",IB=p(e=>/^\s*sankey(-beta)?/.test(e),"detector"),DB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./sankeyDiagram-HTMAVEWB-BHcMCK_w.js");return{diagram:t}},__vite__mapDeps([46,31,26,5,6,7]));return{id:Tm,diagram:e}},"loader"),PB={id:Tm,detector:IB,loader:DB},RB=PB,Sm="packet",NB=p(e=>/^\s*packet(-beta)?/.test(e),"detector"),qB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./diagram-NH7WQ7WH-Cj9RyKgp.js");return{diagram:t}},__vite__mapDeps([47,22,23,5,6,7]));return{id:Sm,diagram:e}},"loader"),WB={id:Sm,detector:NB,loader:qB},_m="radar",zB=p(e=>/^\s*radar-beta/.test(e),"detector"),HB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./diagram-WEI45ONY-t5xRZNwv.js");return{diagram:t}},__vite__mapDeps([48,22,23,5,6,7]));return{id:_m,diagram:e}},"loader"),YB={id:_m,detector:zB,loader:HB},Bm="block",UB=p(e=>/^\s*block(-beta)?/.test(e),"detector"),jB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./blockDiagram-677ZJIJ3-CGAoZfe5.js");return{diagram:t}},__vite__mapDeps([49,14,2,17,5,6,7]));return{id:Bm,diagram:e}},"loader"),GB={id:Bm,detector:UB,loader:jB},XB=GB,vm="treeView",VB=p(e=>/^\s*treeView-beta/.test(e),"detector"),ZB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./diagram-OA4YK3LP-JUEB_AtR.js");return{diagram:t}},__vite__mapDeps([50,21,22,23,5,6,7]));return{id:vm,diagram:e}},"loader"),KB={id:vm,detector:VB,loader:ZB},QB=KB,Lm="architecture",JB=p(e=>/^\s*architecture/.test(e),"detector"),tv=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./architectureDiagram-ZJ3FMSHR-CM71RpvG.js");return{diagram:t}},__vite__mapDeps([51,22,23,5,6,10,7]));return{id:Lm,diagram:e}},"loader"),ev={id:Lm,detector:JB,loader:tv},rv=ev,Fm="eventmodeling",iv=p(e=>/^\s*eventmodeling/.test(e),"detector"),ov=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./diagram-FQU43EPY-C1ljmLlO.js");return{diagram:t}},__vite__mapDeps([52,22,23,5,6,7]));return{id:Fm,diagram:e}},"loader"),sv={id:Fm,detector:iv,loader:ov},av=sv,Am="ishikawa",nv=p(e=>/^\s*ishikawa(-beta)?\b/i.test(e),"detector"),lv=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./ishikawaDiagram-FXEZZL3T-B6KrpWbv.js");return{diagram:t}},__vite__mapDeps([53,5,6,7]));return{id:Am,diagram:e}},"loader"),hv={id:Am,detector:nv,loader:lv},Em="venn",cv=p(e=>/^\s*venn-beta/.test(e),"detector"),dv=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./vennDiagram-L72KCM5P-BhpzFpgZ.js");return{diagram:t}},__vite__mapDeps([54,5,6,7]));return{id:Em,diagram:e}},"loader"),uv={id:Em,detector:cv,loader:dv},fv=uv,Mm="treemap",pv=p(e=>/^\s*treemap/.test(e),"detector"),gv=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./diagram-G47NLZAW-Dr4-bBys.js");return{diagram:t}},__vite__mapDeps([55,22,16,23,5,6,27,31,26,7]));return{id:Mm,diagram:e}},"loader"),mv={id:Mm,detector:pv,loader:gv},$m="wardley",yv=p(e=>/^\s*wardley-beta/i.test(e),"detector"),Cv=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./wardleyDiagram-EHGQE667-DGcHOZD9.js");return{diagram:t}},__vite__mapDeps([56,22,23,5,6,7]));return{id:$m,diagram:e}},"loader"),xv={id:$m,detector:yv,loader:Cv},bv=xv,Om="cynefin",kv=p(e=>/^\s*cynefin-beta(?:[\s:]|$)/.test(e),"detector"),wv=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./cynefinDiagram-TSTJHNR4-BtxdUqIq.js");return{diagram:t}},__vite__mapDeps([57,22,23,5,6,7]));return{id:Om,diagram:e}},"loader"),Tv={id:Om,detector:kv,loader:wv},Im="railroad",Sv=p(e=>/^\s*railroad-beta/i.test(e),"detector"),_v=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./railroadDiagram-RFXS5EU6-Dpqal8U_.js");return{diagram:t}},__vite__mapDeps([58,59,22,23,5,6,7]));return{id:Im,diagram:e}},"loader"),Bv={id:Im,detector:Sv,loader:_v},Dm="railroadEbnf",vv=p(e=>/^\s*railroad-ebnf-beta/i.test(e),"detector"),Lv=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./ebnfDiagram-CCIWWBDH-DCeAYlnS.js");return{diagram:t}},__vite__mapDeps([60,59,22,23,5,6,7]));return{id:Dm,diagram:e}},"loader"),Fv={id:Dm,detector:vv,loader:Lv},Pm="railroadAbnf",Av=p(e=>/^\s*railroad-abnf-beta/i.test(e),"detector"),Ev=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./abnfDiagram-VRR7QNED-CwBLQmjz.js");return{diagram:t}},__vite__mapDeps([61,59,22,23,5,6,7]));return{id:Pm,diagram:e}},"loader"),Mv={id:Pm,detector:Av,loader:Ev},Rm="railroadPeg",$v=p(e=>/^\s*railroad-peg-beta/i.test(e),"detector"),Ov=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./pegDiagram-2B236MQR-CX4fQesk.js");return{diagram:t}},__vite__mapDeps([62,59,22,23,5,6,7]));return{id:Rm,diagram:e}},"loader"),Iv={id:Rm,detector:$v,loader:Ov},kc=!1,$s=p(()=>{kc||(kc=!0,zo("error",CB,e=>e.toLowerCase().trim()==="error"),zo("---",{db:{clear:p(()=>{},"clear")},styles:{},renderer:{draw:p(()=>{},"draw")},parser:{parse:p(()=>{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:p(()=>null,"init")},e=>e.toLowerCase().trimStart().startsWith("---")),ba(wB,AB,rv),ba(r_,OB,rB,Q_,C_,B_,F_,M_,Y_,X_,p_,c_,a_,BB,w_,cB,aB,pB,D_,RB,WB,q_,XB,av,QB,YB,hv,mv,Bv,Fv,Mv,Iv,fv,bv,Tv))},"addDiagrams"),Dv=p(async()=>{q.debug("Loading registered diagrams");const t=(await Promise.allSettled(Object.entries(Sr).map(async([r,{detector:i,loader:o}])=>{if(o)try{Sa(r)}catch{try{const{diagram:s,id:a}=await o();zo(a,s,i)}catch(s){throw q.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete Sr[r],s}}}))).filter(r=>r.status==="rejected");if(t.length>0){q.error(`Failed to load ${t.length} external diagrams`);for(const r of t)q.error(r);throw new Error(`Failed to load ${t.length} external diagrams`)}},"loadRegisteredDiagrams"),Pv="graphics-document document";function Nm(e,t){e.attr("role",Pv),t!==""&&e.attr("aria-roledescription",t)}p(Nm,"setA11yDiagramInfo");function qm(e,t,r,i){if(e.insert!==void 0){if(r){const o=`chart-desc-${i}`;e.attr("aria-describedby",o),e.insert("desc",":first-child").attr("id",o).text(r)}if(t){const o=`chart-title-${i}`;e.attr("aria-labelledby",o),e.insert("title",":first-child").attr("id",o).text(t)}}}p(qm,"addSVGa11yTitleDescription");var mn=class Wm{constructor(t,r,i,o,s){this.type=t,this.text=r,this.db=i,this.parser=o,this.renderer=s}static{p(this,"Diagram")}static async fromText(t,r={}){const i=vt(),o=xn(t,i);t=Z2(t)+` + L0,20`).attr("stroke-linejoin","miter")},"requirement_arrow_neo"),FS=p((e,t,r)=>{const 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"),AS=p((e,t,r)=>{const i=vt(),{themeVariables:o}=i,{strokeWidth:s}=o,a=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");a.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),a.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),a.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10),a.selectAll("*").attr("stroke-width",`${s}`)},"requirement_contains_neo"),ES={extension:hS,composition:cS,aggregation:dS,dependency:uS,lollipop:fS,point:pS,circle:gS,cross:mS,barb:yS,barbNeo:CS,only_one:xS,zero_or_one:bS,one_or_more:kS,zero_or_more:wS,only_one_neo:TS,zero_or_one_neo:SS,one_or_more_neo:_S,zero_or_more_neo:BS,requirement_arrow:vS,requirement_contains:FS,requirement_arrow_neo:LS,requirement_contains_neo:AS},MS=lS,$S={common:Zi,getConfig:vt,insertCluster:LT,insertEdge:nS,insertEdgeLabel:tS,insertMarkers:MS,insertNode:Hg,interpolateToCurve:Vn,labelHelper:it,log:q,positionEdgeLabel:eS},Gi={},Gg=p(e=>{for(const t of e)Gi[t.name]=t},"registerLayoutLoaders"),OS=p(()=>{Gg([{name:"dagre",loader:p(async()=>await nt(()=>import("./dagre-VKFMJZFB-CoCFT_Gw.js"),__vite__mapDeps([0,1,2,3,4,5,6])),"loader")},{name:"swimlane",loader:p(async()=>await nt(()=>import("./swimlanes-5IMT3BWC-BzZwuUMU.js"),__vite__mapDeps([7,5,6,1,2,3])),"loader")},{name:"cose-bilkent",loader:p(async()=>await nt(()=>import("./cose-bilkent-JH36ORCC-D0OqAsiW.js"),__vite__mapDeps([8,9,5,6])),"loader")}])},"registerDefaultLayoutLoaders");OS();var jL=p(async(e,t,r)=>{if(!(e.layoutAlgorithm in Gi))throw new Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);if(e.diagramId)for(const d of e.nodes){const f=d.domId||d.id;d.domId=`${e.diagramId}-${f}`}const i=Gi[e.layoutAlgorithm],o=await i.loader(),{theme:s,themeVariables:a}=e.config,{useGradient:n,gradientStart:l,gradientStop:c}=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",`${s?.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",`${s?.includes("dark")?"#FFFFFF":"#000000"}`),n){const 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",c).attr("stop-opacity",1)}return o.render(e,t,$S,{algorithm:i.algorithm},r)},"render"),GL=p((e="",{fallback:t="dagre"}={})=>{if(e in Gi)return e;if(t in Gi)return q.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"),ml="comm",Xg="rule",Vg="decl",IS="@media",DS="@import",PS="@supports",RS="@namespace",un="@keyframes",Zg="@layer",NS="@scope",qS=Math.abs,Di=String.fromCharCode;function Kg(e){return e.trim()}function fn(e,t,r){return e.replace(t,r)}function Zr(e,t){return e.charCodeAt(t)|0}function ii(e,t,r){return e.slice(t,r)}function Fe(e){return e.length}function Qg(e){return e.length}function To(e,t){return t.push(e),e}var Es=1,oi=1,Jg=0,ce=0,$t=0,ni="";function yl(e,t,r,i,o,s,a,n){return{value:e,root:t,parent:r,type:i,props:o,children:s,line:Es,column:oi,length:a,return:"",siblings:n}}function WS(){return $t}function zS(){return $t=ce>0?Zr(ni,--ce):0,oi--,$t===10&&(oi=1,Es--),$t}function xe(){return $t=ce2||Xi($t)>3?"":" "}function jS(e,t){for(;--t&&xe()&&!($t<48||$t>102||$t>57&&$t<65||$t>70&&$t<97););return Ms(e,Do()+(t<6&&ir()==32&&xe()==32))}function pn(e){for(;xe();)switch($t){case e:return ce;case 34:case 39:e!==34&&e!==39&&pn($t);break;case 40:e===41&&pn(e);break;case 92:xe();break}return ce}function GS(e,t){for(;xe()&&e+$t!==57;)if(e+$t===84&&ir()===47)break;return"/*"+Ms(t,ce-1)+"*"+Di(e===47?e:xe())}function XS(e){for(;!Xi(ir());)xe();return Ms(e,ce)}function VS(e){return YS(Po("",null,null,null,[""],e=HS(e),0,[0],e))}function Po(e,t,r,i,o,s,a,n,l){for(var c=0,h=0,d=a,f=0,u=0,g=0,m=1,y=1,C=1,b=0,k=0,T="",S=o,_=s,L=i,v=T;y;)switch(g=k,k=xe()){case 40:g!=108&&Zr(v,d-1)==58?(b++,v+="("):v+=ga(k);break;case 41:b--,v+=")";break;case 34:case 39:case 91:v+=ga(k);break;case 9:case 10:case 13:case 32:if(b>0){v+=Di(k);break}v+=US(g);break;case 92:v+=jS(Do()-1,7);continue;case 47:switch(ir()){case 42:case 47:To(ZS(GS(xe(),Do()),t,r,l),l),(Xi(g||1)==5||Xi(ir()||1)==5)&&Fe(v)&&ii(v,-1,void 0)!==" "&&(v+=" ");break;default:v+="/"}break;case 123*m:n[c++]=Fe(v)*C;case 125*m:case 59:case 0:if(b>0&&k){v+=Di(k);break}switch(k){case 0:case 125:y=0;case 59+h:C==-1&&(v=fn(v,/\f/g,"")),u>0&&(Fe(v)-d||m===0)&&To(u>32?bc(v+";",i,r,d-1,l):bc(fn(v," ","")+";",i,r,d-2,l),l);break;case 59:v+=";";default:if(To(L=xc(v,t,r,c,h,o,n,T,S=[],_=[],d,s),s),k===123)if(h===0)Po(v,t,L,L,S,s,d,n,_);else{switch(f){case 99:if(Zr(v,3)===110)break;case 108:if(Zr(v,2)===97)break;default:h=0;case 100:case 109:case 115:}h?Po(e,L,L,i&&To(xc(e,L,L,0,0,o,n,T,o,S=[],d,_),_),o,_,d,n,i?S:_):Po(v,L,L,L,[""],_,0,n,_)}}c=h=u=0,m=C=1,T=v="",d=a;break;case 58:d=1+Fe(v),u=g;default:if(m<1){if(k==123)--m;else if(k==125&&m++==0&&zS()==125)continue}switch(v+=Di(k),k*m){case 38:C=h>0?1:(v+="\f",-1);break;case 44:if(b>0)break;n[c++]=(Fe(v)-1)*C,C=1;break;case 64:ir()===45&&(v+=ga(xe())),f=ir(),h=d=Fe(T=v+=XS(Do())),k++;break;case 45:g===45&&Fe(v)==2&&(m=0)}}return s}function xc(e,t,r,i,o,s,a,n,l,c,h,d){for(var f=o-1,u=o===0?s:[""],g=Qg(u),m=0,y=0,C=0;m0?u[b]+" "+k:fn(k,/&\f/g,u[b])))&&(l[C++]=T);return yl(e,t,r,o===0?Xg:n,l,c,h,d)}function ZS(e,t,r,i){return yl(e,t,r,ml,Di(WS()),ii(e,2,-2),0,i)}function bc(e,t,r,i,o){return yl(e,t,r,Vg,ii(e,0,i),ii(e,i+1,-1),i,o)}function gn(e,t){for(var r="",i=0;i/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),"detector"),t_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./c4Diagram-LMCZKHZV-FIxdIiPR.js");return{diagram:t}},__vite__mapDeps([10,11,5,6]));return{id:tm,diagram:e}},"loader"),e_={id:tm,detector:JS,loader:t_},r_=e_,em="flowchart",i_=p((e,t)=>t?.flowchart?.defaultRenderer==="dagre-wrapper"||t?.flowchart?.defaultRenderer==="elk"?!1:/^\s*graph/.test(e),"detector"),o_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./flowDiagram-23GEKE2U-DuNG8YS2.js").then(r=>r.f);return{diagram:t}},__vite__mapDeps([12,13,14,15,11,16]));return{id:em,diagram:e}},"loader"),s_={id:em,detector:i_,loader:o_},a_=s_,rm="flowchart-v2",n_=p((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"),l_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./flowDiagram-23GEKE2U-DuNG8YS2.js").then(r=>r.f);return{diagram:t}},__vite__mapDeps([12,13,14,15,11,16]));return{id:rm,diagram:e}},"loader"),h_={id:rm,detector:n_,loader:l_},c_=h_,im="swimlane",d_=p(e=>/^\s*swimlane-beta\b/.test(e),"detector"),u_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./swimlanesDiagram-G3AALYLV-C11X_Fiy.js");return{diagram:t}},__vite__mapDeps([17,12,13,14,15,11,16,5,6]));return{id:im,diagram:e}},"loader"),f_={id:im,detector:d_,loader:u_},p_=f_,om="er",g_=p(e=>/^\s*erDiagram/.test(e),"detector"),m_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./erDiagram-Q63AITRT-DE-pAoai.js");return{diagram:t}},__vite__mapDeps([18,14,15,16,5,6]));return{id:om,diagram:e}},"loader"),y_={id:om,detector:g_,loader:m_},C_=y_,sm="gitGraph",x_=p(e=>/^\s*gitGraph/.test(e),"detector"),b_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./gitGraphDiagram-IHSO6WYX-pTb313_D.js");return{diagram:t}},__vite__mapDeps([19,20,21,22,5,6]));return{id:sm,diagram:e}},"loader"),k_={id:sm,detector:x_,loader:b_},w_=k_,am="gantt",T_=p(e=>/^\s*gantt/.test(e),"detector"),S_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./ganttDiagram-NO4QXBWP-Dz61VBiM.js");return{diagram:t}},__vite__mapDeps([23,24,25,26,5,6]));return{id:am,diagram:e}},"loader"),__={id:am,detector:T_,loader:S_},B_=__,nm="info",v_=p(e=>/^\s*info/.test(e),"detector"),L_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./infoDiagram-FWYZ7A6U-Db4ndYZQ.js");return{diagram:t}},__vite__mapDeps([27,22,5,6]));return{id:nm,diagram:e}},"loader"),F_={id:nm,detector:v_,loader:L_},lm="pie",A_=p(e=>/^\s*pie/.test(e),"detector"),E_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./pieDiagram-ENE6RG2P-CBmVH0d_.js");return{diagram:t}},__vite__mapDeps([28,21,22,5,6,29,30,25]));return{id:lm,diagram:e}},"loader"),M_={id:lm,detector:A_,loader:E_},hm="quadrantChart",$_=p(e=>/^\s*quadrantChart/.test(e),"detector"),O_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./quadrantDiagram-ABIIQ3AL-By6VfuwF.js");return{diagram:t}},__vite__mapDeps([31,24,25,26,5,6]));return{id:hm,diagram:e}},"loader"),I_={id:hm,detector:$_,loader:O_},D_=I_,cm="xychart",P_=p(e=>/^\s*xychart(-beta)?/.test(e),"detector"),R_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./xychartDiagram-FW5EYKEG-BuEkU8kF.js");return{diagram:t}},__vite__mapDeps([32,25,30,24,26,5,6]));return{id:cm,diagram:e}},"loader"),N_={id:cm,detector:P_,loader:R_},q_=N_,dm="requirement",W_=p(e=>/^\s*requirement(Diagram)?/.test(e),"detector"),z_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./requirementDiagram-TGXJPOKE-BvFhzhoM.js");return{diagram:t}},__vite__mapDeps([33,14,15,5,6]));return{id:dm,diagram:e}},"loader"),H_={id:dm,detector:W_,loader:z_},Y_=H_,um="sequence",U_=p(e=>/^\s*sequenceDiagram/.test(e),"detector"),j_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./sequenceDiagram-DBY2YBRQ-xl-Awek9.js");return{diagram:t}},__vite__mapDeps([34,20,11,5,6]));return{id:um,diagram:e}},"loader"),G_={id:um,detector:U_,loader:j_},X_=G_,fm="class",V_=p((e,t)=>t?.class?.defaultRenderer==="dagre-wrapper"?!1:/^\s*classDiagram/.test(e),"detector"),Z_=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./classDiagram-OUVF2IWQ-Bx-1PFrT.js");return{diagram:t}},__vite__mapDeps([35,36,13,14,15,11,5,6]));return{id:fm,diagram:e}},"loader"),K_={id:fm,detector:V_,loader:Z_},Q_=K_,pm="classDiagram",J_=p((e,t)=>/^\s*classDiagram/.test(e)&&t?.class?.defaultRenderer==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(e),"detector"),tB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./classDiagram-v2-EOCWNBFH-Bx-1PFrT.js");return{diagram:t}},__vite__mapDeps([37,36,13,14,15,11,5,6]));return{id:pm,diagram:e}},"loader"),eB={id:pm,detector:J_,loader:tB},rB=eB,gm="state",iB=p((e,t)=>t?.state?.defaultRenderer==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(e),"detector"),oB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./stateDiagram-2N3HPSRC-C5DOlDDh.js");return{diagram:t}},__vite__mapDeps([38,39,14,15,11,2,4,3,5,6]));return{id:gm,diagram:e}},"loader"),sB={id:gm,detector:iB,loader:oB},aB=sB,mm="stateDiagram",nB=p((e,t)=>!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&t?.state?.defaultRenderer==="dagre-wrapper"),"detector"),lB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./stateDiagram-v2-6OUMAXLB-CKzt6rtG.js");return{diagram:t}},__vite__mapDeps([40,39,14,15,11,5,6]));return{id:mm,diagram:e}},"loader"),hB={id:mm,detector:nB,loader:lB},cB=hB,ym="journey",dB=p(e=>/^\s*journey/.test(e),"detector"),uB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./journeyDiagram-5HDEW3XC-BkOWINC6.js");return{diagram:t}},__vite__mapDeps([41,13,11,29,5,6]));return{id:ym,diagram:e}},"loader"),fB={id:ym,detector:dB,loader:uB},pB=fB,gB=p((e,t,r)=>{q.debug(`rendering svg for syntax error +`);const i=Yk(t),o=i.append("g");i.attr("viewBox","0 0 2412 512"),Gc(i,100,512,!0),o.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"),o.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"),o.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"),o.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"),o.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"),o.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"),o.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"),o.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"),Cm={draw:gB},mB=Cm,yB={db:{},renderer:Cm,parser:{parse:p(()=>{},"parse")}},CB=yB,xm="flowchart-elk",xB=p((e,t={})=>/^\s*flowchart-elk/.test(e)||/^\s*(flowchart|graph)/.test(e)&&t?.flowchart?.defaultRenderer==="elk"?(t.layout="elk",!0):!1,"detector"),bB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./flowDiagram-23GEKE2U-DuNG8YS2.js").then(r=>r.f);return{diagram:t}},__vite__mapDeps([12,13,14,15,11,16]));return{id:xm,diagram:e}},"loader"),kB={id:xm,detector:xB,loader:bB},wB=kB,bm="timeline",TB=p(e=>/^\s*timeline/.test(e),"detector"),SB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./timeline-definition-FHXFAJF6-9x8NoaNX.js");return{diagram:t}},__vite__mapDeps([42,29,5,6]));return{id:bm,diagram:e}},"loader"),_B={id:bm,detector:TB,loader:SB},BB=_B,km="mindmap",vB=p(e=>/^\s*mindmap/.test(e),"detector"),LB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./mindmap-definition-LN4V7U3C-DdFheN9U.js");return{diagram:t}},__vite__mapDeps([43,14,15,5,6]));return{id:km,diagram:e}},"loader"),FB={id:km,detector:vB,loader:LB},AB=FB,wm="kanban",EB=p(e=>/^\s*kanban/.test(e),"detector"),MB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./kanban-definition-HUTT4EX6-DiQ_qC6Q.js");return{diagram:t}},__vite__mapDeps([44,13,5,6]));return{id:wm,diagram:e}},"loader"),$B={id:wm,detector:EB,loader:MB},OB=$B,Tm="sankey",IB=p(e=>/^\s*sankey(-beta)?/.test(e),"detector"),DB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./sankeyDiagram-HTMAVEWB-Ee-air4w.js");return{diagram:t}},__vite__mapDeps([45,30,25,5,6]));return{id:Tm,diagram:e}},"loader"),PB={id:Tm,detector:IB,loader:DB},RB=PB,Sm="packet",NB=p(e=>/^\s*packet(-beta)?/.test(e),"detector"),qB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./diagram-NH7WQ7WH-CKxpc0Zm.js");return{diagram:t}},__vite__mapDeps([46,21,22,5,6]));return{id:Sm,diagram:e}},"loader"),WB={id:Sm,detector:NB,loader:qB},_m="radar",zB=p(e=>/^\s*radar-beta/.test(e),"detector"),HB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./diagram-WEI45ONY-5zxq5HEQ.js");return{diagram:t}},__vite__mapDeps([47,21,22,5,6]));return{id:_m,diagram:e}},"loader"),YB={id:_m,detector:zB,loader:HB},Bm="block",UB=p(e=>/^\s*block(-beta)?/.test(e),"detector"),jB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./blockDiagram-677ZJIJ3--KepqvbS.js");return{diagram:t}},__vite__mapDeps([48,13,2,16,5,6]));return{id:Bm,diagram:e}},"loader"),GB={id:Bm,detector:UB,loader:jB},XB=GB,vm="treeView",VB=p(e=>/^\s*treeView-beta/.test(e),"detector"),ZB=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./diagram-OA4YK3LP-B5bqGU_R.js");return{diagram:t}},__vite__mapDeps([49,20,21,22,5,6]));return{id:vm,diagram:e}},"loader"),KB={id:vm,detector:VB,loader:ZB},QB=KB,Lm="architecture",JB=p(e=>/^\s*architecture/.test(e),"detector"),tv=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./architectureDiagram-ZJ3FMSHR-D-PbXpVD.js");return{diagram:t}},__vite__mapDeps([50,21,22,5,6,9]));return{id:Lm,diagram:e}},"loader"),ev={id:Lm,detector:JB,loader:tv},rv=ev,Fm="eventmodeling",iv=p(e=>/^\s*eventmodeling/.test(e),"detector"),ov=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./diagram-FQU43EPY-DuCbEYlU.js");return{diagram:t}},__vite__mapDeps([51,21,22,5,6]));return{id:Fm,diagram:e}},"loader"),sv={id:Fm,detector:iv,loader:ov},av=sv,Am="ishikawa",nv=p(e=>/^\s*ishikawa(-beta)?\b/i.test(e),"detector"),lv=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./ishikawaDiagram-FXEZZL3T-sXLg1ljK.js");return{diagram:t}},__vite__mapDeps([52,5,6]));return{id:Am,diagram:e}},"loader"),hv={id:Am,detector:nv,loader:lv},Em="venn",cv=p(e=>/^\s*venn-beta/.test(e),"detector"),dv=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./vennDiagram-L72KCM5P-Cwt-aDWP.js");return{diagram:t}},__vite__mapDeps([53,5,6]));return{id:Em,diagram:e}},"loader"),uv={id:Em,detector:cv,loader:dv},fv=uv,Mm="treemap",pv=p(e=>/^\s*treemap/.test(e),"detector"),gv=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./diagram-G47NLZAW-DaD-7Fad.js");return{diagram:t}},__vite__mapDeps([54,21,15,22,5,6,26,30,25]));return{id:Mm,diagram:e}},"loader"),mv={id:Mm,detector:pv,loader:gv},$m="wardley",yv=p(e=>/^\s*wardley-beta/i.test(e),"detector"),Cv=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./wardleyDiagram-EHGQE667-DqPls4-l.js");return{diagram:t}},__vite__mapDeps([55,21,22,5,6]));return{id:$m,diagram:e}},"loader"),xv={id:$m,detector:yv,loader:Cv},bv=xv,Om="cynefin",kv=p(e=>/^\s*cynefin-beta(?:[\s:]|$)/.test(e),"detector"),wv=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./cynefinDiagram-TSTJHNR4-B57Jxc_T.js");return{diagram:t}},__vite__mapDeps([56,21,22,5,6]));return{id:Om,diagram:e}},"loader"),Tv={id:Om,detector:kv,loader:wv},Im="railroad",Sv=p(e=>/^\s*railroad-beta/i.test(e),"detector"),_v=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./railroadDiagram-RFXS5EU6-BCTFslNT.js");return{diagram:t}},__vite__mapDeps([57,58,21,22,5,6]));return{id:Im,diagram:e}},"loader"),Bv={id:Im,detector:Sv,loader:_v},Dm="railroadEbnf",vv=p(e=>/^\s*railroad-ebnf-beta/i.test(e),"detector"),Lv=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./ebnfDiagram-CCIWWBDH-FCeqrnaL.js");return{diagram:t}},__vite__mapDeps([59,58,21,22,5,6]));return{id:Dm,diagram:e}},"loader"),Fv={id:Dm,detector:vv,loader:Lv},Pm="railroadAbnf",Av=p(e=>/^\s*railroad-abnf-beta/i.test(e),"detector"),Ev=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./abnfDiagram-VRR7QNED-DpFT7k4x.js");return{diagram:t}},__vite__mapDeps([60,58,21,22,5,6]));return{id:Pm,diagram:e}},"loader"),Mv={id:Pm,detector:Av,loader:Ev},Rm="railroadPeg",$v=p(e=>/^\s*railroad-peg-beta/i.test(e),"detector"),Ov=p(async()=>{const{diagram:e}=await nt(async()=>{const{diagram:t}=await import("./pegDiagram-2B236MQR-BsIicOhg.js");return{diagram:t}},__vite__mapDeps([61,58,21,22,5,6]));return{id:Rm,diagram:e}},"loader"),Iv={id:Rm,detector:$v,loader:Ov},kc=!1,$s=p(()=>{kc||(kc=!0,zo("error",CB,e=>e.toLowerCase().trim()==="error"),zo("---",{db:{clear:p(()=>{},"clear")},styles:{},renderer:{draw:p(()=>{},"draw")},parser:{parse:p(()=>{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:p(()=>null,"init")},e=>e.toLowerCase().trimStart().startsWith("---")),ba(wB,AB,rv),ba(r_,OB,rB,Q_,C_,B_,F_,M_,Y_,X_,p_,c_,a_,BB,w_,cB,aB,pB,D_,RB,WB,q_,XB,av,QB,YB,hv,mv,Bv,Fv,Mv,Iv,fv,bv,Tv))},"addDiagrams"),Dv=p(async()=>{q.debug("Loading registered diagrams");const t=(await Promise.allSettled(Object.entries(Sr).map(async([r,{detector:i,loader:o}])=>{if(o)try{Sa(r)}catch{try{const{diagram:s,id:a}=await o();zo(a,s,i)}catch(s){throw q.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete Sr[r],s}}}))).filter(r=>r.status==="rejected");if(t.length>0){q.error(`Failed to load ${t.length} external diagrams`);for(const r of t)q.error(r);throw new Error(`Failed to load ${t.length} external diagrams`)}},"loadRegisteredDiagrams"),Pv="graphics-document document";function Nm(e,t){e.attr("role",Pv),t!==""&&e.attr("aria-roledescription",t)}p(Nm,"setA11yDiagramInfo");function qm(e,t,r,i){if(e.insert!==void 0){if(r){const o=`chart-desc-${i}`;e.attr("aria-describedby",o),e.insert("desc",":first-child").attr("id",o).text(r)}if(t){const o=`chart-title-${i}`;e.attr("aria-labelledby",o),e.insert("title",":first-child").attr("id",o).text(t)}}}p(qm,"addSVGa11yTitleDescription");var mn=class Wm{constructor(t,r,i,o,s){this.type=t,this.text=r,this.db=i,this.parser=o,this.renderer=s}static{p(this,"Diagram")}static async fromText(t,r={}){const i=vt(),o=xn(t,i);t=Z2(t)+` `;try{Sa(o)}catch{const c=R0(o);if(!c)throw new Wc(`Diagram ${o} not found.`);const{id:h,diagram:d}=await c();zo(h,d)}const{db:s,parser:a,renderer:n,init:l}=Sa(o);return a.parser&&(a.parser.yy=s),s.clear?.(),l?.(i),r.title&&s.setDiagramTitle?.(r.title),await a.parse(t),new Wm(o,t,s,a,n)}async render(t,r){await this.renderer.draw(this.text,t,r,this)}getParser(){return this.parser}getType(){return this.type}},wc=[],Rv=p(()=>{wc.forEach(e=>{e()}),wc=[]},"attachFunctions"),Nv=p(e=>e.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");function zm(e){const t=e.match(qc);if(!t)return{text:e,metadata:{}};const r=t[1],i=r?t[2].split(` `).map(a=>a.startsWith(r)?a.slice(r.length):a).join(` `):t[2];let o=K1(i,{schema:Z1})??{};o=typeof o=="object"&&!Array.isArray(o)?o:{};const s={};return o.displayMode&&(s.displayMode=o.displayMode.toString()),o.title&&(s.title=o.title.toString()),o.config&&(s.config=o.config),{text:e.slice(t[0].length),metadata:s}}p(zm,"extractFrontMatter");var qv=p(e=>e.replace(/\r\n?/g,` @@ -311,4 +311,4 @@ Please report this to https://github.com/markedjs/marked.`,t){let o="

        An error ${eL} `},"putIntoIFrame"),Sc=p((e,t,r,i,o)=>{const s=e.append("div");s.attr("id",r),i&&s.attr("style",i);const a=s.append("svg").attr("id",t).attr("width","100%").attr("xmlns",Gv);return o&&a.attr("xmlns:xlink",o),a.append("g"),e},"appendDivSvgG");function yn(e,t){return e.append("iframe").attr("id",t).attr("style","width: 100%; height: 100%;").attr("sandbox","")}p(yn,"sandboxedIframe");var hL=p((e,t,r,i)=>{e.getElementById(t)?.remove(),e.getElementById(r)?.remove(),e.getElementById(i)?.remove()},"removeExistingElements"),cL=p(async function(e,t,r){$s();const i=xl(t);t=i.code;const o=vt();q.debug(o),t.length>(o?.maxTextSize??Hv)&&(t=Yv);const s=`#${e}`,a="i"+e,n="#"+a,l="d"+e,c="#"+l,h=p(()=>{const W=ct(f?n:c).node();W&&"remove"in W&&W.remove()},"removeTempElements");let d=ct(document.body);const f=o.securityLevel===Uv,u=o.securityLevel===jv,g=o.fontFamily;if(r!==void 0){if(r&&(r.innerHTML=""),f){const z=yn(ct(r),a);d=ct(z.nodes()[0].contentDocument.body),d.node().style.margin="0"}else d=ct(r);Sc(d,e,l,`font-family: ${g}`,Xv)}else{if(hL(document,e,l,a),f){const z=yn(ct(document.body),a);d=ct(z.nodes()[0].contentDocument.body),d.node().style.margin="0"}else d=ct("body");Sc(d,e,l)}let m,y;try{m=await mn.fromText(t,{title:i.title})}catch(z){if(o.suppressErrorRendering)throw h(),z;m=await mn.fromText("error"),y=z}const C=d.select(c).node(),b=m.type,k=C.firstChild,T=k.firstChild,S=m.renderer.getClasses?.(t,m),_=aL(o,b,S,s),L=document.createElement("style");L.innerHTML=_,k.insertBefore(L,T);try{await m.renderer.draw(t,e,"11.16.0",m)}catch(z){throw o.suppressErrorRendering?h():mB.draw(t,e,"11.16.0"),z}const v=d.select(`${c} svg`),N=m.db.getAccTitle?.(),R=m.db.getAccDescription?.();Gm(b,v,N,R),d.select(`[id="${e}"]`).selectAll("foreignobject > *").attr("xmlns",Vv);let P=d.select(c).node().innerHTML;if(q.debug("config.arrowMarkerAbsolute",o.arrowMarkerAbsolute),P=nL(P,f,Ie(o.arrowMarkerAbsolute)),f){const z=d.select(c+" svg").node();P=lL(P,z)}else u||(P=Kr.sanitize(P,{ADD_TAGS:rL,ADD_ATTR:iL,HTML_INTEGRATION_POINTS:{foreignobject:!0}}));if(Rv(),y)throw y;return h(),{diagramType:b,svg:P,bindFunctions:m.db.bindFunctions}},"render");function Um(e={}){const t=Dt({},e);t?.fontFamily&&!t.themeVariables?.fontFamily&&(t.themeVariables||(t.themeVariables={}),t.themeVariables.fontFamily=t.fontFamily),$0(t),t?.theme&&t.theme in He?t.themeVariables=He[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=He.default.getThemeVariables(t.themeVariables));const r=typeof t=="object"?M0(t):Ic();Cn(r.logLevel),$s()}p(Um,"initialize");var jm=p((e,t={})=>{const{code:r}=Cl(e);return mn.fromText(r,t)},"getDiagramFromText");function Gm(e,t,r,i){Nm(t,e),qm(t,r,i,t.attr("id"))}p(Gm,"addA11yInfo");var Fr=Object.freeze({render:cL,parse:Ym,getDiagramFromText:jm,initialize:Um,getConfig:vt,setConfig:Dc,getSiteConfig:Ic,updateSiteConfig:O0,reset:p(()=>{qo()},"reset"),globalReset:p(()=>{qo(Qr)},"globalReset"),defaultConfig:Qr});Cn(vt().logLevel);qo(vt());var dL=p((e,t,r)=>{q.warn(e),Jn(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"),Xm=p(async function(e={querySelector:".mermaid"}){try{await uL(e)}catch(t){if(Jn(t)&&q.error(t.str),Ge.parseError&&Ge.parseError(t),!e.suppressErrors)throw q.error("Use the suppressErrors option to suppress these errors"),t}},"run"),uL=p(async function({postRenderCallback:e,querySelector:t,nodes:r}={querySelector:".mermaid"}){const i=Fr.getConfig();q.debug(`${e?"":"No "}Callback function found`);let o;if(r)o=r;else if(t)o=document.querySelectorAll(t);else throw new Error("Nodes and querySelector are both undefined");q.debug(`Found ${o.length} diagrams`),i?.startOnLoad!==void 0&&(q.debug("Start On Load: "+i?.startOnLoad),Fr.updateSiteConfig({startOnLoad:i?.startOnLoad}));const s=new ye.InitIDGenerator(i.deterministicIds,i.deterministicIDSeed);let a;const n=[];for(const l of Array.from(o)){if(q.info("Rendering diagram: "+l.id),l.getAttribute("data-processed"))continue;l.setAttribute("data-processed","true");const c=`mermaid-${s.next()}`;a=l.innerHTML,a=ip(ye.entityDecode(a)).trim().replace(//gi,"
        ");const h=ye.detectInit(a);h&&q.debug("Detected early reinit: ",h);try{const{svg:d,bindFunctions:f}=await Qm(c,a,l);l.innerHTML=d,e&&await e(c),f&&f(l)}catch(d){dL(d,n,Ge.parseError)}}if(n.length>0)throw n[0]},"runThrowsErrors"),Vm=p(function(e){Fr.initialize(e)},"initialize"),fL=p(async function(e,t,r){q.warn("mermaid.init is deprecated. Please use run instead."),e&&Vm(e);const i={postRenderCallback:r,querySelector:".mermaid"};typeof t=="string"?i.querySelector=t:t&&(t instanceof HTMLElement?i.nodes=[t]:i.nodes=t),await Xm(i)},"init"),pL=p(async(e,{lazyLoad:t=!0}={})=>{$s(),ba(...e),t===!1&&await Dv()},"registerExternalDiagrams"),Zm=p(function(){if(Ge.startOnLoad){const{startOnLoad:e}=Fr.getConfig();e&&Ge.run().catch(t=>q.error("Mermaid failed to initialize",t))}},"contentLoaded");typeof document<"u"&&window.addEventListener("load",Zm,!1);var gL=p(function(e){Ge.parseError=e},"setParseErrorHandler"),ps=[],ma=!1,Km=p(async()=>{if(!ma){for(ma=!0;ps.length>0;){const e=ps.shift();if(e)try{await e()}catch(t){q.error("Error executing queue",t)}}ma=!1}},"executeQueue"),mL=p(async(e,t)=>new Promise((r,i)=>{const o=p(()=>new Promise((s,a)=>{Fr.parse(e,t).then(n=>{s(n),r(n)},n=>{q.error("Error parsing",n),Ge.parseError?.(n),a(n),i(n)})}),"performCall");ps.push(o),Km().catch(i)}),"parse"),Qm=p((e,t,r)=>new Promise((i,o)=>{const s=p(()=>new Promise((a,n)=>{Fr.render(e,t,r).then(l=>{a(l),i(l)},l=>{q.error("Error parsing",l),Ge.parseError?.(l),n(l),o(l)})}),"performCall");ps.push(s),Km().catch(o)}),"render"),yL=p(()=>Object.keys(Sr).map(e=>({id:e})),"getRegisteredDiagramsMetadata"),Ge={startOnLoad:!0,mermaidAPI:Fr,parse:mL,render:Qm,init:fL,run:Xm,registerExternalDiagrams:pL,registerLayoutLoaders:Gg,initialize:Vm,parseError:void 0,contentLoaded:Zm,setParseErrorHandler:gL,detectType:xn,registerIconPacks:yw,getRegisteredDiagramsMetadata:yL},CL=Ge;/*! Check if previously processed *//*! * Wait for document loaded before starting the execution - */const VL=Object.freeze(Object.defineProperty({__proto__:null,default:CL},Symbol.toStringTag,{value:"Module"}));export{AL as $,tl as A,$c as B,z2 as C,Yk as D,u0 as E,TL as F,K1 as G,Pi as H,wL as I,Z1 as J,Ss as K,U0 as L,jc as M,Vi as N,Ee as O,Ek as P,Mn as Q,LL as R,EL as S,Nr as T,at as U,_h as V,Sh as W,$L as X,ML as Y,$2 as Z,p as _,sC as a,Pe as a$,BL as a0,vL as a1,FL as a2,IL as a3,OL as a4,Kr as a5,sh as a6,Ik as a7,Oa as a8,W2 as a9,Gn as aA,Un as aB,Mo as aC,y2 as aD,m2 as aE,g2 as aF,p2 as aG,a2 as aH,Lf as aI,h2 as aJ,s2 as aK,u2 as aL,Ff as aM,l2 as aN,b2 as aO,x2 as aP,C2 as aQ,w2 as aR,k2 as aS,n2 as aT,Af as aU,f2 as aV,d2 as aW,c2 as aX,Ef as aY,VT as aZ,ee as a_,ke as aa,O as ab,I as ac,J0 as ad,Xc as ae,LT as af,Hg as ag,UL as ah,eo as ai,yw as aj,Qn as ak,Z as al,MS as am,YL as an,jL as ao,zL as ap,Q as aq,HL as ar,el as as,nS as at,eS as au,tS as av,fs as aw,Yt as ax,Xt as ay,rT as az,oC as b,bi as b0,Rf as b1,vr as b2,zf as b3,vc as b4,Mk as b5,kL as b6,mw as b7,SL as b8,Ln as b9,tr as ba,qi as bb,Ch as bc,db as bd,K as be,Bf as bf,se as bg,ob as bh,vn as bi,ld as bj,Qi as bk,dd as bl,_L as bm,by as bn,XT as bo,VL as bp,Ct as c,ct as d,Gc as e,Dt as f,nC as g,je as h,be as i,i2 as j,Zi as k,q as l,qf as m,lC as n,hC as o,iC as p,DL as q,or as r,aC as s,my as t,XL as u,GL as v,U2 as w,ye as x,vt as y,dC as z}; + */const XL=Object.freeze(Object.defineProperty({__proto__:null,default:CL},Symbol.toStringTag,{value:"Module"}));export{Pi as $,dC as A,tl as B,Ee as C,$c as D,z2 as E,Yk as F,Ek as G,Mn as H,vL as I,AL as J,Nr as K,_h as L,Sh as M,ML as N,EL as O,FL as P,_L as Q,BL as R,LL as S,OL as T,at as U,$L as V,u0 as W,wL as X,K1 as Y,Z1 as Z,p as _,sC as a,Pe as a$,kL as a0,Ss as a1,$2 as a2,U0 as a3,jc as a4,Kr as a5,sh as a6,Ik as a7,Oa as a8,W2 as a9,Gn as aA,Un as aB,Mo as aC,y2 as aD,m2 as aE,g2 as aF,p2 as aG,a2 as aH,Lf as aI,h2 as aJ,s2 as aK,u2 as aL,Ff as aM,l2 as aN,b2 as aO,x2 as aP,C2 as aQ,w2 as aR,k2 as aS,n2 as aT,Af as aU,f2 as aV,d2 as aW,c2 as aX,Ef as aY,VT as aZ,ee as a_,ke as aa,O as ab,I as ac,J0 as ad,Xc as ae,LT as af,Hg as ag,YL as ah,eo as ai,yw as aj,Qn as ak,Z as al,MS as am,HL as an,UL as ao,WL as ap,Q as aq,zL as ar,el as as,nS as at,eS as au,tS as av,fs as aw,Yt as ax,Xt as ay,rT as az,oC as b,bi as b0,Rf as b1,vr as b2,zf as b3,vc as b4,Mk as b5,bL as b6,my as b7,mw as b8,TL as b9,Ln as ba,tr as bb,qi as bc,Ch as bd,db as be,K as bf,Bf as bg,se as bh,ob as bi,vn as bj,ld as bk,Qi as bl,dd as bm,SL as bn,by as bo,XT as bp,XL as bq,Ct as c,ct as d,Gc as e,Dt as f,nC as g,je as h,be as i,i2 as j,Zi as k,q as l,qf as m,Vi as n,lC as o,hC as p,iC as q,IL as r,aC as s,or as t,gy as u,GL as v,U2 as w,jL as x,ye as y,vt as z}; diff --git a/apps/kimi-code/dist-web/assets/mindmap-definition-LN4V7U3C-Bd7aLAJp.js b/apps/kimi-code/dist-web/assets/mindmap-definition-LN4V7U3C-DdFheN9U.js similarity index 77% rename from apps/kimi-code/dist-web/assets/mindmap-definition-LN4V7U3C-Bd7aLAJp.js rename to apps/kimi-code/dist-web/assets/mindmap-definition-LN4V7U3C-DdFheN9U.js index 089ef6331..a84d7e8bc 100644 --- a/apps/kimi-code/dist-web/assets/mindmap-definition-LN4V7U3C-Bd7aLAJp.js +++ b/apps/kimi-code/dist-web/assets/mindmap-definition-LN4V7U3C-DdFheN9U.js @@ -1,6 +1,6 @@ -import{g as oe}from"./chunk-XXDRQBXY-BW4XjZut.js";import{s as ae}from"./chunk-VR4S4FIN-CHAEh_jD.js";import{_ as l,l as C,u as ce,v as le,y as he,B as G,c as B,i as F,b6 as de,aa as ge,ab as ue,ac as pe}from"./mermaid.core-CgZTgv7Y.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";const E=[];for(let e=0;e<256;++e)E.push((e+256).toString(16).slice(1));function fe(e,n=0){return(E[e[n+0]]+E[e[n+1]]+E[e[n+2]]+E[e[n+3]]+"-"+E[e[n+4]]+E[e[n+5]]+"-"+E[e[n+6]]+E[e[n+7]]+"-"+E[e[n+8]]+E[e[n+9]]+"-"+E[e[n+10]]+E[e[n+11]]+E[e[n+12]]+E[e[n+13]]+E[e[n+14]]+E[e[n+15]]).toLowerCase()}const me=new Uint8Array(16);function ye(){return crypto.getRandomValues(me)}function Ee(e,n,g){return crypto.randomUUID?crypto.randomUUID():_e(e)}function _e(e,n,g){e=e||{};const a=e.random??e.rng?.()??ye();if(a.length<16)throw new Error("Random bytes length must be >= 16");return a[6]=a[6]&15|64,a[8]=a[8]&63|128,fe(a)}var Y=(function(){var e=l(function(D,s,i,o){for(i=i||{},o=D.length;o--;i[D[o]]=s);return i},"o"),n=[1,4],g=[1,13],a=[1,12],t=[1,15],h=[1,16],f=[1,20],m=[1,19],_=[6,7,8],T=[1,26],I=[1,24],w=[1,25],d=[6,7,11],R=[1,6,13,15,16,19,22],q=[1,33],J=[1,34],A=[1,6,7,11,13,15,16,19,22],j={trace:l(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:l(function(s,i,o,c,p,r,$){var u=r.length-1;switch(p){case 6:case 7:return c;case 8:c.getLogger().trace("Stop NL ");break;case 9:c.getLogger().trace("Stop EOF ");break;case 11:c.getLogger().trace("Stop NL2 ");break;case 12:c.getLogger().trace("Stop EOF2 ");break;case 15:c.getLogger().info("Node: ",r[u].id),c.addNode(r[u-1].length,r[u].id,r[u].descr,r[u].type);break;case 16:c.getLogger().trace("Icon: ",r[u]),c.decorateNode({icon:r[u]});break;case 17:case 21:c.decorateNode({class:r[u]});break;case 18:c.getLogger().trace("SPACELIST");break;case 19:c.getLogger().trace("Node: ",r[u].id),c.addNode(0,r[u].id,r[u].descr,r[u].type);break;case 20:c.decorateNode({icon:r[u]});break;case 25:c.getLogger().trace("node found ..",r[u-2]),this.$={id:r[u-1],descr:r[u-1],type:c.getType(r[u-2],r[u])};break;case 26:this.$={id:r[u],descr:r[u],type:c.nodeType.DEFAULT};break;case 27:c.getLogger().trace("node found ..",r[u-3]),this.$={id:r[u-3],descr:r[u-1],type:c.getType(r[u-2],r[u])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:n},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:n},{6:g,7:[1,10],9:9,12:11,13:a,14:14,15:t,16:h,17:17,18:18,19:f,22:m},e(_,[2,3]),{1:[2,2]},e(_,[2,4]),e(_,[2,5]),{1:[2,6],6:g,12:21,13:a,14:14,15:t,16:h,17:17,18:18,19:f,22:m},{6:g,9:22,12:11,13:a,14:14,15:t,16:h,17:17,18:18,19:f,22:m},{6:T,7:I,10:23,11:w},e(d,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:f,22:m}),e(d,[2,18]),e(d,[2,19]),e(d,[2,20]),e(d,[2,21]),e(d,[2,23]),e(d,[2,24]),e(d,[2,26],{19:[1,30]}),{20:[1,31]},{6:T,7:I,10:32,11:w},{1:[2,7],6:g,12:21,13:a,14:14,15:t,16:h,17:17,18:18,19:f,22:m},e(R,[2,14],{7:q,11:J}),e(A,[2,8]),e(A,[2,9]),e(A,[2,10]),e(d,[2,15]),e(d,[2,16]),e(d,[2,17]),{20:[1,35]},{21:[1,36]},e(R,[2,13],{7:q,11:J}),e(A,[2,11]),e(A,[2,12]),{21:[1,37]},e(d,[2,25]),e(d,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:l(function(s,i){if(i.recoverable)this.trace(s);else{var o=new Error(s);throw o.hash=i,o}},"parseError"),parse:l(function(s){var i=this,o=[0],c=[],p=[null],r=[],$=this.table,u="",M=0,K=0,ne=2,Q=1,ie=r.slice.call(arguments,1),y=Object.create(this.lexer),L={yy:{}};for(var H in this.yy)Object.prototype.hasOwnProperty.call(this.yy,H)&&(L.yy[H]=this.yy[H]);y.setInput(s,L.yy),L.yy.lexer=y,L.yy.parser=this,typeof y.yylloc>"u"&&(y.yylloc={});var W=y.yylloc;r.push(W);var se=y.options&&y.options.ranges;typeof L.yy.parseError=="function"?this.parseError=L.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function re(k){o.length=o.length-2*k,p.length=p.length-k,r.length=r.length-k}l(re,"popStack");function Z(){var k;return k=c.pop()||y.lex()||Q,typeof k!="number"&&(k instanceof Array&&(c=k,k=c.pop()),k=i.symbols_[k]||k),k}l(Z,"lex");for(var b,v,S,z,O={},U,x,ee,V;;){if(v=o[o.length-1],this.defaultActions[v]?S=this.defaultActions[v]:((b===null||typeof b>"u")&&(b=Z()),S=$[v]&&$[v][b]),typeof S>"u"||!S.length||!S[0]){var X="";V=[];for(U in $[v])this.terminals_[U]&&U>ne&&V.push("'"+this.terminals_[U]+"'");y.showPosition?X="Parse error on line "+(M+1)+`: +import{g as oe}from"./chunk-XXDRQBXY-AHUPVB2f.js";import{s as ae}from"./chunk-VR4S4FIN-CYEgbtU1.js";import{_ as l,l as C,v as ce,x as le,z as he,D as G,c as B,i as F,b6 as de,aa as ge,ab as ue,ac as pe}from"./mermaid.core-B_UcP3X_.js";import"./index-BOtIzGLC.js";const E=[];for(let e=0;e<256;++e)E.push((e+256).toString(16).slice(1));function fe(e,n=0){return(E[e[n+0]]+E[e[n+1]]+E[e[n+2]]+E[e[n+3]]+"-"+E[e[n+4]]+E[e[n+5]]+"-"+E[e[n+6]]+E[e[n+7]]+"-"+E[e[n+8]]+E[e[n+9]]+"-"+E[e[n+10]]+E[e[n+11]]+E[e[n+12]]+E[e[n+13]]+E[e[n+14]]+E[e[n+15]]).toLowerCase()}const me=new Uint8Array(16);function ye(){return crypto.getRandomValues(me)}function Ee(e,n,g){return crypto.randomUUID?crypto.randomUUID():_e(e)}function _e(e,n,g){e=e||{};const a=e.random??e.rng?.()??ye();if(a.length<16)throw new Error("Random bytes length must be >= 16");return a[6]=a[6]&15|64,a[8]=a[8]&63|128,fe(a)}var Y=(function(){var e=l(function(D,s,i,o){for(i=i||{},o=D.length;o--;i[D[o]]=s);return i},"o"),n=[1,4],g=[1,13],a=[1,12],t=[1,15],h=[1,16],f=[1,20],m=[1,19],_=[6,7,8],T=[1,26],I=[1,24],w=[1,25],d=[6,7,11],R=[1,6,13,15,16,19,22],q=[1,33],J=[1,34],A=[1,6,7,11,13,15,16,19,22],j={trace:l(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:l(function(s,i,o,c,p,r,$){var u=r.length-1;switch(p){case 6:case 7:return c;case 8:c.getLogger().trace("Stop NL ");break;case 9:c.getLogger().trace("Stop EOF ");break;case 11:c.getLogger().trace("Stop NL2 ");break;case 12:c.getLogger().trace("Stop EOF2 ");break;case 15:c.getLogger().info("Node: ",r[u].id),c.addNode(r[u-1].length,r[u].id,r[u].descr,r[u].type);break;case 16:c.getLogger().trace("Icon: ",r[u]),c.decorateNode({icon:r[u]});break;case 17:case 21:c.decorateNode({class:r[u]});break;case 18:c.getLogger().trace("SPACELIST");break;case 19:c.getLogger().trace("Node: ",r[u].id),c.addNode(0,r[u].id,r[u].descr,r[u].type);break;case 20:c.decorateNode({icon:r[u]});break;case 25:c.getLogger().trace("node found ..",r[u-2]),this.$={id:r[u-1],descr:r[u-1],type:c.getType(r[u-2],r[u])};break;case 26:this.$={id:r[u],descr:r[u],type:c.nodeType.DEFAULT};break;case 27:c.getLogger().trace("node found ..",r[u-3]),this.$={id:r[u-3],descr:r[u-1],type:c.getType(r[u-2],r[u])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:n},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:n},{6:g,7:[1,10],9:9,12:11,13:a,14:14,15:t,16:h,17:17,18:18,19:f,22:m},e(_,[2,3]),{1:[2,2]},e(_,[2,4]),e(_,[2,5]),{1:[2,6],6:g,12:21,13:a,14:14,15:t,16:h,17:17,18:18,19:f,22:m},{6:g,9:22,12:11,13:a,14:14,15:t,16:h,17:17,18:18,19:f,22:m},{6:T,7:I,10:23,11:w},e(d,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:f,22:m}),e(d,[2,18]),e(d,[2,19]),e(d,[2,20]),e(d,[2,21]),e(d,[2,23]),e(d,[2,24]),e(d,[2,26],{19:[1,30]}),{20:[1,31]},{6:T,7:I,10:32,11:w},{1:[2,7],6:g,12:21,13:a,14:14,15:t,16:h,17:17,18:18,19:f,22:m},e(R,[2,14],{7:q,11:J}),e(A,[2,8]),e(A,[2,9]),e(A,[2,10]),e(d,[2,15]),e(d,[2,16]),e(d,[2,17]),{20:[1,35]},{21:[1,36]},e(R,[2,13],{7:q,11:J}),e(A,[2,11]),e(A,[2,12]),{21:[1,37]},e(d,[2,25]),e(d,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:l(function(s,i){if(i.recoverable)this.trace(s);else{var o=new Error(s);throw o.hash=i,o}},"parseError"),parse:l(function(s){var i=this,o=[0],c=[],p=[null],r=[],$=this.table,u="",M=0,K=0,ne=2,Q=1,ie=r.slice.call(arguments,1),y=Object.create(this.lexer),L={yy:{}};for(var H in this.yy)Object.prototype.hasOwnProperty.call(this.yy,H)&&(L.yy[H]=this.yy[H]);y.setInput(s,L.yy),L.yy.lexer=y,L.yy.parser=this,typeof y.yylloc>"u"&&(y.yylloc={});var z=y.yylloc;r.push(z);var se=y.options&&y.options.ranges;typeof L.yy.parseError=="function"?this.parseError=L.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function re(k){o.length=o.length-2*k,p.length=p.length-k,r.length=r.length-k}l(re,"popStack");function Z(){var k;return k=c.pop()||y.lex()||Q,typeof k!="number"&&(k instanceof Array&&(c=k,k=c.pop()),k=i.symbols_[k]||k),k}l(Z,"lex");for(var b,v,S,W,O={},U,x,ee,V;;){if(v=o[o.length-1],this.defaultActions[v]?S=this.defaultActions[v]:((b===null||typeof b>"u")&&(b=Z()),S=$[v]&&$[v][b]),typeof S>"u"||!S.length||!S[0]){var X="";V=[];for(U in $[v])this.terminals_[U]&&U>ne&&V.push("'"+this.terminals_[U]+"'");y.showPosition?X="Parse error on line "+(M+1)+`: `+y.showPosition()+` -Expecting `+V.join(", ")+", got '"+(this.terminals_[b]||b)+"'":X="Parse error on line "+(M+1)+": Unexpected "+(b==Q?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(X,{text:y.match,token:this.terminals_[b]||b,line:y.yylineno,loc:W,expected:V})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+v+", token: "+b);switch(S[0]){case 1:o.push(b),p.push(y.yytext),r.push(y.yylloc),o.push(S[1]),b=null,K=y.yyleng,u=y.yytext,M=y.yylineno,W=y.yylloc;break;case 2:if(x=this.productions_[S[1]][1],O.$=p[p.length-x],O._$={first_line:r[r.length-(x||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(x||1)].first_column,last_column:r[r.length-1].last_column},se&&(O._$.range=[r[r.length-(x||1)].range[0],r[r.length-1].range[1]]),z=this.performAction.apply(O,[u,K,M,L.yy,S[1],p,r].concat(ie)),typeof z<"u")return z;x&&(o=o.slice(0,-1*x*2),p=p.slice(0,-1*x),r=r.slice(0,-1*x)),o.push(this.productions_[S[1]][0]),p.push(O.$),r.push(O._$),ee=$[o[o.length-2]][o[o.length-1]],o.push(ee);break;case 3:return!0}}return!0},"parse")},te=(function(){var D={EOF:1,parseError:l(function(i,o){if(this.yy.parser)this.yy.parser.parseError(i,o);else throw new Error(i)},"parseError"),setInput:l(function(s,i){return this.yy=i||this.yy||{},this._input=s,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:l(function(){var s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var i=s.match(/(?:\r\n?|\n).*/g);return i?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},"input"),unput:l(function(s){var i=s.length,o=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;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),o.length-1&&(this.yylineno-=o.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:o?(o.length===c.length?this.yylloc.first_column:0)+c[c.length-o.length].length-o[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-i]),this.yyleng=this.yytext.length,this},"unput"),more:l(function(){return this._more=!0,this},"more"),reject:l(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). +Expecting `+V.join(", ")+", got '"+(this.terminals_[b]||b)+"'":X="Parse error on line "+(M+1)+": Unexpected "+(b==Q?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(X,{text:y.match,token:this.terminals_[b]||b,line:y.yylineno,loc:z,expected:V})}if(S[0]instanceof Array&&S.length>1)throw new Error("Parse Error: multiple actions possible at state: "+v+", token: "+b);switch(S[0]){case 1:o.push(b),p.push(y.yytext),r.push(y.yylloc),o.push(S[1]),b=null,K=y.yyleng,u=y.yytext,M=y.yylineno,z=y.yylloc;break;case 2:if(x=this.productions_[S[1]][1],O.$=p[p.length-x],O._$={first_line:r[r.length-(x||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(x||1)].first_column,last_column:r[r.length-1].last_column},se&&(O._$.range=[r[r.length-(x||1)].range[0],r[r.length-1].range[1]]),W=this.performAction.apply(O,[u,K,M,L.yy,S[1],p,r].concat(ie)),typeof W<"u")return W;x&&(o=o.slice(0,-1*x*2),p=p.slice(0,-1*x),r=r.slice(0,-1*x)),o.push(this.productions_[S[1]][0]),p.push(O.$),r.push(O._$),ee=$[o[o.length-2]][o[o.length-1]],o.push(ee);break;case 3:return!0}}return!0},"parse")},te=(function(){var D={EOF:1,parseError:l(function(i,o){if(this.yy.parser)this.yy.parser.parseError(i,o);else throw new Error(i)},"parseError"),setInput:l(function(s,i){return this.yy=i||this.yy||{},this._input=s,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:l(function(){var s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var i=s.match(/(?:\r\n?|\n).*/g);return i?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},"input"),unput:l(function(s){var i=s.length,o=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-i),this.offset-=i;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),o.length-1&&(this.yylineno-=o.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:o?(o.length===c.length?this.yylloc.first_column:0)+c[c.length-o.length].length-o[0].length:this.yylloc.first_column-i},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-i]),this.yyleng=this.yytext.length,this},"unput"),more:l(function(){return this._more=!0,this},"more"),reject:l(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:l(function(s){this.unput(this.match.slice(s))},"less"),pastInput:l(function(){var s=this.matched.substr(0,this.matched.length-this.match.length);return(s.length>20?"...":"")+s.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:l(function(){var s=this.match;return s.length<20&&(s+=this._input.substr(0,20-s.length)),(s.substr(0,20)+(s.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:l(function(){var s=this.pastInput(),i=new Array(s.length+1).join("-");return s+this.upcomingInput()+` `+i+"^"},"showPosition"),test_match:l(function(s,i){var o,c,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))),c=s[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+s[0].length},this.yytext+=s[0],this.match+=s[0],this.matches=s,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(s[0].length),this.matched+=s[0],o=this.performAction.call(this,this.yy,this,i,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),o)return o;if(this._backtrack){for(var r in p)this[r]=p[r];return!1}return!1},"test_match"),next:l(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var s,i,o,c;this._more||(this.yytext="",this.match="");for(var p=this._currentRules(),r=0;ri[0].length)){if(i=o,c=r,this.options.backtrack_lexer){if(s=this.test_match(o,p[r]),s!==!1)return s;if(this._backtrack){i=!1;continue}else return!1}else if(!this.options.flex)break}return i?(s=this.test_match(i,p[c]),s!==!1?s:!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:l(function(){var i=this.next();return i||this.lex()},"lex"),begin:l(function(i){this.conditionStack.push(i)},"begin"),popState:l(function(){var i=this.conditionStack.length-1;return i>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:l(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:l(function(i){return i=this.conditionStack.length-1-Math.abs(i||0),i>=0?this.conditionStack[i]:"INITIAL"},"topState"),pushState:l(function(i){this.begin(i)},"pushState"),stateStackSize:l(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:l(function(i,o,c,p){switch(c){case 0:return i.getLogger().trace("Found comment",o.yytext),6;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:this.popState();break;case 5:i.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return i.getLogger().trace("SPACELINE"),6;case 7:return 7;case 8:return 15;case 9:i.getLogger().trace("end icon"),this.popState();break;case 10:return i.getLogger().trace("Exploding node"),this.begin("NODE"),19;case 11:return i.getLogger().trace("Cloud"),this.begin("NODE"),19;case 12:return i.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;case 13:return i.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;case 14:return this.begin("NODE"),19;case 15:return this.begin("NODE"),19;case 16:return this.begin("NODE"),19;case 17:return this.begin("NODE"),19;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:i.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 25:return i.getLogger().trace("description:",o.yytext),"NODE_DESCR";case 26:this.popState();break;case 27:return this.popState(),i.getLogger().trace("node end ))"),"NODE_DEND";case 28:return this.popState(),i.getLogger().trace("node end )"),"NODE_DEND";case 29:return this.popState(),i.getLogger().trace("node end ...",o.yytext),"NODE_DEND";case 30:return this.popState(),i.getLogger().trace("node end (("),"NODE_DEND";case 31:return this.popState(),i.getLogger().trace("node end (-"),"NODE_DEND";case 32:return this.popState(),i.getLogger().trace("node end (-"),"NODE_DEND";case 33:return this.popState(),i.getLogger().trace("node end (("),"NODE_DEND";case 34:return this.popState(),i.getLogger().trace("node end (("),"NODE_DEND";case 35:return i.getLogger().trace("Long description:",o.yytext),20;case 36:return i.getLogger().trace("Long description:",o.yytext),20}},"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 D})();j.lexer=te;function P(){this.yy={}}return l(P,"Parser"),P.prototype=j,j.Parser=P,new P})();Y.parser=Y;var be=Y,ke=12,N={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},Se=class{constructor(){this.nodes=[],this.count=0,this.elements={},this.getLogger=this.getLogger.bind(this),this.nodeType=N,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{l(this,"MindmapDB")}clear(){this.nodes=[],this.count=0,this.elements={},this.baseLevel=void 0}getParent(e){for(let n=this.nodes.length-1;n>=0;n--)if(this.nodes[n].level0?this.nodes[0]:null}addNode(e,n,g,a){C.info("addNode",e,n,g,a);let t=!1;this.nodes.length===0?(this.baseLevel=e,e=0,t=!0):this.baseLevel!==void 0&&(e=e-this.baseLevel,t=!1);const h=B();let f=h.mindmap?.padding??G.mindmap.padding;switch(a){case this.nodeType.ROUNDED_RECT:case this.nodeType.RECT:case this.nodeType.HEXAGON:f*=2;break}const m={id:this.count++,nodeId:F(n,h),level:e,descr:F(g,h),type:a,children:[],width:h.mindmap?.maxNodeWidth??G.mindmap.maxNodeWidth,padding:f,isRoot:t},_=this.getParent(e);if(_)_.children.push(m),this.nodes.push(m);else if(t)this.nodes.push(m);else throw new Error(`There can be only one root. No parent could be found for ("${m.descr}")`)}getType(e,n){switch(C.debug("In get type",e,n),e){case"[":return this.nodeType.RECT;case"(":return n===")"?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(e,n){this.elements[e]=n}getElementById(e){return this.elements[e]}decorateNode(e){if(!e)return;const n=B(),g=this.nodes[this.nodes.length-1];e.icon&&(g.icon=F(e.icon,n)),e.class&&(g.class=F(e.class,n))}type2Str(e){switch(e){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(e,n){if(e.level===0?e.section=void 0:e.section=n,e.children)for(const[g,a]of e.children.entries()){const t=e.level===0?g%(ke-1):n;this.assignSections(a,t)}}flattenNodes(e,n){const g=B(),a=["mindmap-node"];e.isRoot===!0?a.push("section-root","section--1"):e.section!==void 0&&a.push(`section-${e.section}`),e.class&&a.push(e.class);const t=a.join(" "),h=l(m=>{const T=(g.theme?.toLowerCase()??"").includes("redux");switch(m){case N.CIRCLE:return"mindmapCircle";case N.RECT:return"rect";case N.ROUNDED_RECT:return"rounded";case N.CLOUD:return"cloud";case N.BANG:return"bang";case N.HEXAGON:return"hexagon";case N.DEFAULT:return T?"rounded":"defaultMindmapNode";case N.NO_BORDER:default:return"rect"}},"getShapeFromType"),f={id:e.id.toString(),domId:"node_"+e.id.toString(),label:e.descr,labelType:"markdown",isGroup:!1,shape:h(e.type),width:e.width,height:e.height??0,padding:e.padding,cssClasses:t,cssStyles:[],look:g.look,icon:e.icon,x:e.x,y:e.y,level:e.level,nodeId:e.nodeId,type:e.type,section:e.section};if(n.push(f),e.children)for(const m of e.children)this.flattenNodes(m,n)}generateEdges(e,n){if(!e.children)return;const g=B();for(const a of e.children){let t="edge";a.section!==void 0&&(t+=` section-edge-${a.section}`);const h=e.level+1;t+=` edge-depth-${h}`;const f={id:`edge_${e.id}_${a.id}`,start:e.id.toString(),end:a.id.toString(),type:"normal",curve:"basis",thickness:"normal",look:g.look,classes:t,depth:e.level,section:a.section};n.push(f),this.generateEdges(a,n)}}getData(){const e=this.getMindmap(),n=B(),a=de().layout!==void 0,t=n;if(a||(t.layout="cose-bilkent"),!e)return{nodes:[],edges:[],config:t};C.debug("getData: mindmapRoot",e,n),this.assignSections(e);const h=[],f=[];this.flattenNodes(e,h),this.generateEdges(e,f),C.debug(`getData: processed ${h.length} nodes and ${f.length} edges`);const m=new Map;for(const _ of h)m.set(_.id,{shape:_.shape,width:_.width,height:_.height,padding:_.padding});return{nodes:h,edges:f,config:t,rootNode:e,markers:["point"],direction:"TB",nodeSpacing:50,rankSpacing:50,shapes:Object.fromEntries(m),type:"mindmap",diagramId:"mindmap-"+Ee()}}getLogger(){return C}},xe=l(async(e,n,g,a)=>{C.debug(`Rendering mindmap diagram @@ -93,4 +93,4 @@ Expecting `+V.join(", ")+", got '"+(this.terminals_[b]||b)+"'":X="Parse error on fill: ${n?.includes("redux")?e.nodeBorder:e["cScaleLabel"+(n==="neutral"?1:0)]}; } ${e.useGradient&&g&&e.mainBkg?Le(e.THEME_COLOR_LIMIT,g,e.mainBkg):""} -`},"getStyles"),Te=ve,Ae={get db(){return new Se},renderer:Ne,parser:be,styles:Te};export{Ae as diagram}; +`},"getStyles"),Te=ve,Re={get db(){return new Se},renderer:Ne,parser:be,styles:Te};export{Re as diagram}; diff --git a/apps/kimi-code/dist-web/assets/pegDiagram-2B236MQR-BsIicOhg.js b/apps/kimi-code/dist-web/assets/pegDiagram-2B236MQR-BsIicOhg.js new file mode 100644 index 000000000..ef9f01ddb --- /dev/null +++ b/apps/kimi-code/dist-web/assets/pegDiagram-2B236MQR-BsIicOhg.js @@ -0,0 +1 @@ +import{g as l,r as m,d as a}from"./chunk-MOJQB5TN-m4Krf3Vn.js";import{p}from"./chunk-JWPE2WC7-TZtJmqSP.js";import{_ as t,l as o}from"./mermaid.core-B_UcP3X_.js";import{M as u,d as c}from"./cynefin-VYW2F7L2-BnQdr27u.js";import"./index-BOtIzGLC.js";var f=c().RailroadPeg.parser.LangiumParser,i=t(e=>{const r=e.alternatives.map(d);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformOrderedChoice"),d=t(e=>{const r=e.elements.map(P);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformSequence"),P=t(e=>{const r=g(e.suffix);return e.operator?{type:"special",text:e.operator==="&"?`&${s(r)}`:`!${s(r)}`}:r},"transformPrefix"),s=t(e=>{switch(e.type){case"terminal":return`"${e.value}"`;case"nonterminal":return e.name;case"special":return e.text;default:return"(...)"}},"nodeToLabel"),g=t(e=>{const r=v(e.primary);if(!e.operator)return r;switch(e.operator){case"?":return{type:"optional",element:r};case"*":return{type:"repetition",element:r,min:0,max:1/0};case"+":return{type:"repetition",element:r,min:1,max:1/0};default:throw new Error(`Unsupported PEG suffix operator: ${e.operator}`)}},"transformSuffix"),v=t(e=>{switch(e.$type){case"PegLiteral":return{type:"terminal",value:e.value};case"PegIdentifier":return{type:"nonterminal",name:e.name};case"PegGroup":return i(e.element);case"PegAny":return{type:"special",text:e.dot};default:throw new Error(`Unsupported PEG primary node: ${e.$type}`)}},"transformPrimary"),y=t(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=t(e=>{p(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(y(r)))},"populateDb"),b={parse:t(e=>{a.clear(),o.debug("[PEG Parser] Starting Langium parse");const r=f.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new u(r);const n=r.value;o.debug("[PEG Parser] Parsed rules:",n.rules.length),h(n),o.debug("[PEG Parser] Parse complete")},"parse"),parser:{yy:a}},G={parser:b,db:a,renderer:m,styles:l};export{G as diagram}; diff --git a/apps/kimi-code/dist-web/assets/pegDiagram-2B236MQR-CX4fQesk.js b/apps/kimi-code/dist-web/assets/pegDiagram-2B236MQR-CX4fQesk.js deleted file mode 100644 index 720cff5b4..000000000 --- a/apps/kimi-code/dist-web/assets/pegDiagram-2B236MQR-CX4fQesk.js +++ /dev/null @@ -1 +0,0 @@ -import{g as l,r as m,d as a}from"./chunk-MOJQB5TN-DGD3Ca9J.js";import{p}from"./chunk-JWPE2WC7-BxqMRrNb.js";import{_ as t,l as o}from"./mermaid.core-CgZTgv7Y.js";import{M as u,d as c}from"./cynefin-VYW2F7L2-DYKf_Z-v.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var f=c().RailroadPeg.parser.LangiumParser,i=t(e=>{const r=e.alternatives.map(d);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformOrderedChoice"),d=t(e=>{const r=e.elements.map(P);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformSequence"),P=t(e=>{const r=g(e.suffix);return e.operator?{type:"special",text:e.operator==="&"?`&${s(r)}`:`!${s(r)}`}:r},"transformPrefix"),s=t(e=>{switch(e.type){case"terminal":return`"${e.value}"`;case"nonterminal":return e.name;case"special":return e.text;default:return"(...)"}},"nodeToLabel"),g=t(e=>{const r=v(e.primary);if(!e.operator)return r;switch(e.operator){case"?":return{type:"optional",element:r};case"*":return{type:"repetition",element:r,min:0,max:1/0};case"+":return{type:"repetition",element:r,min:1,max:1/0};default:throw new Error(`Unsupported PEG suffix operator: ${e.operator}`)}},"transformSuffix"),v=t(e=>{switch(e.$type){case"PegLiteral":return{type:"terminal",value:e.value};case"PegIdentifier":return{type:"nonterminal",name:e.name};case"PegGroup":return i(e.element);case"PegAny":return{type:"special",text:e.dot};default:throw new Error(`Unsupported PEG primary node: ${e.$type}`)}},"transformPrimary"),y=t(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=t(e=>{p(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(y(r)))},"populateDb"),b={parse:t(e=>{a.clear(),o.debug("[PEG Parser] Starting Langium parse");const r=f.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new u(r);const n=r.value;o.debug("[PEG Parser] Parsed rules:",n.rules.length),h(n),o.debug("[PEG Parser] Parse complete")},"parse"),parser:{yy:a}},L={parser:b,db:a,renderer:m,styles:l};export{L as diagram}; diff --git a/apps/kimi-code/dist-web/assets/pieDiagram-ENE6RG2P-CBmVH0d_.js b/apps/kimi-code/dist-web/assets/pieDiagram-ENE6RG2P-CBmVH0d_.js new file mode 100644 index 000000000..df53aef13 --- /dev/null +++ b/apps/kimi-code/dist-web/assets/pieDiagram-ENE6RG2P-CBmVH0d_.js @@ -0,0 +1,39 @@ +import{p as at}from"./chunk-JWPE2WC7-TZtJmqSP.js";import{K as T,N as B,b5 as rt,g as nt,s as it,a as ot,b as st,p as lt,o as ct,_ as g,l as G,c as ut,B as dt,F as gt,a1 as pt,e as ht,q as ft,D as mt}from"./mermaid.core-B_UcP3X_.js";import{p as vt}from"./cynefin-VYW2F7L2-BnQdr27u.js";import{d as X}from"./arc-CeSAjRC_.js";import{o as xt}from"./ordinal-Cboi1Yqb.js";import"./index-BOtIzGLC.js";import"./init-Gi6I4Gst.js";function St(t,n){return nt?1:n>=t?0:NaN}function yt(t){return t}function wt(){var t=yt,n=St,y=null,b=T(0),l=T(B),p=T(0);function i(e){var r,s=(e=rt(e)).length,h,w,$=0,f=new Array(s),o=new Array(s),D=+b.apply(this,arguments),E=Math.min(B,Math.max(-B,l.apply(this,arguments)-D)),k,F=Math.min(Math.abs(E)/s,p.apply(this,arguments)),u=F*(E<0?-1:1),A;for(r=0;r0&&($+=A);for(n!=null?f.sort(function(M,m){return n(o[M],o[m])}):y!=null&&f.sort(function(M,m){return y(e[M],e[m])}),r=0,w=$?(E-s*u)/$:0;r0?A*w:0)+u,o[h]={data:e[h],index:r,value:A,startAngle:D,endAngle:k,padAngle:F};return o}return i.value=function(e){return arguments.length?(t=typeof e=="function"?e:T(+e),i):t},i.sortValues=function(e){return arguments.length?(n=e,y=null,i):n},i.sort=function(e){return arguments.length?(y=e,n=null,i):y},i.startAngle=function(e){return arguments.length?(b=typeof e=="function"?e:T(+e),i):b},i.endAngle=function(e){return arguments.length?(l=typeof e=="function"?e:T(+e),i):l},i.padAngle=function(e){return arguments.length?(p=typeof e=="function"?e:T(+e),i):p},i}var At=mt.pie,I={sections:new Map,showData:!1},W=I.sections,V=I.showData,Ct=structuredClone(At),$t=g(()=>structuredClone(Ct),"getConfig"),Dt=g(()=>{W=new Map,V=I.showData,ft()},"clear"),Tt=g(({label:t,value:n})=>{if(n<0)throw new Error(`"${t}" has invalid value: ${n}. Negative values are not allowed in pie charts. All slice values must be >= 0.`);W.has(t)||(W.set(t,n),G.debug(`added new section: ${t}, with value: ${n}`))},"addSection"),bt=g(()=>W,"getSections"),kt=g(t=>{V=t},"setShowData"),zt=g(()=>V,"getShowData"),Z={getConfig:$t,clear:Dt,setDiagramTitle:ct,getDiagramTitle:lt,setAccTitle:st,getAccTitle:ot,setAccDescription:it,getAccDescription:nt,addSection:Tt,getSections:bt,setShowData:kt,getShowData:zt},Et=g((t,n)=>{at(t,n),n.setShowData(t.showData),t.sections.map(n.addSection)},"populateDb"),Mt={parse:g(async t=>{const n=await vt("pie",t);G.debug(n),Et(n,Z)},"parse")},Rt=g(t=>` + .pieCircle{ + stroke: ${t.pieStrokeColor}; + stroke-width : ${t.pieStrokeWidth}; + opacity : ${t.pieOpacity}; + } + .pieCircle.highlighted{ + scale: 1.05; + opacity: 1; + } + .pieCircle.highlightedOnHover:hover{ + transition-duration: 250ms; + scale: 1.05; + opacity: 1; + } + .pieOuterCircle{ + stroke: ${t.pieOuterStrokeColor}; + stroke-width: ${t.pieOuterStrokeWidth}; + fill: none; + } + .pieTitleText { + text-anchor: middle; + font-size: ${t.pieTitleTextSize}; + fill: ${t.pieTitleTextColor}; + font-family: ${t.fontFamily}; + } + .slice { + font-family: ${t.fontFamily}; + fill: ${t.pieSectionTextColor}; + font-size:${t.pieSectionTextSize}; + // fill: white; + } + .legend text { + fill: ${t.pieLegendTextColor}; + font-family: ${t.fontFamily}; + font-size: ${t.pieLegendTextSize}; + } +`,"getStyles"),Ft=Rt,Lt=g(t=>{const n=[...t.values()].reduce((l,p)=>l+p,0),y=[...t.entries()].map(([l,p])=>({label:l,value:p})).filter(l=>l.value/n*100>=1);return wt().value(l=>l.value).sort(null)(y)},"createPieArcs"),Nt=g((t,n,y,b)=>{G.debug(`rendering pie chart +`+t);const l=b.db,p=ut(),i=dt(l.getConfig(),p.pie),e=40,r=18,s=4,h=450,w=h,$=gt(n),f=$.append("g");f.attr("transform","translate("+w/2+","+h/2+")");const{themeVariables:o}=p;let[D]=pt(o.pieOuterStrokeWidth);D??=2;const E=i.legendPosition,k=i.textPosition,F=i.donutHole>0&&i.donutHole<=.9?i.donutHole:0,u=Math.min(w,h)/2-e,A=X().innerRadius(F*u).outerRadius(u),M=X().innerRadius(u*k).outerRadius(u*k),m=f.append("g");m.append("circle").attr("cx",0).attr("cy",0).attr("r",u+D/2).attr("class","pieOuterCircle");const L=l.getSections(),J=Lt(L),Q=[o.pie1,o.pie2,o.pie3,o.pie4,o.pie5,o.pie6,o.pie7,o.pie8,o.pie9,o.pie10,o.pie11,o.pie12];let _=0;L.forEach(a=>{_+=a});const U=J.filter(a=>(a.data.value/_*100).toFixed(0)!=="0"),H=xt(Q).domain([...L.keys()]);m.selectAll("mySlices").data(U).enter().append("path").attr("d",A).attr("fill",a=>H(a.data.label)).attr("class",a=>{let c="pieCircle";return i.highlightSlice==="hover"?c+=" highlightedOnHover":i.highlightSlice===a.data.label&&(c+=" highlighted"),c}),m.selectAll("mySlices").data(U).enter().append("text").text(a=>(a.data.value/_*100).toFixed(0)+"%").attr("transform",a=>"translate("+M.centroid(a)+")").style("text-anchor","middle").attr("class","slice");const Y=f.append("text").text(l.getDiagramTitle()).attr("x",0).attr("y",-400/2).attr("class","pieTitleText"),R=[...L.entries()].map(([a,c])=>({label:a,value:c})),C=f.selectAll(".legend").data(R).enter().append("g").attr("class","legend");C.append("rect").attr("width",r).attr("height",r).style("fill",a=>H(a.label)).style("stroke",a=>H(a.label)),C.append("text").attr("x",r+s).attr("y",r-s).text(a=>l.getShowData()?`${a.label} [${a.value}]`:a.label);const z=Math.max(...C.selectAll("text").nodes().map(a=>a?.getBoundingClientRect().width??0));let N=h,O=w+e;const d=r+s,P=R.length*d;switch(E){case"center":C.attr("transform",(a,c)=>{const v=d*R.length/2,x=-z/2-(r+s),S=c*d-v;return"translate("+x+","+S+")"});break;case"top":N+=P,C.attr("transform",(a,c)=>{const v=u,x=-z/2-(r+s),S=c*d-v;return`translate(${x}, ${S})`}),m.attr("transform",()=>`translate(0, ${P+d})`);break;case"bottom":N+=P,C.attr("transform",(a,c)=>{const v=-u-d,x=-z/2-(r+s),S=c*d-v;return"translate("+x+","+S+")"});break;case"left":O+=r+s+z,C.attr("transform",(a,c)=>{const v=d*R.length/2,x=-u-(r+s),S=c*d-v;return"translate("+x+","+S+")"}),m.attr("transform",()=>`translate(${z+r+s}, 0)`);break;case"right":default:O+=r+s+z,C.attr("transform",(a,c)=>{const v=d*R.length/2,x=12*r,S=c*d-v;return"translate("+x+","+S+")"});break}const j=Y.node()?.getBoundingClientRect().width??0,tt=w/2-j/2,et=w/2+j/2,q=Math.min(0,tt),K=Math.max(O,et)-q;$.attr("viewBox",`${q} 0 ${K} ${N}`),ht($,N,K,i.useMaxWidth)},"draw"),Wt={draw:Nt},Ut={parser:Mt,db:Z,renderer:Wt,styles:Ft};export{Ut as diagram}; diff --git a/apps/kimi-code/dist-web/assets/pieDiagram-ENE6RG2P-DiFeh11k.js b/apps/kimi-code/dist-web/assets/pieDiagram-ENE6RG2P-DiFeh11k.js deleted file mode 100644 index 211ed9e34..000000000 --- a/apps/kimi-code/dist-web/assets/pieDiagram-ENE6RG2P-DiFeh11k.js +++ /dev/null @@ -1,39 +0,0 @@ -import{p as at}from"./chunk-JWPE2WC7-BxqMRrNb.js";import{T,X as B,b5 as rt,g as nt,s as it,a as ot,b as st,o as lt,n as ct,_ as g,l as G,c as ut,A as dt,D as gt,K as pt,e as ht,p as ft,B as mt}from"./mermaid.core-CgZTgv7Y.js";import{p as vt}from"./cynefin-VYW2F7L2-DYKf_Z-v.js";import{d as Z}from"./arc-CxZ33vix.js";import{o as xt}from"./ordinal-Cboi1Yqb.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";import"./init-Gi6I4Gst.js";function St(t,n){return nt?1:n>=t?0:NaN}function yt(t){return t}function wt(){var t=yt,n=St,y=null,b=T(0),l=T(B),p=T(0);function i(e){var r,s=(e=rt(e)).length,h,w,$=0,f=new Array(s),o=new Array(s),D=+b.apply(this,arguments),E=Math.min(B,Math.max(-B,l.apply(this,arguments)-D)),k,L=Math.min(Math.abs(E)/s,p.apply(this,arguments)),u=L*(E<0?-1:1),A;for(r=0;r0&&($+=A);for(n!=null?f.sort(function(M,m){return n(o[M],o[m])}):y!=null&&f.sort(function(M,m){return y(e[M],e[m])}),r=0,w=$?(E-s*u)/$:0;r0?A*w:0)+u,o[h]={data:e[h],index:r,value:A,startAngle:D,endAngle:k,padAngle:L};return o}return i.value=function(e){return arguments.length?(t=typeof e=="function"?e:T(+e),i):t},i.sortValues=function(e){return arguments.length?(n=e,y=null,i):n},i.sort=function(e){return arguments.length?(y=e,n=null,i):y},i.startAngle=function(e){return arguments.length?(b=typeof e=="function"?e:T(+e),i):b},i.endAngle=function(e){return arguments.length?(l=typeof e=="function"?e:T(+e),i):l},i.padAngle=function(e){return arguments.length?(p=typeof e=="function"?e:T(+e),i):p},i}var At=mt.pie,I={sections:new Map,showData:!1},F=I.sections,V=I.showData,Ct=structuredClone(At),$t=g(()=>structuredClone(Ct),"getConfig"),Dt=g(()=>{F=new Map,V=I.showData,ft()},"clear"),Tt=g(({label:t,value:n})=>{if(n<0)throw new Error(`"${t}" has invalid value: ${n}. Negative values are not allowed in pie charts. All slice values must be >= 0.`);F.has(t)||(F.set(t,n),G.debug(`added new section: ${t}, with value: ${n}`))},"addSection"),bt=g(()=>F,"getSections"),kt=g(t=>{V=t},"setShowData"),zt=g(()=>V,"getShowData"),q={getConfig:$t,clear:Dt,setDiagramTitle:ct,getDiagramTitle:lt,setAccTitle:st,getAccTitle:ot,setAccDescription:it,getAccDescription:nt,addSection:Tt,getSections:bt,setShowData:kt,getShowData:zt},Et=g((t,n)=>{at(t,n),n.setShowData(t.showData),t.sections.map(n.addSection)},"populateDb"),Mt={parse:g(async t=>{const n=await vt("pie",t);G.debug(n),Et(n,q)},"parse")},Rt=g(t=>` - .pieCircle{ - stroke: ${t.pieStrokeColor}; - stroke-width : ${t.pieStrokeWidth}; - opacity : ${t.pieOpacity}; - } - .pieCircle.highlighted{ - scale: 1.05; - opacity: 1; - } - .pieCircle.highlightedOnHover:hover{ - transition-duration: 250ms; - scale: 1.05; - opacity: 1; - } - .pieOuterCircle{ - stroke: ${t.pieOuterStrokeColor}; - stroke-width: ${t.pieOuterStrokeWidth}; - fill: none; - } - .pieTitleText { - text-anchor: middle; - font-size: ${t.pieTitleTextSize}; - fill: ${t.pieTitleTextColor}; - font-family: ${t.fontFamily}; - } - .slice { - font-family: ${t.fontFamily}; - fill: ${t.pieSectionTextColor}; - font-size:${t.pieSectionTextSize}; - // fill: white; - } - .legend text { - fill: ${t.pieLegendTextColor}; - font-family: ${t.fontFamily}; - font-size: ${t.pieLegendTextSize}; - } -`,"getStyles"),Lt=Rt,Wt=g(t=>{const n=[...t.values()].reduce((l,p)=>l+p,0),y=[...t.entries()].map(([l,p])=>({label:l,value:p})).filter(l=>l.value/n*100>=1);return wt().value(l=>l.value).sort(null)(y)},"createPieArcs"),_t=g((t,n,y,b)=>{G.debug(`rendering pie chart -`+t);const l=b.db,p=ut(),i=dt(l.getConfig(),p.pie),e=40,r=18,s=4,h=450,w=h,$=gt(n),f=$.append("g");f.attr("transform","translate("+w/2+","+h/2+")");const{themeVariables:o}=p;let[D]=pt(o.pieOuterStrokeWidth);D??=2;const E=i.legendPosition,k=i.textPosition,L=i.donutHole>0&&i.donutHole<=.9?i.donutHole:0,u=Math.min(w,h)/2-e,A=Z().innerRadius(L*u).outerRadius(u),M=Z().innerRadius(u*k).outerRadius(u*k),m=f.append("g");m.append("circle").attr("cx",0).attr("cy",0).attr("r",u+D/2).attr("class","pieOuterCircle");const W=l.getSections(),J=Wt(W),Q=[o.pie1,o.pie2,o.pie3,o.pie4,o.pie5,o.pie6,o.pie7,o.pie8,o.pie9,o.pie10,o.pie11,o.pie12];let H=0;W.forEach(a=>{H+=a});const U=J.filter(a=>(a.data.value/H*100).toFixed(0)!=="0"),N=xt(Q).domain([...W.keys()]);m.selectAll("mySlices").data(U).enter().append("path").attr("d",A).attr("fill",a=>N(a.data.label)).attr("class",a=>{let c="pieCircle";return i.highlightSlice==="hover"?c+=" highlightedOnHover":i.highlightSlice===a.data.label&&(c+=" highlighted"),c}),m.selectAll("mySlices").data(U).enter().append("text").text(a=>(a.data.value/H*100).toFixed(0)+"%").attr("transform",a=>"translate("+M.centroid(a)+")").style("text-anchor","middle").attr("class","slice");const Y=f.append("text").text(l.getDiagramTitle()).attr("x",0).attr("y",-400/2).attr("class","pieTitleText"),R=[...W.entries()].map(([a,c])=>({label:a,value:c})),C=f.selectAll(".legend").data(R).enter().append("g").attr("class","legend");C.append("rect").attr("width",r).attr("height",r).style("fill",a=>N(a.label)).style("stroke",a=>N(a.label)),C.append("text").attr("x",r+s).attr("y",r-s).text(a=>l.getShowData()?`${a.label} [${a.value}]`:a.label);const z=Math.max(...C.selectAll("text").nodes().map(a=>a?.getBoundingClientRect().width??0));let _=h,O=w+e;const d=r+s,P=R.length*d;switch(E){case"center":C.attr("transform",(a,c)=>{const v=d*R.length/2,x=-z/2-(r+s),S=c*d-v;return"translate("+x+","+S+")"});break;case"top":_+=P,C.attr("transform",(a,c)=>{const v=u,x=-z/2-(r+s),S=c*d-v;return`translate(${x}, ${S})`}),m.attr("transform",()=>`translate(0, ${P+d})`);break;case"bottom":_+=P,C.attr("transform",(a,c)=>{const v=-u-d,x=-z/2-(r+s),S=c*d-v;return"translate("+x+","+S+")"});break;case"left":O+=r+s+z,C.attr("transform",(a,c)=>{const v=d*R.length/2,x=-u-(r+s),S=c*d-v;return"translate("+x+","+S+")"}),m.attr("transform",()=>`translate(${z+r+s}, 0)`);break;case"right":default:O+=r+s+z,C.attr("transform",(a,c)=>{const v=d*R.length/2,x=12*r,S=c*d-v;return"translate("+x+","+S+")"});break}const X=Y.node()?.getBoundingClientRect().width??0,tt=w/2-X/2,et=w/2+X/2,j=Math.min(0,tt),K=Math.max(O,et)-j;$.attr("viewBox",`${j} 0 ${K} ${_}`),ht($,_,K,i.useMaxWidth)},"draw"),Ft={draw:_t},Xt={parser:Mt,db:q,renderer:Ft,styles:Lt};export{Xt as diagram}; diff --git a/apps/kimi-code/dist-web/assets/preCodeDiffMetrics-CMO2XhRi.js b/apps/kimi-code/dist-web/assets/preCodeDiffMetrics-CMO2XhRi.js new file mode 100644 index 000000000..4b6564e76 --- /dev/null +++ b/apps/kimi-code/dist-web/assets/preCodeDiffMetrics-CMO2XhRi.js @@ -0,0 +1 @@ +function s(e){const t=Number.parseFloat(String(e??""));return Number.isFinite(t)&&t>0?t:0}function d(e,t){var n;if(!e)return t;if(e.classList.contains("markstream-pre__diff-line--collapsed"))return 32;const i=e.querySelector(".markstream-pre__diff-content");return Math.max(t,Math.ceil((n=i?.getBoundingClientRect().height)!=null?n:0))}function c(e,t){const n=window.getComputedStyle(e),i=s(n.getPropertyValue("--markstream-pre-diff-line-height"))||s(n.lineHeight)||18,g=e.querySelectorAll(".markstream-pre__diff-pane--original .markstream-pre__diff-line"),h=e.querySelectorAll(".markstream-pre__diff-pane--modified .markstream-pre__diff-line"),o=Array.from({length:Math.max(g.length,h.length)},(a,l)=>{var r,f;const m=d((r=g[l])!=null?r:null,i),u=d((f=h[l])!=null?f:null,i);return{rowHeight:Math.max(i,m,u),originalHeight:m,modifiedHeight:u}});return o.length===t.length&&o.every((a,l)=>{const r=t[l];return r&&Math.abs(a.rowHeight-r.rowHeight)<=.5&&Math.abs(a.originalHeight-r.originalHeight)<=.5&&Math.abs(a.modifiedHeight-r.modifiedHeight)<=.5})?t:o}export{c as measurePreCodeDiffLines}; diff --git a/apps/kimi-code/dist-web/assets/quadrantDiagram-ABIIQ3AL-Bss2swqr.js b/apps/kimi-code/dist-web/assets/quadrantDiagram-ABIIQ3AL-By6VfuwF.js similarity index 65% rename from apps/kimi-code/dist-web/assets/quadrantDiagram-ABIIQ3AL-Bss2swqr.js rename to apps/kimi-code/dist-web/assets/quadrantDiagram-ABIIQ3AL-By6VfuwF.js index 2205aefd7..33c5afbf7 100644 --- a/apps/kimi-code/dist-web/assets/quadrantDiagram-ABIIQ3AL-Bss2swqr.js +++ b/apps/kimi-code/dist-web/assets/quadrantDiagram-ABIIQ3AL-By6VfuwF.js @@ -1,7 +1,7 @@ -import{s as Se,g as _e,o as ee,n as Ae,a as ke,b as Fe,_ as r,c as Et,l as mt,d as vt,e as Pe,p as ve,B as z,i as Ce,E as Le}from"./mermaid.core-CgZTgv7Y.js";import{l as te}from"./linear-DPKx2NhO.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";import"./init-Gi6I4Gst.js";import"./defaultLocale-DX6XiGOO.js";var Ct=(function(){var t=r(function(Y,s,l,u){for(l=l||{},u=Y.length;u--;l[Y[u]]=s);return l},"o"),a=[1,3],p=[1,4],f=[1,5],o=[1,6],x=[1,7],_=[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],h=[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],c=[55,56,57],S=[2,36],q=[1,37],b=[1,36],y=[1,38],T=[1,35],m=[1,43],g=[1,41],k=[1,45],ct=[1,14],dt=[1,23],ut=[1,18],xt=[1,19],ot=[1,20],bt=[1,21],lt=[1,22],i=[1,24],Dt=[1,25],zt=[1,26],Vt=[1,27],It=[1,28],wt=[1,29],U=[1,32],Q=[1,33],F=[1,34],P=[1,39],v=[1,40],C=[1,42],L=[1,44],H=[1,63],X=[1,62],E=[4,5,8,10,12,13,14,15,18,44,47,49,55,56,57,63,64,65,66,67],Bt=[1,66],Rt=[1,67],Nt=[1,68],Wt=[1,69],Ut=[1,70],Qt=[1,71],Ot=[1,72],Ht=[1,73],Xt=[1,74],Mt=[1,75],Yt=[1,76],jt=[1,77],w=[4,5,6,7,8,9,10,11,12,13,14,15,18],K=[1,91],Z=[1,92],J=[1,93],$=[1,100],tt=[1,94],et=[1,97],it=[1,95],at=[1,96],nt=[1,98],st=[1,99],St=[1,103],Gt=[10,55,56,57],N=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],_t={trace:r(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:r(function(s,l,u,d,A,e,ht){var n=e.length-1;switch(A){case 23:this.$=e[n];break;case 24:this.$=e[n-1]+""+e[n];break;case 26:this.$=e[n-1]+e[n];break;case 27:this.$=[e[n].trim()];break;case 28:e[n-2].push(e[n].trim()),this.$=e[n-2];break;case 29:this.$=e[n-4],d.addClass(e[n-2],e[n]);break;case 37:this.$=[];break;case 42:this.$=e[n].trim(),d.setDiagramTitle(this.$);break;case 43:this.$=e[n].trim(),d.setAccTitle(this.$);break;case 44:case 45:this.$=e[n].trim(),d.setAccDescription(this.$);break;case 46:d.addSection(e[n].substr(8)),this.$=e[n].substr(8);break;case 47:d.addPoint(e[n-3],"",e[n-1],e[n],[]);break;case 48:d.addPoint(e[n-4],e[n-3],e[n-1],e[n],[]);break;case 49:d.addPoint(e[n-4],"",e[n-2],e[n-1],e[n]);break;case 50:d.addPoint(e[n-5],e[n-4],e[n-2],e[n-1],e[n]);break;case 51:d.setXAxisLeftText(e[n-2]),d.setXAxisRightText(e[n]);break;case 52:e[n-1].text+=" ⟶ ",d.setXAxisLeftText(e[n-1]);break;case 53:d.setXAxisLeftText(e[n]);break;case 54:d.setYAxisBottomText(e[n-2]),d.setYAxisTopText(e[n]);break;case 55:e[n-1].text+=" ⟶ ",d.setYAxisBottomText(e[n-1]);break;case 56:d.setYAxisBottomText(e[n]);break;case 57:d.setQuadrant1Text(e[n]);break;case 58:d.setQuadrant2Text(e[n]);break;case 59:d.setQuadrant3Text(e[n]);break;case 60:d.setQuadrant4Text(e[n]);break;case 64:this.$={text:e[n],type:"text"};break;case 65:this.$={text:e[n-1].text+""+e[n],type:e[n-1].type};break;case 66:this.$={text:e[n],type:"text"};break;case 67:this.$={text:e[n],type:"markdown"};break;case 68:this.$=e[n];break;case 69:this.$=e[n-1]+""+e[n];break}},"anonymous"),table:[{18:a,26:1,27:2,28:p,55:f,56:o,57:x},{1:[3]},{18:a,26:8,27:2,28:p,55:f,56:o,57:x},{18:a,26:9,27:2,28:p,55:f,56:o,57:x},t(_,[2,33],{29:10}),t(h,[2,61]),t(h,[2,62]),t(h,[2,63]),{1:[2,30]},{1:[2,31]},t(c,S,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:q,5:b,10:y,12:T,13:m,14:g,15:k,18:ct,25:dt,35:ut,37:xt,39:ot,41:bt,42:lt,48:i,50:Dt,51:zt,52:Vt,53:It,54:wt,60:U,61:Q,63:F,64:P,65:v,66:C,67:L}),t(_,[2,34]),{27:46,55:f,56:o,57:x},t(c,[2,37]),t(c,S,{24:13,32:15,33:16,34:17,43:30,58:31,31:47,4:q,5:b,10:y,12:T,13:m,14:g,15:k,18:ct,25:dt,35:ut,37:xt,39:ot,41:bt,42:lt,48:i,50:Dt,51:zt,52:Vt,53:It,54:wt,60:U,61:Q,63:F,64:P,65:v,66:C,67:L}),t(c,[2,39]),t(c,[2,40]),t(c,[2,41]),{36:[1,48]},{38:[1,49]},{40:[1,50]},t(c,[2,45]),t(c,[2,46]),{18:[1,51]},{4:q,5:b,10:y,12:T,13:m,14:g,15:k,43:52,58:31,60:U,61:Q,63:F,64:P,65:v,66:C,67:L},{4:q,5:b,10:y,12:T,13:m,14:g,15:k,43:53,58:31,60:U,61:Q,63:F,64:P,65:v,66:C,67:L},{4:q,5:b,10:y,12:T,13:m,14:g,15:k,43:54,58:31,60:U,61:Q,63:F,64:P,65:v,66:C,67:L},{4:q,5:b,10:y,12:T,13:m,14:g,15:k,43:55,58:31,60:U,61:Q,63:F,64:P,65:v,66:C,67:L},{4:q,5:b,10:y,12:T,13:m,14:g,15:k,43:56,58:31,60:U,61:Q,63:F,64:P,65:v,66:C,67:L},{4:q,5:b,10:y,12:T,13:m,14:g,15:k,43:57,58:31,60:U,61:Q,63:F,64:P,65:v,66:C,67:L},{4:q,5:b,8:H,10:y,12:T,13:m,14:g,15:k,18:X,44:[1,58],47:[1,59],58:61,59:60,63:F,64:P,65:v,66:C,67:L},t(E,[2,64]),t(E,[2,66]),t(E,[2,67]),t(E,[2,70]),t(E,[2,71]),t(E,[2,72]),t(E,[2,73]),t(E,[2,74]),t(E,[2,75]),t(E,[2,76]),t(E,[2,77]),t(E,[2,78]),t(E,[2,79]),t(E,[2,80]),t(E,[2,81]),t(_,[2,35]),t(c,[2,38]),t(c,[2,42]),t(c,[2,43]),t(c,[2,44]),{3:65,4:Bt,5:Rt,6:Nt,7:Wt,8:Ut,9:Qt,10:Ot,11:Ht,12:Xt,13:Mt,14:Yt,15:jt,21:64},t(c,[2,53],{59:60,58:61,4:q,5:b,8:H,10:y,12:T,13:m,14:g,15:k,18:X,49:[1,78],63:F,64:P,65:v,66:C,67:L}),t(c,[2,56],{59:60,58:61,4:q,5:b,8:H,10:y,12:T,13:m,14:g,15:k,18:X,49:[1,79],63:F,64:P,65:v,66:C,67:L}),t(c,[2,57],{59:60,58:61,4:q,5:b,8:H,10:y,12:T,13:m,14:g,15:k,18:X,63:F,64:P,65:v,66:C,67:L}),t(c,[2,58],{59:60,58:61,4:q,5:b,8:H,10:y,12:T,13:m,14:g,15:k,18:X,63:F,64:P,65:v,66:C,67:L}),t(c,[2,59],{59:60,58:61,4:q,5:b,8:H,10:y,12:T,13:m,14:g,15:k,18:X,63:F,64:P,65:v,66:C,67:L}),t(c,[2,60],{59:60,58:61,4:q,5:b,8:H,10:y,12:T,13:m,14:g,15:k,18:X,63:F,64:P,65:v,66:C,67:L}),{45:[1,80]},{44:[1,81]},t(E,[2,65]),t(E,[2,82]),t(E,[2,83]),t(E,[2,84]),{3:83,4:Bt,5:Rt,6:Nt,7:Wt,8:Ut,9:Qt,10:Ot,11:Ht,12:Xt,13:Mt,14:Yt,15:jt,18:[1,82]},t(w,[2,23]),t(w,[2,1]),t(w,[2,2]),t(w,[2,3]),t(w,[2,4]),t(w,[2,5]),t(w,[2,6]),t(w,[2,7]),t(w,[2,8]),t(w,[2,9]),t(w,[2,10]),t(w,[2,11]),t(w,[2,12]),t(c,[2,52],{58:31,43:84,4:q,5:b,10:y,12:T,13:m,14:g,15:k,60:U,61:Q,63:F,64:P,65:v,66:C,67:L}),t(c,[2,55],{58:31,43:85,4:q,5:b,10:y,12:T,13:m,14:g,15:k,60:U,61:Q,63:F,64:P,65:v,66:C,67:L}),{46:[1,86]},{45:[1,87]},{4:K,5:Z,6:J,8:$,11:tt,13:et,16:90,17:it,18:at,19:nt,20:st,22:89,23:88},t(w,[2,24]),t(c,[2,51],{59:60,58:61,4:q,5:b,8:H,10:y,12:T,13:m,14:g,15:k,18:X,63:F,64:P,65:v,66:C,67:L}),t(c,[2,54],{59:60,58:61,4:q,5:b,8:H,10:y,12:T,13:m,14:g,15:k,18:X,63:F,64:P,65:v,66:C,67:L}),t(c,[2,47],{22:89,16:90,23:101,4:K,5:Z,6:J,8:$,11:tt,13:et,17:it,18:at,19:nt,20:st}),{46:[1,102]},t(c,[2,29],{10:St}),t(Gt,[2,27],{16:104,4:K,5:Z,6:J,8:$,11:tt,13:et,17:it,18:at,19:nt,20:st}),t(N,[2,25]),t(N,[2,13]),t(N,[2,14]),t(N,[2,15]),t(N,[2,16]),t(N,[2,17]),t(N,[2,18]),t(N,[2,19]),t(N,[2,20]),t(N,[2,21]),t(N,[2,22]),t(c,[2,49],{10:St}),t(c,[2,48],{22:89,16:90,23:105,4:K,5:Z,6:J,8:$,11:tt,13:et,17:it,18:at,19:nt,20:st}),{4:K,5:Z,6:J,8:$,11:tt,13:et,16:90,17:it,18:at,19:nt,20:st,22:106},t(N,[2,26]),t(c,[2,50],{10:St}),t(Gt,[2,28],{16:104,4:K,5:Z,6:J,8:$,11:tt,13:et,17:it,18:at,19:nt,20:st})],defaultActions:{8:[2,30],9:[2,31]},parseError:r(function(s,l){if(l.recoverable)this.trace(s);else{var u=new Error(s);throw u.hash=l,u}},"parseError"),parse:r(function(s){var l=this,u=[0],d=[],A=[null],e=[],ht=this.table,n="",gt=0,Kt=0,Te=2,Zt=1,me=e.slice.call(arguments,1),D=Object.create(this.lexer),j={yy:{}};for(var At in this.yy)Object.prototype.hasOwnProperty.call(this.yy,At)&&(j.yy[At]=this.yy[At]);D.setInput(s,j.yy),j.yy.lexer=D,j.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var kt=D.yylloc;e.push(kt);var qe=D.options&&D.options.ranges;typeof j.yy.parseError=="function"?this.parseError=j.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function be(R){u.length=u.length-2*R,A.length=A.length-R,e.length=e.length-R}r(be,"popStack");function Jt(){var R;return R=d.pop()||D.lex()||Zt,typeof R!="number"&&(R instanceof Array&&(d=R,R=d.pop()),R=l.symbols_[R]||R),R}r(Jt,"lex");for(var B,G,W,Ft,rt={},pt,M,$t,yt;;){if(G=u[u.length-1],this.defaultActions[G]?W=this.defaultActions[G]:((B===null||typeof B>"u")&&(B=Jt()),W=ht[G]&&ht[G][B]),typeof W>"u"||!W.length||!W[0]){var Pt="";yt=[];for(pt in ht[G])this.terminals_[pt]&&pt>Te&&yt.push("'"+this.terminals_[pt]+"'");D.showPosition?Pt="Parse error on line "+(gt+1)+`: +import{s as Se,g as _e,p as ee,o as Ae,a as ke,b as Fe,_ as r,c as Et,l as qt,d as vt,e as Pe,q as ve,D as z,i as Ce,W as Le}from"./mermaid.core-B_UcP3X_.js";import{l as te}from"./linear-Vyz-NdPh.js";import"./index-BOtIzGLC.js";import"./init-Gi6I4Gst.js";import"./defaultLocale-DX6XiGOO.js";var Ct=(function(){var t=r(function(Y,s,l,u){for(l=l||{},u=Y.length;u--;l[Y[u]]=s);return l},"o"),a=[1,3],p=[1,4],f=[1,5],o=[1,6],x=[1,7],_=[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],h=[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],c=[55,56,57],S=[2,36],m=[1,37],b=[1,36],y=[1,38],T=[1,35],q=[1,43],g=[1,41],k=[1,45],ct=[1,14],dt=[1,23],ut=[1,18],xt=[1,19],ot=[1,20],bt=[1,21],lt=[1,22],i=[1,24],Dt=[1,25],zt=[1,26],Vt=[1,27],It=[1,28],wt=[1,29],U=[1,32],Q=[1,33],F=[1,34],P=[1,39],v=[1,40],C=[1,42],L=[1,44],H=[1,63],X=[1,62],E=[4,5,8,10,12,13,14,15,18,44,47,49,55,56,57,63,64,65,66,67],Bt=[1,66],Rt=[1,67],Nt=[1,68],Wt=[1,69],Ut=[1,70],Qt=[1,71],Ot=[1,72],Ht=[1,73],Xt=[1,74],Mt=[1,75],Yt=[1,76],jt=[1,77],w=[4,5,6,7,8,9,10,11,12,13,14,15,18],K=[1,91],Z=[1,92],J=[1,93],$=[1,100],tt=[1,94],et=[1,97],it=[1,95],at=[1,96],nt=[1,98],st=[1,99],St=[1,103],Gt=[10,55,56,57],N=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],_t={trace:r(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:r(function(s,l,u,d,A,e,ht){var n=e.length-1;switch(A){case 23:this.$=e[n];break;case 24:this.$=e[n-1]+""+e[n];break;case 26:this.$=e[n-1]+e[n];break;case 27:this.$=[e[n].trim()];break;case 28:e[n-2].push(e[n].trim()),this.$=e[n-2];break;case 29:this.$=e[n-4],d.addClass(e[n-2],e[n]);break;case 37:this.$=[];break;case 42:this.$=e[n].trim(),d.setDiagramTitle(this.$);break;case 43:this.$=e[n].trim(),d.setAccTitle(this.$);break;case 44:case 45:this.$=e[n].trim(),d.setAccDescription(this.$);break;case 46:d.addSection(e[n].substr(8)),this.$=e[n].substr(8);break;case 47:d.addPoint(e[n-3],"",e[n-1],e[n],[]);break;case 48:d.addPoint(e[n-4],e[n-3],e[n-1],e[n],[]);break;case 49:d.addPoint(e[n-4],"",e[n-2],e[n-1],e[n]);break;case 50:d.addPoint(e[n-5],e[n-4],e[n-2],e[n-1],e[n]);break;case 51:d.setXAxisLeftText(e[n-2]),d.setXAxisRightText(e[n]);break;case 52:e[n-1].text+=" ⟶ ",d.setXAxisLeftText(e[n-1]);break;case 53:d.setXAxisLeftText(e[n]);break;case 54:d.setYAxisBottomText(e[n-2]),d.setYAxisTopText(e[n]);break;case 55:e[n-1].text+=" ⟶ ",d.setYAxisBottomText(e[n-1]);break;case 56:d.setYAxisBottomText(e[n]);break;case 57:d.setQuadrant1Text(e[n]);break;case 58:d.setQuadrant2Text(e[n]);break;case 59:d.setQuadrant3Text(e[n]);break;case 60:d.setQuadrant4Text(e[n]);break;case 64:this.$={text:e[n],type:"text"};break;case 65:this.$={text:e[n-1].text+""+e[n],type:e[n-1].type};break;case 66:this.$={text:e[n],type:"text"};break;case 67:this.$={text:e[n],type:"markdown"};break;case 68:this.$=e[n];break;case 69:this.$=e[n-1]+""+e[n];break}},"anonymous"),table:[{18:a,26:1,27:2,28:p,55:f,56:o,57:x},{1:[3]},{18:a,26:8,27:2,28:p,55:f,56:o,57:x},{18:a,26:9,27:2,28:p,55:f,56:o,57:x},t(_,[2,33],{29:10}),t(h,[2,61]),t(h,[2,62]),t(h,[2,63]),{1:[2,30]},{1:[2,31]},t(c,S,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:m,5:b,10:y,12:T,13:q,14:g,15:k,18:ct,25:dt,35:ut,37:xt,39:ot,41:bt,42:lt,48:i,50:Dt,51:zt,52:Vt,53:It,54:wt,60:U,61:Q,63:F,64:P,65:v,66:C,67:L}),t(_,[2,34]),{27:46,55:f,56:o,57:x},t(c,[2,37]),t(c,S,{24:13,32:15,33:16,34:17,43:30,58:31,31:47,4:m,5:b,10:y,12:T,13:q,14:g,15:k,18:ct,25:dt,35:ut,37:xt,39:ot,41:bt,42:lt,48:i,50:Dt,51:zt,52:Vt,53:It,54:wt,60:U,61:Q,63:F,64:P,65:v,66:C,67:L}),t(c,[2,39]),t(c,[2,40]),t(c,[2,41]),{36:[1,48]},{38:[1,49]},{40:[1,50]},t(c,[2,45]),t(c,[2,46]),{18:[1,51]},{4:m,5:b,10:y,12:T,13:q,14:g,15:k,43:52,58:31,60:U,61:Q,63:F,64:P,65:v,66:C,67:L},{4:m,5:b,10:y,12:T,13:q,14:g,15:k,43:53,58:31,60:U,61:Q,63:F,64:P,65:v,66:C,67:L},{4:m,5:b,10:y,12:T,13:q,14:g,15:k,43:54,58:31,60:U,61:Q,63:F,64:P,65:v,66:C,67:L},{4:m,5:b,10:y,12:T,13:q,14:g,15:k,43:55,58:31,60:U,61:Q,63:F,64:P,65:v,66:C,67:L},{4:m,5:b,10:y,12:T,13:q,14:g,15:k,43:56,58:31,60:U,61:Q,63:F,64:P,65:v,66:C,67:L},{4:m,5:b,10:y,12:T,13:q,14:g,15:k,43:57,58:31,60:U,61:Q,63:F,64:P,65:v,66:C,67:L},{4:m,5:b,8:H,10:y,12:T,13:q,14:g,15:k,18:X,44:[1,58],47:[1,59],58:61,59:60,63:F,64:P,65:v,66:C,67:L},t(E,[2,64]),t(E,[2,66]),t(E,[2,67]),t(E,[2,70]),t(E,[2,71]),t(E,[2,72]),t(E,[2,73]),t(E,[2,74]),t(E,[2,75]),t(E,[2,76]),t(E,[2,77]),t(E,[2,78]),t(E,[2,79]),t(E,[2,80]),t(E,[2,81]),t(_,[2,35]),t(c,[2,38]),t(c,[2,42]),t(c,[2,43]),t(c,[2,44]),{3:65,4:Bt,5:Rt,6:Nt,7:Wt,8:Ut,9:Qt,10:Ot,11:Ht,12:Xt,13:Mt,14:Yt,15:jt,21:64},t(c,[2,53],{59:60,58:61,4:m,5:b,8:H,10:y,12:T,13:q,14:g,15:k,18:X,49:[1,78],63:F,64:P,65:v,66:C,67:L}),t(c,[2,56],{59:60,58:61,4:m,5:b,8:H,10:y,12:T,13:q,14:g,15:k,18:X,49:[1,79],63:F,64:P,65:v,66:C,67:L}),t(c,[2,57],{59:60,58:61,4:m,5:b,8:H,10:y,12:T,13:q,14:g,15:k,18:X,63:F,64:P,65:v,66:C,67:L}),t(c,[2,58],{59:60,58:61,4:m,5:b,8:H,10:y,12:T,13:q,14:g,15:k,18:X,63:F,64:P,65:v,66:C,67:L}),t(c,[2,59],{59:60,58:61,4:m,5:b,8:H,10:y,12:T,13:q,14:g,15:k,18:X,63:F,64:P,65:v,66:C,67:L}),t(c,[2,60],{59:60,58:61,4:m,5:b,8:H,10:y,12:T,13:q,14:g,15:k,18:X,63:F,64:P,65:v,66:C,67:L}),{45:[1,80]},{44:[1,81]},t(E,[2,65]),t(E,[2,82]),t(E,[2,83]),t(E,[2,84]),{3:83,4:Bt,5:Rt,6:Nt,7:Wt,8:Ut,9:Qt,10:Ot,11:Ht,12:Xt,13:Mt,14:Yt,15:jt,18:[1,82]},t(w,[2,23]),t(w,[2,1]),t(w,[2,2]),t(w,[2,3]),t(w,[2,4]),t(w,[2,5]),t(w,[2,6]),t(w,[2,7]),t(w,[2,8]),t(w,[2,9]),t(w,[2,10]),t(w,[2,11]),t(w,[2,12]),t(c,[2,52],{58:31,43:84,4:m,5:b,10:y,12:T,13:q,14:g,15:k,60:U,61:Q,63:F,64:P,65:v,66:C,67:L}),t(c,[2,55],{58:31,43:85,4:m,5:b,10:y,12:T,13:q,14:g,15:k,60:U,61:Q,63:F,64:P,65:v,66:C,67:L}),{46:[1,86]},{45:[1,87]},{4:K,5:Z,6:J,8:$,11:tt,13:et,16:90,17:it,18:at,19:nt,20:st,22:89,23:88},t(w,[2,24]),t(c,[2,51],{59:60,58:61,4:m,5:b,8:H,10:y,12:T,13:q,14:g,15:k,18:X,63:F,64:P,65:v,66:C,67:L}),t(c,[2,54],{59:60,58:61,4:m,5:b,8:H,10:y,12:T,13:q,14:g,15:k,18:X,63:F,64:P,65:v,66:C,67:L}),t(c,[2,47],{22:89,16:90,23:101,4:K,5:Z,6:J,8:$,11:tt,13:et,17:it,18:at,19:nt,20:st}),{46:[1,102]},t(c,[2,29],{10:St}),t(Gt,[2,27],{16:104,4:K,5:Z,6:J,8:$,11:tt,13:et,17:it,18:at,19:nt,20:st}),t(N,[2,25]),t(N,[2,13]),t(N,[2,14]),t(N,[2,15]),t(N,[2,16]),t(N,[2,17]),t(N,[2,18]),t(N,[2,19]),t(N,[2,20]),t(N,[2,21]),t(N,[2,22]),t(c,[2,49],{10:St}),t(c,[2,48],{22:89,16:90,23:105,4:K,5:Z,6:J,8:$,11:tt,13:et,17:it,18:at,19:nt,20:st}),{4:K,5:Z,6:J,8:$,11:tt,13:et,16:90,17:it,18:at,19:nt,20:st,22:106},t(N,[2,26]),t(c,[2,50],{10:St}),t(Gt,[2,28],{16:104,4:K,5:Z,6:J,8:$,11:tt,13:et,17:it,18:at,19:nt,20:st})],defaultActions:{8:[2,30],9:[2,31]},parseError:r(function(s,l){if(l.recoverable)this.trace(s);else{var u=new Error(s);throw u.hash=l,u}},"parseError"),parse:r(function(s){var l=this,u=[0],d=[],A=[null],e=[],ht=this.table,n="",gt=0,Kt=0,Te=2,Zt=1,qe=e.slice.call(arguments,1),D=Object.create(this.lexer),j={yy:{}};for(var At in this.yy)Object.prototype.hasOwnProperty.call(this.yy,At)&&(j.yy[At]=this.yy[At]);D.setInput(s,j.yy),j.yy.lexer=D,j.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var kt=D.yylloc;e.push(kt);var me=D.options&&D.options.ranges;typeof j.yy.parseError=="function"?this.parseError=j.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function be(R){u.length=u.length-2*R,A.length=A.length-R,e.length=e.length-R}r(be,"popStack");function Jt(){var R;return R=d.pop()||D.lex()||Zt,typeof R!="number"&&(R instanceof Array&&(d=R,R=d.pop()),R=l.symbols_[R]||R),R}r(Jt,"lex");for(var B,G,W,Ft,rt={},pt,M,$t,yt;;){if(G=u[u.length-1],this.defaultActions[G]?W=this.defaultActions[G]:((B===null||typeof B>"u")&&(B=Jt()),W=ht[G]&&ht[G][B]),typeof W>"u"||!W.length||!W[0]){var Pt="";yt=[];for(pt in ht[G])this.terminals_[pt]&&pt>Te&&yt.push("'"+this.terminals_[pt]+"'");D.showPosition?Pt="Parse error on line "+(gt+1)+`: `+D.showPosition()+` -Expecting `+yt.join(", ")+", got '"+(this.terminals_[B]||B)+"'":Pt="Parse error on line "+(gt+1)+": Unexpected "+(B==Zt?"end of input":"'"+(this.terminals_[B]||B)+"'"),this.parseError(Pt,{text:D.match,token:this.terminals_[B]||B,line:D.yylineno,loc:kt,expected:yt})}if(W[0]instanceof Array&&W.length>1)throw new Error("Parse Error: multiple actions possible at state: "+G+", token: "+B);switch(W[0]){case 1:u.push(B),A.push(D.yytext),e.push(D.yylloc),u.push(W[1]),B=null,Kt=D.yyleng,n=D.yytext,gt=D.yylineno,kt=D.yylloc;break;case 2:if(M=this.productions_[W[1]][1],rt.$=A[A.length-M],rt._$={first_line:e[e.length-(M||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(M||1)].first_column,last_column:e[e.length-1].last_column},qe&&(rt._$.range=[e[e.length-(M||1)].range[0],e[e.length-1].range[1]]),Ft=this.performAction.apply(rt,[n,Kt,gt,j.yy,W[1],A,e].concat(me)),typeof Ft<"u")return Ft;M&&(u=u.slice(0,-1*M*2),A=A.slice(0,-1*M),e=e.slice(0,-1*M)),u.push(this.productions_[W[1]][0]),A.push(rt.$),e.push(rt._$),$t=ht[u[u.length-2]][u[u.length-1]],u.push($t);break;case 3:return!0}}return!0},"parse")},ye=(function(){var Y={EOF:1,parseError:r(function(l,u){if(this.yy.parser)this.yy.parser.parseError(l,u);else throw new Error(l)},"parseError"),setInput:r(function(s,l){return this.yy=l||this.yy||{},this._input=s,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:r(function(){var s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var l=s.match(/(?:\r\n?|\n).*/g);return l?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},"input"),unput:r(function(s){var l=s.length,u=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-l),this.offset-=l;var d=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),u.length-1&&(this.yylineno-=u.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:u?(u.length===d.length?this.yylloc.first_column:0)+d[d.length-u.length].length-u[0].length:this.yylloc.first_column-l},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-l]),this.yyleng=this.yytext.length,this},"unput"),more:r(function(){return this._more=!0,this},"more"),reject:r(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). +Expecting `+yt.join(", ")+", got '"+(this.terminals_[B]||B)+"'":Pt="Parse error on line "+(gt+1)+": Unexpected "+(B==Zt?"end of input":"'"+(this.terminals_[B]||B)+"'"),this.parseError(Pt,{text:D.match,token:this.terminals_[B]||B,line:D.yylineno,loc:kt,expected:yt})}if(W[0]instanceof Array&&W.length>1)throw new Error("Parse Error: multiple actions possible at state: "+G+", token: "+B);switch(W[0]){case 1:u.push(B),A.push(D.yytext),e.push(D.yylloc),u.push(W[1]),B=null,Kt=D.yyleng,n=D.yytext,gt=D.yylineno,kt=D.yylloc;break;case 2:if(M=this.productions_[W[1]][1],rt.$=A[A.length-M],rt._$={first_line:e[e.length-(M||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(M||1)].first_column,last_column:e[e.length-1].last_column},me&&(rt._$.range=[e[e.length-(M||1)].range[0],e[e.length-1].range[1]]),Ft=this.performAction.apply(rt,[n,Kt,gt,j.yy,W[1],A,e].concat(qe)),typeof Ft<"u")return Ft;M&&(u=u.slice(0,-1*M*2),A=A.slice(0,-1*M),e=e.slice(0,-1*M)),u.push(this.productions_[W[1]][0]),A.push(rt.$),e.push(rt._$),$t=ht[u[u.length-2]][u[u.length-1]],u.push($t);break;case 3:return!0}}return!0},"parse")},ye=(function(){var Y={EOF:1,parseError:r(function(l,u){if(this.yy.parser)this.yy.parser.parseError(l,u);else throw new Error(l)},"parseError"),setInput:r(function(s,l){return this.yy=l||this.yy||{},this._input=s,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:r(function(){var s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var l=s.match(/(?:\r\n?|\n).*/g);return l?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},"input"),unput:r(function(s){var l=s.length,u=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-l),this.offset-=l;var d=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),u.length-1&&(this.yylineno-=u.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:u?(u.length===d.length?this.yylloc.first_column:0)+d[d.length-u.length].length-u[0].length:this.yylloc.first_column-l},this.options.ranges&&(this.yylloc.range=[A[0],A[0]+this.yyleng-l]),this.yyleng=this.yytext.length,this},"unput"),more:r(function(){return this._more=!0,this},"more"),reject:r(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:r(function(s){this.unput(this.match.slice(s))},"less"),pastInput:r(function(){var s=this.matched.substr(0,this.matched.length-this.match.length);return(s.length>20?"...":"")+s.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:r(function(){var s=this.match;return s.length<20&&(s+=this._input.substr(0,20-s.length)),(s.substr(0,20)+(s.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:r(function(){var s=this.pastInput(),l=new Array(s.length+1).join("-");return s+this.upcomingInput()+` `+l+"^"},"showPosition"),test_match:r(function(s,l){var u,d,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))),d=s[0].match(/(?:\r\n?|\n).*/g),d&&(this.yylineno+=d.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:d?d[d.length-1].length-d[d.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+s[0].length},this.yytext+=s[0],this.match+=s[0],this.matches=s,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(s[0].length),this.matched+=s[0],u=this.performAction.call(this,this.yy,this,l,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),u)return u;if(this._backtrack){for(var e in A)this[e]=A[e];return!1}return!1},"test_match"),next:r(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var s,l,u,d;this._more||(this.yytext="",this.match="");for(var A=this._currentRules(),e=0;el[0].length)){if(l=u,d=e,this.options.backtrack_lexer){if(s=this.test_match(u,A[e]),s!==!1)return s;if(this._backtrack){l=!1;continue}else return!1}else if(!this.options.flex)break}return l?(s=this.test_match(l,A[d]),s!==!1?s:!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:r(function(){var l=this.next();return l||this.lex()},"lex"),begin:r(function(l){this.conditionStack.push(l)},"begin"),popState:r(function(){var l=this.conditionStack.length-1;return l>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:r(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:r(function(l){return l=this.conditionStack.length-1-Math.abs(l||0),l>=0?this.conditionStack[l]:"INITIAL"},"topState"),pushState:r(function(l){this.begin(l)},"pushState"),stateStackSize:r(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:r(function(l,u,d,A){switch(d){case 0:break;case 1:break;case 2:return 55;case 3:break;case 4:return this.begin("title"),35;case 5:return this.popState(),"title_value";case 6:return this.begin("acc_title"),37;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),39;case 9:return this.popState(),"acc_descr_value";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;case 29:return this.begin("point_start"),44;case 30:return this.begin("point_x"),45;case 31:this.popState();break;case 32:this.popState(),this.begin("point_y");break;case 33:return this.popState(),46;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 Y})();_t.lexer=ye;function ft(){this.yy={}}return r(ft,"Parser"),ft.prototype=_t,_t.Parser=ft,new ft})();Ct.parser=Ct;var Ee=Ct,I=Le(),De=class{constructor(){this.classes=new Map,this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}static{r(this,"QuadrantBuilder")}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:z.quadrantChart?.chartWidth||500,chartWidth:z.quadrantChart?.chartHeight||500,titlePadding:z.quadrantChart?.titlePadding||10,titleFontSize:z.quadrantChart?.titleFontSize||20,quadrantPadding:z.quadrantChart?.quadrantPadding||5,xAxisLabelPadding:z.quadrantChart?.xAxisLabelPadding||5,yAxisLabelPadding:z.quadrantChart?.yAxisLabelPadding||5,xAxisLabelFontSize:z.quadrantChart?.xAxisLabelFontSize||16,yAxisLabelFontSize:z.quadrantChart?.yAxisLabelFontSize||16,quadrantLabelFontSize:z.quadrantChart?.quadrantLabelFontSize||16,quadrantTextTopPadding:z.quadrantChart?.quadrantTextTopPadding||5,pointTextPadding:z.quadrantChart?.pointTextPadding||5,pointLabelFontSize:z.quadrantChart?.pointLabelFontSize||12,pointRadius:z.quadrantChart?.pointRadius||5,xAxisPosition:z.quadrantChart?.xAxisPosition||"top",yAxisPosition:z.quadrantChart?.yAxisPosition||"left",quadrantInternalBorderStrokeWidth:z.quadrantChart?.quadrantInternalBorderStrokeWidth||1,quadrantExternalBorderStrokeWidth:z.quadrantChart?.quadrantExternalBorderStrokeWidth||2}}getDefaultThemeConfig(){return{quadrant1Fill:I.quadrant1Fill,quadrant2Fill:I.quadrant2Fill,quadrant3Fill:I.quadrant3Fill,quadrant4Fill:I.quadrant4Fill,quadrant1TextFill:I.quadrant1TextFill,quadrant2TextFill:I.quadrant2TextFill,quadrant3TextFill:I.quadrant3TextFill,quadrant4TextFill:I.quadrant4TextFill,quadrantPointFill:I.quadrantPointFill,quadrantPointTextFill:I.quadrantPointTextFill,quadrantXAxisTextFill:I.quadrantXAxisTextFill,quadrantYAxisTextFill:I.quadrantYAxisTextFill,quadrantTitleFill:I.quadrantTitleFill,quadrantInternalBorderStrokeFill:I.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:I.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),this.classes=new Map,mt.info("clear called")}setData(t){this.data={...this.data,...t}}addPoints(t){this.data.points=[...t,...this.data.points]}addClass(t,a){this.classes.set(t,a)}setConfig(t){mt.trace("setConfig called with: ",t),this.config={...this.config,...t}}setThemeConfig(t){mt.trace("setThemeConfig called with: ",t),this.themeConfig={...this.themeConfig,...t}}calculateSpace(t,a,p,f){const o=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,x={top:t==="top"&&a?o:0,bottom:t==="bottom"&&a?o:0},_=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,h={left:this.config.yAxisPosition==="left"&&p?_:0,right:this.config.yAxisPosition==="right"&&p?_:0},c=this.config.titleFontSize+this.config.titlePadding*2,S={top:f?c:0},q=this.config.quadrantPadding+h.left,b=this.config.quadrantPadding+x.top+S.top,y=this.config.chartWidth-this.config.quadrantPadding*2-h.left-h.right,T=this.config.chartHeight-this.config.quadrantPadding*2-x.top-x.bottom-S.top,m=y/2,g=T/2;return{xAxisSpace:x,yAxisSpace:h,titleSpace:S,quadrantSpace:{quadrantLeft:q,quadrantTop:b,quadrantWidth:y,quadrantHalfWidth:m,quadrantHeight:T,quadrantHalfHeight:g}}}getAxisLabels(t,a,p,f){const{quadrantSpace:o,titleSpace:x}=f,{quadrantHalfHeight:_,quadrantHeight:h,quadrantLeft:c,quadrantHalfWidth:S,quadrantTop:q,quadrantWidth:b}=o,y=!!this.data.xAxisRightText,T=!!this.data.yAxisTopText,m=[];return this.data.xAxisLeftText&&a&&m.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:c+(y?S/2:0),y:t==="top"?this.config.xAxisLabelPadding+x.top:this.config.xAxisLabelPadding+q+h+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:y?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&a&&m.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:c+S+(y?S/2:0),y:t==="top"?this.config.xAxisLabelPadding+x.top:this.config.xAxisLabelPadding+q+h+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:y?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&p&&m.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+c+b+this.config.quadrantPadding,y:q+h-(T?_/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:T?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&p&&m.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+c+b+this.config.quadrantPadding,y:q+_-(T?_/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:T?"center":"left",horizontalPos:"top",rotation:-90}),m}getQuadrants(t){const{quadrantSpace:a}=t,{quadrantHalfHeight:p,quadrantLeft:f,quadrantHalfWidth:o,quadrantTop:x}=a,_=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:f+o,y:x,width:o,height:p,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:f,y:x,width:o,height:p,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:f,y:x+p,width:o,height:p,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:f+o,y:x+p,width:o,height:p,fill:this.themeConfig.quadrant4Fill}];for(const h of _)h.text.x=h.x+h.width/2,this.data.points.length===0?(h.text.y=h.y+h.height/2,h.text.horizontalPos="middle"):(h.text.y=h.y+this.config.quadrantTextTopPadding,h.text.horizontalPos="top");return _}getQuadrantPoints(t){const{quadrantSpace:a}=t,{quadrantHeight:p,quadrantLeft:f,quadrantTop:o,quadrantWidth:x}=a,_=te().domain([0,1]).range([f,x+f]),h=te().domain([0,1]).range([p+o,o]);return this.data.points.map(S=>{const q=this.classes.get(S.className);return q&&(S={...q,...S}),{x:_(S.x),y:h(S.y),fill:S.color??this.themeConfig.quadrantPointFill,radius:S.radius??this.config.pointRadius,text:{text:S.text,fill:this.themeConfig.quadrantPointTextFill,x:_(S.x),y:h(S.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0},strokeColor:S.strokeColor??this.themeConfig.quadrantPointFill,strokeWidth:S.strokeWidth??"0px"}})}getBorders(t){const a=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:p}=t,{quadrantHalfHeight:f,quadrantHeight:o,quadrantLeft:x,quadrantHalfWidth:_,quadrantTop:h,quadrantWidth:c}=p;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:x-a,y1:h,x2:x+c+a,y2:h},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:x+c,y1:h+a,x2:x+c,y2:h+o-a},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:x-a,y1:h+o,x2:x+c+a,y2:h+o},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:x,y1:h+a,x2:x,y2:h+o-a},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:x+_,y1:h+a,x2:x+_,y2:h+o-a},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:x+a,y1:h+f,x2:x+c-a,y2:h+f}]}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(){const t=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),a=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),p=this.config.showTitle&&!!this.data.titleText,f=this.data.points.length>0?"bottom":this.config.xAxisPosition,o=this.calculateSpace(f,t,a,p);return{points:this.getQuadrantPoints(o),quadrants:this.getQuadrants(o),axisLabels:this.getAxisLabels(f,t,a,o),borderLines:this.getBorders(o),title:this.getTitle(p)}}},Tt=class extends Error{static{r(this,"InvalidStyleError")}constructor(t,a,p){super(`value for ${t} ${a} is invalid, please use a valid ${p}`),this.name="InvalidStyleError"}};function Lt(t){return!/^#?([\dA-Fa-f]{6}|[\dA-Fa-f]{3})$/.test(t)}r(Lt,"validateHexCode");function ie(t){return!/^\d+$/.test(t)}r(ie,"validateNumber");function ae(t){return!/^\d+px$/.test(t)}r(ae,"validateSizeInPixels");function O(t){return Ce(t.trim(),Et())}r(O,"textSanitizer");var V=new De;function ne(t){V.setData({quadrant1Text:O(t.text)})}r(ne,"setQuadrant1Text");function se(t){V.setData({quadrant2Text:O(t.text)})}r(se,"setQuadrant2Text");function re(t){V.setData({quadrant3Text:O(t.text)})}r(re,"setQuadrant3Text");function oe(t){V.setData({quadrant4Text:O(t.text)})}r(oe,"setQuadrant4Text");function le(t){V.setData({xAxisLeftText:O(t.text)})}r(le,"setXAxisLeftText");function he(t){V.setData({xAxisRightText:O(t.text)})}r(he,"setXAxisRightText");function ce(t){V.setData({yAxisTopText:O(t.text)})}r(ce,"setYAxisTopText");function de(t){V.setData({yAxisBottomText:O(t.text)})}r(de,"setYAxisBottomText");function qt(t){const a={};for(const p of t){const[f,o]=p.trim().split(/\s*:\s*/);if(f==="radius"){if(ie(o))throw new Tt(f,o,"number");a.radius=parseInt(o)}else if(f==="color"){if(Lt(o))throw new Tt(f,o,"hex code");a.color=o}else if(f==="stroke-color"){if(Lt(o))throw new Tt(f,o,"hex code");a.strokeColor=o}else if(f==="stroke-width"){if(ae(o))throw new Tt(f,o,"number of pixels (eg. 10px)");a.strokeWidth=o}else throw new Error(`style named ${f} is not supported.`)}return a}r(qt,"parseStyles");function ue(t,a,p,f,o){const x=qt(o);V.addPoints([{x:p,y:f,text:O(t.text),className:a,...x}])}r(ue,"addPoint");function xe(t,a){V.addClass(t,qt(a))}r(xe,"addClass");function fe(t){V.setConfig({chartWidth:t})}r(fe,"setWidth");function ge(t){V.setConfig({chartHeight:t})}r(ge,"setHeight");function pe(){const t=Et(),{themeVariables:a,quadrantChart:p}=t;return p&&V.setConfig(p),V.setThemeConfig({quadrant1Fill:a.quadrant1Fill,quadrant2Fill:a.quadrant2Fill,quadrant3Fill:a.quadrant3Fill,quadrant4Fill:a.quadrant4Fill,quadrant1TextFill:a.quadrant1TextFill,quadrant2TextFill:a.quadrant2TextFill,quadrant3TextFill:a.quadrant3TextFill,quadrant4TextFill:a.quadrant4TextFill,quadrantPointFill:a.quadrantPointFill,quadrantPointTextFill:a.quadrantPointTextFill,quadrantXAxisTextFill:a.quadrantXAxisTextFill,quadrantYAxisTextFill:a.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:a.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:a.quadrantInternalBorderStrokeFill,quadrantTitleFill:a.quadrantTitleFill}),V.setData({titleText:ee()}),V.build()}r(pe,"getQuadrantData");var ze=r(function(){V.clear(),ve()},"clear"),Ve={setWidth:fe,setHeight:ge,setQuadrant1Text:ne,setQuadrant2Text:se,setQuadrant3Text:re,setQuadrant4Text:oe,setXAxisLeftText:le,setXAxisRightText:he,setYAxisTopText:ce,setYAxisBottomText:de,parseStyles:qt,addPoint:ue,addClass:xe,getQuadrantData:pe,clear:ze,setAccTitle:Fe,getAccTitle:ke,setDiagramTitle:Ae,getDiagramTitle:ee,getAccDescription:_e,setAccDescription:Se},Ie=r((t,a,p,f)=>{function o(i){return i==="top"?"hanging":"middle"}r(o,"getDominantBaseLine");function x(i){return i==="left"?"start":"middle"}r(x,"getTextAnchor");function _(i){return`translate(${i.x}, ${i.y}) rotate(${i.rotation||0})`}r(_,"getTransformation");const h=Et();mt.debug(`Rendering quadrant chart -`+t);const c=h.securityLevel;let S;c==="sandbox"&&(S=vt("#i"+a));const b=(c==="sandbox"?vt(S.nodes()[0].contentDocument.body):vt("body")).select(`[id="${a}"]`),y=b.append("g").attr("class","main"),T=h.quadrantChart?.chartWidth??500,m=h.quadrantChart?.chartHeight??500;Pe(b,m,T,h.quadrantChart?.useMaxWidth??!0),b.attr("viewBox","0 0 "+T+" "+m),f.db.setHeight(m),f.db.setWidth(T);const g=f.db.getQuadrantData(),k=y.append("g").attr("class","quadrants"),ct=y.append("g").attr("class","border"),dt=y.append("g").attr("class","data-points"),ut=y.append("g").attr("class","labels"),xt=y.append("g").attr("class","title");g.title&&xt.append("text").attr("x",0).attr("y",0).attr("fill",g.title.fill).attr("font-size",g.title.fontSize).attr("dominant-baseline",o(g.title.horizontalPos)).attr("text-anchor",x(g.title.verticalPos)).attr("transform",_(g.title)).text(g.title.text),g.borderLines&&ct.selectAll("line").data(g.borderLines).enter().append("line").attr("x1",i=>i.x1).attr("y1",i=>i.y1).attr("x2",i=>i.x2).attr("y2",i=>i.y2).style("stroke",i=>i.strokeFill).style("stroke-width",i=>i.strokeWidth);const ot=k.selectAll("g.quadrant").data(g.quadrants).enter().append("g").attr("class","quadrant");ot.append("rect").attr("x",i=>i.x).attr("y",i=>i.y).attr("width",i=>i.width).attr("height",i=>i.height).attr("fill",i=>i.fill),ot.append("text").attr("x",0).attr("y",0).attr("fill",i=>i.text.fill).attr("font-size",i=>i.text.fontSize).attr("dominant-baseline",i=>o(i.text.horizontalPos)).attr("text-anchor",i=>x(i.text.verticalPos)).attr("transform",i=>_(i.text)).text(i=>i.text.text),ut.selectAll("g.label").data(g.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(i=>i.text).attr("fill",i=>i.fill).attr("font-size",i=>i.fontSize).attr("dominant-baseline",i=>o(i.horizontalPos)).attr("text-anchor",i=>x(i.verticalPos)).attr("transform",i=>_(i));const lt=dt.selectAll("g.data-point").data(g.points).enter().append("g").attr("class","data-point");lt.append("circle").attr("cx",i=>i.x).attr("cy",i=>i.y).attr("r",i=>i.radius).attr("fill",i=>i.fill).attr("stroke",i=>i.strokeColor).attr("stroke-width",i=>i.strokeWidth),lt.append("text").attr("x",0).attr("y",0).text(i=>i.text.text).attr("fill",i=>i.text.fill).attr("font-size",i=>i.text.fontSize).attr("dominant-baseline",i=>o(i.text.horizontalPos)).attr("text-anchor",i=>x(i.text.verticalPos)).attr("transform",i=>_(i.text))},"draw"),we={draw:Ie},Oe={parser:Ee,db:Ve,renderer:we,styles:r(()=>"","styles")};export{Oe as diagram}; +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:r(function(){var l=this.next();return l||this.lex()},"lex"),begin:r(function(l){this.conditionStack.push(l)},"begin"),popState:r(function(){var l=this.conditionStack.length-1;return l>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:r(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:r(function(l){return l=this.conditionStack.length-1-Math.abs(l||0),l>=0?this.conditionStack[l]:"INITIAL"},"topState"),pushState:r(function(l){this.begin(l)},"pushState"),stateStackSize:r(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:r(function(l,u,d,A){switch(d){case 0:break;case 1:break;case 2:return 55;case 3:break;case 4:return this.begin("title"),35;case 5:return this.popState(),"title_value";case 6:return this.begin("acc_title"),37;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),39;case 9:return this.popState(),"acc_descr_value";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;case 29:return this.begin("point_start"),44;case 30:return this.begin("point_x"),45;case 31:this.popState();break;case 32:this.popState(),this.begin("point_y");break;case 33:return this.popState(),46;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 Y})();_t.lexer=ye;function ft(){this.yy={}}return r(ft,"Parser"),ft.prototype=_t,_t.Parser=ft,new ft})();Ct.parser=Ct;var Ee=Ct,I=Le(),De=class{constructor(){this.classes=new Map,this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}static{r(this,"QuadrantBuilder")}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:z.quadrantChart?.chartWidth||500,chartWidth:z.quadrantChart?.chartHeight||500,titlePadding:z.quadrantChart?.titlePadding||10,titleFontSize:z.quadrantChart?.titleFontSize||20,quadrantPadding:z.quadrantChart?.quadrantPadding||5,xAxisLabelPadding:z.quadrantChart?.xAxisLabelPadding||5,yAxisLabelPadding:z.quadrantChart?.yAxisLabelPadding||5,xAxisLabelFontSize:z.quadrantChart?.xAxisLabelFontSize||16,yAxisLabelFontSize:z.quadrantChart?.yAxisLabelFontSize||16,quadrantLabelFontSize:z.quadrantChart?.quadrantLabelFontSize||16,quadrantTextTopPadding:z.quadrantChart?.quadrantTextTopPadding||5,pointTextPadding:z.quadrantChart?.pointTextPadding||5,pointLabelFontSize:z.quadrantChart?.pointLabelFontSize||12,pointRadius:z.quadrantChart?.pointRadius||5,xAxisPosition:z.quadrantChart?.xAxisPosition||"top",yAxisPosition:z.quadrantChart?.yAxisPosition||"left",quadrantInternalBorderStrokeWidth:z.quadrantChart?.quadrantInternalBorderStrokeWidth||1,quadrantExternalBorderStrokeWidth:z.quadrantChart?.quadrantExternalBorderStrokeWidth||2}}getDefaultThemeConfig(){return{quadrant1Fill:I.quadrant1Fill,quadrant2Fill:I.quadrant2Fill,quadrant3Fill:I.quadrant3Fill,quadrant4Fill:I.quadrant4Fill,quadrant1TextFill:I.quadrant1TextFill,quadrant2TextFill:I.quadrant2TextFill,quadrant3TextFill:I.quadrant3TextFill,quadrant4TextFill:I.quadrant4TextFill,quadrantPointFill:I.quadrantPointFill,quadrantPointTextFill:I.quadrantPointTextFill,quadrantXAxisTextFill:I.quadrantXAxisTextFill,quadrantYAxisTextFill:I.quadrantYAxisTextFill,quadrantTitleFill:I.quadrantTitleFill,quadrantInternalBorderStrokeFill:I.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:I.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),this.classes=new Map,qt.info("clear called")}setData(t){this.data={...this.data,...t}}addPoints(t){this.data.points=[...t,...this.data.points]}addClass(t,a){this.classes.set(t,a)}setConfig(t){qt.trace("setConfig called with: ",t),this.config={...this.config,...t}}setThemeConfig(t){qt.trace("setThemeConfig called with: ",t),this.themeConfig={...this.themeConfig,...t}}calculateSpace(t,a,p,f){const o=this.config.xAxisLabelPadding*2+this.config.xAxisLabelFontSize,x={top:t==="top"&&a?o:0,bottom:t==="bottom"&&a?o:0},_=this.config.yAxisLabelPadding*2+this.config.yAxisLabelFontSize,h={left:this.config.yAxisPosition==="left"&&p?_:0,right:this.config.yAxisPosition==="right"&&p?_:0},c=this.config.titleFontSize+this.config.titlePadding*2,S={top:f?c:0},m=this.config.quadrantPadding+h.left,b=this.config.quadrantPadding+x.top+S.top,y=this.config.chartWidth-this.config.quadrantPadding*2-h.left-h.right,T=this.config.chartHeight-this.config.quadrantPadding*2-x.top-x.bottom-S.top,q=y/2,g=T/2;return{xAxisSpace:x,yAxisSpace:h,titleSpace:S,quadrantSpace:{quadrantLeft:m,quadrantTop:b,quadrantWidth:y,quadrantHalfWidth:q,quadrantHeight:T,quadrantHalfHeight:g}}}getAxisLabels(t,a,p,f){const{quadrantSpace:o,titleSpace:x}=f,{quadrantHalfHeight:_,quadrantHeight:h,quadrantLeft:c,quadrantHalfWidth:S,quadrantTop:m,quadrantWidth:b}=o,y=!!this.data.xAxisRightText,T=!!this.data.yAxisTopText,q=[];return this.data.xAxisLeftText&&a&&q.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:c+(y?S/2:0),y:t==="top"?this.config.xAxisLabelPadding+x.top:this.config.xAxisLabelPadding+m+h+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:y?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&a&&q.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:c+S+(y?S/2:0),y:t==="top"?this.config.xAxisLabelPadding+x.top:this.config.xAxisLabelPadding+m+h+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:y?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&p&&q.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+c+b+this.config.quadrantPadding,y:m+h-(T?_/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:T?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&p&&q.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:this.config.yAxisPosition==="left"?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+c+b+this.config.quadrantPadding,y:m+_-(T?_/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:T?"center":"left",horizontalPos:"top",rotation:-90}),q}getQuadrants(t){const{quadrantSpace:a}=t,{quadrantHalfHeight:p,quadrantLeft:f,quadrantHalfWidth:o,quadrantTop:x}=a,_=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:f+o,y:x,width:o,height:p,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:f,y:x,width:o,height:p,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:f,y:x+p,width:o,height:p,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:f+o,y:x+p,width:o,height:p,fill:this.themeConfig.quadrant4Fill}];for(const h of _)h.text.x=h.x+h.width/2,this.data.points.length===0?(h.text.y=h.y+h.height/2,h.text.horizontalPos="middle"):(h.text.y=h.y+this.config.quadrantTextTopPadding,h.text.horizontalPos="top");return _}getQuadrantPoints(t){const{quadrantSpace:a}=t,{quadrantHeight:p,quadrantLeft:f,quadrantTop:o,quadrantWidth:x}=a,_=te().domain([0,1]).range([f,x+f]),h=te().domain([0,1]).range([p+o,o]);return this.data.points.map(S=>{const m=this.classes.get(S.className);return m&&(S={...m,...S}),{x:_(S.x),y:h(S.y),fill:S.color??this.themeConfig.quadrantPointFill,radius:S.radius??this.config.pointRadius,text:{text:S.text,fill:this.themeConfig.quadrantPointTextFill,x:_(S.x),y:h(S.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0},strokeColor:S.strokeColor??this.themeConfig.quadrantPointFill,strokeWidth:S.strokeWidth??"0px"}})}getBorders(t){const a=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantSpace:p}=t,{quadrantHalfHeight:f,quadrantHeight:o,quadrantLeft:x,quadrantHalfWidth:_,quadrantTop:h,quadrantWidth:c}=p;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:x-a,y1:h,x2:x+c+a,y2:h},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:x+c,y1:h+a,x2:x+c,y2:h+o-a},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:x-a,y1:h+o,x2:x+c+a,y2:h+o},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:x,y1:h+a,x2:x,y2:h+o-a},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:x+_,y1:h+a,x2:x+_,y2:h+o-a},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:x+a,y1:h+f,x2:x+c-a,y2:h+f}]}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(){const t=this.config.showXAxis&&!!(this.data.xAxisLeftText||this.data.xAxisRightText),a=this.config.showYAxis&&!!(this.data.yAxisTopText||this.data.yAxisBottomText),p=this.config.showTitle&&!!this.data.titleText,f=this.data.points.length>0?"bottom":this.config.xAxisPosition,o=this.calculateSpace(f,t,a,p);return{points:this.getQuadrantPoints(o),quadrants:this.getQuadrants(o),axisLabels:this.getAxisLabels(f,t,a,o),borderLines:this.getBorders(o),title:this.getTitle(p)}}},Tt=class extends Error{static{r(this,"InvalidStyleError")}constructor(t,a,p){super(`value for ${t} ${a} is invalid, please use a valid ${p}`),this.name="InvalidStyleError"}};function Lt(t){return!/^#?([\dA-Fa-f]{6}|[\dA-Fa-f]{3})$/.test(t)}r(Lt,"validateHexCode");function ie(t){return!/^\d+$/.test(t)}r(ie,"validateNumber");function ae(t){return!/^\d+px$/.test(t)}r(ae,"validateSizeInPixels");function O(t){return Ce(t.trim(),Et())}r(O,"textSanitizer");var V=new De;function ne(t){V.setData({quadrant1Text:O(t.text)})}r(ne,"setQuadrant1Text");function se(t){V.setData({quadrant2Text:O(t.text)})}r(se,"setQuadrant2Text");function re(t){V.setData({quadrant3Text:O(t.text)})}r(re,"setQuadrant3Text");function oe(t){V.setData({quadrant4Text:O(t.text)})}r(oe,"setQuadrant4Text");function le(t){V.setData({xAxisLeftText:O(t.text)})}r(le,"setXAxisLeftText");function he(t){V.setData({xAxisRightText:O(t.text)})}r(he,"setXAxisRightText");function ce(t){V.setData({yAxisTopText:O(t.text)})}r(ce,"setYAxisTopText");function de(t){V.setData({yAxisBottomText:O(t.text)})}r(de,"setYAxisBottomText");function mt(t){const a={};for(const p of t){const[f,o]=p.trim().split(/\s*:\s*/);if(f==="radius"){if(ie(o))throw new Tt(f,o,"number");a.radius=parseInt(o)}else if(f==="color"){if(Lt(o))throw new Tt(f,o,"hex code");a.color=o}else if(f==="stroke-color"){if(Lt(o))throw new Tt(f,o,"hex code");a.strokeColor=o}else if(f==="stroke-width"){if(ae(o))throw new Tt(f,o,"number of pixels (eg. 10px)");a.strokeWidth=o}else throw new Error(`style named ${f} is not supported.`)}return a}r(mt,"parseStyles");function ue(t,a,p,f,o){const x=mt(o);V.addPoints([{x:p,y:f,text:O(t.text),className:a,...x}])}r(ue,"addPoint");function xe(t,a){V.addClass(t,mt(a))}r(xe,"addClass");function fe(t){V.setConfig({chartWidth:t})}r(fe,"setWidth");function ge(t){V.setConfig({chartHeight:t})}r(ge,"setHeight");function pe(){const t=Et(),{themeVariables:a,quadrantChart:p}=t;return p&&V.setConfig(p),V.setThemeConfig({quadrant1Fill:a.quadrant1Fill,quadrant2Fill:a.quadrant2Fill,quadrant3Fill:a.quadrant3Fill,quadrant4Fill:a.quadrant4Fill,quadrant1TextFill:a.quadrant1TextFill,quadrant2TextFill:a.quadrant2TextFill,quadrant3TextFill:a.quadrant3TextFill,quadrant4TextFill:a.quadrant4TextFill,quadrantPointFill:a.quadrantPointFill,quadrantPointTextFill:a.quadrantPointTextFill,quadrantXAxisTextFill:a.quadrantXAxisTextFill,quadrantYAxisTextFill:a.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:a.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:a.quadrantInternalBorderStrokeFill,quadrantTitleFill:a.quadrantTitleFill}),V.setData({titleText:ee()}),V.build()}r(pe,"getQuadrantData");var ze=r(function(){V.clear(),ve()},"clear"),Ve={setWidth:fe,setHeight:ge,setQuadrant1Text:ne,setQuadrant2Text:se,setQuadrant3Text:re,setQuadrant4Text:oe,setXAxisLeftText:le,setXAxisRightText:he,setYAxisTopText:ce,setYAxisBottomText:de,parseStyles:mt,addPoint:ue,addClass:xe,getQuadrantData:pe,clear:ze,setAccTitle:Fe,getAccTitle:ke,setDiagramTitle:Ae,getDiagramTitle:ee,getAccDescription:_e,setAccDescription:Se},Ie=r((t,a,p,f)=>{function o(i){return i==="top"?"hanging":"middle"}r(o,"getDominantBaseLine");function x(i){return i==="left"?"start":"middle"}r(x,"getTextAnchor");function _(i){return`translate(${i.x}, ${i.y}) rotate(${i.rotation||0})`}r(_,"getTransformation");const h=Et();qt.debug(`Rendering quadrant chart +`+t);const c=h.securityLevel;let S;c==="sandbox"&&(S=vt("#i"+a));const b=(c==="sandbox"?vt(S.nodes()[0].contentDocument.body):vt("body")).select(`[id="${a}"]`),y=b.append("g").attr("class","main"),T=h.quadrantChart?.chartWidth??500,q=h.quadrantChart?.chartHeight??500;Pe(b,q,T,h.quadrantChart?.useMaxWidth??!0),b.attr("viewBox","0 0 "+T+" "+q),f.db.setHeight(q),f.db.setWidth(T);const g=f.db.getQuadrantData(),k=y.append("g").attr("class","quadrants"),ct=y.append("g").attr("class","border"),dt=y.append("g").attr("class","data-points"),ut=y.append("g").attr("class","labels"),xt=y.append("g").attr("class","title");g.title&&xt.append("text").attr("x",0).attr("y",0).attr("fill",g.title.fill).attr("font-size",g.title.fontSize).attr("dominant-baseline",o(g.title.horizontalPos)).attr("text-anchor",x(g.title.verticalPos)).attr("transform",_(g.title)).text(g.title.text),g.borderLines&&ct.selectAll("line").data(g.borderLines).enter().append("line").attr("x1",i=>i.x1).attr("y1",i=>i.y1).attr("x2",i=>i.x2).attr("y2",i=>i.y2).style("stroke",i=>i.strokeFill).style("stroke-width",i=>i.strokeWidth);const ot=k.selectAll("g.quadrant").data(g.quadrants).enter().append("g").attr("class","quadrant");ot.append("rect").attr("x",i=>i.x).attr("y",i=>i.y).attr("width",i=>i.width).attr("height",i=>i.height).attr("fill",i=>i.fill),ot.append("text").attr("x",0).attr("y",0).attr("fill",i=>i.text.fill).attr("font-size",i=>i.text.fontSize).attr("dominant-baseline",i=>o(i.text.horizontalPos)).attr("text-anchor",i=>x(i.text.verticalPos)).attr("transform",i=>_(i.text)).text(i=>i.text.text),ut.selectAll("g.label").data(g.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(i=>i.text).attr("fill",i=>i.fill).attr("font-size",i=>i.fontSize).attr("dominant-baseline",i=>o(i.horizontalPos)).attr("text-anchor",i=>x(i.verticalPos)).attr("transform",i=>_(i));const lt=dt.selectAll("g.data-point").data(g.points).enter().append("g").attr("class","data-point");lt.append("circle").attr("cx",i=>i.x).attr("cy",i=>i.y).attr("r",i=>i.radius).attr("fill",i=>i.fill).attr("stroke",i=>i.strokeColor).attr("stroke-width",i=>i.strokeWidth),lt.append("text").attr("x",0).attr("y",0).text(i=>i.text.text).attr("fill",i=>i.text.fill).attr("font-size",i=>i.text.fontSize).attr("dominant-baseline",i=>o(i.text.horizontalPos)).attr("text-anchor",i=>x(i.text.verticalPos)).attr("transform",i=>_(i.text))},"draw"),we={draw:Ie},Qe={parser:Ee,db:Ve,renderer:we,styles:r(()=>"","styles")};export{Qe as diagram}; diff --git a/apps/kimi-code/dist-web/assets/railroadDiagram-RFXS5EU6-BCTFslNT.js b/apps/kimi-code/dist-web/assets/railroadDiagram-RFXS5EU6-BCTFslNT.js new file mode 100644 index 000000000..8a7ec256c --- /dev/null +++ b/apps/kimi-code/dist-web/assets/railroadDiagram-RFXS5EU6-BCTFslNT.js @@ -0,0 +1 @@ +import{g as s,r as l,d as t}from"./chunk-MOJQB5TN-m4Krf3Vn.js";import{p as m}from"./chunk-JWPE2WC7-TZtJmqSP.js";import{_ as n,l as i}from"./mermaid.core-B_UcP3X_.js";import{M as p,c as u}from"./cynefin-VYW2F7L2-BnQdr27u.js";import"./index-BOtIzGLC.js";var d=u().Railroad.parser.LangiumParser,a=n(e=>{switch(e.$type){case"RailroadTerminalExpr":return{type:"terminal",value:e.value};case"RailroadNonTerminalExpr":return{type:"nonterminal",name:e.name};case"RailroadSpecialExpr":return{type:"special",text:e.text};case"RailroadSequenceExpr":{const r=e.elements.map(a);return r.length===1?r[0]:{type:"sequence",elements:r}}case"RailroadChoiceExpr":{const r=e.alternatives.map(a);return r.length===1?r[0]:{type:"choice",alternatives:r}}case"RailroadOptionalExpr":return{type:"optional",element:a(e.element)};case"RailroadOneOrMoreExpr":return{type:"repetition",element:a(e.element),min:1,max:1/0};case"RailroadZeroOrMoreExpr":return{type:"repetition",element:a(e.element),min:0,max:1/0};default:throw new Error(`Unsupported railroad expression: ${e.$type}`)}},"transformExpression"),c=n(e=>({name:e.name,definition:a(e.definition)}),"transformRule"),g=n(e=>{m(e,t),e.title&&t.setTitle(e.title),e.rules.map(r=>t.addRule(c(r)))},"populateDb"),y={parse:n(e=>{t.clear(),i.debug("[Railroad Parser] Starting Langium parse");const r=d.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new p(r);const o=r.value;i.debug("[Railroad Parser] Parsed rules:",o.rules.length),g(o),i.debug("[Railroad Parser] Parse complete")},"parse"),parser:{yy:t}},x={parser:y,db:t,renderer:l,styles:s};export{x as diagram}; diff --git a/apps/kimi-code/dist-web/assets/railroadDiagram-RFXS5EU6-Dpqal8U_.js b/apps/kimi-code/dist-web/assets/railroadDiagram-RFXS5EU6-Dpqal8U_.js deleted file mode 100644 index 9e89ff6f4..000000000 --- a/apps/kimi-code/dist-web/assets/railroadDiagram-RFXS5EU6-Dpqal8U_.js +++ /dev/null @@ -1 +0,0 @@ -import{g as s,r as l,d as t}from"./chunk-MOJQB5TN-DGD3Ca9J.js";import{p as m}from"./chunk-JWPE2WC7-BxqMRrNb.js";import{_ as n,l as i}from"./mermaid.core-CgZTgv7Y.js";import{M as p,c as u}from"./cynefin-VYW2F7L2-DYKf_Z-v.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var d=u().Railroad.parser.LangiumParser,a=n(e=>{switch(e.$type){case"RailroadTerminalExpr":return{type:"terminal",value:e.value};case"RailroadNonTerminalExpr":return{type:"nonterminal",name:e.name};case"RailroadSpecialExpr":return{type:"special",text:e.text};case"RailroadSequenceExpr":{const r=e.elements.map(a);return r.length===1?r[0]:{type:"sequence",elements:r}}case"RailroadChoiceExpr":{const r=e.alternatives.map(a);return r.length===1?r[0]:{type:"choice",alternatives:r}}case"RailroadOptionalExpr":return{type:"optional",element:a(e.element)};case"RailroadOneOrMoreExpr":return{type:"repetition",element:a(e.element),min:1,max:1/0};case"RailroadZeroOrMoreExpr":return{type:"repetition",element:a(e.element),min:0,max:1/0};default:throw new Error(`Unsupported railroad expression: ${e.$type}`)}},"transformExpression"),c=n(e=>({name:e.name,definition:a(e.definition)}),"transformRule"),g=n(e=>{m(e,t),e.title&&t.setTitle(e.title),e.rules.map(r=>t.addRule(c(r)))},"populateDb"),y={parse:n(e=>{t.clear(),i.debug("[Railroad Parser] Starting Langium parse");const r=d.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new p(r);const o=r.value;i.debug("[Railroad Parser] Parsed rules:",o.rules.length),g(o),i.debug("[Railroad Parser] Parse complete")},"parse"),parser:{yy:t}},P={parser:y,db:t,renderer:l,styles:s};export{P as diagram}; diff --git a/apps/kimi-code/dist-web/assets/requirementDiagram-TGXJPOKE-BXFV4Te6.js b/apps/kimi-code/dist-web/assets/requirementDiagram-TGXJPOKE-BvFhzhoM.js similarity index 57% rename from apps/kimi-code/dist-web/assets/requirementDiagram-TGXJPOKE-BXFV4Te6.js rename to apps/kimi-code/dist-web/assets/requirementDiagram-TGXJPOKE-BvFhzhoM.js index 4a4fbc82f..003a53b34 100644 --- a/apps/kimi-code/dist-web/assets/requirementDiagram-TGXJPOKE-BXFV4Te6.js +++ b/apps/kimi-code/dist-web/assets/requirementDiagram-TGXJPOKE-BvFhzhoM.js @@ -1,6 +1,6 @@ -import{g as Ge}from"./chunk-XXDRQBXY-BW4XjZut.js";import{s as ze}from"./chunk-VR4S4FIN-CHAEh_jD.js";import{_ as h,y as Ye,b as Xe,a as Je,s as Ze,g as et,n as tt,o as st,c as Te,l as Ne,p as it,t as rt,u as nt,v as at,x as lt}from"./mermaid.core-CgZTgv7Y.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var qe=(function(){var e=h(function($,r,a,c){for(a=a||{},c=$.length;c--;a[$[c]]=r);return a},"o"),u=[1,3],o=[1,4],n=[1,5],i=[1,6],f=[5,6,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],_=[1,22],E=[2,7],g=[1,26],S=[1,27],k=[1,28],q=[1,29],C=[1,33],A=[1,34],V=[1,35],v=[1,36],L=[1,37],x=[1,38],O=[1,24],w=[1,31],D=[1,32],M=[1,30],p=[1,39],R=[1,40],d=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],P=[1,61],X=[89,90],Ce=[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],de=[27,29],Ae=[1,70],Ve=[1,71],ve=[1,72],Le=[1,73],xe=[1,74],Oe=[1,75],we=[1,76],Z=[1,83],U=[1,80],ee=[1,84],te=[1,85],se=[1,86],ie=[1,87],re=[1,88],ne=[1,89],ae=[1,90],le=[1,91],ce=[1,92],Ee=[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],Y=[63,64],De=[1,101],Me=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,76,77,89,90],T=[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],B=[1,110],Q=[1,106],H=[1,107],K=[1,108],W=[1,109],j=[1,111],oe=[1,116],he=[1,117],ue=[1,114],fe=[1,115],_e={trace:h(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:h(function(r,a,c,s,m,t,me){var l=t.length-1;switch(m){case 4:this.$=t[l].trim(),s.setAccTitle(this.$);break;case 5:case 6:this.$=t[l].trim(),s.setAccDescription(this.$);break;case 7:this.$=[];break;case 17:s.setDirection("TB");break;case 18:s.setDirection("BT");break;case 19:s.setDirection("RL");break;case 20:s.setDirection("LR");break;case 21:s.addRequirement(t[l-3],t[l-4]);break;case 22:s.addRequirement(t[l-5],t[l-6]),s.setClass([t[l-5]],t[l-3]);break;case 23:s.setNewReqId(t[l-2]);break;case 24:s.setNewReqText(t[l-2]);break;case 25:s.setNewReqRisk(t[l-2]);break;case 26:s.setNewReqVerifyMethod(t[l-2]);break;case 29:this.$=s.RequirementType.REQUIREMENT;break;case 30:this.$=s.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 31:this.$=s.RequirementType.INTERFACE_REQUIREMENT;break;case 32:this.$=s.RequirementType.PERFORMANCE_REQUIREMENT;break;case 33:this.$=s.RequirementType.PHYSICAL_REQUIREMENT;break;case 34:this.$=s.RequirementType.DESIGN_CONSTRAINT;break;case 35:this.$=s.RiskLevel.LOW_RISK;break;case 36:this.$=s.RiskLevel.MED_RISK;break;case 37:this.$=s.RiskLevel.HIGH_RISK;break;case 38:this.$=s.VerifyType.VERIFY_ANALYSIS;break;case 39:this.$=s.VerifyType.VERIFY_DEMONSTRATION;break;case 40:this.$=s.VerifyType.VERIFY_INSPECTION;break;case 41:this.$=s.VerifyType.VERIFY_TEST;break;case 42:s.addElement(t[l-3]);break;case 43:s.addElement(t[l-5]),s.setClass([t[l-5]],t[l-3]);break;case 44:s.setNewElementType(t[l-2]);break;case 45:s.setNewElementDocRef(t[l-2]);break;case 48:s.addRelationship(t[l-2],t[l],t[l-4]);break;case 49:s.addRelationship(t[l-2],t[l-4],t[l]);break;case 50:this.$=s.Relationships.CONTAINS;break;case 51:this.$=s.Relationships.COPIES;break;case 52:this.$=s.Relationships.DERIVES;break;case 53:this.$=s.Relationships.SATISFIES;break;case 54:this.$=s.Relationships.VERIFIES;break;case 55:this.$=s.Relationships.REFINES;break;case 56:this.$=s.Relationships.TRACES;break;case 57:this.$=t[l-2],s.defineClass(t[l-1],t[l]);break;case 58:s.setClass(t[l-1],t[l]);break;case 59:s.setClass([t[l-2]],t[l]);break;case 60:case 62:this.$=[t[l]];break;case 61:case 63:this.$=t[l-2].concat([t[l]]);break;case 64:this.$=t[l-2],s.setCssStyle(t[l-1],t[l]);break;case 65:this.$=[t[l]];break;case 66:t[l-2].push(t[l]),this.$=t[l-2];break;case 68:this.$=t[l-1]+t[l];break}},"anonymous"),table:[{3:1,4:2,6:u,9:o,11:n,13:i},{1:[3]},{3:8,4:2,5:[1,7],6:u,9:o,11:n,13:i},{5:[1,9]},{10:[1,10]},{12:[1,11]},e(f,[2,6]),{3:12,4:2,6:u,9:o,11:n,13:i},{1:[2,2]},{4:17,5:_,7:13,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},e(f,[2,4]),e(f,[2,5]),{1:[2,1]},{8:[1,41]},{4:17,5:_,7:42,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},{4:17,5:_,7:43,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},{4:17,5:_,7:44,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},{4:17,5:_,7:45,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},{4:17,5:_,7:46,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},{4:17,5:_,7:47,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},{4:17,5:_,7:48,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},{4:17,5:_,7:49,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},{4:17,5:_,7:50,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},{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(d,[2,17]),e(d,[2,18]),e(d,[2,19]),e(d,[2,20]),{30:60,33:62,75:P,89:p,90:R},{30:63,33:62,75:P,89:p,90:R},{30:64,33:62,75:P,89:p,90:R},e(X,[2,29]),e(X,[2,30]),e(X,[2,31]),e(X,[2,32]),e(X,[2,33]),e(X,[2,34]),e(Ce,[2,81]),e(Ce,[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(de,[2,79]),e(de,[2,80]),{27:[1,67],29:[1,68]},e(de,[2,85]),e(de,[2,86]),{62:69,65:Ae,66:Ve,67:ve,68:Le,69:xe,70:Oe,71:we},{62:77,65:Ae,66:Ve,67:ve,68:Le,69:xe,70:Oe,71:we},{30:78,33:62,75:P,89:p,90:R},{73:79,75:Z,76:U,78:81,79:82,80:ee,81:te,82:se,83:ie,84:re,85:ne,86:ae,87:le,88:ce},e(Ee,[2,60]),e(Ee,[2,62]),{73:93,75:Z,76:U,78:81,79:82,80:ee,81:te,82:se,83:ie,84:re,85:ne,86:ae,87:le,88:ce},{30:94,33:62,75:P,76:U,89:p,90:R},{5:[1,95]},{30:96,33:62,75:P,89:p,90:R},{5:[1,97]},{30:98,33:62,75:P,89:p,90:R},{63:[1,99]},e(Y,[2,50]),e(Y,[2,51]),e(Y,[2,52]),e(Y,[2,53]),e(Y,[2,54]),e(Y,[2,55]),e(Y,[2,56]),{64:[1,100]},e(d,[2,59],{76:U}),e(d,[2,64],{76:De}),{33:103,75:[1,102],89:p,90:R},e(Me,[2,65],{79:104,75:Z,80:ee,81:te,82:se,83:ie,84:re,85:ne,86:ae,87:le,88:ce}),e(T,[2,67]),e(T,[2,69]),e(T,[2,70]),e(T,[2,71]),e(T,[2,72]),e(T,[2,73]),e(T,[2,74]),e(T,[2,75]),e(T,[2,76]),e(T,[2,77]),e(T,[2,78]),e(d,[2,57],{76:De}),e(d,[2,58],{76:U}),{5:B,28:105,31:Q,34:H,36:K,38:W,40:j},{27:[1,112],76:U},{5:oe,40:he,56:113,57:ue,59:fe},{27:[1,118],76:U},{33:119,89:p,90:R},{33:120,89:p,90:R},{75:Z,78:121,79:82,80:ee,81:te,82:se,83:ie,84:re,85:ne,86:ae,87:le,88:ce},e(Ee,[2,61]),e(Ee,[2,63]),e(T,[2,68]),e(d,[2,21]),{32:[1,122]},{32:[1,123]},{32:[1,124]},{32:[1,125]},{5:B,28:126,31:Q,34:H,36:K,38:W,40:j},e(d,[2,28]),{5:[1,127]},e(d,[2,42]),{32:[1,128]},{32:[1,129]},{5:oe,40:he,56:130,57:ue,59:fe},e(d,[2,47]),{5:[1,131]},e(d,[2,48]),e(d,[2,49]),e(Me,[2,66],{79:104,75:Z,80:ee,81:te,82:se,83:ie,84:re,85:ne,86:ae,87:le,88:ce}),{33:132,89:p,90:R},{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(d,[2,27]),{5:B,28:145,31:Q,34:H,36:K,38:W,40:j},{58:146,89:[1,147],90:[1,148]},{60:149,89:[1,150],90:[1,151]},e(d,[2,46]),{5:oe,40:he,56:152,57:ue,59:fe},{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(d,[2,22]),{5:[1,157]},{5:[2,87]},{5:[2,88]},{5:[1,158]},{5:[2,89]},{5:[2,90]},e(d,[2,43]),{5:B,28:159,31:Q,34:H,36:K,38:W,40:j},{5:B,28:160,31:Q,34:H,36:K,38:W,40:j},{5:B,28:161,31:Q,34:H,36:K,38:W,40:j},{5:B,28:162,31:Q,34:H,36:K,38:W,40:j},{5:oe,40:he,56:163,57:ue,59:fe},{5:oe,40:he,56:164,57:ue,59:fe},e(d,[2,23]),e(d,[2,24]),e(d,[2,25]),e(d,[2,26]),e(d,[2,44]),e(d,[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:h(function(r,a){if(a.recoverable)this.trace(r);else{var c=new Error(r);throw c.hash=a,c}},"parseError"),parse:h(function(r){var a=this,c=[0],s=[],m=[null],t=[],me=this.table,l="",Re=0,Fe=0,He=2,$e=1,Ke=t.slice.call(arguments,1),y=Object.create(this.lexer),G={yy:{}};for(var Se in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Se)&&(G.yy[Se]=this.yy[Se]);y.setInput(r,G.yy),G.yy.lexer=y,G.yy.parser=this,typeof y.yylloc>"u"&&(y.yylloc={});var be=y.yylloc;t.push(be);var We=y.options&&y.options.ranges;typeof G.yy.parseError=="function"?this.parseError=G.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function je(I){c.length=c.length-2*I,m.length=m.length-I,t.length=t.length-I}h(je,"popStack");function Pe(){var I;return I=s.pop()||y.lex()||$e,typeof I!="number"&&(I instanceof Array&&(s=I,I=s.pop()),I=a.symbols_[I]||I),I}h(Pe,"lex");for(var b,z,N,Ie,J={},ge,F,Ue,ye;;){if(z=c[c.length-1],this.defaultActions[z]?N=this.defaultActions[z]:((b===null||typeof b>"u")&&(b=Pe()),N=me[z]&&me[z][b]),typeof N>"u"||!N.length||!N[0]){var ke="";ye=[];for(ge in me[z])this.terminals_[ge]&&ge>He&&ye.push("'"+this.terminals_[ge]+"'");y.showPosition?ke="Parse error on line "+(Re+1)+`: +import{g as ze}from"./chunk-XXDRQBXY-AHUPVB2f.js";import{s as Ge}from"./chunk-VR4S4FIN-CYEgbtU1.js";import{_ as h,z as Ye,b as Xe,a as Je,s as Ze,g as et,o as tt,p as st,c as Te,l as Ne,q as it,u as rt,v as nt,x as at,y as lt}from"./mermaid.core-B_UcP3X_.js";import"./index-BOtIzGLC.js";var qe=(function(){var e=h(function($,r,a,c){for(a=a||{},c=$.length;c--;a[$[c]]=r);return a},"o"),u=[1,3],o=[1,4],n=[1,5],i=[1,6],f=[5,6,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],_=[1,22],E=[2,7],g=[1,26],S=[1,27],k=[1,28],q=[1,29],C=[1,33],A=[1,34],V=[1,35],v=[1,36],L=[1,37],x=[1,38],O=[1,24],w=[1,31],D=[1,32],M=[1,30],p=[1,39],R=[1,40],d=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,77,89,90],P=[1,61],X=[89,90],Ce=[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],de=[27,29],Ae=[1,70],Ve=[1,71],ve=[1,72],Le=[1,73],xe=[1,74],Oe=[1,75],we=[1,76],Z=[1,83],U=[1,80],ee=[1,84],te=[1,85],se=[1,86],ie=[1,87],re=[1,88],ne=[1,89],ae=[1,90],le=[1,91],ce=[1,92],Ee=[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],Y=[63,64],De=[1,101],Me=[5,8,9,11,13,21,22,23,24,41,42,43,44,45,46,54,72,74,76,77,89,90],T=[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],B=[1,110],Q=[1,106],H=[1,107],K=[1,108],W=[1,109],j=[1,111],oe=[1,116],he=[1,117],ue=[1,114],fe=[1,115],_e={trace:h(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:h(function(r,a,c,s,m,t,me){var l=t.length-1;switch(m){case 4:this.$=t[l].trim(),s.setAccTitle(this.$);break;case 5:case 6:this.$=t[l].trim(),s.setAccDescription(this.$);break;case 7:this.$=[];break;case 17:s.setDirection("TB");break;case 18:s.setDirection("BT");break;case 19:s.setDirection("RL");break;case 20:s.setDirection("LR");break;case 21:s.addRequirement(t[l-3],t[l-4]);break;case 22:s.addRequirement(t[l-5],t[l-6]),s.setClass([t[l-5]],t[l-3]);break;case 23:s.setNewReqId(t[l-2]);break;case 24:s.setNewReqText(t[l-2]);break;case 25:s.setNewReqRisk(t[l-2]);break;case 26:s.setNewReqVerifyMethod(t[l-2]);break;case 29:this.$=s.RequirementType.REQUIREMENT;break;case 30:this.$=s.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 31:this.$=s.RequirementType.INTERFACE_REQUIREMENT;break;case 32:this.$=s.RequirementType.PERFORMANCE_REQUIREMENT;break;case 33:this.$=s.RequirementType.PHYSICAL_REQUIREMENT;break;case 34:this.$=s.RequirementType.DESIGN_CONSTRAINT;break;case 35:this.$=s.RiskLevel.LOW_RISK;break;case 36:this.$=s.RiskLevel.MED_RISK;break;case 37:this.$=s.RiskLevel.HIGH_RISK;break;case 38:this.$=s.VerifyType.VERIFY_ANALYSIS;break;case 39:this.$=s.VerifyType.VERIFY_DEMONSTRATION;break;case 40:this.$=s.VerifyType.VERIFY_INSPECTION;break;case 41:this.$=s.VerifyType.VERIFY_TEST;break;case 42:s.addElement(t[l-3]);break;case 43:s.addElement(t[l-5]),s.setClass([t[l-5]],t[l-3]);break;case 44:s.setNewElementType(t[l-2]);break;case 45:s.setNewElementDocRef(t[l-2]);break;case 48:s.addRelationship(t[l-2],t[l],t[l-4]);break;case 49:s.addRelationship(t[l-2],t[l-4],t[l]);break;case 50:this.$=s.Relationships.CONTAINS;break;case 51:this.$=s.Relationships.COPIES;break;case 52:this.$=s.Relationships.DERIVES;break;case 53:this.$=s.Relationships.SATISFIES;break;case 54:this.$=s.Relationships.VERIFIES;break;case 55:this.$=s.Relationships.REFINES;break;case 56:this.$=s.Relationships.TRACES;break;case 57:this.$=t[l-2],s.defineClass(t[l-1],t[l]);break;case 58:s.setClass(t[l-1],t[l]);break;case 59:s.setClass([t[l-2]],t[l]);break;case 60:case 62:this.$=[t[l]];break;case 61:case 63:this.$=t[l-2].concat([t[l]]);break;case 64:this.$=t[l-2],s.setCssStyle(t[l-1],t[l]);break;case 65:this.$=[t[l]];break;case 66:t[l-2].push(t[l]),this.$=t[l-2];break;case 68:this.$=t[l-1]+t[l];break}},"anonymous"),table:[{3:1,4:2,6:u,9:o,11:n,13:i},{1:[3]},{3:8,4:2,5:[1,7],6:u,9:o,11:n,13:i},{5:[1,9]},{10:[1,10]},{12:[1,11]},e(f,[2,6]),{3:12,4:2,6:u,9:o,11:n,13:i},{1:[2,2]},{4:17,5:_,7:13,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},e(f,[2,4]),e(f,[2,5]),{1:[2,1]},{8:[1,41]},{4:17,5:_,7:42,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},{4:17,5:_,7:43,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},{4:17,5:_,7:44,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},{4:17,5:_,7:45,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},{4:17,5:_,7:46,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},{4:17,5:_,7:47,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},{4:17,5:_,7:48,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},{4:17,5:_,7:49,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},{4:17,5:_,7:50,8:E,9:o,11:n,13:i,14:14,15:15,16:16,17:18,18:19,19:20,20:21,21:g,22:S,23:k,24:q,25:23,33:25,41:C,42:A,43:V,44:v,45:L,46:x,54:O,72:w,74:D,77:M,89:p,90:R},{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(d,[2,17]),e(d,[2,18]),e(d,[2,19]),e(d,[2,20]),{30:60,33:62,75:P,89:p,90:R},{30:63,33:62,75:P,89:p,90:R},{30:64,33:62,75:P,89:p,90:R},e(X,[2,29]),e(X,[2,30]),e(X,[2,31]),e(X,[2,32]),e(X,[2,33]),e(X,[2,34]),e(Ce,[2,81]),e(Ce,[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(de,[2,79]),e(de,[2,80]),{27:[1,67],29:[1,68]},e(de,[2,85]),e(de,[2,86]),{62:69,65:Ae,66:Ve,67:ve,68:Le,69:xe,70:Oe,71:we},{62:77,65:Ae,66:Ve,67:ve,68:Le,69:xe,70:Oe,71:we},{30:78,33:62,75:P,89:p,90:R},{73:79,75:Z,76:U,78:81,79:82,80:ee,81:te,82:se,83:ie,84:re,85:ne,86:ae,87:le,88:ce},e(Ee,[2,60]),e(Ee,[2,62]),{73:93,75:Z,76:U,78:81,79:82,80:ee,81:te,82:se,83:ie,84:re,85:ne,86:ae,87:le,88:ce},{30:94,33:62,75:P,76:U,89:p,90:R},{5:[1,95]},{30:96,33:62,75:P,89:p,90:R},{5:[1,97]},{30:98,33:62,75:P,89:p,90:R},{63:[1,99]},e(Y,[2,50]),e(Y,[2,51]),e(Y,[2,52]),e(Y,[2,53]),e(Y,[2,54]),e(Y,[2,55]),e(Y,[2,56]),{64:[1,100]},e(d,[2,59],{76:U}),e(d,[2,64],{76:De}),{33:103,75:[1,102],89:p,90:R},e(Me,[2,65],{79:104,75:Z,80:ee,81:te,82:se,83:ie,84:re,85:ne,86:ae,87:le,88:ce}),e(T,[2,67]),e(T,[2,69]),e(T,[2,70]),e(T,[2,71]),e(T,[2,72]),e(T,[2,73]),e(T,[2,74]),e(T,[2,75]),e(T,[2,76]),e(T,[2,77]),e(T,[2,78]),e(d,[2,57],{76:De}),e(d,[2,58],{76:U}),{5:B,28:105,31:Q,34:H,36:K,38:W,40:j},{27:[1,112],76:U},{5:oe,40:he,56:113,57:ue,59:fe},{27:[1,118],76:U},{33:119,89:p,90:R},{33:120,89:p,90:R},{75:Z,78:121,79:82,80:ee,81:te,82:se,83:ie,84:re,85:ne,86:ae,87:le,88:ce},e(Ee,[2,61]),e(Ee,[2,63]),e(T,[2,68]),e(d,[2,21]),{32:[1,122]},{32:[1,123]},{32:[1,124]},{32:[1,125]},{5:B,28:126,31:Q,34:H,36:K,38:W,40:j},e(d,[2,28]),{5:[1,127]},e(d,[2,42]),{32:[1,128]},{32:[1,129]},{5:oe,40:he,56:130,57:ue,59:fe},e(d,[2,47]),{5:[1,131]},e(d,[2,48]),e(d,[2,49]),e(Me,[2,66],{79:104,75:Z,80:ee,81:te,82:se,83:ie,84:re,85:ne,86:ae,87:le,88:ce}),{33:132,89:p,90:R},{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(d,[2,27]),{5:B,28:145,31:Q,34:H,36:K,38:W,40:j},{58:146,89:[1,147],90:[1,148]},{60:149,89:[1,150],90:[1,151]},e(d,[2,46]),{5:oe,40:he,56:152,57:ue,59:fe},{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(d,[2,22]),{5:[1,157]},{5:[2,87]},{5:[2,88]},{5:[1,158]},{5:[2,89]},{5:[2,90]},e(d,[2,43]),{5:B,28:159,31:Q,34:H,36:K,38:W,40:j},{5:B,28:160,31:Q,34:H,36:K,38:W,40:j},{5:B,28:161,31:Q,34:H,36:K,38:W,40:j},{5:B,28:162,31:Q,34:H,36:K,38:W,40:j},{5:oe,40:he,56:163,57:ue,59:fe},{5:oe,40:he,56:164,57:ue,59:fe},e(d,[2,23]),e(d,[2,24]),e(d,[2,25]),e(d,[2,26]),e(d,[2,44]),e(d,[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:h(function(r,a){if(a.recoverable)this.trace(r);else{var c=new Error(r);throw c.hash=a,c}},"parseError"),parse:h(function(r){var a=this,c=[0],s=[],m=[null],t=[],me=this.table,l="",Re=0,Fe=0,He=2,$e=1,Ke=t.slice.call(arguments,1),y=Object.create(this.lexer),z={yy:{}};for(var Se in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Se)&&(z.yy[Se]=this.yy[Se]);y.setInput(r,z.yy),z.yy.lexer=y,z.yy.parser=this,typeof y.yylloc>"u"&&(y.yylloc={});var be=y.yylloc;t.push(be);var We=y.options&&y.options.ranges;typeof z.yy.parseError=="function"?this.parseError=z.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function je(I){c.length=c.length-2*I,m.length=m.length-I,t.length=t.length-I}h(je,"popStack");function Pe(){var I;return I=s.pop()||y.lex()||$e,typeof I!="number"&&(I instanceof Array&&(s=I,I=s.pop()),I=a.symbols_[I]||I),I}h(Pe,"lex");for(var b,G,N,Ie,J={},ge,F,Ue,ye;;){if(G=c[c.length-1],this.defaultActions[G]?N=this.defaultActions[G]:((b===null||typeof b>"u")&&(b=Pe()),N=me[G]&&me[G][b]),typeof N>"u"||!N.length||!N[0]){var ke="";ye=[];for(ge in me[G])this.terminals_[ge]&&ge>He&&ye.push("'"+this.terminals_[ge]+"'");y.showPosition?ke="Parse error on line "+(Re+1)+`: `+y.showPosition()+` -Expecting `+ye.join(", ")+", got '"+(this.terminals_[b]||b)+"'":ke="Parse error on line "+(Re+1)+": Unexpected "+(b==$e?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(ke,{text:y.match,token:this.terminals_[b]||b,line:y.yylineno,loc:be,expected:ye})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+z+", token: "+b);switch(N[0]){case 1:c.push(b),m.push(y.yytext),t.push(y.yylloc),c.push(N[1]),b=null,Fe=y.yyleng,l=y.yytext,Re=y.yylineno,be=y.yylloc;break;case 2:if(F=this.productions_[N[1]][1],J.$=m[m.length-F],J._$={first_line:t[t.length-(F||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(F||1)].first_column,last_column:t[t.length-1].last_column},We&&(J._$.range=[t[t.length-(F||1)].range[0],t[t.length-1].range[1]]),Ie=this.performAction.apply(J,[l,Fe,Re,G.yy,N[1],m,t].concat(Ke)),typeof Ie<"u")return Ie;F&&(c=c.slice(0,-1*F*2),m=m.slice(0,-1*F),t=t.slice(0,-1*F)),c.push(this.productions_[N[1]][0]),m.push(J.$),t.push(J._$),Ue=me[c[c.length-2]][c[c.length-1]],c.push(Ue);break;case 3:return!0}}return!0},"parse")},Qe=(function(){var $={EOF:1,parseError:h(function(a,c){if(this.yy.parser)this.yy.parser.parseError(a,c);else throw new Error(a)},"parseError"),setInput:h(function(r,a){return this.yy=a||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:h(function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var a=r.match(/(?:\r\n?|\n).*/g);return a?(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:h(function(r){var a=r.length,c=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var s=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 m=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===s.length?this.yylloc.first_column:0)+s[s.length-c.length].length-c[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[m[0],m[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},"unput"),more:h(function(){return this._more=!0,this},"more"),reject:h(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). +Expecting `+ye.join(", ")+", got '"+(this.terminals_[b]||b)+"'":ke="Parse error on line "+(Re+1)+": Unexpected "+(b==$e?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(ke,{text:y.match,token:this.terminals_[b]||b,line:y.yylineno,loc:be,expected:ye})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+G+", token: "+b);switch(N[0]){case 1:c.push(b),m.push(y.yytext),t.push(y.yylloc),c.push(N[1]),b=null,Fe=y.yyleng,l=y.yytext,Re=y.yylineno,be=y.yylloc;break;case 2:if(F=this.productions_[N[1]][1],J.$=m[m.length-F],J._$={first_line:t[t.length-(F||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(F||1)].first_column,last_column:t[t.length-1].last_column},We&&(J._$.range=[t[t.length-(F||1)].range[0],t[t.length-1].range[1]]),Ie=this.performAction.apply(J,[l,Fe,Re,z.yy,N[1],m,t].concat(Ke)),typeof Ie<"u")return Ie;F&&(c=c.slice(0,-1*F*2),m=m.slice(0,-1*F),t=t.slice(0,-1*F)),c.push(this.productions_[N[1]][0]),m.push(J.$),t.push(J._$),Ue=me[c[c.length-2]][c[c.length-1]],c.push(Ue);break;case 3:return!0}}return!0},"parse")},Qe=(function(){var $={EOF:1,parseError:h(function(a,c){if(this.yy.parser)this.yy.parser.parseError(a,c);else throw new Error(a)},"parseError"),setInput:h(function(r,a){return this.yy=a||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:h(function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var a=r.match(/(?:\r\n?|\n).*/g);return a?(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:h(function(r){var a=r.length,c=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var s=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 m=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===s.length?this.yylloc.first_column:0)+s[s.length-c.length].length-c[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[m[0],m[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},"unput"),more:h(function(){return this._more=!0,this},"more"),reject:h(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:h(function(r){this.unput(this.match.slice(r))},"less"),pastInput:h(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:h(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:h(function(){var r=this.pastInput(),a=new Array(r.length+1).join("-");return r+this.upcomingInput()+` `+a+"^"},"showPosition"),test_match:h(function(r,a){var c,s,m;if(this.options.backtrack_lexer&&(m={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&&(m.yylloc.range=this.yylloc.range.slice(0))),s=r[0].match(/(?:\r\n?|\n).*/g),s&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.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],c=this.performAction.call(this,this.yy,this,a,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack){for(var t in m)this[t]=m[t];return!1}return!1},"test_match"),next:h(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var r,a,c,s;this._more||(this.yytext="",this.match="");for(var m=this._currentRules(),t=0;ta[0].length)){if(a=c,s=t,this.options.backtrack_lexer){if(r=this.test_match(c,m[t]),r!==!1)return r;if(this._backtrack){a=!1;continue}else return!1}else if(!this.options.flex)break}return a?(r=this.test_match(a,m[s]),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:h(function(){var a=this.next();return a||this.lex()},"lex"),begin:h(function(a){this.conditionStack.push(a)},"begin"),popState:h(function(){var a=this.conditionStack.length-1;return a>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:h(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:h(function(a){return a=this.conditionStack.length-1-Math.abs(a||0),a>=0?this.conditionStack[a]:"INITIAL"},"topState"),pushState:h(function(a){this.begin(a)},"pushState"),stateStackSize:h(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:h(function(a,c,s,m){switch(s){case 0:return"title";case 1:return this.begin("acc_title"),9;case 2:return this.popState(),"acc_title_value";case 3:return this.begin("acc_descr"),11;case 4:return this.popState(),"acc_descr_value";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;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;case 60:return this.begin("style"),74;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 c.yytext=c.yytext.trim(),89;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 $})();_e.lexer=Qe;function pe(){this.yy={}}return h(pe,"Parser"),pe.prototype=_e,_e.Parser=pe,new pe})();qe.parser=qe;var ct=qe,ot=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=Xe,this.getAccTitle=Je,this.setAccDescription=Ze,this.getAccDescription=et,this.setDiagramTitle=tt,this.getDiagramTitle=st,this.getConfig=h(()=>Te().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{h(this,"RequirementDB")}getDirection(){return this.direction}setDirection(e){this.direction=e}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(e,u){return this.requirements.has(e)||this.requirements.set(e,{name:e,type:u,requirementId:this.latestRequirement.requirementId,text:this.latestRequirement.text,risk:this.latestRequirement.risk,verifyMethod:this.latestRequirement.verifyMethod,cssStyles:[],classes:["default"]}),this.resetLatestRequirement(),this.requirements.get(e)}getRequirements(){return this.requirements}setNewReqId(e){this.latestRequirement!==void 0&&(this.latestRequirement.requirementId=e)}setNewReqText(e){this.latestRequirement!==void 0&&(this.latestRequirement.text=e)}setNewReqRisk(e){this.latestRequirement!==void 0&&(this.latestRequirement.risk=e)}setNewReqVerifyMethod(e){this.latestRequirement!==void 0&&(this.latestRequirement.verifyMethod=e)}addElement(e){return this.elements.has(e)||(this.elements.set(e,{name:e,type:this.latestElement.type,docRef:this.latestElement.docRef,cssStyles:[],classes:["default"]}),Ne.info("Added new element: ",e)),this.resetLatestElement(),this.elements.get(e)}getElements(){return this.elements}setNewElementType(e){this.latestElement!==void 0&&(this.latestElement.type=e)}setNewElementDocRef(e){this.latestElement!==void 0&&(this.latestElement.docRef=e)}addRelationship(e,u,o){this.relations.push({type:e,src:u,dst:o})}getRelationships(){return this.relations}clear(){this.relations=[],this.resetLatestRequirement(),this.requirements=new Map,this.resetLatestElement(),this.elements=new Map,this.classes=new Map,it()}setCssStyle(e,u){for(const o of e){const n=this.requirements.get(o)??this.elements.get(o);if(!u||!n)return;for(const i of u)i.includes(",")?n.cssStyles.push(...i.split(",")):n.cssStyles.push(i)}}setClass(e,u){for(const o of e){const n=this.requirements.get(o)??this.elements.get(o);if(n)for(const i of u){n.classes.push(i);const f=this.classes.get(i)?.styles;f&&n.cssStyles.push(...f)}}}defineClass(e,u){for(const o of e){let n=this.classes.get(o);n===void 0&&(n={id:o,styles:[],textStyles:[]},this.classes.set(o,n)),u&&u.forEach(function(i){if(/color/.exec(i)){const f=i.replace("fill","bgFill");n.textStyles.push(f)}n.styles.push(i)}),this.requirements.forEach(i=>{i.classes.includes(o)&&i.cssStyles.push(...u.flatMap(f=>f.split(",")))}),this.elements.forEach(i=>{i.classes.includes(o)&&i.cssStyles.push(...u.flatMap(f=>f.split(",")))})}}getClasses(){return this.classes}getData(){const e=Te(),u=[],o=[];for(const n of this.requirements.values()){const i=n;i.id=n.name,i.cssStyles=n.cssStyles,i.cssClasses=n.classes.join(" "),i.shape="requirementBox",i.look=e.look,i.colorIndex=u.length,u.push(i)}for(const n of this.elements.values()){const i=n;i.shape="requirementBox",i.look=e.look,i.id=n.name,i.cssStyles=n.cssStyles,i.cssClasses=n.classes.join(" "),i.colorIndex=u.length,u.push(i)}for(const n of this.relations){let i=0;const f=n.type===this.Relationships.CONTAINS,_={id:`${n.src}-${n.dst}-${i}`,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",f?"":"stroke-dasharray: 10,7"],labelpos:"c",thickness:"normal",type:"normal",pattern:f?"normal":"dashed",arrowTypeStart:f?"requirement_contains":"",arrowTypeEnd:f?"":"requirement_arrow",look:e.look,labelType:"markdown"};o.push(_),i++}return{nodes:u,edges:o,other:{},config:e,direction:this.getDirection()}}},ht=h(e=>{const u=Ye(),{themeVariables:o,look:n}=u,{bkgColorArray:i,borderColorArray:f}=o;if(!f?.length)return"";let _="";for(let E=0;Emt});var mt=h(async function(e,u,o,n){Ne.info("REF0:"),Ne.info("Drawing requirement diagram (unified)",u);const{securityLevel:i,state:f,layout:_,look:E}=Te(),g=n.db.getData(),S=Ge(u,i);g.type=n.type,g.layoutAlgorithm=nt(_),g.nodeSpacing=f?.nodeSpacing??50,g.rankSpacing=f?.rankSpacing??50,g.markers=E==="neo"?["requirement_contains_neo","requirement_arrow_neo"]:["requirement_contains","requirement_arrow"],g.diagramId=u,await at(g,S);const k=8;lt.insertTitle(S,"requirementDiagramTitleText",f?.titleTopMargin??25,n.db.getDiagramTitle()),ze(S,k,"requirementDiagram",f?.useMaxWidth??!0)},"draw"),yt={parser:ct,get db(){return new ot},renderer:Be,styles:ft};export{yt as diagram}; +`},"getStyles"),ft=ut,Be={};rt(Be,{draw:()=>mt});var mt=h(async function(e,u,o,n){Ne.info("REF0:"),Ne.info("Drawing requirement diagram (unified)",u);const{securityLevel:i,state:f,layout:_,look:E}=Te(),g=n.db.getData(),S=ze(u,i);g.type=n.type,g.layoutAlgorithm=nt(_),g.nodeSpacing=f?.nodeSpacing??50,g.rankSpacing=f?.rankSpacing??50,g.markers=E==="neo"?["requirement_contains_neo","requirement_arrow_neo"]:["requirement_contains","requirement_arrow"],g.diagramId=u,await at(g,S);const k=8;lt.insertTitle(S,"requirementDiagramTitleText",f?.titleTopMargin??25,n.db.getDiagramTitle()),Ge(S,k,"requirementDiagram",f?.useMaxWidth??!0)},"draw"),gt={parser:ct,get db(){return new ot},renderer:Be,styles:ft};export{gt as diagram}; diff --git a/apps/kimi-code/dist-web/assets/rive-BTwUD7iz.js b/apps/kimi-code/dist-web/assets/rive-BTwUD7iz.js deleted file mode 100644 index 2a9200423..000000000 --- a/apps/kimi-code/dist-web/assets/rive-BTwUD7iz.js +++ /dev/null @@ -1 +0,0 @@ -const A="data:application/wasm;base64,AGFzbQEAAAABkQ7ZAWABfwF/YAF/AGACf38Bf2ACf38AYAN/f38Bf2ADf39/AGAGf39/f39/AX9gBH9/f38Bf2AEf39/fwBgAABgBX9/f39/AGABfwF9YAV/f39/fwF/YAJ/fQBgA39/fQBgAAF/YAZ/f39/f38AYAJ/fwF9YAd/f39/f39/AGAIf39/f39/f38Bf2ADf31/AX9gBn9/fX99fwBgA39/fQF/YAN/fX0AYAF8AXxgAn99AX1gAn99AX9gAn9+AX9gBH9/fn8Bf2AHf39/f39/fwF/YAF9AX1gBH9/f30AYAN/fn8Bf2ADf399AX1gCn9/f319fX19fX8AYAh/f39/f39/fwBgBn9/f319fwBgA39+fwF+YAN/fX8AYAV/f399fwF/YAN/fX0Bf2AIf39/fX19fX8AYAF9AX9gBn9/f39/fQBgBH9/fX8Bf2AHf319fX19fQBgBX9+fn5+AGACfX0BfWAHf39/fX99fwBgCn9/f39/f39/f38Bf2ACf38BfmAKf39/f39/f39/fwBgAX8BfGAEf399fQBgA39/fwF9YAJ/fgBgAnx8AXxgAXwBfmAGf399fX19AGACf3wBf2AEf3x8fwBgBX9/f399AGAEf319fQF9YAd/f319fX1/AGAJf39/f39/fX9/AX9gBn9/f399fwF/YAl/f39/f39/f38Bf2AEf39/fgF/YAV/f35/fwBgA39/fwF+YAV/f39/fgF/YAABfGABfAF/YAJ8fwF8YAp/f39/f39/f399AGAEf35/fwF/YAN/f34AYAd/f39/f319AGAIf39/f39/fX8Bf2AJf399fX19fX1/AGAFf39/fX0AYAJ/fwF8YAJ+fwF/YAV/f39/fAF/YAt/f39/f39/f39/fwF/YAd/f39/f35+AX9gA39/fwF8YAR/fn5/AGADfHx/AXxgAn98AGADf398AX9gCX9/fX19fX9/fwBgCH9/fX19f39/AGAJf39/fX19fX19AGAFf399fX0BfWAGf39/f39+AX9gBn9/f39+fgF/YAR/f39/AXxgA3x+fgF8YAF8AGAEfn5+fgF/YAF+AX9gAn5+AXxgBX99fX19AGAGf39/f399AX9gBX9/fX1/AGAEf39/fQF/YAh/f319fX19fQBgAX8BfmAAAX5gA319fQF9YAR9fX19AX1gBX99fX9/AGAEf399fwBgBn9/fX1/fwBgBH9+f38AYAV/f39+fwF/YAV/f399fQF9YAd/f399fX19AGAFf39/f38BfWAEf39/fwF9YAV/fX18fABgCn9/fHx8fH9/f38AYAN/fHwAYAZ/f35/f30AYAR/f39+AGACf34BfmACfH8Bf2ACfH8BfWAGf3x/f39/AX9gAX4BfmAEf39/fwF+YAx/f39/f39/f39/f38Bf2AEf39/fAF/YAV/f39+fgF/YA9/f39/f39/f39/f39/f38AYAF8AX1gAn5/AGANf39/f39/f39/f39/fwBgCX9/f39/f39/fwBgBX9/f39/AXxgAn5+AX9gAn5/AXxgAn5+AX1gB39/fX1/f30AYAV/f3x8fwBgB39/f39/f30AYA5/fX1/f399fX9/f39/fwF/YAV/f319fQBgBH98fHwAYAR+f39/AX5gBX9/f35/AGAGf399fX19AX9gBn9+f39/fwBgAAF9YAR/fn1/AX9gB399fX19f30AYAN9fX0Bf2AFfX1/f38BfWAFfX19fX8BfWALf39/f39/f39/f38AYAV9f39/fwBgBn9/fX19fwBgBn9/f319fQF9YAN+fn0BfWAHf39/fX1/fwBgBn99fX19fQBgB39/fX19fX0AYA1/f39/f399fX9/f399AGAGf39/f35/AGADf35/AGAFf39/fX8AYAV/f31/fwBgCH9/f31/f399AX9gBH99fX0AYAV/f398fwF/YAV/f39/fQF/YAR/f319AX9gA35+fwBgB39/f31/f38Bf2AGf39/f39/AX1gCX99fXx8fHx8fABgB398fHx8fHwAYAV/fX9/fwF9YAd/f39/fn9/AGAEf39+fQBgB39/f39+f38Bf2ADf39+AX5gA39+fQBgCX9/f39/f35/fwBgBH9+fn4Bf2AFf35+fn8Bf2ACfX8BfWAEfHx/fwF9YA1/fX99f31/fX19fX1/AX9gBH99f30Bf2AFf31/fX0Bf2AOf319f39/fX1/f39/f38AYAd/f31/fX9/AGAEf399fQF9YAR/fX1/AX1gA399fQF9YAN+fn4BfmAFf35/f38AYAV/f39/fwF+YAJ/fAF8YAN/fn4AYAR/f39+AX5gAn1/AX9gA35/fwF/YAJ9fQF/YAJ+fgF+YAR/f35/AX5gA39/fgF/YAZ/f39+f38AYAh/f39/f39+fgF/YAV/f39+fgAC7Q09A2VudhFfZW12YWxfbmV3X29iamVjdAAPA2Vudg1fZW12YWxfZGVjcmVmAAEDZW52EF9lbXZhbF9uZXdfYXJyYXkADwNlbnYNX2VtdmFsX2luY3JlZgABA2VudgtfZW12YWxfY2FsbABhA2VudhhfZW12YWxfZ2V0X21ldGhvZF9jYWxsZXIABANlbnYWX2VtdmFsX3J1bl9kZXN0cnVjdG9ycwABA2VudglfZW12YWxfYXMAVgNlbnYZX2VtYmluZF9yZWdpc3Rlcl9mdW5jdGlvbgASA2VudhZfZW1iaW5kX3JlZ2lzdGVyX2NsYXNzAIoBA2VudiJfZW1iaW5kX3JlZ2lzdGVyX2NsYXNzX2NvbnN0cnVjdG9yABADZW52H19lbWJpbmRfcmVnaXN0ZXJfY2xhc3NfZnVuY3Rpb24AiwEDZW52H19lbWJpbmRfcmVnaXN0ZXJfY2xhc3NfcHJvcGVydHkAMwNlbnYTX2VtdmFsX3NldF9wcm9wZXJ0eQAFA2VudhJfZW12YWxfbmV3X2NzdHJpbmcAAANlbnYRX2VtdmFsX3Rha2VfdmFsdWUAAgNlbnYlX2VtYmluZF9yZWdpc3Rlcl9jbGFzc19jbGFzc19wcm9wZXJ0eQAjA2VudhVfZW1iaW5kX3JlZ2lzdGVyX2VudW0ACANlbnYbX2VtYmluZF9yZWdpc3Rlcl9lbnVtX3ZhbHVlAAUDZW52HV9lbWJpbmRfcmVnaXN0ZXJfdmFsdWVfb2JqZWN0ABADZW52I19lbWJpbmRfcmVnaXN0ZXJfdmFsdWVfb2JqZWN0X2ZpZWxkADMDZW52HV9lbWJpbmRfZmluYWxpemVfdmFsdWVfb2JqZWN0AAEDZW52JV9lbWJpbmRfcmVnaXN0ZXJfY2xhc3NfY2xhc3NfZnVuY3Rpb24AIwNlbnYSX2VtdmFsX2NhbGxfbWV0aG9kAIwBA2VudiVfZW1iaW5kX2NyZWF0ZV9pbmhlcml0aW5nX2NvbnN0cnVjdG9yAAQDZW52E19lbXZhbF9nZXRfcHJvcGVydHkAAgNlbnYaX2VtdmFsX2dldF9tb2R1bGVfcHJvcGVydHkAAANlbnYVX2VtYmluZF9yZWdpc3Rlcl92b2lkAAMDZW52FV9lbWJpbmRfcmVnaXN0ZXJfYm9vbAAIA2VudhtfZW1iaW5kX3JlZ2lzdGVyX3N0ZF9zdHJpbmcAAwNlbnYcX2VtYmluZF9yZWdpc3Rlcl9zdGRfd3N0cmluZwAFA2VudhZfZW1iaW5kX3JlZ2lzdGVyX2VtdmFsAAEDZW52GF9lbWJpbmRfcmVnaXN0ZXJfaW50ZWdlcgAKA2VudhZfZW1iaW5kX3JlZ2lzdGVyX2Zsb2F0AAUDZW52HF9lbWJpbmRfcmVnaXN0ZXJfbWVtb3J5X3ZpZXcABQNlbnYXd2FzbV9zdGFydF9pbWFnZV9kZWNvZGUABQNlbnYQaXNXaW5kb3dzQnJvd3NlcgAPA2VudhhlbXNjcmlwdGVuX2FzbV9jb25zdF9pbnQABANlbnYIc3RyZnRpbWUABwNlbnYSZW1zY3JpcHRlbl9nZXRfbm93AEcDZW52CV9hYm9ydF9qcwAJA2VudhNlbXNjcmlwdGVuX2RhdGVfbm93AEcDZW52IF9lbXNjcmlwdGVuX2dldF9ub3dfaXNfbW9ub3RvbmljAA8DZW52EF9fc3lzY2FsbF9vcGVuYXQABwNlbnYRX19zeXNjYWxsX2ZjbnRsNjQABANlbnYPX19zeXNjYWxsX2lvY3RsAAQWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MQdmZF9yZWFkAAcWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MQhmZF93cml0ZQAHFndhc2lfc25hcHNob3RfcHJldmlldzEIZmRfY2xvc2UAAANlbnYVX2Vtc2NyaXB0ZW5fbWVtY3B5X2pzAAUDZW52CV90enNldF9qcwAIA2VudhZlbXNjcmlwdGVuX3Jlc2l6ZV9oZWFwAAAWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MRFlbnZpcm9uX3NpemVzX2dldAACFndhc2lfc25hcHNob3RfcHJldmlldzELZW52aXJvbl9nZXQAAgNlbnYKc3RyZnRpbWVfbAAMA2VudhlfZW1zY3JpcHRlbl90aHJvd19sb25nam1wAAkDZW52Cmludm9rZV92aWkABQNlbnYXX2VtYmluZF9yZWdpc3Rlcl9iaWdpbnQAEhZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxB2ZkX3NlZWsADANlbnYNX2xvY2FsdGltZV9qcwAFA2VudgpfZ210aW1lX2pzAAUD0Fry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BAcDAAAAAAAAAAABAAAAAwMEBwMAAAMDAwADBAcDAAMEBwMAAwQHAwAEBwADAAICAwkCAwIBCQMHBAEAAQAAAwIEBwMAAQEBAwEAAgQDAgMCAgMACQEBAwMAbAACAgACAAABAAEBAAIEAQEBAwMBAgIFAQUBAAEKAwQeAwQNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0DAwMDAwMDAwMDAwMDAwMDAwMDAwQAAAIAAQICHwMBAgECAAAABAQBAQEBAAEBAwQAAQACAQACAAEAAAECAQIAAQIBAgECAQIBAgIfFgMAAQIBAgIfAwEKAgQEAwQDBAMECgcDAAECBQIABAIaKhYBCgMDAQoDAwMBCgEKBQEKAQoBCgEKCAEKBAEKAQoAAAMDAwMBAQMDAwQHAwADAgICBAABAAIEAQAAAwUFAwMCAAABAAIEAQEAAQADAQQCBQgDAQEAAAEAAgQEAQQDAQEEABoBAQEBAQABAAIBAgQEAAUBARoDAQMDAAAAmAEEBAEBAQEAAQACBAABAQEAAAABAAIEAAACAgQAAAQEBQACAAMCAgEBAAIEAQACAAcAAAEBAwQAAAAMAgIAAgABAQEEDAACAQUBDAAAAAEBAwMAAQMBAAAAAQEHAwQECgMFAAUAAAAAAAABAgUCAgUBAwUCAAUBAgUKAAABAwADAAIEDAMABAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAEAAgEAAgQAAQABAAIEBAIBAwMBAQACAQEAAgEAAgQBAQICAgIAAgACBAEBAAIEBAEBAQEBAQEAAgQBAQACBAEBAAIEAQEAAgQBAAEAAgQBAQACBAEBAAIEAQACAQACBAEBAAIEAQEAAgQBAQACAQACAQACAAEAAgQAAQABAAIBAAIEAQEAAgQBAQACAQACAAEAAgQBAAABAAIEAQEAAAABAAIEAQACBAEBAAIAAgQAAgEAAgEBAAABAAIEBAEAAQAAAgEAAgQBAQACBAABAQABAAIEBAEBAQACAAIBAQACBAUBAAEAAgQBAQACAQACBAEBAAIBAAIEAgEBAQAAAgQBAAEAAgQBAQACAAEAAgABAAIBAAIEAQEAAgQBAQEAAgQBAQACBAEBAAIBAAIBAAIBAAIBAAACBAIBAQACBAEBAAIEAQEAAgQBAAEAAgQBAQACBAEBAAIEAAEAAwEBAwACBAEBAAIEAQEAAgQEAQABAQEBAQEBAQEBBAEAAgAAAgEAAgQBAQEBAQEAAgQBbQACBAEBAAIEAQEAAgQDAQEBAAEAAgQEAQEBAQACAAAABAEBAAIBAAIBAAIBAAIEAQEAAgQBAQACAAEAAgQAAQEAAgEAAgEAAgABAAIEAAEBAAIEAQEAAgEAAgEFAAIECAIAAQABAAMDAwADBQMDAAQBAQEBAAAAAQACBAABAQACBAICPhkZAQEBARduAQAoAQACBAI+GW4eAQEBAR4AAQABAAIEAgEBAAEBAQADAAEAAgQDAwACAAABAQUFmQEBAAMDAR4BAQEBAQEAAgQAAwABAAIEBAMBAAMAAQAAAwADAAMAAQAAAAADAAMEAAMAAwADAQACAAADAQAAAAAAAAMAAAEAAAAAAAMAAQABAQEAAwACBAAAAQEAAgQAAAAEAy8eHh4eL5oBAwQABQEFAQUBDwMCAAEAAgQBAQABAwEBAQACBAADAw5NAgMKAQACAAADARILCwAAAAMKDk0DAgMCAAAAAQMDAgICTgJOmwFLAwEFBQ4ZCm9NApwBA50BAwABARIAAQACBAAACwsAAAEBAQACAgADAQACAQEAAwIBAAIAAgEAAgQBAQAJAAABJg4AAQABAAIEBAICAgICAQEBAQkCAAICAQAAAgQBAQACAAIHAwALAgMABwMAAAEAASYmBA4DDgABAAsBAgkDAAAAAQUBAQIZAQACBAEBAQEAPhkBAAIAAgcDAAIBAAIAAAEmJg4AAQABAAICAAICAQAAAgQEAQEBAQEBAQEAAwICAQACBAEAAQIBAAABAAIAAQEIBAUWcAAIAQEAAAAAAAEAAAAAAAEAAgQAAQABAwMDAwIBAAICAwAIBQMFAQEBAQABAAIEAQEAAQEBAQEBAAIEAAEBAQEBAAIEAAUAAAAFAAABAAIEAgIBAwEBAQABAAMBAQIBAAMBAQIAAQABAAAAAgIBAQACBAAENAABAAIAAAQWBBYBAQACBAADBAQBAAIABAQBAAIABAABAAIAAAABAAIEAAIDAQABAAIAAAQEAAUBARoBAwAEAAEAAgAABAABAAIEAAEABAMEBAEBAQAAAQACBAAAAQEBAQQAAQACAAAEAQEABQMFAQABAAIEAAAEBAMDBQABAAIEAQAEBAABAAIAAAICAQMCBBoNAgMDAQEAAAEAAgQAAQABAQEDAgIBCwsDAAABAAIEAAMCAQACBAEBAAQDAAEAAgABAwIEAwMDAAAAAAAAAQACBAEAAQECBQUCBAAAAwMDAQECAwMDAwABAAIEAQEAAAEAAwMAAgIOAgEAAAABAAIEAAEAAwUDAQACBAQBAQAFAQQBAAIEAQAAAAEAAgQBAQMBAQEBAQAAAAwCBAEREQOeAQsLAAMBAgAAAAEADAIEAQECAgAAAgMDAwQDAAAAAwADAQICBQIAAAMDCgEIEgMEBAcABAQCAwICnwEAAAABAQ4OAwMKAwMDAwgABAcDAAIBAAEAAgQBAAMDBAMAAQACAAEEEQICAg8kAyQDKQMiAwgDD08DBQMKAz8DBQMKAwUDCAMEDCIDIgMpA0ADAAAAAAAFAwQHAAMAAwAXFwgtAQQHAwADAAMABQMAUCEDAgQHAwAACAUHAwAEAQADAwMDAAEBAQABAAAFCBEAEQADBQICCAAAAQUAAgcCBgQHAgICBggIAwMIBQMBCg8CBQcHBAEBAQMAAwMBAwMDAAAIBAMQABIPAgIBEwQIAwUCAgICAggEAgUBAwQEoAECBAAAAAAAAAEAAQEBAAIHAAwBAQICAgQEBAQEAAACAgcDAAQBAwABAgMCAwEEBwIMCgYBAQUDDgMDBAAAAAAAAAAAAAABAAAAAQACAAAAAAEAAAIBAAIAAAAAAAAAAAACAQACBAEBAQEAAgEBAQEAAgQACAgDAwEBAAADAwMDAwMDAQABAAIAAQAAAQEAAAEBAgENCAEDAAEAAgQBAAMXAAQDFwMBAgIAAAMBAwEBAAADCwsVFQoKAQEXAwABAAIEAQEBAQEBAAGhAQoDFwABAAIEAQMBAQMAAgIBAwILFRUKCgEBAQEBAQABAAIEAQEBAQEBAAAAAgEAAgQBAQEAAAMBAAIEAgICAgABAAAAAQAAAQACBAICAgEsAAEAAh8wAQACBAQBAQECAgMAAAMAAB9xMAEAAgQBAB81MAEAAgQBAB8wAQACBAEAAh8wAAEAAgQBAAEfMAEAAgQBAAABAAICAgMCAQABBAANDQEBAgIAAAMCAAAPAAoCAgADFA8AAAABAAICAwMBAQEBAQEDAQMUAg4CAgEDAwAnAwEVAAAAAAAVAwAAAQAAABQAAQIDAycBBQIVAwACDw8PDw8PAAEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQACBAEBAQEBAAADAQACBAIEBwMAAAICAQEBAQEBAQELGaIBAAEAAQMAAAsaDgADAAEOAAQAGgAAAgIBAwIKChAICAQODhIBAQEBAQEBAAEAAgQAAQADAQEDAwEBAAIEAAEDHQMDaAwEBwMABwEAAAEBBAcDAAAAAQEBAQEBAAEAAQACBAEDAwMAAwICAwIFAQACBAEBAAICBQEAAgQEAQEBAAUBAAIEAQABAwMCAgICAQgEAgMDAwMDAwMDAAMDAwMAAgIAAQACAAAAAQAAAQAAAQAAAwMAAQACBAEABQUFBQUFBQUCBQIFBQIOAgICBQEAAgQBAAICBQEAAgAAAQACAgUEBAACAwgAAgQFBAcBAAEBBwQAAQEBAQUFAQQDAAMHAQEDCAUEAAQABAAEAAQABAAEAAAEAAMCAwEBAQEBAQAAAQEBAQIEAAgDAAMAAgAAAwAAAAMAAAADAAAAAwgDAAADAwAAAwAAAwMAAAMDAAMDAAAAAAMCBAIFAwQABQUHAFlRAAADAgAAAAADBAIAAAQBBAMCAAMAAwMABAkDAwMEAwICAgIAAQACAAANCAUCAgMDAgEDAwEBAAADAQIAAwMBAwUrKwAAAAEBAAIEAQABAAEBAgEAAgADAQEBAQMDAwAODlACAAABAAIDAQEDowEBAAMBAQMDBQMICAgKCgUDBRUVCgoAAAABAQACBAEBAAAAAAEAAAEAAAEAAAEAAgIBAwUIAwMIAAMBAQEAAQADBAMDAwUCAQACBAEBAAABAAIEAAACAgACAgMDBAADAwEBAQEBAQMFAwEBAQADAAACFQoFBQMDAwEBAQEUAQAIBQcBAwAADAIEAQEAFQoUAQACAwUBAQEDAAcIBQEAAwAAAwAAAQMAAwABAAwCBAEBAgAAIAMAAAMDAgIDAwMBAQADAwECAwMnJwEBAQEBAQAAAwMAAQACBAAAAAAAAQABAAAAAAMBAAIEAQEBAAEAAQEDAAEAAgQBAAMAAAABAAIEBAEDAQEAAgICAQENCwEAAgQBAAEDFAEAAgQAAwMUAQACBAEBAAABAAIUAwEAAwEBAAIAAQELCwEBAAIAAAEVFQoKAwMBAQEBAaQBAgEEBwMAAAM6AwJyAQMAAgECARYDAAMBDh8OcBalAaYBJgUmFwICDiEAAwMEAgEBAQADAwEBAAEAAgABAAADAQACBAMBAQABAAMFAQEBAQEBEm8BAAIAAQABAwcDAAMFAwUDDqcBAwEBBAUDqAEDBQMDAAMBAwIBAwIEqQEIBAICBwUFBaoBqwEDAwMAAAAAAQMABQAIcQMEBwMAAxACrAECrQEDAgEAAgQBAQEBAQACAwICAwMBCQEABwMDBwUFBAMBBwMAAwADAAMDAAADAwcEBAIAAAMBAwgEBQMDAAcDAwMHAQMDAwEECyoCCQoABAIFAwUAAgEABAQDAwMIAwADAAADAAACCAAAAAAFBQoAAAACAwUCAAUAAAAAAAIABQAEAACuAQAAAgAAAAAAAAARAAAAAABWAAAAAAAAAAADAwMDAwMCAwAAAAIAAC0AAAAAAAAAAAMDAwMDAwMDAwMDAwMDAwMCAgUDAgI6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgADAAAAAwMAAAADAAADAwMAAAMDAAMCBQAAAAAAAwAFAAMBAAMDAQADAAADAAAAAAADAAMCAAEDAw0DAw0DAwICAAEDAw0DAw0DAwEAAwADAwAAAwMDAAgFAAIAAgAAAAAAAAIBAQUGAQAAAREDAAMAAAADAwMDAAAAAwMDAwMDAwMAAAMAFAIDAgAFAwAEAgACCQICAgICAgICAgICAQAAAAAAAAMAAAADAwMDAwMDAwMDABYABAAEAAQBAAEAAQABAAAAAAMDAwMDAAADAwMDAwMAAAMAAwMAAAMAAAAAABAFBQUFBQUFBQUFBQMABQMAcwgFNggAAAKvAQEBdAADAAMDAAAAAwAABgAAAAAAAAAAAAMAAgEBAQACBAsLAAMCAQACAAADAwEAAgAAAx8DBCwEBAACAgICAAEBAAAAAwEDAwMEAAABAwMAAQACBAMBAQEAAwMAAAEDAwAABQE3AwUFTAEBAwUFCDcAAAMAAQACBAAAAgICAwEBAQAAAAADAAABAQAAAAAAAQMAAwEAAQACAgIBBQEAAAEBAAAAAQACAgIBBQEAAAEBAAAAAQACAgIBDgEAAAEBAAAAAQACAgIBBQEAAAEBAAAAAQACAgIBAAABAAAAAQACBAICAwMBAQAAAAAAAQEAAAAAAAABAAIBAAEAAgQAAAIEBAQABQEaGgEBAwAUAwQAAAIAAQABAwQAAAICAQMUAQEDBQABQQQIAgMDBQADBAIUFAQEAwMCAAABAQABAAIEAQAAAwADAAABAAMAAAIAAwMZPgMDAgACCAIAAQACBAEABAAAAAEAAwQAAAEBATcVFQoKAwMAAAEAAgAAAQAAAQEAAgQAAgMFBAEABAAAAgMAAQABBAAAAgMDAQEBAAEBAQgIAgIUFAQEAwMCAAABAQAAAAABAAABAwABAAIEAQADAAAAAQADAAAAAQABAQACBAACAgQFAQAEAAACAwABAAEEAAACAwsLCwsDAwMLCysBAgIBAAIEAQEAAxYWFhYBAAABABYWAAABAAIEAAACDQ0CAQMDDQsLDQsLDQMFCw0LDQsDAAEBAQEBAQEBAQEBAQEBAQEDAwAAFBQDAwAANgIEAwERERYWFgEADgIBAwAAAQEAAgQCAwEBAQMBAwEBAQEBAQUCBQABAQEBAQEBAQICAQACBAEABAIDAAIFAAEAAwEBAgMAAAABAAICAgIBAQMHCAIAAAMDBAANCwEAFQAAAAAAFQAAAAEAAAAAAAEBAwUXFy0BAAABAwMBAQMFFxctAQAAAAIDARIDAwEBAQMDAQMAAQACBAIBAwMBAQEBAQEAAAABAysEBwACAQEODgEAAQACBAABAAMCAQIBAAIEAAEAAgQDAAEBAAAAAAAAAQACAgICAwAAAwEAAgQEAQECAAMCAwMAAQACBAEAAQAAAgICAQEAAQEBAAEEBQMBAAEBBAABAQEBAAEAAbABAiwEBAQQBAwCAwMMAAMAAQADAQECAAFBBAgCAwMBAgEBAgEBBwMAAwMAAAAAAAADAwMDAQAAAUEECAIBQQQIAgAACAgAAQEBAQEAAAAAAQMAAAsaAwACAgICAQUFDgABAwABDgAAAQUBAQMDDQEAAgIHCAE2BQABAQEAAQwCAAEBAwEBAAEEAAEAAgICAgAAAAEAAgQBAQAAAAEAAgQCAQIAAwEAAgMDAAEAAgQCAQEBAAAAAQACAgICAgIAAQABAQACBAAAAg4AAQEBAwECAQEAAgQAAQABAQIBJg4AAggIAgIDAwAAAAEAAwMAAQACBAEAAQACAgECAgEAAgQBAQEBAQEBAAEBAAABAwEBAAEAAQABAAIEAwADAANqAgISAwEDAwsLAxYHAwACAwQBAQEBAQEBAQEBAQEBAQEDARUQCgMEBwMABAADFQoBAQMDBQMBPQECBAAAAwEDAwMDAAMBAQMEAQADAAMEBwMAAQACAwEBAQEBAQEAAQACBAADBAcBAwMBAQMBAQEBAwMCAwUVFQoKAQwPAAwCAgQEAQEBAQICAgJLGhQUAAAAAAEAAQEAAgQAAAABAAAAAQEBAQQAAAABAAIAAAAAAAABAAAAAAIAAAMAAQABAQICAk4EAgAAAQACAAEABAAAAQACAAEABAAAAQACAAEAAgECAQASCgEBAQEBAQEBATcAAAEAAgQAAgMBAQEBAQEBAQEBAAEAAgQBAAUQCgoKEAgEChAIBBexAQACAwUEBwMAAwgIAQADCAoFAggKBQIAAQACBAAAAgACAgEDAQEBAQMAAAEDAAEBAgEBAQACBAADAgEAAgQBAQAAAQACAAAAAAAAAAABAAAAAQAAAAIBAgIBAAcAAAEAAgQAAQEBAQMBdQEBAAIEAQADAQEBAQMBAQMBAAIEAAACBAEAAgQEAQEAAgICAgIEAQACBAEAAAAAAQACAgUDBAAAAgQEBQEAAgAAAAAAAAAAAAEAAQACBAUAASgEBAQEASgBKAEoASgBKAQEBAQBKAQEBAQFAwMHAQAAAAEEAQABBAABBAABBAABBAABBAABBAABAgABAgECAQIBAgECAQIBAgECAgECAQIAAQIBAgECAAEFAQUBBQABAgECAQIAAREBEQERAREBEQERBAcDAAEEAQQAAQADAQACAAAAAQACAwABAgEBAQECCAgAAAAAAQAAAAEAAgQAAQAAAQEBAAEAAgMAAAEBAAAEAQACBAADAgEFAwkABAEBAQABAAIEAAMCAgABAAIEAQADAAEAAgABAQEAAgQAAQEAAgQAAQEAAgQAAQAAAQACBAADAwEBAQMDAgQBAAIAAQACBAEBAAIDAAABAQACBAAA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Y3RvcnMAPQRmcmVlAGAGbWFsbG9jAF4NX19nZXRUeXBlTmFtZQDQCBp3YXNtX2ltYWdlX2RlY29kZV9jb21wbGV0ZQDYLRd3YXNtX2ltYWdlX2RlY29kZV9lcnJvcgDdLSBfX2VtX2pzX193YXNtX3N0YXJ0X2ltYWdlX2RlY29kZQMCGV9fZW1fanNfX2lzV2luZG93c0Jyb3dzZXIDAyNtYV9kZXZpY2VfX29uX25vdGlmaWNhdGlvbl91bmxvY2tlZAD5RxRtYV9tYWxsb2NfZW1zY3JpcHRlbgD/RxJtYV9mcmVlX2Vtc2NyaXB0ZW4A/kcubWFfZGV2aWNlX3Byb2Nlc3NfcGNtX2ZyYW1lc19jYXB0dXJlX193ZWJhdWRpbwD7Ry9tYV9kZXZpY2VfcHJvY2Vzc19wY21fZnJhbWVzX3BsYXliYWNrX193ZWJhdWRpbwD9RxlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQAIc2V0VGhyZXcAlwEXX2Vtc2NyaXB0ZW5fdGVtcHJldF9zZXQAbBlfZW1zY3JpcHRlbl9zdGFja19yZXN0b3JlAG4XX2Vtc2NyaXB0ZW5fc3RhY2tfYWxsb2MAbxxlbXNjcmlwdGVuX3N0YWNrX2dldF9jdXJyZW50AHANX19zdGFydF9lbV9qcwMEDF9fc3RvcF9lbV9qcwMFDl9fc3RhcnRfZW1fYXNtAwYNX19zdG9wX2VtX2FzbQMHDGR5bkNhbGxfaWlqaQCiWgxkeW5DYWxsX2ppamkAo1oNZHluQ2FsbF9paWlqaQCkWgtkeW5DYWxsX2lpagClWgtkeW5DYWxsX2ppaQCmWg5keW5DYWxsX3ZpaWppaQCnWg5keW5DYWxsX2lpaWlpagCoWg9keW5DYWxsX2lpaWlpamoAqVoQZHluQ2FsbF9paWlpaWlqagCqWgmMZQEAQQELwzKJUIpQuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B3wHgAeIB4wHkAeUB5gHnAegB6gHrAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB+gH7AfwB/QH+Af8BgAKBAoICgwKEAoUChgKHAogCiQKLAowCjQKOAo8CkAKRApICkwKUApUClgKXApgCmQKaApsCnAKdAp4CnwKgAqECogKjAqQCpQKmAqcCqAKpAqsCrAKtAq4CrwKwArECsgKzArQCtQK2ArcCuAK5AroCuwK8Ar0CvgK/AsECwgLDAsQCxQLGAscCyALJAsoCywLMAs0CzgLPAtAC0QLSAtMC1ALVAtYC1wLZAtoC3ALdAt4C3wLgAuEC4gLjAuQC5QLmAucC6ALpAuoC6wLsAu0C7wLwAvIC8wL0AvUC9gL3AvgC+QL6AvsC/AL9Av4CgAOBA4MDhAOFA4YDhwOIA4kDigOLA4wDjQOOA48DkAORA5IDkwOUA5UDlgOXA5gDmQObA5wDnQOeA58DoQOiA6MDpAOlA6YDpwOpA6oDqwOsA60DrgOvA7ADsQOyA7MDtAO1A7YDtwO4A7kDugO7A7wDvQO+A78DwAPBA8IDwwPEA8UDxgPHA8gDyQPKA8sDzAPNA84DzwPQA9ED0gPTA9QD1gPXA9gD2gPbA9wD3QPeA98D4APhA+ID4wPkA+UD5gPnA+gD6QPqA+sD7APtA+4D7wPwA/ED8gPzA/QD9QP2A/cD+AP5A/sD/AP+A/8DgASBBIIEgwSEBIUEhgSHBIgEiQSLBIwEjQSOBI8EkASRBJIEkwSUBJUElgSXBJgEmQSaBJsEnASdBJ4EnwSgBKEEogSjBKQEpQSmBKcEqASpBKoEqwSsBK0ErgSvBLAEsQSyBLMEtAS1BLcEuAS5BLoEuwS8BL0EvgS/BMEEwgTDBMQExQTGBMcEyATJBMoEywTMBM0EzgTPBNAE0QTSBNQE1QTWBNcE2ATZBNoE2wTdBN4E4AThBOIE4wTkBOUE5gTnBOgE6QTqBOsE7ATtBO4E7wTwBPEE8gTzBPQE9QT2BPcE+AT5BPoE+wT9BP4E/wSABYEFggWDBYQFhQWGBYcFiAWJBYoFiwWMBY0FjgWPBZAFkQWSBZMFlAWVBZYFlwWYBZkFmgWbBZwFnQWeBZ8FoAWhBaIFowWkBaUFpgWnBagFqQWqBasFrAWtBa4FrwWwBbEFsgWzBbQFtQW2BbcFuAW5BboFuwW8Bb0FvgW/BcAFwQXCBcMFxAXFBcYFxwXIBckFygXMBc0FzgXPBdAF0QXSBdMF1AXVBdYF1wXYBdkF2gXbBdwF3QXeBd8F4AXhBeIF4wXkBeUF5gX1BfwFiAabBv4R/xGA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sxmiQM4UzxTQFNEU0hTTFLkUuhS7FLwUtRm9FL4Uthm3GbgZuRm6GbsZwRnDGcQZxRnGGccZyhnUGdUZ1hnCGdcZ2BnZGdoZ2xnfGecZ4RniGeMZ5hnkGeUZ4BneGesZ7BntGe4Z7xmyObM5vSKBD/8O/g7oGYsXjBfpGeoZ9xn4GfkZrxeDGro1sBf6GfsZ/Bn2GfIZuTXzGf0Zqhr+Gf8ZgBqBGoIajRqPGpAakRqSGpMalBqVGqwarRquGq8asBq6GrEashqlGqAanhqiGqkaqxqzGrQatRq2GrcauBq5Gr8awBrBGv8WxBq7GsIagBfHGsgayRrKGsYawxr9Fv4WvBrMGs0azhrPGtIayxrQGtEa1BrWGtca2BrZGtoa2xrcGt0a3hrfGuwa4RriGuMa5hrnGuga6RrwGvUa9hr3Gu8a8RryGvMa+BrtGvka9BqEG4cbiBuLG44bjxuGG5IbiRuNG58boBuhG6IbpxudG6MbpBulG6YbqhurG6wbrRuvGKgbqRuzG7QbtRu2G64btxu4G7kbuxu8G70buhu+G78bwBvBG8MbwhvHG8YbyBvJG8ob1Bv0OPU49jjMG80bzhvPG9Ab0RvSG8QbxRvTG9gb2RvaG9sb3RvWG9cb5RrcG/Ub9xveG/gb+xv9G/4b/xuAHIsc5RvnG+gb6RvwG/Ib9BvxG4EcghyDHIQc7xutIvMbhRyWOZQ5+huYHJkcmhybHJwcnxyMHI0clByOHJ0clRyWHJccnhylHKYcpxyoHKkcnizlGOYY5xifLKAcoRyiHKMcpByuHK8csByxHLIcqhyrHKwcrRzFHMwczRzOHM8c0BzRHMYcxxzIHMkcyhzLHLgcuhy7HLwcvRzYHL4cvxzAHMEcwhzDHMQc0hzTHLMctBzUHLUc1Ry3HLYc1hzXHNwc3RzeHN8c4BzZHNoc2xzjHOQc5RzmHJoR6BzhHOcckhX2HPcc+BzxHPkc9Bz1HJcVmBXtHPwc/Rz+HP8c+hz7HO4c7xzwHPIc6RzrHIEdgh2DHYQdhh2AHYUdkB2RHZIdkx2UHZYdlx2YHZkdmh2bHZwdnR2HHYgdiR2KHYsdjB2NHY8doR2iHaMdpB2mHaAdpR2oHakdqh2rHawdrx2nHa0drh24Hb8duh27Hbwdvh2uEbARwB3BHcIdtx25HbAdvR20HbYdtR3EHcUdxh3HHckdwx3IHZMQlBDSHdMd1B3VHdYd2B3KHdcd0R3eHd8d4B3hHeId5B3ZHdod3R3bHdwd4x2TFZQVlRWWFaoZ5x3oHekd6h3sHeUd5h3rHfsdgx79Hf4d/x2CHoEehB6FHvod/B3yHYAe+B35HZYelx6YHpkenB6VHpoemx6fHqAeoR6iHvcPox6dHp4erx6xHrIesx60Hqseph6lHrUeqB6tHpYZmRm7FbYetx6qHq4euB7KHssezB7NHs4e0R7FHsYexx7IHskezx7QHqke3R7gHuEe4h7jHuYetTbcHrY26hXrFewVuTa7Nr02vjbYHtceuDbaHtse5B7lHr82uja8Nuoe6x7sHu0e8R7BJu8e6B7wHvUe9h73Hvge+h7yHvke+x79Hv4e/x6AH64fgR+CH4MfhR+GH4cfiB+JH4wfjR+OH48fmB+ZH5ofmx+cH50fnh+fH6AfoR+iH6MfpB+lH6Yfpx+BELYUtxS4FIAQzx/uH+8f8B/xH/If7B/tH9Ig1yDYINog3CDdIN8g4CDiIOMg5CDoIOkg6iDvIPwglSHwIfYh9yH4If8h4CHjIeYh5yH5Ifoh6CHqIewh7iH7Iekh/CH9If4h6yHtIe8hjxWQFZEV9hSEIoAigSKCIoMihSL/FIAVgRWCFYYigxXzFPQU9RSHIoQVhRWGFYcViCKIFYwVjRWOFYkiiRWKFYsViiL3FPgU+RSLIvoU+xT8FP0UjCL+FI4ijyKQIpEiliKNIpIikyKUIpUimyKcIp0iniKfIpcimCKaIrAisSKyIrMivgq7Iq8ioiKkIqAipiKoIqoirCKrIqMipSK0IrUioSKuIqciqSK2IsQixSLGIsciyCLKIr4ivCK/IsMiwiLJIuki6iLrIuwi7SLcItQi5SLoIssiziLNIu4i7yLwIvEi8iLzItci1SLhIuMi2iLiIuQi9CL1Itki1iLbIpUjliOXI5gjmSOiI4UjhiOHI4gjjyOQI5EjkiOaI5sjkyOUI5wjnSOeI58jiyONI6AjjCOOI6EjpCOlI6YjpyOrI6MjqCOpI6ojrCOuI68jsCOxI7ojsiO0I7UjtyO7I7wjviO/I8AjwSPHI8IjwyPEI8UjyCPJI80jziPPI9Aj2yPVI8ojjhbSI9MjyyPMI9QjihaLFowWjRbcI+Aj4SPiI+Mj5SPdI98j5CPpI+oj6yPsI+4j5iPoI+0j8SPyI/Mj9CP2I+8j8CP1I/ojgST8I/0j/iOAJP8j+yP4I/kjhCSFJIYkhySJJIIkgySIJJIkkyTtCK8ksCSxJNkK7CT3CLMkgQmTCbQklSTgC7wk4QviC8Mk0yTUJOML2STaJOQL8BHxEfIR8xHuEfQR7RG3JbgluSW6JcAl8ySFJYYlhyWIJYkliiWLJYwljSWOJY8lkCWRJZIlkyWUJZUlliWXJZglmSWaJYAlgSWCJYMlhCW7JfQkvCX2JPck9SS9Jb4l+CTwJPEk8iT7JPwk/ST+JP8k+ST6JJslnCWjJaQlpSWmJaclqCWpJaolqyWsJa0lriWvJbAlsSWyJZ0lniWhJaIlnyWgJb8lsyW0JbUltiXBJcMlxCXFJcYl2iXHJc0lziXsFs8l0CXRJdIl0yXUJdUl1iXbJdUa3SWhMd4l3yXgJeEl4iWiMaMxpDGlMaYxpzGoMakxqjGrMeMl5iXnJegl6SXjH5ImkyaUJpUmlibhH5Em2B/VH40XjhfQH9Ef6B+NJo4mjyaQJuQf5R/mH+cf6R/iH7Qmsya1JpcmwSy7LKMmpSaxJrImrSauJq8mpCamJqcm9Rj2GPcY+Bj5GO4Y8BjxGPIY8xj0GOoYyhXLFcwVtia3JrgmuSa6Jr8m4BjsK9wV3RW7JrwmvibGJscmyCbJJswmxSbKJssm0CbRJtIm0ybYJvkmzybVJtYmzSbOJtcm2ibbJtwm3SbfJtkm3ibrJuwm7SbuJu8m8CbxJvIm9Cb1JvYm/Cb9Jv4moxb/JvompBawFrEWshazFoAntBasFq0WrhavFoEngieDJ6gWqRaqFqsWhCeFJ4YnnxagFqEWohaHJ4gniSelFqYWpxaKJ40njiePJ5AnkSeTJ4snjCeSJ5QnlSeWJ5cnmCeZJ5onmyedJ58noCenJ6gnqSeqJ6wnpiekJ6UnqyewJ7EnsifUJrMnryetJ64ntCe1J7YntyfuHrwnuCe5J8knxyfGJ8gnzCfPJ80n0CfRJ9In0yf9J/wn9if1J/Qn8yf3J/gn+ifyJ98o4CjhKOIo5CjjKNko2ijbKN0o3CjeKP8ogymEKYUphinyKOgo6Sj6KPso6ijvKIcp/SjwKPgoiCmJKfEogSmKKYsp+Sj+KI4pjymQKZEp9hapKaopqymsKa0primgKaEpoimkKaUppimnKb4pwinDKcQpxSnTKZgplynGKccplSmWKZMpyCmvKbIptSm3KbopvCnJKbspvSnKKZQpyynMKc0pzinPKbQpsSnQKdEp0im2Kbkp9xb4FvkW+hb7FvwW1CnVKdYp1ynnKdgp2SnaKeMp5CnlKeYpvynBKe8p8CnxKfIp9SnuKfMp9Cn2Kfcp+Cn5Kfop+yn9KYAqgSqCKoMqhCqFKoYqhyqIKokqiiqLKowqjSqOKpQqlSqWKpcqmCqZKpoqmyqdKp8qoCqiKqMqpCqlKqYqpyqoKqkqqiqrKqwqrSquKq8qsCqxKrIqsyq0KrUqtiq3KrgquSq6KrsqvCq9Kr4qvyrAKsEqwirDKsQqxSrGKscqyCrJKsoqyyrMKs0qzirPKtAq0SrSKtMq1CrVKtYq1yrYKtkq2ir6DfsN/A37Kvwq/Sr+Kv8q3SrsKuoq6yr5KvEq8irzKvQq9Sr2KuEq4yrlKvcq7SrvKt8qgCuBK4Ir5CqDK4QrhSv6KoYrhyviKogr4Cr4Ku4q6SqJK/AqjSuOK48rkCuKK4wrkSuSK5MrlCuVK5YrlyubK5wrnSueK6ArlhaXFpgrmiuZK58royulK6YrpyuoK7ArsSuqK6srrCutK7Yrtyu4K7kruyuzK7UrtCu6K78rwCvBK8Irwyu+K70rvCvHK8grySvKK80rxivLK8wrzivPK9Ar0SupK9Ur0ivTK9QrsiuuK68r2CvZK9orlRbbK9cr1iuSFpMWlBaYFrMV5iu2FbcVuBXlK50ZuRW6FbUVtBWeGZ8ZoBmhGccVyBXJFZUZpyyoLKksqizZFa0soSyjLKIspCylLKssrCymLNUV1hXXFdgVriywLLEssiyzLLkstCy1LLYstyy4LJobmxucG7wsvSywJr4svyzALIQmxCzFLMYsiCbJLO8l8SXyJf8lgCaBJoImgyb6Jf0lwiz+JccsyCz7JYUmhiaHJosm/CWJJoomriSQLZEtki2TLZktvSSULZUtli2XLZgtxEvcTc1MiS6VTaBN9033S+NLjS7wLogo4S+XMLYw6jCFMfEw6i2FFM4tzy3QLdEt0i3JLYcUhhSLLo4uoy66LuYulS6WLpcumy6cLp0uni6YLp8uoS6iLpkuky6ULrEusi6zLrUuti64Lrku1y7YLtku2i7bLtwu3S7eLt8u4C7hLuIu4y7kLuUu5y7oLuku6i7rLuwu7S7uLu8u8y6PL5ovziijL78v0C+OL5Evli+oL6kvqi+rL6wvrS+uL68vsC+xL7QvtS+2L7cvuC+5L7ovuy+8L70vzC/OL4YwhzCIMIkwijCLMIwwjTCOMI8wkDCSMJEwkzCUMJUwljCmMKgwqjCsMNMw1TDWMNcw2DDZMNow2zDcMN0w3jDfMP0w/jD/MIAxgTGCMYMxhDGNHosxjDGNMY4xkTGIMacKjzGQMYkeiTGKMY8ekB6RHpIekx6HHooeix6UMZUxljGJF5gxkjGXMY8XkBeRF5IXkxeUF5UXlhebMZwxnTGhF58xmjGeMaIXoxekF6UXphenF6wxrTGuMa8xsDGxMbkxujG7MbwxvTG4Mb4xvzHAMcEx3zG3McIxsRTDMcQxxTHGMccxtTHIMckxyjHLMcwxtjHNMc4xzzHhMeIx4zHkMeUx5jHoMekx7DHuMe8x8DHxMfIx8zH0MfUx9jH3Mfgx+TH6Mfsx/DH9Mf4x/zGAMoIygzKEMoUyxRWQMoYyhzKIMooyizKMMo0yjjKPMsIVwxXEFZoZxhWRMpIykzKUMoQXnzKVMpYylzKZMpoymzKcMp0ynjKBF4IXgxeMGYUXoDKhMqIyozK0F64ypDKlMqYyqDKpMqoyqzKsMq0ysReyF7MXihm1F68ysDKxMrIysRW9MrMytDK1MrcyuDK5MroyuzK8Mq0VrhWvFbAVohmyFaQZvjK/MsAywTK5F8kywjLDMroXxDK8F8UyvRfGMscyyDK2F7cXuBeIGbsXyjLLMswyzTLOMuAyzzLQMtEy0jLTMtQy1TLWMtcy2DLZMtoy2zLcMt0y3jLfMp4UnxSgFOoP6w+0MLUwohCjEKQQpRCmELIwszCfEKAQoRCwMLEwlxCYEK4wrzCZEJoQmxCcEJ4Q4TLnMugy6TLqMusy7TLuMvAy8TLyMvQy9jLiMvcy+DL5Mvoy+zL8Mv0y/jL/MoAzgTOHNIIzgzOINIQzhTOGM4cziDOJM4ozizOMM5URrBGqEasRqBGpEZEzkjOTM5QzlTOWM5czmDPIM8kzyjPLM8wzxDPDM8AzvzPLGM0zzjPPM9Az0TPFM8Ez0jPTM9Qz5TLVM9Yz1zPYM8czuzPZM8IzqTPlM+Yz5zOtM+MznTOkM5szjzOcM5ozrjPaM68znjOwM+EzoDOxM+gzszOQM6cztDPdM98z3jPgM+kz6jO3M6gzuDOhM+szujPbM+IzvDOfM70zmTOqM6szrDOlM40zojOyM7UztjO5M44zozPsM+4z7zPwM/Ez8jPzM/Uz9zPtM/gz+TP6M/sz/DP9M/4z/zOANIE0gjSDNIQ0hTSGNIo0izShNKI0jDSjNKc0qDSpNKo0qzSaNJE0kjSZNKU0pjSsNI00lzStNJM0lTSuNK80jzScNLA0njSgNLE0sjSzNJ00tDSWNLU0tjSONJg0lDS3NLg0kDSfNKQ04zKJNLk0uzS8NL00vjS/NPs8/DzANMI0wzTWFsQ0ujTFNMY0xzTINMk0yjTLNMw0zTTONM800DTRNNI00zThNOI04zTkNOc04DTfNN402jSrF9g0iBqcGuU05jSaGp0a7zTtNO406jTpNOs08DTxNOw08jTzNPQ09jT3NPg0+TT6NPw0/zSANYE1gjWDNYU1hjWINYk1jDWNNY41jzWQNZE1kjWTNZQ1lTWWNZc1mDWZNZo1mzWcNZ01njWfNaA1oTWiNaM1pDWmNac1qDWpNao1qzWbGqgXqReqF/kOgA+3Nbg1tTW0NbY1uzWtF64XhRqGGocavjXWNcE1wjXDNdU11zXYNdk12jXbNdw13TW9NcA1xDXINck1yjXMNc01zjXPNdA10TXeNeA14TXiNeM15TXfNeQ17TXuNe818DXxNfI1pRSoFKkUqhSrFPQ1rBSwFKcUtRSzFLQUshT1Nfc1+DX5NbQ2+jX7Nfw1/TX/NYA2hTaGNoc2iDaJNoo2izaMNo02jjaPNpA2kTaSNpM2lDaVNpY2lzaYNpk2mjabNpw2nTaeNp82oDahNqI2ozakNqU2pjb2Nac2yArJCv41qDapNsI2wzbENsU2xjbRNsc2yDbJNso2yzbMNs02zjbPNtA20jbTNtQ21TbWNoApgingNuE24jbjNuQ25zbaNt823TbbNtw25TbmNt42nQrsNu027jbvNvA26zbpNuo28TbyNvM29Db5NvU29jb3Nvg2+zb/NoA3gTfrFoY3gjeDN4Q35xboFukW6haOGY8Z7RXuFe8V8BXxFYc3oDehN6I38xX0FYk3ijeLN4w3kTeQN443iDePN5Y3lzeYN5k3mjecN5M3kjeUN5U3mzedN543nzekN6U3pjenN6g3qTeqN6w3rjevN7E3tDe1N7Y3tze4N7s3gTiLOIw4jTiOOI84kDiROL83vjfAN8E3kjiTOJQ4lTiWOJc4mDiaOJs4nDidOJ44nzigOKE4ojijOKQ41wmlOKY4pzjjFOQU5RTmFK8Z5xTSN9031DfVN9Y33jfYN9k32jfbN9w31zfTN8w3zTfON8830DfRN/g3+Tf6N/s3/DfzN/Q39Tf2N/c3szi0OLU4tji3OLg4uTi6OLs4vDi9OL84wDjBOMI4wzjEOMU4xjjHOPIVyzjIOMk4yjiKJM44zzjQONE40jjTONQ41TiLJIwkjSTWONc42DjZONo43jjbONw43TjgOOE45TjmOOc46DjpOO444jjqOOM45DjrOOw47TjiFuMW5BblFu845hbFFsYWxxbwOKM3+BX5FfoV9hX3FfUV8TjyOPM4yxv5OPc4+Dj6OPs4jTmOOY85kDmTOYw5iTmFOYo5gzmCOYQ5izmROYY5hzmIOZI5wDbnFegV6RXZHocciByKHPwblTm3IrgiuSK6Ivo2lzmYOZk5mjmlOak5qjmrOaw5rTmxOZs5rjmcOZ45ojmgOac5pDmvObA5nTmoOaM5oTmfOaY5tzm4Obk5ujnCObU5tjm7Obw5vTm+Ob85wDnBOcM5xDnJOco5xznSHqI6ozqkOtMe1B7VHss50DnROdI50zmlOtQ51jnfOeA54TniOeM56jnrOew57TnuOe858DnxOfI58zn0OfU59jn3Ofg5+Tn7Ofw5/jn/OYc6iDqJOoo6izqMOrY6tzq4Ork6ujq7OsU8rTqrOq46yBSvOrE6sjqzOrU6tDrqOvk67zrwOvE6+Dr6Ovs6/DrnOu46yzrMOr46yTq8Or06vzrCOsM6xTrHOs460DrTOtc62TrbOt063zrhOvI68zrlOs860TrGOsg6yjr0OvU69jrWOtg62jrcOt464DriOvc65jqAO4E7gjuDO4w7jzuSO/06kzuEO407kDuFO4Y7/jqHO4g7iTuKO5E7jjuLO/86jhqXO+Em4iaYO5k7mjubO+Am4ybkJuUmlxqgO6E7ojulO507nDueO6M7pDufO6k7qjurO647pjunO6w7rTuoO7I7szu0O7c7rzuwO7U7tjuxO5Q7wxTEFJU7ljv1Ie8RyTvLO8w7zTvOO887uju/O8A7wTvCO8M7xDvFO8Y7xzvcO9073jvfO+A74jvQO9E70jvTO9Q71TvWO9c72DvZO9o72zvhO6M8pDylPKY8pzygPKE8ojyqPKs8rDytPLA8qTyuPK88sTyyPLM8tDyLPLU8jjyQPJE8kjyTPJQ8lTyWPJc8mDyZPLc8uDy5PLo8uzy8PL08nDydPL48vzzAPME8wjzzIcM8xDzxIfIh9CGHPIg8iTyKPIw8mjybPIQ2qjarNqw2rTauNq82sDaxNrI2szbNPNM8zzzQPNE80jzUPNU8zDzOPMg8xzzLPMk8xjzYPNY81zzbPNw83TzePOA8uDvZPN882jy5O8UUxhTqPOs87DztPO486TznPOg85jzSFtEW0xbUFtUW7zzBNKc9qD3XFvI88zz0PPU8+Tz9PPE88Dz3PPg8gD2BPYI9gz2FPf88/jyEPd0W3hbfFuAWhj36PP8V4Ra1FrYWtxa4Foc9uRa6Fog9iT2KPYs99RaQPYw9jT3yFvMW9BaRPZY9lz2YPfY8mT2TPZU9kj2HFogWiRb+FZo9gBb7FfwV/RWbPdgW2RbaFtsWnD3cFsAWwRbCFsMWnT3EFo8WkBaRFp49yxbMFs0Wnz27FrwWvRa+FqA9vxaBFqI9gxaEFoUWoT2GFoIW7RbuFu8W8BajPfEWjz6SPpM+kD6RPog+iT6KPoE+gj6DPvo9+z38PeQ98z30Pak9vj2/PcA9wT3CPcM9qj2rPaw9rT2uPa89uD25Pbo9uz28Pb09tj23PbI9sz20PbU9sD2xPcs9oj6jPs49oD6hPpo+mz6YPpk+lj6XPpQ+lT6NPo4+iz6MPoY+hz6EPoU+/z2APv09/j34Pfk99j33PfE98j3vPfA97T3uPes97D3pPeo95z3oPeU95j3hPeI94z3ePd894D3bPdw93T3YPdk92j3VPdY91z3SPdM91D3PPdA90T3KPcw9zT2kPaU9pj2kPqU+pj6oPqk+qj6sPqc+qz6eF58XoBeGF4cXiBeYF5kXmheKF7Q5nBedF5cXgg+DD4QPhQ+tPq4+rz6wPrI+sT7xK+EY4hjhK+Ir4yujCv04/jj/OIA5gTn8OKAszRXOFc8V0BXRFdIV0xWFLN8V4BXaFeU80QrSCrwKvz7APrM+wT7DPsQ+xT7GPsc+yj65PrQ+tT62Prc+uD66Prw+vj7IPsk+uz69PsI+oRSiFKMUpBTLPs4+zz7QPtE+0j7DF9Q+xBfXPtg+6z7sPu0+7j7vPvA+7D/zPs4X7z/qPug+/D79Pv4+/z74PoA/8j7wP4E/+iL7Ivwi/SL2D4Qj/iKAI/0P/g+BI4Ij9A/EHoYQhxD1D4UQiRCDEIQQghD0PvU+9j73Pvo++T7ZPts+3D7dPt4+3z7hPuI+yheDP4Q/hT+GP4c/gj+JP4o/iz+MP40/iD+PP5A/kT+SP5M/jj+UP5U/lj+XP5g/mT+aP5s/nz+gP6E/oj+lP6Y/qD+pP6o/qz+sP68/pz+tP64/tT+2P7c/uD+5P7Q/+D/5P8E/wz/EP8U/xj/AP8I/xz/IP9I/0z/QP9E/zT/OP88/yT/KP8s/zD/VP9s/1z/YP9k/2j/cP9Y/1D/eP98/4D/hP+I/3T/lP+Y/5z/oP+o/5D/pP+M/+j+EQIVAhkCHQIhAgkD/P/w//j/7P4BAgUD0P/U/9j/NF/c/vheBGIIYgxjCF41AiUDFF8YXzxfQF9EXkEDiF+MX5BePQNUX1hfXF5JA0hfTF9QXk0DlF/wX/Rf+F/8XmUCUQIAYzxHQEdER0hHYEeYX5xfoF+kXm0DqF+sXlUCWQJdAmEDsF+0X7hecQPIX8xf0F51AxxfIF8kXnkDvF/AX8RefQL8XwBfBF6BA2BfZF9oX2xehQNwXikCLQIxAkUCEGIUYhhjVPtY+o0CkQKVAzRSmQI4P1grXCvMOxQrHCsJBw0HEQYtBxUHGQcdBlEGVQchByUGdQZ5BykHLQcxBzUHOQc9B0EGEQYZBiEGMQY5BkUGWQZpBn0GgQaFBo0GkQaVBp0GDErFBskGzQbRBtUH1RvBG8Ub5RvpG+0b/RoBHgUeCR4NHhUeGR4dHi0ePR5FHkkeTR5RHlUeWR55HoUeiR6NHpEelR6ZHqEerR65HsEe2R7dHuEe5R7pH4EfrR/NH9Ef1R/ZH90f4R91I3kjwSPFI8kjzSPRIlEqVSpZKl0qYSo9KkEqRSpJKk0qKSotKjEqNSo5KqUqlSq5IsEiySLRItki4SLlIuki8SL1IhUmKSY5Jj0mQSbZJuUm7SbxJvUnxSfJJ80n0SfVJnEqdSp5Kn0qgSrVKsEqzStBL0UvSS9NL1UvWS9dL2EvaS9tL3EvdS95L4EvhS+JL5EvmS+hL6UvqS+tL7EvuS/BL8UvyS/NL9Ev1S/ZL+Ev5S/pL+0v8S/1L/kv/S4BMgUyCTINMhEyFTIZMh0yITIlMikyLTIxMjUyOTI9MkEyRTJJMk0zSTNNM1UzXTNlM20zcTN5M4EzhTOJM40zkTOZM50zoTOlM6kzrTOxM7kzvTPBM8UzyTPRM9Uz2TPhM+kz7TPxM/Uz/TIBNgU2CTYNNlk2XTZtNnU2hTaJNo02lTadNqU2tTa5NsE2xTbJNs020TbZNt027TbxN3k3gTeFN4k3jTeRN5k3nTetN7E3tTe5N8E3xTfJN8034TflN+039Tf5NlU6WTpdOmE6ZTppOm06cTp1Onk6fTqBOoU6iTqNOpE6lTqZOp06oTqlOqk6rTqxOrU6uTq9OsE6xTrJOs060TrVOtk63TrhOuU66TrtOvE69Tr5Ov07ATsFOwk7DTsROxU7GTsdOyE7JTspOy07MTs1Ozk7PTtBO0U7STtNO1E7VTtZO107YTtlO2k7bTtxO3U7eTt9O4E7hTuJO407kTuVO5k7nTuhO6U7qTutO7E7tTu5O707wTvFO8k7zTvRO9U72TvdO+E75TvpO+078Tv1O/k7/ToBPgU+CT4NPhE+FT4ZPh0+IT4lPik+LT4xPjU+OT49PkE+RT5JPk0+UT5VPlk+XT5hPmU+aT5tPnE+dT55Pn0+gT6FPok/dT95PpgfxUPJQ81D0UPZQ91D4UPlQ/lD/UIFRglGDUZgHkVKNUpJS+FH5UftRsQaTUpRSlVKWUpdSnFGdUZ5Rn1HwUKRSpVmnWYRYmVmaWZtZnFmdWZ5Zn1mgWaFZolnvWPBY8Vj0WPdY+Fj7WPxY/ljCWMNYxFjFWMZYx1jIWLtYvFi9WL5Yv1jAWMFYqlKpWYxZjVmOWY9ZkFmRWZJZk1mUWZVZllmXWZhZhFmFWYZZh1mIWYlZilmLWedY6FjpWOpY61jsWO1Y7ljUWNVY11jZWNpY21jcWN5Y31jgWOFY4ljjWORY5VjmWMlYyljMWM5Yz1jQWNFY01ipUqtSrFKtUrNStFK1UrZSt1LIUrpYyVLtUv9SglOGU4lTjFOPU5tToFOlU7lYq1O+U8pTzFPOU9BT0lPUU9xT3lPgU7hY4VPpU/JT9FP2U/hThVSHVLdYiFSRVJ9UoVSjVKVUrlSwVKJYo1izVLRUtVS2VLhUulS9VKRYplioWKpYq1isWK1YjliPWMxUzVTOVM9U0VTTVNZUkFiSWJRYlliYWJlYmliLWIxY41SHWIlY8lS2WIRVhVWGVYdViFWJVYtVjFWNVbVYjlWPVZBVkVWSVZNVlFWVVZZVtFiXVZhVmVWaVZ5Vn1WgVaFVolWzWKNVpFWlVaZVp1WoValVqlWrVbJYrlXiVbFY51WVVrBYo1a8Vq9YvVbWVoVY11bYVtlWg1jaVttW3FbHWchZ8Fn1WfFZ8ln2WYtah1qGWvNZjFqKWoNa9Fn9Wf9ZgVoKztZm8llHABDGWRC5ARC2BxDOCBDTGhDqGhCUGxDVKBChLRDXLRDrPxCaQBCASxCpSxChTBCwTBC1TBDLTBDMTBCETRCAThCjTxDQTwsGAEGAiR4LEAAgAEQAAAAAAAAAEBC6TwsQACAARAAAAAAAAABwELpPC+0CAwJ/AnwCfgJAAkACQCAAEEJB/w9xIgFEAAAAAAAAkDwQQiICa0QAAAAAAACAQBBCIAJrTw0AIAEhAgwBCwJAIAEgAk8NACAARAAAAAAAAPA/oA8LQQAhAiABRAAAAAAAAJBAEEJJDQBEAAAAAAAAAAAhAyAAvSIFQoCAgICAgIB4UQ0BAkAgAUQAAAAAAADwfxBCSQ0AIABEAAAAAAAA8D+gDwsCQCAFQn9VDQBBABA/DwtBABBADwtBACsDgIAQIACiQQArA4iAECIDoCIEIAOhIgNBACsDmIAQoiADQQArA5CAEKIgAKCgIgAgAKIiAyADoiAAQQArA7iAEKJBACsDsIAQoKIgAyAAQQArA6iAEKJBACsDoIAQoKIgBL0iBadBBHRB8A9xIgFB8IAQaisDACAAoKCgIQAgAUH4gBBqKQMAIAVCLYZ8IQYCQCACDQAgACAGIAUQQw8LIAa/IgMgAKIgA6AhAwsgAwsJACAAvUI0iKcLxQEBA3wCQCACQoCAgIAIg0IAUg0AIAFCgICAgICAgPhAfL8iAyAAoiADoEQAAAAAAAAAf6IPCwJAIAFCgICAgICAgPA/fL8iAyAAoiIEIAOgIgBEAAAAAAAA8D9jRQ0AEEREAAAAAAAAEACiEEVEAAAAAAAAAAAgAEQAAAAAAADwP6AiBSAEIAMgAKGgIABEAAAAAAAA8D8gBaGgoKBEAAAAAAAA8L+gIgAgAEQAAAAAAAAAAGEbIQALIABEAAAAAAAAEACiCxwBAX8jAEEQayIAQoCAgICAgIAINwMIIAArAwgLDAAjAEEQayAAOQMICwQAQQELAgAL8gICA38BfgJAIAJFDQAgACABOgAAIAAgAmoiA0F/aiABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBfWogAToAACADQX5qIAE6AAAgAkEHSQ0AIAAgAToAAyADQXxqIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIFayICQSBJDQAgAa1CgYCAgBB+IQYgAyAFaiEBA0AgASAGNwMYIAEgBjcDECABIAY3AwggASAGNwMAIAFBIGohASACQWBqIgJBH0sNAAsLIAALXAEBfyAAIAAoAkgiAUF/aiABcjYCSAJAIAAoAgAiAUEIcUUNACAAIAFBIHI2AgBBfw8LIABCADcCBCAAIAAoAiwiATYCHCAAIAE2AhQgACABIAAoAjBqNgIQQQALkAEBA38jAEEQayICJAAgAiABOgAPAkACQCAAKAIQIgMNAEF/IQMgABBJDQEgACgCECEDCwJAIAAoAhQiBCADRg0AIAAoAlAgAUH/AXEiA0YNACAAIARBAWo2AhQgBCABOgAADAELQX8hAyAAIAJBD2pBASAAKAIkEQQAQQFHDQAgAi0ADyEDCyACQRBqJAAgAwuOBAEDfwJAIAJBgARJDQAgACABIAIQMSAADwsgACACaiEDAkACQCABIABzQQNxDQACQAJAIABBA3ENACAAIQIMAQsCQCACDQAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIg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QdAAaiADIApCAEKAgICAgIDAu8AAEGogBUHYAGopAwAiCkIwiKdBiH9qIQggBSkDUCEDCyAKQv///////z+DQoCAgICAgMAAhCELIAlC////////P4NCgICAgICAwACEIQkCQCAHIAhMDQADQAJAAkAgCSALfSAEIANUrX0iCkIAUw0AAkAgCiAEIAN9IgSEQgBSDQAgBUEgaiABIAJCAEIAEGogBUEoaikDACECIAUpAyAhBAwFCyAKQgGGIARCP4iEIQkMAQsgCUIBhiAEQj+IhCEJCyAEQgGGIQQgB0F/aiIHIAhKDQALIAghBwsCQAJAIAkgC30gBCADVK19IgpCAFkNACAJIQoMAQsgCiAEIAN9IgSEQgBSDQAgBUEwaiABIAJCAEIAEGogBUE4aikDACECIAUpAzAhBAwBCwJAIApC////////P1YNAANAIARCP4ghAyAHQX9qIQcgBEIBhiEEIAMgCkIBhoQiCkKAgICAgIDAAFQNAAsLIAZBgIACcSEIAkAgB0EASg0AIAVBwABqIAQgCkL///////8/gyAHQfgAaiAIcq1CMIaEQgBCgICAgICAwMM/EGogBUHIAGopAwAhAiAFKQNAIQQMAQsgCkL///////8/gyAHIAhyrUIwhoQhAgsgACAENwMAIAAgAjcDCCAFQYABaiQACwcAPwBBEHQLUQECf0EAKALAwB0iASAAQQdqQXhxIgJqIQACQAJAAkAgAkUNACAAIAFNDQELIAAQXE0NASAAEDMNAQsQPkEwNgIAQX8PC0EAIAA2AsDAHSABC9UiAQt/IwBBEGsiASQAAkACQAJAAkACQAJAAkACQAJAAkACQCAAQfQBSw0AAkBBACgChIkeIgJBECAAQQtqQfgDcSAAQQtJGyIDQQN2IgR2IgBBA3FFDQACQAJAIABBf3NBAXEgBGoiA0EDdCIEQayJHmoiACAEQbSJHmooAgAiBCgCCCIFRw0AQQAgAkF+IAN3cTYChIkeDAELIAUgADYCDCAAIAU2AggLIARBCGohACAEIANBA3QiA0EDcjYCBCAEIANqIgQgBCgCBEEBcjYCBAwLCyADQQAoAoyJHiIGTQ0BAkAgAEUNAAJAAkAgACAEdEECIAR0IgBBACAAa3JxaCIEQQN0IgBBrIkeaiIFIABBtIkeaigCACIAKAIIIgdHDQBBACAC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ASAANgIMIAAgAzYCDCAAIAE2AggPC0EfIQMCQCABQf///wdLDQAgAUEmIAFBCHZnIgNrdkEBcSADQQF0a0E+aiEDCyAAIAM2AhwgAEIANwIQIANBAnRBtIseaiEEAkACQAJAQQAoAoiJHiIFQQEgA3QiAnENAEEAIAUgAnI2AoiJHiAEIAA2AgAgACAENgIYDAELIAFBAEEZIANBAXZrIANBH0YbdCEDIAQoAgAhBQNAIAUiBCgCBEF4cSABRg0CIANBHXYhBSADQQF0IQMgBCAFQQRxakEQaiICKAIAIgUNAAsgAiAANgIAIAAgBDYCGAsgACAANgIMIAAgADYCCA8LIAQoAggiASAANgIMIAQgADYCCCAAQQA2AhggACAENgIMIAAgATYCCAsLYwIBfwF+AkACQCAADQBBACECDAELIACtIAGtfiIDpyECIAEgAHJBgIAESQ0AQX8gAiADQiCIp0EARxshAgsCQCACEF4iAEUNACAAQXxqLQAAQQNxRQ0AIABBACACEEgaCyAAC+ABAgF/An5BASEEAkAgAEIAUiABQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AURsNACACQgBSIANC////////////AIMiBkKAgICAgIDA//8AViAGQoCAgICAgMD//wBRGw0AAkAgAiAAhCAGIAWEhFBFDQBBAA8LAkAgAyABg0IAUw0AQX8hBCAAIAJUIAEgA1MgASADURsNASAAIAKFIAEgA4WEQgBSDwtBfyEEIAAgAlYgASADVSABIANRGw0AIAAgAoUgASADhYRCAFIhBAsgBAvYAQIBfwJ+QX8hBAJAIABCAFIgAUL///////////8AgyIFQoCAgICAgMD//wBWIAVCgICAgICAwP//AFEbDQAgAkIAUiADQv///////////wCDIgZCgICAgICAwP//AFYgBkKAgICAgIDA//8AURsNAAJAIAIgAIQgBiAFhIRQRQ0AQQAPCwJAIAMgAYNCAFMNACAAIAJUIAEgA1MgASADURsNASAAIAKFIAEgA4WEQgBSDwsgACACViABIANVIAEgA1EbDQAgACAChSABIAOFhEIAUiEECyAEC1MBAX4CQAJAIANBwABxRQ0AIAEgA0FAaq2GIQJCACEBDAELIANFDQAgAUHAACADa62IIAIgA60iBIaEIQIgASAEhiEBCyAAIAE3AwAgACACNwMIC9IQAgV/D34jAEHQAmsiBSQAIARC////////P4MhCiACQv///////z+DIQsgBCAChUKAgICAgICAgIB/gyEMIARCMIinQf//AXEhBgJAAkACQCACQjCIp0H//wFxIgdBgYB+akGCgH5JDQBBACEIIAZBgYB+akGBgH5LDQELAkAgAVAgAkL///////////8AgyINQoCAgICAgMD//wBUIA1CgICAgICAwP//AFEbDQAgAkKAgICAgIAghCEMDAILAkAgA1AgBEL///////////8AgyICQoCAgICAgMD//wBUIAJCgICAgICAwP//AFEbDQAgBEKAgICAgIAghCEMIAMhAQwCCwJAIAEgDUKAgICAgIDA//8AhYRCAFINAAJAIAMgAkKAgICAgIDA//8AhYRQRQ0AQgAhAUKAgICAgIDg//8AIQwMAwsgDEKAgICAgIDA//8AhCEMQgAhAQwCCwJAIAMgAkKAgICAgIDA//8AhYRCAFINAEIAIQEMAgsCQCABIA2EQgBSDQBCgICAgICA4P//ACAMIAMgAoRQGyEMQgAhAQwCCwJAIAMgAoRCAFINACAMQoCAgICAgMD//wCEIQxCACEBDAILQQAhCAJAIA1C////////P1YNACAFQcACaiABIAsgASALIAtQIggbeSAIQQZ0rXynIghBcWoQZ0EQIAhrIQggBUHIAmopAwAhCyAFKQPAAiEBCyACQv///////z9WDQAgBUGwAmogAyAKIAMgCiAKUCIJG3kgCUEGdK18pyIJQXFqEGcgCSAIakFwaiEIIAVBuAJqKQMAIQogBSkDsAIhAwsgBUGgAmogA0IxiCAKQoCAgICAgMAAhCIOQg+GhCICQgBCgICAgLDmvIL1ACACfSIEQgAQayAFQZACakIAIAVBoAJqQQhqKQMAfUIAIARCABBrIAVBgAJqIAUpA5ACQj+IIAVBkAJqQQhqKQMAQgGGhCIEQgAgAkIAEGsgBUHwAWogBEIAQgAgBUGAAmpBCGopAwB9QgAQayAFQeABaiAFKQPwAUI/iCAFQfABakEIaikDAEIBhoQiBEIAIAJCABBrIAVB0AFqIARCAEIAIAVB4AFqQQhqKQMAfUIAEGsgBUHAAWogBSkD0AFCP4ggBUHQAWpBCGopAwBCAYaEIgRCACACQgAQayAFQbABaiAEQgBCACAFQcABakEIaikDAH1CABBrIAVBoAFqIAJCACAFKQOwAUI/iCAFQbABakEIaikDAEIBhoRCf3wiBEIAEGsgBUGQAWogA0IPhkIAIARCABBrIAVB8ABqIARCAEIAIAVBoAFqQQhqKQMAIAUpA6ABIgogBUGQAWpBCGopAwB8IgIgClStfCACQgFWrXx9QgAQayAFQYABakIBIAJ9QgAgBEIAEGsgCCAHIAZraiEGAkACQCAFKQNwIg9CAYYiECAFKQOAAUI/iCAFQYABakEIaikDACIRQgGGhHwiDUKZk398IhJCIIgiAiALQoCAgICAgMAAhCITQgGGIhRCIIgiBH4iFSABQgGGIhZCIIgiCiAFQfAAakEIaikDAEIBhiAPQj+IhCARQj+IfCANIBBUrXwgEiANVK18Qn98Ig9CIIgiDX58IhAgFVStIBAgD0L/////D4MiDyABQj+IIhcgC0IBhoRC/////w+DIgt+fCIRIBBUrXwgDSAEfnwgDyAEfiIVIAsgDX58IhAgFVStQiCGIBBCIIiEfCARIBBCIIZ8IhAgEVStfCAQIBJC/////w+DIhIgC34iFSACIAp+fCIRIBVUrSARIA8gFkL+////D4MiFX58IhggEVStfHwiESAQVK18IBEgEiAEfiIQIBUgDX58IgQgAiALfnwiCyAPIAp+fCINQiCIIAQgEFStIAsgBFStfCANIAtUrXxCIIaEfCIEIBFUrXwgBCAYIAIgFX4iAiASIAp+fCILQiCIIAsgAlStQiCGhHwiAiAYVK0gAiANQiCGfCACVK18fCICIARUrXwiBEL/////////AFYNACAUIBeEIRMgBUHQAGogAiAEIAMgDhBrIAFCMYYgBUHQAGpBCGopAwB9IAUpA1AiAUIAUq19IQogBkH+/wBqIQZCACABfSELDAELIAVB4ABqIAJCAYggBEI/hoQiAiAEQgGIIgQgAyAOEGsgAUIwhiAFQeAAakEIaikDAH0gBSkDYCILQgBSrX0hCiAGQf//AGohBkIAIAt9IQsgASEWCwJAIAZB//8BSA0AIAxCgICAgICAwP//AIQhDEIAIQEMAQsCQAJAIAZBAUgNACAKQgGGIAtCP4iEIQEgBq1CMIYgBEL///////8/g4QhCiALQgGGIQQMAQsCQCAGQY9/Sg0AQgAhAQwCCyAFQcAAaiACIARBASAGaxBpIAVBMGogFiATIAZB8ABqEGcgBUEgaiADIA4gBSkDQCICIAVBwABqQQhqKQMAIgoQayAFQTBqQQhqKQMAIAVBIGpBCGopAwBCAYYgBSkDICIBQj+IhH0gBSkDMCIEIAFCAYYiC1StfSEBIAQgC30hBAsgBUEQaiADIA5CA0IAEGsgBSADIA5CBUIAEGsgCiACIAJCAYMiCyAEfCIEIANWIAEgBCALVK18IgEgDlYgASAOURutfCIDIAJUrXwiAiADIAJCgICAgICAwP//AFQgBCAFKQMQViABIAVBEGpBCGopAwAiAlYgASACURtxrXwiAiADVK18IgMgAiADQoCAgICAgMD//wBUIAQgBSkDAFYgASAFQQhqKQMAIgRWIAEgBFEbca18IgEgAlStfCAMhCEMCyAAIAE3AwAgACAMNwMIIAVB0AJqJAALUwEBfgJAAkAgA0HAAHFFDQAgAiADQUBqrYghAUIAIQIMAQsgA0UNACACQcAAIANrrYYgASADrSIEiIQhASACIASIIQILIAAgATcDACAAIAI3AwgLlAsCBX8PfiMAQeAAayIFJAAgBEL///////8/gyEKIAQgAoVCgICAgICAgICAf4MhCyACQv///////z+DIgxCIIghDSAEQjCIp0H//wFxIQYCQAJAAkAgAkIwiKdB//8BcSIHQYGAfmpBgoB+SQ0AQQAhCCAGQYGAfmpBgYB+Sw0BCwJAIAFQIAJC////////////AIMiDkKAgICAgIDA//8AVCAOQoCAgICAgMD//wBRGw0AIAJCgICAgICAIIQhCwwCCwJAIANQIARC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRGw0AIARCgICAgICAIIQhCyADIQEMAgsCQCABIA5CgICAgICAwP//AIWEQgBSDQACQCADIAKEUEUNAEKAgICAgIDg//8AIQtCACEBDAMLIAtCgICAgICAwP//AIQhC0IAIQEMAgsCQCADIAJCgICAgICAwP//AIWEQgBSDQAgASAOhCECQgAhAQJAIAJQRQ0AQoCAgICAgOD//wAhCwwDCyALQoCAgICAgMD//wCEIQsMAgsCQCABIA6EQgBSDQBCACEBDAILAkAgAyAChEIAUg0AQgAhAQwCC0EAIQgCQCAOQv///////z9WDQAgBUHQAGogASAMIAEgDCAMUCIIG3kgCEEGdK18pyIIQXFqEGdBECAIayEIIAVB2ABqKQMAIgxCIIghDSAFKQNQIQELIAJC////////P1YNACAFQcAAaiADIAogAyAKIApQIgkbeSAJQQZ0rXynIglBcWoQZyAIIAlrQRBqIQggBUHIAGopAwAhCiAFKQNAIQMLIANCD4YiDkKAgP7/D4MiAiABQiCIIgR+Ig8gDkIgiCIOIAFC/////w+DIgF+fCIQQiCGIhEgAiABfnwiEiARVK0gAiAMQv////8PgyIMfiITIA4gBH58IhEgA0IxiCAKQg+GIhSEQv////8PgyIDIAF+fCIVIBBCIIggECAPVK1CIIaEfCIQIAIgDUKAgASEIgp+IhYgDiAMfnwiDSAUQiCIQoCAgIAIhCICIAF+fCIPIAMgBH58IhRCIIZ8Ihd8IQEgByAGaiAIakGBgH9qIQYCQAJAIAIgBH4iGCAOIAp+fCIEIBhUrSAEIAMgDH58Ig4gBFStfCACIAp+fCAOIBEgE1StIBUgEVStfHwiBCAOVK18IAMgCn4iAyACIAx+fCICIANUrUIghiACQiCIhHwgBCACQiCGfCICIARUrXwgAiAUQiCIIA0gFlStIA8gDVStfCAUIA9UrXxCIIaEfCIEIAJUrXwgBCAQIBVUrSAXIBBUrXx8IgIgBFStfCIEQoCAgICAgMAAg1ANACAGQQFqIQYMAQsgEkI/iCEDIARCAYYgAkI/iIQhBCACQgGGIAFCP4iEIQIgEkIBhiESIAMgAUIBhoQhAQsCQCAGQf//AUgNACALQoCAgICAgMD//wCEIQtCACEBDAELAkACQCAGQQBKDQACQEEBIAZrIgdB/wBLDQAgBUEwaiASIAEgBkH/AGoiBhBnIAVBIGogAiAEIAYQZyAFQRBqIBIgASAHEGkgBSACIAQgBxBpIAUpAyAgBSkDEIQgBSkDMCAFQTBqQQhqKQMAhEIAUq2EIRIgBUEgakEIaikDACAFQRBqQQhqKQMAhCEBIAVBCGopAwAhBCAFKQMAIQIMAgtCACEBDAILIAatQjCGIARC////////P4OEIQQLIAQgC4QhCwJAIBJQIAFCf1UgAUKAgICAgICAgIB/URsNACALIAJCAXwiAVCtfCELDAELAkAgEiABQoCAgICAgICAgH+FhEIAUQ0AIAIhAQwBCyALIAIgAkIBg3wiASACVK18IQsLIAAgATcDACAAIAs3AwggBUHgAGokAAt1AQF+IAAgBCABfiACIAN+fCADQiCIIgIgAUIgiCIEfnwgA0L/////D4MiAyABQv////8PgyIBfiIFQiCIIAMgBH58IgNCIIh8IANC/////w+DIAIgAX58IgFCIIh8NwMIIAAgAUIghiAFQv////8Pg4Q3AwALBgAgACQBCwQAIwELBgAgACQACxIBAn8jACAAa0FwcSIBJAAgAQsEACMACwQAQQALBABBAAvhCgIEfwR+IwBB8ABrIgUkACAEQv///////////wCDIQkCQAJAAkAgAVAiBiACQv///////////wCDIgpCgICAgICAwICAf3xCgICAgICAwICAf1QgClAbDQAgA0IAUiAJQoCAgICAgMCAgH98IgtCgICAgICAwICAf1YgC0KAgICAgIDAgIB/URsNAQsCQCAGIApCgICAgICAwP//AFQgCkKAgICAgIDA//8AURsNACACQoCAgICAgCCEIQQgASEDDAILAkAgA1AgCUKAgICAgIDA//8AVCAJQoCAgICAgMD//wBRGw0AIARCgICAgICAIIQhBAwCCwJAIAEgCkKAgICAgIDA//8AhYRCAFINAEKAgICAgIDg//8AIAIgAyABhSAEIAKFQoCAgICAgICAgH+FhFAiBhshBEIAIAEgBhshAwwCCyADIAlCgICAgICAwP//AIWEUA0BAkAgASAKhEIAUg0AIAMgCYRCAFINAiADIAGDIQMgBCACgyEEDAILIAMgCYRQRQ0AIAEhAyACIQQMAQsgAyABIAMgAVYgCSAKViAJIApRGyIHGyEJIAQgAiAHGyILQv///////z+DIQogAiAEIAcbIgxCMIinQf//AXEhCAJAIAtCMIinQf//AXEiBg0AIAVB4ABqIAkgCiAJIAogClAiBht5IAZBBnStfKciBkFxahBnQRAgBmshBiAFQegAaikDACEKIAUpA2AhCQsgASADIAcbIQMgDEL///////8/gyEBAkAgCA0AIAVB0ABqIAMgASADIAEgAVAiBxt5IAdBBnStfKciB0FxahBnQRAgB2shCCAFQdgAaikDACEBIAUpA1AhAwsgAUIDhiADQj2IhEKAgICA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AEQAAAAAAADwPyELIAlCgICAgICAgPg/UQ0CIAhCAYYiClANAgJAAkAgCUIBhiIJQoCAgICAgIBwVg0AIApCgYCAgICAgHBUDQELIAAgAaAhCwwDCyAJQoCAgICAgIDw/wBRDQJEAAAAAAAAAAAgASABoiAJQoCAgICAgIDw/wBUIAhCAFNzGyELDAILAkAgCRCBAUUNACAAIACiIQsCQCAJQn9VDQAgC5ogCyAIEIIBQQFGGyELCyAIQn9VDQJEAAAAAAAA8D8gC6MQgwEhCwwCC0EAIQcCQCAJQn9VDQACQCAIEIIBIgcNACAAEHchCwwDCyADQf8PcSEDIAC9Qv///////////wCDIQkgB0EBRkESdCEHCwJAIAZB/35LDQBEAAAAAAAA8D8hCyAJQoCAgICAgID4P1ENAgJAIAVBvQdLDQAgASABmiAJQoCAgICAgID4P1YbRAAAAAAAAPA/oCELDAMLAkAgBEH/D0sgCUKAgICAgICA+D9WRg0AQQAQQCELDAMLQQAQPyELDAILIAMNACAARAAAAAAAADBDor1C////////////AINCgICAgICAgOB8fCEJCyAIQoCAgECDvyILIAkgAkEIahCEASIMvUKAgIBAg78iAKIgASALoSAAoiACKwMIIAwgAKGgIAGioCAHEIUBIQsLIAJBEGokACALCwkAIAC9QjSIpwsbACAAQgGGQoCAgICAgIAQfEKBgICAgICAEFQLVQICfwF+QQAhAQJAIABCNIinQf8PcSICQf8HSQ0AQQIhASACQbMISw0AQQAhAUIBQbMIIAJrrYYiA0J/fCAAg0IAUg0AQQJBASADIACDUBshAQsgAQsVAQF/IwBBEGsiASAAOQMIIAErAwgLswIDAX4GfAF/IAEgAEKAgICAsNXajEB8IgJCNIentyIDQQArA+DFEKIgAkItiKdB/wBxQQV0IglBuMYQaisDAKAgACACQoCAgICAgIB4g30iAEKAgICACHxCgICAgHCDvyIEIAlBoMYQaisDACIFokQAAAAAAADwv6AiBiAAvyAEoSAFoiIFoCIEIANBACsD2MUQoiAJQbDGEGorAwCgIgMgBCADoCIDoaCgIAUgBEEAKwPoxRAiB6IiCCAGIAeiIgegoqAgBiAHoiIGIAMgAyAGoCIGoaCgIAQgBCAIoiIDoiADIAMgBEEAKwOYxhCiQQArA5DGEKCiIARBACsDiMYQokEAKwOAxhCgoKIgBEEAKwP4xRCiQQArA/DFEKCgoqAiBCAGIAYgBKAiBKGgOQMAIAQLugIDAn8CfAJ+AkAgABCAAUH/D3EiA0QAAAAAAACQPBCAASIEa0QAAAAAAACAQBCAASAEa0kNAAJAIAMgBE8NACAARAAAAAAAAPA/oCIAmiAAIAIbDwsgA0QAAAAAAACQQBCAAUkhBEEAIQMgBA0AAkAgAL1Cf1UNACACED8PCyACEEAPC0EAKwOAgBAgAKJBACsDiIAQIgWgIgYgBaEiBUEAKwOYgBCiIAVBACsDkIAQoiAAoKAgAaAiACAAoiIBIAGiIABBACsDuIAQokEAKwOwgBCgoiABIABBACsDqIAQokEAKwOggBCgoiAGvSIHp0EEdEHwD3EiBEHwgBBqKwMAIACgoKAhACAEQfiAEGopAwAgByACrXxCLYZ8IQgCQCADDQAgACAIIAcQhgEPCyAIvyIBIACiIAGgC+UBAQR8AkAgAkKAgICACINCAFINACABQoCAgICAgID4QHy/IgMgAKIgA6BEAAAAAAAAAH+iDwsCQCABQoCAgICAgIDwP3wiAr8iAyAAoiIEIAOgIgAQsE9EAAAAAAAA8D9jRQ0ARAAAAAAAABAAEIMBRAAAAAAAABAAohCHASACQoCAgICAgICAgH+DvyAARAAAAAAAAPC/RAAAAAAAAPA/IABEAAAAAAAAAABjGyIFoCIGIAQgAyAAoaAgACAFIAahoKCgIAWhIgAgAEQAAAAAAAAAAGEbIQALIABEAAAAAAAAEACiCwwAIwBBEGsgADkDCAsMACAAIACTIgAgAJUL9gIBAn8CQCAAIAFGDQACQCABIAAgAmoiA2tBACACQQF0a0sNACAAIAEgAhBLDwsgASAAc0EDcSEEAkACQAJAIAAgAU8NAAJAIARFDQAgACEDDAMLAkAgAEEDcQ0AIAAhAwwCCyAAIQMDQCACRQ0EIAMgAS0AADoAACABQQFqIQEgAkF/aiECIANBAWoiA0EDcUUNAgwACwALAkAgBA0AAkAgA0EDcUUNAANAIAJFDQUgACACQX9qIgJqIgMgASACai0AADoAACADQQNxDQALCyACQQNNDQADQCAAIAJBfGoiAmogASACaigCADYCACACQQNLDQALCyACRQ0CA0AgACACQX9qIgJqIAEgAmotAAA6AAAgAg0ADAMLAAsgAkEDTQ0AA0AgAyABKAIANgIAIAFBBGohASADQQRqIQMgAkF8aiICQQNLDQALCyACRQ0AA0AgAyABLQAAOgAAIANBAWohAyABQQFqIQEgAkF/aiICDQALCyAAC64EAgR+An8CQAJAIAG9IgJCAYYiA1ANACABEIsBQv///////////wCDQoCAgICAgID4/wBWDQAgAL0iBEI0iKdB/w9xIgZB/w9HDQELIAAgAaIiASABow8LAkAgBEIBhiIFIANWDQAgAEQAAAAAAAAAAKIgACAFIANRGw8LIAJCNIinQf8PcSEHAkACQCAGDQBBACEGAkAgBEIMhiIDQgBTDQADQCAGQX9qIQYgA0IBhiIDQn9VDQALCyAEQQEgBmuthiEDDAELIARC/////////weDQoCAgICAgIAIhCEDCwJAAkAgBw0AQQAhBwJAIAJCDIYiBUIAUw0AA0AgB0F/aiEHIAVCAYYiBUJ/VQ0ACwsgAkEBIAdrrYYhAgwBCyACQv////////8Hg0KAgICAgICACIQhAgsCQCAGIAdMDQADQAJAIAMgAn0iBUIAUw0AIAUhAyAFQgBSDQAgAEQAAAAAAAAAAKIPCyADQgGGIQMgBkF/aiIGIAdKDQALIAchBgsCQCADIAJ9IgVCAFMNACAFIQMgBUIAUg0AIABEAAAAAAAAAACiDwsCQAJAIANC/////////wdYDQAgAyEFDAELA0AgBkF/aiEGIANCgICAgICAgARUIQcgA0IBhiIFIQMgBw0ACwsgBEKAgICAgICAgIB/gyEDAkACQCAGQQFIDQAgBUKAgICAgICAeHwgBq1CNIaEIQUMAQsgBUEBIAZrrYghBQsgBSADhL8LBQAgAL0LOQACQCAAEI0BQf////8HcUGAgID8B0sNACAAIAAgAZYgARCNAUH/////B3FBgICA/AdLGyEBCyABCwUAIAC8C+0DAQZ/AkACQCABvCICQQF0IgNFDQAgARCPASEEIAC8IgVBF3ZB/wFxIgZB/wFGDQAgBEH/////B3FBgYCA/AdJDQELIAAgAZQiASABlQ8LAkAgBUEBdCIEIANLDQAgAEMAAAAAlCAAIAQgA0YbDwsgAkEXdkH/AXEhBAJAAkAgBg0AQQAhBgJAIAVBCXQiA0EASA0AA0AgBkF/aiEGIANBAXQiA0F/Sg0ACwsgBUEBIAZrdCEDDAELIAVB////A3FBgICABHIhAwsCQAJAIAQNAEEAIQQCQCACQQl0IgdBAEgNAANAIARBf2ohBCAHQQF0IgdBf0oNAAsLIAJBASAEa3QhAgwBCyACQf///wNxQYCAgARyIQILAkAgBiAETA0AA0ACQCADIAJrIgdBAEgNACAHIQMgBw0AIABDAAAAAJQPCyADQQF0IQMgBkF/aiIGIARKDQALIAQhBgsCQCADIAJrIgRBAEgNACAEIQMgBA0AIABDAAAAAJQPCwJAAkAgA0H///8DTQ0AIAMhBwwBCwNAIAZBf2ohBiADQYCAgAJJIQQgA0EBdCIHIQMgBA0ACwsgBUGAgICAeHEhAwJAAkAgBkEBSA0AIAdBgICAfGogBkEXdHIhBgwBCyAHQQEgBmt2IQYLIAYgA3K+CwUAIAC8C9UBBAF/AX0DfAF+AkACQCAAEJEBQf8PcSIBQwAAAEMQkQFJDQBDAAAAACECIABDAACA/1sNAQJAIAFDAACAfxCRAUkNACAAIACSDwsCQCAAQwAAAABeRQ0AQQAQfQ8LIABDAAAWw19FDQBBABB+DwtBACsDmMUQIAC7IgMgA0EAKwOQxRAiBKAiBSAEoaEiA6JBACsDoMUQoCADIAOiokEAKwOoxRAgA6JEAAAAAAAA8D+goCAFvSIGQi+GIAanQR9xQQN0QZDDEGopAwB8v6K2IQILIAILCAAgALxBFHYLGABDAACAv0MAAIA/IAAbEJMBQwAAAACVCxUBAX8jAEEQayIBIAA4AgwgASoCDAv8AQICfwJ8AkAgALwiAUGAgID8A0cNAEMAAAAADwsCQAJAIAFBgICAhHhqQf///4d4Sw0AAkAgAUEBdCICDQBBARCSAQ8LIAFBgICA/AdGDQECQAJAIAFBAEgNACACQYCAgHhJDQELIAAQiAEPCyAAQwAAAEuUvEGAgICkf2ohAQtBACsDqOgQIAEgAUGAgLSGfGoiAkGAgIB8cWu+uyACQQ92QfABcSIBQaDmEGorAwCiRAAAAAAAAPC/oCIDIAOiIgSiQQArA7DoECADokEAKwO46BCgoCAEoiACQRd1t0EAKwOg6BCiIAFBqOYQaisDAKAgA6CgtiEACyAACzkAAkAgABCWAUH/////B3FBgICA/AdLDQAgACAAIAGXIAEQlgFB/////wdxQYCAgPwHSxshAQsgAQsFACAAvAsgAAJAQQAoAvSMHg0AQQAgATYC+IweQQAgADYC9IweCwsQACAAIAE2AgQgACACNgIACx4BAX9BACECAkAgACgCACABRw0AIAAoAgQhAgsgAgsTACAAIAFBASABQQFLGxCXARA3C+oDAgd/An4jAEEgayICJAAgAUL///////8/gyEJAkACQCABQjCIQv//AYMiCqciA0H/gH9qQf0BSw0AIAlCGYinIQQCQAJAIABQIAFC////D4MiCUKAgIAIVCAJQoCAgAhRGw0AIARBAWohBAwBCyAAIAlCgICACIWEQgBSDQAgBEEBcSAEaiEEC0EAIAQgBEH///8DSyIFGyEEQYGBf0GAgX8gBRsgA2ohBQwBCwJAIAAgCYRQDQAgCkL//wFSDQAgCUIZiKdBgICAAnIhBEH/ASEFDAELAkAgA0H+gAFNDQBB/wEhBUEAIQQMAQtBACEEQQAhBUGA/wBBgf8AIApQIgYbIgcgA2siCEHwAEoNACACQRBqIAAgCSAJQoCAgICAgMAAhCAGGyIJQYABIAhrEGcgAiAAIAkgCBBpIAJBCGopAwAiAEIZiKchBAJAAkAgAikDACAHIANHIAIpAxAgAkEQakEIaikDAIRCAFJxrYQiCVAgAEL///8PgyIAQoCAgAhUIABCgICACFEbDQAgBEEBaiEEDAELIAkgAEKAgIAIhYRCAFINACAEQQFxIARqIQQLIARBgICABHMgBCAEQf///wNLIgUbIQQLIAJBIGokACAFQRd0IAFCIIinQYCAgIB4cXIgBHK+C4kEAgV/BH4jAEEgayICJAAgAUL///////8/gyEHAkACQCABQjCIQv//AYMiCKciA0H/h39qQf0PSw0AIABCPIggB0IEhoQhByADQYCIf2qtIQkCQAJAIABC//////////8PgyIAQoGAgICAgICACFQNACAHQgF8IQcMAQsgAEKAgICAgICAgAhSDQAgB0IBgyAHfCEHC0IAIAcgB0L/////////B1YiAxshCiADrSAJfCEJDAELAkAgACAHhFANACAIQv//AVINACAAQjyIIAdCBIaEQoCAgICAgIAEhCEKQv8PIQkMAQsCQCADQf6HAU0NAEL/DyEJQgAhCgwBC0IAIQpCACEJ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IAJBCGoQ6wUaIAJBEGogABDsBSACQQhqIAAgAigCEBDtBSIEQZH+ECADKAIAEO4FIAIoAhAhACACKAIUIQMCQCABRQ0AIAEgASgCBEEBajYCBAsgAiABNgIcIAJBBGogACADIABrIAJBHGoQ9gUgAkEcahD3BRogAigCBCEBIAQQ6wUaIAJBEGoQ8QUaIAJBIGokACABCwcAIAARDwALBgBBsI4eC6EBAQF/IwBBwABrIgYkACAGQRhqQQhqIANBCGopAgA3AwAgBiADKQIANwMYIAZBCGpBCGogBEEIaikCADcDACAGIAQpAgA3AwggBkEoaiABIAIgBkEYaiAGQQhqIAUgABErAEEYEKYBIgNBEGogBkEoakEQaikCADcCACADQQhqIAZBKGpBCGopAgA3AgAgAyAGKQIoNwIAIAZBwABqJAAgAws6AQF/Qfi5EyEGAkAgAkEISw0AIAJBAnRBtJwSaigCACEGCyAAIAEgBioCACAGKgIEIAMgBCAFEPgFC3sCAX8BfiMAQTBrIgMkACADIAIpAgAiBDcDICADQQhqQQhqIAFBCGopAgA3AwAgA0EIakEQaiABQRBqKQIANwMAIAMgASkCADcDCCADIAQ3AwAgA0EoaiADQQhqIAMgABEFAEEIEKYBIgEgAykDKDcDACADQTBqJAAgAQsTACAAIAEgAioCACACKgIEEPkFCwkAIAEgABEAAAvAAQEGfyMAQRBrIgEkAEEBIQICQCAAKALIASAAKALEAUcNACABQQRqIAAoAghBrAxqEPoFIgMoAgQhBCADKAIAIQUCQANAIAUgBEYNASAFKAIAIgAoAowCIQYgACgCiAIhAAJAA0AgACAGRg0BAkAgACgCACICQd8AIAIoAgAoAgwRAgBFDQAgAigCRBDbAQ0ECyAAQQRqIQAMAAsACyAFQQRqIQUMAAsACyAFIARHIQIgAxD7BRoLIAFBEGokACACCwYAQZ2NHgsHACAAEKQBCzUBAX8jAEEQayIDJAAgAyABOAIMIAMgAjgCCCADQQxqIANBCGogABECACEAIANBEGokACAACycCAX8BfUEIEKYBIQIgACoCACEDIAIgASoCADgCBCACIAM4AgAgAgsHACAAKgIACysBAX9BBBCmASICIAE2AgBBnY0eIABBAkGskBJBtJASQZUEIAJBAEEAEAsLBwAgACoCBAsGAEG5jh4LBwAgABCkAQsHACAAEQ8ACzUBAX9BGBCmASIAQRBqQQApA7CfFTcCACAAQQhqQQApA6ifFTcCACAAQQApA6CfFTcCACAACzkBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABELAAsHACAAKgIACxkBAX9BCBCmASICIAE2AgQgAiAANgIAIAILOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARDQALCQAgACABOAIACxkBAX9BCBCmASICIAE2AgQgAiAANgIAIAILBwAgACoCBAsJACAAIAE4AgQLBwAgACoCCAsJACAAIAE4AggLBwAgACoCDAsJACAAIAE4AgwLBwAgACoCEAsJACAAIAE4AhALBwAgACoCFAsJACAAIAE4AhQLCQAgACABEP0FCw4AIAEgAiAAKAIAEQIAC1ABAX8jAEEgayIDJAAgA0EIaiAAIAIQ/gUgAUEQaiADQQhqQRBqKQIANwIAIAFBCGogA0EIakEIaikCADcCACABIAMpAgg3AgAgA0EgaiQACxAAIAEgAiADIAAoAgARBQALBgBBo40eCxcAAkAgAA0AQQAQpAEPCyAAEP8FEKQBCwkAIABBABCABgsMACABIAAoAgARAAALLwEBfyMAQRBrIgIkACAAIAJBBGogARDnBSIBEIEGIQAgARCCBhogAkEQaiQAIAALPgEBfyMAQRBrIgMkACAAKAIAIQAgA0EEaiACEKoGIAEgA0EEaiAAEQIAIQAgA0EEahCCBhogA0EQaiQAIAALyAEBA38jAEEwayICJAAgAiAAIAJBIGogAkEMaiABEOcFIgEQ5wUiAxCBBiIENgIsIAMQggYaAkACQCAEDQAgAkEANgIYDAELIAAgACgCAEEBajYCACACIAA2AhwgAkEYaiACQRxqIAJBLGoQgwYgAkEcahCEBhogAigCLCIARQ0AIAAgACgCACgCBBEBAAsgARCCBhoCQAJAIAIoAhgiAA0AQQAhAAwBCyAAIAAoAgBBAWo2AgALIAJBGGoQhQYaIAJBMGokACAACz4BAX8jAEEQayIDJAAgACgCACEAIANBBGogAhCqBiABIANBBGogABECACEAIANBBGoQggYaIANBEGokACAAC84BAQJ/IwBBEGsiASQAAkACQCAAKAJEIgIgACgCSEcNAEEAIQIMAQsgAigCACECCyABIAAgAhCGBiICNgIMAkACQCACDQBBACEAIAFBADYCBAwBCyAAIAAoAgBBAWo2AgAgASAANgIIIAFBBGogAUEIaiABQQxqEIMGIAFBCGoQhAYaAkAgASgCDCIARQ0AIAAgACgCACgCBBEBAAsCQCABKAIEIgANAEEAIQAMAQsgACAAKAIAQQFqNgIACyABQQRqEIUGGiABQRBqJAAgAAsMACABIAAoAgARAAALfAECfyMAQRBrIgIkAAJAAkACQCABRQ0AIAEQhwYiAw0BC0EAIQEgAkEANgIIDAELQQwQpgEhASACQQA2AgwgASADNgIIIAFCATcCACACIAE2AgggAkEMahCEBhogASABKAIAQQFqNgIACyACQQhqEIUGGiACQRBqJAAgAQsOACABIAIgACgCABECAAsJACAAIAEQgAYLDgAgASACIAAoAgARAgALEAAgACgCSCAAKAJEa0ECdQsyAQF/QQgQpgEiAyACNgIEIAMgATYCAEGjjR4gAEECQaiREkGwkRJBlgQgA0EAQQAQCwsQACAAKAJUIAAoAlBrQQJ1C24BAn8jAEEQayICJAACQAJAIAAoAlQgACgCUCIDa0ECdSABTQ0AIAJBDGogACADIAFBAnRqKAIAEIkGIAIoAgwhACACQQxqEIoGGgwBCyACIAE2AgAgAkGsiBIgAhCLBkEAIQALIAJBEGokACAACw4AIAEgAiAAKAIAEQIAC6UBAQR/IwBBIGsiAiQAIAJBEGogARDnBSEDIAAoAlQhBCAAKAJQIQECQAJAA0AgASAERg0BAkAgASgCACIFQQxqIAMQjAYNACABQQRqIQEMAQsLIAJBHGogACAFEIkGIAIoAhwhASACQRxqEIoGGgwBC0EAIQEgAiADKAIAIAMgAywAC0EASBs2AgAgAUHohhIgAhCLBgsgAxCCBhogAkEgaiQAIAELPgEBfyMAQRBrIgMkACAAKAIAIQAgA0EEaiACEKoGIAEgA0EEaiAAEQIAIQAgA0EEahCCBhogA0EQaiQAIAALoQEBA38jAEEQayICJAACQAJAIAENAEHtghJBEUEBQbDMHRBNGkEAIQAMAQsCQCABKALQCiIDIAAoAlQgACgCUCIEa0ECdU8NACACQQxqIAAgBCADQQJ0aigCABCJBiACKAIMIQAgAkEMahCKBhoMAQtBACEAIAIgASgCDCABQQxqIAEsABdBAEgbNgIAIAJBtIYSIAIQiwYLIAJBEGokACAACw4AIAEgAiAAKAIAEQIAC4ACAQV/IwBBIGsiAiQAIAAQjQYgASgCeCEDIAEoAnQhBAJAA0AgBCADRg0BIAQoAgAhASACQQRqEI4GIAEgASgCACgCKBEAACEFIAIoAghB1L8RIAUQjwYgAkEYahCNBiABKAIUIQYgASgCECEBAkADQCABIAZGDQEgAkEYaiACQQxqIAEoAgBBDGoQ5wUiBRCQBiAFEIIGGiABQQRqIQEMAAsACyACKAIIIQEgAkEMakGXhxEQkQYhBSABIAIoAhAgAigCHBANIAUQ6wUaIAJBGGoQ6wUaIABBvKoRIAIoAggQ7gUgBEEEaiEEIAJBBGoQ6wUaDAALAAsgAkEgaiQACzwBAX8jAEEQayICJAAgAkEIaiABIAAoAgARAwAgAigCDCEAIAJBADYCDCACQQhqEOsFGiACQRBqJAAgAAsHACAAEJIGCwwAIAEgACgCABEBAAsIACAALQCQAQsMACABIAAoAgARAAALBgBBqY0eCxcAAkAgAA0AQQAQpAEPCyAAEJMGEKQBCy8BAX8gACgCACIAIAAoAgQiAUF/ajYCBAJAIAFBAUcNACAAIAAoAgAoAgQRAQALCzkBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABEBAAsEACAACwwAIAEgACgCABEAAAsGAEGrjR4LFwACQCAADQBBABCkAQ8LIAAQlAYQpAELCgAgACgCABCVBgs5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARAQALBgBBrY0eCxcAAkAgAEUNACAAIAAoAgAoAgQRAQALCwYAQa+NHgsEACAACwQAIAALFwACQCAARQ0AIAAgACgCACgCBBEBAAsLPAEBfyABIAAoAgQiAkEBdWohASAAKAIAIQACQCACQQFxRQ0AIAEoAgAgAGooAgAhAAsgASAAEQAAEJYGCwcAIABBDGoLGQEBf0EIEKYBIgIgATYCBCACIAA2AgAgAgsKACAAIAG2EJcGCw4AIAEgAiAAKAIAETsACxIAIAAgASAAKAIAKALsAREDAAsOACABIAIgACgCABEDAAsIACAALQDCDQsMACABIAAoAgARAAALEwAgACgCzAsgACgC0AsgARCYBgs+AQF/IwBBEGsiAyQAIAAoAgAhACADQQRqIAIQqgYgASADQQRqIAARAgAhACADQQRqEIIGGiADQRBqJAAgAAthAQJ/IAAoAtALIQIgACgCzAshAAJAA0ACQCAAIAJHDQBBACEDDAILAkAgACgCACIDRQ0AIANBAiADKAIAKAIMEQIARQ0AIANBDGogARCMBg0CCyAAQQRqIQAMAAsACyADCz4BAX8jAEEQayIDJAAgACgCACEAIANBBGogAhCqBiABIANBBGogABECACEAIANBBGoQggYaIANBEGokACAACxMAIAAoAswLIAAoAtALIAEQmQYLPgEBfyMAQRBrIgMkACAAKAIAIQAgA0EEaiACEKoGIAEgA0EEaiAAEQIAIQAgA0EEahCCBhogA0EQaiQAIAALYQECfyAAKALQCyECIAAoAswLIQACQANAAkAgACACRw0AQQAhAwwCCwJAIAAoAgAiA0UNACADQSggAygCACgCDBECAEUNACADQQxqIAEQjAYNAgsgAEEEaiEADAALAAsgAws+AQF/IwBBEGsiAyQAIAAoAgAhACADQQRqIAIQqgYgASADQQRqIAARAgAhACADQQRqEIIGGiADQRBqJAAgAAthAQJ/IAAoAtALIQIgACgCzAshAAJAA0ACQCAAIAJHDQBBACEDDAILAkAgACgCACIDRQ0AIANBKSADKAIAKAIMEQIARQ0AIANBDGogARCMBg0CCyAAQQRqIQAMAAsACyADCz4BAX8jAEEQayIDJAAgACgCACEAIANBBGogAhCqBiABIANBBGogABECACEAIANBBGoQggYaIANBEGokACAACzEBAX9BACECAkAgACgC6AsgACgC5AsiAGtBAnUgAU0NACAAIAFBAnRqKAIAIQILIAILDgAgASACIAAoAgARAgALEwAgACgC5AsgACgC6AsgARCaBgs+AQF/IwBBEGsiAyQAIAAoAgAhACADQQRqIAIQqgYgASADQQRqIAARAgAhACADQQRqEIIGGiADQRBqJAAgAAsSACAAKALoCyAAKALkC2tBAnULKwEBf0EEEKYBIgIgATYCAEGvjR4gAEECQfySEkGwkRJBlwQgAkEAQQAQCwsxAQF/QQAhAgJAIAAoAvQLIAAoAvALIgBrQQJ1IAFNDQAgACABQQJ0aigCACECCyACCw4AIAEgAiAAKAIAEQIAC0EBAn8gACgC9AshAiAAKALwCyEAA0ACQCAAIAJHDQBBAA8LIAAoAgAhAyAAQQRqIQAgA0EMaiABEIwGRQ0ACyADCz4BAX8jAEEQayIDJAAgACgCACEAIANBBGogAhCqBiABIANBBGogABECACEAIANBBGoQggYaIANBEGokACAACxIAIAAoAvQLIAAoAvALa0ECdQtTAQN/IAAoAtALIQEgACgCzAshAEEAIQICQANAIAAgAUYNAQJAIAAoAgAiA0UNACACIANBhwEgAygCACgCDBECAGohAgsgAEEEaiEADAALAAsgAgtoAQN/IAAoAtALIQIgACgCzAshAEEAIQMCQANAAkAgACACRw0AQQAhBAwCCwJAIAAoAgAiBEUNACAEQYcBIAQoAgAoAgwRAgBFDQAgAyABRg0CIANBAWohAwsgAEEEaiEADAALAAsgBAsOACABIAIgACgCABECAAtTAQN/IAAoAtALIQEgACgCzAshAEEAIQICQANAIAAgAUYNAQJAIAAoAgAiA0UNACACIANBgAEgAygCACgCDBECAGohAgsgAEEEaiEADAALAAsgAgttAQN/IAEoAtALIQMgASgCzAshAUEAIQQCQANAAkAgASADRw0AQQAhBQwCCwJAIAEoAgAiBUUNACAFQYABIAUoAgAoAgwRAgBFDQAgBCACRg0CIARBAWohBAsgAUEEaiEBDAALAAsgACAFEJwGCz4BAX8jAEEQayIDJAAgA0EIaiABIAIgACgCABEFACADKAIMIQAgA0EANgIMIANBCGoQ6wUaIANBEGokACAAC7sDAQZ/IwBBwABrIgMkAEEAIQQCQCACKAIEIAIsAAsiBSAFQQBIG0UNACAAIAIQnQYiAkUNACADQRxqIANBBGogARDnBSIGEOcFIQcCQAJAAkAgA0EQakHnjRIQngYiCCgCBCAILAALIgQgBEEASBtFDQAgA0E0aiAIEOcFIQEgAigCjAIhACACKAKIAiECA0BBACEFAkAgAiAARw0AQQAhBAwDCwJAIAIoAgAiBEHfACAEKAIAKAIMEQIARQ0AIARBDGogARCMBg0DCyACQQRqIQIMAAsACyACKAKMAiEBIAIoAogCIQIDQAJAIAIgAUcNAEEAIQUMAwsCQCACKAIAIgRB3wAgBCgCACgCDBECAEUNACADQTRqIAcQ5wUhACAEQcgAaigCACAEQcwAaigCACAAEJ8GIQUgABCCBhogBQ0DCyACQQRqIQIMAAsACyABEIIGGiAERQ0AIANBKGogBxDnBSECIARByABqKAIAIARBzABqKAIAIAIQnwYhBSACEIIGGgsgCBCCBhogBxCCBhogBhCCBhpBACEEIAVFDQAgBRCgBkUNACAFEKAGIQQLIANBwABqJAAgBAtWAQF/IwBBIGsiBCQAIAAoAgAhACAEQRRqIAIQqgYgBEEIaiADEKoGIAEgBEEUaiAEQQhqIAARBAAhACAEQQhqEIIGGiAEQRRqEIIGGiAEQSBqJAAgAAtgAQJ/QQAhAwJAIAIoAgQgAiwACyIEIARBAEgbRQ0AIAAgAhCdBiICRQ0AQQAhAyACQQAgAigCACgCzAIRAgAiAkUNACACQcwLaigCACACQdALaigCACABEJkGIQMLIAMLVgEBfyMAQSBrIgQkACAAKAIAIQAgBEEUaiACEKoGIARBCGogAxCqBiABIARBFGogBEEIaiAAEQQAIQAgBEEIahCCBhogBEEUahCCBhogBEEgaiQAIAALGAAgACAAKgK4DRDaAiAAIAAqArwNEN0CCwwAIAEgACgCABEBAAt5AQJ/IwBBEGsiAiQAAkACQCABKAIEIgENAEEAIQMMAQsgASABKAJEQQFqNgJEIAEgASgCREEBajYCRCABIQMLIAIgATYCDCACIAM2AgQgAkEANgIIIAAgAkEMaiACQQhqEKEGIAEQogYgAkEEahCjBhogAkEQaiQACw4AIAEgAiAAKAIAEQMACwkAIAAgARCkBgtBAQF/IwBBEGsiAiQAIAIgASAAKAIAEQMAQRAQpgEiAEEIaiACQQhqKQIANwIAIAAgAikCADcCACACQRBqJAAgAAs5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARCwALCAAgACoC0AELGQEBf0EIEKYBIgIgATYCBCACIAA2AgAgAgs7AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhAAJAIANBAXFFDQAgASgCACAAaigCACEACyABIAIgABENAAswAAJAIAAqAtABIAFbDQAgACABOALQASAAIAAoAgAoApwCEQEAIAAoAghBBxClBgsLGQEBf0EIEKYBIgIgATYCBCACIAA2AgAgAgsIACAAKgLUAQswAAJAIAAqAtQBIAFbDQAgACABOALUASAAIAAoAgAoAqACEQEAIAAoAghBCBClBgsLCAAgAC0AmQ0LIgACQCAALQCZDSABRg0AIAAgAToAmQ0gAEEQQQAQzQkaCws5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARAAALOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARAwALBwAgABCmBgsMACABIAAoAgARAAALCAAgACoC3A0LfgEEfyAAIAE4AtwNIAAoAsgMIQIgACgCxAwhAwJAA0AgAyACRg0BIAMoAgAhAEEAIQQDQAJAIAQgACAAKAIAKAIAEQAASQ0AIANBBGohAwwCCwJAIAAgBCAAKAIAKAIEEQIAIgVFDQAgBSABEOUCCyAEQQFqIQQMAAsACwALCzkBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABELAAs7AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhAAJAIANBAXFFDQAgASgCACAAaigCACEACyABIAIgABENAAtzAQJ/IwBBEGsiAiQAAkACQCABDQAgAkEANgIIDAELIAEgASgCAEEBajYCACACIAE2AgggASgCDCIDRQ0AIAEgASgCAEEBajYCACACIAE2AgwgACADIAJBDGoQpwYgARCoBgsgAkEIahCpBhogAkEQaiQACw4AIAEgAiAAKAIAEQMACwYAQbuNHgsXAAJAIABFDQAgACAAKAIAKAIEEQEACws5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARCwALBwAgACoCYAsZAQF/QQgQpgEiAiABNgIEIAIgADYCACACCzsBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAAkAgA0EBcUUNACABKAIAIABqKAIAIQALIAEgAiAAEQ0ACy0AAkAgACoCYCABWw0AIAAgATgCYCAAIAAoAgAoAlgRAQAgACgCCEEQEKUGCwsZAQF/QQgQpgEiAiABNgIEIAIgADYCACACCwcAIAAqAmQLLQACQCAAKgJkIAFbDQAgACABOAJkIAAgACgCACgCXBEBACAAKAIIQREQpQYLCwcAIAAqAlwLLQACQCAAKgJcIAFbDQAgACABOAJcIAAgACgCACgCVBEBACAAKAIIQQ8QpQYLCwgAIABBxABqCz8AIAEgACgCABEAACEAQRgQpgEiAUEQaiAAQRBqKQIANwIAIAFBCGogAEEIaikCADcCACABIAApAgA3AgAgAQtWAQJ+IAAoAiAiAEHEAGpB4MAdIABB2wAgACgCACgCDBECABsiACkCACECIABBCGopAgAhAyABQRBqIABBEGopAgA3AgAgAUEIaiADNwIAIAEgAjcCAAsOACABIAIgACgCABEDAAsGAEG9jR4LBAAgAAsEACAACxcAAkAgAEUNACAAIAAoAgAoAgQRAQALCzkBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABELAAsZAQF/QQgQpgEiAiABNgIEIAIgADYCACACCzsBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAAkAgA0EBcUUNACABKAIAIABqKAIAIQALIAEgAiAAEQ0ACzAAAkAgACoCkAEgAVsNACAAIAE4ApABIAAgACgCACgCvAERAQAgACgCCEENEKUGCwsZAQF/QQgQpgEiAiABNgIEIAIgADYCACACCzAAAkAgACoClAEgAVsNACAAIAE4ApQBIAAgACgCACgCwAERAQAgACgCCEEOEKUGCwsGAEG/jR4LFwACQCAARQ0AIAAgACgCACgCBBEBAAsLPAEBfyABIAAoAgQiAkEBdWohASAAKAIAIQACQCACQQFxRQ0AIAEoAgAgAGooAgAhAAsgASAAEQAAEJYGCwcAIABBOGoLNAEBfwJAIABBOGoiAiABEIwGDQAgAiABEOgFIAAgACgCACgCTBEBACAAKAIIQYwCEKUGCws8AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARAAAQlgYLYQECfyMAQRBrIgMkACABIAAoAgQiBEEBdWohASAAKAIAIQACQCAEQQFxRQ0AIAEoAgAgAGooAgAhAAsgA0EEaiACEKoGIAEgA0EEaiAAEQMAIANBBGoQggYaIANBEGokAAsGAEHBjR4LBAAgAAsEACAACxcAAkAgAEUNACAAIAAoAgAoAgQRAQALCwgAIAAqApABCzAAAkAgACoCkAEgAVsNACAAIAE4ApABIAAgACgCACgCfBEBACAAKAIIQdkAEKUGCws5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARCwALOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARDQALBgBBw40eCwQAIAALBAAgAAsXAAJAIABFDQAgACAAKAIAKAIEEQEACws5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARCwALOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARDQALMQACQCAAKgKsASABWw0AIAAgATgCrAEgACAAKAIAKAKAAREBACAAKAIIQdoAEKUGCwsZAQF/QQgQpgEiAiABNgIEIAIgADYCACACCzEAAkAgACoCsAEgAVsNACAAIAE4ArABIAAgACgCACgChAERAQAgACgCCEHbABClBgsLBgBBxY0eCxcAAkAgAEUNACAAIAAoAgAoAgQRAQALCzwBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABEAABCWBgsHACAAQQxqCxkBAX9BCBCmASICIAE2AgQgAiAANgIAIAILBgBByI0eCwQAIAALBAAgAAsXAAJAIABFDQAgACAAKAIAKAIEEQEACws8AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARAAAQlgYLOQEBfyABIAAoAgQiAkEBdWohASAAKAIAIQACQCACQQFxRQ0AIAEoAgAgAGooAgAhAAsgASAAEQAACwcAIAAoAhwLGQEBf0EIEKYBIgIgATYCBCACIAA2AgAgAgsHACAAKAIYCwcAIAAoAigLBwAgACgCLAsHACAALQAwCzkBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABEAAAsHACAAKAIkCwcAIAAqAiALOQEBfyABIAAoAgQiAkEBdWohASAAKAIAIQACQCACQQFxRQ0AIAEoAgAgAGooAgAhAAsgASAAEQsAC7UDAgF9C38CQCAALQAxQQFHDQAgACgCGLMiBSAClI4gBZUhAgsgACgCOCEGIAAoAjQhBwJAA0AgByAGRg0BAkAgASAHKAIAIgAoAgwgASgCACgCpAMRAgAiCEUNACAIQYACaiEJIAAoAhQhCiAAKAIQIQADQCAAIApGDQECQCAAKAIAIgsoAgwQuSMNACADIQUCQCAIIAgoAgAoAggRAABBmQNHDQBDAACAPyADIAkgCygCDCAJKAIAKAIIEQIAGyEFCyALKAIMIQwCQCALQRBqKAIAIg0gC0EUaigCACIOIAJBABDGIyILDQAgDSgCACILIAggDCAFIAsoAgAoAjQRHwAMAQsgDSALQQJ0aiIPQXxqKAIAIRACQCALIA4gDWtBAnVODQACQCAPKAIAIgsqAhAgAlwNACALIAggDCAFIAsoAgAoAjQRHwAMAgsgECgCACENAkAgECgCFA0AIBAgCCAMIAUgDSgCNBEfAAwCCyAQIAggDCACIAsgBSAEIA0oAjgRMAAMAQsgECAIIAwgBSAQKAIAKAI0ER8ACyAAQQRqIQAMAAsACyAHQQRqIQcMAAsACwtBAQF/IAEgACgCBCIGQQF1aiEBIAAoAgAhAAJAIAZBAXFFDQAgASgCACAAaigCACEACyABIAIgAyAEIAUgABFpAAsGAEHLjR4LFwACQCAARQ0AIAAgACgCACgCBBEBAAsLNQEBfyMAQRBrIgMkACADIAE2AgwgAyACNgIIIANBDGogA0EIaiAAEQIAIQEgA0EQaiQAIAELGgBB0AAQpgEgACgCACABKAIAQwAAgD8QqwYLBwAgACoCIAt0AgJ9AX8CQCAAKgIgIAFbDQAgACABOAIgIAAqAiggACoCLJMhAkMAAAAAIQMCQCAAKAIcIgQtADBBAUcNACAEKAIosyEDCyAEKAIYIQQgAEGAgID8AzYCNCAAIAEgAyAEs5STIgE4AiggACABIAKTOAIsCws5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARCwALOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARDQALBwAgAC0AOAs5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARAAALCwAgACABQQAQrAYLOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARGgALGAAgACgCHCAAKAIIIAAqAiAgASAAELEDCzsBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAAkAgA0EBcUUNACABKAIAIABqKAIAIQALIAEgAiAAEQ0ACwYAQc2NHgsEACAACwQAIAALFwACQCAARQ0AIAAgACgCACgCBBEBAAsLBgBBz40eCxcAAkAgAEUNACAAIAAoAgAoAgQRAQALCzQBAX8jAEEQayIDJAAgACADQQhqIAIoAgAgAigCBBC1DiICELQOIAIoAgAQYCADQRBqJAALpgECAn8BfiMAQSBrIgMkACABIAAoAgQiBEEBdWohASAAKAIAIQACQCAEQQFxRQ0AIAEoAgAgAGooAgAhAAsgAyACKQIAIgU3AhQgAyAFNwMIIANBHGogASADQQhqIAARBQBBBBCmASEBAkACQCADKAIcIgANAEEAIQIMAQsgACAAKAIAQQFqNgIAIAMoAhwhAgsgASAANgIAIAIQ8AUgA0EgaiQAIAELmwECAn8BfiMAQSBrIgMkACABIAAoAgQiBEEBdWohASAAKAIAIQACQCAEQQFxRQ0AIAEoAgAgAGooAgAhAAsgAyACKQIAIgU3AhQgAyAFNwMIIANBHGogASADQQhqIAARBQBBBBCmASEBAkAgAygCHCIARQ0AIAAgACgCBEEBajYCBAsgASAANgIAIANBHGoQtwYaIANBIGokACABC6IKAQh/IwBB0ABrIgMkAEEAIQQCQCACKAIAIAIoAgRBAEEAQQAQ9hEiBUUNACADIAUQ9xEhBEEAIQZBACEHAkBBkJcYIAUoAgwgBSgCEEEESRsi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NgIECyACIAE2AgwgACACQQxqELYGIAJBDGoQtwYaIAJBEGokAAsOACABIAIgACgCABEDAAsGAEHbjR4LBAAgAAsEACAACxcAAkAgAEUNACAAIAAoAgAoAgQRAQALC0kBAX8jAEEQayICJAACQCABKAIAIgFFDQAgASABKAIAQQFqNgIACyACIAE2AgwgAEHIAGogAkEMahC4BhogARDwBSACQRBqJAALDgAgASACIAAoAgARAwALBgBB3Y0eCwQAIAALBAAgAAsXAAJAIABFDQAgACAAKAIAKAIEEQEACwtHAQF/IwBBEGsiAiQAAkAgASgCACIBRQ0AIAEgASgCBEEBajYCBAsgAiABNgIMIAAgAkEMahC5BiACKAIMEPMFIAJBEGokAAsOACABIAIgACgCABEDAAsGAEHfjR4LFwACQCAARQ0AIAAgACgCACgCBBEBAAsLNQEBfyMAQRBrIgMkACADIAE2AgwgAyACNgIIIANBDGogA0EIaiAAEQIAIQEgA0EQaiQAIAELFQBBgAQQpgEgACgCACABKAIAELoGCwsAIAAgAUEBELsGCw4AIAEgAiAAKAIAERoACxIAIAAgAbYgACgCACgCHBEaAAsOACABIAIgACgCABE7AAsyAQF/QQgQpgEiAyACNgIEIAMgATYCAEHfjR4gAEECQbSWEkGwkRJBmwQgA0EAQQAQCws7AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhAAJAIANBAXFFDQAgASgCACAAaigCACEACyABIAIgABECAAtEAQJ/IwBBEGsiBCQAIAQgArY4AgwgBCABtjgCCCAAKAIAKAIkIQUgBCAEKQIINwMAIAAgBCADIAURBAAaIARBEGokAAsrAQF/QQQQpgEiAiABNgIAQd+NHiAAQQVB0JYSQeSWEkGcBCACQQBBABALC0kBAn8jAEEQayIEJAAgBCACtjgCDCAEIAG2OAIIIAAoAgAoAighBSAEIAQpAgg3AwAgACAEQwAAAAAgAyAFESwAGiAEQRBqJAALRAECfyMAQRBrIgQkACAEIAK2OAIMIAQgAbY4AgggACgCACgCLCEFIAQgBCkCCDcDACAAIAQgAyAFEQQAGiAEQRBqJAALRAECfyMAQRBrIgQkACAEIAK2OAIMIAQgAbY4AgggACgCACgCMCEFIAQgBCkCCDcDACAAIAQgAyAFEQQAGiAEQRBqJAALEgAgACgClAEgACgCkAFrQQN1C5YBAgF/AX0jAEEQayIDJAACQAJAAkAgASgClAEgASgCkAEiAWtBA3UgAk0NACABIAJBA3RqIgEoAgAiAg0BCyAAQQI2AgQgABC6ATYCAAwBCyABKgIEIQQgACACEJwGIAAoAgQgA0EIakHp6xAQkQYiASgCBCADIAQQvgYiACgCBBANIAAQ6wUaIAEQ6wUaCyADQRBqJAALPgEBfyMAQRBrIgMkACADQQhqIAEgAiAAKAIAEQUAIAMoAgwhACADQQA2AgwgA0EIahDrBRogA0EQaiQAIAALRQEDfyAAKALAASEBIAAoArwBIQJBACEDQQAhAAN/AkAgACACRw0AIAMPCyADIAEgAEE8bGotADBqIQMgAEEBaiEADAALC8kBAQR/IAEoAsABIQMgASgCvAEhBEEAIQVBACEBAkACQAJAAkADQCABIARGDQQCQAJAIAMgAUE8bGoiBi0AMEEBRw0AAkAgBSACRw0AIAYoAhAiAUUNByABKAIEIgFFDQcgASABKAIAKAIIEQAAQUNqDgQCBgQFBwsgBUEBaiEFCyABQQFqIQEMAQsLIAAgASgCPEEMahDnBRoPCyAAQeHpEBCeBhoPCyAAQff7EBCeBhoPCyAAQajrEBCeBhoPCyAAQY6bERCeBhoLOgEBfyMAQRBrIgMkACADQQRqIAEgAiAAKAIAEQUAIANBBGoQlgYhACADQQRqEIIGGiADQRBqJAAgAAtQAQF/IwBBEGsiAiQAAkAgASgCBCIBRQ0AIAEgASgCREEBajYCRAsgAiABNgIMIAAgAkEMaiAAKAIAKAIgEQMAIAJBDGoQowYaIAJBEGokAAsOACABIAIgACgCABEDAAsgAQF/IAAoAowDIgEgAEH8AmogARsiACgCBCAAKAIIRwsrAQF/QQQQpgEiAiABNgIAQd+NHiAAQQJBkJcSQZSQEkGdBCACQQBBABALCxgBAX8gACgCjAMiASAAQfwCaiABGxDABgsYAQF/IAAoAowDIgEgAEH8AmogARsQwQYLGAEBfyAAKAKMAyIBIABB/AJqIAEbEMIGCwwAIAEgACgCABEBAAu9AQEDfyMAQRBrIgIkAEEAIQMCQAJAIAEoAowDIgQgAUH8AmogBBsoAgAiBA0AQQAhAQwBC0EBIQEgBCgCBCIERQ0AIAQgBCgCACgCLBEAACEDCyAAEI4GIAAoAgQiACACQQhqQeOBERCRBiIEKAIEIAIgARDDBiIBKAIEEA0gARDrBRogBBDrBRogACACQQhqQe/xEBCRBiIBKAIEIAIgAxDDBiIDKAIEEA0gAxDrBRogARDrBRogAkEQaiQACzwBAX8jAEEQayICJAAgAkEIaiABIAAoAgARAwAgAigCDCEAIAJBADYCDCACQQhqEOsFGiACQRBqJAAgAAsGAEHhjR4LFwACQCAARQ0AIAAgACgCACgCCBEBAAsLFAAgACgCCCIAIAAoAgAoAggRAAALOQEBfyABIAAoAgQiAkEBdWohASAAKAIAIQACQCACQQFxRQ0AIAEoAgAgAGooAgAhAAsgASAAEQAACwoAIAAoAghBDGoLPAEBfyABIAAoAgQiAkEBdWohASAAKAIAIQACQCACQQFxRQ0AIAEoAgAgAGooAgAhAAsgASAAEQAAEJYGCwcAIAAvAQALHgEBfyAAQQAgACgCCCIBIAEoAgAoAggRAABBO0YbCwwAIAEgACgCABEAAAseAQF/IABBACAAKAIIIgEgASgCACgCCBEAAEE4RhsLDAAgASAAKAIAEQAACx4BAX8gAEEAIAAoAggiASABKAIAKAIIEQAAQTpGGwsMACABIAAoAgARAAALBgBB5o0eCwQAIAALBAAgAAsXAAJAIABFDQAgACAAKAIAKAIIEQEACwsHACAALQAMCyEAAkAgAC0ADCABRg0AIAAgAToADCAAKAIEQQE6AKwBCws5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARAAALOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARAwALBgBB6I0eCwQAIAALBAAgAAsXAAJAIABFDQAgACAAKAIAKAIIEQEACwsHACAAKgIMCyEAAkAgACoCDCABWw0AIAAgATgCDCAAKAIEQQE6AKwBCws5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARCwALOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARDQALBgBB6o0eCwQAIAALBAAgAAsXAAJAIABFDQAgACAAKAIAKAIIEQEACwseAAJAIAAtABgNACAAQQE6ABggACgCBEEBOgCsAQsLOQEBfyABIAAoAgQiAkEBdWohASAAKAIAIQACQCACQQFxRQ0AIAEoAgAgAGooAgAhAAsgASAAEQEACxwBAX9BEBCmASIAQgA3AgAgAEEIakIANwIAIAALBwAgABCkAQsqAEG+jh4gAEGtkB5BtJASQZ4EIAEQxQZBrZAeQeSdEkGfBCABEMUGEBQLBgBB7I0eCx0AAkAgAA0AQQAQpAEPCyAAQRhqEKMBGiAAEKQBCykBAX8jAEEQayICJAAgAiABNgIMIAJBDGogABEAACEBIAJBEGokACABCzIBAX9BHBCmASEBIAAoAgAhACABQQA2AhggAUEANgIEIAEgADYCACABQQFBARChASABCwsAIAAgASACEKEBCz0BAX8gASAAKAIEIgRBAXVqIQEgACgCACEAAkAgBEEBcUUNACABKAIAIABqKAIAIQALIAEgAiADIAARBQAL2AQBBn8jAEEQayIDJAACQAJAIAIgASACIAFKGyAAKAIAIgRMDQBBACEADAELAkACQCABIAIgASACSBtBAEoNACADQQA2AQgMAQsgAEEYaiEFAkAgACgCGA0AAkAgACgCCCIGIAFODQAgACAEQQFBICABQX9qZ2t0IgYgBCAGSBsiBjYCCAsCQCAAKAIMIgcgAk4NACAAIARBAUEgIAJBf2pna3QiByAEIAdIGyIHNgIMCyAAKAIEQQBBAEEAIAYgBxClASEEIANBADYCDCAFIAQQogEgA0EMahCjARoLIAUhBANAAkAgBCgCACIEDQACQANAIAAoAgwhBAJAIAAoAggiByAAKAIAIgZIDQAgBCAGTg0CCwJAAkAgBCAHSg0AIAAgBiAEQQF0IgggBiAISBsiBjYCDCAAKAIYIQggAEEANgIYIAAoAgQgCEEAIAQgByAGEKUBIQQgA0EANgIMIAUgBBCiASADQQxqEKMBGgwBCyAAIAYgB0EBdCIIIAYgCEgbIgY2AgggACgCGCEIIABBADYCGCAAKAIEIAggB0EAIAYgBBClASEEIANBADYCDCAFIAQQogEgA0EMahCjARoLIAUoAgAgASACIANBCGoQrgFFDQAMBAsAC0EAIQAgAy8BCCEEIAMvAQohAQwDCyAEIAEgAiADQQhqEK4BRQ0ACwsgACAAKAIQIgYgAy4BCCIEIAFqIgEgBiABShs2AhAgACAAKAIUIgYgAy4BCiIBIAJqIgIgBiACShs2AhRBASEACyADQRBqJAAgAUEQdCAEwXJBfyAAGws9AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhAAJAIARBAXFFDQAgASgCACAAaigCACEACyABIAIgAyAAEQQACwcAIAAoAhALMgEBf0EIEKYBIgMgAjYCBCADIAE2AgBB7I0eIABBAkGImBJBlJASQaAEIANBAEEAEAsLBwAgACgCFAsGAEHvjR4LFwACQCAARQ0AIAAgACgCACgCBBEBAAsLaAICfwF+IwBBEGsiBSQAIAEgACgCBCIGQQF1aiEBIAAoAgAhAAJAIAZBAXFFDQAgASgCACAAaigCACEACyAFIAMpAgAiBzcCCCAFIAc3AwAgASACIAUgBCAAEQcAIQAgBUEQaiQAIAALBgBB8Y0eCwQAIAALBAAgAAsXAAJAIABFDQAgACAAKAIAKAIEEQEACwsJACAAQQE6AAgLDAAgASAAKAIAEQEACzoBAX8jAEEQayICJAAgAiABNgIMIAIQugE2AgggAkEIaiAAEQAAIQEgAkEIahDrBRogAkEQaiQAIAELQQEBf0EUEKYBIgFBADoACCABQoCAgIAQNwIAIAEgACgCADYCDCABIAAoAgQ2AhAgAEEANgIEIAFBxJgSNgIAIAELbAEBfyMAQSBrIgMkACADQQxqIAEQqgYgAyACNgIIIAMQugE2AgQgA0EYaiADQQxqIANBBGogABEFACADKAIcIQEgA0EANgIcIANBGGoQ6wUaIANBBGoQ6wUaIANBDGoQggYaIANBIGokACABCyoAIAAgASgCACABIAEsAAtBAEgbQfGNHiACKAIEEBg2AgQgABC6ATYCAAsGAEH8jR4LBwAgABCkAQs5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARAAALQAEDfyMAQRBrIgEkACABQQRqIAAoAgRBHGoQzAYiACgCACECIAAoAgQhAyAAEM4GGiABQRBqJAAgAyACa0ECdQsZAQF/QQgQpgEiAiABNgIEIAIgADYCACACCwoAIAAoAgRBDGoLPAEBfyABIAAoAgQiAkEBdWohASAAKAIAIQACQCACQQFxRQ0AIAEoAgAgAGooAgAhAAsgASAAEQAAEJYGCxUAIAAoAgQiACgCLCAAKAIoa0ECdQuVAgECfyMAQSBrIgIkAAJAAkAgACgCBCIDKAIsIAMoAigiA2tBAnUgAU0NACADIAFBAnRqKAIAIgNFDQAgAiADIAMoAgAoAhQRAAAiATYCHCAAKAIIIQACQAJAIAFFDQAgASABKAJEQQFqNgJEIAIgATYCGCAAIAEQyAYgAkEYahCjBhogASABKAJEQQFqNgJEDAELIAJBADYCGCAAQQAQyAYgAkEYahCjBhoLIAIgATYCFCACQRBqIAEQyQYgAkEUahCjBhogAkEcahCjBhogAigCECEBDAELIAIgATYCACACQeOIEiACEIsGQQAhASACQQA2AhALIAEgASgCAEEBajYCACACQRBqEMoGGiACQSBqJAAgAQsOACABIAIgACgCABECAAuYAgECfyMAQSBrIgIkAAJAAkAgACgCBCIDQShqKAIAIANBLGooAgAgARDLBiIDRQ0AIAIgAyADKAIAKAIUEQAAIgM2AhwgACgCCCEAAkACQCADRQ0AIAMgAygCREEBajYCRCACIAM2AhggACADEMgGIAJBGGoQowYaIAMgAygCREEBajYCRAwBCyACQQA2AhggAEEAEMgGIAJBGGoQowYaCyACIAM2AhQgAkEQaiADEMkGIAJBFGoQowYaIAJBHGoQowYaIAIoAhAhAwwBC0EAIQMgAiABKAIAIAEgASwAC0EASBs2AgAgAkGNhRIgAhCLBiACQQA2AhALIAMgAygCAEEBajYCACACQRBqEMoGGiACQSBqJAAgAws+AQF/IwBBEGsiAyQAIAAoAgAhACADQQRqIAIQqgYgASADQQRqIAARAgAhACADQQRqEIIGGiADQRBqJAAgAAtPAQF/IwBBIGsiAiQAIAJBCGogAkEUaiABKAIEQRxqEMwGIgEoAgAgASgCBBDNBiABEM4GGiAAIAJBCGoQzwYgAkEIahDQBhogAkEgaiQACysBAX9BBBCmASICIAE2AgBB/I0eIABBAkGImRJB2J4SQaEEIAJBAEEAEAsLkwIBBH8jAEEgayICJAAgASgCBCEDIAJBADYCHCACQgA3AhRBACEE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AgARAwAgAigCDCEAIAJBADYCDCACQQhqEOsFGiACQRBqJAAgAAsHACAAEO0GCwwAIAEgACgCABEBAAsGAEGJjh4LFwACQCAARQ0AIAAgACgCACgCDBEBAAsLFgAgACgCBCgCSCIAQQxqQfCSHiAAGws8AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARAAAQlgYLBwAgAC0ACAs5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARAAALCQAgAEEAOgAICwwAIAEgACgCABEBAAsGAEGMjh4LBAAgAAsEACAACxcAAkAgAEUNACAAIAAoAgAoAgwRAQALCwoAIAAoAgQqAmALDAAgACgCBCABELYPCzkBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABELAAs7AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhAAJAIANBAXFFDQAgASgCACAAaigCACEACyABIAIgABENAAsGAEGOjh4LBAAgAAsEACAACxcAAkAgAEUNACAAIAAoAgAoAgwRAQALCwoAIAAoAgQtAGALDAAgACgCBCABELAQCzkBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABEAAAs7AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhAAJAIANBAXFFDQAgASgCACAAaigCACEACyABIAIgABEDAAsGAEGQjh4LBAAgAAsEACAACxcAAkAgAEUNACAAIAAoAgAoAgwRAQALCwoAIAAoAgQoAmALDAAgACgCBCABEK4QCzkBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABEAAAs7AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhAAJAIANBAXFFDQAgASgCACAAaigCACEACyABIAIgABEDAAsXACAAKAIEIgAgAC0AYyABIAIgAxDuBgsSACABIAIgAyAEIAAoAgARCAALEgAgACgCBCABIAIgAyAEEO4GCxQAIAEgAiADIAQgBSAAKAIAEQoACysAIAAo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DgAgACgCBCABIAIQggcLEAAgASACIAMgACgCABEFAAsGAEGajh4LBAAgAAsEACAACxcAAkAgAEUNACAAIAAoAgAoAgwRAQALCwwAIAAoAgQgARCDBwsOACABIAIgACgCABEDAAsGAEGcjh4LBAAgAAsEACAACxcAAkAgAEUNACAAIAAoAgAoAgwRAQALC8cBAQJ/IwBBEGsiAiQAAkAgAUUNACABIAEoAgBBAWo2AgALIAIgATYCBCAAKAIEIQAgAkEANgIMIABB6ABqIAJBDGoQ8wYaIAJBDGoQowYaAkAgAUUNACABIAEoAgBBAWo2AgALIAIgATYCCCAAQX8QhAcCQCAAQeQAaiIDIAJBCGpGDQACQCABDQAgA0EAEIUHDAELIAEgASgCAEEBajYCACADIAEQhQcLIAAQhgcgAkEIahCFBhogAkEEahCFBhogAkEQaiQACw4AIAEgAiAAKAIAEQMAC4QBAQJ/IwBBEGsiAiQAAkACQCABKAIEIgENACAAKAIEIQBBACEDDAELIAEgASgCREEBajYCRCAAKAIEIQAgASABKAJEQQFqNgJEIAEhAwsgAiABNgIMIAIgAzYCCCAAQegAaiACQQxqEPMGGiACQQxqEKMGGiACQQhqEKMGGiACQRBqJAALDgAgASACIAAoAgARAwALBgBBno4eCxcAAkAgAA0AQQAQpAEPCyAAEIcHEKQBCwcAIAAQiAcLDAAgASAAKAIAEQEACz0AAkAgASwAC0EASA0AIAAgASkCADcCACAAQQhqIAFBCGooAgA2AgAgAA8LIAAgASgCACABKAIEEIoHIAALdwECfwJAIAAgAUYNACABLAALIQICQCAALAALQQBIDQACQCACQQBIDQAgACABKQIANwIAIABBCGogAUEIaigCADYCAA8LIAAgASgCACABKAIEEKoHGg8LIAAgASgCACABIAJBAEgiAxsgASgCBCACIAMbEKsHGgsLPAECfyMAQRBrIgIkACAAIAEgAkEIakG8qREQkQYiAygCBBAZNgIEIAAQugE2AgAgAxDrBRogAkEQaiQAC24CAX8BfCMAQRBrIgEkACABQQA2AgwgAEGokB4gAUEMahAHIQIgASABKAIMNgIIAkACQCACRAAAAAAAAPBBYyACRAAAAAAAAAAAZnFFDQAgAqshAAwBC0EAIQALIAFBCGoQ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QRBrIgMkACADIAI2AgxBsMwdIAEgAhDITxogA0EQaiQAC5ABAQR/QQAhAgJAIAAoAgQiAyAALAALIgQgBEEASBsgASgCBCABLAALIgUgBUEASBtHDQAgASgCACABIAVBAEgbIQECQCAEQX9MDQADQCAERSECIARFDQIgAC0AACABLQAARw0CIAFBAWohASAAQQFqIQAgBEF/aiEEDAALAAsgACgCACABIAMQqQdFIQILIAILEQAgABACNgIEIAAQugE2AgALEQAgABAANgIEIAAQugE2AgALPwEBfyMAQRBrIgMkACAAIANBCGogARCRBiIBKAIEIAMgAhCOByICKAIEEA0gAhDrBRogARDrBRogA0EQaiQAC4kBAQF/IwBBEGsiAiQAIAIgARCWBjYCCCACQQA2AgQCQAJAQQAtAKSOHkEBcUUNAEEAKAKgjh4hAQwBC0ECQaycEkEAEAUhAUEAQQE6AKSOHkEAIAE2AqCOHgsgASAAKAIEQbyqESACQQRqIAJBCGoQFxogAiACKAIENgIAIAIQiwcaIAJBEGokAAsVACAAIAEQDjYCBCAAELoBNgIAIAALJQEBfyAAIAAoAgAiAUF/ajYCAAJAIAFBAUcNACAAEP8FEKQBCwsMACAAKAIAEPMFIAALDAAgACgCABDwBSAACysBAX8gACAAKAIAIgFBf2o2AgACQCABQQFHDQAgAEEcahCVBxogABCkAQsLPAEDfyAAKAIEIAAsAAsiASABQQBIIgIbIgFBBGoQXiIDIAE2AgAgA0EEaiAAKAIAIAAgAhsgARBLGiADC0kBA38CQEEALQDEkx4NAEEAQQE6AMSTHgtBASECIAAgAUEPEKcLIQMgABClCyEEAkAgAw0AIAQNACAALQAwQQRxQQJ2IQILIAILUQEBfwJAA0ACQCAAIAFHDQBBACEDDAILAkAgACgCACIDRQ0AIANBJiADKAIAKAIMEQIARQ0AIANBDGogAhCMBg0CCyAAQQRqIQAMAAsACyADC1IBAX8CQANAAkAgACABRw0AQQAhAwwCCwJAIAAoAgAiA0UNACADQYcBIAMoAgAoAgwRAgBFDQAgA0EMaiACEIwGDQILIABBBGohAAwACwALIAMLMQEBfwNAAkAgACABRw0AQQAPCyAAKAIAIQMgAEEEaiEAIANBDGogAhCMBkUNAAsgAwsM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f0cNACAAKAIEIgEgASgCAEF0aigCAGpBARClUQsgAAuAAQECfyMAQRBrIgMkAAJAIAFB+P///wdPDQACQAJAIAEQ6lFFDQAgACABEOtRDAELIANBCGogARDsUUEBahDtUSAAIAMoAggiBBDuUSAAIAMoAgwQ71EgACABEPBRIAQhAAsgACABIAIQmlIgAWpBABDxUSADQRBqJAAPCxDyUQALJAAgACAAKAIYRSABciIBNgIQAkAgACgCFCABcUUNABClUgALCwoAIAAgARCjUhoLCwAgAEG8sR4QpQcLDAAgACgCABDOUiAACx4AIAEQ21IhASAAQQhqKAIAIABBDGooAgAgARDcUgsWACAAQejfHDYCACAAQQRqEKQHGiAACxwAAkAgAEGAgICABEkNABCoBwALIABBAnQQpgELBgAQrAEAC4cBAQJ/AkACQAJAIAJBBEkNACABIAByQQNxDQEDQCAAKAIAIAEoAgBHDQIgAUEEaiEBIABBBGohACACQXxqIgJBA0sNAAsLIAJFDQELAkADQCAALQAAIgMgAS0AACIERw0BIAFBAWohASAAQQFqIQAgAkF/aiICRQ0CDAALAAsgAyAEaw8LQQALSQEBfwJAIAJBCksNACAAIAIQ61EgACABIAIQ+1AgAmpBABDxUSAADwsgAEEKIAJBdmogAC0ACxCAUiIDQQAgAyACIAEQzFkgAAtbAQF/AkAgACgCCBD/USIDIAJNDQAgACgCACEDIAAgAhDwUSADIAEgAhD7UCACakEAEPFRIAAPCyAAIANBf2ogAiADa0EBaiAAKAIEIgNBACADIAIgARDMWSAACxwAAkAgACgCAEUNACAAEK0HIAAoAgAQpAELIAALDAAgACAAKAIAEK4HCywBAX8gACgCBCECAkADQCACIAFGDQEgAkF8ahCpBiECDAALAAsgACABNgIECxwAAkAgAEGAgICABEkNABCoBwALIABBAnQQpgELNgEBfyAAKAIEIgIgAWohAQNAAkAgAiABRw0AIAAgAjYCBA8LIAJBADoAACACQQFqIQIMAAsACzQAAkAgAkF/Sg0AEKwBAAsgASAAayIBQQF0IgAgAiAAIAJLG0H/////ByABQf////8DSRsLRgAgACADNgIQAkACQCABDQBBACEDDAELIAEQpgEhAwsgACADNgIAIAAgAyACaiIC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ugE2AgALBgBBhI8eCxcAAkAgAEUNACAAIAAoAgAoAgQRAQALCzIBAX9BCBCmASIDIAI2AgQgAyABNgIAQYaPHiAAQQJB6KASQcCdEkH2BCADQQFBABALCz0BAX8gASAAKAIEIgRBAXVqIQEgACgCACEAAkAgBEEBcUUNACABKAIAIABqKAIAIQALIAEgAiADIAARBQALOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARAwALMgEBf0EIEKYBIgMgAjYCBCADIAE2AgBBho8eIABBBEGgoRJBsKESQfcEIANBAUEAEAsLRQEBfyABIAAoAgQiCEEBdWohASAAKAIAIQACQCAIQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAMgBCAFIAYgByAAES0ACwYAQYaPHgsEACAACwQAIAALFwACQCAARQ0AIAAgACgCACgCBBEBAAsLCQAgAEEBOgAMCwwAIAEgACgCABEBAAs6AQF/IwBBEGsiAiQAIAIgATYCDCACELoBNgIIIAJBCGogABEAACEBIAJBCGoQ6wUaIAJBEGokACABC0YBAX9BGBCmASIBQQA6AAwgAUKBgICAwOmX1eYANwIEIAEgACgCADYCECABIAAoAgQ2AhQgAEEANgIEIAFBhKISNgIAIAELKgAgACABKAIAIAEgASwAC0EASBtBho8eIAIoAgQQGDYCBCAAELoBNgIACwYAQemOHgsHACAAEKQBCwYAQbOPHgsXAAJAIAANAEEAEKQBDwsgABChCBCkAQsGAEG2jx4LFwACQCAARQ0AIAAgACgCACgCBBEBAAsLOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARAwALOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARAwALOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARDQALOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARAwALOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARAwALOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARAwALeAEDfyMAQRBrIgMkACABIAAoAgQiBEEBdWohBSAAKAIAIQECQCAEQQFxRQ0AIAUoAgAgAWooAgAhAQsCQCACKAIAIgBFDQAgACAAKAIEQQFqNgIECyADIAA2AgwgBSADQQxqIAERAwAgA0EMahChCBogA0EQaiQACwYAQbiPHgsEACAACwQAIAALFwACQCAARQ0AIAAgACgCACgCBBEBAAsLCQAgAEEBOgAMCwwAIAEgACgCABEBAAs6AQF/IwBBEGsiAiQAIAIgATYCDCACELoBNgIIIAJBCGogABEAACEBIAJBCGoQ6wUaIAJBEGokACABC0YBAX9BGBCmASIBQQA6AAwgAUKBgICAsO3B0cAANwIEIAEgACgCADYCECABIAAoAgQ2AhQgAEEANgIEIAFBvKQSNgIAIAELKgAgACABKAIAIAEgASwAC0EASBtBuI8eIAIoAgQQGDYCBCAAELoBNgIACwYAQeSPHgsXAAJAIABFDQAgACAAKAIAKAIEEQEACwsQACAAIAI2AhAgACABNgIMCz0BAX8gASAAKAIEIgRBAXVqIQEgACgCACEAAkAgBEEBcUUNACABKAIAIABqKAIAIQALIAEgAiADIAARBQALKgEBfyAAIAAoAgQiAUF/ajYCBAJAIAFBAUcNACAAIAAoAgAoAgQRAQALCzkBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABEBAAsGAEHmjx4LBAAgAAsEACAACxcAAkAgAEUNACAAIAAoAgAoAgQRAQALCwkAIABBAToAMAsMACABIAAoAgARAQALOgEBfyMAQRBrIgIkACACIAE2AgwgAhC6ATYCCCACQQhqIAARAAAhASACQQhqEOsFGiACQRBqJAAgAQt9AQF/QTwQpgEiAUIANwIMIAFCgYCAgJCpops4NwIEIAFBADoAMCABQQA2AiwgAUEAKQOgnxU3AhQgAUEcakEAKQOonxU3AgAgAUEkakEAKQOwnxU3AgAgASAAKAIANgI0IAEgACgC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AOwHIABCADcC8AcgAEH4B2pCADcCACAAQYAIakIANwIAIABBiAhqQQA2AgAgAEEAOgDACCAAQQE6AJwIIABBAjYCmAggAEEBOgCUCCAAQgA3AqAIIABBqAhqQgA3AgAgAEGwCGpCADcCACAAQbgIakEANgIAIABBAjYCyAggAEEBOgDECCAAQcwIahCaCkHQvhM2AgAgAEEBOgDCCiAAQYACOwHACiAAQoCAgP6HgIDg/wA3ArgKIABBADoAtgogAEEBOwG0CiAAQoCAgP53NwKsCiAAQoCAgP53NwKkCiAAQQA6AKAKIAAgAEHkAWo2ApwKIABB8MATNgK0CSAAKAKYAigCuARBADYCFCAAC+cKAQh/IwBBMGsiASQAIABB5KwSNgLgCiAAQdisEjYC3AogAEHMrBI2AtgKIABBuKwSNgLUCiAAQYysEjYChAIgAEH4qxI2AoACIABB7KsSNgL8ASAAQcSrEjYC6AEgAEG0qxI2AuQBIABBoKsSNgJoIABB3KcSNgIAIAFBLGpBABDWCAJAIAEoAiwiAkUNABDXCAJAIAIoAjQiA0UNACADIAMoAgBBAWo2AgALIAEgAzYCICACQShqIQQDQCADRQ0BAkAgAygCyAoiBUUNACAFIAUoAgBBAWo2AgAgASgCICEDCyABIAU2AhQCQCADKALUCiAARw0AAkAgAy0AxAoNACADQQE2AowFIAEoAiAhAwsgBCADENgIAkAgASgCICIDDQAgAUEANgIIIAIgAUEIahDZCAwBCyADIAMoAgBBAWo2AgAgASADNgIIIAIgAUEIahDZCCADENoICyABQSBqIAFBFGoQ2wghAyABKAIUENwIIAMoAgAhAwwACwALIABB4ApqIQYgABDdCCABIAFBIGpBBGo2AiAgAUIANwIkIAEgAUEUakEEaiIENgIUIAFCADcCGCABIAA2AgggAEHMC2ohByABIAFBFGo2AhAgASABQSBqNgIMIAAoAtALIQUgACgCzAshAwN/AkAgAyAFRw0AIABB2AtqIQggACgC3AshBSAAKALYCyEDA0ACQCADIAVHDQAgACgC0AshAiAAKALMCyEDA0ACQCADIAJHDQAgACgC3AshAiAAKALYCyEDA0ACQCADIAJHDQAgASgCFCEDA0ACQCADIARHDQAgACgC5AogACgC6AoQ3ggCQCAALQCY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AEEANgIIIAAoAgQhAUEAIQIDQAJAIAIgAUcNACAAQQA2AgwMAgsgACgCACACQQJ0akEANgIAIAJBAWohAgwACwALCx8AAkAgAEUNACAAKAIAEOAIIAAoAgQQ4AggABCkAQsLHwACQCAARQ0AIAAoAgAQ4QggACgCBBDhCCAAEKQBCwsYAQF/AkAgACgCACIBRQ0AIAEQ3woLIAALDAAgACgCABDgCiAACyIBAX8CQANAIABFDQEgACgCACEBIAAQpAEgASEADAALAAsLDAAgACgCABDeCSAACx8BAX8CQCAAKAIAIgFFDQAgACABNgIEIAEQpAELIAALHwEBfwJAIAAoAgAiAUUNACAAIAE2AgQgARCkAQsgAAsfAQF/AkAgACgCACIBRQ0AIAAgATYCBCABEKQBCyAACx8BAX8CQCAAKAIAIgFFDQAgACABNgIEIAEQpAELIAALHwEBfwJAIAAoAgAiAUUNACAAIAE2AgQgARCkAQsgAAsfAQF/AkAgACgCACIBRQ0AIAAgATYCBCABEKQBCyAAC1gAIABByNcUNgIAIABB2ABqEMQKGiAAQcwAahDEChogAEHAAGoQxAoaIABBNGoQxAoaIABBKGoQxAoaIABBHGoQxAoaIABBEGoQxAoaIABBBGoQxAoaIAALywEBA38gAEGkvhM2AoQCIABBkL4TNgKAAiAAQYS+EzYC/AEgAEHcvRM2AugBIABBzL0TNgLkASAAQbi9EzYCaCAAQai6EzYCAAJAIAAoAigiAUUNACABIAAQpAsLIABBhAJqIQIgAEHoAWohAwJAAkAgACgCmAIiAQ0AQQAQpAEMAQsgAUGsBGoQrSQaIAEQpAELIABBzAhqEJwKGiAAQZwIahD2GxogAEHsB2oQ9hsaIABBmANqEK4kGiACEPMLGiADEPEhGiAAEJwKC0EBAn8CQAJAIAAoAgQiAUUNAANAIAEiAigCACIBDQAMAgsACwNAIAAoAggiAigCACAARyEBIAIhACABDQALCyACCz0BAX8gAEEEaiEAAkADQCAAKAIAIgBFDQEgACgCECICIAFLDQAgAiABTw0BIABBBGohAAwACwALIABBAEcLngIBBH8jAEEQayICJAACQCABRQ0AIAAoAgAgAUYNAAJAIAFBtQMgASgCACgCDBECAEUNACACQQhqIAAoAgQgARDdCgJA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AgxBfGo2AgwMAgsgAigCDCEAIAIoAgghCQNAAkAgCSAARw0AIAIgAigCCDYCDAwCCyAJKAIAIgYgASAGKAIAKALsAREDACAJQQRqIQkMAAsACyAHIAEgBygCACgC7AERAwALIAdBxAFqIQcMAAsACwJAIAcoAgAiCRCECkUNACAJIAUgCSgCACgCeBECACIIRQ0AIAkgASAIIARBAEEAQQEgCSgCACgCcBESAAsgB0EEaiEHDAALAAsgAkEgaiQAC54CAgF/BH0jAEEwayIDJAAgA0EYakEQaiACQRBqKQIANwMAIANBGGpBCGogAkEIaikCADcDACADIAIpAgA3AxgCQCAALQCZDUEBRw0AIAAqAsQKIQQgACoCpAIhBSAAKgLICiEGIAAqAqgCIQcgA0KAgICAgICAwD83AgggA0KAgID8AzcCACADIAcgBpQ4AhQgAyAFIASUOAIQIANBGGogAxC6CRoLAkACQCAAKAKUDSICDQBBACEADAELA0AgAiIAKALEASICDQALCwJAA0ACQCAADQBBACECDAILAkAgACAAKAIAKAL0AREAAA0AIAAgASADQRhqIAAoAgAoAvABEQQAIgINAgsgACgCyAEhAAwACwALIANBMGokACACC1IBAX8jAEEgayICJAAgAkEIaiAAIAEQ/gUgAEEQaiACQQhqQRBqKQIANwIAIABBCGogAkEIakEIaikCADcCACAAIAIpAgg3AgAgAkEgaiQAIAALDgAgAC0AuAFBCHFBA3YLBABBAAsEAEEACwQAQQALBABBAAsEACAACwQAQQALBwAgACgCKAsIACAAQcQAagsQACAAIAAoAgAoAvQBEQAAC4wCAgF/BH0jAEEgayIBJAAgACoCxAohAiAAKgKkAiEDIAEgACoCyAogACoCqAIiBIyUIgU4AhQgASAEIAWSOAIcIAEgAiADjJQiAjgCECABIAMgApI4AhgCQAJAIAAtAJkNQQFHDQAgASAEOAIMIAEgAzgCCCABQgA3AwAMAQsgAUEIaiABQRBqQQhqKQIANwMAIAEgASkCEDcDAAsgAEEAOgCQCCAAQQE6AOwHIAAgACgC9Ac2AvgHIAAgACgCgAg2AoQIIABB9AdqIAFBEGoQxgkgAEEAOgDACCAAQQE6AJwIIAAgACgCpAg2AqgIIAAgACgCsAg2ArQIIABBpAhqIAEQxgkgAUEgaiQAC1QAIABBBRCbLCAAQQxqQQYQ0SwgACABKgIAIAEqAgQQrSAgACABKgIIIAEqAgQQriAgACABKgIIIAEqAgwQriAgACABKgIAIAEqAgwQriAgABCxIAtEAQR9IAEqAqQCIQIgASoCqAIhAyABKgKcAiEEIAAgASoCoAIiBTgCBCAAIAQ4AgAgACAFIAOSOAIMIAAgBCACkjgCCAsEAEEBC0QBBH0gASoCpAIhAiABKgKoAiEDIAEqApABIQQgACABKgKUASIFOAIEIAAgBDgCACAAIAUgA5I4AgwgACAEIAKSOAIICwQAQQELBAAgAAs/AQF/IABBEEEAEM0JGgJAIAAoAsQNIgFFDQAgASABKAIAKAI0EQAARQ0AIAAoAsQNIgAgACgCACgCMBEBAAsLhgEBAn8CQCAALwEwIgMgAXEiBCABRg0AIAAgAyABciIDOwEwIAAgAyAAKAIAKAI4EQMAIAAoAiggACgCJBDpDiACRQ0AIAAoAhwiAkUNACACKAIAIgAgAigCBCICRg0AA0AgACACRg0BIAAoAgAgAUEBEM0JGiAAQQRqIQAMAAsACyAEIAFHCwIACwIACwIACwIAC0kBA38gACgCyAwhAiAAKALEDCEDA0ACQCADIAJHDQAgAEHgCmogARDTCQ8LIAMoAgAiBCAEKAIAKAIYEQEAIANBBGohAwwACwAL8wQBBn8jAEEQayICJAACQCAALQBoDQACQCAAKAIUIgMgACgCECIERw0AIAAoAiAgACgCHEcNACAAKAI4IAAoAjRGDQELIABBAToAaAJAA0ACQCAEIANHDQAgAEEcaiEDIAAoAiAhBSAAKAIcIQQMAgsCQAJAIAQoAgAiBSgCLCIGRQ0AIAZBCiAGKAIAKAIMEQIARQ0AIAUoAiwiBiAGKAIAKAJAEQAARQ0AIAUoAgxB1ARHDQELIAQoAgAgARDiEAsgBEEEaiEEDAALAAsCQANAIAQgBUYNASAEKAIAIgYgBi0AIEH9AXE6ACAgBiABEOIQIARBBGohBAwACwALIABBNGohByAAKAI4IQUgACgCNCEEAkADQAJAIAQgBUcNACAAIAAoAhw2AiAgACAAKAI0NgI4AkAgACgCLCAAKAIoRg0AIAMgAEEoahDjEAsCQCAAKAJEIAAoAkBGDQAgByAAQcAAahDjEAsgAEEAOgBoIAAoAkwiBCAAKAJQIgZGDQIgAiAENgIEIABBADYCTCACIAY2AgggAEEANgJQIAIgACgCVDYCDCAAQQA2AlQDQAJAIAQgBkcNACACQQRqEMQKGgwECyAAIAQoAgAQnwsgBEEEaiEEDAALAAsgBCgCACIGIAYtACBB/QFxOgAgIAYgARDiECAEQQRqIQQMAAsACyAAKAJYIgQgACgCXCIGRg0AIAIgBDYCBCAAQQA2AlggAiAGNgIIIABBADYCXCACIAAoAmA2AgwgAEEANgJgA0ACQCAEIAZHDQAgAkEEahDEChoMAgsgACAEKAIAEOAQIARBBGohBAwACwALIAJBEGokAAsEACAACx0AIAAgASgCLEEkaigCABDWCSAAQeAKaiABENcJCy0AIABBAToAwg0gACAALwEwQQRyOwEwAkAgACgCjA0gAU0NACAAIAE2AowNCwtzAQN/IwBBEGsiAiQAIAIgATYCDAJAIAEoAhBBA3EiA0UgAS0AICIEQQRxRXJBAUcNACAEQQJxDQAgAEEoQRwgAC0AaEEBcSIEG0HAAEE0IAQbIAMbaiACQQxqENgOIAEgAS0AIEECcjoAIAsgAkEQaiQACzEBAX9BACECAkAgACgC0AsgACgCzAsiAGtBAnUgAU0NACAAIAFBAnRqKAIAIQILIAILlwEBBH8gAEEBOgCwDQJAIAAoAqgNIgFFDQAgAEGcDWohAiAAQaQNaiEDA0ACQCADKAIAIgMNACACEN8IDAILIAMoAggiBEUNAAJAAkAgBCAEKAIAKAIIEQAAQQFHDQAgBCAARw0BCyAEENoJDAELIAQtAMANDQAgBCAEKAIAKAKoAxEAABoMAAsACyAAQQA6ALANIAFBAEcL2RkCCn8EfSMAQZABayIBJAACQCAAKAKUAiICRQ0AIAAoApgCIgNFDQACQAJAIAItALgBQQFHDQAgACgCNCAAKAI4EOEkRQ0AIAMgADYCACADQfoEEOMkDAELIANBABDjJAsgACgClAIiAi0ArwEhBEEAIQUCQCACLQCpASIGDQBBACEGAkAgAi0AqgFFDQBBACEFDAELQQAhBkEAIQUgAi0AuAFBAUcNACAAKAI0IAAoAjgQ4SQhBSAAKAKUAiICLQCpASEGCyACLQC5ASEHAkACQCAEQf8BcUECRw0AIAZB/wFxQQJGDQAgByEIDAELQQMhCCAGQf8BcQ0AIAdBA0EBIAUbIAdBf2pBAkkbIQgLIAItALoBIQcgAi0AqgEhAgJAAkAgBEH/AXFBAkcNACACQf8BcUECRg0AIAchCQwBC0EDIQkgAkH/AXENACAHQQNBASAFGyAHQX9qQQJJGyEJCyAAKgLQASELIAAqAtQBIQwCQAJAIAAQ5CQNAEEBIQcMAQsgABDkJEGUAmooAgAQ2Q0hBwsCQCAAIAAoAgAoAtACEQAARQ0AIAAqAqwKIg0gDVwhBCAAKgKkCiIOIA5cIQUgAC0AtAohBwJAAkACQAJAIAAoAqgKIgpBAWoOBQMCAQEAAgtBAkEBIAAtALUKGyEGQQMhCAwCC0EAIQYLIAohCAsgDCANIAQbIQwgCyAOIAUbIQsCQAJAAkAgACgCsAoiBEEBag4FAwIBAQACC0ECQQEgAC0AtgobIQJBAyEJDAILQQAhAgsgBCEJCwJAAkAgACoCuAoiDSANXA0AIAFBjAFqIA1DAAAAACANQwAAAABeG0EBEKokIQQMAQsgAUGIAWogC0MAAAAAIAtDAAAAAF4bIAgQqiQhBAsgAyAEKAIANgL8BQJAAkAgACoCvAoiDSANXA0AIAFBhAFqIA1DAAAAACANQwAAAABeG0EBEKokIQUMAQsgAUGAAWogDEMAAAAAIAxDAAAAAF4bIAkQqiQhBQsgA0HMBGohBCADIAUoAgA2AoAGAkACQAJAAkAgBkH/AXEOAwABAgMLAkAgB0EBcUUNACADQgA3AtQEIAMgAUH8AGogACgClAIqApgBQQMQqiQoAgA2AtwEDAMLIAFBDTYCeCABIAQ2AnQgAUH0AGpBABCnJBoMAgsCQCAHQQFxRQ0AIAMgACoC3AEiDTgC2AQgAyANOALUBCADIAFB8ABqIAAoApQCIgYqApgBIAYtAKgBEKokKAIANgLcBAwCCyABQQ02AnggASAENgJ0IAFB9ABqQQQQpyQaDAELAkAgB0EBcUUNACADQgA3AtQEIAMgAUHsAGogACgClAIqApgBQQMQqiQoAgA2AtwEDAELIAFBDTYCeCABIAQ2AnQgAUH0AGpBABCnJBoLAkACQAJAAkAgAkH/AXEOAwABAgMLAkAgB0EBcQ0AIANCADcC1AQgAyABQegAaiAAKAKUAioCmAFBAxCqJCgCADYC3AQMAwsgAUENNgJ4IAEgBDYCdCABQfQAakEAEKckGgwCCwJAIAdBAXENACADIAAqAuABIg04AtgEIAMgDTgC1AQgAyABQeQAaiAAKAKUAiICKgKYASACLQCoARCqJCgCADYC3AQMAgsgAUENNgJ4IAEgBDYCdCABQfQAakEEEKckGgwBCwJAIAdBAXENACADQgA3AtQEIAMgAUHgAGogACgClAIqApgBQQMQqiQoAgA2AtwEDAELIAFBDTYCeCABIAQ2AnQgAUH0AGpBABCnJBoLIAAoApQCIgYQ2Q0hAgJAIAYtAKsBIgZBCEsNAAJAAkACQEEBIAZ0IgZBB3ENACAGQThxRQ0CIAJFDQEgAUEKNgJ4IAEgBDYCdCABQfQAakECEKckGiABQQc2AnggASAENgJ0IAFB9ABqQQIQpyQaDAMLAkAgAkUNACABQQo2AnggASAENgJ0IAFB9ABqQQEQpyQaIAFBBzYCeCABIAQ2AnQgAUH0AGpBARCnJBoMAwsgAUEENgJ4IAEgBDYCdCABQfQAakEAEOUkGgwCCyABQQQ2AnggASAENgJ0IAFB9ABqQQEQ5SQaDAELAkAgAkUNACABQQo2AnggASAENgJ0IAFB9ABqQQMQpyQaIAFBBzYCeCABIAQ2AnQgAUH0AGpBAxCnJBoMAQsgAUEENgJ4IAEgBDYCdCABQfQAakECEOUkGgsCQAJAAkACQAJAAkACQCAAKAKUAi0AqwEODAABAgABAgABAgMEBQYLAkAgAkUNACABQQQ2AnggASAENgJ0IAFB9ABqQQAQ5SQaDAYLIAFBCjYCeCABIAQ2AnQgAUH0AGpBARCnJBogAUEHNgJ4IAEgBDYCdCABQfQAakEBEKckGgwFCwJAIAJFDQAgAUEENgJ4IAEgBDYCdCABQfQAakEBEOUkGgwFCyABQQo2AnggASAENgJ0IAFB9ABqQQIQpyQaIAFBBzYCeCABIAQ2AnQgAUH0AGpBAhCnJBoMBAsCQCACRQ0AIAFBBDYCeCABIAQ2AnQgAUH0AGpBAhDlJBoMBAsgAUEKNgJ4IAEgBDYCdCABQfQAakEDEKckGiABQQc2AnggASAENgJ0IAFB9ABqQQMQpyQaDAMLIAFBCjYCeCABIAQ2AnQgAUH0AGpBARCnJBogAUEHNgJ4IAEgBDYCdCABQfQAakEBEKckGiABQQQ2AnggASAENgJ0IAFB9ABqQQMQ5SQaDAILIAFBCjYCeCABIAQ2AnQgAUH0AGpBAhCnJBogAUEHNgJ4IAEgBDYCdCABQfQAakECEKckGiABQQQ2AnggASAENgJ0IAFB9ABqQQMQ5SQaDAELIAFBCjYCeCABIAQ2AnQgAUH0AGpBAxCnJBogAUEHNgJ4IAEgBDYCdCABQfQAakEDEKckGiABQQQ2AnggASAENgJ0IAFB9ABqQQMQ5SQaCyADIAFB3ABqIAAoApQCIgIqAkQgAi0AzQEQqiQoAgA2AoQGIAMgAUHYAGogAioCSCACLQDOARCqJCgCADYCiAYgAyABQdQAaiACKgI8IAItAM8BEKokKAIANgKMBiADIAFB0ABqIAIqAkAgAi0A0AEQqiQoAgA2ApAGIAMgAUHMAGogAioCNCACLQDLARCqJCgCADYC8AUgAyABQcgAaiACKgI4IAItAMwBEKokKAIANgL0BSADQcwFaiIGIAIgAC0AlAMQkAkiB0ECRiIFQQN0aiABQcQAaiACKgJMIAItALsBEKokKAIANgIAIAYgB0ECRyIKQQN0aiABQcAAaiACKgJQIAItALwBEKokKAIANgIAIAMgAUE8aiACKgJUIAItAL0BEKokKAIANgLQBSADIAFBOGogAioCWCACLQC+ARCqJCgCADYC2AVBASEIIAVBAXQhByAAEOQkIQYgACgClAIiAioCXCENQQEhCQJAIAZFDQAgAi0AvwEhCQsgCkEBdCEFIANB4ARqIgogB0ECdGogAUE0aiANIAkQqiQoAgA2AgAgAioCYCENAkAgBkUNACACLQDAASEICyAKIAVBAnRqIAFBMGogDSAIEKokKAIANgIAIAIqAmQhDUEBIQhBASEJAkAgBkUNACACLQDBASEJCyADIAFBLGogDSAJEKokKAIANgLkBCACKgJoIQ0CQCAGRQ0AIAItAMIBIQgLIAMgAUEoaiANIAgQqiQoAgA2AuwEIANBqAVqIgYgB0ECdCIHaiABQSRqIAIqAmwgAi0AwwEQqiQoAgA2AgAgBiAFQQJ0IgVqIAFBIGogAioCcCACLQDEARCqJCgCADYCACADIAFBHGogAioCdCACLQDFARCqJCgCADYCrAUgAyABQRhqIAIqAnggAi0AxgEQqiQoAgA2ArQFIANBhAVqIgYgB2ogAUEUaiACKgJ8IAItAMcBEKokKAIANgIAIAYgBWogAUEQaiACKgKAASACLQDIARCqJCgCADYCACADIAFBDGogAioChAEgAi0AyQEQqiQoAgA2AogFIAMgAUEIaiACKgKIASACLQDKARCqJCgCADYCkAUQ5iQhBiADQX8Q5yR0QX9zIgcgAi0ArwFxQRB0QX8gBnRBf3MiBiACLQCuAXFBFnQgAygCzAQgBkEWdEF/c3FyIAdBEHRBf3NxcjYCzAQgAyAAKAKUAiICKgKMATgC0AQgAi0AsAEhAiABQQI2AnggASAENgJ0IAFB9ABqIAIQpiQaEOgkIQIgA0F/EOkkdCIGQX9zIAAoApQCIgAtALEBcUF/IAJ0QX9zIgIgAC0AtgFxQRJ0IAMoAswEIAJBEnRBf3NxciAGcXI2AswEIAMgACoCnAEiDUMAAMB/IA1DAAAAAF4bOAKUBiADQRhqIARBzAEQSxoLIAFBkAFqJAALQAECfwJAIAAoAuAMIgEgACgC3AwiAEYNAANAIAAgAUYNASAAKAIAIgIgAigCACgCABEBACAAQQRqIQAMAAsACwtIAQJ/IwBBEGsiASQAAkAgACgCgA0iAkUNACACIAIoAgBBAWo2AgALIAEgAjYCDCAAIAFBDGoQ3QkgASgCDBDeCSABQRBqJAALoAQBB38jAEEgayICJAAgAEGADWogARD7CSEDIAAoAsgMIQQgACgCxAwhBQJAA0ACQCAFIARHDQAgAEHgCmogAygCABD8CUEAIQVBACEGA0AgBSAAKALoCiAAKALkCiIHa0ECdU8NAwJAIAcgBUECdGoiAygCACIELQAQQQNxRQ0AAkAgBSAGRg0AIAcgBkECdGoiBygCACEIIAcgBDYCACADIAg2AgALIAZBAWohBgsgBUEBaiEFDAALAAsgAkEcaiADKAIAIAUoAgAiBygCBBDgCQJAAkAgAigCHCIGRQ0AIAZBtQMgBigCACgCDBECAEUNAAJAIAIoAhwiBkUNACAGIAYoAkRBAWo2AkQLIAIgBjYCGAJAIAMoAgAiBkUNACAGIAYoAgBBAWo2AgALIAIgBjYCFCAHIAJBGGogAkEUaiAHKAIAKAIMEQUAIAIoAhQQ3gkgAigCGBCiBgwBCwJAIAMoAgAiBkUNACAGIAYoAgBBAWo2AgALIAIgBjYCECAHIAJBEGogBygCACgCCBEDACACKAIQEN4JCyACKAIcEKIGIAVBBGohBQwACwALIAAoAuwMIQMgACgC6AwhBQJAA0AgBSADRg0BIAUoAgAhBgJAIAEoAgAiB0UNACAHIAcoAgBBAWo2AgALIAIgBzYCDCAGQSxqIAJBDGoQ+wkaIAIoAgwQ3gkgBUEEaiEFDAALAAsgABD9CSACQSBqJAALDwACQCAARQ0AIAAQ/gkLC9IBAQV/IwBBEGsiASQAAkAgACgCgA1FDQAgACgCyAwhAiAAKALEDCEDA0AgAyACRg0BIAFBDGogACgCgA0gAygCACIEKAIEEOAJAkACQCABKAIMIgUNAAJAIAAoAoANKAIIIgUNAEEAIQUgAUEANgIMDAILIAUgBSgCREEBajYCRCABIAU2AgwLIAUgBSgCREEBajYCRAsgASAFNgIIIAQgAUEIaiAEKAIAKAJEEQMAIAEoAggQogYgASgCDBCiBiADQQRqIQMMAAsACyABQRBqJAALlQEBAn8jAEEgayIDJAACQAJAIAINACAAQQA2AgAMAQsCQCACLQAMQQFHDQACQCACKAIcIgRFDQAgBCgCjAEiBEUNACAAIAEgA0EUaiACEIAREO8QIgIgBEHEAGoQkBEgAhDJBxoMAgsgAEEANgIADAELIAAgASADQQhqIAIQgBEQ7xAiAhCPESACEMkHGgsgA0EgaiQACyMAAkAgAUG/AyABKAIAKAIMEQIARQ0AIAEgACgCgA0Q4gkLC/4DAQN/IwBBMGsiAiQAAkAgAUUNAAJAAkACQCAALQAQQRBxRQ0AAkAgAC0ATA0AIABBAToATCAAKAJEIAAoAkAiA0YNACAAKAI8IgRFDQAgBCgCjAEiBEUNAAJAIAJBJGogBEHEAGogAygCACAEKAJEKAIEEQIAEO8QIgMoAgAgAygCBEYNACAAQcAAaiADEO4QGgsgAxDJBxogAC0AEEEQcUUNAQsgACgCPA0BCyABIAJBDGogAEHAAGoQ7xAiBBDwECEDDAELIAEgAkEYaiAAQcAAahDvECIEIAAoAjwoAowBIgNBxABqQQAgAxsQ8RAhAwsgBBDJBxoCQAJAAkAgACgCMCIERQ0AIAMgBEYNAQsCQCADRQ0AIABBMGohBCAAEJsPIAMgAygCOEEBajYCOAJAIAAtABBBBHENACADIABBGGoQqAwLIAMgAygCOEEBajYCOCAEIAMQmQ0CQCAEKAIARQ0AIAAoAiwiBEUNACAEQa8EIAQoAgAoAgwRAgBFDQAgACgCLCAAKAIwIgQgBCgCACgCCBEAAEG6A0Y6AKAECyADEOkGIAAgACgCACgCPBEBAAwCCyAAIAAoAgAoAkARAQAMAQsgAEGAIEEBIAAoAgAoAkQRBQALIAAoAjgiA0UNACADIAEgACADKAIAKAI4EQUACyACQTBqJAALAgALBABBAQsWACAAQZx+aiIAIAAoAgAoAvQBEQAACwsAIABBwH5qKAIACwsAIABBmH5qENUICwsAIABBmH5qEPEICwgAIABB3H5qCwsAIABBgH5qENUICwsAIABBgH5qEPEICwgAIABB/H1qCw0AIAAgAUH8fWoQxwkLEQAgACABIAEoAgAoAggRAwALCwAgAEH8fWoQ2QkLBABBAQsLACAAQax1ahDVCAsLACAAQax1ahDxCAsvAQF/QQAhAgJAIAAoAnwgACgCeCIAa0ECdSABTQ0AIAAgAUECdGooAgAhAgsgAgsIACAAQah1agsLACAAQaR1ahDbCQsNACAAQaB1aiABENIJCw0AIABBoHVqIAEQ1QkLCwAgAEGgdWoQ3AkLCwAgAEGgdWoQ3wkLDQAgAEGgdWogARDhCQs4AAJAIAAgAUYNAAJAIAEoAgAiAQ0AIABBABD/CSAADwsgASABKAIAQQFqNgIAIAAgARD/CQsgAAtVAQN/IAAoAgghAiAAKAIEIQMCQANAIAMgAkYNAQJAIAMoAgAiBEG/AyAEKAIAKAIMEQIARQ0AIAMoAgAgARDiCQsgA0EEaiEDDAALAAsgACABNgJkC14BA38CQCAALQCYDUEBRw0AIAAoAuwMIQEgACgC6AwhAANAIAAgAUYNAQJAIAAoAgAiAigCBCIDRQ0AAkAgAi0APQ0AIAMgAhCACgsgAhCBCgsgAEEEaiEADAALAAsLNAEBfyAAIAAoAgAiAUF/ajYCAAJAIAFBAUcNACAAQQhqEKMGGiAAQQRqEOUIGiAAEKQBCwsXAQF/IAAoAgAhAiAAIAE2AgAgAhDeCQuMDQIMfwJ9IwBBIGsiAiQAAkAgACgCfCIDRQ0AIAMoAogBIgRFDQACQCAAKAJUIgMNACACIAAoAgwgAEEMaiAALAAXQQBIGzYCACAAQbj+ESACEIsGDAELIAQoAgQgAxCJCgJAAkAgAC0AjAFBAUcNACAAKAJgIQMMAQsgAEEBOgCMASAAIAAoAlxB////AHEiAzYCYAsgASADNgIYIAIgBCgCBCIFNgIQIAVFDQAgASgCKCEAAkACQCABKAIcIgNFDQAgACAERg0BCwJAIABFDQACQCADRQ0AIAAoAgQgAxCNEiABQQA2AhwLIAFBMGooAgAgAUE0aigCABCyMSABELMxIAEoAiggARC5LQsgAUEAOgA9IAEoAhAhBiABKAIMIQACQANAIAAgBkYNAQJAIAAoAgAQlw8iA0UNACADIAMoAgAoAhARAABFDQMLIABBBGohAAwACwALIAVBCEEqEMQnIgBBADoABCAAIAE2AgAgASAANgIkIAEgBUF/EPAnNgIgAkAgBSABQQFBARCkLUUNACABIAJBEGoQtDEMAQsCQAJAIAUoAggiAEFwakGwvxxGDQAgAEF8aigCAEEHRg0BCyABIAJBEGoQtDEMAQsgBUF/EPAnIQAgASAENgIoIAEgADYCHCAEQQxqIQMgARC2LSEHAkACQCAEKAIQIggNAAwBCwJAAkAgCGkiBkEBSw0AIAhBf2ogB3EhCQwBCyAHIQkgByAISQ0AIAcgCHAhCQsgAygCACAJQQJ0aigCACIARQ0AIAhBf2ohCiAGQQFLIQsDQCAAKAIAIgBFDQECQCAAKAIEIgYgB0YNAAJAAkAgCw0AIAYgCnEhBgwBCyAGIAhJDQAgBiAIcCEGCyAGIAlHDQIMAQsgACgCCCABRw0ADAILAAtBDBCmASEAIAIgBEEUaiIMNgIYIAIgADYCFCAAIAE2AgggACAHNgIEIABBADYCACACQQE6ABwgBCoCHCEOIAQoAhhBAWqzIQ8CQAJAIAhFDQAgDiAIs5QgD11FDQELIAhBAXQgCEEDSSAIIAhBf2pxQQBHcnIhAAJAAkAgDyAOlY0iD0MAAIBPXSAPQwAAAABgcUUNACAPqSEBDAELQQAhAQtBAiEGAkAgACABIAAgAUsbIgBBAUYNAAJAIAAgAEF/anENACAAIQYMAQsgABD7CCEGCwJAAkACQAJAIAYgBCgCECIISw0AIAYgCE8NAyAIQQNJIQECQAJAIAQoAhizIAQqAhyVjSIPQwAAgE9dIA9DAAAAAGBxRQ0AIA+pIQAMAQtBACEACwJAAkAgAQ0AIAhpQQFLDQAgAEEBQSAgAEF/amdrdCAAQQJJGyEADAELIAAQ+wghAAsCQCAGIAAgBiAASxsiBiAISQ0AIAQoAhAhCAwECyAGRQ0BCwJAIAZBgICAgARPDQAgAyAGQQJ0EKYBELgtIAQgBjYCEEEAIQACQANAAkAgACAGRw0AIAwoAgAiCA0CDAULIAMoAgAgAEECdGpBADYCACAAQQFqIQAMAAsACyAIKAIEIQkCQAJAIAZpIgBBAUsNACAJIAZBf2pxIQkMAQsgCSAGSQ0AIAkgBnAhCQsgAygCACAJQQJ0aiAMNgIAIAZBf2ohDSAAQQFLIQsDQCAIKAIAIgFFDQMgASgCBCEAAkACQCALDQAgACANcSEADAELIAAgBkkNACAAIAZwIQALAkAgACAJRg0AAkAgAygCACAAQQJ0IgVqIgooAgANACAKIAg2AgAgACEJDAELIAggASgCADYCACABIAMoAgAgBWooAgAoAgA2AgAgAygCACAFaigCACABNgIADAELIAEhCAwACwALEKgHAAtBACEIIANBABC4LSAEQQA2AhAMAQsgBiEICwJAIAggCEF/aiIAcQ0AIAAgB3EhCQwBCwJAIAcgCE8NACAHIQkMAQsgByAIcCEJCyACKAIUIQACQAJAAkAgAygCACAJQQJ0IgZqKAIAIgENACAAIAwoAgA2AgAgDCAANgIAIAMoAgAgBmogDDYCACAAKAIAIgFFDQIgASgCBCEBAkACQCAIIAhBf2oiBnENACABIAZxIQEMAQsgASAISQ0AIAEgCHAhAQsgAygCACABQQJ0aiEBDAELIAAgASgCADYCAAsgASAANgIACyACQQA2AhQgBCAEKAIYQQFqNgIYIAJBFGoQty0aIAIoAhAhBQsgBSAFKAIIQXBqNgIICyACQSBqJAALxwMBBH8CQAJAIAAoAigiAQ0AQQAhAgwBCyABKAIEIQILAkAgAkUNACAAKAIcRQ0AIAAoAhAhAyAAKAIMIQECQANAIAEgA0YNAQJAIAEoAgAQlw8iBEUNACAEIAQoAgAoAhgRAABFDQMLIAFBBGohAQwACwALIAAoAhAhAyAAKAIMIQECQANAIAEgA0YNAQJAIAEoAgAQlw8iBEUNACAEIAQoAgAoAhQRAABFDQMLIAFBBGohAQwACwALAkAgAC0AGUECcUUNACAALQA9DQAgAiAAKAIcEIkKAkAgAkF/QYj8EBCKCkEIRw0AIAJBfhCLCiACIAAoAiAQiQoCQCACIABBAkEBEKQtRQ0AIAIgACgCHBCNEiAAELMxIAIgAigCCEFgajYCCAJAIAAoAigiAUUNACABIAAQuS0LIABBADYCHCAAQQA2AigPCwJAIAJBfxCILkUNACAAKAIkLQAEQQFHDQELIAIgACgCHBCNEiAAELMxIAIgAigCCEFgajYCCAJAIAAoAigiAUUNACABIAAQuS0LIABBADYCHCAAQQA2AigPCyACIAIoAghBYGo2AgggAEEBOgA9CyAAIAAoAgAoAjQRAQALC+4BAQJ/IwBBEGsiAiQAAkACQAJAIAAoAgQiAw0AIAJBDGogASABKAIAKAIYEQMAIAIoAgwhAyACQQA2AgwgAEEEaiADEOIsAkAgAigCDCIDRQ0AIAMgAygCBCIBQX9qNgIEIAFBAUcNACADIAMoAgAoAgQRAQALIAAoAgQiAyAAQQhqIAMoAgAoAjQRAwAgACgCBCIDIAAoAiwgAygCACgCDBEDAAwBCyAALQAAQQFHDQEgAyADKAIAKAIIEQEAIAAoAgQiAyAAQQhqIAMoAgAoAjQRAwALIABBADoAACAAKAIEIQMLIAJBEGokACADC6UBAQR/IwBBIGsiAiQAAkACQCAAKAIEIgMgACgCCCIETw0AIAMgASgCADYCACADQQRqIQEMAQsgAkEMaiAAKAIAIgUgBCADIAVrQQJ1QQFqEIUKIAAoAgQgACgCAGtBAnUgAEEIahCGCiIDKAIIIAEoAgA2AgAgAyADKAIIQQRqNgIIIAAgAxCHCiAAKAIEIQEgAxCIChoLIAAgATYCBCACQSBqJAALKgEBf0EAIQECQCAAIAAoAgAoAkwRAABFDQAgACgCXC0ABEEBcSEBCyABCzgAAkAgAkGAgICABEkNABCsAQALIAEgAGsiAUEBdSIAIAIgACACSxtB/////wMgAUH8////B0kbC2UAIAAgAzYCEEEAIQMgAEEANgIMAkACQCABRQ0AIAFBgICAgARPDQEgAUECdBCmASEDCyAAIAM2AgAgACADIAJBAnRqIgI2AgggACADIAFBAnRqNgIMIAAgAjYCBCAADwsQqAcAC5MBAQN/IAEoAgQhAiAAKAIAIQMgACgCBCEEAkADQCAEIANGDQEgAkF8aiICIARBfGoiBCgCADYCAAwACwALIAEgAjYCBCAAKAIAIQQgACACNgIAIAEgBDYCBCAAKAIEIQQgACABKAIINgIEIAEgBDYCCCAAKAIIIQQgACABKAIMNgIIIAEgBDYCDCABIAEoAgQ2AgALQgECfyAAKAIIIQEgACgCBCECAkADQCABIAJGDQEgACABQXxqIgE2AggMAAsACwJAIAAoAgAiAUUNACABEKQBCyAACxYAIABBARCvEhogAEHwsX8gARDLJxoLmQIBAn8jAEEQayIDJAACQCAALQABIgRBBHFFDQAgACAEQfsBcToAASAAIAAoAhAiBCgCHDYCQCAEIAA2AhwLAkACQEEALQCUmR5BAUcNACAAKAIIQRBqIAAoAhQoAghNDQAgAEEBEK8SRQ0BCwJAAkAgAUEBSA0AIAAoAgwgAUEEdGpBcGoiAUGwvxwgASAAKAIISRshAQwBCwJAIAFB8bF/SA0AIAAoAgggAUEEdGohAQwBCyAAIAEQqhIhAQsgACACIAIQWRCQSyECIANBBjYCDCADIAI2AgAgACABIAMgACgCCBCUSyAAIAAoAggiAUEQajYCCCABKAIMIQAgA0EQaiQAIAAPCyAAQbbvEEEAELESIAAQshIAC/oBAQF/AkAgAC0AASICQQRxRQ0AIAAgAkH7AXE6AAEgACAAKAIQIgIoAhw2AkAgAiAANgIcCwJAAkBBAC0AlJkeQQFHDQAgACgCCEEQaiAAKAIUKAIITQ0AIABBARCvEkUNAQsCQAJAIAFBAUgNACAAKAIMIAFBBHRqQXBqIgFBsL8cIAEgACgCCCICSRshAQwBCwJAIAFB8bF/SA0AIAAoAggiAiABQQR0aiEBDAELIAAgARCqEiEBIAAoAgghAgsgAiABKQMANwMAIAJBCGogAUEIaikDADcDACAAIAAoAghBEGo2AggPCyAAQbbvEEEAELESIAAQshIAC+gEAQt/IwBBEGsiAiQAAkAgACgCBCIDIAAoAggiBEEFdEcNAAJAAkACQCADQQFqQX9MDQBB/////wchBQJAIANB/v///wNLDQAgAyAEQQZ0IgQgA0Hg////A3FBIGoiBSAEIAVLGyIFTw0EIAVBf0wNAQsgAkEANgIMIAJCADcCBCACQQRqIAUQlwogACgCACEGIAIgAigCCCIDIAAoAgQiBGoiBTYCCCAEQQN2Qfz///8BcSEHAkAgAw0AIAVBf2ohCAwCCyAFQX9qIgggA0F/anNBH0sNASACKAIEIQkMAgsQrAEACyACKAIEIglBACAIQQV2IAVBIUkbQQJ0akEANgIACyAEQR9xIQogBiAHaiELIANBH3EhBSAJIANBA3ZB/P///wFxaiEHIAYhBEEAIQMCQANAAkAgBCALRw0AIAMgCkYNAgtBASAFdCEIAkACQCAEKAIAIAN2QQFxRQ0AIAcoAgAgCHIhCAwBCyAHKAIAIAhBf3NxIQgLIAcgCDYCAEEAIAVBAWogBUEfRiIIGyEFQQAgA0EBaiADQR9GIgwbIQMgByAIQQJ0aiEHIAQgDEECdGohBAwACwALIAAgCTYCACACIAY2AgQgACgCBCEDIAAgAigCCDYCBCACIAM2AgggACgCCCEDIAAgAigCDDYCCCACIAM2AgwgAkEEahCNChogACgCBCEDCyAAIANBAWo2AgRBASADdCEEIAAoAgAgA0EDdkH8////AXFqIQMCQAJAIAEtAABBAUcNACADKAIAIARyIQQMAQsgAygCACAEQX9zcSEECyADIAQ2AgAgAkEQaiQACxgBAX8CQCAAKAIAIgFFDQAgARCkAQsgAAsCAAueAgIJfwJ9IwBBIGsiASQAIAFCgICAgBA3AgggAEHIAWohAiAAQbwEaiEDIABB0AFqIQQgAEHYAWohBUEAIQACQANAIABBCEYNAQJAAkAgBSABQQhqIABqKAIAIgZBAnQiB2ooAgAiCBC6Sg0AIAQgB2ooAgAhCSABQRhqIAgQqSQgAUEQaiAJEKkkIAEoAhwiCSABKAIURw0AAkAgCUUNACABKgIQIQoCQCABKgIYIgsgC1sNACAKIApcDQELIAsgCpOLQxe30ThdRQ0BCyABQRhqIAgQqSQgAyAGQQN0aiABKQMYNwIADAELIAFBGGogAiAHaigCABCpJCADIAZBA3RqIAEpAxg3AgALIABBBGohAAwACwALIAFBIGokAAuaAQMBfwJ+An1BACEDAkAgACABQQJ0QcSKHGooAgBBA3RqQbwEaiIBKQIAIgRCgICAgBBUDQAgBEIgiCIFQgNRDQAgASoCACEGIASnviEHAkAgBUIBUg0AIAYgBlwNAEEAIQMgB0MAAAAAXQ0BQQEPC0EBIQMgBUICUg0AIAYgBlwNAEEAIQMgB0MAAAAAXQ0AIAIgAlshAwsgAwsVACAAIAEgAhDASiAAIAEgAhDCSpILWQIBfwJ9IwBBEGsiAiQAIAJBCGogABCpJEMAAMB/IQMgAioCCCEEAkACQAJAIAIoAgxBf2oOAgABAgsgBCEDDAELIAQgAZRDCtcjPJQhAwsgAkEQaiQAIAMLwAgCB38CfSMAQRBrIg4kAAJAAkACQCAALQAEQQRxRQ0AIAAoArgCIA1HDQELQQAhDyAAKAK8AiADRg0BCyAAQoCAgPyLgIDAv383ApwEIABCADcClAQgAEKAgID8i4CAwL9/NwKMBCAAQQA2AsACQQEhDwsCQAJAAkACQAJAIAAoAghFDQBBACEQAkAgBCABIAUgAiAAKAKUBCAAKgKMBCAAKAKYBCAAKgKQBCAAKgKcBCAAKgKgBCAAQQIgBhCRCiIVIABBACAGEJEKIhYgChDqSkUNACAAQYwEaiERDAILIABBxAJqIRIgACgCwAIhE0EBIRQDQCAQIBNGDQMgEEEYbCERIBBBAWohECAEIAEgBSACIBIgEWoiESgCCCARKgIAIBEoAgwgESoCBCARKgIQIBEqAhQgFSAWIAoQ6kpFDQAMAgsACwJAIAgNACAAQcQCaiESIAAoAsACIRNBASEUQQAhEANAIBAgE0YNAwJAAkACQCASIBBBGGxqIhEqAgAiFSAVXCABIAFccg0AIBUgAZOLQxe30ThdDQEMAgsgFSAVWw0BIAEgAVsNAQsCQAJAIBEqAgQiFSAVXCACIAJccg0AIBUgApOLQxe30ThdDQEMAgsgFSAVWw0BIAIgAlsNAQsgESgCCCAERw0AIBEoAgwgBUYNAwsgEEEBaiEQDAALAAsCQAJAIAAqAowEIhUgFVwgASABXHINACAVIAGTi0MXt9E4XQ0BQQAhEUEBIRQMBAtBACERQQEhFCAVIBVbDQMgASABWw0DCyAAQYwEaiERAkACQCAAKgKQBCIVIBVcIhAgAiACXCITckUNACAQIBNxIRAMAQsgFSACk4tDF7fROF0hEAsgEUEAIAAoApgEIAVGG0EAIAAoApQEIARGG0EAIBAbIRELIA8gEUUiFHINASAAIBEqAhA4AoQEIAAgESoCFDgCiAQgC0EMQRAgCBtqIhAgECgCAEEBajYCAEEDIRBBACEEDAILQQAhEQsgACABIAIgAyAEIAUgBiAHIAggCiALIAxBAWogDSAJEO5KIAAgAzYCvAICQCAUDQBBAyEQQQEhBAwBCwJAIAAoAsACIgpBAWoiECALKAIITQ0AIAsgEDYCCAsgAEGMBGogACAKQQAgCkEIRxsiE0EYbGpBxAJqIAgbIRACQAJAIApBCEYNACAIDQELIAAgEyAIQQFzajYCwAILIBAgBTYCDCAQIAQ2AgggECACOAIEIBAgATgCACAQIAAqAoQEOAIQIBAgACoCiAQ4AhRBASEEQQEhEAsCQCAIRQ0AIAAgACkChAQ3AvQBIAAgAC0ABCIQQQFyIgVB+wFxIAUgEEEEcRs6AARBACARIABBjARqRkEBdCAPGyEQCyAAIA02ArgCIA5BADYCCCAOIBA2AgQgDiAOQQRqNgIMIABBAiAOQQxqEI4KIA5BEGokACAECw0AIABB/wFxQQAQ0UoL0gEBA38gACAAKAIYQQIQykogAUEBIAAoAqgEGyIFEMtKIgEgAhDJSiECIABBA0ECIAVBAkYbQQAgAUECSRsiBSADEMlKIQMgAEHkAWoiBiABQQJ0IgdBpIocaigCAEECdGogAiAAIAEgBBDASpI4AgAgBiAHQbSKHGooAgBBAnRqIAIgACABIAQQwkqSOAIAIAYgBUECdCIBQaSKHGooAgBBAnRqIAMgACAFIAQQwEqSOAIAIAYgAUG0ihxqKAIAQQJ0aiADIAAgBSAEEMJKkjgCAAvRAwMDfQZ8BX8CQCABRAAAAAAAAAAAYQ0AIAAqAvgBIQQgACoC9AEhBSAAKgLoASEGIAAgACoC5AG7IgcgAUEAIAAtAARBCHEiDUEDdiIOEOlKOALkASAAIAa7IgggAUEAIA4Q6Uo4AugBIAW7IgkgAaIiCiAKnaEiCyAKpiIMIAxiIg8gC5lELUMc6+I2Gj9jIg5BAXNyIRAgCCADoCEDIAS7IQogByACoCECAkAgDg0AIA8NACAMRAAAAAAAAPC/oJlELUMc6+I2Gj9jQQFzIRALIAMgCqAhDCACIAmgIQcgCiABoiIKIAqdoSIIIAqmIgogCmIiESAImUQtQxzr4jYaP2MiDkEBc3IhDwJAIA4NACARDQAgCkQAAAAAAADwv6CZRC1DHOviNho/Y0EBcyEPC0EAIQ4gACAHIAEgDUEARyINIBBxIA0gEEEBc3EQ6UogAiABQQAgDRDpSpM4AvQBIAAgDCABIA0gD3EgDSAPQQFzcRDpSiADIAFBACANEOlKkzgC+AEgAEGwBGoiDSgCACAAQawEaiIQKAIAa0ECdSEAA0AgDiAARg0BIBAoAgAgDSgCACAOEOJKIAEgAiADEJYKIA5BAWohDgwACwALCzkBAX8CQCABQX9KDQAQrAEACyABQX9qQQV2QQFqIgEQmAohAiAAIAE2AgggAEEANgIEIAAgAjYCAAscAAJAIABBgICAgARJDQAQqAcACyAAQQJ0EKYBCy8AAkAgAkUNAANAAkAgACgCACABRw0AIAAPCyAAQQRqIQAgAkF/aiICDQALC0EACz4AIAAQmwoiAEIANwK8ASAAQayDFTYCaCAAQYyBFTYCACAAQgM3ArQBIABBAToAzAEgAEHEAWpCADcCACAAC1gAIAAQzwoiAEGErBU2AmggAEGYqhU2AgAgAEIANwKQASAAQQA6ALABIABBACkDoJ8VNwKYASAAQaABakEAKQOonxU3AgAgAEGoAWpBACkDsJ8VNwIAIAALOgEBfyAAQayDFTYCaCAAQYyBFTYCAAJAAkAgACgCvAEiAQ0AQQAQpAEMAQsgARDoCBCkAQsgABCdCgs6AQF/IABB2LEVNgJoIABB1LAVNgIAAkACQCAAKAKMASIBDQBBABCkAQwBCyABEMEKEKQBCyAAEMIKCwoAIAAQnAoQpAELBABBDQs4AQF/AkACQCABQXZqIgJBHEsNAEEBIAJ0QYuAgIABcQ0BCyABQQJGDQAgAUHbAEYNAEEADwtBAQs8AAJAAkAgAUGBAUYNACABQRdHDQEgACACEKIKNgK0AUEBDwsgACACEKIKNgK4AUEBDwsgACABIAIQowoLNQEBfgJAIAAQkw8iAUKAgICAEFQNACAAQQE6AA0gACAAKAIAIAAoAgRqNgIIQgAhAQsgAacLOgACQAJAAkAgAUFzag4CAAECCyAAIAIQuwo4ApABQQEPCyAAIAIQuwo4ApQBQQEPCyAAIAEgAhC8CgsCAAsKACAALwEwQQFxCw8AIABBAToAsAEgABCnCguiAQECfyMAQSBrIgEkAAJAAkAgACgCiAEiAkUNACABQQhqIAJBxABqIABB7ABqEP4FIABB1ABqIAFBGGopAgA3AgAgAEHMAGogAUEQaikCADcCACAAIAEpAgg3AkQMAQsgACAAKQJsNwJEIABB1ABqIABB/ABqKQIANwIAIABBzABqIABB9ABqKQIANwIACyAAIAAoAgAoAmARAQAgAUEgaiQACwgAIAAqApABCwgAIAAqApQBCxMAIABCADcCACAAQQhqQgA3AgALKQIBfwF9IwBBIGsiASQAIAFBCGogABCsCiABKgIYIQIgAUEgaiQAIAIL+gIBA38jAEHQAGsiAiQAAkACQCABLQCwAUEBRw0AIAFBADoAsAECQCABKAKIASIDRQ0AIAJBOGpBEGogA0HUAGopAgA3AwAgAkE4akEIaiADQcwAaikCADcDACACIAMpAkQ3AzggAkEgakEQakEAKQOwnxU3AwAgAkEgakEIakEAKQOonxU3AwAgAkEAKQOgnxU3AyAgAkE4aiACQSBqEP0FRQ0AIAJBCGogAkEgaiABQcQAahD+BSABQagBaiIDIAJBCGpBEGopAgA3AgAgAUGgAWoiBCACQQhqQQhqKQIANwIAIAEgAikCCDcCmAEgAEEQaiADKQIANwIAIABBCGogBCkCADcCACAAIAEpApgBNwIADAILIAFBqAFqQQApA7CfFTcCACABQaABakEAKQOonxU3AgAgAUEAKQOgnxU3ApgBCyAAIAEpApgBNwIAIABBEGogAUGoAWopAgA3AgAgAEEIaiABQaABaikCADcCAAsgAkHQAGokAAspAgF/AX0jAEEgayIBJAAgAUEIaiAAEKwKIAEqAhwhAiABQSBqJAAgAgsHAEMAAAAACwcAQwAAAAALHwEBfyAAKALQASICIAEgAC0AzAEgAigCACgCCBEFAAsEAEEACwQAQQALBABBAAsEAEEBCxUAIAAoAtABIgAgACgCACgCEBEAAAsYACAAKALQASIAIAAoAgAoAhARAABBAXMLFQAgACgC0AEiACAAKAIAKAIUEQAACwQAQQALFQAgACgC0AEiACAAKAIAKAIMEQAACwkAIABCADcCAAtNAgJ/AX0CQAJAIAAoAgAgACgCBGoiASAAKAIIIgJrQQNLDQAgAEEBOgAMQwAAAAAhAwwBCyACQQRqIQEgAioAACEDCyAAIAE2AgggAwtJAAJAAkACQAJAIAFBcWoOAwABAgMLIAAgAhC7CjgCXEEBDwsgACACELsKOAJgQQEPCyAAIAIQuwo4AmRBAQ8LIAAgASACEL0KCyIAAkAgAUESRw0AIAAgAhC7CjgCQEEBDwsgACABIAIQvgoLYAECfyMAQRBrIgMkAEEAIQQCQAJAAkACQCABQXxqDgIAAQMLIANBBGogAhC/CiAAQQxqIANBBGoQwAogA0EEahCCBhoMAQsgACACEKIKNgIYC0EBIQQLIANBEGokACAEC+oBAgF+BH8gARCTDyECAkAgAS0ADEEBRw0AIABCADcCACAAQQhqQQA2AgAPC0EAIQMCQAJAIAKnIgRBAWoiBUUNACAFQX9MDQEgBRCmASIDIAVqIQYgAyEFA0AgBSAGRg0BIAVBADoAACAFQQFqIQUMAAsACwJAAkAgAkL/////D4MiAiABKAIIIgUgASgCACABKAIEaiIGIAMQ0g0gAlENACABIAY2AgggAUEBOgAMIABBCGpBADYCACAAQgA3AgAMAQsgASAFIARqNgIIIAAgAyAEEIwHCwJAIANFDQAgAxCkAQsPCxCsAQALPwACQCAALAALQX9KDQAgACgCABCkAQsgACABKQIANwIAIABBCGogAUEIaigCADYCACABQQA6AAsgAUEAOgAACx8BAX8CQCAAKAIAIgFFDQAgACABNgIEIAEQpAELIAALGQAgAEG0zxU2AgAgAEE0ahDqCBogABDDCgtOAQF/IABBiNAVNgIAAkACQCAAKAIsIgENAEEAEKQBDAELIAEQxAoQpAELAkACQCAAKAIcIgENAEEAEKQBDAELIAEQ6ggQpAELIAAQxQoLHwEBfwJAIAAoAgAiAUUNACAAIAE2AgQgARCkAQsgAAsZACAAQdjQFTYCACAAQQxqEIIGGiAAEMYKC1IBAn8gAEH0uhI2AgAgACgCCCEBAkADQCABRQ0BIAFBADYCLCABKAIkIQIgAUEANgIkIAEgAS0AIEHvAXE6ACAgAiEBDAALAAsgAEEANgIIIAALCgAgABDFChCkAQsEAEEKCwcAIAFBCkYLBABBAAsEAEEBCwQAQQALBABBAAsEAEEAC6EBAQN+IAAQ0AoiAEGAgID8AzYCQCAAQYCAgPwDNgJkIABCgICAgICAgMA/NwJcIABB2LEVNgJoIABB1LAVNgIAIABCADcChAEgAEEANgKMASAAQQApA6CfFSIBNwJEIABBzABqQQApA6ifFSICNwIAIABB1ABqQQApA7CfFSIDNwIAIAAgATcCbCAAQfQAaiACNwIAIABB/ABqIAM3AgAgAAsgACAAENUKIgBBADYCPCAAQgA3AjQgAEG0zxU2AgAgAAsEAEEmCzEBAX8CQAJAIAFBdmoiAkEcSw0AQQEgAnRBg4CAgAFxDQELIAFB2wBGDQBBAA8LQQELAgALAgALTAAgAEHY0BU2AgAgAEL/////DzcCBCAAQQxqQeeNEhCeBhogAEH+/wM7ATAgAEIANwIoIABBADYCICAAQYjQFTYCACAAQgA3AhggAAsEAEELCwwAIAFB/v8DcUEKRgvJAQEFfwJAIAFFDQAgAkH//wNxIQMCQAJAIAFpIgRBAUsNACABQX9qIANxIQUMAQsgAyEFIAMgAUkNACACQf//A3EgAUH//wNxcCEFCyAAIAVBAnRqKAIAIgBFDQAgAUF/aiEGIAJB//8DcSEHIARBAUshBANAIAAoAgAiAEUNAQJAIAAoAgQiAiADRg0AAkACQCAEDQAgAiAGcSECDAELIAIgAUkNACACIAFwIQILIAIgBUcNAgwBCyAALwEIIAdHDQALIAAPC0EAC5wBAAJAAkACQAJAAkACQAJAIAFBeWoOAgECAAsCQCABQb56ag4CBAUACyABQe4DRg0CIAFBxAFHDQUgACACENoKOgDNAUEBDwsgACACELsKOALQAUEBDwsgACACELsKOALUAUEBDwsgACACEKIKNgLYAUEBDwsgACACELsKOALcAUEBDwsgACACELsKOALgAUEBDwsgACABIAIQoQoLCgAgABCSD0EBRgv6AQEDfwJAIAAoAoANIgFFDQAgAEGADWohAgJAIAEoAggiAUUNAAJAIAEoAkQNACABIAEoAgAoAgQRAQALAkAgAigCACgCCCIBRQ0AIAEgASgCREEBajYCRAsgASAAQeAKahDyCiABIAEoAkQiA0F/ajYCRCADQQFHDQAgASABKAIAKAIEEQEACyACQQAQ/wkLIAAoAsgMIQMgACgCxAwhAQJAA0ACQCABIANHDQAgACgC7AwhAiAAKALoDCEBA0AgASACRg0DIAEoAgBBADoAPSABQQRqIQEMAAsACyABKAIAIgIgAigCACgCEBEBACABQQRqIQEMAAsACwtDAQN/IAAoAgghASAAKAIEIQIDQAJAIAIgAUcNACAAQQA2AmQPCyACKAIAIgMgAygCACgCQBEBACACQQRqIQIMAAsAC9QBAQN/AkACQAJAIAEoAgQiAw0A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AigClAEgAxEDAAsCQCAALQCkAkUNACAAKAIAIgEoAqABIQIgASgClAEhAyABENdIIAAoAgAiAUUNACACRQ0AIAEgAyACEQMACyAAQQBBwBgQSBoLCy8BAX8CQCAARQ0AAkAgAUUNACABKAIMIgJFDQEgACABKAIAIAIRAwAPCyAAEGALCyMBAX9BACEBAkAgACgCIA0AIAAoAiQNACAAKAIoRSEBCyABCxEAAkAgAEUNACAAQQA2AgALCzMBAX8CQCAARQ0AA0AgACgCACEBIABBATYCACABRQ0BA0AgACgCAEEBRg0ADAELAAsACwsZAAJAIABFDQAgACAAKAKAAkG4B2oQtkoLCxwAAkAgAEUNACAAKAJcRQ0AIAAoAmAgARDoCgsLUAEBfyAAQYACaiABEK4OIAAgARCuDgJAIAAoAoAEIgJFDQAgAiABEOgKIABBADYCgAQLAkAgACgCkAQiAkUNACACIAEQ6AogAEEANgKQBAsLDAAgACgCABDcCCAAC1EBAn8gACAAKAIEIgEoAgAiAjYCBAJAIAJFDQAgAiAANgIICyABIAAoAggiAjYCCCACIAIoAgAgAEdBAnRqIAE2AgAgASAANgIAIAAgATYCCAtRAQJ/IAAgACgCACIBKAIEIgI2AgACQCACRQ0AIAIgADYCCAsgASAAKAIIIgI2AgggAiACKAIAIABHQQJ0aiABNgIAIAEgADYCBCAAIAE2AggLiwEBBH8CQCAAKAJgIAAoAmQiAiABEOc+IgMgAkYNACADIQQCQANAIARBBGoiBCACRg0BIAQoAgAiBSABRg0AIAMgBTYCACADQQRqIQMMAAsACyADIAAoAmQiBEYNACAEIAMgBCADa2oiAmshAQJAIAQgAkYNACADIAIgARCJARoLIAAgAyABajYCZAsLpQEBBH8jAEEgayICJAACQAJAIAAoAgQiAyAAKAIIIgRPDQAgAyABKAIANgIAIANBBGohAQwBCyACQQxqIAAoAgAiBSAEIAMgBWtBAnVBAWoQ9AogACgCBCAAKAIAa0ECdSAAQQhqEPUKIgMoAgggASgCADYCACADIAMoAghBBGo2AgggACADEPYKIAAoAgQhASADEPcKGgsgACABNgIEIAJBIGokAAs4AAJAIAJBgICAgARJDQAQrAEACyABIABrIgFBAXUiACACIAAgAksb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BGohBgwBCyAGIAAoAqQBIghrQQJ1IglBAWoiCkGAgICABE8NBAJAAkAgByAIayIHQQF1IgsgCiALIApLG0H/////AyAHQfz///8HSRsiBw0AQQAhCgwBCyAHQYCAgIAETw0GIAdBAnQQpgEhCgsgCiAJQQJ0aiIJIAU2AgAgCSEFAkADQCAGIAhGDQEgBUF8aiIFIAZBfGoiBigCADYCAAwACwALIAAgCUEEaiIGNgKoASAAKAKkASEIIAAgBTYCpAEgACAKIAdBAnRqNgKsASAIRQ0AIAgQpAELIAAgBjYCqAELIARBAWohBAwACwALDwsQrAEACxCoBwALFgAgAiACKAIANgIEIAAgASACENoRGgsQACAAQRRqEJILGiAAEJILCysAIAAQ1QoiAEEANgJEIABCADcCPCAAQYzgEjYCACAAQv////8PNwI0IAALgQIBBX8jAEEgayICJAACQAJAAkACQCAAKAIAIgNFDQACQCADKAIAIgAgASADKAIEIgQgAGtBAnUQmQoiBUUNACAFIARHDQQLIANBBGohBSAEIAMoAggiBk8NASAEIAE2AgAgBEEEaiEDDAILQQAhBEEMEKYBIgNBADYCCCADQgA3AgAgACADNgIAIANBBGohBUEAIQZBACEACyACQQxqIAAgBiAEIABrQQJ1QQFqEI4LIAMoAgQgAygCAGtBAnUgA0EIahCPCyIAKAIIIAE2AgAgACAAKAIIQQRqNgIIIAMgABCQCyADKAIEIQMgABCRCxoLIAUgAzYCAAsgAkEgaiQAC7QBAQV/IAIQjAshAwJAIAFFDQACQAJAIAFpIgRBAUsNACABQX9qIANxIQUMAQsgAyEFIAMgAUkNACADIAFwIQULIAAgBUECdGooAgAiAEUNACABQX9qIQYgBEEBSyEHA0AgACgCACIARQ0BAkAgACgCBCIEIANGDQACQAJAIAcNACAEIAZxIQQMAQsgBCABSQ0AIAQgAXAhBAsgBCAFRw0CDAELIAAoAgggAkcNAAsgAA8LQQALPgEBfwJAA0AgAEUNASAAQZkDIAAoAgAoAgwRAgAhAgJAIAAgAUcNACACDQILIAAoAiAhAAwACwALIABBAEcLpQEBBH8jAEEgayICJAACQAJAIAAoAgQiAyAAKAIIIgRPDQAgAyABKAIANgIAIANBBGohAQwBCyACQQxqIAAoAgAiBSAEIAMgBWtBAnVBAWoQhgkgACgCBCAAKAIAa0ECdSAAQQhqEIcJIgMoAgggASgCADYCACADIAMoAghBBGo2AgggACADEIgJIAAoAgQhASADEIkJGgsgACABNgIEIAJBIGokAAspAQF/IwBBEGsiASQAIAEgADYCDCABQQxqQQQQlAshACABQRBqJAAgAAsfAQF/IAAoAgAhAiAAIAE2AgACQCACRQ0AIAIQpAELCyEBAX8gACgCACEBIABBADYCAAJAIAFFDQAgARCkAQsgAAspAQF/IwBBEGsiASQAIAEgADYCDCABQQxqQQQQlAshACABQRBqJAAgAAsfAQF/IAAoAgAhAiAAIAE2AgACQCACRQ0AIAIQpAELCzgAAkAgAkGAgICABEkNABCsAQALIAEgAGsiAUEBdSIAIAIgACACSxtB/////wMgAUH8////B0kbC08AIAAgAzYCEEEAIQMgAEEANgIMAkAgAUUNACABEJMLIQMLIAAgAzYCACAAIAMgAkECdGoiAjYCCCAAIAMgAUECdGo2AgwgACACNgIEIAALkwEBA38gASgCBCECIAAoAgAhAyAAKAIEIQQCQANAIAQgA0YNASACQXxqIgIgBEF8aiIEKAIANgIADAALAAsgASACNgIEIAAoAgAhBCAAIAI2AgAgASAENgIEIAAoAgQhBCAAIAEoAgg2AgQgASAENgIIIAAoAgghBCAAIAEoAgw2AgggASAENgIMIAEgASgCBDYCAAtCAQJ/IAAoAgghASAAKAIEIQICQANAIAEgAkYNASAAIAFBfGoiATYCCAwACwALAkAgACgCACIBRQ0AIAEQpAELIAALRgECfyAAKAIIIQECQANAIAFFDQEgASgCACECIAEQpAEgAiEBDAALAAsgACgCACEBIABBADYCAAJAIAFFDQAgARCkAQsgAAscAAJAIABBgICAgARJDQAQqAcACyAAQQJ0EKYBC6QBAQJ/IAEhAgJAA0AgAkEESQ0BIAAoAABBldPH3gVsIgNBGHYgA3NBldPH3gVsIAFBldPH3gVscyEBIAJBfGohAiAAQQRqIQAMAAsACwJAAkACQAJAIAIOBAMCAQADCyAALQACQRB0IAFzIQELIAAtAAFBCHQgAXMhAQsgASAALQAAc0GV08feBWwhAQsgAUENdiABc0GV08feBWwi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NgIAC0EAIQwCQCAJKAIAIghFDQAgCCgCBCELAkACQCAGQQFLDQAgCyAKcSELDAELIAsgBUkNACALIAVwIQsLIAghDCALIARGDQAgACgCnA0gC0ECdGogBzYCACAJKAIAIQwLIAcgDDYCACAJQQA2AgAgACADQX9qNgKoDSACQQE6AAwgAiANNgIIIAIgCTYCBCACQQRqEIsLGgsgASAARw0AIAAoAsQNIglFDQAgCSAJKAIAKAIgEQAAIglFDQAgCSABEKQLCyACQRBqJAALkgIBBH8gAEEBIAAoAgAoApgDEQMAIABBABCRCSAAQQA6AMENAkAgAC0AiA1BAUcNACAAKALUDCEBIAAoAtAMIQIDQCACIAFGDQEgAigCACAAEKYLIAJBBGohAgwACwALIAAQowshAwJAAkACQCAALQCIDQ0AIAAoAtQMIQQgACgC0AwhAgNAAkAgAiAERw0AIABBASAAKAIAKAKYAxEDAEEAIQIgABCjCyADckEBcQ0DDAQLAkAgAigCACIBKAKgAUUNACAAQQEgACgCACgCmAMRAwAgABCjCyADciEDCyABIAAQpgsgAkEEaiECDAALAAtBACECIANFDQELQQEhAiAAQQEgACgCACgCmAMRAwALIAILygECAX8BfQJAIAAoApgBIgJFDQAgAiABIAIQiiMgACoCNCIDjCADIAAoAlxBAXEbQwAAgD+SQwAAAD+UlEMAAIA/QQAQsQMLAkAgACgCnAEiAkUNACACIAEgAhCKIyAAKgI4IgOMIAMgACgCXEECcRtDAACAP5JDAAAAP5SUQwAAgD9BABCxAwsgACgCqAEhAiAAKAKkASEAA0ACQCAAIAJHDQAPCyAAKAIAIgFDAAAAAEEAIAEoAgAoAlARFAAaIABBBGohAAwACwALYQEEfyAAKAL4DCEDIAAoAvQMIQRBACEFA38CQCAEIANHDQAgACgC5AogACgC6AogARCoCyAFckEBcQ8LIAQoAgAiBiABIAIgBigCACgCABEUACAFciEFIARBBGohBAwACwtrAQR/QQAhAwJAIAEgAEYNAANAIAAgAUYNAUEAIQQCQCAAKAIAIgUoAjgiBkUNACAFKAIwRQ0AIAUtACBBAXENACAGIAIgBigCACgCRBEaACEECyAAQQRqIQAgBCADciEDDAALAAsgA0EBcQswAQF/AkAg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AgAgACAALAALIgJBAEgbIgUgACgCBCACIAJBAEgbIgBqIQICQAJAIAAgA0gNACABKAIAIAEgBBsiBi0AACEEIAUhAQNAIAIgAWsiACADSA0BIAEgACADa0EBaiAEEMoLIgFFDQEgASAGIAMQqQdFDQIgAUEBaiEBDAALAAsgAiEBC0F/IAEgBWsgASACRhshAgsgAgtjAQF/IwBBEGsiBCQAIAQgAzYCDAJAIAEoAgQgAS0ACxD9USIDIAJPDQAQs1kACyABEJhSIQEgBCADIAJrNgIIIAAgASACaiAEQQxqIARBCGoQjlIoAgAQjAcgBEEQaiQAIAALFgACQCABDQBBAA8LIAAgAsAgARDLCwsLACAAIAEgAhDMCwvpAQECfyACQQBHIQMCQAJAAkAgAEEDcUUNACACRQ0AIAFB/wFxIQQDQCAALQAAIARGDQIgAkF/aiICQQBHIQMgAEEBaiIAQQNxRQ0BIAINAAsLIANFDQECQCAALQAAIAFB/wFxRg0AIAJBBEkNACABQf8BcUGBgoQIbCEEA0BBgIKECCAAKAIAIARzIgNrIANyQYCBgoR4cUGAgYKEeEcNAiAAQQRqIQAgAkF8aiICQQNLDQALCyACRQ0BCyABQf8BcSEDA0ACQCAALQAAIANHDQAgAA8LIABBAWohACACQX9qIgINAAsLQQALOgEBf0EMEKYBIQICQCABRQ0AIAEgASgCREECajYCRAsgAiABNgIIIAJCATcCACAAIAI2AgAgARCiBgulAgEGfwJAAkACQCABRQ0AIAAoAmAiAiAAKAJkIgMgARDnPiADRw0AAkACQCADIAAoAmgiBE8NACADIAE2AgAgA0EEaiEDDAELIAMgAmtBAnUiBUEBaiIGQYCAgIAETw0CAkACQCAEIAJrIgRBAXUiByAGIAcgBksbQf////8DIARB/P///wdJGyIEDQBBACEGDAELIARBgICAgARPDQQgBEECdBCmASEGCyAGIAVBAnRqIgUgATYCACAFIQECQANAIAMgAkYNASABQXxqIgEgA0F8aiIDKAIANgIADAALAAsgACAFQQRqIgM2AmQgACgCYCECIAAgATYCYCAAIAYgBEECdGo2AmggAkUNACACEKQBCyAAIAM2AmQLDwsQrAEACxCoBwALaQECfwJAA0ACQCABRQ0AIAAoAtgNIAEoAtgNIAEgAS0AmA0bRw0AQQEhAgwCC0EAIQIgACgCxA0iA0UNASADIAMoAgAoAiARAABFDQEgACgCxA0iACAAKAIAKAIgEQAAIQAMAAsACyACC30AIABBiLISNgLgCiAAQfyxEjYC3AogAEHwsRI2AtgKIABB3LESNgLUCiAAQbCxEjYChAIgAEGcsRI2AoACIABBkLESNgL8ASAAQeiwEjYC6AEgAEHYsBI2AuQBIABBxLASNgJoIABBgK0SNgIAIABB4A1qEIQGGiAAENUICwoAIAAQ0AsQpAELCwAgAEGYfmoQ0AsLCwAgAEGYfmoQ0QsLCwAgAEGAfmoQ0AsLCwAgAEGAfmoQ0QsLCwAgAEGsdWoQ0AsLCwAgAEGsdWoQ0QsLQwECf0EAIQICQCAAKAL0CyAAKALwCyIDa0ECdSABTQ0AIAMgAUECdGooAgAiAUUNAEGABBCmASABIAAQugYhAgsgAgsWAQF/QeANEKYBENMIIgEgABDaCyABCzkAIAAgASoCxAo4AsQKIAAgASoCyAo4AsgKIAAgASgCzAo2AswKIAAgASgC0Ao2AtAKIAAgARDbCwtRACAAIAEtAM0BOgDNASAAIAEqAtABOALQASAAIAEqAtQBOALUASAAIAEoAtgBNgLYASAAIAEqAtwBOALcASAAIAEqAuABOALgASAAIAEQ3AsLIQAgACABKAK0ATYCtAEgACABKAK4ATYCuAEgACABEN0LCyEAIAAgASoCkAE4ApABIAAgASoClAE4ApQBIAAgARDeCwsxACAAIAEqAlw4AlwgACABKgJgOAJgIAAgASoCZDgCZCAAIAEqAkA4AkAgACABEN8LCxkAIABBDGogAUEMahDoBSAAIAEoAhg2AhgLCAAgAEHEAGoLQgEEfSABKgKkAiECIAEqAqgCIQMgASoCVCEEIAAgASoCWCIFOAIEIAAgBDgCACAAIAUgA5I4AgwgACAEIAKSOAIICwQAQQALCAAgAEHcfmoLBABBAAuGBAAgABCaCiIAQQA2AogCIABCADcCgAIgAEEANgLwASAAQgA3AugBIABBADYC2AEgAEF/NgLQASAAQZS6EjYC/AEgAEHguRI2AvgBIABB1LkSNgL0ASAAQai5EjYC5AEgAEGcuRI2AuABIABBkLkSNgLcASAAQby4EjYC1AEgAEGouBI2AmggAEHYtBI2AgAgAEGMAmpBAEEoEEgaIABCADcCuAIgAEGAgID8AzYCtAIgAEHAAmpCADcCACAAQgA3AswCIABBgICA/AM2AsgCIABB1AJqQgA3AgAgAEIANwLgAiAAQYCAgPwDNgLcAiAAQegCakIANwIAIABCADcC9AIgAEGAgID8AzYC8AIgAEH8AmpCADcCACAAQgA3AogDIABBgICA/AM2AoQDIABBkANqQgA3AgAgAEGAgID8AzYCmAMgAEIANwKcAyAAQaQDakIANwIAIABBgICA/AM2AqwDIABBsANqQQBBKBBIGiAAQgA3AugDIABCfzcC4AMgAEHwA2pCADcCACAAQgA3AvwDIABBgICA/AM2AvgDIABBhARqQgA3AgAgAEIANwKQBCAAQYCAgPwDNgKMBCAAQZgEakIANwIAIABBnwRqQQA2AAAgAEIANwKkBCAAQawEakIANwIAIABBtARqQgA3AgAgAEG8BGpCgICAgICAgMA/NwIAIAALuAUBA38gAEGUuhI2AvwBIABB4LkSNgL4ASAAQdS5EjYC9AEgAEGouRI2AuQBIABBnLkSNgLgASAAQZC5EjYC3AEgAEG8uBI2AtQBIABBqLgSNgJoIABB2LQSNgIAIAAQ5wsgACgCuAQQ6AsgACgCsAQhASAAQQA2ArAEAkAgAUUNACABEKQBCyAAQaQEahCyBhogAEGUBGoQrAcaIABBkARqEKkGGiAAQfwDahDpCxogACgC8AMQ6gsgACgC6AMhASAAQQA2AugDAkAgAUUNACABEKQBCyAAQcwDahDrCxoCQCAAKAK8AyIBRQ0AIAAgATYCwAMgARCkAQsgAEHkAWohAiAAQbADahDsCxogACgCpAMhAQJAA0AgAUUNASABKAIAIQMgARCkASADIQEMAAsACyAAKAKcAyEBIABBADYCnAMCQCABRQ0AIAEQpAELIAAoApADIQECQANAIAFFDQEgASgCACEDIAFBDGoQ7QsaIAEQpAEgAyEBDAALAAsgACgCiAMhASAAQQA2AogDAkAgAUUNACABEKQBCyAAKAL8AhDuCyAAKAL0AiEBIABBADYC9AICQCABRQ0AIAEQpAELIAAoAugCEO8LIAAoAuACIQEgAEEANgLgAgJAIAFFDQAgARCkAQsgACgC1AIQ8AsgACgCzAIhASAAQQA2AswCAkAgAUUNACAB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BSALlJKSOAIAIAMgBCACQQAgAygCACgCRBEHACEACyAEQRBqJAAgAAsxAQF/IwBBEGsiAyQAIAMgAjYCDCAAIAFBnANqIANBDGoQgwwpAhA3AgAgA0EQaiQAC8sBAgF/B30jAEEQayIEJAAgBEEIaiABIAMQvwwgAioCBCEFIAQqAgwhBiACKgIAIQcgBCoCCCEIIAEgASgCACgCpAMRAAAhAiABKAIgIAEgAhsiAioCVCEJIAIqAkQhCiACKgJMIQsgBCACKgJYIAIqAkggCCAHkiIHlCAGIAWSIgUgAioCUJSSkjgCBCAEIAkgCiAHlCAFIAuUkpI4AgACQAJAIAEoAigiAUUNACAAIAEgBBCpCwwBCyAAIAQpAwA3AgALIARBEGokAAvIAgEBfyMAQdAAayIDJAAgA0HIAGogASACEL8MAkACQCABKAIgIgJFDQAgAkGZAyACKAIAKAIMEQIARQ0AIAEoAiAiAkUNACADQThqIAEgASgCACgCsAIRAwAgAyADKQI4NwIYIANCgICAgICAgMA/NwIQIANCgICA/AM3AgggA0EgaiACQcQAaiADQQhqEP4FIAMgAykCSDcCGCADQoCAgICAgIDAPzcCECADQoCAgPwDNwIIIAAgA0EgaiADQQhqEP4FDAELIAEgASgCACgCpAMRAAAhAiADQTBqIAEoAiAgASACGyIBQdQAaikCADcDACADQShqIAFBzABqKQIANwMAIAMgASkCRDcDICADIAMpAkg3AhggA0KAgICAgICAwD83AhAgA0KAgID8AzcCCCAAIANBIGogA0EIahD+BQsgA0HQAGokAAsHACAAEKkJCwQAIAALXwEDf0EAIQFBACECAkADQCABIAAgACgCACgCoAIRAABPDQECQCAAIAEgACgCACgCpAIRAgAiA0UNACADIAMoAgAoAqgDEQAAIAJyIQILIAFBAWohAQwACwALIAJBAXELuwEBA38jAEEgayICJABBACEDAkADQCADIAAgACgCACgCoAIRAABPDQECQCAAIAMgACgCACgCpAIRAgAiBEUNACAEIAEgBCgCACgC6AIRAwAgAkEQaiAEIAQoAgAoAsQCEQMAIAIgAioCHCACKgIUkzgCDCACIAIqAhggAioCEJM4AgggACgCACgCsAMhBCACIAIpAgg3AwAgACACIAMgBBEFAAsg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rH5qIAEQtgwLAgALAgALCwAgAEGsfmoQ5wsLCwAgAEGsfmoQvAwLDQAgAEGsfmogARCYDAsLACAAQdR+aigCAAsRACAAQax+aiABIAIgAxC+DAsRACAAIAFBrH5qIAIgAxDADAsPACAAIAFBrH5qIAIQwQwLCwAgAEGsfmoQqQkLBABBAQsKACAAIAE2AvQBCwgAIAAoAvQBCwgAIABBrH5qCwIACxUAIABBrH5qIgAgACgCACgCCBEAAAsPACAAQaR+aiABIAIQjwwLCwAgAEGgfmoQkgwLDQAgAEGcfmogARCKDAsIACAAQZx+agsUACAAIAEpAvQBNwIIIABCADcCAAsPACAAIAFBnH5qIAIQlQwLCwAgAEGcfmoQxAwLDQAgAEGcfmogARDFDAsNACAAQZx+akEAEMcMCxAAIAAoAiwgACgCKGtBAnULFgAgAEGcfmogASACIAMgBBDGDBpBAAsNACAAQYx+aiABEJsMCwsAIABBiH5qENoMCxAAIAAoAhggACgCFGtBAnULIwAgAEGIfmoiACABIAAoAgAoAqQCEQIAIgBB2ApqQQAgABsLDQAgACABKQLgATcCAAs2AQF+QgAhAwJAIAEoAtgBIAEoAtQBIgFrQQN1IAJNDQAgASACQQN0aikCACEDCyAAIAM3AgALLAACQCAAKALYASAAKALUASIAa0EDdSACTQ0AIAAgAkEDdGogASkCADcCAAsLDQAgAEGIfmogARDMDAsLACAAQYh+ahDTDAsNACAAQYh+aiABENQMCxoAIABBADoAqgIgACACNgLsASAAIAE2AugBCy4BAX8jAEEQayIDJAAgAyACKQIANwMIIABBiH5qIAEgA0EIahDZDCADQRBqJAALCAAgAEHIfmoLDQAgAEGEfmogARDiDAssAQF/IAAoAgQhAgJAA0AgAiABRg0BIAJBfGoQlA0hAgwACwALIAAgATYCBAsiAQF/AkAgACgCACIBRQ0AIAAgARCSDSAAKAIAEKQBCyAACywBAX8gACgCBCECAkADQCACIAFGDQEgAkF8ahDXDCECDAALAAsgACABNgIECyIBAX8CQCAAKAIAIgFFDQAgACABENEMIAAoAgAQpAELIAALDAAgACgCABD3BiAACxAAIABBBGoQiQcaIAAQlA0LEAAgAEEEahDXDBogABCUDQsQACAAQQRq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ACECIAAgATYCAAJAIAJFDQAgAhCkAQsLkwEBAX8gACgCACECIAAgATYCAAJAIAJFDQACQCACKAJgIgFFDQAgAigCZCEAAkADQCAAIAFGDQEgAEF8ahDdDSEADAALAAsgAiABNgJkIAIoAmAQpAELIAJB1ABqEPEFGiACKAI0IgAgACgCACgCBBEBACACQSRqEPEFGiACKAIEIgAgACgCACgCBBEBACACEKQBCws4AAJAIAJBgICAgARJDQAQrAEACyABIABrIgFBAXUiACACIAAgAksbQf////8DIAFB/P///wdJGwtlACAAIAM2AhBBACEDIABBADYCDAJAAkAgAUUNACABQYCAgIAETw0BIAFBAnQQpgEhAwsgACADNgIAIAAgAyACQQJ0aiICNgIIIAAgAyABQQJ0ajYCDCAAIAI2AgQgAA8LEKgHAAuTAQEDfyABKAIEIQIgACgCACEDIAAoAgQhBAJAA0AgBCADRg0BIAJBfGoiAiAEQXxqIgQoAgA2AgAMAAsACyABIAI2AgQgACgCACEEIAAgAjYCACABIAQ2AgQgACgCBCEEIAAgASgCCDYCBCABIAQ2AgggACgCCCEEIAAgASgCDDYCCCABIAQ2AgwgASABKAIENgIAC0IBAn8gACgCCCEBIAAoAgQhAgJAA0AgASACRg0BIAAgAUF8aiIBNgIIDAALAAsCQCAAKAIAIgFFDQAgARCkAQsgAAuWAgICfwF9AkAgAUUNACAAKAIAEIEOIQICQAJAAkACQAJAIAAoAgAoAkgOAwABAgQLIAFBATYCqAogAUEAOgC1CiABQQAgASgCACgC8AIRAwACQCAAKAIAIgMqAjgiBEMAAIC/XA0AIAEqArgNIQQLIAMoAkAhAyABIAI6ALQKIAEgAzYCqAogASAEOAKkCgwCCyABQQE2AqgKIAFBADoAtQogAUEAIAEoAgAoAvACEQMAAkAgACgCACoCOCIEQwAAgL9cDQAgASoCuA0hBAsgASACOgC0CiABQQM2AqgKIAEgBDgCpAoMAQsgAUEDNgKoCiABQQE6ALUKCyABQQAgASgCACgC8AIRAwALIAAoAgAgARCCDgsLoQICAn8BfQJAIAFFDQAgACgCABCBDiECAkACQAJAAkACQCAAKAIAIgMoAkwOAgABAgsgAUEBNgKwCiABQQA6ALYKIAFBACABKAIAKALwAhEDAAJAIAAoAgAiAyoCPCIEQwAAgL9cDQAgASoCvA0hBAsgAygCRCEDIAEgAjoAtAogASADNgKwCiABIAQ4AqwKDAILIAFBATYCsAogAUEAOgC2CiABQQAgASgCACgC8AIRAwACQCAAKAIAKgI8IgRDAACAv1wNACABKgK8DSEECyABIAI6ALQKIAFBAzYCsAogASAEOAKsCgwBCyADKAJIQQJHDQEgAUEDNgKwCiABQQE6ALYKCyABQQAgASgCACgC8AIRAwALIAAoAgAgARCCDgsLcgEFfyAAKAIEIQEgACgCACECQQAhA0EAIQQCQAJAA0AgAiABTw0BIAIsAAAiBUH/AHEgA0H/AXEiA3QgBHIhBCACQQFqIQIgA0EHaiEDIAVBf0wNAAsgAiEBDAELIABBAToACEEAIQQLIAAgATYCACAEC0cCAn8BfQJAAkAgACgCBCIBIAAoAgAiAmtBA0sNACAAQQE6AAhDAAAAACEDDAELIAJBBGohASACKgAAIQMLIAAgATYCACADC/RTAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQXlqDsoBlgGXAR4fmgGbAR4fGxwdGt0BggGDAd0B3QF5en7dAd0B3QHdAYYB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QQhqKAIAQfwDEKUGDwsgACoCYCACWw2kASAAIAI4AmAgACAAKAIAKAJ0EQEAIABBCGooAgBB/QMQpQYPCyAAKgJkIAJbDaMBIAAgAjgCZCAAIAAoAgAoAngRAQAgAEEIaigCAEH+AxClBg8LIAAqAmggAlsNogEgACACOAJoIAAgACgCACgCfBEBACAAQQhqKAIAQf8DEKUGDwsgACoCbCACWw2hASAAIAI4AmwgACAAKAIAKAKAAREBACAAQQhqKAIAQYAEEKUGDwsgACoCcCACWw2gASAAIAI4AnAgACAAKAIAKAKEAREBACAAQQhqKAIAQYEEEKUGDwsgACoCdCACWw2fASAAIAI4AnQgACAAKAIAKAKIAREBACAAQQhqKAIAQYIEEKUGDwsgACoCeCACWw2eASAAIAI4AnggACAAKAIAKAKMAREBACAAQQhqKAIAQYMEEKUGDwsgACACELkPDwsgACACELoPDwsgACACELsPDwsgACACELwPDwsgACoCjAEgAlsNmQEgACACOAKMASAAIAAoAgAoAqABEQEAIABBCGooAgBBiAQQpQYPCyAAKgKQASACWw2YASAAIAI4ApABIAAgACgCACgCpAERAQAgAEEIaigCAEGJBBClBg8LIAAqApQBIAJbDZcBIAAgAjgClAEgACAAKAIAKAKoAREBACAAQQhqKAIAQYoEEKUGDwsgACoCmAEgAlsNlgEgACACOAKYASAAIAAoAgAoAqwBEQEAIABBCGooAgBBiwQQpQYPCyAAKgKcASACWw2VASAAIAI4ApwBIAAgACgCACgCsAERAQAgAEEIaigCAEGMBBClBg8LIAAqAqQBIAJbDZQBIAAgAjgCpAEgACAAKAIAKAK4AREBACAAQQhqKAIAQdAEEKUGDwsgACoC1AEgAlsNkwEgACACOALUASAAIAAoAgAoAuQCEQEAIABBCGooAgBBgAUQpQYPCyAAKgLYASACWw2SASAAIAI4AtgBIAAgACgCACgC6AIRAQAgAEEIaigCAEGBBRClBg8LIAAqAtwBIAJbDZEBIAAgAjgC3AEgACAAKAIAKALsAhEBACAAQQhqKAIAQYIFEKUGDwsgACoC4AEgAlsNkAEgACACOALgASAAIAAoAgAoAvACEQEAIABBCGooAgBBgwUQpQYPCyAAKgK0ASACWw2PASAAIAI4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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQeh7ag7mAWCFAccB9gH2AfYB9gH2AfYB9gH2AfYB9gEBAvYB9gH2AQb2AfYB9gH2AfYBCPYB9gH2AfYBDA32AfYB9gH2AfYB9gH2AQf2AfYBEfYB9gH2AfYB9gGlAfYB9gGxAbIB9gE1NjD2AfYB9gH2ATc4OTo7PD0+P0D2AUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWGY09gH2AfYB9gHGAfYB9gH2AfYB9gH2AfYB9gH2AfYB9gH2AXv2AfYBfvYBMjP2AfYB9gGzAfYB9gH2AfYBKissLb0B9gH2AS4v9gH2AfYBdfYBvAH2AfYBtgHeAfYB3wGwAQ/2AWL2AfYB9gH2AfYB9gH2AfYB9gH2AfYB9gH2AfYB9gEx9gH2AQoL9gH2AfYBtwG4AbkB9gH2AfYB9gH2AfYBHfYB9gEgHx72AfYB9gEc9gH2AfYB9gH2AfYB9gH2AfYB9gH2Ab4B9gG/AcABkwGXAfYB9gH2AfYB9gH2AfYB9gG6AbsB9gH2AfYB9gH2AcMBxAEACwJAIAFBpH9qDiacAZ0B9gHKAfYB9gH2AfYB9gH2AcgByQH2AfYB9gH2AfYB9gHLAcwBzQHOAfYB9gH2AZgB9gEUFaIBdvYB9gGeAfYB9gGaASIACwJAIAFByHhqDiV99gH2AfYBoQEE9gH2AfYB9gGRAfYB9gGQAQ72AfYB9gH2AfEB8gHzAaAB9gH2AY0BjgH2AV72AasB9gH2AfYBrAGtAa4BAAsCQCABQet+ag4gafYBf4AB9gH2AXN69gGBAfYBggH2AfYB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wQEQpQYPCyAALQBqIAJGDT8gACACOgBqIAAgACgCACgCmAERAQAgAEEIaigCAEHCARClBg8LIAAtAEAgAkYNPiAAIAI6AEAgACAAKAIAKAJcEQEAIABBCGooAgBBrgEQpQYPCyAALQBIIAJGDT0gACACOgBIIAAgACgCACgCqAERAQAgAEEIaigCAEHUBRClBg8LIAAtAFQgAkYNPCAAIAI6AFQgACAAKAIAKAK0AREBACAAQQhqKAIAQdIGEKUGDwsgAC0AVSACRg07IAAgAjoAVSAAIAAoAgAoArgBEQEAIABBCGooAgBB0wYQpQYPCyAALQBWIAJGDTogACACOgBWIAAgACgCACgCvAERAQAgAEEIaigCAEH7BhClBg8LIAAgACgCACgCkAERAAAgAkYNOSAAIAIgACgCACgCjAERAwAgACAAKAIAKALMAREBACAAQQhqKAIAQYEIEKUGDwsgAC0ARCACRg04IAAgAjoARCAAIAAoAgAoAmgRAQAgAEEIaigCAEHeBRClBg8LIAAtANQBIAJGDTcgACACOgDUASAAIAAoAgAoAqgCEQEAIABBCGooAgBB/wYQpQYPCyAALQDgASACRg02IAAgAjoA4AEgACAAKAIAKAK0AhEBACAAQQhqKAIAQfYHEKUGDwsgAC0AOCACRg01IAAgAjoAOCAAIAAoAgAoAkwRAQAgAEEIaigCAEGkBRClBg8LIAAgAhDGEA8LIAAtANEBIAJGDTMgACACOgDRASAAIAAoAgAoAuACEQEAIABBCGooAgBB/wQQpQYPCyAALQBQIAJGDTIgACACOgBQIAAgACgCACgCZBEBACAAQQhqKAIAQckBEKUGDwsgAC0AICACRg0xIAAgAjoAICAAIAAoAgAoAjwRAQAgAEEIaigCAEG1ARClBg8LIAAtABQgAkYNMCAAIAI6ABQgACAAKAIAKAI0EQEAIABBCGooAgBBnQQQpQYPCyAALQAMIAJGDS8gACACOgAMIAAgACgCACgCLBEBACAAQQhqKAIAQYcFEKUGDwsgACACIAAoAgAoAlQRAwAPCyAALQAwIAJGDS0gACACOgAwIAAgACgCACgCRBEBACAAQQhqKAIAQT4QpQYPCyAALQAxIAJGDSwgACACOgAxIAAgACgCACgCSBEBACAAQQhqKAIAQfgCEKUGDwsgAC0AGCAC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QRRqEPU0GgsgAkGgAWokAAs1AQF9AkAgAA0AQwAAAAAPCyAAKgI0IQICQCAALQDLAUECRw0AIAJDAADIQpUgAZQhAgsgAgs1AQF9AkAgAA0AQwAAAAAPCyAAKgI4IQICQCAALQDMAUECRw0AIAJDAADIQpUgAZQhAgsgAgszAAJAA0AgASACRg0BIAMgARDrDUEEaiEDIAFBBGohAQwACwALIAAgAzYCBCAAIAI2AgALEwAgACABIAIgACgCBBCqDTYCBAs4AAJAIAJBgICAgARJDQAQrAEACyABIABrIgFBAXUiACACIAAgAksbQf////8DIAFB/P///wdJGws4AAJAIAJBgICAgAJJDQAQrAEACyABIABrIgFBAnUiACACIAAgAksbQf////8BIAFB+P///wdJGwtPACAAIAM2AhBBACEDIABBADYCDAJAIAFFDQAgARDoDSEDCyAAIAM2AgAgACADIAJBA3RqIgI2AgggACADIAFBA3RqNgIMIAAgAjYCBCAAC5MBAQN/IAEoAgQhAiAAKAIAIQMgACgCBCEEAkADQCAEIANGDQEgAkF4aiICIARBeGoiBCkCADcCAAwACwALIAEgAjYCBCAAKAIAIQQgACACNgIAIAEgBDYCBCAAKAIEIQQgACABKAIINgIEIAEgBDYCCCAAKAIIIQQgACABKAIMNgIIIAEgBDYCDCABIAEoAgQ2AgALQgECfyAAKAIIIQEgACgCBCECAkADQCABIAJGDQEgACABQXhqIgE2AggMAAsACwJAIAAoAgAiAUUNACABEKQBCyAACxwAAkAgAEGAgICAAkkNABCoBwALIABBA3QQpgELIQACQCAAKAIEIgBFDQAgAEEAOgCiBCAAQQRBABDNCRoLCwIACzgAAkAgACABRg0AAkAgASgCACIBDQAgAEEAEOwNIAAPCyABIAEoAhRBAWo2AhQgACABEOwNCyAACxcBAX8gACgCACECIAAgATYCACACEPcGC6QBAQR/IwBBIGsiAiQAAkACQCAAKAIEIgMgACgCCCIETw0AIAMgASgCADYCACADQQRqIQMMAQsgAkEMaiAAKAIAIgUgBCADIAVrQQJ1QQFqEPINIAAoAgQgACgCAGtBAnUgAEEIahDuDSIEKAIIIgMgASgCADYCACAEIANBBGo2AgggACAEEO8NIAAoAgQhAyAE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AAwACwALAkAgAEF8aiILIAhGDQAgCCALKAIANgIACyALIA02AgBBACEEDAELIAgoAgAhDSAIIQkDQCAJIgBBBGohCSACKAIAIAAoAgQgDRDzDQ0ACyABIQ4CQAJAIAAgCEcNAANAIAkgDk8NAiACKAIAIA5BfGoiDigCACANEPMNRQ0ADAILAAsDQCACKAIAIA5BfGoiDigCACANEPMNRQ0ACwsgDiELIAkhAAJAA0AgACALTw0BIAAoAgAhDCAAIAsoAgA2AgAgCyAMNgIAA0AgACgCBCEMIABBBGoiCiEAIAIoAgAgDCANEPMNDQALA0AgAigCACALQXxqIgsoAgAgDRDzDUUNAAsgCiEADAALAAsCQCAAQXxqIgsgCEYNACAIIAsoAgA2AgALIAsgDTYCAAJAIAkgDkkNACAIIAsgAhD3DSENAkAgACABIAIQ9w1FDQAgCyEBIAghACANRQ0EDAMLIA0NAQsgCCALIAIgAyAPEPENQQAhBAwACwALCws4AAJAIAJBgICAgARJDQAQrAEACyABIABrIgFBAXUiACACIAAgAksbQf////8DIAFB/P///wdJGwtAAgF/An0gAEGMAmoiAygCACAAQZACaiIAKAIAIAEQ+A0iBCADKAIAIAAoAgAgAhD4DSIFXSABIAJIIAQgBVwbC5kBAQF/IAAgASACIAQQ9g0CQCAEKAIAIAMoAgAgAigCABDzDUUNACACKAIAIQUgAiADKAIANgIAIAMgBTYCACAEKAIAIAIoAgAgASgCABDzDUUNACABKAIAIQMgASACKAIANgIAIAIgAzYCACAEKAIAIAEoAgAgACgCABDzDUUNACAAKAIAIQIgACABKAIANgIAIAEgAjYCAAsLyAEBAX8gACABIAIgAyAFEPQNAkAgBSgCACAEKAIAIAMoAgAQ8w1FDQAgAygCACEGIAMgBCgCADYCACAEIAY2AgAgBSgCACADKAIAIAIoAgAQ8w1FDQAgAigCACEEIAIgAygCADYCACADIAQ2AgAgBSgCACACKAIAIAEoAgAQ8w1FDQAgASgCACEDIAEgAigCADYCACACIAM2AgAgBSgCACABKAIAIAAoAgAQ8w1FDQAgACgCACEDIAAgASgCADYCACABIAM2AgALC90BAQJ/IAMoAgAgASgCACAAKAIAEPMNIQQgAygCACACKAIA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CyADQdAJaiACKAIAQZQBaiACQagWahChSCEEIAVBAUcNAyAEDQMgAigCCCEEDAILIAIgAigCyAkiBDYCCAsgBUEBRw0CCyADQfAJakEAQSQQSBogAyACKAK4BzYC0AkgAigCvAchBSADIAg2AugJIAMgBDYC4AkgAyAFNgLYCSADIAIoAsAJNgLUCSADIAIoAsQJNgLcCSACKALICSEEIAMgAkHMCWo2AuwJIAMgBDYC5AkgAyACKALUCzYC9AkgAyACKALYCzYC+AkgAyACKAKgAzYClAogAyACKAKsAzYCoAogAyACKAKkAzYCmAogAyACKAKoAzYCnAoCQCACKAIMRQ0AIAJB4AtqIAIoAgBBlAFqEKBICyADQdAJaiACKAIAQZQBaiACQeALaiIFEKFIIgQNBCACQgA3A+gNIAJB8A1qQgA3AwACQAJAAkAgAigCBEEDRg0AIAVCASADQdAJahCQSEUNAQsgAigCACEEAkACQCACKALICSACKAIIIAI1AswLEJxIIg4gAigCuAdBAnRBkJobaigCACACKAK8B2ytfiIPQv////8PVg0AIAQoApwBIgVFDQAgAigC3A0gD6cgBCgClAEgBREEACIEDQEgAigCACEECyACKALcDSAEQZQBahDoCiACQgA3A+ANIAJBADYC3A0MBQsgAiAENgLcDQwBCyACKALcDSACKAIAQZQBahDoCiACQQA2AtwNQgAhDgsgAiAONwPgDQwBCyAEDQMLAkAgAS0AGw0AAkAgASgCCCIEDQACQCACKAIIIgQNAEEAIQQMAQsgASgCDCAEbEHoB24hBAsCQCABKAIAIgVBfmpBAksNACACIAQ2ApwYIAJBADYCoBggBCEFAkAgBA0AIAIgAigClBYiBTYCnBgLAkAgACgCmAEiBg0AIAJBADYCmBgMBAsgAiACKAKAEkECdEGQmhtqKAIAIAVsIAIoAoQSbCAAKAKUASAGEQIAIgU2ApgYIAVFDQMgBSACNQKcGCACKAKAEiACKAKEEhCPSCACIAIoApwYNgKgGCABKAIAIQULAkAgBUF/ag4DAAEAAQsgAkEANgLYDQJAAkACQCAFQQNHDQAgAigCnBghBAwBCyACIAQ2AtQNIAQNASACKALMCyEECyACIAQ2AtQNCwJAIAAoApgBIgUNACACQQA2AtANDAMLIAIgAigCuAdBAnRBkJobaigCACAEbCACKAK8B2wgACgClAEgBRECACIENgLQDSAERQ0CIAQgAjUC1A0gAigCuAcgAigCvAcQj0ggAkEANgLYDQsCQAJAIAAQ6QoNAEEYIABBlAFqIgAQrQ4iAUUNAiABIAI2AgQgAUGDBTYCACABQQhqIAAQmQ4aAkAQ2kgiBUUNAEF/IQQCQCAFQZwBSw0AIAVBAnRByIMcaigCACEECyABIAAQ6AoMBQsgAkHQAWoQ6goMAQsCQCABKAIAQQNHDQAgAigCACEGIAIoAoQSIQEgAigCgBIhAEF+IQQgAigCCCACKAKQFCACKAKUFiIKQQVsrRCcSKciBUUNBCACQbACakEAQfAAEEghCyAAQQJ0QZCaG2ooAgAiDCABbCIJRQ0EIAkgBWwiBUGfgICAeGpBoICAgHhJDQQgAkHoAmpBAEEsEEghCSACQYQDaiINIAZBlAFqEJkOIgQNBCACQQE2AvACIAIgBTYC7AIgAiAFQR9qQd////8HcSIFNgL0AgJAIAVBI2ogDRCtDiIGDQAgCUEANgIADAMLQXwhBCAGQSNqQWBxIg1BfGogBjYCACAJIA02AgAgDUUNBAJAIAVFDQAgDUEAIAUQSBoLIAJBADYCnAMgAiABNgKYAyACIAA2ApQDIAJBAToAgAMgAkG0AmpBAEE0EEgaIAIgCzYC2AIgAkJ/NwPQAiACQn83A8ACIAJBhMkdNgKwAiAKIAFsIAxsQQF0IQAgAigC/AIiAUH/////B3EhBAJAAkAgAigC+AIiBUGAgICAeHEiBiABQYCAgIB4cSIBRw0AAkAgBCAAaiIAIAIoAuwCIgRPDQAgBiEBDAILIAZBgICAgHhzIQEgACAEayEADAELIAQgAGoiACAFQf////8HcSIEIAAgBEkbIQALIAIgACABcjYC/AILIAJBATYCDAsCQAJAIAIoAgAiAQ0AQQAhBAwBCyABKAI4IQQLQZabESEAAkAgASgCNCIBQQ5LDQAgAUEDdEGUmRtqKAIAIQALIAMgADYCgAMgBEEDQeOEEiADQYADahCaSAJAIAIoAgQiAUF+akECSw0AIAJBAiADQZADahDbSEEAIQFBACEAAkAgAigCACIERQ0AIAQoAjghAAsgA0HKuxE2AvQCIAMgA0GQA2o2AvACIABBA0HrixIgA0HwAmoQmkgCQCACKAIAIgBFDQAgACgCOCEBC0Gs0REhAEGs0REhBAJAIAIoAogUIgVBBUsNACAFQQJ0QbyIHGooAgAhBAsCQCACKAKAEiIFQQVLDQAgBUECdEG8iBxqKAIAIQALIAMgADYC5AIgAyAENgLgAiABQQNB6/8RIANB4AJqEJpIQQAhAUEAIQACQCACKAIAIgRFDQAgBCgCOCEACyACKAKMFCEEIAMgAigChBI2AtQCIAMgBDYC0AIgAEEDQciEEiADQdACahCaSAJAIAIoAgAiAEUNACAAKAI4IQELIAIoApAUIQAgAyACKAIINgLEAiADIAA2AsACIAFBA0GthBIgA0HAAmoQmkhBACEAQQAhBAJAIAIoAgAiAUUNACABKAI4IQQLIAIoApQWIQEgAyACKAKYFiIFNgK0AiADIAE2ArACIAMgBSABbDYCuAIgBEEDQfaLEiADQbACahCaSAJAIAIoAgAiAUUNACABKAI4IQALQQAhASAAQQNB4oUSQQAQmkhBACEAAkAgAigCACIERQ0AIAQoAjghAAsgA0Gj4BFB3OERIAItAIgYGzYCoAIgAEEDQbaAEiADQaACahCaSAJAIAIoAgAiAEUNACAAKAI4IQELIANBo+ARQdzhESACLQCJGBs2ApACIAFBA0GGgBIgA0GQAmoQmkhBACEBQQAhAAJAIAIoAgAiBEUNACAEKAI4IQALIANBo+ARQdzhESACLQCKGBs2AoACIABBA0GCgRIgA0GAAmoQmkgCQCACKAIAIgBFDQAgACgCOCEBCyADQaPgEUHc4REgAi0AixgbNgLwASABQQNBxoESIANB8AFqEJpIQQAhAUEAIQACQCACKAIAIgRFDQAgBCgCOCEACyADQaPgEUHc4REgAi0AjBgbNgLgASAAQQNBpIESIANB4AFqEJpIIAJBlBRqIAIoAowUIANB0AlqENxIAkAgAigCACIARQ0AIAAoAjghAQsgAyADQdAJajYC0AEgAUEDQe79ESADQdABahCaSCAHIAIoAoQSIANB0AlqENxIAkACQCACKAIAIgENAEEAIQEMAQsgASgCOCEBCyADIANB0AlqNgLAASABQQNByv0RIANBwAFqEJpIIAIoAgQhAQtBACEEAkAgAUF/ag4DAAQABAsgAkEBIANBkANqENtIQQAhAUEAIQACQCACKAIAIgRFDQAgBCgCOCEACyADQdGoETYCtAEgAyADQZADajYCsAEgAEEDQeuLEiADQbABahCaSAJAIAIoAgAiAEUNACAAKAI4IQELQazRESEAQazRESEEAkAgAigCuAciBUEFSw0AIAVBAnRBvIgcaigCACEECwJAIAIoAsAJIgVBBUsNACAFQQJ0QbyIHGooAgAhAAsgAyAANgKkASADIAQ2AqABIAFBA0Hr/xEgA0GgAWoQmkhBACEBQQAhAAJAIAIoAgAiBEUNACAEKAI4IQALIAIoArwHIQQgAyACKALECTYClAEgAyAENgKQASAAQQNByIQSIANBkAFqEJpIAkAgAigCACIARQ0AIAAoAjghAQsgAigCCCEAIAMgAigCyAk2AoQBIAMgADYCgAEgAUEDQa2EEiADQYABahCaSEEAIQBBACEEAkAgAigCACIBRQ0AIAEoAjghBAsgAigCzAshASADIAIoAtALIgU2AnQgAyABNgJwIAMgBSABbDYCeCAEQQNB9osSIANB8ABqEJpIAkAgAigCACIBRQ0AIAEoAjghAAtBACEBIABBA0HihRJBABCaSEEAIQACQCACKAIAIgRFDQAgBCgCOCEACyADQaPgEUHc4REgAi0AwA0bNgJgIABBA0G2gBIgA0HgAGoQmkgCQCACKAIAIgBFDQAgACgCOCEBCyADQaPgEUHc4REgAi0AwQ0bNgJQIAFBA0GGgBIgA0HQAGoQmkhBACEBQQAhAAJAIAIoAgAiBEUNACAEKAI4IQALIANBo+ARQdzhESACLQDCDRs2AkAgAEEDQYKBEiADQcAAahCaSAJAIAIoAgAiAEUNACAAKAI4IQELIANBo+ARQdzhESACLQDDDRs2AjAgAUEDQcaBEiADQTBqEJpIQQAhAUEAIQACQCACKAIAIgRFDQAgBCgCOCEACyADQaPgEUHc4REgAi0AxA0bNgIgIABBA0GkgRIgA0EgahCaSCAIIAIoArwHIANB0AlqENxIAkAgAigCACIARQ0AIAAoAjghAQsgAyADQdAJajYCECABQQNB7v0RIANBEGoQmkggAkHMCWogAigCxAkgA0HQCWoQ3EhBACEEQQAhAQJAIAIoAgAiAkUNACACKAI4IQELIAMgA0HQCWo2AgAgAUEDQcr9ESADEJpIDAMLQXwhBAwBCyACEOcKQXwhBAwBCyACEOcKCyAD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DAELIAJB4ABqELEOQSQQpgEhAyABKAIAIQQgASgCBCEFIAFCADcCACADIAU2AiAgAyAENgIcIAMgBTYCGCADIAQ2AhQgA0GAgID8ezYCECADQgA3AgggA0EAOgAEIANBATYCAAsgACADNgIAIAJBgARqJAALJAACQCAAIAIQtQYiAigCBCIARQ0AIAIoAgAgASAAEEsaCyACC4sBAQF/IwBB4ABrIgMkACAAQQBBoAMQSCEAIANBEGpBAEHQABBIGiADQSRqQgA3AgAgA0EsakIANwIAIANBNGpCgICAgMAANwIAIANCADcCHCADQQA2AgwgA0IFNwIEAkAgASACIANBBGogABCbDkUNAEH4hxJBM0EBQbDMHRBNGgsgA0HgAGokACAAC/8BAgR/AX0jAEGwA2siASQAAkAgACoCECIFQwAAAABgDQACQCAALQAEQQFHDQAgABCVDiECAkAgACgCDCIDDQAgACABQQhqIAAoAhQgACgCGBC2DiIEKAJoIgM2AgwgBBCxDgsCQAJAIAJFDQAgAw0BCyAAQQA2AhBDAAAAACEFDAILIAAgACgCIEECdrMgAyACbLOVIgU4AhAMAQsCQAJAIAFBCGogACgCFCAAKAIYELYOIgMoAmgiAg0AQwAAAAAhBQwBCyADIAFBqANqELgOIQRDAAAAACABKQOoA7UgBBsgArOVIQULIAAgBTgCECADELEOCyABQbADaiQAIAULXAIBfwF+QX4hAgJAIAFFDQAgAUIANwMAIABFDQACQCAAKQMQIgNCf1ENACABIAMgACkDCH03AwBBAA8LAkAgACgCACgCECICDQBBYw8LIAAgASACEQIAIQILIAILOAACQCACQYCAgIAESQ0AEKwBAAsgASAAayIBQQF1IgAgAiAAIAJLG0H/////AyABQfz///8HSRsLTwAgACADNgIQQQAhAyAAQQA2AgwCQCABRQ0AIAEQ0AchAwsgACADNgIAIAAgAyACQQJ0aiICNgIIIAAgAyABQQJ0ajYCDCAAIAI2AgQgAAuTAQEDfyABKAIEIQIgACgCACEDIAAoAgQhBAJAA0AgBCADRg0BIAJBfGoiAiAEQXxqIgQqAgA4AgAMAAsACyABIAI2AgQgACgCACEEIAAgAjYCACABIAQ2AgQgACgCBCEEIAAgASgCCDYCBCABIAQ2AgggACgC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AgghBQJAIAEoAgAiA0UNACADIAMoAihBAWo2AigLIAUgAzYCACAEIAVBBGo2AgggACAEEMwOIAAoAgQhAyAEEM0OGgsgACADNgIEIAJBIGokAAs4AAJAIAJBgICAgARJDQAQrAEACyABIABrIgFBAXUiACACIAAgAksbQf////8DIAFB/P///wdJGwtlACAAIAM2AhBBACEDIABBADYCDAJAAkAgAUUNACABQYCAgIAETw0BIAFBAnQQpgEhAwsgACADNgIAIAAgAyACQQJ0aiICNgIIIAAgAyABQQJ0ajYCDCAAIAI2AgQgAA8LEKgHAAueAQEEfyABKAIEIQIgACgCACEDIAAoAgQhBAJAA0AgBCADRg0BIARBfGoiBCgCACEFIARBADYCACACQXxqIgIgBTYCAAwACwALIAEgAjYCBCAAKAIAIQQgACACNgIAIAEgBDYCBCAAKAIEIQQgACABKAIINgIEIAEgBDYCCCAAKAIIIQQgACABKAIMNgIIIAEgBDYCDCABIAEoAgQ2AgALRgECfyAAKAIEIQECQANAIAAoAggiAiABRg0BIAAgAkF8aiICNgIIIAIQxg4aDAALAAsCQCAAKAIAIgJFDQAgAhCkAQsgAAtGAQJ/IAAoAgghAQJAA0AgAUUNASABKAIAIQIgARCkASACIQEMAAsACyAAKAIAIQEgAEEANgIAAkAgAUUNACABEKQBCyAACy4AAkAgACgCGCABRg0AIAAgATYCGCAAIAAoAgAoAjQRAQAgACgCCEHMARClBgsLogQCCH8BfUECIQICQCABQQFGDQACQCABIAFBf2pxDQAgASECDAELIAEQ+wghAgsCQAJAAkAgAiAAKAIEIgFLDQAgAiABTw0CIAFBA0khAwJAAkAgACgCDLMgACoCEJWNIgpDAACAT10gCkMAAAAAYHFFDQAgCqkhBAwBC0EAIQQLAkACQCADDQAgAWlBAUsNACAEQQFBICAEQX9qZ2t0IARBAkkbIQQMAQsgBBD7CCEECyACIAQgAiAESxsiAiABTw0CIAJFDQELAkAgAkGAgICABE8NACAAIAJBAnQQpgEQ0Q4gACACNgIEQQAhAQNAAkAgASACRw0AIAAoAggiBUUNBCAAQQhqIQEgBSgCBCEGAkACQCACaSIEQQFLDQAgBiACQX9qcSEGDAELIAYgAkkNACAGIAJwIQYLIAAoAgAgBkECdGogATYCACACQX9qIQcgBEEBSyEIA0AgBSgCACIERQ0FIAQoAgQhAQJAAkAgCA0AIAEgB3EhAQwBCyABIAJJDQAgASACcCEBCwJAIAEgBkYNAAJAIAAoAgAgAUECdCIDaiIJKAIADQAgCSAFNgIAIAEhBgwBCyAFIAQoAgA2AgAgBCAAKAIAIANqKAIAKAIANgIAIAAoAgAgA2ooAgAgBDYCAAwBCyAEIQUMAAsACyAAKAIAIAFBAnRqQQA2AgAgAUEBaiEBDAALAAsQqAcACyAAQQAQ0Q4gAEEANgIECwsfAQF/IAAoAgAhAiAAIAE2AgACQCACRQ0AIAIQpAELCyEBAX8gACgCACEBIABBADYCAAJAIAFFDQAgARCkAQsgAAuPAgEGfwJAAkACQAJAIAAoAgQiAiAAKAIIIgNPDQAgAiABNgIAIAJBBGohAgwBCyACIAAoAgAiBGtBAnUiBUEBaiIGQYCAgIAETw0BAkACQCADIARrIgNBAXUiByAGIAcgBksbQf////8DIANB/P///wdJGyIDDQBBACEGDAELIANBgICAgARPDQMgA0ECdBCmASEGCyAGIAVBAnRqIgUgATYCACAFIQECQANAIAIgBEYNASABQXxqIgEgAkF8aiICKAIANgIADAALAAsgACAFQQRqIgI2AgQgACgCACEEIAAgATYCACAAIAYgA0ECdGo2AgggBEUNACAEEKQBCyAAIAI2AgQPCxCsAQALEKgHAAs4AAJAIAJBgICAgARJDQAQrAEACyABIABrIgFBAXUiACACIAAgAksbQf////8DIAFB/P///wdJGwtlACAAIAM2AhBBACEDIABBADYCDAJAAkAgAUUNACABQYCAgIAETw0BIAFBAnQQpgEhAwsgACADNgIAIAAgAyACQQJ0aiICNgIIIAAgAyABQQJ0ajYCDCAAIAI2AgQgAA8LEKgHAAuTAQEDfyABKAIEIQIgACgCACEDIAAoAgQhBAJAA0AgBCADRg0BIAJBfGoiAiAEQXxqIgQoAgA2AgAMAAsACyABIAI2AgQgACgCACEEIAAgAjYCACABIAQ2AgQgACgCBCEEIAAgASgCCDYCBCABIAQ2AgggACgCCCEEIAAgASgCDDYCCCABIAQ2AgwgASABKAIENgIAC0IBAn8gACgCCCEBIAAoAgQhAgJAA0AgASACRg0BIAAgAUF8aiIBNgIIDAALAAsCQCAAKAIAIgFFDQAgARCkAQsgAAulAQEEfyMAQSBrIgIkAAJAAkAgACgCBCIDIAAoAggiBE8NACADIAEoAgA2AgAgA0EEaiEBDAELIAJBDGogACgCACIFIAQgAyAFa0ECdUEBahDZDiAAKAIEIAAoAgBrQQJ1IABBCGoQ2g4iAygCCCABKAIANgIAIAMgAygCCEEEajYCCCAAIAMQ2w4gACgCBCEBIAMQ3A4aCyAAIAE2AgQgAkEgaiQACzgAAkAgAkGAgICABEkNABCsAQALIAEgAGsiAUEBdSIAIAIgACACSxtB/////wMgAUH8////B0kbC08AIAAgAzYCEEEAIQMgAEEANgIMAkAgAUUNACABEKALIQMLIAAgAzYCACAAIAMgAkECdGoiAjYCCCAAIAMgAUECdGo2AgwgACACNgIEIAALkwEBA38gASgCBCECIAAoAgAhAyAAKAIEIQQCQANAIAQgA0YNASACQXxqIgIgBEF8aiIEKAIANgIADAALAAsgASACNgIEIAAoAgAhBCAAIAI2AgAgASAENgIEIAAoAgQhBCAAIAEoAgg2AgQgASAENgIIIAAoAgghBCAAIAEoAgw2AgggASAENgIMIAEgASgCBDYCAAtCAQJ/IAAoAgghASAAKAIEIQICQANAIAEgAkYNASAAIAFBfGoiATYCCAwACwALAkAgACgCACIBRQ0AIAEQpAELIAALjwIBBn8CQAJAAkACQCAAKAIEIgIgACgCCCIDTw0AIAIgATYCACACQQRqIQIMAQsgAiAAKAIAIgRrQQJ1IgVBAWoiBkGAgICABE8NAQJAAkAgAyAEayIDQQF1IgcgBiAHIAZLG0H/////AyADQfz///8HSRsiAw0AQQAhBgwBCyADQYCAgIAETw0DIANBAnQQpgEhBgsgBiAFQQJ0aiIFIAE2AgAgBSEBAkADQCACIARGDQEgAUF8aiIBIAJBfGoiAigCADYCAAwACwALIAAgBUEEaiICNgIEIAAoAgAhBCAAIAE2AgAgACAGIANBAnRqNgIIIARFDQAgBBCkAQsgACACNgIEDwsQrAEACxCoBwALOAACQCACQYCAgIAESQ0AEKwBAAsgASAAayIBQQF1IgAgAiAAIAJLG0H/////AyABQfz///8HSRsLZQAgACADNgIQQQAhAyAAQQA2AgwCQAJAIAFFDQAgAUGAgICABE8NASABQQJ0EKYBIQMLIAAgAzYCACAAIAMgAkECdGoiAjYCCCAAIAMgAUECdGo2AgwgACACNgIEIAAPCxCoBwALkwEBA38gASgCBCECIAAoAgAhAyAAKAIEIQQCQANAIAQgA0YNASACQXxqIgIgBEF8aiIEKAIANgIADAALAAsgASACNgIEIAAoAgAhBCAAIAI2AgAgASAENgIEIAAoAgQhBCAAIAEoAgg2AgQgASAENgIIIAAoAgghBCAAIAEoAgw2AgggASAENgIMIAEgASgCBDYCAAtCAQJ/IAAoAgghASAAKAIEIQICQANAIAEgAkYNASAAIAFBfGoiATYCCAwACwALAkAgACgCACIBRQ0AIAEQpAELIAALOAACQCACQYCAgIAESQ0AEKwBAAsgASAAayIBQQF1IgAgAiAAIAJLG0H/////AyABQfz///8HSRsLTwAgACADNgIQQQAhAyAAQQA2AgwCQCABRQ0AIAEQ5A4hAwsgACADNgIAIAAgAyACQQJ0aiICNgIIIAAgAyABQQJ0ajYCDCAAIAI2AgQgAAscAAJAIABBgICAgARJDQAQqAcACyAAQQJ0EKYBC5MBAQN/IAEoAgQhAiAAKAIAIQMgACgCBCEEAkADQCAEIANGDQEgAkF8aiICIARBfGoiBCgCADYCAAwACwALIAEgAjYCBCAAKAIAIQQgACACNgIAIAEgBDYCBCAAKAIEIQQgACABKAIINgIEIAEgBDYCCCAAKAIIIQQgACABKAIMNgIIIAEgBDYCDCABIAEoAgQ2AgALQgECfyAAKAIIIQEgACgCBCECAkADQCABIAJGDQEgACABQXxqIgE2AggMAAsACwJAIAAoAgAiAUUNACABEKQBCyAACy0AAkAgASAAKAIYIAEoAgAoAggRAgAiAQ0AQQAPCyABQQsgASgCACgCDBECAAtKAQF/IAAgAUGsdWpBACABGyICNgIoAkAgAiAARg0AIAAgASAAKAIYIAEoAgAoAggRAgAiATYCICABIAAgASgCACgCSBEDAAtBAAsJACAAIAEQ1gkLLAACQEEALQDckh5BAXENAEEAQgA3AtCSHkEAQQE6ANySHkEAQQA2AtiSHgsLGgACQCAAIAFBARDYCiIBDQBBAA8LIAEoAgwLCQAgACABEJULC1ABAn8CQCAALwEwIgJBAXFFIAFzIgMNACAAIAJB/v8DcSABciIBOwEwIAAgASAAKAIAKAI4EQMAIAAoAiggACgCJBDpDiAAEO4OCyADQQFzC3MBA38gACAAKAIAKAJAEQAAIQECQAJAIAAoAiwiAkUNACACKAIAIQMMAQsQ7w5BACgC2JAeIQMgACgCLCICDQAQ7w5B2JAeIQILIAIoAgQhAANAAkAgAyAARw0ADwsgAygCACABEPAOIANBBGohAwwACwALLAACQEEALQDkkB5BAXENAEEAQgA3AtiQHkEAQQE6AOSQHkEAQQA2AuCQHgsLdQEBfwJAIAAtACBBAXFFIAFzDQAgACgCDCICQdQERg0AIAIgACgCLBCpD0UNACAALQAgIQICQCABRQ0AIAAgAkEBcjoAIA8LIAAgAkH+AXE6ACAgAC8BKEUNACAAKAIcIgFFDQAgASAAIAEoAgAoAgQRAwALCyQAAkAgACgCICIADQBBAQ8LIAAgASACQQAgACgCACgCRBEHAAsYACAAIAIgASAAa0ECdRCZCiIAIAEgABsLCgAgABDDChCkAQsEACAACwcAIAAQpAELvAUBDH8jAEEQayIBJAAgACgCBCICKALMCyEDIAIoAtALIQQgAUEANgIMIAFCADcCBCAEIANrQQJ1IQUCQCAEIANGDQAgAUEEaiAFEJcKIAEgASgCCCIDIAVqIgQ2AggCQAJAAkAgAw0AIARBf2ohBgwBCyAEQX9qIgYgA0F/anNBH0sNACABKAIEIQcMAQsgASgCBCIHQQAgBkEFdiAEQSFJG0ECdGpBADYCAAsgByADQQN2Qfz///8BcWohBwJAAkAgA0EfcSIDDQAgBSEGDAELIAcgBygCAEF/QSAgA2siBCAEIAUgBCAFSRsiBGt2QX8gA3RxQX9zcTYCACAFIARrIQYgB0EEaiEHCyAGQQV2IgghAyAHIQQCQANAIANFDQEgBEEANgIAIANBf2ohAyAEQQRqIQQMAAsACyAGQR9xIgNFDQAgByAIQQJ0aiIEIAQoAgBBf0EgIANrdkF/c3E2AgALIAVBASAFQQFLGyEFIAJB2AtqIQkgAkHUCmohCkEAIQsCQANAIAtB5ABGDQFBACEMQQEhAyABKAIEIQcCQANAAkAgAyAFRw0AQQEhAyAMQQFxDQIMBAsCQCACKALMCyADQQJ0aigCACIERQ0AIAcgA0EDdkH8////AXFqIgYoAgBBASADdCIIcUEARyAEIAogBCgCACgCGBECACIERg0AAkACQCAERQ0AIAYoAgAgCHIhBAwBCyAGKAIAIAhBf3NxIQQLIAYgBDYCAEEBIQwLIANBAWohAwwACwALAkADQCADIAVGDQECQCAHIANBA3ZB/P///wFxaigCACADdkEBcQ0AIAkgAigCzAsgA0ECdCIEahDzCiACKALMCyAEakEANgIACyADQQFqIQMMAAsACyALQQFqIQsMAAsACyABQQRqEI0KGiAAKAIEEPgKIQMgAUEQaiQAIAMLDgAgACgCBEEAEOwOQQELDQAgAEHgCmogARCfCwuQAgEFfyMAQSBrIgIkACAAIAEQ6A4aQQIhAQJAIAAoAiAiA0EmIAMoAgAoAgwRAgBFDQACQAJAAkAgACgCICIEKAKMASIBDQBBACEDQQwQpgEiAUEANgIIIAFCADcCACAEIAE2AowBIAFBBGohBEEAIQUMAQsgAUEEaiEEIAEoAgQiAyABKAIIIgVPDQAgAyAANgIAIANBBGohAQwBCyACQQxqIAEoAgAiBiAFIAMgBmtBAnVBAWoQ+g4gASgCBCABKAIAa0ECdSABQQhqEPsOIgMoAgggADYCACADIAMoAghBBGo2AgggASADEPwOIAEoAgQhASADEP0OGgsgBCABNgIAQQAhAQsgAkEgaiQAIAELOAACQCACQYCAgIAESQ0AEKwBAAsgASAAayIBQQF1IgAgAiAAIAJLG0H/////AyABQfz///8HSRsLZQAgACADNgIQQQAhAyAAQQA2AgwCQAJAIAFFDQAgAUGAgICABE8NASABQQJ0EKYBIQMLIAAgAzYCACAAIAMgAkECdGoiAjYCCCAAIAMgAUECdGo2AgwgACACNgIEIAAPCxCoBwALkwEBA38gASgCBCECIAAoAgAhAyAAKAIEIQQCQANAIAQgA0YNASACQXxqIgIgBEF8aiIEKAIANgIADAALAAsgASACNgIEIAAoAgAhBCAAIAI2AgAgASAENgIEIAAoAgQhBCAAIAEoAgg2AgQgASAENgIIIAAoAgghBCAAIAEoAgw2AgggASAENgIMIAEgASgCBDYCAAtCAQJ/IAAoAgghASAAKAIEIQICQANAIAEgAkYNASAAIAFBfGoiATYCCAwACwALAkAgACgCACIBRQ0AIAEQpAELIAALCgAgACgCIBCpCQsPACAAIAAoAgAoAkwRAQALDwAgACgCIEEcaiAAEIULCw8AIAAgACgCACgCTBEBAAsDAAALBQBBzwALDgAgAUHPAEYgAUEKRnILIwACQCABQawBRw0AIAAgAhC7CjgCNEEBDwsgACABIAIQvgoLogEBBH8jAEEgayICJAACQAJAIAAoAjgiAyAAKAI8IgRPDQAgAyABNgIAIANBBGohAQwBCyACQQxqIAAoAjQiBSAEIAMgBWtBAnVBAWoQjgsgACgCOCAAKAI0a0ECdSAAQTxqEI8LIgMoAgggATYCACADIAMoAghBBGo2AgggAEE0aiADEJALIAAoAjghASADEJELGgsgACABNgI4IAJBIGokAAtMAQN/AkAgACABEO0OIgJFDQAgACgCOCEDIAAoAjQhAANAIAAgA0YNASAAKAIAIgQgASAEKAIAKAIwEQIAGiAAQQRqIQAMAAsACyACCz4BAX8jAEEgayICJAACQCABQRBqKAIAIAAQiQ9FDQAgACACQQhqIAEQig8iARCLDyABEIwPGgsgAkEgaiQACzwBAX8jAEEQayICJAAgAiABNgIMAkAgAA0AEI0PAAsgACACQQxqIAAoAgAoAhgRAgAhACACQRBqJAAgAAtWAQF/AkAgASgCECICDQAgAEEANgIQIAAPCwJAIAIgAUcNACAAIAA2AhAgASgCECIBIAAgASgCACgCDBEDACAADwsgACACIAIoAgAoAggRAAA2AhAgAAt+AQV/IwBBIGsiAiQAIAAoAjghAyAAKAI0IQAgAUEQaiEEAkADQCAAIANGDQECQCAEKAIAIAAoAgAiBRCJD0UNACAFQQsgBSgCACgCDBECAEUNACAFIAJBCGogARCKDyIGEIsPIAYQjA8aCyAAQQRqIQAMAAsACyACQSBqJAALOgECfwJAAkACQCAAKAIQIgEgAEcNAEEQIQIMAQtBFCECIAFFDQELIAEgASgCACACaigCABEBAAsgAAsGABCsAQALCgAgABDCChCkAQsDAAALOgECfyAAKAIIIgIhAwJAAkADQCADRQ0BIAMgAUYNAiADKAIkIQMMAAsACyABIAI2AiQgACABNgIICws8AQJ/IABBCGohAgJAA0AgAiID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ASAAIAAoAgAoApQBEQEAIAAoAghBhQQQpQYLCzEAAkAgACoChAEgAVsNACAAIAE4AoQBIAAgACgCACgCmAERAQAgACgCCEGGBBClBgsLMQACQCAAKgKIASABWw0AIAAgATgCiAEgACAAKAIAKAKcAREBACAAKAIIQYcEEKUGCwsxAAJAIAAqArwBIAFbDQAgACABOAK8ASAAIAAoAgAoAuwBEQEAIAAoAghBuwUQpQYLCzEAAkAgACoCwAEgAVsNACAAIAE4AsABIAAgACgCACgC8AERAQAgACgCCEG8BRClBgsLLgACQCAAKgI0IAFbDQAgACABOAI0IAAgACgCACgCSBEBACAAKAIIQbQFEKUGCwstAAJAIAAqAkAgAVsNACAAIAE4AkAgACAAKAIAKAJMEQEAIAAoAghBGBClBgsLLQACQCAAKgJEIAFbDQAgACABOAJEIAAgACgCACgCUBEBACAAKAIIQRkQpQYLCy0AAkAgACoCTCABWw0AIAAgATgCTCAAIAAoAgAoAlwRAQAgACgCCEEaEKUGCwswAAJAIAAqAvABIAFbDQAgACABOALwASAAIAAoAgAoAvgBEQEAIAAoAghBFBClBgsLMAACQCAAKgL0ASABWw0AIAAgATgC9AEgACAAKAIAKAL8AREBACAAKAIIQRUQpQYLCzEAAkAgACoC+AEgAVsNACAAIAE4AvgBIAAgACgCACgCgAIRAQAgACgCCEH7ABClBgsLMQACQCAAKgL8ASABWw0AIAAgATgC/AEgACAAKAIAKAKEAhEBACAAKAIIQfwAEKUGCwswAAJAIAAqAoQCIAFbDQAgACABOAKEAiAAIAAoAgAoApQCEQEAIAAoAghBHxClBgsLMQACQCAAKgKIAiABWw0AIAAgATgCiAIgACAAKAIAKAKYAhEBACAAKAIIQaEBEKUGCwsxAAJAIAAqAowCIAFbDQAgACABOAKMAiAAIAAoAgAoApwCEQEAIAAoAghBogEQpQYLCzEAAkAgACoCkAIgAVsNACAAIAE4ApACIAAgACgCACgCoAIRAQAgACgCCEGjARClBgsLLgACQCAAKgI0IAFbDQAgACABOAI0IAAgACgCACgCSBEBACAAKAIIQasCEKUGCwsuAAJAIAAqAjggAVsNACAAIAE4AjggACAAKAIAKAJMEQEAIAAoAghBrAIQ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AUUNACAALQAQQQhxDQAgAEEAIAAoAgAoAjQRAwALAkAgAkUNACAAQQA7ASggACACIAAoAgAoAjgRAwALAkAgAUUNACAALQAQQQhxRQ0AIABBACAAKAIAKAI0EQMACwtMAQF/IAAoAgAhAiAAIAEoAgA2AgAgASACNgIAIAAoAgQhAiAAIAEoAgQ2AgQgASACNgIEIAAoAgghAiAAIAEoAgg2AgggASACNgIICwIACwIACwIAC5cBAQN/IwBBIGsiAiQAIAEoAgQhAyABKAIAIQEgAkEAOwEcIAIgATYCGCACIAM2AhQgAiABNgIQIABBwABqIQQgASEAAkADQCAAIAEgA2pGDQEgAi0AHA0BIAItAB0NASACIAJBEGoQogo2AgwgBCACQQxqEOgQIAIoAhQhAyACKAIQIQEgAigCGCEADAALAAsgAkEgaiQAC6QBAQR/IwBBIGsiAiQAAkACQCAAKAIEIgMgACgCCCIETw0AIAMgASgCADYCACADQQRqIQMMAQsgAkEMaiAAKAIAIgUgBCADIAVrQQJ1QQFqEOkQIAAoAgQgACgCAGtBAnUgAEEIahDqECIEKAIIIgMgASgCADYCACAEIANBBGo2AgggACAEEOsQIAAoAgQhAyAEEOwQGgsgACADNgIEIAJBIGokAAs4AAJAIAJBgICAgARJDQAQrAEACyABIABrIgFBAXUiACACIAAgAksbQf////8DIAFB/P///wdJGwtPACAAIAM2AhBBACEDIABBADYCDAJAIAFFDQAgARDPByEDCyAAIAM2AgAgACADIAJBAnRqIgI2AgggACADIAFBAnRqNgIMIAAgAjYCBCAAC5MBAQN/IAEoAgQhAiAAKAIAIQMgACgCBCEEAkADQCAEIANGDQEgAkF8aiICIARBfGoiBCgCADYCAAwACwALIAEgAjYCBCAAKAIAIQQgACACNgIAIAEgBDYCBCAAKAIEIQQgACABKAIINgIEIAEgBDYCCCAAKAIIIQQgACABKAIMNgIIIAEgBDYCDCABIAEoAgQ2AgALQgECfyAAKAIIIQEgACgCBCECAkADQCABIAJGDQEgACABQXxqIgE2AggMAAsACwJAIAAoAgAiAUUNACABEKQBCyAACxwAIABBwABqIAFBwABqEO4QGiAAIAEtAEw6AEwLlQIBBX8CQCAAIAFGDQACQCAA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EQshACAAIAEgACoCnAEgACoCoAEgACoClAEgACoCmAEQvBELCwAgACgChAEQoxELCwAgACgChAEQoxELCwAgACgChAEQoxELCwAgACgChAEQoxELBwAgABCVEQsKACAAEJUREKQBCwUAQYcECw8AIAFBhwRGIAFB6ANGcguVAQACQAJAAkACQAJAAkACQAJAIAFBt3pqDgcAAQIDBAUGBwsgACACEKIKNgKIAUEBDwsgACACEKIKNgKMAUEBDwsgACACEKIKNgKQAUEBDwsgACACELsKOAKUAUEBDwsgACACELsKOAKYAUEBDwsgACACELsKOAKcAUEBDwsgACACELsKOAKgAUEBDwsgACABIAIQmhELBABBAgsCAAsCAAsCAAt9AQF/QbABEKYBQQBBsAEQSBDNESIBIAAoAqQBNgKkASABIAAoAogBNgKIASABIAAoAowBNgKMASABIAAoApABNgKQASABIAAqApQBOAKUASABIAAqApgBOAKYASABIAAqApwBOAKcASABIAAqAqABOAKgASABIAAQuBEgAQthACAAELsRIgBCgICA/IOAgMA/NwKcASAAQoCAgPyDgIDAPzcClAEgAEEANgKQASAAQoGAgIBwNwKIASAAQQA2AqwBIABBxKcUNgKoASAAQejjEjYCGCAAQfTiEjYCACAAC2cBBH8gAEGUyRU2AgAgAEEQaiEBIAAoAhQhAiAAKAIQIQMCQANAIAMgAkYNAQJAIAMoAgAiBEUNACAEIAQoAgAoAgQRAQALIANBBGohAwwACwALIABBHGoQggYaIAEQ8QYaIAAQxgoLCgAgABDOERCkAQsFAEH+AwsIACABQf4DRgsEAEEACwcAIABBHGoLHAACQCAAQYCAgIAESQ0AEKgHAAsgAEECdBCmAQsMACAAIAEQ1hFBAXMLNAEDf0EAIQICQCABEFkiAyAAKAIEIAAsAAsiBCAEQQBIG0cNACAAIAEgAxDXEUUhAgsgAguMAQECfyMAQRBrIgMkACADIAI2AgggA0F/NgIMAkAgAkF/Rg0AIAMgACgCBCAALQALEP1RNgIAIAMgA0EMaiADEI5SKAIAIgQ2AgQCQCAAEJhSIAEgA0EEaiADQQhqEI5SKAIAELJZIgANAEF/IQAgBCACSQ0AIAQgAkshAAsgA0EQaiQAIAAPCxCzWQALEABBKBCm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AhAgAEGg5QBBACABKAIMEQcAGg8LIAchAgwACwALPAEBfgJAIAAQkw8iAUKAgICACHxCgICAgBBUDQAgAEEBOgANIAAgACgCACAAKAIEajYCCEIAIQELIAGnC4BEAQF/QQAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBf2oOoAW7ATajAawBpAGyAakBqwGUApQClAKUApQClAKUAqcBmgGdAZ4BoQGUApkBvQGcAVNbVG6UAnJ4lAKUAqUBqgGUAnOUApQC7wHwAa4B8QHyAe4B8wGgASe5AV6vAbABdZQClAJWanmUAZQCUGd3iQFwlAKUAlqUAmORAZQCfJQClQFoVZMBlAKUAi0qM1+UApQCLjQ1lAKUAjiUApQCgAFPlAKPAZQCsQGUAoYClAKUAokCjQKUAqIBpgGUAqgBlAKUAlh7lAJgbJQClAKUAlFxigGUAmEotAG2AcABvgGUApQCgQKCApQC/AFZlAKUAosCa5QC/wGUApQCO7wBlAKUApQClAKUApQClAKUApQC9AH6AZQClAL5AWn4ASuUApQCSnaUAowBlAKUAoEBlAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQCjAKOApQCugGUApQClAKUApQClAKUApQClAKUAkWUApQClAKUApQCBgEFAgMLDA8QEhUWCggYGxwfICTHAeYBFxpO7QFClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQC6AHGAekB6gHrAZQClAKUAl2UAmRlen6LAY4BfZQC1gHlAUOUAkdERlxm0wHUAc0BHSHFAdgBTZgBmwFIBwkRFDfOAdEBzAHjAZQCzwGUAjAylAIvMZQClAKSAYcC1wHVAdkBnwHQAeQBygHaAdsB3AHdAd4B3wHgAeEB4gGUAvUBswGUApQClAKUApQClAKUApQClAKUAjmUApQClAKUAg2UAh7EAckB/gGUAvYB9wH7AYAC/QGUApQClAKUApQClAKUApQCExkiI8gBlALnAdIBOkuUApQClALCAQQOlAJvkAE8lAKUAkmUApQClAKUAkEpJUyUAoQCywEmrQGUApMClAKUApQCLLgBwQGU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AEL/////DzcCBCAADwtBFBCmASIAQgA3AgwgAEL/////DzcCBCAAQYTUFDYCACAADwtBEBCmASIAQQA2AgwgAEL/////DzcCBCAAQZSWFTYCACAADwtBJBCmAUEAQSQQSBCHEw8LQdQAEKYBQQBB1AAQSBCIEw8LQcAAEKYBIgBBfzYCBCAAQQhqQQBBLBBIGiAAQQA2AjwgAEHs/hI2AgAgAEKAgID8czcCNCAADwtBOBCmAUEAQTgQSBCJEw8LQdQAEKYBQQBB1AAQSBCKEw8LQRwQpgEiAEEANgIMIABC/////w83AgQgAEEANgIYIABCADcCECAAQYS0EzYCACAADwtBGBCmASIAQgA3AwAgAEEQakIANwMAIABBCGpCADcDACAAEIsTDwtBJBCmAUEAQSQQSBCMEw8LQRwQpgEiAEIANwMAIABBGGpBADYCACAAQRBqQgA3AwAgAEEIakIANwMAIAAQjRMPC0E0EKYBEI4TDwtBwAAQpgFBAEHAABBIEI8TDwtB5AAQpgEQkBMPC0EQEKYBIgBBfzYCDCAAQv////8PNwIEIABB3JEVNgIAIAAPC0EcEKYBIgBBADYCDCAAQv////8PNwIEIABBADYCGCAAQgA3AhAgAEHQtBM2AgAgAA8LQRAQpgEiAEEANgIMIABC/////w83AgQgAEGAkBU2AgAgAA8LQRAQpgEiAEEANgIMIABB9JAVNgIAIABC/////w83AgQgAA8LQSQQpgFBAEEkEEgQkRMPC0EkEKYBQQBBJBBIEJITDwtBHBCmASIAQv////8fNwIUIABCgICAgHA3AgwgAEL/////DzcCBCAAQezNEzYCACAADwtBGBCmASIAQQA2AgwgAEL/////DzcCBCAAQv////8PNwMQIABBrM0TNgIAIAAPC0HQABCmAUEAQdAAEEgQkxMPC0EYEKYBIgBBADYCFCAAQv////8PNwIMIABC/////w83AgQgAEG4jxU2AgAgAA8LQRAQpgEiAEF/NgIEIABCADcDCCAAQYyTFTYCACAADwtBHBCmASIAQQA2AgwgAEL/////DzcCBCAAQgA3AxAgAEEANgIYIABB0J4VNgIAIAAPC0EcEKYBIgBBADYCGCAAQQA2AgwgAEL/////DzcCBCAAQgA3AxAgAEG0jhU2AgAgAA8LQTQQpgEiAEF/NgIE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QZABEEgQ1RMPC0EYEKYBIgBBfzYCDCAAQv////8PNwIEIABCADcDECAAQdCREzYCACAADwtBlAEQpgFBAEGUARBIENYTDwtBmAEQpgFBAEGYARBIENcTDwtBlAEQpgFBAEGUARBIENgTDwtBrAEQpgFBAEGsARBIENkTDwtBkAEQpgFBAEGQARBIENoTDwtBnAEQpgFBAEGcARBIENsTDwtBEBCmASIAQQA2AgwgAEHcqBM2AgAgAEL/////DzcCBCAADwtBEBCmASIAQQA2AgwgAEL/////DzcCBCAAQayoEzYCACAADwtBEBCmASIAQQA2AgwgAEL/////DzcCBCAAQaSqEzYCACAADwtBEBCmASIAQQA2AgwgAEL/////DzcCBCAAQdSqEzYCACAADwtBFBCmASIAQgA3AgwgAEL/////DzcCBCAAQfCpEzYCACAADwtBFBCmASIAQgA3AgwgAEL/////DzcCBCAAQYypEzYCACAADwtBFBCmASIAQoCAgICAgIDAPzcCDCAAQv////8PNwIEIABBtKsTNgIAIAAPC0EQEKYBIgBBADYCDCAAQv////8PNwIEIABBhKsTNgIAIAAPC0EQEKYBIgBBADYCDCAAQv////8PNwIEIABBwKkTNgIAIAAPC0GkARCmAUEAQaQBEEgQ3BMPC0GQARCmAUEAQZABEEgQ3RMPC0G8ARCmAUEAQbwBEEgQ3hMPC0HQABCmAUEAQdAAEEgQ+RAPC0EQEKYBIgBBfzYCDCAAQv////8PNwIEIABBxPISNgIAIAAPC0EYEKYBIgBCADcDACAAQRBqQgA3AwAgAEEIakIANwMAIAAQ3xMPC0EQEKYBIgBBADYCDCAAQv////8PNwIEIABB5NcUNgIAIAAPC0EQEKYBIgBBfzYCDCAAQv////8PNwIEIABB4PMSNgIAIAAPC0EQEKYBIgBBnbr0eDYCDCAAQv////8PNwIEIABBlPQSNgIAIAAPC0EUEKYBIgBC/////w83AgQgAEL/////DzcCDCAAQcj0EjYCACAADwtBuAIQpgFBAEG4AhBIEOATDwtBxAAQpgFBAEHEABBIEOETDwtBrAEQpgFBAEGsARBIEOITDwtBtAEQpgFBAEG0ARBIEOMTDwtBhAEQpgFBAEGEARBIEOQTDwtB7AAQpgFBAEHsABBIEOUTDwtB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NAAgABCTFCIAQgA3AhwgAEHY3BQ2AgAgAEF/NgIYIABBJGpCADcCACAAQSxqQgA3AgAgAAskACAAEI4TIgBBADYCPCAAQoCAgIBwNwI0IABBrN0UNgIAIAALPgAgAELh9dH4g4CAwD83AhQgAEK9lNz2AzcCDCAAQv////8PNwIEIABCADcCXCAAQYznEjYCACAAEKkYIAALNQAgAEKAgICAcDcCHCAAQoCAgIBwNwIUIABBADYCDCAAQv////8PNwIEIABBqLcTNgIAIAALOAAgAEEAOgAgIABBADYCHCAAQoCAgIBwNwIUIABBADYCDCAAQv////8PNwIEIABBnLUTNgIAIAALRAAgAEEANgIUIABBfzYCDCAAQv////8PNwIEIABBHGpBAEEyEEgaIABB/LsUNgIYIABBvLsUNgIQIABB4LoUNgIAIAALLAAgABDVCiIAQuH10fiDgIDAPzcCPCAAQr2U3PYDNwI0IABBwIETNgIAIAALLQAgABCTFCIAQgA3AhggAEGM2xQ2AgAgAEEgakIANwIAIABBKGpCADcCACAAC0cAIABBADYCHCAAQoCAgIBwNwIUIABBADYCDCAAQv////8PNwIEIABB8LcTNgIAIABBIGpB540SEJ4GGiAAQbi4EzYCACAAC3oAIABCADcCCCAAQX82AgQgAEEBNgI8IABCgYCAgHA3AjQgAEIANwIsIABC/////w83AiQgAEIANwJIIABCgICAgBA3AkAgAEGE4BQ2AgAgAEEQakIANwIAIABBGGpCADcCACAAQSBqQQA2AgAgAEHQAGpCADcCACAACxkAIAAQkRQiAEHk7xM2AgAgAEEAOgA4IAALMQAgAEIANwIcIABCgICAgHA3AhQgAEEANgIMIABC/////w83AgQgAEHgthM2AgAgAAsxACAAQgA3AhwgAEKAgICAcDcCFCAAQQA2AgwgAEL/////DzcCBCAAQZi2EzYCACAAC0UAIAAQixMiAEEAOwEwIABCfzcCKCAAQoCAgPwDNwIgIABCvICAgMAHNwIYIABBADYCPCAAQgA3AjQgAEGAxBM2AgAgAAsSACAAEJIUIgBBtN4UNgIAIAALJAAgABCiKyIAQgA3AkQgAEHw8xM2AgAgAEHMAGpCADcCACAAC0EAIABCgICA/IOAgMA/NwIQIABBATYCDCAAQv////8PNwIEIABB2OcSNgIAIABBGGpDAACAP0MAAAA/ELsYGiAACxkAIAAQkRQiAEGw8RM2AgAgAEEANgI4IAALLgAgAEGklRU2AgAgAEL/////DzcCBCAAQQxqQeeNEhCeBhogAEHclRU2AgAgAAsZACAAEJAUIgBBlPITNgIAIABBADYCTCAACx0AIAAQlxMiAEGchBM2AgAgAEL/////DzcCWCAACxkAIAAQkhQiAEGQ0xQ2AgAgAEEAOgAYIAALXQAgABDQCiIAQgA3AlQgAEEANgJMIABCADcCRCAAQYCAgPwDNgJkIABBADYCcCAAQgA3AmggAEGUrhM2AlAgAEGArhM2AkAgAEGQrRM2AgAgAEHcAGpCADcCACAACz8AIAAQ1QoiAEIANwI8IABBfzYCNCAAQoCAgPwDNwJMIABBtOUUNgI4IABByOQUNgIAIABBxABqQgA3AgAgAAtdACAAENAKIgBCADcCUCAAQQA6AEQgAEEANgJAIABBgICA/AM2AmAgAEEANgJsIABCADcCZCAAQcSGEzYCTCAAQbCGEzYCSCAAQcSFEzYCACAAQdgAakIANwIAIAALcgAgABDQCiIAQgA3AkAgAEEANgJkIABCgICA/AM3AlwgAEGAgID8AzYCUCAAQgA3AmggAEHIhBQ2AlQgAEHUgxQ2AgAgAEHIAGpCADcCACAAQfAAakIANwIAIABB+ABqQgA3AgAgAEGAAWpCADcCACAACxsAIAAQpxMiAEG8gxQ2AlQgAEHIghQ2AgAgAAsSACAAEMwYIgBBoOgSNgIAIAALNAAgABCUFCIAQQE6AHAgAEEANgJsIABCgICA/AM3AmQgAEGI4hQ2AkggAEHw4BQ2AgAgAAs3ACAAENUKIgBBADYCSCAAQoCAgPwDNwJAIABB9OjRezYCNCAAQZjNFDYCOCAAQbzMFDYCACAACx0AIAAQ1QoiAEG4rBM2AgAgAEL/////DzcCNCAAC4EBACAAENAKIgBCADcCSCAAQoCAgICAgICgwQA3AkAgAEEAOgB4IABBAToAVCAAQfCGEzYCACAAQgA3AlggAEEBOgCEASAAQQI2AoABIABBAToAfCAAQdAAakEAOgAAIABB4ABqQgA3AgAgAEHoAGpCADcCACAAQfAAakEANgIAIAALSQAgABDVCiIAQgA3AjQgAEIANwJIIABBgICA/AM2AlggAEHwshU2AkQgAEGEshU2AgAgAEE8akIANwIAIABB0ABqQgA3AgAgAAsiACAAEJQUIgBBnKETNgJIIABBkKATNgIAIABBADYCZCAACxkAIAAQlRQiAEHs2BM2AgAgAEIANwJMIAAL+gIAIAAQmgoiAEEANgLgASAAQgA3AtgBIABBADoA1AEgAEG0yRQ2AtABIABBoMkUNgJoIABB2MYUNgIAIABB5AFqENUKQZDKFDYCACAAQQA6AMACIABBAToAnAIgAEIANwKgAiAAQagCakIANwIAIABBsAJqQgA3AgAgAEG4AmpBADYCACAAQQA6APACIABBAToAzAIgAEECNgLIAiAAQQE6AMQCIABCADcC0AIgAEHYAmpCADcCACAAQeACakIANwIAIABB6AJqQQA2AgAgAEEAOgCgAyAAQQE6APwCIABBAjYC+AIgAEEAOgD0AiAAIAA2ApgCIABBmANqQQA2AgAgAEGQA2pCADcCACAAQYgDakIANwIAIABCADcCgAMgAEECNgKoAyAAQQA6AKwDIABBAToApAMgAEIANwKwAyAAQbgDakIANwIAIABBwANqQgA3AgAgAEEANgLUAyAAQQA6ANADIABByANqQoCAgICAgIDAv383AgAgAAsZACAAEJYUIgBBmKwVNgIAIABBADYCTCAACyAAIAAQlxQiAEEANgJoIABCADcCYCAAQdiHEzYCACAAC1IAIAAQ0AoiAEEANgJUIABCADcCTCAAQQA2AkQgAEIANwJcIABBAToAWCAAQdDYEzYCSCAAQbzYEzYCQCAAQdDXEzYCACAAQeQAakIANwIAIAALLQAgABCYFCIAQdz8EzYC9AEgAEHI/BM2AmggAEHA+hM2AgAgAEEANgL4ASAACxIAIAAQsBMiAEGk7xI2AgAgAAuAAQEEfyAAENgYIgBCADcChAIgAEEBOgCAAiAAQaiHFDYCaCAAQfyEFDYCACAAQYwCakIANwIAIABBlAJqELITIQEgAEHkAmoQshMhAiAAQbQDahCyEyEDIABBhARqELITIQQgACABENkYIAAgAhDZGCAAIAMQ2RggACAEENkYIAALGQAgABCXFCIAQdCIEzYCACAAQgA3AmAgAAtTAQN/IAAQ2BgiAEHYpxU2AmggAEHApRU2AgAgAEGAAmoQshMhASAAQdACahCy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FTcCACAAQegAakEAKQOwnxU3AgAgAEH4AGpCADcCACAAC20AIAAQ1QoiAEIANwJIIABCgICAgICAgMA/NwJAIABCgICA/AM3AjggAEF/NgI0IABB4OUUNgIAIABBADYCaCAAQQApA6CfFTcCUCAAQdgAakEAKQOonxU3AgAgAEHgAGpBACkDsJ8VNwIAIAALKAAgABDhEyIAQv+BgIAQNwJMIABC/4GAgBA3AkQgAEH89BI2AgAgAAtkACAAENAKIgBBADYCXCAAQYCAgPwDNgJIIABCgICAgICAgMA/NwJAIABCADcCTCAAQX82AmggAEKAgID8AzcCYCAAQbiEFTYCACAAQdEAakIANwAAIABB7ABqQQBBMBBIGiAAC5sBACAAEJkUIgBCgICA/AM3AkggAEKAgICAgICAwD83AkAgAEGAAjsBPCAAQv////8PNwI0IABBADoAbCAAQYDrFDYCACAAQgA3AlAgAEEAOgCMASAAQgA3AnAgAEIANwKQASAAQdgAakIANwIAIABB4ABqQgA3AgAgAEH4AGpCADcCACAAQYABakIANwIAIABBmAFqQgA3AgAgAAslACAAEJoUIgBByPQUNgLQASAAQbT0FDYCaCAAQfzxFDYCACAACyUAIAAQmhQiAEH0/RQ2AtABIABB4P0UNgJoIABBqPsUNgIAIAALHQAgABDVCiIAQZCGFTYCACAAQoCAgIAQNwI0IAALGQAgABCZFCIAQZCMFTYCACAAQgA3AjQgAAtPACAAENAKIgBCgICA/IOAgMA/NwJcIABCADcCVCAAQoCAgPwDNwJMIABCADcCRCAAQQA2AkAgAEHAgxU2AgAgAEHkAGpBAEHYABBIGiAAC0oAIAAQ0AoiAEEANgJUIABCgICAgHA3AkggAEKAgICKhICAwL9/NwJAIABBwIkVNgJQIABB1IgVNgIAIABB2ABqQQBBPBBIGiAAC7UBACAAEO4TIgBBADYCpAEgAEIANwKcASAAQQA6AJgBIABCADcCqAEgAEGEiBU2ApQBIABB6IcVNgJQIABB6IYVNgIAIABBADoA7AEgAEEBOgDIASAAQgA3AsABIABCgICA/AM3ArgBIABCADcCzAEgAEEBOgDwASAAQQI2AvQBIABBADoA+AEgAEGwAWpCADcCACAAQdQBakIANwIAIABB3AFqQgA3AgAgAEHkAWpBADYCACAACyUAIAAQmhQiAEGM+BQ2AtABIABB+PcUNgJoIABBwPUUNgIAIAALnQYAIAAQmgoiAEGY7hQ2AmggAEHs6xQ2AgAgAEHQAWpB540SEJ4GGiAAQQE6AOABIABBgICAhQQ2AtwBIABB8PEUNgLsASAAQbjxFDYC6AEgAEGk8RQ2AuQBIABBkPEUNgJoIABBrO4UNgIAIABB8AFqQQBBJRBIGiAAQgA3AqwCIABBgICA/gc2AqgCIABCADcCoAIgAEKAgID+h4CA4P8ANwKYAiAAQbQCakIANwIAIABBvAJqQQA2AgAgAEIANwLIAiAAQoCAgIyEgIDAv383AsACIABBzwJqQgA3AAAgAEEAOgD8AiAAQQE6ANgCIABCADcC3AIgAEHkAmpCADcCACAAQewCakIANwIAIABB9AJqQQA2AgAgAEEBOgCAAyAAQQI2AoQDIABBAToAiAMgAEEAOgCsAyAAQaQDakEANgIAIABBnANqQgA3AgAgAEGUA2pCADcCACAAQgA3AowDIABBAjYCtAMgAEEAOgDcAyAAQQE6ALgDIABBAToAsAMgAEIANwK8AyAAQcQDakIANwIAIABBzANqQgA3AgAgAEHUA2pBADYCACAAQQI2AuQDIABBADoAjAQgAEEBOgDoAyAAQQE6AOADIABCADcC7AMgAEH0A2pCADcCACAAQfwDakIANwIAIABBhARqQQA2AgAgAEECNgKUBCAAQQE6AJAEIABCADcCmAQgAEGgBGpCADcCACAAQagEakIANwIAIABCADcCuAQgAEGwBGpCgICAgICAgMA/NwIAIABBwARqQgA3AgAgAEIANwLMBCAAQYCAgPwDNgLIBCAAQdQEakIANwIAIABBgICA/AM2AtwEIABB4ARqQQBB4AAQSBogAEHABWoQmxQaIABCADcC4AYgAEIANwLEBiAAQckGakIANwAAIABCADcC1AYgAEHcBmpBADoAACAAQgA3AvQGIABBADoA8AYgAEKAgICAgICAwL9/NwLoBiAAQfwGakIANwIAIABBhAdqQgA3AgAgAEIANwKQByAAQYCAgIUENgKMByAAQZgHakIANwIAIABBtAVqQfCEFBDoECAACxkAIAAQ1QoiAEG4hRU2AgAgAEIANwI0IAALJQAgABCaFCIAQYD7FDYC0AEgAEHs+hQ2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IAALAwAACwQAQQALEgAgABDVCiIAQbSmFDYCACAACx0AIAAQmxciAEGApBU2AgAgAEL/////DzcCOCAACxkAIAAQiRQiAEGUoxU2AgAgAEIANwJAIAALMgAgABCOFCIAQQA6AGogAEEBOwFoIABBADYCZCAAQoCAgPwDNwJcIABB5KAVNgIAIAALMgEBfiAAENUKIgBBjMEUNgIAIABBfzYCNBCsFyEBIABBADoAQCAAIAFC6Ad/NwM4IAALIgAgABCbFyIAQdzAFDYCPCAAQfC/FDYCACAAQQE2AjggAAtBACAAEIoUIgBCADcCUCAAQoCAgICAgIDAPzcCSCAAQQA6AFsgAEEBOwBZIABBiKIVNgIAIABB2ABqQQA6AAAgAAsgACAAENUKIgBBADoAOCAAQQA2AjQgAEGU/hI2AgAgAAsdACAAEKIrIgBByPATNgIAIABCgICA/AM3AkQgAAsZACAAENUKIgBBlPYTNgIAIABBfzYCNCAACxIAIAAQkxQiAEHo3hQ2AgAgAAsuACAAQdDfFDYCACAAQv////8PNwIEIABBDGpB540SEJ4GGiAAQZzfFDYCACAAC0YAIAAQ0AoiAEEANgJUIABCADcCTCAAQf8ANgJEIABBAToAQCAAQQA2AmAgAEIANwJYIABBpOMUNgJIIABBnOIUNgIAIAALIAAgABDQCiIAQQA2AkggAEHMsxU2AgAgAEIANwJAIAALEgAgABCVFCIAQYCtFTYCACAACxkAIAAQlhQiAEEAOwFMIABBzMkTNgIAIAALIwAgABDUFSIAQfT+EzYCaCAAQfD8EzYCACAAQQA6APABIAALEgAgABDVCiIAQeyMFTYCACAACz0AIAAQmgoiAEEANgLgASAAQgA3AtgBIABBADoA1AEgAEHkgBU2AtABIABB0IAVNgJoIABBnP4UNgIAIAALKQAgAEEAQSgQSCIAQShqQQAQnBQaIABB/ABqQgA3AgAgAEIANwJ0IAALUwAgAEEANgIAIABBEGogARC/FBogAEEYaiABEMAUGiAAQSBqIAEQwRQaIABBKGogAUEBahDBFBogAEEwaiABEMIUGiAAQgA3AkQgAEIANwI4IAALMAAgABDzDyIAQYDGFDYCACAAQcQAakHnjRIQngYaIABBADoAUCAAQajFFDYCACAACwoAIAAQwwoQpAELBQBB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CiAAQQxqIANBBGoQwAogA0EEahCCBhoLIANBEGokACABQYoBRgsCAAsCAAsKACAAEO0VEKQBCwQAQTYLBwAgAUE2RgsEAEE3CwwAIAFB/v8DcUE2RgsKACAAEO0VEKQBCwoAIAAQxgoQpAELBQBB2gQLLwEBf0EBIQICQAJAAkAgAUGjfGoOBAIBAQIACyABQad7akECSQ0BC0EAIQILIAILHQACQCABQY0FRw0AIAAgAhCiCjYCDAsgAUGNBUYLAgALAgALGQAgAEGklRU2AgAgAEEMahCCBhogABDGCgsKACAAEIEWEKQBCwUAQeYDCx0AIAFBo3xqIgFB//8DcUEKSUGJBCABQf8HcXZxC0UBAX8jAEEQayIDJAACQCABQY4FRw0AIANBBGogAhC/CiAAQQxqIANBBGoQwAogA0EEahCCBhoLIANBEGokACABQY4FRgsCAAsKACAAEMYKEKQBCwUAQfYECzQBAX9BASECAkACQAJAIAFBo3xqDgQCAQECAAsgAUHZBEYNASABQfYERg0BC0EAIQILIAILCgAgABDGChCkAQsFAEGrAQsOACABQasBRiABQR1GcgsdAAJAIAFBwwBHDQAgACACEKIKNgIMCyABQcMARgsCAAsKACAAEMYKEKQBCwUAQeUDCzQBAX9BASECAkACQAJAIAFBo3xqDgQCAQECAAsgAUHlA0YNASABQdkERg0BC0EAIQILIAILCgAgABDDChCkAQsFAEH5AAsOACABQfkARiABQQpGcgsjAAJAIAFB7QFHDQAgACACEKIKNgI0QQEPCyAAIAEgAhC+Cgu5AgEGfyAAIAEQ6A4aAkACQAJAIAAoAiAiAkUNACACQd8AIAIoAgAoAgwRAgBFDQACQAJAIAIoAkwiASACKAJQIgNPDQAgASAANgIAIAFBBGohAQwBCyABIAIoAkgiBGtBAnUiBUEBaiIGQYCAgIAETw0CAkACQCADIARrIgNBAXUiByAGIAcgBksbQf////8DIANB/P///wdJGyIDDQBBACEGDAELIANBgICAgARPDQQgA0ECdBCmASEGCyAGIAVBAnRqIgUgADYCACAFIQACQANAIAEgBEYNASAAQXxqIgAgAUF8aiIBKAIANgIADAALAAsgAiAFQQRqIgE2AkwgAigCSCEEIAIgADYCSCACIAYgA0ECdGo2AlAg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NwIEIAEgACgCDDYCDCABCykBAX9BEBCmASIBQfTwEjYCACABQv////8PNwIEIAEgACgCDDYCDCABCykBAX9BEBCmASIBQajxEjYCACABQv////8PNwIEIAEgACgCDDYCDCABCywBAX9BEBCmASIBQX82AgQgAUIANwMIIAFB3PESNgIAIAEgAC0ADDoADCABCxgBAX9BFBCmARDNEyIBIAAoAgw2AgwgAQsdAQF/QZQBEKYBQQBBlAEQSBDREyIBIAAQqxkgAQsVACAAIAEoAogBNgKIASAAIAEQuBELKQEBf0EQEKYBIgFBxPISNgIAIAFC/////w83AgQgASAAKAIMNgIMIAELOAEBf0EYEKYBIgFCADcDACABQRBqQgA3AwAgAUEIakIANwMAIAEQ3xMiAUEMaiAAQQxqEOgFIAELCgAgABDoFBCkAQspAQF/QRAQpgEiAUHk1xQ2AgAgAUL/////DzcCBCABIAAqAgw4AgwgAQspAQF/QRAQpgEiAUHg8xI2AgAgAUL/////DzcCBCABIAAoAgw2AgwgAQspAQF/QRAQpgEiAUGU9BI2AgAgAUL/////DzcCBCABIAAoAgw2AgwgAQswAQF/QRQQpgEiAUEANgIQIAFByPQSNgIAIAFC/////w83AgQgASAAKAIMNgIMIAELRQEBf0HkABCmAUEAQeQAEEgQ5hMiASAAKAJENgJEIAEgACgCSDYCSCABIAAoAkw2AkwgASAAKAJQNgJQIAEgABC0GSABCx0AIAAgASgCNDYCNCAAIAEoAjg2AjggACABEN8LCy8BAX9BPBCmAUEAQTwQSBD3EyIBIAAoAjQ2AjQgASAAKAI4NgI4IAEgABDfCyABCwcAIAAQpAELBABBAAsHACAAEKQBCwcAIAAQpAELBwAgABCkAQvABwENfyMAQRBrIgEkACAAKAIEIQJBACEDIAFBADYCDCABQgA3AgQgAkGkAWohBCACQbwBaiEFIAIoApwBIQYgAigCmAEhByACQcABaiEIAkADQAJAIAcgBkcNACABKAIEIQkgASgCCCEAA0AgACAJRg0DIABBfGoiACgCACEHIAEgADYCCCAHQaAEIAcoAgAoAgwRAgANACAEIAcQvBkMAAsACwJAAkACQCAHKAIAIgBBnwQgACgCACgCDBECAA0AIAcoAgAiAEGhBCAAKAIA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AQF/AkAgAUGAgICAAkkNABCsAQALIAAgARDoDSICNgIEIAAgAjYCACAAIAIgAUEDdGo2AggLSAEEfSADKgIAIQUgAioCACEGIAQqAgAhByADKgIEIQggACACKgIEIAQqAgQQlQEgCBCMATgCBCAAIAYgBxCVASAFEIwBOAIACwoAIAAQwwoQpAELBQBBjAQLIwEBf0EBIQICQCABQfV7akECSQ0AIAFBCkYNAEEAIQILIAILDwAgACAAKAIAKAJQEQAACwcAIAAtAEALFgAgACAAKAIAKAJsEQEAIAAgAToAVAsQACAAQgA3AkQgAEEAOgBACwIACwcAQwAAAAALBwBDAAAAAAsEAEEACwQAQQALHQEBf0HgABCmAUEAQeAAEEgQ7xIiASAAEIQaIAELEwAgACABKAI0NgI0IAAgARDfCwsJACAAQgA3AgALCQAgAEIANwIACwkAIABBAToAQAvRBAEKfyMAQSBrIgIkACAAQQA2AgggAEIANwIAIAJBFGogASABKAIAKAJYEQMAIAIoAhghAyACKAIUIQRBACEFAkADQAJAIAQgA0cNAAJAIAIoAhQiBUUNACACIAU2AhggBRCkAQsgAkEgaiQADwsgBCgCACEGQcAAEKYBQQBBwAAQSBCPEyIHQQcQ3g9BOBCmASAHEIkaIgdBADoANCAHIAY2AjAgByABNgIsIAdBpPsSNgIAAkACQCAGKAIEIghFDQAgCEEKIAgoAgAoAgwRAgBFDQBBCBCmASIJIAYgBigCACgCCBEAADoABCAJIAg2AgBBEBCmASEIIAJBADYCECACQgA3AgggAkEIakEBEIoaIAIoAgwiBiAJNgIAIAIgBkEEajYCDCAIIAc2AgAgCEEEaiACQQhqEIsaGiACQQhqEIwaGgJAAkAgBSAAKAIIIgdPDQAgBSAINgIAIAVBBGohBQwBCyAFIAAoAgAiBmtBAnUiCkEBaiIJQYCAgIAETw0CAkACQCAHIAZrIgdBAXUiCyAJIAsgCUsbQf////8DIAdB/P///wdJGyIJDQBBACELDAELIAlBgICAgARPDQUgCUECdBCmASELCyALIApBAnRqIgogCDYCACAKIQcCQANAIAUgBkYNASAHQXxqIgcgBUF8aiIFKAIANgIADAALAAsgACAKQQRqIgU2AgQgACgCACEGIAAgBzYCACAAIAsg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IAoQ1RoaIAdBBGohBwwACwALAkADQCAHIAtGDQEgAkEEaiAHKAIAKAIQIghB0JEeIAgbEP8aIAdBBGohBwwACwALIAJBBGoQgBsaIAAtACRBAnFFIQcLIANBADYCICADQgA3AhggA0GAgRM2AgAgBw0BIANBIGohCSACQQA2AgwgAkIANwIEIAAoAjghCyAAKAI0IQcDQAJAIAcgC0cNACACKAIEIAIoAgggAUEBEIEbIQcgAkEANgJcIAkgBxCCGyACQdwAahCDGxogAkEEahCAGxoMAwsgAkEEaiAHKAIAKAIQIghB0JEeIAgbEP8aIAdBBGohBwwACwALEKwBAAsgAkHwAGokACADC2cAIAAgAzYCEEEAIQMgAEEANgIMAkACQCABRQ0AIAFBr/SiF08NASABQdgAbBCmASEDCyAAIAM2AgAgACADIAJB2ABsaiICNgIIIAAgAyABQdgAbGo2AgwgACACNgIEIAAPCxCoBwALkgEBA38gASgCBCECIAAoAgAhAyAAKAIEIQQCQANAIAQgA0YNASACQah/aiAEQah/aiIEEP4aIQIMAAsACyABIAI2AgQgACgCACEEIAAgAjYCACABIAQ2AgQgACgCBCEEIAAgASgCCDYCBCABIAQ2AgggACgCCCEEIAAgASgCDDYCCCABIAQ2AgwgASABKAIENgIAC0kBAn8gACgCBCEBAkADQCAAKAIIIgIgAUYNASAAIAJBqH9qNgIIIAJBrH9qENUaGgwACwALAkAgACgCACICRQ0AIAIQpAELIAALMQACQCAAKgIgQwAAAABgRQ0AIAAoAiizQwAAAAAgAC0AMBsgACgCGLOVDwsgABCRGwsmACAAIAEoAgA2AgAgAEEEaiABQQRqEJMbGiAAIAEqAlQ4AlQgAAuPAgEGfwJAAkACQAJAIAAoAgQiAiAAKAIIIgNPDQAgAiABNgIAIAJBBGohAgwBCyACIAAoAgAiBGtBAnUiBUEBaiIGQYCAgIAETw0BAkACQCADIARrIgNBAXUiByAGIAcgBksbQf////8DIANB/P///wdJGyIDDQBBACEGDAELIANBgICAgARPDQMgA0ECdBCmASEGCyAGIAVBAnRqIgUgATYCACAFIQECQANAIAIgBEYNASABQXxqIgEgAkF8aiICKAIANgIADAALAAsgACAFQQRqIgI2AgQg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IAsgAkEEahCyG0HYAGohCwwBCyALIAUoAgAiDWtB2ABtIg5BAWoiC0Gv9KIXTw0EIAJB3ABqIAwgDWtB2ABtIgxBAXQiDSALIA0gC0sbQa70ohcgDEGXutELSRsgDiAEEK8bIQwgAigCZCACQQRqELIbGiACIAIoAmRB2ABqNgJkIAUgDBCwGyADKAIMIQsgDBCxGxoLIAMgCzYCDCAKENUaGiAHQQRqIQcMAAsACwJAA0AgByALRg0BIAJBBGogBygCACgCECIIQdCRHiAIGxD/GiAHQQRqIQcMAAsACyACQQRqEIAbGgsgA0GkgxM2AgAgAkHwAGokACADDwsQrAEAC2cAIAAgAzYCEEEAIQMgAEEANgIMAkACQCABRQ0AIAFBr/SiF08NASABQdgAbBCmASEDCyAAIAM2AgAgACADIAJB2ABsaiICNgIIIAAgAyABQdgAbGo2AgwgACACNgIEIAAPCxCoBwALkgEBA38gASgCBCECIAAoAgAhAyAAKAIEIQQCQANAIAQgA0YNASACQah/aiAEQah/aiIEELIbIQIMAAsACyABIAI2AgQgACgCACEEIAAgAjYCACABIAQ2AgQgACgCBCEEIAAgASgCCDYCBCABIAQ2AgggACgCCCEEIAAgASgCDDYCCCABIAQ2AgwgASABKAIENgIAC0kBAn8gACgCBCEBAkADQCAAKAIIIgIgAUYNASAAIAJBqH9qNgIIIAJBrH9qENUaGgwACwALAkAgACgCACICRQ0AIAIQpAELIAALJgAgACABKAIANgIAIABBBGogAUEEahCTGxogACABKgJUOAJUIAALCgAgABDwGhCkAQsFAEHJAAseACABQURqIgFB//8DcUEOSUHB4AAgAUH//wBxdnELMgEBf0HAABCmASIBQX82AgQgAUEIakEAQTgQSBogAUHsghM2AgAgASAAKAIkNgIkIAELVAECfyAAQcSDEzYCAAJAIAAoAggiAUUNACAAKAIMIQICQANAIAIgAUYNASACQax/ahDVGhogAkGof2ohAgwACwALIAAgATYCDCAAKAIIEKQBCyAACwoAIAAQtxsQpAEL7gEBBH8gACABIAIQuhsgACgCDCEDIAAoAgghACACQZgCaiEEIAJBlAJqIQUCQANAIAAgA0YNAQJAAkACQAJAAkAgACgCACIGKAIcQX9qDgIA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KAJAEQAARQ0BCyABQQRqIQEMAQsLIAIgBUHUAmpB+MAdEOsbIAAgAjYCqAELIARBBGohBAwACwALCwIACwIACxEAIAAoAihBgIACQQAQzQkaCwQAIAALBwAgABCkAQseAQF/QQgQpgEiAUHoiRM2AgAgASAAKAIENgIEIAELFQAgAUHoiRM2AgAgASAAKAIENgIECwIACwcAIAAQpAELwQIBBn8gACgCBCECAkACQAJAIAEoAgAiAUEDIAEoAgAoAgwRAgBFDQAgASABLQDUAUEMcjoA1AECQAJAIAIoAkQiACACKAJIIgNPDQAgACABNgIAIABBBGohAAwBCyAAIAIoAkAiBGtBAnUiBUEBaiIGQYCAgIAETw0CAkACQCADIARrIgNBAXUiByAGIAcgBksbQf////8DIANB/P///wdJGyIDDQBBACEGDAELIANBgICAgARPDQQgA0ECdBCmASEGCyAGIAVBAnRqIgUgATYCACAFIQECQANAIAAgBEYNASABQXxqIgEgAEF8aiIAKAIANgIADAALAAsgAiAFQQRqIgA2AkQgAigCQCEEIAIgATYCQCACIAYgA0ECdGo2AkggBEUNACAEEKQBCyACIAA2AkQLQQEPCxCsAQALEKgHAAsHACAAEKQBCx4BAX9BCBCmASIBQcSJEzYCACABIAAoAgQ2AgQgAQsVACABQcSJEzYCACABIAAoAgQ2AgQLAgALBwAgABCkAQtwAQJ/IwBBEGsiAiQAIAAoAgQhAwJAIAEoAgAiAEENIAAoAgAoAgwRAgBFDQAgAiADNgIMAkAgACgCvAEiAQ0AQQwQpgEiAUEANgIIIAFCADcCACAAIAE2ArwBCyABIAJBDGoQiAsLIAJBEGokAEEBCwQAIAALBwAgABCkAQsEAEEBCwcAIAAQpAELBABBAAsEAEEBCzsBAX9BrAEQpgFBAEGsARBIELwTIgEgACgCNDYCNCABIAAoAjg2AjggASAALQA8OgA8IAEgABDfCyABCz8AIAAgARDoDhoCQCABIAAoAkAgASgCACgCCBECACIBRQ0AIAFBMCABKAIAKAIMEQIARQ0AIAAgATYCRAtBAAsEAEEAC1IBAn9BACEBAkAgACgCKCICIAAoAkAgAigCACgCpAMRAgAiAkUNACACQQAgAkEwIAIoAgAoAgwRAgAbIQELIAAgATYC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IAELNgEBfyAAQdCREzYCAAJAIAAtABRBAUcNACAAKAIQIgFFDQAgASABKAIAKAIEEQEACyAAEMYKCwoAIAAQhx0QpAELBQBB8gMLCAAgAUHyA0YLHQACQCABQacFRw0AIAAgAhCiCjYCDAsgAUGnBUYLWgEBf0EYEKYBIgFC/////w83AgQgAUIANwMQIAFB0JETNgIAIAEgACgCDDYCDAJAIAAoAhAiAEUNACAAIAAoAgAoAhQRAAAhACABQQE6ABQgASAANgIQCyABC1cBAn9BASECAkAgASgCACABKAIEEPkIIgNFDQAgA0HYAGogABDdDiABKAIAIAEoAgRB8wMQ2AoiAUUNACABKAIMIgFFDQAgASgCBCAAEI4dQQAhAgsgAgsNACAAQYgBaiABEN0OCwIAC2oBBH8gAEG0kRM2AhggAEHckBM2AgAgAEGIAWohASAAKAKMASECIAAoAogBIQMCQANAIAMgAkYNAQJAIAMoAgAiBEUNACAEIAQoAgAoAgQRAQALIANBBGohAwwACwALIAEQwA4aIAAQlRELCgAgABCQHRCkAQsFAEHzAwsPACABQfMDRiABQegDRnILVgEDfyAAEJUdIQEgACgCjAEhAiAAKAKIASEAAkADQCAAIAJGDQECQCAAKAIAIgMoAhBFDQAgASADIAMoAgAoAhQRAAAQjh0LIABBBGohAAwACwALIAELHQEBf0GUARCmAUEAQZQBEEgQ1hMiASAAELgRIAELUAECfyAAKAKMASEDIAAoAogBIQACQANAIAAgA0YNAQJAIAAoAgAoAhAiBEUNACAEIAEgAiAEKAIAKAIsEQQAIQELIABBBGohAAwACwALIAELTQEDfyAAKAKMASEDA0AgACgCiAEhBAJAA0AgAyAERg0BIANBfGoiAygCACgCECIFRQ0ACyAFIAEgAiAFKAIAKAIwEQQAIQEMAQsLIAELfwEDf0EAIQECQCAAKAKMASICIAAoAogBIgNGDQAgAiADa0ECdSECA0AgAkEBSA0BIAAoAogBIAJBf2oiAkECdGooAgAoAhAiAyADKAIAKAI0EQAAQeMARg0ACyAAKAKIASACQQJ0aigCACgCECICIAIoAgAoAjQRAAAhAQsgAQteAQJ/IAAgAjYChAEgAEEYaiABEPwJIAAoAowBIQMgACgCiAEhAAJAA0AgACADRg0BAkAgACgCACgCECIERQ0AIAQgASACIAQoAgAoAjgRBQALIABBBGohAAwACwALC0gBAn8gACgCjAEhASAAKAKIASEAAkADQCAAIAFGDQECQCAAKAIAKAIQIgJFDQAgAiACKAIAKAI8EQEACyAAQQRqIQAMAAsACwtIAQJ/IAAoAowBIQEgACgCiAEhAAJAA0AgACABRg0BAkAgACgCACgCECICRQ0AIAIgAigCACgCQBEBAAsgAEEEaiEADAALAAsLWAEDfyAAKAKMASECIAAoAogBIQBBACEDAkADQCAAIAJGDQECQCAAKAIAKAIQIgRFDQAgBCABIAQoAgAoAkQRGgAgA3IhAwsgAEEEaiEADAALAAsgA0EBcQtIAQJ/IAAoAowBIQEgACgCiAEhAAJAA0AgACABRg0BAkAgACgCACgCECICRQ0AIAIgAigCACgCTBEBAAsgAEEEaiEADAALAAsLygEBBH8jAEEQayICJAACQCAAIAEQ5wUiAxCfHUF/Rg0AQQAhBCADKAIAIAMgAywACyIBQQBIIgUbIgAgAygCBCABIAUbaiEBAkADQCABIABGDQEgAUF/aiIBLQAAQTBGDQALIAEgAGtBAWohBAsgAyACQQRqIANBACAEEMkLIgEQwAogARCCBhogAxCfHSIAIAMoAgQgAywACyIBIAFBAEgbQX9qRw0AIAMgAkEEaiADQQAgABDJCyIBEMAKIAEQggYaCyACQRBqJAALFwAgABCYUiAAKAIEIAAtAAsQ/VEQ0FkLkgEBAX8jAEEwayIDJAACQAJAIAFBASABKAIAKAIIEQIARQ0AIANBJGogA0EYaiABQQRqEOcFIgEQnh0gARCCBhogAEGMAWogA0EMaiADQSRqEOcFIgEQ6AUgARCCBhogA0EkahCCBhoMAQsgAEGMAWogA0HnjRIQngYiARDoBSABEIIGGgsgA0EwaiQAIABBiAFqCyMAIABB3JITNgIYIABBhJITNgIAIABBiAFqEJ8QGiAAEJURCwoAIAAQoR0QpAELBQBBkwQLDwAgAUGTBEYgAUHoA0ZyCwQAQQELHQEBf0GYARCmAUEAQZgBEEgQ1xMiASAAELgRIAELTQEBfUMAAAAAIQMCQCABQQIgASgCACgCCBECAEUNACABKgIEQwAAIEEgACgCiAGzEMwZIgOUELMPIAOVIQMLIAAgAzgCkAEgAEGMAWoLBwAgABCVEQsKACAAEJUREKQBCwUAQekDCw0AIAFB/v8DcUHoA0YLJAACQCABQZ0FRw0AIAAgAhCiCjYCiAFBAQ8LIAAgASACEJoRCwQAQQILAgALKQEBf0GUARCmAUEAQZQBEEgQ2BMiASAAKAKIATYCiAEgASAAELgRIAEL4AIBB38jAEHAAGsiAyQAAkACQCABQQEgASgCACgCCBECAEUNAAJAIANBNGogAUEEahDnBSIEKAIEIAQsAAsiASABQQBIGyIBIAAoAogBTw0AIABBjAFqIgVB540SENURRQ0AIANBKGogBRDnBSIGKAIEIQcgBiwACyEFIAQgACgCiAEQsR0gA0EcakHnjRIQngYiCCAAKAKIASABayIJELEdIAkgByAFIAVBAEgbIgUgCSAFSRshBQJAA0AgASAAKAKIAU8NASAIIAYgBRCyHRogASAFaiEBDAALAAsCQAJAIAAoApgBQQFHDQAgBCAIIAkQsh0aDAELIAQgCCAJELMdGgsgCBCCBhogBhCCBhoLIABBoAFqIANBEGogBBDnBSIBEOgFIAEQggYaIAQQggYaDAELIABBoAFqIANBBGpB540SEJ4GIgEQ6AUgARCCBhoLIANBwABqJAAgAEGcAWoLcQEBfyMAQRBrIgIkACACIAE2AgwCQCABQfj///8HTw0AAkAgABD8USABTw0AIAIgACgCBCAALQALEP1RNgIIIAJBDGogAkEIahCFUigCABDsUSIBIAAQ/FFGDQAgACABEM9ZCyACQRBqJAAPCxDyUQALUwEBfyMAQRBrIgMkACADIAI2AgwgASgCBCABLQALEP1RIQIgARCYUiEBIAMgAjYCCCAAIAEgA0EMaiADQQhqEI5SKAIAEL0eIQEgA0EQaiQAIAELVQEBfyMAQRBrIgMkACADIAI2AgwgASgCBCABLQALEP1RIQIgARCYUiEBIAMgAjYCCCAAQQAgASADQQxqIANBCGoQjlIoAgAQzVkhASADQRBqJAAgAQsLACAAKAKEARCjEQsLACAAKAKEARCjEQsLACAAKAKEARCjEQsjACAAQdSVEzYCGCAAQfCUEzYCACAAQZwBahCfEBogABC4HQsjACAAQdSUEzYCGCAAQfCTEzYCACAAQYwBahCCBhogABCVEQsKACAAELcdEKQBCwUAQZIECw8AIAFBkgRGIAFB6ANGcguFAQEBfyMAQRBrIgMkAAJAAkACQAJAAkAgAUGZemoOAwABAgMLIAAgAhCiCjYCiAFBASEBDAMLIANBBGogAhC/CiAAQYwBaiADQQRqEMAKIANBBGoQggYaQQEhAQwCCyAAIAIQogo2ApgBQQEhAQwBCyAAIAEgAhCaESEBCyADQRBqJAAgAQsEAEEBC0QBAX9BrAEQpgFBAEGsARBIENkTIgEgACgCiAE2AogBIAFBjAFqIABBjAFqEOgFIAEgACgCmAE2ApgBIAEgABC4ESABCwoAIAAQuB0QpAELAgALAgALAgALNQEBf0EAIQMCQCABQQkgASgCACgCCBECAEUNACABKAIEQQFqIQMLIAAgAzYCjAEgAEGIAWoLBwAgABCVEQsKACAAEJUREKQBCwUAQfgDCw4AIAFBmHxqQe//A3FFCwQAQQcLHQEBf0GQARCmAUEAQZABEEgQ2hMiASAAELgRIAELrQEBAn8jAEEwayIDJAACQAJAIAFBASABKAIAKAIIEQIARQ0AIANBJGogAUEEahDnBSEBAkACQAJAAkAgACgCiAFBf2oOAwIAAQMLIAEQyx0MAgsgARDLHQsgARDMHQsgAEGQAWogA0EYaiABEOcFIgQQ6AUgBBCCBhogARCCBhoMAQsgAEGQAWogA0EMakHnjRIQngYiARDoBSABEIIGGgsgA0EwaiQAIABBjAFqC1kBBH8gACgCACAAIAAsAAsiAUEASCICGyIDIAAoAgQgASACG2oiBCECAkADQAJAIAIiASADRw0AIAMhAQwCCyABQX9qIgItAAAQzR0NAAsLIAAgASAEEM4dC10BA38gACgCACAAIAAsAAsiAUEASCICGyIDIAAoAgQgASACG2ohAiADIQEDQAJAAkAgASACRg0AIAEtAAAQzR0NASABIQILIAAgAyACEM4dDwsgAUEBaiEBDAALAAsQACAAQSBGIABBd2pBBUlyC1IBAX8CQCAAKAIEIAAsAAsiAyADQQBIIgMbIAEgACgCACAAIAMbayIDSQ0AAkAgAiABayIBQX9HDQAgACADEM8dDwsgACADIAEQ0B0PCxCsAQALNwACQAJAIAAsAAtBf0oNACAAIAE2AgQgACgCACEADAELIAAgAUH/AHE6AAsLIAAgAWpBADoAAAuKAQEEfyMAQRBrIgMkACADIAI2AgwCQCACRQ0AIAAoAgQgAC0ACxD9USEEIAAQ3VEhBSADIAQgAWsiBjYCCAJAAkAgBiADQQxqIANBCGoQjlIoAgAiAkcNACAGIQIMAQsgBSABaiIBIAEgAmogBiACaxC1WRoLIAAgBSAEIAJrEJ5SGgsgA0EQaiQACwsAIAAoAoQBEKMRCyMAIABB4JcTNgIYIABBhJcTNgIAIABBjAFqEJ8QGiAAEJURCwoAIAAQ0h0QpAELBQBBlAQLDwAgAUGUBEYgAUHoA0ZyCyQAAkAgAUHqBUcNACAAIAIQogo2AogBQQEPCyAAIAEgAhCaEQsEAEEBCykBAX9BnAEQpgFBAEGcARBIENsTIgEgACgCiAE2AogBIAEgABC4ESABCy8CAX8BfQJAAkAgACgClAEiAw0AQwAAAAAhBAwBCyADKgJgIQQLIAAgASAEEOocCy8CAX8BfQJAAkAgACgClAEiAw0AQwAAAAAhBAwBCyADKgJgIQQLIAAgASAEEOwcC5cBAQN/IwBBIGsiAiQAIAEoAgQhAyABKAIAIQEgAkEAOwEcIAIgATYCGCACIAM2AhQgAiABNgIQIABBmAFqIQQgASEAAkADQCAAIAEgA2pGDQEgAi0AHA0BIAItAB0NASACIAJBEGoQogo2AgwgBCACQQxqEOgQIAIoAhQhAyACKAIQIQEgAigCGCEADAALAAsgAkEgaiQACxIAIABBmAFqIAFBmAFqEO4QGgt1AQJ/IwBBEGsiAyQAIAAgAjYChAEgAEEYaiABEPwJIAEgA0EEaiAAQZgBahDvECIEEPAQIQEgBBDJBxoCQCABRQ0AIAFBugMgASgCACgCDBECAEUNACAAIAE2ApQBIAEgAkEYakEAIAIbEKgMCyADQRBqJAALIwAgAEHkmBM2AhggAEH8lxM2AgAgAEGYAWoQyQcaIAAQlRELCgAgABDeHRCkAQsFAEGFBAscACABQZh8akH//wNxIgFBHklBgYCAgAMgAXZxC1wBAX8jAEEQayIDJAACQAJAIAFBxwVHDQAgA0EIaiACEP8PIAAoAgAoAlQhASADIAMpAgg3AwAgACADIAERAwBBASEBDAELIAAgASACEJYVIQELIANBEGokACABCwIACywBAX9BpAEQpgFBAEGkARBIENwTIgEgACABKAIAKAJYEQMAIAEgABCrGSABCzgBAX9BACEDAkAgAUEDIAEoAgAoAggRAgBFDQAgAS0ABEF/c0EBcSEDCyAAIAM6AIwBIABBiAFqCxMAIAAgASACIAAoAgAoAiwRBAALBwAgABCVEQsKACAAEJUREKQBCwUAQZcECw8AIAFBlwRGIAFB6ANGcgsEAEEDCx0BAX9BkAEQpgFBAEGQARBIEN0TIgEgABC4ESABC2kBAn8CQCABQfj///8HTw0AAkAgAUEKSw0AIABBCGpBADYCACAAQgA3AgAgACABOgALIAAPCyABQQdyQQFqIgIQpgEhAyAAIAE2AgQgACADNgIAIAAgAkGAgICAeHI2AgggAA8LEKwBAAsnAQJ/IAAgASgCACABIAEsAAsiAkEASCIDGyABKAIEIAIgAxsQmgcLoAMCB30Bf0MAAAAAIQECQCAAKAIMIghB/wFxs0MAAH9DlSICIAhBCHZB/wFxs0MAAH9DlSIDIAhBEHZB/wFxs0MAAH9DlSIEIAQgA10bIgUgBSACXRsiBiACIAMgBCADIARdGyIFIAIgBV0bIgeTIgVDAAAAAFsNAAJAIAYgBFwNACADIAKTIAWVQwAAwEAQjgEhAQwBCwJAIAYgA1wNACACIASTIAWVQwAAAECSIQEMAQsgBCADkyAFlUMAAIBAkiEBCwJAAkAgAUMAAHBClBCzDyIEi0MAAABPXUUNACAEqCEIDAELQYCAgIB4IQgLIAAgCEHoAmogCCAIQQBIGzYCACAGIAeSQwAAAD+UIQRDAAAAACEDAkAgBUMAAAAAWw0AIAVDAACAPyAEIASSQwAAgL+Si5OVQwAAyEKUIQMLAkACQCADELMPIgOLQwAAAE9dRQ0AIAOoIQgMAQtBgICAgHghCAsgACAINgIIAkACQCAEQwAAyEKUELMPIgSLQwAAAE9dRQ0AIASoIQgMAQtBgICAgHghCAsgACAINgIEC5cBAQV/IwBBkAFrIgIkACACEK4GIgNBCGoiBCADKAIIQXRqIgUoAgBqIgYgBigCBEGAgAFyNgIEIAQgBSgCAGoiBSAFKAIEQbV/cUEIcjYCBCAEIAEQswYaIAAgA0EMahCwBgJAIAAoAgQgACwACyIEIARBAEgbIgRBAUsNACAAQQIgBGsQ8R0aCyADELEGGiACQZABaiQAC4IBAQJ/IAAoAgQgAC0ACxD9USECAkACQCAAEPxRIgMgAmsgAUkNACAAEN1RIQMgAkUNASADIAFqIAMgAhC1WRoMAQsgACADIAIgAWogA2sgAkEAIAEQg1IgACgCACEDCyADIAFBMBCaUiEDIAAgAiABaiIBEJxSIAMgAWpBABDxUSAAC9IRAgt/AX0jAEGgAmsiAyQAAkACQCABQQIgASgCACgCCBECAEUNACABKgIEIQ4gACgCiAEhASADQeAAakEIakEANgIAIANCADcDYAJAAkAgAUEBcUUNACADQfAAahCuBiIEQQhqIgUgBCgCCEF0aiIGKAIAaiIHIAcoAgRB+31xQQRyNgIEIAUgBigCAGogACgCjAE2AgggBSAOEPMdGiADQZACaiAEQQxqELAGIANB4ABqIANBkAJqEMAKIANBkAJqEIIGGiAEELEGGgwBCyADQfAAaiAOEPQdIANB4ABqIANB8ABqEMAKIANB8ABqEIIGGgsCQCABQQJxRQ0AIANB8ABqIANB1ABqIANB4ABqEOcFIgQQnh0gA0HgAGogA0HwAGoQwAogA0HwAGoQggYaIAQQggYaCwJAIAFBBHFFDQAgA0HwAGpBCGpBADYCACADQgA3A3AgA0GQAmpBCGpBADYCACADQgA3A5ACAkACQCADQeAAahCfHSIBQX9GDQAgA0HwAGogA0GEAmogA0HgAGpBACABEMkLIgQQwAogBBCCBhogA0GQAmogA0GEAmogA0HgAGogAUF/EMkLIgEQwAogARCCBhoMAQsgA0HwAGogA0HgAGoQ6AULIAMoAnQgAywAeyIEIARBAEgbIQECQANAIAFBBEgNASADKAJwIANB8ABqIATAQQBIGyABakF8aiwAAEFQakEJSw0BIANB8ABqIAFBfWoiARD1HRogAy0AeyEEDAALAAsgA0GEAmogAygClAIgAywAmwIiBiAGQQBIGyIFIAMoAnQgBEH/AXEgBMBBAEgbIgRqEO0dIgEoAgAgASABLAALQQBIGyEHAkAgBEUNACAHIAMoAnAgA0HwAGogAywAe0EASBsgBBCJARoLIAcgBGohBAJAIAVFDQAgBCADKAKQAiADQZACaiAGQQBIGyAFEIkBGgsgBCAFakEAOgAAIANBkAJqEIIGGiADQfAAahCCBhogA0HgAGogARDACiABEIIGGgsgAEGgAWogA0HwAGogA0HgAGoQ5wUiARDoBSABEIIGGiADQeAAahCCBhoMAQsCQCABQQYgASgCACgCCBECAEUNACABKAIIIgRFDQEgA0HwAGogBCABKAIEEM0QIABBoAFqIANByABqIANB8ABqEOcFIgEQ6AUgARCCBhogA0HwAGoQggYaDAELAkAgAUEBIAEoAgAoAggRAgBFDQAgAEGgAWogA0E8aiABQQRqEOcFIgEQ6AUgARCCBhoMAQsCQAJAAkAgAUEEIAEoAgAoAggRAgBFDQAgASgCBCEBIANBhAJqQeeNEhCeBiEHIANB8ABqEK4GIQggAEGQAWoiBEHnjRIQ1RFFDQECQCAAKAK4ASABRg0AIABBfzYCtAEgAEJ/NwKsASAAIAE2ArgBCyAAQawBaiEJQQAhCiAAKAKQASAEIAAsAJsBIgVBAEgiBhsiASAAKAKUASAFIAYbaiELIAhBDGohDCAIQQhqIQ1BACEEA0AgASALRg0DIAEtAAAiBcAhBgJAAkACQAJAIARBAXFFDQAgDSAGELQGGgwBCwJAAkAgBUElRg0AIAVB3ABHDQFBASEEIApBAXEhBUEAIQogBUUNBCANQSUQtAYaDAQLQQAhBCAKQQFxRQ0CIA1BJRC0BhoMAgsCQAJAAkAgCkEBcUUNAAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAFQZ9/ag4MAwILCwsLAQcLCwsIAAsCQCAFQb9/ag4HBgULCwsLBAALAkAgBUGOf2oOAgAJCgsgA0GQAmogAC0AugEQ9h0gDSADQZACahDuHRogA0GQAmoQggYaDA0LIANBkAJqIAAtALkBEPYdIA0gA0GQAmoQ7h0aIANBkAJqEIIGGgwMCyADQZACaiAALQC4ARD2HSANIANBkAJqEO4dGiADQZACahCCBhoMCwsgA0GQAmogAC0AuwEQ9h0gDSADQZACahDuHRogA0GQAmoQggYaDAoLIANBkAJqIAAtALkBEPAdIA0gA0GQAmoQ7h0aIANBkAJqEIIGGgwJCyADQZACaiAALQC4ARDwHSANIANBkAJqEO4dGiADQZACahCCBhoMCAsgA0GQAmogAC0AuwEQ8B0gDSADQZACahDuHRogA0GQAmoQggYaDAcLAkAgCSgCACIEQX9HDQAgCRDvHSAJKAIAIQQLIANBkAJqIAQQ9h0gDSADQZACahDuHRogA0GQAmoQggYaDAYLAkAgACgCsAEiBEF/Rw0AIAkQ7x0gACgCsAEhBAsgA0GQAmogBBD2HSANIANBkAJqEO4dGiADQZACahCCBhoMBQsCQCAAKAK0ASIEQX9HDQAgCRDvHSAAKAK0ASEECyADQZACaiAEEPYdIA0gA0GQAmoQ7h0aIANBkAJqEIIGGgwECyAFQdIARg0CCyANQSUQtAYgASwAABC0BhoMAgsgDSAGELQGGgwBCyADQZACaiAALQC6ARDwHSANIANBkAJqEO4dGiADQZACahCCBhoLQQAhCgtBACEEDAELQQEhCgsgA0GQAmogDBCwBiAHIANBkAJqEMAKIAFBAWohASADQZACahCCBhoMAAsACwJAIAFBAyABKAIAKAIIEQIARQ0AIABBoAFqIANBMGpB4PARQazxESABLQAEGxCeBiIBEOgFIAEQggYaDAMLAkAgAUEHIAEoAgAoAggRAgBFDQAgA0EkaiABKAIEEPcdIABBoAFqIANBJGoQ6AUgA0EkahCCBhoMAwsCQCABQQogASgCACgCCBECAEUNACADQRhqIAEoAgQQ9x0gAEGgAWogA0EYahDoBSADQRhqEIIGGgwDCyAAQaABaiADQQxqQeeNEhCeBiIBEOgFIAEQggYaDAILIANBkAJqIAEQ9h0gByADQZACahDACiADQZACahCCBhoLIABBoAFqIANBkAJqIAcQ5wUiARDoBSABEIIGGiAIELEGGiAHEIIGGgsgA0GgAmokACAAQZwBagurAQEGfyMAQRBrIgIkAAJAIAJBCGogABCbByIDLQAAEKNRRQ0AIAJBBGogACAAKAIAQXRqKAIAakEcaigCABCiByACKAIEELBRIQQgAkEEahCkBxogAiAAELFRIQUgACAAKAIAQXRqKAIAaiIGEJwHIQcgBCAFKAIAIAYgByABuxC0URCyUUUNACAAIAAoAgBBdGooAgBqQQUQpVELIAMQnwcaIAJBEGokACAACzEBAX8jAEEQayICJAAgAkEEahDrWSAAIAJBBGogARDsWSACQQRqEIIGGiACQRBqJAALFAAgACABQavzEUGr8xEQplIQzVkLCQAgACABENVZCwkAIAAgARDpWQsLACAAKAKEARCjEQsLACAAKAKEARCjEQsjACAAQdCcEzYCGCAAQeybEzYCACAAQZwBahCfEBogABD7HQsjACAAQdCbEzYCGCAAQeyaEzYCACAAQZABahCCBhogABCVEQsKACAAEPodEKQBCwUAQeoDCw0AIAFB/f8DcUHoA0YLhQEBAX8jAEEQayIDJAACQAJAAkACQAJAIAFBhHpqDgMAAQIDCyAAIAIQogo2AogBQQEhAQwDCyAAIAIQogo2AowBQQEhAQwCCyADQQRqIAIQvwogAEGQAWogA0EEahDACiADQQRqEIIGGkEBIQEMAQsgACABIAIQmhEhAQsgA0EQaiQAIAELBABBAQsCAAtEAQF/QbwBEKYBQQBBvAEQSBDeEyIBIAAoAogBNgKIASABIAAoAowBNgKMASABQZABaiAAQZABahDoBSABIAAQuBEgAQsKACAAEPsdEKQBCwIACwIAC48CAQZ/AkACQAJAAkAgACgCBCICIAAoAggiA08NACACIAE2AgAgAkEEaiECDAELIAIgACgCACIEa0ECdSIFQQFqIgZBgICAgARPDQECQAJAIAMgBGsiA0EBdSIHIAYgByAGSxtB/////wMgA0H8////B0kbIgMNAEEAIQYMAQsgA0GAgICABE8NAyADQQJ0EKYBIQYLIAYgBUECdGoiBSABNgIAIAUhAQJAA0AgAiAERg0BIAFBfGoiASACQXxqIgIoAgA2AgAMAAsACyAAIAVBBGoiAjYCBCAAKAIAIQQgACABNgIAIAAgBiADQQJ0ajYCCCAERQ0AIAQQpAELIAAgAjYCBA8LEKwBAAsQqAcACz4BAn8gACAAEIgeGkEBIQICQCAAKAIgIgNBKCADKAIAKAIMEQIARQ0AIAAoAiBBlAFqIAAQhh5BACECCyACCz0BAn9BACECAkAgACgCICIDRQ0AIANB2wAgAygCACgCDBECACECIAAoAiBBACACGyECCyAAIAI2AogBQQALNAEBfyAAKAKYASEBIAAoApQBIQADQAJAIAAgAUcNAA8LIAAoAgAQqQkgAEEEaiEADAALAAsLACAAKAIgKgKQAQsHAEMAAAAACxgAIAAgAUHEAGogASoCkAFDAAAAABD5BQstACAAQfyVFDYCaCAAQfSUFDYCACAAQaABahDBChogAEGUAWoQjh4aIAAQnQoLHwEBfwJAIAAoAgAiAUUNACAAIAE2AgQgARCkAQsgAAsKACAAEI0eEKQBCwQAQSgLMQEBfwJAAkAgAUF2aiICQR5LDQBBASACdEGDgICAB3ENAQsgAUHbAEYNAEEADwtBAQskAAJAIAFB2QBHDQAgACACELsKOAKQAUEBDwsgACABIAIQvAoLHQEBf0GsARCmAUEAQawBEEgQ4hMiASAAEJQeIAELFQAgACABKgKQATgCkAEgACABEN4LC7wFAgl/An0jAEEQayICJAAgACABEOgOGkEBIQECQCAAKAIgIgNBrwQgAygCACgCDBECAEUNACAAKAIgIgRB/ANqIQUgACgCOCEDIAAoAjQhBgJAAkACQCAEKAKABCIHDQAMAQsCQAJAIAdpIgFBAUsNACAHQX9qIANxIQgMAQsgAyEIIAMgB0kNACADIAdwIQgLIAUoAgAgCEECdGooAgAiAEUNACAHQX9qIQkgAUEBSyEKA0AgACgCACIARQ0BAkAgACgCBCIBIANGDQACQAJAIAoNACABIAlxIQEMAQsgASAHSQ0AIAEgB3AhAQsgASAIRg0BDAILIAAoAgggA0cNAAwCCwALQRAQpgEhACACIARBhARqIgo2AgggAiAANgIEIABBADYCDCAAIAM2AgggACADNgIEIABBADYCACACQQE6AAwgBCoCjAQhCyAEKAKIBEEBarMhDAJAAkAgB0UNACALIAezlCAMXUUNAQsgB0EBdCAHQQNJIAcgB0F/anFBAEdyciEBAkACQCAMIAuVjSIMQwAAgE9dIAxDAAAAAGBxRQ0AIAypIQcMAQtBACEHCyAFIAEgByABIAdLGxD+DQJAIAQoAoAEIgcgB0F/anENACAHQX9qIANxIQgMAQsCQCADIAdPDQAgAyEIDAELIAMgB3AhCAsCQAJAAkAgBSgCACAIQQJ0aiIDKAIAIgENACAAIAooAgA2AgAgCiAANgIAIAMgCjYCACAAKAIAIgFFDQIgASgCBCEBAkACQCAHIAdBf2oiA3ENACABIANxIQEMAQsgASAHSQ0AIAEgB3AhAQsgBSgCACABQQJ0aiEBDAELIAAgASgCADYCAAsgASAANgIACyACQQA2AgQgBCAEKAKIBEEBajYCiAQgAkEEahCADhoLIAAgBjYCDEEAIQELIAJBEGokACABCwoAIAAQwwoQpAELBQBBiAULDgAgAUGIBUYgAUEKRnILOQACQAJAAkAgAUHaeGoOAgABAgsgACACEKIKNgI0QQEPCyAAIAIQogo2AjhBAQ8L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IAAgBTYCMCAAIAY2AiwgAkEANgIMIAJCADcCBCACQQRqEPEFGiACQRBqJAALLwEBfwJAIAFBf0oNABCsAQALIAAgARCmASICNgIEIAAgAjYCACAAIAIgAWo2AggLKwEBfwJAIAAoAgAiAUUNACAAIAE2AgQgARCkASAAQQA2AgggAEIANwIACwsDAAALPwEBf0EBIQICQCABKAIAIAEoAgRB5wAQ2AoiAUUNACABKAIMIgFFDQAgASAAIAEoAgAoAhARAwBBACECCyACCzgBAX8jAEEQayICJAAgAEEMaiACQQhqIAEoAgAgASgCBBC1DiIBEK0UGiABKAIAEGAgAkEQaiQACwIACzgBAX8jAEEQayICJAAgAEEUaiACQQhqIAEoAgAgASgCBBC1DiIBEK0UGiABKAIAEGAgAkEQaiQACwIACyIAIABBrJ8TNgIAIABBFGoQlQcaIABBDGoQlQcaIAAQxgoLCgAgABDKHhCkAQsFAEHqAAsIACABQeoARgt5AQJ/IwBBIGsiAyQAAkACQAJAIAFB1AFHDQBBKCEEIANBGGohAQwBC0EAIQQgAUGPB0cNAUEwIQQgA0EQaiEBCyABIAIQ/w8gACgCACAEaigCACEEIAMgASkCADcDCCAAIANBCGogBBEDAEEBIQQLIANBIGokACAECwIACwIACzABAX9BHBCmASIBQgA3AgwgAUGsnxM2AgAgAUL/////DzcCBCABQRRqQgA3AgAgAQs7AQF/IABBxOcUNgIAIAAoAhAhASAAQQA2AhACQCABRQ0AIAEgASgCACgCBBEBAAsgAEEIahD3BRogAAsKACAAENIeEKQBC8oBAQZ/IwBBEGsiASQAAkACQAJAAkACQCAAKAIQIgJFDQAgAigCECEDIAAoAggiBEUNAiACKAIMIQIMAQtBACEDQQAhAiAAKAIIIgRFDQMLIAAoAgQhBSABIAM2AgwgASACNgIIIAAoAgwhAiAEKAIAKAIIIQYgASABKQIINwMAIAQgBSABIAIgBhEHAA0CIANFDQIgACgCECECDAELIANFDQELIAAoAgQiAyACQQxqIAAoAgwgAygCACgCRBEEABoLIAFBEGokAEEACycBAX8gACgCECECIAAgATYCEAJAIAJFDQAgAiACKAIAKAIEEQEACwtkAQR/IAAoAjwhAiAAKAI4IQMCQANAIAMgAkYNAQJAIAMoAgAgAUcNACACIANBBGoiBGshBQJAIAIgBEYNACADIAQgBRCJARoLIAAgAyAFaiICNgI8DAELIANBBGohAwwACwALCxAAQcAAQQIgACgCZEECRhsLGgAgACABENkeIgFBASABKAIAKAIIEQMAIAELawECfyMAQRBrIgIkACAAIAE2AlwgAkEMaiABKAIQKAIoKAKQDSIBIAEoAgAoAhwRAwAgAigCDCEBIAJBADYCDCAAKAJYIQMgACABNgJYIAMQtzYgAigCDBC3NiAAKAJYIQAgAkEQaiQAIAALWwEBfyMAQRBrIgMkACABQQEgASgCACgCCBEDACADQQA2AgwgASADQQxqIAEoAgAoAiQRAwAgA0EMahChCBogACgCXCIAIAEgAiAAKAIAKAIMEQ4AIANBEGokAAsdACABIAEoAgBBHEEYIAAoAmRBAkYbaigCABEAAAs2AQF/AkAgACgCUCAAKAJMRg0AIAAoAiAQjxwiAUUNACABIAEoAgAoAgQRAABBHGogABCFCwsLLQAgAEGk4xQ2AkggAEGc4hQ2AgAgAEHYAGoQ3h4aIABByABqEN8eGiAAEMIKCzYBAn8CQCAAKAIAIgFFDQAgASABKAIEIgJBf2o2AgQgAkEBRw0AIAEgASgCACgCBBEBAAsgAAsoAQF/IABBuOMUNgIAAkAgACgCBCIBRQ0AIAAgATYCCCABEKQBCyAACwoAIAAQ3R4QpAELBABBFAsQACABQRZJQYCYwAEgAXZxCyIAAkAgAUEoRw0AIAAgAhCiCjYCZEEBDwsgACABIAIQ6RULBABBAQsCAAsnAQF/QegAEKYBQQBB6AAQSBCvEyIBIAAoAmQ2AmQgASAAEOceIAELHQAgACABLQBAOgBAIAAgASgCRDYCRCAAIAEQ3wsL2QEBA38jAEEQayIDJAACQCABKAIIIgQgACgCECAEKAIAKAKkAxECACIARQ0AIABBAiAAKAIAKAIMEQIARQ0AIAAoAjghBSAAKAI0IQADQCAAIAVGDQEgACgCACEEIABBBGohACAEQY0FIAQoAgAoAgwRAgBFDQALIANBDGogBBC0CyABKAKMAyIAIAFB/AJqIAAbIQQCQCADKAIMIgBFDQAgACAAKAIAQQFqNgIACyADIAA2AgggBCADQQhqEOkeIANBCGoQqQYaIANBDGoQqQYaCyADQRBqJAALkAEBAn8CQAJAAkAgASgCACICRQ0AAkAgAhCwH0UNACABKAIAIAAQtR8iAkUNACACIAIoAgBBAWo2AgAgASACELALCyABKAIAIgMgACgCACICRg0CIANFDQEgAy0AOEEBcUUNAiADELAfRQ0CIAAoAgAhAgwBCyAAKAIAIgJFDQELIAIgACABELYfKAIAELEfCwsKACAAEMYKEKQBCwUAQYwFCykBAX9BASECAkAgAUH9AEYNACABQYwFRg0AIAFBnwVGDQBBACECCyACCyMAAkAgAUG4B0cNACAAIAIQogo2AhBBAQ8LIAAgASACEO4eCx0AAkAgAUHUB0cNACAAIAIQogo2AgwLIAFB1AdGCwIACwIACzMBAX9BFBCmASIBQbChEzYCACABQv////8PNwIEIAEgACgCEDYCECABIAAoAgw2AgwgAQvgAgECfyMAQRBrIgMkAAJAIAFFDQAgASgCjAMiBCABQfwCaiAEGyEBAkACQAJAAkACQAJAAkAgACgCEA4GAAECAwQFBgsgARDABhoMBgsgARDBBhoMBQsgARDzHiABIAEoAgBBAhD0HiIARQ0EIAAgACgCAEEBajYCACADIAA2AgwgASADQQxqEOkeIAMoAgwQsA0MBAsgARDzHiABIAEoAgBBAxD0HiIARQ0DIAAgACgCAEEBajYCACADIAA2AgwgASADQQxqEOkeIAMoAgwQsA0MAwsgARDzHiABIAEoAgBBABD0HiIARQ0CIAAgACgCAEEBajYCACADIAA2AgwgASADQQxqEOkeIAMoAgwQsA0MAgsgARDzHiABIAEoAgBBARD0HiIARQ0BIAAgACgCAEEBajYCACADIAA2AgwgASADQQxqEOkeIAMoAgwQsA0MAQsgARDABhoLIANBEGokAAsdAQF/AkAgACgCACIBRQ0AIAEQrx8NACAAEMIGCwvsBgIHfwh9IwBBwABrIgMkAEEAIQQCQCABRQ0AIANBADYCPCADQgA3AjQgAEEEaiADQTRqEMkfIANBIGpBCGpCADcDACADQgA3AyACQAJAIAEgA0EgahDKHyIFDQAgASADQRhqEMsfRQ0BC0EAIQRD//9/fyEKIAMoAjghBiADKAI0IQAgA0EIakEIaiEHA0AgACAGRg0BAkAgACgCACIIIAFGDQAgB0IANwMA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fnFBgAFBACABG3I2AhwgACgCICACEMs1CwtTAQN/IAAoAkghASAAKAJEIQIDQAJAIAIgAUcNAAJAIAAoAiAQlh8iAkUNACACQQAQlx8LDwsgAigCACIDIAMoAgAoAgwRAQAgAkEEaiECDAALAAt9AgN/AX4jAEEQayICJABBACEDAkAgACgCICIERQ0AIARB2wAgBCgCACgCDBECAEUNACACIAQpAlQ3AwgCQAJAIAAoAigiBEUNACACIAQgAkEIahCpCyACKQMAIQUMAQsgAikDCCEFCyABIAU3AgBBASEDCyACQRBqJAAgAwsHACAAKAIoCxkAIAAoAlAgACgCVEcgACgCXCAAKAJgR3ILCgAgAEFEahD7HgsKACAAQURqEP0eCwoAIABBbGooAgALEgAgAEFEaiABIAIgAyAEEIwfCwwAIABBRGogARCNHwsOACAAQURqIAEgAhCOHwsKACAAQURqEI8fCwoAIABBRGoQmB8LDAAgAEFEaiABEJkfCwQAQQALCgAgAEFEahCJHwsZACAAKAIUIAAoAhhHIAAoAiAgACgCJEdyCzcBAX8DQAJAIAAgAUcNAEEADwsgACgCACECIABBBGohACACQZwFIAIoAgAoAgwRAgBFDQALIAILDQAgAEHQAGogARCqHwuPAgEGfwJAAkACQAJAIAAoAgQiAiAAKAIIIgNPDQAgAiABNgIAIAJBBGohAgwBCyACIAAoAgAiBGtBAnUiBUEBaiIGQYCAgIAETw0BAkACQCADIARrIgNBAXUiByAGIAcgBksbQf////8DIANB/P///wdJGyIDDQBBACEGDAELIANBgICAgARPDQMgA0ECdBCmASEGCyAGIAVBAnRqIgUgATYCACAFIQECQANAIAIgBEYNASABQXxqIgEgAkF8aiICKAIANgIADAALAAsgACAFQQRqIgI2AgQgACgCACEEIAAgATYCACAAIAYgA0ECdGo2AgggBEUNACAEEKQBCyAAIAI2AgQPCxCsAQALEKgHAAsqAQF/AkAgACgCUCAAKAJUIgIgARCsHyIBIAJGDQAgAEHQAGogARCtHwsLGAAgACACIAEgAGtBAnUQmQoiACABIAAbCzMBA38gACgCBCICIAFBBGoiA2shBAJAIAIgA0YNACABIAMgBBCJARoLIAAgASAEajYCBAtFAQF/QfQAEKYB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QQJ0IgNqIgkoAgANACAJIAU2AgAgASEGDAELIAUgBCgCADYCACAEIAAoAgAgA2ooAgAoAgA2AgAgACgCACADaigCACAENgIADAELIAQhBQwACwALIAAoAgAgAUECdGpBADYCACABQQFqIQEMAAsACxCoBwALIABBABDRICAAQQA2AgQLCyEBAX8gACgCACEBIABBADYCAAJAIAFFDQAgARCkAQsgAAuiBAIIfwF9QQIhAgJAIAFBAUYNAAJAIAEgAUF/anENACABIQIMAQsgARD7CCECCwJAAkACQCACIAAoAgQiAUsNACACIAFPDQIgAUEDSSEDAkACQCAAKAIMsyAAKgIQlY0iCkMAAIBPXSAKQwAAAABgcUUNACAKqSEEDAELQQAhBAsCQAJAIAMNACABaUEBSw0AIARBAUEgIARBf2pna3QgBEECSRshBAwBCyAEEPsIIQQLIAIgBCACIARLGyICIAFPDQIgAkUNAQsCQCACQYCAgIAETw0AIAAgAkECdBCmARDQICAAIAI2AgRBACEBA0ACQCABIAJHDQAgACgCCCIFRQ0EIABBCGohASAFKAIEIQYCQAJAIAJpIgRBAUsNACAGIAJBf2pxIQYMAQsgBiACSQ0AIAYgAnAhBgsgACgCACAGQQJ0aiABNgIAIAJBf2ohByAEQQFLIQgDQCAFKAIAIgRFDQUgBCgCBCEBAkACQCAIDQAgASAHcSEBDAELIAEgAkkNACABIAJwIQELAkAgASAGRg0AAkAgACgCACABQQJ0IgNqIgkoAgANACAJIAU2AgAgASEGDAELIAUgBCgCADYCACAEIAAoAgAgA2ooAgAoAgA2AgAgACgCACADaigCACAENgIADAELIAQhBQwACwALIAAoAgAgAUECdGpBADYCACABQQFqIQEMAAsACxCoBwALIABBABDQICAAQQA2AgQLCyEBAX8gACgCACEBIABBADYCAAJAIAFFDQAgARCkAQsgAAszAQF/IwBBEGsiAyQAIAMgAjgCDCADIAE4AgggAyADKQIINwMAIAAgAxDPICADQRBqJAALMwEBfyMAQRBrIgMkACADIAI4AgwgAyABOAIIIAMgAykCCDcDACAAIAMQziAgA0EQaiQAC0IBAX8jAEEQayIEJAAgABDKLCAAIAEQnCwgACACEJwsIAAgAxCcLCAEQQQ6AA8g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AUIANwIMIABBHGogAUEcai0AADoAACAAIAEoAhg2AhggACABKQIgNwIgIABBKGogAUEoai0AADoAACAAQgA3AiwgAEEANgI0IAAgASgCLDYCLCAAIAEoAjA2AjAgACABKAI0NgI0IAFBADYCNCABQgA3AiwgAUHAAGopAgAhAiABQcgAaikCACEDIAFB0ABqKQIAIQQgASkCOCEFIABBADYCYCAAQgA3AlggAEHQAGogBDcCACAAQcgAaiADNwIAIABBwABqIAI3AgAgACAFNwI4IAAgASgCWDYCWCAAIAEoAlw2AlwgACABKAJgNgJgIAFBADYCYCABQgA3AlggAEH0AGogAUH0AGopAgA3AgAgAEHsAGogAUHsAGopAgA3AgAgACABKQJkNwJkIAALOQACQCACQaKIwhBJDQAQrAEACyABIABrQfwAbSIBQQF0IgAgAiAAIAJLG0GhiMIQIAFBkIShCEkbC1EAIAAgAzYCEEEAIQMgAEEANgIMAkAgAUUNACABEMUgIQMLIAAgAzYCACAAIAMgAkH8AGxqIgI2AgggACADIAFB/ABsajYCDCAAIAI2AgQgAAuSAQEDfyABKAIEIQIgACgCACEDIAAoAgQhBAJAA0AgBCADRg0BIAJBhH9qIARBhH9qIgQQwCAhAgwACwALIAEgAjYCBCAAKAIAIQQgACACNgIAIAEgBDYCBCAAKAIEIQQgACABKAIINgIEIAEgBDYCCCAAKAIIIQQgACABKAIMNgIIIAEgBDYCDCABIAEoAgQ2AgALRwECfyAAKAIEIQECQANAIAAoAggiAiABRg0BIAAgAkGEf2oiAjYCCCACELkgGgwACwALAkAgACgCACICRQ0AIAIQpAELIAALHAACQCAAQaKIwhBJDQAQqAcACyAAQfwAbBCmAQsQACAAIAEgAiADQQEQpkEaCx0AIAAgACgCAEEAIAEgAiAAKAIIIAAoAgQRBgAaC08AIAAgAzYCEEEAIQMgAEEANgIMAkAgAUUNACABEM0gIQMLIAAgAzYCACAAIAMgAkEDdGoiAjYCCCAAIAMgAUEDdGo2AgwgACACNgIEIAALkwEBA38gASgCBCECIAAoAgAhAyAAKAIEIQQCQANAIAQgA0YNASACQXhqIgIgBEF4aiIEKQIANwIADAALAAsgASACNgIEIAAoAgAhBCAAIAI2AgAgASAENgIEIAAoAgQhBCAAIAEoAgg2AgQgASAENgIIIAAoAgghBCAAIAEoAgw2AgggASAENgIMIAEgASgCBDYCAAtCAQJ/IAAoAgghASAAKAIEIQICQANAIAEgAkYNASAAIAFBeGoiATYCCAwACwALAkAgACgCACIBRQ0AIAEQpAELIAALOAACQCACQYCAgIACSQ0AEKwBAAsgASAAayIBQQJ1IgAgAiAAIAJLG0H/////ASABQfj///8HSRsLKwEBfwJAIAAoAgAiAUUNACAAIAE2AgQgARCkASAAQQA2AgggAEIANwIACwscAAJAIABBgICAgAJJDQAQqAcACyAAQQN0EKYBCzQBAX8jAEEQayICJAAgABDKLCAAIAEQnCwgAkEBOgAPIABBDGogAkEPahDLLCACQRBqJAALSQEBfyMAQRBrIgIkACAAQQE6ABwgACAAKAIEIAAoAgBrQQN1NgIYIAAgARCcLCACQQA6AA8gAEEMaiACQQ9qEMssIAJBEGokAAsfAQF/IAAoAgAhAiAAIAE2AgACQCACRQ0AIAIQpAELCx8BAX8gACgCACECIAAgATYCAAJAIAJFDQAgAhCkAQsLlgEBAn8gAEHspBM2AgAgACgCKBDTICAAKAIsENQgIAAoAhgQ1SAgACgCcCEBAkADQCABRQ0BIAEoAgAhAiABQQxqENYgGiABEKQBIAIhAQwACwALIAAoAmghASAAQQA2AmgCQCABRQ0AIAEQpAELIABB3ABqEMkHGiAAQcQAahCJEhogAEEwahCIEhogAEEcahCHEhogAAuEAwECfwJAIABFDQAgACgCAEUNACAAIAAoAgAiAUF/ajYCACABQQFHDQAgAEHTwnw2AgACQCAAKAIIIgFFDQAgARCoISABEGAgAEEANgIICwJAAkAgACgCJCIBDQBBACEBDAELAkAgASgCACICRQ0AAkACQCAAKAIgIgENAEEAIQEMAQsgASgCACEBCyABIAIRAQAgACgCJCEBCwJAIAEoAgQiAkUNAAJAAkAgACgCICIBDQBBACEBDAELIAEoAgQhAQsgASACEQEAIAAoAiQhAQsCQCABKAIIIgJFDQACQAJAIAAoAiAiAQ0AQQAhAQwBCyABKAIIIQELIAEgAhEBACAAKAIkIQELAkAgASgCDCICRQ0AAkACQCAAKAIgIgENAEEAIQEMAQsgASgCDCEBCyABIAIRAQAgACgCJCEBCyABKAIQIgJFDQACQAJAIAAoAiAiAQ0AQQAhAQwBCyABKAIQIQELIAEgAhEBACAAKAIkIQELIAEQYCAAKAIgEGAgABBgCwvzBgECfwJAIABFDQAgACgCAEUNACAAIAAoAgAiAUF/ajYCACABQQFHDQAgAEHTwnw2AgACQCAAKAIIIgFFDQAgARCoISABEGAgAEEANgIICwJAAkAgACgCSCIBDQBBACEBDAELAkAgASgCACICRQ0AAkACQCAAKAJEIgENAEEAIQEMAQsgASgCACEBCyABIAIRAQAgACgCSCEBCwJAIAEoAgQiAkUNAAJAAkAgACgCRCIBDQBBACEBDAELIAEoAgQhAQsgASACEQEAIAAoAkghAQsCQCABKAIIIgJFDQACQAJAIAAoAkQiAQ0AQQAhAQwBCyABKAIIIQELIAEgAhEBACAAKAJIIQELAkAgASgCDCICRQ0AAkACQCAAKAJEIgENAEEAIQEMAQsgASgCDCEBCyABIAIRAQAgACgCSCEBCwJAIAEoAhAiAkUNAAJAAkAgACgCRCIBDQBBACEBDAELIAEoAhAhAQsgASACEQEAIAAoAkghAQsCQCABKAIUIgJFDQACQAJAIAAoAkQiAQ0AQQAhAQwBCyABKAIUIQELIAEgAhEBACAAKAJIIQELAkAgASgCGCICRQ0AAkACQCAAKAJEIgENAEEAIQEMAQsgASgCGCEBCyABIAIRAQAgACgCSCEBCwJAIAEoAhwiAkUNAAJAAkAgACgCRCIBDQBBACEBDAELIAEoAhwhAQsgASACEQEAIAAoAkghAQsCQCABKAIgIgJFDQACQAJAIAAoAkQiAQ0AQQAhAQwBCyABKAIgIQELIAEgAhEBACAAKAJIIQELAkAgASgCJCICRQ0AAkACQCAAKAJEIgENAEEAIQEMAQsgASgCJCEBCyABIAIRAQAgACgCSCEBCwJAIAEoAigiAkUNAAJAAkAgACgCRCIBDQBBACEBDAELIAEoAighAQsgASACEQEAIAAoAkghAQsCQCABKAIsIgJFDQACQAJAIAAoAkQiAQ0AQQAhAQwBCyABKAIsIQELIAEgAhEBACAAKAJIIQELAkAgASgCMCICRQ0AAkACQCAAKAJEIgENAEEAIQEMAQsgASgCMCEBCyAB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IAYQiQEaIAAoAgQhBQsgAyABayEEAkAgAyABRg0AIAUgASAEEIkBGgsgACAFIARqNgIEIAAPCwJAIAMgBEYNACACIAQgARCJARoLIAAgAiABajYCBCAADwsgABDDHiAAIAAoAgAgACgCCCABELEHEMIeIAAoAgQhAgJAIAMgBEYNACACIAQgARCJARoLIAAgAiABajYCBAsgAAueAQIBfQN/AkAgACoCQCIGQwAAAABbDQAgAiADQwAAgD9DAAAAACAGQwAAgD9DAAAAAEMAAAAAEKhBCyAAKAKEASEHIAAoAoABIggoAmAhCQJAAkAgCCgCDCIIDQBBACEIDAELIAgoAkwhCAsgACAHIAEgAiADIAQgBSAIIAkREwAhBQJAIAAqAkBDAAAAAFsNACACIAMQqUELIAVBAEcLNgECfyAAKAIYIQQCQAJAIAAoAkQiBQ0AQQAhBQwBCyAFKAIMIQULIAAgASACIAMgBSAEEQoACzYBAn8gACgCJCEEAkACQCAAKAJEIgUNAEEAIQUMAQsgBSgCGCEFCyAAIAEgAiADIAUgBBEKAAsyAQJ/IAAoAiAhAgJAAkAgACgCRCIDDQBBACEDDAELIAMoAhQhAwsgACABIAMgAhEFAAsfAQF/IAAoAgAhAiAAIAE2AgACQCACRQ0AIAIQpAELC90BAAJAA0AgASACRg0BIAMgARDwICIDQShqIAFBKGotAAA6AAAgAyABKQIgNwIgIANBLGogAUEsahDxIBogA0HQAGogAUHQAGopAgA3AgAgA0HIAGogAUHIAGopAgA3AgAgA0HAAGogAUHAAGopAgA3AgAgAyABKQI4NwI4IANB2ABqIAFB2ABqEPIgGiADQfQAaiABQfQAaikCADcCACADQewAaiABQewAaikCADcCACADIAEpAmQ3AmQgAUH8AGohASADQfwAaiEDDAALAAsgACADNgIEIAAgAjYCAAvPAgEDfyAAKAIEIQMCQANAIAEgAkYNASADIAEQ1yEiA0EoaiABQShqLQAAOgAAIAMgASkCIDcCICADQQA2AjQgA0IANwIsAkAgASgCMCIEIAEoAiwiBUYNACADQSxqIAQgBWsiBEEDdRDWISADIAMoAjAgBSAEEIkBIARqNgIwCyADIAEpAjg3AjggA0HQAGogAUHQAGopAgA3AgAgA0HIAGogAUHIAGopAgA3AgAgA0HAAGogAUHAAGopAgA3AgAgA0EANgJgIANCADcCWAJAIAEoAlwiBCABKAJYIgVGDQAgA0HYAGogBCAFayIEEMIeIAMgAygCXCAFIAQQiQEgBGo2AlwLIAMgASkCZDcCZCADQfQAaiABQfQAaikCADcCACADQewAaiABQewAaikCADcCACADQfwAaiEDIAFB/ABqIQEMAAsACyAAIAM2AgQLLQEBfyAAKAIEIQICQANAIAIgAUYNASACQYR/ahC5ICECDAALAAsgACABNgIECwwAIAAgACgCABD6IAukQAM0fwF+An0jAEGgAWsiBSQAIAVBADYCnAEgBUIANwKUASAFQQI2AogBIAUgAigCACIGNgKMASAFIAIoAgQiBzYCkAEQ/SAhCEEAIQkCQCAGRQ0AQQAhCSAHRQ0AQQAhCSAHQRRqEF4iCkUNACAKIApBFGoiCzYCDCAKIAUpAogBNwIAIApBCGogBUGIAWpBCGooAgA2AgAgCkEBNgIQQQAhAiAFQQA2AhQCQANAIAVBiAFqIAVBFGoQ/iAiDEF/Rg0BQQ4hDQJAIAxB///DAEsNACAMQQ9xIAxBBHZBP3EgDEEJdkH+//8DcUGg6RpqLwEAakEBdEGgvxpqLwEAakHwmxpqLQAAIQ0LIAsgAmogDToAACAFKAIUIQwDQCACQQFqIgIgDE8NASALIAJqQQQ6AAAMAAsACwALIAohCQtBAUF+IARBAUYbQQAgBBsiDkH9AEkhD0EAIQtBACENQQAhEEEAIRFBACESQQAhE0EAIRQDQAJAAkACQCASIAdPDQBBACEVQQAhFiAJKAIIIgIgEk0NAkEAIRYgAiASayIMIAxB/////wcgEkH/////B2ogAksbIBJBgICAgHhLGyICRQ0CIBIgAiASaiICIBIgAksbIQwgCSgCDCELIBIhAgNAAkACQCACIAxGDQAgCyACai0AAEENRw0BIAUgAjYCFCAJIAVBFGoQ/iAhAiAFKAIUIQwgAkENRw0AIAwgCSgCCE8NACAJIAVBFGoQ/iAhAiAFKAIUIAwgAkEKRhshDAtBACEWIAwgEmsiF0EeahBeIhhFDQQgGCAYQRxqIgw2AgggF0ECaiICQQJ0QewDaiINIAJqEF4iBEUNAyALIBJqIRkgBEIANwIMIAQgDDYCBCAEIARB7ANqNgIIIAQgBCANaiIMNgIAQQAhAiAMQQA6AAAgBCgCBEH/AToAAEF/IQsgBCgCCEF/NgIAIARBADYCnAIgBEJ/NwKQAiAEQgA3AogCIAQgBEHYAGoiDDYChAIgBCAMNgKAAiAEQgA3AvgBIARCADcCUCAEIARBFGoiGjYCTCAEQgA3AkQgBEEAOgDcAyAEQQA2AtgDIARBADoAoAIgBCAMNgKYAiAEQgA3AsADIARByANqQgA3AgBBACENA0ACQAJAAkAgAiAXRg0AIBkgAmotAAAiDEFzakH/AXFBCksNASAEIAxB/wFxIg0gAiALaxD/ICACIQsgDUENRw0CIAIhCwsgBEEAIBcgC2sQ/yAgBCgCDCEbIA4hHAJAIA8NACAEIBsgG0EAEIAhIRwLIAQgHDoA6gMgBCASNgLgAyAEIBk2AqgCIAQgCTYCpAIgBCAENgKsAkEAIR0gGiAcQf8BcSIeQQ5BABCBIRogBEHMA2ohHyAEQbgCaiEgIARB5ANqISEgBEGwAmohIiAEQaQCaiEjIAQoAggiCyAbQQJ0aiECQX8hJEEAISVBACEmQQAhDSAcIScgGyEMA0ACQAJAAkACQAJAAkACQAJAIAIoAgAiKCAbRiIpDQBBASEKAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBCgCACAoai0AAA4YDAcHBw8HBwcHBwcHBwsHBQQGCAEAAwIJBwsCQCAEKAJMIAQoAlBBA2xqLQACQQFqIgJB/wFxQf0ASw0AICYNACAlRQ0KCyAlICZFaiElDA4LAkACQCAEKAJMIAQoAlBBA2xqLQACQX5xQQJqIgJB/gFxQf0ASw0AICYNACAlRQ0BCyAlICZFaiElDA4LQQAhJUEAISYgGiACQf8BcUEOQQAQgSENDQwQCwJAAkAgBCgCTCAEKAJQQQNsai0AAkEBaiICQf8BcUH9AEsNACAmDQAgJUUNAQsgJSAmRWohJQwNC0EAISVBACEmIBogAkEBckH/AXFBAkEAEIEhDQwMDwsCQAJAIAQoAkwgBCgCUEEDbGotAAJBfnFBAmoiAkH+AXFB/QBLDQAgJg0AICVFDQELICUgJkVqISUMDAtBACElQQAhJiAaIAJB/wFxQQFBABCBIQ0LDA4LIAQoAkwgBCgCUEEDbGoiCy0AASECIAQoAgQgKGogCy0AAiILOgAAAkACQCALQQFqIgtB/wFxQf0ASw0AICYNACAlDQAgGiALQQFyQf8BcUEOQQEQgSFFDQ8gHUEBaiEdQQAhJgwBCyAmQQFqISYLQQAhCiACQf8BcUEORg0MIAQoAgAgKGogAjoAACAEIAwgKBCCIQ0PDAsLIAQoAkwgBCgCUEEDbGoiCy0AASECIAQoAgQgKGogCy0AAiILOgAAAkACQCALQX5xQQJqIgtB/gFxQf0ASw0AICYNACAlDQAgGiALQf8BcUEOQQEQgSFFDQ4gHUEBaiEdQQAhJgwBCyAmQQFqISYLQQAhCiACQf8BcUEORg0LIAQoAgAgKGogAjoAACAEIAwgKBCCIUUNCgwOCyAEICggG0EBEIAhIQogBCgCTCAEKAJQQQNsaiICLQABIQsgBCgCBCAoaiACLQACIgI6AAACQAJAIAJBAWpBAXIgAkF+cUECaiAKG0H/AXEiAkH9AEsNACAmDQAgJQ0AIBogAkEOQQEQgSFFDQ0gHUEBaiEdQQAhJgwBCyAmQQFqISYLQQAhCiALQf8BcUEORg0KIAQoAgAgKGogCzoAACAEIAwgKBCCIUUNCQwNCyAEKAIEIChqIAQoAkwgBCgCUEEDbGotAAI6AABBACEKIAQoAkwgBCgCUEEDbGotAAEiAkEORg0JIAQoAgAgKGogAjoAACAEIAwgKBCCIUUNCAwMCwJAAkAgJkUNACAmQX9qISYMAQsCQAJAIB0NAEEAIR0MAQsDQCAEKAJMIAQoAlBBA2xqLQAAIQIgGhCDISACRQ0ACyAdQX9qIR1BACElC0EAISYLIAQoAgQgKGogBCgCTCAEKAJQQQNsai0AAjoAAEEAIQogBCgCTCAEKAJQQQNsai0AASICQQ5GDQggBCgCACAoaiACOgAAIAQgDCAoEIIhRQ0HDAsLICYNBQJAICVFDQAgJUF/aiElDAULQQAhJSAEKAJMIAQoAlBBA2xqLQAADQQgBCgCVEECSQ0EIBoQgyEMBAtBACElQQAhJiAaIAJBAXJB/wFxQQ5BABCBIUUNBwwECyAEQgA3AlAgBCAaNgJMQQAhCiAaIB5BDkEAEIEhGkEAIR1BACElQQAhJgsgBCgCBCAoaiAcOgAADAQLIBggGCgCCEEBaiINNgIIIAsgBCgCDCIkQQJ0aiEnQQAhAiAcIQsCQANAICcoAgAiCiAkRg0BIAIgCkF/aiIMIAIgDEsbIQwCQANAIAIgDEYNASANIAJqIAs6AAAgAkEBaiECDAALAAsgBCgCCCAKQQJ0aiEnIAQoAgQgCmotAAAhCyAMIQIMAAsACwJAIAlFDQAgCSAJKAIQQQFqNgIQCyAYQQE2AhggGCAcOgAUIBggFzYCECAYIBI2AgwgGCAZNgIEIBggCTYCAAwEC0EAISYLIAQoAgAgKGpBBDoAACAEKAIIIgIgDEECdGoiCyACIAsoAgBBAnRqKAIANgIADAQLQQAhCgsgBCgCBCICIChqLQAAISoCQCANQf8BcQ0AQQJBASAqQf8BcSICIB4gAiAeSxtBAXEbIQ0gKCEMICghJCAqIScMAwsCQCAKQX9zICdB/wFxIgsgKkH/AXEiK0ZxRQ0AICghDAwDCyAEKAIAIicgDGotAAAhLCAnICRqLQAAIS0gAiAkai0AACEuIAQoAgggDEECdGooAgAhFgJAAkAgBCgCkAIiAkEHRg0AIAJBAWohJyAEKAKEAiECDAELAkAgBCgChAIiJygCpAEiAg0AQagBEF4iAkUNAiACQQA2AqQBIAIgJzYCoAEgJyACNgKkAQsgBCACNgKEAkEAIScLIAQgJzYCkAIgBCAEKAKcAkEBajYCnAIgAiAnQRRsaiInIC46ABIgJ0EDQQAgLEFxakH/AXFBA0kbIC1BEkZBAnRyIiw6ABEgJ0ECQQEgCyArIAsgK0sbQQFxGyIvQQR0IA1yOgAQICcgFjYCDCAnIAw2AgggJyAkNgIEICdBADYCAAJAIAQoApQCIgJBf0YNACAtQRJHDQAgBCgCiAIhCyAnICxBCHI6ABECQCALIAJBFGxqIgwtABEiDUEBcUUNACAMIA1B/QFxOgARCyAMICc2AgAgBCgCgAIhJAJAA0BBACENAkAgCyAkRw0AIAQoAowCIQ0LA0AgCyACQRRsai0AEUECcQ0CIAIgDUohDCACQX9qIQIgDA0AC0EHIQIgCygCoAEiCw0ACyAEQQA6AKACIARBfzYClAIgBEEANgKIAgwBCyAEIAI2ApQCIAQgCzYCiAILAkAgJy0AEUEBcUUNACAEIAQoAoQCNgKIAiAEIAQoApACNgKUAgsgBC0AoAIgCnJFDQEgBCgCnAIhCwNAIAtFDQICQCAEKAKYAiInLQARIitBCHENACAEICc2ArACIAQgBCgCrAIiDSgCCCIKIA0oAgxBAnRqIgIoAgA2AuQDIAIgJygCBDYCACAnIQICQANAIAIoAgghCyACKAIAIgxFDQEgCiALQQJ0aiAMKAIENgIAIAwhAgwACwALIAogC0ECdGogDSgCDDYCACAEIAI2ArQCIAQgJy0AEEEPcSIkOgDoAwJAAkAgK0ECcQ0AIAItABBBBHYhDAwBC0ECQQEgJy0AEiIMIAQtAOoDIgsgDCALSxtBAXEbIQwLIAQgDDoA6QMgDSgCCCIMIA0oAgwiLUECdCIwaiELIAIoAgwhMSAtIQogJCECICQhKwJAA0AgCygCACILIC1GDQECQAJAIA0oAgAgC2oiDC0AACInQQVGDQBBACEuQQEhFiAnIQIMAQsgDEEOIAIgAkFxakH/AXFBBEkbIic6AAAgAkH/AXEiAkEORyEWIAJBDkYhLiAnIQILQQIhJwJAAkACQCACQf8BcSIMQX1qDgUBAgICAAILQQYhJyArQf8BcUEDRw0BCyANKAIAIAtqICc6AAALIAJBf2pB/wFxQQNJISwCQAJAAkAgDEEORg0AIAshJyAuIA0oAgAgCmotAAAgDEZyDQEMAgsgCyEnIBYNAQsgDSgCCCIMIApBAnRqIicgDCAnKAIAQQJ0aigCADYCACAKIScLIAIgKyAsGyErIA0oAggiDCALQQJ0aiELICchCgwACwALIAwgMGohAiAtIS4gJCErICQhMANAAkACQAJAAkACQAJAAkACQAJAIAIoAgAiJyAtRg0AIA0oAgAiCyAnaiIyLQAAIQogCyAMICdBAnQiLGooAgAiDGotAAAhFiAnIQICQANAIAJBAWoiAiAMRg0BIAsgAmotAABBBEYNAAsLAkAgAiAMRw0AIApBd2pB/wFxQQFLDQAgJEH+AXFBBkcNACAkQf8BcSICIBZB/wFxRw0AAkAgAkEHRg0AIApB/wFxIQJBCSEKIAJBCkcNBwsgMiAkOgAAICQhCgwCCyAKQf8BcUEIRw0BAkAgK0H/AXFBB0YNAEEIIQogFkH/AXFBB0cNBgsgMkEHOgAAQQghCgwCCyAEKAKsAiItKAIMITAgBCgCsAItABIhAiAEQQA6ANwDIARBADYC2AMgBEKAgICAcDcC0AMgBCAgNgLMAyAEICA2AsgDIARBAkEBIAJBAXEbOgDdA0F/IRYgBCgC4ANBf2ohMyAtKAIIIDBBAnRqIQIgBCgCpAIhNAJAA0AgAigCACIrIDBGDQECQAJAAkACQCAtKAIAICtqLQAAIidBf2oOBwICAwMDAQEACyAnQQ5HDQIgBSAzICtqNgIUIDQgBUEUahD+ICInQeP+A0sNAiAnQf//A3EiDEHqAG4iAkEBdEGAjRtqLwEAIAJBln9sICdqQf//A3FqQfD6GmotAAAiC0HAAXEiAkUNAgJAIAJBgAFGDQAgAkHAAEcNAyAEKALYAyINQT5LDQUgC0E/cUEBdEGg+hpqLgEAIQoCQAJAIAQoAtQDIgJBB0YNACACQQFqIQwgHygCACECDAELAkAgHygCACIMKAKMASICDQBBkAEQXiICRQ0TIAJBADYCjAEgAiAMNgKIASAMIAI2AowBCyAfIAI2AgBBACEMCyAEIAw2AtQDIAQgDUEBajYC2AMgAiAMQQJ0aiILICcgCmo2AgAgC0HgAGpBfzYCACALQcAAaiArNgIAIAtBIGogFjYCACACIAxqQYABakEAOgAADAMLIAQoAtgDRQ0CAkACQCAMQarGAEcNAEGJ4AAhNQwBCwJAIAxBieAARw0AQarGACE1DAELICchNQsgBCgCyAMhNiAEKALUAyIyIQIgBCgCzAMiNyEsAkADQEEAIQwCQCAsIDZHIjgNACAEKALQAyEMCyAsQeAAaiENICxBwABqIQsCQANAAkAgCyACIiRBAnQiAmooAgBBf0YNACANIAJqIgooAgBBf0cNAAJAICwgAmooAgAiAiAnRg0AIAIgNUcNAQsgCiArNgIAICQhAgNAIDJBByAsIDdGGyIMIAIgDCACShshDSAsQeAAaiEnICxBwABqIQoCQANAIAIgDUYNASAKIAJBAWoiAkECdCIMaiILKAIAQX9GDQAgJyAMaigCAEF/Rw0AIAtBfzYCAAwACwALQQAhAiAsKAKMASIsDQALIDgNAiAkIAQoAtADRw0CIARBAToA3AMMBAsgJEF/aiECICQgDEoNAAsgLCA2Rg0AICwoAogBISxBByECDAELCyAELQDcA0UNAwsgIxCEIQwCC0ECIScLICshFiAEKALYA0UNACAEKALIAyECIAQoAtQDIQwgHyENA0BBACELAkAgDSgCACIkIAJHDQAgBCgC0AMhCwsgJEGAAWohCiAkQeAAaiENA0ACQCANIAwiAkECdGooAgBBf0cNACAKIAJqIgwtAAAgBC0A3QNGDQAgDCAnOgAACyACQX9qIQwgAiALSg0ACyAkQYgBaiENQQchDCAkIAQoAsgDIgJHDQALICshFgsgLSgCCCArQQJ0aiECDAALAAsgIxCEIUECQQEgBCgCsAItABJBAXEbISwgBCgCrAIiCygCCCIMIAsoAgwiLUECdGohDSAELQDoAyErQX8hAgJAA0AgDSgCACINIC1GDQECQCALKAIAIicgDWotAAAiCkESSw0AAkBBASAKdCIkQYDwH3ENAAJAICRBxAFxDQAgCkEBRw0CQQEhKwwCC0ECISsMAQsgDSACIAJBf0YbIQJBAiEKAkAgJyAMIA1BAnRqKAIAai0AACInQf4BcUEGRg0AICchCgJAICcNACAELQDpAyEKCyAKQX9qQf8BcUECSw0BCyArICwgK0H/AXEgCkH/AXFGGyEKA0AgCygCACACaiAKOgAAIAsoAggiDCACQQJ0aigCACICIAwgDUECdGooAgBHDQALQX8hAgsgDCANQQJ0aiENDAALAAsgBCgCrAIiAigCCCILIAIoAgwiDUECdGohDAJAAkAgBCgCsAItABJBAXENAANAIAwoAgAiDCANRg0CQQEhCiACKAIEIAxqIictAAAhJAJAAkACQCACKAIAIAxqLQAAQX9qDgICAQALQQIhCgsgJyAKICRqOgAAIAIoAgghCwsgCyAMQQJ0aiEMDAALAAsDQCAMKAIAIgwgDUYNAQJAIAIoAgAgDGotAABBAkYNACACKAIEIAxqIgsgCy0AAEEBajoAACACKAIIIQsLIAsgDEECdGohDAwACwALIAQoAqwCIgJBDGohDCACKAIIIQ0gISELICIhAgJAA0AgDSAMKAIAQQJ0aiALKAIANgIAIAIoAgAiAkUNASACQQxqIQsgAkEIaiEMDAALAAsgDSAuQQJ0aiAxNgIADAkLIAohAiAKISsgCkH/AXFBf2oODgUFBAQEBAAEAwMEBAQBBAtBByErIDBB/wFxQQFGDQEgMCECDAQLIA0oAgghDEEOISRBDiErICchLgwEC0EBIQIgDSgCACAnakEBOgAADAILIA0oAgAgJ2pBDjoAAAsgMCECIAohKwsgDSgCCCEMAkAgDSgCACAuai0AACArQf8BcUYNACACITAgCiEkICchLgwBCyAMIC5BAnRq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7trBmwRGDQcgBEHh7JWjBEYNBCAEQevCpaMERg0HIARB8s69owRGDQcgBEHs4NWjBEYNByAEQfDynasERg0HIARB7fKxqwRGDQcgBEHh5IW7BEYNByAEQefcvbsERg0HIARB7dy9uwRGDQcgBEHuwsm7BEYNByAEQfLU1bsERg0EIARB6NbVuwRGDQcgBEH15NW7BEYNBCAEQefchcMERg0CIARB79yFwwRGDQcgBEHyxJXDBEYNAyAEQefctcMERg0HIARB8Ny1wwRGDQcgBEHh7IXTBEYNByAEQenYhdsERg0HIARB6e6F2wRGDQcgBEHywqHbBEYNByAEQfLaodsERg0FIARB6t6h2wRGDQcgBEHz6KXbBEYNByAEQeHIudsERg0EIARB6cLJ2wRGDQcgBEHp0NHbBEYNByAEQeHcheMERg0HIARB796F4wRGDQEgBEHj4JXjBEYNByAEQeLapeMERg0HIARB6tCF6wRGDQcgBEHh1oXrBEYNByAEQeTchesERg0HIARB6dyF6wRGDQcgBEHj5IXrBEYNByAEQebIlesERg0HIARB7fKx6wRGDQQgBEHpyL3rBEYNByAEQefcvesERg0HIARB6crR6wRGDQcgBEH02NXrBEYNByAEQfLa5esERg0GIARB7c6F8wRGDQcgBEHk3IXzBEYNByAEQeHulfMERg0HIARB796t8wRGDQcgBEHvwrn7BEYNByAEQeHyyfsERg0EIARB8s7V+wRGDQcgBEHnwqGDBUYNByAEQfDYoYMFRg0HIARB5OSxgwVGDQcgBEHn3KmTBUYNByAEQefQvZMFRg0HIARB8uqFmwVGDQcgBEHk5KGbBUYNByAEQeTIpZsFRg0HIARB9MilmwVGDQcgBEHkzr2bBUYNByAEQe/OvZsFRg0HIARB7/K9mwVGDQcgBEHk3NWbBUYNByAEQfXc1ZsFRg0HIARB79jlmwVGDQcgBEHi3IXTBUYNByAEQeLOhaMFRg0HIARB8taFowVGDQcgBEHl2IWjBUYNByAEQezahaMFRg0EIARB9OyFowVGDQcgBEHv8oWjBUYNByAEQfXYlaMFRg0EIARB59yZowVGDQcgBEHn2J2jBUYNByAEQenCoaMFRg0BIARB9MSlowVGDQcgBEHo5KWjBUYNByAEQeHmuaMFRg0HIARB8si9owVGDQcg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AAsCQCAALQBCDQAgABCZIQsgACgCXAs4AAJAIAAgAUYNAAJAIAEoAgAiAQ0AIABBABDyBSAADwsgASABKAIEQQFqNgIEIAAgARDyBQsgAAvNAQAgACABELUHIgBBDGogAUEMaigCADYCACAAIAEpAgQ3AgQgACgCEBBgIAAgASgCEDYCECAAIAEoAhQ2AhQgAUIANwIQIABBGGogAUEYahDLIRogAEEgaiABQSBqEMwhGiAAQShqIAFBKGoQzCEaIAAoAjAQYCAAIAEoAjA2AjAgACABKAI0NgI0IAFCADcCMCAAQThqIAFBOGoQyyEaIABBwgBqIAFBwgBqLQAAOgAAIAAgAS8BQDsBQCAAQcQAaiABQcQAahDLIRogAAsnAAJAIAAgAhC/FCICKAIEIgBFDQAgAigCACABIABBAXQQSxoLIAILJwACQCAAIAIQwBQiAigCBCIARQ0AIAIoAgAgASAAQQJ0EEsaCyACCycAAkAgACACEMEUIgIoAgQiAEUNACACKAIAIAEgAEECdBBLGgsgAgsnAAJAIAAgAhDCFCICKAIEIgBFDQAgAigCACABIABBA3QQSxoLIAILCwAgACABIAIQxiELCwAgACgCABBgIAALCwAgACgCABBgIAALJgAgACgCABBgIAAgASgCADYCACAAIAEoAgQ2AgQgAUIANwIAIAALJgAgACgCABBgIAAgASgCADYCACAAIAEoAgQ2AgQgAUIANwIAIAALTwAgACADNgIQQQAhAyAAQQA2AgwCQCABRQ0AIAEQ0yEhAwsgACADNgIAIAAgAyACQRxsaiICNgIIIAAgAyABQRxsajYCDCAAIAI2AgQgAAvaAQEGfyABKAIEIQIgACgCACEDIAAoAgQhBAJAA0AgBCADRg0BIARBZGoiBSgCACEGIAVBADYCACACQWRqIgcgBjYCACACQWhqIgIgBEFoaiIEKQIANwIAIAJBCGogBEEIaikCADcCACACQQ9qIARBD2opAAA3AAAgByECIAUhBAwACwALIAEgAjYCBCAAKAIAIQQgACACNgIAIAEgBDYCBCAAKAIEIQQgACABKAIINgIEIAEgBDYCCCAAKAIIIQQgACABKAIMNgIIIAEgBDYCDCABIAEoAgQ2AgALRgECfyAAKAIEIQECQANAIAAoAggiAiABRg0BIAAgAkFkaiICNgIIIAIQkwYaDAALAAsCQCAAKAIAIgJFDQAgAhCkAQsgAAs6AAJAIAJByqSSyQBJDQAQrAEACyABIABrQRxtIgFBAXQiACACIAAgAksbQcmkkskAIAFBpJLJJEkbCzMBAn8gACgCBCEBIAAoAgAhAgJAA0AgASACRg0BIAFBZGoQkwYhAQwACwALIAAgAjYCBAscAAJAA0AgACABTw0BIAAQjiFBDGohAAwACwALCxwAAkAgAEHKpJLJAEkNABCoBwALIABBHGwQpgELKwEBfwJAIAAoAgAiAUUNACAAIAE2AgQgARCkASAAQQA2AgggAEIANwIACwvxAQEFfwJAIAAgAUYNAAJAIAAoAgggACgCACICayABKAIEIgMgASgCACIEayIBSQ0AAkAgACgCBCIFIAJrIgYgAU8NACAEIAZqIQECQCAFIAJGDQAgAiAEIAYQiQEaIAAoAgQhBQsgAyABayEEAkAgAyABRg0AIAUgASAEEIkBGgsgACAFIARqNgIEIAAPCwJAIAMgBEYNACACIAQgARCJARoLIAAgAiABajYCBCAADwsgABDZISAAIAAoAgAgACgCCCABENohENghIAAoAgQhAgJAIAMgBEYNACACIAQgARCJARoLIAAgAiABajYCBAsgAAs2AQF/AkAgAUGAgICAAkkNABCsAQALIAAgARDNICICNgIEIAAgAjYCACAAIAIgAUEDdGo2AggLbAECfyAAIAEQ9BkiAEEANgIUIABCADcCDAJAIAEoAhAiAiABKAIMIgNGDQAgAEEMaiACIANrIgIQ2CEgACAAKAIQIAMgAhCJASACajYCEAsgACABKAIYNgIYIABBHGogAUEcai0AADoAACAACy8BAX8CQCABQX9KDQAQrAEACyAAIAEQpgEiAjYCBCAAIAI2AgAgACACIAFqNgIICysBAX8CQCAAKAIAIgFFDQAgACABNgIEIAEQpAEgAEEANgIIIABCADcCAAsLNAACQCACQX9KDQAQrAEACyABIABrIgFBAXQiACACIAAgAksbQf////8HIAFB/////wNJGwvSAQECfyAAIAEQnyEQ+EMhBAJAIAJFDQAgAiAELwAAIgFBCHQgAUEIdnJB//8DcSIBIAIoAgAiACABIABJGyIBNgIAIARBAmohACABIQUDQCABRQ0BIAAoAAAiAkEYdCACQYD+A3FB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CZQiCSAIkpI4AogBIAMgAykCiAE3AwggA0EcaiADQQhqENEiIAMgByALIBGSkjgChAEgAyAGIAkgDZKSOAKAASADIAMpAoABNwMAIANBHGogAxDRIiADQRxqENIiIANBHGpBABDTIiECIANBHGoQsgYaIAINAQtBACEACyADQZABaiQAIAALkAMBBX8jAEEgayICJAAgASgCACEDIAAgASgCBCIEsjgCICAAIAOyOAIcIAAgASgCDCAEayIEsjgCJCABKAIIIQEgACAENgIsIAAgASADayIBNgIoAkACQCABIARsIgMgACgCBCIBIAAoAgAiBWtBAnUiBE0NAAJAIAAoAggiBiABa0ECdSADIARrIgRJDQAgASAEQQJ0aiEDAkADQCABIANGDQEgAUEANgIAIAFBBGohAQwACwALIAAgATYCBCADIQEMAgsgAkEMaiAFIAYgAxDyDSAAKAIEIAAoAgBrQQJ1IABBCGoQ7g0iBSgCCCIBIARBAnRqIQMCQANAIAEgA0YNASABQQA2AgAgAUEEaiEBDAALAAsgBSABNgIIIAAgBRDvDSAFEPANGiAAKAIEIQEMAQsgAyAETw0AIAAgBSADQQJ0aiIBNgIECyABIAAoAgAiBGtBAnUhA0EAIQEDQAJAIAEgA0cNACAAQQE6ADAgAkEgaiQADwsgBCABQQJ0akEANgIAIAFBAWohAQwACwALRAACQCAALQAwDQAgABDSIgsgAEEAOgAwIAAgAiAAKgIgkyICOAIYIAAgASAAKgIckyIBOAIUIAAgAjgCECAAIAE4AgwLpwECA38EfSMAQSBrIgIkACAAKgIcIQUgASABKgIEIAAqAiCTIgY4AgQgASABKgIAIAWTIgU4AgAgACoCJCEHIAIgACoCFDgCGCAAKgIYIQggAiAGOAIUIAIgBTgCECACIAg4AhwgACgCKCEDIAAoAgAhBCACIAIpAhg3AwggAiACKQIQNwMAIAcgAkEIaiACIAQgAxD2IiAAIAEpAgA3AhQgAkEgaiQAC34CA38BfSMAQSBrIgEkACAAKgIkIQQgASAAKgIUOAIYIAEgACoCGDgCHCABIAAqAgw4AhAgASAAKgIQOAIUIAAoAighAiAAKAIAIQMgASABKQIYNwMIIAEgASkCEDcDACAEIAFBCGogASADIAIQ9iIgAEEBOgAwIAFBIGok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C0GmAyECDAQLQfUDIQIMAwtB5QQhAgwCC0H6ACECDAELQYABIQILIAAgAiAAKAIAKAIMEQIAIQMLIAMLQAECfyAAKAIUIQIgACgCECEAA38CQCAAIAJHDQBBAA8LIAAoAgAiAyABIAMoAgAoAiARAgAaIABBBGohAAwACwvVAgEHfwJAIAEoAgAgASgCBBC9EiIBDQBBAQ8LAkACQAJAAkAgASgCBCICKAI4IgEgAigCPCIDTw0AIAEgADYCACABQQRqIQAMAQsgASACKAI0IgRrQQJ1IgVBAWoiBkGAgICABE8NAUEAIQcCQCADIARrIgNBAXUiCCAGIAggBksbQf////8DIANB/P///wdJGyIGRQ0AIAZBgICAgARPDQMgBkECdBCmASEHCyAHIAVBAnRqIgUgADYCACAFIQACQANAIAEgBEYNASABQXxqIgEoAgAhAyABQQA2AgAgAEF8aiIAIAM2AgAMAAsACyACKAI0IQMgAiAANgI0IAIoAjghASACIAVBBGoiADYCOCACIAcgBkECdGo2AjwCQANAIAEgA0YNASABQXxqELYjIQEMAAsACyADRQ0AIAMQpAELIAIgADYCOEEADwsQrAEACxCoBwALKQEBfyAAKAIAIQEgAEEANgIAAkAgAUUNACABIAEoAgAoAgQRAQALIAALAgALKQEBfyAAKAIAIQEgAEEANgIAAkAgAUUNACABIAEoAgAoAgQRAQALIAALMQEBf0EBIQECQCAAQYsDRg0AIABBkQNGDQAgAEHlBkYNACAAQfgHRg0AQQAhAQsgAQs3AQF/QRwQpgEiAUEANgIYIAFCADcCECABQYS0EzYCACABQv////8PNwIEIAEgACgCDDYCDCABCwcAIAAQpAELTwECfyAAQdC0EzYCAAJAIAAoAhAiAUUNACAAKAIUIQICQANAIAIgAUYNASACQXxqEL0jIQIMAAsACyAAIAE2AhQgACgCEBCkAQsgABDGCgspAQF/IAAoAgAhASAAQQA2AgACQCABRQ0AIAEgASgCACgCBBEBAAsgAAsKACAAELwjEKQBCwQAQRoLBwAgAUEaRgsbAAJAIAFBNUcNACAAIAIQogo2AgwLIAFBNUYLRgECfyAAKAIUIQIgACgCECEAA0ACQCAAIAJHDQBBAA8LIAAoAgAhAyAAQQRqIQAgAyABIAMoAgAo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OAKAAUEBDwsgACACELsKOAKEAUEBDwsgACACELsKOAKIAUEBDwsgACACELsKOAKMAUEBDwsgACACELsKOAKQAUEBDwsgACACELsKOAKUAUEBDwsgACACELsKOAKYAUEBDwsgACACELsKOAKcAUEBDwsgACACEKIKNgKgAUEBDwsgACACELsKOAKkAUEBDwsgACACEKIKOgCpAUEBDwsgACACEKIKOgCqAUEBDwsgACACEKIKOgCrAUEBDwsgACACEKIKOgCsAUEBDwsgACACEKIKOgCtAUEBDwsgACACEKIKOgCuAUEBDwsgACACEKIKOgCvAUEBDwsgACACEKIKOgCwAUEBDwsgACACEKIKOgCxAUEBDwsgACACEKIKOgCyAUEBDwsgACACEKIKOgCzAUEBDwsgACACEKIKOgC0AUEBDwsgACACEKIKOgC1AUEBDwsgACACEKIKOgC2AUEBDwsgACACEKIKOgC3AUEBDwsgACACENoKOgC4AUEBDwsgACACEKIKOgC5AUEBDwsgACACEKIKOgC6AUEBDwsgACACEKIKOgC7AUEBDwsgACACEKIKOgC8AUEBDwsgACACEKIKOgC9AUEBDwsgACACEKIKOgC+AUEBDwsgACACEKIKOgC/AUEBDwsgACACEKIKOgDAAUEBDwsgACACEKIKOgDBAUEBDwsgACACEKIKOgDCAUEBDwsgACACEKIKOgDDAUEBDwsgACACEKIKOgDEAUEBDwsgACACEKIKOgDFAUEBDwsgACACEKIKOgDGAUEBDwsgACACEKIKOgDHAUEBDwsgACACEKIKOgDIAUEBDwsgACACEKIKOgDJAUEBDwsgACACEKIKOgDKAUEBDwsgACACEKIKOgDLAUEBDwsgACACEKIKOgDMAUEBDwsgACACEKIKOgDNAUEBDwsgACACEKIKOgDOAUEBDwsgACACEKIKOgDPAUEBDwsgACACEKIKOgDQAUEBDwsgACACENoKOgDRAUEBDwsgACACELsKOALUAUEBDwsgACACELsKOALYAUEBDwsgACACELsKOALcAUEBDwsgACACELsKOALgAUEBDwsgAUHBBUYNAQsgACABIAIQvgoPCyAAIAIQogo6AKgBQQELAgALAgALAgALAgALAgAL9AYBAX9B6AEQpgEQgxMiASAAKgI0OAI0IAEgACoCODgCOCABIAAqAjw4AjwgASAAKgJAOAJAIAEgACoCRDgCRCABIAAqAkg4AkggASAAKgJMOAJMIAEgACoCUDgCUCABIAAqAlQ4AlQgASAAKgJYOAJYIAEgACoCXDgCXCABIAAqAmA4AmAgASAAKgJkOAJkIAEgACoCaDgCaCABIAAqAmw4AmwgASAAKgJwOAJwIAEgACoCdDgCdCABIAAqAng4AnggASAAKgJ8OAJ8IAEgACoCgAE4AoABIAEgACoChAE4AoQBIAEgACoCiAE4AogBIAEgACoCjAE4AowBIAEgACoCkAE4ApABIAEgACoClAE4ApQBIAEgACoCmAE4ApgBIAEgACoCnAE4ApwBIAEgACgCoAE2AqABIAEgACoCpAE4AqQBIAEgAC0AqAE6AKgBIAEgAC0AqQE6AKkBIAEgAC0AqgE6AKoBIAEgAC0AqwE6AKsBIAEgAC0ArAE6AKwBIAEgAC0ArQE6AK0BIAEgAC0ArgE6AK4BIAEgAC0ArwE6AK8BIAEgAC0AsAE6ALABIAEgAC0AsQE6ALEBIAEgAC0AsgE6ALIBIAEgAC0AswE6ALMBIAEgAC0AtAE6ALQBIAEgAC0AtQE6ALUBIAEgAC0AtgE6ALYBIAEgAC0AtwE6ALcBIAEgAC0AuAE6ALgBIAEgAC0AuQE6ALkBIAEgAC0AugE6ALoBIAEgAC0AuwE6ALsBIAEgAC0AvAE6ALwBIAEgAC0AvQE6AL0BIAEgAC0AvgE6AL4BIAEgAC0AvwE6AL8BIAEgAC0AwAE6AMABIAEgAC0AwQE6AMEBIAEgAC0AwgE6AMIBIAEgAC0AwwE6AMMBIAEgAC0AxAE6AMQBIAEgAC0AxQE6AMUBIAEgAC0AxgE6AMYBIAEgAC0AxwE6AMcBIAEgAC0AyAE6AMgBIAEgAC0AyQE6AMkBIAEgAC0AygE6AMoBIAEgAC0AywE6AMsBIAEgAC0AzAE6AMwBIAEgAC0AzQE6AM0BIAEgAC0AzgE6AM4BIAEgAC0AzwE6AM8BIAEgAC0A0AE6ANABIAEgAC0A0QE6ANEBIAEgACoC1AE4AtQBIAEgACoC2AE4AtgBIAEgACoC3AE4AtwBIAEgACoC4AE4AuABIAEgABDfCyABCzMBAn8gAEGAxBM2AgACQCAAKAI0IgFFDQAgAEE0aiICIAEQwiUgAigCABCkAQsg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IAggAiAJIAggAEECdGoQ9yUgAEF/aiEADAALAAsgCCAIQQRqIAcgAhD4JQwCCyAIIAlBAXZBAnQiC2ohAAJAAkAgCUGBAUkNACAIIAAgByACEPglIAhBBGoiDSAAQXxqIgwgBiACEPglIAhBCGogDSALaiILIAUgAhD4JSAMIAAgCyACEPglIAgoAgAhCyAIIAAoAgA2AgAgACALNgIADAELIAAgCCAHIAIQ+CULIANBf2ohAwJAIARBAXEiDg0AIAhBfGooAgAgCCgCACACKAIAEQIADQAgCCELIAghAAJAAkAgCCgCACINIAcoAgAgAigCABECAEUNAANAIAsoAgQhDCALQQRqIgAhCyANIAwgAigCABECAEUNAAwCCwALA0AgAEEEaiIAIAFPDQEgDSAAKAIAIAIoAgARAgBFDQALCyABIQsCQCAAIAFPDQADQCANIAtBfGoiCygCACACKAIAEQIADQALCwJAA0AgACALTw0BIAAoAgAhDCAAIAsoAgA2AgAgCyAMNgIAA0AgACgCBCEMIABBBGoiCiEAIA0gDCACKAIAEQIARQ0ACwNAIA0gC0F8aiILKAIAIAIoAgARAgANAAsgCiEADAALAAsCQCAAQXxqIgsgCEYNACAIIAsoAgA2AgALIAsgDTYCAEEAIQQgACEIDAELCyAIKAIAIQ0gCCEJA0AgCSIAQQRqIQkgACgCBCANIAIoAgARAgANAAsgASEHAkACQCAAIAhHDQADQCAJIAdPDQIgB0F8aiIHKAIAIA0gAigCABECAEUNAAwCCwALA0AgB0F8aiIHKAIAIA0gAigCABECAEUNAAsLIAchCyAJIQACQANAIAAgC08NASAAKAIAIQwgACALKAIANgIAIAsgDDYCAANAIAAoAgQhDCAAQQRqIgohACAMIA0gAigCABECAA0ACwNAIAtBfGoiCygCACANIAIoAgARAgBFDQALIAohAAwACwALAkAgAEF8aiILIAhGDQAgCCALKAIANgIACyALIA02AgACQCAJIAdJDQAgCCALIAIQ+SUhDQJAIAAgASACEPklRQ0AIAshASAIIQAgDUUNAwwCCyANDQILIAggCyACIAMgDhD0JUEAIQQMAQsLC5kBAQF/IAAgASACIAQQ+CUCQCADKAIAIAIoAgAgBCgCABECAEUNACACKAIAIQUgAiADKAIANgIAIAMgBTYCACACKAIAIAEoAgAgBCgCABECAEUNACABKAIAIQMgASACKAIANgIAIAIgAzYCACABKAIAIAAoAgAgBCgCABECAEUNACAAKAIAIQIgACABKAIANgIAIAEgAjYCAAsLyAEBAX8gACABIAIgAyAFEPUlAkAgBCgCACADKAIAIAUoAgARAgBFDQAgAygCACEGIAMgBCgCADYCACAEIAY2AgAgAygCACACKAIAIAUoAgARAgBFDQAgAigCACEEIAIgAygCADYCACADIAQ2AgAgAigCACABKAIAIAUoAgARAgBFDQAgASgCACEDIAEgAigCADYCACACIAM2AgAgASgCACAAKAIAIAUoAgARAgBFDQAgACgCACEDIAAgASgCADYCACABIAM2AgALC4oCAQZ/AkAgAkECSA0AIAJBfmpBAXYiBCADIABrIgVBAnVIDQAgACAFQQF1IgZBAWoiB0ECdGohBQJAIAZBAmoiBiACTg0AIAYgByAFKAIAIAUoAgQgASgCABECACIIGyEHIAVBBGogBSAIGyEFCyAFKAIAIAMoAgAgASgCABECAA0AIAMoAgAhCAJAA0AgAyAFIgYoAgA2AgAgBCAHSA0BIAAgB0EBdCIDQQFyIgdBAnRqIQUCQCADQQJqIgMgAk4NACADIAcgBSgCACAFKAIEIAEoAgARAgAiCRshByAFQQRqIAUgCRshBQsgBiEDIAUoAgAgCCABKAIAEQIARQ0ACwsgBiAINgIACwvdAQECfyABKAIAIAAoAgAgAygCABECACEEIAIoAgAgASgCACADKAIAEQIAIQUCQAJAIAQNACAFRQ0BIAEoAgAhBCABIAIoAgA2AgAgAiAENgIAIAEoAgAgACgCACADKAIAEQIARQ0BIAAoAgAhAyAAIAEoAgA2AgAgASADNgIADwsgACgCACEEAkAgBUUNACAAIAIoAgA2AgAgAiAENgIADwsgACABKAIANgIAIAEgBDYCACACKAIAIAQgAygCABECAEUNACABKAIAIQAgASACKAIANgIAIAIgADYCAAsL2AIBB39BASEDAkACQAJAAkACQAJAIAEgAGtBAnUOBgUFAAQBAgMLIAFBfGoiBCgCACAAKAIAIAIoAgARAgBFDQQgACgCACEFIAAgBCgCADYCACAEIAU2AgBBAQ8LIAAgAEEEaiAAQQhq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KAIAIQMCQAJAAkAgACgCGA4CAAECCyABQQAgAygCVBEDAA8LIAFBASADKAJUEQMADwsgASABIAMoAlARAABBAXMgASgCACgCVBEDAA8LIAEgACgCECABKAIAKAI4EQIAIgFFDQAgAS0ADCEDAkACQAJAIAAoAhgOAgABAgsgA0H/AXFFDQIgAUEAOgAMIAEoAgRBAToArAEPCyADQf8BcQ0BIAFBAToADCABKAIEQQE6AKwBDwsgA0H/AXEgA0F/c0EBcSIARg0AIAEgADoADCABKAIEQQE6AKwBCwsKACAAEMYKEKQBCwUAQfUACx0AIAFBjH9qIgFB//8DcUEKSUGDBCABQf8HcXZxCyMAAkAgAUHkAUcNACAAIAIQogo2AhhBAQ8LIAAgASACENQmCzsAAkACQCABQZADRg0AIAFB4wFHDQEgACACEKIKNgIQQQEPCyAAIAIQogo2AhRBAQ8LIAAgASACEO4eCwIACwIACwIAC0cBAX9BHBCmASIBQezNEzYCACABQv////8PNwIEIAEgACgCGDYCGCABIAAoAhA2AhAgASAAKAIUNgIUIAEgACgCDDYCDCABC0sBAX8CQCABKAIIIgMgACgCECADKAIAKAKkAxECACIARQ0AIABBgAEgACgCACgCDBECAEUNACABIABDAAAAACABKAIAKAJQEQ4ACwsKACAAEMYKEKQBCwUAQagBCw8AIAFBqAFGIAFB/QBGcgsjAAJAIAFBhQNHDQAgACACEKIKNgIQQQEPCyAAIAEgAhDuHgsCAAszAQF/QRQQpgEiAUG4zhM2AgAgAUL/////DzcCBCABIAAoAhA2AhAgASAAKAIMNgIMIAELCgAgABCOGhCkAQsOACAAIAEQlhpBADYCBAsVACAAIAEQlhpBAzYCBCAAQQE6AAQLaAECf0EAIQICQCAAKAIIIgNBACADKAIAKAIwEQIADQAgACgCCCIDQQEgAygCACgCMBECAA0AIAAoAggiA0EEIAMoAgAoAjARAgANACAAKAIIIgBBDCAAKAIAKAIwEQIAQQFzIQILIAILTwECf0EBIQICQCAAKAIIIgNBAiADKAIAKAIwEQIADQAgACgCCCIDQQYgAygCACgCMBECAA0AIAAoAggiAEEMIAAoAgAoAjARAgAhAgsgAgtPAQJ/QQEhAgJAIAAoAggiA0EDIAMo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IgQQmA8iBUUNACADIAQQ6w4iA0UNAAJAAkAgAygCBCICIAAoAhQgAigCACgCpAMRAgAiA0UNAEECIQIgACADIAAoAgAoAjwRAgANAQwCC0ECIQJBACEDAkAgBSgCBCIEKAIoIAQoAiQiBGtBAnUgACgCECIFTQ0AIAQgBUECdGooAgAhAwsgACADIAAoAgAoAjgRAgBFDQELIAAgARDBJiECCyACC9UCAQd/AkAgASgCACABKAIEEMImIgENAEEBDwsCQAJAAkACQCABKAIEIgIoAiwiASACKAIwIgNPDQAgASAANgIAIAFBBGohAAwBCyABIAIoAigiBGtBAnUiBUEBaiIGQYCAgIAETw0BQQAhBwJAIAMgBGsiA0EBdSIIIAYgCCAGSxtB/////wMgA0H8////B0kbIgZFDQAgBkGAgICABE8NAyAGQQJ0EKYBIQcLIAcgBUECdGoiBSAANgIAIAUhAAJAA0AgASAERg0BIAFBfGoiASgCACEDIAFBADYCACAAQXxqIgAgAzYCAAwACwALIAIoAighAyACIAA2AiggAigCLCEBIAIgBUEEaiIANgIsIAIgByAGQQJ0ajYCMAJAA0AgASADRg0BIAFBfGoQ+yYhAQwACwALIANFDQAgAxCkAQsgAiAANgIsQQAPCxCsAQALEKgHAAspAQF/IAAoAgAhASAAQQA2AgACQCABRQ0AIAEgASgCACgCBBEBAAsgAAsKACAAEMYKEKQBCwUAQZIFCwgAIAFBkgVGCykBAX9BEBCmASIBQaDPEzYCACABQv////8PNwIEIAEgACgCDDYCDCABCzMBAX9BFBCmASIBQdTPEzYCACABQv////8PNwIEIAEgACgCEDYCECABIAAoAgw2AgwgAQs3AQF/QRwQpgEiAUEANgIYIAFCADcCECABQYzQEzYCACABQv////8PNwIEIAEgACgCDDYCDCABCwcAIAAQpAELBABBAAs3AQF/QRwQpgEiAUEANgIYIAFCADcCECABQdjQEzYCACABQv////8PNwIEIAEgACgCDDYCDCABCwcAIAAQpAELBABBAAs3AQF/QRwQpgEiAUEANgIYIAFCADcCECABQaTREzYCACABQv////8PNwIEIAEgACgCDDYCDCABCwcAIAAQpAELBABBAAspAQF/QRAQpgEiAUHw0RM2AgAgAUL/////DzcCBCABIAAoAgw2AgwgAQsUACAAQRBqIAEoAgAgASgCBBD8EAsPACAAQRBqIAEoAhAQ+hALIwEBfwJAIAAoAhAiAUUNACABIAEoAgAoAgQRAQALIAAQxgoLCgAgABCNJxCkAQsFAEGUBQsOACABQe56akH9/wNxRQtcAQF/IwBBEGsiAyQAAkACQCABQcMHRw0AIANBCGogAhD/DyAAKAIAKAIsIQEgAyADKQIINwMAIAAgAyABEQMAQQEhAQwBCyAAIAEgAhCjFiEBCyADQRBqJAAgAQsCAAs3AQF/QRQQpgEiAUEANgIQIAFC/////w83AgQgAUGk0hM2AgAgASAAEIwnIAEgACgCDDYCDCABCzwAIAEgAikDADcDACABQRhqIAJBGGooAgA2AgAgAUEQaiACQRBqKQMANwMAIAFBCGogAkEIaikDADcDAAscACABIAIoAgA2AgAgAUEEaiACQQRqLwEAOwEACywAIAEgAikDADcDACABQQhqIAJBCGoiASgCADYCACACQgA3AwAgAUEANgIACwwAIAEgAikDADcDAAsMACABIAIpAwA3AwALDAAgASACKAIANgIACwIACwoAIAEgAhCcJxoLRAAgACABKQMANwMAIABBCGogAUEIaikDADcDACAAQRBqIAFBEGoQoScaIABBHGogAUEcahChJxogACABLQAoOgAoIAALCgAgASACEJ4nGgslACAAIAEQnCciAEE4aiABQThqKAIANgIAIAAgASkDMDcDMCAACwwAIAEgAigCADYCAAsMACABIAIpAwA3AwALPgAgAEEANgIIIABCADcCACAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCABQQA2AgggAUIANwIAIAALPgEBfyMAQdAAayIDJAAgA0EEOgBIIAMgAjgCDCADIAE2AgggACADQQhqEOYmGiADQQhqEOcmIANB0ABqJAALlQIBBX8CQCAAIAFGDQACQCAAKAIIIgIgACgCACIDayABKAIEIgQgASgCACIFayIBSQ0AAkAgACgCBCICIANrIgYgAU8NACAFIAZqIQECQCACIANGDQAgAyAFIAYQiQEaIAAoAgQhAgsgBCABayEDAkAgBCABRg0AIAIgASADEIkBGgsgACACIANqNgIEIAAPCwJAIAQgBUYNACADIAUgARCJARoL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AkYQsyggAhDaJyABENonQQELEAAgASABKAIAKAIEEQAAGgvuAgEFfyMAQRBrIgEkAAJAIABBAiABQQRqELQoRQ0AIAAQtSghAEEAIQICQCABKAIEQcEARw0AAkACQCAAKAIoIgJFDQAgACgCGEHwsX8gAhDLJxoMAQsCQAJAIAAoAhwiAkUNACACIABBIGoQqAwgACgCGCEDAkAgACgCHCgCaCICRQ0AIAIgAigCREEBajYCRAsgA0EkQRkQxCchBCAAKAIYIQUCQCAAKAIkIgNFDQAgAyADKAIYQQFqNgIYCyABIAI2AgggASADNgIMIAQgBSADIAFBCGoQxScaIAIQ2icgAUEMahDAJxoMAQsgACgCGEEkQRkQxCchAyAAKAIYIQQCQCAAKAIkIgJFDQAgAiACKAIYQQFqNgIYCyABQQA2AgggASACNgIMIAMgBCACIAFBCGoQxScaIAFBDGoQwCcaCyAAIAAoAhhBfxDwJzYCKAtBASECCyABQRBqJAAgAg8LIABBAkHArhEQtigAC7MBAQR/IwBBEGsiASQAAkAgAEECIAFBCGoQtChFDQAgABC1KCECAkAgASgCCEHBAEcNACAAQQMQryghAyACKAIcIgBFDQAgAEG8AyAAKAIAKAIMEQIARQ0AIAIoAhwiAigCbCEEAkAgAygCCCIARQ0AIAAgACgCREECajYCRAsgASAANgIMIAQgAiABQQxqELcoIAAQ2icgABDaJwsgAUEQaiQAQQAPCyAAQQJBwK4RELYoAAuSAQEDfyMAQSBrIgEkAAJAAkAgACABQRxqELEoIgJFDQAgABC1KCEDIAFBADoAGyAAIAMgASgCHCABQRtqELgoIQMgAS0AG0EBRg0BIAFBIGokACADDwsgAUGkpRE2AgQgAUEANgIAIABB8IoRIAEQsigACyABQaSlETYCFCABIAI2AhAgAEHwihEgAUEQahCyKAALEAAgASABKAIAKAIEEQAAGguGAQICfwF8IwBBEGsiASQAAkAgAEECIAFBDGoQtChFDQAgABC5KCECQQAhAAJAIAEoAgxBwQBHDQAgAigCGCEAAkACQCACKAIcIgINAEQAAAAAAAAAACEDDAELIAIqAmC7IQMLIAAgAxC6KEEBIQALIAFBEGokACAADwsgAEECQcCuERC2KAALZwICfwF8IwBBEGsiASQAAkAgAEECIAFBDGoQtChFDQAgABC5KCECAkAgASgCDEHBAEcNACAAQQMQuyghAyACKAIcIgBFDQAgACADthC2DwsgAUEQaiQAQQAPCyAAQQJBwK4RELYoAAuQAgEEfyMAQSBrIgEkAAJAAkACQCAAIAFBHGoQsSgiAkUNAEHP5xEhAwJAAkACQAJAAkACQAJAIAAQvCgiBEFlag4HCQYEAAECAwULQe6NESEDDAgLQceuESEDDAcLQfroESEDDAYLQevoESEDDAULQaLzECEDDAQLIARBP0YNAiAAQQFB2ugQELYoAAtBxpERIQMMAgsgAUHa6BA2AgQgAUEANgIAIABB8IoRIAEQsigAC0Hu6REhAwsgAEEBEL0nIQQgAUEAOgAbIAAgBCABKAIcIAFBG2oQuCghBAJAIAEtABtBAUYNACABQSBqJAAgBA8LIAEgAzYCFCABIAI2AhAgAEHwihEgAUEQahCyKAALNgEBfAJAAkAgACgCHCIADQBEAAAAAAAAAAAhAgwBCyAAKgJguyECCyABQQM2AgwgASACOQMAC28AAkBBAC0A3KMeQQFHDQACQCAAKAIQIAFBAnRqQZDfAGoiASgCAA0AIAEgAEEAQQEQmUs2AgALIAAgAiACEFkQkEsiAiACLQABQQhyOgABIAAgASgCACACEKhLIgBCgICAgCA3AwggACADNgIACwsQACABIAEoAgAoAgQRAAAaC3wBAn8jAEEQayIBJAACQCAAQQIgAUEMahC0KEUNACAAEL0oIQJBACEAAkAgASgCDEHBAEcNACACKAIYIQACQAJAIAIoAhwiAg0AQQAhAgwBCyACKAJgIQILIAAgAhC+KEEBIQALIAFBEGokACAADwsgAEECQcCuERC2KAALZAECfyMAQRBrIgEkAAJAIABBAiABQQxqELQoRQ0AIAAQvSghAgJAIAEoAgxBwQBHDQAgAEEDEL8oIQAgAigCHCICRQ0AIAIgABCuEAsgAUEQaiQAQQAPCyAAQQJBwK4RELYoAAs2AQF8AkACQCAAKAIcIgANAEQAAAAAAAAAACECDAELIAAoAmC4IQILIAFBAzYCDCABIAI5AwALEAAgASABKAIAKAIEEQAAGguNAQEDfyMAQRBrIgEkAAJAIABBAiABQQxqELQoRQ0AIAAQwCghAkEAIQACQCABKAIMQcEARw0AIAIoAhghAwJAAkAgAigCHCIARQ0AIAMgACgCYCAAQeAAaiAALABrQQBIGxCcEgwBCyADQeeNEhCcEgtBASEACyABQRBqJAAgAA8LIABBAkHArhEQtigAC4cBAQN/IwBBIGsiASQAAkAgAEECIAFBEGoQtChFDQAgABDAKCECAkAgASgCEEHBAEcNACABQQRqIABBA0EAELAoEJ4GIQACQCACKAIcIgJFDQAgAiABQRRqIAAQ5wUiAxCsECADEIIGGgsgABCCBhoLIAFBIGokAEEADwsgAEECQcCuERC2KAALEAAgASABKAIAKAIEEQAAGgt8AQJ/IwBBEGsiASQAAkAgAEECIAFBDGoQtChFDQAgABDBKCECQQAhAAJAIAEoAgxBwQBHDQAgAigCGCEAAkACQCACKAIcIgINAEEAIQIMAQsgAi0AYCECCyAAIAIQsyhBASEACyABQRBqJAAgAA8LIABBAkHArhEQtigAC2UBAn8jAEEQayIBJAACQCAAQQIgAUEMahC0KEUNACAAEMEoIQICQCABKAIMQcEARw0AIAAQwighACACKAIcIgJFDQAgAiAAQQBHELAQCyABQRBqJABBAA8LIABBAkHArhEQtigACywAAkACQCAAKAIcIgANAEEAIQAMAQsgAC0AYCEACyABQQE2AgwgASAANgIACxAAIAEgASgCACgCBBEAABoL7wEBBH8jAEEQayIBJAACQAJAAkACQCAAQQIgARC0KEUNACAAEMMoIQJBACEAIAEoAgBBwQBHDQMCQCACKAIcIgNFDQAgAygCSCIARQ0AIAAgACgCACgCNBEAAEUNACABQQRqIAAgACgCACgCNBEAAEEQahD+JyEAIAMoAmAiAyAAKAIEIAAoAgAiBGtBAnVJDQIgABDxBhoLIAIoAhhB540SEJwSDAILIABBAkHArhEQtigACyACKAIYIAQgA0ECdGooAgAiAigCDCACQQxqIAIsABdBAEgbEJwSIAAQ8QYaC0EBIQALIAFBEGokACAAC4cBAQN/IwBBIGsiASQAAkAgAEECIAFBEGoQtChFDQAgABDDKCECAkAgASgCEEHBAEcNACABQQRqIABBA0EAELAoEJ4GIQACQCACKAIcIgJFDQAgAiABQRRqIAAQ5wUiAxDEKCADEIIGGgsgABCCBhoLIAFBIGokAEEADwsgAEEC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ArQBNwIIIABCADcCAAusBQMDfwR9AX4jAEHgAmsiAiQAIAAgARD9CwJAIAFBgMEAcUUNACACQdABakEAKQOwnxU3AwAgAkHIAWpBACkDqJ8VNwMAIAJBACkDoJ8VNwPAAQJAAkAgAEHEAGoiASACQcABahD9BUUNACAAKgK4ASIFQwAAAABfDQAgACoCtAEiBkMAAAAAX0UNAQsgAkHY2RM2AtgBIAIgAkHYAWo2AugBIAJB2AFqIABBgAJqEJkpIAJB2AFqEJopGgwBCyAAKgLAASEHIAAqArwBIQggAkG0AWogAEHIAWoiAyAGEJspIAJBqAFqIABB1AFqIgQgBRCbKSACQZwBaiADIAYQnCkgAkGQAWogBCAFEJwpIAJBhAFqIAIoApwBIAIoAqABIAYgCCAGlSIIixCdKSACQfgAaiACKAKQASACKAKUASAGIAcgBZUiBYsQnSkgAiAANgIMIAJBGGogAUEIaikCADcCACACQSBqIAFBEGopAgA3AgAgASkCACEJIAJBMGogAkHAAWpBCGopAwA3AgAgAkE4aiACQcABakEQaikDADcCACACIAk3AhAgAiACKQPAATcCKCACIAU4AkQgAiAIOAJAIAJByABqIAJBtAFqEKMaGiACQdwAaiACQYQBakEIaigCADYCACACIAIpAoQBNwJUIAJB4ABqIAJBqAFqEKMaGiACQfQAaiACQfgAakEIaigCADYCACACIAIpAng3AmwgAkHYAWogAkEMahCeKSEBQfAAEKYBIgNB/NkTNgIAIANBBGogARCeKRogAiADNgLYAiACQcgCaiAAQYACahCZKSACQcgCahCaKRogARCfKRogAkEMahCfKRogAkGQAWoQygcaIAJBnAFqEMoHGiACQagBahDKBxogAkG0AWoQygcaCyACQeACaiQAC78CAQN/IwBBEGsiAiQAAkAgASAARg0AIAEoAhAhAwJAIAAoAhAiBCAARw0AAkAgAyABRw0AIAQgAiAEKAIAKAIMEQMAIAAoAhAiAyADKAIAKAIQEQEAIABBADYCECABKAIQIgMgACADKAIAKAIMEQMAIAEoAhAiAyADKAIAKAIQEQEAIAFBADYCECAAIAA2AhAgAiABIAIoAgAoAgwRAwAgAiACKAIAKAIQEQEAIAEgATYCEAwCCyAEIAEgBCgCACgCDBEDACAA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KAIAIQIgAEEEaiEAIAJBtQMgAigCACgCDBECAEUNAAsgAgs6AQF/AkAgACgCoAINAEEADwtBACEBAkAgAEEAIAAoAgAoAswCEQIARQ0AQQEhASAAQQE6AKkCCyABC0ABAX8gAEHwAWogASgCACABKAIEEPsQAkAgASgCACABKAIEEPkIIgINAEEBDwsgAiAAQfQBahDIDiAAIAEQ+ggLMQEBfwJAIAAgARD7CyICRQ0AIABBACAAKAIAKALMAhECACIARQ0AIAAgARDFCwsgAgtwAQF/IAAgARD9CwJAIAAoAvgBRQ0AAkAgAUGAAXFFDQAgACgCgAIiAkUNACACQcwNaigCACACQdANaigCABC8CwsCQCABQYACcUUNACAAKAL4ASAAKgKEARD+CwsgAUEEcUUNACAAKAL4ARClCxoLC1YAAkAgAC0AzAFBAUcNACABIAEoAgAoAggRAQALIAEgAEHEAGogASgCACgCEBEDACAAKAL4ASABELgJAkAgAC0AzAFBAUcNACABIAEoAgAoAgwRAQALC+ABAgF/BH0jAEHQAGsiAyQAAkACQCAAKAL4AQ0AQQAhAAwBCyADIAA2AjggAUEQaiADQThqEP4KIANBIGogAiAAQcQAahD+BSAAKAL4ASIAKgLQASEEIAAqAsQKIQUgACoC1AEhBiAAKgLICiEHIANCgICAgICAgMA/NwIQIANCgICA/AM3AgggAyAGIAeMlDgCHCADIAQgBYyUOAIYIANBOGogA0EgaiADQQhqEP4FIAAgASADQThqIAAoAgAoAvABEQQAIgANACABIAEoAhRBfGo2AhQLIANB0ABqJAAgAAsdACAAIAAoAgAoAvQBEQAAQX9zIAAoAvgBQQBHcQsVACAAQfABaiABKAIAIAEoAgQQ/BALEQAgAEHwAWogASgC8AEQ+hALAgALAgALAgALAgALAgALAgALkAgBBX8jAEEgayICJAAgACAAKAIAKALkAhEBACAAKAKMAiEDIAAoAogCIQQCQANAIAQgA0YNASAEKAIAIgUgBSgCACgCWBEBACAEQQRqIQQMAAsACyAAIAAoAogCNgKMAiAAKAKEAiEEIABBADYChAICQCAERQ0AIAQgBCgCACgCBBEBAAsCQAJAIAFFDQACQCABKAJkIgRFDQAgBCAEKAIAQQFqNgIAIAIgBDYCHCACQRxqEIUGGgwBCyACQQA2AhwgASgCYCEEIAJBHGoQhQYaIARBf0cNAAJAIAAoAvgBIgRFDQAgBEEANgLEDSAEQQE6AKAKIABBADYC+AELIAAoAoACIQQgAEEANgKAAgJAIARFDQAgBCAEKAIAKAIEEQEACyAAQQBBABCPKgwBCyABIAAgACgCACgC+AIRAAAgACgClAIQ2RAiBEUNACAEEIcGIQMCQCAEKAL0CyAEKALwC0YNAEHUABCmARCdEyIFQQAQ2A8gBSADIAUoAgAoAlQRAwAgACAFEJAqIAAoAoQCIQYgACAFNgKEAiAGRQ0AIAYgBigCACgCBBEBAAsgACADIAAoAgAoAsACEQMAAkACQAJAAkAgAC0A4AFBAUcNAAJAIAAoAjQgACgCOBD+KSIFRQ0AIAUoAkAgBCgC0ApHDQAgACAFQQAQjyoMBAsCQCAALQCoAkEBRw0AIAAoAqACIgVFDQAgBSgCQCAEKALQCkYNBAsgACgClAIiBUUNASAFKAJUIAUoAlAiA2tBAnUgBCgC0AoiBE0NASADIARBAnRqKAIAIgRFDQEgAkEcaiAFIAQQ1gYgAigCHCEEDAILIABBAEEAEI8qDAILQQAhBAsgACAEIARBAEcQjyoCQCAERQ0AIAAoApQCIAQQlxgLQQAQkSoLAkACQCABKAJoIgRFDQACQCAEKAJEDQAgBCAEKAIAKAIEEQEACwJAIAEoAmgiBEUNACAEIAQoAkRBAWo2AkQLIAIgBDYCGAJAIAAoApwCIgRFDQAgBCAEKAIAQQFqNgIACyACIAQ2AhQgACACQRhqIAJBFGogACgCACgC2AIRBQAgAigCFBCSKiACKAIYEJEqDAELAkAgABD/KUUNACAAEJMqDAELIAAoApgCIQQCQCAAKAKcAiIFRQ0AIAQNACAFIAUoAgBBAWo2AgAgAiAFNgIQIAAgAkEQaiAAKAIAKALcAhEDACACKAIQEJIqDAELIARFDQAgBCAEKAJEQQFqNgJEIAIgBDYCDAJAIAAoApwCIgRFDQAgBCAEKAIAQQFqNgIACyACIAQ2AgggACACQQxqIAJBCGogACgCACgC2AIRBQAgAigCCBCSKiACKAIMEJEqCyAAQf7/A0EAEM0JGgsgAkEgaiQAC1sBAn8CQCAAKAKgAiIDIAFGDQACQCADRQ0AIAAtAKgCQQFxRQ0AIAMgAygCRCIEQX9qNgJEIARBAUcNACADIAMoAgAoAgQRAQALIAAgAjoAqAIgACABNgKgAgsLlwIBBn8CQAJAAkACQCAAKAKMAiICIAAoApACIgNPDQAgAiABNgIAIAJBBGohAgwBCyACIAAoAogCIgRrQQJ1IgVBAWoiBkGAgICABE8NAQJAAkAgAyAEayIDQQF1IgcgBiAHIAZLG0H/////AyADQfz///8HSRsiAw0AQQAhBgwBCyADQYCAgIAETw0DIANBAnQQpgEhBgsgBiAFQQJ0aiIFIAE2AgAgBSEBAkADQCACIARGDQEgAUF8aiIBIAJBfGoiAigCADYCAAwACwALIAAgBUEEaiICNgKMAiAAKAKIAiEEIAAgATYCiAIgACAGIANBAnRqNgKQAiAERQ0AIAQQpAELIAAgAjYCjAIPCxCsAQALEKgHAAsvAQF/AkAgAEUNACAAIAAoAkQiAUF/ajYCRCABQQFHDQAgACAAKAIAKAIEEQEACwsPAAJAIABFDQAgABD+CQsLVwEDfyMAQRBrIgEkACAAQQA6AKkCIAAoAqACIQICQCAAKAKcAiIDRQ0AIAMgAygCAEEBajYCAAsgASADNgIMIAAgAiABQQxqEJwqIAMQkiogAUEQaiQACwgAIAAoAtABC6kBAQF/IAAgATYC+AECQCABLQCYDUEBRw0AIAFBABDfAiAAKAL4ASAAKgKEARD+CyAAKAL4ASABKgLcDRDlAiAAKAKAAiECIABBADYCgAICQCACRQ0AIAIgAigCACgCBBEBAAsCQCABLQCYDUEBRw0AIAAoAoACIQIgACABNgKAAiACRQ0AIAIgAigCACgCBBEBAAsgACgC+AEgAEHsAWoQoQsLIAAQ/ykaCwQAQQELDwAgACAAKAIAKAIIEQAACwgAIAAoAoACC2YBAn0CQAJAIAEoAoACIgENAEMAAAAAIQZDAAAAACEHDAELIAEqAtQBIQcgASoC0AEhBgsgACAHIARD//9/fyAFGyIEIAcgBF0bOAIEIAAgBiACQ///f38gAxsiByAGIAddGzgCAAsCAAuIAQECfyMAQRBrIgMkACAAQZwCaiACEPsJGiAAQZgCaiABEPMGGgJAIABBACAAKAIAKALMAhECAEUNAAJAIAAoAqACIgQNACABKAIAIQQLAkAgAigCACICRQ0AIAIgAigCAEEBajYCAAsgAyACNgIMIAAgBCADQQxqEJwqIAIQkioLIANBEGokAAuBAgEDfyMAQRBrIgMkACAAQQAgACgCACgCzAIRAgAhBAJAIAFFDQAgASABKAJEQQFqNgJECyADIAE2AgwCQCACKAIAIgJFDQAgAiACKAIAQQFqNgIACyADIAI2AgggBCADQQxqIANBCGoQoQYgAhCSKiABEJEqIAAoAowCIQQgACgCiAIhAQJAA0AgASAERg0BAkAgASgCACICQd8AIAIoAgAoAgwRAgBFDQAgASgCACEFAkAgAEEAIAAoAgAoAswCEQIAKAKADSICRQ0AIAIgAigCAEEBajYCAAsgBUHEAGooAgAgAhCeKiACEJIqCyABQQRqIQEMAAsACyADQRBqJAALgAIBBH8jAEEQayICJAAgAEGcAmogARD7CRogAEGYAmpBABCLEQJAIABBACAAKAIAKALMAhECAEUNACAAEP8pDQAgAEEAIAAoAgAoAswCEQIAIQMCQCABKAIAIgRFDQAgBCAEKAIAQQFqNgIACyACIAQ2AgwgAyACQQxqEN0JIAIoAgwQkiogACgCjAIhAyAAKAKIAiEAA0AgACADRg0BAkAgACgCACIEQd8AIAQoAgAoAgwRAgBFDQAgACgCACEFAkAgASgCACIERQ0AIAQgBCgCAEEBajYCAAsgBUHEAGooAgAgBBCeKiAEEJIqCyAAQQRqIQAMAAsACyACQRBqJAALRwEBfyMAQRBrIgIkAAJAIABFDQACQCABRQ0AIAEgASgCAEEBajYCAAsgAiABNgIMIAAgAkEMahDbDSABEN4JCyACQRBqJAALiwIBBn8jAEEQayICJAAgAEGYAmogARDzBhoCQCAAQQAgACgCACgCzAIRAgAiA0UNACAALQDgAQ0AAkAgAygCgA0iAEUNACAAIAAoAgBBAWo2AgACQAJAAkAgACgCCCIEDQAgASgCACIBRQ0DDAELIAQgBCgCRCIFQQFqIgY2AkQgASgCACEHIAQgBTYCRAJAAkAgBkEBRw0AIAQgBCgCACgCBBEBACAEIAdHDQEMBAsgBCAHRg0DCyABKAIAIgENAEEAIQEMAQsgASABKAJEQQFqNgJECyACIAE2AgwgAEEIaiACQQxqEPMGGiABEJEqCyADIAMoAgAoArQDEQEAIAAQkioLIAJBEGokAAt+AQJ/AkAgAEEAIAAoAgAoAswCEQIARQ0AIABBACAAKAIAKALMAhECABDbCiAAKAKMAiEBIAAoAogCIQADQCAAIAFGDQECQCAAKAIAIgJB3wAgAigCACgCDBECAEUNACAAKAIAKAJEIgJFDQAgAhChKgsgAEEEaiEADAALAAsL2gEBA38jAEEQayIBJAACQCAAKAKMASICRQ0AIABBjAFqIQMCQAJAIAIoAggiAkUNACACIAIoAkRBAWo2AkQgASACNgIMIAFBDGoQowYaAkAgAygCACgCCCICRQ0AIAIgAigCREEBajYCRAsgASACNgIIIAIgAEEgahDyCiABQQhqEKMGGgwBCyABQQA2AgwgAUEMahCjBhoLIANBABD/CQsgACgC9AEhAiAAKALwASEAA0ACQCAAIAJHDQAgAUEQaiQADwsgACgCAEEQahC5NyAAQQRqIQAMAAsACysAAkAgAEEAIAAoAgAoAswCEQIARQ0AIABBACAAKAIAKALMAhECABDdCAsLQAACQCAAQQAgACgCACgCzAIRAgBFDQAgAC0A1AENACAAQQAgACgCACgCzAIRAgAiAEEBIAAoAgAoApgDEQMACwunAwIHfwJ9QQAhAwJAIAAoAvgBRQ0AIAAgACgCACgCQBEAAA0AIAAtANQBDQACQCAALQCpAkEBRw0AIAAQkyoLIAAqAtgBIgpDAACAPyAKQwAAAABgGyABlCEBAkACQAJAIAAqAtwBIgpDAAAAAGBFDQAgACABIAAqAqQCkiILOAKkAgJAIAtDAACAPyAKlSIBXg0AIAJBCHFFIQRDAAAAACEBDAILIAAgCyABIAsgAZWOlCIBkzgCpAILIAJBCHFFIQQgAUMAAAAAXA0BCyAEDQBBASEDIApDAAAAAGANAQtBACEFAkAgAkEBcUUNACAEQQFzIQYgACgCjAIhByAAKAKIAiEDQQAhBQNAIAMgB0YNASADKAIAIggoAgAhCQJAAkAgBEUNACAIQd8AIAkoAgwRAgBFDQEgCCgCRCIJRQ0BIAkQkQxFDQEgCCgCACEJCyAIIAEgBiAJKAJQERQAIAVyIQULIANBBGohAwwACwALIAAoAvgBIAEgAkH7/wNxEKcLIAVyIQMgACgC+AEtADBBBHFFDQAgAEEEQQAQzQkaCyADQQFxC0MBAX8CQCAAKAL4ASIBRQ0AIAEgASgCACgCrAMRAQALAkAgACgCoAIiAEUNACAAQcgAaigCACAAQcwAaigCABCTDAsLBwAgACgCKAuMAQIBfwV9IwBBEGsiBCQAIAEqAlQhBSABKgJEIQYgASoCTCEHIAQgASoCWCABKgJIIAIqAgAiCJQgAioCBCIJIAEqAlCUkpI4AgwgBCAFIAYgCJQgByAJlJKSOAIIAkACQCABKAIoIgFFDQAgACABIARBCGoQqQsMAQsgACAEKQMINwIACyAEQRBqJAALLgAgACABKQJENwIAIABBEGogAUHUAGopAgA3AgAgAEEIaiABQcwAaikCADcCAAuNAQMCfwV9AX4jAEEQayIEJAAgACgCICEFIAAqAlQhBiAAKgJMIQcgACoCRCEIIAQgACoCWCAAKgJIIAEpAgAiC6e+IgmUIAAqAlAgC0IgiKe+IgqUkpI4AgwgBCAGIAggCZQgByAKlJKSOAIIIAUgBEEIaiACQQAgBSgCACgCRBEHACEAIARBEGokACAACwcAIAAQqQkLCgAgACABNgKUAgsIACAAKAKUAgsEACAACwQAQQALBABBAAsEAEEACwIACwIACwcAIAAoAigLFQAgACABQZh/aiACIAMgBCAFEJkqCwIACw8AIABBnH5qIAEgAhCkKgsLACAAQZh+ahClKgsEAEEBCwcAIAAoAhQLDQAgAEGUfmogARCdKgsPACAAQZR+aiABIAIQmyoLCwAgAEGUfmoQoCoLCwAgAEGUfmoQoioLCwAgAEGUfmoQoyoLAgALCwAgAEG8fmooAgALEQAgAEGUfmogASACIAAQqSoLEQAgACABQZR+aiACIAEQpyoLMgAgACABQdh+aiIBKQIANwIAIABBEGogAUEQaikCADcCACAAQQhqIAFBCGopAgA3AgALCwAgAEGUfmoQqQkLBABBAAsJACAAIAE2AigLBwAgACgCKAsIACAAQZR+agsNACAAQZR+aiABEJ8qCxUAIABBlH5qIgAgACgCACgCCBEAAAsLACAAQYx+ahD2KQsLACAAQYx+ahD3KQsNACAAQYx+aiABEI4qCwoAIABBXGooAgALDQAgAEGMfmogARCVKgsLACAAQYR+ahD2KQsLACAAQYR+ahD3KQsLACAAQax+aigCAAsEAEEACwQAQQALBABBAAsCAAsCAAsEAEEACwQAQQELBABB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AAsaACAAQcjwEzYCACAAQcgAahCkKxogABDCCgspAQF/IAAoAgAhASAAQQA2AgACQCABRQ0AIAEgASgCACgCBBEBAAsgAAsDAAALBQBB4QALLAEBf0EBIQICQCABQXZqQQJJDQACQCABQaN/ag4FAQAAAAEAC0EAIQILIAILIwACQCABQcgBRw0AIAAgAhC7CjgCREEBDwsgACABIAIQqSsLIwACQCABQcYBRw0AIAAgAhCiCjYCQEEBDwsgACABIAIQvgoLAgALawEDf0EAIQICQCABKALoCyABKALkCyIDa0ECdSAAKAJAIgRNDQAgAyAEQQJ0aigCACECC0HQABCmASACIAFDAACAPxCrBiECIAAoAkghASAAIAI2AkgCQCABRQ0AIAEgASgCACgCBBEBAAsLAgALAgALBQBB3QALIwEBf0EBIQICQCABQXZqQQJJDQAgAUHdAEYNAEEAIQILIAILOwEBf0EAIQICQCAAIAEQ5w5FDQAgASAAKAIYIAEoAgAoAggRAgAiAUHcACABKAIAKAIMEQIAIQILIAILFgAgACABEOgOGiAAKAIgIAAQkCpBAAsDAAALNAIBfwF9AkAgABCgBiIBRQ0AIAEqAgwgACoCOCICWw0AIAEgAjgCDCABKAIEQQE6AKwBCwsrAAJAIAAQoAYiAEUNACAAKgIMIAFbDQAgACABOAIMIAAoAgRBAToArAELCxkAAkAgABCgBiIADQBDAAAAAA8LIAAqAgwLCgAgABDDChCkAQsFAEH8AAsrAQF/QQEhAgJAAkACQCABQYd/ag4EAgEBAgALIAFBCkYNAQtBACECCyACCyMAAkAgAUHvAUcNACAAIAIQuwo4AjhBAQ8LIAAgASACEJUWCwIACyUBAX9BPBCmAUEAQTwQSBCfEyIBIAAqAjg4AjggASAAEKErIAELMQEBfwJAIAAoAkgiAUUNACABIAEoAhwgASABKAIAKAIYEQsAIAAqAkyUENglELgDCwsWACAAIAEQqysgACAAKAIAKAJgEQEACysCAX8BfQJAIAAoAkgiA0UNACAAKgJEIgRDAAAAAFsNACADIAQQvwMLQQALCgAgABCjKxCkAQsFAEHiAAswAQF/AkACQCABQaN/aiICQQVLDQBBASACdEExcQ0BCyABQXZqQQJJDQBBAA8LQQELIwACQCABQcoBRw0A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fwF+IwBBIGsiAiQAIAJBEGpBCGogAEEIaiIDKQIANwMAIAIgACkCADcDEAJAAkACQAJAIAAoAgAgAygCAEcNACAAKAIEIAAoAgxGDQELIAAQ1ywMAQsgAEGAgID8ezYCwAQgABDYLCAAIABBCGogACgCBCAAKAIMSRspAgAhBwJAAkAgAUEBSA0AIAAoAowDIAAoAogDIgFrQQJ1QX9qIAdCIIinIgNNDQMgAEGIA2ogASADQQJ0aiIBIAEgACgCsAMgACgCtAMgAxDZLEECdGoQ2iwMAQsgB0KAgICAEFQNAiAAKAK0AyEEIAAoArADIQUCQAJAIAdCIIinQX9qIgFFDQACQCAEIAVrQQJ1IAFLDQAgASEDDAILIAUgAUECdGooAgAhBgNAIAEiA0UNASAFIANBf2oiAUECdGooAgAgBkYNAAwCCwALQQAhAwsgAEGIA2ogACgCiAMgA0ECdGoiASABIAUgBCADENksQQJ0ahDaLAsgACAALQCkBEELcjoApAQgACADrUIghkL/////D4QiBzcCCCAAIAc3AgALIAJBCGogAkEQakEIaikDADcDACACIAIpAxA3AwAgACACENssCyACQSBqJAALtAECA38CfiAAQYCAgPx7NgLABCAAKAIMIQEgACgCBCECAkACQCAAKAIAIAAoAghHDQAgAiABRg0BCyAAQYgDaiAAKAKIAyIDIAApAgAiBCAAKQIIIgUgAiABSSIBG0IgiKdBAnRqIAMgBSAEIAEbQiCIp0ECdGoQ2iwgACAALQCkBEELcjoApAQgACAAIABBCGogACgCBCAAKAIMSRspAgBC/////w+EIgQ3AgggACAENwIACwt+AQJ/AkAgAC0ApAQiAUEBcUUNACAAIAFB/gFxOgCkBCAAIAAoAowDIAAoAogDIgFrQQJ1IgI2AiAgAEGUA2ogASACIABBEGpBASAALQCtBCAAKgK0BCAAKgK4BCAALQCvBCAALQCwBCAALQCsBCAALQCuBCAAKgKoBBDcLAsLTQECfyABIABrQQJ1IQMgACACQQJ0aigCACEEQQEhAQJAA0AgAkEBaiICIANPDQEgACACQQJ0aigCACAERw0BIAFBAWohAQwACwALIAELQAECfwJAIAEgAkYNACAAKAIEIgMgASACIAFraiICayEEAkAgAyACRg0AIAEgAiAEEIkB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Tw0DIARBJGwQpgEhBgsgBiAFQSRsaiABEI8tIQUgACgCACEDIAAoAgQhAiAFIQECQANAIAIgA0YNASABQVxqIAJBXGoiAhCPLSEBDAALAAsgACgCACEDIAAgATYCACAAKAIEIQIgACAFQSRqIgE2AgQgACAGIARBJGxqNgIIAkADQCACIANGDQEgAkFsahD+LBogAkFcaiECDAALAAsgA0UNACADEKQBCyAAIAE2AgQPCxCsAQALEKgHAAtiACAAIAEpAgA3AgAgAEEIaiABQQhqKQIANwIAIABBADYCGCAAQgA3AhAgACABKAIQNgIQIAAgASgCFDYCFCAAIAEoAhg2AhggAUEANgIYIAFCADcCECAAIAEpAhw3AhwgAAsKACAAEK4kEKQBCwQAQQcLOAEBfwJAAkAgAUF5aiICQR9LDQBBASACdEG5goCAeHENAQsgAUECRg0AIAFB2wBGDQBBAA8LQQELdwACQAJAAkACQAJAIAFB335qDgQBAgMABAsgACACENoKOgCAAkEBDwsgACACELsKOAKIAkEBDwsgACACELsKOAKMAkEBDwsgACACELsKOAKQAkEBDwsCQCABQR9GDQAgACABIAIQ3hgPCyAAIAIQuwo4AoQCQQELAgALEgAgAEEBIAAoAgAoAvABEQMACxIAIABBASAAKAIAKALwAREDAAsSACAAQQEgACgCACgC8AERAwALEgAgAEEBIAAoAgAoAvABEQMAC1IBAX9B1AQQpgEQtxMiASAALQCAAjoAgAIgASAAKgKEAjgChAIgASAAKgKIAjgCiAIgASAAKgKMAjgCjAIgASAAKgKQAjgCkAIgASAAEOwYIAELFQAgACABEMAUIgEgASgCADYCCCABCyYBAX8gABCgLSABKAIAIQEgACAAKAIIIgJBBGo2AgggAiABNgIACzIAIAEgASgCCCABKAIAa0ECdRCfLSAAIAEoAgA2AgAgACABKAIENgIEIAFCADcCACAACxUAIAAgARDLISIAIAEoAgg2AgggAAsmAQF/IAAQoC0gASgCACEBIAAgACgCCCICQQRqNgIIIAIgATYCAAstAQF/AkAgACgCBCABRg0AIAAoAgAgAUECdBBhIQIgACABNgIEIAAgAjYCAAsLRwEDfwJAIAAoAggiASAAKAIAIgIgACgCBCIDQQJ0akcNACAAIANBAXQiA0EBIANBAUsbEJ8tIAAgACgCACABIAJrajYCCAsLgDkCD38CfSMAQaAhayIAJAAgAEG1qREQngYiAUEAOwEMIAFBEGpBltYREJ4GGiABQQE7ARwgAUEgakG00REQngYaIAFBAjsBLCABQTBqQcrLERCeBhogAUEDOwE8IAFBwABqQaTWERCeBhogAUEEOwFMIAFB0ABqQe70EBCeBhogAUEFOwFcIAFB4ABqQaaWERCeBhogAUEGOwFsIAFB8ABqQeaaERCeBhogAUEHOwF8IAFBgAFqQe2aERCeBhogAUEIOwGMASABQZABakH0mhEQngYaIAFBCTsBnAEgAUGgAWpB+5oREJ4GGiABQQo7AawBIAFBsAFqQaG5ERCeBhogAUELOwG8ASABQcABakGuvBEQngYaIAFBEDsBzAEgAUHQAWpBj/4QEJ4GGiABQQw7AdwBIAFB4AFqQffYERCeBhogAUENOwHsASABQfABakHZgxEQngYaIAFBDjsB/AEgAUGAAmpB0rsREJ4GGiABQQ87AYwCIAFBkAJqQcT0EBCeBhogAUESOwGcAiABQaACakGS6RAQngYaIAFBEzsBrAIgAUGwAmpBx6kREJ4GGiABQRQ7AbwCIAFBwAJqQaf8EBCeBhogAUEVOwHMAiABQdACakGrlxEQngYaIAFBFjsB3AIgAUHgAmpBzoAREJ4GGiABQRc7AewCIAFB8AJqQbqNERCeBhogAUEYOwH8AiABQYADakHylREQngYaIAFBGTsBjAMgAUGQA2pB2PMQEJ4GGiABQRo7AZwDIAFBoANqQfTAERCeBhogAUEbOwGsAyABQbADakGHoBEQngYaIAFBHDsBvAMgAUHAA2pB+JcREJ4GGiABQR07AcwDIAFB0ANqQbmDERCeBhogAUEeOwHcAyABQeADakHSyREQngYaIAFBHzsB7AMgAUHwA2pBtpEREJ4GGiABQSA7AfwDIAFBgARqQZb6EBCeBhogAUEhOwGMBCABQZAEakHojREQngYaIAFBIjsBnAQgAUGgBGpB08QREJ4GGiABQSM7AawEIAFBsARqQbGkERCeBhogAUEkOwG8BCABQcAEakHDjxEQngYaIAFBJTsBzAQgAUHQBGpBoM4REJ4GGiABQSY7AdwEIAFB4ARqQZSlERCeBhogAUEnOwHsBCABQfAEakHx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AkACQCABQQFIDQAgACgCDCABQQR0akFwaiIBQbC/HCABIAAoAghJGyEBDAELAkAgAUHxsX9IDQAgACgCCCABQQR0aiEBDAELIAAgARCqEiEBCwJAA0AgAUEQaiICIAAoAggiA08NASABIAIpAwA3AwAgAUEIaiACQQhqKQMANwMAIAIhAQwACwALIAAgA0FwajYCCAspAQF/IwBBEGsiASQAIAEgADYCDCABQQxqQQQQlAshACABQRBqJAAgAAsfAQF/IAAoAgAhAiAAIAE2AgACQCACRQ0AIAIQpAELCyEBAX8gACgCACEBIABBADYCAAJAIAFFDQAgARCkAQsgAAuiBAIIfwF9QQIhAgJAIAFBAUYNAAJAIAEgAUF/anENACABIQIMAQsgARD7CCECCwJAAkACQCACIAAoAgQiAUsNACACIAFPDQIgAUEDSSEDAkACQCAAKAIMsyAAKgIQlY0iCkMAAIBPXSAKQwAAAABgcUUNACAKqSEEDAELQQAhBAsCQAJAIAMNACABaUEBSw0AIARBAUEgIARBf2pna3QgBEECSRshBAwBCyAEEPsIIQQLIAIgBCACIARLGyICIAFPDQIgAkUNAQsCQCACQYCAgIAETw0AIAAgAkECdBCmARC0LSAAIAI2AgRBACEBA0ACQCABIAJHDQAgACgCCCIFRQ0EIABBCGohASAFKAIEIQYCQAJAIAJpIgRBAUsNACAGIAJBf2pxIQYMAQsgBiACSQ0AIAYgAnAhBgsgACgCACAGQQJ0aiABNgIAIAJBf2ohByAEQQFLIQgDQCAFKAIAIgRFDQUgBCgCBCEBAkACQCAIDQAgASAHcSEBDAELIAEgAkkNACABIAJwIQELAkAgASAGRg0AAkAgACgCACABQQJ0IgNqIgkoAgANACAJIAU2AgAgASEGDAELIAUgBCgCADYCACAEIAAoAgAgA2ooAgAoAgA2AgAgACgCACADaigCACAENgIADAELIAQhBQwACwALIAAoAgAgAUECdGpBADYCACABQQFqIQEMAAsACxCoBwALIABBABC0LSAAQQA2AgQLCzcBAX8gACgCACEBIABBADYCAAJAIAFFDQACQCAALQAIQQFHDQAgAUEIahCCBhoLIAEQpAELIAALHwEBfyAAKAIAIQIgACABNgIAAkAgAkUNACACEKQBCwsfAQF/IAAoAgAhAiAAIAE2AgACQCACRQ0AIAIQpAELCykBAX8jAEEQayIBJAAgASAANgIMIAFBDGpBBBCUCyEAIAFBEGokACAACyEBAX8gACgCACEBIABBADYCAAJAIAFFDQAgARCkAQsgAAsfAQF/IAAoAgAhAiAAIAE2AgACQCACRQ0AIAIQpAELC7MEAQp/IwBBEGsiAiQAAkAgAUUNACABELYtIQMgACgCECIERQ0AAkACQCAEaSIFQQFLDQAgBEF/aiADcSEGDAELIAMhBiADIARJDQAgAyAEcCEGCyAAKAIMIgcgBkECdGooAgAiCEUNACAEQX9qIQkgBUEBSyEKA0AgCCgCACIIRQ0BAkAgCCgCBCILIANGDQACQAJAIAoNACALIAlxIQsMAQsgCyAESQ0AIAsgBHAhCwsgCyAGRg0BDAILIAgoAgggAUcNAAsCQAJAIAVBAUsNACAJIANxIQMMAQsgAyAESQ0AIAMgBHAhAwsgByADQQJ0aiIGKAIAIQsDQCALIgEoAgAiCyAIRw0ACwJAAkAgASAAQRRqIgdGDQAgASgCBCELAkACQCAFQQFLDQAgCyAJcSELDAELIAsgBEkNACALIARwIQsLIAsgA0YNAQsCQCAIKAIAIgtFDQAgCygCBCELAkACQCAFQQFLDQAgCyAJcSELDAELIAsgBEkNACALIARwIQsLIAsgA0YNAQsgBkEANgIAC0EAIQsCQCAIKAIAIgpFDQAgCigCBCEGAkACQCAFQQFLDQAgBiAJcSEGDAELIAYgBEkNACAGIARwIQYLIAohCyAGIANGDQAgACgCDCAGQQJ0aiABNgIAIAgoAgAhCwsgASALNgIAIAhBADYCACAAIAAoAhhBf2o2AhggAkEBOgAMIAIgBzYCCCACIAg2AgQgAkEEahC3LRoLIAJBEGokAAvXAgEEfyMAQTBrIgQkAEEAIQUCQCADRQ0AIAAoAhAoAoQDIgUQvy0hBiAFIAAQwC0gBhCsEiAGIAAoAkg2AkgCQCAGKAIQIgUoAiggBSgCJCIHSQ0AIAYQwS0gBigCECIFKAIkIQcLIAVBfzYCJCAEQRBqQgA3AwAgBEEIakIANwMAIARCADcDACAEQgA3AiQgBCADNgIgIAQgAjYCHCAEIAE2AhgCQAJAIAZB9gUgBBCZEkEERw0AIAZBnuoQEJwSQQAhAwwBCyAEKAIoRSEDCwJAIAQoAhAiAkUNACAEKAIMIAIgBCgCFEECdEEAEMMtCwJAIAQoAgQiAkUNACAEKAIAIAIgBCgCCEECdEEAEMMtCyAFIAc2AiRBASEFIAMNACAGIAAQwC0gACgCSCIGIAAgBigCACgCCBEDACAAIAAoAghBYGo2AghBACEFCyAEQTBqJAAgBQvEAgEEfyMAQRBrIgMkAEEAIQQCQCAAKAIIIgVBfGooAgBBCkcNACAFQXBqKAIAIgVFDQBB49ARIQQCQAJAAkACQCAFIABBABDELUH/AXEOAgACAQsCQCAFKAIIIgYgBSgCDEcNAEGTthEhBAwCC0GPnREhBCAGQXBqQbC/HEYNASAGQXxqIgYoAgBBB0YNAiAGKAIAQQhHDQEMAgsgBUF/EMEnDQFBqsERIQQLIAMgATYCACAFIAQgAxDFLQsgBSAAEMAtAkACQCAAQX8QwSciBUUNACAAKAJIIgQgACAEKAIAKAIIEQMAQWAhAQwBCyAAQX4Qri1BASEEIAJFDQEgAEHwsX9Bp+ARQQEQrS0aIAAgARCcEiAAQX0QiwogAEF9EMYtQXAhAQsgBUUhBCAAIAAoAgggAWo2AggLIANBEGokACAEC7QBAQV/IAIQry0hAwJAIAFFDQACQAJAIAFpIgRBAUsNACABQX9qIANxIQUMAQsgAyEFIAMgAUkNACADIAFwIQULIAAgBUECdGooAgAiAEUNACABQX9qIQYgBEEBSyEHA0AgACgCACIARQ0BAkAgACgCBCIEIANGDQACQAJAIAcNACAEIAZxIQQMAQsgBCABSQ0AIAQgAXAhBAsgBCAFRw0CDAELIAAoAgggAkcNAAsgAA8LQQALZAEBfyMAQRBrIgIkACAAQgA3AgAgAEEIakIANwIAIAAgASgCEDYCECAAIAEoAgQQsi0gAUEIaiEBAkADQCABKAIAIgFFDQEgAkEIaiAAIAFBCGoQqC0MAAsACyACQRBqJAAgAAtPAQJ/IAAoAgghAQJAA0AgAUUNASABKAIAIQIgAUEIahCCBhogARCkASACIQEMAAsACyAAKAIAIQEgAEEANgIAAkAgAUUNACABEKQBCyAAC/MCAQN/AkAgACgCECIBKAIoIAEoAiRJDQAgABDBLQsCQCAALQABIgFBBHFFDQAgACABQfsBcToAASAAIAAoAhAiASgCHDYCQCABIAA2AhwLAkACQEEALQCUmR5BAUcNACAAKAIIQRBqIAAoAhQoAghNDQAgAEEBEK8SRQ0BCyAAQcwAIAAtAAQQhUshASAAKAIQIgItABQhAyABQQo6AAAgASADQQNxOgABIAAtAAQhAyABQQA2AhwgASACNgIQIAEgAzoAAiABQgA3AkQgAUEANgIUIAFCADcCJCABQQA2AAMgAUEsakIANwIAIAFBNGpCADcCACABQTxqQQA2AgAgASAALQAEOgAEIAEgABCGSyABIAAoAjg2AjggASAALQAGOgAGIAAoAggiAkEKNgIMIAIgATYCACAAIAAoAghBEGo2AggCQCAAKAIQKALEBSICRQ0AIAAgASACEQMACyABDwsgAEG27xBBABCxEiAAELISAAu4AQECfwJAAkAgACABRg0AAkAgAS0AASICQQRxRQ0AIAEgAkH7AXE6AAEgASABKAIQIgIoAhw2AkAgAiABNgIcCwJAQQAtAJSZHkEBRw0AIAEoAghBEGogASgCFCgCCE0NACABQQEQrxJFDQILIAEoAggiAiAAKAIIQXBqIgMpAwA3AwAgAkEIaiADQQhqKQMANwMAIAAgAzYCCCABIAJBEGo2AggLDwsgAEG27xBBABCxEiAAELISAAubEgMTfwN8An4jAEEQayIBJAAgACgCECICKAIkIQMgAigCKCEEIAIoAjAgAigCNGxB5ABtIQUCQCACKAK8BSIGRQ0AIABBACAGEQMACwJAIAItABUiBw0AIAIQuUw5A7BkIAItABUhBwtBACEIAkACQAJAAkACQAJAIAAoAhAiCS0AFQ4FAAECAwQFCyAJQQA2AiAgCUIANwMYAkAgCSgChAMiBi0AAUEDcUUNACAJIAYQukwgCSgChAMhBgsCQCAGKAI4IgYtAAFBA3FFDQAgCSAGELpMCwJAIAAoAhAiBigChAVBBkgNACAGKAL4BCIGLQABQQNxRQ0AIAkgBhC6TAtBACEKAkBBAC0AsKQeQQFHDQADQCAKQYIBRg0BIAAoAhAgCkEGdGoiC0GQCmohBgJAIAtBnApqKAIAQQZIDQAgBigCACILLQABQQNxRQ0AIAkgCxC6TAsCQCAGKAIcQQZIDQAgBigCECILLQABQQNxRQ0AIAkgCxC6TAsCQCAGKAIsQQZIDQAgBigCICIGLQABQQNxRQ0AIAkgBhC6TAsgCkEBaiEKDAALAAsCQEEALQDcox5BAUcNACAJQZDfAGohC0EAIQYDQCAGQYIBRg0BAkAgCyAGQQJ0aigCACIKRQ0AIAotAAFBA3FFDQAgCSAKELpMCyAGQQFqIQYMAAsACyAJELtMAkBBAC0A6JkeQQFHDQAgCRC8TAsgCUEBOgAVQQAhCAwEC0EAIQgCQANAIAkoAhgiBkUNASAIIAVPDQEgCRC9TCAIaiEIDAALAAsgBg0DIAlBAjoAFSAJKAIcIQYgCUEANgIcIAkgBjYCGAwDC0EAIQgCQANAIAkoAhgiBkUNASAIIAVPDQEgCRC9TCAIaiEIDAALAAsgBg0CIAlBAzoAFQwCCyAJELlMOQO4ZCAJIAkoAig2AqBkIAAoAhAiCUGUA2ohBiAJQYgDaiEKQQAhDAJAA0AgBigCACIGIApGDQECQCAGLQABQQdxDQAgBigCBCILKAIMQQZIDQAgCygCACILLQABQQNxRQ0AIAkgCxC6TAsgDEEYaiEMIAZBDGohBgwACwALIAkQvkwhBSAJKAIgIQYgCUEANgIgIAkgBjYCGAJAIAAtAAFBA3FFDQAgCSAAELpMCyAJELtMAkBBAC0A6JkeQQFHDQAgCRC8TAsgCRC+TCENIAkoAhwhBiAJQQA2AhwgCSAGNgIYIAkQvkwhDkEAIQ8gCUEgaiIQIQYCQANAIAYoAgAiC0UNASALKAIIIQYCQAJAQQAtAPiZHkEBRw0AAkACQCALKAIYQZCkHEcNAEEAIQoMAQtBASALLQAGdCEKCyAKQQV0IREMAQtBICALLQAGdCERCyAGQQR0IQgCQANAIAZFDQEgCygCFCAGQX9qIgZBBHRqIgooAgxBBkgNACAKKAIAEL9MRQ0AIApBADYCDAwACwALQQEgCy0ABnQhCkEAIRICQANAIApFDQEgCygCGCAKQX9qIgpBBXRqIgYoAgwiE0UNAAJAAkACQCAGKAIcQQ5xQQZJDQAgBigCEBC/TA0BIAYoAgwhEwsgE0EGSA0BIAYoAgAQv0xFDQELIAZBADYCDCAGKAIcIhNBDnFBBkkNASAGIBNBcHFBDnI2AhwMAQsgEkEBaiESDAALAAsgDyAIaiARaiEGAkAgACgCECALQRBqKAIAEMBMIgpFDQAgCkHzABDXRUUNACASQQMgCy0ABnRBCG1ODQAgASASNgIIIAEgCzYCBCAAQfcFIAFBBGoQmRIaCyAGQSBqIQ8gC0EcaiEGDAALAAsgEEEANgIAIAAoAhAiBkGIA2ohCyAGKAKUAyEGQQAhCgJAA0AgBiALRg0BIApBGGohCgJAIAYtAANFDQAgBkEAOgADIAYoAgwhBgwBCyAGKAIMIRMgACAGIAYtAAFBA3FBAEcQs0wgEyEGDAALAAsgCUEEOgAVIAkgCSgC/AI2AoADIAkgCS0AFEEDczoAFCAFIAxqIA1qIA5qIA9qIApqIQgMAQsgCSgCgAMhDEEAIQgCQANAIAxFDQEgCCAFTw0BIAxBMGoiBiAMKAIQQVBqIgsgCyAMKAIUIgpwa2ohCyAAKAIQLQAUIhNBA3EhESATQQNzIRIgDCgCICEPIAwoAgwhDSAGIAwoAhxqIApqIg4hBgJAAkADQCAGIAtGDQECQAJAIAYtAABFDQACQCAGLQABIhNBA3MgEnFFDQAgBiATQfgBcSARcjoAAQwBCyAAIAYgDBC2TCAPQX9qIg9FDQELIAYgCmohBgwBCwsgBiAOayAKbUEBaiEGDAELIAsgDmsgCm0hBgsgCSANNgKAAyAGQQR0IAhqIQggDSEMDAALAAsgDA0AIAkoAoQDIgYgCS0AFEEDcSAGLQABQfgBcXI6AAEgACgCECIKKAIIIgZBBG0hCwJAIAZBwQBIDQAgCigCBCALTw0AIAEgBkEBdjYCDCAAQfgFIAFBDGoQmRIaCyAJQQA6ABULIAIoAighBgJAAkAgAi0AFQ0AIAZB5ABuIAIoAixsIgohCwJAIAIrA7hkIhQgAisDwGShIhVE/Knx0k1iUD9jDQAgAiACKAKYZCITQR9xQQJ0akGY4wBqIhIoAgAhDCACKAKkZCEPIAIrA7BkIRYgEiACKAKgZCIRIAIoAqhka0EKdiILNgIAIAIgE0EBajYCmGQgAiACKAKcZCALIAxraiITNgKcZAJAAkAgFCAWoSARIA9ruCAVo6IiFJlEAAAAAAAA4ENjRQ0AIBSwIRcMAQtCgICAgICAgICAfyEXCwJAAkAgC7hE7FG4HoXr2T+iIBO3RLXIdr6fGs8/oqBEAAAAAAAAkECiIhSZRAAAAAAAAOBDY0UNACAUsCEYDAELQoCAgICAgICAgH8hGAsgBiAKIAqtIBggF3wiF30iGKcgF0IAUxsgGCAGrVMbIQsLIAIgCjYCqGQgAiALNgIkIAIQuUw5A8BkIAIgAigCKDYCpGQMAQsgAiAGIAhB5ABsIAIoAjBuaiIGNgIkIAYgBCADayIKSQ0AIAIgBiAKazYCJAsCQCACKAK8BSIGRQ0AIAAgB0H/AXEgBhEDAAsgAUEQaiQAC90nBBd/AXwBfQF+IwBBwAJrIgIkACABKAIkIQMgASgCICEEIAEoAhghBSABKAIcIgYtAAAhB0EBIQggAkEBNgK0AgJAAkAgBw0AIAJBMGogBSAFEFkQlEwhBSACIAZBAWo2AgggAiAEQX9qNgIEIAIgBTYCACAAQcaJESACEMUtDAELAkAgB0F0akH/AXFB9gFLDQAgAkEwaiAFIAUQWRCUTCEGIAIgBzYCHCACQoOAgICwATcCFCACIAY2AhAgAEHd9xEgAkEQahDFLUEBIQgMAQtBACEJAkAgB0EESQ0AIAYtAAEhCSACQQI2ArQCIAlBfGpB/wFxQfwBSw0AIAJBMGogBSAFEFkQlEwhBiACIAk2AiwgAkKBgICAMDcCJCACIAY2AiAgAEGe9xEgAkEgahDFLUEBIQgMAQsCQAJAIAMNACAAQThqIQgMAQsgACADEIFLIQgLIAgoAgAhCiAAIAUgBRBZEJBLIQsgBiACQbQCahCkTyEMIAEgADYCAAJAIAxBgICAgARPDQBBACEFIAAgDEECdEEAEMlMIQggASAMNgIIIAEgCDYCBANAAkAgBSAMRw0AAkAgCUEDRw0AIAJByABqQoeOnLjw4MGDBzcDACACQcAAakKHjpy48ODBgwc3AwAgAkKHjpy48ODBgwc3AzggAkKHjpy48ODBgwc3AzADQCAGIAIoArQCIghqLQAAIQUgAiAIQQFqNgK0AiAFRQ0BIAEgBiACQbQCahClTyEIIAVBIEsNACAAKAIQKAL4BSIDRQ0AIAJBMGogBUF/amogACAIQRRqIAgoAhAgAxEEADoAAAwACwALIAYgAkG0AmoQpE8hDSABIAA2AgwgDUGAgICABE8NAiAAIA1BAnRBABDJTCEFIAEgDTYCFCABIAU2AhAgAEEQaiEOIAlB/gFxQQJHIQ8gB0ELSSEQQQAhEQNAAkAgESANRw0AIAYgAkG0AmoQpE8hBiABKAIQIAZBAnRqKAIAIQYCQCAALQABIgVBBHFFDQAgACAFQfsBcToAASAAIABBEGooAgAiBSgCHDYCQCAFIAA2AhwLQQAhCCAAQQAgCiAGELFMIQYgACgCCCIFQQg2AgwgBSAGNgIAAkAgACgCGCAAKAIIIgZrQRBKDQAgAEEBEIRLIAAoAgghBgsgACAGQRBqNgIIDAULIABBhAEgAC0ABBCFSyEFIA4oAgAtABQhCCAFQQ86AAAgBSAIQQNxOgABIAUgAC0ABCIMOgACIAVBA2pBAEGBARBIGiAFIBE2AmggBSALNgIwAkAgDigCACIDKALIZCIIRQ0AIAMgCEEBajYCyGQLIAUgCDYCeCAFIAYgAigCtAIiA2oiCC0AADoABiAFIAhBAWotAAA6AAQgBSAIQQJqLQAAOgADIAhBA2otAAAhCCACIANBBGoiBDYCtAIgBSAIOgAFAkAgB0EESQ0AIAYgBGotAAAhCCACIANBBWo2ArQCIAUgCDoABwJAIAlBAUcNACAGIAJBtAJqEKRPIQggAigCtAIhAwJAIAhFDQAgAEEEQQMgCEH/AEsbIhIgCGoiEyAMQf8BcRDJTCEEIAUgEzYCbCAFIAQ2AjwgBiADaiEMAkACQCAIQYABSQ0AIAQgCEGAAXI6AAAgBSgCPCAIQQd2OgABQQMhBEECIRMMAQsgBCAIOgAAQQIhBEEBIRMLIAUoAjwgE2pBADoAACAFKAI8IARqQQA6AAAgBSgCPCASaiAMIAgQSxoLIAIgAyAIajYCtAIMAQsgDw0AIAYgAkG0AmoQpE8iCEUNACACKAK0AiEDIAAgCCAMQf8BcRDJTCEEIAUgCDYCbCAFIAQ2AjwgBCAGIANqIAgQSxogAiADIAhqNgK0AiAJQQNHDQAgBSgCPCEDIAJBADYCuAIgAyACQbgCahCkTyEUIAMgAkG4AmoQpE8hEiADIAJBuAJqEKRPIRMCQCAURQ0AQQIhCCAUQQIgFEECSxshFSADIAIoArgCIhZqIRcDQAJAIAggFUcNACACIBYgFGo2ArgCDAILAkAgFyAIaiIELQAAQUBqIgxBH0sNACAEIAJBMGogDGotAAA6AAALIAhBAWohCAwACwALAkAgEkUNACADIAIoArgCIhdqIRVBACEIA0ACQCAIIBJHDQAgAiAXIBJqNgK4AgwCCwJAIBUgCGoiBC0AAEFAaiIMQR9LDQAgBCACQTBqIAxqLQAAOgAACyAIQQFqIQgMAAsAC0EAIQggE0UNAANAIAggE0YNAQJAIAMgAigCuAIiBGoiDCwAAEFAaiISQR9LDQAgDCACQTBqIBJqLQAAOgAACyACIARBAmo2ArgCIAMgAkG4AmoQpE8aIAMgAkG4AmoQpE8aIAhBAWohCAwACwALIAYgAkG0AmoQpE8iBEH/////A0sNAyAAIARBAnQgBS0AAhDJTCEMIAUgBDYCSCAFIAw2AgxBACEIIAIoArQCIQMDQAJAIAggBEgNACACIAM2ArQCIAUgDDYCFCAGIAJBtAJqEKRPIgNBgICAgAFPDQUgACADQQR0IAUtAAIQyUwhBCAFIAM2AlggBSAENgIIQQAhF0EAIQgCQANAIAggA0YNASAEIAhBBHRqQQA2AgwgCEEBaiEIDAALAAsDQAJAIBcgA0gNAAJAQQAtALCkHkUNACAFKAIMIgMhCANAIAggAyAFKAJIQQJ0ak8NAUHTACEEAkACQAJAAkAgCCgCACIDQf8BcUFxag4GAgADAwMBAwtB1AAhBAwBC0HVACEECyAIKAIEIgxB//8DSw0AAkAgBSgCCCAMQQR0aigCACISLwEEIgxBgIACRw0AAkACQCAOKAIAKALIBSIMDQBB//8DIQwMAQsgACASQRRqIBIoAhAgDBEEACEMIAgoAgAhAwsgEiAMOwEECyAMwUEASA0AIAggA0GAfnEgBHIiAzYCAAtBAiEEAkACQAJAIANB/wFxIgNBS2oOJAIBAgEBAgECAQEBAQECAQEBAQEBAQICAQICAgIBAQICAgICAgALIANBeWoiA0EZSw0AQQEgA3RBo8bAH3ENAQtBASEECyAIIARBAnRqIQggBSgCDCEDDAALAAsgBiACQbQCahCkTyIEQf////8DSw0HIAAgBEECdCAFLQACEMlMIQggBSAENgJMIAUgCDYCEEEAIQgCQANAIAYgAkG0AmoQpE8hAwJAIAggBEcNACAFIAM2AmQgBSABIAYgAkG0AmoQpU82AjQgAigCtAIiA0EBaiEIIAYgA2otAABFDQIgBSAGIAhqLQAAIgg2AmAgACAFKAJIIgRBA2pBfHEiEiAEQX9qIAh1IgxBAnRqQQRqIgQgBS0AAhDJTCEIIAUgBDYCXCAFIAg2AiAgBSAIIBJqNgIkIANBAmohCEEAIQRBACEDA0ACQCADIAUoAkhIDQAgDEF/IAxBf0obQQFqIQxBACEEQQAhAwNAIAMgDEYNBSAFKAIkIANBAnRqIAYgCGooAAAgBGoiBDYCACADQQFqIQMgCEEEaiEIDAALAAsgBSgCICADaiAEIAYgCGotAABqIgQ6AAAgA0EBaiEDIAhBAWohCAwACwALIAUoAhAgCEECdGogASgCECADQQJ0aigCADYCACAIQQFqIQgMAAsACyAGIAhqLQAAIQMgAiAIQQFqNgK0AgJAIANFDQAgBiACQbQCahCkTyISQf////8ASw0IIAAgEkEEdCAFLQACEMlMIRMgBSASNgJQIAUgEzYCKEEAIQgDQAJAIAggEkcNACAGIAJBtAJqEKRPIgRBgICAgARPDQogACAEQQJ0IAUtAAIQyUwhCCAFIAQ2AlQgBSAINgIsQQAhCANAIAggBEYNAyABIAYgAkG0AmoQpU8hAyAFKAIsIAhBAnRqIAM2AgAgCEEBaiEIDAALAAsgEyAIQQR0aiIDIAEgBiACQbQCahClTzYCACADIAYgAkG0AmoQpE82AgQgAyAGIAJBtAJqEKRPNgIIIAYgAigCtAIiBGotAAAhDCACIARBAWo2ArQCIAMgDDoADCAIQQFqIQgMAAsACwJAIBANACAFIAYgAkG0AmoQpE8iCDYCdAJAIAhFDQAgCEH/////AEsNCSAFIAAgCEEEdCAFLQACEMlMNgJwC0EAIQgDQCAIIAUoAnRPDQEgBiACKAK0AiIDai0AACEEIAIgA0EBajYCtAIgBSgCcCAIQQR0aiIDIAQ2AgAgBiACQbQCahCkTyEEIANCADcCCCADIAQ2AgQgCEEBaiEIDAALAAsgASgCECARQQJ0aiAFNgIAIBFBAWohEQwECyAGIAIoArQCIghqIgwtAAAhAyACIAhBAWoiBDYCtAICQAJAAkACQAJAAkACQAJAAkACQAJAIANBf2oOCgABAwQFBwIGCQgKCyAGIARqLQAAIQMgAiAIQQJqNgK0AiAFKAIIIBdBBHRqIghBATYCDCAIIAM2AgAMCQsgBiAEaisAACEZIAIgCEEJajYCtAIgBSgCCCAXQQR0aiIIQQM2AgwgCCAZOQMADAgLIAYgBGoqAAAhGiAMQQVqKQAAIRsgAiAIQRFqNgK0AiAFKAIIIBdBBHRqIghBBTYCDCAIIBs3AgQgCCAaOAIADAcLIAEgBiACQbQCahClTyEIIAUoAgggF0EEdGoiA0EGNgIMIAMgCDYCAAwGCyAGIARqKAAAIQMgAiAIQQVqNgK0AiAFKAIIIQggAiADNgK8AiACIAg2ArgCIAAoAgghCAJAAkAgACgCOC0ABUUNACAAQfkFIAJBuAJqIAggACgCHGtBABChSyEDIAAoAgghCCADRQ0BIAhBfGpBADYCAAwBCyAIQQA2AgwgACAIQRBqIgg2AggLIAUoAgggF0EEdGoiAyAIQXBqIggpAwA3AwAgA0EIaiAIQQhqKQMANwMAIAAgACgCCEFwajYCCAwFC0EAIQggBiACQbQCahCkTyIDQQAgA0EAShshBCAAQQAgAxCZSyEMA0ACQCAIIARHDQAgBSgCCCAXQQR0aiIIQQc2AgwgCCAMNgIADAYLIAYgAkG0AmoQpE8hAyAAIAwgBSgCCCADQQR0ahDZSyIDQQM2AgwgA0IANwMAIAhBAWohCAwACwALIABBACAGIAJBtAJqEKRPIhYQmUshDCAWQYCAgIAETw0KQQAhCCAAIBZBAnQiGEEAEMlMIRRBACEVAkADQAJAIAggFkcNAEEAIQgMAgsgBiACQbQCahCkTyESIAAgDCAFKAIIIBJBBHRqENlLIQMgBiACKAK0AiITaigAACEEIAIgE0EEajYCtAICQAJAIARBAEgNAAJAIAUoAgggBEEEdGoiBCgCDEUNACADIAQpAwA3AwAgA0EIaiAEQQhqKQMANwMAIAQoAgxBBkgNAiAMLQABQQRxRQ0CIAQoAgAiAy0AAUEDcUUNAiAOKAIAIAwgAxCcSwwCCyAUIBVBAnRqIBI2AgAgFUEBaiEVCyADQQM2AgwgA0IANwMACyAIQQFqIQgMAAsACwJAA0AgCCAVRg0BIAAgDCAFKAIIIBQgCEECdGooAgBBBHRqENlLQQA2AgwgCEEBaiEIDAALAAsgBSgCCCAXQQR0aiIIQQc2AgwgCCAMNgIAIBRFDQMgACAUIBhBABDDLQwDCyAGIAJBtAJqEKRPIQggACABKAIQIAhBAnRqKAIAIggtAAMgCiAIELFMIgggCC0ABEEARzoABiAFKAIIIBdBBHRqIgNBCDYCDCADIAg2AgAMAgsgBiACQbQCahCkTyEIIAUoAgghAyAGIAJBtAJqEKRPIhQgBiACQbQCahCkTyIMaiIEQf////8DSw0IIAMgCEEEdGohFUEAIQggACAEQQJ0IAAtAAQQyUwhEyAAQQAgBBCZSyESA0ACQCAIIARHDQAgEkEBOgAEIBUoAgAhAyAAQSggAC0ABBCFSyEVIA4oAgAtABQhCCAVQQw6AAAgFSAIQQNxOgABIAAtAAQhCCAVIAM2AgggFSAIOgACIAxB/////wBLDQogFSAAIAxBBHQgCEH/AXEQyUwiAzYCDEEAIQgCQANAIAggDEYNASADIAhBBHRqQQA2AgwgCEEBaiEIDAALAAsgFSATNgIUIBUgEjYCECAVIABBAEEBEJlLNgIYIABBACAAKAI4EJNLIghBlf8QNgIYIAhB+gU2AhAgCEEANgIUIAAgFSgCGCAOKAIAKAKgBBCoSyIDQQg2AgwgAyAINgIAIBUoAhhBAToABCAVIAQ2AiQgFSAUNgIgIBVBADYCHCAFKAIIIBdBBHRqIghBDDYCDCAIIBU2AgAMAwsgBiACQbQCahCkTyEDIBMgCEECdGogBSgCCCADQQR0aigCACIDNgIAIAAgEiADEKhLIgNBAzYCDCADIAi4OQMAIAhBAWohCAwACwALIAhBAmohCCAGIARqLQAAIRJCACEbQQAhAwNAIAYgCGosAAAiBEH/AHGtIAOthiAbhCEbIAhBAWoiDCEIIANBB2ohAyAEQQBIDQALIAIgDDYCtAIgBSgCCCAXQQR0aiIIQQQ2AgwgCEIAIBt9IBsgEkH/AXEbNwMACyAXQQFqIRcgBSgCWCEDDAALAAsgDCAIQQJ0aiAGIANqKAAANgIAIAhBAWohCCADQQRqIQMgBSgCSCEEDAALAAsACyAGIAJBtAJqEKRPIQggACAGIAIoArQCIgNqIAgQkEshBCABKAIEIAVBAnRqIAQ2AgAgAiADIAhqNgK0AiAFQQFqIQUMAAsACyAAEKZLAAsgASAINgIoIAJBwAJqJAALcwECfyAAKAIQIQQCQAJAIAJBf2pB/wdLDQAgAkHImx5qLAAAIgVBAEgNACAAIAUgARCITQwBCyAEKAIQIAEgAkEAIAQoAgwRBwAaCyAEIAQoAiggAms2AiggBCADQQJ0akGQywBqIgQgBCgCACACazYCAAv+AwEEfwJAAkACQCAALQADDgcAAgEBAQECAQsgACgCFCAAKAIkRg0BCyAAQZ29ESACEKlMQQIPCwJAAkAgAQ0AQQAhAwwBCyAAIAEvATAiAzsBMCADQcgBSQ0AIABBtO8QIAIQqUxBAg8LIABBAToABSAAIANBAWoiBDsBMiAAIAQ7ATACQCAALQABIgFBBHFFDQAgACABQfsBcToAASAAIAAoAhAiASgCHDYCQCABIAA2AhwLIABB+wUgACgCCCACQQR0axCZEiEFQQAhBgJAA0AgBUUNASAAKAIkIQIgACgCFCEBA0ACQCABIAJLDQAgBSEGDAMLAkAgAS0AGEECcQ0AIAFBZGohAQwBCwsCQCAALwEwIAAvATJLDQAgACgCECgC2AUiAkUNACAAIAIRAQAgAC0AA0EGRg0CCwJAQQAtALSZHkEBRw0AIAAgBDsBMiAAIAQ7ATALIAAgBToAAyAAQfwFIAEQmRIhBQwACwALAkBBAC0AtJkeDQAgAC8BMkF/aiEDCyAAIAM7ATIgACADOwEwIABBADoABQJAAkAgBkUNACAAIAY6AAMgACAGIAAoAggQzksgACgCFCAAKAIINgIIIAAtAAMhAQwBCyAALQADIgENAEEAIQEgACgCFCICKAIIIAAoAggiAE8NACACIAA2AggLIAFB/wFxC28BAn8jAEEQayIDJAACQCAAKAIQIgQoAiggBCgCJEkNACAAEMEtCwJAIAAtAAEiBEEEcUUNACAAIARB+wFxOgABIAAgACgCECIEKAIcNgJAIAQgADYCHAsgAyACNgIMIAAgASACEJJLIANBEGokAAstAQF/IAAgACgCCCICIAFBBHRqIAJBYGogAkFwahCaSyAAIAAoAghBYGo2AggLHwEBfyAAKAIAIQIgACABNgIAAkAgAkUNACACEKQBCws3AQF/IAAoAgAhASAAQQA2AgACQCABRQ0AAkAgAC0ACEEBRw0AIAFBDGoQowYaCyABEKQBCyAAC38BAn8gASgCDCEEIAEoAgghBSABQf0FQYiREUEAQQAQmxIgASAFIARrQQR1IAJrIgQQyi0CQCAAKAJ4RQ0AIAEoAhBB/gU2ArwFIAAQrBc3A3ALIAEgAiADIAQQyichAgJAIAAoAnhFDQAgASgCEEEANgK8BQsgASAEEK4tIAIL5QEBAn8CQCAALQABIgJBBHFFDQAgACACQfsBcToAASAAIAAoAhAiAigCHDYCQCACIAA2AhwLAkACQCABQQFIDQAgACgCDCABQQR0akFwaiIBQbC/HCABIAAoAggiAkkbIQMMAQsCQCABQfGxf0gNACAAKAIIIgIgAUEEdGohAwwBCyAAIAEQqhIhAyAAKAIIIQILA0ACQCACIANLDQAgAyAAKAIIIgIpAwA3AwAgA0EIaiACQQhqKQMANwMADwsgAiACQXBqIgEpAwA3AwAgAkEIaiABQQhqKQMANwMAIAEhAgwACwAL+wECAX8BfCMAQbABayICJAACQCABQX9KDQAgAC8BMCAALwEySw0AIAAoAkghARCsFyABKQNwfULAhD1/IAE0AnhXDQAgACgCEEEANgK8BSAAQQEQzC0CQAJAIAEoAngiAUHoB0gNACACIAG4RAAAAAAAQI9AoyIDOQMQIAJB540SQdiMESADRAAAAAAAAPA/YRs2AhggAkEwakGAAUHA8hAgAkEQahDNLRoMAQsgAiABNgIgIAJB540SQdiMESABQQFGGzYCJCACQTBqQYABQZTyECACQSBqEM0tGgsgAiACQTBqNgIAIABB14wRIAIQsigACyACQbABaiQAC0oBAn8CQCAAKAIYIAAoAggiAmsgAUEEdCIDSg0AIAAgARCESyAAKAIIIQILAkAgACgCFCIAKAIIIAIgA2oiAU8NACAAIAE2AggLCyoBAX8jAEEQayIEJAAgBCADNgIMIAAgASACIAMQm0ghAyAEQRBqJAAgAwsKACAAEIUUEKQBCy0BAX8jAEEQayICJAAgAiABQX9BABDCJzYCACACQeSBEiACEIsGIAJBEGokAAsCAAtQAQF/IwBBEGsiAiQAIAJBBGogASgCACABKAIEEIwHIAIgAigCBCACQQRqIAIsAA9BAEgbNgIAQdeMESACEE8aIAJBBGoQggYaIAJBEGokAAsHAEEKEFAaCx4AAkAgACABIAIQj0siAg0AIAAgAUELEK5LAAsgAguqAQECfyAAQRB0QYCAgIB4cSEBAkACQAJAIABBCnZBH3EiAkEfRg0AIABB/wdxIQAgAg0BIABFDQJBASECAkADQCAAQYAIcQ0BIAJBf2ohAiAAQQF0IQAMAAsACyACQRd0IABBDXRBgMD/A3FyQYCAgMADaiABciEBDAILIAEgAEENdHJBgICA/AdyIQEMAQsgAkEXdCAAQQ10ciABakGAgIDAA2ohAQsgAb4LrAIBBX8gALwiAUH///8DcSECIAFBEHZBgIACcSEDAkACQCABQRd2Qf8BcSIEQfAASw0AIARB5QBNDQEgAkGAgIAEciICQf4AIARrIgV2IQECQAJAIAJBfyAFdEF/c3EiAkEBQf0AIARrdCIESw0AIAIgBEcNASABQQFxRQ0BCyABQQFqIQELIAEgA3IhAwwBCwJAIARBkH9qIgVBjwFHDQACQCACDQAgA0GA+AFyIQMMAgsgAyACQQ12ckGA+AFyIQMMAQsgAkENdiECAkACQCABQf8/cUGAIEsNACABQf//AHFBgOAARw0BCyAEQZF/aiAFIAJB/wdGIgEbIQVBACACQQFqIAEbIQILIANBgPgBciACIAVBCnRyIANyIAVBHksbIQMLIANB//8DcQvyAQECfyMAQRBrIgIkAEEAIQMCQCAAIAFBABCwKCIBQbHsERCCEkUNAAJAIAFBoe8REIISDQBBASEDDAELAkAgAS0AAEH1AEcNACABLQABQThHDQAgAS0AAg0AQQIhAwwBCwJAIAFB8aIREIISDQBBAyEDDAELAkAgAUH4ohEQghINAEEEIQMMAQsCQCABQYHsERCCEg0AQQUhAwwBCwJAIAFB/6IREIISDQBBBiEDDAELAkAgAUGHoxEQghINAEEHIQMMAQtBCCEDIAFB8O4REIISRQ0AIAIgATYCACAAQez6ESACELIoAAsgAkEQaiQAIAMLIQBBAEIANwKskh5BAEIANwKkkh5BAEGAgID8AzYCtJIeC98CAQZ/AkAgABDZLSIARQ0AIAAoAhAhBSAAKAIMIQYgABCOEhogBkUNACAGQfCxfyAFEMsnGiAGQX9BARDaLSEHIAYgBigCCEFwajYCCAJAIAdFDQAgBy0ABA0AQQAhAANAAkAgACAESA0AIAZBAEEAEK4SIAYgBBDbLSADIAQQSxogBkF+QcPbERCfEiAGIAG3ELooIAZBfkHHqREQnxIgBiACtxC6KCAGQX5Bp/wQEJ8SIAcgBiAGKAIIIAYoAgxrQQR1ENwtIAYgBigCCEFwajYCCAwCCwJAIAMgAGoiCEEDai0AACIJQf8BRg0AIAggCC0AACAJbEH/AGpB//8DcUH/AW46AAAgCEEBaiIKIAotAAAgCWxB/wBqQf//A3FB/wFuOgAAIAhBAmoiCCAILQAAIAlsQf8AakH//wNxQf8BbjoAAAsgAEEEaiEADAALAAsgBiAFEI0SCyADEGALwAEBBn9BACEBAkACQEEAKAKokh4iAkUNAAJAAkAgAmkiA0EBSw0AIAJBf2ogAHEhBAwBCyAAIQQgAiAASw0AIAAgAnAhBAtBACgCpJIeIARBAnRqKAIAIgFFDQEgAkF/aiEFIANBAUshBgNAIAEoAgAiAUUNAgJAIAEoAgQiAyAARg0AAkACQCAGDQAgAyAFcSEDDAELIAMgAkkNACADIAJwIQMLIAMgBEcNAwwBCyABKAIIIABHDQALCyABDwtBAAsnAQF/AkAgACABQcMAEMUoIgMNACACDQAgACABQf66ERC2KAALIAMLnAIBAn8CQCAAKAIQIgIoAiggAigCJEkNACAAEMEtCwJAIAAtAAEiAkEEcUUNACAAIAJB+wFxOgABIAAgACgCECICKAIcNgJAIAIgADYCHAsCQAJAAkBBAC0AlJkeQQFHDQAgACgCCEEQaiAAKAIUKAIITQ0AIABBARCvEkUNAQsgAUGBgICABE8NASAAIAFBCCABQQhLG0EIaiAALQAEEIVLIQIgACgCEC0AFCEDIAJBCzoAACACIANBA3E6AAEgAC0ABCEDIAIgATYCBCACIAM6AAIgAkEIakEAIAEQSCEBIAAoAggiA0ELNgIMIAMgAjYCACAAIAAoAghBEGo2AgggAQ8LIABBtu8QQQAQsRIgABCyEgALIAAQpksAC94BAQF/AkAgAC0ABA0AAkAgASACQQEQ5C0iA0UNACADIABGDQACQAJAAkAgAy0ABEF/ag4DAAECBAsgAUHwsX8gAygCCBDLJxogACABIAEoAgggASgCDGtBBHUQ3C0gASABKAIIQXBqNgIIDwsgAUHwsX8gAygCCBDLJxogACABIAEoAgggASgCDGtBBHUQ3i0gASABKAIIQXBqNgIIDwsgACABEOUtDwsgAEEBOgAEIAEgAhCLCiAAIAFBfxDwJzYCCCABIAEoAghBcGo2AgggASAAEOYtIAEgABDnLQsLjQEBAn8CQCAAENktIgJFDQAgAigCECEDIAIoAgwhACACEI4SGiAARQ0AIABB8LF/IAMQyycaIABBf0EBENotIQIgACAAKAIIQXBqNgIIAkAgAkUNACACLQAEDQAgACABEJwSIAIgACAAKAIIIAAoAgxrQQR1EN4tIAAgACgCCEFwajYCCAsgACADEI0SCwtBAAJAIAAtAAQNACAAQQI6AAQgASACEIsKIAAgAUF/EPAnNgIIIAEgASgCCEFwajYCCCABIAAQ5i0gASAAEOctCwshAQF/IAAoAgAhASAAQQA2AgACQCABRQ0AIAEQpAELIAALTQAgAEIANwIMIABBfzYCCCAAQQA6AAQgACABNgIAIABBfzYCNCAAQgA3AiwgAEL/////DzcCJCAAQRRqQgA3AgAgAEEcakIANwIAIAALIwEBf0EAKAKkkh4hAUEAIAA2AqSSHgJAIAFFDQAgARCkAQsLOgECfyAAQe2xf0EAEOMtIQEgAEHssX9BABDjLSECAkAgARDZLSIBRQ0AIAEQjhIaCyAAIAIQjRJBAAvUAQIBfwF8IwBBEGsiAyQAAkACQCABQQFIDQAgACgCDCABQQR0akFwaiIBQbC/HCABIAAoAghJGyEBDAELAkAgAUHxsX9IDQAgACgCCCABQQR0aiEBDAELIAAgARCqEiEBCwJAAkACQAJAIAEoAgxBA0YNACABIAMQiUsiAUUNAQsCQAJAIAErAwAiBJlEAAAAAAAA4EFjRQ0AIASqIQEMAQtBgICAgHghAQtBASEAIAINAQwCC0EAIQBBACEBIAJFDQELIAIgADYCAAsgA0EQaiQAIAELJwEBfwJAIAAgAUHDABDFKCIDDQAgAg0AIAAgAUH+uhEQtigACyADC/sEAQR/AkAgAC0ABA0AIABBAzoABAJAIAAoAjQiAkF/Rg0AIAFB8LF/IAIQyycaIAFBAEEAQQAQyidFDQAgASABKAIIQXBqNgIICyAAKAIsIQMgACgCKCECAkACQANAAkAgAiADRw0AIAAoAiQiAkF/Rg0DIAFB8LF/IAIQyycaIAFBf0EBEOQtIQQgASABKAIIQXBqNgIIIARFDQMgBC0ABA0DIAQoAiwhAyAEKAIoIQIDQCACIANGDQMCQCACKAIAIgVBf0YNACABQfCxfyAFEMsnGiABQX9BARDkLSEFIAEgASgCCEFwajYCCCAFRQ0AIAUtAARBA0cNBQsgAkEEaiECDAALAAsCQCACKAIAIgVBf0YNACABQfCxfyAFEMsnGiABQX9BARDkLSEFIAEgASgCCEFwajYCCCAFRQ0AIAUtAAQNACAFIAEQ5S0LIAJBBGohAgwACwALIAQgARDlLQsgACgCECEDIAAoAgwhAgNAAkAgAiADRw0AIAAgACgCDDYCECAAKAIcIQMgACgCGCECA0ACQCACIANHDQAgACAAKAIYNgIcIAEgABDnLQwECwJAIAIoAgAiBUF/Rg0AIAEgBRCNEgsCQCACKAIEIgVBf0YNACABIAUQjRILIAJBCGohAgwACwALAkAgAigCDCIFQX9GDQAgAUHwsX8gBRDLJxoCQCABQQBBAEEAEMonRQ0AIAEgASgCCEFwajYCCAsgASACKAIMEI0SCwJAIAIoAgAiBUF/Rg0AIAEgBRCNEgsCQCACKAIEIgVBf0YNACABIAUQjRILAkAgAigCCCIFQX9GDQAgASAFEI0SCyACQRBqIQIMAAsACwuTBgEIfwJAIAEtAAQiAkEDRg0AIABB8LF/IAEoAggQyycaIAAoAgggACgCDGtBBHUhAyABKAIQIQQgASgCDCEFIAJBAUYhBgNAAkAgBSAERw0AIAEoAhwhByABKAIYIQUgAkEBRyEEA0ACQCAFIAdHDQAgACAAKAIIQXBqNgIIIAEgASgCDDYCECABIAEoAhg2AhwMBAtBACEIAkAgBSgCBCIJQX9GDQAgAEHwsX8gCRDLJxogAEF/QQEQ5C0hCSAAIAAoAghBcGo2AgggCUUNAEEAIAkgCS0ABEEDRhshCAsCQAJAAkAgBSgCACIJQX9GDQAgAEHwsX8gCRDLJxoCQCAAQQBBAEEAEMonRQ0AAkAgCEUNACAIIAAgACgCCCAAKAIMa0EEdRDeLQsgACAAKAIIQXBqNgIIIAAgBSgCABCNEiAFKAIEIghBf0cNAgwDCyAAIAUoAgAQjRILAkAgCEUNAAJAIAQNACAIIAAgAxDcLQwBCyAIIAAgAxDeLQsgBSgCBCIIQX9GDQELIAAgCBCNEgsgBUEIaiEFDAALAAtBACEIAkAgBSgCCCIJQX9GDQAgAEHwsX8gCRDLJxogAEF/QQEQ5C0hCSAAIAAoAghBcGo2AgggCUUNAEEAIAkgCS0ABEEDRhshCAsCQAJAIAUgBUEEaiIJIAYbKAIAIgdBf0YNACAAQfCxfyAHEMsnGiAAIAMQiwoCQCAAQQFBAUEAEMonDQACQCAIRQ0AIAggACAAKAIIIAAoAgxrQQR1IAUoAggQ6C0LIAAgACgCCEFwajYCCAwCCwJAIAhFDQAgCCAAIAAoAgggACgCDGtBBHUQ3i0LIAAgACgCCEFwajYCCAwBCyAIRQ0AAkAgAkEBRw0AIAggACADIAUoAggQ6C0MAQsgCCAAIAMQ3i0LAkAgBSgCACIIQX9GDQAgACAIEI0SCwJAIAkoAgAiCEF/Rg0AIAAgCBCNEgsCQCAFKAIIIghBf0YNACAAIAgQjRILAkAgBSgCDCIIQX9GDQAgACAIEI0SCyAFQRBqIQUMAAsACwuEAQEDfwJAIAEoAiQiAkF/Rg0AIAAgAhCNEiABQX82AiQLIAEoAiwhAyABKAIoIQIDQAJAIAIgA0cNACABIAEoAig2AiwCQCABKAI0IgJBf0YNACAAIAIQjRIgAUF/NgI0Cw8LAkAgAigCACIEQX9GDQAgACAEEI0SCyACQQRqIQIMAAsAC6cDAQN/IwBBIGsiBCQAAkAgAC0ABA0AAkAgASACQQEQ5C0iBUUNACAFIABGDQACQAJAAkACQCAFLQAEQX9qDgMAAQIDCyABQfCxfyAFKAIIEMsnGiAAIAEgASgCCCABKAIMa0EEdRDcLSABIAEoAghBcGo2AggMBAsgAUHwsX8gBSgCCBDLJxogACABIAEoAgggASgCDGtBBHUQ3i0gASABKAIIQXBqNgIIDAMLIAAgARDlLQwCCwJAIAAoAiQiBkF/Rg0AIAEgBhCNEgsgASACEIsKIAAgAUF/EPAnNgIkIAEgASgCCEFwajYCCCABQfCxfyADEMsnGiAEIAFBfxDwJzYCHCABIAEoAghBcGo2AgggAUHwsX8gAxDLJxogAUF/EPAnIQAgASABKAIIQXBqNgIIIAVBKGogBEEcahDtDSAEQRBqIgFCfzcDACABIAA2AgAgBEJ/NwMIIAVBDGogBEEIahDpLQwBCyAAQQE6AAQgASACEIsKIAAgAUF/EPAnNgIIIAEgASgCCEFwajYCCCABIAAQ5i0gASAAEOctCyAEQSBqJAALxQIBBn8CQAJAAkACQCAAKAIEIgIgACgCCCIDTw0AIAIgASkCADcCACACQQhqIAFBCGopAgA3AgAgAkEQaiECDAELIAIgACgCACIEa0EEdSIFQQFqIgZBgICAgAFPDQECQAJAIAMgBGsiA0EDdSIHIAYgByAGSxtB/////wAgA0Hw////B0kbIgYNAEEAIQcMAQsgBkGAgICAAU8NAyAGQQR0EKYBIQcLIAcgBUEEdGoiAyABKQIANwIAIANBCGogAUEIaikCADcCACADIQECQANAIAIgBEYNASABQXBqIgEgAkFwaiICKQIANwIAIAFBCGogAkEIaikCADcCAAwACwALIAAgA0EQaiICNgIEIAAoAgAhBCAAIAE2AgAgACAHIAZBBHRqNgIIIARFDQAgBBCkAQsgACACNgIEDwsQrAEACxCoBwAL7gEBAX8gAEH+uhEQrRIgAEF/EIsKIAAoAhAgACgCCEFwaigCADYCnFkgACAAKAIIQXBqNgIIIAAoAhBB/wU2ApxVIABBgAZBAEEAQQAQmxIgAEF+Qb2kERCfEiAAKAIIQXBqIgEoAgBBAToABCAAIAE2AgggAEEAQQAQrhIgAEEAQQAQrhIgAEGBBkEAQQBBABCbEiAAQX5Boe0QEJ8SIABBfhDuLSAAQe6xf0H+uhEQnxIgAEGCBkGd/BBBAEEAEJsSIABB7rF/QZ38EBCfEiAAQYMGQZfaEUEAQQAQmxIgAEHusX9Bl9oREJ8SQQAL8wMBBX8CQCABKAIIIgJBf0YNACABKAIAIgNFDQAgAyACEI0SCyABKAIQIQQgASgCDCECA0ACQCACIARHDQAgASgCHCEEIAEoAhghAgNAAkAgAiAERw0AAkAgASgCJCICQX9GDQAgASgCACIDRQ0AIAMgAhCNEgsgAUEoaiEFIAEoAiwhBCABKAIoIQIDQAJAIAIgBEcNAAJAIAEoAjQiAkF/Rg0AIAEoAgAiA0UNACADIAIQjRILIAUQsgYaAkAgASgCGCICRQ0AIAEgAjYCHCACEKQBCwJAIAEoAgwiAkUNACABIAI2AhAgAhCkAQsPCwJAIAIoAgAiA0F/Rg0AIAEoAgAiBkUNACAGIAMQjRILIAJBBGohAgwACwALAkAgAigCACIDQX9GDQAgASgCACIGRQ0AIAYgAxCNEgsCQCACKAIEIgNBf0YNACABKAIAIgZFDQAgBiADEI0SCyACQQhqIQIMAAsACwJAIAIoAgAiA0F/Rg0AIAEoAgAiBkUNACAGIAMQjRILAkAgAigCBCIDQX9GDQAgASgCACIGRQ0AIAYgAxCNEgsCQCACKAIIIgNBf0YNACABKAIAIgZFDQAgBiADEI0SCwJAIAIoAgwiA0F/Rg0AIAEoAgAiBkUNACAGIAMQjRILIAJBEGohAgwACwAL2gkCCX8BfiMAQSBrIgEkACAAIAFBHGoQsSghAiAAQQFBABDkLSEDAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgASgCHEGnfmoOBgABAgYDBAULQX8hBCAAKAIMIgJBEGoiBSAAKAIIIgZPDQggBUGwvxxGDQhBfyEFIAJBHGooAgBBCEcNCSAAQQIQiwogAEF/EPAnIQUgACAAKAIIQXBqIgY2AgggACgCDCECDAkLQX8hAgJAIAAoAgwiBkEQaiIEIAAoAghPDQBBfyECIARBsL8cRg0AQX8hAiAGQRxqKAIAQQhHDQAgAEECEIsKIABBfxDwJyECIAAgACgCCEFwajYCCAsgASAAKAIQKAKEAzYCCCAAIAFBCGoQ8S0hBCAAQX8QiwogAEF/EPAnIQYgACAAKAIIQXBqNgIIIAAgA0EBIAQQ8i0gAUEQaiIEQn83AwAgBCAGNgIAIAFCfzcDCCABIAI2AgwgA0EMaiABQQhqEOktIAMtAAQNCQwKC0L/////DyEKAkAgACgCDCIEQRBqIgIgACgCCE8NACACQbC/HEYNACAEQRxqKAIAQQhHDQAgAEECEIsKIABBfxDwJyECIAAgACgCCEFwajYCCCACrSEKCyABIAAoAhAoAoQDNgIIIAAgAUEIahDxLSECIABBfxCLCiAAQX8Q8CchBCAAIAAoAghBcGo2AgggACADQQEgAhDyLQJAAkAgAygCHCICIAMoAiAiBU8NACACIAStQiCGIAqENwIAIAJBCGohAgwBCyACIAMoAhgiBmtBA3UiB0EBaiIIQYCAgIACTw0FAkACQCAFIAZrIgVBAnUiCSAIIAkgCEsbQf////8BIAVB+P///wdJGyIFDQBBACEIDAELIAVBgICAgAJPDQcgBUEDdBCmASEICyAIIAdBA3RqIgcgBK1CIIYgCoQ3AgAgByEEAkADQCACIAZGDQEgBEF4aiIEIAJBeGoiAikCADcCAAwACwALIAMgB0EIaiICNgIcIAMoAhghBiADIAQ2AhggAyAIIAVBA3RqNgIgIAZFDQAgBhCkAQsgAyACNgIcIAMtAAQNCAwJCwJAIAAoAgwiBEEQaiICIAAoAghPDQAgAkGwvxxGDQAgBEEcaigCAEEIRw0AAkAgAygCNCICQX9GDQAgACACEI0SCyAAQQIQiwogAyAAQX8Q8Cc2AjQgACAAKAIIQXBqNgIICyAAQQEQiwoMCAsCQAJAAkACQCADLQAEDgQAAQIDCwsgAEHxrxEQnBIMCgsgAEGF2BEQnBIMCQsgAEGI1REQnBIMCAsgAEG52BEQnBIMBwsgASACNgIAIABBjroRIAEQsigACyADIAAQ5S0gAEEBEIsKDAULEKwBAAsQqAcAC0F/IQULAkAgAkEgaiIIIAZPDQAgCEGwvxxGDQAgAkEsaigCAEEIRw0AIABBAxCLCiAAQX8Q8CchBCAAIAAoAghBcGo2AggLIAEgACgCECgChAM2AgggACABQQhqEPEtIQIgAEF/EIsKIABBfxDwJyEGIAAgACgCCEFwajYCCCAAIANBASACEPItIAEgBjYCECABIAQ2AgwgASAFNgIIIAFBfzYCFCADQQxqIAFBCGoQ6S0gAy0ABEUNAQsgACADEOYtCyABQSBqJABBAQu0AQECfyMAQRBrIgEkAAJAAkACQCAAQQJBABCwKCICQf+zERCCEg0AIABBhAZB97MRQQBBABCbEgwBCwJAIAJBjv8QEIISDQAgAEGFBkGG/xBBAEEAEJsSDAELAkAgAkHkpBEQghINACAAQYYGQdykEUEAQQAQmxIMAQsgAkGe8BAQghINASAAQYcGQZbwEEEAQQAQmxILIAFBEGokAEEBDwsgASACNgIAIABB6LkRIAEQsigAC6ACAQJ/AkACQCABQQFIDQAgACgCDCIBQbC/HCABIAAoAggiAkkbIQEMAQsgACgCCCICIAFBBHRqIQELAkACQCACQXxqKAIADQBBACECDAELIAJBcGooAgAhAgsCQAJAAkACQAJAIAEoAgwiA0F5ag4DAAIBAgsgASgCACIDLQAEDQMgAyACNgIQIAJFDQIgASgCACIBLQABQQRxRQ0CIAItAAFBA3FFDQIgAEEQaigCACABIAIQh0sMAgsgASgCACACNgIIIAJFDQEgASgCACIBLQABQQRxRQ0BIAItAAFBA3FFDQEgAEEQaigCACABIAIQh0sMAQsgACgCECADQQJ0akGgA2ogAjYCAAsgACAAKAIIQXBqNgIIDwsgABCdSwALxAEBAX8gAEEBQQAQ5C0hAQJAAkAgAC8BMCAALwEySw0AAkACQAJAAkAgAS0ABEF/ag4DAAECAwsgAEEBELMoIABB8LF/IAEoAggQyycaQQIPCyAAQQAQsyggAEHwsX8gASgCCBDLJxpBAg8LIABBABCzKCAAQY/YERCcEkECDwsgAEEBEIsKIAAvATAgAC8BMksNASAAQQE6AAMgACAAKAIIQXBqNgIMQX8PCyAAQaD4EUEAELIoAAsgAEHi6hBBABD3LQALmwEBBn8jAEEQayIBJAAgAEEBQQgQ+C0gASAAKAIQKAKEAzYCDCAAIAFBDGoQ8S0aIAAoAgwhAiAAKAIIIQMgABC/LSEEIAAoAgwhBSAAKAIIIQYgAEEBEIsKIAAgBBDALSAAIAQgBCAAQQAQxC0gBiAFa0EEdSIFIAMgAmtBBHUiAhD5LSAAIAUQri0gACACEIsKIAFBEGokAEEBCxQAIABBOEHDABDEJyABKAIAEOAtC2EBAX8jAEEQayIEJAAgAEF/EIsKIAQgAEF/EPAnNgIMIAAgACgCCEFwajYCCCABQShqIARBDGoQ7Q0gACACEIsKIAMgAEF/EPAnNgIkIAAgACgCCEFwajYCCCAEQRBqJAALowEBA38jAEEQayIBJAAgASAAKAIQKAKEAzYCDCAAIAFBDGoQ8S0hAgJAAkAgACgCCCAAKAIMa0EEdSIDQQJIDQAgACADEIsKIABBfxDwJyEDIAAgACgCCEFwajYCCCACIABBASADEOgtIAAgAxCNEgwBCyAAEKYSIAIgACAAKAIIIAAoAgxrQQR1ENwtIAAgACgCCEFwajYCCAsgAUEQaiQAQQELfAECfyMAQRBrIgEkACABIAAoAhAoAoQDNgIMIAAgAUEMahDxLSECAkACQCAAKAIIIAAoAgxrQRFIDQAgAiAAQQEQ3i0MAQsgAEH/1BEQnBIgAiAAIAAoAgggACgCDGtBBHUQ3i0gACAAKAIIQXBqNgIICyABQRBqJABBAQvVBQENfyMAQSBrIgEkACAAQQFBBxD4LSAAQQEQgC4hAiABIAAoAhAoAoQDNgIQIAAgAUEQahDxLSEDIAAoAgwhBCAAKAIIIQUgAEEAQQAQrhIgBSAEa0EEdSEGIAAoAgggACgCDGtBBHUhBwJAAkAgAg0AIAMgACAHENwtQXAhAgwBCyAAIAIQ7ycgACAHQc+vERCfEiAAQQBBABCuEiAAIAdB04IREJ8SIABBABCzKCAAIAdB87wREJ8SIABBAEEAEK4SIAJBACACQQBKG0EBaiEIIAAoAgggACgCDGtBBHUhBUEBIQIDQAJAIAIgCEcNACAAIAUQiwogAEGIBkEAQQFBABCbEiADIABBfxDwJzYCNEFQIQIMAgsgAEEBIAIQyycaIABBf0EBEOQtIQQgACgCCCEJAkAgBEUNACAAKAIMIQogASAAKAIQKAKEAzYCECAAIAFBEGoQ8S0hCyAAKAIMIQwgACgCCCENIAAgBCAJIAprQQR1IAsQ8i0gACANIAxrQQR1IgkQiwogAEF/EPAnIQogACAAKAIIQXBqNgIIIAAgCRCLCiAAQX8Q8CchCSAAIAAoAghBcGo2AgggACAJEO8nIAAgBSACEIIuIAAgAhDvJyAAIAcQiwogACAGEIsKIAAgBRCLCiAAQYkGQQBBBEEAEJsSIABBfxDwJyEJIAAgACgCCEFwajYCCCAAIAcQiwogACAGEIsKIAAgBRCLCiAAQYoGQQBBA0EAEJsSIABBfxDwJyELIAAgACgCCEFwajYCCCABIAo2AhggASALNgIUIAEgCTYCECABQX82AhwgBEEMaiABQRBqEOktAkAgBC0ABEUNACAAIAQQ5i0LIAAgACgCCEFgajYCCCACQQFqIQIMAQsLIAAgCUFwajYCCCABIAI2AgAgAEHduhEgARCyKAALIAAgACgCCCACajYCCCAAIAYQiwogAUEgaiQAQQELogIBCX8jAEEQayIBJAAgAEEBQQgQ+C0gASAAKAIQKAKEAzYCDCAAIAFBDGoQ8S0hAiAAIAAoAgggACgCDGtBBHUiAxCLCiAAQYsGQQBBAUEAEJsSIAAoAgwhBCAAKAIIIQUgACADEIsKIABBjAZBAEEBQQAQmxIgACgCDCEGIAAoAgghByAAIAMQiwogAEGNBkEAQQFBABCbEiAAKAIMIQggACgCCCEJIABBARCLCiAAIAUgBGtBBHUQiwogACAHIAZrQQR1EIsKIAAgCSAIa0EEdRCLCgJAIABBA0EAQQAQyidFDQACQCACLQAEDQAgAiAAIAAoAgggACgCDGtBBHUQ3i0LIAAgACgCCEFwajYCCAsgACADEIsKIAFBEGokAEEBCzkBAX8jAEGQBGsiAyQAIAMgAjYCjAQgA0GABCABIAIQm0gaIABBARDMLSAAIAMQmUwgAEECEINLAAsbAAJAIAAgARCISyACRg0AIAAgASACEK5LAAsLswQBA38jAEEQayIFJAAgACAEQQEQ5C0hBiABKAIIIAEoAgxrQQR1IQcCQAJAAkACQAJAAkAgAg4CAAECCwJAIAdBAUgNACABIAAQwC0gACAEEIsKIABBfxDwJyEBIAAgACgCCEFwaiIENgIIIAYgACAEIAAoAgxrQQR1IAEQ6C0gACABEI0SIAAgACgCCEFwajYCCAwDCyAAEKYSIAYgACAAKAIIIAAoAgxrQQR1ENwtIAAgACgCCEFwajYCCAwCCyAHQQBMDQIgAUF/QQEQ5C0iAkUNAyABIAEoAghBcGo2AgggACADEIsKIAAgBBCLCiAAQY4GQQBBAkEAEJsSIABBfxDwJyEBIAAgACgCCEFwajYCCCAAIAMQiwogACAEEIsKIABBjwZBAEECQQAQmxIgAEF/EPAnIQcgACAAKAIIQXBqNgIIIAAgAxCLCiAAIAQQiwogAEGQBkEAQQJBABCbEiAAQX8Q8CchBCAAIAAoAghBcGo2AgggBSAENgIMIAUgBzYCBCAFIAE2AgAgBUF/NgIIIAJBDGogBRDpLSACLQAERQ0BIAAgAhDmLQwBCwJAIAdBAUgNACABIAAQwC0gBiAAIAAoAgggACgCDGtBBHUQ3i0gACAAKAIIQXBqNgIIDAELIABB4tUREJwSIAYgACAAKAIIIAAoAgxrQQR1EN4tIAAgACgCCEFwajYCCAsgBUEQaiQADwsgAEG9uRFBABCyKAALIABBtLoRQQAQsigAC3sBBH8gAEHtsX8Q/S0iAUEBELMoIABBARCLCiAAIAEQwC0gASAAQQIQxC0hAiAAQe2xfxCLCiAAKAIMIQMgACgCCCEEIABB7LF/EIsKIAAgASACIAQgA2tBBHUgACgCCCAAKAIMa0EEdRD5LSAAIAAoAghBYGo2AghBAAt7AQR/IABB7bF/EP0tIgFBABCzKCAAQQEQiwogACABEMAtIAEgAEECEMQtIQIgAEHtsX8QiwogACgCDCEDIAAoAgghBCAAQeyxfxCLCiAAIAEgAiAEIANrQQR1IAAoAgggACgCDGtBBHUQ+S0gACAAKAIIQWBqNgIIQQALtgIBBX8gAEHtsX8Q/S0hASAAQeyxf0EBEOQtIQICQCABRQ0AIAEgASgCHBCQEiABKAIkIgNBADYCDCADIAEoAhwiBDYCBCADIARB0AJqNgIIIAMgBEEQaiIFNgIAIARBADYCDCABIAM2AhQCQCABKAIsQQhGDQAgAUEIEP4tIAEoAhQoAgAhBQsgASAFNgIMIAFBADoAAyABIAU2AgggAUEANgIwQS0hAwJAIAEoAihBLUYNACABQShBABD/LSABKAIoIQMLIANBACADQQBKGyEEQQAhAwNAIAMgBEYNASABKAIcIANBBHRqQQA2AgwgA0EBaiEDDAALAAsCQCACRQ0AIAItAAQNACAAQY/YERCcEiACIAAgACgCCCAAKAIMa0EEdRDeLSAAIAAoAghBcGo2AggLQQALQwACQAJAIAFB8bF/SA0AIAAoAgggAUEEdGohAQwBCyAAIAEQqhIhAQtBACEAAkAgASgCDEEKRw0AIAEoAgAhAAsgAAtmAQN/AkAgAUHJpJLJAEsNACAAIAAoAiQiAiAAKAIsQRxsIAFBHGwiAyAALQACEKJMIQQgACABNgIsIAAgBDYCJCAAIAQgA2pBZGo2AiAgACAEIAAoAhQgAmtqNgIUDwsgABCmSwAL9gIBBH8CQCABQYGAgCBIDQACQCACRQ0AIAAgACgCFCICQWRqIgM2AhQgACADKAIANgIMIAAgAkFsaigCADYCCAsgAEEEEINLAAsCQCABQQVqIgRB/////wBLDQAgACAAIAAoAhwiBSAAKAIoQQR0IARBBHQgAC0AAhCiTCIDNgIcIAAoAigiAiAEIAIgBEobIQYDQAJAIAIgBkcNACAAIAQ2AiggACADIAFBBHRqNgIYIAAgAyAAKAIIIAVrajYCCCAAQTxqIQIDQAJAIAIoAgAiAg0AIAAoAhQhBiAAKAIkIQICQANAIAIgBksNASACIAMgAigCCCAFa2o2AgggAiADIAIoAgAgBWtqNgIAIAIgAyACKAIEIAVrajYCBCACQRxqIQIMAAsACyAAIAMgACgCDCAFa2o2AgwPCyACIAMgAigCBCAFa2o2AgQgAkEQaiECDAALAAsgAyACQQR0akEANgIMIAJBAWohAgwACwALIAAQpksAC58BAAJAAkAgAUEBSA0AIAAoAgwgAUEEdGpBcGoiAUGwvxwgASAAKAIISRshAQwBCwJAIAFB8bF/SA0AIAAoAgggAUEEdGohAQwBCyAAIAEQqhIhAQtBACEAAkACQAJAAkACQCABKAIMQXpqDgYAAwQBBAIECyABKAIAKAIQDwsgASgCACgCBA8LIAEoAgAoAgQPCyABKAIAEI5LIQALIAALyAEBBX8gAEHtsX8QiwogACAAKAIIIAAoAgxrQQR1IgEQgC4iAkEAIAJBAEobQQFqIQNBASECAkADQCACIANGDQEgACABIAIQyycaIABBf0EAEOMtIQQgACAAKAIIQXBqNgIIAkAgBEF/Rg0AIABB8LF/IAQQyycaIABBf0EBEOQtIQUgACAAKAIIQXBqNgIIAkAgBUUNACAFLQAEDQAgBSAAEOUtCyAAIAQQjRILIAJBAWohAgwACwALIAAgACgCCEFwajYCCEEAC/MBAQJ/AkACQCABQQFIDQAgACgCDCABQQR0akFwaiIBQbC/HCABIAAoAghJGyEBDAELAkAgAUHxsX9IDQAgACgCCCABQQR0aiEBDAELIAAgARCqEiEBCwJAIAEoAgAiAy0ABA0AIAAoAgghBCAAIAMgAhCbSyICIARBcGoiAykDADcDACACQQhqIANBCGopAwA3AwACQCAAKAIIIgJBfGooAgBBBkgNACABKAIAIgEtAAFBBHFFDQAgAkFwaigCACIDLQABQQNxRQ0AIABBEGooAgAgASADEJxLIAAoAgghAgsgACACQXBqNgIIDwsgABCdSwALqgMBBX8gAEHtsX9BABDjLSEBIABB7LF/EIsKIAAgACgCCCAAKAIMa0EEdSICQfO8ERCKChpBfSEDAkAgAEF/EIguDQAgACAAKAIIQXBqNgIIIAAgAkHTghEQigoaIABBARCLCkF+IQMgAEF+IAEQgi4gACAAKAIIQXBqNgIIIAAgAkHPrxEQigoaIABBf0EAEOMtIQEgACAAKAIIQXBqNgIIIAAgAUF/aiIBEO8nIAAgAkHPrxEQnxIgAQ0AIABBARCzKCAAIAJB87wREJ8SAkAgAEHrsX9BARDkLSIBRQ0AIAEtAAQNACAAIAJB04IREIoKGiABIAAgACgCCCAAKAIMa0EEdRDcLSAAIAAoAghBcGo2AggLIABB6rF/EIsKIAAgACgCCCAAKAIMa0EEdSIEEIAuIgJBACACQQBKG0EBaiEFQQEhAgNAAkAgAiAFRw0AIAAgACgCCEFwajYCCAwCCyAAIAQgAhDLJxogAEF/QQAQ4y0hASAAIAAoAghBcGo2AggCQCABQX9GDQAgACABEI0SCyACQQFqIQIMAAsACyAAIAMQpi1BAAu2AgEFfyAAQe2xfxCLCiAAIAAoAgggACgCDGtBBHUiAUHzvBEQigoaAkAgAEF/EIguDQAgACAAKAIIQXBqNgIIIABBARCzKCAAIAFB87wREJ8SAkAgAEHssX9BARDkLSIBRQ0AIAEtAAQNACABIABBARDeLQsgAEHrsX8QiwogACAAKAIIIAAoAgxrQQR1IgIQgC4iAUEAIAFBAEobQQFqIQNBASEBA0AgASADRg0BIAAgAiABEMsnGiAAQX9BABDjLSEEIAAgACgCCEFwajYCCAJAIARBf0YNACAAQfCxfyAEEMsnGiAAQX9BARDkLSEFIAAgACgCCEFwajYCCAJAIAVFDQAgBS0ABA0AIAUgABDlLQsgACAEEI0SCyABQQFqIQEMAAsACyAAIAAoAghBYGo2AghBAAuNAQECfwJAIABB7bF/QQEQ5C0iAUUNACABLQAEDQACQCAAKAIIIAAoAgxrQQFIDQAgAEHtsX8QiwogAEF/EPAnIQIgACAAKAIIQXBqNgIIIAEgAEEBIAIQ6C0gACACEI0SDAELIAAQphIgASAAIAAoAgggACgCDGtBBHUQ3C0gACAAKAIIQXBqNgIIC0EAC2kBAX8CQCAAQe2xf0EBEOQtIgFFDQAgAS0ABA0AAkAgACgCCCAAKAIMa0EBSA0AIAEgAEEBEN4tDAELIABB/9QREJwSIAEgACAAKAIIIAAoAgxrQQR1EN4tIAAgACgCCEFwajYCCAtBAAtxAQJ/AkAgAEHtsX9BARDkLSIBRQ0AIAAoAgwiAiAAKAIITw0AIAJBsL8cRg0AIAIoAgxBCEcNAAJAIAEoAjQiAkF/Rg0AIAAgAhCNEgsgAEEBEIsKIAEgAEF/EPAnNgI0IAAgACgCCEFwajYCCAtBAAt4AAJAAkAgAUEBSA0AIAAoAgwgAUEEdGpBcGoiAUGwvxwgASAAKAIISRshAQwBCwJAIAFB8bF/SA0AIAAoAgggAUEEdGohAQwBCyAAIAEQqhIhAQsCQAJAAkAgASgCDCIADgICAAELIAEoAgBBAEcPC0EBIQALIAALEQAgAEH74hFB4IkUEIouQQEL/QEBBH8jAEEQayIDJAACQAJAIAFFDQBBACEEIAIhBQJAA0AgBSgCAEUNASAFQQhqIQUgBEEBaiEEDAALAAsgAEHwsX9BvOMRQQEQrS0aIABBfyABEIoKGgJAAkAgACgCCCIGQXBqIgVBsL8cRg0AIAZBfGooAgBBB0YNAQsgACAFNgIIIABB7rF/IAEgBBCtLQ0CIABBfxCLCiAAQX0gARCfEgsgAEF+EK4tCwJAA0AgAigCACIFRQ0BIAAgAigCBCAFQQBBABCbEiAAQX4gAigCABCfEiACQQhqIQIMAAsACyADQRBqJAAPCyADIAE2AgAgAEGl+xEgAxCyKAALxwEBBX8jAEEgayIBJAACQCAAKAIIIgIgACgCDCIDRg0AIAAoAkgiBCAAIAQoAgAoAgwRAwAgAiADa0EEdSICQQAgAkEAShtBAWohBUEBIQIDQAJAIAIgBUcNACAEIAQoAgAoAhQRAQAMAgsgASAAIAIgAUEcahCMLjYCFCABIAEoAhw2AhggBCgCACgCECEDIAEgASkCFDcDCCAEIAFBCGogAxEDACAAIAAoAghBcGo2AgggAkEBaiECDAALAAsgAUEgaiQAQQALywQBBH8jAEGgAWsiAyQAIAEhBAJAIAFBf2pB8LF/SQ0AIAEgACgCCCAAKAIMa0EEdWpBAWohBAsCQAJAIAAgBEHorBEQsktFDQAgACAEEIsKIABBAUEBEJ0SIABBfyACEMInIgENASAAQaWuEUEAELIoAAsCQAJAAkACQAJAAkACQAJAIAAgARCISw4HAAEGAgUDBAYLIABB/aQRQQMQqBIMBgsgAEHAtRFBp7kRIAAgARCILhsQnBIMBQsgACADQRBqIANBEGogACABQQAQoC4Qv0sgA0EQamsQqBIMBAsgACABEI1LIQUgA0EQaiEEQQAhAQNAAkACQAJAIAEOBAIBAQABCyAAIANBEGogBCADQRBqaxCoEgwGCyAEQazAADsAACAEQQJqIQQLIAQgBSABQQJ0aioCALsQv0shBCABQQFqIQEMAAsACyAAIAEQiwoMAgsgACADQRBqIANBEGogACABEItLEMBLIANBEGprEKgSDAELAkACQCABQQFIDQAgACgCDCABQQR0akFwaiIEQbC/HCAEIAAoAghJGyEEDAELAkAgAUHxsX9IDQAgACgCCCABQQR0aiEEDAELIAAgARCqEiEECwJAAkAgBCgCDCIGQQJGDQACQCAGQQlHDQAgBCgCAEEQaiEFDAILQQAhBSAGQQZIDQELIAQoAgAhBQsgAEEQaigCACAFEKdLIQQgACABELNLIQEgAyAErTcDCCADIAE2AgAgAEHE7BAgAxDFLQsgAEF/IAIQwichAQsgA0GgAWokACABCzkBAn9BACEBQQAhAgN/AkAgAUEQRw0AIAIPCyAAIAFB8IkUaigCABEAACACaiECIAFBBGohAQwACwudAQEBfyAAQbONEUGAihQQii4gAEEAQQEQrhIgAEF/EIsKIABDAAAAAEMAAAAAQwAAAAAQjy4gAEF+EMotIABBfhDuLSAAIAAoAghBcGo2AgggAEGRBkEAQQBBABCbEiAAQX5Boe0QEJ8SIABBkgZBAEEAQQAQmxIgAEF+Qb2kERCfEiAAKAIIQXBqIgEoAgBBAToABCAAIAE2AghBAQtrAQF/AkBBAC0AlJkeQQFHDQAgACgCCEEQaiAAKAIUKAIITQ0AIABBARCvEg0AIABBtu8QQQAQsRIgABCyEgALIAAoAggiBEEFNgIMIAQgAzgCCCAEIAI4AgQgBCABOAIAIAAgBEEQajYCCAuXAQEEfyMAQRBrIgEkACAAQQEQki4hAiABQQA2AgwgAEECIAFBDGoQsCghAwJAAkACQCABKAIMQQFHDQACQAJAIAMtAAAiBEFPag4DBAMBAAsgBEGIf2oOAwMCAAELIAJBCGohAgwCCyABIAM2AgAgAEHzjBEgARCyKAALIAJBBGohAgsgACACKgIAuxC6KCABQRBqJABBAQurAwIEfwF8IwBBEGsiASQAAkACQAJAAkACQAJAIAAgAUEIahCxKEUNAAJAAkACQAJAAkACQAJAAkACQCABKAIIIgIOBwoBAgMEBQYACyACQZ1+ag4DBggHCAsgABCTLhoMCQsgABCULhoMCAsgABCVLhoMBwsgABCWLhoMBgsgABCXLhoMBQsgABCYLhoMBAsgAEEBEJIuIQMgAUEANgIMIABBAiABQQxqENMtIQQgAEEDEMYoIgJBAEgNBSACQQxqIAEoAgxLDQUgBCACaiIAIAMpAAA3AAAgAEEIaiADQQhqKAAANgAAQQAhAAwECyAAQQEQki4hAyABQQA2AgwgAEECIAFBDGoQ0y0hBCAAQQMQxighAiAAQQQQuyghBSACQQBIDQUgAkEQaiABKAIMSw0FIAQgAmoiACADKQAANwAAIABBCGogA0EIaigAADYAACAAIAW2OAAMQQAhAAwDCyABIABBAUEAELAoNgIAIABBl40RIAEQsigACyAAEJkuGgtBASEACyABQRBqJAAgAA8LIABB+8URQQAQsigACyAAQcvGEUEAELIoAAseAQF/AkAgACABEI1LIgINACAAIAFBBRCuSwALIAILGgEBfyAAIABBARCSLiIBIAEQmi67ELooQQELUwICfQF/QwAAgD8hAQJAIABBARCSLiIDIAMQmi4iAkMAAAAAXkUNAEMAAIA/IAKRlSEBCyAAIAEgAyoCAJQgASADKgIElCABIAMqAgiUEI8uQQELUQICfwF9IABBARCSLiEBIAAgAEECEJIuIgIqAgggASoCCJMiAyADlCACKgIAIAEqAgCTIgMgA5QgAioCBCABKgIEkyIDIAOUkpKRuxC6KEEBC1ACAn8BfSAAQQEQki4hASAAIABBAhCSLiICKgIIIAEqAgiTIgMgA5QgAioCACABKgIAkyIDIAOUIAIqAgQgASoCBJMiAyADlJKSuxC6KEEBCxsAIAAgAEEBEJIuIABBAhCSLhCaLrsQuihBAQuDAQMDfwF8A30gAEEBEJIuIQEgAEECEJIuIQIgAEEDELsoIQQgACACKgIAIgUgBSABKgIAIgaTIAS2IgWUIAaSIAVDAACAP1siAxsgAioCBCIGIAYgASoCBCIHkyAFlCAHkiADGyACKgIIIgYgBiABKgIIIgeTIAWUIAeSIAMbEI8uQQELGwEBfyAAIABBARCSLiIBIAEQmi6RuxC6KEEBCyUAIAAqAgggASoCCJQgACoCACABKgIAlCAAKgIEIAEqAgSUkpILQwICfwJ+IABBARCSLiEBIABBAhCSLiECIAAgASkCACIDp74gAikCACIEQiCIp76UIASnviADQiCIp76Uk7sQuihBAQteAgJ/BX0gAEEBEJIuIQEgAEECEJIuIQIgACABKgIEIgMgAioCCCIElCACKgIEIgUgASoCCCIGlJMgBiACKgIAIgeUIAQgASoCACIGlJMgBiAFlCAHIAOUkxCPLkEBC1cDAn8BfAF9IABBARCSLiEBIABBAhCSLiECIABBAxC7KCEDIAAgAioCACADtiIElCABKgIAkiACKgIEIASUIAEqAgSSIAIqAgggBJQgASoCCJIQjy5BAQtXAwJ/AXwBfSAAQQEQki4hASAAQQIQki4hAiAAQQMQuyghAyAAIAEqAgAgAioCACADtiIElJMgASoCBCACKgIEIASUkyABKgIIIAIqAgggBJSTEI8uQQELRAIC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ahDTLgwHCyAAQQEQ0C4hAyABQRBqQcCMFEHAABBLGkEAIQQCQANAIARBBEYNASAEQQJ0IQVBACECA0ACQCACQQRHDQAgBEEBaiEEDAILIAFBEGogAiAFckECdGogAyACQQR0IAVyaioCADgCACACQQFqIQIMAAsACwALIAAgAUEQahDTLgwGCyAAQQEQ0C4gAUEQaiAAQQIQuyi2IABBAxC7KLYgAEEEELsotkMAAIA/ENYuAkAgASoCHCIGQwAAAABbDQAgBkMAAIA/Ww0AIABDAACAPyAGlSIGIAEqAhCUIAYgASoCFJQgBiABKgIYlBCPLgwGCyAAIAEqAhAgASoCFCABKgIYEI8uDAULIABBARDQLiEFIAFBADYCECAAQQIgAUEQahDTLSEDIABBAxDGKCICQQBIDQIgAkHAAGogASgCEEsNAiADIAJqIAVBwAAQSxpBACECDAULIABBAUEAELAoIQIgAUHw7BE2AgQgASACNgIAIABB8IoRIAEQsigAC0EEIQIgAEEBENAuIAFBEGogAEECELsotiAAQQMQuyi2IABBBBC7KLYgAEEFELsothDWLiAAIAEqAhC7ELooIAAgASoCFLsQuiggACABKgIYuxC6KCAAIAEqAhy7ELooDAMLIABBpMYRQQAQsigACyAAEKYSC0EBIQILIAFB0ABqJAAgAgsaAQF9IAAqAgAhAiABQQM2AgwgASACuzkDAAsaAQF9IAAqAgQhAiABQQM2AgwgASACuzkDAAsaAQF9IAAqAgghAiABQQM2AgwgASACuzkDAAsaAQF9IAAqAgwhAiABQQM2AgwgASACuzkDAAsaAQF9IAAqAhAhAiABQQM2AgwgASACuzkDAAsaAQF9IAAqAhQhAiABQQM2AgwgASACuzkDAAsaAQF9IAAqAhghAiABQQM2AgwgASACuzkDAAsaAQF9IAAqAhwhAiABQQM2AgwgASACuzkDAAsaAQF9IAAqAiAhAiABQQM2AgwgASACuzkDAAsaAQF9IAAqAiQhAiABQQM2AgwgASACuzkDAAsaAQF9IAAqAighAiABQQM2AgwgASACuzkDAAsaAQF9IAAqAiwhAiABQQM2AgwgASACuzkDAAsaAQF9IAAqAjAhAiABQQM2AgwgASACuzkDAAsaAQF9IAAqAjQhAiABQQM2AgwgASACuzkDAAsa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KCABIAY3A3ggAiABQShqEM4gIAJBAToAJEEAIQIMBwsgAEEBEIkvIQIgAEECEJIuIQMgAEEDEJIuIQAgASADKQIAIgY3A3ggASAAKQIAIgc3A2ggASAGNwM4IAEgBzcDMCACIAFBOGogAUEwahCTLCACQQE6ACRBACECDAYLIABBARCJLyECIABBAhCSLiEDIABBAxCSLiEEIABBBBCSLiEAIAEgAykCACIGNwN4IAEgBCkCACIHNwNoIAEgACkCACIINwNgIAEgBjcDUCABIAc3A0ggASAINwNAIAIgAUHQAGogAUHIAGogAUHAAGoQryAgAkEBOgAkQQAhAgwFCyAAQQEQiS8iABCxICAAQQE6ACRBACECDAQLIABBARCJLyIAIAAoAgAiAjYCBAJAIAIgACgCCEYNACAAIAFB+ABqQQBBACAAQQhqEOUNIgIQ5g0gAhDnDRoLIAAgACgCDCICNgIQAkAgAiAAKAIURg0AIABBDGogAUH4AGpBAEEAIABBFGoQzCwiAhDNLCACEM4sGgsgAEEBOgAkQQAhAiAAQQA6ABwMAwsgAEEBEL0nIQMgAEECEL0nIQVBACECQQAhBAJAIAAoAgggACgCDGtBMEcNACAAQQNBDxDFKCIERQ0FCyABQfgAaiADIAUgBBDbHyADQQE6ACQMAgsgAEEBEL0nIQNByAAQpgEiAkEAOgAgIAJBATYCACACQgA3AgQgAkEANgJEIAJCADcCPCACQQxqQgA3AgAgAkEUakIANwIAIAJBBGogAxDwICIDIANDAAAAPxCLLCABIAI2AnggAUHoAGogAxCHLAJAAkAgASgCaEUNACAAIAFB6ABqIAFB+ABqEIovDAELIAAQphILIAFB6ABqEOIbGiABQfgAahCLLxpBASECDAELQQEhAiABQegAaiAAQQEQvSdDAAAAPxDsGyEDIABBEEEpEMQnIQAgASADKgIAIgk4AnggAygCDCEEIANBADYCDCADKQIEIQYgA0IANwIEIAAgBDYCDCAAIAY3AgQgACAJOAIAIAFBADYChAEgAUIANwJ8IAFB+ABqQQRqEOEbGiADQQRqEOEbGgsgAUGQAWokACACDwsgAUGzqhE2AgQgAUEANgIAIABB8IoRIAEQsigACyAAQQNB3+MRELYoAAsIACABEIcvGgsRACABQQxqEOsLGiABEIIG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AQF/AkAgAEEBQSgQxSgiAQ0AIABBAUHauxEQtigACyABCyIBAX8CQCAAQQFBKRDFKCIBDQAgAEEBQem7ERC2KAALIAELRAAgAEEwQRAQxCciAEIANwMAIABBADoAHCAAQgA3AyggAEEBOgAkIABBADYCICAAQQhqQgA3AwAgAEEQakIANwMAQQELHQAgAEHC+hBBgI4UEIouIAAoAhBBxgY2AtRTQQELCAAgARChCBoLzgEBBH8jAEEgayIBJAAgAEEBEJIuIQIgAEECEJIuIQMgAUEANgIcIAFCADcCFCABQQA2AhAgAUIANwIIIAAgAUEUaiABQQhqEJIvIAAQky8hBCABQQRqIAAoAkgoAhwiACACKgIAIAIqAgQgAyoCACADKgIEIAEoAgggASgCFCICIAEoAhggAmtBAnUgACgCACgCDBFbACABKAIEIQAgAUEANgIEIAQgABCULyABKAIEEJUvIAFBCGoQyQcaIAFBFGoQygcaIAFBIGokAEEBC6YBAQJ/IwBBEGsiAyQAIABBA0EHEPgtQQEhBANAAkAgAEEDIAQQyydBB0YNACAAIAAoAghBcGo2AgggA0EQaiQADwsgAEHhnBEQly8gAyAAQX8Quyi2OAIMIAAgACgCCEFwajYCCCAAQeiNERCXLyADIABBfxC/KDYCCCABIANBDGoQyxkgAiADQQhqEOgQIAAgACgCCEFwajYCCCAEQQFqIQQMAAsACxQAIABBBEERENQoIgBBADYCACAACxcBAX8gACgCACECIAAgATYCACACEJUvCy8BAX8CQCAARQ0AIAAgACgCBCIBQX9qNgIEIAFBAUcNACAAIAAoAgAoAgQRAQALC8kBAgN/AXwjAEEgayIBJAAgAEEBEJIuIQIgAEECELsoIQQgAUEANgIcIAFCADcCFCABQQA2AhAgAUIANwIIIAAgAUEUaiABQQhqEJIvIAAQky8hAyABQQRqIAAoAkgoAhwiACACKgIAIAIqAgQgBLYgASgCCCABKAIUIgIgASgCGCACa0ECdSAAKAIAKAIQEVwAIAEoAgQhACABQQA2AgQgAyAAEJQvIAEoAgQQlS8gAUEIahDJBxogAUEUahDKBxogAUEgaiQAQQELzgEBAn8CQCAALQABIgJBBHFFDQAgACACQfsBcToAASAAIAAoAhAiAigCHDYCQCACIAA2AhwLAkBBAC0AlJkeQQFHDQAgACgCCEEQaiAAKAIUKAIITQ0AIABBARCvEg0AIABBtu8QQQAQsRIgABCyEgALIAAoAgghAiAAIAEgARBZEJBLIQEgACgCCCIDIAJBcGooAgAiAkEGai0AACACQRhqKAIAIAEQlUsiASkDADcDACADQQhqIAFBCGopAwA3AwAgACAAKAIIQRBqNgIIC6MBAQJ/IwBBEGsiAiQAAkAgACgCDA0AIABBDGohAyACQQxqIAFBAUEBIAAoAgQgACgCAGsgASgCACgCCBEKAAJAIAIoAgwiAUUNACABQQE6ABggASABKAIAKAIIEQAAIgFFDQAgASAAKAIAIAIoAgwoAhQQSxogAigCDCIAIAAoAgAoAgwRAQALIAMgAkEMahD2KBogAigCDBCZLwsgAkEQaiQACy8BAX8CQCAARQ0AIAAgACgCBCIBQX9qNgIEIAFBAUcNACAAIAAoAgAoAgQRAQALC9ACAQF/IABBz5MRQZiOFBCKLiAAQc+TERCtEiAAQX8QiwogACgCECAAKAIIQXBqKAIANgLYVyAAIAAoAghBcGo2AgggACgCEEHHBjYC2FMgAEHIBkEAQQBBABCbEiAAQX5BvaQREJ8SIABBAEEBEK4SIABByQZBAEEAQQAQmxIgAEF+QcikERCfEiAAQX0Q7i0gACgCCEFwaiIBKAIAQQE6AAQgACABNgIIIABB+ZMRQZiOFBCKLiAAQfmTERCtEiAAQX8QiwogACgCECAAKAIIQXBqKAIANgLcVyAAIAAoAghBcGo2AgggACgCEEHKBjYC3FMgAEHLBkEAQQBBABCbEiAAQX5BvaQREJ8SIABBAEEBEK4SIABBzAZBAEEAQQAQmxIgAEF+QcikERCfEiAAQX0Q7i0gACgCCEFwaiIBKAIAQQE6AAQgACABNgIIQQILEQAgAUEMahD3KBogARDrCxoL4QEBBH8jAEEgayIBJAACQCAAIAFBHGoQsSgiAkUNAAJAAkACQAJAIAEoAhxBdGoOAgIBAAsgAUHPkxE2AhQgASACNgIQIABB8IoRIAFBEGoQsigACyAAEKEvIQMgACgCCCAAKAIMa0EEdSICQQEgAkEBShtBf2ohBEEAIQIDQCACIARGDQIgAyAAIAJBAmoQki4QnCwgAkEBaiECDAALAAsgABChLyIDIAMoAgA2AgQLIANBDGpBABD0KCABQSBqJABBAA8LIAFBz5MRNgIEIAFBADYCACAAQfCKESABELIoAAseACAAQRBBEhDEJyIAQgA3AgAgAEEIakIANwIAQQELEQAgAUEMahD3KBogARDBDRoLlgIBBH8jAEEwayIBJAACQAJAIAAgAUEoahCxKCICRQ0AAkACQAJAAkAgASgCKEF0ag4CAgEACyABQfmTETYCFCABIAI2AhAgAEHwihEgAUEQahCyKAALQQAhAiAAEKIvIQMDQCACQQNGDQIgACACQQJqEL8oIgRBgIAETw0EAkAgBCADLwEQTQ0AIAMgBDsBEAsgASAEOwEuIAMgAUEuahDrKCACQQFqIQIMAAsACyAAEKIvIgNBADsBECADIAMoAgA2AgQLIANBDGpBABD0KCABQTBqJABBAA8LIAFB+ZMRNgIEIAFBADYCACAAQfCKESABELIoAAsgAUH//wM2AiQgASAENgIgIABBiqkRIAFBIGoQsigACygAIABBFEETEMQnIgBCADcCACAAQRBqQQA2AgAgAEEIakIANwIAQQELIgEBfwJAIABBAUESEMUoIgENACAAQQFBz5MRELYoAAsgAQsiAQF/AkAgAEEBQRMQxSgiAQ0AIABBAUH5kxEQtigACyABC4MBAQF/IABB2NoREK0SIABBfxCLCiAAKAIQIAAoAghBcGooAgA2AtRYIAAgACgCCEFwajYCCCAAKAIQQc0GNgLUVCAAQc4GQQBBAEEAEJsSIABBfkGh7RAQnxIgACgCCEFwaiIBKAIAQQE6AAQgACABNgIIIABBMUH5shFBzwYQlihBAAsIACABEMYOGgvyAQEEfyMAQRBrIgEkAAJAAkACQAJAIABBAUExEMUoIgJFDQAgAEECIAFBDGoQtCgiA0UNASACKAIAIgJFDQICQAJAAkAgASgCDCIEQd0ARg0AIARB5wBGDQIgBEGFAUcNASAAIAIoAki4ELooDAYLIAIoAkgiBEUNBCACKAJEIQIgACAEENstIAIgBBBLGgwFCyABQdjaETYCBCABIAM2AgAgAEHQihEgARCyKAALIAAgAigCDCACQQxqIAIsABdBAEgbEJwSDAMLIABBAUHY2hEQtigACyAAQQJBwK4RELYoAAsgABCmEgsgAUEQaiQAQQELLQACQAJAIAAoAgAiAA0AQQAhAAwB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akHgwB0gA0HbACADKAIAKAIMEQIAGxCSHCABQTRqIAFBHGogAEECEPovEP4FIAFBHGogAUE0ahDUHwJAAkAgAkECIAIoAgAoAgwRAgBFDQAgAiABKgIcEIEDIAIgASoCIBCDAwwBCyACQSkgAigCACgCDBECAEUNACACIAEqAhwQmQMgAiABKgIgEJsDCyACIAEqAiQQ8AIgAiABKgIoEPMCIAIgASoCLBD1AkEAIQAMBAsgABD9LygCBCICQQwgAigCACgCDBECAEUNASAAQTBBLBDEJyACQdABahDyLhoMAgsgASAAEP0vENwvIgI2AjQgAkUNACAAIAFBNGoQ/y8MAQsgABCmEgtBASEACyABQdAAaiQAIAAPCyABQdvbETYCBCABQQA2AgAgAEHwihEgARCyKAALJwEBfSAAKAIEIgAgACgCACgCbBELACECIAFBAzYCDCABIAK7OQMACycBAX0gACgCBCIAIAAoAgAoAnARCwAhAiABQQM2AgwgASACuzkDAAsdAQF9IAAoAgQqAlwhAiABQQM2AgwgASACuzkDAAsdAQF9IAAoAgQqAmAhAiABQQM2AgwgASACuzkDAAsdAQF9IAAoAgQqAmQhAiABQQM2AgwgASACuzkDAAtBAQJ9IAAoAgQiACAAKAIAKAJsEQsAIQIgACAAKAIAKAJwEQsAIQMgAUKAgICA0AA3AgggASADOAIEIAEgAjgCAAshAQF+IAAoAgQpAmAhAiABQoCAgIDQADcCCCABIAI3AgALCwAgAUEEahCkKxoLjgEBA38jAEEQayIBJAACQAJAIABBAiABQQxqELQoIgJFDQAgABCAMCEDIAEoAgxBlwFGDQEgAUHb2xE2AgQgASACNgIAIABB0IoRIAEQsigACyAAQQJBwK4RELYoAAsgACADQQRqKAIAQRxqKAIAIgNBGGooAgAgA0EcaigCABDfL7sQuiggAUEQaiQAQQELpgICBH8BfCMAQcAAayIBJAACQAJAIAAgAUE8ahCxKCICRQ0AIAAQgDAhAwJAAkACQAJAAkACQCABKAI8IgRB6H5qDgMBAgMACyAEQdsARw0GIAMoAgBBAhC7KCEFIAMoAgQgBbYQvQMhACADKAIEQwAAgD8QvwMgAygCACAAELMoQQEhAAwECyADIAFBMGpBkYkREJ4GIgAQ4C8gABCCBhoMAgsgAyABQSRqQcSHERCeBiIAEOAvIAAQggYaDAELIAMgAUEYakGDyBEQngYiABDgLyAAEIIGGgtBACEACyABQcAAaiQAIAAPCyABQdvbETYCBCABQQA2AgAgAEHwihEgARCyKAALIAFB29sRNgIUIAEgAjYCECAAQfCKESABQRBqELIoAAs6AQF/IABBBGooAgBBHGooAgAiAEEcaigCACECIABBGGooAgAhACABQQM2AgwgASAAIAIQ3y+7OQMACyIBAX8CQCAAQQFBGBDFKCIBDQAgAEEBQerNERC2KAALIAEL+AIBBH8gACABQQEQuwYhAyAAKAKMAyIEIABB/AJqIAQbEPMeIAMgAUMAAAAAW3IgACgCCCABQQ8QpwtyIQVBACEDAkADQCADQQVGDQEgACgCCBClCyEEAkACQCAAEJEMDQAgBCAFciEEDAELIABDAAAAAEEAELsGGkEBIQQLIAAoAghDAAAAAEEHEKcLIQUCQCACRQ0AIAAoAowBIgZFDQAgBigCCCIGQcgAaigCACAGQcwAaigCABCTDAsgBSAEciEFIAAoAggiBCAEKAIAKAKsAxEBACADQQFqIQMgACgCCC0AMEEEcQ0ACwsCQCACRQ0AIAAoAggoAoQNIgNFDQAgAygCCCIDRQ0AIANB4ABqIQMDQCADKAIAIgNFDQEgAygCDCIEKAJUIAQoAlhHDQAgBEHIAGooAgAgBEHMAGooAgAQkwwMAAsAC0EBIQMCQCAFQQFxDQAgACgCkAEgACgClAFHDQAgACgC/AEgACgCgAJHIQMLIAMLIgEBfwJAIAAgAUEPEMUoIgINACAAIAFB3+MRELYoAAsgAguUAQEDfyMAQRBrIgIkACACQQA2AgwgACgCACgCACIDKAKMAyIEIANB/AJqIAQbIgMQ8x4CQANAIAMoAgAiA0UNAQJAIAMoAgQiBEUNACAEIAEgAkEMaiAEKAIAKAIUEQQADQILIANBCGohAwwACwALIAAoAgAoAgAgASACKAIMEIEwIQMgACgCBCADNgIAIAJBEGokAAslACAAIAEQgjAiAEE4aiABQThqKAIANgIAIAAgASkDMDcDMCAACyIBAX8CQCAAQQFBJxDFKCIBDQAgAEEBQdvbERC2KAALIAELaAEBfyAAQQxBJxDEJyEDIAEoAgAhACABQQA2AgAgAigCACEBAkAgAA0AIANBADYCCCADIAE2AgQgA0EANgIADwsgACAAKAIAQQFqNgIAIANBADYCCCADIAE2AgQgAyAANgIAIAAQ3i8L1gIBA38gAEEkQS8QxCchAiABKAIAIQMgAkGAgIB4NgIgIAJBAzoAHCACQgA3AhQgAkKAgID8AzcCDCACQgE3AgQgAkGojhQ2AgACQAJAAkAgA0EUIAMoAgAoAgwRAgBFDQBBASEBQQghAAwBCyADQRggAygCACgCDBECAEUNASACQQAgAigCACgCCBEDACACIAMqAmQgAigCACgCEBENACACIAMoAmggAigCACgCGBEDACADKAJsIQFBFCEACyACIAEgAigCACAAaigCABEDAAsgAygCOCEEIAMoAjQhAQNAAkACQCABIARGDQAgASgCACIAQRIgACgCACgCDBECAEUNASACIAEoAgAoAjQgAigCACgCDBEDAAsCQCADKAJgIgFFDQAgAiABKgJEIAIoAgAoAhwRDQALIAIgAy0ARCACKAIAKAIgEQMADwsgAUEEaiEBDAALAAsiAQF/AkAgAEEBQS4QxSgiAQ0AIABBAUGWnhEQtigACyABC/kBAQV/IAAoAsgBIQMgACgCxAEhBEEAIQVBACEGA38CQCAEIANHDQAgACgCuAMhAyAAKAK0AyEEAkADQCAEIANGDQECQCAEKAIAIgdFDQAgByACRg0AAkACQAJAAkAgARCDMEF5ag4DAAECBAsgBy0A7gFBBHENAgwDCyAHLQDuAUEQcQ0BDAILIActAO4BQQhxRQ0BCyAHIAEQhDAgBnIhBgsgBEEEaiEEDAALAAtBAkEBIAVBAXEbQQAgBkEBcRsPCwJAAkACQCAEKAIAIgcgASACIAcoAgAoAgwRBAAOAwIBAAELQQEhBQtBASEGCyAEQQRqIQQMAAsLRAAgACABKQMANwMAIABBCGogAUEIaikDADcDACAAQRBqIAFBEGoQoxoaIABBHGogAUEcahCjGhogACABLQAoOgAoIAALUQECfyMAQRBrIgEkAAJAIAAtAEAiAkH/AUcNABCFMAALIAJBAnRBsJAUaigCACECIAEgAUELajYCDCABQQxqIAAgAhECACEAIAFBEGokACAAC4oCAQR/QQAhAgJAIAAoAvwBIgNFDQAgAygCBCIDRQ0AQQIhBCABEIMwQXlqQf8BcSIF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sigAC7oCAQN/IwBBEGsiASQAAkACQAJAAkAgAEECIAFBDGoQtChFDQAgAEEBQcUAEMUoIgJFDQECQAJAAkACQAJAAkACQCABKAIMIgNBzH5qDgYGAQACBQMECyAAIAItAAJBAXZBAXEQsygMCQsgACACLQACQQJ2QQFxELMoDAgLIAAgAi0AAkEDdkEBcRCzKAwHCwJAIAItAANBAUcNAAJAIAItAARBAUcNACAAQc6AERCcEgwICyAAQZ6bERCcEgwHCyAAQaOWERCcEgwGCyADQdYARg0ECyAAQQFBABCwKCECIAFBvZ8RNgIEIAEgAjYCACAAQY+LESABELIoAAsgACACLwEAEO8nDAMLIABBAkHArhEQtigACyAAQQFBvZ8RELYoAAsgACACLQACQQFxELMoCyABQRBqJABBAQsYACAALwEAIQAgAUEDNgIMIAEgALg5AwALGgAgAC0AAiEAIAFBATYCDCABIABBAXE2AgALHQAgAC0AAiEAIAFBATYCDCABIABBAXZBAXE2AgALHQAgAC0AAiEAIAFBATYCDCABIABBAnZBAXE2AgALHQAgAC0AAiEAIAFBATYCDCABIABBA3ZBAXE2AgALCAAgARCCBhoLnAEBAn8jAEEQayIBJAACQAJAAkAgAEECIAFBDGoQtChFDQAgAEEBQcYAEMUoIgJFDQEgASgCDEG4AUYNAiAAQQFBABCwKCECIAFB2J4RNgIEIAEgAjYCACAAQY+LESABELIoAAsgAEECQcCuERC2KAALIABBAUHYnhEQtigACyAAIAIoAgAgAiACLAALQQBIGxCcEiABQRBqJABBAQuRAQECfyMAQRBrIgEkAAJAAkACQCAAQQIgAUEMahC0KEUNACAAQQFBxwAQxSgiAkUNASABKAIMQaABRg0CIABBAUEAELAoIQIgAUGEnxE2AgQgASACNgIAIABBj4sRIAEQsigACyAAQQJBwK4RELYoAAsgAEEBQYSfERC2KAALIAAgAi0AABCzKCABQRBqJABBAQsXACAALQAAIQAgAUEBNgIMIAEgADYCAAuSAQECfyMAQRBrIgEkAAJAAkACQCAAQQIgAUEMahC0KEUNACAAQQFByAAQxSgiAkUNASABKAIMQboBRg0CIABBAUEAELAoIQIgAUHsnhE2AgQgASACNgIAIABBj4sRIAEQsigACyAAQQJBwK4RELYoAAsgAEEBQeyeERC2KAALIAAgAioCBLsQuiggAUEQaiQAQQELGgEBfSAAKgIEIQIgAUEDNgIMIAEgArs5AwALCAAgARDzJhoLRgECfyMAQRBrIgEkAAJAIABBAiABQQxqELQoDQAgAEECQcCuERC2KAALIAAQ4TAhAiAAIAEoAgwgAhDiMCABQRBqJABBAQsOACAAIAAQ4TAQ4zBBAQsIACABEPMmGgvBAgEDfyMAQRBrIgEkAAJAIABBAiABQQxqELQoRQ0AIAAQ5DAhAgJAAkACQAJAAkACQAJAAkACQAJAIAEoAgwiA0H9fWoOBwABAgMEBQYICwJAIAItADANACAAQaycERCcEgwJCyAAQeGGERCcEgwICyAAIAItADFBAWoQ7ycMBwsgACACKgI0uxC6KAwGCyAAIAItADgQsygMBQsgACACLQA6ELMoDAQLIAItADhBAUcNAUGOmxEhAwJAIAItADkiAkEQSw0AIAJBAnRBoJIUaigCACEDCyAAIAMQnBIMAwsgAi0AOkEBRw0AQY6bESEDAkAgAi0AOyICQQVLDQAgAkECdEHkkhRqKAIAIQMLIAAgAxCcEgwCCyAAEKYSDAELIAAgAyACEOIwCyABQRBqJABBAQ8LIABBAkHArhEQtigACw4AIAAgABDkMBDjMEEBC5EBAQJ/IwBBEGsiASQAAkACQAJAIABBAiABQQxqELQoRQ0AIABBAUHOABDFKCICRQ0BIAEoAgxBuwFGDQIgAEEBQQAQsCghAiABQZTUETYCBCABIAI2AgAgAEGPixEgARCyKAALIABBAkHArhEQtigACyAAQQFBlNQRELYoAAsgACACKAIAEO8nIAFBEGokAEEBCyIBAX8CQCAAQQFBJhDFKCIBDQAgAEEBQe/3EBC2KAALIAELTwIBfwF+IABBARDGKCEBIABBAhCSLikCACECIABBIEEmEMQnIgBCADcCDCAAIAI3AgQgACABOgAAIABBFGpCADcCACAAQRxqQQA6AABBAQteAgJ+AX0gAEEgQSYQxCchACABLQAAIQEgAikCACEGIAMpAgAhByAEKAIAIQIgBSoCACEIIABBADoAHCAAIAg4AhggACACNgIUIAAgBzcCDCAAIAY3AgQgACABOgAACzwAIAEgAikDADcDACABQRhqIAJBGGooAgA2AgAgAUEQaiACQRBqKQMANwMAIAFBCGogAkEIaikDADcDAAscACABIAIoAgA2AgAgAUEEaiACQQRqLwEAOwEACwoAIAEgAhDnBRoLDAAgASACKQMANwMACwwAIAEgAikDADcDAAsMACABIAIoAgA2AgALAgALCgAgASACEIIwGgsKACABIAIQ/C8aCwwAIAEgAigCADYCAAsMACABIAIpAwA3AwALCQAgACABELMoCyIBAX8CQCAAQQFBPhDFKCIBDQAgAEEBQe7UERC2KAALIAELpQYBAn8jAEEQayIDJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUGafmoOHQIDBAUBGxsbBgcICQoLDA0ODxAREhMXGBQZGhUWAAsCQCABQcV+ag4CHAAbCyAAIAIpAwi6ELooDBwLQQAhASAAIAIoAhQgAigCEGtBAnVBABCuEgNAIAEgAigCFCACKAIQIgRrQQJ1Tw0cIAAgBCABQQJ0aioCALsQuiggAEF+IAFBAWoiARCCLgwACwALQQAhASAAIAIoAiAgAigCHGtBAnVBABCuEgNAIAEgAigCICACKAIcIgRrQQJ1Tw0bIAAgBCABQQJ0aioCALsQuiggAEF+IAFBAWoiARCCLgwACwALIAAgAi0AKBDvJwwZCwJAIAItACgNACAAQfPNERCcEgwZCyAAQY6bERCcEgwYCyAAIAItAChFELMoDBcLIAAgAikDCCACLQAoQQIQ5TAMFgsgACACKQMIIAItAChBABDlMAwVCyAAIAIpAwggAi0AKEEDEOUwDBQLIAAgAikDCCACLQAoQQEQ5TAMEwsgACACKQMIIAItAChBBBDlMAwSCyAAIAIpAwggAi0AKEEFEOUwDBELIAAgAikDCCACLQAoQQgQ5TAMEAsgACACKQMIIAItAChBCRDlMAwPCyAAIAIpAwggAi0AKEEKEOUwDA4LIAAgAikDCCACLQAoQQsQ5TAMDQsgACACKQMIIAItAChBDBDlMAwMCyAAIAIpAwggAi0AKEENEOUwDAsLIAAgAikDCCACLQAoQQ4Q5TAMCgsgACACKQMIIAItAChBDxDlMAwJCyAAIAIpAwggAi0AKEEQEOUwDAgLIAAgAikDCCACLQAoQQYQ5TAMBwsg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AgAbIAJBMGoQ/QVFDQIgAkEYaiACQTBqIAJByABqEP4FIAJByABqQRBqIAJBGGpBEGopAgA3AwAgAkHIAGpBCGogAkEYakEIaikCADcDACACIAIpAhg3A0gLIAJBMGogAkHIAGoQ1B8gACACKgIwOAJ0IAAgAioCNDgCeCAAIAIqAjg4AnwgACACKgI8OAKAASACKgJAIQYgACACKgJEOAKIAQJAAkACQCAALQBZDQBDAAAAACAAKgJsIAAoAkRBAUYbIQYMAQsgACAGIAAqAkyUIgY4AoQBIAAtAFhBAUcNASAGIAEqAlySIQYLIAAgBjgChAELIAAoAkRBAUcNACACQcgAaiAAQfQAahDXHyACQTBqIAEoAiAiA0HEAGpB4MAdIANB2wAgAygCACgCDBECABsgAkHIAGoQ/gUgAkHIAGpBEGogAkEwakEQaikCADcDACACQcgAakEIaiACQTBqQQhqKQIANwMAIAIgAikCMDcDSCACQTBqIAJByABqENQfIAAgAioCMDgCdCAAIAIqAjQ4AnggACACKgI4OAJ8IAAgAioCPDgCgAEgACACKgJAOAKEASAAIAIqAkQ4AogBCwJAIAAoAkgiA0EBRw0AIAJByABqIABB9ABqENcfIAJBwABqQQApA7CfFTcDACACQThqQQApA6ifFTcDACACQQApA6CfFTcDMCABKAIgIgVBxABqQeDAHSAFQdsAIAUoAgAoAgwRAgAbIAJBMGoQ/QVFDQEgAiACQTBqIAJByABqEP4FIAJBGGogAhDUHyAAIAIqAhg4AnQgACACKgIcOAJ4IAAgAioCIDgCfCAAIAIqAiQ4AoABIAAgAioCKDgChAEgACACKgIsOAKIAQsCQCAALQBbQQFHDQAgACoChAEgACoCVCIGXkUNACAAIAY4AoQBCwJAIAAtAFpBAUcNACAAKgKEASAAKgJQIgZdRQ0AIAAgBjgChAELAkACQCADQQFGDQAgACoChAEhBgwBCyACQcgAaiAAQfQAahDXHyACQTBqIAEoAiAiA0HEAGpB4MAdIANB2wAgAygCACgCDBECABsgAkHIAGoQ/gUgAkHIAGpBEGogAkEwakEQaikCADcDACACQcgAakEIaiACQTBqQQhqKQIANwMAIAIgAikCMDcDSCACQTBqIAJByABqENQfIAIqAkAhBgsgACoCbCIH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fCELIAVBAWohBQwACwALIAIgCEEDdCIKaikDACEPQQAhA0IAIQ0CQANAIANBBEYNASAEQRBqIAEgA0EDdGopAwBCACAPQgAQayAEQSBqIAMgCGpBA3RqIgkgCSkDACIMIA18Ig0gBCkDEHwiDjcDACANIAxUrSAHKQMAfCAOIA1UrXwhDSADQQFqIQMMAAsACyAKIARBIGpqQSBqIA03AwAgCEEBaiEIDAALAAsgACALEN0xIARB4ABqJAALagIBfgJ/IAAgACkDGCICQv///////////wCDNwMYIAFCAYYgAkI/iIRCE34hAUEAIQMCQANAIANBBEYNASAAIANBA3RqIgQgBCkDACICIAF8IgE3AwAgASACVK0hASADQQFqIQMMAAsACwuoAQICfwR+QQAhAUITIQMCQANAIAFBBEYNASAAIAFBA3RqIgIgAikDACIEIAN8IgM3AwAgAyAEVK0hAyABQQFqIQEMAAsACyAAIAMQ3TFCfyEFQm0hA0EAIQFCACEGAkADQCABQQRGDQEgACABQQN0aiICIAMgAikDAHwiBDcDACABQQFqIQEgBiAEhCEGIAUgBCADVK18IgNCP4chBQwACwALQQAgBlBrCzsBAX9BkAEQpgFBAEGQARBIEPoTIgEgACgCVDYCVCABIAAtAFg6AFggASAAKAJcNgJcIAEgABDgMSABCxgAIABBxABqIAFBxABqEOgFIAAgARCEGQtXAQJ/IABB6JsUNgJIIABBxJsUNgI4IABB1JoUNgIAIABBOGohAQJAIAAoAjwiAkUNACACQQhqIAAgAigCCCgCBBEDAAsgAEEANgJMIAEQrDEaIAAQwwoLCgAgABDhMRCkAQsFAEHtBAsoAQF/QQEhAgJAIAFBCkYNACABQacBRg0AIAFB7QRGDQBBACECCyACCyMAAkAgAUHsBkcNACAAIAIQogo2AjRBAQ8LIAAgASACEL4KCzcBAn8gABDnMSEBAkAgACgCTCICRQ0AIAFByABqIAIgASgCSCgCEBEDACABIAAoAlA2AlALIAELJwEBf0HUABCmAUEAQdQAEEgQgBQiASAAKAI0NgI0IAEgABDfCyABCy8BAX8CQCAAKAIgIgJFDQAgAhDBEiICRQ0AIAJBCGogACACKAIIKAIAEQMAC0EAC2oBAn9BASECAkAgASgCACABKAIEEPkI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DQAgBCAEKAIAKAIEEQEACyAAQQRqIQAMAAsACyACEL0VGiABQRBqJAALCgAgABC5NBCkAQsFAEGHBQsPACABQYcFRiABQdwDRnILHQACQCABQaMHRw0AIAAgAhCiCjYCDAsgAUGjB0YLbwECfyMAQRBrIgEkAEHQABCmAUEAQdAAEEgQkxMiAiAAKAIMNgIMAkAgACgCFCIARQ0AIAAgACgCKEEBajYCKCABIAA2AgwgAkEQaiABQQxqIAIoAhAoAggRAwAgAUEMahDGDhoLIAFBEGokACACC04BAn8CQCAAQRBqIgIgASgCACABKAIEEKceIgMNAAJAIAEoAgAgASgCBBCYDyIDDQBBAQ8LIANBBGooAgAgAhD0MyAAIAEQwTQhAwsgAwvAAgEGf0EBIQICQAJAAkAgASgCACABKAIEQcEAENgKIgFFDQAgASgCDCIBRQ0AAkACQCABKAIEIgMoAlAiASADKAJUIgJPDQAgASAANgIAIAFBBGohAQwBCyABIAMoAkwiBGtBAnUiBUEBaiIGQYCAgIAETw0CAkACQCACIARrIgJBAXUiByAGIAcgBksbQf////8DIAJB/P///wdJGyIGDQBBACEHDAELIAZBgICAgARPDQQgBkECdBCmASEHCyAHIAVBAnRqIgUgADYCACAFIQICQANAIAEgBEYNASACQXxqIgIgAUF8aiIBKAIANgIADAALAAsgAyAFQQRqIgE2AlAgAygCTCEEIAMgAjYCTCADIAcgBkECdGo2AlQgBEUNACAEEKQBCyADIAE2AlBBACECCyACDwsQrAEACxCoBwALowEBAX9BACEDAkAgAUGoAmooAgAgAUGsAmooAgAgAEEQahD2MyIARQ0AIAAoAigiAUUNACABKAIEIgEgACgCHBCJCiABQX9B7LcREIoKGiABQX4Qyi1BACEDAkAgASAAQQFBARCkLQ0AIAEoAggiAEFwakGwvxxGDQAgAEF8aigCAEEBRw0AIAFBfxCILkEARyEDCyABIAEoAghBcGo2AggLIAMLAgALAgALBwAgACgCDAsEAEEACwQAQQYLBABBAAs9AQF/IAAgACgCACgCFBEAACECIAAoAhwgACgCICACQRhqQQAgAhsgARDGMyACQRBqIgAQ8zIgAEEAIAIbCyUBAX8CQCABEJcPIgJFDQAgAiAAQRBqNgIE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ahDACiADQQRqEIIGGkEBIQEMBQsgA0EEaiACEL8KIABB0ABqIANBBGoQwAogA0EEahCCBhpBASEBDAQLIAAgAhCiCjYCXEEBIQEMAwsgACACEKIKNgJgQQEhAQwCCyAAIAIQogo2AmRBASEBDAELIAAgASACEL4KIQELIANBEGokACABC/ABAQN/IwBBEGsiAiQAAkAgACABEO0OIgNFDQAgACgCaCIERQ0AAkAgAUUNACAEKAJgIgFFDQEgACABNgJsIAQgBCgCAEEBajYCACACIAQ2AgwgASACQQxqEMQLIAQQ4QoMAQsCQCAAKAJsIgENACAEKAJgIgFFDQELIAAgATYCbCACQQhqIAAQxTUCQCAAKAJoIgRFDQAgBCAEKAIAQQFqNgIACyACIAQ2AgQgASACQQhqIAJBBGoQuwsgAigCBBC/NSACKAIIEL81IABBAToAfCAAEMY1IABBgAFBABDNCRogABDHNQsgAkEQaiQAIAMLYAEBfwJAAkACQCABEMALIgINACAAQQA2AgAMAQsgACACEMELIAAoAgANAQsgASgCKCIBRQ0AAkAgASgC0A0iAQ0AIABBABC6Cw8LIAEgASgCAEEBajYCACAAIAEQugsLC9AFAgJ/BH0jAEHQAGsiASQAAkAgACgCaEUNACAAKAIgIgJFDQACQAJAIAJBAiACKAIAKAIMEQIADQAgAUEIakIANwMAIAFCADcDAEMAAAAAIQNDAAAAACEEQwAAAAAhBUMAAAAAIQYMAQsgAUHIAGpCADcDACABQgA3A0ACQAJAIAIgAUHAAGoQ0zVFDQACQCACKAIoIgJFDQAgASACIAFBwABqENQ1DAILIAFBCGogAUHAAGpBCGopAwA3AwAgASABKQNANwMADAELAkAgAkELIAIoAgAoAgwRAgBFDQAgAUL////7////v383AjggAUL////79///v/8ANwIwIAFBrMQUNgIYIAFBADoAECABIAFBGGo2AiggASABQRBqNgIgIAEgAUEwajYCHCACIAFBGGoQiw8gAUEYahCMDxogAS0AEEEBRw0AAkAgAigCKCICRQ0AIAEgAiABQTBqENQ1DAILIAFBCGogAUEwakEIaikCADcDACABIAEpAjA3AwAMAQsgAioCWCEFIAIqAlQhBgJAIAIoAigiAkUNACABIAU4AhQgASAGOAIQIAFBMGogAiABQRBqEKkLIAEgASoCNCIFOAIMIAEgASoCMCIGOAIIIAEgBTgCBCABIAY4AgAMAQsgASAFOAIMIAEgBjgCCCABIAU4AgQgASAGOAIACyABKgIEIQMgASoCDCEEIAEqAgAhBSABKgIIIQYLAkACQCAGIAWTQwAAAABeRQ0AIAQgA5NDAAAAAF4NAQsgAC0AfEEBRw0AIABBgAFBABDNCRoMAQsgAEEAOgB8AkAgBSAAKAJoIgIqAkhcDQAgAyACKgJMXA0AIAYgAioCUFwNACAEIAIqAlRbDQELIAJByABqIgIgASkDADcCACACQQhqIAFBCGopAwA3AgAgACgCaCIAKAJgIgJFDQAgAiAAKAIEQQQQ0jULIAFB0ABqJAAL+gEBBH8jAEEgayIBJAACQCAAKAI0DQAgACgCPCAALABDIgIgAkEASBsNACAAKAJoRQ0AQQAhAiABQQA2AhAgAUEAOgAMIAFBDGpBCGpB540SEJ4GIQMCQCAAKAIgIgRFDQADQCACQQhGDQECQAJAIAQgAkHowxRqLwEAIAQoAgAoAgwRAgBFDQAgBCABQQxqIAJB7MMUaigCABECAA0BCyACQQhqIQIMAQsLAkAgACgCaCICKAIYIAEoAhAiBEcNACACQSBqIAMQjAYNAQsgAiAENgIYIAJBIGogAxDoBSAAKAIgIAAoAmgQyzULIAMQggYaCyABQSBqJAALGwEBfwJAIAAoAiAiAUUNACABQRxqIAAQhQsLCzgAAkAgAUEBcUUNACAAEMILCwJAIAFBgAFxRQ0AIAAQxzUgABDGNQsCQCABQRBxRQ0AIAAQxjULCzEBAn8CQCAAKAJoIgFFDQAgASgCGCAAKAI0IgJGDQAgASACNgIYIAAoAiAgARDLNQsLJwEBfwJAIAFFDQAgASgCYCICRQ0AIABFDQAgAiABKAIEQQIQ0jULCzgBAn8CQCAAKAJoIgFFDQAgAUEgaiIBIABBOGoiAhCMBg0AIAEgAhDoBSAAKAIgIAAoAmgQyzULCzkBAn8CQCAAKAJoIgFFDQAgAUEsaiIBIABBxABqIgIQjAYNACABIAIQ6AUgACgCICAAKAJoEMs1Cws5AQJ/AkAgACgCaCIBRQ0AIAFBOGoiASAAQdAAaiICEIwGDQAgASACEOgFIAAoAiAgACgCaBDLNQsLMQECfwJAIAAoAmgiAUUNACABKAJEIAAoAlwiAkYNACABIAI2AkQgACgCICABEMs1CwsxAQJ/AkAgACgCaCIBRQ0AIAEoAlggACgCYCICRg0AIAEgAjYCWCAAKAIgIAEQyzULCzYBAn8CQCAAKAJoIgFFDQAgASgCHCAAKAJkIgJGDQAgASACNgIcIAAoAiAgARDLNSAAEMILCwtcAQF/IwBBEGsiAyQAIAAgAC0AACACcjoAAAJAIAFFDQACQCACQQJxRQ0AIANBCGogAEGkAWogARDDCwsgAkEEcUUNACADQQhqIABBuAFqIAEQwwsLIANBEGokAAvhAQECfyMAQcAAayICJAAgAkEwaiAAIAAoAgAoAngRAwBBACEDAkAgAioCOCACKgIwk0MAAAAAXkUNACACKgI8IAIqAjSTQwAAAABeRQ0AIAJBKGogAEHUAGopAgA3AwAgAkEYakEIaiAAQcwAaikCADcDACACIAApAkQ3AxggAkEIaiACQRhqIAJBMGoQ5yggAioCECACKgIIk0MAAAAAXiACKgIUIAIqAgyTQwAAAABecSIDQQFHDQAgASACKQIINwIAIAFBCGogAkEIakEIaikCADcCAAsgAkHAAGokACADC9oBAgF/AX0jAEEQayIDJAAgAEL////7////v383AgggAEL////79///v/8ANwIAIAMgAikCADcCACADQQhqIAEgAxCpCyAAIAMqAgggAyoCDBD5IiADIAIpAgRCIIk3AgAgA0EIaiABIAMQqQsgACADKgIIIAMqAgwQ+SIgAyACKQIINwIAIANBCGogASADEKkLIAAgAyoCCCADKgIMEPkiIAIqAgAhBCADIAIqAgw4AgQgAyAEOAIAIANBCGogASADEKkLIAAgAyoCCCADKgIMEPkiIANBEGokAAtwAQF/QYABEKYBQQBBgAEQSBDKEyIBIAAoAjQ2AjQgAUE4aiAAQThqEOgFIAFBxABqIABBxABqEOgFIAFB0ABqIABB0ABqEOgFIAEgACgCXDYCXCABIAAoAmA2AmAgASAAKAJkNgJkIAEgABDfCyABCwoAIAAQvjUQpAELAgALAgALAgALAgALAgALAgALAgALoQEBA38jAEEQayICJAAgAkEIakEANgIAIAJCADcDACAAKALQAiEDIAAoAswCIQACQANAIAAgA0YNAQJAIAAoAgAi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AyAGEIQ2GgsgBEGAAWokACADC/oCAQN/IwBB0ABrIgQkACAAQv////v///+/fzcCCCAAQv////v3//+//wA3AgAgBEEoakEQakIANwIAIARBwABqQgA3AgAgBEEAOgBMIARB3MkUNgIoIARBATYCLCAEQgA3AjBBASEFAkADQCABIAJGDQECQCABKAIAIgYgBigCACgCQBEAAA0AIAZB0AFqIARBKGoQ0ywgBiAGKAIAKALsAREAACEGAkACQCADDQAgBEEQaiAGQRBqKQIANwMAIARBCGogBkEIaikCADcDACAEIAYpAgA3AwAMAQsgBCAGIAMQ/gULIAQoAjAgBCgCNCAEENAsIARBGGogBCgCMCAEKAI0EJEcAkACQCAFQQFxRQ0AIAAgBCkCGDcCACAAQQhqIARBGGpBCGopAgA3AgAMAQsgACAEQRhqEPM1CyAEIAQoAjA2AjRBACEFIARBADoATCAEIAQoAjw2AkALIAFBBGohAQwACwALIARBKGoQnDYaIARB0ABqJAALgQEBAn4gAEIANwIMIABB3IkVNgIAIABCATcCBCAAQQApA6CfFTcCPCAAQcQAakEAKQOonxU3AgAgAEHMAGpBACkDsJ8VNwIAIAFBCGopAgAhAiABKQIAIQMgAEEANgJkIAAgAzcCVCAAQdwAaiACNwIAIABBCGogAEHUAGoQzyIgAAsPACAAQQhqIAAoAmQQ0yILFgAgAEHciRU2AgAgAEEIahCyBhogAAs4AQF/IwBBIGsiAiQAIAJBCGogAUHEAGoQkhwgACABKAKwAyABKAK0AyACQQhqEIE2IAJBIGokAAuQAQEGfyAAQcQAaiECIABB0AFqIQMgAC0AzAEgACgC3AEiBCAAKALYASIAa0EES3JBAXEhBQJAA0AgACAERg0BAkAgACgCACIGIAYoAgAoAkwRAABFDQAgBiADIAYoAgAoAngRAgAiB0UNACAGIAEgByACQQBBACAFIAYoAgAoAnAREgALIABBBGohAAwACwALC9cDAQp/IwBBoAFrIgMkAEEAIQQCQCAAKgKEAUMAAAAAWw0AIABBxABqIQUgA0HcAGohBiAAQcIAEIIsIQcgACgC3AEhCANAIAggACgC2AFGDQEgCEF8aiIIKAIAIgkQqwsNACAJIAkoAgAoAkwRAABFDQAgCSAJKAIAKAJsEQAAIQkgA0GIAWpBEGogAkEQaikCADcDACADQYgBakEIaiACQQhqKQIANwMAIAMgAikCADcDiAECQCAJQcIAcUUNACADQYgBaiAFELoJGgsgA0EgaiABEII2IQogACgCtAMhCyAAKAKwAyEJA0ACQCAJIAtHDQAgChCDNiEJIAoQhDYaIAlFDQIgACEEDAMLIAkoAgAhDAJAAkAgB0UNACADQQhqIAIgDCAMKAIAKALsAREAABD+BSAGQRBqIANBCGpBEGopAgA3AgAgBkEIaiADQQhqQQhqKQIANwIAIAYgAykCCDcCAAwBCyADQQhqIANBiAFqIAwgDCgCACgC7AERAAAQ/gUgBkEQaiADQQhqQRBqKQIANwIAIAZBCGogA0EIakEIaikCADcCACAGIAMpAgg3AgALIAxB0AFqIAoQ0ywgCUEEaiEJDAALAAsACyADQaABaiQAIAQLIAAgACAAKAIAKAL0AREAAEF/cyAAKgKEAUMAAAAAXHELAgALzQICB38CfSMAQZABayIBJABDAAAAACEIAkAgACoCzAMiCUMAAAAAXUUNACAAKAK0AyECIAAoArADIQMgAUH4AGohBCABQYABaiEFA0ACQCADIAJHDQAgACAIOALMAyAIIQkMAgsgAygCACIGLwEwIQcgBEIANwMAIAVCADcDACABQgA3A3AgAUEAOgCMAQJAAkAgB0GQwQBxQZDBAEcNACAGIAFB8ABqEPwrIAFB8ABqIQcMAQsgBkHQAWohBwsgAUHQAGogByAGIAYoAgAoAuwBEQAAEO0pIAFBDGogAUHQAGpDAAAAPxCGLCEHA0AgAUEIaiAHEIcsAkAgASgCCCIGRQ0AIAggBioCHJIhCAsgAUEIahDiGxogBg0ACyAHEIgsGiADQQRqIQMgAUHQAGoQ9REaIAFB8ABqEPURGgwACwALIAFBkAFqJAAgCQsCAAsHACAAKAIoC58BAgN/A30jAEEQayIGJAAgASgCtAMhByABKAKwAyEBQwAAAAAhCUMAAAAAIQoDQAJAIAEgB0cNACAAIAo4AgAgACAJOAIEIAZBEGokAA8LIAZBCGogASgCACIIQegAaiACIAMgBCAFIAgoAmgoAgARFQAgBioCDCILIAkgCSALXRshCSAGKgIIIgsgCiAKIAtdGyEKIAFBBGohAQwACwALCAAgAEHEAGoLCAAgAEHMAmoLCAAgAEGcAmoLCAAgAEH8AmoLCAAgAEHkAWoLFQAgACABQZh/aiACIAMgBCAFEI02CwsAIABB2H5qKAIACwcAIABBFGoLCwAgAEGwfmoQ9TULCwAgAEGwfmoQ9zULCAAgAEH0fmoLCAAgAEH8AGoLCAAgAEHMAGoLCAAgAEGsAWoLFgAgAEHcyRQ2AgAgAEEIahD1ERogAAsKACAAEJw2EKQBCx0AIABBADoAJCAAIAAoAgg2AgwgACAAKAIUNgIYCwIACwIACw4AIABBCGogASACEK0gCw4AIABBCGogASACEK4gCxYAIABBCGogASACIAMgBCAFIAYQsCALCgAgAEEIahCxIAsEAEEACwQAQQALCgAgABD2NRCkAQsYAAJAIAAtAMgBQQFHDQAgACgCNBD/KwsL9gYCBH8BfSMAQdAAayICJAACQCABQZDAAHFFDQACQCAAKAI0EIEsRQ0AIABBAToAyAEMAQsgAEEAOgDIASAAKAI0QQIQgiwhAyAAKAI0IQECQCADRQ0AIABBADoAXCAAQQE6ADggACAAKAJANgJEIAAgACgCTDYCUCACQcgAaiABQdQAaikCADcDACACQcAAaiABQcwAaikCADcDACACIAEpAkQ3AzggAEE4aiEEIAJBIGogAkE4ahCSHCABKAK0AyEFIAEoArADIQEDQAJAIAEgBUcNACAAKAI0IQEMAgsCQCABKAIAIgMtALQBQQFxDQAgAyADKAIAKAJAEQAADQAgAkEIaiACQSBqIAMgAygCACgC7AERAAAQ/gUgBCADQdABaiACQQhqEOsbCyABQQRqIQEMAAsACyABQcAAEIIsIQMgACgCNCEBAkAgA0UNACAAQQA6ALwBIABBAToAmAEgACAAKAKgATYCpAEgACAAKAKsATYCsAEgAkE4akEQaiABQdQAaikCADcDACACQcAAaiABQcwAaikCADcDACACIAEpAkQ3AzggAEGYAWohBCACQSBqIAJBOGoQkhwgASgCtAMhBSABKAKwAyEBA0ACQCABIAVHDQAgACgCNCEBDAILAkAgASgCACIDLQC0AUEBcQ0AIAMgAygCACgCQBEAAA0AIAJBCGogAkEgaiADIAMoAgAoAuwBEQAAEP4FAkACQAJAIANBECADKAIAKAIMEQIADQAgAy0AuAENAQwCCyACKgIIIAIq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qAcAC/wCAQZ/AkACQAJAIAEgACgCBCABKAIAKAIQEQIADQBBACECQREhAwwBCwJAIAEgACgCBCABKAIAKAIUEQIARQ0AIABBAToAEgsgASAAKAIEIAEoAgAoAhgRAgBFDQFBASECQRMhAwsgACADaiACOgAACwJAAkACQAJAIAAoAiAiAiAAKAIkIgRPDQAgAiABNgIAIAJBBGohAgwBCyACIAAoAhwiA2tBAnUiBUEBaiIGQYCAgIAETw0BAkACQCAEIANrIgRBAXUiByAGIAcgBksbQf////8DIARB/P///wdJGyIEDQBBACEGDAELIARBgICAgARPDQMgBEECdBCmASEGCyAGIAVBAnRqIgUgATYCACAFIQECQANAIAIgA0YNASABQXxqIgEgAkF8aiICKAIANgIADAALAAsgACAFQQRqIgI2AiAgACgCHCEDIAAgATYCHCAAIAYgBEECdGo2AiQgA0UNACADEKQBCyAAIAI2AiAPCxCsAQALEKgHAAsaACAAIAEgAiADIAQQxDciBEHo2BQ2AgAgBAsHACAAEN8RCx8BAX8gACgCACECIAAgATYCAAJAIAJFDQAgAhCkAQsLKQEBfyAAKAIAIQEgAEEANgIAAkAgAUUNACABIAEoAgAoAgQRAQALIAALBwAgABCkAQsuAQF/QRQQpgEiAUG42RQ2AgAgASAAKQIENwIEIAFBDGogAEEMaikCADcCACABCyUAIAFBuNkUNgIAIAEgACkCBDcCBCABQQxqIABBDGopAgA3AgALAgALBwAgABCkAQs6ACABKAIAIQEgACgCBCABIAFBmQMgASgCACgCDBECACAAKAIIIAAoAgwoAgAgACgCEC0AABDCN0EACygBAX8gAEHA2BQ2AgACQCAAKAIcIgFFDQAgACABNgIgIAEQpAELIAALCgAgABDSNxCkAQuRAgIHfwF+IwBBEGsiBiQAAkACQCAALQARQQFHDQBBACEHAkACQCACQX5qDgIAAQMLIAAtABINAQwCCyAALQATQQFHDQELIAEpAgAhDSAAKAIgIQggACgCHCEHQQAhCQNAAkAgByAIRw0AQQAhByAALQAQQQFHDQIgA0UNAkECIQcgAC0AFA0CQQJBASAAKAIYIgcgBygCACgC+AERAAAgCXJBAXEbIQcMAgsCQCAHKAIAIgEtAAQNACAAKAIEIQogBiANNwMIIAAoAgghCyABKAIAKAIcIQwgBiANNwMAIAEgCiAGIAUgAiADIAQgCyAMEU4AQQJGIAlyIQkLIAdBBGohBwwACwALIAZBEGokACAHCwQAQQALvwECAX8BfiMAQRBrIgQkAAJAAkACQAJAIAAtABFBAUcNAAJAAkAgAkF+ag4CAAEFCyAALQASDQIMBAsgAC0AEw0BDAMLIAJBAUYNAQsgBCABKQIAIgU3AwggACgCACgCFCECIAQgBTcDACAAIAAgBCACEQIAIgI6ABAgAkUNASAAKAIgIQIgACgCHCEAA0AgACACRg0CIAAoAgAgAxCWGkEBOgAAIABBBGohAAwACwALIABBADoAEAsgBEEQaiQACxoAIAAoAgQiACABQQFBASAAKAIAKAJEEQcACz4BAn8gACgCICECIAAoAhwhAANAAkAgACACRw0ADwsgACgCACIDIAEgAygCACgCCBEDACAAQQRqIQAMAAsACz4BAn8gACgCICECIAAoAhwhAANAAkAgACACRw0ADwsgACgCACIDIAEgAygCACgCDBEDACAAQQRqIQAMAAsACwoAIAAQ0jcQpAELBABBAAsKACAAENI3EKQBCwoAIAAQ0jcQpAELGgAgACgCBCIAIAFBAEEBIAAoAgAoAkQRBwALRAECfyAAQbACaiEAAkADQCAAKAIAIgBFDQEgACgCDCIBKAIEIgJFDQACQCABLQA9DQAgAiABEIAKCyABEIEKDAALAAsL6QIBCX8gACgCyAEhAUEAIQIgACgCxAEiAyEEQQAhBQJAAkADQAJAIAQgAUcNACABIANrIQIgACgCCCgClA0iBA0CQQAhBgwDCwJAIAQoAgAoAgQiB0UNACAHQQEgBygCACgCDBECAEUNAAJAIAUgAkYNACAAKALEASIHIAVBAnRqIgYoAgAhCCAGIAcgAkECdGoiBygCADYCACAHIAg2AgALIAVBAWohBQsgBEEEaiEEIAJBAWohAgwACwALA0AgBCIGKALEASIEDQALCyACQQJ1IQkCQANAIAZFDQEgBSAJIAUgCUsbIQggBSEEA0ACQCAFIAhHDQAgBCAJRg0DIAYoAsgBIQYgBCEFDAILAkAgACgCxAEiAiAFQQJ0aiIHKAIAIgEoAgQgBkcNAAJAIAQgBUYNACACIARBAnRqIgIoAgAhAyACIAE2AgAgByADNgIACyAEQQFqIQQLIAVBAWohBQwACwALAAsLyQEAIAAgAzYCDCAAIAI2AgggACABNgIEIABBxNoUNgIAAkACQAJAIAJFDQACQCACQQ8gAigCACgCMBECAEUNACAAKAIEIAAQqR8LIAAoAggiAkEIIAIoAgAoAjARAgANAQwCCyABRQ0BIAEoAiAiAkUNASACQdsEIAIoAgAoAgwRAgBFDQECQCACEMESIgEoAhgiAkGAgARxRQ0AIAAoAgQgABCpHyABKAIYIQILIAJBgIAIcUUNAQsgACgCBEHcAGogABCqHwsgAAvhAgEGfwJAAkACQAJAIAAoAgQiAiAAKAIIIgNPDQAgASgCACEDIAFBADYCACACIAM2AgAgAkEEaiECDAELIAIgACgCACIEa0ECdSIFQQFqIgJBgICAgARPDQFBACEGAkAgAyAEayIDQQF1IgQgAiAEIAJLG0H/////AyADQfz///8HSRsiB0UNACAHQYCAgIAETw0DIAdBAnQQpgEhBgsgASgCACECIAFBADYCACAGIAVBAnRqIgUgAjYCACAAKAIAIQQgACgCBCEBIAUhAgJAA0AgASAERg0BIAFBfGoiASgCACEDIAFBADYCACACQXxqIgIgAzYCAAwACwALIAAoAgAhAyAAIAI2AgAgACgCBCEBIAAgBUEEaiICNgIEIAAgBiAHQQJ0ajYCCAJAA0AgASADRg0BIAFBfGoQ8TchAQwACwALIANFDQAgAxCkAQsgACACNgIEDwsQrAEACxCoBwALKQEBfyMAQRBrIgEkACABIAA2AgwgAUEMakEEEJQLIQAgAUEQaiQAIAALHwEBfyAAKAIAIQIgACABNgIAAkAgAkUNACACEKQBCwvhAgEGfwJAAkACQAJAIAAoAgQiAiAAKAIIIgNPDQAgASgCACEDIAFBADYCACACIAM2AgAgAkEEaiECDAELIAIgACgCACIEa0ECdSIFQQFqIgJBgICAgARPDQFBACEGAkAgAyAEayIDQQF1IgQgAiAEIAJLG0H/////AyADQfz///8HSRsiB0UNACAHQYCAgIAETw0DIAdBAnQQpgEhBgsgASgCACECIAFBADYCACAGIAVBAnRqIgUgAjYCACAAKAIAIQQgACgCBCEBIAUhAgJAA0AgASAERg0BIAFBfGoiASgCACEDIAFBADYC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vTYLGgAgASABKAIAQRhBFCAALQBwG2ooAgARAAALKQEBfwJAIAAoAiAQjxwiAUUNACABIAEoAgAoAgQRAABBHGogABCFCwsLCgAgABDdHhCkAQsEAEEYCxAAIAFBGUlBgJiACSABdnELWgACQAJAAkACQAJAIAFBUWoOBAABAgMECyAAIAIQuwo4AmRBAQ8LIAAgAhCiCjYCaEEBDwsgACACEKIKNgJsQQEPCyAAIAIQ2go6AHBBAQ8LIAAgASACEOkVCwQAQQALAgALRQEBf0H0ABCmAUEAQfQAEEgQqhMiASAAKgJkOAJkIAEgACgCaDYCaCABIAAoAmw2AmwgASAALQBwOgBwIAEgABDnHiABC1QBAn8gAEEMaiEBA0ACQCABKAIAIgENAAJAIAAgACgCACgCEBEAACIBRQ0AIAEgACABKAIAKAIEEQMACw8LIAEoAgwiAiACKAIAKAIIEQEADAALAAsDAAALLQACQCAAKAIEIAAoAgggARDqGyIADQBBAA8LIAAoAgwiACAAKAIAKAIMEQAACwcAIAAQpAELAgALAgALBABBAAumAwEGfwJAIAAoAiAQ5hsiAg0AQQIPCyACIABBOGogAigCACgCABEDAEEBIQICQCABIAAoAjQgASgCACgCCBECACIDRQ0AIANBhQUgAygCACgCDBECAEUNACAAIAM2AlACQAJAAkACQCADKAJsIgEgAygCcCICTw0AIAEgADYCACABQQRqIQEMAQsgASADKAJoIgRrQQJ1IgVBAWoiBkGAgICABE8NAgJAAkAgAiAEayICQQF1IgcgBiAHIAZLG0H/////AyACQfz///8HSRsiBg0AQQAhBwwBCyAGQYCAgIAETw0CIAZBAnQQpgEhBwsgByAFQQJ0aiIFIAA2AgAgBSECAkADQCABIARGDQEgAkF8aiICIAFBfGoiASgCADYCAAwACwALIAMgBUEEaiIBNgJsIAMoAmghBCADIAI2AmggAyAHIAZBAnRqNgJwIARFDQAgBBCkAQsgAyABNgJsIABBxABqIQEDQAJAIAEoAgAiAQ0AQQAhAgwECyAAKAJQIgIgASgCDEEEaiACKAIAKAJcEQMADAALAAsQqAcACxCsAQALIAILPgEBfwJAIAAoAlAiBEUNACAAKAI8IAAoAkAgARDqGyIARQ0AIAQgACgCDEEEaiAC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AgAgCEIANwIgIAhCADcCNCAIQYCAgPwDNgIwIAhBgICA/AM2AkQgCEEQakIANwIAIAhBCGpCADcCACAIQRhqQoCAgICAgIDAPzcCACAIQShqQgA3AgAgCEE8akIANwIAIAhByABqQQBB1AAQSBogAUEANgKAASAGIAgQmzogAUGAAWoQnDoaDAELIAggCCgCSDYCTAsgBygCYCEEIAcoAlwhBwJAA0AgBigCACEIIAcgBEYNASAIIAcQnTogB0EQaiEHDAALAAsgCBCeOgsgA0EEaiEDDAALAAsgAUGwAWokAA8LIARBBGohBAwACwALEQAgACABIAEoAgAoAngRAwALZgEFfSABKgLkASECIAEqArgEIQMgASoCwAQhBCAAIAEqArwEIgUgASoCxAQgBZMiBSABKgLoAZSTIgY4AgQgACADIAIgBCADkyIElJMiAzgCACAAIAUgBpI4AgwgACAEIAOSOAIICzgCAX8CfSMAQRBrIgEkACABIAAgACgCACgCeBEDACABKgIAIQIgASoCCCEDIAFBEGokACADIAKTCzgCAX8CfSMAQRBrIgEkACABIAAgACgCACgCeBEDACABKgIEIQIgASoCDCEDIAFBEGokACADIAKTC+8WAxN/An0BfiMAQeAAayICJAACQCAALQDMAUEBRw0AIAEgASgCACgCCBEBAAsCQCAALQDYAUECRw0AAkAgACgCkAQgACgClARHDQAgACgCjARFDQEgAC0AiARBAXENAQsgASAAQYgEaiAAKAIoQZANaigCABCCCiABKAIAKAIYEQMACyACQRBqQRBqIABBuAJqKQIANwMAIAJBGGogAEGwAmopAgA3AwAgAiAAKQKoAjcDECAAQaQFaiEDIABBnAVqIQQgACgC6AIhBSAAKALkAiEGA0ACQCAGIAVHDQACQCAALQDMAUUNACABIAEoAgAoAgwRAQALIAJB4ABqJAAPCwJAAkAgBigCAA0AIAYoAgQiB0HEAWohCCAHQbABaiEJIAdBvAFqIQogBygCoAEhCyAHKAKcASEMIAdBrAFqIQ0DQCAMIAtGDQICQCAMKAIAIg4QhApFDQAgDkHEAGooAgAgDkHYAGooAgAgBygCIC0AtAEQ4iECQCAHKAKoASANKAIAQwAAgD8Q5DkiD0UNACAOIAEgD0EMaiACQRBqQQFBAEEBIA4o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f0HIBRCmAUEAQcgFEEgQ9BMiASAAKALQATYC0AEgASAAKALUATYC1AEgASAAKALYATYC2AEgASAAKgLcATgC3AEgASAAKgLgATgC4AEgASAAKgLkATgC5AEgASAAKgLoATgC6AEgASAAKgLsATgC7AEgASAAKALwATYC8AEgASAAKAL0ATYC9AEgASAAKAL4ATYC+AEgASAALQD8AToA/AEgASAAKAKAAjYCgAIgASAAKAKEAjYChAIgASAAENwLIAELpQEBBH8jAEEgayICJAACQAJAIAAoAgQiAyAAKAIIIgRPDQAgAyABKAIANgIAIANBBGohAQwBCyACQQxqIAAoAgAiBSAEIAMgBWtBAnVBAWoQpzogACgCBCAAKAIAa0ECdSAAQQhqEKg6IgMoAgggASgCADYCACADIAMoAghBBGo2AgggACADEKk6IAAoAgQhASADEKo6GgsgACABNgIEIAJBIGokAAs4AAJAIAJBgICAgARJDQAQrAEACyABIABrIgFBAXUiACACIAAgAksbQf////8DIAFB/P///wdJGwtlACAAIAM2AhBBACEDIABBADYCDAJAAkAgAUUNACABQYCAgIAETw0BIAFBAnQQpgEhAwsgACADNgIAIAAgAyACQQJ0aiICNgIIIAAgAyABQQJ0ajYCDCAAIAI2AgQgAA8LEKgHAAuTAQEDfyABKAIEIQIgACgCACEDIAAoAgQhBAJAA0AgBCADRg0BIAJBfGoiAiAEQXxqIgQoAgA2AgAMAAsACyABIAI2AgQgACgCACEEIAAgAjYCACABIAQ2AgQgACgCBCEEIAAgASgCCDYCBCABIAQ2AgggACgCCCEEIAAgASgCDDYCCCABIAQ2AgwgASABKAIENgIAC0IBAn8gACgCCCEBIAAoAgQhAgJAA0AgASACRg0BIAAgAUF8aiIBNgIIDAALAAsCQCAAKAIAIgFFDQAgARCkAQsgAAt9AQJ/AkAgACgCOCIBRQ0AIAFBAyABKAIAKAIMEQIAIQIgACgCOCEBAkACQCACRQ0AIAFBgAJqIQEMAQsgAUUNASABQQwgASgCACgCDBECAEUNASAAKAI4QRxqIQELIAEgABCFCwsCQCAAEKw6IgFFDQAgAEEcaiABEIULCws0AQJ/QQAhAQJAIAAoAiAiAkUNACACQZ8BIAIoAgAoAgwRAgBFDQAgACgCIBDVOSEBCyABC2oBAn8CQCAAKAI4IgJFDQAgAkEDIAIoAgAoAgwRAgAhAyAAKAI4IQICQCADRQ0AIAIgAi0A1AFBEHI6ANQBDAELIAJBDCACKAIAKAIMEQIARQ0AIAAoAjgiACAALQDNAUEQcjoAzQELQQALrQIBBH8jAEEgayICJAAgAkEANgIcIAJCADcCFAJAIAAoAjgiA0UNACADQQMgAygCACgCDBECACEEIAAoAjghAwJAIARFDQAgAygCtAMhBCADKAKwAyEDA0AgAyAERg0CIAIgAygCADYCDCADQQRqIQMgAkEUaiACQQxqENkfDAALAAsgA0UNACADQQwgAygCACgCDBECAEUNACACIAAoAjg2AgwgAkEUaiACQQxqENofCyAAQQA6AGwgACAAKAJcNgJgIAAgACgCUDYCVCAAQdAAaiEFIAIoAhghACACKAIUIQMDQAJAIAMgAEcNACACQRRqENwfGiACQSBqJAAPCyACQQxqIAUgAygCACIEQdABaiAEIAQoAgAoAuwBEQAAENsfIANBBGohAwwACwALBwAgABCwOgsUAAJAIAAQrDoiAEUNACAAEJ86CwsHACAAELA6CwcAIAAQsDoLBwAgABCwOgsHACAAELA6CwcAIAAQsDoLLgAgAEGA6xQ2AgAgAEGUAWoQ4RsaIABB8ABqEPURGiAAQdAAahD1ERogABDDCgsKACAAELY6EKQBCwUAQaMECysBAX9BASECAkAgAUHee2pBAkkNACABQQpGDQAgAUGgAUYNAEEAIQILIAILfwACQAJAAkACQAJAAkACQCABQfV5ag4IAAYGAQIDBAUGCyAAIAIQ2go6ADxBAQ8LIAAgAhDaCjoAPUEBDwsgACACELsKOAJAQQEPCyAAIAIQuwo4AkRBAQ8LIAAgAhC7CjgCSEEBDwsgACACELsKOAJMQQEPCyAAIAEgAhDHFAtjAQF/QaABEKYBQQBBoAEQSBDoEyIBIAAtADw6ADwgASAALQA9OgA9IAEgACoCQDgCQCABIAAqAkQ4AkQgASAAKgJIOAJIIAEgACoCTDgCTCABIAAoAjQ2AjQgASAAEN8LIAELAgALBABBAAv/AQMCfwF+B30jAEEwayIEJABBACEFIARBKGpBACkDsJ8VNwMAIARBIGpBACkDqJ8VNwMAIARBACkDoJ8VNwMYAkAgAEHEAGogBEEYahD9BUUNACABKQIAIQYgBCoCKCEHIAQqAiAhCCAEKgIYIQkgBCoCLCEKIAQqAiQhCyAEKgIcIQwgBEEIaiAAIAAoAgAoAngRAwAgByAJIAanviINlCAIIAZCIIinviIJlJKSIgcgBCoCCGBFDQAgByAEKgIQX0UNACAKIAwgDZQgCyAJlJKSIgcgBCoCDGBFDQAgByAEKgIUX0UNACAAIAEgAiADEOwRIQULIARBMGokACAFCysAIABBgAJqIABB0AFqEOgFIABBABDAOiAAEOArIAAgACgCACgCqAIRAQALvgIBBX8jAEHgAGsiAiQAIABBgAJqIQMCQAJAIAAtAOABQQFHDQAgAkE0aiADEOcFGgwBCyACQTRqIAMQwToLIAJBwABqIAAoArQFIAAoArgFEN4sIAJBwABqIAJBNGoQjAYhAyACQcAAahCCBhoCQCADDQAgAEGsAmohAwJAAkAgAUUNACADIAJBKGogAkE0ahDnBSIBEPYsDAELIAJBHGogAkE0ahDnBSEBIAJBwABqQQhqIgQgA0EIaiIFKQIANwMAIAIgAykCADcDQCADIAJB1ABqIAEQ5wUiBhD1LCAGEIIGGiAFQgA3AgAgA0IANwIAIAAgAC0A0AZBC3I6ANAGIAJBCGpBCGogBCkDADcDACACIAIpA0A3AwggAyACQQhqENssCyABEIIGGgsgAkE0ahCCBhogAkHgAGokAAujAQEEfyAAQgA3AgBBACECIABBCGpBADYCACAAIAEoAgQgASwACyIDIANBAEgbELEdIAEoAgAgASABLAALIgRBAEgiBRsiAyABKAIEIAQgBRtqIQUCQANAIAMgBUYNAUEAIQECQAJAAkAgAy0AACIEQXZqDgQAAQEAAQtBASEBQSAhBCACQQFxDQELIAAgBMAQ3ywLIANBAWohAyABIQIMAAsACws9AQF9AkAgACoCjAcgACoC3AEiAVsNACAAIAE4AowHIAAgAC0A0AZBAnI6ANAGCyAAIAAoAgAoAqgCEQEACwkAIABBARDEOguMAgICfwF9AkAgACoC4AYgACoCqAJDAAAAACAALQDgASICGyIEWw0AIAAgBDgC4AYgACAALQDQBkELcjoA0AYLAkAgAC0A2QYgAkYNACAAIAI6ANkGIAAgAC0A0AZBC3I6ANAGCwJAIAAoApACIgNFDQACQCACRQ0AIAMqAkBDAAAAAFsNAQJAIAMoAmgiAkUNACACIAIoAgAoAmwRAQAgACgCkAIhAwsgA0MAAAAAELcPDAELIAMqAkRDAAAAAFsNAAJAIAMoAmgiAkUNACACIAIoAgAoAmwRAQAgACgCkAIhAwsgA0MAAAAAELgPCwJAIAFFDQAgAEEBEMA6CyAAEOArIABBEEEAEM0JGgsNACAAQYAEQQAQzQkaCwsAIABBnH5qEMU6CwwAIABBEEEAEM0JGgsLACAAQZx+ahDHOgseACAAIAEpArQGNwIAIABBCGogAUG8BmopAgA3AgALHgAgACABKQLQBDcCACAAQQhqIAFB2ARqKQIANwIAC9IDAgZ/AX0jAEEQayICJAAgACADEIgeGiAAKAI4IgQgACgCNCIFa0ECdSEGQQAhAwN/AkACQCADIAZGDQAgBSADQQJ0aigCACIHRQ0BIAdBvQQgBygCACgCDBECAEUNASADIQYLAkACQCAFIAZBAnRqIgMgBEcNAEEAIQMMAQsgAygCACEDCyAAIAM2AowCIABBgAJqIABB0AFqEOgFAkAgACgCjAIiA0UNACACQQxqIAMQ2DkgAigCDCIDEPMFIANFDQAgAkEIaiAAKAKMAhDYOQJAIAAoArwCIAIoAggiA0YNACAAQbwCaiACQQhqEMIhGiAAIAAtANAGQQtyOgDQBgsgAxDzBSAAKgLAAiAAKAKMAioCQCIIWw0AIAAgCDgCwAIgACAALQDQBkELcjoA0AYLIABBABDAOgJAIAAoAiAiA0UNACADKAIgIgNFDQAgA0EmIAMoAgAoAgwRAgBFDQAgAygCjAEQgAwiAygCBCEGIAMoAgAhAwNAIAMgBkYNASADKAIAIQcgA0EEaiEDIAdBiQQgBygCACgCDBECAEUNAAsgACAHNgKQAgsgAEEAEMQ6IAAoAowCIQMgAkEQaiQAIANFDwsgA0EBaiEDDAALC7AjAxF/CX0DfiMAQeAAayICJAAgACABEP0LAkAgAUGQBHFFDQAgACgCKCgCkA0hAwJAIAAqAsACIAAoAowCKgJAIhNbDQAgACATOALAAiAAIAAtANAGQQtyOgDQBgsCQCAAKAK8AkUNACAAQawCaiEEQQEhBQJAAkACQAJAIAAtANAGIgFBAXEiBg0AQQIhByABQQJxDQEMBAsgBBDYLEEDIQcgAC0A0AYiAUECcUUNAQsgACABQf0BcToA0AYgAEHABWohCAJAIAAoAqwCQX9HDQAgBCAIEIgtCwJAIAAoArQCQX9HDQAgAEG0AmogCBCILQsgAUEEcSEFQwAAAAAhE0MAAAAAIRRDAAAAACEVQQAhAQJAIAAoAtQFIAAoAtAFIgRrQSRtIAApArQCIhynIglNDQAgACgC3AUgHEIgiKciCkECdGooAgAhCyAEIAlBJGxqIgwoAhwiDSoCECETIAJBKGogDBDkLCACQRBqIAwQ5ywgACgC3AUhDkEAIQEgAigCGCEPIAIoAhQhEEEAIQlBACERAkADQCACKAIwIQQCQCACKAIsIhIgEEcNACAEIA9GDQILIBIoAgAiEigCGCAEQQJ0IgRqKAIAIQECQAJAIBIoAiAgBGoqAgAiFEMAAAAAWw0AIAsgDiABQQJ0aigCAEYNAQsgCSABIBFBAXEbIQkgEyAUkiETIAJBKGoQgC0aQQEhEQwBCwtBASEBQwAAAAAhFQJAIBxCAFMNACAAKALgBSAOa0ECdSIRIApMDQAgEi0AQkEBcSEPIA4gCkECdGooAgAhECAKIQkCQANAAkAgCSIEQQFODQBBACEEDAILIA4gBEF/aiIJQQJ0aigCACAQRg0ACwsgCiARQX9qIgkgCiAJSxshCyAKIRECQANAAkAgESIJIAtHDQAgCyEJDAILIA4gCUEBaiIRQQJ0aigCACAQRg0ACwtDAACAPyAKIARrsiAJIARrQQFqspUiFZMgFSAPGyEVCyAUIBWUIBOSIRUgDCoCICIUIBIqAgQiFiASKAIAIgQqAgyUkiETIBQgFiAEKgIIlJIhFAwBCyANKgIQIBMgCiAJayAJIAprIAkgCkkbIAogAWsgASAKayABIApJG0kbIRUgDCoCICIUIAwoAhRBfGooAgAiASoCBCIWIAEoAgAiASoCDJSSIRMgFCAWIAEqAgiUkiEUQQEhAQsgBSAGciEFIAAgEzgC/AYgACAUOAL4BiAAIBU4AvQGIAAgAToA8AYgACAAKAKABzYChAcgAkHIAGogACkCrAIiHCAAKQK0AiIdIAAoArACIAAoArgCSSIBGyIepyAeQiCIpyAIEIEtIAJBCGogHSAcIAEbIhynIBxCIIinIAgQgS0gAEGAB2ohBiACKAIMIRAgAigCTCESIAIoAgghDCACKAJIIQoCQANAIAogDEsNASAAKALQBSAKQSRsaiIPKAIcKgIQIRMgAkEQaiAPEOQsIAJB1ABqIA8Q5ywgAigCXCEIIAIoAlghDgNAIAIoAhghBAJAIAIoAhQiASAORw0AIAQgCEcNACAKQQFqIQoMAgsgASgCACIBKAIgIARBAnQiBGoqAgAhFCAAKALcBSAAKALgBSABKAIYIARqKAIAIgQQ2SwhCQJAIBAgBE0NACAJIARqIhEgEk0NACAPKgIgIRVDAACAP0EAIBIgBGsiBCAEIBJLG7MgCbMiFpUiF5MgFyABLQBCQQFxIgQbIRdDAACAPyAJQQAgESAQayILIAsgEUsba7MgFpUiFpMgFiAEGyEWAkAgASgCACIERQ0AIAQgBCgCBEEBajYCBAsgBCoCCCEYIAIgFSABKgIEIhkgBCoCDJSSOAI0IAIgFSAZIBiUkjgCLCACIBQgF5QgE5IiFSAUIBaUIBOSIhYgFSAWXiIBGzgCMCACIBYgFSABGzgCKCAGIAJBKGoQgy0gBBDzBQsgEyAUkiETIAJBEGoQgC0aDAALAAsACyAAQQA6AIwEIABBAToA6AMgACAAKALwAzYC9AMgACAAKAL8AzYCgAQgACAAKALgBDYC5AQgAEGYBGohCiAAQfADaiEQIAAqAowHIRogACgChAchBCAAKAKAByEBA0ACQCABIARHDQAgChCeOiAAKAKsBSAAKAKoBWtBAnUhDEEAIQgDQAJAAkAgCCAMRg0AIAJBKGogCiAIEM06IAIoAiwiCUUNASACKAIoIhJBdGohEUEBIQFDAAAAACETAkADQCABIAlGDQEgEyARIAFBDGwiBGopAgAiHKe+IBIgBGopAgAiHUIgiKe+lCAdp74gHEIgiKe+lJOSIRMgAUEBaiEBDAALAAsgCUECSQ0BIAIoAigiDiAOIAlBDGwiAWoiEUF0aiIPIBMgEiABakF0aikCACIcp74gEikCACIdQiCIp76UIB2nviAcQiCIp76Uk5JDAAAAP5RDAAAAAGAiBBsiASoCBCETIAEqAgAhFAJAAkAgGkMAAAAAXiILRQ0AIA8gDiAEGyIBKgIEIBOTIhUgASoCACAUkyIWIBaUIBUgFZSSkSIVlSIXvK1CIIYgFiAVlSIYvK2EIA5BDGogEUFoaiAEGyIBKgIEIBOTIhYgASoCACAUkyIZIBmUIBYgFpSSkSIWlSIbvK1CIIYgGSAWlSIZvK2EIBogFkMAAAA/lCIWIBYgGl4bIhYgFUMAAAA/lCIVIBYgFV0bIhUQ8ishFiAQIBggFZQgFJIgFyAVlCATkhCtICAQIBggFSAWkyIWlCAUkiAXIBaUIBOSIBkgFpQgFJIgGyAWlCATkiAZIBWUIBSSIBsgFZQgE5IQsCAMAQsgECAUIBMQrSALIA5BdGohBkEBIQEDQAJAIAEgCUcNACAQELEgDAMLAkACQAJAIARFDQAgDiABQQxsIg9qIhIqAgQhEyASKgIAIRQgC0UNAiAGIA9qIRIMAQsgESABQX9zQQxsaiISKgIEIRMgEioCACEUIAtFDQEgEUEAIAFrQQxsaiESCyASKgIEIBOTIhUgEioCACAUkyIWIBaUIBUgFZSSkSIVlSIXvK1CIIYgFiAVlSIYvK2EIA4gAUEBaiIBIAlwIhJBDGxqIBEgEkF/c0EMbGogBBsiEioCBCATkyIWIBIqAgAgFJMiGSAZlCAWIBaUkpEiFpUiG7ytQiCGIBkgFpUiGbythCAaIBZDAAAAP5QiFiAWIBpeGyIWIBVDAAAAP5QiFSAWIBVdGyIVEPIrIRYgECAYIBWUIBSSIBcgFZQgE5IQriAgECAYIBUgFpMiFpQgFJIgFyAWlCATkiAZIBaUIBSSIBsgFpQgE5IgGSAVlCAUkiAbIBWUIBOSELAgDAELIBAgFCATEK4gIAFBAWohAQwACwALIABBADoA3AMgAEEBOgC4AyAAIAAoAsADNgLEAyAAIAAoAswDNgLQAyACQTBqQgA3AwAgAkE4akIANwMAIAJCADcDKCACQQA6AEQgAkEoaiAAKgL0BiAAKgL4BhCtICACQShqIAAqAvQGQwAAgD+SIAAqAvgGEK4gIAJBKGogACoC9AZDAACAP5IgACoC/AYQriAgAkEoaiAAKgL0BiAAKgL8BhCuICACQShqELEgIABBuANqIAJBKGoQwTYgAkEoahD1ERoCQCAFDQAgByEFDAYLIAAtANAGIQEgByEFDAQLIAhBAWohCAwACwALIAogARCdOiABQRBqIQEMAAsACyAAQQA6APwCIABBAToA2AIgAEEAOgCsAyAAQQE6AIgDIAAgACgC4AI2AuQCIAAgACgC7AI2AvACIAAgACgCkAM2ApQDIAAgACgCnAM2AqADAkAgAEG0BmoQzh9FDQAgAEHoBmpBABDiLAwBCyAAQegGaiEEAkACQCAALQDaBkECRw0AAkACQCAEKAIAIgkNACACQShqIAMgAygCACgCGBEDACACKAIoIQkgAkEANgIoIAQgCRDiLCACKAIoEOMsDAELIAkgCSgCACgCCBEBAAsgACoCwAYhFSAAKgK8BiEWIAAoAugGIgQgACoCtAYiEyAAKgK4BiIUIAQoAgAoAhQRFwAgBCATIBYgE5OSIhYgFCAEKAIAKAIYERcAIAQgFiAUIBUgFJOSIhQgBCgCACgCGBEXACAEIBMgFCAEKAIAKAIYERcAIAQgBCgCACgCIBEBAAwBCyAEQQAQ4iwLIAAoAsgFIQMgACgCzAUhBEMAAAAAIRkCQCAALQDYBkEBRw0AIARFDQAgAygCBEUNAEMAAAAAIAMoAgAqAhiTIRkLIABBiANqIQggAEHYAmohCyABQQRxIQ4gAyAEQQN0aiEHQQAhCgNAIAMgB0YNASADKAIAIgYgAygCBEEFdGohDAJAA0AgBiAMRg0BIAogACgC1AUgACgC0AUiAWtBJG1PDQEgBioCECETIAYqAhghFCACQdQAaiABIApBJGxqIgEQ5CwgAkHIAGogARDnLCAZIBSSIRggAigCUCEPIAIoAkwhEAJAA0AgAigCXCEEAkAgAigCWCIBIBBHDQAgBCAPRg0CCyABKAIAIgEoAiAgBEECdCIRaioCACEUIAEoAjAhCSACQShqIAEoAgAiEiABKAIQIARBAXRqLwEAIBIoAgAoAiwRBQAgCSAEQQN0aiIEKgIAIRUgBCoCBCEWIAIgASoCBCIXOAIcIAJCADcCFCACIBc4AhAgAiAYIBaSOAIkIAIgEyAVkjgCICACKAIoIAIoAiwgAkEQahDQLAJAAkAgDkUNACABKAIYIBFqKAIAIgQgACkCrAIiHCAAKQK0AiIdIAAoArACIAAoArgCSSIJG0IgiKdJDQAgCCEBIAQgHSAcIAkbQiCIp0kNAQsgCyEBCyATIBSSIRMgASACQShqEME2IAJBKGoQ9REaIAJB1ABqEIAtGgwACwALIAZBIGohBiAKQQFqIQoMAAsACwJAIAMoAgQiAUUNACAZIAMoAgAgAUEFdGpBfGoqAgCSIRkLIANBCGohAyAZIAAqAtQGkiEZDAALAAsCQCAFQQFxRQ0AIAJBEGpBCGogAEG8BmopAgA3AwAgAiAAKQK0BjcDECACQShqIABBxABqIAJBEGoQ5yggAEH4AWogAkEoakEIaikCADcCACAAIAIpAig3AvABIAAtANkGQQFHDQAgABDgKwsgBUECSQ0AIAAoAjgiCSAAKAI0IhFrQQJ1IRJBACEBA0ACQAJAIAEgEkYNACARIAFBAnRqKAIAIgRFDQEgBEG6BCAEKAIAKAIMEQIARQ0BIAEhEgsgESASQQJ0aiEBA0AgASAJRg0DIAEoAgAiBEHYAWooAgAgBEHcAWooAgAQ5SEDQCABQQRqIgEgCUYNASABKAIAIgRFDQAgBEG6BCAEKAIAKAIMEQIADQEMAAsACwALIAFBAWohAQwACwALIAAqAqACQwAAAABcDQAgACoCpAJDAAAAAFwNACAAKAKQAiIBRQ0AIAAtAJQCDQAgACoC/AYhGCABQSBqKAIAIgkgAUE4aigCACIEEJAfIRYgCSAEEJEfIRcgACoC+AYgASoCRCIZkiEUIAAqAvQGIAEqAkAiFZIhEyAALQDgASIJIARBf2pB/wFxQQJJcSESAkACQCAJQX9zIARB/QFxRXEiBEEBRw0AIBNDAAAAAF1FDQACQCABKAJoIgRFDQAgBCAEKAIAKAJsEQEAIAAoApACIgEqAkAhFQsgASAVIBOTELcPDAELIARBAXMgEyAWQwAAgL+SXkEBc3INAAJAIAEoAmgiBEUNACAEIAQoAgAoAmwRAQAgACgCkAIiASoCQCEVCyABIBUgEyAWk0MAAIA/kpMQtw8LAkAgEkEBcyIBIBRDAAAAAF1BAXNyDQACQCAAKAKQAiIBKAJoIgRFDQAgBCAEKAIAKAJsEQEAIAAoApACIQELIAEgASoCRCAUkxC4DwwBCyABIBggGZIiEyAXXkEBc3INAAJAIAAoApACIgEoAmgiBEUNACAEIAQoAgAoAmwRAQAgACgCkAIhAQsgASABKgJEIBMgF5OTELgPCyACQeAAaiQAC1ABAn8gASgCkAEgAkECdGoiAygCACEEAkACQCACDQBBACECDAELIANBfGooAgAhAgsgASgChAEhASAAIAQgAms2AgQgACABIAJBDGxqNgIAC/oCAQF/IwBBEGsiBiQAAkACQCABKAK8Ag0AQwAAAAAhBEMAAAAAIQIMAQsgBEP//39/IAUbIQQgAkP//39/IAMbIQICQAJAAkACQAJAIAEoAsQGIgVFDQAgAS0A0AYiA0EIcUUNAiABQdAGaiEFDAELQYQBEKYBQQBBhAEQSBCbFCEFIAZBADYCDCABQcQGaiAFEPcsIAZBDGoQ+SwaIAEtANAGIgNBCHFFDQIgAUHQBmohBQsgBSADQfcBcToAAAwBCyABKgLIBiACXCABKgLMBiAEXHJFDQELIAEgASgCuAUgASgCtAUiBWtBAnUiAzYCzAIgASgCxAYgBSADIAFBvAJqQQEgAS0A2QYgAiAEIAEtANsGIAEtANwGIAEtANgGIAEtANoGIAEqAtQGENwsIAEgBDgCzAYgASACOALIBiABKALEBiEFCyAFKgKAASAFKgJ4kyECIAUqAnwgBSoCdJMhBAsgACACOAIEIAAgBDgCACAGQRBqJAALFQAgACABQZh/aiACIAMgBCAFEM46CxQAIAAgASoCADgCqAIgAEEAEMQ6CxgAIAAgASoCADgCwAEgAEGYf2pBABDEOgu0AQECfyMAQTBrIgEkACABQSRqIAAoArQFIAAoArgFEN4sAkAgAC0A4AENACABQRhqIAFBJGoQwToCQCABQRhqIAFBJGoQvBBFDQAgAEGsAmogAUEMaiABQRhqEOcFIgIQ9iwgAhCCBhogAUEkaiABQRhqEMAKCyABQRhqEIIGGgsgAEGAAmoiAiABQSRqEMAKIAAgASACEOcFIgIQwxAgAhCCBhogAUEkahCCBhogAUEwaiQAC+8JAwR/AX4BfSMAQSBrIgUkAEEAIQYCQCADRQ0AAkACQAJAAkACQAJAAkACQAJAAkACQCABQf99ag4NCQsDCwQGBQgHCwsBAgALAkAgAUHBAEYNACABQdoARw0LAkAQ1DpBAXIgAnEQ1DpBAXJHDQACQCAAKAKQByIGIAAoApQHIgNGDQAgACgCnAdBAWoiASADIAZrQSxtTw0AIABBrAJqIgMgBUEIaiAGIAFBLGxqIgZBIGoQ5wUiARD1LCABEIIGGiADQQhqIAZBGGopAgA3AgAgAyAGKQIQNwIAIAAgACgCnAdBAWo2ApwHIAAgAC0A0AZBC3I6ANAGCyAAENI6IAAgACgCACgCqAIRAQAMCwsQ1DogAnFFDQsCQCAAKAKcByIGRQ0AIABBrAJqIAVBCGogACgCkAcgBkEsbGoiBkF0ahDnBSIDEPUsIAMQggYaIABBtAJqIAZBCGopAgA3AgAgACAGKQIANwKsAiAAIAAoApwHQX9qNgKcByAAIAAtANAGQQtyOgDQBgsgABDSOiAAIAAoAgAoAqgCEQEADAoLENQ6IAJxRQ0KIABBrAJqENgsIABBgICA/Hs2AuwGIAVBCGpBACAAQcAFaiIGEPAsIAVBGGpBACAAKAK4BSAAKAK0BWsiA0ECdUF/aiADQQVJGyAGEPAsIAUpAwghCSAAIAUpAxg3ArQCIAAgCTcCrAIgACAALQDQBkECcjoA0AYgACAAKAIAKAKkAhEBAAwJC0EBIQYgAEGsAmpBAyACQQFxEPEsIAAgACgCACgCpAIRAQAMCQtBASEGIABBrAJqQQMgAkEBcRDyLCAAIAAoAgAoAqQCEQEADAgLIABBrAJqQX8Q1iwgABDSOiAAIAAoAgAoAqgCEQEADAYLQQEhBiAAQawCakEBENYsIAAQ0jogACAAKAIAKAKoAhEBAAwGC0EBIQYgAEGsAmogAhDVOiACQQFxEPEsIAAgACgCACgCpAIRAQAMBQtBASEGIABBrAJqIAIQ1TogAkEBcRDyLCAAIAAoAgAoAqQCEQEADAQLIABBrAJqIgMQ2CwCQCAAKgLsBiIKQwAAgL9cDQAgACAAKgL0BiIKOALsBgsgAkEBcSEGAkACQCAANQK0AiIJQgBSDQAgBUIANwMIDAELIAVBCGpBACAJpyIBQX9qIgIgAiABSxsgCiAAQcAFahCCLQsgBSkDCCEJAkAgBg0AIAMgCTcCAAsgACAJNwK0AiAAIAAtANAGQQJyOgDQBiAAIAAoAgAoAqQCEQEADAILIABBrAJqIgcQ2CwCQCAAKgLsBiIKQwAAgL9cDQAgACAAKgL0BiIKOALsBgsgAkEBcSEDIAAoArQCQQFqIQYgACgC1AUiASAAKALQBSICa0EkbSEIAkACQCABIAJGDQAgBiAISQ0AIAAoArgFIAAoArQFa0ECdSIBQQJJDQAgBSABQX9qNgIMIAUgCEF/ajYCCAwBCyAFQQhqIAYgCiAAQcAFahCCLQsgBSkDCCEJAkAgAw0AIAcgCTcCAAsgACAJNwK0AiAAIAAtANAGQQJyOgDQBiAAIAAoAgAoAqQCEQEADAELIAAtAOABQQFHDQEgAEGsAmogBUEIakHgjRIQngYiBhDgLCAGEIIGGiAAENI6IAAgACgCACgCpAIRAQALQQEhBgsgBUEgaiQAIAYLCQBBAkEIECQbCywBAX9BAyEBAkAgAEEIcQ0AQQAhASAAQQRxRQ0AQQJBASAAQQJxGyEBCyABCxMAIABBmH5qIAEgAiADQQAQ0zoLgAEBAX8jAEEQayICJAACQAJAIAAtAOABQQFHDQAgAkEEaiABEOcFGgwBCyACQQRqIAEQwToLAkAgAigCCCACLAAPIgEgAUEASBtFDQAgAEGsAmogAkEEahDgLCAAENI6IAAgACgCACgCqAIRAQALIAJBBGoQggYaIAJBEGokAEEBCxAAIABBmH5qIAEQ1zoaQQELBABBAAsEAEEACwIACwIACwIACwIAC1UCAX8BfiMAQRBrIgIkACACIAApAlQ3AwgCQAJAIAAoAigiAEUNACACIAAgAkEIahCpCyACKQMAIQMMAQsgAikDCCEDCyABIAM3AgAgAkEQaiQAQQELEAAgAEGYfmogARDfOhpBAQuiAQIEfwF+IwBBIGsiAiQAAkAgAEHwAWoiAxDOHyIEDQACQCAAKAIoIgVFDQAgAiAAKQLwATcCECACQRhqIAUgAkEQahCpCyACIAApAvgBNwIIIAJBEGogBSACQQhqEKkLIAIpAhghBiABIAIpAhA3AgggASAGNwIADAELIAEgAykCADcCACABQQhqIANBCGopAgA3AgALIAJBIGokACAEQQFzCw0AIABBmH5qIAEQ4ToLzgUCBX8GfSMAQSBrIgQkACAAQgA3AqACIARBGGpBACkDsJ8VNwMAIARBEGpBACkDqJ8VNwMAIARBACkDoJ8VNwMIAkAgAEHEAGogBEEIahD9BSIFRQ0AIAQqAhwgBCoCDCABp74iCZQgBCoCFCABQiCIp74iCpSSkiELIAQqAhggBCoCCCAJlCAEKgIQIAqUkpIhCQJAIAAoApACIgZFDQAgBkEgaigCACIHIAZBOGooAgAiCBCQHyEMIAcgCBCRHyEKAkAgAC0A4AENACAIQf0BcQ0BAkBDAAAAAEMAAKBBIAkgBioCQCINkiIKkyAKQwAAoEFgGyIOQwAAAABeRQ0AIANFDQAgACAOQwAAgECUQwAANEKSIgxDAADIQyAMQwAAyENdGyIMQwAANEIgDEMAADRCXhs4AqACIApDAAAAAF1FDQIgDYwhCQwCC0MAAAAAQwAAoEEgDCAKkyIOkyAOQwAAoEFgGyIOQwAAAABeRQ0BIANFDQEgACAOQwAAgECUQwAANEKSIg5DAADIQyAOQwAAyENdGyIOjEMAADTCIA5DAAA0Ql4bOAKgAiAKIAxeRQ0BIAwgDZMhCQwBCyAIQX9qQf8BcUEBSw0AAkBDAAAAAEMAAKBBIAsgBioCRCINkiIMkyAMQwAAoEFgGyIOQwAAAABeRQ0AIANFDQAgACAOQwAAgECUQwAANEKSIgpDAADIQyAKQwAAyENdGyIKQwAANEIgCkMAADRCXhs4AqQCIAxDAAAAAF1FDQEgDYwhCwwBC0MAAAAAQwAAoEEgCiAMkyIOkyAOQwAAoEFgGyIOQwAAAABeRQ0AIANFDQAgACAOQwAAgECUQwAANEKSIg5DAADIQyAOQwAAyENdGyIOjEMAADTCIA5DAAA0Ql4bOAKkAiAMIApeRQ0AIAogDZMhCwsgAiALOAIEIAIgCTgCAAsgBEEgaiQAIAULrQMCA38CfSMAQRBrIgIkAAJAAkAgAC0AlAINACAAQgA3AqACQQAhAwwBC0EAIQMCQCAAKgKgAiIFQwAAAABcDQAgACoCpAJDAAAAAFsNAQsgACgCkAIiBEUNAAJAIAQoAmgiA0UNACADIAMoAgAoAmwRAQAgACoCoAIhBQsCQCAFQwAAAABbDQAgBSABlCAAKAKQAiIDKgJAkiEFAkAgAy0AVQ0AIAVDAAAAACAFQwAAAABdGyIFIAMQlB8iBiAGIAVdGyEFIAAoApACIQMLIAMgBRC3DwsCQCAAKgKkAiIFQwAAAABbDQAgBSABlCAAKAKQAiIDKgJEkiEBAkAgAy0AVQ0AIAFDAAAAACABQwAAAABdGyIBIAMQlR8iBSAFIAFdGyEBIAAoApACIQMLIAMgARC4DwsCQCAAKAKYAkH/////B3FB////+wdKDQAgACgCnAJB/////wdxQf////sHSg0AIAAgACkCmAIgAkEIakEBEOM6RQ0AIABBrAJqIAIpAwhBARDzLCAAIAAoAgAoAqQCEQEACyAALQCUAiEDCyACQRBqJAAgA0EBcQsJACAAIAEQ5DoLDQAgAEGUfmogARDkOgvUAQECfyAAQfDxFDYC7AEgAEG48RQ2AugBIABBpPEUNgLkASAAQZDxFDYCaCAAQazuFDYCAAJAIAAoApAHIgFFDQAgAEGQB2oiAiABEN0sIAIoAgAQpAELIABBgAdqEOg6GiAAQegGahD5GxogAEHEBmoQ+SwaIABBwAVqEPgsGiAAQbQFahDJBxogAEGYBGoQ6ToaIABB6ANqEPYbGiAAQbgDahD2GxogAEGIA2oQ9hsaIABB2AJqEPYbGiAAQbwCahCTBhogAEGAAmoQggYaIAAQ6joLHwEBfwJAIAAoAgAiAUUNACAAIAE2AgQgARCkAQsgAAurAQEBfyAAQZABahDMJRoCQCAAKAKEASIBRQ0AIAAgATYCiAEgARCkAQsgAEH4AGoQ6wsaIABB7ABqEOsLGiAAQeAAahDxBRogAEHUAGoQ6DoaIABByABqEOg6GiAAKAI8EOs6IAAoAjQhASAAQQA2AjQCQCABRQ0AIAEQpAELIABBIGoQ7DoaIABBDGoQ7DoaAkAgACgCACIBRQ0AIAAgATYCBCABEKQBCyAACyMAIABBmO4UNgJoIABB7OsUNgIAIABB0AFqEIIGGiAAEJwKCyIBAX8CQANAIABFDQEgACgCACEBIAAQpAEgASEADAALAAsLKQEBfyAAKAIIEO06IAAoAgAhASAAQQA2AgACQCABRQ0AIAEQpAELIAALIgEBfwJAA0AgAEUNASAAKAIAIQEgABCkASABIQAMAAsACwsKACAAEOc6EKQBCwUAQbkEC0ABAX8CQAJAIAFBdmoiAkEcSw0AQQEgAnRBi4CAgAFxDQELIAFBAkYNACABQdsARg0AIAFBuQRGDQBBAA8LQQELjAEBAX8jAEEQayIDJAACQAJAAkACQCABQc95ag4CAAECCyADQQRqIAIQvwogAEHQAWogA0EEahDACiADQQRqEIIGGkEBIQEMAgsgACACELsKOALcAUEBIQEMAQsCQCABQdMHRg0AIAAgASACEKEKIQEMAQsgACACENoKOgDgAUEBIQELIANBEGokACABCwcAIAAoAigLBABBAQsLACAAQZh+ahDnOgsLACAAQZh+ahDuOgsLACAAQcB+aigCAAsEAEEBC0QBAX9BoAcQpgFBAEGgBxBIEPETIgFB0AFqIABB0AFqEOgFIAEgACoC3AE4AtwBIAEgAC0A4AE6AOABIAEgABDcCyABCwMAAAsCAAsCAAsCAAsEAEEACwsAIAAoAiBBuANqCw8AIABB0H5qKAIAQbgDagsRACAAQdABahDxIRogABCcCgsKACAAEIA7EKQBCwUAQbsEC0MBAX8CQAJAIAFBdmoiAkEcSw0AQQEgAnRBi4CAgAFxDQELIAFBxntqQQJJDQAgAUECRg0AIAFB2wBGDQBBAA8LQQELBwAgACgCKAsUACAAQdABaiAAKALQASgCHBEAAAsHACAAKAIgCwsAIABB2H5qKAIACwsAIABB0H5qKAIACwsAIABBsH5qEIA7CwsAIABBsH5qEIE7Cw8AIAAgACgCACgCHBEAAAsdAQF/QeQBEKYBQQBB5AEQSBDpEyIBIAAQ3AsgAQsDAAALAwAACxwAQQBBAiAAKAIgIgBBuQQgACgCACgCDBECABsLCAAgAEHEAGoLCAAgAEH0fmoLfwEFfyAAQdABaiECIAAoAtwBIQMgACgC2AEhBAJAA0AgBCADRg0BAkAgBCgCACIFIAUoAgAoAkwRAABFDQAgBSACIAUoAgAoAngRAgAiBkUNACAFIAEgBiAAKAIgQcQAakEAQQBBASAFKAIAKAJwERIACyAEQQRqIQQMAAsACwsgACAAIAAoAgAoAvQBEQAAQX9zIAAqAoQBQwAAAABccQsDAAALCwAgAEGwfmoQgDsLAwAACwoAIAAQjhoQpAELBABBAAsEAEEBCwQAQQEL1AkDA38EfgR9IwBBIGsiCCQAIAAgAxCWGiIJLQAAIQogCSgCBCEDAkACQAJAAkACQAJAIAUNACAKQQFxRQ0BIAlBADoAAAwBCyAKQQFxRQ0AIAMhBQJAAkAgBEF+ag4CAAEDC0EBIQUgCUEBNgIEDAILQQIhCiADIQUgA0EBRw0DDAILQQAhCiADIQUgBEF+cUECRg0BCwJAIANBAUYNACAFQQFHDQAQrBchCyAAKQM4IQwgACoCRCEPIAAqAkAhECACKgIEIREgAioCACESIAAgC0LoB38iCzcDOCAAQQEgACgCNCIDQQFqIANBAkobQQEgEiARIBAgDxDDLEMAAIBBXxtBASALIAx9QqHCHlQbNgI0IAAgAikCACILNwNAIAAoAiwiAyALNwKYAiADQQE6AJQCAkAgAyALIAhBGGpBABDjOkUNACADQawCaiAIKQMYQQAQ8ywgAyADKAIAKAKkAhEBAAsgAEEBOgAwIAcoAowDIgMgB0H8AmogAxshBCAAKAIsIgMoAjghCSADKAI0IQMCQANAIAMgCUYNASADKAIAIQUgA0EEaiEDIAVBjQUgBSgCACgCDBECAEUNAAsgCEEYaiAFELQLAkAgCCgCGCIDRQ0AIAMgAygCAEEBajYCACAIIAM2AgwgBCAIQQxqEOkeIAhBDGoQqQYaCyAIQRhqEKkGGgtBAiEJAkACQCAAKAI0QX5qDgIAAQULAkACQAJAAkAgACgCLCIDQbQFaigCACIFIANBuAVqKAIAIgAgAykCrAIiC0IgiCINpxDpLCIJQQtxRQ0AIAshDCANIQ4MAQsgBSAAIAtC/////w+EQoCAgIBwfEL/////DyALQv////8PVhsiDEIgiCIOpxDpLEELcUUNAQtB9AEhCQwBCyAJQX9zIQkgCyEMIA0hDgsgCEEYaiAFIAAgCUH/AXEiCSAOQiCGIAxC/////w+DhCILQX8Q6iwgCEEQaiADQbQFaigCACADQbgFaigCACAJIAtBARDqLCAIIAgoAhRBAWo2AhQgCCkDGCELIAMgCCkDEDcCtAIgAyALNwKsAkECIQkgAyADLQDQBkECcjoA0AYgAyADKAIAKAKkAhEBAAwECyAAKAIsIgNBrAJqENgsIANBgICA/Hs2AuwGIAggAykCrAI3AxggCEEYaiADQcAFahCILSADKALUBSADKALQBSIFa0EkbSEAAkAgBUUNACAAIAgpAxgiC6ciBE0NACAFIARBJGxqIgUgA0HcBWoiABDtLCEEIAUgABDuLCEFIAMgBK1CIIYgC0L/////D4MiC4Q3AqwCIAMgAy0A0AZBAnI6ANAGIAMgBa1CIIYgC4Q3ArQCCyADIAMoAgAoAqQCEQEADAMLIARBBEcNASAFQQFHDQFBASEFIAAtADBBAUcNASAAKAIsIgMgAikCACILNwKYAgJAIAMgCyAIQRhqQQEQ4zpFDQAgA0GsAmogCCkDGEEBEPMsIAMgAygCACgCpAIRAQALQQIhCQwCCyAJIAo2AgQgCiEFC0EAIQkgA0EBRw0AIAVBfXENACAALQAwQQFHDQAgACgCLCIDQgA3AqACIANCgICA/oeAgOD/ADcCmAJBACEJIANBADoAlAIgAEEAOgAwCyAIQSBqJAAgCQsEAEEACz0BAn9BAiECAkAgACgCICIDQbkEIAMoAgAoAgwRAgBFDQAgACgCICIAIAAtANAGQQ9yOgDQBkEAIQILIAILCwAgACgCIEGIA2oLDwAgAEHQfmooAgBBiANqCwoAIAAQgDsQpAELBQBBvwQLSAEBfwJAAkAgAUF2aiICQRxLDQBBASACdEGLgICAAXENAQsgAUECRg0AIAFB2wBGDQAgAUG6BEYNACABQb8ERg0AQQAPC0EBCwsAIABBsH5qEIA7CwsAIABBsH5qEKA7Cx0BAX9B5AEQpgFBAEHkARBIEPATIgEgABDcCyABCwQAQQALCwAgACgCIEHoA2oLDwAgAEHQfmooAgBB6ANqCwoAIAAQgDsQpAELBQBBvgQLUQECf0EBIQICQAJAIAFBdmoiA0EcSw0AQQEgA3RBi4CAgAFxDQELAkACQCABQcZ7ag4FAgEBAQIACyABQQJGDQEgAUHbAEYNAQtBACECCyACCwsAIABBsH5qEIA7CwsAIABBsH5qEKk7Cx0BAX9B5AEQpgFBAEHkARBIEPMTIgEgABDcCyABCwQAQQALCwAgACgCIEHYAmoLDwAgAEHQfmooAgBB2AJqCwoAIAAQgDsQpAELBQBBvAQLTwECf0EBIQICQAJAIAFBdmoiA0EcSw0AQQEgA3RBi4CAgAFxDQELAkACQCABQcZ7ag4DAgECAAsgAUECRg0BIAFB2wBGDQELQQAhAgsgAgsLACAAQbB+ahCAOwsLACAAQbB+ahCyOwsdAQF/QeQBEKYBQQBB5AEQSBDqEyIBIAAQ3AsgAQuCBwEHfyAAIAEQ6A4aQQEhAgJAAkACQCAAKAIgIgFFDQAgAUGfASABKAIAKAIMEQIARQ0AAkACQCAAKAIgIgMoAnQiASADKAJ4IgRPDQAgASAANgIAIAFBBGohAQwBCyABIAMoAnAiBWtBAnUiBkEBaiIBQYCAgIAETw0CAkACQCAEIAVrIgRBAXUiBSABIAUgAUsbQf////8DIARB/P///wdJGyICDQBBACEHDAELIAJBgICAgARPDQQgAkECdBCmASEHCyAHIAZBAnRqIgYgADYCACADKAJwIQUgAygCdCEBIAYhBAJAA0AgASAFRg0BIARBfGoiBCABQXxqIgEoAgA2AgAMAAsACyADIAZBBGoiATYCdCADKAJwIQUgAyAENgJwIAMgByACQQJ0ajYCeCAFRQ0AIAUQpAELIAMgATYCdAJAIABBoQEgACgCACgCDBECAEUNAAJAAkAgAygCgAEiASADKAKEASIETw0AIAEgADYCACABQQRqIQEMAQsgASADKAJ8IgVrQQJ1IgZBAWoiAkGAgICABE8NAwJAAkAgBCAFayIEQQF1IgcgAiAHIAJLG0H/////AyAEQfz///8HSRsiAg0AQQAhBwwBCyACQYCAgIAETw0FIAJBAnQQpgEhBwsgByAGQQJ0aiIGIAA2AgAgBiEEAkADQCABIAVGDQEgBEF8aiIEIAFBfGoiASgCADYCAAwACwALIAMgBkEEaiIBNgKAASADKAJ8IQUgAyAENgJ8IAMgByACQQJ0ajYChAEgBUUNACAFEKQBCyADIAE2AoABC0EAIQIgAEGjBCAAKAIAKAIMEQIARQ0AAkACQCADKAKMASIBIAMoApABIgRPDQAgASAANgIAIAFBBGohAQwBCyABIAMoAogBIgVrQQJ1IghBAWoiB0GAgICABE8NAgJAAkAgBCAFayIEQQF1IgYgByAGIAdLG0H/////AyAEQfz///8HSRsiBw0AQQAhBgwBCyAHQYCAgIAETw0EIAdBAnQQpgEhBgsgBiAIQQJ0aiIIIAA2AgAgCCEEAkADQCABIAVGDQEgBEF8aiIEIAFBfGoiASgCADYCAAwACwALIAMgCEEEaiIBNgKMASADKAKIASEAIAMgBDYCiAEgAyAGIAdBAnRqNgKQASAARQ0AIAAQpAELIAMgATYCjAELIAIPCxCsAQALEKgHAAsKACAAEMMKEKQBC84CAQZ/IAAgARDoDhpBASEBAkACQAJAIAAoAiAiAkUNACACQYYBIAIoAgAoAgwRAgBFDQACQAJAIAAoAiAiAygCzAQiASADKALQBCIETw0AIAEgADYCACABQQRqIQEMAQsgASADKALIBCICa0ECdSIFQQFqIgZBgICAgARPDQICQAJAIAQgAmsiBEEBdSIHIAYgByAGSxtB/////wMgBEH8////B0kbIgQNAEEAIQYMAQsgBEGAgICABE8NBCAEQQJ0EKYBIQYLIAYgBUECdGoiBSAANgIAIAUhAAJAA0AgASACRg0BIABBfGoiACABQXxqIgEoAgA2AgAMAAsACyADIAVBBGoiATYCzAQgAygCyAQhAiADIAA2AsgEIAMgBiAEQQJ0ajYC0AQgAkUNACACEKQBCyADIAE2AswEQQAhAQsgAQ8LEKwBAAsQqAcACz4BAX8gACgCICEBAkACQCAAKAJ8IAAoAoABRg0AIAEQnzoMAQsgASABKAIAKALUAhEBAAsgAEEgQQAQzQkaC3IBA38jAEEQayIBJAACQCAAKAJsIgJBf0cNAEEAIQIgASAAKAI4IABBOGogACwAQ0EASBsiAzYCDAJAA0AgAy0AAEUNASACQQFqIQIgAUEMahDhLBogASgCDCEDDAALAAsgACACNgJsCyABQRBqJAAgAgvAAQECfyMAQRBrIgckACAHIAQ2AgwCQCACRQ0AIAcgAzYCCCAAQQxqIQgDQAJAIAMgBEkNACAAIAdBDGoQ6BAMAgsCQCAGRQ0AAkAgASADQQJ0aigCACICQSFJDQAgAkGowABGDQAgAkGLwABHDQELIAcgA0EBaiIDNgIIDAELIAcgBSgCACAFKAIEIAMQ2SwiAjYCBCAAIAdBCGoQ6BAgCCAHQQRqEOgQIAcgAyACaiIDNgIIDAALAAsgB0EQaiQAC2gBAX8jAEEQayIFJAACQCACIANNDQAgASAETw0AIAUgAyABIAMgAUsbIgM2AgwgAiAEIAIgBEkbIgIgA00NACAAIAVBDGoQ6BAgBSACIANrNgIIIABBDGogBUEIahDXKAsgBUEQaiQACxUAIAAoAiAiACAAKAIAKALUAhEBAAsVACAAKAIgIgAgACgCACgC1AIRAQALFQAgACgCICIAIAAoAgAoAtQCEQEACxUAIAAoAiAiACAAKAIAKALUAhEBAAsVACAAKAIgIgAgACgCACgC1AIRAQALFQAgACgCICIAIAAoAgAoAtQCEQEACxUAIAAoAiAiACAAKAIAKALUAhEBAAsVACAAKAIgIgAgACgCACgC1AIRAQALFQAgACgCICIAIAAoAgAoAtQCEQEAC48CAQZ/AkACQAJAAkAgACgCBCICIAAoAggiA08NACACIAE3AgAgAkEIaiECDAELIAIgACgCACIEa0EDdSIFQQFqIgZBgICAgAJPDQECQAJAIAMgBGsiA0ECdSIHIAYgByAGSxtB/////wEgA0H4////B0kbIgYNAEEAIQcMAQsgBkGAgICAAk8NAyAGQQN0EKYBIQcLIAcgBUEDdGoiBSABNwIAIAUhAwJAA0AgAiAERg0BIANBeGoiAyACQXhqIgIpAgA3AgAMAAsACyAAIAVBCGoiAjYCBCAAKAIAIQQgACADNgIAIAAgByAGQQN0ajYCCCAERQ0AIAQQpAELIAAgAjYCBA8LEKwBAAsQqAcAC6EBAQF/IABBwIMVNgIAIABBsAFqEI8hGiAAQaQBahDKOxogAEGgAWoQkwYaIABBlAFqEMoHGgJAIAAoAogBIgFFDQAgACABNgKMASABEKQBCwJAIAAoAnwiAUUNACAAIAE2AoABIAEQpAELAkAgACgCcCIBRQ0AIAAgATYCdCABEKQBCwJAIAAoAmQiAUUNACAAIAE2AmggARCkAQsgABDCCgsfAQF/AkAgACgCACIBRQ0AIAAgATYCBCABEKQBCyAACwoAIAAQyTsQpAELBQBBnwELIwEBf0EBIQICQCABQXZqQQJJDQAgAUGfAUYNAEEAIQILIAILtQEAAkACQAJAAkACQAJAAkACQAJAAkAgAUG+fWoODgQFAwkJCQECBwgGCQkACQsgACACEKIKNgJAQQEPCyAAIAIQuwo4AkRBAQ8LIAAgAhC7CjgCSEEBDwsgACACELsKOAJMQQEPCyAAIAIQuwo4AlBBAQ8LIAAgAhC7CjgCVEEBDwsgACACELsKOAJYQQEPCyAAIAIQuwo4AlxBAQ8LIAAgAhC7CjgCYEEBDwsgACABIAIQvgoLdwEBf0G8ARCmAUEAQbwBEEgQ7RMiASAAKAJANgJAIAEgACoCRDgCRCABIAAqAkg4AkggASAAKgJMOAJMIAEgACoCUDgCUCABIAAqAlQ4AlQgASAAKgJYOAJYIAEgACoCXDgCXCABIAAqAmA4AmAgASAAEN8LIAELiwMBBn8gACABEOgOGgJAAkACQAJAIAAoAmgiAiAAKAIERg0AQQEhAyABIAIgASgCACgCCBECACIBRQ0BIAFBhwEgASgCACgCDBECAEUNASAAIAE2ApgBC0EBIQMgACgCICIBRQ0AIAFBnwEgASgCACgCDBECAEUNAAJAAkAgACgCICICKAJoIgEgAigCbCIETw0AIAEgADYCACABQQRqIQEMAQsgASACKAJkIgNrQQJ1IgVBAWoiBkGAgICABE8NAgJAAkAgBCADayIEQQF1IgcgBiAHIAZLG0H/////AyAEQfz///8HSRsiBA0AQQAhBgwBCyAEQYCAgIAETw0EIARBAnQQpgEhBgsgBiAFQQJ0aiIFIAA2AgAgBSEAAkADQCABIANGDQEgAEF8aiIAIAFBfGoiASgCADYCAAwACwALIAIgBUEEaiIBNgJoIAIoAmQhAyACIAA2AmQgAiAGIARBAnRqNgJsIANFDQAgAxCkAQsgAiABNgJoQQAhAwsgAw8LEKwBAAsQqAcACycAIAAgARCGDwJAIAFBowEgASgCACgCDBECAEUNACAAIAE2ApQBCwsKACAAKAIgELs7CwoAIAAoAiAQuzsLCgAgACgCIBC7OwsZACAAKAIgIgAoAiAQnzogAEEgQQAQzQkaCwoAIAAoAiAQuzsLCgAgACgCIBC7OwsKACAAKAIgELs7CwoAIAAoAiAQuzsLCgAgACgCIBC7OwsKACAAKAIgELs7CyQAIABBuIQVNgIAIABB+ABqEMkHGiAAQewAahDJBxogABDCCgsKACAAENw7EKQBCwUAQZ4BCyMBAX9BASECAkAgAUF2akECSQ0AIAFBngFGDQBBACECCyACC+cBAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAFBxH1qDhUDBwgJCwsLCwsEBQALCwsLCwYCCwEKCyAAIAIQuwo4AkBBAQ8LIAAgAhC7CjgCREEBDwsgACACELsKOAJIQQEPCyAAIAIQogo2AkxBAQ8LIAAgAhCiCjYCUEEBDwsgACACEKIKNgJUQQEPCyAAIAIQ2go6AFhBAQ8LIAAgAhC7CjgCXEEBDwsgACACELsKOAJgQQEPCyAAIAIQuwo4AmRBAQ8LIAFB+gJGDQELIAAgASACEL4KDwsgACACEKIKNgJoQQELAgALiwEBAX9BnAEQpgFBAEGcARBIEOcTIgEgACoCQDgCQCABIAAqAkQ4AkQgASAAKgJIOAJIIAEgACgCTDYCTCABIAAoAlA2AlAgASAAKAJUNgJUIAEgAC0AWDoAWCABIAAqAlw4AlwgASAAKgJgOAJgIAEgACoCZDgCZCABIAAoAmg2AmggASAAEN8LIAELLAAgACABQQN2aiIAIAAtAAAiAEEBIAFBB3EiAXRyIABBfiABd3EgAhs6AAAL9wUCDn8EfSMAQRBrIgYkACAGIAU6AAYgBiAEOgAHIAUgBHIhByAFRSAERXIhCCADKAIAIQkgAygCBCIKIQRBACELAkACQAJAA0AgASACRg0BQQAhDCABQQhqIQ0DQAJAIAxBAkcNACABQRBqIQEgC0EBaiELDAILIAFBDEEEIAwbaioCACEUIAEgDEEAR0EDdGoqAgAhFQJAAkAgDA0AIAFBDGogDSAFGyoCACAUIBUgBRuTIRYMAQsgFCAVIAUbIAFBBGogASAFGyoCAJMhFgsgFSAUIAgbIRcgFCAVIAcbIRQCQAJAIAQgAygCCCIOTw0AIAQgFDgCECAEIBc4AgwgBCAMOgAIIAQgFjgCBCAEIAs2AgAgBEEUaiEEDAELIAQgAygCACIPa0EUbSIQQQFqIhFBzZmz5gBPDQQCQAJAIA4gD2tBFG0iDkEBdCISIBEgEiARSxtBzJmz5gAgDkHmzJkzSRsiEg0AQQAhEwwBCyASQc2Zs+YATw0GIBJBFGwQpgEhEwsgEyAQQRRsaiIRIBQ4AhAgESAXOAIMIBEgDDoACCARIBY4AgQgESALNgIAIBEhDgJAA0AgBCAPRg0BIA5BbGoiDiAEQWxqIgQpAgA3AgAgDkEQaiAEQRBqKAIANgIAIA5BCGogBEEIaikCADcCAAwACwALIAMgEUEUaiIENgIEIAMoAgAhDyADIA42AgAgAyATIBJBFGxqNgIIIA9FDQAgDxCkAQsgAyAENgIEIAxBAWohDAwACwALAAsgAygCACEPIAYgBkEGajYCCCAPIAogCWsiDmoiDyAEIAZBCGpBAEE+IAQgD2tBFG1nQQF0ayAEIA9GG0EBEOU7IAMoAgAhDyADKAIEIQQgBiAGQQdqNgIMIA8gDmoiDyAEIAZBDGpBAEE+IAQgD2tBFG1nQQF0ayAEIA9GG0EBEOY7IAAgDkEUbSIENgIAIAAgAygCBCADKAIAa0EUbSAEazYCBCAGQRBqJAAPCxCsAQALEKgHAAuTGQIQfwN9IwBBMGsiBSQAA0AgAUFEaiEGIAFBWGohByABQWxqIQgCQANAAkACQAJAAkACQAJAIAEgACIJayIKQRRtIgsOBgcHAAQBAgMLIAhBEEEMIAIoAgAtAAAbIgBqKgIAIAkgAGoqAgBdRQ0GIAVBGGpBEGoiACAJQRBqIgooAgA2AgAgBUEYakEIaiIMIAlBCGoiDSkCADcDACAFIAkpAgA3AxggCiAIQRBqIgIoAgA2AgAgDSAIQQhqIgopAgA3AgAgCSAIKQIANwIAIAIgACgCADYCACAKIAwpAwA3AgAgCCAFKQMYNwIADAYLIAkgCUEUaiAJQShqIAggAhDnOwwFCyAJIAlBFGogCUEoaiAJQTxqIAggAhDoOwwECwJAIApB3wNKDQACQCAEQQFxRQ0AIAkgAUYNBSAJIQ4DQCAOIgxBFGoiDiABRg0GIA5BEEEMIAIoAgAtAAAbIgBqKgIAIAwgAGoqAgBdRQ0AIAVBGGpBCGoiDyAOQQhqKAIANgIAIAUgDikCADcDGCAMKgIkIRUgDCoCICEWIA4hCgJAA0AgCiAMIgApAgA3AgAgCkEQaiAAQRBqKAIANgIAIApBCGogAEEIaikCADcCAAJAIAAgCUcNACAJIQAMAgsgACEKIBUgFiACKAIALQAAIg0bIABBbGoiDEEQQQwgDRtqKgIAXQ0ACwsgACAFKQMYNwIAIABBCGogDygCADYCACAAIBU4AhAgACAWOAIMDAALAAsgCSABRg0EA0AgCSIMQRRqIgkgAUYNBSAJQRBBDCACKAIALQAAGyIAaioCACAMIABqKgIAXUUNACAFQRhqQQhqIg8gCUEIaigCADYCACAFIAkpAgA3AxggDCoCJCEVIAwqAiAhFiAJIQoDQCAKIAwiACkCADcCACAKQRBqIABBEGooAgA2AgAgCkEIaiAAQQhqIg4pAgA3AgAgACEKIBUgFiACKAIALQAAIg0bIABBbGoiDEEQQQwgDRtqKgIAXQ0ACyAAIAUpAxg3AgAgDiAPKAIANgIAIAAgFTgCECAAIBY4AgwMAAsACyADDQEgCSABRg0DIAtBfmpBAXYiDyEQA0ACQCAQQQBODQADQCALQQJIDQYgBUEYakEQaiIRIAlBEGooAgA2AgAgBUEYakEIaiIDIAlBCGopAgA3AwAgBSAJKQIANwMYIAtBfmpBAXYhEEEAIQogCSEAA0AgCkEBdCINQQFyIQ4gACIMIApBFGxqIg9BFGohAAJAAkAgDUECaiINIAtIDQAgDiEKDAELIA4hCiAAQRBBDCACKAIALQAAGyIOaioCACAPQShqIg8gDmoqAgBdRQ0AIA8hACANIQoLIAwgACkCADcCACAMQRBqIABBEGoiDSgCADYCACAMQQhqIABBCGoiDCkCADcCACAKIBBMDQALAkACQCAAIAFBbGoiAUcNACAAIAUpAxg3AgAgDSARKAIANgIAIAwgAykDADcCAAwBCyAAIAEpAgA3AgAgDSABQRBqIgooAgA2AgAgDCABQQhqIg0pAgA3AgAgASAFKQMYNwIAIA0gAykDADcCACAKIBEoAgA2AgAgACAJa0EUaiIKQRVIDQAgCSAKQRRuQX5qQQF2Ig1BFGxqIg5BEEEMIAIoAgAtAAAbIgpqKgIAIAAgCmoqAgBdRQ0AIAVBCGpBCGoiECAMKAIANgIAIAUgACkCADcDCCAAKgIQIRUgACoCDCEWAkADQCAAIA4iCikCADcCACAAQRBqIApBEGooAgA2AgAgAEEIaiAKQQhqIg8pAgA3AgAgDUUNASAKIQAgCSANQX9qQQF2Ig1BFGxqIg5BEEEMIAIoAgAtAAAiDBtqKgIAIBUgFiAMG10NAAsLIAogBSkDCDcCACAPIBAoAgA2AgAgCiAVOAIQIAogFjgCDAsgC0F/aiELDAALAAsCQCAPIBBIDQAgCSAQQRRsaiEAIAkgEEEBdCIOQQFyIgxBFGxqIQogAigCAC0AACENAkAgDkECaiIOIAtODQAgCkEQQQwgDUH/AXEbIhFqKgIAIApBFGoiAyARaioCAF1FDQAgAyEKIA4hDAsgCkEQQQwgDUH/AXEbIg1qKgIAIAAgDWoqAgBdDQAgBUEYakEIaiIEIABBCGooAgA2AgAgBSAAKQIANwMYIAAqAhAhFSAAKgIMIRYCQANAIAAiDSAKIgApAgA3AgAgDUEQaiAAQRBqKAIANgIAIA1BCGogAEEIaiIRKQIANwIAIA8gDEgNASAJIAxBAXQiDkEBciIMQRRsaiEKIAIoAgAtAAAhDQJAIA5BAmoiDiALTg0AIApBEEEMIA1B/wFxGyIDaioCACAKQRRqIgggA2oqAgBdRQ0AIAghCiAOIQwLIApBEEEMIA1B/wFxIg0baioCACAVIBYgDRtdRQ0ACwsgACAFKQMYNwIAIBEgBCgCADYCACAAIBU4AhAgACAWOAIMCyAQQX9qIRAMAAsACyAJIAlBFGogCCACEOk7DAILIAkgC0EBdkEUbCIMaiEAAkACQCAKQYEUSQ0AIAkgACAIIAIQ6TsgCUEUaiIKIABBbGoiDSAHIAIQ6TsgCUEoaiAKIAxqIgogBiACEOk7IA0gACAKIAIQ6TsgBUEYakEQaiIKIAlBEGoiDCgCADYCACAFQRhqQQhqIg0gCUEIaiIOKQIANwMAIAUgCSkCADcDGCAMIABBEGoiDygCADYCACAOIABBCGoiDCkCADcCACAJIAApAgA3AgAgDyAKKAIANgIAIAwgDSkDADcCACAAIAUpAxg3AgAMAQsgACAJIAggAhDpOwsgA0F/aiEDIAIoAgAtAAAhAAJAIARBAXEiEg0AIAlBEEEMIABB/wFxIg0bIgxqIgpBbGoqAgAgCioCAF0NACAFQQhqQQhqIhAgCUEIaiIRKAIANgIAIAUgCSkCADcDCCAJIQACQAJAIAkqAhAiFiAJKgIMIhcgDRsiFSAIIAxqKgIAXUUNAANAIBUgAEEUaiIAIAxqKgIAXUUNAAwCCwALA0AgAEEUaiIAIAFPDQEgFSAAIAxqKgIAXUUNAAsLIAEhCgJAIAAgAU8NAANAIBUgCkFsaiIKIAxqKgIAXQ0ACwsCQANAIAAgCk8NASAFQRhqQRBqIgwgAEEQaiINKAIANgIAIAVBGGpBCGoiDiAAQQhqIg8pAgA3AwAgBSAAKQIANwMYIA0gCkEQaiILKAIANgIAIA8gCkEIaiINKQIANwIAIAAgCikCADcCACALIAwoAgA2AgAgDSAOKQMANwIAIAogBSkDGDcCACAWIBcgAigCAC0AACIMGyEVQRBBDCAMGyEMA0AgFSAAQRRqIgAgDGoqAgBdRQ0ACwNAIBUgCkFsaiIKIAxqKgIAXQ0ADAELAAsACwJAIABBbGoiCiAJRg0AIAkgCikCADcCACAJQRBqIApBEGooAgA2AgAgESAKQQhqKQIANwIACyAKIAUpAwg3AgAgCkEIaiAQKAIANgIAIABBfGogFjgCACAAQXhqIBc4AgBBACEEDAELIAVBCGpBCGoiEyAJQQhqIhQoAgA2AgAgBSAJKQIANwMIQRBBDCAAQf8BcSIKGyEAIAkqAhAiFiAJKgIMIhcgChshFSAJIQ0DQCANIgpBFGoiDSAAaioCACAVXQ0ACyABIRECQAJAIAogCUcNAANAIA0gEU8NAiARQWxqIhEgAGoqAgAgFV1FDQAMAgsACwNAIBFBbGoiESAAaioCACAVXUUNAAsLIBEhCiANIQACQANAIAAgCk8NASAFQRhqQRBqIgwgAEEQaiIOKAIANgIAIAVBGGpBCGoiDyAAQQhqIgspAgA3AwAgBSAAKQIANwMYIA4gCkEQaiIQKAIANgIAIAsgCkEIaiIOKQIANwIAIAAgCikCADcCACAQIAwoAgA2AgAgDiAPKQMANwIAIAogBSkDGDcCACAWIBcgAigCAC0AACIMGyEVQRBBDCAMGyEMA0AgAEEUaiIAIAxqKgIAIBVdDQALA0AgCkFsaiIKIAxqKgIAIBVdRQ0ADAELAAsACwJAIABBbGoiCiAJRg0AIAkgCikCADcCACAJQRBqIApBEGooAgA2AgAgFCAKQQhqKQIANwIACyAKIAUpAwg3AgAgCkEIaiATKAIANgIAIABBfGogFjgCACAAQXhqIBc4AgACQCANIBFJDQAgCSAKIAIQ6jshDAJAIAAgASACEOo7RQ0AIAohASAJIQAgDEUNBAwDCyAMDQELIAkgCiACIAMgEhDlO0EAIQQMAAsACwsgBUEwaiQAC5MZAhB/A30jAEEwayIFJAADQCABQURqIQYgAUFYaiEHIAFBbGohCAJAA0ACQAJAAkACQAJAAkAgASAAIglrIgpBFG0iCw4GBwcABAECAwsgCEEQQQwgAigCAC0AABsiAGoqAgAgCSAAaioCAF1FDQYgBUEYakEQaiIAIAlBEGoiCigCADYCACAFQRhqQQhqIgwgCUEIaiINKQIANwMAIAUgCSkCADcDGCAKIAhBEGoiAigCADYCACANIAhBCGoiCikCADcCACAJIAgpAgA3AgAgAiAAKAIANgIAIAogDCkDADcCACAIIAUpAxg3AgAMBgsgCSAJQRRqIAlBKGogCCACEOs7DAULIAkgCUEUaiAJQShqIAlBPGogCCACEOw7DAQLAkAgCkHfA0oNAAJAIARBAXFFDQAgCSABRg0FIAkhDgNAIA4iDEEUaiIOIAFGDQYgDkEQQQwgAigCAC0AABsiAGoqAgAgDCAAaioCAF1FDQAgBUEYakEIaiIPIA5BCGooAgA2AgAgBSAOKQIANwMYIAwqAiQhFSAMKgIgIRYgDiEKAkADQCAKIAwiACkCADcCACAKQRBqIABBEGooAgA2AgAgCkEIaiAAQQhqKQIANwIAAkAgACAJRw0AIAkhAAwCCyAAIQogFSAWIAIoAgAtAAAiDRsgAEFsaiIMQRBBDCANG2oqAgBdDQALCyAAIAUpAxg3AgAgAEEIaiAPKAIANgIAIAAgFTgCECAAIBY4AgwMAAsACyAJIAFGDQQDQCAJIgxBFGoiCSABRg0FIAlBEEEMIAIoAgAtAAAbIgBqKgIAIAwgAGoqAgBdRQ0AIAVBGGpBCGoiDyAJQQhqKAIANgIAIAUgCSkCADcDGCAMKgIkIRUgDCoCICEWIAkhCgNAIAogDCIAKQIANwIAIApBEGogAEEQaigCADYCACAKQQhqIABBCGoiDikCADcCACAAIQogFSAWIAIoAgAtAAAiDRsgAEFsaiIMQRBBDCANG2oqAgBdDQALIAAgBSkDGDcCACAOIA8oAgA2AgAgACAVOAIQIAAgFjgCDAwACwALIAMNASAJIAFGDQMgC0F+akEBdiIPIRADQAJAIBBBAE4NAANAIAtBAkgNBiAFQRhqQRBqIhEgCUEQaigCADYCACAFQRhqQQhqIgMgCUEIaikCADcDACAFIAkpAgA3AxggC0F+akEBdiEQQQAhCiAJIQADQCAKQQF0Ig1BAXIhDiAAIgwgCkEUbGoiD0EUaiEAAkACQCANQQJqIg0gC0gNACAOIQoMAQsgDiEKIABBEEEMIAIoAgAtAAAbIg5qKgIAIA9BKGoiDyAOaioCAF1FDQAgDyEAIA0hCgsgDCAAKQIANwIAIAxBEGogAEEQaiINKAIANgIAIAxBCGogAEEIaiIMKQIANwIAIAogEEwNAAsCQAJAIAAgAUFsaiIBRw0AIAAgBSkDGDcCACANIBEoAgA2AgAgDCADKQMANwIADAELIAAgASkCADcCACANIAFBEGoiCigCADYCACAMIAFBCGoiDSkCADcCACABIAUpAxg3AgAgDSADKQMANwIAIAogESgCADYCACAAIAlrQRRqIgpBFUgNACAJIApBFG5BfmpBAXYiDUEUbGoiDkEQQQwgAigCAC0AABsiCmoqAgAgACAKaioCAF1FDQAgBUEIakEIaiIQIAwoAgA2AgAgBSAAKQIANwMIIAAqAhAhFSAAKgIMIRYCQANAIAAgDiIKKQIANwIAIABBEGogCkEQaigCADYCACAAQQhqIApBCGoiDykCADcCACANRQ0BIAohACAJIA1Bf2pBAXYiDUEUbGoiDkEQQQwgAigCAC0AACIMG2oqAgAgFSAWIAwbXQ0ACwsgCiAFKQMINwIAIA8gECgCADYCACAKIBU4AhAgCiAWOAIMCyALQX9qIQsMAAsACwJAIA8gEEgNACAJIBBBFGxqIQAgCSAQQQF0Ig5BAXIiDEEUbGohCiACKAIALQAAIQ0CQCAOQQJqIg4gC04NACAKQRBBDCANQf8BcRsiEWoqAgAgCkEUaiIDIBFqKgIAXUUNACADIQogDiEMCyAKQRBBDCANQf8BcRsiDWoqAgAgACANaioCAF0NACAFQRhqQQhqIgQgAEEIaigCADYCACAFIAApAgA3AxggACoCECEVIAAqAgwhFgJAA0AgACINIAoiACkCADcCACANQRBqIABBEGooAgA2AgAgDUEIaiAAQQhqIhEpAgA3AgAgDyAMSA0BIAkgDEEBdCIOQQFyIgxBFGxqIQogAigCAC0AACENAkAgDkECaiIOIAtODQAgCkEQQQwgDUH/AXEbIgNqKgIAIApBFGoiCCADaioCAF1FDQAgCCEKIA4hDAsgCkEQQQwgDUH/AXEiDRtqKgIAIBUgFiANG11FDQALCyAAIAUpAxg3AgAgESAEKAIANgIAIAAgFTgCECAAIBY4AgwLIBBBf2ohEAwACwALIAkgCUEUaiAIIAIQ7TsMAgsgCSALQQF2QRRsIgxqIQACQAJAIApBgRRJDQAgCSAAIAggAhDtOyAJQRRqIgogAEFsaiINIAcgAhDtOyAJQShqIAogDGoiCiAGIAIQ7TsgDSAAIAogAhDtOyAFQRhqQRBqIgogCUEQaiIMKAIANgIAIAVBGGpBCGoiDSAJQQhqIg4pAgA3AwAgBSAJKQIANwMYIAwgAEEQaiIPKAIANgIAIA4gAEEIaiIMKQIANwIAIAkgACkCADcCACAPIAooAgA2AgAgDCANKQMANwIAIAAgBSkDGDcCAAwBCyAAIAkgCCACEO07CyADQX9qIQMgAigCAC0AACEAAkAgBEEBcSISDQAgCUEQQQwgAEH/AXEiDRsiDGoiCkFsaioCACAKKgIAXQ0AIAVBCGpBCGoiECAJQQhqIhEoAgA2AgAgBSAJKQIANwMIIAkhAAJAAkAgCSoCECIWIAkqAgwiFyANGyIVIAggDGoqAgBdRQ0AA0AgFSAAQRRqIgAgDGoqAgBdRQ0ADAILAAsDQCAAQRRqIgAgAU8NASAVIAAgDGoqAgBdRQ0ACwsgASEKAkAgACABTw0AA0AgFSAKQWxqIgogDGoqAgBdDQALCwJAA0AgACAKTw0BIAVBGGpBEGoiDCAAQRBqIg0oAgA2AgAgBUEYakEIaiIOIABBCGoiDykCADcDACAFIAApAgA3AxggDSAKQRBqIgsoAgA2AgAgDyAKQQhqIg0pAgA3AgAgACAKKQIANwIAIAsgDCgCADYCACANIA4pAwA3AgAgCiAFKQMYNwIAIBYgFyACKAIALQAAIgwbIRVBEEEMIAwbIQwDQCAVIABBFGoiACAMaioCAF1FDQALA0AgFSAKQWxqIgogDGoqAgBdDQAMAQsACwALAkAgAEFsaiIKIAlGDQAgCSAKKQIANwIAIAlBEGogCkEQaigCADYCACARIApBCGopAgA3AgALIAogBSkDCDcCACAKQQhqIBAoAgA2AgAgAEF8aiAWOAIAIABBeGogFzgCAEEAIQQMAQsgBUEIakEIaiITIAlBCGoiFCgCADYCACAFIAkpAgA3AwhBEEEMIABB/wFxIgobIQAgCSoCECIWIAkqAgwiFyAKGyEVIAkhDQNAIA0iCkEUaiINIABqKgIAIBVdDQALIAEhEQJAAkAgCiAJRw0AA0AgDSARTw0CIBFBbGoiESAAaioCACAVXUUNAAwCCwALA0AgEUFsaiIRIABqKgIAIBVdRQ0ACwsgESEKIA0hAAJAA0AgACAKTw0BIAVBGGpBEGoiDCAAQRBqIg4oAgA2AgAgBUEYakEIaiIPIABBCGoiCykCADcDACAFIAApAgA3AxggDiAKQRBqIhAoAgA2AgAgCyAKQQhqIg4pAgA3AgAgACAKKQIANwIAIBAgDCgCADYCACAOIA8pAwA3AgAgCiAFKQMYNwIAIBYgFyACKAIALQAAIgwbIRVBEEEMIAwbIQwDQCAAQRRqIgAgDGoqAgAgFV0NAAsDQCAKQWxqIgogDGoqAgAgFV1FDQAMAQsACwALAkAgAEFsaiIKIAlGDQAgCSAKKQIANwIAIAlBEGogCkEQaigCADYCACAUIApBCGopAgA3AgALIAogBSkDCDcCACAKQQhqIBMoAgA2AgAgAEF8aiAWOAIAIABBeGogFzgCAAJAIA0gEUkNACAJIAogAhDuOyEMAkAgACABIAIQ7jtFDQAgCiEBIAkhACAMRQ0EDAMLIAwNAQsgCSAKIAIgAyASEOY7QQAhBAwACwALCyAFQTBqJAAL5QMBBn8jAEEgayIFJAAgACABIAIgBBDpOwJAIANBEEEMIAQoAgAtAAAbIgZqKgIAIAIgBmoqAgBdRQ0AIAVBCGpBEGoiByACQRBqIggoAgA2AgAgBUEIakEIaiIGIAJBCGoiCSkCADcDACAFIAIpAgA3AwggCCADQRBqIgooAgA2AgAgCSADQQhqIggpAgA3AgAgAiADKQIANwIAIAogBygCADYCACAIIAYpAwA3AgAgAyAFKQMINwIAIAJBEEEMIAQoAgAtAAAbIgNqKgIAIAEgA2oqAgBdRQ0AIAVBCGpBEGoiAyABQRBqIgcoAgA2AgAgBiABQQhqIggpAgA3AwAgBSABKQIANwMIIAcgAkEQaiIKKAIANgIAIAggCSkCADcCACABIAIpAgA3AgAgCiADKAIANgIAIAkgBikDADcCACACIAUpAwg3AgAgAUEQQQwgBCgCAC0AABsiAmoqAgAgACACaioCAF1FDQAgAyAAQRBqIgIoAgA2AgAgBUEIakEIaiIEIABBCGoiBikCADcDACAFIAApAgA3AwggAiAHKAIANgIAIAYgAUEIaiICKQIANwIAIAAgASkCADcCACAHIAMoAgA2AgAgAiAEKQMANwIAIAEgBSkDCDcCAAsgBUEgaiQAC/kEAQZ/IwBBIGsiBiQAIAAgASACIAMgBRDnOwJAIARBEEEMIAUoAgAtAAAbIgdqKgIAIAMgB2oqAgBdRQ0AIAZBCGpBEGoiCCADQRBqIgkoAgA2AgAgBkEIakEIaiIHIANBCGoiCikCADcDACAGIAMpAgA3AwggCSAEQRBqIgsoAgA2AgAgCiAEQQhqIgkpAgA3AgAgAyAEKQIANwIAIAsgCCgCADYCACAJIAcpAwA3AgAgBCAGKQMINwIAIANBEEEMIAUoAgAtAAAbIgRqKgIAIAIgBGoqAgBdRQ0AIAZBCGpBEGoiBCACQRBqIggoAgA2AgAgByACQQhqIgkpAgA3AwAgBiACKQIANwMIIAggA0EQaiILKAIANgIAIAkgCikCADcCACACIAMpAgA3AgAgCyAEKAIANgIAIAogBykDADcCACADIAYpAwg3AgAgAkEQQQwgBSgCAC0AABsiA2oqAgAgASADaioCAF1FDQAgBCABQRBqIgooAgA2AgAgBkEIakEIaiIDIAFBCGoiBykCADcDACAGIAEpAgA3AwggCiAIKAIANgIAIAcgAkEIaiIKKQIANwIAIAEgAikCADcCACAIIAQoAgA2AgAgCiADKQMANwIAIAIgBikDCDcCACABQRBBDCAFKAIALQAAGyICaioCACAAIAJqKgIAXUUNACAGQQhqQRBqIgIgAEEQaiIEKAIANgIAIAMgAEEIaiIFKQIANwMAIAYgACkCADcDCCAEIAFBEGoiCigCADYCACAFIAcpAgA3AgAgACABKQIANwIAIAogAigCADYCACAHIAMpAwA3AgAgASAGKQMINwIACyAGQSBqJAAL2AUCB38CfSMAQSBrIQQgAkEQQQwgAygCAC0AABsiBWoqAgAhCwJAAkAgASAFaioCACIMIAAgBWoqAgBdDQAgCyAMXUUNASAEQQhqQRBqIgUgAUEQaiIGKAIANgIAIARBCGpBCGoiByABQQhqIggpAgA3AwAgBCABKQIANwMIIAYgAkEQaiIJKAIANgIAIAggAkEIaiIKKQIANwIAIAEgAikCADcCACAJIAUoAgA2AgAgCiAHKQMANwIAIAIgBCkDCDcCACABQRBBDCADKAIALQAAGyICaioCACAAIAJqKgIAXUUNASAFIABBEGoiAigCADYCACAHIABBCGoiAykCADcDACAEIAApAgA3AwggAiAGKAIANgIAIAMgCCkCADcCACAAIAEpAgA3AgAgBiAFKAIANgIAIAggBykDADcCACABIAQpAwg3AgAPCwJAIAsgDF1FDQAgBEEIakEQaiIBIABBEGoiBSgCADYCACAEQQhqQQhqIgMgAEEIaiIGKQIANwMAIAQgACkCADcDCCAFIAJBEGoiBygCADYCACAGIAJBCGoiBSkCADcCACAAIAIpAgA3AgAgByABKAIANgIAIAUgAykDADcCACACIAQpAwg3AgAPCyAEQQhqQRBqIgUgAEEQaiIIKAIANgIAIARBCGpBCGoiBiAAQQhqIgkpAgA3AwAgBCAAKQIANwMIIAggAUEQaiIHKAIANgIAIAkgAUEIaiIIKQIANwIAIAAgASkCADcCACAHIAUoAgA2AgAgCCAGKQMANwIAIAEgBCkDCDcCACACQRBBDCADKAIALQAAGyIAaioCACABIABqKgIAXUUNACAFIAcoAgA2AgAgBiAIKQIANwMAIAQgASkCADcDCCAHIAJBEGoiACgCADYCACAIIAJBCGoiAykCADcCACABIAIpAgA3AgAgACAFKAIANgIAIAMgBikDADcCACACIAQpAwg3AgALC9kEAgp/An0jAEEgayIDJABBASEEAkACQAJAAkACQAJAIAEgAGtBFG0OBgUFAAQBAgMLIAFBbGoiBUEQQQwgAigCAC0AABsiBmoqAgAgACAGaioCAF1FDQQgA0EIakEQaiIGIABBEGoiBygCADYCACADQQhqQQhqIgggAEEIaiICKQIANwMAIAMgACkCADcDCCAHIAVBEGoiCSgCADYCACACIAVBCGoiBykCADcCACAAIAUpAgA3AgAgCSAGKAIANgIAIAcgCCkDADcCACAFIAMpAwg3AgAMBAsgACAAQRRqIABBKGogAUFsaiACEOc7DAMLIAAgAEEUaiAAQShqIABBPGogAUFsaiACEOg7DAILIAAgAEEUaiAAQShqIgcgAhDpOyAAQTxqIQVBACEKQQEhBANAIAUiCyABRg0CAkAgC0EQQQwgAigCAC0AABsiBWoqAgAgByAFaioCAF1FDQAgA0EIakEIaiIMIAtBCGooAgA2AgAgAyALKQIANwMIIAsqAhAhDSALKgIMIQ4gCyEGAkADQCAGIAciBSkCADcCACAGQRBqIAVBEGooAgA2AgAgBkEIaiAFQQhqIgkpAgA3AgAgBSAARg0BIAUhBiANIA4gAigCAC0AACIIGyAFQWxqIgdBEEEMIAgbaioCAF0NAAsLIAUgAykDCDcCACAJIAwoAgA2AgAgBSANOAIQIAUgDjgCDCAKQQFqIgpBCEcNACALQRRqIAFGIQQMAwsgC0EUaiEFIAshBwwACwALIAAgAEEUaiABQWxqIAIQ6TsLIANBIGokACAEC+UDAQZ/IwBBIGsiBSQAIAAgASACIAQQ7TsCQCADQRBBDCAEKAIALQAAGyIGaioCACACIAZqKgIAXUUNACAFQQhqQRBqIgcgAkEQaiIIKAIANgIAIAVBCGpBCGoiBiACQQhqIgkpAgA3AwAgBSACKQIANwMIIAggA0EQaiIKKAIANgIAIAkgA0EIaiIIKQIANwIAIAIgAykCADcCACAKIAcoAgA2AgAgCCAGKQMANwIAIAMgBSkDCDcCACACQRBBDCAEKAIALQAAGyIDaioCACABIANqKgIAXUUNACAFQQhqQRBqIgMgAUEQaiIHKAIANgIAIAYgAUEIaiIIKQIANwMAIAUgASkCADcDCCAHIAJBEGoiCigCADYCACAIIAkpAgA3AgAgASACKQIANwIAIAogAygCADYCACAJIAYpAwA3AgAgAiAFKQMINwIAIAFBEEEMIAQoAgAtAAAbIgJqKgIAIAAgAmoqAgBdRQ0AIAMgAEEQaiICKAIANgIAIAVBCGpBCGoiBCAAQQhqIgYpAgA3AwAgBSAAKQIANwMIIAIgBygCADYCACAGIAFBCGoiAikCADcCACAAIAEpAgA3AgAgByADKAIANgIAIAIgBCkDADcCACABIAUpAwg3AgALIAVBIGokAAv5BAEGfyMAQSBrIgYkACAAIAEgAiADIAUQ6zsCQCAEQRBBDCAFKAIALQAAGyIHaioCACADIAdqKgIAXUUNACAGQQhqQRBqIgggA0EQaiIJKAIANgIAIAZBCGpBCGoiByADQQhqIgopAgA3AwAgBiADKQIANwMIIAkgBEEQaiILKAIANgIAIAogBEEIaiIJKQIANwIAIAMgBCkCADcCACALIAgoAgA2AgAgCSAHKQMANwIAIAQgBikDCDcCACADQRBBDCAFKAIALQAAGyIEaioCACACIARqKgIAXUUNACAGQQhqQRBqIgQgAkEQaiIIKAIANgIAIAcgAkEIaiIJKQIANwMAIAYgAikCADcDCCAIIANBEGoiCygCADYCACAJIAopAgA3AgAgAiADKQIANwIAIAsgBCgCADYCACAKIAcpAwA3AgAgAyAGKQMINwIAIAJBEEEMIAUoAgAtAAAbIgNqKgIAIAEgA2oqAgBdRQ0AIAQgAUEQaiIKKAIANgIAIAZBCGpBCGoiAyABQQhqIgcpAgA3AwAgBiABKQIANwMIIAogCCgCADYCACAHIAJBCGoiCikCADcCACABIAIpAgA3AgAgCCAEKAIANgIAIAogAykDADcCACACIAYpAwg3AgAgAUEQQQwgBSgCAC0AABsiAmoqAgAgACACaioCAF1FDQAgBkEIakEQaiICIABBEGoiBCgCADYCACADIABBCGoiBSkCADcDACAGIAApAgA3AwggBCABQRBqIgooAgA2AgAgBSAHKQIANwIAIAAgASkCADcCACAKIAIoAgA2AgAgByADKQMANwIAIAEgBikDCDcCAAsgBkEgaiQAC9gFAgd/An0jAEEgayEEIAJBEEEMIAMoAgAtAAAbIgVqKgIAIQsCQAJAIAEgBWoqAgAiDCAAIAVqKgIAXQ0AIAsgDF1FDQEgBEEIakEQaiIFIAFBEGoiBigCADYCACAEQQhqQQhqIgcgAUEIaiIIKQIANwMAIAQgASkCADcDCCAGIAJBEGoiCSgCADYCACAIIAJBCGoiCikCADcCACABIAIpAgA3AgAgCSAFKAIANgIAIAogBykDADcCACACIAQpAwg3AgAgAUEQQQwgAygCAC0AABsiAmoqAgAgACACaioCAF1FDQEgBSAAQRBqIgIoAgA2AgAgByAAQQhqIgMpAgA3AwAgBCAAKQIANwMIIAIgBigCADYCACADIAgpAgA3AgAgACABKQIANwIAIAYgBSgCADYCACAIIAcpAwA3AgAgASAEKQMINwIADwsCQCALIAxdRQ0AIARBCGpBEGoiASAAQRBqIgUoAgA2AgAgBEEIakEIaiIDIABBCGoiBikCADcDACAEIAApAgA3AwggBSACQRBqIgcoAgA2AgAgBiACQQhqIgUpAgA3AgAgACACKQIANwIAIAcgASgCADYCACAFIAMpAwA3AgAgAiAEKQMINwIADwsgBEEIakEQaiIFIABBEGoiCCgCADYCACAEQQhqQQhqIgYgAEEIaiIJKQIANwMAIAQgACkCADcDCCAIIAFBEGoiBygCADYCACAJIAFBCGoiCCkCADcCACAAIAEpAgA3AgAgByAFKAIANgIAIAggBikDADcCACABIAQpAwg3AgAgAkEQQQwgAygCAC0AABsiAGoqAgAgASAAaioCAF1FDQAgBSAHKAIANgIAIAYgCCkCADcDACAEIAEpAgA3AwggByACQRBqIgAoAgA2AgAgCCACQQhqIgMpAgA3AgAgASACKQIANwIAIAAgBSgCADYCACADIAYpAwA3AgAgAiAEKQMINwIACwvZBAIKfwJ9IwBBIGsiAyQAQQEhBAJAAkACQAJAAkACQCABIABrQRRtDgYFBQAEAQIDCyABQWxqIgVBEEEMIAIoAgAtAAAbIgZqKgIAIAAgBmoqAgBdRQ0EIANBCGpBEGoiBiAAQRBqIgcoAgA2AgAgA0EIakEIaiIIIABBCGoiAikCADcDACADIAApAgA3AwggByAFQRBqIgkoAgA2AgAgAiAFQQhqIgcpAgA3AgAgACAFKQIANwIAIAkgBigCADYCACAHIAgpAwA3AgAgBSADKQMINwIADAQLIAAgAEEUaiAAQShqIAFBbGogAhDrOwwDCyAAIABBFGogAEEoaiAAQTxqIAFBbGogAhDsOwwCCyAAIABBFGogAEEoaiIHIAIQ7TsgAEE8aiEFQQAhCkEBIQQDQCAFIgsg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A0F8aiIDKAIANgIADAALAAsgACAGQQRqIgM2AgQgACgCACECIAAgATYCACAAIAcgBEECdGo2AgggAkUNACACEKQBCyAAIAM2AgQLDwsQrAEACxCoBwALGAAgACACIAEgAGtBAnUQmQoiACABIAAbCyYBAX9BEBCmASIBQQA2AgwgAUH0kBU2AgAgAUL/////DzcCBCABCx8BAX9BDBCmASIBQaiRFTYCACABQv////8PNwIEIAELGwACQCABDQBBAQ8LIAFBOiABKAIAKAIMEQIAC00AAkAgASAAKAIMIAEoAgAoAjgRAgAiAQ0AQQEPC0EBIQACQAJAIAEtABhBAUcNACABKAIMIAFBEGooAgAgAhCUPUUNAQtBACEACyAACw4AIAAgASACEI89IAFHCyYAAkAgASAAKAIMIAEoAgAoAjgRAgAiAUUNACABQQxqIAIQjj0LCwoAIAAQxgoQpAELBQBBxAALJAEBf0EBIQICQCABQb1/akECSQ0AIAFB3ANGDQBBACECCyACCykBAX9BEBCmASIBQdyRFTYCACABQv////8PNwIEIAEgACgCDDYCDCABCykBAX9BEBCmASIBQZySFTYCACABQv////8PNwIEIAEgACgCDDYCDCABCykBAX9BEBCmASIBQdSSFTYCACABQv////8PNwIEIAEgACgCDDYCDCABCywBAX9BEBCmASIBQX82AgQgAUIANwMIIAFBjJMVNgIAIAEgAC0ADDoADCABCykBAX9BEBCmASIBQcSTFTYCACABQv////8PNwIEIAEgACgCDDYCDCABCykBAX9BEBCmASIBQfyTFTYCACABQv////8PNwIEIAEgACgCDDYCDCABCykBAX9BEBCmASIBQbSUFTYCACABQv////8PNwIEIAEgACgCDDYCDCABCykBAX9BEBCmASIBQeyUFTYCACABQv////8PNwIEIAEgACoCDDgCDCABCzgBAX9BGBCmASIBQgA3AwAgAUEQakIANwMAIAFBCGpCADcDACABEKATIgFBDGogAEEMahDoBSABCwoAIAAQgRYQpAELKQEBf0EQEKYBIgFBlJYVNgIAIAFC/////w83AgQgASAAKAIMNgIMIAELCgAgABDSFhCkAQsFAEHiAwsPACABQeIDRiABQdwDRnILpgEBAn9BACEDAkAgACgCEEUNACAA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QQAPCyABIAAoAgQoAhAQvg0LSgEBf0EAIQICQCAARQ0AIAFFDQAgACgCCCIARQ0AIAAgASgCDCAAKAIAKAKkAxECACIARQ0AIABBACAAIAEoAhAQsyMbIQILIAILBwAgABCkAQsKACAAKAIEKAIMCwcAIAAQpAELKwACQCABQZQCaigCACABQZgCaigCACAAKAIEEIobIgENAEEADwsgASgCDAsEACAACwcAIAAQpAELIwACQCABIAAoAgQQ9T0iAQ0AQQAPCyABIAAoAgQoAhAQvQ0LBwAgABCkAQsKACAAKAIEKAIMCwcAIAAQpAELKwACQCABQZQCaigCACABQZgCaigCACAAKAIEEIobIgENAEEADwsgASgCDAsEACAACwcAIAAQpAELNAACQCACIAEoAgQQ9T0iAg0AIABCADcCACAAQQhqQQA2AgAPCyAAIAIgASgCBCgCEBC/DQsHACAAEKQBCxAAIAAgASgCBEEMahDnBRoLBwAgABCkAQtBAAJAIAJBlAJqKAIAIAJBmAJqKAIAIAEoAgQQihsiAkUNACAAIAJBDGoQ5wUaDwsgAEIANwIAIABBCGpBADYCAAsEACAACwcAIAAQpAELIwACQCABIAAoAgQQ9T0iAQ0AQQAPCyABIAAoAgQoAhAQwA0LBwAgABCkAQsKACAAKAIELQAMCwcAIAAQpAELOAACQAJAIAFBlAJqKAIAIAFBmAJqKAIAIAAoAgQQihsiAQ0AQQAhAQwBCyABLQAMIQELIAFBAXELBAAgAAsHACAAEKQBCycAAkAgASAAKAIEEPU9IgENAEMAAAAADwsgASAAKAIEKAIQEL4NswsHACAAEKQBCyYAAkAgASAAKAIEEPU9IgENAEMAAAAADwsgASAAKAIEKAIQELwNCwcAIAAQpAELCgAgACgCBCoCDAsHACAAEKQBCy8AAkAgAUGUAmooAgAgAUGYAmooAgAgACgCBBCKGyIBDQBDAAAAAA8LIAEoAgyzCwcAIAAQpAELLgACQCABQZQCaigCACABQZgCaigCACAAKAIEEIobIgENAEMAAAAADwsgASoCDAsHACAAEKQBC04BAX1DAAAAACECAkAgASgCCCIBRQ0AAkACQAJAIAAoAgQoAgwOAwABAgMLIAEqAqQCDwsgASoCqAIPCyABKgKkAiABKgKoApUhAgsgAgs4AAJAIAJBgICAgARJDQAQrAEACyABIABrIgFBAXUiACACIAAgAksbQf////8DIAFB/P///wdJGwtlACAAIAM2AhBBACEDIABBADYCDAJAAkAgAUUNACABQYCAgIAETw0BIAFBAnQQpgEhAwsgACADNgIAIAAgAyACQQJ0aiICNgIIIAAgAyABQQJ0ajYCDCAAIAI2AgQgAA8LEKgHAAuTAQEDfyABKAIEIQIgACgCACEDIAAoAgQhBAJAA0AgBCADRg0BIAJBfGoiAiAEQXxqIgQoAgA2AgAMAAsACyABIAI2AgQgACgCACEEIAAgAjYCACABIAQ2AgQgACgCBCEEIAAgASgCCDYCBCABIAQ2AgggACgCCCEEIAAgASgCDDYCCCABIAQ2AgwgASABKAIENgIAC0IBAn8gACgCCCEBIAAoAgQhAgJAA0AgASACRg0BIAAgAUF8aiIBNgIIDAALAAsCQCAAKAIAIgFFDQAgARCkAQsgAAsKACAAEMs9EKQBCwQAQQALCgAgABDLPRCkAQt3AQF/QQAhAwJAIAFBvAJqKAIAIAFBwAJqKAIAIAFBlAJqKAIAIAFBmAJqKAIAIAAoAggQihsQuyciAUUNAAJAIAEoAjAiAUUNACABLQBMQQJxRQ0AQQEhAyABKAI8IAFBwABqKAIAIAIQlD1FDQELQQAhAwsgAws3AQF/QRwQpgEiAUL/////DzcCBCABQgA3AxAgAUEANgIYIAFB0J4VNgIAIAEgACgCDDYCDCABCwcAIAAQpAELtggBC38jAEHQAGsiASQAAkAgACgCBCICKAIQIgNFDQAgAigCFCIERQ0AIARB0QQgBCgCACgCDBECACEAIANB3wMgAygCACgCDBECACEFAkAgAEUNAAJAIAVFDQAgAygCDCIFRQ0AQQwQpgEiACAFNgIIIABBwJkVNgIAIABBADYCBCACIAA2AhgMAgtBCBCmASIAQeiZFTYCACAAQQA2AgQgAiAANgIYDAELAkAgBUUNACAEQfkDIAQoAgAoAgwRAgBFDQAgAygCDCIARQ0AIABB9wMgACgCACgCDBECAEUNAEEMEKYBIgUgADYCCCAFQcCZFTYCACAFQQA2AgQgAiAFNgIYDAELIAFBADYCHCABQgA3AhQgAUEANgIQIAFCADcCCCADQQAgAUEUahDEPSAEQQEgAUEIahDEPSABKAIMIQYgASgCCCEHIAEoAhghCCABKAIUIQkCQAJAAkACQAJAA0AgCSAIRg0BIAkoAgAhBSAHIQACQANAIAAgBkYNASAAKAIAIgogBXIhCwJAIAUgCkYNACAAQQRqIQAgC0ECTw0BCwsgAigCDCEJQeiXFSEAQQQQpgEhBgJAIAlBBUsNACAJQQJ0QZCeFWooAgAhAAsgBiAANgIAIAtBAUsNA0EFQQAgCkEBRhtBACAFQQFGGyEADAQLIAlBBGohCQwACwALQQgQpgEiAEHomRU2AgAgAEEANgIEDAMLIAUgCkcNASAFQX5qIgtBB0sNASALQQJ0QaieFWooAgAhAAsgAUE4akEQakIANwMAIAFBOGpBCGpCADcDACABQgA3AzggAUEgakEQakIANwMAIAFBIGpBCGpCADcDACABQgA3AyACQCADIAUgACABQThqEMc9RQ0AIAQgCiAAIAFBIGoQxz1FDQACQAJAAkACQAJAAkACQAJAIAAOBwABAgMEBQYACyABKAI4IgVFDQcgASgCICIKRQ0HQRAQpgEiAEGMnRU2AgAMBgsgASgCPCIFRQ0GIAEoAiQiCkUNBkEQEKYBIgBBoJ0VNgIADAULIAEoAkAiBUUNBSABKAIoIgpFDQVBEBCmASIAQbSdFTYCAAwECyABKAJEIgVFDQQgASgCLCIKRQ0EQRAQpgEiAEHInRU2AgAMAwsgASgCSCIFRQ0DIAEoAjAiCkUNA0EQEKYBIgBB3J0VNgIADAILIAEoAkgiBUUNAiABKAIwIgpFDQJBEBCmASIAQfCdFTYCAAwBCyABKAJMIgVFDQEgASgCNCIKRQ0BQRAQpgEiAEGEnhU2AgALIAAgBjYCBCAAIAo2AgwgACAFNgIIDAILIAFBOGoQyD0gAUEgahDIPSAGKAIAIQALIAYgACgCBBEBAEEIEKYBIgBB6JkVNgIAIABBADYCBAsgAiAANgIYIAFBCGoQyT0aIAFBFGoQyT0aCyABQdAAaiQAQQALnggCBX8GfSMAQdAAayICJAACQAJAAkACQAJAIAAoAjwiAw0AIAFB2ABqIQMgAUHUAGohBCABKgJYIQcgASoCVCEIDAELIAMgAygCACgCQBEAAA0DIAFB2ABqIQMgAUHUAGohBCABKgJYIQcgASoCVCEIIAAoAjwiBQ0BCyAIIQkgByEKDAELIAJBOGpBEGogBUHUAGopAgA3AwAgAkE4akEIaiAFQcwAaikCADcDACACIAUpAkQ3AzgCQCAAKAJAQQFHDQAgBSgCICIFQdsAIAUoAgAoAgwRAgAhBiACQSBqQRBqQQApA7CfFTcDACACQSBqQQhqQQApA6ifFTcDACACQQApA6CfFTcDICAFQcQAakHgwB0gBhsgAkEgahD9BUUNAiACQQhqIAJBIGogAkE4ahD+BSACQThqQRBqIAJBCGpBEGopAgA3AwAgAkE4akEIaiACQQhqQQhqKQIANwMAIAIgAikCCDcDOAsgAioCTCELAkACQCAALQBZDQBDAAAAACAIIAAoAkRBAUYbIQkMAQsgAioCSCAAKgJMlCEJIAAtAFhBAUcNACAJIAEgASgCACgCbBELAJIhCQsCQAJAIAAtAGgNAEMAAAAAIAcgACgCREEBRhshCwwBCyALIAAqAlyUIQsgAC0AWEEBRw0AIAsgASABKAIAKAJwEQsAkiELCwJAIAAoAkRBAUYNACALIQoMAQsgASgCICIFQcQAakHgwB0gBUHbACAFKAIAKAIMEQIAGyIFKgIUIAUqAgQgCZQgCyAFKgIMlJKSIQogBSoCECAFKgIAIAmUIAsgBSoCCJSSkiEJCwJAAkAgACgCSCIFQQFGDQAgCiELDAELIAJByABqQQApA7CfFTcDACACQcAAakEAKQOonxU3AwAgAkEAKQOgnxU3AzggASgCICIGQcQAakHgwB0gBkHbACAGKAIAKAIMEQIAGyACQThqEP0FRQ0BIAIqAkwgAioCPCAJlCAKIAIqAkSUkpIhCyACKgJIIAIqAjggCZQgCiACKgJAlJKSIQkLAkAgAC0AW0EBRw0AIAkgACoCVCIKXkUNACAKIQkLAkAgAC0AWkEBRw0AIAkgACoCUCIKXUUNACAKIQkLAkAgAC0AakEBRw0AIAsgACoCZCIKXkUNACAKIQsLAkAgAC0AaUEBRw0AIAsgACoCYCIKXUUNACAKIQsLAkACQCAFQQFGDQAgCyEKDAELIAEoAiAiAUHEAGpB4MAdIAFB2wAgASgCACgCDBECABsiASoCFCABKgIEIAmUIAsgASoCDJSSkiEKIAEqAhAgASoCACAJlCALIAEqAgiUkpIhCQsgBCAIQwAAgD8gACoCNCILkyIMlCAJIAuUkjgCACADIAcgDJQgCiALlJI4AgALIAJB0ABqJAALCgAgABDDChCkAQsFAEHXAAsuAQF/AkACQCABQbF/aiICQQtLDQBBASACdEHDE3ENAQsgAUEKRg0AQQAPC0EBCwQAQQALHQEBf0HsABCmAUEAQewAEEgQ7hIiASAAEKAxIAELNwAgAEHYpxU2AmggAEHApRU2AgAgAEGgA2oQwgoaIABB0AJqEMIKGiAAQYACahDCChogABDVFQsKACAAEK0+EKQBCwQAQQgLOAEBfwJAAkAgAUF4aiICQR5LDQBBASACdEGdgYCABHENAQsgAUECRg0AIAFB2wBGDQBBAA8LQQELmAECBH0BfwJAIAFBEHFFDQAgACoC9AEhAiAAKgL8ASEDIABBgAJqIgYgACoC8AEiBCAAKgL4AYyUIgUgBEMAAAA/lJIQwA8gBiACIAOMlCICEMEPIABB0AJqIgYgBSAAKgLwAZIQwA8gBiACIAAqAvQBkhDBDyAAQaADaiIGIAUQwA8gBiACIAAqAvQBkhDBDwsgACABEOAYCxYBAX9B8AMQpgEQuRMiASAAEOwYIAELLAAgAEEAOgAoIABBAToABCAAIAAoAgw2AhAgACAAKAIYNgIcIABBNGoQ4BsLKwEBfwJAIAAoAiAQ5hsiAg0AQQIPCyACIABBxABqIAIoAgAoAgARAwBBAAsTACAAQcQAaiAAKAJEKAIcEQEACxMAIABBxABqIAAoAkQoAhwRAQALEwAgAEHEAGogACgCRCgCHBEBAAsTACAAQcQAaiAAKAJEKAIcEQEACxwAIAAgARDoDhogAC0AQEF/akH/AXFBAUtBAXQLswoCB38FfSMAQeAAayIEJAACQCAAKAJIIAAoAkwgARDqGyIBRQ0AAkAgASgCDCIFIAUoAgAoAgwRAAAiBigCBEUNACAGLQAAQQFxRQ0BCyACLQAoIQEgBiACKAIsNgIsIAYgAToAKCAGIAYoAgg2AgwgBkEAOgAkIAYgBigCFDYCGCAGQQE6AAAgAyADKAIAKAJ8EQAAIQcgACoCPCILIAuPkyALmEMAAIA/kiILIAuPkyEMIAVBNGohCAJAIAUoAjQiAyAFKAI4IglHDQAgBEEcaiACQQhqQwAAAD8QhiwhAgJAA0AgBEEIaiACEIcsIAQoAggiAUUNASAIIAEQiSwgBEEIahDiGxoMAAsACyAEQQhqEOIbGiACEIgsGiAFKAI4IQkgBSgCNCEDCyAMIAuYIQ0gBkEIaiECAkAgAC0AQEEBRw0AQwAAAAAhDgJAAkADQAJAIAMgCUcNACAEIA4gDSAAKgI0kpQiDzgCGCAEIA4gDSAAKgI4kpQiCzgCFCALIA9dDQIgCyEMIA8hCwwDCwJAIAMoAgAiAUUNACABIAEoAgBBAWo2AgALIANBBGohAyAEIAE2AhwgDiABKgIckiEOIARBHGoQ4hsaDAALAAsgBCAPOAIUIAQgCzgCGCAPIQwLAkAgCyAOXkUNACAEIAwgDpMiDDgCFCAEIAsgDpMiCzgCGAsgBSgCNCEBIAUoAjghA0EAIQAgBEEANgIkIARCADcCHCAEQQA2AhAgBEIANwIIIAMgAWtBAnUhCUEAIQMDQAJAIAxDAAAAAF4NAEF/IQVBACEDAkADQCAAIAQoAiAgBCgCHCIJa0ECdSIBTw0BAkAgCCgCACAJIANBH3UgAXEgA2ogAXAiBkECdGooAgAiCUECdGooAgAiAUUNACABIAEoAgBBAWo2AgALIAQoAgghCiAEIAE2AgQgCiAGQQN0aiIGKgIAIQsgBkEEaioCACEMIAEqAhwhDkEBIQYCQCAFIAlHDQAgAS0AIEEBcyEGCyABIAsgDCACIAZBAXEQjiwCQAJAAkAgC0MAAAAAXA0AIAwgC5MgDmBFDQAgB0EBRg0BIAQoAgQtACBBAXENAQwCCyAHQQFHDQELIAIQsSALIANBf2ohAyAAQQFqIQAgBEEEahDiGxogCSEFDAALAAsgBEEIahDKBxogBEEcahCyBhoMAwsgBCADIAlvIgE2AgQCQCAIKAIAIAFBAnRqKAIAIgFFDQAgASABKAIAQQFqNgIACyAEIAE2AgACQAJAIAsgASoCHCIOXUUNACAEQRxqIARBBGoQ7Q0gBEEIaiAEQRhqEMsZIARBCGogBEEUahDLGUMAAAAAIQsMAQsgCyAOkyELCyAEIAs4AhggBCAMIA6TIgw4AhQgA0EBaiEDIAQQ4hsaDAALAAsDQCADIAlGDQECQCADKAIAIgFFDQAgASABKAIAQQFqNgIACyAEIAE2AhwgASABKgIcIgwgDSAAKgI4kpQiCyAMIA0gACoCNJKUIg4gCyAOXSIIGyIPIAyTIA8gDyAMYCIGGyAOIAsgCBsiCyAMkyALIAYbIgsgAkEBEI4sAkADQCALIAxeRQ0BIAQoAhwiAUMAAAAAIAsgDJMiCyACIAEtACBBf3NBAXEQjiwMAAsACwJAAkACQCAAKgI0QwAAAABcDQAgACoCOEMAAIA/XA0AIAdBAUYNASAEKAIcLQAgQQFxDQEMAgsgB0EBRw0BCyACELEgCyADQQRqIQMgBEEcahDiGxoMAAsACyAEQeAAaiQACxEAIABBvH9qIAEgAiADELo+CwoAIAAoAiAQ5hsLCwAgAEG8f2oQvD4LXAEBf0HAABCmAUEAQTAQSCIBQgA3AgggAUEBOgAEIAFB7LEVNgIAIAFBEGpCADcCACABQRhqQgA3AgAgAUEgakEANgIAIAFCADcCOCABQgI3AjAgAUEBOgAsIAELHwAgAEHssRU2AgAgAEE0ahDhGxogAEEEahD2GxogAAsKACAAEL8+EKQBCwcAIABBBGoLCQEBfyABEL4+CxEAIABBxABqEPwbGiAAEMMKCwoAIAAQwz4QpAELBABBLwsNACABQS9GIAFBCkZyC1sAAkACQAJAAkACQCABQY5/ag4EAAECAwQLIAAgAhC7CjgCNEEBDwsgACACELsKOAI4QQEPCyAAIAIQuwo4AjxBAQ8LIAAgAhCiCjYCQEEBDwsgACABIAIQvgoLCwAgAEG8f2oQwz4LCwAgAEG8f2oQxD4LRQEBf0HcABCmAUEAQdwAEEgQrhMiASAAKgI0OAI0IAEgACoCODgCOCABIAAqAjw4AjwgASAAKAJANgJAIAEgABDfCyABCx8BAX9BDBCmASIBQZyzFTYCACABQv////8PNwIEIAELDwAgACAAKAIAKAJYEQEACw8AIAAgACgCACgCWBEBAAsDAAALZwEEfyAAQbC0FTYCACAAQRxqIQEgACgCICECIAAoAhwhAwJAA0AgAyACRg0BAkAgAygCACIERQ0AIAQgBCgCACgCBBEBAAsgA0EEaiEDDAALAAsgAEEoahDUBhogARDOBhogABC+FwsKACAAEM8+EKQBCwUAQbMDCw8AIAFBswNGIAFBrQNGcguOAgEGfwJAAkACQCAAKAIEIgIgACgCCCIDTw0AIAIgASgCADYCACACQQRqIQIMAQsgAiAAKAIAIgRrQQJ1IgVBAWoiBkGAgICABE8NAQJAAkAgAyAEayIDQQF1IgcgBiAHIAZLG0H/////AyADQfz///8HSRsiBw0AQQAhAwwBCyAHENIGIQMgACgCACEEIAAoAgQhAgsgAyAFQQJ0aiIGIAEoAgA2AgAgBiEBAkADQCACIARGDQEgAUF8aiIBIAJBfGoiAigCADYCAAwACwALIAAgBkEEaiICNgIEIAAoAgAhBCAAIAE2AgAgACADIAdBAnRqNgIIIARFDQAgBBCkAQsgACACNgIEDwsQrAEACyEBAX9BOBCmAUEAQTgQSBDTEiIBQQxqIABBDGoQ6AUgAQs4AQF/QRgQpgEiAUIANwMAIAFBEGpCADcDACABQQhqQgA3AwAgARDEEiIBQQxqIABBDGoQ6AUgAQsKACAAEL4XEKQBCwcAIAAQpAELBABBAAvjAgEFfyAAQYy6FTYCACAAQcgAaiEBIAAoAkwhAiAAKAJIIQMCQANAAkAgAyACRw0AIAEQkRgCQCAAKAKAASIDRQ0AIAMgAygCGCIEQX9qNgIYIARBAUcNACADIAMoAgAoAgQRAQALIAAoAnQhAwNAIANFDQMgAygCACEEIAMQpAEgBCEDDAALAAsCQCADKAIAIgRBvAMgBCgCACgCDBECAEUNACADKAIAIgUoAmgiBEUNAAJAIAQoAkQNACAEIAQoAgAoAgQRAQALAkAgBSgCaCIERQ0AIAQgBCgCREEBajYCRAsgBCAAEJQYIAQgBCgCRCIFQX9qNgJEIAVBAUcNACAEIAQoAgAoAgQRAQALIANBBGohAwwACwALIAAoAmwhAyAAQQA2AmwCQCADRQ0AIAMQpAELAkAgACgCYCIDRQ0AIAAgAzYCZCADEKQBCyAAQdQAahDUBhogARCOGBogABDCCgsYACAAIAIgASAAa0ECdRCZCiIAIAEgABsLCgAgABDZPhCkAQsFAEG1AwsjAQF/QQEhAgJAIAFBdmpBAkkNACABQbUDRg0AQQAhAgsgAgsjAAJAIAFBtgRHDQAgACACEKIKNgJAQQEPCyAAIAEgAhC+CguFAQEEf0GEARCmAUEAQYQBEEgQ1xIiASAAEOA+AkAgACgCKA0AIAAoAkwhAiAAKAJIIQMDQCADIAJGDQECQCADKAIAIgRFDQAgBCAEKAI4QQFqNgI4CyABIAQgBCgCACgCFBEAABCaGCAEEOkGIANBBGohAwwACwALIAEgACgCgAEQmRggAQsTACAAIAEoAkA2AkAgACABEN8LC/8DAQh/IwBBEGsiAiQAAkACQAJAAkAgASgCACIDIAEoAgQiBBD5CCIFDQBBASEBDAELAkAgBSgCgAEiBkUNACAGKAJUIAYoAlAiBmtBAnUgACgCQCIHTQ0AIAYgB0ECdGooAgAiBkUNACACIAA2AgwgBkEoaiACQQxqENM+IAAgBhCZGCABKAIEIQQgASgCACEDCwJAIAMgBBDrDkUNACAAIAEQ+gghAQwBCwJAIAUoAoABIgQNAEEAIQEMAQsCQAJAIAQoAmAiASAEKAJkIgVPDQAgASAANgIAIAFBBGohAAwBCyABIAQoAlwiA2tBAnUiCEEBaiIHQYCAgIAETw0CQQAhBgJAIAUgA2siBUEBdSIJIAcgCSAHSxtB/////wMgBUH8////B0kbIgdFDQAgB0GAgICABE8NBCAHQQJ0EKYBIQYLIAYgCEECdGoiCCAANgIAIAghAAJAA0AgASADRg0BIAFBfGoiASgCACEFIAFBADYCACAAQXxqIgAgBTYCAAwACwALIAQoAlwhBSAEIAA2AlwgBCgCYCEBIAQgCEEEaiIANgJgIAQgBiAHQQJ0ajYCZAJAA0AgASAFRg0BIAFBfGoQowYhAQwACwALIAVFDQAgBRCkAQsgBCAANgJgQQAhAUEAEIcYCyACQRBqJAAgAQ8LEKwBAAsQqAcACwIAC/MIAgx/An0CQCABRQ0AIABB7ABqIQMCQAJAAkAgACgCcCIEDQAMAQsCQAJAIARpIgVBAUsNACAEQX9qIAFxIQYMAQsgASEGIAQgAUsNACABIARB/wFxcCEGCyADKAIAIAZBAnRqKAIAIgdFDQAgBEF/aiEIIAVBAUshCQNAIAcoAgAiB0UNAQJAIAcoAgQiBSABRg0AAkACQCAJDQAgBSAIcSEFDAELIAUgBEkNACAFIARwIQULIAUgBkYNAQwCCyAHLQAIIAFHDQAMAgsAC0EQEKYBIgdBADYCDCAHIAE6AAggByABNgIEIAdBADYCACAAQfQAaiEKIAAqAnwhDyAAKAJ4QQFqsyEQAkACQCAERQ0AIA8gBLOUIBBdRQ0BCyAEQQF0IARBA0kgBCAEQX9qcUEAR3JyIQUCQAJAIBAgD5WNIg9DAACAT10gD0MAAAAAYHFFDQAgD6khCQwBC0EAIQkLQQIhBgJAIAUgCSAFIAlLGyIFQQFGDQACQCAFIAVBf2pxDQAgBSEGDAELIAUQ+wghBiAAKAJwIQQLAkACQAJAAkAgBiAESw0AIAYgBE8NAyAEQQNJIQkCQAJAIAAoAnizIAAqAnyVjSIPQwAAgE9dIA9DAAAAAGBxRQ0AIA+pIQUMAQtBACEFCwJAAkAgCQ0AIARpQQFLDQAgBUEBQSAgBUF/amdrdCAFQQJJGyEFDAELIAUQ+wghBQsCQCAGIAUgBiAFSxsiBiAESQ0AIAAoAnAhBAwECyAGRQ0BCwJAIAZBgICAgARPDQAgAyAGQQJ0EKYBEOQ+IAAgBjYCcEEAIQUCQANAAkAgBSAGRw0AIAooAgAiCA0CDAULIAMoAgAgBUECdGpBADYCACAFQQFqIQUMAAsACyAIKAIEIQsCQAJAIAZpIgVBAUsNACALIAZBf2pxIQsMAQsgCyAGSQ0AIAsgBnAhCwsgAygCACALQQJ0aiAKNgIAIAZBf2ohDCAFQQFLIQ0DQCAIKAIAIgRFDQMgBCgCBCEFAkACQCANDQAgBSAMcSEFDAELIAUgBkkNACAFIAZwIQULAkAgBSALRg0AAkAgAygCACAFQQJ0IglqIg4oAgANACAOIAg2AgAgBSELDAELIAggBCgCADYCACAEIAMoAgAgCWooAgAoAgA2AgAgAygCACAJaigCACAENgIADAELIAQhCAwACwALEKgHAAtBACEEIANBABDkPiAAQQA2AnAMAQsgBiEECwJAIAQgBEF/aiIFcQ0AIAUgAXEhBgwBCwJAIAQgAU0NACABIQYMAQsgASAEcCEGCwJAAkACQCADKAIAIAZBAnRqIgEoAgAiBQ0AIAcgCigCACIFNgIAIAogBzYCACABIAo2AgAgBUUNAiAFKAIEIQUCQAJAIAQgBEF/aiIBcQ0AIAUgAXEhBQwBCyAFIARJDQAgBSAEcCEFCyADKAIAIAVBAnRqIQUMAQsgByAFKAIANgIACyAFIAc2AgALIAAgACgCeEEBajYCeAsgByACNgIMCwsfAQF/IAAoAgAhAiAAIAE2AgACQCACRQ0AIAIQpAELCywAAkBBAC0AiJMeQQFxDQBBAEIANwL8kh5BAEEBOgCIkx5BAEEANgKEkx4LCxwAAkAgAEGAgICABEkNABCoBwALIABBAnQQpgELGAAgACACIAEgAGtBAnUQmQoiACABIAAbCxcAIABB5ABqQQAQhQcgABCGByAAEOk+C/oBAQN/IAAgAC0ATCIBQQJyIgI6AEwCQCAAKAJQIgNFDQAgAygCACADKAIERg0AAkAgAUEEcUUNAAJAIAAoAlQiAkUNACACIAIoAgA2AgQLIABB1ABqIQEgAxDxPyEDIAAoAlAQ8j8hAgNAAkAgAyACRw0AIAAgAC0ATEF7cSICOgBMDAILIAEgAygCABDVJyADQQRqIQMMAAsACyACQQhxDQAgACACQQhyOgBMIAAoAlQQ8T8hAyAAKAJUEPI/IQEDQAJAIAMgAUcNACAAIAAtAExB9wFxOgBMDAILIAMoAgAiAiACKAIAKAIAEQEAIANBBGohAwwACwALCz4BAX8CQCAAKAJoIgFFDQAgAUHIAGooAgAgAUHMAGooAgAQkwwLIAAgACgCPDYCQCAAIAAtAExB/QFxOgBMCyQAIABB/LQVNgIAIABB6ABqEKMGGiAAQeQAahCFBhogABDKFwsKACAAEOs+EKQBCwUAQdcECygBAX9BASECAkAgAUEKRg0AIAFBrANGDQAgAUHXBEYNAEEAIQILIAILIwACQCABQc4GRw0AIAAgAhCiCjYCYEEBDwsgACABIAIQzRcLJwEBf0HsABCmAUEAQewAEEgQzxIiASAAKAJgNgJgIAEgABDxPiABCxMAIAAgASgCNDYCNCAAIAEQ3wsLVgEDfwJAIAEoAgAgASgCBBD5CCICDQBBAQ8LIABB5ABqIQMgAigCLCEEIAIoAighAgN/AkAgAiAERw0AIAAgARDzPg8LIAMgAhDJDiACQQRqIQIMAAsLQQEBfwJAIAEoAgAgASgCBBDtPyICDQBBAQ8LIAIoAgQgABCaGAJAIAEoAgAgASgCBBDrDg0AQQAPCyAAIAEQ+ggLGgAgAEGsuRU2AgAgAEHkAGoQww4aIAAQyhcLCgAgABD0PhCkAQsFAEHKBAsoAQF/QQEhAgJAIAFBCkYNACABQawDRg0AIAFBygRGDQBBACECCyACCyMAAkAgAUG4BkcNACAAIAIQogo2AmBBAQ8LIAAgASACEM0XCwIACx0BAX9B8AAQpgFBAEHwABBIEOMSIgEgABD7PiABCxMAIAAgASgCYDYCYCAAIAEQ8T4LGgAgAEHctRU2AgAgAEHwAGoQixAaIAAQ9D4LCgAgABD8PhCkAQsFAEHLBAsrAQF/QQEhAgJAIAFBtntqQQJJDQAgAUEKRg0AIAFBrANGDQBBACECCyACC4cBAQV/IwBBEGsiASQAQfQAEKYBEOQSIgIgABD7PiACQeQAaiEDIAAoAmghBCAAKAJkIQACQANAIAAgBEYNAQJAIAAoAgAiBUUNACAFIAUoAihBAWo2AigLIAEgBTYCDCADIAFBDGoQyQ4gAEEEaiEAIAFBDGoQxg4aDAALAAsgAUEQaiQAIAILDAAgABCGByAAEOk+CwwAIAAQhgcgABDpPgsKACAAEMoXEKQBCwUAQcEDCygBAX9BASECAkAgAUEKRg0AIAFBrANGDQAgAUHBA0YNAEEAIQILIAILIwACQCABQdEERw0AIAAgAhDaCjoAYEEBDwsgACABIAIQzRcLJwEBf0HkABCmAUEAQeQAEEgQ2xIiASAALQBgOgBgIAEgABDxPiABCwwAIAAQhgcgABDpPgsKACAAEMoXEKQBCwUAQaoDCyoBAX9BASECAkACQAJAIAFB1nxqDgMCAQIACyABQQpGDQELQQAhAgsgAgsjAAJAIAFBqwRHDQAgACACEJQPNgJgQQEPCyAAIAEgAhDNFwsnAQF/QeQAEKYBQQBB5AAQSBDIEiIBIAAoAmA2AmAgASAAEPE+IAELDAAgABCGByAAEOk+CwoAIAAQyhcQpAELBQBBsAMLLAEBf0EBIQICQAJAAkAgAUHUfGoOBQIBAQECAAsgAUEKRg0BC0EAIQILIAILIwACQCABQbAERw0AIAAgAhCiCjYCYEEBDwsgACABIAIQzRcLJwEBf0HkABCmAUEAQeQAEEgQzRIiASAAKAJgNgJgIAEgABDxPiABCwcAIAAQpAELBABBAAtsAQN/IABBgL4VNgJkIABBnL0VNgIAAkAgACgCdEUNACAAKAJsIQEgACgCaCECA0AgAiABRg0BAkAgAigCACgCGCIDRQ0AIAMgACgCdBCUGAsgAkEEaiECDAALAAsgAEHoAGoQgQcaIAAQyhcLCgAgABCWPxCkAQsFAEG5AwsoAQF/QQEhAgJAIAFBCkYNACABQawDRg0AIAFBuQNGDQBBACECCyACCyMAAkAgAUHGB0cNACAAIAIQogo2AmBBAQ8LIAAgASACEM0XC7UBAQV/IwBBEGsiASQAQfgAEKYBQQBB+AAQSBDcEiICIAAQnD8gACgCbCEDIAAoAmghBAJAA0AgBCADRg0BAkAgBCgCACIARQ0AIAAgACgCFEEBajYCFAsgASAAIAAoAgAoAhQRAAAiBTYCDCACIAFBDGoQnT8gBRCePyAAIAAoAhQiBUF/ajYCFAJAIAVBAUcNACAAIAAoAgAoAgQRAQALIARBBGohBAwACwALIAFBEGokACACCxMAIAAgASgCYDYCYCAAIAEQ8T4LJwAgAEHoAGogARCABwJAIAEoAgAoAhgiAUUNACABIAAoAnQQlRgLCy8BAX8CQCAARQ0AIAAgACgCFCIBQX9qNgIUIAFBAUcNACAAIAAoAgAoAgQRAQALC6MBAQR/IAAoAmwhASAAKAJoIQICQANAIAIgAUYNAQJAIAIoAgAiA0UNACADIAMoAhRBAWo2AhQLAkAgAygCGCIERQ0AIARByABqKAIAIARBzABqKAIAEJMMCyADIAMoAhQiBEF/ajYCFAJAIARBAUcNACADIAMoAgAoAgQRAQALIAJBBGohAgwACwALIAAgACgCPDYCQCAAIAAtAExB/QFxOgBMCwIAC6UCAQZ/IwBBIGsiAiQAAkAgAUUNAAJAIAAoAnRFDQAgACgCbCEDIAAoAmghBANAIAQgA0YNAQJAIAQoAgAoAhgiBUUNACAFIAAoAnQQlBgLIARBBGohBAwACwALIABB6ABqIgYQngwCQAJAIAAoAnAgACgCaCIHayABKAIEIgMgASgCACIEayIFTw0AIAVBAnUiBEGAgICABE8NASAGIAJBDGogBCAAKAJsIAdrQQJ1IABB8ABqELMQIgQQtBAgBBC1EBogASgCBCEDIAEoAgAhBAsDQAJAIAQgA0cNACAAEMooDAMLIAYgBBCABwJAIAAoAnQiBUUNACAEKAIAKAIYIgFFDQAgASAFEJUYCyAEQQRqIQQMAAsACxCsAQALIAJBIGokAAsNACAAQZx/aiABEKE/CxsBAX8gASgCACECIAFBADYCACAAIAIQ7A0gAAsnAAJAA0AgACABRg0BIAIgABCjP0EEaiECIABBBGohAAwACwALIAILBwAgABCkAQsEAEEAC28BAn8jAEEQayICJABBASEDAkAgASgCACABKAIEQbkDENgKIgFFDQAgASgCDCIBRQ0AIAEoAgQhASAAIAAoAhRBAWo2AhQgAiAANgIMIAEgAkEMahCdPyAAEPcGIAAQ9wZBACEDCyACQRBqJAAgAwsZACAAQaS+FTYCACAAQRhqEKMGGiAAEMYKCwoAIAAQqD8QpAELBQBBqwMLCAAgAUGrA0YLNwECf0EMIQNBACEEAkACQAJAIAFB23tqDgIBAAILQRAhAwsgACADaiACEKIKNgIAQQEhBAsgBAsCAAsCAAtBAQF/QSAQpgEiAUEBNgIUIAFC/////w83AgQgAUIANwMYIAFBpL4VNgIAIAEgACgCDDYCDCABIAAoAhA2AhAgAQtfACAAQQE2AgACQCABRQ0AIAEgASgCREEBajYCRAsgAEIANwIIIAAgATYCBCAAQgA3AhwgAEGAgID8AzYCGCAAQYCAgPwDNgIsIABBEGpCADcCACAAQSRqQgA3AgAgAAsfAQF/IAAoAgAhAiAAIAE2AgACQCACRQ0AIAIQpAELCzcBAX8gACgCACEBIABBADYCAAJAIAFFDQACQCAALQAIQQFHDQAgAUEIahCzPxoLIAEQpAELIAALEAAgAEEEahDKBhogABCUDQsMACAAEIYHIAAQ6T4LCgAgABDKFxCkAQsFAEG6AwsoAQF/QQEhAgJAIAFBCkYNACABQawDRg0AIAFBugNGDQBBACECCyACCyMAAkAgAUG/BEcNACAAIAIQuwo4AmBBAQ8LIAAgASACEM0XCycBAX9B5AAQpgFBAEHkABBIEN0SIgEgACoCYDgCYCABIAAQ8T4gAQsQACAAQQxqEMoGGiAAEIIGC5UCAQR/IwBBMGsiAiQAAkACQCABIAJBJGpBrvEREJ4GIgMQyAsiBEF/Rw0AIAJBGGogARDnBRogAkEMakHnjRIQngYaDAELIAJBGGogAUEAIAQQyQsaIAJBDGogASAEQQFqIAEoAgQgASwACyIEIARBAEgbEMkLGgtBACEFAkACQCACKAIcIAIsACMiASABQQBIG0UNACACQQhqIAAgAkEYahDgBgJAAkAgAigCCCIEDQAMAQsgBCEFIAQhASACKAIQIAIsABciACAAQQBIG0UNACAEIAJBDGoQuz8hASACKAIIIQULIAUQvD8gBA0BC0EAIQELIAJBDGoQggYaIAJBGGoQggYaIAMQggYaIAJBMGokACABCw8AAkAgAEUNACAAEO0GCwsfAQF/IAAoAgAhAiAAIAE2AgACQCACRQ0AIAIQpAELC88BAQd/IAAoAgAgACAALAALIgJBAEgiAxsiBCAAKAIEIAIgAxtqIgIhBQJAIAEoAgQgASwACyIAIABBAEgiABsiBkUNACABKAIAIAEgABsiASAGaiEHIAIhBSAEIQADQCAAIAJGDQECQCAALQAAIAEtAABHDQAgACEIIAEhAwNAAkAgA0EBaiIDIAdHDQAgACEFDAILIAhBAWoiCCACRg0DIAgtAAAgAy0AAEYNAAsLIABBAWohAAwACwALQX8gBSAEayIAIAUgAkYbIAAgBhsLHwEBfyAAKAIAIQIgACABNgIAAkAgAkUNACACEKQBCwsKACAAEME/EKQBC1UBAn8gAEG8xBU2AgACQCAAKAIEIgFFDQAgASAAEJgNIAAoAgQiASABKAI4IgJBf2o2AjgCQCACQQFHDQAgASABKAIAKAIEEQEACyAAQQA2AgQLIAALBABBAQsKACAAEME/EKQBCwQAQQILCgAgABDBPxCkAQsEAEEDCwoAIAAQwT8QpAELBABBBAsKACAAEME/EKQBCwQAQQsLCgAgABDBPxCkAQsEAEEMC1sBAn8gAEHkwBU2AgAgACgCFCEBAkADQCABRQ0BIAEoAgAhAiABQQhqELM/GiABEKQBIAIhAQwACwALIAAoAgwhASAAQQA2AgwCQCABRQ0AIAEQpAELIAAQwT8LCgAgABDNPxCkAQsEAEEFCwoAIAAQwT8QpAELBABBBgsKACAAEME/EKQBCwQAQQcLDAAgABCGByAAEOk+CxoAIABBuMEVNgIAIABB4ABqEIIGGiAAEMoXCwoAIAAQ1T8QpAELBQBBsQMLKAEBf0EBIQICQCABQQpGDQAgAUGsA0YNACABQbEDRg0AQQAhAgsgAgtWAQF/IwBBEGsiAyQAAkACQCABQbEERw0AIANBBGogAhC/CiAAQeAAaiADQQRqEMAKIANBBGoQggYaQQEhAQwBCyAAIAEgAhDNFyEBCyADQRBqJAAgAQssAQF/QewAEKYBQQBB7AAQSBDQEiIBQeAAaiAAQeAAahDoBSABIAAQ8T4gAQsKACAAENU/EKQBCwIACwwAIAAQhgcgABDpPgsKACAAEMoXEKQBCwUAQbYECysBAX9BASECAkAgAUHLe2pBAkkNACABQQpGDQAgAUGsA0YNAEEAIQILIAILIwACQCABQa4GRw0AIAAgAhCiCjYCYEEBDwsgACABIAIQzRcLJwEBf0HkABCmAUEAQeQAEEgQ3xIiASAAKAJgNgJgIAEgABDxPiABCwwAIAAQhgcgABDpPgtBAQJ/AkAgAC0ATCIBQQhxIgINACAAIAFBCHI6AEwLIABBABDUDyAAIAAoAjw2AkAgACAALQBMIAJB9QFycToATAsKACAAEMoXEKQBCwUAQfUDCygBAX9BASECAkAgAUEKRg0AIAFBrANGDQAgAUH1A0YNAEEAIQILIAILIwACQCABQa8FRw0AIAAgAhCiCjYCYEEBDwsgACABIAIQzRcLDwAgACAAKAJgQQFqENQPCycBAX9B5AAQpgFBAEHkABBIEN4SIgEgACgCYDYCYCABIAAQ8T4gAQsOAEHwkh5B540SEJ4GGgs2ACAAIAEQ6A4aAkAgACgCICIBRQ0AIAFBtQMgASgCACgCDBECAEUNACAAKAIgIAAQmhgLQQALGwACQCAAIAFBtQMQ2AoiAQ0AQQAPCyABKAIMCxgAIAAgAiABIABrQQJ1EJkKIgAgASAAGwsCAAsaACAAIAAoAjw2AkAgACAALQBMQf0BcToATAsXAAJAIAANABDzP0GMkx4hAAsgACgCAAsXAAJAIAANABDzP0GMkx4hAAsgACgCBAssAAJAQQAtAJiTHkEBcQ0AQQBCADcCjJMeQQBBAToAmJMeQQBBADYClJMeCwsKACAAEMoXEKQBCwUAQawDCw4AIAFBrANGIAFBCkZyCx0BAX9B4AAQpgFBAEHgABBIEMcSIgEgABDxPiABCwkAIABBAToACAsCAAsDAAALDAAgABCGByAAEOk+C9kBAQN/IwBBEGsiAiQAAkAgASgCACIDRQ0AIAMgAygCREEBajYCRAsgAxD9PwJAIAAoAmgiA0UNAAJAIAEoAgAiAEUNACAAIAAoAkRBAWo2AkQLIAMoAkwhBCADKAJIIQECQANAIAEgBEYNAQJAIAEoAgAiA0UNACADIAMoAjhBAWo2AjgLAkAgAEUNACAAIAAoAkRBAWo2AkQLIAIgADYCDCADIAJBDGogAygCACgCTBEDACACKAIMEOMGIAMQ6QYgAUEEaiEBDAALAAsgABD9PwsgAkEQaiQACy8BAX8CQCAARQ0AIAAgACgCRCIBQX9qNgJEIAFBAUcNACAAIAAoAgAoAgQRAQALCyQAAkAgACgCaCIARQ0AIABByABqKAIAIABBzABqKAIAEJMMCwvFAgEEfyMAQRBrIgIkACAAIAEQ8z4hAwJAIAEoAgAiBCABKAIEIgEQ6w5FDQACQCAEIAEQ+QgiBQ0AQQEhAwwBCyAFKAKAASIFRQ0AIAQgARDtPygCBCIBRQ0AIAUoAlQgBSgCUCIEa0ECdSABKAJAIgFNDQAgBCABQQJ0aigCACIBRQ0AIAEoAiAgASgCHCIBa0ECdSAAKAI0IgRNDQAgASAEQQJ0aigCACIBRQ0AIAFBtAMgASgCACgCDBECAEUNACAFKAJUIAUoAlAiBGtBAnUgASgCICIBTQ0AIAQgAUECdGooAgAiAUUNACABKAIsIAEoAigiAWtBAnUgACgCYCIETQ0AIAEgBEECdGooAgAiAUUNACABIAEoAkRBAWo2AkQgAiABNgIMIAAgAkEMahDiBiACKAIMEP0/CyACQRBqJAAgAwtIAQJ/IwBBEGsiAiQAIAAoAlwhAwJAIAFFDQAgASABKAJEQQFqNgJECyACIAE2AgwgAyAAIAJBDGoQtyggARD9PyACQRBqJAALDQAgAEGcf2ogARCAQAtdAQN/IwBBEGsiASQAIAAQg0AhAgJAIAAoAmgiA0UNACABIAMgAygCACgCFBEAADYCDCACIAFBDGoQ4gYgASgCDBD9PyACIAAoAlw2AlwgAhCPGAsgAUEQaiQAIAILJwEBf0HwABCmAUEAQfAAEEgQ4RIiASAAKAJgNgJgIAEgABDxPiABCyMAIABBvMUVNgJkIABB2MQVNgIAIABB6ABqEKMGGiAAEMoXCwoAIAAQhEAQpAELBQBBvAMLKAEBf0EBIQICQCABQQpGDQAgAUGsA0YNACABQbwDRg0AQQAhAgsgAgsjAAJAIAFBwQRHDQAgACACEKIKNgJgQQEPCyAAIAEgAhDNFwu5AgEGf0EBIQICQAJAIAEoAgAgASgCBEGzAxDYCiIBRQ0AIAEoAgwiAUUNAAJAAkAgASgCBCIDKAIgIgEgAygCJCICTw0AIAEgADYCACABQQRqIQEMAQsgASADKAIcIgRrQQJ1IgVBAWoiBkGAgICABE8NAgJAAkAgAiAEayICQQF1IgcgBiAHIAZLG0H/////AyACQfz///8HSRsiBw0AQQAhBgwBCyAHEJsYIQYgAygCHCEEIAMoAiAhAQsgBiAFQQJ0aiIFIAA2AgAgBSECAkADQCABIARGDQEgAkF8aiICIAFBfGoiASgCADYCAAwACwALIAMgBUEEaiIBNgIgIAMoAhwhBCADIAI2AhwgAyAGIAdBAnRqNgIkIARFDQAgBBCkAQsgAyABNgIgQQAhAgsgAg8LEKwBAAsKACAAEL4XEKQBCwUAQa4DCxAAIAFB03xqQf//A3FBAkkLPAEBf0EgEKYBIgFCADcDACABQRhqQgA3AwAgAUEQakIANwMAIAFBCGpCADcDACABEMYSIgEgABCOQCABCyMAIAAgASgCGDYCGCAAIAEoAhw2AhwgAEEMaiABQQxqEOgFCzwBAX9BIBCmASIBQgA3AwAgAUEYakIANwMAIAFBEGpCADcDACABQQhqQgA3AwAgARDUEiIBIAAQjkAgAQs8AQF/QSAQpgEiAUIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMAIAEQ2hIiASAAEI5AIAELPAEBf0EgEKYBIgFCADcDACABQRhqQgA3AwAgAUEQakIANwMAIAFBCGpCADcDACABEMUSIgEgABCOQCABCzwBAX9BIBCmASIBQgA3AwAgAUEYakIANwMAIAFBEGpCADcDACABQQhqQgA3AwAgARDYEiIBIAAQjkAgAQs8AQF/QSAQpgEiAUIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMAIAEQ2RIiASAAEI5AIAELBwAgACgCIAsKACAAEOUXEKQBCwUAQf0DCyQBAX9BASECAkAgAUHTfGpBAkkNACABQf0DRg0AQQAhAgsgAgsbAQF/QSQQpgFBAEEkEEgQyRIiASAAEI5AIAELJQEBf0EoEKYBQQBBKBBIEMoSIgEgACgCJDYCJCABIAAQjkAgAQsKAEGckx4Q2REaCyUBAX9BKBCmAUEAQSgQSBDSEiIBIAAoAiQ2AiQgASAAEI5AIAELPAEBf0EgEKYBIgFCADcDACABQRhqQgA3AwAgAUEQakIANwMAIAFBCGpCADcDACABENESIgEgABCOQCABCzwBAX9BIBCmASIBQgA3AwAgAUEYakIANwMAIAFBEGpCADcDACABQQhqQgA3AwAgARDMEiIBIAAQjkAgAQs8AQF/QSAQpgEiAUIANwMAIAFBGGpCADcDACABQRBqQgA3AwAgAUEIakIANwMAIAEQ4BIiASAAEI5AIAELPAEBf0EgEKYBIgFCADcDACABQRhqQgA3AwAgAUEQakIANwMAIAFBCGpCADcDACABEM4SIgEgABCOQCABCzwBAX9BIBCmASIBQgA3AwAgAUEYakIANwMAIAFBEGpCADcDACABQQhqQgA3AwAgARDiEiIBIAAQjkAgAQslAQF/QSQQpgFBAEEkEEgQ1hIiASAAKAIgNgIgIAEgABCOQCABCzsBAX8gACABEOgOGkEBIQECQCAAKAIgIgJB6wAgAigCACgCDBECAEUNACAAKAIgIAA2AkhBACEBCyABCwoAIAAQwwoQpAELBABBLQsNACABQS1GIAFBCkZyCx0BAX9BxAAQpgFBAEHEABBIEOETIgEgABC0GSABCw0AIABBgAJBARDNCRoLIgEBfwJAIAAoAhwiAUUNACAAKAIYIAERAQAgAEIANwIYCwsGACAAEGALLgACQCAAKAIAQX9qQX1LDQAgAEEANgIEIAAoAggQYAsgAEEANgIIIABCADcCAAuFAQECf0GQlxghAwJAIABFDQAgAkUNACAAKAIQIgQgAU0NAAJAIAAtAARBAXFFDQAgAEEAOgAECyAEIAFrIgMgAiADIAJJGyEDIAAoAgwgAWohAgJAIAAoAgBFDQAgACAAKAIAQQFqNgIACyACIANBASAAQaQHEPYRIgMNAEGQlxghAwsgAwsHACAAEP0RC14BA38CQCAAIAAoAkwgAmoQlyEiA0UNACAAKAJYIAAoAlQiBEcNACAAKAJMIgUgAmogACgCRCABak0NACAAIAAoAlwiAjYCWCAFQRRsIgBFDQAgAiAEIAAQSxoLIAMLbwECfwJAIAAtAEBBAUcNACAAIAAoAkggACgCRGsQr0BFDQACQCAAKAJYIgEgACgCVCICRg0AIAAgATYCVCAAIAI2AlwLIAAgACgCTDYCSAsgAEEANgJMIABBADoAQSAAQQA2AkQgACAAKAJUNgJYC4wBAQF/AkAgAC0AQUEBRw0AIAAoAkwhAgJAAkAgACgCWCAAKAJURw0AIAIgACgCREYNAQsCQCAAIAIgAWoQlyENAEEADwsgACgCWCAAKAJMQRRsaiAAKAJUIAAoAkRBFGxqIAFBFGwQiQEaIAAoAkwhAgsgACACIAFqNgJMCyAAIAAoAkQgAWo2AkRBAQukAwEEfwJAAkACQCAALQBBDQAgACABNgJEDAELQQAhAiAALQBAQQFHDQECQCAAKAJMIgMgAU8NACAAIAEgA2siASABEK1ARQ0CIAAoAlggACgCTEEUbGogACgCVCAAKAJEQRRsaiABQRRsEIkBGiAAIAAoAkQgAWo2AkQgACAAKAJMIAFqNgJMDAELIAMgAU0NAAJAIAMgAWsiASAAKAJEIgRNDQAgACAAKAJIIAEgBGsiA2oQlyFFDQIgACAAKAJEIgIgACgCSCIFayAAKAK4AWoiBDYCuAECQCAEQX9KDQAgAEEAOgBAQQAPCyAAKAJUIAJBFGxqIgQgA0EUbGogBCAFIAJrQRRsEIkBGgJAIAAoAkQgA2oiBCAAKAJIIgJNDQAgBCACa0EUbCIFRQ0AIAAoAlQgAkEUbGpBACAFEEgaIAAoAkQgA2ohBCAAKAJIIQILIAAgAiADajYCSCAAKAJMIQMLIAAgAyABayICNgJMIAAgBCABayIDNgJEIAAoAlQgA0EUbGogACgCWCACQRRsaiABQRRsEIkBGgtBASECCyACC5MEAQd/IwBBEGshAyAAIAAoArgBIAEgAmtqIgQ2ArgBAkAgBEF/Sg0AIABBADoAQAsgACgCVCIFIAFBFGxqQQhqIgYhBCABIQcCQANAIAMgBCgCACIENgIMAkAgB0EBaiIHIAJJDQAgBCAFIAJBFGxqQXRqKAIARg0CIAAoAkgiByACIAcgAksbIQMgBUF0aiEIA0ACQCACIANHDQAgAyECDAQLIAggAkEUbCIHaigCACAFIAdqKAIIRw0DIAJBAWohAgwACwALIAUgB0EUbGoiCEEIaiADQQxqIAQgCCgCCEsbIQQMAAsACyAAKAJEIQMCQCAEIAYoAgBGDQAgAyABIAMgAUkbIQYgBUF0aiEIA0ACQCADIAFJDQAgBiEBDAILIAggAUEUbCIHaigCACAFIAdqKAIIRw0BIAFBf2ohAQwACwALAkAgAyABRw0AIAUgA0EUbGoiBygCCCAERg0AIAdBCGohBiAAKAJYIQkgACgCTCEHA0AgB0UNASAJIAdBFGxqIgBBdGoiAygCACIIIAYoAgBHDQECQCAIIARGDQAgAEFwaiIIIAgoAgBBeHE2AgALIAMgBDYCACAHQX9qIQcMAAsACyACIAEgAiABSxshAgJAA0AgASACRg0BAkAgBSABQRRsaiIHKAIIIARGDQAgByAHKAIEQXhxNgIECyAHIAQ2AgggAUEBaiEBDAALAAsLxAMBB38jAEEQayEDIAAgACgCuAEgASACa2oiBDYCuAECQCAEQX9KDQAgAEEAOgBACyAAKAJYIgUgAUEUbGpBCGohBCABIQYCQANAIAMgBCgCACIENgIMAkAgBkEBaiIGIAJJDQAgBUF0aiEDA0ACQCABDQBBACEBDAQLIAMgAUEUbCIGaigCACAFIAZqKAIIRw0DIAFBf2ohAQwACwALIAUgBkEUbGoiB0EIaiADQQxqIAQgBygCCEsbIQQMAAsACyAAKAJMIgggAiAIIAJLGyEGAkADQAJAAkAgAiAGRg0AIAMgAkEUbCIHaigCACAFIAdqKAIIRg0BIAIhBgsgBiAIRw0CIAAoAkQiAiAAKAJIIgMgAiADSxshCSAFIAhBFGxqQXRqIQggACgCVCEAA0AgAiAJRg0DIAAgAkEUbGoiAygCCCIHIAgoAgBHDQMCQCAHIARGDQAgAyADKAIEQXhxNgIECyADIAQ2AgggAkEBaiECDAALAAsgAkEBaiECDAALAAsCQANAIAEgBk8NAQJAIAUgAUEUbGoiAigCCCAERg0AIAIgAigCBEF4cTYCBAsgAiAENgIIIAFBAWohAQwACwALCy8AAkAgAiABa0ECSQ0AAkAgACgCFEECSQ0AIAAgASACELRADwsgACABIAIQsUALC0QBAX8CQAJAIAJBf0YNACACIAFrQf8BSw0BCyAAKAJIIgMgAiADIAJJGyICIAFrQQJJDQAgAEEDIAEgAkEBQQAQtUALC90CAQF/AkACQAJAIAVFDQAgAC0AQQ0BCyAAKAJUIQUCQCAEDQAgAyACIAMgAksbIQADQCACIABGDQMgBSACQRRsaiIEIAQoAgQgAXI2AgQgAkEBaiECDAALAAsgACAFIAIgAyAAKAIUIAUgAiADQX8QtkAgARC3QA8LAkAgBA0AIAAoAkwiBCACIAQgAksbIQUgACgCWCEGA0ACQCACIAVHDQAgACgCRCICIAMgAiADSxshBSAAKAJUIQADQCACIAVGDQQgACACQRRsaiIEIAQoAgQgAXI2AgQgAkEBaiECDAALAAsgBiACQRRsaiIEIAQoAgQgAXI2AgQgAkEBaiECDAALAAsgACgCFCEEIAAoAkwhBSAAKAJYIQYgACAGIAIgBSAEIAYgAiAFIAQgACgCVCAAKAJEIANBfxC2QBC2QCIEIAEQt0AgACAAKAJUIAAoAkQgAyAEIAEQt0ALC34AAkAgAiADRg0AAkAgAEECRw0AIAMgAiADIAJLGyEAA0AgAiAARg0CIAQgASACQRRsaigCCCIDIAQgA0kbIQQgAkEBaiECDAALAAsgASACQRRsaigCCCICIAEgA0EUbGpBdGooAgAiAyACIANJGyICIAQgAiAESRshBAsgBAuwAgEBfwJAIAIgA0YNACAAIAAoArgBIAIgA2tqIgY2ArgBAkAgBkF/Sg0AIABBADoAQAsCQAJAIAAoAhRBAkYNACABIANBFGxqQXRqKAIAIQAgASACQRRsaigCCCAERiIGDQEgACAERg0BCyADIAIgAyACSxshAANAIAIgAEYNAgJAIAEgAkEUbGoiAygCCCAERg0AIAMgAygCBCAFcjYCBAsgAkEBaiECDAALAAsCQCAGRQ0AA0AgAyACTQ0CIAEgA0EUbGoiAEF0aigCACAERg0CIABBcGoiACAAKAIAIAVyNgIAIANBf2ohAwwACwALIAMgAiADIAJLGyEEA0AgAiAERg0BIAEgAkEUbGoiAygCCCAARg0BIAMgAygCBCAFcjYCBCACQQFqIQIMAAsACwuIAwEKfyAAKAJIIQJBACEDA0BBACEEAkADQCADIgUgAkYNAQJAIAAoAlQgBUEUbCIGaiABEQAARQ0AIAAoAlQiByAGaiIGKAIIIQgCQAJAIAVBAWoiAyACTw0AIAggByADQRRsaigCCEYNAyAEDQEgACAFIAVBAmoQs0AMBQsgBEUNBAsgCCAHIARBFGxqQXRqKAIAIglPDQEgBigCBEEHcSEKIAQhBQNAIAVFDQIgByAFQRRsaiIGQXRqIgsoAgAgCUcNAiAGQXBqIgYgBigCAEF4cSAKcjYCACALIAg2AgAgBUF/aiEFDAALAAsCQCAEIAVGDQAgACgCVCIHIARBFGwiCGoiCyAHIAZqIgcpAgA3AgAgC0EQaiAHQRBqKAIANgIAIAtBCGogB0EIaikCADcCACAAKAJcIgcgCGoiCyAHIAZqIgYpAgA3AgAgC0EIaiAGQQhqKQIANwIAIAtBEGogBkEQaigCADYCAAsgBUEBaiEDIARBAWohBAwACwALCyAAIAQ2AkgL5gEBAX8CQCAARQ0AIAAoAgBFDQAgACAAKAIAIgFBf2o2AgAgAUEBRw0AIABB08J8NgIAAkAgACgCCCIBRQ0AIAEQqCEgARBgIABBADYCCAsCQCAAKAJAIgFFDQAgACgCKCABEQEACwJAIAAoAkQiAUUNACAAKAIsIAERAQALAkAgACgCSCIBRQ0AIAAoAjAgAREBAAsCQCAAKAJMIgFFDQAgACgCNCABEQEACwJAIAAoAlAiAUUNACAAKAI4IAERAQALAkAgACgCVCIBRQ0AIAAoAjwgAREBAAsgACgCDBC5QCAAEGALCw4AIABBACAAKAJIELtAC+sDAQx/IwBBIGshAwJAIAAoAkgiBCACIAQgAkkbIgUgBCABIAQgAUkbIgRBAmpJDQAgACgCVCEGIAQgBSAEa0EBdiAEaiIHIAQgB0sbIQgDQCAEIAhGDQEgA0EIakEQaiIJIAYgBUF/aiIFQRRsaiIHQRBqIgooAgA2AgAgA0EIakEIaiILIAdBCGoiDCkCADcDACADIAcpAgA3AwggCiAGIARBFGxqIg1BEGoiDigCADYCACAMIA1BCGoiCikCADcCACAHIA0pAgA3AgAgDiAJKAIANgIAIAogCykDADcCACANIAMpAwg3AgAgBEEBaiEEDAALAAsCQCAALQBCQQFHDQAgACgCSCIEIAIgBCACSRsiBSAEIAEgBCABSRsiBEECakkNACAAKAJcIQYgBCAFIARrQQF2IARqIgcgBCAHSxshCANAIAQgCEYNASADQQhqQRBqIgkgBiAFQX9qIgVBFGxqIgdBEGoiCigCADYCACADQQhqQQhqIgsgB0EIaiIMKQIANwMAIAMgBykCADcDCCAKIAYgBEEUbGoiDUEQaiIOKAIANgIAIAwgDUEIaiIKKQIANwIAIAcgDSkCADcCACAOIAkoAgA2AgAgCiALKQMANwIAIA0gAykDCDcCACAEQQFqIQQMAAsACws/AQN/AkADQCABQQFqIgMgACgCSE8NASABQRRsIQQgAyEBIAQgACgCVCIFaiAFIANBFGxqIAIRAgANAAsLIAMLDQAgACgCCCABKAIIRguJAgEHfyMAQSBrIgQkACABIQUCQANAIAUiBkEBaiIFIQcgBSACTw0BAkADQCAHIAFNDQEgACgCVCIIIAdBFGxqQWxqIAggBUEUbGogAxECAEEBSA0BIAdBf2ohBwwACwALIAUgB0YNACAAIAcgBkECahCzQCAEQQhqQRBqIgYgACgCVCIJIAVBFGxqIghBEGooAgA2AgAgBEEIakEIaiIKIAhBCGopAgA3AwAgBCAIKQIANwMIIAkgB0EUbCIIaiIJQRRqIAkgBSAHa0EUbBCJARogACgCVCAIaiIHIAQpAwg3AgAgB0EQaiAGKAIANgIAIAdBCGogCikDADcCAAwACwALIARBIGokAAu7AQEDfyMAQRBrIQJBACEDAkAgAEUNACABRQ0AIAAtAABFDQAgAUEEIAFBBEkbIQFBACEDAkADQCADIAFGDQECQCAAIANqLQAAIgQNACADIQEMAgsgAkEMaiADaiAEOgAAIANBAWohAwwACwALAkADQCABQQRGDQEgAkEMaiABakEgOgAAIAFBAWohAQwACwALIAIoAAwiAUEYdCABQYD+A3FBCHRyIAFBCHZBgP4DcSABQRh2cnIhAwsgAwu8AgEGfwNAQQAoAsyTHiIBIQICQANAAkACQCACRQ0AIAIoAgQhAyAAIQQDQCAELQAAIQUCQCADLQAAIgYNACAFQZDRFWosAAAhBUEAIQYMAwsgBiAFQZDRFWosAAAiBUcNAiAEQQFqIQQgA0EBaiEDDAALAAtBACECQQFBCBBkIgZFDQIgBiABNgIAIAYgABBZQQFqIgMQXiIFNgIEAkACQCAFRQ0AAkAgA0UNACAFIAAgAxBLGgsgBSEDAkADQCADLQAAIgRFDQEgAyAEQZDRFWotAAA6AAAgA0EBaiEDDAALAAsgBQ0BCyAGEGBBAA8LQQAgBkEAKALMkx4iAyADIAFGIgMbNgLMkx4CQCADRQ0AIAYhAgwDCyAGKAIEEGAgBhBgDAMLIAYgBUYNASACKAIAIQIMAAsACwsgAgtSAQJ/QQEhAgJAIAAgAUYNAEEAIQIgAEUNACABRQ0AIAAQWSIDIAEQWUsNACAAIAEgAxDCQA0AQQEhAiABIANqLQAAIgBFDQAgAEEtRiECCyACC3UBAn8CQCACDQBBAA8LAkACQCAALQAAIgMNAEEAIQAMAQsCQANAIANB/wFxIAEtAAAiBEcNASAERQ0BIAJBf2oiAkUNASABQQFqIQEgAC0AASEDIABBAWohACADDQALQQAhAwsgA0H/AXEhAAsgACABLQAAawtZAAJAAkAgAC0ABCIAQQFxDQAgAygCACIDRQ0BIAIoAgAgAxEBAAwBCyABRQ0AAkAgAygCACIBRQ0AIAIoAgAgAREBAAsgA0EANgIAIAJBADYCAAsgAEEBcQtrAQJ/AkACQAJAAkACQCABRQ0AIAAoAiANACAAQQFBFBBkIgM2AiAgA0UNAQtBASEDIAJFDQMgACgCJA0DQQEhAyAAQQFBFBBkIgQ2AiQgBEUNAQwDCyACRQ0BCyABIAIRAQALQQAhAwsgAwsCAAsCAAtTAQF9IAAgASACIAMgAioCDCIIk0Orqio/lCAIkiAEIAIqAhAiCJNDq6oqP5QgCJIgAyAFk0Orqio/lCAFkiAEIAaTQ6uqKj+UIAaSIAUgBhDIQAtAAQJ/IAAoAhghCQJAAkAgACgCICIKDQBBACEKDAELIAooAgwhCgsgACABIAIgAyAEIAUgBiAHIAggCiAJESIACwIACwIAC3oBAn8CQANAQQAoAtCTHiIADQEQ+R8iAEGlBxD7HyAAQaYHEP0fIABBpwcQ/x8gAEGoBxCBIAJAIAAtAARBAXFFDQAgAEEAOgAEC0EAQQAoAtCTHiIBIAAgARs2AtCTHiABRQ0BIABB8MIdRg0AIAAQ0yAMAAsACyAACwsAIAEgAyAEENBACwsAIAEgAyAEENBACxQAIAEgAyAEENBAIAEgBSAGENBACx0AIAEgAyAEENBAIAEgBSAGENBAIAEgByAIENBAC3wBAn0CQCAAKgIAIgMgACoCCCIEXkUNACAAIAI4AgwgACABOAIAIAAgATgCCCAAIAI4AgQPCyAAIAMgASADIAFfGzgCACAAIAQgASAEIAFgGzgCCCAAIAAqAgQiASACIAEgAl8bOAIEIAAgACoCDCIBIAIgASACYBs4AgwLJgAgACABIAIgAioCDCACKgIQENJAIAJBATYCACACIAIpAgw3AgQLOAECfyAAKAIMIQUCQAJAIAAoAiAiBg0AQQAhBgwBCyAGKAIAIQYLIAAgASACIAMgBCAGIAURJAALOAECfyAAKAIQIQUCQAJAIAAoAiAiBg0AQQAhBgwBCyAGKAIEIQYLIAAgASACIAMgBCAGIAURJAALPAECfyAAKAIUIQcCQAJAIAAoAiAiCA0AQQAhCAwBCyAIKAIIIQgLIAAgASACIAMgBCAFIAYgCCAHESkACzQBAn8gACgCHCEDAkACQCAAKAIgIgQNAEEAIQQMAQsgBCgCECEECyAAIAEgAiAEIAMRCAALLQACQCABRQ0AIAEoAgBFDQAgASABKAIAQQFqNgIACyAAQQA6ABwgACABNgIgC20BBX9BACECAkAgACABKAIEIgNrIAEoAgwiBEsNACABKAIIIgUgAGtBDEkNACAAQQRqIgYgA2sgBEsNACAFIAZrQQhJDQAgASAAQQxqIAAvAAQiAEEIdCAAQQh2ckH//wNxQQR0ENhAIQILIAILQAEBf0EAIQMCQCABIAAoAgRrIAAoAgxLDQAgACgCCCABayACSQ0AIAAgACgCECACayIBNgIQIAFBAEohAwsgAws2AQF/QQAhAgJAIAAgASgCBGsgASgCDEsNACABKAIIIABrQQRJDQAgAC0AAEGAAXFFIQILIAILDQAgACABIAJBARDcQAsfACAAKAIgEP0RIABBADYCICAAQQA2AgwgAEIANwIECyoCAX8BfkEAIQQCQCACrSADrX4iBUIgiKcNACAAIAEgBacQ2EAhBAsgBAtIAQJ/AkACQCAAKAIgIgENACAAKAIEIQIgACgCCCEBDAELIAAgASgCDCICNgIEIAAgAiABKAIQaiIBNgIICyAAIAEgAms2AgwLmwQBBn8CQCACRQ0AIAJBADYCAAsCQAJAAkACQCAAKAAAIgNBGHQgA0GA/gNxQQh0ciADQQh2QYD+A3EgA0EYdnJyIgNBgAJGDQAgA0GAgARGDQMgA0HPqNH6BEYNAyADQeXqyaMHRg0DIANBseDlowdGDQMgA0HmxtGjB0cNAUGQlxghAyAALwAEIgRBCHQgBEEIdnJB//8DcUF/akEBSw0CQZCXGCEDQZCXGCEFAkAgACgACCIEQRh0IARBgP4DcUEIdHIgBEEIdkGA/gNxIARBGHZyciABTQ0AIAAgAUECdGpBDGohBQsgBSgAACIERQ0CIAAgBEEYdCAEQYD+A3FBCHRyIARBCHZBgP4DcSAEQRh2cnJqDwsgAEGAAmohBkEAIQMgACAAKAAEIgRBGHQgBEGA/gNxQQh0ciAEQQh2QYD+A3EgBEEYdnJyaiIHEPkRIQUDQAJAAkACQCADIAVHDQBBkJcYIQMMAQsgByADEPoRIgQoAABB88y5owdHDQEgBC8ABCIIQQh0IAhBCHZyQf//A3EgAUkNASAGIAcgBy8AGCIDQQh0IANBCHZyQf//A3FqIAQvAAYiA0EIdCADQQh2ckH//wNxaiABQQxsaiIDLQAGQQh0IAMtAAVBEHRyIAMtAAdyakEEaiEDCyACRQ0DIAIgAyAAazYCACADDwsgA0EBaiEDDAALAAtBkJcYIQMLIAMPCyAACxgAAkAgAEUNACAAQZCXGEYNACAAEP0RCwsYAAJAIABFDQAgAEGQlxhGDQAgABD9EQsLJgACQCAARQ0AIABBkJcYRg0AIAAoAiwQYCAAKAIwEP0RIAAQYAsLGAACQCAARQ0AIABBkJcYRg0AIAAQ/RELCy4AAkAgAEUNACAAQZCXGEYNACAAKAIUEP0RIABBADYCFCAAKAIYEP0RIAAQYAsLGAACQCAARQ0AIABBkJcYRg0AIAAQ/RELCzUAAkAgAEUNACAAQZCXGEYNACAAKAIcEGAgACgCABD9ESAAQQA2AgAgAEEMahCDQSAAEGALCxgAAkAgAEUNACAAQZCXGEYNACAAEP0RCwsYAAJAIABFDQAgAEGQlxhGDQAgABD9EQsLNQEBfwJAIABFDQAgAEGQlxhGDQACQCAAKAIYIgFFDQAgARCWQhBgCyAAKAIUEP0RIAAQYAsLbAEBfwJAIABFDQAgAEGQlxhGDQACQCAAKALgASIBRQ0AAkAgASgCAEF/akF9Sw0AIAFBADYCBCABKAIIEGALIAEQYAsgABCQQiAAQcwBahCRQiAAQcABahCSQiAAQdwAahCTQiAAEPsREGALCzkAAkAgAEUNACAAQZCXGEYNACAAEIhCIABB9ABqEIlCIABB6ABqEIpCIABBNGoQi0IgABD7ERBgCwsYAAJAIABFDQAgAEGQlxhGDQAgABD9EQsLGAACQCAARQ0AIABBkJcYRg0AIAAQ/RELCx8AAkAgAEUNACAAQZCXGEYNACAAKAIAEP0RIAAQYAsLGAACQCAARQ0AIABBkJcYRg0AIAAQ/RELC0QAAkAgAEUNACAAQZCXGEYNACAAKAIAEP0RIABBADYCAAJAIAAoAgRBf2pBfUsNACAAQQA2AgggACgCDBBgCyAAEGALC2MBAn8CQCAARQ0AIABBkJcYRg0AQQAhAQJAA0AgACgCCCECIAEgACgCBE8NAQJAIAIgAUECdGooAgAiAkUNACACEIVCCyACEGAgAUEBaiEBDAALAAsgAhBgIAAQh0IgABBgCwtjAQJ/AkAgAEUNACAAQZCXGEYNAEEAIQECQANAIAAoAgghAiABIAAoAgRPDQECQCACIAFBAnRqKAIAIgJFDQAgAhCFQgsgAhBgIAFBAWohAQwACwALIAIQYCAAEIZCIAAQYAsLfgEDfwJAIABFDQAgAEGQlxhGDQBBACEBAkADQCAAKAIIIQIgASAAKAIETw0BAkAgAiABQQJ0IgNqKAIARQ0AIAAoAgggA2ooAgAQgkILIAAoAgggA2ooAgAQYCABQQFqIQEMAAsACyACEGAgABCEQiAAQQxqEPpBGiAAEGALC34BA38CQCAARQ0AIABBkJcYRg0AQQAhAQJAA0AgACgCCCECIAEgACgCBE8NAQJAIAIgAUECdCIDaigCAEUNACAAKAIIIANqKAIAEIJCCyAAKAIIIANqKAIAEGAgAUEBaiEBDAALAAsgAhBgIAAQg0IgAEEMahD6QRogABBgCws4AAJAIABFDQAgAEGQlxhGDQAgACgCABD9ESAAQQA2AgAgAEEUahD6QRogAEEEahD7QRogABBgCwsYAAJAIABFDQAgAEGQlxhGDQAgABD9EQsLGAACQCAARQ0AIABBkJcYRg0AIAAQ/RELCxgAAkAgAEUNACAAQZCXGEYNACAAEP0RCwsYAAJAIABFDQAgAEGQlxhGDQAgABD9EQsLNQEBfwJAIABFDQAgAEGQlxhGDQACQCAAKAIEIgFFDQAgARDkQRBgCyAAKAIAEP0RIAAQYAsLGAACQCAARQ0AIABBkJcYRg0AIAAQ/RELCy4AAkAgAEUNACAAQZCXGEYNACAAKAIAEP0RIABBADYCACAAKAIEEP0RIAAQYAsLHwACQCAARQ0AIABBkJcYRg0AIAAoAgAQ/REgABBgCwsuAQF/AkACQCAAKAIYIgJFDQAgACABIAAoAhwgAhEEACIADQELQZCXGCEACyAAC0QBAX8CQCAAKAIQIgENACAAIABBPGoQ/0AvABIiAUEIdCABQQh2ckH//wNxIgFB6AcgAUFwakHx/wBJGyIBNgIQCyABC7oDAQd/IwBBMGsiASQAIABBfGohAiABQQhqIQMgAUEQaiEEIAFBFWohBQJAA0AgACgCACIGDQECQCACKAIAIgYNAEGQlxghBgwCCyADQgA3AwAgBEIANwMAIAVCADcAACABQgA3AwAgAUIANwMgIAFBATsBKAJAIAZB5MKVwwYQ/UAiBkUNACAGKAIARQ0AIAYgBigCAEEBajYCAAsgAUEAOgAcIAEgBjYCICABEPwRAkACQCABKAIEIgcNACABKAIgEP0RIAFBADYCICABQQA2AgwgAUIANwIEDAELAkACQCABKAIIIAdrQTZJDQAgBy8AAEGAAkcNACAHKAAMIQcgASgCIBD9ESABQQA2AiAgAUEANgIMIAFCADcCBCAHQd+e8Kl/Rw0BIAYtAARBAXFFDQIgBkEAOgAEDAILIAEoAiAQ/REgAUEANgIgIAFBADYCDCABQgA3AgQLIAYQ/RFBkJcYIQYLIAEQ+xEaAkAgBg0AQZCXGCEGCyAAIAAoAgAiByAGIAcbNgIAIAdFDQEgBhDfQAwACwALIAYoAhAhACAGKAIMIQYgAUEwaiQAQZCXGCAGIABBNkkbCzgBAX8CQCAAKAIUIgFBf0cNACAAIABBwABqEIFBLwAEIgFBCHQgAUEIdnJB//8DcSIBNgIUCyABC/MDAQh/IwBBMGsiASQAIABBeGohAiABQQhqIQMgAUEQaiEEIAFBFWohBQJAA0AgACgCACIGDQECQCACKAIAIgYNAEGQlxghBgwCCyADQgA3AwAgBEIANwMAIAVCADcAACABQgA3AwAgAUIANwMgIAFBATsBKAJAIAZB8PCF6wYQ/UAiBkUNACAGKAIARQ0AIAYgBigCAEEBajYCAAsgAUEAOgAcIAEgBjYCICABEPwRAkACQCABKAIEIgcNACABKAIgEP0RIAFBADYCICABQQA2AgwgAUIANwIEDAELAkACQCABKAIIIAdrQQZJDQACQAJAAkAgBy8AACIIQQh0IAhBCHZyQf//A3EOAgEAAwsgB0EGaiIHIAEoAgRrIAEoAgxNIAEoAgggB2tBGUtxIQcMAQsgBy8AAkHQAEYhBwsgASgCIBD9ESABQQA2AiAgAUEANgIMIAFCADcCBCAHRQ0BIAYtAARBAXFFDQIgBkEAOgAEDAILIAEoAiAQ/REgAUEANgIgIAFBADYCDCABQgA3AgQLIAYQ/RFBkJcYIQYLIAEQ+xEaAkAgBg0AQZCXGCEGCyAAIAAoAgAiByAGIAcbNgIAIAdFDQEgBhDgQAwACwALIAYoAhAhACAGKAIMIQYgAUEwaiQAQZCXGCAGIABBBkkbC+IBAQN/QQAhAgJAIAAoAgAiA0EASA0AQQEhAiADIAFPDQAgAyEEAkADQCAEIAFPDQEgBCAEQQF2akEIaiEEDAALAAsCQAJAIARBgICAgARJDQAgA0F/cyEEQQAhAgwBCyAAKAIIIQICQAJAAkACQCADDQAgAg0BQQAhAgsgAiAEQQJ0EGEiAQ0BDAILIARBAnQQXiIBRQ0BIAAoAgRBAnQiA0UNACABIAIgAxBLGgsgACABNgIIQQEhAgwBC0EBIQIgBCAAKAIAIgFNDQEgAUF/cyEEQQAhAgsgACAENgIACyACCy4AAkAgACgCAEF/akF9Sw0AIABBADYCBCAAKAIIEGALIABBADYCCCAAQgA3AgALZQECfwJAIABBFGoiBCgCACACQQAQ9B8iBUUNACACIAQoAgAiBCAAQSBqIgAoAgAgAigCABCFQTYCACACIAQgACgCACACKAIEEIVBNgIEIAIgBCAAKAIAIAIoAggQhUE2AggLIAULJgACQCAARQ0AIAAoAiAiACABRg0AIAGsIAKsfiAArH+nIQILIAILqAEBBX8gAEEUaigCACEEQQAhBSACQQBBMBBIIQIgBCgChAEhBiAEKAKAASIHKAIYIQgCQCAHKAIMIgdFDQAgBygCBCEFCwJAIAQgBiACIAUgCBEHACIERQ0AIAIgAEEUaigCACIFIABBHGoiACgCACACKAIAEIdBNgIAIAIgBSAAKAIAIAIoAgQQh0E2AgQgAiAFIAAoAgAgAigCCBCHQTYCCAsgBEEARwsmAAJAIABFDQAgACgCHCIAIAFGDQAgAawgAqx+IACsf6chAgsgAgtcAQF/IwBBEGsiBSQAIAUgAjYCDAJAAkAgACgCgAEoAiBBACgCnMQdRg0AIABBASAFQQxqQQAgA0EAEIlBIQAMAQsgACgCFCACIANBABCKQSEACyAFQRBqJAAgAAtKAQN/IAAoAoQBIQYgACgCgAEiBygCICEIAkACQCAHKAIMIgcNAEEAIQcMAQsgBygCDCEHCyAAIAYgASACIAMgBCAFIAcgCBETAAtLAQJ/IAIgAzYCACAAKAKEASEDIAAoAoABIgQoAhwhBQJAAkAgBCgCDCIEDQBBACEEDAELIAQoAgghBAsgACADIAEgAiAEIAURDAALegEBf0EAIQgCQAJAIAAoAoABKAIcQQAoApjEHUYNAANAAkAgCCACRw0AIAIhCAwDCyAAIAMoAgAgBUEAEIpBRQ0CIAhBAWohCCAFIAZqIQUgAyAEaiEDDAALAAsgACgCFCACIAMgBCAFIAYQiUEPCyAIIAIgCCACSRsLEAAgACgCFCACIAMgBBCNQQtJAQR/QQAhBCADQQA2AgAgACgChAEhBSAAKAKAASIGKAIkIQcCQCAGKAIMIgZFDQAgBigCECEECyAAIAUgASACIAMgBCAHEQYAC30BAn8jAEEQayIEJAAgBCACNgIMAkACQCAAKAKAASgCMEEAKAKsxB1GDQAgAEEBIARBDGpBACAEQQhqQQBBABCPQSAEKAIIIQAMAQsgAEEUaiIFKAIAIAJBABCQQSECIAUoAgAgAEEcaigCACACEIdBIQALIARBEGokACAAC6gBAQN/IAAoAoQBIQcgACgCgAEiCCgCMCEJAkACQCAIKAIMIggNAEEAIQgMAQsgCCgCHCEICyAAIAcgASACIAMgBCAFIAggCREjAAJAIAZFDQAgACgCNCIGRQ0AIAAtADANAEEAIAZrIAYgACgCHEEASBshA0EAIQADQCAAIAFGDQEgBCADQQAgBCgCACIGGyAGajYCACAAQQFqIQAgBCAFaiEEDAALAAsLeQEDfyAAKAKEASEDIAAoAoABIgQoAighBQJAAkAgBCgCDCIEDQBBACEEDAELIAQoAhQhBAsgACADIAEgBCAFEQcAIQECQCACRQ0AIAAoAjQiAkUNACAALQAwDQBBACACayACIAAoAhxBAEgbQQAgARsgAWohAQsgAQt9AQJ/IwBBEGsiBCQAIAQgAjYCDAJAAkAgACgCgAEoAjRBACgCsMQdRg0AIABBASAEQQxqQQAgBEEIakEAQQAQkkEgBCgCCCEADAELIABBFGoiBSgCACACQQAQk0EhAiAFKAIAIABBIGooAgAgAhCFQSEACyAEQRBqJAAgAAuoAQEDfyAAKAKEASEHIAAoAoABIggoAjQhCQJAAkAgCCgCDCIIDQBBACEIDAELIAgoAiAhCAsgACAHIAEgAiADIAQgBSAIIAkRIwACQCAGRQ0AIAAoAjgiBkUNACAALQAwDQBBACAGayAGIAAoAiBBAEgbIQNBACEAA0AgACABRg0BIAQgA0EAIAQoAgAiBhsgBmo2AgAgAEEBaiEAIAQgBWohBAwACwALC3kBA38gACgChAEhAyAAKAKAASIEKAIsIQUCQAJAIAQoAgwiBA0AQQAhBAwBCyAEKAIYIQQLIAAgAyABIAQgBREHACEBAkAgAkUNACAAKAI4IgJFDQAgAC0AMA0AQQAgAmsgAiAAKAIgQQBIG0EAIAEbIAFqIQELIAELqgEBAn9BACEIAkACQCAAKAKAASgCKEEAKAKkxB1GDQADQCAIIAJGDQIgBSAAIAMoAgBBABCQQTYCACAIQQFqIQggBSAGaiEFIAMgBGohAwwACwALQQAhCCAAQRRqIgkoAgAgAiADIAQgBSAGQQAQj0EgAEEcaiEDA0AgCCACRg0BIAUgCSgCACADKAIAIAUoAgAQh0E2AgAgCEEBaiEIIAUgBmohBQwACwALC6oBAQJ/QQAhCAJAAkAgACgCgAEoAixBACgCqMQdRg0AA0AgCCACRg0CIAUgACADKAIAQQAQk0E2AgAgCEEBaiEIIAUgBmohBSADIARqIQMMAAsAC0EAIQggAEEUaiIJKAIAIAIgAyAEIAUgBkEAEJJBIABBIGohAwNAIAggAkYNASAFIAkoAgAgAygCACAFKAIAEIVBNgIAIAhBAWohCCAFIAZqIQUMAAsACwt2AQJ/IwBBEGsiBiQAIAYgAjYCDEEAIQcCQAJAIAAoAoABKAJAQQAoArzEHUYNACAAQQEgBkEMakEAIANBACAEQQBBABCXQSEHDAELIAAoAhQgAiADIARBARCYQUUNACAAIAMgBBCZQUEBIQcLIAZBEGokACAHC98BAQN/IAAoAoQBIQkgACgCgAEiCigCQCELAkACQCAKKAIMIgoNAEEAIQoMAQsgCigCLCEKCwJAIAAgCSABIAIgAyAEIAUgBiAHIAogCxExACIKRQ0AIAhFDQBBACEDQQAgACgCOCICayACIAAoAiBBAEgbIQJBACAAKAI0IglrIAkgACgCHEEASBshCSAALQAwQQFxIQADQCADIAFGDQECQCAADQAgBCAEKAIAIAlqNgIAIAYgBigCACACajYCAAsgA0EBaiEDIAYgB2ohBiAEIAVqIQQMAAsACyAKQQBHC6kBAQR/QQAhBSADQQA2AgAgAkEANgIAIAAoAoQBIQYgACgCgAEiBygCOCEIAkAgBygCDCIHRQ0AIAcoAiQhBQsCQCAAIAYgASACIAMgBSAIEQYAIgVFDQAgBEUNACAALQAwDQAgAiACKAIAQQAgACgCNCIBayABIAAoAhxBAEgbajYCACADIAMoAgBBACAAKAI4IgJrIAIgACgCIEEASBtqNgIACyAFQQBHCzEBAX8gASAAKAIUIgMgACgCHCABKAIAEIdBNgIAIAIgAyAAKAIgIAIoAgAQhUE2AgALdgECfyMAQRBrIgYkACAGIAI2AgxBACEHAkACQCAAKAKAASgCREEAKALAxB1GDQAgAEEBIAZBDGpBACADQQAgBEEAQQAQm0EhBwwBCyAAKAIUIAIgAyAEQQEQnEFFDQAgACADIAQQmUFBASEHCyAGQRBqJAAgBwvsAQEDfyAAKAKEASEJIAAoAoABIgooAkQhCwJAAkAgCigCDCIKDQBBACEKDAELIAooAjAhCgsgACAJIAEgAiADIAQgBSAGIAcgCiALETEAIQkCQCAIRQ0AIAlFDQAgAC0AJEEBcUUNAEEAIQhBACAAKAI4IgNrIAMgACgCIEEASBshA0EAIAAoAjQiAmsgAiAAKAIcQQBIGyECIAAtADBBAXEhAANAIAggAUYNAQJAIAANACAEIAQoAgAgAmo2AgAgBiAGKAIAIANqNgIACyAIQQFqIQggBiAHaiEGIAQgBWohBAwACwALIAlBAEcLqQEBBH9BACEFIANBADYCACACQQA2AgAgACgChAEhBiAAKAKAASIHKAI8IQgCQCAHKAIMIgdFDQAgBygCKCEFCwJAIAAgBiABIAIgAyAFIAgRBgAiBUUNACAERQ0AIAAtADANACACIAIoAgBBACAAKAI0IgFrIAEgACgCHEEASBtqNgIAIAMgAygCAEEAIAAoAjgiAmsgAiAAKAIgQQBIG2o2AgALIAVBAEcLtgEBAn9BACEKAkACQCAAKAKAASgCOEEAKAK0xB1GDQBBASELA0AgCiACRg0CIAAgAygCACAFIAdBABCYQRogCkEBaiEKIAcgCGohByAFIAZqIQUgAyAEaiEDDAALAAtBACELIAAoAhQgAiADIAQgBSAGIAcgCEEBEJdBIgpFDQADQAJAIAsgAkcNACAKIQsMAgsgACAFIAcQmUEgC0EBaiELIAcgCGohByAFIAZqIQUMAAsACyALC7YBAQJ/QQAhCgJAAkAgACgCgAEoAjxBACgCuMQdRg0AQQEhCwNAIAogAkYNAiAAIAMoAgAgBSAHQQAQnEEaIApBAWohCiAHIAhqIQcgBSAGaiEFIAMgBGohAwwACwALQQAhCyAAKAIUIAIgAyAEIAUgBiAHIAhBARCbQSIKRQ0AA0ACQCALIAJHDQAgCiELDAILIAAgBSAHEJlBIAtBAWohCyAHIAhqIQcgBSAGaiEFDAALAAsgCwsEAEEAC2ABAX8CQCAAQRRqIgUoAgAgAiADQQAQpyAiAkUNACAAIAMgA0EEahCZQSADIAUoAgAiBSAAQRxqKAIAIAMoAggQh0E2AgggAyAFIABBIGooAgAgAygCDBCFQTYCDAsgAgsnAAJAIAAoAhQgAiADIAQgBUEAEKJBIgNFDQAgACAEIAUQmUELIAML3gECBH8BfUEAIQYgBEEANgIAIANBADYCACAAKAKEASEHIAAoAoABIggoAlAhCQJAIAgoAgwiCEUNACAIKAI8IQYLAkAgACAHIAEgAiADIAQgBiAJER0AIgZFDQAgBUUNAAJAIAAqAkAiCkMAAAAAWw0AAkACQCAKIAQoAgCylEMAAAA/ko4gAygCALKSIgqLQwAAAE9dRQ0AIAqoIQQMAQtBgICAgHghBAsgAyAENgIACyAALQAwDQAgAyADKAIAQQAgACgCNCIEayAEIAAoAhxBAEgbajYCAAsgBkEARwtcAQN/IAAoAhQhAAJAIARFDQAgA0EAOgAACyAAKAKEASEGIAAoAoABIgcoAlQhCAJAAkAgBygCDCIHDQBBACEHDAELIAcoAkAhBwsgACAGIAIgAyAEIAcgCBEGAAtgAQR/IAAoAhQhAEEAIQYgBEEANgIAAkAgA0F/Rw0AIAIQWSEDCyAAKAKEASEHIAAoAoABIggoAlghCQJAIAgoAgwiCEUNACAIKAJEIQYLIAAgByACIAMgBCAGIAkRBgALigECAX8CfSMAQRBrIgYkACAGIAQ2AgQgBiADNgIAQwAAAAAhB0MAAAAAIQgCQCAAKAIUIgQoAhwiA0UNACAAKAIcsiADspUhCAsgBiAIOAIIAkAgBCgCICIDRQ0AIAAoAiCyIAOylSEHCyAGIAc4AgwgBCACQbjHHSAGQQAQpkEhACAGQRBqJAAgAAuHEwINfxJ9IwBB0ABrIgUkAEEAIQYCQAJAAkAgBEUNACAAKAI0IAAoAjhyQQBHIgcgACoCQCISQwAAAABccg0BCyAAKAKEASEEIAAoAoABIgcoAlwhCAJAIAcoAgwiB0UNACAHKAJIIQYLIAAgBCABIAIgAyAGIAgRBgBBAEchAQwBCyAFQRhqQgA3AwAgBUEQakIANwMAIAVCADcDCCAAKAKEASEIIAAoAoABKAJcIQkCQANAQQAoAuiTHiIGDQEQ+R8iBkGpBxD7HyAGQaoHEP0fIAZBqwcQ/x8gBkGsBxCBICAGQa0HEIMgAkAgBi0ABEEBcUUNACAGQQA6AAQLQQBBACgC6JMeIgQgBiAEGzYC6JMeIARFDQEgBkHwwh1GDQAgBhDTIAwACwALQQAhBAJAIAAoAoABKAIMIgpFDQAgCigCSCEECwJAIAAgCCABIAYgBUEIaiAEIAkRBgAiC0UNAAJAIBJDAAAAAFsNACAFQQA2AiAgBUEANgIEIAAgASAFQSBqIAVBBGpBABCYQRogBSgCDCAFKAIQQQAgBSgCIGuyQQAgBSgCBGuyEK9BIAUoAhAiBiAFKAIMIghBDGxqIQQgACoCQCESIAYhAQJAA0AgASAERg0BIAEgEiABKgIElCABKgIAkjgCACABQQxqIQEMAAsACyAIIAYgBSgCILIgBSgCBLIQr0ELAkAgB0UNACAAKAI0IgEgACgCOCIGckUNACAFKAIMIgRFDQAgBrJDAAAAP5QiE4wgEyAAKAIgQQBIGyEUQwAAAAAgAbJDAAAAP5QiFSAALQAwGyISjCASIAAoAhxBAEgbIRYgBSgCHCIMIAUoAhgiDUECdGohDkMAAAAAIRJBACEIIAUoAhAhACAMIQ8CQANAIA8gDkYNASAIIA8oAgAiCSAIIAlLGyEKIAghAQNAAkAgASAKRw0AIA9BBGohDyAJIQgMAgsgEiAAIAFBDGxqQZCXGCAEIAFLGyIGKgIAIAAgAUEBaiIBIAggASAJSRsiB0EMbGpBkJcYIAQgB0sbIgcqAgSUIAcqAgAgBioCBJSTkiESIAEhAQwACwALAAsgEkMAAAA/lCEXQQAhBkEAIRADQCAQIA1GDQFBfyEKQwAAAAAhEiAFKAIQIQ8gBSgCDCEOQwAAAAAhGEMAAAAAIRlDAAAAACEaQwAAAAAhG0MAAAAAIRwgDCAQQQJ0aigCACIRQX9qIgchASAGIQADQAJAAkAgACABRg0AIAEgCkcNAQsgEEEBaiEQIBEhBgwCCyAaIR0gGyEeIBwhHwJAAkAgACAKRg0AAkACQCAOIABLIgQNAEEAQgA3A4CUHkEAQQA2AoiUHkMAAAAAIR4MAQsgDyAAQQxsaioCACEeCwJAAkAgDiABSyIIDQBBAEIANwOAlB5BAEEANgKIlB5DAAAAACEdDAELIA8gAUEMbGoqAgAhHQsCQAJAIAQNAEEAQgA3A4CUHkEAQQA2AoiUHkMAAAAAIR8MAQsgDyAAQQxsaioCBCEfCyAeIB2TIR4CQAJAIAgNAEEAQgA3A4CUHkEAQQA2AoiUHkMAAAAAIR0MAQsgDyABQQxsaioCBCEdCwJAIB4gHyAdkyIdELBBIh9DAAAAAFsiBA0AIB0gH5UhHSAeIB+VIR4LIAQNAQsCQCASQwAAAABbDQACQCAKQX9KDQAgGCEaIBkhGyASIRwgASEKC0MAAAAAISBDAAAAACEhAkAgGSAelCAYIB2UkiIiQwAAcL9eRQ0AIBUgEiAfIBIgH18bIiAgFSAeIBiUIBkgHZSTIhKMIBIgF0MAAAAAXSIEGyISlCAgICJDAACAP5IiIpQiI18iCBsgGCAdkiIYjCAYIAQblCAiIBIgCBuVISEgGSAekiIYIBiMIAQbIRgCQCATIBKUICNfRQ0AIBMgGJQgIpUhIAwBCyAgIBiUIBKVISALICAgFJIhGCAhIBaSIRkgBSgCECEJIAUoAgwhCANAIAEgAEYNAQJAAkAgCCABSw0AQQBCADcDgJQeQQBBADYCiJQeQYCUHiEEQwAAAAAhEgwBCyAJIAFBDGxqIgQgGSAEKgIAkjgCACAEKgIEIRILIAQgGCASkjgCBCABQQFqIAYgASAHSBshAQwACwALIB8hEiAdIRggHiEZIAAhAQsgAEEBaiAGIAAgB0gbIQAMAAsACwALIAVBIGpBAEEwEEgaIAUoAhwiDyAFKAIYQQJ0aiEQIAVBMGohDCAFQShqIRFBACEBA0AgDyAQRg0BQQAgBSgCDCIEIAFrIgAgACAESxsiBCAPKAIAIg4gAWsiACAEIABJGyEEIAUoAhAgAUEMbGohAEMAAAAAIRhDAAAAACESA0AgACEBAkACQAJAIAQiBkUNACABQQxqIQAgBkF/aiEEAkACQAJAAkAgASgCCA4EAAECAwcLIAEqAgQhGSABKgIAIR4gBSgCIEUNBCAFKgIoIR0CQAJAIAUqAiQiHyASXA0AIB0gGFsNAQsgAiADIAVBIGogHyAdENNACyACIAMgBUEgahDVQCARQQA2AgAgBUIANwMgDAQLIAEqAgQhGCABKgIAIRICQCAFKAIgDQAgAiADIAVBIGoQ0UALIAIgAyAFQSBqIBIgGBDTQAwECyAAQZCXGCAEGyIHKgIEIRggByoCACESIAEqAgQhGSABKgIAIR4CQCAFKAIgDQAgAiADIAVBIGoQ0UALIAFBGGogACAEGyEAIAIgAyAFQSBqIB4gGSASIBgQ1EAgBkF+akEAIAQbIQQMAwsgBkF+akEAIAQbIgZBf2oiByAGSyEIQQxBACAGGyEJIABBkJcYIAQbIgoqAgQhGSAKKgIAIR4gAUEYaiAAIAQbIgBBkJcYIAYbIgQqAgQhGCAEKgIAIRIgASoCBCEdIAEqAgAhHwJAIAUoAiANACACIAMgBUEgahDRQAtBACAHIAgbIQQgACAJaiEAIAIgAyAFQSBqIB8gHSAeIBkgEiAYEMhADAILAkAgBSgCIEUNACAFKgIoIRkCQAJAIAUqAiQiHiASXA0AIBkgGFsNAQsgAiADIAVBIGogHiAZENNACyACIAMgBUEgahDVQAsgDEEANgIAIBFCADcDACAFQgA3AyAgD0EEaiEPIA4hAQwDCyAeIRIgGSEYCyAFIBg4AjAgBSASOAIsDAALAAsACyAFQRRqEINBAkAgBSgCCEF/akF9Sw0AIAVBADYCDCAFKAIQEGALIAtBAEchAQsgBUHQAGokACABC4cBAgJ9An9DAAAAACEIQwAAAAAhCQJAIAAoAhQiCigCHCILRQ0AIAAoAhyyIAuylSEJCwJAIAooAiAiCkUNACAAKAIgsiAKspUhCAsgAyAEIAlDAAAAAEMAAAAAIAhDAAAAAEMAAAAAEKhBIAAoAhQgAiADIAQgBSAGEPMgIQAgAyAEEKlBIAALWgECfyAAKAIMIQgCQAJAIAAoAkQiCQ0AQQAhCQwBCyAJKAIAIQkLIAAgASACIAMgBCAFQwAAAAAgBiAGQwAAAABbG0MAAAAAIAcgB0MAAAAAWxsgCSAIEU8ACzIBAn8gACgCECECAkACQCAAKAJEIgMNAEEAIQMMAQsgAygCBCEDCyAAIAEgAyACEQUACzMBAX8jAEEQayIGJAAgBkEANgIMIAYgBDgCCCAGIAM4AgQgASAGQQRqEMpHIAZBEGokAAszAQF/IwBBEGsiBiQAIAZBATYCDCAGIAQ4AgggBiADOAIEIAEgBkEEahDKRyAGQRBqJAALUgEBfyMAQRBrIggkACAIQQI2AgwgCCAEOAIIIAggAzgCBCABIAhBBGoQykcgCEECNgIMIAggBjgCCCAIIAU4AgQgASAIQQRqEMpHIAhBEGokAAtxAQF/IwBBEGsiCiQAIApBAzYCDCAKIAQ4AgggCiADOAIEIAEgCkEEahDKRyAKQQM2AgwgCiAGOAIIIAogBTgCBCABIApBBGoQykcgCkEDNgIMIAogCDgCCCAKIAc4AgQgASAKQQRqEMpHIApBEGokAAtXAQF/AkACQCABKAIQIgQgASgCDEgNACABQQxqIARBAWoQgkFFDQEgASgCECEECyABIARBAWo2AhAgASgCFCAEQQJ0aiABKAIENgIADwtBAEEANgKAlB4LPgAgASAAQQxsaiEAA0ACQCABIABHDQAPCyABIAEqAgAgApI4AgAgASABKgIEIAOSOAIEIAFBDGohAQwACwAL2AEDAn8CfQF8AkAgAIsiACABiyIBIAC8IAG8SSICGyIEvCIDQYCAgPwHRg0AAkACQCABIAAgAhsiBbwiAkH////7B0sNACADRQ0AIAIgA2tBgICA5ABJDQELIAAgAZIPCwJAAkAgAkGAgIDsBUkNACAEQwAAgBKUIQQgBUMAAIASlCEFQwAAgGwhAAwBC0MAAIA/IQAgA0H///+LAksNACAEQwAAgGyUIQQgBUMAAIBslCEFQwAAgBIhAAsgACAFuyIGIAaiIAS7IgYgBqKgthCuT5QhBAsgBAshACABKAIAIAEoAgQgAiABKgIIIAOUIAEqAgwgBJQQ0kALQwECfSABKgIMIQYgAiABKgIIIgcgAioCDJQ4AgwgAiAGIAIqAhCUOAIQIAEoAgAgASgCBCACIAcgA5QgBiAElBDTQAtNAQJ9IAEqAgwhCCACIAEqAggiCSACKgIMlDgCDCACIAggAioCEJQ4AhAgASgCACABKAIEIAIgCSADlCAIIASUIAkgBZQgCCAGlBDUQAtXAQJ9IAEqAgwhCiACIAEqAggiCyACKgIMlDgCDCACIAogAioCEJQ4AhAgASgCACABKAIEIAIgCyADlCAKIASUIAsgBZQgCiAGlCALIAeUIAogCJQQyEALEQAgASgCACABKAIEIAIQ1UALiwIBBH8jAEEgayIBJAACQCAAQQAQu0FFDQAgAEEANgIECyAAQQxqIgIQvEEgAEEYaiIDELxBAkACQAJAIAAoAgQiBCAAKAIASA0AIAAgBEEBahC7QUUNASAAKAIEIQQLIAAgBEEBajYCBCAAKAIIIARBGGxqIgBCADcCECAAQoCAgICAgIDAPzcCCCAAQoCAgPwDNwIADAELQQBCADcDkJQeQQBCADcDiJQeQQBCADcDgJQeCyABQoCAgPyLgIDAv383AhggAUIANwIQIAFBADYCDCACIAFBDGoQvUEgAUKAgID8i4CAwL9/NwIYIAFCADcCECABQQI2AgwgAyABQQxqEL1BIAFBIGokAAu6AQECfwJAA0BBACgC8JMeIgANARCEICIAQa4HEIYgIABBrwcQiCAgAEGwBxCKICAAQbEHEIwgIABBsgcQjiAgAEGzBxCSICAAQbQHEJQgIABBtQcQkCAgAEG2BxCeICAAQbcHEJggIABBuAcQmiAgAEG5BxCcIAJAIAAtAARBAXFFDQAgAEEAOgAEC0EAQQAoAvCTHiIBIAAgARs2AvCTHiABRQ0BIABB4McdRg0AIAAQ1CAMAAsACyAAC+gBAgN9An8CQAJAIAEqAgxDAAAAP5KOIgKLQwAAAE9dRQ0AIAKoIQUMAQtBgICAgHghBQsgASoCCCECIAEqAgQhAyABKgIAIQQgACAFNgIEAkACQCAEQwAAAD+SjiIEi0MAAABPXUUNACAEqCEBDAELQYCAgIB4IQELIAAgATYCAAJAAkAgA0MAAAA/ko4iA4tDAAAAT11FDQAgA6ghBgwBC0GAgICAeCEGCyAAIAYgBWs2AgwCQAJAIAJDAAAAP5KOIgKLQwAAAE9dRQ0AIAKoIQUMAQtBgICAgHghBQsgACAFIAFrNgIIC0AAIABBGGoQukEgAEEMahC6QQJAIAAoAgBBf2pBfUsNACAAQQA2AgQgACgCCBBgCyAAQQA2AgggAEIANwIAIAALLgACQCAAKAIAQX9qQX1LDQAgAEEANgIEIAAoAggQYAsgAEEANgIIIABCADcCAAviAQEDf0EAIQICQCAAKAIAIgNBAEgNAEEBIQIgAyABTw0AIAMhBAJAA0AgBCABTw0BIAQgBEEBdmpBCGohBAwACwALAkACQCAEQavVqtUASQ0AIANBf3MhBEEAIQIMAQsgACgCCCECAkACQAJAAkAgAw0AIAINAUEAIQILIAIgBEEYbBBhIgENAQwCCyAEQRhsEF4iAUUNASAAKAIEQRhsIgNFDQAgASACIAMQSxoLIAAgATYCCEEBIQIMAQtBASECIAQgACgCACIBTQ0BIAFBf3MhBEEAIQILIAAgBDYCAAsgAgsWAAJAIABBABC+QUUNACAAQQA2AgQLC4gBAQF/AkACQCAAKAIEIgIgACgCAEgNACAAIAJBAWoQvkFFDQEgACgCBCECCyAAIAJBAWo2AgQgACgCCCACQRRsaiIAQRBqIAFBEGooAgA2AgAgAEEIaiABQQhqKQIANwIAIAAgASkCADcCAA8LQQBCADcDiJQeQQBCADcDgJQeQQBBADYCkJQeC+IBAQN/QQAhAgJAIAAoAgAiA0EASA0AQQEhAiADIAFPDQAgAyEEAkADQCAEIAFPDQEgBCAEQQF2akEIaiEEDAALAAsCQAJAIARBzZmz5gBJDQAgA0F/cyEEQQAhAgwBCyAAKAIIIQICQAJAAkACQCADDQAgAg0BQQAhAgsgAiAEQRRsEGEiAQ0BDAILIARBFGwQXiIBRQ0BIAAoAgRBFGwiA0UNACABIAIgAxBLGgsgACABNgIIQQEhAgwBC0EBIQIgBCAAKAIAIgFNDQEgAUF/cyEEQQAhAgsgACAENgIACyACC70JAQJ/AkAgAEUNACAAKAIARQ0AIAAgACgCACIBQX9qNgIAIAFBAUcNACAAQdPCfDYCAAJAIAAoAggiAUUNACABEKghIAEQYCAAQQA2AggLAkACQCAAKAIQIgENAEEAIQEMAQsCQCABKAIAIgJFDQACQAJAIAAoAgwiAQ0AQQAhAQwBCyABKAIAIQELIAEgAhEBACAAKAIQIQELAkAgASgCBCICRQ0AAkACQCAAKAIMIgENAEEAIQEMAQsgASgCBCEBCyABIAIRAQAgACgCECEBCwJAIAEoAggiAkUNAAJAAkAgACgCDCIBDQBBACEBDAELIAEoAgghAQsgASACEQEAIAAoAhAhAQsCQCABKAIMIgJFDQACQAJAIAAoAgwiAQ0AQQAhAQwBCyABKAIMIQELIAEgAhEBACAAKAIQIQELAkAgASgCECICRQ0AAkACQCAAKAIMIgENAEEAIQEMAQsgASgCECEBCyABIAIRAQAgACgCECEBCwJAIAEoAhQiAkUNAAJAAkAgACgCDCIBDQBBACEBDAELIAEoAhQhAQsgASACEQEAIAAoAhAhAQsCQCABKAIYIgJFDQACQAJAIAAoAgwiAQ0AQQAhAQwBCyABKAIYIQELIAEgAhEBACAAKAIQIQELAkAgASgCHCICRQ0AAkACQCAAKAIMIgENAEEAIQEMAQsgASgCHCEBCyABIAIRAQAgACgCECEBCwJAIAEoAiAiAkUNAAJAAkAgACgCDCIBDQBBACEBDAELIAEoAiAhAQsgASACEQEAIAAoAhAhAQsCQCABKAIkIgJFDQACQAJAIAAoAgwiAQ0AQQAhAQwBCyABKAIkIQELIAEgAhEBACAAKAIQIQELAkAgASgCKCICRQ0AAkACQCAAKAIMIgENAEEAIQEMAQsgASgCKCEBCyABIAIRAQAgACgCECEBCwJAIAEoAiwiAkUNAAJAAkAgACgCDCIBDQBBACEBDAELIAEoAiwhAQsgASACEQEAIAAoAhAhAQsCQCABKAIwIgJFDQACQAJAIAAoAgwiAQ0AQQAhAQwBCyABKAIwIQELIAEgAhEBACAAKAIQIQELAkAgASgCNCICRQ0AAkACQCAAKAIMIgENAEEAIQEMAQsgASgCNCEBCyABIAIRAQAgACgCECEBCwJAIAEoAjgiAkUNAAJAAkAgACgCDCIBDQBBACEBDAELIAEoAjghAQsgASACEQEAIAAoAhAhAQsCQCABKAI8IgJFDQACQAJAIAAoAgwiAQ0AQQAhAQwBCyABKAI8IQELIAEgAhEBACAAKAIQIQELAkAgASgCQCICRQ0AAkACQCAAKAIMIgENAEEAIQEMAQsgASgCQCEBCyABIAIRAQAgACgCECEBCwJAIAEoAkQiAkUNAAJAAkAgACgCDCIBDQBBACEBDAELIAEoAkQhAQsgASACEQEAIAAoAhAhAQsCQCABKAJIIgJFDQACQAJAIAAoAgwiAQ0AQQAhAQwBCyABKAJIIQELIAEgAhEBACAAKAIQIQELIAEoAkwiAkUNAAJAAkAgACgCDCIBDQBBACEBDAELIAEoAkwhAQsgASACEQEAIAAoAhAhAQsgARBgIAAoAgwQYCAAEGALC20BAn8CQAJAAkACQAJAIAFFDQAgACgCDA0AIABBAUHQABBkIgM2AgwgA0UNAQtBASEDIAJFDQMgACgCEA0DQQEhAyAAQQFB0AAQZCIENgIQIARFDQEMAwsgAkUNAQsg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CBBgCyAAQQA2AgggAEIANwIACy4AAkAgACgCAEF/akF9Sw0AIABBADYCBCAAKAIIEGALIABBADYCCCAAQgA3AgALLgACQCAAKAIAQX9qQX1LDQAgAEEANgIEIAAoAggQYAsgAEEANgIIIABCADcCAAtIAQJ/IAAoAgQiAiABayEDIAAoAgggAkEcbGohAgJAA0AgA0UNASACQWhqEI9CIAJBZGohAiADQX9qIQMMAAsACyAAIAE2AgQLSAECfyAAKAIEIgIgAWshAyAAKAIIIAJBHGxqIQICQANAIANFDQEgAkFoahCLQiACQWRqIQIgA0F/aiEDDAALAAsgACABNgIECy4AAkAgACgCAEF/akF9Sw0AIABBADYCBCAAKAIIEGALIABBADYCCCAAQgA3AgALMQAgABDbQCAAQdwAahCTQiAAQcABahCSQiAAQcwBahCRQiAAKAIsEP0RIABBADYCLAsuAAJAIAAoAgBBf2pBfUsNACAAQQAQlEIgACgCCBBgCyAAQQA2AgggAEIANwIACy4AAkAgACgCAEF/akF9Sw0AIABBABCVQiAAKAIIEGALIABBADYCCCAAQgA3AgALLgACQCAAKAIAQX9qQX1LDQAgAEEANgIEIAAoAggQYAsgAEEANgIIIABCADcCAAtIAQJ/IAAoAgQiAiABayEDIAAoAgggAkEYbGohAgJAA0AgA0UNASACQWxqEI9CIAJBaGohAiADQX9qIQMMAAsACyAAIAE2AgQLSAECfyAAKAIEIgIgAWshAyAAKAIIIAJBBXRqIQICQANAIANFDQEgAkFkahCLQiACQWBqIQIgA0F/aiEDDAALAAsgACABNgIEC0QAIABB4ABqEINBIABB1ABqEINBIABByABqEJdCIABBPGoQmEIgAEEwahCYQiAAQSRqEJdCIABBDGoQl0IgABCXQiAACy4AAkAgACgCAEF/akF9Sw0AIABBADYCBCAAKAIIEGALIABBADYCCCAAQgA3AgALLgACQCAAKAIAQX9qQX1LDQAgAEEANgIEIAAoAggQYAsgAEEANgIIIABCADcCAAsUACABKAIAQQxqEKVCIAIgAxCmQgtaAQF/QQAhCAJAIAEoAgBBDGoQpUIiASgCCEUNAANAAkAgCCACRw0AIAIhCAwCCyABIAMoAgAgBRCnQkUNASAIQQFqIQggBSAG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IQoLIAIoAgAgAigCBCIAQcQAaioCACAAQcgAaioCACABKwOoIiAHKwMAoCILIAErA7AiIAqgIgoQ1EMgASAKOQOwIiABIAs5A6giIAYhAAwACwALIAFBADYCFAwWCyABQRhqIQZBACEAAkADQCAAQQJqIgUgASgCFCIESw0BAkACQCAEIABLDQAgAUEBOgAQQQBCADcDgJQeRAAAAAAAAAAAIQoMAQsgBiAAQQN0aisDACEKCyACKAIAIAIoAgQiBEHEAGoqAgAgBEHIAGoqAgAgASsDqCIgCqAiCiABKwOwIiILENRDIAEgCzkDsCIgASAKOQOoIgJAAkAgASgCFCAAQQFyIgBLDQAgAUEBOgAQQQBCADcDgJQeRAAAAAAAAAAAIQwMAQsgBiAAQQN0aisDACEMCyACKAIAIAIoAgQiAEHEAGoqAgAgAEHIAGoqAgAgCiALIAygIgsQ1EMgASALOQOwIiABIAo5A6giIAUhAAwACwALAkAgACAETw0AIAIoAgAgAigCBCICQcQAaioCACACQcgAaioCACABKwOoIiAGIABBA3RqKwMAoCIKIAErA7AiIgsQ1EMgASALOQOwIiABIAo5A6giCyABQQA2AhQMFQsgAUEYaiEGQQAhAAJAA0AgAEECaiIFIAEoAhQiBEsNAQJAAkAgBCAASw0AIAFBAToAEEEAQgA3A4CUHkQAAAAAAAAAACEKDAELIAYgAEEDdGorAwAhCgsgAigCACACKAIEIgRBxABqKgIAIARByABqKgIAIAErA6giIgsgASsDsCIgCqAiChDUQyABIAo5A7AiIAEgCzkDqCICQAJAIAEoAhQgAEEBciIASw0AIAFBAToAEEEAQgA3A4CUHkQAAAAAAAAAACEMDAELIAYgAEEDdGorAwAhDAsgAigCACACKAIEIgBBxABqKgIAIABByABqKgIAIAsgDKAiCyAKENRDIAEgCjkDsCIgASALOQOoIiAFIQAMAAsACwJAIAAgBE8NACACKAIAIAIoAgQiAkHEAGoqAgAgAkHIAGoqAgAgASsDqCIiCiABKwOwIiAGIABBA3RqKwMAoCILENRDIAEgCzkDsCIgASAKOQOoIgsgAUEANgIUDBQLIAFBGGohBkEAIQACQANAIABBBmoiBSABKAIUIgRLDQECQAJAIAQgAEsNACABQQE6ABBBAEIA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IANBMGogA0EgaiADQRBqIAMQ1kMMAQsgASABKAIEQQFqNgIICyABQQA2AhQMDAsCQAJAIAEoAhRBDUcNACABKwMoIQogASsDGCELIAErA6giIQwgASsDOCENIANBMGpBCGoiBCABKwOwIiABKwMgoCIOIAErAzCgIg8gASsDQKA5AwAgAyANIAogDCALoCILoCIKoDkDMCADQSBqQQhqIgAgBCkDADcDACADIAMpAzA3AyAgASsDSCEMIAAgACsDACABKwNQoDkDACADIAwgAysDIKA5AyAgA0EQakEIaiIEIAApAwA3AwAgAyADKQMgNwMQIAErA1ghDCAEIAQrAwAgASsDYKA5AwAgAyAMIAMrAxCgOQMQIANBCGoiACAEKQMANwMAIAMgAykDEDcDACABKwNoIQwgACAAKwMAIAErA3CgOQMAIAMgDCADKwMAoDkDACABIAIgCyAOIAogDyADQTBqIANBIGogA0EQaiADENZDDAELIAEgASgCBEEBajYCCAsgAUEANgIUDAsLAkACQCABKAIUQQlHDQAgASsDKCEKIAErAxghCyABKwOoIiEMIANBMGpBCGoiACABKwOwIiINIAErAyCgIg4gASsDMKAiDzkDACADIAogDCALoCILoCIKIAErAzigOQMwIANBIGpBCGogACkDACITNwMAIAMgAykDMDcDICADIAMrAyAgASsDQKA5AyAgA0EQakEIaiIAIBM3AwAgAyADKQMgNwMQIAErA0ghDCAAIAArAwAgASsDUKA5AwAgAyAMIAMrAxCgOQMQIANBCGoiBCAAKQMANwMAIAMgAykDEDcDACABKwNYIQwgBCANOQMAIAMgDCADKwMAoDkDACABIAIgCyAOIAogDyADQTBqIANBIGogA0EQaiADENZDDAELIAEgASgCBEEBajYCCAsgAUEANgIUDAoLIAEoAhRBC0cNAiABQRhqIQZBACEARAAAAAAAAAAAIQpEAAAAAAAAAAAhCwNAAkAgAEEKSQ0AIAErAyghDSABKwMYIQ4gASsDqCIhDCABKwM4IQ8gA0EwakEIaiIEIAErA7AiIhAgASsDIKAiESABKwMwoCISIAErA0CgOQMAIAMgDyANIAwgDqAiDqAiDaA5AzAgA0EgakEIaiIAIAQpAwA3AwAgAyADKQMwNwMgIAErA0ghDyAAIAArAwAg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AwAgAyABKQOoIjcDUCADIAMrA1AgASsDGKA5A1AgA0HAAGpBCGoiACARNwMAIAMgAykDUDcDQCABKwMgIQ0gACAAKwMAIAErAyigOQMAIAMgDSADKwNAoDkDQCADQTBqQQhqIAApAwAiETcDACADIAMpA0A3AzAgAyADKwMwIAErAzCgOQMwIANBIGpBCGogETcDACADIAMpAzA3AyAgAyADKwMgIAErAzigOQMgIANBEGpBCGoiACARNwMAIAMgAykDIDcDECADIAMrAxAgASsDQKA5AxAgACAEKQMAIhE3AwAgA0EIaiARNwMAIAMgAykDEDcDACADIAMrAwAgASsDSKA5AwAgASACIANB0ABqIANBwABqIANBMGogA0EgaiADQRBqIAMQzkMMAQsgASABKAIEQQFqNgIICyABQQA2AhQMDAsCQAJAIAEoAhRBDUcNACADQdAAakEIaiIAIAFBsCJqKQMANwMAIAMgASkDqCI3A1AgASsDGCENIAAgACsDACABKwMgoDkDACADIA0gAysDUKA5A1AgA0HAAGpBCGoiBCAAKQMANwMAIAMgAykDUDcDQCABKwMoIQ0gBCAEKwMAIAErAzCgOQMAIAMgDSADKwNAoDkDQCADQTBqQQhqIgAgBCkDADcDACADIAMpA0A3AzAgASsDOCENIAAgACsDACABKwNAoDkDACADIA0gAysDMKA5AzAgA0EgakEIaiIEIAApAwA3AwAgAyADKQMwNwMgIAErA0ghDSAEIAQrAwAgASsDUKA5AwAgAyANIAMrAyCgOQMgIANBEGpBCGoiACAEKQMANwMAIAMgAykDIDcDECABKwNYIQ0gACAAKwMAIAErA2CgOQMAIAMgDSADKwMQoDkDECADQQhqIgQgACkDADcDACADIAMpAxA3AwAgASsDaCENIAQgBCsDACABKwNwoDkDACADIA0gAysDAKA5AwAgASACIANB0ABqIANBwABqIANBMGogA0EgaiADQRBqIAMQzkMMAQsgASABKAIEQQFqNgIICyABQQA2AhQMCwsCQAJAIAEoAhRBCUcNACADQdAAakEIaiIAIAFBsCJqIgYpAwA3AwAgAyABKQOoIjcDUCABKwMYIQ0gACAAKwMAIAErAyCgOQMAIAMgDSADKwNQoDkDUCADQcAAakEIaiIEIAApAwA3AwAgAyAD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ASAAEIlEDQAMAgsACyAAQQJqIAEgABCJRCECCyACC04BAX9BACECAkAgACABKAIEayABKAIMSw0AIAEoAgggAGtBAkkNACABIABBAmogAC8AACIAQQh0IABBCHZyQf//A3FBAXQQ2EAhAgsgAgs7AQF/QQAhAgJAIAAgASgCBGsgASgCDEsNACABKAIIIABGDQAgASAAQQFqIAAtAABBA2wQ2EAhAgsgAgtWAQF/QQAhAwJAIAAgASgCBGsgASgCDEsNACABKAIIIABrQQNJDQBBASEDIAAQ4UENACACIAAtAAFBCHQgAC0AAEEQdHIgAC0AAnJqIAEQhkQhAwsgAwvAAQEEf0F/IQECQAJAAkAgAC8AACICQQh0IAJBCHZyQf//A3FBf2oOAgEAAgsgAEEEaiICIAAvAAIiAUEIdCABQQh2ckH//wNxQQZsaiEDQQAhAQNAIAIgA0YNAkEAIAIvAAIiAEEIdCAAQQh2ckH//wNxIgAgAi8AACIEQQh0IARBCHZyQf//A3EiBGtBAWogACAESRsgAWohASACQQZqIQIMAAsACyAALwACIgJBCHQgAkEIdnJB//8DcSEBCyABCwoAIAAQjkRBAXQLzAEBAX8gAyAAQQd2QQJxaiAAQQh0IABBgP4DcUEIdnIiA0ECcWogAEEJdkECcWogAEEKdkECcWohAAJAAkAgA0EQcUUNAEEAIQQgACABIAIQnERFDQEgAEECaiEACwJAIANB//8DcSIDQSBxRQ0AQQAhBCAAIAEgAhCcREUNASAAQQJqIQALAkAgA0HAAHFFDQBBACEEIAAgASACEJxERQ0BIABBAmohAAsCQCADQYABcUUNAEEAIQQgACABIAIQnERFDQELQQEhBAsgBAtKAQJ/QQEhBgJAIAAvAABBgCBJDQBBACEHA0AgByAERiIGDQEgAC8AACABIAIgAxCMREUNASAHQQFqIQcgAyAFaiEDDAALAAsgBgslACAAQYDgA3FBDHZBoNgVai0AACAAQQh2QQ9xQaDYFWotAABqC1MBAX9BACEDAkAgACABKAIEayABKAIMSw0AIAEoAgggAGtBAkkNAAJAIAAvAAAiAA0AQQEPCyACIABBCHQgAEEIdnJB//8DcWogARCaRCEDCyADC7ACAQd/QQAhAwJAIAAgASgCBGsgASgCDEsNACABKAIIIABrQQJJDQACQCAALwAAIgANAEEBIQMMAQsgAiAAQQh0IABBCHZyQf//A3FqIgQgASgCBGsgASgCDEsNACABKAIIIARrQQJJDQAgASAEQQJqIgUgBC8AACIAQQh0IABBCHZyQf//A3FBAnQQ2EBFDQAgBC8AACIAQQh0IABBCHZyQf//A3EhBkEAIQADQCAAIAZGIgMNASAFIABBAnRqIgIgASgCBCIHayABKAIMIghLDQEgASgCCCIJIAJrQQRJDQEgAkECaiICIAdrIAhLDQEgCSACa0ECSQ0BAkAgAi8AACICRQ0AIAQgAkEIdCACQQh2ckH//wNxaiABEJpERQ0CCyAAQQFqIQAMAAsACyADC+0BAQN/QQAhBAJAIAAgASgCBGsgASgCDEsNACABKAIIIABrQQJJDQACQCAALwAAIgANAEEBDwsgAiAAQQh0IABBCHZyQf//A3FqIgIgASgCBGsgASgCDEsNACABKAIIIAJrQQJJDQAgAygCACEAIAIvAAAiA0EIdCADQQh2ckH//wNxIgOtIACtfkIgiKcNAEEAIQQgACADbCIFQQBIDQAgASACQQJqIgYgBUEBdBDYQEUNAEEBIQQgAS0AKQ0AQQAhAANAIAAgBUYiBA0BIABBAXQhAyAAQQFqIQAgBiADaiABIAIQm0QNAAsLIAQL3wUBBX8CQCAAIAEoAgRrIAEoAgxLDQAgASgCCCAAa0ECSQ0AQQEhAgJAAkACQAJAIAAvAAAiA0EIdCADQQh2ckH//wNxQX9qDgMAAQIDCyAAQQJqIAEgABDuQ0UNA0EAIQIgAEEEaiABEJZERQ0CIAAvAAQiA0EIdCADQQh2ckH//wNxIQQgAEEGaiEFQQAhAwNAIAMgBEYiAg0DIANBAXQhBiADQQFqIQMgBSAGaiABIAAQl0QNAAwDCwALIABBAmogASAAEO5DRQ0CIABBBGogASAAEO1DRQ0CIABBBmogASAAEO1DRQ0CIABBCGogASAAEO1DRQ0CQQAhAiAAQQpqIAEQlkRFDQEgAC8ACiIDQQh0IANBCHZyQf//A3EhBCAAQQxqIQVBACEDA0AgAyAERiICDQIgA0EBdCEGIANBAWohAyAFIAZqIAEgABCXRA0ADAILAAtBACECIABBAmoiBSABEJhERQ0AIAAvAAIiA0EIdCADQQh2ckH//wNxIQIgAEEEaiEEQQAhAwJAA0AgAyACRg0BIANBAXQhBiADQQFqIQMgBCAGaiABIAAQ7kMNAAwDCwALIAUgBS8AACIDQQh0IANBCHZyQf//A3FBAXRqIgNBAmoiBSABEJhERQ0BIAMvAAIiBkEIdCAGQQh2ckH//wNxIQIgA0EEaiEEQQAhAwJAA0AgAyACRg0BIANBAXQhBiADQQFqIQMgBCAGaiABIAAQ7kNFDQMMAAsAC0EAIQIgBS8AACIDRQ0AIAUgA0EIdCADQQh2ckH//wNxQQF0aiIDQQJqIgUgARCYREUNACADLwACIgZBCHQgBkEIdnJB//8DcSECIANBBGohBEEAIQMCQANAIAMgAkYNASADQQF0IQYgA0EBaiEDIAQgBmogASAAEO5DRQ0DDAALAAsgBSAFLwAAIgBBCHQgAEEIdnJB//8DcUEBdGpBAmogARCZRCECCyACDwtBAAv9AwEFfwJAIAAgASgCBGsgASgCDEsNACABKAIIIABrQQJJDQBBASECAkACQAJAAkAgAC8AACIDQQh0IANBCHZyQf//A3FBf2oOAwABAgMLIABBAmogASAAEO5DRQ0DQQAhAiAAQQRqIAEQlERFDQIgAC8ABCIDQQh0IANBCHZyQf//A3EhBCAAQQZqIQVBACEDA0AgAyAERiICDQMgA0EBdCEGIANBAWohAyAFIAZqIAEgABCVRA0ADAMLAAsgAEECaiABIAAQ7kNFDQIgAEEEaiABIAAQ7UNFDQJBACECIABBBmogARCUREUNASAALwAGIgNBCHQgA0EIdnJB//8DcSEEIABBCGohBUEAIQMDQCADIARGIgINAiADQQF0IQYgA0EBaiEDIAUgBmogASAAEJVEDQAMAgsACyAAIAEoAgRrIAEoAgxLDQEgASgCCCAAa0EGSQ0BQQAhAiAALwACIgNFDQBBACECIAEgAEEGaiIEIANBCHQgA0EIdnJB//8DcSIFQQF0ENhARQ0AQQAhAwJAA0AgAyAFRg0BIANBAXQhBiADQQFqIQMgBCAGaiABIAAQ7kMNAAwCCwALIAEgBCAALwACIgNBCHQgA0EIdnJB//8DcUEBdGogAC8ABCIDQQh0IANBCHZyQf//A3FBAnQQ2EAhAgsgAg8LQQALTgEBf0EAIQICQCAAIAEoAgRrIAEoAgxLDQAgASgCCCAAa0ECSQ0AIAEgAEECaiAALwAAIgBBCHQgAEEIdnJB//8DcUEBdBDYQCECCyACC+wCAQV/QQAhAwJAIAAgASgCBGsgASgCDEsNACABKAIIIABrQQJJDQACQCAALwAAIgANAEEBIQMMAQsgAiAAQQh0IABBCHZyQf//A3FqIgQgASgCBGsgASgCDEsNACABKAIIIARrQQJJDQAgASAEQQJqIgUgBC8AACIAQQh0IABBCHZyQf//A3FBAXQQ2EBFDQAgBC8AACIAQQh0IABBCHZyQf//A3EhBkEAIQADQCAAIAZGIgMNASAFIABBAXRqIgIgASgCBGsgASgCDEsNASABKAIIIAJrQQJJDQECQCACLwAAIgJFDQAgBCACQQh0IAJBCHZyQf//A3FqIgIgASgCBGsgASgCDEsNAiABKAIIIAJrQQRJDQIgASACQQRqIAIvAAAiB0EIdCAHQQh2ckH//wNxQQF0QX5qQQAgBxsgAi8AAiICQQh0IAJBCHZyQf//A3FBAnRqENhARQ0CCyAAQQFqIQAMAAsACyADC04BAX9BACECAkAgACABKAIEayABKAIMSw0AIAEoAgggAGtBAkkNACABIABBAmogAC8AACIAQQh0IABBCHZyQf//A3FBAXQQ2EAhAgsgAgvEAwEFf0EAIQMCQCAAIAEoAgRrIAEoAgxLDQAgASgCCCAAa0ECSQ0AAkAgAC8AACIADQBBASEDDAELIAIgAEEIdCAAQQh2ckH//wNxaiIEIAEoAgRrIAEoAgxLDQAgASgCCCAEa0ECSQ0AIAEgBEECaiIFIAQvAAAiAEEIdCAAQQh2ckH//wNxQQF0ENhARQ0AIAQvAAAiAEEIdCAAQQh2ckH//wNxIQZBACEAA0AgACAGRiIDDQEgBSAAQQF0aiICIAEoAgRrIAEoAgxLDQEgASgCCCACa0ECSQ0BAkAgAi8AACICRQ0AIAQgAkEIdCACQQh2ckH//wNxaiICIAEoAgRrIAEoAgxLDQIgASgCCCACa0ECSQ0CIAIgAi8AACIHQQh0IAdBCHZyQf//A3FBAXRqQQJqIgIgASgCBGsgASgCDEsNAiABKAIIIAJrQQJJDQIgAiACLwAAIgdBCHQgB0EIdnJB//8DcUEBdEECIAcbaiICIAEoAgRrIAEoAgxLDQIgASgCCCACa0ECSQ0CIAIgAi8AACIHQQh0IAdBCHZyQf//A3FBAXRqQQJqIAEQmURFDQILIABBAWohAAwACwALIAMLTgEBf0EAIQICQCAAIAEoAgRrIAEoAgxLDQAgASgCCCAAa0ECSQ0AIAEgAEECaiAALwAAIgBBCHQgAEEIdnJB//8DcUEBdBDYQCECCyACC04BAX9BACECAkAgACABKAIEayABKAIMSw0AIAEoAgggAGtBAkkNACABIABBAmogAC8AACIAQQh0IABBCHZyQf//A3FBAnQQ2EAhAgsgAgvLAQECfwJAIAAgASgCBGsgASgCDEsNACABKAIIIABrQQJJDQBBASECAkACQAJAAkAgAC8AACIDQQh0IANBCHZyQf//A3FBf2oOAwABAgMLIAAgASgCBGsgASgCDE0gASgCCCAAa0EFS3EPCyAAIAEoAgRrIAEoAgxNIAEoAgggAGtBB0txDwsgACABKAIEayABKAIMSw0BIAEoAgggAGtBCkkNAUEAIQIgAEEGaiABIAAQ70NFDQAgAEEIaiABIAAQ70MhAgsgAg8LQQALUwEBf0EAIQMCQCAAIAEoAgRrIAEoAgxLDQAgASgCCCAAa0ECSQ0AAkAgAC8AACIADQBBAQ8LIAIgAEEIdCAAQQh2ckH//wNxaiABEJpEIQMLIAMLUwEBf0EAIQMCQCAAIAEoAgRrIAEoAgxLDQAgASgCCCAAa0ECSQ0AAkAgAC8AACIADQBBAQ8LIAIgAEEIdCAAQQh2ckH//wNxaiABEPVDIQMLIAMLxQEBBX8gABD4QyIALwAAIgNBCHQgA0EIdnJB//8DcSEEIABBAmohBUEAIQMCQAJAA0AgBEF/aiEGA0AgAyAETg0CAkAgBSADIAZqQQF2IgdBBmxqKAAAIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyIgAgAUkgACABS2siAEEATg0AIAchBAwCCwJAIABFDQAgB0EBaiEDDAELCwsgAg0BQQEPC0H//wMhByACDQBBAA8LIAIgBzYCACADIARICzkBAn9BkJcYIQECQCAALwAAQYACRw0AIAAvAAYiAkUNACAAIAJBCHQgAkEIdnJB//8DcWohAQsgAQvAAQEFfyAALwAAIgNBCHQgA0EIdnJB//8DcSEEIABBAmohBUEAIQMCQAJAA0AgBEF/aiEGA0AgAyAETg0CAkAgBSADIAZqQQF2IgdBBmxqKAAAIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyIgAgAUkgACABS2siAEEATg0AIAchBAwCCwJAIABFDQAgB0EBaiEDDAELCwsgAg0BQQEPC0H//wMhByACDQBBAA8LIAIgBzYCACADIARIC3cBAn9BkJcYIQECQCAALwAAQYACRw0AIAAoAAAiAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnJBgYAESQ0AIAAoAAoiAkUNACAAIAJBGHQgAkGA/gNxQQh0ciACQQh2QYD+A3EgAkEYdnJyaiEBCyABC2MBA39BkJcYIQJBkJcYIQMCQCAAEJ5EIgAvAAAiBEEIdCAEQQh2ckH//wNxIAFNDQAgACABQQZsakECaiEDCwJAIAMvAAQiAUUNACAAIAFBCHQgAUEIdnJB//8DcWohAgsgAgt3AQJ/QZCXGCEBAkAgAC8AAEGAAkcNACAAKAAAIgJBGHQgAkGA/gNxQQh0ciACQQh2QYD+A3EgAkEYdnJyQYOABEkNACAAKAAOIgJFDQAgACACQRh0IAJBgP4DcUEIdHIgAkEIdkGA/gNxIAJBGHZycmohAQsgAQuwAwEFf0EAIQRBACEFAkACQANAAkACQAJAAkAgAC8AACIGQQh0IAZBCHZyQf//A3FBf2oOBQAFAQIDBgtBACEEQQAhBgJAIAAvAAIiA0EIdCADQQh2ckH//wNxIgMgAk8NACABIANBAnRqKAIAIQYLIAYgAC8ABCIDQQh0IANBCHZywUgNBSAGIAAvAAYiAEEIdCAAQQh2csFMIQQMBQsgAEEDaiEHIAAtAAIhCEEAIQQCQANAAkAgBCIGIAhHDQAgCCEGDAILIAZBAWohBCAHIAZBA2xqIAAQpEQgASACIAMQo0QNAAsLIAYgCE8hBAwECyAAQQNqIQcgAC0AAiEIQQAhBAJAA0ACQCAEIgYgCEcNACAIIQYMAgsgBkEBaiEEIAcgBkEDbGogABCkRCABIAIgAxCjREUNAAsLIAYgCEkhBAwDCyAFQQFzIQUgAEECaiAAEKREIQAMAAsACyAALwACIQYgAyAAKAAEIgBBGHQgAEGA/gNxQQh0ciAAQQh2QYD+A3EgAEEYdnJyQQAQj0MgBkEIdCAGQQh2csGykkMAAAAAXiEECyAFIARzQQFxCywAAkAgABDhQUUNAEGQlxgPCyABIAAtAAFBCHQgAC0AAEEQdHIgAC0AAnJqC4oBAQN/QZCXGCECAkAgAC8AAEGAAkcNAEGQlxghAkGQlxghAwJAIAAvAAgiBEUNACAAIARBCHQgBEEIdnJB//8DcWohAwsgAy8AACIAQQh0IABBCHZyQf//A3EgAU0NACADIAFBAXRqQQJqLwAAIgBFDQAgAyAAQQh0IABBCHZyQf//A3FqIQILIAILswMBCX8jAEEgayICJAACQAJAIAAoAgQgAU0NACABQQJ0IQMDQCAAKAIIIANqKAIAIgQNAkEBQZCXGCAAKAIAIgRBkJcYIAQbIgQoAgwgBCgCEEEESRsgARClRCIFLwAEIgRBCHQgBEEIdnJB//8DcSIGQTBsIgdBIGoQZCIERQ0BQQAhCCACQQA2AhwgAkKAgICAcDcCFCACQQA2AgwgAiAEQSBqIgk2AhAgBS8AACIKQQh0IApBCHZyQf//A3EhCgJAA0AgCCAGRg0BIAUgCBD+QyACQQxqIAoQp0QgCEEBaiEIDAALAAsgBEIANwMAIARBEGpCADcDACAEQQhqQgA3AwAgCSAHaiEFIAkhCANAAkAgCCAFRw0AIAQgBjYCGCAEIAIoAhgiBTYCHEEAIQgCQANAIAggBkYNAQJAIAggBUYNACAJIAhBMGxqIgogCigCBDYCCAsgCEEBaiEIDAALAAsgACgCCCADaiIIIAgoAgAiCCAEIAgbNgIAIAhFDQQgBBCFQiAEEGAMAgsgBCAIQRhqEKhEIAhBMGohCAwACwALAAtBACEECyACQSBqJAAgBAuIDAIKfwF+IwBBIGsiAyQAAkACQANAAkACQAJAAkACQAJAAkAgAkF/ag4IAAECAwQFBggJCwJAAkAgAC8AACICQQh0IAJBCHZyQf//A3FBf2oOAgABCgsgASABKAIIIgJBAWo2AgggASgCBCACQTBsaiICQgA3AxggAkEANgIQIAJBywc2AgwgAkHMBzYCCCACQc0HNgIEIAIgADYCACACQSBqQgA3AwAgAkEoakIANwMAIAJBGGohBAJAAkAgAC8AAiICDQBBkJcYIQIMAQsgACACQQh0IAJBCHZyQf//A3FqIQILIAIgBBDyQwwJCyABIAEoAggiAkEBajYCCCABKAIEIAJBMGxqIgJCADcDGCACQQA2AhAgAkHOBzYCDCACQc8HNgIIIAJB0Ac2AgQgAiAANgIAIAJBIGpCADcDACACQShqQgA3AwAgAkEYaiEEAkACQCAALwACIgINAEGQlxghAgwBCyAAIAJBCHQgAkEIdnJB//8DcWohAgsgAiAEEPJDDAgLIAAvAABBgAJHDQcgASABKAIIIgJBAWo2AgggASgCBCACQTBsaiICQgA3AxggAkEANgIQIAJB0Qc2AgwgAkHSBzYCCCACQdMHNgIEIAIgADYCACACQSBqQgA3AwAgAkEoakIANwMAIAJBGGohBAJAAkAgAC8AAiICDQBBkJcYIQIMAQsgACACQQh0IAJBCHZyQf//A3FqIQILIAIgBBDyQwwHCyAALwAAQYACRw0GIAEgASgCCCICQQFqNgIIIAEoAgQgAkEwbGoiAkIANwMYIAJBADYCECACQdQHNgIMIAJB1Qc2AgggAkHWBzYCBCACIAA2AgAgAkEgakIANwMAIAJBKGpCADcDACACQRhqIQQCQAJAIAAvAAIiAg0AQZCXGCECDAELIAAgAkEIdCACQQh2ckH//wNxaiECCyACIAQQ8kMMBgsgAC8AAEGAAkcNBUEAIQUCQCABKAIIIgZBB0sNAEGYBBBeIgVFDQAgBRDARCAFQZAEakIANwMAIAVBiARqQgA3AwAgBUIANwOABCAALwAEIgJBCHQgAkEIdnJB//8DcSEHIABBBmohCEGc2BWtIQ0gBUGABGoiCUEQaiEKA0AgB0UNAQJAAkAgCC8AACICDQBBkJcYIQIMAQsgACACQQh0IAJBCHZyQf//A3FqIQILIAIvAAAhC0EAIQQgA0EANgIQIAMgAkECaiIMNgIIIAMgAq1CIIYgDYQ3AhQgAyALQQh0IAtBCHZyQf//A3EiAjYCDAJAA0AgAkUNAQJAAkAgA0EIahCrRCILLwACQf/9A3ENACAJQn83AwAgCkJ/NwMAIAlBCGpCfzcDAAwBCyAJIAsvAAQiC0EIdCALQQh2ckH//wNxEPNDCyADIARBAWoiBDYCECADIAJBf2oiAjYCDCADIAxBAmoiDDYCCAwACwALIAhBAmohCCAHQX9qIQcMAAsACyABIAZBAWo2AgggASgCBCAGQTBsaiICQgA3AxggAiAFNgIQIAJB1wc2AgwgAkHYBzYCCCACQdkHNgIEIAIgADYCACACQSBqQgA3AwAgAkEoakIANwMAIAJBGGohBAJAAkAgAC8AAiICDQBBkJcYIQIMAQsgACACQQh0IAJBCHZyQf//A3FqIQILIAIgBBDyQwwFCyAAIAEQxEQMBAsgACABEMVEDAMLIAAvAABBgAJHDQICQAJAIAAoAAQiAg0AQZCXGCEEDAELIAAgAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnJqIQQLIAAvAAIiAkEIdCACQQh2ckH//wNxIQIgBCEADAALAAsgAC8AAEGAAkcNACABIAEoAggiAkEBajYCCCABKAIEIAJBMGxqIgJCADcDGCACQQA2AhAgAkHaBzYCDCACQdsHNgIIIAJB3Ac2AgQgAiAANgIAIAJBIGpCADcDACACQShqQgA3AwAgAkEYaiEEAkACQCAALwACIgINAEGQlxghAgwBCyAAIAJBCHQgAkEIdnJB//8DcWohAgsgAiAEEPJDCyADQSBqJAALPQEDf0EAIQIDQAJAIAJBA0cNAA8LIAAgAkEDdCIDaiIEIAQpAwAgASADaikDAIQ3AwAgAkEBaiECDAALAAvqEAEHfyMAQSBrIgMkAAJAAkADQEEAIQQCQAJAAkACQAJAAkACQCACQX9qDggAAQIDBAUGCAkLAkACQCAALwAAIgJBCHQgAkEIdnJB//8DcUF/ag4CAAEKCyABKAIMQQFHDQkCQAJAIAAvAAIiAg0AQZCXGCEADAELIAAgAkEIdCACQQh2ckH//wNxaiEACyAAIAEoAggoAgAQqkRBf0chBAwJCyABKAIMQQFHDQgCQAJAIAAvAAIiAg0AQZCXGCEADAELIAAgAkEIdCACQQh2ckH//wNxaiEACyAAIAEoAggoAgAQqkRBf0chBAwICyAALwAAQYACRw0HIAEoAgxBAUcNBwJAAkAgAC8AAiICDQBBkJcYIQAMAQsgACACQQh0IAJBCHZyQf//A3FqIQALIAAgASgCCCgCABCqREF/RyEEDAcLIAAvAABBgAJHDQYgASgCDEEBRw0GAkACQCAALwACIgINAEGQlxghAAwBCyAAIAJBCHQgAkEIdnJB//8DcWohAAsgACABKAIIKAIAEKpEQX9HIQQMBgsgAC8AAEGAAkcNBQJAAkAgAC8AAiICDQBBkJcYIQIMAQsgACACQQh0IAJBCHZyQf//A3FqIQILIAIgASgCCCgCABCqRCICQX9GDQVBkJcYIQVBkJcYIQQCQCACIAAvAAQiBkEIdCAGQQh2ckH//wNxTw0AIAAgAkEBdGpBBmohBAsCQCAELwAAIgJFDQAgACACQQh0IAJBCHZyQf//A3FqIQULIAUvAAAhACADIAE2AhwgA0EANgIQIAMgBUECaiIENgIIIAMgBa1CIIZBnNgVrYQ3AhQgAyAAQQh0IABBCHZyQf//A3EiAjYCDEEAIQUCQANAIAJFDQECQCABKAIMIANBCGoQq0QiBi8AAiIAQQh0IABBCHZyQf//A3FHDQAgBkEEaiEHQQEhAANAIAAgASgCDE8NAyABKAIIIABBAnRqKAIAIQgCQAJAIAAgBi8AAiIJQQh0IAlBCHZyQf//A3FJDQBBkJcYIQkMAQsgAEEBdCAHakF+aiEJCyAAQQFqIQAgCCAJLwAAIglBCHQgCUEIdnJB//8DcUYNAAsLIAMgBUEBaiIFNgIQIAMgAkF/aiICNgIMIAMgBEECaiIENgIIDAALAAsgAkEARyEEDAULAkACQAJAIAAvAAAiAkEIdCACQQh2ckH//wNxQX9qDgMAAQIHC0GQlxghAkGQlxghBAJAIAAvAAIiBUUNACAAIAVBCHQgBUEIdnJB//8DcWohBAsCQCAEIAEoAggoAgAQqkQiBSAALwAEIgRBCHQgBEEIdnJB//8DcU8NACAAIAVBAXRqQQZqIQILAkACQCACLwAAIgINAEGQlxghAAwBCyAAIAJBCHQgAkEIdnJB//8DcWohAAsgA0EAKQOw2RU3AwggACABIANBCGoQrEQhBAwGC0GQlxghBEGQlxghAgJAIAAvAAQiBUUNACAAIAVBCHQgBUEIdnJB//8DcWohAgsCQCACIAEoAggoAgAQ9kMiBiAALwAGIgVBCHQgBUEIdnJB//8DcU8NACAAIAZBAXRqQQhqIQQLAkACQCAELwAAIgQNAEGQlxghAAwBCyAAIARBCHQgBEEIdnJB//8DcWohAAsgAyACNgIMIANB3Qc2AgggACABIANBCGoQrEQhBAwFCyABIAAvAAIiAkEIdCACQQh2ckH//wNxIABBCGpB3gcgABCvRCEEDAQLAkACQAJAIAAvAAAiAkEIdCACQQh2ckH//wNxQX9qDgMAAQIGC0GQlxghAkGQlxghBAJAIAAvAAIiBUUNACAAIAVBCHQgBUEIdnJB//8DcWohBAsCQCAEIAEoAggoAgAQqkQiBSAALwAEIgRBCHQgBEEIdnJB//8DcU8NACAAIAVBAXRqQQZqIQILAkACQCACLwAAIgINAEGQlxghAAwBCyAAIAJBCHQgAkEIdnJB//8DcWohAAsgA0EYakEAKQLI2RU3AwAgA0EQakEAKQLA2RU3AwAgA0EAKQK42RU3AwggACABIANBCGoQsEQhBAwFC0GQlxghAkGQlxghBAJAIAAvAAQiBUUNACAAIAVBCHQgBUEIdnJB//8DcWohBAsCQCAALwAGIgVFDQAgACAFQQh0IAVBCHZyQf//A3FqIQILQZCXGCEFQZCXGCEGAkAgAC8ACCIHRQ0AIAAgB0EIdCAHQQh2ckH//wNxaiEGCwJAIAIgASgCCCgCABD2QyIIIAAvAAoiB0EIdCAHQQh2ckH//wNxTw0AIAAgCEEBdGpBDGohBQsCQAJAIAUvAAAiBQ0AQZCXGCEADAELIAAgBUEIdCAFQQh2ckH//wNxaiEACyADIAY2AhwgAyACNgIYIAMgBDYCFCADQd0HNgIQIANB3Qc2AgwgA0HdBzYCCCAAIAEgA0EIahCwRCEEDAQLAkAgAEECaiAALwACIgJBCHQgAkEIdnIiBUH//wNxQQF0aiICQQJqIAIvAAIiBkEIdCAGQQh2ckH//wNxIgdBAXRqLwACIgZBCHQgBkEIdnIgBXJB//8DcUUNACABLQAQQQFxDQQLIAEgByACQQZqQd4HIAAQr0QhBAwDCyAALwAAQYACRw0CAkACQCAAKAAEIgINAEGQlxghBAwBCyAAIAJBGHQgAkGA/gNxQQh0ciACQQh2QYD+A3EgAkEYdnJyaiEECyAALwACIgBBCHQgAEEIdnJB//8DcSECIAQhAAwACwALIAAvAABBgAJHDQAgASgCDEEBRw0AAkACQCAALwACIgINAEGQlxghAAwBCyAAIAJBCHQgAkEIdnJB//8DcWohAAsgACABKAIIKAIAEKpEQX9HIQQLIANBIGokACAEC5kCAQV/QX8hAgJAAkACQCAALwAAIgNBCHQgA0EIdnJB//8DcUF/ag4CAAECCyAALwACIgJBCHQgAkEIdnJB//8DcSEEIABBBGohBUEAIQADQCAEQX9qIQYDQAJAIAAgBEgNAEF/DwsgACAGaiIDQQF2IQICQCAFIANBfnFqLwAAIgNBCHQgA0EIdnJB//8DcSIDIAFJIAMgAUtrIgNBAE4NACACIQQMAgsgA0UNAyACQQFqIQAMAAsACwALIABBAmogARD3QyIALwAAIgNBCHQgA0EIdnIiBEH//wNxIAAvAAIiA0EIdCADQQh2ckH//wNxSw0AIAEgBEH//wNxayAALwAEIgBBCHQgAEEIdnJB//8DcWohAgsgAgs+AQJ/QZCXGCEBAkAgACgCAEGQlxggACgCBBsvAAAiAkUNACAAKAIQIAJBCHQgAkEIdnJB//8DcWohAQsgAQvdAQEEfyMAQSBrIgMkACADIAE2AgAgAC8AACEEIAMgAq1CIIYgA62ENwIYIAMgAK1CIIZBnNgVrYQ3AhBBACEBIANBADYCDCADIABBAmoiBTYCBCADIARBCHQgBEEIdnJB//8DcSIANgIIAkADQCAARQ0BIAMoAgAgA0EEahCzRCIELwAAIgZBCHQgBkEIdnJB//8DcSAEQQRqIAIoAgAgAigCBBCvRA0BIAMgAUEBaiIBNgIMIAMgAEF/aiIANgIIIAMgBUECaiIFNgIEDAALAAsgA0EgaiQAIABBAEcLDwAgAiAAKAIAEPZDIAFGCyAAIAIgAUH//wNxIgFqQZCXGCABGyAAKAIAEKpEQX9HC5EBAQR/IwBBIGsiBSQAQQAhBgJAIAAoAgwgAUcNACABQQEgAUEBSxshByACQX5qIQhBASEBA0AgASAHRiIGDQEgBSAAKAIIIAFBAnRqKAIANgIMIAFBAXQhAiABQQFqIQEgBUEMaiAIIAJqLwAAIgJBCHQgAkEIdnJB//8DcSAEIAMRBAANAAsLIAVBIGokACAGC7kCAQd/IwBBIGsiAyQAIAMgATYCACAALwAAIQEgAyACrUIghiADrYQ3AhggAyAArUIghkGc2BWthDcCEEEAIQQgA0EANgIMIAMgAEECaiIFNgIEIAMgAUEIdCABQQh2ckH//wNxIgA2AggCQANAIABFDQEgAygCACEGAkACQCADQQRqELFEIgEgAS8AACIBQQh0IAFBCHZyIgdB//8DcUEBdGoiCEECaiAILwACIgFBCHQgAUEIdnJB//8DcSIJQQF0QQIgARtqLwAAIgFBCHQgAUEIdnIgB3JB//8DcUUNACAGLQAQQQFxDQELIAYgCSAIQQRqIAIoAgQgAigCEBCvRA0CCyADIARBAWoiBDYCDCADIABBf2oiADYCCCADIAVBAmoiBTYCBAwACwALIANBIGokACAAQQBHCz4BAn9BkJcYIQECQCAAKAIAQZCXGCAAKAIEGy8AACICRQ0AIAAoAhAgAkEIdCACQQh2ckH//wNxaiEBCyABCwoAIAAoAgAgAUYLPgECf0GQlxghAQJAIAAoAgBBkJcYIAAoAgQbLwAAIgJFDQAgACgCECACQQh0IAJBCHZyQf//A3FqIQELIAELBABBAAsJACAAIAEQi0ULCQAgACABEItFCwQAQQALCQAgACABEIpFCwkAIAAgARCKRQsEAEEACwkAIAAgARCIRQsJACAAIAEQiEULBABBAAsJACAAIAEQh0ULCQAgACABEIdFCy0BAX9BACEBA0ACQCABQYAERw0ADwsgACABakH//wM7AQAgAUECaiEBDAALAAsEAEEACwsAIAAgASACEIBFCwsAIAAgASACEIBFC9MEAQR/AkACQAJAAkAgAC8AACICQQh0IAJBCHZyQf//A3FBf2oOAwABAgMLIAEgASgCCCICQQFqNgIIIAEoAgQgAkEwbGoiAUIANwMYIAFBADYCECABQd8HNgIMIAFB4Ac2AgggAUHhBzYCBCABIAA2AgAgAUEgakIANwMAIAFBKGpCADcDACABQRhqIQICQAJAIAAvAAIiAQ0AQZCXGCEADAELIAAgAUEIdCABQQh2ckH//wNxaiEACyAAIAIQ8kMPC0EAIQMCQCABKAIIIgJBB0sNAEGAAhBeIgNFDQAgAxDMRAsgASACQQFqNgIIIAEoAgQgAkEwbGoiAkIANwMYIAIgAzYCECACQeIHNgIMIAJB4wc2AgggAkHkBzYCBCACIAA2AgAgAkEgakIANwMAIAJBKGpCADcDACACQRhqIQRBkJcYIQJBkJcYIQMCQCAALwACIgVFDQAgACAFQQh0IAVBCHZyQf//A3FqIQMLIAMgBBDyQwJAIAAvAAQiA0UNACAAIANBCHQgA0EIdnJB//8DcWohAgsgAhDQRCIAIAEoAhBNDQEgASAANgIQIAEgASgCCEF/ajYCDA8LIAEgASgCCCICQQFqNgIIIAEoAgQgAkEwbGoiAUIANwMYIAFBADYCECABQeUHNgIMIAFB5gc2AgggAUHnBzYCBCABIAA2AgAgAUEgakIANwMAIAFB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QQBHIQUgBEUNASAEQX9qIQQgA0EYaiEGIAEoAmAiACgCVCAAKAJEQRRsaigCACEHQQAhAAJAAkADQCAAQQNGDQEgAEEDdCECIABBAnQhCCAAQQFqIQAgBiACaikDACAHIAhBkNgVaigCAHZBP3GtiEIBg1BFDQAMAgsACyADKAIAIAEgAygCECADKAIEEQQADQILIANBMGohAwwACwALIAULFwAgAEHQAWoQg0EgAEHkAGoQ+xEaIAALRwEDf0EAIQICQANAAkAgAiIDQQNHDQBBAyEDDAILIANBAWohAiABIANBA3QiBGopAwAgACAEaikDAINCAFINAAsLIANBAksLZAEDfyAAQgA3A5ABIABBoAFqQgA3AwAgAEGYAWpCADcDACAAQZABaiEBIAAoAkghAiAAKAJUIQNBACEAAkADQCAAIAJGDQEgASADKAIAEPNDIABBAWohACADQRRqIQMMAAsACwvZAgEKfwJAAkAgASgCHCICQX9HDQBBACEDDAELIABBACABIAJBMGxqQSxqKAIAEQIAIQMLIAAoAmAhBCAAQZgBaiEFAkADQCAELQBAQQFHDQEgBCgCRCEGIAQoAlQhBwJAA0AgBiAEKAJITw0BIAcgBkEUbGoiCCgCACEJQQAhAgJAAkADQCACQQNGDQEgAkEDdCEKIAJBAnQhCyACQQFqIQIgASAKaikDACAJIAtBkNgVaigCAHZBP3GtiEIBg1BFDQAMAgsACyAAKAKsASAIKAIEcUUNACAFKAIAIAggACgCtAEQ6kQNAgsgBkEBaiEGDAALAAsCQCAGIAQoAkQiAk0NACAEIAYgAmsQr0BFDQIgBCgCRCECCyACIAQoAkhPDQEgASAAIAMQkkUNACAEEIRFGgwACwALAkAgA0UNACAAQQEgASABKAIcQTBsakEsaigCABECABoLC7gBAQN/IAAgATYCBCABKAJgKAJIIQMgAEEANgIgIAAgAzYCJCAAQgA3AhggACABKAK0ATYCCEEBIQQCQCABKAJUIgNBAUYiBQ0AIAJFDQAgAS0AvQEhBQsgACAFQQFxOgAQQX8hBQJAIAINACABKAKsASEFIAEtAL4BIQQLIAAgBDoAESAAIAU2AgwgACADQQFGOgASQQAhAgJAIAMNACABLQC/ASECCyAAQQA6ABQgACACQQFxOgATC5YCAQd/IwBB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CHQgAkEIdnJB//8DcWohAAsgACADEPJDDwsgAC8AAEGAAkcNBSABIAEoAggiAkEBajYCCCABKAIEIAJBMGxqIgJCADcDGCACQQA2AhAgAkGHCDYCDCACQYgINgIIIAJBiQg2AgQgAiAANgIAIAJBIGpCADcDACACQShqQgA3AwAgAkEYaiEDAkACQCAALwACIgINAEGQlxghAAwBCyAAIAJBCHQgAkEIdnJB//8DcWohAAsgACADEPJDDwsgAC8AAEGAAkcNBCABIAEoAggiAkEBajYCCCABKAIEIAJBMGxqIgJCADcDGCACQQA2AhAgAkGKCDYCDCACQYsINgIIIAJBjAg2AgQgAiAANgIAIAJBIGpCADcDACACQShqQgA3AwAgAkEYaiEDAkACQCAALwACIgINAEGQlxghAAwBCyAAIAJBCHQgAkEIdnJB//8DcWohAAsgACADEPJDDwsgACABEMVEDwsgAC8AAEGAAkcNAgJAAkAgACgABCICDQBBkJcYIQMMAQsgACACQRh0IAJBgP4DcUEIdHIgAkEIdkGA/gNxIAJBGHZycmohAwsgAC8AAiIAQQh0IABBCHZyQf//A3EhAiADIQAMAAsACyAAIAEQxEQLCwQAQQALCQAgACABEMNFCwkAIAAgARDDRQsEAEEACwkAIAAgARDCRQsJACAAIAEQwkULBABBAAsLACAAIAEgAhDBRQsLACAAIAEgAhDBRQsEAEEACwsAIAAgASACEL1FCwsAIAAgASACEL1FCwQAQQALCQAgACABELtFCwkAIAAgARC7RQsEAEEACwkAIAAgARC6RQsJACAAIAEQukULBABBAAsJACAAIAEQuUULCQAgACABELlFCwQAQQALCQAgACABELNFCwkAIAAgARCzRQuuBAEKfyMAQRBrIgIkACABKAJgIQMCQAJAIAAvAAIiBA0AQZCXGCEFDAELIAAgBEEIdCAEQQh2ckH//wNxaiEFC0EAIQQCQCAFIAMoAlQgAygCRCIGQRRsaigCABCqRCIFQX9GDQAgASAGNgIEIAEgASgCtAFBcXE2AgwCQCABQQRqIgQgAkEMahDjRA0AIAMgAigCDCADKAJEQQFqEOJEQQAhBAwBCyADKAJEIQYCQCADKAJUIgcgBCgCACIEQRRsaiIILQAMQQhxDQAgAyAEIAZBAWoQ4kRBACEE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CyAJQRRsIQIgACgCDCELAkAgBUUNACADQShqIAEgC0EUbGpBACAJa0EUbGogAhBLGgsCQCAIIAlGDQAgBCAJQRRsaiAEIAhBFGxqIAsgCiAMamtBFGwQiQEaCwJAIAVFDQAgASAAKAIIQRRsaiADQShqIAIQSxoLAkAgDQ0AIAEgACgCDEEUbGpBACAIa0EUbGogAyAGEEsaCwJAIAdBA0cNACADQRBqIgggASAAKAIMQRRsaiIEQWxqIgJBEGoiCSgCADYCACADIAIpAgA3AwAgAyACQQhqIgcpAgA3AwggAiAEQVhqIgQpAgA3AgAgByAEQQhqKQIANwIAIAkgBEEQaigCADYCACABIAAoAgxBFGxqQVhqIgIgAykDADcCACACQRBqIAgoAgA2AgAgAkEIaiADKQMINwIACyAFQQNHDQAgA0EQaiIEIAEgACgCCEEUbGoiAkEQaiIFKAIANgIAIAMgAikCADcDACADIAJBCGoiCCkCADcDCCACIAJBFGopAgA3AgAgCCACQRxqKQIANwIAIAUgAkEkaigCADYCACABIAAoAghBFGxqIgBBJGogBCgCADYCACAAQRxqIAMpAwg3AgAgAEEUaiADKQMANwIACyADQdAAaiQAC5ABAQF/AkAgAkUNACACIAFB/wFxQQF0ai8BACIDQf//A0YNACADIAFzQf8BSw0AIANB/wFxDwsCQCABQf//A0cNAEECDwsgACAALwACIgNBCHQgA0EIdnJB//8DcWogARDJRiEAAkAgAkUNACABQf//A0sNACACIAFB/wFxQQF0aiAAIAFBgP4DcXI7AQALIAALwwMBA38CQAJAIAEoAkQiAyABKAJIRw0AIAAtAAxBAUcNAQsCQCAAKAIUIgRB/////wMgASgCVCAAKAIQQRRsaigCACACLwAEIgVBCHQgBUEIdnJB//8DcWpBAXQiBSAEIAAoAghrIgRrQQF2IAUgBEkbQQF0aiIFIAAoAgQiBCgCGGsgBCgCIEsNACAEKAIcIAVrQQJJDQAgASgCRCEDIAUvAABFDQAgASAAKAIQIANBAWoiAyABKAJIIgQgAyAESRsQtEAgACgCBCAAKAIQIAUvAAAiA0EIdCADQQh2ckH//wNxELhGIABBAToAACABKAJEIQMLAkAgACgCFCIEQf////8DIAEoAlQgAyABKAJIQX9q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ASABQQFqIg4gBk8NAiARQQFqIRFBACENIAogDkEUbGoiFC0AEkEPRw0DA0ACQCANQQJHDQAgAiAFIAFBAmoiDRCzQCADQRhqQRBqIhMgEkEQaigCADYCACADQRhqQQhqIhEgEkEIaikCADcDACADIBIpAgA3AxggA0EQaiISIBRBEGooAgA2AgAgA0EIaiIVIBRBCGopAgA3AwAgAyAUKQIANwMAIBAgCyABIAVrQRRsEIkBGiALQRBqIBMoAgA2AgAgC0EIaiARKQMANwIAIAsgAykDGDcCACAPQRBqIBIoAgA2AgAgD0EIaiAVKQMANwIAIA8gAykDADcCAAJAIAwoAhBFDQADQCANIAZGDQEgCiANQRRsaiIBIAEoAgQgDCgCEHI2AgQgDUEBaiENDAALAAtBAiERDAULIBIgDUEUbGpBBGoiEyATKAIAIAwoAgByNgIAIA1BAWohDQwACwALIAkoAgAhCiAHKAIAIQEMBAsgAUEBaiEOIA1BFkcNACACIAUgDhCzQCADQRhqQRBqIg0gEkEQaigCADYCACADQRhqQQhqIhQgEkEIaikCADcDACADIBIpAgA3AxggDyALIAEgBWtBFGwQiQEaIAtBEGogDSgCADYCACALQQhqIBQpAwA3AgAgCyADKQMYNwIADAALAAsACyACIAItAKgBQb8BcToAqAEgA0EwaiQAIAQPCyAGIQUgASAKIAYQp0chBgwACwshACAAQRhqIgBB59KxmwZBAUEBEJwhIABB4c6l4wYQ/UYLewEFfwJAQQFBJBBkIgFFDQBBACECIABBMGohAyAAQSxqIQQDQCACQQlGDQFBACEAAkAgAkEDdCIFQcS+FmotAABBAXENACAEKAIAIAMoAgAgBUHAvhZqKAIAEKohIQALIAEgAkECdGogADYCACACQQFqIQIMAAsACyABCwYAIAAQYAuxAQACQAJAAkACQAJAAkAgAUHCUGoOCAABAgUFBQMEBQsgAkHBLzYCACADQb4vNgIAQQEPCyACQcEvNgIAIANBvy82AgBBAQ8LIAJBwS82AgAgA0HALzYCAEEBDwsgAkHBLzYCACADQcQvNgIAQQEPCyACQcEvNgIAIANBxS82AgBBAQ8LIAAoAgwhACACIAE2AgAgA0EANgIAIAAgASACIAMgACgCPCAAKAIkEQwAQQBHC10BAn8C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gD9eG0MAAIA/kkMAAP9ClCARQwAAgL9dGyIRQwAAgE9dIBFDAAAAAGBxRQ0AIBGpIQUMAQtBACEFCyAAIANqIAU6AAAgB0IBfCEHDAALAAsgBEICiCEIQQAoApjKHSEDQgAhCSAGQX9qIQtCACEHA0ACQCAJIAhSDQAgBkF/aiEGA0AgByAEWg0GIAIgB6ciAUECdGoqAgAhEEMAAAAAIRECQAJAAkAgBg4CAAECC0EAIANBj/kCbEH/////B28iAzYCmModIAO3RAAAwP///99Bo7ZDgACAOJRDAAAAuJIhEQwBC0EAIANBj/kCbEH/////B28iBUGP+QJsQf////8HbyIDNgKYyh0gBbdEAADA////30GjtkMAAAA4lEMAAAC4kiADt0QAAMD////fQaO2QwABADiUQwAAAACSkiERCwJAAkBDAP7/xkMAAIA/IBAgEZIiESARQwAAgD9eG0MA/v9GlCARQwAAgL9dGyIRi0MAAABPXUUNACARqCEFDAELQYCAgIB4IQULIAAgAUEBdGogBTsBACAHQgF8IQcMAAsAC0MAAAAAIRBDAAAAACERQwAAAAAhEkMAAAAAIRMCQAJAAkAgCw4CAAECC0EAIANBj/kCbEH/////B28iAUGP+QJsQf////8HbyIFQY/5AmxB/////wdvIgpBj/kCbEH/////B28iAzYCmModIAG3RAAAwP///99Bo7ZDgACAOJRDAAAAuJIhESAFt0QAAMD////fQaO2Q4AAgDiUQwAAALiSIRIgCrdEAADA////30GjtkOAAIA4lEMAAAC4kiEQIAO3RAAAwP///99Bo7ZDgACAOJRDAAAAuJIhEwwBC0EAIANBj/kCbEH/////B28iAUGP+QJsQf////8HbyIFQY/5AmxB/////wdvIgpBj/kCbEH/////B28iDEGP+QJsQf////8HbyINQY/5AmxB/////wdvIg5Bj/kCbEH/////B28iD0GP+QJsQf////8HbyIDNgKYyh0gAbdEAADA////30GjtkMAAAA4lEMAAAC4kiAFt0QAAMD////fQaO2QwABADiUQwAAAACSkiERIAq3RAAAwP///99Bo7ZDAAAAOJRDAAAAuJIgDLdEAADA////30GjtkMAAQA4lEMAAAAAkpIhEiANt0QAAMD////fQaO2QwAAADiUQwAAALiS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BiAEbGogBSAHIAhrIgYgBSAGSRsiBq0gCSAKEJJIIAAgACgCoBggBmoiCDYCoBggACgCnBghBwsgCCAHRw0AIAAoAgRBA0YNACAAQQAgACgCmBggByAAKAIQEQgAIABBADYCoBgLIAAoAgQhCAJAAkACQCABRQ0AAkAgACgC2A0iB0UNACABIAAoArgHIglBAnRBkJobaigCACAAKAK8ByIKbCILIARsaiAAKALQDSALIAAoAtQNIAdrbGogBiAFIAcgBSAHSRsgCEEDRhsiBq0gCSAKEJJIIAAgACgC2A0iBSAGazYC2A0gACgCBCEIIAUgBkcNAQsgCEEDRg0BIAAgACgC0A1BACAAKALUDRCTSCAAIAAoAtQNNgLYDSAAKAIEIQgLIAhBA0cNAQsgACgCoBgiCCAAKAKcGEcNACAAIAAoAtANIAAoApgYIAgQk0ggAEEANgKgGCAAIAAoAtQNNgLYDQsgBiAEaiEEDAALAAsgACABIAIgAxCTSAsLVwMBfgF/AX1CACEDAkADQCADIAJRDQEgACADp0ECdCIEakMAAIC/QwAAgD8gASAEaioCACIFIAVDAACAP14bIAVDAACAv10bOAIAIANCAXwhAwwACwALC5QBAQF+AkACQCACQQFHDQAgA60gAX4hBEIAIQEDQCABIARRDQIgACABp2pBgAE6AAAgAUIBfCEBDAALAAsgAkECdEGQmhtqKAIAIANsrSABfiEBA0AgAVANASABQv////8PIAFC/////w9UGyIEpyECAkAgAEUNACAAQQAgAhBIGgsgACACaiEAIAEgBH0hAQwACwALC0MBAX9BfiEDAkAgAkUNACACQgA3AwAgAEUNAAJAIAAtAOMBRQ0AIABB0ABqIAEgAhCLSA8LIAIgATcDAEEAIQMLIAMLhgECAX4BfwJAIABFDQAgAUUNAAJAIANDAACAP1sNAEIAIQQDQCAEIAJRDQIgACAEp0ECdCIFaiABIAVqKgIAIAOUOAIAIARCAXwhBAwACwALIAAgAUYNAEIAIQQDQCAEIAJRDQEgACAEp0ECdCIFaiABIAVqKgIAOAIAIARCAXwhBAwACwALC2MBAX4CQCAAIAFGDQAgA0ECdEGQmhtqKAIAIARsrSACfiECA0AgAlANASAAIAEgAkL/////DyACQv////8PVBsiBaciBBBLIQAg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IAEoAlQRBAAaDAILAkAgASgCXEEUQQAgBBEEAEUNACADIAEpA7ABIgYgBkIBg3wgASgC3AEgASgC4AEQm0mtfELIAHwiBkL/////DyAGQv////8PVBs3AwggASgCXCADQQhqQQggASgCVBEEABoLIAEoAlxBHEEAIAEoAlgRBABFDQEgAyABKQOwATcDCCABKAJcIANBCGpBCCABKAJUEQQAGgwBCyABKALcASABQeAAahCDSQsCQCABKAJQQbMIRg0AIAEoAlRB0AhHDQELIAEoAlwQlUkLIAEgAhDoCiADQRBqJAALiAIBA38jAEEQayIEJAAgACgClAMhBQJAAkAgACgCkAMiBkUNACAEQQA2AgwCQCADRQ0AIANBADYCAAtBfiEAIAVFDQEgAUUNAQJAIAYoAgwiAA0AQWMhAAwCCyAGIAUgASACIARBDGogABEMACEAIAQoAgwhBQJAIANFDQAgAyAFNgIACyAAQW8gACAFchsgACACGyEADAELAkAgA0UNACADQQA2AgALQX4hACAFRQ0AIAFFDQAgASACIAUQlkkhAQJAIANFDQAgAyABNgIAC0EAIQAgASACRg0AAkAgAQ0AQW8hACAFEJpKDQELIAUQm0pBAnRByIMcaigCACEACyAEQRBqJAAgAAs7AQJ/AkACQCAAKAJMQX9KDQAgACgCACEBDAELIAAQRiECIAAoAgAhASACRQ0AIAAQRwsgAUEEdkEBcQs7AQJ/AkACQCAAKAJMQX9KDQAgACgCACEBDAELIAAQRiECIAAoAgAhASACRQ0AIAAQRwsgAUEFdkEBcQsNACAAIAEgAiADEJ0OCwkAIAAgARCfDgsRACAAIAEgAiADIAQgBRChDgssAQF/QX4hAgJAIAFFDQAgAUIANwMAIABFDQAgASAAKQNYNwMAQQAhAgsgAgsJACAAIAEQpA4LSwEBfyMAQSBrIgMkAAJAAkAgAg0AQX4hAQwBCyACQQA2AgAgACABIANBCGoQpkoiAQ0AIAIgAygCCDYCAEEAIQELIANBIGokACABC/wEAQR/IwBBIGsiBCQAAkACQCADRQ0AIANBAEGAAhBIIQMgACABIARBCGoQpkoiBQ0BIAMgAjYC+AECQCACRQ0AIAQoAggiBUUNACACQQAgBRBIGgsgAyAANgIAIAMgASgCADYCBCABKAIEIQUg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NgIIC00AAkAgACABQQJ0aigCACIBELpKRQ0AIAAgAkECdGooAgAiARC6SkUNACAAKAIYIgEQukpFDQAgACgCICEAIAMgACAAELpKGyEBCyABCzoCAX8BfUEAIQECQCAAQfDhg/wHRg0AIABBj568/AdGDQAgAEGq1ar9B0YNACAAviICIAJcIQELIAELOgACQCAAIAFBAnRqKAIAIgEQukpFDQAgACgCHCIBELpKRQ0AIAAoAiAhACACIAAgABC6ShshAQsgAQtUAQF/IABB0ABqIQAgAUECdEGkihxqKAIAIQMCQAJAIAFBfnFBAkcNACAAQQQgA0GPnrz8BxC5SiEBDAELIAAgA0GPnrz8BxC7SiEBCyABIAIQkgoLVAEBfyAAQdAAaiEAIAFBAnRBtIocaigCACEDAkACQCABQX5xQQJHDQAgAEEFIANBj568/AcQuUohAQwBCyAAIANBj568/AcQu0ohAQsgASACEJIKC1UBAX8gAEHQAGohACABQQJ0QaSKHGooAgAhAgJAAkAgAUF+cUECRw0AIABBBCACQYCAgP4HELlKIQEMAQsgACACQYCAgP4HELtKIQELIAEQukpBAXMLVQEBfyAAQdAAaiEAIAFBAnRBtIocaigCACECAkACQCABQX5xQQJHDQAgAEEFIAJBgICA/gcQuUohAQwBCyAAIAJBgICA/gcQu0ohAQsgARC6SkEBcwtTAQF/IABBLGohACABQQJ0QaSKHGooAgAhAwJAAkAgAUF+cUECRw0AIABBBCADQY+evPwHELlKIQEMAQsgACADQY+evPwHELtKIQELIAEgAhDBSgskAQF9QwAAAAAhAgJAIABBqtWq/QdGDQAgACABEJIKIQILIAILUwEBfyAAQSxqIQAgAUECdEG0ihxqKAIAIQMCQAJAIAFBfnFBAkcNACAAQQUgA0GPnrz8BxC5SiEBDAELIAAgA0GPnrz8BxC7SiEBCyABIAIQwUoLUQACQAJAAkAgAUF+cUECRw0AIAAoArwBIgEQukoNAQwCCyAAKALAASIBELpKRQ0BCyAAKALEASEAQY+evPwHIAAgABC6ShshAQsgASACEJIKCz0BAX8jAEEQayIDJAACQCABDQAgAyACNgIAIAAgAyADIAMgAxClJCAAIAAtAARBgAFyOgAECyADQRBqJAALOAACQCACQYCA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EL8oIABBAhDGKBDlS0EBC10BBX8jAEEQayIBJAAgAEEBEL8oIQIgAEECEL8oIQMgAEEDIAFBDGoQ7UshBCAAIAJBfiABKAIMQX9qdEF/cyIFIAR0QX9zcSADIAVxIAR0chC+KCABQRBqJABBAQsTACAAQQAgAEECEMYoaxDvS0EBCxoAIAAgAEEBEL8oQQAgAEECEMYoaxDlS0EBC0sBA39BACEBIABBARC/KCECA39BICEDAkACQCABQSBGDQAgAiABdEGAgICAeHFFDQEgASEDCyAAIAMQvihBAQ8LIAFBAWohAQwACwtHAQN/QQAhASAAQQEQvyghAgN/QSAhAwJAAkAgAUEgRg0AIAIgAXZBAXFFDQEgASEDCyAAIAMQvihBAQ8LIAFBAWohAQwACwszAQF/IAAgAEEBEL8oIgFBGHQgAUGA/gNxQQh0ciABQQh2QYD+A3EgAUEYdnJyEL4oQQELHQAgAEHFkxFB8IwcQeCOHEEALQCImh4bEIouQQELKwEBfwJAIABBARDGKCIBQX9KDQAgAEEBQfmyERCqSwALIAAgARDbLRpBAQs/AQJ/IwBBEGsiASQAIAFBADYCDCAAQQEgAUEMahCwKCECIAAgASgCDBDbLSACIAEoAgwQSxogAUEQaiQAQQELMwEBfyMAQRBrIgEkACABQQA2AgwgACAAQQEgAUEMahDTLSABKAIMEKgSIAFBEGokAEEBC1kBA38jAEEQayIBJAAgAUEANgIMIABBASABQQxqENMtIQICQCAAQQIQxigiAyABKAIMSQ0AIABBw4gRQQAQsigACyAAIAIgA2osAAC3ELooIAFBEGokAEEBC1kBA38jAEEQayIBJAAgAUEANgIMIABBASABQQxqENMtIQICQCAAQQIQxigiAyABKAIMSQ0AIABBw4gRQQAQsigACyAAIAIgA2otAAC4ELooIAFBEGokAEEBC10BA38jAEEQayIBJAAgAUEANgIMIABBASABQQxqENMtIQICQCAAQQIQxigiA61CAnwgATUCDFgNACAAQcOIEUEAELIoAAsgACACIANqLgAAtxC6KCABQRBqJABBAQtdAQN/IwBBEGsiASQAIAFBADYCDCAAQQEgAUEMahDTLSECAkAgAEECEMYoIgOtQgJ8IAE1AgxYDQAgAEHDiBFBABCyKAALIAAgAiADai8A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sigACyACIANqIAQ3AAAgAUEQaiQAQQALnAIAAkACQAJAIAEtAABBQ2oOBAACAgECCyABQQFqIQECQCACQYECTw0AIAEPCyAAIAFB/wEQSyIAQQA6AP8BIAAPCwJAIAJBgAJLDQAgAUEBag8LIABBAmpBAC0AnvMROgAAIABBAC8AnPMROwAAIABBA2ogASACakGEfmpB/AEQSxogAEH/AWpBADoAACAADwsgAUHH/REQkk0hAiAAQQhqQQAvAJ39ETsAACAAQQApAJX9ETcAAAJAAkAgASACQfEBIAJB8QFJGyICai0AAEUNACAAIAEgAhCTTSEBIAEgARBZakGu3LgBNgAADAELIAAgARCUTRoLIAAgABBZaiIBQQAvAJfdETsAACABQQJqQQAtAJndEToAACAAC4kBAQN/QQAhAQJAAkBBAC0AoKQeQQFHDQAgACgCDCECIAAoAhAiA0UNASADIAAoAgwoAgwiAEYNASADIABrQQJ1QX9qIQEMAQsgACgCBCgCACgCECECIAAoAhAiA0UNACADIAAoAgQoAgAoAhAoAgwiAEYNACADIABrQQJ1QX9qIQELIAIgARCWTAswAQF/AkAgACgCICICDQBBAA8LIAAoAiQgASAAKAJgdUECdGooAgAgAiABai0AAGoLLAEBfyMAQRBrIgMkACADIAAgARCYTDYCBCADIAI2AgAgAEHVtREgAxD3LQALDAAgACABEKxLQRRqC5UBAQN/IwBBIGsiAiQAAkACQCAAKAIUIgMoAgQiBCgCDEEIRw0AIAQoAgAiBC0AAw0AIANBDGogBEEQakEALQCgpB4bKAIAKAIwIQQgAxCVTCEDIAIgATYCCCACIAM2AgQgAiAEQRRqNgIAIABByowRIAIQsRIMAQsgAiABNgIQIABB1IwRIAJBEGoQsRILIAJBIGokAAssAQF/IwBBEGsiAyQAIAMgACABEJhMNgIEIAMgAjYCACAAQZH1ESADEPctAAs1AQF/IwBBEGsiAyQAIAAgARCYTCEBIAMgACACEJhMNgIEIAMgATYCACAAQa6KESADEPctAAt/AQJ/IwBBIGsiBCQAIAAgARCsSyIBQRRqIQUgA0ECdEGAphxqKAIAQQJqIQMCQCABIAAgAhCsSyICRw0AIAQgBTYCBCAEIAM2AgAgAEHpiREgBBD3LQALIAQgBTYC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oiACQeC/HGorAwChIAChoSIAmiAAIAFCAFMbIQALIAALEQAgACAAQQEQuyibELooQQELEwAgACAAQQEQuygQ3UwQuihBAQulAQIBfgF8AkACQCAAmSIAvSIBQv////+fyIvzP1YNAEQAAAAAAADwPyECIAFCgICAgICAgKg+VA0BIAAQt08iACAAoiAARAAAAAAAAPA/oCIAIACgo0QAAAAAAADwP6APCwJAIAFC/////5/Ii8PAAFYNACAAEEEiAEQAAAAAAADwPyAAo6BEAAAAAAAA4D+iDwsgAEQAAAAAAADwPxC4TyECCyACCxMAIAAgAEEBELsoEN9MELooQQEL1QECAn8BfCMAQRBrIgEkAAJAAkAgAL1CIIinQf////8HcSICQfvDpP8DSw0ARAAAAAAAAPA/IQMgAkGewZryA0kNASAARAAAAAAAAAAAEJNaIQMMAQsCQCACQYCAwP8HSQ0AIAAgAKEhAwwBCyAAIAEQ+U8hAiABKwMIIQAgASsDACEDAkACQAJAAkAgAkEDcQ4EAAECAwALIAMgABCTWiEDDAMLIAMgAEEBEJJamiEDDAILIAMgABCTWpohAwwBCyADIABBARCSWiEDCyABQRBqJAAgAwsaACAAIABBARC7KEQ5nVKiRt+RP6MQuihBAQsSACAAIABBARC7KBBBELooQQELEQAgACAAQQEQuyicELooQQELGgAgACAAQQEQuyggAEECELsoEIoBELooQQELNAEBfyMAQRBrIgEkACAAIABBARC7KCABQQxqEOVMELooIAAgASgCDBDvJyABQRBqJABBAguPAQIBfgF/AkAgAL0iAkI0iKdB/w9xIgNB/w9GDQACQCADDQACQAJAIABEAAAAAAAAAABiDQBBACEDDAELIABEAAAAAAAA8EOiIAEQ5UwhACABKAIAQUBqIQMLIAEgAzYCACAADwsgASADQYJ4ajYCACACQv////////+HgH+DQoCAgICAgIDwP4S/IQALIAALEgAgACAAQQEQuyi2uxC6KEEBCxkAIAAgAEEBELsoIABBAhDGKBBOELooQQELEgAgACAAQQEQuygQfBC6KEEBC5cBAgJ8An8gAEEBELsoIQECQAJAAkAgACgCDCIDQRBqIgQgACgCCE8NACAEQbC/HEYNACADQRxqKAIAQQBKDQELIAEQeCEBDAELAkAgAEECELsoIgJEAAAAAAAAAEBiDQAgARB6IQEMAQsCQCACRAAAAAAAACRAYg0AIAEQfCEBDAELIAEQeCACEHijIQELIAAgARC6KEEBC2MCAn8CfCAAKAIIIAAoAgxrQQR1IgFBASABQQFKG0EBaiECQQIhASAAQQEQuyghAwJAA0AgASACRg0BIAAgARC7KCIEIAMgBCADZBshAyABQQFqIQEMAAsACyAAIAMQuihBAQtjAgJ/AnwgACgCCCAAKAIMa0EEdSIBQQEgAUEBShtBAWohAkECIQEgAEEBELsoIQMCQANAIAEgAkYNASAAIAEQuygiBCADIAQgA2MbIQMgAUEBaiEBDAALAAsgACADELooQQELOgIBfwF8IwBBEGsiASQAIABBARC7KCABQQhqEO1MIQIgACABKwMIELooIAAgAhC6KCABQRBqJABBAgvMAQICfgJ/IAC9IgJCNIinQf8PcSIEQYF4aiEFAkACQCAEQbMISQ0AIAEgADkDAAJAIAJC/////////weDUA0AIAVBgAhGDQILIAJCgICAgICAgICAf4O/DwsCQCAEQf4HSw0AIAEgAkKAgICAgICAgIB/gzcDACAADwsCQCACIAWtIgOGQv////////8Hg0IAUg0AIAEgADkDACACQoCAgICAgICAgH+Dvw8LIAFCgICAgICAgHggA4cgAoMiAjcDACAAIAK/oSEACyAACxkAIAAgAEEBELsoIABBAhC7KBB/ELooQQELGgAgACAAQQEQuyhEOZ1SokbfkT+iELooQQEL+gEBA38gACgCECEBAkACQAJAAkACQAJAAkACQCAAKAIIIAAoAgxrQQR1DgMDAAECCyAAQQEQxigiAkEATA0EIAAgAUGQBWoQ0UytIAKtfkIgiKdBAWoQ7ycMAwsgAEEBEMYoIQIgAEECEMYoIgMgAkgNBCADIAJrIgNBf0YNBSAAIAIgAUGQBWoQ0UytIANBAWqtfkIgiKdqEO8nDAILIABBnIIRQQAQsigACyABQZAFaiIBENFMIQIgACABENFMrUIghiACrYS6QUAQThC6KAtBAQ8LIABBAUH36BAQqksACyAAQQJB9+gQEKpLAAsgAEECQZPFERCqSwALHgEBfyAAQQEQxighASAAKAIQQZAFaiABrBDQTEEACxMAIAAgAEEBELsoEPNMELooQQEL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CyAAQQJB7pQRELYoAAsgAEEDQe6UERC2KAALTAEDfCAAQQEQuyghAQJAIABBAhC7KCICIABBAxC7KCIDZQ0AIABBA0GxoBEQqksACyAAIAMgAiABIAEgAmMbIgEgASADZBsQuihBAQtHAQF8IABEAAAAAAAA8D9EAAAAAAAA8L9EAAAAAAAAAAAgAEEBELsoIgFEAAAAAAAAAABjGyABRAAAAAAAAAAAZBsQuihBAQsTACAAIABBARC7KBD+TBC6KEEBC68BAwF+AX8BfAJAIAC9IgFCNIinQf8PcSICQbIISw0AAkAgAkH9B0sNACAARAAAAAAAAAAAog8LAkACQCAAmSIARAAAAAAAADBDoEQAAAAAAAAww6AgAKEiA0QAAAAAAADgP2RFDQAgACADoEQAAAAAAADwv6AhAAwBCyAAIAOgIQAgA0QAAAAAAADgv2VFDQAgAEQAAAAAAADwP6AhAAsgAJogACABQgBTGyEACyAAC0YBBHwgAEEBELsoIQEgAEECELsoIQIgAEEDELsoIQMgACAAQQQQuygiBCABIAKhIABBBRC7KCAEoaIgAyACoaOgELooQQELPAECfCAAQQEQuyghASAAIABBAhC7KCICIAEgAiABoSAAQQMQuygiAqKgIAJEAAAAAAAA8D9hGxC6KEEBCxcBAXwgACAAQQEQuygiASABYhCzKEEBCxsAIAAgAEEBELsomUQAAAAAAADwf2EQsyhBAQspACAAIABBARC7KL1C////////////AINCgICAgICAgPj/AFMQsyhBAQuXAwEDf0EAQQA2AsyjHkGomh5BAEGgARBIIQBByJseQf8BQYEIEEgaQQghAQNAAkAgAUE/TQ0AQcAAIQEDQAJAIAFB/wFNDQBBgAIhAQNAAkAgAUH/A00NAEGABCECQQAhAQNAAkAgAkGACE0NAANAAkAgAUEAKALMox5IDQBB/wchAQJAA0AgAUEASA0BAkAgAUHImx5qIgIsAABBf0oNACACIAFByZseai0AADoAAAsgAUF/aiEBDAALAAsPCyABQQJ0QaiaHmooAgBByJseaiABOgAAIAFBAWohAQwACwALQQBBACgCzKMeIgBBAWo2AsyjHiAAQQJ0QaiaHmogAjYCACACQcAAaiECDAALAAtBAEEAKALMox4iAkEBajYCzKMeIAJBAnRBqJoe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CwsgACAAKAIAQQFqNgIAIANBEGokACAKDwsgACgCEEGAnBFBABCyKAALIAVBgu0QQQAQsigAC5MBAAJAIAAoAhQgAUoNACAAKAIQIQACQCABDQAgACACIAMgAmsQqBIPCyAAQantEEEAELIoAAsgACABQQN0aiIBQRhqIQMgACgCECECAkACQAJAIAFBHGooAgAiAUECag4CAQACCyACQbe7EUEAELIoAAsgAiADKAIAIAAoAgRrQQFqEO8nDwsgAiADKAIAIAEQqBILVwEDfyAAKAIQIAAoAhQiA0EBIAMbIAMgARsiBEGphxEQr0tBACEDIARBACAEQQBKGyEFAkADQCADIAVGDQEgACADIAEgAhCrTSADQQFqIQMMAAsACyAECy0BAX8jAEEQayIBJAAgAEEBIAFBDGoQsCgaIAAgASgCDBDvJyABQRBqJABBAQt7AQR/IwBBoARrIgEkACAAQQEgAUGcBGoQsCghAkEAIQMgACABQQxqIAEoApwEEL1LIQADfwJAIAMgASgCnAQiBEkNACABQQxqIAQQwUsgAUGgBGokAEEBDwsgACACIANqLQAAEK9NOgAAIANBAWohAyAAQQFqIQAMAAsLEwAgAEEgciAAIABBv39qQRpJGwsJACAAQQAQpE0L5QEBBX8jAEGgBGsiASQAIABBASABQZwEahCwKCECAkACQAJAIABBAhDGKCIDQQBKDQAgAEHnjRJBABCoEgwBCyABKAKcBCIEQYCAgIAEIANuSw0BIAAgAUEMaiAEIANsEL1LIAIgASgCnAQiABBLIQUgACADbCABKAKcBCIEayECIAUgBGohBAJAA0AgAiAATQ0BIAIgAGshAiAEIAUgABBLIABqIQQgAEEBdCEADAALAAsgBCAFIAIQSxogAUEMaiABKAKcBCADbBDBSwsgAUGgBGokAEEBDwsgAEG6xRFBABCyKAALfgEEfyMAQaAEayIBJAAgAEEBIAFBnARqELAoIQIgACABQQxqIAEoApwEEL1LIQACQANAIAEgASgCnAQiA0F/aiIENgKcBCADRQ0BIAAgAiAEai0AADoAACAAQQFqIQAMAAsACyABQQxqIAAgASgCDGsQwUsgAUGgBGokAEEBC6sBAQZ/IwBBEGsiASQAIABBASABQQxqELAoIQIgAEECEMYoIQMgASgCDCEEAkACQCAA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BiACG2ogATwAACADQQEgA0EBShshB0EBIQgCQANAIAggB0YNASAFIAggBiAIayACG2ogAUIIiCIBPAAAIAhBAWohCAwACwALAkAgA0EJSA0AIARFDQBBCCEIA0AgCCADRg0BIAUgCCAGIAhrIAIbakH/AToAACAIQQFqIQgMAAsACyAAIAUgAxC3SyAFQRBqJAALaAACQAJAIANBAUcNAANAIAJFDQIgACABLQAAOgAAIABBAWohACABQQFqIQEgAkF/aiECDAALAAsgACACaiEAA0AgAkUNASAAQX9qIgAgAS0AADoAACABQQFqIQEgAkF/aiECDAALAAsLvQEBA38jAEEgayIBJABBACECIABBAUEAELAoIQMgAUKBgICAEDcCGCABIAA2AhQgASADNgIQAkACQAJAA0AgAy0AAEUNASABQRRqIAIgAUEQaiABQQxqIAFBCGoQuE1BempBfk8NAiACQYCAgIAEIAEoAgwgASgCCGoiA2tKDQMgAyACaiECIAEoAhAhAwwACwALIAAgAhDvJyABQSBqJABBAQ8LIABBAUG3gBEQqksACyAAQQFB38QREKpLAAvSBAMIfwF8AX4jAEHQAGsiASQAIAEgAEEBQQAQsCgiAjYCQCAAQQIgAUE8ahCwKCEDAkACQAJAAkAgAEEDQQEQqi0iBCAEQR91IAEoAjwiBUEBanFqIgRBASAEQQFKG0F/aiIEIAVLDQAgAUKBgICAEDcCSCABIAA2AkRBACEGAkADQCACLQAARQ0BIAFBxABqIAQgAUHAAGogAUE4aiABQTRqELhNIQUgASgCOCICIAEoAjQiB2ogASgCPCAEa0sNAyAAQQJByoIREK9LIAZBAWohCCAHIARqIQQCQAJAAkACQAJAAkACQAJAIAUOCQABAgMEBQcHBwALIAAgACADIARqIAEoAkggAkEBEL1NuRC6KAwFCyAAIAAgAyAEaiABKAJIIAJBABC9TboQuigMBAsgAUEIaiADIARqIAIgASgCSBC6TQJAAkACQCACQXxqDgUAAQEBAQELIAEqAgi7IQkMAQsgASsDCCEJCyAAIAkQuigMAwsgACADIARqIAIQqBIMAgsgACADIARqIgcgASgCSCACQQAQvU0hCiABKAI8IAQgAmprIAqnIgVJDQcgACAHIAJqIAUQqBIgBCAFaiEEDAELIAMgBGoiBRBZIgcgBGoiBCABKAI8Tw0HIAAgBSAHEKgSIARBAWohBAsgCCEGCyAEIAJqIQQgASgCQCECDAALAAsgACAEQQFqEO8nIAFB0ABqJAAgBkEBag8LIABBA0GGrhEQqksACyAAQQJBgfQQEKpLAAsgAEECQYH0EBCqSwALIABBAkG4+REQqksAC94BAgR/An4jAEEQayIFJABCACEJIANBCCADQQhIGyIGIQcCQANAIAdBAUgNASADIAdrIQggCUIIhiABIAdBf2oiByAIIAIbajEAAIQhCQwACwALAkACQCADQQdKDQAgBEUNASAJQgEgA0EDdEF/aq2GIgqFIAp9IQkMAQsgA0EIRg0AQQBB/wEgCUJ/VRtBACAEGyEIA0AgBiADRg0BIAYgBkF/cyADaiACGyEHIAZBAWohBiAIIAEgB2otAABGDQALIAUgAzYCACAAQYSTESAFELIoAAsgBUEQaiQAIAkLtgQBBH8jAEEQayIDJABBASEEIAEgASgCACIFQQFqNgIAIAUtAAAhBiACQQA2AgBBBSEFAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBkGef2oOGQEQCxQKFAMNBxQFFAwUFBQUDxQUFBQRFBgAC0EEIQUCQCAGQURqDhEWFhUUFBQCFBQUFBQEDggUBgALAkAgBkFgag4CFxMACyAGQax/ag4FCBMTExETCyACQQE2AgBBACEFDBYLQQEhBSACQQE2AgAMFQsgAkECNgIAQQAhBQwUCyACQQI2AgBBASEFDBMLIAJBCDYCAEEAIQUMEgsgAkEINgIAQQEhBQwRCyACQQQ2AgBBACEFDBALIAJBBDYCAEEBIQUMDwsgAkEENgIAQQEhBQwOCyACQQQ2AgBBAiEFDA0LIAJBCDYCAEECIQUMDAsgAkEINgIAQQIhBQwLCyACIAAgAUEEEL9NNgIAQQAhBQwKCyACIAAgAUEEEL9NNgIAQQEhBQwJC0EEIQUgAiAAIAFBBBC/TTYCAAwICyACIAAgAUF/EMBNIgE2AgBBAyEFIAFBf0cNByAAKAIAQZz8EUEAELIoAAsgAkEBNgIAQQYhBQwGC0EHIQUMBQtBCCEFIAAgAUEIEL9NIQQMAgsgACgCACEBIAMgBsA2AgAgAUG//BEgAxCyKAALQQAhBAsgACAFaiAENgIAC0EIIQULIANBEGokACAFC00BAX8jAEEQayIDJAACQCAAIAEgAhDATSICQW9qQW9LDQAgACgCACEAIANBEDYCBCADIAI2AgAgAEHF3BEgAxCyKAALIANBEGokACACC4MBAQN/AkAgASgCACIDLAAAQUZqQXZJDQBBACECAkADQCABIANBAWoiBDYCACACQQpsIAMsAABqQVBqIQIgAywAAUFQaiIFQQlLDQEgBCEDIAJBzJmz5gBIDQALCwJAIAJBgICAgARKDQAgBUEJSw0BCyAAKAIAQffEEUEAELIoAAsgAgsYACAAIABBoPMREJJNaiIAQQAgAC0AABsLaAECfwJAIAAoAhQiBEEgTg0AIAAgBEEDdGoiBUEcaiADNgIAIAVBGGogATYCACAAIARBAWo2AhQCQCAAIAEgAhCqTSIBDQAgACAAKAIUQX9qNgIUCyABDwsgACgCEEGphxFBABCyKAALvwEBBH8gAUEBaiECAkACQAJAAkAgAS0AACIDQdsARg0AIANBJUcNASACIAAoAgxGDQIgAUECag8LIAFBAmogAiABLQABQd4ARhshASAAKAIMIQIDQCABIAJGDQMgAUECQQEgAS0AAEElRiABQQFqIgMgAklxIgQbaiEFIAFBAmogAyAEGyIDIQEgBS0AAEHdAEcNAAsgA0EBaiECCyACDwsgACgCEEGV+RFBABCyKAALIAAoAhBB9fgRQQAQsigAC2EBAX9BACEEAkAgACABTQ0AIAEtAAAhAAJAAkAgAi0AACIBQdsARg0AAkAgAUEuRw0AQQEPCyABQSVHDQEgACACLQABEMZNDwsgACACIANBf2oQxU0PCyABIABGIQQLIAQLmwEBBX8gAUEBaiABIAEtAAEiA0HeAEYiBBshASADQd4ARyEFAkADQCABQQFqIgYgAk8NASABLQACIQMCQAJAIAEtAAEiB0ElRw0AIAFBAmohASAAIAMQxk1FDQIMAQsCQCADQS1HDQAgAUEDaiIBIAJPDQAgByAASg0CIAEtAAAgAEkNAgwBCyAGIQEgByAARw0BCwsgBSEECyAEC8IBAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEQr01Bn39qDhoLCgABCgoCCgoKCgMKCgoECgoFCgYKBwgKCQoLIAAQx00hAAwLCyAAQVBqQQpJIQAMCgsgABDITSEADAkLIAAQyU0hAAwICyAAEMpNIQAMBwsgABDNHSEADAYLIAAQy00hAAwFCyAAEMxNIQAMBAsgABDNTSEADAMLIABFIQAMAgsgASAARg8LIAAQzk0hAAsgARDJTSAAc0EBcwsOACAAQSBJIABB/wBGcgsLACAAQV9qQd4ASQsLACAAQZ9/akEaSQsiAQF/QQAhAQJAIABBX2pB3QBLDQAgABDMTUEBcyEBCyABCwsAIABBv39qQRpJCxcAIABBUGpBCkkgAEEgckGff2pBGklyCxcAIABBUGpBCkkgAEEgckGff2pBBklyCw4AIABBIHJBn39qQRpJC2QCAX4CfyABIAK9IgNCIIinQf////8HcSIEQRJ2IAOnc0GV08feBWwiBUEWdiAEc0GV08feBWwiBEERdiAFc0GV08feBWxBE3YgBHNBldPH3gVsQX8gAEH/AXF0QX9zcUEFdGoLOwAgASACQRB2IAJzQeuUr694bCICQQ12IAJzQbXcypV8bCICQRB2IAJzQX8gAEH/AXF0QX9zcUEFdGoLMwEBf0EAIQMCQCABKAIYQZCkHEYNAEEBIAEtAAZ0IQMLIAAgASABIAJBABDSTSADEMZMC5cBAgJ/AXxBASEDAkAgACgCGEGQpBxHDQAgACgCCCABSiEDC0F/IQQCQCACRQ0AIAIoAgxBA0cNAAJAAkAgAisDACIFmUQAAAAAAADgQWNFDQAgBaohBAwBC0GAgICAeCEECyAEQX8gBSAEt2EbIQQLA0AgASICQQFqIgEgBEYNAAJAIANFDQAgACABEJhLKAIMDQELCyACC5ABAQJ/AkACQAJAIAJBgYCAIE4NACACQf////8ASw0BIAEgACABKAIUIAEoAghBBHQgAkEEdCABLQACEKJMIgM2AhQgASgCCCIAIAIgACACShshBANAIAAgBEYNAyADIABBBHRqQQA2AgwgAEEBaiEADAALAAsgAEHc7xBBABD3LQALIAAQpksACyABIAI2AggLuwEBAn8CQAJAIAINACABQZCkHDYCGEEAIQNBACEEDAELAkACQCACQX9qEI1NIgJBGk4NACACQQFqIgNBGksNAUEBIAN0IQQgASAAQSAgA3QgAS0AAhDJTDYCGEEAIQIDQCACIARGDQMgASgCGCACQQV0aiIAQQA2Agwg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GksNASACIABBICADdCIDIAItAAIQyUwiADYCGCACIAEtAAY6AAYgAiABLQAHOgAHIAAgASgCGCADEEsaIAIgASgCDDYCDAsgAg8LIAAQpksACy4AIABBycMRQbCkHBCKLiAAQd8IQcqoEUEAQQAQmxIgAEHusX9ByqgREJ8SQQELxAIBBn8gAEEBQQcQ+C0gACgCDCgCACEBIABBAkEBEKotIQICQAJAAkAgACgCDCIDQSBqIgQgACgCCE8NACAEQbC/HEYNACADQSxqKAIAQQBKDQELIABBARCALiEEDAELIABBAxDGKCEEC0EAIQUCQAJAIAQgAkgNACAEIAJrIgNB/v///wdLDQEgACADQQFqIgUQrxJFDQECQCACQQFHDQAgAyABKAIITg0AQQAhAgJAA0AgAiAERg0BIAAoAgggAkEEdCIDaiIGIAEoAhQgA2oiAykDADcDACAGQQhqIANBCGopAwA3AwAgAkEBaiECDAALAAsgACAAKAIIIAVBBHRqNgIIIAUPCwJAA0AgAiAERg0BIABBASACEMsnGiACQQFqIQIMAAsACyAAQQEgBBDLJxoLIAUPCyAAQbaoEUEAELIoAAuiAgEIfyMAQaAEayIBJAAgAEECQeeNEiABQZwEahCtSyECIABBAUEHEPgtIABBA0EBEKotIQMCQAJAAkAgACgCDCIEQTBqIgUgACgCCE8NACAFQbC/HEYNACAEQTxqKAIAQQBKDQELIABBARCALiEGDAELIABBBBDGKCEGCyAAKAIMKAIAIQcgAUEANgIYIAEgADYCFCABIAFBnARqNgIQIAEgAUEcajYCDCADIAYgAyAGShshCCADIQUCQANAIAUgCEYNASAAIAFBDGogBSAHEN9NAkAgASgCnAQiBEUNACABQQxqIAIgBBC3SwsgBUEBaiEFDAALAAsCQCAGIANIDQAgACABQQxqIAYgBxDfTQsgAUEMahC7SyABQaAEaiQAQQELmgEBAn8jAEEQayIEJAACQAJAIANFDQAgAkF/aiIFIAMoAghPDQAgAygCFCAFQQR0aiIDKAIMQQZHDQAgASADKAIAIgNBFGogAygCEBC3SwwBCwJAAkAgAEEBIAIQyydBfWoOBAEAAAEACyAAQX8Qs0shAyAEIAI2AgQgBCADNgIAIABBt/oRIAQQsigACyABEL5LCyAEQRBq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ApwEEMVMIgwNAiALLQADIQwLIAxBAXENACALQQAgAEEQaigCACgCkAQQxUwiC0UNACALKAIMQQdHDQACQCALKAIAIgsoAhggCkEYdiALLQAHcSILQQV0aiIKKAIcQQ9xQQZHDQAgCigCECAJKAIARw0AIAooAgxFDQAgCCAGKQMANwMQIAhBGGogBkEIaikDADcDACAIIAopAwA3AwAgCEEIaiAKQQhqKQMANwMADAMLIAggBikDADcDECAIQRhqIAZBCGopAwA3AwAgACALNgI0IAAoAhQgAjYCECAAIAYgCSAIEJRLIAAoAgwhBSAHQQNqIAAtADQ6AAAgBSANQQR0aiIHKAIMDQIgACAHQRBqIAkoAgAQoEwACwJAQQAtAMSkHkEBRw0AIAYoAgxBDUcNACAJKAIAIQsCQCAKQRh2Ig4gBigCACIKKAIIIgwoAiRODQAgCyAMKAIUIA5BAnRqKAIARw0AIAggBikDADcDECAIQRhqIAZBCGopAwA3AwACQAJAIA4gCigCCCIHKAIgIgZODQAgCigCECAOQQR0aiEHDAELIAcoAgwgDiAGa0EEdGohBwsgCCAHKQMANwMAIAhBCGogB0EIaikDADcDAAwDCyAMKAIQIgxBBmotAAAgDEEYaigCACALEJVLIgsoAgxFDTUgCysDACETIAggBikDADcDECAIQRhqIAZBCGopAwA3AwACQAJAIBOZRAAAAAAAAOBBY0UNACATqiEGDAELQYCAgIB4IQYLAkACQCAGIAooAggiCSgCICILTg0AIAooAhAgBkEEdGohCgwBCyAJKAIMIAYgC2tBBHRqIQoLIAggCikDADcDACAIQQhqIApBCGopAwA3AwAgB0EDaiAGOgAADAILIAggBikDADcDECAIQRhqIAZBCGopAwA3AwAgACgCFCACNgIQIAAgBiAJIAgQlEsgACgCDCIFIA1BBHRqIgcoAgwNASAAIAdBEGogCSgCABCgTAALIAggBikDADcDECAIQRhqIAZBCGopAwA3AwAgCCAMKQMANwMAIAhBCGogDEEIaikDADcDACAAIAkoAgA2AkQLIAIhB0EBIQZBAC0A7KMeDVILIAAoAhQhCAJAIABBEGooAgAoArwFIgJFDQAgCCAHNgIQIAAoAhQiBSAFKAIQQQRqNgIQIABBfyACEQMAIAAoAhQhCCAA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IAEQ61ALBwAgAEEBdgsJACAAIAEQ7FALCQAgACABEO1QCwkAIAAgARDvUAsJACAAIAEQ7lALBwAgACABSQsSACAAIAAoAgAgAUECdGo2AgALCgAgASAAa0ECdQs3ACAAQcTlHDYCACAAEKJSIABBHGoQpAcaIAAoAiAQYCAAKAIkEGAgACgCMBBgIAAoAjwQYCAACwoAIAAQpgcQpAELAgALBAAgAAsKACAAQn8Q9VAaCxIAIAAgATcDCCAAQgA3AwAgAAsKACAAQn8Q9VAaCwQAQQALBABBAAvDAQEEfyMAQRBrIgMkAEEAIQQCQANAIAIgBEwNAQJAAkAgACgCDCIFIAAoAhAiBk8NACADQf////8HNgIMIAMgBiAFazYCCCADIAIgBGs2AgQgASAFIANBDGogA0EIaiADQQRqEPpQEPpQKAIAIgYQ+1AhASAAIAYQ/FAgASAGaiEBDAELIAAgACgCACgCKBEAACIGQX9GDQIgASAGEP1QOgAAQQEhBiABQQFqIQELIAYgBGohBAwACwALIANBEGokACAECwkAIAAgARCEUQsNACABIAIgABCFUSAACw8AIAAgACgCDCABajYCDAsFACAAwAsEAEF/CzgBAX9BfyEBAkAgACAAKAIAKAIkEQAAQX9GDQAgACAAKAIMIgFBAWo2AgwgASwAABCAUSEBCyABCwgAIABB/wFxCwQAQX8LsQEBBH8jAEEQayIDJABBACEEAkADQCACIARMDQECQCAAKAIYIgUgACgCHCIGSQ0AIAAgASwAABCAUSAAKAIAKAI0EQIAQX9GDQIgBEEBaiEEIAFBAWohAQwBCyADIAYgBWs2AgwgAyACIARrNgIIIAUgASADQQxqIANBCGoQ+lAoAgAiBhD7UBogACAGIAAoAhhqNgIYIAYgBGohBCABIAZqIQEMAAsACyADQRBqJAAgBAsEAEF/CxQAIAEgACABKAIAIAAoAgAQmlEbCw8AIAAgACABaiACEIZRGgsrAQF/IwBBEGsiAyQAIANBCGogACABIAIQh1EgAygCDCECIANBEGokACACCw0AIAAgASACIAMQiFELDQAgACABIAIgAxCJUQtbAQF/IwBBIGsiBCQAIARBGGogASACEIpRIARBEGogBCgCGCAEKAIcIAMQi1EgASAEKAIQEIxRIQEgBCADIAQoAhQQjVE2AgwgACABIARBDGoQjlEgBEEgaiQACwsAIAAgASACEI9RCw0AIAAgASACIAMQkFELCQAgACABEJFRCwkAIAAgARCSUQsMACAAIAEgAhCTURoLKAEBfyMAQRBrIgMkACADIAI2AgwgACABIANBDGoQmVEaIANBEGokAAs2AQJ/IwBBEGsiBCQAIAQgAyABIAIgAWsiBRCWUSAFajYCDCAAIAIgBEEMahCXUSAEQRBqJAALCQAgACABEJRRCwQAIAELFQAgACABNgIAIAAgAigCADYCBCAACwkAIAAgARCVUQsEACABCxYAAkAgAkUNACAAIAEgAhCJARoLIAALDAAgACABIAIQmFEaCxUAIAAgATYCACAAIAIoAgA2AgQgAAsVACAAIAE2AgAgACACKAIANgIEIAALBwAgACABSAscAQF/EK9ZIABBACgCqLEeIgE2AgAgARCxWSAACw0AIABBCGoQmQcaIAALCgAgABCcURCkAQsTACAAIAAoAgBBdGooAgBqEJxRCxMAIAAgACgCAEF0aigCAGoQnVELBwAgABChUQsFACAARQt9AQJ/IwBBEGsiASQAAkAgACAAKAIAQXRqKAIAakEYaigCAEUNAAJAIAFBCGogABCbByICLQAAEKNRRQ0AIAAgACgCAEF0aigCAGpBGGooAgAQpFFBf0cNACAAIAAoAgBBdGooAgBqQQEQpVELIAIQnwcaCyABQRBqJAAgAAsHACAAQQFxCw8AIAAgACgCACgCGBEAAAsJACAAIAEQngcLCQAgACABEKdRCxAAIAAQqFEgARCoUXNBAXMLLgEBfwJAIAAoAgAiAUUNAAJAIAEQqVEQqlENACAAKAIARQ8LIABBADYCAAtBAQssAQF/AkAgACgCDCIBIAAoAhBHDQAgACAAKAIAKAIkEQAADwsgASwAABCAUQsHACAAQX9GCycBAX9BACEDAkAgAkEASA0AIAAgAkECdGooAgAgAXFBAEchAwsgAwsIACAAEKlRwAsNACAAKAIAEK5RGiAACzYBAX8CQCAAKAIMIgEgACgCEEcNACAAIAAoAgAoAigRAAAPCyAAIAFBAWo2AgwgASwAABCAUQs/AQF/AkAgACgCGCICIAAoAhxHDQAgACABEIBRIAAoAgAoAjQRAgAPCyAAIAJBAWo2AhggAiABOgAAIAEQgFELCwAgAEH8rh4QpQcLHQAgACABIAEoAgBBdGooAgBqQRhqKAIANgIAIAALBQAgAEULFwAgACABIAIgAyAEIAAoAgAoAhARDAALFwAgACABIAIgAyAEIAAoAgAoAiARUwALJwEBfwJAIAAoAgAiAkUNACACIAEQr1EQqlFFDQAgAEEANgIACyAACw0AIAEgAiAAELdRIAALEQAgACAAIAFBAnRqIAIQuFELIgEBfyMAQRBrIgMkACADQQhqIAAgASACELlRIANBEGokAAsNACAAIAEgAiADELpRCw0AIAAgASACIAMQu1ELWwEBfyMAQSBrIgQkACAEQRhqIAEgAhC8USAEQRBqIAQoAhggBCgCHCADEL1RIAEgBCgCEBC+USEBIAQgAyAEKAIUEL9RNgIMIAAgASAEQQxqEMBRIARBIGokAAsLACAAIAEgAhDBUQsNACAAIAEgAiADEMJRCwkAIAAgARDDUQsJACAAIAEQxFELDAAgACABIAIQxVEaCygBAX8jAEEQayIDJAAgAyACNgIMIAAgASADQQxqEMtRGiADQRBqJAALOQECfyMAQRBrIgQkACAEIAMgASACIAFrIgVBAnUQyFEgBWo2AgwgACACIARBDGoQyVEgBEEQaiQACwkAIAAgARDGUQsEACABCxUAIAAgATYCACAAIAIoAgA2AgQgAAsJACAAIAEQx1ELBAAgAQsZAAJAIAJFDQAgACABIAJBAnQQiQEaCyAACwwAIAAgASACEMpRGgsVACAAIAE2AgAgACACKAIANgIEIAALFQAgACABNgIAIAAgAigCADYCBCAACwsAIABBtLEeEKUHCwkAIAAgARDOUQsQACAAEM9RIAEQz1FzQQFzCy4BAX8CQCAAKAIAIgFFDQACQCABENBRENFRDQAgACgCAEUPCyAAQQA2AgALQQELKQEBfwJAIAAoAgwiASAAKAIQRw0AIAAgACgCACgCJBEAAA8LIAEoAgALBwAgAEF/RgsTACAAIAEgAiAAKAIAKAIMEQQACwcAIAAQ0FELDQAgACgCABDVURogAAszAQF/AkAgACgCDCIBIAAoAhBHDQAgACAAKAIAKAIoEQAADwsgACABQQRqNgIMIAEoAgALOQEBfwJAIAAoAhgiAiAAKAIcRw0AIAAgASAAKAIAKAI0EQIADwsgACACQQRqNgIYIAIgATYCACABCycB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USAFIQALAkADQCABIAJGDQEgACABLQAAEPFRIABBAWohACABQQFqIQEMAAsACyAAQQAQ8VEgBEEQaiQADwsQ8lEACwcAIAEgAGsLQgECf0EAIQMDfwJAIAEgAkcNACADDwsgA0EEdCABLAAAaiIDQYCAgIB/cSIEQRh2IARyIANzIQMgAUEBaiEBDAALCwQAIAALBwAgABCkAQtXAQN/AkACQANAIAMgBEYNAUF/IQUgASACRg0CIAEoAgAiBiADKAIAIgdIDQICQCAHIAZODQBBAQ8LIANBBGohAyABQQRqIQEMAAsACyABIAJHIQULIAULDAAgACACIAMQuFIaCw0AIAAgASACELlSIAALEgAgACABIAIgASACELpSELtSCwkAIAAgARC8UgueAQECfyMAQRBrIgQkAAJAIANB+P///wNPDQACQAJAIAMQvVJFDQAgACADEL5SDAELIARBCGogAxC/UkEBahDAUiAAIAQoAggiBRDBUiAAIAQoAgwQwlIgACADEMNSIAUhAAsCQANAIAEgAkYNASAAIAEoAgAQxFIgAEEEaiEAIAFBBGohAQwACwALIABBABDEUiAEQRBqJAAPCxDFUgALCgAgASAAa0ECdQsHACAAQQJJCw0AIAAgAUH/AHE6AAsLLQEBf0EBIQECQCAAQQJJDQAgAEEBahDGUiIAIABBf2oiACAAQQJGGyEBCyABCxkBAX8gARDHUiECIAAgATYCBCAAIAI2AgALCQAgACABNgIACxAAIAAgAUGAgICAeHI2AggLCQAgACABNgIECwkAIAAgATYCAAsGABDzUQALCgAgAEEBakF+cQscAAJAIABBgICAgARJDQAQqAcACyAAQQJ0EPZRC0IBAn9BACEDA38CQCABIAJHDQAgAw8LIAEoAgAgA0EEdGoiA0GAgICAf3EiBEEYdiAEciADcyEDIAFBBGohAQwACwuBAgEBfyMAQSBrIgYkACAGIAE2AhwCQAJAIAMtAARBAXENACAGQX82AgAgACABIAIgAyAEIAYgACgCACgCEBEGACEBAkACQAJAIAYoAgAOAgABAgsgBUEAOgAADAMLIAVBAToAAAwCCyAFQQE6AAAgBEEENgIADAELIAYgAygCHBCiByAGKAIAEKMHIQEgBhCkBxogBiADKAIcEKIHIAYoAgAQylIhAyAGEKQHGiAG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Cw8AIAAgACgCACgCEBEAAAsRACAAIAEgASgCACgCFBEDAAsQACAAIAAgASACEP5SEJRRCz4BAX8CQEEALQCAsB5FDQBBACgC/K8eDwtB/////wdB/+MRQQAQ/VIhAEEAQQE6AICwHkEAIAA2AvyvHiAACwsAIAAgASACEPdPCwkAIAAgARD7UgsJACAAIAEQ/FILLAACQCAAIAFGDQADQCAAIAFBfGoiAU8NASAAIAEQ0FAgAEEEaiEADAALAAsLCwAgACABIAIQw1kLFgAgACACwCABIABrEMsLIgAgASAAGwsXACABIAIgAygCBCADKAIcIAQgBRCAUwu5AwECfyMAQeABayIGJAAgBiABNgLYASAGIAA2AtwBIAIQ71IhByAGQcgBaiADIAZB1wFqEPBSIAZBvAFqENlRIQEgASABEPxRENENIAYgAUEAEPFSIgA2ArgBIAYgBkEQajYCDCAGQQA2AggCQANAIAZB3AFqIAZB2AFqEKZRDQECQCAGKAK4ASAAIAEoAgQgAS0ACxD9USICakcNACABIAJBAXQQ0Q0gASABEPxRENENIAYgAUEAEPFSIgAgAmo2ArgBCyAGKALcARCsUSAHIAAgBkG4AWogBkEIaiAGLADXASAGKALMASAGLQDTASAGQRBqIAZBDGpB8OUcEPJSDQEgBkHcAWoQrVEaDAALAAsCQCAGKALMASAGLQDTARD9UUUNACAGKAIMIgIgBkEQamtBnwFKDQAgBiACQQRqNgIMIAIgBigCCDYCAAsgBSAAIAYoArgBIAQgBxCBUzcDACAGQcgBaiAGQRBqIAYoAgwgBBD0UgJAIAZB3AFqIAZB2AFqEKZRRQ0AIAQgBCgCAEECcjYCAAsgBigC3AEhACABEIIGGiAGQcgBahCCBhogBkHgAWokACAAC7gBAgN/AX4jAEEQayIEJAACQAJAAkAgACABRg0AED4iBSgCACEGIAVBADYCABD4UhogACAEQQxqIAMQ+VIhBwJAAkAgBSgCACIARQ0AIAQoAgwgAUcNASAAQcQARw0EIAJBBDYCAEL///////////8AQoCAgICAgICAgH8gB0IAVRshBwwECyAFIAY2AgAgBCgCDCABRg0DCyACQQQ2AgAMAQsgAkEENgIAC0IAIQcLIARBEGokACAHCxcAIAEgAiADKAIEIAMoAhwgBCAF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aiABENBVIAYgCkEEahDfURogCkEEahCCBhogARDRVSEBCyAJIAE2AgAgCkEQaiQACxYAIAAgASgCABCuUcAgASgCABDSVRoLCwAgACABNgIAIAALDAAgACABENNVQQFzCxEAIAAgACgCAEEBajYCACAACwcAIAAgAWsLDAAgAEEAIAFrENRVCwsAIAAgASACENVVC7cBAQZ/IwBBEGsiAyQAIAEoAgAhBAJAQQAgACgCACIFIAAQ1lUoAgBB6QhGIgYbIAIoAgAgBWsiB0EBdCIIQQEgCEEBSxtBfyAHQf////8HSRsiBxBhIghFDQACQCAGDQAgABDXVRoLIANB5wg2AgQgACADQQhqIAggA0EEahD7UyIIENhVIQAgCBD/UxogASAAKAIAIAQgBWtqNgIAIAIgACgCACAHajYCACADQRBqJAAPCxDVUgALvQEBBn8jAEEQayIDJAAgASgCACEEAkBBACAAKAIAIgUgABDZVSgCAEHpCEYiBhtBBCACKAIAIgcgBWsiCEEBdCAHIAVGQQFxG0F/IAhB/////wdJGyIHEGEiCEUNAAJAIAYNACAAENpVGgsgA0HnCDYCBCAAIANBCGogCCADQQRqELNVIggQ21UhACAIEL5VGiABIAAoAgAgBCAFa2o2AgAgAiAAKAIAIAdBfHFqNgIAIANBEGokAA8LENVSAAsLACAAQQAQ3FUgAAsZACAAIAEQ4VUiAUEEaiACKAIAEKhSGiABCwsAIABBtK8eEKUHCxEAIAAgASABKAIAKAIsEQMACxEAIAAgASABKAIAKAIgEQMACxEAIAAgASABKAIAKAIcEQMACw8AIAAgACgCACgCDBEAAAsPACAAIAAoAgAoAhARAAALEQAgACABIAEoAgAoAhQRAwALEQAgACABIAEoAgAoAhgRAwALDwAgACAAKAIAKAIkEQAACwsAIABBrK8eEKUHCxEAIAAgASABKAIAKAIsEQMACxEAIAAgASABKAIAKAIgEQMACxEAIAAgASABKAIAKAIcEQMACw8AIAAgACgCACgCDBEAAAsPACAAIAAoAgAoAhARAAALEQAgACABIAEoAgAoAhQRAwALEQAgACABIAEoAgAoAhgRAwALDwAgACAAKAIAKAIkEQAACxIAIAAgAjYCBCAAIAE6AAAgAAsHACAAIAFGCywBAX8jAEEQayIC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ahD4VRogCkEEahCwUxogAyABEINWNgIAIAQgARCEVjYCACAKQQRqIAEQhVYgBSAKQQRqEN9RGiAKQQRqEIIGGiAKQQRqIAEQhlYgBiAKQQRqEPhVGiAKQQRqELBTGiABEIdWIQELIAkgATYCACAKQRBqJAALFQAgACABKAIAENVRIAEoAgAQiFYaC5QBAQJ/AkACQAJAAkACQCAALQALIgIQtlNFDQAgACgCBCICIAAoAggQt1NBf2oiA0YNAQwCC0EBIQMgAhC8UyICQQFHDQILIAAgA0EBIAMgAxCSViADIQILIAAoAgAhAyAAIAJBAWoQw1IMAQsgACACQQFqEL5SIAAhAwsgAyACQQJ0aiIAIAEQxFIgAEEEakEAEMRSCwcAIAAQjVQLCwAgACABNgIAIAALDAAgACABEIlWQQFzCxEAIAAgACgCAEEEajYCACAACwoAIAAgAWtBAnULDAAgAEEAIAFrEIpWCwsAIAAgASACEItWC70BAQZ/IwBBEGsiAyQAIAEoAgAhBAJAQQAgACgCACIFIAAQjFYoAgBB6QhGIgYbQQQgAigCACIHIAVrIghBAXQgByAFRkEBcRtBfyAIQf////8HSRsiBxBhIghFDQACQCAGDQAgABCNVhoLIANB5wg2AgQgACADQQhqIAggA0EEahCnVCIIEI5WIQAgCBCqVBogASAAKAIAIAQgBWtqNgIAIAIgACgCACAHQXxxajYCACADQRBqJAAPCxDVUgALCwAgAEHErx4QpQcLEQAgACABIAEoAgAoAiwRAwALEQAgACABIAEoAgAoAiARAwALCwAgACABEJRWIAALEQAgACABIAEoAgAoAhwRAwALDwAgACAAKAIAKAIMEQAACw8AIAAgACgCACgCEBEAAAsRACAAIAEgASgCACgCFBEDAAsRACAAIAEgASgCACgCGBEDAAsPACAAIAAoAgAoAiQRAAALCwAgAEG8rx4QpQcLEQAgACABIAEoAgAoAiwRAwALEQAgACABIAEoAgAoAiARAwALEQAgACABIAEoAgAoAhwRAwALDwAgACAAKAIAKAIMEQAACw8AIAAgACgCACgCEBEAAAsRACAAIAEgASgCACgCFBEDAAsRACAAIAEgASgCACgCGBEDAAsPACAAIAAoAgAoAiQRAAALEgAgACACNgIEIAAgATYCACAACwcA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QRBqJAALowYBCX8gAiAANgIAIANBgARxIQ9BACEQA0ACQCAQQQRHDQACQCANKAIEIA0tAAsQ/VFBAU0NACACIA0QqlZBARCrViANEKxWIAIoAgAQrVY2AgALAkAgA0GwAXEiEUEQRg0AAkAgEUEgRw0AIAIoAgAhAAsgASAANgIACw8LAkACQAJAAkACQAJAIAggEGotAAAOBQABAwIEBQsgASACKAIANgIADAQLIAEgAigCADYCACAGQSAQn1IhESACIAIoAgAiEkEBajYCACASIBE6AAAMAwsgDSgCBCANLQALENRSDQIgDUEAENNSLQAAIREgAiACKAIAIhJBAWo2AgAgEiAROgAADAILIAwoAgQgDC0ACxDUUiERIA9FDQEgEQ0BIAIgDBCqViAMEKxWIAIoAgAQrVY2AgAMAQsgBigCCCESIAIoAgAhEyAEIAdqIgQhEQJAA0AgESAFTw0BIBJBwAAgESwAABCrUUUNASARQQFqIREMAAsACyAOIRICQCAOQQFIDQACQANAIBEgBE0NASASQQBGDQEgEkF/aiESIBFBf2oiES0AACEUIAIgAigCACIVQQFqNgIAIBUgFDoAAAwACwALAkACQCASDQBBACEVDAELIAZBMBCfUiEVCwJAA0AgAiACKAIAIhRBAWo2AgAgEkEBSA0BIBQgFToAACASQX9qIRIMAAsACyAUIAk6AAALAkACQCARIARHDQAgBkEwEJ9SIREgAiACKAIAIhJBAWo2AgAgEiAROgAADAELQX8hFgJAIAsoAgQgCy0ACxDUUg0AIAtBABDTUiwAACEWC0EAIRJBACEXA0AgESAERg0BAkACQCASIBZGDQAgEiEUDAELIAIgAigCACIUQQFqNgIAIBQgCjoAAEEAIRQCQCAXQQFqIhcgCygCBCALLQALEP1RSQ0AIBIhFgwBC0F/IRYgCyAXENNSLQAAQf8ARg0AIAsgFxDTUiwAACEWCyARQX9qIhEtAAAhEiACIAIoAgAiFUEBajYCACAVIBI6AAAgFEEBaiESDAALAAsgEyACKAIAEO9TCyAQQQFqIRAMAAsACwcAIABBAEcLEQAgACABIAEoAgAoAigRAwALEQAgACABIAEoAgAoAigRAwALCgAgABCZUhCuVgssAQF/IwBBEGsiAiQAIAIgADYCDCACQQxqIAEQsFYoAgAhACACQRBqJAAgAAsYACAAEJlSIAAoAgQgAC0ACxD9UWoQrlYLKwEBfyMAQRBrIgMkACADQQhqIAAgASACEK9WIAMoAgwhAiADQRBqJAAgAgslAQF/IwBBEGsiASQAIAFBDGogABC7VigCACEAIAFBEGokACAACw0AIAAgASACIAMQsVYLEQAgACAAKAIAIAFqNgIAIAALDQAgACABIAIgAxCyVgtbAQF/IwBBIGsiBCQAIARBGGogASACELNWIARBEGogBCgCGCAEKAIcIAMQi1EgASAEKAIQELRWIQEgBCADIAQoAhQQjVE2AgwgACABIARBDGoQtVYgBEEgaiQACwsAIAAgASACELZWCwkAIAAgARC3VgsMACAAIAEgAhC4VhoLKAEBfyMAQRBrIgMkACADIAI2AgwgACABIANBDGoQmVEaIANBEGokAAsJACAAIAEQuVYLFQAgACABNgIAIAAgAigCADYCBCAACwkAIAAgARC6VgsMACAAIAEgAGsQq1YLCwAgACABNgIAIAAL5AMBCn8jAEGwAWsiBiQAIAZBrAFqIAMoAhwQogcgBigCrAEQowchB0EAIQgCQCAFKAIEIAUtAAsQ/VFFDQAgBUEAENNSLQAAIAdBLRCfUkH/AXFGIQgLIAZBmAFqENlRIQkgBkGMAWoQ2VEhCiAGQYABahDZUSELIAIgCCAGKAKsASAGQagBaiAGQacBaiAGQaYBaiAJIAogCyAGQfwAahClViAGQecINgIQIAZBCGpBACAGQRBqEPtTIQwCQAJAIAUoAgQgBS0ACxD9USINIAYoAnwiAkwNACALKAIEIAstAAsQ/VEgDSACa0EBdGogCigCBCAKLQALEP1RakEBaiEODAELIAsoAgQgCy0ACxD9USAKKAIEIAotAAsQ/VFqQQJqIQ4LIAZBEGohDwJAAkAgDiACaiIOQeUASQ0AIAwgDhBeEP1TIAwoAgAiD0UNASAFKAIEIAUtAAsQ/VEhDQsgDyAGQQRqIAYgAygCBCAFEJhSIgUgBSANaiAHIAggBkGoAWogBiwApwEgBiwApgEgCSAKIAsgAhCmViABIA8gBigCBCAGKAIAIAMgBBCdByEFIAwQ/1MaIAsQggYaIAoQggYaIAkQggYaIAZBrAFqEKQHGiAGQbABaiQAIAUPCxDVUgALqwUBDX8jAEGgCGsiByQAIAcgBTcDECAHIAY3AxggByAHQbAHajYCrAcgB0GwB2pB5ABBvLERIAdBEGoQzS0hCCAHQecINgKQBEEAIQkgB0GIBGpBACAHQZAEahD7UyEKIAdB5wg2ApAEIAdBgARqQQAgB0GQBGoQp1QhCwJAAkACQCAIQeQATw0AIAdBkARqIQwgB0GwB2ohDQwBCxD4UiEIIAcgBTcDACAHIAY3AwggB0GsB2ogCEG8sREgBxD8UyIIQX9GDQEgCiAHKAKsByINEP1TIAsgCEECdBBeEKhUIAsoAgAiDBC+Vg0BCyAHQfwDaiADKAIcEKIHIAcoAvwDEMxRIg4gDSANIAhqIAwQyVMCQCAIQQFIDQAgBygCrActAABBLUYhCQsgB0HkA2oQ2VEhDyAHQdgDahCbVSENIAdBzANqEJtVIRAgAiAJIAcoAvwDIAdB+ANqIAdB9ANqIAdB8ANqIA8gDSAQIAdByANqEL9WIAdB5wg2AjAgB0EoakEAIAdBMGoQp1QhEQJAAkAgCCAHKALIAyICTA0AIBAoAgQgEC0ACxCzUyAIIAJrQQF0aiANKAIEIA0tAAsQs1NqQQFqIRIMAQsgECgCBCAQLQALELNTIA0oAgQgDS0ACxCzU2pBAmohEgsgB0EwaiETAkAgEiACaiISQeUASQ0AIBEgEkECdBBeEKhUIBEoAgAiE0UNAQsgEyAHQSRqIAdBIGogAygCBCAMIAwgCEECdGogDiAJIAdB+ANqIAcoAvQDIAcoAvADIA8gDSAQIAIQwFYgASATIAcoAiQgBygCICADIAQQlFQhCCAREKpUGiAQELBTGiANELBTGiAPEIIGGiAHQfwDahCkBxogCxCqVBogChD/UxogB0GgCGokACAIDwsQ1VIACwoAIAAQwVZBAXMLxgMBAX8jAEEQayIKJAACQAJAIABFDQAgAhD1VSECAkACQCABRQ0AIApBBGogAhD2VSADIAooAgQ2AAAgCkEEaiACEPdVIAggCkEEahD4VRogCkEEahCwUxoMAQsgCkEEaiACEMJWIAMgCigCBDYAACAKQQRqIAIQ+VUgCCAKQQRqEPhVGiAKQQRqELBTGgsgBCACEPpVNgIAIAUgAhD7VTYCACAKQQRqIAIQ/FUgBiAKQQRqEN9RGiAKQQRqEIIGGiAKQQRqIAIQ/VUgByAKQQRqEPhVGiAKQQRqELBTGiACEP5VIQIMAQsgAhD/VSECAkACQCABRQ0AIApBBGogAhCAViADIAooAgQ2AAAgCkEEaiACEIFWIAggCkEEahD4VRogCkEEahCwUxoMAQsgCkEEaiACEMNWIAMgCigCBDYAACAKQQRqIAIQglYgCCAKQQRqEPhVGiAKQQRqELBTGgsgBCACEINWNgIAIAUgAhCEVjYCACAKQQRqIAIQhVYgBiAKQQRqEN9RGiAKQQRqEIIGGiAKQQRqIAIQhlYgByAKQQRqEPhVGiAKQQRqELBTGiACEIdWIQILIAkgAjYCACAKQRBqJAALwwYBCX8gAiAANgIAQQRBACAHGyEPIANBgARxIRBBACERA0ACQCARQQRHDQACQCANKAIEIA0tAAsQs1NBAU0NACACIA0QxFZBARDFViANEMZWIAIoAgAQx1Y2AgALAkAgA0GwAXEiB0EQRg0AAkAgB0EgRw0AIAIoAgAhAAsgASAANgIACw8LAkACQAJAAkACQAJAIAggEWotAAAOBQABAwIEBQsgASACKAIANgIADAQLIAEgAigCADYCACAGQSAQoFIhByACIAIoAgAiEkEEajYCACASIAc2AgAMAwsgDSgCBCANLQALELVTDQIgDUEAELRTKAIAIQcgAiACKAIAIhJBBGo2AgAgEiAHNgIADAILIAwoAgQgDC0ACxC1UyEHIBBFDQEgBw0BIAIgDBDEViAMEMZWIAIoAgAQx1Y2AgAMAQsgAigCACETIAQgD2oiBCEHAkADQCAHIAVPDQEgBkHAACAHKAIAENJRRQ0BIAdBBGohBwwACwALAkAgDkEBSA0AIAIoAgAhEiAOIRQCQANAIAcgBE0NASAUQQBGDQEgFEF/aiEUIAdBfGoiBygCACEVIAIgEkEEaiIWNgIAIBIgFTYCACAWIRIMAAsACwJAAkAgFA0AQQAhFgwBCyAGQTAQoFIhFiACKAIAIRILAkADQCASQQRqIRUgFEEBSA0BIBIgFjYCACAUQX9qIRQgFSESDAALAAsgAiAVNgIAIBIgCTYCAAsCQAJAIAcgBEcNACAGQTAQoFIhEiACIAIoAgAiFEEEaiIHNgIAIBQgEjYCAAwBC0F/IRYCQCALKAIEIAstAAsQ1FINACALQQAQ01IsAAAhFgtBACEUQQAhFwJAA0AgByAERg0BIAIoAgAhFQJAAkAgFCAWRg0AIBUhEiAUIRUMAQsgAiAVQQRqIhI2AgAgFSAKNgIAQQAhFQJAIBdBAWoiFyALKAIEIAstAAsQ/VFJDQAgFCEWDAELQX8hFiALIBcQ01ItAABB/wBGDQAgCyAXENNSLAAAIRYLIAdBfGoiBygCACEUIAIgEkEEajYCACASIBQ2AgAgFUEBaiEUDAALAAsgAigCACEHCyATIAcQlVQLIBFBAWohEQwACwALBwAgAEEARwsRACAAIAEgASgCACgCKBEDAAsRACAAIAEgASgCACgCKBEDAAsKACAAEL1TEMhWCywBAX8jAEEQayICJAAgAiAANgIMIAJBDGogARDKVigCACEAIAJBEGokACAACxsAIAAQvVMgACgCBCAALQALELNTQQJ0ahDIVgsrAQF/IwBBEGsiAyQAIANBCGogACABIAIQyVYgAygCDCECIANBEGokACACCyUBAX8jAEEQayIBJAAgAUEMaiAAENVWKAIAIQAgAUEQaiQAIAALDQAgACABIAIgAxDLVgsUACAAIAAoAgAgAUECdGo2AgAgAAsNACAAIAEgAiADEMxWC1sBAX8jAEEgayIEJAAgBEEYaiABIAIQzVYgBEEQaiAEKAIYIAQoAhwgAxC9USABIAQoAhAQzlYhASAEIAMgBCgCFBC/UTYCDCAAIAEgBEEMahDPViAEQSBqJAALCwAgACABIAIQ0FYLCQAgACABENFWCwwAIAAgASACENJWGgsoAQF/IwBBEGsiAyQAIAMgAjYCDCAAIAEgA0EMahDLURogA0EQaiQACwkAIAAgARDTVgsVACAAIAE2AgAgACACKAIANgIEIAALCQAgACABENRWCw8AIAAgASAAa0ECdRDFVgsLACAAIAE2AgAgAAvnAwEKfyMAQeADayIGJAAgBkHcA2ogAygCHBCiByAGKALcAxDMUSEHQQAhCAJAIAUoAgQgBS0ACxCzU0UNACAFQQAQtFMoAgAgB0EtEKBSRiEICyAGQcQDahDZUSEJIAZBuANqEJtVIQogBkGsA2oQm1UhCyACIAggBigC3AMgBkHYA2ogBkHUA2ogBkHQA2ogCSAKIAsgBkGoA2oQv1YgBkHnCDYCECAGQQhqQQAgBkEQahCnVCEMAkACQCAFKAIEIAUtAAsQs1MiDSAGKAKoAyICTA0AIAsoAgQgCy0ACxCzUyANIAJrQQF0aiAKKAIEIAotAAsQs1NqQQFqIQ4MAQsgCygCBCALLQALELNTIAooAgQgCi0ACxCzU2pBAmohDgsgBkEQaiEPAkACQCAOIAJqIg5B5QBJDQAgDCAOQQJ0EF4QqFQgDCgCACIPRQ0BIAUoAgQgBS0ACxCzUyENCyAPIAZBBGogBiADKAIEIAUQu1MiBSAFIA1BAnRqIAcgCCAGQdgDaiAGKALUAyAGKALQAyAJIAogCyACEMBWIAEgDyAGKAIEIAYoAgAgAyAEEJRUIQUgDBCqVBogCxCwUxogChCwUxogCRCCBhogBkHcA2oQpAcaIAZB4ANqJAAgBQ8LENVSAAsEAEF/CwoAIAAgBRDnBRoLAgALBABBfwsKACAAIAUQrFUaCwIAC90BAEGEsB4gABDeVhpBAEHo5xw2AoSwHhDfVkGUsR5B/+MREJ4GGhDgVhDhVhDiVhDjVhDkVhDlVhDmVhDnVhDoVhDpVhDqVhDrVhDsVhDtVhDuVhDvVhDwVhDxVhDyVhDzVhD0VhD1VhD2VhD3VhD4VhD5VhD6VhD7VhD8VhD9VhD+VhD/VhCAVxCBVxCCVxCDVxCEVxCFVxCGVxCHVxCIVxCJVxCKVxCLVxCMVxCNVxCOVxCPVxCQVxCRVxCSVxCTVxCUVxCVVxCWVxCXVxCYVxCZVxCaVxCbVxCcVwsXACAAIAFBf2oQnVciAUGw8xw2AgAgAQs1AQF/IwBBEGsiACQAQQBCADcCjLAeEJ5XIABBDGpBjLAeEJ9XGhCgV0EeEKFXIABBEGokAAsJAEGMsB4QolcLBQAQo1cLEABBnLseQdyuHhDbUhCkVwsFABClVwsQAEGkux5B5K4eENtSEKRXCwUAEKZXCxAAQay7HkG8sR4Q21IQpFcLBQAQp1cLEABBvLseQbSxHhDbUhCkVwsFABCoVwsQAEHEux5BxLEeENtSEKRXCwUAEKlXCxAAQcy7HkHMsR4Q21IQpFcLBQAQqlcLEABB2LseQdSxHhDbUhCkVwsFABCrVwsQAEHgux5B5LEeENtSEKRXCwUAEKxXCxAAQei7HkHcsR4Q21IQpFcLBQAQrVcLEABB8LseQeyxHhDbUhCkVwsFABCuVwsQAEH4ux5B9LEeENtSEKRXCwUAEK9XCxAAQZC8HkH8sR4Q21IQpFcLBQAQsFcLEABBrLweQeyuHhDbUhCkVwsFABCxVwsQAEG0vB5B9K4eENtSEKRXCwUAELJXCxAAQby8HkH8rh4Q21IQpFcLBQAQs1cLEABBxLweQYSvHhDbUhCkVwsFABC0VwsQAEHMvB5BrK8eENtSEKRXCwUAELVXCxAAQdS8HkG0rx4Q21IQpFcLBQAQtlcLEABB3LweQbyvHhDbUhCkVwsFABC3VwsQAEHkvB5BxK8eENtSEKRXCwUAELhXCxAAQey8HkHMrx4Q21IQpFcLBQAQuVcLEABB9LweQdSvHhDbUhCkVwsFABC6VwsQAEH8vB5B3K8eENtSEKRXCwUAELtXCxAAQYS9HkHkrx4Q21IQpFcLBQAQvFcLEABBjL0eQYyvHhDbUhCkVwsFABC9VwsQAEGYvR5BlK8eENtSEKRXCwUAEL5XCxAAQaS9HkGcrx4Q21IQpFcLBQAQv1cLEABBsL0eQaSvHhDbUhCkVwsFABDAVwsQAEG8vR5B7K8eENtSEKRXCwUAEMFXCxAAQcS9HkH0rx4Q21IQpFcLFAAgACABNgIEIABBmLsdNgIAIAALDQBBlLAeEP1XGhCjWQsLACAAIAE2AgAgAAtcAQJ/IwBBEGsiACQAAkAQ21dBHUsNABDdVwALIABBCGpBjLAeEM9XQR4Q31dBACAAKAIIIgE2ApCwHkEAIAE2AoywHhDOVyABIAAoAgxBAnRqNgIAIABBEGokAAtUAQN/IwBBEGsiASQAIAFBBGogABDYVyICKAIEIQAgAigCCCEDA0ACQCAAIANHDQAgAhDZVxogAUEQaiQADwsgABDaVyACIABBBGoiADYCBAwACwALDAAgACAAKAIAENVXCxcAQZy7HkEBEN5WGkEAQYT8HDYCnLseC4gBAQN/IwBBEGsiAiQAIAAQwlcgAkEMaiAAEMNXIQACQEEAKAKMsB4iA0EAKAKQsB4Q4FIgAUsNACABQQFqEMRXQQAoAoywHiEDCwJAIAMgARDFVyIDKAIAIgRFDQAgBBDrUkEAKAKMsB4gARDFVyEDCyADIAAQxlc2AgAgABDHVxogAkEQaiQACxcAQaS7HkEBEN5WGkEAQaT8HDYCpLseCysAQay7HkEBEN5WGkEAQfznHDYCrLseQQBBsOgcNgK0ux5BAEEAOgC4ux4LFwBBvLseQQEQ3lYaQQBB6PMcNgK8ux4LFwBBxLseQQEQ3lYaQQBB/PQcNgLEux4LIQBBzLseQQEQ3lYaQQBBuPAcNgLMux5BABD4UjYC1LseCxcAQdi7HkEBEN5WGkEAQZD2HDYC2LseCxcAQeC7HkEBEN5WGkEAQfj3HDYC4LseCxcAQei7HkEBEN5WGkEAQYT3HDYC6LseCxcAQfC7HkEBEN5WGkEAQez4HDYC8LseCyoAQfi7HkEBEN5WGkEAQa7YADsBgLweQQBB6PAcNgL4ux5BhLweENlRGgstAEGQvB5BARDeVhpBAEKugICAwAU3Api8HkEAQZDxHDYCkLweQaC8HhDZURoLFwBBrLweQQEQ3lYaQQBBxPwcNgKsvB4LFwBBtLweQQEQ3lYaQQBBuP4cNgK0vB4LFwBBvLweQQEQ3lYaQQBBjIAdNgK8vB4LFwBBxLweQQEQ3lYaQQBB9IEdNgLEvB4LFwBBzLweQQEQ3lYaQQBBzIkdNgLMvB4LFwBB1LweQQEQ3lYaQQBB4IodNgLUvB4LFwBB3LweQQEQ3lYaQQBB1IsdNgLcvB4LFwBB5LweQQEQ3lYaQQBByIwdNgLkvB4LFwBB7LweQQEQ3lYaQQBBvI0dNgLsvB4LFwBB9LweQQEQ3lYaQQBB4I4dNgL0vB4LFwBB/LweQQEQ3lYaQQBBhJAdNgL8vB4LFwBBhL0eQQEQ3lYaQQBBqJEdNgKEvR4LJQBBjL0eQQEQ3lYaEKFYQQBB7IMdNgKUvR5BAEG8gx02Aoy9HgslAEGYvR5BARDeVhoQjVhBAEH0hR02AqC9HkEAQcSFHTYCmL0eCx8AQaS9HkEBEN5WGkGsvR4QhlgaQQBBsIcdNgKkvR4LHwBBsL0eQQEQ3lYaQbi9HhCGWBpBAEHMiB02ArC9HgsXAEG8vR5BARDeVhpBAEHMkh02Ary9HgsXAEHEvR5BARDeVhpBAEHEkx02AsS9HgsKACAAQQRqEMhXCwkAIAAgARDJVws/AQJ/AkAgAEEAKAKMsB4iAUEAKAKQsB4Q4FIiAk0NACAAIAJrEMpXDwsCQCAAIAJPDQAgASAAQQJ0ahDLVwsLCgAgACABQQJ0agsUAQF/IAAoAgAhASAAQQA2AgAgAQsJACAAEMxXIAALDwAgACAAKAIAQQFqNgIACwkAIAAgARCCWAuBAQEDfyMAQSBrIgEkAAJAAkAQzlcoAgBBACgCkLAeIgJrQQJ1IABJDQAgABChVwwBC0GMsB4Qz1chAyABQQxqQQAoAoywHiACEOBSIABqENBXQQAoAoywHkEAKAKQsB4Q4FIgAxDRVyICIAAQ0lcgAhDTVyACENRXGgsgAUEgaiQACwsAQYywHiAAENVXCx8BAX8gACgCACEBIABBADYCAAJAIAFFDQAgARDNVwsLBwAgABDrUgsFABDXVwsKACAAQQhqENZXC18BAn8jAEEQayIBJAAgASAANgIMAkAQ21ciAiAASQ0AAkBBjLAeENxXIgAgAkEBdk8NACABIABBAXQ2AgggAUEIaiABQQxqEIVSKAIAIQILIAFBEGokACACDwsQ3VcAC38BAX8jAEEQayIEJAAgAEEMaiADEN5XGgJAAkAgAQ0AQQAhAUEAIQMMAQsgBEEIaiAAKAIQIAEQ31cgBCgCDCEDIAQoAgghAQsgACABNgIAIAAgASACQQJ0aiICNgIIIAAgAjYCBCAAEOBXIAEgA0ECdGo2AgAgBEEQaiQAIAALVwEBfyMAQRBrIgIkACACQQRqIABBCGogARDhVyIAKAIAIQECQANAIAEgACgCBEYNASABENpXIAAgACgCAEEEaiIBNgIADAALAAsgABDiVxogAkEQaiQAC4kBAQR/IwBBEGsiASQAIAFBDGpBACgCkLAeEONXIQIgAUEIakEAKAKMsB4Q41chAyABQQRqIAAoAgQQ41chBCAAIAIoAgAgAygCACAEKAIAEORXNgIEQYywHiAAQQRqEOVXQZCwHiAAQQhqEOVXEM5XIAAQ4FcQ5VcgACAAKAIENgIAIAFBEGokAAsnAQF/IAAQ5lcCQCAAKAIAIgFFDQAgACgCECABIAAQ51cQ6FcLIAALCQAgACABNgIECwcAIABBBGoLBgBBlLAeCyoBAX8gAEGMsB42AgAgAEEAKAKQsB4iAjYCBCAAIAIgAUECdGo2AgggAAsRACAAKAIAIAAoAgQ2AgQgAAsIACAAEPtXGgs+AQJ/IwBBEGsiACQAIABB/////wM2AgwgAEH/////BzYCCCAAQQxqIABBCGoQjlIoAgAhASAAQRBqJAAgAQsTACAAEIFYKAIAIAAoAgBrQQJ1CwYAEPNRAAsUACAAEP1XIgBBBGogARD+VxogAAsZACABIAIQ/1chASAAIAI2AgQgACABNgIACwcAIABBDGoLKAEBfyABKAIAIQMgACABNgIIIAAgAzYCACAAIAMgAkECdGo2AgQgAAsRACAAKAIIIAAoAgA2AgAgAAsLACAAIAE2AgAgAAsLACAAIAEgAhDuVwscAQF/IAAoAgAhAiAAIAEoAgA2AgAgASACNgIACwwAIAAgACgCBBDpVwsTACAAEOpXKAIAIAAoAgBrQQJ1CwsAIAAgASACEOtXCwkAIAAgARDtVwsHACAAQQxqCxsAAkAgASAARw0AIABBADoAeA8LIAEgAhDsVwsHACAAEIlSCycBAX8gACgCCCECAkADQCACIAFGDQEgACACQXxqIgI2AggMAAsACwsrAQF/IwBBEGsiAyQAIANBCGogACABIAIQ71cgAygCDCECIANBEGokACACCw0AIAAgASACIAMQ8FcLDQAgACABIAIgAxDxVwtRAQF/IwBBIGsiBCQAIARBGGogASACEPJXIARBEGogBCgCGCAEKAIcIAMQ81cgBCgCECECIAQgBCgCFDYCDCAAIAIgBEEMahD0VyAEQSBqJAALCwAgACABIAIQ9VcLcgEBfyMAQRBrIgQkACAEIAM2AgggBCABNgIMAkADQCABIAIQ9ldFDQEgARD3VyEBIAQoAggQ+FcgASgCADYCACAEQQxqEPlXIQEgBEEIahD5VxogASgCACEBDAALAAsgACABIARBCGoQ9FcgBEEQaiQACwwAIAAgASACEPpXGgsoAQF/IwBBEGsiAyQAIAMgAjYCDCAAIAEgA0EMahD6VxogA0EQaiQACwcAIAAgAUcLBwAgABD4VwsHACAAQXxqCxEAIAAgACgCAEF8ajYCACAACxUAIAAgATYCACAAIAIoAgA2AgQgAAsHACAAEPxXCwsAIABBADYCACAACwsAIABBADYCACAACwsAIAAgATYCACAACyUAAkAgAUEeSw0AIAAtAHhBAXENACAAQQE6AHggAA8LIAEQgFgLHAACQCAAQYCAgIAESQ0AEKgHAAsgAEECdBD2UQsHACAAQQhqCwsAIAAgATYCACAACwcAIAAQpAELDwAgACAAKAIAKAIEEQEACwcAIAAQpAELDAAgABD4UjYCACAACw0AIABBCGoQiFgaIAALGgACQCAAKAIAEPhSRg0AIAAoAgAQilgLIAALCgAgABCHWBCkAQsRAAJAIAAQwllFDQAgABBgCwsNACAAQQhqEIhY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IQMCQCACQf8ASw0AIAJBAnRBsOgcaigCACABcUEARyEDCyADC04BAn8CQANAIAEgAkYNAUEAIQQCQCABKAIAIgVB/wBLDQAgBUECdEGw6BxqKAIAIQQLIAMgBDYCACADQQRqIQMgAUEEaiEBDAALAAsgAQs/AQF/AkADQCACIANGDQECQCACKAIAIgRB/wBLDQAgBEECdEGw6BxqKAIAIAFxDQILIAJBBGohAgwACwALIAILPQEBfwJAA0AgAiADRg0BIAIoAgAiBEH/AEsNASAEQQJ0QbDoHGooAgAgAXFFDQEgAkEEaiECDAALAAsgAgseAAJAIAFB/wBLDQAgAUECdEHwrh1qKAIAIQELIAELQwEBfwJAA0AgASACRg0BAkAgASgCACIDQf8ASw0AIANBAnRB8K4daigCACEDCyABIAM2AgAgAUEEaiEBDAALAAsgAQseAAJAIAFB/wBLDQAgAUECdEHwoh1qKAIAIQELIAELQwEBfwJAA0AgASACRg0BAkAgASgCACIDQf8ASw0AIANBAnRB8KIdaigCACEDCyABIAM2AgAgAUEEaiEBDAALAAsgAQsEACABCywAAkADQCABIAJGDQEgAyABLAAANgIAIANBBGohAyABQQFqIQEMAAsACyABCw4AIAEgAiABQYABSRvACzkBAX8CQANAIAEgAkYNASAEIAEoAgAiBSADIAVBgAFJGzoAACAEQQFqIQQgAUEEaiEBDAALAAsgAQsrAQF/IABB/OccNgIAAkAgACgCCCIBRQ0AIAAtAAxBAUcNACABEOcgCyAACwoAIAAQmVkQpAELHgACQCABQQBIDQAgAUECdEHwrh1qKAIAIQELIAHAC0IBAX8CQANAIAEgAkYNAQJAIAEsAAAiA0EASA0AIANBAnRB8K4daigCACEDCyABIAM6AAAgAUEBaiEBDAALAAsgAQseAAJAIAFBAEgNACABQQJ0QfCiHWooAgAhAQsgAcALQgEBfwJAA0AgASACRg0BAkAgASwAACIDQQBIDQAgA0ECdEHwoh1qKAIAIQMLIAEgAzoAACABQQFqIQEMAAsACyABCwQAIAELLAACQANAIAEgAkYNASADIAEtAAA6AAAgA0EBaiEDIAFBAWohAQwACwALIAELDAAgAiABIAFBAEgbCzgBAX8CQANAIAEgAkYNASAEIAMgASwA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ADYCPCADQoGAgICAgICAATcCNCACIANBBGogASABQQFBACACKAIAKAIUERAAIABBACADKAIcGyEECyADQcAAaiQAIAQL0wEBAX8jAEHAAGsiAyQAIANByLsdNgIMIAMgADYCCCADQfi7HTYCBEEAIQAgA0EQakEAQSsQSBogA0EANgI8IANBAToAOyACIANBBGogAUEBQQAgAigCACgCGBEKAAJAAkACQCADKAIoDgIAAQILIAMoAhhBACADKAIkQQFGG0EAIAMoAiBBAUYbQQAgAygCLEEBRhshAAwBCwJAIAMoAhxBAUYNACADKAIsDQEgAygCIEEBRw0BIAMoAiRBAUcNAQsgAygCFCEACyADQcAAaiQAIAALPAACQCAAIAEoAgggBRD3WUUNACABIAIgAyAEEP5ZDwsgACgCCCIAIAEgAiADIAQgBSAAKAIAKAIUERAAC58BACAAQQE6ADUCQCAAKAIEIAJHDQAgAEEBOgA0AkACQCAAKAIQIgINACAAQQE2AiQgACADNgIYIAAgATYCECADQQFHDQIgACgCMEEBRg0BDAILAkAgAiABRw0AAkAgACgCGCICQQJHDQAgACADNgIYIAMhAgsgACgCMEEBRw0CIAJBAUYNAQwCCyAAIAAoAiRBAWo2AiQLIABBAToANgsLggIAAkAgACABKAIIIAQQ91lFDQAgASACIAMQgFoPCwJAAkAgACABKAIAIAQQ91lFDQACQAJAIAEoAhAgAkYNACABKAIUIAJHDQELIANBAUcNAiABQQE2AiAPCyABIAM2AiACQCABKAIsQQRGDQAgAUEAOwE0IAAoAggiACABIAIgAkEBIAQgACgCACgCFBEQAAJAIAEtADVBAUcNACABQQM2AiwgAS0ANEUNAQwDCyABQQQ2AiwLIAEgAjYCFCABIAEoAihBAWo2AiggASgCJEEBRw0BIAEoAhhBAkcNASABQQE6ADYPCyAAKAIIIgAgASACIAMgBCAAKAIAKAIYEQoACwsgAAJAIAAoAgQgAUcNACAAKAIcQQFGDQAgACACNgIcCws2AAJAIAAgASgCCEEAEPdZRQ0AIAEgAiADEIJaDwsgACgCCCIAIAEgAiADIAAoAgAoAhwRCAALdwEBfwJAIAAoAiQiAw0AIAAgAjYCGCAAIAE2AhAgAEEBNgIkIAAgACgCODYCFA8L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C3siXvI/AIGcxyuqwb8/NBpKSrvxP14OjM52Trq/uuWK8Fgj8T/MHGFaPJexv6cAmUE/lfA/HgzhOPRSor8AAAAAAADwPwAAAAAAAAAArEea/Yxg7j+EWfJdqqWqP6BqAh+zpOw/tC42qlNevD/m/GpXNiDrPwjbIHflJsU/LaqhY9HC6T9wRyINhsLLP+1BeAPmhug/4X6gyIsF0T9iSFP13GfnPwnutlcwBNQ/7zn6/kIu5j80g7hIow7Qv2oL4AtbV9U/I0EK8v7/3794eXoAY291bnRyegBjb3VudGx6AHl5AHh5AFByb3BlcnR5AERpcmVjdG9yeSBub3QgZW1wdHkAaW50ZXJ2YWwgaXMgZW1wdHkAaWRlbnRpdHkAaXNJZGVudGl0eQBsdW1pbm9zaXR5AGluZmluaXR5AG9wYWNpdHkAbW9kdWxhdGVPcGFjaXR5AERldmljZSBvciByZXNvdXJjZSBidXN5AGVudHJ5AE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBqc0ZhY3RvcnkAcmVuZGVyRmFjdG9yeQBub3QgZW5vdWdoIG1lbW9yeQBPdXQgb2YgbWVtb3J5AEZlYnJ1YXJ5AEphbnVhcnkATHVhdUludGVnZXJMaWJyYXJ5AGF0dGVtcHQgdG8geWllbGQgYWNyb3NzIG1ldGFtZXRob2QvQy1jYWxsIGJvdW5kYXJ5AGJ1ZmZlci5zdHJpZGVkY29weQBhbnkASnVseQBhcHBseQBhZHZhbmNlQW5kQXBwbHkAbXVsdGlwbHkAZmluYWxseQBrZXkAb3ZlcmxheQBwbGF5AGRlbGF5AHlkYXkAd2RheQBUaHVyc2RheQBUdWVzZGF5AFdlZG5lc2RheQBTYXR1cmRheQBTdW5kYXkATW9uZGF5AEZyaWRheQBNYXkAeXgAeHgALWx1eAB0eAAlczogMHglMDE2bGx4AF9nZXRNYXRyaXgATHVhdUdjVGFibGVTdGVwRml4AEx1YXVDbG9uZVRhYmxlRml4AHBhdHRlcm4gdG9vIGNvbXBsZXgAX19uZXdpbmRleABfX2luZGV4AGludmFsaWQgY2FwdHVyZSBpbmRleABldmVudEJ5SW5kZXgAdGV4dFZhbHVlUnVuQnlJbmRleABhbmltYXRpb25CeUluZGV4AHZpZXdNb2RlbEJ5SW5kZXgAc3RhdGVNYWNoaW5lQnlJbmRleABzdGF0ZUNoYW5nZWROYW1lQnlJbmRleABpbnN0YW5jZUJ5SW5kZXgAYXJ0Ym9hcmRCeUluZGV4AGxpc3RJbmRleABnZXRJbmRleAB2YWx1ZUluZGV4AGNoYW5nZUluZGV4AG1heAAtKyAgIDBYMHgALTBYKzBYIDBYLTB4KzB4IDB4AC10dwBfX3BvdwBpbnRlZ2VyIG92ZXJmbG93AEMgc3RhY2sgb3ZlcmZsb3cAc3RyaW5nIGxlbmd0aCBvdmVyZmxvdwB0YWJsZSBvdmVyZmxvdwB1bnNpZ25lZCBvdmVyZmxvdwBBcnRib2FyZENvbXBvbmVudExpc3RSb3cAUHJvbWlzZS5uZXcAdmlldwBjb2xvclZpZXcAZGVwdGhWaWV3AGRyYXcAdWxhdwBhbGF3AE5vdgBzZXRmZW52AGdldGZlbnYAX19pZGl2AF9fZGl2AHdhdgBUaHUATHVhdQB0YXUAcmVxdWlyZSBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgY29udGV4dABkYXRhQ29udGV4dABEYXRhQ29udGV4dABuZXh0AGZvY3VzTmV4dABzb3d0AGlucHV0AGlzVGV4dElucHV0AGFzVGV4dElucHV0AGV4cGVjdHNLZXlib2FyZElucHV0AFNNSUlucHV0AGxheW91dABleGVjdXRpb24gZXhjZWVkZWQgJWQgbWlsbGlzZWNvbmQlcyB0aW1lb3V0AGV4ZWN1dGlvbiBleGNlZWRlZCAlLjFmIHNlY29uZCVzIHRpbWVvdXQAVGltZW91dABidXR0AEF1Z3VzdABObyBob3N0AFJlc291cmNlIGRvZXMgbm90IGV4aXN0AGxpc3QAUHJvcGVydHlMaXN0AGdldExpc3QAVmlld01vZGVsSW5zdGFuY2VMaXN0AHdlc3QAYnRlc3QAbmVhcmVzdABpc2RzdABlYXN0AHNxcnQAc29ydABzZXRWaWV3cG9ydABkYXRhIHN0cmluZyB0b28gc2hvcnQAdW5zaWduZWQgc2hvcnQAYnVmZmVyLmNvbnZlcnQAcmV2ZXJzZUNvbnZlcnQAaW52ZXJ0AGFzc2VydABpbnNlcnQAc3RhcnQAd29ya1N0YXJ0AGJub3QAZG90AC1oYm90AGNvdW50AHByb3BlcnR5Q291bnQAaW5wdXRDb3VudABldmVudENvdW50AHJlcG9ydGVkRXZlbnRDb3VudAB0ZXh0VmFsdWVSdW5Db3VudABhbmltYXRpb25Db3VudAB2aWV3TW9kZWxDb3VudABzdGF0ZU1hY2hpbmVDb3VudABpbmNyZW1lbnRSZWZlcmVuY2VDb3VudABkZWNyZW1lbnRSZWZlcmVuY2VDb3VudABpbnN0YW5jZUNvdW50AGFydGJvYXJkQ291bnQAc3RhdGVDaGFuZ2VkQ291bnQAc2V0Rm9udABpc0ZvbnQAZGVjb2RlRm9udABwcmludABjb2RlcG9pbnQAdHJhbnNmb3JtUG9pbnQAMzItYml0IElFRUUgRmxvYXRpbmcgUG9pbnQAcGFpbnQAYXNQYWludABtYWtlUmVuZGVyUGFpbnQAdW5zaWduZWQgaW50AHRleHRFdmVudABpc1BvaW50ZXJFdmVudABhc1BvaW50ZXJFdmVudABrZXlib2FyZEV2ZW50AGlzS2V5Ym9hcmRFdmVudABhc0tleWJvYXJkRXZlbnQAaXNSZXBvcnRlZEV2ZW50AGFzUmVwb3J0ZWRFdmVudABnYW1lcGFkRXZlbnQAaXNHYW1lcGFkRXZlbnQAYXNHYW1lcGFkRXZlbnQAaGFzU3RhbmRhcmRBeGlzSW50ZW50AGhhc1N0YW5kYXJkQnV0dG9uSW50ZW50AF9wYXJlbnQAYnVpbGRGb2N1c1RyZWVXaXRoUGFyZW50AHRyYW5zZm9ybUNvbXBvbmVudABUcmFuc2Zvcm1Db21wb25lbnQASW52YWxpZCBhcmd1bWVudABjb21wdXRlQWxpZ25tZW50AGltcGxlbWVudABncmFkaWVudABsaW5lYXJHcmFkaWVudABjbGVhckdyYWRpZW50AHJhZGlhbEdyYWRpZW50AHBvc2l0aW9uQW5kVGFuZ2VudABqeS1oYW50AHB4LWhhbnQAdXUtaGFudABzcC1oYW50AG5wLWhhbnQAem8taGFudABkby1oYW50AHNuLWhhbnQAbW4taGFudABhbi1oYW50AG5tLWhhbnQAYWstaGFudAB6aC1oYW50AHVoLWhhbnQAamMtaGFudABiaW5kYWJsZUFydGJvYXJkRGVmYXVsdABhbHQAX19sdABleGl0AHBvaW50ZXJFeGl0AGluaXQAbGltaXQAc3BsaXQAaGl0AGF3YWl0AEZpdABoZWlnaHQAZHJhd0hlaWdodABmaXRIZWlnaHQAY2VudGVyUmlnaHQAdG9wUmlnaHQAYm90dG9tUmlnaHQAZHBhZFJpZ2h0AHNvZnRMaWdodABoYXJkTGlnaHQAYXJzaGlmdABsc2hpZnQAY2VudGVyTGVmdAB0b3BMZWZ0AGJvdHRvbUxlZnQAZHBhZExlZnQAcmF3c2V0AHB0clRvRm9udEFzc2V0AHB0clRvQXVkaW9Bc3NldABwdHJUb0ZpbGVBc3NldABwdHJUb0ltYWdlQXNzZXQAb2Zmc2V0AENvbm5lY3Rpb24gcmVzZXQAU29ja2V0IG9wZXJhdGlvbiBvbiBub24tc29ja2V0AFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldAByYXdnZXQAdGFyZ2V0AEx1YXVEaXJlY3RGaWVsZEdldABfX2Rlc3RydWN0AHNlbGVjdABQcm9taXNlLnJlamVjdABsdWFSX2NyZWF0ZW9iamVjdAAnc2V0ZmVudicgY2Fubm90IGNoYW5nZSBlbnZpcm9ubWVudCBvZiBnaXZlbiBvYmplY3QAc2V0U2Npc3NvclJlY3QAYWRkUmVjdABleHRyYWN0AGZhY3QAT2N0AGZsb2F0AGNvbG9yQnVmZmVyRmxvYXQAdG9GbG9hdABjb2xvckJ1ZmZlckhhbGZGbG9hdAB2YXJpYWJsZS1sZW5ndGggZm9ybWF0AHJlcGVhdABfX2NvbmNhdABTYXQAdWludDY0X3QAcmVwb3J0ZWRFdmVudEF0AGxvb2tBdAByZW1vdmVBdABpbnN0YW5jZUF0AHJlbW92ZUluc3RhbmNlQXQAYWRkSW5zdGFuY2VBdAB0ZXh0dXJlQXJyYXlzAGdldFN0YXR1cwBmb2N1c1ByZXZpb3VzAGlzRm9jdXMAaGFzRm9jdXMAY2xlYXJGb2N1cwBSZXNvdXJjZSBhbHJlYWR5IGV4aXN0cwBsb2FkQ29udGVudHMAd3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cwBtYXhDb2xvckF0dGFjaG1lbnRzAHRvbyBtYW55IHJlc3VsdHMAd3JpdGViaXRzAHJlYWRiaXRzAHRyeWluZyB0byBhY2Nlc3Mgbm9uLWV4aXN0ZW50IGJpdHMAY3Jvc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAEJhZCBhZGRyZXNzAHRoaWNrbmVzcwBjbGFzcwBiZWdpblJlbmRlclBhc3MAY29udG91cnMAaXBhaXJzAGhhc0xpc3RlbmVycwBtYXhTYW1wbGVycwBmcHMAc3RyaW5nIGNvbnRhaW5zIHplcm9zAGFjb3MAY29udGV4dDolcygpIGNhbGxlZCBvbiBhIGRpc3Bvc2VkIGNvbnRleHQg4oCUIHRoZSBjb250ZXh0IHBhc3NlZCB0byBpbml0KCkgbXVzdCBub3QgYmUgdXNlZCBhZnRlciBpbml0KCkgcmV0dXJucwBidXR0b25zAGp5LWhhbnMAcHgtaGFucwB1dS1oYW5zAHNwLWhhbnMAbnAtaGFucwB6by1oYW5zAGRvLWhhbnMAc24taGFucwBtbi1oYW5zAGFuLWhhbnMAbm0taGFucwBhay1oYW5zAHpoLWhhbnMAdWgtaGFucwB1ZS1oYW5zAGpjLWhhbnMAZW51bXMATHVhdUN1c3RvbVlpZWxkYWJsZVBjYWxscwBMdWF1UmVzdW1lUmVzdG9yZUNjYWxscwBUb28gbWFueSBsaW5rcwBheGlzAGludGVudEF4aXMAcmlnaHRUcmlnZ2VyQXhpcwBsZWZ0VHJpZ2dlckF4aXMAYXhlcwB2YWx1ZXMARW51bVZhbHVlcwB0b28gbWFueSBjYXB0dXJlcwBmZWF0dXJlcwBmcmFtZXMAc2V0VGltZUZyYW1lcwBnZXRJbnN0YW5jZU5hbWVzAG1heFNhbXBsZXMAVG9vIG1hbnkgb3BlbiBmaWxlcwBwcm9wZXJ0aWVzAGdldFByb3BlcnRpZXMAY2xlYXJDaGFuZ2VzAGNvZGVzAGhhc0ZvY3VzTm9kZXMAYnVmZmVyIGFjY2VzcyBvdXQgb2YgYm91bmRzAGZvY3VzTm9kZVNldFdvcmxkQm91bmRzAGZvY3VzTm9kZUNsZWFyV29ybGRCb3VuZHMAc2Vjb25kcwBkZWxheVNlY29uZHMAYWJzAGNhbnZhcwBkcmF3Q2FudmFzAGdwdUNhbnZhcwAlcyUuKnMAYXR0ZW1wdCB0byBjb21wYXJlICVzICVzICVzAGF0dGVtcHQgdG8gcGVyZm9ybSBhcml0aG1ldGljICglcykgb24gJXMAYXR0ZW1wdCB0byBpbmRleCAlcyB3aXRoICVzAGF0dGVtcHQgdG8gY29uY2F0ZW5hdGUgJXMgd2l0aCAlcwAnJXMnIGlzIG5vdCBhIHZhbGlkIGluZGV4IG9mICVzACVzIGlzIG5vdCBhIHZhbGlkIG1ldGhvZCBvZiAlcwAlcyBpcyBub3QgYSB2YWxpZCBmaWVsZCBvZiAlcwBhdHRlbXB0IHRvIGNhbGwgbWlzc2luZyBtZXRob2QgJyVzJyBvZiAlcwBhdHRlbXB0IHRvIHBlcmZvcm0gYXJpdGhtZXRpYyAoJXMpIG9uICVzIGFuZCAlcwByZXF1aXJlIGNvdWxkIG5vdCBmaW5kIGEgc2NyaXB0IG5hbWVkICVzAGNhbm5vdCBpbmRleCAlcyB3aXRoIGEgJXMAJXM6JWQ6ICVzADo6ICVzAGhvdXIAcHRyAEFwcgBieG9yAHZlY3RvcgAnJXMnIGlzIG5vdCBhIHZhbGlkIGluZGV4IG9mIFZlY3RvcgAlcyBpcyBub3QgYSB2YWxpZCBtZXRob2Qgb2YgVmVjdG9yAG1pcnJvcgBJbnB1dC9vdXRwdXQgZXJyb3IAVW5rbm93biBlcnJvcgBmbG9vcgBjb2xvcgBQcm9wZXJ0eUNvbG9yAGdldENvbG9yAGlzQ29sb3IARGF0YVZhbHVlQ29sb3IAVmlld01vZGVsSW5zdGFuY2VDb2xvcgBzZXRCbGVuZENvbG9yAGJvcgBEeW5hbWljUmVjdGFuaXplcgBsb3dlcgBjb3ZlcgBpdGVyYXRlIG92ZXIAc3JjT3ZlcgBjZW50ZXIAdG9wQ2VudGVyAGJvdHRvbUNlbnRlcgBwb2ludGVyRW50ZXIAJyVzJyBpcyBub3QgYSB2YWxpZCBJbWFnZUZpbHRlcgBtaXRlcgBfX2l0ZXIAcmVuZGVyZXIAUmVuZGVyZXIAdXBwZXIARm9udFdyYXBwZXIAUmVuZGVyUGFpbnRXcmFwcGVyAFJlbmRlcmVyV3JhcHBlcgBGaWxlQXNzZXRMb2FkZXJXcmFwcGVyAEF1ZGlvV3JhcHBlcgBSZW5kZXJQYXRoV3JhcHBlcgBSZW5kZXJJbWFnZVdyYXBwZXIAcmVtb3ZlTGlzdGVuZXIAYWRkTGlzdGVuZXIASW1hZ2VTYW1wbGVyAHJpdmVFcnJvckhhbmRsZXIAaW52YWxpZCBjb252ZXJzaW9uIHNwZWNpZmllcgBmZWF0aGVyAHRyaWdnZXIAUHJvcGVydHlUcmlnZ2VyAHJpZ2h0VHJpZ2dlcgBsZWZ0VHJpZ2dlcgBnZXRUcmlnZ2VyAGFzVHJpZ2dlcgBWaWV3TW9kZWxJbnN0YW5jZVRyaWdnZXIAU01JVHJpZ2dlcgB3cml0ZWludGVnZXIAcmVhZGludGVnZXIAOC1iaXQgVW5zaWduZWQgSW50ZWdlcgAxNi1iaXQgU2lnbmVkIEludGVnZXIAMzItYml0IFNpZ25lZCBJbnRlZ2VyACVkLWJ5dGUgaW50ZWdlciBkb2VzIG5vdCBmaXQgaW50byBMdWEgSW50ZWdlcgBkZWNvZGVJbWFnZTogZW1wdHkgYnVmZmVyAHNldFZlcnRleEJ1ZmZlcgBzZXRJbmRleEJ1ZmZlcgB3cml0ZVRvQnVmZmVyAFRyaWFuZ2xlQnVmZmVyAHJpZ2h0U2hvdWxkZXIAbGVmdFNob3VsZGVyAEZpbGVBc3NldExvYWRlcgBzaGFkZXIAUmVuZGVyU2hhZGVyAE9jdG9iZXIAdG9udW1iZXIAJ19fbGVuJyBtdXN0IHJldHVybiBhIG51bWJlcgBnZXROdW1iZXIAaXNOdW1iZXIAYXNOdW1iZXIARGF0YVZhbHVlTnVtYmVyAFZpZXdNb2RlbEluc3RhbmNlTnVtYmVyAFNNSU51bWJlcgBOb3ZlbWJlcgBTZXB0ZW1iZXIARGVjZW1iZXIAdW5zaWduZWQgY2hhcgB5ZWFyAGJpbGluZWFyAGNsZWFyAE1hcgBccgBfX2VxAGZyZXhwAGxkZXhwAHNldEJpbmRHcm91cABsZXJwAHdhcnAAc3RvcABfdG9wAGFkZFN0b3AAcG9wACdfX25ld2luZGV4JyBjaGFpbiB0b28gbG9uZzsgcG9zc2libGUgbG9vcAAnX19pbmRleCcgY2hhaW4gdG9vIGxvbmc7IHBvc3NpYmxlIGxvb3AAZGlkTG9vcAB0aW1lU3RhbXAAY2xhbXAAZGVwdGhCaWFzQ2xhbXAAc3RlcAByZXAAU2VwAGJ5dGVzd2FwACclcycgaXMgbm90IGEgdmFsaWQgSW1hZ2VXcmFwAG1hcABjYXAAJyVzJyBpcyBub3QgYSB2YWxpZCBTdHJva2VDYXAAcG9pbnRlclVwAGRwYWRVcAAlSTolTTolUyAlcABMdWF1UHJvbW90ZVByb3RvAEx1YXVDSVByb3RvAG5vblplcm8AanktaGFudC1tbwBweC1oYW50LW1vAHV1LWhhbnQtbW8Ac3AtaGFudC1tbwBucC1oYW50LW1vAHpvLWhhbnQtbW8AZG8taGFudC1tbwBzbi1oYW50LW1vAG1uLWhhbnQtbW8AYW4taGFudC1tbwBubS1oYW50LW1vAGFrLWhhbnQtbW8AemgtaGFudC1tbwB1aC1oYW50LW1vAGpjLWhhbnQtbW8ALW5hdmFqbwBhdWRpbwBpc0F1ZGlvAGhhc0F1ZGlvAFB1bHNlQXVkaW8AZGVjb2RlQXVkaW8AQUF1ZGlvAENvcmUgQXVkaW8AV2ViIEF1ZGlvAHNuZGlvAG9ydGhvAGdjaW5mbwBtb3ZlVG8AbGluZVRvAHF1YWRUbwBjdWJpY1RvAG8tbnluAG1heG4AdW5rbm93bgBVbmtub3duAGRvd24AcG9pbnRlckRvd24Ac2NhbGVEb3duAGRwYWREb3duAFN1bgB0ZXh0UnVuAFRleHRWYWx1ZVJ1bgBKdW4AZ2V0bgAtc3lybgBjb2xvckJ1cm4AY2hhcnBhdHRlcm4AbWlzc2luZyAnWycgYWZ0ZXIgJyUlZicgaW4gcGF0dGVybgAtcG9seXRvbgBidXR0b24AaW50ZW50QnV0dG9uAHJpZ2h0U3RpY2tCdXR0b24AbGVmdFN0aWNrQnV0dG9uAHBvc2l0aW9uAHByZXZpb3VzUG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgAlczoxOiBtb2R1bGUgbXVzdCByZXR1cm4gYSB0YWJsZSBvciBmdW5jdGlvbgBwZXJmb3JtQWN0aW9uAHJvdGF0aW9uAHdpdGhSb3RhdGlvbgBzYXR1cmF0aW9uAGR1cmF0aW9uAEludmFsaWQgb3BlcmF0aW9uAGFuaW1hdGlvbgBMaW5lYXJBbmltYXRpb24AZnJvbVRyYW5zbGF0aW9uAHdpdGhUcmFuc2xhdGlvbgB3aXRoU2NhbGVBbmRUcmFuc2xhdGlvbgBUZXh0SW5wdXRJbnZvY2F0aW9uAFJlcG9ydGVkRXZlbnRJbnZvY2F0aW9uAEZvY3VzSW52b2NhdGlvbgBOb25lSW52b2NhdGlvbgBWaWV3TW9kZWxDaGFuZ2VJbnZvY2F0aW9uAEtleWJvYXJkSW52b2NhdGlvbgBleGNsdXNpb24AZmlsZUV4dGVuc2lvbgBGaXhNYXRoTm9pc2VQcmVjaXNpb24ATW9uAGFzaW4Aam9pbgAnJXMnIGlzIG5vdCBhIHZhbGlkIFN0cm9rZUpvaW4AaC1taW4AbWF4IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIG1pbgBvcmlnaW4AZnJhbWVPcmlnaW4AY29udGFpbgBzaWduAGFsaWduAGlzZnJvemVuAHRhYmxlIGlzIGFscmVhZHkgZnJvemVuAGxpZ2h0ZW4AY2hpbGRyZW4AcmF3bGVuAF9fbGVuAGRhcmtlbgBhbmRUaGVuAGdyZWVuAHNjcmVlbgBhdGFuAFNwYW4AaXNuYW4AaC1taW4tbmFuAG1hbgBib29sZWFuAGdldEJvb2xlYW4AaXNCb29sZWFuAERhdGFWYWx1ZUJvb2xlYW4AVmlld01vZGVsSW5zdGFuY2VCb29sZWFuAHJ0LWxvamJhbgBKYW4AZW51bQBnZXRFbnVtAFZpZXdNb2RlbEluc3RhbmNlRW51bQB1OG5vcm0AaThub3JtAHUxNm5vcm0AaTE2bm9ybQB0cmFuc2Zvcm0Ad29ybGRUcmFuc2Zvcm0AcGFyZW50V29ybGRUcmFuc2Zvcm0AcGVyZm9ybQAnJSUqJyBkb2VzIG5vdCB0YWtlIGEgZm9ybQBDdXN0b20AcmFuZG9tAF9fdW5tAF9fbXVsAEp1bABzbAB1cmwAY2RuQmFzZVVybABjb250cm9sAGJvb2wAYXNCb29sAFNNSUJvb2wATnVsbABmaWxsAHhwY2FsbABfX25hbWVjYWxsAF9fY2FsbABpbnZhbGlkIGNhbGwAUHJvbWlzZS5hbGwAQXByaWwAdGFibGUgaW5kZXggaXMgbmlsAGNlaWwAaW52YWxpZCBsZXZlbABiZXZlbAB2aWV3TW9kZWwAUHJvcGVydHlWaWV3TW9kZWwAcm9vdFZpZXdNb2RlbABnZXRWaWV3TW9kZWwAcmVwbGFjZVZpZXdNb2RlbABkZWZhdWx0QXJ0Ym9hcmRWaWV3TW9kZWwAY2FuY2VsAG9uQ2FuY2VsAHJhd2VxdWFsAHJhZGlhbABidXR0b25NYXNrAHBlclRhcmdldFdyaXRlTWFzawAtZ2VvawBvLWJvawBfYmxhbmsAanktaGFudC1oawBweC1oYW50LWhrAHV1LWhhbnQtaGsAc3AtaGFudC1oawBucC1oYW50LWhrAHpvLWhhbnQtaGsAZG8taGFudC1oawBzbi1oYW50LWhrAG1uLWhhbnQtaGsAYW4taGFudC1oawBubS1oYW50LWhrAGFrLWhhbnQtaGsAemgtaGFudC1oawB1aC1oYW50LWhrAGpjLWhhbnQtaGsASWxsZWdhbCBzZWVrAERlYWRsb2NrAGNsb2NrAHJpZ2h0U3RpY2sAbGVmdFN0aWNrAGNsaWNrAEx1YXVBdXRvU3RhY2sAdG9vIG1hbnkgcmVzdWx0cyB0byB1bnBhY2sAUGxheWJhY2sATHVhdUNhbGxGZWVkYmFjawAtaGFrAC1zeXJqAEZyaQBwaQBwaGkAZm9yZWFjaGkAaW5kZXggJWkgZXhjZWVkcyAlaQBzb3V0aABub3J0aABtb250aAB3aXRoAGxlbmd0aABieXRlTGVuZ3RoAHdpZHRoAGRyYXdXaWR0aABmaXRXaWR0aABtYXRoAHRleHRCeVBhdGgAaW5wdXRCeVBhdGgAX2RyYXdQYXRoAGFzUGF0aABtYWtlUmVuZGVyUGF0aABfY2xpcFBhdGgAYWRkVG9QYXRoAGFkZFBhdGgALXRoAHB1c2gAY29zaABmaW5pc2gATWlzc2luZyBtZXNoAF9kcmF3SW1hZ2VNZXNoAHNpbmgAdGFuaABnbWF0Y2gAY2F0Y2gATWFyY2gAZm9yZWFjaAAuLi8uLi8uLi8uLi9zcmMvc2tpYV9pbXBvcnRzL2luY2x1ZGUvcHJpdmF0ZS9Ta1REQXJyYXkuaABBdWcAYS1sYXRnAGxvZwBwbmcAUGF0aCB0b28gbG9uZwBOYW1lIHRvbyBsb25nAHN0cmluZyBzbGljZSB0b28gbG9uZwB1bnNpZ25lZCBsb25nAGludmFsaWQgb3JkZXIgZnVuY3Rpb24gZm9yIHNvcnRpbmcAdGFibGUgbW9kaWZpZWQgZHVyaW5nIHNvcnRpbmcAc3RkOjp3c3RyaW5nAF9fdG9zdHJpbmcAZnJvbXN0cmluZwB3cml0ZXN0cmluZwByZWFkc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGludmFsaWQgdXNlIG9mICclYycgaW4gcmVwbGFjZW1lbnQgc3RyaW5nAGZpbmFsIHBvc2l0aW9uIG91dCBvZiBzdHJpbmcAaW5pdGlhbCBwb3NpdGlvbiBvdXQgb2Ygc3RyaW5nACdfX3Rvc3RyaW5nJyBtdXN0IHJldHVybiBhIHN0cmluZwBQcm9wZXJ0eVN0cmluZwBnZXRTdHJpbmcAaXNTdHJpbmcARGF0YVZhbHVlU3RyaW5nAFZpZXdNb2RlbEluc3RhbmNlU3RyaW5nAGFuaXNvdHJvcGljRmlsdGVyaW5nAG1hcHBpbmcAaXNTdGFuZGFyZE1hcHBpbmcAZ2FtZXBhZE1hcHBpbmcAcmVtYWluaW5nAGVycm9yIGluIGVycm9yIGhhbmRsaW5nAFBlbmRpbmcAQXR0ZW1wdGluZyB0byBjb25zdHJ1Y3QgWUdOb2RlIHdpdGggbnVsbCBjb25maWcASW52YWxpZCBkZXZpY2UgY29uZmlnAG1lbW9yeSBhbGxvY2F0aW9uIGVycm9yOiBibG9jayB0b28gYmlnAGRlZwBwb2ludGVyRHJhZwB0dGYAdHlwZW9mAGdldCBsZW5ndGggb2YAaXNpbmYALWluZgBfc2VsZgByaWZmAHVucmVmAG1vZGYAcmVtb3ZlQWxsT2YAJS4wTGYAJUxmACVmAHBhY2tzaXplAHJlc2l6ZQBkc3RTdHJpZGUgbXVzdCBiZSA+PSBjb21wb25lbnRzICogZWxlbWVudCBzaXplAHNyY1N0cmlkZSBtdXN0IGJlID49IGNvbXBvbmVudHMgKiBlbGVtZW50IHNpemUAc3RyaW5nIGxlbmd0aCBkb2VzIG5vdCBmaXQgaW4gZ2l2ZW4gc2l6ZQBzdHJpbmcgbG9uZ2VyIHRoYW4gZ2l2ZW4gc2l6ZQBzdHJpZGUgbXVzdCBiZSA+PSBlbGVtZW50U2l6ZQBtYXhVbmlmb3JtQnVmZmVyU2l6ZQByZXNldEFydGJvYXJkU2l6ZQBmcmVlemUAcmVtb3ZlAHRvbyBtYW55IGVsZW1lbnRzIHRvIG1vdmUAcG9pbnRlck1vdmUAUHJvbWlzZS5yZXNvbHZlAHdpZHRoIG11c3QgYmUgcG9zaXRpdmUAcGVyc3BlY3RpdmUAY291bnQgbXVzdCBiZSBub24tbmVnYXRpdmUAbGV2ZWwgbXVzdCBiZSBub24tbmVnYXRpdmUAZWxlbWVudFNpemUgbXVzdCBiZSBub24tbmVnYXRpdmUAc3RyaWRlIG11c3QgYmUgbm9uLW5lZ2F0aXZlAGZpZWxkIGNhbm5vdCBiZSBuZWdhdGl2ZQByaXZlAHNhdmUAdHJ1ZQBOb3QgdW5pcXVlAGJsdWUAYXR0ZW1wdCB0byAlcyBhICVzIHZhbHVlAG5vIHZhbHVlAGluaXRpYWwgdmFsdWUAaW52YWxpZCB2YWx1ZQAlczoxOiBtb2R1bGUgbXVzdCByZXR1cm4gYSB2YWx1ZQBsb29wVmFsdWUAYnV0dG9uVmFsdWUAdHJhbnNmb3JtVmFsdWUAY2hhbmdlVmFsdWUAVmlld01vZGVsSW5zdGFuY2VWYWx1ZQBkYXRhVmFsdWUAJyVzJyBpcyBub3QgYSB2YWxpZCBpbmRleCBvZiBEYXRhVmFsdWUAaHVlAFR1ZQBpbml0aWFsIHBvc2l0aW9uIGlzIGEgY29udGludWF0aW9uIGJ5dGUAd3JpdGUAaXNmaW5pdGUAZXZhbHVhdGUAJXMgaXMgbm90IGEgdmFsaWQgZmllbGQgb2YgZ2FtZXBhZCBzdGF0ZQBycm90YXRlAGxyb3RhdGUAZm9jdXNTdGF0ZQBsYXRlAGNyZWF0ZQB1cGRhdGUAbWFya05lZWRzVXBkYXRlAHNhbXBsZVJhdGUAcGF1c2UAUmVzb3VyY2UgYWxyZWFkeSBpbiB1c2UAcmV2ZXJzZQB0cmFuc3Bvc2UAZGVjb21wb3NlAGNsb3NlAGZhbHNlAGNsb2Nrd2lzZQBub2lzZQBhc3luYzogY29yb3V0aW5lIHlpZWxkZWQgd2l0aG91dCBhIHByb21pc2UAJyVzJyBpcyBub3QgYSB2YWxpZCBtZW1iZXIgb2YgUHJvbWlzZQAnJXMnIGlzIG5vdCBhIHZhbGlkIG1ldGhvZCBvZiBQcm9taXNlAGFzeW5jOiBhd2FpdCgpIGFyZ3VtZW50IGlzIG5vdCBhIFByb21pc2UAUHJvbWlzZS5hbGw6IGVsZW1lbnQgJWQgaXMgbm90IGEgUHJvbWlzZQBwaGFzZQBBcnRib2FyZEJhc2UALXN5cmUAaW52YWxpZCBwYXR0ZXJuIGNhcHR1cmUAdW5maW5pc2hlZCBjYXB0dXJlAENhcHR1cmUAbWVhc3VyZQBDb250b3VyTWVhc3VyZQBQYXRoTWVhc3VyZQByZXN0b3JlAHJlcXVpcmUAZmlyZQBzcXVhcmUAX190eXBlAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAGVudW1UeXBlAEFydGJvYXJkQ29tcG9uZW50TGlzdFNjb3BlAEJyb2tlbiBwaXBlAEp1bmUAbm9uZQBjbG9uZQBkb25lAGJvbmUAaXNOb25lAGFzTm9uZQByb290Qm9uZQBSb290Qm9uZQBjYW5ub3QgcmVzdW1lIG5vbi1zdXNwZW5kZWQgY29yb3V0aW5lAGNhbm5vdCByZXN1bWUgZGVhZCBjb3JvdXRpbmUAc2V0UGlwZWxpbmUAU3RhdGVNYWNoaW5lAEF1dG8gR2VuZXJhdGVkIFN0YXRlIE1hY2hpbmUAbXVsdGlwbHlBZmZpbmUAaW52ZXJ0QWZmaW5lAHJlc3VtZQB2b2x1bWUARGVidWdMdWF1VXNlckRlZmluZWRDbGFzc2VzUnVudGltZQBkaWZmdGltZQBzZXRUaW1lAHBsYXlBdFRpbWUAcGxheUluVGltZQBwbGF5QXRGcmFtZQBiZWdpbkZyYW1lAHBsYXlJbkZyYW1lAHNlZWtGcmFtZQB0aW1lRnJhbWUAZW5kRnJhbWUAdW5pcXVlRmlsZW5hbWUAYW5pbWF0aW9uQnlOYW1lAHZpZXdNb2RlbEJ5TmFtZQBzdGF0ZU1hY2hpbmVCeU5hbWUAaW5zdGFuY2VCeU5hbWUAYXJ0Ym9hcmRCeU5hbWUAYmluZGFibGVBcnRib2FyZEJ5TmFtZQBmb2N1c05vZGVTZXROYW1lAGZvY3VzTm9kZUdldE5hbWUAZ2V0Vmlld01vZGVsTmFtZQBzdHlsZQBSZW5kZXJQYWludFN0eWxlACclcycgaXMgbm90IGEgdmFsaWQgUGFpbnRTdHlsZQAlczoxOiB1bmtub3duIGVycm9yIHdoaWxlIHJ1bm5pbmcgbW9kdWxlAGZpbGxSdWxlAEZpbGxSdWxlAEludmFsaWQgZmlsZQBGaWxlAGRvdWJsZQBzZXRtZXRhdGFibGUAZ2V0bWV0YXRhYmxlAF9fbWV0YXRhYmxlAHRhYmxlIGhhcyBhIHByb3RlY3RlZCBtZXRhdGFibGUAY2Fubm90IGNoYW5nZSBhIHByb3RlY3RlZCBtZXRhdGFibGUAc3RyaW5nL2Z1bmN0aW9uL3RhYmxlAGF0dGVtcHQgdG8gbW9kaWZ5IGEgcmVhZG9ubHkgdGFibGUAbmlsIG9yIHRhYmxlAGZpZWxkICclcycgbWlzc2luZyBpbiBkYXRlIHRhYmxlAE5ldHdvcmsgdW5hdmFpbGFibGUAUmVzb3VyY2UgdW5hdmFpbGFibGUAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBObyBzcGFjZSBhdmFpbGFibGUATm8gZGF0YSBhdmFpbGFibGUAc2NhbGUAZnJvbVNjYWxlAHdpdGhTY2FsZQBfX2xlAHN0cm9rZQBodWdlAGZvcm1hdCByZXN1bHQgdG9vIGxhcmdlAHNpemUgc3BlY2lmaWVyIGlzIHRvbyBsYXJnZQBpbnRlcnZhbCBpcyB0b28gbGFyZ2UAYnVmZmVyIHRvbyBsYXJnZQByZXN1bHRpbmcgc3RyaW5nIHRvbyBsYXJnZQBUb28gbGFyZ2UAcmVtb3ZlQXQgaW5kZXggb3V0IG9mIHJhbmdlAFZlY3Rvcjp3cml0ZVRvQnVmZmVyIG9mZnNldCBvdXQgb2YgcmFuZ2UATWF0NDp3cml0ZVRvQnVmZmVyIG9mZnNldCBvdXQgb2YgcmFuZ2UAVmVjdG9yOndyaXRlVmVjNCBvZmZzZXQgb3V0IG9mIHJhbmdlAHBvc2l0aW9uIG91dCBvZiByYW5nZQBzaXplIG91dCBvZiByYW5nZQB2YWx1ZSBvdXQgb2YgcmFuZ2UAYmFzZSBvdXQgb2YgcmFuZ2UAT3V0IG9mIHJhbmdlAGlzVmlld01vZGVsQ2hhbmdlAGFzVmlld01vZGVsQ2hhbmdlAGRpZENoYW5nZQBjb2xvckRvZGdlAHBlcmNlbnRhZ2UAc2V0VGltZVBlcmNlbnRhZ2UASW52YWxpZCBtZXNzYWdlAGltYWdlAGRyYXdJbWFnZQBWaWV3TW9kZWxJbnN0YW5jZUFzc2V0SW1hZ2UAZ2V0SW1hZ2UAaXNJbWFnZQBzZXRSZW5kZXJJbWFnZQBtYWtlUmVuZGVySW1hZ2UAX2RyYXdSaXZlSW1hZ2UAZGVjb2RlSW1hZ2UAbm9kZQBfX21vZGUAZGVjb2RlAGludmFsaWQgVVRGLTggY29kZQBOb2RlAGJsZW5kTW9kZQAnJXMnIGlzIG5vdCBhIHZhbGlkIEJsZW5kTW9kZQBzZXRBdWRpb1NvdXJjZQBkaWZmZXJlbmNlAHNldFN0ZW5jaWxSZWZlcmVuY2UAYWR2YW5jZQBpbnN0YW5jZQBkZWZhdWx0SW5zdGFuY2UATGluZWFyQW5pbWF0aW9uSW5zdGFuY2UAdmlld01vZGVsSW5zdGFuY2UAYmluZFZpZXdNb2RlbEluc3RhbmNlAHJlbW92ZUluc3RhbmNlAGRyYXdCYXNlSW5zdGFuY2UAU3RhdGVNYWNoaW5lSW5zdGFuY2UAYWRkSW5zdGFuY2UAZGlzdGFuY2UATm8gZGV2aWNlAEZhaWxlZCB0byBzdGFydCBiYWNrZW5kIGRldmljZQBGYWlsZWQgdG8gc3RvcCBiYWNrZW5kIGRldmljZQBGYWlsZWQgdG8gb3BlbiBiYWNrZW5kIGRldmljZQBEZWZhdWx0IFBsYXliYWNrIERldmljZQBEZWZhdWx0IENhcHR1cmUgRGV2aWNlAHJlcGxhY2UAbWF4VGV4dHVyZVNpemVDdWJlAGZvcndhcmQAYXJ0Ym9hcmQAZGVmYXVsdEFydGJvYXJkAGludGVybmFsQmluZGFibGVBcnRib2FyZEZyb21BcnRib2FyZABCaW5kYWJsZUFydGJvYXJkAFZpZXdNb2RlbEluc3RhbmNlQXJ0Ym9hcmQAc3RhbmRhcmQAZm1vZABfX21vZABmcm91bmQAZGVzdGluYXRpb24gd3JhcCBhcm91bmQAQVBJIG5vdCBmb3VuZABEaXJlY3RTb3VuZABBdWRpb1NvdW5kAHJld2luZABmaW5kAGNoYW5nZUtpbmQAZXh0ZW5kAHBlclRhcmdldEJsZW5kAE5vIGJhY2tlbmQARmFpbGVkIHRvIGluaXRpYWxpemUgYmFja2VuZABBdCBlbmQAJyVzJyBpcyBub3QgYSB2YWxpZCBpbmRleCBvZiBQYXRoQ29tbWFuZABiYW5kAHdvcmtFbmQALW1kAEx1YXVJbmxpbmVIaXRzVGhyZXNob2xkAGNvbnRleHQ6Y2FudmFzKCkgcmVxdWlyZXMgYSBSSVZFX0NBTlZBUyBidWlsZABjb250ZXh0OmdwdUNhbnZhcygpIHJlcXVpcmVzIGEgUklWRV9DQU5WQVMgKyBSSVZFX09SRSBidWlsZAAlczoxOiBtb2R1bGUgY2FuIG5vdCB5aWVsZABodHRwczovL3B1YmxpYy5yaXZlLmFwcC9jZG4vdXVpZABjZG5VdWlkAHZvaWQASW52YWxpZABub3JtYWxpemVkAERldmljZSBub3QgaW5pdGlhbGl6ZWQAZHJhd0luZGV4ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABGb3JtYXQgbm90IHN1cHBvcnRlZABQcm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQARGV2aWNlIHR5cGUgbm90IHN1cHBvcnRlZABTaGFyZSBtb2RlIG5vdCBzdXBwb3J0ZWQARGV2aWNlIG5vdCBzdGFydGVkAEludGVycnVwdGVkAE5vdCBpbXBsZW1lbnRlZABjb21wbGV0ZWQAdGFibGUgb3Igc3RyaW5nIGV4cGVjdGVkAGdhbWVwYWREaXNjb25uZWN0ZWQAaXNHYW1lcGFkRGlzY29ubmVjdGVkAGFzR2FtZXBhZERpc2Nvbm5lY3RlZABBbHJlYWR5IGNvbm5lY3RlZABOb3QgY29ubmVjdGVkAGdhbWVwYWRDb25uZWN0ZWQAaXNHYW1lcGFkQ29ubmVjdGVkAGFzR2FtZXBhZENvbm5lY3RlZAByZWplY3RlZABSZWplY3RlZABDb25uZWN0aW9uIHJlZnVzZWQAcmlnaHRUcmlnZ2VyUHJlc3NlZABsZWZ0VHJpZ2dlclByZXNzZWQAYnV0dG9uUHJlc3NlZABpc0Nsb3NlZABhc3luYyBmdW5jdGlvbiBlcnJvcmVkAERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQAbGVuZ3RoU3F1YXJlZABkaXN0YW5jZVNxdWFyZWQATWVtb3J5IGFscmVhZHkgbWFwcGVkAEx1YXVVZGF0YU1ldGF0YWJsZVBpbm5lZABhdmFpbGFibGVIZWlnaHQgaXMgaW5kZWZpbml0ZSBzbyBoZWlnaHRNZWFzdXJlTW9kZSBtdXN0IGJlIFlHTWVhc3VyZU1vZGVVbmRlZmluZWQAYXZhaWxhYmxlV2lkdGggaXMgaW5kZWZpbml0ZSBzbyB3aWR0aE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABGdWxmaWxsZWQAUHJvbWlzZSB3YXMgY2FuY2VsbGVkAE9wZXJhdGlvbiBjYW5jZWxsZWQAQ2FuY2VsbGVkAFBlcm1pc3Npb24gZGVuaWVkAGhhc0NoYW5nZWQAcmFuZG9tc2VlZABzcGVlZABXZWQAX19hZGQAZXZlbk9kZABzY2FsZUFuZEFkZAByYWQAdXBsb2FkAHRocmVhZABkZXZpY2VJZABpbnZhbGlkIGNhcHR1cmUgaW5kZXggJSUlZABtaXNzaW5nIGFyZ3VtZW50ICMlZABubyBmdW5jdGlvbiBlbnZpcm9ubWVudCBmb3IgdGFpbCBjYWxsIGF0IGxldmVsICVkAGFzdGMALWhic2MAYXN5bmMALXByb3ZlbmMAc2VjAERlYwBiYwAlYwBnc3ViAF9fc3ViAHNjYWxlQW5kU3ViAHJzdGIAcmIAYmxvYgBCbG9iAGFyZ2IARmViAHNldEZhbGxiYWNrRm9udENiAHJ3YQBsdWEATHVhAG1ldGEAdXNlcmRhdGEASW52YWxpZCBkYXRhACVzIGlzIG5vdCBhIHZhbGlkIG1ldGhvZCBvZiBnYW1lcGFkIGRhdGEAUGFpbnREYXRhAFBhdGhEYXRhAE5vZGVEYXRhAC1mb25pcGEALWZvbm5hcGEAYWxwaGEAZW5hYmxlV29ya0FyZWEALWFyZXZtZGEAcmdiYQBbTFkgTm90IGZvdW5kXQBbU00gTm90IGZvdW5kXQBbQUIgTm90IGZvdW5kXQBpbnRlZ3JhbCBzaXplICglZCkgb3V0IG9mIGxpbWl0cyBbMSwlZF0APVtDXQBiaXQgY291bnQgaXMgb3V0IG9mIHJhbmdlIG9mIFswOyAzMl0AIl0AZnJvbVJvdGF0aW9uWgBwZXJzcGVjdGl2ZVJldmVyc2VaAG1heFkAcmlnaHRZAGxlZnRZAGZyb21Sb3RhdGlvblkAbWluWQBzY2FsZVkAbWFwWFkAJWEgJWIgJWQgJUg6JU06JVMgJVkAbWF4WAByaWdodFgAbGVmdFgAZnJvbVJvdGF0aW9uWABtaW5YAHNjYWxlWABQT1NJWABSSUZYAFVMQVcAQUxBVwBHTVQAQ0hBTk5FTF9UT1BfRlJPTlRfUklHSFQAQ0hBTk5FTF9GUk9OVF9SSUdIVABDSEFOTkVMX1RPUF9CQUNLX1JJR0hUAENIQU5ORUxfQkFDS19SSUdIVABDSEFOTkVMX1NJREVfUklHSFQAQ0hBTk5FTF9UT1BfRlJPTlRfTEVGVABDSEFOTkVMX0ZST05UX0xFRlQAQ0hBTk5FTF9UT1BfQkFDS19MRUZUAENIQU5ORUxfQkFDS19MRUZUAENIQU5ORUxfU0lERV9MRUZUAE9TUwBPcGVuU0x8RVMAWUVTAF9NT0RVTEVTAENIQU5ORUxfVE9QX0ZST05UX0NFTlRFUgBDSEFOTkVMX0ZST05UX0NFTlRFUgBDSEFOTkVMX0ZST05UX1JJR0hUX0NFTlRFUgBDSEFOTkVMX0ZST05UX0xFRlRfQ0VOVEVSAENIQU5ORUxfVE9QX0NFTlRFUgBDSEFOTkVMX1RPUF9CQUNLX0NFTlRFUgBDSEFOTkVMX0JBQ0tfQ0VOVEVSAENIQU5ORUxfTU9OTwB0YWJsZSBpbmRleCBjb250YWlucyBOYU4AdGFibGUgaW5kZXggaXMgTmFOAEV4cGVjdCBjdXN0b20gYmFzZWxpbmUgZnVuY3Rpb24gdG8gbm90IHJldHVybiBOYU4AVU5LTk9XTgBfVkVSU0lPTgBOQU4ARk9STQBQTQBXaW5NTQBDT01NAEFNAExDX0FMTABKQUNLAFdBU0FQSQBfRwBMQU5HAElORgBSSUZGAEFJRkYAUklWRQBXQVZFAENIQU5ORUxfTk9ORQBMRQBDSEFOTkVMX0xGRQBTU05EAF9MT0FERUQAbWF4VGV4dHVyZVNpemUzRAB0ZXh0dXJlM0QATWF0MkQAbWF4VGV4dHVyZVNpemUyRABWZWMyRABBSUZDAEFBQkIAQUxTQQAwMTIzNDU2Nzg5LkVFPy0/AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDMyX3Q+AFByb3BlcnR5PG51bWJlcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AFByb3BlcnR5PGVudW0+AFByb3BlcnR5PGJvb2w+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AUHJvcGVydHk8SW1hZ2U+AD09ADw9ADwAQ0hBTk5FTF9BVVhfOQAwMTIzNDU2Nzg5AENIQU5ORUxfQVVYXzI5AENIQU5ORUxfQVVYXzE5AHdyaXRldTgAcmVhZHU4AHdyaXRlaTgAcmVhZGk4AHV0ZjgAQ0hBTk5FTF9BVVhfOABDSEFOTkVMX0FVWF8yOABDSEFOTkVMX0FVWF8xOABDLlVURi04AENIQU5ORUxfQVVYXzcAQ0hBTk5FTF9BVVhfMjcAQ0hBTk5FTF9BVVhfMTcATHVhdVVkYXRhRGlyZWN0QWNjZXNzNgBDSEFOTkVMX0FVWF82AENIQU5ORUxfQVVYXzI2AHdyaXRldTE2AHJlYWR1MTYAd3JpdGVpMTYAcmVhZGkxNgBidWZmZXIud3JpdGVmMTYAYnVmZmVyLnJlYWRmMTYAQ0hBTk5FTF9BVVhfMTYAQ0hBTk5FTF9BVVhfNQBDSEFOTkVMX0FVWF8yNQBDSEFOTkVMX0FVWF8xNQBNYXQ0AHRyYW5zZm9ybVZlYzQAd3JpdGVWZWM0AENIQU5ORUxfQVVYXzQAZHM2NABmbDY0AHdyaXRlZjY0AHJlYWRmNjQARkw2NABSRjY0AG00NABtMzQAbTI0AENIQU5ORUxfQVVYXzI0AG0xNABDSEFOTkVMX0FVWF8xNABjcm9zczMAQ0hBTk5FTF9BVVhfMwBtNDMAbTMzAG0yMwBDSEFOTkVMX0FVWF8yMwBtMTMAQ0hBTk5FTF9BVVhfMTMAc3FydDIATHVhdVlpZWxkSXRlcjIAYXRhbjIAZXRjMgBDSEFOTkVMX0FVWF8yAG00MgB3cml0ZXUzMgByZWFkdTMyAGJpdDMyAG0zMgBmbDMyAHdyaXRlaTMyAHJlYWRpMzIAd3JpdGVmMzIAcmVhZGYzMgBGTDMyAG0yMgBDSEFOTkVMX0FVWF8yMgBtMTIAQ0hBTk5FTF9BVVhfMTIAZm9ybWF0IGFza3MgZm9yIGFsaWdubWVudCBub3QgcG93ZXIgb2YgMgBDSEFOTkVMX0FVWF8xAG00MQBtMzEAQ0hBTk5FTF9BVVhfMzEAbTIxAENIQU5ORUxfQVVYXzIxAG0xMQBDSEFOTkVMX0FVWF8xMQBjb21wb25lbnRzIG11c3QgYmUgYXQgbGVhc3QgMQBDSEFOTkVMX0FVWF8wAENIQU5ORUxfQVVYXzMwAENIQU5ORUxfQVVYXzIwAGxvZzEwAENIQU5ORUxfQVVYXzEwAFwwMDAALSsgIzAALwBGYWlsZWQgdG8gY29tbWl0IGNhcHR1cmUgUENNIGZyYW1lcyB0byByaW5nIGJ1ZmZlci4AQ2Fubm90IHNldCBtZWFzdXJlIGZ1bmN0aW9uOiBOb2RlcyB3aXRoIG1lYXN1cmUgZnVuY3Rpb25zIGNhbm5vdCBoYXZlIGNoaWxkcmVuLgAlcyBpcyBubyBsb25nZXIgdmFsaWQuACVzIHNhdmUvcmVzdG9yZSBzdGFjayB3YXMgdW5iYWxhbmNlZCBieSB0cnlpbmcgdG8gcmVzdG9yZSBtb3JlIHRpbWVzIHRoYW4gc2F2ZWQuAC4uLgBeJCorPy4oWyUtACwAU2tURml0c0luPGludD4oY291bnQpAGludmFsaWQgZm9ybWF0IChyZXBlYXRlZCBmbGFncykAc3RhY2sgb3ZlcmZsb3cgKCVzKQBpbnZhbGlkIGFyZ3VtZW50ICMlZCAoJXMpAGludmFsaWQgYXJndW1lbnQgIyVkIHRvICclcycgKCVzKQBpbnZhbGlkIGFyZ3VtZW50ICMlZCAoJXMgZXhwZWN0ZWQsIGdvdCAlcykAaW52YWxpZCBhcmd1bWVudCAjJWQgdG8gJyVzJyAoJXMgZXhwZWN0ZWQsIGdvdCAlcykAaW52YWxpZCAnZm9yJyAlcyAobnVtYmVyIGV4cGVjdGVkLCBnb3QgJXMpAGludmFsaWQgcmVwbGFjZW1lbnQgdmFsdWUgKGEgJXMpAChudWxsKQBpbnZhbGlkIGZvcm1hdCAod2lkdGggb3IgcHJlY2lzaW9uIHRvbyBsb25nKQBTa1RGaXRzSW48aW50PihyZXNlcnZlKQBtaXNzaW5nIGFyZ3VtZW50ICMlZCAoJXMgZXhwZWN0ZWQpAG1pc3NpbmcgYXJndW1lbnQgIyVkIHRvICclcycgKCVzIGV4cGVjdGVkKQAyNC1iaXQgU2lnbmVkIEludGVnZXIgKFRpZ2h0bHkgUGFja2VkKQAlczogYnl0ZWNvZGUgdHlwZSB2ZXJzaW9uIG1pc21hdGNoIChleHBlY3RlZCBbJWQuLiVkXSwgZ290ICVkKQAlczogYnl0ZWNvZGUgdmVyc2lvbiBtaXNtYXRjaCAoZXhwZWN0ZWQgWyVkLi4lZF0sIGdvdCAlZCkAYXVkaW8oNCkAYXdhaXQoKSBtdXN0IGJlIGNhbGxlZCBpbnNpZGUgYXN5bmMoKQBtYWxmb3JtZWQgcGF0dGVybiAobWlzc2luZyBhcmd1bWVudHMgdG8gJyUlYicpAG1hbGZvcm1lZCBwYXR0ZXJuIChtaXNzaW5nICddJykAbWFsZm9ybWVkIHBhdHRlcm4gKGVuZHMgd2l0aCAnJSUnKQB1bmZpbmlzaGVkIHN0cmluZyBmb3IgZm9ybWF0ICd6JwBpbnZhbGlkIGtleSB0byAnbmV4dCcAd3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byAnaW5zZXJ0JwBpbnZhbGlkIG9wdGlvbiAnJSUlYycgdG8gJ2Zvcm1hdCcAaW52YWxpZCB2YWx1ZSAoJXMpIGF0IGluZGV4ICVkIGluIHRhYmxlIGZvciAnY29uY2F0JwB1bmtub3duIGJ1ZmZlciBmb3JtYXQgJyVzJwBhdHRlbXB0IHRvIGluZGV4ICVzIHdpdGggJyVzJwBuYW1lIGNvbmZsaWN0IGZvciBtb2R1bGUgJyVzJwB0aGlzICVzIGRvZXMgbm90IGhhdmUgYSBrZXkgbmFtZWQgJyVzJwB3cm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIGZvciBjb25zdHJ1Y3RpbmcgYSAnJXMnAG1pc3Npbmcgc2l6ZSBmb3IgZm9ybWF0IG9wdGlvbiAnYycAaW52YWxpZCBmb3JtYXQgb3B0aW9uICclYycAaW52YWxpZCBuZXh0IG9wdGlvbiBmb3Igb3B0aW9uICdYJwBhQWJCY2RISWptTXBTVXdXeFh5WXpaJQBbc3RyaW5nICIAYXNzZXJ0aW9uIGZhaWxlZCEAcmF3IABmbXQgACVzOiVkOiAAOjogAAoNACAgICAgIENoYW5uZWwgTWFwIE91dDogICAgICAgIHslc30KACAgICAgIENoYW5uZWwgTWFwIEluOiAgICAgICAgIHslc30KAEZhaWxlZCB0byBkZWNvZGUgYXVkaW8gd2l0aCBlcnJvciAlcwoAU2NyaXB0QXNzZXQgZG9lc24ndCBoYXZlIGEgZ2VuZXJhdG9yIGZ1bmN0aW9uICVzCgAlcyBTdGF0ZU1hY2hpbmUgZXhjZWVkZWQgbWF4IGV2ZW50IGl0ZXJhdGlvbnNvbiBhcnRib2FyZCAlcwoAJXMgU3RhdGVNYWNoaW5lIGV4Y2VlZGVkIG1heCBpdGVyYXRpb25zIGluIGxheWVyICVzIG9uIGFydGJvYXJkICVzCgAgICAgRm9ybWF0OiAgICAgICVzIC0+ICVzCgAgICAgICBQb3N0IEZvcm1hdCBDb252ZXJzaW9uOiAlcwoAICBFbmRpYW46ICVzCgAgICAgICBQcmUgRm9ybWF0IENvbnZlcnNpb246ICAlcwoAICBORU9OOiAgICVzCgAgIEFWWDI6ICAgJXMKACAgU1NFMjogICAlcwoAICAgICAgQ2hhbm5lbCBSb3V0aW5nOiAgICAgICAgJXMKACAgICAgIFBhc3N0aHJvdWdoOiAgICAgICAgICAgICVzCgAgICAgICBSZXNhbXBsaW5nOiAgICAgICAgICAgICAlcwoAQmFkIGhlYWRlcgoARXJyb3IgLSBhZGRpbmcgY2xpcCBlbmQgYXMgZmlyc3Qgb3BlcmF0aW9uCgBNaXNzaW5nIHZpZXcgbW9kZWwgcHJvcGVydHkgdHlwZQoAQXVkaW9FbmdpbmU6Ok1ha2UgLSBmYWlsZWQgdG8gaW5pdCBlbmdpbmUKAEludmFsaWQgQXJ0Ym9hcmQKACVzIGZhaWxlZAoAdXBkYXRlIGZ1bmN0aW9uIGZhaWxlZAoAcmVzaXplIGZhaWxlZAoAbWVhc3VyZSBmYWlsZWQKAEZhaWxlZCB0byBpbXBvcnQgb2JqZWN0IG9mIHR5cGUgJWQKAEFydGJvYXJkOjppbml0aWFsaXplIC0gRHJhdyBydWxlIHRhcmdldHMgbWlzc2luZyBjb21wb25lbnQgd2lkdGggaWQgJWQKACAgICBTYW1wbGUgUmF0ZTogJWQgLT4gJWQKACAgICBDaGFubmVsczogICAgJWQgLT4gJWQKAFslc10KAGV4cGVjdGVkIG1lYXN1cmUgdG8gcmV0dXJuIGEgVmVjMkQKAENvdWxkIG5vdCBmaW5kIFZpZXcgTW9kZWwgSW5zdGFuY2UgbmFtZWQgJXMuIFdhcyBpdCBtYXJrZWQgdG8gZXhwb3J0IHdpdGggdGhlIGZpbGU/CgAgICAgQ29udmVyc2lvbjoKAFN5c3RlbSBBcmNoaXRlY3R1cmU6CgBVbnN1cHBvcnRlZCB2ZXJzaW9uICV1LiV1IGV4cGVjdGVkICV1LiV1LgoAQ291bGQgbm90IGZpbmQgYSBWaWV3IE1vZGVsIGxpbmtlZCB0byBBcnRib2FyZCAlcy4KAENvdWxkIG5vdCBmaW5kIFZpZXcgTW9kZWwgbmFtZWQgJXMuCgBBdWRpb1NvdXJjZTo6cGxheSAtIEZhaWxlZCB0byBpbml0aWFsaXplIGF1ZGlvIGJ1ZmZlci4KAEF1ZGlvU291cmNlOjpwbGF5IC0gRmFpbGVkIHRvIGluaXRpYWxpemUgZGVjb2Rlci4KAEF1ZGlvU291cmNlRGVjb2RlciAtIEZhaWxlZCB0byBpbml0aWFsaXplIGRlY29kZXIuCgBDb3VsZCBub3QgZmluZCBWaWV3IE1vZGVsLiBJbmRleCAlenUgaXMgb3V0IG9mIHJhbmdlLgoAQ291bGQgbm90IGZpbmQgVmlldyBNb2RlbCBJbnN0YW5jZS4gSW5kZXggJXp1IGlzIG91dCBvZiByYW5nZS4KAHJpdmVMdWFQdXNoVmlld01vZGVsSW5zdGFuY2VWYWx1ZSAtIHBhc3NlZCBpbiBhIFZpZXdNb2RlbEluc3RhbmNlVmlld01vZGVsIHdpdGggbm8gYXNzb2NpYXRlZCBWaWV3TW9kZWxJbnN0YW5jZS4KAEZhaWxlZCB0byBpbml0aWFsaXplICVzIGJhY2tlbmQuCgAlcyBiYWNrZW5kIGlzIGRpc2FibGVkLgoARGVmYXVsdCBpbnN0YW5jZSBub3QgZm91bmQuIENyZWF0aW5nIGVtcHR5IGluc3RhbmNlIGluc3RlYWQuCgBVbmtub3duIHByb3BlcnR5IGtleSAlZCwgbWlzc2luZyBmcm9tIHByb3BlcnR5IFRvQy4KAEF0dGVtcHRpbmcgdG8gaW5pdGlhbGl6ZSAlcyBiYWNrZW5kLi4uCgAgICVzICglcykKACAgICBCdWZmZXIgU2l6ZTogJWQqJWQgKCVkKQoAJXM6JWQ6IGZhdGFsIGVycm9yOiAiYXNzZXJ0KCVzKSIKAEFydGJvYXJkOjptYXJrTGF5b3V0RGlydHkgLSB0cnlpbmcgdG8gbWFyayBhIGxheW91dCBkaXJ0eSBkdXJpbmcgY2xlYW4gcGFzcyEKAEFydGJvYXJkOjpjbGVhbkxheW91dCAtIHRyeWluZyB0byByZW1vdmUgYSBkaXJ0eSBsYXlvdXQgZHVyaW5nIGNsZWFuIHBhc3MhCgBEZXBlbmRlbmN5IGN5Y2xlIQoAAQECAgMAAAAAAAAAAABqBAAAawQAAGwEAABtBAAAbgQAAAAAAAAAAAAAbwQAAHAEAABxBAAAcgQAAHMEAAA0iAcAKIgHACiIBwAtiAcAOwA4ADoAAAAviAcAKogHAHBwcAAgiAcAKogHAC+IBwB2cHBwAAAAAAAAAAAAAAAAIIgHACqIBwAtiAcALYgHAC2IBwAtiAcAdnBwZmZmZgAgiAcAKogHAHZwcACUhgcAKYgHAHBwaQCVhgcAKYgHAJaGBwApiAcAl4YHACmIBwCYhgcANIgHAJmGBwA0iAcAIIgHADSIBwCahgcANIgHAJuG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AAAE////AAAAADIFAAAA////AAAAADMFAAA0BQAANQUAAPz+//8AAAAANgUAADcFAAA4BQAAOQUAADoFAAA7BQAAPAUAAD0FAAA+BQAArPr//wAAAAA/BQAAQAUAAEEFAACo+v//AAAAAEIFAACk+v//AAAAAEMFAACg+v//AAAAAEQFAABFBQAARgUAAEcFAABIBQAAAAAAAAAAAABJBQAASgUAALgEAAC5BAAAugQAALsEAAC8BAAAvQQAAL4EAAC/BAAAwAQAAMEEAADCBAAAwwQAAMQEAADFBAAAxgQAAMcEAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAADOBAAAzwQAANAEAADRBAAA0gQAANMEAADUBAAA1QQAANYEAADXBAAA2AQAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAOIEAADjBAAA5AQAAOUEAADmBAAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADvBAAA8AQAAPEEAADyBAAA8wQAAPQEAAD1BAAA9gQAAPcEAAD4BAAA+QQAAPoEAAD7BAAA/AQAAP0EAAD+BAAA/wQAAAAFAAABBQAAAgUAAAMFAAAEBQAABQUAAAYFAAAHBQAACAUAAAkFAAAKBQAACwUAAAwFAAANBQAADgUAAA8FAAAQBQAAEQUAABIFAAATBQAAFAUAABUFAAAWBQAAFwUAABgFAAAZBQAAGgUAABsFAAAcBQAAHQUAAB4FAAAfBQAAIAUAACEFAAAiBQAAIwUAACQFAACY////AAAAACUFAAAmBQAAJwUAABz///8AAAAAKAUAACkFAAAY////AAAAACoFAAArBQAASwUAAEwFAAAuBQAALwUAADAFAAAxBQAABP///wAAAAAyBQAAAP///wAAAABNBQAATgUAADUFAAD8/v//AAAAADYFAAA3BQAAOAUAADkFAAA6BQAAOwUAADwFAAA9BQAAPgUAAKz6//8AAAAATwUAAFAFAABBBQAAqPr//wAAAABCBQAApPr//wAAAABDBQAAoPr//wAAAABEBQAARQUAAEYFAABHBQAASAUAAAAAAAAAAAAAUQUAAFIFAABTBQAAVAUAAFUFAABWBQAAvAQAAFcFAABYBQAAWQUAAMAEAADBBAAAWgUAAFsFAABcBQAAXQUAAF4FAABfBQAAyAQAAMkEAADKBAAAywQAAMwEAADNBAAAYAUAAM8EAABhBQAAYgUAAGMFAABkBQAAZQUAANUEAABmBQAA1wQAAGcFAADZBAAA2gQAANsEAADcBAAA3QQAAN4EAADfBAAA4AQAAOEEAABoBQAA4wQAAGkFAABqBQAAawUAAOcEAADoBAAA6QQAAOoEAADrBAAA7AQAAO0EAADuBAAA7wQAAPAEAABsBQAAbQUAAG4FAABvBQAAcAUAAHEFAAByBQAAcwUAAPkEAAB0BQAAdQUAAJj///8AAAAAdgUAACYFAAAnBQAAAAAAAAAAAAB3BQAAeAUAAHkFAAB6BQAAewUAAHwFAAC8BAAAVwUAAFgFAABZBQAAwAQAAMEEAAB9BQAAWwUAAFwFAAB+BQAAXgUAAF8FAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAAB/BQAAzwQAAIAFAABiBQAAYwUAAGQFAABlBQAA1QQAAGYFAADXBAAAZwUAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAGgFAADjBAAAaQUAAGoFAABrBQAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADvBAAA8AQAAIEFAACCBQAAgwUAAPQEAAD1BAAA9gQAAPcEAAD4BAAAhAUAAPoEAAD7BAAAhQUAAIYFAACHBQAAiAUAAIkFAACKBQAAiwUAAIwFAACNBQAAjgUAAI8FAACQBQAAkQUAAJIFAACTBQAAlAUAAJUFAACWBQAAlwUAAJgFAACZBQAAmgUAAJsFAACcBQAAnQUAAJ4FAACfBQAAoAUAAKEFAACiBQAAowUAAKQFAAClBQAApgUAAKcFAACoBQAAqQUAAKoFAACrBQAArAUAAK0FAACuBQAArwUAALAFAACY////AAAAAHYFAAAmBQAAJwUAACz///8AAAAAsQUAALIFAACzBQAAtAUAALUFAAC2BQAAtwUAALgFAAC5BQAAugUAALsFAAC8BQAAvQUAAL4FAAC/BQAAwAUAAMEFAADCBQAAwwUAACT///8AAAAAxAUAACD///8AAAAAxQUAABz///8AAAAAxgUAAMcFAADIBQAAyQUAAMoFAADLBQAAzAUAAM0FAADOBQAADP///wAAAADPBQAACP///wAAAADQBQAA0QUAANIFAADTBQAA1AUAANUFAADWBQAA1wUAANgFAADZBQAA2gUAAAT///8AAAAA2wUAANwFAAAAAAAAAAAAAHgEAAB4BAAAAAAAAAAAAADdBQAA3gUAAAAAAAAAAAAA5AUAAOUFAADmBQAA5wUAAAAAAAAAAAAA6AUAAOkFAADqBQAA6wUAAAAAAAAAAAAA7AUAAO0FAAB4BAAAeAQAAHgEAADuBQAA7wUAAPAFAADxBQAA8gUAAAAAAAAAAAAA8wUAAPQFAAD1BQAA9gUAAPcFAAABAAAAAAAAAP////8CAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAD/////AgAAAAIAAAD/////AAAAAAIAAAACAAAAAgAAAP////////////////////8CAAAABAAAAAIAAAACAAAAAgAAAP////8DAAAAAwAAAAIAAAAAAAAABAAAAAIAAAD///////////////8CAAAAAgAAAAAAAAAAAAAABAAAAAAAAAD/////AAAAAP////8BAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAABAAAAAIAAAACAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAACAAAA//////////////////////////////////////////8CAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAADAAAAAgAAAAIAAAACAAAAAAAAAAAAAAAEAAAAAAAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAAAAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAIAAAACAAAAAAAAAAAAAAD//////////////////////////////////////////wEAAAD/////AgAAAAQAAAD/////////////////////////////////////AAAAAP////8AAAAAAAAAAP//////////AAAAAAAAAAACAAAAAAAAAP////8AAAAAAgAAAAIAAAACAAAABAAAAAAAAAACAAAAAAAAAAAAAAD//////////wAAAAACAAAAAAAAAAQAAAAAAAAA/////wIAAAAAAAAAAAAAAAAAAAAEAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAACAAAAAgAAAAQAAAACAAAAAQAAAAAAAAD/////AAAAAAIAAAACAAAA////////////////AQAAAP//////////AgAAAAIAAAD///////////////////////////////8BAAAAAAAAAAAAAAD/////AAAAAAAAAAACAAAA////////////////////////////////AAAAAAAAAAAEAAAAAgAAAAAAAAD//////////wIAAAD/////BAAAAAEAAAD/////AQAAAAAAAAD///////////////////////////////////////////////////////////////////////////////////////////////8BAAAA////////////////AAAAAP////8CAAAA/////////////////////wAAAAABAAAAAAAAAP//////////AAAAAAIAAAACAAAAAAAAAAIAAAAAAAAA//////////8CAAAA////////////////AAAAAAIAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAP///////////////wAAAAAAAAAA//////////8AAAAAAgAAAAIAAAACAAAAAAAAAAIAAAACAAAAAgAAAAIAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAQAAAACAAAAAAAAAAIAAAACAAAAAgAAAAIAAAACAAAA//////////////////////////////////////////8AAAAAAAAAAP//////////////////////////AAAAAAAAAAD/////AQAAAP//////////AQAAAAIAAAAEAAAABAAAAAIAAAACAAAA//////////8CAAAAAgAAAAIAAAACAAAA//////////8EAAAAAAAAAAAAAAD/////AgAAAAIAAAD/////////////////////////////////////AAAAAAIAAAD/////AAAAAAAAAAD//////////////////////////wAAAAAAAAAA/////////////////////wAAAAACAAAAAgAAAAAAAAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAAAP///////////////wIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAP//////////////////////////AgAAAP//////////////////////////AAAAAAAAAAAAAAAA//////////8EAAAA/////////////////////////////////////wAAAAAAAAAA////////////////AAAAAAMAAAD/////AQAAAP//////////AAAAAAEAAAD///////////////8AAAAAAAAAAP//////////////////////////AQAAAP////8AAAAAAgAAAP////8AAAAAAQAAAAEAAAD//////////wEAAAAAAAAA//////////8AAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAABAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8EAAAAAQAAAAIAAAAAAAAAAwAAAAQAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAD/////BAAAAP//////////AAAAAAMAAAACAAAAAAAAAAEAAAAAAAAAAAAAAP///////////////wAAAAD/////AQAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////wAAAAAAAAAA/////wIAAAAEAAAAAAAAAP////8AAAAA/////wIAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAD/////AAAAAAIAAAAEAAAAAgAAAAQAAAD///////////////8CAAAAAgAAAAIAAAACAAAA//////////8EAAAA/////wAAAAACAAAAAgAAAAAAAAAAAAAA/////wEAAAD/////AAAAAAAAAAAAAAAAAgAAAAIAAAACAAAAAgAAAP//////////AAAAAP////8EAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAACAAAAAAAAAP//////////BAAAAP//////////////////////////////////////////AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAACAAAABAAAAP///////////////wIAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAAAAAAAAAABAAAA////////////////BAAAAP////////////////////8AAAAAAAAAAAIAAAAAAAAABAAAAP////8CAAAABAAAAAIAAAACAAAAAgAAAAIAAAD/////////////////////////////////////////////////////////////////////AAAAAP//////////////////////////AgAAAAIAAAACAAAAAgAAAAIAAAACAAAA//////////8AAAAA/////wAAAAABAAAAAgAAAP////////////////////8AAAAAAAAAAP////////////////////////////////////////////////////8AAAAAAwAAAP///////////////////////////////////////////////wAAAAD/////AAAAAP////8EAAAABAAAAP////////////////////8AAAAA/////wAAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAQAAAP////8BAAAA/////wAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////////////////////AAAAAAIAAAACAAAA/////wQAAAAAAAAAAAAAAAIAAAAEAAAA//////////////////////////////////////////////////////////8CAAAAAgAAAP//////////AQAAAAAAAAD/////BAAAAP//////////////////////////AQAAAAQAAAAAAAAA////////////////AQAAAP///////////////wAAAAAAAAAAAAAAAP////8AAAAAAAAAAP////////////////////////////////////////////////////////////////////////////////////8AAAAABAAAAAQAAAAEAAAAAAAAAAAAAAD/////////////////////AAAAAAEAAAD/////AAAAAAAAAAD/////////////////////AAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAEAAAAAAAAAP////8AAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAAAAAAAAD//////////wQAAAAAAAAA//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAABAAAAAAAAAD//////////wIAAAAAAAAAAAAAAPgFAAD5BQAA+gUAAPsFAAD8BQAA/QUAAAAAAAAAAAAA+AUAAP4FAAD/BQAA+wUAAPwFAAD9BQAAAAAAAAAAAAD4BQAAAAYAAAEGAAD7BQAA/AUAAP0FAAAAAAAAAAAAAPgFAAACBgAAAwYAAPsFAAD8BQAA/QUAAAAAAAAAAAAABAYAAAUGAAAGBgAA+wUAAPwFAAD9BQAAAAAAAAAAAAD4BQAABwYAAAgGAAD7BQAA/AUAAP0FAAAAAAAAAAAAAPMFAAAJBgAA9QUAAAoGAAD3BQAAAAAAAAAAAADzBQAACwYAAPUFAAAMBgAA9wUAAAAAAAAAAAAA8wUAAA0GAAD1BQAADgYAAPcFAAAAAAAAAAAAAPMFAAAPBgAA9QUAABAGAAD3BQAAAAAAAAAAAADzBQAAEQYAAPUFAAASBgAA9wUAAAAAAAAAAAAA8wUAABMGAAD1BQAAFAYAAPcFAAAAAAAAAAAAAPMFAAAVBgAA9QUAABYGAAD3BQAAAAAAAAAAAADzBQAAFwYAAPUFAAAYBgAA9wUAAAAAAAAAAAAA8wUAABkGAAD1BQAAGgYAAPcFAAAAAAAAAAAAAPMFAAAbBgAA9QUAABwGAAD3BQAAAAAAAAAAAADzBQAAHQYAAPUFAAAeBgAA9wUAAAAAAAAAAAAA8wUAAB8GAAD1BQAAIAYAAPcFAAAAAAAAAAAAAOgFAAAhBgAAIgYAAOcFAAAAAgICAgICAgICAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjBgAAJAYAACUGAAAmBgAAJwYAACgGAAC8BAAAKQYAACoGAABZBQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAAvBgAAMAYAAAAAAAAAAAAAMQYAADIGAAAzBgAANAYAADUGAAA2BgAAvAQAADcGAADxBQAAWQUAAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAuBgAAOAYAADkGAAA6BgAAOwYAADwGAAA9BgAAPgYAAAAAAAAAAAAAPwYAAEAGAABBBgAAQgYAAEMGAABEBgAA7wUAAPAFAADxBQAARQYAAEYGAABHBgAASAYAAEkGAAAAAAAAAAAAAEoGAABLBgAATAYAAE0GAABOBgAATwYAAO8FAABQBgAA8QUAAFEGAABSBgAAUwYAAFQGAABVBgAAVgYAAFcGAABYBgAAWQYAAFoGAADo////AAAAAFsGAABcBgAAAAAAAAAAAABdBgAAXgYAAF8GAABgBgAAYQYAAGIGAADvBQAA8AUAAPEFAABjBgAAZAYAAGUGAABmBgAAZwYAAGgGAABpBgAAagYAAGsGAABsBgAAbQYAAG4GAABvBgAAcAYAAHEGAAByBgAAcwYAAHQGAADo////AAAAAHUGAAB2BgAAdwYAAHgGAAB5BgAAAAAAAAAAAAB6BgAAewYAAHwGAAB9BgAAfgYAAH8GAADvBQAA8AUAAPEFAABjBgAAZAYAAIAGAACBBgAAggYAAGgGAABpBgAAagYAAIMGAABsBgAAhAYAAIUGAACGBgAAhwYAAOj///8AAAAAdQYAAHYGAAB3BgAAeAYAAHkGAAAAAAAAAAAAAIgGAACJBgAAigYAAIsGAACMBgAAjQYAAO8FAABQBgAA8QUAAFEGAABSBgAAUwYAAFQGAABVBgAAVgYAAFcGAABYBgAAWQYAAFoGAACOBgAAjwYAAJAGAADo////AAAAAFsGAABcBgAAAAAAAAAAAACRBgAAkgYAAJMGAACUBgAAlQYAAJYGAADvBQAA8AUAAPEFAABjBgAAZAYAAJcGAACYBgAAmQYAAGgGAABpBgAAagYAAGsGAABsBgAAbQYAAJoGAADo////AAAAAHUGAAB2BgAAdwYAAHgGAAB5BgAAAAAAAAAAAACbBgAAnAYAAJ0GAAD7BQAA/AUAAP0FAAAAAAAAAAAAAOwFAACeBgAAnwYAAKAGAAChBgAAogYAAO8FAACjBgAA8QUAAKQGAAClBgAApgYAAKcGAACoBgAAqQYAAKoGAACrBgAAAAAAAAAAAADsBQAArAYAAK0GAACuBgAArwYAALAGAADvBQAAsQYAAPEFAACkBgAAsgYAALMGAAC0BgAAtQYAALYGAAC3BgAAAAAAAAAAAAAjBgAAuAYAALkGAAC6BgAAuwYAALwGAAC8BAAANwYAAL0GAABZBQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAC+BgAAvwYAAAAAAAAAAAAAIwYAAMAGAAC5BgAAugYAALsGAAC8BgAAvAQAADcGAADxBQAAWQUAAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAuBgAAwQYAAMIGAAAAAAAAAAAAAMMGAADEBgAAxQYAAMYGAADHBgAAyAYAALwEAAA3BgAAyQYAAFkFAADABAAAwQQAAMoGAADLBgAAzAYAAM0GAABeBQAALgYAAMgEAADJBAAAygQAAMsEAADMBAAAzQQAAGAFAADPBAAAYQUAAGIFAABjBQAAZAUAAM4GAADVBAAAZgUAANcEAABnBQAA2QQAANoEAADbBAAA3AQAAN0EAADeBAAA3wQAAOAEAADhBAAAaAUAAOMEAABpBQAAagUAAGsFAADnBAAA6AQAAOkEAADqBAAA6wQAAOwEAADtBAAA7gQAAM8GAADQBgAA0QYAANIGAADTBgAA1AYAANUGAADWBgAA1wYAANgGAADZBgAAmP///wAAAADaBgAA2wYAACcFAAAAAAAAAAAAANwGAADdBgAA3gYAAN8GAADgBgAA4QYAAO8FAADwBQAA8QUAAOIGAADjBgAA5AYAAOUGAADmBgAA5wYAAOgGAADpBgAA6gYAAOsGAADsBgAAAAAAAAAAAADtBgAA7gYAAO8GAADwBgAA8QYAAPIGAADvBQAA8AUAAPEFAADyBQAA8wYAAPQGAAAAAAAAAAAAAO0GAAD1BgAA7wYAAPAGAADxBgAA8gYAAO8FAADwBQAA8QUAAPIFAAD2BgAA9AYAAAAAAAAAAAAA9wYAAPgGAAD5BgAA+gYAAPsGAAD8BgAA7wUAAPAFAADxBQAA8gUAAPMGAAD9BgAAAAAAAAAAAAD+BgAA/wYAAAAHAAABBwAAAgcAAAMHAADvBQAABAcAAAUHAAAGBwAABwcAAAgHAAAAAAAAAAAAAP4GAAAJBwAACgcAAAsHAAACBwAADAcAAO8FAAAEBwAABQcAAAYHAAAHBwAACAcAAAAAAAAAAAAA/gYAAA0HAAAOBwAADwcAAAIHAAAQBwAA7wUAAAQHAAAFBwAABgcAAAcHAAAIBwAAAAAAAAAAAAARBwAAEgcAABMHAAAUBwAAFQcAABYHAAC8BAAAFwcAAPEFAABZBQAAwAQAAMEEAAAYBwAALAYAAFwFAAAtBgAAXgUAAC4GAADIBAAAGQcAABoHAAAbBwAAHAcAAB0HAAAeBwAAAAAAAAAAAADsBQAAHwcAACAHAAAhBwAAIgcAACMHAADvBQAA8AUAAPEFAADyBQAAAAAAAAAAAADsBQAAJAcAACUHAAAmBwAAJwcAACgHAADvBQAA8AUAAPEFAADyBQAAKQcAAAAAAAAAAAAA7AUAACoHAAArBwAALAcAAC0HAAAuBwAA7wUAAPAFAADxBQAA8gUAAC8HAAAAAAAAAAAAAOwFAAAwBwAAMQcAADIHAAAtBwAAMwcAAO8FAADwBQAA8QUAAPIFAAAvBwAAAAAAAAAAAADsBQAANAcAADUHAAA2BwAANwcAADgHAADvBQAA8AUAAPEFAADyBQAAOQcAAAAAAAAAAAAAOgcAADsHAAA8BwAAPQcAACcHAAA+BwAA7wUAAPAFAADxBQAA8gUAACkHAAAAAAAAAAAAAOwFAAA/BwAAQAcAAEEHAABCBwAAQwcAAO8FAADwBQAA8QUAAPIFAABEBwAAAAAAAAAAAABFBwAARgcAAEcHAABIBwAASQcAAEoHAADvBQAA8AUAAPEFAADyBQAASwcAAAAAAAAAAAAARQcAAEwHAABHBwAASAcAAEkHAABKBwAA7wUAAPAFAADxBQAA8gUAAEsHAAAAAAAAAAAAAOwFAABNBwAATgcAAE8HAABQBwAAUQcAAO8FAADwBQAA8QUAAPIFAABSBwAAAAAAAAAAAADsBQAAUwcAAFQHAABVBwAAVgcAAFcHAADvBQAA8AUAAPEFAADyBQAAWAcAAAAAAAAAAAAA7AUAAFkHAABaBwAAWwcAACcHAABcBwAA7wUAAPAFAADxBQAA8gUAACkHAAAAAAAAAAAAACMGAABdBwAAXgcAAF8HAABgBwAAYQcAALwEAABiBwAA8QUAAFkFAADABAAAwQQAACsGAAAsBgAAXAUAAC0GAABeBQAALgYAAGMHAABkBwAAZQcAAGYHAABnBwAAaAcAAAAAAAAAAAAAIwYAAGkHAABqBwAAawcAAGwHAABtBwAAvAQAADcGAADxBQAAWQUAAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAuBgAAbgcAAG8HAAAAAAAAAAAAAOgFAABwBwAAcQcAAOcFAAAAAAAAAAAAAOgFAAByBwAAIgYAAOcFAAAAAAAAAAAAAOgFAABzBwAAIgYAAOcFAAAAAAAAAAAAAOgFAAB0BwAAdQcAAOcFAAACAAAAAgAAAAMAAAADAAAAAAAAAAAAAAB2BwAAdwcAAHgHAAB5BwAAegcAAHsHAADvBQAA8AUAAPEFAABjBgAAZAYAAHwHAAB9BwAAfgcAAH8HAACABwAAagYAAGsGAABsBgAAbQYAAIEHAACCBwAAgwcAAOj///8AAAAAdQYAAHYGAAB3BgAAeAYAAHkGAAB0////AAAAAIQHAACFBwAAAAAAAAAAAACGBwAAhwcAAIgHAACJBwAAigcAAIsHAADvBQAA8AUAAPEFAADyBQAAjAcAAI0HAAAAAAAAAAAAAIYHAACOBwAAiAcAAIkHAACKBwAAiwcAAO8FAADwBQAA8QUAAI8HAACMBwAAjQcAAAAAAAAAAAAAIwYAAJAHAACRBwAAkgcAAJMHAACUBwAAlQcAAJYHAADxBQAAWQUAAMAEAADBBAAAKwYAAJcHAACYBwAALQYAAF4FAAAuBgAAmQcAAJoHAACbBwAAnAcAAJ0HAACeBwAAnwcAAAAAAAAAAAAAIwYAAKAHAAChBwAAogcAAKMHAACkBwAAvAQAADcGAADxBQAApQcAAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAuBgAApgcAAKcHAACoBwAAqQcAAKoHAACrBwAArAcAAK0HAACuBwAArwcAALAHAACxBwAAsgcAALMHAAC0BwAAAAAAAAAAAAC1BwAAtgcAALcHAAC4BwAAuQcAALoHAAC7BwAAvAcAAAAAAAAAAAAAvQcAAL4HAAC/BwAAwAcAAMEHAADCBwAAvAQAADcGAADxBQAApQcAAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAuBgAApgcAAMMHAADEBwAAxQcAAMYHAADHBwAArAcAAMgHAACuBwAAyQcAAMoHAADLBwAAzAcAAM0HAADOBwAAzwcAANAHAADRBwAAAAAAAAAAAAAjBgAA0gcAANMHAADUBwAA1QcAANYHAAC8BAAA1wcAAPEFAABZBQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAADYBwAA2QcAAAAAAAAAAAAAIwYAANoHAADbBwAA3AcAANUHAADdBwAAvAQAAN4HAADxBQAAWQUAAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAuBgAA2AcAANkHAAAAAAAAAAAAACMGAADfBwAA4AcAAOEHAADVBwAA7gUAALwEAADiBwAA8QUAAFkFAADABAAAwQQAACsGAAAsBgAAXAUAAC0GAABeBQAALgYAANgHAADZBwAAAAAAAAAAAAD+BgAA4wcAAOQHAADlBwAA5gcAAOcHAADvBQAABAcAAAUHAAAGBwAABwcAAOgHAADpBwAA6gcAAAAAAAAAAAAA6wcAAOwHAADtBwAA7gcAAO8HAADwBwAAAAAAAAAAAADxBwAA8gcAAPMHAAD0BwAA9QcAAPYHAADvBQAA9wcAAPgHAAD5BwAA+gcAAPsHAAD8BwAA/QcAAAAAAAAAAAAA/gcAAP8HAAAACAAAAQgAAAIHAADuBQAA7wUAAAQHAAAFBwAABgcAAAcHAAAIBwAAAAAAAAAAAAD+BwAAAggAAAMIAAAECAAABQgAAAYIAADvBQAABAcAAAUHAAAHCAAABwcAAAgIAAAJCAAAAAAAAAAAAAAKCAAACwgAAAwIAAANCAAADggAAA8IAAAAAAAAAAAAABAIAAARCAAAEggAABMIAAAOCAAADwgAAAAAAAAAAAAAIwYAABQIAAAVCAAAFggAABcIAAAYCAAAvAQAABkIAADxBQAAWQUAAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAuBgAAGggAABsIAAAcCAAAHQgAAAAAAAAAAAAA7AUAAB4IAAAfCAAAIAgAAKEGAAAhCAAA7wUAACIIAADxBQAApAYAACMIAAAkCAAApwYAAKgGAACpBgAAqgYAAKsGAAAAAAAAAAAAAP4HAAAlCAAAJggAACcIAAACBwAAKAgAAO8FAAAEBwAABQcAAAYHAAAHBwAAKQgAAAAAAAAAAAAAKggAACsIAAAsCAAALQgAAC4IAAAPCAAAAAAAAAAAAAAqCAAALwgAADAIAAAtCAAALggAAA8IAAAAAAAAAAAAADEIAAAyCAAAMwgAADQIAAACBwAANQgAAO8FAAAEBwAABQcAADYIAAAHBwAACAgAAAAAAAAAAAAANwgAADgIAAA5CAAAOggAADsIAAA8CAAA7wUAAD0IAAA+CAAAPwgAAEAIAABBCAAAQggAAEMIAABECAAARQgAAEYIAABHCAAASAgAAEkIAAAAAAAAAAAAAOwFAABKCAAASwgAAEwIAABNCAAATggAAO8FAABPCAAAUAgAAFEIAAD6BwAAUggAAAAAAAAAAAAAUwgAAFQIAABVCAAAVggAAAAAAAAAAAAAVwgAAFgIAABZCAAAWggAAFsIAABcCAAAvAQAADcGAABdCAAAWQUAAMAEAADBBAAAGAcAACwGAABcBQAALQYAAF4FAAAuBgAAyAQAAF4IAABfCAAAYAgAAGEIAABiCAAAYwgAALj///8AAAAAZAgAAGUIAABmCAAAtP///wAAAABnCAAAaAgAAGkIAABqCAAAawgAAGwIAABtCAAAbggAAG8IAAAAAAAAAAAAAHAIAABxCAAAcggAAHMIAAB0CAAAdQgAAHYIAAB3CAAA8QUAAFkFAADABAAAwQQAABgHAAB4CAAAXAUAAHkIAABeBQAALgYAAMgEAAB6CAAAewgAAHwIAAB9CAAAfggAAAAAAAAAAAAAEQcAAH8IAACACAAAgQgAAIIIAACDCAAAvAQAAIQIAADxBQAAWQUAAMAEAADBBAAAGAcAACwGAABcBQAALQYAAF4FAAAuBgAAyAQAAIUIAACGCAAAhwgAAIgIAACJCAAAiggAAIsIAACMCAAAjQgAAAAAAAAAAAAAEQcAAI4IAACPCAAAkAgAAJEIAACSCAAAvAQAAIQIAADxBQAAWQUAAMAEAADBBAAAGAcAACwGAABcBQAALQYAAF4FAAAuBgAAyAQAAIUIAACGCAAAhwgAAIgIAACTCAAAlAgAAJUIAACWCAAAAAAAAAAAAACXCAAAmAgAAJkIAACaCAAAmwgAAJwIAACdCAAAAAAAAAAAAACXCAAAnggAAJ8IAACgCAAAoQgAAKIIAACjCAAAAAAAAAAAAACkCAAApQgAAKYIAACnCAAAqAgAAKkIAAC8BAAAqggAAKsIAABZBQAAwAQAAMEEAAArBgAArAgAAFwFAACtCAAAXgUAAC4GAACuCAAArwgAALAIAAAAAAAAAAAAALEIAACyCAAAswgAALQIAAC1CAAAtggAAAAAAAAAAAAAsQgAALcIAAC4CAAAuQgAALoIAAC7CAAAAAAAAAAAAAARBwAAvAgAAL0IAAC+CAAAvwgAAMAIAAC8BAAAwQgAAMIIAABZBQAAwAQAAMEEAAAYBwAALAYAAFwFAAAtBgAAXgUAAC4GAADIBAAAwwgAAAAAAAAAAAAAxAgAAMUIAADGCAAAxwgAAMgIAADJCAAA7wUAAPAFAADxBQAAYwYAAGQGAADKCAAAmAYAAMsIAABoBgAAaQYAAGoGAABrBgAAbAYAAG0GAADo////AAAAAHUGAAB2BgAAdwYAAHgGAAB5BgAAAAAAAAAAAADMCAAAzQgAAM4IAADPCAAA0AgAANEIAADvBQAA8AUAAPEFAABjBgAAZAYAANIIAADTCAAA1AgAAGgGAABpBgAAagYAAGsGAABsBgAAbQYAANUIAADWCAAA6P///wAAAAB1BgAAdgYAAHcGAAB4BgAAeQYAAAAAAAAAAAAAzAgAANcIAADYCAAA2QgAANAIAADaCAAA7wUAAPAFAADxBQAAYwYAAGQGAADbCAAA3AgAANQIAABoBgAAaQYAAGoGAABrBgAAbAYAAG0GAADVCAAA1ggAAOj///8AAAAAdQYAAHYGAAB3BgAAeAYAAHkGAAAAAAAAAAAAAMwIAADdCAAA3ggAAN8IAADQCAAA4AgAAO8FAADwBQAA8QUAAGMGAABkBgAA4QgAAOIIAADUCAAAaAYAAGkGAABqBgAAawYAAGwGAABtBgAA1QgAANYIAADo////AAAAAHUGAAB2BgAAdwYAAHgGAAB5BgAAAAAAAAAAAADjCAAA5AgAAOUIAADmCAAAyAgAAOcIAADvBQAA8AUAAPEFAABjBgAAZAYAAOgIAACYBgAA6QgAAGgGAABpBgAAagYAAGsGAABsBgAAbQYAAOj///8AAAAAdQYAAHYGAAB3BgAAeAYAAHkGAAAAAAAAAAAAAOoIAADrCAAA7AgAAO0IAADICAAA7ggAAO8FAADwBQAA8QUAAGMGAABkBgAA7wgAAPAIAADxCAAA8ggAAPMIAAD0CAAA9QgAAGwGAAD2CAAA6P///wAAAAB1BgAAdgYAAHcGAAB4BgAAeQYAAAAAAAAAAAAA9wgAAPgIAAD5CAAA+ggAAPsIAAD8CAAA7wUAAPAFAADxBQAA/QgAAP4IAAAAAAAAAAAAAP8IAAAACQAAAQkAAAIJAADICAAAAwkAAO8FAADwBQAA8QUAAGMGAABkBgAABAkAAJgGAAAFCQAAaAYAAGkGAABqBgAAawYAAGwGAABtBgAA6P///wAAAAB1BgAAdgYAAHcGAAB4BgAAeQYAAAAAAAAAAAAABgkAAAcJAAAICQAACQkAAAoJAAALCQAA7wUAAPAFAADxBQAAYwYAAGQGAAAMCQAAmAYAAA0JAABoBgAAaQYAAGoGAABrBgAAbAYAAG0GAAAOCQAA6P///wAAAAB1BgAAdgYAAHcGAAB4BgAAeQYAAAAAAAAAAAAADwkAABAJAAARCQAAEgkAABMJAAAUCQAA7wUAAPAFAADxBQAAYwYAAGQGAAAVCQAAmAYAABYJAABoBgAAaQYAAGoGAABrBgAAbAYAAG0GAAAXCQAAGAkAABkJAADo////AAAAAHUGAAB2BgAAdwYAAHgGAAB5BgAAAAAAAAAAAAAaCQAAGwkAABEJAAASCQAAEwkAABQJAADvBQAA8AUAAPEFAABjBgAAZAYAABwJAACYBgAAHQkAAGgGAABpBgAAagYAAGsGAABsBgAAbQYAAB4JAAAfCQAAIAkAAOj///8AAAAAdQYAAHYGAAB3BgAAeAYAAHkGAAAAAAAAAAAAACEJAAAiCQAAIwkAACQJAADICAAAJQkAAO8FAADwBQAA8QUAAGMGAABkBgAAJgkAAJgGAAAnCQAAaAYAAGkGAABqBgAAawYAAGwGAABtBgAA6P///wAAAAB1BgAAdgYAAHcGAAB4BgAAeQYAAAAAAAAAAAAA+AUAACgJAAApCQAA+wUAAPwFAAD9BQAAAAAAAAAAAAAqCQAAKwkAACwJAAAtCQAALgkAAC8JAADvBQAA8AUAAPEFAABjBgAAZAYAADAJAACYBgAAMQkAAGgGAABpBgAAagYAAGsGAABsBgAAbQYAADIJAADo////AAAAAHUGAAB2BgAAdwYAAHgGAAB5BgAAAAAAAAAAAAAzCQAANAkAADUJAAA2CQAANwkAADgJAADvBQAA8AUAAPEFAABjBgAAZAYAADkJAAA6CQAA1AgAADsJAABpBgAAagYAAGsGAABsBgAAbQYAANUIAAA8CQAAPQkAAD4JAADo////AAAAAHUGAAB2BgAAdwYAAHgGAAB5BgAAAAAAAAAAAADMCAAAPwkAAEAJAABBCQAAQgkAAEMJAADvBQAA8AUAAPEFAABjBgAAZAYAABUJAACYBgAA1AgAAGgGAABpBgAAagYAAGsGAABsBgAAbQYAANUIAADo////AAAAAHUGAAB2BgAAdwYAAHgGAAB5BgAAAAAAAAAAAABECQAARQkAAEYJAABHCQAAyAgAAEgJAADvBQAA8AUAAPEFAABjBgAAZAYAAEkJAABKCQAASwkAAGgGAABpBgAAagYAAGsGAABsBgAAbQYAAOj///8AAAAAdQYAAHYGAAB3BgAAeAYAAHkGAAAAAAAAAAAAAEwJAABNCQAATgkAAE8JAABQCQAAUQkAAO8FAADwBQAA8QUAAGMGAABkBgAAFQkAAJgGAAAWCQAAaAYAAGkGAABqBgAAawYAAGwGAABtBgAAUgkAAFMJAABUCQAA6P///wAAAAB1BgAAdgYAAHcGAAB4BgAAeQYAAAAAAAAAAAAAVQkAAFYJAABOCQAATwkAAFAJAABRCQAA7wUAAPAFAADxBQAAYwYAAGQGAABXCQAAmAYAAFgJAABoBgAAaQYAAGoGAABrBgAAbAYAAG0GAABSCQAAWQkAAFoJAADo////AAAAAHUGAAB2BgAAdwYAAHgGAAB5BgAAAAAAAAAAAAAjBgAAWwkAAFwJAABdCQAAXgkAAF8JAAC8BAAAYAkAAPEFAABZBQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAABhCQAAYgkAAAAAAAAAAAAAYwkAAGQJAABlCQAAZgkAAGcJAABoCQAA7wUAAPAFAADxBQAA4gYAAOMGAADkBgAA5QYAAOYGAADnBgAA6AYAAOkGAABpCQAAagkAAAAAAAAAAAAAawkAAGwJAABtCQAAbgkAAG8JAABwCQAAvAQAADcGAADxBQAAcQkAAMAEAADBBAAAGAcAACwGAABcBQAALQYAAF4FAAAuBgAAyAQAAHIJAABzCQAAdAkAAHUJAADA////AAAAAHYJAAB3CQAAeAkAAKz///8AAAAAeQkAAHoJAAB7CQAAfAkAAH0JAAAAAAAAAAAAAH4JAAB/CQAAgAkAAIEJAACCCQAAgwkAAO8FAADwBQAA8QUAAIQJAACFCQAAhgkAAIcJAACICQAAiQkAAIoJAAAAAAAAAAAAAHgEAAB4BAAAiwkAAHgEAAB9CQAAAAAAAAAAAACMCQAAjQkAAI4JAACPCQAAkAkAAJEJAAC8BAAANwYAAJIJAABZBQAAwAQAAMEEAAAYBwAAkwkAAFwFAACUCQAAXgUAAC4GAADIBAAAlQkAAJYJAACXCQAAmAkAAJkJAACaCQAAmwkAAJwJAACdCQAAngkAAJ8JAACgCQAAoQkAAKIJAAC4////AAAAAKMJAACkCQAApQkAAAAAAAAAAAAA7AUAAKYJAACnCQAAqAkAAKkJAACqCQAA7wUAAPAFAADxBQAAqwkAAKwJAACtCQAArgkAAAAAAAAAAAAA7AUAAK8JAACwCQAAsQkAALIJAACzCQAA7wUAAPAFAADxBQAAqwkAAKwJAAC0CQAAtQkAAAAAAAAAAAAAtgkAALcJAAC4CQAAuQkAALoJAAC7CQAAvAQAADcGAADxBQAAWQUAALwJAADBBAAAKwYAAL0JAABcBQAAvgkAAF4FAAAuBgAAvwkAAMAJAADBCQAAwgkAAMMJAADECQAAxQkAAMYJAADHCQAAyAkAAMkJAADKCQAAywkAAMT///8AAAAAzAkAAM0JAADOCQAAzwkAANAJAADRCQAA0gkAANMJAADUCQAA1QkAANYJAADXCQAAAAAAAAAAAADYCQAA2QkAANoJAADbCQAA3AkAAN0JAADvBQAA8AUAAPEFAADyBQAA4wYAAAAAAAAAAAAA3gkAAN8JAADgCQAA4QkAAGcJAADiCQAA7wUAAPAFAADxBQAA4gYAAOMGAADkBgAA5QYAAOYGAADnBgAA6AYAAOkGAADjCQAA5AkAAAAAAAAAAAAA5QkAAOYJAADnCQAA6AkAAOkJAADqCQAA6wkAAOwJAADtCQAA7gkAAO8JAADwCQAA8QkAAPIJAADzCQAA9AkAAPUJAAAAAAAAAAAAAPYJAAD3CQAA+AkAAPkJAABVBQAA+gkAALwEAABXBQAAWAUAAFkFAADABAAAwQQAAFoFAAD7CQAAXAUAAPwJAABeBQAAXwUAAMgEAADJBAAAygQAAMsEAADMBAAAzQQAAGAFAADPBAAAYQUAAGIFAABjBQAAZAUAAGUFAADVBAAAZgUAANcEAABnBQAA2QQAANoEAADbBAAA3AQAAN0EAADeBAAA3wQAAOAEAADhBAAAaAUAAOMEAABpBQAAagUAAGsFAADnBAAA6AQAAOkEAADqBAAA6wQAAOwEAADtBAAA7gQAAO8EAADwBAAA/QkAAP4JAACDBQAA9AQAAPUEAAD2BAAA9wQAAPgEAAD5BAAA+gQAAPsEAAD/CQAAAAoAAAEKAAACCgAAAwoAAAQKAACY////AAAAAHYFAAAmBQAAJwUAADD///8AAAAABQoAAAYKAAAHCgAACAoAAAkKAAAKCgAACwoAAAwKAAAAAAAAAAAAAOwFAAANCgAADgoAAA8KAAAQCgAAEQoAAO8FAADwBQAA8QUAABIKAAAAAAAAAAAAAOwFAAATCgAAFAoAABUKAAAQCgAAFgoAAO8FAADwBQAA8QUAABIKAAAAAAAAAAAAAOwFAAAXCgAAGAoAABkKAAAaCgAAGwoAAO8FAADwBQAA8QUAABIKAAAcCgAAAAAAAAAAAADsBQAAHQoAAB4KAAAfCgAAEAoAACAKAADvBQAA8AUAAPEFAAASCgAAAAAAAAAAAADsBQAAIQoAACIKAAAjCgAAJAoAACUKAADvBQAA8AUAAPEFAAASCgAAJgoAAAAAAAAAAAAA7AUAACcKAAAoCgAAKQoAABAKAAAqCgAA7wUAAPAFAADxBQAAEgoAAAAAAAAAAAAA7AUAACsKAAAsCgAALQoAABAKAAAuCgAA7wUAAPAFAADxBQAAEgoAAAAAAAAAAAAA7AUAAC8KAAAwCgAAMQoAABAKAAAyCgAA7wUAAPAFAADxBQAAEgoAAAAAAAAAAAAA7AUAADMKAAA0CgAANQoAADYKAAA3CgAA7wUAAPAFAADxBQAAEgoAADgKAAAQAAAAFAAAABgAAAAMAAAAAAAAAAAAAADsBQAAOQoAADoKAAA7CgAAPAoAAD0KAADvBQAA8AUAAPEFAAA+CgAAPwoAAEAKAABBCgAAQgoAAAAAAAAAAAAAIwYAAEMKAABECgAARQoAAEYKAABHCgAAvAQAAEgKAADxBQAAWQUAAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAuBgAASQoAAEoKAAAAAAAAAAAAAEsKAABMCgAATQoAAE4KAABPCgAAUAoAALwEAAA3BgAA8QUAAFkFAADABAAAwQQAABgHAABRCgAAXAUAAC0GAABeBQAALgYAAMgEAABSCgAAUwoAAFQKAABVCgAAVgoAAFcKAABYCgAAwP///wAAAABZCgAAWgoAAFsKAACw////AAAAAFwKAABdCgAAXgoAAF8KAABgCgAAYQoAAG0IAABuCAAAYgoAAAAAAAAAAAAAYwoAAGQKAABlCgAAZgoAAGcKAABoCgAAlQcAAJYHAABpCgAAWQUAAMAEAADBBAAAKwYAAGoKAACYBwAALQYAAF4FAAAuBgAAmQcAAGsKAABsCgAAnAcAAJ0HAABtCgAAbgoAAAAAAAAAAAAAbwoAAHAKAABxCgAAcgoAAHMKAAB0CgAAvAQAAFcFAABYBQAAdQoAAMAEAADBBAAAWgUAAFsFAABcBQAAXQUAAF4FAABfBQAAyAQAAMkEAADKBAAAywQAAMwEAADNBAAAYAUAAHYKAABhBQAAYgUAAGMFAABkBQAAdwoAANUEAABmBQAA1wQAAGcFAADZBAAA2gQAANsEAADcBAAA3QQAAN4EAADfBAAA4AQAAOEEAABoBQAA4wQAAGkFAABqBQAAawUAAOcEAADoBAAA6QQAAOoEAADrBAAA7AQAAO0EAADuBAAA7wQAAPAEAAB4CgAAeQoAAIMFAAD0BAAA9QQAAPYEAAD3BAAA+AQAAHoKAAD6BAAA+wQAAHsKAAB8CgAAfQoAAH4KAAB/CgAAgAoAAIEKAACCCgAAgwoAAIQKAACFCgAAmP///wAAAACGCgAAhwoAACcFAAAY////AAAAAIgKAACJCgAAigoAAIsKAACMCgAAAAAAAAAAAACNCgAAjgoAAI8KAACQCgAAkQoAAJIKAAC8BAAAkwoAAJQKAABZBQAAwAQAAMEEAAArBgAAlQoAAFwFAACWCgAAXgUAAC4GAACXCgAAmAoAAJkKAACaCgAAmwoAAJwKAACdCgAAngoAAJ8KAACgCgAAoQoAAKIKAACjCgAApAoAAKUKAACc////AAAAAKYKAACnCgAAqAoAAAAAAAAAAAAA7AUAAKkKAACqCgAAqwoAAKwKAACtCgAA7wUAAPAFAADxBQAArgoAAK8KAACwCgAAsQoAAAAAAAAAAAAAsgoAALMKAAC0CgAAtQoAALYKAAC3CgAA7wUAALgKAAC5CgAAugoAALsKAAAAAAAAAAAAAOgFAAC8CgAAIgYAAOcFAAAAAAAAAAAAAL0KAAC+CgAAvwoAAMAKAADBCgAAwgoAAO8FAADDCgAAxAoAAMUKAADGCgAAAAAAAAAAAADoBQAAxwoAACIGAADICgAAAAAAAAAAAADsBQAAyQoAAMoKAADLCgAAzAoAAM0KAADvBQAAzgoAAPEFAADPCgAA0AoAANEKAADSCgAA0woAANQKAADVCgAAAAAAAAAAAADsBQAA1goAANcKAADYCgAA2QoAANoKAADvBQAA8AUAAPEFAADPCgAA0AoAAAAAAAAAAAAA7AUAANsKAADcCgAA3QoAAN4KAADfCgAA7wUAAM4KAADxBQAAzwoAANAKAADRCgAA0goAAOAKAADhCgAA4goAAAAAAAAAAAAA7AUAAOMKAADkCgAA5QoAAOYKAADnCgAA7wUAAM4KAADxBQAAzwoAANAKAADRCgAA0goAAOgKAADpCgAA6goAAAAAAAAAAAAA7AUAAOsKAADsCgAA7QoAAO4KAADvCgAA7wUAAM4KAADxBQAAzwoAANAKAADRCgAA0goAAPAKAADxCgAA8goAAAAAAAAAAAAA8woAAPQKAAD1CgAA9goAAPcKAAD4CgAA7wUAAM4KAADxBQAAzwoAANAKAADRCgAA0goAAHgEAAB4BAAA+QoAAAAAAAAAAAAA8woAAPoKAAD1CgAA9goAAPcKAAD4CgAA7wUAAM4KAADxBQAAzwoAANAKAADRCgAA0goAAPsKAAD8CgAA+QoAAAAAAAAAAAAA7AUAAP0KAAD+CgAA/woAAAALAAABCwAA7wUAAM4KAADxBQAAzwoAANAKAADRCgAA0goAAAILAAADCwAABAsAAAAAAAAAAAAA6AUAAAULAAAGCwAA5wUAAAAAgL8AAIC/AAAAAAAAgL8AAIA/AACAvwAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAgL8AAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAABwsAAAgLAAAJCwAACgsAAAsLAAAMCwAAvAQAAL0EAAANCwAAWQUAAMAEAADBBAAAwgQAAMMEAAAOCwAADwsAAMYEAAAQCwAAyAQAAMkEAADKBAAAywQAAMwEAADNBAAAzgQAAM8EAABhBQAA0QQAANIEAADTBAAA1AQAANUEAADWBAAA1wQAANgEAADZBAAA2gQAANsEAADcBAAA3QQAAN4EAADfBAAA4AQAAOEEAADiBAAA4wQAAOQEAABqBQAAawUAAOcEAADoBAAA6QQAAOoEAADrBAAA7AQAAO0EAADuBAAA7wQAAPAEAAARCwAAEgsAAPMEAAD0BAAA9QQAAPYEAAD3BAAA+AQAAPkEAAD6BAAA+wQAAPwEAAD9BAAA/gQAAP8EAAAABQAAAQUAAAIFAAATCwAABAUAAAUFAAAUCwAABwUAAAgFAAAVCwAAFgsAAAsFAAAMBQAADQUAAA4FAAAXCwAAEAUAABEFAAASBQAAEwUAABQFAAAVBQAAFgUAABcFAACY////AAAAACUFAAAmBQAAJwUAABz///8AAAAAKAUAACkFAAAY////AAAAACoFAAArBQAAGAsAABkLAAAaCwAALwUAADAFAAAxBQAABP///wAAAAAyBQAAAP///wAAAAAbCwAAHAsAADUFAAD8/v//AAAAADYFAAA3BQAAOAUAADkFAAAdCwAAOwUAADwFAAA9BQAAPgUAAAAAAAAAAAAAUQUAAB4LAABTBQAAVAUAAFUFAABWBQAAvAQAAFcFAABYBQAAWQUAAMAEAADBBAAAWgUAAFsFAABcBQAAXQUAAF4FAABfBQAAyAQAAMkEAADKBAAAywQAAMwEAADNBAAAYAUAAM8EAABhBQAAYgUAAGMFAABkBQAAZQUAANUEAABmBQAA1wQAAGcFAADZBAAA2gQAANsEAADcBAAA3QQAAN4EAADfBAAA4AQAAOEEAABoBQAA4wQAAGkFAABqBQAAawUAAOcEAADoBAAA6QQAAOoEAADrBAAA7AQAAO0EAADuBAAA7wQAAPAEAAAfCwAAIAsAACELAAAiCwAAIwsAAPYEAAD3BAAA+AQAAPkEAAAkCwAA+wQAAJj///8AAAAAdgUAACYFAAAnBQAAAAAAAAAAAAAjBgAAJQsAACYLAAAnCwAAKAsAACkLAAC8BAAAKgsAAPEFAABZBQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAArCwAALAsAAC0LAAAuCwAALwsAADALAAAxCwAAMgsAADMLAAA0CwAANQsAADYLAAA3CwAAOAsAADkLAAA6CwAAOwsAADwLAAA9CwAAPgsAAD8LAABACwAAQQsAAEILAABDCwAARAsAAEULAABGCwAARwsAAEgLAABJCwAASgsAAEsLAABMCwAATQsAAE4LAABPCwAAUAsAAFELAABSCwAAUwsAAFQLAABVCwAAVgsAAFcLAABYCwAAWQsAAFoLAABbCwAAXAsAAF0LAABeCwAAXwsAAGALAABhCwAAYgsAAGMLAABkCwAAZQsAAGYLAABnCwAAaAsAAGkLAABqCwAAawsAAGwLAABtCwAAbgsAAG8LAABwCwAAcQsAAHILAABzCwAAdAsAAHULAAAAAAAAAAAAAHYLAAB3CwAAeAsAAHkLAAB6CwAAewsAAO8FAAB8CwAAfQsAAH4LAAB/CwAAgAsAAIELAACCCwAAgwsAAIQLAACFCwAAhgsAAIcLAAAAAAAAAAAAAOgFAACICwAAIgYAAOcFAAAAAAAAAAAAAIkLAACKCwAAiwsAAIwLAACNCwAAjgsAAI8LAACQCwAAkQsAAJILAACTCwAAlAsAAJULAACWCwAAlwsAAJgLAACZCwAAmgsAAJsLAAD8////AAAAAJwLAACdCwAAngsAAJ8LAAAAAAAAAAAAAKALAAChCwAAogsAAKMLAACkCwAApQsAAJUHAACWBwAApgsAAFkFAADABAAAwQQAACsGAACnCwAAmAcAAKgLAABeBQAALgYAAJkHAACaBwAAqQsAAJwHAACdBwAAqgsAAKsLAACsCwAArQsAAK4LAACvCwAAsAsAALELAAB4////AAAAALILAAAAAAAAAAAAAKALAACzCwAAtAsAALULAAC2CwAAtwsAAJUHAACWBwAApgsAAFkFAADABAAAwQQAACsGAAC4CwAAmAcAAKgLAABeBQAALgYAAJkHAACaBwAAqQsAAJwHAACdBwAAqgsAAKsLAACsCwAArQsAAK4LAAAAAAAAAAAAALkLAAC6CwAAuwsAALwLAAC9CwAAAAAAAAAAAAC+CwAAvwsAAMALAADBCwAAwgsAAAAAAAAAAAAAvgsAAL8LAADDCwAAxAsAAMULAAAAAAAAAAAAAL4LAAC/CwAAxgsAAMcLAADICwAAAAAAAAAAAAARBwAAyQsAAMoLAADLCwAAzAsAAM0LAAC8BAAAhAgAAPEFAABZBQAAwAQAAMEEAAAYBwAALAYAAFwFAAAtBgAAXgUAAC4GAADIBAAAhQgAAIYIAACHCAAAiAgAAM4LAADPCwAA0AsAANELAADSCwAA0wsAAAAAAAAAAAAAEQcAANQLAADVCwAA1gsAANcLAADuBQAAvAQAAIQIAADxBQAAWQUAAMAEAADBBAAAGAcAACwGAABcBQAALQYAAF4FAAAuBgAAyAQAAIUIAACGCAAAhwgAAIgIAAB4BAAAeAQAAAAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAgD81+o48NfqOPAAAgD8AAIA/AACAPxgAGQAAAAAAAAAAAAAAVABWAAAAVQBXAAAAAAAAAAAA2AsAANkLAADaCwAA2wsAANwLAADdCwAAvAQAADcGAADJBgAAWQUAAMAEAADBBAAAygYAAMsGAADMBgAA3gsAAF4FAAAuBgAAyAQAAMkEAADKBAAAywQAAMwEAADNBAAAYAUAAM8EAABhBQAAYgUAAGMFAABkBQAAzgYAANUEAABmBQAA1wQAAGcFAADZBAAA2gQAANsEAADcBAAA3QQAAN4EAADfBAAA4AQAAOEEAABoBQAA4wQAAGkFAABqBQAAawUAAOcEAADoBAAA6QQAAOoEAADrBAAA7AQAAO0EAADuBAAAzwYAANAGAADRBgAA3wsAAOALAADhCwAA4gsAAOMLAACY////AAAAAHYFAAAmBQAAJwUAAAj///8AAAAA5AsAAAAAAAAAAAAA7AUAAOULAADmCwAA5wsAAOgLAADpCwAA7wUAAPAFAADxBQAAqwkAAKwJAADqCwAA6wsAAOwLAAAAAAAAAAAAAOwFAADtCwAA7gsAAO8LAADwCwAA8QsAAO8FAADwBQAA8QUAAPILAACsCQAA8wsAAPQLAAD1CwAA9gsAAPcLAAD4CwAAAAAAAAAAAADsBQAA+QsAAPoLAAD7CwAA/AsAAP0LAADvBQAA8AUAAPEFAACrCQAArAkAAP4LAAD/CwAAAAwAAAEMAAACDAAAAwwAAAQMAAAFDAAABgwAAAcMAAAIDAAACQwAAAoMAAAAAAAAAAAAAOwFAAALDAAADAwAAA0MAAAODAAADwwAAO8FAADwBQAA8QUAABAMAAARDAAAAAAAAAAAAADsBQAAEgwAABMMAAAUDAAAFQwAABYMAADvBQAA8AUAAPEFAAAQDAAAEQwAABcMAAAAAAAAAAAAABgMAAAZDAAAGgwAABsMAAAODAAAHAwAAO8FAADwBQAA8QUAABAMAAARDAAAAAAAAAAAAADoBQAAHQwAAB4MAADnBQAAAAAAAAAAAAAfDAAAIAwAACEMAAAiDAAADgwAACMMAADvBQAA8AUAAPEFAAAQDAAAEQwAAAAAAAAAAAAA6AUAACQMAAAlDAAA5wUAAAAAAAAAAAAAJgwAACcMAAAoDAAAKQwAAA4MAAAqDAAA7wUAAPAFAADxBQAAEAwAABEMAAAAAAAAAAAAAOgFAAArDAAALAwAAOcFAAAAAAAAAAAAAOwFAAAtDAAALgwAAC8MAAAODAAAMAwAAO8FAADwBQAA8QUAABAMAAARDAAAAAAAAAAAAAAxDAAAMgwAADMMAAA0DAAANQwAADYMAADvBQAA8AUAAPEFAAAQDAAAEQwAADcMAAA4DAAAOQwAADoMAAA7DAAAPAwAAD0MAAA+DAAAPwwAAEAMAABBDAAAQgwAAEMMAABEDAAAAAAAAAAAAADsBQAARQwAAEYMAABHDAAASAwAAEkMAADvBQAA8AUAAPEFAADyCwAArAkAAEoMAAD0CwAA9QsAAEsMAABMDAAATQwAAAAAAAAAAAAA7AUAAE4MAABPDAAAUAwAAFEMAABSDAAA7wUAAPAFAADxBQAA8gsAAKwJAABTDAAA9AsAAPULAABUDAAAVQwAAAAAAAAAAAAAVgwAAFcMAABYDAAAWQwAAFoMAABbDAAA7wUAAPAFAADxBQAAXAwAAKwJAABdDAAAAAAAAAAAAABeDAAAXwwAAGAMAABhDAAAAAAAAAAAAABeDAAAYgwAAGMMAABkDAAAZQwAAGYMAADg////AAAAAGcMAABoDAAAAAAAAAAAAABeDAAAXwwAAGkMAABhDAAAAAAAAAAAAABeDAAAXwwAAGoMAABhDAAAAAAAAAAAAABeDAAAXwwAAGsMAABhDAAAAAAAAAAAAABeDAAAXwwAAGwMAABhDAAAAAAAAAAAAABeDAAAXwwAAG0MAABhDAAAAAAAAAAAAABeDAAAXwwAAG4MAABhDAAAAAAAAAAAAABvDAAAcAwAAHEMAABhDAAAAAAAAAAAAABeDAAAXwwAAHIMAABhDAAAAAAAAAAAAABzDAAAdAwAAHUMAAB2DAAAZwkAAHcMAADvBQAA8AUAAPEFAADiBgAA4wYAAOQGAADlBgAA5gYAAOcGAADoBgAAeAwAAHkMAAB6DAAAewwAAHwMAAC8////AAAAAH0MAAB+DAAAAAAAAAAAAAB/DAAAgAwAAIEMAACCDAAAgwwAAIQMAAC8BAAAhQwAAIYMAABZBQAAwAQAAMEEAAAYBwAAhwwAAFwFAACIDAAAXgUAAC4GAADIBAAAiQwAAIoMAACLDAAAjAwAAI0MAACODAAAwP///wAAAACPDAAAkAwAAJEMAAC4////AAAAAJIMAACTDAAAlAwAAJUMAACWDAAAAAAAAAAAAAARBwAAlwwAAJgMAACZDAAAFQcAAJoMAAC8BAAAFwcAAPEFAABZBQAAwAQAAMEEAAAYBwAALAYAAFwFAAAtBgAAXgUAAC4GAADIBAAAGQcAABoHAAAbBwAAHAcAAB0HAAAeBwAAAAAAAAAAAACbDAAAnAwAAJ0MAACeDAAAnwwAAKAMAAChDAAAAAAAAAAAAACiDAAAowwAAKQMAAClDAAApgwAAKcMAACoDAAAAAAAAAAAAACpDAAAqgwAAKsMAACsDAAArQwAAK4MAAC8BAAANwYAAFgFAABZBQAAwAQAAMEEAABaBQAAWwUAAFwFAACvDAAAXgUAAC4GAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAABgBQAAzwQAAGEFAABiBQAAYwUAAGQFAACwDAAA1QQAAGYFAADXBAAAZwUAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAGgFAADjBAAAaQUAAGoFAABrBQAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAACxDAAAsgwAALMMAAC0DAAAtQwAALYMAAC3DAAAuAwAALkMAAC6DAAAuwwAALwMAAC9DAAAmP///wAAAAC+DAAAvwwAAMAMAAA8////AAAAAMEMAADCDAAAwwwAAAz///8AAAAAxAwAAMUMAADGDAAAxwwAAMgMAAAI////AAAAAMkMAADKDAAAywwAAMwMAADNDAAAAAAAAAAAAACbDAAAzgwAAM8MAADQDAAA0QwAANIMAADTDAAAAAAAAAAAAADUDAAA1QwAANYMAADXDAAATwoAANgMAAC8BAAA2QwAAPEFAABZBQAAwAQAAMEEAAAYBwAA2gwAAFwFAADbDAAAXgUAAC4GAADIBAAA3AwAAMD///8AAAAA3QwAAN4MAADfDAAAAAAAAAAAAAB4BAAA4AwAAOEMAAAAAAAAAAAAACMGAADiDAAA4wwAAOQMAADlDAAA5gwAALwEAADnDAAA8QUAAFkFAADABAAAwQQAACsGAAAsBgAAXAUAAC0GAABeBQAALgYAAOgMAADpDAAAAAAAAAAAAADqDAAA6wwAAOwMAADtDAAA7gwAAO8MAAC8BAAAVwUAAPAMAADxDAAAwAQAAMEEAADyDAAAWwUAAFwFAADzDAAAXgUAAF8FAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAABgBQAAzwQAAGEFAABiBQAAYwUAAGQFAABlBQAA1QQAAGYFAADXBAAAZwUAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAGgFAADjBAAAaQUAAGoFAABrBQAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADvBAAA8AQAAPQMAAD1DAAAgwUAAPQEAAD1BAAA9gQAAPcEAAD4BAAA9gwAAPoEAAD7BAAA9wwAAPgMAAD5DAAA+gwAAPsMAAD8DAAA/QwAAP4MAAD/DAAAAA0AAAENAAACDQAAAw0AAAQNAAAFDQAABg0AAAcNAAAIDQAACQ0AAAoNAAALDQAADA0AAA0NAAAODQAADw0AABANAAARDQAAEg0AABMNAAAUDQAAFQ0AABYNAAAXDQAAGA0AABkNAAAaDQAAGw0AABwNAACY////AAAAAB0NAAAeDQAAJwUAABz///8AAAAAHw0AABj///8AAAAAIA0AABT///8AAAAAIQ0AACINAAAjDQAAJA0AACUNAAAmDQAAJw0AACgNAAApDQAAKg0AACsNAAAsDQAALQ0AAC4NAAAvDQAAMA0AADENAAAyDQAAMw0AAAz///8AAAAANA0AADUNAAA2DQAANw0AADgNAAAE////AAAAADkNAAA6DQAAOw0AADwNAAA9DQAAPg0AAD8NAABADQAAQQ0AANUJAABCDQAAQw0AAAAAAAAAAAAAeAQAAHgEAAB4BAAAOQUAAB0LAABEDQAARQ0AAHgEAABGDQAAAAAAAAAAAABHDQAASA0AAEkNAABKDQAASw0AAEwNAAC8BAAAVwUAAE0NAADxDAAAwAQAAMEEAADyDAAAWwUAAFwFAABODQAAXgUAAF8FAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAABPDQAAzwQAAGEFAABiBQAAYwUAAGQFAABlBQAA1QQAAGYFAADXBAAAZwUAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAGgFAADjBAAAaQUAAGoFAABrBQAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADvBAAA8AQAAPQMAAD1DAAAgwUAAPQEAAD1BAAA9gQAAPcEAAD4BAAA9gwAAPoEAAD7BAAA9wwAAPgMAAD5DAAA+gwAAPsMAAD8DAAA/QwAAP4MAABQDQAAAA0AAAENAAACDQAAAw0AAAQNAAAFDQAABg0AAAcNAAAIDQAACQ0AAAoNAAALDQAADA0AAA0NAAAODQAADw0AABANAAARDQAAEg0AABMNAAAUDQAAFQ0AABYNAAAXDQAAGA0AABkNAAAaDQAAGw0AABwNAABRDQAAUg0AAFMNAABUDQAAVQ0AAFYNAABXDQAAWA0AAFkNAABaDQAAWw0AAFwNAABdDQAAXg0AAF8NAABgDQAAmP///wAAAAAdDQAAHg0AACcFAAAc////AAAAAB8NAAAY////AAAAACANAAAU////AAAAACENAAAiDQAAIw0AACQNAAAlDQAAJg0AACcNAABhDQAAKQ0AACoNAAArDQAALA0AAC0NAABiDQAALw0AADANAAAxDQAAMg0AADMNAAAM////AAAAAGMNAABkDQAAZQ0AADcNAAA4DQAABP///wAAAABmDQAAZw0AADsNAAA8DQAAPQ0AAD4NAAA/DQAAQA0AAEENAADVCQAAQg0AAEMNAAC8/v//AAAAAGgNAABpDQAAag0AADkFAABrDQAAbA0AAG0NAABuDQAAbw0AAAAAAAAAAAAA6gwAAHANAABxDQAAcg0AAHMNAAB0DQAAvAQAAFcFAADwDAAA8QwAAMAEAADBBAAA8gwAAFsFAABcBQAAdQ0AAF4FAABfBQAAyAQAAMkEAADKBAAAywQAAMwEAADNBAAAYAUAAM8EAABhBQAAYgUAAGMFAABkBQAAZQUAANUEAABmBQAA1wQAAGcFAADZBAAA2gQAANsEAADcBAAA3QQAAN4EAADfBAAA4AQAAOEEAABoBQAA4wQAAGkFAABqBQAAawUAAOcEAADoBAAA6QQAAOoEAADrBAAA7AQAAO0EAADuBAAA7wQAAPAEAAD0DAAA9QwAAIMFAAD0BAAA9QQAAPYEAAD3BAAA+AQAAPYMAAD6BAAA+wQAAPcMAAD4DAAA+QwAAPoMAAD7DAAA/AwAAP0MAAD+DAAA/wwAAAANAAABDQAAAg0AAAMNAAAEDQAABQ0AAAYNAAAHDQAACA0AAAkNAAAKDQAACw0AAAwNAAANDQAADg0AAA8NAAAQDQAAEQ0AABINAAATDQAAFA0AABUNAAAWDQAAFw0AABgNAAAZDQAAGg0AABsNAAAcDQAAdg0AAHcNAAB4DQAAmP///wAAAAAdDQAAHg0AACcFAAAc////AAAAAB8NAAAY////AAAAACANAAAU////AAAAACENAAAiDQAAIw0AACQNAAAlDQAAJg0AACcNAAAoDQAAKQ0AACoNAAArDQAALA0AAC0NAAAuDQAALw0AADANAAAxDQAAMg0AADMNAAAM////AAAAAHkNAAB6DQAANg0AADcNAAA4DQAABP///wAAAAB7DQAAfA0AADsNAAA8DQAAPQ0AAD4NAAA/DQAAQA0AAEENAADVCQAAQg0AAEMNAAAAAAAAAAAAACMGAAB9DQAAfg0AAH8NAACADQAAgQ0AALwEAACCDQAA8QUAAFkFAADABAAAwQQAACsGAAAsBgAAXAUAAC0GAABeBQAALgYAAIMNAACEDQAAhQ0AAIYNAACHDQAAAAAAAAAAAACIDQAAiQ0AAIoNAACLDQAAjA0AAO4FAACNDQAAjg0AAPEFAABZBQAAwAQAAMEEAAAYBwAALAYAAFwFAAAtBgAAXgUAAC4GAADIBAAAjw0AAHgEAACQDQAAkQ0AAJINAAAAAAAAAAAAACMGAACTDQAAlA0AAJUNAACWDQAAlw0AALwEAACCDQAA8QUAAFkFAADABAAAwQQAACsGAAAsBgAAXAUAAC0GAABeBQAALgYAAIMNAACYDQAAmQ0AAJoNAACbDQAAAAAAAAAAAACIDQAAnA0AAJ0NAACeDQAAnw0AAKANAACNDQAAjg0AAPEFAABZBQAAwAQAAMEEAAAYBwAALAYAAFwFAAAtBgAAXgUAAC4GAADIBAAAjw0AAKENAACiDQAAkQ0AAJINAACjDQAAAAAAAAAAAACIDQAApA0AAKUNAACmDQAApw0AAKgNAACNDQAAjg0AAPEFAABZBQAAwAQAAMEEAAAYBwAALAYAAFwFAAAtBgAAXgUAAC4GAADIBAAAjw0AAKkNAACQDQAAkQ0AAJINAACqDQAAqw0AAAAAAAAAAAAArA0AAK0NAACuDQAArw0AALANAACxDQAAjQ0AAI4NAADxBQAAWQUAAMAEAADBBAAAGAcAACwGAABcBQAALQYAAF4FAAAuBgAAyAQAAI8NAACyDQAAsw0AALQNAAAAAAAAAAAAABEHAAC1DQAAtg0AALcNAACwDQAA7gUAAI0NAACODQAA8QUAAFkFAADABAAAwQQAABgHAAAsBgAAXAUAAC0GAABeBQAALgYAAMgEAACPDQAAeAQAAHgEAAB4BAAAAAAAAAAAAAAjBgAAuA0AALkNAAC6DQAAuw0AALwNAAC8BAAAgg0AAPEFAABZBQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAACDDQAAvQ0AAL4NAAAAAAAAAAAAACMGAAC/DQAAwA0AAMENAAC7DQAA7gUAALwEAACCDQAA8QUAAFkFAADABAAAwQQAACsGAAAsBgAAXAUAAC0GAABeBQAALgYAAIMNAADCDQAAAAAAAAAAAADDDQAAxA0AAMUNAADGDQAAxw0AAMgNAAC8BAAANwYAAPEFAABZBQAAwAQAAMEEAAAYBwAALAYAAFwFAAAtBgAAXgUAAC4GAADIBAAAyQ0AAMoNAADLDQAAwP///wAAAAB2CQAAdwkAAHgJAAAAAAAAAAAAAMMNAADMDQAAxQ0AAMYNAADHDQAAyA0AALwEAAA3BgAA8QUAAFkFAADABAAAwQQAABgHAAAsBgAAXAUAAC0GAABeBQAALgYAAMgEAADJDQAAyg0AAMsNAADA////AAAAAHYJAAB3CQAAeAkAAAAAAAAAAAAAzQ0AAM4NAADPDQAA0A0AAE8KAADRDQAAvAQAADcGAADxBQAAWQUAAMAEAADBBAAAGAcAACwGAABcBQAALQYAAF4FAAAuBgAAyAQAAMkNAADA////AAAAAHYJAAB3CQAAeAkAAAAAAAAAAAAAzQ0AANINAADTDQAA1A0AAE8KAADVDQAAvAQAADcGAADxBQAAWQUAAMAEAADBBAAAGAcAACwGAABcBQAALQYAAF4FAAAuBgAAyAQAAMD///8AAAAAdgkAAHcJAAB4CQAAAQAAAAEAAAACAAAAAQAAAAMAAAAAAAAAAAAAAAAAAADWDQAA1w0AANgNAADZDQAA2g0AANsNAAC8BAAANwYAAMkGAABZBQAAwAQAAMEEAADKBgAA3A0AAMwGAADdDQAAXgUAAC4GAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAABgBQAAzwQAAGEFAABiBQAAYwUAAGQFAADOBgAA1QQAAGYFAADXBAAAZwUAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAGgFAADjBAAAaQUAAGoFAABrBQAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADPBgAA0AYAAN4NAADfDQAA4AsAAOELAADgDQAAmP///wAAAAB2BQAAJgUAACcFAAAM////AAAAAOENAADiDQAA4w0AAAAAAAAAAAAA5A0AAOUNAADmDQAA5w0AANoNAABWBQAAvAQAADcGAADJBgAAWQUAAMAEAADBBAAAygYAAMsGAADMBgAA3gsAAF4FAAAuBgAAyAQAAMkEAADKBAAAywQAAMwEAADNBAAAYAUAAM8EAABhBQAAYgUAAGMFAABkBQAAzgYAANUEAABmBQAA1wQAAGcFAADZBAAA2gQAANsEAADcBAAA3QQAAN4EAADfBAAA4AQAAOEEAABoBQAA4wQAAGkFAABqBQAAawUAAOcEAADoBAAA6QQAAOoEAADrBAAA7AQAAO0EAADuBAAAzwYAANAGAADRBgAA3wsAAOALAADhCwAAmP///wAAAAB2BQAAJgUAACcFAAAAAAAAAAAAAOgNAADpDQAA6g0AAOsNAADsDQAA7Q0AALwEAAA3BgAAyQYAAFkFAADABAAAwQQAAMoGAADLBgAAzAYAAO4NAABeBQAALgYAAMgEAADJBAAAygQAAMsEAADMBAAAzQQAAGAFAADPBAAAYQUAAGIFAABjBQAAZAUAAM4GAADVBAAAZgUAANcEAABnBQAA2QQAANoEAADbBAAA3AQAAN0EAADeBAAA3wQAAOAEAADhBAAAaAUAAOMEAABpBQAAagUAAGsFAADnBAAA6AQAAOkEAADqBAAA6wQAAOwEAADtBAAA7gQAAM8GAADQBgAA0QYAANIGAADTBgAA1AYAANUGAADWBgAA1wYAANgGAADZBgAA7w0AAPANAADxDQAA8g0AAJj///8AAAAA2gYAANsGAAAnBQAAAAAAAAAAAADzDQAA9A0AAPUNAAAAAAAAAAAAAL4LAAC/CwAAwAsAAPYNAAB4BAAAAAAAAAAAAAC+CwAAvwsAAMALAAD3DQAAeAQAAAAAAAAAAAAAvgsAAL8LAADDCwAA+A0AAHgEAAAAAAAAAAAAALkLAAD5DQAA+g0AAPsNAAC9CwAAAAAAAAAAAAD8DQAA/Q0AAP4NAAD/DQAAAA4AAAEOAAC8BAAAAg4AAPEFAABZBQAAwAQAAMEEAAAYBwAAAw4AAFwFAAAEDgAAXgUAAC4GAADIBAAABQ4AAAYOAAAHDgAACA4AAAkOAAAKDgAACw4AAAwOAACs////AAAAAA0OAAAODgAADw4AABAOAAAAAAAAAAAAAPwNAAARDgAAEg4AABMOAAAADgAAFA4AALwEAAACDgAA8QUAAFkFAADABAAAwQQAABgHAAADDgAAXAUAAAQOAABeBQAALgYAAMgEAAAFDgAABg4AAAcOAAAIDgAACQ4AAAoOAAALDgAAFQ4AAKz///8AAAAADQ4AABYOAAAXDgAAEA4AAAAAAAD//////////wAAAAD//////////wsgAAAAAAAAAAAAABgOAAAZDgAAGg4AABsOAAAcDgAAHQ4AALwEAAA3BgAAyQYAAFkFAADABAAAwQQAAMoGAADLBgAAzAYAAB4OAABeBQAALgYAAMgEAADJBAAAygQAAMsEAADMBAAAzQQAAGAFAADPBAAAYQUAAGIFAABjBQAAZAUAAM4GAADVBAAAZgUAANcEAABnBQAA2QQAANoEAADbBAAA3AQAAN0EAADeBAAA3wQAAOAEAADhBAAAaAUAAOMEAABpBQAAagUAAGsFAADnBAAA6AQAAOkEAADqBAAA6wQAAOwEAADtBAAA7gQAAM8GAADQBgAA0QYAANIGAADTBgAA1AYAANUGAADWBgAA1wYAANgGAADZBgAAHw4AACAOAAAhDgAAIg4AACMOAACY////AAAAANoGAADbBgAAJwUAAAAAAAAAAAAAAAAAAOeGBAAkDgAAyWEEACUOAADgVAQAJg4AALZaBAAnDgAAHkIEACgOAABAVwQAKQ4AAFt1BAAqDgAAxUkEACsOAAB0dwQALA4AAOBUBAAtDgAA0EcEAC4OAAAJRAQALw4AAIpmBAAwDgAAfFsEADEOAADROAQAMg4AAJ04BAAzDgAApTgEADQOAAAJTQQANQ4AAOBcBAA2DgAAAAAAAAAAAAAAAAAAAAAAADcOAAA4DgAAOQ4AADoOAAA7DgAAPA4AAD0OAAA+DgAAAAAAAAAAAAA3DgAAPw4AAHgEAAB4BAAAeAQAAHgEAAB4BAAAPg4AAAIAAAAEAAAAAQAAAAEAAAABAAAAAgAAAAIAAAACAAAABAAAAAAAAAAAAAAAAAAAAG87BABADgAAAAAAAAAAAABBDgAAQg4AAEMOAABEDgAAymUEAEUOAAAkawQARg4AAG46BABHDgAAkUEEAEgOAADudgQASQ4AAINsBABKDgAAP20EAEsOAAAmSwQATA4AAFc0BABNDgAAQDQEAE4OAABaUAQATw4AALVUBABQDgAAFmsEAFEOAAC0aAQAUg4AAAAAAAAAAAAAAAAAAAAAAAAwTwQAUw4AANNOBABUDgAARGIEAFUOAABATwQAVg4AAIk0BABXDgAAl0MEAFgOAABEOgQAWQ4AAAAAAAAAAAAAiTQEAFoOAACXQwQAWw4AACBPBABcDgAAOmIEAF0OAAAVbwQAXg4AAM5uBABfDgAAmm4EAGAOAAAeWgQAYQ4AAKhuBABiDgAAe0AEAGMOAABZTQQAZA4AAMc1BABlDgAAFl8EAGYOAABEOgQAZw4AACVfBABoDgAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAAAAAAIA/MGsEAGkOAADOUAQAag4AANBaBABrDgAA9W0EAGwOAACxNAQAbQ4AACZLBABuDgAAXm0EAG8OAAATbgQAcA4AABpABABxDgAAAAAAAAAAAAByDgAAcw4AAHQOAAB1DgAAdg4AAHcOAAB4DgAAAAAAAB44BAB5DgAAAAAAAAAAAAD0SgQAeg4AABRTBAB7DgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfA4AAH0OAAB+DgAAfw4AAIAOAACBDgAAgg4AAIMOAACEDgAAhQ4AAAAAAAAAAAAAhg4AAIcOAACIDgAAiQ4AAIoOAACLDgAAjA4AAI0OAACODgAAjw4AAB44BACQDgAAsFQEAJEOAAAAAAAAAAAAABsDAwMDAwMDAw4PEBESExQVFhcYGRocAMNHBAAgZwQAlFIEAHE5BAAgZwQACl4EAHBHBABwRwQAcEcEAHBHBABwRwQAcEcEAHBHBABwRwQAcEcEAHBHBABwRwQA1FAEANw1BAC/UAQAoVAEAPhjBADqTQQAeD4EAG4+BAAJZQQA0E8EAMc1BACtWwQA4E4EAOhGBACdNAQAkg4AAJMOAACUDgAAlQ4AAJYOAACXDgAAmA4AAJkOAACaDgAAmw4AAJwOAAAAAAAAAAAAAJ0OAACeDgAAnw4AAKAOAAChDgAAog4AAAAAAABuSgQAow4AAEBXBACkDgAA+VAEAKUOAADoRgQApg4AAAAAAAAAAAAAAAAAAAAAAAAeOAQApw4AAAAAAAAAAAAAlkcEAPw9BACjTQQAGkwEAOtZBACOTQQAIlQEAI5NBACOTQQAjk0EAI5NBACOTQQAalgEAKgOAACpDgAAqg4AAKsOAACsDgAArQ4AAK4OAACvDgAAsA4AALEOAACyDgAAnlQEAOY5BADNOQQApFQEABZKBAAISgQA40gEANZIBABmVAQAgmYEABhUBAANVAQAJEwEALlNBACvPgQAZD4EAFk6BAAPbwQAyG4EAAhvBADBbgQAgkMEAHFDBAAAAAAAZ18EALMOAAC3XwQAtA4AAFxcBAC1DgAA5DUEALYOAAB0XwQAtw4AAH9fBAC4DgAAil8EALkOAAChXwQAug4AAAAAAAAAAAAAAAAAAAAAAAC7DgAAvA4AAL0OAAC+DgAAvw4AAMAOAAC8BAAANwYAAMEOAABZBQAAwAQAAMEEAABaBQAAWwUAAFwFAABdBQAAXgUAAC4GAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAABgBQAAzwQAAMIOAADDDgAAxA4AAGQFAABlBQAAxQ4AAMYOAADHDgAAmP///wAAAAB2BQAAJgUAACcFAAAAAAAAAAAAALsOAADIDgAAyQ4AAMoOAADLDgAAzA4AALwEAAA3BgAAzQ4AAFkFAADABAAAwQQAAFoFAABbBQAAXAUAAF0FAABeBQAALgYAAMgEAADJBAAAygQAAMsEAADMBAAAzQQAAGAFAADPBAAAwg4AAM4OAADPDgAAZAUAAGUFAADFDgAAmP///wAAAAB2BQAAJgUAACcFAAAAAAAAAAAAACMGAADQDgAA0Q4AANIOAADTDgAA1A4AAJUHAACWBwAA8QUAAFkFAADABAAAwQQAACsGAACXBwAAmAcAAC0GAABeBQAALgYAAJkHAACaBwAA1Q4AAJwHAADWDgAAqgsAAKsLAADXDgAA2A4AANkOAADaDgAA2w4AANwOAADdDgAA3g4AAAAAAAAAAAAAIwYAAN8OAADgDgAA4Q4AAOIOAADjDgAAlQcAAJYHAADxBQAAWQUAAMAEAADBBAAAKwYAAJcHAACYBwAALQYAAF4FAAAuBgAAmQcAAJoHAADkDgAAnAcAAOUOAACqCwAAqwsAANcOAADYDgAA2Q4AANoOAADbDgAA3A4AAN0OAADeDgAA5g4AAOcOAADoDgAA6Q4AAOoOAADrDgAAAAAAAAAAAADsDgAA7Q4AAO4OAAB4BAAA7w4AAPAOAADxDgAAAAAAAAAAAADyDgAA8w4AAHgEAAD0DgAA9Q4AAHgEAAD2DgAAQdsBAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD3DgAA+A4AAPkOAAD6DgAA+w4AAPwOAADvBQAA8AUAAPEFAADiBgAA4wYAAOQGAADlBgAA5gYAAOcGAADoBgAA6QYAAP0OAAD+DgAA/w4AAAAPAAABDwAAAg8AAAMPAAAEDwAABQ8AAAYPAAAHDwAAnP///wAAAAAIDwAACQ8AAAoPAAALDwAADA8AAA0PAAAODwAAAAAAAAAAAAAPDwAAEA8AABEPAAASDwAAEw8AABQPAAC8BAAANwYAABUPAAAWDwAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAAXDwAAGA8AABkPAAAaDwAAGw8AABwPAAAdDwAAHg8AAMj///8AAAAAHw8AACAPAAAhDwAAIg8AACMPAAAkDwAAJQ8AALj///8AAAAAJg8AACcPAAAoDwAAKQ8AACoPAAAAAAAAAAAAACsPAAAsDwAALQ8AAC4PAAAvDwAAMA8AALwEAAA3BgAAMQ8AADIPAADABAAAwQQAACsGAAAsBgAAXAUAAC0GAABeBQAALgYAADMPAAA0DwAANQ8AAMz///8AAAAANg8AADcPAAA4DwAAOQ8AAO8OAADwDgAA8Q4AAAAAAAAAAAAAIwYAADoPAAA7DwAAPA8AAC8PAAA9DwAAvAQAADcGAADxBQAAWQUAAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAuBgAAPg8AAAAAAAAAAAAAPw8AAEAPAABBDwAAQg8AAEMPAABEDwAAvAQAADcGAABFDwAARg8AAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAuBgAARw8AAEgPAABJDwAAyP///wAAAABKDwAASw8AAEwPAABNDwAA7w4AAPAOAADxDgAAAAAAAAAAAAAjBgAATg8AAE8PAABQDwAAQw8AAFEPAAC8BAAANwYAAPEFAABZBQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAABSDwAAAAAAAAAAAABTDwAAVA8AAFUPAABWDwAAVw8AAFgPAAC8BAAANwYAAFkPAABaDwAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAABbDwAAXA8AAF0PAADI////AAAAAF4PAABfDwAAYA8AAGEPAADvDgAA8A4AAPEOAAAAAAAAAAAAACMGAABiDwAAYw8AAGQPAABXDwAAZQ8AALwEAAA3BgAA8QUAAFkFAADABAAAwQQAACsGAAAsBgAAXAUAAC0GAABeBQAALgYAAGYPAAAAAAAAAAAAAGcPAABoDwAAaQ8AAGoPAABrDwAAbA8AALwEAAA3BgAAbQ8AAG4PAADABAAAwQQAACsGAAAsBgAAXAUAAC0GAABeBQAALgYAAG8PAABwDwAAcQ8AAMD///8AAAAAcg8AAHMPAAB0DwAAdQ8AAO8OAADwDgAA8Q4AAAAAAAAAAAAAdg8AAHcPAAB4DwAAeQ8AAGsPAAB6DwAAvAQAADcGAADxBQAAWQUAAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAuBgAAew8AAAAAAAAAAAAAdg8AAHwPAAB4DwAAeQ8AAGsPAAB6DwAAvAQAADcGAADxBQAAWQUAAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAuBgAAew8AAAAAAAAAAAAAfQ8AAH4PAAB/DwAAgA8AAIEPAACCDwAAvAQAADcGAACDDwAAhA8AAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAuBgAAhQ8AAIYPAACHDwAAiA8AAMj///8AAAAAiQ8AAMT///8AAAAAig8AAIsPAADuDgAAjA8AAO8OAADwDgAA8Q4AAAAAAAAAAAAAIwYAAI0PAACODwAAjw8AAIEPAACQDwAAvAQAADcGAADxBQAAWQUAAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAuBgAAhQ8AAJEPAACHDwAAyP///wAAAACJDwAAAAAAAAAAAACSDwAAkw8AAJQPAACVDwAAlg8AAJcPAAC8BAAANwYAAJgPAACZDwAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAACaDwAAmw8AAJwPAACdDwAAng8AAJ8PAACgDwAAoQ8AAMz///8AAAAAog8AAKMPAACkDwAApQ8AAKYPAACnDwAAqA8AAAAAAAAAAAAAIwYAAKkPAACqDwAAqw8AAE8KAADuBQAAvAQAADcGAADxBQAAWQUAAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAuBgAAAAAAAAAAAAD4BQAArA8AAK0PAAD7BQAA/AUAAP0FAAAAAAAAAAAAAJ0OAACuDwAArw8AAKAOAAChDgAAog4AAAAAAAAAAAAA+AUAALAPAACxDwAAsg8AALMPAAC0DwAAAAAAAAAAAACdDgAAtQ8AAJ8OAAC2DwAAoQ4AAKIOAAAAAAAAAAAAALcPAAC4DwAAuQ8AAPsFAAD8BQAA/QUAAAAAAAAAAAAAnQ4AALoPAACfDgAAoA4AALsPAACiDgAAAAAAAAAAAAD4BQAAvA8AAL0PAAD7BQAA/AUAAP0FAAAAAAAAAAAAAJ0OAAC+DwAAnw4AAKAOAAChDgAAvw8AAAAAAAAAAAAA+AUAAMAPAADBDwAAwg8AAMMPAADEDwAAAAAAAAAAAADFDwAAxg8AAMcPAADIDwAAyQ8AAMoPAADvBQAA8AUAAPEFAADLDwAAZAYAAMwPAADNDwAAzg8AAM8PAABpBgAAagYAANAPAABsBgAAbQYAANEPAADSDwAA0w8AANQPAADVDwAA1g8AANcPAADYDwAA2Q8AANoPAADbDwAA6P///wAAAAB1BgAAdgYAAHcGAAB4BgAAeQYAAHT///8AAAAA3A8AAN0PAADeDwAA3w8AAH0JAADgDwAA4Q8AAOIPAADjDwAA5A8AAOUPAADmDwAA5w8AAOgPAABs////AAAAAOkPAAB3CQAAeAkAADT///8AAAAA6g8AAAAAAAAAAAAA6w8AAOwPAADtDwAA7g8AAMgIAADuBQAA7wUAAPAFAADxBQAAYwYAAGQGAAAVCQAAmAYAABYJAABoBgAAaQYAAGoGAABrBgAAbAYAAG0GAADo////AAAAAHUGAAB2BgAAdwYAAHgGAAB5BgAAAAAAAAAAAADvDwAA8A8AAO0PAADuDwAAyAgAAO4FAADvBQAA8AUAAPEFAADyBQAAZAYAAAAAAAAAAAAA8Q8AAPIPAADzDwAA9A8AAPUPAAD2DwAA9w8AAPgPAABIagQASjwEAOhpBACjTQQAGkwEAOtZBADrWQQA61kEAOtZBADrWQQA54YEAOeGBAAAAAAAAAAAAPkPAAD6DwAA+w8AAPwPAAD9DwAA/g8AAO8FAADwBQAA8QUAAP8PAAAAEAAAARAAAAIQAAADEAAABBAAAAUQAAAGEAAABxAAAAgQAAAJEAAA8P///wAAAAAKEAAACxAAAN4PAAAMEAAAfQkAAA0QAADhDwAADhAAAA8QAAAQEAAAERAAABIQAAATEAAAFBAAAOj///8AAAAAFRAAAHcJAAB4CQAAAAAAAAAAAAAWEAAAFxAAABgQAAAZEAAAGhAAABsQAAC8BAAAHBAAAFgFAAAdEAAAwAQAAMEEAABaBQAAWwUAAFwFAAAeEAAAXgUAAF8FAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAABgBQAAzwQAAGEFAABiBQAAYwUAAGQFAABlBQAA1QQAAGYFAADXBAAAZwUAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAGgFAADjBAAAaQUAAGoFAABrBQAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADvBAAA8AQAAB8QAAAgEAAAgwUAAPQEAAD1BAAA9gQAAPcEAAD4BAAAIRAAAPoEAAD7BAAAIhAAACMQAAAkEAAAJRAAACYQAAAnEAAAKBAAACkQAAAqEAAAKxAAACwQAAAtEAAALhAAAC8QAAAwEAAAmP///wAAAAAxEAAAMhAAACcFAAAs////AAAAADMQAAA0EAAA3g8AADUQAAB9CQAADRAAADYQAAA3EAAAOBAAADkQAAA6EAAA5g8AABMQAAA7EAAAJP///wAAAAA8EAAAdwkAAD0QAADs/v//AAAAAD4QAADo/v//AAAAAD8QAABAEAAAAAAAAAAAAAAWEAAAQRAAAEIQAABDEAAAGhAAAEQQAAC8BAAAHBAAAFgFAAAdEAAAwAQAAMEEAABaBQAAWwUAAFwFAAAeEAAAXgUAAF8FAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAABgBQAAzwQAAGEFAABiBQAAYwUAAGQFAABlBQAA1QQAAGYFAADXBAAAZwUAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAGgFAADjBAAAaQUAAGoFAABrBQAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADvBAAA8AQAAB8QAAAgEAAAgwUAAPQEAAD1BAAA9gQAAPcEAAD4BAAAIRAAAPoEAAD7BAAAIhAAAEUQAAAkEAAAJRAAACYQAABGEAAAKBAAACkQAABHEAAAKxAAACwQAAAtEAAALhAAAJj///8AAAAAdgUAACYFAAAnBQAALP///wAAAABIEAAASRAAAN4PAAA1EAAAfQkAAA0QAAA2EAAANxAAADgQAABKEAAAOhAAAOYPAAATEAAASxAAACT///8AAAAATBAAAHcJAAA9EAAA7P7//wAAAAA+EAAA6P7//wAAAAA/EAAAQBAAAAAAAAAAAAAATRAAAE4QAABPEAAAUBAAAFEQAABSEAAA7wUAAPAFAADxBQAAUxAAAKwJAABUEAAAVRAAAFYQAABXEAAAWBAAAFkQAABaEAAAWxAAAFwQAADs////AAAAAF0QAABeEAAA3g8AAF8QAAB9CQAAYBAAAOEPAAAOEAAAYRAAAGIQAABjEAAAZBAAABMQAAAUEAAA5P///wAAAABlEAAAdwkAAHgJAAAAAAAAAAAAAOgFAABmEAAAZxAAAOcFAAAAAAAAAAAAAGgQAABpEAAAahAAAGsQAAAAAAAAAAAAAGwQAABtEAAAbhAAAG8QAABwEAAAcRAAALwEAAByEAAAcxAAAHQQAADABAAAwQQAABgHAAB1EAAAXAUAAHYQAABeBQAALgYAAMgEAAB3EAAAeBAAAHkQAAB6EAAAexAAAHwQAAB9EAAAfhAAAH8QAACAEAAAgRAAAIIQAACDEAAAvP///wAAAACEEAAAhRAAAN4PAACGEAAAfQkAAA0QAACHEAAAiBAAAIkQAACKEAAAixAAAOYPAAATEAAAjBAAALT///8AAAAAjRAAAHcJAAB4CQAAfP///wAAAACOEAAAeP///wAAAACPEAAAkBAAAJEQAABqCAAAkhAAAGwIAABtCAAAbggAAJMQAAAAAAAAAAAAAJQQAACVEAAA3g8AAHgEAAB9CQAADRAAAOEPAAAOEAAAeAQAAHgEAAB4BAAA5g8AABMQAAAUEAAA+P///wAAAAB2CQAAdwkAAHgJAAAAAAAAAAAAAHYJAAB3CQAAeAkAAAAAAAAAAAAAlhAAAJcQAACYEAAAmRAAAJoQAACbEAAA7wUAAJwQAACdEAAAnhAAAJ8QAACgEAAAoRAAAKIQAACjEAAApBAAAKUQAACmEAAApxAAAKgQAACpEAAA8P///wAAAACqEAAAqxAAAN4PAACsEAAAfQkAAK0QAADhDwAADhAAAK4QAACvEAAAsBAAALEQAAATEAAAFBAAAOj///8AAAAAshAAAHcJAAB4CQAAAAAAAAAAAAAjBgAAsxAAALQQAAC1EAAAthAAALcQAAC4EAAAuRAAAPEFAABZBQAAwAQAAMEEAAArBgAAuhAAAJgHAAAtBgAAXgUAAC4GAACZBwAAmgcAALsQAAC8EAAAvRAAAL4QAAC/EAAAwBAAAMEQAADE////AAAAAMIQAADDEAAAAAAAAAAAAADEEAAAxRAAAMYQAADHEAAAyBAAAMkQAAAAAAAAAAAAAMQQAADKEAAAyxAAAMwQAADNEAAAzhAAAAAAAAAAAAAAzxAAANAQAADREAAA0hAAANMQAADUEAAAvAQAANUQAADxBQAA1hAAAMAEAADBBAAAKwYAANcQAACYBwAALQYAAF4FAAAuBgAAmQcAAJoHAADYEAAAvBAAANkQAAC+EAAAvxAAANoQAADbEAAA3BAAAN0QAADeEAAA3xAAAOAQAADhEAAA4hAAAOMQAADkEAAA5RAAAOYQAADnEAAA6BAAAOkQAADqEAAA6xAAAOwQAADtEAAA7hAAAO8QAADwEAAA8RAAAPIQAADzEAAA9BAAAPUQAAD2EAAA9xAAAPgQAAD5EAAAxP///wAAAADCEAAAwxAAAKD///8AAAAA+hAAAJz///8AAAAA+xAAAPwQAAD9EAAAAAAAAAAAAAAjBgAA/hAAAP8QAAAAEQAAAREAAO4FAAC8BAAAAhEAAPEFAABZBQAAwAQAAMEEAAArBgAAAxEAAJgHAAAtBgAAXgUAAC4GAACZBwAAmgcAAHgEAAC8EAAAeAQAAL4QAAC/EAAAxP///wAAAADCEAAAwxAAAAAAAAAAAAAAxBAAAAQRAAAFEQAABhEAAAcRAAAIEQAAAAAAAAAAAAAjBgAACREAAAoRAAALEQAAowcAAO4FAAC8BAAANwYAAPEFAAClBwAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAACmBwAApwcAAKgHAACpBwAADBEAAA0RAACsBwAADhEAAK4HAACvBwAAsAcAALEHAACyBwAAswcAALQHAAAAAAAAAAAAAA8RAAAQEQAAEREAABIRAAATEQAAFBEAALwEAAA3BgAA8QUAAFkFAADABAAAwQQAACsGAAAsBgAAXAUAAC0GAABeBQAALgYAABURAAAWEQAAFxEAABgRAAAZEQAAGhEAABsRAAAAAAAAAAAAABwRAAAdEQAAEREAABIRAAATEQAAFBEAALwEAAA3BgAA8QUAAFkFAADABAAAwQQAAB4RAAAfEQAAXAUAACARAABeBQAALgYAACERAAAiEQAAIxEAACQRAAAlEQAAJhEAACcRAACGAAAAKBEAAAAAAAAAAAAA7AUAACkRAAAqEQAAKxEAACwRAAAtEQAA7wUAAPAFAADxBQAALhEAAC8RAAAAAAAAAAAAAJcIAAAwEQAAMREAADIRAAAzEQAANBEAADURAAAAAAAAAAAAADYRAAA3EQAAOBEAADkRAAA6EQAAOxEAAO8FAADwBQAA8QUAAOIGAADjBgAA5AYAAOUGAADmBgAA5wYAAOgGAADpBgAAPBEAAD0RAAD/DgAAAAAAAAAAAAA+EQAAPxEAAEARAABBEQAAOhEAAO4FAADvBQAA8AUAAPEFAADiBgAA4wYAAOQGAADlBgAA5gYAAOcGAADoBgAA6QYAAHgEAAB4BAAA/w4AAAAAAAAAAAAAPhEAAEIRAABAEQAAQREAADoRAADuBQAA7wUAAPAFAADxBQAA4gYAAOMGAADkBgAA5QYAAOYGAADnBgAA6AYAAOkGAAB4BAAAeAQAAP8OAAAAAAAAAAAAAEMRAABEEQAARREAAEYRAABVBQAARxEAALwEAABIEQAASREAAFkFAADABAAAwQQAAEoRAABLEQAAXAUAAEwRAABeBQAATREAAMgEAADJBAAAygQAAMsEAADMBAAAzQQAAGAFAADPBAAAYQUAAGIFAABjBQAAZAUAAE4RAADVBAAAZgUAANcEAABnBQAA2QQAANoEAADbBAAA3AQAAN0EAADeBAAA3wQAAOAEAADhBAAAaAUAAOMEAABpBQAAagUAAGsFAADnBAAA6AQAAOkEAADqBAAA6wQAAOwEAADtBAAA7gQAAO8EAADwBAAATxEAAFARAACDBQAA9AQAAPUEAAD2BAAA9wQAAPgEAABREQAA+gQAAPsEAABSEQAAUxEAAFQRAABVEQAAVhEAAFcRAABYEQAAWREAAFoRAABbEQAAmP///wAAAABcEQAAJgUAACcFAAAw////AAAAAF0RAABeEQAAXxEAAGARAABhEQAAYhEAAGMRAABkEQAAAAAAAAAAAABlEQAAZhEAAGcRAABoEQAAaREAAGoRAABrEQAAbBEAAG0RAABuEQAAbxEAAAAAAAAAAAAAcBEAAHERAAByEQAAcxEAAE8KAADuBQAAvAQAADcGAADxBQAAWQUAAMAEAADBBAAAKwYAAHQRAAB1EQAAdhEAAF4FAAAuBgAAAAAAAAAAAAB3EQAAeBEAAHkRAAB6EQAAexEAAHwRAAC8BAAAfREAAPEFAABZBQAAwAQAAMEEAAAYBwAAfhEAAH8RAACAEQAAXgUAAC4GAADIBAAAgREAAIIRAACDEQAAhBEAAIURAACGEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAABAAAAAAAAAAEAAAAAAAEAAwABAAIAAwAAAAAAAAAAAIcRAACIEQAAiREAAIoRAACLEQAAAAAAAAAAAACSDAAAjBEAAI0RAAB4BAAAeAQAAAAAAAAAAAAAjhEAAI8RAACQEQAAkREAAJIRAACTEQAAvAQAAJQRAADxBQAAWQUAAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAuBgAAlREAAJYRAACXEQAAyP///wAAAACYEQAAmREAAJoRAACbEQAAAAAAAAAAAACcEQAAnREAAJ4RAACfEQAAoBEAAKERAAC8BAAANwYAAKIRAABZBQAAwAQAAMEEAACjEQAAWwUAAFwFAABdBQAAXgUAAC4GAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAABgBQAAzwQAAGEFAABiBQAAYwUAAGQFAABlBQAA1QQAAGYFAADXBAAAZwUAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAGgFAADjBAAAaQUAAGoFAABrBQAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAACkEQAAmP///wAAAAB2BQAAJgUAACcFAAAAAAAAAAAAAOgNAAClEQAAphEAAKcRAACoEQAAqREAALwEAAA3BgAAyQYAAFkFAADABAAAwQQAAMoGAADLBgAAzAYAAKoRAABeBQAALgYAAMgEAADJBAAAygQAAMsEAADMBAAAzQQAAGAFAADPBAAAYQUAAGIFAABjBQAAZAUAAM4GAADVBAAAZgUAANcEAABnBQAA2QQAANoEAADbBAAA3AQAAN0EAADeBAAA3wQAAOAEAADhBAAAaAUAAOMEAABpBQAAagUAAGsFAADnBAAA6AQAAOkEAADqBAAA6wQAAOwEAADtBAAA7gQAAM8GAADQBgAA0QYAANIGAADTBgAA1AYAANUGAADWBgAA1wYAANgGAADZBgAA7w0AAPANAACrEQAArBEAAK0RAACY////AAAAANoGAADbBgAAJwUAAAAAAAAAAAAArhEAAK8RAACwEQAAsREAALIRAACzEQAA7wUAALQRAAC1EQAAthEAAH8LAAAAAAAAAAAAALcRAAC4EQAAuREAALoRAACyEQAAuxEAAO8FAADwBQAA8QUAAPIFAAB/CwAAAAAAAAAAAAC3EQAAvBEAALkRAAC6EQAAshEAALsRAADvBQAA8AUAAPEFAADyBQAAfwsAAAAAAAAAAAAAvREAAL4RAAC/EQAAwBEAAMERAADCEQAA7wUAAMMRAADEEQAAxREAAMYRAADHEQAAAAAAAAAAAADsBQAAyBEAAMkRAADKEQAAyxEAAMwRAADvBQAA8AUAAPEFAADNEQAAzhEAAM8RAADQEQAAAAAAAAAAAADREQAA0hEAANMRAADUEQAA1REAANYRAADvBQAA8AUAAPEFAADXEQAAzhEAANgRAADZEQAA2hEAANsRAAAAAAAAAAAAAOgFAADcEQAA3REAAN4RAAAAAAAAAAAAAN8RAADgEQAA4REAAAAAAAAAAAAA3xEAAOARAADiEQAAAAAAAAAAAADjEQAA5BEAAOURAAAAAAAAAAAAAOYRAADnEQAA6BEAAOkRAAAAAAAAAAAAAOYRAADqEQAA6BEAAOsRAAAAAAAAAAAAAOYRAADsEQAA6BEAAO0RAAAAAAAAAAAAAO4RAADvEQAAAAAAAAAAAADwEQAA8REAAIsLAADyEQAA8xEAAPQRAAD1EQAA9hEAAPcRAAD4EQAA+REAAPoRAAD7EQAA/BEAAP0RAAD+EQAA/xEAAAASAAABEgAAAhIAAAMSAAAEEgAABRIAAAYSAAD8////AAAAAAcSAAAIEgAACRIAAAoSAADk////AAAAAAsSAAAMEgAADRIAAOD///8AAAAAdQYAAA4SAAAPEgAAEBIAABESAAAAAAAAAQAAAAIAAAADAAAABAAAAAYAAAAJAAAACgAAAAwAAAAAAAAAAAAAAHUGAAAOEgAAdwYAAHgGAAB5BgAAAAAAAAAAAADsBQAAEhIAABMSAAAUEgAAFRIAABYSAADvBQAA8AUAAPEFAADyBQAAFxIAAAAAAAAAAAAAGBIAABkSAAAaEgAAGxIAABwSAAAdEgAAHhIAAB8SAAAAAAAAAAAAABgSAAAgEgAAGhIAABsSAAAcEgAAIRIAAB4SAAAfEgAAAAAAAAAAAAAYEgAAIhIAABoSAAAbEgAAHBIAACMSAAAeEgAAHxIAAAAAAAAAAAAAGBIAACQSAAAaEgAAGxIAABwSAAAjEgAAHhIAAB8SAAAAAAAAAAAAAJcIAAAlEgAAJhIAACcSAAAoEgAAKRIAACoSAAAAAAAAAAAAAPEPAAArEgAALBIAAC0SAAAuEgAALxIAAPcPAAD4DwAAAAAAAAAAAADxDwAAMBIAADESAAAyEgAAMxIAADQSAAD3DwAA+A8AAAAAAAAAAAAANRIAADYSAAA3EgAAOBIAAAAAAAAAAAAAORIAADoSAAA7EgAAPBIAAAAAAAAAAAAAPRIAAD4SAAA/EgAAQBIAAEESAAAAAAAAAAAAAEISAABDEgAARBIAAAAAAAAAAAAARRIAAEYSAABHEgAASBIAAEkSAABKEgAA7wUAAEsSAABMEgAATRIAAMYRAAAAAAAAAAAAAE4SAABPEgAAUBIAAFESAABSEgAA7gUAAO8FAADwBQAA8QUAAPIFAAAAAAAAAAAAAOgFAABTEgAAIgYAAOcFAAAAAAAAAAAAAOgFAABUEgAAVRIAAFYSAAAAAAAAAAAAAP4GAABXEgAAWBIAAFkSAAACBwAA7gUAAO8FAAAEBwAABQcAAAYHAAAHBwAACAcAAAAAAAAAAAAAWhIAAFsSAABcEgAAXRIAAF4SAABfEgAA7wUAAPAFAADxBQAAYBIAAMYRAABhEgAAYhIAAAAAAAAAAAAA6AUAAGMSAABkEgAA5wUAAAAAAAAAAAAAZRIAAGYSAABnEgAAaBIAAGkSAABqEgAA7wUAAPAFAADxBQAAaxIAAMYRAABhEgAAbBIAAG0SAABuEgAAbxIAAHASAABxEgAAAAAAAAAAAAC9EQAAchIAAHMSAAB0EgAAdRIAAHYSAADvBQAAwxEAAMQRAADFEQAAxhEAAHcSAAAAAAAAAAAAAL0RAAB4EgAAeRIAAHoSAABJEgAAexIAAO8FAADDEQAAxBEAAMURAADGEQAAAAAAAAAAAAC9EQAAfBIAAH0SAAB+EgAASRIAAO4FAADvBQAAwxEAAMQRAADFEQAAxhEAAAAAAAAAAAAAvREAAH8SAACAEgAAgRIAAEkSAADuBQAA7wUAAPAFAADxBQAA8gUAAMYRAAAAAAAAAAAAAL0RAACCEgAAgBIAAIESAABJEgAA7gUAAO8FAADwBQAA8QUAAPIFAADGEQAAAAAAAAAAAAA3CAAAgxIAAIQSAACFEgAAhhIAAIcSAADvBQAAPQgAAD4IAAA/CAAAQAgAAEEIAABCCAAAQwgAAEQIAABFCAAARggAAIgSAACJEgAAAAAAAAAAAADoBQAAihIAAIsSAADnBQAAAAAAAAAAAACMCQAAjBIAAI0SAACOEgAAjxIAAJASAAC8BAAANwYAAJIJAABZBQAAwAQAAMEEAAAYBwAAkRIAAFwFAACSEgAAXgUAAC4GAADIBAAAkxIAAJYJAACXCQAAmAkAAJkJAACUEgAAmwkAAJUSAACWEgAAngkAAJcSAACYEgAAmRIAAJoSAACbEgAAnBIAAJ0SAAC4////AAAAAKMJAACkCQAApQkAAAAAAAAAAAAAjAkAAJ4SAACfEgAAoBIAAKESAADuBQAAvAQAADcGAACSCQAAWQUAAMAEAADBBAAAGAcAACwGAABcBQAAlAkAAF4FAAAuBgAAyAQAAJUJAACWCQAAlwkAAJgJAACZCQAAmgkAAJsJAACiEgAAeAQAAJ4JAAB4BAAAeAQAAHgEAAC4////AAAAAKMJAACkCQAApQkAAAAAAAAAAAAAoxIAAKQSAAClEgAAAAAAAAAAAACmEgAApxIAAHgEAABqCAAAeAQAAGwIAABtCAAAbggAAGIKAAAAAAAAAAAAAKgSAACpEgAAqhIAAKsSAAAAAAAAAAAAAKwSAACtEgAArhIAAK8SAACwEgAADwgAAAAAAAAAAAAAqBIAALESAACqEgAAqxIAAAAAAAAAAAAAshIAALMSAAC0EgAAtRIAALYSAAC3EgAAvAQAADcGAAC4EgAAWQUAAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAuBgAAuRIAALoSAAC7EgAAvBIAAL0SAAC+EgAAvxIAAMj///8AAAAAwBIAAMESAADCEgAAwxIAAMQSAADFEgAAxhIAAG4IAADHEgAAAAAAAAAAAAAjBgAAyBIAAMkSAADKEgAAyxIAAMwSAAC8BAAAzRIAAM4SAABZBQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAADPEgAA0BIAANESAADSEgAA0xIAANQSAADVEgAAAAAAAAAAAAC+CwAAvwsAAMALAADWEgAA1xIAAAAAAAAAAAAAuQsAANgSAADZEgAA2hIAAL0LAAAAAAAAn8pahwyZnRVwZz6CO8S77GfS7+OvYd7+RjXUEr+PZWwAAAAAAAAAANsSAADcEgAA3RIAAOcFAADeEgAAAAAAAAAAAADbEgAA3xIAAOASAADnBQAA4RIAAAAAAAAAAAAA4hIAAOMSAADkEgAA5RIAAOYSAADnEgAAvAQAAFcFAABYBQAAWQUAAMAEAADBBAAAWgUAAFsFAADoEgAA6RIAAF4FAABfBQAAyAQAAMkEAADKBAAAywQAAMwEAADNBAAAYAUAAM8EAABhBQAAYgUAAGMFAADqEgAA6xIAANUEAABmBQAA1wQAAGcFAADZBAAA2gQAANsEAADcBAAA3QQAAN4EAADfBAAA4AQAAOEEAADsEgAA4wQAAO0SAABqBQAAawUAAOcEAADoBAAA6QQAAOoEAADrBAAA7AQAAO0EAADuBAAA7wQAAPAEAADuEgAA7xIAAIMFAAD0BAAA9QQAAPYEAAD3BAAA+AQAAPkEAAD6BAAA+wQAAPASAADxEgAA8hIAAPMSAAD0EgAA9RIAAPYSAAD3EgAA+BIAAPkSAAD6EgAA+xIAAPwSAAD9EgAA/hIAAP8SAAAAEwAAARMAAAITAACY////AAAAAAMTAAAEEwAAJwUAAPj+//8AAAAABRMAAAYTAAAHEwAA9P7//wAAAAAIEwAAAAAAAAAAAAAJEwAAChMAAAsTAAAMEwAADRMAAA4TAAC8BAAADxMAABATAABZBQAAwAQAAMEEAAArBgAAERMAAFwFAAASEwAAXgUAAC4GAAATEwAAFBMAABUTAAAWEwAAFxMAABgTAAAZEwAAAAAAAAAAAAAaEwAAGxMAABwTAAAdEwAAHhMAAB8TAAC8BAAAVwUAAFgFAABZBQAAwAQAAMEEAABaBQAAWwUAAFwFAABdBQAAXgUAAF8FAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAABgBQAAzwQAAGEFAABiBQAAYwUAAGQFAABlBQAA1QQAAGYFAADXBAAAZwUAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAGgFAADjBAAAaQUAAGoFAABrBQAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADvBAAA8AQAAHgEAAB4BAAAgwUAAPQEAAD1BAAA9gQAAPcEAAD4BAAA+QQAAPoEAAD7BAAAIBMAACETAAAiEwAAmP///wAAAAB2BQAAJgUAACcFAAAAAAAAAAAAACMTAAAkEwAAHBMAAB0TAAAeEwAAHxMAALwEAABXBQAAJRMAAFkFAADABAAAwQQAAFoFAABbBQAAXAUAACYTAABeBQAAJxMAAMgEAADJBAAAygQAAMsEAADMBAAAzQQAAGAFAADPBAAAYQUAAGIFAABjBQAAZAUAACgTAADVBAAAZgUAANcEAABnBQAA2QQAANoEAADbBAAA3AQAAN0EAADeBAAA3wQAAOAEAADhBAAAaAUAAOMEAABpBQAAagUAAGsFAADnBAAA6AQAAOkEAADqBAAA6wQAAOwEAADtBAAA7gQAAO8EAADwBAAAKRMAACoTAACDBQAA9AQAAPUEAAD2BAAA9wQAAPgEAAD5BAAA+gQAAPsEAAArEwAALBMAAC0TAAAuEwAALxMAADATAAAxEwAAMhMAADMTAAA0EwAANRMAADYTAAA3EwAAOBMAADkTAAA6EwAAOxMAAJj///8AAAAAPBMAAD0TAAAnBQAAHP///wAAAAA+EwAAPxMAAEATAAAY////AAAAAEETAABCEwAAQxMAAEQTAABFEwAARhMAAEcTAABIEwAASRMAAEoTAABCDQAASxMAABT///8AAAAATBMAAAAAAAAAAAAATRMAAE4TAABPEwAAUBMAAFUFAABREwAAvAQAAFcFAABSEwAAWQUAAMAEAADBBAAAWgUAAFsFAABcBQAAXQUAAF4FAABfBQAAyAQAAMkEAADKBAAAywQAAMwEAADNBAAAYAUAAM8EAABhBQAAYgUAAGMFAABkBQAAZQUAANUEAABmBQAA1wQAAGcFAADZBAAA2gQAANsEAADcBAAA3QQAAN4EAADfBAAA4AQAAOEEAABoBQAA4wQAAGkFAABqBQAAawUAAOcEAADoBAAA6QQAAOoEAADrBAAA7AQAAO0EAADuBAAA7wQAAPAEAABTEwAAVBMAAIMFAAD0BAAA9QQAAPYEAAD3BAAA+AQAAFUTAAD6BAAA+wQAAFYTAABXEwAAWBMAAFkTAABaEwAAWxMAAJj///8AAAAAdgUAACYFAAAnBQAAMP///wAAAABcEwAAXRMAAF4TAABfEwAAYBMAAGETAABiEwAAYxMAAAAAAAAAAAAAZBMAAGUTAABmEwAAZxMAAGgTAABpEwAAahMAAGsTAAAAAAAAAAAAAGQTAABsEwAAZhMAAGcTAABtEwAAbhMAAG8TAABwEwAAAAAAAAAAAABNEwAAcRMAAHITAABzEwAAVQUAAHQTAAC8BAAAVwUAAHUTAABZBQAAwAQAAMEEAABaBQAAWwUAAFwFAABdBQAAXgUAAF8FAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAABgBQAAzwQAAGEFAABiBQAAYwUAAGQFAABlBQAA1QQAAGYFAADXBAAAZwUAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAGgFAADjBAAAaQUAAGoFAABrBQAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADvBAAA8AQAAFMTAAB2EwAAgwUAAPQEAAD1BAAA9gQAAPcEAAD4BAAAVRMAAPoEAAD7BAAAVhMAAFcTAABYEwAAWRMAAFoTAAB3EwAAmP///wAAAAB2BQAAJgUAACcFAAAw////AAAAAFwTAABdEwAAeBMAAHkTAABgEwAAYRMAAGITAAB6EwAAAAAAAAAAAABNEwAAexMAAHwTAAB9EwAAVQUAAH4TAAC8BAAAVwUAAFITAABZBQAAwAQAAMEEAABaBQAAWwUAAFwFAABdBQAAXgUAAF8FAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAABgBQAAzwQAAGEFAABiBQAAYwUAAGQFAABlBQAA1QQAAGYFAADXBAAAZwUAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAGgFAADjBAAAaQUAAGoFAABrBQAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADvBAAA8AQAAFMTAAB/EwAAgwUAAPQEAAD1BAAA9gQAAPcEAAD4BAAAVRMAAPoEAAD7BAAAVhMAAFcTAABYEwAAWRMAAFoTAACAEwAAmP///wAAAAB2BQAAJgUAACcFAAAw////AAAAAFwTAABdEwAAgRMAAIITAABgEwAAYRMAAGITAACDEwAAAAAAAAAAAABNEwAAhBMAAIUTAACGEwAAVQUAAIcTAAC8BAAAVwUAAFITAABZBQAAwAQAAMEEAABaBQAAWwUAAFwFAABdBQAAXgUAAF8FAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAABgBQAAzwQAAGEFAABiBQAAYwUAAGQFAABlBQAA1QQAAGYFAADXBAAAZwUAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAGgFAADjBAAAaQUAAGoFAABrBQAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADvBAAA8AQAAFMTAACIEwAAgwUAAPQEAAD1BAAA9gQAAPcEAAD4BAAAVRMAAPoEAAD7BAAAVhMAAFcTAABYEwAAWRMAAFoTAACJEwAAmP///wAAAAB2BQAAJgUAACcFAAAw////AAAAAFwTAABdEwAAihMAAIsTAABgEwAAYRMAAGITAACMEwAAAAAAAAAAAABNEwAAjRMAAI4TAACPEwAAVQUAAFYFAAC8BAAAVwUAAFITAABZBQAAwAQAAMEEAABaBQAAWwUAAFwFAABdBQAAXgUAAF8FAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAABgBQAAzwQAAGEFAABiBQAAYwUAAGQFAABlBQAA1QQAAGYFAADXBAAAZwUAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAGgFAADjBAAAaQUAAGoFAABrBQAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADvBAAA8AQAAFMTAAB4BAAAgwUAAPQEAAD1BAAA9gQAAPcEAAD4BAAAVRMAAPoEAAD7BAAAVhMAAFcTAABYEwAAWRMAAFoTAACY////AAAAAHYFAAAmBQAAJwUAADD///8AAAAAXBMAAF0TAACQEwAAkRMAAGATAABhEwAAYhMAAJITAAAAAAAAAAAAAFEFAACTEwAAUwUAAFQFAABVBQAAVgUAALwEAABXBQAAWAUAAFkFAADABAAAwQQAAFoFAABbBQAAXAUAAF0FAABeBQAAXwUAAMgEAADJBAAAygQAAMsEAADMBAAAzQQAAGAFAADPBAAAYQUAAGIFAABjBQAAZAUAAGUFAADVBAAAZgUAANcEAABnBQAA2QQAANoEAADbBAAA3AQAAN0EAADeBAAA3wQAAOAEAADhBAAAaAUAAOMEAABpBQAAagUAAGsFAADnBAAA6AQAAOkEAADqBAAA6wQAAOwEAADtBAAA7gQAAO8EAADwBAAAeAQAAHgEAACDBQAA9AQAAPUEAAD2BAAA9wQAAPgEAAD5BAAA+gQAAPsEAACY////AAAAAHYFAAAmBQAAJwUAAAAAAAAAAAAAlBMAAJUTAACWEwAAlxMAAJgTAACZEwAAvAQAAJoTAADxBQAAWQUAAMAEAADBBAAAGAcAACwGAABcBQAALQYAAF4FAAAuBgAAyAQAAJsTAACcEwAAnRMAAJ4TAACfEwAAoBMAAKETAACiEwAAoxMAAAAAAAAAAAAApBMAAKUTAACmEwAApxMAAKgTAACpEwAAvAQAAKoTAADxBQAAWQUAAMAEAADBBAAAGAcAACwGAABcBQAALQYAAF4FAAAuBgAAqxMAAKwTAACtEwAArhMAAK8TAACwEwAAsRMAALITAACzEwAAtBMAALUTAAC2EwAAAAAAAAAAAAAjBgAAtxMAALgTAAC5EwAAuhMAALsTAAC8BAAAvBMAAPEFAABZBQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAC9EwAAvhMAAAAAAAAAAAAAIwYAAL8TAADAEwAAwRMAAMITAADDEwAAvAQAAMQTAADxBQAAWQUAAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAuBgAAxRMAAMYTAAAAAAAAAAAAAMcTAADIEwAAyRMAAMoTAADLEwAAzBMAAM0TAAA3BgAAzhMAAM8TAADABAAAwQQAABgHAADQEwAA0RMAAC0GAABeBQAALgYAAMgEAADSEwAA0xMAANQTAADVEwAA1hMAANcTAADYEwAA2RMAANoTAADbEwAA3BMAALD///8AAAAA3RMAAN4TAADfEwAA4BMAAH0JAABs////AAAAAOETAADiEwAA4xMAAOQTAADlEwAA5hMAAOcTAADoEwAAAAAAAAAAAAB4BAAAeAQAAOkTAADqEwAAeAQAAOYTAADrEwAAkhMAAAAAAAAAAAAA7BMAAO0TAADuEwAA7xMAAMsTAADwEwAAzRMAADcGAADOEwAAzxMAAMAEAADBBAAAGAcAANATAADREwAALQYAAF4FAAAuBgAAyAQAANITAADTEwAA1BMAANUTAADWEwAA1xMAALD///8AAAAA8RMAAPITAADfEwAA4BMAAH0JAAAAAAAAAAAAAPMTAAD0EwAA9RMAAPYTAAD3EwAA+BMAAPkTAAD6EwAA+xMAAPwTAAD9EwAAAAAAAAAAAAD+EwAA/xMAAAAUAAABFAAAAhQAAAMUAAC8BAAANwYAAPEFAABZBQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAAEFAAABRQAAAAAAAAAAAAABhQAAAcUAAAAFAAAARQAAAIUAAADFAAAvAQAAAgUAAAJFAAAWQUAAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAKFAAACxQAAAwUAAAAAAAAAAAAACMGAAANFAAAchEAAHMRAABPCgAA7gUAALwEAAA3BgAA8QUAAFkFAADABAAAwQQAACsGAAAOFAAAXAUAAA8UAABeBQAALgYAAAAAAAAAAAAAIwYAABAUAAARFAAAEhQAABMUAAAUFAAAvAQAABUUAADxBQAAWQUAAMAEAADBBAAAKwYAACwGAABcBQAALQYAAF4FAAAuBgAAFhQAABcUAAAYFAAAAAAAAAAAAAAjBgAAGRQAABoUAAAbFAAATwoAAO4FAAC8BAAAFRQAAPEFAABZBQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAAAAAAAAAAAACMGAAAcFAAAHRQAAB4UAAAfFAAAIBQAAJUHAACWBwAA8QUAAFkFAADABAAAwQQAACsGAACXBwAAmAcAAC0GAABeBQAALgYAAJkHAACaBwAAIRQAAJwHAACdBwAAqgsAAKsLAAAiFAAAIxQAACQUAAAAAAAAAAAAACUUAAAmFAAAJxQAACgUAAApFAAAKhQAAO8FAACcEAAAnRAAACsUAAAsFAAALRQAAKEQAAAuFAAAAAAAAAAAAADsBQAALxQAADAUAAAxFAAAMhQAADMUAADvBQAAnBAAAJ0QAAA0FAAANRQAAKAQAAA2FAAANxQAADgUAAAAAAAAAAAAAOwFAAA5FAAAOhQAADsUAAA8FAAAPRQAAO8FAACcEAAAnRAAADQUAAA+FAAAoBAAAD8UAAA3FAAAOBQAAEAUAAAAAAAAAAAAAOwFAABBFAAAQhQAAEMUAABEFAAARRQAAO8FAADwBQAA8QUAAEYUAABHFAAASBQAAAAAAAAAAAAA7AUAAEkUAABKFAAASxQAAEwUAABNFAAA7wUAAPAFAADxBQAARhQAAEcUAABOFAAATxQAAAAAAAAAAAAAUBQAAFEUAABSFAAAUxQAAFQUAABVFAAA7wUAAPAFAADxBQAAVhQAAFcUAAAAAAAAAAAAAOwFAABYFAAAWRQAAFoUAABUFAAAWxQAAO8FAADwBQAA8QUAAEYUAABHFAAAAAAAAAAAAADsBQAAXBQAAF0UAABeFAAAXxQAAGAUAADvBQAAnBAAAJ0QAAA0FAAAYRQAAGIUAABjFAAANxQAAAAAAAAAAAAA7AUAAGQUAABlFAAAZhQAAGcUAABoFAAA7wUAAPAFAADxBQAARhQAAEcUAABpFAAAAAAAAAAAAADsBQAAahQAAGsUAABsFAAAZxQAAG0UAADvBQAA8AUAAPEFAABGFAAARxQAAGkUAAAAAAAAAAAAAOwFAABuFAAAbxQAAHAUAABxFAAAchQAAO8FAADwBQAA8QUAAEYUAABHFAAAcxQAAAAAAAAAAAAA7AUAAHQUAAB1FAAAdhQAAHcUAAB4FAAA7wUAAPAFAADxBQAARhQAAEcUAAB5FAAAAAAAAAAAAADsBQAAehQAAHsUAAB8FAAAZxQAAH0UAADvBQAA8AUAAPEFAABGFAAARxQAAGkUAAAAAAAAAAAAAOwFAAB+FAAAfxQAAIAUAABnFAAAgRQAAO8FAADwBQAA8QUAAEYUAABHFAAAaRQAAAAAAAAAAAAA7AUAAIIUAACDFAAAhBQAAIUUAACGFAAA7wUAAPAFAADxBQAARhQAAEcUAACHFAAAAAAAAAAAAACIFAAAiRQAAIoUAACLFAAAjBQAAI0UAADvBQAA8AUAAPEFAABGFAAARxQAAI4UAAAAAAAAAAAAAIgUAACPFAAAihQAAIsUAACMFAAAjRQAAO8FAADwBQAA8QUAAEYUAABHFAAAjhQAAAAAAAAAAAAA7AUAAJAUAACRFAAAkhQAAJMUAACUFAAA7wUAAPAFAADxBQAARhQAAEcUAACVFAAAAAAAAAAAAACWFAAAlxQAAJgUAAAAAAAAAAAAAJYUAACZFAAAmhQAAAAAAAAAAAAAmxQAAJwUAACdFAAAAAAAAAAAAACeFAAAnxQAAKAUAAAAAAAAAAAAAKEUAACiFAAAoxQAAAAAAAAAAAAApBQAAKUUAACmFAAAAAAAAAAAAACnFAAAqBQAAKkUAACqFAAAqxQAAKwUAACtFAAAAAAAAAAAAACnFAAArhQAAK8UAACwFAAAsRQAALIUAACzFAAAAAAAAAAAAACnFAAAtBQAALUUAAC2FAAAtxQAALgUAAC5FAAAAAAAAAAAAACnFAAAuhQAALsUAACwFAAAsRQAALIUAACzFAAAAAAAAAAAAACnFAAAvBQAAL0UAACwFAAAsRQAALIUAACzFAAAAAAAAAAAAACnFAAAvhQAAL8UAACwFAAAsRQAALIUAACzFAAAAAAAAAAAAACnFAAAwBQAAMEUAACwFAAAsRQAALIUAACzFAAAAAAAAAAAAADCFAAAwxQAAMQUAAAAAAAAAAAAAMIUAADFFAAAeAQAAAAAAAAAAAAAwhQAAMYUAADHFAAAAAAAAAAAAACWFAAAyBQAAMkUAAAAAAAAAAAAAJYUAADKFAAAyxQAAAAAAAAAAAAAlhQAAMwUAADNFAAAAAAAAAAAAACWFAAAzhQAAM8UAAAAAAAAAAAAAJsUAADQFAAA0RQAAAAAAAAAAAAAmxQAANIUAADTFAAAAAAAAAAAAACeFAAA1BQAANUUAAAAAAAAAAAAAJ4UAADWFAAA1xQAAAAAAAAAAAAAoRQAANgUAADZFAAAAAAAAAAAAAChFAAA2hQAANsUAAAAAAAAAAAAAKQUAADcFAAA3RQAAAAAAAAAAAAApBQAAN4UAADfFAAAAAAAAAAAAACkFAAA4BQAAOEUAAAAAAAAAAAAAKQUAADiFAAA4xQAAAAAAAAAAAAApBQAAOQUAADlFAAAAAAAAAAAAACkFAAA5hQAAOcUAAAAAAAAAAAAAKQUAADoFAAA6RQAAAAAAAAAAAAApBQAAOoUAADrFAAAAAAAAAAAAACkFAAA7BQAAO0UAAAAAAAAAAAAAO4UAADvFAAA8BQAAAAAAAAAAAAA8RQAAPIUAADzFAAAAAAAAAAAAAD0FAAA9RQAAPYUAAAAAAAAAAAAAPcUAAD4FAAA+RQAAAAAAAAAAAAA+hQAAPsUAAD8FAAAAAAAAAAAAAD9FAAA/hQAAP8UAAAAAAAAAAAAAAAVAAABFQAAAhUAAAAAAAAAAAAAAxUAAAQVAAAFFQAAxEsFAAxMBQAwTAUAeEwFAFRMBQCcTAUAAQAAAAIAAAADAAAABAAAAAUAAAAFAAAABQAAAAYAAAAAAAAAAAAAACUUAAAGFQAABxUAAAgVAAApFAAACRUAAO8FAACcEAAAnRAAACsUAAAsFAAALRQAAKEQAAAuFAAAAAAAAAAAAADoBQAAChUAAAsVAADnBQAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAAAAjBgAADBUAAA0VAAAOFQAA4g4AAA8VAACVBwAAlgcAAPEFAABZBQAAwAQAAMEEAAArBgAAlwcAAJgHAAAtBgAAXgUAAC4GAACZBwAAmgcAABAVAACcBwAAERUAAKoLAACrCwAA1w4AANgOAADZDgAA2g4AANsOAADcDgAA3Q4AAN4OAADmDgAA5w4AAOgOAADpDgAA6g4AAOsOAAAAAAAAAAAAACMGAAASFQAAExUAABQVAADiDgAA7gUAAJUHAACWBwAA8QUAAFkFAADABAAAwQQAACsGAACXBwAAmAcAAC0GAABeBQAALgYAAJkHAACaBwAAeAQAAJwHAACdBwAAqgsAAKsLAADXDgAA2A4AANkOAADaDgAA2w4AANwOAADdDgAA3g4AAOYOAADnDgAA6A4AAOkOAADqDgAA6w4AAAAAAAAAAAAAIwYAABUVAAAWFQAAFxUAANMOAADuBQAAlQcAAJYHAADxBQAAWQUAAMAEAADBBAAAKwYAAJcHAACYBwAALQYAAF4FAAAuBgAAmQcAAJoHAAB4BAAAnAcAAJ0HAACqCwAAqwsAANcOAADYDgAA2Q4AANoOAADbDgAA3A4AAN0OAADeDgAAAAAAAAAAAAAjBgAAGBUAABkVAAAaFQAAGxUAAO4FAACVBwAAlgcAAPEFAABZBQAAwAQAAMEEAAArBgAAlwcAAJgHAAAtBgAAXgUAAC4GAACZBwAAmgcAAHgEAACcBwAAnQcAAKoLAACrCwAAAAAAAAAAAAAjBgAAHBUAAB0VAAAeFQAAHxUAAO4FAACVBwAAlgcAAPEFAABZBQAAwAQAAMEEAAArBgAAlwcAAJgHAAAtBgAAXgUAAC4GAACZBwAAmgcAAHgEAACcBwAAnQcAAAAAAAAAAAAAIwYAACAVAAAhFQAAIhUAACMVAADuBQAAvAQAAAIRAADxBQAAWQUAAMAEAADBBAAAKwYAAAMRAACYBwAALQYAAF4FAAAuBgAAmQcAAJoHAAB4BAAAAAAAAAAAAAAkFQAAJRUAACYVAAAnFQAAxwYAACgVAAC8BAAANwYAAMkGAABZBQAAwAQAAMEEAADKBgAAywYAAMwGAAApFQAAXgUAAC4GAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAABgBQAAzwQAAGEFAABiBQAAYwUAAGQFAADOBgAA1QQAAGYFAADXBAAAZwUAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAGgFAADjBAAAaQUAAGoFAABrBQAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADPBgAA0AYAANEGAADSBgAA0wYAANQGAADVBgAA1gYAANcGAADYBgAA2QYAAJj///8AAAAA2gYAANsGAAAnBQAAAAAAAAAAAADkDQAAKhUAACsVAAAsFQAAxwYAAFYFAAC8BAAANwYAAMkGAABZBQAAwAQAAMEEAADKBgAAywYAAMwGAADeCwAAXgUAAC4GAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAABgBQAAzwQAAGEFAABiBQAAYwUAAGQFAADOBgAA1QQAAGYFAADXBAAAZwUAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAGgFAADjBAAAaQUAAGoFAABrBQAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADPBgAA0AYAANEGAADSBgAA0wYAANQGAADVBgAA1gYAANcGAADYBgAA2QYAAJj///8AAAAA2gYAANsGAAAnBQAAAAAAAAAAAACcEQAALRUAAC4VAAAvFQAAMBUAAFYFAAC8BAAANwYAAFgFAABZBQAAwAQAAMEEAABaBQAAWwUAAFwFAABdBQAAXgUAAC4GAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAABgBQAAzwQAAGEFAABiBQAAYwUAAGQFAABlBQAA1QQAAGYFAADXBAAAZwUAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAGgFAADjBAAAaQUAAGoFAABrBQAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAACY////AAAAAHYFAAAmBQAAJwUAAAAAAAAAAAAAEQcAADEVAAAyFQAAMxUAADQVAAA1FQAAvAQAAIQIAADxBQAAWQUAAMAEAADBBAAAGAcAACwGAABcBQAALQYAAF4FAAAuBgAAyAQAABkHAAAaBwAAGwcAAIgIAAA2FQAAAAAAAAAAAAARBwAANxUAADgVAAA5FQAA1wsAAO4FAAC8BAAAhAgAAPEFAABZBQAAwAQAAMEEAAAYBwAALAYAAFwFAAAtBgAAXgUAAC4GAADIBAAAGQcAABoHAAAbBwAAiAgAAAAAAAAAAAAAEQcAADoVAAA7FQAAPBUAANcLAADuBQAAvAQAADcGAADxBQAAWQUAAMAEAADBBAAAGAcAACwGAABcBQAALQYAAF4FAAAuBgAAyAQAAD0VAAA+FQAAAAAAAAAAAADkDQAAPxUAAEAVAABBFQAAQhUAAFYFAAC8BAAANwYAAMkGAABZBQAAwAQAAMEEAADKBgAAywYAAMwGAADeCwAAXgUAAC4GAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAABgBQAAzwQAAGEFAABiBQAAYwUAAGQFAADOBgAA1QQAAGYFAADXBAAAZwUAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAGgFAADjBAAAaQUAAGoFAABrBQAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADPBgAA0AYAANEGAADfCwAA0wYAAJj///8AAAAAdgUAACYFAAAnBQAAAAAAAAAAAACcEQAAQxUAAEQVAABFFQAARhUAAO4FAAC8BAAANwYAAFgFAABZBQAAwAQAAMEEAABaBQAAWwUAAFwFAABdBQAAXgUAAC4GAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAABgBQAAzwQAAMIOAAB4BAAAeAQAAGQFAABlBQAAmP///wAAAAB2BQAAJgUAACcFAAAAAAAAAAAAAEcVAABIFQAASRUAAEoVAAAAAAAAAAAAAEsVAABMFQAATRUAAE4VAABPFQAAUBUAALwEAABRFQAAUhUAAFkFAADABAAAwQQAACsGAAAsBgAAXAUAAC0GAABeBQAALgYAAFMVAABUFQAAVRUAAFYVAABXFQAAWBUAAFkVAAC8////AAAAAFoVAABbFQAAXBUAAGoIAABdFQAAbAgAAG0IAABuCAAAXhUAAAAAAAAAAAAA7AUAAF8VAABgFQAAYRUAAGIVAABjFQAA7wUAAPAFAADxBQAA8gUAAAAAAAAAAAAAEQcAAGQVAAA7FQAAPBUAANcLAADuBQAAvAQAADcGAADxBQAAWQUAAMAEAADBBAAAGAcAACwGAABcBQAALQYAAF4FAAAuBgAAyAQAABkHAAAaBwAAGwcAAHgEAAAAAAAAAAAAAGUVAABmFQAAZxUAAGgVAABpFQAAahUAAO8FAADwBQAA8QUAAPIFAABrFQAAAAAAAAAAAADoBQAAbBUAAG0VAADnBQAAAAAAAAAAAABuFQAAbxUAAHAVAABxFQAAchUAAHMVAAC8BAAAdBUAAPEFAAB1FQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAB2FQAAdxUAAHgVAAB5FQAAAAAAAAAAAAB6FQAAexUAAHwVAAB9FQAAfhUAAH8VAAC8BAAAdBUAAPEFAACAFQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAB2FQAAdxUAAIEVAACCFQAAAAAAAAAAAACDFQAAhBUAAIUVAACGFQAAhxUAAIgVAADvBQAA8AUAAPEFAADiBgAA4wYAAOQGAADlBgAA5gYAAOcGAADoBgAA6QYAAIkVAACKFQAAixUAAIwVAACNFQAAtP///wAAAACOFQAAAAAAAAAAAACPFQAAkBUAAJEVAACSFQAAZwkAAO4FAADvBQAA8AUAAPEFAADiBgAA4wYAAOQGAADlBgAA5gYAAOcGAADoBgAA6QYAAHgEAAB4BAAAAAAAAAAAAACTFQAAlBUAAJEVAACSFQAAZwkAAO4FAADvBQAA8AUAAPEFAADyBQAA4wYAAHgEAAB4BAAA5gYAAOcGAADoBgAAAAAAAAAAAADYCQAAlRUAAJYVAACXFQAA3AkAAO4FAADvBQAA8AUAAPEFAADyBQAA4wYAAAAAAAAAAAAA2AkAAJgVAACWFQAAlxUAANwJAADuBQAA7wUAAPAFAADxBQAA8gUAAOMGAAAAAAAAAAAAAJkVAACaFQAAmxUAAJwVAAB+FQAAnRUAALwEAAB0FQAA8QUAAIAVAADABAAAwQQAACsGAAAsBgAAXAUAAC0GAABeBQAALgYAAHYVAAB3FQAAgRUAAJ4VAAAAAAAAAAAAAJ8VAACgFQAAoRUAAKIVAACjFQAApBUAALwEAAA3BgAA8QUAAKUVAADABAAAwQQAABgHAAAsBgAAXAUAAC0GAABeBQAALgYAAMgEAACmFQAAAAAAAAAAAACnFQAAqBUAAKkVAACqFQAAqxUAAKwVAAC8BAAAdBUAAPEFAAB1FQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAB2FQAAdxUAAIEVAACtFQAAAAAAAAAAAACnFQAArhUAAK8VAACwFQAAsRUAALIVAAC8BAAAdBUAAPEFAAB1FQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAB2FQAAdxUAAIEVAACzFQAAAAAAAAAAAACnFQAAtBUAALUVAAC2FQAAtxUAALgVAAC8BAAAdBUAAPEFAAB1FQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAB2FQAAdxUAAIEVAAC5FQAAAAAAAAAAAADoBQAAuhUAALsVAADnBQAAAAAAAAAAAAC8FQAAvRUAAL4VAAC/FQAAwBUAAMEVAAC8BAAAdBUAAPEFAAB1FQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAB2FQAAdxUAAMIVAADDFQAAxBUAAJz///8AAAAAxRUAAAAAAAAAAAAA6AUAAMYVAADHFQAA5wUAAAAAAAAAAAAAyBUAAMkVAADKFQAAyxUAAMwVAADNFQAA7wUAAPAFAADxBQAAzhUAAM8VAADQFQAAAAAAAAAAAACnFQAA0RUAANIVAADTFQAA1BUAANUVAAC8BAAAdBUAAPEFAAB1FQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAB2FQAAdxUAAIEVAADWFQAAAAAAAAAAAADXFQAA2BUAANkVAADaFQAA2xUAAAAAAAAAAAAA1xUAANgVAADZFQAA3BUAAN0VAAAAAAAAAAAAANcVAADYFQAA2RUAAN4VAADfFQAAAAAAAAAAAADXFQAA2BUAANkVAADgFQAA4RUAAAAAAAAAAAAA1xUAANgVAADZFQAA4hUAAOMVAAAAAAAAAAAAANcVAADYFQAA2RUAAOQVAADlFQAAAAAAAAAAAADXFQAA2BUAAOYVAADnFQAA6BUAAAAAAAAAAAAA1xUAANgVAADZFQAA6RUAAOoVAAAAAAAAAAAAANcVAADYFQAA2RUAAOsVAADsFQAAAAAAAAAAAADtFQAA7hUAAO8VAADwFQAA8RUAAPIVAAC8BAAAdBUAAPEFAAB1FQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAB2FQAAdxUAAIEVAADzFQAAAAAAAAAAAADtFQAA9BUAAO8VAADwFQAA8RUAAPIVAAC8BAAAdBUAAPEFAAB1FQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAB2FQAAdxUAAIEVAAD1FQAAAAAAAAAAAACnFQAA9hUAAPcVAAD4FQAA+RUAAPoVAAC8BAAAdBUAAPEFAAB1FQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAB2FQAAdxUAAIEVAAD7FQAAAAAAAAAAAACnFQAA/BUAAP0VAAD+FQAA/xUAAAAWAAC8BAAAdBUAAPEFAAB1FQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAB2FQAAdxUAAAEWAAACFgAAAxYAAAAAAAAAAAAA1xUAANgVAADZFQAABBYAAHgEAAAAAAAAAAAAAAUWAAAGFgAABxYAAAgWAAAJFgAAChYAALwEAAB0FQAA8QUAAAsWAADABAAAwQQAACsGAAAsBgAAXAUAAC0GAABeBQAALgYAAHYVAAAMFgAADRYAAA4WAAAPFgAAnP///wAAAAAQFgAAAAAAAAAAAACnFQAAERYAABIWAAATFgAAFBYAABUWAAC8BAAAdBUAAPEFAAB1FQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAB2FQAAdxUAAIEVAAAAAAAAAAAAABYWAAAXFgAAGBYAABkWAAAaFgAAGxYAAO8FAADwBQAA8QUAABwWAABrFQAAHRYAAB4WAAAAAAAAAAAAABYWAAAfFgAAIBYAACEWAAAaFgAAIhYAAO8FAADwBQAA8QUAABwWAABrFQAAHRYAAB4WAAAAAAAAAAAAABYWAAAjFgAAJBYAACUWAAAaFgAAJhYAAO8FAADwBQAA8QUAABwWAABrFQAAHRYAAB4WAAAAAAAAAAAAABYWAAAnFgAAKBYAACkWAAAaFgAAKhYAAO8FAADwBQAA8QUAABwWAABrFQAAHRYAAB4WAAAAAAAAAAAAABYWAAArFgAALBYAAC0WAAAaFgAALhYAAO8FAADwBQAA8QUAABwWAABrFQAAHRYAAB4WAAAAAAAAAAAAAC8WAAAwFgAAMRYAADIWAAAzFgAANBYAAO8FAADwBQAA8QUAABwWAABrFQAAHRYAAB4WAAA1FgAANhYAAAAAAAAAAAAA9wYAADcWAAA4FgAAORYAADoWAAA7FgAA7wUAAPAFAADxBQAA8gUAAPMGAAAAAAAAAAAAAC8WAAA8FgAAPRYAAD4WAAA/FgAAQBYAAO8FAADwBQAA8QUAABwWAABrFQAAHRYAAB4WAABBFgAAQhYAAAAAAAAAAAAALxYAAEMWAABEFgAARRYAABoWAABGFgAA7wUAAPAFAADxBQAAHBYAAGsVAAAdFgAAHhYAADUWAAAAAAAAAAAAABYWAABHFgAASBYAAEkWAAAaFgAAShYAAO8FAADwBQAA8QUAABwWAABrFQAAHRYAAB4WAAAAAAAAAAAAABYWAABLFgAATBYAAE0WAAAaFgAAThYAAO8FAADwBQAA8QUAABwWAABrFQAAHRYAAB4WAAAAAAAAAAAAABYWAABPFgAAUBYAAFEWAAAaFgAAUhYAAO8FAADwBQAA8QUAABwWAABrFQAAHRYAAB4WAAAAAAAAAAAAABYWAABTFgAAVBYAAFUWAAAaFgAAVhYAAO8FAADwBQAA8QUAABwWAABrFQAAHRYAAB4WAAAAAAAAAAAAABYWAABXFgAAWBYAAFkWAAAaFgAAWhYAAO8FAADwBQAA8QUAABwWAABrFQAAHRYAAB4WAAAAAAAAAAAAABYWAABbFgAAXBYAAF0WAABeFgAAXxYAAO8FAADwBQAA8QUAABwWAABrFQAAHRYAAB4WAABgFgAAAAAAAAAAAAAWFgAAYRYAAGIWAABjFgAAGhYAAGQWAADvBQAA8AUAAPEFAAAcFgAAaxUAAB0WAAAeFgAAAAAAAAAAAAAWFgAAZRYAAGYWAABnFgAAaRUAAGgWAADvBQAA8AUAAPEFAADyBQAAaxUAAAAAAAAAAAAAFhYAAGkWAABmFgAAZxYAAGkVAABoFgAA7wUAAPAFAADxBQAA8gUAAGsVAAAAAAAAAAAAACMGAABqFgAAaxYAAGwWAABtFgAAbhYAALwEAABiBwAA8QUAAFkFAADABAAAwQQAACsGAAAsBgAAXAUAAC0GAABeBQAALgYAAGMHAABkBwAAAAAAAAAAAAARBwAAbxYAAHAWAABxFgAATwoAAO4FAAC8BAAANwYAAPEFAABZBQAAwAQAAMEEAAAYBwAALAYAAFwFAAAtBgAAXgUAAC4GAADIBAAAAAAAAAAAAAAjBgAAchYAAHIRAABzEQAATwoAAO4FAAC8BAAANwYAAPEFAABZBQAAwAQAAMEEAAArBgAALAYAAFwFAAAtBgAAXgUAAC4GAAAAAAAAAAAAAHMWAAB0FgAAchEAAHMRAABPCgAA7gUAAO8FAADwBQAA8QUAAPIFAADABAAAwQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALQAAMDEyMzQ1Njc4OQAAAAAAAABhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egAAAAAtAGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG90AAAAAAAAAAAAAAAAAACYFgAAAAAAAAAAAAAAAAAAAAArOS45MDkrOTA5MGUwOS5lAAAAAAAAAAAAAAAAAAAAAQIDAQQEBAQEBAQEBAQBAwEEBAQEBAQEBAQEAQUFBQUFBQUFBQUBBgEHAQEICAgICAgICAgIAQgICAgICAgICAgBBQUFBQUFBQUFBQEBAQEBAQEBAQEBCQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEJAQgICAgICAgICAgBAwEEBAQEBAQEBAQEAQEBAQEBAQEBAQEJAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQkBAAAAEB0oOEN6hQAPDAoPCjYKOAIAAgMIBgUFBwQAAAEAAgMABAUAAAAAAAAAAAAAAAA8v3N/3U8VdTIdMPlId4Ja9fk/6QNPOE0XbgW1tbiTRgCA4Dd5w0FDAAAAAITXl0EAAAAAAIjDQAAAAAAAAFlAAAAAAAAAJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGFiY2RlZmdoaWprbG1uAG9wcXIAc3R1dnd4eXoAewB8fX5/gIGCgwCEhQCGh4iJAAAAAAAAAAAAAAAAAAAAAIoAiwAAAACMjY6PAAAAAACQAAAAkQAAkpOUlQAAAAAEAAAAAAAAAAYAAAAAAAAAAAEBAgECAgMBAgIDAgMDBAEAAAACAAAAAwAAAAcAAAANAAAAHwAAAD0AAAB/AAAA+wAAAP0BAAD9AwAA9wcAAP0PAAD/HwAA/T8AAO1/AADx/wAA//8BAPv/AwD//wcA/f8PAPf/HwD9/z8A8f9/AP3//wDZ//8B+///A9n//wfH//8P/f//H93//z////9/9AMAAAAAAAD0AwAA9AMAAPQDAAAAAAAAAAAAAAAAAABtdmJhAQAAAG13bGIBAAAAcG1jYwEAAABsY29sAQAAAGtyYW0NAAAAa21rbQ0AAABnaWxyAQAAAAAAAAAAAAAAdGxhYwEAAABnaWxjAQAAAHNydWMBAAAAdHNpZAEAAABucmVrAwAAAGFnaWwBAAAAdGxjcgEAAAAAAAAAAAAAAGNyZmELAAAAAQAAAAAAAABjcDJjJgAAAAIAAAAAAAAAY3MyYyYAAAABAAAAAAAAAHRsYWMkAAAAAAAAAAEAAABlc2FjIQAAAAAAAAABAAAAZ2lsYwEAAAASAAAAEwAAAHBzcGMhAAAAAgAAAAMAAABod3NjJAAAAAQAAAAFAAAAZ2lsZAEAAAAEAAAABQAAAHRweGUUAAAACgAAABAAAABjYXJmCwAAAAIAAAAAAAAAZGl3ZhYAAAABAAAABwAAAHRsYWgWAAAABgAAAAcAAAB0c2loKAAAAAAAAAABAAAAYW5raCIAAAAAAAAAAQAAAGdpbGgBAAAAFAAAABUAAABsZ25oFwAAAAEAAAAAAAAAb2pvaBQAAAAMAAAAEAAAAGRpd2gWAAAAAgAAAAcAAABsYXRpIAAAAAIAAAADAAAANDBwahQAAAALAAAAEAAAADg3cGoUAAAAAgAAABAAAAAzOHBqFAAAAAMAAAAQAAAAMDlwahQAAAAEAAAAEAAAAGFnaWwBAAAAAgAAAAMAAABtdW5sFQAAAAEAAAACAAAAa3JnbQ8AAAAKAAAACwAAAGtjbG4UAAAADQAAABAAAABtdW5vFQAAAAAAAAACAAAAbmRybwoAAAADAAAAAAAAAHRsYXAWAAAABQAAAAcAAABwYWNwJQAAAAIAAAAAAAAAYW5rcBYAAAAAAAAABwAAAG11bnAGAAAAAQAAAAQAAABkaXdwFgAAAAAAAAAHAAAAZGl3cRYAAAAEAAAABwAAAGdpbHIBAAAAAAAAAAEAAAB5YnVyHAAAAAIAAAADAAAAZm5pcwoAAAAEAAAAAAAAAHBjbXMlAAAAAQAAAAAAAABscG1zFAAAAAEAAAAQAAAAMTBzcyMAAAACAAAAAwAAADIwc3MjAAAABAAAAAUAAAAzMHNzIwAAAAYAAAAHAAAANDBzcyMAAAAIAAAACQAAADUwc3MjAAAACgAAAAsAAAA2MHNzIwAAAAwAAAANAAAANzBzcyMAAAAOAAAADwAAADgwc3MjAAAAEAAAABEAAAA5MHNzIwAAABIAAAATAAAAMDFzcyMAAAAUAAAAFQAAADExc3MjAAAAFgAAABcAAAAyMXNzIwAAABgAAAAZAAAAMzFzcyMAAAAaAAAAGwAAADQxc3MjAAAAHAAAAB0AAAA1MXNzIwAAAB4AAAAfAAAANjFzcyMAAAAgAAAAIQAAADcxc3MjAAAAIgAAACMAAAA4MXNzIwAAACQAAAAlAAAAOTFzcyMAAAAmAAAAJwAAADAyc3MjAAAAKAAAACkAAABzYnVzCgAAAAIAAAAAAAAAc3B1cwoAAAABAAAAAAAAAGhzd3MkAAAAAgAAAAMAAABsdGl0EwAAAAQAAAAAAAAAbWFudBQAAAAOAAAAEAAAAG11bnQGAAAAAAAAAAQAAABkYXJ0FAAAAAAAAAAQAAAAZGl3dBYAAAADAAAABwAAAGNpbnUDAAAADgAAAA8AAAB0bGF2FgAAAAUAAAAHAAAAdHJldgQAAAAAAAAAAQAAAGxhaHYWAAAABgAAAAcAAABhbmt2IgAAAAIAAAADAAAAbGFwdhYAAAAFAAAABwAAADJ0cnYEAAAAAAAAAAEAAABydHJ2BAAAAAIAAAADAAAAb3Jleg4AAAAEAAAABQAAAAAQAREgMAIDEhMhMSIyIzNsb3NpYW5pZjJuaWYzbmlmaWRlbTJkZW10aW5pAAAAAJ4WAAAAAAAAnxYAAKAWAAAAAAAAoRYAAAAAAAAAAAAAohYAAKMWAAAAAAAABAAAAAIAAAABAAAAAAAAAAAAAAAHBwAABwACAAcAAQAHAAIABwABAAcABgAHBwAABwACAAcAAQAHAAIABwIFAAcABgAHBwAABwACAAYBAQAGAQMABgEEAAYBBgAHBwAABwACAAQBAQAEAQMABAEEAAQBBgAHBwAABwACAAUAAQAFAAIABQIFAAUABgAHBwAABwACAAAAAQAAAAIAAAIFAAAABgAHBwAABwACAAcAAQAHAAIABwMFAAcABgAAAAAAAAAAAAAQAgAAAAMABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGCHCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAACBAYICgwADgAQEhQAAAAAFhgaAAAAAAAcHgAAAAAAAAAgAAAAAAAAAAAAIgAAJAAAAAAAJgAAAAAAACgqLC4wAAAyNAAAAAAAAAAANjgAAAAAAAAAAAICQAACgsMAQENAAAADg8BAQICBAEBAQEQERIDABMAFAAVFhcBGAAAABkBGgEbHAQAHQEBAR4AHyAFISIjJAICJSYGAAEnKAUBBwAAKQAAACorAAABAQEBAQEBAQEBAQcsAQEBAS0AAAAuAAAALwAAAAAAADAGAAABAQEBAQExADIzNDU2NwAAODk6AAA7AAA8AQEBPQAAAD4AAAAAAAAAAAAAAAAAPwFAAEEAAABCAUMAAAAAAERFRkcAAAAAAAAAAAAAAAAAAwADAAAAAAAAAQEBAQEBAQFISQAAAAAAAHd3d3czMzMzIiIiInd3B3ciMzMzIzMzMwB3d3dzd3d3AAAAd3AHd3cDIiIjIzMzIyIyMzMyc3d3d3d3MyciICIyIyIiIiIjIzMiJ3d3d3cidzNzN3d3d2d0M1MlIjMzMjI1MlN3dyczIyIzMzMjMjMjIzIzdzMzMzNzd3d3c3d3MjMzIjMzMiJyd3d3AzMzICNyd3ciMjMDMDMzMjMiAjIjMjMzd3B3d3d3dzB3c3dwAABgNnNzd3d3dzB3d3d3B3d3dwAzAXd3MzMjICACECIiMjMTMzMjMyMAcnd3NzMjIyMiMyMzMiIjd3d3JyIyAzEzMzMzMnd3dzJzMzMjMzMzMwN3NzNydzMzIjMzd3d3AzMiAiMyIzMwIgMAIBN3dzMzd3d3Z3d3AAAAAAAAAAAAAAAAAAAAVAYAAFUGAABYBgAA3AYAAOMGAADnBgAA6AYAAMoIAADLCAAAzQgAAM4IAADPCAAA0wgAAPMIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAApBYAAKUWAACmFgAApxYAAKgWAAAAAAAAAAAAAAAAAACpFgAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAb21qbG9tanZvbWp0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKoWAAAAAAAAqxYAAHJiZWgEAAAAAgAAAAEAAACsFgAArRYAAK4WAACvFgAAsBYAAAAAAACxFgAAshYAALMWAAAAAAAAAAAAAAMAAAAAAAAAAAAAAHRrdW5NAAAAbmhrYU0AAABmaHByTAAAAGZya3JNAAAAZmVycEwAAABmd2xiTAAAAGZ2YmFMAAAAZmxhaEwAAABmdHNwTAAAAHV0YXZNAAAAdGNqY00AAAB0aW5pTAAAAHNlcnBNAAAAc3ZiYU0AAABzd2xiTQAAAHN0c3BNAAAAbmxhaE0AAAAAAAAAAAAAAAg5BDkFOQU5DQ0EOQQ5BDkIOQU5BTkNDQQ5BDkEOQQ5CDkFOQU5DQ0EOQQ5BDkIOQU5BTkNDQQ5BDkFOQg5ATkDOQM5BDkBOQU5BTkJCQUJATkBOQE5AzkEOQU5BTkEOQU5AzkFOQM5AzkDOQM5BDkBOQM5AzkEOQE5BTkJCQUJATkBOQM5BDkFOQU5BDkFOQU5AzkFOQM5AzkEOQM5AzkEOQE5AzkBOQU5CQkFCQE5ATkDOQQ5BTkFOQM5BDkFOQU5AzkFOQM5BDkEOQM5AzkEOQE5AzkBOQU5CQkFCQE5ATkDOQQ5BTkFOQM5BDkFOQU5AzkFOQE5AzkBOQQ5BTkFOQkJBQkBOQM5BTkFOQkJBQkBDwAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAIDAwQFAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQADAwQGAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgADAwQFAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAEAAcDAwQFAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQACAwMEBQAAAAgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUACgsLDA0JCQkJDAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkNCQ4JCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkOCQsLDA8JCQkJDAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkPCQsLDA0JCQkJDAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkNCQwJEAsLDA0JCQkJDAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkNCQoLCwwNCQkJEQwJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJDQkKCwsMDQkJCRIMCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQ0JFBUVFhcTExMYFhMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMXExkTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMZExUVFhsaGhoaFhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhobGhUVFhcTExMTFhMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMXExYaFBUVFhcTExMTFhMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMXExwVFRYXExMTExYTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTFxMeHx8gIR0dHSIgHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSEdIx0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSMdHx8gJB0dHR0gHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSQdHx8gIR0dHR0gHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSEdIB0eHx8gIR0dHR0gHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSEdJR8fICEdHR0dIB0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0hHRUVFiYAAAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmACgnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycoJyorLC0uLxYXMDExGBYyMzQ1NikpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpNyk5Ojs8BAU9ODgIBDg4Pjg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgFOD86QEAEBT04ODgEODg+ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAU4OkBABAU9ODg4BDg4Pjg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgFOCo4ODhBQjgBPTg4ODg4Kjg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4AThDQzgBPTg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ATg9ODhEPTg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4RDg9OD04ODg9OCo4RThDQzgBPTg4ODg4Kjg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ATgqODg4Q0M4AT04ODg4OCo4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAE4Kjg4OENCOAE9ODg4ODgqODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgBOEZHSEgEBT04ODgEODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAU4R0hIBAU9ODg4BDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgFOEhIBAU9ODg4BDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgFOD04OEQ9ODg4BDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODhEOElKSgQFPTg4OAQ4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4BThBSzgBPTg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4AThBOENDOAE9ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgBOENLOAE9ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgBODk6QEAEBT04ODgEODg+ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAU4OTo7QAQFPTg4CAQ4OD44ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4BThNTk9QDA1RTEwSDExMUkxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwNTFNOVFAMDVFMTEwMTExSTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTA1MTlRQDA1RTExMDExMUkxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwNTFVMTExWV0wOUUxMTExMVUxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDkxYTllaDA1RTEwRDExMUkxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwNTFtOVFQMDVFMTEwMTExSTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTA1MTlRUDA1RTExMDExMUkxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwNTFVMTExcV0wOUUxMTExMVUxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDkxRTExdUUxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMXUxRTFFMTExRTFVMXkxcXEwOUUxMTExMVUxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDkxVTExMXFxMDlFMTExMTFVMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTA5MX2BhYQwNUUxMTAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDUxgYWEMDVFMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTA1MYWEMDVFMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTA1MUUxMXVFMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTF1MYmNjDA1RTExMDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwNTFZkTA5RTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwOTFxcTA5RTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwOTFZMXFxMDlFMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTA5MXGRMDlFMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTA5MWE5UVAwNUUxMTAxMTFJMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDUxYTllUDA1RTEwRDExMUkxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwNTAoLCwwNTExMTAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDUxNTlRQDA1RTExMDExMUkxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwNTGYtZ2cWFzBlZWUWZWU0ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZRdlLWdnFhcwZWVlFmVlNGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWUXZWhlZWVpamUZMGVlZWVlaGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlGWUsLWtsFhcwZWUYFmVlNGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWUXZWhlZWVtamUZMGVlZWVlaGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlGWUwZWVuMGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlbmUwZTBlZWUwZWhlb2VtbWUZMGVlZWVlaGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlGWVoZWVlbW1lGTBlZWVlZWhlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZRllcHFychYXMGVlZRZlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlF2VxcnIWFzBlZWUWZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZRdlcnIWFzBlZWUWZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZRdlMBoabjAaGhoWGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGm4aLC1nZxYXMGVlZRZlZTRlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlF2VzdHQWFzBlZWUWZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZRdlaXVlGTBlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZRllbW1lGTBlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZRllaWVtbWUZMGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlGWVtdWUZMGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlGWUsLWtnFhcwZWUYFmVlNGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWUXZRQVFRYXdnZ2GBZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2F3YUFRUWF3Z2dnYWdnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dhd2eHl6eyAhfHd3IiB3d313d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3IXd+eXt7ICF8d3d3IHd3fXd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3chd3l7eyAhfHd3dyB3d313d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3IXd/d3d3gIF3I3x3d3d3d393d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dyN3eHl6MSAhfHd3IiB3d313d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3IXd/d3d3goF3I3x3d3d3d393d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dyN3fHd3g3x3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4N3fHd8d3d3fHd/d4R3goJ3I3x3d3d3d393d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dyN3f3d3d4KCdyN8d3d3d3d/d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3cjd4WGh4cgIXx3d3cgd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dyF3hoeHICF8d3d3IHd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3chd4eHICF8d3d3IHd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3chd3x3d4N8d3d3IHd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eDd3h5e3sgIXx3d3cgd3d9d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dyF3iImJICF8d3d3IHd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3chd4CKdyN8d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3cjd4KCdyN8d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3cjd4B3goJ3I3x3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dyN3gop3I3x3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dyN3KissLWtnFhcwMTEYFmUqNGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWUXZTmLOzwEBT04OAgEODg+ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAU4KissLYyNFo6PODEYFjgqNDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODiOOBSQkBaOPTg4GBY4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4jjg9ODhEPTg4OBY4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4RDiPODiRjzg4OBY4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4kTiPOI84ODiPOCo4RRSQkBaOPTg4OBY4Kjg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4jjiTkpSUkiiV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FhYWKhYWHxYWFhYWFhYWFhYWFhYWFiUWFhYWFhYWFhYWFhYWFhYWFhoWFxYZGRYaGxYWFhYWFhYWFhYqFhYfFhYWFhYWFhYrFhYWFhYWJRYWFhYWFhYWFhYWFhYWFhYWGhYXFhkZFhobFhYWFhYWFhYWFioWFh8WFhYWFhYWFisWFhYWFhYlFisWFhYWFhYWFhYWFhYWFhYaFhkZFhoWFhYWFhYWFhYWFhYWFh8WFhYWFhYWFhYWFhYWFhYlFhYWFhYWFhYWFhYWFhYWFhYaFgEBFhYWFhYWFhYWFhYWARYXFhkZFhobFhYWFhYWFhYWFhwdFh8WFhYWFhYWFhYWFhYWFhYlFhYWFhYWFhYWFhYWFhYWFhYaFhcWGRkWGhsWFhYWFhYWFhYWFh0WHxYWFhYWFhYWFhYWFhYWFiUWFhYWFhYWFhYWFhYWFhYWFhoWFxYZGRYaGxYWFhYWFhYWFhYcHR4fFhYWFhYWFhYWFhYWFhYWJS0WFhYWFhYWFhYWFhYWFhYWGhYXFhkZFhobFhYWFhYWFhYWFhwdHh8WFhYWFhYWFhYWFhYWFhYlFhYWFhYWFhYWFhYWFhYWFhYaFhcWGRkWGhsWFhYWFhYWFhYWHB0eHxYWFhYWFhYWIBYWISIjJCUWJxYWFhYWFhYWFhYWFhYWFhoWFxYZGRYaGxYWFhYWFhYWFhYcHR4fFhYWFhYWFhYtFhYWFhYWJRYnFhYWFhYWFhYWFhYWFhYWGhYXFhkZFhobFhYWFhYWFhYWFhwdHh8WFhYWFhYWFi0WFhYWFhYlFhYWFhYWFhYWFhYWFhYWFhYaFhcWGRkWGhsWFhYWFhYWFhYWHB0eHxYWFhYWFhYWFhYWIRYjFiUWJxYWFhYWFhYWFhYWFhYWFhoWFxYZGRYaGxYWFhYWFhYWFhYcHR4fFhYWFhYWFhYtFhYhFhYWJRYnFhYWFhYWFhYWFhYWFhYWGhYXFhkZFhobFhYWFhYWFhYWFhwdHh8WFhYWFhYWFi4WFiEiIxYlFicWFhYWFhYWFhYWFhYWFhYaFhcWGRkWGhsWFhYWFhYWFhYWHB0eHxYWFhYWFhYWFhYWISIjFiUWJxYWFhYWFhYWFhYWFhYWFhoWFxgZGRYaGxYWFhYWFhYWFhYcHR4fFhYWFhYWFhYgFhYhIiMkJRYnFhYWFhYWFhYWFhYWFhYWGhYwMC8FLy8vLy8vLy8vLy8vLy8MLy8vLy8vLy8xLy8vLy8vEi8vLy8vLy8vLy8vLy8vLy8vBS8wMDIFMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyEjIyMjIyMjIyMjIyMjIyMjIyBTIzLzAwLwUSLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwUvLy8vLy8SLy8vLy8vLy8vLy8vLy8vLy8FLzAwLwUvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwUvLy8vLy8SLy8vLy8vLy8vLy8vLy8vLy8FLwIvMDAvBQYvLy8vLy8vLy8vNC8vDC8vLy8vLy8vNS8vNi8vLxIvNS8vLy8vLy8vLy8vLy8vLwUvAi8wMC8FBi8vLy8vLy8vLy8vLy8MLy8vLy8vLy8vLy8vLy8vEi8vLy8vLy8vLy8vLy8vLy8vBS8CLzAwLwUGLy8vLy8vLy8vLzQvLwwvLy8vLy8vLy8vLy8vLy8SLy8vLy8vLy8vLy8vLy8vLy8FLwIvMDAvBQYvLy8vLy8vLy8vNC8vDC8vLy8vLy8vNS8vLy8vLxIvLy8vLy8vLy8vLy8vLy8vLwUvAi8wMC8FBi8vLy8vLy8vLy80Ly8MLy8vLy8vLy81Ly8vLy8vEi81Ly8vLy8vLy8vLy8vLy8vBS8wMC8FLy8vLy8vLy8vLy8vLy8MLy8vLy8vLy8vLy8vLy8vEi8vLy8vLy8vLy8vLy8vLy8vBS83Ny8vLy8vLy8vLy8vLzcvAgMwMC8FBi8vLy8vLy8vLy8JCgsMLy8vLy8vLy8NLy8ODxAREhMULy8vLy8vLy8vLy8vLy8vBS8CLzAwLwUGLy8vLy8vLy8vLwkKLwwvLy8vLy8vLy8vLy8vLy8SLy8vLy8vLy8vLy8vLy8vLy8FLwIvMDAvBQYvLy8vLy8vLy8vLwovDC8vLy8vLy8vLy8vLy8vLxIvLy8vLy8vLy8vLy8vLy8vLwUvAi8wMC8FBi8vLy8vLy8vLy8JCgsMLy8vLy8vLy8vLy8vLy8vEjgvLy8vLy8vLy8vLy8vLy8vBS8CLzAwLwUGLy8vLy8vLy8vLwkKCwwvLy8vLy8vLy8vLy8vLy8SLy8vLy8vLy8vLy8vLy8vLy8FLwIvMDAvBQYvLy8vLy8vLy8vCQoLDC8vLy8vLy8vDS8vDg8QERIvFC8vLy8vLy8vLy8vLy8vLwUv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JywtLi8nJycnJycnJycnODk6JycnJyc+P0BCJyonJycnJycnJyctLi8nJycnJycnJycnJycnJycnJyc+P0AnKicnJycnJycnJycuLycnJycnJycnJycnJycnJycnJz4/QCcqJycnJycnJycnJycvJycnJycnJycnJycnJycnJycnPj9AJyonJycnJycnJycnJycnJycnJycnJycnJycnJycnJyc+PycqJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJz8nKicqJycnJycnJycnLS4vJycnJycnJycnJzg5OicnJycnPj9AQicqJycnJycnJycnLS4vJycnJycnJycnJyc5OicnJycnPj9AQicqJycnJycnJycnLS4vJycnJycnJycnJycnOicnJycnPj9AQidDJycnJycnJycnJycnKicqJycnJycnJycnLS4vJycnJycnJycnJycnJycnJycnPj9AQicqJycnJycnJyssLS4vJycnJycnNTY3Jzg5OicnJycnPj9AQicnJycsJyonJycnJycnJywtLi8nJycnJyc1NjcnODk6JycnJyc+P0BCJycnJywnKicnJycnJycnLC0uLycnJycnJyc2Nyc4OTonJycnJz4/QEInJycnLCcqJycnJycnJycsLS4vJycnJycnJyc3Jzg5OicnJycnPj9AQicnJycsJ0QnKicnJycnJycrLC0uLycxMicnJzU2Nyc4OTonJycnJz4/QEInJycnLCcqJycnJycnJycsLS4vJycnJycnJycnJzg5OicnJycnPj9AQicnJycsJ0QnKicnJycnJycrLC0uLycnMicnJzU2Nyc4OTonJycnJz4/QEInJycnLCdEJyonJycnJycnKywtLi8nJycnJyc1NjcnODk6JycnJyc+P0BCJycnJywnRCcqJycnJycnJyssLS4vMDEyJycnNTY3Jzg5OicnJycnPj9AQicnJycsJygpJyonJycnJycnKywtLi8wMTIzJzQ1NjcnODk6JycnJz0+P0A9JycnJ0EnJ0AnKCcnJycnJycnJycnJyonKCcnJycnJycnJycnJyonJycnJycnJywtLi8nJycnJycnJycnODk6JycnJyc+P0BCJyonJycnJycnJycnJycnJycnJycnJycnJycnJzs8JyonJycnJycnJycnJycnJycnJycnJycnJycnJyc8JwRGRUdFRUVFRUVFSElKS0xNTk9QBFFSU1RFVVZXRUVFRVhZWltcRUVFRV1FRV5FBEVFRUVFRUVFRUVFRUdFRUVFRUVFRUlKS0xFRUVFRUVFRUVFVVZXRUVFRUVZWltfRUVFRUlFR0VFRUVFRUVFSUpLTEVFRUVFRUVFRUVVVldFRUVFRVlaW19FR0VFRUVFRUVFRUpLTEVFRUVFRUVFRUVFRUVFRUVFRVlaW0VHRUVFRUVFRUVFRUtMRUVFRUVFRUVFRUVFRUVFRUVFWVpbRUdFRUVFRUVFRUVFRUxFRUVFRUVFRUVFRUVFRUVFRUVZWltFR0VFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRVlaRUdFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFWkVHRUdFRUVFRUVFRUVKS0xFRUVFRUVFRUVFVVZXRUVFRUVZWltfRUdFRUVFRUVFRUVKS0xFRUVFRUVFRUVFRVZXRUVFRUVZWltfRUdFRUVFRUVFRUVKS0xFRUVFRUVFRUVFRUVXRUVFRUVZWltfRWFgYGBgYGBgYGBgYGBiYEdFRUVFRUVFRUVKS0xFRUVFRUVFRUVFRUVFRUVFRUVZWltfRUdFRUVFRUVFSElKS0xFRUVFRUVSU1RFVVZXRUVFRUVZWltfRUVFRUlFR0VFRUVFRUVFSUpLTEVFRUVFRVJTVEVVVldFRUVFRVlaW19FRUVFSUVHRUVFRUVFRUVJSktMRUVFRUVFRVNURVVWV0VFRUVFWVpbX0VFRUVJRUdFRUVFRUVFRUlKS0xFRUVFRUVFRVRFVVZXRUVFRUVZWltfRUVFRUlFY0VHRUVFRUVFRUhJSktMRU5PRUVFUlNURVVWV0VFRUVFWVpbX0VFRUVJRUdFRUVFRUVFRUlKS0xFRUVFRUVFRUVFVVZXRUVFRUVZWltfRUVFRUlFY0VHRUVFRUVFRUhJSktMRUVPRUVFUlNURVVWV0VFRUVFWVpbX0VFRUVJRWNFR0VFRUVFRUVISUpLTEVFRUVFRVJTVEVVVldFRUVFRVlaW19FRUVFSUVjRUdFRUVFRUVFSElKS0xNTk9FRUVSU1RFVVZXRUVFRUVZWltfRUVFRUlFBEZFR0VFRUVFRUVISUpLTE1OT1BFUVJTVEVVVldFRUVFWFlaW1xFRUVFXUVFXkUEZGRkZGRkZGRkZGRkZWQEYGBgYGBgYGBgYGBgYmAERUVFRUVFRUVFRUVFR0VFRUVFRUVFSUpLTEVFRUVFRUVFRUVVVldFRUVFRVlaW19FZWRnaGYGaWlpaWlpaWlpamlrbEVHRUVFRUVFRW1ub3BxcnN0dWt2d3h5RXp7fEU7PEV9fn+AgUVFRUWCRUWDRWtsRUdFRUVFRUVFbW5vcHFyc3R1a3Z3eHlFent8RUVFRX1+f4CBRUVFRYJFRYNFa0VFRUVFRUVFRUVFRUdFRUVFRUVFRW5vcHFFRUVFRUVFRUVFent8RUVFRUV+f4CERUVFRW5FR0VFRUVFRUVFbm9wcUVFRUVFRUVFRUV6e3xFRUVFRX5/gIRFR0VFRUVFRUVFRW9wcUVFRUVFRUVFRUVFRUVFRUVFRX5/gEVHRUVFRUVFRUVFRXBxRUVFRUVFRUVFRUVFRUVFRUVFfn+ARUdFRUVFRUVFRUVFRXFFRUVFRUVFRUVFRUVFRUVFRUV+f4BFR0VFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRX5/RUdFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFf0VHRUdFRUVFRUVFRUVvcHFFRUVFRUVFRUVFent8RUVFRUV+f4CERUdFRUVFRUVFRUVvcHFFRUVFRUVFRUVFRXt8RUVFRUV+f4CERUdFRUVFRUVFRUVvcHFFRUVFRUVFRUVFRUV8RUVFRUV+f4CERYVgYGBgYGBgYGBgYGBiYEdFRUVFRUVFRUVvcHFFRUVFRUVFRUVFRUVFRUVFRUV+f4CERUdFRUVFRUVFbW5vcHFFRUVFRUV3eHlFent8RUVFRUV+f4CERUVFRW5FR0VFRUVFRUVFbm9wcUVFRUVFRXd4eUV6e3xFRUVFRX5/gIRFRUVFbkVHRUVFRUVFRUVub3BxRUVFRUVFRXh5RXp7fEVFRUVFfn+AhEVFRUVuRUdFRUVFRUVFRW5vcHFFRUVFRUVFRXlFent8RUVFRUV+f4CERUVFRW5FhkVHRUVFRUVFRW1ub3BxRXN0RUVFd3h5RXp7fEVFRUVFfn+AhEVFRUVuRUdFRUVFRUVFRW5vcHFFRUVFRUVFRUVFent8RUVFRUV+f4CERUVFRW5FhkVHRUVFRUVFRW1ub3BxRUV0RUVFd3h5RXp7fEVFRUVFfn+AhEVFRUVuRYZFR0VFRUVFRUVtbm9wcUVFRUVFRXd4eUV6e3xFRUVFRX5/gIRFRUVFbkWGRUdFRUVFRUVFbW5vcHFyc3RFRUV3eHlFent8RUVFRUV+f4CERUVFRW5Fa2xFR0VFRUVFRUVtbm9wcXJzdHVFdnd4eUV6e3xFRUVFfX5/gIFFRUVFgkVFg0VrZGRkZGRkZGRkZGRkZWRrYGBgYGBgYGBgYGBgYmBrRUVFRUVFRUVFRUVFR0VFRUVFRUVFbm9wcUVFRUVFRUVFRUV6e3xFRUVFRX5/gIRFZWQICYcLh4eHh4eHhw0ODxAREhMUFQgWFxgZhxobHIeHh4cgISImIIeHh4clh4cmhwiHh4eHh4eHh4eHh4cLh4eHh4eHh4cODxARh4eHh4eHh4eHhxobHIeHh4eHISImiIeHh4cOhwuHh4eHh4eHhw4PEBGHh4eHh4eHh4eHGhsch4eHh4chIiaIhwuHh4eHh4eHh4cPEBGHh4eHh4eHh4eHh4eHh4eHh4chIiaHC4eHh4eHh4eHh4cQEYeHh4eHh4eHh4eHh4eHh4eHhyEiJocLh4eHh4eHh4eHh4cRh4eHh4eHh4eHh4eHh4eHh4eHISImhwuHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4chIocLh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhyKHC4kLh4eHh4eHh4eHDxARh4eHh4eHh4eHhxobHIeHh4eHISImiIcLh4eHh4eHh4eHDxARh4eHh4eHh4eHh4cbHIeHh4eHISImiIcLh4eHh4eHh4eHDxARh4eHh4eHh4eHh4eHHIeHh4eHISImiIeKh4eHh4eHh4eHh4eHC4cLh4eHh4eHh4eHDxARh4eHh4eHh4eHh4eHh4eHh4eHISImiIcLh4eHh4eHhw0ODxARh4eHh4eHFxgZhxobHIeHh4eHISImiIeHh4cOhwuHh4eHh4eHhw4PEBGHh4eHh4cXGBmHGhsch4eHh4chIiaIh4eHhw6HC4eHh4eHh4eHDg8QEYeHh4eHh4cYGYcaGxyHh4eHhyEiJoiHh4eHDocLh4eHh4eHh4cODxARh4eHh4eHh4cZhxobHIeHh4eHISImiIeHh4cOh4uHC4eHh4eHh4cNDg8QEYcTFIeHhxcYGYcaGxyHh4eHhyEiJoiHh4eH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YWsgVEFLICBnazBOT0sgIGlrIEtJSyAgamsgQVVLICBrayBaQUsgIGxrIE5SRyAgbWsgTUhLICBuayBOQUsgIG9rIFJPSyAgb2sgSE9LICByayBSTksgIHNrIEhTSyAgdWsgUlVLICB2ayBNT0sgIHdrIFJPQyAgeWsgUklLICBhbCBUQUwgIGJsIFpUTCAgZ2wgR1VMICBpbCBNSUwgIG5sIE5JTCAgb2wgT0FMICB0bCBIVEwgIHVsIEJVTCAgdmwgSVZMICBnbSBHTE0gIGhtIEhBTSAgaW0gSVJNICBrbSBES00gIGxtIExBTSAgbG0gUkxNICBubSBHTk0gIG9tIExPTSAgb20gTU9SICBybSBSQU0gIHNtIFlMTSAgdG0gU1RNICB5bSBNUkIgIGFuIFVBTiAgYm4gUk9OICBkbiBCRE4gIGVuIFBFTiAgZ24gR0ROICBsbiBETE4gIG5uIE5ZTiAgb24gUk9OICBybiBCRE4gIHZuIFZBTiAgdm4gSFRBICB5biBJSEMgIGNvIElDTyAgam8gQkpPICBtbyBPUk8gIHJvIElSTyAgc28gU1NPICBhcCBOQVAgIGlwIExBUCAgbHAgS0xQICBzcCBTQVAgIHRwIEdUUCAgdXEgWlVRICBtciBTTVIgIG5yIE5VUiAgb3IgTU9SICB1ciBTVVIgIHdyIEFVUiAgYXMgTkFTICBjcyBEUlMgIGRzIEROUyAgZXMgTVNOICBncyBPR1MgIGhzIFNPQiAgaHMgVlJIICBocyBCUlMgIGlzIEhOUyAga3MgWUtTICBscyBWTFMgIG1zIE9NUyAgbnMwQU5TICBvcyBMTVMgIHFzIElRUyAgcnMgQlJTICBzcyBaV1MgIHRzIFRPUyAgdXMgTlVTICB2cyBFVlMgIHdzIEtXUyAgYXQgTUFUICBldCBMRVQgIGd0IEpBVCAgaHQgQUhUICBpdCBZR1QgIGt0IE1LVCAgbHQgTEdUICBudCBBTlQgIG90IE5HVCAgcnQgS1JUICBzdCBHU1QgIHR0IFRBVCAgd3QgSVdUICB3dCBBS0EgIHl0IFRIVCAgZ3UgR1lVICBrdSBSS1UgIHJ1IERSVSAgenUgQlpVICBldiBORVYgIGl2IFRJViAgb3YgTE9WICBhdyBOTFcgIG93IEZMVyAgaHggU0hYICBpeSBJSUogIG95IEFCWSAgYXogQUhaICBoeiBTSFogIHV6IExVWiBlYWEgSVFTIG9hYSBBUkEgdGFhIElRUyBoYmEgQVJBIHFiYSBBQkEgc2JhIFBQQyB2YmEgQVJBIG1jYSBBUkEgcWNhIEFSQSB3Y2EgQVJBIHhjYSBBUkEgYWRhIEdORCBmZGEgQVJBIHBkYSBOWkQgYmVhIEFSQSBjZWEgQVJBIGJmYSBBUkEgc2ZhIFBQQyB1Z2EgTllNIGdoYSBXR0EgdGhhIEhUQSBnaWEgUFBDIHdpYSBJUkEgcGphIEFSQSB0amEgQVJBIG5sYSBJUVMgc2xhIElRUyBmbWEgTkJIIHdtYSBSWVMgYW9hIFBQQyBhcGEgSFRBIGNwYSBBUkEgZHBhIEFSQSBqcGEgSFRBIGtwYSBIVEEgbHBhIEhUQSBtcGEgSFRBIHdwYSBIVEEgYnJhIEFSQSBucmEgUEFNIHFyYSBBUkEgc3JhIEFSQSB6cmEgQVJBIGp0YSBSQ1IgdnRhIFRMQSBqdWEgUkJCIHp1YSBBUkEgbHZhIEFSQSBjeWEgTVlBIGh5YSBBUkEgbHlhIEFSQSBueWEgQVJBIHB5YSBBUkEgcnlhIE1ZQSBkemEgSEFOIGp6YSBFWkEgbnphIEhBTiB6emEgSEFOIGRhYjBEQUIgaGFiIFBQQyBpYWIgTE1CIGxhYiBJTEIgamJiIExNQiBwYmIwREFCIHpiYiBBUkEgY2NiIElMQiBpY2IgVUFCIGxjYiBLSUIgcWNiIEhDQiByY2IgSFRBIGFlYiBIVEEgYmViIElUQiByZWIgUkJCIHdlYiBQUEMgbGZiMERBQiBxZmIgREFCIHRmYiBUTEIgdWZiIEhBTCB5ZmIgR0FCIG5nYiBJTEIgcGdiIElMQiByZ2IgTklRIGJoYiBJSEIga2hiIEtJQiByaGIgR0xNIG5pYiBPREUgdWliIE5JUSBuamIgWUxNIG9qYjBEQUIgcWpiIEdMTSBzamIgUFBDIHRqYiBOTEIgb2tiIExNQiBhbGIgRktCIGVsYiBOTEIgZ2xiIEFCSSBubGIgS0lCIG1tYiBHTE0gZHBiMERBQiBscGIgUFBDIHFwYiBQUEMgaXFiIENSTCBrcWIwREFCIGFyYiBJUkIgY3JiIFBQQyBidGIgSVRCIGp0YiBZTE0gb3RiIEtJQiBtdWIgSVRCIGV2YiBZTE0gdXZiIFlMTSBld2IgTlJLIGt4YiBIVUwgb3hiIFBQQyBweGIgSVRCIHJ4YiBVQlIgbnliIExJQiBjemIgR0xNIGp6YiBQUEMga3piIFBQQyBhYWMgTllNIGNhYyBOWU0gbGJjIE5JUSBsY2MgUFBDIG1jYyBQUEMgb2NjTkhDQyBxY2MgS1JBIG9kYyBTSFoga2VjIE5JUSB5ZWMgTklRIGZoYyBOWU0gamhjTkhDQyBraGMwS0hDIG5oYyBQUEMgcWhjTkhDQyB6aGNOSENDIHdpYyBCSk8geWpjIFNIWiBha2MgTklRIGJrYyBSVUsgbmtjIE5JUSBza2MgUFBDIHRrYyBLSEMgemtjIE5ZTSBjbGMgSFRBIGRsYyBSWVMgZWxjTkhDQyBqbGMgTklRIHNsYyBOQVMgdGxjIE5JUSBubWMgU0haIHJtYyBOSVEgYm5jIE5JUSBobmMgTklRIGtuYyBOSVEgbG5jTkhDQyBwbmMgU0haIHJuYyBCUlMgdG5jTkhDQyB1bmMgUkJCIHduYyBOSVEgYW9jIFlMTSBib2MgTllNIHFvYyBIVEEgYXBjTkhDQyBlcGMgUFBDIGZwYyBQUEMgaXBjIFBQQyB4cGMgU0haIGRxYyBOTUggaHJjIFRSQyBpcmMgUFBDIHByYyBQUEMgc3JjIFBQQyBhc2NOSENDIGhzYyBOSVEganNjIE5JUSBvc2NOSENDIHBzYyBTSFogdnNjIE5JUSB5c2MgTklRIGN0YyBIVEEgZHRjIE5JUSBldGNOSENDIGh0YyBOSVEgbHRjTkhDQyBzdGMgS0lCIHV0YyBOWU0gY3VjTkhDQyBudmNOSENDIGh6YyBTSFogb3pjIFNIWiB0emMgTklRIG9hZCBOSVEgcGFkIFNJTiByY2QgUFBDIHBlZCBQUEMgcmdkIEhUQSBkaGQgV0FNIGJpZCBLTkQga2lkIEtORCBuaWQgS05EIHBpZCBLTkQgd2lkIEtORCBlamQgUkpEIGtqZCBQUEMgcmpkMFJKRCBza2QgS05EIGduZCBOVUQgaW9kIFJHRCBocmQgR05NIGJzZCBCU0wgeXRkIFBFTiBwdWQgWUxNIGt3ZCBJVUsgdXdkIEpVRCB5d2QgSlVEIHV5ZCBMVUoga2tlIElURSB5a2UgTlJLIHltZSBOWU0gYm5lIExBSyBmbmUgRU5GIGhuZSBFTlQgZ3NlIE5PRyBpc2UgS1BJIGtzZSBLUEkgb3RlIElUQiBldmUgTlZFIG52ZSBLVkUgb3dlIElUQiBveWUgTEFLIGJhZiBQUEMgbGJmIEtJQiBtZmYgTFVGIGxpZiBMSVAgZ25mIFBQQyBlcGYgUFBDIGJ1ZiBMVUYgY3VmIExVRiBldWYgTFVGIGh1ZiBMVUYgaXVmIExVRiBxdWYgTFVGIHJ1ZiBMUkYgYWFnIERBRyBjYWcgUFBDIG5hZyBTSFogeGFnIE9STyB6YWcgT1JPIG1iZyBXQUcgZWNnIEhUQSBmY2cgUFBDIGxjZyBQUEMgcmNnIFBQQyBhZGcgSkFSIG9nZyBOT0cgYWhnIFJCQiBjaGcgVFJJIGtoZyBOUksgb2hnIFJCQiBiaWcgUFBDIGxpZzBMSUcgdWpnIEpBUiBkbGcgTkFOIGJuZyBOSVEgb25nIE5PRyB3bmcgQVVHIG1vZyBLT0sgcW9nIFBQQyB4b2cwREFCIGVwZyBQUEMgcnJnIFJCQiB0cmcgT1JHIHVyZyBHT1Mgd3NnIFNMQSBndWcgQVVHIGl1ZyBBVUcga3VnIFpNRyBsdWcgUFBDIG51ZyBBVUcgaXdnIEhUQSBueWcgUFBDIGFhaCBIVEEgZWFoIE9STyBpYWgwSUFIIGthaCBTSFogcmFoIElSSCB4YWgwSUFIIGFjaCBQUEMgbmRoMElBSCBhZWggTk1IIGlqaCBZTE0gdGxoIE5JUSBhbWggTk1IIGNtaCBOTUggZW1oIE5NSCBnbWggTk1IIGhtaCBOTUggaW1oIE5NSCBqbWggTk1IIGxtaCBOTUggbW1oIE5NSCBwbWggTk1IIHFtaCBOTUggcm1oIE5JUSBzbWggTk1IIHdtaCBOTUggeW1oIE5NSCBlbmggSEhDIGpuaCBOTUggbW5oIFNIWiBvbmggRE5IIGNvaCAgT0ggaW9oIEhUQSBhcmggTklRIG1yaCBOTUggYnNoIEJTVSBuc2ggU0haIGp1aCBOTUggcHVoIEhUQSBzdWggTllNIGN3aCBQUEMgd3loIEVZSCB5YmkgT0pJIHJjaSBQUEMgYWRpIEhVTCBiZGkgUFBDIGJnaSBJQkUgYmhpIFBQQyBjamkgT0pJIGVqaSBPSkkgbmppIE9KSSBzamkgT0pJIHRraSBVTkkgZ25pIEhUQSBobmkgR05JIHp0aSBOWU0gbHhpIE5ZTSBjYWogTllNIGthaiBZTE0geGFqIFlMTSBlYmogUkJCIG5iaiBSQkIgb2dqIExNQiBta2ogTlJLIHBraiBOUksgZHZqIFBQQyBhYWsgS1JLIG1hayBCTUsgcmFrIE5SSyBkYmsgQkFLIHliayBSTksgbmNrIFBQQyByZGsgTVJLIHRkayBZVUsgeGVrIE5LSyBhZmsgRE9LIHJmayBDQUsgeGZrIExVSyB5ZmsgTk1LIGFoayBJU0sgYmhrIERCWCBraGsgR05NIGJqayBOWU0gaGprIEFISyB0amsgTlJLIHprayBIVEEgbmxrIExBSyBibWsgTkJNIHJtayBSVUsgdm1rIFBQQyB3bWsgT01LIGNuayBSTksgZ25rME5PSyBqbmsgTllNIG5uayBLT0sgeW9rIEhUQSBlcGsgTFBLIHBwayBOUksgeXBrIEtZSyBzcWsgU0lLIHlxayBUUksgdHJrIFJOSyB1cmsgVVVLIGhzazBIU0sgc3NrIFNJSyBidGsgQkVLIHV0ayBOT0sgd3RrIEhUQSB1dWsgSFRBIHd1azBEQUIgYnZrIFlMTSBsdmsgTlJLIHJ2ayBZTE0gdHZrIE5SSyB1dmsgTlJLIHl2ayBOUksgd3drIFBQQyB5d2swTk9LIGN4ayBTTUsgZHhrIFlMTSBmeGsgTlJLIGt4ayBOUksgbHhrIFVVSyB1eGsgSVVLIGNhbCBOWU0gZGFsIERVSiBlYmwgS0FMIGpibCBLREwgbGJsIEtJQiBlY2wgWUxNIGZjbCBZTE0gaWRsME5PSyBmaWwgQk1MIHJpbCBQUEMgd2lsIFlMTSB5aWwwREFCIGJrbCBIVUwgb2tsIEhVTCBza2wgSFVMIGRsbCBEQUwgbm1sIE1BTCBhbmwwREFCIGxubDBEQUIgdW9sIFBQQyBpcmwgSFVMIG1ybCBIVUwgdHJsIFBQQyBtc2wgSFVMIGd0bCBJVkwgb3RsIEhVTCBzdGwgSFVMIGh1bCBTSFogeXVsIEhVTCB6dWwgQ1JMIHN2bCBJVkwgZ3dsIEhVTCBoemwgVEhaIHp6bCBaQUwgaWFtIEhUTSBrYW0gUktNIG5hbSBLTk0gZmJtIFBQQyBtY20gUFBDIHRjbSBJVEIgZmRtIEtPTSB5ZG0gRUxNIG5lbSBFRE0gb2VtIFlMTSBiZm0gWUxNIHBmbSBQUEMgYWdtIEFHUyBjaG0gTllNIHJobSBBTUwgdmhtIEtSQSBua20gUFBDIHVrbSBLTk0gcm1tIE5NSCBjbm0gSENNIGhubTBEQUIgcG5tIFNIWiBzbm0gTkFNIGRvbSBQUEMgcG9tIE5ZTSBlcG0gSkFNIGdxbSBZTE0gaHJtIE5JUSBqcm0gQU1IIGNzbSBLTk0gaHNtIEdMTSBydG0gV0FNIGR1bSBQUEMgaXVtIFlMTSBwdW0gSkFSIHF1bSBOTUggYnZtIEhUQSBldm0gV0FNIGZ2bSBHTk0ga3dtIEtOTSBxd20gTklRIHJ3bSBXQU0gbXltIE5FTSBxeW0gS05NIHZ5bSBaUkUgYnptIFJCQiBzem0gUFBDIG5hbiBTSFogemFuIEhBTiBoY24gSEFOIGljbiBIQU4gamNuIEhBTiBsY24gSEFOIHhjbiBIQU4gZmVuIFBQQyBsZ24gV01MIG1nbiBQUEMgb2duIFRYUyB1Z24gSEFOIGNobiBIQU4gZGhuIEFVRyBlaG4gSEFOIGdobiBIQU4gaWhuIEhBTiBraG4gSEFOIG1obiBIQU4gbmhuIEhBTiBwaG4gSEFOIHFobiBIQU4gdGhuIEhBTiB2aG4gSEFOIHdobiBIQU4geGhuIEhBTiB5aG4gSEFOIHpobiBIQU4gcWluIExBSyB2aW4gTElHIHRqbiBQUEMgempuIFNJTiB4a24gT0pJIGFsbiBMTUIgZWxuIEhVTCBubG4gSEFOIHZsbiBIQU4gaG5uIExNQiB6bm4gTE1CIGRvbiBBVE4gaXBuIFBFTiBscG4gSEFOIG9xbiBPS04ga3NuIFNBTiB1c24gSEFOIGV1bjBEQUIgdXVuMERBQiB6dW4gSEFOIGV3biBMTUIgZHluIEhVTCBueW4gTEtOIGNqbyBCSk8gZ2pvIEJKTyB3am8gQkpPIGRrbyBPSkkgaWtvIExBSyBta28gSE9LIHJrbyBPSkkgeG5vIFBQQyByb28gUFBDIGNybyBPUk8gbnJvIFlMTSBycm8gT0pJIHNybyBZTE0geXJvIElSTyB3dG8gQkpPIGF1byBSQkIgdGJwIFNBUCB1YnAgU0FQIGVjcCBHTFAga2NwIE5JUSBtY3AgUFBDIHVkcCBOUksgYWVwIFBQQyBsZXAgWUxNIHNlcCBSQUYgeWVwIFBQQyBzaXAgUFBDIGhrcCBOSVEgb2twIExBSyBnbHAwR0xQIGxscCBHTFAgbmxwIFBQQyBwbHAgUEFQIHRscCBHTE0gbG1wIFBQQyB5bXAgUFBDIGNvcCBOWU0gdm9wIFBQQyBhcHAgR0FCIGVycCBQUEMgcHJwIEpVRyBlc3AgWUxNIHRzcCBTQVAgYnVwIE5JUSB6dXAgTklRIHd3cCBOUksgZnVxIFpVUSBrdXEgWlVRIG11cSBOWU0gdnVxIE5ZTSB5dXEgWlVRIGN2cSBaVVEgZXZxIFpVUSBzdnEgWlVRIGN3cSBaVVEgdHdxIEhUQSBweHEgWlVRIHV4cSBaVVEgZ2FyIEhVTCBsYXIgTklRIGJiciBHTFAgbGJyIEtJQiBmY3IgUFBDIGlrciBLUkEgY21yIFlPUiBmbXIgWU9SIGxtciBZT1Igbm1yIFlPUiBvbXIgWU9SIHdtciBZT1Igem1yIEtSQSBtb3IgWU9SIHBvciBQUEMgY3RyIE5JUSBldXIgWVNSIHJ3ciBXQU0gaGFzIEtBWSBtYXMgQUFQIGZjcyBQUEMgaGNzIE5JUSBpY3MgUFBDIGtjcyBEQVMgY2RzIERSUyBoZHMgUlVLIG5kcyBEUlMgc2RzIFJCQiBoZXMgQU5TIGtlcyBIVEEgemVzIE5JUSBjZ3MgTEFLIHdncyBHSEMgbGhzIE5JUSB1aHMgQVJBIHlocyBSQkIgemlzIFJCQiBjanMgU0haIGRqcyBNU0sgb2pzIEJJUyBzanMgUkJCIGdrcyBHTE0gcmtzIEtSUyB3a3MgUFBDIGFtcyBNU1MgZG1zIE5CTSBqbXMgTVNMIG5tcyBNU0kgc21zIFNLUyB0bXMgTklRIGJucyBBQkkgdnBzIElSTyB5cHMgTEFLIGNycyBEUlMgbXJzIFBQQyBucnMgUFBDIG9ycyBEUlMgc3JzIEhUQSBoc3MgQVJBIGF0cyBQUEMgdnRzIEdJUyBxdXMgUlVTIGN2cyBQUEMgYndzIFJNQyBjd3MgS1dTIGh3cyBLV1MgbndzIFJCQiB2d3MgV0FNIGN5cyBSWVMgYWF0IEhUQSBzYXQgUFBDIHVhdCBIVEEgYmN0IEhUQSBlY3QgSFRBIGhjdCBQ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VlEgWlVRIEhXUSBaVVEgSFVRIFpVUSBJVlEgWlVRIEhXUSBaVVEgSFdRIFpVUSBIV1EgWlVRIElWUSBaVVEgSVZRIFpVUSBIV1EgWlVRIEhXUSBaVVEgSFdRIFpVUSBJVlEgWlVRIEhXUSBaVVEgSFdRIFpVUSBJVlEgWlVRIEhXUSBaVVEgSFdRIFpVUSBIV1EgWlVRIEhXUSBaVVEgSFdRIFpVUSBIV1EgWlVRIElWUSBaVVEgSFdRIFpVUSBIV1EgWlVRIElWUSBaVVEgSFdRIFpVUSBIV1EgWlVRIEZJUiBSQkIgWU1SIFlPUiBTQ1MgQUxTIEhUQSBNRlMgTk1IIElIUyBSQkIgUUFUIEhNVCBSQkIgVkhUIEhNVCBSQkIgWkhUIEhNVCBSQkIgSE1UIFJCQiBJUkQgUkFGIElQVCBQUEMgQVVUIFJZUyBRVFQgSE1UIFJCQiBNWlQgUkJCIE9aVCBOWU0gT1JWIElURSBHQVcgSkFSIFREVyBOWVcgTUxLIERPVCBZTE0gUFBDIEVQWCBMUEsgTFNTIEFMUyBIVEEgSEdaIFJCQiBhYmEga2ZhIHdnYSBpcmEga3JhIGdhYiB1YWIgcmJiIGhjYiBsaWIgZmtiIGlsYiB0bGIgYm1iIGxtYiBpcmIgbXJiIGhzYiBpdGIgZ2hjIGhoYyBycmMgdHJjIGxzYyB2aGQga25kIGlyZCBudWQgbnpkIHJjZSBxdWUgcmFmIHNvZiBkYWcgZWFnIGxhZyByYWcgd2FnIHptZyBvcmcgYXVnIGxhaCBuYmggaXJpIG1zaSBuYWogaWlqIGR1aiBsdWogY2FrIGJlayBlZ2sgbmhrIHNoayB2aGsgc2lrIG5rayBtbGsgbm1rIG9tayBzbWsgcm5rIGRvayBob2sgcG9rIHpvayBscGsga3JrIG1yayBucmsgaXNrIG1zayBpdWsgbHVrIHl1ayBreWsgaGFsIGthbCBtYWwgemFsIGtkbCBhbWwgYm1sIHdtbCBic2wgaHRsIGl2bCBqYW0gcGFtIHdhbSBuYm0gaGNtIHJjbSBlZG0gemltIHJrbSBlbG0gbmxtIHJsbSBkbm0gZ25tIHhubSBrb20gcm9tIGh0bSBzdG0gbnVtIHNhbiByY24gYmRuIGdkbiByZ24gc2luIG9rbiBtc24gb3RuIG9ybyBhYXAgbGFwIHNhcCBsaXAga2xwIHNtciBkYXMgeWFzIG9ncyBiaXMgZ2lzIHNrcyB5a3MgYWxzIGxtcyBobnMgZ29zIGJycyBrcnMgbHNzIG1zcyBydXMgZXZzIGt3cyBqYXQgbmd0IHJndCB5Z3QgbWt0IG5tdCBhbnQgZW50IGdudCBrcnQgZ3N0IGF1dCBsdXQgdnV0IHRpdiBnYXcgZGJ4IGtheSBhYnkgbWl5IGRuekJVU0dTT1BHb3QAAAAAAAAAAAAAAAAAALwCAAD//wAA//8AAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAASEIAAHpCAACWQgAAr0IAAMhCAADhQgAA+kIAABZDAABIQwAAAAAAAAAAAAECAwQFBgcICRYPEBEXEhMUFQ4YDBkNCgsaHB0eHyAhGyIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTBFVWV1hZWgVcXV5fYGFiY2RlZgNoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYSDg4WGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wEAAAAyBAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdpgAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAMEAAAFAAYAAAAAAAcAAAgAAAAJAAAKCwwNDg8QERIAAAAAABMAAAAAAAAAFBUAABYAAAAAAAAAAAAXAAAAAAAYABkaABscHR4fAQEgASEiAQEBIyQlJicBKAEpAAAAKissLS4vMAEBADEBAQAAAAABAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAD//////////wAAAAAAQgAAAAAAAAAAABAAAgAAAAAAAAAAAAAEAAACAADwAwAGAAAAAAAMAAEAAACAAAAA/g8HBAAAAAAAAAAAAAAAAAxAAAEAAAAAAAB4H0AyIU3EAAcF/w+AaQEAyAAA/BqDDANgMMEaAAAGvyckv1QgAgEYAJBQuAAYAAAAAADgAAIAAYAAAAAAAAAwAOAAABgAAAAAAAAhAAAAAAAAAAAAAAABIAAAgAIAAAAAEAAAAADwAAAAAPD/AIABAAGAAQAAAMD/AAAAAAAAA8AAQP4HAMD///////8/AAAA/v8ABACA/PcA/v//wP/////////z///////Pzv////////////+5B/////////+//////////z8Afv///4D5B4A8YQAwAQYQHAAOcAqBCPz//wAAAAAAAD/45/8/+vn/AAAA/P////8A8AAAAAAAAAD/APwAAAAAAP8AAADAAPD8/wD+/////wDw///////3v/////////8AAAD/AMD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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KAQwBAgACACYATgEQASQAEgEoAEIAAgAUARYBGAEaARwBKABCAAIAJgBeAQIAJAAgATAAAgACACoAYgEkASQAJgEsAEIAAgAoASoBLAEuAG4BMAECAAIAMgE0ATYBJAA4AToBAgACACoAfAE+ASQAAAFCAUIAAgAwAEQBRgFkAAgBcAACAAIAAgAKAUwBbgBOAUIAAgACABABUgFyABoAGgACAAIAAgAUAVYBWAFCAAIAGgFcAXQAHgFCAAIAAgAgAWIBSgAKACQBZgFoAVoAGgACAAIAKgFsAXIALgFwAXIBdAF2AVIAEgASAAwADAA4AUIAAgACAAIAAgA6AXIATgACAAYAEgASABIAEgASADYANABCAAIAAgACAAIAAgACAAIAAgACAAIAAgACADwBQgA+AUABggACAAIAAgACAYQBggAGAYIACAGCADgAAgA4AAIAAgACAAoBjAGOAZYADgAQAZYAAgACABIBggACAAIAFAGCABYBggACAAIAAgACAAIAAgAYAZoBnAGCAAIAAgACAAIAAgACAAIAHgGGAAYAAgAgAYIAAgACACIBpAG2AFYAFgAmAagBigAKAAoACgAqAYIAAgAsAa4BsgAwAbIBugACADQBogACAAIANgG4AYIAAgA6AbwBvgGiAAIAOABAAdIAEgASABoAAgHEAcYBzAAMAAgB2AAYABgACgHMAcwADgHYABgACgAKAAoACgAUABQAFAAUABQAFAAUABQAFAAQAdQAFAAUABQAFAAUACAAIAAgACAAIAASAeAADAA8ADwAPAAUAfoAfAB8AHoAVgHYAdoB3AHeAeAB3AAiAeQB2AA+AD4APgAmAegBygAqAewB7gHwAfIBzgAeAB4ANAH2AfgBxgA6AfwBxgA+AcACBgACAgYABgAGAAYABAIGAAYCEAAIAgYACgIMAgYADgAOAgYABgAGAAYAEAIOAAYABgAGABICFAIGAAYAFgIGAAYABgAGAAYABgAYAgYABgAGAAYABgAGAAYAGgIcAg4AHgIGAAYAIAIQACICEAAkAiYCEAAQABAAKAIQACoCBgAGAAYAEAAsAgYABgAGABIAEgASAAwADAAMAC4CMAIUABQAFAAUABQAFAAyAjQCDAAMAAwAAgACAAIANgI4AgIAAgACAAIAAgACAAoACgA6AjwCPgIAAkICRAJ+AH4ARgJIAkoCTAJOAkIAAgACAAIAEAJ0AEIAAgACAAIAEgJCABQCQgACAAYABgAGAAIABgAGAAAAhgAWAkIAhgAGAAAAhgAGAAIAhgAGAAYABgACAAIAAgACAAYABgAGAAYAAgAEAIIAAgACAAIAAgACAAIABgAGAAYABgACAAIAOABYAkIAIgACABQAFAAaAlwCVAAeAkIAAgACAAIAIAJiAlwAZAJmAmgCVAAUABQAKgJsAm4CcAJyAnQCdgJSADgCegJCADwCfgJCAAIAAgAAAoICggACAAQChgKWAAoACAKiAAIACgKCAAwCjgKCAAIAJABCAAIAEAKSAoAAVAKiAAIAAgAWApgCmgKcAoIAHgKCAAIAAgAgAqIAYgKkAqYCggACAAIADAAMACgCqgKMAAwADAAMAAwAAgACACwClgAMAC4CsAKCAAIAAgACAAIAAgACAAIAMgK0ArYCggACAAIAAgACADgChgACAAIAAgACADoCggACADwChgAGAD4CigAAAsoAAgLEAsYCyALCAAIAAgACAAIAAgACAAIACgLMAtQAVgBYAFoATgLQAtICwgAUAsIAAgACAAIAFgLYAtoCzgAOABwC3gAeAB4AHgLgAsYABgAGAAYABgAGACICwgACAAIAAgACAAIAJALOAAIAAgAmAsIAKALCAAIALgACAAIAQgACAAIAKgLeAB4AEgASADYADAAMAAIAAgACAAIAAgAWABIAEgA2AAwADAACAAIAAgACAAIAAgACAFIAEgAsAswADAACAAIAAgACAAIAAgACAAIAAgAuAsIAMALCAAIABgCOAA4ADgACADICwgA0AsIAAgBCAAIAAgACAAIAAgACADYCzgAOAA4ADgAEAEIAAgAIAI4AGgACADgCwgAKAI4ADgA6AsIAPALaAAIAAgACAAYAQgAMAIIADACCAAYAcgBOAA4ADgAOAA4AEgASABIAEgAMAAwADAA+AsIAAgAAAxYAAgMSAAQDDAAGAxAAEAAQABAAEAAQABAAAgACAAgDAgAEAIoDBgAMAwIACgCOAwIALgAQAxoAAgASAxoAGgACABQDDgACAAIAFgMCAAIACACYAxoDHAMeAzoAAgACACADIgMCAAIAFgAsAEIAJAMmAygDAgACACoDOgACAAIALAMuAzADMgMOAAIAAgAOALQDBABKAAoACgACAAIABgBCAAIAEAC2AFYAMAACAAIAMAB2AzgDOgMKAAIAAgACADwDPgMAA0IDSgACAAIAAgAEA0YDSANCAAIAAgACAAIACgNMA1YAFgAWAAIAAgASAI4DUANSA0oACgACAAIAAgAUA1YDVgAaABoAAgACABgDWgNWABYAFgAWAAIAHANeA2ADQgACAAIAAgACAAIADgCiA1oAGgAaABoAEgASABIAEgAMAAwANAAkA0IAAgACACYDaANWABYAFgACAAIAAgACAAIAKgNsA2gALgNCAAIAMANyA3QDQgACADYDeANaAAIAAgACAAIAAgAaABoAGgAaABoAGgA6A2gAAgACAAIAAgACAAIACABWAAIAAgASALwDSAB0AA4APgNCADgAAAOCA4oACgAKAAoAAgACAAIABABEA5YAAgACAAYDiAOWAAIAAgAKA5YAFgACAAIAAgACAAIAAgACAAwDjgOCAAIAEAOSA5QDigAKAAIAAgACAAIADgAWA5gDmgOeAB4AHgAeAB4AHgAeABoAAgACAAIAAgACAAIAAgAIAEIAAgACABwAHAOKAAIAAgACAAoAXgOWABYAFgAWABYAAgACAAIAAgACAAIAAABCAAIAAgACAAIAFgACAAIAIAOCAAIAAgAiA6QDpgOoA4IAGAAYABgAGAAqA4IALAOWABIAEgASABIAEgASAAwADAAOAC4DkgAwA4wADAAMAAwAAgACAAIAAgAQALIDqAAoADQDtgOYABgAGAAYADgDugOCADwDnAAcABwAHAAcABwABgAGAAYABgAGAAYABgAQAAoACgAKAAoACgAGAAYABgAGAAYABgAGAAYABgA+A4ADwgPGAAQDxgAGAAYABgAGAAYABgAGAAYABgPGAAYABgASACoADAAMAE4ATAAgABIALAAQAFIAEgBMABIAKgAMAAwATgBMACAAEgAsABAAUgASAEwAEgAqAAwADABOAEwAIAASACwAEABSABIATAASACoADAAgABIACAPKA8wDzgPMABAD0gASA9QD1gPYA8wAGgPSABwDzAAeA9YAFgAWAAoACgAKACADygAKACID5APmA+gDygAKAAoACgAKAAoAKgPMAAwADAAMAAwADAAMAAoACgAKABgAGAAYABgAGAACAAIAAgAsA+4DxgAGAAYAAgACAAoASgACAAIAMAPyA8IAAgACAAIAAgA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xvfE98b3NvcAACH2AAAAAAAAAAAAAHl5eVpobmlaenp6WmJhckFubXJBZ25lQmxyeUNhdmVEcm9lR2tlckdyanVHdXJ1R2duYUhpbmFIcmJlSGFyaUhhZG5LYW5hS29vYUxudGFMbXlsTWF5ck9sbWFUdWxlVGlhaFR0YmlUb3BvQmlhckJzbmFDcmVoQ2lodEVybWhLZ25vTXJteU1tYWdPcm51UmhuaVNjcnlTYWFoVGlpaVl0cnNEaHRvR2xhdElkaHVCb25hSGdsZ1RiZ2FUdHJwQ2JtaUxibmlMYW1zT3dhaFNlbGFUcmFnVWlndUJ0cG9DZ2FsR3JhaEt1bGFUb2VwWG9seVNnbmZUaWxhQnh1c1hvb2tOZ2FoUHhuaFBpcmFDbWFoQ2lsYUtjcGVMaWN5TGlkeUxrY2xPZ25qUnJ1YVNkbnVTaWlhVnRzdkF1bWFCcHlnRWltckFpbGhQaXRyUGF2YUppaHRLdXNpTGlldE1icmFTaGtyT3JtYVNhbmFMdHZhVGt0YUJoYXJCZG5hTW1rYUNjcmVNb3JlTWRybFBkcmhTYXJvU3JrYVRzc2FCYmhnQWxwdURhYmxFbmFyR2pvaEtkbmlTYW5pTGpoYU1pbmFNZG5lTWlkb01vb3JNdGFiTmJyYU5tcmVQZ25tSG1sYVBjdWFQcGxoUGRkaVNocmlUYXJhV21vaEF3dWxIcnRhSHRsdU1nbnVId25nU21sZEFza2hCY3JhTWVnc09nbmFUYXdlTm1ub0d1aHNOb3lvU2JuYVpyZ29EZ25vR2dob1Jha2FNZmRlTW9nb1NkZ29TbXlsRWRuYU5wbm1Ib2hjV3NyaENrYWlEc3RpS2l6ZVlubXBDcmd1T2FzblRvdG9UaHRpVmh0bVppd2FLbWdhTmFyYUdoa3VHaWFyS29hbk91bnVTcmRvVGd0dVRmcmVCdGRpU295YVRzbG9UbiKOB2AirgdvIs4HwAAgCMFAIAjCgCAIw8AgCAABIQgCgSEIJsIhCMQAIgiiXiIIxYAiCM0BIwgAwiMIAkIkCKDeKAgAXikIBAEqCALeQQgE3kgIBl5MCAZBYAgIgWAICsFhCAwBYwjHwGkICt6BCA4BgwgM3ogIEN6JCBJeiwgOXowIyACgCMlAoAjKgKAIvN6gCBIBoQgUgaEIFsGhCMsAogi6XqIIGgGjCATC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YGFoYXphjmGQYaRhr2GyYd5h8mH2YQBiEGIbYi5iNGJdYrFiyWLPYtNi1GL8Yv5iPWNQY2hje2ODY6BjqWPEY8Vj5GMcZCJkUmRpZHdkfmSaZJ1kxGRPZVZlbGV4ZZllxWXiZeNlE2ZJZnRmiGaRZpxmtGbGZvRm+GYAZxdnG2chZ05nU2dWZ15ne2eFZ5dn82f6ZxdoH2hSaIFohWiOaKhoFGlCaaNp6mkCahNqqGrTattqBGsha1Rrcmt3a3lrn2uua7pru2tObGdsiGy/bMxszWzlbBZtG20ebTRtPm1BbWltam13bXhthW3Lbdpt6m35bRpuL25ubpxuum7Hbstu0W7bbg9vIm8jb25vxm/rb/5vG3AecDlwSnBwcHdwfXCZcK1wyHDZcEVxSXFucZxxznHQcRByG3IocityNXJQcmJygHKVcq9ywHL8cipzdXN6c4dzi3Olc7Jz3nMGdAl0InRHdFx0aXRxdIV0iXSYdMp0BnUkdTt1PnVZdWV1cHXidRB2HXYfdkJ2aXbKdtt253b0dgF3Hncfd0B3SneLd6d3TnhreIx4kXjKeMx4+3gqeTx5PnlIeUl5UHlWeV15XnlleX95jXmOeY95rnnKeet5HHpAekp6T3qBerF6y3rueiB7wHvGe8l7PnxgfHt8kny+fNJ81nzjfOd86HwAfRB9In0vfVt9Y32gfb59x330fQJ+CX43fkF+RX4+f3J/eX96f4V/lX+af71/+n8BgAWARoBggG+AcIB+gIuArYCygAOBPoHYgeiB7YEBggSCGIJvgnmCi4KRgp2CsYKzgr2C5YLmgh2DI4M2g1KDU4Njg62DvYPJg8qDzIPcg+eD74Pxgz2ESYRXhO6E8YTzhPyEFoVkhc2F+oUGhhKGLYY/hlCGXIZnhmmGiIaphuKGDocoh2uHeYeGh7qH4YcBiB+ITIhgiGOIwojPiNeI3ojhiPiI+ogQiUGJZImGiYuJlomgiqqKv4rLitKK1ortiviK/ooBizmLWIuAi4qLSIxVjKuMwYzCjMiM04wIjRuNd428jcuN743wjcqO1I4mjyqPOI87j2KPno+wj7aPI5A4kHKQfJCPkJSQzpDekPGQ/ZARkRuRapGZkbSRzJHPkdGRNJI4knaSfJLXktiSBJNKk/mTFZSLla2Vt5UulkuWTZZ1lniWfJaGlqOWt5a4lsOW4pbjlvaW95YjlzKXSJdWl9uX4Jf/lwuYGJgpmDuYXpjimO+Y/JgomSmZp5nCmfGZ/plqmhKbb5tAnFec/ZxnnbSd+p0enn+el56fnruezp75nv6eBZ8PnxafO59Dn42fjp+cnwAAAAAAAAAAAAAAAAAAIgEcBSUFSwU6BgQI3ggsCmML5BSoFuoWyBkYGwsd5B3mHYMhnyExI9QmRChKKAwr8SsKMLgyXzOTM5wzwzPVM200ozanOI06+jq8PB490T5eP44/Y0LuQqtDCEY1RxRINkySTKFPuE9EUPJQ81AZUTNRSVIdVCZWmlbFVnxZp1qrW4Bc0FyGX9phKGJHYtliPmPaZCNlqGWnZ7VnPGs2bNVsa20sb7Fv0nDKc2d2rnhmeah8034vf9KF7YUuh/qLd41Fkd+RGpIKlJaUtpUwm86gBaEOopGikqMApgAAAAAEBAQEBAQEBAQMDQwLDQQEBAQEBAQEBAQEBAQEDQ0NDAsODggICA4ODg4OCQoJCgoHBwcHBwcHBwcHCg4ODg4ODgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBDg4ODg4BAQEBAQEBAQEBAQ4ODg4EBAQEBAQNBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQKDggICAgODg4OAQ4OBA4OCAgHBw4BDg4OBwEODg4ODgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBDgEBAQEBAQEBAQEBAQEBAQEBDg4BAQEBAQEBDg4ODg4ODg4ODg4ODg4BAQEBAQ4ODg4ODg4ODgEODg4ODg4ODg4ODg4ODg4ODgUFBQUFBQUFBQUFBQUFBQUBAQEBDg4BAQEBAQEBAQ4BAQEBAQ4OAQ4BAQEBAQEBAQEBAQEBAQ4BAQEBAQEBAQEBAQEFBQUFBQUFAQEBAQEBAQEBAQEBAQEBAQ4BAQ4OCAIFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQIFAgUFAgUFAgUCAgICAgICAgICAgICAgICAgICAgICAgIGBgYGBgYODgMICAMKAw4OBQUFBQUFBQUFBQUDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwUFBQUFBgYGBgYGBgYGBggGBgMDAwUDAwMDAwMDAwMDAwMDAwMDAwMDAwMFBQUFBQUFBg4FBQUFBQUDAwUFDgUFBQUDAwcHBwcHBwcHBwcDAwMDAwMDBQMDAwMDAwMDAwMDAwMDAwMDAwMDBQUFBQUFBQUFBQICAgICAgICAgICBQUFBQUFBQUFAgIODg4OAgICBQICAgICAgICBQUFBQIFBQUFBQUFBQUCBQUFAgUFBQUFAgICAgICAgICAgIFBQUCAgICBgYDAwMDAwMFBQUFBQUFBQMDAwMDAwMDAwMFBQUFBQUFBQYFBQUFBQUFBQUFBQUFBQUFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEFAQUBAQEBBQUFBQUFBQUBAQEBBQEBAQUFBQUFBQUBAQEBAQEBAQEBBQUBAQEBAQEBAQEBAQEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBBQEBAQEFBQUFAQEBAQEBAQEFAQEBAQgIAQEBAQEBAQgBAQUBAQUFAQEBAQEBAQEBAQEBAQEFBQEBAQEFBQEBBQUFAQEFBQEBAQUBAQEBAQEBAQEBAQUFBQUFAQUFAQEBAQUBAQEIAQEBAQEBAQEFBQUFBQUBAQEBAQEBAQEBAQEFAQEFAQEBAQEFBQEBAQEBAQEBAQEBBQEBAQEBAQEBAQEBAQEFAQEBAQEBAQEBAQEBBQEBAQEBDg4ODg4OCA4BAQEBAQUBAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEFAQUFBQEBAQEBBQUFAQUFBQUBAQEBAQEBAQEBDg4ODg4ODgEBAQEBAQEBAQEBAQEFBQEBBQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBBQUBAQEBAQEBAQEBAQEBBQEBAQEBAQEFBQUBBQEBAQEBAQEBAQEFAQEFBQUFBQUFAQEBAQgBAQEBAQEBBQUFBQUFBQUBAQUBAQUFBQUFBQUFBQEBAQEBAQEBAQEBBQUFBQUFAQEBAQEBAQEBAQUFAQEBAQEBAQEBAQEFAQUBBQ4ODg4BAQEFBQUFBQUFBQUFBQUFBQEFBQUFBQEFBQEBAQEBBQUFBQUFBQUFBQUBBQUFBQUFBQUFBQUFBQUFBQUFBQUBAQEBAQEBAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQUFBQUBBQUFBQUFAQUFAQEFBQEBAQEBAQEBAQUFAQEBAQUFBQEBAQEBAQEBAQEBAQEBAQEFBQUFAQEBAQEBAQEBAQEBAQUBAQUFAQEBAQEBBQEBAQEBAQEBAQEBAQEBAQUBAQ4ODg4ODg4ODg4BAQEBAQELAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEODgEBAQEBBQUFAQEBAQEBAQEBAQEBAQEBBQUBBQUFBQUFBQEBAQEBAQEBBQEBBQUFBQUFBQUFBQUBAQEBAQEBCAEFAQEODg4ODg4ODg4ODgUFBQQFAQEBAQEBAQEBBQEBAQEBAQUFBQEBAQEFBQEBAQEBAQEBAQUBAQEBAQEFBQUBAQEBDgEBAQ4OAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBDg4BAQEBAQEBBQUBAQUBAQEBAQEBAQEBBQEFBQUFBQUFAQUBBQEBBQUFBQUFBQUBAQEBAQEFBQUFBQUFBQUFAQEFBQUFBQUFBQUFBQUFBQUFAQUFBQUBAQEBAQEBAQEBAQEBAQEBBQEFBQUFBQEFAQEBAQEBAQEBAQEBAQEFBQUFBQEBBQUFBQEBBQUBBQUFAQEBAQEBAQEFAQUFAQEBBQEFAQEBAQEBAQEBAQEBBQUFBQUFBQUBAQUFAQEBAQEBAQEFBQUBBQUFBQUFBQUFBQUFBQEFBQUFBQUFAQEBAQUBAQEBAQEFAQEBBQUBAQEBAQEBAQEBAQEBAQEBAQEBDgEODg4BAQEBAQEBAQEBAQ4ODgEBAQEBAQEBAQEBAQEODg4BAQEBAQEBAQEBAQEBDg4BCwsLCwsLCwsLCwsEBAQBAg4ODg4ODg4OCw0TFBcVFgoICAgICA4ODg4ODg4ODg4ODg4ODgoODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgsEBAQEBAQPEBESBAQEBAQEBwEBAQcHBwcHBwkJDg4OAQcHBwcHBwcHBwcJCQ4ODgEICAgICAgICAgICAgICAgIDg4BDg4ODgEODgEBAQEBAQEBAQEOAQ4ODgEBAQEBDg4ODg4OAQ4BDgEOAQEBAQgBAQEBAQEBAQEBAQ4OAQEBAQ4ODg4OAQEBAQEODg4OAQEBAQEBAQEBAQEODg4BAQEBDg4JCA4ODg4ODg4ODg4ODg4ODg4ODgEBAQEBAQEBAQEODg4ODgEODg4ODg4ODg4ODg4ODg4ODgEBAQEBAQEBAQ4ODg4ODg4ODg4OAQEBAQEODg4ODg4ODgcHBwcHBwcHBwcHBwcHBwcHBwcHAQEBAQEBAQEBAQEBAQEODg4ODg4ODg4ODg4ODg4ODg4BDg4ODg4ODgEBDg4ODg4ODg4ODg4ODg4ODgEODg4ODg4ODg4BAQEBAQ4ODg4ODgEBAQEFBQUBAQEBAQEBDg4ODg4ODgEBAQEBAQEBAQEBAQEBAQUODg4ODg4ODg4ODg4ODgEBDg4ODg4ODg4ODgEODg4ODg4ODg4BAQEBAQEBAQEBAQEODg4ODg4ODg4ODg4BAQEBCw4ODg4BAQEODg4ODg4ODg4BAQEBAQEBAQEFBQUFAQEOAQEBAQEODgEBAQEBDg4OAQEBAQEBAQEBBQUODgEBAQEBAQEBAQEBAQEBDgEBAQEBAQEBAQEBAQEBAQEODg4BAQ4ODg4ODg4ODg4ODg4ODgEBAQEBAQEBAQEBAQ4ODg4BAQEBAQEBDg4ODgEBAQEBAQEBAQEBAQEBAQEBAQEBDgUFBQ4FBQUFBQUFBQUFDg4BAQEBAQEBAQEBAQEBAQUFDg4BAQEBAQEBAQEBAQEBAQEBAQEBAQEBDgEBAQEBAQEBAQUBAQEFAQEBAQUBAQEBAQEBAQEFBQEODg4OBQEBAQEBAQEBAQEBCAgBAQEBAQEBAQEBDg4ODgEBAQEBAQEBAQEBAQUFAQEBAQEBAQEBAQUFAQEBAQEBAQEBAQEBAQUBAQEBAQEFBQUFBQUFBQEBAQEBAQEBAQUFBQUFBQUFBQEBAQUBAQUFBQUBAQUFAQEBAQEBAQUBAQEBAQEBAQEBAQEBAQEBAQEBBQUFBQUFAQEFBQEBBQUBAQEBAQEBAQEBAQEFAQEBAQEBAQEFAQEBBQEFBQUBAQUFAQEBAQEFBQEBAQEBBQEBBQEBAQEFAQEBAQEBAQEBAQEBAQEBAgUCAgICAgICAgICCQICAgICAgMDAwMDAwMDAwMDAwMDDg4DAwMDAwMDAwMDAwMDAwMOAwMDAwMDAwMDAwMDAw4ODgoOCgEOCg4ODg4ODg4ODggODgkJDg4OAQ4ICA4BAQEBAwMDAwMDAwMDAwMDAwMDBAEODggICA4ODg4OCQoJCgoICA4ODggIAQ4ODg4ODg4BBAQEBAQEBAQEDg4ODg4EBAEOAQEBAQEBAQEBAQEBAQEODg4ODg4ODg4ODg4OAQEBBQcHBwcHBwcHBwcHBwcHBwEBAQEBAQUFBQUFAQEBAQECAgICAgICAgICAgICAgIOAgUFBQIFBQICAgICBQUFBQICAgICAgICBQUFAgICAgUCAgICAgUFAgICAgICAgICAgICAgICAgICDg4ODg4ODgMDAwMFBQUFAwMDAwMDAwMGBgYGBgYGBgYGAwMDAwMDBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgICAgICAgICAgICAgUFAgICAgIFBQUFAgICAgICAgICAgEBAQEBAQEBBQUFBQUFBQUFBQUFBQUFAQEBAQEBAQEBBQEBBQUBAQEBAQEBAQEBBQEBAQUFBQUBAQUFAQEBAQEBAQEBAQEBBQUFBQUBBQUFBQUFBQUBAQEBAQEBAQEBAQEBAQUBAQEBAQEBAQEBAQEBAQEBAQEFBQUFBQUFBQUBAQEBAQEBAQEBBQUFBQEBBQUFAQEFAQUFAQEBAQEBBQEBAQEFBQUFBQUFBQEBAQEBAQEBAQEBBQUFBQUFBQEBAQEBAQEBAQEBAQEBAQEBBQEBAQEFBQUFBQUBBQEBAQEFBQEFBQEBAQEBAQEBAQEBAQEBBQUFBQEBAQEBAQUFAQUBAQEFBQUFBQUFBQEBBQEFAQEBAQEBAQEBAQEFAQUBAQUFBQUFBQEFAQEBAQEBAQEBAQUFBQUBBQUFBQUBAQEBBQUFBQUFBQUBBQUBAQEBAQEBAQEBAQEBAQEBBQUBBQEBAQEBBQUFBQEBBQUBAQEBAQUFBQUFBQEBBQUBAQEBAQEBAQUFBQUFBQEBBQUFBQEBAQEBAQEBBQEBAQEBAQEBAQUFBQUFBQEBBQUFAQEBAQEBAQEBAQEBAQEFBQUFBQUFBQUFBQUFAQUFAQEBAQEBBQUFBQUFBQEFBQUFBQUBAQEBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQEBBQUFBQUFBQEFBQEFBQEBAQEBAQEBAQEFBQUFBQUBAQEFAQUFAQUFBQEBAQUBBQEBAQEBAQEBAQEBBQUBAQEBAQEBAQEBAQEBAQEBDg4ODg4ODg4ICAgIDg4ODg4ODg4ODg4ODg4OAQEOAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEFBQEEBAQEAQEBAQEBAQEBAQEBBQUFBQUFBQUFBQUFBQUBAQEBAQEBAQEFBQUBAQEBAQEBAQEEBAQEBAQEBAUFBQUFBQUFAQEFBQUFBQUFAQEBAQEBAQEBAQEBAQEFBQUFAQEODgUFBQ4BAQEBAQEBAQEBAQEBAQEOAQEBAQEBAQEBAQEBAQEBAQEBAQ4BAQEBAQEBAQEOAQEBAQEBAQEBAQcHBwcHBwcHBwcHBwcHBwcHBwUFBQUFBQUBAQEBBQUFBQUBAQEBBQEBAQEBAQEBAQEBAQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUBBQUFBQUFBQUFBQUFBQUFBQUBAQUFBQUFBQUBBQUBBQUFBQUBAQEBAQEBAQEBAQEBAQEBAQEBAQgFBQUFBQUFAgICAgICAgICAgICAgUFBQUFBQUCAgICAg4OAwMDAwMDAwMDAwMDAwMODg4ODg4ODg4ODg4ODg4BBwcHBwcHBwcHBwcODg4ODgEBAQEBAQEBAQEBAQEOAQEODg4ODg4ODgEBAQEBDg4ODg4ODg4ODg4OAQEBAQEBAQ4ODg4ODg4OAQEBAQEBAQEODg4ODgEBAQ4ODg4OAQEBDg4OAQ4ODg4ODg4ODg4ODgcHBwcHBwcHBwcBAQEBAQEBAQEBAQEBAQEBAQEBAQQEAAAQACAAMABAAFAAQABgAHAAgACQAKAAsADAALAAwACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsADQAOAA4ADwAAABEAEQARABEAEQARABEAEgATABsACwALAAsACwALAAQAGwALAAsACwALAAsACwALAAUAGwALAAsACwALAAsACwALAAsACwALAAsACwALAAsABgAXABEAGAAZABoAGgAaABsAHAAdAB0AHgARAB8AEAAtAB0AHQAdAB0AEQAiACMALQAUAC0AEQAcAB0AHQAdAB0AHQAVACAAKgAaABYAJwAqABgAKQAqABoAGgAtAB0AHQAbAC0AHQAcACEAHQAhAB4AKwALAA8AIAAxADIAOwADADsACwAEADUAOwACADYANwA7AAsABAA4ADMAOwAJADcAOwALAAQAOgA7AAIAOwAzADsACwAMADUAPQAyADsADgA7AAsACwAPADsACwAAAEEASwALAAIAQwBNADIANABDADsACwAEADUASwACADsABgBLAAsABwBFADsAAgA7AAMAOwALAAsACABJAEsACwALAAsACwAKAEsASwALAAsACwALAAsADABNAEsACwALAAsADgBLAA8ASwALAAsAAABRAFIAUQATAFQAWwALAAsACwALAAUAVgBbAAcAWABZAFoAWwBbAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAUAWwALAAsADABbAAsACwALAAsACwAEAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAA0AXgBbAAsACwALAAsACwALAA8AWwACADsAAgA7AAIAOwALAAsAAABhAGIAawAMAFMAawALAAsACwALAAsACwANADsABABrAAsACwALAAsACwALAAUAZgBnAGsACwALAAsACwALAAsACwAIAGAAEAAbAAkAawALAAsACgBrAGwAawALAAsAAQAdAGsACwALAA4AawALAA8AbgA7AAAAfgBmAEsAAQB7AAsACwACAHYASwALAAMAdAB7AAsACwALAAsACwALAAsACwAFAHYAdwB7AAsACwALAAsACwALAAsACwALAAsACwABABEAEQARABsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAgAeQB6AHoAewB8AHAAHQB+AH8AcACBAIIAgwCLAAQAhACEAIEAEQAYAFUAhgCHAIgAiQCAABsACwAKAIAAEAAQABAAEAAQABAAEAAbAIAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAcAIsACwALAAUAAAAdAIAAEAAQABAAEAAQABAAEAAeAIsADwCLAAAAEAAQAJEAmwALAAsACwACAJAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABMAkAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAGwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAUAJAAFQCQABAAEAAQABAAEAAbAAsACwALAAsACwALAAsACwALAAsACwALAAsABgCXAJsACwALAAsACwALAAsACACbAAsACwALAAsACwABABEAEAAQABAAEAAQABkAmwALAAAAGgCQABAAEAAQABAAGwCQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABwAiwAMAJ0AkAAeAJ8AmwALAAsACwALAAAApAALAAsACwALAAEAqwALAAsACwALAAsACwALAAsACwALAAsAAAAQABsAmwALAAsAewALAAsAAAAbAAIAqwALAAsAAwCkAKsACwALAAsACwALAAsACwALAAsABQCrAAsACwALAAsACABrAAYAqwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAAAEAAQABAAGwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAAAEAAQAB4AiwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwAKAHsACwALAAsACwAIAJcAqwAIAKsACwALAAsACwAGAEAAEAAZAKsACwALAAsACwAKAKsACwALAAsACwALAAsACwCrAAwArQCrAAsACwAOAKsACwALAAsADwCrAAEAEAC7AAsAAQC7AAIAtgBLAAsADgArAAsAAwC7AAsABAC7AAsACwAFALYAtwC7AAsABAA7AAsACwAIALMAOwAFAEQAWwALAAsACwALAAsACACLAAsACwALAAsACwALAAkAuwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAoAuwC6ABoAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHACwAB0AHQAdAB0AHQAdAB0AHQC4AAgADgCxABwAUQAQABAAHwCwAM0AHQAdAB0AHQAdAB0AHQARAMIAwwAEAAUABAAFAAwAiwALAAsACwALAAsACwADAMQAywALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwAFAMsACwALAAAAEAAQABAAFgDGAMQACwALAAsACwALAFsACwALAAsACwALAAsACwALAAsACwALAAsACwAHAMEAmwALAAsACwALAAsACwAIAMsACwALAAsACwALAAsACwAKABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGQDKABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgDKABoAGwDKABoAGgAaABoAGgAaABoAGgAaABwAygAaABoAGgAdAMoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAHQAdAB4AzwDKABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAQANEA2gAaABIA2gAaABoAGgAaABoAGgAaAB0AFQAgAC0AGgATANoAGgAaABoAGgAaABoAEwA7AAsABADVAN4ADACGANYASwALAAcA3gA7AAsACwAOACsACADZANsACwALAAoA1gBLAAsACwDcANsACwALAAsACwAIAJ0A2wALAAsACwALAAsACwALAAsACACeANsABgBLAAsABwBIAFsADwDZANsACwALAAsACwALAAsACwALAAsACwAEANkAQADrAAsACwALAAsAAQDiAOsACwALAAsACwALAAsACwALAAsACwALAAsACwADAOgAVQBLAAsACwALAAsABADoAFsABgDLAAsACwAFAOYA6wALAAsACwALAAUAVwDrAAsACwALAAsACwALAAsACwALAAsACwALAAsACwAIAJgA6wALAAsACwALAAsACwALAAsACwALAAsACwALAAsACQDqANsACwALAAsACwALAAsACwAKAOgAWwALAOsACwAMAO0A7gDrAAsADwDgAPsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsAAQD7AAsACwALAAsAAgDzAPQA+wALAAsACwALAAsACwAFAPYA6wALAAsACwAGAPsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAcA+wALAAsACwALAAsACwALAAsACwALAAsACwAIAPkA+QCrAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACQDbAAsACwAFANsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACACbAAsACwAIAJ4AKwALAAsACwAKAPsACwALAAsACwALAAsACwALAAsACwD8APsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwABABEAHQDxABUA2wALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsADgD/APABCwABAQsACwALAA0ACwAAABAAEAAQABIBCwALAAsACwALAAsACwALAAsACwALAAAAEAAQABAAEAAeAIsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsAAQCrAAsACwADAQsACwAGAKsACwALAAQBCwALAAsABQEGAQYBBgELAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsAAQARABEAFwEBABEAEwBUALgBAAB5AQsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAoBCwEMAQsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsABQDbAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAAA6wALAAsAAwB9AQsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAeAQoAGgAaABoAGgAaAB8BCgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaAB0AHQAdAB0AHQAaABoAGgAaAB0AHQAdAB0AHQAaABoAGgAaABoAGgAaABoAGgAaABoAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AEAEaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABAAEAAcAJAAEAAQABAAEAAQABsAkQETAKMAowCgABwAggEbAAYAqwALAAsAAgCbAAsACwADARsACwALAAsACwALAAsACwALAAsACwAMAIsACwALAAsACwALAAsACwALAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAFAEWAMYAwAAQABAAEAAQABAAEAAbAJAAEAAQABAAEAAVARwAlAAMAJAAEAAQABYBHABQABAAFgEQABkAmQCrAAsACwALAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABsAmQCXAR4AgAAWAM8AjACMAFYBHgCAABAAEAAQABAAEAAQABAAEAAYARAAEAAfAIsACwAJARsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAoBGAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAABABEAEQARABEAEQARABEAEQARABEAEQARABEAEQAYAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAABAAIAAwAAAAUABgAHAAQACQAKAAsACAANAA0ADQANAA0ADQAOAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA8ADAARAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0AEgATABEADAAVABYAFwAUABkAGQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADgAbABkADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADAAdAA0ADQANAB4AHwAcACEADQAhAA4AIwAgACUAJgAnACUADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA8AJQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADwAlAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQAPACUADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA8AJQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADwAlAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQAPACUADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA8AJQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADwAlAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQAPACUADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA8AJQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADwAlAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQAPACQAKQApACkAKQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA8AJQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADwAlAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQAPACQAAAQD//wIA/v8QAPD/AwD9/+AH3wmDB3oHfgfKCIoABwD5/yAHOAg8CDoIJAV2/wgA+P/c+ob4gvh9+OD4IPjI98b3xPc29yH2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEGCAAAAAAAAAAAAAAAAAAAAAAAAAwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEMAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQwCEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEGCQYIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEGCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgAAAAAAAAAAAABBggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEGCAAAAAAAAAAAAAAAAAABBggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwcHCAgIAAAAAAAAAAkAAAAAAAAAAAAKCwwNAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECAAAAAAAPABAAAAAAAAARAAAAAAABAgECAAAAAAAAAAAAAAAAAAABAgECAQIBAgAAAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAAAAAQIBAgAAAAAAEgAAAAAAAAAAAAECAAATABQVABUAAAAAAQIBAgECAQIWAAAAAAAAAAAAAAAAAAAAAAECAQIXAAABAgAAAAABAgECAQIBAgECAQIBAgECAQIBAgECAQIAAAECGBgYABAQAAAZGRkREQAAAAAAAAAAAEGCQYIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEGCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEGCQYJBgkGCQYJBgkGCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAkGCAAECAAMABAAAAAAAAAABAgAAAAAAGgECAAAAAQIBAkGCQYJBgkGCQYIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQYJBgkGCQYJBgkeBQohBgkGCQYJBggAAGwAAAAAcAAAdAQIAAAECAQIBAgECAAAAAAAAAAAeAAAAAAAAAAECAAABAgAAAAAAAAAAAAECAQIAAQIAAEGCQYIAAAAAAAAAAAAAAAABAgAAAAAAAAAAAAAAHwAAAQIAAEGCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIBAgAAAAAAAQIAAAAAAAABAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIAAAAAAAAAAAAAAAAAAAAAAAAAAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAAAAAQIBAgECAQIAAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgAAAAAAAAAgAAAAACEiIQAAAAAAAAECIwAAAAAAAAAAAQIBAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgECAAAAAQIAAQIAAAAAAAAAAAAAAAAAAAECAAABAkGCQYJBgkGCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEGCQYJBgkGCAAAAQYJBgkGCQYJBggAAQYJBgkGCQYIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQYJBgkGCAAAAAAABAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEGCAAAAAAAAAAAAAAAAAAAAAAAAAwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEMAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQwCEAEGCAEGCAAAAAAAAAAAAAAAAagDUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUAD4B1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUAKgB1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1AASAnwC1ADUANQA5gJQA7oD1ADUANQA1ADUANQA1ADUANQA1AAkBI4E1ADUANQA+ARiBcwFNgbUANQAoAbUANQA1ADUAAoH1ADUANQA1AB0B9QA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADeB0gIsggAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQKAvwEDoL8BA4C/AQOAnwEEkL8BBIC/AQSAjwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwQEBAQEBAQEBAQEBAUEBAYHBwcIAQEBAQEBAQEBAQEAAAAAdHEEAAEAAAA0ZwQAAgAAAFpxBAADAAAAPk0EAAQAAABTTQQABQAAABd8BAAGAAAAFXAEAAcAAAAgTQQACAAAAAZyBAAJAAAAb3EEAAoAAAA3TQQACwAAABlwBAAMAAAASU0EAA0AAADgUQQADgAAACxSBAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/gQQ1vwAAAACBBDW/gQQ1PwAAAACBBDW/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/gQQ1vwAAAACBBDU/gQQ1PwAAAACBBDU/9+ShvgAAAAAB3nK/9+ShPgAAAAAB3nK/AAAAAAAAAAAAAIA/AACAvwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAfdATv33QEz990BO/AAAAAIEENT+BBDW/fdATP33QEz990BO/fdATv33QEz990BM/AAAAAIEENT+BBDU/fdATP33QEz990BM/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPwAAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAD8AAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPwAAAAAAAAAAAAAAPwAAAAAAAAAAAAAAAAAAAD8AAAAAAAAAPwAAAAAAAAAAAACAPgAAAAAAAEA/AAAAAAAAAAAAAAAAAAAAAAAAgD4AAEA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA/w/WoPgAAAADD9ag+AAAAAAAAAAB7FK4+AAAAAAAAAAAAAAA/AAAAAAAAAAAAAAA/AAAAAMP1qD7D9ag+AAAAAAAAAAB7FK4+w/WoPgAAAAAAAAAAw/WoPgAAAAB7FK4+AAAAAAAAAAAAAAAAAAAAPwAAAAAAAAA/AAAAAMP1qD4AAAAAw/WoPgAAAAB7FK4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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IAED/8L+of6R/hEDEQMRAxEDEAMQAxADEAMBAwEDAQMBAwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABMwMyAyMCIwITARMBEwETATECMAIDAiICIQESASABAgEC/+H+MQUTBSIFIAUhBCEEEgQSBAIEAgQQAxADEAMQAxECEQIRAhECEQIRAhECEQIBAwEDAQMBAwADAAMAAwADMwIwAjIBMgEjAQMBBP9j/iP+4v0SBcH9EQQRBBADEAMQAxADAQMBAwEDAQMAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAYH+cf5TBEQEUgQlBFEDUQMVAxUDUARDBAUDBQM0BDMEVQFUAUUBNQFCAyQDQQJBAhQCFAIEAgQCQAMyAyMDMAMxAjECEwITAgMCIgIhASEBIAECAQT/U/4T/tH9IQQhBBIEEgQRAhECEQIRAhECEQIRAhECEAMQAxADEAMBAwEDAQMBAwACAAIAAgACAAIAAgACAAKC/jUEYf5SBCUEUARRA1EDFQMVA0MENAQFBDMEQgNCA1UCRQJUAVQBUwFEASQDQQMUAhQCQAMEAzIDIwMxAxMDMAMDAyIBIgEiASIBIAECAQP/o/5i/kH+Mf4xBRMFIf4iBSAFIQQhBBIEEgQCBAIEEQMRAxEDEQMQAxADEAMQAwEDAQMBAwEDAAMAAwADAAPB/lMDNQOx/kQDUgMlA1EDVQFUAUUBUAEVAhUCQwJDAjQCNAIFA0ADQgIkAjMCBAJBARQBMgEjATABAwEF/8T9I/3C/KH8kfwRBBEEEAMQAxADEAMBAwEDAQMBAwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAf7x/eH9dAVHBWUFVgVzBTcFZAXR/TYFcgRyBCcEJwRGBXAFBwQHBCYEJgRUBVMFYARgBDUFRAVxA3EDcQNxA3cBdgFnAXUBVwFmAVUBRQEXAxcDYwRiBEH9UQQVBDH9YQNhAxYDFgMGAwYDUAQFBFIBJQFDATQB4fzR/EEDFAMEAzIDIwMwA0IBJAEzAUABMQITAgMCIgIhARIBIAECAQX/8/2j/VP9A/3B/LL8EgUhBCEEIAUCBREDEQMRAxEDEAMQAxADEAMBAwEDAQMBAwACAAIAAgACAAIAAgACAAJ3BXYFZwVXBWYFdAVHBQH+ZQVWBXME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BgcICQoLDA0ODwAREgMTBAUGBwgJCgsMDQ4AAgMEBQYHCAkKCwwNDg8QTAQgPAQELAMHLAITAAQDEAQIIAMMKAIHLAQCLAMKAAAAAAAAq6qqNE51hzTLBlc0JUkSNM826DP3TrgziYiIM7C7WDNvBSwzCCEEM+S90TLfeKYyIQiCMptpTjJq1CMyBAIBMojJzDEsiqIxgYCAMfH7SzH/5iExIEAAMcCVyzDjlaEwCCCAMM5iSzBzbSEwAhAAMF5Jyy9DWaEvAQiAL6k8Sy8tTyEvAAQAL082yy4iSqEuAAKALiIzSy6dRyEuAAEALosxyy1bRqEtgACALcAwSy25RSEtq6qqNE51hzTLBlc0zcxMNMSMIjQTBAE0OY7jM2ictDPcWY8zAAAAAP7////6////6f/////////V////6v///87////2////4f///+3////N/////////93////Q////0////+X////a////+////+7////4////6P////X////P/////////9/////O////6/////7////s////0v////H////k////9////+T////1//////////T////d////3f///93////3////7v////n////5////9v///////////////P///+L////Y////7v///+P////R////8v////D/////////2//////////9////+f////X//////////f///+b/////////1////9n////7////+v///+f////5////9v///97////t///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2//////////////////////////////////////////v////////////////////////////////////g////3v///+D////d////////////////////////////////////3P//////////////+v////b////2///////////////////////////////U/////f///9b//////////////8//////////////////////////7P////n//////////////////////////////////////////////5ZNBABBSQQAWEkEAHd7BABuSQQAjjsEAJtxBADScAQAyG8EAGBvBABJcAQAq3EEAPFvBACLbwQAeXAEAF5wBAC+cAQAA3AEAJ5vBACTcAQAsW8EADBwBABIbwQA228EAKZwBAB0bwQAYngEAPl3BABRdwQA9XYEAI12BABEdgQA13UEAJR1BABgdQQABnUEAJR4BAA1eAQAwXcEACJ3BADfdgQAYXYEADV2BACxdQQAfXUEAC51BAB/eAQAIngEAK53BAAPdwQAzHYEAFJ2BADldQQAonUEAG51BAAfdQQAcHgEAA94BAABAAAAAwAAAAAAAAACAAAAAwAAAAEAAAACAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABLOgQABRcAANxGBAAGFwAAX00EAAcXAABWOAQACBcAAAthBAAJFwAAvTgEAFYEAAALUwQAChcAAFM/BAALFwAAuD4EAAwXAACyUAQADRcAAH8/BAAOFwAATjgEAA8XAAD+YAQAEBcAAE9KBAARFwAAalYEABIXAAAuXgQAExcAAHpYBAAUFwAAAAAAAAAAAACCPgQAFRcAANBnBAAWFwAAaToEABcXAABBRwQAGBcAAGdGBAAZFwAA0jkEABoXAADyPwQAGxcAACZcBAAcFwAAij4EAB0XAABnZgQAHhcAAB5cBAAfFwAAgz4EACAXAABMNAQAIRcAAEQ0BAAiFwAAzUsEACMXAAAAAAAAAAAAAD5cBAAkFwAAc1YEACUXAABqVgQAJhcAAFR1BAAnFwAARXUEACgXAAAOdgQAKRcAAP11BAAqFwAAjHcEACsXAABsdwQALBcAAJ13BAAtFwAArnYEAC4XAABMdQQALxcAAD11BAAwFwAABXYEADEXAAD0dQQAMhcAAIN3BAAzFwAAY3cEADQXAACUdwQANRcAAKV2BAA2FwAAilYEADcXAAB+VgQAOBcAALtQBAA5FwAAozUEADoXAAAxUgQAOxcAAGVBBAA8FwAAW0EEAD0XAAA1SQQAPhcAAChJBAA/FwAAAAAAAAAAAAAAAAAAAAAAAD5cBAAkFwAAc1YEACUXAABqVgQAJhcAAFR1BAAnFwAARXUEACgXAAAOdgQAKRcAAP11BAAqFwAAjHcEACsXAABsdwQALBcAAJ13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AADUFwAA1RcAANYXAADXFwAA2BcAANkXAADaFwAA2xcAANwXAADdFwAA3hcAAN8XAADgFwAA4RcAAOIXAADjFwAA5BcAAOUXAADmFwAA5xcAAOgXAADpFwAA6hcAAOsXAADsFwAA7RcAAO4XAADvFwAA8BcAAPEXAADyFwAA8xcAAPQXAAD1FwAA9hcAAPcXAAD4FwAA+RcAAPoXAAD7FwAA/BcAAP0XAAD+FwAA/xcAAAAYAAABGAAAAhgAAAMYAAAEGAAABRgAAAYYAAAHGAAACBgAAAkYAAAKGAAACxgAAAwYAAANGAAADhgAAA8YAAAQGAAAERgAABIYAAATGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAVGAAAFBgAABYYAAAXGAAAGBgAABkYAADgFwAA3RcAABoYAADpFwAAGxgAABwYAAAdGAAAAAAAAAAAAAAAAAAAAAAAAE+7YQVnrN0/GC1EVPsh6T+b9oHSC3PvPxgtRFT7Ifk/4mUvIn8rejwHXBQzJqaBPL3L8HqIB3A8B1wUMyamkTwYLURU+yHpPxgtRFT7Iem/0iEzf3zZAkDSITN/fNkCwAAAAAAAAAAAAAAAAAAAAIAYLURU+yEJQBgtRFT7IQnA2w9JP9sPSb/kyxZA5MsWwAAAAAAAAACA2w9JQNsPScA4Y+0+2g9JP16Yez/aD8k/aTesMWghIjO0DxQzaCGiM9F0ngBXnb0qgHBSD///PicKAAAAZAAAAOgDAAAQJwAAoIYBAEBCDwCAlpgAAOH1BRgAAAA1AAAAcQAAAGv////O+///kr///wAAAAAAAAAAAwAAAAQAAAAEAAAABgAAAIP5ogBETm4A/CkVANFXJwDdNPUAYtvAADyZlQBBkEMAY1H+ALveqwC3YcUAOm4kANJNQgBJBuAACeouAByS0QDrHf4AKbEcAOg+pwD1NYIARLsuAJzphAC0JnAAQX5fANaROQBTgzkAnPQ5AItfhAAo+b0A+B87AN7/lwAPmAUAES/vAApaiwBtH20Az342AAnLJwBGT7cAnmY/AC3qXwC6J3UA5evHAD178QD3OQcAklKKAPtr6gAfsV8ACF2NADADVgB7/EYA8KtrACC8zwA29JoA46kdAF5hkQAIG+YAhZllAKAUXwCNQGgAgNj/ACdzTQAGBjEAylYVAMmocwB74mAAa4zAABnERwDNZ8MACejcAFmDKgCLdsQAphyWAESv3QAZV9EApT4FAAUH/wAzfj8AwjLoAJhP3gC7fTIAJj3DAB5r7wCf+F4ANR86AH/yygDxhx0AfJAhAGokfADVbvoAMC13ABU7QwC1FMYAwxmdAK3EwgAsTUEADABdAIZ9RgDjcS0Am8aaADNiAAC00nwAtKeXADdV1QDXPvYAoxAYAE12/ABknSoAcNerAGN8+AB6sFcAFxXnAMBJVgA71tkAp4Q4ACQjywDWincAWlQjAAAfuQDxChsAGc7fAJ8x/wBmHmoAmVdhAKz7RwB+f9gAImW3ADLoiQDmv2AA78TNAGw2CQBdP9QAFt7XAFg73gDem5IA0iIoACiG6ADiWE0AxsoyAAjjFgDgfcsAF8BQAPMdpwAY4FsALhM0AIMSYgCDSAEA9Y5bAK2wfwAe6fIASEpDABBn0wCq3dgArl9CAGphzgAKKKQA05m0AAam8gBcd38Ao8KDAGE8iACKc3gAr4xaAG/XvQAtpmMA9L/LAI2B7wAmwWcAVcpFAMrZNgAoqNIAwmGNABLJdwAEJhQAEkabAMRZxADIxUQATbKRAAAX8wDUQ60AKUnlAP3VEAAAvvwAHpTMAHDO7gATPvUA7PGAALPnwwDH+CgAkwWUAMFxPgAuCbMAC0XzAIgSnACrIHsALrWfAEeSwgB7Mi8ADFVtAHKnkABr5x8AMcuWAHkWSgBBeeIA9N+JAOiUlwDi5oQAmTGXAIjtawBfXzYAu/0OAEiatABnpGwAcXJCAI1dMgCfFbgAvOUJAI0xJQD3dDkAMAUcAA0MAQBLCGgALO5YAEeqkAB05wIAvdYkAPd9pgBuSHIAnxbvAI6UpgC0kfYA0VNRAM8K8gAgmDMA9Ut+ALJjaADdPl8AQF0DAIWJfwBVUikAN2TAAG3YEAAySDIAW0x1AE5x1ABFVG4ACwnBACr1aQAUZtUAJwedAF0EUAC0O9sA6nbFAIf5FwBJa30AHSe6AJZpKQDGzKwArRRUAJDiagCI2YkALHJQAASkvgB3B5QA8zBwAAD8JwDqcagAZsJJAGTgPQCX3YMAoz+XAEOU/QANhowAMUHeAJI5nQDdcIwAF7fnAAjfOwAVNysAXICgAFqAkwAQEZIAD+jYAGyArwDb/0sAOJAPAFkYdgBipRUAYcu7AMeJuQAQQL0A0vIEAEl1JwDrtvYA2yK7AAoUqgCJJi8AZIN2AAk7MwAOlBoAUTqqAB2jwgCv7a4AXCYSAG3CTQAtepwAwFaXAAM/gwAJ8PYAK0CMAG0xmQA5tAcADCAVANjDWwD1ksQAxq1LAE7KpQCnN80A5qk2AKuSlADdQmgAGWPeAHaM7wBoi1IA/Ns3AK6hqwDfFTEAAK6hAAz72gBkTWYA7QW3ACllMABXVr8AR/86AGr5uQB1vvMAKJPfAKuAMABmjPYABMsVAPoiBgDZ5B0APbOkAFcbjwA2zQkATkLpABO+pAAzI7UA8KoaAE9lqADSwaUACz8PAFt4zQAj+XYAe4sEAIkXcgDGplMAb27iAO/rAACbSlgAxNq3AKpmugB2z88A0QIdALHxLQCMmcEAw613AIZI2gD3XaAAxoD0AKzwLwDd7JoAP1y8ANDebQCQxx8AKtu2AKMlOgAAr5oArVOTALZXBAApLbQAS4B+ANoHpwB2qg4Ae1mhABYSKgDcty0A+uX9AInb/gCJvv0A5HZsAAap/AA+gHAAhW4VAP2H/wAoPgcAYWczACoYhgBNveoAs+evAI9tbgCVZzkAMb9bAITXSAAw3xYAxy1DACVhNQDJcM4AMMu4AL9s/QCkAKIABWzkAFrdoAAhb0cAYhLSALlchABwYUkAa1bgAJlSAQBQVTcAHtW3ADPxxAATbl8AXTDkAIUuqQAdssMAoTI2AAi3pADqsdQAFvchAI9p5AAn/3cADAOAAI1ALQBPzaAAIKWZALOi0wAvXQoAtPlCABHaywB9vtAAm9vBAKsXvQDKooEACGpcAC5VFwAnAFUAfxTwAOEHhgAUC2QAlkGNAIe+3gDa/SoAayW2AHuJNAAF8/4Aub+eAGhqTwBKKqgAT8RaAC34vADXWpgA9MeVAA1NjQAgOqYApFdfABQ/sQCAOJUAzCABAHHdhgDJ3rYAv2D1AE1lEQABB2sAjLCsALLA0ABRVUgAHvsOAJVywwCjBjsAwEA1AAbcewDgRcwATin6ANbKyADo80EAfGTeAJtk2ADZvjEApJfDAHdY1ABp48UA8NoTALo6PABGGEYAVXVfANK99QBuksYArC5dAA5E7QAcPkIAYcSHACn96QDn1vMAInzKAG+RNQAI4MUA/9eNAG5q4gCw/cYAkwjBAHxddABrrbIAzW6dAD5yewDGEWoA98+pAClz3wC1yboAtwBRAOKyDQB0uiQA5X1gAHTYigANFSwAgRgMAH5mlAABKRYAn3p2AP39vgBWRe8A2X42AOzZEwCLurkAxJf8ADGoJwDxbsMAlMU2ANioVgC0qLUAz8wOABKJLQBvVzQALFaJAJnO4wDWILkAa16qAD4qnAARX8wA/QtKAOH0+wCOO20A4oYsAOnUhAD8tKkA7+7RAC41yQAvOWEAOCFEABvZyACB/AoA+0pqAC8c2ABTtIQATpmMAFQizAAqVdwAwMbWAAsZlgAacLgAaZVkACZaYAA/Uu4AfxEPAPS1EQD8y/UANLwtADS87gDoXcwA3V5gAGeOmwCSM+8AyRe4AGFYmwDhV7wAUYPGANg+EADdcUgALRzdAK8YoQAhLEYAWfPXANl6mACeVMAAT4b6AFYG/ADlea4AiSI2ADitIgBnk9wAVeiqAIImOADK55sAUQ2kAJkzsQCp1w4AaQVIAGWy8AB/iKcAiEyXAPnRNgAhkrMAe4JKAJjPIQBAn9wA3EdVAOF0OgBn60IA/p3fAF7UXwB7Z6QAuqx6AFX2ogAriCMAQbpVAFluCAAhKoYAOUeDAInj5gDlntQASftAAP9W6QAcD8oAxVmKAJT6KwDTwcUAD8XPANtargBHxYYAhUNiACGGOwAseZQAEGGHACpMewCALBoAQ78SAIgmkAB4PIkAqMTkAOXbewDEOsIAJvTqAPdnigANkr8AZaMrAD2TsQC9fAsApFHcACfdYwBp4d0AmpQZAKgplQBozigACe20AESfIABOmMoAcIJjAH58IwAPuTIAp/WOABRW5wAh8QgAtZ0qAG9+TQClGVEAtfmrAILf1gCW3WEAFjYCAMQ6nwCDoqEAcu1tADmNegCCuKkAazJcAEYnWwAANO0A0gB3APz0VQABWU0A4HGAAAAAAAAAAAAAAAAAQPsh+T8AAAAALUR0PgAAAICYRvg8AAAAYFHMeDsAAACAgxvwOQAAAEAgJXo4AAAAgCKC4zYAAAAAHfNpNRkACwAZGRkAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAGQAKChkZGQMKBwABAAkLGAAACQYLAAALAAYZAAAAGRkZAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAABkACw0ZGRkADQAAAgAJDgAAAAkADgAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAATAAAAABMAAAAACQwAAAAAAAwAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAADwAAAAQPAAAAAAkQAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAABEAAAAAEQAAAAAJEgAAAAAAEgAAEgAAGgAAABoaGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAGhoaAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFwAAAAAXAAAAAAkUAAAAAAAUAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAABUAAAAAFQAAAAAJFgAAAAAAFgAAFgAAMDEyMzQ1Njc4OUFCQ0RFRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAUAAAAHAAAACwAAAA0AAAARAAAAEwAAABcAAAAdAAAAHwAAACUAAAApAAAAKwAAAC8AAAA1AAAAOwAAAD0AAABDAAAARwAAAEkAAABPAAAAUwAAAFkAAABhAAAAZQAAAGcAAABrAAAAbQAAAHEAAAB/AAAAgwAAAIkAAACLAAAAlQAAAJcAAACdAAAAowAAAKcAAACtAAAAswAAALUAAAC/AAAAwQAAAMUAAADHAAAA0wAAAAEAAAALAAAADQAAABEAAAATAAAAFwAAAB0AAAAfAAAAJQAAACkAAAArAAAALwAAADUAAAA7AAAAPQAAAEMAAABHAAAASQAAAE8AAABTAAAAWQAAAGEAAABlAAAAZwAAAGsAAABtAAAAcQAAAHkAAAB/AAAAgwAAAIkAAACLAAAAjwAAAJUAAACXAAAAnQAAAKMAAACnAAAAqQAAAK0AAACzAAAAtQAAALsAAAC/AAAAwQAAAMUAAADHAAAA0QAAAAAAAADMMAcAIBgAACEYAAAiGAAAIxgAACQYAAAlGAAAJhgAACcYAAAoGAAAKRgAACoYAAArGAAALBgAAC0YAAAAAAAA+DEHAC4YAAAvGAAAIhgAACMYAAAwGAAAMRgAACYYAAAnGAAAKBgAADIYAAAqGAAAMxgAACwYAAA0GAAATlN0M19fMjliYXNpY19pb3NJY05TXzExY2hhcl90cmFpdHNJY0VFRUUAAADcXgcAYDAHAOAyBwBOU3QzX18yMTViYXNpY19zdHJlYW1idWZJY05TXzExY2hhcl90cmFpdHNJY0VFRUUAAAAAnF4HAJgwBwBOU3QzX18yMTNiYXNpY19pc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAABAXgcA1DAHAAAAAAABAAAAjDAHAAP0//9OU3QzX18yMTNiYXNpY19vc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAABAXgcAHDEHAAAAAAABAAAAjDAHAAP0//9OU3QzX18yMTRiYXNpY19pb3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQBAXgcAZDEHAAMAAAACAAAABDEHAAIAAABMMQcAAggAAE5TdDNfXzIxNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAAAA3F4HALQxBwDMMAcAQAAAAAAAAACwMgcANRgAADYYAAA4AAAA+P///7AyBwA3GAAAOBgAAMD////A////sDIHADkYAAA6GAAAQAAAAAAAAAAEMQcAOxgAADwYAADA////wP///wQxBwA9GAAAPhgAAE5TdDNfXzIxOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAAAAANxeBwBoMgcAlDEHAAAAAADgMgcAPxgAAEAYAABOU3QzX18yOGlvc19iYXNlRQAAAJxeBwDMMgcAAAAAAAAAAAAwMTIzNDU2Nzg5YWJjZGVmQUJDREVGeFgrLXBQaUluTgAlSTolTTolUyAlcCVIOiVNAAAAAAAAAAAAAAAAAAAAJQAAAG0AAAAvAAAAJQAAAGQAAAAvAAAAJQAAAHkAAAAlAAAAWQAAAC0AAAAlAAAAbQAAAC0AAAAlAAAAZAAAACUAAABJAAAAOgAAACUAAABNAAAAOgAAACUAAABTAAAAIAAAACUAAABwAAAAAAAAACUAAABIAAAAOgAAACUAAABNAAAAAAAAAAAAAAAAAAAAJQAAAEgAAAA6AAAAJQAAAE0AAAA6AAAAJQAAAFMAAAAAAAAAND0HAEEYAABCGAAAQxgAAAAAAACUPQcARBgAAEUYAABDGAAARhgAAEcYAABIGAAASRgAAEoYAABLGAAATBgAAE0YAAAAAAAAAAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAUCAAAFAAAABQAAAAUAAAAFAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAwIAAIIAAACCAAAAggAAAIIAAACCAAAAggAAAIIAAACCAAAAggAAAIIAAACCAAAAggAAAIIAAACCAAAAggAAAEIBAABCAQAAQgEAAEIBAABCAQAAQgEAAEIBAABCAQAAQgEAAEIBAACCAAAAggAAAIIAAACCAAAAggAAAIIAAACCAAAAKgEAACoBAAAqAQAAKgEAACoBAAAqAQAAKgAAACoAAAAqAAAAKgAAACoAAAAqAAAAKgAAACoAAAAqAAAAKgAAACoAAAAqAAAAKgAAACoAAAAqAAAAKgAAACoAAAAqAAAAKgAAACoAAACCAAAAggAAAIIAAACCAAAAggAAAIIAAAAyAQAAMgEAADIBAAAyAQAAMgEAADIBAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAAIIAAACCAAAAggAAAIIAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/DwHAE4YAABPGAAAQxgAAFAYAABRGAAAUhgAAFMYAABUGAAAVRgAAFYYAAAAAAAAzD0HAFcYAABYGAAAQxgAAFkYAABaGAAAWxgAAFwYAABdGAAAAAAAAPA9BwBeGAAAXxgAAEMYAABgGAAAYRgAAGIYAABjGAAAZBgAAHQAAAByAAAAdQAAAGUAAAAAAAAAZgAAAGEAAABsAAAAcwAAAGUAAAAAAAAAJQAAAG0AAAAvAAAAJQAAAGQAAAAvAAAAJQAAAHkAAAAAAAAAJQAAAEgAAAA6AAAAJQAAAE0AAAA6AAAAJQAAAFMAAAAAAAAAJQAAAGEAAAAgAAAAJQAAAGIAAAAgAAAAJQAAAGQAAAAgAAAAJQAAAEgAAAA6AAAAJQAAAE0AAAA6AAAAJQAAAFMAAAAgAAAAJQAAAFkAAAAAAAAAJQAAAEkAAAA6AAAAJQAAAE0AAAA6AAAAJQAAAFMAAAAgAAAAJQAAAHAAAAAAAAAAAAAAANQ5BwBlGAAAZhgAAEMYAABOU3QzX18yNmxvY2FsZTVmYWNldEUAAADcXgcAvDkHAIhdBwAAAAAAVDoHAGUYAABnGAAAQxgAAGgYAABpGAAAahgAAGsYAABsGAAAbRgAAG4YAABvGAAAcBgAAHEYAAByGAAAcxgAAE5TdDNfXzI1Y3R5cGVJd0VFAE5TdDNfXzIxMGN0eXBlX2Jhc2VFAACcXgcANjoHAEBeBwAkOgcAAAAAAAIAAADUOQcAAgAAAEw6BwACAAAAAAAAAOg6BwBlGAAAdBgAAEMYAAB1GAAAdhgAAHcYAAB4GAAAeRgAAHoYAAB7GAAATlN0M19fMjdjb2RlY3Z0SWNjMTFfX21ic3RhdGVfdEVFAE5TdDNfXzIxMmNvZGVjdnRfYmFzZUUAAAAAnF4HAMY6BwBAXgcApDoHAAAAAAACAAAA1DkHAAIAAADgOgcAAgAAAAAAAABcOwcAZRgAAHwYAABDGAAAfRgAAH4YAAB/GAAAgBgAAIEYAACCGAAAgxgAAE5TdDNfXzI3Y29kZWN2dElEc2MxMV9fbWJzdGF0ZV90RUUAAEBeBwA4OwcAAAAAAAIAAADUOQcAAgAAAOA6BwACAAAAAAAAANA7BwBlGAAAhBgAAEMYAACFGAAAhhgAAIcYAACIGAAAiRgAAIoYAACLGAAATlN0M19fMjdjb2RlY3Z0SURzRHUxMV9fbWJzdGF0ZV90RUUAQF4HAKw7BwAAAAAAAgAAANQ5BwACAAAA4DoHAAIAAAAAAAAARDwHAGUYAACMGAAAQxgAAI0YAACOGAAAjxgAAJAYAACRGAAAkhgAAJMYAABOU3QzX18yN2NvZGVjdnRJRGljMTFfX21ic3RhdGVfdEVFAABAXgcAIDwHAAAAAAACAAAA1DkHAAIAAADgOgcAAgAAAAAAAAC4PAcAZRgAAJQYAABDGAAAlRgAAJYYAACXGAAAmBgAAJkYAACaGAAAmxgAAE5TdDNfXzI3Y29kZWN2dElEaUR1MTFfX21ic3RhdGVfdEVFAEBeBwCUPAcAAAAAAAIAAADUOQcAAgAAAOA6BwACAAAATlN0M19fMjdjb2RlY3Z0SXdjMTFfX21ic3RhdGVfdEVFAAAAQF4HANg8BwAAAAAAAgAAANQ5BwACAAAA4DoHAAIAAABOU3QzX18yNmxvY2FsZTVfX2ltcEUAAADcXgcAHD0HANQ5BwBOU3QzX18yN2NvbGxhdGVJY0VFANxeBwBAPQcA1DkHAE5TdDNfXzI3Y29sbGF0ZUl3RUUA3F4HAGA9BwDUOQcATlN0M19fMjVjdHlwZUljRUUAAABAXgcAgD0HAAAAAAACAAAA1DkHAAIAAABMOgcAAgAAAE5TdDNfXzI4bnVtcHVuY3RJY0VFAAAAANxeBwC0PQcA1DkHAE5TdDNfXzI4bnVtcHVuY3RJd0VFAAAAANxeBwDYPQcA1DkHAAAAAABUPQcAnBgAAJ0YAABDGAAAnhgAAJ8YAACgGAAAAAAAAHQ9BwChGAAAohgAAEMYAACjGAAApBgAAKUYAAAAAAAAED8HAGUYAACmGAAAQxgAAKcYAACoGAAAqRgAAKoYAACrGAAArBgAAK0YAACuGAAArxgAALAYAACxGAAATlN0M19fMjdudW1fZ2V0SWNOU18xOWlzdHJlYW1idWZfaXRlcmF0b3JJY05TXzExY2hhcl90cmFpdHNJY0VFRUVFRQBOU3QzX18yOV9fbnVtX2dldEljRUUATlN0M19fMjE0X19udW1fZ2V0X2Jhc2VFAACcXgcA1j4HAEBeBwDAPgcAAAAAAAEAAADwPgcAAAAAAEBeBwB8PgcAAAAAAAIAAADUOQcAAgAAAPg+BwAAAAAAAAAAAOQ/BwBlGAAAshgAAEMYAACzGAAAtBgAALUYAAC2GAAAtxgAALgYAAC5GAAAuhgAALsYAAC8GAAAvRgAAE5TdDNfXzI3bnVtX2dldEl3TlNfMTlpc3RyZWFtYnVmX2l0ZXJhdG9ySXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFRUUATlN0M19fMjlfX251bV9nZXRJd0VFAAAAQF4HALQ/BwAAAAAAAQAAAPA+BwAAAAAAQF4HAHA/BwAAAAAAAgAAANQ5BwACAAAAzD8HAAAAAAAAAAAAzEAHAGUYAAC+GAAAQxgAAL8YAADAGAAAwRgAAMIYAADDGAAAxBgAAMUYAADGGAAATlN0M19fMjdudW1fcHV0SWNOU18xOW9zdHJlYW1idWZfaXRlcmF0b3JJY05TXzExY2hhcl90cmFpdHNJY0VFRUVFRQBOU3QzX18yOV9fbnVtX3B1dEljRUUATlN0M19fMjE0X19udW1fcHV0X2Jhc2VFAACcXgcAkkAHAEBeBwB8QAcAAAAAAAEAAACsQAcAAAAAAEBeBwA4QAcAAAAAAAIAAADUOQcAAgAAALRABwAAAAAAAAAAAJRBBwBlGAAAxxgAAEMYAADIGAAAyRgAAMoYAADLGAAAzBgAAM0YAADOGAAAzxgAAE5TdDNfXzI3bnVtX3B1dEl3TlNfMTlvc3RyZWFtYnVmX2l0ZXJhdG9ySXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFRUUATlN0M19fMjlfX251bV9wdXRJd0VFAAAAQF4HAGRBBwAAAAAAAQAAAKxABwAAAAAAQF4HACBBBwAAAAAAAgAAANQ5BwACAAAAfEEHAAAAAAAAAAAAlEIHANAYAADRGAAAQxgAANIYAADTGAAA1BgAANUYAADWGAAA1xgAANgYAAD4////lEIHANkYAADaGAAA2xgAANwYAADdGAAA3hgAAN8YAABOU3QzX18yOHRpbWVfZ2V0SWNOU18xOWlzdHJlYW1idWZfaXRlcmF0b3JJY05TXzExY2hhcl90cmFpdHNJY0VFRUVFRQBOU3QzX18yOXRpbWVfYmFzZUUAnF4HAE1CBwBOU3QzX18yMjBfX3RpbWVfZ2V0X2Nfc3RvcmFnZUljRUUAAACcXgcAaEIHAEBeBwAIQgcAAAAAAAMAAADUOQcAAgAAAGBCBwACAAAAjEIHAAAIAAAAAAAAgEMHAOAYAADhGAAAQxgAAOIYAADjGAAA5BgAAOUYAADmGAAA5xgAAOgYAAD4////gEMHAOkYAADqGAAA6xgAAOwYAADtGAAA7hgAAO8YAABOU3QzX18yOHRpbWVfZ2V0SXdOU18xOWlzdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQBOU3QzX18yMjBfX3RpbWVfZ2V0X2Nfc3RvcmFnZUl3RUUAAJxeBwBVQwcAQF4HABBDBwAAAAAAAwAAANQ5BwACAAAAYEIHAAIAAAB4QwcAAAgAAAAAAAAkRAcA8BgAAPEYAABDGAAA8hgAAE5TdDNfXzI4dGltZV9wdXRJY05TXzE5b3N0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzIxMF9fdGltZV9wdXRFAAAAnF4HAAVEBwBAXgcAwEMHAAAAAAACAAAA1DkHAAIAAAAcRAcAAAgAAAAAAACkRAcA8xgAAPQYAABDGAAA9RgAAE5TdDNfXzI4dGltZV9wdXRJd05TXzE5b3N0cmVhbWJ1Zl9pdGVyYXRvckl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRUVFAAAAAEBeBwBcRAcAAAAAAAIAAADUOQcAAgAAABxEBwAACAAAAAAAADhFBwBlGAAA9hgAAEMYAAD3GAAA+BgAAPkYAAD6GAAA+xgAAPwYAAD9GAAA/hgAAP8YAABOU3QzX18yMTBtb25leXB1bmN0SWNMYjBFRUUATlN0M19fMjEwbW9uZXlfYmFzZUUAAAAAnF4HABhFBwBAXgcA/EQHAAAAAAACAAAA1DkHAAIAAAAwRQcAAgAAAAAAAACsRQcAZRgAAAAZAABDGAAAARkAAAIZAAADGQAABBkAAAUZAAAGGQAABxkAAAgZAAAJGQAATlN0M19fMjEwbW9uZXlwdW5jdEljTGIxRUVFAEBeBwCQRQcAAAAAAAIAAADUOQcAAgAAADBFBwACAAAAAAAAACBGBwBlGAAAChkAAEMYAAALGQAADBkAAA0ZAAAOGQAADxkAABAZAAARGQAAEhkAABMZAABOU3QzX18yMTBtb25leXB1bmN0SXdMYjBFRUUAQF4HAARGBwAAAAAAAgAAANQ5BwACAAAAMEUHAAIAAAAAAAAAlEYHAGUYAAAUGQAAQxgAABUZAAAWGQAAFxkAABgZAAAZGQAAGhkAABsZAAAcGQAAHRkAAE5TdDNfXzIxMG1vbmV5cHVuY3RJd0xiMUVFRQBAXgcAeEYHAAAAAAACAAAA1DkHAAIAAAAwRQcAAgAAAAAAAAA4RwcAZRgAAB4ZAABDGAAAHxkAACAZAABOU3QzX18yOW1vbmV5X2dldEljTlNfMTlpc3RyZWFtYnVmX2l0ZXJhdG9ySWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFRUUATlN0M19fMjExX19tb25leV9nZXRJY0VFAACcXgcAFkcHAEBeBwDQRgcAAAAAAAIAAADUOQcAAgAAADBHBwAAAAAAAAAAANxHBwBlGAAAIRkAAEMYAAAiGQAAIxkAAE5TdDNfXzI5bW9uZXlfZ2V0SXdOU18xOWlzdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQBOU3QzX18yMTFfX21vbmV5X2dldEl3RUUAAJxeBwC6RwcAQF4HAHRHBwAAAAAAAgAAANQ5BwACAAAA1EcHAAAAAAAAAAAAgEgHAGUYAAAkGQAAQxgAACUZAAAmGQAATlN0M19fMjltb25leV9wdXRJY05TXzE5b3N0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzIxMV9fbW9uZXlfcHV0SWNFRQAAnF4HAF5IBwBAXgcAGEgHAAAAAAACAAAA1DkHAAIAAAB4SAcAAAAAAAAAAAAkSQcAZRgAACcZAABDGAAAKBkAACkZAABOU3QzX18yOW1vbmV5X3B1dEl3TlNfMTlvc3RyZWFtYnVmX2l0ZXJhdG9ySXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFRUUATlN0M19fMjExX19tb25leV9wdXRJd0VFAACcXgcAAkkHAEBeBwC8SAcAAAAAAAIAAADUOQcAAgAAABxJBwAAAAAAAAAAAJxJBwBlGAAAKhkAAEMYAAArGQAALBkAAC0ZAABOU3QzX18yOG1lc3NhZ2VzSWNFRQBOU3QzX18yMTNtZXNzYWdlc19iYXNlRQAAAACcXgcAeUkHAEBeBwBkSQcAAAAAAAIAAADUOQcAAgAAAJRJBwACAAAAAAAAAPRJBwBlGAAALhkAAEMYAAAvGQAAMBkAADEZAABOU3QzX18yOG1lc3NhZ2VzSXdFRQAAAABAXgcA3EkHAAAAAAACAAAA1DkHAAIAAACUSQcAAgAAAFMAAAB1AAAAbgAAAGQAAABhAAAAeQAAAAAAAABNAAAAbwAAAG4AAABkAAAAYQAAAHkAAAAAAAAAVAAAAHUAAABlAAAAcwAAAGQAAABhAAAAeQAAAAAAAABXAAAAZQAAAGQAAABuAAAAZQAAAHMAAABkAAAAYQAAAHkAAAAAAAAAVAAAAGgAAAB1AAAAcgAAAHMAAABkAAAAYQAAAHkAAAAAAAAARgAAAHIAAABpAAAAZAAAAGEAAAB5AAAAAAAAAFMAAABhAAAAdAAAAHUAAAByAAAAZAAAAGEAAAB5AAAAAAAAAFMAAAB1AAAAbgAAAAAAAABNAAAAbwAAAG4AAAAAAAAAVAAAAHUAAABlAAAAAAAAAFcAAABlAAAAZAAAAAAAAABUAAAAaAAAAHUAAAAAAAAARgAAAHIAAABpAAAAAAAAAFMAAABhAAAAdAAAAAAAAABKAAAAYQAAAG4AAAB1AAAAYQAAAHIAAAB5AAAAAAAAAEYAAABlAAAAYgAAAHIAAAB1AAAAYQAAAHIAAAB5AAAAAAAAAE0AAABhAAAAcgAAAGMAAABoAAAAAAAAAEEAAABwAAAAcgAAAGkAAABsAAAAAAAAAE0AAABhAAAAeQAAAAAAAABKAAAAdQAAAG4AAABlAAAAAAAAAEoAAAB1AAAAbAAAAHkAAAAAAAAAQQAAAHUAAABnAAAAdQAAAHMAAAB0AAAAAAAAAFMAAABlAAAAcAAAAHQAAABlAAAAbQAAAGIAAABlAAAAcgAAAAAAAABPAAAAYwAAAHQAAABvAAAAYgAAAGUAAAByAAAAAAAAAE4AAABvAAAAdgAAAGUAAABtAAAAYgAAAGUAAAByAAAAAAAAAEQAAABlAAAAYwAAAGUAAABtAAAAYgAAAGUAAAByAAAAAAAAAEoAAABhAAAAbgAAAAAAAABGAAAAZQAAAGIAAAAAAAAATQAAAGEAAAByAAAAAAAAAEEAAABwAAAAcgAAAAAAAABKAAAAdQAAAG4AAAAAAAAASgAAAHUAAABsAAAAAAAAAEEAAAB1AAAAZwAAAAAAAABTAAAAZQAAAHAAAAAAAAAATwAAAGMAAAB0AAAAAAAAAE4AAABvAAAAdgAAAAAAAABEAAAAZQAAAGMAAAAAAAAAQQAAAE0AAAAAAAAAUAAAAE0AAAAAAAAAAAAAAIxCBwDZGAAA2hgAANsYAADcGAAA3RgAAN4YAADfGAAAAAAAAHhDBwDpGAAA6hgAAOsYAADsGAAA7RgAAO4YAADvGAAA/////////////////////////////////////////////////////////////////wABAgMEBQYHCAn/////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP///////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAQIEBwMGBQAAAAAAAABMQ19DVFlQRQAAAABMQ19OVU1FUklDAABMQ19USU1FAAAAAABMQ19DT0xMQVRFAABMQ19NT05FVEFSWQBMQ19NRVNTQUdFUwAAAAAAAAAAAN4SBJUAAAAA////////////////ME8HABQAAABDLlVURi04AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGYHAMhmBwAFAAAAAAAAAAAAAAAeGAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkBAAAHxgAAAiTBwAABAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA/////woAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlbS8lZC8leQAAAAglSDolTTolUwAAAAgAQfDOHQvdByh1aW50MzJfdCByZXF1ZXN0SWQsIGNvbnN0IHVpbnQ4X3QqIGRhdGEsIGludCBkYXRhTGVuKTw6Oj57IHZhciBzb3VyY2VWaWV3ID0gTW9kdWxlWyJIRUFQOCJdLnN1YmFycmF5KGRhdGEsIGRhdGEgKyBkYXRhTGVuKTsgdmFyIGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KGRhdGFMZW4pOyBidWZmZXIuc2V0KHNvdXJjZVZpZXcpOyB2YXIgYmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdKTsgY3JlYXRlSW1hZ2VCaXRtYXAoYmxvYikgLnRoZW4oZnVuY3Rpb24oYm1wKSB7IHZhciBjYW52YXMgPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKGJtcC53aWR0aCwgYm1wLmhlaWdodCk7IHZhciBjdHgyZCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOyBjdHgyZC5kcmF3SW1hZ2UoYm1wLCAwLCAwKTsgdmFyIGltYWdlRGF0YSA9IGN0eDJkLmdldEltYWdlRGF0YSgwLCAwLCBibXAud2lkdGgsIGJtcC5oZWlnaHQpOyB2YXIgbnVtQnl0ZXMgPSBpbWFnZURhdGEuZGF0YS5sZW5ndGg7IHZhciBwdHIgPSBNb2R1bGUuX21hbGxvYyhudW1CeXRlcyk7IE1vZHVsZS5IRUFQVTguc2V0KGltYWdlRGF0YS5kYXRhLCBwdHIpOyBNb2R1bGUuX3dhc21faW1hZ2VfZGVjb2RlX2NvbXBsZXRlKHJlcXVlc3RJZCwgYm1wLndpZHRoLCBibXAuaGVpZ2h0LCBwdHIsIG51bUJ5dGVzKTsgfSkgLmNhdGNoKGZ1bmN0aW9uKGVycikgeyB2YXIgbXNnID0gZXJyLm1lc3NhZ2UgfHwgImRlY29kZSBmYWlsZWQiOyB2YXIgbXNnTGVuID0gTW9kdWxlLmxlbmd0aEJ5dGVzVVRGOChtc2cpICsgMTsgdmFyIG1zZ1B0ciA9IE1vZHVsZS5fbWFsbG9jKG1zZ0xlbik7IE1vZHVsZS5zdHJpbmdUb1VURjgobXNnLCBtc2dQdHIsIG1zZ0xlbik7IE1vZHVsZS5fd2FzbV9pbWFnZV9kZWNvZGVfZXJyb3IocmVxdWVzdElkLCBtc2dQdHIpOyBNb2R1bGUuX2ZyZWUobXNnUHRyKTsgfSk7IH0AKCk8Ojo+eyByZXR1cm4gQm9vbGVhbihuYXZpZ2F0b3IucGxhdGZvcm0uaW5kZXhPZignV2luJykgPiAtMSk7IH0AAEHN1h0LpDJ7IGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCAod2luZG93LkF1ZGlvQ29udGV4dCB8fCB3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0KSA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiAwOyB9IGlmICh0eXBlb2Yod2luZG93Lm1pbmlhdWRpbykgPT09ICd1bmRlZmluZWQnKSB7IHdpbmRvdy5taW5pYXVkaW8gPSB7IHJlZmVyZW5jZUNvdW50OiAwIH07IHdpbmRvdy5taW5pYXVkaW8uZGV2aWNlX3R5cGUgPSB7fTsgd2luZG93Lm1pbmlhdWRpby5kZXZpY2VfdHlwZS5wbGF5YmFjayA9ICQwOyB3aW5kb3cubWluaWF1ZGlvLmRldmljZV90eXBlLmNhcHR1cmUgPSAkMTsgd2luZG93Lm1pbmlhdWRpby5kZXZpY2VfdHlwZS5kdXBsZXggPSAkMjsgd2luZG93Lm1pbmlhdWRpby5kZXZpY2Vfc3RhdGUgPSB7fTsgd2luZG93Lm1pbmlhdWRpby5kZXZpY2Vfc3RhdGUuc3RvcHBlZCA9ICQzOyB3aW5kb3cubWluaWF1ZGlvLmRldmljZV9zdGF0ZS5zdGFydGVkID0gJDQ7IGxldCBtaW5pYXVkaW8gPSB3aW5kb3cubWluaWF1ZGlvOyBtaW5pYXVkaW8uZGV2aWNlcyA9IFtdOyBtaW5pYXVkaW8udHJhY2tfZGV2aWNlID0gZnVuY3Rpb24oZGV2aWNlKSB7IGZvciAodmFyIGlEZXZpY2UgPSAwOyBpRGV2aWNlIDwgbWluaWF1ZGlvLmRldmljZXMubGVuZ3RoOyArK2lEZXZpY2UpIHsgaWYgKG1pbmlhdWRpby5kZXZpY2VzW2lEZXZpY2VdID09IG51bGwpIHsgbWluaWF1ZGlvLmRldmljZXNbaURldmljZV0gPSBkZXZpY2U7IHJldHVybiBpRGV2aWNlOyB9IH0gbWluaWF1ZGlvLmRldmljZXMucHVzaChkZXZpY2UpOyByZXR1cm4gbWluaWF1ZGlvLmRldmljZXMubGVuZ3RoIC0gMTsgfTsgbWluaWF1ZGlvLnVudHJhY2tfZGV2aWNlX2J5X2luZGV4ID0gZnVuY3Rpb24oZGV2aWNlSW5kZXgpIHsgbWluaWF1ZGlvLmRldmljZXNbZGV2aWNlSW5kZXhdID0gbnVsbDsgd2hpbGUgKG1pbmlhdWRpby5kZXZpY2VzLmxlbmd0aCA+IDApIHsgaWYgKG1pbmlhdWRpby5kZXZpY2VzW21pbmlhdWRpby5kZXZpY2VzLmxlbmd0aC0xXSA9PSBudWxsKSB7IG1pbmlhdWRpby5kZXZpY2VzLnBvcCgpOyB9IGVsc2UgeyBicmVhazsgfSB9IH07IG1pbmlhdWRpby51bnRyYWNrX2RldmljZSA9IGZ1bmN0aW9uKGRldmljZSkgeyBmb3IgKHZhciBpRGV2aWNlID0gMDsgaURldmljZSA8IG1pbmlhdWRpby5kZXZpY2VzLmxlbmd0aDsgKytpRGV2aWNlKSB7IGlmIChtaW5pYXVkaW8uZGV2aWNlc1tpRGV2aWNlXSA9PSBkZXZpY2UpIHsgcmV0dXJuIG1pbmlhdWRpby51bnRyYWNrX2RldmljZV9ieV9pbmRleChpRGV2aWNlKTsgfSB9IH07IG1pbmlhdWRpby5nZXRfZGV2aWNlX2J5X2luZGV4ID0gZnVuY3Rpb24oZGV2aWNlSW5kZXgpIHsgcmV0dXJuIG1pbmlhdWRpby5kZXZpY2VzW2RldmljZUluZGV4XTsgfTsgbWluaWF1ZGlvLnVubG9ja19ldmVudF90eXBlcyA9IChmdW5jdGlvbigpeyByZXR1cm4gWyd0b3VjaGVuZCcsICdjbGljayddOyB9KSgpOyBtaW5pYXVkaW8udW5sb2NrID0gZnVuY3Rpb24oKSB7IGZvcih2YXIgaSA9IDA7IGkgPCBtaW5pYXVkaW8uZGV2aWNlcy5sZW5ndGg7ICsraSkgeyB2YXIgZGV2aWNlID0gbWluaWF1ZGlvLmRldmljZXNbaV07IGlmIChkZXZpY2UgIT0gbnVsbCAmJiBkZXZpY2Uud2ViYXVkaW8gIT0gbnVsbCAmJiBkZXZpY2Uuc3RhdGUgPT09IG1pbmlhdWRpby5kZXZpY2Vfc3RhdGUuc3RhcnRlZCkgeyBkZXZpY2Uud2ViYXVkaW8ucmVzdW1lKCkudGhlbigoKSA9PiB7IF9tYV9kZXZpY2VfX29uX25vdGlmaWNhdGlvbl91bmxvY2tlZChkZXZpY2UucERldmljZSk7IH0sIChlcnJvcikgPT4ge2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZXN1bWUgYXVkaW9jb250ZXh0IiwgZXJyb3IpOyB9KTsgfSB9IG1pbmlhdWRpby51bmxvY2tfZXZlbnRfdHlwZXMubWFwKGZ1bmN0aW9uKGV2ZW50X3R5cGUpIHsgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudF90eXBlLCBtaW5pYXVkaW8udW5sb2NrLCB0cnVlKTsgfSk7IH07IG1pbmlhdWRpby51bmxvY2tfZXZlbnRfdHlwZXMubWFwKGZ1bmN0aW9uKGV2ZW50X3R5cGUpIHsgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudF90eXBlLCBtaW5pYXVkaW8udW5sb2NrLCB0cnVlKTsgfSk7IH0gd2luZG93Lm1pbmlhdWRpby5yZWZlcmVuY2VDb3VudCArPSAxOyByZXR1cm4gMTsgfQB7IGlmICh0eXBlb2Yod2luZG93Lm1pbmlhdWRpbykgIT09ICd1bmRlZmluZWQnKSB7IHdpbmRvdy5taW5pYXVkaW8udW5sb2NrX2V2ZW50X3R5cGVzLm1hcChmdW5jdGlvbihldmVudF90eXBlKSB7IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRfdHlwZSwgd2luZG93Lm1pbmlhdWRpby51bmxvY2ssIHRydWUpOyB9KTsgd2luZG93Lm1pbmlhdWRpby5yZWZlcmVuY2VDb3VudCAtPSAxOyBpZiAod2luZG93Lm1pbmlhdWRpby5yZWZlcmVuY2VDb3VudCA9PT0gMCkgeyBkZWxldGUgd2luZG93Lm1pbmlhdWRpbzsgfSB9IH0AeyByZXR1cm4gKG5hdmlnYXRvci5tZWRpYURldmljZXMgIT09IHVuZGVmaW5lZCAmJiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSAhPT0gdW5kZWZpbmVkKTsgfQB7IHRyeSB7IHZhciB0ZW1wID0gbmV3ICh3aW5kb3cuQXVkaW9Db250ZXh0IHx8IHdpbmRvdy53ZWJraXRBdWRpb0NvbnRleHQpKCk7IHZhciBzYW1wbGVSYXRlID0gdGVtcC5zYW1wbGVSYXRlOyB0ZW1wLmNsb3NlKCk7IHJldHVybiBzYW1wbGVSYXRlOyB9IGNhdGNoKGUpIHsgcmV0dXJuIDA7IH0gfQB7IHZhciBkZXZpY2VUeXBlID0gJDA7IHZhciBjaGFubmVscyA9ICQxOyB2YXIgc2FtcGxlUmF0ZSA9ICQyOyB2YXIgYnVmZmVyU2l6ZSA9ICQzOyB2YXIgcEludGVybWVkaWFyeUJ1ZmZlciA9ICQ0OyB2YXIgcERldmljZSA9ICQ1OyBpZiAodHlwZW9mKHdpbmRvdy5taW5pYXVkaW8pID09PSAndW5kZWZpbmVkJykgeyByZXR1cm4gLTE7IH0gdmFyIGRldmljZSA9IHt9OyB2YXIgYXVkaW9Db250ZXh0T3B0aW9ucyA9IHt9OyBpZiAoZGV2aWNlVHlwZSA9PSB3aW5kb3cubWluaWF1ZGlvLmRldmljZV90eXBlLnBsYXliYWNrICYmIHNhbXBsZVJhdGUgIT0gMCkgeyBhdWRpb0NvbnRleHRPcHRpb25zLnNhbXBsZVJhdGUgPSBzYW1wbGVSYXRlOyB9IGRldmljZS53ZWJhdWRpbyA9IG5ldyAod2luZG93LkF1ZGlvQ29udGV4dCB8fCB3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0KShhdWRpb0NvbnRleHRPcHRpb25zKTsgZGV2aWNlLndlYmF1ZGlvLnN1c3BlbmQoKTsgZGV2aWNlLnN0YXRlID0gd2luZG93Lm1pbmlhdWRpby5kZXZpY2Vfc3RhdGUuc3RvcHBlZDsgdmFyIGNoYW5uZWxDb3VudEluID0gMDsgdmFyIGNoYW5uZWxDb3VudE91dCA9IGNoYW5uZWxzOyBpZiAoZGV2aWNlVHlwZSAhPSB3aW5kb3cubWluaWF1ZGlvLmRldmljZV90eXBlLnBsYXliYWNrKSB7IGNoYW5uZWxDb3VudEluID0gY2hhbm5lbHM7IH0gZGV2aWNlLnNjcmlwdE5vZGUgPSBkZXZpY2Uud2ViYXVkaW8uY3JlYXRlU2NyaXB0UHJvY2Vzc29yKGJ1ZmZlclNpemUsIGNoYW5uZWxDb3VudEluLCBjaGFubmVsQ291bnRPdXQpOyBkZXZpY2Uuc2NyaXB0Tm9kZS5vbmF1ZGlvcHJvY2VzcyA9IGZ1bmN0aW9uKGUpIHsgaWYgKGRldmljZS5pbnRlcm1lZGlhcnlCdWZmZXJWaWV3ID09IG51bGwgfHwgZGV2aWNlLmludGVybWVkaWFyeUJ1ZmZlclZpZXcubGVuZ3RoID09IDApIHsgZGV2aWNlLmludGVybWVkaWFyeUJ1ZmZlclZpZXcgPSBuZXcgRmxvYXQzMkFycmF5KEhFQVBGMzIuYnVmZmVyLCBwSW50ZXJtZWRpYXJ5QnVmZmVyLCBidWZmZXJTaXplICogY2hhbm5lbHMpOyB9IGlmIChkZXZpY2VUeXBlID09IHdpbmRvdy5taW5pYXVkaW8uZGV2aWNlX3R5cGUuY2FwdHVyZSB8fCBkZXZpY2VUeXBlID09IHdpbmRvdy5taW5pYXVkaW8uZGV2aWNlX3R5cGUuZHVwbGV4KSB7IGZvciAodmFyIGlDaGFubmVsID0gMDsgaUNoYW5uZWwgPCBjaGFubmVsczsgaUNoYW5uZWwgKz0gMSkgeyB2YXIgaW5wdXRCdWZmZXIgPSBlLmlucHV0QnVmZmVyLmdldENoYW5uZWxEYXRhKGlDaGFubmVsKTsgdmFyIGludGVybWVkaWFyeUJ1ZmZlciA9IGRldmljZS5pbnRlcm1lZGlhcnlCdWZmZXJWaWV3OyBmb3IgKHZhciBpRnJhbWUgPSAwOyBpRnJhbWUgPCBidWZmZXJTaXplOyBpRnJhbWUgKz0gMSkgeyBpbnRlcm1lZGlhcnlCdWZmZXJbaUZyYW1lKmNoYW5uZWxzICsgaUNoYW5uZWxdID0gaW5wdXRCdWZmZXJbaUZyYW1lXTsgfSB9IF9tYV9kZXZpY2VfcHJvY2Vzc19wY21fZnJhbWVzX2NhcHR1cmVfX3dlYmF1ZGlvKHBEZXZpY2UsIGJ1ZmZlclNpemUsIHBJbnRlcm1lZGlhcnlCdWZmZXIpOyB9IGlmIChkZXZpY2VUeXBlID09IHdpbmRvdy5taW5pYXVkaW8uZGV2aWNlX3R5cGUucGxheWJhY2sgfHwgZGV2aWNlVHlwZSA9PSB3aW5kb3cubWluaWF1ZGlvLmRldmljZV90eXBlLmR1cGxleCkgeyBfbWFfZGV2aWNlX3Byb2Nlc3NfcGNtX2ZyYW1lc19wbGF5YmFja19fd2ViYXVkaW8ocERldmljZSwgYnVmZmVyU2l6ZSwgcEludGVybWVkaWFyeUJ1ZmZlcik7IGZvciAodmFyIGlDaGFubmVsID0gMDsgaUNoYW5uZWwgPCBlLm91dHB1dEJ1ZmZlci5udW1iZXJPZkNoYW5uZWxzOyArK2lDaGFubmVsKSB7IHZhciBvdXRwdXRCdWZmZXIgPSBlLm91dHB1dEJ1ZmZlci5nZXRDaGFubmVsRGF0YShpQ2hhbm5lbCk7IHZhciBpbnRlcm1lZGlhcnlCdWZmZXIgPSBkZXZpY2UuaW50ZXJtZWRpYXJ5QnVmZmVyVmlldzsgZm9yICh2YXIgaUZyYW1lID0gMDsgaUZyYW1lIDwgYnVmZmVyU2l6ZTsgaUZyYW1lICs9IDEpIHsgb3V0cHV0QnVmZmVyW2lGcmFtZV0gPSBpbnRlcm1lZGlhcnlCdWZmZXJbaUZyYW1lKmNoYW5uZWxzICsgaUNoYW5uZWxdOyB9IH0gfSBlbHNlIHsgZm9yICh2YXIgaUNoYW5uZWwgPSAwOyBpQ2hhbm5lbCA8IGUub3V0cHV0QnVmZmVyLm51bWJlck9mQ2hhbm5lbHM7ICsraUNoYW5uZWwpIHsgZS5vdXRwdXRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoaUNoYW5uZWwpLmZpbGwoMC4wKTsgfSB9IH07IGlmIChkZXZpY2VUeXBlID09IHdpbmRvdy5taW5pYXVkaW8uZGV2aWNlX3R5cGUuY2FwdHVyZSB8fCBkZXZpY2VUeXBlID09IHdpbmRvdy5taW5pYXVkaW8uZGV2aWNlX3R5cGUuZHVwbGV4KSB7IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzpmYWxzZX0pIC50aGVuKGZ1bmN0aW9uKHN0cmVhbSkgeyBkZXZpY2Uuc3RyZWFtTm9kZSA9IGRldmljZS53ZWJhdWRpby5jcmVhdGVNZWRpYVN0cmVhbVNvdXJjZShzdHJlYW0pOyBkZXZpY2Uuc3RyZWFtTm9kZS5jb25uZWN0KGRldmljZS5zY3JpcHROb2RlKTsgZGV2aWNlLnNjcmlwdE5vZGUuY29ubmVjdChkZXZpY2Uud2ViYXVkaW8uZGVzdGluYXRpb24pOyB9KSAuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsgY29uc29sZS5sb2coIkZhaWxlZCB0byBnZXQgdXNlciBtZWRpYTogIiArIGVycm9yKTsgfSk7IH0gaWYgKGRldmljZVR5cGUgPT0gd2luZG93Lm1pbmlhdWRpby5kZXZpY2VfdHlwZS5wbGF5YmFjaykgeyBkZXZpY2Uuc2NyaXB0Tm9kZS5jb25uZWN0KGRldmljZS53ZWJhdWRpby5kZXN0aW5hdGlvbik7IH0gZGV2aWNlLnBEZXZpY2UgPSBwRGV2aWNlOyByZXR1cm4gd2luZG93Lm1pbmlhdWRpby50cmFja19kZXZpY2UoZGV2aWNlKTsgfQB7IHJldHVybiB3aW5kb3cubWluaWF1ZGlvLmdldF9kZXZpY2VfYnlfaW5kZXgoJDApLndlYmF1ZGlvLnNhbXBsZVJhdGU7IH0AeyB2YXIgZGV2aWNlID0gd2luZG93Lm1pbmlhdWRpby5nZXRfZGV2aWNlX2J5X2luZGV4KCQwKTsgaWYgKGRldmljZS5zY3JpcHROb2RlICE9PSB1bmRlZmluZWQpIHsgZGV2aWNlLnNjcmlwdE5vZGUub25hdWRpb3Byb2Nlc3MgPSBmdW5jdGlvbihlKSB7fTsgZGV2aWNlLnNjcmlwdE5vZGUuZGlzY29ubmVjdCgpOyBkZXZpY2Uuc2NyaXB0Tm9kZSA9IHVuZGVmaW5lZDsgfSBpZiAoZGV2aWNlLnN0cmVhbU5vZGUgIT09IHVuZGVmaW5lZCkgeyBkZXZpY2Uuc3RyZWFtTm9kZS5kaXNjb25uZWN0KCk7IGRldmljZS5zdHJlYW1Ob2RlID0gdW5kZWZpbmVkOyB9IGRldmljZS53ZWJhdWRpby5jbG9zZSgpOyBkZXZpY2Uud2ViYXVkaW8gPSB1bmRlZmluZWQ7IGRldmljZS5wRGV2aWNlID0gdW5kZWZpbmVkOyB9AHsgd2luZG93Lm1pbmlhdWRpby51bnRyYWNrX2RldmljZV9ieV9pbmRleCgkMCk7IH0AeyB2YXIgZGV2aWNlID0gd2luZG93Lm1pbmlhdWRpby5nZXRfZGV2aWNlX2J5X2luZGV4KCQwKTsgZGV2aWNlLndlYmF1ZGlvLnJlc3VtZSgpOyBkZXZpY2Uuc3RhdGUgPSB3aW5kb3cubWluaWF1ZGlvLmRldmljZV9zdGF0ZS5zdGFydGVkOyB9AHsgdmFyIGRldmljZSA9IHdpbmRvdy5taW5pYXVkaW8uZ2V0X2RldmljZV9ieV9pbmRleCgkMCk7IGRldmljZS53ZWJhdWRpby5zdXNwZW5kKCk7IGRldmljZS5zdGF0ZSA9IHdpbmRvdy5taW5pYXVkaW8uZGV2aWNlX3N0YXRlLnN0b3BwZWQ7IH0A";export{A as default}; diff --git a/apps/kimi-code/dist-web/assets/rive-CeXCFBdn.js b/apps/kimi-code/dist-web/assets/rive-CeXCFBdn.js deleted file mode 100644 index 870c461bd..000000000 --- a/apps/kimi-code/dist-web/assets/rive-CeXCFBdn.js +++ /dev/null @@ -1,20 +0,0 @@ -import{g as vi}from"./_commonjsHelpers-CqkleIqs.js";function pi(Wt,yn){for(var Lt=0;Ltst[Ae]})}}}return Object.freeze(Object.defineProperty(Wt,Symbol.toStringTag,{value:"Module"}))}var gn={exports:{}},mi=gn.exports,kr;function gi(){return kr||(kr=1,(function(Wt,yn){(function(st,Ae){Wt.exports=Ae()})(mi,()=>(()=>{var Lt=[,((pe,Y,I)=>{I.r(Y),I.d(Y,{Animation:()=>N.Animation});var N=I(2)}),((pe,Y,I)=>{I.r(Y),I.d(Y,{Animation:()=>N});var N=(function(){function se(k,E,w,c){this.animation=k,this.artboard=E,this.playing=c,this.loopCount=0,this.scrubTo=null,this.instance=new w.LinearAnimationInstance(k,E)}return Object.defineProperty(se.prototype,"name",{get:function(){return this.animation.name},enumerable:!1,configurable:!0}),Object.defineProperty(se.prototype,"time",{get:function(){return this.instance.time},set:function(k){this.instance.time=k},enumerable:!1,configurable:!0}),Object.defineProperty(se.prototype,"loopValue",{get:function(){return this.animation.loopValue},enumerable:!1,configurable:!0}),Object.defineProperty(se.prototype,"needsScrub",{get:function(){return this.scrubTo!==null},enumerable:!1,configurable:!0}),se.prototype.advance=function(k){this.scrubTo===null?this.instance.advance(k):(this.instance.time=0,this.instance.advance(this.scrubTo),this.scrubTo=null)},se.prototype.apply=function(k){this.instance.apply(k)},se.prototype.cleanup=function(){this.instance.delete()},se})()}),((pe,Y,I)=>{I.r(Y),I.d(Y,{RuntimeLoader:()=>E});var N=I(4),se=I(5),k=function(){return k=Object.assign||function(w){for(var c,z=1,x=arguments.length;z0;)(z=w.errorCallbackQueue.shift())===null||z===void 0||z(c);w.callBackQueue=[]},w.loadRuntime=function(){var c=w.wasmURL,z=w.wasmBinary;w.enablePerfMarks&&performance.mark("rive:wasm-init:start"),N.default(k({locateFile:function(){return c}},z?{wasmBinary:z}:{})).then(function(x){var D;for(w.enablePerfMarks&&(performance.mark("rive:wasm-init:end"),performance.measure("rive:wasm-init","rive:wasm-init:start","rive:wasm-init:end")),w.runtime=x,w.errorCallbackQueue=[];w.callBackQueue.length>0;)(D=w.callBackQueue.shift())===null||D===void 0||D(w.runtime)}).catch(function(x){var D={message:x?.message||"Unknown error",type:x?.name||"Error",wasmError:x instanceof WebAssembly.CompileError||x instanceof WebAssembly.RuntimeError,originalError:x};console.debug("Rive WASM load error details:",D);var ue=w.wasmFallbackURL,le=ue!==null&&c.toLowerCase()===ue.toLowerCase();if(ue!==null&&!le)console.warn("Failed to load WASM from ".concat(c," (").concat(D.message,"), trying fallback URL: ").concat(ue)),w.wasmBinary=null,w.setWasmUrl(ue),w.loadRuntime();else{var ie=le?"the configured WASM URL or its fallback (".concat(ue,")"):c,we=["Could not load Rive WASM file from ".concat(ie,"."),"Possible reasons:","- Network connection is down","- WebAssembly is not supported in this environment","- The WASM file is corrupted or incompatible",` -Error details:`,"- Type: ".concat(D.type),"- Message: ".concat(D.message),"- WebAssembly-specific error: ".concat(D.wasmError),` -To resolve, you may need to:`,"1. Check your network connection","2. Set a new WASM source via RuntimeLoader.setWasmUrl()","3. Call RuntimeLoader.awaitInstance() again"].join(` -`);console.error(we),w.notifyError(new Error(we))}})},w.getInstance=function(c,z){w.isLoading||(w.isLoading=!0,w.loadRuntime()),w.runtime?c(w.runtime):(w.callBackQueue.push(c),z&&w.errorCallbackQueue.push(z))},w.awaitInstance=function(){return new Promise(function(c,z){return w.getInstance(c,z)})},w.setWasmUrl=function(c){w.wasmURL=c},w.getWasmUrl=function(){return w.wasmURL},w.setWasmFallbackUrl=function(c){w.wasmFallbackURL=c},w.getWasmFallbackUrl=function(){return w.wasmFallbackURL},w.setWasmBinary=function(c){if(c instanceof ArrayBuffer||c===null){w.wasmBinary=c;return}console.error("setWasmBinary expects an ArrayBuffer or null")},w.getWasmBinary=function(){return w.wasmBinary},w.isLoading=!1,w.callBackQueue=[],w.wasmURL="https://unpkg.com/".concat(se.name,"@").concat(se.version,"/rive.wasm"),w.wasmFallbackURL="https://cdn.jsdelivr.net/npm/".concat(se.name,"@").concat(se.version,"/rive_fallback.wasm"),w.wasmBinary=null,w.errorCallbackQueue=[],w.enablePerfMarks=!1,w})()}),((pe,Y,I)=>{I.r(Y),I.d(Y,{default:()=>se});var N=(()=>{var k=typeof document<"u"?document.currentScript?.src:void 0;return(function(E={}){var w,c=E,z,x,D=new Promise((e,t)=>{z=e,x=t}),ue=typeof window=="object",le=typeof importScripts=="function";function ie(){function e(f){const h=o;r=t=0,o=new Map,h.forEach(g=>{try{g(f)}catch(m){console.error(m)}}),this.gb(),s&&s.Hb()}let t=0,r=0,o=new Map,s=null,l=null;this.requestAnimationFrame=function(f){t||=requestAnimationFrame(e.bind(this));const h=++r;return o.set(h,f),h},this.cancelAnimationFrame=function(f){o.delete(f),t&&o.size==0&&(cancelAnimationFrame(t),t=0)},this.Fb=function(f){l&&(document.body.remove(l),l=null),f||(l=document.createElement("div"),l.style.backgroundColor="black",l.style.position="fixed",l.style.right=0,l.style.top=0,l.style.color="white",l.style.padding="4px",l.innerHTML="RIVE FPS",f=function(h){l.innerHTML="RIVE FPS "+h.toFixed(1)},document.body.appendChild(l)),s=new function(){let h=0,g=0;this.Hb=function(){var m=performance.now();g?(++h,m-=g,1e3>e,t.has(o)&&clearTimeout(t.get(o)),t.set(o,setTimeout(function(){t.delete(o),t.length==0?r=-1/0:o==r&&(r=Math.max(...t.keys()),console.assert(r{let f=c.ptrToFileAsset(l);return f.isImage?c.ptrToImageAsset(l):f.isFont?c.ptrToFontAsset(l):f.isAudio?c.ptrToAudioAsset(l):f},c.CustomFileAssetLoader=o.extend("CustomFileAssetLoader",{__construct:function({loadContents:l}){this.__parent.__construct.call(this),this.ub=l},loadContents:function(l,f){return l=c.ptrToAsset(l),this.ub(l,f)}}),c.CDNFileAssetLoader=o.extend("CDNFileAssetLoader",{__construct:function(){this.__parent.__construct.call(this)},loadContents:function(l){let f=c.ptrToAsset(l);return l=f.cdnUuid,l===""?!1:((function(h,g){var m=new XMLHttpRequest;m.responseType="arraybuffer",m.onreadystatechange=function(){m.readyState==4&&m.status==200&&g(m)},m.open("GET",h,!0),m.send(null)})(f.cdnBaseUrl+"/"+l,h=>{f.decode(new Uint8Array(h.response))}),!0)}}),c.FallbackFileAssetLoader=o.extend("FallbackFileAssetLoader",{__construct:function(){this.__parent.__construct.call(this),this.bb=[]},addLoader:function(l){this.bb.push(l)},loadContents:function(l,f){for(let h of this.bb)if(h.loadContents(l,f))return!0;return!1}});let s=c.computeAlignment;c.computeAlignment=function(l,f,h,g,m=1){return s.call(this,l,f,h,g,m)}};const He="createConicGradient createImageData createLinearGradient createPattern createRadialGradient getContextAttributes getImageData getLineDash getTransform isContextLost isPointInPath isPointInStroke measureText".split(" "),ze=new function(){function e(){if(!t){let G=function(ee,P,de){if(P=_.createShader(P),_.shaderSource(P,de),_.compileShader(P),de=_.getShaderInfoLog(P),0<(de||"").length)throw de;_.attachShader(ee,P)};var v=document.createElement("canvas"),C={alpha:1,depth:0,stencil:0,antialias:0,premultipliedAlpha:1,preserveDrawingBuffer:0,powerPreference:"high-performance",failIfMajorPerformanceCaveat:0,enableExtensionsByDefault:1,explicitSwapControl:1,renderViaOffscreenBackBuffer:1};let _;if(/iPhone|iPad|iPod/i.test(navigator.userAgent)){if(_=v.getContext("webgl",C),r=1,!_)return console.log("No WebGL support. Image mesh will not be drawn."),!1}else if(_=v.getContext("webgl2",C))r=2;else if(_=v.getContext("webgl",C))r=1;else return console.log("No WebGL support. Image mesh will not be drawn."),!1;if(_=new Proxy(_,{get(ee,P){if(ee.isContextLost()){if(g||(console.error("Cannot render the mesh because the GL Context was lost. Tried to invoke ",P),g=!0),typeof ee[P]=="function")return function(){}}else return typeof ee[P]=="function"?function(...de){return ee[P].apply(ee,de)}:ee[P]},set(ee,P,de){if(ee.isContextLost())g||(console.error("Cannot render the mesh because the GL Context was lost. Tried to set property "+P),g=!0);else return ee[P]=de,!0}}),o=Math.min(_.getParameter(_.MAX_RENDERBUFFER_SIZE),_.getParameter(_.MAX_TEXTURE_SIZE)),v=_.createProgram(),G(v,_.VERTEX_SHADER,`attribute vec2 vertex; - attribute vec2 uv; - uniform vec4 mat; - uniform vec2 translate; - varying vec2 st; - void main() { - st = uv; - gl_Position = vec4(mat2(mat) * vertex + translate, 0, 1); - }`),G(v,_.FRAGMENT_SHADER,`precision highp float; - uniform sampler2D image; - varying vec2 st; - void main() { - gl_FragColor = texture2D(image, st); - }`),_.bindAttribLocation(v,0,"vertex"),_.bindAttribLocation(v,1,"uv"),_.linkProgram(v),C=_.getProgramInfoLog(v),0<(C||"").trim().length)throw C;s=_.getUniformLocation(v,"mat"),l=_.getUniformLocation(v,"translate"),_.useProgram(v),_.bindBuffer(_.ARRAY_BUFFER,_.createBuffer()),_.enableVertexAttribArray(0),_.enableVertexAttribArray(1),_.bindBuffer(_.ELEMENT_ARRAY_BUFFER,_.createBuffer()),_.uniform1i(_.getUniformLocation(v,"image"),0),_.pixelStorei(_.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),t=_}return!0}let t=null,r=0,o=0,s=null,l=null,f=0,h=0,g=!1;e(),this.Tb=function(){return e(),o},this.Bb=function(v){t.deleteTexture&&t.deleteTexture(v)},this.Ab=function(v){if(!e())return null;const C=t.createTexture();return C?(t.bindTexture(t.TEXTURE_2D,C),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,v),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),r==2?(t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR_MIPMAP_LINEAR),t.generateMipmap(t.TEXTURE_2D)):t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),C):null};const m=new we(8),A=new we(8),R=new we(10),j=new we(10);this.Eb=function(v,C,_,G,ee){if(e()){var P=m.push(v),de=A.push(C);if(t.canvas){(t.canvas.width!=P||t.canvas.height!=de)&&(t.canvas.width=P,t.canvas.height=de),t.viewport(0,de-C,v,C),t.disable(t.SCISSOR_TEST),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.enable(t.SCISSOR_TEST),_.sort((re,ot)=>ot.nb-re.nb),P=R.push(G),f!=P&&(t.bufferData(t.ARRAY_BUFFER,8*P,t.DYNAMIC_DRAW),f=P),P=0;for(var Ce of _)t.bufferSubData(t.ARRAY_BUFFER,P,Ce.La),P+=4*Ce.La.length;console.assert(P==4*G);for(var Ye of _)t.bufferSubData(t.ARRAY_BUFFER,P,Ye.rb),P+=4*Ye.rb.length;console.assert(P==8*G),P=j.push(ee),h!=P&&(t.bufferData(t.ELEMENT_ARRAY_BUFFER,2*P,t.DYNAMIC_DRAW),h=P),Ce=0;for(var Rt of _)t.bufferSubData(t.ELEMENT_ARRAY_BUFFER,Ce,Rt.indices),Ce+=2*Rt.indices.length;console.assert(Ce==2*ee),Rt=0,Ye=!0,P=Ce=0;for(const re of _){re.image.Da!=Rt&&(t.bindTexture(t.TEXTURE_2D,re.image.Ca||null),Rt=re.image.Da),re.Yb?(t.scissor(re.Ra,de-re.Sa-re.ab,re.kc,re.ab),Ye=!0):Ye&&(t.scissor(0,de-C,v,C),Ye=!1),_=2/v;const ot=-2/C;t.uniform4f(s,re.da[0]*_*re.ua,re.da[1]*ot*re.va,re.da[2]*_*re.ua,re.da[3]*ot*re.va),t.uniform2f(l,re.da[4]*_*re.ua+_*(re.Ra-re.Ub*re.ua)-1,re.da[5]*ot*re.va+ot*(re.Sa-re.Vb*re.va)+1),t.vertexAttribPointer(0,2,t.FLOAT,!1,0,P),t.vertexAttribPointer(1,2,t.FLOAT,!1,0,P+4*G),t.drawElements(t.TRIANGLES,re.indices.length,t.UNSIGNED_SHORT,Ce),P+=4*re.La.length,Ce+=2*re.indices.length}console.assert(P==4*G),console.assert(Ce==2*ee)}}},this.canvas=function(){return e()&&t.canvas}},L=c.onRuntimeInitialized;c.onRuntimeInitialized=function(){function e(b){switch(b){case m.srcOver:return"source-over";case m.screen:return"screen";case m.overlay:return"overlay";case m.darken:return"darken";case m.lighten:return"lighten";case m.colorDodge:return"color-dodge";case m.colorBurn:return"color-burn";case m.hardLight:return"hard-light";case m.softLight:return"soft-light";case m.difference:return"difference";case m.exclusion:return"exclusion";case m.multiply:return"multiply";case m.hue:return"hue";case m.saturation:return"saturation";case m.color:return"color";case m.luminosity:return"luminosity"}}function t(b){return"rgba("+((16711680&b)>>>16)+","+((65280&b)>>>8)+","+((255&b)>>>0)+","+((4278190080&b)>>>24)/255+")"}function r(){0b)throw"restore() called without matching save().";this.P.splice(b),this.D.pop(),this.G.push(this.A.restore.bind(this.A))},transform:function(b,F,te,Q,$,q){const K=this.P,ve=K.length-6;K.splice(ve,6,K[ve]*b+K[ve+2]*F,K[ve+1]*b+K[ve+3]*F,K[ve]*te+K[ve+2]*Q,K[ve+1]*te+K[ve+3]*Q,K[ve]*$+K[ve+2]*q+K[ve+4],K[ve+1]*$+K[ve+3]*q+K[ve+5]),this.G.push(this.A.transform.bind(this.A,b,F,te,Q,$,q))},rotate:function(b){const F=Math.sin(b);b=Math.cos(b),this.transform(b,F,-F,b,0,0)},modulateOpacity:function(b){this.D[this.D.length-1]*=b},_drawPath:function(b,F){this.G.push(F.draw.bind(F,this.A,b.R,b.Na===j?"evenodd":"nonzero",Math.max(0,this.D[this.D.length-1])))},_drawRiveImage:function(b,F,te,Q){var $=b.tb;if($){var q=this.A,K=e(te),ve=Math.max(0,Q*this.D[this.D.length-1]);this.G.push(function(){q.globalCompositeOperation=K,q.globalAlpha=ve,q.drawImage($,0,0),q.globalAlpha=1})}},_getMatrix:function(b){const F=this.P,te=F.length-6;for(let Q=0;6>Q;++Q)b[Q]=F[te+Q]},_drawImageMesh:function(b,F,te,Q,$,q,K,ve,xt,Se,qe,mt,et,at){let Fr,Ir,Pr;try{Fr=c.HEAPF32.slice($>>2,($>>2)+q),Ir=c.HEAPF32.slice(K>>2,(K>>2)+ve),Pr=c.HEAPU16.slice(xt>>1,(xt>>1)+Se)}catch{console.error("[Rive] _drawImageMesh: failed to read mesh data from WASM heap. Mesh skipped for this frame.");return}F=this.A.canvas.width,$=this.A.canvas.height,K=et-qe,ve=at-mt,qe=Math.max(qe,0),mt=Math.max(mt,0),et=Math.min(et,F),at=Math.min(at,$);const Jt=et-qe,Zt=at-mt;if(console.assert(Jt<=Math.min(K,F)),console.assert(Zt<=Math.min(ve,$)),!(0>=Jt||0>=Zt)){et=Jt$&&(at*=$/Et,Et=$),kt>$&&(F*=$/kt,kt=$),P||(P=new c.DynamicRectanizer($),P.reset(512,512)),$=P.addRect(Et,kt),0>$&&(r(),ee.add(this),$=P.addRect(Et,kt),console.assert(0<=$));var Rr=$&65535,Er=$>>16;de.push({da:this.P.slice(this.P.length-6),image:b,Ra:Rr,Sa:Er,Ub:qe,Vb:mt,kc:Et,ab:kt,ua:at,va:F,La:Fr,rb:Ir,indices:Pr,Yb:et,nb:b.Da<<1|(et?1:0)}),Ce+=q,Ye+=Se;var Dt=this.A,di=e(te),hi=Math.max(0,Q*this.D[this.D.length-1]);this.G.push(function(){Dt.save(),Dt.resetTransform(),Dt.globalCompositeOperation=di,Dt.globalAlpha=hi;const Vn=ze.canvas();Vn&&Dt.drawImage(Vn,Rr,Er,Et,kt,qe,mt,Jt,Zt),Dt.restore()})}},_clipPath:function(b){this.G.push(this.A.clip.bind(this.A,b.R,b.Na===j?"evenodd":"nonzero"))},clear:function(){ee.add(this),this.G.push(this.A.clearRect.bind(this.A,0,0,this.Ma.width,this.Ma.height))},flush:function(){},translate:function(b,F){this.transform(1,0,0,1,b,F)}});c.makeRenderer=function(b){const F=new Rt(b),te=F.A;return new Proxy(F,{get(Q,$){if(typeof Q[$]=="function")return function(...q){return Q[$].apply(Q,q)};if(typeof te[$]=="function"){if(-1{te[$]=q}),!0}})},c.decodeImage=function(b,F){new C({ha:F}).decode(b)},c.renderFactory={makeRenderPaint:function(){return new G},makeRenderPath:function(){return new _},makeRenderImage:function(){let b=ot;return new C({sa:()=>{b.total++},ha:()=>{if(b.loaded++,b.loaded===b.total){const F=b.ready;F&&(F(),b.ready=null)}}})}};let re=c.load,ot=null;c.load=function(b,F,te=!0){const Q=new c.FallbackFileAssetLoader;return F!==void 0&&Q.addLoader(F),te&&(F=new c.CDNFileAssetLoader,Q.addLoader(F)),new Promise(function($){let q=null;ot={total:0,loaded:0,ready:function(){$(q)}},q=re(b,Q),ot.total==0&&$(q)})};let fi=c.RendererWrapper.prototype.align;c.RendererWrapper.prototype.align=function(b,F,te,Q,$=1){fi.call(this,b,F,te,Q,$)},o=new ie,c.requestAnimationFrame=o.requestAnimationFrame.bind(o),c.cancelAnimationFrame=o.cancelAnimationFrame.bind(o),c.enableFPSCounter=o.Fb.bind(o),c.disableFPSCounter=o.Cb,o.gb=r,c.resolveAnimationFrame=r,c.cleanup=function(){P&&P.delete()}};var T=Object.assign({},c),Z="./this.program",M="",Ie,Pe;(ue||le)&&(le?M=self.location.href:typeof document<"u"&&document.currentScript&&(M=document.currentScript.src),k&&(M=k),M.startsWith("blob:")?M="":M=M.substr(0,M.replace(/[?#].*/,"").lastIndexOf("/")+1),le&&(Pe=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),Ie=(e,t,r)=>{if(yt(e)){var o=new XMLHttpRequest;o.open("GET",e,!0),o.responseType="arraybuffer",o.onload=()=>{o.status==200||o.status==0&&o.response?t(o.response):r()},o.onerror=r,o.send(null)}else fetch(e,{credentials:"same-origin"}).then(s=>s.ok?s.arrayBuffer():Promise.reject(Error(s.status+" : "+s.url))).then(t,r)});var gt=c.print||console.log.bind(console),_e=c.printErr||console.error.bind(console);Object.assign(c,T),T=null,c.thisProgram&&(Z=c.thisProgram);var je;c.wasmBinary&&(je=c.wasmBinary);var Ve,At=!1,oe,ne,Re,Ue,U,J,Ge,tt;function ge(){var e=Ve.buffer;c.HEAP8=oe=new Int8Array(e),c.HEAP16=Re=new Int16Array(e),c.HEAPU8=ne=new Uint8Array(e),c.HEAPU16=Ue=new Uint16Array(e),c.HEAP32=U=new Int32Array(e),c.HEAPU32=J=new Uint32Array(e),c.HEAPF32=Ge=new Float32Array(e),c.HEAPF64=tt=new Float64Array(e)}var xe=[],Ee=[],Le=[];function Tt(){var e=c.preRun.shift();xe.unshift(e)}var De=0,Ke=null;function ut(e){throw c.onAbort?.(e),e="Aborted("+e+")",_e(e),At=!0,e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info."),x(e),e}var lt=e=>e.startsWith("data:application/octet-stream;base64,"),yt=e=>e.startsWith("file://"),wt;function ct(e){if(e==wt&&je)return new Uint8Array(je);if(Pe)return Pe(e);throw"both async and sync fetching of the wasm failed"}function Ct(e){return je?Promise.resolve().then(()=>ct(e)):new Promise((t,r)=>{Ie(e,o=>t(new Uint8Array(o)),()=>{try{t(ct(e))}catch(o){r(o)}})})}function Te(e,t,r){return Ct(e).then(o=>WebAssembly.instantiate(o,t)).then(r,o=>{_e(`failed to asynchronously prepare wasm: ${o}`),ut(o)})}function Mt(e,t){var r=wt;return je||typeof WebAssembly.instantiateStreaming!="function"||lt(r)||yt(r)||typeof fetch!="function"?Te(r,e,t):fetch(r,{credentials:"same-origin"}).then(o=>WebAssembly.instantiateStreaming(o,e).then(t,function(s){return _e(`wasm streaming compile failed: ${s}`),_e("falling back to ArrayBuffer instantiation"),Te(r,e,t)}))}var Je,ye,ae={486221:(e,t,r,o,s)=>{if(typeof window>"u"||(window.AudioContext||window.webkitAudioContext)===void 0)return 0;if(typeof window.miniaudio>"u"){window.miniaudio={referenceCount:0},window.miniaudio.device_type={},window.miniaudio.device_type.playback=e,window.miniaudio.device_type.capture=t,window.miniaudio.device_type.duplex=r,window.miniaudio.device_state={},window.miniaudio.device_state.stopped=o,window.miniaudio.device_state.started=s;let l=window.miniaudio;l.devices=[],l.track_device=function(f){for(var h=0;h{yr(h.hb)},g=>{console.error("Failed to resume audiocontext",g)})}l.unlock_event_types.map(function(g){document.removeEventListener(g,l.unlock,!0)})},l.unlock_event_types.map(function(f){document.addEventListener(f,l.unlock,!0)})}return window.miniaudio.referenceCount+=1,1},488399:()=>{typeof window.miniaudio<"u"&&(window.miniaudio.unlock_event_types.map(function(e){document.removeEventListener(e,window.miniaudio.unlock,!0)}),--window.miniaudio.referenceCount,window.miniaudio.referenceCount===0&&delete window.miniaudio)},488703:()=>navigator.mediaDevices!==void 0&&navigator.mediaDevices.getUserMedia!==void 0,488807:()=>{try{var e=new(window.AudioContext||window.webkitAudioContext),t=e.sampleRate;return e.close(),t}catch{return 0}},488978:(e,t,r,o,s,l)=>{if(typeof window.miniaudio>"u")return-1;var f={},h={};return e==window.miniaudio.device_type.playback&&r!=0&&(h.sampleRate=r),f.I=new(window.AudioContext||window.webkitAudioContext)(h),f.I.suspend(),f.state=window.miniaudio.device_state.stopped,r=0,e!=window.miniaudio.device_type.playback&&(r=t),f.W=f.I.createScriptProcessor(o,r,t),f.W.onaudioprocess=function(g){if((f.na==null||f.na.length==0)&&(f.na=new Float32Array(Ge.buffer,s,o*t)),e==window.miniaudio.device_type.capture||e==window.miniaudio.device_type.duplex){for(var m=0;mwindow.miniaudio.get_device_by_index(e).I.sampleRate,491928:e=>{e=window.miniaudio.get_device_by_index(e),e.W!==void 0&&(e.W.onaudioprocess=function(){},e.W.disconnect(),e.W=void 0),e.wa!==void 0&&(e.wa.disconnect(),e.wa=void 0),e.I.close(),e.I=void 0,e.hb=void 0},492328:e=>{window.miniaudio.untrack_device_by_index(e)},492378:e=>{e=window.miniaudio.get_device_by_index(e),e.I.resume(),e.state=window.miniaudio.device_state.started},492517:e=>{e=window.miniaudio.get_device_by_index(e),e.I.suspend(),e.state=window.miniaudio.device_state.stopped}},a=e=>{for(;0>2];return Nt+=4,e}var i=(e,t)=>{for(var r=0,o=e.length-1;0<=o;o--){var s=e[o];s==="."?e.splice(o,1):s===".."?(e.splice(o,1),r++):r&&(e.splice(o,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},u=e=>{var t=e.charAt(0)==="/",r=e.substr(-1)==="/";return(e=i(e.split("/").filter(o=>!!o),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},d=e=>{var t=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1);return e=t[0],t=t[1],!e&&!t?".":(t&&=t.substr(0,t.length-1),e+t)},p=e=>{if(e==="/")return"/";e=u(e),e=e.replace(/\/$/,"");var t=e.lastIndexOf("/");return t===-1?e:e.substr(t+1)},y=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return e=>crypto.getRandomValues(e);ut("initRandomDevice")},S=e=>(S=y())(e),V=(...e)=>{for(var t="",r=!1,o=e.length-1;-1<=o&&!r;o--){if(r=0<=o?e[o]:"/",typeof r!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!r)return"";t=r+"/"+t,r=r.charAt(0)==="/"}return t=i(t.split("/").filter(s=>!!s),!r).join("/"),(r?"/":"")+t||"."},O=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,B=(e,t,r)=>{var o=t+r;for(r=t;e[r]&&!(r>=o);)++r;if(16s?o+=String.fromCharCode(s):(s-=65536,o+=String.fromCharCode(55296|s>>10,56320|s&1023))}}else o+=String.fromCharCode(s)}return o},me=[],Me=e=>{for(var t=0,r=0;r=o?t++:2047>=o?t+=2:55296<=o&&57343>=o?(t+=4,++r):t+=3}return t},fe=(e,t,r,o)=>{if(!(0=f){var h=e.charCodeAt(++l);f=65536+((f&1023)<<10)|h&1023}if(127>=f){if(r>=o)break;t[r++]=f}else{if(2047>=f){if(r+1>=o)break;t[r++]=192|f>>6}else{if(65535>=f){if(r+2>=o)break;t[r++]=224|f>>12}else{if(r+3>=o)break;t[r++]=240|f>>18,t[r++]=128|f>>12&63}t[r++]=128|f>>6&63}t[r++]=128|f&63}}return t[r]=0,r-s};function We(e,t){var r=Array(Me(e)+1);return e=fe(e,r,0,r.length),t&&(r.length=e),r}var Be=[];function Ze(e,t){Be[e]={input:[],F:[],T:t},bn(e,nt)}var nt={open(e){var t=Be[e.node.ta];if(!t)throw new W(43);e.o=t,e.seekable=!1},close(e){e.o.T.la(e.o)},la(e){e.o.T.la(e.o)},read(e,t,r,o){if(!e.o||!e.o.T.$a)throw new W(60);for(var s=0,l=0;l=t||(t=Math.max(t,r*(1048576>r?2:1.125)>>>0),r!=0&&(t=Math.max(t,256)),r=e.j,e.j=new Uint8Array(t),0=e.node.u)return 0;if(e=Math.min(e.node.u-s,o),8t)throw new W(28);return t},Qa(e,t,r){Ne(e.node,t+r),e.node.u=Math.max(e.node.u,t+r)},cb(e,t,r,o,s){if((e.node.mode&61440)!==32768)throw new W(43);if(e=e.node.j,s&2||e.buffer!==oe.buffer){if((0{var r=0;return e&&(r|=365),t&&(r|=146),r},ce=null,Un={},Bt=[],Tr=1,Vt=null,Nn=!0,W=class{constructor(e){this.name="ErrnoError",this.Y=e}},wn={},Or=class{constructor(){this.ma={},this.node=null}get flags(){return this.ma.flags}set flags(e){this.ma.flags=e}get position(){return this.ma.position}set position(e){this.ma.position=e}},Sr=class{constructor(e,t,r,o){e||=this,this.parent=e,this.S=e.S,this.ra=null,this.id=Tr++,this.name=t,this.mode=r,this.i={},this.l={},this.ta=o}get read(){return(this.mode&365)===365}set read(e){e?this.mode|=365:this.mode&=-366}get write(){return(this.mode&146)===146}set write(e){e?this.mode|=146:this.mode&=-147}};function Ft(e,t={}){if(e=V(e),!e)return{path:"",node:null};if(t=Object.assign({Za:!0,Ia:0},t),8!!f);for(var r=ce,o="/",s=0;s>>0)%Vt.length}function qt(e,t){var r=(e.mode&61440)===16384?(r=en(e,"x"))?r:e.i.ga?0:2:54;if(r)throw new W(r);for(r=Vt[Yn(e.id,t)];r;r=r.Xb){var o=r.name;if(r.parent.id===e.id&&o===t)return r}return e.i.ga(e,t)}function Hn(e,t,r,o){return e=new Sr(e,t,r,o),t=Yn(e.parent.id,e.name),e.Xb=Vt[t],Vt[t]=e}function zn(e){var t=["r","w","rw"][e&3];return e&512&&(t+="w"),t}function en(e,t){if(Nn)return 0;if(!t.includes("r")||e.mode&292){if(t.includes("w")&&!(e.mode&146)||t.includes("x")&&!(e.mode&73))return 2}else return 2;return 0}function Xn(e,t){try{return qt(e,t),20}catch{}return en(e,"wx")}function bt(e){if(e=Bt[e],!e)throw new W(8);return e}function Gn(e,t=-1){if(e=Object.assign(new Or,e),t==-1)e:{for(t=0;4096>=t;t++)if(!Bt[t])break e;throw new W(33)}return e.U=t,Bt[t]=e}function jr(e,t=-1){return e=Gn(e,t),e.l?.zc?.(e),e}var xr={open(e){e.l=Un[e.node.ta].l,e.l.open?.(e)},Z(){throw new W(70)}};function bn(e,t){Un[e]={l:t}}function Kn(e,t){var r=t==="/";if(r&&ce)throw new W(10);if(!r&&t){var o=Ft(t,{Za:!1});if(t=o.path,o=o.node,o.ra)throw new W(10);if((o.mode&61440)!==16384)throw new W(54)}t={type:e,Ic:{},eb:t,Wb:[]},e=e.S(t),e.S=t,t.root=e,r?ce=e:o&&(o.ra=t,o.S&&o.S.Wb.push(t))}function _n(e,t,r){var o=Ft(e,{parent:!0}).node;if(e=p(e),!e||e==="."||e==="..")throw new W(28);var s=Xn(o,e);if(s)throw new W(s);if(!o.i.qa)throw new W(63);return o.i.qa(o,e,t,r)}function ft(e){return _n(e,16895,0)}function tn(e,t,r){typeof r>"u"&&(r=t,t=438),_n(e,t|8192,r)}function An(e,t){if(!V(e))throw new W(44);var r=Ft(t,{parent:!0}).node;if(!r)throw new W(44);t=p(t);var o=Xn(r,t);if(o)throw new W(o);if(!r.i.xa)throw new W(63);r.i.xa(r,t,e)}function Dr(e){if(e=Ft(e).node,!e)throw new W(44);if(!e.i.ia)throw new W(28);return V($n(e.parent),e.i.ia(e))}function nn(e,t,r){if(e==="")throw new W(44);if(typeof t=="string"){var o={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[t];if(typeof o>"u")throw Error(`Unknown file open mode: ${t}`);t=o}if(r=t&64?(typeof r>"u"?438:r)&4095|32768:0,typeof e=="object")var s=e;else{e=u(e);try{s=Ft(e,{Ya:!(t&131072)}).node}catch{}}if(o=!1,t&64)if(s){if(t&128)throw new W(20)}else s=_n(e,r,0),o=!0;if(!s)throw new W(44);if((s.mode&61440)===8192&&(t&=-513),t&65536&&(s.mode&61440)!==16384)throw new W(54);if(!o&&(r=s?(s.mode&61440)===40960?32:(s.mode&61440)===16384&&(zn(t)!=="r"||t&512)?31:en(s,zn(t)):44))throw new W(r);if(t&512&&!o){if(r=s,r=typeof r=="string"?Ft(r,{Ya:!0}).node:r,!r.i.N)throw new W(63);if((r.mode&61440)===16384)throw new W(31);if((r.mode&61440)!==32768)throw new W(28);if(o=en(r,"w"))throw new W(o);r.i.N(r,{size:0,timestamp:Date.now()})}return t&=-131713,s=Gn({node:s,path:$n(s),flags:t,seekable:!0,position:0,l:s.l,jc:[],error:!1}),s.l.open&&s.l.open(s),!c.logReadFiles||t&1||(Cn||={},e in Cn||(Cn[e]=1)),s}function Jn(e,t,r){if(e.U===null)throw new W(8);if(!e.seekable||!e.l.Z)throw new W(70);if(r!=0&&r!=1&&r!=2)throw new W(28);e.position=e.l.Z(e,t,r),e.jc=[]}var Zn;function Ut(e,t,r){e=u("/dev/"+e);var o=Qt(!!t,!!r);Qn||=64;var s=Qn++<<8|0;bn(s,{open(l){l.seekable=!1},close(){r?.buffer?.length&&r(10)},read(l,f,h,g){for(var m=0,A=0;AObject.defineProperty(t,"name",{value:e}),Mn=[],dt=[],H,Qe=e=>{if(!e)throw new H("Cannot use deleted val. handle = "+e);return dt[e]},rt=e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:const t=Mn.pop()||dt.length;return dt[t]=e,dt[t+1]=1,t}},qn=e=>{var t=Error,r=Ot(e,function(o){this.name=e,this.message=o,o=Error(o).stack,o!==void 0&&(this.stack=this.toString()+` -`+o.replace(/^Error(:[^\n]*)?\n/,""))});return r.prototype=Object.create(t.prototype),r.prototype.constructor=r,r.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},r},er,tr,be=e=>{for(var t="";ne[e];)t+=tr[ne[e++]];return t},$t=[],Fn=()=>{for(;$t.length;){var e=$t.pop();e.g.ca=!1,e.delete()}},Yt,ht={},In=(e,t)=>{if(t===void 0)throw new H("ptr should not be undefined");for(;e.B;)t=e.ja(t),e=e.B;return t},Pt={},nr=e=>{e=gr(e);var t=be(e);return pt(e),t},Ht=(e,t)=>{var r=Pt[e];if(r===void 0)throw e=`${t} has unknown type ${nr(e)}`,new H(e);return r},rn=()=>{},Pn=!1,rr=(e,t,r)=>t===r?e:r.B===void 0?null:(e=rr(e,t,r.B),e===null?null:r.Db(e)),ir={},Wr=(e,t)=>(t=In(e,t),ht[t]),zt,on=(e,t)=>{if(!t.s||!t.m)throw new zt("makeClassHandle requires ptr and ptrType");if(!!t.H!=!!t.C)throw new zt("Both smartPtrType and smartPtr must be specified");return t.count={value:1},St(Object.create(e,{g:{value:t,writable:!0}}))},St=e=>typeof FinalizationRegistry>"u"?(St=t=>t,e):(Pn=new FinalizationRegistry(t=>{t=t.g,--t.count.value,t.count.value===0&&(t.C?t.H.M(t.C):t.s.h.M(t.m))}),St=t=>{var r=t.g;return r.C&&Pn.register(t,{g:r},t),t},rn=t=>{Pn.unregister(t)},St(e)),an={},Xt=e=>{for(;e.length;){var t=e.pop();e.pop()(t)}};function Gt(e){return this.fromWireType(J[e>>2])}var jt={},sn={},$e=(e,t,r)=>{function o(h){if(h=r(h),h.length!==e.length)throw new zt("Mismatched type converter count");for(var g=0;g{Pt.hasOwnProperty(h)?s[g]=Pt[h]:(l.push(h),jt.hasOwnProperty(h)||(jt[h]=[]),jt[h].push(()=>{s[g]=Pt[h],++f,f===l.length&&o(s)}))}),l.length===0&&o(s)};function Br(e,t,r={}){var o=t.name;if(!e)throw new H(`type "${o}" must have a positive integer typeid pointer`);if(Pt.hasOwnProperty(e)){if(r.Nb)return;throw new H(`Cannot register type '${o}' twice`)}Pt[e]=t,delete sn[e],jt.hasOwnProperty(e)&&(t=jt[e],delete jt[e],t.forEach(s=>s()))}function it(e,t,r={}){if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");return Br(e,t,r)}var Rn=e=>{throw new H(e.g.s.h.name+" instance already deleted")};function un(){}var En=(e,t,r)=>{if(e[t].v===void 0){var o=e[t];e[t]=function(...s){if(!e[t].v.hasOwnProperty(s.length))throw new H(`Function '${r}' called with an invalid number of arguments (${s.length}) - expects one of (${e[t].v})!`);return e[t].v[s.length].apply(this,s)},e[t].v=[],e[t].v[o.ba]=o}},kn=(e,t,r)=>{if(c.hasOwnProperty(e)){if(r===void 0||c[e].v!==void 0&&c[e].v[r]!==void 0)throw new H(`Cannot register public name '${e}' twice`);if(En(c,e,e),c.hasOwnProperty(r))throw new H(`Cannot register multiple overloads of a function with the same number of arguments (${r})!`);c[e].v[r]=t}else c[e]=t,r!==void 0&&(c[e].Hc=r)},Vr=e=>{if(e===void 0)return"_unknown";e=e.replace(/[^a-zA-Z0-9_]/g,"$");var t=e.charCodeAt(0);return 48<=t&&57>=t?`_${e}`:e};function Ur(e,t,r,o,s,l,f,h){this.name=e,this.constructor=t,this.K=r,this.M=o,this.B=s,this.Ib=l,this.ja=f,this.Db=h,this.ib=[]}var ln=(e,t,r)=>{for(;t!==r;){if(!t.ja)throw new H(`Expected null or instance of ${r.name}, got an instance of ${t.name}`);e=t.ja(e),t=t.B}return e};function Nr(e,t){if(t===null){if(this.Fa)throw new H(`null is not a valid ${this.name}`);return 0}if(!t.g)throw new H(`Cannot pass "${Sn(t)}" as a ${this.name}`);if(!t.g.m)throw new H(`Cannot pass deleted object as a pointer of type ${this.name}`);return ln(t.g.m,t.g.s.h,this.h)}function $r(e,t){if(t===null){if(this.Fa)throw new H(`null is not a valid ${this.name}`);if(this.pa){var r=this.Ha();return e!==null&&e.push(this.M,r),r}return 0}if(!t||!t.g)throw new H(`Cannot pass "${Sn(t)}" as a ${this.name}`);if(!t.g.m)throw new H(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.oa&&t.g.s.oa)throw new H(`Cannot convert argument of type ${t.g.H?t.g.H.name:t.g.s.name} to parameter type ${this.name}`);if(r=ln(t.g.m,t.g.s.h,this.h),this.pa){if(t.g.C===void 0)throw new H("Passing raw pointer to smart pointer is illegal");switch(this.dc){case 0:if(t.g.H===this)r=t.g.C;else throw new H(`Cannot convert argument of type ${t.g.H?t.g.H.name:t.g.s.name} to parameter type ${this.name}`);break;case 1:r=t.g.C;break;case 2:if(t.g.H===this)r=t.g.C;else{var o=t.clone();r=this.$b(r,rt(()=>o.delete())),e!==null&&e.push(this.M,r)}break;default:throw new H("Unsupporting sharing policy")}}return r}function Yr(e,t){if(t===null){if(this.Fa)throw new H(`null is not a valid ${this.name}`);return 0}if(!t.g)throw new H(`Cannot pass "${Sn(t)}" as a ${this.name}`);if(!t.g.m)throw new H(`Cannot pass deleted object as a pointer of type ${this.name}`);if(t.g.s.oa)throw new H(`Cannot convert argument of type ${t.g.s.name} to parameter type ${this.name}`);return ln(t.g.m,t.g.s.h,this.h)}function cn(e,t,r,o,s,l,f,h,g,m,A){this.name=e,this.h=t,this.Fa=r,this.oa=o,this.pa=s,this.Zb=l,this.dc=f,this.jb=h,this.Ha=g,this.$b=m,this.M=A,s||t.B!==void 0?this.toWireType=$r:(this.toWireType=o?Nr:Yr,this.J=null)}var or=(e,t,r)=>{if(!c.hasOwnProperty(e))throw new zt("Replacing nonexistent public symbol");c[e].v!==void 0&&r!==void 0?c[e].v[r]=t:(c[e]=t,c[e].ba=r)},fn=[],ar,Ln=e=>{var t=fn[e];return t||(e>=fn.length&&(fn.length=e+1),fn[e]=t=ar.get(e)),t},Hr=(e,t,r=[])=>(e.includes("j")?(e=e.replace(/p/g,"i"),t=(0,c["dynCall_"+e])(t,...r)):t=Ln(t)(...r),t),zr=(e,t)=>(...r)=>Hr(e,t,r),ke=(e,t)=>{e=be(e);var r=e.includes("j")?zr(e,t):Ln(t);if(typeof r!="function")throw new H(`unknown function pointer with signature ${e}: ${t}`);return r},sr,vt=(e,t)=>{function r(l){s[l]||Pt[l]||(sn[l]?sn[l].forEach(r):(o.push(l),s[l]=!0))}var o=[],s={};throw t.forEach(r),new sr(`${e}: `+o.map(nr).join([", "]))};function Xr(e){for(var t=1;tl)throw new H("argTypes array size mismatch! Must at least get return value and 'this' types!");var f=t[1]!==null&&r!==null,h=Xr(t),g=t[0].name!=="void",m=l-2,A=Array(m),R=[],j=[];return Ot(e,function(...v){if(v.length!==m)throw new H(`function ${e} called with ${v.length} arguments, expected ${m}`);if(j.length=0,R.length=f?2:1,R[0]=s,f){var C=t[1].toWireType(j,this);R[1]=C}for(var _=0;_{for(var r=[],o=0;o>2]);return r},Tn=e=>{e=e.trim();const t=e.indexOf("(");return t!==-1?e.substr(0,t):e},ur=(e,t,r)=>{if(!(e instanceof Object))throw new H(`${r} with invalid "this": ${e}`);if(!(e instanceof t.h.constructor))throw new H(`${r} incompatible with "this" of type ${e.constructor.name}`);if(!e.g.m)throw new H(`cannot call emscripten binding method ${r} on deleted object`);return ln(e.g.m,e.g.s.h,t.h)},On=e=>{9{var t=Qe(e);return On(e),t},toWireType:(e,t)=>rt(t),argPackAdvance:8,readValueFromPointer:Gt,J:null},Kr=(e,t,r)=>{switch(t){case 1:return r?function(o){return this.fromWireType(oe[o])}:function(o){return this.fromWireType(ne[o])};case 2:return r?function(o){return this.fromWireType(Re[o>>1])}:function(o){return this.fromWireType(Ue[o>>1])};case 4:return r?function(o){return this.fromWireType(U[o>>2])}:function(o){return this.fromWireType(J[o>>2])};default:throw new TypeError(`invalid integer width (${t}): ${e}`)}},Sn=e=>{if(e===null)return"null";var t=typeof e;return t==="object"||t==="array"||t==="function"?e.toString():""+e},Jr=(e,t)=>{switch(t){case 4:return function(r){return this.fromWireType(Ge[r>>2])};case 8:return function(r){return this.fromWireType(tt[r>>3])};default:throw new TypeError(`invalid float width (${t}): ${e}`)}},Zr=(e,t,r)=>{switch(t){case 1:return r?o=>oe[o]:o=>ne[o];case 2:return r?o=>Re[o>>1]:o=>Ue[o>>1];case 4:return r?o=>U[o>>2]:o=>J[o>>2];default:throw new TypeError(`invalid integer width (${t}): ${e}`)}},lr=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,Qr=(e,t)=>{for(var r=e>>1,o=r+t/2;!(r>=o)&&Ue[r];)++r;if(r<<=1,32=t/2);++o){var s=Re[e+2*o>>1];if(s==0)break;r+=String.fromCharCode(s)}return r},qr=(e,t,r)=>{if(r??=2147483647,2>r)return 0;r-=2;var o=t;r=r<2*e.length?r/2:e.length;for(var s=0;s>1]=e.charCodeAt(s),t+=2;return Re[t>>1]=0,t-o},ei=e=>2*e.length,ti=(e,t)=>{for(var r=0,o="";!(r>=t/4);){var s=U[e+4*r>>2];if(s==0)break;++r,65536<=s?(s-=65536,o+=String.fromCharCode(55296|s>>10,56320|s&1023)):o+=String.fromCharCode(s)}return o},ni=(e,t,r)=>{if(r??=2147483647,4>r)return 0;var o=t;r=o+r-4;for(var s=0;s=l){var f=e.charCodeAt(++s);l=65536+((l&1023)<<10)|f&1023}if(U[t>>2]=l,t+=4,t+4>r)break}return U[t>>2]=0,t-o},ri=e=>{for(var t=0,r=0;r=o&&++r,t+=4}return t},cr=(e,t,r)=>{var o=[];return e=e.toWireType(o,r),o.length&&(J[t>>2]=rt(o)),e},vn=[],ii={},jn=e=>{var t=ii[e];return t===void 0?be(e):t},oi=e=>{var t=vn.length;return vn.push(e),t},ai=(e,t)=>{for(var r=Array(e),o=0;o>2],"parameter "+o);return r},si=Reflect.construct,Kt=e=>e%4===0&&(e%100!==0||e%400===0),ui=[0,31,60,91,121,152,182,213,244,274,305,335],li=[0,31,59,90,120,151,181,212,243,273,304,334],xn=[],Dn={},fr=()=>{if(!Wn){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:Z||"./this.program"},t;for(t in Dn)Dn[t]===void 0?delete e[t]:e[t]=Dn[t];var r=[];for(t in e)r.push(`${t}=${e[t]}`);Wn=r}return Wn},Wn,dr=[31,29,31,30,31,30,31,31,30,31,30,31],hr=[31,28,31,30,31,30,31,31,30,31,30,31],vr=(e,t,r,o)=>{function s(v,C,_){for(v=typeof v=="number"?v.toString():v||"";v.lengthee?-1:0G-v.getDate())C-=G-v.getDate()+1,v.setDate(1),11>_?v.setMonth(_+1):(v.setMonth(0),v.setFullYear(v.getFullYear()+1));else{v.setDate(v.getDate()+C);break}}return _=new Date(v.getFullYear()+1,0,4),C=h(new Date(v.getFullYear(),0,4)),_=h(_),0>=f(C,v)?0>=f(_,v)?v.getFullYear()+1:v.getFullYear():v.getFullYear()-1}var m=J[o+40>>2];o={hc:U[o>>2],fc:U[o+4>>2],ya:U[o+8>>2],Ka:U[o+12>>2],za:U[o+16>>2],aa:U[o+20>>2],O:U[o+24>>2],$:U[o+28>>2],Kc:U[o+32>>2],ec:U[o+36>>2],ic:m&&m?B(ne,m):""},r=r?B(ne,r):"",m={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var A in m)r=r.replace(new RegExp(A,"g"),m[A]);var R="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),j="January February March April May June July August September October November December".split(" ");m={"%a":v=>R[v.O].substring(0,3),"%A":v=>R[v.O],"%b":v=>j[v.za].substring(0,3),"%B":v=>j[v.za],"%C":v=>l((v.aa+1900)/100|0,2),"%d":v=>l(v.Ka,2),"%e":v=>s(v.Ka,2," "),"%g":v=>g(v).toString().substring(2),"%G":g,"%H":v=>l(v.ya,2),"%I":v=>(v=v.ya,v==0?v=12:12{for(var C=0,_=0;_<=v.za-1;C+=(Kt(v.aa+1900)?dr:hr)[_++]);return l(v.Ka+C,3)},"%m":v=>l(v.za+1,2),"%M":v=>l(v.fc,2),"%n":()=>` -`,"%p":v=>0<=v.ya&&12>v.ya?"AM":"PM","%S":v=>l(v.hc,2),"%t":()=>" ","%u":v=>v.O||7,"%U":v=>l(Math.floor((v.$+7-v.O)/7),2),"%V":v=>{var C=Math.floor((v.$+7-(v.O+6)%7)/7);if(2>=(v.O+371-v.$-2)%7&&C++,C)C==53&&(_=(v.O+371-v.$)%7,_==4||_==3&&Kt(v.aa)||(C=1));else{C=52;var _=(v.O+7-v.$-1)%7;(_==4||_==5&&Kt(v.aa%400-1))&&C++}return l(C,2)},"%w":v=>v.O,"%W":v=>l(Math.floor((v.$+7-(v.O+6)%7)/7),2),"%y":v=>(v.aa+1900).toString().substring(2),"%Y":v=>v.aa+1900,"%z":v=>{v=v.ec;var C=0<=v;return v=Math.abs(v)/60,(C?"+":"-")+("0000"+(v/60*100+v%60)).slice(-4)},"%Z":v=>v.ic,"%%":()=>"%"},r=r.replace(/%%/g,"\0\0");for(A in m)r.includes(A)&&(r=r.replace(new RegExp(A,"g"),m[A](o)));return r=r.replace(/\0\0/g,"%"),A=We(r,!1),A.length>t?0:(oe.set(A,e),A.length-1)};[44].forEach(e=>{wn[e]=new W(e),wn[e].stack=""}),Vt=Array(4096),Kn(X,"/"),ft("/tmp"),ft("/home"),ft("/home/web_user"),(function(){ft("/dev"),bn(259,{read:()=>0,write:(o,s,l,f)=>f}),tn("/dev/null",259),Ze(1280,Xe),Ze(1536,Oe),tn("/dev/tty",1280),tn("/dev/tty1",1536);var e=new Uint8Array(1024),t=0,r=()=>(t===0&&(t=S(e).byteLength),e[--t]);Ut("random",r),Ut("urandom",r),ft("/dev/shm"),ft("/dev/shm/tmp")})(),(function(){ft("/proc");var e=ft("/proc/self");ft("/proc/self/fd"),Kn({S(){var t=Hn(e,"fd",16895,73);return t.i={ga(r,o){var s=bt(+o);return r={parent:null,S:{eb:"fake"},i:{ia:()=>s.path}},r.parent=r}},t}},"/proc/self/fd")})(),H=c.BindingError=class extends Error{constructor(e){super(e),this.name="BindingError"}},dt.push(0,1,void 0,1,null,1,!0,1,!1,1),c.count_emval_handles=()=>dt.length/2-5-Mn.length,er=c.PureVirtualError=qn("PureVirtualError");for(var pr=Array(256),pn=0;256>pn;++pn)pr[pn]=String.fromCharCode(pn);tr=pr,c.getInheritedInstanceCount=()=>Object.keys(ht).length,c.getLiveInheritedInstances=()=>{var e=[],t;for(t in ht)ht.hasOwnProperty(t)&&e.push(ht[t]);return e},c.flushPendingDeletes=Fn,c.setDelayFunction=e=>{Yt=e,$t.length&&Yt&&Yt(Fn)},zt=c.InternalError=class extends Error{constructor(e){super(e),this.name="InternalError"}},Object.assign(un.prototype,{isAliasOf:function(e){if(!(this instanceof un&&e instanceof un))return!1;var t=this.g.s.h,r=this.g.m;e.g=e.g;var o=e.g.s.h;for(e=e.g.m;t.B;)r=t.ja(r),t=t.B;for(;o.B;)e=o.ja(e),o=o.B;return t===o&&r===e},clone:function(){if(this.g.m||Rn(this),this.g.ea)return this.g.count.value+=1,this;var e=St,t=Object,r=t.create,o=Object.getPrototypeOf(this),s=this.g;return e=e(r.call(t,o,{g:{value:{count:s.count,ca:s.ca,ea:s.ea,m:s.m,s:s.s,C:s.C,H:s.H}}})),e.g.count.value+=1,e.g.ca=!1,e},delete(){if(this.g.m||Rn(this),this.g.ca&&!this.g.ea)throw new H("Object already scheduled for deletion");rn(this);var e=this.g;--e.count.value,e.count.value===0&&(e.C?e.H.M(e.C):e.s.h.M(e.m)),this.g.ea||(this.g.C=void 0,this.g.m=void 0)},isDeleted:function(){return!this.g.m},deleteLater:function(){if(this.g.m||Rn(this),this.g.ca&&!this.g.ea)throw new H("Object already scheduled for deletion");return $t.push(this),$t.length===1&&Yt&&Yt(Fn),this.g.ca=!0,this}}),Object.assign(cn.prototype,{Jb(e){return this.jb&&(e=this.jb(e)),e},Ua(e){this.M?.(e)},argPackAdvance:8,readValueFromPointer:Gt,fromWireType:function(e){function t(){return this.pa?on(this.h.K,{s:this.Zb,m:r,H:this,C:e}):on(this.h.K,{s:this,m:e})}var r=this.Jb(e);if(!r)return this.Ua(e),null;var o=Wr(this.h,r);if(o!==void 0)return o.g.count.value===0?(o.g.m=r,o.g.C=e,o.clone()):(o=o.clone(),this.Ua(e),o);if(o=this.h.Ib(r),o=ir[o],!o)return t.call(this);o=this.oa?o.zb:o.pointerType;var s=rr(r,this.h,o.h);return s===null?t.call(this):this.pa?on(o.h.K,{s:o,m:s,H:this,C:e}):on(o.h.K,{s:o,m:s})}}),sr=c.UnboundTypeError=qn("UnboundTypeError");var mr={__syscall_fcntl64:function(e,t,r){Nt=r;try{var o=bt(e);switch(t){case 0:var s=n();if(0>s)break;for(;Bt[s];)s++;return jr(o,s).U;case 1:case 2:return 0;case 3:return o.flags;case 4:return s=n(),o.flags|=s,0;case 12:return s=n(),Re[s+0>>1]=2,0;case 13:case 14:return 0}return-28}catch(l){if(typeof It>"u"||l.name!=="ErrnoError")throw l;return-l.Y}},__syscall_ioctl:function(e,t,r){Nt=r;try{var o=bt(e);switch(t){case 21509:return o.o?0:-59;case 21505:if(!o.o)return-59;if(o.o.T.Pb){e=[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];var s=n();U[s>>2]=25856,U[s+4>>2]=5,U[s+8>>2]=191,U[s+12>>2]=35387;for(var l=0;32>l;l++)oe[s+l+17]=e[l]||0}return 0;case 21510:case 21511:case 21512:return o.o?0:-59;case 21506:case 21507:case 21508:if(!o.o)return-59;if(o.o.T.Qb)for(s=n(),e=[],l=0;32>l;l++)e.push(oe[s+l+17]);return 0;case 21519:return o.o?(s=n(),U[s>>2]=0):-59;case 21520:return o.o?-28:-59;case 21531:if(s=n(),!o.l.Ob)throw new W(59);return o.l.Ob(o,t,s);case 21523:return o.o?(o.o.T.Rb&&(l=[24,80],s=n(),Re[s>>1]=l[0],Re[s+2>>1]=l[1]),0):-59;case 21524:return o.o?0:-59;case 21515:return o.o?0:-59;default:return-28}}catch(f){if(typeof It>"u"||f.name!=="ErrnoError")throw f;return-f.Y}},__syscall_openat:function(e,t,r,o){Nt=o;try{t=t?B(ne,t):"";var s=t;if(s.charAt(0)==="/")t=s;else{var l=e===-100?"/":bt(e).path;if(s.length==0)throw new W(44);t=u(l+"/"+s)}var f=o?n():0;return nn(t,r,f).U}catch(h){if(typeof It>"u"||h.name!=="ErrnoError")throw h;return-h.Y}},_abort_js:()=>{ut("")},_embind_create_inheriting_constructor:(e,t,r)=>{e=be(e),t=Ht(t,"wrapper"),r=Qe(r);var o=t.h,s=o.K,l=o.B.K,f=o.B.constructor;return e=Ot(e,function(...h){o.B.ib.forEach(function(g){if(this[g]===l[g])throw new er(`Pure virtual function ${g} must be implemented in JavaScript`)}.bind(this)),Object.defineProperty(this,"__parent",{value:s}),this.__construct(...h)}),s.__construct=function(...h){if(this===s)throw new H("Pass correct 'this' to __construct");h=f.implement(this,...h),rn(h);var g=h.g;if(h.notifyOnDestruction(),g.ea=!0,Object.defineProperties(this,{g:{value:g}}),St(this),h=g.m,h=In(o,h),ht.hasOwnProperty(h))throw new H(`Tried to register registered instance: ${h}`);ht[h]=this},s.__destruct=function(){if(this===s)throw new H("Pass correct 'this' to __destruct");rn(this);var h=this.g.m;if(h=In(o,h),ht.hasOwnProperty(h))delete ht[h];else throw new H(`Tried to unregister unregistered instance: ${h}`)},e.prototype=Object.create(s),Object.assign(e.prototype,r),rt(e)},_embind_finalize_value_object:e=>{var t=an[e];delete an[e];var r=t.Ha,o=t.M,s=t.Xa,l=s.map(f=>f.Mb).concat(s.map(f=>f.bc));$e([e],l,f=>{var h={};return s.forEach((g,m)=>{var A=f[m],R=g.Kb,j=g.Lb,v=f[m+s.length],C=g.ac,_=g.cc;h[g.Gb]={read:G=>A.fromWireType(R(j,G)),write:(G,ee)=>{var P=[];C(_,G,v.toWireType(P,ee)),Xt(P)}}}),[{name:t.name,fromWireType:g=>{var m={},A;for(A in h)m[A]=h[A].read(g);return o(g),m},toWireType:(g,m)=>{for(var A in h)if(!(A in m))throw new TypeError(`Missing field: "${A}"`);var R=r();for(A in h)h[A].write(R,m[A]);return g!==null&&g.push(o,R),R},argPackAdvance:8,readValueFromPointer:Gt,J:o}]})},_embind_register_bigint:()=>{},_embind_register_bool:(e,t,r,o)=>{t=be(t),it(e,{name:t,fromWireType:function(s){return!!s},toWireType:function(s,l){return l?r:o},argPackAdvance:8,readValueFromPointer:function(s){return this.fromWireType(ne[s])},J:null})},_embind_register_class:(e,t,r,o,s,l,f,h,g,m,A,R,j)=>{A=be(A),l=ke(s,l),h&&=ke(f,h),m&&=ke(g,m),j=ke(R,j);var v=Vr(A);kn(v,function(){vt(`Cannot construct ${A} due to unbound types`,[o])}),$e([e,t,r],o?[o]:[],C=>{if(C=C[0],o)var _=C.h,G=_.K;else G=un.prototype;C=Ot(A,function(...Ce){if(Object.getPrototypeOf(this)!==ee)throw new H("Use 'new' to construct "+A);if(P.X===void 0)throw new H(A+" has no accessible constructor");var Ye=P.X[Ce.length];if(Ye===void 0)throw new H(`Tried to invoke ctor of ${A} with invalid number of parameters (${Ce.length}) - expected (${Object.keys(P.X).toString()}) parameters instead!`);return Ye.apply(this,Ce)});var ee=Object.create(G,{constructor:{value:C}});C.prototype=ee;var P=new Ur(A,C,ee,j,_,l,h,m);if(P.B){var de;(de=P.B).ka??(de.ka=[]),P.B.ka.push(P)}return _=new cn(A,P,!0,!1,!1),de=new cn(A+"*",P,!1,!1,!1),G=new cn(A+" const*",P,!1,!0,!1),ir[e]={pointerType:de,zb:G},or(v,C),[_,de,G]})},_embind_register_class_class_function:(e,t,r,o,s,l,f)=>{var h=hn(r,o);t=be(t),t=Tn(t),l=ke(s,l),$e([],[e],g=>{function m(){vt(`Cannot call ${A} due to unbound types`,h)}g=g[0];var A=`${g.name}.${t}`;t.startsWith("@@")&&(t=Symbol[t.substring(2)]);var R=g.h.constructor;return R[t]===void 0?(m.ba=r-1,R[t]=m):(En(R,t,A),R[t].v[r-1]=m),$e([],h,j=>{if(j=dn(A,[j[0],null].concat(j.slice(1)),null,l,f),R[t].v===void 0?(j.ba=r-1,R[t]=j):R[t].v[r-1]=j,g.h.ka)for(const v of g.h.ka)v.constructor.hasOwnProperty(t)||(v.constructor[t]=j);return[]}),[]})},_embind_register_class_class_property:(e,t,r,o,s,l,f,h)=>{t=be(t),l=ke(s,l),$e([],[e],g=>{g=g[0];var m=`${g.name}.${t}`,A={get(){vt(`Cannot access ${m} due to unbound types`,[r])},enumerable:!0,configurable:!0};return A.set=h?()=>{vt(`Cannot access ${m} due to unbound types`,[r])}:()=>{throw new H(`${m} is a read-only property`)},Object.defineProperty(g.h.constructor,t,A),$e([],[r],R=>{R=R[0];var j={get(){return R.fromWireType(l(o))},enumerable:!0};return h&&(h=ke(f,h),j.set=v=>{var C=[];h(o,R.toWireType(C,v)),Xt(C)}),Object.defineProperty(g.h.constructor,t,j),[]}),[]})},_embind_register_class_constructor:(e,t,r,o,s,l)=>{var f=hn(t,r);s=ke(o,s),$e([],[e],h=>{h=h[0];var g=`constructor ${h.name}`;if(h.h.X===void 0&&(h.h.X=[]),h.h.X[t-1]!==void 0)throw new H(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${h.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return h.h.X[t-1]=()=>{vt(`Cannot construct ${h.name} due to unbound types`,f)},$e([],f,m=>(m.splice(1,0,null),h.h.X[t-1]=dn(g,m,null,s,l),[])),[]})},_embind_register_class_function:(e,t,r,o,s,l,f,h)=>{var g=hn(r,o);t=be(t),t=Tn(t),l=ke(s,l),$e([],[e],m=>{function A(){vt(`Cannot call ${R} due to unbound types`,g)}m=m[0];var R=`${m.name}.${t}`;t.startsWith("@@")&&(t=Symbol[t.substring(2)]),h&&m.h.ib.push(t);var j=m.h.K,v=j[t];return v===void 0||v.v===void 0&&v.className!==m.name&&v.ba===r-2?(A.ba=r-2,A.className=m.name,j[t]=A):(En(j,t,R),j[t].v[r-2]=A),$e([],g,C=>(C=dn(R,C,m,l,f),j[t].v===void 0?(C.ba=r-2,j[t]=C):j[t].v[r-2]=C,[])),[]})},_embind_register_class_property:(e,t,r,o,s,l,f,h,g,m)=>{t=be(t),s=ke(o,s),$e([],[e],A=>{A=A[0];var R=`${A.name}.${t}`,j={get(){vt(`Cannot access ${R} due to unbound types`,[r,f])},enumerable:!0,configurable:!0};return j.set=g?()=>vt(`Cannot access ${R} due to unbound types`,[r,f]):()=>{throw new H(R+" is a read-only property")},Object.defineProperty(A.h.K,t,j),$e([],g?[r,f]:[r],v=>{var C=v[0],_={get(){var ee=ur(this,A,R+" getter");return C.fromWireType(s(l,ee))},enumerable:!0};if(g){g=ke(h,g);var G=v[1];_.set=function(ee){var P=ur(this,A,R+" setter"),de=[];g(m,P,G.toWireType(de,ee)),Xt(de)}}return Object.defineProperty(A.h.K,t,_),[]}),[]})},_embind_register_emval:e=>it(e,Gr),_embind_register_enum:(e,t,r,o)=>{function s(){}t=be(t),s.values={},it(e,{name:t,constructor:s,fromWireType:function(l){return this.constructor.values[l]},toWireType:(l,f)=>f.value,argPackAdvance:8,readValueFromPointer:Kr(t,r,o),J:null}),kn(t,s)},_embind_register_enum_value:(e,t,r)=>{var o=Ht(e,"enum");t=be(t),e=o.constructor,o=Object.create(o.constructor.prototype,{value:{value:r},constructor:{value:Ot(`${o.name}_${t}`,function(){})}}),e.values[r]=o,e[t]=o},_embind_register_float:(e,t,r)=>{t=be(t),it(e,{name:t,fromWireType:o=>o,toWireType:(o,s)=>s,argPackAdvance:8,readValueFromPointer:Jr(t,r),J:null})},_embind_register_function:(e,t,r,o,s,l)=>{var f=hn(t,r);e=be(e),e=Tn(e),s=ke(o,s),kn(e,function(){vt(`Cannot call ${e} due to unbound types`,f)},t-1),$e([],f,h=>(or(e,dn(e,[h[0],null].concat(h.slice(1)),null,s,l),t-1),[]))},_embind_register_integer:(e,t,r,o,s)=>{if(t=be(t),s===-1&&(s=4294967295),s=h=>h,o===0){var l=32-8*r;s=h=>h<>>l}var f=t.includes("unsigned")?function(h,g){return g>>>0}:function(h,g){return g};it(e,{name:t,fromWireType:s,toWireType:f,argPackAdvance:8,readValueFromPointer:Zr(t,r,o!==0),J:null})},_embind_register_memory_view:(e,t,r)=>{function o(l){return new s(oe.buffer,J[l+4>>2],J[l>>2])}var s=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];r=be(r),it(e,{name:r,fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{Nb:!0})},_embind_register_std_string:(e,t)=>{t=be(t);var r=t==="std::string";it(e,{name:t,fromWireType:function(o){var s=J[o>>2],l=o+4;if(r)for(var f=l,h=0;h<=s;++h){var g=l+h;if(h==s||ne[g]==0){if(f=f?B(ne,f,g-f):"",m===void 0)var m=f;else m+="\0",m+=f;f=g+1}}else{for(m=Array(s),h=0;h>2]=f,r&&l)fe(s,ne,g,f+1);else if(l)for(l=0;l{if(r=be(r),t===2)var o=Qr,s=qr,l=ei,f=h=>Ue[h>>1];else t===4&&(o=ti,s=ni,l=ri,f=h=>J[h>>2]);it(e,{name:r,fromWireType:h=>{for(var g=J[h>>2],m,A=h+4,R=0;R<=g;++R){var j=h+4+R*t;(R==g||f(j)==0)&&(A=o(A,j-A),m===void 0?m=A:(m+="\0",m+=A),A=j+t)}return pt(h),m},toWireType:(h,g)=>{if(typeof g!="string")throw new H(`Cannot pass non-string to C++ string type ${r}`);var m=l(g),A=Bn(4+m+t);return J[A>>2]=m/t,s(g,A+4,m+t),h!==null&&h.push(pt,A),A},argPackAdvance:8,readValueFromPointer:Gt,J(h){pt(h)}})},_embind_register_value_object:(e,t,r,o,s,l)=>{an[e]={name:be(t),Ha:ke(r,o),M:ke(s,l),Xa:[]}},_embind_register_value_object_field:(e,t,r,o,s,l,f,h,g,m)=>{an[e].Xa.push({Gb:be(t),Mb:r,Kb:ke(o,s),Lb:l,bc:f,ac:ke(h,g),cc:m})},_embind_register_void:(e,t)=>{t=be(t),it(e,{Dc:!0,name:t,argPackAdvance:0,fromWireType:()=>{},toWireType:()=>{}})},_emscripten_get_now_is_monotonic:()=>1,_emscripten_memcpy_js:(e,t,r)=>ne.copyWithin(e,t,t+r),_emscripten_throw_longjmp:()=>{throw 1/0},_emval_as:(e,t,r)=>(e=Qe(e),t=Ht(t,"emval::as"),cr(t,r,e)),_emval_call:(e,t,r,o)=>(e=vn[e],t=Qe(t),e(null,t,r,o)),_emval_call_method:(e,t,r,o,s)=>(e=vn[e],t=Qe(t),r=jn(r),e(t,t[r],o,s)),_emval_decref:On,_emval_get_method_caller:(e,t,r)=>{var o=ai(e,t),s=o.shift();e--;var l=Array(e);return t=`methodCaller<(${o.map(f=>f.name).join(", ")}) => ${s.name}>`,oi(Ot(t,(f,h,g,m)=>{for(var A=0,R=0;R(e=jn(e),rt(c[e])),_emval_get_property:(e,t)=>(e=Qe(e),t=Qe(t),rt(e[t])),_emval_incref:e=>{9rt([]),_emval_new_cstring:e=>rt(jn(e)),_emval_new_object:()=>rt({}),_emval_run_destructors:e=>{var t=Qe(e);Xt(t),On(e)},_emval_set_property:(e,t,r)=>{e=Qe(e),t=Qe(t),r=Qe(r),e[t]=r},_emval_take_value:(e,t)=>(e=Ht(e,"_emval_take_value"),e=e.readValueFromPointer(t),rt(e)),_gmtime_js:function(e,t,r){e=new Date(1e3*(t+2097152>>>0<4194305-!!e?(e>>>0)+4294967296*t:NaN)),U[r>>2]=e.getUTCSeconds(),U[r+4>>2]=e.getUTCMinutes(),U[r+8>>2]=e.getUTCHours(),U[r+12>>2]=e.getUTCDate(),U[r+16>>2]=e.getUTCMonth(),U[r+20>>2]=e.getUTCFullYear()-1900,U[r+24>>2]=e.getUTCDay(),U[r+28>>2]=(e.getTime()-Date.UTC(e.getUTCFullYear(),0,1,0,0,0,0))/864e5|0},_localtime_js:function(e,t,r){e=new Date(1e3*(t+2097152>>>0<4194305-!!e?(e>>>0)+4294967296*t:NaN)),U[r>>2]=e.getSeconds(),U[r+4>>2]=e.getMinutes(),U[r+8>>2]=e.getHours(),U[r+12>>2]=e.getDate(),U[r+16>>2]=e.getMonth(),U[r+20>>2]=e.getFullYear()-1900,U[r+24>>2]=e.getDay(),U[r+28>>2]=(Kt(e.getFullYear())?ui:li)[e.getMonth()]+e.getDate()-1|0,U[r+36>>2]=-(60*e.getTimezoneOffset()),t=new Date(e.getFullYear(),6,1).getTimezoneOffset();var o=new Date(e.getFullYear(),0,1).getTimezoneOffset();U[r+32>>2]=(t!=o&&e.getTimezoneOffset()==Math.min(o,t))|0},_tzset_js:(e,t,r,o)=>{var s=new Date().getFullYear(),l=new Date(s,0,1),f=new Date(s,6,1);s=l.getTimezoneOffset();var h=f.getTimezoneOffset();J[e>>2]=60*Math.max(s,h),U[t>>2]=+(s!=h),e=g=>g.toLocaleTimeString(void 0,{hour12:!1,timeZoneName:"short"}).split(" ")[1],l=e(l),f=e(f),h{xn.length=0;for(var o;o=ne[t++];){var s=o!=105;s&=o!=112,r+=s&&r%8?4:0,xn.push(o==112?J[r>>2]:o==105?U[r>>2]:tt[r>>3]),r+=s?8:4}return ae[e](...xn)},emscripten_date_now:()=>Date.now(),emscripten_get_now:()=>performance.now(),emscripten_resize_heap:e=>{var t=ne.length;if(e>>>=0,2147483648=r;r*=2){var o=t*(1+.2/r);o=Math.min(o,e+100663296);var s=Math;o=Math.max(e,o);e:{s=(s.min.call(s,2147483648,o+(65536-o%65536)%65536)-Ve.buffer.byteLength+65535)/65536;try{Ve.grow(s),ge();var l=1;break e}catch{}l=void 0}if(l)return!0}return!1},environ_get:(e,t)=>{var r=0;return fr().forEach((o,s)=>{var l=t+r;for(s=J[e+4*s>>2]=l,l=0;l{var r=fr();J[e>>2]=r.length;var o=0;return r.forEach(s=>o+=s.length+1),J[t>>2]=o,0},fd_close:function(e){try{var t=bt(e);if(t.U===null)throw new W(8);t.Ea&&(t.Ea=null);try{t.l.close&&t.l.close(t)}catch(r){throw r}finally{Bt[t.U]=null}return t.U=null,0}catch(r){if(typeof It>"u"||r.name!=="ErrnoError")throw r;return r.Y}},fd_read:function(e,t,r,o){try{e:{var s=bt(e);e=t;for(var l,f=t=0;f>2],g=J[e+4>>2];e+=8;var m=s,A=l,R=oe;if(0>g||0>A)throw new W(28);if(m.U===null)throw new W(8);if((m.flags&2097155)===1)throw new W(8);if((m.node.mode&61440)===16384)throw new W(31);if(!m.l.read)throw new W(28);var j=typeof A<"u";if(!j)A=m.position;else if(!m.seekable)throw new W(70);var v=m.l.read(m,R,h,g,A);j||(m.position+=v);var C=v;if(0>C){var _=-1;break e}if(t+=C,C>2]=_,0}catch(G){if(typeof It>"u"||G.name!=="ErrnoError")throw G;return G.Y}},fd_seek:function(e,t,r,o,s){t=r+2097152>>>0<4194305-!!t?(t>>>0)+4294967296*r:NaN;try{if(isNaN(t))return 61;var l=bt(e);return Jn(l,t,o),ye=[l.position>>>0,(Je=l.position,1<=+Math.abs(Je)?0>>0:~~+Math.ceil((Je-+(~~Je>>>0))/4294967296)>>>0:0)],U[s>>2]=ye[0],U[s+4>>2]=ye[1],l.Ea&&t===0&&o===0&&(l.Ea=null),0}catch(f){if(typeof It>"u"||f.name!=="ErrnoError")throw f;return f.Y}},fd_write:function(e,t,r,o){try{e:{var s=bt(e);e=t;for(var l,f=t=0;f>2],g=J[e+4>>2];e+=8;var m=s,A=h,R=g,j=l,v=oe;if(0>R||0>j)throw new W(28);if(m.U===null)throw new W(8);if((m.flags&2097155)===0)throw new W(8);if((m.node.mode&61440)===16384)throw new W(31);if(!m.l.write)throw new W(28);m.seekable&&m.flags&1024&&Jn(m,0,2);var C=typeof j<"u";if(!C)j=m.position;else if(!m.seekable)throw new W(70);var _=m.l.write(m,v,A,R,j,void 0);C||(m.position+=_);var G=_;if(0>G){var ee=-1;break e}t+=G,typeof l<"u"&&(l+=G)}ee=t}return J[o>>2]=ee,0}catch(P){if(typeof It>"u"||P.name!=="ErrnoError")throw P;return P.Y}},invoke_vii:ci,isWindowsBrowser:function(){return-1vr(e,t,r,o),wasm_start_image_decode:function(e,t,r){t=c.HEAP8.subarray(t,t+r),r=new Uint8Array(r),r.set(t),createImageBitmap(new Blob([r])).then(function(o){var s=new OffscreenCanvas(o.width,o.height).getContext("2d");s.drawImage(o,0,0),s=s.getImageData(0,0,o.width,o.height);var l=s.data.length,f=c.vb(l);c.lc.set(s.data,f),c.nc(e,o.width,o.height,f,l)}).catch(function(o){o=o.message||"decode failed";var s=c.Ec(o)+1,l=c.vb(s);c.Jc(o,l,s),c.oc(e,l),c.mc(l)})}},he=(function(){function e(r){return he=r.exports,Ve=he.memory,ge(),ar=he.__indirect_function_table,Ee.unshift(he.__wasm_call_ctors),De--,c.monitorRunDependencies?.(De),De==0&&Ke&&(r=Ke,Ke=null,r()),he}var t={env:mr,wasi_snapshot_preview1:mr};if(De++,c.monitorRunDependencies?.(De),c.instantiateWasm)try{return c.instantiateWasm(t,e)}catch(r){_e(`Module.instantiateWasm callback failed with error: ${r}`),x(r)}return wt||=lt("canvas_advanced.wasm")?"canvas_advanced.wasm":c.locateFile?c.locateFile("canvas_advanced.wasm",M):M+"canvas_advanced.wasm",Mt(t,function(r){e(r.instance)}).catch(x),{}})(),pt=e=>(pt=he.free)(e),Bn=e=>(Bn=he.malloc)(e),gr=e=>(gr=he.__getTypeName)(e);c._wasm_image_decode_complete=(e,t,r,o,s)=>(c._wasm_image_decode_complete=he.wasm_image_decode_complete)(e,t,r,o,s),c._wasm_image_decode_error=(e,t)=>(c._wasm_image_decode_error=he.wasm_image_decode_error)(e,t);var yr=c._ma_device__on_notification_unlocked=e=>(yr=c._ma_device__on_notification_unlocked=he.ma_device__on_notification_unlocked)(e);c._ma_malloc_emscripten=(e,t)=>(c._ma_malloc_emscripten=he.ma_malloc_emscripten)(e,t),c._ma_free_emscripten=(e,t)=>(c._ma_free_emscripten=he.ma_free_emscripten)(e,t);var wr=c._ma_device_process_pcm_frames_capture__webaudio=(e,t,r)=>(wr=c._ma_device_process_pcm_frames_capture__webaudio=he.ma_device_process_pcm_frames_capture__webaudio)(e,t,r),br=c._ma_device_process_pcm_frames_playback__webaudio=(e,t,r)=>(br=c._ma_device_process_pcm_frames_playback__webaudio=he.ma_device_process_pcm_frames_playback__webaudio)(e,t,r),_r=(e,t)=>(_r=he.setThrew)(e,t),Ar=e=>(Ar=he._emscripten_stack_restore)(e),Cr=()=>(Cr=he.emscripten_stack_get_current)();c.dynCall_iiji=(e,t,r,o,s)=>(c.dynCall_iiji=he.dynCall_iiji)(e,t,r,o,s),c.dynCall_jiji=(e,t,r,o,s)=>(c.dynCall_jiji=he.dynCall_jiji)(e,t,r,o,s),c.dynCall_iiiji=(e,t,r,o,s,l)=>(c.dynCall_iiiji=he.dynCall_iiiji)(e,t,r,o,s,l),c.dynCall_iij=(e,t,r,o)=>(c.dynCall_iij=he.dynCall_iij)(e,t,r,o),c.dynCall_jii=(e,t,r)=>(c.dynCall_jii=he.dynCall_jii)(e,t,r),c.dynCall_viijii=(e,t,r,o,s,l,f)=>(c.dynCall_viijii=he.dynCall_viijii)(e,t,r,o,s,l,f),c.dynCall_iiiiij=(e,t,r,o,s,l,f)=>(c.dynCall_iiiiij=he.dynCall_iiiiij)(e,t,r,o,s,l,f),c.dynCall_iiiiijj=(e,t,r,o,s,l,f,h,g)=>(c.dynCall_iiiiijj=he.dynCall_iiiiijj)(e,t,r,o,s,l,f,h,g),c.dynCall_iiiiiijj=(e,t,r,o,s,l,f,h,g,m)=>(c.dynCall_iiiiiijj=he.dynCall_iiiiiijj)(e,t,r,o,s,l,f,h,g,m);function ci(e,t,r){var o=Cr();try{Ln(e)(t,r)}catch(s){if(Ar(o),s!==s+0)throw s;_r(1,0)}}var mn;Ke=function e(){mn||Mr(),mn||(Ke=e)};function Mr(){function e(){if(!mn&&(mn=!0,c.calledRun=!0,!At)){if(c.noFSInit||Zn||(Zn=!0,c.stdin=c.stdin,c.stdout=c.stdout,c.stderr=c.stderr,c.stdin?Ut("stdin",c.stdin):An("/dev/tty","/dev/stdin"),c.stdout?Ut("stdout",null,c.stdout):An("/dev/tty","/dev/stdout"),c.stderr?Ut("stderr",null,c.stderr):An("/dev/tty1","/dev/stderr"),nn("/dev/stdin",0),nn("/dev/stdout",1),nn("/dev/stderr",1)),Nn=!1,a(Ee),z(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;){var t=c.postRun.shift();Le.unshift(t)}a(Le)}}if(!(0{pe.exports=JSON.parse(`{"name":"@rive-app/canvas","version":"2.38.5","description":"Rive's canvas based web api.","main":"rive.js","homepage":"https://rive.app","repository":{"type":"git","url":"https://github.com/rive-app/rive-wasm/tree/master/js"},"keywords":["rive","animation"],"author":"Rive","contributors":["Luigi Rosso (https://rive.app)","Maxwell Talbot (https://rive.app)","Arthur Vivian (https://rive.app)","Umberto Sonnino (https://rive.app)","Matthew Sullivan (mailto:matt.j.sullivan@gmail.com)"],"license":"MIT","files":["rive.js","rive.js.map","rive.wasm","rive_fallback.wasm","rive.d.ts","rive_advanced.mjs.d.ts","runtimeLoader.d.ts","utils"],"typings":"rive.d.ts","dependencies":{},"browser":{"fs":false,"path":false}}`)}),((pe,Y,I)=>{I.r(Y),I.d(Y,{AudioAssetWrapper:()=>E.AudioAssetWrapper,AudioWrapper:()=>E.AudioWrapper,BLANK_URL:()=>k.BLANK_URL,CustomFileAssetLoaderWrapper:()=>E.CustomFileAssetLoaderWrapper,FileAssetWrapper:()=>E.FileAssetWrapper,FileFinalizer:()=>E.FileFinalizer,FocusSessionState:()=>se.FocusSessionState,FontAssetWrapper:()=>E.FontAssetWrapper,FontWrapper:()=>E.FontWrapper,ImageAssetWrapper:()=>E.ImageAssetWrapper,ImageWrapper:()=>E.ImageWrapper,KeyboardInteractions:()=>se.KeyboardInteractions,RiveFont:()=>w.RiveFont,createFinalization:()=>E.createFinalization,finalizationRegistry:()=>E.finalizationRegistry,registerTouchInteractions:()=>N.registerTouchInteractions,sanitizeUrl:()=>k.sanitizeUrl});var N=I(7),se=I(8),k=I(9),E=I(10),w=I(11)}),((pe,Y,I)=>{I.r(Y),I.d(Y,{registerTouchInteractions:()=>E});var N=void 0,se=function(w,c,z){var x,D=[];if(c)for(var ue=0;ue"u")return null;var gt=null,_e=!1,je=null,Ve=function(ne){var Re;if(_e&&ne instanceof MouseEvent){ne.type=="mouseup"&&(_e=!1);return}_e=He&&ne.type==="touchend"&>==="touchstart",gt=ne.type;var Ue=ne.currentTarget.getBoundingClientRect();if(!Z&&ne.type==="touchstart"&&je===null){var U=(Re=ne.changedTouches)===null||Re===void 0?void 0:Re[0];U&&(je=U.identifier)}var J=k(ne,He,Z,Z?null:je),Ge=le.computeAlignment(ie,we,{minX:0,minY:0,maxX:Ue.width,maxY:Ue.height},z.bounds,Ie),tt=new le.Mat2D;switch(Ge.invert(tt),J.forEach(function(ye){var ae=ye.clientX,a=ye.clientY;if(!(!ae&&!a)){var n=ae-Ue.left,i=a-Ue.top,u=new le.Vec2D(n,i),d=le.mapXY(tt,u),p=d.x(),y=d.y();ye.transformedX=p,ye.transformedY=y,d.delete(),u.delete()}}),tt.delete(),Ge.delete(),ne.type){case"mouseout":for(var ge=function(ye){L?J.forEach(function(ae){ye.pointerExit(ae.transformedX,ae.transformedY,ae.identifier)}):J.forEach(function(ae){ye.pointerMove(ae.transformedX,ae.transformedY,ae.identifier)})},xe=0,Ee=D;xe{I.r(Y),I.d(Y,{FocusSessionState:()=>N,KeyboardInteractions:()=>se});var N;(function(k){k.NotFocused="notFocused",k.EntryPending="entryPending",k.RiveFocused="riveFocused"})(N||(N={}));var se=(function(){function k(E){var w=E.canvas,c=E.stateMachine,z=E.hasFocusNodes,x=this;this.focusSessionState=N.NotFocused,this.onCanvasFocus=function(D){if(x.hasFocusNodes&&!x.mainSm.focusState().hasFocus&&(x.focusSessionState=N.EntryPending,!!x.isKeyboardDrivenFocus())){var ue=x.cameFromBeforeCanvas(D.relatedTarget);(ue?x.mainSm.focusNext():x.mainSm.focusPrevious())&&(x.focusSessionState=N.RiveFocused)}},this.onCanvasBlur=function(D){x.focusSessionState=N.NotFocused},this.onKeyDown=function(D){if(x.focusSessionState!==N.NotFocused&&D.code==="Tab"&&x.hasFocusNodes){var ue=!D.shiftKey,le=ue?x.mainSm.focusNext():x.mainSm.focusPrevious();le?(x.focusSessionState=N.RiveFocused,D.preventDefault()):x.focusSessionState=N.NotFocused}},this.canvas=w,this.mainSm=c,this.hasFocusNodes=z,w.addEventListener("focus",this.onCanvasFocus),w.addEventListener("blur",this.onCanvasBlur),w.addEventListener("keydown",this.onKeyDown)}return k.prototype.setFocusSessionState=function(E){this.focusSessionState=E},k.prototype.notifyRiveFocused=function(){this.focusSessionState=N.RiveFocused},k.prototype.isKeyboardDrivenFocus=function(){try{return this.canvas.matches(":focus-visible")}catch{return!1}},k.prototype.cameFromBeforeCanvas=function(E){if(!E)return!0;var w=this.canvas.compareDocumentPosition(E);return w&Node.DOCUMENT_POSITION_PRECEDING?!0:!(w&Node.DOCUMENT_POSITION_FOLLOWING)},k.prototype.cleanup=function(){this.canvas.removeEventListener("focus",this.onCanvasFocus),this.canvas.removeEventListener("blur",this.onCanvasBlur),this.canvas.removeEventListener("keydown",this.onKeyDown)},k})()}),((pe,Y,I)=>{I.r(Y),I.d(Y,{BLANK_URL:()=>z,sanitizeUrl:()=>ue});var N=/^([^\w]*)(javascript|data|vbscript)/im,se=/&#(\w+)(^\w|;)?/g,k=/&(newline|tab);/gi,E=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,w=/^.+(:|:)/gim,c=[".","/"],z="about:blank";function x(le){return c.indexOf(le[0])>-1}function D(le){var ie=le.replace(E,"");return ie.replace(se,function(we,Fe){return String.fromCharCode(Fe)})}function ue(le){if(!le)return z;var ie=D(le).replace(k,"").replace(E,"").trim();if(!ie)return z;if(x(ie))return ie;var we=ie.match(w);if(!we)return ie;var Fe=we[0];return N.test(Fe)?z:ie}}),((pe,Y,I)=>{I.r(Y),I.d(Y,{AudioAssetWrapper:()=>le,AudioWrapper:()=>c,CustomFileAssetLoaderWrapper:()=>x,FileAssetWrapper:()=>D,FileFinalizer:()=>se,FontAssetWrapper:()=>ie,FontWrapper:()=>z,ImageAssetWrapper:()=>ue,ImageWrapper:()=>w,createFinalization:()=>ze,finalizationRegistry:()=>He});var N=(function(){var L=function(T,Z){return L=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(M,Ie){M.__proto__=Ie}||function(M,Ie){for(var Pe in Ie)Object.prototype.hasOwnProperty.call(Ie,Pe)&&(M[Pe]=Ie[Pe])},L(T,Z)};return function(T,Z){if(typeof Z!="function"&&Z!==null)throw new TypeError("Class extends value "+String(Z)+" is not a constructor or null");L(T,Z);function M(){this.constructor=T}T.prototype=Z===null?Object.create(Z):(M.prototype=Z.prototype,new M)}})(),se=(function(){function L(T){this.selfUnref=!1,this._file=T}return L.prototype.unref=function(){this._file&&this._file.unref()},L})(),k=(function(){function L(T){this._finalizableObject=T}return L.prototype.unref=function(){this._finalizableObject.unref()},L})(),E=(function(){function L(){this.selfUnref=!1}return L.prototype.unref=function(){},L})(),w=(function(L){N(T,L);function T(Z){var M=L.call(this)||this;return M._nativeImage=Z,M}return Object.defineProperty(T.prototype,"nativeImage",{get:function(){return this._nativeImage},enumerable:!1,configurable:!0}),T.prototype.unref=function(){this.selfUnref&&this._nativeImage.unref()},T})(E),c=(function(L){N(T,L);function T(Z){var M=L.call(this)||this;return M._nativeAudio=Z,M}return Object.defineProperty(T.prototype,"nativeAudio",{get:function(){return this._nativeAudio},enumerable:!1,configurable:!0}),T.prototype.unref=function(){this.selfUnref&&this._nativeAudio.unref()},T})(E),z=(function(L){N(T,L);function T(Z){var M=L.call(this)||this;return M._nativeFont=Z,M}return Object.defineProperty(T.prototype,"nativeFont",{get:function(){return this._nativeFont},enumerable:!1,configurable:!0}),T.prototype.unref=function(){this.selfUnref&&this._nativeFont.unref()},T})(E),x=(function(){function L(T,Z){this._assetLoaderCallback=Z,this.assetLoader=new T.CustomFileAssetLoader({loadContents:this.loadContents.bind(this)})}return L.prototype.loadContents=function(T,Z){var M;if(T.isImage)M=new ue(T);else if(T.isAudio)M=new le(T);else if(T.isFont)M=new ie(T);else return!1;return this._assetLoaderCallback(M,Z)},L})(),D=(function(){function L(T){this._nativeFileAsset=T}return L.prototype.decode=function(T){this._nativeFileAsset.decode(T)},Object.defineProperty(L.prototype,"name",{get:function(){return this._nativeFileAsset.name},enumerable:!1,configurable:!0}),Object.defineProperty(L.prototype,"fileExtension",{get:function(){return this._nativeFileAsset.fileExtension},enumerable:!1,configurable:!0}),Object.defineProperty(L.prototype,"uniqueFilename",{get:function(){return this._nativeFileAsset.uniqueFilename},enumerable:!1,configurable:!0}),Object.defineProperty(L.prototype,"isAudio",{get:function(){return this._nativeFileAsset.isAudio},enumerable:!1,configurable:!0}),Object.defineProperty(L.prototype,"isImage",{get:function(){return this._nativeFileAsset.isImage},enumerable:!1,configurable:!0}),Object.defineProperty(L.prototype,"isFont",{get:function(){return this._nativeFileAsset.isFont},enumerable:!1,configurable:!0}),Object.defineProperty(L.prototype,"cdnUuid",{get:function(){return this._nativeFileAsset.cdnUuid},enumerable:!1,configurable:!0}),Object.defineProperty(L.prototype,"nativeFileAsset",{get:function(){return this._nativeFileAsset},enumerable:!1,configurable:!0}),L})(),ue=(function(L){N(T,L);function T(){return L!==null&&L.apply(this,arguments)||this}return T.prototype.setRenderImage=function(Z){this._nativeFileAsset.setRenderImage(Z.nativeImage)},T})(D),le=(function(L){N(T,L);function T(){return L!==null&&L.apply(this,arguments)||this}return T.prototype.setAudioSource=function(Z){this._nativeFileAsset.setAudioSource(Z.nativeAudio)},T})(D),ie=(function(L){N(T,L);function T(){return L!==null&&L.apply(this,arguments)||this}return T.prototype.setFont=function(Z){this._nativeFileAsset.setFont(Z.nativeFont)},T})(D),we=(function(){function L(T){}return L.prototype.register=function(T){T.selfUnref=!0},L.prototype.unregister=function(T){},L})(),Fe=typeof FinalizationRegistry<"u"?FinalizationRegistry:we,He=new Fe(function(L){L?.unref()}),ze=function(L,T){var Z=new k(T);He.register(L,Z)}}),((pe,Y,I)=>{I.r(Y),I.d(Y,{RiveFont:()=>se});var N=I(3),se=(function(){function k(){}return k.setFallbackFontCallback=function(E){k._fallbackFontCallback=E??null,k._wireFallbackProc()},k._fontToPtr=function(E){var w;if(E==null)return null;var c=E.nativeFont,z=(w=c?.ptr)===null||w===void 0?void 0:w.call(c);return z??null},k._getFallbackPtr=function(E,w){return w<0||w>=E.length?null:k._fontToPtr(E[w])},k._wireFallbackProc=function(){N.RuntimeLoader.getInstance(function(E){var w=k._fallbackFontCallback;w?E.setFallbackFontCallback((function(c,z,x){var D=w(c,x);return D?Array.isArray(D)?k._getFallbackPtr(D,z):z===0?k._fontToPtr(D):null:null})):E.setFallbackFontCallback(null)})},k._fallbackFontCallback=null,k})()})],st={};function Ae(pe){var Y=st[pe];if(Y!==void 0)return Y.exports;var I=st[pe]={exports:{}};return Lt[pe](I,I.exports,Ae),I.exports}Ae.d=(pe,Y)=>{for(var I in Y)Ae.o(Y,I)&&!Ae.o(pe,I)&&Object.defineProperty(pe,I,{enumerable:!0,get:Y[I]})},Ae.o=(pe,Y)=>Object.prototype.hasOwnProperty.call(pe,Y),Ae.r=pe=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(pe,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(pe,"__esModule",{value:!0})};var _t={};return(()=>{Ae.r(_t),Ae.d(_t,{Alignment:()=>D,DataEnum:()=>tt,DataType:()=>J,DrawOptimizationOptions:()=>ue,EventType:()=>M,Fit:()=>x,Layout:()=>le,LoopType:()=>Ie,Rive:()=>U,RiveEventType:()=>Fe,RiveFile:()=>Ue,RiveFont:()=>I.RiveFont,RuntimeLoader:()=>Y.RuntimeLoader,StateMachineInput:()=>we,StateMachineInputType:()=>ie,Testing:()=>Mt,ViewModel:()=>Ge,ViewModelInstance:()=>xe,ViewModelInstanceArtboard:()=>ct,ViewModelInstanceAssetImage:()=>wt,ViewModelInstanceBoolean:()=>De,ViewModelInstanceColor:()=>yt,ViewModelInstanceEnum:()=>ut,ViewModelInstanceList:()=>lt,ViewModelInstanceNumber:()=>Tt,ViewModelInstanceString:()=>Le,ViewModelInstanceTrigger:()=>Ke,ViewModelInstanceValue:()=>Ee,decodeAudio:()=>Je,decodeFont:()=>ae,decodeImage:()=>ye});var pe=Ae(1),Y=Ae(3),I=Ae(6),N=(function(){var a=function(n,i){return a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(u,d){u.__proto__=d}||function(u,d){for(var p in d)Object.prototype.hasOwnProperty.call(d,p)&&(u[p]=d[p])},a(n,i)};return function(n,i){if(typeof i!="function"&&i!==null)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");a(n,i);function u(){this.constructor=n}n.prototype=i===null?Object.create(i):(u.prototype=i.prototype,new u)}})(),se=function(){return se=Object.assign||function(a){for(var n,i=1,u=arguments.length;i0&&p[p.length-1])&&(O[0]===6||O[0]===2)){i=0;continue}if(O[0]===3&&(!p||O[1]>p[0]&&O[1]=0||V>=0)S>=0?this.animations[S].playing=i:this.stateMachines[V].playing=i;else{var O=this.artboard.animationByName(n[y]);if(O){var B=new pe.Animation(O,this.artboard,this.runtime,i);B.advance(0),B.apply(1),this.animations.push(B)}else{var me=this.artboard.stateMachineByName(n[y]);if(me){var Me=new T(me,this.runtime,i,this.artboard);this.stateMachines.push(Me)}}}}return u&&(i?this.eventManager.fire({type:M.Play,data:this.playing}):this.eventManager.fire({type:M.Pause,data:this.paused})),i?this.playing:this.paused},a.prototype.initLinearAnimations=function(n,i,u){u===void 0&&(u=!1);for(var d=this.animations.map(function(B){return B.name}),p=0;p=0)this.animations[y].playing=i;else{var S=this.artboard.animationByName(n[p]);if(S){var V=new pe.Animation(S,this.artboard,this.runtime,i);V.advance(0),V.apply(1),this.animations.push(V)}else if(u){var O="State Machine with name ".concat(n[p]," not found");throw new c(O)}else console.error("Animation with name ".concat(n[p]," not found."))}}},a.prototype.initStateMachines=function(n,i){for(var u=this.stateMachines.map(function(V){return V.name}),d=0;d=0)this.stateMachines[p].playing=i;else{var y=this.artboard.stateMachineByName(n[d]);if(y){var S=new T(y,this.runtime,i,this.artboard);this.stateMachines.push(S)}else console.warn("State Machine with name ".concat(n[d]," not found. Falling back to find an animation with the same name.")),this.initLinearAnimations([n[d]],i,!0)}}},a.prototype.play=function(n){return this.add(n,!0)},a.prototype.advanceIfPaused=function(){this.stateMachines.forEach(function(n){n.playing||n.advanceAndApply(0)})},a.prototype.pause=function(n){return this.add(n,!1)},a.prototype.scrub=function(n,i){var u=this.animations.filter(function(d){return n.includes(d.name)});return u.forEach(function(d){return d.scrubTo=i}),u.map(function(d){return d.name})},Object.defineProperty(a.prototype,"playing",{get:function(){return this.animations.filter(function(n){return n.playing}).map(function(n){return n.name}).concat(this.stateMachines.filter(function(n){return n.playing}).map(function(n){return n.name}))},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"paused",{get:function(){return this.animations.filter(function(n){return!n.playing}).map(function(n){return n.name}).concat(this.stateMachines.filter(function(n){return!n.playing}).map(function(n){return n.name}))},enumerable:!1,configurable:!0}),a.prototype.stop=function(n){var i=this;n=Te(n);var u=[];if(n.length===0)u=this.animations.map(function(y){return y.name}).concat(this.stateMachines.map(function(y){return y.name})),this.animations.forEach(function(y){return y.cleanup()}),this.stateMachines.forEach(function(y){return y.cleanup()}),this.animations.splice(0,this.animations.length),this.stateMachines.splice(0,this.stateMachines.length);else{var d=this.animations.filter(function(y){return n.includes(y.name)});d.forEach(function(y){y.cleanup(),i.animations.splice(i.animations.indexOf(y),1)});var p=this.stateMachines.filter(function(y){return n.includes(y.name)});p.forEach(function(y){y.cleanup(),i.stateMachines.splice(i.stateMachines.indexOf(y),1)}),u=d.map(function(y){return y.name}).concat(p.map(function(y){return y.name}))}return this.eventManager.fire({type:M.Stop,data:u}),u},Object.defineProperty(a.prototype,"isPlaying",{get:function(){return this.animations.reduce(function(n,i){return n||i.playing},!1)||this.stateMachines.reduce(function(n,i){return n||i.playing},!1)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"isPaused",{get:function(){return!this.isPlaying&&(this.animations.length>0||this.stateMachines.length>0)},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"isStopped",{get:function(){return this.animations.length===0&&this.stateMachines.length===0},enumerable:!1,configurable:!0}),a.prototype.atLeastOne=function(n,i){i===void 0&&(i=!0);var u;return this.animations.length===0&&this.stateMachines.length===0&&(this.artboard.animationCount()>0?this.add([u=this.artboard.animationByIndex(0).name],n,i):this.artboard.stateMachineCount()>0&&this.add([u=this.artboard.stateMachineByIndex(0).name],n,i)),u},a.prototype.handleLooping=function(){for(var n=0,i=this.animations.filter(function(d){return d.playing});n1&&(this.eventManager.fire({type:M.Loop,data:{animation:u.name,type:Ie.PingPong}}),u.loopCount=0)}},a.prototype.handleStateChanges=function(){for(var n=[],i=0,u=this.stateMachines.filter(function(p){return p.playing});i0&&this.eventManager.fire({type:M.StateChange,data:n})},a.prototype.handleAdvancing=function(n){this.eventManager.fire({type:M.Advance,data:n})},a})(),M;(function(a){a.Load="load",a.LoadError="loaderror",a.Play="play",a.Pause="pause",a.Stop="stop",a.Loop="loop",a.Draw="draw",a.Advance="advance",a.StateChange="statechange",a.RiveEvent="riveevent",a.AudioStatusChange="audiostatuschange"})(M||(M={}));var Ie;(function(a){a.OneShot="oneshot",a.Loop="loop",a.PingPong="pingpong"})(Ie||(Ie={}));var Pe=(function(){function a(n){n===void 0&&(n=[]),this.listeners=n}return a.prototype.getListeners=function(n){return this.listeners.filter(function(i){return i.type===n})},a.prototype.add=function(n){this.listeners.includes(n)||this.listeners.push(n)},a.prototype.remove=function(n){for(var i=0;i0;){var n=this.queue.shift();n?.action&&n.action(),n?.event&&this.eventManager.fire(n.event)}},a})(),_e;(function(a){a[a.AVAILABLE=0]="AVAILABLE",a[a.UNAVAILABLE=1]="UNAVAILABLE"})(_e||(_e={}));var je=(function(a){N(n,a);function n(){var i=a!==null&&a.apply(this,arguments)||this;return i._started=!1,i._enabled=!1,i._status=_e.UNAVAILABLE,i}return n.prototype.delay=function(i){return k(this,void 0,void 0,function(){return E(this,function(u){return[2,new Promise(function(d){return setTimeout(d,i)})]})})},n.prototype.timeout=function(){return k(this,void 0,void 0,function(){return E(this,function(i){return[2,new Promise(function(u,d){return setTimeout(d,50)})]})})},n.prototype.reportToListeners=function(){this.fire({type:M.AudioStatusChange}),this.removeAll()},n.prototype.enableAudio=function(){return k(this,void 0,void 0,function(){return E(this,function(i){return this._enabled||(this._enabled=!0,this._status=_e.AVAILABLE,this.reportToListeners()),[2]})})},n.prototype.testAudio=function(){return k(this,void 0,void 0,function(){return E(this,function(i){switch(i.label){case 0:if(!(this._status===_e.UNAVAILABLE&&this._audioContext!==null))return[3,4];i.label=1;case 1:return i.trys.push([1,3,,4]),[4,Promise.race([this._audioContext.resume(),this.timeout()])];case 2:return i.sent(),this.enableAudio(),[3,4];case 3:return i.sent(),[3,4];case 4:return[2]}})})},n.prototype._establishAudio=function(){return k(this,void 0,void 0,function(){return E(this,function(i){switch(i.label){case 0:return this._started?[3,5]:(this._started=!0,typeof window>"u"?(this.enableAudio(),[3,5]):[3,1]);case 1:this._audioContext=new AudioContext,this.listenForUserAction(),i.label=2;case 2:return this._status!==_e.UNAVAILABLE?[3,5]:[4,this.testAudio()];case 3:return i.sent(),[4,this.delay(1e3)];case 4:return i.sent(),[3,2];case 5:return[2]}})})},n.prototype.listenForUserAction=function(){var i=this,u=function(){return k(i,void 0,void 0,function(){return E(this,function(d){return this.enableAudio(),[2]})})};document.addEventListener("pointerdown",u,{once:!0})},n.prototype.establishAudio=function(){return k(this,void 0,void 0,function(){return E(this,function(i){return this._establishAudio(),[2]})})},Object.defineProperty(n.prototype,"systemVolume",{get:function(){return this._status===_e.UNAVAILABLE?(this.testAudio(),0):1},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"status",{get:function(){return this._status},enumerable:!1,configurable:!0}),n})(Pe),Ve=new je,At=(function(){function a(){}return a.prototype.observe=function(){},a.prototype.unobserve=function(){},a.prototype.disconnect=function(){},a})(),oe=globalThis.ResizeObserver||At,ne=(function(){function a(){var n=this;this._elementsMap=new Map,this._onObservedEntry=function(i){var u=n._elementsMap.get(i.target);u!==null?u.onResize(i.target.clientWidth==0||i.target.clientHeight==0):n._resizeObserver.unobserve(i.target)},this._onObserved=function(i){i.forEach(n._onObservedEntry)},this._resizeObserver=new oe(this._onObserved)}return a.prototype.add=function(n,i){var u={onResize:i,element:n};return this._elementsMap.set(n,u),this._resizeObserver.observe(n),u},a.prototype.remove=function(n){this._resizeObserver.unobserve(n.element),this._elementsMap.delete(n.element)},a})(),Re=new ne,Ue=(function(){function a(n){this.enableRiveAssetCDN=!0,this.enablePerfMarks=!1,this.referenceCount=0,this.destroyed=!1,this.selfUnref=!1,this.bindableArtboards=[],this.src=n.src,this.buffer=n.buffer,n.assetLoader&&(this.assetLoader=n.assetLoader),this.enableRiveAssetCDN=typeof n.enableRiveAssetCDN=="boolean"?n.enableRiveAssetCDN:!0,this.enablePerfMarks=!!n.enablePerfMarks,this.enablePerfMarks&&(Y.RuntimeLoader.enablePerfMarks=!0),this.eventManager=new Pe,n.onLoad&&this.on(M.Load,n.onLoad),n.onLoadError&&this.on(M.LoadError,n.onLoadError)}return a.prototype.releaseFile=function(){var n;this.selfUnref&&((n=this.file)===null||n===void 0||n.unref()),this.file=null},a.prototype.releaseBindableArtboards=function(){this.bindableArtboards.forEach(function(n){return n.destroy()})},a.prototype.initData=function(){return k(this,void 0,void 0,function(){var n,i,u,d,p,y;return E(this,function(S){switch(S.label){case 0:if(!(this.src&&!this.buffer))return[3,4];S.label=1;case 1:return S.trys.push([1,3,,4]),n=this,[4,Ct(this.src)];case 2:return n.buffer=S.sent(),[3,4];case 3:throw i=S.sent(),i instanceof Error?i:new c(a.fileLoadErrorMessage);case 4:return this.destroyed?[2]:(this.assetLoader&&(d=new I.CustomFileAssetLoaderWrapper(this.runtime,this.assetLoader),u=d.assetLoader),this.enablePerfMarks&&performance.mark("rive:file-load:start"),p=this,[4,this.runtime.load(new Uint8Array(this.buffer),u,this.enableRiveAssetCDN)]);case 5:return p.file=S.sent(),this.enablePerfMarks&&(performance.mark("rive:file-load:end"),performance.measure("rive:file-load","rive:file-load:start","rive:file-load:end")),y=new I.FileFinalizer(this.file),I.finalizationRegistry.register(this,y),this.destroyed?(this.releaseFile(),[2]):(this.file!==null?this.eventManager.fire({type:M.Load,data:this}):this.fireLoadError(a.fileLoadErrorMessage),[2])}})})},a.prototype.loadRiveFileBytes=function(){return k(this,void 0,void 0,function(){var n;return E(this,function(i){return this.enablePerfMarks&&performance.mark("rive:fetch-riv:start"),n=this.src?Ct(this.src):Promise.resolve(this.buffer),this.enablePerfMarks&&this.src&&n.then(function(){performance.mark("rive:fetch-riv:end"),performance.measure("rive:fetch-riv","rive:fetch-riv:start","rive:fetch-riv:end")}),[2,n]})})},a.prototype.loadRuntime=function(){return k(this,void 0,void 0,function(){var n;return E(this,function(i){return this.enablePerfMarks&&performance.mark("rive:await-wasm:start"),n=Y.RuntimeLoader.awaitInstance(),this.enablePerfMarks&&n.then(function(){performance.mark("rive:await-wasm:end"),performance.measure("rive:await-wasm","rive:await-wasm:start","rive:await-wasm:end")}),[2,n]})})},a.prototype.init=function(){return k(this,void 0,void 0,function(){var n,i,u,d;return E(this,function(p){switch(p.label){case 0:if(!this.src&&!this.buffer)return this.fireLoadError(a.missingErrorMessage),[2];p.label=1;case 1:return p.trys.push([1,4,,5]),[4,Promise.all([this.loadRiveFileBytes(),this.loadRuntime()])];case 2:return n=p.sent(),i=n[0],u=n[1],this.destroyed?[2]:(this.buffer=i,this.runtime=u,this.enablePerfMarks&&performance.mark("rive:init-data:start"),[4,this.initData()]);case 3:return p.sent(),this.enablePerfMarks&&(performance.mark("rive:init-data:end"),performance.measure("rive:init-data","rive:init-data:start","rive:init-data:end")),[3,5];case 4:return d=p.sent(),this.fireLoadError(d instanceof Error?d.message:a.fileLoadErrorMessage),[3,5];case 5:return[2]}})})},a.prototype.fireLoadError=function(n){throw this.eventManager.fire({type:M.LoadError,data:n}),new c(n)},a.prototype.on=function(n,i){this.eventManager.add({type:n,callback:i})},a.prototype.off=function(n,i){this.eventManager.remove({type:n,callback:i})},a.prototype.cleanup=function(){this.referenceCount-=1,this.referenceCount<=0&&(this.removeAllRiveEventListeners(),this.releaseFile(),this.releaseBindableArtboards(),this.destroyed=!0)},a.prototype.removeAllRiveEventListeners=function(n){this.eventManager.removeAll(n)},a.prototype.getInstance=function(){if(this.file!==null)return this.referenceCount+=1,this.file},a.prototype.destroyIfUnused=function(){this.referenceCount<=0&&this.cleanup()},a.prototype.createBindableArtboard=function(n){if(n!=null){var i=new L(n);return(0,I.createFinalization)(i,i.nativeArtboard),this.bindableArtboards.push(i),i}return null},a.prototype.getArtboard=function(n){var i=this.file.artboardByName(n);if(i!=null)return new ze(i,this)},a.prototype.getBindableArtboard=function(n){var i=this.file.bindableArtboardByName(n);return this.createBindableArtboard(i)},a.prototype.getDefaultBindableArtboard=function(){var n=this.file.bindableArtboardDefault();return this.createBindableArtboard(n)},a.prototype.internalBindableArtboardFromArtboard=function(n){var i=this.file.internalBindableArtboardFromArtboard(n);return this.createBindableArtboard(i)},a.prototype.viewModelByName=function(n){var i=this.file.viewModelByName(n);return i!==null?new Ge(i):null},a.missingErrorMessage="Rive source file or data buffer required",a.fileLoadErrorMessage="The file failed to load",a})(),U=(function(){function a(n){var i=this,u,d,p;this.loaded=!1,this.destroyed=!1,this._observed=null,this.readyForPlaying=!1,this.artboard=null,this.eventCleanup=null,this._keyboardInteractions=null,this.shouldDisableRiveListeners=!1,this.automaticallyHandleEvents=!1,this.dispatchPointerExit=!0,this.enableMultiTouch=!1,this.enableRiveAssetCDN=!0,this._volume=1,this._artboardWidth=void 0,this._artboardHeight=void 0,this._devicePixelRatioUsed=1,this._hasZeroSize=!1,this._needsRedraw=!1,this._currentCanvasWidth=0,this._currentCanvasHeight=0,this._audioEventListener=null,this._boundDraw=null,this._pageVisibilityHandler=null,this._explicitlyStoppedRendering=!1,this._viewModelInstance=null,this._dataEnums=null,this._tabIndex=null,this._prevHasFocus=!1,this._focusOptions={allowFocusInterrupt:!1},this.drawOptimization=ue.DrawOnChanged,this.enablePerfMarks=!1,this.durations=[],this.frameTimes=[],this.frameCount=0,this.isTouchScrollEnabled=!1,this.onCanvasResize=function(y){var S=i._hasZeroSize!==y;i._hasZeroSize=y,y?(!i._layout.maxX||!i._layout.maxY)&&i.resizeToCanvas():S&&i.resizeDrawingSurfaceToCanvas()},this.frameRequestId=null,this.renderSecondTimer=0,this._boundDraw=this.draw.bind(this),typeof document<"u"&&(this._pageVisibilityHandler=this._onPageVisibilityChange.bind(this),document.addEventListener("visibilitychange",this._pageVisibilityHandler)),this.canvas=n.canvas,n.canvas.constructor===HTMLCanvasElement&&(this._observed=Re.add(this.canvas,this.onCanvasResize)),this._currentCanvasWidth=this.canvas.width,this._currentCanvasHeight=this.canvas.height,this.src=n.src,this.buffer=n.buffer,this.riveFile=n.riveFile,this.layout=(u=n.layout)!==null&&u!==void 0?u:new le,this.shouldDisableRiveListeners=!!n.shouldDisableRiveListeners,this.isTouchScrollEnabled=!!n.isTouchScrollEnabled,this.automaticallyHandleEvents=!!n.automaticallyHandleEvents,this.dispatchPointerExit=n.dispatchPointerExit===!1?n.dispatchPointerExit:this.dispatchPointerExit,this.enableMultiTouch=!!n.enableMultiTouch,this.drawOptimization=(d=n.drawingOptions)!==null&&d!==void 0?d:this.drawOptimization,this.enableRiveAssetCDN=n.enableRiveAssetCDN===void 0?!0:n.enableRiveAssetCDN,this.enablePerfMarks=!!n.enablePerfMarks,this.enablePerfMarks&&(Y.RuntimeLoader.enablePerfMarks=!0),this._focusOptions=(p=n.focusOptions)!==null&&p!==void 0?p:this._focusOptions,this.eventManager=new Pe,n.onLoad&&this.on(M.Load,n.onLoad),n.onLoadError&&this.on(M.LoadError,n.onLoadError),n.onPlay&&this.on(M.Play,n.onPlay),n.onPause&&this.on(M.Pause,n.onPause),n.onStop&&this.on(M.Stop,n.onStop),n.onLoop&&this.on(M.Loop,n.onLoop),n.onStateChange&&this.on(M.StateChange,n.onStateChange),n.onAdvance&&this.on(M.Advance,n.onAdvance),n.onload&&!n.onLoad&&this.on(M.Load,n.onload),n.onloaderror&&!n.onLoadError&&this.on(M.LoadError,n.onloaderror),n.onplay&&!n.onPlay&&this.on(M.Play,n.onplay),n.onpause&&!n.onPause&&this.on(M.Pause,n.onpause),n.onstop&&!n.onStop&&this.on(M.Stop,n.onstop),n.onloop&&!n.onLoop&&this.on(M.Loop,n.onloop),n.onstatechange&&!n.onStateChange&&this.on(M.StateChange,n.onstatechange),n.assetLoader&&(this.assetLoader=n.assetLoader),this.taskQueue=new gt(this.eventManager),this.init({src:this.src,buffer:this.buffer,riveFile:this.riveFile,autoplay:n.autoplay,autoBind:n.autoBind,animations:n.animations,stateMachines:n.stateMachines,artboard:n.artboard,useOffscreenRenderer:n.useOffscreenRenderer,tabIndex:n.tabIndex})}return Object.defineProperty(a.prototype,"viewModelCount",{get:function(){return this.file.viewModelCount()},enumerable:!1,configurable:!0}),a.new=function(n){return console.warn("This function is deprecated: please use `new Rive({})` instead"),new a(n)},a.prototype.onSystemAudioChanged=function(){this.volume=this._volume},a.prototype.init=function(n){var i=this,u=n.src,d=n.buffer,p=n.riveFile,y=n.animations,S=n.stateMachines,V=n.artboard,O=n.autoplay,B=O===void 0?!1:O,me=n.useOffscreenRenderer,Me=me===void 0?!1:me,fe=n.autoBind,We=fe===void 0?!1:fe,Be=n.tabIndex;if(!this.destroyed){if(this.src=u,this.buffer=d,this.riveFile=p,this._tabIndex=Be??null,!this.src&&!this.buffer&&!this.riveFile)throw new c(a.missingErrorMessage);var Ze=Te(y),nt=Te(S);this.loaded=!1,this.readyForPlaying=!1,Y.RuntimeLoader.awaitInstance().then(function(Xe){if(!i.destroyed){i.runtime=Xe,i.removeRiveListeners(),i.deleteRiveRenderer(),i.enablePerfMarks&&performance.mark("rive:make-renderer:start");try{if(i.renderer=i.runtime.makeRenderer(i.canvas,Me),!i.renderer)throw new Error("Renderer is null, cannot render Rive on the canvas.")}catch(Oe){throw console.error(Oe),new c("Unable to create the renderer, your environment may not support WebGL. Try the @rive-app/canvas runtime as an alternative.")}i.enablePerfMarks&&(performance.mark("rive:make-renderer:end"),performance.measure("rive:make-renderer","rive:make-renderer:start","rive:make-renderer:end")),i.canvas.width||i.canvas.height||i.resizeDrawingSurfaceToCanvas(),i.initData(V,Ze,nt,B,We).then(function(Oe){if(Oe)return i.setupRiveListeners()}).catch(function(Oe){console.error(Oe)})}}).catch(function(Xe){i.eventManager.fire({type:M.LoadError,data:Xe.message})})}},a.prototype.setupRiveListeners=function(n){var i=this;if(this.eventCleanup&&this.eventCleanup(),this.cleanupKeyboardInteractions(),!this.shouldDisableRiveListeners){var u=this.animator.stateMachines.filter(function(B){return B.playing}),d=u.filter(function(B){return i.runtime.hasListeners(B.instance)}).map(function(B){return B.instance}),p=this.isTouchScrollEnabled,y=this.dispatchPointerExit,S=this.enableMultiTouch;n&&"isTouchScrollEnabled"in n&&(p=n.isTouchScrollEnabled),this.eventCleanup=(0,I.registerTouchInteractions)({canvas:this.canvas,artboard:this.artboard,stateMachines:d,renderer:this.renderer,rive:this.runtime,fit:this._layout.runtimeFit(this.runtime),alignment:this._layout.runtimeAlignment(this.runtime),isTouchScrollEnabled:p,dispatchPointerExit:y,enableMultiTouch:S,layoutScaleFactor:this._layout.layoutScaleFactor,advanceAndDrain:this.advanceAndReportChanges.bind(this)});var V=u.filter(function(B){return B.hasFocusNodes});if(V.length){var O=this.canvas.tabIndex;(O===-1||isNaN(O))&&(this.canvas.tabIndex=this._tabIndex!==null?this._tabIndex:0),typeof window<"u"&&(this._keyboardInteractions=new I.KeyboardInteractions({canvas:this.canvas,stateMachine:V[0].instance,hasFocusNodes:!0}))}}},a.prototype.cleanupKeyboardInteractions=function(){this._keyboardInteractions&&(this._keyboardInteractions.cleanup(),this._keyboardInteractions=null)},a.prototype.removeRiveListeners=function(){this.eventCleanup&&(this.eventCleanup(),this.eventCleanup=null),this.cleanupKeyboardInteractions()},a.prototype.initializeAudio=function(){var n=this,i;Ve.status==_e.UNAVAILABLE&&(this.file.hasAudio||!((i=this.artboard)===null||i===void 0)&&i.hasAudio&&this._audioEventListener===null)&&(this._audioEventListener={type:M.AudioStatusChange,callback:function(){return n.onSystemAudioChanged()}},Ve.add(this._audioEventListener),Ve.establishAudio())},a.prototype.initArtboardSize=function(){this.artboard&&(this._artboardWidth=this.artboard.width=this._artboardWidth||this.artboard.width,this._artboardHeight=this.artboard.height=this._artboardHeight||this.artboard.height)},a.prototype.initData=function(n,i,u,d,p){return k(this,void 0,void 0,function(){var y,S,V,O;return E(this,function(B){switch(B.label){case 0:return B.trys.push([0,3,,4]),this.riveFile!=null?[3,2]:(y=new Ue({src:this.src,buffer:this.buffer,enableRiveAssetCDN:this.enableRiveAssetCDN,assetLoader:this.assetLoader,enablePerfMarks:this.enablePerfMarks}),this.riveFile=y,[4,y.init()]);case 1:if(B.sent(),this.destroyed)return y.destroyIfUnused(),[2,!1];B.label=2;case 2:this.file=this.riveFile.getInstance(),this.initArtboard(n,i,u,d,p),this.initArtboardSize(),this.initializeAudio();try{this.loaded=!0,this.eventManager.fire({type:M.Load,data:(O=this.src)!==null&&O!==void 0?O:"buffer"})}catch(me){console.error(me)}return this.animator.advanceIfPaused(),this.readyForPlaying=!0,this.taskQueue.process(),this.drawFrame(),[2,!0];case 3:return S=B.sent(),V=z(S),this.eventManager.fire({type:M.LoadError,data:V}),[2,Promise.reject(V)];case 4:return[2]}})})},a.prototype.initArtboard=function(n,i,u,d,p){if(this.file){var y=n?this.file.artboardByName(n):this.file.defaultArtboard();if(!y)throw new c("Invalid artboard name or no default artboard");this.artboard=y,y.volume=this._volume*Ve.systemVolume,this.animator=new Z(this.runtime,this.artboard,this.eventManager);var S;if(i.length>0||u.length>0?(S=i.concat(u),this.animator.initLinearAnimations(i,d),this.animator.initStateMachines(u,d)):S=[this.animator.atLeastOne(d,!1)],this.taskQueue.add({event:{type:d?M.Play:M.Pause,data:S}}),p){var V=this.file.defaultArtboardViewModel(y);if(V!==null){var O=V.defaultInstance();if(O!==null){var B=new xe(O,null);(0,I.createFinalization)(B,B.runtimeInstance),this.bindViewModelInstance(B)}}}}},a.prototype.drawFrame=function(){var n,i;!((n=document?.timeline)===null||n===void 0)&&n.currentTime?this.loaded&&this.artboard&&!this.frameRequestId&&(this._boundDraw(document.timeline.currentTime),(i=this.runtime)===null||i===void 0||i.resolveAnimationFrame()):this.scheduleRendering()},a.prototype._canvasSizeChanged=function(){var n=!1;return this.canvas&&(this.canvas.width!==this._currentCanvasWidth&&(this._currentCanvasWidth=this.canvas.width,n=!0),this.canvas.height!==this._currentCanvasHeight&&(this._currentCanvasHeight=this.canvas.height,n=!0)),n},a.prototype.pollFocusState=function(){if(!this._keyboardInteractions){this._prevHasFocus=!1;return}var n=this.animator.stateMachines.find(function(u){return u.playing&&u.hasFocusNodes});if(!n){this._prevHasFocus=!1;return}if(this.canvas instanceof HTMLCanvasElement){var i=n.focusState().hasFocus;if(i){this._keyboardInteractions.notifyRiveFocused(),this._prevHasFocus||(this.canvas!==document.activeElement&&this._focusOptions.allowFocusInterrupt&&this.canvas.focus(),this._prevHasFocus=!0);return}this._prevHasFocus=!1,this._keyboardInteractions.focusSessionState===I.FocusSessionState.RiveFocused&&this._keyboardInteractions.setFocusSessionState(I.FocusSessionState.NotFocused)}},a.prototype.advanceAndReportChanges=function(n){for(var i,u=this.animator.animations.filter(function(Ne){return Ne.playing||Ne.needsScrub}).sort(function(Ne){return Ne.needsScrub?-1:1}),d=0,p=u;d=0&&performance.mark("rive:sm-advance:start:f".concat(V)),me.advanceAndApply(n),V>=0&&(performance.mark("rive:sm-advance:end:f".concat(V)),performance.measure("rive:sm-advance:f".concat(V),"rive:sm-advance:start:f".concat(V),"rive:sm-advance:end:f".concat(V)))}this.animator.stateMachines.length==0&&this.artboard.advance(n),this.animator.handleLooping(),this.animator.handleStateChanges(),this.animator.handleAdvancing(n),this.pollFocusState(),(i=this._viewModelInstance)===null||i===void 0||i.handleCallbacks()},a.prototype.draw=function(n,i){this.frameRequestId=null;var u=performance.now(),d=this.enablePerfMarks&&this.frameCount<3?this.frameCount:-1;this.lastRenderTime||(this.lastRenderTime=n),this.renderSecondTimer+=n-this.lastRenderTime,this.renderSecondTimer>5e3&&(this.renderSecondTimer=0,i?.());var p=(n-this.lastRenderTime)/1e3;this.lastRenderTime=n,this.advanceAndReportChanges(p);var y=this.renderer;this._hasZeroSize||(this.drawOptimization==ue.AlwaysDraw||this.artboard.didChange()||this._needsRedraw||this._canvasSizeChanged())&&(y.clear(),y.save(),d>=0&&performance.mark("rive:align-renderer:start:f".concat(d)),this.alignRenderer(),d>=0&&(performance.mark("rive:align-renderer:end:f".concat(d)),performance.measure("rive:align-renderer:f".concat(d),"rive:align-renderer:start:f".concat(d),"rive:align-renderer:end:f".concat(d))),d>=0&&performance.mark("rive:artboard-draw:start:f".concat(d)),this.artboard.draw(y),d>=0&&(performance.mark("rive:artboard-draw:end:f".concat(d)),performance.measure("rive:artboard-draw:f".concat(d),"rive:artboard-draw:start:f".concat(d),"rive:artboard-draw:end:f".concat(d))),y.restore(),d>=0&&performance.mark("rive:renderer-flush:start:f".concat(d)),y.flush(),d>=0&&(performance.mark("rive:renderer-flush:end:f".concat(d)),performance.measure("rive:renderer-flush:f".concat(d),"rive:renderer-flush:start:f".concat(d),"rive:renderer-flush:end:f".concat(d))),this._needsRedraw=!1),this.frameCount++;var S=performance.now();for(this.frameTimes.push(S),this.durations.push(S-u);this.frameTimes[0]<=S-1e3;)this.frameTimes.shift(),this.durations.shift();this.animator.isPlaying?this.scheduleRendering():this.animator.isPaused?this.lastRenderTime=0:this.animator.isStopped&&(this.lastRenderTime=0)},a.prototype.alignRenderer=function(){var n=this,i=n.renderer,u=n.runtime,d=n._layout,p=n.artboard;i.align(d.runtimeFit(u),d.runtimeAlignment(u),{minX:d.minX,minY:d.minY,maxX:d.maxX,maxY:d.maxY},p.bounds,this._devicePixelRatioUsed*d.layoutScaleFactor)},Object.defineProperty(a.prototype,"fps",{get:function(){return this.durations.length},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"frameTime",{get:function(){return this.durations.length===0?0:(this.durations.reduce(function(n,i){return n+i},0)/this.durations.length).toFixed(4)},enumerable:!1,configurable:!0}),a.prototype.cleanup=function(){var n,i,u,d;this.destroyed=!0,this.stopRendering(),(i=(n=this.renderer)===null||n===void 0?void 0:n.bindContext)===null||i===void 0||i.call(n),this.cleanupInstances(),this._observed!==null&&Re.remove(this._observed),this.removeRiveListeners(),this.file&&((u=this.riveFile)===null||u===void 0||u.cleanup(),this.file=null),this.riveFile=null,this.deleteRiveRenderer(),this._audioEventListener!==null&&(Ve.remove(this._audioEventListener),this._audioEventListener=null),this._pageVisibilityHandler&&(document.removeEventListener("visibilitychange",this._pageVisibilityHandler),this._pageVisibilityHandler=null),(d=this._viewModelInstance)===null||d===void 0||d.cleanup(),this._viewModelInstance=null,this._dataEnums=null},a.prototype.deleteRiveRenderer=function(){var n;(n=this.renderer)===null||n===void 0||n.delete(),this.renderer=null},a.prototype.cleanupInstances=function(){this.eventCleanup!==null&&this.eventCleanup(),this.cleanupKeyboardInteractions(),this.stop(),this.artboard&&(this.artboard.delete(),this.artboard=null)},a.prototype.retrieveTextRun=function(n){var i;if(!n){console.warn("No text run name provided");return}if(!this.artboard){console.warn("Tried to access text run, but the Artboard is null");return}var u=this.artboard.textRun(n);if(!u){console.warn("Could not access a text run with name '".concat(n,"' in the '").concat((i=this.artboard)===null||i===void 0?void 0:i.name,"' Artboard. Note that you must rename a text run node in the Rive editor to make it queryable at runtime."));return}return u},a.prototype.getTextRunValue=function(n){var i=this.retrieveTextRun(n);return i?i.text:void 0},a.prototype.setTextRunValue=function(n,i){var u=this.retrieveTextRun(n);u&&(u.text=i)},a.prototype.play=function(n,i){var u=this;if(n=Te(n),!this.readyForPlaying){this.taskQueue.add({action:function(){return u.play(n,i)}});return}this.animator.play(n),this.eventCleanup&&this.eventCleanup(),this.cleanupKeyboardInteractions(),this.setupRiveListeners(),this.startRendering()},a.prototype.pause=function(n){var i=this;if(n=Te(n),!this.readyForPlaying){this.taskQueue.add({action:function(){return i.pause(n)}});return}this.eventCleanup&&this.eventCleanup(),this.cleanupKeyboardInteractions(),this.animator.pause(n)},a.prototype.scrub=function(n,i){var u=this;if(n=Te(n),!this.readyForPlaying){this.taskQueue.add({action:function(){return u.scrub(n,i)}});return}this.animator.scrub(n,i||0),this.drawFrame()},a.prototype.stop=function(n){var i=this;if(n=Te(n),!this.readyForPlaying){this.taskQueue.add({action:function(){return i.stop(n)}});return}this.animator&&this.animator.stop(n),this.eventCleanup&&this.eventCleanup(),this.cleanupKeyboardInteractions()},a.prototype.reset=function(n){var i,u,d=n?.artboard,p=Te(n?.animations),y=Te(n?.stateMachines),S=(i=n?.autoplay)!==null&&i!==void 0?i:!1,V=(u=n?.autoBind)!==null&&u!==void 0?u:!1;this.cleanupInstances(),this.initArtboard(d,p,y,S,V),this.taskQueue.process()},a.prototype.load=function(n){this.file=null,this.stop(),this.init(n)},Object.defineProperty(a.prototype,"layout",{get:function(){return this._layout},set:function(n){this._layout=n,(!n.maxX||!n.maxY)&&this.resizeToCanvas(),this.loaded&&!this.animator.isPlaying&&this.drawFrame()},enumerable:!1,configurable:!0}),a.prototype.resizeToCanvas=function(){this._layout=this.layout.copyWith({minX:0,minY:0,maxX:this.canvas.width,maxY:this.canvas.height})},a.prototype.resizeDrawingSurfaceToCanvas=function(n){if(this.canvas instanceof HTMLCanvasElement&&window){var i=this.canvas.getBoundingClientRect(),u=i.width,d=i.height,p=n||window.devicePixelRatio||1;if(this.devicePixelRatioUsed=p,this.canvas.width=p*u,this.canvas.height=p*d,this._needsRedraw=!0,this.resizeToCanvas(),this.drawFrame(),this.layout.fit===x.Layout){var y=this._layout.layoutScaleFactor;this.artboard.width=u/y,this.artboard.height=d/y}}},Object.defineProperty(a.prototype,"source",{get:function(){return this.src},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"activeArtboard",{get:function(){return this.artboard?this.artboard.name:""},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"animationNames",{get:function(){if(!this.loaded||!this.artboard)return[];for(var n=[],i=0;i0?this.animator.stateMachines.forEach(function(u){return u.bindViewModelInstance(n)}):this.artboard.bindViewModelInstance(n.runtimeInstance))},Object.defineProperty(a.prototype,"viewModelInstance",{get:function(){return this._viewModelInstance},enumerable:!1,configurable:!0}),a.prototype.viewModelByIndex=function(n){var i=this.file.viewModelByIndex(n);return i!==null?new Ge(i):null},a.prototype.viewModelByName=function(n){var i;return(i=this.riveFile)===null||i===void 0?void 0:i.viewModelByName(n)},a.prototype.enums=function(){if(this._dataEnums===null){var n=this.file.enums();this._dataEnums=n.map(function(i){return new tt(i)})}return this._dataEnums},a.prototype.defaultViewModel=function(){if(this.artboard){var n=this.file.defaultArtboardViewModel(this.artboard);if(n)return new Ge(n)}return null},a.prototype.getArtboard=function(n){var i,u;return(u=(i=this.riveFile)===null||i===void 0?void 0:i.getArtboard(n))!==null&&u!==void 0?u:null},a.prototype.getBindableArtboard=function(n){var i,u;return(u=(i=this.riveFile)===null||i===void 0?void 0:i.getBindableArtboard(n))!==null&&u!==void 0?u:null},a.prototype.getDefaultBindableArtboard=function(){var n,i;return(i=(n=this.riveFile)===null||n===void 0?void 0:n.getDefaultBindableArtboard())!==null&&i!==void 0?i:null},a.prototype.clearFocus=function(){var n=this.animator.stateMachines.filter(function(i){return i.playing&&i.hasFocusNodes});n.forEach(function(i){return i.clearFocus()})},a.missingErrorMessage="Rive source file or data buffer required",a.cleanupErrorMessage="Attempt to use file after calling cleanup.",a})(),J;(function(a){a.none="none",a.string="string",a.number="number",a.boolean="boolean",a.color="color",a.list="list",a.enumType="enumType",a.trigger="trigger",a.viewModel="viewModel",a.integer="integer",a.listIndex="listIndex",a.image="image",a.artboard="artboard"})(J||(J={}));var Ge=(function(){function a(n){this._viewModel=n}return Object.defineProperty(a.prototype,"instanceCount",{get:function(){return this._viewModel.instanceCount},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"name",{get:function(){return this._viewModel.name},enumerable:!1,configurable:!0}),a.prototype.instanceByIndex=function(n){var i=this._viewModel.instanceByIndex(n);if(i!==null){var u=new xe(i,null);return(0,I.createFinalization)(u,i),u}return null},a.prototype.instanceByName=function(n){var i=this._viewModel.instanceByName(n);if(i!==null){var u=new xe(i,null);return(0,I.createFinalization)(u,i),u}return null},a.prototype.defaultInstance=function(){var n=this._viewModel.defaultInstance();if(n!==null){var i=new xe(n,null);return(0,I.createFinalization)(i,n),i}return null},a.prototype.instance=function(){var n=this._viewModel.instance();if(n!==null){var i=new xe(n,null);return(0,I.createFinalization)(i,n),i}return null},Object.defineProperty(a.prototype,"properties",{get:function(){return this._viewModel.getProperties()},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"instanceNames",{get:function(){return this._viewModel.getInstanceNames()},enumerable:!1,configurable:!0}),a})(),tt=(function(){function a(n){this._dataEnum=n}return Object.defineProperty(a.prototype,"name",{get:function(){return this._dataEnum.name},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"values",{get:function(){return this._dataEnum.values},enumerable:!1,configurable:!0}),a})(),ge;(function(a){a.Number="number",a.String="string",a.Boolean="boolean",a.Color="color",a.Trigger="trigger",a.Enum="enum",a.List="list",a.Image="image",a.Artboard="artboard"})(ge||(ge={}));var xe=(function(){function a(n,i){this._parents=[],this._children=[],this._viewModelInstances=new Map,this._propertiesWithCallbacks=[],this._referenceCount=0,this.selfUnref=!1,this._runtimeInstance=n,i!==null&&this._parents.push(i)}return Object.defineProperty(a.prototype,"runtimeInstance",{get:function(){return this._runtimeInstance},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"nativeInstance",{get:function(){return this._runtimeInstance},enumerable:!1,configurable:!0}),a.prototype.handleCallbacks=function(){this._propertiesWithCallbacks.length!==0&&(this._propertiesWithCallbacks.forEach(function(n){n.handleCallbacks()}),this._propertiesWithCallbacks.forEach(function(n){n.clearChanges()})),this._children.forEach(function(n){return n.handleCallbacks()})},a.prototype.addParent=function(n){this._parents.includes(n)||(this._parents.push(n),(this._propertiesWithCallbacks.length>0||this._children.length>0)&&n.addToViewModelCallbacks(this))},a.prototype.removeParent=function(n){var i=this._parents.indexOf(n);if(i!==-1){var u=this._parents[i];u.removeFromViewModelCallbacks(this),this._parents.splice(i,1)}},a.prototype.addToPropertyCallbacks=function(n){var i=this;this._propertiesWithCallbacks.includes(n)||(this._propertiesWithCallbacks.push(n),this._propertiesWithCallbacks.length>0&&this._parents.forEach(function(u){u.addToViewModelCallbacks(i)}))},a.prototype.removeFromPropertyCallbacks=function(n){var i=this;this._propertiesWithCallbacks.includes(n)&&(this._propertiesWithCallbacks=this._propertiesWithCallbacks.filter(function(u){return u!==n}),this._children.length===0&&this._propertiesWithCallbacks.length===0&&this._parents.forEach(function(u){u.removeFromViewModelCallbacks(i)}))},a.prototype.addToViewModelCallbacks=function(n){var i=this;this._children.includes(n)||(this._children.push(n),this._parents.forEach(function(u){u.addToViewModelCallbacks(i)}))},a.prototype.removeFromViewModelCallbacks=function(n){var i=this;this._children.includes(n)&&(this._children=this._children.filter(function(u){return u!==n}),this._children.length===0&&this._propertiesWithCallbacks.length===0&&this._parents.forEach(function(u){u.removeFromViewModelCallbacks(i)}))},a.prototype.clearCallbacks=function(){this._propertiesWithCallbacks.forEach(function(n){n.clearCallbacks()})},a.prototype.propertyFromPath=function(n,i){var u=n.split("/");return this.propertyFromPathSegments(u,0,i)},a.prototype.viewModelFromPathSegments=function(n,i){var u=this.internalViewModelInstance(n[i]);return u!==null?i==n.length-1?u:u.viewModelFromPathSegments(n,i++):null},a.prototype.propertyFromPathSegments=function(n,i,u){var d,p,y,S,V,O,B,me,Me,fe,We,Be,Ze,nt,Xe,Oe,Ne,X;if(i1?this.viewModelFromPathSegments(i.slice(0,i.length-1),0):this;return u!=null?u.internalViewModelInstance(i[i.length-1]):null},a.prototype.internalReplaceViewModel=function(n,i){var u;if(i.runtimeInstance!==null){var d=((u=this._runtimeInstance)===null||u===void 0?void 0:u.replaceViewModel(n,i.runtimeInstance))||!1;if(d){i.internalIncrementReferenceCount();var p=this.internalViewModelInstance(n);p!==null&&(p.removeParent(this),this._children.includes(p)&&(this._children=this._children.filter(function(y){return y!==p})),p.cleanup()),this._viewModelInstances.set(n,i),i.addParent(this)}return d}return!1},a.prototype.replaceViewModel=function(n,i){var u,d=n.split("/"),p=d.length>1?this.viewModelFromPathSegments(d.slice(0,d.length-1),0):this;return(u=p?.internalReplaceViewModel(d[d.length-1],i))!==null&&u!==void 0?u:!1},a.prototype.incrementReferenceCount=function(){var n;this._referenceCount++,(n=this._runtimeInstance)===null||n===void 0||n.incrementReferenceCount()},a.prototype.decrementReferenceCount=function(){var n;this._referenceCount--,(n=this._runtimeInstance)===null||n===void 0||n.decrementReferenceCount()},Object.defineProperty(a.prototype,"properties",{get:function(){var n;return((n=this._runtimeInstance)===null||n===void 0?void 0:n.getProperties().map(function(i){return se({},i)}))||[]},enumerable:!1,configurable:!0}),Object.defineProperty(a.prototype,"viewModelName",{get:function(){var n,i;return(i=(n=this._runtimeInstance)===null||n===void 0?void 0:n.getViewModelName())!==null&&i!==void 0?i:""},enumerable:!1,configurable:!0}),a.prototype.internalIncrementReferenceCount=function(){this._referenceCount++},a.prototype.cleanup=function(){var n=this,i;if(this._referenceCount--,this._referenceCount<=0){this.selfUnref&&((i=this._runtimeInstance)===null||i===void 0||i.unref()),this._runtimeInstance=null,this.clearCallbacks(),this._propertiesWithCallbacks=[],this._viewModelInstances.forEach(function(p){p.cleanup()}),this._viewModelInstances.clear();var u=w([],this._children,!0);this._children.length=0;var d=w([],this._parents,!0);this._parents.length=0,u.forEach(function(p){p.removeParent(n)}),d.forEach(function(p){p.removeFromViewModelCallbacks(n)})}},a})(),Ee=(function(){function a(n,i){this.callbacks=[],this._viewModelInstanceValue=n,this._parentViewModel=i}return a.prototype.on=function(n){this.callbacks.length===0&&this._viewModelInstanceValue.clearChanges(),this.callbacks.includes(n)||(this.callbacks.push(n),this._parentViewModel.addToPropertyCallbacks(this))},a.prototype.off=function(n){n?this.callbacks=this.callbacks.filter(function(i){return i!==n}):this.callbacks.length=0,this.callbacks.length===0&&this._parentViewModel.removeFromPropertyCallbacks(this)},a.prototype.internalHandleCallback=function(n){},a.prototype.handleCallbacks=function(){var n=this;this._viewModelInstanceValue.hasChanged&&this.callbacks.forEach(function(i){n.internalHandleCallback(i)})},a.prototype.clearChanges=function(){this._viewModelInstanceValue.clearChanges()},a.prototype.clearCallbacks=function(){this.callbacks.length=0},Object.defineProperty(a.prototype,"name",{get:function(){return this._viewModelInstanceValue.name},enumerable:!1,configurable:!0}),a})(),Le=(function(a){N(n,a);function n(i,u){return a.call(this,i,u)||this}return Object.defineProperty(n.prototype,"value",{get:function(){return this._viewModelInstanceValue.value},set:function(i){this._viewModelInstanceValue.value=i},enumerable:!1,configurable:!0}),n.prototype.internalHandleCallback=function(i){i(this.value)},n})(Ee),Tt=(function(a){N(n,a);function n(i,u){return a.call(this,i,u)||this}return Object.defineProperty(n.prototype,"value",{get:function(){return this._viewModelInstanceValue.value},set:function(i){this._viewModelInstanceValue.value=i},enumerable:!1,configurable:!0}),n.prototype.internalHandleCallback=function(i){i(this.value)},n})(Ee),De=(function(a){N(n,a);function n(i,u){return a.call(this,i,u)||this}return Object.defineProperty(n.prototype,"value",{get:function(){return this._viewModelInstanceValue.value},set:function(i){this._viewModelInstanceValue.value=i},enumerable:!1,configurable:!0}),n.prototype.internalHandleCallback=function(i){i(this.value)},n})(Ee),Ke=(function(a){N(n,a);function n(i,u){return a.call(this,i,u)||this}return n.prototype.trigger=function(){return this._viewModelInstanceValue.trigger()},n.prototype.internalHandleCallback=function(i){i()},n})(Ee),ut=(function(a){N(n,a);function n(i,u){return a.call(this,i,u)||this}return Object.defineProperty(n.prototype,"value",{get:function(){return this._viewModelInstanceValue.value},set:function(i){this._viewModelInstanceValue.value=i},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"valueIndex",{get:function(){return this._viewModelInstanceValue.valueIndex},set:function(i){this._viewModelInstanceValue.valueIndex=i},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"values",{get:function(){return this._viewModelInstanceValue.values},enumerable:!1,configurable:!0}),n.prototype.internalHandleCallback=function(i){i(this.value)},n})(Ee),lt=(function(a){N(n,a);function n(i,u){return a.call(this,i,u)||this}return Object.defineProperty(n.prototype,"length",{get:function(){return this._viewModelInstanceValue.size},enumerable:!1,configurable:!0}),n.prototype.addInstance=function(i){i.runtimeInstance!=null&&(this._viewModelInstanceValue.addInstance(i.runtimeInstance),i.addParent(this._parentViewModel))},n.prototype.addInstanceAt=function(i,u){return i.runtimeInstance!=null&&this._viewModelInstanceValue.addInstanceAt(i.runtimeInstance,u)?(i.addParent(this._parentViewModel),!0):!1},n.prototype.removeInstance=function(i){i.runtimeInstance!=null&&(this._viewModelInstanceValue.removeInstance(i.runtimeInstance),i.removeParent(this._parentViewModel))},n.prototype.removeInstanceAt=function(i){this._viewModelInstanceValue.removeInstanceAt(i)},n.prototype.instanceAt=function(i){var u=this._viewModelInstanceValue.instanceAt(i);if(u!=null){var d=new xe(u,this._parentViewModel);return(0,I.createFinalization)(d,u),d}return null},n.prototype.swap=function(i,u){this._viewModelInstanceValue.swap(i,u)},n.prototype.internalHandleCallback=function(i){i()},n})(Ee),yt=(function(a){N(n,a);function n(i,u){return a.call(this,i,u)||this}return Object.defineProperty(n.prototype,"value",{get:function(){return this._viewModelInstanceValue.value},set:function(i){this._viewModelInstanceValue.value=i},enumerable:!1,configurable:!0}),n.prototype.rgb=function(i,u,d){this._viewModelInstanceValue.rgb(i,u,d)},n.prototype.rgba=function(i,u,d,p){this._viewModelInstanceValue.argb(p,i,u,d)},n.prototype.argb=function(i,u,d,p){this._viewModelInstanceValue.argb(i,u,d,p)},n.prototype.alpha=function(i){this._viewModelInstanceValue.alpha(i)},n.prototype.opacity=function(i){this._viewModelInstanceValue.alpha(Math.round(Math.max(0,Math.min(1,i))*255))},n.prototype.internalHandleCallback=function(i){i(this.value)},n})(Ee),wt=(function(a){N(n,a);function n(i,u){return a.call(this,i,u)||this}return Object.defineProperty(n.prototype,"value",{set:function(i){var u;this._viewModelInstanceValue.value((u=i?.nativeImage)!==null&&u!==void 0?u:null)},enumerable:!1,configurable:!0}),n.prototype.internalHandleCallback=function(i){i()},n})(Ee),ct=(function(a){N(n,a);function n(i,u){return a.call(this,i,u)||this}return Object.defineProperty(n.prototype,"value",{set:function(i){var u,d,p;i.isBindableArtboard?p=i:p=i.file.internalBindableArtboardFromArtboard(i.nativeArtboard),this._viewModelInstanceValue.value((u=p?.nativeArtboard)!==null&&u!==void 0?u:null),p?.nativeViewModel&&this._viewModelInstanceValue.viewModelInstance((d=p?.nativeViewModel)!==null&&d!==void 0?d:null)},enumerable:!1,configurable:!0}),n.prototype.internalHandleCallback=function(i){i()},n})(Ee),Ct=function(a){return k(void 0,void 0,void 0,function(){var n,i,u;return E(this,function(d){switch(d.label){case 0:return n=new Request(a),[4,fetch(n)];case 1:if(i=d.sent(),!i.ok)throw new Error("Failed to fetch the Rive file: HTTP ".concat(i.status));return[4,i.arrayBuffer()];case 2:return u=d.sent(),[2,u]}})})},Te=function(a){return typeof a=="string"?[a]:a instanceof Array?a:[]},Mt={EventManager:Pe,TaskQueueManager:gt},Je=function(a){return k(void 0,void 0,void 0,function(){var n,i,u;return E(this,function(d){switch(d.label){case 0:return n=new Promise(function(p){return Y.RuntimeLoader.getInstance(function(y){y.decodeAudio(a,p)})}),[4,n];case 1:return i=d.sent(),u=new I.AudioWrapper(i),I.finalizationRegistry.register(u,i),[2,u]}})})},ye=function(a){return k(void 0,void 0,void 0,function(){var n,i,u;return E(this,function(d){switch(d.label){case 0:return n=new Promise(function(p){return Y.RuntimeLoader.getInstance(function(y){y.decodeImage(a,p)})}),[4,n];case 1:return i=d.sent(),u=new I.ImageWrapper(i),I.finalizationRegistry.register(u,i),[2,u]}})})},ae=function(a){return k(void 0,void 0,void 0,function(){var n,i,u;return E(this,function(d){switch(d.label){case 0:return n=new Promise(function(p){return Y.RuntimeLoader.getInstance(function(y){y.decodeFont(a,p)})}),[4,n];case 1:return i=d.sent(),u=new I.FontWrapper(i),I.finalizationRegistry.register(u,i),[2,u]}})})}})(),_t})())})(gn)),gn.exports}var Lr=gi();const yi=vi(Lr),bi=pi({__proto__:null,default:yi},[Lr]);export{bi as r}; diff --git a/apps/kimi-code/dist-web/assets/rive_fallback-DXpHVJvQ.js b/apps/kimi-code/dist-web/assets/rive_fallback-DXpHVJvQ.js deleted file mode 100644 index e974b7b53..000000000 --- a/apps/kimi-code/dist-web/assets/rive_fallback-DXpHVJvQ.js +++ /dev/null @@ -1 +0,0 @@ -const A="data:application/wasm;base64,AGFzbQEAAAABkQ7ZAWABfwF/YAF/AGACf38Bf2ACf38AYAN/f38Bf2ADf39/AGAGf39/f39/AX9gBH9/f38Bf2AEf39/fwBgAABgBX9/f39/AGABfwF9YAV/f39/fwF/YAJ/fQBgA39/fQBgAAF/YAZ/f39/f38AYAJ/fwF9YAd/f39/f39/AGAIf39/f39/f38Bf2ADf31/AX9gBn9/fX99fwBgA39/fQF/YAN/fX0AYAF8AXxgAn99AX1gAn99AX9gAn9+AX9gBH9/fn8Bf2AHf39/f39/fwF/YAF9AX1gBH9/f30AYAN/fn8Bf2ADf399AX1gCn9/f319fX19fX8AYAh/f39/f39/fwBgBn9/f319fwBgA39+fwF+YAN/fX8AYAV/f399fwF/YAN/fX0Bf2AIf39/fX19fX8AYAF9AX9gBn9/f39/fQBgBH9/fX8Bf2AHf319fX19fQBgBX9+fn5+AGACfX0BfWAHf39/fX99fwBgCn9/f39/f39/f38Bf2ACf38BfmAKf39/f39/f39/fwBgAX8BfGAEf399fQBgA39/fwF9YAJ/fgBgAnx8AXxgAXwBfmAGf399fX19AGACf3wBf2AEf3x8fwBgBX9/f399AGAEf319fQF9YAd/f319fX1/AGAJf39/f39/fX9/AX9gBn9/f399fwF/YAl/f39/f39/f38Bf2AEf39/fgF/YAV/f35/fwBgA39/fwF+YAV/f39/fgF/YAABfGABfAF/YAJ8fwF8YAp/f39/f39/f399AGAEf35/fwF/YAN/f34AYAd/f39/f319AGAIf39/f39/fX8Bf2AJf399fX19fX1/AGAFf39/fX0AYAJ/fwF8YAJ+fwF/YAV/f39/fAF/YAt/f39/f39/f39/fwF/YAd/f39/f35+AX9gA39/fwF8YAR/fn5/AGADfHx/AXxgAn98AGADf398AX9gCX9/fX19fX9/fwBgCH9/fX19f39/AGAJf39/fX19fX19AGAFf399fX0BfWAGf39/f39+AX9gBn9/f39+fgF/YAR/f39/AXxgA3x+fgF8YAF8AGAEfn5+fgF/YAF+AX9gAn5+AXxgBX99fX19AGAGf39/f399AX9gBX9/fX1/AGAEf39/fQF/YAh/f319fX19fQBgAX8BfmAAAX5gA319fQF9YAR9fX19AX1gBX99fX9/AGAEf399fwBgBn9/fX1/fwBgBH9+f38AYAV/f39+fwF/YAV/f399fQF9YAd/f399fX19AGAFf39/f38BfWAEf39/fwF9YAV/fX18fABgCn9/fHx8fH9/f38AYAN/fHwAYAZ/f35/f30AYAR/f39+AGACf34BfmACfH8Bf2ACfH8BfWAGf3x/f39/AX9gAX4BfmAEf39/fwF+YAx/f39/f39/f39/f38Bf2AEf39/fAF/YAV/f39+fgF/YA9/f39/f39/f39/f39/f38AYAF8AX1gAn5/AGANf39/f39/f39/f39/fwBgCX9/f39/f39/fwBgBX9/f39/AXxgAn5+AX9gAn5/AXxgAn5+AX1gB39/fX1/f30AYAV/f3x8fwBgB39/f39/f30AYA5/fX1/f399fX9/f39/fwF/YAV/f319fQBgBH98fHwAYAR+f39/AX5gBX9/f35/AGAGf399fX19AX9gBn9+f39/fwBgAAF9YAR/fn1/AX9gB399fX19f30AYAN9fX0Bf2AFfX1/f38BfWAFfX19fX8BfWALf39/f39/f39/f38AYAV9f39/fwBgBn9/fX19fwBgBn9/f319fQF9YAN+fn0BfWAHf39/fX1/fwBgBn99fX19fQBgB39/fX19fX0AYA1/f39/f399fX9/f399AGAGf39/f35/AGADf35/AGAFf39/fX8AYAV/f31/fwBgCH9/f31/f399AX9gBH99fX0AYAV/f398fwF/YAV/f39/fQF/YAR/f319AX9gA35+fwBgB39/f31/f38Bf2AGf39/f39/AX1gCX99fXx8fHx8fABgB398fHx8fHwAYAV/fX9/fwF9YAd/f39/fn9/AGAEf39+fQBgB39/f39+f38Bf2ADf39+AX5gA39+fQBgCX9/f39/f35/fwBgBH9+fn4Bf2AFf35+fn8Bf2ACfX8BfWAEfHx/fwF9YA1/fX99f31/fX19fX1/AX9gBH99f30Bf2AFf31/fX0Bf2AOf319f39/fX1/f39/f38AYAd/f31/fX9/AGAEf399fQF9YAR/fX1/AX1gA399fQF9YAN+fn4BfmAFf35/f38AYAV/f39/fwF+YAJ/fAF8YAN/fn4AYAR/f39+AX5gAn1/AX9gA35/fwF/YAJ9fQF/YAJ+fgF+YAR/f35/AX5gA39/fgF/YAZ/f39+f38AYAh/f39/f39+fgF/YAV/f39+fgAC7Q09A2VudhFfZW12YWxfbmV3X29iamVjdAAPA2Vudg1fZW12YWxfZGVjcmVmAAEDZW52EF9lbXZhbF9uZXdfYXJyYXkADwNlbnYNX2VtdmFsX2luY3JlZgABA2VudgtfZW12YWxfY2FsbABhA2VudhhfZW12YWxfZ2V0X21ldGhvZF9jYWxsZXIABANlbnYWX2VtdmFsX3J1bl9kZXN0cnVjdG9ycwABA2VudglfZW12YWxfYXMAVgNlbnYZX2VtYmluZF9yZWdpc3Rlcl9mdW5jdGlvbgASA2VudhZfZW1iaW5kX3JlZ2lzdGVyX2NsYXNzAIoBA2VudiJfZW1iaW5kX3JlZ2lzdGVyX2NsYXNzX2NvbnN0cnVjdG9yABADZW52H19lbWJpbmRfcmVnaXN0ZXJfY2xhc3NfZnVuY3Rpb24AiwEDZW52H19lbWJpbmRfcmVnaXN0ZXJfY2xhc3NfcHJvcGVydHkAMwNlbnYTX2VtdmFsX3NldF9wcm9wZXJ0eQAFA2VudhJfZW12YWxfbmV3X2NzdHJpbmcAAANlbnYRX2VtdmFsX3Rha2VfdmFsdWUAAgNlbnYlX2VtYmluZF9yZWdpc3Rlcl9jbGFzc19jbGFzc19wcm9wZXJ0eQAjA2VudhVfZW1iaW5kX3JlZ2lzdGVyX2VudW0ACANlbnYbX2VtYmluZF9yZWdpc3Rlcl9lbnVtX3ZhbHVlAAUDZW52HV9lbWJpbmRfcmVnaXN0ZXJfdmFsdWVfb2JqZWN0ABADZW52I19lbWJpbmRfcmVnaXN0ZXJfdmFsdWVfb2JqZWN0X2ZpZWxkADMDZW52HV9lbWJpbmRfZmluYWxpemVfdmFsdWVfb2JqZWN0AAEDZW52JV9lbWJpbmRfcmVnaXN0ZXJfY2xhc3NfY2xhc3NfZnVuY3Rpb24AIwNlbnYSX2VtdmFsX2NhbGxfbWV0aG9kAIwBA2VudiVfZW1iaW5kX2NyZWF0ZV9pbmhlcml0aW5nX2NvbnN0cnVjdG9yAAQDZW52E19lbXZhbF9nZXRfcHJvcGVydHkAAgNlbnYaX2VtdmFsX2dldF9tb2R1bGVfcHJvcGVydHkAAANlbnYVX2VtYmluZF9yZWdpc3Rlcl92b2lkAAMDZW52FV9lbWJpbmRfcmVnaXN0ZXJfYm9vbAAIA2VudhtfZW1iaW5kX3JlZ2lzdGVyX3N0ZF9zdHJpbmcAAwNlbnYcX2VtYmluZF9yZWdpc3Rlcl9zdGRfd3N0cmluZwAFA2VudhZfZW1iaW5kX3JlZ2lzdGVyX2VtdmFsAAEDZW52GF9lbWJpbmRfcmVnaXN0ZXJfaW50ZWdlcgAKA2VudhZfZW1iaW5kX3JlZ2lzdGVyX2Zsb2F0AAUDZW52HF9lbWJpbmRfcmVnaXN0ZXJfbWVtb3J5X3ZpZXcABQNlbnYXd2FzbV9zdGFydF9pbWFnZV9kZWNvZGUABQNlbnYQaXNXaW5kb3dzQnJvd3NlcgAPA2VudhhlbXNjcmlwdGVuX2FzbV9jb25zdF9pbnQABANlbnYIc3RyZnRpbWUABwNlbnYSZW1zY3JpcHRlbl9nZXRfbm93AEcDZW52CV9hYm9ydF9qcwAJA2VudhNlbXNjcmlwdGVuX2RhdGVfbm93AEcDZW52IF9lbXNjcmlwdGVuX2dldF9ub3dfaXNfbW9ub3RvbmljAA8DZW52EF9fc3lzY2FsbF9vcGVuYXQABwNlbnYRX19zeXNjYWxsX2ZjbnRsNjQABANlbnYPX19zeXNjYWxsX2lvY3RsAAQWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MQdmZF9yZWFkAAcWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MQhmZF93cml0ZQAHFndhc2lfc25hcHNob3RfcHJldmlldzEIZmRfY2xvc2UAAANlbnYVX2Vtc2NyaXB0ZW5fbWVtY3B5X2pzAAUDZW52CV90enNldF9qcwAIA2VudhZlbXNjcmlwdGVuX3Jlc2l6ZV9oZWFwAAAWd2FzaV9zbmFwc2hvdF9wcmV2aWV3MRFlbnZpcm9uX3NpemVzX2dldAACFndhc2lfc25hcHNob3RfcHJldmlldzELZW52aXJvbl9nZXQAAgNlbnYKc3RyZnRpbWVfbAAMA2VudhlfZW1zY3JpcHRlbl90aHJvd19sb25nam1wAAkDZW52Cmludm9rZV92aWkABQNlbnYXX2VtYmluZF9yZWdpc3Rlcl9iaWdpbnQAEhZ3YXNpX3NuYXBzaG90X3ByZXZpZXcxB2ZkX3NlZWsADANlbnYNX2xvY2FsdGltZV9qcwAFA2VudgpfZ210aW1lX2pzAAUD0Fry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BAcDAAAAAAAAAAABAAAAAwMEBwMAAAMDAwADBAcDAAMEBwMAAwQHAwAEBwADAAICAwkCAwIBCQMHBAEAAQAAAwIEBwMAAQEBAwEAAgQDAgMCAgMACQEBAwMAbAACAgACAAABAAEBAAIEAQEBAwMBAgIFAQUBAAEKAwQeAwQNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0DAwMDAwMDAwMDAwMDAwMDAwMDAwQAAAIAAQICHwMBAgECAAAABAQBAQEBAAEBAwQAAQACAQACAAEAAAECAQIAAQIBAgECAQIBAgIfFgMAAQIBAgIfAwEKAgQEAwQDBAMECgcDAAECBQIABAIaKhYBCgMDAQoDAwMBCgEKBQEKAQoBCgEKCAEKBAEKAQoAAAMDAwMBAQMDAwQHAwADAgICBAABAAIEAQAAAwUFAwMCAAABAAIEAQEAAQADAQQCBQgDAQEAAAEAAgQEAQQDAQEEABoBAQEBAQABAAIBAgQEAAUBARoDAQMDAAAAmAEEBAEBAQEAAQACBAABAQEAAAABAAIEAAACAgQAAAQEBQACAAMCAgEBAAIEAQACAAcAAAEBAwQAAAAMAgIAAgABAQEEDAACAQUBDAAAAAEBAwMAAQMBAAAAAQEHAwQECgMFAAUAAAAAAAABAgUCAgUBAwUCAAUBAgUKAAABAwADAAIEDAMABAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAEAAgEAAgQAAQABAAIEBAIBAwMBAQACAQEAAgEAAgQBAQICAgIAAgACBAEBAAIEBAEBAQEBAQEAAgQBAQACBAEBAAIEAQEAAgQBAAEAAgQBAQACBAEBAAIEAQACAQACBAEBAAIEAQEAAgQBAQACAQACAQACAAEAAgQAAQABAAIBAAIEAQEAAgQBAQACAQACAAEAAgQBAAABAAIEAQEAAAABAAIEAQACBAEBAAIAAgQAAgEAAgEBAAABAAIEBAEAAQAAAgEAAgQBAQACBAABAQABAAIEBAEBAQACAAIBAQACBAUBAAEAAgQBAQACAQACBAEBAAIBAAIEAgEBAQAAAgQBAAEAAgQBAQACAAEAAgABAAIBAAIEAQEAAgQBAQEAAgQBAQACBAEBAAIBAAIBAAIBAAIBAAACBAIBAQACBAEBAAIEAQEAAgQBAAEAAgQBAQACBAEBAAIEAAEAAwEBAwACBAEBAAIEAQEAAgQEAQABAQEBAQEBAQEBBAEAAgAAAgEAAgQBAQEBAQEAAgQBbQACBAEBAAIEAQEAAgQDAQEBAAEAAgQEAQEBAQACAAAABAEBAAIBAAIBAAIBAAIEAQEAAgQBAQACAAEAAgQAAQEAAgEAAgEAAgABAAIEAAEBAAIEAQEAAgEAAgEFAAIECAIAAQABAAMDAwADBQMDAAQBAQEBAAAAAQACBAABAQACBAICPhkZAQEBARduAQAoAQACBAI+GW4eAQEBAR4AAQABAAIEAgEBAAEBAQADAAEAAgQDAwACAAABAQUFmQEBAAMDAR4BAQEBAQEAAgQAAwABAAIEBAMBAAMAAQAAAwADAAMAAQAAAAADAAMEAAMAAwADAQACAAADAQAAAAAAAAMAAAEAAAAAAAMAAQABAQEAAwACBAAAAQEAAgQAAAAEAy8eHh4eL5oBAwQABQEFAQUBDwMCAAEAAgQBAQABAwEBAQACBAADAw5NAgMKAQACAAADARILCwAAAAMKDk0DAgMCAAAAAQMDAgICTgJOmwFLAwEFBQ4ZCm9NApwBA50BAwABARIAAQACBAAACwsAAAEBAQACAgADAQACAQEAAwIBAAIAAgEAAgQBAQAJAAABJg4AAQABAAIEBAICAgICAQEBAQkCAAICAQAAAgQBAQACAAIHAwALAgMABwMAAAEAASYmBA4DDgABAAsBAgkDAAAAAQUBAQIZAQACBAEBAQEAPhkBAAIAAgcDAAIBAAIAAAEmJg4AAQABAAICAAICAQAAAgQEAQEBAQEBAQEAAwICAQACBAEAAQIBAAABAAIAAQEIBAUWcAAIAQEAAAAAAAEAAAAAAAEAAgQAAQABAwMDAwIBAAICAwAIBQMFAQEBAQABAAIEAQEAAQEBAQEBAAIEAAEBAQEBAAIEAAUAAAAFAAABAAIEAgIBAwEBAQABAAMBAQIBAAMBAQIAAQABAAAAAgIBAQACBAAENAABAAIAAAQWBBYBAQACBAADBAQBAAIABAQBAAIABAABAAIAAAABAAIEAAIDAQABAAIAAAQEAAUBARoBAwAEAAEAAgAABAABAAIEAAEABAMEBAEBAQAAAQACBAAAAQEBAQQAAQACAAAEAQEABQMFAQABAAIEAAAEBAMDBQABAAIEAQAEBAABAAIAAAICAQMCBBoNAgMDAQEAAAEAAgQAAQABAQEDAgIBCwsDAAABAAIEAAMCAQACBAEBAAQDAAEAAgABAwIEAwMDAAAAAAAAAQACBAEAAQECBQUCBAAAAwMDAQECAwMDAwABAAIEAQEAAAEAAwMAAgIOAgEAAAABAAIEAAEAAwUDAQACBAQBAQAFAQQBAAIEAQAAAAEAAgQBAQMBAQEBAQAAAAwCBAEREQOeAQsLAAMBAgAAAAEADAIEAQECAgAAAgMDAwQDAAAAAwADAQICBQIAAAMDCgEIEgMEBAcABAQCAwICnwEAAAABAQ4OAwMKAwMDAwgABAcDAAIBAAEAAgQBAAMDBAMAAQACAAEEEQICAg8kAyQDKQMiAwgDD08DBQMKAz8DBQMKAwUDCAMEDCIDIgMpA0ADAAAAAAAFAwQHAAMAAwAXFwgtAQQHAwADAAMABQMAUCEDAgQHAwAACAUHAwAEAQADAwMDAAEBAQABAAAFCBEAEQADBQICCAAAAQUAAgcCBgQHAgICBggIAwMIBQMBCg8CBQcHBAEBAQMAAwMBAwMDAAAIBAMQABIPAgIBEwQIAwUCAgICAggEAgUBAwQEoAECBAAAAAAAAAEAAQEBAAIHAAwBAQICAgQEBAQEAAACAgcDAAQBAwABAgMCAwEEBwIMCgYBAQUDDgMDBAAAAAAAAAAAAAABAAAAAQACAAAAAAEAAAIBAAIAAAAAAAAAAAACAQACBAEBAQEAAgEBAQEAAgQACAgDAwEBAAADAwMDAwMDAQABAAIAAQAAAQEAAAEBAgENCAEDAAEAAgQBAAMXAAQDFwMBAgIAAAMBAwEBAAADCwsVFQoKAQEXAwABAAIEAQEBAQEBAAGhAQoDFwABAAIEAQMBAQMAAgIBAwILFRUKCgEBAQEBAQABAAIEAQEBAQEBAAAAAgEAAgQBAQEAAAMBAAIEAgICAgABAAAAAQAAAQACBAICAgEsAAEAAh8wAQACBAQBAQECAgMAAAMAAB9xMAEAAgQBAB81MAEAAgQBAB8wAQACBAEAAh8wAAEAAgQBAAEfMAEAAgQBAAABAAICAgMCAQABBAANDQEBAgIAAAMCAAAPAAoCAgADFA8AAAABAAICAwMBAQEBAQEDAQMUAg4CAgEDAwAnAwEVAAAAAAAVAwAAAQAAABQAAQIDAycBBQIVAwACDw8PDw8PAAEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQACBAEBAQEBAAADAQACBAIEBwMAAAICAQEBAQEBAQELGaIBAAEAAQMAAAsaDgADAAEOAAQAGgAAAgIBAwIKChAICAQODhIBAQEBAQEBAAEAAgQAAQADAQEDAwEBAAIEAAEDHQMDaAwEBwMABwEAAAEBBAcDAAAAAQEBAQEBAAEAAQACBAEDAwMAAwICAwIFAQACBAEBAAICBQEAAgQEAQEBAAUBAAIEAQABAwMCAgICAQgEAgMDAwMDAwMDAAMDAwMAAgIAAQACAAAAAQAAAQAAAQAAAwMAAQACBAEABQUFBQUFBQUCBQIFBQIOAgICBQEAAgQBAAICBQEAAgAAAQACAgUEBAACAwgAAgQFBAcBAAEBBwQAAQEBAQUFAQQDAAMHAQEDCAUEAAQABAAEAAQABAAEAAAEAAMCAwEBAQEBAQAAAQEBAQIEAAgDAAMAAgAAAwAAAAMAAAADAAAAAwgDAAADAwAAAwAAAwMAAAMDAAMDAAAAAAMCBAIFAwQABQUHAFlRAAADAgAAAAADBAIAAAQBBAMCAAMAAwMABAkDAwMEAwICAgIAAQACAAANCAUCAgMDAgEDAwEBAAADAQIAAwMBAwUrKwAAAAEBAAIEAQABAAEBAgEAAgADAQEBAQMDAwAODlACAAABAAIDAQEDowEBAAMBAQMDBQMICAgKCgUDBRUVCgoAAAABAQACBAEBAAAAAAEAAAEAAAEAAAEAAgIBAwUIAwMIAAMBAQEAAQADBAMDAwUCAQACBAEBAAABAAIEAAACAgACAgMDBAADAwEBAQEBAQMFAwEBAQADAAACFQoFBQMDAwEBAQEUAQAIBQcBAwAADAIEAQEAFQoUAQACAwUBAQEDAAcIBQEAAwAAAwAAAQMAAwABAAwCBAEBAgAAIAMAAAMDAgIDAwMBAQADAwECAwMnJwEBAQEBAQAAAwMAAQACBAAAAAAAAQABAAAAAAMBAAIEAQEBAAEAAQEDAAEAAgQBAAMAAAABAAIEBAEDAQEAAgICAQENCwEAAgQBAAEDFAEAAgQAAwMUAQACBAEBAAABAAIUAwEAAwEBAAIAAQELCwEBAAIAAAEVFQoKAwMBAQEBAaQBAgEEBwMAAAM6AwJyAQMAAgECARYDAAMBDh8OcBalAaYBJgUmFwICDiEAAwMEAgEBAQADAwEBAAEAAgABAAADAQACBAMBAQABAAMFAQEBAQEBEm8BAAIAAQABAwcDAAMFAwUDDqcBAwEBBAUDqAEDBQMDAAMBAwIBAwIEqQEIBAICBwUFBaoBqwEDAwMAAAAAAQMABQAIcQMEBwMAAxACrAECrQEDAgEAAgQBAQEBAQACAwICAwMBCQEABwMDBwUFBAMBBwMAAwADAAMDAAADAwcEBAIAAAMBAwgEBQMDAAcDAwMHAQMDAwEECyoCCQoABAIFAwUAAgEABAQDAwMIAwADAAADAAACCAAAAAAFBQoAAAACAwUCAAUAAAAAAAIABQAEAACuAQAAAgAAAAAAAAARAAAAAABWAAAAAAAAAAADAwMDAwMCAwAAAAIAAC0AAAAAAAAAAAMDAwMDAwMDAwMDAwMDAwMCAgUDAgI6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgADAAAAAwMAAAADAAADAwMAAAMDAAMCBQAAAAAAAwAFAAMBAAMDAQADAAADAAAAAAADAAMCAAEDAw0DAw0DAwICAAEDAw0DAw0DAwEAAwADAwAAAwMDAAgFAAIAAgAAAAAAAAIBAQUGAQAAAREDAAMAAAADAwMDAAAAAwMDAwMDAwMAAAMAFAIDAgAFAwAEAgACCQICAgICAgICAgICAQAAAAAAAAMAAAADAwMDAwMDAwMDABYABAAEAAQBAAEAAQABAAAAAAMDAwMDAAADAwMDAwMAAAMAAwMAAAMAAAAAABAFBQUFBQUFBQUFBQMABQMAcwgFNggAAAKvAQEBdAADAAMDAAAAAwAABgAAAAAAAAAAAAMAAgEBAQACBAsLAAMCAQACAAADAwEAAgAAAx8DBCwEBAACAgICAAEBAAAAAwEDAwMEAAABAwMAAQACBAMBAQEAAwMAAAEDAwAABQE3AwUFTAEBAwUFCDcAAAMAAQACBAAAAgICAwEBAQAAAAADAAABAQAAAAAAAQMAAwEAAQACAgIBBQEAAAEBAAAAAQACAgIBBQEAAAEBAAAAAQACAgIBDgEAAAEBAAAAAQACAgIBBQEAAAEBAAAAAQACAgIBAAABAAAAAQACBAICAwMBAQAAAAAAAQEAAAAAAAABAAIBAAEAAgQAAAIEBAQABQEaGgEBAwAUAwQAAAIAAQABAwQAAAICAQMUAQEDBQABQQQIAgMDBQADBAIUFAQEAwMCAAABAQABAAIEAQAAAwADAAABAAMAAAIAAwMZPgMDAgACCAIAAQACBAEABAAAAAEAAwQAAAEBATcVFQoKAwMAAAEAAgAAAQAAAQEAAgQAAgMFBAEABAAAAgMAAQABBAAAAgMDAQEBAAEBAQgIAgIUFAQEAwMCAAABAQAAAAABAAABAwABAAIEAQADAAAAAQADAAAAAQABAQACBAACAgQFAQAEAAACAwABAAEEAAACAwsLCwsDAwMLCysBAgIBAAIEAQEAAxYWFhYBAAABABYWAAABAAIEAAACDQ0CAQMDDQsLDQsLDQMFCw0LDQsDAAEBAQEBAQEBAQEBAQEBAQEDAwAAFBQDAwAANgIEAwERERYWFgEADgIBAwAAAQEAAgQCAwEBAQMBAwEBAQEBAQUCBQABAQEBAQEBAQICAQACBAEABAIDAAIFAAEAAwEBAgMAAAABAAICAgIBAQMHCAIAAAMDBAANCwEAFQAAAAAAFQAAAAEAAAAAAAEBAwUXFy0BAAABAwMBAQMFFxctAQAAAAIDARIDAwEBAQMDAQMAAQACBAIBAwMBAQEBAQEAAAABAysEBwACAQEODgEAAQACBAABAAMCAQIBAAIEAAEAAgQDAAEBAAAAAAAAAQACAgICAwAAAwEAAgQEAQECAAMCAwMAAQACBAEAAQAAAgICAQEAAQEBAAEEBQMBAAEBBAABAQEBAAEAAbABAiwEBAQQBAwCAwMMAAMAAQADAQECAAFBBAgCAwMBAgEBAgEBBwMAAwMAAAAAAAADAwMDAQAAAUEECAIBQQQIAgAACAgAAQEBAQEAAAAAAQMAAAsaAwACAgICAQUFDgABAwABDgAAAQUBAQMDDQEAAgIHCAE2BQABAQEAAQwCAAEBAwEBAAEEAAEAAgICAgAAAAEAAgQBAQAAAAEAAgQCAQIAAwEAAgMDAAEAAgQCAQEBAAAAAQACAgICAgIAAQABAQACBAAAAg4AAQEBAwECAQEAAgQAAQABAQIBJg4AAggIAgIDAwAAAAEAAwMAAQACBAEAAQACAgECAgEAAgQBAQEBAQEBAAEBAAABAwEBAAEAAQABAAIEAwADAANqAgISAwEDAwsLAxYHAwACAwQBAQEBAQEBAQEBAQEBAQEDARUQCgMEBwMABAADFQoBAQMDBQMBPQECBAAAAwEDAwMDAAMBAQMEAQADAAMEBwMAAQACAwEBAQEBAQEAAQACBAADBAcBAwMBAQMBAQEBAwMCAwUVFQoKAQwPAAwCAgQEAQEBAQICAgJLGhQUAAAAAAEAAQEAAgQAAAABAAAAAQEBAQQAAAABAAIAAAAAAAABAAAAAAIAAAMAAQABAQICAk4EAgAAAQACAAEABAAAAQACAAEABAAAAQACAAEAAgECAQASCgEBAQEBAQEBATcAAAEAAgQAAgMBAQEBAQEBAQEBAAEAAgQBAAUQCgoKEAgEChAIBBexAQACAwUEBwMAAwgIAQADCAoFAggKBQIAAQACBAAAAgACAgEDAQEBAQMAAAEDAAEBAgEBAQACBAADAgEAAgQBAQAAAQACAAAAAAAAAAABAAAAAQAAAAIBAgIBAAcAAAEAAgQAAQEBAQMBdQEBAAIEAQADAQEBAQMBAQMBAAIEAAACBAEAAgQEAQEAAgICAgIEAQACBAEAAAAAAQACAgUDBAAAAgQEBQEAAgAAAAAAAAAAAAEAAQACBAUAASgEBAQEASgBKAEoASgBKAQEBAQBKAQEBAQFAwMHAQAAAAEEAQABBAABBAABBAABBAABBAABBAABAgABAgECAQIBAgECAQIBAgECAgECAQIAAQIBAgECAAEFAQUBBQABAgECAQIAAREBEQERAREBEQERBAcDAAEEAQQAAQADAQACAAAAAQACAwABAgEBAQECCAgAAAAAAQAAAAEAAgQAAQAAAQEBAAEAAgMAAAEBAAAEAQACBAADAgEFAwkABAEBAQABAAIEAAMCAgABAAIEAQADAAEAAgABAQEAAgQAAQEAAgQAAQEAAgQAAQAAAQACBAADAwEBAQMDAgQBAAIAAQACBAEBAAIDAAABAQACBAAA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Y3RvcnMAPQRmcmVlAGAGbWFsbG9jAF4NX19nZXRUeXBlTmFtZQDQCBp3YXNtX2ltYWdlX2RlY29kZV9jb21wbGV0ZQDYLRd3YXNtX2ltYWdlX2RlY29kZV9lcnJvcgDdLSBfX2VtX2pzX193YXNtX3N0YXJ0X2ltYWdlX2RlY29kZQMCGV9fZW1fanNfX2lzV2luZG93c0Jyb3dzZXIDAyNtYV9kZXZpY2VfX29uX25vdGlmaWNhdGlvbl91bmxvY2tlZAD5RxRtYV9tYWxsb2NfZW1zY3JpcHRlbgD/RxJtYV9mcmVlX2Vtc2NyaXB0ZW4A/kcubWFfZGV2aWNlX3Byb2Nlc3NfcGNtX2ZyYW1lc19jYXB0dXJlX193ZWJhdWRpbwD7Ry9tYV9kZXZpY2VfcHJvY2Vzc19wY21fZnJhbWVzX3BsYXliYWNrX193ZWJhdWRpbwD9RxlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQAIc2V0VGhyZXcAlwEXX2Vtc2NyaXB0ZW5fdGVtcHJldF9zZXQAbBlfZW1zY3JpcHRlbl9zdGFja19yZXN0b3JlAG4XX2Vtc2NyaXB0ZW5fc3RhY2tfYWxsb2MAbxxlbXNjcmlwdGVuX3N0YWNrX2dldF9jdXJyZW50AHANX19zdGFydF9lbV9qcwMEDF9fc3RvcF9lbV9qcwMFDl9fc3RhcnRfZW1fYXNtAwYNX19zdG9wX2VtX2FzbQMHDGR5bkNhbGxfaWlqaQCiWgxkeW5DYWxsX2ppamkAo1oNZHluQ2FsbF9paWlqaQCkWgtkeW5DYWxsX2lpagClWgtkeW5DYWxsX2ppaQCmWg5keW5DYWxsX3ZpaWppaQCnWg5keW5DYWxsX2lpaWlpagCoWg9keW5DYWxsX2lpaWlpamoAqVoQZHluQ2FsbF9paWlpaWlqagCqWgmMZQEAQQELwzKJUIpQuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B3wHgAeIB4wHkAeUB5gHnAegB6gHrAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB+gH7AfwB/QH+Af8BgAKBAoICgwKEAoUChgKHAogCiQKLAowCjQKOAo8CkAKRApICkwKUApUClgKXApgCmQKaApsCnAKdAp4CnwKgAqECogKjAqQCpQKmAqcCqAKpAqsCrAKtAq4CrwKwArECsgKzArQCtQK2ArcCuAK5AroCuwK8Ar0CvgK/AsECwgLDAsQCxQLGAscCyALJAsoCywLMAs0CzgLPAtAC0QLSAtMC1ALVAtYC1wLZAtoC3ALdAt4C3wLgAuEC4gLjAuQC5QLmAucC6ALpAuoC6wLsAu0C7wLwAvIC8wL0AvUC9gL3AvgC+QL6AvsC/AL9Av4CgAOBA4MDhAOFA4YDhwOIA4kDigOLA4wDjQOOA48DkAORA5IDkwOUA5UDlgOXA5gDmQObA5wDnQOeA58DoQOiA6MDpAOlA6YDpwOpA6oDqwOsA60DrgOvA7ADsQOyA7MDtAO1A7YDtwO4A7kDugO7A7wDvQO+A78DwAPBA8IDwwPEA8UDxgPHA8gDyQPKA8sDzAPNA84DzwPQA9ED0gPTA9QD1gPXA9gD2gPbA9wD3QPeA98D4APhA+ID4wPkA+UD5gPnA+gD6QPqA+sD7APtA+4D7wPwA/ED8gPzA/QD9QP2A/cD+AP5A/sD/AP+A/8DgASBBIIEgwSEBIUEhgSHBIgEiQSLBIwEjQSOBI8EkASRBJIEkwSUBJUElgSXBJgEmQSaBJsEnASdBJ4EnwSgBKEEogSjBKQEpQSmBKcEqASpBKoEqwSsBK0ErgSvBLAEsQSyBLMEtAS1BLcEuAS5BLoEuwS8BL0EvgS/BMEEwgTDBMQExQTGBMcEyATJBMoEywTMBM0EzgTPBNAE0QTSBNQE1QTWBNcE2ATZBNoE2wTdBN4E4AThBOIE4wTkBOUE5gTnBOgE6QTqBOsE7ATtBO4E7wTwBPEE8gTzBPQE9QT2BPcE+AT5BPoE+wT9BP4E/wSABYEFggWDBYQFhQWGBYcFiAWJBYoFiwWMBY0FjgWPBZAFkQWSBZMFlAWVBZYFlwWYBZkFmgWbBZwFnQWeBZ8FoAWhBaIFowWkBaUFpgWnBagFqQWqBasFrAWtBa4FrwWwBbEFsgWzBbQFtQW2BbcFuAW5BboFuwW8Bb0FvgW/BcAFwQXCBcMFxAXFBcYFxwXIBckFygXMBc0FzgXPBdAF0QXSBdMF1AXVBdYF1wXYBdkF2gXbBdwF3QXeBd8F4AXhBeIF4wXkBeUF5gX1BfwFiAabBv4R/xGA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sxmiQM4UzxTQFNEU0hTTFLkUuhS7FLwUtRm9FL4Uthm3GbgZuRm6GbsZwRnDGcQZxRnGGccZyhnUGdUZ1hnCGdcZ2BnZGdoZ2xnfGecZ4RniGeMZ5hnkGeUZ4BneGesZ7BntGe4Z7xmyObM5vSKBD/8O/g7oGYsXjBfpGeoZ9xn4GfkZrxeDGro1sBf6GfsZ/Bn2GfIZuTXzGf0Zqhr+Gf8ZgBqBGoIajRqPGpAakRqSGpMalBqVGqwarRquGq8asBq6GrEashqlGqAanhqiGqkaqxqzGrQatRq2GrcauBq5Gr8awBrBGv8WxBq7GsIagBfHGsgayRrKGsYawxr9Fv4WvBrMGs0azhrPGtIayxrQGtEa1BrWGtca2BrZGtoa2xrcGt0a3hrfGuwa4RriGuMa5hrnGuga6RrwGvUa9hr3Gu8a8RryGvMa+BrtGvka9BqEG4cbiBuLG44bjxuGG5IbiRuNG58boBuhG6IbpxudG6MbpBulG6YbqhurG6wbrRuvGKgbqRuzG7QbtRu2G64btxu4G7kbuxu8G70buhu+G78bwBvBG8MbwhvHG8YbyBvJG8ob1Bv0OPU49jjMG80bzhvPG9Ab0RvSG8QbxRvTG9gb2RvaG9sb3RvWG9cb5RrcG/Ub9xveG/gb+xv9G/4b/xuAHIsc5RvnG+gb6RvwG/Ib9BvxG4EcghyDHIQc7xutIvMbhRyWOZQ5+huYHJkcmhybHJwcnxyMHI0clByOHJ0clRyWHJccnhylHKYcpxyoHKkcnizlGOYY5xifLKAcoRyiHKMcpByuHK8csByxHLIcqhyrHKwcrRzFHMwczRzOHM8c0BzRHMYcxxzIHMkcyhzLHLgcuhy7HLwcvRzYHL4cvxzAHMEcwhzDHMQc0hzTHLMctBzUHLUc1Ry3HLYc1hzXHNwc3RzeHN8c4BzZHNoc2xzjHOQc5RzmHJoR6BzhHOcckhX2HPcc+BzxHPkc9Bz1HJcVmBXtHPwc/Rz+HP8c+hz7HO4c7xzwHPIc6RzrHIEdgh2DHYQdhh2AHYUdkB2RHZIdkx2UHZYdlx2YHZkdmh2bHZwdnR2HHYgdiR2KHYsdjB2NHY8doR2iHaMdpB2mHaAdpR2oHakdqh2rHawdrx2nHa0drh24Hb8duh27Hbwdvh2uEbARwB3BHcIdtx25HbAdvR20HbYdtR3EHcUdxh3HHckdwx3IHZMQlBDSHdMd1B3VHdYd2B3KHdcd0R3eHd8d4B3hHeId5B3ZHdod3R3bHdwd4x2TFZQVlRWWFaoZ5x3oHekd6h3sHeUd5h3rHfsdgx79Hf4d/x2CHoEehB6FHvod/B3yHYAe+B35HZYelx6YHpkenB6VHpoemx6fHqAeoR6iHvcPox6dHp4erx6xHrIesx60Hqseph6lHrUeqB6tHpYZmRm7FbYetx6qHq4euB7KHssezB7NHs4e0R7FHsYexx7IHskezx7QHqke3R7gHuEe4h7jHuYetTbcHrY26hXrFewVuTa7Nr02vjbYHtceuDbaHtse5B7lHr82uja8Nuoe6x7sHu0e8R7BJu8e6B7wHvUe9h73Hvge+h7yHvke+x79Hv4e/x6AH64fgR+CH4MfhR+GH4cfiB+JH4wfjR+OH48fmB+ZH5ofmx+cH50fnh+fH6AfoR+iH6MfpB+lH6Yfpx+BELYUtxS4FIAQzx/uH+8f8B/xH/If7B/tH9Ig1yDYINog3CDdIN8g4CDiIOMg5CDoIOkg6iDvIPwglSHwIfYh9yH4If8h4CHjIeYh5yH5Ifoh6CHqIewh7iH7Iekh/CH9If4h6yHtIe8hjxWQFZEV9hSEIoAigSKCIoMihSL/FIAVgRWCFYYigxXzFPQU9RSHIoQVhRWGFYcViCKIFYwVjRWOFYkiiRWKFYsViiL3FPgU+RSLIvoU+xT8FP0UjCL+FI4ijyKQIpEiliKNIpIikyKUIpUimyKcIp0iniKfIpcimCKaIrAisSKyIrMivgq7Iq8ioiKkIqAipiKoIqoirCKrIqMipSK0IrUioSKuIqciqSK2IsQixSLGIsciyCLKIr4ivCK/IsMiwiLJIuki6iLrIuwi7SLcItQi5SLoIssiziLNIu4i7yLwIvEi8iLzItci1SLhIuMi2iLiIuQi9CL1Itki1iLbIpUjliOXI5gjmSOiI4UjhiOHI4gjjyOQI5EjkiOaI5sjkyOUI5wjnSOeI58jiyONI6AjjCOOI6EjpCOlI6YjpyOrI6MjqCOpI6ojrCOuI68jsCOxI7ojsiO0I7UjtyO7I7wjviO/I8AjwSPHI8IjwyPEI8UjyCPJI80jziPPI9Aj2yPVI8ojjhbSI9MjyyPMI9QjihaLFowWjRbcI+Aj4SPiI+Mj5SPdI98j5CPpI+oj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5y7oLuku6i7rLuwu7S7uLu8u8y6PL5ovziijL78v0C+OL5Evli+oL6kvqi+rL6wvrS+uL68vsC+xL7QvtS+2L7cvuC+5L7ovuy+8L70vzC/OL4YwhzCIMIkwijCLMIwwjTCOMI8wkDCSMJEwkzCUMJUwljCmMKgwqjCsMNMw1TDWMNcw2DDZMNow2zDcMN0w3jDfMP0w/jD/MIAxgTGCMYMxhDGNHosxjDGNMY4xkTGIMacKjzGQMYkeiTGKMY8ekB6RHpIekx6HHooeix6UMZUxljGJF5gxkjGXMY8XkBeRF5IXkxeUF5UXlhebMZwxnTGhF58xmjGeMaIXoxekF6UXphenF6wxrTGuMa8xsDGxMbkxujG7MbwxvTG4Mb4xvzHAMcEx3zG3McIxsRTDMcQxxTHGMccxtTHIMckxyjHLMcwxtjHNMc4xzzHhMeIx4zHkMeUx5jHoMekx7DHuMe8x8DHxMfIx8zH0MfUx9jH3Mfgx+TH6Mfsx/DH9Mf4x/zGAMoIygzKEMoUyxRWQMoYyhzKIMooyizKMMo0yjjKPMsIVwxXEFZoZxhWRMpIykzKUMoQXnzKVMpYylzKZMpoymzKcMp0ynjKBF4IXgxeMGYUXoDKhMqIyozK0F64ypDKlMqYyqDKpMqoyqzKsMq0ysReyF7MXihm1F68ysDKxMrIysRW9MrMytDK1MrcyuDK5MroyuzK8Mq0VrhWvFbAVohmyFaQZvjK/MsAywTK5F8kywjLDMroXxDK8F8UyvRfGMscyyDK2F7cXuBeIGbsXyjLLMswyzTLOMuAyzzLQMtEy0jLTMtQy1TLWMtcy2DLZMtoy2zLcMt0y3jLfMp4UnxSgFOoP6w+0MLUwohCjEKQQpRCmELIwszCfEKAQoRCwMLEwlxCYEK4wrzCZEJoQmxCcEJ4Q4TLnMugy6TLqMusy7TLuMvAy8TLyMvQy9jLiMvcy+DL5Mvoy+zL8Mv0y/jL/MoAzgTOHNIIzgzOINIQzhTOGM4cziDOJM4ozizOMM5URrBGqEasRqBGpEZEzkjOTM5QzlTOWM5czmDPIM8kzyjPLM8wzxDPDM8AzvzPLGM0zzjPPM9Az0TPFM8Ez0jPTM9Qz5TLVM9Yz1zPYM8czuzPZM8IzqTPlM+Yz5zOtM+MznTOkM5szjzOcM5ozrjPaM68znjOwM+EzoDOxM+gzszOQM6cztDPdM98z3jPgM+kz6jO3M6gzuDOhM+szujPbM+IzvDOfM70zmTOqM6szrDOlM40zojOyM7UztjO5M44zozPsM+4z7zPwM/Ez8jPzM/Uz9zPtM/gz+TP6M/sz/DP9M/4z/zOANIE0gjSDNIQ0hTSGNIo0izShNKI0jDSjNKc0qDSpNKo0qzSaNJE0kjSZNKU0pjSsNI00lzStNJM0lTSuNK80jzScNLA0njSgNLE0sjSzNJ00tDSWNLU0tjSONJg0lDS3NLg0kDSfNKQ04zKJNLk0uzS8NL00vjS/NPs8/DzANMI0wzTWFsQ0ujTFNMY0xzTINMk0yjTLNMw0zTTONM800DTRNNI00zThNOI04zTkNOc04DTfNN402jSrF9g0iBqcGuU05jSaGp0a7zTtNO406jTpNOs08DTxNOw08jTzNPQ09jT3NPg0+TT6NPw0/zSANYE1gjWDNYU1hjWINYk1jDWNNY41jzWQNZE1kjWTNZQ1lTWWNZc1mDWZNZo1mzWcNZ01njWfNaA1oTWiNaM1pDWmNac1qDWpNao1qzWbGqgXqReqF/kOgA+3Nbg1tTW0NbY1uzWtF64XhRqGGocavjXWNcE1wjXDNdU11zXYNdk12jXbNdw13TW9NcA1xDXINck1yjXMNc01zjXPNdA10TXeNeA14TXiNeM15TXfNeQ17TXuNe818DXxNfI1pRSoFKkUqhSrFPQ1rBSwFKcUtRSzFLQUshT1Nfc1+DX5NbQ2+jX7Nfw1/TX/NYA2hTaGNoc2iDaJNoo2izaMNo02jjaPNpA2kTaSNpM2lDaVNpY2lzaYNpk2mjabNpw2nTaeNp82oDahNqI2ozakNqU2pjb2Nac2yArJCv41qDapNsI2wzbENsU2xjbRNsc2yDbJNso2yzbMNs02zjbPNtA20jbTNtQ21TbWNoApgingNuE24jbjNuQ25zbaNt823TbbNtw25TbmNt42nQrsNu027jbvNvA26zbpNuo28TbyNvM29Db5NvU29jb3Nvg2+zb/NoA3gTfrFoY3gjeDN4Q35xboFukW6haOGY8Z7RXuFe8V8BXxFYc3oDehN6I38xX0FYk3ijeLN4w3kTeQN443iDePN5Y3lzeYN5k3mjecN5M3kjeUN5U3mzedN543nzekN6U3pjenN6g3qTeqN6w3rjevN7E3tDe1N7Y3tze4N7s3gTiLOIw4jTiOOI84kDiROL83vjfAN8E3kjiTOJQ4lTiWOJc4mDiaOJs4nDidOJ44nzigOKE4ojijOKQ41wmlOKY4pzjjFOQU5RTmFK8Z5xTSN9031DfVN9Y33jfYN9k32jfbN9w31zfTN8w3zTfON8830DfRN/g3+Tf6N/s3/DfzN/Q39Tf2N/c3szi0OLU4tji3OLg4uTi6OLs4vDi9OL84wDjBOMI4wzjEOMU4xjjHOPIVyzjIOMk4yjiKJM44zzjQONE40jjTONQ41TiLJIwkjSTWONc42DjZONo43jjbONw43TjgOOE45TjmOOc46DjpOO444jjqOOM45DjrOOw47TjiFuMW5BblFu845hbFFsYWxxbwOKM3+BX5FfoV9hX3FfUV8TjyOPM4yxv5OPc4+Dj6OPs4jTmOOY85kDmTOYw5iTmFOYo5gzmCOYQ5izmROYY5hzmIOZI5wDbnFegV6RXZHocciByKHPwblTm3IrgiuSK6Ivo2lzmYOZk5mjmlOak5qjmrOaw5rTmxOZs5rjmcOZ45ojmgOac5pDmvObA5nTmoOaM5oTmfOaY5tzm4Obk5ujnCObU5tjm7Obw5vTm+Ob85wDnBOcM5xDnJOco5xznSHqI6ozqkOtMe1B7VHss50DnROdI50zmlOtQ51jnfOeA54TniOeM56jnrOew57TnuOe858DnxOfI58zn0OfU59jn3Ofg5+Tn7Ofw5/jn/OYc6iDqJOoo6izqMOrY6tzq4Ork6ujq7OsU8rTqrOq46yBSvOrE6sjqzOrU6tDrqOvk67zrwOvE6+Dr6Ovs6/DrnOu46yzrMOr46yTq8Or06vzrCOsM6xTrHOs460DrTOtc62TrbOt063zrhOvI68zrlOs860TrGOsg6yjr0OvU69jrWOtg62jrcOt464DriOvc65jqAO4E7gjuDO4w7jzuSO/06kzuEO407kDuFO4Y7/jqHO4g7iTuKO5E7jjuLO/86jhqXO+Em4iaYO5k7mjubO+Am4ybkJuUmlxqgO6E7ojulO507nDueO6M7pDufO6k7qjurO647pjunO6w7rTuoO7I7szu0O7c7rzuwO7U7tjuxO5Q7wxTEFJU7ljv1Ie8RyTvLO8w7zTvOO887uju/O8A7wTvCO8M7xDvFO8Y7xzvcO9073jvfO+A74jvQO9E70jvTO9Q71TvWO9c72DvZO9o72zvhO6M8pDylPKY8pzygPKE8ojyqPKs8rDytPLA8qTyuPK88sTyyPLM8tDyLPLU8jjyQPJE8kjyTPJQ8lTyWPJc8mDyZPLc8uDy5PLo8uzy8PL08nDydPL48vzzAPME8wjzzIcM8xDzxIfIh9CGHPIg8iTyKPIw8mjybPIQ2qjarNqw2rTauNq82sDaxNrI2szbNPNM8zzzQPNE80jzUPNU8zDzOPMg8xzzLPMk8xjzYPNY81zzbPNw83TzePOA8uDvZPN882jy5O8UUxhTqPOs87DztPO486TznPOg85jzSFtEW0xbUFtUW7zzBNKc9qD3XFvI88zz0PPU8+Tz9PPE88Dz3PPg8gD2BPYI9gz2FPf88/jyEPd0W3hbfFuAWhj36PP8V4Ra1FrYWtxa4Foc9uRa6Fog9iT2KPYs99RaQPYw9jT3yFvMW9BaRPZY9lz2YPfY8mT2TPZU9kj2HFogWiRb+FZo9gBb7FfwV/RWbPdgW2RbaFtsWnD3cFsAWwRbCFsMWnT3EFo8WkBaRFp49yxbMFs0Wnz27FrwWvRa+FqA9vxaBFqI9gxaEFoUWoT2GFoIW7RbuFu8W8BajPfEWjz6SPpM+kD6RPog+iT6KPoE+gj6DPvo9+z38PeQ98z30Pak9vj2/PcA9wT3CPcM9qj2rPaw9rT2uPa89uD25Pbo9uz28Pb09tj23PbI9sz20PbU9sD2xPcs9oj6jPs49oD6hPpo+mz6YPpk+lj6XPpQ+lT6NPo4+iz6MPoY+hz6EPoU+/z2APv09/j34Pfk99j33PfE98j3vPfA97T3uPes97D3pPeo95z3oPeU95j3hPeI94z3ePd894D3bPdw93T3YPdk92j3VPdY91z3SPdM91D3PPdA90T3KPcw9zT2kPaU9pj2kPqU+pj6oPqk+qj6sPqc+qz6eF58XoBeGF4cXiBeYF5kXmheKF7Q5nBedF5cXgg+DD4QPhQ+tPq4+rz6wPrI+sT7xK+EY4hjhK+Ir4yujCv04/jj/OIA5gTn8OKAszRXOFc8V0BXRFdIV0xWFLN8V4BXaFeU80QrSCrwKvz7APrM+wT7DPsQ+xT7GPsc+yj65PrQ+tT62Prc+uD66Prw+vj7IPsk+uz69PsI+oRSiFKMUpBTLPs4+zz7QPtE+0j7DF9Q+xBfXPtg+6z7sPu0+7j7vPvA+7D/zPs4X7z/qPug+/D79Pv4+/z74PoA/8j7wP4E/+iL7Ivwi/SL2D4Qj/iKAI/0P/g+BI4Ij9A/EHoYQhxD1D4UQiRCDEIQQghD0PvU+9j73Pvo++T7ZPts+3D7dPt4+3z7hPuI+yheDP4Q/hT+GP4c/gj+JP4o/iz+MP40/iD+PP5A/kT+SP5M/jj+UP5U/lj+XP5g/mT+aP5s/nz+gP6E/oj+lP6Y/qD+pP6o/qz+sP68/pz+tP64/tT+2P7c/uD+5P7Q/+D/5P8E/wz/EP8U/xj/AP8I/xz/IP9I/0z/QP9E/zT/OP88/yT/KP8s/zD/VP9s/1z/YP9k/2j/cP9Y/1D/eP98/4D/hP+I/3T/lP+Y/5z/oP+o/5D/pP+M/+j+EQIVAhkCHQIhAgkD/P/w//j/7P4BAgUD0P/U/9j/NF/c/vheBGIIYgxjCF41AiUDFF8YXzxfQF9EXkEDiF+MX5BePQNUX1hfXF5JA0hfTF9QXk0DlF/wX/Rf+F/8XmUCUQIAYzxHQEdER0hHYEeYX5xfoF+kXm0DqF+sXlUCWQJdAmEDsF+0X7hecQPIX8xf0F51AxxfIF8kXnkDvF/AX8RefQL8XwBfBF6BA2BfZF9oX2xehQNwXikCLQIxAkUCEGIUYhhjVPtY+o0CkQKVAzRSmQI4P1grXCvMOxQrHCsJBw0HEQYtBxUHGQcdBlEGVQchByUGdQZ5BykHLQcxBzUHOQc9B0EGEQYZBiEGMQY5BkUGWQZpBn0GgQaFBo0GkQaVBp0GDErFBskGzQbRBtUH1RvBG8Ub5RvpG+0b/RoBHgUeCR4NHhUeGR4dHi0ePR5FHkkeTR5RHlUeWR55HoUeiR6NHpEelR6ZHqEerR65HsEe2R7dHuEe5R7pH4EfrR/NH9Ef1R/ZH90f4R91I3kjwSPFI8kjzSPRIlEqVSpZKl0qYSo9KkEqRSpJKk0qKSotKjEqNSo5KqUqlSq5IsEiySLRItki4SLlIuki8SL1IhUmKSY5Jj0mQSbZJuUm7SbxJvUnxSfJJ80n0SfVJnEqdSp5Kn0qgSrVKsEqzStBL0UvSS9NL1UvWS9dL2EvaS9tL3EvdS95L4EvhS+JL5EvmS+hL6UvqS+tL7EvuS/BL8UvyS/NL9Ev1S/ZL+Ev5S/pL+0v8S/1L/kv/S4BMgUyCTINMhEyFTIZMh0yITIlMikyLTIxMjUyOTI9MkEyRTJJMk0zSTNNM1UzXTNlM20zcTN5M4EzhTOJM40zkTOZM50zoTOlM6kzrTOxM7kzvTPBM8UzyTPRM9Uz2TPhM+kz7TPxM/Uz/TIBNgU2CTYNNlk2XTZtNnU2hTaJNo02lTadNqU2tTa5NsE2xTbJNs020TbZNt027TbxN3k3gTeFN4k3jTeRN5k3nTetN7E3tTe5N8E3xTfJN8034TflN+039Tf5NlU6WTpdOmE6ZTppOm06cTp1Onk6fTqBOoU6iTqNOpE6lTqZOp06oTqlOqk6rTqxOrU6uTq9OsE6xTrJOs060TrVOtk63TrhOuU66TrtOvE69Tr5Ov07ATsFOwk7DTsROxU7GTsdOyE7JTspOy07MTs1Ozk7PTtBO0U7STtNO1E7VTtZO107YTtlO2k7bTtxO3U7eTt9O4E7hTuJO407kTuVO5k7nTuhO6U7qTutO7E7tTu5O707wTvFO8k7zTvRO9U72TvdO+E75TvpO+078Tv1O/k7/ToBPgU+CT4NPhE+FT4ZPh0+IT4lPik+LT4xPjU+OT49PkE+RT5JPk0+UT5VPlk+XT5hPmU+aT5tPnE+dT55Pn0+gT6FPok/dT95PpgfxUPJQ81D0UPZQ91D4UPlQ/lD/UIFRglGDUZgHkVKNUpJS+FH5UftRsQaTUpRSlVKWUpdSnFGdUZ5Rn1HwUKRSpVmnWYRYmVmaWZtZnFmdWZ5Zn1mgWaFZolnvWPBY8Vj0WPdY+Fj7WPxY/ljCWMNYxFjFWMZYx1jIWLtYvFi9WL5Yv1jAWMFYqlKpWYxZjVmOWY9ZkFmRWZJZk1mUWZVZllmXWZhZhFmFWYZZh1mIWYlZilmLWedY6FjpWOpY61jsWO1Y7ljUWNVY11jZWNpY21jcWN5Y31jgWOFY4ljjWORY5VjmWMlYyljMWM5Yz1jQWNFY01ipUqtSrFKtUrNStFK1UrZSt1LIUrpYyVLtUv9SglOGU4lTjFOPU5tToFOlU7lYq1O+U8pTzFPOU9BT0lPUU9xT3lPgU7hY4VPpU/JT9FP2U/hThVSHVLdYiFSRVJ9UoVSjVKVUrlSwVKJYo1izVLRUtVS2VLhUulS9VKRYplioWKpYq1isWK1YjliPWMxUzVTOVM9U0VTTVNZUkFiSWJRYlliYWJlYmliLWIxY41SHWIlY8lS2WIRVhVWGVYdViFWJVYtVjFWNVbVYjlWPVZBVkVWSVZNVlFWVVZZVtFiXVZhVmVWaVZ5Vn1WgVaFVolWzWKNVpFWlVaZVp1WoValVqlWrVbJYrlXiVbFY51WVVrBYo1a8Vq9YvVbWVoVY11bYVtlWg1jaVttW3FbHWchZ8Fn1WfFZ8ln2WYtah1qGWvNZjFqKWoNa9Fn9Wf9ZgVoK6N5m8llHABDGWRC5ARC2BxDOCBDTGhDqGhCUGxDVKBChLRDXLRDrPxCaQBCASxCpSxChTBCwTBC1TBDLTBDMTBCETRCAThCjTxDQTwsGAEGAiR4LEAAgAEQAAAAAAAAAEBC6TwsQACAARAAAAAAAAABwELpPC+0CAwJ/AnwCfgJAAkACQCAAEEJB/w9xIgFEAAAAAAAAkDwQQiICa0QAAAAAAACAQBBCIAJrTw0AIAEhAgwBCwJAIAEgAk8NACAARAAAAAAAAPA/oA8LQQAhAiABRAAAAAAAAJBAEEJJDQBEAAAAAAAAAAAhAyAAvSIFQoCAgICAgIB4UQ0BAkAgAUQAAAAAAADwfxBCSQ0AIABEAAAAAAAA8D+gDwsCQCAFQn9VDQBBABA/DwtBABBADwtBACsDgIAQIACiQQArA4iAECIDoCIEIAOhIgNBACsDmIAQoiADQQArA5CAEKIgAKCgIgAgAKIiAyADoiAAQQArA7iAEKJBACsDsIAQoKIgAyAAQQArA6iAEKJBACsDoIAQoKIgBL0iBadBBHRB8A9xIgFB8IAQaisDACAAoKCgIQAgAUH4gBBqKQMAIAVCLYZ8IQYCQCACDQAgACAGIAUQQw8LIAa/IgMgAKIgA6AhAwsgAwsJACAAvUI0iKcLxQEBA3wCQCACQoCAgIAIg0IAUg0AIAFCgICAgICAgPhAfL8iAyAAoiADoEQAAAAAAAAAf6IPCwJAIAFCgICAgICAgPA/fL8iAyAAoiIEIAOgIgBEAAAAAAAA8D9jRQ0AEEREAAAAAAAAEACiEEVEAAAAAAAAAAAgAEQAAAAAAADwP6AiBSAEIAMgAKGgIABEAAAAAAAA8D8gBaGgoKBEAAAAAAAA8L+gIgAgAEQAAAAAAAAAAGEbIQALIABEAAAAAAAAEACiCxwBAX8jAEEQayIAQoCAgICAgIAINwMIIAArAwgLDAAjAEEQayAAOQMICwQAQQELAgAL8gICA38BfgJAIAJFDQAgACABOgAAIAAgAmoiA0F/aiABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBfWogAToAACADQX5qIAE6AAAgAkEHSQ0AIAAgAToAAyADQXxqIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIFayICQSBJDQAgAa1CgYCAgBB+IQYgAyAFaiEBA0AgASAGNwMYIAEgBjcDECABIAY3AwggASAGNwMAIAFBIGohASACQWBqIgJBH0sNAAsLIAALXAEBfyAAIAAoAkgiAUF/aiABcjYCSAJAIAAoAgAiAUEIcUUNACAAIAFBIHI2AgBBfw8LIABCADcCBCAAIAAoAiwiATYCHCAAIAE2AhQgACABIAAoAjBqNgIQQQALkAEBA38jAEEQayICJAAgAiABOgAPAkACQCAAKAIQIgMNAEF/IQMgABBJDQEgACgCECEDCwJAIAAoAhQiBCADRg0AIAAoAlAgAUH/AXEiA0YNACAAIARBAWo2AhQgBCABOgAADAELQX8hAyAAIAJBD2pBASAAKAIkEQQAQQFHDQAgAi0ADyEDCyACQRBqJAAgAwuOBAEDfwJAIAJBgARJDQAgACABIAIQMSAADwsgACACaiEDAkACQCABIABzQQNxDQACQAJAIABBA3ENACAAIQIMAQsCQCACDQAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIg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QdAAaiADIApCAEKAgICAgIDAu8AAEGogBUHYAGopAwAiCkIwiKdBiH9qIQggBSkDUCEDCyAKQv///////z+DQoCAgICAgMAAhCELIAlC////////P4NCgICAgICAwACEIQkCQCAHIAhMDQADQAJAAkAgCSALfSAEIANUrX0iCkIAUw0AAkAgCiAEIAN9IgSEQgBSDQAgBUEgaiABIAJCAEIAEGogBUEoaikDACECIAUpAyAhBAwFCyAKQgGGIARCP4iEIQkMAQsgCUIBhiAEQj+IhCEJCyAEQgGGIQQgB0F/aiIHIAhKDQALIAghBwsCQAJAIAkgC30gBCADVK19IgpCAFkNACAJIQoMAQsgCiAEIAN9IgSEQgBSDQAgBUEwaiABIAJCAEIAEGogBUE4aikDACECIAUpAzAhBAwBCwJAIApC////////P1YNAANAIARCP4ghAyAHQX9qIQcgBEIBhiEEIAMgCkIBhoQiCkKAgICAgIDAAFQNAAsLIAZBgIACcSEIAkAgB0EASg0AIAVBwABqIAQgCkL///////8/gyAHQfgAaiAIcq1CMIaEQgBCgICAgICAwMM/EGogBUHIAGopAwAhAiAFKQNAIQQMAQsgCkL///////8/gyAHIAhyrUIwhoQhAgsgACAENwMAIAAgAjcDCCAFQYABaiQACwcAPwBBEHQLUQECf0EAKALAwB0iASAAQQdqQXhxIgJqIQACQAJAAkAgAkUNACAAIAFNDQELIAAQXE0NASAAEDMNAQsQPkEwNgIAQX8PC0EAIAA2AsDAHSABC9UiAQt/IwBBEGsiASQAAkACQAJAAkACQAJAAkACQAJAAkACQCAAQfQBSw0AAkBBACgChIkeIgJBECAAQQtqQfgDcSAAQQtJGyIDQQN2IgR2IgBBA3FFDQACQAJAIABBf3NBAXEgBGoiA0EDdCIEQayJHmoiACAEQbSJHmooAgAiBCgCCCIFRw0AQQAgAkF+IAN3cTYChIkeDAELIAUgADYCDCAAIAU2AggLIARBCGohACAEIANBA3QiA0EDcjYCBCAEIANqIgQgBCgCBEEBcjYCBAwLCyADQQAoAoyJHiIGTQ0BAkAgAEUNAAJAAkAgACAEdEECIAR0IgBBACAAa3JxaCIEQQN0IgBBrIkeaiIFIABBtIkeaigCACIAKAIIIgdHDQBBACAC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ASAANgIMIAAgAzYCDCAAIAE2AggPC0EfIQMCQCABQf///wdLDQAgAUEmIAFBCHZnIgNrdkEBcSADQQF0a0E+aiEDCyAAIAM2AhwgAEIANwIQIANBAnRBtIseaiEEAkACQAJAQQAoAoiJHiIFQQEgA3QiAnENAEEAIAUgAnI2AoiJHiAEIAA2AgAgACAENgIYDAELIAFBAEEZIANBAXZrIANBH0YbdCEDIAQoAgAhBQNAIAUiBCgCBEF4cSABRg0CIANBHXYhBSADQQF0IQMgBCAFQQRxakEQaiICKAIAIgUNAAsgAiAANgIAIAAgBDYCGAsgACAANgIMIAAgADYCCA8LIAQoAggiASAANgIMIAQgADYCCCAAQQA2AhggACAENgIMIAAgATYCCAsLYwIBfwF+AkACQCAADQBBACECDAELIACtIAGtfiIDpyECIAEgAHJBgIAESQ0AQX8gAiADQiCIp0EARxshAgsCQCACEF4iAEUNACAAQXxqLQAAQQNxRQ0AIABBACACEEgaCyAAC+ABAgF/An5BASEEAkAgAEIAUiABQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AURsNACACQgBSIANC////////////AIMiBkKAgICAgIDA//8AViAGQoCAgICAgMD//wBRGw0AAkAgAiAAhCAGIAWEhFBFDQBBAA8LAkAgAyABg0IAUw0AQX8hBCAAIAJUIAEgA1MgASADURsNASAAIAKFIAEgA4WEQgBSDwtBfyEEIAAgAlYgASADVSABIANRGw0AIAAgAoUgASADhYRCAFIhBAsgBAvYAQIBfwJ+QX8hBAJAIABCAFIgAUL///////////8AgyIFQoCAgICAgMD//wBWIAVCgICAgICAwP//AFEbDQAgAkIAUiADQv///////////wCDIgZCgICAgICAwP//AFYgBkKAgICAgIDA//8AURsNAAJAIAIgAIQgBiAFhIRQRQ0AQQAPCwJAIAMgAYNCAFMNACAAIAJUIAEgA1MgASADURsNASAAIAKFIAEgA4WEQgBSDwsgACACViABIANVIAEgA1EbDQAgACAChSABIAOFhEIAUiEECyAEC1MBAX4CQAJAIANBwABxRQ0AIAEgA0FAaq2GIQJCACEBDAELIANFDQAgAUHAACADa62IIAIgA60iBIaEIQIgASAEhiEBCyAAIAE3AwAgACACNwMIC9IQAgV/D34jAEHQAmsiBSQAIARC////////P4MhCiACQv///////z+DIQsgBCAChUKAgICAgICAgIB/gyEMIARCMIinQf//AXEhBgJAAkACQCACQjCIp0H//wFxIgdBgYB+akGCgH5JDQBBACEIIAZBgYB+akGBgH5LDQELAkAgAVAgAkL///////////8AgyINQoCAgICAgMD//wBUIA1CgICAgICAwP//AFEbDQAgAkKAgICAgIAghCEMDAILAkAgA1AgBEL///////////8AgyICQoCAgICAgMD//wBUIAJCgICAgICAwP//AFEbDQAgBEKAgICAgIAghCEMIAMhAQwCCwJAIAEgDUKAgICAgIDA//8AhYRCAFINAAJAIAMgAkKAgICAgIDA//8AhYRQRQ0AQgAhAUKAgICAgIDg//8AIQwMAwsgDEKAgICAgIDA//8AhCEMQgAhAQwCCwJAIAMgAkKAgICAgIDA//8AhYRCAFINAEIAIQEMAgsCQCABIA2EQgBSDQBCgICAgICA4P//ACAMIAMgAoRQGyEMQgAhAQwCCwJAIAMgAoRCAFINACAMQoCAgICAgMD//wCEIQxCACEBDAILQQAhCAJAIA1C////////P1YNACAFQcACaiABIAsgASALIAtQIggbeSAIQQZ0rXynIghBcWoQZ0EQIAhrIQggBUHIAmopAwAhCyAFKQPAAiEBCyACQv///////z9WDQAgBUGwAmogAyAKIAMgCiAKUCIJG3kgCUEGdK18pyIJQXFqEGcgCSAIakFwaiEIIAVBuAJqKQMAIQogBSkDsAIhAwsgBUGgAmogA0IxiCAKQoCAgICAgMAAhCIOQg+GhCICQgBCgICAgLDmvIL1ACACfSIEQgAQayAFQZACakIAIAVBoAJqQQhqKQMAfUIAIARCABBrIAVBgAJqIAUpA5ACQj+IIAVBkAJqQQhqKQMAQgGGhCIEQgAgAkIAEGsgBUHwAWogBEIAQgAgBUGAAmpBCGopAwB9QgAQayAFQeABaiAFKQPwAUI/iCAFQfABakEIaikDAEIBhoQiBEIAIAJCABBrIAVB0AFqIARCAEIAIAVB4AFqQQhqKQMAfUIAEGsgBUHAAWogBSkD0AFCP4ggBUHQAWpBCGopAwBCAYaEIgRCACACQgAQayAFQbABaiAEQgBCACAFQcABakEIaikDAH1CABBrIAVBoAFqIAJCACAFKQOwAUI/iCAFQbABakEIaikDAEIBhoRCf3wiBEIAEGsgBUGQAWogA0IPhkIAIARCABBrIAVB8ABqIARCAEIAIAVBoAFqQQhqKQMAIAUpA6ABIgogBUGQAWpBCGopAwB8IgIgClStfCACQgFWrXx9QgAQayAFQYABakIBIAJ9QgAgBEIAEGsgCCAHIAZraiEGAkACQCAFKQNwIg9CAYYiECAFKQOAAUI/iCAFQYABakEIaikDACIRQgGGhHwiDUKZk398IhJCIIgiAiALQoCAgICAgMAAhCITQgGGIhRCIIgiBH4iFSABQgGGIhZCIIgiCiAFQfAAakEIaikDAEIBhiAPQj+IhCARQj+IfCANIBBUrXwgEiANVK18Qn98Ig9CIIgiDX58IhAgFVStIBAgD0L/////D4MiDyABQj+IIhcgC0IBhoRC/////w+DIgt+fCIRIBBUrXwgDSAEfnwgDyAEfiIVIAsgDX58IhAgFVStQiCGIBBCIIiEfCARIBBCIIZ8IhAgEVStfCAQIBJC/////w+DIhIgC34iFSACIAp+fCIRIBVUrSARIA8gFkL+////D4MiFX58IhggEVStfHwiESAQVK18IBEgEiAEfiIQIBUgDX58IgQgAiALfnwiCyAPIAp+fCINQiCIIAQgEFStIAsgBFStfCANIAtUrXxCIIaEfCIEIBFUrXwgBCAYIAIgFX4iAiASIAp+fCILQiCIIAsgAlStQiCGhHwiAiAYVK0gAiANQiCGfCACVK18fCICIARUrXwiBEL/////////AFYNACAUIBeEIRMgBUHQAGogAiAEIAMgDhBrIAFCMYYgBUHQAGpBCGopAwB9IAUpA1AiAUIAUq19IQogBkH+/wBqIQZCACABfSELDAELIAVB4ABqIAJCAYggBEI/hoQiAiAEQgGIIgQgAyAOEGsgAUIwhiAFQeAAakEIaikDAH0gBSkDYCILQgBSrX0hCiAGQf//AGohBkIAIAt9IQsgASEWCwJAIAZB//8BSA0AIAxCgICAgICAwP//AIQhDEIAIQEMAQsCQAJAIAZBAUgNACAKQgGGIAtCP4iEIQEgBq1CMIYgBEL///////8/g4QhCiALQgGGIQQMAQsCQCAGQY9/Sg0AQgAhAQwCCyAFQcAAaiACIARBASAGaxBpIAVBMGogFiATIAZB8ABqEGcgBUEgaiADIA4gBSkDQCICIAVBwABqQQhqKQMAIgoQayAFQTBqQQhqKQMAIAVBIGpBCGopAwBCAYYgBSkDICIBQj+IhH0gBSkDMCIEIAFCAYYiC1StfSEBIAQgC30hBAsgBUEQaiADIA5CA0IAEGsgBSADIA5CBUIAEGsgCiACIAJCAYMiCyAEfCIEIANWIAEgBCALVK18IgEgDlYgASAOURutfCIDIAJUrXwiAiADIAJCgICAgICAwP//AFQgBCAFKQMQViABIAVBEGpBCGopAwAiAlYgASACURtxrXwiAiADVK18IgMgAiADQoCAgICAgMD//wBUIAQgBSkDAFYgASAFQQhqKQMAIgRWIAEgBFEbca18IgEgAlStfCAMhCEMCyAAIAE3AwAgACAMNwMIIAVB0AJqJAALUwEBfgJAAkAgA0HAAHFFDQAgAiADQUBqrYghAUIAIQIMAQsgA0UNACACQcAAIANrrYYgASADrSIEiIQhASACIASIIQILIAAgATcDACAAIAI3AwgLlAsCBX8PfiMAQeAAayIFJAAgBEL///////8/gyEKIAQgAoVCgICAgICAgICAf4MhCyACQv///////z+DIgxCIIghDSAEQjCIp0H//wFxIQYCQAJAAkAgAkIwiKdB//8BcSIHQYGAfmpBgoB+SQ0AQQAhCCAGQYGAfmpBgYB+Sw0BCwJAIAFQIAJC////////////AIMiDkKAgICAgIDA//8AVCAOQoCAgICAgMD//wBRGw0AIAJCgICAgICAIIQhCwwCCwJAIANQIARC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRGw0AIARCgICAgICAIIQhCyADIQEMAgsCQCABIA5CgICAgICAwP//AIWEQgBSDQACQCADIAKEUEUNAEKAgICAgIDg//8AIQtCACEBDAMLIAtCgICAgICAwP//AIQhC0IAIQEMAgsCQCADIAJCgICAgICAwP//AIWEQgBSDQAgASAOhCECQgAhAQJAIAJQRQ0AQoCAgICAgOD//wAhCwwDCyALQoCAgICAgMD//wCEIQsMAgsCQCABIA6EQgBSDQBCACEBDAILAkAgAyAChEIAUg0AQgAhAQwCC0EAIQgCQCAOQv///////z9WDQAgBUHQAGogASAMIAEgDCAMUCIIG3kgCEEGdK18pyIIQXFqEGdBECAIayEIIAVB2ABqKQMAIgxCIIghDSAFKQNQIQELIAJC////////P1YNACAFQcAAaiADIAogAyAKIApQIgkbeSAJQQZ0rXynIglBcWoQZyAIIAlrQRBqIQggBUHIAGopAwAhCiAFKQNAIQMLIANCD4YiDkKAgP7/D4MiAiABQiCIIgR+Ig8gDkIgiCIOIAFC/////w+DIgF+fCIQQiCGIhEgAiABfnwiEiARVK0gAiAMQv////8PgyIMfiITIA4gBH58IhEgA0IxiCAKQg+GIhSEQv////8PgyIDIAF+fCIVIBBCIIggECAPVK1CIIaEfCIQIAIgDUKAgASEIgp+IhYgDiAMfnwiDSAUQiCIQoCAgIAIhCICIAF+fCIPIAMgBH58IhRCIIZ8Ihd8IQEgByAGaiAIakGBgH9qIQYCQAJAIAIgBH4iGCAOIAp+fCIEIBhUrSAEIAMgDH58Ig4gBFStfCACIAp+fCAOIBEgE1StIBUgEVStfHwiBCAOVK18IAMgCn4iAyACIAx+fCICIANUrUIghiACQiCIhHwgBCACQiCGfCICIARUrXwgAiAUQiCIIA0gFlStIA8gDVStfCAUIA9UrXxCIIaEfCIEIAJUrXwgBCAQIBVUrSAXIBBUrXx8IgIgBFStfCIEQoCAgICAgMAAg1ANACAGQQFqIQYMAQsgEkI/iCEDIARCAYYgAkI/iIQhBCACQgGGIAFCP4iEIQIgEkIBhiESIAMgAUIBhoQhAQsCQCAGQf//AUgNACALQoCAgICAgMD//wCEIQtCACEBDAELAkACQCAGQQBKDQACQEEBIAZrIgdB/wBLDQAgBUEwaiASIAEgBkH/AGoiBhBnIAVBIGogAiAEIAYQZyAFQRBqIBIgASAHEGkgBSACIAQgBxBpIAUpAyAgBSkDEIQgBSkDMCAFQTBqQQhqKQMAhEIAUq2EIRIgBUEgakEIaikDACAFQRBqQQhqKQMAhCEBIAVBCGopAwAhBCAFKQMAIQIMAgtCACEBDAILIAatQjCGIARC////////P4OEIQQLIAQgC4QhCwJAIBJQIAFCf1UgAUKAgICAgICAgIB/URsNACALIAJCAXwiAVCtfCELDAELAkAgEiABQoCAgICAgICAgH+FhEIAUQ0AIAIhAQwBCyALIAIgAkIBg3wiASACVK18IQsLIAAgATcDACAAIAs3AwggBUHgAGokAAt1AQF+IAAgBCABfiACIAN+fCADQiCIIgIgAUIgiCIEfnwgA0L/////D4MiAyABQv////8PgyIBfiIFQiCIIAMgBH58IgNCIIh8IANC/////w+DIAIgAX58IgFCIIh8NwMIIAAgAUIghiAFQv////8Pg4Q3AwALBgAgACQBCwQAIwELBgAgACQACxIBAn8jACAAa0FwcSIBJAAgAQsEACMACwQAQQALBABBAAvhCgIEfwR+IwBB8ABrIgUkACAEQv///////////wCDIQkCQAJAAkAgAVAiBiACQv///////////wCDIgpCgICAgICAwICAf3xCgICAgICAwICAf1QgClAbDQAgA0IAUiAJQoCAgICAgMCAgH98IgtCgICAgICAwICAf1YgC0KAgICAgIDAgIB/URsNAQsCQCAGIApCgICAgICAwP//AFQgCkKAgICAgIDA//8AURsNACACQoCAgICAgCCEIQQgASEDDAILAkAgA1AgCUKAgICAgIDA//8AVCAJQoCAgICAgMD//wBRGw0AIARCgICAgICAIIQhBAwCCwJAIAEgCkKAgICAgIDA//8AhYRCAFINAEKAgICAgIDg//8AIAIgAyABhSAEIAKFQoCAgICAgICAgH+FhFAiBhshBEIAIAEgBhshAwwCCyADIAlCgICAgICAwP//AIWEUA0BAkAgASAKhEIAUg0AIAMgCYRCAFINAiADIAGDIQMgBCACgyEEDAILIAMgCYRQRQ0AIAEhAyACIQQMAQsgAyABIAMgAVYgCSAKViAJIApRGyIHGyEJIAQgAiAHGyILQv///////z+DIQogAiAEIAcbIgxCMIinQf//AXEhCAJAIAtCMIinQf//AXEiBg0AIAVB4ABqIAkgCiAJIAogClAiBht5IAZBBnStfKciBkFxahBnQRAgBmshBiAFQegAaikDACEKIAUpA2AhCQsgASADIAcbIQMgDEL///////8/gyEBAkAgCA0AIAVB0ABqIAMgASADIAEgAVAiBxt5IAdBBnStfKciB0FxahBnQRAgB2shCCAFQdgAaikDACEBIAUpA1AhAwsgAUIDhiADQj2IhEKAgICA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AEQAAAAAAADwPyELIAlCgICAgICAgPg/UQ0CIAhCAYYiClANAgJAAkAgCUIBhiIJQoCAgICAgIBwVg0AIApCgYCAgICAgHBUDQELIAAgAaAhCwwDCyAJQoCAgICAgIDw/wBRDQJEAAAAAAAAAAAgASABoiAJQoCAgICAgIDw/wBUIAhCAFNzGyELDAILAkAgCRCBAUUNACAAIACiIQsCQCAJQn9VDQAgC5ogCyAIEIIBQQFGGyELCyAIQn9VDQJEAAAAAAAA8D8gC6MQgwEhCwwCC0EAIQcCQCAJQn9VDQACQCAIEIIBIgcNACAAEHchCwwDCyADQf8PcSEDIAC9Qv///////////wCDIQkgB0EBRkESdCEHCwJAIAZB/35LDQBEAAAAAAAA8D8hCyAJQoCAgICAgID4P1ENAgJAIAVBvQdLDQAgASABmiAJQoCAgICAgID4P1YbRAAAAAAAAPA/oCELDAMLAkAgBEH/D0sgCUKAgICAgICA+D9WRg0AQQAQQCELDAMLQQAQPyELDAILIAMNACAARAAAAAAAADBDor1C////////////AINCgICAgICAgOB8fCEJCyAIQoCAgECDvyILIAkgAkEIahCEASIMvUKAgIBAg78iAKIgASALoSAAoiACKwMIIAwgAKGgIAGioCAHEIUBIQsLIAJBEGokACALCwkAIAC9QjSIpwsbACAAQgGGQoCAgICAgIAQfEKBgICAgICAEFQLVQICfwF+QQAhAQJAIABCNIinQf8PcSICQf8HSQ0AQQIhASACQbMISw0AQQAhAUIBQbMIIAJrrYYiA0J/fCAAg0IAUg0AQQJBASADIACDUBshAQsgAQsVAQF/IwBBEGsiASAAOQMIIAErAwgLswIDAX4GfAF/IAEgAEKAgICAsNXajEB8IgJCNIentyIDQQArA+DFEKIgAkItiKdB/wBxQQV0IglBuMYQaisDAKAgACACQoCAgICAgIB4g30iAEKAgICACHxCgICAgHCDvyIEIAlBoMYQaisDACIFokQAAAAAAADwv6AiBiAAvyAEoSAFoiIFoCIEIANBACsD2MUQoiAJQbDGEGorAwCgIgMgBCADoCIDoaCgIAUgBEEAKwPoxRAiB6IiCCAGIAeiIgegoqAgBiAHoiIGIAMgAyAGoCIGoaCgIAQgBCAIoiIDoiADIAMgBEEA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/AdLDQAgACAAIAGXIAEQlgFB/////wdxQYCAgPwHSxshAQsgAQsFACAAvAsgAAJAQQAoAvSMHg0AQQAgATYC+IweQQAgADYC9IweCwsQACAAIAE2AgQgACACNgIACx4BAX9BACECAkAgACgCACABRw0AIAAoAgQhAgsgAgsTACAAIAFBASABQQFLGxCXARA3C+oDAgd/An4jAEEgayICJAAgAUL///////8/gyEJAkACQCABQjCIQv//AYMiCqciA0H/gH9qQf0BSw0AIAlCGYinIQQCQAJAIABQIAFC////D4MiCUKAgIAIVCAJQoCAgAhRGw0AIARBAWohBAwBCyAAIAlCgICACIWEQgBSDQAgBEEBcSAEaiEEC0EAIAQgBEH///8DSyIFGyEEQYGBf0GAgX8gBRsgA2ohBQwBCwJAIAAgCYRQDQAgCkL//wFSDQAgCUIZiKdBgICAAnIhBEH/ASEFDAELAkAgA0H+gAFNDQBB/wEhBUEAIQQMAQtBACEEQQAhBUGA/wBBgf8AIApQIgYbIgcgA2siCEHwAEoNACACQRBqIAAgCSAJQoCAgICAgMAAhCAGGyIJQYABIAhrEGcgAiAAIAkgCBBpIAJBCGopAwAiAEIZiKchBAJAAkAgAikDACAHIANHIAIpAxAgAkEQakEIaikDAIRCAFJxrYQiCVAgAEL///8PgyIAQoCAgAhUIABCgICACFEbDQAgBEEBaiEEDAELIAkgAEKAgIAIhYRCAFINACAEQQFxIARqIQQLIARBgICABHMgBCAEQf///wNLIgUbIQQLIAJBIGokACAFQRd0IAFCIIinQYCAgIB4cXIgBHK+C4kEAgV/BH4jAEEgayICJAAgAUL///////8/gyEHAkACQCABQjCIQv//AYMiCKciA0H/h39qQf0PSw0AIABCPIggB0IEhoQhByADQYCIf2qtIQkCQAJAIABC//////////8PgyIAQoGAgICAgICACFQNACAHQgF8IQcMAQsgAEKAgICAgICAgAhSDQAgB0IBgyAHfCEHC0IAIAcgB0L/////////B1YiAxshCiADrSAJfCEJDAELAkAgACAHhFANACAIQv//AVINACAAQjyIIAdCBIaEQoCAgICAgIAEhCEKQv8PIQkMAQsCQCADQf6HAU0NAEL/DyEJQgAhCgwBC0IAIQpCACEJ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IAJBCGoQ6wUaIAJBEGogABDsBSACQQhqIAAgAigCEBDtBSIEQZH+ECADKAIAEO4FIAIoAhAhACACKAIUIQMCQCABRQ0AIAEgASgCBEEBajYCBAsgAiABNgIcIAJBBGogACADIABrIAJBHGoQ9gUgAkEcahD3BRogAigCBCEBIAQQ6wUaIAJBEGoQ8QUaIAJBIGokACABCwcAIAARDwALBgBBsI4eC6EBAQF/IwBBwABrIgYkACAGQRhqQQhqIANBCGopAgA3AwAgBiADKQIANwMYIAZBCGpBCGogBEEIaikCADcDACAGIAQpAgA3AwggBkEoaiABIAIgBkEYaiAGQQhqIAUgABErAEEYEKYBIgNBEGogBkEoakEQaikCADcCACADQQhqIAZBKGpBCGopAgA3AgAgAyAGKQIoNwIAIAZBwABqJAAgAws6AQF/Qfi5EyEGAkAgAkEISw0AIAJBAnRBtJwSaigCACEGCyAAIAEgBioCACAGKgIEIAMgBCAFEPgFC3sCAX8BfiMAQTBrIgMkACADIAIpAgAiBDcDICADQQhqQQhqIAFBCGopAgA3AwAgA0EIakEQaiABQRBqKQIANwMAIAMgASkCADcDCCADIAQ3AwAgA0EoaiADQQhqIAMgABEFAEEIEKYBIgEgAykDKDcDACADQTBqJAAgAQsTACAAIAEgAioCACACKgIEEPkFCwkAIAEgABEAAAvAAQEGfyMAQRBrIgEkAEEBIQICQCAAKALIASAAKALEAUcNACABQQRqIAAoAghBrAxqEPoFIgMoAgQhBCADKAIAIQUCQANAIAUgBEYNASAFKAIAIgAoAowCIQYgACgCiAIhAAJAA0AgACAGRg0BAkAgACgCACICQd8AIAIoAgAoAgwRAgBFDQAgAigCRBDbAQ0ECyAAQQRqIQAMAAsACyAFQQRqIQUMAAsACyAFIARHIQIgAxD7BRoLIAFBEGokACACCwYAQZ2NHgsHACAAEKQBCzUBAX8jAEEQayIDJAAgAyABOAIMIAMgAjgCCCADQQxqIANBCGogABECACEAIANBEGokACAACycCAX8BfUEIEKYBIQIgACoCACEDIAIgASoCADgCBCACIAM4AgAgAgsHACAAKgIACysBAX9BBBCmASICIAE2AgBBnY0eIABBAkGskBJBtJASQZUEIAJBAEEAEAsLBwAgACoCBAsGAEG5jh4LBwAgABCkAQsHACAAEQ8ACzUBAX9BGBCmASIAQRBqQQApA7CfFTcCACAAQQhqQQApA6ifFTcCACAAQQApA6CfFTcCACAACzkBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABELAAsHACAAKgIACxkBAX9BCBCmASICIAE2AgQgAiAANgIAIAILOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARDQALCQAgACABOAIACxkBAX9BCBCmASICIAE2AgQgAiAANgIAIAILBwAgACoCBAsJACAAIAE4AgQLBwAgACoCCAsJACAAIAE4AggLBwAgACoCDAsJACAAIAE4AgwLBwAgACoCEAsJACAAIAE4AhALBwAgACoCFAsJACAAIAE4AhQLCQAgACABEP0FCw4AIAEgAiAAKAIAEQIAC1ABAX8jAEEgayIDJAAgA0EIaiAAIAIQ/gUgAUEQaiADQQhqQRBqKQIANwIAIAFBCGogA0EIakEIaikCADcCACABIAMpAgg3AgAgA0EgaiQACxAAIAEgAiADIAAoAgARBQALBgBBo40eCxcAAkAgAA0AQQAQpAEPCyAAEP8FEKQBCwkAIABBABCABgsMACABIAAoAgARAAALLwEBfyMAQRBrIgIkACAAIAJBBGogARDnBSIBEIEGIQAgARCCBhogAkEQaiQAIAALPgEBfyMAQRBrIgMkACAAKAIAIQAgA0EEaiACEKoGIAEgA0EEaiAAEQIAIQAgA0EEahCCBhogA0EQaiQAIAALyAEBA38jAEEwayICJAAgAiAAIAJBIGogAkEMaiABEOcFIgEQ5wUiAxCBBiIENgIsIAMQggYaAkACQCAEDQAgAkEANgIYDAELIAAgACgCAEEBajYCACACIAA2AhwgAkEYaiACQRxqIAJBLGoQgwYgAkEcahCEBhogAigCLCIARQ0AIAAgACgCACgCBBEBAAsgARCCBhoCQAJAIAIoAhgiAA0AQQAhAAwBCyAAIAAoAgBBAWo2AgALIAJBGGoQhQYaIAJBMGokACAACz4BAX8jAEEQayIDJAAgACgCACEAIANBBGogAhCqBiABIANBBGogABECACEAIANBBGoQggYaIANBEGokACAAC84BAQJ/IwBBEGsiASQAAkACQCAAKAJEIgIgACgCSEcNAEEAIQIMAQsgAigCACECCyABIAAgAhCGBiICNgIMAkACQCACDQBBACEAIAFBADYCBAwBCyAAIAAoAgBBAWo2AgAgASAANgIIIAFBBGogAUEIaiABQQxqEIMGIAFBCGoQhAYaAkAgASgCDCIARQ0AIAAgACgCACgCBBEBAAsCQCABKAIEIgANAEEAIQAMAQsgACAAKAIAQQFqNgIACyABQQRqEIUGGiABQRBqJAAgAAsMACABIAAoAgARAAALfAECfyMAQRBrIgIkAAJAAkACQCABRQ0AIAEQhwYiAw0BC0EAIQEgAkEANgIIDAELQQwQpgEhASACQQA2AgwgASADNgIIIAFCATcCACACIAE2AgggAkEMahCEBhogASABKAIAQQFqNgIACyACQQhqEIUGGiACQRBqJAAgAQsOACABIAIgACgCABECAAsJACAAIAEQgAYLDgAgASACIAAoAgARAgALEAAgACgCSCAAKAJEa0ECdQsyAQF/QQgQpgEiAyACNgIEIAMgATYCAEGjjR4gAEECQaiREkGwkRJBlgQgA0EAQQAQCwsQACAAKAJUIAAoAlBrQQJ1C24BAn8jAEEQayICJAACQAJAIAAoAlQgACgCUCIDa0ECdSABTQ0AIAJBDGogACADIAFBAnRqKAIAEIkGIAIoAgwhACACQQxqEIoGGgwBCyACIAE2AgAgAkGsiBIgAhCLBkEAIQALIAJBEGokACAACw4AIAEgAiAAKAIAEQIAC6UBAQR/IwBBIGsiAiQAIAJBEGogARDnBSEDIAAoAlQhBCAAKAJQIQECQAJAA0AgASAERg0BAkAgASgCACIFQQxqIAMQjAYNACABQQRqIQEMAQsLIAJBHGogACAFEIkGIAIoAhwhASACQRxqEIoGGgwBC0EAIQEgAiADKAIAIAMgAywAC0EASBs2AgAgAUHohhIgAhCLBgsgAxCCBhogAkEgaiQAIAELPgEBfyMAQRBrIgMkACAAKAIAIQAgA0EEaiACEKoGIAEgA0EEaiAAEQIAIQAgA0EEahCCBhogA0EQaiQAIAALoQEBA38jAEEQayICJAACQAJAIAENAEHtghJBEUEBQbDMHRBNGkEAIQAMAQsCQCABKALQCiIDIAAoAlQgACgCUCIEa0ECdU8NACACQQxqIAAgBCADQQJ0aigCABCJBiACKAIMIQAgAkEMahCKBhoMAQtBACEAIAIgASgCDCABQQxqIAEsABdBAEgbNgIAIAJBtIYSIAIQiwYLIAJBEGokACAACw4AIAEgAiAAKAIAEQIAC4ACAQV/IwBBIGsiAiQAIAAQjQYgASgCeCEDIAEoAnQhBAJAA0AgBCADRg0BIAQoAgAhASACQQRqEI4GIAEgASgCACgCKBEAACEFIAIoAghB1L8RIAUQjwYgAkEYahCNBiABKAIUIQYgASgCECEBAkADQCABIAZGDQEgAkEYaiACQQxqIAEoAgBBDGoQ5wUiBRCQBiAFEIIGGiABQQRqIQEMAAsACyACKAIIIQEgAkEMakGXhxEQkQYhBSABIAIoAhAgAigCHBANIAUQ6wUaIAJBGGoQ6wUaIABBvKoRIAIoAggQ7gUgBEEEaiEEIAJBBGoQ6wUaDAALAAsgAkEgaiQACzwBAX8jAEEQayICJAAgAkEIaiABIAAoAgARAwAgAigCDCEAIAJBADYCDCACQQhqEOsFGiACQRBqJAAgAAsHACAAEJIGCwwAIAEgACgCABEBAAsIACAALQCQAQsMACABIAAoAgARAAALBgBBqY0eCxcAAkAgAA0AQQAQpAEPCyAAEJMGEKQBCy8BAX8gACgCACIAIAAoAgQiAUF/ajYCBAJAIAFBAUcNACAAIAAoAgAoAgQRAQALCzkBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABEBAAsEACAACwwAIAEgACgCABEAAAsGAEGrjR4LFwACQCAADQBBABCkAQ8LIAAQlAYQpAELCgAgACgCABCVBgs5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARAQALBgBBrY0eCxcAAkAgAEUNACAAIAAoAgAoAgQRAQALCwYAQa+NHgsEACAACwQAIAALFwACQCAARQ0AIAAgACgCACgCBBEBAAsLPAEBfyABIAAoAgQiAkEBdWohASAAKAIAIQACQCACQQFxRQ0AIAEoAgAgAGooAgAhAAsgASAAEQAAEJYGCwcAIABBDGoLGQEBf0EIEKYBIgIgATYCBCACIAA2AgAgAgsKACAAIAG2EJcGCw4AIAEgAiAAKAIAETsACxIAIAAgASAAKAIAKALsAREDAAsOACABIAIgACgCABEDAAsIACAALQDCDQsMACABIAAoAgARAAALEwAgACgCzAsgACgC0AsgARCYBgs+AQF/IwBBEGsiAyQAIAAoAgAhACADQQRqIAIQqgYgASADQQRqIAARAgAhACADQQRqEIIGGiADQRBqJAAgAAthAQJ/IAAoAtALIQIgACgCzAshAAJAA0ACQCAAIAJHDQBBACEDDAILAkAgACgCACIDRQ0AIANBAiADKAIAKAIMEQIARQ0AIANBDGogARCMBg0CCyAAQQRqIQAMAAsACyADCz4BAX8jAEEQayIDJAAgACgCACEAIANBBGogAhCqBiABIANBBGogABECACEAIANBBGoQggYaIANBEGokACAACxMAIAAoAswLIAAoAtALIAEQmQYLPgEBfyMAQRBrIgMkACAAKAIAIQAgA0EEaiACEKoGIAEgA0EEaiAAEQIAIQAgA0EEahCCBhogA0EQaiQAIAALYQECfyAAKALQCyECIAAoAswLIQACQANAAkAgACACRw0AQQAhAwwCCwJAIAAoAgAiA0UNACADQSggAygCACgCDBECAEUNACADQQxqIAEQjAYNAgsgAEEEaiEADAALAAsgAws+AQF/IwBBEGsiAyQAIAAoAgAhACADQQRqIAIQqgYgASADQQRqIAARAgAhACADQQRqEIIGGiADQRBqJAAgAAthAQJ/IAAoAtALIQIgACgCzAshAAJAA0ACQCAAIAJHDQBBACEDDAILAkAgACgCACIDRQ0AIANBKSADKAIAKAIMEQIARQ0AIANBDGogARCMBg0CCyAAQQRqIQAMAAsACyADCz4BAX8jAEEQayIDJAAgACgCACEAIANBBGogAhCqBiABIANBBGogABECACEAIANBBGoQggYaIANBEGokACAACzEBAX9BACECAkAgACgC6AsgACgC5AsiAGtBAnUgAU0NACAAIAFBAnRqKAIAIQILIAILDgAgASACIAAoAgARAgALEwAgACgC5AsgACgC6AsgARCaBgs+AQF/IwBBEGsiAyQAIAAoAgAhACADQQRqIAIQqgYgASADQQRqIAARAgAhACADQQRqEIIGGiADQRBqJAAgAAsSACAAKALoCyAAKALkC2tBAnULKwEBf0EEEKYBIgIgATYCAEGvjR4gAEECQfySEkGwkRJBlwQgAkEAQQAQCwsxAQF/QQAhAgJAIAAoAvQLIAAoAvALIgBrQQJ1IAFNDQAgACABQQJ0aigCACECCyACCw4AIAEgAiAAKAIAEQIAC0EBAn8gACgC9AshAiAAKALwCyEAA0ACQCAAIAJHDQBBAA8LIAAoAgAhAyAAQQRqIQAgA0EMaiABEIwGRQ0ACyADCz4BAX8jAEEQayIDJAAgACgCACEAIANBBGogAhCqBiABIANBBGogABECACEAIANBBGoQggYaIANBEGokACAACxIAIAAoAvQLIAAoAvALa0ECdQtTAQN/IAAoAtALIQEgACgCzAshAEEAIQICQANAIAAgAUYNAQJAIAAoAgAiA0UNACACIANBhwEgAygCACgCDBECAGohAgsgAEEEaiEADAALAAsgAgtoAQN/IAAoAtALIQIgACgCzAshAEEAIQMCQANAAkAgACACRw0AQQAhBAwCCwJAIAAoAgAiBEUNACAEQYcBIAQoAgAoAgwRAgBFDQAgAyABRg0CIANBAWohAwsgAEEEaiEADAALAAsgBAsOACABIAIgACgCABECAAtTAQN/IAAoAtALIQEgACgCzAshAEEAIQICQANAIAAgAUYNAQJAIAAoAgAiA0UNACACIANBgAEgAygCACgCDBECAGohAgsgAEEEaiEADAALAAsgAgttAQN/IAEoAtALIQMgASgCzAshAUEAIQQCQANAAkAgASADRw0AQQAhBQwCCwJAIAEoAgAiBUUNACAFQYABIAUoAgAoAgwRAgBFDQAgBCACRg0CIARBAWohBAsgAUEEaiEBDAALAAsgACAFEJwGCz4BAX8jAEEQayIDJAAgA0EIaiABIAIgACgCABEFACADKAIMIQAgA0EANgIMIANBCGoQ6wUaIANBEGokACAAC7sDAQZ/IwBBwABrIgMkAEEAIQQCQCACKAIEIAIsAAsiBSAFQQBIG0UNACAAIAIQnQYiAkUNACADQRxqIANBBGogARDnBSIGEOcFIQcCQAJAAkAgA0EQakHnjRIQngYiCCgCBCAILAALIgQgBEEASBtFDQAgA0E0aiAIEOcFIQEgAigCjAIhACACKAKIAiECA0BBACEFAkAgAiAARw0AQQAhBAwDCwJAIAIoAgAiBEHfACAEKAIAKAIMEQIARQ0AIARBDGogARCMBg0DCyACQQRqIQIMAAsACyACKAKMAiEBIAIoAogCIQIDQAJAIAIgAUcNAEEAIQUMAwsCQCACKAIAIgRB3wAgBCgCACgCDBECAEUNACADQTRqIAcQ5wUhACAEQcgAaigCACAEQcwAaigCACAAEJ8GIQUgABCCBhogBQ0DCyACQQRqIQIMAAsACyABEIIGGiAERQ0AIANBKGogBxDnBSECIARByABqKAIAIARBzABqKAIAIAIQnwYhBSACEIIGGgsgCBCCBhogBxCCBhogBhCCBhpBACEEIAVFDQAgBRCgBkUNACAFEKAGIQQLIANBwABqJAAgBAtWAQF/IwBBIGsiBCQAIAAoAgAhACAEQRRqIAIQqgYgBEEIaiADEKoGIAEgBEEUaiAEQQhqIAARBAAhACAEQQhqEIIGGiAEQRRqEIIGGiAEQSBqJAAgAAtgAQJ/QQAhAwJAIAIoAgQgAiwACyIEIARBAEgbRQ0AIAAgAhCdBiICRQ0AQQAhAyACQQAgAigCACgCzAIRAgAiAkUNACACQcwLaigCACACQdALaigCACABEJkGIQMLIAMLVgEBfyMAQSBrIgQkACAAKAIAIQAgBEEUaiACEKoGIARBCGogAxCqBiABIARBFGogBEEIaiAAEQQAIQAgBEEIahCCBhogBEEUahCCBhogBEEgaiQAIAALGAAgACAAKgK4DRDaAiAAIAAqArwNEN0CCwwAIAEgACgCABEBAAt5AQJ/IwBBEGsiAiQAAkACQCABKAIEIgENAEEAIQMMAQsgASABKAJEQQFqNgJEIAEgASgCREEBajYCRCABIQMLIAIgATYCDCACIAM2AgQgAkEANgIIIAAgAkEMaiACQQhqEKEGIAEQogYgAkEEahCjBhogAkEQaiQACw4AIAEgAiAAKAIAEQMACwkAIAAgARCkBgtBAQF/IwBBEGsiAiQAIAIgASAAKAIAEQMAQRAQpgEiAEEIaiACQQhqKQIANwIAIAAgAikCADcCACACQRBqJAAgAAs5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARCwALCAAgACoC0AELGQEBf0EIEKYBIgIgATYCBCACIAA2AgAgAgs7AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhAAJAIANBAXFFDQAgASgCACAAaigCACEACyABIAIgABENAAswAAJAIAAqAtABIAFbDQAgACABOALQASAAIAAoAgAoApwCEQEAIAAoAghBBxClBgsLGQEBf0EIEKYBIgIgATYCBCACIAA2AgAgAgsIACAAKgLUAQswAAJAIAAqAtQBIAFbDQAgACABOALUASAAIAAoAgAoAqACEQEAIAAoAghBCBClBgsLCAAgAC0AmQ0LIgACQCAALQCZDSABRg0AIAAgAToAmQ0gAEEQQQAQzQkaCws5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARAAALOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARAwALBwAgABCmBgsMACABIAAoAgARAAALCAAgACoC3A0LfgEEfyAAIAE4AtwNIAAoAsgMIQIgACgCxAwhAwJAA0AgAyACRg0BIAMoAgAhAEEAIQQDQAJAIAQgACAAKAIAKAIAEQAASQ0AIANBBGohAwwCCwJAIAAgBCAAKAIAKAIEEQIAIgVFDQAgBSABEOUCCyAEQQFqIQQMAAsACwALCzkBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABELAAs7AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhAAJAIANBAXFFDQAgASgCACAAaigCACEACyABIAIgABENAAtzAQJ/IwBBEGsiAiQAAkACQCABDQAgAkEANgIIDAELIAEgASgCAEEBajYCACACIAE2AgggASgCDCIDRQ0AIAEgASgCAEEBajYCACACIAE2AgwgACADIAJBDGoQpwYgARCoBgsgAkEIahCpBhogAkEQaiQACw4AIAEgAiAAKAIAEQMACwYAQbuNHgsXAAJAIABFDQAgACAAKAIAKAIEEQEACws5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARCwALBwAgACoCYAsZAQF/QQgQpgEiAiABNgIEIAIgADYCACACCzsBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAAkAgA0EBcUUNACABKAIAIABqKAIAIQALIAEgAiAAEQ0ACy0AAkAgACoCYCABWw0AIAAgATgCYCAAIAAoAgAoAlgRAQAgACgCCEEQEKUGCwsZAQF/QQgQpgEiAiABNgIEIAIgADYCACACCwcAIAAqAmQLLQACQCAAKgJkIAFbDQAgACABOAJkIAAgACgCACgCXBEBACAAKAIIQREQpQYLCwcAIAAqAlwLLQACQCAAKgJcIAFbDQAgACABOAJcIAAgACgCACgCVBEBACAAKAIIQQ8QpQYLCwgAIABBxABqCz8AIAEgACgCABEAACEAQRgQpgEiAUEQaiAAQRBqKQIANwIAIAFBCGogAEEIaikCADcCACABIAApAgA3AgAgAQtWAQJ+IAAoAiAiAEHEAGpB4MAdIABB2wAgACgCACgCDBECABsiACkCACECIABBCGopAgAhAyABQRBqIABBEGopAgA3AgAgAUEIaiADNwIAIAEgAjcCAAsOACABIAIgACgCABEDAAsGAEG9jR4LBAAgAAsEACAACxcAAkAgAEUNACAAIAAoAgAoAgQRAQALCzkBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABELAAsZAQF/QQgQpgEiAiABNgIEIAIgADYCACACCzsBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAAkAgA0EBcUUNACABKAIAIABqKAIAIQALIAEgAiAAEQ0ACzAAAkAgACoCkAEgAVsNACAAIAE4ApABIAAgACgCACgCvAERAQAgACgCCEENEKUGCwsZAQF/QQgQpgEiAiABNgIEIAIgADYCACACCzAAAkAgACoClAEgAVsNACAAIAE4ApQBIAAgACgCACgCwAERAQAgACgCCEEOEKUGCwsGAEG/jR4LFwACQCAARQ0AIAAgACgCACgCBBEBAAsLPAEBfyABIAAoAgQiAkEBdWohASAAKAIAIQACQCACQQFxRQ0AIAEoAgAgAGooAgAhAAsgASAAEQAAEJYGCwcAIABBOGoLNAEBfwJAIABBOGoiAiABEIwGDQAgAiABEOgFIAAgACgCACgCTBEBACAAKAIIQYwCEKUGCws8AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARAAAQlgYLYQECfyMAQRBrIgMkACABIAAoAgQiBEEBdWohASAAKAIAIQACQCAEQQFxRQ0AIAEoAgAgAGooAgAhAAsgA0EEaiACEKoGIAEgA0EEaiAAEQMAIANBBGoQggYaIANBEGokAAsGAEHBjR4LBAAgAAsEACAACxcAAkAgAEUNACAAIAAoAgAoAgQRAQALCwgAIAAqApABCzAAAkAgACoCkAEgAVsNACAAIAE4ApABIAAgACgCACgCfBEBACAAKAIIQdkAEKUGCws5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARCwALOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARDQALBgBBw40eCwQAIAALBAAgAAsXAAJAIABFDQAgACAAKAIAKAIEEQEACws5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARCwALOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARDQALMQACQCAAKgKsASABWw0AIAAgATgCrAEgACAAKAIAKAKAAREBACAAKAIIQdoAEKUGCwsZAQF/QQgQpgEiAiABNgIEIAIgADYCACACCzEAAkAgACoCsAEgAVsNACAAIAE4ArABIAAgACgCACgChAERAQAgACgCCEHbABClBgsLBgBBxY0eCxcAAkAgAEUNACAAIAAoAgAoAgQRAQALCzwBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABEAABCWBgsHACAAQQxqCxkBAX9BCBCmASICIAE2AgQgAiAANgIAIAILBgBByI0eCwQAIAALBAAgAAsXAAJAIABFDQAgACAAKAIAKAIEEQEACws8AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARAAAQlgYLOQEBfyABIAAoAgQiAkEBdWohASAAKAIAIQACQCACQQFxRQ0AIAEoAgAgAGooAgAhAAsgASAAEQAACwcAIAAoAhwLGQEBf0EIEKYBIgIgATYCBCACIAA2AgAgAgsHACAAKAIYCwcAIAAoAigLBwAgACgCLAsHACAALQAwCzkBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABEAAAsHACAAKAIkCwcAIAAqAiALOQEBfyABIAAoAgQiAkEBdWohASAAKAIAIQACQCACQQFxRQ0AIAEoAgAgAGooAgAhAAsgASAAEQsAC7UDAgF9C38CQCAALQAxQQFHDQAgACgCGLMiBSAClI4gBZUhAgsgACgCOCEGIAAoAjQhBwJAA0AgByAGRg0BAkAgASAHKAIAIgAoAgwgASgCACgCpAMRAgAiCEUNACAIQYACaiEJIAAoAhQhCiAAKAIQIQADQCAAIApGDQECQCAAKAIAIgsoAgwQuSMNACADIQUCQCAIIAgoAgAoAggRAABBmQNHDQBDAACAPyADIAkgCygCDCAJKAIAKAIIEQIAGyEFCyALKAIMIQwCQCALQRBqKAIAIg0gC0EUaigCACIOIAJBABDGIyILDQAgDSgCACILIAggDCAFIAsoAgAoAjQRHwAMAQsgDSALQQJ0aiIPQXxqKAIAIRACQCALIA4gDWtBAnVODQACQCAPKAIAIgsqAhAgAlwNACALIAggDCAFIAsoAgAoAjQRHwAMAgsgECgCACENAkAgECgCFA0AIBAgCCAMIAUgDSgCNBEfAAwCCyAQIAggDCACIAsgBSAEIA0oAjgRMAAMAQsgECAIIAwgBSAQKAIAKAI0ER8ACyAAQQRqIQAMAAsACyAHQQRqIQcMAAsACwtBAQF/IAEgACgCBCIGQQF1aiEBIAAoAgAhAAJAIAZBAXFFDQAgASgCACAAaigCACEACyABIAIgAyAEIAUgABFpAAsGAEHLjR4LFwACQCAARQ0AIAAgACgCACgCBBEBAAsLNQEBfyMAQRBrIgMkACADIAE2AgwgAyACNgIIIANBDGogA0EIaiAAEQIAIQEgA0EQaiQAIAELGgBB0AAQpgEgACgCACABKAIAQwAAgD8QqwYLBwAgACoCIAt0AgJ9AX8CQCAAKgIgIAFbDQAgACABOAIgIAAqAiggACoCLJMhAkMAAAAAIQMCQCAAKAIcIgQtADBBAUcNACAEKAIosyEDCyAEKAIYIQQgAEGAgID8AzYCNCAAIAEgAyAEs5STIgE4AiggACABIAKTOAIsCws5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARCwALOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARDQALBwAgAC0AOAs5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARAAALCwAgACABQQAQrAYLOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARGgALGAAgACgCHCAAKAIIIAAqAiAgASAAELEDCzsBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAAkAgA0EBcUUNACABKAIAIABqKAIAIQALIAEgAiAAEQ0ACwYAQc2NHgsEACAACwQAIAALFwACQCAARQ0AIAAgACgCACgCBBEBAAsLBgBBz40eCxcAAkAgAEUNACAAIAAoAgAoAgQRAQALCzQBAX8jAEEQayIDJAAgACADQQhqIAIoAgAgAigCBBC1DiICELQOIAIoAgAQYCADQRBqJAALpgECAn8BfiMAQSBrIgMkACABIAAoAgQiBEEBdWohASAAKAIAIQACQCAEQQFxRQ0AIAEoAgAgAGooAgAhAAsgAyACKQIAIgU3AhQgAyAFNwMIIANBHGogASADQQhqIAARBQBBBBCmASEBAkACQCADKAIcIgANAEEAIQIMAQsgACAAKAIAQQFqNgIAIAMoAhwhAgsgASAANgIAIAIQ8AUgA0EgaiQAIAELmwECAn8BfiMAQSBrIgMkACABIAAoAgQiBEEBdWohASAAKAIAIQACQCAEQQFxRQ0AIAEoAgAgAGooAgAhAAsgAyACKQIAIgU3AhQgAyAFNwMIIANBHGogASADQQhqIAARBQBBBBCmASEBAkAgAygCHCIARQ0AIAAgACgCBEEBajYCBAsgASAANgIAIANBHGoQtwYaIANBIGokACABC6IKAQh/IwBB0ABrIgMkAEEAIQQCQCACKAIAIAIoAgRBAEEAQQAQ9hEiBUUNACADIAUQ9xEhBEEAIQZBACEHAkBBkJcYIAUoAgwgBSgCEEEESRsi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NgIECyACIAE2AgwgACACQQxqELYGIAJBDGoQtwYaIAJBEGokAAsOACABIAIgACgCABEDAAsGAEHbjR4LBAAgAAsEACAACxcAAkAgAEUNACAAIAAoAgAoAgQRAQALC0kBAX8jAEEQayICJAACQCABKAIAIgFFDQAgASABKAIAQQFqNgIACyACIAE2AgwgAEHIAGogAkEMahC4BhogARDwBSACQRBqJAALDgAgASACIAAoAgARAwALBgBB3Y0eCwQAIAALBAAgAAsXAAJAIABFDQAgACAAKAIAKAIEEQEACwtHAQF/IwBBEGsiAiQAAkAgASgCACIBRQ0AIAEgASgCBEEBajYCBAsgAiABNgIMIAAgAkEMahC5BiACKAIMEPMFIAJBEGokAAsOACABIAIgACgCABEDAAsGAEHfjR4LFwACQCAARQ0AIAAgACgCACgCBBEBAAsLNQEBfyMAQRBrIgMkACADIAE2AgwgAyACNgIIIANBDGogA0EIaiAAEQIAIQEgA0EQaiQAIAELFQBBgAQQpgEgACgCACABKAIAELoGCwsAIAAgAUEBELsGCw4AIAEgAiAAKAIAERoACxIAIAAgAbYgACgCACgCHBEaAAsOACABIAIgACgCABE7AAsyAQF/QQgQpgEiAyACNgIEIAMgATYCAEHfjR4gAEECQbSWEkGwkRJBmwQgA0EAQQAQCws7AQF/IAEgACgCBCIDQQF1aiEBIAAoAgAhAAJAIANBAXFFDQAgASgCACAAaigCACEACyABIAIgABECAAtEAQJ/IwBBEGsiBCQAIAQgArY4AgwgBCABtjgCCCAAKAIAKAIkIQUgBCAEKQIINwMAIAAgBCADIAURBAAaIARBEGokAAsrAQF/QQQQpgEiAiABNgIAQd+NHiAAQQVB0JYSQeSWEkGcBCACQQBBABALC0kBAn8jAEEQayIEJAAgBCACtjgCDCAEIAG2OAIIIAAoAgAoAighBSAEIAQpAgg3AwAgACAEQwAAAAAgAyAFESwAGiAEQRBqJAALRAECfyMAQRBrIgQkACAEIAK2OAIMIAQgAbY4AgggACgCACgCLCEFIAQgBCkCCDcDACAAIAQgAyAFEQQAGiAEQRBqJAALRAECfyMAQRBrIgQkACAEIAK2OAIMIAQgAbY4AgggACgCACgCMCEFIAQgBCkCCDcDACAAIAQgAyAFEQQAGiAEQRBqJAALEgAgACgClAEgACgCkAFrQQN1C5YBAgF/AX0jAEEQayIDJAACQAJAAkAgASgClAEgASgCkAEiAWtBA3UgAk0NACABIAJBA3RqIgEoAgAiAg0BCyAAQQI2AgQgABC6ATYCAAwBCyABKgIEIQQgACACEJwGIAAoAgQgA0EIakHp6xAQkQYiASgCBCADIAQQvgYiACgCBBANIAAQ6wUaIAEQ6wUaCyADQRBqJAALPgEBfyMAQRBrIgMkACADQQhqIAEgAiAAKAIAEQUAIAMoAgwhACADQQA2AgwgA0EIahDrBRogA0EQaiQAIAALRQEDfyAAKALAASEBIAAoArwBIQJBACEDQQAhAAN/AkAgACACRw0AIAMPCyADIAEgAEE8bGotADBqIQMgAEEBaiEADAALC8kBAQR/IAEoAsABIQMgASgCvAEhBEEAIQVBACEBAkACQAJAAkADQCABIARGDQQCQAJAIAMgAUE8bGoiBi0AMEEBRw0AAkAgBSACRw0AIAYoAhAiAUUNByABKAIEIgFFDQcgASABKAIAKAIIEQAAQUNqDgQCBgQFBwsgBUEBaiEFCyABQQFqIQEMAQsLIAAgASgCPEEMahDnBRoPCyAAQeHpEBCeBhoPCyAAQff7EBCeBhoPCyAAQajrEBCeBhoPCyAAQY6bERCeBhoLOgEBfyMAQRBrIgMkACADQQRqIAEgAiAAKAIAEQUAIANBBGoQlgYhACADQQRqEIIGGiADQRBqJAAgAAtQAQF/IwBBEGsiAiQAAkAgASgCBCIBRQ0AIAEgASgCREEBajYCRAsgAiABNgIMIAAgAkEMaiAAKAIAKAIgEQMAIAJBDGoQowYaIAJBEGokAAsOACABIAIgACgCABEDAAsgAQF/IAAoAowDIgEgAEH8AmogARsiACgCBCAAKAIIRwsrAQF/QQQQpgEiAiABNgIAQd+NHiAAQQJBkJcSQZSQEkGdBCACQQBBABALCxgBAX8gACgCjAMiASAAQfwCaiABGxDABgsYAQF/IAAoAowDIgEgAEH8AmogARsQwQYLGAEBfyAAKAKMAyIBIABB/AJqIAEbEMIGCwwAIAEgACgCABEBAAu9AQEDfyMAQRBrIgIkAEEAIQMCQAJAIAEoAowDIgQgAUH8AmogBBsoAgAiBA0AQQAhAQwBC0EBIQEgBCgCBCIERQ0AIAQgBCgCACgCLBEAACEDCyAAEI4GIAAoAgQiACACQQhqQeOBERCRBiIEKAIEIAIgARDDBiIBKAIEEA0gARDrBRogBBDrBRogACACQQhqQe/xEBCRBiIBKAIEIAIgAxDDBiIDKAIEEA0gAxDrBRogARDrBRogAkEQaiQACzwBAX8jAEEQayICJAAgAkEIaiABIAAoAgARAwAgAigCDCEAIAJBADYCDCACQQhqEOsFGiACQRBqJAAgAAsGAEHhjR4LFwACQCAARQ0AIAAgACgCACgCCBEBAAsLFAAgACgCCCIAIAAoAgAoAggRAAALOQEBfyABIAAoAgQiAkEBdWohASAAKAIAIQACQCACQQFxRQ0AIAEoAgAgAGooAgAhAAsgASAAEQAACwoAIAAoAghBDGoLPAEBfyABIAAoAgQiAkEBdWohASAAKAIAIQACQCACQQFxRQ0AIAEoAgAgAGooAgAhAAsgASAAEQAAEJYGCwcAIAAvAQALHgEBfyAAQQAgACgCCCIBIAEoAgAoAggRAABBO0YbCwwAIAEgACgCABEAAAseAQF/IABBACAAKAIIIgEgASgCACgCCBEAAEE4RhsLDAAgASAAKAIAEQAACx4BAX8gAEEAIAAoAggiASABKAIAKAIIEQAAQTpGGwsMACABIAAoAgARAAALBgBB5o0eCwQAIAALBAAgAAsXAAJAIABFDQAgACAAKAIAKAIIEQEACwsHACAALQAMCyEAAkAgAC0ADCABRg0AIAAgAToADCAAKAIEQQE6AKwBCws5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARAAALOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARAwALBgBB6I0eCwQAIAALBAAgAAsXAAJAIABFDQAgACAAKAIAKAIIEQEACwsHACAAKgIMCyEAAkAgACoCDCABWw0AIAAgATgCDCAAKAIEQQE6AKwBCws5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARCwALOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARDQALBgBB6o0eCwQAIAALBAAgAAsXAAJAIABFDQAgACAAKAIAKAIIEQEACwseAAJAIAAtABgNACAAQQE6ABggACgCBEEBOgCsAQsLOQEBfyABIAAoAgQiAkEBdWohASAAKAIAIQACQCACQQFxRQ0AIAEoAgAgAGooAgAhAAsgASAAEQEACxwBAX9BEBCmASIAQgA3AgAgAEEIakIANwIAIAALBwAgABCkAQsqAEG+jh4gAEGtkB5BtJASQZ4EIAEQxQZBrZAeQeSdEkGfBCABEMUGEBQLBgBB7I0eCx0AAkAgAA0AQQAQpAEPCyAAQRhqEKMBGiAAEKQBCykBAX8jAEEQayICJAAgAiABNgIMIAJBDGogABEAACEBIAJBEGokACABCzIBAX9BHBCmASEBIAAoAgAhACABQQA2AhggAUEANgIEIAEgADYCACABQQFBARChASABCwsAIAAgASACEKEBCz0BAX8gASAAKAIEIgRBAXVqIQEgACgCACEAAkAgBEEBcUUNACABKAIAIABqKAIAIQALIAEgAiADIAARBQAL3QQBBn8jAEEQayIDJAACQAJAIAIgASACIAFKGyAAKAIAIgRMDQBBACEADAELAkACQCABIAIgASACSBtBAEoNACADQQA2AQgMAQsgAEEYaiEFAkAgACgCGA0AAkAgACgCCCIGIAFODQAgACAEQQFBICABQX9qZ2t0IgYgBCAGSBsiBjYCCAsCQCAAKAIMIgcgAk4NACAAIARBAUEgIAJBf2pna3QiByAEIAdIGyIHNgIMCyAAKAIEQQBBAEEAIAYgBxClASEEIANBADYCDCAFIAQQogEgA0EMahCjARoLIAUhBANAAkAgBCgCACIEDQACQANAIAAoAgwhBAJAIAAoAggiByAAKAIAIgZIDQAgBCAGTg0CCwJAAkAgBCAHSg0AIAAgBiAEQQF0IgggBiAISBsiBjYCDCAAKAIYIQggAEEANgIYIAAoAgQgCEEAIAQgByAGEKUBIQQgA0EANgIMIAUgBBCiASADQQxqEKMBGgwBCyAAIAYgB0EBdCIIIAYgCEgbIgY2AgggACgCGCEIIABBADYCGCAAKAIEIAggB0EAIAYgBBClASEEIANBADYCDCAFIAQQogEgA0EMahCjARoLIAUoAgAgASACIANBCGoQrgFFDQAMBAsAC0EAIQAgAy8BCCEEIAMvAQohAQwDCyAEIAEgAiADQQhqEK4BRQ0ACwsgACAAKAIQIgYgAy4BCCIEIAFqIgEgBiABShs2AhAgACAAKAIUIgYgAy4BCiIBIAJqIgIgBiACShs2AhRBASEACyADQRBqJAAgAUEQdCAEQRB0QRB1ckF/IAAbCz0BAX8gASAAKAIEIgRBAXVqIQEgACgCACEAAkAgBEEBcUUNACABKAIAIABqKAIAIQALIAEgAiADIAARBAALBwAgACgCEAsyAQF/QQgQpgEiAyACNgIEIAMgATYCAEHsjR4gAEECQYiYEkGUkBJBoAQgA0EAQQAQCwsHACAAKAIUCwYAQe+NHgsXAAJAIABFDQAgACAAKAIAKAIEEQEACwtoAgJ/AX4jAEEQayIFJAAgASAAKAIEIgZBAXVqIQEgACgCACEAAkAgBkEBcUUNACABKAIAIABqKAIAIQALIAUgAykCACIHNwIIIAUgBzcDACABIAIgBSAEIAARBwAhACAFQRBqJAAgAAsGAEHxjR4LBAAgAAsEACAACxcAAkAgAEUNACAAIAAoAgAoAgQRAQALCwkAIABBAToACAsMACABIAAoAgARAQALOgEBfyMAQRBrIgIkACACIAE2AgwgAhC6ATYCCCACQQhqIAARAAAhASACQQhqEOsFGiACQRBqJAAgAQtBAQF/QRQQpgEiAUEAOgAIIAFCgICAgBA3AgAgASAAKAIANgIMIAEgACgCBDYCECAAQQA2AgQgAUHEmBI2AgAgAQtsAQF/IwBBIGsiAyQAIANBDGogARCqBiADIAI2AgggAxC6ATYCBCADQRhqIANBDGogA0EEaiAAEQUAIAMoAhwhASADQQA2AhwgA0EYahDrBRogA0EEahDrBRogA0EMahCCBhogA0EgaiQAIAELKgAgACABKAIAIAEgASwAC0EASBtB8Y0eIAIoAgQQGDYCBCAAELoBNgIACwYAQfyNHgsHACAAEKQBCzkBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABEAAAtAAQN/IwBBEGsiASQAIAFBBGogACgCBEEcahDMBiIAKAIAIQIgACgCBCEDIAAQzgYaIAFBEGokACADIAJrQQJ1CxkBAX9BCBCmASICIAE2AgQgAiAANgIAIAILCgAgACgCBEEMags8AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARAAAQlgYLFQAgACgCBCIAKAIsIAAoAihrQQJ1C5UCAQJ/IwBBIGsiAiQAAkACQCAAKAIEIgMoAiwgAygCKCIDa0ECdSABTQ0AIAMgAUECdGooAgAiA0UNACACIAMgAygCACgCFBEAACIBNgIcIAAoAgghAAJAAkAgAUUNACABIAEoAkRBAWo2AkQgAiABNgIYIAAgARDIBiACQRhqEKMGGiABIAEoAkRBAWo2AkQMAQsgAkEANgIYIABBABDIBiACQRhqEKMGGgsgAiABNgIUIAJBEGogARDJBiACQRRqEKMGGiACQRxqEKMGGiACKAIQIQEMAQsgAiABNgIAIAJB44gSIAIQiwZBACEBIAJBADYCEAsgASABKAIAQQFqNgIAIAJBEGoQygYaIAJBIGokACABCw4AIAEgAiAAKAIAEQIAC5gCAQJ/IwBBIGsiAiQAAkACQCAAKAIEIgNBKGooAgAgA0EsaigCACABEMsGIgNFDQAgAiADIAMoAgAoAhQRAAAiAzYCHCAAKAIIIQACQAJAIANFDQAgAyADKAJEQQFqNgJEIAIgAzYCGCAAIAMQyAYgAkEYahCjBhogAyADKAJEQQFqNgJEDAELIAJBADYCGCAAQQAQyAYgAkEYahCjBhoLIAIgAzYCFCACQRBqIAMQyQYgAkEUahCjBhogAkEcahCjBhogAigCECEDDAELQQAhAyACIAEoAgAgASABLAALQQBIGzYCACACQY2FEiACEIsGIAJBADYCEAsgAyADKAIAQQFqNgIAIAJBEGoQygYaIAJBIGokACADCz4BAX8jAEEQayIDJAAgACgCACEAIANBBGogAhCqBiABIANBBGogABECACEAIANBBGoQggYaIANBEGokACAAC08BAX8jAEEgayICJAAgAkEIaiACQRRqIAEoAgRBHGoQzAYiASgCACABKAIEEM0GIAEQzgYaIAAgAkEIahDPBiACQQhqENAGGiACQSBqJAALKwEBf0EEEKYBIgIgATYCAEH8jR4gAEECQYiZEkHYnhJBoQQgAkEAQQAQCwuTAgEEfyMAQSBrIgIkACABKAIEIQMgAkEANgIcIAJCADcC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IAEgACgCABEDACACKAIMIQAgAkEANgIMIAJBCGoQ6wUaIAJBEGokACAACwcAIAAQ7QYLDAAgASAAKAIAEQEACwYAQYmOHgsXAAJAIABFDQAgACAAKAIAKAIMEQEACwsWACAAKAIEKAJIIgBBDGpB8JIeIAAbCzwBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABEAABCWBgsHACAALQAICzkBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABEAAAsJACAAQQA6AAgLDAAgASAAKAIAEQEACwYAQYyOHgsEACAACwQAIAALFwACQCAARQ0AIAAgACgCACgCDBEBAAsLCgAgACgCBCoCYAsMACAAKAIEIAEQtg8LOQEBfyABIAAoAgQiAkEBdWohASAAKAIAIQACQCACQQFxRQ0AIAEoAgAgAGooAgAhAAsgASAAEQsACzsBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAAkAgA0EBcUUNACABKAIAIABqKAIAIQALIAEgAiAAEQ0ACwYAQY6OHgsEACAACwQAIAALFwACQCAARQ0AIAAgACgCACgCDBEBAAsLCgAgACgCBC0AYAsMACAAKAIEIAEQsBALOQEBfyABIAAoAgQiAkEBdWohASAAKAIAIQACQCACQQFxRQ0AIAEoAgAgAGooAgAhAAsgASAAEQAACzsBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAAkAgA0EBcUUNACABKAIAIABqKAIAIQALIAEgAiAAEQMACwYAQZCOHgsEACAACwQAIAALFwACQCAARQ0AIAAgACgCACgCDBEBAAsLCgAgACgCBCgCYAsMACAAKAIEIAEQrhALOQEBfyABIAAoAgQiAkEBdWohASAAKAIAIQACQCACQQFxRQ0AIAEoAgAgAGooAgAhAAsgASAAEQAACzsBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAAkAgA0EBcUUNACABKAIAIABqKAIAIQALIAEgAiAAEQMACxcAIAAoAgQiACAALQBjIAEgAiADEO4GCxIAIAEgAiADIAQgACgCABEIAAsSACAAKAIEIAEgAiADIAQQ7gYLFAAgASACIAMgBCAFIAAoAgARCgALKwAgACgCBCIAIAEgACgCYCIAQRB2Qf8BcSAAQQh2Qf8BcSAAQf8BcRDuBgsOACABIAIgACgCABEDAAsGAEGSjh4LBAAgAAsEACAACxcAAkAgAEUNACAAIAAoAgAoAgwRAQALCwsAIAAoAgRB4ABqCy4BAX8jAEEQayICJAAgACgCBCACQQRqIAEQ5wUiABCsECAAEIIGGiACQRBqJAALPAEBfyABIAAoAgQiAkEBdWohASAAKAIAIQACQCACQQFxRQ0AIAEoAgAgAGooAgAhAAsgASAAEQAAEJYGC2EBAn8jAEEQayIDJAAgASAAKAIEIgRBAXVqIQEgACgCACEAAkAgBEEBcUUNACABKAIAIABqKAIAIQALIANBBGogAhCqBiABIANBBGogABEDACADQQRqEIIGGiADQRBqJAALBgBBlI4eCwQAIAALBAAgAAsXAAJAIABFDQAgACAAKAIAKAIMEQEACwsKACAAKAIEEO8GCwwAIAEgACgCABEBAAsGAEGWjh4LBAAgAAsEACAACxcAAkAgAEUNACAAIAAoAgAoAgwRAQALC3QBAn8jAEEQayICJAAgAkEEaiABKAIEQcgAaigCABDwBgJAAkAgASgCBCgCYCIBIAIoAgggAigCBCIDa0ECdU8NACAAIAMgAUECdGooAgBBDGoQ5wUaDAELIABB540SEJ4GGgsgAkEEahDxBhogAkEQaiQACy4BAX8jAEEQayICJAAgACgCBCACQQRqIAEQ5wUiABDEKCAAEIIGGiACQRBqJAALYwECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgAkEEaiABIAARAwAgAkEEahCWBiEAIAJBBGoQggYaIAJBEGokACAAC2EBAn8jAEEQayIDJAAgASAAKAIEIgRBAXVqIQEgACgCACEAAkAgBEEBcUUNACABKAIAIABqKAIAIQALIANBBGogAhCqBiABIANBBGogABEDACADQQRqEIIGGiADQRBqJAALWQEDfyMAQRBrIgEkACABQQRqIAAoAgRByABqKAIAEPAGIAEoAgQhAiABKAIIIQMgACgCBCgCYCEAIAFBBGoQ8QYaIAFBEGokACAAQQAgACADIAJrQQJ1SRsLbwECfyMAQSBrIgIkACACQRRqIAAoAgRB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ABEDAAsOACAAKAIEIAEgAhCCBwsQACABIAIgAyAAKAIAEQUACwYAQZqOHgsEACAACwQAIAALFwACQCAARQ0AIAAgACgCACgCDBEBAAsLDAAgACgCBCABEIMHCw4AIAEgAiAAKAIAEQMACwYAQZyOHgsEACAACwQAIAALFwACQCAARQ0AIAAgACgCACgCDBEBAAsLxwEBAn8jAEEQayICJAACQCABRQ0AIAEgASgCAEEBajYCAAsgAiABNgIEIAAoAgQhACACQQA2AgwgAEHoAGogAkEMahDzBhogAkEMahCjBhoCQCABRQ0AIAEgASgCAEEBajYCAAsgAiABNgIIIABBfxCEBwJAIABB5ABqIgMgAkEIakYNAAJAIAENACADQQAQhQcMAQsgASABKAIAQQFqNgIAIAMgARCFBwsgABCGByACQQhqEIUGGiACQQRqEIUGGiACQRBqJAALDgAgASACIAAoAgARAwALhAEBAn8jAEEQayICJAACQAJAIAEoAgQiAQ0AIAAoAgQhAEEAIQMMAQsgASABKAJEQQFqNgJEIAAoAgQhACABIAEoAkRBAWo2AkQgASEDCyACIAE2AgwgAiADNgIIIABB6ABqIAJBDGoQ8wYaIAJBDGoQowYaIAJBCGoQowYaIAJBEGokAAsOACABIAIgACgCABEDAAsGAEGejh4LFwACQCAADQBBABCkAQ8LIAAQhwcQpAELBwAgABCIBwsMACABIAAoAgARAQALPQACQCABLAALQQBIDQAgACABKQIANwIAIABBCGogAUEIaigCADYCACAADwsgACABKAIAIAEoAgQQigcgAAt3AQJ/AkAgACABRg0AIAEsAAshAgJAIAAsAAtBAEgNAAJAIAJBAEgNACAAIAEpAgA3AgAgAEEIaiABQQhqKAIANgIADwsgACABKAIAIAEoAgQQqgcaDwsgACABKAIAIAEgAkEASCIDGyABKAIEIAIgAxsQqwcaCws8AQJ/IwBBEGsiAiQAIAAgASACQQhqQbypERCRBiIDKAIEEBk2AgQgABC6ATYCACADEOsFGiACQRBqJAALbgIBfwF8IwBBEGsiASQAIAFBADYCDCAAQaiQHiABQQxqEAchAiABIAEoAgw2AggCQAJAIAJEAAAAAAAA8EFjIAJEAAAAAAAAAABmcUUNACACqyEADAELQQAhAAsgAUEIahCLBxogAUEQaiQAIAALIAEBfwJAIAAoAgQiAUEJSQ0AIAEQASAAQQA2AgQLIAALxgIBBX8jAEEgayICJAACQAJAIAEgACgCBCIDIAAoAgAiBGsiBU0NAAJAIAAoAggiBiADayABIAVrIgVJDQAgACAFELAHDAILIAJBDGogBCAGIAUgA2ogBGsQsQcgACgCBCAAKAIAayAAQQhqELIHIgQoAggiASAFaiEFAkADQCABIAVGDQEgAUEAOgAAIAFBAWohAQwACwALIAQgATYCCCAEKAIEIQUgACgCACEDIAAoAgQhAQJAA0AgASADRg0BIAVBf2oiBSABQX9qIgEtAAA6AAAMAAsACyAAKAIAIQEgACAFNgIAIAQgATYCBCAAKAIEIQUgACAEKAIINgIEIAQgBTYCCCAAKAIIIQUgACAEKAIMNgIIIAQgATYCACAEIAU2AgwgBBCzBxoMAQsgASAFTw0AIAAgBCABajYCBAsgAkEgaiQACzwBAX8jAEEQayIDJAAgAyACNgIMIAMgATYCCCAAQbeQHiADQQhqEA82AgQgABC6ATYCACADQRBqJAAgAAuHAQEBfyMAQRBrIgMkACADIAIQjwc2AgggA0EANgIEAkACQEEALQDwjh5BAXFFDQBBACgC7I4eIQIMAQtBAkGEoBJBABAFIQJBAEEBOgDwjh5BACACNgLsjh4LIAIgACgCBCABIANBBGogA0EIahAXGiADIAMoAgQ2AgAgAxCLBxogA0EQaiQACxcBAX8gACgCACECIAAgATYCACACEPAFCw8AAkAgAEUNACAAEJUGCwsfAQF/AkAgACgCACIBRQ0AIAAgATYCBCABEKQBCyAACxcBAX8gACgCACECIAAgATYCACACEPMFCy8BAX8CQCAARQ0AIAAgACgCBCIBQX9qNgIEIAFBAUcNACAAIAAoAgAoAgQRAQALC1gBA38jAEEQayIBJAAgASAAKAIAIgI2AgggACgCBCEDIABBADYCBEH8jB4Q6wUaQQAgAzYCgI0eQQAgAjYC/IweIAFBADYCDCABQQhqEOsFGiABQRBqJAALmQMCAX8BfCMAQTBrIgQkAAJAAkACQEEAKAKAjR5BfmoOAwABAAELIABBADYCAAwBCyAEIAMgAygCACgCFBEAALM4AiAgBCACNgIYIAQgATYCECAEQQA2AiwC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CyAKIBRBBGoiAjYCSCAKKAJEIQcgCiAINgJEIAogFSAWQQJ0ajYCTCAHRQ0AIAcQpAELIAogAjYCSAwECwJAAkAgCigCDCICIAooAhAiCE8NACACIAE2AgAgAkEEaiECDAELIARBoAFqIAooAggiByAIIAIgB2tBAnVBAWoQyg4gCigCDCAKKAIIa0ECdSAQEMsOIQggBCgCqAEiAiABNgIAIAQgAkEEajYCqAEgCyAIEMwOIAooAgwhAiAIEM0OGgsgCiACNgIMQQAQlRIgASABKAIAKAIIEQAAQZYDRw0DIApBAToAkAEMAwsCQAJAIAooAlQiAiAKKAJYIghPDQAgAiABNgIAIAJBBGohAgwBCyACIAooAlAiB2tBAnUiFkEBaiIVQYCAgIAETw0iAkACQCAIIAdrIghBAXUiFCAVIBQgFUsbQf////8DIAhB/P///wdJGyIVDQBBACEUDAELIBVBgICAgARPDSQgFUECdBCmASEUCyAUIBZBAnRqIhYgATYCACAWIQgCQANAIAIgB0YNASAIQXxqIgggAkF8aiICKAIANgIADAALAAsgCiAWQQRqIgI2AlQgCigCUCEHIAogCDYCUCAKIBQgFUECdGo2AlggB0UNACAHEKQBCyAKIAI2AlQMAgsCQAJAIAooAngiAiAKKAJ8IghPDQAgAiABNgIAIAJBBGohAgwBCyACIAooAnQiB2tBAnUiFkEBaiIVQYCAgIAETw0hAkACQCAIIAdrIghBAXUiFCAVIBQgFUsbQf////8DIAhB/P///wdJGyIVDQBBACEUDAELIBVBgICAgARPDSMgFUECdBCmASEUCyAUIBZBAnRqIhYgATYCACAWIQgCQANAIAIgB0YNASAIQXxqIgggAkF8aiICKAIANgIADAALAAsgCiAWQQRqIgI2AnggCigCdCEHIAogCDYCdCAKIBQgFUECdGo2AnwgB0UNACAHEKQBCyAKIAI2AngMAQsgASgCJCICIAooAnggCigCdCIIa0ECdU8NACAIIAJBAnRqKAIAIgggCCgCDEEBajYCDCABKAIgIQIgASAINgIgIAJFDQAgAiACKAIMIghBf2o2AgwgCEEBRw0AIAIgAigCACgCBBEBAAsgASABKAIAKAIIEQAAIgJBR2oiCEEVSw0DQQEgCHQiB0HwgSRxDQcCQCAHQYCCgAFxDQAgCA0EIAQoAnggBCgCfBDrDiICRQ0FIAIoAgQhAkEMEKYBIgcgAjYCCCAHIAE2AgQgB0GI3BQ2AgBBOSECDB0LQQgQpgEiByABNgIEIAdB2OAUNgIAQcEAIQIMHAsgBCgCkAEhAgJAA0AgAiAEKAKMAUYiDg0BIAJBfGoiAigCACIBIAEoAgAoAggRAABFDQALCyAEKAKEAUUNASAEKAKAARCWEiAEQQA2AoABIAQoAnwhAUEAIQIDQAJAIAIgAUcNACAEQQA2AoQBDAMLIAQoAnggAkECdGpBADYCACACQQFqIQIMAAsACyAEIAEgASgCACgCCBEAADYCACAEQcGDEiAEEIsGIAEgASgCACgCBBEBAEEAIBMgEyABRhshBwwgCyAEIAQoAowBNgKQASAKKAIMIQ0gCigCCCEFQQAhC0EAIQJBACEIAkACQAJAAkACQANAAkAgBSANRw0AIAggAkYNBiARKAIAIhMNBCAKEIoSQYABEKYBIQEgCigCgAEhByABQgA3AgQgAUIANwIUIAFBC2pCADcAACABQgA3AyAgASAHNgIcIAFBKGpCADcDACABQTBqQgA3AwAgAUE4akIANwMAIAFCADcCRCABQYCAgPwDNgJAIAFBzABqQgA3AgAgAUIANwNYIAFBgICA/AM2AlQgAUHgAGpCADcDACABQYCAgPwDNgJoIAFByAE2AnggAUIANwNwIAFB6IgUNgIAQSAQpgEiEEIANwIMIBAgATYCCCAQQQE2AgAgEEGAgID8AzYCHCAQQRRqQgA3AgBBACEBQaDlABBeIgVFDQMgBUEJOgBkIAVBihI7AQAgBUEANgIcIAVBADoAAiAFQgA3AkQgBUEANgIUIAVCADcCJCAFQQA2AAMgBUEANgJgIAVBpQQ2AlwgBUEANgJ0IAUgBUHQAGo2AhAgBUEsakIANwIAIAVBNGpCADcCACAFQTxqQQA2AgAgBSAFQdgDaiIBNgLkAyAFIAE2AuADIAUgBTYC1AMgBUHgBWpCADcDACAFQgA3A9gFIAVCATcD6AUgBUEANgJYIAVCADcDUCAFQQA2AsQFIAVBADYC1AUgBUEANgJwIAVCADcDaCAFQQA6AGUgBUIANwPwBSAFQfgFakIANwMAIAVBgAZqQgA3AwAgBUKg5YCAgBk3A3ggBULIgYCAgIABNwOAASAFQagCaiENIAVBiAFqIQtBACEBA0AgAUEoRg0DIAsgAUECdCIHakEANgIAIA0gB2pBADYCACABQQFqIQEMAAsACwJAIAUoAgAiB0UNACAHIAcoAihBAWo2AigLAkAgB0GRBCAHKAIAKAIMEQIARQ0AAkACQCACIAtPDQAgAiAHNgIADAELIAIgCGtBAnUiD0EBaiIBQYCAgIAETw0jAkACQCALIAhrIgtBAXUiECABIBAgAUsbQf////8DIAtB/P///wdJGyILDQBBACEQDAELIAtBgICAgARPDSUgC0ECdBCmASEQCyAQIA9BAnRqIg8gBzYCACAPIQECQANAIAIgCEYNASABQXxqIgEgAkF8aiICKAIANgIADAALAAsgECALQQJ0aiELAkAgCEUNACAIEKQBCyABIQggDyECCyACQQRqIQILIAcgBygCKCIBQX9qNgIoAkAgAUEBRw0AIAcgBygCACgCBBEBAAsgBUEEaiEFDAALAAsgBUEANgLQAyAFQgA3A8gDIAVB8ANqIQdBACEBA0ACQCABQQ5HDQAgBUHg1wBqIQ0gBUHg0wBqIQtBACEBA0ACQCABQYABRw0AIAVB4ApqIQ1BACEBA0ACQCABQYIBRw0AIAVB4NsAaiEHQQAhAQNAAkAgAUGAAUcNACAFQeDfAGohB0EAIQEDQAJAIAFBggFHDQAgBUHgywBqIQdBACEBAkADQCABQYACRg0BIAcgAUECdGpBADYCACABQQFqIQEMAAsACyAFQaDlADYC4EtBACEBIAVB4AZqQQBBgAQQSBogBUHo4wBqQQBBsAEQSBogBUGIBmpBAEHMABBIGiAFQQE2AphlAkAgBUGmBEEAEJkSDQAgBSEBDAsLIAUQkRIMCgsgByABQQJ0akEANgIAIAFBAWohAQwACwALIAcgAUECdGpBADYCACABQQFqIQEMAAsACyANIAFBBnRqIgdCADcCLCAHQQA2AhwgB0EANgIMIAdBNGpCADcCACABQQFqIQEMAAsACyALIAFBAnQiB2pBADYCACANIAdqQQA2AgAgAUEBaiEBDAALAAsgByABQQJ0akEANgIAIAFBAWohAQwACwALIBAgATYCBCAQKAIIIQ0gASgCEEGnBDYCyAVBwIcUIQcCQANAIAcoAgQiBUUNASABIAVBAEEAQQAQmxIgASAHKAIAEJwSIAFBAUEA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BSwAF0EASBshBgsgAyAGNgIIIAMgBzYCBCADIAQ2AgAgA0Gn/xEgAxCLBgwBCyAGKAIQIgQgBCgCACgCFBEBAAJAIAUgBioCKEMAAIA/XHJBAXENACAGLQAxDQAgBigCECIERQ0BIAQgBCgCACgCEBEAAEUNAQsgAEEBOgCsAQsgCEEBaiEIDAALAAtBASEEAkAgAC0ArAENACAAKAKQASAAKAKUAUcNACAAKAL8ASAAKAKAAkchBAsgA0HAAWokACAEDwsQrAEACzkBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABEAAAsSACABIAIgAyAEIAAoAgARPAALNQEBfyMAQRBrIgIkACACIAE4AgggAEGtkB4gAkEIahAPNgIEIAAQugE2AgAgAkEQaiQAIAALDAAgASAAKAIAEQAACxYAIAAQ8x4gACAAKAIAQQEQxh9BAEcLFgAgABDzHiAAIAAoAgBBABDGH0EARwskAQF/AkAgACgCACIBRQ0AIABBADYCACABQQAQsR8gARCoBgsLOQEBfyMAQRBrIgIkACACIAFB/wFxNgIIIABBoZAeIAJBCGoQDzYCBCAAELoBNgIAIAJBEGokACAACw0AIAEgACgCAGoqAgALEgEBf0EEEKYBIgEgADYCACABCw8AIAEgACgCAGogAjgCAAs5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARAAALaQEBfyMAQSBrIgIkACACQRBqQgA3AwAgAkIANwMIIAJBgICA/AM2AhgCQCABRQ0AIAEgASgCREEBajYCRAsgAiABNgIEIAAgAkEEaiACQQhqEIgYIAEQhxggAkEIahCJGBogAkEgaiQAC1gBAn8jAEEQayICJAACQAJAIAENAEEAIQEMAQtBMBCmASEDIAEgASgCREEBajYCRCACIAE2AgwgAyABELA/IQEgAkEMahCjBhoLIAAgATYCACACQRBqJAALGAEBfwJAIAAoAgAiAUUNACABEO0GCyAACzEBAX8DQAJAIAAgAUcNAEEADwsgACgCACEDIABBBGohACADQQxqIAIQjAZFDQALIAMLdQEDfyAAQQA2AgggAEIANwIAAkACQCABKAIEIgIgASgCACIDRg0AIAIgA2siAkECdSIBQYCAgIAETw0BIAAgARCbGCIBNgIEIAAgATYCACAAIAEgAmoiBDYCCCABIAMgAhCJARogACAENgIECyAADwsQrAEAC94FAQx/IwBBEGsiAyQAIABBADYCCCAAQgA3AgAgA0EEaiEEQQAhBQJAAkACQANAIAEgAkYNAUEAIQYCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgASgCACIHIAcoAgAoAggRAAAiCEHOfGoODwULCAsLBgQLCwELCwsLAwALAkAgCEGDfGoOAwYLBgALIAhBrwNGDQEgCEH2A0YNBiAIQbQERg0IIAhByQRGDQkgCEHWBEcNCkEMIQYMCgtBASEGDAkLQQIhBgwIC0EDIQYMBwtBBCEGDAYLQQUhBgwFC0EGIQYMBAtBByEGDAMLQQghBgwCC0EKIQYMAQtBCyEGCyADIAY2AgAgBCAHQQxqEOcFIQkCQAJAIAUgACgCCCIHTw0AIAUgAygCADYCACAFQQxqIAlBCGoiBygCADYCACAFIAkpAgA3AgQgCUIANwIAIAdBADYCACAFQRBqIQUMAQsgBSAAKAIAIgprQQR1IghBAWoiBkGAgICAAU8NAwJAAkAgByAKayIHQQN1IgsgBiALIAZLG0H/////ACAHQfD///8HSRsiDA0AQQAhDQwBCyAMQYCAgIABTw0FIAxBBHQQpgEhDQsgDSAIQQR0aiIOIAMoAgA2AgAgDiAJKQIANwIEIA5BDGogCUEIaigCADYCACAJIQcgDiEGAkADQCAHQgA3AgAgB0EIakEANgIAIAUgCkYNASAGQXBqIgggBUFwaiILKAIANgIAIAZBdGoiBiAFQXRqIgcpAgA3AgAgBkEIaiAHQQhqKAIANgIAIAghBiALIQUMAAsACyAAKAIAIQggACAGNgIAIAAoAgQhByAAIA5BEGoiBTYCBCAAIA0gDEEEdGo2AggCQANAIAcgCEYNASAHQXRqEIIGGiAHQXBqIQcMAAsACyAIRQ0AIAgQpAELIAAgBTYCBCAJEIIGGiABQQRqIQEMAAsACyADQRBqJAAPCxCsAQALEKgHAAsfAQF/AkAgACgCACIBRQ0AIAAgATYCBCABEKQBCyAAC7QBAQR/IwBBIGsiAiQAIAAQjQYgASgCBCEDIAEoAgAhAQJAA0AgASADRg0BIAJBGGoQjgYgAigCHEHUvxEgAUEEahCPBiACQQxqQei8ERCeBiEEAkAgASgCAEF/aiIFQQtLDQAgBCAFQQJ0QdicEmooAgAQjQcLIAIoAhxBrrwRIAQQjwYgAEG8qhEgAigCHBDuBSAEEIIGGiABQRBqIQEgAkEYahDrBRoMAAsACyACQSBqJAALSQECfwJAIAAoAgAiAUUNACAAKAIEIQICQANAIAIgAUYNASACQXRqEIIGGiACQXBqIQIMAAsACyAAIAE2AgQgACgCABCkAQsgAAs8AQF/IwBBEGsiAiQAIAJBCGogASAAKAIAEQMAIAIoAgwhACACQQA2AgwgAkEIahDrBRogAkEQaiQAIAALHAACQCAAQYCAgIAESQ0AEKgHAAsgAEECdBCmAQvbAgEGfwJAAkACQAJAIAAoAgQiAiAAKAIIIgNPDQAgAiABEOcFQQxqIQEMAQsgAiAAKAIAIgRrQQxtIgVBAWoiAkHWqtWqAU8NAUEAIQYCQCADIARrQQxtIgNBAXQiBCACIAQgAksbQdWq1aoBIANBqtWq1QBJGyIHRQ0AIAdB1qrVqgFPDQMgB0EMbBCmASEGCyAGIAVBDGxqIAEQ5wUhBSAAKAIAIQQgACgCBCECIAUhAQJAA0AgAiAERg0BIAFBdGoiASACQXRqIgIpAgA3AgAgAUEIaiACQQhqIgMoAgA2AgAgAkIANwIAIANBADYCAAwACwALIAAoAgAhAyAAIAE2AgAgACgCBCECIAAgBUEMaiIBNgIEIAAgBiAHQQxsajYCCAJAA0AgAiADRg0BIAJBdGoQggYhAgwACwALIANFDQAgAxCkAQsgACABNgIEDwsQrAEACxCoBwALHwEBfwJAIAAoAgAiAUUNACAAIAE2AgQgARCkAQsgAAtDAQJ/AkAgACgCACIBRQ0AIAAoAgQhAgJAA0AgAiABRg0BIAJBdGoQggYhAgwACwALIAAgATYCBCAAKAIAEKQBCyAAC4cBAQF/AkACQCACKAIsIAIoAigiA0YNACADKAIAIgNFDQAgACADIAMoAgAoAhQRAAAiAjYCAAJAIAINACABQQAQyAYPCyACIAIoAkRBAWo2AkQgASACEMgGIAIgAigCRCIBQX9qNgJEIAFBAUcNASACIAIoAgAoAgQRAQAPCyAAIAEgAhCYGAsLWgEBfyMAQRBrIgMkACADQQxqIAIgARCYGAJAIAMoAgwiAUUNACABIAEoAkRBAWo2AkQLIAMgATYCCCAAIAEQyQYgA0EIahCjBhogA0EMahCjBhogA0EQaiQACwwAIAEgACgCABEAAAvTAQEDfyAAQRBqIgEhAgN/AkAgAigCACICDQAgACgCJCECAkADQCACRQ0BIAIoAgAhAyACQQhqELo/GiACEKQBIAMhAgwACwALIAAoAhwhAiAAQQA2AhwCQCACRQ0AIAIQpAELIAEoAgAhAgJAA0AgAkUNASACKAIAIQMgAkEIahCCBhogAhCkASADIQIMAAsACyAAKAIIIQIgAEEANgIIAkAgAkUNACACEKQBCyAAQQRqEKMGGiAADwsgAigCFCIDRQ0AIAMgAygCACgCDBEBAAwACwt6AQN/IwBBEGsiAiQAAkACQCABKAIEIAEsAAsiAyADQQBIG0UNAAJAAkAgASACQQRqQa7xERCeBiIDEL4/IgRBf0cNACAAIAEQ5wUaDAELIAAgASAEQQFqQX8QyQsaCyADEIIGGgwBCyAAQeeNEhCeBhoLIAJBEGokAAtWAQN/IwBBIGsiAiQAAkAgASACQRRqQa7xERCeBiIDEL4/IgRBf0YNACAAIAJBCGogAUEAIAQQyQsiARC7PyEAIAEQggYaCyADEIIGGiACQSBqJAAgAAu3AQEFfyACELoSIQMCQCABRQ0AAkACQCABaSIEQQFLDQAgAUF/aiADcSEFDAELIAMhBSADIAFJDQAgAyABcCEFCyAAIAVBAnRqKAIAIgBFDQAgAUF/aiEGIARBAUshBwNAIAAoAgAiAEUNAQJAIAAoAgQiBCADRg0AAkACQCAHDQAgBCAGcSEEDAELIAQgAUkNACAEIAFwIQQLIAQgBUcNAgwBCyAAQQhqIAIQjAZFDQALIAAPC0EAC28BA38DQAJAIAAgAUcNAEEADwsCQCAAKAIAIgNFDQAgAyADKAI4QQFqNgI4CwJAAkAgAygCSCIEDQBBASEEDAELIAMgBSAEQQxqIAIQjAYiBBshBSAEQQFzIQQLIAMQ6QYgAEEEaiEAIAQNAAsgBQsvACAAQQA6AAggACABNgIEIABBvMQVNgIAIAEgASgCOEEBajYCOCABIAAQqAwgAAvrCAILfwJ9IAEQuhIhAgJAAkACQCAAKAIEIgMNAAwBCwJAAkAgA2kiBEEBSw0AIANBf2ogAnEhBQwBCyACIQUgAiADSQ0AIAIgA3AhBQsgACgCACAFQQJ0aigCACIGRQ0AIANBf2ohByAEQQFLIQgDQCAGKAIAIgZFDQECQCAGKAIEIgQgAkYNAAJAAkAgCA0AIAQgB3EhBAwBCyAEIANJDQAgBCADcCEECyAEIAVGDQEMAgsgBkEIaiABEIwGRQ0ADAILAAtBGBCmASIGIAI2AgQgBkEANgIAIAZBCGogARDnBRogBkEANgIUIABBCGohCSAAKgIQIQ0gACgCDEEBarMhDgJAAkAgA0UNACANIAOzlCAOXUUNAQsgA0EBdCADQQNJIAMgA0F/anFBAEdyciEEAkACQCAOIA2VjSIOQwAAgE9dIA5DAAAAAGBxRQ0AIA6pIQMMAQtBACEDC0ECIQUCQCAEIAMgBCADSxsiBEEBRg0AAkAgBCAEQX9qcQ0AIAQhBQwBCyAEEPsIIQULAkACQAJAAkAgBSAAKAIEIgNLDQAgBSADTw0DIANBA0khAQJAAkAgACgCDLMgACoCEJWNIg5DAACAT10gDkMAAAAAYHFFDQAgDqkhBAwBC0EAIQQLAkACQCABDQAgA2lBAUsNACAEQQFBICAEQX9qZ2t0IARBAkkbIQQMAQsgBBD7CCEECwJAIAUgBCAFIARLGyIFIANJDQAgACgCBCEDDAQLIAVFDQELAkAgBUGAgICABE8NACAAIAVBAnQQpgEQvz8gACAFNgIEQQAhBAJAA0ACQCAEIAVHDQAgCSgCACIIDQIMBQsgACgCACAEQQJ0akEANgIAIARBAWohBAwACwALIAgoAgQhBwJAAkAgBWkiBEEBSw0AIAcgBUF/anEhBwwBCyAHIAVJDQAgByAFcCEHCyAAKAIAIAdBAnRqIAk2AgAgBUF/aiEKIARBAUshCwNAIAgoAgAiA0UNAyADKAIEIQQCQAJAIAsNACAEIApxIQQMAQsgBCAFSQ0AIAQgBXAhBAsCQCAEIAdGDQACQCAAKAIAIARBAnQiAWoiDCgCAA0AIAwgCDYCACAEIQcMAQsgCCADKAIANgIAIAMgACgCACABaigCACgCADYCACAAKAIAIAFqKAIAIAM2AgAMAQsgAyEIDAALAAsQqAcAC0EAIQMgAEEAEL8/IABBADYCBAwBCyAFIQMLAkAgAyADQX9qIgRxDQAgBCACcSEFDAELAkAgAiADTw0AIAIhBQwBCyACIANwIQULAkACQAJAIAAoAgAgBUECdGoiBSgCACIEDQAgBiAJKAIANgIAIAkgBjYCACAFIAk2AgAgBigCACIERQ0CIAQoAgQhBAJAAkAgAyADQX9qIgVxDQAgBCAFcSEEDAELIAQgA0kNACAEIANwIQQLIAAoAgAgBEECdGohBAwBCyAGIAQoAgA2AgALIAQgBjYCAAsgACAAKAIMQQFqNgIMCyAGQRRqC/wCAQl/IwBBEGsiAyQAIAFBHGohBCACELoSIQUCQAJAIAEoAiAiBkUNAAJAAkAgBmkiB0EBSw0AIAZBf2ogBXEhCAwBCyAFIQggBSAGSQ0AIAUgBnAhCAsgBCgCACAIQQJ0aigCACIJRQ0AIAZBf2ohCiAHQQFLIQsDQCAJKAIAIglFDQECQCAJKAIEIgcgBUYNAAJAAkAgCw0AIAcgCnEhBwwBCyAHIAZJDQAgByAGcCEHCyAHIAhGDQEMAgsgCUEIaiACEIwGRQ0ACwJAIAkoAhQiCUUNACAJIAkoAgBBAWo2AgALIAAgCTYCAAwBCwJAAkAgASgCBCIJQcgAaigCACAJQcwAaigCACACEN0GIglFDQAgCUG8AyAJKAIAKAIMEQIARQ0AIAkoAmgiCUUNACAJIAkoAkRBAWo2AkQgAyAJNgIMIAAgCRD7BiAEIAIQ6gYgABD8BhoMAQsgA0EANgIMIABBADYCAAsgA0EMahCjBhoLIANBEGokAAsxAQF/A0ACQCAAIAFHDQBBAA8LIAAoAgAhAyAAQQRqIQAgA0EMaiACEIwGRQ0ACyADC1oBA38gAEHoAGohAgJAIAAoAmgiA0UNACAAKAJsIgRFDQAgAyAEEJQYCwJAIAIgARDzBigCACIBRQ0AIAAoAmwiAkUNACABIAIQlRgLIAAgACgCACgCVBEBAAsvAQF/AkAgAEUNACAAIAAoAkQiAUF/ajYCRCABQQFHDQAgACAAKAIAKAIEEQEACwsUAAJAIAANABDlPkH8kh4hAAsgAAt1AQN/IABBADYCCCAAQgA3AgACQAJAIAEoAgQiAiABKAIAIgNGDQAgAiADayICQQJ1IgFBgICAgARPDQEgACABEOY+IgE2AgQgACABNgIAIAAgASACaiIENgIIIAEgAyACEIkBGiAAIAQ2AgQLIAAPCxCsAQALaAEDfyAAKAJkIQEgACgCYCECAkADQAJAIAIgAUcNACAAKAJYIQMgACgCVCECA0AgAiADRg0DIAIoAgAQ5gYgAkEEaiECDAALAAsgAigCACIDIAMoAgAoAgwRAQAgAkEEaiECDAALAAsLHwEBfwJAIAAoAgAiAUUNACAAIAE2AgQgARCkAQsgAAvmAQEGfyMAQRBrIgEkACAAKAJMIQIgACgCSCEDAkADQCADIAJGDQEgAUEEaiADKAIAKAJYEOQGEOUGIgQoAgAhACABKAIIIQUDQAJAIAAgBUcNAAJAIAMoAgAiAEG8AyAAKAIAKAIMEQIARQ0AIAMoAgAoAmgiAEUNACAAIAAoAkRBAWo2AkQgABDoBiAAIAAoAkQiBkF/ajYCRCAGQQFHDQAgACAAKAIAKAIEEQEACyAEEOcGGiADQQRqIQMMAgsgACgCACIGIAYoAgAoAgQRAQAgAEEEaiEADAALAAsACyABQRBqJAALLwEBfwJAIABFDQAgACAAKAI4IgFBf2o2AjggAUEBRw0AIAAgACgCACgCBBEBAAsL6wgCC38CfSABELoSIQICQAJAAkAgACgCBCIDDQAMAQsCQAJAIANpIgRBAUsNACADQX9qIAJxIQUMAQsgAiEFIAIgA0kNACACIANwIQULIAAoAgAgBUECdGooAgAiBkUNACADQX9qIQcgBEEBSyEIA0AgBigCACIGRQ0BAkAgBigCBCIEIAJGDQACQAJAIAgNACAEIAdxIQQMAQsgBCADSQ0AIAQgA3AhBAsgBCAFRg0BDAILIAZBCGogARCMBkUNAAwCCwALQRgQpgEiBiACNgIEIAZBADYCACAGQQhqIAEQ5wUaIAZBADYCFCAAQQhqIQkgACoCECENIAAoAgxBAWqzIQ4CQAJAIANFDQAgDSADs5QgDl1FDQELIANBAXQgA0EDSSADIANBf2pxQQBHcnIhBAJAAkAgDiANlY0iDkMAAIBPXSAOQwAAAABgcUUNACAOqSEDDAELQQAhAwtBAiEFAkAgBCADIAQgA0sbIgRBAUYNAAJAIAQgBEF/anENACAEIQUMAQsgBBD7CCEFCwJAAkACQAJAIAUgACgCBCIDSw0AIAUgA08NAyADQQNJIQECQAJAIAAoAgyzIAAqAhCVjSIOQwAAgE9dIA5DAAAAAGBxRQ0AIA6pIQQMAQtBACEECwJAAkAgAQ0AIANpQQFLDQAgBEEBQSAgBEF/amdrdCAEQQJJGyEEDAELIAQQ+wghBAsCQCAFIAQgBSAESxsiBSADSQ0AIAAoAgQhAwwECyAFRQ0BCwJAIAVBgICAgARPDQAgACAFQQJ0EKYBEL0/IAAgBTYCBEEAIQQCQANAAkAgBCAFRw0AIAkoAgAiCA0CDAULIAAoAgAgBEECdGpBADYCACAEQQFqIQQMAAsACyAIKAIEIQcCQAJAIAVpIgRBAUsNACAHIAVBf2pxIQcMAQsgByAFSQ0AIAcgBXAhBwsgACgCACAHQQJ0aiAJNgIAIAVBf2ohCiAEQQFLIQsDQCAIKAIAIgNFDQMgAygCBCEEAkACQCALDQAgBCAKcSEEDAELIAQgBUkNACAEIAVwIQQLAkAgBCAHRg0AAkAgACgCACAEQQJ0IgFqIgwoAgANACAMIAg2AgAgBCEHDAELIAggAygCADYCACADIAAoAgAgAWooAgAoAgA2AgAgACgCACABaigCACADNgIADAELIAMhCAwACwALEKgHAAtBACEDIABBABC9PyAAQQA2AgQMAQsgBSEDCwJAIAMgA0F/aiIEcQ0AIAQgAnEhBQwBCwJAIAIgA08NACACIQUMAQsgAiADcCEFCwJAAkACQCAAKAIAIAVBAnRqIgUoAgAiBA0AIAYgCSgCADYCACAJIAY2AgAgBSAJNgIAIAYoAgAiBEUNAiAEKAIEIQQCQAJAIAMgA0F/aiIFcQ0AIAQgBXEhBAwBCyAEIANJDQAgBCADcCEECyAAKAIAIARBAnRqIQQMAQsgBiAEKAIANgIACyAEIAY2AgALIAAgACgCDEEBajYCDAsgBkEUagsXAQF/IAAoAgAhAiAAIAE2AgAgAhD9BgsMACABIAAoAgARAQALJQEBfyAAIAAoAgAiAUF/ajYCAAJAIAFBAUcNACAAENkGEKQBCwsbACAAIAJBEHQgAUEYdHIgA0EIdHIgBHIQrhALDwAgACAAKAJgQQFqENQPCxgAIAAgASABKAIAKAI0EQAAQRBqEP4nGgsfAQF/AkAgACgCACIBRQ0AIAAgATYCBCABEKQBCyAACzkBAX9BIBCmASIBQQE2AhQgAUJ/NwIMIAFC/////w83AgQgAUIANwMYIAFBpL4VNgIAIAAgATYCAAs4AAJAIAAgAUYNAAJAIAEoAgAiAQ0AIABBABCLESAADwsgASABKAJEQQFqNgJEIAAgARCLEQsgAAsvAQF/AkAgAEUNACAAIAAoAkQiAUF/ajYCRCABQQFHDQAgACAAKAIAKAIEEQEACwvACQILfwJ9IwBBEGsiAiQAIAEoAgAiAxCpDCEEAkACQAJAIAAoAgQiBQ0ADAELAkACQCAFaSIGQQFLDQAgBUF/aiAEcSEHDAELIAQhByAEIAVJDQAgBCAFcCEHCyAAKAIAIAdBAnRqKAIAIgFFDQAgBUF/aiEIIAZBAUshCQNAIAEoAgAiAUUNAQJAIAEoAgQiBiAERg0AAkACQCAJDQAgBiAIcSEGDAELIAYgBUkNACAGIAVwIQYLIAYgB0YNAQwCCyABKAIIIANHDQAMAgsAC0EQEKYBIQEgAiAAQQhqIgo2AgggAiABNgIEIAEgBDYCBCABQQA2AgACQCADRQ0AIAMgAygCFEEBajYCFAsgAUEANgIMIAEgAzYCCCACQQE6AAwgACoCECENIAAoAgxBAWqzIQ4CQAJAIAVFDQAgDSAFs5QgDl1FDQELIAVBAXQgBUEDSSAFIAVBf2pxQQBHcnIhAQJAAkAgDiANlY0iDkMAAIBPXSAOQwAAAABgcUUNACAOqSEGDAELQQAhBgtBAiEDAkAgASAGIAEgBksbIgFBAUYNAAJAIAEgAUF/anENACABIQMMAQsgARD7CCEDCwJAAkACQAJAIAMgACgCBCIFSw0AIAMgBU8NAyAFQQNJIQYCQAJAIAAoAgyzIAAqAhCVjSIOQwAAgE9dIA5DAAAAAGBxRQ0AIA6pIQEMAQtBACEBCwJAAkAgBg0AIAVpQQFLDQAgAUEBQSAgAUF/amdrdCABQQJJGyEBDAELIAEQ+wghAQsCQCADIAEgAyABSxsiAyAFSQ0AIAAoAgQhBQwECyADRQ0BCwJAIANBgICAgARPDQAgACADQQJ0EKYBELE/IAAgAzYCBEEAIQECQANAAkAgASADRw0AIAooAgAiBw0CDAULIAAoAgAgAUECdGpBADYCACABQQFqIQEMAAsACyAHKAIEIQkCQAJAIANpIgFBAUsNACAJIANBf2pxIQkMAQsgCSADSQ0AIAkgA3AhCQsgACgCACAJQQJ0aiAKNgIAIANBf2ohCyABQQFLIQgDQCAHKAIAIgZFDQMgBigCBCEBAkACQCAIDQAgASALcSEBDAELIAEgA0kNACABIANwIQELAkAgASAJRg0AAkAgACgCACABQQJ0IgVqIgwoAgANACAMIAc2AgAgASEJDAELIAcgBigCADYCACAGIAAoAgAgBWooAgAoAgA2AgAgACgCACAFaigCACAGNgIADAELIAYhBwwACwALEKgHAAtBACEFIABBABCxPyAAQQA2AgQMAQsgAyEFCwJAIAUgBUF/aiIBcQ0AIAEgBHEhBwwBCwJAIAQgBU8NACAEIQcMAQsgBCAFcCEHCyACKAIEIQECQAJAAkAgACgCACAHQQJ0IgNqKAIAIgYNACABIAAoAgg2AgAgACABNgIIIAAoAgAgA2ogCjYCACABKAIAIgZFDQIgBigCBCEGAkACQCAFIAVBf2oiA3ENACAGIANxIQYMAQsgBiAFSQ0AIAYgBXAhBgsgACgCACAGQQJ0aiEGDAELIAEgBigCADYCAAsgBiABNgIACyACQQA2AgQgACAAKAIMQQFqNgIMIAJBBGoQsj8aCyACQRBqJAAgAUEMagssACAAQegAaiABEIAHAkAgASgCACgCGCIBRQ0AIAEgACgCdBCVGAsgABDKKAsvAQF/AkAgAEUNACAAIAAoAhQiAUF/ajYCFCABQQFHDQAgACAAKAIAKAIEEQEACwsOACABIAIgACgCABEDAAv/BgEHfyMAQTBrIgMkAEEAIQQCQCACQQBIDQAgACgCbCIFIAAoAmgiBmtBAnUiByACSQ0AIAYgAkECdGohAgJAAkAgBSAAKAJwIgRPDQACQCAFIAJHDQACQCABKAIAIgJFDQAgAiACKAIUQQFqNgIUCyAFIAI2AgAgACAFQQRqNgJsDAILIAUhBiAFQXxqIgchBAJAA0ACQCAEIAVJDQAgACAGNgJsA0AgByACRg0DIAVBfGogB0F8aiIHEKM/IQUMAAsACyAEKAIAIQggBEEANgIAIAYgCDYCACAGQQRqIQYgBEEEaiEEDAALAAsgAiABIAAoAmwgAUtBAnRBACACIAFNG2oQ6w0aDAELAkAgA0EIaiAGIAQgB0EBahDjDSACIAAoAmhrQQJ1IABB8ABqELMQIgkoAggiBSAJKAIMRw0AAkAgCSgCBCIEIAkoAgAiBk0NACAEIAUgBCAEIAZrQQJ1QQFqQX5tQQJ0IgZqEKQ/IQUgCSAJKAIEIAZqNgIEDAELIANBHGpBASAFIAZrQQF1IAUgBkYbIgQgBEECdiAJKAIQELMQIggoAggiBCAJKAIIIAkoAgQiBWtqIQcCQANAIAQgB0YNASAFKAIAIQYgBUEANgIAIAQgBjYCACAFQQRqIQUgBEEEaiEEDAALAAsgCSgCACEFIAkgCCgCADYCACAIIAU2AgAgCSgCBCEFIAkgCCgCBDYCBCAIIAU2AgQgCSgCCCEFIAkgBDYCCCAIIAU2AgggCSgCDCEEIAkgCCgCDDYCDCAIIAQ2AgwgCBC1EBogCSgCCCEFCwJAIAEoAgAiBEUNACAEIAQoAhRBAWo2AhQLIAUgBDYCACAAKAJoIQggCSgCBCEGIAIhBAJAA0AgBCAIRg0BIARBfGoiBCgCACEHIARBADYCACAGQXxqIgYgBzYCAAwACwALIAkgBjYCBCAAKAJsIQYCQANAIAVBBGohBSACIAZGDQEgAigCACEEIAJBADYCACAFIAQ2AgAgAkEEaiECDAALAAsgACgCaCECIAAgCSgCBDYCaCAJIAI2AgQgACgCbCEEIAAgBTYCbCAJIAQ2AgggACgCcCEEIAAgCSgCDDYCcCAJIAI2AgAgCSAENgIMIAkQtRAaCwJAIAEoAgAoAhgiAkUNACACIAAoAnQQlRgLIAAQyihBASEECyADQTBqJAAgBAu0AQEFfyACEKkMIQMCQCABRQ0AAkACQCABaSIEQQFLDQAgAUF/aiADcSEFDAELIAMhBSADIAFJDQAgAyABcCEFCyAAIAVBAnRqKAIAIgBFDQAgAUF/aiEGIARBAUshBwNAIAAoAgAiAEUNAQJAIAAoAgQiBCADRg0AAkACQCAHDQAgBCAGcSEEDAELIAQgAUkNACAEIAFwIQQLIAQgBUcNAgwBCyAAKAIIIAJHDQALIAAPC0EACzEBAX9BMBCmASECAkAgAUUNACABIAEoAkRBAWo2AkQLIAAgAiABELA/NgIAIAEQ9AYLOAACQCAAIAFGDQACQCABKAIAIgENACAAQQAQ6wYgAA8LIAEgASgCAEEBajYCACAAIAEQ6wYLIAALDwACQCAARQ0AIAAQ7QYLC5cDAQl/IwBBEGsiAiQAIAEoAgQhAwJAAkAgACgCBCIEaSIFQQFLDQAgBEF/aiADcSEDDAELIAMgBEkNACADIARwIQMLIAAoAgAgA0ECdGoiBigCACEHA0AgByIIKAIAIgcgAUcNAAsCQAJAIAggAEEIaiIJRg0AIAgoAgQhBwJAAkAgBUEBSw0AIAcgBEF/anEhBwwBCyAHIARJDQAgByAEcCEHCyAHIANGDQELAkAgASgCACIHRQ0AIAcoAgQhBwJAAkAgBUEBSw0AIAcgBEF/anEhBwwBCyAHIARJDQAgByAEcCEHCyAHIANGDQELIAZBADYCAAtBACEHAkAgASgCACIKRQ0AIAooAgQhBgJAAkAgBUEBSw0AIAYgBEF/anEhBgwBCyAGIARJDQAgBiAEcCEGCyAKIQcgBiADRg0AIAAoAgAgBkECdGogCDYCACABKAIAIQcLIAggBzYCACABQQA2AgAgACAAKAIMQX9qNgIMIAJBAToADCACIAk2AgggAiABNgIEIAJBBGoQsj8aIAJBEGokAAufAQEFfwJAIAAoAmggACgCbCICIAEoAgAiAxC0DCIEIAJGDQAgAEHoAGohBSAEIQYCQANAIAZBBGoiBiACRg0BIAYoAgAgA0YNACAEIAYQoz9BBGohBCABKAIAIQMMAAsACyAEIAAoAmwiBkYNACAFIAYgBiAEEKQ/EJANIAEoAgAhAwsCQCADKAIYIgZFDQAgBiAAKAJ0EJQYCyAAEMooC9QBAQR/IwBBIGsiAiQAAkACQCAAKAIEIgMgACgCCCIETw0AAkAgASgCACIBRQ0AIAEgASgCFEEBajYCFAsgAyABNgIAIANBBGohAwwBCyACQQxqIAAoAgAiBSAEIAMgBWtBAnVBAWoQ4w0gACgCBCAAKAIAa0ECdSAAQQhqELMQIgQoAgghBQJAIAEoAgAiA0UNACADIAMoAhRBAWo2AhQLIAUgAzYCACAEIAVBBGo2AgggACAEELQQIAAoAgQhAyAEELUQGgsgACADNgIEIAJBIGokAAscAAJAIAAoAgBFDQAgABCeDCAAKAIAEKQBCyAAC1IBAn8CQCAAKAJsIAAoAmgiA2tBAnUiBCABTQ0AIAQgAk0NACADIAFBAnRqIgEoAgAhBCABIAMgAkECdGoiAigCADYCACACIAQ2AgAgABDKKAsLmQEBAn8jAEEQayICJAACQAJAIAAoAnAiAygCUCABRw0AIABBfxDVDwwBCwJAAkAgAQ0AIAJBADYCDCADIAJBDGoQtgYgAkEMaiEBDAELIAEgASgCBEEBajYCBCAAKAJwIQMgAiABNgIIIAMgAkEIahC2BiACQQhqIQELIAEQtwYaIABBfxDVDyAAEIYHIAAQ6T4LIAJBEGokAAsuAAJAIAAoAmAgAUYNACAAIAE2AmAgACAAKAIAKAJUEQEAIAAoAghBzgYQpQYLCx8BAX8gACgCACECIAAgATYCAAJAIAJFDQAgAhCIBwsLTQECfwJAIAAoAlgiAUUNACABKAIAIgAgASgCBCICRg0AA0AgACACRg0BIAAoAgAiAUGAIEEBIAEoAgAoAgARBQAgAEEEaiEADAALAAsLFgAgAEEIahCJBxogAEEEahCEBhogAAslAQF/IAAgACgCACIBQX9qNgIAAkAgAUEBRw0AIAAQhwcQpAELCykBAX8gACgCACEBIABBADYCAAJAIAFFDQAgASABKAIAKAIEEQEACyAAC3wBAn8jAEEQayIDJAACQAJAAkAgAhDqUUUNACAAIAIQ61EMAQsgAkH4////B08NASADQQhqIAIQ7FFBAWoQ7VEgACADKAIIIgQQ7lEgACADKAIMEO9RIAAgAhDwUSAEIQALIAAgASACQQFqEPtQGiADQRBqJAAPCxDyUQALFwEBfwJAIAAoAgAiAUUNACABEAYLIAALgAEBAn8jAEEQayIDJAACQCACQfj///8HTw0AAkACQCACEOpRRQ0AIAAgAhDrUQwBCyADQQhqIAIQ7FFBAWoQ7VEgACADKAIIIgQQ7lEgACADKAIMEO9RIAAgAhDwUSAEIQALIAAgASACEPtQIAJqQQAQ8VEgA0EQaiQADwsQ8lEACw4AIAAgASABEKZSEM5ZCzgBAX8jAEEQayICJAAgAiABEJYGNgIIIABBr5AeIAJBCGoQDzYCBCAAELoBNgIAIAJBEGokACAACxIAAkAgAEEJSQ0AIAAQAwsgAAsvACAAQdiYEjYCAAJAIAAtAAhBAUcNACAAQQxqQfT+EBCRBwsgAEEMahDrBRogAAt9AQJ/IwBBEGsiAiQAIAJBADYCDAJAAkBBAC0AxI4eQQFxRQ0AQQAoAsCOHiEDDAELQQFBvJ8SQQAQBSEDQQBBAToAxI4eQQAgAzYCwI4eCyADIAAoAgQgASACQQxqQQAQFxogAiACKAIMNgIIIAJBCGoQiwcaIAJBEGokAAsKACAAEJAHEKQBC7wBAgF/AXwjAEEgayIEJAAgBCACKAIEIAIoAgAQ7QUhAiAEIAE2AhAgBCACKAIEEI8HNgIYIARBADYCDAJAAkBBAC0A+I0eQQFxRQ0AQQAoAvSNHiEBDAELQQNB5JgSQQAQBSEBQQBBAToA+I0eQQAgATYC9I0eCyABIAAoAhBBj4IRIARBDGogBEEQahAXIQUgBCAEKAIMNgIIIARBCGoQiwcaIAIQ6wUaIARBIGokACAFRAAAAAAAAAAAYgsDAAALCwAgACgCABBgIAALQAAgAEEANgIUIAAgATYCGCAAQQA2AgwgAEKCoICA4AA3AgQgACABRTYCECAAQSBqQQBBKBBIGiAAQRxqEJtRGgsxACAAQejfHDYCACAAQQRqEJtRGiAAQRhqQgA3AgAgAEEQakIANwIAIABCADcCCCAACxkAIABBqOAcNgIAIABBIGoQggYaIAAQpgcLBwAgABDwUAt/AQN/IwBBEGsiAyQAAkAgA0EIaiAAEJsHIgQtAABBAUcNACAAIAAoAgBBdGooAgBqIgUoAhggASABIAJqIgIgASAFKAIEQbABcUEgRhsgAiAFIAUQnAcQnQcNACAAIAAoAgBBdGooAgBqQQUQngcLIAQQnwcaIANBEGokACAAC08AIAAgATYCBCAAQQA6AAACQCABIAEoAgBBdGooAgBqIgFBEGooAgAQoFFFDQACQCABQcgAaigCACIBRQ0AIAEQolEaCyAAQQE6AAALIAALKgEBfwJAIAAoAkwiAUF/Rw0AIAAgACgCHBCvBiIBNgJMCyABQRh0QRh1C+oBAQR/IwBBEGsiBiQAAkACQCAADQBBACEHDAELIAQoAgwhCEEAIQcCQCACIAFrIglBAUgNACAAIAEgCSAAKAIAKAIwEQQAIAlHDQELAkAgCCADIAFrIgdrQQAgCCAHShsiAUEBSA0AIAZBBGogASAFEKAHQQAhByAAIAYoAgQgBkEEaiAGLAAPQQBIGyABIAAoAgAoAjARBAAhCCAGQQRqEIIGGiAIIAFHDQELAkAgAyACayIBQQFIDQBBACEHIAAgAiABIAAoAgAoAjARBAAgAUcNAQsgBEEANgIMIAAhBwsgBkEQaiQAIAcLDwAgACAAKAIQIAFyEKEHC2cBAn8CQCAAKAIEIgEgASgCAEF0aigCAGoiAUEYaigCACICRQ0AIAFBEGooAgAQoFFFDQAgAUEFai0AAEEgcUUNACACEKRRQX9HDQAgACgCBCIBIAEoAgBBdGooAgBqQQEQpVELIAALgAEBAn8jAEEQayIDJAACQCABQfj///8HTw0AAkACQCABEOpRRQ0AIAAgARDrUQwBCyADQQhqIAEQ7FFBAWoQ7VEgACADKAIIIgQQ7lEgACADKAIMEO9RIAAgARDwUSAEIQALIAAgASACEJpSIAFqQQAQ8VEgA0EQaiQADwsQ8lEACyQAIAAgACgCGEUgAXIiATYCEAJAIAAoAhQgAXFFDQAQpVIACwsKACAAIAEQo1IaCwsAIABBvLEeEKUHCwwAIAAoAgAQzlIgAAseACABENtSIQEgAEEIaigCACAAQQxqKAIAIAEQ3FILFgAgAEHo3xw2AgAgAEEEahCkBxogAAscAAJAIABBgICAgARJDQAQqAcACyAAQQJ0EKYBCwYAEKwBAAuHAQECfwJAAkACQCACQQRJDQAgASAAckEDcQ0BA0AgACgCACABKAIARw0CIAFBBGohASAAQQRqIQAgAkF8aiICQQNLDQALCyACRQ0BCwJAA0AgAC0AACIDIAEtAAAiBEcNASABQQFqIQEgAEEBaiEAIAJBf2oiAkUNAgwACwALIAMgBGsPC0EAC0kBAX8CQCACQQpLDQAgACACEOtRIAAgASACEPtQIAJqQQAQ8VEgAA8LIABBCiACQXZqIAAtAAsQgFIiA0EAIAMgAiABEMxZIAALWwEBfwJAIAAoAggQ/1EiAyACTQ0AIAAoAgAhAyAAIAIQ8FEgAyABIAIQ+1AgAmpBABDxUSAADwsgACADQX9qIAIgA2tBAWogACgCBCIDQQAgAyACIAEQzFkgAAscAAJAIAAoAgBFDQAgABCtByAAKAIAEKQBCyAACwwAIAAgACgCABCuBwssAQF/IAAoAgQhAgJAA0AgAiABRg0BIAJBfGoQqQYhAgwACwALIAAgATYCBAscAAJAIABBgICAgARJDQAQqAcACyAAQQJ0EKYBCzYBAX8gACgCBCICIAFqIQEDQAJAIAIgAUcNACAAIAI2AgQPCyACQQA6AAAgAkEBaiECDAALAAs0AAJAIAJBf0oNABCsAQALIAEgAGsiAUEBdCIAIAIgACACSxtB/////wcgAUH/////A0kbC0YAIAAgAzYCEAJAAkAgAQ0AQQAhAwwBCyABEKYBIQMLIAAgAzYCACAAIAMgAmoiAjYCCCAAIAMgAWo2AgwgACACNgIEIAALQgECfyAAKAIIIQEgACgCBCECAkADQCABIAJGDQEgACABQX9qIgE2AggMAAsACwJAIAAoAgAiAUUNACABEKQBCyAAC0ABAX8gABC6ATYCAAJAAkAgAUQAAAAAAADwQWMgAUQAAAAAAAAAAGZxRQ0AIAGrIQIMAQtBACECCyAAIAI2AgQLGwEBfyABKAIAIQIgAUEANgIAIAAgAhDyBSAACzwAQQBBsAQ2AqiOHkEAQQA2AqyOHhC3B0EAQaimEjYCsI4eQQBBACgClJAeNgKsjh5BAEGojh42ApSQHguVEQEBf0G0jh5BtY4eQbaOHkEAQbCdEkGxBEGznRJBAEGznRJBAEHZjxFBtZ0SQbIEEAlBu7URQQhBARDZB0H1uxFBDEEBENkHQQgQpgEiAEKQgICAEDcDAEG3jh5Bj6MRQQNBxJ0SQdCdEkGzBCAAQQFBABALQQgQpgEiAEKkgICAEDcDAEG3jh5BuekQQQNB2J0SQeSdEkG0BCAAQQFBABALQQgQpgEiAEKUgICAEDcDAEG3jh5B/akRQQRB8J0SQYCeEkG1BCAAQQFBABALQQgQpgEiAEKYgICAEDcDAEG3jh5BnaoRQQNBiJ4SQdCdEkG2BCAAQQFBABALQQgQpgEiAEEANgIEIABBtwQ2AgBBt44eQfqgEUEHQaCeEkG8nhJBuAQgAEEBQQAQC0G3jh5BuI4eQb+OHkG0jh5BsJ0SQbkEQbCdEkG6BEGwnRJBuwRBh5ARQbWdEkG8BBAJQQQQpgEiAEG9BDYCAEG3jh5B+5wRQQJByJ4SQcCdEkG+BCAAQQBBABALQbSOHkGM+hBBAkHQnhJB2J4SQb8EQcAEQQAQFkG0jh5B4s4RQQNB1KASQeCgEkH/AkHBBEEAEBZBhI8eQbqOHkGFjx5BAEGwnRJBwgRBs50SQQBBs50SQQBBkaoRQbWdEkHDBBAJQcvOEUEIQQEQ6wdBCBCmASIAQqyAgIAQNwMAQYaPHkGwqhFBBEHwoBJBgJ4SQcQEIABBAUEAEAtBCBCmASIAQoyAgIAQNwMAQYaPHkHTwRFBA0GAoRJBjKESQcUEIABBAUEAEAtB5poRQRRBARDuB0HtmhFBGEEBEO4HQQgQpgEiAEKcgICAEDcDAEGGjx5B+5oRQQhBwKESQeChEkHGBCAAQQFBABALQaG5EUEgQQEQ6wdBho8eQYePHkGJjx5BhI8eQbCdEkHHBEGwnRJByARBsJ0SQckEQbuQEUG1nRJBygQQCUEEEKYBIgBBywQ2AgBBho8eQfucEUECQeyhEkHAnRJBzAQgAEEAQQAQC0GEjx5BjPoQQQJB9KESQdieEkHNBEHOBEEAEBZBhI8eQeLOEUEDQdSgEkHgoBJB/wJBzwRBABAWQayPHkH6wBFBBEEBEBFBrI8eQbGkEUEBEBJBrI8eQdPEEUEAEBJBiI8eQdzBEUEEQQEQEUGIjx5B1JgRQQAQEkGIjx5B+9gRQQEQEkGIjx5BrbkRQQIQEkGtjx5BkJgRQQRBABARQa2PHkHx8hBBABASQa2PHkGgzhFBARASQa2PHkGKvBFBAhASQa6PHkGgoBFBBEEAEBFBro8eQcOPEUEAEBJBro8eQaDOEUEBEBJBro8eQZSlEUECEBJB6o4eQfDJEUEBQQAQEUHqjh5B8I4RQQMQEkHqjh5B1KERQQ4QEkHqjh5B3OsQQQ8QEkHqjh5Bv6ERQRAQEkHqjh5BoaERQREQEkHqjh5B+McRQRIQEkHqjh5B6psRQRMQEkHqjh5B+PwQQRQQEkHqjh5B7vwQQRUQEkHqjh5BicoRQRYQEkHqjh5B0J8RQRcQEkHqjh5Bx+sQQRgQEkHqjh5BrbcRQRkQEkHqjh5B4J0RQRoQEkHqjh5B6I0RQRsQEkHqjh5BnekQQRwQEkGvjx5B6pcRQQFBABARQa+PHkGrlxFBABASQa+PHkHOgBFBARASQa+PHkG6jRFBAhASQbCPHkG3jxFBAUEAEBFBsI8eQfKVEUEAEBJBsI8eQdjzEEEBEBJB6Y4eQbGPHkGyjx5BAEGwnRJB0ARBs50SQQBBs50SQQBB+5ARQbWdEkHRBBAJQbOPHkG0jx5BtY8eQQBBsJ0SQdIEQbOdEkEAQbOdEkEAQbqUEUG1nRJB0wQQCUG2jx5Bu44eQbePHkEAQbCdEkHUBEGznRJBAEGznRJBAEG79xBBtZ0SQdUEEAlBCBCmASIAQoyAgIAQNwMAQbiPHkHojRFBA0HQoxJBjKESQdYEIABBAUEAEAtBCBCmASIAQoiAgIAQNwMAQbiPHkH0wBFBA0HcoxJBjKESQdcEIABBAUEAEAtBCBCmASIAQpCAgIAQNwMAQbiPHkG5gxFBA0HooxJB5J0SQdgEIABBAUEAEAtBCBCmASIAQpSAgIAQNwMAQbiPHkGHoBFBA0H0oxJBjKESQdkEIABBAUEAEAtBCBCmASIAQpiAgIAQNwMAQbiPHkH4lxFBA0GApBJBjKESQdoEIABBAUEAEAtBCBCmASIAQqCAgIAQNwMAQbiPHkHSyRFBA0GMpBJBjKESQdsEIABBAUEAEAtBCBCmASIAQqSAgIAQNwMAQbiPHkGzlBFBA0GYpBJB0J0SQdwEIABBAUEAEAtBuI8eQbmPHkG6jx5Bto8eQbCdEkHdBEGwnRJB3gRBsJ0SQd8EQfSPEUG1nRJB4AQQCUEEEKYBIgBB4QQ2AgBBuI8eQfucEUECQaSkEkHAnRJB4gQgAEEAQQAQC0G2jx5BjPoQQQJBrKQSQdieEkHjBEHkBEEAEBZBto8eQeLOEUEDQdSgEkHgoBJB/wJB5QRBABAWQeSPHkHljx5B6I4eQQBBsJ0SQeYEQbOdEkEAQbOdEkEAQYDJEUG1nRJB5wQQCUEIEKYBIgBBADYCBCAAQegENgIAQeaPHkH5shFBBEHQpRJB4KUSQekEIABBAEEAEAtBCBCmASIAQQA2AgQgAEHqBDYCAEHmjx5BpbERQQJB6KUSQcCdEkHrBCAAQQBBABALQeaPHkHnjx5B6I8eQeSPHkGwnRJB7ARBsJ0SQe0EQbCdEkHuBEHNkBFBtZ0SQe8EEAlBBBCmASIAQfAENgIAQeaPHkH7nBFBAkHwpRJBwJ0SQfEEIABBAEEAEAtB5I8eQYz6EEECQfilEkHYnhJB8gRB8wRBABAWQeSPHkHizhFBA0HUoBJB4KASQf8CQfQEQQAQFgsEACAACwcAIAAQpAELTQEBf0EgEKYBIgVBADoAGCAFIAQ2AhQgBSADNgIQIAUgAjYCDCAFQoGAgIDwl9uRRTcCBCAFQdimEjYCACAFIAQQXjYCHCAAIAU2AgALPABBNBCmASAGIAcgCBC8ByIIIAU4AjAgCCAEOAIsIAggAzgCKCAIIAI4AiQgCEGQnRI2AgAgACAINgIAC5gBAQF/IABBADYCFCAAQgA3AgwgAEHwphI2AgAgAEKBgICAkNPx8sEANwIEAkAgAw0AIABBADYCICAAQgA3AhggAA8LIABBDGogAxDGByAAKAIQIAIgA0ECdCIEEIkBIQIgAEEANgIgIABCADcCGCAAIAIgBGo2AhAgAEEYaiADEMcHIAAgACgCHCABIAQQiQEgBGo2AhwgAAs1AEEwEKYBIAUgBiAHELwHIgcgBDgCLCAHIAM4AiggByACOAIkIAdBpJ0SNgIAIAAgBzYCAAtjAQJ/IwBBEGsiBCQAIAQQvwcgBEEIaiAEQY2qERDAByAEEOsFGiAEKAIMEMEHIgUgAiAFKAIAKAI0EQMAIAUgAyAFKAIAKAIMEQMAIAAgBTYCACAEQQhqEOsFGiAEQRBqJAALFQAgAEGQ6hAQGjYCBCAAELoBNgIAC4cBAgJ/AXwjAEEQayIDJAAgA0EANgIMAkACQEEALQDwjx5BAXFFDQBBACgC7I8eIQQMAQtBAUH8phJBABAFIQRBAEEBOgDwjx5BACAENgLsjx4LIAQgASgCBCACIANBDGpBABAXIQUgAyADKAIMNgIIIAAgBRC0ByADQQhqEIsHGiADQRBqJAALbgIBfwF8IwBBEGsiASQAIAFBADYCDCAAQbqOHiABQQxqEAchAiABIAEoAgw2AggCQAJAIAJEAAAAAAAA8EFjIAJEAAAAAAAAAABmcUUNACACqyEADAELQQAhAAsgAUEIahCLBxogAUEQaiQAIAALQwEBfyMAQRBrIgIkACACEL8HIAJBCGogAkGNqhEQwAcgAhDrBRogACACKAIMEMEHNgIAIAJBCGoQ6wUaIAJBEGokAAuhAQICfwF8IwBBIGsiAiQAIAJBDGoQvwcgAkEUaiACQQxqQbf3EBDAByACQQxqEOsFGiACQQA2AgwgAigCGEG7jh4gAkEMahAHIQQgAiACKAIMNgIcAkACQCAERAAAAAAAAPBBYyAERAAAAAAAAAAAZnFFDQAgBKshAwwBC0EAIQMLIAJBHGoQiwcaIAAgAzYCACACQRRqEOsFGiACQSBqJAAL+gICA38BfCMAQTBrIgMkACADQShqEL8HIANBCGogA0EoakH8yBEQwAcgA0EoahDrBRogA0EANgIoIAMoAgxB548eIANBKGoQByEGIAMgAygCKDYCGCADQRhqEIsHGiADIANBGGogAigCBCACKAIAEO0FIgQoAgQQjwc2AiggA0EANgIkAkACQEEALQD4jx5BAXFFDQBBACgC9I8eIQUMAQtBAkGApxJBABAFIQVBAEEBOgD4jx5BACAFNgL0jx4LAkACQCAGRAAAAAAAAPBBYyAGRAAAAAAAAAAAZnFFDQAgBqshAgwBC0EAIQILIAUgAigCOEGzyREgA0EkaiADQShqEBchBiADIAMoAiQ2AiACQAJAIAZEAAAAAAAA8EFjIAZEAAAAAAAAAABmcUUNACAGqyEFDAELQQAhBQsgAyAFNgIUIAMQugE2AhAgA0EgahCLBxogA0EQahDrBRogBBDrBRogACACNgIAIANBCGoQ6wUaIANBMGokAAsEAEEACzYBAX8CQCABQYCAgIAESQ0AEKwBAAsgACABENAHIgI2AgQgACACNgIAIAAgAiABQQJ0ajYCCAs2AQF/AkAgAUGAgICABEkNABCsAQALIAAgARDPByICNgIEIAAgAjYCACAAIAIgAUECdGo2AggLHwAgAEHwphI2AgAgAEEYahDJBxogAEEMahDKBxogAAsfAQF/AkAgACgCACIBRQ0AIAAgATYCBCABEKQBCyAACx8BAX8CQCAAKAIAIgFFDQAgACABNgIEIAEQpAELIAALCgAgABDIBxCkAQu7AQICfwN9IwBBMGsiAiQAIAAqAiwhBCACIAAqAiQiBTgCECACIAAqAigiBjgCKCACIAUgBJI4AiAgAiAGOAIYIAJBADYCDAJAAkBBAC0AkJAeQQFxRQ0AQQAoAoyQHiEDDAELQQVBwKcSQQAQBSEDQQBBAToAkJAeQQAgAzYCjJAeCyADIAEoAhRBvPoQIAJBDGogAkEQahAXGiACIAIoAgw2AgggAkEIahCLBxogACABEM0HIAJBMGokAAvNAQEEfyMAQSBrIgIkAEEAIQMCQANAIAMgACgCECAAKAIMIgRrQQJ1Tw0BIAIgACgCGCADQQJ0IgVqKAIANgIQIAIgBCAFaioCADgCGCACQQA2AgwCQAJAQQAtAICQHkEBcUUNAEEAKAL8jx4hBAwBC0EDQYinEkEAEAUhBEEAQQE6AICQHkEAIAQ2AvyPHgsgBCABKAIUQbqWESACQQxqIAJBEGoQFxogAiACKAIMNgIIIANBAWohAyACQQhqEIsHGgwACwALIAJBIGokAAsDAAALHAACQCAAQYCAgIAESQ0AEKgHAAsgAEECdBCmAQscAAJAIABBgICAgARJDQAQqAcACyAAQQJ0EKYBCwoAIAAQyAcQpAELsQEBAn8jAEEwayICJAAgAiAAKgIkOAIQIAIgACoCKDgCGCACIAAqAiw4AiAgAiAAKgIwOAIoIAJBADYCDAJAAkBBAC0AiJAeQQFxRQ0AQQAoAoSQHiEDDAELQQVBoKcSQQAQBSEDQQBBAToAiJAeQQAgAzYChJAeCyADIAEoAhRBn/oQIAJBDGogAkEQahAXGiACIAIoAgw2AgggAkEIahCLBxogACABEM0HIAJBMGokAAsUACAAQdimEjYCACAAKAIcEGAgAAsKACAAENMHEKQBCwcAIAAoAhwLAgALBgBBtI4eCxcAAkAgAEUNACAAIAAoAgAoAgQRAQALCzIBAX9BCBCmASIDIAI2AgQgAyABNgIAQbeOHiAAQQJBuJ0SQcCdEkH1BCADQQFBABALCzsBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAAkAgA0EBcUUNACABKAIAIABqKAIAIQALIAEgAiAAEQMACzsBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAAkAgA0EBcUUNACABKAIAIABqKAIAIQALIAEgAiAAEQ0ACz0BAX8gASAAKAIEIgRBAXVqIQEgACgCACEAAkAgBEEBcUUNACABKAIAIABqKAIAIQALIAEgAiADIAARBQALOwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQACQCADQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAARAwALXwECfyMAQSBrIgYkAEH4uRMhBwJAIAJBCEsNACACQQJ0QbScEmooAgAhBwsgBkEIaiABIAcqAgAgByoCBCADIAQgBRD4BSAAIAZBCGogACgCACgCEBEDACAGQSBqJAALQwEBfyABIAAoAgQiB0EBdWohASAAKAIAIQACQCAHQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAMgBCAFIAYgABErAAsGAEG3jh4LBAAgAAsEACAACxcAAkAgAEUNACAAIAAoAgAoAgQRAQALCwkAIABBAToABAsMACABIAAoAgARAQALOgEBfyMAQRBrIgIkACACIAE2AgwgAhC6ATYCCCACQQhqIAARAAAhASACQQhqEOsFGiACQRBqJAAgAQs2AQF/QRAQpgEiAUEAOgAEIAEgACgCADYCCCABIAAoAgQ2AgwgAEEANgIEIAFB5J4SNgIAIAELKgAgACABKAIAIAEgASwAC0EASBtBt44eIAIoAgQQGDYCBCAAELoBNgIACwYAQYSPHgsXAAJAIABFDQAgACAAKAIAKAIEEQEACwsyAQF/QQgQpgEiAyACNgIEIAMgATYCAEGGjx4gAEECQeigEkHAnRJB9gQgA0EBQQAQCws9AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhAAJAIARBAXFFDQAgASgCACAAaigCACEACyABIAIgAyAAEQUACzsBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAAkAgA0EBcUUNACABKAIAIABqKAIAIQALIAEgAiAAEQMACzIBAX9BCBCmASIDIAI2AgQgAyABNgIAQYaPHiAAQQRBoKESQbChEkH3BCADQQFBABALC0UBAX8gASAAKAIEIghBAXVqIQEgACgCACEAAkAgCEEBcUUNACABKAIAIABqKAIAIQALIAEgAiADIAQgBSAGIAcgABEtAAsGAEGGjx4LBAAgAAsEACAACxcAAkAgAEUNACAAIAAoAgAoAgQRAQALCwkAIABBAToADAsMACABIAAoAgARAQALOgEBfyMAQRBrIgIkACACIAE2AgwgAhC6ATYCCCACQQhqIAARAAAhASACQQhqEOsFGiACQRBqJAAgAQtGAQF/QRgQpgEiAUEAOgAMIAFCgYCAgMDpl9XmADcCBCABIAAoAgA2AhAgASAAKAIENgIUIABBADYCBCABQYSiEjYCACABCyoAIAAgASgCACABIAEsAAtBAEgbQYaPHiACKAIEEBg2AgQgABC6ATYCAAsGAEHpjh4LBwAgABCkAQsGAEGzjx4LFwACQCAADQBBABCkAQ8LIAAQoQgQpAELBgBBto8eCxcAAkAgAEUNACAAIAAoAgAoAgQRAQALCzsBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAAkAgA0EBcUUNACABKAIAIABqKAIAIQALIAEgAiAAEQMACzsBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAAkAgA0EBcUUNACABKAIAIABqKAIAIQALIAEgAiAAEQMACzsBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAAkAgA0EBcUUNACABKAIAIABqKAIAIQALIAEgAiAAEQ0ACzsBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAAkAgA0EBcUUNACABKAIAIABqKAIAIQALIAEgAiAAEQMACzsBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAAkAgA0EBcUUNACABKAIAIABqKAIAIQALIAEgAiAAEQMACzsBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAAkAgA0EBcUUNACABKAIAIABqKAIAIQALIAEgAiAAEQMAC3gBA38jAEEQayIDJAAgASAAKAIEIgRBAXVqIQUgACgCACEBAkAgBEEBcUUNACAFKAIAIAFqKAIAIQELAkAgAigCACIARQ0AIAAgACgCBEEBajYCBAsgAyAANgIMIAUgA0EMaiABEQMAIANBDGoQoQgaIANBEGokAAsGAEG4jx4LBAAgAAsEACAACxcAAkAgAEUNACAAIAAoAgAoAgQRAQALCwkAIABBAToADAsMACABIAAoAgARAQALOgEBfyMAQRBrIgIkACACIAE2AgwgAhC6ATYCCCACQQhqIAARAAAhASACQQhqEOsFGiACQRBqJAAgAQtGAQF/QRgQpgEiAUEAOgAMIAFCgYCAgLDtwdHAADcCBCABIAAoAgA2AhAgASAAKAIENgIUIABBADYCBCABQbykEjYCACABCyoAIAAgASgCACABIAEsAAtBAEgbQbiPHiACKAIEEBg2AgQgABC6ATYCAAsGAEHkjx4LFwACQCAARQ0AIAAgACgCACgCBBEBAAsLEAAgACACNgIQIAAgATYCDAs9AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhAAJAIARBAXFFDQAgASgCACAAaigCACEACyABIAIgAyAAEQUACyoBAX8gACAAKAIEIgFBf2o2AgQCQCABQQFHDQAgACAAKAIAKAIEEQEACws5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARAQALBgBB5o8eCwQAIAALBAAgAAsXAAJAIABFDQAgACAAKAIAKAIEEQEACwsJACAAQQE6ADALDAAgASAAKAIAEQEACzoBAX8jAEEQayICJAAgAiABNgIMIAIQugE2AgggAkEIaiAAEQAAIQEgAkEIahDrBRogAkEQaiQAIAELfQEBf0E8EKYBIgFCADcCDCABQoGAgICQqaKbODcCBCABQQA6ADAgAUEANgIsIAFBACkDoJ8VNwIUIAFBHGpBACkDqJ8VNwIAIAFBJGpBACkDsJ8VNwIAIAEgACgCADYCNCABIAAoAgQ2AjggAEEANgIEIAFBiKYSNgIAIAELKgAgACABKAIAIAEgASwAC0EASBtB5o8eIAIoAgQQGDYCBCAAELoBNgIACzkBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAAkAgAkEBcUUNACABKAIAIABqKAIAIQALIAEgABEBAAs5AQF/IAEgACgCBCICQQF1aiEBIAAoAgAhAAJAIAJBAXFFDQAgASgCACAAaigCACEACyABIAARAQALPQEBfyABIAAoAgQiBEEBdWohASAAKAIAIQACQCAEQQFxRQ0AIAEoAgAgAGooAgAhAAsgASACIAMgABEXAAs2AQJ/AkAgACgCACIBRQ0AIAEgASgCBCICQX9qNgIEIAJBAUcNACABIAEoAgAoAgQRAQALIAALLwAgAEGYphI2AgACQCAALQAwQQFHDQAgAEE0akH0/hAQkQcLIABBNGoQ6wUaIAALCgAgABCiCBCkAQsKACAAEKIIEKQBCy8AIABB8KQSNgIAAkAgAC0ADEEBRw0AIABBEGpB9P4QEJEHCyAAQRBqEOsFGiAACwoAIAAQpQgQpAELhgEBAX8jAEEQayICJAAgAiABNgIIIAJBADYCBAJAAkBBAC0AwI8eQQFxRQ0AQQAoAryPHiEBDAELQQJBnKUSQQAQBSEBQQBBAToAwI8eQQAgATYCvI8eCyABIAAoAhRB9MARIAJBBGogAkEIahAXGiACIAIoAgQ2AgAgAhCLBxogAkEQaiQAC4YBAQF/IwBBEGsiAiQAIAIgATYCCCACQQA2AgQCQAJAQQAtAMiPHkEBcUUNAEEAKALEjx4hAQwBC0ECQaSlEkEAEAUhAUEAQQE6AMiPHkEAIAE2AsSPHgsgASAAKAIUQeiNESACQQRqIAJBCGoQFxogAiACKAIENgIAIAIQiwcaIAJBEGokAAsQACAAQRBqQbmDESABEKoIC4QBAQJ/IwBBEGsiAyQAIAMgAjgCCCADQQA2AgQCQAJAQQAtAICPHkEBcUUNAEEAKAL8jh4hBAwBC0ECQcygEkEAEAUhBEEAQQE6AICPHkEAIAQ2AvyOHgsgBCAAKAIEIAEgA0EEaiADQQhqEBcaIAMgAygCBDYCACADEIsHGiADQRBqJAALhgEBAX8jAEEQayICJAAgAiABNgIIIAJBADYCBAJAAkBBAC0A0I8eQQFxRQ0AQQAoAsyPHiEBDAELQQJBrKUSQQAQBSEBQQBBAToA0I8eQQAgATYCzI8eCyABIAAoAhRBh6ARIAJBBGogAkEIahAXGiACIAIoAgQ2AgAgAhCLBxogAkEQaiQAC4YBAQF/IwBBEGsiAiQAIAIgATYCCCACQQA2AgQCQAJAQQAtANiPHkEBcUUNAEEAKALUjx4hAQwBC0ECQbSlEkEAEAUhAUEAQQE6ANiPHkEAIAE2AtSPHgsgASAAKAIUQfiXESACQQRqIAJBCGoQFxogAiACKAIENgIAIAIQiwcaIAJBEGokAAsCAAuGAQEBfyMAQRBrIgIkACACIAE2AgggAkEANgIEAkACQEEALQDgjx5BAXFFDQBBACgC3I8eIQEMAQtBAkG8pRJBABAFIQFBAEEBOgDgjx5BACABNgLcjx4LIAEgACgCFEHSyREgAkEEaiACQQhqEBcaIAIgAigCBDYCACACEIsHGiACQRBqJAALKgACQCABKAIAIgENACAAQRBqQa76EBCRBw8LIAEgACABKAIAKAIIEQMACwIACwMAAAsvACAAQcSiEjYCAAJAIAAtAAxBAUcNACAAQRBqQfT+EBCRBwsgAEEQahDrBRogAAsKACAAELIIEKQBCw4AIABBEGpBy84REJEHC4YBAQF/IwBBEGsiAiQAIAIgATYCCCACQQA2AgQCQAJAQQAtAJCPHkEBcUUNAEEAKAKMjx4hAQwBC0ECQfyiEkEAEAUhAUEAQQE6AJCPHkEAIAE2AoyPHgsgASAAKAIUQdPBESACQQRqIAJBCGoQFxogAiACKAIENgIAIAIQiwcaIAJBEGokAAseACAAIAEgASgCACgCJBEAACACIAAoAgAoAiwRBQALEgAgAEEQakHmmhEgASACELgIC44BAQJ/IwBBIGsiBCQAIAQgAzgCGCAEIAI4AhAgBEEANgIMAkACQEEALQCYjx5BAXFFDQBBACgClI8eIQUMAQtBA0GEoxJBABAFIQVBAEEBOgCYjx5BACAFNgKUjx4LIAUgACgCBCABIARBDGogBEEQahAXGiAEIAQoAgw2AgggBEEIahCLBxogBEEgaiQACxIAIABBEGpB7ZoRIAEgAhC4CAuuAQECfyMAQcAAayIHJAAgByAGOAI4IAcgBTgCMCAHIAQ4AiggByADOAIgIAcgAjgCGCAHIAE4AhAgB0EANgIMAkACQEEALQCgjx5BAXFFDQBBACgCnI8eIQgMAQtBB0GQoxJBABAFIQhBAEEBOgCgjx5BACAINgKcjx4LIAggACgCFEH7mhEgB0EMaiAHQRBqEBcaIAcgBygCDDYCCCAHQQhqEIsHGiAHQcAAaiQACw4AIABBEGpBobkREJEHCwQAIAALBAAgAAvaAQIBfwV9IwBBwABrIgMkACACKgIAIQQgAioCBCEFIAIqAgghBiACKgIMIQcgAioCECEIIAMgAioCFDgCOCADIAg4AjAgAyAHOAIoIAMgBjgCICADIAU4AhggAyAEOAIQIAMgATYCCCADQQA2AgQCQAJAQQAtAKiPHkEBcUUNAEEAKAKkjx4hAgwBC0EIQbCjEkEAEAUhAkEAQQE6AKiPHkEAIAI2AqSPHgsgAiAAKAIUQbCqESADQQRqIANBCGoQFxogAyADKAIENgIAIAMQiwcaIANBwABqJAALAgAL7gECAn8BfiABKAIQIQIgASgCDCEDIAEoAgAhAQJAA0AgAyACRg0BAkACQAJAAkACQCADLQAADgYAAQQEAgMECyAAIAEpAgAiBKe+IARCIIinviAAKAIAKAIUERcAIAFBCGohAQwDCyAAIAEpAgAiBKe+IARCIIinviAAKAIAKAIYERcAIAFBCGohAQwCCyAAIAEpAgAiBKe+IARCIIinviABKQIIIgSnviAEQiCIp74gASkCECIEp74gBEIgiKe+IAAoAgAoAhwRLQAgAUEYaiEBDAELIAAgACgCACgCIBEBAAsgA0EBaiEDDAALAAsLAwAACy8AIABBlJ8SNgIAAkAgAC0ABEEBRw0AIABBCGpB9P4QEJEHCyAAQQhqEOsFGiAACwoAIAAQwggQpAELDgAgAEEIakG7tREQkQcLDgAgAEEIakH1uxEQkQcL1gECAX8FfSMAQcAAayICJAAgASoCACEDIAEqAgQhBCABKgIIIQUgASoCDCEGIAEqAhAhByACIAEqAhQ4AjggAiAHOAIwIAIgBjgCKCACIAU4AiAgAiAEOAIYIAIgAzgCECACQQA2AgwCQAJAQQAtAMyOHkEBcUUNAEEAKALIjh4hAQwBC0EHQcCfEkEAEAUhAUEAQQE6AMyOHkEAIAE2AsiOHgsgASAAKAIMQY+jESACQQxqIAJBEGoQFxogAiACKAIMNgIIIAJBCGoQiwcaIAJBwABqJAALkAEBAX8jAEEgayIDJAAgAyACNgIYIAMgATYCECADQQA2AgwCQAJAQQAtANSOHkEBcUUNAEEAKALQjh4hAgwBC0EDQdyfEkEAEAUhAkEAQQE6ANSOHkEAIAI2AtCOHgsgAiAAKAIMQfypESADQQxqIANBEGoQFxogAyADKAIMNgIIIANBCGoQiwcaIANBIGokAAuGAQEBfyMAQRBrIgIkACACIAE2AgggAkEANgIEAkACQEEALQDcjh5BAXFFDQBBACgC2I4eIQEMAQtBAkHonxJBABAFIQFBAEEBOgDcjh5BACABNgLYjh4LIAEgACgCDEGcqhEgAkEEaiACQQhqEBcaIAIgAigCBDYCACACEIsHGiACQRBqJAALpQEBAX8jAEEwayIFJAAgBSABNgIQIAIQygghASAFIAQ4AiggBSADNgIgIAUgATYCGCAFQQA2AgwCQAJAQQAtAOSOHkEBcUUNAEEAKALgjh4hAQwBC0EFQfCfEkEAEAUhAUEAQQE6AOSOHkEAIAE2AuCOHgsgASAAKAIMQYzJESAFQQxqIAVBEGoQFxogBSAFKAIMNgIIIAVBCGoQiwcaIAVBMGokAAslAQF/QQMQpgEiAUECaiAAQQJqLQAAOgAAIAEgAC8AADsAACABC+AGAwV/BH4TfSMAQaABayIKJAACQCADKAIAIgNFDQAgAygCCEG/2Y2pfEcNACAEKAIAIgRFDQAgBCgCCEG/2Y2pfEcNACAFKAIAIgtFDQAgCygCCEG/2Y2pfEcNACAGQQF0IgVFDQAgB0UNACALKAIcIQwgAygCHCENIAQoAhwhDiAKQQY2AjAgCiAKQRBqNgI0IApBwJAeIApBMGoQDyIENgIMIAoQugE2AgggAEEIakHS7BAgBBDuBSAKNQIUQiCGIAo1AhiEIQ8gCjUCHEIghiAKNQIQhCEQIAMoAhwhCwJAAkAgBkEBcQ0AIAspAAghESALKQAAIRJBBCEDDAELQQIhAyALKQAAIhIhEQsgCioCJCETIAoqAiAhFCAQp74iFSASp74iFpQgEkIgiKe+IhcgD6e+IhiUkiIZIRogEEIgiKe+IhsgF5QgFiAPQiCIp74iHJSSIh0hHiAVIBGnviIWlCARQiCIp74iFyAYlJIiHyEgIBsgF5QgFiAclJIiISEiAkADQCADIAVODQEgCyADQQJ0aiIEKgAMIhcgG5QgBCoACCIjIByUkiIWICEgISAWXRshISAjIBWUIBcgGJSSIhcgHyAfIBddGyEfIAQqAAQiJCAblCAEKgAAIiUgHJSSIiMgHSAdICNdGyEdICUgFZQgJCAYlJIiJCAZIBkgJF0bIRkgFiAiIBYgIl0bISIgFyAgIBcgIF0bISAgIyAeICMgHl0bIR4gJCAaICQgGl0bIRogA0EEaiEDDAALAAsgCiABNgIwIAIQygghAyAKIAc2AnggCiAMNgJwIAogBTYCaCAKIA42AmAgCiAFNgJYIAogDTYCUCAKIAk4AkggCiAINgJAIAogAzYCOCAKIBQgHyAZIBkgH10bko04ApABIAogFCAgIBogICAaXRuSjjgCgAEgCiATICEgHSAdICFdG5KNOAKYASAKIBMgIiAeICIgHl0bko44AogBIApBADYCLAJAAkBBAC0A+I4eQQFxRQ0AQQAoAvSOHiEDDAELQQ9BkKASQQAQBSEDQQBBAToA+I4eQQAgAzYC9I4eCyADIAAoAgxB2qoRIApBLGogCkEwahAXGiAKIAooAiw2AiggCkEoahCLBxogCkEIahDrBRoLIApBoAFqJAALEAAgAEEIakG56RAgARCqCAsDAAALMQBBAEH4BDYCmJAeQQBBADYCnJAeEM8IQQBBACgClJAeNgKckB5BAEGYkB42ApSQHguzBABBoJAeQafRERAbQaGQHkGYpBFBAUEAEBxBopAeQeiVEUEBQYB/Qf8AECBBo5AeQeGVEUEBQYB/Qf8AECBBpJAeQd+VEUEBQQBB/wEQIEGlkB5BoPQQQQJBgIB+Qf//ARAgQaaQHkGX9BBBAkEAQf//AxAgQaeQHkHQ9xBBBEGAgICAeEH/////BxAgQaiQHkHH9xBBBEEAQX8QIEGpkB5BlawRQQRBgICAgHhB/////wcQIEGqkB5BjKwRQQRBAEF/ECBBq5AeQeOAEUEIQoCAgICAgICAgH9C////////////ABCrWkGskB5B4oARQQhCAEJ/EKtaQa2QHkGDgBFBBBAhQa6QHkH3wRFBCBAhQa+QHkGVrREQHUGwkB5BpegREB1BsZAeQQRB26wREB5BspAeQQJBoa0REB5Bs5AeQQRBsK0REB5BtJAeEB9BtZAeQQBB4OcRECJBtpAeQQBBxugRECJBt5AeQQFB/ucRECJBuJAeQQJBnOQRECJBuZAeQQNBu+QRECJBupAeQQRB4+QRECJBu5AeQQVBgOURECJBvJAeQQRBiekRECJBvZAeQQVBp+kRECJBtpAeQQBB5uURECJBt5AeQQFBxeURECJBuJAeQQJBqOYRECJBuZAeQQNBhuYRECJBupAeQQRBrucRECJBu5AeQQVBjOcRECJBvpAeQQhB6+YRECJBv5AeQQlByeYRECJBwJAeQQZBpuURECJBwZAeQQdBzukRECILNQEBfyMAQeAAayIBJAAgASAANgIAIAFBEGogASABENEIIAFBEGoQ0gghACABQeAAaiQAIAALIgEBfyMAQRBrIgMkACADIAI2AgwgACACENxPIANBEGokAAshAQJ/AkAgABBZQQFqIgEQXiICDQBBAA8LIAIgACABEEsLwQIAIAAQ1AgiAEJ/NwLMCiAAQgA3AsQKIABB5ApqQQBB5QAQSBogAEHkrBI2AuAKIABB2KwSNgLcCiAAQcysEjYC2AogAEG4rBI2AtQKIABBjKwSNgKEAiAAQfirEjYCgAIgAEHsqxI2AvwBIABBxKsSNgLoASAAQbSrEjYC5AEgAEGgqxI2AmggAEHcpxI2AgAgAEHMC2pBAEG8ARBIGiAAQgA3AowNIABBAToAiA0gAEGRDWpCADcAACAAQgA3ApwNIABBAToAmQ0gAEGkDWpCADcCACAAQQE6AMINIABBATsBwA0gAEEANgK8DSAAQgA3ArQNIABBADoAsA0gAEGAgID8AzYCrA0gAEIANwLEDSAAQcwNakIANwIAIABB1A1qQQA6AAAgAEKAgICAgICAwD83AtgNIABBAToAzQEgAAuOBAEBfyAAEJoKIgBCADcCiAIgAEEANgL4ASAAQgA3AvABIABBADoA7AEgAEGAgID8AzYC4AEgAEL/////j4CAwD83AtgBIABCADcC0AEgAEEAOgDNASAAQgA3ApACIABBpL4TNgKEAiAAQZC+EzYCgAIgAEGEvhM2AvwBIABB3L0TNgLoASAAQcy9EzYC5AEgAEG4vRM2AmggAEGouhM2AgBBmAYQpgFBAEGYBhBIEKEkIgFBzARqEKIkGiAAQQA6AJQDIABBADYCkAMgAEEAOgCMAyAAIAE2ApgCIABBnAJqQQBB6QAQSBogAEGYA2oQtxMaIABBADoAkAggAEEBOgDsByAAQgA3AvAHIABB+AdqQgA3AgAgAEGACGpCADcCACAAQYgIakEANgIAIABBADoAwAggAEEBOgCcCCAAQQI2ApgIIABBAToAlAggAEIANwKgCCAAQagIakIANwIAIABBsAhqQgA3AgAgAEG4CGpBADYCACAAQQI2AsgIIABBAToAxAggAEHMCGoQmgpB0L4TNgIAIABBAToAwgogAEGAAjsBwAogAEKAgID+h4CA4P8ANwK4CiAAQQA6ALYKIABBATsBtAogAEKAgID+dzcCrAogAEKAgID+dzcCpAogAEEAOgCgCiAAIABB5AFqNgKcCiAAQfDAEzYCtAkgACgCmAIoArgEQQA2AhQgAAvnCgEIfyMAQTBrIgEkACAAQeSsEjYC4AogAEHYrBI2AtwKIABBzKwSNgLYCiAAQbisEjYC1AogAEGMrBI2AoQCIABB+KsSNgKAAiAAQeyrEjYC/AEgAEHEqxI2AugBIABBtKsSNgLkASAAQaCrEjYCaCAAQdynEjYCACABQSxqQQAQ1ggCQCABKAIsIgJFDQAQ1wgCQCACKAI0IgNFDQAgAyADKAIAQQFqNgIACyABIAM2AiAgAkEoaiEEA0AgA0UNAQJAIAMoAsgKIgVFDQAgBSAFKAIAQQFqNgIAIAEoAiAhAwsgASAFNgIUAkAgAygC1AogAEcNAAJAIAMtAMQKDQAgA0EBNgKMBSABKAIgIQMLIAQgAxDYCAJAIAEoAiAiAw0AIAFBADYCCCACIAFBCGoQ2QgMAQsgAyADKAIAQQFqNgIAIAEgAzYCCCACIAFBCGoQ2QggAxDaCAsgAUEgaiABQRRqENsIIQMgASgCFBDcCCADKAIAIQMMAAsACyAAQeAKaiEGIAAQ3QggASABQSBqQQRqNgIgIAFCADcCJCABIAFBFGpBBGoiBDYCFCABQgA3AhggASAANgIIIABBzAtqIQcgASABQRRqNgIQIAEgAUEgajYCDCAAKALQCyEFIAAoAswLIQMDfwJAIAMgBUcNACAAQdgLaiEIIAAoAtwLIQUgACgC2AshAwNAAkAgAyAFRw0AIAAoAtALIQIgACgCzAshAwNAAkAgAyACRw0AIAAoAtwLIQIgACgC2AshAwNAAkAgAyACRw0AIAEoAhQhAwNAAkAgAyAERw0AIAAoAuQKIAAoAugKEN4IAkAgAC0AmA0NACAAKALoCyECIAAoAuQLIQMDQAJAIAMgAkcNACAAKAL0CyECIAAoAvALIQMDQCADIAJGDQMCQCADKAIAIgVFDQAgBSAFKAIAKAIEEQEACyADQQRqIQMMAAsACwJAIAMoAgAiBUUNACAFIAUoAgAoAgQRAQALIANBBGohAwwACwALIABBnA1qEN8IIAEoAhgQ4AggASgCJBDhCCABQSxqEOIIGiAAQdANahDjCBogACgCtA0hAyAAQQA2ArQNAkAgA0UNACADIAMoAgAoAgQRAQALIAAoAqQNEOQIIAAoApwNIQMgAEEANgKcDQJAIANFDQAgAxCkAQsgAEGADWoQ5QgaAkAgACgC9AwiA0UNACAAIAM2AvgMIAMQpAELIABB6AxqEOYIGgJAIAAoAtwMIgNFDQAgACADNgLgDCADEKQBCwJAIAAoAtAMIgNFDQAgACADNgLUDCADEKQBCwJAIAAoAsQMIgNFDQAgACADNgLIDCADEKQBCyAAQbgMahDnCBogAEGsDGoQ+wUaAkAgACgCoAwiA0UNACAAIAM2AqQMIAMQpAELIABBlAxqEOgIGiAAQYgMahDpCBogAEH8C2oQ6ggaAkAgACgC8AsiA0UNACAAIAM2AvQLIAMQpAELAkAgACgC5AsiA0UNACAAIAM2AugLIAMQpAELIAgQ6wgaIAcQ6wgaIAYQ7AgaIAAQ7QghAyABQTBqJAAgAw8LIAMoAhAiBSAFKAJEIgJBf2o2AkQCQCACQQFHDQAgBSAFKAIAKAIEEQEACyADEO4IIQMMAAsACwJAIAMoAgAiBUUNACABQSBqIAUQ7wgNACAFIAUoAgAoAgQRAQALIANBBGohAwwACwALAkAgAygCACIFRQ0AIAUgAEYNACABQSBqIAUQ7wgNACAFIAUoAgAoAgQRAQALIANBBGohAwwACwALIAFBCGogAygCABDwCCADQQRqIQMMAAsACyABQQhqIAMoAgAQ8AggA0EEaiEDDAALC/4OAQl/IwBB0ANrIgIkAEEAIQNBACgC1JAeIQQCQAJAAkAgAUUNACAEDQEgAkHwAmpCADcDACACQegCakIANwMAIAJBwANqIgRBADYCACACQgA3A+ACIAJCADcDuANB8AcQpgFBAEHwBxBIIQUgAkGA9wI2AoADIAJCgYCAgCA3A/gCIAJBhANqQQBBNBBIGiAFIAIoApQDNgLcByAFIAIoArwDNgLkByAFIAQoAgA2AugHIAVBuAdqIgYgAkGcA2oQmQ4aIAUgAigC5AIiBDYCmAQCQAJAAkAgBA0AIAIoArADDQACQAJAIAUoArwHIgRFDQAgBUHAGCAFKAK4ByAEEQIAIgQ2ApgEIARFDQMgAkEBNgKEASACQZQBakEAQTgQSBogAkEENgLMASACQdwBakEAQYQBEEgaIAJBBTYC1AEgAiAFNgKsASACQYECOwGcASACIAIoAugCNgLQASACIAIoAvwCNgLYASACIAIoAoADNgKIASACIAIoAvACNgKkASACIAIpAoQDNwKMASACIAIoAuwCIgNB+QQgAxs2AqABAkACQCACKALgAiIDDQAgAkEEakEEakEAQfwAEEgaIAJBHGogBkEIaikCADcCACACIAYpAgA3AhQgAiACKAL0AjYCBCACQQRqIAJBhAFqIAQQqg4hBAwBCyADIAJBhAFqIAQQqw4hBAsgBEUNASAFKAKYBCAGEOgKCyAFQQA2ApgEDAILIAVBAToAyQcgBSgCmAQhBAsCQAJAIAQNACACKAKAAyEBIAIoAvwCIQMMAQsgAiAEKAK8ByIDNgL8AiACIAQoAggiATYCgAMCQCAEKALUDSIHDQAgBCgCzAshBwsgAiAHNgKEAwsgA0UNACABRQ0AIAUgATYCoAQCQCACKAL0AiIBDQAgBEUNAAJAIAQoAgAiBA0AQQAhAQwBCyAEKAI4IQELIAUgATYCnAQgAiADNgLEAyACIAIoAoQDIgQ2AsgDIAIgAigCmAM2AswDIAVBAEGYBBBIIgMgBDYCiAQgAkIANwKUASACQf8BNgKQASACQoCAgIDwHzcCiAEgAkH4yR02AoQBIAIgAkHEA2o2ApgBAkAgAyACQYQBaiAGIAMQrA4NACACQf8BNgIQIAJCgICAgPAfNwIIIAJBiModNgIEIAIgAkHEA2o2AhggAiACQcQDajYCFAJAIAMgAkEEaiAGIANBgAJqIgcQrA4NAAJAIAIoAsgDIgRFDQAgAyAEIAIoAsQDbEECdCAGEK0OIgQ2AoAEIAQNACAHIAYQrg4MAQsCQAJAAkAgAigCzAMiAQ0AIAIoAsQDQRN0IgFFDQELIAFBC2ogBhCtDiIEDQELIANBADYCkAQgByAGEK4OIAMgBhCuDiADKAKABCIERQ0CIAQgBhDoCgwCCyAEIAE2AgQgBEEANgIAIAMgBDYCkAQCQAJAIAIoAvgCIgQNAEEBIQQgAkEBNgL4AgwBCyAEQQRLDQILIANBqARqIQhBACEJAkACQAJAA0AgCSAETw0BIAMoAowCRQ0CIAMoApQCLQAFIgdFDQICQAJAIAdBB2pB+ANxIgoNAEEAIQEMAQsgCiAGEK0OIgFFDQMLIAggCUHkAGxqQQBB5AAQSCIEIAE2AmACQCABRQ0AIApFDQAgAUEAIAoQSBoLIAQgATYCBCAEIAc2AgAgBEIANwIkIARCgICAgICAgMA/NwIcIARCgICAgODM6dXDADcCFCAEQtqfpIak+8PkwAA3AgwgBEEANgIIIARCADcCRCAEQSxqQgA3AgAgBEE0akIANwIAIARBPGpCgICAgICAgMC/fzcCACAEQcwAakIANwIAIARB1ABqQoCAgIAQNwIAAkACQCAHQQJHDQAgAUGLGDsAAAwBC0EAIAEgByAHEK8OCyAEQQE2AlwgAyADKAKkBEEBajYCpAQgCUEBaiEJIAIoAvgCIQQMAAsACyADIAIoAowDIgQ2AtgHAkAgBA0AIAMgAigCkAMiBEEIIAQbIAMoAqAEbEHoB242AtgHCyADQgA3AswHIAIoAqwDDQEgAygCmAQiBEUNASAEKAIMRQ0AIAQoAgxBAkYNASAEKAIMQQJGDQEgBEEDNgIMAkACQCAEKAIAIgEQ6QpFDQAgASgCGCIBRQ0BIAQgAREAAA0BIARBAjYCDCAEELAODAMLIARBATYCOCAEQYQBahDqCiAEKAKgAkUNAgsgBEEBNgIMC0EAIQQCQANAIAQgAygCpARPDQEgCCAEQeQAbGogBhDtCiAEQQFqIQQMAAsACyADIAYQ7goMAgtBOBCmASIEQQE2AgAgAygCmAQhASAEIAM2AgggBCABNgIEIARBDGpBAEEsEEgaDAMLIAMgBhCuDgsgAy0AyQdFDQAgAygCmAQQ5wogAygCmAQgBhDoCgtBwoISQSpBAUGwzB0QTRogBRCkAUEAIQQLQQAhA0EAKALUkB4hAUEAIAQ2AtSQHiABRQ0AIAEQ3wpBACgC1JAeIQQLIARFDQELIAQgBCgCAEEBajYCACAEIQMLIAAgAzYCACACQdADaiQACw8AAkAQ11BFDQAQ2lAACwv9AgEGfwJAAkACQAJAIAAoAgQiAiAAKAIIIgNPDQACQCABRQ0AIAEgASgCAEEBajYCAAsgAiABNgIAIAJBBGohAQwBCyACIAAoAgAiBGtBAnUiBUEBaiIGQYCAgIAETw0BAkACQCADIARrIgNBAXUiByAGIAcgBksbQf////8DIANB/P///wdJGyIDDQBBACEHDAELIANBgICAgARPDQMgA0ECdBCmASEHCyADQQJ0IQMgByAFQQJ0aiEGAkAgAUUNACABIAEoAgBBAWo2AgAgACgCACEEIAAoAgQhAgsgByADaiEHIAYgATYCACAGIQECQANAIAIgBEYNASACQXxqIgIoAgAhAyACQQA2AgAgAUF8aiIBIAM2AgAMAAsACyAAIAc2AgggACgCACEDIAAgATYCACAAKAIEIQIgACAGQQRqIgE2AgQCQANAIAIgA0YNASACQXxqEO8KIQIMAAsACyADRQ0AIAMQpAELIAAgATYCBA8LEKwBAAsQqAcAC+IBAQN/IwBBEGsiAiQAAkAgASgCACIDKALICiIERQ0AIAQgBCgCAEEBajYCACABKAIAIQMLIAIgBDYCDAJAIAMoAswKIgNFDQAgAyADKAIAQQFqNgIACyACIAM2AggCQCAERQ0AIARBzApqIAJBCGoQ2wgaCwJAIANFDQAgA0HICmogAkEMahDbCBoLAkAgACgCNCABKAIAIgRHDQAgAEE0aiACQQxqENsIGiABKAIAIQQLIARByApqQQAQ5QogASgCAEHMCmpBABDlCiACKAIIENwIIAIoAgwQ3AggAkEQaiQAC0UBAX8gACAAKAIAIgFBf2o2AgACQCABQQFHDQAgABDkCiAAQcwKahDvChogAEHICmoQ7woaIABBwApqEJQGGiAAEKQBCws4AAJAIAAgAUYNAAJAIAEoAgAiAQ0AIABBABDlCiAADwsgASABKAIAQQFqNgIAIAAgARDlCgsgAAsPAAJAIABFDQAgABDaCAsLTAECfyAAENsKIABB4ApqENwKIAAoAsgMIQEgACgCxAwhAANAAkAgACABRw0ADwsgACgCACICIAIoAgAoAhQRAQAgAEEEaiEADAALAAs1AQF/AkADQCAAIAFGDQECQCAAKAIAIgJFDQAgAiACKAIAKAIEEQEACyAAQQRqIQAMAAsACwtZAQJ/AkAgACgCDEUN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KAKEAhEAAEUNACACIAIoAgxBfGo2AgwMAgsgAigCDCEAIAIoAgghCQNAAkAgCSAARw0AIAIgAigCCDYCDAwCCyAJKAIAIgYgASAGKAIAKALsAREDACAJQQRqIQkMAAsACyAHIAEgBygCACgC7AERAwALIAdBxAFqIQcMAAsACwJAIAcoAgAiCRCECkUNACAJIAUgCSgCACgCeBECACIIRQ0AIAkgASAIIARBAEEAQQEgCSgCACgCcBESAAsgB0EEaiEHDAALAAsgAkEgaiQAC54CAgF/BH0jAEEwayIDJAAgA0EYakEQaiACQRBqKQIANwMAIANBGGpBCGogAkEIaikCADcDACADIAIpAgA3AxgCQCAALQCZDUEBRw0AIAAqAsQKIQQgACoCpAIhBSAAKgLICiEGIAAqAqgCIQcgA0KAgICAgICAwD83AgggA0KAgID8AzcCACADIAcgBpQ4AhQgAyAFIASUOAIQIANBGGogAxC6CRoLAkACQCAAKAKUDSICDQBBACEADAELA0AgAiIAKALEASICDQALCwJAA0ACQCAADQBBACECDAILAkAgACAAKAIAKAL0AREAAA0AIAAgASADQRhqIAAoAgAoAvABEQQAIgINAgsgACgCyAEhAAwACwALIANBMGokACACC1IBAX8jAEEgayICJAAgAkEIaiAAIAEQ/gUgAEEQaiACQQhqQRBqKQIANwIAIABBCGogAkEIakEIaikCADcCACAAIAIpAgg3AgAgAkEgaiQAIAALDgAgAC0AuAFBCHFBA3YLBABBAAsEAEEACwQAQQALBABBAAsEACAACwQAQQALBwAgACgCKAsIACAAQcQAagsQACAAIAAoAgAoAvQBEQAAC4wCAgF/BH0jAEEgayIBJAAgACoCxAohAiAAKgKkAiEDIAEgACoCyAogACoCqAIiBIyUIgU4AhQgASAEIAWSOAIcIAEgAiADjJQiAjgCECABIAMgApI4AhgCQAJAIAAtAJkNQQFHDQAgASAEOAIMIAEgAzgCCCABQgA3AwAMAQsgAUEIaiABQRBqQQhqKQIANwMAIAEgASkCEDcDAAsgAEEAOgCQCCAAQQE6AOwHIAAgACgC9Ac2AvgHIAAgACgCgAg2AoQIIABB9AdqIAFBEGoQxgkgAEEAOgDACCAAQQE6AJwIIAAgACgCpAg2AqgIIAAg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KQJsNwJEIABB1ABqIABB/ABqKQIANwIAIABBzABqIABB9ABqKQIANwIACyAAIAAoAgAoAmARAQAgAUEgaiQACwgAIAAqApABCwgAIAAqApQBCxMAIABCADcCACAAQQhqQgA3AgALKQIBfwF9IwBBIGsiASQAIAFBCGogABCsCiABKgIYIQIgAUEgaiQAIAIL+gIBA38jAEHQAGsiAiQAAkACQCABLQCwAUEBRw0AIAFBADoAsAECQCABKAKIASIDRQ0AIAJBOGpBEGogA0HUAGopAgA3AwAgAkE4akEIaiADQcwAaikCADcDACACIAMpAkQ3AzggAkEgakEQakEAKQOwnxU3AwAgAkEgakEIakEAKQOonxU3AwAgAkEAKQOgnxU3AyAgAkE4aiACQSBqEP0FRQ0AIAJBCGogAkEgaiABQcQAahD+BSABQagBaiIDIAJBCGpBEGopAgA3AgAgAUGgAWoiBCACQQhqQQhqKQIANwIAIAEgAikCCDcCmAEgAEEQaiADKQIANwIAIABBCGogBCkCADcCACAAIAEpApgBNwIADAILIAFBqAFqQQApA7CfFTcCACABQaABakEAKQOonxU3AgAgAUEAKQOgnxU3ApgBCyAAIAEpApgBNwIAIABBEGogAUGoAWopAgA3AgAgAEEIaiABQaABaikCADcCAAsgAkHQAGokAAspAgF/AX0jAEEgayIBJAAgAUEIaiAAEKwKIAEqAhwhAiABQSBqJAAgAgsHAEMAAAAACwcAQwAAAAALHwEBfyAAKALQASICIAEgAC0AzAEgAigCACgCCBEFAAsEAEEACwQAQQALBABBAAsEAEEBCxUAIAAoAtABIgAgACgCACgCEBEAAAsYACAAKALQASIAIAAoAgAoAhARAABBAXMLFQAgACgC0AEiACAAKAIAKAIUEQAACwQAQQALFQAgACgC0AEiACAAKAIAKAIMEQAACwkAIABCADcCAAtNAgJ/AX0CQAJAIAAoAgAgACgCBGoiASAAKAIIIgJrQQNLDQAgAEEBOgAMQwAAAAAhAwwBCyACQQRqIQEgAioAACEDCyAAIAE2AgggAwtJAAJAAkACQAJAIAFBcWoOAwABAgMLIAAgAhC7CjgCXEEBDwsgACACELsKOAJgQQEPCyAAIAIQuwo4AmRBAQ8LIAAgASACEL0KCyIAAkAgAUESRw0AIAAgAhC7CjgCQEEBDwsgACABIAIQvgoLYAECfyMAQRBrIgMkAEEAIQQCQAJAAkACQCABQXxqDgIAAQMLIANBBGogAhC/CiAAQQxqIANBBGoQwAogA0EEahCCBhoMAQsgACACEKIKNgIYC0EBIQQLIANBEGokACAEC+oBAgF+BH8gARCTDyECAkAgAS0ADEEBRw0AIABCADcCACAAQQhqQQA2AgAPC0EAIQMCQAJAIAKnIgRBAWoiBUUNACAFQX9MDQEgBRCmASIDIAVqIQYgAyEFA0AgBSAGRg0BIAVBADoAACAFQQFqIQUMAAsACwJAAkAgAkL/////D4MiAiABKAIIIgUgASgCACABKAIEaiIGIAMQ0g0gAlENACABIAY2AgggAUEBOgAMIABBCGpBADYCACAAQgA3AgAMAQsgASAFIARqNgIIIAAgAyAEEIwHCwJAIANFDQAgAxCkAQsPCxCsAQALPwACQCAALAALQX9KDQAgACgCABCkAQsgACABKQIANwIAIABBCGogAUEIaigCADYCACABQQA6AAsgAUEAOgAACx8BAX8CQCAAKAIAIgFFDQAgACABNgIEIAEQpAELIAALGQAgAEG0zxU2AgAgAEE0ahDqCBogABDDCgtOAQF/IABBiNAVNgIAAkACQCAAKAIsIgENAEEAEKQBDAELIAEQxAoQpAELAkACQCAAKAIcIgENAEEAEKQBDAELIAEQ6ggQpAELIAAQxQoLHwEBfwJAIAAoAgAiAUUNACAAIAE2AgQgARCkAQsgAAsZACAAQdjQFTYCACAAQQxqEIIGGiAAEMYKC1IBAn8gAEH0uhI2AgAgACgCCCEBAkADQCABRQ0BIAFBADYCLCABKAIkIQIgAUEANgIkIAEgAS0AIEHvAXE6ACAgAiEBDAALAAsgAEEANgIIIAALCgAgABDFChCkAQsEAEEKCwcAIAFBCkYLBABBAAsEAEEBCwQAQQALBABBAAsEAEEAC6EBAQN+IAAQ0AoiAEGAgID8AzYCQCAAQYCAgPwDNgJkIABCgICAgICAgMA/NwJcIABB2LEVNgJoIABB1LAVNgIAIABCADcChAEgAEEANgKMASAAQQApA6CfFSIBNwJEIABBzABqQQApA6ifFSICNwIAIABB1ABqQQApA7CfFSIDNwIAIAAgATcCbCAAQfQAaiACNwIAIABB/ABqIAM3AgAgAAsgACAAENUKIgBBADYCPCAAQgA3AjQgAEG0zxU2AgAgAAsEAEEmCzEBAX8CQAJAIAFBdmoiAkEcSw0AQQEgAnRBg4CAgAFxDQELIAFB2wBGDQBBAA8LQQELAgALAgALTAAgAEHY0BU2AgAgAEL/////DzcCBCAAQQxqQeeNEhCeBhogAEH+/wM7ATAgAEIANwIoIABBADYCICAAQYjQFTYCACAAQgA3AhggAAsEAEELCwwAIAFB/v8DcUEKRgvJAQEFfwJAIAFFDQAgAkH//wNxIQMCQAJAIAFpIgRBAUsNACABQX9qIANxIQUMAQsgAyEFIAMgAUkNACACQf//A3EgAUH//wNxcCEFCyAAIAVBAnRqKAIAIgBFDQAgAUF/aiEGIAJB//8DcSEHIARBAUshBANAIAAoAgAiAEUNAQJAIAAoAgQiAiADRg0AAkACQCAEDQAgAiAGcSECDAELIAIgAUkNACACIAFwIQILIAIgBUcNAgwBCyAALwEIIAdHDQALIAAPC0EAC5wBAAJAAkACQAJAAkACQAJAIAFBeWoOAgECAAsCQCABQb56ag4CBAUACyABQe4DRg0CIAFBxAFHDQUgACACENoKOgDNAUEBDwsgACACELsKOALQAUEBDwsgACACELsKOALUAUEBDwsgACACEKIKNgLYAUEBDwsgACACELsKOALcAUEBDwsgACACELsKOALgAUEBDwsgACABIAIQoQoLCgAgABCSD0EBRgv6AQEDfwJAIAAoAoANIgFFDQAgAEGADWohAgJAIAEoAggiAUUNAAJAIAEoAkQNACABIAEoAgAoAgQRAQALAkAgAigCACgCCCIBRQ0AIAEgASgCREEBajYCRAsgASAAQeAKahDyCiABIAEoAkQiA0F/ajYCRCADQQFHDQAgASABKAIAKAIEEQEACyACQQAQ/wkLIAAoAsgMIQMgACgCxAwhAQJAA0ACQCABIANHDQAgACgC7AwhAiAAKALoDCEBA0AgASACRg0DIAEoAgBBADoAPSABQQRqIQEMAAsACyABKAIAIgIgAigCACgCEBEBACABQQRqIQEMAAsACwtDAQN/IAAoAgghASAAKAIEIQIDQAJAIAIgAUcNACAAQQA2AmQPCyACKAIAIgMgAygCACgCQBEBACACQQRqIQIMAAsAC9QBAQN/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ACICKAKgASIDRQ0AIAEgAigClAEgAxEDAAsCQCAALQCkAkUNACAAKAIAIgEoAqABIQIgASgClAEhAyABENdIIAAoAgAiAUUNACACRQ0AIAEgAyACEQMACyAAQQBBwBgQSBoLCy8BAX8CQCAARQ0AAkAgAUUNACABKAIMIgJFDQEgACABKAIAIAIRAwAPCyAAEGALCyMBAX9BACEBAkAgACgCIA0AIAAoAiQNACAAKAIoRSEBCyABCxEAAkAgAEUNACAAQQA2AgALCzMBAX8CQCAARQ0AA0AgACgCACEBIABBATYCACABRQ0BA0AgACgCAEEBRg0ADAELAAsACwsZAAJAIABFDQAgACAAKAKAAkG4B2oQtkoLCxwAAkAgAEUNACAAKAJcRQ0AIAAoAmAgARDoCgsLUAEBfyAAQYACaiABEK4OIAAgARCuDgJAIAAoAoAEIgJFDQAgAiABEOgKIABBADYCgAQLAkAgACgCkAQiAkUNACACIAEQ6AogAEEANgKQBAsLDAAgACgCABDcCCAAC1EBAn8gACAAKAIEIgEoAgAiAjYCBAJAIAJFDQAgAiAANgIICyABIAAoAggiAjYCCCACIAIoAgAgAEdBAnRqIAE2AgAgASAANgIAIAAgATYCCAtRAQJ/IAAgACgCACIBKAIEIgI2AgACQCACRQ0AIAIgADYCCAsgASAAKAIIIgI2AgggAiACKAIAIABHQQJ0aiABNgIAIAEgADYCBCAAIAE2AggLiwEBBH8CQCAAKAJgIAAoAmQiAiABEOc+IgMgAkYNACADIQQCQANAIARBBGoiBCACRg0BIAQoAgAiBSABRg0AIAMgBTYCACADQQRqIQMMAAsACyADIAAoAmQiBEYNACAEIAMgBCADa2oiAmshAQJAIAQgAkYNACADIAIgARCJARoLIAAgAyABajYCZAsLpQEBBH8jAEEgayICJAACQAJAIAAoAgQiAyAAKAIIIgRPDQAgAyABKAIANgIAIANBBGohAQwBCyACQQxqIAAoAgAiBSAEIAMgBWtBAnVBAWoQ9AogACgCBCAAKAIAa0ECdSAAQQhqEPUKIgMoAgggASgCADYCACADIAMoAghBBGo2AgggACADEPYKIAAoAgQhASADEPcKGgsgACABNgIEIAJBIGokAAs4AAJAIAJBgICAgARJDQAQrAEACyABIABr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IANBBGohAQwBCyACQQxqIAAoAgAiBSAEIAMgBWtBAnVBAWoQhgkgACgCBCAAKAIAa0ECdSAAQQhqEIcJIgMoAgggASgCADYCACADIAMoAghBBGo2AgggACADEIgJIAAoAgQhASADEIkJGgsgACABNgIEIAJBIGokAAspAQF/IwBBEGsiASQAIAEgADYCDCABQQxqQQQQlAshACABQRBqJAAgAAsfAQF/IAAoAgAhAiAAIAE2AgACQCACRQ0AIAIQpAELCyEBAX8gACgCACEBIABBADYCAAJAIAFFDQAgARCkAQsgAAspAQF/IwBBEGsiASQAIAEgADYCDCABQQxqQQQQlAshACABQRBqJAAgAAsfAQF/IAAoAgAhAiAAIAE2AgACQCACRQ0AIAIQpAELCzgAAkAgAkGAgICABEkNABCsAQALIAEgAGsiAUEBdSIAIAIgACACSxtB/////wMgAUH8////B0kbC08AIAAgAzYCEEEAIQMgAEEANgIMAkAgAUUNACABEJMLIQMLIAAgAzYCACAAIAMgAkECdGoiAjYCCCAAIAMgAUECdGo2AgwgACACNgIEIAALkwEBA38gASgCBCECIAAoAgAhAyAAKAIEIQQCQANAIAQgA0YNASACQXxqIgIgBEF8aiIEKAIANgIADAALAAsgASACNgIEIAAoAgAhBCAAIAI2AgAgASAENgIEIAAoAgQhBCAAIAEoAgg2AgQgASAENgIIIAAoAgghBCAAIAEoAgw2AgggASAENgIMIAEgASgCBDYCAAtCAQJ/IAAoAgghASAAKAIEIQICQANAIAEgAkYNASAAIAFBfGoiATYCCAwACwALAkAgACgCACIBRQ0AIAEQpAELIAALRgECfyAAKAIIIQECQANAIAFFDQEgASgCACECIAEQpAEgAiEBDAALAAsgACgCACEBIABBADYCAAJAIAFFDQAgARCkAQsgAAscAAJAIABBgICAgARJDQAQqAcACyAAQQJ0EKYBC6QBAQJ/IAEhAgJAA0AgAkEESQ0BIAAoAABBldPH3gVsIgNBGHYgA3NBldPH3gVsIAFBldPH3gVscyEBIAJBfGohAiAAQQRqIQAMAAsACwJAAkACQAJAIAIOBAMCAQADCyAALQACQRB0IAFzIQELIAAtAAFBCHQgAXMhAQsgASAALQAAc0GV08feBWwhAQsg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IQwLIAwgBEYNAQsgC0EANgIAC0EAIQwCQCAJKAIAIghFDQAgCCgCBCELAkACQCAGQQFLDQAgCyAKcSELDAELIAsgBUkNACALIAVwIQsLIAghDCALIARGDQAgACgCnA0gC0ECdGogBzYCACAJKAIAIQwLIAcgDDYCACAJQQA2AgAgACADQX9qNgKoDSACQQE6AAwgAiANNgIIIAIgCTYCBCACQQRqEIsLGgsgASAARw0AIAAoAsQNIglFDQAgCSAJKAIAKAIgEQAAIglFDQAgCSABEKQLCyACQRBqJAALkgIBBH8gAEEBIAAoAgAoApgDEQMAIABBABCRCSAAQQA6AMENAkAgAC0AiA1BAUcNACAAKALUDCEBIAAoAtAMIQIDQCACIAFGDQEgAigCACAAEKYLIAJBBGohAgwACwALIAAQowshAwJAAkACQCAALQCIDQ0AIAAoAtQMIQQgACgC0AwhAgNAAkAgAiAERw0AIABBASAAKAIAKAKYAxEDAEEAIQIgABCjCyADckEBcQ0DDAQLAkAgAigCACIBKAKgAUUNACAAQQEgACgCACgCmAMRAwAgABCjCyADciEDCyABIAAQpgsgAkEEaiECDAALAAtBACECIANFDQELQQEhAiAAQQEgACgCACgCmAMRAwALIAILygECAX8BfQJAIAAoApgBIgJFDQAgAiABIAIQiiMgACoCNCIDjCADIAAoAlxBAXEbQwAAgD+SQwAAAD+UlEMAAIA/QQAQsQMLAkAgACgCnAEiAkUNACACIAEgAhCKIyAAKgI4IgOMIAMgACgCXEECcRtDAACAP5JDAAAAP5SUQwAAgD9BABCxAwsgACgCqAEhAiAAKAKkASEAA0ACQCAAIAJHDQAPCyAAKAIAIgFDAAAAAEEAIAEoAgAoAlARFAAaIABBBGohAAwACwALYQEEfyAAKAL4DCEDIAAoAvQMIQRBACEFA38CQCAEIANHDQAgACgC5AogACgC6AogARCoCyAFckEBcQ8LIAQoAgAiBiABIAIgBigCACgCABEUACAFciEFIARBBGohBAwACwtrAQR/QQAhAwJAIAEgAEYNAANAIAAgAUYNAUEAIQQCQCAAKAIAIgUoAjgiBkUNACAFKAIwRQ0AIAUtACBBAXENACAGIAIgBigCACgCRBEaACEECyAAQQRqIQAgBCADciEDDAAL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QAJAIAFFDQAgACgC2A0gASgC2A0gASABLQCYDRtHDQBBASECDAILQQAhAiAAKALEDSIDRQ0BIAMgAygCACgCIBEAAEUNASAAKALEDSIAIAAoAgAoAiARAAAhAAwACwALIAILfQAgAEGIshI2AuAKIABB/LESNgLcCiAAQfCxEjYC2AogAEHcsRI2AtQKIABBsLESNgKEAiAAQZyxEjYCgAIgAEGQsRI2AvwBIABB6LASNgLoASAAQdiwEjYC5AEgAEHEsBI2AmggAEGArRI2AgAgAEHgDWoQhAYaIAAQ1QgLCgAgABDQCxCkAQsLACAAQZh+ahDQCwsLACAAQZh+ahDRCwsLACAAQYB+ahDQCwsLACAAQYB+ahDRCwsLACAAQax1ahDQCwsLACAAQax1ahDRCwtDAQJ/QQAhAgJAIAAoAvQLIAAoAvALIgNrQQJ1IAFNDQAgAyABQQJ0aigCACIBRQ0AQYAEEKYBIAEgABC6BiECCyACCxYBAX9B4A0QpgEQ0wgiASAAENoLIAELOQAgACABKgLECjgCxAogACABKgLICjgCyAogACABKALMCjYCzAogACABKALQCjYC0AogACABENsLC1EAIAAgAS0AzQE6AM0BIAAgASoC0AE4AtABIAAgASoC1AE4AtQBIAAgASgC2AE2AtgBIAAgASoC3AE4AtwBIAAgASoC4AE4AuABIAAgARDcCwshACAAIAEoArQBNgK0ASAAIAEoArgBNgK4ASAAIAEQ3QsLIQAgACABKgKQATgCkAEgACABKgKUATgClAEgACABEN4LCzEAIAAgASoCXDgCXCAAIAEqAmA4AmAgACABKgJkOAJkIAAgASoCQDgCQCAAIAEQ3wsLGQAgAEEMaiABQQxqEOgFIAAgASgCGDYCGAsIACAAQcQAagtCAQR9IAEqAqQCIQIgASoCqAIhAyABKgJUIQQgACABKgJYIgU4AgQgACAEOAIAIAAgBSADkjgCDCAAIAQgApI4AggLBABBAAsIACAAQdx+agsEAEEAC4YEACAAEJoKIgBBADYCiAIgAEIANwKAAiAAQQA2AvABIABCADcC6AEgAEEANgLYASAAQX82AtABIABBlLoSNgL8ASAAQeC5EjYC+AEgAEHUuRI2AvQBIABBqLkSNgLkASAAQZy5EjYC4AEgAEGQuRI2AtwBIABBvLgSNgLUASAAQai4EjYCaCAAQdi0EjYCACAAQYwCakEAQSgQSBogAEIANwK4AiAAQYCAgPwDNgK0AiAAQcACakIANwIAIABCADcCzAIgAEGAgID8AzYCyAIgAEHUAmpCADcCACAAQgA3AuACIABBgICA/AM2AtwCIABB6AJqQgA3AgAgAEIANwL0AiAAQYCAgPwDNgLwAiAAQfwCakIANwIAIABCADcCiAMgAEGAgID8AzYChAMgAEGQA2pCADcCACAAQYCAgPwDNgKYAyAAQgA3ApwDIABBpANqQgA3AgAgAEGAgID8AzYCrAMgAEGwA2pBAEEoEEgaIABCADcC6AMgAEJ/NwLgAyAAQfADakIANwIAIABCADcC/AMgAEGAgID8AzYC+AMgAEGEBGpCADcCACAAQgA3ApAEIABBgICA/AM2AowEIABBmARqQgA3AgAgAEGfBGpBADYAACAAQgA3AqQEIABBrARqQgA3AgAgAEG0BGpCADcCACAAQbwEakKAgICAgICAwD83AgAgAAu4BQEDfyAAQZS6EjYC/AEgAEHguRI2AvgBIABB1LkSNgL0ASAAQai5EjYC5AEgAEGcuRI2AuABIABBkLkSNgLcASAAQby4EjYC1AEgAEGouBI2AmggAEHYtBI2AgAgABDnCyAAKAK4BBDoCyAAKAKwBCEBIABBADYCsAQCQCABRQ0AIAEQpAELIABBpARqELIGGiAAQZQEahCsBxogAEGQBGoQqQYaIABB/ANqEOkLGiAAKALwAxDqCyAAKALoAyEBIABBADYC6AMCQCABRQ0AIAEQpAELIABBzANqEOsLGgJAIAAoArwDIgFFDQAgACABNgLAAyABEKQBCyAAQeQBaiECIABBsANqEOwLGiAAKAKkAyEBAkADQCABRQ0BIAEoAgAhAyABEKQBIAMhAQwACwALIAAoApwDIQEgAEEANgKcAwJAIAFFDQAgARCkAQsgACgCkAMhAQJAA0AgAUUNASABKAIAIQMgAUEMahDtCxogARCkASADIQEMAAsACyAAKAKIAyEBIABBADYCiAMCQCABRQ0AIAEQpAELIAAoAvwCEO4LIAAoAvQCIQEgAEEANgL0AgJAIAFFDQAgARCkAQsgACgC6AIQ7wsgACgC4AIhASAAQQA2AuACAkAgAUUNACABEKQBCyAAKALUAhDwCyAAKALMAiEBIABBADYCzAICQCABRQ0AIAEQpAELIAAoAsACEPELIAAoArgCIQEgAEEANgK4AgJAIAFFDQAgARCkAQsgACgCrAIQ8gsgACgCpAIhASAAQQA2AqQCAkAgAUUNACABEKQBCyAAQZgCahCBBxogAEGMAmoQgQcaIABBpLoSNgL8AQJAIAAoAoACIgFFDQAgACABNgKEAiABEKQBCyACEPMLGgJAIAAoAtgBIgFFDQAgASABKAIAKAIEEQEACyAAEJwKC6IGAQN/IABBwAJqIgEhAgJAA0ACQCACKAIAIgINACAAQbAEahCmDCAAQQA6AKIEIAEhAgNAAkAgAigCACICDQAgABC2CyAAQZQEahCtByAAQdQCaiECA0ACQCACKAIAIgINAANAAkAgASgCACIBDQAgACgC2AJFDQggACgC1AIQ8AsgAEEANgLUAiAAKALQAiECQQAhAQNAAkAgASACRw0AIABBADYC2AIMCgsgACgCzAIgAUECdGpBADYCACABQQFqIQEMAAsACyABKAIMIQIgAUEANgIMIAJFDQAgAiACKAIAKAIEEQEADAALAAsgAigCDCEDIAJBADYCDCADRQ0AIAMgAygCACgCBBEBAAwACwALIAIoAgwiA0UNACADEK4LDAALAAsgAigCDCIDRQ0AIAMQvwsMAAsACyAAIAAoArADNgK0AyAAIAAoArwDNgLAAwJAIAAoAsQCRQ0AIAAoAsACEPELIABBADYCwAIgACgCvAIhAkEAIQEDQAJAIAEgAkcNACAAQQA2AsQCDAILIAAoArgCIAFBAnRqQQA2AgAgAUEBaiEBDAALAAsgAEGMAmoQngwCQCAAKAKwAkUNACAAKAKsAhDyCyAAQQA2AqwCIAAoAqgCIQJBACEBA0ACQCABIAJHDQAgAEEANgKwAgwCCyAAKAKkAiABQQJ0akEANgIAIAFBAWohAQwACwALAkAgACgC7AJFDQAgACgC6AIQ7wsgAEEANgLoAiAAKALkAiECQQAhAQNAAkAgASACRw0AIABBADYC7AIMAgsgACgC4AIgAUECdGpBADYCACABQQFqIQEMAAsACwJAIAAoAoADRQ0AIAAoAvwCEO4LIABBADYC/AIgACgC+AIhAkEAIQEDQAJAIAEgAkcNACAAQQA2AoADDAILIAAoAvQCIAFBAnRqQQA2AgAgAUEBaiEBDAALAAsCQCAAKAL0A0UNACAAKALwAxDqCyAAQQA2AvADIAAoAuwDIQJBACEBA0ACQCABIAJHDQAgAEEANgL0AwwCCyAAKALoAyABQQJ0akEANgIAIAFBAWohAQwACwALCysBAX8CQANAIABFDQEgACgCACEBIABBCGoQlw0aIAAQpAEgASEADAALAAsLRgECfyAAKAIIIQECQANAIAFFDQEgASgCACECIAEQpAEgAiEBDAALAAsgACgCACEBIABBADYCAAJAIAFFDQAgARCkAQsgAAsiAQF/AkADQCAARQ0BIAAoAgAhASAAEKQBIAEhAAwACwALCx8BAX8CQCAAKAIAIgFFDQAgACABNgIEIAEQpAELIAALHwEBfwJAIAAoAgAiAUUNACAAIAE2AgQgARCkAQsgAAsLACAAQQAQxA0gAAsrAQF/AkADQCAARQ0BIAAoAgAhASAAQQxqEJENGiAAEKQBIAEhAAwACwALCysBAX8CQANAIABFDQEgACgCACEBIABBDGoQkw0aIAAQpAEgASEADAALAAsLKwEBfwJAA0AgAEUNASAAKAIAIQEgAEEIahCWDRogABCkASABIQAMAAsACwsrAQF/AkADQCAARQ0BIAAoAgAhASAAQQhqEJUNGiAAEKQBIAEhAAwACwALCyIBAX8CQANAIABFDQEgACgCACEBIAAQpAEgASEADAALAAsLKAEBfyAAQajkEzYCAAJAIAAoAgQiAUUNACAAIAE2AgggARCkAQsgAAsKACAAEOYLEKQBCwUAQa8EC0ABAX8CQAJAIAFBdmoiAkEcSw0AQQEgAnRBi4CAgAFxDQELIAFBAkYNACABQdsARg0AIAFBrwRGDQBBAA8LQQELJAACQCABQaAGRw0AIAAgAhCiCjYC0AFBAQ8LIAAgASACEKEKCycBAX8gABD5CyIBIAAgACgCACgCjAMRAAAgASgCACgCiAMRAwAgAQsiAQF/QcQEEKYBEOULIgEgACgC0AE2AtABIAEgABDcCyABC1gBA38CQCAAIAEQ+wsiAkUNAEEAIQMDQCADIAAgACgCACgCoAIRAABPDQECQCAAIAMgACgCACgCpAIRAgAiBEUNACAEIAEQxQsLIANBAWohAwwACwALIAILfAEDfwJAIAAgARCHDyICRQ0AIAAoAhwQ3REiACgCBCEDIAAoAgAh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ATYC4AMLsQECAX8EfSMAQRBrIgMkACADIAAgASAAKAIAKAKkAhECACIBNgIMAkAgAUUNAAJAAkAgABCCDA0AQwAAAAAhBEMAAAAAIQUMAQsgAyABEKoLIAMqAgQhBCADKgIAIQULIAIqAgQhBiACKgIAIQcgAEGcA2ogA0EMahCDDCIAIAYgBJM4AhQgACAHIAWTOAIQIABCgICAgICAgMA/NwIIIABCgICA/AM3AgALIANBEGokAAstAAJAAkAgACgC6AEgACgC7AEQ2wwiAA0AQQAhAAwBCyAALQBUIQALIABBAXELTwECfwNAAkAgACABRw0AQQAPCyAAKAIAIQIgAEEEaiEAIAIgAigCACgCCBEAACIDQYkEIAMoAgAoAgwRAgBFDQALIAIgAigCACgCCBEAAAsSACAAKAKQAiAAKAKMAmtBAnULHQAgACABIAAoAgAoAqQCEQIAIgBB2ApqQQAgABsLLAACQCAAKALQAyAAKALMAyIAa0EDdSACTQ0AIAAgAkEDdGogASkCADcCAAsLDQAgACABKQLYAzcCAAs2AQF+QgAhAwJAIAEoAtADIAEoAswDIgFrQQN1IAJNDQAgASACQQN0aikCACEDCyAAIAM3AgALCAAgAEHEAGoL/wIBC38jAEEQayICJAAgAEGcA2ohAyAAKAKQAiAAKAKMAmtBAnUhBEEAIQUCQAJAAkADQCAFIARGDQEgAiAAIAUgACgCACgCpAIRAgAiBjYCDAJAIAZFDQAgAyACQQxqEIMMIQcCQAJAIAEoAgQiBiABKAIIIghPDQAgBiAHNgIAIAZBBGohBgwBCyAGIAEoAgAiCWtBAnUiCkEBaiILQYCAgIAETw0EAkACQCAIIAlrIghBAXUiDCALIAwgC0sbQf////8DIAhB/P///wdJGyIIDQBBACELDAELIAhBgICAgARPDQYgCEECdBCmASELCyALIApBAnRqIgogBzYCACAKIQcCQANAIAYgCUYNASAHQXxqIgcgBkF8aiIGKAIANgIADAALAAsgASAKQQRqIgY2AgQgASgCACEJIAEgBzYCACABIAsgCEECdGo2AgggCUUNACAJEKQBCyABIAY2AgQLIAVBAWohBQwACwALIAJBEGokAA8LEKwBAAsQqAcACw8AIAAgACgCACgCCBEAAAsQACAAKAI8IAAoAjhrQQJ1Cw0AIABBrH5qIAEQjAwLDQAgAEGsfmogARC2DAsCAAsCAAsLACAAQax+ahDnCwsLACAAQax+ahC8DAsNACAAQax+aiABEJgMCwsAIABB1H5qKAIACxEAIABBrH5qIAEgAiADEL4MCxEAIAAgAUGsfmogAiADEMAMCw8AIAAgAUGsfmogAhDBDAsLACAAQax+ahCpCQsEAEEBCwoAIAAgATYC9AELCAAgACgC9AELCAAgAEGsfmoLAgALFQAgAEGsfmoiACAAKAIAKAIIEQAACw8AIABBpH5qIAEgAhCPDAsLACAAQaB+ahCSDAsNACAAQZx+aiABEIoMCwgAIABBnH5qCxQAIAAgASkC9AE3AgggAEIANwIACw8AIAAgAUGcfmogAhCVDAsLACAAQZx+ahDEDAsNACAAQZx+aiABEMUMCw0AIABBnH5qQQAQxwwLEAAgACgCLCAAKAIoa0ECdQsWACAAQZx+aiABIAIgAyAEEMYMGkEACw0AIABBjH5qIAEQmwwLCwAgAEGIfmoQ2gwLEAAgACgCGCAAKAIUa0ECdQsjACAAQYh+aiIAIAEgACgCACgCpAIRAgAiAEHYCmpBACAAGwsNACAAIAEpAuABNwIACzYBAX5CACEDAkAgASgC2AEgASgC1AEiAWtBA3UgAk0NACABIAJBA3RqKQIAIQMLIAAgAzcCAAssAAJAIAAoAtgBIAAoAtQBIgBrQQN1IAJNDQAgACACQQN0aiABKQIANwIACwsNACAAQYh+aiABEMwMCwsAIABBiH5qENMMCw0AIABBiH5qIAEQ1AwLGgAgAEEAOgCqAiAAIAI2AuwBIAAgATYC6AELLgEBfyMAQRBrIgMkACADIAIpAgA3AwggAEGIfmogASADQQhqENkMIANBEGokAAsIACAAQch+agsNACAAQYR+aiABEOIMCywBAX8gACgCBCECAkADQCACIAFGDQEgAkF8ahCUDSECDAALAAsgACABNgIECyIBAX8CQCAAKAIAIgFFDQAgACABEJINIAAoAgAQpAELIAALLAEBfyAAKAIEIQICQANAIAIgAUYNASACQXxqENcMIQIMAAsACyAAIAE2AgQLIgEBfwJAIAAoAgAiAUUNACAAIAEQ0QwgACgCABCkAQsgAAsMACAAKAIAEPcGIAALEAAgAEEEahCJBxogABCUDQsQACAA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QQE2ArAKIAFBADoAtgogAUEAIAEoAgAoAvACEQMAAkAgACgCACIDKgI8IgRDAACAv1wNACABKgK8DSEECyADKAJEIQMgASACOgC0CiABIAM2ArAKIAEgBDgCrAoMAgsgAUEBNgKwCiABQQA6ALYKIAFBACABKAIAKALwAhEDAAJAIAAoAgAqAjwiBEMAAIC/XA0AIAEqArwNIQQLIAEgAjoAtAogAUEDNgKwCiABIAQ4AqwKDAELIAMoAkhBAkcNASABQQM2ArAKIAFBAToAtgoLIAFBACABKAIAKALwAhEDAAsgACgCACABEIIOCwtyAQV/IAAoAgQhASAAKAIAIQJBACEDQQAhBAJAAkADQCACIAFPDQEgAiwAACIFQf8AcSADQf8BcSIDdCAEciEEIAJBAWohAiADQQdqIQMgBUF/TA0ACyACIQEMAQsgAEEBOgAIQQAhBAsgACABNgIAIAQLRwICfwF9AkACQCAAKAIEIgEgACgCACICa0EDSw0AIABBAToACEMAAAAAIQMMAQsgAkEEaiEBIAIqAAAhAwsgACABNgIAIAML9FMAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAFBeWoOygGWAZcBHh+aAZsBHh8bHB0a3QGC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ACgCpAERAQAgAEEIaigCAEH7BRClBg8LIAAqAlggAlsNywEgACACOAJYIAAgACgCACgCwAERAQAgAEEIaigCAEH+BhClBg8LIAAgACgCACgCgAERCwAgAlsNygEgACACIAAoAgAoAnwRDQAgACAAKAIAKALEAREBACAAQQhqKAIAQf8HEKUGDwsgACAAKAIAKAKIARELACACWw3JASAAIAIgACgCACgChAERDQAgACAAKAIAKALIAREBACAAQQhqKAIAQYAIEKUGDwsgACoCXCACWw3IASAAIAI4AlwgACAAKAIAKALQAREBACAAQQhqKAIAQYUIEKUGDwsgACoCWCACWw3HASAAIAI4AlggACAAKAIAKAKEAREBACAAQQhqKAIAQdgFEKUGDwsgACoCXCACWw3GASAAIAI4AlwgACAAKAIAKAKIAREBACAAQQhqKAIAQdkFEKUGDwsgACoCYCACWw3FASAAIAI4AmAgACAAKAIAKAKMAREBACAAQQhqKAIAQdoFEKUGDwsgACoCSCACWw3EASAAIAI4AkggACAAKAIAKAJkEQEAIABBCGooAgBB9AIQpQYPCyAAKgJMIAJbDcMBIAAgAjgCTCAAIAAoAgAoAmgRAQAgAEEIaigCAEH1AhClBg8LIAAgAhD+Cw8LIAAgAhD1Ag8LIAAgAhDwAg8LIAAgAhDzAg8LIAAgAhCBAw8LIAAgAhCDAw8LIAAgACgCACgCgAERCwAgAlsNvAEgACACIAAoAgAoAnwRDQAgACAAKAIAKALEAREBACAAQQhqKAIAQaYGEKUGDwsgACAAKAIAKAKIARELACACWw27ASAAIAIgACgCACgChAERDQAgACAAKAIAKALIAREBACAAQQhqKAIAQacGEKUGDwsgACAAKAIAKAKQARELACACWw26ASAAIAIgACgCACgCjAERDQAgACAAKAIAKALMAREBACAAQQhqKAIAQagGEKUGDwsgACAAKAIAKAKYARELACACWw25ASAAIAIgACgCACgClAERDQAgACAAKAIAKALQAREBACAAQQhqKAIAQakGEKUGDwsgACAAKAIAKAKgARELACACWw24ASAAIAIgACgCACgCnAERDQAgACAAKAIAKALUAREBACAAQQhqKAIAQeAGEKUGDwsgACAAKAIAKAKoARELACACWw23ASAAIAIgACgC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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAFB6HtqDuYBYIUBxwH2AfYB9gH2AfYB9gH2AfYB9gH2AQEC9gH2AfYBBvYB9gH2AfYB9gEI9gH2AfYB9gEMDfYB9gH2AfYB9gH2AfYBB/YB9gER9gH2AfYB9gH2AaUB9gH2AbEBsgH2ATU2MPYB9gH2AfYBNzg5Ojs8PT4/QPYBQUJDREVGR0hJSktMTU5PUFFSU1RVVldYZjT2AfYB9gH2AcYB9gH2AfYB9gH2AfYB9gH2AfYB9gH2AfYBe/YB9gF+9gEyM/YB9gH2AbMB9gH2AfYB9gEqKywtvQH2AfYBLi/2AfYB9gF19gG8AfYB9gG2Ad4B9gHfAbABD/YBYvYB9gH2AfYB9gH2AfYB9gH2AfYB9gH2AfYB9gH2ATH2AfYBCgv2AfYB9gG3AbgBuQH2AfYB9gH2AfYB9gEd9gH2ASAfHvYB9gH2ARz2AfYB9gH2AfYB9gH2AfYB9gH2AfYBvgH2Ab8BwAGTAZcB9gH2AfYB9gH2AfYB9gH2AboBuwH2AfYB9gH2AfYBwwHEAQALAkAgAUGkf2oOJpwBnQH2AcoB9gH2AfYB9gH2AfYByAHJAfYB9gH2AfYB9gH2AcsBzAHNAc4B9gH2AfYBmAH2ARQVogF29gH2AZ4B9gH2AZoBIgALAkAgAUHIeGoOJX32AfYB9gGhAQT2AfYB9gH2AZEB9gH2AZABDvYB9gH2AfYB8QHyAfMBoAH2AfYBjQGOAfYBXvYBqwH2AfYB9gGsAa0BrgEACwJAIAFB635qDiBp9gF/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QQhqKAIAQY8FEKUGDwsgAC0AqgEgAkH/AXFGDcIBIAAgAjoAqgEgACAAKAIAKALEAREBACAAQQhqKAIAQZAFEKUGDwsgAC0AqwEgAkH/AXFGDcEBIAAgAjoAqwEgACAAKAIAKALIAREBACAAQQhqKAIAQfgEEKUGDwsgAC0ArAEgAkH/AXFGDcABIAAgAjoArAEgACAAKAIAKALMAREBACAAQQhqKAIAQc0EEKUGDwsgAC0ArQEgAkH/AXFGDb8BIAAgAjoArQEgACAAKAIAKALQAREBACAAQQhqKAIAQc4EEKUGDwsgAC0ArgEgAkH/AXFGDb4BIAAgAjoArgEgACAAKAIAKALUAREBACAAQQhqKAIAQdQEEKUGDwsgAC0ArwEgAkH/AXFGDb0BIAAgAjoArwEgACAAKAIAKALYAREBACAAQQhqKAIAQdUEEKUGDwsgAC0AsAEgAkH/AXFGDbwBIAAgAjoAsAEgACAAKAIAKALcAREBACAAQQhqKAIAQdYEEKUGDwsgAC0AsQEgAkH/AXFGDbsBIAAgAjoAsQEgACAAKAIAKALgAREBACAAQQhqKAIAQdcEEKUGDwsgAC0AsgEgAkH/AXFGDboBIAAgAjoAsgEgACAAKAIAKALkAREBACAAQQhqKAIAQdgEEKUGDwsgAC0AswEgAkH/AXFGDbkBIAAgAjoAswEgACAAKAIAKALoAREBACAAQQhqKAIAQdkEEKUGDwsgAC0AtAEgAkH/AXFGDbgBIAAgAjoAtAEgACAAKAIAKALsAREBACAAQQhqKAIAQdoEEKUGDwsgAC0AtQEgAkH/AXFGDbcBIAAgAjoAtQEgACAAKAIAKALwAREBACAAQQhqKAIAQdsEEKUGDwsgAC0AtgEgAkH/AXFGDbYBIAAgAjoAtgEgACAAKAIAKAL0AREBACAAQQhqKAIAQdwEEKUGDwsgAC0AtwEgAkH/AXFGDbUBIAAgAjoAtwEgACAAKAIAKAL4AREBACAAQQhqKAIAQd0EEKUGDwsgAC0AuQEgAkH/AXFGDbQBIAAgAjoAuQEgACAAKAIAKAKAAhEBACAAQQhqKAIAQd8EEKUGDwsgAC0AugEgAkH/AXFGDbMBIAAgAjoAugEgACAAKAIAKAKEAhEBACAAQQhqKAIAQeAEEKUGDwsgAC0AuwEgAkH/AXFGDbIBIAAgAjoA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KQIANwMAIAQgACkCRDcDMCAEIAQpAkg3AhAgBEKAgICAgICAwD83AgggBEKAgID8AzcCACAEQRhqIARBMGogBBD+BSAEQRBqQQApA7CfFTcDACAEQQhqQQApA6ifFTcDACAEQQApA6CfFTcDACAEQRhqIAQQ/QUiAEUNACAEKgIQIQUgBCoCCCEGIAQqAgAhByACIAQqAhQgBCoCBCABp74iCJQgBCoCDCABQiCIp74iCZSSkjgCBCACIAUgByAIlCAGIAmUkpI4AgALIARB0ABqJAAgAAuiBAIIfwF9QQIhAgJAIAFBAUYNAAJAIAEgAUF/anENACABIQIMAQsgARD7CCECCwJAAkACQCACIAAoAgQiAUsNACACIAFPDQIgAUEDSSEDAkACQCAAKAIMsyAAKgIQlY0iCkMAAIBPXSAKQwAAAABgcUUNACAKqSEEDAELQQAhBAsCQAJAIAMNACABaUEBSw0AIARBAUEgIARBf2pna3QgBEECSRshBAwBCyAEEPsIIQQLIAIgBCACIARLGyICIAFPDQIgAkUNAQsCQCACQYCAgIAETw0AIAAgAkECdBCmARD/DSAAIAI2AgRBACEBA0ACQCABIAJHDQAgACgCCCIFRQ0EIABBCGohASAFKAIEIQYCQAJAIAJpIgRBAUsNACAGIAJBf2pxIQYMAQsgBiACSQ0AIAYgAnAhBgsgACgCACAGQQJ0aiABNgIAIAJBf2ohByAEQQFLIQgDQCAFKAIAIgRFDQUgBCgCBCEBAkACQCAIDQAgASAHcSEBDAELIAEgAkkNACABIAJwIQELAkAgASAGRg0AAkAgACgCACABQQJ0IgNqIgkoAgANACAJIAU2AgAgASEGDAELIAUgBCgCADYCACAEIAAoAgAgA2ooAgAoAgA2AgAgACgCACADaigCACAENgIADAELIAQhBQwACwALIAAoAgAgAUECdGpBADYCACABQQFqIQEMAAsACxCoBwALIABBABD/DSAAQQA2AgQLCx8BAX8gACgCACECIAAgATYCAAJAIAJFDQAgAhCkAQsLIQEBfyAAKAIAIQEgAEEANgIAAkAgAUUNACABEKQBCyAACy8BAn9BASEBAkAgACgCICICQa8EIAIoAgAoAgwRAgBFDQAgACgCIBCXDCEBCyABCyABAX8CQCAAKAIoIgJFDQAgAiABEPkKIAAoAigQ0gwLCzwBAn8gAEHcAGohASAAKAJUIQIgACgCUCEAA0ACQCAAIAJHDQAPCyABIAAoAgAQyQ0gAEEEaiEADAALAAs8AQJ/IABB3ABqIQEgACgCVCECIAAoAlAhAANAAkAgACACRw0ADwsgASAAKAIAEMoNIABBBGohAAwACwALBwAgABCDDgsHACAAEIQOCwcAIAAQgw4LBwAgABCEDgsHACAAEIMOCwcAIAAQhA4LGgAgAEHk4BI2AgAgAEHQAGoQ7AsaIAAQwwoLCgAgABCLDhCkAQsFAEHeBAsOACABQd4ERiABQQpGcguPAQACQAJAAkACQAJAAkACQAJAIAFBqHlqDggDBwABAgQFBgcLIAAgAhCiCjYCNEEBDwsgACACELsKOAI4QQEPCyAAIAIQuwo4AjxBAQ8LIAAgAhCiCjYCQEEBDwsgACACEKIKNgJEQQEPCyAAIAIQogo2AkhBAQ8LIAAgAhCiCjYCTEEBDwsgACABIAIQvgoLAgALYwEBf0HgABCmAUEAQeAAEEgQkg4iASAAKAI0NgI0IAEgACoCODgCOCABIAAqAjw4AjwgASAAKAJANgJAIAEgACgCRDYCRCABIAAoAkg2AkggASAAKAJMNgJMIAEgABDfCyABC1AAIAAQ1QoiAEEANgJMIABCATcCRCAAQoCAgPwbNwI8IABC/////4+AgMC/fzcCNCAAQQA2AlggAEIANwJQIABB5OASNgIAIAAgADYCXCAAC14BAn8jAEEQayICJAAgACAAKAIAQQFqNgIAIAAoAtAKIQMQ1wggA0EoaiAAENgIIAAgACgCAEEBajYCACACIAA2AgwgAyACQQxqENkIIAAQ2gggABDcCCACQRBqJAAL0wYCBX8BfiMAQeAAayIEJAAgAUEoaiEFENcIIAEoAiwhBiABKAIoIQcCQAJAAkACQAJAAkACQANAAkAgByAGRw0AIAUQ5gpB2AoQpgEhCAJAIAIoAgAiB0UNACAHIAcoAgBBAWo2AgALIAhBATYCAEEAIQUgCEEIakEAQbgKEEghBiAIIAM2AtQKIAggATYC0AogCEIANwPICiAIQQA6AMQKIAggBzYCwApBABDwBSACKAIAIgctAAQNAkEAIQMgASgCCCICRQ0FIAIoAowCDQNBACEFDAQLAkAgBygCACIIRQ0AIAggCCgCAEEBajYCAAsgCBDkCiAIENoIIAdBBGohBwwACwALIAcoAiAhAyAHKAIcIQYgBxCVDiEHIAIoAgAQlQ4hAiAEQQhqQQBBKBBIGiAEQfsENgIoIARB/AQ2AiQgBEH9BDYCICAEIAY2AhggBCADQQJ2IgUgB26tIgk3AxAgBCACNgIEIARBBTYCACAIQfADakEAQfcAEEghAwJAAkAgByAFTQ0AQY2HEkE3QQFBsMwdEE0aDAELIAhB9ANqQQBB3AAQSBogCEEANgKwBCAIIAI2AqwEIAhBBTYCqAQgCCADNgKYBCAIQn83A5AEIAhCfzcDgAQgCEGgyR02AvADIAhB0ARqIARBHGoQmQ4aIAhBADYC4AQgCCAGNgLIBCAIIAk3A8AEIAhCADcDuAQgASgCCCADIAhB6ARqEJoORQ0ECyAAQQA2AgAMBQsgAigClAItAAUhBQsgAigCoAQhAwsgBEEMakEAQdAAEEgaIARBIGpCADcCACAEQShqQgA3AgAgBEEwakKAgICAwAA3AgAgBEIANwIYIAQgAzYCCCAEIAU2AgQgBEEFNgIAAkAgBygCFCAHKAIYIAQgCEHAAGoQmw5FDQBBxYcSQTJBAUGwzB0QTRogAEEANgIADAMLIAhCfzcD6AMgCEIANwPgAyAIQQxqQQBBNBBIGiAIIAY2AjAgCEJ/NwMoIAhCfzcDGCAIQcTAHTYCCCABKAIIIAYgCEHoBGoQmg4NAQsCQCAIKAKgCkUNACAIQf4ENgK0CiAIIAg2ArgKCyAAIAg2AgBBACEIDAELIABBADYCAAsgCBDcCCAEQeAAaiQAC0QBA38jAEGgA2siASQAAkAgACgCCCICDQAgACABIAAoAhQgACgCGBC2DiIDKAJkIgI2AgggAxCxDgsgAUGgA2okACACCwYAIAAQYAsIACAAIAEQYQsGACAAEF4LtQEBAn9BfiECAkACQCAARQ0AAkAgAQ0AIABB+wQ2AgwgAEH8BDYCCCAAQf0ENgIEDAILIAEoAgwhAwJAAkAgASgCAA0AIAMNASABKAIEDQIgASgCCA0CIABB+wQ2AgwgAEH8BDYCCCAAQf0ENgIEDAMLIANFDQELAkAgASgCBA0AIAEoAghFDQELIAAgASkCADcCACAAQQhqIAFBCGopAgA3AgBBACECCyACDwsgAEEANgIAQQALsRECC38LfSMAQfABayIDJAACQAJAIAANAEEAIQQMAQsgACgC4AchBAtBfiEFAkAgAkUNACACQQBB2AUQSCICQn83A8AFIABFDQAgAkEANgLQBSACIAE2ArgFIANBgQI2AiAgAyABRTYCCCADIAQ2AhwgA0IANwIUIANCADcCDCADIAA2AgQgAyAAKALcBzYCGAJAIAFFDQAgAUEAIANBDGogA0EUakEAQQAQ/DAiBQ0BAkAgAygCDCIFDQBBfSEFDAILIAMoAhBBf0cNACADIAU2AhALIANBBGogA0E4ahCvSiIFDQAgAEG4B2ohBEEAIQECQCADKAI4IgVFDQAgBSAEEK0OIgENAEF8IQUMAQsgA0GLGDsBJiACQQBBuAUQSCECAkACQCADQQRqIANBuAFqEK9KIgUNAAJAIAMtACIiBkH/AUYNAEF+IQUgAygCBCIHRQ0BIAcoAqQEIAZNDQELIAIgATYCtAUCQCABRQ0AIAMoArgBIgVFDQAgAUEAIAUQSBoLIAIgAygCBCIFNgKAAgJAIAMoAhQiBg0AAkAgBQ0AQQAhBgwBCyAFKAKgBCEGCyACIAY2AoQCIAIgAygCGDYCiAIgAygCHCEHIAJBgICA/AM2AvgEIAIgBzYCjAIgAkGAgID8AzYChAUgAkKAgID8g4CAwD83AvwEIAIgAy0AIDYCiAUgAiADLQAhNgKMBSADLQAiIQcgAkGAgID8AzYCmAUgAiAHNgKQBSACQn83A6gFIAJCfzcDoAUgAkGAgID8AzYCnAUCQCADKAIMIgcNAEEAIQcgBUUNACAFKAKMAkUNACAFKAKUAi0ABSEHCyADIAc2AiwCQAJAAkAgAygCECIHDQACQCAFDQBBACEHIANBADYCKAwDCwJAAkAgBSgCjAINAEEAIQcMAQsgBSgClAItAAUhBwsgAyAHNgIoDAELIAMgBzYCKCAFDQBBACEHDAELIAUoAqAEIQcLAkAgBiAHRg0AIAJBADYCiAULIANC/4GAgPAfNwKoASADIAMoAggiBkU2AqQBIANBxMsdQbTLHSAGGzYCoAEgAygCvAEhBiADIANBKGo2ArQBIAMgA0EsajYCsAEgBSADQaABaiABIAZqIAIQokoiBQ0AIAIoAoQCIQUgAygCsAEoAgAhBgJAAkAgAigCgAIiBw0AQQAhBwwBCyAHKAKgBCEHCyADQoCAgICAgID4PzcDmAEgA0IANwOQASADIAc2AowBIAMgBTYCiAEgAyAGNgKEASADQQU2AoABAkAgA0GAAWogASADKALAAWogAkG4AmoiBhCxSCIFDQAgAygCsAEiBygCACEIQQAhBQJAIAIoAoACIglFDQAgCSgCoAQhBQsgAkIANwOoAiACQoCAgPyDgIDAPzcCnAIgAiAFNgKYAiACIAg2ApQCIAJBBTYCkAIgAkEANgCkAiACQbACakIANwMAIAcoAgAhByADKAK0ASgCACEIIANBzZmz8gM2AnggA0KAgID8g4CAwD83AnAgA0Lan6SGBDcCaCADQoCAgPyj+8PkwAA3AmAgA0KAgID88///v/8ANwJYIANCgICAgICAgMA/NwJQIANCADcCSCADQoCAgIAQNwJAIAMgCDYCPCADIAc2AjggAyAJKALYByIJNgJ8AkAgB0ECRw0AIAMgA0EmajYCQAsgAygCxAEhCiACQaADakEAQagBEEghCwJAAkAgAQ0AQX4hBQwBCyADQThqIANB4AFqEOZIIgUNACACIAEgCmoiBTYCwAQCQAJAIAMoAuABIgoNAEEAIQpD//9/fyEOQ9oPyUAhD0MAAAAAIRBDzcxMPiERQwAAgD8hEkMAAIA/IRND2g/JQCEUQwAAgD8hFUMAAIA/IRZDAACAPyEXQwAAAAAhGEEAIQxBASENDAELIAVBACAKEEgaIAMoAnwhCSADKgJ0IRIgAyoCeCERIAMqAnAhEyADKgJsIRAgAyoCaCEPIAMqAmQhFCADKgJgIRUgAyoCXCEOIAMqAlghFiADKgJUIRcgAyoCUCEYIAMoAkwhCiADKAJIIQwgAygCRCENIAMoAjwhCCADKAI4IQcLIAIgETgCmAQgAiATOALYAyACIBA4AtQDIAIgDzgC0AMgAiAUOALMAyACIBU4AsgDIAIgDjgCxAMgAiAWOALAAyACIBc4ArwDIAIgGDgCuAMgAiAKNgK0AyACIAw2ArADIAIgDTYCrAMgAiAINgKkAyACIAc2AqADIAJCADcC5AMgAiAJNgLgAyACIBI4AtwDIAJB7ANqQgA3AgAgAkH0A2oiB0IANwIAIAJCADcCgAQgAkGAgID8ezYC/AMgAkGIBGpCADcCACACQZAEakKAgICAgICAwD83AgACQCAKQQFHDQAgA0HMAWogBxDlSCADKgLMASEOIAMqAtABIQ8gAyoC1AEhECACQYAEahDrCiACQQA2AoAEIAIgEIw4AvwDIAIgD4w4AvgDIAIgDow4AvQDCwJAIAMoAkAiB0UNACACIAUgAygC5AFqIgo2AqgDIAIoAqADIgxFDQAgCiAHIAwQSxogAygCfCEJIAMoAjwhCAsgAiAFIAMoAugBajYCvAQgAyAJrUIghiAIrYQ3A9gBIANB2AFqIAUgAygC7AFqIAJBnARqEOFIIgUNACADKAK0ASgCACEFIAJCADcC0AQgAiAFNgLMBCACQQU2AsgEIAMoAhgiBUUNAyADIAWtQiCGIAM1AiyENwMwIANBMGogASADKALIAWogAkHYBGoQ4UgiBUUNAyALQQAQ50gLIAZBABCzSAsgAkEAEK4OCyABIAQQ6AoMAQsgAkEBOgCwBUEAIQUCQCACIABBgAJqQQAQrkoiAEUNACACIAQQtkogACEFDAELIAIoArgFIgBFDQBBACEFIABBADYCNCAAKAIAKAIUIgJFDQBBACEFIABBACACEQIAGgsgA0HwAWokACAFC9UGAQJ/IwBBwAFrIgQkAAJAAkAgAkUNACAEQQhqIAJB3AAQSxoMAQsgBEEIakEAQdwAEEgaCyAEQeQAaiAEQQhqQdwAEEsaAkBBAEEAQQAgBEHkAGogAxD6SSICDQBBfiECIABFDQAgAUUNAEG1fiEFAkACQAJAAkACQAJAIAQoAqwBIgIOAgIAAQsgACABIARB5ABqIAMQ+0khBSAEKAKsASECCwJAIAJBAkcNACAAIAEgBEHkAGogAxD8SSEFIAQoAqwBIQILAkAgAkEDRw0AIAAgASAEQeQAaiADEP1JIQULIAVFDQELAkAgBCgCtAFFDQBBACECA0AgAiAEKAK4AU8NAQJAIAQoArQBIAJBAnRqKAIAIgVFDQAgBSAEKAK8ASAAIAEgBEHkAGogAxD+SUUNAwsgAkEBaiECDAALAAtBtX4hAiAEKAKsAQ0DIAAgASAEQeQAaiADEPtJRQ0AIAAgASAEQeQAaiADEPxJRQ0AIAAgASAEQeQAaiADEP1JDQELIARB5ABqIAMQ/0kiAkUNASADKAI8IgVFDQIgBSgCECIFRQ0CIAMoAkAgA0E4aiADQYADaiAFEQUADAILQf8EQYAFQYEFIARB5ABqIAMQ+kkiAg0BIANBADYCmAMgAyABNgKUAyADIAA2ApADQbV+IQUCQAJAAkACQCAEKAKsASICDgICAAELIARB5ABqIAMQg0ohBSAEKAKsASECCwJAIAJBAkcNACAEQeQAaiADEIRKIQUgBCgCrAEhAgsCQCACQQNHDQAgBEHkAGogAxCFSiEFCyAFRQ0BIANBADYCmAMLAkACQCAEKAK0AUUNAEEAIQIDQCACIAQoArgBTw0BAkAgBCgCtAEgAkECdGooAgAiBUUNACAFIAQoArwBIARB5ABqIAMQhkpFDQMgA0IAQQAgAygCSBEgAA0CCyACQQFqIQIMAAsACyADQQA2ApgDQbV+IQIgBCgCrAENAyAEQeQAaiADEINKRQ0BIANBADYCmAMgBEHkAGogAxCESkUNASADQQA2ApgDIARB5ABqIAMQhUoiAkUNASADQQA2ApgDDAMLQbV+IQIgBCgCrAENAgsgBEHkAGogAxD/SSICDQELQQAhAgsgBEHAAWokACACC2oBAn4gAEE4aiABIAIgAxCdDiEBIAAgACkD2AMgAykDAHwiAjcD2AMCQAJAIAIgACkD4AMiBFQNACADQgAgAykDACIFIAIgBH0iAn0iBCAEIAVWGzcDAEFvIQAgBSACWA0BCyABIQALIAALxAYCBX8DfiMAQbAgayIEJAACQCADRQ0AIANCADcDAAtBfiEFAkAgAEUNACACUA0AAkAgACgCOCIFDQBBfSEFDAELAkACQCAALQDUAkUNACAFIAEgAiAEQaggahDqSCEFDAELAkAgAQ0AIAAtANMCDQAgBUEAIAIgBEGoIGoQ6kghBQwBCyAEQgA3A6ggIAUgBEGkIGogBEGgIGpBAEEAQQAQ/DAiBQ0BIABB8ABqIQYCQAJAIAAoAuACRQ0AIABB+AJqIQcDQCACIAQpA6ggIglYDQIgACgC4AIhBQJAIAApA/gCIgpQDQAgBCACIAl9Igk3A5ggIAQgCSAKIAkgClQbNwMQIAYgBSAEKAKgICAAKALwAmwgBCgCpCBBAnRBkJobaigCAGxqIARBEGogASAEQZggahCBSCIFDQQgACAAKQPwAiAEKQMQIgp8NwPwAiAAIAApA/gCIgsgCn03A/gCIAQgBCkDqCAgBCkDmCAiCXw3A6ggQQAhBUEAIQgCQCABRQ0AIAEgACgCZCAJp2wgACgCYEECdEGQmhtqKAIAbGohCAsgCiAJhFANBAJAIAsgClENACAIIQEMAgsgACgC4AIhBSAIIQELIABCADcD8AIgACgCOCAFIAApA+gCIAcQ6kgiBQ0DDAALAAsgBCkDqCAhCgNAIAIgClgNASAEKAKgICEFIAQoAqQgIQggBiACIAp9IgogBBCQSBoCQAJAIAQpAwAiCVANACAAKAI4IARBEGogCkGAICAIQQJ0QZCaG2ooAgAgBWxurSILIAogC1QbIgsgCSALIAlUGyAEQZggahDqSCIFQW9GDQEgBQ0EDAELIARBADoAECAEQgA3A5ggCyAEIAo3AwggBiAEQRBqIARBmCBqIAEgBEEIahCBSCIFDQIgBCAEKQOoICAEKQMIIgl8Igo3A6ggQQAhBUEAIQgCQCABRQ0AIAEgACgCZCAJp2wgACgCYEECdEGQmhtqKAIAbGohCAsgBCkDmCAgCYRCAFENAiAIIQEMAAsAC0EAIQULIAAgACkDWCAEKQOoICICfDcDWAJAIANFDQAgAyACNwMACyAFQW8gBSACUBsgBRshBQsgBEGwIGokACAFCx8BAX8CQCAAQThqIAEQnw4iAg0AIAAgATcD2AMLIAILyAECA38BfiMAQRBrIgIkAEF+IQMCQCAARQ0AIAAoAjgiBEUNACAEQQBBACACQQxqQQBBABD8MCIDDQAgASEFAkAgAigCDCIDIAAoAmgiBEYNACADIAQgARCcSCEFCyAAKAI4IAIQ70gaQQAhAyACKQMAIAVRDQACQCAAKAI4IAUQ7UgiAw0AIAAgATcDWAsgAC0A0wJFDQAgACgCxAEiBEUNACAEKAIkIgRFDQAgACgCyAEgACgCwAEgBBECABoLIAJBEGokACADCxQAIABBOGogASACIAMgBCAFEKEOC4QBAAJAIAANAEF+DwsCQCABRQ0AIAEgACgCYDYCAAsCQCACRQ0AIAIgACgCZDYCAAsCQCADRQ0AIAMgACgCaDYCAAtBACEDAkAgBEUNAAJAIAAtANICRQ0AIAQgBSAAKAKkASAAKAKUARDKSEEADwtBACEDQQAgBCAFIAAoAngQrw4LIAMLDwAgASAAKQPYAzcDAEEACwwAIABBOGogARCkDgubAQICfwF+IwBBEGsiAiQAQX4hAwJAIAFFDQAgAUIANwMAIABFDQACQCAAKAI4IgMNAEG1fiEDDAELIAMgAkEIahC4DiIDDQAgACgCOEEAQQAgAkEEakEAQQAQ/DAiAw0AIAIpAwghBAJAIAIoAgQiAyAAKAJoIgBGDQAgACADIAQQnEghBAsgASAENwMAQQAhAwsgAkEQaiQAIAMLZQEBf0EAIQMCQCACKAIAQegEahCmDg0AIAFBNGohAwJAIAEoAjQiAUUNACABQcwKaiACENsIGgsgAigCAEHICmogAxDbCBogAyACENsIGiACKAIAIQMgAkEANgIACyAAIAM2AgALpgECAX8BfgJAIAANAEF+DwsCQAJAIAAoAoACIgENAEIAIQIMAQsgASkDuAIhAgsCQAJAIAAoAiRBAUYNACAAKQMoIAJWDQBBACEBIAApAzAgAlYNAQsCQCAAKAK4BUUNACAAKALIBUUNAAJAIAAoArgFQgAQ7UgiAUUNACABQWNHDQILIABBADYCyAUgAUUNACABQWNHDQELQQAhASAAQQA2AiQLIAELmwEBAX8jAEEQayIFJAACQCACRQ0AIAIgAigCAEEBajYCAAsgBSACNgIIIAVBDGogASAFQQhqIAQQlA4gAhDwBQJAAkAgBSgCDCICDQAgAEEANgIADAELAkAgA1ANACACIAM3A5AFCyACIAIoAgBBAWo2AgAgBSACNgIEIAAgASAFQQRqEKUOIAUoAgQQ3AggAhDaCAsgBUEQaiQACywBAX0CQAJAIAANAAwBCyAAKQO4AkLoB34gADUCoASAtSEBCyABQwAAekSVC1MBAX8jAEEQayIEJAAgACgCHCEAIARCADcDCAJAIAAgASADrSAEQQhqEKpKDQAgACgC5AciA0UNACAAKALoByABIAQpAwggAxFMAAsgBEEQaiQAC+8HARV/IwBBwAJrIgMkAAJAAkAgAQ0AQX4hBAwBCyAAQRBqIQUCQAJAAkAgAEUNACADQfAAaiAFEJkOIgQNAyADKAJ0IgZFDQIgAygCcCEEDAELIANB+wQ2AnwgA0H8BDYCeEH9BCEGIANB/QQ2AnRBACEEIANBADYCcAtB7AEgBCAGEQIAIgdFDQAgA0HAAWpBEGohCEEAIQYCQANAIAZBD0YNASADQYABaiAGQQJ0aiAGNgIAIAZBAWohBgwACwALIAdBpAFqIQkgB0HgAGohCiAHQTxqIQsgB0GUAWohDEG1fiEEIAdB8ABqIg1BEGohDiANQQhqIQ9BACEQAkACQANAIBBBD0YNASAHQQBB7AEQSCERIAUhBiAAIRICQCAADQAgA0HAAWpBAEGAARBIGiADQcABaiESIAghBgsCQCAMIAYQmQ4iBA0AAkAgEigCACIGDQAgC0EAQcwAEEghBiAKIAwQmQ4aIA5CADcAACAPQgA3AAAgDUIANwAAIAYhBgsgA0GAAWogEEECdGohEyASQcwAaiEUIBEgBjYCOCARIBIoAgQ2AogBIBEgEigCCDYCjAEgESASKAIMNgKQAUEAIQQCQAJAA0AgBEEBRg0BIBMgBEECdGooAgAhFSARQQBBNBBIIQYCQAJAAkACQAJAAkACQAJAIBVBdGoOAgEABQsgBiAUQTQQSyIWKAI4IRcgFigCAA0BQeCjESEWDAILIAZBggU2AgAgBigCOCEXCyADIBVBA3RBlJkbaigCACIWNgJgIBdBBEHDixIgA0HgAGoQmkggBiASIAYgBigCABEEACIXQbB+Rg0BIBdFDQcgBigCOCEXCyADIBY2AhAgF0EEQZWKEiADQRBqEJpIDAMLIAYoAjghBgwBCyAGKAI4IQZBlpsRIRYgFUEOSw0AIBVBA3RBlJkbaigCACEWCyADIBY2AgAgBkEEQbeKEiADEJpICyAEQQFqIQQMAAsACyARQQBB7AEQSBpBtX4hBAwBCyAJQQBBMBBIGiAGKAI4QQRB84USQQAQmkggBigCOCEEIANBqOMRNgJQIARBBEGogBIgA0HQAGoQmkggBigCOCEEIANB3OERNgJAIARBBEH0gBIgA0HAAGoQmkggBigCOCEEIANB3OERNgIwIARBBEHmgBIgA0EwahCaSCAGKAI4IQQgA0Hc4RE2AiAgBEEEQdiAEiADQSBqEJpIIAYgFTYCNCAGIAEgAhCrDiIERQ0DIAYQ10gLIBBBAWohEAwACwALIAMoAnwiBkUNAiAHIAMoAnAgBhEDAAwCCyACQQE6AKQCQQAhBAwBC0F8IQQLIANBwAJqJAAgBAvBKwILfwJ+IwBB4BVrIgMkAAJAAkAgAA0AQQAgASACEKoOIQQMAQsgAkEAQcAYEEghAgJAIAENAEF+IQQMAQsCQCAAKAIQDQBBfSEEDAELQX4hBAJAIAEoAgAiBUF+cUECRw0AIAEoAnAiBkH+AUsNASABKAJ0IAYQ2EhFDQELAkAgBUEESw0AQQEgBXRBGnFFDQBBfiEEIAEoAlQiBUH+AUsNASABKAJYIAUQ2EhFDQELIAIgADYCACACIAEoAig2AhwgAiABKAIcNgIQIAIgASgCIDYCFCACIAEoAiQ2AhhBACEEQQAhBQJAIAEoAkwiBkUNACACQbQDaiIFIAZBgAIQSxoLIAIgBTYCsAMCQCABKAJoIgVFDQAgAkH8DWoiBCAFQYACEEsaCyACIAQ2AvgNIAIgAS0AGDoApQIgAiABLQAZOgCmAiACIAEtABo6AKcCIAEtABshBCACQYCAgPwDNgKsAiACIAQ6AKgCIAIgASgCADYCBCACIAEoAgQ2AgggAiABKAI8NgKgAyACIAEoAkg2AqwDIAIgASgCQDYCpAMgAiABKAJENgKoAyACIAEoAoABNgL8ESACIAEoAmw2AoASIAIgASgCcCIENgKEEiACQYgSaiIHQf4BIAEoAnQgBBDKSCACIAEoAng2ApwWIAIgASgCfDYCoBYgAiABKAJkNgK0ByACIAEoAlA2ArgHIAIgASgCVCIENgK8ByACQcAHaiIIQf4BIAEoAlggBBDKSCACIAEoAlw2AtQLIAEoAmAhBCACQQA2AtABIAJBADYChAEgAiAENgLYCyACQgA3ACAgAkEoakIANwAAIAJBMGpCADcAACACQThqQQA2AAAgA0GwB2pBFGpBAEGMAhBIIQYgAyABKAJMNgKwByADIAEoAmQ2ArQHIAMgASgCUDYCuAcgAyABKAJUIgQ2ArwHIAMgASgCBDYCwAcgBkH+ASABKAJYIAQQykggAyABKAIINgLECSADIAEoAgw2AsgJIAMgASgCECIEQQMgBBs2AswJIANBkAVqQRRqQQBBjAIQSCEFIAMgASgCaDYCkAUgAyABKAKAATYClAUgAyABKAJsNgKYBSADIAEoAnAiBDYCnAUgAyABKAIENgKgBSAFQf4BIAEoAnQgBBDKSCADIAEoAgg2AqQHIAMgASgCDDYCqAcgAyABKAIQIgRBAyAEGzYCrAcgAiABIANBsAdqIANBkAVqIAAoAhARBwAiBA0AQX4hBAJAAkAgASgCACIJQX5qIgpBAksNACADKAKYBSILRQ0BIAMoApwFIgxBgX5qQYJ+SQ0BIAMoAqAFIg1FDQEgAiANNgKQFCACIAw2AowUIAIgCzYCiBQgAkGUFGogBUH+ARBLGiACIAMoAqQHIgQ2ApQWIAIgAygCrAc2ApgWIAQNACACIAMoAqgHIA1sQegHbjYClBYLAkAgCUF9cSIFQQFHDQBBfiEEIAMoArgHIglFDQEgAygCvAciC0GBfmpBgn5JDQEgAygCwAciDEUNASACIAw2AsgJIAIgCzYCxAkgAiAJNgLACSACQcwJaiAGQf4BEEsaIAIgAygCxAkiBDYCzAsgAiADKALMCTYC0AsgBA0AIAIgAygCyAkgDGxB6AduNgLMCwsCQCAKQQJLDQACQCACQQIgA0HQCWoQnUgNACACQfwPaiADQdALahCVSAwBCyACQfwPaiEEAkAgAygCkAUNACAEQdDMERCVSAwBCyAEQdjMERCVSAsCQCAFQQFHDQACQCACQQEgA0HQCWoQnUgNACACQbQFaiADQdALahCVSAwBCyACQbQFaiEEAkAgAygCsAcNACAEQbjMERCVSAwBCyAEQcDMERCVSAsCQCAKQQJLDQACQCACKAKAEg0AIAIgAigCiBQ2AoASCwJAIAIoAoQSIgQNACACIAIoAowUIgQ2AoQSCyAHLQAADQACQCACKAKMFCAERw0AIARFDQEgByACQZQUaiAEEEsaDAELAkAgAigCnBZBAUcNACAERQ0BIAdBACAEEEgaDAELQQAgB0H+ASAEEK8OCwJAIAVBAUcNAAJAIAIoArgHDQAgAiACKALACTYCuAcLAkAgAigCvAciBA0AIAIgAigCxAkiBDYCvAcLIAgtAAANAAJAIAIoAsQJIARHDQAgBEUNASAIIAJBzAlqIAQQSxoMAQsCQCACKALUC0EBRw0AIARFDQEgCEEAIAQQSBoMAQtBACAIQf4BIAQQrw4LAkACQAJAAkACQAJAAkACQAJAIAIoAggiBA0AIApBAksNAiACIAIoApAUIgQ2AgggBCEKDAELIApBAksNAiACKAKQFCEKCyADQfAJakEAQSQQSBogAyACKAKIFDYC0AkgAigCjBQhBiADIAJBlBRqNgLoCSADIAo2AuAJIAMgBjYC2AkgAyACKAKAEjYC1AkgAigChBIhBiADIAc2AuwJIAMgBDYC5AkgAyAGNgLcCSADIAIoApwWNgL0CSADIAIoAqAWNgL4CSADIAIoAqADNgKUCiADIAIoAqwDNgKgCiADIAIoAqQDNgKYCiADIAIoAqgDNgKcCgJAIAIoAgxFDQAgAkGoFmogAigCAEGUAWoQoEgLIANB0AlqIAIoAgBBlAFqIAJBqBZqEKFIIQQgBUEBRw0DIAQNAyACKAIIIQQMAgsgAiACKALICSIENgIICyAFQQFHDQILIANB8AlqQQBBJBBIGiADIAIoArgHNgLQCSACKAK8ByEFIAMgCDYC6AkgAyAENgLgCSADIAU2AtgJIAMgAigCwAk2AtQJIAMgAigCxAk2AtwJIAIoAsgJIQQgAyACQcwJajYC7AkgAyAENgLkCSADIAIoAtQLNgL0CSADIAIoAtgLNgL4CSADIAIoAqADNgKUCiADIAIoAqwDNgKgCiADIAIoAqQDNgKYCiADIAIoAqgDNgKcCgJAIAIoAgxFDQAgAkHgC2ogAigCAEGUAWoQoEgLIANB0AlqIAIoAgBBlAFqIAJB4AtqIgUQoUgiBA0EIAJCADcD6A0gAkHwDWpCADcDAAJAAkACQCACKAIEQQNGDQAgBUIBIANB0AlqEJBIRQ0BCyACKAIAIQQCQAJAIAIoAsgJIAIoAgggAjUCzAsQnEgiDiACKAK4B0ECdEGQmhtqKAIAIAIoArwHbK1+Ig9C/////w9WDQAgBCgCnAEiBUUNACACKALcDSAPpyAEKAKUASAFEQQAIgQNASACKAIAIQQLIAIoAtwNIARBlAFqEOgKIAJCADcD4A0gAkEANgLcDQwFCyACIAQ2AtwNDAELIAIoAtwNIAIoAgBBlAFqEOgKIAJBADYC3A1CACEOCyACIA43A+ANDAELIAQNAwsCQCABLQAbDQACQCABKAIIIgQNAAJAIAIoAggiBA0AQQAhBAwBCyABKAIMIARsQegHbiEECwJAIAEoAgAiBUF+akECSw0AIAIgBDYCnBggAkEANgKgGCAEIQUCQCAEDQAgAiACKAKUFiIFNgKcGAsCQCAAKAKYASIGDQAgAkEANgKYGAwECyACIAIoAoASQQJ0QZCaG2ooAgAgBWwgAigChBJsIAAoApQBIAYRAgAiBTYCmBggBUUNAyAFIAI1ApwYIAIoAoASIAIoAoQSEI9IIAIgAigCnBg2AqAYIAEoAgAhBQsCQCAFQX9qDgMAAQABCyACQQA2AtgNAkACQAJAIAVBA0cNACACKAKcGCEEDAELIAIgBDYC1A0gBA0BIAIoAswLIQQLIAIgBDYC1A0LAkAgACgCmAEiBQ0AIAJBADYC0A0MAwsgAiACKAK4B0ECdEGQmhtqKAIAIARsIAIoArwHbCAAKAKUASAFEQIAIgQ2AtANIARFDQIgBCACNQLUDSACKAK4ByACKAK8BxCPSCACQQA2AtgNCwJAAkAgABDpCg0AQRggAEGUAWoiABCtDiIBRQ0CIAEgAjYCBCABQYMFNgIAIAFBCGogABCZDhoCQBDaSCIFRQ0AQX8hBAJAIAVBnAFLDQAgBUECdEHIgxxqKAIAIQQLIAEgABDoCgwFCyACQdABahDqCgwBCwJAIAEoAgBBA0cNACACKAIAIQYgAigChBIhASACKAKAEiEAQX4hBCACKAIIIAIoApAUIAIoApQWIgpBBWytEJxIpyIFRQ0EIAJBsAJqQQBB8AAQSCELIABBAnRBkJobaigCACIMIAFsIglFDQQgCSAFbCIFQZ+AgIB4akGggICAeEkNBCACQegCakEAQSwQSCEJIAJBhANqIg0gBkGUAWoQmQ4iBA0EIAJBATYC8AIgAiAFNgLsAiACIAVBH2pB3////wdxIgU2AvQCAkAgBUEjaiANEK0OIgYNACAJQQA2AgAMAwtBfCEEIAZBI2pBYHEiDUF8aiAGNgIAIAkgDTYCACANRQ0EAkAgBUUNACANQQAgBRBIGgsgAkEANgKcAyACIAE2ApgDIAIgADYClAMgAkEBOgCAAyACQbQCakEAQTQQSBogAiALNgLYAiACQn83A9ACIAJCfzcDwAIgAkGEyR02ArACIAogAWwgDGxBAXQhACACKAL8AiIBQf////8HcSEEAkACQCACKAL4AiIFQYCAgIB4cSIGIAFBgICAgHhxIgFHDQACQCAEIABqIgAgAigC7AIiBE8NACAGIQEMAgsgBkGAgICAeHMhASAAIARrIQAMAQsgBCAAaiIAIAVB/////wdxIgQgACAESRshAAsgAiAAIAFyNgL8AgsgAkEBNgIMCwJAAkAgAigCACIBDQBBACEEDAELIAEoAjghBAtBlpsRIQACQCABKAI0IgFBDksNACABQQN0QZSZG2ooAgAhAAsgAyAANgKAAyAEQQNB44QSIANBgANqEJpIAkAgAigCBCIBQX5qQQJLDQAgAkECIANBkANqENtIQQAhAUEAIQACQCACKAIAIgRFDQAgBCgCOCEACyADQcq7ETYC9AIgAyADQZADajYC8AIgAEEDQeuLEiADQfACahCaSAJAIAIoAgAiAEUNACAAKAI4IQELQazRESEAQazRESEEAkAgAigCiBQiBUEFSw0AIAVBAnRBvIgcaigCACEECwJAIAIoAoASIgVBBUsNACAFQQJ0QbyIHGooAgAhAAsgAyAANgLkAiADIAQ2AuACIAFBA0Hr/xEgA0HgAmoQmkhBACEBQQAhAAJAIAIoAgAiBEUNACAEKAI4IQALIAIoAowUIQQgAyACKAKEEjYC1AIgAyAENgLQAiAAQQNByIQSIANB0AJqEJpIAkAgAigCACIARQ0AIAAoAjghAQsgAigCkBQhACADIAIoAgg2AsQCIAMgADYCwAIgAUEDQa2EEiADQcACahCaSEEAIQBBACEEAkAgAigCACIBRQ0AIAEoAjghBAsgAigClBYhASADIAIoApgWIgU2ArQCIAMgATYCsAIgAyAFIAFsNgK4AiAEQQNB9osSIANBsAJqEJpIAkAgAigCACIBRQ0AIAEoAjghAAtBACEBIABBA0HihRJBABCaSEEAIQACQCACKAIAIgRFDQAgBCgCOCEACyADQaPgEUHc4REgAi0AiBgbNgKgAiAAQQNBtoASIANBoAJqEJpIAkAgAigCACIARQ0AIAAoAjghAQsgA0Gj4BFB3OERIAItAIkYGzYCkAIgAUEDQYaAEiADQZACahCaSEEAIQFBACEAAkAgAigCACIERQ0AIAQoAjghAAsgA0Gj4BFB3OERIAItAIoYGzYCgAIgAEEDQYKBEiADQYACahCaSAJAIAIoAgAiAEUNACAAKAI4IQELIANBo+ARQdzhESACLQCLGBs2AvABIAFBA0HGgRIgA0HwAWoQmkhBACEBQQAhAAJAIAIoAgAiBEUNACAEKAI4IQALIANBo+ARQdzhESACLQCMGBs2AuABIABBA0GkgRIgA0HgAWoQmkggAkGUFGogAigCjBQgA0HQCWoQ3EgCQCACKAIAIgBFDQAgACgCOCEBCyADIANB0AlqNgLQASABQQNB7v0RIANB0AFqEJpIIAcgAigChBIgA0HQCWoQ3EgCQAJAIAIoAgAiAQ0AQQAhAQwBCyABKAI4IQELIAMgA0HQCWo2AsABIAFBA0HK/REgA0HAAWoQmkggAigCBCEBC0EAIQQCQCABQX9qDgMABAAECyACQQEgA0GQA2oQ20hBACEBQQAhAAJAIAIoAgAiBEUNACAEKAI4IQALIANB0agRNgK0ASADIANBkANqNgKwASAAQQNB64sSIANBsAFqEJpIAkAgAigCACIARQ0AIAAoAjghAQtBrNERIQBBrNERIQQCQCACKAK4ByIFQQVLDQAgBUECdEG8iBxqKAIAIQQLAkAgAigCwAkiBUEFSw0AIAVBAnRBvIgcaigCACEACyADIAA2AqQBIAMgBDYCoAEgAUEDQev/ESADQaABahCaSEEAIQFBACEAAkAgAigCACIERQ0AIAQoAjghAAsgAigCvAchBCADIAIoAsQJNgKUASADIAQ2ApABIABBA0HIhBIgA0GQAWoQmkgCQCACKAIAIgBFDQAgACgCOCEBCyACKAIIIQAgAyACKALICTYChAEgAyAANgKAASABQQNBrYQSIANBgAFqEJpIQQAhAEEAIQQCQCACKAIAIgFFDQAgASgCOCEECyACKALMCyEBIAMgAigC0AsiBTYCdCADIAE2AnAgAyAFIAFsNgJ4IARBA0H2ixIgA0HwAGoQmkgCQCACKAIAIgFFDQAgASgCOCEAC0EAIQEgAEEDQeKFEkEAEJpIQQAhAAJAIAIoAgAiBEUNACAEKAI4IQALIANBo+ARQdzhESACLQDADRs2AmAgAEEDQbaAEiADQeAAahCaSAJAIAIoAgAiAEUNACAAKAI4IQELIANBo+ARQdzhESACLQDBDRs2AlAgAUEDQYaAEiADQdAAahCaSEEAIQFBACEAAkAgAigCACIERQ0AIAQoAjghAAsgA0Gj4BFB3OERIAItAMINGzYCQCAAQQNBgoESIANBwABqEJpIAkAgAigCACIARQ0AIAAoAjghAQsgA0Gj4BFB3OERIAItAMMNGzYCMCABQQNBxoESIANBMGoQmkhBACEBQQAhAAJAIAIoAgAiBEUNACAEKAI4IQALIANBo+ARQdzhESACLQDEDRs2AiAgAEEDQaSBEiADQSBqEJpIIAggAigCvAcgA0HQCWoQ3EgCQCACKAIAIgBFDQAgACgCOCEBCyADIANB0AlqNgIQIAFBA0Hu/REgA0EQahCaSCACQcwJaiACKALECSADQdAJahDcSEEAIQRBACEBAkAgAigCACICRQ0AIAIoAjghAQsgAyADQdAJajYCACABQQNByv0RIAMQmkgMAwtBfCEEDAELIAIQ5wpBfCEEDAELIAIQ5woLIANB4BVqJAAgBAt3AQN/IwBBEGsiBCQAAkAgACABIARBDGoQoUoiBQ0AAkACQCAEKAIMIgUNAEEAIQYMAQsgBSACEK0OIgYNAEF8IQUMAQsCQCAAIAEgBiADEKJKIgVFDQAgBiACEOgKDAELIANBATYC/AFBACEFCyAEQRBqJAAgBQssAQF/AkAgAUUNAAJAIAEoAgQiAg0AQQAPCyAAIAEoAgAgAhECAA8LIAAQXguTAQEDfwJAIABFDQBBACECAkADQCACIAAoAgxPDQEgACACEKNKIAJBAWohAgwACwALQQAhAwJAA0AgAyAAKAIITw0BIAAoAhAgA0E0bGpBHGohBAJAA0AgBCgCACICRQ0BIAIoAgAgAi0ABBCjSgwACwALIANBAWohAwwACwALIAAoAvwBRQ0AIAAoAvgBIAEQ6AoLC08BAX8CQCABRQ0AIAJFDQAgA0UNACADIAIgAyACSRshBEEAIQIDQCACIARGDQEgASAAIAMgAhCfSDoAACACQQFqIQIgAUEBaiEBDAALAAsLPgEBfyMAQSBrIgEkACABQRBqQQA2AgAgASAANgIUIAFCADcCGCABIAEpAhQ3AwggAUEIahD6RyABQSBqJAALxgEBA38CQCAARQ0AAkAgACgCOCIBRQ0AIAAoAjwiAkUNACACKAIQIgJFDQAgACgCQCABIABBgANqIAIRBQALAkAgACgCREGEBUcNACAAKAKUAyEBAkACQCAAKAKQAyICRQ0AIAFFDQEgAigCCCIDRQ0BIAIgASADEQIAGgwBCyABRQ0AIAEQlUkLIABBADYClAMLIABB8ABqIABBgANqIgEQoEggACgC4AIiAkUNACAAKAKMAyIARQ0AIAIgASgCACAAEQMACwtoAQJ/IAAgAbw2AuAJAkAgACgC8AYNACAAIAE4ApAJDwsgAEHACWohAkEAIQMCQANAIAMgAigCAE8NASACIAEgAxCzDiADQQFqIQMMAAsACyAAIAAoAsQJQQAgACgCyAlBf0YbNgLICQtFAgF/AX0gACgCECACQQJ0IgJqIgMgAyoCACIEIAAoAgizIAAoAgSzlSAAKAIUIAJqIgAqAgAgBJOUkjgCACAAIAE4AgALsggBBH8jAEGABGsiAiQAIAJBEGpBAEHQABBIGiACQSRqQgA3AgAgAkEsakIANwIAIAJBNGpCgICAgMAANwIAIAJCADcCHCACQQA2AgwgAkIFNwIEAkACQCABKAIAIAEoAgQgAkEEaiACQeAAahCbDiIDRQ0AAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIANBNGoOMzMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQALAkAgA0HOAWoOBzo5ODc2NTQACwJAIANBkwNqDgRAPz49AAtB1I0RIQEgA0GuAmoOAztAOkALQer5ECEBDD8LQfSdESEBDD4LQbDqECEBDD0LQb3HESEBDDwLQcPYESEBDDsLQYXzECEBDDoLQfeBESEBDDkLQfWHESEBDDgLQeXBESEBDDcLQdXFESEBDDYLQdqrESEBDDULQeirESEBDDQLQefpECEBDDMLQffpECEBDDILQePoECEBDDELQaDPESEBDDALQY/EESEBDC8LQcnpECEBDC4LQcGNESEBDC0LQanTESEBDCwLQePDESEBDCsLQe24ESEBDCoLQa2DESEBDCkLQfGnESEBDCgLQde8ESEBDCcLQf6nESEBDCYLQdKGESEBDCULQbXTESEBDCQLQZi8ESEBDCMLQaDIESEBDCILQaLEESEBDCELQZLbESEBDCALQenyECEBDB8LQc/DESEBDB4LQcW1ESEBDB0LQZX+ECEBDBwLQfnVESEBDBsLQbT+ECEBDBoLQfjDESEBDBkLQbLSESEBDBgLQf/RESEBDBcLQeLRESEBDBYLQcnSESEBDBULQYT+ECEBDBQLQajUESEBDBMLQbrUESEBDBILQZHVESEBDBELQf3yECEBDBALQZeDESEBDA8LQaXYESEBDA4LQbTWESEBDA0LQZ3SESEBDAwLQePSESEBDAsLQf3SESEBDAoLQfjOESEBDAkLQdPLESEBDAgLQabOESEBDAcLQamwESEBDAYLQb/RESEBDAULQZbTESEBDAQLQYPPESEBDAMLQZrMESEBDAILQd3LESEBDAELQfzLESEBCyAC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IAJBf2pxIQYMAQsgBiACSQ0AIAYgAnAhBgsgACgCACAGQQJ0aiABNgIAIAJBf2ohByAEQQFLIQgDQCAFKAIAIgRFDQUgBCgCBCEBAkACQCAIDQAgASAHcSEBDAELIAEgAkkNACABIAJwIQELAkAgASAGRg0AAkAgACgCACABQQJ0IgNqIgkoAgANACAJIAU2AgAgASEGDAELIAUgBCgCADYCACAEIAAoAgAgA2ooAgAoAgA2AgAgACgCACADaigCACAENgIADAELIAQhBQwACwALIAAoAgAgAUECdGpBADYCACABQQFqIQEMAAsACxCoBwALIABBABDRDiAAQQA2AgQLCx8BAX8gACgCACECIAAgATYCAAJAIAJFDQAgAhCkAQsLIQEBfyAAKAIAIQEgAEEANgIAAkAgAUUNACABEKQBCyAAC48CAQZ/AkACQAJAAkAgACgCBCICIAAoAggiA08NACACIAE2AgAgAkEEaiECDAELIAIgACgCACIEa0ECdSIFQQFqIgZBgICAgARPDQECQAJAIAMgBGsiA0EBdSIHIAYgByAGSxtB/////wMgA0H8////B0kbIgMNAEEAIQYMAQsgA0GAgICABE8NAyADQQJ0EKYBIQYLIAYgBUECdGoiBSABNgIAIAUhAQJAA0AgAiAERg0BIAFBfGoiASACQXxqIgIoAgA2AgAMAAsACyAAIAVBBGoiAjYCBCAAKAIAIQQgACABNgIAIAAgBiADQQJ0ajYCCCAERQ0AIAQQpAELIAAgAjYCBA8LEKwBAAsQqAcACzgAAkAgAkGAgICABEkNABCsAQALIAEgAGsiAUEBdSIAIAIgACACSxtB/////wMgAUH8////B0kbC2UAIAAgAzYCEEEAIQMgAEEANgIMAkACQCABRQ0AIAFBgICAgARPDQEgAUECdBCmASEDCyAAIAM2AgAgACADIAJBAnRqIgI2AgggACADIAFBAnRqNgIMIAAgAjYCBCAADwsQqAcAC5MBAQN/IAEoAgQhAiAAKAIAIQMgACgCBCEEAkADQCAEIANGDQEgAkF8aiICIARBfGoiBCgCADYCAAwACwALIAEgAjYCBCAAKAIAIQQgACACNgIAIAEgBDYCBCAAKAIEIQQgACABKAIINgIEIAEgBDYCCCAAKAIIIQQgACABKAIMNgIIIAEgBDYCDCABIAEoAgQ2AgALQgECfyAAKAIIIQEgACgCBCECAkADQCABIAJGDQEgACABQXxqIgE2AggMAAsACwJAIAAoAgAiAUUNACABEKQBCyAAC6UBAQR/IwBBIGsiAiQAAkACQCAAKAIEIgMgACgCCCIETw0AIAMgASgCADYCACADQQRqIQEMAQsgAkEMaiAAKAIAIgUgBCADIAVrQQJ1QQFqENkOIAAoAgQgACgCAGtBAnUgAEEIahDaDiIDKAIIIAEoAgA2AgAgAyADKAIIQQRqNgIIIAAgAxDbDiAAKAIEIQEgAxDcDhoLIAAgATYCBCACQSBqJAALOAACQCACQYCAgIAESQ0AEKwBAAsgASAAayIBQQF1IgAgAiAAIAJLG0H/////AyABQfz///8HSRsLTwAgACADNgIQQQAhAyAAQQA2AgwCQCABRQ0AIAEQoAshAwsgACADNgIAIAAgAyACQQJ0aiICNgIIIAAgAyABQQJ0ajYCDCAAIAI2AgQgAAuTAQEDfyABKAIEIQIgACgCACEDIAAoAgQhBAJAA0AgBCADRg0BIAJBfGoiAiAEQXxqIgQoAgA2AgAMAAsACyABIAI2AgQgACgCACEEIAAgAjYCACABIAQ2AgQgACgCBCEEIAAgASgCCDYCBCABIAQ2AgggACgCCCEEIAAgASgCDDYCCCABIAQ2AgwgASABKAIENgIAC0IBAn8gACgCCCEBIAAoAgQhAgJAA0AgASACRg0BIAAgAUF8aiIBNgIIDAALAAsCQCAAKAIAIgFFDQAgARCkAQsgAAuPAgEGfwJAAkACQAJAIAAoAgQiAiAAKAIIIgNPDQAgAiABNgIAIAJBBGohAgwBCyACIAAoAgAiBGtBAnUiBUEBaiIGQYCAgIAETw0BAkACQCADIARrIgNBAXUiByAGIAcgBksbQf////8DIANB/P///wdJGyIDDQBBACEGDAELIANBgICAgARPDQMgA0ECdBCmASEGCyAGIAVBAnRqIgUgATYCACAFIQECQANAIAIgBEYNASABQXxqIgEgAkF8aiICKAIANgIADAALAAsgACAFQQRqIgI2AgQgACgCACEEIAAgATYCACAAIAYgA0ECdGo2AgggBEUNACAEEKQBCyAAIAI2AgQPCxCsAQALEKgHAAs4AAJAIAJBgICAgARJDQAQrAEACyABIABrIgFBAXUiACACIAAgAksbQf////8DIAFB/P///wdJGwtlACAAIAM2AhBBACEDIABBADYCDAJAAkAgAUUNACABQYCAgIAETw0BIAFBAnQQpgEhAwsgACADNgIAIAAgAyACQQJ0aiICNgIIIAAgAyABQQJ0ajYCDCAAIAI2AgQgAA8LEKgHAAuTAQEDfyABKAIEIQIgACgCACEDIAAoAgQhBAJAA0AgBCADRg0BIAJBfGoiAiAEQXxqIgQoAgA2AgAMAAsACyABIAI2AgQgACgCACEEIAAgAjYCACABIAQ2AgQgACgCBCEEIAAgASgCCDYCBCABIAQ2AgggACgCCCEEIAAgASgCDDYCCCABIAQ2AgwgASABKAIENgIAC0IBAn8gACgCCCEBIAAoAgQhAgJAA0AgASACRg0BIAAgAUF8aiIBNgIIDAALAAsCQCAAKAIAIgFFDQAgARCkAQsgAAs4AAJAIAJBgICAgARJDQAQrAEACyABIABrIgFBAXUiACACIAAgAksbQf////8DIAFB/P///wdJGwtPACAAIAM2AhBBACEDIABBADYCDAJAIAFFDQAgARDkDiEDCyAAIAM2AgAgACADIAJBAnRqIgI2AgggACADIAFBAnRqNgIMIAAgAjYCBCAACxwAAkAgAEGAgICABEkNABCoBwALIABBAnQQpgELkwEBA38gASgCBCECIAAoAgAhAyAAKAIEIQQCQANAIAQgA0YNASACQXxqIgIgBEF8aiIEKAIANgIADAALAAsgASACNgIEIAAoAgAhBCAAIAI2AgAgASAENgIEIAAoAgQhBCAAIAEoAgg2AgQgASAENgIIIAAoAgghBCAAIAEoAgw2AgggASAENgIMIAEgASgCBDYCAAtCAQJ/IAAoAgghASAAKAIEIQICQANAIAEgAkYNASAAIAFBfGoiATYCCAwACwALAkAgACgCACIBRQ0AIAEQpAELIAALLQACQCABIAAoAhggASgCACgCCBECACIBDQBBAA8LIAFBCyABKAIAKAIMEQIAC0oBAX8gACABQax1akEAIAEbIgI2AigCQCACIABGDQAgACABIAAoAhggASgCACgCCBECACIBNgIgIAEgACABKAIAKAJIEQMAC0EACwkAIAAgARDWCQssAAJAQQAtANySHkEBcQ0AQQBCADcC0JIeQQBBAToA3JIeQQBBADYC2JIeCwsa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RQ0AIAMgAygCACgCQBEBAAsCQCABRQ0AIAAtABBBCHENACAAQQAgACgCACgCNBEDAAsCQCACRQ0AIABBADsBKCAAIAIgACgCACgCOBEDAAsCQCABRQ0AIAAtABBBCHFFDQAgAEEAIAAoAgAoAjQRAwALC0wBAX8gACgCACECIAAgASgCADYCACABIAI2AgAgACgCBCECIAAgASgCBDYCBCABIAI2AgQgACgCCCECIAAgASgCCDYCCCABIAI2AggLAgALAgALAgALlwEBA38jAEEgayICJAAgASgCBCEDIAEoAgAhASACQQA7ARwgAiABNgIYIAIgAzYCFCACIAE2AhAgAEHAAGohBCABIQACQANAIAAgASADakYNASACLQAcDQEgAi0AHQ0BIAIgAkEQahCiCjYCDCAEIAJBDGoQ6BAgAigCFCEDIAIoAhAhASACKAIYIQAMAAsACyACQSBqJAALpAEBBH8jAEEgayICJAACQAJAIAAoAgQiAyAAKAIIIgRPDQAgAyABKAIANgIAIANBBGohAwwBCyACQQxqIAAoAgAiBSAEIAMgBWtBAnVBAWoQ6RAgACgCBCAAKAIAa0ECdSAAQQhqEOoQIgQoAggiAyABKAIANgIAIAQgA0EEajYCCCAAIAQQ6xAgACgCBCEDIAQQ7BAaCyAAIAM2AgQgAkEgaiQACzgAAkAgAkGAgICABEkNABCsAQALIAEgAGsiAUEBdSIAIAIgACACSxtB/////wMgAUH8////B0kbC08AIAAgAzYCEEEAIQMgAEEANgIMAkAgAUUNACABEM8HIQMLIAAgAzYCACAAIAMgAkECdGoiAjYCCCAAIAMgAUECdGo2AgwgACACNgIEIAALkwEBA38gASgCBCECIAAoAgAhAyAAKAIEIQQCQANAIAQgA0YNASACQXxqIgIgBEF8aiIEKAIANgIADAALAAsgASACNgIEIAAoAgAhBCAAIAI2AgAgASAENgIEIAAoAgQhBCAAIAEoAgg2AgQgASAENgIIIAAoAgghBCAAIAEoAgw2AgggASAENgIMIAEgASgCBDYCAAtCAQJ/IAAoAgghASAAKAIEIQICQANAIAEgAkYNASAAIAFBfGoiATYCCAwACwALAkAgACgCACIBRQ0AIAEQpAELIAALHAAgAEHAAGogAUHAAGoQ7hAaIAAgAS0ATDoA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IgVwa2ohBCADIAIoAhxqIQMgAigCICEGIAIoAgwhBwNAIAMgBWoiAyAERg0CIAMtAABFDQAgACADIAIQtkwgBkF/aiIGDQAMAgsACyAAIAAoAhAiAygCACADKAIIQQJ0QQAQwy0gACAAELhMAkAgACgCECgC5AUiA0UNACAAIAMRAQALIAEoAhAgAEGg5QBBACABKAIMEQcAGg8LIAchAgwACwALPAEBfgJAIAAQkw8iAUKAgICACHxCgICAgBBUDQAgAEEBOgANIAAgACgCACAAKAIEajYCCEIAIQELIAGnC4BEAQF/QQAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBf2oOoAW7ATajAawBpAGyAakBqwGUApQClAKUApQClAKUAqcBmgGdAZ4BoQGUApkBvQGcAVNbVG6UAnJ4lAKUAqUBqgGUAnOUApQC7wHwAa4B8QHyAe4B8wGgASe5AV6vAbABdZQClAJWanmUAZQCUGd3iQFwlAKUAlqUAmORAZQCfJQClQFoVZMBlAKUAi0qM1+UApQCLjQ1lAKUAjiUApQCgAFPlAKPAZQCsQGUAoYClAKUAokCjQKUAqIBpgGUAqgBlAKUAlh7lAJgbJQClAKUAlFxigGUAmEotAG2AcABvgGUApQCgQKCApQC/AFZlAKUAosCa5QC/wGUApQCO7wBlAKUApQClAKUApQClAKUApQC9AH6AZQClAL5AWn4ASuUApQCSnaUAowBlAKUAoEBlAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQCjAKOApQCugGUApQClAKUApQClAKUApQClAKUAkWUApQClAKUApQCBgEFAgMLDA8QEhUWCggYGxwfICTHAeYBFxpO7QFClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQClAKUApQC6AHGAekB6gHrAZQClAKUAl2UAmRlen6LAY4BfZQC1gHlAUOUAkdERlxm0wHUAc0BHSHFAdgBTZgBmwFIBwkRFDfOAdEBzAHjAZQCzwGUAjAylAIvMZQClAKSAYcC1wHVAdkBnwHQAeQBygHaAdsB3AHdAd4B3wHgAeEB4gGUAvUBswGUApQC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Qv////8PNwIEIABBuJAVNgIAIAAPC0HUABCmARCdEw8LQSQQpgEQnhMPC0EQEKYBIgBBADYCDCAAQv////8PNwIEIABBoM8TNgIAIAAPC0EUEKYBIgBCgICAgHA3AgwgAEL/////DzcCBCAAQdTPEzYCACAADwtBHBCmASIAQQA2AgwgAEL/////DzcCBCAAQQA2AhggAEIANwIQIABBjNATNgIAIAAPC0EcEKYBIgBBADYCDCAAQv////8PNwIEIABBADYCGCAAQgA3AhAgAEHY0BM2AgAgAA8LQRAQpgEiAEEANgIMIABC/////w83AgQgAEHw0RM2AgAgAA8LQRwQpgEiAEEANgIMIABC/////w83AgQgAEEANgIYIABCADcCECAAQaTREzYCACAADwtBFBCmASIAQgA3AgwgAEL/////DzcCBCAAQaTSEzYCACAADwtBNBCmASIAQX82AgQgAEEIakEAQSwQSBogAEHs7hI2AgAgAA8LQTwQpgFBAEE8EEgQnxMPC0EQEKYBIgBBfzYCDCAAQv////8PNwIEIABB/JMVNgIAIAAPC0EUEKYBIgBC/////w83AgQgAEIANwIMIABB5LUTNgIAIAAPC0EQEKYBIgBBfzYCDCAAQv////8PNwIEIABBnJIVNgIAIAAPC0EYEKYBIgBCADcDACAAQRBqQgA3AwAgAEEIakIANwMAIAAQoBMPC0HQABCmAUEAQdAAEEgQoRMPC0EQEKYBIgBBfzYCDCAAQv////8PNwIEIABB1JIVNgIAIAAPC0EUEKYBIgBC/////w83AgwgAEL/////DzcCBCAAQfSOFTYCACAADwtBxAAQpgEiAEF/NgIEIABBADYCQCAAQQhqQQBBOBBIGiAAQeSDEzYCACAADwtB4AAQpgFBAEHgABBIEKITDwtBHBCmASIAQgA3AwAgAEEYakEANgIAIABBEGpCADcDACAAQQhqQgA3AwAgABCjEw8LQRgQpgEiAEEANgIUIABC/////w83AgwgAEL/////DzcCBCAAQfSEEzYCACAADwtB9AAQpgFBAEH0ABBIEKQTDwtB1AAQpgFBAEHUABBIEKUTDwtB8AAQpgFBAEHwABBIEKYTDwtBiAEQpgFBAEGIARBIEKcTDwtBiAEQpgFBAEGIARBIEKgTDwtBPBCmARCpEw8LQfQAEKYB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Qf//AyEEDAELIAQvARQhBAsgA0EQaiQAIARBEHRBEHUL0gIBAn8CQCAAKAIQIgUoAiggBSgCJEkNACAAEMEtCwJAIAAtAAEiBUEEcUUNACAAIAVB+wFxOgABIAAgACgCECIFKAIcNgJAIAUgADYCHAsCQAJAQQAtAJSZHkEBRw0AIAAoAghBEGogACgCFCgCCE0NACAAQQEQrxJFDQELAkACQCAAKAIUIgUgACgCJEcNACAAQThqIQUMAQsgBSgCBCgCAEEMaiEFCyAAIAMgBSgCABCTSyIGIAI2AhggBiAENgIUIAYgATYCECAAIAAoAgggA0EEdGs2AgggBkEgaiECAkADQCADRQ0BIAIgA0F/aiIDQQR0IgVqIgQgACgCCCAFaiIFKQMANwMAIARBCGogBUEIaikDADcDAAwACwALIAAoAggiA0EINgIMIAMgBjYCACAAIAAoAghBEGo2AggPCyAAQbbvEEEAELESIAAQshIACxoAAkAgAQ0AIAAQphIPCyAAIAEgARBZEKgSC2kBAX8CQCACIAFBAWoiA0wNAEEALQCUmR5BAUcNACAAKAIIIAIgA2siA0EEdGogACgCFCgCCE0NACAAIAMQrxINACAAQbbvEEEAELESIAAQshIACyAAIAAoAgggAUF/c0EEdGogAhCfSwtgAQN/IwBBEGsiASQAIAFBADYCDCAAQQEgAUEMahDTLSECAkAgAEECEMYoIgOtQgJ8IAE1AgxYDQAgAEHDiBFBABCyKAALIAAgAiADai8AABDULbsQuiggAUEQaiQAQQELnwEBAX8jAEEQayIDJAACQAJAIAFBAUgNACAAKAIMIAFBBHRqQXBqIgFBsL8cIAEgACgCCEkbIQEMAQsCQCABQfGxf0gNACAAKAIIIAFBBHRqIQEMAQsgACABEKoSIQELIAAgAiACEFkQkEshAiADQQY2AgwgAyACNgIAIAAgASADIAAoAghBcGoQmksgACAAKAIIQXBqNgIIIANBEGokAAtqAgN/AXwjAEEQayIBJAAgAUEANgIMIABBASABQQxqENMtIQIgAEECEMYoIQMgAEEDELsoIQQCQCADrUICfCABNQIMWA0AIABBw4gRQQAQsigACyACIANqIAS2ENUtOwAAIAFBEGokAEEAC+ECAgl/AX4jAEEQayIBJAAgAUEANgIMIAFBADYC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EMcSIgBBxLsVNgIAIABBgICAeDYCYCAACxkAIAAQxRIiAEEANgIgIABBjMoVNgIAIAALGQAgABDJEiIAQdDIFTYCACAAQX82AiQgAAsoACAAENkRIgBB1OwSNgIAIABBKGpB540SEJ4GGiAAQYztEjYCACAACxIAIAAQxRIiAEGIyxU2AgAgAAsZACAAEMcSIgBBpLwVNgIAIABBADYCYCAACxIAIAAQxRIiAEGAzBU2AgAgAAskACAAEMcSIgBBADYCaCAAQfy0FTYCACAAQv////8PNwJgIAALKQAgABDHEiIAQbjBFTYCACAAQeAAakHnjRIQngYaIABBmMIVNgIAIAALEgAgABDFEiIAQczKFTYCACAACxkAIAAQyRIiAEHIyRU2AgAgAEEANgIkIAALPgAgABDEEiIAQgA3AhwgAEGwtBU2AgAgAEEBNgIYIABBJGpCADcCACAAQSxqQgA3AgAgAEE0akEANgIAIAALEgAgABDFEiIAQZzHFTYCACAACxkAIAAQ2REiAEHE7RI2AgAgAEEANgIoIAALGQAgABDFEiIAQfjMFTYCACAAQQA2AiAgAAs1ACAAENAKIgBBjLoVNgIAIABCgICAgBA3AkAgAEHIAGpBAEE0EEgaIABBgICA/AM2AnwgAAsSACAAEMUSIgBB2McVNgIAIAALEgAgABDFEiIAQZTIFTYCACAACxIAIAAQ1BIiAEHgxhU2AgAgAAsZACAAEMcSIgBB5LoVNgIAIABBADoAYCAACzQAIAAQxxIiAEIANwJoIABBgL4VNgJkIABBnL0VNgIAIABBfzYCYCAAQfAAakIANwIAIAALGQAgABDHEiIAQdy+FTYCACAAQQA2AmAgAAsZACAAEMcSIgBB2MMVNgIAIABBADYCYCAACxkAIAAQxxIiAEH4whU2AgAgAEEANgJgIAALEgAgABDFEiIAQcTLFTYCACAACykAIAAQxxIiAEIANwJoIABBvMUVNgJkIABB2MQVNgIAIABBADYCYCAACxIAIAAQxRIiAEG8zBU2AgAgAAskACAAEMcSIgBCADcCaCAAQay5FTYCACAAQv////8PNwJgIAALIAAgABDjEiIAQdy1FTYCACAAQdQAEKYBEOcPNgJwIAALOwAgAEG8+BI2AgAgAEL/////DzcCBCAAQQxqQeeNEhCeBhogAEEYakHn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thQ2AgAgAAsuACAAQdzSFDYCACAAQv////8PNwIEIABBDGpB540SEJ4GGiAAQajSFDYCACAACzoAIABBADYCHCAAQv////+PgIDkwgA3AhQgAEL/////DzcCDCAAQv////8PNwIEIABBzP8SNgIAIAALGQAgABCSFCIAQfzdFDYCACAAQQA2AhggAAs0ACAAEJMUIgBCADcCHCAAQdjcFDYCACAAQX82AhggAEEkakIANwIAIABBLGpCADcCACAACyQAIAAQjhMiAEEANgI8IABCgICAgHA3AjQgAEGs3RQ2AgAgAAs+ACAAQuH10fiDgIDAPzcCFCAAQr2U3PYDNwIMIABC/////w83AgQgAEIANwJcIABBjOcSNgIAIAAQqRggAAs1ACAAQoCAgIBwNwIcIABCgICAgHA3AhQgAEEANgIMIABC/////w83AgQgAEGotxM2AgAgAAs4ACAAQQA6ACAgAEEANgIcIABCgICAgHA3AhQgAEEANgIMIABC/////w83AgQgAEGctRM2AgAgAAtEACAAQQA2AhQgAEF/NgIMIABC/////w83AgQgAEEcakEAQTIQSBogAEH8uxQ2AhggAEG8uxQ2AhAgAEHguhQ2AgAgAAssACAAENUKIgBC4fXR+IOAgMA/NwI8IABCvZTc9gM3AjQgAEHAgRM2AgAgAAstACAAEJMUIgBCADcCGCAAQYzbFDYCACAAQSBqQgA3AgAgAEEoakIANwIAIAALRwAgAEEANgIcIABCgICAgHA3AhQgAEEANgIMIABC/////w83AgQgAEHwtxM2AgAgAEEgakHnjRIQngYaIABBuLgTNgIAIAALegAgAEIANwIIIABBfzYCBCAAQQE2AjwgAEKBgICAcDcCNCAAQgA3AiwgAEL/////DzcCJCAAQgA3AkggAEKAgICAEDcCQCAAQYTgFDYCACAAQRBqQgA3AgAgAEEYakIANwIAIABBIGpBADYCACAAQdAAakIANwIAIAALGQAgABCRFCIAQeTvEzYCACAAQQA6ADggAAsxACAAQgA3AhwgAEKAgICAcDcCFCAAQQA2AgwgAEL/////DzcCBCAAQeC2EzYCACAACzEAIABCADcCHCAAQoCAgIBwNwIUIABBADYCDCAAQv////8PNwIEIABBmLYTNgIAIAALRQAgABCLEyIAQQA7ATAgAEJ/NwIoIABCgICA/AM3AiAgAEK8gICAwAc3AhggAEEANgI8IABCADcCNCAAQYDEEzYCACAACxIAIAAQkhQiAEG03hQ2AgAgAAskACAAEKIrIgBCADcCRCAAQfDzEzYCACAAQcwAakIANwIAIAALQQAgAEKAgID8g4CAwD83AhAgAEEBNgIMIABC/////w83AgQgAEHY5xI2AgAgAEEYakMAAIA/QwAAAD8QuxgaIAALGQAgABCRFCIAQbDxEzYCACAAQQA2AjggAAsuACAAQaSVFTYCACAAQv////8PNwIEIABBDGpB540SEJ4GGiAAQdyVFTYCACAACxkAIAAQkBQiAEGU8hM2AgAgAEEANgJMIAALHQAgABCXEyIAQZyEEzYCACAAQv////8PNwJYIAALGQAgABCSFCIAQZDTFDYCACAAQQA6ABggAAtdACAAENAKIgBCADcCVCAAQQA2AkwgAEIANwJEIABBgICA/AM2AmQgAEEANgJwIABCADcCaCAAQZSuEzYCUCAAQYCuEzYCQCAAQZCtEzYCACAAQdwAakIANwIAIAALPwAgABDVCiIAQgA3AjwgAEF/NgI0IABCgICA/AM3AkwgAEG05RQ2AjggAEHI5BQ2AgAgAEHEAGpCADcCACAAC10AIAAQ0AoiAEIANwJQIABBADoARCAAQQA2AkAgAEGAgID8AzYCYCAAQQA2AmwgAEIANwJkIABBxIYTNgJMIABBsIYTNgJIIABBxIUTNgIAIABB2ABqQgA3AgAgAAtyACAAENAKIgBCADcCQCAAQQA2AmQgAEKAgID8AzcCXCAAQYCAgPwDNgJQIABCADcCaCAAQciEFDYCVCAAQdSDFDYCACAAQcgAakIANwIAIABB8ABqQgA3AgAgAEH4AGpCADcCACAAQYABakIANwIAIAALGwAgABCnEyIAQbyDFDYCVCAAQciCFDYCACAACxIAIAAQzBgiAEGg6BI2AgAgAAs0ACAAEJQUIgBBAToAcCAAQQA2AmwgAEKAgID8AzcCZCAAQYjiFDYCSCAAQfDgFDYCACAACzcAIAAQ1QoiAEEANgJIIABCgICA/AM3AkAgAEH06NF7NgI0IABBmM0UNgI4IABBvMwUNgIAIAALHQAgABDVCiIAQbisEzYCACAAQv////8PNwI0IAALgQEAIAAQ0AoiAEIANwJIIABCgICAgICAgKDBADcCQCAAQQA6AHggAEEBOgBUIABB8IYTNgIAIABCADcCWCAAQQE6AIQBIABBAjYCgAEgAEEBOgB8IABB0ABqQQA6AAAgAEHgAGpCADcCACAAQegAakIANwIAIABB8ABqQQA2AgAgAAtJACAAENUKIgBCADcCNCAAQgA3AkggAEGAgID8AzYCWCAAQfCyFTYCRCAAQYSyFTYCACAAQTxqQgA3AgAgAEHQAGpCADcCACAACyIAIAAQlBQiAEGcoRM2AkggAEGQoBM2AgAgAEEANgJkIAALGQAgABCVFCIAQezYEzYCACAAQgA3AkwgAAv6AgAgABCaCiIAQQA2AuABIABCADcC2AEgAEEAOgDUASAAQbTJFDYC0AEgAEGgyRQ2AmggAEHYxhQ2AgAgAEHkAWoQ1QpBkMoUNgIAIABBADoAwAIgAEEBOgCcAiAAQgA3AqACIABBqAJqQgA3AgAgAEGwAmpCADcCACAAQbgCakEANgIAIABBADoA8AIgAEEBOgDMAiAAQQI2AsgCIABBAToAxAIgAEIANwLQAiAAQdgCakIANwIAIABB4AJqQgA3AgAgAEHoAmpBADYCACAAQQA6AKADIABBAToA/AIgAEECNgL4AiAAQQA6APQCIAAgADYCmAIgAEGYA2pBADYCACAAQZADakIANwIAIABBiANqQgA3AgAgAEIANwKAAyAAQQI2AqgDIABBADoArAMgAEEBOgCkAyAAQgA3ArADIABBuANqQgA3AgAgAEHAA2pCADcCACAAQQA2AtQDIABBADoA0AMgAEHIA2pCgICAgICAgMC/fzcCACAACxkAIAAQlhQiAEGYrBU2AgAgAEEANgJMIAALIAAgABCXFCIAQQA2AmggAEIANwJgIABB2IcTNgIAIAALUgAgABDQCiIAQQA2AlQgAEIANwJMIABBADYCRCAAQgA3AlwgAEEBOgBYIABB0NgTNgJIIABBvNgTNgJAIABB0NcTNgIAIABB5ABqQgA3AgAgAAstACAAEJgUIgBB3PwTNgL0ASAAQcj8EzYCaCAAQcD6EzYCACAAQQA2AvgBIAALEgAgABCwEyIAQaTvEjYCACAAC4ABAQR/IAAQ2BgiAEIANwKEAiAAQQE6AIACIABBqIcUNgJoIABB/IQUNgIAIABBjAJqQgA3AgAgAEGUAmoQshMhASAAQeQCahCyEyECIABBtANqELITIQMgAEGEBGoQshMhBCAAIAEQ2RggACACENkYIAAgAxDZGCAAIAQQ2RggAAsZACAAEJcUIgBB0IgTNgIAIABCADcCYCAAC1MBA38gABDYGCIAQdinFTYCaCAAQcClFTYCACAAQYACahCyEyEBIABB0AJqELITIQIgAEGgA2oQshMhAyAAIAEQ2RggACACENkYIAAgAxDZGCAAC2UBBH8gABDYGCIAQejrEjYCaCAAQdDpEjYCACAAQYACahDAEyEBIABB8AJqEMATIQIgAEHgA2oQwBMhAyAAQdAEahDAEyEEIAAgARDZGCAAIAIQ2RggACADENkYIAAgBBDZGCAACz0AIAAQmBQiAEEANgKEAiAAQgA3AvwBIABBoM0TNgL4ASAAQYzNEzYCaCAAQYDLEzYCACAAQX82AvQBIAALmAEAIAAQ1QoiAEEBOgA8IABC/////w83AjQgAEEANgJsIABBjIoTNgIAIABBwABqQQBBKBBIGiAAQQA2AnQgAEHoihM2AmggAEEAOgCcASAAQQE6AHggAEGIixM2AnAgAEIANwJ8IABBhAFqQgA3AgAgAEGMAWpCADcCACAAQZQBakEANgIAIABCAjcCpAEgAEEBOgCgASAACzMAIAAQ2BgiAEEANgKQAiAAQgA3AogCIABBsIEUNgJoIABBiP8TNgIAIABCBTcCgAIgAAsnACAAEL0TIgBB4NEUNgJoIABBtM8UNgIAIABBgICA+AM2ApQCIAALggEAIAAQmgoiAEIANwLgASAAQoCAgPgDNwLYASAAQv////+PgICAPzcC0AEgAEEBOgCMAiAAQoCAgPyDgIDAPzcChAIgAEIANwL8ASAAQoCAgP6HgIDg/wA3AvQBIABCADcC7AEgAEGMshM2AugBIABB+LETNgJoIABBrK8TNgIAIAALJAAgABCXFCIAQgA3AmAgAEHQyBM2AgAgAEHoAGpCADcCACAACykAIAAQ0AoiAEEANgJMIABCADcCRCAAQZT6EzYCQCAAQcD5EzYCACAACxsAIAAQwRMiAEGs+RM2AkAgAEHU+BM2AgAgAAs+ACAAENUKIgBBADYCOCAAQQE6ADQgAEGBAjsBMiAAQayjEzYCPCAAQaiiEzYCACAAQcAAakEAQTQQSBogAAsZACAAEIgUIgBBhJ0UNgIAIABBADoAMiAACy0AIAAQxBMiAEIANwI4IABB4JwUNgI0IABBhJwUNgIAIABBwABqQQA6AAAgAAstACAAEPgSIgBCADcCPCAAQbSeFDYCOCAAQdidFDYCACAAQcQAakEAOgAAIAALHQAgABDQCiIAQaiLEzYCACAAQv////8PNwJAIAALzQEBA34gABDVCiIAQgA3AjQgAEKAgICAcDcCXCAAQn83AlQgAEKAgKCWhICA5MIANwJMIABCgICA+IOAgIA/NwJEIABBtLMTNgJkIABBqLITNgIAIABCADcCmAEgAEE8akIANwIAIABBACkDoJ8VIgE3AmggAEHwAGpBACkDqJ8VIgI3AgAgAEH4AGpBACkDsJ8VIgM3AgAgAEGQAWogAzcCACAAQYgBaiACNwIAIAAgATcCgAEgAEGgAWpCADcCACAAQagBakIANwIAIAALQgAgABDCEyIAQcz3EzYCQCAAQez2EzYCACAAQdAAakHnjRIQngYaIABBwPgTNgJAIABB4PcTNgIAIABBADYCXCAAC3YAIAAQ1QoiAEEANgI0IABBmMIUNgIAIABBOGpB540SEJ4GGiAAQcQAakHnjRIQngYaIABB0ABqQeeNEhCeBhogAEEANgJkIABCADcCXCAAQgA3AmggAEGEwxQ2AgAgAEHwAGpCADcCACAAQfYAakIANwEAIAALKAAgABCIFCIAQdSiFDYCACAAQTRqQeeNEhCeBhogAEGAohQ2AgAgAAstACAAEMsTIgBCADcCRCAAQdyhFDYCQCAAQYChFDYCACAAQcwAakEAOgAAIAALLQAgAEF/NgIMIABC/////w83AgQgAEGQ8hI2AgAgAEHUABCmARDnDzYCECAAC08AIAAQuxEiAEIANwKUASAAQezmEjYCkAEgAEHQ5hI2AhggAEH05RI2AgAgAEL/////DzcCiAEgAEGcAWpCADcCACAAQaQBakIANwIAIAALYAAgABC7ESIAQcSnFDYCkAEgAEGs+BI2AowBIABBkPgSNgIYIABBrPcSNgIAIABBADYCiAEgAEGUAWpBAEE4EEgaIABBADYC1AEgAEEAOgDQASAAQYCAgPwDNgLMASAACy0AIAAQuxEiAEEANgKMASAAQcSnFDYCiAEgAEHYjBM2AhggAEGAjBM2AgAgAAs1ACAAELsRIgBBADYC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mAEgAEIANwKoASAAQYSIFTYClAEgAEHohxU2AlAgAEHohhU2AgAgAEEAOgDsASAAQQE6AMgBIABCADcCwAEgAEKAgID8AzcCuAEgAEIANwLMASAAQQE6APABIABBAjYC9AEgAEEAOgD4ASAAQbABakIANwIAIABB1AFqQgA3AgAgAEHcAWpCADcCACAAQeQBakEANgIAIAALJQAgABCaFCIAQYz4FDYC0AEgAEH49xQ2AmggAEHA9RQ2AgAgAAudBgAgABCaCiIAQZjuFDYCaCAAQezrFDYCACAAQdABakHnjRIQngYaIABBAToA4AEgAEGAgICFBDYC3AEgAEHw8RQ2AuwBIABBuPEUNgLoASAAQaTxFDYC5AEgAEGQ8RQ2AmggAEGs7hQ2AgAgAEHwAWpBAEElEEgaIABCADcCrAIgAEGAgID+BzYCqAIgAEIANwKgAiAAQoCAgP6HgIDg/wA3ApgCIABBtAJqQgA3AgAgAEG8AmpBADYCACAAQgA3AsgCIABCgICAjISAgMC/fzcCwAIgAEHPAmpCADcAACAAQQA6APwCIABBAToA2AIgAEIANwLcAiAAQeQCakIANwIAIABB7AJqQgA3AgAgAEH0AmpBADYCACAAQQE6AIADIABBAjYChAMgAEEBOgCIAyAAQQA6AKwDIABBpANqQQA2AgAgAEGcA2pCADcCACAAQZQDakIANwIAIABCADcCjAMgAEECNgK0AyAAQQA6ANwDIABBAToAuAMgAEEBOgCwAyAAQgA3ArwDIABBxANqQgA3AgAgAEHMA2pCADcCACAAQdQDakEANgIAIABBAjYC5AMgAEEAOgCMBCAAQQE6AOgDIABBAToA4AMgAEIANwLsAyAAQfQDakIANwIAIABB/ANqQgA3AgAgAEGEBGpBADYCACAAQQI2ApQEIABBAToAkAQgAEIANwKYBCAAQaAEakIANwIAIABBqARqQgA3AgAgAEIANwK4BCAAQbAEakKAgICAgICAwD83AgAgAEHABGpCADcCACAAQgA3AswEIABBgICA/AM2AsgEIABB1ARqQgA3AgAgAEGAgID8AzYC3AQgAEHgBGpBAEHgABBIGiAAQcAFahCbFBogAEIANwLgBiAAQgA3AsQGIABByQZqQgA3AAAgAEIANwLUBiAAQdwGakEAOgAAIABCADcC9AYgAEEA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QQxqEKMGGiABEKQBIAIhAQwACwALIAAoAlghASAAQQA2AlgCQCABRQ0AIAEQpAELIABBxABqELYSGiAAKAI4IQECQANAIAFFDQEgASgCACECIAFBCGoQggYaIAEQpAEgAiEBDAALAAsgACgCMCEBIABBADYCMAJAIAFFDQAgARCkAQsgAEEkahC3EhogAAsDAAALBABBAAsSACAAENUKIgBBtKYUNgIAIAALHQAgABCbFyIAQYCkFTYCACAAQv////8PNwI4IAALGQAgABCJFCIAQZSjFTYCACAAQgA3AkAgAAsyACAAEI4UIgBBADoAaiAAQQE7AWggAEEANgJkIABCgICA/AM3AlwgAEHkoBU2AgAgAAsyAQF+IAAQ1QoiAEGMwRQ2AgAgAEF/NgI0EKwXIQEgAEEAOgBAIAAgAULoB383AzggAAsiACAAEJsXIgBB3MAUNgI8IABB8L8UNgIAIABBATYCOCAAC0EAIAAQihQiAEIANwJQIABCgICAgICAgMA/NwJIIABBADoAWyAAQQE7AFkgAEGIohU2AgAgAEHYAGpBADoAACAACyAAIAAQ1QoiAEEAOgA4IABBADYCNCAAQZT+EjYCACAACx0AIAAQoisiAEHI8BM2AgAgAEKAgID8AzcCRCAACxkAIAAQ1QoiAEGU9hM2AgAgAEF/NgI0IAALEgAgABCTFCIAQejeFDYCACAACy4AIABB0N8UNgIAIABC/////w83AgQgAEEMakHnjRIQngYaIABBnN8UNgIAIAALRgAgABDQCiIAQQA2AlQgAEIANwJMIABB/wA2AkQgAEEBOgBAIABBADYCYCAAQgA3AlggAEGk4xQ2AkggAEGc4hQ2AgAgAAsgACAAENAKIgBBADYCSCAAQcyzFTYCACAAQgA3AkAgAAsSACAAEJUUIgBBgK0VNgIAIAALGQAgABCWFCIAQQA7AUwgAEHMyRM2AgAgAAsjACAAENQVIgBB9P4TNgJoIABB8PwTNgIAIABBADoA8AEgAAsSACAAENUKIgBB7IwVNgIAIAALPQAgABCaCiIAQQA2AuABIABCADcC2AEgAEEAOgDUASAAQeSAFTYC0AEgAEHQgBU2AmggAEGc/hQ2AgAgAAspACAAQQBBKBBIIgBBKGpBABCcFBogAEH8AGpCADcCACAAQgA3AnQgAAtTACAAQQA2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/wMgA0H8////B0kbIgMNAEEAIQYMAQsgA0GAgICABE8NBCADQQJ0EKYBIQYLIAYgBUECdGoiBSAANgIAIAUhAAJAA0AgASAERg0BIABBfGoiACABQXxqIgEoAgA2AgAMAAsACyACIAVBBGoiATYCTCACKAJIIQQgAiAANgJIIAIgBiADQQJ0ajYCUCAERQ0AIAQQpAELIAIgATYCTAtBAA8LEKwBAAsQqAcACwIACwIACwoAIAAQmhYQpAELagEDfyAAQaDcFDYCACAAKAIsIQEgACgCKCECA38CQCACIAFHDQACQCAAKAIoIgJFDQAgACACNgIsIAIQpAELIAAQiiQPCwJAIAIoAgAiA0UNACADIAMoAgAoAgQRAQALIAJBBGohAgwACwsFAEHAAAscACABQURqIgFB//8DcUEHSUHRACABQf8AcXZxCx0AAkAgAUGYBEcNACAAIAIQogo2AiQLIAFBmARGCwIACysBAX8gAEGk0RM2AgACQCAAKAIQIgFFDQAgACABNgIUIAEQpAELIAAQxgoLCgAgABCfFhCkAQsFAEGdBQsPACABQZ0FRiABQZIFRnILHQACQCABQcUHRw0AIAAgAhCiCjYCDAsgAUHFB0YLAgALCgAgABDGChCkAQsFAEGaBQsOACABQe56akH3/wNxRQsrAQF/IABB2NATNgIAAkAgACgCECIBRQ0AIAAgATYCFCABEKQBCyAAEMYKCwoAIAAQqBYQpAELBQBBmQULDwAgAUGZBUYgAUGSBUZyCysBAX8gAEGM0BM2AgACQCAAKAIQIgFFDQAgACABNgIUIAEQpAELIAAQxgoLCgAgABCsFhCkAQsFAEHNBwsPACABQc0HRiABQZIFRnILCgAgABDGChCkAQsFAEGTBQsNACABQf7/A3FBkgVGCyMAAkAgAUHCB0cNACAAIAIQogo2AhBBAQ8LIAAgASACEKMWCwIACwoAIAAQxgoQpAELBQBBmwULJAEBf0EBIQICQCABQaN8akECSQ0AIAFBmwVGDQBBACECCyACCzcBAn9BDCEDQQAhBAJAAkACQCABQa94ag4CAQACC0EQIQMLIAAgA2ogAhCiCjYCAEEBIQQLIAQLAgALAgALCgAgABDGChCkAQsFAEHkAwsdACABQaN8aiIBQf//A3FBCElBiQEgAUH/AXF2cQsdAAJAIAFB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ARDDGCEDAkAgAUMAAAAAXUUNACABQwAAIEGUEJABIANDAAAAv5SUIAGMIAKTQ9sPyUCUIAAqAhyVEMQYlA8LIAFDAAAgwZQQkAEgA5QgASACk0PbD8lAlCAAKgIclRDEGJRDAAAAP5RDAACAP5IhAQsgAQs1AAJAIABDAACAP11FDQAgAosiAiABiyIBXUUNACAAIAIgAZUiApRDAACAPyACk5IhAAsgAAuaAwIDfwF8IwBBEGsiASQAAkACQCAAvCICQf////8HcSIDQdqfpPoDSw0AIANBgICAzANJDQEgALsQkFohAAwBCwJAIANB0aftgwRLDQAgALshBAJAIANB45fbgARLDQACQCACQX9KDQAgBEQYLURU+yH5P6AQkVqMIQAMAwsgBEQYLURU+yH5v6AQkVohAAwCC0QYLURU+yEJwEQYLURU+yEJQCACQX9KGyAEoJoQkFohAAwBCwJAIANB1eOIhwRLDQACQCADQd/bv4UESw0AIAC7IQQCQCACQX9KDQAgBETSITN/fNkSQKAQkVohAAwDCyAERNIhM3982RLAoBCRWowhAAwCC0QYLURU+yEZQEQYLURU+yEZwCACQQBIGyAAu6AQkFohAAwBCwJAIANBgICA/AdJDQAgACAAkyEADAELIAAgAUEIahD9TyEDIAErAwghBAJAAkACQAJAIANBA3EOBAABAgMACyAEEJBaIQAMAwsgBBCRWiEADAILIASaEJBaIQAMAQsgBBCRWowhAAsgAUEQaiQAIAALUgICfwF9IwBBEGsiASQAIAAgAUEEaiAAKgIQQwAAAD8gACoCFCIDIANDAAAAAFsbELsYIgIpAgA3AhggAEEgaiACQQhqKAIANgIAIAFBEGokAAsCAAsCAAsCAAvGAQICfwF8AkAgALwiAUH/////B3EiAkGAgID8A0kNAAJAIAJBgICA/ANHDQAgALtEGC1EVPsh+T+iRAAAAAAAAHA4oLYPC0MAAAAAIAAgAJOVDwsCQAJAIAJB////9wNLDQAgAkGAgIB8akGAgIDIA0kNASAAIAAgAJQQsU+UIACSDwtEGC1EVPsh+T9DAACAPyAAELJPk0MAAAA/lCIAuxCsTyIDIAMgABCxT7uioCIDIAOgobYiAIwgACABQQBIGyEACyAACywBAX9BJBCmARCeEyIBIAAoAgw2AgwgASAA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IABBADYCqAEgAEEBOgB4IAAgACgCODYCpAEgACAAKAKAATYChAEgACAAKAKMATYCkAEgAEH4AGohAiAAKAJEIQMgACgCQCEEA0AgBCADRg0BIAQoAgAiBSgCtAMhBiAFKAKwAyEBAkADQCABIAZGDQECQAJAIAEoAgAiBy0AtAFBAXENACAHIAcoAgAoAkARAABFDQELIAFBBGohAQwBCwsgAiAFQdQCakH4wB0Q6xsgACACNgKoAQsgBEEEaiEEDAALAAsLAgALAgALEQAgACgCKEGAgAJBABDNCRoLBAAgAAsHACAAEKQBCx4BAX9BCBCmASIBQeiJEzYCACABIAAoAgQ2AgQgAQsVACABQeiJEzYCACABIAAoAgQ2AgQLAgALBwAgABCkAQvBAgEGfyAAKAIEIQICQAJAAkAgASgCACIBQQMgASgCACgCDBECAEUNACABIAEtANQBQQxyOgDUAQJAAkAgAigCRCIAIAIoAkgiA08NACAAIAE2AgAgAEEEaiEADAELIAAgAigCQCIEa0ECdSIFQQFqIgZBgICAgARPDQICQAJAIAMgBGsiA0EBdSIHIAYgByAGSxtB/////wMgA0H8////B0kbIgMNAEEAIQYMAQsgA0GAgICABE8NBCADQQJ0EKYBIQYLIAYgBUECdGoiBSABNgIAIAUhAQJAA0AgACAERg0BIAFBfGoiASAAQXxqIgAoAgA2AgAMAAsACyACIAVBBGoiADYCRCACKAJAIQQgAiABNgJAIAIgBiADQQJ0ajYCSCAERQ0AIAQQpAELIAIgADYCRAtBAQ8LEKwBAAsQqAcACwcAIAAQpAELHgEBf0EIEKYBIgFBxIkTNgIAIAEgACgCBDYCBCABCxUAIAFBxIkTNgIAIAEgACgCBDYCBAsCAAsHACAAEKQBC3ABAn8jAEEQayICJAAgACgCBCEDAkAgASgCACIAQQ0gACgCACgCDBECAEUNACACIAM2AgwCQCAAKAK8ASIBDQBBDBCmASIBQQA2AgggAUIANwIAIAAgATYCvAELIAEgAkEMahCICwsgAkEQaiQAQQELBAAgAAsHACAAEKQBCwQAQQELBwAgABCkAQsEAEEACwQAQQELOwEBf0GsARCmAUEAQawBEEgQvBMiASAAKAI0NgI0IAEgACgCODYCOCABIAAtADw6ADwgASAAEN8LIAELPwAgACABEOgOGgJAIAEgACgCQCABKAIAKAIIEQIAIgFFDQAgAUEwIAEoAgAoAgwRAgBFDQAgACABNgJEC0EACwQAQQALUgECf0EAIQECQCAAKAIoIgIgACgCQCACKAIAKAKkAxECACICRQ0AIAJBACACQTAgAigCACgCDBECABshAQsgACABNgJEIAAoAihBCEEAEM0JGgsKACAAEMIKEKQBCwQAQTELFgAgAUEySUKAmICAgICAASABrYincQsjAAJAIAFB+QBHDQAgACACEKIKNgJAQQEPCyAAIAEgAhC+CgsnAQF/QcgAEKYBQQBByAAQSBDHEyIBIAAoAkA2AkAgASAAEN8LIAELpQICAX8BfSMAQRBrIgMkAAJAAkAgAUEBIAEoAgAoAggRAgBFDQAgA0EEaiABQQRqEOcFIQEQPkEANgIAIAAgASgCACABIAEsAAtBAEgbEOIctjgCjAEgARCCBhoMAQsCQCABQQYgASgCACgCCBECAEUNACAAIAEoAgSzOAKMAQwBCwJAAkAgAUECIAEoAgAoAggRAgBFDQAgASoCBCEEDAELAkAgAUEEIAEoAgAoAggRAgBFDQAgACABKAIEsjgCjAEMAgsCQCABQQMgASgCACgCCBECAEUNAEMAAIA/QwAAAAAgAS0ABBshBAwBC0MAAAAAIQQgAUEKIAEoAgAoAggRAgBFDQAgASgCBLMhBAsgACAEOAKMAQsgA0EQaiQAIABBiAFqCwkAIABBABCQTQsHACAAEJURCwoAIAAQlREQpAELBQBB6QQLDwAgAUHpBEYgAUHoA0ZyCwQAQQILHQEBf0GQARCmAUEAQZABEEgQ0BMiASAAELgRIAELDwAgACABIAAqApQBEOocC40DAQJ9AkACQCABQQIgASgCACgCCBECAA0AQwAAAAAhAyABQQogASgCACgCCBECAEUNAQsCQAJAIAFBAiABKAIAKAIIEQIARQ0AIAEqAgQhBAwBCyABKAIEsyEECyACIQMCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAKIAQ4TAAECAwQFBgcICQoLDA0ODxAREhMLIAQgApIhAwwSCyAEIAKTIQMMEQsgBCAClCEDDBALIAQgApUhAwwPCyACjCACIAJDAAAAAF0bIQMgAyAEIAMQjgEiApIg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IAAoAgQgACwACyIDIANBAEgiAxsgASAAKAIAIAAgAxtrIgNJDQACQCACIAFrIgFBf0cNACAAIAMQzx0PCyAAIAMgARDQHQ8LEKwBAAs3AAJAAkAgACwAC0F/Sg0AIAAgATYCBCAAKAIAIQAMAQsgACABQf8AcToACwsgACABakEAOgAAC4oBAQR/IwBBEGsiAyQAIAMgAjYCDAJAIAJFDQAgACgCBCAALQALEP1RIQQgABDdUSEFIAMgBCABayIGNgIIAkACQCAGIANBDGogA0EIahCOUigCACICRw0AIAYhAgwBCyAFIAFqIgEgASACaiAGIAJrELVZGgsgACAFIAQgAmsQnlIaCyADQRBqJAALCwAgACgChAEQoxELIwAgAEHglxM2AhggAEGElxM2AgAgAEGMAWoQnxAaIAAQlRELCgAgABDSHRCkAQsFAEGUBAsPACABQZQERiABQegDRnILJAACQCABQeoFRw0AIAAgAhCiCjYCiAFBAQ8LIAAgASACEJoRCwQAQQELKQEBf0GcARCmAUEAQZwBEEgQ2xMiASAAKAKIATYCiAEgASAAELgRIAELLwIBfwF9AkACQCAAKAKUASIDDQBDAAAAACEEDAELIAMqAmAhBAsgACABIAQQ6hwLLwIBfwF9AkACQCAAKAKUASIDDQBDAAAAACEEDAELIAMqAmAhBAsgACABIAQQ7BwLlwEBA38jAEEgayICJAAgASgCBCEDIAEoAgAhASACQQA7ARwgAiABNgIYIAIgAzYCFCACIAE2AhAgAEGYAWohBCABIQACQANAIAAgASADakYNASACLQAcDQEgAi0AHQ0BIAIgAkEQahCiCjYCDCAEIAJBDGoQ6BAgAigCFCEDIAIoAhAhASACKAIYIQAMAAsACyACQSBqJAALEgAgAEGYAWogAUGYAWoQ7hAaC3UBAn8jAEEQayIDJAAgACACNgKEASAAQRhqIAEQ/AkgASADQQRqIABBmAFqEO8QIgQQ8BAhASAEEMkHGgJAIAFFDQAgAUG6AyABKAIAKAIMEQIARQ0AIAAgATYClAEgASACQRhqQQAgAhsQqAwLIANBEGokAAsjACAAQeSYEzYCGCAAQfyXEzYCACAAQZgBahDJBxogABCVEQsKACAAEN4dEKQBCwUAQYUECxwAIAFBmHxqQf//A3EiAUEeSUGBgICAAyABdnELXAEBfyMAQRBrIgMkAAJAAkAgAUHHBUcNACADQQhqIAIQ/w8gACgCACgCVCEBIAMgAykCCDcDACAAIAMgAREDAEEBIQEMAQsgACABIAIQlhUhAQsgA0EQaiQAIAELAgALLAEBf0GkARCmAUEAQaQBEEgQ3BMiASAAIAEoAgAoAlgRAwAgASAAEKsZIAELOAEBf0EAIQMCQCABQQMgASgCACgCCBECAEUNACABLQAEQX9zQQFxIQMLIAAgAzoAjAEgAEGIAWoLEwAgACABIAIgACgCACgCLBEEAAsHACAAEJURCwoAIAAQlREQpAELBQBBlwQLDwAgAUGXBEYgAUHoA0ZyCwQAQQMLHQEBf0GQARCmAUEAQZABEEgQ3RMiASAAELgRIAELaQECfwJAIAFB+P///wdPDQACQCABQQpLDQAgAEEIakEANgIAIABCADcCACAAIAE6AAsgAA8LIAFBB3JBAWoiAhCmASEDIAAgATYCBCAAIAM2AgAgACACQYCAgIB4cjYCCCAADwsQrAEACycBAn8gACABKAIAIAEgASwACyICQQBIIgMbIAEoAgQgAiADGxCaBwugAwIHfQF/QwAAAAAhAQJAIAAoAgwiCEH/AXGzQwAAf0OVIgIgCEEIdkH/AXGzQwAAf0OVIgMgCEEQdkH/AXGzQwAAf0OVIgQgBCADXRsiBSAFIAJdGyIGIAIgAyAEIAMgBF0bIgUgAiAFXRsiB5MiBUMAAAAAWw0AAkAgBiAEXA0AIAMgApMgBZVDAADAQBCOASEBDAELAkAgBiADXA0AIAIgBJMgBZVDAAAAQJIhAQwBCyAEIAOTIAWVQwAAgECSIQELAkACQCABQwAAcEKUELMPIgSLQwAAAE9dRQ0AIASoIQgMAQtBgICAgHghCAsgACAIQegCaiAIIAhBAEgbNgIAIAYgB5JDAAAAP5QhBEMAAAAAIQMCQCAFQwAAAABbDQAgBUMAAIA/IAQgBJJDAACAv5KLk5VDAADIQpQhAwsCQAJAIAMQsw8iA4tDAAAAT11FDQAgA6ghCAwBC0GAgICAeCEICyAAIAg2AggCQAJAIARDAADIQpQQsw8iBItDAAAAT11FDQAgBKghCAwBC0GAgICAeCEICyAAIAg2AgQLlwEBBX8jAEGQAWsiAiQAIAIQrgYiA0EIaiIEIAMoAghBdGoiBSgCAGoiBiAGKAIEQYCAAXI2AgQgBCAFKAIAaiIFIAUoAgRBtX9xQQhyNgIEIAQgARCzBhogACADQQxqELAGAkAgACgCBCAALAALIgQgBEEASBsiBEEBSw0AIABBAiAEaxDxHRoLIAMQsQYaIAJBkAFqJAALggEBAn8gACgCBCAALQALEP1RIQICQAJAIAAQ/FEiAyACayABSQ0AIAAQ3VEhAyACRQ0BIAMgAWogAyACELVZGgwBCyAAIAMgAiABaiADayACQQAgARCDUiAAKAIAIQMLIAMgAUEwEJpSIQMgACACIAFqIgEQnFIgAyABakEAEPFRIAAL4RECC38BfSMAQaACayIDJAACQAJAIAFBAiABKAIAKAIIEQIARQ0AIAEqAgQhDiAAKAKIASEBIANB4ABqQQhqQQA2AgAgA0IANwNgAkACQCABQQFxRQ0AIANB8ABqEK4GIgRBCGoiBSAEKAIIQXRqIgYoAgBqIgcgBygCBEH7fXFBBHI2AgQgBSAGKAIAaiAAKAKMATYCCCAFIA4Q8x0aIANBkAJqIARBDGoQsAYgA0HgAGogA0GQAmoQwAogA0GQAmoQggYaIAQQsQYaDAELIANB8ABqIA4Q9B0gA0HgAGogA0HwAGoQwAogA0HwAGoQggYaCwJAIAFBAnFFDQAgA0HwAGogA0HUAGogA0HgAGoQ5wUiBBCeHSADQeAAaiADQfAAahDACiADQfAAahCCBhogBBCCBhoLAkAgAUEEcUUNACADQfAAakEIakEANgIAIANCADcDcCADQZACakEIakEANgIAIANCADcDkAICQAJAIANB4ABqEJ8dIgFBf0YNACADQfAAaiADQYQCaiADQeAAakEAIAEQyQsiBBDACiAEEIIGGiADQZACaiADQYQCaiADQeAAaiABQX8QyQsiARDACiABEIIGGgwBCyADQfAAaiADQeAAahDoBQsgAygCdCADLAB7IgQgBEEASBshAQJAA0AgAUEESA0BIAMoAnAgA0HwAGogBEEYdEEYdUEASBsgAWpBfGosAABBUGpBCUsNASADQfAAaiABQX1qIgEQ9R0aIAMtAHshBAwACwALIANBhAJqIAMoApQCIAMsAJsCIgYgBkEASBsiBSADKAJ0IARB/wFxIARBGHRBGHVBAEgbIgRqEO0dIgEoAgAgASABLAALQQBIGyEH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DQAgCyALKAIAKAIcEQEACyAAKAIIIQAMAAsACwJAA0AgAUUNASABIANGDQEgAS0AOCILQSBxDQEgASALQSByOgA4AkAgASgCBCILRQ0AIAsgCygCACgCGBEBAAsgASgCCCEBDAALAAsgAkEgaiQACykBAX8jAEEQayIBJAAgASAANgIMIAFBDGpBBBCUCyEAIAFBEGokACAACx8BAX8gACgCACECIAAgATYCAAJAIAJFDQAgAhCkAQsLiQEBBH8jAEEQayIBJAAgACgCACICKAIUIQMgAigCECECAkADQCACIANGDQECQAJAIAIoAgAiBA0AIAFBADYCDCABQQxqELQfDAELIAQgBCgCAEEBajYCACABIAQ2AgwgAUEMahC0HyAEEKgGCyACQQRqIQIMAAsACyAAKAIAQQA2AgwgAUEQaiQAC58BAQR/IwBBEGsiAiQAAkACQCAADQBBACEDDAELIAJBBGogASAAELcfIAIoAgghBCACKAIEIQUCQAJAA0AgBSAERg0BIAUoAgAhAyAFQQRqIQUgAyABELUfIgNFDQAMAgsACwJAIAAQrx9FDQAgACEDIABBEGooAgAgAEEUaigCABC4H0UNAQtBACEDCyACQQRqELkfGgsgAkEQaiQAIAMLGwEBfyABKAIAIQIgAUEANgIAIAAgAhCwCyAAC+4BAQN/IwBBEGsiAyQAIABBADYCCCAAQgA3AgAgAkEQaiABQQRqIAIbIgIoAgQhASACKAIAIQICQAJAA0ACQCACIAFHDQAgACgCBCEEIAAoAgAhACADQQA2AgxBACEBQQAhAiAEIABrQQJ1IgVBgQFIDQMgBSECA0ACQCACDQBBACECQQAhAQwECyACQQJ0ELofIgENAyACQQF2IQIMAAsACwJAIAIoAgAQrx9FDQAgACACKAIAELsfCyACQQRqIQIMAAsACyADQQxqIAEQvB8LIAAgBCAFIAEgAhC9HyADQQxqQQAQvB8gA0EQaiQACyoBAX8CQANAIAAiAiABRg0BIAJBBGohACACKAIAEK8fRQ0ACwsgAiABRwsfAQF/AkAgACgCACIBRQ0AIAAgATYCBCABEKQBCyAACwcAIAAQyVkLjwIBBn8CQAJAAkACQCAAKAIEIgIgACgCCCIDTw0AIAIgATYCACACQQRqIQIMAQsgAiAAKAIAIgRrQQJ1IgVB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AQNAAkAgAiABRw0AIAAgAjYCBA8LIAJBADYCACACQQRqIQIMAAsAC6ADAQR+IABBADYCCCAAQgA3AgAgACABKAIANgIAIAAgASgCBDYCBCAAIAEoAgg2AgggAUEANgIIIAFCADcCACAAQQA2AhQgAEIANwIMIAAgASgCDDYCDCAAIAEoAhA2AhAgACABKAIUNgIUIAFBADYCFCABQgA3AgwgAEEcaiABQRxqLQAAOgAAIAAgASgCGDYCGCAAIAEpAiA3AiAgAEEoaiABQShqLQAAOgAAIABCADcCLCAAQQA2AjQgACABKAIsNgIsIAAgASgCMDYCMCAAIAEoAjQ2AjQgAUEANgI0IAFCADcCLCABQcAAaikCACECIAFByABqKQIAIQMgAUHQAGopAgAhBCABKQI4IQUgAEEANgJgIABCADcCWCAAQdAAaiAENwIAIABByABqIAM3AgAgAEHAAGogAjcCACAAIAU3AjggACABKAJYNgJYIAAgASgCXDYCXCAAIAEoAmA2AmAgAUEANgJgIAFCADcCWCAAQfQAaiABQfQAaikCADcCACAAQewAaiABQewAaikCADcCACAAIAEpAmQ3AmQgAAs5AAJAIAJBoojCEEkNABCsAQALIAEgAGtB/ABtIgFBAXQiACACIAAgAksbQaGIwhAgAUGQhKEISRsLUQAgACADNgIQQQAhAyAAQQA2AgwCQCABRQ0AIAEQxSAhAwsgACADNgIAIAAgAyACQfwAbGoiAjYCCCAAIAMgAUH8AGxqNgIMIAAgAjYCBCAAC5IBAQN/IAEoAgQhAiAAKAIAIQMgACgCBCEEAkADQCAEIANGDQEgAkGEf2ogBEGEf2oiBBDAICECDAALAAsgASACNgIEIAAoAgAhBCAAIAI2AgAgASAENgIEIAAoAgQhBCAAIAEoAgg2AgQgASAENgIIIAAoAgghBCAAIAEoAgw2AgggASAENgIMIAEgASgCBDYCAAtHAQJ/IAAoAgQhAQJAA0AgACgCCCICIAFGDQEgACACQYR/aiICNgIIIAIQuSAaDAALAAsCQCAAKAIAIgJFDQAgAhCkAQsgAAscAAJAIABBoojCEEkNABCoBwALIABB/ABsEKYBCxAAIAAgASACIANBARCmQRoLHQAgACAAKAIAQQAgASACIAAoAgggACgCBBEGABoLTwAgACADNgIQQQAhAyAAQQA2AgwCQCABRQ0AIAEQzSAhAwsgACADNgIAIAAgAyACQQN0aiICNgIIIAAgAyABQQN0ajYCDCAAIAI2AgQgAAuTAQEDfyABKAIEIQIgACgCACEDIAAoAgQhBAJAA0AgBCADRg0BIAJBeGoiAiAEQXhqIgQpAgA3AgAMAAsACyABIAI2AgQgACgCACEEIAAgAjYCACABIAQ2AgQgACgCBCEEIAAgASgCCDYCBCABIAQ2AgggACgCCCEEIAAgASgCDDYCCCABIAQ2AgwgASABKAIENgIAC0IBAn8gACgCCCEBIAAoAgQhAgJAA0AgASACRg0BIAAgAUF4aiIBNgIIDAALAAsCQCAAKAIAIgFFDQAgARCkAQsgAAs4AAJAIAJBgICAgAJJDQAQrAEACyABIABrIgFBAnUiACACIAAgAksbQf////8BIAFB+P///wdJGwsrAQF/AkAgACgCACIBRQ0AIAAgATYCBCABEKQBIABBADYCCCAAQgA3AgALCxwAAkAgAEGAgICAAkkNABCoBwALIABBA3QQpgELNAEBfyMAQRBrIgIkACAAEMosIAAgARCcLCACQQE6AA8gAEEMaiACQQ9qEMssIAJBEGokAAtJAQF/IwBBEGsiAiQAIABBAToAHCAAIAAoAgQgACgCAGtBA3U2AhggACABEJwsIAJBADoADyAAQQxqIAJBD2oQyywgAkEQaiQACx8BAX8gACgCACECIAAgATYCAAJAIAJFDQAgAhCkAQsLHwEBfyAAKAIAIQIgACABNgIAAkAgAkUNACACEKQBCwuWAQECfyAAQeykEzYCACAAKAIoENMgIAAoAiwQ1CAgACgCGBDVICAAKAJwIQECQANAIAFFDQEgASgCACECIAFBDGoQ1iAaIAEQpAEgAiEBDAALAAsgACgCaCEBIABBADYCaAJAIAFFDQAgARCkAQsgAEHcAGoQyQcaIABBxABqEIkSGiAAQTBqEIgSGiAAQRxqEIcSGiAAC4QDAQJ/AkAgAEUNACAAKAIARQ0AIAAgACgCACIBQX9qNgIAIAFBAUcNACAAQdPCfDYCAAJAIAAoAggiAUUNACABEKghIAEQYCAAQQA2AggLAkACQCAAKAIkIgENAEEAIQEMAQsCQCABKAIAIgJFDQACQAJAIAAoAiAiAQ0AQQAhAQwBCyABKAIAIQELIAEgAhEBACAAKAIkIQELAkAgASgCBCICRQ0AAkACQCAAKAIgIgENAEEAIQEMAQsgASgCBCEBCyABIAIRAQAgACgCJCEBCwJAIAEoAggiAkUNAAJAAkAgACgCICIBDQBBACEBDAELIAEoAgghAQsgASACEQEAIAAoAiQhAQsCQCABKAIMIgJFDQACQAJAIAAoAiAiAQ0AQQAhAQwBCyABKAIMIQELIAEgAhEBACAAKAIkIQELIAEoAhAiAkUNAAJAAkAgACgCICIBDQBBACEBDAELIAEoAhAhAQsgASACEQEAIAAoAiQhAQsgARBgIAAoAiAQYCAAEGALC/MGAQJ/AkAgAEUNACAAKAIARQ0AIAAgACgCACIBQX9qNgIAIAFBAUcNACAAQdPCfDYCAAJAIAAoAggiAUUNACABEKghIAEQYCAAQQA2AggLAkACQCAAKAJIIgENAEEAIQEMAQsCQCABKAIAIgJFDQACQAJAIAAoAkQiAQ0AQQAhAQwBCyABKAIAIQELIAEgAhEBACAAKAJIIQELAkAgASgCBCICRQ0AAkACQCAAKAJEIgENAEEAIQEMAQsgASgCBCEBCyABIAIRAQAgACgCSCEBCwJAIAEoAggiAkUNAAJAAkAgACgCRCIBDQBBACEBDAELIAEoAgghAQsgASACEQEAIAAoAkghAQsCQCABKAIMIgJFDQACQAJAIAAoAkQiAQ0AQQAhAQwBCyABKAIMIQELIAEgAhEBACAAKAJIIQELAkAgASgCECICRQ0AAkACQCAAKAJEIgENAEEAIQEMAQsgASgCECEBCyABIAIRAQAgACgCSCEBCwJAIAEoAhQiAkUNAAJAAkAgACgCRCIBDQBBACEBDAELIAEoAhQhAQsgASACEQEAIAAoAkghAQsCQCABKAIYIgJFDQACQAJAIAAoAkQiAQ0AQQAhAQwBCyABKAIYIQELIAEgAhEBACAAKAJIIQELAkAgASgCHCICRQ0AAkACQCAAKAJEIgENAEEAIQEMAQsgASgCHCEBCyABIAIRAQAgACgCSCEBCwJAIAEoAiAiAkUNAAJAAkAgACgCRCIBDQBBACEBDAELIAEoAiAhAQsgASACEQEAIAAoAkghAQsCQCABKAIkIgJFDQACQAJAIAAoAkQiAQ0AQQAhAQwBCyABKAIkIQELIAEgAhEBACAAKAJI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ajYCBCAADwsgABDMICAAIAAoAgAgACgCCCABQQN1EMsgENYhIAAoAgQhAgJAIAMgBEYNACACIAQgARCJARoLIAAgAiABajYCBAsgAAvxAQEFfwJAIAAgAUYNAAJAIAAoAgggACgCACICayABKAIEIgMgASgCACIEayIBSQ0AAkAgACgCBCIFIAJrIgYgAU8NACAEIAZqIQECQCAFIAJGDQAgAiAEIAYQiQEaIAAoAgQhBQsgAyABayEEAkAgAyABRg0AIAUgASAEEIkBGgsgACAFIARqNgIEIAAPCwJAIAMgBEYNACACIAQgARCJARoLIAAgAiABajYCBCAADwsgABDDHiAAIAAoAgAgACgCCCABELEHEMIeIAAoAgQhAgJAIAMgBEYNACACIAQgARCJARoLIAAgAiABajYCBAsgAAueAQIBfQN/AkAgACoCQCIGQwAAAABbDQAgAiADQwAAgD9DAAAAACAGQwAAgD9DAAAAAEMAAAAAEKhBCyAAKAKEASEHIAAoAoABIggoAmAhCQJAAkAgCCgCDCIIDQBBACEIDAELIAgoAkwhCAsgACAHIAEgAiADIAQgBSAIIAkREwAhBQJAIAAqAkBDAAAAAFsNACACIAMQqUELIAVBAEcLNgECfyAAKAIYIQQCQAJAIAAoAkQiBQ0AQQAhBQwBCyAFKAIMIQULIAAgASACIAMgBSAEEQoACzYBAn8gACgCJCEEAkACQCAAKAJEIgUNAEEAIQUMAQsgBSgCGCEFCyAAIAEgAiADIAUgBBEKAAsyAQJ/IAAoAiAhAgJAAkAgACgCRCIDDQBBACEDDAELIAMoAhQhAwsgACABIAMgAhEFAAsfAQF/IAAoAgAhAiAAIAE2AgACQCACRQ0AIAIQpAELC90BAAJAA0AgASACRg0BIAMgARDwICIDQShqIAFBKGotAAA6AAAgAyABKQIgNwIgIANBLGogAUEsahDxIBogA0HQAGogAUHQAGopAgA3AgAgA0HIAGogAUHIAGopAgA3AgAgA0HAAGogAUHAAGopAgA3AgAgAyABKQI4NwI4IANB2ABqIAFB2ABqEPIgGiADQfQAaiABQfQAaikCADcCACADQewAaiABQewAaikCADcCACADIAEpAmQ3AmQgAUH8AGohASADQfwAaiEDDAALAAsgACADNgIEIAAgAjYCAAvPAgED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IARBAToA3AMMBAsgJEF/aiECICQgDEoNAAsgLCA2Rg0AICwoAogBISxBByECDAELCyAELQDcA0UNAwsgIxCEIQwCC0ECIScLICshFiAEKALYA0UNACAEKALIAyECIAQoAtQDIQwgHyENA0BBACELAkAgDSgCACIkIAJHDQAgBCgC0AMhCwsgJEGAAWohCiAkQeAAaiENA0ACQCANIAwiAkECdGooAgBBf0cNACAKIAJqIgwtAAAgBC0A3QNGDQAgDCAnOgAACyACQX9qIQwgAiALSg0ACyAkQYgBaiENQQchDCAkIAQoAsgDIgJHDQALICshFgsgLSgCCCArQQJ0aiECDAALAAsgIxCEIUECQQEgBCgCsAItABJBAXEbISwgBCgCrAIiCygCCCIMIAsoAgwiLUECdGohDSAELQDoAyErQX8hAgJAA0AgDSgCACINIC1GDQECQCALKAIAIicgDWotAAAiCkESSw0AAkBBASAKdCIkQYDwH3ENAAJAICRBxAFxDQAgCkEBRw0CQQEhKwwCC0ECISsMAQsgDSACIAJBf0YbIQJBAiEKAkAgJyAMIA1BAnRqKAIAai0AACInQf4BcUEGRg0AICchCgJAICcNACAELQDpAyEKCyAKQX9qQf8BcUECSw0BCyArICwgK0H/AXEgCkH/AXFGGyEKA0AgCygCACACaiAKOgAAIAsoAggiDCACQQJ0aigCACICIAwgDUECdGooAgBHDQALQX8hAgsgDCANQQJ0aiENDAALAAsgBCgCrAIiAigCCCILIAIoAgwiDUECdGohDAJAAkAgBCgCsAItABJBAXENAANAIAwoAgAiDCANRg0CQQEhCiACKAIEIAxqIictAAAhJAJAAkACQCACKAIAIAxqLQAAQX9qDgICAQALQQIhCgsgJyAKICRqOgAAIAIoAgghCwsgCyAMQQJ0aiEMDAALAAsDQCAMKAIAIgwgDUYNAQJAIAIoAgAgDGotAABBAkYNACACKAIEIAxqIgsgCy0AAEEBajoAACACKAIIIQsLIAsgDEECdGohDAwACwALIAQoAqwCIgJBDGohDCACKAIIIQ0gISELICIhAgJAA0AgDSAMKAIAQQJ0aiALKAIANgIAIAIoAgAiAkUNASACQQxqIQsgAkEIaiEMDAALAAsgDSAuQQJ0aiAxNgIADAkLIAohAiAKISsg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Rg0AIARB7d6hiwRGDQACQAJAAkACQAJAAkACQCAEQeLCyYsERiIJDQAgBEHp2IWTBEYNByAEQevohZMERg0HIARB59yVkwRGDQQgBEHm5JWTBEYNByAEQfPWoZMERg0HIARB6MLJkwRGDQcgBEHpztWTBEYNByAEQeTQ1ZMERg0HIARB7daFmwRGDQcgBEHtwqGbBEYNByAEQfPkoZsERg0HIARB7trBmwRGDQcgBEHh7JWjBEYNBCAEQevCpaMERg0HIARB8s69owRGDQcgBEHs4NWjBEYNByAEQfDynasERg0HIARB7fKxqwRGDQcgBEHh5IW7BEYNByAEQefcvbsERg0HIARB7dy9uwRGDQcgBEHuwsm7BEYNByAEQfLU1bsERg0EIARB6NbVuwRGDQcgBEH15NW7BEYNBCAEQefchcMERg0CIARB79yFwwRGDQcgBEHyxJXDBEYNAyAEQefctcMERg0HIARB8Ny1wwRGDQcgBEHh7IXTBEYNByAEQenYhdsERg0HIARB6e6F2wRGDQcgBEHywqHbBEYNByAEQfLaodsERg0FIARB6t6h2wRGDQcgBEHz6KXbBEYNByAEQeHIudsERg0EIARB6cLJ2wRGDQcgBEHp0NHbBEYNByAEQeHcheMERg0HIARB796F4wRGDQEgBEHj4JXjBEYNByAEQeLapeMERg0HIARB6tCF6wRGDQcgBEHh1oXrBEYNByAEQeTchesERg0HIARB6dyF6wRGDQcgBEHj5IXrBEYNByAEQebIlesERg0HIARB7fKx6wRGDQQgBEHpyL3rBEYNByAEQefcvesERg0HIARB6crR6wRGDQcgBEH02NXrBEYNByAEQfLa5esERg0GIARB7c6F8wRGDQcgBEHk3IXzBEYNByAEQeHulfMERg0HIARB796t8wRGDQcgBEHvwrn7BEYNByAEQeHyyfsERg0EIARB8s7V+wRGDQcgBEHnwqGDBUYNByAEQfDYoYMFRg0HIARB5OSxgwVGDQcgBEHn3KmTBUYNByAEQefQvZMFRg0HIARB8uqFmwVGDQcgBEHk5KGbBUYNByAEQeTIpZsFRg0HIARB9MilmwVGDQcgBEHkzr2bBUYNByAEQe/OvZsFRg0HIARB7/K9mwVGDQcgBEHk3NWbBUYNByAEQfXc1ZsFRg0HIARB79jlmwVGDQcg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BEEIaikCADcCACACQQ9qIARBD2opAAA3AAAgByECIAUhBAwACwALIAEgAjYCBCAAKAIAIQQgACACNgIAIAEgBDYCBCAAKAIEIQQgACABKAIINgIEIAEgBDYCCCAAKAIIIQQgACABKAIMNgIIIAEgBDYCDCABIAEoAgQ2AgALRgECfyAAKAIEIQECQANAIAAoAggiAiABRg0BIAAgAkFkaiICNgIIIAIQkwYaDAALAAsCQCAAKAIAIgJFDQAgAhCkAQsgAAs6AAJAIAJByqSSyQBJDQAQrAEACyABIABrQRxtIgFBAXQiACACIAAgAksbQcmkkskAIAFBpJLJJEkbCzMBAn8gACgCBCEBIAAoAgAhAgJAA0AgASACRg0BIAFBZGoQkwYhAQwACwALIAAgAjYCBAscAAJAA0AgACABTw0BIAAQjiFBDGohAAwACwALCxwAAkAgAEHKpJLJAEkNABCoBwALIABBHGwQpgELKwEBfwJAIAAoAgAiAUUNACAAIAE2AgQgARCkASAAQQA2AgggAEIANwIACwvxAQEFfwJAIAAgAUYNAAJAIAAoAgggACgCACICayABKAIEIgMgASgCACIEayIBSQ0AAkAgACgCBCIFIAJrIgYgAU8NACAEIAZqIQECQCAFIAJGDQAgAiAEIAYQiQEaIAAoAgQhBQsgAyABayEEAkAgAyABRg0AIAUgASAEEIkBGgsgACAFIARqNgIEIAAPCwJAIAMgBEYNACACIAQgARCJARoLIAAgAiABajYCBCAADwsgABDZISAAIAAoAgAgACgCCCABENohENghIAAoAgQhAgJAIAMgBEYNACACIAQgARCJARoLIAAgAiABajYCBAsgAAs2AQF/AkAgAUGAgICAAkkNABCsAQALIAAgARDNICICNgIEIAAgAjYCACAAIAIgAUEDdGo2AggLbAECfyAAIAEQ9BkiAEEANgIUIABCADcCDAJAIAEoAhAiAiABKAIMIgNGDQAgAEEMaiACIANrIgIQ2CEgACAAKAIQIAMgAhCJASACajYCEAsgACABKAIYNgIYIABBHGogAUEcai0AADoAACAACy8BAX8CQCABQX9KDQAQrAEACyAAIAEQpgEiAjYCBCAAIAI2AgAgACACIAFqNgIICysBAX8CQCAAKAIAIgFFDQAgACABNgIEIAEQpAEgAEEANgII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ByEDIAhFDQAgCCAIKAIAKAIEEQEAIAchAwwACwALIAQgBSADIAVrahCtIwwBCyAFKAIAIgMgASADKAIAKAIcEQIAIgMNASAFQQRqIQUMAAsACyADC54kAQJ/QasDIQJBACEDAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUF8ag6CCIEBAY4C8gHyAccBxwHzAfMBxwHHAcYBxgHGAcUBjgLrAesBjgIa5gHmAekBjgKOAo4CjgLsAawB4AHgAeABjgKZAZoB4wFSpgHgAY4CjgKOAuAB4gFPT6kBM44COY4ChgFHR9kBR0dHpAHUAdQB1AHUASwtLdgBjgKOAo4CjgKOAo4CjgKOAuoB6gHqAe0B7QHxAfEB8QHxAZcB+wH8AfwBVVWuAW7+Af4B/gH+Af4B/gFtbf0B/QH9Af0B/QH9AW9vb2/lAeUB5QFRjgIQEFk76wHrAVbuAe8BUxqOAo4CjgKOAo4CjgKOAo4ChwGOAtMBpQGOAo4CjgKO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DBoLQQEhAgwZC0GUASECDBgLQfQDIQIMFwtBhwQhAgwWC0GWBCECDBULQZ8EIQIMFAtB2QMhAgwTC0HDAyECDBILQSghAgwRC0EpIQIMEAtBKyECDA8LQSwhAgwOC0GeASECDA0LQaMEIQIMDAtBogEhAgwLC0GfASECDAoLQb0EIQIMCQtBuQQhAgwIC0GQASECDAcLQYYBIQIMBgtB6AAhAgwFC0GmAyECDAQLQfUDIQIMAwtB5QQhAgwCC0H6ACECDAELQYABIQILIAAgAiAAKAIAKAIMEQIAIQMLIAMLQAECfyAAKAIUIQIgACgCECEAA38CQCAAIAJHDQBBAA8LIAAoAgAiAyABIAMoAgAoAiARAgAaIABBBGohAAwACwvVAgEHfwJAIAEoAgAgASgCBBC9EiIBDQBBAQ8LAkACQAJAAkAgASgCBCICKAI4IgEgAigCPCIDTw0AIAEgADYCACABQQRqIQAMAQsgASACKAI0IgRrQQJ1IgVBAWoiBkGAgICABE8NAUEAIQcCQCADIARrIgNBAXUiCCAGIAggBksbQf////8DIANB/P///wdJGyIGRQ0AIAZBgICAgARPDQMgBkECdBCmASEHCyAHIAVBAnRqIgUgADYCACAFIQACQANAIAEgBEYNASABQXxqIgEoAgAhAyABQQA2AgAgAEF8aiIAIAM2AgAMAAsACyACKAI0IQMgAiAANgI0IAIoAjghASACIAVBBGoiADYCOCACIAcgBkECdGo2AjwCQANAIAEgA0YNASABQXxqELYjIQEMAAsACyADRQ0AIAMQpAELIAIgADYCOEEADwsQrAEACxCoBwALKQEBfyAAKAIAIQEgAEEANgIAAkAgAUUNACABIAEoAgAoAgQRAQALIAALAgALKQEBfyAAKAIAIQEgAEEANgIAAkAgAUUNACABIAEoAgAoAgQRAQALIAALMQEBf0EBIQECQCAAQYsDRg0AIABBkQNGDQAgAEHlBkYNACAAQfgHRg0AQQAhAQsgAQs3AQF/QRwQpgEiAUEANgIYIAFCADcCECABQYS0EzYCACABQv////8PNwIEIAEgACgCDDYCDCABCwcAIAAQpAELTwECfyAAQdC0EzYCAAJAIAAoAhAiAUUNACAAKAIUIQICQANAIAIgAUYNASACQXxqEL0jIQIMAAsACyAAIAE2AhQg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QQEPCyAAIAIQuwo4AlRBAQ8LIAAgAhC7CjgCWEEBDwsgACACELsKOAJcQQEPCyAAIAIQuwo4AmBBAQ8LIAAgAhC7CjgCZEEBDwsgACACELsKOAJoQQEPCyAAIAIQuwo4AmxBAQ8LIAAgAhC7CjgCcEEBDwsgACACELsKOAJ0QQEPCyAAIAIQuwo4AnhBAQ8LIAAgAhC7CjgCfEEBDwsgACACELsKOAKAAUEBDwsgACACELsKOAKEAUEBDwsgACACELsKOAKIAUEBDwsgACACELsKOAKMAUEBDwsgACACELsKOAKQAUEBDwsgACACELsKOAKUAUEBDwsgACACELsKOAKYAUEBDwsgACACELsKOAKcAUEBDwsgACACEKIKNgKgAUEBDwsgACACELsKOAKkAUEBDwsgACACEKIKOgCpAUEBDwsgACACEKIKOgCqAUEBDwsgACACEKIKOgCrAUEBDwsgACACEKIKOgCsAUEBDwsgACACEKIKOgCtAUEBDwsgACACEKIKOgCuAUEBDwsgACACEKIKOgCvAUEBDwsgACACEKIKOgCwAUEBDwsgACACEKIKOgCxAUEBDwsgACACEKIKOgCyAUEBDwsgACACEKIKOgCzAUEBDwsgACACEKIKOgC0AUEBDwsgACACEKIKOgC1AUEBDwsgACACEKIKOgC2AUEBDwsgACACEKIKOgC3AUEBDwsgACACENoKOgC4AUEBDwsgACACEKIKOgC5AUEBDwsgACACEKIKOgC6AUEBDwsgACACEKIKOgC7AUEBDwsgACACEKIKOgC8AUEBDwsgACACEKIKOgC9AUEBDwsgACACEKIKOgC+AUEBDwsgACACEKIKOgC/AUEBDwsgACACEKIKOgDAAUEBDwsgACACEKIKOgDBAUEBDwsgACACEKIKOgDCAUEBDwsgACACEKIKOgDDAUEBDwsgACACEKIKOgDEAUEBDwsgACACEKIKOgDFAUEBDwsgACACEKIKOgDGAUEBDwsgACACEKIKOgDHAUEBDwsgACACEKIKOgDIAUEBDwsgACACEKIKOgDJAUEBDwsgACACEKIKOgDKAUEBDwsgACACEKIKOgDLAUEBDwsgACACEKIKOgDMAUEBDwsgACACEKIKOgDNAUEBDwsgACACEKIKOgDOAUEBDwsgACACEKIKOgDPAUEBDwsgACACEKIK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NgIADAELIAAgASgCADYCACABIAU2AgAgACAIa0EEakECdSILQQJIDQAgCCALQX5qQQF2IgtBAnRqIg0oAgAgACgCACACKAIAEQIARQ0AIAAoAgAhCgJAA0AgACANIgwoAgA2AgAgC0UNASAMIQAgCCALQX9qQQF2IgtBAnRqIg0oAgAgCiACKAIAEQIADQALCyAMIAo2AgALIAlBf2ohCQwACwALIAggAiAJIAggAEECdGoQ9yUgAEF/aiEADAALAAsgCCAIQQRqIAcgAhD4JQwCCyAIIAlBAXZBAnQiC2ohAAJAAkAgCUGBAUkNACAIIAAgByACEPglIAhBBGoiDSAAQXxqIgwgBiACEPglIAhBCGogDSALaiILIAUgAhD4JSAMIAAgCyACEPglIAgoAgAhCyAIIAAoAgA2AgAgACALNgIADAELIAAgCCAHIAIQ+CULIANBf2ohAwJAIARBAXEiDg0AIAhBfGooAgAgCCgCACACKAIAEQIADQAgCCELIAghAAJAAkAgCCgCACINIAcoAgAgAigCABECAEUNAANAIAsoAgQhDCALQQRqIgAhCyANIAwgAigCABECAEUNAAwCCwALA0AgAEEEaiIAIAFPDQEgDSAAKAIAIAIoAgARAgBFDQALCyABIQsCQCAAIAFPDQADQCANIAtBfGoiCygCACACKAIAEQIADQALCwJAA0AgACALTw0BIAAoAgAhDCAAIAsoAgA2AgAgCyAMNgIAA0AgACgCBCEMIABBBGoiCiEAIA0gDCACKAIAEQIARQ0ACwNAIA0gC0F8aiILKAIAIAIoAgARAgANAAsgCiEADAALAAsCQCAAQXxqIgsgCEYNACAIIAsoAgA2AgALIAsgDTYCAEEAIQQgACEIDAELCyAIKAIAIQ0gCCEJA0AgCSIAQQRqIQkgACgCBCANIAIoAgARAgANAAsgASEHAkACQCAAIAhHDQADQCAJIAdPDQIgB0F8aiIHKAIAIA0gAigCABECAEUNAAwCCwALA0AgB0F8aiIHKAIAIA0gAigCABECAEUNAAsLIAchCyAJIQACQANAIAAgC08NASAAKAIAIQwgACALKAIANgIAIAsgDDYCAANAIAAoAgQhDCAAQQRqIgohACAMIA0gAigCABECAA0ACwNAIAtBfGoiCygCACANIAIoAgARAgBFDQALIAohAAwACwALAkAgAEF8aiILIAhGDQAgCCALKAIANgIACyALIA02AgACQCAJIAdJDQAgCCALIAIQ+SUhDQJAIAAgASACEPklRQ0AIAshASAIIQAgDUUNAwwCCyANDQILIAggCyACIAMgDhD0JUEAIQQMAQsLC5kBAQF/IAAgASACIAQQ+CUCQCADKAIAIAIoAgAgBCgCABECAEUNACACKAIAIQUgAiADKAIANgIAIAMgBTYCACACKAIAIAEoAgAgBCgCABECAEUNACABKAIAIQMgASACKAIANgIAIAIgAzYCACABKAIAIAAoAgAgBCgCABECAEUNACAAKAIAIQIgACABKAIANgIAIAEgAjYCAAsLyAEBAX8gACABIAIgAyAFEPUlAkAgBCgCACADKAIAIAUoAgARAgBFDQAgAygCACEGIAMgBCgCADYCACAEIAY2AgAgAygCACACKAIAIAUoAgARAgBFDQAgAigCACEEIAIgAygCADYCACADIAQ2AgAgAigCACABKAIAIAUoAgARAgBFDQAgASgCACEDIAEgAigCADYCACACIAM2AgAgASgCACAAKAIAIAUoAgARAgBFDQAgACgCACEDIAAgASgCADYCACABIAM2AgALC4oCAQZ/AkAgAkECSA0AIAJBfmpBAXYiBCADIABrIgVBAnVIDQAgACAFQQF1IgZBAWoiB0ECdGohBQJAIAZBAmoiBiACTg0AIAYgByAFKAIAIAUoAgQgASgCABECACIIGyEHIAVBBGogBSAIGyEFCyAFKAIAIAMoAgAgASgCABECAA0AIAMoAgAhCAJAA0AgAyAFIgYoAgA2AgAgBCAHSA0BIAAgB0EBdCIDQQFyIgdBAnRqIQUCQCADQQJqIgMgAk4NACADIAcgBSgCACAFKAIEIAEoAgARAgAiCRshByAFQQRqIAUgCRshBQsgBiEDIAUoAgAgCCABKAIAEQIARQ0ACwsgBiAINgIACwvdAQECfyABKAIAIAAoAgAgAygCABECACEEIAIoAgAgASgCACADKAIAEQIAIQUCQAJAIAQNACAFRQ0BIAEoAgAhBCABIAIoAgA2AgAgAiAENgIAIAEoAgAgACgCACADKAIAEQIARQ0BIAAoAgAhAyAAIAEoAgA2AgAgASADNgIADwsgACgCACEEAkAgBUUNACAAIAIoAgA2AgAgAiAENgIADwsg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AQALIAEgAGsiAUEBdSIAIAIgACACSxtB/////wMgAUH8////B0kbC2UAIAAgAzYCEEEAIQMgAEEANgIMAkACQCABRQ0AIAFBgICAgARPDQEgAUECdBCmASEDCyAAIAM2AgAgACADIAJBAnRqIgI2AgggACADIAFBAnRqNgIMIAAgAjYCBCAADwsQqAcAC5MBAQN/IAEoAgQhAiAAKAIAIQMgACgCBCEEAkADQCAEIANGDQEgAkF8aiICIARBfGoiBCgCADYCAAwACwALIAEgAjYCBCAAKAIAIQQgACACNgIAIAEgBDYCBCAAKAIEIQQgACABKAIINgIEIAEgBDYCCCAAKAIIIQQgACABKAIMNgIIIAEgBDYCDCABIAEoAgQ2AgALQgECfyAAKAIIIQEgACgCBCECAkADQCABIAJGDQEgACABQXxqIgE2AggMAAsACwJAIAAoAgAiAUUNACABEKQBCyAACzEAIAAgAzYCDCAAIAI2AgggACABNgIEIABB2IEUNgIAAkAgA0UNACADIAAQqAwLIAALAgALJgEBfyAAQbTIEzYCAAJAIAAoAhAiAUUNACABIAAQmA0LIAAQpSYLIwEBfyAAQdiBFDYCAAJAIAAoAgwiAUUNACABIAAQmA0LIAALCgAgABCkJhCkAQttAgN9AX9DAAAAACEBQwAAAAAhAgJAIAAoAgwiBEUNACAEKgJgIQILAkAgACgCECIERQ0AIAQqAmAhAQsgASACENEZIQMgACgCBCAALwEUIAIgApQgASABlJKREM0NIAAoAgQgAC8BFiADEM0NCy8AAkAgAkF/Sg0AEKwBAAsgASAAayIBIAIgASACSxtB/////wcgAUH+////B0kbC08AIAAgAzYCEEEAIQMgAEEANgIMAkAgAUUNACABEKwmIQMLIAAgAzYCACAAIAMgAkEBdGoiAjYCCCAAIAMgAUEBdGo2AgwgACACNgIEIAALkwEBA38gASgCBCECIAAoAgAhAyAAKAIEIQQCQANAIAQgA0YNASACQX5qIgIgBEF+aiIELwEAOwEADAALAAsgASACNgIEIAAoAgAhBCAAIAI2AgAgASAENgIEIAAoAgQhBCAAIAEoAgg2AgQgASAENgIIIAAoAgghBCAAIAEoAgw2AgggASAENgIMIAEgASgCBDYCAAtCAQJ/IAAoAgghASAAKAIE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////DzcCBCABQgA3AxAgAUGszRM2AgAgASAAKAIQNgIQIAEgAC0AFDoAFCABIAAoAgw2AgwgAQsbAAJAIAENAEEBDwsgAUE7IAEoAgAoAgwRAgALHAACQCABDQBBAQ8LIAFB+wAgASgCACgCDBECAAuPAgEBfwJAAkAgACgCFCIDIAAoAgRGDQAgASgCCCIBIAMgASgCACgCpAMRAgAiAUUNASABKAIAIQMCQAJAAkAgACgCGA4CAAECCyABQQAgAygCVBEDAA8LIAFBASADKAJUEQMADwsgASABIAMoAlARAABBAXMgASgCACgCVBEDAA8LIAEgACgCECABKAIAKAI4EQIAIgFFDQAgAS0ADCEDAkACQAJAIAAoAhgOAgABAgsgA0H/AXFFDQIgAUEAOgAMIAEoAgRBAToArAEPCyADQf8BcQ0BIAFBAToADCABKAIEQQE6AKwBDwsgA0H/AXEgA0F/c0EBcSIARg0AIAEgADoADCABKAIEQQE6AKwBCwsKACAAEMYKEKQBCwUAQfUACx0AIAFBjH9qIgFB//8DcUEKSUGDBCABQf8HcXZxCyMAAkAgAUHkAUcNACAAIAIQogo2AhhBAQ8LIAAgASACENQmCzsAAkACQCABQZADRg0AIAFB4wFHDQEgACACEKIKNgIQQQEPCyAAIAIQogo2AhRBAQ8LIAAgASACEO4eCwIACwIACwIAC0cBAX9BHBCmASIBQezNEzYCACABQv////8PNwIEIAEgACgCGDYCGCABIAAoAhA2AhAgASAAKAIUNgIUIAEgACgCDDYCDCABC0sBAX8CQCABKAIIIgMgACgCECADKAIAKAKkAxECACIARQ0AIABBgAEgACgCACgCDBECAEUNACABIABDAAAAACABKAIAKAJQEQ4ACwsKACAAEMYKEKQBCwUAQagBCw8AIAFBqAFGIAFB/QBGcgsjAAJAIAFBhQNHDQAgACACEKIKNgIQQQEPCyAAIAEgAhDuHgsCAAszAQF/QRQQpgEiAUG4zhM2AgAgAUL/////DzcCBCABIAAoAhA2AhAgASAAKAIMNgIMIAELCgAgABCOGhCkAQsOACAAIAEQlhpBADYCBAsVACAAIAEQlhpBAzYCBCAAQQE6AAQLaAECf0EAIQICQCAAKAIIIgNBACADKAIAKAIwEQIADQAgACgCCCIDQQEg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agsCAAsCAAsIACABEIIGGgsCAAsCAAsCAAsCAAsIACABEPMmGgsWACAAQRxqEMoHGiAAQRBqEMoHGiAACwgAIAEQ8yYaCwIACwIACx8BAX8gACgCACECIAAgATYCAAJAIAJFDQAgAhCkAQsLIQEBfyAAKAIAIQEgAEEANgIAAkAgAUUNACABEKQBCyAAC7sBAQR/QQEhAgJAIAEoAgAiAyABKAIEIgQQmA8iBUUNACADIAQQ6w4iA0UNAAJAAkAgAygCBCICIAAoAhQgAigCACgCpAMRAgAiA0UNAEECIQIgACADIAAoAgAoAjwRAgANAQwCC0ECIQJBACEDAkAgBSgCBCIEKAIoIAQoAiQiBGtBAnUgACgCECIFTQ0AIAQgBUECdGooAgAhAwsgACADIAAoAgAoAjgRAgBFDQELIAAgARDBJiECCyACC9UCAQd/AkAgASgCACABKAIEEMImIgENAEEBDwsCQAJAAkACQCABKAIEIgIoAiwiASACKAIwIgNPDQAgASAANgIAIAFBBGohAAwBCyABIAIoAigiBGtBAnUiBUEBaiIGQYCAgIAETw0BQQAhBwJAIAMgBGsiA0EBdSIIIAYgCCAGSxtB/////wMgA0H8////B0kbIgZFDQAgBkGAgICABE8NAyAGQQJ0EKYBIQcLIAcgBUECdGoiBSAANgIAIAUhAAJAA0AgASAERg0BIAFBfGoiASgCACEDIAFBADYCACAAQXxqIgAgAzYCAAwACwALIAIoAighAyACIAA2AiggAigCLCEBIAIgBUEEaiIANgIsIAIgByAGQQJ0ajYCMAJAA0AgASADRg0BIAFBfGoQ+yYhAQwACwALIANFDQAgAxCkAQsgAiAANgIsQQAPCxCsAQALEKgHAAspAQF/IAAoAgAhASAAQQA2AgACQCABRQ0AIAEgASgCACgCBBEBAAsgAAsKACAAEMYKEKQBCwUAQZIFCwgAIAFBkgVGCykBAX9BEBCmASIBQaDPEzYCACABQv////8PNwIEIAEgACgCDDYCDCABCzMBAX9BFBCmASIBQdTPEzYCACABQv////8PNwIEIAEgACgCEDYCECABIAAoAgw2AgwgAQs3AQF/QRwQpgEiAUEANgIYIAFCADcCECABQYzQEzYCACABQv////8PNwIEIAEgACgCDDYCDCABCwcAIAAQpAELBABBAAs3AQF/QRwQpgEiAUEANgIYIAFCADcCECABQdjQEzYCACABQv////8PNwIEIAEgACgCDDYCDCABCwcAIAAQpAELBABBAAs3AQF/QRwQpgEiAUEANgIYIAFCADcCECABQaTREzYCACABQv////8PNwIEIAEgACgCDDYCDCABCwcAIAAQpAELBABBAAspAQF/QRAQpgEiAUHw0RM2AgAgAUL/////DzcCBCABIAAoAgw2AgwgAQsUACAAQRBqIAEoAgAgASgCBBD8EAsPACAAQRBqIAEoAhAQ+hALIwEBfwJAIAAoAhAiAUUNACABIAEoAgAoAgQRAQALIAAQxgoLCgAgABCNJxCkAQsFAEGUBQsOACABQe56akH9/wNxRQtcAQF/IwBBEGsiAyQAAkACQCABQcMHRw0AIANBCGogAhD/DyAAKAIAKAIsIQEgAyADKQIINwMAIAAgAyABEQMAQQEhAQwBCyAAIAEgAhCjFiEBCyADQRBqJAAgAQsCAAs3AQF/QRQQpgEiAUEANgIQIAFC/////w83AgQgAUGk0hM2AgAgASAAEIwnIAEgACgCDDYCDCABCzwAIAEgAikDADcDACABQRhqIAJBGGooAgA2AgAgAUEQaiACQRBqKQMANwMAIAFBCGogAkEIaikDADcDAAscACABIAIoAgA2AgAgAUEEaiACQQRqLwEAOwEACywAIAEgAikDADcDACABQQhqIAJBCGoiASgCADYCACACQgA3AwAgAUEANgIACwwAIAEgAikDADcDAAsMACABIAIpAwA3AwALDAAgASACKAIANgIACwIACwoAIAEgAhCcJxoLRAAgACABKQMANwMAIABBCGogAUEIaikDADcDACAAQRBqIAFBEGoQoScaIABBHGogAUEcahChJxogACABLQAoOgAoIAALCgAgASACEJ4nGgslACAAIAEQnCciAEE4aiABQThqKAIANgIAIAAgASkDMDcDMCAACwwAIAEgAigCADYCAAsMACABIAIpAwA3AwALPgAgAEEANgIIIABCADcCACAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCABQQA2AgggAUIANwIAIAALPgEBfyMAQdAAayIDJAAgA0EEOgBIIAMgAjgCDCADIAE2AgggACADQQhqEOYmGiADQQhqEOcmIANB0ABqJAALlQIBBX8CQCAAIAFGDQACQCAAKAIIIgIgACgCACIDayABKAIEIgQgASgCACIFayIBSQ0AAkAgACgCBCICIANrIgYgAU8NACAFIAZqIQECQCACIANGDQAgAyAFIAYQiQEaIAAoAgQhAgsgBCABayEDAkAgBCABRg0AIAIgASADEIkBGgsgACACIANqNgIEIAAPCwJAIAQgBUYNACADIAUgARCJARoLIAAgAyABajYCBCAADwsgAUECdSEGAkAgA0UNACAAIAM2AgQgAxCkAUEAIQIgAEEANgIIIABCADcCAAsgAEEAIAIgBhC5DhDGByAAKAIEIQMCQCAEIAVGDQAgAyAFIAEQiQEaCyAAIAMgAWo2AgQLIAALGwACQCABDQBBAQ8LIAFBOCABKAIAKAIMEQIACxwAAkAgAQ0AQQEPCyABQfwAIAEoAgAoAgwRAgALgAECAX8BfQJAAkAgACgCFCIDIAAoAgRGDQAgASgCCCIBIAMgASgCACgCpAMRAgAiAUUNASABIAAqAhggASgCACgCVBENAA8LIAEgACgCECABKAIAKAI4EQIAIgFFDQAgASoCDCAAKgIYIgRbDQAgASAEOAIMIAEoAgRBAToArAELCwoAIAAQxgoQpAELBQBB9gALHQAgAUGMf2oiAUH//wNxQQpJQYUEIAFB/wdxdnELIwACQCABQeUBRw0AIAAgAhC7CjgCGEEBDwsgACABIAIQ1CYLAgALRwEBf0EcEKYBIgFBkNMTNgIAIAFC/////w83AgQgASAAKgIYOAIYIAEgACgCEDYCECABIAAoAhQ2AhQgASAAKAIMNgIMIAELGwACQCABDQBBAQ8LIAFBOiABKAIAKAIMEQIACxwAAkAgAQ0AQQEPCyABQfoAIAEoAgAoAgwRAgALmAEBAn8jAEEQayIDJAACQAJAIAAoAhQiBCAAKAIERg0AIAEoAggiACAEIAAoAgAoAqQDEQIAIgBFDQEgA0EANgIMIAMgAUEEajYCCCAAIANBCGogACgCACgCUBEDAAwBCyABIAAoAhAgASgCACgCOBECACIARQ0AIAAtABgNACAAQQE6ABggACgCBEEBOgCsAQsgA0EQaiQACwoAIAAQxgoQpAELBQBB8wALHQAgAUGNf2oiAUH//wNxQQtJQYMIIAFB/w9xdnELPQEBf0EYEKYBIgFB3NMTNgIAIAFC/////w83AgQgASAAKAIQNgIQIAEgACgCFDYCFCABIAAoAgw2AgwgAQszAQF/IABBpNQTNgIAAkAgACgCECIBRQ0AIAEgASgCACgCBBEBACAAQQA2AhALIAAQxgoLCgAgABC0JxCkAQsFAEHnAwsPACABQecDRiABQf0ARnILNwECfwJAIAEoAgAgASgCBBDkGiICDQBBAQ8LIAIoAgQhAyACQQA2AgQgACADNgIQIAAgARDBJguvAgEEfyMAQRBrIgMkAAJAAkAgASgC0AIgAUHUAmooAgAgAUGUAmooAgAgAUGYAmooAgAgACgCEBCKGyIEELonIgANAEEAIQAMAQsgACgCDCEACyABQbwCaigCACABQcACaigCACAEELsnIQQCQCAARQ0AAkAgACgCLCIFRQ0AIAVBlgUgBSgCACgCDBECAEUNAAJAAkAgASgCjAEiAQ0AQQAhAQwBCyAAKAIsIQYgASABKAIAQQFqNgIAAkAgASgCCCIFRQ0AIAUgBSgCREEBajYCRAsgAyAFNgIMIANBDGoQowYaIAYgBTYCECAGIAVBfyAFGxDhDwsgARDeCQsgAEEBIAAoAgAoAjQRAwALAkAgBEUNACAEQYAgQQEgBCgCACgCRBEFAAsgA0EQaiQAC7QBAQV/IAIQ/jchAwJAIAFFDQACQAJAIAFpIgRBAUsNACABQX9qIANxIQUMAQsgAyEFIAMgAUkNACADIAFwIQULIAAgBUECdGooAgAiAEUNACABQX9qIQYgBEEBSyEHA0AgACgCACIARQ0BAkAgAyAAKAIEIgRGDQACQAJAIAcNACAEIAZxIQQMAQsgBCABSQ0AIAQgAXAhBAsgBCAFRw0CDAELIAAoAgggAkcNAAsgAA8LQQALGgACQCAAIAEgAhC6JyICDQBBAA8LIAIoAgwLMAEBf0EUEKYBIgFC/////w83AgQgAUEANgIQIAFBpNQTNgIAIAEgACgCDDYCDCABC4UBAQF/AkACQCABQQFIDQAgACgCDCABQQR0akFwaiIBQbC/HCABIAAoAghJGyEBDAELAkAgAUHxsX9IDQAgACgCCCABQQR0aiEBDAELIAAgARCqEiEBCwJAAkAgASgCDCIAQQJGDQBBACECIABBCUcNASABKAIAQRBqDwsgASgCACECCyACCyIBAX8CQCABKAI0IgJFDQAgACACIAEQmBgPCyAAQQA2AgALfQECfyMAQRBrIgQkACAAQSRBGRDEJyEAIAEoAgAhBSACKAIAIQEgAkEANgIAIAQgATYCDAJAIAMoAgAiAkUNACACIAIoAkRBAWo2AkQLIAQgAjYCCCAAIAUgASAEQQhqEMUnGiAEQQhqEKMGGiAEQQxqEMAnGiAEQRBqJAALNgECfwJAIAAoAgAiAUUNACABIAEoAhgiAkF/ajYCGCACQQFHDQAgASABKAIAKAIEEQEACyAACxQAIAAgARCISyIBQQZGIAFBA0ZyC8ACAQJ/AkACQCABQQFIDQAgACgCDCABQQR0akFwaiIDQbC/HCADIAAoAghJGyEDDAELAkAgAUHxsX9IDQAgACgCCCABQQR0aiEDDAELIAAgARCqEiEDCwJAAkAgAygCDEEGRg0AAkAgAC0AASIEQQRxRQ0AIAAgBEH7AXE6AAEgACAAKAIQIgQoAhw2AkAgBCAANgIcCwJAIAAgAxCMSw0AQQAhACACRQ0CIAJBADYCAEEADwsCQCAAKAIQIgMoAiggAygCJEkNACAAEMEtCwJAIAFBAUgNACAAKAIMIAFBBHRqQXBqIgNBsL8cIAMgACgCCEkbIQMMAQsCQCABQfGxf0gNACAAKAIIIAFBBHRqIQMMAQsgACABEKoSIQMLAkAgAkUNACACIAMoAgAoAhA2AgALIAMoAgBBFGohAAsgAAvFAQEFfyMAQSBrIgMkAAJAAkAgASgCNCIERQ0AIAFBDGohBSAEKAJUIQYgBCgCUCEBAkADQCABIAZGDQECQAJAIAEoAgAiB0EMaiAFEIwGRQ0AIAdBKGooAgAgB0EsaigCACACEMsGIgcNAQsgAUEEaiEBDAELCyADQRBqQgA3AwAgA0IANwMIIANBgICA/AM2AhggACAEIAcgA0EIahCMGCADQQhqEIkYGgwCCyAAQQA2AgAMAQsgAEEANgIACyADQSBqJAAL0QEBAX8CQCAAKAIQIgMoAiggAygCJEkNACAAEMEtCwJAIAAtAAEiA0EEcUUNACAAIANB+wFxOgABIAAgACgCECIDKAIcNgJAIAMgADYCHAsCQEEALQCUmR5BAUcNACAAKAIIQRBqIAAoAhQoAghNDQAgAEEBEK8SDQAgAEG27xBBABCxEiAAELISAAsgACABIAIQpUsiAyAAKAIQIAJBAnRqQZDXAGooAgA2AgggACgCCCICQQk2AgwgAiADNgIAIAAgACgCCEEQajYCCCADQRBqC7gBAQF/IwBBEGsiBCQAIAAgATYCAAJAIAJFDQAgAiACKAIYQQFqNgIYCyAAIAI2AgQCQCADKAIAIgJFDQAgAiACKAJEQQFqNgJECyAAQgA3AgwgACACNgIIIABBgICA/AM2AhwgAEEUakIANwIAIAAgASgCSCIBNgIgAkAgAUUNAAJAIAJFDQAgAiACKAJEQQFqNgJECyAEIAI2AgwgASAEQQxqENsnIAQoAgwQ2icLIARBEGokACAACwoAIAAQxycQpAELNgEBfyAAQdzUEzYCACAAEMgnIABBHGoQmg0aAkAgACgCBCIBRQ0AIAAgATYCCCABEKQBCyAAC9sEAQp/AkAgAC0AFA0AIABBAToAFAJAIAAoAhAiAUUNAAJAIAEoAjAiAiAAIAEoAjQiAyACa0ECdRCZCiIEIAMgBBsiBSADRg0AIAUhAgJAA0AgAkEEaiICIANGDQEgAigCACIEIABGDQAgBSAENgIAIAVBBGohBQwACwALIAEoAjAhAiABKAI0IQMLAkAgBSADRg0AIAMgAiAFIAJraiICIAMgBWtqIgRrIQUCQCADIARGDQAgAiAEIAUQiQEaCyABIAIgBWo2AjQLIABBADYCEAsCQCAAKAIcIgVFDQAgAEEcaiEGAkAgBSgCUCIBRQ0AAkACQCABKAIAIgIgACABKAIEIgMgAmtBAnUiBxCZCiIEIAMgBBsiCCADRw0AIAEhBAwBCyAIIQICQANAIAJBBGoiAiADRg0BIAIoAgAiBCAARg0AIAggBDYCACAIQQRqIQgMAAsACyABKAIAIQIgBSgCUCIEKAIEIQMLAkACQCAIIANGDQAgASgCBCIJIAIgCCACa2oiCiADIAhraiICayEDAkAgCSACRw0AIAEgCiADajYCBAwBCyAKIAIgAxCJASECIAUoAlAhBCABIAIgA2o2AgQgBA0AQQAhAgwBCyAEKAIEIAQoAgBrQQJ1IQILIAIgB0YNACAFIAUtAExBBHI6AEwLIAZBABCZDQsgACgCBCECAkADQCACIAAoAghGDQEgACgCGCACKAIAEI0SAkAgAigCBCIDRQ0AIAAoAhggAxCNEgsgACgCGCACKAIIEI0SIAJBDGohAgwACwALIAAgACgCBDYCCAsLyAEBA38CQCAAKAIEIgEgACgCCCICRg0AIAAoAhggAiABa0EMbUEBdEEUahCvEkUNACAAKAIIIQEDQAJAIAEgACgCBEcNACAAKAIIIAFrQQxtIQJBACEBA0AgASACRg0DIAAoAhhBAUEAQQAQyicaIAFBAWohAQwACwALIAAoAhhB8LF/IAFBdGoiAigCABDLJxogACgCGCEDAkAgAUF4aigCACIBRQ0AIANB8LF/IAEQyycaIAIhAQwBCyADEKYSIAIhAQwACwALC7sCAQN/IwBBEGsiBCQAAkACQCACIAFBAWoiBUwNAEEALQCUmR5BAUcNACAAKAIIIAIgBWsiBUEEdGogACgCFCgCCE0NACAAIAUQrxJFDQELAkACQCADDQAgACgCHCEDQQAhBQwBCwJAAkAgA0EBSA0AIAAoAgwgA0EEdGpBcGoiA0GwvxwgAyAAKAIISRshBQwBCwJAIANB8bF/SQ0AIAAoAgggA0EEdGohBQwBCyAAIAMQqhIhBQsgBSAAKAIcIgNrIQULIAAoAgghBiAEIAI2AgwgBCAGIAFBf3NBBHRqIgE2AgggAEHMBSAEQQhqIAEgA2sgBRChSyEDAkAgAkF/Rw0AIAAoAggiAiAAKAIUIgAoAghJDQAgACACNgIICyAEQRBqJAAgAw8LIABBtu8QQQAQsRIgABCyEgALiwIBAX8CQCAALQABIgNBBHFFDQAgACADQfsBcToAASAAIAAoAhAiAygCHDYCQCADIAA2AhwLAkACQEEALQCUmR5BAUcNACAAKAIIQRBqIAAoAhQoAghNDQAgAEEBEK8SRQ0BCwJAAkAgAUEBSA0AIAAoAgwgAUEEdGpBcGoiAUGwvxwgASAAKAIIIgNJGyEBDAELAkAgAUHxsX9IDQAgACgCCCIDIAFBBHRqIQEMAQsgACABEKoSIQEgACgCCCEDCyADIAEoAgAgAhCYSyIBKQMANwMAIANBCGogAUEIaikDADcDACAAIAAoAggiAUEQajYCCCABKAIMDwsgAEG27xBBABCxEiAAELISAAsnACAAQZTVEzYCICAAQfTUEzYCACAAEM0nIABBJGoQwCcaIAAQxycLJQEBfwJAIAAoAhwiAUUNACABIABBIGoQmA0LIAAQzicgABDIJwsiAQF/AkAgACgCKCIBRQ0AIAAoAhggARCNEiAAQQA2AigLCwoAIAAQzCcQpAELBwAgABDOJwsCAAsCAAsKACAAQWBqEM4nC4gDAQV/IABCADcCBCAAQdzUEzYCACAAIAE2AhggAEEMakIANwIAIABBFGpBADoAACACKAIAIQMgAkEANgIAIAAgAzYCHAJAIANFDQAgA0HQAGogABDVJyADIAMtAExBBHI6AEwLAkACQCABKAJIIgNFDQAgACADKAIgIgQ2AhAgBEUNAAJAAkAgBCgCNCIDIAQoAjgiAU8NACADIAA2AgAgA0EEaiEDDAELIAMgBCgCMCICa0ECdSIFQQFqIgZBgICAgARPDQICQAJAIAEgAmsiAUEBdSIHIAYgByAGSxtB/////wMgAUH8////B0kbIgcNAEEAIQYMAQsgBxDWJyEGIAQoAjAhAiAEKAI0IQMLIAYgBUECdGoiBSAANgIAIAUhAQJAA0AgAyACRg0BIAFBfGoiASADQXxqIgMoAgA2AgAMAAsACyAEIAVBBGoiAzYCNCAEKAIwIQIgBCABNgIwIAQgBiAHQQJ0ajYCOCACRQ0AIAIQpAELIAQgAzYCNAsgAA8LEKwBAAvUAgEHfwJAAkACQAJAAkAgACgCACICDQBBACEDQQwQpgEiAkEANgIIIAJCADcCACAAIAI2AgAgAkEEaiEEQQAhBQwBCyACQQRqIQQgAigCBCIDIAIoAggiBU8NACADIAE2AgAgA0EEaiEDDAELIAMgAigCACIGa0ECdSIHQQFqIgBBgICAgARPDQECQAJAIAUgBmsiBUEBdSIIIAAgCCAASxtB/////wMgBUH8////B0kbIgUNAEEAIQgMAQsgBUGAgICABE8NAyAFQQJ0EKYBIQggBCgCACEDCyAIIAdBAnRqIgcgATYCACAHIQACQANAIAMgBkYNASAAQXxqIgAgA0F8aiIDKAIANgIADAALAAsgAigCACEGIAIgADYCACAEIAdBBGoiAzYCACACIAggBUECdGo2AgggBkUNACAGEKQBCyAEIAM2AgAPCxCsAQALEKgHAAscAAJAIABBgICAgARJDQAQqAcACyAAQQJ0EKYBC8gCAQZ/AkACQAJAAkAgACgCBCICIAAoAggiA08NACACIAEpAgA3AgAgAkEIaiABQQhqKAIANgIAIAJBDGohAgwBCyACIAAoAgAiBGtBDG0iBUEBaiIGQdaq1aoBTw0BAkACQCADIARrQQxtIgNBAXQiByAGIAcgBksbQdWq1aoBIANBqtWq1QBJGyIGDQBBACEHDAELIAZB1qrVqgFPDQMgBkEMbBCmASEHCyAHIAVBDGxqIgMgASkCADcCACADQQhqIAFBCGooAgA2AgAgAyEBAkADQCACIARGDQEgAUF0aiIBIAJBdGoiAikCADcCACABQQhqIAJBCGooAgA2AgAMAAsACyAAIANBDGoiAjYCBCAAKAIAIQQgACABNgIAIAAgByAGQQxsajYCCCAERQ0AIAQQpAELIAAgAjYCBA8LEKwBAAsQqAcAC28BAn8jAEEQayIEJAAgAygCACEFIANBADYCACAEIAU2AgwgACABIARBDGoQ1CchAyAEKAIMENknIANBlNUTNgIgIANB9NQTNgIAIAIoAgAhASACQQA2AgAgA0EANgIoIAMgATYCJCAEQRBqJAAgAwsvAQF/AkAgAEUNACAAIAAoAjgiAUF/ajYCOCABQQFHDQAgACAAKAIAKAIEEQEACwsvAQF/AkAgAEUNACAAIAAoAkQiAUF/ajYCRCABQQFHDQAgACAAKAIAKAIEEQEACwvRCQINfwJ9IwBBEGsiAiQAAkAgASgCACIDRQ0AIABB2ABqIQQgAxCWGCEFAkACQAJAIAAoAlwiBg0ADAELAkACQCAGaSIHQQFLDQAgBkF/aiAFcSEIDAELIAUhCCAFIAZJDQAgBSAGcCEICyAEKAIAIAhBAnRqKAIAIglFDQAgBkF/aiEKIAdBAUshCwNAIAkoAgAiCUUNAQJAIAkoAgQiByAFRg0AAkACQCALDQAgByAKcSEHDAELIAcgBkkNACAHIAZwIQcLIAcgCEYNAQwCCyAJKAIIIANHDQAMAgsAC0EUEKYBIQkgAiAAQeAAaiIMNgIIIAIgCTYCBCAJQgA3AgwgCSADNgIIIAkgBTYCBCAJQQA2AgAgAkEBOgAMIAAqAmghDyAAKAJkQQFqsyEQAkACQCAGRQ0AIA8gBrOUIBBdRQ0BCyAGQQF0IAZBA0kgBiAGQX9qcUEAR3JyIQkCQAJAIBAgD5WNIg9DAACAT10gD0MAAAAAYHFFDQAgD6khBwwBC0EAIQcLQQIhAwJAIAkgByAJIAdLGyIJQQFGDQACQCAJIAlBf2pxDQAgCSEDDAELIAkQ+wghAyAAKAJcIQYLAkACQAJAAkAgAyAGSw0AIAMgBk8NAyAGQQNJIQcCQAJAIAAoAmSzIAAqAmiVjSIPQwAAgE9dIA9DAAAAAGBxRQ0AIA+pIQkMAQtBACEJCwJAAkAgBw0AIAZpQQFLDQAgCUEBQSAgCUF/amdrdCAJQQJJGyEJDAELIAkQ+wghCQsCQCADIAkgAyAJSxsiAyAGSQ0AIAAoAlwhBgwECyADRQ0BCwJAIANBgICAgARPDQAgBCADQQJ0EKYBEMctIAAgAzYCXEEAIQkCQANAAkAgCSADRw0AIAwoAgAiCA0CDAULIAQoAgAgCUECdGpBADYCACAJQQFqIQkMAAsACyAIKAIEIQsCQAJAIANpIglBAUsNACALIANBf2pxIQsMAQsgCyADSQ0AIAsgA3AhCwsgBCgCACALQQJ0aiAMNgIAIANBf2ohDSAJQQFLIQoDQCAIKAIAIgdFDQMgBygCBCEJAkACQCAKDQAgCSANcSEJDAELIAkgA0kNACAJIANwIQkLAkAgCSALRg0AAkAgBCgCACAJQQJ0IgZqIg4oAgANACAOIAg2AgAgCSELDAELIAggBygCADYCACAHIAQoAgAgBmooAgAoAgA2AgAgBCgCACAGaigCACAHNgIADAELIAchCAwACwALEKgHAAtBACEGIARBABDHLSAAQQA2AlwMAQsgAyEGCwJAIAYgBkF/aiIJcQ0AIAkgBXEhCAwBCwJAIAUgBk8NACAFIQgMAQsgBSAGcCEICyACKAIEIQkCQAJAAkAgBCgCACAIQQJ0IgNqKAIAIgcNACAJIAwoAgA2AgAgDCAJNgIAIAQoAgAgA2ogDDYCACAJKAIAIgdFDQIgBygCBCEHAkACQCAGIAZBf2oiA3ENACAHIANxIQcMAQsgByAGSQ0AIAcgBnAhBwsgBCgCACAHQQJ0aiEHDAELIAkgBygCADYCAAsgByAJNgIACyACQQA2AgQgACAAKAJkQQFqNgJkIAJBBGoQyC0aCyAJQQxqIAEQ8wYaIAkgCSgCEEEBajYCEAsgAkEQaiQAC4UBAQJ/IwBBEGsiBCQAIABBJEEZEMQnIQUgASgCACEBAkAgAigCACICRQ0AIAIgAigCGEEBajYCGAsgBCACNgIMAkAgAygCACIARQ0AIAAgACgCREEBajYCRAsgBCAANgIIIAUgASACIARBCGoQxScaIAAQ2icgBEEMahDAJxogBEEQaiQAC6oYAg9/An0jAEEgayIDJAAgAEEMaiEEIANBDGogARCeBiIFELoSIQYCQAJAIAAoAhAiB0UNAAJAAkAgB2kiCEEBSw0AIAdBf2ogBnEhCQwBCyAGIQkgBiAHSQ0AIAYgB3AhCQsgBCgCACAJQQJ0aigCACIKRQ0AIAdBf2ohCyAIQQFLIQwDQCAKKAIAIgpFDQECQCAKKAIEIgggBkYNAAJAAkAgDA0AIAggC3EhCAwBCyAIIAdJDQAgCCAHcCEICyAIIAlHDQIMAQsgCkEIaiAFEIwGRQ0ADAILAAtBACEKCyAFEIIGGgJAAkAgCkUNACAAKAIAQfCxfyAKKAIUEMsnGgwBCwJAAkAgACgCCCINDQACQAJAIAINACAAKAIEIgoNAQsgACgCABCmEgwCCyADQQxqIAEQngYhCCAKQRxqKAIAIApBIGooAgAgCBDhBiEKIAgQggYaAkACQAJAAkACQAJAAkACQAJAIAogCigCACgCCBEAACIKQc58ag4KAQoGCgoKAgoKAwALIApByQRGDQYgCkHAA0YNAwJAIApB9gNGDQAgCkH9A0YNBSAKQbQERg0IIApBrwNHDQogACgCAEEgQRsQxCchCiAAKAIAIQggA0EANgIMIAogCCADQQxqEN4nGiADQQxqEN8nGgwKCyAAKAIAQSBBHBDEJyEKIAAoAgAhCCADQQA2AgwgCiAIIANBDGoQ4CcaIANBDGoQ4ScaDAkLIAAoAgBBOEEdEMQnIQogACgCACEIIANBADYCDCAKIAggA0EMahDiJxogA0EMahDjJxoMCAsgACgCAEEgQR4QxCchCiAAKAIAIQggA0EANgIMIAogCCADQQxqEOQnGiADQQxqEOUnGgwHCyAAKAIAQSBBHxDEJyEKIAAoAgAhCCADQQA2AgwgCiAIIANBDGoQ5icaIANBDGoQ5ycaDAYLIAAoAgBBIEEgEMQnIQogACgCACEIIANBADYCDCAKIAggA0EMahDoJxogA0EMahDpJxoMBQsgACgCAEEgQSEQxCchCiAAKAIAIQggA0EANgIMIAogCCADQQxqEOonGiADQQxqEOsnGgwECyAAKAIAQSxBGhDEJyEKIAAoAgAhCCADQQA2AhwgA0EANgIMIAogCCADQQxqIANBHGoQ2CcaIANBHGoQ7CcaIANBDGoQwCcaDAMLIAAoAgBBIEE/EMQnIQogACgCACEIIANBADYCDCAKIAggA0EMahDtJxogA0EMahDuJxoMAgsgACgCAEEBEO8nDAELIA0gDSgCREEBajYCRCADQQxqIAEQngYhCCANQcgAaigCACANQcwAaigCACAIEN0GIQogCBCCBhoCQAJAIApFDQAgAkUNASAKIAooAgAoAggRAAAgAkYNAQsgACgCABCmEgwBCyAAKAIAIQYCQCAAKAIEIghFDQAgCCAIKAIYQQFqNgIYCyADIAg2AggCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCiAKKAIAKAIIEQAAIgdBx3xqDgkDAQoICgoKCgYACwJAIAdB0HxqDgIHBQALIAdBqgNGDQMgB0H1A0YNASAHQbYERg0IIAdBywRHDQkgCiAKKAI4QQFqNgI4IAZBIEE/EMQnIQggAyAKNgIMIANBADYCHCAIIAYgA0EMahDtJxogA0EMahDuJxogA0EcahDuJxoMCgsgCiAKKAI4QQFqNgI4IAZBIEEbEMQnIQggAyAKNgIMIANBADYCHCAIIAYgA0EMahDeJxogA0EMahDfJxogA0EcahDfJxoMCQsgCiAKKAI4QQFqNgI4IAZBIEEcEMQnIQggAyAKNgIMIANBADYCHCAIIAYgA0EMahDgJxogA0EMahDhJxogA0EcahDhJxoMCAsgCiAKKAI4QQFqNgI4IAZBOEEdEMQnIQggAyAKNgIMIANBADYCHCAIIAYgA0EMahDiJxogA0EMahDjJxogA0EcahDjJxoMBwsgCiAKKAI4QQFqNgI4IAZBIEEeEMQnIQggAyAKNgIMIANBADYCHCAIIAYgA0EMahDkJxogA0EMahDlJxogA0EcahDlJxoMBgsgCiAKKAI4QQFqNgI4IAZBIEEfEMQnIQggAyAKNgIMIANBADYCHCAIIAYgA0EMahDmJxogA0EMahDnJxogA0EcahDnJxoMBQsgCiAKKAI4QQFqNgI4IAZBIEEgEMQnIQggAyAKNgIMIANBADYCHCAIIAYgA0EMahDoJxogA0EMahDpJxogA0EcahDpJxoMBAsgCiAKKAI4QQFqNgI4IAZBIEEhEMQnIQggAyAKNgIMIANBADYCHCAIIAYgA0EMahDqJxogA0EMahDrJxogA0EcahDrJxoMAwsgCiAKKAI4QQFqNgI4IAZBLEEaEMQnIQcCQCAIRQ0AIAggCCgCGEEBajYCGAsgA0EANgIYIAMgCDYCDCADIAo2AhwgByAGIANBDGogA0EcahDYJxogA0EcahDsJxogA0EMahDAJxogA0EYahDsJxoMAgsgBiAKKAJgEO8nDAELIAYQphILIANBCGoQwCcaCyAAKAIAQX8Q8CchDiADQQxqIAEQngYiARC6EiEMAkACQAJAIAAoAhAiBg0ADAELAkACQCAGaSIKQQFLDQAgBkF/aiAMcSEHDAELIAwhByAMIAZJDQAgDCAGcCEHCyAEKAIAIAdBAnRqKAIAIghFDQAgBkF/aiEJIApBAUshBQNAIAgoAgAiCEUNAQJAIAgoAgQiCiAMRg0AAkACQCAFDQAgCiAJcSEKDAELIAogBkkNACAKIAZwIQoLIAogB0YNAQwCCyAIQQhqIAEQjAZFDQAMAgsAC0EYEKYBIgggDDYCBCAIQQA2AgAgCEEQaiABQQhqIgooAgA2AgAgCCABKQIANwIIIAFCADcCACAKQQA2AgAgCEEANgIUIABBFGohDyAAKgIcIRIgACgCGEEBarMhEwJAAkAgBkUNACASIAazlCATXUUNAQsgBkEBdCAGQQNJIAYgBkF/anFBAEdyciEKAkACQCATIBKVjSISQwAAgE9dIBJDAAAAAGBxRQ0AIBKpIQUMAQtBACEFC0ECIQcCQCAKIAUgCiAFSxsiCkEBRg0AAkAgCiAKQX9qcQ0AIAohBwwBCyAKEPsIIQcgACgCECEGCwJAAkACQAJAIAcgBksNACAHIAZPDQMgBkEDSSEFAkACQCAAKAIYsyAAKgIclY0iEkMAAIBPXSASQwAAAABgcUUNACASqSEKDAELQQAhCgsCQAJAIAUNACAGaUEBSw0AIApBAUEgIApBf2pna3QgCkECSRshCgwBCyAKEPsIIQoLAkAgByAKIAcgCksbIgcgBkkNACAAKAIQIQYMBAsgB0UNAQsCQCAHQYCAgIAETw0AIAQgB0ECdBCmARDxJyAAIAc2AhBBACEKAkADQAJAIAogB0cNACAPKAIAIgkNAgwFCyAEKAIAIApBAnRqQQA2AgAgCkEBaiEKDAALAAsgCSgCBCELAkACQCAHaSIKQQFLDQAgCyAHQX9qcSELDAELIAsgB0kNACALIAdwIQsLIAQoAgAgC0ECdGogDzYCACAHQX9qIRAgCkEBSyECA0AgCSgCACIGRQ0DIAYoAgQhCgJAAkAgAg0AIAogEHEhCgwBCyAKIAdJDQAgCiAHcCEKCwJAIAogC0YNAAJAIAQoAgAgCkECdCIFaiIRKAIADQAgESAJNgIAIAohCwwBCyAJIAYoAgA2AgAgBiAEKAIAIAVqKAIAKAIANgIAIAQoAgAgBWooAgAgBjYCAAwBCyAGIQkMAAsACxCoBwALQQAhBiAEQQAQ8ScgAEEANgIQDAELIAchBgsCQCAGIAZBf2oiCnENACAKIAxxIQcMAQsCQCAMIAZPDQAgDCEHDAELIAwgBnAhBwsCQAJAAkAgBCgCACAHQQJ0aiIHKAIAIgoNACAIIA8oAgAiCjYCACAPIAg2AgAgByAPNgIAIApFDQIgCigCBCEKAkACQCAGIAZBf2oiB3ENACAKIAdxIQoMAQsgCiAGSQ0AIAogBnAhCgsgBCgCACAKQQJ0aiEKDAELIAggCigCADYCAAsgCiAINgIACyAAIAAoAhhBAWo2AhgLIAggDjYCFCABEIIGGiANENonCyADQSBqJAALSgECfyMAQRBrIgMkACACKAIAIQQgAkEANgIAIAMgBDYCDCAAIAEgA0EMahDUJyECIAMoAgwQ2ScgAkGk1RM2AgAgA0EQaiQAIAILNgECfwJAIAAoAgAiAUUNACABIAEoAjgiAkF/ajYCOCACQQFHDQAgASABKAIAKAIEEQEACyAAC0oBAn8jAEEQayIDJAAgAigCACEEIAJBADYCACADIAQ2AgwgACABIANBDGoQ1CchAiADKAIMENknIAJBvNUTNgIAIANBEGokACACCzYBAn8CQCAAKAIAIgFFDQAgASABKAI4IgJBf2o2AjggAkEBRw0AIAEgASgCACgCBBEBAAsgAAttAQJ/IwBBEGsiAyQAIAIoAgAhBCACQQA2AgAgAyAENgIMIAAgASADQQxqENQnIQIgAygCDBDZJyACQgA3AiQgAkEAOgAgIAJBtNYTNgIAIAJBLGpCADcCACACQYCAgPwDNgI0IANBEGokACACCzYBAn8CQCAAKAIAIgFFDQAgASABKAI4IgJBf2o2AjggAkEBRw0AIAEgASgCACgCBBEBAAsgAAtKAQJ/IwBBEGsiAyQAIAIoAgAhBCACQQA2AgAgAyAENgIMIAAgASADQQxqENQnIQIgAygCDBDZJyACQdTVEzYCACADQRBqJAAgAgs2AQJ/AkAgACgCACIBRQ0AIAEgASgCOCICQX9qNgI4IAJBAUcNACABIAEoAgAoAgQRAQALIAALSgECfyMAQRBrIgMkACACKAIAIQQgAkEANgIAIAMgBDYCDCAAIAEgA0EMahDUJyECIAMoAgwQ2ScgAkHs1RM2AgAgA0EQaiQAIAILNgECfwJAIAAoAgAiAUUNACABIAEoAjgiAkF/ajYCOCACQQFHDQAgASABKAIAKAIEEQEACyAAC0oBAn8jAEEQayIDJAAgAigCACEEIAJBADYCACADIAQ2AgwgACABIANBDGoQ1CchAiADKAIMENknIAJBhNYTNgIAIANBEGokACACCzYBAn8CQCAAKAIAIgFFDQAgASABKAI4IgJBf2o2AjggAkEBRw0AIAEgASgCACgCBBEBAAsgAAtKAQJ/IwBBEGsiAyQAIAIoAgAhBCACQQA2AgAgAyAENgIMIAAgASADQQxqENQnIQIgAygCDBDZJyACQZzWEzYCACADQRBqJAAgAgs2AQJ/AkAgACgCACIBRQ0AIAEgASgCOCICQX9qNgI4IAJBAUcNACABIAEoAgAoAgQRAQALIAALNgECfwJAIAAoAgAiAUUNACABIAEoAjgiAkF/ajYCOCACQQFHDQAgASABKAIAKAIEEQEACyAAC0oBAn8jAEEQayIDJAAgAigCACEEIAJBADYCACADIAQ2AgwgACABIANBDGoQ1CchAiADKAIMENknIAJBzNYTNgIAIANBEGokACACCzYBAn8CQCAAKAIAIgFFDQAgASABKAI4IgJBf2o2AjggAkEBRw0AIAEgASgCACgCBBEBAAsgAAthAQF/AkBBAC0AlJkeQQFHDQAgACgCCEEQaiAAKAIUKAIITQ0AIABBARCvEg0AIABBtu8QQQAQsRIgABCyEgALIAAoAggiAkEDNgIMIAIgAbc5AwAgACAAKAIIQRBqNgIIC5ECAgV/AXwCQAJAIAFBAUgNACAAKAIMIAFBBHRqQXBqIgFBsL8cIAEgACgCCEkbIQEMAQsgACgCCCABQQR0aiEBCwJAIAEoAgwNAEEADwsgAEEQaigCACICKAL4BCEDAkAgAigCiAUiBA0AIAMQjktBAWohBAsgACADIAQQm0shBQJAIAIoAogFRQ0AAkACQCAFKwMAIgeZRAAAAAAAAOBBY0UNACAHqiEGDAELQYCAgIB4IQYLIAIgBjYCiAULIAUgASkDADcDACAFQQhqIAFBCGopAwA3AwACQCABKAIMQQZIDQAgAy0AAUEEcUUNACABKAIAIgEtAAFBA3FFDQAgAEEQaigCACADIAEQnEsLIAQLHwEBfyAAKAIAIQIgACABNgIAAkAgAkUNACACEKQBCwsKACAAEMcnEKQBCwoAIAAQxycQpAELCgAgABDHJxCkAQsKACAAEMcnEKQBCwoAIAAQxycQpAELDgAgAEEBOgAgIAAQyScLQQEBfyAAQbTWEzYCACAAQSxqIQEDfwJAIAEoAgAiAQ0AIABBJGoQ+ScaIAAQxycPCyAAKAIYIAEoAgwQjRIMAAsLKQEBfyAAKAIIEPsnIAAoAgAhASAAQQA2AgACQCABRQ0AIAEQpAELIAALCgAgABD4JxCkAQsiAQF/AkADQCAARQ0BIAAoAgAhASAAEKQBIAEhAAwACwALCwoAIAAQxycQpAELCgAgABDHJxCkAQt1AQN/IABBADYCCCAAQgA3AgACQAJAIAEoAgQiAiABKAIAIgNGDQAgAiADayICQQJ1IgFBgICAgARPDQEgACABENQRIgE2AgQgACABNgIAIAAgASACaiIENgIIIAEgAyACEIkBGiAAIAQ2AgQLIAAPCxCsAQALtAEBBX8gAhCAKCEDAkAgAUUNAAJAAkAgAWkiBEEBSw0AIAFBf2ogA3EhBQwBCyADIQUgAyABSQ0AIAMgAXAhBQsgACAFQQJ0aigCACIARQ0AIAFBf2ohBiAEQQFLIQcDQCAAKAIAIgBFDQECQCAAKAIEIgQgA0YNAAJAAkAgBw0AIAQgBnEhBAwBCyAEIAFJDQAgBCABcCEECyAEIAVHDQIMAQsgACgCCCACRw0ACyAADwtBAAsHACAAEJYYC3kBAn8jAEEQayIEJAAgAEEkQRkQxCchACABKAIAIQUgAigCACEBIAJBADYCACAEIAE2AgwCQCADKAIAIgJFDQAgAiACKAJEQQFqNgJECyAEIAI2AgggACAFIAEgBEEIahDFJxogAhDaJyAEQQxqEMAnGiAEQRBqJAALjQQCCH8BfUECIQICQCABQQFGDQACQCABIAFBf2pxDQAgASECDAELIAEQ+wghAgsCQAJAAkAgAiAAKAIEIgFLDQAgAiABTw0CIAFBA0khAwJAAkAgACgCDLMgACoCEJWNIgpDAACAT10gCkMAAAAAYHFFDQAgCqkhBAwBC0EAIQQLAkACQCADDQAgAWlBAUsNACAEQQFBICAEQX9qZ2t0IARBAkkbIQQMAQsgBBD7CCEECyACIAQgAiAESxsiAiABTw0CIAJFDQELIAAgAhCDKBCEKCAAIAI2AgRBACEBA0ACQCABIAJHDQAgACgCCCIFRQ0DIABBCGohASAFKAIEIQYCQAJAIAJpIgRBAUsNACAGIAJBf2pxIQYMAQsgBiACSQ0AIAYgAnAhBgsgACgCACAGQQJ0aiABNgIAIAJBf2ohByAEQQFLIQgDQCAFKAIAIgRFDQQgBCgCBCEBAkACQCAIDQAgASAHcSEBDAELIAEgAkkNACABIAJwIQELAkAgASAGRg0AAkAgACgCACABQQJ0IgNqIgkoAgANACAJIAU2AgAgASEGDAELIAUgBCgCADYCACAEIAAoAgAgA2ooAgAoAgA2AgAgACgCACADaigCACAENgIADAELIAQhBQwACwALIAAoAgAgAUECdGpBADYCACABQQFqIQEMAAsACyAAQQAQhCggAEEANgIECwscAAJAIABBgICAgARJDQAQqAcACyAAQQJ0EKYBCx8BAX8gACgCACECIAAgATYCAAJAIAJFDQAgAhCkAQsLIQEBfyAAKAIAIQEgAEEANgIAAkAgAUUNACABEKQBCyAAC7kJAgx/An0gASABKAIIEIcoIgI2AgQgACoCECEOIAAoAgxBAWqzIQ8CQAJAIAAoAgQiA0UNACAOIAOzlCAPXUUNAQsgA0EBdCADQQNJIAMgA0F/anFBAEdyciEEAkACQCAPIA6VjSIOQwAAgE9dIA5DAAAAAGBxRQ0AIA6pIQUMAQtBACEFC0ECIQYCQCAEIAUgBCAFSxsiBEEBRg0AAkAgBCAEQX9qcQ0AIAQhBgwBCyAEEPsIIQYgACgCBCEDCwJAAkACQCAGIANLDQAgBiADTw0DIANBA0khBQJAAkAgACgCDLMgACoCEJWNIg5DAACAT10gDkMAAAAAYHFFDQAgDqkhBAwBC0EAIQQLAkACQCAFDQAgA2lBAUsNACAEQQFBICAEQX9qZ2t0IARBAkkbIQQMAQsgBBD7CCEECwJAIAYgBCAGIARLGyIGIANJDQAgACgCBCEDDAQLIAZFDQELIAAgBhCDKBCEKCAAIAY2AgRBACEEAkADQAJAIAQgBkcNACAAKAIIIgcNAgwECyAAKAIAIARBAnRqQQA2AgAgBEEBaiEEDAALAAsgAEEIaiEEIAcoAgQhCAJAAkAgBmkiBUEBSw0AIAggBkF/anEhCAwBCyAIIAZJDQAgCCAGcCEICyAAKAIAIAhBAnRqIAQ2AgAgBkF/aiEJIAVBAUshCgNAIAcoAgAiBUUNAiAFKAIEIQsCQAJAIAoNACALIAlxIQsMAQsgCyAGSQ0AIAsgBnAhCwsCQCALIAhGDQAgBSEEAkAgACgCACALQQJ0IgNqIgwoAgANACAMIAc2AgAgCyEIDAELAkADQAJAIAQiCygCACIEDQBBACEEDAILIAUoAgggBCgCCEYNAAsLIAcgBDYCACALIAAoAgAgA2ooAgAoAgA2AgAgACgCACADaigCACAFNgIADAELIAUhBwwACwALQQAhAyAAQQAQhCggAEEANgIEDAELIAYhAwsCQAJAIANpIg1BAUsNACADQX9qIAJxIQgMAQsgAiEIIAMgAksNACACIANwIQgLAkACQCAAKAIAIAhBAnRqKAIAIgUNAEEAIQcMAQsgA0F/aiEMIAEoAgghCUEAIQQgDUEBSyEKA0AgBCEGIAUiBygCACIFRQ0BIAUoAgQhBAJAAkAgCg0AIAQgDHEhCwwBCyAEIQsgBCADSQ0AIAQgA3AhCwsgCyAIRw0BQQAhCwJAIAQgAkcNACAFKAIIIAlGIQsLIAYgC3IhBCALDQAgBkEBc0EBcQ0ACwsgASgCBCEEAkACQCANQQFLDQAgA0F/aiAEcSEEDAELIAQgA0kNACAEIANwIQQLAkACQAJAIAcNACABIAAoAgg2AgAgACABNgIIIAAoAgAgBEECdGogAEEIajYCACABKAIAIgRFDQIgBCgCBCEFAkAgDUEBSw0AIAUgA0F/anEhBQwCCyAFIANJDQEgBSADcCEFDAELIAEgBygCADYCACAHIAE2AgAgASgCACIFRQ0BIAUoAgQhBQJAAkAgDUEBSw0AIAUgA0F/anEhBQwBCyAFIANJDQAgBSADcCEFCyAFIARGDQELIAAoAgAgBUECdGogATYCAAsgACAAKAIMQQFqNgIMIAELBwAgABCWGAu5DQEBfyAAQfGlERCtEiAAQX8QiwogACgCECAAKAIIQXBqKAIANgL0VyAAIAAoAghBcGo2AgggACgCEEHNBTYC9FMgAEHOBUEAQQBBABCbEiAAQX5Boe0QEJ8SIABBzwVBAEEAQQAQmxIgAEF+Qb2kERCfEiAAQdAFQQBBAEEAEJsSIABBfkGIlhEQnxIgACgCCEFwaiIBKAIAQQE6AAQgACABNgIIIABBpKUREK0SIABBfxCLCiAAKAIQIAAoAghBcGooAgA2AvhXIAAgACgCCEFwajYCCCAAKAIQQdEFNgL4UyAAQdIFQQBBAEEAEJsSIABBfkGh7RAQnxIgAEHTBUEAQQBBABCbEiAAQX5Blu0QEJ8SIABB1AVBAEEAQQAQmxIgAEF+Qb2kERCfEiAAKAIIQXBqIgEoAgBBAToABCAAIAE2AgggAEHP5xEQrRIgAEF/EIsKIAAoAhAgACgCCEFwaigCADYC/FcgACAAKAIIQXBqNgIIIAAoAhBB1QU2AvxTIABB1gVBAEEAQQAQmxIgAEF+QaHtEBCfEiAAQdcFQQBBAEEAEJsSIABBfkGW7RAQnxIgAEHYBUEAQQBBABCbEiAAQX5BvaQREJ8SIAAoAghBcGoiASgCAEEBOgAEIAAgATYCCCAAQRtBrrYRQdkFEJYoIABB7o0REK0SIABBfxCLCiAAKAIQIAAoAghBcGooAgA2AohYIAAgACgCCEFwajYCCCAAKAIQQdoFNgKIVCAAQdsFQQBBAEEAEJsSIABBfkGh7RAQnxIgAEHcBUEAQQBBABCbEiAAQX5Blu0QEJ8SIABB2AVBAEEAQQAQmxIgAEF+Qb2kERCfEiAAKAIIQXBqIgEoAgBBAToABCAAIAE2AgggAEEeQa62EUHdBRCWKCAAQceuERCtEiAAQX8QiwogACgCECAAKAIIQXBqKAIANgKMWCAAIAAoAghBcGo2AgggACgCEEHeBTYCjFQgAEHfBUEAQQBBABCbEiAAQX5Boe0QEJ8SIABB4AVBAEEAQQAQmxIgAEF+QZbtEBCfEiAAQdgFQQBBAEEAEJsSIABBfkG9pBEQnxIgACgCCEFwaiIBKAIAQQE6AAQgACABNgIIIABB+ugREK0SIABBfxCLCiAAKAIQIAAoAghBcGooAgA2ApBYIAAgACgCCEFwajYCCCAAKAIQQeEFNgKQVCAAQeIFQQBBAEEAEJsSIABBfkGh7RAQnxIgAEHjBUEAQQBBABCbEiAAQX5Blu0QEJ8SIABB2AVBAEEAQQAQmxIgAEF+Qb2kERCfEiAAKAIIQXBqIgEoAgBBAToABCAAIAE2AgggAEEgQa62EUHkBRCWKCAAQevoERCtEiAAQX8QiwogACgCECAAKAIIQXBqKAIANgKUWCAAIAAoAghBcGo2AgggACgCEEHlBTYClFQgAEHmBUEAQQBBABCbEiAAQX5Boe0QEJ8SIABB5wVBAEEAQQAQmxIgAEF+QZbtEBCfEiAAQdgFQQBBAEEAEJsSIABBfkG9pBEQnxIgACgCCEFwaiIBKAIAQQE6AAQgACABNgIIIABBxpEREK0SIABBfxCLCiAAKAIQIAAoAghBcGooAgA2AoBYIAAgACgCCEFwajYCCCAAKAIQQegFNgKAVCAAQdgFQQBBAEEAEJsSIABBfkG9pBEQnxIgACgCCEFwaiIBKAIAQQE6AAQgACABNgIIIABBovMQEK0SIABBfxCLCiAAKAIQIAAoAghBcGooAgA2AoRYIAAgACgCCEFwajYCCCAAKAIQQekFNgKEVCAAQdgFQQBBAEEAEJsSIABBfkG9pBEQnxIgAEHqBUEAQQBBABCbEiAAQX5Boe0QEJ8SIAAoAghBcGoiASgCAEEBOgAEIAAgATYCCCAAQR1BtakRQesFEJYoIABB7ukREK0SIABBfxCLCiAAKAIQIAAoAghBcGooAgA2AoxZIAAgACgCCEFwajYCCCAAKAIQQewFNgKMVSAAQdgFQQBBAEEAEJsSIABBfkG9pBEQnxIgAEHtBUEAQQBBABCbEiAAQX5Boe0QEJ8SIABB7gVBAEEAQQAQmxIgAEF+QZbtEBCfEiAAKAIIQXBqIgEoAgBBAToABCAAIAE2AgggAEGehxEQrRIgAEF/EIsKIAAoAhAgACgCCEFwaigCADYC0FggACAAKAIIQXBqNgIIIABB7wVBAEEAQQAQmxIgAEF+QaHtEBCfEiAAQfAFQQBBAEEAEJsSIABBfkG5oREQnxIgACgCCEFwaiIBKAIAQQE6AAQgACABNgIIQQALygEBBX8jAEEQayICJAACQCABKAIgIgNFDQAgAyABKAIIEK4oCyABQRRqIgQhAwNAAkAgAygCACIDDQAgBCgCACEDAkADQCADRQ0BIAMoAgAhBSADQQhqEIIGGiADEKQBIAUhAwwACwALIAEoAgwhAyABQQA2AgwCQCADRQ0AIAMQpAELIAFBCGoQowYaIAFBBGoQwCcaIAJBEGokAA8LIAIgA0EIahDnBSEFIAIgAygCFCIGNgIMIAEoAgAgBhCNEiAFEIIGGgwACwALOQECfyMAQRBrIgEkACAAQQEQryghAiABQQA2AgwgAiAAQQIgAUEMahCwKEEAEN0nIAFBEGokAEEBC6wGAQR/IwBBMGsiASQAAkAgACABQRhqELEoIgJFDQAgAEEBEK8oIQMCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABKAIYQbp/ag4bAQIDBAUGBwgJCgAAAAAAAAAAAAAAAAAACwALAAsgAUGkpRE2AhQgASACNgIQIABB8IoRIAFBEGoQsigACyABQQA2AhwgAyAAQQIgAUEcahCwKEG6AxDdJwwKCyABQQA2AhwgAyAAQQIgAUEcahCwKEH1AxDdJwwJCyABQQA2AhwgAyAAQQIgAUEcahCwKEGxAxDdJwwICyABQQA2AhwgAyAAQQIgAUEcahCwKEHBAxDdJwwHCyABQQA2AhwgAyAAQQIgAUEcahCwKEGqAxDdJwwGCyABQQA2AhwgAyAAQQIgAUEcahCwKEG5AxDdJwwFCyABQQA2AhwgAyAAQQIgAUEcahCwKEG8AxDdJwwECyABQQA2AhwgAyAAQQIgAUEcahCwKEGwAxDdJwwDCwJAIAMoAggiAEHsAGooAgAgAEHwAGooAgBBDxCnDCIARQ0AIABBtgQgACgCACgCDBECAEUNACADKAIAIAAoAmAQ7ycMAwsgAygCAEF/EO8nDAILIAFBADYCHCADIABBAiABQRxqELAoQcsEEN0nDAELIAEgADYCLAJAIAMoAgQiAkUNACADQQRqIQMCQCAAKAIIIgQgACgCDGtBIEcNAAJAAkAgBEFwakGwvxxGDQAgBEF8aigCAEEBSA0AIABBfxDBJw0BIAMoAgAhAgsgAUEcaiACEL4nIAAgAUEsaiADIAFBHGoQ3CcgASgCHBDaJwwDCyAAQX9BABDCJyECIAFBKGogAygCACABQRxqIAIQngYiAhDDJyACEIIGGgJAIAEoAigiAg0AIAFBHGogAygCABC+JyABIAEoAhwiAjYCKEEAENonCyAAIAFBLGogAyABQShqENwnIAIQ2icMAgsgAUEcaiACEL4nIAAgAUEsaiADIAFBHGoQ3CcgASgCHBDaJwwBCyAAEKYSCyABQTBqJABBAQ8LIAFBpKURNgIEIAFBADYCACAAQfCKESABELIoAAtgAQJ/IABBARCvKCEBIABBAhCvKCECAkAgASgCCCIBRQ0AIAEgASgCREEBajYCRAsCQCACKAIIIgJFDQAgAiACKAJEQQFqNgJECyAAIAEgAkYQsyggAhDaJyABENonQQELEAAgASABKAIAKAIEEQAAGgvuAgEFfyMAQRBrIgEkAAJAIABBAiABQQRqELQoRQ0AIAAQtSghAEEAIQICQCABKAIEQcEARw0AAkACQCAAKAIoIgJFDQAgACgCGEHwsX8gAhDLJxoMAQsCQAJAIAAoAhwiAkUNACACIABBIGoQqAwgACgCGCEDAkAgACgCHCgCaCICRQ0AIAIgAigCREEBajYCRAsgA0EkQRkQxCchBCAAKAIYIQUCQCAAKAIkIgNFDQAgAyADKAIYQQFqNgIYCyABIAI2AgggASADNgIMIAQgBSADIAFBCGoQxScaIAIQ2icgAUEMahDAJxoMAQsgACgCGEEkQRkQxCchAyAAKAIYIQQCQCAAKAIkIgJFDQAgAiACKAIYQQFqNgIYCyABQQA2AgggASACNgIMIAMgBCACIAFBCGoQxScaIAFBDGoQwCcaCyAAIAAoAhhBfxDwJzYCKAtBASECCyABQRBqJAAgAg8LIABBAkHArhEQtigAC7MBAQR/IwBBEGsiASQAAkAgAEECIAFBCGoQtChFDQAgABC1KCECAkAgASgCCEHBAEcNACAAQQMQryghAyACKAIcIgBFDQAgAEG8AyAAKAIAKAIMEQIARQ0AIAIoAhwiAigCbCEEAkAgAygCCCIARQ0AIAAgACgCREECajYCRAsgASAANgIMIAQgAiABQQxqELcoIAAQ2icgABDaJwsgAUEQaiQAQQAPCyAAQQJBwK4RELYoAAuSAQEDfyMAQSBrIgEkAAJAAkAgACABQRxqELEoIgJFDQAgABC1KCEDIAFBADoAGyAAIAMgASgCHCABQRtqELgoIQMgAS0AG0EBRg0BIAFBIGokACADDwsgAUGkpRE2AgQgAUEANgIAIABB8IoRIAEQsigACyABQaSlETYCFCABIAI2AhAgAEHwihEgAUEQahCyKAALEAAgASABKAIAKAIEEQAAGguGAQICfwF8IwBBEGsiASQAAkAgAEECIAFBDGoQtChFDQAgABC5KCECQQAhAAJAIAEoAgxBwQBHDQAgAigCGCEAAkACQCACKAIcIgINAEQAAAAAAAAAACEDDAELIAIqAmC7IQMLIAAgAxC6KEEBIQALIAFBEGokACAADwsgAEECQcCuERC2KAALZwICfwF8IwBBEGsiASQAAkAgAEECIAFBDGoQtChFDQAgABC5KCECAkAgASgCDEHBAEcNACAAQQMQuyghAyACKAIcIgBFDQAgACADthC2DwsgAUEQaiQAQQAPCyAAQQJBwK4RELYoAAuQAgEEfyMAQSBrIgEkAAJAAkACQCAAIAFBHGoQsSgiAkUNAEHP5xEhAwJAAkACQAJAAkACQAJAIAAQvCgiBEFlag4HCQYEAAECAwULQe6NESEDDAgLQceuESEDDAcLQfroESEDDAYLQevoESEDDAULQaLzECEDDAQLIARBP0YNAiAAQQFB2ugQELYoAAtBxpERIQMMAgsgAUHa6BA2AgQgAUEANgIAIABB8IoRIAEQsigAC0Hu6REhAwsgAEEBEL0nIQQgAUEAOgAbIAAgBCABKAIcIAFBG2oQuCghBAJAIAEtABtBAUYNACABQSBqJAAgBA8LIAEgAzYCFCABIAI2AhAgAEHwihEgAUEQahCyKAALNgEBfAJAAkAgACgCHCIADQBEAAAAAAAAAAAhAgwBCyAAKgJguyECCyABQQM2AgwgASACOQMAC28AAkBBAC0A3KMeQQFHDQACQCAAKAIQIAFBAnRqQZDfAGoiASgCAA0AIAEgAEEAQQEQmUs2AgALIAAgAiACEFkQkEsiAiACLQABQQhyOgABIAAgASgCACACEKhLIgBCgICAgCA3AwggACADNgIACwsQACABIAEoAgAoAgQRAAAaC3wBAn8jAEEQayIBJAACQCAAQQIgAUEMahC0KEUNACAAEL0oIQJBACEAAkAgASgCDEHBAEcNACACKAIYIQACQAJAIAIoAhwiAg0AQQAhAgwBCyACKAJgIQILIAAgAhC+KEEBIQALIAFBEGokACAADwsgAEECQcCuERC2KAALZAECfyMAQRBrIgEkAAJAIABBAiABQQxqELQoRQ0AIAAQvSghAgJAIAEoAgxBwQBHDQAgAEEDEL8oIQAgAigCHCICRQ0AIAIgABCuEAsgAUEQaiQAQQAPCyAAQQJBwK4RELYoAAs2AQF8AkACQCAAKAIcIgANAEQAAAAAAAAAACECDAELIAAoAmC4IQILIAFBAzYCDCABIAI5AwALEAAgASABKAIAKAIEEQAAGguNAQEDfyMAQRBrIgEkAAJAIABBAiABQQxqELQoRQ0AIAAQwCghAkEAIQACQCABKAIMQcEARw0AIAIoAhghAwJAAkAgAigCHCIARQ0AIAMgACgCYCAAQeAAaiAALABrQQBIGxCcEgwBCyADQeeNEhCcEgtBASEACyABQRBqJAAgAA8LIABBAkHArhEQtigAC4cBAQN/IwBBIGsiASQAAkAgAEECIAFBEGoQtChFDQAgABDAKCECAkAgASgCEEHBAEcNACABQQRqIABBA0EAELAoEJ4GIQACQCACKAIcIgJFDQAgAiABQRRqIAAQ5wUiAxCsECADEIIGGgsgABCCBhoLIAFBIGokAEEADwsgAEECQcCuERC2KAALEAAgASABKAIAKAIEEQAAGgt8AQJ/IwBBEGsiASQAAkAgAEECIAFBDGoQtChFDQAgABDBKCECQQAhAAJAIAEoAgxBwQBHDQAgAigCGCEAAkACQCACKAIcIgINAEEAIQIMAQsgAi0AYCECCyAAIAIQsyhBASEACyABQRBqJAAgAA8LIABBAkHArhEQtigAC2UBAn8jAEEQayIBJAACQCAAQQIgAUEMahC0KEUNACAAEMEoIQICQCABKAIMQcEARw0AIAAQwighACACKAIcIgJFDQAgAiAAQQBHELAQCyABQRBqJABBAA8LIABBAkHArhEQtigACywAAkACQCAAKAIcIgANAEEAIQAMAQsgAC0AYCEACyABQQE2AgwgASAANgIACxAAIAEgASgCACgCBBEAABoL7wEBBH8jAEEQayIBJAACQAJAAkACQCAAQQIgARC0KEUNACAAEMMoIQJBACEAIAEoAgBBwQBHDQMCQCACKAIcIgNFDQAgAygCSCIARQ0AIAAgACgCACgCNBEAAEUNACABQQRqIAAgACgCACgCNBEAAEEQahD+JyEAIAMoAmAiAyAAKAIEIAAoAgAiBGtBAnVJDQIgABDxBhoLIAIoAhhB540SEJwSDAILIABBAkHArhEQtigACyACKAIYIAQgA0ECdGooAgAiAigCDCAC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QCABQXZqQQJJDQAgAUGVf2pBAkkNAEEAIQILIAILHQEBf0HUABCmAUEAQdQAEEgQsBMiASAAEJQZIAELRgAgAEGAwABBARDNCRoCQCABRQ0AA0AgACgCICIARQ0BIABBmQMgACgCACgCDBECAEUNAAsgAEEAIAAoAgAoAvACEQMACwsJACAAQQEQkikLCwAgAEG8fmoQkykLCQAgAEEBEJIpCwkAIABBARCSKQsUACAAIAEpArQBNwIIIABCADcCAAusBQMDfwR9AX4jAEHgAmsiAiQAIAAgARD9CwJAIAFBgMEAcUUNACACQdABakEAKQOwnxU3AwAgAkHIAWpBACkDqJ8VNwMAIAJBACkDoJ8VNwPAAQJAAkAgAEHEAGoiASACQcABahD9BUUNACAAKgK4ASIFQwAAAABfDQAgACoCtAEiBkMAAAAAX0UNAQsgAkHY2RM2AtgBIAIgAkHYAWo2AugBIAJB2AFqIABBgAJqEJkpIAJB2AFqEJopGgwBCyAAKgLAASEHIAAqArwBIQggAkG0AWogAEHIAWoiAyAGEJspIAJBqAFqIABB1AFqIgQgBRCbKSACQZwBaiADIAYQnCkgAkGQAWogBCAFEJwpIAJBhAFqIAIoApwBIAIoAqABIAYgCCAGlSIIixCdKSACQfgAaiACKAKQASACKAKUASAGIAcgBZUiBYsQnSkgAiAANgIMIAJBGGogAUEIaikCADcCACACQSBqIAFBEGopAgA3AgAgASkCACEJIAJBMGogAkHAAWpBCGopAwA3AgAgAkE4aiACQcABakEQaikDADcCACACIAk3AhAgAiACKQPAATcCKCACIAU4AkQgAiAIOAJAIAJByABqIAJBtAFqEKMaGiACQdwAaiACQYQBakEIaigCADYCACACIAIpAoQBNwJUIAJB4ABqIAJBqAFqEKMaGiACQfQAaiACQfgAakEIaigCADYCACACIAIpAng3AmwgAkHYAWogAkEMahCeKSEBQfAAEKYBIgNB/NkTNgIAIANBBGogARCeKRogAiADNgLYAiACQcgCaiAAQYACahCZKSACQcgCahCaKRogARCfKRogAkEMahCfKRogAkGQAWoQygcaIAJBnAFqEMoHGiACQagBahDKBxogAkG0AWoQygcaCyACQeACaiQAC78CAQN/IwBBEGsiAiQAAkAgASAA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A38CQCAAKAKAAkUNACAAKAKMAiECIAAoAogCIQMDQAJAIAMgAkcNACAAKAL4ASAAQewBahChCwwCCyADKAIAIgQgACgCgAIgBCgCACgCVBEDACADQQRqIQMMAAsACwJAIAAoAjQgACgCOBD+KSIDRQ0AIABBADoAqAIgACADNgKgAiAAKAKUAiADEJcYCyAAEP8pGiAAIAMQiB4aQQALNwEBfwNAAkAgACABRw0AQQAPCyAAKAIAIQIgAEEEaiEAIAJBtQMgAigCACgCDBECAEUNAAsgAgs6AQF/AkAgACgCoAINAEEADwtBACEBAkAgAEEAIAAoAgAoAswCEQIARQ0AQQEhASAAQQE6AKkCCyABC0ABAX8gAEHwAWogASgCACABKAIEEPsQAkAgASgCACABKAIEEPkIIgINAEEBDwsgAiAAQfQBahDIDiAAIAEQ+ggLMQEBfwJAIAAgARD7CyICRQ0AIABBACAAKAIAKALMAhECACIARQ0AIAAgARDFCwsgAgtwAQF/IAAgARD9CwJAIAAoAvgBRQ0AAkAgAUGAAXFFDQAgACgCgAIiAkUNACACQcwNaigCACACQdANaigCABC8CwsCQCABQYACcUUNACAAKAL4ASAAKgKEARD+CwsgAUEEcUUNACAAKAL4ARClCxoLC1YAAkAgAC0AzAFBAUcNACABIAEoAgAoAggRAQALIAEgAEHEAGogASgCACgCEBEDACAAKAL4ASABELgJAkAgAC0AzAFBAUcNACABIAEoAgAoAgwRAQALC+ABAgF/BH0jAEHQAGsiAyQAAkACQCAAKAL4AQ0AQQAhAAwBCyADIAA2AjggAUEQaiADQThqEP4KIANBIGogAiAAQcQAahD+BSAAKAL4ASIAKgLQASEEIAAqAsQKIQUgACoC1AEhBiAAKgLICiEHIANCgICAgICAgMA/NwIQIANCgICA/AM3AgggAyAGIAeMlDgCHCADIAQgBYyUOAIYIANBOGogA0EgaiADQQhqEP4FIAAgASADQThqIAAoAgAoAvABEQQAIgANACABIAEoAhRBfGo2AhQLIANB0ABqJAAgAAsdACAAIAAoAgAoAvQBEQAAQX9zIAAoAvgBQQBHcQsVACAAQfABaiABKAIAIAEoAgQQ/BALEQAgAEHwAWogASgC8AEQ+hALAgALAgALAgALAgALAgAL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AAAAIQZDAAAAACEHDAELIAEqAtQBIQcgASoC0AEhBgsgACAHIARD//9/fyAFGyIEIAcgBF0bOAIEIAAgBiACQ///f38gAxsiByAGIAddGzgCAAsCAAuIAQECfyMAQRBrIgMkACAAQZwCaiACEPsJGiAAQZgCaiABEPMGGgJAIABBACAAKAIAKALMAhECAEUNAAJAIAAoAqACIgQNACABKAIAIQQLAkAgAigCACICRQ0AIAIgAigCAEEBajYCAAsgAyACNgIMIAAgBCADQQxqEJwqIAIQkioLIANBEGokAAuBAgEDfyMAQRBrIgMkACAAQQAgACgCACgCzAIRAgAhBAJAIAFFDQAgASABKAJEQQFqNgJECyADIAE2AgwCQCACKAIAIgJFDQAgAiACKAIAQQFqNgIACyADIAI2AgggBCADQQxqIANBCGoQoQYgAhCSKiABEJEqIAAoAowCIQQgACgCiAIhAQJAA0AgASAERg0BAkAgASgCACICQd8AIAIoAgAoAgwRAgBFDQAgASgCACEFAkAgAEEAIAAoAgAoAswCEQIAKAKADSICRQ0AIAIgAigCAEEBajYCAAsgBUHEAGooAgAgAhCeKiACEJIqCyABQQRqIQEMAAsACyADQRBqJAALgAIBBH8jAEEQayICJAAgAEGcAmogARD7CRogAEGYAmpBABCLEQJAIABBACAAKAIAKALMAhECAEUNACAAEP8pDQAgAEEAIAAoAgAoAswCEQIAIQMCQCABKAIAIgRFDQAgBCAEKAIAQQFqNgIACyACIAQ2AgwgAyACQQxqEN0JIAIoAgwQkiogACgCjAIhAyAAKAKIAiEAA0AgACADRg0BAkAgACgCACIEQd8AIAQoAgAoAgwRAgBFDQAgACgCACEFAkAgASgCACIERQ0AIAQgBCgCAEEBajYCAAsgBUHEAGooAgAgBBCeKiAEEJIqCyAAQQRqIQAMAAsACyACQRBqJAALRwEBfyMAQRBrIgIkAAJAIABFDQACQCABRQ0AIAEgASgCAEEBajYCAAsgAiABNgIMIAAgAkEMahDbDSABEN4JCyACQRBqJAALiwIBBn8jAEEQayICJAAgAEGYAmogARDzBhoCQCAAQQAgACgCACgCzAIRAgAiA0UNACAALQDgAQ0AAkAgAygCgA0iAEUNACAAIAAoAgBBAWo2AgACQAJA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KAsIACAAQZR+agsNACAAQZR+aiABEJ8qCxUAIABBlH5qIgAgACgCACgCCBEAAAsLACAAQYx+ahD2KQsLACAAQYx+ahD3KQsNACAAQYx+aiABEI4qCwoAIABBXGooAgALDQAgAEGMfmogARCVKgsLACAAQYR+ahD2KQsLACAAQYR+ahD3KQsLACAAQax+aigCAAsEAEEACwQAQQALBABBAAsCAAsCAAsEAEEACwQAQQELBABBAAu4AQIBfwV9IwBBIGsiAyQAAkACQCAAKAL4AQ0AQQAhAAwBCyADQRhqQQApA7CfFTcDACADQRBqQQApA6ifFTcDACADQQApA6CfFTcDCCAAQcQAaiADQQhqEP0FIgBFDQAgAyoCGCEEIAMqAhAhBSADKgIIIQYgAiADKgIcIAMqAgwgAae+IgeUIAMqAhQgAUIgiKe+IgiUkpI4AgQgAiAEIAYgB5QgBSAIlJKSOAIACyADQSBqJAAgAAtVACAAIAEoAtABNgLQASAAIAEgACgCACgCnAIRAwAgACABLQDUAToA1AEgACABKgLYATgC2AEgACABKgLcATgC3AEgACABLQDgAToA4AEgACABENwLC0gBAX8gABDeKiIBIAAgACgCACgCkAMRAAAgASgCACgCjAMRAwACQCAAKAL4ASIARQ0AIAEgABCHBiABKAIAKALAAhEDAAsgAQtlAQF/QdgCEKYBQQBB2AIQSBCAEyIBIAAqAqwCOAKsAiABIAAqArACOAKwAiABIAAoArQCNgK0AiABIAAoArgCNgK4AiABIAAoArwCNgK8AiABIAAoAsACNgLAAiABIAAQ3CogAQtKAAJAIAFBACABKAIAKALMAhECAEUNACAAIAFBACABKAIAKALMAhECACIBIAEoAgAoAsQCEQMADwsgAEIANwIAIABBCGpCADcCAAsNACAAIAFBvH1qEN8qC0ABAX9BACECAkAgAEEAIAAoAgAoAswCEQIARQ0AIABBACAAKAIAKALMAhECACIAQQA6AMANIAAoApgCIQILIAILDQAgAEG8fWogABDhKgsuAQF/AkAgACgCKCICRQ0AIAIgAEEAIAAoAgAoAswCEQIAEPkKIAAoAigQ0gwLCw0AIABBlH5qIAAQ4yoLDAAgABDmKiAAEOcqC80CAgN/AX0CQCAAQQAgACgCACgCzAIRAgBFDQAgAEEAIAAoAgAoAswCEQIAIgFFDQAgACgC1AIQ6CohAgJAAkACQAJAAkAgACgC1AIoArwCDgMAAQIECyABQQE2AqgKIAFBADoAtQogAUEAIAEoAgAoAvACEQMAAkAgACgC1AIiAyoCrAIiBEMAAIC/XA0AIAEqArgNIQQLIAMoArQCIQMgASACOgC0CiABIAM2AqgKIAEgBDgCpAoMAgsgAUEBNgKoCiABQQA6ALUKIAFBACABKAIAKALwAhEDAAJAIAAoAtQCKgKsAiIEQwAAgL9cDQAgASoCuA0hBAsgASACOgC0CiABQQM2AqgKIAEgBDgCpAoMAQsgAUEDNgKoCiABQQE6ALUKCyABQQAgASgCACgC8AIRAwALIAAoAtQCIgAgASAAKAIAKALMAxEDAAsL2QICA38BfQJAIABBACAAKAIAKALMAhECAEUNACAAQQAgACgCACgCzAIRAgAiAUUNACAAKALUAhDoKiECAkACQAJAAkACQCAAKALUAiIDKALAAg4CAAECCyABQQE2ArAKIAFBADoAtgogAUEAIAEoAgAoAvACEQMAAkAgACgC1AIiAyoCsAIiBEMAAIC/XA0AIAEqArwNIQQLIAMoArgCIQMgASACOgC0CiABIAM2ArAKIAEgBDgCrAoMAgsgAUEBNgKwCiABQQA6ALYKIAFBACABKAIAKALwAhEDAAJAIAAoAtQCKgKwAiIEQwAAgL9cDQAgASoCvA0hBAsgASACOgC0CiABQQM2ArAKIAEgBDgCrAoMAQsgAygCvAJBAkcNASABQQM2ArAKIAFBAToAtgoLIAFBACABKAIAKALwAhEDAAsgACgC1AIiACABIAAoAgAoAswDEQMACws2AQJ/QQEhAQJAIAAoAiAiAkGZAyACKAIAKAIMEQIARQ0AIAAoAiBBlAJqKAIAENkNIQELIAELDQAgAEG8fWpBABDlKgvAAwICfwJ9IwBBMGsiAiQAIAAgARCCKiAAQQAgACgCACgCzAIRAgAhAwJAIAFBgAFxRQ0AIANFDQAgAyoCoAIhBCADKgKcAiEFAkACQCAAKAIgIgFBASABKAIAKAIMEQIARQ0AIAIgACgCIBCqCyACQoCAgICAgIDAPzcCICACQoCAgPwDNwIYIAIgBCACKgIEkjgCLCACIAUgAioCAJI4AiggAiACQRhqIABBxABqEP4FIABB1ABqIAJBEGopAgA3AgAgAEHMAGogAkEIaikCADcCACAAIAIpAgA3AkQMAQsgAiAEOAIUIAIgBTgCECACQoCAgICAgIDAPzcCCCACQoCAgPwDNwIAIAJBGGogAiAAQcQAahD+BSAAQdQAaiACQShqKQIANwIAIABBzABqIAJBIGopAgA3AgAgACACKQIYNwJECyACIAMQqgsgAkKAgICAgICAwD83AiAgAkKAgID8AzcCGCACIAIqAgSMOAIsIAIgAioCAIw4AiggAiACQRhqIABBxABqEP4FIABB1ABqIAJBEGopAgA3AgAgAEHMAGogAkEIaikCADcCACAAIAIpAgA3AkQLIAJBMGokAAtPAQR/AkAgACgCzAIiASAAKALIAiICRg0AIABBxAJqIQMDQCACIAFGDQEgAigCACIEIAMgBCgCACgCABEDACACQQRqIQIMAAsACyAAEJokCxYAIAAgARD9KRogABDmKiAAEOcqQQALOAACQCAAQQAgACgCACgCzAIRAgBFDQAgAEEAIAAoAgAoAswCEQIAIgAgASAAKAIAKALoAhEDAAsLDQAgAEG8fWogARDtKgtBAAJAIABBACAAKAIAKALMAhECAEUNACAAQQAgACgCACgCzAIRAgAiACABIAIgAyAEIAAoAgAoAuwCEScAGgtBAAsWACAAQbx9aiABIAIgAyAEEO8qGkEACwcAIAAQ5ioLBwAgABDnKgsHACAAEOYqCwcAIAAQ5yoLBwAgABDmKgsHACAAEOcqCyAAAkAgACgC+AEiAA0AQQAPCyAAIAAoAgAoAqgDEQAACyMAAkAgAEG0f2ooAgAiAA0AQQAPCyAAIAAoAgAoAqgDEQAAC2IBAX8CQCAAKAIgIgJBmQMgAigCACgCDBECAEUNACAAKAIgQZgCaigCABCiDAsgACABEI4qIAAQ5iogABDnKgJAIAAoAiAiAUGZAyABKAIAKAIMEQIARQ0AIAAoAiAQogsLCw0AIABBjH5qIAEQ+SoLEQAgAEHEAmoQ8wsaIAAQ9ikLCgAgABD7KhCkAQsFAEHEAwtDAQF/AkACQCABQXZqIgJBHEsNAEEBIAJ0QYuAgIABcQ0BCyABQaV/akECSQ0AIAFBAkYNACABQcQDRg0AQQAPC0EBC4MBAAJAAkACQAJAAkACQAJAIAFB6XpqDgYAAQIDBAUGCyAAIAIQuwo4AqwCQQEPCyAAIAIQuwo4ArACQQEPCyAAIAIQogo2ArQCQQEPCyAAIAIQogo2ArgCQQEPCyAAIAIQogo2ArwCQQEPCyAAIAIQogo2AsACQQEPCyAAIAEgAhD6KQsEAEEBCwQAQQELBAAgAAsEAEEBCwsAIABBjH5qEPsqCwsAIABBjH5qEPwqCwsAIABBhH5qEPsqCwsAIABBhH5qEPwqCwgAIABBvH1qCwQAQQELSAEBfyAAEIsrIgEgACAAKAIAKAKQAxEAACABKAIAKAKMAxEDAAJAIAAoAvgBIgBFDQAgASAAEIcGIAEoAgAoAsACEQMACyABC0EBAX9BuAIQpgFBAEG4AhBIEOATIgEgACgCrAI2AqwCIAEgACoCsAI4ArACIAEgACoCtAI4ArQCIAEgABDcKiABC9EBAgJ/An0jAEHAAGsiAiQAIAAgARCCKiAAQQAgACgCACgCzAIRAgAhAwJAIAFBgAFxRQ0AIANFDQACQAJAIAAoAiAiAUUNACABQZkDIAEoAgAoAgwRAgBFDQAgAkEwaiABIAEoAgAoAngRAwAMAQsgAkEwaiADEKQGCyAAKgK0AiEEIAAqArACIQUgAC0ArAIhASACQQhqIAMQpAYgAkEYaiABIAUgBCACQTBqIAJBCGpDAACAPxD4BSAAQcQAaiACQRhqELoJGgsgAkHAAGokAAsKACAAEPYpEKQBCwUAQcMDC0MBAX8CQAJAIAFBdmoiAkEcSw0AQQEgAnRBi4CAgAFxDQELIAFBpX9qQQJJDQAgAUECRg0AIAFBwwNGDQBBAA8LQQELVAACQAJAAkACQCABQfx6ag4CAQIACyABQZoERw0CIAAgAhCiCjYCrAJBAQ8LIAAgAhC7CjgCsAJBAQ8LIAAgAhC7CjgCtAJBAQ8LIAAgASACEPopCwIACwIACwIACwsAIABBjH5qEPYpCwsAIABBjH5qEI0rCwsAIABBhH5qEPYpCwsAIABBhH5qEI0rCzIBAX8CQCAAEKAGIgFFDQAgAS0ADCAALQA4IgBGDQAgASAAOgAMIAEoAgRBAToArAELCzMBAX8CQCAAEKAGIgBFDQAgAC0ADCABRiICDQAgAg0AIAAgAToADCAAKAIEQQE6AKwBCwsjAAJAAkAgABCgBiIADQBBACEADAELIAAtAAwhAAsgAEEBcQsKACAAEMMKEKQBCwUAQfsACyoBAX9BASECAkACQAJAIAFBh39qDgMCAQIACyABQQpGDQELQQAhAgsgAgsjAAJAIAFB7gFHDQAgACACENoKOgA4QQEPCyAAIAEgAhCVFgsCAAslAQF/QTwQpgFBAEE8EEgQmBMiASAALQA4OgA4IAEgABChKyABCxMAIAAgASgCNDYCNCAAIAEQ3wsLGQAgABDQCiIAQdT0EzYCACAAQX82AkAgAAsaACAAQcjwEzYCACAAQcgAahCkKxogABDCCgspAQF/IAAoAgAhASAAQQA2AgACQCABRQ0AIAEgASgCACgCBBEBAAsgAAsDAAALBQBB4QALLAEBf0EBIQICQCABQXZqQQJJDQACQCABQaN/ag4FAQAAAAEAC0EAIQILIAILIwACQCABQcgBRw0AIAAgAhC7CjgCREEBDwsgACABIAIQqSsLIwACQCABQcYBRw0AIAAgAhCiCjYCQEEBDwsgACABIAIQvgoLAgALawEDf0EAIQICQCABKALoCyABKALkCyIDa0ECdSAAKAJAIgRNDQAgAyAEQQJ0aigCACECC0HQABCmASACIAFDAACAPxCrBiECIAAoAkghASAAIAI2AkgCQCABRQ0AIAEgASgCACgCBBEBAAsLAgALAgALBQBB3QALIwEBf0EBIQICQCABQXZqQQJJDQAgAUHdAEYNAEEAIQILIAILOwEBf0EAIQICQCAAIAEQ5w5FDQAgASAAKAIYIAEoAgAoAggRAgAiAUHcACABKAIAKAIMEQIAIQILIAILFgAgACABEOgOGiAAKAIgIAAQkCpBAAsDAAALNAIBfwF9AkAgABCgBiIBRQ0AIAEqAgwgACoCOCICWw0AIAEgAjgCDCABKAIEQQE6AKwBCwsrAAJAIAAQoAYiAEUNACAAKgIMIAFbDQAgACABOAIMIAAoAgRBAToArAELCxkAAkAgABCgBiIADQBDAAAAAA8LIAAqAgwLCgAgABDDChCkAQsFAEH8AAsrAQF/QQEhAgJAAkACQCABQYd/ag4EAgEBAgALIAFBCkYNAQtBACECCyACCyMAAkAgAUHvAUcNACAAIAIQuwo4AjhBAQ8LIAAgASACEJUWCwIACyUBAX9BPBCmAUEAQTwQSBCfEyIBIAAqAjg4AjggASAAEKErIAELMQEBfwJAIAAoAkgiAUUNACABIAEoAhwgASABKAIAKAIYEQsAIAAqAkyUENglELgDCwsWACAAIAEQqysgACAAKAIAKAJgEQEACysCAX8BfQJAIAAoAkgiA0UNACAAKgJEIgRDAAAAAFsNACADIAQQvwMLQQALCgAgABCjKxCkAQsFAEHiAAswAQF/AkACQCABQaN/aiICQQVLDQBBASACdEExcQ0BCyABQXZqQQJJDQBBAA8LQQELIwACQCABQcoBRw0AIAAgAhC7CjgCTEEBDwsgACABIAIQqCsLJwEBf0HQABCmAUEAQdAAEEgQoRMiASAAKgJMOAJMIAEgABDEKyABCxMAIAAgASoCRDgCRCAAIAEQxSsLEwAgACABKAJANgJAIAAgARDfCwtTAQJ/AkAgACgCSCIDDQBBAA8LQQAhBAJAIAAtAFBBAUcNACADIAAqAkwgAZQgAxCsBiEECwJAIAAqAkQiAUMAAAAAWw0AIAAoAkggARC/AwsgBAsKACAAEKMrEKQBCwUAQeAACzABAX8CQAJAIAFBo39qIgJBBEsNAEEBIAJ0QRlxDQELIAFBdmpBAkkNAEEADwtBAQs6AAJAAkACQCABQbl+ag4DAAIBAgsgACACELsKOAJMQQEPCyAAIAIQ2go6AFBBAQ8LIAAgASACEKgrCwIACwIACzEBAX9B1AAQpgFBAEHUABBIEIgTIgEgACoCTDgCTCABIAAtAFA6AFAgASAAEMQrIAELNQEBfyAAQfDzEzYCAAJAIAAoAkgiAUUNACAAIAE2AkwgARCkAQsgAEHEAGoQ1wwaIAAQwgoLCgAgABDOKxCkAQsFAEHfAAsqAQF/QQEhAgJAIAFBdmpBAkkNAAJAIAFBo39qDgMBAAEAC0EAIQILIAILGgACQCAAKAJEIgANAEEADwsgACABIAIQuwYLhQQBBn8jAEEQayICJAAgASAAKAJAENgLIQMgACgCRCEEIAAgAzYCRAJAIARFDQAgBCAEKAIAKAIEEQEAIAAoAkQhAwsCQCADRQ0AIAAoAiAiA0UNACADQdwAIAMoAgAoAgwRAgBFDQAgACgCICIDKAIoIgRFDQAgBCgCyA0iBUUNACAAKAJEIAUQrwsCQANAIAMoAiAhAwJAAkADQCADRQ0BIANBASADKAIAKAIMEQIARQ0CIAMoAsQNIgNFDQEgAyADKAIAKAJAEQAAIgNFDQEgA0ELIAMoAgAoAgwRAgANAAsLQQAhAyACQQA2AgwMAgsgA0ECIAMoAgAoAgwRAgBFDQAgAygCOCEGIAMoAjQhBANAIAQgBkYNASAEKAIAIQcgBEEEaiEEIAdBjQUgBygCACgCDBECAEUNAAsLIAJBDGogBxC0CwJAIAIoAgwiAw0AQQAhAwwBCyADIAMoAgBBAWo2AgALIAIgAzYCCCABIAUgAkEIahCnBiACQQhqEKkGGiACQQxqEKkGGgsgACgCTCAAKAJIa0ECdSEBQQAhBAJAA0AgBCABRg0BAkACQCAAKAJIIARBAnRqKAIAIgNB+wAgAygCACgCDBECAA0AIANB/AAgAygCACgCDBECAEUNAQsgAyADKAIAKAJMEQEACyAEQQFqIQQMAAsACyACQRBqJAALJwEBfyAAKAJEIQEgAEEANgJEAkAgAUUNACABIAEoAgAoAgQRAQALCxYBAX9B1AAQpgEQnRMiASAAEMUrIAELDwAgACAAKAIAKAJMEQEACygAAkAgABCgBiIARQ0AIAAtABgNACAAQQE6ABggACgCBEEBOgCsAQsLCgAgABDDChCkAQsFAEH6AAsjAQF/QQEhAgJAIAFBh39qQQJJDQAgAUEKRg0AQQAhAgsgAgsbAQF/QTgQpgFBAEE4EEgQiRMiASAAEKErIAELBwAgABCpCQsHACAAEKkJCzwCAn8BfSMAQRBrIgEkACAAKAIoIQIgASAAKQJUNwIAIAFBCGogAiABEKkLIAEqAgghAyABQRBqJAAgAws8AgJ/AX0jAEEQayIBJAAgACgCKCECIAEgACkCVDcCACABQQhqIAIgARCpCyABKgIMIQMgAUEQaiQAIAMLOAACQANAIAAoAiAiAEUNASAAQZkDIAAoAgAoAgwRAgBFDQAgAEEAIAAoAgAoAvACEQMADAALAAsLCgAgABCdChCkAQsEAEECCzgBAX8CQAJAIAFBdmoiAkEcSw0AQQEgAnRBg4CAgAFxDQELIAFBAkYNACABQdsARg0AQQAPC0EBCx0BAX9BtAEQpgFBAEG0ARBIEJsKIgEgABDdCyABCzYBAX9B4AAQpgFBAEHgABBIEMkTIgFB0ABqIABB0ABqEOgFIAEgACgCXDYCXCABIAAQ3wsgAQsKACAAELMVEKQBC0QBAn0gASoC8AEhBiAAIAEqAvQBIgcgBEP//39/IAUbIgQgByAEXRs4AgQgACAGIAJD//9/fyADGyIEIAYgBF0bOAIAC0QBAn0gASoCiAEhBiAAIAEqAowBIgcgBEP//39/IAUbIgQgByAEXRs4AgQgACAGIAJD//9/fyADGyIEIAYgBF0bOAIACysAIAAgASoCABDDDyAAIAEqAgQQxA8gABCZDCAAQQAgACgCACgC8AERAwALMgEBfyMAQRBrIgUkACAFIAEpAgA3AwggAEGYf2ogBUEIakEAQQBBABDpKyAFQRBqJAALfwECfyAAQQAQ7CsCQCABRQ0AIAAhAQNAIAEoAiAiAUUNASABQZkDIAEoAgAoAgwRAgAhAiABKAIAIQMCQCACRQ0AIAFBACADKALwAhEDAA8LIAFBAiADKAIMEQIARQ0AIAFBAyABKAIAKAIMEQIARQ0BIAEgACgCvAFGDQALCwsfACAAQRBBABDNCRoCQCAAKAK8ASIARQ0AIAAQ/ysLCxIAIABBASAAKAIAKALwAREDAAsSACAAQQEgACgCACgC8AERAwALEgAgAEEBIAAoAgAoAvABEQMACxIAIABBASAAKAIAKALwAREDAAsKACAAENUVEKQBC4oBAQR9AkACQCAAp74iAyABQiCIp74iBJQgAae+IgUgAEIgiKe+IgaUkyADIAWUIAYgBJSSENEZIgSLIgND2w/JP11FDQAgBBDvGEMAAIA/kiEEDAELQwAAAEAgAxDEGJMhBAsgAiAEQ9sPSUBD2w/JQCADlSIDIAOSlRDOGUOrqqo/lCAClJQQjAELYgECfyMAQRBrIgIkACAAIAMQiB4aIAAhAwJAA0AgAygCICIDRQ0BIANBAyADKAIAKAIMEQIARQ0ACyAAIAM2ArwBIAIgADYCDCADQbADaiACQQxqENkfCyACQRBqJAAgA0ULBwAgABDhIQs4AAJAIAJBgICAgARJDQAQrAEACyABIABrIgFBAXUiACACIAAgAksbQf////8DIAFB/P///wdJGwtlACAAIAM2AhBBACEDIABBADYCDAJAAkAgAUUNACABQYCAgIAETw0BIAFBAnQQpgEhAwsgACADNgIAIAAgAyACQQJ0aiICNgIIIAAgAyABQQJ0ajYCDCAAIAI2AgQgAA8LEKgHAAuTAQEDfyABKAIEIQIgACgCACEDIAAoAgQhBAJAA0AgBCADRg0BIAJBfGoiAiAEQXxqIgQoAgA2AgAMAAsACyABIAI2AgQgACgCACEEIAAgAjYCACABIAQ2AgQgACgCBCEEIAAgASgCCDYCBCABIAQ2AgggACgCCCEEIAAgASgCDDYCCCABIAQ2AgwgASABKAIENgIAC0IBAn8gACgCCCEBIAAoAgQhAgJAA0AgASACRg0BIAAgAUF8aiIBNgIIDAALAAsCQCAAKAIAIgFFDQAgARCkAQsgAAsIACAAQcQAaguNAwMEfwN+An0gAEL////7////v383AgggAEL////79///v/8ANwIAIAEoAuABIQIgASgC0AEhAyABKALcASEBAkADQCABIgQgAkYNASADIAQtAAAiBUEYdEEYdUECdEHYhBRqKAIAQQN0aiEBAkACQAJAAkACQCAFDgUAAQMEAgQLIAAgASoCACABQQRqKgIAEPkiDAMLIAAgASoCCCABQQxqKgIAEPkiDAILIABBACABKgIAIAEqAgggASoCECABKgIYEPsrIABBASABKgIEIAEqAgwgASoCFCABKgIcEPsrDAELIABBACABKQIAIganviIJIAkgASkCCCIHp74iCiAJk0Orqio/lJIgCiABKQIQIginviIJk0Orqio/lCAJkiAJEPsrIABBASABKgIEIAdCIIinviIJIAZCIIinviIKk0Orqio/lCAKkiAJIAhCIIinviIKk0Orqio/lCAKkiABKgIUEPsrCyAEQQFqIQEgAyAELAAAQQJ0QaD6E2ooAgBBA3RqIQMMAAsACwvqAQEGfSAAIAEgAhDULCAAIAEgBRDULAJAAkACQCADIAKTQwAAQECUIgYgBCADk0MAAEBAlCIHIAeSIgiTIAUgBJNDAABAQJQiCZIiCkMAAAAAWw0AIAAgASAHIAaTIgggByAHlCAJIAaUk5EiC5OMIAqVIAIgAyAEIAUQ1SwgCCALkowgCpUhCgwBCyAHIAlbDQEgCCAJkyAHIAmTIgogCpKVIQoLIAAgASAKIAIgAyAEIAUQ1SwLAkAgByAGkyIGIAaSIgYgB1sNACAAIAEgBiAGIAkgB5MiByAHkpOVIAIgAyAEIAUQ1SwLC9UUAw5/A34LfSMAQZAEayICJAAgACAAKAIAKAL0AREAACEDAkAgACgCxAEgACgCwAEiBGsiBUECdSIGQQJJDQACQAJAIAQoAgAiBEEkIAQo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AkAgACoCACACXkUNACAAIAI4AgALIAAqAgggAl1FDQIgAEEIaiEADAELAkAgACoCBCACXkUNACAAIAI4AgQLIAAqAgwgAl1FDQEgAEEMaiEACyAAIAI4AgALC2MBAX0CQCACQwAAAABgRQ0AIAJDAACAP19FDQAgACABIAIgApQgApQgBpRDAACAPyACkyIGQwAAQECUIgcgApQgApQgBZQgBiAGIAaUlCADlCAGIAeUIAKUIASUkpKSENQsCwvQAwIFfwF+IwBBIGsiAiQAIAJBEGpBCGogAEEIaiIDKQIANwMAIAIgACkCADcDEAJAAkACQAJAIAAoAgAgAygCAEcNACAAKAIEIAAoAgxGDQELIAAQ1ywMAQsgAEGAgID8ezYCwAQgABDYLCAAIABBCGogACgCBCAAKAIMSRspAgAhBwJAAkAgAUEBSA0AIAAoAowDIAAoAogDIgFrQQJ1QX9qIAdCIIinIgNNDQMgAEGIA2ogASADQQJ0aiIBIAEgACgCsAMgACgCtAMgAxDZLEECdGoQ2iwMAQsgB0KAgICAEFQNAiAAKAK0AyEEIAAoArADIQUCQAJAIAdCIIinQX9qIgFFDQACQCAEIAVrQQJ1IAFLDQAgASEDDAILIAUgAUECdGooAgAhBgNAIAEiA0UNASAFIANBf2oiAUECdGooAgAgBkYNAAwCCwALQQAhAwsgAEGIA2ogACgCiAMgA0ECdGoiASABIAUgBCADENksQQJ0ahDaLAsgACAALQCkBEELcjoApAQgACADrUIghkL/////D4QiBzcCCCAAIAc3AgALIAJBCGogAkEQakEIaikDADcDACACIAIpAxA3AwAgACACENssCyACQSBqJAALtAECA38CfiAAQYCAgPx7NgLABCAAKAIMIQEgACgCBCECAkACQCAAKAIAIAAoAghHDQAgAiABRg0BCyAAQYgDaiAAKAKIAyIDIAApAgAiBCAAKQIIIgUgAiABSSIBG0IgiKdBAnRqIAMgBSAEIAEbQiCIp0ECdGoQ2iwgACAALQCkBEELcjoApAQgACAAIABBCGogACgCBCAAKAIMSRspAgBC/////w+EIgQ3AgggACAENwIACwt+AQJ/AkAgAC0ApAQiAUEBcUUNACAAIAFB/gFxOgCkBCAAIAAoAowDIAAoAogDIgFrQQJ1IgI2AiAgAEGU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BAwACwALIAlBAWohCSAKIRAMAAsACwALAAsgBCgCAC0AQiIJIAxB/wFxIgogCSAKSxshDCAEQQRqIQQMAAsLvgIBBX8CQAJAAkACQCAAKAIEIgIgACgCCCIDTw0AIAIgARCPLUEkaiEBDAELIAIgACgCACIEa0EkbSIFQQFqIgJByOPxOE8NAQJAAkAgAyAEa0EkbSIDQQF0IgQgAiAEIAJLG0HH4/E4IANB4/G4HEkbIgQNAEEAIQYMAQsgBEHI4/E4Tw0DIARBJGwQpgEhBgsgBiAFQSRsaiABEI8tIQUgACgCACEDIAAoAgQhAiAFIQECQANAIAIgA0YNASABQVxqIAJBXGoiAhCPLSEBDAALAAsgACgCACEDIAAgATYCACAAKAIEIQIgACAFQSRqIgE2AgQgACAGIARBJGxqNgIIAkADQCACIANGDQEgAkFsahD+LBogAkFcaiECDAALAAsgA0UNACADEKQBCyAAIAE2AgQPCxCsAQALEKgHAAtiACAAIAEpAgA3AgAgAEEIaiABQQhqKQIANwIAIABBADYCGCAAQgA3AhAgACABKAIQNgIQIAAgASgCFDYCFCAAIAEoAhg2AhggAUEANgIYIAFCADcCECAAIAEpAhw3AhwgAAsKACAAEK4kEKQBCwQAQQcLOAEBfwJAAkAgAUF5aiICQR9LDQBBASACdEG5goCAeHENAQsgAUECRg0AIAFB2wBGDQBBAA8LQQELdwACQAJAAkACQAJAIAFB335qDgQBAgMABAsgACACENoKOgCAAkEBDwsgACACELsKOAKIAkEBDwsgACACELsKOAKMAkEBDwsgACACELsKOAKQAkEBDwsCQCABQR9GDQAgACABIAIQ3hgPCyAAIAIQuwo4AoQCQQELAgALEgAgAEEBIAAoAgAoAvABEQMACxIAIABBASAAKAIAKALwAREDAAsSACAAQQEgACgCACgC8AERAwALEgAgAEEBIAAoAgAoAvABEQMAC1IBAX9B1AQQpgEQtxMiASAALQCAAjoAgAIgASAAKgKEAjgChAIgASAAKgKIAjgCiAIgASAAKgKMAjgCjAIgASAAKgKQAjgCkAIgASAAEOwYIAELFQAgACABEMAUIgEgASgCADYCCCABCyYBAX8gABCgLSABKAIAIQEgACAAKAIIIgJBBGo2AgggAiABNgIACzIAIAEgASgCCCABKAIAa0ECdRCfLSAAIAEoAgA2AgAgACABKAIENgIEIAFCADcCACAACxUAIAAgARDLISIAIAEoAgg2AgggAAsmAQF/IAAQoC0gASgCACEBIAAgACgCCCICQQRqNgIIIAIgATYCAAstAQF/AkAgACgCBCABRg0AIAAoAgAgAUECdBBhIQIgACABNgIEIAAgAjYCAAsLRwEDfwJAIAAoAggiASAAKAIAIgIgACgCBCIDQQJ0akcNACAAIANBAXQiA0EBIANBAUsbEJ8tIAAgACgCACABIAJrajYCCAsLgDkCD38CfSMAQaAhayIAJAAgAEG1qREQngYiAUEAOwEMIAFBEGpBltYREJ4GGiABQQE7ARwgAUEgakG00REQngYaIAFBAjsBLCABQTBqQcrLERCeBhogAUEDOwE8IAFBwABqQaTWERCeBhogAUEEOwFMIAFB0ABqQe70EBCeBhogAUEFOwFcIAFB4ABqQaaWERCeBhogAUEGOwFsIAFB8ABqQeaaERCeBhogAUEHOwF8IAFBgAFqQe2aERCeBhogAUEIOwGMASABQZABakH0mhEQngYaIAFBCTsBnAEgAUGgAWpB+5oREJ4GGiABQQo7AawBIAFBsAFqQaG5ERCeBhogAUELOwG8ASABQcABakGuvBEQngYaIAFBEDsBzAEgAUHQAWpBj/4QEJ4GGiABQQw7AdwBIAFB4AFqQffYERCeBhogAUENOwHsASABQfABakHZgxEQngYaIAFBDjsB/AEgAUGAAmpB0rsREJ4GGiABQQ87AYwCIAFBkAJqQcT0EBCeBhogAUESOwGcAiABQaACakGS6RAQngYaIAFBEzsBrAIgAUGwAmpBx6kREJ4GGiABQRQ7AbwCIAFBwAJqQaf8EBCeBhogAUEVOwHMAiABQdACakGrlxEQngYaIAFBFjsB3AIgAUHgAmpBzoAREJ4GGiABQRc7AewCIAFB8AJqQbqNERCeBhogAUEYOwH8AiABQYADakHylREQngYaIAFBGTsBjAMgAUGQA2pB2PMQEJ4GGiABQRo7AZwDIAFBoANqQfTAERCeBhogAUEbOwGsAyABQbADakGHoBEQngYaIAFBHDsBvAMgAUHAA2pB+JcREJ4GGiABQR07AcwDIAFB0ANqQbmDERCeBhogAUEeOwHcAyABQeADakHSyREQ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aiEBAkADQCABKAIAIgFFDQEgAkEIaiAAIAFBCGoQqC0MAAsACyACQRBqJAAgAAtPAQJ/IAAoAgghAQJAA0AgAUUNASABKAIAIQIgAUEIahCCBhogARCkASACIQEMAAsACyAAKAIAIQEgAEEANgIAAkAgAUUNACABEKQBCyAAC/MCAQN/AkAgACgCECIBKAIoIAEoAiRJDQAgABDBLQsCQCAALQABIgFBBHFFDQAgACABQfsBcToAASAAIAAoAhAiASgCHDYCQCABIAA2AhwLAkACQEEALQCUmR5BAUcNACAAKAIIQRBqIAAoAhQoAghNDQAgAEEBEK8SRQ0BCyAAQcwAIAAtAAQQhUshASAAKAIQIgItABQhAyABQQo6AAAgASADQQNxOgABIAAtAAQhAyABQQA2AhwgASACNgIQIAEgAzoAAiABQgA3AkQgAUEANgIUIAFCADcCJCABQQA2AAMgAUEsakIANwIAIAFBNGpCADcCACABQTxqQQA2AgAgASAALQAEOgAEIAEgABCGSyABIAAoAjg2AjggASAALQAGOgAGIAAoAggiAkEKNgIMIAIgATYCACAAIAAoAghBEGo2AggCQCAAKAIQKALEBSICRQ0AIAAgASACEQMACyABDwsgAEG27xBBABCxEiAAELISAAu4AQECfwJAAkAgACABRg0AAkAgAS0AASICQQRxRQ0AIAEgAkH7AXE6AAEgASABKAIQIgIoAhw2AkAgAiABNgIcCwJAQQAtAJSZHkEBRw0AIAEoAghBEGogASgCFCgCCE0NACABQQEQrxJFDQILIAEoAggiAiAAKAIIQXBqIgMpAwA3AwAgAkEIaiADQQhqKQMANwMAIAAgAzYCCCABIAJBEGo2AggLDwsgAEG27xBBABCxEiAAELISAAubEgMTfwN8An4jAEEQayIBJAAgACgCECICKAIkIQMgAigCKCEEIAIoAjAgAigCNGxB5ABtIQUCQCACKAK8BSIGRQ0AIABBACAGEQMACwJAIAItABUiBw0AIAIQuUw5A7BkIAItABUhBwtBACEIAkACQAJAAkACQAJAIAAoAhAiCS0AFQ4FAAECAwQFCyAJQQA2AiAgCUIANwMYAkAgCSgChAMiBi0AAUEDcUUNACAJIAYQukwgCSgChAMhBgsCQCAGKAI4IgYtAAFBA3FFDQAgCSAGELpM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AQsaACAAIABBARCvLiAAQQIQry4QiSMQsyhBAQvMAQECfyMAQTBrIgEkAAJAAkACQCAAIAFBFGoQsShFDQACQAJAIAEoAhRBbmoOAgABAgsgAEEBEK8uIQIgAUEoakEAKQOwnxU3AwAgAUEgakEAKQOonxU3AwAgAUEAKQOgnxU3AxggAiABQRhqEP0FRQ0CIAAgAUEYahCwLgwDCyAAIABBARCvLkGgnxUQiSMQsygMAgsgAEEBQQAQsCghAiABQd/jETYCBCABIAI2AgAgAEHwihEgARCyKAALIAAQphILIAFBMGokAEEBCxoBAX0gACoCACECIAFBAzYCDCABIAK7OQMACxoBAX0gACoCBCECIAFBAzYCDCABIAK7OQMACxoBAX0gACoCCCECIAFBAzYCDCABIAK7OQMACxoBAX0gACoCDCECIAFBAzYCDCABIAK7OQMACxoBAX0gACoCECECIAFBAzYCDCABIAK7OQMACxoBAX0gACoCFCECIAFBAzYCDCABIAK7OQMACyIBAX8CQCAAIAFBDxDFKCICDQAgACABQd/jERC2KAALIAILNQAgAEEYQQ8QxCciAEEQaiABQRBqKQIANwIAIABBCGogAUEIaikCADcCACAAIAEpAgA3AgALwQEDAn8BfgF8IwBBIGsiASQAAkACQCAAKAIMIgJBsL8cIAIgACgCCEkbIgIoAgxBBUcNACACRQ0AIAEgAikCACIDPgIYIAFCgICAgICAgMA/NwIQIAFCgICA/AM3AgggASADQiCIPgIcIAAgAUEIahCwLgwBCyAAQQEQuyghBCABIABBAhC7KLY4AhwgASAEtjgCGCABQoCAgICAgIDAPzcCECABQoCAgPwDNwIIIAAgAUEIahCwLgsgAUEgaiQAQQELfAIBfwN9IwBBIGsiASQAQwAAAAAhAgJAAkAgAEEBELsotiIDQwAAAABcDQBDAACAPyEEDAELIAMQ7xghBCADEMQYIQILIAFCADcCGCABIAQ4AhQgASAEOAIIIAEgAjgCDCABIAKMOAIQIAAgAUEIahCwLiABQSBqJABBAQvAAQICfwJ9IwBBIGsiASQAAkACQCAAKAIMIgJBsL8cIAIgACgCCEkbIgIoAgxBBUcNACACRQ0AIAIqAgAhAyACKgIEIQQgAUIANwIYIAEgBDgCFCABQgA3AgwgASAD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AkACQCABKAIMIgRB3QBGDQAgBEHnAEYNAiAEQYUBRw0BIAAgAigCSLgQuigMBgsgAigCSCIERQ0EIAIoAkQhAiAAIAQQ2y0gAiAEEEsaDAULIAFB2NoRNgIEIAEgAzYCACAAQdCKESABELIoAAsgACACKAIMIAJBDGogAiwAF0EASBsQnBIMAwsgAEEBQdjaERC2KAALIABBAkHArhEQtigACyAAEKYSCyABQRBqJABBAQstAAJAAkAgACgCACIADQBBACEADAELIAEgACgCSLg5AwBBAyEACyABIAA2AgwLdgECfyMAQRBrIgIkAAJAAkAgACABIAJBDGoQtCgiA0UNACACKAIMQV5qIgFBF08NAUGB/v8DIAF2QQFxRQ0BIAFBmI8Uai0AACEBIAJBEGokACABDwsgACABQcCuERC2KAALIAIgAzYCACAAQdzJESACELIoAAsWACAAQaiOFDYCACAAQQhqEKEIGiAACwoAIAAQqC8QpAELCQAgACABNgIECwkAIAAgATYCIAsJACAAIAE4AgwLCQAgACABNgIQCwkAIAAgATYCFAsJACAAIAE4AhgLCQAgACABOgAcCw0AIABBCGogARCyLxoLOAACQCAAIAFGDQACQCABKAIAIgENACAAQQAQlC8gAA8LIAEgASgCBEEBajYCBCAAIAEQlC8LIAALSQAgAEGAgIB4NgIgIABBAzoAHCAAQgA3AhQgAEKAgID8AzcCDCAAQgE3AgQgAEHYjhQ2AgAgAEEkaiABIAEoAgAoAhwRAwAgAAsZACAAQdiOFDYCACAAQSRqEN4eGiAAEKgvCwoAIAAQtC8QpAELHQAgACABNgIEIAAoAiQiACABIAAoAgAoAggRAwALHQAgACABNgIgIAAoAiQiACABIAAoAgAoAgwRAwALHQAgACABOAIMIAAoAiQiACABIAAoAgAoAhARDQALHQAgACABNgIQIAAoAiQiACABIAAoAgAoAhQRAwALHQAgACABNgIUIAAoAiQiACABIAAoAgAoAhgRAwALHQAgACABOAIYIAAoAiQiACABIAAoAgAoAhwRDQALHQAgACABOgAcIAAoAiQiACABIAAoAgAoAiARAwALigEBAn8jAEEQayICJAACQCABKAIAIgNFDQAgAyADKAIEQQFqNgIECyACIAM2AgwgAEEIaiACQQxqELIvGiADEL4vIAAoAiQhAAJAIAEoAgAiA0UNACADIAMoAgRBAWo2AgQLIAIgAzYCCCAAIAJBCGogACgCACgCJBEDACACKAIIEL4vIAJBEGokAAsvAQF/AkAgAEUNACAAIAAoAgQiAUF/ajYCBCABQQFHDQAgACAAKAIAKAIEEQEACwuxAgEBfyAAQcjbERCtEiAAQX8QiwogACgCECAAKAIIQXBqKAIANgLMWCAAIAAoAghBcGo2AgggACgCEEHQBjYCzFQgAEHRBkEAQQBBABCbEiAAQX5Boe0QEJ8SIAAoAghBcGoiASgCAEEBOgAEIAAgATYCCCAAQS8Qwi8gAEHB9xBBgI8UEIouIABBwfcQEK0SIABBfxCLCiAAKAIQIAAoAghBcGooAgA2AuhXIAAgACgCCEFwajYCCCAAKAIQQdIGNgLoUyAAQdEGQQBBAEEAEJsSIABBfkGh7RAQnxIgAEHTBkEAQQBBABCbEiAAQX5Blu0QEJ8SIABB1AZBAEEAQQAQmxIgAEF+Qb2kERCfEiAAKAIIQXBqIgEoAgBBAToABCAAIAE2AgggAEEWEMIvQQELEAAgASABKAIAKAIAEQAAGgurAgEDfyMAQRBrIgEkAAJAIABBAiABQQxqELQoRQ0AIABBARC9JyECQQAhAwJAAkACQAJAAkACQAJAAkACQAJAIAEoAgxBZWoOCAABAgMEBQYHCQtBASEDIABBsaQRQdPEESACKAIEQQFGGxCcEgwICyAAIAIoAhBBAnRBsI8UaigCABCcEgwGCyAAIAIoAhRBAnRBvI8UaigCABCcEgwFCyAAIAIqAgy7ELooDAQLIAAgAiwAHEECdEG8jxRqKAIAEJwSDAMLIAAgAioCGLsQuigMAgsCQCACKAIIRQ0AIABBBEERENQoIgBBADYCACAAIAJBCGoQsi8aDAILIAAQphIMAQsgACACKAIgEL4oC0EBIQMLIAFBEGokACADDwsgAEECQcCuERC2KAALLAAgACABQbmDEUHVBhCWKCAAIAFBtpERQdYGEJYoIAAgAUHojRFB1wYQligLEAAgASABKAIAKAIAEQAAGgtEAQF/IwBBEGsiASQAAkAgAEECIAFBDGoQtCgNACAAQQJBwK4RELYoAAsgACAAEMkvIAEoAgxBAxDKLyABQRBqJABBAAvPAgEFfyMAQRBrIgEkAAJAIAAgAUEIahCxKCICRQ0AIAEoAghBOUcNACAAKAIMIQMgACgCCCEEIAAQyS8hBSAAKAJIKAIcIQIgAEEoQRYQxCcgAhCzLyICIAUoAgQgAigCACgCCBEDACACIAUoAiAgAigCACgCDBEDACACIAUqAgwgAigCACgCEBENACACIAUoAhAgAigCACgCFBEDACACIAUoAhQgAigCACgCGBEDACACIAUqAhggAigCACgCHBENACACIAUtABwgAigCACgCIBEDACAEIANrIQMCQCAFKAIIIgVFDQAgBSAFKAIEQQFqNgIECyABIAU2AgwgAiABQQxqIAIoAgAoAiQRAwAgASgCDBC+LwJAIANBIEcNACAAIAJBAhDLLwsgAUEQaiQAQQEPCyABQd/jETYCBCABIAI2AgAgAEHwihEgARCyKAALGgEBfSAAKgIMIQIgAUEDNgIMIAEgArs5AwALGgEBfSAAKgIYIQIgAUEDNgIMIAEgArs5AwALGAAgACgCICEAIAFBAzYCDCABIAC4OQMACyIBAX8CQCAAQQFBFhDFKCIBDQAgAEEBQcH3EBC2KAALIAELtAQBAn8jAEEwayIEJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACQWVqDggAAQIDBAUGBwgLIAAgAyAEQSxqELQoIgVFDQhBACECAkACQAJAIAQoAixBXWoOAgIBAAsgBCAFNgIAIABBi8ERIAQQsigAC0EBIQILIAEgAiABKAIAKAIIEQMADAcLIAAgAyAEQSxqELQoIgVFDQggBCgCLEFbaiICQQNPDQkgASACIAEoAgAoAhQRAwAMBgsgACADIARBLGoQtCgiBUUNCUEAIQICQAJAAkACQCAEKAIsQVpqDgQCAQMAAQtBAiECDAILIAQgBTYCICAAQfyXESAEQSBqELIoAAtBASECCyABIAIgASgCACgCGBEDAAwFCyABIAAgAxC7KLYgASgCACgCEBENAAwECyABIAAgAxCnLyABKAIAKAIgEQMADAMLIAEgACADELsotiABKAIAKAIcEQ0ADAILAkAgACADQREQxSgiAkUNAAJAIAIoAgAiAkUNACACIAIoAgRBAWo2AgQLIAQgAjYCKCABIARBKGogASgCACgCJBEDACAEKAIoEL4vDAILIARBADYCJCABIARBJGogASgCACgCJBEDACAE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AxC7KLYQmwMMAgsgAUHb2xE2AgQgASACNgIAIABB0IoRIAEQsigACyADIABBAxC7KLYQ9QILIAFBEGokAEEADwsgAEECQcCuERC2KAALsAMBA38jAEHQAGsiASQAAkAgACABQcwAahCxKCICRQ0AAkACQAJAAkACQAJAAkAgASgCTEGMf2oOBwEAAAAAAwIACyABQdvbETYCFCABIAI2AhAgAEHwihEgAUEQahCyKAALIAFBHGogABD9LygCBCICKAIgIgNBxABqQeDAHSADQdsAIAMoAgAoAgwRAgAbEJIcIAFBNGogAUEcaiAAQQIQ+i8Q/gUgAUEcaiABQTRqENQfAkACQCACQQIgAigCACgCDBECAEUNACACIAEqAhwQgQMgAiABKgIgEIMDDAELIAJBKSACKAIAKAIMEQIARQ0AIAIgASoCHBCZAyACIAEqAiAQmwMLIAIgASoCJBDwAiACIAEqAigQ8wIgAiABKgIsEPUCQQAhAAwECyAAEP0vKAIEIgJBDCACKAIAKAIMEQIARQ0BIABBMEEsEMQnIAJB0AFqEPIuGgwCCyABIAAQ/S8Q3C8iAjYCNCACRQ0AIAAgAUE0ahD/LwwBCyAAEKYSC0EBIQALIAFB0ABqJAAgAA8LIAFB29sRNgIEIAFBADYCACAAQfCKESABELIoAAsnAQF9IAAoAgQiACAAKAIAKAJsEQsAIQIgAUEDNgIMIAEgArs5AwALJwEBfSAAKAIEIgAgACgCACgCcBELACECIAFBAzYCDCABIAK7OQMACx0BAX0gACgCBCoCXCECIAFBAzYCDCABIAK7OQMACx0BAX0gACgCBCoCYCECIAFBAzYCDCABIAK7OQMACx0BAX0gACgCBCoCZCECIAFBAzYCDCABIAK7OQMAC0EBAn0gACgCBCIAIAAoAgAoAmwRCwAhAiAAIAAoAgAoAnARCwAhAyABQoCAgIDQADcCCCABIAM4AgQgASACOAIACyEBAX4gACgCBCkCYCECIAFCgICAgNAANwIIIAEgAjcCAAsLACABQQRqEKQrGguOAQEDfyMAQRBrIgEkAAJAAkAgAEECIAFBDGoQtCgiAkUNACAAEIAwIQMgASgCDEGXAUYNASABQdvbETYCBCABIAI2AgAgAEHQihEgARCyKAALIABBAkHArhEQtigACyAAIANBBGooAgBB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AiABQYSfETYCBCABIAI2AgAgAEGPixEgARCyKAALIABBAkHArhEQtigACyAAQQFBhJ8RELYoAAsgACACLQAAELMoIAFBEGokAEEBCxcAIAAtAAAhACABQQE2AgwgASAANgIAC5IBAQJ/IwBBEGsiASQAAkACQAJAIABBAiABQQxqELQoRQ0AIABBAUHIABDFKCICRQ0BIAEoAgxBugFGDQIgAEEBQQAQsCghAiABQeyeETYCBCABIAI2AgAgAEGPixEgARCyKAALIABBAkHArhEQtigACyAAQQFB7J4RELYoAAsgACACKgIEuxC6KCABQRBqJABBAQsaAQF9IAAqAgQhAiABQQM2AgwgASACuzkDAAsIACABEPMmGgtGAQJ/IwBBEGsiASQAAkAgAEECIAFBDGoQtCgNACAAQQJBwK4RELYoAAsgABDhMCECIAAgASgCDCACEOIwIAFBEGokAEEBCw4AIAAgABDhMBDjMEEBCwgAIAEQ8yYaC8ECAQN/IwBBEGsiASQAAkAgAEECIAFBDGoQtChFDQAgABDkMCECAkACQAJAAkACQAJAAkACQAJAAkAgASgCDCIDQf19ag4HAAECAwQFBggLAkAgAi0AMA0AIABBrJwREJwSDAkLIABB4YYREJwSDAgLIAAgAi0AMUEBahDvJwwHCyAAIAIqAjS7ELooDAYLIAAgAi0AOBCzKAwFCyAAIAItADoQsygMBAsgAi0AOEEBRw0BQY6bESEDAkAgAi0AOSICQRBLDQAgAkECdEGgkhRqKAIAIQMLIAAgAxCcEgwDCyACLQA6QQFHDQBBjpsRIQMCQCACLQA7IgJBBUsNACACQQJ0QeSSFGooAgAhAwsgACADEJwSDAILIAAQphIMAQsgACADIAIQ4jALIAFBEGokAEEBDwsgAEECQcCuERC2KAALDgAgACAAEOQwEOMwQQELkQEBAn8jAEEQayIBJAACQAJAAkAgAEECIAFBDGoQtChFDQAgAEEBQc4AEMUoIgJFDQEgASgCDEG7AUYNAiAAQQFBABCwKCECIAFBlNQRNgIEIAEgAjYCACAAQY+LESABELIoAAsgAEECQcCuERC2KAALIABBAUGU1BEQtigACyAAIAIoAgAQ7ycgAUEQaiQAQQELIgEBfwJAIABBAUEmEMUoIgENACAAQQFB7/cQELYoAAsgAQtPAgF/AX4gAEEBEMYoIQEgAEECEJIuKQIAIQIgAEEgQSYQxCciAEIANwIMIAAgAjcCBCAAIAE6AAAgAEEUakIANwIAIABBHGpBADoAAEEBC14CAn4BfSAAQSBBJhDEJyEAIAEtAAAhASACKQIAIQYgAykCACEHIAQoAgAhAiAFKgIAIQggAEEAOgAcIAAgCDgCGCAAIAI2AhQgACAHNwIMIAAgBjcCBCAAIAE6AAALPAAgASACKQMANwMAIAFBGGogAkEYaigCADYCACABQRBqIAJBEGopAwA3AwAgAUEIaiACQQhqKQMANwMACxwAIAEgAigCADYCACABQQRqIAJBBGovAQA7AQALCgAgASACEOcFGgsMACABIAIpAwA3AwALDAAgASACKQMANwMACwwAIAEgAigCADYCAAsCAAsKACABIAIQgjAaCwoAIAEgAhD8LxoLDAAgASACKAIANgIACwwAIAEgAikDADcDAAsJACAAIAEQsygLIgEBfwJAIABBAUE+EMUoIgENACAAQQFB7tQRELYoAAsgAQulBgECfyMAQRBrIgMkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQZp+ag4dAgMEBQEbGxsGBwgJCgsMDQ4PEBESExcYFBkaFRYACwJAIAFBxX5qDgIcABsLIAAgAikDCLoQuigMHAtBACEBIAAgAigCFCACKAIQa0ECdUEAEK4SA0AgASACKAIUIAIoAhAiBGtBAnVPDRwgACAEIAFBAnRqKgIAuxC6KCAAQX4gAUEBaiIBEIIuDAALAAtBACEBIAAgAigCICACKAIca0ECdUEAEK4SA0AgASACKAIgIAIoAhwiBGtBAnVPDRsgACAEIAFBAnRqKgIAuxC6KCAAQX4gAUEBaiIBEIIuDAALAAsgACACLQAoEO8nDBkLAkAgAi0AKA0AIABB880REJwSDBkLIABBjpsREJwSDBgLIAAgAi0AKEUQsygMFwsgACACKQMIIAItAChBAhDlMAwWCyAAIAIpAwggAi0AKEEAEOUwDBULIAAgAikDCCACLQAoQQMQ5TAMFAsgACACKQMIIAItAChBARDlMAwTCyAAIAIpAwggAi0AKEEEEOUwDBILIAAgAikDCCACLQAoQQUQ5TAMEQsg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AQsCQCAALQBbQQFHDQAgACoCjAEgACoCVCIGXkUNACAAIAY4AowBCwJAIAAtAFpBAUcNACAAKgKMASAAKgJQIgZdRQ0AIAAgBjgCjAELAkAgAC0AakEBRw0AIAAqApABIAAqAmQiBl5FDQAgACAGOAKQAQsCQCAALQBpQQFHDQAgACoCkAEgACoCYCIGXUUNACAAIAY4ApABCwJAAkAgA0EBRg0AIAAqApABIQcgACoCjAEhCAwBCyACQThqIABBhAFqENcfIAJBIGogASgCICIDQcQAakHgwB0gA0HbACADKAIAKAIMEQIAGyACQThqEP4FIAJBOGpBEGogAkEgakEQaikCADcDACACQThqQQhqIAJBIGpBCGopAgA3AwAgAiACKQIgNwM4IAJBIGogAkE4ahDUHyACKgIsIQcgAioCKCEICyAAIAApAmw3AoQBIAAgACkCfDcClAEgACAAKgJ0QwAAgD8gACoCNCIGkyIJlCAGIAiUkjgCjAEgACAAKgJ4IAmUIAYgB5SSOAKQASACQSBqIABBhAFqENcfIARBEGogAkEgakEQaikCADcCACAEQQhqIAJBIGpBCGopAgA3AgAgBCACKQIgNwIACyACQdAAaiQACwoAIAAQwwoQpAELBQBB2AALLgEBfwJAAkAgAUGxf2oiAkELSw0AQQEgAnRBwxVxDQELIAFBCkYNAEEADwtBAQsEAEEACx0BAX9BnAEQpgFBAEGcARBIEPQSIgEgABCgMSABC0UAIAAgASoCXDgCXCAAIAEqAmA4AmAgACABKgJkOAJkIAAgAS0AaDoAaCAAIAEtAGk6AGkgACABLQBqOgBqIAAgARCZMQu2AQECfyMAQRBrIgQkACAAKAIIIgUgASAFKAIAKAKkAxECACEBIAQgAzgCDCAEIABBBGo2AggCQAJAIAJBiwNGDQACQCACQZEDRg0AAkAgAkHlBkYNACACQfgHRw0DIAEgBEEIaiABKAIAKAJUEQMADAMLIAEgBEEIaiABKAIAKAJIEQMADAILIAEgBEEIaiABKAIAKAJQEQMADAELIAEgBEEIaiABKAIAKAJMEQMACyAEQRBqJAALAgALBABBAAsEAEEACwQAQQALBABBAAsEAEEACwQAQQALBABBAAsEAEEACwQAQQALMwEBfyAAQcCYFDYCAAJAIAAtAAxBAUcNACAA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KAIoIgIgACgCLCIDTw0AIAIgATYCACACQQRqIQEMAQsgAiAAKAIkIgRrQQJ1IgVBAWoiBkGAgICABE8NAUEAIQcCQCADIARrIgNBAXUiCCAGIAggBksbQf////8DIANB/P///wdJGyIGRQ0AIAZBgICAgARPDQMgBkECdBCmASEHCyAHIAVBAnRqIgUgATYCACAFIQECQANAIAIgBEYNASACQXxqIgIoAgAhAyACQQA2AgAgAUF8aiIBIAM2AgAMAAsACyAAKAIkIQMgACABNgIkIAAoAighAiAAIAVBBGoiATYCKCAAIAcgBkECdGo2AiwCQANAIAIgA0YNASACQXxqEP02IQIMAAsACyADRQ0AIAMQpAELIAAgATYCKA8LEKwBAAsQqAcACxwBAX9B1AAQpgEQ+goiAUEMaiAAQQxqEOgFIAELTAEBf0EcEKYBIgFCADcDACABQRhqQQA2AgAgAUEQakIANwMAIAFBCGpCADcDACABEKMTIgEgAC0AGDoAGCABQQxqIABBDGoQ6AUgAQtLAQF/AkAgASgCCCICIAAoAhAgAigCACgCpAMRAgAiAEUNACAAQYABIAAoAgAoAgwRAgBFDQAgASAAQwAAAAAgASgCACgCUBEOAAsLCgAgABDGChCkAQsFAEGpAQsPACABQakBRiABQecERnILIwACQCABQYgDRw0AIAAgAhCiCjYCEEEBDwsgACABIAIQjTcLHQACQCABQYkDRw0AIAAgAhCiCjYCDAsgAUGJA0YLAgALAgALrQIBBn8CQCABKAIAIAEoAgQQxCYiAQ0AQQEPCwJAAkACQAJAIAEoAgQiAigCECIBIAIoAhQiA08NACABIAA2AgAgAUEEaiEBDAELIAEgAigCDCIEa0ECdSIFQQFqIgZBgICAgARPDQECQAJAIAMgBGsiA0EBdSIHIAYgByAGSxtB/////wMgA0H8////B0kbIgMNAEEAIQYMAQsgA0GAgICABE8NAyADQQJ0EKYBIQYLIAYgBUECdGoiBSAANgIAIAUhAAJAA0AgASAERg0BIABBfGoiACABQXxqIgEoAgA2AgAMAAsACyACIAVBBGoiATYCECACKAIMIQQgAiAANgIMIAIgBiADQQJ0ajYCFCAERQ0AIAQQpAELIAIgATYCEEEADwsQrAEACxCoBwALMwEBf0EUEKYBIgFByNMUNgIAIAFC/////w83AgQgASAAKAIQNgIQIAEgACgCDDYCDCABC1gAAkACQCABKAKMASIBDQBBACEBDAELIAEgASgCAEEBajYCACAAKAIQIgBFDQAgASAAEI4RIgBFDQAgAEH1AyAAKAIAKAIMEQIARQ0AIAAQ7wYLIAEQ3gkLHgAgAEEQaiABKAIAIAFBBGooAgAQ+xAgACABEJA3CxQAIABBEGogASgCACABKAIEEPwQCw8AIABBEGogASgCEBD6EAsjAQF/AkAgACgCECIBRQ0AIAEgASgCACgCBBEBAAsgABDGCgsKACAAEJY3EKQBCwUAQeYECw0AIAFB/v8DcUHmBEYLXAEBfyMAQRBrIgMkAAJAAkAgAUHnBkcNACADQQhqIAIQ/w8gACgCACgCMCEBIAMgAykCCDcDACAAIAMgAREDAEEBIQEMAQsgACABIAIQjTchAQsgA0EQaiQAIAELAgALNwEBf0EUEKYBIgFBADYCECABQv////8PNwIEIAFBhNQUNgIAIAEgABCVNyABIAAoAgw2AgwgAQsHACAAEKQBCwQAQQALDgAgACgCBEEAEIU3QQELBABBAAsEAEEACyUAAkAgASgCACABKAIEEJgPIgENAEEBDwsgASgCBCAAEIU3QQALCgAgABDtFRCkAQsCAAsEACAACwcAIAAQpAELBwAgABCkAQsTACAAQQA6ABggACAAKAIMNgIQCw0AIABBDGoQzBcaIAALEAAgAEEMahDMFxogABCkAQs3ACAAIAE2AgQgAEGc1RQ2AgACQCACRQ0AIAIgAigCOEEBajYCOAsgACACNgIIIAIgABCoDCAAC2UBAn8jAEEQayIDJAACQCAAKAIEIgRFDQAgACgCCCIARQ0AAkAgAEH1AyAAKAIAKAIMEQIARQ0AIAAoAmBFDQELIAQoAgQhACADIAQ2AgwgAEH8AWogA0EMahCtNwsgA0EQaiQAC/IBAQV/AkACQCAAKAIEIgIgACgCCCIDTw0AIAIgASgCADYCACACQQRqIQIMAQsgACgCACIEIAMgAiAEa0ECdUEBahCyNyEEIAAoAgQiAiAAKAIAIgNrQQJ1IQUCQAJAIAQNAEEAIQYMAQsgBBCzNyEGIAAoAgAhAyAAKAIEIQILIAYgBUECdGoiBSABKAIANgIAIAUhAQJAA0AgAiADRg0BIAFBfGoiASACQXxqIgIoAgA2AgAMAAsACyAAIAVBBGoiAjYCBCAAKAIAIQMgACABNgIAIAAgBiAEQQJ0ajYCCCADRQ0AIAMQpAELIAAgAjYCBAsCAAsbACAAQZzVFDYCACAAELA3IABBCGoQmg0aIAALIgEBfwJAIAAoAggiAUUNACABIAAQmA0gAEEIakEAEJkNCwsKACAAEK83EKQBCzgAAkAgAkGAgICABEkNABCsAQALIAEgAGsiAUEBdSIAIAIgACACSxtB/////wMgAUH8////B0kbCxwAAkAgAEGAgICABEkNABCoBwALIABBAnQQpgELUwEBfwJAIAAoAgQoAgwiAUUNACABIAAoAgwoAjwQjhEiASAAKAIIRg0AIAAQsDcgAUUNACABIAEoAjhBAWo2AjggAEEIaiABEJkNIAEgABCoDAsLCgAgABCvNxCkAQtTAQF/AkAgACgCBCgCDCIBRQ0AIAEgACgCDCgCEBCOESIBIAAoAghGDQAgABCwNyABRQ0AIAEgASgCOEEBajYCOCAAQQhqIAEQmQ0gASAAEKgMCwsKACAAEK83EKQBCzoBAX8gAEHk1RQ2AgAgAEEQaiIBELk3AkAgACgCEEUNACABELk3IAEoAgAQpAELIABBDGoQ5QgaIAALMwECfyAAKAIEIQEgACgCACECAkADQCABIAJGDQEgAUF8ahC6NyEBDAALAAsgACACNgIECykBAX8gACgCACEBIABBADYCAAJAIAFFDQAgASABKAIAKAIMEQEACyAACwoAIAAQuDcQpAEL7AkDDH8CfQF+IwBBMGsiBSQAAkAgACgCCCIGLQCZDUEBRw0AIAYqAqgCIREgBioCyAohEiABIAEqAgAgBioCxAogBioCpAKUkzgCACABIAEqAgQgEiARlJM4AgQLIAAoAtQBIQcgACgC0AEhBgJAA0ACQCAGIAdHDQAgASkCACETIAAoAsgBIQggACgCxAEhBgwCCwJAIAYoAgAiCSADEJYaIgooAgQiCEEDRg0AIAlBADoABCAKIAotAAA6AAEgCkEAOgAAIAhBAkcNACAKQQA2AgQLIAZBBGohBgwACwALAkADQCAGIAhGDQEgBigCACEKIAUgEzcDGCAKKAIAKAIQIQkgBSATNwMIIAogBUEIaiACIAMgCREIACAGQQRqIQYMAAsACyAAKALIASEI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IAAoApwDEKQBCwJAIAAoApADIgRFDQAgACgClAMhAgJAA0AgAiAERg0BIAJBfGoQ5zchAgwACwALIAAgBDYClAMgACgCkAMQpAELIABBgANqIQcgACgChAMhBSAAKAKAAyEEAkADQCAEIAVGDQECQAJAIAQoAgAiAg0AIAFBADYCDCABQQxqELQfDAELIAIgAigCAEECajYCACABIAI2AgwgAUEMahC0HyACEKgGIAIQqAYLIARBBGohBAwACwALIABB/AJqIgJBABCwCyAHEKwHGiACEKkGGiAAKALsAhCEOCAAKALkAiECIABBADYC5AICQCACRQ0AIAIQpAELIABB0AJqEIk4GiAAQbwCahCJOBogACgCsAIQhjggACgCqAIhAiAAQQA2AqgCAkAgAkUNACACEKQBCyAAKAKcAhCFOCAAKAKUAiECIABBADYClAICQCACRQ0AIAIQpAELIABBiAJqEIo4GiAAQfwBahCKOBogBhCKOBogAEHkAWoQxAoaAkAgACgC0AEiBEUNACAAKALUASECAkADQCACIARGDQEgAkF8ahDyNyECDAALAAsgACAENgLUASAAKALQARCkAQsCQCAAKALEASIERQ0AIAAoAsgBIQICQANAIAIgBEYNASACQXxqEMs3IQIMAAsACyAAIAQ2AsgBIAAoAsQBEKQBCwJAIAAoArABIgJFDQAgACACNgK0ASACEKQBCyAAQZwBahDkJRogAEGQAWoQ5CUaIABBjAFqEOUIGiADEOwIGiAAQQxqENwlGiABQRBqJAAgAAsrAQF/AkADQCAARQ0BIAAoAgAhASAAQRBqEPMmGiAAEKQBIAEhAAwACwALCwcAIAAQ5yALKwEBfwJAA0AgAEUNASAAKAIAIQEgAEEMahD9NxogABCkASABIQAMAAsACwsiAQF/AkADQCAARQ0BIAAoAgAhASAAEKQBIAEhAAwACwALCyIBAX8CQANAIABFDQEgACgCACEBIAAQpAEgASEADAALAAsLHwEBfwJAIAAoAgAiAUUNACAAIAE2AgQgARCkAQsgAAsfAQF/AkAgACgCACIBRQ0AIAAgATYCBCABEKQBCyAAC0YBAn8gACgCCCEBAkADQCABRQ0BIAEoAgAhAiABEKQBIAIhAQwACwALIAAoAgAhASAAQQA2AgACQCABRQ0AIAEQpAELIAAL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BwwBCyABQShqIAAoApABIhAgDiAHIBBrQQJ1QQFqEMglIAAoApQBIAAoApABa0ECdSAJEMklIQ4gASgCMCIHIAo2AgAgASAHQQRqNgIwIA0gDhDKJSAAKAKUASEHIA4QyyUaCyAAIAc2ApQBA0AgAyAAKAKIASIKIAAoAoQBIgdrQQxtTw0BIAIgByADQQxsaiIHKgIAIhIgByoCBCITEO87IAggEiATEO87IANBAWohAwwACwALAAsgAUHAAGokAA8LIAEgAykCCDcDKCAHIAFBKGoQnCwgAiABQShqEJwsDAALAAsMACAAQRBBABDNCRoLfQECfwJAIAAoAgQgAUYNACAAIAAoAgAgAUEFdCICEGEiAzYCACADIAJqIQIgAyAAKAIEQQV0aiEDAkADQCADIAJPDQEgA0IANwIAIANBGGpCADcCACADQRBqQgA3AgAgA0EIakIANwIAIANBIGohAwwACwALIAAgATYCBAsLCwAgACABIAIQxSELCgAgABDSHhCkAQvKBwEKfyMAQbADayIBJAAgABDUHhoCQCAAKAIQIgJFDQAgAigCGEUNACABQQA2AgggAUIANwIAIAFBCGohAyAAKAIUIgIoAgQhBCACKAIAIQUCQAJAA0ACQCAFIARHDQAgACgCECICKAIYQcAARw0DIAIoAhQhAiABKAIEIQYgASgCACEHIAFBDGpC0tLZq7bom7LlABDSMSABQQxqIAcgBiAHaxDQMSABQQxqIAFBwABqQcAAENQxIAFBoAFqQgAQ0jEgAUGgAWogAkEgENAxIAFBoAFqQYDnFEEgENAxIAFBoAFqIAFBwABqQcAAENAxIAFBoAFqIAFBgAFqQSAQ1DEgAUGgAWogAUGAAWpBgOcUENUxIAFBoAFqQcAAaiIHIAJBIGpBkJkUENUxIAFCEDcDiAMgAUGQA2pBEGogAkEQaikAADcDACABQZADakEYaiACQRhqKQAANwMAIAEgAikAADcDkAMgASACQQhqKQAANwOYAyABQaACaiABQaABakHAABBLIQYgBxDXMSABQYACaiICIAFBoAFqENkxIAIgAUGgAWpBIGoQ2TEgAiABQZADahDZMSACIAIgAUGIA2pBARDcMSABQcACaiIHIAFBkANqENkxIAcgByAGENoxIAcQ2DEgByAHIAIQ2jEgAhDeMSAHEN4xQX9z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IgRBAXUiBSABIAUgAUsbQf////8DIARB/P///wdJGyICDQBBACEHDAELIAJBgICAgARPDQQgAkECdBCmASEHCyAHIAZBAnRqIgYgADYCACADKAJwIQUgAygCdCEBIAYhBAJAA0AgASAFRg0BIARBfGoiBCABQXxqIgEoAgA2AgAMAAsACyADIAZBBGoiATYCdCADKAJwIQUgAyAENgJwIAMgByACQQJ0ajYCeCAFRQ0AIAUQpAELIAMgATYCdAJAIABBoQEgACgCACgCDBECAEUNAAJAAkAgAygCgAEiASADKAKEASIETw0AIAEgADYCACABQQRqIQEMAQsgASADKAJ8IgVrQQJ1IgZBAWoiAkGAgICABE8NAwJAAkAgBCAFayIEQQF1IgcgAiAHIAJLG0H/////AyAEQfz///8HSRsiAg0AQQAhBwwBCyACQYCAgIAETw0FIAJBAnQQpgEhBwsgByAGQQJ0aiIGIAA2AgAgBiEEAkADQCABIAVGDQEgBEF8aiIEIAFBfGoiASgCADYCAAwACwALIAMgBkEEaiIBNgKAASADKAJ8IQUgAyAENgJ8IAMgByACQQJ0ajYChAEgBUUNACAFEKQBCyADIAE2AoABC0EAIQIgAEGjBCAAKAIAKAIMEQIARQ0AAkACQCADKAKMASIBIAMoApABIgRPDQAgASAANgIAIAFBBGohAQwBCyABIAMoAogBIgVrQQJ1IghBAWoiB0GAgICABE8NAgJAAkAgBCAFayIEQQF1IgYgByAGIAdLG0H/////AyAEQfz///8HSRsiBw0AQQAhBgwBCyAHQYCAgIAETw0EIAdBAnQQpgEhBgsgBiAIQQJ0aiIIIAA2AgAgCCEEAkADQCABIAVGDQEgBEF8aiIEIAFBfGoiASgCADYCAAwACwALIAMgCEEEaiIBNgKMASADKAKIASEAIAMgBDYCiAEgAyAGIAdBAnRqNgKQASAARQ0AIAAQpAELIAMgATYCjAELIAIPCxCsAQALEKgHAAsKACAAEMMKEKQBC84CAQZ/IAAgARDoDhpBASEBAkACQAJAIAAoAiAiAkUNACACQYYBIAIoAgAoAgwRAgBFDQACQAJAIAAoAiAiAygCzAQiASADKALQBCIETw0AIAEgADYCACABQQRqIQEMAQsgASADKALIBCICa0ECdSIFQQFqIgZBgICA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ACADIAYpAwg3AgAgAkEQQQwgBSgCAC0AABsiA2oqAgAgASADaioCAF1FDQAgBCABQRBqIgooAgA2AgAgBkEIakEIaiIDIAFBCGoiBykCADcDACAGIAEpAgA3AwggCiAIKAIANgIAIAcgAkEIaiIKKQIANwIAIAEgAikCADcCACAIIAQoAgA2AgAgCiADKQMANwIAIAIgBikDCDcCACABQRBBDCAFKAIALQAAGyICaioCACAAIAJqKgIAXUUNACAGQQhqQRBqIgIgAEEQaiIEKAIANgIAIAMgAEEIaiIFKQIANwMAIAYgACkCADcDCCAEIAFBEGoiCigCADYCACAFIAcpAgA3AgAgACABKQIANwIAIAogAigCADYCACAHIAMpAwA3AgAgASAGKQMINwIACyAGQSBqJAAL2AUCB38CfSMAQSBrIQQgAkEQQQwgAygCAC0AABsiBWoqAgAhCwJAAkAgASAFaioCACIMIAAgBWoqAgBdDQAgCyAMXUUNASAEQQhqQRBqIgUgAUEQaiIGKAIANgIAIARBCGpBCGoiByABQQhqIggpAgA3AwAgBCABKQIANwMIIAYgAkEQaiIJKAIANgIAIAggAkEIaiIKKQIANwIAIAEgAikCADcCACAJIAUoAgA2AgAgCiAHKQMANwIAIAIgBCkDCDcCACABQRBBDCADKAIALQAAGyICaioCACAAIAJqKgIAXUUNASAFIABBEGoiAigCADYCACAHIABBCGoiAykCADcDACAEIAApAgA3AwggAiAGKAIANgIAIAMgCCkCADcCACAAIAEpAgA3AgAgBiAFKAIANgIAIAggBykDADcCACABIAQpAwg3AgAPCwJAIAsgDF1FDQAgBEEIakEQaiIBIABBEGoiBSgCADYCACAEQQhqQQhqIgMgAEEIaiIGKQIANwMAIAQgACkCADcDCCAFIAJBEGoiBygCADYCACAGIAJBCGoiBSkCADcCACAAIAIpAgA3AgAgByABKAIANgIAIAUgAykDADcCACACIAQpAwg3AgAPCyAEQQhqQRBqIgUgAEEQaiIIKAIANgIAIARBCGpBCGoiBiAAQQhqIgkpAgA3AwAgBCAAKQIANwMIIAggAUEQaiIHKAIANgIAIAkgAUEIaiIIKQIANwIAIAAgASkCADcCACAHIAUoAgA2AgAgCCAGKQMANwIAIAEgBCkDCDcCACACQRBBDCADKAIALQAAGyIAaioCACABIABqKgIAXUUNACAFIAcoAgA2AgAgBiAIKQIANwMAIAQgASkCADcDCCAHIAJBEGoiACgCADYCACAIIAJBCGoiAykCADcCACABIAIpAgA3AgAgACAFKAIANgIAIAMgBikDADcCACACIAQpAwg3AgALC9kEAgp/An0jAEEgayIDJABBASEEAkACQAJAAkACQAJAIAEgAGtBFG0OBgUFAAQBAgMLIAFBbGoiBUEQQQwgAigCAC0AABsiBmoqAgAgACAGaioCAF1FDQQgA0EIakEQaiIGIABBEGoiBygCADYCACADQQhqQQhqIgggAEEIaiICKQIANwMAIAMgACkCADcDCCAHIAVBEGoiCSgCADYCACACIAVBCGoiBykCADcCACAAIAUpAgA3AgAgCSAGKAIANgIAIAcgCCkDADcCACAFIAMpAwg3AgAMBAsgACAAQRRqIABBKGogAUFsaiACEOc7DAMLIAAgAEEUaiAAQShqIABBPGogAUFsaiACEOg7DAILIAAgAEEUaiAAQShqIgcgAhDpOyAAQTxqIQVBACEKQQEhBANAIAUiCyABRg0CAkAgC0EQQQwgAigCAC0AABsiBWoqAgAgByAFaioCAF1FDQAgA0EIakEIaiIMIAtBCGooAgA2AgAgAyALKQIANwMIIAsqAhAhDSALKgIMIQ4gCyEGAkADQCAGIAciBSkCADcCACAGQRBqIAVBEGooAgA2AgAgBkEIaiAFQQhqIgkpAgA3AgAgBSAARg0BIAUhBiANIA4gAigCAC0AACIIGyAFQWxqIgdBEEEMIAgbaioCAF0NAAsLIAUgAykDCDcCACAJIAwoAgA2AgAgBSANOAIQIAUgDjgCDCAKQQFqIgpBCEcNACALQRRqIAFGIQQMAwsgC0EUaiEFIAshBwwACwALIAAgAEEUaiABQWxqIAIQ6TsLIANBIGokACAEC+UDAQZ/IwBBIGsiBSQAIAAgASACIAQQ7TsCQCADQRBBDCAEKAIALQAAGyIGaioCACACIAZqKgIAXUUNACAFQQhqQRBqIgcgAkEQaiIIKAIANgIAIAVBCGpBCGoiBiACQQhqIgkpAgA3AwAgBSACKQIANwMIIAggA0EQaiIKKAIANgIAIAkgA0EIaiIIKQIANwIAIAIgAykCADcCACAKIAcoAgA2AgAgCCAGKQMANwIAIAMgBSkDCDcCACACQRBBDCAEKAIALQAAGyIDaioCACABIANqKgIAXUUNACAFQQhqQRBqIgMgAUEQaiIHKAIANgIAIAYgAUEIaiIIKQIANwMAIAUgASkCADcDCCAHIAJBEGoiCigCADYCACAIIAkpAgA3AgAgASACKQIANwIAIAogAygCADYCACAJIAYpAwA3AgAgAiAFKQMINwIAIAFBEEEMIAQoAgAtAAAbIgJqKgIAIAAgAmoqAgBdRQ0AIAMgAEEQaiICKAIANgIAIAVBCGpBCGoiBCAAQQhqIgYpAgA3AwAgBSAAKQIANwMIIAIgBygCADYCACAGIAFBCGoiAikCADcCACAAIAEpAgA3AgAgByADKAIANgIAIAIgBCkDADcCACABIAUpAwg3AgALIAVBIGokAAv5BAEGfyMAQSBrIgYkACAAIAEgAiADIAUQ6zsCQCAEQRBBDCAFKAIALQAAGyIHaioCACADIAdqKgIAXUUNACAGQQhqQRBqIgggA0EQaiIJKAIANgIAIAZBCGpBCGoiByADQQhqIgopAgA3AwAgBiADKQIANwMIIAkgBEEQaiILKAIANgIAIAogBEEIaiIJKQIANwIAIAMgBCkCADcCACALIAgoAgA2AgAgCSAHKQMANwIAIAQgBikDCDcCACADQRBBDCAFKAIALQAAGyIEaioCACACIARqKgIAXUUNACAGQQhqQRBqIgQgAkEQaiIIKAIANgIAIAcgAkEIaiIJKQIANwMAIAYgAikCADcDCCAIIANBEGoiCygCADYCACAJIAopAgA3AgAgAiADKQIANwIAIAsgBCgCADYCACAKIAcpAwA3AgAgAyAGKQMINwIAIAJBEEEMIAUoAgAtAAAbIgNqKgIAIAEgA2oqAgBdRQ0AIAQgAUEQaiIKKAIANgIAIAZBCGpBCGoiAyABQQhqIgcpAgA3AwAgBiABKQIANwMIIAogCCgCADYCACAHIAJBCGoiCikCADcCACABIAIpAgA3AgAgCCAEKAIANgIAIAogAykDADcCACACIAYpAwg3AgAgAUEQQQwgBSgCAC0AABsiAmoqAgAgACACaioCAF1FDQAgBkEIakEQaiICIABBEGoiBCgCADYCACADIABBCGoiBSkCADcDACAGIAApAgA3AwggBCABQRBq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IAIQjj0LC6ACAQZ/AkACQAJAIAAoAgAiAiAAKAIEIgMgARCPPSADRw0AAkACQCADIAAoAggiBE8NACADIAE2AgAgA0EEaiEDDAELIAMgAmtBAnUiBUEBaiIGQYCAgIAETw0CAkACQCAEIAJrIgRBAXUiByAGIAcgBksbQf////8DIARB/P///wdJGyIEDQBBACEHDAELIARBgICAgARPDQQgBEECdBCmASEHCyAHIAVBAnRqIgYgATYCACAGIQECQANAIAMgAkYNASABQXxqIgEgA0F8aiIDKAIANgIADAALAAsgACAGQQRqIgM2AgQgACgCACECIAAgATYCACAAIAcgBEECdGo2AgggAkUNACACEKQBCyAAIAM2AgQLDwsQrAEACxCoBwALGAAgACACIAEgAGtBAnUQmQoiACABIAAbCyYBAX9BEBCmASIBQQA2AgwgAUH0kBU2AgAgAUL/////DzcCBCABCx8BAX9BDBCmASIBQaiRFTYCACABQv////8PNwIEIAELGwACQCABDQBBAQ8LIAFBOiABKAIAKAIMEQIAC00AAkAgASAAKAIMIAEoAgAoAjgRAgAiAQ0AQQEPC0EBIQACQAJAIAEtABhBAUcNACABKAIMIAFBEGooAgAgAhCUPUUNAQtBACEACyAACw4AIAAgASACEI89IAFHCyYAAkAgASAAKAIMIAEoAgAoAjgRAgAiAUUNACABQQxqIAIQjj0LCwoAIAAQxgoQpAELBQBBxAALJAEBf0EBIQICQCABQb1/akECSQ0AIAFB3ANGDQBBACECCyACCykBAX9BEBCmASIBQdyRFTYCACABQv////8PNwIEIAEgACgCDDYCDCABCykBAX9BEBCmASIBQZySFTYCACABQv////8PNwIEIAEgACgCDDYCDCABCykBAX9BEBCmASIBQdSSFTYCACABQv////8PNwIEIAEgACgCDDYCDCABCywBAX9BEBCmASIBQX82AgQgAUIANwMIIAFBjJMVNgIAIAEgAC0ADDoADCABCykBAX9BEBCmASIBQcSTFTYCACABQv////8PNwIEIAEgACgCDDYCDCABCykBAX9BEBCmASIBQfyTFTYCACABQv////8PNwIEIAEgACgCDDYCDCABCykBAX9BEBCmASIBQbSUFTYCACABQv////8PNwIEIAEgACgCDDYCDCABCykBAX9BEBCmASIBQeyUFTYCACABQv////8PNwIEIAEgACoCDDgCDCABCzgBAX9BGBCmASIBQgA3AwAgAUEQakIANwMAIAFBCGpCADcDACABEKATIgFBDGogAEEMahDoBSABCwoAIAAQgRYQpAELKQEBf0EQEKYBIgFBlJYVNgIAIAFC/////w83AgQgASAAKAIMNgIMIAELCgAgABDSFhCkAQsFAEHiAwsPACABQeIDRiABQdwDRnILpgEBAn9BACEDAkAgACgCEEUNACAAKAIUIgRFDQACQAJAIAEoAowBIgMNAAJAIARB3wMgBCgCACgCDBECAA0AQQAhAyAAKAIQIgRB3wMgBCgCACgCDBECACEEQQAQ3gkgBEUNAgwDC0EAEN4JQQAPCyADIAMoAgBBAWo2AgAgAxDeCQtBACEDIAAoAhgiAEUNACAAIAEgAiAAKAIAKAIIEQQAIQMLIAMLIAACQCAAKAIQIgBFDQAgACABIAIgACgCACgCKBEFAAsLBAAgAAsHACAAEKQBCwQAQQALBABBAAsEAEEACwQAQQALBABBAAsHACAAEKQBCwcAIAEgAl4LBwAgABCkAQsHACABIAJdCwcAIAAQpAELBwAgASACYAsHACAAEKQBCwcAIAEgAl8LBwAgABCkAQsHACABIAJcCwcAIAEgAnMLPwECfyMAQSBrIgMkACADQRRqIAEQ5wUiASADQQhqIAIQ5wUiAhC8ECEEIAIQggYaIAEQggYaIANBIGokACAECwcAIAEgAkcLBwAgASACRwsHACAAEKQBCwcAIAEgAlsLCgAgASACc0EBcws/AQJ/IwBBIGsiAyQAIANBFGogARDnBSIBIANBCGogAhDnBSICEIwGIQQgAhCCBhogARCCBhogA0EgaiQAIAQLBwAgASACRgsHACABIAJGC74GAQJ/IwBBEGsiAyQAAkACQCAAQfADIAAoAgAoAgwRAgBFDQAgAQ0BIANBADYCDCACIANBDGoQxT0MAQsCQCAAQZsFIAAoAgAoAgwRAgBFDQAgACgCECIBQXxqIgBBgQhLDQFBACEEIABBAnRBuLsSaigCACIAQQBIDQECQAJAAkACQAJAIAAOBQMBBAIABgtBAiEEDAMLQQMhBAwCC0EEIQQMAQtBBSEEAkACQAJAAkACQAJAIAFBmnlqDgMBBQYACyAB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AQAgACgCECEBCwJAIAEoAggiAkUNAAJAAkAgACgCDCIBDQBBACEBDAELIAEoAgghAQsgASACEQEAIAAoAhAhAQsCQCABKAIMIgJFDQACQAJAIAAoAgwiAQ0AQQAhAQwBCyABKAIMIQELIAEgAhEBACAAKAIQIQELAkAgASgCECICRQ0AAkACQCAAKAIMIgENAEEAIQEMAQsgASgCECEBCyABIAIRAQAgACgCECEBCwJAIAEoAhQiAkUNAAJAAkAgACgCDCIBDQBBACEBDAELIAEoAhQhAQsgASACEQEAIAAoAhAhAQsCQCABKAIYIgJFDQACQAJAIAAoAgwiAQ0AQQAhAQwBCyABKAIYIQELIAEgAhEBACAAKAIQIQELAkAgASgCHCICRQ0AAkACQCAAKAIMIgENAEEAIQEMAQsgASgCHCEBCyABIAIRAQAgACgCECEBCwJAIAEoAiAiAkUNAAJAAkAgACgCDCIBDQBBACEBDAELIAEoAiAhAQsgASACEQEAIAAoAhAhAQsCQCABKAIkIgJFDQACQAJAIAAoAgwiAQ0AQQAhAQwBCyABKAIkIQELIAEgAhEBACAAKAIQIQELAkAgASgCKCICRQ0AAkACQCAAKAIMIgENAEEAIQEMAQsgASgCKCEBCyABIAIRAQAgACgCECEBCwJAIAEoAiwiAkUNAAJAAkAgACgCDCIBDQBBACEBDAELIAEoAiwhAQsgASACEQEAIAAoAhAhAQsCQCABKAIwIgJFDQACQAJAIAAoAgwiAQ0AQQAhAQwBCyABKAIwIQELIAEgAhEBACAAKAIQIQELAkAgASgCNCICRQ0AAkACQCAAKAIMIgENAEEAIQEMAQsgASgCNCEBCyABIAIRAQAgACgCECEBCwJAIAEoAjgiAkUNAAJAAkAgACgCDCIBDQBBACEBDAELIAEoAjghAQsgASACEQEAIAAoAhAhAQsCQCABKAI8IgJFDQACQAJAIAAoAgwiAQ0AQQAhAQwBCyABKAI8IQELIAEgAhEBACAAKAIQIQELAkAgASgCQCICRQ0AAkACQCAAKAIMIgENAEEAIQEMAQsgASgCQCEBCyABIAIRAQAgACgCECEBCwJAIAEoAkQiAkUNAAJAAkAgACgCDCIBDQBBACEBDAELIAEoAkQhAQsgASACEQEAIAAoAhAhAQsCQCABKAJIIgJFDQACQAJAIAAoAgwiAQ0AQQAhAQwBCyABKAJIIQELIAEgAhEBACAAKAIQIQELIAEoAkwiAkUNAAJAAkAgACgCDCIBDQBBACEBDAELIAEoAkwhAQsgASACEQEAIAAoAhAhAQsgARBgIAAoAgwQYCAAEGALC20BAn8CQAJAAkACQAJAIAFFDQAgACgCDA0AIABBAUHQABBkIgM2AgwgA0UNAQtBASEDIAJFDQMgACgCEA0DQQEhAyAAQQFB0AAQZCIENgIQIARFDQEMAwsgAkUNAQsgASACEQEAC0EAIQMLIAMLRgECfyABQQJ0IgFBkMQdaigCACECAkADQCAAKAKAASABakEUaigCACACRyIDDQEgACgCFCIARQ0BIABBoMYdRw0ACwsgAwsNACACQQBBMBBIGkEACw0AIAJBAEEwEEgaQQALCwAgA0EANgIAQQALCwAgBEEANgIAQQALBwAgACgCHAsKAEEAIAAoAiBrCxIAIARBADYCACADQQA2AgBBAQsEAEEACwQAQQALFQAgA0IANwAAIANBCGpCADcAAEEACxIAIAVBADYCACAEQQA2AgBBAAsTAAJAIARFDQAgA0EAOgAAC0EACwsAIARBADYCAEEACwQAQQALBABBAAtlAgF8AX8CQCAAIAFBARD0Hw0AIAAoAiAhACABQQA2AggCQAJAIAC3RJqZmZmZmek/oiICmUQAAAAAAADgQWNFDQAgAqohAwwBC0GAgICAeCEDCyABIAM2AgAgASADIABrNgIECwu2AQEBfyMAQcAAayIFJAACQCAAIAEgAiADIARBARCiQSICRQ0AAkAgACABIAVBDGogBUEIakEBEJhBDQAgACABIAVBDGogBUEIakEBEJxBRQ0AIAAgAUEBEJBBIQEgACAFQRBqENFBIAUgAUF+bSAFKAIMajYCDCAFIAUoAgggBSgCEGs2AggLIAUoAgghACADIAMoAgAgBSgCDGs2AgAgBCAEKAIAIABrNgIACyAFQcAAaiQAIAIL3wUCCH8BfiMAQdAAayIBJAAgAEFMaiECIAFBCGpBCGohAyABQQhqQRBqIQQgAUEdaiEFAkADQCAAKAIAIgYNAQJAIAIoAgAiBg0AQZCXGCEGDAILIANCADcDACAEQgA3AwAgBUIANwAAIAFCADcDCCABQgA3AyggAUEBOwEwAkAgBkHywtmz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KAIAEP0RIABBADYCAAsRACAAKAIAEP0RIABBADYCAAtmAQJ/IAAQ20AgAEE0ahCLQiAAQegAahCKQiAAQfQAahCJQiAAKAIsEP0RIABBADYCLAJAIAAoAoABIgFFDQAgAEEAIAAoAoABIgIgAiABRhs2AoABIAIgAUcNACABEIxCIAEQYAsLLgACQCAAKAIAQX9qQX1LDQAgAEEAEI1CIAAoAggQYAsgAEEANgIIIABCADcCAAsuAAJAIAAoAgBBf2pBfUsNACAAQQAQjkIgACgCCBBgCyAAQQA2AgggAEIANwIACy4AAkAgACgCAEF/akF9Sw0AIABBADYCBCAAKAIIEGALIABBADYCCCAAQgA3AgALLgACQCAAKAIAQX9qQX1LDQAgAEEANgIEIAAoAggQYAsgAEEANgIIIABCADcCAAtIAQJ/IAAoAgQiAiABayEDIAAoAgggAkEcbGohAgJAA0AgA0UNASACQWhqEI9CIAJBZGohAiADQX9qIQMMAAsACyAAIAE2AgQLSAECfyAAKAIEIgIgAWshAyAAKAIIIAJBHGxqIQICQANAIANFDQEgAkFoahCLQiACQWRqIQIgA0F/aiEDDAALAAsgACABNgIECy4AAkAgACgCAEF/akF9Sw0AIABBADYCBCAAKAIIEGALIABBADYCCCAAQgA3AgALMQAgABDbQCAAQdwAahCTQiAAQcABahCSQiAAQcwBahCRQiAAKAIsEP0RIABBADYCLAsuAAJAIAAoAgBBf2pBfUsNACAAQQAQlEIgACgCCBBgCyAAQQA2AgggAEIANwIACy4AAkAgACgCAEF/akF9Sw0AIABBABCVQiAAKAIIEGALIABBADYCCCAAQgA3AgALLgACQCAAKAIAQX9qQX1LDQAgAEEANgIEIAAoAggQYAsgAEEANgIIIABCADcCAAtIAQJ/IAAoAgQiAiABayEDIAAoAgggAkEYbGohAgJAA0AgA0UNASACQWxqEI9CIAJBaGohAiADQX9qIQMMAAsACyAAIAE2AgQLSAECfyAAKAIEIgIgAWshAyAAKAIIIAJBBXRqIQICQANAIANFDQEgAkFkahCLQiACQWBqIQIgA0F/aiEDDAALAAsgACABNgIEC0QAIABB4ABqEINBIABB1ABqEINBIABByABqEJdCIABBPGoQmEIgAEEwahCYQiAA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QQE6ABBBAEIANwOAlB5EAAAAAAAAAAAhCwwBCyAGIAVBA3RqKwMAIQsLIAwgC6AhCwsgAigCACACKAIEIgBBxABqKgIAIABByABqKgIAIAogDSAOIAwgDyALENVDIAEgCzkDsCIgASAPOQOoIiABKAIUIQQgBSEADAALAAsCQAJAIAEoAhRBB0cNACABKwMgIQsgASsDGCEMIAErA6giIQ0gA0EwakEIaiIAIAErA7AiIgogASsDKKAiDjkDACADIAsgDSAMoCIMoCILIAErAzCgOQMwIANBIGpBCGogACkDACITNwMAIAMgAykDMDcDICADIAMrAyAgASsDOKA5AyAgA0EQakEIaiIAIBM3AwAgAyADKQMgNwMQIAErA0AhDSAAIAo5AwAgAyANIAMrAxCgOQMQIANBCGogACkDADcDACADIAMpAxA3AwAgAyADKwMAIAErA0igOQMAIAEgAiAMIAogCyAOIANBMGogA0EgaiADQRBqIAMQ1kMMAQsgASABKAIEQQFqNgIICyABQQA2AhQMDAsCQAJAIAEoAhRBDUcNACABKwMoIQogASsDGCELIAErA6giIQwgASsDOCENIANBMGpBCGoiBCABKwOwIiABKwMgoCIOIAErAzCgIg8gASsDQKA5AwAgAyANIAogDCALoCILoCIKoDkDMCADQSBqQQhqIgAgBCkDADcDACADIAMpAzA3AyAgASsDSCEMIAAgACsDACABKwNQoDkDACADIAwgAysDIKA5AyAgA0EQakEIaiIEIAApAwA3AwAgAyADKQMgNwMQIAErA1ghDCAEIAQrAwAgASsDYKA5AwAgAyAMIAMrAxCgOQMQIANBCGoiACAEKQMANwMAIAMgAykDEDcDACABKwNoIQwgACAAKwMAIAErA3CgOQMAIAMgDCADKwMAoDkDACABIAIgCyAOIAogDyADQTBqIANBIGogA0EQaiADENZDDAELIAEgASgCBEEBajYCCAsgAUEANgIUDAsLAkACQCABKAIUQQlHDQAgASsDKCEKIAErAxghCyABKwOoIiEMIANBMGpBCGoiACABKwOwIiINIAErAyCgIg4gASsDMKAiDzkDACADIAogDCALoCILoCIKIAErAzigOQMwIANBIGpBCGogACkDACITNwMAIAMgAykDMDcDICADIAMrAyAgASsDQKA5AyAg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A0CgOQMAIAMgDSADKwMwoDkDMCADQSBqQQhqIgQgACkDADcDACADIAMpAzA3AyAgASsDSCENIAQgBCsDACABKwNQoDkDACADIA0gAysDIKA5AyAgA0EQakEIaiIAIAQpAwA3AwAgAyADKQMgNwMQIAErA1ghDSAAIAArAwAgASsDYKA5AwAgAyANIAMrAxCgOQMQIANBCGoiBCAAKQMANwMAIAMgAykDEDcDACABKwNoIQ0gBCAEKwMAIAErA3CgOQMAIAMgDSADKwMAoDkDACABIAIgA0HQAGogA0HAAGogA0EwaiADQSBqIANBEGogAxDOQwwBCyABIAEoAgRBAWo2AggLIAFBADYCFAwLCwJAAkAgASgCFEEJRw0AIANB0ABqQQhqIgAgAUGwImoiBikDADcDACADIAEpA6giNwNQIAErAxghDSAAIAArAwAgASsDIKA5AwAgAyANIAMrA1CgOQNQIANBwABqQQhqIgQgACkDADcDACADIAMpA1A3A0AgASsDKCENIAQgBCsDACABKwMwoDkDACADIA0gAysDQKA5A0AgA0EwakEIaiAEKQMAIhE3AwAgAyADKQNANwMwIAMgAysDMCABKwM4oDkDMCADQSBqQQhqIBE3AwAgAyADKQMwNwMgIAMgAysDICABKwNAoDkDICADQRBqQQhqIgAgETcDACADIAMpAyA3AxAgASsDSCENIAAgACsDACABKwNQoDkDACADIA0gAysDEKA5AxAgA0EIaiIEIAApAwA3AwAgAyADKQMQNwMAIAMgAysDACABKwNYoDkDACAEIAYpAwA3AwAgASACIANB0ABqIANBwABqIANBMGogA0EgaiADQRBqIAMQzkMMAQsgASABKAIEQQFqNgIICyABQQA2AhQMCgsgASgCFEELRw0CIAFBGGohBkEAIQBEAAAAAAAAAAAhDUQAAAAAAAAAACEOA0ACQCAAQQpJDQAgA0HQAGpBCGoiACABQbAiaikDADcDACADIAEpA6giNwNQIAErAxghDyAAIAArAwAgASsDIKA5AwAgAyAPIAMrA1CgOQNQIANBwABqQQhqIgQgACkDADcDACADIAMpA1A3A0AgASsDKCEPIAQgBCsDACABKwMwoDkDACADIA8gAysDQKA5A0AgA0EwakEIaiIAIAQpAwA3AwAgAyADKQNANwMwIAErAzghDyAAIAArAwAgASsDQKA5AwAgAyAPIAMrAzCgOQMwIANBIGpBCGoiBCAAKQMANwMAIAMgAykDMDcDICABKwNIIQ8gBCAEKwMAIAErA1CgOQMAIAMgDyADKwMgoDkDICADQRBqQQhqIgAgBCkDADcDACADIAMpAyA3AxAgASsDWCEPIAAgACsDACABKwNgoDkDACADIA8gAysDEKA5AxAgA0EIaiAAKQMANwMAIAMgAykDEDcDAAJAAkAgDZkgDplkRQ0AIAMgAysDACABKwNooDkDACADIAEpA7AiNwMIDAELIAMgASkDqCI3AwAgAyADKwMIIAErA2igOQMICyABIAIgA0HQAGogA0HAAGogA0EwaiADQSBqIANBEGogAxDOQwwFCyANIAYgAEEDdGoiBCsDAKAhDSAOIARBCGorAwCgIQ4gAEECaiEADAALAAsgAEH/AUYNBwsgACABEPFCDAcLIAEgASgCBEEBajYCCAsgAUEANgIUDAULIANB0ABqQQhqIgUgAUGwImopAwAiETcDACADIAEpA6giNwNQIAMgAysDUCABKwMYoDkDUCADQcAAakEIaiIGIBE3AwAgAyADKQNQNwNAIAErAyAhDSAGIAYrAwAgASsDKKA5AwAgAyANIAMrA0CgOQNAIANBMGpBCGoiCCAGKQMANwMAIAMgAykDQDcDMCABQRhqIQcgAUGoImohCSAIKwMAIAErAzCgIQ1BBCEAAkADQCADIA05AzggAEEIaiIKIARLDQEgASACIANB0ABqIANBwABqIANBMGoQzUMgBSAJQQhqKQMANwMAIAMgCSkDADcDUAJAAkAgASgCFCIEIABLDQAgAUEBOgAQQQBCADcDgJQeRAAAAAAAAAAAIQ0MAQsgByAAQQN0aisDACENCyAFIAUrAwAgDaA5AwAgBiAFKQMANwMAIAMgAykDUDcDQAJAAkAgBCAAQQFyIgtLDQAgAUEBOgAQQQBCADcDgJQeQYCUHiELDAELIAcgC0EDdGohCwsCQAJAIAQgAEECciIMSw0AIAFBAToAEEEAQgA3A4CUHkQAAAAAAAAAACENDAELIAcgDEEDdGorAwAhDQsgCysDACEOIAYgBisDACANoDkDACAIIAYpAwA3AwAgAyAOIAMrA0CgOQNAIAMgAykDQDcDMAJAAkAgBCAAQQNyIgtLDQAgAUEBOgAQQQBCADcDgJQeRAAAAAAAAAAAIQ0MAQsgByALQQN0aisDACENCyADIAMrAzAgDaA5AzAgASACIANB0ABqIANBwABqIANBMGoQzUMgBSAIKQMANwMAIAMgAykDMDcDUAJAAkAgASgCFCIEIABBBGoiC0sNACABQQE6ABBBAEIANwOAlB5EAAAAAAAAAAAhDQwBCyAHIAtBA3RqKwMAIQ0LIAYgBSkDADcDACADIAMrA1AgDaA5A1AgAyADKQNQNwNAAkACQCAEIABBBWoiC0sNACABQQE6ABBBAEIANwOAlB5BgJQeIQsMAQsgByALQQN0aiELCwJAAkAgBCAAQQZqIgxLDQAgAUEBOgAQQQBCADcDgJQeRAAAAAAAAAAAIQ0MAQsgByAMQQN0aisDACENCyALKwMAIQ4gBiAGKwMAIA2gOQMAIAggBikDADcDACADIA4gAysDQKA5A0AgAyADKQNANwMwAkACQCAEIABBB2oiAEsNACABQQE6ABBBAEIANwOAlB5EAAAAAAAAAAAhDQwBCyAHIABBA3RqKwMAIQ0LIAMrAzggDaAhDSAKIQAMAAsACwJAIAAgBE8NACADIAMrAzAgByAAQQN0aisDAKA5AzALIAEgAiADQdAAaiADQcAAaiADQTBqEM1DCyABQQA2AhQMAwsgA0HQAGpBCGoiBSABQbAiaikDADcDACADIAEpA6giIhE3A1AgBSAFKwMAIAErAxigOQMAIANBwABqQQhqIgYgBSkDADcDACADIBE3A0AgASsDICENIAYgBisDACABKwMooDkDACADIA0gAysDQKA5A0AgA0EwakEIaiIIIAYpAwA3AwAgAyADKQNANwMwIAFBGGohByABQagiaiEJIAMrAzAgASsDMKAhDUEEIQACQANAIAMgDTkDMCAAQQhqIgogBEsNASABIAIgA0HQAGogA0HAAGogA0EwahDNQyAFIAlBCGopAwA3AwAgAyAJKQMANwNQAkACQCABKAIUIgQgAEsNACABQQE6ABBBAEIANwOAlB5EAAAAAAAAAAAhDQwBCyAHIABBA3RqKwMAIQ0LIAYgBSkDADcDACADIAMrA1AgDaA5A1AgAyADKQNQNwNAAkACQCAEIABBAXIiC0sNACABQQE6ABBBAEIANwOAlB5BgJQeIQsMAQsgByALQQN0aiELCwJAAkAgBCAAQQJyIgxLDQAgAUEBOgAQQQBCADcDgJQeRAAAAAAAAAAAIQ0MAQsgByAMQQN0aisDACENCyALKwMAIQ4gBiAGKwMAIA2gOQMAIAggBikDADcDACADIA4gAysDQKA5A0AgAyADKQNANwMwAkACQCAEIABBA3IiC0sNACABQQE6ABBBAEIANwOAlB5EAAAAAAAAAAAhDQwBCyAHIAtBA3RqKwMAIQ0LIAggCCsDACANoDkDACABIAIgA0HQAGogA0HAAGogA0EwahDNQyAFIAgpAwA3AwAgAyADKQMwNwNQAkACQCABKAIUIgQgAEEEaiILSw0AIAFBAToAEEEAQgA3A4CUHkQAAAAAAAAAACENDAELIAcgC0EDdGorAwAhDQsgBSAFKwMAIA2gOQMAIAYgBSkDADcDACADIAMpA1A3A0ACQAJAIAQgAEEFaiILSw0AIAFBAToAEEEAQgA3A4CUHkGAlB4hCwwBCyAHIAtBA3RqIQsLAkACQCAEIABBBmoiDEsNACABQQE6ABBBAEIANwOAlB5EAAAAAAAAAAAhDQwBCyAHIAxBA3RqKwMAIQ0LIAsrAwAhDiAGIAYrAwAgDaA5AwAgCCAGKQMANwMAIAMgDiADKwNAoDkDQCADIAMpA0A3AzACQAJAIAQgAEEHaiIASw0AIAFBAToAEEEAQgA3A4CUHkQAAAAAAAAAACENDAELIAcgAEEDdGorAwAhDQsgAysDMCANoCENIAohAAwACwALAkAgACAETw0AIAMgAysDOCAHIABBA3RqKwMAoDkDOAsgASACIANB0ABqIANBwABqIANBMGoQzUMLIAFBADYCFAwBCyABQRBqIAEQz0MLIANB4ABqJAALqVkDD38GfAF+IwBBkCRrIgQkACACQoCAgICAgIDwQTcDGCACQoCAgICAgIDwQTcDECACQoCAgP7////vwQA3AwggAkKAgID+////78EANwMAQQAhBQJAIAAoAixFDQAgACgC2AEgAU0NACAAKAJQIAEQ10MhBSAEQYQjaiAAKAJIIAEQ6kIgBEEwaiAEQYQjaiAAIAUQ2EMiASADOgDIIiAEIAA2AiggBEEAOgAAIARCgICAgICAgPBBNwMgIARCgICAgICAgPBBNwMYIARCgICA/v///+/BADcDECAEQoCAgP7////vwQA3AwggAUEAOgC0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GHQgA0GA/gNxQQh0ciADQQh2QYD+A3EgA0EYdnJyEKtDIAAgAUEBaiABEKpDEJ5DIAAoAgggACgCDBCpQQwTCyABIABBfxCsQwwSCyABIAAgASgACCIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZychCsQwwRCyABIABBfxCtQwwQCyABIAAgASgACCIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZychCtQwwPCyABIABBfxCuQwwOCyABIAAgASgADCIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZychCuQwwNCyABIABBfxCvQwwMCyABIAAgASgABiIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZychCvQwwLCyABIABBfxCwQwwKCyABIAAgASgACiIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZychCwQwwJCyABIABBfxCxQwwICyABIAAgASgABiIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZychCxQwwHCyABIABBfxCyQwwGCyABIAAgASgACiIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZychCyQwwFCyABIABBfxCzQwwECyABIAAgASgACCIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZychCzQwwDCyABIABBfxC0QwwCCyABIAAgASgADCIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZychC0QwwBCyAAKAIIIAAoAgwQtUMgACABQQVqIAEQqkMQnkMgACgCCCAAKAIMELVDIAAgAUEBaiABEKpDEJ5DIAAoAgggACgCDCABLQAEELZDIAAoAgggACgCDEEDELZDCyAAIAAoAkBBAWo2AkALIAJB4ABqJAALcwECfyMAQRBrIgMkACABIAAvAAEiBEEIdCAEQQh2ckH//wNxIAEoAiQgAkEAEI9DIAAvAAMiAEEIdCAAQQh2ckEQdEEQdbKSQwAAgDiUIANBDGoQm0MhACABKAIIIAEoAgwgAygCDCAAEPUgIANBEGokAAssAAJAIAAQ4UFFDQBBkJcYDwsgASAALQABQQh0IAAtAABBEHRyIAAtAAJyagsHACABLQAAC8gBAQd/IAEvAAEiBkEI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KAIAIAFGCz4BAn9BkJcYIQECQCAAKAIAQZCXGCAAKAIEGy8AACICRQ0AIAAoAhAgAkEIdCACQQh2ckH//wNxaiEBCyABCwQAQQALCQAgACABEItFCwkAIAAgARCLRQsEAEEACwkAIAAgARCKRQsJACAAIAEQikULBABBAAsJACAAIAEQiEULCQAgACABEIhFCwQAQQALCQAgACABEIdFCwkAIAAgARCHRQstAQF/QQAhAQNAAkAgAUGABEcNAA8LIAAgAWpB//8DOwEAIAFBAmohAQwACwALBABBAAsLACAAIAEgAhCARQsLACAAIAEgAhCARQvTBAEEfwJAAkACQAJAIAAvAAAiAkEIdCACQQh2ckH//wNxQX9qDgMAAQIDCyABIAEoAggiAkEBajYCCCABKAIEIAJBMGxqIgFCADcDGCABQQA2AhAgAUHfBzYCDCABQeAHNgIIIAFB4Qc2AgQgASAANgIAIAFBIGpCADcDACABQShqQgA3AwAgAUEYaiECAkACQCAALwACIgENAEGQlxghAAwBCyAAIAFBCHQgAUEIdnJB//8DcWohAAsgACACEPJDDwtBACEDAkAgASgCCCICQQdLDQBBgAIQXiIDRQ0AIAMQzEQLIAEgAkEBajYCCCABKAIEIAJBMGxqIgJCADcDGCACIAM2AhAgAkHiBzYCDCACQeMHNgIIIAJB5Ac2AgQgAiAANgIAIAJBIGpCADcDACACQShqQgA3AwAgAkEYaiEEQZCXGCECQZCXGCEDAkAgAC8AAiIFRQ0AIAAgBUEIdCAFQQh2ckH//wNxaiEDCyADIAQQ8kMCQCAALwAEIgNFDQAgACADQQh0IANBCHZyQf//A3FqIQILIAIQ0EQiACABKAIQTQ0BIAEgADYCECABIAEoAghBf2o2AgwPCyABIAEoAggiAkEBajYCCCABKAIEIAJBMGxqIgFCADcDGCABQQA2AhAgAUHlBzYCDCABQeYHNgIIIAFB5wc2AgQgASAANgIAIAFBIGpCADcDACABQShqQgA3AwAgAUEYaiECAkACQCAALwAGIgENAEGQlxghAAwBCyAAIAFBCHQgAUEIdnJB//8DcWohAAsgACACEPJDCwu7BQEEfwJAAkACQAJAIAAvAAAiAkEIdCACQQh2ckH//wNxQX9qDgMAAQIDCyABIAEoAggiAkEBajYC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QgA3AwAgAkEYaiEDAkACQCAALwACIgINAEGQlxghAAwBCyAAIAJBCHQgAkEIdnJB//8DcWohAAsgACADEPJDDwsCQAJAIAAvAAAiAkEIdCACQQh2ckH//wNxQX9qDgIAAQoLQQAhAwJAIAEoAggiAkEHSw0AQYAEEF4iA0UNACADEMBECyABIAJBAWo2AgggASgCBCACQTBsaiICQgA3AxggAiADNgIQIAJB+wc2AgwgAkH8BzYCCCACQf0HNgIEIAIgADYCACACQSBqQgA3AwAgAkEoakIANwMAIAJBGGohAwJAAkAgAC8AAiICDQBBkJcYIQAMAQsgACACQQh0IAJBCHZyQf//A3FqIQALIAAgAxDyQw8LQQAhAwJAIAEoAggiAkEHSw0AQYAMEF4iA0UNACADEMBEIANBgARqEMBEIANBgAhqEMBECyABIAJBAWo2AgggASgCBCACQTBsaiICQgA3AxggAiADNgIQIAJB/gc2AgwgAkH/BzYCCCACQYAINgIEIAIgADYCACACQSBqQgA3AwAgAkEoakIANwMAIAJBGGohAwJAAkAgAC8AAiICDQBBkJcYIQAMAQsgACACQQh0IAJBCHZyQf//A3FqIQALIAAgAxDyQw8LIAAvAABBgAJHDQcgASABKAIIIgJBAWo2AgggASgCBCACQTBsaiICQgA3AxggAkEANgIQIAJBgQg2AgwgAkGCCDYCCCACQYMINgIEIAIgADYCACACQSBqQgA3AwAgAkEoakIANwMAIAJBGGohAwJAAkAgAC8AAiICDQBBkJcYIQAMAQsgACACQQh0IAJBCHZyQf//A3FqIQALIAAgAxDyQw8LIAAvAABBgAJHDQYgASABKAIIIgJBAWo2AgggASgCBCACQTBsaiICQgA3AxggAkEANgIQIAJBhAg2AgwgAkGFCDYCCCACQYYINgIEIAIgADYCACACQSBqQgA3AwAgAkEoakIANwMAIAJBGGohAwJAAkAgAC8AAiICDQBBkJcYIQAMAQsgACACQQh0IAJBCHZyQf//A3FqIQALIAAgAxDyQw8LIAAvAABBgAJHDQUgASABKAIIIgJBAWo2AgggASgCBCACQTBsaiICQgA3AxggAkEANgIQIAJBhwg2AgwgAkGICDYCCCACQYkINgIEIAIgADYCACACQSBqQgA3AwAgAkEoakIA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KAIEIgIgAWshAyAAKAIIIAJBDGxqIQICQANAIANFDQECQCACQXRqIgQoAgBBf2pBfUsNACACQXhqQQA2AgAgAkF8aigCABBgCyADQX9qIQMgAkF4akEANgIAIARBADYCACACQXxqQQA2AgAgBCECDAALAAsgACABNgIECyIBAX9BACEDAkAgAkEASA0AIAAgASACQQF0ENhAIQMLIAMLagEDfyAALwACIgFBCHQgAUEIdnJB//8DcSECQQAhAwJAIAFFDQAgACACQX9qIAAvAAAiAUEIdCABQQh2ckH//wNxbGpBCmoiAC8AAEH//wNHDQBBf0EAIAAvAAJB//8DRhshAwsgAyACags0AQF/AkAgABClRiABSw0AQZCXGA8LIAAgAC8AACICQQh0IAJBCHZyQf//A3EgAWxqQQpqC2oBA38gAC8AAiIBQQh0IAFBCHZyQf//A3EhAkEAIQMCQCABRQ0AIAAgAkF/aiAALwAAIgFBCHQgAUEIdnJB//8DcWxqQQpqIgAvAABB//8DRw0AQX9BACAALwACQf//A0YbIQMLIAMgAmoLNAEBfwJAIAAQp0YgAUsNAEGQlxgPCyAAIAAvAAAiAkEIdCACQQh2ckH//wNxIAFsakEKagvvAwEDfwJAAkACQAJAAkACQAJAIAAvAAAiA0EIdCADQQh2ckH//wNxDgsABgEGAgYDBgQGBQYLIAFBACACQX9qEMtFDwtBACEDIABBAmoiBBDVRiEFA0AgAyAFRg0FAkAgBCADENpGIgIvAAIiAEH//wNGDQAgASAAQQh0IABBCHZyQf//A3EgAi8AACIAQQh0IABBCHZyQf//A3EQy0ULIANBAWohAwwACwALQQAhAyAAQQJqIgQQp0YhBQNAIAMgBUYNBAJAIAQgAxCoRiICLwACIgBB//8DRg0AIAEgAEEIdCAAQQh2ckH//wNxIAIvAAAiAEEIdCAAQQh2ckH//wNxEMtFCyADQQFqIQMMAAsAC0EAIQMgAEECaiIFENhGIQIDQCADIAJGDQMCQCAFIAMQ20YvAAAiAEH//wNGDQAgASAAQQh0IABBCHZyQf//A3EQxEULIANBAWohAwwACwALIAAvAAQiA0UNASAALwACIgBB//8DRg0BIAEgAEEIdCAAQQh2ckH//wNxIgAgACADQQh0IANBCHZyQf//A3FqQX9q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ai0AABCdRyEPIAogCE8NASAPRQ0BIAogDUEMai8BACANQRJqLQAAEJtHaiEQDAMLIAtBAWohCwwBCwsgCiEQCyACIBAgC0EBahCzQCADQQhqQRBqIg0gDkEQaigCADYCACADQQhqQQhqIg8gDkEIaikCADcDACADIA4pAgA3AwggByAQQRRsaiIKQRRqIAogCyAQa0EUbBCJARogCkEQaiANKAIANgIAIApBCGogDykDADcCACAKIAMpAwg3AgALAkAgByAJQRRsaiILLQATQQJHDQACQAJAIAlFDQBBASALQXxqLwEAdEH+P3ENAQsgCyALKAIEIAwoAogBcjYCBAwBCyACIAlBf2ogExC0QAsgCCEJIAQoAgAgBigCACIHIAgQmEchCAwACwALIANBIGokAEEACxoAIABBGGoiAEHhzqXjBhD9RiAAQZ0IEJ0hCxQAIAIgAi0AqAFB9wFxOgCoAUEAC/gCAQZ/AkBBAUGgARBkIgFFDQAgAUHwsRY2AgAgACgCBCECQQEhAwJAA0ACQCADQQpHDQBB8LEWIQQMAgsgA0EYbCEEIANBAWohAyACIARB8LEWaiIEKAIARw0ACyABIAQ2AgALAkACQAJAIAQtAAQNACABQX82AggMAQsgAC0AGCEDIAFBfzYCCCABIANBMkciBDoABEEAIQMgBA0BCyACQe3ysesERyEDCyABQQxqIABBGGoiBEHm0MGTByADEIpHIAFBHGogBEHmysmDByADEIpHIAFBLGogBEHm7rGTBiADEIpHIAFBPGogBEHm6M2DByADEIpHIAFBzABqIARB9eiFswcgAxCKRyABQdwAaiEFQQAhAyAAQTBqIQYDQCADQRFGDQFBACEEAkAgA0EDdCICQaTvFWotAABBAXENACAAQSxqKAIAIAYoAgAgAkGg7xVqKAIAEKohIQQLIAUgA0ECdGogBDYCACADQQFqIQMMAAsACyABCwYAIAAQYAsCAAtXAQF/QQAhBAJAIAFBpGxqQQJJDQAgAUGxEkYNACABQZQXRg0AIAAoAgwhBCACIAE2AgAgA0EANgIAIAQgASACIAMgBCgCPCAEKAIkEQwAQQBHIQQLIAQLewECfwJAAkAgACgCDCIEIAEgBCgCLCAEKAIUEQQAQR9LDQBBACEEQQEgACgCDCIFIAEgBSgCLCAFKAIUEQQAdEGA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IgEgBk8NACAKIAFBFGxqIhItABIiDUEERw0BIBMNASABQQFqIg4gBk8NAiARQQFqIRFBACENIAogDkEUbGoiFC0AEkEPRw0DA0ACQCANQQJHDQAgAiAFIAFBAmoiDRCzQCADQRhqQRBqIhMgEkEQaigCADYCACADQRhqQQhqIhEgEkEIaikCADcDACADIBIpAgA3AxggA0EQaiISIBRBEGooAgA2AgAgA0EIaiIVIBRBCGopAgA3AwAgAyAUKQIANwMAIBAgCyABIAVrQRRsEIkBGiALQRBqIBMoAgA2AgAgC0EIaiARKQMANwIAIAsgAykDGDcCACAPQRBqIBIoAgA2AgAgD0EIaiAVKQMANwIAIA8gAykDADcCAAJAIAwoAhBFDQADQCANIAZGDQEgCiANQRRsaiIBIAEoAgQgDCgCEHI2AgQgDUEBaiENDAALAAtBAiERDAULIBIgDUEUbGpBBGoiEyATKAIAIAwoAgByNgIAIA1BAWohDQwACwALIAkoAgAhCiAHKAIAIQEMBAsgAUEBaiEOIA1BFkcNACACIAUgDhCzQCADQRhqQRBqIg0gEkEQaigCADYCACADQRhqQQhqIhQgEkEIaikCADcDACADIBIpAgA3AxggDyALIAEgBWtBFGwQiQEaIAtBEGogDSgCADYCACALQQhqIBQpAwA3AgAgCyADKQMYNwIADAALAAsACyACIAItAKgBQb8BcToAqAEgA0EwaiQAIAQPCyAGIQUgASAKIAYQp0chBgwACwshACAAQRhqIgBB59KxmwZBAUEBEJwhIABB4c6l4wYQ/UYLewEFfwJAQQFBJBBkIgFFDQBBACECIABBMGohAyAAQSxqIQQDQCACQQlGDQFBACEAAkAgAkEDdCIFQcS+FmotAABBAXENACAEKAIAIAMoAgAgBUHAvhZqKAIAEKohIQALIAEgAkECdGogADYCACACQQFqIQIMAAsACyABCwYAIAAQYAuxAQACQAJAAkACQAJAAkAgAUHCUGoOCAABAgUFBQMEBQsgAkHBLzYCACADQb4vNgIAQQEPCyACQcEvNgIAIANBvy82AgBBAQ8LIAJBwS82AgAgA0HALzYCAEEBDwsgAkHBLzYCACADQcQvNgIAQQEPCyACQcEvNgIAIANBxS82AgBBAQ8LIAAoAgwhACACIAE2AgAgA0EANgIA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KgIIIQggAiAJOAIoIAIgCDgCCCACIAg4AgwgAiAKOAIsIAFCgICA/IuAgMC/fzcCCCABQgA3AgBBACEEAkADQCAEQQRGDQEgAyoCFCEJIAMqAgQhCCADKgIMIQogAiAEQQJ0IgVqIgYgAyoCCCACQSBqIAVqIgUqAgAiC5QgByAGKgIAIgyUIAMqAhCSkiINOAIAIAUgCiALlCAJIAggDJSSkiIJOAIAIAEgDSAJENBAIARBAWohBAwACwALIAJBAkECQQEgASoCBCABKgIMYBsgASoCACABQQhqIgMqAgBgGzYCACACQQxqIAMpAgA3AgAgAiABKQIANwIEAkACQCAAKAIQIgMNAEEAQgA3A4iUHkEAQgA3A4CUHkEAQQA2ApCUHiAAKAIQIQNBgJQeIQQMAQsgACgCFCADQRRsakFsaiEECyACIAQQ2kcCQAJAAkAgAyAAKAIMSA0AIABBDGogA0EBahC+QUUNASAAKAIQIQMLIAAgA0EBajYCECAAKAIUIANBFGxqIgNBEGogAkEQaigCADYCACADQQhqIAJBCGopAgA3AgAgAyACKQIANwIADAELQQBCADcDiJQeQQBCADcDgJQeQQBBADYCkJQeCyACQTBqJAALIQEBfyMAQSBrIgEkACABQQxqIABBDGoQ2UcgAUEgaiQAC24BAn8CQCABKAIEIgINACAAQgA3AgAgAEEQakEANgIAIABBCGpCADcCAA8LIAAgASgCCCACQRRsakFsaiIDKQIANwIAIABBEGogA0EQaigCADYCACAAQQhqIANBCGopAgA3AgAgASACQX9qNgIEC6cCAQV9AkACQAJAIAEoAgBBf2oOAgEAAgsgAEECNgIADwsCQAJAIAAoAgAOAgABAgsgACABKQIANwIAIABBEGogAUEQaigCADYCACAAQQhqIAFBCGopAgA3AgAPCwJAAkACQCABKgIEIgIgASoCDGANACABKgIIIAEqAhBgDQAgACoCBCIDIAAqAgwiBGANACAAKgIIIgUgACoCECIGYEUNAQsgAEKAgID8i4CAwL9/NwIMIABCADcCBAwBCyAAIAMgAiADIAJgGyICOAIEIAAgBSABKgIIIgMgBSADYBsiBTgCCCAAIAQgASoCDCIDIAQgA18bIgM4AgwgACAGIAEqAhAiBCAGIARfGyIEOAIQIAIgA2ANACAF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ACAAKAKEEmxurSINIAwgDVQbpyIINgIIIAAgACgC3A0gBEEQaiAIEIZIDAELIAUQgEhFDQILIABCADcD6A0gACAEKAIIIgitNwPwDSAFIAgQh0hFDQALCyAEQZAgaiQACw0AIAAgAkEAIAEQ/EcLCQAgACABEOgKCwkAIAAgARCtDgttAQR/AkAgAA0AQQAPCyAAKAJMIgFB/////wdxIQIgACgCSCIDQf////8HcSEEAkACQCABIANzQQBIDQAgAiAEayEBDAELIAIgBGsgACgCPGohAQsgASAAKAJkQQJ0QZCaG2ooAgAgACgCaGxuC/EWAgd/CX4jAEGg4ABrIgUkAAJAAkAgAA0AQX4hBgwBC0F9IQYCQAJAAkACQAJAAkACQAJAIAAoAhwOBgABAgMFBAgLQgAhDEIAIQ0CQCACRQ0AIAIpAwAhDQsCQCAERQ0AIAQpAwAhDAsgDSAMIA0gDFQbIQ4CQCADRQ0AIA4gACgCBEECdEGQmhtqKAIAIAAoAgxsrX4hDAJAIAENAANAIAxQDQIgDCAMQv////8PIAxC/////w9UGyINfSEMIANBACANpyIAEEggAGohAwwACwALA0AgDFANASADIAEgDEL/////DyAMQv////8PVBsiDaciABBLIQMgDCANfSEMIAEgAGohASADIABqIQMMAAsACwJAIAJFDQAgAiAONwMAC0EAIQYgBEUNByAEIA43AwAMBwtCACEMQgAhDQJAIAJFDQAgAikDACENCwJAIARFDQAgBCkDACEMCyANIAwgDSAMVBshDiADRQ0FIAAoAgQhBgJAIAFFDQAgAyAGIAEgACgCACAOIAAoAgggACgCGBCISAwGCyAOIAZBAnRBkJobaigCACAAKAIMbK1+IQwDQCAMUA0GIAwgDEL/////DyAMQv////8PVBsiDX0hDCADQQAgDaciABBIIABqIQMMAAsAC0IAIQxCACENAkAgAkUNACACKQMAIQ0LAkAgBEUNACAEKQMAIQwLIA0gDCANIAxUGyEOAkAgAC0A4AENACAALQDhAQ0AIABBIGogAyABIA4QiUgiBg0GDAQLIABBIGohB0IAIQwDQCAOIAxYDQRBgCAgACgCICIIQQJ0QZCaG2ooAgAiCSAAKAIobG4hCkEAIQZBACELAkAgAUUNACABIAAoAgggDKdsIAAoAgBB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IAOtIAAoArgHIAAoArwHIAoQjEgLIAAtAKYCDQEgACgCuAdBBUcNASABIAEgACgCvAcgA2ytEI5IDAELIAFFDQAgASADrSAAKAK4ByAAKAK8BxCPSAsgBEGAIGokAAtsAQN/QX4hAgJAIABFDQAgACgCSCIDQf////8HcSAAKAJoIAFsIAAoAmRBAnRBkJobaigCAGxqIgEgACgCPCIESw0AIAAgA0GAgICAeHEiAkGAgICAeHMgASACciABIARGGzYCSEEAIQILIAILvSEEA34GfwZ9AXwgBa0gBH4hBAJAAkAgASADRw0AIAQgAUECdEGQmhtqNQIAfiEEA0AgBFANAiAAIAIgBEL/////DyAEQv////8PVBsiB6ciARBLIQAgBCAHfSEEIAIgAWohAiAAIAFqIQAMAAsACwJAAkACQAJAAkACQCADQX9qDgUAAQIDBAYLQgAhBwJAAkACQAJAIAFBfmoOBAABAgMJCwNAIAcgBFENCSAAIAenIgFBAXRqIAIgAWotAABBCHRBgIACczsBACAHQgF8IQcMAAsACwNAIAcgBFENCCACIAenIgFqLQAAIQMgACABQQNsaiIBQQA7AAAgAUECaiADQYABczoAACAHQgF8IQcMAAsACwNAIAcgBFENByAAIAenIgFBAnRqIAIgAWotAABBGHRBgICAgHhzNgIAIAdCAXwhBwwACwALA0AgByAEUQ0GIAAgB6ciAUECdGogAiABai0AALNDgYAAPJRDAACAv5I4AgAgB0IBfCEHDAALAAtCACEHAkACQAJAAkAgAUF/ag4FAAgBAgMICwJAIAYNAEIAIQcDQCAHIARRDQkgACAHpyIBaiACIAFBAXRqLQABQYABczoAACAHQgF8IQcMAAsAC0EAKAKYyh0hA0IAIQcgBkF/aiEKA0AgByAEUQ0IIAIgB6ciBUEBdGouAQAhBkEAIQECQAJAAkAgCg4CAAECC0EAIANBj/kCbEH/////B28iAzYCmModIANBGHZBgH9qIQEMAQtBACADQY/5AmxB/////wdvIgFBj/kCbEH/////B28iAzYCmModIAFB8Y/wD24gA0EZdmpBgH9qIQELIAAgBWogASAGaiIBQf//ASABQf//AUgbQQh2QYABczoAACAHQgF8IQcMAAsACwNAIAcgBFENByAAIAenIgNBA2xqIgFBADoAACABQQFqIAIgA0EBdGoiAy0AADoAACABQQJqIAMtAAE6AAAgB0IBfCEHDAALAAsDQCAHIARRDQYgACAHpyIBQQJ0aiACIAFBAXRqLwEAQRB0NgIAIAdCAXwhBwwACwALA0AgByAEUQ0FIAAgB6ciAUECdGogAiABQQF0ai4BALJDAAAAOJQ4AgAgB0IBfCEHDAALAAtCACEHAkACQAJAAkAgAUF/ag4FAAEHAgMHCyAGRQ0FQQAoApjKHSEFQgAhByAGQX9qIQoDQCAHIARRDQcgAiAHpyIGQQNsaiIBQQFqLQAAQRB0IAEtAABBCHRyIAFBAmotAABBGHRyIQNBACEBAkACQAJAIAoOAgABAgtBACAFQY/5AmxB/////wdvIgU2ApjKHSAFQQh2QYCAgHxqIQEMAQtBACAFQY/5AmxB/////wdvIgFBj/kCbEH/////B28iBTYCmModIAVBCXYgAUEJdmpBgICAfGohAQsgACAGaiABIANqQRh2QYABc0F/IAGsIAOsfEKAgICACFMbOgAAIAdCAXwhBwwACwALAkAgBg0AQgAhBwNAIAcgBFENByAAIAenIgFBAXRqIAIgAUEDbGpBAWovAAA7AQAgB0IBfCEHDAALAAtBACgCmModIQVCACEHIAZBf2ohCgNAIAcgBFENBiACIAenIgZBA2xqIgFBAWotAABBEHQgAS0AAEEIdHIgAUECai0AAEEYdHIhA0EAIQECQAJAAkAgCg4CAAECC0EAIAVBj/kCbEH/////B28iBTYCmModIAVBEHZBgIB+aiEBDAELQQAgBUGP+QJsQf////8HbyIBQY/5AmxB/////wdvIgU2ApjKHSABQf3/B24gBUERdmpBgIB+aiEBCyAAIAZBAXRqIAEgA2pBEHZB//8BIAGsIAOsfEKAgICACFMbOwEAIAdCAXwhBwwACwALA0AgByAEUQ0FIAAgB6ciAUECdGogAiABQQNsaiIBQQFqLQAAQRB0IAEtAABBCHRyIAFBAmotAABBGHRyNgIAIAdCAXwhBwwACwALA0AgByAEUQ0EIAAgB6ciAUECdGogAiABQQNsaiIBQQFqLQAAQRB0IAEtAABBCHRyIAFBAmotAABBGHRyQQh1skMAAAA0lDgCACAHQgF8IQcMAAsAC0IAIQcCQAJAAkACQCABQX9qDgUAAQIGAwYLAkAgBg0AQgAhBwNAIAcgBFENByAAIAenIgFqIAIgAUECdGotAANBgAFzOgAAIAdCAXwhBwwACwALQQAoApjKHSEFQgAhByAGQX9qIQoDQCAHIARRDQYgAiAHpyIGQQJ0aigCACEDQQAhAQJAAkACQCAKDgIAAQILQQAgBUGP+QJsQf////8HbyIFNgKYyh0gBUEIdkGAgIB8aiEBDAELQQAgBUGP+QJsQf////8HbyIBQY/5AmxB/////wdvIgU2ApjKHSAFQQl2IAFBCXZqQYCAgHxqIQELIAAgBmogASADakEYdkGAAXNBfyABrCADrHxCgICAgAhTGzoAACAHQgF8IQcMAAsACwJAIAYNAEIAIQcDQCAHIARRDQYgACAHpyIBQQF0aiACIAFBAnRqLwECOwEAIAdCAXwhBwwACwALQQAoApjKHSEFQgAhByAGQX9qIQoDQCAHIARRDQUgAiAHpyIGQQJ0aigCACEDQQAhAQJAAkACQCAKDgIAAQILQQAgBUGP+QJsQf////8HbyIFNgKYyh0gBUEQdkGAgH5qIQEMAQtBACAFQY/5AmxB/////wdvIgFBj/kCbEH/////B28iBTYCmModIAFB/f8HbiAFQRF2akGAgH5qIQELIAAgBkEBdGogASADakEQdkH//wEgAawgA6x8QoCAgIAIUxs7AQAgB0IBfCEHDAALAAsDQCAHIARRDQQgACAHpyIDQQNsaiIBQQJqIAIgA0ECdGooAgAiA0EYdjoAACABQQFqIANBEHY6AAAgASADQQh2OgAAIAdCAXwhBwwACwALA0AgByAEUQ0DIAAgB6dBAnQiAWogAiABaigCALdEAAAAAAAAAD6itjgCACAHQgF8IQcMAAsAC0EAIQNCACEHAkACQAJAAkAgAUF/ag4EAAEDAgULQQAoApjKHSEBQgAhByAGQX9qIQYDQCAHIARRDQUgAiAHpyIDQQJ0aioCACEQQwAAAAAhEQJAAkACQCAGDgIAAQILQQAgAUGP+QJsQf////8HbyIBNgKYyh0gAbdEAADA////30GjtkMCgYA8lEMAAAC8kiERDAELQQAgAUGP+QJsQf////8HbyIFQY/5AmxB/////wdvIgE2ApjKHSAFt0QAAMD////fQaO2QwAAADyUQwAAALySIAG3RAAAwP///99Bo7ZDBAIBPJRDAAAAAJKSIRELAkACQEMAAAAAQwAAgD8gECARkiIRIBFDAACAP14bQwAAgD+SQwAA/0KUIBFDAACAv10bIhFDAACAT10gEUMAAAAAYHFFDQAgEakhBQwBC0EAIQULIAAgA2ogBToAACAHQgF8IQcMAAsACyAEQgKIIQhBACgCmModIQNCACEJIAZBf2ohC0IAIQcDQAJAIAkgCFINACAGQX9qIQYDQCAHIARaDQYgAiAHpyIBQQJ0aioCACEQQwAAAAAhEQJAAkACQCAGDgIAAQILQQAgA0GP+QJsQf////8HbyIDNgKYyh0gA7dEAADA////30GjtkOAAIA4lEMAAAC4kiERDAELQQAgA0GP+QJsQf////8HbyIFQY/5AmxB/////wdvIgM2ApjKHSAFt0QAAMD////fQaO2QwAAADiUQwAAALiSIAO3RAAAwP///99Bo7ZDAAEAOJRDAAAAAJKSIRELAkACQEMA/v/GQwAAgD8gECARkiIRIBFDAACAP14bQwD+/0aUIBFDAACAv10bIhGLQwAAAE9dRQ0AIBGoIQUMAQtBgICAgHghBQsgACABQQF0aiAFOwEAIAdCAXwhBwwACwALQwAAAAAhEEMAAAAAIRFDAAAAACESQwAAAAAhEwJAAkACQCALDgIAAQILQQAgA0GP+QJsQf////8HbyIBQY/5AmxB/////wdvIgVBj/kCbEH/////B28iCkGP+QJsQf////8HbyIDNgKYyh0gAbdEAADA////30GjtkOAAIA4lEMAAAC4kiERIAW3RAAAwP///99Bo7ZDgACAOJRDAAAAuJIhEiAKt0QAAMD////fQaO2Q4AAgDiUQwAAALiSIRAgA7dEAADA////30GjtkOAAIA4lEMAAAC4kiETDAELQQAgA0GP+QJsQf////8HbyIBQY/5AmxB/////wdvIgVBj/kCbEH/////B28iCkGP+QJsQf////8HbyIMQY/5AmxB/////wdvIg1Bj/kCbEH/////B28iDkGP+QJsQf////8HbyIPQY/5AmxB/////wdvIgM2ApjKHSABt0QAAMD////fQaO2QwAAADiUQwAAALiSIAW3RAAAwP///99Bo7ZDAAEAOJRDAAAAAJKSIREgCrdEAADA////30GjtkMAAAA4lEMAAAC4kiAMt0QAAMD////fQaO2QwABADiU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UA0BIAAgASACQv////8PIAJC/////w9UGyIFpyIEEEshACACIAV9IQIgASAEaiEBIAAgBGohAAwACwALCzoAAkAgAUUNACAALQClAkH/AXENACABIAOtIAAoArgHIAAoArwHEI9ICyAAIAEgAiADIAAoAhARCAAL4gUDCH8BfgF9QX4hBwJAIAFFDQAgAEUNACACRQ0AIAVFDQBCACEPAkACQAJAAkACQCAGQX9qDgUABAMCAQULA0BBACEHIA8gBFENBQJAA0AgByABRg0BQQAhBgJAIAUgB2otAAAiCCADTw0AIAIgCGotAAAhBgsgACAHaiAGOgAAIAdBAWohBwwACwALIA9CAXwhDyACIANqIQIgACABaiEADAALAAsDQEEAIQcgDyAEUQ0EAkADQCAHIAFGDQFDAAAAACEQAkAgBSAHai0AACIGIANPDQAgAiAGQQJ0aioCACEQCyAAIAdBAnRqIBA4AgAgB0EBaiEHDAALAAsgD0IBfCEPIAIgA0ECdGohAiAAIAFBAnRqIQAMAAsACwNAQQAhByAPIARRDQMCQANAIAcgAUYNAUEAIQYCQCAFIAdqLQAAIgggA08NACACIAhBAnRqKAIAIQYLIAAgB0ECdGogBjYCACAHQQFqIQcMAAsACyAPQgF8IQ8gAiADQQJ0aiECIAAgAUECdGohAAwACwALIANBA2whCSABQQNsIgpBAmohC0IAIQ9BACEHA0BBACEGIA8gBFENAgJAA0AgBiABRg0BAkACQCAFIAZqLQAAIgggA08NACAAIAZBA2wiDGoiDSACIAhBA2xqIg4tAAA6AAAgACAMQQFqIghqIA5BAWotAAA6AAAgDUECaiAOQQJqLQAAOgAADAELIAAgBkEDbCIIakEAOgAAIAhBAWohCAsgACAIakEAOgAAIAZBAWohBgwACwALIAAgC2pBADoAACAPQgF8IQ8gAiAJaiECIAAgCmohAAwACwALA0BBACEHIA8gBFENAQJAA0AgByABRg0BQQAhBgJAIAUgB2otAAAiCCADTw0AIAIgCEEBdGovAQAhBgsgACAHQQF0aiAGOwEAIAdBAWohBwwACwALIA9CAXwhDyACIANBAXRqIQIgACABQQF0aiEADAALAAsgBwtiAQJ/AkAgAEUNAAJAIAFFDQBBACECA0BB/wEhAwJAAkAgAkH/AUYN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AUEYbCIBQbSfG2oqAgCUIABBrJ8baioCACABQayfG2oqAgCUIABBqJ8baioCACABQaifG2oqAgCUIABBoJ8baioCACABQaCfG2oqAgCUIABBpJ8baioCACABQaSfG2oqAgCUkpKSQwAAAACSkgtVAQJ/AkAgA0UNACADQX82AgALQQAhBEEAIQUDfwJAAkAgBSAARg0AIAEgACAFEKhIIAJHDQFBASEEIANFDQAgAyAFNgIACyAEDwsgBUEBaiEFDAALC2cCBH8BfiABEKNIIQIgASkCECEGIAEoAkQhAyAAIAEoAggiBCABKAIMIgUgBCAFSRs2AgQgACADNgIQIAAgBjcCCCAAIAI2AgAgACABKAJQNgIcIAAgASgCSDYCFCAAIAEoAkw2AhgLWgIBfwN+IwBBIGsiAyQAIAEpAgAhBCABKQIIIQUgATUCHCEGIANCgICAgICAgPg/NwMYIAMgBjcDECADIAU3AwggAyAENwMAIAMgAhCvSCEBIANBIGokACABC0YBAX8jAEEQayICJAACQAJAIAENAEF+IQAMAQsgAUEANgIAIAAgAhDISCIADQAgASACKAIANgIAQQAhAAsgAkEQaiQAIAALbQIBfwN+IwBBIGsiBCQAIAEpAgAhBSABKQIIIQYgATUCHCEHIARCgICAgICAgPg/NwMYIAQgBzcDECAEIAY3AwggBCAFNwMAAkAgBCACIABBIGoiABCxSCIBDQAgAyAANgIACyAEQSBqJAAgAQvaAQECfyMAQRBrIgMkAAJAAkAgAg0AQX4hBAwBCyACQQBB6AAQSCECIAAgAxDISCIEDQAgAiAAKQMANwMAIAJBGGogAEEYaikDADcDACACQRBqIABBEGopAwA3AwAgAkEIaiAAQQhqKQMANwMAIAIgATYCXAJAIAFFDQAgAygCACIERQ0AIAFBACAEEEgaCyADKAIEIQQgAiABIAMoAghqNgI0IAIgASAEajYCMCACIAEgAyAAKAIIIAAoAgxBABC+SCIEDQAgAkIBNwMoQQAhBAsgA0EQaiQAIAQLCQAgASACELNIC5EBAQF/AkAgAEUNAEEAIQIDQAJAIAIgACgCREkNAEEAIQICQANAIAIgACgCSE8NASAAKAJQIAJBLGxqIAEQxUggAkEBaiECDAALAAsCQCAAKAJYRQ0AIAAoAlQgARDoCgsgACgCYEUNAiAAKAJcIAEQ6AoMAgsgACgCTCACQRhsaiABEMJIIAJBAWohAgwACwALCw8AIAEgAiADIAQgBRC1SAvvGAMQfwR+CH0CQCAADQBBfg8LQX4hBQJAAkACQAJAAkAgACgCAEF+ag4EAAQEAQQLIAQpAwAhFSACKQMAIRZCACEXIAAoAgggACgCDCIGTQ0BQgAhGANAIBggFVENAyAAKAIoIQcDQAJAAkAgB0UNACAWIBdYDQAgACgCBCEIQQAhBUEAIQkCQAJAAkAgAUUNAANAIAUgCEYNAiAAKAIwIAVBAXQiCWogACgCNCAJai8BADsBACAAKAI0IAlqIAEgCWovAQA7AQAgBUEBaiEFDAALAAsCQANAIAkgCEYNASAAKAIwIAlBAXQiBWogACgCNCAFai8BADsBACAAKAI0IAVqQQA7AQAgCUEBaiEJDAALAAtBACEBDAELIAEgCEEBdGohAQsgACgCCCAAKAIMRg0BIAAoAjQhCkEAIQtBACEMAkADQCAMIAAoAkRPDQFBgIABIAAoAkwgDEEYbGoiBygCCCINayEOIAcoAgQhBkEAIQUCQANAIAUgBkYNASAKIAVBAXRqIgkgDiAJLgEAbCAHKAIMIAVBAnRqIgkoAgAgDWxqQQ51Igg7AQAgCSAINgIAIAVBAWohBQwACwALIAxBAWohDAwACwALA0ACQAJAIAsgACgCSE8NACAAKAJQIAtBLGxqIggoAhghDyAIKAIUIRAgCCgCECERIAgoAgwhEiAIKAIIIRMgCCgCBCEUQQAhBQNAIAUgFEYNAiAIKAIgIAVBAnQiB2ooAgAhDSAKIAVBAXRqIgkgEyAJLgEAIgZsIAgoAhwgB2oiDigCAGpBDnUiCUH//wEgCUH//wFIGyIMQYCAfiAMQYCAfkobOwEAIA4gDSASIAZsaiAQIAlsazYCACAIKAIgIAdqIBEgBmwgCSAPbGs2AgAgBUEBaiEFDAALAAsgACgCKCEHDAMLIAtBAWohCwwACwALAkAgB0UNACAYIRUMBgsCQAJAIAMNAEEAIQVBACEDDAELIAAgAxDGSCADIAAoAgRBAXRqIQMgACgCKCEFCyAAIAAoAiAgBWoiCTYCKCAAIAAoAiwgACgCJGoiBTYCLCAYQgF8IRggBSAAKAIMIghJDQIgACAJQQFqNgIoIAAgBSAIazYCLAwCCyAAIAdBf2oiBzYCKCAXQgF8IRcMAAsACwALIAQpAwAhFSACKQMAIRZCACEXAkAgACgCCCAAKAIMIgZNDQBCACEYA0AgGCAVUQ0DIAAoAighBwNAAkACQCAHRQ0AIBYgF1gNACAAKAIEIQhBACEFQQAhCQJAAkACQCABRQ0AA0AgBSAIRg0CIAAoAjAgBUECdCIJaiAAKAI0IAlqKgIAOAIAIAAoAjQgCWogASAJaioCADgCACAFQQFqIQUMAAsACwJAA0AgCSAIRg0BIAAoAjAgCUECdCIFaiAAKAI0IAVqKgIAOAIAIAAoAjQgBWpBADYCACAJQQFqIQkMAAsAC0EAIQEMAQsgASAIQQJ0aiEBCyAAKAIIIAAoAgxGDQEgACgCNCEHQQAhDUEAIQ4CQANAIA4gACgCRE8NAUMAAIA/IAAoAkwgDkEYbGoiBioCCCIZkyEaIAYoAgQhCkEAIQUCQANAIAUgCkYNASAHIAVBAnQiCWoiCCAaIAgqAgCUIBkgBigCDCAJaiIJKgIAlJIiGzgCACAJIBs4AgAgBUEBaiEFDAALAAsgDkEBaiEODAALAAsDQAJAAkAgDSAAKAJITw0AIAAoAlAgDUEsbGoiCCoCECEcIAgqAgwhHSAIKgIIIR4gCCgCBCEKIAgqAhiMIR8gCCoCFIwhIEEAIQUDQCAFIApGDQIgCCgCICAFQQJ0IglqKgIAIRogByAJaiIGIB4gBioCACIblCAIKAIcIAlqIgYqAgCSIhk4AgAgBiAaIB0gG5QgGSAglJKSOAIAIAgoAiAgCWogHCAblCAZIB+UkjgCACAFQQFqIQUMAAsACyAAKAIoIQcMAwsgDUEBaiENDAALAAsCQCAHRQ0AIBghFQwGCwJAAkAgAw0AQQAhBUEAIQMMAQsgACADEMdIIAMgACgCBEECdGohAyAAKAIoIQULIAAgACgCICAFaiIJNgIoIAAgACgCLCAAKAIkaiIFNgIsIBhCAXwhGCAFIAAoAgwiCEkNAiAAIAlBAWo2AiggACAFIAhrNgIsDAILIAAgB0F/aiIHNgIoIBdCAXwhFwwACwALAAtCACEYA0AgGCAVUQ0CIAAoAighBwJAA0AgB0UNASAWIBdYDQEgACgCBCEIQQAhBUEAIQkCQAJAAkAgAUUNAANAIAUgCEYNAiAAKAIwIAVBAnQiCWogACgCNCAJaioCADgCACAAKAI0IAlqIAEgCWoqAgA4AgAgBUEBaiEFDAALAAsCQANAIAkgCEYNASAAKAIwIAlBAnQiBWogACgCNCAFaioCADgCACAAKAI0IAVqQQA2AgAgCUEBaiEJDAALAAtBACEBDAELIAEgCEECdGohAQsgACAHQX9qIgc2AiggF0IBfCEXDAALAAsCQCAHRQ0AIBghFQwDCwJAAkAgAw0AQQAhBUEAIQMMAQsgACADEMdIQQAhCkEAIQ0CQCAAKAIIIgYgACgCDEYNAAJAA0AgDSAAKAJETw0BQwAAgD8gACgCTCANQRhsaiIHKgIIIhmTIRogBygCBCEGQQAhBQJAA0AgBSAGRg0BIAMgBUECdCIJaiIIIBogCCoCAJQgGSAHKAIMIAlqIgkqAgCUkiIbOAIAIAkgGzgCACAFQQFqIQUMAAsACyANQQFqIQ0MAAsACwNAAkACQCAKIAAoAkhPDQAgACgCUCAKQSxsaiIIKgIQIRwgCCoCDCEdIAgqAgghHiAIKAIEIQYgCCoCGIwhHyAIKgIUjCEgQQAhBQNAIAUgBkYNAiAIKAIgIAVBAnQiCWoqAgAhGiADIAlqIgcgHiAHKgIAIhuUIAgoAhwgCWoiByoCAJIiGTgCACAHIBogHSAblCAZICCUkpI4AgAgCCgCICAJaiAcIBuUIBkgH5SSOAIAIAVBAWohBQwACwALIAAoAgwhBgwCCyAKQQFqIQoMAAsACyADIAAoAgRBAnRqIQMgACgCKCEFCyAAIAAoAiAgBWoiCTYCKCAAIAAoAiwgACgCJGoiBTYCLCAYQgF8IRggBSAGSQ0AIAAgCUEBajYCKCAAIAUgBms2AiwMAAsAC0IAIRgDQCAYIBVRDQEgACgCKCEHAkADQCAHRQ0BIBYgF1gNASAAKAIEIQhBACEFQQAhCQJAAkACQCABRQ0AA0AgBSAIRg0CIAAoAjAgBUEBdCIJaiAAKAI0IAlqLwEAOwEAIAAoAjQgCWogASAJai8BADsBACAFQQFqIQUMAAsACwJAA0AgCSAIRg0BIAAoAjAgCUEBdCIFaiAAKAI0IAVqLwEAOwEAIAAoAjQgBWpBADsBACAJQQFqIQkMAAsAC0EAIQEMAQsgASAIQQF0aiEBCyAAIAdBf2oiBzYCKCAXQgF8IRcMAAsACwJAIAdFDQAgGCEVDAILAkACQCADDQBBACEFQQAhAwwBCyAAIAMQxkhBACETQQAhDgJAIAAoAggiBiAAKAIMRg0AAkADQCAOIAAoAkRPDQFBgIABIAAoAkwgDkEYbGoiBygCCCIKayENIAcoAgQhBkEAIQUCQANAIAUgBkYNASADIAVBAXRqIgkgDSAJLgEAbCAHKAIMIAVBAnRqIgkoAgAgCmxqQQ51Igg7AQAgCSAINgIAIAVBAWohBQwACwALIA5BAWohDgwACwALA0ACQAJAIBMgACgCSE8NACAAKAJQIBNBLGxqIggoAhghFCAIKAIUIQ8gCCgCECEQIAgoAgwhESAIKAIIIRIgCCgCBCEMQQAhBQNAIAUgDEYNAiAIKAIgIAVBAnQiB2ooAgAhCiADIAVBAXRqIgkgEiAJLgEAIgZsIAgoAhwgB2oiDSgCAGpBDnUiCUH//wEgCUH//wFIGyIOQYCAfiAOQYCAfkobOwEAIA0gCiARIAZsaiAPIAlsazYCACAIKAIgIAdqIBAgBmwgCSAUbGs2AgAgBUEBaiEFDAALAAsgACgCDCEGDAILIBNBAWohEwwACwALIAMgACgCBEEBdGohAyAAKAIoIQULIAAgACgCICAFaiIJNgIoIAAgACgCLCAAKAIkaiIFNgIsIBhCAXwhGCAFIAZJDQAgACAJQQFqNgIoIAAgBSAGazYCLAwACwALIAIgFzcDACAEIBU3AwBBACEFCyAFCwsAIAEgAiADELdICxEAIABBAEEAIAEgAkEBEL5ICx4AAkAgAQ0AQgAPCyABKAJEIAEoAkhBAXRqQQFqrQsqAAJAIAENAEIADwsgASgCRCABKAJIQQF0akEBaq0gATUCDH4gATUCCIALCwAgASACIAMQu0gLVAEBf0F+IQMCQCACRQ0AIAJCADcDACAARQ0AQQAhAyABUA0AIAIgAUJ/fCIBIAA1AiB+IAA1Aih8IAEgADUCJH4gADUCLHwgADUCDIB8NwMACyADC2ACAX8CfkF+IQQCQCADRQ0AIANCADcDACABRQ0AIAMgATUCDCIFIAJ+IAE1AgiAIgYgBiABNQIkfiABNQIsfCAFgCABNQIofCAGIAE1AiB+fCACWK18NwMAQQAhBAsgBAvNAgEEfwJAAkAgAQ0AQX4hAgwBCyABQgE3AyggASgCBCEDQQAhBAJAAkAgASgCAEEFRw0AA0AgBCADRg0CIAEoAjAgBEECdCIFakEANgIAIAEoAjQgBWpBADYCACAEQQFqIQQMAAsACwNAIAQgA0YNASABKAIwIARBAXQiBWpBADsBACABKAI0IAVqQQA7AQAgBEEBaiEEDAALAAtBACEEA0ACQCAEIAEoAkRJDQBBACECQQAhBANAIAQgASgCSE8NAwJAIAEoAlAiA0UNACADIARBLGxqIgMoAhwhBQJAIAMoAgBBBUcNACAFQQA2AgAgAygCIEEANgIADAELIAVBADYCACADKAIgQQA2AgALIARBAWohBAwACwALAkAgASgCTCIDRQ0AIAMgBEEYbGoiAygCAEEFRxogA0EANgIICyAEQQFqIQQMAAsACyACC/UCAwZ/AXwBfiMAQSBrIgYkAEF+IQcCQCAARQ0AIANFDQAgBEUNACAAKAIMIQggBCEJIAMhCgJAA0AgCSILRQ0BIAogC3AhCSALIQoMAAsACyAAIAQgCm4iCzYCDCAAIAMgCm4iCjYCCCAAKAIQIglBCEsNACAAKwMYIQwgACkDACENIAZBADYCHCAGIAk2AhggBkEANgIMIAYgDTcDACAGIAogCyAKIAtLGzYCCCAGIAwgCiALIAogC0kbuEQAAAAAAADgP6KiOQMQAkACQCAFRQ0AIAZBACAAQThqQQAQv0ghBwwBCyAGIAEgAigCDGogAEE4akEAQSQQSEEBEL9IIQcLIAcNACAAIAAoAggiCiAAKAIMIgtuIgk2AiAgACAKIAkgC2xrNgIkIAAgACgCKCALIAAoAiwiCiAKIAhuIgogCGxrbCAIbiAKIAtsaiIKIAtuIglqNgIoIAAgCiAJIAtsazYCLEEAIQcLIAZBIGokACAHC6QLAgp/AnwjAEHQAGsiBCQAQX4hBQJAIABFDQAgAkUNAEF+IQUCQCAAKAIAIgZBfmoOBAABAQABCwJAAkAgAigCACIHRQ0AIAcgBkcNAQsCQCACKAIEIgZFDQAgBiAAKAIERw0BCyAAKAIYIgZBCEsNASAGQQF2IQggBkEBcSEJAkACQCADDQAgAigCDCAJRw0CQX0hBSACKAIQIAhHDQMgBEEQakEANgIAIARCADcDCAwBCyAAIARBCGoQwEgiBQ0CIAIgATYCHAJAIAFFDQAgBCgCCCIFRQ0AIAFBACAFEEgaCyACIAEgBCgCDGo2AhQgAiABIAQoAhBqNgIYCyABIAlBGGxqIQpBACEGAkADQAJAAkACQCAGIAlHDQAgASAIQSxsaiEKQQAhBgwBCyAAKAIIIQUgACgCACEHIAAoAgQhCyAAKwMQIQ4gBEIANwMgIARCgICAgICAgPA/NwMwIAQgDjkDKCAEIAs2AhwgBCAHNgIYIAQgBTYCIAJAAkACQCADRQ0AQX4hBSALRQ0CIAIoAhQiB0UNAiAEKAIMIQwgByAGQRhsaiIHQgA3AAAgB0EQakIANwAAIAdBCGpCADcAACAEKAIcIg1FDQIgByAKIAxqIAtBAnRBB2pBeHEgBmxqIgU2AhACQCAFRQ0AIA1BAnRBB2pBeHEiC0UNACAFQQAgCxBIGgsgByAFNgIMIARBGGogBxDBSCEFDAELIARBGGogAigCFCAGQRhsahDBSCEFCyAFRQ0CC0EAIQADQCAAIAZGDQYgAigCFCAAQRhsakEAEMJIIABBAWohAAwACwALA0AgBiAIRg0DAkACQCAJRQ0AIAZBAWohBSAAKAIYIQEMAQsgACgCGEEBdCEBIAZBAXRBAXIhBQtEu7n4256g5j9EAAAAAAAA8D9EGC1EVPshCcAgAbijIAW4okQYLURU+yH5P6AQw0giDiAOoKMiDiAORAAAAAAAAAAAYRshDiAAKwMQIQ8gACgCCCEHIAAoAgQhASAAKAIAIQsCQAJAAkAgA0UNAAJAIAENAEF+IQUMAwtBfiEFIAIoAhgiDEUNASAEKAIQIQ0gBCABNgIcIAQgCzYCGCAERAAAAAAAAPA/IA9EGC1EVPshGUCiIAe4oyIPEMNIIA4gDqCjIg6hOQNIIAREGC1EVPsh+T8gD6EQw0giD0QAAAAAAAAAwKI5A0AgBCAORAAAAAAAAPA/oDkDOCAERAAAAAAAAPA/IA+hIg45AyggBCAORAAAAAAAAOA/oiIOOQMwIAQgDjkDICAMIAZBLGxqQQBBLBBIIQcgBCgCHCILRQ0BIAcgCiANaiAGIAFsQQN0aiIFNgIkIAtBAnQhAQJAIAVFDQAgC0EDdCILRQ0AIAVBACALEEgaCyAHIAU2AhwgByAFIAFqNgIgIARBGGogBxDESCEFDAELAkAgAigCGCIFDQBBfiEFDAELIAQgATYCHCAEIAs2AhggBEQAAAAAAADwPyAPRBgtRFT7IRlAoiAHuKMiDxDDSCAOIA6goyIOoTkDSCAERBgtRFT7Ifk/IA+hEMNIIg9EAAAAAAAAAMCiOQNAIAQgDkQAAAAAAADwP6A5AzggBEQAAAAAAADwPyAPoSIOOQMoIAQgDkQAAAAAAADgP6IiDjkDMCAEIA45AyAgBEEYaiAFIAZBLGxqEMRIIQULIAUNACAGQQFqIQYMAQsLQQAhAEEAIQMDQAJAIAMgCUcNAANAIAAgBkYNByACKAIYIABBLGxqQQAQxUggAEEBaiEADAALAAsgAigCFCADQRhsakEAEMJIIANBAWohAwwACwALIAZBAWohBgwACwALIAIgCDYCECACIAk2AgwgAiAAKAIANgIAIAIgACgCBDYCBCACIAAoAgg2AghBACEFDAELQX0hBQsgBEHQAGokACAFC9oBAQV/AkAgAUUNACABQgA3AAAgAUEIakEANgAAC0F+IQICQCAARQ0AIAAoAgQiA0UNACAAKAIYIgRBCEsNAEEAIQAgAUEANgIEIARBAXEhBSADQQJ0QQdqQXhxQRhqIQZBACECAkADQCACIAVGDQEgASAGIABqIgA2AgAgAkEBaiECDAALAAsgASAANgIIIARBAXYhBSADQQN0QSxqIQZBACECAkADQCACIAVGDQEgASAGIABqIgA2AgAgAkEBaiECDAALAAsgASAAQQdqQXhxNgIAQQAhAgsgAgvnAQIEfwF8QX4hAgJAIABFDQAgAUUNAEF+IQICQCAAKAIAIgNBfmoOBAABAQABC0F9IQICQCABKAIAIgRFDQAgBCADRw0BCyAAKAIEIQUCQAJAIAEoAgQiBA0AIAUhBAwBCyAEIAVHDQELIAEgBDYCBCABIAM2AgAgACsDEEQYLURU+yEZwKIgACgCCLijEEEhBgJAAkAgA0EFRw0AIAEgBrY4AggMAQsCQAJAIAZEAAAAAAAA0ECiIgaZRAAAAAAAAOBBY0UNACAGqiECDAELQYCAgIB4IQILIAEgAjYCCAtBACECCyACCxwAAkAgAEUNACAAKAIURQ0AIAAoAhAgARDoCgsLzAECAn8BfCMAQRBrIgEkAAJAAkAgAL1CIIinQf////8HcSICQfvDpP8DSw0AIAJBgIDA8gNJDQEgAEQAAAAAAAAAAEEAEJJaIQAMAQsCQCACQYCAwP8HSQ0AIAAgAKEhAAwBCyAAIAEQ+U8hAiABKwMIIQAgASsDACEDAkACQAJAAkAgAkEDcQ4EAAECAwALIAMgAEEBEJJaIQAMAwsgAyAAEJNaIQAMAgsgAyAAQQEQklqaIQAMAQsgAyAAEJNamiEACyABQRBqJAAgAAutBAIEfwF8QX4hAgJAIABFDQAgACsDICIGRAAAAAAAAAAAYQ0AQX4hAgJAIAAoAgAiA0F+ag4EAAEBAAELQX0hAgJAIAEoAgAiBEUNACAEIANHDQELIAAoAgQhBQJAAkAgASgCBCIEDQAgBSEEDAELIAQgBUcNAQsgASAENgIEIAEgAzYCACAAKwMIIAajIQYCQAJAIANBBUcNACABIAa2OAIIIAEgACsDECAAKwMgo7Y4AgwgASAAKwMYIAArAyCjtjgCECABIAArAyggACsDIKO2OAIUIAEgACsDMCAAKwMgo7Y4AhgMAQsCQAJAIAZEAAAAAAAA0ECiIgaZRAAAAAAAAOBBY0UNACAGqiECDAELQYCAgIB4IQILIAEgAjYCCAJAAkAgACsDECAAKwMgo0QAAAAAAADQQKIiBplEAAAAAAAA4EFjRQ0AIAaqIQIMAQtBgICAgHghAgsgASACNgIMAkACQCAAKwMYIAArAyCjRAAAAAAAANBAoiIGmUQAAAAAAADgQWNFDQAgBqohAgwBC0GAgICAeCECCyABIAI2AhACQAJAIAArAyggACsDIKNEAAAAAAAA0ECiIgaZRAAAAAAAAOBBY0UNACAGqiECDAELQYCAgIB4IQILIAEgAjYCFAJAAkAgACsDMCAAKwMgo0QAAAAAAADQQKIiBplEAAAAAAAA4EFjRQ0AIAaqIQAMAQtBgICAgHghAAsgASAANgIYC0EAIQILIAILHAACQCAARQ0AIAAoAihFDQAgACgCJCABEOgKCwtpAQV/QYAgIAAoAixBDHQgACgCDG4iAmshAyAAKAIEIQRBACEFAkADQCAFIARGDQEgASAFQQF0IgZqIAIgACgCNCAGai4BAGwgAyAAKAIwIAZqLgEAbGpBDHY7AQAgBUEBaiEFDAALAAsLYwICfQN/IAAoAiyzIAAoAgyzlSECIAAoAgQhBEEAIQUCQANAIAUgBEYNASABIAVBAnQiBmogACgCMCAGaioCACIDIAIgACgCNCAGaioCACADk5SSOAIAIAVBAWohBQwACwALC4wCAQV/IwBBMGsiAiQAAkAgAUUNACABQgA3AAAgAUEIakIANwAACwJAAkAgAA0AQX4hAwwBC0F+IQMCQCAAKAIAIgRBfmoOBAABAQABCyAAKAIEIgVFDQAgAUEANgIEIAEgBUECQQEgBEEFRiIDG3Q2AgggASAFQQNBAiADG3QiBjYCACABIAZBB2pBeHE2AgwgACgCECEAIAJBGGoiA0IANwMAIAMgAEEIIABBCEkbNgIAIAJCADcDCCACQoCAgICAgID4PzcDECACIAU2AgQgAiAENgIAIAJBATYCCCACIAJBJGoQwEgiAw0AIAEgAigCJCAGakEHakF4cTYCAEEAIQMLIAJBMGokACADC0MBA39BASECAkAgAUEBRg0AQQAhA0EBIQIDQCADIAFGDQEgACABIAMQqEghBCADQQFqIQMgBEEBRw0AC0EAIQILIAILLAACQCAARQ0AIANFDQACQCACRQ0AIAAgAiADEEsaDwtBACAAIAEgAxCvDgsL0gEBBX8CQAJAIAMgAUciBQ0AAkAgAiAARw0AQQEPC0EAIQZBASEHA0AgBiADRg0CIAIgAyAGEKhIIQggACADIAYQqEghCSAGQQFqIQYgCCAJRg0ACwsCQCADQQFHDQBBAiEHIAJFDQEgAi0AAEEBRg0BCwJAIAFBAUcNAEEDIQcgAEUNASAALQAAQQFGDQELQQUhByAEQQJGDQAgBQ0AQQAhBgNAAkAgBiADRw0AQQQPCyAAIAMgBhCoSCEIIAZBAWohBiADIAIgCBCqSA0ACwsgBwu1AQECfyMAQSBrIgMkACADQRxqQekAOwEAIANB6dKlywY2AhggA0KCgICAMDcCBCADQoGAgIAgNwIMIANBATYCAEHwfCEEAkBBzdYdIANBGGogAxAlQQFHDQBBACEEIAJBADYCKCACQgA3AiAgAkGpCDYCHCACQaoINgIYIAJBqwg2AhQgAkGsCDYCECACQa0INgIMIAJBrgg2AgggAkGvCDYCBCACQYIFNgIACyADQSBqJAAgBAs8AQF/IwBBEGsiASQAIAFB6QA7AA4gASAAKAK8GDYCAEHlhx4gAUEOaiABECUaIAAQ1kggAUEQaiQAQQALNwEBfyMAQRBrIgEkACABQekAOwAOIAEgACgCvBg2AgBB2oYeIAFBDmogARAlGiABQRBqJABBAAttAQF/IwBBIGsiASQAIAFB6QA7AB4gASAAKAK8GDYCEEGYgx4gAUEeaiABQRBqECUaIAFB6QA7ABwgASAAKAK8GDYCAEGohh4gAUEcaiABECUaIAAoArAYIAAoAgBBlAFqEOgKIAFBIGokAEEAC4wEAQZ/IwBBwABrIgQkAEG3fiEFAkACQAJAIAEoAgAiBkF/ag4EAAEAAgELQbZ+IQUgAigCBEEBRg0BCwJAAkAgBkF+cUECRw0AQbZ+IQUgAygCBEEBRg0CIAZBAkcNACADKAIMIgVBAiAFGyEGQQAhByADQQAgASgCFBDVSCEIDAELIAIoAgwhBUEAIQcCQCAGQQFHDQAgAigCECEHCyAFQQIgBRshBiACIAcgASgCFBDVSCEICwJAAkACQCAAKAIAIgUoApgBIgkNACAAQQA2ArAYDAELIAAgBiAIbEECdCAFKAKUASAJEQIAIgk2ArAYIAkNAQtBfCEFDAELQQAhBSAEQQA6AD4gBEHw4AE7ATwgBEHp0qXLBjYCOCABKAIAIQEgBEEQakEUaiAANgIAIARBIGogCTYCACAEIAg2AhwgBCAHNgIYIAQgBjYCFCAEIAE2AhAgAEGS7B0gBEE4aiAEQRBqECUiATYCvBggBCABNgIAIARB6QA7ADZBz4IeIARBNmogBBAlIQECQCADRQ0AIAMgATYCECADIAY2AgwgA0EFNgIIQQMgA0EUakH+ASAGEK8OIANBATYCnAIgAyAINgKUAgsgAkUNACACIAE2AhAgAiAGNgIMIAJBBTYCCEEDIAJBFGpB/gEgBhCvDiACQQE2ApwCIAIgCDYClAILIARBwABqJAAgBQvEAQECfyMAQRBrIgQkAAJAAkACQCABQQJHDQAQ1EhFDQELAkAgA0UNACADQgA3AAAgA0EYakIANwAAIANBEGpCADcAACADQQhqQgA3AAALIANBgAJqQbjMEUHQzBEgAUEBRhsQlUhBACEBIANBADYClAQgA0EBNgKABCADQgA3AogEIARBADYCACAEQekAOwAOIANB5+odIARBDmogBBAlIgU2ApAEIAVFDQAgA0EBNgKEBAwBC0G0fiEBCyAEQRBqJAAgAQuJAQEBfyMAQZAMayIDJAAgA0EIakEAQYgMEEgaIANBiAJqQbjMERCVSCADQQE2AogEAkAgAEEBIANBCGogAiABEQcARQ0AENRIRQ0AIANBCGpBAEGIDBBIGiADQYgCakHQzBEQlUggA0EBNgKIBCAAQQIgA0EIaiACIAERBwAaCyADQZAMaiQAQQALKwEBfyMAQRBrIgEkACABQQA6AA9Bz+cdIAFBD2pBABAlGiABQRBqJABBAAs3AQJ/IwBBEGsiACQAIABB6QA7AA4gAEEANgIAQf/pHSAAQQ5qIAAQJSEBIABBEGokACABQQBHC6EBAQF/AkAgACgClAIiAw0AIAFBgPcCIAEbIQMCQCAAKAKYAiIADQACQCACDQAgA0EhbEHoB24hAwwCCyADQc0CbEHoB24hAwwBCyAAIANsQegHbiEDC0GAAiEAAkAgA0GAAkkNAEGAgAEhACADQYCAAUsNACADQX9qIgNBAXYgA3IiA0ECdiADciIDQQR2IANyIgNBCHYgA3JBAWohAAsgAAs+AQF/IwBBIGsiASQAIAFBEGpBADYCACABIAA2AhQgAUIBNwIYIAEgASkCFDcDCCABQQhqEPpHIAFBIGokAAswAQF/AkAgAEUNAAJAIAAoAgQiAUUNACAAIAERAAAaCyAAKALgASAAQZQBahDoCgsLbAEFf0EBIQICQCAARQ0AIAAtAABFDQBBACECIAFFDQBBACEDA0ACQCADIAFHDQBBAQ8LIAAgA2ohBCADQQFqIgMhBQNAIAUgAUYNASAAIAVqIQYgBUEBaiEFIAQtAAAgBi0AAEcNAAsLCyACC8UIAg9/BH4jAEGwgAFrIgEkACAAQQE2AtABIABBATYCDCAAQeALaiECIABBqBZqIQMgAEGEAWohBCAAQThqIQUgAEHQAWohBgN/IAUQ6gogAEEANgKgAgJAAkAgACgCDEUNAAJAIAAoAgAoAhgiB0UNACAAIAcRAAAiB0UNACAAIAc2AqACIAQhBwwCCyAAQQE2AoQBIABBAjYCDCAAELAOAkACQCAAKAIAIggoAigiB0UNACAAIAcRAAAaDAELQQAhCUEAIQoCQCAAKAIEIgdBfmpBAksNACAIKAIgRQ0BQYAgIAAoAogUQQJ0QZCaG2ooAgAgACgCjBRsbiEKCwJAAkAgB0F/ag4DAAEAAQsgCCgCJEUNAUGAICAAKALACUECdEGQmhtqKAIAIAAoAsQJbG4hCQsgCa0hEANAQQAhCwNAIAAoAgxBAkcNAiALDQJBACELAkACQAJAAkAgACgCBEF/ag4EAgEAAQQLIAAoApQWIgcgACgCzAsiCCAHIAhJGyEMQQAhDUEAIQsDQCAMIA1NDQQgACABQbDgAGogDCANayIHIAogByAKSRsgAUGswABqIAAoAgAoAiARBwANA0EAIQcgASgCrEAhCAJAA0AgAUGAICAAKAKAEkECdEGQmhtqKAIAIAAoAoQSbG4iDkGAICAAKAK4B0ECdEGQmhtqKAIAIAAoArwHbG4iDyAOIA9JG603AxggASAIrTcDECADIAFBsOAAaiAAKAKMFCAHbCAAKAKIFEECdEGQmhtqKAIAbGogAUEQaiABQaAgaiABQRhqEIFIDQEgASkDGCIRUA0BIAAgAUEgaiABQaAgaiARpxCGSCAIIAEoAhAiDmshCCAHIA5qIQcgASkDGCERAkADQCABIBE3AwggASAQNwMAIAIgAUEgaiABQQhqIAFBsMAAaiABEIFIDQEgACABQbDAAGogASgCAEEAIAAoAgAoAiQRBwANASABIAEpAxgiEiABNQIIIhN9IhE3AxggEiATUQ0CDAALAAsLQQEhCwsgB0UNBCAHIA1qIQ0MAAsACyAAKAKUFiEIQQAhC0EAIQcDQCAIIAdNDQMgACABQbDgAGogCCAHayINIAogDSAKSRsgAUGgIGogACgCACgCIBEHAA0CIAEoAqAgIg1FDQQgACANIAFBsOAAahCDSCABKAKgICAHaiEHDAALAAsgACgCzAshCEEAIQtBACEHA0AgCCAHTQ0CIAAgCCAHayINIAkgDSAJSRsiDSABQbDAAGoQhEggACABQbDAAGogDSABQaAgaiAAKAIAKAIkEQcADQEgASgCoCAiDUUNAyANIAdqIQcMAAsAC0EBIQsMAAsACwALAkACQCAAKAIAKAIcIgdFDQAgACAHEQAADQELIAAQ1kgLIAAoAgxFDQAgAEEBNgIMIAYhBwwBCyABQbCAAWokAEEADwsgB0EBNgIADAALCwQAQQYLRgEBfyMAQZAMayIDJAACQCACRQ0AIAJBADoAAAsCQCAAIAEgA0EIahCdSA0AIAJFDQAgAiADQYgCahCVSAsgA0GQDGokAAu2AQEFf0EAIQNBACEEAkADQCADIAFGDQFBveIRIQUCQCAAIAEgAxCoSCIGQTNLDQAgBkECdEHUiBxqKAIAIQULIAUQWSIHIARqIQYCQCACRQ0AIAZB/wdLDQAgAiAEaiAFIAcQSxoLIAYhBCADQQFqIgMgAU8NACAGQQFqIQQgAkUNACAEQf8HSw0AIAIgBmpBIDoAAAwACwALAkAgAkUNACAEQQFqQf8HSw0AIAIgBGpBADoAAAsL8gECBX8CfiMAQRBrIgQkAEIAIQkCQANAAkAgAiAJVg0AIAkhAgwCCyAEIAIgCX0iCkL/////DyAKQv////8PVBs+AggCQAJAAkAgACAEQQhqIARBDGoQhUgNACAEKAIIIgUNAQsgCachBgwBCyABIAAoAmgiByAJpyIGbCAAKAJkIghBAnRBkJobaigCAGxqIAQoAgwgBa0gCCAHEJJIIAAgBCgCCCIFEIdIDQAgCSAFrXwhCQwBCwsgASAAKAJoIgUgBmwgACgCZCIAQQJ0QZCaG2ooAgBsaiAKIAAgBRCPSAsgAyACNwMAIARBEGokAEEAC1AAAkAgAUUNACABIAAoAmQ2AgALAkAgAkUNACACIAAoAmg2AgALAkAgA0UNACADIAAoAmw2AgALAkAgBEUNAEEAIAQgBSAAKAJoEK8OC0EACw0AIAAgACABIAIQkUgLxggCA34BfQJAAkACQCAFQwAAgD9cDQAgBK0gAn4hBkIAIQICQAJAAkACQCADQX9qDgUAAQIDBQYLA0AgAiAGUQ0GIAAgAqciBGogASAEQQF0ai4BACIEQf8AIARB/wBIGyIEQYB/IARBgH9KG0GAAXM6AAAgAkIBfCECDAALAAsDQCACIAZRDQUgACACpyIEQQF0aiABIARBAnRqKAIAIgRB//8BIARB//8BSBsiBEGAgH4gBEGAgH5KGzsBACACQgF8IQIMAAsACwNAIAIgBlENBCAAIAKnIgNBA2xqIgQgASADQQN0aikDACIHQv///wMgB0L///8DUxsiB0KAgIB8IAdCgICAfFUbIgc8AAAgBEECaiAHQhCIPAAAIARBAWogB0IIiDwAACACQgF8IQIMAAsACwNAIAIgBlENAyAAIAKnIgRBAnRqIAEgBEEDdGopAwAiB0L/////ByAHQv////8HUxsiB0KAgICAeCAHQoCAgIB4VRs+AgAgAkIBfCECDAALAAsCQCAFQwAAAABcDQAgACACIAMgBBCPSA8LIAStIAJ+IQJCACEGAkACQAJAAkACQCADQX9qDgUAAQIDBAYLAkACQCAFQwAAgEOUIgWLQwAAAE9dRQ0AIAWoIQQMAQtBgICAgHghBAsgBEEIdCEDQgAhBgNAIAYgAlENBiAAIAanIgRqIAMgASAEQQF0ai4BAGxBEHUiBEH/ACAEQf8ASBsiBEGAfyAEQYB/ShtBgAFzOgAAIAZCAXwhBgwACwALAkACQCAFQwAAgEOUIgWLQwAAAE9dRQ0AIAWoIQMMAQtBgICAgHghAwtCACEGA0AgBiACUQ0FIAAgBqciBEEBdGogASAEQQJ0aigCACADbEEIdSIEQf//ASAEQf//AUgbIgRBgIB+IARBgIB+Shs7AQAgBkIBfCEGDAALAAsCQAJAIAVDAACAQ5QiBYtDAAAAT11FDQAgBaghBAwBC0GAgICAeCEECyAErCEIQgAhBgNAIAYgAlENBCAAIAanIgNBA2xqIgQgASADQQN0aikDACAIfkIIhyIHQv///wMgB0L///8DUxsiB0KAgIB8IAdCgICAfFUbIgc8AAAgBEECaiAHQhCIPAAAIARBAWogB0IIiDwAACAGQgF8IQYMAAsACwJAAkAgBUMAAIBDlCIFi0MAAABPXUUNACAFqCEEDAELQYCAgIB4IQQLIASsIQhCACEGA0AgBiACUQ0DIAAgBqciBEECdGogASAEQQN0aikDACAIfkIIhyIHQv////8HIAdC/////wdTGyIHQoCAgIB4IAdCgICAgHhVGz4CACAGQgF8IQYMAAsACwNAIAYgAlENAiAAIAanQQJ0IgRqQwAAgL9DAACAPyABIARqKgIAIAWUIgkgCUMAAIA/XhsgCUMAAIC/XRs4AgAgBkIBfCEGDAALAAsgACABIAYQjkgLC+gBAgN/AX5BfiEDAkAgAkUNACACQgA3AAAgAkEYakIANwAAIAJBEGpCADcAACACQQhqQgA3AAAgAEUNACABRQ0AIAAoAgAiBEUNACACIAE2AhggBEECdCEFAkAgBEEDdCIERQ0AIAFBACAEEEgaCyACIAE2AhAgAkGAgID8AzYCDCACIAEgBWoiBTYCFCAAKQIAIQYgAkF/NgIIIAIgBjcCACAAKAIAIQRBACEDQQAhAgNAIAIgBEYNASABIAJBAnQiAGpBgICA/AM2AgAgBSAAakGAgID8AzYCACACQQFqIQIMAAsACyADCxwAAkAgAEUNACAAKAIcRQ0AIAAoAhggARDoCgsL3QoDCn8CfgV9IwBBgAJrIgQkAAJAIABFDQACQCAAKAIIIgUgACgCBCIGTw0AIAUgBmutIg4gAyAOIANUGyIPUA0AAkAgAUUNACACRQ0AQwAAgD8gBrMiEJUhESAFsyAQlSESAkAgACgCACIHQSFJDQBCACEOA0AgDiAPUQ0CIAEgByAOp2xBAnQiCGohCSACIAhqIQogACoCDCETIAAoAhQhCyAAKAIQIQxBACEIAkADQCAIIAdGDQEgCSAIQQJ0Ig1qIBMgCiANaioCACAMIA1qKgIAIhAgEiALIA1qKgIAIBCTlJKUlDgCACAIQQFqIQgMAAsACyAOQgF8IQ4gESASkiESDAALAAtBACEIAkADQCAIIAdGDQEgBCAIQQJ0Ig1qIBEgACgCFCANaioCACAAKAIQIA1qKgIAIhCTIAAqAgwiE5QiFJQ4AgAgBEGAAWogDWogECATlCASIBSUkjgCACAIQQFqIQgMAAsAC0IAIQ4CQAJAAkACQAJAIAdBfmoOBwAEBAQBBAIEC0IAIQ4gBCoChAEhECAEKgKAASESIAQqAgQhEyAEKgIAIREDQCAOIA9RDQMgDqdBAXQhCUEAIQgCQANAIAhBAkYNASABIAggCWpBAnQiDWogAiANaioCACAEQYABaiAIQQJ0aioCAJQ4AgAgCEEBaiEIDAALAAsgBCATIBCSIhA4AoQBIAQgESASkiISOAKAASAOQgF8IQ4MAAsACwNAIA4gD1ENAiAOp0EGbCEKQQAhDUEAIQgCQANAIAhBBkYNASABIAggCmpBAnQiCWogAiAJaioCACAEQYABaiAIQQJ0aioCAJQ4AgAgCEEBaiEIDAALAAsCQANAIA1BBkYNASAEQYABaiANQQJ0IghqIgkgBCAIaioCACAJKgIAkjgCACANQQFqIQ0MAAsACyAOQgF8IQ4MAAsACwNAIA4gD1ENASAOp0EDdCEKQQAhDUEAIQgCQANAIAhBCEYNASABIAggCmpBAnQiCWogAiAJaioCACAEQYABaiAIQQJ0aioCAJQ4AgAgCEEBaiEIDAALAAsCQANAIA1BCEYNASAEQYABaiANQQJ0IghqIgkgBCAIaioCACAJKgIAkjgCACANQQFqIQ0MAAsACyAOQgF8IQ4MAAsACyAPIQ4LA0AgDiAPUQ0BIAcgDqdsIQpBACEIAkADQCAIIAdGDQEgASAIIApqQQJ0Ig1qIAIgDWoqAgAgBEGAAWogCEECdCINaiIJKgIAIhCUOAIAIAkgECAEIA1qKgIAkjgCACAIQQFqIQgMAAsACyAOQgF8IQ4MAAsACyAAIA8gBa18Ig6nIAYgDiAGrVQbIgU2AgggAyAPfSEDIAIgD6dBAnQiCGohAiABIAhqIQELAkAgAUUNACACRQ0AAkAgACgCACINQSFJDQBCACEOA0AgDiADUQ0CIA0gDqdsIQkgACoCDCEQIAAoAhQhCkEAIQgCQANAIAggDUYNASABIAggCWpBAnQiB2ogECACIAdqKgIAIAogCEECdGoqAgCUlDgCACAIQQFqIQgMAAsACyAOQgF8IQ4MAAsAC0EAIQgDQAJAIAggDUcNAEIAIQ4DQCAOIANRDQMgDSAOp2whCUEAIQgCQANAIAggDUYNASABIAggCWpBAnQiB2ogAiAHaioCACAEQYABaiAIQQJ0aioCAJQ4AgAgCEEBaiEIDAALAAsgDkIBfCEODAALAAsgBEGAAWogCEECdCIHaiAAKAIUIAdqKgIAIAAqAgyUOAIAIAhBAWohCAwACwALIAVBf0cNACAAIAYgA6cgAyAGrVYbNgIICyAEQYACaiQAC7YDAwR+BH8CfQJAIABFDQACQAJAIAApAyAiBEJ/VQ0AIAEgAkIAIAR9IgUgAyAFIANUGyIFIAAoAgAgACgCBBCSSCAAIAApAyAgBXwiBDcDICADIAV9IQMgBEIAUw0BIAIgACgCBCAFp2wgACgCAEECdEGQmhtqKAIAbCIIaiECIAEgCGohAQtC/////w8gBH0gAyAEIAN8Qv////8PVhshAwJAAkAgACoCDCIMIAAqAhAiDVwNACAAKAIEIQggACgCACEJIAxDAACAP1wNASABIAIgAyAJIAgQkkgMAgsgACgCACEIAkAgBCAAKQMYIgZUDQAgASACIAMgCCAAKAIEIA0Q4EgMAgsgCEEFRw0CIAansyENQgAhBQNAIAUgA1ENAiAAKgIMIgwgBSAEfCIHIAYgByAGVBunsyANlSAAKgIQIAyTlJIhDCAAKAIEIgogBadsIQtBACEIAkADQCAIIApGDQEgASALIAhqQQJ0IglqIAwgAiAJaioCAJQ4AgAgCEEBaiEIDAALAAsgBUIBfCEFDAALAAsgASACIAMgCSAIIAwQ4EgLIAAgACkDICADfDcDIAsLKwAgAUEMahDrCiAAQQhqIAFBCGooAgA2AgAgACABKQIANwIAIAFBADYCDAuTAQEEfwJAIAFFDQAgAUIANwAAIAFBCGpCADcAAAtBfiECAkAgAEUNACAAKAIAIgNFDQAgACgCBCIERQ0AIAFBfzYCBEEAIQJBACEFAkAgACgCCEUNACABQQA2AgQgA0EHakF4cSEFCyABIAU2AgggASAEQQJ0QQdqQXhxIAVqIgA2AgwgASAAIARBA3RqNgIACyACCykAAkAgAEUNACAAQfwAaiABEOJIIAAoAqQBRQ0AIAAoAqABIAEQ6AoLC+sXAwh/En0BfiMAQYAgayIJJAACQAJAAkACQAJAAkACQCAEIAUgASACIAcQy0hBf2oOAwABAgMLIAAgAyAGQQUgAhCSSAwFCyAARQ0EIANFDQQgBUUNBEEAIQdBACEIAkADQCAHIAVGDQEgCCAEIAUgBxCoSEEAR2ohCCAHQQFqIQcMAAsACwJAIAhFDQAgCLMhEUIAISMgBUECdCEIA0AgIyAGUQ0GQwAAAAAhEkEAIQcCQANAIAcgBUYNAQJAIAQgBSAHEKhIRQ0AIBIgAyAHQQJ0aioCAJIhEgsgB0EBaiEHDAALAAsgACASIBGVOAIAICNCAXwhIyAAQQRqIQAgAyAIaiEDDAALAAsgACAGQQVBARCPSAwECyAARQ0DIAJFDQMgA0UNA0F/IQVBACEEQQAhBwJAAkAgCEF/ag4CAAEDCwJAA0AgByACRg0BIAQgASACIAcQqEhBAEdqIQQgB0EBaiEHDAALAAtDAACAPyAEs5UhEkIAISMgAkECdCEFA0BBACEHICMgBlENBQJAA0AgByACRg0BAkAgASACIAcQqEhFDQAgACAHQQJ0aiASIAMqAgCUOAIACyAHQQFqIQcMAAsACyAjQgF8ISMgA0EEaiEDIAAgBWohAAwACwALIAJBAkkNAkEAIQdBfyEEA0ACQCAHIAJHDQBBACEHAkADQCAHIAJGDQEgByAEIAEgAiAHEKhIIghBA0YbIQQgByAFIAhBAkYbIQUgB0EBaiEHDAALAAsgBUF/Rg0DIARBf0YNA0IAISMgAkECdCEIA0BBACEHICMgBlENBgJAA0AgByACRg0BAkAgASACIAcQqEhFDQACQAJAIAcgBUYNAEMAAAAAIRIgByAERw0BCyADKgIAIRILIAAgB0ECdGogEjgCAAsgB0EBaiEHDAALAAsgI0IBfCEjIANBBGohAyAAIAhqIQAMAAsACyAHIAQgASACIAcQqEgiCEEMRhshBCAHIAUgCEELRhshBSAHQQFqIQcMAAsACwJAAkACQCACQf4BSw0AAkAgB0EBRw0AIAQgBSABIAIgCRCnSA0GIAAgAiADIAUgBiAJQQUQlEgaDAYLQQAhCgJAIAJBIEsNACAFQSBLDQACQANAIAogAkYNAUEAIQcgASACIAoQqEghCCAJIApBB3RqIQsCQANAIAcgBUYNASALIAdBAnRqIAggBCAFIAcQqEgQq0g4AgAgB0EBaiEHDAALAAsgCkEBaiEKDAALAAtBACEMAkACQCACQXpqDgMBBQAFCyAFQQJGDQMgCUGAB2ohCyAJQYAGaiENIAlBgAVqIQEgCUGABGohDiAJQYADaiEKIAlBgAJqIQ8gCUGAAWohEEEAIQwDQCAMrSAGWg0FIAMgDCAFbEECdGohCEMAAAAAIRFBACEEQwAAAAAhE0MAAAAAIRRDAAAAACEVQwAAAAAhFkMAAAAAIRdDAAAAACEYQwAAAAAhGQJAA0AgBCAFRg0BIAggBEECdCIHaioCACISIAsgB2oqAgCUIBmSIRkgEiANIAdqKgIAlCAYkiEYIBIgASAHaioCAJQgF5IhFyASIA4gB2oqAgCUIBaSIRYgEiAKIAdqKgIAlCAVkiEVIBIgDyAHaioCAJQgFJIhFCASIBAgB2oqAgCUIBOSIRMgEiAJIAdqKgIAlCARkiERIARBAWohBAwACwALIAAgDEEFdGoiByAROAIAIAdBBGogEzgCACAHQQhqIBQ4AgAgB0EMaiAVOAIAIAdBEGogFjgCACAHQRRqIBc4AgAgB0EYaiAYOAIAIAdBHGogGTgCACAMQQFqIQwMAAsACyAJQYAFaiELIAlBgARqIQ0gCUGAA2ohASAJQYACaiEOIAlBgAFqIQpBACEMA0AgDK0gBloNBCADIAwgBWxBAnRqIQhDAAAAACERQQAhBEMAAAAAIRNDAAAAACEUQwAAAAAhFUMAAAAAIRZDAAAAACEXAkADQCAEIAVGDQEgCCAEQQJ0IgdqKgIAIhIgCyAHaioCAJQgF5IhFyASIA0gB2oqAgCUIBaSIRYgEiABIAdqKgIAlCAVkiEVIBIgDiAHaioCAJQgFJIhFCASIAogB2oqAgCUIBOSIRMgEiAJIAdqKgIAlCARkiERIARBAWohBAwACwALIAAgDEEYbGoiByAROAIAIAdBBGogEzgCACAHQQhqIBQ4AgAgB0EMaiAVOAIAIAdBEGogFjgCACAHQRRqIBc4AgAgDEEBaiEMDAALAAsDQCAKrSAGWg0GIAAgCiACbEECdGohDiADIAogBWxBAnRqIQtBACENAkADQCANIAJGDQFDAAAAACESQQAhByABIAIgDRCoSCEIAkADQCAHIAVGDQEgCyAHQQJ0aioCACAIIAQgBSAHEKhIEKtIlCASkiESIAdBAWohBwwACwALIA4gDUECdGogEjgCACANQQFqIQ0MAAsACyAKQQFqIQoMAAsACyAAIAZBBSACEI9IDAQLQQAhDCAJKgKEByETIAkqAoQGIRQgCSoChAUhFSAJKgKEBCEWIAkqAoQDIRcgCSoChAIhGCAJKgKEASEZIAkqAgQhGiAJKgKAByEbIAkqAoAGIRwgCSoCgAUhHSAJKgKABCEeIAkqAoADIR8gCSoCgAIhICAJKgKAASEhIAkqAgAhIgNAIAytIAZaDQEgACAMQQV0aiIHQQRqIAMgDEEDdGoiBEEEaioCACISIBmUIAQqAgAiESAhlEMAAAAAkpI4AgAgByASIBqUIBEgIpRDAAAAAJKSOAIAIAdBCGogEiAYlCARICCUQwAAAACSkjgCACAHQQxqIBIgF5QgESAflEMAAAAAkpI4AgAgB0EQaiASIBaUIBEgHpRDAAAAAJKSOAIAIAdBFGogEiAVlCARIB2UQwAAAACSkjgCACAHQRhqIBIgFJQgESAclEMAAAAAkpI4AgAgB0EcaiASIBOUIBEgG5RDAAAAAJKSOAIAIAxBAWohDAwACwALA0AgDK0gBloNAyAAIAwgAmxBAnRqIQ0gAyAMIAVsQQJ0aiELQQAhCANAQwAAAAAhEkEAIQcCQCAIIAJHDQAgDEEBaiEMDAILAkADQCAHIAVGDQEgCyAHQQJ0IgRqKgIAIAkgCEEHdGogBGoqAgCUIBKSIRIgB0EBaiEHDAALAAsgDSAIQQJ0aiASOAIAIAhBAWohCAwACwALAAsgAkH+AU0NAEIAISMDQCAjIAZRDQIgAyAjpyIHQQJ0aiEFIAAgByACbEECdGohBEEAIQcCQANAIAcgAkYNAQJAIAEgAiAHEKhIRQ0AIAQgB0ECdGogBSoCADgCAAsgB0EBaiEHDAALAAsgI0IBfCEjDAALAAtBACEHQQAhBQJAA0AgByACRg0BIAkgB2ogASACIAcQqEgiBDoAACAFQQEgBBshBSAHQQFqIQcMAAsACwJAIAVFDQBCACEjA0AgIyAGUQ0CIAMgI6ciB0ECdGohBSAAIAcgAmxBAnRqIQRBACEHAkADQCAHIAJGDQECQCAJIAdqLQAARQ0AIAQgB0ECdGogBSoCADgCAAsgB0EBaiEHDAALAAsgI0IBfCEjDAALAAtCACEjAkACQAJAAkAgAkF+ag4HAAICAgECAwILA0AgIyAGUQ0EIAAgI6ciB0EDdGoiBUEEaiADIAdBAnRqKgIAIhI4AgAgBSASOAIAICNCAXwhIwwACwALA0AgIyAGUQ0DIAAgI6ciB0EYbGohBSADIAdBAnRqKgIAIRJBACEHAkADQCAHQQZGDQEgBSAHQQJ0aiASOAIAIAdBAWohBwwACwALICNCAXwhIwwACwALA0AgIyAGUQ0CIAMgI6ciB0ECdGohBSAAIAcgAmxBAnRqIQRBACEHAkADQCAHIAJGDQEgBCAHQQJ0aiAFKgIAOAIAIAdBAWohBwwACwALICNCAXwhIwwACwALA0AgIyAGUQ0BIAAgI6ciB0EFdGohBSADIAdBAnRqKgIAIRJBACEHAkADQCAHQQhGDQEgBSAHQQJ0aiASOAIAIAdBAWohBwwACwALICNCAXwhIwwACwALIAlBgCBqJAALvQECB30CfEMAAIA/IQUCQCACQ9oPyUBdRQ0AIAEqAgQhBiAAKgIEIQcgASoCACEIIAAqAgAhCSABKgIIIQogACoCCCELRBgtRFT7Ifk/IAJDAAAAP5S7oRDDSCEMRBgtRFT7Ifk/IANDAAAAP5S7oRDDSCENIAsgCpQgCSAIlCAHIAaUkpIiAiAMtiIDXg0AAkAgAiANtiIFXg0AIAQPCyAEQwAAgD8gAiAFkyADIAWTlSICk5QgApIhBQsgBQu7AwIGfwJ+IwBBIGsiBCQAAkAgA0UNACADQgA3AwALQX4hBQJAIABFDQAgAlANACAAKAI0IQZBACEHAkACQAJAIAAgBEEYaiAEQRRqQQBBAEEAEPwwDQBCACEKA0AgAiAKWA0CIAAgBEEcahDrSEEAIQggBCgCHCIFRQ0DIAUgASACIAp9IARBCGoQ7EghBSAEKQMIIgsgCnwhCgJAAkAgBQ0AIAchBQwBCwJAIAVBb0YNACAFIQgMBQsCQCAGRQ0AQQAhBQJAIAtCAFINAEEBIQUgBw0FCyAEKAIcIgcgBykDGBDtSCIIDQUMAQsCQAJAIAQoAhwiBSgCLCIJRQ0AIAAgCTYCKAwBCyAFKAIwIglFDQUgACAFIAkRAAAiCTYCKCAJRQ0FCyAHIQUgCUIAEO1IIggNBAsCQAJAIAENAEEAIQEMAQsgASAEKAIUIAQoAghsIAQoAhhBAnRBkJobaigCAGxqIQELIAUhBwwACwALIAAgBEEcahDrSCAEKAIcIAEgAiADEOxIIQUMAgtBACEICwJAIANFDQAgAyAKNwMACyAIQW8gCCAKUBsgCBshBQsgBEEgaiQAIAULLgEBfwJAIAAoAigiAg0AQQAhAiAAKAIsDQBBACAAIAAoAjAbIQILIAEgAjYCAAumAgICfwR+IwBBEGsiBCQAIARCADcDCAJAAkAgAA0AQW8hAAwBCwJAIAJQRQ0AQX4hAAwBCwJAAkACQCAAKAIALQAYQQFxDQAgACgCNCEFIAApAxBCf1INASAAKQMgQn9RDQAgBQ0BCyAAIAEgAiAEQQhqEO5IIQAMAQsCQCAAIAQQ70gNACAAKQMQIQYgACkDCCEHIAQpAwAhCAJAIAVFDQAgACkDICIJQn9RDQAgBiAJIAd8IgkgBiAJVBshBgsgAiAGIAggB3x9IgcgAiAHIAJUGyAGQn9RGyICUEUNAEFvIQAMAQsgACABIAIgBEEIahDuSCEACyAEKQMIIQICQCADRQ0AIAMgAjcDAAsgAEFvIAAgAlAbIAAbIQALIARBEGokACAAC0QBAn8CQCAADQBBfg8LAkAgACgCACgCBCICDQBBYw8LQX0hAwJAIAApAxAgAVQNACAAIAApAwggAXwgAhEbACEDCyADC9MBAgF/A34jAEGgIGsiBCQAAkACQCABRQ0AIAAgASACIAMgACgCACgCABEcACEBDAELIAAgBEGcIGogBEGYIGpBAEEAQQAQ/DAiAQ0AQYAgIAQoApwgQQJ0QZCaG2ooAgAgBCgCmCBsbq0hBUIAIQYCQANAIAIgBlgNASAEQgA3AwggACAEQRBqIAIgBn0iByAFIAcgBVQbIARBCGogACgCACgCABEcACEBIAQpAwggBnwhBiABRQ0ADAILAAsgAyAGNwMAQQAhAQsgBEGgIGokACABC30CAn8CfiMAQRBrIgIkAAJAAkAgAQ0AQX4hAwwBCyABQgA3AwBBACEDIABFDQACQCAAKAIAKAIMIgMNAEFjIQMMAQsgACACQQhqIAMRAgAiAw0AIAFCACACKQMIIgQgACkDCH0iBSAFIARWGzcDAEEAIQMLIAJBEGokACADC8wBAgV+A39CACEEAkAgAEUNACACUA0AQgAhBANAIAIgBFgNASACIAR9IgUgACkDUCIGIAApA0giB30iCCAFIAhUGyEFAkAgAUUNACABIAAoAjgiCUECdEGQmhtqKAIAIAAoAjwiCmwiCyAEp2xqIAAoAlggCyAHp2xqIAUgCSAKEJJIIAApA1AhBiAAKQNIIQcLIAAgByAFfCIHNwNIIAUgBHwhBCAHIAZSDQALCwJAIANFDQAgAyAENwMAC0FvQW9BACAEUBsgBCACVBsLLgEBf0F+IQICQCAARQ0AIAApA1AgAVQNACAAIAFC/////w+DNwNIQQAhAgsgAgswACABIAAoAjg2AgAgAiAAKAI8NgIAIAMgACgCQDYCAEEAIAQgBSAAKAI8EK8OQQALDgAgASAAKQNINwMAQQALDgAgASAAKQNQNwMAQQALXQAgAUEAQZgDEEghAQJAIABFDQAgACgCACIAQQVLDQBBASAAdEE0cUUNACABIAA2AkgLIAFBBGpBAEE0EEgaIAFCfzcDICABQn83AxAgAUHEyh02AgAgASABNgIoCzQBAX8jAEEQayIDJAAgACgCRCABIAIgA0EMaiAAKAI4EQcAGiADKAIMIQAgA0EQaiQAIAALGAAgACgCRCABrCACQQFGIAAoAjwRIABFC1gBAn8CQCAAKAJIDQBBBSEBAkAgAC8BpAFBAUcNACAALwGiAUF4aiICQQ10IAJB+P8DcUEDdnIiAkH//wNxQQNLDQAgAkEBakH//wNxIQELIAAgATYCSAsLpAEBAX9BACEFAkAgAEUNACABRQ0AIAJFDQBBACEFIABBAEHIAhBIIgAgAzYCDCAAIAI2AgggACABNgIAAkACQCAEDQBBsAghAkGxCCEDQbIIIQFBACEEDAELIAQoAgwhASAEKAIIIQMgBCgCBCECIAQoAgAhBAsgACABNgIcIAAgAzYCGCAAIAI2AhQgACAENgIQIAFFDQAgAiADckEARyEFCyAFCwYAIAAQXgsIACAAIAEQYQsGACAAEGALtCECHH8HfiMAQfAgayIBJAAgAUIANwOwIEEAIQIgAUG8IGpBAEEoEEgaAkAgACgCDCABQeQgakEEIAAoAgARBAAiA0EERw0AQQAhAgJAAkACQAJAAkACQAJAAkACQCABQeQgakGH4xEQ/kgNAEEBIQIgAUHkIGpBtd4REP5IDQACQAJAIAFB5CBqQaCxERD+SEUNACAAQQI2AiAgACgCDCABQQwgACgCABEEACICQQxHDQogAq0gA618IR0gAEEgaiEDQQAhAgNAIAJBDEYNAiACQYSpG2ohBCABIAJqIQUgAkEBaiECIAUtAAAgBC0AAEYNAAwLCwALQQMhAiABQeQgakG77REQ/kgNASABQeQgakHS4hEQ/kgNBAwJC0EAIQIgAygCAA4FAQECAQQJCyAAIAI2AiAgAEEgaiEDQgQhHQsgACgCDCABQQQgACgCABEEACICQQRHDQYCQAJAIAMoAgAOBAEBCAAICyABKAIAQX9HDQcLIAEgHSACrXwgACgCDCABQYAgakEEIAAoAgARBAAiAq18NwPoICACQQRHDQZBACECIAFBgCBqQZbjERD+SEUNBwwDCyAAKAIMIAFBgCBqQQggACgCABEEAEEIRw0GIAEpA4AgQtAAVA0GIAEgACgCDCABQRAgACgCABEEACIErUIYfDcD6CAgBEEQRw0GQQAhAiABQZCpGxD/SEUNBgwCCyAAQQQ2AiAgAEEgaiEDQgQhHQsgACgCDCABQQQgACgCABEEACIEQQRHDQMgASgAACICQRh0IAJBgP4DcUEIdHIgAkEIdkGA/gNxIAJBGHZyckESSQ0DIAEgHSAErXwgACgCDCABQYAgakEEIAAoAgARBAAiAq18NwPoICACQQRHDQMgAUGAIGpBjOMREP5IRQ0BC0EAIQYMAQsgAUGAIGpB/OMREP5IIgZFDQELQgAhHgJAIAMoAgAiAkEDRw0AIAAoAgAgACgCDEEDIAFB6CBqIAEQgEkNASABQZvtERD+SEUNASABNQIYIR0gASkDECEfIAAoAghCCCAAKAIMEIFJRQ0BIAEpA+ggISAgACgCDCABQYAgakEIIAAoAgARBABBCEcNASABKQOAICEeIAAoAgwgAUGAIGpBCCAAKAIAEQQAIgJBCEcNASABIAEpA4AgNwOwICAAKAIIIB8gHXxCaHwiHSAAKAIMEIFJRQ0BIAEgICACrXxCEHwgHXw3A+ggIAMoAgAhAgsgAUGAIGpBBnIhByABQbwgakEYaiEIIAFBvCBqQRBqIQUgAUGgIGpBD3IhCSABQaAgakEOciEKIAFBoCBqQQ1yIQsgAUGgIGpBDHIhDCABQZIgaiENIAFBgCBqQQdyIQ5BACEPQQAhEEEAIRFBACESQQAhE0EAIRRCACEgQQAhFUEAIRYCQAJAA0AgACgCACAAKAIMIAIgAUHoIGogARCASQ0BIAEpAxAhHQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADKAIAIgIOBQAAAQAFBwsgAUG2/REQ/kgNASACDgQDAwADBgsgAUGgqRsQ/0hFDQELQQEhFkEBIQQgACgCDCABQaAgakEQIAAoAgARBABBEEcNDSABIAEpA+ggIh9CEHwiHTcD6CACQAJAAkAgAygCAEF/ag4EAAEBAAELIAEoAqggIgJBGHQgAkGA/gNxQQh0ciACQQh2QYD+A3EgAkEYdnJyIRAgASgCpCAiAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnIhEiABLwGiICICQQh0IAJBCHZyIRMgAS8BoCAiAkEIdCACQQh2ciEXIAshAiAMIQQgCSEUIAohDwwBCyABKAKoICEQIAEoAqQgIRIgAS8BoiAhEyABLwGgICEXIAwhAiALIQQgCiEUIAkhDwsgAi0AACECIAQtAAAhBCAULQAAIRQgDy0AACEPIAVBEGpCADcCACAFQQhqQgA3AgAgBUIANwIAIBQgD0EIdHIhDyACIARBCHRyIRECQCABKQMQQhFUDQAgACgCDCABQZ4gakECIAAoAgARBABBAkcNDCABIB9CEnwiHTcD6CACQAJAAkAgAygCAEF/ag4EAAEBAAELIAEtAJ4gIQIgAS0AnyAhBAwBCyABLQCfICECIAEtAJ4gIQQLIAEgAkEIdCAEQf8BcXIiBDsBzCACQAJAIARB//8DcSICDQBCEiEfDAELQf7/AyEUAkAgAkEWRg0AIBdB//8DcUH+/wNGDQ8LAkACQCAXQf//A3FB/v8DRw0AIAAoAgwgAUGAIGogAiAAKAIAEQQAIAJHDRACQAJAAkAgAygCAEF/ag4EAAEBAAELIAEgAS8BgCAiAkEIdCACQQh2cjsBziAgASgBgiAiAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnIhAgwBCyABIAEvAYAgOwHOICABKAGCICECCyABIAI2AtAgQQAhAgNAIAJBEEYNAiAIIAJqIAcgAmotAAA6AAAgAkEBaiECDAALAAsgACgCDCACQQEgACgCCBEEAEUNDgsgASAdIAStQv//A4MiH3wiHTcD6CAgH0ISfCEfCyAAKAIMIAEpAxAgH32nQQEgACgCCBEEAEUNDCABIAEpAxAgH30gHXwiHTcD6CALQQYhBAJAIAEoAhgiAkUNAAJAIAAoAgggAq0gACgCDBCBSQ0AQQUhBAwBCyABIB0gATUCGHw3A+ggCyAXIRQMDQsgAUGwqRsQ/0hFDQIMCQsgAUHD2xEQ/kgNCCACQQNLDQIgAkECRg0CIAFB+v8QEP5IRQ0CAkAgAg4DAAAGBwsgACgCDCABQYAgakEEIAAoAgARBAAhAiABIAEpA+ggIAKtfDcD6CAgAkEERw0QQgAhHwJAIAAvAVRBAkcNAAJAAkAgAygCAEF/ag4EAAEBAAELIAExAIIgQgiGIAExAIMghCABMQCBIEIQhoQgATEAgCBCGIaEIR8MAQsgATUCgCAhHwsgHUJ8fCEdIAEgHzcDsCAMBgsCQCABQeDiERD+SEUNAAJAAkAgBkH/AXEiF0UNAEEYIQJBASEEIB1CGFoNAQwGC0EBIQRBEiECIB1CElINBQsgACgCDCABQYAgaiACIAAoAgARBAAhFiABIAEpA+ggIBatfCIhNwPoIEEBIQQgFiACRw0EAkACQAJAIAMoAgBBf2oOBAABAQABCyABLwGAICIWQQh0IBZBCHZyIRYgATEAhCBCCIYgATEAhSCEIAExAIMgQhCGhCABMQCCIEIYhoQhIiAOIRggByEZDAELIAE1AYIgISIgAS8BgCAhFiAHIRggDiEZCyABKQGKICIfQjiGIB9CgP4Dg0IohoQgH0KAgPwHg0IYhiAfQoCAgPgPg0IIhoSEIB9CCIhCgICA+A+DIB9CGIhCgID8B4OEIB9CKIhCgP4DgyAfQjiIhISEIR8gGS0AACEZIBgtAAAhGkIAISMCQAJAIAEsAIggIhtBCHRBgP4BcSABLQCJIHIiGA0AIB9QDQELIBhB//8BRg0FIBhBgYB/aiIcQT9LDQUgHEUNAEIAIB9BvoABIBhrrYgiH30gHyAbQQBIGyIjQv////8PVg0FCyAZQQh0IBpyIRlBASEYIBdFDQMgDUGj4xEQ/kgNAwJAIA1Bsf0REP5IRQ0AIBlB//8DcUEIRw0EQQEhGCAAQQE6AMECDAQLAkAgDUHM8RAQ/khFDQBBASEYIABBAToAwAIMBAtBAyEYIA1B/u4REP5IDQMgDUGg7REQ/kgNAyANQaXvERD+SA0DIA1Btu0REP5IDQNBBiEYIA1BxfAQEP5IDQMgDUG/3hEQ/kgNA0EHIRggDUHA8BAQ/kgNAyANQbreERD+SA0DQQEhBAwECyABQbfjERD+SEUNASAAKAIMIAFBgCBqQQggACgCABEEACECIAEgASkD6CAgAq18Ih83A+ggQQEhFSACQQhHDQkCQAJAAkAgAygCAEF/ag4EAAEBAAELIAExAIIgQgiGIAExAIMghCABMQCBIEIQhoQgATEAgCBCGIaEISEMAQsgATUCgCAhIQtBASEEIAAoAgggISAAKAIMEIFJRQ0KIAEgISAffCIfNwPoICAAIB83A2hBBSEEIB0hHgwKCyABQcCpGxD/SA0DCyAAKAIIIB0gATUCGHwiHSAAKAIMEIFJRQ0LIAEpA+ggIB18IR0MBAtBBiEEIBYgGUH//wNxIhQgFkH//wNxbEEDdiITIBhBBnFBBkYgFEEIS3EiFBshEUEIIBkgFBsiFEEHcSAUaiEPIBNB//8DcSAjpyISbCEQAkAgF0UNAAJAIAAoAgggHSACrX0iHSAAKAIMEIFJDQBBASEEDAELIAEgISAdfDcD6CALIBYhEyAYIRQgIiEgC0EBIRYMBgsgACgCDCABQbAgakEIIAAoAgARBAAhAiABIAEpA+ggIAKtfDcD6CAgAkEIRw0KIB1CeHwhHQsgACgCCCAdIAE1Ahh8Ih0gACgCDBCBSUUNByABKQPoICAdfCEdCyABIB03A+ggDAQLIAEgETsByCAgASASNgLAICABIBM7Ab4gIAEgFDsBvCAgASAPOwHKICABIBA2AsQgIAAgASkD6CA3A2ggHiAdIAJBA0YbIR5BASEVDAYLIBchFAtBASEEC0EAIQIgBEF7ag4CAgAFCyADKAIAIQIMAAsACyABIBE7AcggIAEgEjYCwCAgASATOwG+ICABIBQ7AbwgIAEgDzsByiAgASAQNgLEIAtBACECIBZB/wFxRQ0BIBVB/wFxRQ0BIBJB/8doakGAyGhJDQEgE0H/fWpB//8DcUGA/gNJDQEgD0G/f2pB//8DcUHA/wNJDQEgEUH//wNxRQ0BAkAgFEH//wNxQf7/A0cNAAJAAkAgAygCAEF/ag4EAAEBAAELIAEvAdQgIgRBCHQgBEEIdnIhFAwBCyABLwHUICEUCyAAKAIIIAApA2ggACgCDBCCSUUNAUL/////DyEdIAApA2ghHwJAAkAgHkL/////D1ENACAeIR0MAQsgAygCAEEBSw0AIAAoAogBDQBCACEdA0AgHSAAKAIMIAFBgCAgACgCABEEACICrXwhHSACQf8fSw0ACyAAKQNoIR8LAkAgACgCCCAfIAAoAgwQgkkNACAAKAKMASAAQRBqEINJDAELIABBJGogAUG8IGpBKBBLGiAAIB03A3AgACAPOwFSIAAgEzsBUCAAIBI2AkwgACAdNwNgIAAgFDsBVAJAAkACQAJAAkAgASkDsCAiH0IAUg0AICAhHyAgQgBSDQACQCAAEIRJIgJFDQAgACAdIAKtgDcDWCAUQf//A3EiAkERRg0CIAJBAkcNBSATrUL//wODIh8gHSARrUL//wODIh6AIiAgICAefiAdVK18fkL6//////////8AfiAdfEIBhiAfgCEdDAMLIAAoAowBIABBEGoQg0kMBQsgACAfNwNYIBRB//8DcSICQQJGDQIgAkERRg0CDAMLIB0gEa1C//8DgyIfgCIeIB4gH34gHVStfCIfIB0gHyATrUL//wODIh5+QgKGfUIBhiAegHwhHQsgACAdNwNYCyATQf//A3FBA0kNACAAKAKMASAAQRBqEINJDAELQQEhAiAAEIRJDQEgACgCjAEgAEEQahCDSQtBACECCyABQfAgaiQAIAILQQEBf0EAIQICQCAALQAAIAEsAABHDQAgAC0AASABLAABRw0AIAAtAAIgASwAAkcNACAALQADIAEsAANGIQILIAILQQEEf0EAIQJBASEDAkADQCACQRBGDQEgASACaiEEIAAgAmohBSACQQFqIQIgBS0AACAELQAARg0AC0EAIQMLIAMLnQICAn8BfiMAQRBrIgUkAAJAAkAgAkEETQ0AQXYhBgwBCwJAAkAgAkECRg0AQW8hBiABIARBBCAAEQQAQQRHDQJBdiEGIAEgBUEMakEEIAARBABBBEcNAgJAAkACQCACQX9qDgQBAAABAAsgBSgCDCECDAELIAUoAgwiAkEYdCACQYD+A3FBCHRyIAJBCHZBgP4DcSACQRh2cnIhAgsgBCACQQFxNgIYIAQgAq03AxAgAyADKQMAQgh8NwMADAELQW8hBiABIARBECAAEQQAQRBHDQFBdiEGIAEgBUEIIAARBABBCEcNASAEIAUpAwAiB0JofDcDECAEIAenQQdxNgIYIAMgAykDAEIYfDcDAAtBACEGCyAFQRBqJAAgBgtfAQJ/QQEhAwJAA0AgAVANAQJAAkAgAUKAgICACFQNACACQf////8HQQEgABEEAEUNASABQoGAgIB4fCEBDAILIAGnIQRCACEBIAIgBEEBIAARBAANAQsLQQAhAwsgAwtuAQJ/QQAhAwJAAkAgAUKAgICACFQNAEEAIQQgAkH/////B0EAIAARBABFDQFBASEDA0AgAUKBgICAeHwiAUKAgICACFQNASACQf////8HQQEgABEEAA0ADAILAAsgAiABpyADIAARBAAhBAsgBAsnAQF/AkAgAEUNACABRQ0AIAEoAgwiAkUNACAAIAEoAgAgAhEDAAsLVQECfwJAAkAgAC8BUiIBQQdxDQAgAC8BJiABbEEDdiEBDAELIAAvATAhAQsCQAJAIAAvAVRB/v8DcUEGRw0AQQAhAiABIAAvASZHDQELIAEhAgsgAgvqGgQOfwR+AX0BfCMAQYAgayIEJAACQCADRQ0AIANCADcDAAtBfiEFAkAgAEUNACACUA0AQX0hBQJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCSA4GCwEDAQIAAQsgAEHQAGohBgJAIAENACAGIAJBABCGSSESDAkLAkAgAC8BoAEiB61C//8DgyACfkKAgICA/P///z+DUA0AQf////8DIAdB//8DcW6tIQILQW8hBUIAIRICQCAALwGkASIIQX9qDgcACAYKCgUEBwsgBEEAQYAgEEghCUIAIRIgBhCESSIKRQ0IIAogB0H//wNxIgVuIQggCiAFSQ0IIAogCCAFbEcNCEHAACAIQQN0ayELIAitIRNCACESIAhBf2ohDCAIQQlJIQ0DQCACUA0JIAYgAkGA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dCILQQxyIghqKAIAIQ8gACALQQhyIhBqKAIAIREgACALQQRyIhJqKAIAIRMgBCAIaigCACEIIAQgEGooAgAhECAEIBJqKAIAIRIgACALaigCACEUIAEgDUEFdGoiDSAEIAtqKAIAIA50Igs2AgAgDUEEaiALIBQgDHRrNgIAIA1BCGogEiAOdCILNgIAIA1BEGogECAOdCIQNgIAIA1BGGogCCAOdCIINgIAIA1BDGogCyATIAx0azYCACANQRRqIBAgESAMdGs2AgAgDUEcaiAIIA8gDHRrNgIAIBdCAXwhFwwACwALIBhC/P///w+DIRcDQCAXIBhRDQQgACAXpyINQQJ0IgtqKAIAIQggASANQQN0aiINIAQgC2ooAgAgDnQiCzYCACANQQRqIAsgCCAMdGs2AgAgF0IBfCEXDAALAAsgCSAFLQBVaiEMIAkgBS0ATWohDkIAIRcCQANAIBcgGlENASAEIBenIg1BBHQiC0EMciIIaigCACEPIAQgC0EIciIQaigCACERIAQgC0EEciISaigCACETIAAgCGooAgAhCCAAIBBqKAIAIRAgACASaigCACESIAQgC2ooAgAhFCABIA1BBXRqIg1BBGogACALaigCACAMdCILNgIAIA0gCyAUIA50ajYCACANQQxqIBIgDHQiCzYCACANQRRqIBAgDHQiEDYCACANQRxqIAggDHQiCDYCACANQQhqIAsgEyAOdGo2AgAgDUEQaiAQIBEgDnRqNgIAIA1BGGogCCAPIA50ajYCACAXQgF8IRcMAAsACyAYQvz///8PgyEXA0AgFyAYUQ0DIAQgF6ciDUECdCILaigCACEIIAEgDUEDdGoiDUEEaiAAIAtqKAIAIAx0Igs2AgAgDSALIAggDnRqNgIAIBdCAXwhFwwACwALQgAhFwJAAkAgFUEfSw0AA0AgFyAaUQ0CIAAgF6ciDUEEdCIMQQxyIg5qKAIAIQggBCAOaigCACEPIAAgDEEIciIOaigCACEQIAQgDmooAgAhESAAIAxBBHIiDmooAgAhEiAEIA5qKAIAIRMgASANQQV0aiINQQRqIAAgDGooAgAgBS0AVSIOdCILQQFxIAQgDGooAgAgBS0ATSIMdEEBdHIiFCALayAKdDYCACANIBQgC2ogCnQ2AgAgDUEIaiASIA50IgtBAXEgEyAMdEEBdHIiEiALaiAKdDYCACANQQxqIBIgC2sgCnQ2AgAgDUEQaiAQIA50IgtBAXEgESAMdEEBdHIiECALaiAKdDYCACANQRRqIBAgC2sgCnQ2AgAgDUEYaiAIIA50Ig5BAXEgDyAMdEEBdHIiDCAOaiAKdDYCACANQRxqIAwgDmsgCnQ2AgAgF0IBfCEXDAALAAsDQCAXIBpRDQEgACAXpyINQQR0IgxBDHIiDmooAgAhCCAEIA5qKAIAIQ8gACAMQQhyIg5qKAIAIRAgBCAOaigCACERIAAgDEEEciIOaigCACESIAQgDmooAgAhEyABIA1BBXRqIg1BBGogACAMaigCACAFLQBVIg50IgtBAXEgBCAMaigCACAFLQBNIgx0QQF0ciIUIAtrQQF1NgIAIA0gFCALakEBdTYCACANQQhqIBIgDnQiC0EBcSATIAx0QQF0ciISIAtqQQF1NgIAIA1BDGogEiALa0EBdTYCACANQRBqIBAgDnQiC0EBcSARIAx0QQF0ciIQIAtqQQF1NgIAIA1BFGogECALa0EBdTYCACANQRhqIAggDnQiDkEBcSAPIAx0QQF0ciIMIA5qQQF1NgIAIA1BHGogDCAOa0EBdTYCACAXQgF8IRcMAAsACyAYQvz///8PgyEXA0AgFyAYUQ0CIAEgF6ciDUEDdGoiDEEEaiAAIA1BAnQiDmooAgAgBS0AVXQiDUEBcSAEIA5qKAIAIAUtAE10QQF0ciIOIA1rQQF1IAl0NgIAIAwgDiANakEBdSAJdDYCACAXQgF8IRcMAAsACyAJIAUtAFVqIQwgCSAFLQBNaiEOQgAhFwJAA0AgFyAaUQ0BIAAgF6ciDUEEdCILQQxyIghqKAIAIQ8gBCAIaigCACEIIAAgC0EIciIQaigCACERIAQgEGooAgAhECAAIAtBBHIiEmooAgAhEyAEIBJqKAIAIRIgBCALaigCACEUIAEgDUEFdGoiDUEEaiAAIAtqKAIAIAx0NgIAIA0gFCAOdDYCACANQQhqIBIgDnQ2AgAgDUEMaiATIAx0NgIAIA1BEGogECAOdDYCACANQRRqIBEgDHQ2AgAgDUEYaiAIIA50NgIAIA1BHGogDyAMdDYCACAXQgF8IRcMAAsACyAYQvz///8PgyEXA0AgFyAYUQ0BIAEgF6ciDUEDdGoiCyAEIA1BAnQiDWooAgAgDnQ2AgAgC0EEaiAAIA1qKAIAIAx0NgIAIBdCAXwhFwwACwALIAUgBSkDkAEgGHw3A5ABIAUgBSgCSCAYp2s2AkggAiAYfSECIBggFnwhFiABIBggGX6nQQJ0aiEBDAALAAsgACgCTCIFRQ0CIAFFDQAgBUHMAGohBkEfIAUtAB0iB2shCEEgIAdrIQlCACEWA0AgAlANAgJAA0AgBSgCSCIKDQEgBRC3SQ0ADAQLAAsgAiAKrSIXIAIgF1QbIRggBS8BQCAKayELIAUsAEIiDEGQxRtqLQAAIg2tIRkCQAJAQYIOIAx2QQFxDQBCACEXA0AgFyAYUQ0CIBcgGX6nIQxBACEAIBenQQJ0IQ4CQANAIAAgDUYNASABIAAgDGpBAXRqIAYgAEEDdGoiBCgCBCALQQJ0aiAOaigCACAJIAQtAAFqdEEQdjsBACAAQQFqIQAMAAsACyAXQgF8IRcMAAsACyAYQgKIIRogBSgCWCALQQJ0IgRqIQAgBSgCUCAEaiEEAkACQAJAAkAgDEH/AXFBeGoOAwABAgMLIAkgBS0AVWohDiAJIAUtAE1qIQtCACEXAkADQCAXIBpRDQEgACAXp0EEdCIMQQxyIg1qKAIAIQ8gACAMQQhyIhBqKAIAIREgACAMQQRyIhJqKAIAIRMgBCANaigCACEUIAQgEGooAgAhECAEIBJqKAIAIRIgACAMaigCACEVIAEgDGoiDSAEIAxqKAIAIAt0IgxBEHY7AQAgDUECaiAMIBUgDnRrQRB2OwEAIA1BBGogEiALdCIMQRB2OwEAIA1BCGogECALdCIQQRB2OwEAIA1BDGogFCALdCISQRB2OwEAIA1BBmogDCATIA50a0EQdjsBACANQQpqIBAgESAOdGtBEHY7AQAgDUEOaiASIA8gDnRrQRB2OwEAIBdCAXwhFwwACwALIBhC/P///w+DIRcDQCAXIBhRDQQgACAXp0ECdCINaigCACEMIAEgDWoiDyAEIA1qKAIAIAt0Ig1BEHY7AQAgD0ECaiANIAwgDnRrQRB2OwEAIBdCAXwhFwwACwALIAkgBS0AVWohDiAJIAUtAE1qIQtCACEXAkADQCAXIBpRDQEgBCAXp0EEdCIMQQxyIg1qKAIAIQ8gBCAMQQhyIhBqKAIAIREgBCAMQQRyIhJqKAIAIRMgACANaigCACEUIAAgEGooAgAhECAAIBJqKAIAIRIgBCAMaigCACEVIAEgDGoiDUECaiAAIAxqKAIAIA50IgxBEHY7AQAgDSAMIBUgC3RqQRB2OwEAIA1BBmogEiAOdCIMQRB2OwEAIA1BCmogECAOdCIQQRB2OwEAIA1BDmogFCAOdCISQRB2OwEAIA1BBGogDCATIAt0akEQdjsBACANQQhqIBAgESALdGpBEHY7AQAgDUEMaiASIA8gC3RqQRB2OwEAIBdCAXwhFwwACwALIBhC/P///w+DIRcDQCAXIBhRDQMgBCAXp0ECdCINaigCACEMIAEgDWoiD0ECaiAAIA1qKAIAIA50Ig1BEHY7AQAgDyANIAwgC3RqQRB2OwEAIBdCAXwhFwwACwALQgAhFwJAAkAgB0EgRg0AA0AgFyAaUQ0CIAAgF6dBBHQiDEEMciINaigCACEPIAQgDWooAgAhECAAIAxBCHIiDWooAgAhESAEIA1qKAIAIRIgACAMQQRyIg1qKAIAIRMgBCANaigCACEUIAEgDGoiDUECaiAAIAxqKAIAIAUtAFUiDnQiC0EBcSAEIAxqKAIAIAUtAE0iDHRBAXRyIhUgC2sgCHRBEHY7AQAgDSAVIAtqIAh0QRB2OwEAIA1BBGogEyAOdCILQQFxIBQgDHRBAXRyIhMgC2ogCHRBEHY7AQAgDUEGaiATIAtrIAh0QRB2OwEAIA1BCGogESAOdCILQQFxIBIgDHRBAXRyIhEgC2ogCHRBEHY7AQAgDUEKaiARIAtrIAh0QRB2OwEAIA1BDGogDyAOdCIOQQFxIBAgDHRBAXRyIgwgDmogCHRBEHY7AQAgDUEOaiAMIA5rIAh0QRB2OwEAIBdCAXwhFwwACwALA0AgFyAaUQ0BIAAgF6dBBHQiDEEMciINaigCACEPIAQgDWooAgAhECAAIAxBCHIiDWooAgAhESAEIA1qKAIAIRIgACAMQQRyIg1qKAIAIRMgBCANaigCACEUIAEgDGoiDUECaiAAIAxqKAIAIAUtAFUiDnQiC0EBcSAEIAxqKAIAIAUtAE0iDHRBAXRyIhUgC2tBAXVBEHY7AQAgDSAVIAtqQQF1QRB2OwEAIA1BBGogEyAOdCILQQFxIBQgDHRBAXRyIhMgC2pBAXVBEHY7AQAgDUEGaiATIAtrQQF1QRB2OwEAIA1BCGogESAOdCILQQFxIBIgDHRBAXRyIhEgC2pBAXVBEHY7AQAgDUEKaiARIAtrQQF1QRB2OwEAIA1BDGogDyAOdCIOQQFxIBAgDHRBAXRyIgwgDmpBAXVBEHY7AQAgDUEOaiAMIA5rQQF1QRB2OwEAIBdCAXwhFwwACwALIBhC/P///w+DIRcDQCAXIBhRDQIgASAXp0ECdCINaiIOQQJqIAAgDWooAgAgBS0AVXQiDEEBcSAEIA1qKAIAIAUtAE10QQF0ciINIAxrQQF1IAl0QRB2OwEAIA4gDSAMakEBdSAJdEEQdjsBACAXQgF8IRcMAAsACyAJIAUtAFVqIQ4gCSAFLQBNaiELQgAhFwJAA0AgFyAaUQ0BIAAgF6dBBHQiDEEMciINaigCACEPIAQgDWooAgAhECAAIAxBCHIiDWooAgAhESAEIA1qKAIAIRIgACAMQQRyIg1qKAIAIRMgBCANaigCACEUIAQgDGooAgAhFSABIAxqIg1BAmogACAMaigCACAOdEEQdjsBACANIBUgC3RBEHY7AQAgDUEEaiAUIAt0QRB2OwEAIA1BBmogEyAOdEEQdjsBACANQQhqIBIgC3RBEHY7AQAgDUEKaiARIA50QRB2OwEAIA1BDGogECALdEEQdjsBACANQQ5qIA8gDnRBEHY7AQAgF0IBfCEXDAALAAsgGEL8////D4MhFwNAIBcgGFENASABIBenQQJ0Ig1qIgwgBCANaigCACALdEEQdjsBACAMQQJqIAAgDWooAgAgDnRBEHY7AQAgF0IBfCEXDAALAAsgBSAKIBinazYCSCAFIAUpA5ABIBh8NwOQASACIBh9IQIgGCAWfCEWIAEgGCAZfqdBAXRqIQEMAAsACyAFIAIQuEkhFgtBb0EAIBZQGyEEDAELQW8hBEIAIRYLIANFDQAgAyAWNwMACyAEC0cBBH8gAEEwaiEBIABBvAFqIQJBASEDAkACQANAIAIgAC0AHSABEKpJRQ0BIAAQqUkiBEGcf0YNAAsgBEUNAQtBACEDCyADC3QCAn4Bf0IAIQIDfgJAAkAgAVANAANAIAAoAkgiBA0CIAAQt0kNAAsLIAAgACkDkAEgAnw3A5ABIAIPCyAAIAQgAadrQQAgASAErSIDVCIEGzYCSCACIAEgAyAEG3whAkIAIAEgA30iAyADIAFWGyEBDAALCxkAAkAgAA0AQX4PCyAAKAJMIAEQuklBf2oLrA8DCn8FfgF9IABBMGohAiAAQbwBaiEDQQAhBAJAAkACQANAIAQhBSAARQ0CAkACQCAAKQOQASIMIAFSDQBBASEGDAELQQAhBiAAKQOYASINUA0AAkAgAUIAUg0AIABCADcDkAEgABC+SSEGIAVBAXENBAwFCwJAAkAgACkDICIOIAEgDiABVBsiASAMWA0AIAAoAkgiBCABIAx9pyIHTQ0BIAAgATcDkAEgACAEIAdrNgJIQQEhBiAFQQFxDQUMBgsgAC8BQCAAKAJIIgRrIAwgAX2nIgdNDQAgACABNwOQASAAIAQgB2o2AkhBASEGIAVBAXENBAwFCwJAAkAgACgCKEEBRw0AIAAoArQBIgQpAxAhDyADIA0Qv0lFDQEgBEEANgLoBEIAIRADQAJAIARBABCrSQ0AIAQgD0EAEKxJGgwDCwJAIAQpA9ACIg4gAVoNACAELQDNAkEBcQ0BIAQtAOUCQQJJDQEgBC0A8ARB/wFHDQEgDiAQIAQtAPEEQfwBcUH4AUYbIRAMAQsLIAQgBCkDECAEMQDkAiAENQLsBHx9QmV8QQAQrElFDQEgBEEAEKtJRQ0BA0AgEEIBfCEPA0AgAyAALQAdIAIQqklFDQMCQCACKQMAIg5CAFINACAAMwEeIAA1Ajh+IQ4LIA8gDn1CACAOIAAzAUB8Ig5Cf3wiDSANIA5WG3whDgJAIAApAyAiDSABUg0AIA4gDVINACAAEKlJDQQgACABNwOQASAAQQA2AkhBASEGIAVBAXENCAwJCwJAIA4gAVgNACAAEKlJIgRBnH9GDQEgBA0EIAEgEH1C/////w+DIg5QDQcgACAQNwOQASAAIA4QuEkgDlENBwwECyAAEMBJIgRBnH9GDQALIA4hECAERQ0ADAILAAsCQCAALQC4AUEBcQ0AIAAoArABIghFDQAgACgCLCIJRQ0AQQAhB0EAIQQgCCkDACABVg0AAkADQCAEIQogByIEIAlGDQEgBEEBaiEHIAggBEEYbGopAwAgAVQNAAsLIAggCkEYbCILaiIHLwEQIgRFDQAgBCAALwEeSw0AAkAgDlAiBA0AIAcpAwAgDlYNAQsCQCAEDQAgBykDCCEPAkACQCAOIAAxABx+IAAxAB1+tEMAAAA+lCIRQwAAgF9dIBFDAAAAAGBxRQ0AIBGvIQ4MAQtCACEOCyANIA58IQ4CQCAKIAlBf2pPDQAgDyAHQSBqKQMAIhBaDQIgB0Eoai8BAEUNAiAOIA0gEHxCf3wgB0EYaikDAEJ/URshDgsgAyAPIA18Ig0Qv0lFDQAgAyAALQAdIAIQqklFDQACQCACKQMAIg9CAFINACAAMwEeIAA1Ajh+IQ8LIAAgDzcDkAEgACABIA0gDhDBSQ0FCyAAKAKwASALaiIEKQMAIQ8CQAJAIAApA5ABIg4gAVYNACAPIA5WDQBBACEEAkAgDkIAUQ0AIA4hDwwCC0IAIQ8gACgCSA0BQQEhBCADIAAtAB0gAhCqSQ0BDAILIAMgBCkDCCAAKQOYAXwQv0lFDQFBASEEIAMgAC0AHSACEKpJRQ0BCwNAAkAgAikDACIOQgBSDQAgADMBHiAANQI4fiEOCwJAAkAgDyAOfUIAIA4gADMBQHwiDkJ/fCINIA0gDlYbfEIBfCIOIAFYDQACQCAEQQFxRQ0AIAAQqUkiBEGcf0YNAiAEDQQLIAAgASAPfSIOELhJIA5SDQMMBwsCQAJAIARBAXFFDQAgABDASSIEQZx/Rg0CIARFDQEMBAsgADUCSCEOIABBADYCSCAPIA58IQ4LAkAgACkDICINIAFRDQAgDiEPDAELIA4hDyAOIA1RDQYLQQEhBCADIAAtAB0gAhCqSQ0ACwsCQCAALQC4AUECcQ0AIAApAyBQDQAgAC8BHiEEIAAQvklFDQACQAJAIAStQv//A4NCAYZCgCAgBEH//wNxGyABWA0AIAAgARC4SSABUSEEDAELAkACQCAAKQMgIAAxABx+IAAxAB1+tEMAAAA+lCIRQwAAgF9dIBFDAAAAAGBxRQ0AIBGvIQ4MAQtCACEOCyAAIAEgACkDmAEiDSANIA58EMFJIQQLIAQNBAsgAC0AuAFBBHENAAJAAkAgACkDkAEiDyABVg0AQQAhBCAPQgBSDQFCACEPIAAoAkgNAUEBIQQgAyAALQAdIAIQqkkNAQwCCyAAEL5JRQ0BIAMgAC0AHSACEKpJRQ0BQQEhBEIAIQ8LA0ACQCACKQMAIg5CAFINACAAMwEeIAA1Ajh+IQ4LAkACQCAPIA59QgAgDiAAMwFAfCIOQn98Ig0gDSAOVht8QgF8Ig4gAVgNAAJAIARBAXFFDQAgABCpSSIEQZx/Rg0CIAQNBAsgACABIA99Ig4QuEkgDlENBgwDCwJAAkAgBEEBcUUNACAAEMBJIgRBnH9GDQIgBEUNAQwECyAANQJIIQ4gAEEANgJIIA8gDnwhDgsCQCAAKQMgIg0gAVENACAOIQ8MAQsgDiEPIA4gDVENBQtBASEEIAMgAC0AHSACEKpJDQALC0EBIQRCACEBIAAgDBC6SUUNAQsLIAVBAXFFDQIMAQsgACABNwOQAUEBIQYgBUEBcUUNAQtBACEGCyAGC6gBAAJAIAFFDQAgAUEANgIACwJAIAJFDQAgAkEANgIACwJAIANFDQAgA0EANgIACwJAIARFDQAgBUUNACAEQQAgBRBIGgsCQCAADQBBfQ8LAkAgAUUNACABIAAoAkg2AgALAkAgAkUNACACIAAoAkwtABw2AgALAkAgA0UNACADIAAoAkwoAhg2AgALAkAgBA0AQQAPC0EAIAQgBSAAKAJMLQAcEK8OQQALMAEBf0F+IQICQCABRQ0AIAFCADcDACAARQ0AIAEgACgCTCkDkAE3AwBBACECCyACCy8BAX9BfiECAkAgAUUNACABQgA3AwAgAEUNACABIAAoAkwpAyA3AwBBACECCyACCyQBAX8gAEG8AWogACkDmAEQv0khASAAQTBqQQBB6AAQSBogAQvEAQEDfyAAKAIIIQIgACgCBCEDAkACQAJAIAFCgICAgAhUDQBBACEEIAJB/////wdBACADEQQARQ0CAkADQCAAKAIIIQIgACgCBCEDIAFCgYCAgHh8IgFCgICAgAhUDQEgAkH/////B0EBIAMRBAANAAwECwALIAIgAadBASADEQQADQEMAgtBACEEIAIgAadBACADEQQARQ0BCyAAQQA2ApwgIABCgIiAgIAENwIUIABCADcCpCAgAEIANwIMQQEhBAsgBAvpBwEJfyMAQRBrIgEkACAAQcwAaiECIABBvAFqIQMgACwAQkGQxRtqLQAAIQRBACEFAkADQAJAAkACQCAFIARGDQBBfyEGIAMgAiAFQQN0aiIHEK1JRQ0EIAAtAEMhCAJAAkAgAC0AQiIJQQhGDQAgBUEBRw0DIAlBCkYNAQwDCyAFQQFHDQILIAhBAWohCAwCCwJAIANBACAAKALUAWtBB3EQskkNAEF/IQYMBAsCQAJAIAAoAtQBIgdBIEcNACAAKALgISEHIAAvAdwhIQUCQAJAAkACQAJAIAAoAuQhDgQAAQIDBAsgBUGA/gNxQQh2IAdBGHZzQQF0QYC+G2ovAQAiCEEIdCAHcyAIIAVBCHRzQYD+A3FBCHYgB0EQdkH/AXFzQQF0QYC+G2ovAQAiBXNBgP4DcUEHdkGAvhtqLwEAIghBCHQgBUEIdCAIc0GA/gNxQQh2IAdB/wFxc0EBdEGAvhtqLwEAcyEFDAULIAdBEHZB/wFxIAVBgP4DcUEIdnNBAXRBgL4bai8BACAFQQh0cyEFCyAFQQh0IAUgB3NBgP4DcUEHdkGAvhtqLwEAcyEFCyAFQQh0IAVBgP4DcUEIdiAHQf8BcXNBAXRBgL4bai8BAHMhBQsgAEEANgLkIQwBCyAAKALgIUEgIAdrdiEIIAAvAdwhIQUCQAJAAkACQAJAIAAoAuQhQX9zIAdBA3YiB2oOBAMCAQAECyAFQYD+A3FBCHYgCEEYdnNBAXRBgL4bai8BACAFQQh0cyEFCyAFQQh0IAVBgP4DcUEIdiAIQRB2Qf8BcXNBAXRBgL4bai8BAHMhBQsgBUEIdCAFIAhzQYD+A3FBB3ZBgL4bai8BAHMhBQsgBUEIdCAFQYD+A3FBCHYgCEH/AXFzQQF0QYC+G2ovAQBzIQULIAAgBzYC5CELIAAgBTsB3CECQCADQRAgAUEMahCvSQ0AQW8hBgwEC0EAQZx/IAVB//8DcSABLwEMRhshBgwDCyAFRSAJQQlGcSAIaiEICyAIIActAAEiCU0NASAHQQA2AgQgCCAJayEIAkACQAJAAkACQCAHLQAAIgkOAgMBAAsgCUEIRg0BIAlBIEcNBSADIAggBy0AAmwQsklFDQUgA0EEIAFBD2oQrklFDQUgAS0ADyIIQQ9GDQUgAyAHLQACIAhBAWpB/wFxbEEFahCySUUNBSADIAAvAUAgBy0AAhDCSQ0DDAULIAMgCCAALwFAbBCySQ0CDAQLIAMgCCAHLQACbBCySUUNAyADIAAvAUAgBy0AAhDCSQ0BDAMLIAMgCBCySUUNAgsgBUEBaiEFDAALAAsgAUEQaiQAIAYLsQQDAn8GfgF9IwBBEGsiBCQAIAApAyAhBiAEQn83AwgCQAJAIAEgACkDkAF9IAAxABx+IAAxAB1+tEMAAAA+lEOamRk/lCIMQwAAgF9dIAxDAAAAAGBxRQ0AIAyvIQcMAQtCACEHCyAHIAJ8IgcgAyAHIANUGyEIQoAgIAAzAR4iB0IBhiAHUBshCSACIQcCQAJAA0AgACAIIAcgAyAEQQhqEMNJRQ0BAkAgACkDMCIKQgBSDQAgADMBHiAANQI4fiEKCwJAIAYgClINACAAIAIgAiADIARBCGoQw0lFDQJBASEFIAAgASAAKQOQAX0QxElFDQIMAwsCQCABIApUDQBCACAKIAAzAUB8IgtCf3wiCCAIIAtWGyABVA0AQQEhBSAAIAEgACkDkAF9EMRJDQMMAgsgBCkDCCELAkAgASAKWg0AIAsgByALIAcgC1QbIgd9QgGIIAd8IgMgByADIAdWGyEIIAshAyAKIQYMAQsCQCABIAp9IgcgCVoNAEEBIQUgACABIAApA5ABfRDESUUNAgwDCwJAAkAgADEAHSAAMQAcfiIIIAd+tEMAAAA+lCALIAApA5gBfbQgCCAKfrRDAAAAPpSVlCIMQwAAgF9dIAxDAAAAAGBxRQ0AIAyvIQcMAQtCACEHCyALIAd8IgcgAyALIAMgC1YbIgMgByADVBshCCACIAsgAiALVhshAiAKIQYgCyEHDAALAAsgABC+SRpBACEFCyAEQRBqJAAgBQunDAENfyMAQRBrIgMkAEEAIQQCQCAAQQIgA0EPahCuSUUNACADLQAPIgVB/wFxQQFLDQAgAEEEIANBDmoQrklFDQAgAy0ADiIGQQhLDQAgASAGdiIHIAJNDQAgAEEcaiEIIAcgAmshCUEBIAZ0IQoCQANAIANBADoADQJAAkACQAJAIAVBAXENACAAQQQgA0ENahCuSUUNBSADLQANIgRBD0cNAQwCCyAAQQUgA0ENahCuSUUNBCADLQANIgRBH0YNAQsgBEH/AUYNAEEfIARrIQsgBEEBaiEMQQAhDQNAIA0gCUYNAgJAAkAgACgCnCAiBEUNAAJAAkAgBEH/////AE0NACAEQRp2QTxxQYDCG2ooAgAhAgwBCyAEQRB0IAQgBEGAgARJIgEbIgJBCHQgAiACQYCAgAhJIgYbIgJBBHQgAiACQYCAgIABSSIOG0EadkE8cUGAwhtqKAIAIAFBBHQiAkEIciACIAYbIgJBBHIgAiAOG2ohAgsgAkF/aiICQR9LDQAgACgCGCEBDAELA0ACQAJAIAAoAhQiAkH/B0sNACAAKAKkICEBIAAvAaAgIQQCQAJAAkACQAJAAkAgACgCqCAOBAABAgMECyAAIARBgP4DcUEIdiABQRh2c0EBdEGAvhtqLwEAIgZBCHQgAXMgBiAEQQh0c0GA/gNxQQh2IAFBEHZB/wFxc0EBdEGAvhtqLwEAIgRzQYD+A3FBB3ZBgL4bai8BACIGQQh0IARBCHQgBnNBgP4DcUEIdiABQf8BcXNBAXRBgL4bai8BAHM7AaAgDAQLIAFBEHZB/wFxIARBgP4DcUEIdnNBAXRBgL4bai8BACAEQQh0cyEECyAEQQh0IAQgAXNBgP4DcUEHdkGAvhtqLwEAcyEECyAEQQh0IARBgP4DcUEIdiABQf8BcXNBAXRBgL4bai8BAHMhBAsgAEEANgKoICAAIAQ7AaAgCyAAIAJBAWo2AhQgACAIIAJBAnRqKAIAIgRBGHQgBEGA/gNxQQh0ciAEQQh2QYD+A3EgBEEYdnJyIgQ2AqQgQQAhAQwBCyAAELRJRQ0HIAAoAhghASAAKAKcICEECwJAAkAgBA0AQSAhAgwBCwJAAkAgBEH/////AE0NACAEQRp2QTxxQYDCG2ooAgAhAgwBCyAEQRB0IAQgBEGAgARJIgYbIgJBCHQgAiACQYCAgAhJIg4bIgJBBHQgAiACQYCAgIABSSIPG0EadkE8cUGAwhtqKAIAIAZBBHQiAkEIciACIA4bIgJBBHIgAiAPG2ohAgsgAkF/aiECCyACQSBPDQALCwJAAkAgAiABaiIBIAtLDQAgASAMaiEBIAQgAnQgDHQhBAwBCyABIAtrIQQCQAJAIAAoAhQiAUH/B0sNACAAKAKkICEGIAAvAaAgIQICQAJAAkACQAJAAkAgACgCqCAOBAABAgMECyAAIAJBgP4DcUEIdiAGQRh2c0EBdEGAvhtqLwEAIg5BCHQgBnMgDiACQQh0c0GA/gNxQQh2IAZBEHZB/wFxc0EBdEGAvhtqLwEAIgJzQYD+A3FBB3ZBgL4bai8BACIOQQh0IAJBCHQgDnNBgP4DcUEIdiAGQf8BcXNBAXRBgL4bai8BAHM7AaAgDAQLIAZBEHZB/wFxIAJBgP4DcUEIdnNBAXRBgL4bai8BACACQQh0cyECCyACQQh0IAIgBnNBgP4DcUEHdkGAvhtqLwEAcyECCyACQQh0IAJBgP4DcUEIdiAGQf8BcXNBAXRBgL4bai8BAHMhAgsgAEEANgKoICAAIAI7AaAgCyAAIAFBAWo2AhQgACAIIAFBAnRqKAIAIgJBGHQgAkGA/gNxQQh0ciACQQh2QYD+A3EgAkEYdnJyIgI2AqQgIAQhAQwBCyAAELRJRQ0GIARBICAAKAIYIgJrSw0GIAIgBGohASAAKAKcICECCyACIAR0IQQLIAAgATYCGCAAIAQ2ApwgIA1BAWohDQwACwALIANBADoADCAAQQUgA0EMahCuSUUNAiAAIAkgAy0ADGwQsklFDQILAkAgCkEBRg0AIApBf2ohCiAHIQkMAQsLQQEhBAwBC0EAIQQLIANBEGokACAEC6EBAQN/IAQgACkDmAE3AwAgAEEwaiEFIABBvAFqIQYCQAJAA0ACQAJAIAYgARC/SQ0AIAFCAFINASAAEL5JGgwDCyAFQQBB4AAQSBogABC3SQ0DCyADIAJ9QgGIIAJ8IgMgAVEhByADIQEgB0UNAAsLQQAPCwJAIAApAzAiA0IAUg0AIAAzAR4gADUCOH4hAwsgACADNwOQASAEIAE3AwBBAQsMACAAIAEQuEkgAVELCwAgASACIAAQlkkLDwAgACABIAJBAUYQl0lFC0EBAn8CQCAAKAIEIAAoAggiA2siBCACIAQgAkkbIgJFDQAgASAAKAIAIANqIAIQSxogACAAKAIIIAJqNgIICyACC1IBAn9BACEDAkAgAawgACgCBCIErVUNAAJAAkAgAkEBRw0AIAAoAgggAWoiASAESw0CIAAgATYCCAwBCyAEIAFJDQEgACABNgIIC0EBIQMLIAMLYAAgAUEAQdD9ABBIIgFBBTYCSAJAIABFDQACQCAAKAIAIgBBfmoOBAABAQABCyABIAA2AkgLIAFBBGpBAEE0EEgaIAFCfzcDICABQn83AxAgAUH8yh02AgAgASABNgIoCzQBAX8jAEEQayIDJAAgACgCRCABIAIgA0EMaiAAKAI4EQcAGiADKAIMIQAgA0EQaiQAIAALGAAgACgCRCABrCACQQFGIAAoAjwRIABFCy4BAX9BACEFAkAgAEUNACABRQ0AIABBAEH4/AAQSCABIAIgAyAEEM1JIQULIAULwQEBAX8gACADNgKcNCAAIAI2Apg0IAAgATYClDRBACEFIABBADoAiDACQAJAIAQNAEG6CCECQbsIIQFBvAghA0EAIQQMAQsgBCgCDCEDIAQoAgghASAEKAIEIQIgBCgCACEECyAAIAM2Aqw0IAAgATYCqDQgACACNgKkNCAAIAQ2AqA0AkAgA0UNACACIAFyRQ0AAkAgABDdSQ0AIAAoAuR8IABBoDRqEPBJQQAPCyAAIAApA7A0NwKMNEEBIQULIAULiwUCCX8GfiMAQdAAayIDJAACQAJAAkAgAQ0AQQAhBAwBCyABQRhsIAIQrQ4iBEUNASAAKQOQfSEMIABB0ABqIgUgA0HIAGogA0HAAGoQz0lFDQACQAJAIAMpA0giDUICVg0AIARCADcDACAEQRBqQQA2AgAgBEEIakIANwMAQQEhBiAEIQEMAQsgA0IANwMIIANBADYCBCADKQNAIA2nQX9qIAEgDUJ/fCABrVQbIgZBAWqtgCEOIAUQ0ElFDQEgAEGENWohByAAQeA0aiEIQQAhAQJAA0ACQCABQQNHDQAgA0EgaiEBIANBMGohCUIAIQ8gAEGENWohCCAAQeA0aiEKQQAhCwwCCyADQRBqIAFBBHRqIgkgACkDmH0gADUCqH19NwMAIAkgAykDCDcDCCAFQQAQ0UkiCUUNAyAIKAIAIAcoAgAgCSADQQhqIANBBGoQ0kkgAUEBaiEBDAALAAsDQAJAAkAgCyAGRg0AIA8gDnwhDwNAIA8gAykDCCINVA0CIAMgASkDADcDECABIAkpAwA3AwAgAyABQQhqIgcpAwA3AxggByAJQQhqKQMANwMAIAApA5h9IRAgADUCqH0hESADIA03AzggAyAQIBF9NwMwIAVBABDRSSIHRQ0CIAooAgAgCCgCACAHIANBCGogA0EEahDSSQwACwALIAUQ0ElFDQMgBSAMENNJRQ0DIARBACAGGyEBDAILIAMpAxAhDSAEIAtBGGxqIgdBAjsBECAHIA83AwggByANNwMAIAcgDyADKQMofT0BEiALQQFqIQsMAAsACyAAIAQ2Asx9IAAgBjYCyH0gACABNgKgfSAAIAY2AqR9DAELIAQgAhDoCgsgA0HQAGokAAuLAQIBfwV+QQAhAwJAIABFDQAgACgCmDRFDQAgACkDwHwhBCAAENBJRQ0AQgAhBUIAIQYDQCAGIgdCAXwhBiAFIgggAEEAENFJIgOtfCEFIAMNAAtBACEDIAAQ0ElFDQAgACAEENNJRQ0AAkAgAUUNACABIAc3AwALQQEhAyACRQ0AIAIgCDcDAAsgAws0AQF/QQAhAQJAIAAoApw0QQBBACAAKAKYNBEEAEUNACAAQgA3A8h8IAAQ1ElBASEBCyABC4wGAQZ/IwBBIGsiAiQAAkACQCAAKALsfCIDRQ0AIAAoAvB8IgRFDQBBACEFIAAtAOh8QQFxDQEgACgC9HwhBgNAAkACQAJAIAAgAyAGaiAEIAZrIAEgAkEMahDVSUUNACAAIABBiTBqLQAAENZJIgU2Arw0IABBADYCuDQgACACKAIQNgKwNCAAIAIoAhQ2ArQ0IAIoAgwhBgwBCyACKAIMIgZBAU4NAUEAIQULIAAgACgC9HwgBmo2AvR8DAMLIAAgACgC9HwgBmoiBjYC9HwgACgC8HwhBCAAKALsfCEDDAALAAtBACEFIAAtAOh8QQFxDQAgAEGgNGohBwJAAkACQANAAkAgACgC2HwiBkH//wBLDQACQAJAIAAoAuR8IgMNAEEAIQYMAQsgAyADIAAoAuB8aiAGEIkBGiAAKALkfCEGCyAAQQA2AuB8AkAgACgC3HwiA0H//wNLDQAgBkGAgAQgAyAHENdJIgZFDQRBgIAEIQMgAEGAgAQ2Atx8IAAgBjYC5HwLIAAgBiAAKALYfCIEaiADIARrENhJIgYgACgC2HwiA3JFDQIgACADIAZqIgY2Ath8CyAGQQBIDQEgACgC5HwiA0UNAiAAIAMgACgC4HxqIAYgASACQQxqENVJIQMCQCACKAIMIgZBAUgNACAAIAAoAuB8IAZqNgLgfCAAIAAoAth8IAZrNgLYfAsgAw0DIAYNACAAKALkfCIGIAYgACgC4HxqIAAoAth8EIkBGiAAQQA2AuB8IAAoAuR8IQYCQAJAIAAoAtx8IgQgACgC2HwiA0YNACAEIQUMAQsgBiAEQYCABGoiBSAEIAcQ10kiBkUNAyAAIAU2Atx8IAAgBjYC5HwgACgC2HwhAwsgACAGIANqIAUgA2sQ2EkiBkUNASAAIAAoAth8IAZqNgLYfAwACwALIAAgAC0A6HxBAXI6AOh8C0EAIQUMAQsgACAAQYkwai0AABDWSSIFNgK8NCAAQQA2Arg0IAAgAigCEDYCsDQgACACKAIUNgK0NAsgAkEgaiQAIAULUwEBfQJAAkAgBCoCACACsyABsyAAs5WVkiIFQwAAgE9dIAVDAAAAAGBxRQ0AIAWpIQAMAQtBACEACyAEIAUgALOTOAIAIAMgAykDACAArXw3AwAL9AMCCH8DfkEAIQICQCAARQ0AIAAoApg0IgNFDQACQCABQgBSDQAgABDQSQ8LAkAgACgC0HwiBEUNACAAKALUfCIFRQ0AQQAhAkIAIQpCACELQgAhDEEAIQYCQAJAIAQpAwggAVYNAEEAIQdBACEIAkADQCAHIQkgCCAFRg0BIAhBGGwhBiAIIQcgCEEBaiEIIAQgBmopAwggAVgNAAsLIAQgCUEYbGoiCDMBEiEKIAgvARAhBiAIKQMIIQwgCCkDACILQoCAgIAIVA0AQQAhAiAAKAKcNEH/////B0EAIAMRBABFDQMgAEL/////BzcDyHwgC0KBgICAeHwhCwNAIAtQDQICQCALQv////8HVg0AIAunIQhCACELIAAgCEEBENlJDQEMBQsgAEH/////B0EBENlJRQ0EIAtCgYCAgHh8IQsMAAsACyAAIAunQQAQ2UlFDQILIAZBf2ohBCAAENRJIABBwDRqIQVBACEIAkADQCAIIAZGDQEgBCAIRiEHQQAhAiAIQQFqIQggACAFQQAgBxsQ0UkNAAwDCwALIAAgDCAKfSILNwPAfCAAIAEgC30Q2kkPC0EBIQIgACkDwHwiCyABUQ0AAkAgCyABWA0AQQAhAiAAENBJRQ0BIAApA8B8IQsLIAAgASALfRDaSSECCyACCzIAIABBADYC2HwgAEIANwPAfCAAQgA3A7g0IABBADoAiDAgACAALQDofEH+AXE6AOh8C8M6Ait/BH0jAEGAhgFrIgUkAAJAAkACQCACQQVIDQAgAC0AiDBB/wFHDQAgAEGIMGogARDeSUUNAEEAIQYCQCABQQFqLQAAIAFBAmotAAAgACgChDAQ30kgARDgSWoiByACRw0AIAIhBwwCCyAHQQRqIAJKDQAgASABIAdqEN5JIQggB0UNACAIDQELQQAhByAAQQBBjDQQSCEJIAJBfGoiCkEAIApBAEobIQtBACEGIAEhDANAAkACQAJAAkACQCAGIAtHDQAgAiEGDAELIAwQ4UlFDQMgDEEBai0AACAMQQJqLQAAQQAQ30kiDSAMEOBJaiEOQQQhCCAGQQRqIQ8CQAJAA0AgDQ0BIAhB/xFLDQEgCEEBdCAGaiAKTg0CQQAhDQJAIAwgDCAIaiIQEN5JRQ0AIA8gCGogCCAMEOBJayIRIBAQ4ElqIhJqIAJKDQAgDCAQIBJqEN5JRQ0AIAkgETYChDAgESENIAghDgsgCEEBaiEIDAALAAsgDUUNACAOIAZqIg8gAkoNACACIAZrIRJBACEIQQAhEANAAkAgEEEKRw0AIA4hBwwECwJAIAwgCGoiEUEBai0AACARQQJqLQAAIA0Q30kgCGogERDgSWoiCEEEaiASSg0AIAwgDCAIahDeSUUNAiAQQQFqIRAMAQsLIBBFDQAgDiEHDAELIAYNAiAOIAJHDQJBACEGIAIhBwsgBiAHaiEPCwJAIAdFDQAgDyACTA0ECyAEIAY2AgBBACEIDAQLIAlBADYChDALIAxBAWohDCAGQQFqIQYMAAsACyAAIAEgBmoiEygAADYCiDAgBCAGIAdqNgIAIARBAUECIBMtAANBvwFLGyIUNgIEIAQgE0EBaiIILQAAIBNBAmoiDC0AABDiSTYCCCAEQQQgCC0AAEEBdkEDcSINazYCDCAEIAgtAAAgDC0AABDjSTYCECAFIAdBA3RBYGo2AviFASAFQQA2AvSFASAFIBNBBGo2AvCFAQJAIAgtAAAiB0EBcQ0AIAVB8IUBakEQEORJGgsCQAJAAkACQCANQQFHDQBBACEMIAdBA3ZBAXEgB0EEdkEBcWpBA2wgE0ECai0AAEECdkEDcWoiCCAIQQBHayEIQQFBAiATLQADIg1BvwFLGyEQAkACQCAHQQhxRQ0AIAVB8IUBakEJEORJIRUgBUHwhQFqIBBBAXQiEEEHahDkSSEMDAELIAVB8IUBaiAQQQhyEORJIBB2IRULQQhBBiAHQQhxIhEbIQFBBEEJIBEbIRIgCEEXbEGQxhtqIQIgDUG/AUshDyAIQShsIQsgBUGQHWoiFiEIQQAhBgNAIAggBUHwhQFqQQwQ5EkiCjsBBCAIIAVB8IUBakEJEORJIg07AQYgDUH//wNxQaACSw0CIAxBBHQgDCAPGyENIAggBUHwhQFqQQgQ5Ek6AAogBUHwhQFqIBIQ5EkhDCAIQRY7AA0gCCACNgIAIAggDDsBCAJAAkAgBUHwhQFqQQEQ5ElFDQAgCCAFQfCFAWpBAhDkSSIMOgALIAxB/wFxRQ0EIAVB8IUBakEBEORJIQwgCEGH/gM7ARIgCCAMOgAMAkAgCC0AC0ECRw0AAkACQCAMQf8BcUUNAEEeIQxBkMobIQ4gASEJDAELIAhBCDoAEkEnIQxBACEJQdDHGyEOCyANQY8ecSENIAggDDoADiAIIAk6AA0gCCAOIAtqNgIACyAFQfCFAWpBChDkSSEMIAggBUHwhQFqQQMQ5Ek6ABUgCCAFQfCFAWpBAxDkSToAFiAIIAVB8IUBakEDEORJOgAXIAxBBXQhDAwBCyAIQQA7AAsgBUHwhQFqQQ8Q5EkhDCAIIAVB8IUBakEEEORJOgASIAVB8IUBakEDEORJIQ4gCEH/AToAFCAIIA46ABMLIApB//8DcSEKIAggDEEfcToAESAIIAxBCnY6AA8gCCAMQQV2QR9xOgAQAkACQCARRQ0AIAVB8IUBakEBEORJIQwMAQsgCC8BCEHzA0shDAsgCiAGaiEGIAggDDoAGCAIIAVB8IUBakEBEORJOgAZIAVB8IUBakEBEORJIQwgCCANQQx2QQ9xOgAbIAggDDoAGiAIQRxqIQggDUEEdCEMIBBBf2oiEA0ACyAFKAL0hQEiCCAGaiAFKAL4hQEiDCAVQQN0akoNASAVQQBIDQEgDCAISA0BQQAhDSAFQZAHaiAAQYwwaiIXIAAoAoAwIhggFWsiEEEAIBBBAEobaiAYIBUgGCAVSCIGGyIQEEsiGSAQaiAFKALwhQEgCEEIbWogDCAIa0EIbSIIEEsaIAUgECAIakEDdCIINgKMByAFQQA2AogHIAUgGTYChAcgA0UNAiAGDQIgAEGAEmohGiAFQQhyIRsgBUEEciEcIAVBoMMAaiEdIAVBx4UBaiEeIAVBgDBqIR8gBUGAwgBqISAgBUGghQFqISEgBUGAHmohIkEAISMDQAJAAkAgI0ECQQEgB0EIcRtPDQBBACEkICJBAEGAJBBIISUgFEEAIBRBAEobISYgFiAUICNsQRxsaiEnA0AgJCAmRg0CICcgJEEcbGoiKC0ADUUgKC0ADkEAR2pBHGxB0MwbaiEOICgvAQQhCiAFKAKIByERICgtABkhCQJAAkAgAC0AiTBBCHFFDQAgKC0AGyECIAUgKC8BCEGwzRtqLQAAIghBA3EiDDoA/4UBIAUgDDoA/oUBIAUgCEECdiIIOgD9hQEgBSAIOgD8hQEMAQtBDEEAICRBAEcgAC0AizBBEHFBBHZxIggbIQYgKC8BCCAIdiEQAkADQCAQQQBIDQFBAyEIQQEhDAJAA0AgCEEASA0BIAVB/IUBaiAIaiAQIAxuIAggBmpBwM0bai0AACINcDoAACAIQX9qIQggDCANbCEMDAALAAsgBkEEaiEGIBAgDGshEAwACwALIA4gBmohDkFwIQILICEgJEEnbGohBiARIApqISkgCUEBaiEPIAUhEEEAIRIDQAJAAkAgEkEERg0AIA4gEmotAAAiDUUNAAJAIAJBCHFFDQAgECAGIA0QSxoMAgsCQCAFQfyFAWogEmotAAAiCg0AIBBBACANEEgaIAZBACANEEgaDAILQX9BfyAKdEF/cyACQX9KGyERQQAhCANAIAggDUYNAiAGIAhqQX8gBUGEB2ogChDkSSIMIAwgEUYbOgAAIBAgCGogDDoAACAIQQFqIQgMAAsACyAQQQA6AAIgEEEAOwAAAkACQCAoLQAOIhBFDQAgKC0AF0ECIAlrIgh0IQYgKC0AFiAIdCEKICgtABUgCHQhESAoLQANIRJBACEIA0AgCCAQTw0CIAUgCCASamoiDCAMLQAAIBFqOgAAIAxBAWoiDSANLQAAIApqOgAAIAxBAmoiDCAMLQAAIAZqOgAAIAhBA2ohCAwACwALQQAhCCAoLQAYRQ0AA0AgCEEKRg0BIAggBWpBC2oiDCAIQdjNG2otAAAgDC0AAGo6AAAgCEEBaiEIDAALAAtDAAAARSAALQCLMEHgAXFB4ABGQQF0ICgtAAprQYICahDlSSEwICgtAA0gEGohDEEAIQgCQANAIAggDEYNASAgIAhBAnRqIDAgBSAIai0AACAPdBDlSTgCACAIQQFqIQgMAAsACyAFKAKEByIqIAUoAogHIgxBCG1qIg0oAAAiCEEYdCAIQYD+A3FBCHRyIAhBCHZBgP4DcSAIQRh2cnIgDEEHcXQhECAoQRJqISsgKEEPaiEsIAxBeHIhCCAlICRBgBJsaiEKIA1BBGohDCAoKAIAIS0gKC8BBiEHQwAAAAAhMEEAIQ0gICEBA0ACQAJAIAdBAUgNACANQQFqIRQgLCANai0AACIGQQF0QaDwG2ouAQBBAXRBgM4baiECICsgDWotAAAhLgJAIAZBEEkNAEEgIAZB4PAbai0AACIPayEJA0AgByAtLQAAQQF2Ii8gByAvSRshCyABKgIAITADQCAQQRt2IQZBBSENAkADQCACIAZBAXRqLgEAIgZBf0oNASAQIA10IhBBICAGQQdxIhFrdiAGQQN1ayEGIA0gCGohCCARIQ0MAAsACyAGQQh2Ig0gCGohCCAQIA10IRBBACESAkADQCASQQJGDQECQAJAIAZBD3EiEUEPRw0AIAggD2ohCCAQIA90IQ0CQANAIAhBAEgNASAMLQAAIAh0IA1yIQ0gDEEBaiEMIAhBeGohCAwACwALAkACQCAQIAl2IhBBD2oiEUGAAUoNACAQQQJ0QfzxG2oqAgAhMQwBC0MAAIBBQwAAgEMgEUGACEkiEBsgEUEDdCARIBAbIhBBP3EgEEEBdEHAAHEiDmuyIA4gEEHA////B3Fqs5UiMSAxQzmOYz6UQ6uqqj+SlEMAAIA/kiAOIBBqQQR2Qfz///8AcUHA8RtqKgIAlJQhMQsgMCAxlEEBQX8gDUF/ShuylCExDAELIDAgESAQQRt2QRBxckEQc0ECdEGA8RtqKgIAlCExIBAhDQsgCiAxOAIAIAZBBHYhBiAKQQRqIQogEkEBaiESIAggEUEARyIQaiEIIA0gEHQhEAwACwALAkADQCAIQQBIDQEgDC0AACAIdCAQciEQIAxBAWohDCAIQXhqIQgMAAsACyALQX9qIgsNAAsgLkF/aiENIAFBBGohASAtQQFqIS0gByAvayIHQQFIDQMgLkEASiEGIA0hLiAGDQAMAwsACwNAIAcgLS0AAEEBdiIPIAcgD0kbIRIgASoCACEwA0AgEEEbdiENQQUhBgJAA0AgAiANQQF0ai4BACINQX9KDQEgECAGdCIQQSAgDUEHcSIRa3YgDUEDdWshDSAGIAhqIQggESEGDAALAAsgDUEIdiIGIAhqIQggECAGdCEQQQAhBgJAA0AgBkECRg0BIAogMCANQQ9xIhEgEEEbdkEQcXJBEHNBAnRBgPEbaioCAJQ4AgAgDUEEdiENIApBBGohCiAGQQFqIQYgCCARQQBHIhFqIQggECARdCEQDAALAAsCQANAIAhBAEgNASAMLQAAIAh0IBByIRAgDEEBaiEMIAhBeGohCAwACwALIBJBf2oiEg0ACyAuQX9qIQ0gAUEEaiEBIC1BAWohLSAHIA9rIgdBAUgNAiAuQQBKIQYgDSEuIAZFDQIMAAsAC0GQ8BtB8O8bICgtABobIQJBASAHayEGA0ACQCACIBBBHHZqLQAAIg1BCHENACACIA1BA3ZqIBBBBHRBICANQQNxa3ZqLQAAIQ0LAkAgDCAqa0EDdCANQQdxIhIgCGoiCGpBaGogKUoNAAJAAkAgBkF/aiIGRQ0AIAEhEQwBCyAtLQAAIgZBAkkNASABQQRqIREgBkEBdiEGIC1BAWohLSABKgIAITALIBAgEnQhEAJAIA1BgAFJDQAgCiAwjCAwIBBBAEgbOAIAIAhBAWohCCAQQQF0IRALAkAgDUHAAHFFDQAgCiAwjCAwIBBBAEgbOAIEIAhBAWohCCAQQQF0IRALAkACQCAGQX9qIgZFDQAgESEBDAELIC0tAAAiBkECSQ0BIBFBBGohASAGQQF2IQYgLUEBaiEtIBEqAgAhMAsCQCANQSBxRQ0AIAogMIwgMCAQQQBIGzgCCCAIQQFqIQggEEEBdCEQCwJAIA1BEHFFDQAgCiAwjCAwIBBBAEgbOAIMIAhBAWohCCAQQQF0IRALAkADQCAIQQBIDQEgDC0AACAIdCAQciEQIAxBAWohDCAIQXhqIQgMAAsACyAKQRBqIQoMAQsLIAUgKTYCiAcgJEEBaiEkDAQLIBQhDQwACwALIAJBAXQhAiASQQFqIRIgECANaiEQIAYgDWohBgwACwALAAsgBSgCiAdBB2pBA3YhDSAFKAKMByEIDAQLAkACQCAALQCLMCISQRBxRQ0AICcoAgAhESAnLQAOIQIgJy0ADSEPIAVBfzYCCCAFQn83AgAgAiAPaiEKQQAhBiAfIRACQANAIAYgCkYNASARIAZqLQAAIQ1BACEIAkADQCAIIA1PDQECQCAQIAhBAnRqIgwqAgBDAAAAAFwNACAIQQJqIQggDEEEaioCAEMAAAAAWw0BCwsgBSAGQQNwQQJ0aiAGNgIACyAGQQFqIQYgECANQQJ0aiEQDAALAAtBA0EBIAIbIQwCQCAPRQ0AIAUgBSgCACIIIAUoAgQiDSAIIA1KGyIIIAUoAggiDSAIIA1KGyIINgIIIAUgCDYCBCAFIAg2AgALIAogDGshBkEAIQgCQANAIAggDEYNAQJAAkAgBSAIQQJ0aigCACAIIAZqIg0gDGsiEEgNACAALQCJMEEcdEEfdUEDcSEQDAELIB4gEGotAAAhEAsgHiANaiAQOgAAIAhBAWohCAwACwALQ/MEtT9DAACAPyASQSBxIgIbITJBB0HAACAALQCJMEEIcSIPGyESICcvASRBAXEhDiAnKAIAIRFBACEGICUhDQNAIBEgBmoiCi0AACIQRQ0CAkACQCAGIAUgBkEDcEECdGooAgBMDQAgEiAeIAZqLQAAIghNDQACQAJAIA9FDQAgCEEDdCIIQdT1G2oqAgAhMCAIQdD1G2oqAgAhMwwBC0MAAIA/QwAAgD8gCEEBakEBdiAOdBDlSSIxIAhBAXEiCBshMCAxQwAAgD8gCBshMwsgMiAwlCExIDIgM5QhM0EAIQgDQCAIIBBGDQIgDSAIQQJ0aiIMIDEgDCoCACIwlDgCgBIgDCAzIDCUOAIAIAhBAWohCAwACwALIAJFDQAgDSAQEOZJCyAGQQFqIQYgDSAKLQAAQQJ0aiENDAALAAsgEkHgAXFB4ABHDQAgJUHABBDmSQtBACERAkADQCARICZGDQEgJy0ADCICQQBHQQF0IAAtAIkwIghBA3ZBAXEgCEEEdkEBcWpBA2wgAC0AijBBAnZBA3FqQQJGdCESAkACQCAnLQAODQBBHyEGDAELICcoAgAgJy0ADWohCiAlIBFBgBJsaiASQcgAbGoiDyEIIB0hDAJAA0AgCi0AACIQRQ0BIBBBAXQhBkEAIQ0CQANAIA0gEEYNASAMIAgqAgA4AgAgDCAIIBBBAnRqKgIAOAIEIAwgCCAGQQJ0aioCADgCCCAIQQRqIQggDUEBaiENIAxBDGohDAwACwALIApBA2ohCiAIIAZBAnRqIQgMAAsACyAPIB0gDCAdaxBLGiASQX9qIQYLICUgEUGAEmxqIgohDQJAA0BBACEIIAZBAUgNAQJAA0AgCEEIRg0BIAhBAnQiDCANakHIAGoiECAQKgIAIjAgDEGQ9htqKgIAIjGUIAxBsPYbaioCACIzIA1BESAIa0ECdGoiDCoCACIylJM4AgAgDCAwIDOUIDIgMZSSOAIAIAhBAWohCAwACwALIA1ByABqIQ0gBkF/aiEGDAALAAsgACARQYAJbGohDCAnLQALIQ0CQAJAIAINACAKIQgMAQsgCiAMQdD2GyASEOdJIAwgEkEkbGohDCAKIBJByABsaiEICwJAAkAgDUH/AXEiDUECRw0AQSAgEmshDQNAIA1BAUgNAiAFIAhByAAQSyEGIAhBEGogDEEQaikCADcCACAIQQhqIAxBCGopAgA3AgAgCCAMKQIANwIAIAYgCEEYaiAMQRhqIhAQ6EkgHCAIQTBqIBAQ6EkgGyAMIBAQ6EkgCEHIAGohCCAMQSRqIQwgDUF/aiENDAALAAsgCCAMIA1BA0ZByABsQdD2G2pBICASaxDnSQsgCkHIAGohDUEAIRACQANAQQEhCCAQQR9LDQECQANAIAhBEUsNASANIAhBAnRqIgwgDCoCAIw4AgAgCEECaiEIDAALAAsgDUGQAWohDSAQQQJqIRAMAAsACyAnQRxqIScgEUEBaiERDAALAAsgGiAlQRIgBCgCBCADIB0Q6UkgI0EBaiEjIAMgBCgCBCIUQYAJbGohAyATQQFqLQAAIQcMAAsACwJAIAMNACAHENZJIQgMBAtBACECAkACQAJAIBMtAAMiCEEGdiIMQX9qDgMAAQIBCyAIQQJ2QQxxQQRqIQIMAQtBICECCwJAAkAgB0EGcUEGRw0AQcyBHCEMQSAhCwwBCwJAIAdBCHENAEHPgRwhDEEeIQsMAQsgE0ECai0AACIIQQJ2QQNxIQ0CQCAHIAgQ40kgDEEDR3YiCEHAASAIGyIIQTdLDQBBDEEIIA1BAkYbIQtB5IEcIQwMAQtBHkEbIA1BAUcbQRsgCEHfAEsbIQtB2IEcIQwLIAUgCzoAgAYgBSACIAsgAiALSRsiEToAgQYgBUGCBmohDkEAIQhBACESQQAhEEHwgBwhBgNAAkAgCCALRw0AIAtBAXQhDyAFQcIGaiEJQQAhEiAHQQZxQQZGIRBBACEIAkADQAJAIAggD0cNACAFIQwgDiECDAILQQJBBiAOIAhqLQAAIg0bIQwCQCANRQ0AIBANACAFQfCFAWpBAhDkSSEMCyAJIAhqIAw6AAAgCEEBaiEIDAALAAsDQAJAAkAgEiAPRg0AAkACQCACLQAAIggNAEEAIQYMAQtBEyAJIBJqLQAAdkEEciEGCyACQQFqIQIgCEEDbEF6aiEKQwAAAAAhMEEEIQgDQCAIRQ0CAkAgCCAGcUUNACAKIAVB8IUBakEGEORJIg1BA20iEEF9bCANampBAnRB8IEcaioCAEGAgIABIBB2s5QhMAsgDCAwOAIAIAhBAXYhCCAMQQRqIQwMAAsACyARIAsgESALSxshCAJAA0AgESAIRg0BIA4gEUEBdGpBAWpBADoAACARQQFqIREMAAsAC0EAIS4gBUGAHmpBAEGAJBBIIS8gAEGAEmohICAFQaDDAGohKyAFQYAwaiEsQQAhLQJAA0AgLUEDRg0BQQAhCSAEKAIMQQFyIgtBACALQQBKGyEQIAUtAIAGIgFBAXQhDyAvIC5BAnRqIQdBwAQhAgJAA0AgCUEERg0BIAcgCSALbEECdGohDUEAIRICQANAIBIgD0YNAQJAIA4gEmotAAAiDEUNAAJAIAxBEEsNAEF/IAxBf2p0QQFqIQZBACEIA0AgCCAQRg0CIA0gCEECdGogBiAFQfCFAWogDBDkSWqyOAIAIAhBAWohCAwACwALIAVB8IUBakECIAxBb2p0IgggCEEDdmtBA2oQ5EkhDCAIQQF2IREgCEEBciEGQQAhCANAIAggEEYNASANIAhBAnRqIAwgDCAGbiIKIAZsIBFqa7I4AgAgCEEBaiEIIAohDAwACwALIBJBAWohEiANIAJBAnRqIQ1BEiACayECDAALAAsgCUEBaiEJDAALAAsCQCALQQJ0IC5qIi5BDEcNACAsIAUtAIEGIghByABsIgxqIC8gDGogASAIa0HIAGwQSxogBSAtQQJ0aiEQQQAhBiAvIQ0CQANAIAYgAUYNASAQKgIMITAgECoCACExQQAhCAJAA0AgCEEMRg0BIA0gCEECdGoiDCAxIAwqAgCUOAIAIAxBgBJqIgwgMCAMKgIAlDgCACAIQQFqIQgMAAsACyAQQRhqIRAgDUHIAGohDSAGQQFqIQYMAAsACyAgIC9BDCAUIAMgKxDpSUEAIS4gL0EAQYAkEEgaIAMgBCgCBCIUQYAGbGohAwsgLUEBaiEtIAUoAvSFASAFKAL4hQFMDQAMBgsAC0EBIQgMBgsgEkEBaiESDAALAAsCQCAIIBJHDQAgDC0AAEHwgBxqIQYgCCAMLQACaiESIAwtAAEhECAMQQNqIQwLIA4gCEEBdGoiCiAGIAVB8IUBaiAQEORJai0AACINOgAAAkAgCCARTw0AIAYgBUHwhQFqIBAQ5ElqLQAAIQ0LIApBAWogDUEAIAIbOgAAIAhBAWohCAwACwALQQAhCCAAQQA6AIgwDAILIAhBA3YiECANayIIQf8DIAhB/wNIGyEMAkAgCEEBSA0AIBcgGSAQQYF8aiANIAhB/wNLG2ogDBBLGgsgGCAVTiEIIAAgDDYCgDALIABBiTBqLQAAENZJIAhsIQgLIAVBgIYBaiQAIAgLGgBBgANBgAkgAEEOcUECRnYgAEEGcUEGRhsLdQECf0EAIQQCQCADRQ0AAkAgAygCCCIFRQ0AIAAgASADKAIAIAURBAAPCyADKAIEIgVFDQAgAygCDEUNACABIAMoAgAgBRECACIBRQ0AAkAgAEUNACABIAAgAhBLGiAAIAMoAgAgAygCDBEDAAsgASEECyAECykAIAAoApw0IAEgAiAAKAKUNBEEACECIAAgACkDyHwgAq18NwPIfCACC0EBAX4CQCAAKAKcNCABIAIgACgCmDQRBAANAEEADwsgAa0hAwJAIAJFDQAgACkDyHwgA3whAwsgACADNwPIfEEBCw4AIAAgAUEAENtJIAFRCyYBAX5CACEDAkAgAEUNACAAKAKUNEUNACAAIAEgAhDcSSEDCyADC7gBAgN/An4gAEHANGohA0IAIQYCQANAIAFQDQEgASAAKAK8NCIErSIHIAEgB1QbIgenIQUCQCACRQ0AIAIgBqcgACgCjDQiBGxBAXRqIAMgACgCuDQgACgCsDRsQQF0aiAFIARsQQF0EEsaIAAoArw0IQQLIAAgBCAFazYCvDQgACAAKQPAfCAHfDcDwHwgACAAKAK4NCAFajYCuDQgByAGfCEGIAEgB30iAVANASAAEN1JDQALCyAGCw0AIAAgAEHANGoQ0UkLTgEBf0EAIQICQCABEOFJRQ0AIAEtAAEgAC0AAXNBAUsNACABLQACIgEgAC0AAiIAc0EMcQ0AIABB/wFxQRBJIAFB/wFxQQ9LcyECCyACCzUAIAAQ1kkgACABEONJbEH9AGwgACABEOJJbiIBQfz//z9xIAEgAEEGcUEGRhsiACACIAAbCyoBAX9BACEBAkAgAC0AAkECcUUNAEEEQQEgAC0AAUEGcUEGRhshAQsgAQtXAQJ/QQAhAQJAIAAtAABB/wFHDQAgAC0AASICQQZxRQ0AIAJB8AFxQfABRyACQf4BcUHiAUdxDQAgAC0AAiIAQfABcUHwAUYNACAAQQxxQQxHIQELIAELJgAgAUEMcUGcxRtqKAIAIABBf3MiAEEDdkEBcXYgAEEEdkEBcXYLLgAgAEEBdkEDcUEPbCAAQQN2QQFxQS1saiABQfABcUEEdmpBocUbai0AAEEBdAuLAQEDfyAAIAAoAgQiAiABaiIDNgIEQQAhBAJAIAMgACgCCEoNAEH/ASACQQdxIgN2IAAoAgAgAkEDdWoiBC0AAHEhAiADIAFqIQBBACEBAkADQCAAQQlIDQEgAiAAQXhqIgB0IAFyIQEgBC0AASECIARBAWohBAwACwALIAJBCCAAa3YgAXIhBAsgBAtEAQF/A0AgACABQfgAIAFB+ABIGyICQQNxQQJ0QfDNG2oqAgBBgICAgAQgAkECdXazlJQhACABIAJrIgFBAEoNAAsgAAtiAgR/An1BACECIAFBACABQQBKGyEDIABBgBJqIQQCQANAIAIgA0YNASAAIAJBAnQiAWoiBSAFKgIAIgYgBCABaiIBKgIAIgeSOAIAIAEgBiAHkzgCACACQQFqIQIMAAsACwvdAwIGfwV9IwBB4ABrIgQkAEEAIQUgA0EAIANBAEobIQYCQANAIAUgBkYNASAEIAAqAgCMOAIwIAQgACoCRDgCAEEAIQMCQANAIANBBEYNASAEQTBqIANBA3RqIgcgACADQQR0aiIIQQRqKgIAIgogCEEIaioCACILkjgCBCAEQQggA0EBdCIJa0ECdGogCiALkzgCACAEQQcgCWtBAnRqIAhBEGoqAgAiCiAIQQxqKgIAIguTOAIAIAdBCGogCiALkow4AgAgA0EBaiEDDAALAAsgBEEwahDqSSAEEOpJIAQgBCoCBIw4AgQgBCAEKgIMjDgCDCAEIAQqAhSMOAIUIAQgBCoCHIw4AhxBACEIAkADQCAIQQlGDQEgASAIQQJ0IgNqIgcqAgAhCiAHIARBMGogA2oqAgAiCyADQeD3G2oqAgAiDJQgA0GE+BtqKgIAIg0gBCADaioCACIOlJM4AgAgACADaiAKIAIgA2oiAyoCAJQgA0EkaiIHKgIAIAsgDZQgDiAMlJIiC5STOAIAIABBESAIa0ECdGogCiAHKgIAlCALIAMqAgCUkjgCACAIQQFqIQgMAAsACyABQSRqIQEgAEHIAGohACAFQQFqIQUMAAsACyAEQeAAaiQAC94CAgN/B30jACEDIAAqAgwhBiAAKgIYIQcgA0EgayIEIAAqAjAiCCAAKgIkIgmSIgogACoCACILkzgCGCAEIAqMQwAAAD+UIAuTIgogByAGkkPXs10/lCILkzgCHCAEIAsgCpI4AhQgBCAAKgI8IgogByAGkyIGQwAAAD+UkyIHIAggCZND17NdP5QiCJM4AhAgBCAIIAeSOAIIIAQgBiAKkow4AgxBACEAAkADQCAAQQNGDQEgAiAAQQJ0IgNqIgUqAgAhBiAFIARBFGogA2oqAgAiByADQbD4G2oqAgAiCJQgA0G8+BtqKgIAIgkgBEEIaiADaioCACIKlJM4AgAgASADaiAGQQIgAGtBAnRBsPgbaioCACILlEEFIABrQQJ0IgNBsPgbaioCACIMIAcgCZQgCiAIlJIiB5STOAIAIAEgA2ogBiAMlCAHIAuUkjgCACAAQQFqIQAMAAsACwvTFAITfw59IwBBkAFrIgYkAEEAIQcgA0EAIANBAEobIQggAkEAIAJBAEobIQkgBkEgaiEKIAZB4ABqIQsgBkHAAGohDAJAA0AgByAIRg0BIAEgB0GAEmxqIQ1BACEOAkADQCAOIAlGDQEgDSAOQQJ0aiEPQQAhECAGIhEhEkEAIRMCQANAIBNBCEYNASASIA9BDyATa0HIAGxqKgIAIhkgDyATQcgAbGoiFCoCgAkiGpIiGyAUKgIAIhwgD0EfIBNrQcgAbGoqAgAiHZIiHpI4AgAgEiAZIBqTIBNBDGwiFEHQ+BtqKgIAlCIZIBwgHZMgFEHU+BtqKgIAlCIakjgCQCASIB4gG5MgFEHY+BtqKgIAIhuUOAIgIBIgGyAaIBmTlDgCYCASQQRqIRIgE0EBaiETDAALAAsCQANAIBBBBEYNASARIBEqAggiGiARKgIUIhuSIhwgESoCBCIdIBEqAhgiHpIiH5IiGSARKgIMIiAgESoCECIhkiIiIBEqAgAiIyARKgIcIiSSIiWSIiaSOAIAIBEgJiAZk0PzBDU/lDgCECARICUgIpMiGSAZIB8gHJOSQ/MENT+UIhyTQ3U9pz+UOAIYIBEgGSAckkPUiwo/lDgCCCARICMgJJMiGSAaIBuTIhogHSAekyIbkkPzBDU/lCIckiIdICAgIZMgGpIgGyAZkiIaQ6+vSz6UkyIbQxXvwz6UIBqSIhqTQ88GJECUOAIcIBEgHSAakkP3gQI/lDgCBCARIBkgHJMiGSAbIBpDr69LPpSTIhqSQ9dkZj+UOAIUIBEgGSAak0O98Rk/lDgCDCARQSBqIREgEEEBaiEQDAALAAtBACERAkADQCARQQdGDQEgDyAGIBFBAnQiE2oqAgA4AgAgDyAMIBNqKgIAIAsgE2oqAgAiGZIgCyARQQFqIhFBAnQiEmoqAgAiGpI4AkggDyAKIBNqKgIAIAogEmoqAgCSOAKQASAPIBogGSAMIBJqKgIAkpI4AtgBIA9BoAJqIQ8MAAsACyAPIAYqAhw4AgAgDyAGKgJcIAYqAnwiGZI4AkggBioCPCEaIA8gGTgC2AEgDyAaOAKQASAOQQFqIQ4MAAsACyAHQQFqIQcMAAsACyAFIABBgB4QSyEVIANBBXQhFiADQX9qIhdBwARsQQJ0IRhBACEFAkADQCAFIAJODQEgFSAFQQh0aiIHIAEgBUECdGoiDCoCgAk4AvAfIAcgDCAYaiIOKgKACTgC9B8gByAMKgIAOAL4HyAHIA4qAgA4AvwfIAcgDCoChAk4AvAhIAcgDioChAk4AvQhIAcgDCoCBDgC+CEgByAOKgIEOAL8ISAEIAUgFmxBAXRqIgkgF0EBdGoiDSADIAdB9AFqEOtJIA0gFkEBdCIRaiADIAdB9ANqEOtJIAkgAyAHQfABahDrSSAJIBFqIAMgB0HwA2oQ60kgB0GAHmohCEEOIQtBsPkbIQoCQANAIAtBAEgNASAIIAtBBHQiD2oiEiAMQR8gC2tByABsIhFqKgIAOAIAIBJBBGogDiARaioCADgCACASQQhqIAwgEUEEciIRaioCADgCACASQQxqIA4gEWoqAgA4AgAgEkGAAmogDCALQcgAbCIRQcwAaiITaioCADgCACASQYQCaiAOIBNqKgIAOAIAIBJBiH5qIAwgEUHIAGoiEWoqAgA4AgAgEkGMfmogDiARaioCADgCACAHIA9qIRMgCioCBCEZIAoqAgAhGkEAIRECQANAIBFBBEYNASAGIBFBAnQiD2ogEiAPaioCACIbIBqUIBkgEyAPaioCACIclJM4AgAgBkGAAWogD2ogGyAZlCAaIByUkjgCACARQQFqIREMAAsACyASQYBkaiEQIBJBgH5qIRQgCioCDCEZIAoqAgghGkEAIRECQANAIBFBBEYNASAGQYABaiARQQJ0Ig9qIhMgEyoCACAUIA9qKgIAIhsgGZQgGiAQIA9qKgIAIhyUkpI4AgAgBiAPaiIPIBwgGZQgGiAblJMgDyoCAJI4AgAgEUEBaiERDAALAAsgEkGAZmohECASQYB8aiEUIAoqAhQhGSAKKgIQIRpBACERAkADQCARQQRGDQEgBkGAAWogEUECdCIPaiITIBMqAgAgFCAPaioCACIbIBmUIBogECAPaioCACIclJKSOAIAIAYgD2oiDyAbIBqUIBkgHJSTIA8qAgCSOAIAIBFBAWohEQwACwALIBJBgGhqIRAgEkGAemohFCAKKgIcIRkgCioCGCEaQQAhEQJAA0AgEUEERg0BIAZBgAFqIBFBAnQiD2oiEyATKgIAIBQgD2oqAgAiGyAZlCAaIBAgD2oqAgAiHJSSkjgCACAGIA9qIg8gHCAZlCAaIBuUkyAPKgIAkjgCACARQQFqIREMAAsACyASQYBqaiEQIBJBgHhqIRQgCioCJCEZIAoqAiAhGkEAIRECQANAIBFBBEYNASAGQYABaiARQQJ0Ig9qIhMgEyoCACAUIA9qKgIAIhsgGZQgGiAQIA9qKgIAIhyUkpI4AgAgBiAPaiIPIBsgGpQgGSAclJMgDyoCAJI4AgAgEUEBaiERDAALAAsgEkGAbGohECASQYB2aiEUIAoqAiwhGSAKKgIoIRpBACERAkADQCARQQRGDQEgBkGAAWogEUECdCIPaiITIBMqAgAgFCAPaioCACIbIBmUIBogECAPaioCACIclJKSOAIAIAYgD2oiDyAcIBmUIBogG5STIA8qAgCSOAIAIBFBAWohEQwACwALIBJBgG5qIRAgEkGAdGohFCAKKgI0IRkgCioCMCEaQQAhEQJAA0AgEUEERg0BIAZBgAFqIBFBAnQiD2oiEyATKgIAIBQgD2oqAgAiGyAZlCAaIBAgD2oqAgAiHJSSkjgCACAGIA9qIg8gGyAalCAZIByUkyAPKgIAkjgCACARQQFqIREMAAsACyASQYBwaiEQIBJBgHJqIRIgCioCPCEZIAoqAjghGkEAIRECQANAIBFBBEYNASAGQYABaiARQQJ0Ig9qIhMgEyoCACASIA9qKgIAIhsgGZQgGiAQIA9qKgIAIhyUkpI4AgAgBiAPaiIPIBwgGZQgGiAblJMgDyoCAJI4AgAgEUEBaiERDAALAAsgDUEPIAtrIANsQQF0IhFqIAYqAgQQ7Ek7AQAgDSALQRFqIANsQQF0Ig9qIAYqAoQBEOxJOwEAIAkgEWogBioCABDsSTsBACAJIA9qIAYqAoABEOxJOwEAIA1BLyALayADbEEBdCIRaiAGKgIMEOxJOwEAIA0gC0ExaiADbEEBdCIPaiAGKgKMARDsSTsBACAJIBFqIAYqAggQ7Ek7AQAgCSAPaiAGKgKIARDsSTsBACALQX9qIQsgCkHAAGohCgwACwALIAVBAmohBQwACwALIBUgAkEIdGohEwJAAkAgA0EBRw0AQQAhEQNAIBFBvwdLDQIgACARQQJ0Ig9qIBMgD2oqAgA4AgAgEUECaiERDAALAAsgACATQYAeEEsaCyAGQZABaiQAC7QCAQ59IAAgACoCACIBIAAqAhgiApMiAyAAKgIQIgQgACoCICIFIAAqAggiBpOSIgeSOAIQIAAgAyAHQwAAAD+UkyIIIAAqAgQiAyAAKgIUIgeTIAAqAhwiCZND17NdP5QiCpI4AgQgACAEIAWTQ9TQMT6UIgsgASACQwAAAD+UkiIBIAYgBZJDfRtEP5QiApOSIgwgAyAHkkNcHHw/lCINIAAqAgxD17NdP5QiBZMgAyAJkkO7jSQ/lCIDkyIOkjgCDCAAIAwgDpM4AhQgACAIIAqTOAIcIAAgASAGIASSQ7KPcD+UIgSSIAuTIgYgByAJk0NEHa8+lCIHIAWTIA2TIgmSOAIgIAAgASAEkyACkiIEIAUgB5IgA5MiBZI4AhggACAEIAWTOAIIIAAgBiAJkzgCAAuVAgAgACACKgKADkMAj5JHlCACKgKAECACKgKADJNDAHESR5QgAioCgAogAioCgBKSQwBwzUWUIAIqAoAUIAIqAoAIk0MACKFFlCACKgKABiACKgKAFpJDAKD+RJQgAioCgBggAioCgASTQwCA5UOUIAIqAoACIAIqAoAakkMAAFVDlCACKgKAHCACKgIAk0MAAOhBlJKSkpKSkpIQ7Ek7AQAgACABQQV0aiACKgIIQwAAoMCUIAIqAogEQwAAEkOUIAIqAogIQwAANMKUIAIqAogMQwDcG8aUIAIqAogQQwATekeUIAIqAogUQwD8F0aUIAIqAogYQwDgw0SUIAIqAogcQwAA0EKUkpKSkpKSkhDsSTsBAAtiAQF/Qf//ASEBAkAgAEMA/f9GYA0AQYCAAiEBIABDAP//xl8NAAJAAkAgAEMAAAA/kiIAi0MAAABPXUUNACAAqCEBDAELQYCAgIB4IQELIAFBD3UgAWohAQsgAUEQdEEQdQsGACAAEF4LCAAgACABEGELBgAgABBgCycBAX8CQCAARQ0AIAFFDQAgASgCDCICRQ0AIAAgASgCACACEQMACwuzAgIEfwR+IwBBgIABayIEJAACQCADRQ0AIANCADcDAAtBfiEFAkAgAEUNACACUA0AQX0hBQJAAkACQAJAIAAoAkhBfmoOBAEEBAAECwJAIAAoAuQ0DQBBbyEFQgAhCAwDCyAAQdAAaiEGQgAhCANAIAIgCFgNAiAGIAIgCH0iCUGAwAAgACgC3DRurSIKIAkgClQbIAQQ3EkiC1ANAiALIAAoAtw0IgWtfiEKIAEgCKcgBWxBAnRqIQdCACEJAkADQCAJIApRDQEgByAJpyIFQQJ0aiAEIAVBAXRqLgEAskMAAAA4lDgCACAJQgF8IQkMAAsACyALIAh8IQgMAAsACyAAQdAAaiACIAEQ20khCAtBb0EAIAhQGyEFCyADRQ0AIAMgCDcDAAsgBEGAgAFqJAAgBQsaAAJAIAANAEF+DwsgAEHQAGogARDTSUF/aguiAQACQCABRQ0AIAFBADYCAAsCQCACRQ0AIAJBADYCAAsCQCADRQ0AIANBADYCAAsCQCAERQ0AIAVFDQAgBEEAIAUQSBoLAkAgAA0AQX0PCwJAIAFFDQAgASAAKAJINgIACwJAIAJFDQAgAiAAKALcNDYCAAsCQCADRQ0AIAMgACgC4DQ2AgALAkAgBA0AQQAPC0EAIAQgBSAAKALcNBCvDkEACy0BAX9BfiECAkAgAUUNACABQgA3AwAgAEUNACABIAApA5B9NwMAQQAhAgsgAgtTAQJ/IwBBEGsiAiQAQX4hAwJAIAFFDQAgAUIANwMAIABFDQBBACEDIABB0ABqQQAgAkEIahDPSSEAIAEgAikDCEIAIAAbNwMACyACQRBqJAAgAwsLACABIAIgABCWSQsPACAAIAEgAkEBRhCXSUULRgECfwJAIAAoAvB8IAAoAvR8IgNrIgQgAiAEIAJJGyICRQ0AIAEgACgC7HwgA2ogAhBLGiAAIAAoAvR8IAJqNgL0fAsgAgt/AQJ/AkACQCACQQFHDQAgACgC9HwhAgJAAkAgAUEBSA0AIAIgAWogACgC8HwiA0shBAwBC0EAIQMgAkEAIAFrSSEECyAAIAIgAyACayABIAQbajYC9HwMAQsCQCAAKALwfCICIAFJDQAgACABNgL0fAwBCyAAIAI2AvR8C0EBC38AAkAgBA0AQX4PCyAEQQRqQQBBnAMQSBogBCACNgJMIAQgATYCSCAEIAA2AkQgBEJ/NwMgIARCfzcDECAEQZjLHTYCACAEIAQ2AigCQCADDQAgBEH7BDYCjAMgBEH8BDYCiAMgBEH9BDYChANBAA8LIARBgANqIANBOGoQmQ4LEwBBvMkdQQAgACABIAIgAxD+SQsTAEHQyR1BACAAIAEgAiADEP5JCxMAQeTJHUEAIAAgASACIAMQ/kkLgAEBAn8jAEEQayIGJAACQAJAIAAoAgwiBw0AQWMhAwwBCyAGIAQ1AkxCIIYgBDUCAIQ3AwggASACIAMgBkEIaiAFQYADaiAGQQRqIAcRBgAiAw0AIAYoAgQhAyAFIAA2AjwgBSADNgI4IAUgBCgCWDYCQEEAIQMLIAZBEGokACADC4UEAgd/AX4jAEHwAmsiAiQAAkACQAJAIAEoAjggAkGYAmogAkGUAmogAkGQAmogAkEQakH+ARD8MCIDDQBBfiEDIAAoAgQiBEH+AUsNACACKAKUAiIFQf4BSw0AIAAoAgAhAyACKAKYAiEGIAEgBCAFIAQbIgQ2AmQgASADIAYgAxsiAzYCYCABIAAoAggiByACKAKQAiIIIAcbIgc2AmggAkIANwLEAiACIAc2ArACIAIgCDYCrAIgAiAENgKoAiACIAU2AqQCIAIgAzYCoAIgAiAGNgKcAiACIAJBEGo2ArQCIAIgACgCDDYCuAIgAiAAKAIQNgLAAiAAKAIUIQMgAkEANgLMAiACIAM2ArwCIAJB2AJqIABBIGopAgA3AgAgAkHgAmogAEEoaikCADcCACACQegCaiAAQTBqKQIANwIAIAIgACkCGDcC0AIgAkGcAmogAUGAA2oiBCABQfAAaiIAEKFIIgMNACAAQgEgAkEIahCQSEUNASABQYAgIAIoApgCQQJ0QZCaG2ooAgAgAigClAJsIgNurSIJNwPoAgJAIAkgA61+IglCIIinDQACQCABKAKEAyIDDQAgAUEANgLgAgwBCyABIAmnIAEoAoADIAMRAgAiAzYC4AIgAw0CCyAAIAQQoEhBfCEDCyABELEODAELQQAhAwsgAkHwAmokACADC3UBA38CQCADRQ0AIANBADYCAAtBbyEEAkAgACgClAMiBSAAKAKYAyIGRg0AAkAgBSAGayIEIAIgBCACSRsiAkUNACABIAAoApADIAZqIAIQSxogACAAKAKYAyACajYCmAMLQQAhBCADRQ0AIAMgAjYCAAsgBAvmAQIBfwF+QWchAwJAIAFC/////w9VDQACQAJAAkACQCACQX9qDgIAAQILIAAoApgDIQMCQCABQgFTDQAgACADIAAoApQDIgIgA2utIAEgA60gAXwgAq1WG6dqNgKYAwwDCyAAIANCACADrX0gASADQQAgAadrSRunajYCmANBAA8LAkAgASABQj+HIgSFIAR9IgEgACgClAMiA61YDQAgAEEANgKYA0EADwsgACADIAGnazYCmAMMAQsCQCAAKAKUAyIDIAGnIgJJDQAgACACNgKYAwwBCyAAIAM2ApgDC0EAIQMLIAMLDwAgASAANQKYAzcDAEEACw8AQbzJHUEAIAAgARCGSgsPAEHQyR1BACAAIAEQhkoLDwBB5MkdQQAgACABEIZKC4cBAQJ/IwBBEGsiBCQAAkACQCAAKAIAIgUNAEFjIQEMAQsgBCACNQJMQiCGIAI1AgCENwMIIAFBvQhBvghBvwggAyAEQQhqIANBgANqIARBBGogBRETACIBDQAgBCgCBCEBIAMgADYCPCADIAE2AjggAyACKAJYNgJAQQAhAQsgBEEQaiQAIAELEgAgACABIAIgAyAAKAJEEQcACxAAIAAgASACIAAoAkgRIAALHAEBfwJAIAAoAkwiAg0AQWMPCyAAIAEgAhECAAuJAQECfwJAQdD9ACAGEK0OIggNAEF8DwsgBSAIEMlJQX4hCQJAAkAgAUUNACACRQ0AIAggBDYCRCAIIAM2AkAgCCACNgI8IAggATYCOCAIQdAAakHACEHBCCAIIAYQzEkNAUF2IQkLIAggBhDoCiAJDwsgCCAFQQRqKAIAIAYQzkkgByAINgIAQQALjwEBAn8jAEEQayIFJAACQAJAQdD9ACADEK0OIgYNAEF8IQMMAQsgAiAGEMlJAkACQCAFQQxqIAEQlkgNACAGQdAAakHCCEHDCCAFKAIMIAMQzEkNASAFKAIMEJVJCyAGIAMQ6ApBdiEDDAELIAYgAkEEaigCACADEM5JIAQgBjYCAEEAIQMLIAVBEGokACADC5EBAQJ/IwBBEGsiBSQAAkACQEHQ/QAgAxCtDiIGDQBBfCEDDAELIAIgBhDJSQJAAkAgBUEMaiABIAMQmEgNACAGQdAAakHCCEHDCCAFKAIMIAMQzEkNASAFKAIMEJVJCyAGIAMQ6ApBdiEDDAELIAYgAkEEaigCACADEM5JIAQgBjYCAEEAIQMLIAVBEGokACADC4EBAQJ/AkBB0P0AIAQQrQ4iBg0AQXwPCyADIAYQyUkgBkHQAGpBAEH4/AAQSCEHAkACQCABRQ0AIAJFDQAgBiACNgLAfSAGIAE2Arx9IAdBxAhBxQggByAEEM1JDQELIAYgBBDoCkF2DwsgBiADQQRqKAIAIAQQzkkgBSAGNgIAQQALVAEBfwJAIAFFDQACQCABKALkNEHCCEcNACABKALsNCIDRQ0AIAMQlUkgAUEANgLsNAsgASgCtH0gAUHwNGoQ8EkgASgCzH0gAhDoCgsgASACEOgKC3wBAX8CQEHQACAGEK0OIggNAEF8DwsgBSAIEJxJQX4hBQJAAkAgAUUNACACRQ0AIAggBDYCRCAIIAM2AkAgCCACNgI8IAggATYCOCAIQcYIQccIIAggBhCfSSIBNgJMIAENAUF2IQULIAggBhDoCiAFDwsgByAINgIAQQALiQEBAn8jAEEQayIFJAACQAJAQdAAIAMQrQ4iBg0AQXwhBgwBCyACIAYQnEkCQAJAIAVBDGogARCWSA0AQcgIQckIIAUoAgwgAxCfSSICDQEgBSgCDBCVSQsgBkEANgJMIAYgAxDoCkF2IQYMAQsgBiACNgJMIAQgBjYCAEEAIQYLIAVBEGokACAGC4sBAQJ/IwBBEGsiBSQAAkACQEHQACADEK0OIgYNAEF8IQMMAQsgAiAGEJxJAkACQCAFQQxqIAEgAxCYSA0AQcgIQckIIAUoAgwgAxCfSSICDQEgBSgCDBCVSQsgBkEANgJMIAYgAxDoCkF2IQMMAQsgBiACNgJMIAQgBjYCAEEAIQMLIAVBEGokACADC9EBAQJ/IwBBEGsiBiQAAkACQEHQACAEEK0OIgcNAEF8IQMMAQsgAyAHEJxJIAZBADYCDCAGIAI2AgggBiABNgIEAkACQAJAQcoIQcsIIAZBBGogBBCfSSIDRQ0AIAMgBikCBDcCoAEgA0GoAWogBkEMaigCADYCACADQaABaiEEIAMoAihBAUcNASADKAK0ASAENgIIDAILIAdBADYCTCAHIAQQ6ApBdiEDDAILIAMgBDYCxAELIAcgAzYCTCAFIAc2AgBBACEDCyAGQRBqJAAgAwtxAQJ/AkAgAUUNACABKAJMIgNFDQACQCADKAK8AUHICEcNACADKALEARCVSQsCQCADKAIoQQFHDQAgAygCtAEiBCgCAEHICEcNACAEKAIIEJVJCyADKAIUIgRFDQAgAyADKAIIIAQRAwALIAEgAhDoCguIAQEBfwJAQZgDIAYQrQ4iCA0AQXwPCyAFIAgQ9UhBfiEFAkACQCABRQ0AIAJFDQAgCCAENgJEIAggAzYCQCAIIAI2AjwgCCABNgI4QXYhBSAIQdAAaiIBQcwIQc0IIAggBhD5SEUNACABEP1IDQELIAggBhDoCiAFDwsgCBD4SCAHIAg2AgBBAAt2AQJ/IwBBEGsiBSQAAkACQEGYAyADEK0OIgYNAEF8IQMMAQsgAiAGEPVIAkACQCAFQQxqIAEQlkgNACAGQdAAaiAFKAIMIAMQkkkNAQsgBiADEOgKQXYhAwwBCyAGEPhIIAQgBjYCAEEAIQMLIAVBEGokACADC3gBAn8jAEEQayIFJAACQAJAQZgDIAMQrQ4iBg0AQXwhAwwBCyACIAYQ9UgCQAJAIAVBDGogASADEJhIDQAgBkHQAGogBSgCDCADEJJJDQELIAYgAxDoCkF2IQMMAQsgBhD4SCAEIAY2AgBBACEDCyAFQRBqJAAgAwt8AQF/AkBBmAMgBBCtDiIGDQBBfA8LIAMgBhD1SAJAAkAgAUUNACACRQ0AIAZB0ABqIgNBzghBzwggAyAEEPlIRQ0AIAZBADYC7AEgBiACNgLoASAGIAE2AuQBIAMQ/UgNAQsgBiAEEOgKQXYPCyAGEPhIIAUgBjYCAEEAC48FAgN/AX4jAEEQayIDJAACQCABRQ0AAkACQCABKAJUIgRFDQACQEEBQQcgASgCcCIFQQNGG0EBIAUbIAEoArABcSIFRQ0AIANCADcDCCABKAJcIANBCGogBSAEEQQAGgsgASgCWCIERQ0BIAEoAtgBDQECQAJAAkAgASgCcA4EAAQBAgQLAkAgASgCXEEEQQAgBBEEAEUNACADIAEpA7ABIgYgBkIBg3wgASgC3AEgASgC4AEQm0mtfEIkfCIGQv////8PIAZC/////w9UGz4CCCABKAJcIANBCGpBBCABKAJUEQQAGgsgASgCXCABKAK4AUF8akEAIAEoAlgRBABFDQMgAyABKQOwASIGp0F/IAZCgICAgBBUGzYCCCABKAJcIANBCGpBBCABKAJUEQQAGgwDCwJAIAEoAlxBEEEAIAQRBABFDQAgAyABKQOwASIGIAZCB4N8QugAfDcDCCABKAJcIANBCGpBCCABKAJUEQQAGgsgASgCXCABKAK4AUF4akEAIAEoAlgRBABFDQIgAyABKQOwAUIYfDcDCCABKAJcIANBCGpBCCABKAJUEQQAGgwCCwJAIAEoAlxBFEEAIAQRBABFDQAgAyABKQOwASIGIAZCAYN8IAEoAtwBIAEoAuABEJtJrXxCyAB8IgZC/////w8gBkL/////D1QbNwMIIAEoAlwgA0EIakEIIAEoAlQRBAAaCyABKAJcQRxBACABKAJYEQQARQ0BIAMgASkDsAE3AwggASgCXCADQQhqQQggASgCVBEEABoMAQsgASgC3AEgAUHgAGoQg0kLAkAgASgCUEGzCEYNACABKAJUQdAIRw0BCyABKAJcEJVJCyABIAIQ6AogA0EQaiQAC4gCAQN/IwBBEGsiBCQAIAAoApQDIQUCQAJAIAAoApADIgZFDQAgBEEANgIMAkAgA0UNACADQQA2AgALQX4hACAFRQ0BIAFFDQECQCAGKAIMIgANAEFjIQAMAgsgBiAFIAEgAiAEQQxqIAARDAAhACAEKAIMIQUCQCADRQ0AIAMgBTYCAAsgAEFvIAAgBXIbIAAgAhshAAwBCwJAIANFDQAgA0EANgIAC0F+IQAgBUUNACABRQ0AIAEgAiAFEJZJIQECQCADRQ0AIAMgATYCAAtBACEAIAEgAkYNAAJAIAENAEFvIQAgBRCaSg0BCyAFEJtKQQJ0QciDHGooAgAhAAsgBEEQaiQAIAALOwECfwJAAkAgACgCTEF/Sg0AIAAoAgAhAQwBCyAAEEYhAiAAKAIAIQEgAkUNACAAEEcLIAFBBHZBAXELOwECfwJAAkAgACgCTEF/Sg0AIAAoAgAhAQwBCyAAEEYhAiAAKAIAIQEgAkUNACAAEEcLIAFBBXZBAXELDQAgACABIAIgAxCdDgsJACAAIAEQnw4LEQAgACABIAIgAyAEIAUQoQ4LLAEBf0F+IQICQCABRQ0AIAFCADcDACAARQ0AIAEgACkDWDcDAEEAIQILIAILCQAgACABEKQOC0sBAX8jAEEgayIDJAACQAJAIAINAEF+IQEMAQsgAkEANgIAIAAgASADQQhqEKZKIgENACACIAMoAgg2AgBBACEBCyADQSBqJAAgAQv8BAEEfyMAQSBrIgQkAAJAAkAgA0UNACADQQBBgAIQSCEDIAAgASAEQQhqEKZKIgUNASADIAI2AvgBAkAgAkUNACAEKAIIIgVFDQAgAkEAIAUQSBoLIAMgADYCACADIAEoAgA2AgQgASgCBCEFIANCfzcDMCADQgA3AyggAyAFNgIkIAMgBCgCGCIGNgIIIAMgBCgCHDYCDCADIANBwABqIAIgBCgCDCIFaiAFQX9GGzYCECADIANBqAFqIAIgBCgCECIFaiAFQX9GGzYCFEEAIQUCQCAEKAIUIgdBf0YNACADIAAoAogEIgVB//8DIAVB//8DSRtB4AMgBRs7ARwgAiAHaiEFCyADIAU2AhhBACEFAkADQAJAIAUgBkkNAEEAIQYDQCAGIAMoAgxPDQMgAygCFCIAIAZBKGxqIQUgASgCFCAGQQJ0aigCACECAkAgAEUNACAFQQBBKBBIGgsgAkUNBCAFQYCAgPwDNgIYIAVBATYCCCAFIAI6AAUgBSAGOgAEIAUgAzYCACAGQQFqIQYMAAsACyADKAIQIgAgBUE0bGohAiABKAIQIAVBAnRqKAIAIQYCQCAARQ0AIAJBAEE0EEgaCyAGRQ0CIAIgBjoAMCAFQQFqIQUgAygCCCEGDAALAAsCQCADKAIYRQ0AQQAhBUEAIQYDQAJAIAYgAygCCEkNAANAIAUgAygCDE8NAyADIAUQp0ogAzMBHEEFIAMoAhQgBUEobGotAAUQj0ggBUEBaiEFDAALAAsgAyAGEKhKIAMzARxBBSADKAIQIAZBNGxqLQAwEI9IIAZBAWohBgwACwALQQAhBQwBC0F+IQULIARBIGokACAFC2QBA38CQCAARQ0AIAAoAgwgAU0NACAAKAIUIAFBKGwiAWpBFGoQ6woCQCAAKAIUIgIgAWoiAygCJCIERQ0AIAQoAhAgAy0ABkE0bGogAxCkSiAAKAIUIQILIAIgAWpBADYCFAsLcwECfyABQQA2AhAgAEEsahDrCiABKAIgIQIgASgCHCEDAkAgAkUNACACIAM2AhwLAkAgA0UNACADIAI2AiALIABBADYCLCABQQA2AhwgAUIANwIgIAFBADoABgNAIAAoAigNAAsgASgCDCEAA0AgAA0ACwsCAAu7BAEHfwJAIAJFDQAgAkIANwAAIAJBEGpCADcAACACQQhqQgA3AAALQX4hAwJAIAFFDQAgASgCACIERQ0AIAQoAgBFDQACQAJAIAQtAAgiBUH/AUcNACABKAIIIQYMAQsCQCABKAIIIgdB/wFHDQAgBSEGDAELIAUhBiAHIAVHDQELAkACQCAELQAJIghB/wFHDQAgASgCDCEHDAELAkAgASgCDCIJQf8BRw0AIAghBwwBCyAIIQcgCSAIRw0BCyAGQf4BSw0AIAdB/gFLDQACQCAGRQ0AIAEoAhBFDQELAkAgB0UNACABKAIURQ0BCwJAIAQtAAxBAXFFDQAgBUEBSw0BIAhBAUcNASABKAIQKAIAIAEoAhQoAgBHDQELIAJBf0EAIAZBA0kiAxs2AgRBACAGQTRsQQdqQfj/AXEgAxshBQJAAkACQCAHQQNJDQAgAiAFNgIIIAUgB0EobGohBQwBCyACQX82AgggBg0AIAdBAUcNACACQX82AgwMAQsgACgCiAQiA0H//wMgA0H//wNJG0ECdEGADyADGyEAQQAhA0EAIQQCQANAIAQgBkYNASAAIAEoAhAgBEECdGooAgBsIANqIQMgBEEBaiEEDAALAAtBACEEAkADQCAEIAdGDQEgACABKAIUIARBAnRqKAIAbCADaiEDIARBAWohBAwACwALIAIgBTYCDCAFIANBB2pBeHFqIQULIAIgBzYCFCACIAY2AhAgAiAFQQdqQXhxNgIAQQAhAwsgAwuCAQEDfyAAKAIIIQIgACgCGCEDQQAhBAN/AkAgBCACRw0AQQAhBAJAA0AgBCABRg0BIAMgACgCFCAEQShsai0ABSAALwEcbEECdGohAyAEQQFqIQQMAAsACyADDwsgAyAAKAIQIARBNGxqLQAwIAAvARxsQQJ0aiEDIARBAWohBAwACwtEAQJ/IAAoAhghAkEAIQMCQANAIAMgAUYNASACIAAoAhAgA0E0bGotADAgAC8BHGxBAnRqIQIgA0EBaiEDDAALAAsgAgszAQF/IwBBEGsiBSQAIAAgAygCACAENQIAIAVBCGoQqkoaIAQgBSkDCD4CACAFQRBqJAALsAMCCH8DfiMAQRBrIgQkAAJAIANFDQAgA0IANwMACwJAAkAgAA0AQX4hBQwBC0EAIQYCQCAAKAKMAkUNACAAKAKUAi0ABSEGCyAAQYACaiEHIAZBAnQhCEIAIQwCQANAQQAhBSACIAxYDQEgAiAMfSINQv////8PIA1C/////w9UGyEOIAEgCCAMp2xqIQkCQCAAKAKEBCIKRQ0AIAkgACgCgAQgCiAOpyIFIAogBUkbIgogBmxBAnQiBRBLGiAAKAKABCIJIAkgBWogCCAAKAKEBCAKa2wQiQEaIAAgACgChAQgCms2AoQEIAwgCq18IQwMAQsCQCAAKAKIBCIKRQ0AIA0gCq0iDloNACAAKAKABCEJCyAAQQE2AowEIAdBACAJIA6nIARBDGogACkDuAIQq0ohCyAAQQA2AowEIAQoAgwhCgJAAkAgCSAAKAKABEcNACAAIAo2AoQEDAELIAwgCq18IQwLAkAgC0UNACALIQUMAgsgCg0ACwsCQCACIAxYDQAgASAIIAynbGogAiAMfUEFIAYQj0gLIANFDQAgAyAMNwMACyAEQRBqJAAgBQvGDQIQfwJ+IwBBkBBrIgYkACAGQQA2AowQQX4hBwJAIARFDQAgBEEANgIAIABFDQAgACgCDCABTQ0AQQAhByAAKAIkQQFGDQAgACkDKCAFVg0AIAApAzAgA60gBXwiFlgNAEEAIQggACkDMCIXIBZ9p0EAIBcgFlQbIQcgACgCDCEJAkAgFiAAKQMoIhd9p0EAIBcgBVYbIgpFDQAgCq0hFgJAIAkgAU0NACAAKAIUIAFBKGxqLQAFIQgLIAIgFkEFIAgQj0hBACEIAkAgACgCDCIJIAFNDQAgACgCFCABQShsai0ABSEICyADIAprIQMgAiAIIApsQQJ0aiECCyADIAdqIQMCQAJAIAAoAggiCw0AIAlBAUcNACAGIAM2AghBACEIIAZBADYCDCAGIAI2AhACQCAAKAIEIgctAAxBAXFFDQAgA60hBQJAIAENACAAKAIULQAFIQgLIAIgBUEFIAgQj0ggACgCBCEHCwJAIAcoAgAiB0UNACAAQQAgBkEMaiAGQRBqIAZBCGogBxEKACAGKAIIIQMLIAYgAzYCjBBBACEHDAELAkAgACgCBCIILQAMQQFxRQ0AIAYgAjYCkAggBiACNgIQIAAgACgCECACIAMgBkGMEGogBRCsSiEHIAYoAowQIQMgBw0BIAYgAzYCCCAGIAM2AgxBACEHAkAgAw0AQQAhAwwCCyAAKAIEKAIAIghFDQEgACAGQZAIaiAGQQxqIAZBEGogBkEIaiAIEQoADAELIAAvARwhByAGIAM2AgQgAyAHIAMgB0kbIQwCQCAIKAIEIghFDQAgACAMIAZBBGogCBEEABogAC8BHCEHIAYoAgQhAwsCQCADIAdNDQAgBiAHNgIECwJAAkAgACgCFCABQShsIg1qLQAIQQFxRQ0AIABBADsBHiAGQRBqIAFBAnRqIQ5BACEHA0AgBkEANgIIQQAhAwJAA0AgAyAJRg0BIAAoAhQgA0EobGoiCCAIKAIIQX5xNgIIIAZBEGogA0ECdGogACADEKdKNgIAIANBAWohAwwACwALQQAhAwJAAkACQCAALwEgIg8NAEEAIQ8DQCADIAtGDQIgBkGQCGogA0ECdGoiECAAIAMQqEoiBzYCACAAIAAoAhAgA0E0bCIRaiAHIAYoAgQgBiAFEKxKIQcCQCAGKAIEIhJBACAGKAIAIAcbIghNDQAgECgCACETQQAhEEEAIRQCQCAAKAIIIANNIhUNACAAKAIQIBFqLQAwIRQLIBMgFCAIbEECdGohFCASIAhrrSEWAkAgFQ0AIAAoAhAgEWotADAhEAsgFCAWQQUgEBCPSAsgDyAIIA8gCEsbIQ8gA0EBaiEDDAALAAsDQCADIAtGDQIgACADEKhKIRBBACEIAkAgACgCCCADTQ0AIAAoAhAgA0E0bGotADAhCAsgBkGQCGogA0ECdGogECAIIAAvASJsQQJ0ajYCACADQQFqIQMMAAsACyAAIA87ASAgAEEAOwEiCyAALwEeIQMCQCACRQ0AQQAhCAJAIAAoAgwgAU0NACAAKAIUIA1qLQAFIQgLIA4gAiADIAhsQQJ0ajYCAAsgBiAMIANrNgIIAkACQAJAIAAoAgQiECgCDCIIQQJxRQ0AIAYgBigCBCIDNgIMAkACQCAIQQRxRQ0AQQAhEiAALwEiIA9B//8DcXJFDQELQQEhEgsCQCADQf//A3EgD0H//wNxTQ0AIAAgAzsBICADIQ8LIBINASAQKAIAIgNFDQIgAEEAIAZBDGogBkEQaiAGQQhqIAMRCgAMAgsgBiAPQf//A3EiAzYCDAsCQAJAIAMgCEEIcXJFDQAgECgCACIIRQ0BIAAgBkGQCGogBkEMaiAGQRBqIAZBCGogCBEKACAALwEgIQ8gBigCDCEDDAELQQAhAyAGQQA2AggLIAAgDyADazsBICAAIAAvASIgA2o7ASILIAAgAC8BHiAGKAIIIghqIgM7AR4gDCADQf//A3FGDQIgCCAGKAIMcg0ADAILAAsCQCACDQBBACEHDAELIAAgARCnSiEIIAAzAR4hBUEAIQdBACEDAkAgACgCDCABTQ0AIAAoAhQgAUEobGotAAUhAwsgAiAIIAVBBSADEJJICyAGIAAvAR42AowQIAAoAhQgAUEobGoiAyADKAIIQQFyNgIIIAYoAowQIQMLIAAoAhQhCEEAIQ8CQCAAKAIMIAFNDQAgCCABQShsai0ABSEPCyACIA8gA2ytIAggAUEobGooAhi+EN9IIAAgACkDOCAGNQKMEHw3AzggBCAGKAKMECAKajYCAAsgBkGQEGokACAHC9gEAhB/A34jAEEQayIGJABBACEHIARBADYCACABLQAwIQgCQCABIAEQrUoiCUUNACAIrSEWIAhBAnQhCiAJIQtBACEMQQAhBwJAA0AgC0UNASAGQQA2AgwgCygCACENAkACQCACRQ0AIA0oAgQoAgxBEHEhDkEAIQ0gByEPAkADQAJAIAMgDUsNACAPIQcMAgsgBkEANgIIIAMgDWshECACIAogDWxqIRECQAJAIAwNACALKAIAIAstAAQgESAQIAZBCGogDa0gBXwQq0ohBwwBCyAPIQcgCiAALwEcIhJsIhMgACgCACgCkAQiDygCACIUakEEaiIVIA8oAgRLDQAgDyAVNgIAIA8gFGoiD0EIaiIUIBM2AgACQCALKAIAIAstAAQgD0EMaiIPIBAgEiAQIBJJGyAGQQhqIA2tIAV8EKtKIgdBAEcgB0FvR3ENACAODQAgCEUNACAWIAY1Agh+IRdCACEYA0AgGCAXUQ0BIBEgGKdBAnQiDWoiECAPIA1qKgIAIBAqAgCSOAIAIBhCAXwhGAwACwALIAAoAgAoApAEIg0gDSgCACAUKAIAa0F8ajYCAAsgBiAGKAIMIAYoAggiEGoiDTYCDCAHDQFBACEPIBANAAsLAkAgCyAJRw0AIAMgDU0NACACIAogDWxqIAMgDWutQQUgCBCPSAsgDEEBIA4bIQwMAQsgDSALLQAEQQAgAyAGQQxqIAUQq0oaCyABIAsQrUohCwwACwALAkAgAkUNACAMDQAgAiADrUEFIAgQj0gLIAQgAzYCAAsgBkEQaiQAIAcLYAEBfwJAIAENAEEADwsgACAAKAIoQQFqNgIoIAEhAgJAA0AgAigCHCICRQ0BIAIoAhBFDQALIAIgAigCDEEBajYCDAsgASABKAIMQX9qNgIMIAAgACgCKEF/ajYCKCACC8EBAQJ/AkAgAQ0AQX4PC0F9IQMCQCAAIAFGDQAgACgCDEUNACABKAIIIAJNDQAgACgCFCIALQAFIAEoAhAgAkE0bGoiBC0AMEcNACAAQRRqEOsKAkAgACgCJEUNACAEIAAQpEoLIAAgAjoABiAAIAE2AiQgBEEsaiICEOsKIAAgBCgCHCIBNgIcIAAgBDYCICAEIAA2AhwCQCABRQ0AIAEgADYCIAtBACEDIAJBADYCACAAQQA2AhQgAEEBNgIQCyADC4MFAQV/IwBBsAFrIgIkAAJAIAFFDQAgAUIANwAAIAFBEGpBADYAACABQQhqQgA3AAALQX4hAwJAIABFDQAgACgCACIERQ0AIAFBADYCAAJAIAAoAggiBQ0AQQAhBSAEKAKMAkUNACAEKAKUAi0ABSEFCyACIAU2AhQCQCAAKAIMIgMNAAJAIAQoAowCDQBBACEDDAELIAQoApQCLQAFIQMLIAIgAzYCECAAKAIEIQMgAkL/gYCA8B83AowBIAIgA0U2AogBIAJBxMsdQbTLHSADGzYChAEgAiACQRBqNgKYASACIAJBFGo2ApQBIAQgAkGEAWogAkGcAWoQoUoiAw0AIAFBADYCBCABIAIoApwBQQdqQXhxIgQ2AgAgAkKAgICAgICA+D83A3ggAkIANwNwIAJCgYCAgBA3A2ggAiAFNgJkIAJBBTYCYCACQeAAaiACQZwBahCvSCIDDQAgASAENgIIIAEgAigCnAFBB2pBeHEgBGoiBjYCACACKAKUASgCACEDIAIoApgBKAIAIQQgAkLNmbPygy03AlggAkKAgID8g4CAwD83AlAgAkLan6SGBDcCSCACQoCAgPyj+8PkwAA3AkAgAkKAgID88///v/8ANwI4IAJCgICAgICAgMA/NwIwIAJCADcCKCACQoCAgIAQNwIgIAIgBDYCHCACIAM2AhgCQCADQQJHDQAgAiACQQ5qNgIgCyACQRhqIAJBoAFqEOZIIgMNACACKAKgASEDIAEgBjYCDCABIANBB2pBeHEgBmoiBDYCAEEAIQMgACgCFEUNAEF+IQMgBUUNACABIAQ2AhAgASAEIAVBA3RqNgIAQQAhAwsgAkGwAWokACADCxQAIAAQsUogACABIAIgAyAEELJKC/wBAgR9AX8CQAJAAkACQCAAKgKABSIBIAAoAvwEIgW+IgJcDQAgACoChAUgACoClAQiA1sNAyAAQYQFaiEFDAELIAAgBTYCgAUCQCAAKgKEBSIEIAAqApQEIgNcDQAgAiEBIAQhAwwCCyAAQYQFaiEFIAIhAQsgBSADOAIACyAAKAKEArMhBEMAAAAAIQICQCAAKAKAAiIFRQ0AIAUoAqAEsyECCyAEIAKVIAGUIAOUIgNDAAAAAF8NAAJAAkAgA0MAJHRJlCIDQwAAgE9dIANDAAAAAGBxRQ0AIAOpIQUMAQtBACEFCyAFRQ0AIABBuAJqIAVBwIQ9ELdIGgsLzSADKH8Efhp9IwBBsCFrIgUkACAAKAKkAyEGIAAoAqADIQcgBCgCACEIIAIoAgAhCQJAIAApA6AFIi1Cf1ENACAAKQOoBSEuIAAoApgFIQogACgCnAUhCyAKviExAkACQCAuQn9SDQBCACEuDAELAkACQCAAKAKAAiIKDQBCACEvDAELIAopA7gCIS8LIC4gL30hLgsCQCAxQwAAAABdRQ0AAkAgACkDsAIiL0IAWQ0AQwAAgD8hMQwBCwJAIC9CAFINACAAKgKcAiExDAELAkAgLyAAKQOoAiIwVA0AIAAqAqACITEMAQsgACoCnAIiMSAvp7MgMKezlSAAKgKgAiAxk5SSITELIABCfzcDoAUgACALNgKgAiAAIDE4ApwCIAAgLUL/////DyAtQv////8PVBs3A6gCIABCACAuQv////8HIC5C/////wdTG303A7ACC0EBIQwCQCAAKgKcAkMAAIA/XA0AIAAqAqACQwAAgD9cIQwLIABBkAJqIQ0gACgCiAUhDiAAKgLUBEMAAAAAXCAGQQFHcSEPIABBhARqIRAgAEGcBGohESAAQbwDaiESIABBuANqIRMgAEH0A2ohFCAAQeQDaiEVIABBuAJqIRYgAEHYBGohFyAGQQJ0IRggB0ECdCEZIAAoAogCIRogACgCjAUhG0EAIRxBACEdAkADQCAIIBxNDQEgCCAcayIKIApBgAggB24iCyAKIAtJGyAHIAZGIgobIQsgAygCACIeIBggHGxqIh8gBUHAAGogChshCiAJIB1rISAgASgCACAZIB1saiEhAkACQAJAAkACQAJAIA5FDQAgICALICAgC0kbISIgDEUNAiANIAogISAirRDkSCAiISMMAQsgBSAgrTcDoCEgBSALrTcDkCEgFiAhIAVBoCFqIAogBUGQIWoQtUgaIAUoAqAhISMgBSkDkCEiLachIiAMRQ0AIA0gCiAKIC1C/////w+DEORICyAKISEgGg0BDAILICIhIyAaRQ0CCyAXIAogISAirRDjSAsgCiEhCwJAAkAgGw0AAkACQCAAKAKQBSIgQf8BRg0AIAAoAoACIiRFDQAgICAkKAKkBEkNAQsgBUGQIWogFRDlSEEAISACQCAAKAKAAiIkDQBBACEkDAELICQoAqQEIgtBAUYNACAFKgKYISEyIAUqApQhITMgBSoCkCEhNCAkQagEaiElQ///f38hMUEAIQpBACEgAkADQCAKIAtPDQECQCAlIApB5ABsaiImKAJYRQ0AIAVBoCFqICZBKGoQ5UggBSoCqCEgMpMiNSA1lCAFKgKgISA0kyI1IDWUIAUqAqQhIDOTIjUgNZSSkiI1IDEgMSA1XiILGyExIAogICALGyEgICQoAqQEIQsLIApBAWohCgwACwALIAAoAoACISQLICQgIEHkAGxqIgpBqARqISQgCkGsBGooAgAhJiAirSEtIAAoAqgDISACQCAAKAKsAw0AAkACQCAkKAJYRQ0AAkAgACgCoAMiCiAAKAKkAyILRw0AIB8gISAtQQUgChCSSAwCCyAfICYgCyAhICAgCiAtQQBBABDoSAwBCyAfIC1BBSAAKAKkAxCPSAsgAEGAgID8AzYClAQMAgsgACgCoAMhJyAAKAKkAyELIAAoAsADIQogACgCxAMhJSAAKALIAyEoIAAoAtgDISkgBUGgIWogJEHIAGoQ5UggBSoCqCEhNiAFKgKkISE3IAUqAqAhITggJCoCGCE5AkACQCAAKAKwA0EBRw0AIAVBkCFqIBUQ5UggBUGEIWogFBDlSAwBCyAFQQA2ApghIAVCADcCkCEgBUGAgID8ezYCjCEgBUIANwKEIQJAIAAoArADQQFHDQAgBUGQIWogFRDlSCAFQYQhaiAUEOVIDAELIAVBoCFqIBUQ5UggBSoCqCEhOiAFKgKkISE7IAUqAqAhITwgBUGgIWogFBDlSCAFKgKoISE9IAUqAqQhIT4gBSoCoCEhPyAFQaAhaiAkQShqEOVIIAUqAqghIUAgBSoCpCEhQSAFKgKgISFCIAVBoCFqICRBOGoQ5UhDAAAAACEzQwAAAAAhMUMAAAAAITVDAAAAACEyAkAgBSoCqCEiNCA0lCAFKgKgISJDIEOUIAUqAqQhIkQgRJSSkiJFQwAAAABbDQAgNEMAAIA/IEWRlSIxlCEyIEQgMZQhNSBDIDGUITELIDWMIUQgMYwhRSAyjCFGQwAAAAAhNEMAAAAAIUMCQCAxICQqACAiR5QgJCoAHCJIIDWUkyJJIEmUIDUgJCoAJCJKlCBHIDKUkyJHIEeUIDIgSJQgSiAxlJMiSCBIlJKSIkpDAAAAAFsNACBJQwAAgD8gSpGVIjOUIUMgSCAzlCE0IEcgM5QhMwsgJCgCCCEqIAUgRiA9lCBFID+UID4gRJSSkjgCjCEgBSBGIDqUIEUgPJQgOyBElJKSIEYgQJQgRSBClCBBIESUkpKTOAKYISAFQwAAgD8gMyBDIEOUIDMgM5QgNCA0lJKSQwAAAABbIisbIjMgNZQgMUMAAAAAIDQgKxsiNJSTIkQgPZQgNCAylCA1QwAAAAAgQyArGyJDlJMiNSA/lCA+IEMgMZQgMiAzlJMiMZSSkjgCiCEgBSBDjCBDICpBAUYiKxsiMiA9lCAzjCAzICsbIjMgP5QgPiA0jCA0ICsbIjSUkpI4AoQhIAUgRCA6lCA1IDyUIDsgMZSSkiBEIECUIDUgQpQgQSAxlJKSkzgClCEgBSAyIDqUIDMgPJQgOyA0lJKSIDIgQJQgMyBClCBBIDSUkpKTOAKQIQsgCr4hMiAlviEzICi+ITQgBSoCmCEiMSAxlCAFKgKQISIxIDGUIAUqApQhIjEgMZSSkpEhNUMAAIA/ITECQAJAAkACQCAAKAKsA0F/ag4DAAECAwsgMiAzYA0CIDIgNCAyIDUgMyA1IDNdGyIxIDEgMl0bIDKTlCAykpUhMQwCCyAyIDNgDQFDAACAPyAyIDUgMyA1IDNdGyIxIDEgMl0bIDKTIDSUIDMgMpOVkyExDAELIDIgM2ANACAyIDUgMyA1IDNdGyIxIDEgMl0bIDKVuyA0jLsQf7YhMQsCQAJAIDVDbxKDOl4iJQ0AIAVBADYCqCEgBUIANwKgIUMAAAAAITUMAQsgBUGgIWpBCGoiCiAFQZAhakEIaigCADYCACAKQwAAgD8gNZUiMiAKKgIAlDgCACAFIAUpApAhNwOgISAFIDIgBSoCoCGUOAKgISAFIDIgBSoCpCGUOAKkISAAKALMAyEoIAAoAtADISsgACgC1AMhKiAFQfggakEIaiIsIAoqAgCMOAIAIAVBMGpBCGogBUGEIWpBCGooAgA2AgAgBUEgakEIaiAsKAIANgIAIAUgBSoCpCGMOAL8ICAFIAUqAqAhjDgC+CAgBSAFKQKEITcDMCAFIAUpAvggNwMgIDEgBUEwaiAFQSBqICi+ICu+ICq+EOlIlCExICQqAgwiMkPaD8lAXUUNACAFQewgakEIaiIoQwAAgD9DAACAvyAkKAIIGzgCACAFQgA3AuwgICQqAhQhMyAkKgIQITQgBUEQakEIaiAoKAIANgIAIAVBCGogCigCADYCACAFQgA3AxAgBSAFKQOgITcDACAxIAVBEGogBSAyIDQgMxDpSJQhMQsgEygCACEoIDEhMgJAIDEgEigCAL5dDQAgEigCAL4hMgsgEyEKAkACQCAyICi+XQ0AIBIhCiAxIBIoAgC+XQ0BCyAKKAIAviExCyApviE6QQAhCgJAA0AgCiALRg0BIAAoArwEIApBAnRqIDE4AgAgCkEBaiEKDAALAAsCQAJAICQoAlhFDQAgHyAmIAsgISAgICcgLUEAQQAQ6EgMAQsgHyAtQQUgACgCpAMQj0gLAkAgJUUNAEMAAIA/IDWVIjEgBSoCmCGUITMgMSAFKgKUIZQhNCAxIAUqApAhlCFDQQAhCgNAIAogC0YNAQJAAkAgJiALIAoQqEgiIBCpSA0AQwAAgD8hMQwBCwJAAkAgIEEzTQ0AQwAAAAAhMUMAAIC/ITVDAAAAACEyDAELICBBDGwiIEG4mhtqKgIAITUgIEG0mhtqKgIAITEgIEGwmhtqKgIAITILIDMgNZQgQyAylCA0IDGUkpJDAACAv5IgACgC3AO+lEMAAIA/kiExCyAAKAK8BCAKQQJ0aiIgICAqAgAgMUMAAIA/kkMAAAA/lCIxIAAqApgEIjUgMSA1XhuUOAIAIApBAWohCgwACwALQQAhCgJAIAAoArwEIgtFDQACQANAIAogESgCAE8NASARIAsgCkECdGoqAgAgChCzDiAKQQFqIQoMAAsAC0EAIQoCQCAAKAKkBEF/Rw0AIAAoAqAEIQoLIAAgCjYCpAQLIBEgHyAfIC0Q40hDAACAPyExAkAgOkMAAAAAXkUNACAFQeAgaiAkQShqEOVIIAVB1CBqIBUQ5UggBSoC6CAhNSAFKgLcICEyIAUqAuAgITMgBSoC1CAhNCAFKgLkICFDIAUqAtggITsgBUHIIGogEBDlSCA1IDKTIjUgNZQgMyA0kyIyIDKUIEMgO5MiMyAzlJKSkSI0QwAAAABbDQAgOSA6IDUgNpQgMiA4lCA3IDOUkpIgNJUiQyA5IDqVIjEgQyAxXRuUkyA5IDogNSAFKgLQIJQgMiAFKgLIIJQgMyAFKgLMIJSSkiA0lSI1IDEgNSAxXRuUk5UhMQsgACAxOAKUBAwBCyAAKAL4BL4hMQJAIAcgBkcNACAiIAdsrSEtAkAgGkUNACAfICEgLUEFIAcQkkgMAgsgHyAhIC0gMRCRSAwBCyAfQQAgBiAhQQAgByAirUEBIAAoAowCEOhIIBoNACAfICIgBmytIDEQ30gLAkAgD0UNACAeRQ0AICKtIS0CQAJAAkACQCAAKALMBCIKQX9qDgIBAAILIAAqAtQEITEgACgCyAQhCgJAIAAoAtAEDQAgMUMAAAAAWw0EIApBBUcNAwJAIDFDAAAAAF5FDQBDAACAPyAxkyExQgAhLgNAIC4gLVENBiAfIC6nQQN0aiIKIDEgCioCAJQ4AgAgLkIBfCEuDAALAAsgMUMAAIA/kiExQgAhLgNAIC4gLVENBSAfIC6nQQN0akEEaiIKIDEgCioCAJQ4AgAgLkIBfCEuDAALAAsgMUMAAAAAWw0DIApBBUcNAgJAIDFDAAAAAF5FDQBDAACAPyAxkyEyQgAhLgNAIC4gLVENBSAfIC6nQQN0aiIKIDIgCioCACI1lDgCACAKQQRqIgogNSAxlCAKKgIAkjgCACAuQgF8IS4MAAsACyAxQwAAgD+SITVDAAAAACAxkyEyQgAhLgNAIC4gLVENBCAfIC6nQQN0aiIKQQRqIgsgNSALKgIAIjGUOAIAIAogMSAylCAKKgIAkjgCACAuQgF8IS4MAAsACyAfIB8gLSAAKALIBEEBEJJIDAILIB8gHyAtIAAoAsgEIAoQkkgMAQsgHyAfIC0gCkECEJJICyAiIBxqIRwgIyAdaiEdICINAAsLIAIgHTYCACAEIBw2AgAgBUGwIWokAAsqAQF+IAAQsUogAiAAIAGtELRKIgNC/////w8gA0L/////D1QbPgIAQQALRgEBfyMAQRBrIgIkACACQgA3AwgCQCAAKAKIBQ0AIABBuAJqIAEgAkEIahC7SCEAQgAgAikDCCAAGyEBCyACQRBqJAAgAQusBAIIfwF+IwBBsKABayIFJAAgBCgCACEGAkACQCAARQ0AIAAoArgFRQ0AIAAoAsgFRQ0AIABBATYCJEEAIQcMAQsCQCAAKQPABSINQn9RDQAgACgCuAUgDRDtSBogAEJ/NwPABSAAIA03AzgLIAAQsUpBACEHIAAoArgFIAVBrKABaiAFQaigAWpBAEEAQQAQ/DANAEGAICAFKAKsoAFBAnRBkJobaigCACAFKAKooAFsbiEIQQAhBwNAIAYgB00NASAAIAYgB2siCa0QtEohDQJAIAAoArgFIAVBoIABaiAIIA2nIgogCCAKSRutIAVBmIABahDqSCIKQW9HDQAgAEEBNgLIBSAAKALMBSILRQ0AIAAoAtAFIAAgCxEDAAsgAygCACELAkACQCAAKAIMDQBBACEMDAELIAAoAhQtAAUhDAsgBSAFKQOYgAEiDT4ClIABIAUgCTYCkIABIAUgCyAHIAxsQQJ0ajYCiIABAkACQCAFKAKsoAEiCUEFRw0AIAUgBUGggAFqNgKMgAEgACAFQYyAAWogBUGUgAFqIAVBiIABaiAFQZCAAWoQskoMAQsgBUEFIAVBoIABaiAJIA0gBSgCqKABQQAQiEggBSAFNgKMgAEgACAFQYyAAWogBUGUgAFqIAVBiIABaiAFQZCAAWoQskoLIAUoApCAASAHaiEHIAoNASAAKAK4BUUNACAAKALIBUUNAAsLIAQgBzYCACAFQbCgAWokAAtNACAAIAEQrg4CQCAAKAKIAkUNACAAQdgEaiABEOJICyAAQaADaiABEOdIIABBuAJqIAEQs0gCQCAALQCwBUUNACAAKAK0BSABEOgKCwuIAgEBfyMAQRBrIgYkAAJAAkAgAEUNAAJAAkAgAUEEcUUNACACIAMgBCAFIAARBwAhBAwBCyACIAMgBCAAEQQAIQQLIAQNAQtBzAQQpgEiBCACQawEEEsiAEEANgK0BCAAQgA3AqwEAkAgAigCsAQiASACKAKsBCIDRg0AIABBrARqIAEgA2siAUECdRC4SiAAIAAoArAEIAMgARCJASABajYCsAQLIAAgAikCuAQ3ArgEIABByARqIAJByARqKAIANgIAIABBwARqIAJBwARqKQIANwIAIAYgACgCuAQ2AgggBiAGQQhqNgIMIABBACAGQQxqEI4KIABBADYCqAQLIAZBEGokACAECzYBAX8CQCABQYCAgIAESQ0AEKwBAAsgACABEMhKIgI2AgQgACACNgIAIAAgAiABQQJ0ajYCCAtNAAJAIAAgAUECdGooAgAiARC6SkUNACAAIAJBAnRqKAIAIgEQukpFDQAgACgCGCIBELpKRQ0AIAAoAiAhACADIAAgABC6ShshAQsgAQs6AgF/AX1BACEBAkAgAEHw4YP8B0YNACAAQY+evPwHRg0AIABBqtWq/QdGDQAgAL4iAiACXCEBCyABCzoAAkAgACABQQJ0aigCACIBELpKRQ0AIAAoAhwiARC6SkUNACAAKAIgIQAgAiAAIAAQukobIQELIAELVAEBfyAAQdAAaiEAIAFBAnRBpIocaigCACEDAkACQCABQX5xQQJHDQAgAEEEIANBj568/AcQuUohAQwBCyAAIANBj568/AcQu0ohAQsgASACEJIKC1QBAX8gAEHQAGohACABQQJ0QbSKHGooAgAhAwJAAkAgAUF+cUECRw0AIABBBSADQY+evPwHELlKIQEMAQsgACADQY+evPwHELtKIQELIAEgAhCSCgtVAQF/IABB0ABqIQAgAUECdEGkihxqKAIAIQICQAJAIAFBfnFBAkcNACAAQQQgAkGAgID+BxC5SiEBDAELIAAgAkGAgID+BxC7SiEBCyABELpKQQFzC1UBAX8gAEHQAGohACABQQJ0QbSKHGooAgAhAgJAAkAgAUF+cUECRw0AIABBBSACQYCAgP4HELlKIQEMAQsgACACQYCAgP4HELtKIQELIAEQukpBAXMLUwEBfyAAQSxqIQAgAUECdEGkihxqKAIAIQMCQAJAIAFBfnFBAkcNACAAQQQgA0GPnrz8BxC5SiEBDAELIAAgA0GPnrz8BxC7SiEBCyABIAIQwUoLJAEBfUMAAAAAIQICQCAAQarVqv0HRg0AIAAgARCSCiECCyACC1MBAX8gAEEsaiEAIAFBAnRBtIocaigCACEDAkACQCABQX5xQQJHDQAgAEEFIANBj568/AcQuUohAQwBCyAAIANBj568/AcQu0ohAQsgASACEMFKC1EAAkACQAJAIAFBfnFBAkcNACAAKAK8ASIBELpKDQEMAgsgACgCwAEiARC6SkUNAQsgACgCxAEhAEGPnrz8ByAAIAAQukobIQELIAEgAhCSCgs9AQF/IwBBEGsiAyQAAkAgAQ0AIAMgAjYCACAAIAMgAyADIAMQpSQgACAALQAEQYABcjoABAsgA0EQaiQACzgAAkAgAkGAgICABEkNABCsAQALIAEgAGsiAUEBdSIAIAIgACACSxtB/////wMgAUH8////B0kbC08AIAAgAzYCEEEAIQMgAEEANgIMAkAgAUUNACABEMhKIQMLIAAgAzYCACAAIAMgAkECdGoiAjYCCCAAIAMgAUECdGo2AgwgACACNgIEIAALQgECfyAAKAIIIQEgACgCBCECAkADQCABIAJGDQEgACABQXxqIgE2AggMAAsACwJAIAAoAgAiAUUNACABEKQBCyAACxwAAkAgAEGAgICABEkNABCoBwALIABBAnQQpgELMwACQCAAIAEQvkpFDQAgACABIAIQvEoPCwJAIAAgASACEL1KIgIgAlwNACACjCECCyACCwkAIAAgARDMSgspAAJAAkAgAUECRw0AQQMhAQJAIABBfmoOAgIAAQtBAg8LIAAhAQsgAQsUAEF/EOskdEF/cyABdCAAcSABdQtDAQF/AkACQCACQX5xQQJHDQAgASgCPCIDELpKRQ0BCyABIAJBAnRBpIocaigCAEECdGpBLGooAgAhAwsgACADEKkkC0MBAX8CQAJAIAJBfnFBAkcNACABKAJAIgMQukpFDQELIAEgAkECdEG0ihxqKAIAQQJ0akEsaigCACEDCyAAIAMQqSQLGwAgACgCGEEAENBKIgAgAUEBIAFBAUobIAAbCwkAIAAgARDRSgsUAEF/EOkkdEF/cyABdCAAcSABdQuTAQEDfyABKAIEIQIgACgCACEDIAAoAgQhBAJAA0AgBCADRg0BIAJBfGoiAiAEQXxqIgQoAgA2AgAMAAsACyABIAI2AgQgACgCACEEIAAgAjYCACABIAQ2AgQgACgCBCEEIAAgASgCCDYCBCABIAQ2AgggACgCCCEEIAAgASgCDDYCCCABIAQ2AgwgASABKAIENgIACz0BAX0CQCAAKAKoBA0AQwAAAAAPCwJAIAAqAiAiASABWw0AIAAqAhwiAUMAAAAAIAFDAAAAAF4bIQELIAELVwECfQJAIAAoAqgEDQBDAAAAAA8LAkAgACoCJCIBIAFbDQBDAACAPyEBIAAoArgELQAIQQFxDQBDAAAAACEBIAAqAhwiAkMAAAAAXUUNACACjCEBCyABCzoBAX9BACEBAkAgACgCGEEQENZKQQJGDQBBASEBIAAQ00pDAAAAAFwNACAAENRKQwAAAABcIQELIAELCQAgACABENdKCxQAQX8Q5yR0QX9zIAF0IABxIAF1C3oCAn8BfSMAQRBrIgIkACAAQZgBaiEAIAFBAnRBpIocaigCACEDAkACQCABQX5xQQJHDQAgAEEEIANBj568/AcQuUohAQwBCyAAIANBj568/AcQu0ohAQsgAkEIaiABEKkkIAIqAghDAAAAABCVASEEIAJBEGokACAEC3oCAn8BfSMAQRBrIgIkACAAQZgBaiEAIAFBAnRBtIocaigCACEDAkACQCABQX5xQQJHDQAgAEEFIANBj568/AcQuUohAQwBCyAAIANBj568/AcQu0ohAQsgAkEIaiABEKkkIAIqAghDAAAAABCVASEEIAJBEGokACAEC2QBAX8gAEH0AGohACABQQJ0QaSKHGooAgAhAwJAAkAgAUF+cUECRw0AIABBBCADQY+evPwHELlKIQEMAQsgACADQY+evPwHELtKIQELIAEgAhCSCiICQwAAAAAgAkMAAAAAYBsLZAEBfyAAQfQAaiEAIAFBAnRBtIocaigCACEDAkACQCABQX5xQQJHDQAgAEEFIANBj568/AcQuUohAQwBCyAAIANBj568/AcQu0ohAQsgASACEJIKIgJDAAAAACACQwAAAABgGwsTACAAIAEgAhDaSiAAIAEQ2EqSCxMAIAAgASACENtKIAAgARDZSpILKwEBfwJAIAAoAgAiAUUNACAAIAE2AgQgARCkASAAQQA2AgggAEIANwIACws5AAJAIAAgAWANAAJAIAAgAFsNACABIAFcDQELAkAgASAAXkUNACABDwsgASAAIAAgAFwbIQALIAALJgACQAJAIAJBBUYNACACDQELQbDMHSADIAQQuAEPCyADIAQQ4UoLDQBByM0dIAAgARC4AQslAQF/QQAhAwJAIAEgAGtBAnUgAk0NACAAIAEgAhDjSiEDCyADCyEAAkAgASAAa0ECdSACSw0AEKwBAAsgACACQQJ0aigCAAsUAEF/EKskdEF/cyABdCAAcSABdQsJACAAQQ0Q5EoLCQAgAEEQENdKCwkAIABBFhDoSgsUAEF/EOYkdEF/cyABdCAAcSABdQu7AgICfAF/AkACQCAAIAGiIgQgBJ2hIASm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QQFqIQQgBkEIRw0ACyAAIAMgASAFIAIQp08aDwsgAEHxlhFBABD3LQALIAMgBikDADcDACADQQhqIAZBCGopAwA3AwAPCyAAIAUgAhCfTAALIAAgBSACEJ5MAAtgACABIAIoAgxBfyAAQf8BcXRBf3NxQQV0aiEAA38CQAJAAkAgACgCHCIBQQ9xQQZHDQAgACgCECACRg0BCyABQRBPDQFBsL8cIQALIAAPCyAAIAFBAXRBYHFqIQAMAAsLlgEBAX8CQCAALQABIgJBBHFFDQAgACACQfsBcToAASAAIAAoAhAiAigCHDYCQCACIAA2AhwLAkACQCABQQFIDQAgACgCDCIBQbC/HCABIAAoAggiAEkbIQEMAQsgACgCCCIAIAFBBHRqIQELIABBcGohACAAIAEoAgAgABCXSyIBKQMANwMAIABBCGogAUEIaikDADcDAAu4AQICfwF8QbC/HCECAkACQAJAAkAgASgCDA4HAwEBAAEBAgELAkACQCABKwMAIgSZRAAAAAAAAOBBY0UNACAEqiEDDAELQYCAgIB4IQMLIAQgA7diDQAgACADEJhLDwsgACABEKJLIQADQAJAIABBEGogARCjS0UNACAADwsgACgCHCIDQRBJDQIgACADQQF0QWBxaiEADAALAAsgAEEGai0AACAAQRhqKAIAIAEoAgAQlUshAgsgAguQAQICfwF8AkACQCABQX9qIgIgACgCCE8NACAAKAIUIAJBBHRqIQIMAQtBsL8cIQIgAEEYaigCACIDQZCkHEYNACAAQQZqLQAAIAMgAbciBBDPTSEAA0ACQCAAKAIcIgFBD3FBA0cNACAAKwMQIARiDQAgAA8LIAFBEEkNASAAIAFBAXRBYHFqIQAMAAsACyACC4gBAQJ/IABBICAALQAEEIVLIQMgACgCEC0AFCEEIANBBzoAACADIARBA3E6AAEgAyAALQAEOgACIANBADYCFCADQf8BOgADIANCADcCBCADQQxqQgA3AgAgA0GQpBw2AhgCQCABQQFIDQAgACADIAEQ000LAkAgAkEBSA0AIAAgAyACENRNCyADC4EGAgZ/AXwjAEEQayIEJAAgAEEQaiEFQQAhBgJAAkACQAJAAkADQCAGQeQARg0BAkACQCABKAIMIgdBB0cNAAJAIAEoAgAiCCACEJdLIgkoAgwNACAIKAIQ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DCICRQ0AAkAgASgCECIDKAIoIAMoAiRJDQAgARDBLQsgASgCCCIDQXBqIQQCQCAAKAIAIgUgACgCBEcNACAEIAEgAhC8SzYCACADQXxqQQY2AgAPCyAEIAEgAkEUaiIAIAUgAGsQkEs2AgAgA0F8akEGNgIADwsgASAAQRBqIgIgACgCACACaxCoEgv+AQEGfyAAKAIQIgIoAgAgAigCCEF/aiABQRRqIgMgASgCECIEEJ9NIgVxIgZBAnRqIQcCQAJAA0AgBygCACIHRQ0BAkAgBygCECAERw0AIAdBFGogAyAEEKkHDQAgAi0AFEEDcSAHLQABIgRBC3FzQQNHDQMgByAEQQNzOgABIAcPCyAHQQhqIQcMAAsACyABIAU2AgwgAyAEakEAOgAAIAFBgIACOwEEIAEgAigCACAGQQJ0aiIHKAIANgIIIAcgATYCACACIAIoAgRBAWoiBDYCBAJAIAQgAigCCCIHTQ0AIAdB/////wNKDQAgACAHQQF0EMdMCyABIQcLIAcLLAAgAUEANgIMIAEgADYCCCABIAFBkARqNgIEIAEgAUEQajYCACABIAIQuksLigEBBn8jAEEQayIBJAACQCAAKAIIIgJBfyABQQxqEMInIgNFDQACQCABKAIMIgQgACgCBCAAKAIAIgVrIgZNDQAgACAEIAZrQX4QuEsaIAAoAgAhBSABKAIMIQQLIAUgAyAEEEsaIAAgACgCACABKAIMajYCACACIAIoAghBcGo2AggLIAFBEGokAAuPCwIIfwd+IwBB0ABrIgIkACABvSIKQv////////8HgyELIApCP4inIQMCQAJAIApCNIinQf8PcSIEQf8PRw0AAkACQCALQgBSDQAgACADakEDaiEEIANBAXNBlbERaigAACEDDAELIABBA2ohBEHuwrkDIQMLIAAgAzYAAAwBCyAAQS06AAAgACADaiEFAkAgC0IAUg0AIAQNACAFQTA6AAAgBUEBaiEEDAELIAtCgICAgICAgAiEIAsgBBshCwJAAkBBACAEQc13akHOdyAEGyIEayIAQTRLDQAgC0J/IACtIgqGQn+Fg0IAUg0AIAsgCoghCkEAIQYMAQsgAkGkAkHAgHhBACAEQc53RyALQoCAgICAgIAIUXEiAxsgBEGEohNsakEUdSIGayIAQQ9xIgdBA3RBgJ4caikDACIK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IAFBDGoQ0y0hAgJAIABBAhDGKCIDrUICfCABNQIMWA0AIABBw4gRQQAQsigACyAAIAIgA2ovAAC4ELooIAFBEGokAEEBC10BA38jAEEQayIBJAAgAUEANgIMIABBASABQQxqENMtIQICQCAAQQIQxigiA61CBHwgATUCDFgNACAAQcOIEUEAELIoAAsgACACIANqKAAAtxC6KCABQRBqJABBAQtdAQN/IwBBEGsiASQAIAFBADYCDCAAQQEgAUEMahDTLSECAkAgAEECEMYoIgOtQgR8IAE1AgxYDQAgAEHDiBFBABCyKAALIAAgAiADaigAALgQuiggAUEQaiQAQQELXQEDfyMAQRBrIgEkACABQQA2AgwgAEEBIAFBDGoQ0y0hAgJAIABBAhDGKCIDrUIEfCABNQIMWA0AIABBw4gRQQAQsigACyAAIAIgA2oqAAC7ELooIAFBEGokAEEBC1wBA38jAEEQayIBJAAgAUEANgIMIABBASABQQxqENMtIQICQCAAQQIQxigiA61CCHwgATUCDFgNACAAQcOIEUEAELIoAAsgACACIANqKwAAELooIAFBEGokAEEBC2ABBH8jAEEQayIBJAAgAUEANgIMIABBASABQQxqENMtIQIgAEECEMYoIQMgAEEDEL8oIQQCQCADIAEoAgxJDQAgAEHDiBFBABCyKAALIAIgA2ogBDoAACABQRBqJABBAAtgAQR/IwBBEGsiASQAIAFBADYCDCAAQQEgAUEMahDTLSECIABBAhDGKCEDIABBAxC/KCEEAkAgAyABKAIMSQ0AIABBw4gRQQAQsigACyACIANqIAQ6AAAgAUEQaiQAQQALZAEEfyMAQRBrIgEkACABQQA2AgwgAEEBIAFBDGoQ0y0hAiAAQQIQxighAyAAQQMQvyghBAJAIAOtQgJ8IAE1AgxYDQAgAEHDiBFBABCyKAALIAIgA2ogBDsAACABQRBqJABBAAtkAQR/IwBBEGsiASQAIAFBADYCDCAAQQEgAUEMahDTLSECIABBAhDGKCEDIABBAxC/KCEEAkAgA61CAnwgATUCDFgNACAAQcOIEUEAELIoAAsgAiADaiAEOwAAIAFBEGokAEEAC2QBBH8jAEEQayIBJAAgAUEANgIMIABBASABQQxqENMtIQIgAEECEMYoIQMgAEEDEL8oIQQCQCADrUIE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QAJAIAAoAgwiA0EQaiIEIAAoAghPDQAgBEGwvxxGDQAgA0EcaigCAEEASg0BCyABEHghAQwBCwJAIABBAhC7KCICRAAAAAAAAABAYg0AIAEQeiEBDAELAkAgAkQAAAAAAAAkQGINACABEHwhAQwBCyABEHggAhB4oyEBCyAAIAEQuihBAQtjAgJ/AnwgACgCCCAAKAIMa0EEdSIBQQEgAUEBShtBAWohAkECIQEgAEEBELsoIQMCQANAIAEgAkYNASAAIAEQuygiBCADIAQgA2QbIQMgAUEBaiEBDAALAAsgACADELooQQELYwICfwJ8IAAoAgggACgCDGtBBHUiAUEBIAFBAUobQQFqIQJBAiEBIABBARC7KCEDAkADQCABIAJGDQEgACABELsoIgQgAyAEIANjGyEDIAFBAWohAQwACwALIAAgAxC6KEEBCzoCAX8BfCMAQRBrIgEkACAAQQEQuyggAUEIahDtTCECIAAgASsDCBC6KCAAIAIQuiggAUEQaiQAQQILzAECAn4CfyAAvSICQjSIp0H/D3EiBEGBeGohBQJAAkAgBEGzCEkNACABIAA5AwACQCACQv////////8Hg1ANACAFQYAIRg0CCyACQoCAgICAgICAgH+Dvw8LAkAgBEH+B0sNACABIAJCgICAgICAgICAf4M3AwAgAA8LAkAgAiAFrSIDhkL/////////B4NCAFINACABIAA5AwAgAkKAgICAgICAgIB/g78PCyABQoCAgICAgIB4IAOHIAKDIgI3AwAgACACv6EhAAsgAAsZACAAIABBARC7KCAAQQIQuygQfxC6KEEBCxoAIAAgAEEBELsoRDmdUqJG35E/ohC6KEEBC/oBAQN/IAAoAhAhAQJAAkACQAJAAkACQAJAAkAgACgCCCAAKAIMa0EEdQ4DAwABAgsgAEEBEMYoIgJBAEwNBCAAIAFBkAVqENFMrSACrX5CIIinQQFqEO8nDAMLIABBARDGKCECIABBAhDGKCIDIAJIDQQgAyACayIDQX9GDQUgACACIAFBkAVqENFMrSADQQFqrX5CIIinahDvJwwCCyAAQZyCEUEAELIoAAsgAUGQBWoiARDRTCECIAAgARDRTK1CIIYgAq2EukFAEE4QuigLQQEPCyAAQQFB9+gQEKpLAAsgAEECQffoEBCqSwALIABBAkGTxREQqksACx4BAX8gAEEBEMYoIQEgACgCEEGQBWogAawQ0ExBAAsTACAAIABBARC7KBDzTBC6KEEBC5gBAgJ8AX5EAAAAAAAA4D8gAKYhAQJAAkAgAJkiAr0iA0L/////n8iLw8AAVg0AIAIQt08hAgJAIANC//////////c/Vg0AIANCgICAgICAgKg+VA0CIAEgAiACoCACIAKiIAJEAAAAAAAA8D+go6GiDwsgASACIAIgAkQAAAAAAADwP6CjoKIPCyACIAEgAaAQuE8hAAsgAAsTACAAIABBARC7KBDDSBC6KEEBCxEAIAAgAEEBELsonxC6KEEBCxMAIAAgAEEBELsoEPdMELooQQEL4AECAXwBfgJAAkAgAJkiAb0iAkKAgICAsP3k8D9UDQACQCACQoCAgICQgICawABUDQBEAAAAAAAAAIAgAaNEAAAAAAAA8D+gIQEMAgtEAAAAAAAA8D9EAAAAAAAAAEAgASABoBC3T0QAAAAAAAAAQKCjoSEBDAELAkAgAkKAgICA8JWW6D9UDQAgASABoBC3TyIBIAFEAAAAAAAAAECgoyEBDAELIAJCgICAgICAgAhUDQAgAUQAAAAAAAAAwKIQt08iAZogAUQAAAAAAAAAQKCjIQELIAGaIAEgAL1CAFMbCxMAIAAgAEEBELsoEPlMELooQQELiAEBAn8jAEEQayIBJAACQAJAIAC9QiCIp0H/////B3EiAkH7w6T/A0sNACACQYCAgPIDSQ0BIABEAAAAAAAAAABBABD4TyEADAELAkAgAkGAgMD/B0kNACAAIAChIQAMAQsgACABEPlPIQIgASsDACABKwMIIAJBAXEQ+E8hAAsgAUEQaiQAIAALzQkDB38DfAl9IwBBEGsiASQAIABBASABQQxqEKAuIQggAEECIAFBCGoQoC4hCSAAQQMgAUEEahCgLiEKAkACQAJAIAEoAgxFDQACQCABKAIIDQAgACgCDCICQRBqIgMgACgCCE8NACADQbC/HEYNACACQRxqKAIAQQFODQILAkAgASgCBA0AIAAoAgwiAkEgaiIDIAAoAghPDQAgA0GwvxxGDQAgAkEsaigCAEEBTg0DCwJAQQAtAJiaHkEBRw0AIAogCkQAAAAAAABwQKOdRAAAAAAAAHBAoqEgCqYhCiAJIAlEAAAAAAAAcECjnUQAAAAAAABwQKKhIAmmIQkgCCAIRAAAAAAAAHBAo51EAAAAAAAAcECioSAIpiEICyAJtiILjiEMAkACQCAItiINjiIOi0MAAABPXUUNACAOqCEDDAELQYCAgIB4IQMLIANB/wFxIgRBgJMcai0AACEDAkACQCAMi0MAAABPXUUNACAMqCECDAELQYCAgIB4IQILIAsgDJMhDCADIAJqQf8BcSIFQYCTHGotAAAhBgJAAkAgCrYiD44iC4tDAAAAT11FDQAgC6ghAwwBC0GAgICAeCEDCyAAIA8gC5MiCyALIAuUlCALIAtDAADAQJRDAABwwZKUQwAAIEGSlCAMIAwgDJSUIAwgDEMAAMBAlEMAAHDBkpRDAAAgQZKUIhAgDSAOkyIOIA4gDpSUIA4gDkMAAMBAlEMAAHDBkpRDAAAgQZKUIg0gBEGBkxxqLQAAIAJqQf8BcSIEQYGTHGotAAAgA2pB/wFxIgdBgZMcai0AAEEPcUEMbCICQZiVHGoqAgAgC0MAAIC/kiIPlCACQZCVHGoqAgAgDkMAAIC/kiIRlCAMQwAAgL+SIhIgAkGUlRxqKgIAlJKSIAVBgZMcai0AACADakH/AXEiBUGBkxxqLQAAQQ9xQQxsIgJBmJUcaioCACAPlCACQZCVHGoqAgAgDpQgEiACQZSVHGoqAgCUkpIiE5OUIBOSIA0gBEGAkxxqLQAAIANqQf8BcSIEQYGTHGotAABBD3FBDGwiAkGYlRxqKgIAIA+UIAJBkJUcaioCACARlCAMIAJBlJUcaioCAJSSkiAGIANqQf8BcSICQYGTHGotAABBD3FBDGwiA0GYlRxqKgIAIA+UIANBkJUcaioCACAOlCAMIANBlJUcaioCAJSSkiIPk5QgD5IiD5OUIA+SIBAgDSAHQYCTHGotAABBD3FBDGwiA0GYlRxqKgIAIAuUIANBkJUcaioCACARlCASIANBlJUcaioCAJSSkiAFQYCTHGotAABBD3FBDGwiA0GYlRxqKgIAIAuUIANBkJUcaioCACAOlCASIANBlJUcaioCAJSSkiIPk5QgD5IgDSAEQYCTHGotAABBD3FBDGwiA0GYlRxqKgIAIAuUIANBkJUcaioCACARlCAMIANBlJUcaioCAJSSkiACQYCTHGotAABBD3FBDGwiA0GYlRxqKgIAIAuUIANBkJUcaioCACAOlCAMIANBlJUcaioCAJSSkiIMk5QgDJIiDJOUIAySIgyTlCAMkrsQuiggAUEQaiQAQQEPCyAAQQFB7pQRELYoAAsgAEECQe6UERC2KAALIABBA0HulBEQtigAC0wBA3wgAEEBELsoIQECQCAAQQIQuygiAiAAQQMQuygiA2UNACAAQQNBsaAREKpLAAsgACADIAIgASABIAJjGyIBIAEgA2QbELooQQELRwEBfCAARAAAAAAAAPA/RAAAAAAAAPC/RAAAAAAAAAAAIABBARC7KCIBRAAAAAAAAAAAYxsgAUQAAAAAAAAAAGQbELooQQELEwAgACAAQQEQuygQ/kwQuihBAQuvAQMBfgF/AXwCQCAAvSIBQjSIp0H/D3EiAkGyCEsNAAJAIAJB/QdLDQAgAEQAAAAAAAAAAKIPCwJAAkAgAJkiAEQAAAAAAAAwQ6BEAAAAAAAAMMOgIAChIgNEAAAAAAAA4D9kRQ0AIAAgA6BEAAAAAAAA8L+gIQAMAQsgACADoCEAIANEAAAAAAAA4L9lRQ0AIABEAAAAAAAA8D+gIQALIACaIAAgAUIAUxshAAsgAAtGAQR8IABBARC7KCEBIABBAhC7KCECIABBAxC7KCEDIAAgAEEEELsoIgQgASACoSAAQQUQuyggBKGiIAMgAqGjoBC6KEEBCzwBAnwgAEEBELsoIQEgACAAQQIQuygiAiABIAIgAaEgAEEDELsoIgKioCACRAAAAAAAAPA/YRsQuihBAQsXAQF8IAAgAEEBELsoIgEgAWIQsyhBAQsbACAAIABBARC7KJlEAAAAAAAA8H9hELMoQQELKQAgACAAQQEQuyi9Qv///////////wCDQoCAgICAgID4/wBTELMoQQELlwMBA39BAEEANgLMox5BqJoeQQBBoAEQSCEAQcibHkH/AUGBCBBIGkEIIQEDQAJAIAFBP00NAEHAACEBA0ACQCABQf8BTQ0AQYACIQEDQAJAIAFB/wNNDQBBgAQhAkEAIQEDQAJAIAJBgAhNDQADQAJAIAFBACgCzKMeSA0AQf8HIQECQANAIAFBAEgNAQJAIAFByJseaiICLAAAQX9KDQAgAiABQcmbHmotAAA6AAALIAFBf2ohAQwACwALDwsgAUECdEGomh5qKAIAQcibHmogAToAACABQQFqIQEMAAsAC0EAQQAoAsyjHiIAQQFqNgLMox4gAEECdEGomh5qIAI2AgAgAkHAAGohAgwACwALQQBBACgCzKMeIgJBAWo2AsyjHiACQQJ0QaiaHmogATYCACABQSBqIQEMAAsAC0EAQQAoAsyjHiICQQFqNgLMox4gAkECdEGomh5qIAE2AgAgAUEQaiEBDAALAAtBAEEAKALMox4iAkEBajYCzKMeIAJBAnQgAGogATYCACABQQhqIQEMAAsAC9QBAQN/AkAgACgCEEE4aiICIAFBAnRqIgMoAgAiBA0AIAAgAkEAIAFB/wFxQQEQhk0hBAsCQAJAAkAgBCgCHCIBQQBIDQAgBCABIAQoAhRrIgA2AhwgBCAEKAIgQQFqNgIgIAQgAWpBMGoiASAENgIAIAQoAhgNAiAAQX9MDQEMAgsgBCAEKAIYIgEoAgA2AhggBCAEKAIgQQFqNgIgIAEgBDYCACAEKAIYDQELIAMgBCgCBCIANgIAAkAgAEUNACAAQQA2AgALIARBADYCBAsgAUEIagtJACABIANBAnQiA2ogACACQej/AUHo/wAgA0Gomh5qKAIAIgNBgARKGyIBIANBCEEAIAQbaiIEIAFBUGogBG4Qh00iBDYCACAEC5MBAQF/AkAgACgCECIFKAIQQQBBACACIAUoAgwRBwAiBUUNACAFQgA3AgAgBUEANgIgIAVBADYCGCAFIAM2AhQgBSACNgIQIAVBCGpCADcCACAFIARBf2ogA2w2AhwCQCABRQ0AIAUgASgCACICNgIMAkAgAkUNACACIAU2AggLIAEgBTYCAAsgBQ8LIABBBBCDSwALmwEBBH8gACgCECEDAkAgAkF4aiIEKAIAIgIoAhgiBQ0AQQAhBSACKAIcQX9KDQAgAiADIAFBAnRqQThqIgYoAgAiBTYCBAJAIAVFDQAgBSACNgIACyAGIAI2AgAgAigCGCEFCyAEIAU2AgAgAiAENgIYIAIgAigCIEF/aiIENgIgAkAgBA0AIAAgA0E4akEAIAIgAUH/AXEQiU0LC14BAn8gAygCACEFAkAgAygCBCIGRQ0AIAYgBTYCAAsCQAJAAkAgBUUNACAFQQRqIQUMAQsgASAEQQJ0aiIFKAIAIANHDQELIAUgBjYCAAsgAEEQaigCACACIAMQik0LYwECfwJAIAFFDQAgAigCCCEDAkAgAigCDCIERQ0AIAQgAzYCCAsCQAJAIANFDQAgA0EMaiEBDAELIAEoAgAgAkcNAQsgASAENgIACyAAKAIQIAIgAigCEEEAIAAoAgwRBwAaC2IBAX8jAEEgayIDJAAgA0EQaiACQgAgAUIAEGsgAyACQgAgAEIAEGsgA0EQakEIaikDACECIAMpAwAhASADQQhqKQMAIQAgA0EgaiQAIAAgAiABfCIBIAJUrXwgAUIBVq2ECxoBAX8DQCAAIgFBf2oiAC0AAEEwRg0ACyABCzQBAX9BfyEBAkADQCAAQYACSQ0BIABBCHYhACABQQhqIQEMAAsACyABIABB0KAcai0AAGoLNAEBf0EAIQICQCAAKgIAIAEqAgBcDQAgACoCBCABKgIEXA0AIAAqAgggASoCCFshAgsgAguaAQEDfyMAQRBrIgIkACABIAAgAkEMahCQTTkDAAJAAkAgAigCDCIDIABHDQBBACEDDAELAkAgAy0AACIEQSByQfgARw0AIAEgACACQQxqEJFNuDkDACACKAIMIgMtAAAhBAsCQCAEQf8BcQ0AQQEhAwwBCwNAIAMtAAAhACADQQFqIQMgABDNHQ0ACyAARSEDCyACQRBqJAAgAws1AgF/AXwjAEEQayICJAAgAiAAIAFBARDoTyACKQMAIAJBCGopAwAQnAEhAyACQRBqJAAgAwsSACAAIAFBEEL/////DxD1T6cLzQEBA38jAEEgayICJAACQAJAAkAgASwAACIDRQ0AIAEtAAENAQsgACADEOBPIQQMAQsgAkEAQSAQSBoCQCABLQAAIgNFDQADQCACIANBA3ZBHHFqIgQgBCgCAEEBIAN0cjYCACABLQABIQMgAUEBaiEBIAMNAAsLIAAhBCAALQAAIgNFDQAgACEBA0ACQCACIANBA3ZBHHFqKAIAIAN2QQFxRQ0AIAEhBAwCCyABLQABIQMgAUEBaiIEIQEgAw0ACwsgAkEgaiQAIAQgAGsLSQECfyAAIAAQWWohAwJAIAJFDQADQCABLQAAIgRFDQEgAyAEOgAAIANBAWohAyABQQFqIQEgAkF/aiICDQALCyADQQA6AAAgAAsRACAAIAAQWWogARDfTxogAAsRACAAQZ6EEUHQohwQii5BAQsMACAAELlMELooQQELuQUDBH8BfgF8IwBBkAZrIgEkACAAQQFBsdoRQQAQrUshAgJAAkACQCAAKAIMIgNBEGoiBCAAKAIITw0AIARBsL8cRg0AIANBHGooAgBBAEoNAQtBABDOTCEFDAELAkAgAEECELsoIgaZRAAAAAAAAOBDY0UNACAGsCEFDAELQoCAgICAgICAgH8hBQsCQAJAAkACQAJAIAItAABBIUcNACAFIAFB5AVqEJhNGiACQQFqIQIMAQsgBUIAUw0BIAUgAUHkBWoQmU0aCwJAIAItAAAiBEEqRw0AIAItAAFB9ABHDQAgAi0AAg0AIABBAEEJEK4SIABBptoRIAEoAuQFEJpNIABB1qARIAEoAugFEJpNIABB2owRIAEoAuwFEJpNIABBruwQIAEoAvAFEJpNIABBqqkRIAEoAvQFQQFqEJpNIABB7ZURIAEoAvgFQewOahCaTSAAQfTrECABKAL8BUEBahCaTSAAQe/rECABKAKABkEBahCaTSABKAKEBiICQQBIDQIgACACELMoIABBfkHg8xAQnxIMAgsgAUEAOgDjBSABQSU6AOEFIAFBADYC3AEgASAANgLYASABIAFB4AVqNgLUASABIAFB4AFqNgLQAQNAAkACQAJAAkAgBEH/AXEiA0ElRg0AIAMNASABQdABahC7SwwGCyACLQABIgMNAQsCQCABKALQASIDIAEoAtQBSQ0AIAFB0AFqQQEQuksaIAItAAAhBCABKALQASEDCyABIANBAWo2AtABIAMgBDoAAAwBC0H9/BEgA0EYdEEYdUEYEMwLRQ0EIAJBAWohAiABIAM6AOIFIAFB0AFqIAEgAUHIASABQeEFaiABQeQFahAmELdLCyACLQABIQQgAkEBaiECDAALAAsgABCmEgsgAUGQBmokAEEBDwsgAEEBQZmRERCqSwALHgAQz08gACABEK5aIAFBxN4RNgIoIAFCADcCICABCyQAEM9PIAAgARCtWiABQdiuHkHUrh4gASgCIBsoAgA2AiggAQsSACAAIAIQ7ycgAEF+IAEQnxILqAEDAnwCfgJ/IABBARC7KCEBQgAhAwJAIAAoAgwiBUEQaiIGIAAoAghPDQAgBkGwvxxGDQAgBUEcaigCAEEBSA0AAkAgAEECELsoIgKZRAAAAAAAAOBDY0UNACACsCEDDAELQoCAgICAgICAgH8hAwsCQAJAIAGZRAAAAAAAAOBDY0UNACABsCEEDAELQoCAgICAgICAgH8hBAsgACAEIAMQnE0QuihBAQsI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IAEoAqgFIQkLIAEgCUEBajYCqAUgCSADOgAACyACQQFqIQIMAAsACwJAIAEoAqgFIgIgASgCrAVJDQAgAUGoBWpBARC6SxogASgCqAUhAgsgASACQQFqNgKoBSACQSI6AAAgCiEIDAULIAAgCiABQbwJahCwKCEDIAEoArwJIQICQCABLQCCBUUNAAJAIAFBgAVqQS4Q10UNACACQeMASw0BCyABIAM2AlAgAUGAAWpBgAQgAUGABWogAUHQAGoQzS0aDAMLIAFBqAVqIAMgAhC3SyAKIQgMBAsgASACQRh0QRh1NgIAIABBlfoRIAEQsigACyABIAAgChC7KDkDQCABQYABakGABCABQYAFaiABQcAAahDNLRoLIAFBqAVqIAFBgAFqIAFBgAFqEFkQt0sgCiEIDAELCyAAQcPzEUEAELIoAAsgAEHk9RFBABCyKAALDQAgACABIAIQ4k8gAAs0ACAAQQFBABCwKBogAEECQQAQsCgaIABBAhCmLSAAQQAQ7ycgAEHeCEEAQQNBABCbEkEBC9sBAQZ/IwBBoAJrIgEkACAAQe2xfyABQQRqEMInIQIgAEHssX8gARDCJyEDIAEgADYCGCABIAI2AgwgAUHIATYCCCABIAMgASgCAGo2AhQgASACIAEoAgRqIgQ2AhBBACEFIAIgAEHrsX9BABDjLWohBgN/AkACQCAGIARLDQAgAUEANgIcIAFBCGogBiADEKpNIgRFDQEgACAEIAJrIAQgBkZqEO8nIABB67F/EIgvIAFBCGogBiAEEKxNIQULIAFBoAJqJAAgBQ8LIAZBAWohBiABKAIQIQQMAAsLxQgBDn8jAEHQBmsiASQAIABBASABQcgGahCwKCECIABBAiABQcQGahCwKCEDAkACQAJAIAAoAgwiBEEgaiIFIAAoAghPDQAgBUGwvxxHDQELIABBBCABKALIBkEBahCqLRoMAQsgBEEsaigCACEFIABBBCABKALIBkEBahCqLSEGIAVBCEsNAEEBIAV0QcgDcUUNACADLQAAIQcgAUEANgIoIAEgADYCJCABIAFBrARqNgIgIAEgAUEsajYCHCABKALEBiEEAkAgB0H/AXFB3gBHIggNACABIARBf2oiBDYCxAYgA0EBaiEDCyABIAA2ArwEIAFByAE2AqwEIAEgAyAEajYCuAQgASACNgKwBCAB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IAVBAmoiCRDDTSEFQQAhCkEAIQICQCAEIAAoAgRGDQAgCC0AACECCyACQf8BcSAJIAVBf2oiAhDFTQ0BIAQtAAAgCSACEMVNDQALCwsgACAAKAIAQQFqNgIAIANBEGokACAKDwsgACgCEEGAnBFBABCyKAALIAVBgu0QQQAQsigAC5MBAAJAIAAoAhQgAUoNACAAKAIQIQACQCABDQAgACACIAMgAmsQqBIPCyAAQantEEEAELIoAAsgACABQQN0aiIBQRhqIQMgACgCECECAkACQAJAIAFBHGooAgAiAUECag4CAQACCyACQbe7EUEAELIoAAsgAiADKAIAIAAoAgRrQQFqEO8nDwsgAiADKAIAIAEQqBILVwEDfyAAKAIQIAAoAhQiA0EBIAMbIAMgARsiBEGphxEQr0tBACEDIARBACAEQQBKGyEFAkADQCADIAVGDQEgACADIAEgAhCrTSADQQFqIQMMAAsACyAECy0BAX8jAEEQayIBJAAgAEEBIAFBDGoQsCgaIAAgASgCDBDvJyABQRBqJABBAQt7AQR/IwBBoARrIgEkACAAQQEgAUGcBGoQsCghAkEAIQMgACABQQxqIAEoApwEEL1LIQADfwJAIAMgASgCnAQiBEkNACABQQxqIAQQwUsgAUGgBGokAEEBDwsgACACIANqLQAAEK9NOgAAIANBAWohAyAAQQFqIQAMAAsLEwAgAEEgciAAIABBv39qQRpJGwsJACAAQQAQpE0L5QEBBX8jAEGgBGsiASQAIABBASABQZwEahCwKCECAkACQAJAIABBAhDGKCIDQQBKDQAgAEHnjRJBABCoEgwBCyABKAKcBCIEQYCAgIAEIANuSw0BIAAgAUEMaiAEIANsEL1LIAIgASgCnAQiABBLIQUgACADbCABKAKcBCIEayECIAUgBGohBAJAA0AgAiAATQ0BIAIgAGshAiAEIAUgABBLIABqIQQgAEEBdCEADAALAAsgBCAFIAIQSxogAUEMaiABKAKcBCADbBDBSwsgAUGgBGokAEEBDwsgAEG6xRFBABCyKAALfgEEfyMAQaAEayIBJAAgAEEBIAFBnARqELAoIQIgACABQQxqIAEoApwEEL1LIQACQANAIAEgASgCnAQiA0F/aiIENgKcBCADRQ0BIAAgAiAEai0AADoAACAAQQFqIQAMAAsACyABQQxqIAAgASgCDGsQwUsgAUGgBGokAEEBC6sBAQZ/IwBBEGsiASQAIABBASABQQxqELAoIQIgAEECEMYoIQMgASgCDCEEAkACQCAAQQNBfxCqLSIFIAVBH3UgASgCDCIFQQFqcWoiBkEAIAZBAEobIgYgBSAGIAVIGyIFIAMgA0EfdSAEQQFqcWoiA0EBIANBAUobIgNIDQAgACACIANqQX9qIAUgA2tBAWoQqBIMAQsgAEHnjRJBABCoEgsgAUEQaiQAQQELewEEfyMAQaAEayIBJAAgAEEBIAFBnARqELAoIQJBACEDIAAgAUEMaiABKAKcBBC9SyEAA38CQCADIAEoApwEIgRJDQAgAUEMaiAEEMFLIAFBoARqJABBAQ8LIAAgAiADai0AABC1TToAACADQQFqIQMgAEEBaiEADAALCxQAIABB3wBxIAAgAEGff2pBGkkbC+0BAQd/IwBBEGsiASQAIABBASABQQxqELAoIQIgAEECQavzESABQQhqEK1LIQMgASgCDCEEQQAhBSAAQQBBABCuEiACIARqIQYgAiABKAIIIgdFaiEEA38CQCAEIAYgB2tNDQACQCAHRQ0AIAAgBUEBahDvJyAAIAIgBiACaxCoEiAAQX0Qxi0LIAFBEGokAEEBDwsCQCAEIAMgBxCpBw0AIAAgBUEBaiIFEO8nIAAgAiAEIAJrEKgSIABBfRDGLSAEIAEoAggiB2ohAgJAIAcNAEEAIQcMAQsgBCAHakF/aiEECyAEQQFqIQQMAAsLqwgDCH8BfAJ+IwBB4ARrIgEkACAAQQFBABCwKCECIAFCgYCAgBA3AkggASAANgJEIAEgAjYCQCAAEKYSIAFBADYCXCABIAA2AlggASABQeAEajYCVCABIAFB4ABqNgJQQQAhA0EBIQQCQAJAAkACQAJAAkADQCACLQAARQ0BIAFBxABqIAMgAUHAAGogAUE8aiABQThqELhNIQUgASgCPCEGIAEoAjgiByEIAkADQCAIQQFIDQECQCABKAJQIgIgASgCVEkNACABQdAAakEBELpLGiABKAJQIQILIAhBf2ohCCABIAJBAWo2AlAgAkEAOgAADAALAAsgBEEBaiEIIAcgA2ogBmohAwJAAkACQAJAAkACQAJAAkACQCAFDgkAAQIDBAUHCAgACwJAAkAgACAIELsoIgmZRAAAAAAAAOBDY0UNACAJsCEKDAELQoCAgICAgICAgH8hCgsCQCAGQQdKDQBCAEIBIAZBA3RBf2qthiILfSAKVQ0LIAsgClcNCwsgAUHQAGogCiABKAJIIAYgCkI/iKcQuU0MBQsCQAJAIAAgCBC7KCIJmUQAAAAAAADgQ2NFDQAgCbAhCgwBC0KAgICAgICAgIB/IQoLAkAgBkEHSg0AIAogBkEDdK2IUEUNCwsgAUHQAGogCiABKAJIIAZBABC5TQwECyAAIAgQuyghCQJAAkACQCAGQXxqDgUAAQEBAQELIAEgCbY4AhAMAQsgASAJOQMQCyABIAFBEGogBiABKAJIELpNIAFB0ABqIAEgBhC3SwwDCyAAIAggAUEQahCwKCECIAEoAhAiBSAGSw0JIAFB0ABqIAIgBRC3SwNAIAEgASgCECICQQFqNgIQIAIgBk8NAwJAIAEoAlAiAiABKAJUSQ0AIAFB0ABqQQEQuksaIAEoAlAhAgsgASACQQFqNgJQIAJBADoAAAwACwALIAAgCCABQRBqELAoIQUgASgCECECAkAgBkEDSg0AIAIgBkEDdHYNCgsgAUHQAGogAq0gASgCSCAGQQAQuU0gAUHQAGogBSABKAIQELdLIAEoAhAgA2ohAwwBCyAAIAggAUEQahCwKCICEFkiBiABKAIQRw0JIAFB0ABqIAIgBhC3SwJAIAEoAlAiAiABKAJUSQ0AIAFB0ABqQQEQuksaIAEoAlAhAgsgASACQQFqNgJQIAJBADoAACADIAEoAhBqQQFqIQMLIAghBAwBCwJAIAEoAlAiAiABKAJUSQ0AIAFB0ABqQQEQuksaIAEoAlAhAgsgASACQQFqNgJQIAJBADoAAAsgASgCQCECDAALAAsgAUHQAGoQu0sgAUHgBGokAEEBDwsgACAIQaPvEBCqSwALIAAgCEHr7xAQqksACyAAIAhB4LIREKpLAAsgACAIQbeyERCqSwALIAAgCEGGhBEQqksAC8YBAQJ/IwBBEGsiBSQAIAAgAiADEL5NIQYgBSADKAIAIgM2AgwCQAJAAkAgBkEHRw0AIAIoAgAtAABFDQEgACACIAVBDGoQvk1BA0YNASAFKAIMIgNFDQELQQAhAgJAIAZBA0YNACADQQJIDQAgAyAAKAIIIgIgAyACSBsiAyADQX9qIgJxDQIgAyACIAFxayACcSECCyAEIAI2AgAgBUEQaiQAIAYPCyAAKAIAQQFB2vwREKpLAAsgACgCAEEBQdDvERCqSwALqQEBBH8jAEEQayIFJAAgBUEAIANBf2oiBiACG2ogATwAACADQQEgA0EBShshB0EBIQgCQANAIAggB0YNASAFIAggBiAIayACG2ogAUIIiCIBPAAAIAhBAWohCAwACwALAkAgA0EJSA0AIARFDQBBCCEIA0AgCCADRg0BIAUgCCAGIAhrIAIbakH/AToAACAIQQFqIQgMAAsACyAAIAUgAxC3SyAFQRBqJAALaAACQAJAIANBAUcNAANAIAJFDQIgACABLQAAOgAAIABBAWohACABQQFqIQEgAkF/aiECDAALAAsgACACaiEAA0AgAkUNASAAQX9qIgAgAS0AADoAACABQQFqIQEgAkF/aiECDAALAAsLvQEBA38jAEEgayIBJABBACECIABBAUEAELAoIQMgAUKBgICAEDcCGCABIAA2AhQgASADNgIQAkACQAJAA0AgAy0AAEUNASABQRRqIAIgAUEQaiABQQxqIAFBCGoQuE1BempBfk8NAiACQYCAgIAEIAEoAgwgASgCCGoiA2tKDQMgAyACaiECIAEoAhAhAwwACwALIAAgAhDvJyABQSBqJABBAQ8LIABBAUG3gBEQqksACyAAQQFB38QREKpLAAvSBAMIfwF8AX4jAEHQAGsiASQAIAEgAEEBQQAQsCgiAjYCQCAAQQIgAUE8ahCwKCEDAkACQAJAAkAgAEEDQQEQqi0iBCAEQR91IAEoAjwiBUEBanFqIgRBASAEQQFKG0F/aiIEIAVLDQAgAUKBgICAEDcCSCABIAA2AkRBACEGAkADQCACLQAARQ0BIAFBxABqIAQgAUHAAGogAUE4aiABQTRqELhNIQUgASgCOCICIAEoAjQiB2ogASgCPCAEa0sNAyAAQQJByoIREK9LIAZBAWohCCAHIARqIQQCQAJAAkACQAJAAkACQAJAIAUOCQABAgMEBQcHBwALIAAgACADIARqIAEoAkggAkEBEL1NuRC6KAwFCyAAIAAgAyAEaiABKAJIIAJBABC9TboQuigMBAsgAUEIaiADIARqIAIgASgCSBC6TQJAAkACQCACQXxqDgUAAQEBAQELIAEqAgi7IQkMAQsgASsDCCEJCyAAIAkQuigMAwsgACADIARq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KAIQELdLDAELAkACQCAAQQEgAhDLJ0F9ag4EAQAAAQALIABBfxCzSyEDIAQgAjYCBCAEIAM2AgAgAEG3+hEgBBCyKAALIAEQvksLIARBEGokAAt/AQJ/IABBAUEHEPgtIABBAkEIEPgtIAAQphICQANAAkAgAEEBEKcSDQBBACEBDAILIABBAhCLCiAAQX0QiwogAEF9EIsKQQEhASAAQQJBARCdEiAAKAIIIgJBcGpBsL8cRg0BIAJBfGooAgANASAAIAJBYGo2AggMAAsACyABC5sBAQV/IABBAUEHEPgtIABBAkEIEPgtIABBARCALiIBQQAgAUEAShtBAWohAkEBIQECQANAAkAgASACRw0AQQAhAwwCCyAAQQIQiwogACABEO8nQQEhAyAAQQEgARDLJxogAEECQQEQnRIgACgCCCIEQXBqIgVBsL8cRg0BIARBfGooAgANASAAIAU2AgggAUEBaiEBDAALAAsgAwsZACAAQQFBBxD4LSAAIABBARCALhDvJ0EBC9IBAgR/AnwgAEEBQQcQ+C1BACEBIAAoAgwoAgAiAigCCCIDQQAgA0EAShshBEQAAAAAAAAAACEFAkADQAJAIAEgBEcNAEEAIQFBASACLQAGdCIDQQAgA0EAShshBANAIAEgBEYNAwJAIAIoAhggAUEFdGoiAygCDEUNACADKAIcQQ9xQQNHDQAgAysDECIGIAUgBiAFZBshBQsgAUEBaiEBDAALAAsgAUEBaiIDuCAFIAIoAhQgAUEEdGooAgwbIQUgAyEBDAALAAsgACAFELooQQELfQECfyAAQQFBBxD4LSAAQQEQgC4hAQJAAkACQAJAIAAoAgggACgCDGtBBHVBfmoOAgIAAQsgAEECEMYoIgJBAUgNAiACIAFKDQIgAEEBIAIgASACQQFqEOVNDAILIABB7/kRQQAQsigACyABQQFqIQILIABBASACEIIuQQALkwQBBX8CQAJAIAAoAgwiBSABQQR0akFwaigCACIGLQAEDQAgAyACayEHAkAgAkF/aiAFKAIAIgUoAggiCE8NACAIIANJDQAgBEF/aiAGKAIIIghPDQAgByAEaiAISw0AIAYoAhQhCCAFKAIUIQkCQAJAIAQgA0oNACAEIAJMDQACQCABQQFGDQAgBiAFRw0BCyAIIARBBHRqQXBqIQEgCSACQQR0akFw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AkACQCACQV9xIghByQBHDQBBACEIAkADQCAIIglBB0YNAQJAAkAgASgCBCICIAEoAmhGDQAgASACQQFqNgIEIAItAAAhAgwBCyABEOxPIQILIAlBAWohCCACQSByIAlBqekQaiwAAEYNAAsCQAJAIAlBAkcNAEEDIQgMAQsgCUEHRg0BIANBAEchCiADRQ0DIAlBA0kNAyAIQQhGDQELAkAgASkDcCILQgBTDQAgASABKAIEQX9qNgIECyADRQ0AIAhBBEkNACALQgBTIQIDQAJAIAINACABIAEoAgRBf2o2AgQLIAhBf2oiCEEDSw0ACwsgBCAHskMAAIB/lBCdASAEQQhqKQMAIQwgBCkDACELDAcLIAhBzgBHDQRBACEIIANBAEchCgNAIAhBAkYNAgJAAkAgASgCBCICIAEoAmhGDQAgASACQQFqNgIEIAItAAAhAgwBCyABEOxPIQILIAhB8qERaiEJIAhBAWohCCACQSByIAksAABGDQALCyAIDgQDAQEAAQsCQAJAIAEoAgQiAiABKAJoRg0AIAEgAkEBajYCBCACLQAAIQIMAQsgARDsTyECCwJAAkAgAkEoRw0AQQEhCAwBC0IAIQtCgICAgICA4P//ACEMIAEpA3BCAFMNBSABIAEoAgRBf2o2AgQMBQsDQAJAAkAgASgCBCICIAEoAmhGDQAgASACQQFqNgIEIAItAAAhAgwBCyABEOxPIQILIAJBv39qIQkCQAJAIAJBUGpBCkkNACAJQRpJDQAgAkGff2ohCSACQd8ARg0AIAlBGk8NAQsgCEEBaiEIDAELC0KAgICAgIDg//8AIQwgAkEpRg0EAkAgASkDcCINQgBTDQAgASABKAIEQX9qNgIECwJAAkAgCkUNACAIDQFCACELDAYLED5BHDYCAEIAIQsMAgsDQAJAIA1CAFMNACABIAEoAgRBf2o2AgQLQgAhCyAIQX9qIggNAAwFCwALQgAhCwJAIAEpA3BCAFMNACABIAEoAgRBf2o2AgQLED5BHDYCAAsgASALEOlPDAELAkAgAkEwRw0AAkACQCABKAIEIgggASgCaEYNACABIAhBAWo2AgQgCC0AACEIDAELIAEQ7E8hCAsCQCAIQV9xQdgARw0AIARBEGogASAGIAUgByADEO9PIARBGGopAwAhDCAEKQMQIQsMAwsgASkDcEIA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AUYNAgJAIAYqAgAgBCoCABCwUEUNACAGKgIAIQggBiEHAkADQCAHIAQiAyoCADgCACADIABGDQEgAyEHIAggA0F8aiIEKgIAELBQDQALCyADIAg4AgAgBUEBaiIFQQhHDQAgBkEEaiABRg8LIAZBBGohAyAGIQQMAAsACyAAIABBBGogAUF8ahCyUAsgAgsJACAAIAEQw1ALUwAgACABIAIQuFACQCADKgIAIAIqAgAQsFBFDQAgAiADELFQIAIqAgAgASoCABCwUEUNACABIAIQsVAgASoCACAAKgIAELBQRQ0AIAAgARCxUAsLbAAgACABIAIgAxC+UAJAIAQqAgAgAyoCABCwUEUNACADIAQQsVAgAyoCACACKgIAELBQRQ0AIAIgAxCxUCACKgIAIAEqAgAQsFBFDQAgASACELFQIAEqAgAgACoCABCwUEUNACAAIAEQsVALC2kBAn8CQCAAIAFHDQAgAg8LIAAgARDEUCABIABrQQJ1IQMgASEEAkADQCAEIAJGDQECQCAEKgIAIAAqAgAQsFBFDQAgBCAAELFQIAAgAyAAEMVQCyAEQQRqIQQMAAsACyAAIAEQxlAgBAsMACAAIAEgAhDCUBoLEgAgACACOgAEIAAgATYCACAACxwBAX0gACoCACECIAAgASoCADgCACABIAI4AgALQwEBfwJAIAEgAGtBAnUiAkECSA0AIAJBfmpBAXYhAQNAIAFBAEgNASAAIAIgACABQQJ0ahDFUCABQX9qIQEMAAsACwv4AQIFfwF9AkAgAUECSA0AIAFBfmpBAXYiAyACIABrIgRBAnVIDQAgACAEQQF1IgVBAWoiBkECdGohBAJAIAVBAmoiBSABTg0AIARBBGogBCAEKgIAIAQqAgQQsFAiBxshBCAFIAYgBxshBgsgBCoCACACKgIAELBQDQAgAioCACEIAkADQCACIAQiBSoCADgCACADIAZIDQEgACAGQQF0IgJBAXIiBkECdGohBAJAIAJBAmoiAiABTg0AIARBBGogBCAEKgIAIAQqAgQQsFAiBxshBCACIAYgBxshBgsgBSECIAQqAgAgCBCwUEUNAAsLIAUgCDgCAAsLNgEBfyABIABrQQJ1IQIDQAJAIAJBAUoNAA8LIAAgASACEMdQIAJBf2ohAiABQXxqIQEMAAsAC04BAX0gACoCACEDAkAg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IAMQiFELDQAgACABIAIgAxCJUQtbAQF/IwBBIGsiBCQAIARBGGogASACEIpRIARBEGogBCgCGCAEKAIcIAMQi1EgASAEKAIQEIxRIQEgBCADIAQoAhQQjVE2AgwgACABIARBDGoQjlEgBEEgaiQACwsAIAAgASACEI9RCw0AIAAgASACIAMQkFELCQAgACABEJFRCwkAIAAgARCSUQsMACAAIAEgAhCTURoLKAEBfyMAQRBrIgMkACADIAI2AgwgACABIANBDGoQmVEaIANBEGokAAs2AQJ/IwBBEGsiBCQAIAQgAyABIAIgAWsiBRCWUSAFajYCDCAAIAIgBEEMahCXUSAEQRBqJAALCQAgACABEJRRCwQAIAELFQAgACABNgIAIAAgAigCADYCBCAACwkAIAAgARCVUQsEACABCxYAAkAgAkUNACAAIAEgAhCJARoLIAALDAAgACABIAIQmFEaCxUAIAAgATYCACAAIAIoAgA2AgQgAAsVACAAIAE2AgAgACACKAIANgIEIAALBwAgACABSAscAQF/EK9ZIABBACgCqLEeIgE2AgAgARCxWSAACw0AIABBCGoQmQcaIAALCgAgABCcURCkAQsTACAAIAAoAgBBdGooAgBqEJxRCxMAIAAgACgCAEF0aigCAGoQnVELBwAgABChUQsFACAARQt9AQJ/IwBBEGsiASQAAkAgACAAKAIAQXRqKAIAakEYaigCAEUNAAJAIAFBCGogABCbByICLQAAEKNRRQ0AIAAgACgCAEF0aigCAGpBGGooAgAQpFFBf0cNACAAIAAoAgBBdGooAgBqQQEQpVELIAIQnwcaCyABQRBqJAAgAAsHACAAQQFxCw8AIAAgACgCACgCGBEAAAsJACAAIAEQngcLCQAgACABEKdRCxAAIAAQqFEgARCoUXNBAXMLLgEBfwJAIAAoAgAiAUUNAAJAIAEQqVEQqlENACAAKAIARQ8LIABBADYCAAtBAQssAQF/AkAgACgCDCIBIAAoAhBHDQAgACAAKAIAKAIkEQAADwsgASwAABCAUQsHACAAQX9GCycBAX9BACEDAkAgAkEASA0AIAAgAkECdGooAgAgAXFBAEchAwsgAwsNACAAEKlRQRh0QRh1Cw0AIAAoAgAQrlEaIAALNgEBfwJAIAAoAgwiASAAKAIQRw0AIAAgACgCACgCKBEAAA8LIAAgAUEBajYCDCABLAAAEIBRCz8BAX8CQCAAKAIYIgIgACgCHEcNACAAIAEQgFEgACgCACgCNBECAA8LIAAgAkEBajYCGCACIAE6AAAgARCAUQsLACAAQfyuHhClBwsdACAAIAEgASgCAEF0aigCAGpBGGooAgA2AgAgAAsFACAARQsXACAAIAEgAiADIAQgACgCACgCEBEMAAsXACAAIAEgAiADIAQgACgCACgCIBFTAAsnAQF/AkAgACgCACICRQ0AIAIgARCvURCqUUUNACAAQQA2AgALIAALDQAgASACIAAQt1EgAAsRACAAIAAgAUECdGogAhC4UQsiAQF/IwBBEGsiAyQAIANBCGogACABIAIQuVEgA0EQaiQACw0AIAAgASACIAMQulELDQAgACABIAIgAxC7UQtbAQF/IwBBIGsiBCQAIARBGGogASACELxRIARBEGogBCgCGCAEKAIcIAMQvVEgASAEKAIQEL5RIQEgBCADIAQoAhQQv1E2AgwgACABIARBDGoQwFEgBEEgaiQACwsAIAAgASACEMFRCw0AIAAgASACIAMQwlELCQAgACABEMNRCwkAIAAgARDEUQsMACAAIAEgAhDFURoLKAEBfyMAQRBrIgMkACADIAI2AgwgACABIANBDGoQy1EaIANBEGokAAs5AQJ/IwBBEGsiBCQAIAQgAyABIAIgAWsiBUECdRDIUSAFajYCDCAAIAIgBEEMahDJUSAEQRBqJAALCQAgACABEMZRCwQAIAELFQAgACABNgIAIAAgAigCADYCBCAACwkAIAAgARDHUQsEACABCxkAAkAgAkUNACAAIAEgAkECdBCJARoLIAALDAAgACABIAIQylEaCxUAIAAgATYCACAAIAIoAgA2AgQgAAsVACAAIAE2AgAgACACKAIANgIEIAALCwAgAEG0sR4QpQcLCQAgACABEM5RCxAAIAAQz1EgARDPUXNBAXMLLgEBfwJAIAAoAgAiAUUNAAJAIAEQ0FEQ0VENACAAKAIARQ8LIABBADYCAAtBAQspAQF/AkAgACgCDCIBIAAoAhBHDQAgACAAKAIAKAIkEQAADwsgASgCAAsHACAAQX9GCxMAIAAgASACIAAoAgAoAgwRBAALBwAgABDQUQsNACAAKAIAENVRGiAACzMBAX8CQCAAKAIMIgEgACgCEEcNACAAIAAoAgAoAigRAAAPCyAAIAFBBGo2AgwgASgCAAs5AQF/AkAgACgCGCICIAAoAhxHDQAgACABIAAoAgAoAjQRAgAPCyAAIAJBBGo2AhggAiABNgIAIAELJwEBfwJAIAAoAgAiAkUNACACIAEQ1lEQ0VFFDQAgAEEANgIACyAACxMAIAAgASACIAAoAgAoAjARBAALBwAgABDaUQsHACAAENtRCxUAIABCADcCACAAQQhqQQA2AgAgAAsHACAAEN1RCxIAIAAoAgAgACAALQALEN5RGwsLACAAQYABcUEHdgsLACAAIAEQwAogAAsXACAAIAM2AhAgACACNgIMIAAgATYCCAsXACAAIAI2AhwgACABNgIUIAAgATYCGAsPACAAIAAoAhggAWo2AhgLDQAgACABIAIQ5VEgAAsHACAAEOZRCxIAIAAgASACIAEgAhDnURDoUQsHACAAENtRCwkAIAAgARDpUQueAQECfyMAQRBrIgQkAAJAIANB+P///wdPDQACQAJAIAMQ6lFFDQAgACADEOtRDAELIARBCGogAxDsUUEBahDtUSAAIAQoAggiBRDuUSAAIAQoAgwQ71EgACADEPBRIAUhAAsCQANAIAEgAkYNASAAIAEtAAAQ8VEgAEEBaiEAIAFBAWohAQwACwALIABBABDxUSAEQRBqJAAPCxDyUQALBwAgASAAawsHACAAQQtJCw0AIAAgAUH/AHE6AAsLLQEBf0EKIQECQCAAQQtJDQAgAEEBahD0USIAIABBf2oiACAAQQtGGyEBCyABCxkBAX8gARD1USECIAAgATYCBCAAIAI2AgALCQAgACABNgIACxAAIAAgAUGAgICAeHI2AggLCQAgACABNgIECwkAIAAgAToAAAsGABDzUQALBgAQrAEACwoAIABBB2pBeHELBwAgABD2UQsHACAAEPdRCwcAIAAQpgELdAEDfwJAIAAoAiwiASAAKAIYIgJPDQAgACACNgIsIAIhAQtBfyECAkAgAC0AMEEIcUUNAAJAIAAoAhAiAyABTw0AIAAgACgCCCAAKAIMIAEQ4FEgACgCECEDCyAAKAIMIgAgA08NACAALAAAEIBRIQILIAILoQEBBX8CQCAAKAIsIgIgACgCGCIDTw0AIAAgAzYCLCADIQILQX8hAwJAIAAoAggiBCAAKAIMIgVPDQACQCABEKpRRQ0AIAAgBCAFQX9qIAIQ4FEgARD6UQ8LIAEQ/VAhBgJAIAAoAjBBEHENAEF/IQMgBkH/AXEgBUF/ai0AAEcNAQsgACAEIAVBf2ogAhDgUSAAKAIMIAY6AAAgASEDCyADCwwAQQAgACAAEKpRGwuQAgEHfyMAQRBrIgIkAAJAAkAgARCqUQ0AIAAoAgghAyAAKAIMIQQCQCAAKAIYIgUgACgCHEcNAEF/IQYgAC0AMEEQcUUNAiAAKAIsIQcgACgCFCEIIABBIGoiBkEAEN8sIAYgBhD8URDRDSAAIAYQ3FEiBiAGIAAoAiQgAC0AKxD9UWoQ4VEgACAFIAhrEOJRIAAgACgCFCAHIAhrajYCLCAAKAIYIQULIAIgBUEBajYCDCAAIAJBDGogAEEsahD+USgCACIGNgIsAkAgAC0AMEEIcUUNACAAIABBIGoQ3FEiBSAFIAQgA2tqIAYQ4FELIAAgARD9UBCvUSEGDAELIAEQ+lEhBgsgAkEQaiQAIAYLJQEBf0EKIQECQCAALQALEN5RRQ0AIAAoAggQ/1FBf2ohAQsgAQsVAAJAIAEQ3lENACABEIBSIQALIAALCQAgACABEIFSCwsAIABB/////wdxCwgAIABB/wBxCxQAIAEgACAAKAIAIAEoAgAQglIbCwcAIAAgAUkLGwAgACABIAIgAyAEIAUQhFIgACADIAVqEPBRC9YBAQN/IwBBEGsiBiQAQff///8HIQcCQEH3////ByABayACSQ0AIAAQ3VEhCAJAIAFB8v///wNLDQAgBiABQQF0NgIMIAYgAiABajYCBCAGQQRqIAZBDGoQhVIoAgAQ7FFBAWohBwsgBkEEaiAHEO1RIAYoAgQhAgJAIARFDQAgAiAIIAQQ+1AaCwJAIAMgBEYNACACIARqIAVqIAggBGogAyAEaxD7UBoLAkAgAUEKRg0AIAgQhlILIAAgAhDuUSAAIAYoAggQ71EgBkEQaiQADwsQ8lEACwkAIAAgARCHUgsHACAAEIhSCxQAIAEgACAAKAIAIAEoAgAQjFIbCwcAIAAQiVILBwAgABCKUgsHACAAEItSCwcAIAAQpAELBwAgACABSQurAgIDfwN+AkAgASgCLCIFIAEoAhgiBk8NACABIAY2AiwgBiEFC0J/IQgCQCAEQRhxIgdFDQACQCADQQFHDQAgB0EYRg0BC0IAIQlCACEKAkAgBUUNACAFIAFBIGoQ3FFrrCEKCwJAAkACQCADDgMCAAEDCwJAIARBCHFFDQAgASgCDCABKAIIa6whCQwCCyAGIAEoAhRrrCEJDAELIAohCQsgCSACfCICQgBTDQAgCiACUw0AIARBCHEhAwJAIAJQDQACQCADRQ0AIAEoAgxFDQILIARBEHFFDQAgBkUNAQsCQCADRQ0AIAEgASgCCCIGIAYgAqdqIAUQ4FELAkAgBEEQcUUNACABIAEoAhQgASgCHBDhUSABIAKnEOJRCyACIQgLIAAgCBD1UBoLCQAgACABEI9SCxQAIAEgACABKAIAIAAoAgAQjFIbCwYAEKwBAAsKACAAEJgHEKQBCxoAIAAgASACKQMIQQAgAyABKAIAKAIQEUQACwoAIAAQsQYQpAELCgAgAEF4ahCxBgsKACAAQXhqEJNSCxMAIAAgACgCAEF0aigCAGoQsQYLEwAgACAAKAIAQXRqKAIAahCTUgsHACAAEJlSCxIAIAAoAgAgACAALQALEN5RGwspAQF/IwBBEGsiAyQAIAMgAjoADyAAIAEgA0EPahCbUiADQRBqJAAgAAsLACAAIAEgAhCdUgsfAAJAIAAtAAsQ3lFFDQAgACABEPBRDwsgACABEOtRCygAAkADQCABRQ0BIAAgAi0AADoAACABQX9qIQEgAEEBaiEADAALAAsLFQAgACACEJxSIAEgAmpBABDxUSAACxEAIAAgASAAKAIAKAIcEQIACxEAIAAgASAAKAIAKAIsEQIACwcAIAAQmFILQAECfyAAKAIoIQEDQAJAIAENAA8LQQAgACAAKAIkIAFBf2oiAUECdCICaigCACAAKAIgIAJqKAIAEQUADAALAAsQACAAIAE2AgAgARCxWSAACwoAIAAQ8FAQpAELBgAQrAEACwcAIAAQp1ILBgAgABBZCwsAIAAgATYCACAACwQAIAALBAAgAAsHACAAEKQBC2EBBH8gASAEIANraiEFAkACQANAIAMgBEYNAUF/IQYgASACRg0CIAEsAAAiByADLAAAIghIDQICQCAIIAdODQBBAQ8LIANBAWohAyABQQFqIQEMAAsACyAFIAJHIQYLIAYLDAAgACACIAMQrlIaCw0AIAAgASACEK9SIAALEgAgACABIAIgASACELBSELFSCwkAIAAgARCy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CQAgACABEJ1UCw0AIAAgASACEJlUIAALBwAgABCNVAsJACAAQQA2AgwLgwEBAn8jAEEQayIDJAACQCABQfj///8DTw0AAkACQCABEL1SRQ0AIAAgARC+UgwBCyADQQhqIAEQv1JBAWoQwFIgACADKAIIIgQQwVIgACADKAIMEMJSIAAgARDDUiAEIQALIAAgASACEJpUIAFBAnRqQQAQxFIgA0EQaiQADwsQxVIACykBAX8jAEEQayIDJAAgAyACNgIMIAAgASADQQxqEJtUIANBEGokACAACwsAIAAgASACEJxUCygAAkADQCABRQ0BIAAgAigCADYCACABQX9qIQEgAEEEaiEADAALAAsLCQAgACABEJ5UCywAAkAgACABRg0AA0AgACABQXxqIgFPDQEgACABEM1QIABBBGohAAwACwALCw0AIAEgAiADIAQQoFQLwgEBA38jAEGAAmsiBCQAIARCJTcD+AEgBEH4AWpBAXJB5aQRQQEgASgCBBDrUxD4UiEFIAQgAzcDACAEQeABaiAEQeABaiAEQeABakEYIAUgBEH4AWogBBDsU2oiBSABKAIEEO1TIQYgBEEUaiABKAIcEKIHIARB4AFqIAYgBSAEQSBqIARBHGogBEEYaiAEQRRqEJNUIARBFGoQpAcaIAAgBEEgaiAEKAIcIAQoAhggASACEJRUIQEgBEGAAmokACABCw0AIAEgAiADIAQQolQLwgEBAn8jAEGQAWsiBCQAIARCJTcDiAEgBEGIAWpBAXJBmaYRQQAgASgCBBDrUxD4UiEFIAQgAzYCACAEQfsAaiAEQfsAaiAEQfsAakENIAUgBEGIAWogBBDsU2oiAyABKAIEEO1TIQUgBEEEaiABKAIcEKIHIARB+wBqIAUgAyAEQRBqIARBDGogBEEIaiAEQQRqEJNUIARBBGoQpAcaIAAgBEEQaiAEKAIMIAQoAgggASACEJRUIQEgBEGQAWokACABCw0AIAEgAiADIAQQpFQLwgEBA38jAEGAAmsiBCQAIARCJTcD+AEgBEH4AWpBAXJB5aQRQQAgASgCBBDrUxD4UiEFIAQgAzcDACAEQeABaiAEQeABaiAEQeABakEYIAUgBEH4AWogBBDsU2oiBSABKAIEEO1TIQYgBEEUaiABKAIcEKIHIARB4AFqIAYgBSAEQSBqIARBHGogBEEY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PgAgASACIAMgBEECELxUIQQgAygCACECAkAgBEF/akEeSw0AIAJBBHENACAAIAQ2AgAPCyADIAJBBHI2AgALOwAgASACIAMgBEECELxUIQQgAygCACECAkAgBEEXSg0AIAJBBHENACAAIAQ2AgAPCyADIAJBBHI2AgALPgAgASACIAMgBEECELxUIQQgAygCACECAkAgBEF/akELSw0AIAJBBHENACAAIAQ2AgAPCyADIAJBBHI2AgALPAAgASACIAMgBEEDELxUIQQgAygCACECAkAgBEHtAkoNACACQQRxDQAgACAENgIADwsgAyACQQRyNgIAC0AAIAEgAiADIARBAhC8VCECIAMoAgAhBAJAIAJBf2oiAkELSw0AIARBBHENACAAIAI2AgAPCyADIARBBHI2AgALOwAgASACIAMgBEECELxUIQQgAygCACECAkAgBEE7Sg0AIAJBBHENACAAIAQ2AgAPCyADIAJBBHI2AgALbAEBfyMAQRBrIgQkACAEIAE2AgwCQANAIAAgBEEMahCmUQ0BIAAoAgAQrFEhASADKAIIQQEgARCrUUUNASAAEK1RGgwACwALAkAgACAEQQxqEKZRRQ0AIAIgAigCAEECcjYCAAsgBEEQaiQAC6MBAAJAIABBCGogACgCCCgCCBEAACIAQQRqKAIAIABBC2otAAAQ/VFBACAAQRBqKAIAIABBF2otAAAQ/VFrRw0AIAQgBCgCAEEEcjYCAA8LIAIgAyAAIABBGGogBSAEQQAQzVIhBCABKAIAIQUCQCAEIABHDQAgBUEMRw0AIAFBADYCAA8LAkAgBCAAa0EMRw0AIAVBC0oNACABIAVBDGo2AgALCzsAIAEgAiADIARBAhC8VCEEIAMoAgAhAgJAIARBPEoNACACQQRxDQAgACAENgIADwsgAyACQQRyNgIACzsAIAEgAiADIARBARC8VCEEIAMoAgAhAgJAIARBBkoNACACQQRxDQAgACAENgIADwsgAyACQQRyNgIACykAIAEgAiADIARBBBC8VCEEAkAgAy0AAEEEcQ0AIAAgBEGUcWo2AgALC2gBAX8jAEEQayIEJAAgBCABNgIMQQYhAQJAAkAgACAEQQxqEKZRDQBBBCEBIAMgACgCABCsURCyVEElRw0AQQIhASAAEK1RIARBDGoQplFFDQELIAIgAigCACABcjYCAAsgBEEQaiQAC+EDAQR/IwBBEGsiCCQAIAggAjYCCCAIIAE2AgwgCEEEaiADKAIcEKIHIAgoAgQQzFEhAiAIQQRqEKQHGkEAIQEgBEEANgIAAkADQCAGIAdGDQEgAQ0BAkAgCEEMaiAIQQhqEM1RDQACQAJAIAIgBigCABDLVEElRw0AIAZBBGoiASAHRg0CAkACQCACIAEoAgAQy1QiAUHFAEYNACABQf8BcUEwRg0AQQQhCUEAIQoMAQsgBkEIaiILIAdGDQNBCCEJIAEhCiACIAsoAgAQy1QhAQsgCCAAIAgoAgwgCCgCCCADIAQgBSABIAogACgCACgCJBETADYCDCAGIAlqQQRqIQYMAQsCQCACQQEgBigCABDSUUUNAAJAA0AgBkEEaiIGIAdGDQEgAkEBIAYoAgAQ0lENAAsLA0AgCEEMaiAIQQhqEM1RDQIgAkEBIAgoAgwQ01EQ0lFFDQIgCEEMahDUURoMAAsACwJAIAIgCCgCDBDTURCyUyACIAYoAgAQslNHDQAgBkEEaiEGIAhBDGoQ1FEaDAELIARBBDYCAAsgBCgCACEBDAELCyAEQQQ2AgALAkAgCEEMaiAIQQhqEM1RRQ0AIAQgBCgCAEECcjYCAAsgCCgCDCEGIAhBEGokACAGCxMAIAAgAUEAIAAoAgAoAjQRBAALBABBAgtkAQF/IwBBIGsiBiQAIAZBGGpBACkD2OccNwMAIAZBEGpBACkD0OccNwMAIAZBACkDyOccNwMIIAZBACkDwOccNwMAIAAgASACIAMgBCAFIAYgBkEgahDKVCEFIAZBIGokACAFCz0BAn8gACABIAIgAyAEIAUgAEEIaiAAKAIIKAIUEQAAIgYQu1MiByAHIAYoAgQgBi0ACxCzU0ECdGoQylQLWQEBfyMAQRBrIgYkACAGIAE2AgwgBkEIaiADKAIcEKIHIAYoAggQzFEhASAGQQhqEKQHGiAAIAVBGGogBkEMaiACIAQgARDQVCAGKAIMIQEgBkEQaiQAIAELQgACQCACIAMgAEEIaiAAKAIIKAIAEQAAIgAgAEGoAWogBSAEQQAQr1MgAGsiAEGnAUoNACABIABBDG1BB282AgALC1kBAX8jAEEQayIGJAAgBiABNgIMIAZBCGogAygCHBCiByAGKAIIEMxRIQEgBkEIahCkBxogACAFQRBqIAZBDGogAiAEIAEQ0lQgBigCDCEBIAZBEGokACABC0IAAkAgAiADIABBCGogACgCCCgCBBEAACIAIABBoAJqIAUgBEEAEK9TIABrIgBBnwJKDQAgASAAQQxtQQxvNgIACwtXAQF/IwBBEGsiBiQAIAYgATYCDCAGQQhqIAMoAhwQogcgBigCCBDMUSEBIAZBCGoQpAcaIAVBFGogBkEMaiACIAQgARDUVCAGKAIMIQEgBkEQaiQAIAELQwAgASACIAMgBEEEENVUIQQCQCADLQAAQQRxDQAgACAEQdAPaiAEQewOaiAEIARB5ABJGyAEQcUASBtBlHFqNgIACwvKAQEDfyMAQRBrIgUkACAFIAE2AgxBACEBQQYhBgJAAkAgACAFQQxqEM1RDQBBBCEGIANBwAAgACgCABDTUSIHENJRRQ0AIAMgBxDLVCEBAkADQCABQVBqIQEgABDUUSIHIAVBDGoQzVENASAEQQJIDQEgA0HAACAHKAIAENNRIgcQ0lFFDQMgBEF/aiEEIAFBCmwgAyAHEMtUaiEBDAALAAtBAiEGIAcgBUEMahDNUUUNAQsgAiACKAIAIAZyNgIACyAFQRBqJAAgAQurCAECfyMAQTBrIggkACAIIAE2AiwgBEEANgIAIAggAygCHBCiByAIKAIAEMxRIQkgCBCkBxoCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBkG/f2oOOQABFwQXBRcGBxcXFwoXFxcXDg8QFxcXExUXFxcXFxcXAAECAwMXFwEXCBcXCQsXDBcNFwsXFxESFBYLIAAgBUEYaiAIQSxqIAIgBCAJENBUDBgLIAAgBUEQaiAIQSxqIAIgBCAJENJUDBcLIABBCGogACgCCCgCDBEAACEBIAggACAIKAIsIAIgAyAEIAUgARC7UyIGIAYgASgCBCABLQALELNTQQJ0ahDKVDYCLAwWCyAFQQxqIAhBLGogAiAEIAkQ11QMFQsgCEEYakEAKQPI5hw3AwAgCEEQakEAKQPA5hw3AwAgCEEAKQO45hw3AwggCEEAKQOw5hw3AwAgCCAAIAEgAiADIAQgBSAIIAhBIGoQylQ2AiwMFAsgCEEYakEAKQPo5hw3AwAgCEEQakEAKQPg5hw3AwAgCEEAKQPY5hw3AwggCEEAKQPQ5hw3AwAgCCAAIAEgAiADIAQgBSAIIAhBIGoQylQ2AiwMEwsgBUEIaiAIQSxqIAIgBCAJENhUDBILIAVBCGogCEEsaiACIAQgCRDZVAwRCyAFQRxqIAhBLGogAiAEIAkQ2lQMEAsgBUEQaiAIQSxqIAIgBCAJENtUDA8LIAVBBGogCEEsaiACIAQgCRDcVAwOCyAIQSxqIAIgBCAJEN1UDA0LIAAgBUEIaiAIQSxqIAIgBCAJEN5UDAwLIAhB8OYcQSwQSyEGIAYgACABIAIgAyAEIAUgBiAGQSxqEMpUNgIsDAsLIAhBEGpBACgCsOccNgIAIAhBACkDqOccNwMIIAhBACkDoOccNwMAIAggACABIAIgAyAEIAUgCCAIQRRqEMpUNgIsDAoLIAUgCEEsaiACIAQgCRDfVAwJCyAIQRhqQQApA9jnHDcDACAIQRBqQQApA9DnHDcDACAIQQApA8jnHDcDCCAIQQApA8DnHDcDACAIIAAgASACIAMgBCAFIAggCEEgahDKVDYCLAwICyAFQRhqIAhBLGogAiAEIAkQ4FQMBwsgACABIAIgAyAEIAUgACgCACgCFBEGACEEDAcLIABBCGogACgCCCgCGBEAACEBIAggACAIKAIsIAIgAyAEIAUgARC7UyIGIAYgASgCBCABLQALELNTQQJ0ahDKVDYCLAwFCyAFQRRqIAhBLGogAiAEIAkQ1FQMBAsgBUEUaiAIQSxqIAIgBCAJEOFUDAMLIAZBJUYNAQsgBCAEKAIAQQRyNgIADAELIAhBLGogAiAEIAkQ4lQLIAgoAiwhBAsgCEEwaiQAIAQLPgAgASACIAMgBEECENVUIQQgAygCACECAkAgBEF/akEeSw0AIAJBBHENACAAIAQ2AgAPCyADIAJBBHI2AgALOwAgASACIAMgBEECENVUIQQgAygCACECAkAgBEEXSg0AIAJBBHENACAAIAQ2AgAPCyADIAJBBHI2AgALPgAgASACIAMgBEECENVUIQQgAygCACECAkAgBEF/akELSw0AIAJBBHENACAAIAQ2AgAPCyADIAJBBHI2AgALPAAgASACIAMgBEEDENVUIQQgAygCACECAkAgBEHtAkoNACACQQRxDQAgACAENgIADwsgAyACQQRyNgIAC0AAIAEgAiADIARBAhDVVCECIAMoAgAhBAJAIAJBf2oiAkELSw0AIARBBHENACAAIAI2AgAPCyADIARBBHI2AgALOwAgASACIAMgBEECENVUIQQgAygCACECAkAgBEE7Sg0AIAJBBHENACAAIAQ2AgAPCyADIAJBBHI2AgALZQEBfyMAQRBrIgQkACAEIAE2AgwCQANAIAAgBEEMahDNUQ0BIANBASAAKAIAENNRENJRRQ0BIAAQ1FEaDAALAAsCQCAAIARBDGoQzVFFDQAgAiACKAIAQQJyNgIACyAEQRBqJAALowEAAkAgAEEIaiAAKAIIKAIIEQAAIgBBBGooAgAgAEELai0AABCzU0EAIABBEGooAgAgAEEXai0AABCzU2tHDQAgBCAEKAIAQQRyNgIADwsgAiADIAAgAEEYaiAFIARBABCvUyEEIAEoAgAhBQJAIAQgAEcNACAFQQxHDQAgAUEANgIADwsCQCAEIABrQQxHDQAgBUELSg0AIAEgBUEMajYCAAsLOwAgASACIAMgBEECENVUIQQgAygCACECAkAgBEE8Sg0AIAJBBHENACAAIAQ2AgAPCyADIAJBBHI2AgALOwAgASACIAMgBEEBENVUIQQgAygCACECAkAgBEEGSg0AIAJBBHENACAAIAQ2AgAPCyADIAJBBHI2AgALKQAgASACIAMgBEEEENVUIQQCQCADLQAAQQRxDQAgACAEQZRxajYCAAsLaAEBfyMAQRBrIgQkACAEIAE2AgxBBiEBAkACQCAAIARBDGoQzVENAEEEIQEgAyAAKAIAENNREMtUQSVHDQBBAiEBIAAQ1FEgBEEMahDNUUUNAQsgAiACKAIAIAFyNgIACyAEQRBqJAALTAEBfyMAQYABayIHJAAgByAHQfQAajYCDCAAKAIIIAdBEGogB0EMaiAEIAUgBhDkVCAHQRBqIAcoAgwgARDlVCEAIAdBgAFqJAAgAAtkAQF/IwBBEGsiBiQAIAZBADoADyAGIAU6AA4gBiAEOgANIAZBJToADAJAIAVFDQAgBkENaiAGQQ5qEMxQCyACIAEgASABIAIoAgAQ5lQgBkEMaiADIAAQNmo2AgAgBkEQaiQACysBAX8jAEEQayIDJAAgA0EIaiAAIAEgAhDnVCADKAIMIQIgA0EQaiQAIAILBwAgASAAawsNACAAIAEgAiADEOhUCw0AIAAgASACIAMQ6VQLVgEBfyMAQSBrIgQkACAEQRhqIAEgAhDqVCAEQRBqIAQoAhggBCgCHCADEOtUIAQoAhAhAiAEIAQoAhQ2AgwgACABIAIQ7FQgBEEMahDtVCAEQSBqJAALCwAgACABIAIQ7lQLTAEBfyMAQRBrIgQkACAEIAM2AgwCQANAIAEgAkYNASAEQQxqIAEsAAAQtVEaIAFBAWohAQwACwALIAAgASAEQQxqEO1UIARBEGokAAsJACAAIAEQ71QLDAAgACABIAIQ8FQaCygBAX8jAEEQayIDJAAgAyACNgIMIAAgASADQQxqEPFUGiADQRBqJAALCQAgACABEI1RCxUAIAAgATYCACAAIAIoAgA2AgQgAAsVACAAIAE2AgAgACACKAIANgIEIAALTAEBfyMAQaADayIHJAAgByAHQaADajYCDCAAQQhqIAdBEGogB0EMaiAEIAUgBhDzVCAHQRBqIAcoAgwgARD0VCEAIAdBoANqJAAgAAuDAQEBfyMAQZABayIGJAAgBiAGQYQBajYCHCAAKAIAIAZBIGogBkEcaiADIAQgBRDkVCAGQgA3AxAgBiAGQSBqNgIMAkAgASAGQQxqIAEgAigCABD1VCAGQRBqIAAoAgAQ9lQiAEF/Rw0AEPdUAAsgAiABIABBAnRqNgIAIAZBkAFqJAALKwEBfyMAQRBrIgMkACADQQhqIAAgASACEPhUIAMoAgwhAiADQRBqJAAgAgsKACABIABrQQJ1CzUBAX8jAEEQayIFJAAgBUEMaiAEEKdTIQQgACABIAIgAxCDVSEDIAQQqVMaIAVBEGokACADCwYAEKwBAAsNACAAIAEgAiADEPlUCw0AIAAgASACIAMQ+lQLVgEBfyMAQSBrIgQkACAEQRhqIAEgAhD7VCAEQRBqIAQoAhggBCgCHCADEPxUIAQoAhAhAiAEIAQoAhQ2AgwgACABIAIQ/VQgBEEMahD+VCAEQSBqJAALCwAgACABIAIQ/1QLTAEBfyMAQRBrIgQkACAEIAM2AgwCQANAIAEgAkYNASAEQQxqIAEoAgAQ11EaIAFBBGohAQwACwALIAAgASAEQQxqEP5UIARBEGokAAsJACAAIAEQgFULDAAgACABIAIQgVUaCygBAX8jAEEQayIDJAAgAyACNgIMIAAgASADQQxqEIJVGiADQRBqJAALCQAgACABEL9RCxUAIAAgATYCACAAIAIoAgA2AgQgAAsVACAAIAE2AgAgACACKAIANgIEIAALgQkBBn8gASgCACEEAkACQAJAAkACQAJAAkACQAJAAkACQAJAIANFDQAgAygCACIFRQ0AAkAgAA0AIAIhAwwDCyADQQA2AgAgAiEDDAELAkACQEEAKALIpR4oAgANACAARQ0BIAJFDQwgAiEFAkADQCAELAAAIgNFDQEgACADQf+/A3E2AgAgAEEEaiEAIARBAWohBCAFQX9qIgUNAAwOCwALIABBADYCACABQQA2AgAgAiAFaw8LIAIhAyAARQ0DIAIhA0EAIQYMBQsgBBBZDwtBASEGDAMLQQAhBgwBC0EBIQYLA0ACQAJAIAYOAgABAQsgBC0AAEEDdiIGQXBqIAVBGnUgBmpyQQdLDQMgBEEBaiEGAkACQCAFQYCAgBBxDQAgBiEEDAELAkAgBi0AAEHAAXFBgAFGDQAgBEF/aiEEDAcLIARBAmohBgJAIAVBgIAgcQ0AIAYhBAwBCwJAIAYtAABBwAFxQYABRg0AIARBf2ohBAwHCyAEQQNqIQQLIANBf2ohA0EBIQYMAQsDQCAELQAAIQUCQCAEQQNxDQAgBUF/akH+AEsNACAEKAIAIgVB//37d2ogBXJBgIGChHhxDQADQCADQXxqIQMgBCgCBCEFIARBBGoiBiEEIAUgBUH//ft3anJBgIGChHhxRQ0ACyAGIQQLAkAgBUH/AXEiBkF/akH+AEsNACADQX9qIQMgBEEBaiEEDAELCyAGQb5+aiIGQTJLDQMgBEEBaiEEIAZBAnRB8LYdaigCACEFQQAhBgwACwALA0ACQAJAIAYOAgABAQsgA0UNBwJAA0ACQAJAAkAgBC0AACIGQX9qIgdB/gBNDQAgBiEFDAELIANBBUkNASAEQQNxDQECQANAIAQoAgAiBUH//ft3aiAFckGAgYKEeHENASAAIAVB/wFxNgIAIAAgBC0AATYCBCAAIAQtAAI2AgggACAELQADNgIMIABBEGohACAEQQRqIQQgA0F8aiIDQQRLDQALIAQtAAAhBQsgBUH/AXEiBkF/aiEHCyAHQf4ASw0CCyAAIAY2AgAgAEEEaiEAIARBAWohBCADQX9qIgNFDQkMAAsACyAGQb5+aiIGQTJLDQMgBEEBaiEEIAZBAnRB8LYdaigCACEFQQEhBgwBCyAELQAAIgdBA3YiBkFwaiAGIAVBGnVqckEHSw0BIARBAWohCAJAAkACQAJAIAdBgH9qIAVBBnRyIgZBf0wNACAIIQQMAQsgCC0AAEGAf2oiB0E/Sw0BIARBAmohCCAHIAZBBnQiCXIhBgJAIAlBf0wNACAIIQQMAQsgCC0AAEGAf2oiB0E/Sw0BIARBA2ohBCAHIAZBBnRyIQYLIAAgBjYCACADQX9qIQMgAEEEaiEADAELED5BGTYCACAEQX9qIQQMBQtBACEGDAALAAsgBEF/aiEEIAUNASAELQAAIQULIAVB/wFxDQACQCAARQ0AIABBADYCACABQQA2AgALIAIgA2sPCxA+QRk2AgAgAEUNAQsgASAENgIAC0F/DwsgASAENgIAIAILBQBB/wALBQBB/wALCAAgABDZURoLCAAgABDZURoLCAAgABDZURoLCAAgABCKVRoLDQAgAEEBQS0QoAcgAAsEAEEACwwAIABBgoaAIDYAAAsMACAAQYKGgCA2AAALBQBB/wALBQBB/wALCAAgABDZURoLCAAgABDZURoLCAAgABDZURoLCAAgABCKVRoLBABBAAsMACAAQYKGgCA2AAALDAAgAEGChoAgNgAACwgAQf////8HCwgAQf////8HCwgAIAAQ2VEaCwgAIAAQm1UaCwcAIAAQnFULBwAgABCdVQsVACAAQgA3AgAgAEEIakEANgIAIAALCAAgABCbVRoLDAAgAEEBQS0QllQaCwQAQQALDAAgAEGChoAgNgAACwwAIABBgoaAIDYAAAsIAEH/////BwsIAEH/////BwsIACAAENlRGgsIACAAEJtVGgsIACAAEJtVGgsMACAAQQFBLRCWVBoLBABBAAsMACAAQYKGgCA2AAALDAAgAEGChoAgNgAACz0AAkAgAS0ACxC2Uw0AIAAgASkCADcCACAAQQhqIAFBCGooAgA2AgAgAA8LIAAgASgCACABKAIEEK1VIAALfAECfyMAQRBrIgMkAAJAAkACQCACEL1SRQ0AIAAgAhC+UgwBCyACQfj///8DTw0BIANBCGogAhC/UkEBahDAUiAAIAMoAggiBBDBUiAAIAMoAgwQwlIgACACEMNSIAQhAAsgACABIAJBAWoQtlEaIANBEGokAA8LEMVSAAuCBAECfyMAQZACayIHJAAgByACNgKIAiAHIAE2AowCIAdB6Qg2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VSACIAooAgQ2AAAgCkEEaiABEMtVIAggCkEEahDfURogCkEEahCCBhogCkEEaiABEMxVIAcgCkEEahDfURogCkEEahCCBhogAyABEM1VOgAAIAQgARDOVToAACAKQQRqIAEQz1UgBSAKQQRqEN9RGiAKQQRqEIIGGiAKQQRqIAEQ0FUgBiAKQQRqEN9RGiAKQQRqEIIGGiABENFVIQELIAkgATYCACAKQRBqJAALGwAgACABKAIAEK5RQRh0QRh1IAEoAgAQ0lUaCwsAIAAgATYCACAACwwAIAAgARDTVUEBcwsRACAAIAAoAgBBAWo2AgAgAAsHACAAIAFrCwwAIABBACABaxDUVQsLACAAIAEgAhDVVQu3AQEGfyMAQRBrIgMkACABKAIAIQQCQEEAIAAoAgAiBSAAENZVKAIAQekIRiIGGyACKAIAIAVrIgdBAXQiCEEBIAhBAUsbQX8gB0H/////B0kbIgcQYSIIRQ0AAkAgBg0AIAAQ11UaCyADQecINgIEIAAgA0EIaiAIIANBBGoQ+1MiCBDYVSEAIAgQ/1MaIAEgACgCACAEIAVrajYCACACIAAoAgAgB2o2AgAgA0EQaiQADwsQ1VIAC70BAQZ/IwBBEGsiAyQAIAEoAgAhBAJAQQAgACgCACIFIAAQ2VUoAgBB6QhGIgYbQQQgAigCACIHIAVrIghBAXQgByAFRkEBcRtBfyAIQf////8HSRsiBxBhIghFDQACQCAGDQAgABDaVRoLIANB5wg2AgQgACADQQhqIAggA0EEahCzVSIIENtVIQAgCBC+VRogASAAKAIAIAQgBWtqNgIAIAIgACgCACAHQXxxajYCACADQRBqJAAPCxDVUgALCwAgAEEAENxVIAALGQAgACABEOFVIgFBBGogAigCABCoUhogAQsLACAAQbSvHhClBwsRACAAIAEgASgCACgCLBEDAAsRACAAIAEgASgCACgCIBEDAAsRACAAIAEgASgCACgCHBEDAAsPACAAIAAoAgAoAgwRAAALDwAgACAAKAIAKAIQEQAACxEAIAAgASABKAIAKAIUEQMACxEAIAAgASABKAIAKAIYEQMACw8AIAAgACgCACgCJBEAAAsLACAAQayvHhClBwsRACAAIAEgASgCACgCLBEDAAsRACAAIAEgASgCACgCIBEDAAsRACAAIAEgASgC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BSAKQQRqEN9RGiAKQQRqEIIGGiAKQQRqIAEQ/VUgBiAKQQRqEPhVGiAKQQRqELBTGiABEP5VIQEMAQsgCkEEaiABEP9VIgEQgFYgAiAKKAIENgAAIApBBGogARCBViAIIApBBGoQ+FUaIApBBGoQsFMaIApBBGogARCCViAHIApBBGoQ+FUaIApBBGoQsFMaIAMgARCDVjYCACAEIAEQhFY2AgAgCkEEaiABEIVWIAUgCkEEahDfURogCkEEahCCBhogCkEEaiABEIZWIAYgCkEEahD4VRogCkEEahCwUxogARCHViEBCyAJIAE2AgAgCkEQaiQACxUAIAAgASgCABDVUSABKAIAEIhWGguUAQECfwJAAkACQAJAAkAgAC0ACyICELZTRQ0AIAAoAgQiAiAAKAIIELdTQX9qIgNGDQEMAgtBASEDIAIQvFMiAkEBRw0CCyAAIANBASADIAMQklYgAyECCyAAKAIAIQMgACACQQFqEMNSDAELIAAgAkEBahC+UiAAIQMLIAMgAkECdGoiACABEMRSIABBBGpBABDEUgsHACAAEI1UCwsAIAAgATYCACAACwwAIAAgARCJVkEBcwsRACAAIAAoAgBBBGo2AgAgAAsKACAAIAFrQQJ1CwwAIABBACABaxCKVgsLACAAIAEgAhCLVgu9AQEGfyMAQRBrIgMkACABKAIAIQQCQEEAIAAoAgAiBSAAEIxWKAIAQekIRiIGG0EEIAIoAgAiByAFayIIQQF0IAcgBUZBAXEbQX8gCEH/////B0kbIgcQYSIIRQ0AAkAgBg0AIAAQjVYaCyADQecINgIEIAAgA0EIaiAIIANBBGoQp1QiCBCOViEAIAgQqlQaIAEgACgCACAEIAVrajYCACACIAAoAgAgB0F8cWo2AgAgA0EQaiQADwsQ1VIACwsAIABBxK8eEKUHCxEAIAAgASABKAIAKAIsEQMACxEAIAAgASABKAIAKAIgEQMACwsAIAAgARCUViAACxEAIAAgASABKAIAKAIcEQMACw8AIAAgACgCACgCDBEAAAsPACAAIAAoAgAoAhARAAALEQAgACABIAEoAgAoAhQRAwALEQAgACABIAEoAgAoAhgRAwALDwAgACAAKAIAKAIkEQAACwsAIABBvK8eEKUHCxEAIAAgASABKAIAKAIsEQMACxEAIAAgASABKAIA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IAQgAjYCACAHIAU2AgBBAwsSACAEIAI2AgAgByAFNgIAQQMLCwAgBCACNgIAQQMLBABBAQsEAEEBCzkBAX8jAEEQayIFJAAgBSAENgIMIAUgAyACazYCCCAFQQxqIAVBCGoQjlIoAgAhBCAFQRBqJAAgBAsEAEEBCwcAIAAQpAELKgEBf0EAIQMCQCACQf8ASw0AIAJBAnRBsOgcaigCACABcUEARyEDCyADC04BAn8CQANAIAEgAkYNAUEAIQQCQCABKAIAIgVB/wBLDQAgBUECdEGw6BxqKAIAIQQLIAMgBDYCACADQQRqIQMgAUEEaiEBDAALAAsgAQs/AQF/AkADQCACIANGDQECQCACKAIAIgRB/wBLDQAgBEECdEGw6BxqKAIAIAFxDQILIAJBBGohAgwACwALIAILPQEBfwJAA0AgAiADRg0BIAIoAgAiBEH/AEsNASAEQQJ0QbDoHGooAgAgAXFFDQEgAkEEaiECDAALAAsgAgseAAJAIAFB/wBLDQAgAUECdEHwrh1qKAIAIQELIAELQwEBfwJAA0AgASACRg0BAkAgASgCACIDQf8ASw0AIANBAnRB8K4daigCACEDCyABIAM2AgAgAUEEaiEBDAALAAsgAQseAAJAIAFB/wBLDQAgAUECdEHwoh1qKAIAIQELIAELQwEBfwJAA0AgASACRg0BAkAgASgCACIDQf8ASw0AIANBAnRB8KIdaigCACEDCyABIAM2AgAgAUEEaiEBDAALAAsgAQsEACABCywAAkADQCABIAJGDQEgAyABLAAANgIAIANBBGohAyABQQFqIQEMAAsACyABCxMAIAEgAiABQYABSRtBGHRBGHULOQEBfwJAA0AgASACRg0BIAQgASgCACIFIAMgBUGAAUkbOgAAIARBAWohBCABQQRqIQEMAAsACyABCysBAX8gAEH85xw2AgACQCAAKAIIIgFFDQAgAC0ADEEBRw0AIAEQ5yALIAALCgAgABCZWRCkAQsjAAJAIAFBAEgNACABQQJ0QfCuHWooAgAhAQsgAUEYdEEYdQtCAQF/AkADQCABIAJGDQECQCABLAAAIgNBAEgNACADQQJ0QfCuHWooAgAhAwsgASADOgAAIAFBAWohAQwACwALIAELIwACQCABQQBIDQAgAUECdEHwoh1qKAIAIQELIAFBGHRBGHULQgEB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QQBBAToAgL4eQQBBACgC0L0eNgLovR4LQdC9HiECIANBCGpB0L0eQRgQqQdFDQJB6L0eIQIgA0EIakHovR5BGBCpB0UNAkEYEF4iAkUNAQsgAiADKQIINwIAIAJBEGogA0EIakEQaikCADcCACACQQhqIANBCGpBCGopAgA3AgAMAQtBACECCyADQSBqJAAgAguFAwEDfwJAIAEtAAANAAJAQejiERDFWSIBRQ0AIAEtAAANAQsCQCAAQQxsQeCdHWoQxVkiAUUNACABLQAADQELAkBB/uIREMVZIgFFDQAgAS0AAA0BC0GM6xEhAQtBACECAkACQANAIAEgAmotAAAiA0UNASADQS9GDQFBFyEDIAJBAWoiAkEXRw0ADAILAAsgAiEDC0GM6xEhBAJAAkACQAJAAkAgAS0AACICQS5GDQAgASADai0AAA0AIAEhBCACQcMARw0BCyAELQABRQ0BCyAEQYzrERCCEkUNACAEQa/eERCCEg0BCwJAIAANAEHEnh0hAiAELQABQS5GDQILQQAPCwJAQQAoAoS+HiICRQ0AA0AgBCACQQhqEIISRQ0CIAIoAiAiAg0ACwsCQEEkEF4iAkUNACACQRQ2AgQgAkGwnh02AgAgAkEIaiIBIAQgAxBLGiABIANqQQA6AAAgAkEAKAKEvh42AiBBACACNgKEvh4LIAJBxJ4dIAAgAnIbIQILIAILhQEBBH8CQCAAQT0Q4E8iASAARw0AQQAPC0EAIQICQCAAIAEgAGsiA2otAAANAEEAKAKIvh4iBEUNACAEKAIAIgFFDQACQANAAkAgACABIAMQwkANACABIANqIgEtAABBPUYNAgsgBCgCBCEBIARBBGohBCABDQAMAgsACyABQQFqIQILIAILeAEDfyMAQRBrIgAkAAJAIABBDGogAEEIahA0DQBBACAAKAIMQQJ0QQRqEF4iATYCiL4eIAFFDQACQCAAKAIIEF4iAUUNAEEAKAKIvh4iAiAAKAIMQQJ0akEANgIAIAIgARA1RQ0BC0EAQQA2Aoi+HgsgAEEQaiQACwQAIAALAwAACzYBAX8gAEEBIABBAUsbIQEDfwJAAkAgARBeIgANABDLWSIADQFBACEACyAADwsgABEJAAwACwsGABDVUgALBQAQ7VkLkAIBA38jAEEQayIIJAACQEH2////ByABayACSQ0A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IgQNACAAIAIgAxD8WSEECyABQRBqJAAgBAsvAQJ/IAAgASgCACICQXhqKAIAIgM2AgggACABIANqNgIAIAAgAkF8aigCADYCBAsJAEEAIAAgARsLhQEBAn8jAEHAAGsiAyQAQQAhBAJAIAAgAUgNACADQfi7HTYCDCADIAI2AgQgAyAANgIIIANBEGpBAEEkEEgaIANBADYCPCADQoGAgICAgICAATcCNCACIANBBGogASABQQFBACACKAIAKAIUERAAIABBACADKAIcGyEECyADQcAAaiQAIAQL0wEBAX8jAEHAAGsiAyQAIANByLsdNgIMIAMgADYCCCADQfi7HTYCBEEAIQAgA0EQakEAQSsQSBogA0EANgI8IANBAToAOyACIANBBGogAUEBQQAgAigCACgCGBEKAAJAAkACQCADKAIoDgIAAQILIAMoAhhBACADKAIkQQFGG0EAIAMoAiBBAUYbQQAgAygCLEEBRhshAAwBCwJAIAMoAhxBAUYNACADKAIsDQEgAygCIEEBRw0BIAMoAiRBAUcNAQsgAygCFCEACyADQcAAaiQAIAALPAACQCAAIAEoAgggBRD3WUUNACABIAIgAyAEEP5ZDwsgACgCCCIAIAEgAiADIAQgBSAAKAIAKAIUERAAC58BACAAQQE6ADUCQCAAKAIEIAJHDQAgAEEBOgA0AkACQCAAKAIQIgINACAAQQE2AiQgACADNgIYIAAgATYCECADQQFHDQIgACgCMEEBRg0BDAILAkAgAiABRw0AAkAgACgCGCICQQJHDQAgACADNgIYIAMhAgsgACgCMEEBRw0CIAJBAUYNAQwCCyAAIAAoAiRBAWo2AiQLIABBAToANgsLggIAAkAgACABKAIIIAQQ91lFDQAgASACIAMQgFoPCwJAAkAgACABKAIAIAQQ91lFDQACQAJAIAEoAhAgAkYNACABKAIUIAJHDQELIANBAUcNAiABQQE2AiAPCyABIAM2AiACQCABKAIsQQRGDQAgAUEAOwE0IAAoAggiACABIAIgAkEBIAQgACgCACgCFBEQAAJAIAEtADVBAUcNACABQQM2AiwgAS0ANEUNAQwDCyABQQQ2AiwLIAEgAjYCFCABIAEoAihBAWo2AiggASgCJEEBRw0BIAEoAhhBAkcNASABQQE6ADYPCyAAKAIIIgAgASACIAMg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dUdjVGFibGVTdGVwRml4AEx1YXVDbG9uZVRhYmxlRml4AHBhdHRlcm4gdG9vIGNvbXBsZXgAX19uZXdpbmRleABfX2luZGV4AGludmFsaWQgY2FwdHVyZSBpbmRleABldmVudEJ5SW5kZXgAdGV4dFZhbHVlUnVuQnlJbmRleABhbmltYXRpb25CeUluZGV4AHZpZXdNb2RlbEJ5SW5kZXgAc3RhdGVNYWNoaW5lQnlJbmRleABzdGF0ZUNoYW5nZWROYW1lQnlJbmRleABpbnN0YW5jZUJ5SW5kZXgAYXJ0Ym9hcmRCeUluZGV4AGxpc3RJbmRleABnZXRJbmRleAB2YWx1ZUluZGV4AGNoYW5nZUluZGV4AG1heAAtKyAgIDBYMHgALTBYKzBYIDBYLTB4KzB4IDB4AC10dwBfX3BvdwBpbnRlZ2VyIG92ZXJmbG93AEMgc3RhY2sgb3ZlcmZsb3cAc3RyaW5nIGxlbmd0aCBvdmVyZmxvdwB0YWJsZSBvdmVyZmxvdwB1bnNpZ25lZCBvdmVyZmxvdwBBcnRib2FyZENvbXBvbmVudExpc3RSb3cAUHJvbWlzZS5uZXcAdmlldwBjb2xvclZpZXcAZGVwdGhWaWV3AGRyYXcAdWxhdwBhbGF3AE5vdgBzZXRmZW52AGdldGZlbnYAX19pZGl2AF9fZGl2AHdhdgBUaHUATHVhdQB0YXUAcmVxdWlyZSBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgY29udGV4dABkYXRhQ29udGV4dABEYXRhQ29udGV4dABuZXh0AGZvY3VzTmV4dABzb3d0AGlucHV0AGlzVGV4dElucHV0AGFzVGV4dElucHV0AGV4cGVjdHNLZXlib2FyZElucHV0AFNNSUlucHV0AGxheW91dABleGVjdXRpb24gZXhjZWVkZWQgJWQgbWlsbGlzZWNvbmQlcyB0aW1lb3V0AGV4ZWN1dGlvbiBleGNlZWRlZCAlLjFmIHNlY29uZCVzIHRpbWVvdXQAVGltZW91dABidXR0AEF1Z3VzdABObyBob3N0AFJlc291cmNlIGRvZXMgbm90IGV4aXN0AGxpc3QAUHJvcGVydHlMaXN0AGdldExpc3QAVmlld01vZGVsSW5zdGFuY2VMaXN0AHdlc3QAYnRlc3QAbmVhcmVzdABpc2RzdABlYXN0AHNxcnQAc29ydABzZXRWaWV3cG9ydABkYXRhIHN0cmluZyB0b28gc2hvcnQAdW5zaWduZWQgc2hvcnQAYnVmZmVyLmNvbnZlcnQAcmV2ZXJzZUNvbnZlcnQAaW52ZXJ0AGFzc2VydABpbnNlcnQAc3RhcnQAd29ya1N0YXJ0AGJub3QAZG90AC1oYm90AGNvdW50AHByb3BlcnR5Q291bnQAaW5wdXRDb3VudABldmVudENvdW50AHJlcG9ydGVkRXZlbnRDb3VudAB0ZXh0VmFsdWVSdW5Db3VudABhbmltYXRpb25Db3VudAB2aWV3TW9kZWxDb3VudABzdGF0ZU1hY2hpbmVDb3VudABpbmNyZW1lbnRSZWZlcmVuY2VDb3VudABkZWNyZW1lbnRSZWZlcmVuY2VDb3VudABpbnN0YW5jZUNvdW50AGFydGJvYXJkQ291bnQAc3RhdGVDaGFuZ2VkQ291bnQAc2V0Rm9udABpc0ZvbnQAZGVjb2RlRm9udABwcmludABjb2RlcG9pbnQAdHJhbnNmb3JtUG9pbnQAMzItYml0IElFRUUgRmxvYXRpbmcgUG9pbnQAcGFpbnQAYXNQYWludABtYWtlUmVuZGVyUGFpbnQAdW5zaWduZWQgaW50AHRleHRFdmVudABpc1BvaW50ZXJFdmVudABhc1BvaW50ZXJFdmVudABrZXlib2FyZEV2ZW50AGlzS2V5Ym9hcmRFdmVudABhc0tleWJvYXJkRXZlbnQAaXNSZXBvcnRlZEV2ZW50AGFzUmVwb3J0ZWRFdmVudABnYW1lcGFkRXZlbnQAaXNHYW1lcGFkRXZlbnQAYXNHYW1lcGFkRXZlbnQAaGFzU3RhbmRhcmRBeGlzSW50ZW50AGhhc1N0YW5kYXJkQnV0dG9uSW50ZW50AF9wYXJlbnQAYnVpbGRGb2N1c1RyZWVXaXRoUGFyZW50AHRyYW5zZm9ybUNvbXBvbmVudABUcmFuc2Zvcm1Db21wb25lbnQASW52YWxpZCBhcmd1bWVudABjb21wdXRlQWxpZ25tZW50AGltcGxlbWVudABncmFkaWVudABsaW5lYXJHcmFkaWVudABjbGVhckdyYWRpZW50AHJhZGlhbEdyYWRpZW50AHBvc2l0aW9uQW5kVGFuZ2VudABqeS1oYW50AHB4LWhhbnQAdXUtaGFudABzcC1oYW50AG5wLWhhbnQAem8taGFudABkby1oYW50AHNuLWhhbnQAbW4taGFudABhbi1oYW50AG5tLWhhbnQAYWstaGFudAB6aC1oYW50AHVoLWhhbnQAamMtaGFudABiaW5kYWJsZUFydGJvYXJkRGVmYXVsdABhbHQAX19sdABleGl0AHBvaW50ZXJFeGl0AGluaXQAbGltaXQAc3BsaXQAaGl0AGF3YWl0AEZpdABoZWlnaHQAZHJhd0hlaWdodABmaXRIZWlnaHQAY2VudGVyUmlnaHQAdG9wUmlnaHQAYm90dG9tUmlnaHQAZHBhZFJpZ2h0AHNvZnRMaWdodABoYXJkTGlnaHQAYXJzaGlmdABsc2hpZnQAY2VudGVyTGVmdAB0b3BMZWZ0AGJvdHRvbUxlZnQAZHBhZExlZnQAcmF3c2V0AHB0clRvRm9udEFzc2V0AHB0clRvQXVkaW9Bc3NldABwdHJUb0ZpbGVBc3NldABwdHJUb0ltYWdlQXNzZXQAb2Zmc2V0AENvbm5lY3Rpb24gcmVzZXQAU29ja2V0IG9wZXJhdGlvbiBvbiBub24tc29ja2V0AFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldAByYXdnZXQAdGFyZ2V0AEx1YXVEaXJlY3RGaWVsZEdldABfX2Rlc3RydWN0AHNlbGVjdABQcm9taXNlLnJlamVjdABsdWFSX2NyZWF0ZW9iamVjdAAnc2V0ZmVudicgY2Fubm90IGNoYW5nZSBlbnZpcm9ubWVudCBvZiBnaXZlbiBvYmplY3QAc2V0U2Npc3NvclJlY3QAYWRkUmVjdABleHRyYWN0AGZhY3QAT2N0AGZsb2F0AGNvbG9yQnVmZmVyRmxvYXQAdG9GbG9hdABjb2xvckJ1ZmZlckhhbGZGbG9hdAB2YXJpYWJsZS1sZW5ndGggZm9ybWF0AHJlcGVhdABfX2NvbmNhdABTYXQAdWludDY0X3QAcmVwb3J0ZWRFdmVudEF0AGxvb2tBdAByZW1vdmVBdABpbnN0YW5jZUF0AHJlbW92ZUluc3RhbmNlQXQAYWRkSW5zdGFuY2VBdAB0ZXh0dXJlQXJyYXlzAGdldFN0YXR1cwBmb2N1c1ByZXZpb3VzAGlzRm9jdXMAaGFzRm9jdXMAY2xlYXJGb2N1cwBSZXNvdXJjZSBhbHJlYWR5IGV4aXN0cwBsb2FkQ29udGVudHMAd3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cwBtYXhDb2xvckF0dGFjaG1lbnRzAHRvbyBtYW55IHJlc3VsdHMAd3JpdGViaXRzAHJlYWRiaXRzAHRyeWluZyB0byBhY2Nlc3Mgbm9uLWV4aXN0ZW50IGJpdHMAY3Jvc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAEJhZCBhZGRyZXNzAHRoaWNrbmVzcwBjbGFzcwBiZWdpblJlbmRlclBhc3MAY29udG91cnMAaXBhaXJzAGhhc0xpc3RlbmVycwBtYXhTYW1wbGVycwBmcHMAc3RyaW5nIGNvbnRhaW5zIHplcm9zAGFjb3MAY29udGV4dDolcygpIGNhbGxlZCBvbiBhIGRpc3Bvc2VkIGNvbnRleHQg4oCUIHRoZSBjb250ZXh0IHBhc3NlZCB0byBpbml0KCkgbXVzdCBub3QgYmUgdXNlZCBhZnRlciBpbml0KCkgcmV0dXJucwBidXR0b25zAGp5LWhhbnMAcHgtaGFucwB1dS1oYW5zAHNwLWhhbnMAbnAtaGFucwB6by1oYW5zAGRvLWhhbnMAc24taGFucwBtbi1oYW5zAGFuLWhhbnMAbm0taGFucwBhay1oYW5zAHpoLWhhbnMAdWgtaGFucwB1ZS1oYW5zAGpjLWhhbnMAZW51bXMATHVhdUN1c3RvbVlpZWxkYWJsZVBjYWxscwBMdWF1UmVzdW1lUmVzdG9yZUNjYWxscwBUb28gbWFueSBsaW5rcwBheGlzAGludGVudEF4aXMAcmlnaHRUcmlnZ2VyQXhpcwBsZWZ0VHJpZ2dlckF4aXMAYXhlcwB2YWx1ZXMARW51bVZhbHVlcwB0b28gbWFueSBjYXB0dXJlcwBmZWF0dXJlcwBmcmFtZXMAc2V0VGltZUZyYW1lcwBnZXRJbnN0YW5jZU5hbWVzAG1heFNhbXBsZXMAVG9vIG1hbnkgb3BlbiBmaWxlcwBwcm9wZXJ0aWVzAGdldFByb3BlcnRpZXMAY2xlYXJDaGFuZ2VzAGNvZGVzAGhhc0ZvY3VzTm9kZXMAYnVmZmVyIGFjY2VzcyBvdXQgb2YgYm91bmRzAGZvY3VzTm9kZVNldFdvcmxkQm91bmRzAGZvY3VzTm9kZUNsZWFyV29ybGRCb3VuZHMAc2Vjb25kcwBkZWxheVNlY29uZHMAYWJzAGNhbnZhcwBkcmF3Q2FudmFzAGdwdUNhbnZhcwAlcyUuKnMAYXR0ZW1wdCB0byBjb21wYXJlICVzICVzICVzAGF0dGVtcHQgdG8gcGVyZm9ybSBhcml0aG1ldGljICglcykgb24gJXMAYXR0ZW1wdCB0byBpbmRleCAlcyB3aXRoICVzAGF0dGVtcHQgdG8gY29uY2F0ZW5hdGUgJXMgd2l0aCAlcwAnJXMnIGlzIG5vdCBhIHZhbGlkIGluZGV4IG9mICVzACVzIGlzIG5vdCBhIHZhbGlkIG1ldGhvZCBvZiAlcwAlcyBpcyBub3QgYSB2YWxpZCBmaWVsZCBvZiAlcwBhdHRlbXB0IHRvIGNhbGwgbWlzc2luZyBtZXRob2QgJyVzJyBvZiAlcwBhdHRlbXB0IHRvIHBlcmZvcm0gYXJpdGhtZXRpYyAoJXMpIG9uICVzIGFuZCAlcwByZXF1aXJlIGNvdWxkIG5vdCBmaW5kIGEgc2NyaXB0IG5hbWVkICVzAGNhbm5vdCBpbmRleCAlcyB3aXRoIGEgJXMAJXM6JWQ6ICVzADo6ICVzAGhvdXIAcHRyAEFwcgBieG9yAHZlY3RvcgAnJXMnIGlzIG5vdCBhIHZhbGlkIGluZGV4IG9mIFZlY3RvcgAlcyBpcyBub3QgYSB2YWxpZCBtZXRob2Qgb2YgVmVjdG9yAG1pcnJvcgBJbnB1dC9vdXRwdXQgZXJyb3IAVW5rbm93biBlcnJvcgBmbG9vcgBjb2xvcgBQcm9wZXJ0eUNvbG9yAGdldENvbG9yAGlzQ29sb3IARGF0YVZhbHVlQ29sb3IAVmlld01vZGVsSW5zdGFuY2VDb2xvcgBzZXRCbGVuZENvbG9yAGJvcgBEeW5hbWljUmVjdGFuaXplcgBsb3dlcgBjb3ZlcgBpdGVyYXRlIG92ZXIAc3JjT3ZlcgBjZW50ZXIAdG9wQ2VudGVyAGJvdHRvbUNlbnRlcgBwb2ludGVyRW50ZXIAJyVzJyBpcyBub3QgYSB2YWxpZCBJbWFnZUZpbHRlcgBtaXRlcgBfX2l0ZXIAcmVuZGVyZXIAUmVuZGVyZXIAdXBwZXIARm9udFdyYXBwZXIAUmVuZGVyUGFpbnRXcmFwcGVyAFJlbmRlcmVyV3JhcHBlcgBGaWxlQXNzZXRMb2FkZXJXcmFwcGVyAEF1ZGlvV3JhcHBlcgBSZW5kZXJQYXRoV3JhcHBlcgBSZW5kZXJJbWFnZVdyYXBwZXIAcmVtb3ZlTGlzdGVuZXIAYWRkTGlzdGVuZXIASW1hZ2VTYW1wbGVyAHJpdmVFcnJvckhhbmRsZXIAaW52YWxpZCBjb252ZXJzaW9uIHNwZWNpZmllcgBmZWF0aGVyAHRyaWdnZXIAUHJvcGVydHlUcmlnZ2VyAHJpZ2h0VHJpZ2dlcgBsZWZ0VHJpZ2dlcgBnZXRUcmlnZ2VyAGFzVHJpZ2dlcgBWaWV3TW9kZWxJbnN0YW5jZVRyaWdnZXIAU01JVHJpZ2dlcgB3cml0ZWludGVnZXIAcmVhZGludGVnZXIAOC1iaXQgVW5zaWduZWQgSW50ZWdlcgAxNi1iaXQgU2lnbmVkIEludGVnZXIAMzItYml0IFNpZ25lZCBJbnRlZ2VyACVkLWJ5dGUgaW50ZWdlciBkb2VzIG5vdCBmaXQgaW50byBMdWEgSW50ZWdlcgBkZWNvZGVJbWFnZTogZW1wdHkgYnVmZmVyAHNldFZlcnRleEJ1ZmZlcgBzZXRJbmRleEJ1ZmZlcgB3cml0ZVRvQnVmZmVyAFRyaWFuZ2xlQnVmZmVyAHJpZ2h0U2hvdWxkZXIAbGVmdFNob3VsZGVyAEZpbGVBc3NldExvYWRlcgBzaGFkZXIAUmVuZGVyU2hhZGVyAE9jdG9iZXIAdG9udW1iZXIAJ19fbGVuJyBtdXN0IHJldHVybiBhIG51bWJlcgBnZXROdW1iZXIAaXNOdW1iZXIAYXNOdW1iZXIARGF0YVZhbHVlTnVtYmVyAFZpZXdNb2RlbEluc3RhbmNlTnVtYmVyAFNNSU51bWJlcgBOb3ZlbWJlcgBTZXB0ZW1iZXIARGVjZW1iZXIAdW5zaWduZWQgY2hhcgB5ZWFyAGJpbGluZWFyAGNsZWFyAE1hcgBccgBfX2VxAGZyZXhwAGxkZXhwAHNldEJpbmRHcm91cABsZXJwAHdhcnAAc3RvcABfdG9wAGFkZFN0b3AAcG9wACdfX25ld2luZGV4JyBjaGFpbiB0b28gbG9uZzsgcG9zc2libGUgbG9vcAAnX19pbmRleCcgY2hhaW4gdG9vIGxvbmc7IHBvc3NpYmxlIGxvb3AAZGlkTG9vcAB0aW1lU3RhbXAAY2xhbXAAZGVwdGhCaWFzQ2xhbXAAc3RlcAByZXAAU2VwAGJ5dGVzd2FwACclcycgaXMgbm90IGEgdmFsaWQgSW1hZ2VXcmFwAG1hcABjYXAAJyVzJyBpcyBub3QgYSB2YWxpZCBTdHJva2VDYXAAcG9pbnRlclVwAGRwYWRVcAAlSTolTTolUyAlcABMdWF1UHJvbW90ZVByb3RvAEx1YXVDSVByb3RvAG5vblplcm8AanktaGFudC1tbwBweC1oYW50LW1vAHV1LWhhbnQtbW8Ac3AtaGFudC1tbwBucC1oYW50LW1vAHpvLWhhbnQtbW8AZG8taGFudC1tbwBzbi1oYW50LW1vAG1uLWhhbnQtbW8AYW4taGFudC1tbwBubS1oYW50LW1vAGFrLWhhbnQtbW8AemgtaGFudC1tbwB1aC1oYW50LW1vAGpjLWhhbnQtbW8ALW5hdmFqbwBhdWRpbwBpc0F1ZGlvAGhhc0F1ZGlvAFB1bHNlQXVkaW8AZGVjb2RlQXVkaW8AQUF1ZGlvAENvcmUgQXVkaW8AV2ViIEF1ZGlvAHNuZGlvAG9ydGhvAGdjaW5mbwBtb3ZlVG8AbGluZVRvAHF1YWRUbwBjdWJpY1RvAG8tbnluAG1heG4AdW5rbm93bgBVbmtub3duAGRvd24AcG9pbnRlckRvd24Ac2NhbGVEb3duAGRwYWREb3duAFN1bgB0ZXh0UnVuAFRleHRWYWx1ZVJ1bgBKdW4AZ2V0bgAtc3lybgBjb2xvckJ1cm4AY2hhcnBhdHRlcm4AbWlzc2luZyAnWycgYWZ0ZXIgJyUlZicgaW4gcGF0dGVybgAtcG9seXRvbgBidXR0b24AaW50ZW50QnV0dG9uAHJpZ2h0U3RpY2tCdXR0b24AbGVmdFN0aWNrQnV0dG9uAHBvc2l0aW9uAHByZXZpb3VzUG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgAlczoxOiBtb2R1bGUgbXVzdCByZXR1cm4gYSB0YWJsZSBvciBmdW5jdGlvbgBwZXJmb3JtQWN0aW9uAHJvdGF0aW9uAHdpdGhSb3RhdGlvbgBzYXR1cmF0aW9uAGR1cmF0aW9uAEludmFsaWQgb3BlcmF0aW9uAGFuaW1hdGlvbgBMaW5lYXJBbmltYXRpb24AZnJvbVRyYW5zbGF0aW9uAHdpdGhUcmFuc2xhdGlvbgB3aXRoU2NhbGVBbmRUcmFuc2xhdGlvbgBUZXh0SW5wdXRJbnZvY2F0aW9uAFJlcG9ydGVkRXZlbnRJbnZvY2F0aW9uAEZvY3VzSW52b2NhdGlvbgBOb25lSW52b2NhdGlvbgBWaWV3TW9kZWxDaGFuZ2VJbnZvY2F0aW9uAEtleWJvYXJkSW52b2NhdGlvbgBleGNsdXNpb24AZmlsZUV4dGVuc2lvbgBGaXhNYXRoTm9pc2VQcmVjaXNpb24ATW9uAGFzaW4Aam9pbgAnJXMnIGlzIG5vdCBhIHZhbGlkIFN0cm9rZUpvaW4AaC1taW4AbWF4IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIG1pbgBvcmlnaW4AZnJhbWVPcmlnaW4AY29udGFpbgBzaWduAGFsaWduAGlzZnJvemVuAHRhYmxlIGlzIGFscmVhZHkgZnJvemVuAGxpZ2h0ZW4AY2hpbGRyZW4AcmF3bGVuAF9fbGVuAGRhcmtlbgBhbmRUaGVuAGdyZWVuAHNjcmVlbgBhdGFuAFNwYW4AaXNuYW4AaC1taW4tbmFuAG1hbgBib29sZWFuAGdldEJvb2xlYW4AaXNCb29sZWFuAERhdGFWYWx1ZUJvb2xlYW4AVmlld01vZGVsSW5zdGFuY2VCb29sZWFuAHJ0LWxvamJhbgBKYW4AZW51bQBnZXRFbnVtAFZpZXdNb2RlbEluc3RhbmNlRW51bQB1OG5vcm0AaThub3JtAHUxNm5vcm0AaTE2bm9ybQB0cmFuc2Zvcm0Ad29ybGRUcmFuc2Zvcm0AcGFyZW50V29ybGRUcmFuc2Zvcm0AcGVyZm9ybQAnJSUqJyBkb2VzIG5vdCB0YWtlIGEgZm9ybQBDdXN0b20AcmFuZG9tAF9fdW5tAF9fbXVsAEp1bABzbAB1cmwAY2RuQmFzZVVybABjb250cm9sAGJvb2wAYXNCb29sAFNNSUJvb2wATnVsbABmaWxsAHhwY2FsbABfX25hbWVjYWxsAF9fY2FsbABpbnZhbGlkIGNhbGwAUHJvbWlzZS5hbGwAQXByaWwAdGFibGUgaW5kZXggaXMgbmlsAGNlaWwAaW52YWxpZCBsZXZlbABiZXZlbAB2aWV3TW9kZWwAUHJvcGVydHlWaWV3TW9kZWwAcm9vdFZpZXdNb2RlbABnZXRWaWV3TW9kZWwAcmVwbGFjZVZpZXdNb2RlbABkZWZhdWx0QXJ0Ym9hcmRWaWV3TW9kZWwAY2FuY2VsAG9uQ2FuY2VsAHJhd2VxdWFsAHJhZGlhbABidXR0b25NYXNrAHBlclRhcmdldFdyaXRlTWFzawAtZ2VvawBvLWJvawBfYmxhbmsAanktaGFudC1oawBweC1oYW50LWhrAHV1LWhhbnQtaGsAc3AtaGFudC1oawBucC1oYW50LWhrAHpvLWhhbnQtaGsAZG8taGFudC1oawBzbi1oYW50LWhrAG1uLWhhbnQtaGsAYW4taGFudC1oawBubS1oYW50LWhrAGFrLWhhbnQtaGsAemgtaGFudC1oawB1aC1oYW50LWhrAGpjLWhhbnQtaGsASWxsZWdhbCBzZWVrAERlYWRsb2NrAGNsb2NrAHJpZ2h0U3RpY2sAbGVmdFN0aWNrAGNsaWNrAEx1YXVBdXRvU3RhY2sAdG9vIG1hbnkgcmVzdWx0cyB0byB1bnBhY2sAUGxheWJhY2sATHVhdUNhbGxGZWVkYmFjawAtaGFrAC1zeXJqAEZyaQBwaQBwaGkAZm9yZWFjaGkAaW5kZXggJWkgZXhjZWVkcyAlaQBzb3V0aABub3J0aABtb250aAB3aXRoAGxlbmd0aABieXRlTGVuZ3RoAHdpZHRoAGRyYXdXaWR0aABmaXRXaWR0aABtYXRoAHRleHRCeVBhdGgAaW5wdXRCeVBhdGgAX2RyYXdQYXRoAGFzUGF0aABtYWtlUmVuZGVyUGF0aABfY2xpcFBhdGgAYWRkVG9QYXRoAGFkZFBhdGgALXRoAHB1c2gAY29zaABmaW5pc2gATWlzc2luZyBtZXNoAF9kcmF3SW1hZ2VNZXNoAHNpbmgAdGFuaABnbWF0Y2gAY2F0Y2gATWFyY2gAZm9yZWFjaAAuLi8uLi8uLi8uLi9zcmMvc2tpYV9pbXBvcnRzL2luY2x1ZGUvcHJpdmF0ZS9Ta1REQXJyYXkuaABBdWcAYS1sYXRnAGxvZwBwbmcAUGF0aCB0b28gbG9uZwBOYW1lIHRvbyBsb25nAHN0cmluZyBzbGljZSB0b28gbG9uZwB1bnNpZ25lZCBsb25nAGludmFsaWQgb3JkZXIgZnVuY3Rpb24gZm9yIHNvcnRpbmcAdGFibGUgbW9kaWZpZWQgZHVyaW5nIHNvcnRpbmcAc3RkOjp3c3RyaW5nAF9fdG9zdHJpbmcAZnJvbXN0cmluZwB3cml0ZXN0cmluZwByZWFkc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGludmFsaWQgdXNlIG9mICclYycgaW4gcmVwbGFjZW1lbnQgc3RyaW5nAGZpbmFsIHBvc2l0aW9uIG91dCBvZiBzdHJpbmcAaW5pdGlhbCBwb3NpdGlvbiBvdXQgb2Ygc3RyaW5nACdfX3Rvc3RyaW5nJyBtdXN0IHJldHVybiBhIHN0cmluZwBQcm9wZXJ0eVN0cmluZwBnZXRTdHJpbmcAaXNTdHJpbmcARGF0YVZhbHVlU3RyaW5nAFZpZXdNb2RlbEluc3RhbmNlU3RyaW5nAGFuaXNvdHJvcGljRmlsdGVyaW5nAG1hcHBpbmcAaXNTdGFuZGFyZE1hcHBpbmcAZ2FtZXBhZE1hcHBpbmcAcmVtYWluaW5nAGVycm9yIGluIGVycm9yIGhhbmRsaW5nAFBlbmRpbmcAQXR0ZW1wdGluZyB0byBjb25zdHJ1Y3QgWUdOb2RlIHdpdGggbnVsbCBjb25maWcASW52YWxpZCBkZXZpY2UgY29uZmlnAG1lbW9yeSBhbGxvY2F0aW9uIGVycm9yOiBibG9jayB0b28gYmlnAGRlZwBwb2ludGVyRHJhZwB0dGYAdHlwZW9mAGdldCBsZW5ndGggb2YAaXNpbmYALWluZgBfc2VsZgByaWZmAHVucmVmAG1vZGYAcmVtb3ZlQWxsT2YAJS4wTGYAJUxmACVmAHBhY2tzaXplAHJlc2l6ZQBkc3RTdHJpZGUgbXVzdCBiZSA+PSBjb21wb25lbnRzICogZWxlbWVudCBzaXplAHNyY1N0cmlkZSBtdXN0IGJlID49IGNvbXBvbmVudHMgKiBlbGVtZW50IHNpemUAc3RyaW5nIGxlbmd0aCBkb2VzIG5vdCBmaXQgaW4gZ2l2ZW4gc2l6ZQBzdHJpbmcgbG9uZ2VyIHRoYW4gZ2l2ZW4gc2l6ZQBzdHJpZGUgbXVzdCBiZSA+PSBlbGVtZW50U2l6ZQBtYXhVbmlmb3JtQnVmZmVyU2l6ZQByZXNldEFydGJvYXJkU2l6ZQBmcmVlemUAcmVtb3ZlAHRvbyBtYW55IGVsZW1lbnRzIHRvIG1vdmUAcG9pbnRlck1vdmUAUHJvbWlzZS5yZXNvbHZlAHdpZHRoIG11c3QgYmUgcG9zaXRpdmUAcGVyc3BlY3RpdmUAY291bnQgbXVzdCBiZSBub24tbmVnYXRpdmUAbGV2ZWwgbXVzdCBiZSBub24tbmVnYXRpdmUAZWxlbWVudFNpemUgbXVzdCBiZSBub24tbmVnYXRpdmUAc3RyaWRlIG11c3QgYmUgbm9uLW5lZ2F0aXZlAGZpZWxkIGNhbm5vdCBiZSBuZWdhdGl2ZQByaXZlAHNhdmUAdHJ1ZQBOb3QgdW5pcXVlAGJsdWUAYXR0ZW1wdCB0byAlcyBhICVzIHZhbHVlAG5vIHZhbHVlAGluaXRpYWwgdmFsdWUAaW52YWxpZCB2YWx1ZQAlczoxOiBtb2R1bGUgbXVzdCByZXR1cm4gYSB2YWx1ZQBsb29wVmFsdWUAYnV0dG9uVmFsdWUAdHJhbnNmb3JtVmFsdWUAY2hhbmdlVmFsdWUAVmlld01vZGVsSW5zdGFuY2VWYWx1ZQBkYXRhVmFsdWUAJyVzJyBpcyBub3QgYSB2YWxpZCBpbmRleCBvZiBEYXRhVmFsdWUAaHVlAFR1ZQBpbml0aWFsIHBvc2l0aW9uIGlzIGEgY29udGludWF0aW9uIGJ5dGUAd3JpdGUAaXNmaW5pdGUAZXZhbHVhdGUAJXMgaXMgbm90IGEgdmFsaWQgZmllbGQgb2YgZ2FtZXBhZCBzdGF0ZQBycm90YXRlAGxyb3RhdGUAZm9jdXNTdGF0ZQBsYXRlAGNyZWF0ZQB1cGRhdGUAbWFya05lZWRzVXBkYXRlAHNhbXBsZVJhdGUAcGF1c2UAUmVzb3VyY2UgYWxyZWFkeSBpbiB1c2UAcmV2ZXJzZQB0cmFuc3Bvc2UAZGVjb21wb3NlAGNsb3NlAGZhbHNlAGNsb2Nrd2lzZQBub2lzZQBhc3luYzogY29yb3V0aW5lIHlpZWxkZWQgd2l0aG91dCBhIHByb21pc2UAJyVzJyBpcyBub3QgYSB2YWxpZCBtZW1iZXIgb2YgUHJvbWlzZQAnJXMnIGlzIG5vdCBhIHZhbGlkIG1ldGhvZCBvZiBQcm9taXNlAGFzeW5jOiBhd2FpdCgpIGFyZ3VtZW50IGlzIG5vdCBhIFByb21pc2UAUHJvbWlzZS5hbGw6IGVsZW1lbnQgJWQgaXMgbm90IGEgUHJvbWlzZQBwaGFzZQBBcnRib2FyZEJhc2UALXN5cmUAaW52YWxpZCBwYXR0ZXJuIGNhcHR1cmUAdW5maW5pc2hlZCBjYXB0dXJlAENhcHR1cmUAbWVhc3VyZQBDb250b3VyTWVhc3VyZQBQYXRoTWVhc3VyZQByZXN0b3JlAHJlcXVpcmUAZmlyZQBzcXVhcmUAX190eXBlAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAGVudW1UeXBlAEFydGJvYXJkQ29tcG9uZW50TGlzdFNjb3BlAEJyb2tlbiBwaXBlAEp1bmUAbm9uZQBjbG9uZQBkb25lAGJvbmUAaXNOb25lAGFzTm9uZQByb290Qm9uZQBSb290Qm9uZQBjYW5ub3QgcmVzdW1lIG5vbi1zdXNwZW5kZWQgY29yb3V0aW5lAGNhbm5vdCByZXN1bWUgZGVhZCBjb3JvdXRpbmUAc2V0UGlwZWxpbmUAU3RhdGVNYWNoaW5lAEF1dG8gR2VuZXJhdGVkIFN0YXRlIE1hY2hpbmUAbXVsdGlwbHlBZmZpbmUAaW52ZXJ0QWZmaW5lAHJlc3VtZQB2b2x1bWUARGVidWdMdWF1VXNlckRlZmluZWRDbGFzc2VzUnVudGltZQBkaWZmdGltZQBzZXRUaW1lAHBsYXlBdFRpbWUAcGxheUluVGltZQBwbGF5QXRGcmFtZQBiZWdpbkZyYW1lAHBsYXlJbkZyYW1lAHNlZWtGcmFtZQB0aW1lRnJhbWUAZW5kRnJhbWUAdW5pcXVlRmlsZW5hbWUAYW5pbWF0aW9uQnlOYW1lAHZpZXdNb2RlbEJ5TmFtZQBzdGF0ZU1hY2hpbmVCeU5hbWUAaW5zdGFuY2VCeU5hbWUAYXJ0Ym9hcmRCeU5hbWUAYmluZGFibGVBcnRib2FyZEJ5TmFtZQBmb2N1c05vZGVTZXROYW1lAGZvY3VzTm9kZUdldE5hbWUAZ2V0Vmlld01vZGVsTmFtZQBzdHlsZQBSZW5kZXJQYWludFN0eWxlACclcycgaXMgbm90IGEgdmFsaWQgUGFpbnRTdHlsZQAlczoxOiB1bmtub3duIGVycm9yIHdoaWxlIHJ1bm5pbmcgbW9kdWxlAGZpbGxSdWxlAEZpbGxSdWxlAEludmFsaWQgZmlsZQBGaWxlAGRvdWJsZQBzZXRtZXRhdGFibGUAZ2V0bWV0YXRhYmxlAF9fbWV0YXRhYmxlAHRhYmxlIGhhcyBhIHByb3RlY3RlZCBtZXRhdGFibGUAY2Fubm90IGNoYW5nZSBhIHByb3RlY3RlZCBtZXRhdGFibGUAc3RyaW5nL2Z1bmN0aW9uL3RhYmxlAGF0dGVtcHQgdG8gbW9kaWZ5IGEgcmVhZG9ubHkgdGFibGUAbmlsIG9yIHRhYmxlAGZpZWxkICclcycgbWlzc2luZyBpbiBkYXRlIHRhYmxlAE5ldHdvcmsgdW5hdmFpbGFibGUAUmVzb3VyY2UgdW5hdmFpbGFibGUAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBObyBzcGFjZSBhdmFpbGFibGUATm8gZGF0YSBhdmFpbGFibGUAc2NhbGUAZnJvbVNjYWxlAHdpdGhTY2FsZQBfX2xlAHN0cm9rZQBodWdlAGZvcm1hdCByZXN1bHQgdG9vIGxhcmdlAHNpemUgc3BlY2lmaWVyIGlzIHRvbyBsYXJnZQBpbnRlcnZhbCBpcyB0b28gbGFyZ2UAYnVmZmVyIHRvbyBsYXJnZQByZXN1bHRpbmcgc3RyaW5nIHRvbyBsYXJnZQBUb28gbGFyZ2UAcmVtb3ZlQXQgaW5kZXggb3V0IG9mIHJhbmdlAFZlY3Rvcjp3cml0ZVRvQnVmZmVyIG9mZnNldCBvdXQgb2YgcmFuZ2UATWF0NDp3cml0ZVRvQnVmZmVyIG9mZnNldCBvdXQgb2YgcmFuZ2UAVmVjdG9yOndyaXRlVmVjNCBvZmZzZXQgb3V0IG9mIHJhbmdlAHBvc2l0aW9uIG91dCBvZiByYW5nZQBzaXplIG91dCBvZiByYW5nZQB2YWx1ZSBvdXQgb2YgcmFuZ2UAYmFzZSBvdXQgb2YgcmFuZ2UAT3V0IG9mIHJhbmdlAGlzVmlld01vZGVsQ2hhbmdlAGFzVmlld01vZGVsQ2hhbmdlAGRpZENoYW5nZQBjb2xvckRvZGdlAHBlcmNlbnRhZ2UAc2V0VGltZVBlcmNlbnRhZ2UASW52YWxpZCBtZXNzYWdlAGltYWdlAGRyYXdJbWFnZQBWaWV3TW9kZWxJbnN0YW5jZUFzc2V0SW1hZ2UAZ2V0SW1hZ2UAaXNJbWFnZQBzZXRSZW5kZXJJbWFnZQBtYWtlUmVuZGVySW1hZ2UAX2RyYXdSaXZlSW1hZ2UAZGVjb2RlSW1hZ2UAbm9kZQBfX21vZGUAZGVjb2RlAGludmFsaWQgVVRGLTggY29kZQBOb2RlAGJsZW5kTW9kZQAnJXMnIGlzIG5vdCBhIHZhbGlkIEJsZW5kTW9kZQBzZXRBdWRpb1NvdXJjZQBkaWZmZXJlbmNlAHNldFN0ZW5jaWxSZWZlcmVuY2UAYWR2YW5jZQBpbnN0YW5jZQBkZWZhdWx0SW5zdGFuY2UATGluZWFyQW5pbWF0aW9uSW5zdGFuY2UAdmlld01vZGVsSW5zdGFuY2UAYmluZFZpZXdNb2RlbEluc3RhbmNlAHJlbW92ZUluc3RhbmNlAGRyYXdCYXNlSW5zdGFuY2UAU3RhdGVNYWNoaW5lSW5zdGFuY2UAYWRkSW5zdGFuY2UAZGlzdGFuY2UATm8gZGV2aWNlAEZhaWxlZCB0byBzdGFydCBiYWNrZW5kIGRldmljZQBGYWlsZWQgdG8gc3RvcCBiYWNrZW5kIGRldmljZQBGYWlsZWQgdG8gb3BlbiBiYWNrZW5kIGRldmljZQBEZWZhdWx0IFBsYXliYWNrIERldmljZQBEZWZhdWx0IENhcHR1cmUgRGV2aWNlAHJlcGxhY2UAbWF4VGV4dHVyZVNpemVDdWJlAGZvcndhcmQAYXJ0Ym9hcmQAZGVmYXVsdEFydGJvYXJkAGludGVybmFsQmluZGFibGVBcnRib2FyZEZyb21BcnRib2FyZABCaW5kYWJsZUFydGJvYXJkAFZpZXdNb2RlbEluc3RhbmNlQXJ0Ym9hcmQAc3RhbmRhcmQAZm1vZABfX21vZABmcm91bmQAZGVzdGluYXRpb24gd3JhcCBhcm91bmQAQVBJIG5vdCBmb3VuZABEaXJlY3RTb3VuZABBdWRpb1NvdW5kAHJld2luZABmaW5kAGNoYW5nZUtpbmQAZXh0ZW5kAHBlclRhcmdldEJsZW5kAE5vIGJhY2tlbmQARmFpbGVkIHRvIGluaXRpYWxpemUgYmFja2VuZABBdCBlbmQAJyVzJyBpcyBub3QgYSB2YWxpZCBpbmRleCBvZiBQYXRoQ29tbWFuZABiYW5kAHdvcmtFbmQALW1kAEx1YXVJbmxpbmVIaXRzVGhyZXNob2xkAGNvbnRleHQ6Y2FudmFzKCkgcmVxdWlyZXMgYSBSSVZFX0NBTlZBUyBidWlsZABjb250ZXh0OmdwdUNhbnZhcygpIHJlcXVpcmVzIGEgUklWRV9DQU5WQVMgKyBSSVZFX09SRSBidWlsZAAlczoxOiBtb2R1bGUgY2FuIG5vdCB5aWVsZABodHRwczovL3B1YmxpYy5yaXZlLmFwcC9jZG4vdXVpZABjZG5VdWlkAHZvaWQASW52YWxpZABub3JtYWxpemVkAERldmljZSBub3QgaW5pdGlhbGl6ZWQAZHJhd0luZGV4ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABGb3JtYXQgbm90IHN1cHBvcnRlZABQcm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQARGV2aWNlIHR5cGUgbm90IHN1cHBvcnRlZABTaGFyZSBtb2RlIG5vdCBzdXBwb3J0ZWQARGV2aWNlIG5vdCBzdGFydGVkAEludGVycnVwdGVkAE5vdCBpbXBsZW1lbnRlZABjb21wbGV0ZWQAdGFibGUgb3Igc3RyaW5nIGV4cGVjdGVkAGdhbWVwYWREaXNjb25uZWN0ZWQAaXNHYW1lcGFkRGlzY29ubmVjdGVkAGFzR2FtZXBhZERpc2Nvbm5lY3RlZABBbHJlYWR5IGNvbm5lY3RlZABOb3QgY29ubmVjdGVkAGdhbWVwYWRDb25uZWN0ZWQAaXNHYW1lcGFkQ29ubmVjdGVkAGFzR2FtZXBhZENvbm5lY3RlZAByZWplY3RlZABSZWplY3RlZABDb25uZWN0aW9uIHJlZnVzZWQAcmlnaHRUcmlnZ2VyUHJlc3NlZABsZWZ0VHJpZ2dlclByZXNzZWQAYnV0dG9uUHJlc3NlZABpc0Nsb3NlZABhc3luYyBmdW5jdGlvbiBlcnJvcmVkAERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQAbGVuZ3RoU3F1YXJlZABkaXN0YW5jZVNxdWFyZWQATWVtb3J5IGFscmVhZHkgbWFwcGVkAEx1YXVVZGF0YU1ldGF0YWJsZVBpbm5lZABhdmFpbGFibGVIZWlnaHQgaXMgaW5kZWZpbml0ZSBzbyBoZWlnaHRNZWFzdXJlTW9kZSBtdXN0IGJlIFlHTWVhc3VyZU1vZGVVbmRlZmluZWQAYXZhaWxhYmxlV2lkdGggaXMgaW5kZWZpbml0ZSBzbyB3aWR0aE1lYXN1cmVNb2RlIG11c3QgYmUgWUdNZWFzdXJlTW9kZVVuZGVmaW5lZABGdWxmaWxsZWQAUHJvbWlzZSB3YXMgY2FuY2VsbGVkAE9wZXJhdGlvbiBjYW5jZWxsZWQAQ2FuY2VsbGVkAFBlcm1pc3Npb24gZGVuaWVkAGhhc0NoYW5nZWQAcmFuZG9tc2VlZABzcGVlZABXZWQAX19hZGQAZXZlbk9kZABzY2FsZUFuZEFkZAByYWQAdXBsb2FkAHRocmVhZABkZXZpY2VJZABpbnZhbGlkIGNhcHR1cmUgaW5kZXggJSUlZABtaXNzaW5nIGFyZ3VtZW50ICMlZABubyBmdW5jdGlvbiBlbnZpcm9ubWVudCBmb3IgdGFpbCBjYWxsIGF0IGxldmVsICVkAGFzdGMALWhic2MAYXN5bmMALXByb3ZlbmMAc2VjAERlYwBiYwAlYwBnc3ViAF9fc3ViAHNjYWxlQW5kU3ViAHJzdGIAcmIAYmxvYgBCbG9iAGFyZ2IARmViAHNldEZhbGxiYWNrRm9udENiAHJ3YQBsdWEATHVhAG1ldGEAdXNlcmRhdGEASW52YWxpZCBkYXRhACVzIGlzIG5vdCBhIHZhbGlkIG1ldGhvZCBvZiBnYW1lcGFkIGRhdGEAUGFpbnREYXRhAFBhdGhEYXRhAE5vZGVEYXRhAC1mb25pcGEALWZvbm5hcGEAYWxwaGEAZW5hYmxlV29ya0FyZWEALWFyZXZtZGEAcmdiYQBbTFkgTm90IGZvdW5kXQBbU00gTm90IGZvdW5kXQBbQUIgTm90IGZvdW5kXQBpbnRlZ3JhbCBzaXplICglZCkgb3V0IG9mIGxpbWl0cyBbMSwlZF0APVtDXQBiaXQgY291bnQgaXMgb3V0IG9mIHJhbmdlIG9mIFswOyAzMl0AIl0AZnJvbVJvdGF0aW9uWgBwZXJzcGVjdGl2ZVJldmVyc2VaAG1heFkAcmlnaHRZAGxlZnRZAGZyb21Sb3RhdGlvblkAbWluWQBzY2FsZVkAbWFwWFkAJWEgJWIgJWQgJUg6JU06JVMgJVkAbWF4WAByaWdodFgAbGVmdFgAZnJvbVJvdGF0aW9uWABtaW5YAHNjYWxlWABQT1NJWABSSUZYAFVMQVcAQUxBVwBHTVQAQ0hBTk5FTF9UT1BfRlJPTlRfUklHSFQAQ0hBTk5FTF9GUk9OVF9SSUdIVABDSEFOTkVMX1RPUF9CQUNLX1JJR0hUAENIQU5ORUxfQkFDS19SSUdIVABDSEFOTkVMX1NJREVfUklHSFQAQ0hBTk5FTF9UT1BfRlJPTlRfTEVGVABDSEFOTkVMX0ZST05UX0xFRlQAQ0hBTk5FTF9UT1BfQkFDS19MRUZUAENIQU5ORUxfQkFDS19MRUZUAENIQU5ORUxfU0lERV9MRUZUAE9TUwBPcGVuU0x8RVMAWUVTAF9NT0RVTEVTAENIQU5ORUxfVE9QX0ZST05UX0NFTlRFUgBDSEFOTkVMX0ZST05UX0NFTlRFUgBDSEFOTkVMX0ZST05UX1JJR0hUX0NFTlRFUgBDSEFOTkVMX0ZST05UX0xFRlRfQ0VOVEVSAENIQU5ORUxfVE9QX0NFTlRFUgBDSEFOTkVMX1RPUF9CQUNLX0NFTlRFUgBDSEFOTkVMX0JBQ0tfQ0VOVEVSAENIQU5ORUxfTU9OTwB0YWJsZSBpbmRleCBjb250YWlucyBOYU4AdGFibGUgaW5kZXggaXMgTmFOAEV4cGVjdCBjdXN0b20gYmFzZWxpbmUgZnVuY3Rpb24gdG8gbm90IHJldHVybiBOYU4AVU5LTk9XTgBfVkVSU0lPTgBOQU4ARk9STQBQTQBXaW5NTQBDT01NAEFNAExDX0FMTABKQUNLAFdBU0FQSQBfRwBMQU5HAElORgBSSUZGAEFJRkYAUklWRQBXQVZFAENIQU5ORUxfTk9ORQBMRQBDSEFOTkVMX0xGRQBTU05EAF9MT0FERUQAbWF4VGV4dHVyZVNpemUzRAB0ZXh0dXJlM0QATWF0MkQAbWF4VGV4dHVyZVNpemUyRABWZWMyRABBSUZDAEFBQkIAQUxTQQAwMTIzNDU2Nzg5LkVFPy0/AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50NjRfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDMyX3Q+AFByb3BlcnR5PG51bWJlcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AFByb3BlcnR5PGVudW0+AFByb3BlcnR5PGJvb2w+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AUHJvcGVydHk8SW1hZ2U+AD09ADw9ADwAQ0hBTk5FTF9BVVhfOQAwMTIzNDU2Nzg5AENIQU5ORUxfQVVYXzI5AENIQU5ORUxfQVVYXzE5AHdyaXRldTgAcmVhZHU4AHdyaXRlaTgAcmVhZGk4AHV0ZjgAQ0hBTk5FTF9BVVhfOABDSEFOTkVMX0FVWF8yOABDSEFOTkVMX0FVWF8xOABDLlVURi04AENIQU5ORUxfQVVYXzcAQ0hBTk5FTF9BVVhfMjcAQ0hBTk5FTF9BVVhfMTcATHVhdVVkYXRhRGlyZWN0QWNjZXNzNgBDSEFOTkVMX0FVWF82AENIQU5ORUxfQVVYXzI2AHdyaXRldTE2AHJlYWR1MTYAd3JpdGVpMTYAcmVhZGkxNgBidWZmZXIud3JpdGVmMTYAYnVmZmVyLnJlYWRmMTYAQ0hBTk5FTF9BVVhfMTYAQ0hBTk5FTF9BVVhfNQBDSEFOTkVMX0FVWF8yNQBDSEFOTkVMX0FVWF8xNQBNYXQ0AHRyYW5zZm9ybVZlYzQAd3JpdGVWZWM0AENIQU5ORUxfQVVYXzQAZHM2NABmbDY0AHdyaXRlZjY0AHJlYWRmNjQARkw2NABSRjY0AG00NABtMzQAbTI0AENIQU5ORUxfQVVYXzI0AG0xNABDSEFOTkVMX0FVWF8xNABjcm9zczMAQ0hBTk5FTF9BVVhfMwBtNDMAbTMzAG0yMwBDSEFOTkVMX0FVWF8yMwBtMTMAQ0hBTk5FTF9BVVhfMTMAc3FydDIATHVhdVlpZWxkSXRlcjIAYXRhbjIAZXRjMgBDSEFOTkVMX0FVWF8yAG00MgB3cml0ZXUzMgByZWFkdTMyAGJpdDMyAG0zMgBmbDMyAHdyaXRlaTMyAHJlYWRpMzIAd3JpdGVmMzIAcmVhZGYzMgBGTDMyAG0yMgBDSEFOTkVMX0FVWF8yMgBtMTIAQ0hBTk5FTF9BVVhfMTIAZm9ybWF0IGFza3MgZm9yIGFsaWdubWVudCBub3QgcG93ZXIgb2YgMgBDSEFOTkVMX0FVWF8xAG00MQBtMzEAQ0hBTk5FTF9BVVhfMzEAbTIxAENIQU5ORUxfQVVYXzIxAG0xMQBDSEFOTkVMX0FVWF8xMQBjb21wb25lbnRzIG11c3QgYmUgYXQgbGVhc3QgMQBDSEFOTkVMX0FVWF8wAENIQU5ORUxfQVVYXzMwAENIQU5ORUxfQVVYXzIwAGxvZzEwAENIQU5ORUxfQVVYXzEwAFwwMDAALSsgIzAALwBGYWlsZWQgdG8gY29tbWl0IGNhcHR1cmUgUENNIGZyYW1lcyB0byByaW5nIGJ1ZmZlci4AQ2Fubm90IHNldCBtZWFzdXJlIGZ1bmN0aW9uOiBOb2RlcyB3aXRoIG1lYXN1cmUgZnVuY3Rpb25zIGNhbm5vdCBoYXZlIGNoaWxkcmVuLgAlcyBpcyBubyBsb25nZXIgdmFsaWQuACVzIHNhdmUvcmVzdG9yZSBzdGFjayB3YXMgdW5iYWxhbmNlZCBieSB0cnlpbmcgdG8gcmVzdG9yZSBtb3JlIHRpbWVzIHRoYW4gc2F2ZWQuAC4uLgBeJCorPy4oWyUtACwAU2tURml0c0luPGludD4oY291bnQpAGludmFsaWQgZm9ybWF0IChyZXBlYXRlZCBmbGFncykAc3RhY2sgb3ZlcmZsb3cgKCVzKQBpbnZhbGlkIGFyZ3VtZW50ICMlZCAoJXMpAGludmFsaWQgYXJndW1lbnQgIyVkIHRvICclcycgKCVzKQBpbnZhbGlkIGFyZ3VtZW50ICMlZCAoJXMgZXhwZWN0ZWQsIGdvdCAlcykAaW52YWxpZCBhcmd1bWVudCAjJWQgdG8gJyVzJyAoJXMgZXhwZWN0ZWQsIGdvdCAlcykAaW52YWxpZCAnZm9yJyAlcyAobnVtYmVyIGV4cGVjdGVkLCBnb3QgJXMpAGludmFsaWQgcmVwbGFjZW1lbnQgdmFsdWUgKGEgJXMpAChudWxsKQBpbnZhbGlkIGZvcm1hdCAod2lkdGggb3IgcHJlY2lzaW9uIHRvbyBsb25nKQBTa1RGaXRzSW48aW50PihyZXNlcnZlKQBtaXNzaW5nIGFyZ3VtZW50ICMlZCAoJXMgZXhwZWN0ZWQpAG1pc3NpbmcgYXJndW1lbnQgIyVkIHRvICclcycgKCVzIGV4cGVjdGVkKQAyNC1iaXQgU2lnbmVkIEludGVnZXIgKFRpZ2h0bHkgUGFja2VkKQAlczogYnl0ZWNvZGUgdHlwZSB2ZXJzaW9uIG1pc21hdGNoIChleHBlY3RlZCBbJWQuLiVkXSwgZ290ICVkKQAlczogYnl0ZWNvZGUgdmVyc2lvbiBtaXNtYXRjaCAoZXhwZWN0ZWQgWyVkLi4lZF0sIGdvdCAlZCkAYXVkaW8oNCkAYXdhaXQoKSBtdXN0IGJlIGNhbGxlZCBpbnNpZGUgYXN5bmMoKQBtYWxmb3JtZWQgcGF0dGVybiAobWlzc2luZyBhcmd1bWVudHMgdG8gJyUlYicpAG1hbGZvcm1lZCBwYXR0ZXJuIChtaXNzaW5nICddJykAbWFsZm9ybWVkIHBhdHRlcm4gKGVuZHMgd2l0aCAnJSUnKQB1bmZpbmlzaGVkIHN0cmluZyBmb3IgZm9ybWF0ICd6JwBpbnZhbGlkIGtleSB0byAnbmV4dCcAd3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byAnaW5zZXJ0JwBpbnZhbGlkIG9wdGlvbiAnJSUlYycgdG8gJ2Zvcm1hdCcAaW52YWxpZCB2YWx1ZSAoJXMpIGF0IGluZGV4ICVkIGluIHRhYmxlIGZvciAnY29uY2F0JwB1bmtub3duIGJ1ZmZlciBmb3JtYXQgJyVzJwBhdHRlbXB0IHRvIGluZGV4ICVzIHdpdGggJyVzJwBuYW1lIGNvbmZsaWN0IGZvciBtb2R1bGUgJyVzJwB0aGlzICVzIGRvZXMgbm90IGhhdmUgYSBrZXkgbmFtZWQgJyVzJwB3cm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIGZvciBjb25zdHJ1Y3RpbmcgYSAnJXMnAG1pc3Npbmcgc2l6ZSBmb3IgZm9ybWF0IG9wdGlvbiAnYycAaW52YWxpZCBmb3JtYXQgb3B0aW9uICclYycAaW52YWxpZCBuZXh0IG9wdGlvbiBmb3Igb3B0aW9uICdYJwBhQWJCY2RISWptTXBTVXdXeFh5WXpaJQBbc3RyaW5nICIAYXNzZXJ0aW9uIGZhaWxlZCEAcmF3IABmbXQgACVzOiVkOiAAOjogAAoNACAgICAgIENoYW5uZWwgTWFwIE91dDogICAgICAgIHslc30KACAgICAgIENoYW5uZWwgTWFwIEluOiAgICAgICAgIHslc30KAEZhaWxlZCB0byBkZWNvZGUgYXVkaW8gd2l0aCBlcnJvciAlcwoAU2NyaXB0QXNzZXQgZG9lc24ndCBoYXZlIGEgZ2VuZXJhdG9yIGZ1bmN0aW9uICVzCgAlcyBTdGF0ZU1hY2hpbmUgZXhjZWVkZWQgbWF4IGV2ZW50IGl0ZXJhdGlvbnNvbiBhcnRib2FyZCAlcwoAJXMgU3RhdGVNYWNoaW5lIGV4Y2VlZGVkIG1heCBpdGVyYXRpb25zIGluIGxheWVyICVzIG9uIGFydGJvYXJkICVzCgAgICAgRm9ybWF0OiAgICAgICVzIC0+ICVzCgAgICAgICBQb3N0IEZvcm1hdCBDb252ZXJzaW9uOiAlcwoAICBFbmRpYW46ICVzCgAgICAgICBQcmUgRm9ybWF0IENvbnZlcnNpb246ICAlcwoAICBORU9OOiAgICVzCgAgIEFWWDI6ICAgJXMKACAgU1NFMjogICAlcwoAICAgICAgQ2hhbm5lbCBSb3V0aW5nOiAgICAgICAgJXMKACAgICAgIFBhc3N0aHJvdWdoOiAgICAgICAgICAgICVzCgAgICAgICBSZXNhbXBsaW5nOiAgICAgICAgICAgICAlcwoAQmFkIGhlYWRlcgoARXJyb3IgLSBhZGRpbmcgY2xpcCBlbmQgYXMgZmlyc3Qgb3BlcmF0aW9uCgBNaXNzaW5nIHZpZXcgbW9kZWwgcHJvcGVydHkgdHlwZQoAQXVkaW9FbmdpbmU6Ok1ha2UgLSBmYWlsZWQgdG8gaW5pdCBlbmdpbmUKAEludmFsaWQgQXJ0Ym9hcmQKACVzIGZhaWxlZAoAdXBkYXRlIGZ1bmN0aW9uIGZhaWxlZAoAcmVzaXplIGZhaWxlZAoAbWVhc3VyZSBmYWlsZWQKAEZhaWxlZCB0byBpbXBvcnQgb2JqZWN0IG9mIHR5cGUgJWQKAEFydGJvYXJkOjppbml0aWFsaXplIC0gRHJhdyBydWxlIHRhcmdldHMgbWlzc2luZyBjb21wb25lbnQgd2lkdGggaWQgJWQKACAgICBTYW1wbGUgUmF0ZTogJWQgLT4gJWQKACAgICBDaGFubmVsczogICAgJWQgLT4gJWQKAFslc10KAGV4cGVjdGVkIG1lYXN1cmUgdG8gcmV0dXJuIGEgVmVjMkQKAENvdWxkIG5vdCBmaW5kIFZpZXcgTW9kZWwgSW5zdGFuY2UgbmFtZWQgJXMuIFdhcyBpdCBtYXJrZWQgdG8gZXhwb3J0IHdpdGggdGhlIGZpbGU/CgAgICAgQ29udmVyc2lvbjoKAFN5c3RlbSBBcmNoaXRlY3R1cmU6CgBVbnN1cHBvcnRlZCB2ZXJzaW9uICV1LiV1IGV4cGVjdGVkICV1LiV1LgoAQ291bGQgbm90IGZpbmQgYSBWaWV3IE1vZGVsIGxpbmtlZCB0byBBcnRib2FyZCAlcy4KAENvdWxkIG5vdCBmaW5kIFZpZXcgTW9kZWwgbmFtZWQgJXMuCgBBdWRpb1NvdXJjZTo6cGxheSAtIEZhaWxlZCB0byBpbml0aWFsaXplIGF1ZGlvIGJ1ZmZlci4KAEF1ZGlvU291cmNlOjpwbGF5IC0gRmFpbGVkIHRvIGluaXRpYWxpemUgZGVjb2Rlci4KAEF1ZGlvU291cmNlRGVjb2RlciAtIEZhaWxlZCB0byBpbml0aWFsaXplIGRlY29kZXIuCgBDb3VsZCBub3QgZmluZCBWaWV3IE1vZGVsLiBJbmRleCAlenUgaXMgb3V0IG9mIHJhbmdlLgoAQ291bGQgbm90IGZpbmQgVmlldyBNb2RlbCBJbnN0YW5jZS4gSW5kZXggJXp1IGlzIG91dCBvZiByYW5nZS4KAHJpdmVMdWFQdXNoVmlld01vZGVsSW5zdGFuY2VWYWx1ZSAtIHBhc3NlZCBpbiBhIFZpZXdNb2RlbEluc3RhbmNlVmlld01vZGVsIHdpdGggbm8gYXNzb2NpYXRlZCBWaWV3TW9kZWxJbnN0YW5jZS4KAEZhaWxlZCB0byBpbml0aWFsaXplICVzIGJhY2tlbmQuCgAlcyBiYWNrZW5kIGlzIGRpc2FibGVkLgoARGVmYXVsdCBpbnN0YW5jZSBub3QgZm91bmQuIENyZWF0aW5nIGVtcHR5IGluc3RhbmNlIGluc3RlYWQuCgBVbmtub3duIHByb3BlcnR5IGtleSAlZCwgbWlzc2luZyBmcm9tIHByb3BlcnR5IFRvQy4KAEF0dGVtcHRpbmcgdG8gaW5pdGlhbGl6ZSAlcyBiYWNrZW5kLi4uCgAgICVzICglcykKACAgICBCdWZmZXIgU2l6ZTogJWQqJWQgKCVkKQoAJXM6JWQ6IGZhdGFsIGVycm9yOiAiYXNzZXJ0KCVzKSIKAEFydGJvYXJkOjptYXJrTGF5b3V0RGlydHkgLSB0cnlpbmcgdG8gbWFyayBhIGxheW91dCBkaXJ0eSBkdXJpbmcgY2xlYW4gcGFzcyEKAEFydGJvYXJkOjpjbGVhbkxheW91dCAtIHRyeWluZyB0byByZW1vdmUgYSBkaXJ0eSBsYXlvdXQgZHVyaW5nIGNsZWFuIHBhc3MhCgBEZXBlbmRlbmN5IGN5Y2xlIQoAAQECAgMAAAAAAAAAAABqBAAAawQAAGwEAABtBAAAbgQAAAAAAAAAAAAAbwQAAHAEAABxBAAAcgQAAHMEAAA0iAcAKIgHACiIBwAtiAcAOwA4ADoAAAAviAcAKogHAHBwcAAgiAcAKogHAC+IBwB2cHBwAAAAAAAAAAAAAAAAIIgHACqIBwAtiAcALYgHAC2IBwAtiAcAdnBwZmZmZgAgiAcAKogHAHZwcACUhgcAKYgHAHBwaQCVhgcAKYgHAJaGBwApiAcAl4YHACmIBwCYhgcANIgHAJmGBwA0iAcAIIgHADSIBwCahgcANIgHAJuGBwCchgcAAAAAAAAAAAA5hwcAPIcHAD2HBwA+hwcAPocHAC2IBwBwcGlpcHBmAJ2GBwA5hwcAnYYHACGIBwCehgcAaXBwAJ+GBwAtiAcALYgHAHBwZmYAAAAALYgHAJ2GBwBmcHAAoYYHACGIBwA5hwcAOYcHAGlwcHAAAAAAIIgHADmHBwA5hwcAOYcHAKWGBwCjhgcApYYHAKOGBwAviAcApoYHAKOGBwAviAcApoYHAKOGBwCmhgcAo4YHAKeGBwClhgcAo4YHACqIBwBwcHBwAAAAACqIBwCkhgcAcHBwAKiGBwCjhgcAKogHAKiGBwCjhgcAL4gHAKiGBwCjhgcAp4YHADSIBwCjhgcAIIgHAKOGBwAgiAcAmYYHACmIBwCphgcAIIgHAJiGBwAhiAcAr4YHAC6IBwBpcHBkAAAAACCIBwCvhgcANYcHACGIBwCvhgcAsYYHAK+GBwAviAcAsoYHAK+GBwAviAcAs4YHAK+GBwAviAcAtIYHAK+GBwAviAcAtYYHAK+GBwAviAcAtoYHAK+GBwAqiAcAtoYHAK+GBwAviAcAKogHAK+GBwC3hgcAr4YHACqIBwC3hgcAr4YHAC+IBwCzhgcAr4YHACqIBwA0iAcAr4YHACqIBwAAAAAAAAAAAAAAAAC4hgcAr4YHAC+IBwAviAcAcHBwcHAAAAAAAAAAAAAAALOGBwCvhgcAL4gHAC+IBwAgiAcAr4YHACCIBwCvhgcAuYYHACCIBwCvhgcAuoYHADmHBwC7hgcAIIgHALuGBwA5hwcAAAAAAAAAAAAAAAAAIIgHAMmGBwCnhgcALYgHAC2IBwDKhgcAdnBwcGZmcADMhgcAtoYHAKWGBwAhiAcAzIYHAC2IBwBpcHBmAAAAACCIBwDKhgcALYgHANGGBwCchgcA0oYHANOGBwCchgcA0oYHANSGBwCchgcA0oYHAAMAAAACAAAAAQAAAAAAAAAFAAAABAAAAAcAAAAGAAAACQAAAAgAAAAPAAAADgAAAA0AAAAMAAAACwAAAAoAAAAgiAcA14YHADSIBwAgiAcA2YYHAOWHBwAgiAcA24YHAJiGBwAgiAcA3YYHAJmGBwCehgcAt4YHAKWGBwAhiAcA34YHAC2IBwAhiAcA34YHAC6IBwAqiAcA4IYHALiGBwDghgcAKogHAAAAAAAAAAAAIIgHAN+GBwAuiAcALogHACeIBwB2cHBkZGkAADSIBwDfhgcAKogHAC+IBwDfhgcAKogHACCIBwDfhgcAuYYHACGIBwDfhgcAIIgHAN+GBwA0iAcA34YHAGlwAADjhgcA4YYHAOSGBwDhhgcA5YYHAOGGBwAgiAcA5YYHAHAAAADthgcAJ4gHAAAAAAAAAAAAIIgHAO2GBwAniAcAJ4gHACeIBwDthgcAJ4gHACeIBwBpcHBpaQAAACeIBwDuhgcAIYgHAPKGBwDXhgcA0oYHAJyGBwBpcHBwcHAAACCIBwDxhgcA8oYHADSIBwAAAAAAAAAAAHQEAAB1BAAAdgQAAAAAAAAAAAAAdAQAAHcEAAB4BAAAIYgHACmIBwA0iAcAuYYHAPyGBwAqiAcAuYYHAPyGBwAviAcANIgHAPyGBwC5hgcA/IYHAACHBwD+hgcAL4gHAAGHBwD+hgcAL4gHAAKHBwD+hgcAL4gHAAOHBwD+hgcAL4gHAASHBwD+hgcAL4gHAAWHBwD+hgcAL4gHAAaHBwD+hgcAL4gHALmGBwD+hgcAL4gHAAeHBwD+hgcAL4gHAAiHBwD+hgcAL4gHACGIBwD+hgcAL4gHALmGBwBpcHBwcAAAAC+IBwD+hgcAIIgHAP6GBwA0iAcA/oYHACCIBwD+hgcAIIgHAAmHBwAgiAcAEIcHACeIBwAniAcAJ4gHAHZwcGlpaQAAAAAAACCIBwAQhwcAJ4gHACeIBwAniAcAJ4gHAHZwcGlpaWkAIIgHABCHBwAniAcAIIgHABSHBwAgiAcAGIcHALmGBwAhiAcAGIcHALmGBwAniAcAaXBwcGkAAAC5hgcAGIcHACeIBwBwcHBpAAAAACCIBwAYhwcAJ4gHAAAAAAAAAAAAIIgHABiHBwAoiAcAKIgHACCIBwAahwcA5YcHACCIBwAchwcApoYHACCIBwAchwcAuYYHACCIBwAehwcAIIgHAC+IBwDY3AQA4NwEAOjcBADw3AQA+NwEAADdBAAI3QQAEN0EABjdBABAVwQAbkoEAPlQBADoRgQAnTkEADNeBAC+SAQAmlIEADlJBABONwQAMGQEAIpmBAAAAAAAAAAAAHkEAAB6BAAAewQAAAAAAAAAAAAAeQQAAHwEAAB9BAAAcHAAdgB2cAAgiAcAOIcHAHZwcAAgiAcAOIcHADmHBwB2cHBwAAAAACCIBwA4hwcALYgHAHZwcGYAAAAAAAAAACCIBwA4hwcAOocHADuHBwB2cHBwcAAAACCIBwA4hwcAOocHAAAAAAAAAAAAAAAAACCIBwA4hwcAPIcHAD2HBwA+hwcAPocHAC2IBwB2cHBpaXBwZgAAAAAgiAcAN4cHADiHBwA0iAcAcHBwAAAAAAAAAAAAfgQAAH8EAACABAAAgQQAAIIEAACDBAAAhAQAAIUEAACGBAAAhwQAAAAAAAAAAAAAfgQAAIgEAAB4BAAAeAQAAHgEAAB4BAAAeAQAAHgEAAB4BAAAeAQAACCIBwAgiAcALYgHAC2IBwAtiAcALYgHAC2IBwAtiAcAIIgHADqHBwA7hwcAIIgHADqHBwAgiAcAaIcHAGmHBwBqhwcALYgHACCIBwA0iAcAAAAAACCIBwBohwcAaYcHAGqHBwAtiAcAKYgHACeIBwApiAcAJ4gHACmIBwAniAcALYgHAC2IBwAtiAcALYgHACCIBwAtiAcANIgHAC+IBwA0iAcAcHBwcAAAAAAgiAcAh4cHACCIBwCHhwcAhYcHADmHBwAgiAcAh4cHAIiHBwB2cHBpAAAAAAAAAAAAAAAAAAAAACCIBwCHhwcALYgHAC2IBwB2cHBmZgAAAAAAAAAAAAAAIIgHAIeHBwAtiAcALYgHAC2IBwAtiAcALYgHAC2IBwB2cHBmZmZmZmYAAAAgiAcAhocHAIeHBwA0iAcAAAAAAAAAAACJBAAAigQAAIsEAACMBAAAjQQAAI4EAACPBAAAkAQAAJEEAACSBAAAkwQAAJQEAACVBAAAlgQAAAAAAAAAAAAAiQQAAJcEAAB4BAAAeAQAAI0EAAB4BAAAeAQAAHgEAAB4BAAAkgQAAJMEAAB4BAAAlQQAAHgEAAAgiAcAiIcHACCIBwAtiAcALYgHACCIBwAtiAcALYgHAC2IBwAtiAcALYgHAC2IBwAAAAAAIIgHAIWHBwAtiAcALYgHAC2IBwAtiAcALYgHAC2IBwAgiAcAuYcHACiIBwAgiAcAuYcHAKyHBwAgiAcAuYcHAC2IBwAgiAcAuYcHAK6HBwAgiAcAuYcHAK2HBwAgiAcAuYcHAGqHBwAgiAcAuYcHALOHBwAgiAcAuIcHALmHBwA0iAcAAAAAAAAAAACYBAAAmQQAAJoEAACbBAAAnAQAAJ0EAACeBAAAnwQAAKAEAAChBAAAogQAAAAAAAAAAAAAmAQAAKMEAAB4BAAAeAQAAHgEAAB4BAAAeAQAAJ8EAAB4BAAAeAQAAHgEAAAgiAcArIcHACCIBwAoiAcAIIgHAK6HBwAgiAcArYcHACCIBwBqhwcAAAAAAAAAAAAAAAAAIIgHAOeHBwAniAcAJ4gHAHZwcGlpAAAAIIgHAOeHBwAgiAcA5ocHAOeHBwA0iAcAAAAAAAAAAACkBAAApQQAAAAAAAAAAAAApAQAAKYEAAAAAAAAAAAAAKcEAACoBAAAqQQAAKoEAACrBAAArAQAAK0EAACuBAAArwQAALAEAAAAAAAAAAAAALEEAACyBAAAswQAALQEAAAAAAAAAAAAAHkEAAC1BAAAeAQAADSIBwA0iAcANIgHACCIBwAoiAcALYgHAAAAAAAAAAAAAAAAACCIBwAtiAcALYgHAC2IBwAtiAcAAAAAAAAAAAAAAAAAIIgHAC2IBwAtiAcALYgHAC2IBwAAAAAAAAAAALYEAAC3BAAAuAQAALkEAAC6BAAAuwQAALwEAAC9BAAAvgQAAL8EAADABAAAwQQAAMIEAADDBAAAxAQAAMUEAADGBAAAxwQAAMgEAADJBAAAygQAAMsEAADMBAAAzQQAAM4EAADPBAAA0AQAANEEAADSBAAA0wQAANQEAADVBAAA1gQAANcEAADYBAAA2QQAANoEAADbBAAA3AQAAN0EAADeBAAA3wQAAOAEAADhBAAA4gQAAOMEAADkBAAA5QQAAOYEAADnBAAA6AQAAOkEAADqBAAA6wQAAOwEAADtBAAA7gQAAO8EAADwBAAA8QQAAPIEAADzBAAA9AQAAPUEAAD2BAAA9wQAAPgEAAD5BAAA+gQAAPsEAAD8BAAA/QQAAP4EAAD/BAAAAAUAAAEFAAACBQAAAwUAAAQFAAAFBQAABgUAAAcFAAAIBQAACQUAAAoFAAALBQAADAUAAA0FAAAOBQAADwUAABAFAAARBQAAEgUAABMFAAAUBQAAFQUAABYFAAAXBQAAGAUAABkFAAAaBQAAGwUAABwFAAAdBQAAHgUAAB8FAAAgBQAAIQUAACIFAAAjBQAAJAUAAJj///8AAAAAJQUAACYFAAAnBQAAHP///wAAAAAoBQAAKQUAABj///8AAAAAKgUAACsFAAAsBQAALQUAAC4FAAAvBQAAMAUAADEFAAAE////AAAAADIFAAAA////AAAAADMFAAA0BQAANQUAAPz+//8AAAAANgUAADcFAAA4BQAAOQUAADoFAAA7BQAAPAUAAD0FAAA+BQAArPr//wAAAAA/BQAAQAUAAEEFAACo+v//AAAAAEIFAACk+v//AAAAAEMFAACg+v//AAAAAEQFAABFBQAARgUAAEcFAABIBQAAAAAAAAAAAABJBQAASgUAALgEAAC5BAAAugQAALsEAAC8BAAAvQQAAL4EAAC/BAAAwAQAAMEEAADCBAAAwwQAAMQEAADFBAAAxgQAAMcEAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAADOBAAAzwQAANAEAADRBAAA0gQAANMEAADUBAAA1QQAANYEAADXBAAA2AQAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAOIEAADjBAAA5AQAAOUEAADmBAAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADvBAAA8AQAAPEEAADyBAAA8wQAAPQEAAD1BAAA9gQAAPcEAAD4BAAA+QQAAPoEAAD7BAAA/AQAAP0EAAD+BAAA/wQAAAAFAAABBQAAAgUAAAMFAAAEBQAABQUAAAYFAAAHBQAACAUAAAkFAAAKBQAACwUAAAwFAAANBQAADgUAAA8FAAAQBQAAEQUAABIFAAATBQAAFAUAABUFAAAWBQAAFwUAABgFAAAZBQAAGgUAABsFAAAcBQAAHQUAAB4FAAAfBQAAIAUAACEFAAAiBQAAIwUAACQFAACY////AAAAACUFAAAmBQAAJwUAABz///8AAAAAKAUAACkFAAAY////AAAAACoFAAArBQAASwUAAEwFAAAuBQAALwUAADAFAAAxBQAABP///wAAAAAyBQAAAP///wAAAABNBQAATgUAADUFAAD8/v//AAAAADYFAAA3BQAAOAUAADkFAAA6BQAAOwUAADwFAAA9BQAAPgUAAKz6//8AAAAATwUAAFAFAABBBQAAqPr//wAAAABCBQAApPr//wAAAABDBQAAoPr//wAAAABEBQAARQUAAEYFAABHBQAASAUAAAAAAAAAAAAAUQUAAFIFAABTBQAAVAUAAFUFAABWBQAAvAQAAFcFAABYBQAAWQUAAMAEAADBBAAAWgUAAFsFAABcBQAAXQUAAF4FAABfBQAAyAQAAMkEAADKBAAAywQAAMwEAADNBAAAYAUAAM8EAABhBQAAYgUAAGMFAABkBQAAZQUAANUEAABmBQAA1wQAAGcFAADZBAAA2gQAANsEAADcBAAA3QQAAN4EAADfBAAA4AQAAOEEAABoBQAA4wQAAGkFAABqBQAAawUAAOcEAADoBAAA6QQAAOoEAADrBAAA7AQAAO0EAADuBAAA7wQAAPAEAABsBQAAbQUAAG4FAABvBQAAcAUAAHEFAAByBQAAcwUAAPkEAAB0BQAAdQUAAJj///8AAAAAdgUAACYFAAAnBQAAAAAAAAAAAAB3BQAAeAUAAHkFAAB6BQAAewUAAHwFAAC8BAAAVwUAAFgFAABZBQAAwAQAAMEEAAB9BQAAWwUAAFwFAAB+BQAAXgUAAF8FAADIBAAAyQQAAMoEAADLBAAAzAQAAM0EAAB/BQAAzwQAAIAFAABiBQAAYwUAAGQFAABlBQAA1QQAAGYFAADXBAAAZwUAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAGgFAADjBAAAaQUAAGoFAABrBQAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADvBAAA8AQAAIEFAACCBQAAgwUAAPQEAAD1BAAA9gQAAPcEAAD4BAAAhAUAAPoEAAD7BAAAhQUAAIYFAACHBQAAiAUAAIkFAACKBQAAiwUAAIwFAACNBQAAjgUAAI8FAACQBQAAkQUAAJIFAACTBQAAlAUAAJUFAACWBQAAlwUAAJgFAACZBQAAmgUAAJsFAACcBQAAnQUAAJ4FAACfBQAAoAUAAKEFAACiBQAAowUAAKQFAAClBQAApgUAAKcFAACoBQAAqQUAAKoFAACrBQAArAUAAK0FAACuBQAArwUAALAFAACY////AAAAAHYFAAAmBQAAJwUAACz///8AAAAAsQUAALIFAACzBQAAtAUAALUFAAC2BQAAtwUAALgFAAC5BQAAugUAALsFAAC8BQAAvQUAAL4FAAC/BQAAwAUAAMEFAADCBQAAwwUAACT///8AAAAAxAUAACD///8AAAAAxQUAABz///8AAAAAxgUAAMcFAADIBQAAyQUAAMoFAADLBQAAzAUAAM0FAADOBQAADP///wAAAADPBQAACP///wAAAADQBQAA0QUAANIFAADTBQAA1AUAANUFAADWBQAA1wUAANgFAADZBQAA2gUAAAT///8AAAAA2wUAANwFAAAAAAAAAAAAAHgEAAB4BAAAAAAAAAAAAADdBQAA3gUAAAAAAAAAAAAA5AUAAOUFAADmBQAA5wUAAAAAAAAAAAAA6AUAAOkFAADqBQAA6wUAAAAAAAAAAAAA7AUAAO0FAAB4BAAAeAQAAHgEAADuBQAA7wUAAPAFAADxBQAA8gUAAAAAAAAAAAAA8wUAAPQFAAD1BQAA9gUAAPcFAAABAAAAAAAAAP////8CAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAD/////AgAAAAIAAAD/////AAAAAAIAAAACAAAAAgAAAP////////////////////8CAAAABAAAAAIAAAACAAAAAgAAAP////8DAAAAAwAAAAIAAAAAAAAABAAAAAIAAAD///////////////8CAAAAAgAAAAAAAAAAAAAABAAAAAAAAAD/////AAAAAP////8BAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAABAAAAAIAAAACAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAACAAAA//////////////////////////////////////////8CAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAADAAAAAgAAAAIAAAACAAAAAAAAAAAAAAAEAAAAAAAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAAAAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAIAAAACAAAAAAAAAAAAAAD//////////////////////////////////////////wEAAAD/////AgAAAAQAAAD/////////////////////////////////////AAAAAP////8AAAAAAAAAAP//////////AAAAAAAAAAACAAAAAAAAAP////8AAAAAAgAAAAIAAAACAAAABAAAAAAAAAACAAAAAAAAAAAAAAD//////////wAAAAACAAAAAAAAAAQAAAAAAAAA/////wIAAAAAAAAAAAAAAAAAAAAEAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAAEAAAAAAAAAAAAAAACAAAAAgAAAAQAAAACAAAAAQAAAAAAAAD/////AAAAAAIAAAACAAAA////////////////AQAAAP//////////AgAAAAIAAAD///////////////////////////////8BAAAAAAAAAAAAAAD/////AAAAAAAAAAACAAAA////////////////////////////////AAAAAAAAAAAEAAAAAgAAAAAAAAD//////////wIAAAD/////BAAAAAEAAAD/////AQAAAAAAAAD///////////////////////////////////////////////////////////////////////////////////////////////8BAAAA////////////////AAAAAP////8CAAAA/////////////////////wAAAAABAAAAAAAAAP//////////AAAAAAIAAAACAAAAAAAAAAIAAAAAAAAA//////////8CAAAA////////////////AAAAAAIAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAP///////////////wAAAAAAAAAA//////////8AAAAAAgAAAAIAAAACAAAAAAAAAAIAAAACAAAAAgAAAAIAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAQAAAACAAAAAAAAAAIAAAACAAAAAgAAAAIAAAACAAAA//////////////////////////////////////////8AAAAAAAAAAP//////////////////////////AAAAAAAAAAD/////AQAAAP//////////AQAAAAIAAAAEAAAABAAAAAIAAAACAAAA//////////8CAAAAAgAAAAIAAAACAAAA//////////8EAAAAAAAAAAAAAAD/////AgAAAAIAAAD/////////////////////////////////////AAAAAAIAAAD/////AAAAAAAAAAD//////////////////////////wAAAAAAAAAA/////////////////////wAAAAACAAAAAgAAAAAAAAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAAAP///////////////wIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAP//////////////////////////AgAAAP//////////////////////////AAAAAAAAAAAAAAAA//////////8EAAAA/////////////////////////////////////wAAAAAAAAAA////////////////AAAAAAMAAAD/////AQAAAP//////////AAAAAAEAAAD///////////////8AAAAAAAAAAP//////////////////////////AQAAAP////8AAAAAAgAAAP////8AAAAAAQAAAAEAAAD//////////wEAAAAAAAAA//////////8AAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAABAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8EAAAAAQAAAAIAAAAAAAAAAwAAAAQAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAD/////BAAAAP//////////AAAAAAMAAAACAAAAAAAAAAEAAAAAAAAAAAAAAP///////////////wAAAAD/////AQAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////wAAAAAAAAAA/////wIAAAAEAAAAAAAAAP////8AAAAA/////wIAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAD/////AAAAAAIAAAAEAAAAAgAAAAQAAAD///////////////8CAAAAAgAAAAIAAAACAAAA//////////8EAAAA/////wAAAAACAAAAAgAAAAAAAAAAAAAA/////wEAAAD/////AAAAAAAAAAAAAAAAAgAAAAIAAAACAAAAAgAAAP//////////AAAAAP////8EAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAACAAAAAAAAAP//////////BAAAAP//////////////////////////////////////////AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAACAAAABAAAAP///////////////wIAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAAAAAAAAAABAAAA////////////////BAAAAP////////////////////8AAAAAAAAAAAIAAAAAAAAABAAAAP////8CAAAABAAAAAIAAAACAAAAAgAAAAIAAAD/////////////////////////////////////////////////////////////////////AAAAAP//////////////////////////AgAAAAIAAAACAAAAAgAAAAIAAAACAAAA//////////8AAAAA/////wAAAAABAAAAAgAAAP////////////////////8AAAAAAAAAAP////////////////////////////////////////////////////8AAAAAAwAAAP///////////////////////////////////////////////wAAAAD/////AAAAAP////8EAAAABAAAAP////////////////////8AAAAA/////wAAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAQAAAP////8BAAAA/////wAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////////////////////AAAAAAIAAAACAAAA/////wQAAAAAAAAAAAAAAAIAAAAEAAAA//////////////////////////////////////////////////////////8CAAAAAgAAAP//////////AQAAAAAAAAD/////BAAAAP//////////////////////////AQAAAAQAAAAAAAAA////////////////AQAAAP///////////////wAAAAAAAAAAAAAAAP////8AAAAAAAAAAP////////////////////////////////////////////////////////////////////////////////////8AAAAABAAAAAQAAAAEAAAAAAAAAAAAAAD/////////////////////AAAAAAEAAAD/////AAAAAAAAAAD/////////////////////AAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAEAAAAAAAAAP////8AAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAA////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAAAAAAAAD//////////wQAAAAAAAAA//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAABAAAAAAAAAD//////////wIAAAAAAAAAAAAAAPgFAAD5BQAA+gUAAPsFAAD8BQAA/QUAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgADAwQFAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAEAAcDAwQFAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQACAwMEBQAAAAgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUACgsLDA0JCQkJDAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkNCQ4JCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkOCQsLDA8JCQkJDAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkPCQsLDA0JCQkJDAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkNCQwJEAsLDA0JCQkJDAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkNCQoLCwwNCQkJEQwJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJDQkKCwsMDQkJCRIMCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQ0JFBUVFhcTExMYFhMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMXExkTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMZExUVFhsaGhoaFhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhobGhUVFhcTExMTFhMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMXExYaFBUVFhcTExMTFhMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMXExwVFRYXExMTExYTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTFxMeHx8gIR0dHSIgHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSEdIx0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSMdHx8gJB0dHR0gHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSQdHx8gIR0dHR0gHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSEdIB0eHx8gIR0dHR0gHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHSEdJR8fICEdHR0dIB0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0hHRUVFiYAAAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmACgnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycoJyorLC0uLxYXMDExGBYyMzQ1NikpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpNyk5Ojs8BAU9ODgIBDg4Pjg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgFOD86QEAEBT04ODgEODg+ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAU4OkBABAU9ODg4BDg4Pjg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgFOCo4ODhBQjgBPTg4ODg4Kjg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4AThDQzgBPTg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ATg9ODhEPTg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4RDg9OD04ODg9OCo4RThDQzgBPTg4ODg4Kjg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ATgqODg4Q0M4AT04ODg4OCo4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAE4Kjg4OENCOAE9ODg4ODgqODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgBOEZHSEgEBT04ODgEODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAU4R0hIBAU9ODg4BDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgFOEhIBAU9ODg4BDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgFOD04OEQ9ODg4BDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODhEOElKSgQFPTg4OAQ4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4BThBSzgBPTg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4AThBOENDOAE9ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgBOENLOAE9ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgBODk6QEAEBT04ODgEODg+ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAU4OTo7QAQFPTg4CAQ4OD44ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4BThNTk9QDA1RTEwSDExMUkxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwNTFNOVFAMDVFMTEwMTExSTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTA1MTlRQDA1RTExMDExMUkxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwNTFVMTExWV0wOUUxMTExMVUxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDkxYTllaDA1RTEwRDExMUkxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwNTFtOVFQMDVFMTEwMTExSTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTA1MTlRUDA1RTExMDExMUkxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwNTFVMTExcV0wOUUxMTExMVUxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDkxRTExdUUxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMXUxRTFFMTExRTFVMXkxcXEwOUUxMTExMVUxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDkxVTExMXFxMDlFMTExMTFVMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTA5MX2BhYQwNUUxMTAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDUxgYWEMDVFMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTA1MYWEMDVFMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTA1MUUxMXVFMTEwMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTF1MYmNjDA1RTExMDExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwNTFZkTA5RTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwOTFxcTA5RTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwOTFZMXFxMDlFMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTA5MXGRMDlFMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTA5MWE5UVAwNUUxMTAxMTFJMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDUxYTllUDA1RTEwRDExMUkxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwNTAoLCwwNTExMTAxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMDUxNTlRQDA1RTExMDExMUkxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEwNTGYtZ2cWFzBlZWUWZWU0ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZRdlLWdnFhcwZWVlFmVlNGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWUXZWhlZWVpamUZMGVlZWVlaGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlGWUsLWtsFhcwZWUYFmVlNGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWUXZWhlZWVtamUZMGVlZWVlaGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlGWUwZWVuMGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlbmUwZTBlZWUwZWhlb2VtbWUZMGVlZWVlaGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlGWVoZWVlbW1lGTBlZWVlZWhlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZRllcHFychYXMGVlZRZlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlF2VxcnIWFzBlZWUWZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZRdlcnIWFzBlZWUWZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZRdlMBoabjAaGhoWGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGm4aLC1nZxYXMGVlZRZlZTRlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlF2VzdHQWFzBlZWUWZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZRdlaXVlGTBlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZRllbW1lGTBlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZRllaWVtbWUZMGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlGWVtdWUZMGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlGWUsLWtnFhcwZWUYFmVlNGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWUXZRQVFRYXdnZ2GBZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2F3YUFRUWF3Z2dnYWdnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dhd2eHl6eyAhfHd3IiB3d313d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3IXd+eXt7ICF8d3d3IHd3fXd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3chd3l7eyAhfHd3dyB3d313d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3IXd/d3d3gIF3I3x3d3d3d393d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dyN3eHl6MSAhfHd3IiB3d313d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3IXd/d3d3goF3I3x3d3d3d393d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dyN3fHd3g3x3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4N3fHd8d3d3fHd/d4R3goJ3I3x3d3d3d393d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dyN3f3d3d4KCdyN8d3d3d3d/d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3cjd4WGh4cgIXx3d3cgd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dyF3hoeHICF8d3d3IHd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3chd4eHICF8d3d3IHd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3chd3x3d4N8d3d3IHd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eDd3h5e3sgIXx3d3cgd3d9d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dyF3iImJICF8d3d3IHd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3chd4CKdyN8d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3cjd4KCdyN8d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3cjd4B3goJ3I3x3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dyN3gop3I3x3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dyN3KissLWtnFhcwMTEYFmUqNGVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWUXZTmLOzwEBT04OAgEODg+ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAU4KissLYyNFo6PODEYFjgqNDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODiOOBSQkBaOPTg4GBY4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4jjg9ODhEPTg4OBY4ODg4ODg4ODg4ODg4ODg4ODg4ODg4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FhYWFiUWFhYWFhYWFhYWFhYWFhYWFhoWFxYZGRYaGxYWFhYWFhYWFhYqFhYfFhYWFhYWFhYrFhYsFhYWJRYrFhYWFhYWFhYWFhYWFhYWGhYXFhkZFhobFhYWFhYWFhYWFhYWFh8WFhYWFhYWFhYWFhYWFhYlFhYWFhYWFhYWFhYWFhYWFhYaFhcWGRkWGhsWFhYWFhYWFhYWKhYWHxYWFhYWFhYWFhYWFhYWFiUWFhYWFhYWFhYWFhYWFhYWFhoWFxYZGRYaGxYWFhYWFhYWFhYqFhYfFhYWFhYWFhYrFhYWFhYWJRYWFhYWFhYWFhYWFhYWFhYWGhYXFhkZFhobFhYWFhYWFhYWFioWFh8WFhYWFhYWFisWFhYWFhYlFisWFhYWFhYWFhYWFhYWFhYaFhkZFhoWFhYWFhYWFhYWFhYWFh8WFhYWFhYWFhYWFhYWFhYlFhYWFhYWFhYWFhYWFhYWFhYaFgEBFhYWFhYWFhYWFhYWARYXFhkZFhobFhYWFhYWFhYWFhwdFh8WFhYWFhYWFhYWFhYWFhYlFhYWFhYWFhYWFhYWFhYWFhYaFhcWGRkWGhsWFhYWFhYWFhYWFh0WHxYWFhYWFhYWFhYWFhYWFiUWFhYWFhYWFhYWFhYWFhYWFhoWFxYZGRYaGxYWFhYWFhYWFhYcHR4fFhYWFhYWFhYWFhYWFhYWJS0WFhYWFhYWFhYWFhYWFhYWGhYXFhkZFhobFhYWFhYWFhYWFhwdHh8WFhYWFhYWFhYWFhYWFhYlFhYWFhYWFhYWFhYWFhYWFhYaFhcWGRkWGhsWFhYWFhYWFhYWHB0eHxYWFhYWFhYWIBYWISIjJCUWJxYWFhYWFhYWFhYWFhYWFhoWFxYZGRYaGxYWFhYWFhYWFhYcHR4fFhYWFhYWFhYtFhYWFhYWJRYnFhYWFhYWFhYWFhYWFhYWGhYXFhkZFhobFhYWFhYWFhYWFhwdHh8WFhYWFhYWFi0WFhYWFhYlFhYWFhYWFhYWFhYWFhYWFhYaFhcWGRkWGhsWFhYWFhYWFhYWHB0eHxYWFhYWFhYWFhYWIRYjFiUWJxYWFhYWFhYWFhYWFhYWFhoWFxYZGRYaGxYWFhYWFhYWFhYcHR4fFhYWFhYWFhYtFhYhFhYWJRYnFhYWFhYWFhYWFhYWFhYWGhYXFhkZFhobFhYWFhYWFhYWFhwdHh8WFhYWFhYWFi4WFiEiIxYlFicWFhYWFhYWFhYWFhYWFhYaFhcWGRkWGhsWFhYWFhYWFhYWHB0eHxYWFhYWFhYWFhYWISIjFiUWJxYWFhYWFhYWFhYWFhYWFhoWFxgZGRYaGxYWFhYWFhYWFhYcHR4fFhYWFhYWFhYgFhYhIiMkJRYnFhYWFhYWFhYWFhYWFhYWGhYwMC8FLy8vLy8vLy8vLy8vLy8MLy8vLy8vLy8xLy8vLy8vEi8vLy8vLy8vLy8vLy8vLy8vBS8wMDIFMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyEjIyMjIyMjIyMjIyMjIyMjIyBTIzLzAwLwUSLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwUvLy8vLy8SLy8vLy8vLy8vLy8vLy8vLy8FLzAwLwUvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwUvLy8vLy8SLy8vLy8vLy8vLy8vLy8vLy8FLwIvMDAvBQYvLy8vLy8vLy8vNC8vDC8vLy8vLy8vNS8vNi8vLxIvNS8vLy8vLy8vLy8vLy8vLwUvAi8wMC8FBi8vLy8vLy8vLy8vLy8MLy8vLy8vLy8vLy8vLy8vEi8vLy8vLy8vLy8vLy8vLy8vBS8CLzAwLwUGLy8vLy8vLy8vLzQvLwwvLy8vLy8vLy8vLy8vLy8SLy8vLy8vLy8vLy8vLy8vLy8FLwIvMDAvBQYvLy8vLy8vLy8vNC8vDC8vLy8vLy8vNS8vLy8vLxIvLy8vLy8vLy8vLy8vLy8vLwUvAi8wMC8FBi8vLy8vLy8vLy80Ly8MLy8vLy8vLy81Ly8vLy8vEi81Ly8vLy8vLy8vLy8vLy8vBS8wMC8FLy8vLy8vLy8vLy8vLy8MLy8vLy8vLy8vLy8vLy8vEi8vLy8vLy8vLy8vLy8vLy8vBS83Ny8vLy8vLy8vLy8vLzcvAgMwMC8FBi8vLy8vLy8vLy8JCgsMLy8vLy8vLy8NLy8ODxAREhMULy8vLy8vLy8vLy8vLy8vBS8CLzAwLwUGLy8vLy8vLy8vLwkKLwwvLy8vLy8vLy8vLy8vLy8SLy8vLy8vLy8vLy8vLy8vLy8FLwIvMDAvBQYvLy8vLy8vLy8vLwovDC8vLy8vLy8vLy8vLy8vLxIvLy8vLy8vLy8vLy8vLy8vLwUvAi8wMC8FBi8vLy8vLy8vLy8JCgsMLy8vLy8vLy8vLy8vLy8vEjgvLy8vLy8vLy8vLy8vLy8vBS8CLzAwLwUGLy8vLy8vLy8vLwkKCwwvLy8vLy8vLy8vLy8vLy8SLy8vLy8vLy8vLy8vLy8vLy8FLwIvMDAvBQYvLy8vLy8vLy8vCQoLDC8vLy8vLy8vDS8vDg8QERIvFC8vLy8vLy8vLy8vLy8vLwUvAi8wMC8FBi8vLy8vLy8vLy8JCgsMLy8vLy8vLy84Ly8vLy8vEi8ULy8vLy8vLy8vLy8vLy8vBS8CLzAwLwUGLy8vLy8vLy8vLwkKCwwvLy8vLy8vLzgvLy8vLy8SLy8vLy8vLy8vLy8vLy8vLy8FLwIvMDAvBQYvLy8vLy8vLy8vCQoLDC8vLy8vLy8vLy8vDi8QLxIvFC8vLy8vLy8vLy8vLy8vLwUvAi8wMC8FBi8vLy8vLy8vLy8JCgsMLy8vLy8vLy84Ly8OLy8vEi8ULy8vLy8vLy8vLy8vLy8vBS8CLzAwLwUGLy8vLy8vLy8vLwkKCwwvLy8vLy8vLzkvLw4PEC8SLxQvLy8vLy8vLy8vLy8vLy8FLwIvMDAvBQYvLy8vLy8vLy8vCQoLDC8vLy8vLy8vLy8vDg8QLxIvFC8vLy8vLy8vLy8vLy8vLwUvAgMwMC8FBi8vLy8vLy8vLy8JCgsMLy8vLy8vLy8NLy8ODxAREi8ULy8vLy8vLy8vLy8vLy8vBS8XGBkZFhobFhYWFhYWFhYWFhwdHh8WFhYWFhYWFjoWFiEiIyQlJicWFhYWFhYWFhYWFhYWFhYaFhc7GRkWGhsWFhYWFhYWFhYWHB0eHxYWFhYWFhYWIBYWISIjJCUWJxYWFhYWFhYWFhYWFhYWFhoWAQECAzAwLwUGAQEvLy8BLy8vLwkKCwwvLy8vLy8vLw0vLw4PEBESExQvLy8vLy8vLy8vLy8vLy8FLwEBPDw8PDw8PAEBPDw8ATwAAAAAAAAAAAAAAAAAADoAcgCoAN4AFgFMAYQBvAH0ASwCZAKaAqoC4gIaA1IDigPCA/oDMgRqBKIE2gQSBUoFgAW2Be4FJAZcBpQGzAYEBzwHcgeCB7oH8gcqCGIImgjSCAoJQgl6CbIJ6gkiCloKkgrKCgQLAAAAAAAAOTc1NTc1Nzc3Nzc1Dzc3Nzc3Nzc3Nzc3NzU1NzU3Nzc3NzUPNzc3Nzc3Nzc3Nzc3Nzc3OQ8AAAAAAAAAAAAAAAABGSMAGh4xNCUmJx0pKiwtLhswKxoAAgwAAwcNDg8GERIUFRYEGBMLBQgJChAXAAAiABwfICEkKC8yMwAAAAADAAAABAUAAAAAAAAAAAAAAAAAAAAGBwAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkKAAsAAAAAAAAAAAAMAAAAAAAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAwADMAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAXABcAMAA9AAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC9FgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAIAAAAAAAAAvhYAAAAAAAC/FgAAwBYAAMEWAAAAAAAAAAAAAMIWAADDFgAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAGZya3JmdmJhZndsYmZsYWhmdHNwdXRhdnRjamMAAAAAbG9zaXRpbmlpZGVtYW5pZnN2YmFzd2xibmxhaHNlcnBzdHNwAAAAAAAAAAAAAAAAMTMAOAs4CzgBNQ4wDi8OLw4vDi4OLg4ODjAOMA4wAQ4OMA41DjUONQ41DDUONQw1DDUMNQs4AQ4BMA4qDioLOAE1DjAOLw4vDi8OLg4uDg4OMA4wDjABDg4wDjUONQ41DjUMNQ41DDUMNQw1CzgBDgEOATAODg0OBA4LOAs4ATUOMA4vDi8OLw4uDi4ODg4wDjAOMAEODjAONQ41DjUONQw1DjUMNQw1DDULOAEOAQ4BMA4OCzgBNQ4wDi8OLw4vDi4OLg4ODjAOMA4wAQ4OMA41DjUONQ41DDUONQw1DDUMNQs4AQ4BMAQODQ4BOA4qDioBBQ43DjMONA42CzgAAAEAAgADBAUFBgcFBQUFBQgJCgsFBQUMBQUFDQ4PEBESExQVCBYXGBkFGhscBR0eHyAhIiMgAQUkBSUFBSYFKCknKicnJycnJycrLC0uLzAxMjMoNDU2Nyc4OTonOzwnPT4/QD0nJycnQScnQCcoKScqJycnJycnJyssLS4vMDEyMyg0NTY3Jzg5OicnJyc9Pj9APScnJydBJydAJygnJycnJycnJycnJycqJycnJycnJycsLS4vJycnJycnJycnJzg5OicnJycnPj9AQicnJycsJyonJycnJycnJywtLi8nJycnJycnJycnODk6JycnJyc+P0BCJyonJycnJycnJyctLi8nJycnJycnJycnJycnJycnJyc+P0AnKicnJycnJycnJycuLycnJycnJycnJycnJycnJycnJz4/QCcqJycnJycnJycnJycvJycnJycnJycnJycnJycnJycnPj9AJyonJycnJycnJycnJycnJycnJycnJycnJycnJycnJyc+PycqJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJz8nKicqJycnJycnJycnLS4vJycnJycnJycnJzg5OicnJycnPj9AQicqJycnJycnJycnLS4vJycnJycnJycnJyc5OicnJycnPj9AQicqJycnJycnJycnLS4vJycnJycnJycnJycnOicnJycnPj9AQidDJycnJycnJycnJycnKicqJycnJycnJycnLS4vJycnJycnJycnJycnJycnJycnPj9AQicqJycnJycnJyssLS4vJycnJycnNTY3Jzg5OicnJycnPj9AQicnJycsJyonJycnJycnJywtLi8nJycnJyc1NjcnODk6JycnJyc+P0BCJycnJywnKicnJycnJycnLC0uLycnJycnJyc2Nyc4OTonJycnJz4/QEInJycnLCcqJycnJycnJycsLS4vJycnJycnJyc3Jzg5OicnJycnPj9AQicnJycsJ0QnKicnJycnJycrLC0uLycxMicnJzU2Nyc4OTonJycnJz4/QEInJycnLCcqJycnJycnJycsLS4vJycnJycnJycnJzg5OicnJycnPj9AQicnJycsJ0QnKicnJycnJycrLC0uLycnMicnJzU2Nyc4OTonJycnJz4/QEInJycnLCdEJyonJycnJycnKywtLi8nJycnJyc1NjcnODk6JycnJyc+P0BCJycnJywnRCcqJycnJycnJyssLS4vMDEyJycnNTY3Jzg5OicnJycnPj9AQicnJycsJygpJyonJycnJycnKywtLi8wMTIzJzQ1NjcnODk6JycnJz0+P0A9JycnJ0EnJ0AnKCcnJycnJycnJycnJyonKCcnJycnJycnJycnJyonJycnJycnJywtLi8nJycnJycnJycnODk6JycnJyc+P0BCJyonJycnJycnJycnJycnJycnJycnJycnJycnJzs8JyonJycnJycnJycnJycnJycnJycnJycnJycnJyc8JwRGRUdFRUVFRUVFSElKS0xNTk9QBFFSU1RFVVZXRUVFRVhZWltcRUVFRV1FRV5FBEVFRUVFRUVFRUVFRUdFRUVFRUVFRUlKS0xFRUVFRUVFRUVFVVZXRUVFRUVZWltfRUVFRUlFR0VFRUVFRUVFSUpLTEVFRUVFRUVFRUVVVldFRUVFRVlaW19FR0VFRUVFRUVFRUpLTEVFRUVFRUVFRUVFRUVFRUVFRVlaW0VHRUVFRUVFRUVFRUtMRUVFRUVFRUVFRUVFRUVFRUVFWVpbRUdFRUVFRUVFRUVFRUxFRUVFRUVFRUVFRUVFRUVFRUVZWltFR0VFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRVlaRUdFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFWkVHRUdFRUVFRUVFRUVKS0xFRUVFRUVFRUVFVVZXRUVFRUVZWltfRUdFRUVFRUVFRUVKS0xFRUVFRUVFRUVFRVZXRUVFRUVZWltfRUdFRUVFRUVFRUVKS0xFRUVFRUVFRUVFRUVXRUVFRUVZWltfRWFgYGBgYGBgYGBgYGBiYEdFRUVFRUVFRUVKS0xFRUVFRUVFRUVFRUVFRUVFRUVZWltfRUdFRUVFRUVFSElKS0xFRUVFRUVSU1RFVVZXRUVFRUVZWltfRUVFRUlFR0VFRUVFRUVFSUpLTEVFRUVFRVJTVEVVVldFRUVFRVlaW19FRUVFSUVHRUVFRUVFRUVJSktMRUVFRUVFRVNURVVWV0VFRUVFWVpbX0VFRUVJRUdFRUVFRUVFRUlKS0xFRUVFRUVFRVRFVVZXRUVFRUVZWltfRUVFRUlFY0VHRUVFRUVFRUhJSktMRU5PRUVFUlNURVVWV0VFRUVFWVpbX0VFRUVJRUdFRUVFRUVFRUlKS0xFRUVFRUVFRUVFVVZXRUVFRUVZWltfRUVFRUlFY0VHRUVFRUVFRUhJSktMRUVPRUVFUlNURVVWV0VFRUVFWVpbX0VFRUVJRWNFR0VFRUVFRUVISUpLTEVFRUVFRVJTVEVVVldFRUVFRVlaW19FRUVFSUVjRUdFRUVFRUVFSElKS0xNTk9FRUVSU1RFVVZXRUVFRUVZWltfRUVFRUlFBEZFR0VFRUVFRUVISUpLTE1OT1BFUVJTVEVVVldFRUVFWFlaW1xFRUVFXUVFXkUEZGRkZGRkZGRkZGRkZWQEYGBgYGBgYGBgYGBgYmAERUVFRUVFRUVFRUVFR0VFRUVFRUVFSUpLTEVFRUVFRUVFRUVVVldFRUVFRVlaW19FZWRnaGYGaWlpaWlpaWlpamlrbEVHRUVFRUVFRW1ub3BxcnN0dWt2d3h5RXp7fEU7PEV9fn+AgUVFRUWCRUWDRWtsRUdFRUVFRUVFbW5vcHFyc3R1a3Z3eHlFent8RUVFRX1+f4CBRUVFRYJFRYNFa0VFRUVFRUVFRUVFRUdFRUVFRUVFRW5vcHFFRUVFRUVFRUVFent8RUVFRUV+f4CERUVFRW5FR0VFRUVFRUVFbm9wcUVFRUVFRUVFRUV6e3xFRUVFRX5/gIRFR0VFRUVFRUVFRW9wcUVFRUVFRUVFRUVFRUVFRUVFRX5/gEVHRUVFRUVFRUVFRXBxRUVFRUVFRUVFRUVFRUVFRUVFfn+ARUdFRUVFRUVFRUVFRXFFRUVFRUVFRUVFRUVFRUVFRUV+f4BFR0VFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRX5/RUdFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFf0VHRUdFRUVFRUVFRUVvcHFFRUVFRUVFRUVFent8RUVFRUV+f4CERUdFRUVFRUVFRUVvcHFFRUVFRUVFRUVFRXt8RUVFRUV+f4CERUdFRUVFRUVFRUVvcHFFRUVFRUVFRUVFRUV8RUVFRUV+f4CERYVgYGBgYGBgYGBgYGBiYEdFRUVFRUVFRUVvcHFFRUVFRUVFRUVFRUVFRUVFRUV+f4CERUdFRUVFRUVFbW5vcHFFRUVFRUV3eHlFent8RUVFRUV+f4CERUVFRW5FR0VFRUVFRUVFbm9wcUVFRUVFRXd4eUV6e3xFRUVFRX5/gIRFRUVFbkVHRUVFRUVFRUVub3BxRUVFRUVFRXh5RXp7fEVFRUVFfn+AhEVFRUVuRUdFRUVFRUVFRW5vcHFFRUVFRUVFRXlFent8RUVFRUV+f4CERUVFRW5FhkVHRUVFRUVFRW1ub3BxRXN0RUVFd3h5RXp7fEVFRUVFfn+AhEVFRUVuRUdFRUVFRUVFRW5vcHFFRUVFRUVFRUVFent8RUVFRUV+f4CERUVFRW5FhkVHRUVFRUVFRW1ub3BxRUV0RUVFd3h5RXp7fEVFRUVFfn+AhEVFRUVuRYZFR0VFRUVFRUVtbm9wcUVFRUVFRXd4eUV6e3xFRUVFRX5/gIRFRUVFbkWGRUdFRUVFRUVFbW5vcHFyc3RFRUV3eHlFent8RUVFRUV+f4CERUVFRW5Fa2xFR0VFRUVFRUVtbm9wcXJzdHVFdnd4eUV6e3xFRUVFfX5/gIFFRUVFgkVFg0VrZGRkZGRkZGRkZGRkZWRrYGBgYGBgYGBgYGBgYmBrRUVFRUVFRUVFRUVFR0VFRUVFRUVFbm9wcUVFRUVFRUVFRUV6e3xFRUVFRX5/gIRFZWQICYcLh4eHh4eHhw0ODxAREhMUFQgWFxgZhxobHIeHh4cgISImIIeHh4clh4cmhwiHh4eHh4eHh4eHh4cLh4eHh4eHh4cODxARh4eHh4eHh4eHhxobHIeHh4eHISImiIeHh4cOhwuHh4eHh4eHhw4PEBGHh4eHh4eHh4eHGhsch4eHh4chIiaIhwuHh4eHh4eHh4cPEBGHh4eHh4eHh4eHh4eHh4eHh4chIiaHC4eHh4eHh4eHh4cQEYeHh4eHh4eHh4eHh4eHh4eHhyEiJocLh4eHh4eHh4eHh4cRh4eHh4eHh4eHh4eHh4eHh4eHISImhwuHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4chIocLh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhyKHC4kLh4eHh4eHh4eHDxARh4eHh4eHh4eHhxobHIeHh4eHISImiIcLh4eHh4eHh4eHDxARh4eHh4eHh4eHh4cbHIeHh4eHISImiIcLh4eHh4eHh4eHDxARh4eHh4eHh4eHh4eHHIeHh4eHISImiIeKh4eHh4eHh4eHh4eHC4cLh4eHh4eHh4eHDxARh4eHh4eHh4eHh4eHh4eHh4eHISImiIcLh4eHh4eHhw0ODxARh4eHh4eHFxgZhxobHIeHh4eHISImiIeHh4cOhwuHh4eHh4eHhw4PEBGHh4eHh4cXGBmHGhsch4eHh4chIiaIh4eHhw6HC4eHh4eHh4eHDg8QEYeHh4eHh4cYGYcaGxyHh4eHhyEiJoiHh4eHDocLh4eHh4eHh4cODxARh4eHh4eHh4cZhxobHIeHh4eHISImiIeHh4cOh4uHC4eHh4eHh4cNDg8QEYcTFIeHhxcYGYcaGxyHh4eHhyEiJoiHh4eHDocLh4eHh4eHh4cODxARh4eHh4eHh4eHhxobHIeHh4eHISImiIeHh4cOh4uHC4eHh4eHh4cNDg8QEYeHFIeHhxcYGYcaGxyHh4eHhyEiJoiHh4eHDoeLhwuHh4eHh4eHDQ4PEBGHh4eHh4cXGBmHGhsch4eHh4chIiaIh4eHhw6Hi4cLh4eHh4eHhw0ODxAREhMUh4eHFxgZhxobHIeHh4eHISImiIeHh4cOhwgJhwuHh4eHh4eHDQ4PEBESExQVhxYXGBmHGhsch4eHhyAhIiYgh4eHhyWHhyaHCIeHh4eHh4eHh4eHhwuHCIeHh4eHh4eHh4eHhwuHh4eHh4eHhw4PEBGHh4eHh4eHh4eHGhsch4eHh4chIiaIh4yHh4eHh4eHh4cLhwoLhwSHh4cEh4eHh4cICQoLh4eHh4eHhw0ODxAREhMUFQgWFxgZhxobHIcdHocgISImIIeHh4clh4cmhwuHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhx0ehwuHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4cehwSNjY0EjY+Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjpCOkY6Rko6Pjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjgGQkI6Pjo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6QjpGOj46Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OkI6RjpGOKCknKicnJycnJycrLC0uLzAxMjMoNDU2Nyc4OTonOzwnPT4/QD0BJwInQScnQCcAAAAAAAAAAAAAAAAAAAAABAA+AG0AnADSAPYAGQE8AV8BgQGjAaUByQHtARECIAJEAm0ClgK/AugCEwM8A2cDkgO9A+wD+wMsBEoEaASXBM0E8QQUBTcFWgV8BZ4FoAXEBegFDAYbBj8GaAaRBroG4wYOBzcHYgeNB7gH5wf2BwUINgg4CDsIRwh2CKUI2wj/CCIJRQloCYoJrAmuCdIJ9gkaCikKTQp2Cp8KyArxChwLRQtwC5sLxgv1CwQMEwxEDEYMdQyrDM8M8gwVDTgNWg18DX4Nog3GDeoN+Q0dDkYObw6YDsEO7A4VD0APaw+WD8UP1A8FEBEQFBBNEGsQiRCPELoQ4RAJETMRAAADOS4uNSMiIiIhIQEjIyMOIygoKCgqKCoqKi4OMB0dLjUjIiIiISEBIyMjDiMoKCgoKigqKiouDg4wAQILLi41IyIiIiEhASMjIw4jKCgoKCooKioqLg4OMAEuNSMiIiIhIQEjIyMOIygoKCgqKCoqKi4OMAsCOB0dBSomJykuAAF6AAIfATs9Wlt0AXZoXF1eX2xub3BxaWprY2Rld3h5cmBhYn5zYgEDBAERBQYHCBUXGBkaEhMUDA0OHR4bCQoLHA8QFgEgAS0hIiMkMTM0NTYuLzAoKSo3JSYnODk6KwEsATIBAQE8AQEBPj9MQEFCQ1BSU1RVTU5PR0hJVkRFRldYWUpLUQFmAWdtdQEBAXt8fQAAAAAAAAAAAAAAAAABAAAAAAQAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYHAAgJAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAA4ADxARABITFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVABYAAAAXGBkAAAAAAAAAAAAAAAAAAAAAAQAAACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKABGAEYARgBGAEYARgBGAEYARgBGAEYARgBhAEYARgBGAEYARgBGAEYARgBGAEYARgBlAGEARgBlAGcAagBGAEYARgBGAEYARgBGAEYARgBGAEYARgBGAGEARgBGAEYARgBGAEYARgBGAEYARgBGAGUAYQBGAGUAiACIAIgAiACIAIgAiACIAIoAiACIAIgAiACIAIgAiACIAIgAiACIAIgAiACIAIgAiACIAIgAiACIAIgAiACOAI8AjwCPAI8AKAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAwAAAAQAUHaACQoLwNAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAADAAAEAAAFBgcICQoLDAANDgAAAAAAAA8QERITFBUAABYAAAAAFwAYAAAAAAAZGgAAAAAAAAAAABscHR4AAAAAAAAAAAAAAAAAAAAAAAAfIAAAAAAAIQAAAAAiIwAkJSYnKCkqKywtLi8wMTIzNDU2AQEBATcBAQEBAQEBAQEBAQEBATgAAAAAAAAAAAAAAAAAOQAAAAAAAAAAOjsAPAA9AAAAAAAAAAAAAAA+PwAAAAAAAAAAAAAAAAAAAEAAAAAAQQAAAAAAAAAAAAAAAAAAAEJDAERFAAAARgAAAAAAAAJHAgICAgICAgICAgICAgIAAAAAAAAAAAEBAQEBAQEBAgICAgICAgIADAcHAA0OAAAADwAAAAAAAAAQAAAAAAAAAAAAAAAIEQAAEgAAAAAAExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtCS4vMDEyMzQJNTY3ODk6Cjs8PT4AAz9AQUIAAABDREVGA0dIBkkDA0pLTAAATU5PUANRUgBTA1RVVgAAAFdYWVpbXANdA15fAAAAYGEAAAAAAAAAYmNkAGVmAABnAAAAAAAAaAAAAAAAAAAAaQAFA2oAAAAAAGsAAAAAAABsbQNub3BxcgNzdAB1dnd4A3l6ewN8fX4AAAAAAAADf4AAAAAAAACBAAAAAAAAAIIAAACDhIUAAIaHiAAAAAqJAAAAAIqLAAADjAiNjgAAAAAAAAADjwAAAAWQBZGSkwCUlZaXC5iZAJqbnJ0Lnp+goaKjAKSlpqeoqaqrrK2urwOwsbKztLUAAAAAAAO2twADuLkAA7q7vL2+vwAAAAAAA8AAAAAAAADBwsMAAMTFxsfIyQPKAAAAAAAAywAAAADMzc7P0NEAANLT1NXWBgAAAAAAAAAAANfY2doAAAAAAAHb3AEBAQEBAQEBAQEBAd3e3wAAAAAAAAAAAAAAAAYAA+AAAAAAAAAAAOHiAAAAAAMD4+TlAADmAwMDAwMDAwMDAwMDAwPn6AMDA+nqAAAAAAAA6wAAAAAD7O0AAAAAAAAAAAAF7gPvAAAAAAAABfAAAAAAAAAF8QMD8gAAAAAABAQEBAQEBPMAAAAAAAAAAAEBAQEBAQEBAwMDAwMDAwMCAgICAgICAgICAgICAAAABAQEBAQEBAQCAgICBQICAgIGAAICAgICBQgCAgICAgIAAAACAgICAgUCAgICAgICAgICAgICBQACAgICBQAAAAICAgICBQAAAggCAgICAgIAAAAAAEpLAAUAAAAAAAAAAAAAAAACAgIAAgICAgICAhEGDR0hHS0ADwsbByYHRAACAgICCAICAgoKCgpQCgoKAgICAgICAgUCAgUAAAAAAAICAgICAgAAAgIAAAAAAAACAgICAgUCAgIAAAAAAAAAAgICAAAAAAAJKQICAgICAggCAgICAgICAgICAgICAhcGBgYGBgYGBgAAAAAAADAALAAAAAAAMQAATAAAAAAAAAAAADAAAAAAAAAAAAAAAGcCAgICAiQJCQkJAAAABR8AAgICAjIzAAAJGAICAgICAgICAgICDyATEQYSBw8LQxYfNBkGAgICAmgOCAICAgUIBQUAAgIAIBMAAAAiAAACCAIAAAAAAAVpHxgIAgIFAAgFAggFAgAjExENABkmGUQANQAAAAgCBQU2J00AAAAAAB8YCAICAgIIBQIIAgIAIBMRBhIZByJDAAAAAAAINjYuHw4IAgICBQgFAggCAgAgFAAAGQcAAAIICAAAAAAAAAAAGggCAgUAAgUCAgAIBQUCAAgFAAIFAAICAgICAgAACw8bAAwhDC0AAAAAIgAAAAAYDjcCAgIFAgICAgICACAHAAAZDQIFAAAkDggCAgIFAgICCAICACAUAAAiGwAAAAVqTgAAAAAAAAkOAgICAgUCAgICAgIeKAsRBg0MIQwtawAAACIAAAAIHw4IAgICAgICAgIFAAICAgIIAgICAggAAgICBQBsACILBw0NEwwMFgALAAAAAAAAAgACBQAAAAAAAAAABgAAAAICRUVtAAATOBIVBwcGBhoSCQ0JAgJPCgoKCgoKCgoKCgoKCgoKUQAAAABuAAAAAAICAgICFxQVOQcHb1JwcVMCAgICAjAALAICAgsGAgJyU1QpF1QODgIeBygCAgICAgJzOnQODnVVAgICAgIOFAACFTsAAAAACAIVGwAAAAAAAhUAAAAAAAACAgICAgIFAgUVAAAAAAAAAgIEFAcVBgwMDAwYPHZ3eHl6AAAAAHsABQAACAB8BH0nJ35WAgICAgICAgIyBQAABzsUB38KAABGgEZGgYIAAAICAgICAgIAAgICAg4AAAACAgIeRxQAAAICg4QqhQpRhg8UBxUSOwwMOgkJCVcaNQlYKQICAgICAgJZBwYGBwwMBz0CAgIFAAAAAAAAhz4+Pj4AAAAAAABYKQICAgICAk8KFRYHiAoCAgICWQcLFBQqiQAAAAAAAAICChMMC1oqKiqKiwAAAAACAgICAgAIAgkaEBAQCRAQGBAQEDQANQAAAIxOCSwAAAAAAAAAjQAAAAAAAAAxjgMnJywAAAAAAAAAAAAAAwNIAABbAAAAAAAATFsAAAAAABoAAAAAAAAAAAAAAAAABQAAAAA/PwAAAAICAgIAAAAIAAAAAAAAAI8APz8AAAAAAAIoAj0CJAICAhcRDwAADQAOAgICAgICAgICkAsLCwsLCwtcAAAAAAAJCQkJCQkJCQkCAAAAAAAeAgICBweREAACAgIvBhUGWiqSAAAAAAAACZMCAgICAgIClAsHBgyVll0AAAAAAAAAAgIeCAICAgICAgICJAcVRzqXXpgAAAAAApkCAgICmgAIAicsAFUYAkkGKC9JAgJfJAUAAAAAAAACAgICApsSFgAAnGAAAAAAAhcUCzsbnQAAAAAAAAAAMQMDAwNIAAAAAgUCCAICAgICCAICAggFAC8GGQ0AAJ6fAgIIAggCAgICAgIAMyMAYQICMiMACAICAAAAAAgCAgUCAgk2AAAAAAICAgAZBwcIAgICAgIZJgACAgIQEBAQEKACBQAAAAAAAjMzAAAAAAAFAgIFAgICAggCBQAIAgAAoaKjAgICAgICAgICBwcGBgYHB10AAAAAABwcHBwcHBwcHBwCAgICAigeKAAAAACkExESD0MjAAAADQAAAAAAAAk3AgICAgICAgICLwYHpQcSpmICAgICAgAAF6cAAAAAAjIAAAAAAAACFxYGBgYHBz1AAABFYw1kAgICAgICCxEHB6guAAAANy8AAAAAAAAAAgICBQUCAggCAgICAgICCAICAgICAgIkExESB6kNAAAJCQgCAgIFCAUCCAICOCALDwsbHSEdLQAAAAAiAAAAAgILAAkJCRoACQkaAAAAAAACAgICAggABQICAggUFQYGDSEdHRaqDqtlIwAAAAAAAB80AAAAAAAAAgIXFgYGBgcLXBggAAAAAAICAgICAACsrQAAAAAAAAATEQYGOUcWZAlmBQAAAAAAFgYGAAwMCUEjAAAAAAAAAAAAAAACAgYACxEGBhIPPEEmAAAAAAAAAAICAgICJK4WBgcHZgUAAAACAgICAgVNXgsHBjoSBwAAAgICBQAAAAACAgICAgITEQYSB1dBIwAAAgICBQgAAgICAggFAgICAgsLEx0hH69lsLEAAAAAAAACAgICAAICAhcWBgYABwsOPQAhAAAAAAAeBgcHB0kCAgKyXwkYswq0AAAwYQAAAAAeBgcPEQYCAgICQEBAKysrKysrGLUACAAPBg8PAAAAAAcGBg0HBwlBAAoKCgoKCgo5EjwaAAAAAAICAgUCCAICHgcHDQAmBxkJY7a3AAAAAAICAggFAgICAgICAgILCxsHIjxSAAAAAAK4ORsAAAAACbkCAgICAgICAgsHBg0ADA9gAAAAAAAAAgICAgJiAABCQkK6u0IBAbwBAb0lJSUlJSUlAAAAAAABAQEBAb4AAAICAgICAgIHBwcHBwe/wMEJCQkaAAAAAA4pAgICAgICAgICAgIXGwACAgICAgUAOMIGBgYGBgYGBgYGBgAAADUQNAAAAAAAAAAABQAAAAAAAAAAAAAAAAgCAgICAgA4IwAxAwMDSAAACQkJNwICAgACAgICAgAAAgICAgICAgIaAgICAgICCQkCAgICAgIHBwICAgICAgIGAgIuLi5WAAAAADExAQEQEAYGAQAiIiEhAAElJQsLIyMWFiIAJychIyYmIyIiISMWIyEhIhYjASMlJwAhJQAjAAQEABYBIQAlIAEWAAAjIAABJTY2IQAFBSEBJwEYGBkZBQAWDB8fASIABQAQASAgICYAACYlHyUBACAi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IEFOSSAgZGkgRE5JICBkaSBZTE0gIGVpIEVMSSAgZ2kgT0JJICBpaSBNSVkgIGtpIEtQSSAgbmkgRE5JICBuaSBZTE0gIG9pIE9ESSAgc2kgTFNJICB0aSBBVEkgIHVpIFVOSSAgdWlLVU5JICB3aSBSV0kgIGFqIE5BSiAgaWogSUlKICB2aiBWQUogIHdqIFZBSiAgYWsgVEFLICBnazBOT0sgIGlrIEtJSyAgamsgQVVLICBrayBaQUsgIGxrIE5SRyAgbWsgTUhLICBuayBOQUsgIG9rIFJPSyAgb2sgSE9LICByayBSTksgIHNrIEhTSyAgdWsgUlVLICB2ayBNT0sgIHdrIFJPQyAgeWsgUklLICBhbCBUQUwgIGJsIFpUTCAgZ2wgR1VMICBpbCBNSUwgIG5sIE5JTCAgb2wgT0FMICB0bCBIVEwgIHVsIEJVTCAgdmwgSVZMICBnbSBHTE0gIGhtIEhBTSAgaW0gSVJNICBrbSBES00gIGxtIExBTSAgbG0gUkxNICBubSBHTk0gIG9tIExPTSAgb20gTU9SICBybSBSQU0gIHNtIFlMTSAgdG0gU1RNICB5bSBNUkIgIGFuIFVBTiAgYm4gUk9OICBkbiBCRE4gIGVuIFBFTiAgZ24gR0ROICBsbiBETE4gIG5uIE5ZTiAgb24gUk9OICBybiBCRE4gIHZuIFZBTiAgdm4gSFRBICB5biBJSEMgIGNvIElDTyAgam8gQkpPICBtbyBPUk8gIHJvIElSTyAgc28gU1NPICBhcCBOQVAgIGlwIExBUCAgbHAgS0xQICBzcCBTQVAgIHRwIEdUUCAgdXEgWlVRICBtciBTTVIgIG5yIE5VUiAgb3IgTU9SICB1ciBTVVIgIHdyIEFVUiAgYXMgTkFTICBjcyBEUlMgIGRzIEROUyAgZXMgTVNOICBncyBPR1MgIGhzIFNPQiAgaHMgVlJIICBocyBCUlMgIGlzIEhOUyAga3MgWUtTICBscyBWTFMgIG1zIE9NUyAgbnMwQU5TICBvcyBMTVMgIHFzIElRUyAgcnMgQlJTICBzcyBaV1MgIHRzIFRPUyAgdXMgTlVTICB2cyBFVlMgIHdzIEtXUyAgYXQgTUFUICBldCBMRVQgIGd0IEpBVCAgaHQgQUhUICBpdCBZR1QgIGt0IE1LVCAgbHQgTEdUICBudCBBTlQgIG90IE5HVCAgcnQgS1JUICBzdCBHU1QgIHR0IFRBVCAgd3QgSVdUICB3dCBBS0EgIHl0IFRIVCAgZ3UgR1lVICBrdSBSS1UgIHJ1IERSVSAgenUgQlpVICBldiBORVYgIGl2IFRJViAgb3YgTE9WICBhdyBOTFcgIG93IEZMVyAgaHggU0hYICBpeSBJSUogIG95IEFCWSAgYXogQUhaICBoeiBTSFogIHV6IExVWiBlYWEgSVFTIG9hYSBBUkEgdGFhIElRUyBoYmEgQVJBIHFiYSBBQkEgc2JhIFBQQyB2YmEgQVJBIG1jYSBBUkEgcWNhIEFSQSB3Y2EgQVJBIHhjYSBBUkEgYWRhIEdORCBmZGEgQVJBIHBkYSBOWkQgYmVhIEFSQSBjZWEgQVJBIGJmYSBBUkEgc2ZhIFBQQyB1Z2EgTllNIGdoYSBXR0EgdGhhIEhUQSBnaWEgUFBDIHdpYSBJUkEgcGphIEFSQSB0amEgQVJBIG5sYSBJUVMgc2xhIElRUyBmbWEgTkJIIHdtYSBSWVMgYW9hIFBQQyBhcGEgSFRBIGNwYSBBUkEgZHBhIEFSQSBqcGEgSFRBIGtwYSBIVEEgbHBhIEhUQSBtcGEgSFRBIHdwYSBIVEEgYnJhIEFSQSBucmEgUEFNIHFyYSBBUkEgc3JhIEFSQSB6cmEgQVJBIGp0YSBSQ1IgdnRhIFRMQSBqdWEgUkJCIHp1YSBBUkEgbHZhIEFSQSBjeWEgTVlBIGh5YSBBUkEgbHlhIEFSQSBueWEgQVJBIHB5YSBBUkEgcnlhIE1ZQSBkemEgSEFOIGp6YSBFWkEgbnphIEhBTiB6emEgSEFOIGRhYjBEQUIgaGFiIFBQQyBpYWIgTE1CIGxhYiBJTEIgamJiIExNQiBwYmIwREFCIHpiYiBBUkEgY2NiIElMQiBpY2IgVUFCIGxjYiBLSUIgcWNiIEhDQiByY2IgSFRBIGFlYiBIVEEgYmViIElUQiByZWIgUkJCIHdlYiBQUEMgbGZiMERBQiBxZmIgREFCIHRmYiBUTEIgdWZiIEhBTCB5ZmIgR0FCIG5nYiBJTEIgcGdiIElMQiByZ2IgTklRIGJoYiBJSEIga2hiIEtJQiByaGIgR0xNIG5pYiBPREUgdWliIE5JUSBuamIgWUxNIG9qYjBEQUIgcWpiIEdMTSBzamIgUFBDIHRqYiBOTEIgb2tiIExNQiBhbGIgRktCIGVsYiBOTEIgZ2xiIEFCSSBubGIgS0lCIG1tYiBHTE0gZHBiMERBQiBscGIgUFBDIHFwYiBQUEMgaXFiIENSTCBrcWIwREFCIGFyYiBJUkIgY3JiIFBQQyBidGIgSVRCIGp0YiBZTE0gb3RiIEtJQiBtdWIgSVRCIGV2YiBZTE0gdXZiIFlMTSBld2IgTlJLIGt4YiBIVUwgb3hiIFBQQyBweGIgSVRCIHJ4YiBVQlIgbnliIExJQiBjemIgR0xNIGp6YiBQUEMga3piIFBQQyBhYWMgTllNIGNhYyBOWU0gbGJjIE5JUSBsY2MgUFBDIG1jYyBQUEMgb2NjTkhDQyBxY2MgS1JBIG9kYyBTSFoga2VjIE5JUSB5ZWMgTklRIGZoYyBOWU0gamhjTkhDQyBraGMwS0hDIG5oYyBQUEMgcWhjTkhDQyB6aGNOSENDIHdpYyBCSk8geWpjIFNIWiBha2MgTklRIGJrYyBSVUsgbmtjIE5JUSBza2MgUFBDIHRrYyBLSEMgemtjIE5ZTSBjbGMgSFRBIGRsYyBSWVMgZWxjTkhDQyBqbGMgTklRIHNsYyBOQVMgdGxjIE5JUSBubWMgU0haIHJtYyBOSVEgYm5jIE5JUSBobmMgTklRIGtuYyBOSVEgbG5jTkhDQyBwbmMgU0haIHJuYyBCUlMgdG5jTkhDQyB1bmMgUkJCIHduYyBOSVEgYW9jIFlMTSBib2MgTllNIHFvYyBIVEEgYXBjTkhDQyBlcGMgUFBDIGZwYyBQUEMgaXBjIFBQQyB4cGMgU0haIGRxYyBOTUggaHJjIFRSQyBpcmMgUFBDIHByYyBQUEMgc3JjIFBQQyBhc2NOSENDIGhzYyBOSVEganNjIE5JUSBvc2NOSENDIHBzYyBTSFogdnNjIE5JUSB5c2MgTklRIGN0YyBIVEEgZHRjIE5JUSBldGNOSENDIGh0YyBOSVEgbHRjTkhDQyBzdGMgS0lCIHV0YyBOWU0gY3VjTkhDQyBudmNOSENDIGh6YyBTSFogb3pjIFNIWiB0emMgTklRIG9hZCBOSVEgcGFkIFNJTiByY2QgUFBDIHBlZCBQUEMgcmdkIEhUQSBkaGQgV0FNIGJpZCBLTkQga2lkIEtORCBuaWQgS05EIHBpZCBLTkQgd2lkIEtORCBlamQgUkpEIGtqZCBQUEMgcmpkMFJKRCBza2QgS05EIGduZCBOVUQgaW9kIFJHRCBocmQgR05NIGJzZCBCU0wgeXRkIFBFTiBwdWQgWUxNIGt3ZCBJVUsgdXdkIEpVRCB5d2QgSlVEIHV5ZCBMVUoga2tlIElURSB5a2UgTlJLIHltZSBOWU0gYm5lIExBSyBmbmUgRU5GIGhuZSBFTlQgZ3NlIE5PRyBpc2UgS1BJIGtzZSBLUEkgb3RlIElUQiBldmUgTlZFIG52ZSBLVkUgb3dlIElUQiBveWUgTEFLIGJhZiBQUEMgbGJmIEtJQiBtZmYgTFVGIGxpZiBMSVAgZ25mIFBQQyBlcGYgUFBDIGJ1ZiBMVUYgY3VmIExVRiBldWYgTFVGIGh1ZiBMVUYgaXVmIExVRiBxdWYgTFVGIHJ1ZiBMUkYgYWFnIERBRyBjYWcgUFBDIG5hZyBTSFogeGFnIE9STyB6YWcgT1JPIG1iZyBXQUcgZWNnIEhUQSBmY2cgUFBDIGxjZyBQUEMgcmNnIFBQQyBhZGcgSkFSIG9nZyBOT0cgYWhnIFJCQiBjaGcgVFJJIGtoZyBOUksgb2hnIFJCQiBiaWcgUFBDIGxpZzBMSUcgdWpnIEpBUiBkbGcgTkFOIGJuZyBOSVEgb25nIE5PRyB3bmcgQVVHIG1vZyBLT0sgcW9nIFBQQyB4b2cwREFCIGVwZyBQUEMgcnJnIFJCQiB0cmcgT1JHIHVyZyBHT1Mgd3NnIFNMQSBndWcgQVVHIGl1ZyBBVUcga3VnIFpNRyBsdWcgUFBDIG51ZyBBVUcgaXdnIEhUQSBueWcgUFBDIGFhaCBIVEEgZWFoIE9STyBpYWgwSUFIIGthaCBTSFogcmFoIElSSCB4YWgwSUFIIGFjaCBQUEMgbmRoMElBSCBhZWggTk1IIGlqaCBZTE0gdGxoIE5JUSBhbWggTk1IIGNtaCBOTUggZW1oIE5NSCBnbWggTk1IIGhtaCBOTUggaW1oIE5NSCBqbWggTk1IIGxtaCBOTUggbW1oIE5NSCBwbWggTk1IIHFtaCBOTUggcm1oIE5JUSBzbWggTk1IIHdtaCBOTUggeW1oIE5NSCBlbmggSEhDIGpuaCBOTUggbW5oIFNIWiBvbmggRE5IIGNvaCAgT0ggaW9oIEhUQSBhcmggTklRIG1yaCBOTUggYnNoIEJTVSBuc2ggU0haIGp1aCBOTUggcHVoIEhUQSBzdWggTllNIGN3aCBQUEMgd3loIEVZSCB5YmkgT0pJIHJjaSBQUEMgYWRpIEhVTCBiZGkgUFBDIGJnaSBJQkUgYmhpIFBQQyBjamkgT0pJIGVqaSBPSkkgbmppIE9KSSBzamkgT0pJIHRraSBVTkkgZ25pIEhUQSBobmkgR05JIHp0aSBOWU0gbHhpIE5ZTSBjYWogTllNIGthaiBZTE0geGFqIFlMTSBlYmogUkJCIG5iaiBSQkIgb2dqIExNQiBta2ogTlJLIHBraiBOUksgZHZqIFBQQyBhYWsgS1JLIG1hayBCTUsgcmFrIE5SSyBkYmsgQkFLIHliayBSTksgbmNrIFBQQyByZGsgTVJLIHRkayBZVUsgeGVrIE5LSyBhZmsgRE9LIHJmayBDQUsgeGZrIExVSyB5ZmsgTk1LIGFoayBJU0sgYmhrIERCWCBraGsgR05NIGJqayBOWU0gaGprIEFISyB0amsgTlJLIHprayBIVEEgbmxrIExBSyBibWsgTkJNIHJtayBSVUsgdm1rIFBQQyB3bWsgT01LIGNuayBSTksgZ25rME5PSyBqbmsgTllNIG5uayBLT0sgeW9rIEhUQSBlcGsgTFBLIHBwayBOUksgeXBrIEtZSyBzcWsgU0lLIHlxayBUUksgdHJrIFJOSyB1cmsgVVVLIGhzazBIU0sgc3NrIFNJSyBidGsgQkVLIHV0ayBOT0sgd3RrIEhUQSB1dWsgSFRBIHd1azBEQUIgYnZrIFlMTSBsdmsgTlJLIHJ2ayBZTE0gdHZrIE5SSyB1dmsgTlJLIHl2ayBOUksgd3drIFBQQyB5d2swTk9LIGN4ayBTTUsgZHhrIFlMTSBmeGsgTlJLIGt4ayBOUksgbHhrIFVVSyB1eGsgSVVLIGNhbCBOWU0gZGFsIERVSiBlYmwgS0FMIGpibCBLREwgbGJsIEtJQiBlY2wgWUxNIGZjbCBZTE0gaWRsME5PSyBmaWwgQk1MIHJpbCBQUEMgd2lsIFlMTSB5aWwwREFCIGJrbCBIVUwgb2tsIEhVTCBza2wgSFVMIGRsbCBEQUwgbm1sIE1BTCBhbmwwREFCIGxubDBEQUIgdW9sIFBQQyBpcmwgSFVMIG1ybCBIVUwgdHJsIFBQQyBtc2wgSFVMIGd0bCBJVkwgb3RsIEhVTCBzdGwgSFVMIGh1bCBTSFogeXVsIEhVTCB6dWwgQ1JMIHN2bCBJVkwgZ3dsIEhVTCBoemwgVEhaIHp6bCBaQUwgaWFtIEhUTSBrYW0gUktNIG5hbSBLTk0gZmJtIFBQQyBtY20gUFBDIHRjbSBJVEIgZmRtIEtPTSB5ZG0gRUxNIG5lbSBFRE0gb2VtIFlMTSBiZm0gWUxNIHBmbSBQUEMgYWdtIEFHUyBjaG0gTllNIHJobSBBTUwgdmhtIEtSQSBua20gUFBDIHVrbSBLTk0gcm1tIE5NSCBjbm0gSENNIGhubTBEQUIgcG5tIFNIWiBzbm0gTkFNIGRvbSBQUEMgcG9tIE5ZTSBlcG0gSkFNIGdxbSBZTE0gaHJtIE5JUSBqcm0gQU1IIGNzbSBLTk0gaHNtIEdMTSBydG0gV0FNIGR1bSBQUEMgaXVtIFlMTSBwdW0gSkFSIHF1bSBOTUggYnZtIEhUQSBldm0gV0FNIGZ2bSBHTk0ga3dtIEtOTSBxd20gTklRIHJ3bSBXQU0gbXltIE5FTSBxeW0gS05NIHZ5bSBaUkUgYnptIFJCQiBzem0gUFBDIG5hbiBTSFogemFuIEhBTiBoY24gSEFOIGljbiBIQU4gamNuIEhBTiBsY24gSEFOIHhjbiBIQU4gZmVuIFBQQyBsZ24gV01MIG1nbiBQUEMgb2duIFRYUyB1Z24gSEFOIGNobiBIQU4gZGhuIEFVRyBlaG4gSEFOIGdobiBIQU4gaWhuIEhBTiBraG4gSEFOIG1obiBIQU4gbmhuIEhBTiBwaG4gSEFOIHFobiBIQU4gdGhuIEhBTiB2aG4gSEFOIHdobiBIQU4geGhuIEhBTiB5aG4gSEFOIHpobiBIQU4gcWluIExBSyB2aW4gTElHIHRqbiBQUEMgempuIFNJTiB4a24gT0pJIGFsbiBMTUIgZWxuIEhVTCBubG4gSEFOIHZsbiBIQU4gaG5uIExNQiB6bm4gTE1CIGRvbiBBVE4gaXBuIFBFTiBscG4gSEFOIG9xbiBPS04ga3NuIFNBTiB1c24gSEFOIGV1bjBEQUIgdXVuMERBQiB6dW4gSEFOIGV3biBMTUIgZHluIEhVTCBueW4gTEtOIGNqbyBCSk8gZ2pvIEJKTyB3am8gQkpPIGRrbyBPSkkgaWtvIExBSyBta28gSE9LIHJrbyBPSkkgeG5vIFBQQyByb28gUFBDIGNybyBPUk8gbnJvIFlMTSBycm8gT0pJIHNybyBZTE0geXJvIElSTyB3dG8gQkpPIGF1byBSQkIgdGJwIFNBUCB1YnAgU0FQIGVjcCBHTFAga2NwIE5JUSBtY3AgUFBDIHVkcCBOUksgYWVwIFBQQyBsZXAgWUxNIHNlcCBSQUYgeWVwIFBQQyBzaXAgUFBDIGhrcCBOSVEgb2twIExBSyBnbHAwR0xQIGxscCBHTFAgbmxwIFBQQyBwbHAgUEFQIHRscCBHTE0gbG1wIFBQQyB5bXAgUFBDIGNvcCBOWU0gdm9wIFBQQyBhcHAgR0FCIGVycCBQUEMgcHJwIEpVRyBlc3AgWUxNIHRzcCBTQVAgYnVwIE5JUSB6dXAgTklRIHd3cCBOUksgZnVxIFpVUSBrdXEgWlVRIG11cSBOWU0gdnVxIE5ZTSB5dXEgWlVRIGN2cSBaVVEgZXZxIFpVUSBzdnEgWlVRIGN3cSBaVVEgdHdxIEhUQSBweHEgWlVRIHV4cSBaVVEgZ2FyIEhVTCBsYXIgTklRIGJiciBHTFAgbGJyIEtJQiBmY3IgUFBDIGlrciBLUkEgY21yIFlPUiBmbXIgWU9SIGxtciBZT1Igbm1yIFlPUiBvbXIgWU9SIHdtciBZT1Igem1yIEtSQSBtb3IgWU9SIHBvciBQUEMgY3RyIE5JUSBldXIgWVNSIHJ3ciBXQU0gaGFzIEtBWSBtYXMgQUFQIGZjcyBQUEMgaGNzIE5JUSBpY3MgUFBDIGtjcyBEQVMgY2RzIERSUyBoZHMgUlVLIG5kcyBEUlMgc2RzIFJCQiBoZXMgQU5TIGtlcyBIVEEgemVzIE5JUSBjZ3MgTEFLIHdncyBHSEMgbGhzIE5JUSB1aHMgQVJBIHlocyBSQkIgemlzIFJCQiBjanMgU0haIGRqcyBNU0sgb2pzIEJJUyBzanMgUkJCIGdrcyBHTE0gcmtzIEtSUyB3a3MgUFBDIGFtcyBNU1MgZG1zIE5CTSBqbXMgTVNMIG5tcyBNU0kgc21zIFNLUyB0bXMgTklRIGJucyBBQkkgdnBzIElSTyB5cHMgTEFLIGNycyBEUlMgbXJzIFBQQyBucnMgUFBDIG9ycyBEUlMgc3JzIEhUQSBoc3MgQVJBIGF0cyBQUEMgdnRzIEdJUyBxdXMgUlVTIGN2cyBQUEMgYndzIFJNQyBjd3MgS1dTIGh3cyBLV1MgbndzIFJCQiB2d3MgV0FNIGN5cyBSWVMgYWF0IEhUQSBzYXQgUFBDIHVhdCBIVEEgYmN0IEhUQSBlY3QgSFRBIGhjdCBQUEMgcGN0IE5JUSBzY3QgUFBDIHljdCBMVVQgemN0IE5JUSB4ZHQgR0xNIGNldCBMQUsgbWV0IE5NVCB6ZXQgUkJCIG5mdCBIVEEgaGd0IFBQQyBqZ3QgU0lOIHhndCBIVEEgdGh0IEhUQSBhaXQgUkJCIGdpdCBSR1Qgb2p0IFJCQiBna3QgR0xNIGdtdCBQUEMgd210IFlMTSBkb3QwRE9UIGlvdCBHTlQgam90IE5ZTSBsb3QgSFRBIHJvdDBEQUIgZnJ0IFBQQyBjdHQgTllNIG10dCBIVEEgdXV0IEhUQSB5dXQgTEFLIHl2dCBQUEMgY3h0IEhUQSB5eHQgR0xNIHZ5dCBWVVQgaHp0IE5ZTSBqenQgTllNIGxidSBLSUIgaWt1IElVSyBubHUgUFBDIHJudSBOVU0ga3J1IFlMTSBwc3UgTllNIG56dSBCWlUgc3p1IEJaVSBwYXYgTklRIGNpdiBQUEMga2t2IFlMTSBwa3YgUFBDIHRrdiBZTE0gc2x2IEVMRiB3bXYgS0FNIG5zdiBOQVMgbWJ3ICBBVyBhZXcgTlJLIHNldyBQUEMgdWV3IE5JUSBjbHcgUk1DIGVsdyBHSVMga2x3IEhUQSBpbncgUk1DIHlydyBXQU0gZ3N3IE5PRyB1dXcgU0haIG5heCBLRVMgZ214IExNQiB2bXggR0xNIHdteCBHTE0gam54IFRYUyBxbnggVFhTIHJueCBSR0QgdHN4IEdJUyBwdXggSFRBIG93eCBET1QgamF5MERBQiBiYnkgTE1CIGRieSBLUkEgcmN5IFBQQyBkZHkgSUlKIGhpeSBJSUogc295IE5JUSBhdXkgTllNIGV1eSBISFogaGN6IEFIWiBqZHogUk1DIGhleiBBSFogbmV6IFJCQiBiZ3ogQUhaIG1neiBBSFogbmd6IEFIWiBkaHogQUhaIG5oeiBBSFogYmt6IEFISyBqbHogQUhaIG1seiBZTE0gbmx6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IEtOTSBETk0gS05NIE5PTVROT00gWUxNIFBQQyBXV00gTk1IIEdBTiBQUEMgUkNPIEJKTzBQQVAgUFBDIEFSQSBQUEMgSElQIFBQQyBIT1AgTllNIElSRCBSQUYgT1dQIE5SSyBIV1EgWlVRIENVUSBOWU0gSVZRIFpVUSBJVlEgWlVRIEhVUSBaVVEgSFVRIFpVUSBJVlEgWlVRIEhXUSBaVVEgSFVRIFpVUSBJVlEgWlVRIEhXUSBaVVEgSFdRIFpVUSBIV1EgWlVRIElWUSBaVVEgSVZRIFpVUSBIV1EgWlVRIEhXUSBaVVEgSFdRIFpVUSBJVlEgWlVRIEhXUSBaVVEgSFdRIFpVUSBJVlEgWlVRIEhXUSBaVVEgSFdRIFpVUSBIV1EgWlVRIEhXUSBaVVEgSFdRIFpVUSBIV1EgWlVRIElWUSBaVVEgSFdRIFpVUSBIV1EgWlVRIElWUSBaVVEgSFdRIFpVUSBIV1EgWlVRIEZJUiBSQkIgWU1SIFlPUiBTQ1MgQUxTIEhUQSBNRlMgTk1IIElIUyBSQkIgUUFUIEhNVCBSQkIgVkhUIEhNVCBSQkIgWkhUIEhNVCBSQkIgSE1UIFJCQiBJUkQgUkFGIElQVCBQUEMgQVVUIFJZUyBRVFQgSE1UIFJCQiBNWlQgUkJCIE9aVCBOWU0gT1JWIElURSBHQVcgSkFSIFREVyBOWVcgTUxLIERPVCBZTE0gUFBDIEVQWCBMUEsgTFNTIEFMUyBIVEEgSEdaIFJCQiBhYmEga2ZhIHdnYSBpcmEga3JhIGdhYiB1YWIgcmJiIGhjYiBsaWIgZmtiIGlsYiB0bGIgYm1iIGxtYiBpcmIgbXJiIGhzYiBpdGIgZ2hjIGhoYyBycmMgdHJjIGxzYyB2aGQga25kIGlyZCBudWQgbnpkIHJjZSBxdWUgcmFmIHNvZiBkYWcgZWFnIGxhZyByYWcgd2FnIHptZyBvcmcgYXVnIGxhaCBuYmggaXJpIG1zaSBuYWogaWlqIGR1aiBsdWogY2FrIGJlayBlZ2sgbmhrIHNoayB2aGsgc2lrIG5rayBtbGsgbm1rIG9tayBzbWsgcm5rIGRvayBob2sgcG9rIHpvayBscGsga3JrIG1yayBucmsgaXNrIG1zayBpdWsgbHVrIHl1ayBreWsgaGFsIGthbCBtYWwgemFsIGtkbCBhbWwgYm1sIHdtbCBic2wgaHRsIGl2bCBqYW0gcGFtIHdhbSBuYm0gaGNtIHJjbSBlZG0gemltIHJrbSBlbG0gbmxtIHJsbSBkbm0gZ25tIHhubSBrb20gcm9tIGh0bSBzdG0gbnVtIHNhbiByY24gYmRuIGdkbiByZ24gc2luIG9rbiBtc24gb3RuIG9ybyBhYXAgbGFwIHNhcCBsaXAga2xwIHNtciBkYXMgeWFzIG9ncyBiaXMgZ2lzIHNrcyB5a3MgYWxzIGxtcyBobnMgZ29zIGJycyBrcnMgbHNzIG1zcyBydXMgZXZzIGt3cyBqYXQgbmd0IHJndCB5Z3QgbWt0IG5tdCBhbnQgZW50IGdudCBrcnQgZ3N0IGF1dCBsdXQgdnV0IHRpdiBnYXcgZGJ4IGtheSBhYnkgbWl5IGRuekJVU0dTT1BHb3QAAAAAAAAAAAAAAAAAALwCAAD//wAA//8AAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAASEIAAHpCAACWQgAAr0IAAMhCAADhQgAA+kIAABZDAABIQwAAAAAAAAAAAAECAwQFBgcICRYPEBEXEhMUFQ4YDBkNCgsaHB0eHyAhGyIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTBFVWV1hZWgVcXV5fYGFiY2RlZgNoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYSDg4WGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wEAAAAyBAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdpgAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAMEAAAFAAYAAAAAAAcAAAgAAAAJAAAKCwwNDg8QERIAAAAAABMAAAAAAAAAFBUAABYAAAAAAAAAAAAXAAAAAAAYABkaABscHR4fAQEgASEiAQEBIyQlJicBKAEpAAAAKissLS4vMAEBADEBAQAAAAABAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAD//////////wAAAAAAQgAAAAAAAAAAABAAAgAAAAAAAAAAAAAEAAACAADwAwAGAAAAAAAMAAEAAACAAAAA/g8HBAAAAAAAAAAAAAAAAAxAAAEAAAAAAAB4H0AyIU3EAAcF/w+AaQEAyAAA/BqDDANgMMEaAAAGvyckv1QgAgEYAJBQuAAYAAAAAADgAAIAAYAAAAAAAAAwAOAAABgAAAAAAAAhAAAAAAAAAAAAAAABIAAAgAIAAAAAEAAAAADwAAAAAPD/AIABAAGAAQAAAMD/AAAAAAAAA8AAQP4HAMD///////8/AAAA/v8ABACA/PcA/v//wP/////////z///////Pzv////////////+5B/////////+//////////z8Afv///4D5B4A8YQAwAQYQHAAOcAqBCPz//wAAAAAAAD/45/8/+vn/AAAA/P////8A8AAAAAAAAAD/APwAAAAAAP8AAADAAPD8/wD+/////wDw///////3v/////////8AAAD/AMD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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QANQAFAAUABQAFAAUAB4AUgASAMwADAAUANYAygAYANoAwgACABwA3gDgAMIAAgAiAMoAJADgAEIAAgACAAIAAgAmAOgA6gDsAOIAQgAKAC4AwgACAAIAAgACAC4AIABiAAIAMADyAMIANAD2ANoAAgA4AMIAAgA6APwAwgACAD4AygAAAQoAJABCAAIAAgEEAQYBCAEKAQwBAgACACYATgEQASQAEgEoAEIAAgAUARYBGAEaARwBKABCAAIAJgBeAQIAJAAgATAAAgACACoAYgEkASQAJgEsAEIAAgAoASoBLAEuAG4BMAECAAIAMgE0ATYBJAA4AToBAgACACoAfAE+ASQAAAFCAUIAAgAwAEQBRgFkAAgBcAACAAIAAgAKAUwBbgBOAUIAAgACABABUgFyABoAGgACAAIAAgAUAVYBWAFCAAIAGgFcAXQAHgFCAAIAAgAgAWIBSgAKACQBZgFoAVoAGgACAAIAKgFsAXIALgFwAXIBdAF2AVIAEgASAAwADAA4AUIAAgACAAIAAgA6AXIATgACAAYAEgASABIAEgASADYANABCAAIAAgACAAIAAgACAAIAAgACAAIAAgACADwBQgA+AUABggACAAIAAgACAYQBggAGAYIACAGCADgAAgA4AAIAAgACAAoBjAGOAZYADgAQAZYAAgACABIBggACAAIAFAGCABYBggACAAIAAgACAAIAAgAYAZoBnAGCAAIAAgACAAIAAgACAAIAHgGGAAYAAgAgAYIAAgACACIBpAG2AFYAFgAmAagBigAKAAoACgAqAYIAAgAsAa4BsgAwAbIBugACADQBogACAAIANgG4AYIAAgA6AbwBvgGiAAIAOABAAdIAEgASABoAAgHEAcYBzAAMAAgB2AAYABgACgHMAcwADgHYABgACgAKAAoACgAUABQAFAAUABQAFAAUABQAFAAQAdQAFAAUABQAFAAUACAAIAAgACAAIAASAeAADAA8ADwAPAAUAfoAfAB8AHoAVgHYAdoB3AHeAeAB3AAiAeQB2AA+AD4APgAmAegBygAqAewB7gHwAfIBzgAeAB4ANAH2AfgBxgA6AfwBxgA+AcACBgACAgYABgAGAAYABAIGAAYCEAAIAgYACgIMAgYADgAOAgYABgAGAAYAEAIOAAYABgAGABICFAIGAAYAFgIGAAYABgAGAAYABgAYAgYABgAGAAYABgAGAAYAGgIcAg4AHgIGAAYAIAIQACICEAAkAiYCEAAQABAAKAIQACoCBgAGAAYAEAAsAgYABgAGABIAEgASAAwADAAMAC4CMAIUABQAFAAUABQAFAAyAjQCDAAMAAwAAgACAAIANgI4AgIAAgACAAIAAgACAAoACgA6AjwCPgIAAkICRAJ+AH4ARgJIAkoCTAJOAkIAAgACAAIAEAJ0AEIAAgACAAIAEgJCABQCQgACAAYABgAGAAIABgAGAAAAhgAWAkIAhgAGAAAAhgAGAAIAhgAGAAYABgACAAIAAgACAAYABgAGAAYAAgAEAIIAAgACAAIAAgACAAIABgAGAAYABgACAAIAOABYAkIAIgACABQAFAAaAlwCVAAeAkIAAgACAAIAIAJiAlwAZAJmAmgCVAAUABQAKgJsAm4CcAJyAnQCdgJSADgCegJCADwCfgJCAAIAAgAAAoICggACAAQChgKWAAoACAKiAAIACgKCAAwCjgKCAAIAJABCAAIAEAKSAoAAVAKiAAIAAgAWApgCmgKcAoIAHgKCAAIAAgAgAqIAYgKkAqYCggACAAIADAAMACgCqgKMAAwADAAMAAwAAgACACwClgAMAC4CsAKCAAIAAgACAAIAAgACAAIAMgK0ArYCggACAAIAAgACADgChgACAAIAAgACADoCggACADwChgAGAD4CigAAAsoAAgLEAsYCyALCAAIAAgACAAIAAgACAAIACgLMAtQAVgBYAFoATgLQAtICwgAUAsIAAgACAAIAFgLYAtoCzgAOABwC3gAeAB4AHgLgAsYABgAGAAYABgAGACICwgACAAIAAgACAAIAJALOAAIAAgAmAsIAKALCAAIALgACAAIAQgACAAIAKgLeAB4AEgASADYADAAMAAIAAgACAAIAAgAWABIAEgA2AAwADAACAAIAAgACAAIAAgACAFIAEgAsAswADAACAAIAAgACAAIAAgACAAIAAgAuAsIAMALCAAIABgCOAA4ADgACADICwgA0AsIAAgBCAAIAAgACAAIAAgACADYCzgAOAA4ADgAEAEIAAgAIAI4AGgACADgCwgAKAI4ADgA6AsIAPALaAAIAAgACAAYAQgAMAIIADACCAAYAcgBOAA4ADgAOAA4AEgASABIAEgAMAAwADAA+AsIAAgAAAxYAAgMSAAQDDAAGAxAAEAAQABAAEAAQABAAAgACAAgDAgAEAIoDBgAMAwIACgCOAwIALgAQAxoAAgASAxoAGgACABQDDgACAAIAFgMCAAIACACYAxoDHAMeAzoAAgACACADIgMCAAIAFgAsAEIAJAMmAygDAgACACoDOgACAAIALAMuAzADMgMOAAIAAgAOALQDBABKAAoACgACAAIABgBCAAIAEAC2AFYAMAACAAIAMAB2AzgDOgMKAAIAAgACADwDPgMAA0IDSgACAAIAAgAEA0YDSANCAAIAAgACAAIACgNMA1YAFgAWAAIAAgASAI4DUANSA0oACgACAAIAAgAUA1YDVgAaABoAAgACABgDWgNWABYAFgAWAAIAHANeA2ADQgACAAIAAgACAAIADgCiA1oAGgAaABoAEgASABIAEgAMAAwANAAkA0IAAgACACYDaANWABYAFgACAAIAAgACAAIAKgNsA2gALgNCAAIAMANyA3QDQgACADYDeANaAAIAAgACAAIAAgAaABoAGgAaABoAGgA6A2gAAgACAAIAAgACAAIACABWAAIAAgASALwDSAB0AA4APgNCADgAAAOCA4oACgAKAAoAAgACAAIABABEA5YAAgACAAYDiAOWAAIAAgAKA5YAFgACAAIAAgACAAIAAgACAAwDjgOCAAIAEAOSA5QDigAKAAIAAgACAAIADgAWA5gDmgOeAB4AHgAeAB4AHgAeABoAAgACAAIAAgACAAIAAgAIAEIAAgACABwAHAOKAAIAAgACAAoAXgOWABYAFgAWABYAAgACAAIAAgACAAIAAABCAAIAAgACAAIAFgACAAIAIAOCAAIAAgAiA6QDpgOoA4IAGAAYABgAGAAqA4IALAOWABIAEgASABIAEgASAAwADAAOAC4DkgAwA4wADAAMAAwAAgACAAIAAgAQALIDqAAoADQDtgOYABgAGAAYADgDugOCADwDnAAcABwAHAAcABwABgAGAAYABgAGAAYABgAQAAoACgAKAAoACgAGAAYABgAGAAYABgAGAAYABgA+A4ADwgPGAAQDxgAGAAYABgAGAAYABgAGAAYABgPGAAYABgASACoADAAMAE4ATAAgABIALAAQAFIAEgBMABIAKgAMAAwATgBMACAAEgAsABAAUgASAEwAEgAqAAwADABOAEwAIAASACwAEABSABIATAASACoADAAgABIACAPKA8wDzgPMABAD0gASA9QD1gPYA8wAGgPSABwDzAAeA9YAFgAWAAoACgAKACADygAKACID5APmA+gDygAKAAoACgAKAAoAKgPMAAwADAAMAAwADAAMAAoACgAKABgAGAAYABgAGAACAAIAAgAsA+4DxgAGAAYAAgACAAoASgACAAIAMAPyA8IAAgACAAIAAgACADQD1gACAAIAAgACAAIAAgAKAHYDwgACAAIAAgACAAIAOAP6A8IAAgACAAIABgCKAAoACgASABIALAAMADwDwABaABoADgAOAD4DwAQOAA4ADgAOAA4ADgACBA4ADgAOAA4ADgACAAIAAgACAAIAAgACABAABAQGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgQGAAYABgAGAAYAEAAQABAAHAAcABwAHAAcABwAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKsDrAOtA64DsgO0AwAAwgPJA8oDywPQA+kD6gPrA/ADAAAJBBAEEQQSBBMEFwQAAAAAOAQ5BDoEPgRWBAAAAABkBGUEZgRnBGsEbQQAAHsEggSDBIQEiQSjBKQEpQSpBAAAwwTKBMsEzATNBNEEAAAAAPME9AT1BPkEEgUAABcFrwNoBLADaQS6A3MEvgN3BL8DeATAA3kEwQN6BMQDfQQAAAAAzQOGBM4DhwTPA4gE1wOQBNIDiwTcA5UE3gOXBN8DmAThA5oE4gObBAAAAADsA6YE7QOnBO4DqAT2A68E7wMAAAAAAAD4A7EE/AO2BAAA/gO4BAEEuwT/A7kEAAAAAAAAAAAIBMIEDQTHBAsExQQAAAAAAAAUBM4EFQTPBBkE0wQAAAAAIgTcBCgE4gQkBN4EKgTkBCsE5QQwBOoELQTnBDUE8AQyBO0EAAAAADsE9gQ8BPcEPQT4BEAE+wRBBPwESAQDBU8ECgVXBBMFWwReBBsFYAQdBWEEHgUAAB0E1wQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEUEAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALUDbgTyA6sEGgTUBEIE/QQ9BVgFPAVXBT4FWQU7BVYFAAAoBUMFigWLBSsFRgUAAAAA4AOZBPoDtAQfBNkEiAWJBYcFkAWyBAAAAAAAANsDlAQAAAAABwTBBCkFRAUqBUUFOgVVBbYDbwS3A3AE0wOMBNQDjQTzA6wE9AOtBBsE1QQcBNYEJQTfBCYE4ARDBP4ERAT/BC8E6QQ0BO8EAAAAAOUDngQAAAAAAAAAAAAAAACxA2oE1gOPBDkFVAU3BVIFFgTQBI4FjwVZBBUFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAJAAAACgCRBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAiBZMFBQCaBZ4FowUAAKoFAACvBbUF6gUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKYFsgW8BcQFyAXOBe0FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRBd8F1gXcBeQFAAAAAAAAAADwBfEFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPYF+AUAAPUFAAAAAAAA8gUAAAAAAAAAAAAG/AUDBgAAAAAAAAAAAAAAAAAAAAAAAAAA/gUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUBgAAAAAAAAAAAAAAAAwGDgYAAAsGAAAAAAAAHwYAAAAAAAAAABYGEgYZBgAAAAAAAAAAAAAAAAAAIAYhBgAAAAAAAAAAAAAAAAAAAAAAAPkFDwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPMFCQb0BQoGAAAAAPcFDQYAAAAAIgYjBvoFEAb7BREGAAAAAP0FEwb/BRUGAQYXBgAAAAAkBiUGCAYeBgIGGAYEBhoGBQYbBgYGHAYAAAAABwYdBgAAAAAAAAAAAAAAAAAAAABGBkcGSQZIBkoGAAAAAAAAAAAAAAAAAAAAAAAATQYAAEsGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQGAAAAAAAAAAAAAAAAAABXBgAAAABYBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATgZPBlAGUQZSBlMGVQZWBgAAAAAAAAAAAAAAAAAAAAAAAAAAAABcBl0GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQZaBgAAWwYAAAAAAABiBgAAAABjBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF4GXwZgBgAAAABhBgAAAAAAAAAAAAAAAAAAAAAAAGcGAAAAAGYGaAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkBmUGAAAAAAAAAAAAAAAAaQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqBmwGawYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbQYAAAAAAAAAAAAAAAAAAG4GAAAAAAAAAAAAAAAAcAZxBgAAbwZyBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzBnUGdAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHYGAAB3BnkGeAYAAAAAAAAAAHsGAAAAAAAAAAAAAAAAAAAAAAAAfAYAAAAAAAAAAH0GAAAAAAAAAAB+BgAAAAAAAAAAfwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6BgAAAAAAAAAAAAAAAAAAAAAAAIAGAACBBokGAACKBgAAAAAAAAAAAAAAAAAAAACCBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEBgAAAAAAAAAAAAAAAAAAAAAAAIUGAAAAAAAAAACGBgAAAAAAAAAAhwYAAAAAAAAAAIgGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwGAACNBgAAjgYAAI8GAACQBgAAAAAAAJEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkgYAAJMGAAAAAJQGlQYAAJYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuQNyBLsDdAS8A3UEvQN2BCwFRwXDA3wExQN+BMgDgQTGA38ExwOABGIFZAVjBWUF2AORBNkDkgSMBY0F2gOTBN0DlgTjA5wE5gOfBOQDnQTnA6AE6AOhBPcDsAQxBUwF+QOzBPsDtQT9A7cEAAS6BJcGmAYDBL0EAgS8BAQEvgQFBL8EBgTABAoExAQMBMYEDwTJBA4EyAQ2BVEFOAVTBWYFaAVnBWkFIATaBCEE2wQjBN0EJwThBJkGmgYpBOMELATmBC4E6ARqBWsFbAVtBZsGnAYxBOsEMwTuBDcE8gQ2BPEERwQCBUoEBQVJBAQFbgVvBXAFcQVLBAYFTAQHBU0ECAVOBAkFUQQMBVAECwVSBA4FUwQPBVQEEAVaBBYFXwQcBWIEHwVjBCAFogTsBA0FGQUAAHIFAAAAAAAAAAC4A3EEswNsBCUFQAUkBT8FJwVCBSYFQQWdBp8GWwVfBVoFXgVdBWEFXAVgBZ4GoAbVA44E0QOKBMwDhQQuBUkFLQVIBTAFSwUvBUoFoQaiBvEDqgT1A64EHgTYBBgE0gQzBU4FMgVNBTUFUAU0BU8FowakBnQFeQVzBXgFdgV7BXUFegV3BXwFRgQBBT8E+gR+BYMFfQWCBYAFhQV/BYQFgQWGBVUEEQVdBBoFXAQYBVgEFAUAAAAAAAAAAAAAAAC/BcAFpQapBqYGqganBqsGlgWXBbMGtwa0BrgGtQa5BsUFxgXBBsMGwgbEBgAAAACbBZwFxQbHBsYGyAYAAAAAyQXKBckGzQbKBs4GywbPBp8FoAXXBtsG2AbcBtkG3QbSBdMF5QboBuYG6QbnBuoGpwWoBesG7gbsBu8G7QbwBtcF2AXxBvMG8gb0BgAAAACrBawF9Qb3BvYG+AYAAAAA4AXhBfkG/Ab6Bv0G+wb+BgAAswUAAP8GAAAABwAAAQflBeYFAgcGBwMHBwcEBwgHtgW3BRAHFAcRBxUHEgcWB7sFFQDDBRYAxwUXAM0FGADVBRsA2wUcAOMFHQAAAAAAqAasBq0GrgavBrAGsQayBrYGuga7BrwGvQa+Br8GwAbMBtAG0QbSBtMG1AbVBtYG2gbeBt8G4AbhBuIG4wbkBgUHCQcKBwsHDAcNBw4HDwcTBxcHGAcZBxoHGwccBx0HvgW9BR4HwgW5BQAAwQUhB5UFlAWSBQwAmAUAABoAAAAAACMFHwfMBboFAADLBSUHmQUNAJ0FDgChBSIHIwckB9AFzwXpBRMAAAAAANQF6wWlBaQFogUPAAAAJwcoBykH3gXdBewFGQDZBdoF4gXuBbEFsAWuBREArQUhBQsAAwAAAAAAIAfoBe8FAADnBSYHqQUQALQFEgC4BQQAAAAAAB4AHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAACAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoHKwcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtBy8HLgcAAAAAAAAAADAHAAAAAAAAAAAxBwAAAAAyBwAAAAAAAAAAAAAAAAAAMwcAADQHAAAAAAAAAAAAAAAAAAAAAAAAAAA1BwAAAAA2BwAAAAA3BwAAOAcAAAAAAAAAAAAAAACpAwAAOgcAAAAAAAAAAAAAAAAAAAAAAAAAADkHqAOqAzsHPAcAAAAAPQc+BwAAAAA/B0AHAAAAAAAAAAAAAAAAQQdCBwAAAABFB0YHAAAAAEcHSAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABLB0wHTQdOB0MHRAdJB0oHAAAAAAAAAAAAAAAATwdQB1EHUgcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUHAABWBwAAVwcAAFgHAABZBwAAWgcAAFsHAABcBwAAXQcAAF4HAABfBwAAYAcAAAAAYQcAAGIHAABjBwAAAAAAAAAAAAAAAGQHZQcAAGYHZwcAAGgHaQcAAGoHawcAAGwHbQcAAAAAAAAAAAAAAABUBwAAAAAAAAAAAAAAAAAAAAAAAG4HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwBwAAcQcAAHIHAABzBwAAdAcAAHUHAAB2BwAAdwcAAHgHAAB5BwAAegcAAHsHAAAAAHwHAAB9BwAAfgcAAAAAAAAAAAAAAAB/B4AHAACBB4IHAACDB4QHAACFB4YHAACHB4gHAAAAAAAAAAAAAAAAbwcAAAAAiQeKB4sHjAcAAAAAAACNBwAAxgKBAdQCywLHAWcAugA5AzkD8gDvAs0A8QBQAQwCWQKXAqQCsALiApsBsgHaAfQBiQLqAh8DbAC0AKAB4gGWAioDEwHOAZICtAJYAWoCpwIlAYQBuAHsAeQCdACSAKgAcAGeAeEBDwJeApQCmQLSAg0DIwMpAxoCKQJMAoIC9gIrA70C6QArAT0CZALnARwCygILA+gACwGcAb0ByQFJAlIC/gKnAGUClQCUADACTQKIAgADxAJZAZsBwAJpAAMBOQHwAQYCrgAeAngAMwFlAK4BdAFIArcA5AARAooCuQKoAdwCrAFdAXgCYwEFAm4AhwCTAJMBRAJwArwC7gKqAMEA9QApAXYBzwEfAvsCIQMsAy8DogCAAaQB2gIfAUoBUQFuAcsB3AH9AS4CTwJiAtYCjALeAvcCmgCjAMYA2QGrArkCJAE3AWEBpwE8Au4BcQDZAAMBGAE6AfMB+gFbAmAC8AIKAw4DFAN1AC0C7AIGA0ABbQB+AAQBCQF1AZsB3wELAo8C4QI3A3wB/QKhAIsBjgG2AcMB9gEEAhkCRwIXA4gAVAEBA3oAEQG+AdcCMQFCAZAB8AEDA5sAvgANAXkBhwGWAbAB9QEHAlcCrAKvAu0CCAOvAMQBvwDgAf4BkwIEAyUDLQONAbwBawI2AjgCPwLrAdcBwwJvAHwCnACZACABWgFCAgABswF/AdkCqAL/ArYCJwGAANIAAAAAAOMAAAB7AQAAAACWAO0BDQIgAicCKAIsAg8DQAJcAgAAlQIAAL8CAAAAAN8C5wIAAAAAAAAZAxoDGwMoA+UCBQN2AH8AggCmAKkAsQDPANUA1wDiAOUADAEOAT0BRwFJAU8BcQF3AX0BlAG5AcABygHdAeQB9wEbAiECIwIiAiQCJQImAioCKwIxAjQCOQJPAlECUwJWAl8CbAJxAnECiwKyArcCwQLCAswCzQLdAt8CCQMSAxYDOwFlA28CAAAAAGYAkQCGAHMAgQCKAKUAqwDPAMoAzgDUAOMA5wDwAPMA+gD+ACYBKAEvATQBPwFFAUEBSQFGAU8BVQFlAWgBagFyAXsBhAGFAYkBpQGoAbYByAHGAcoB0QHdARcC5QHqAe0B+wEAAgICCQIKAg0CDgIQAhUCFAIdAjUCOQI+AkoCTwJVAl8CfQKHAqICswK1ArcCugK/ArsCwQLAAr4CwgLFAs0C2ALgAusC8gICAwkDDwMQAxIDEwMWAyIDOQNQA08DWQM3AEEAQgBzA3wDlAM2AzgDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyBgAARQYAAAAAAAAAAAAAAAAAAAAAAAAAAEIGQwaOB48HJgYnBigGKQYrBiwGLQYvBjAGAAAxBjMGNAY1BjcGAAA4BgAAOQY6BgAAOwY8BgAAPgY/BkAGQQZEBi4GKgY2Bj0GAAAAAAAAAAAAAAAAAAAAAAAAAACQBwAAAAAAAAAAAAAAAAAAAAAAAAAAkQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSBwAAkwcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVB5YHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJcHmAcAAAAAAAAAAAAAAACZBwAAmgcAAAAAAAAAAAAAAAAAAAAAmwcAAAAAnAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ4HAACdB58HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoQegBwAAogcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAowekBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKUHAAAAAAAAAAAAAAAAAAAAAKYHqQenB60HqAeqB6wHqwcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACvB64HsAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALEHsgezB7QHtQe2B7cHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4B7kHuge8B7sHvQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqAGgAawA6A3IAdgB3AHkAewB8AH8AfQAiAD4DggCDAIQAiQA7AyMAhQCLAD0DjgCPAHAAkACRAJwDlwCYACUAnQCeAJ8AoAAmAKUApgCpAKsArACtAK4AsACxALIAswC1ALYAtgC2AEED1AG4ALkAQgO7ALwAvQDEAMAAwgDDAMUAxwDIAMkAywDMAMwAzgDQANEA0wDaANUA2wDWANgAmQDqAN0A3gDfANwA4QDgAOYAQwPrAOwA7QDuAO8A9ABEA0UD9wD4APkA9gD7ACcAKAD9AP8A/wBGAwEBAgEDAQUBRwMGAQcBLQEIASkACgEOARABDwFJAxIBSgMVARQBFgEZARoBKgAbARwBHQEeASsASwMsACEBIgEjASUBpgMqAU0DTQNtAiwBLAEtAFQDfgMuATABLgAyATUBNgE4ATwBMAAvAD0BTgM+AUMBRAFFAUQBSAFJAU0BSwFMAU4BTwFQAVIBUwFWAVcBWwFfAVEDXgFcAWABYgFnAVIDaQFmAWQBMQBrAW0BbwFsATIAcQFzAVMDeAGCAXoBNQB9ATQAMwCMAI0AgwF+AWYCTgCEAYUBhgGKAYgBWAM2AI8BjAGSAZQBWgOVAZEBlwE3AJgBmQGaAZ0BWwOfATgAoQFcA6IBOQCjAaYBqAGpAV0DSANeA6oBXwOtAa8BqwGxAbUBuQG2AbcBugG7AWADtAHBAcIBOgDGAcUBYQO/AcwBYgNjA80B0gHRAdABOwDTAdYB1QHYATwD2wFkA94BZgPjAeUB5gFnA+gB6QFoA2kD7wHxATwA8gE9AD0A+AH5AfsB/AH/AT4AAQJqAwMCawMGAkwDCAJsA20DbgM/AEAAEAJwA28DcQNyAxICEwITAhUCQgAWAkMARAB0AxgCGgIdAkUAdQMlAnYDdwMsAi8CRgAxAjICMwJ4A3kDeQM3AkcAegM6AjsCSAB7A0ECSQBFAkMCRgJ9A0sCSgBOAlACVAJLAH8DgANMAIEDWAKCA1oCXQJfAoMDhANhAoUDYwJVA00AZwJoAk8AaQL8AIYDhwNWA1cDbQJuAtsCUABzAnICdAKkAHUCdgJ3AnkCiAN4AnoCfwKAAnsCgQKGAosCfgKDAoQChQKJA4sDigNRAI0CjgKQAo8DkQKMA1IAUwCNA44DVACYApkCmgKbAp0CnAKfAp4CogKgAqECowJVAKUCpgJWAKkCqgKQA60CrgJXALECJACRA5IDWABZALgCvgLFAscCkwPIAskCzgLPApUDPwPRAtAC0wJAA9UC2AKWA5cD4wLmAugCmAPpAvEC9AL1AvMC+AL5ApkD+gJaAPwCmgNbAAcDFwEMA5sDnQNcAF0AEQOeA14AnwMTAxMDFQOgAxgDXwAcAx0DHgMgA2AAoQMiAyQDJgNhAGIAJwOiA2MAowOkA6UDLgNkADADMQMyAzMDNAM1A6cDAAAAAAAAAAABAP////8BAAAAAQD//wAAAAACAAAA/v8CAAAA/v8AAPn/AAAAABAAAADw/wMAAwADAP3//f/9/wAA4AcAAN8Jgwd6B34HAADKCAAAAACKAAAABwAgBwAAOAgAADwIOggAADoIJAUAAP//dv8IAAgACAAAAAcABwD4//j/+P/5/9z6AQD//wMA/f8BAAAAhviC+AAAAAB9+OD4AAAAACD4yPcAAAAAxvfE98b3NvcAACH2AAAAAAAAAAAAAHl5eVpobmlaenp6WmJhckFubXJBZ25lQmxyeUNhdmVEcm9lR2tlckdyanVHdXJ1R2duYUhpbmFIcmJlSGFyaUhhZG5LYW5hS29vYUxudGFMbXlsTWF5ck9sbWFUdWxlVGlhaFR0YmlUb3BvQmlhckJzbmFDcmVoQ2lodEVybWhLZ25vTXJteU1tYWdPcm51UmhuaVNjcnlTYWFoVGlpaVl0cnNEaHRvR2xhdElkaHVCb25hSGdsZ1RiZ2FUdHJwQ2JtaUxibmlMYW1zT3dhaFNlbGFUcmFnVWlndUJ0cG9DZ2FsR3JhaEt1bGFUb2VwWG9seVNnbmZUaWxhQnh1c1hvb2tOZ2FoUHhuaFBpcmFDbWFoQ2lsYUtjcGVMaWN5TGlkeUxrY2xPZ25qUnJ1YVNkbnVTaWlhVnRzdkF1bWFCcHlnRWltckFpbGhQaXRyUGF2YUppaHRLdXNpTGlldE1icmFTaGtyT3JtYVNhbmFMdHZhVGt0YUJoYXJCZG5hTW1rYUNjcmVNb3JlTWRybFBkcmhTYXJvU3JrYVRzc2FCYmhnQWxwdURhYmxFbmFyR2pvaEtkbmlTYW5pTGpoYU1pbmFNZG5lTWlkb01vb3JNdGFiTmJyYU5tcmVQZ25tSG1sYVBjdWFQcGxoUGRkaVNocmlUYXJhV21vaEF3dWxIcnRhSHRsdU1nbnVId25nU21sZEFza2hCY3JhTWVnc09nbmFUYXdlTm1ub0d1aHNOb3lvU2JuYVpyZ29EZ25vR2dob1Jha2FNZmRlTW9nb1NkZ29TbXlsRWRuYU5wbm1Ib2hjV3NyaENrYWlEc3RpS2l6ZVlubXBDcmd1T2FzblRvdG9UaHRpVmh0bVppd2FLbWdhTmFyYUdoa3VHaWFyS29hbk91bnVTcmRvVGd0dVRmcmVCdGRpU295YVRzbG9UbiKOB2AirgdvIs4HwAAgCMFAIAjCgCAI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Zlq1WghbKFs+W4Vbw1vYW+db7lvzW/9bBlwiXD9cYFxiXGRcZVxuXI1cwFwZXUNdUF1rXW5dfF2yXbpd4V3iXf1dKF49XmledF6mXrBes162Xsleyl7SXtNe2V7sXv5eBF8iX1NfYl9pX2tfi1+aX6lfrV/NX9df9V/5XxJgHGB1YIFglGDHYNhg4WAIYURhSGFMYU5hYGFoYXphjmGQYaRhr2GyYd5h8mH2YQBiEGIbYi5iNGJdYrFiyWLPYtNi1GL8Yv5iPWNQY2hje2ODY6BjqWPEY8Vj5GMcZCJkUmRpZHdkfmSaZJ1kxGRPZVZlbGV4ZZllxWXiZeNlE2ZJZnRmiGaRZpxmtGbGZvRm+GYAZxdnG2chZ05nU2dWZ15ne2eFZ5dn82f6ZxdoH2hSaIFohWiOaKhoFGlCaaNp6mkCahNqqGrTattqBGsha1Rrcmt3a3lrn2uua7pru2tObGdsiGy/bMxszWzlbBZtG20ebTRtPm1BbWltam13bXhthW3Lbdpt6m35bRpuL25ubpxuum7Hbstu0W7bbg9vIm8jb25vxm/rb/5vG3AecDlwSnBwcHdwfXCZcK1wyHDZcEVxSXFucZxxznHQcRByG3IocityNXJQcmJygHKVcq9ywHL8cipzdXN6c4dzi3Olc7Jz3nMGdAl0InRHdFx0aXRxdIV0iXSYdMp0BnUkdTt1PnVZdWV1cHXidRB2HXYfdkJ2aXbKdtt253b0dgF3Hncfd0B3SneLd6d3TnhreIx4kXjKeMx4+3gqeTx5PnlIeUl5UHlWeV15XnlleX95jXmOeY95rnnKeet5HHpAekp6T3qBerF6y3rueiB7wHvGe8l7PnxgfHt8kny+fNJ81nzjfOd86HwAfRB9In0vfVt9Y32gfb59x330fQJ+CX43fkF+RX4+f3J/eX96f4V/lX+af71/+n8BgAWARoBggG+AcIB+gIuArYCygAOBPoHYgeiB7YEBggSCGIJvgnmCi4KRgp2CsYKzgr2C5YLmgh2DI4M2g1KDU4Njg62DvYPJg8qDzIPcg+eD74Pxgz2ESYRXhO6E8YTzhPyEFoVkhc2F+oUGhhKGLYY/hlCGXIZnhmmGiIaphuKGDocoh2uHeYeGh7qH4YcBiB+ITIhgiGOIwojPiNeI3ojhiPiI+ogQiUGJZImGiYuJlomgiqqKv4rLitKK1ortiviK/ooBizmLWIuAi4qLSIxVjKuMwYzCjMiM04wIjRuNd428jcuN743wjcqO1I4mjyqPOI87j2KPno+wj7aPI5A4kHKQfJCPkJSQzpDekPGQ/ZARkRuRapGZkbSRzJHPkdGRNJI4knaSfJLXktiSBJNKk/mTFZSLla2Vt5UulkuWTZZ1lniWfJaGlqOWt5a4lsOW4pbjlvaW95YjlzKXSJdWl9uX4Jf/lwuYGJgpmDuYXpjimO+Y/JgomSmZp5nCmfGZ/plqmhKbb5tAnFec/ZxnnbSd+p0enn+el56fnruezp75nv6eBZ8PnxafO59Dn42fjp+cnwAAAAAAAAAAAAAAAAAAIgEcBSUFSwU6BgQI3ggsCmML5BSoFuoWyBkYGwsd5B3mHYMhnyExI9QmRChKKAwr8SsKMLgyXzOTM5wzwzPVM200ozanOI06+jq8PB490T5eP44/Y0LuQqtDCEY1RxRINkySTKFPuE9EUPJQ81AZUTNRSVIdVCZWmlbFVnxZp1qrW4Bc0FyGX9phKGJHYtliPmPaZCNlqGWnZ7VnPGs2bNVsa20sb7Fv0nDKc2d2rnhmeah8034vf9KF7YUuh/qLd41Fkd+RGpIKlJaUtpUwm86gBaEOopGikqMApgAAAAAEBAQEBAQEBAQMDQwLDQQEBAQEBAQEBAQEBAQEDQ0NDAsODggICA4ODg4OCQoJCgoHBwcHBwcHBwcHCg4ODg4ODgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBDg4ODg4BAQEBAQEBAQEBAQ4ODg4EBAQEBAQNBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQKDggICAgODg4OAQ4OBA4OCAgHBw4BDg4OBwEODg4ODgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBDgEBAQEBAQEBAQEBAQEBAQEBDg4BAQEBAQEBDg4ODg4ODg4ODg4ODg4BAQEBAQ4ODg4ODg4ODgEODg4ODg4ODg4ODg4ODg4ODgUFBQUFBQUFBQUFBQUFBQUBAQEBDg4BAQEBAQEBAQ4BAQEBAQ4OAQ4BAQEBAQEBAQEBAQEBAQ4BAQEBAQEBAQEBAQEFBQUFBQUFAQEBAQEBAQEBAQEBAQEBAQ4BAQ4OCAIFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQIFAgUFAgUFAgUCAgICAgICAgICAgICAgICAgICAgICAgIGBgYGBgYODgMICAMKAw4OBQUFBQUFBQUFBQUDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwUFBQUFBgYGBgYGBgYGBggGBgMDAwUDAwMDAwMDAwMDAwMDAwMDAwMDAwMFBQUFBQUFBg4FBQUFBQUDAwUFDgUFBQUDAwcHBwcHBwcHBwcDAwMDAwMDBQMDAwMDAwMDAwMDAwMDAwMDAwMDBQUFBQUFBQUFBQICAgICAgICAgICBQUFBQUFBQUFAgIODg4OAgICBQICAgICAgICBQUFBQIFBQUFBQUFBQUCBQUFAgUFBQUFAgICAgICAgICAgIFBQUCAgICBgYDAwMDAwMFBQUFBQUFBQMDAwMDAwMDAwMFBQUFBQUFBQYFBQUFBQUFBQUFBQUFBQUFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEFAQUBAQEBBQUFBQUFBQUBAQEBBQEBAQUFBQUFBQUBAQEBAQEBAQEBBQUBAQEBAQEBAQEBAQEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBBQEBAQEFBQUFAQEBAQEBAQEFAQEBAQgIAQEBAQEBAQgBAQUBAQUFAQEBAQEBAQEBAQEBAQEFBQEBAQEFBQEBBQUFAQEFBQEBAQUBAQEBAQEBAQEBAQUFBQUFAQUFAQEBAQUBAQEIAQEBAQEBAQEFBQUFBQUBAQEBAQEBAQEBAQEFAQEFAQEBAQEFBQEBAQEBAQEBAQEBBQEBAQEBAQEBAQEBAQEFAQEBAQEBAQEBAQEBBQEBAQEBDg4ODg4OCA4BAQEBAQUBAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEFAQUFBQEBAQEBBQUFAQUFBQUBAQEBAQEBAQEBDg4ODg4ODgEBAQEBAQEBAQEBAQEFBQEBBQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBBQUBAQEBAQEBAQEBAQEBBQEBAQEBAQEFBQUBBQEBAQEBAQEBAQEFAQEFBQUFBQUFAQEBAQgBAQEBAQEBBQUFBQUFBQUBAQUBAQUFBQUFBQUFBQEBAQEBAQEBAQEBBQUFBQUFAQEBAQEBAQEBAQUFAQEBAQEBAQEBAQEFAQUBBQ4ODg4BAQEFBQUFBQUFBQUFBQUFBQEFBQUFBQEFBQEBAQEBBQUFBQUFBQUFBQUBBQUFBQUFBQUFBQUFBQUFBQUFBQUBAQEBAQEBAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQUFBQUBBQUFBQUFAQUFAQEFBQEBAQEBAQEBAQUFAQEBAQUFBQEBAQEBAQEBAQEBAQEBAQEFBQUFAQEBAQEBAQEBAQEBAQUBAQUFAQEBAQEBBQEBAQEBAQEBAQEBAQEBAQUBAQ4ODg4ODg4ODg4BAQEBAQELAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEODgEBAQEBBQUFAQEBAQEBAQEBAQEBAQEBBQUBBQUFBQUFBQEBAQEBAQEBBQEBBQUFBQUFBQUFBQUBAQEBAQEBCAEFAQEODg4ODg4ODg4ODgUFBQQFAQEBAQEBAQEBBQEBAQEBAQUFBQEBAQEFBQEBAQEBAQEBAQUBAQEBAQEFBQUBAQEBDgEBAQ4OAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBDg4BAQEBAQEBBQUBAQUBAQEBAQEBAQEBBQEFBQUFBQUFAQUBBQEBBQUFBQUFBQUBAQEBAQEFBQUFBQUFBQUFAQEFBQUFBQUFBQUFBQUFBQUFAQUFBQUBAQEBAQEBAQEBAQEBAQEBBQEFBQUFBQEFAQEBAQEBAQEBAQEBAQEFBQUFBQEBBQUFBQEBBQUBBQUFAQEBAQEBAQEFAQUFAQEBBQEFAQEBAQEBAQEBAQEBBQUFBQUFBQUBAQUFAQEBAQEBAQEFBQUBBQUFBQUFBQUFBQUFBQEFBQUFBQUFAQEBAQUBAQEBAQEFAQEBBQUBAQEBAQEBAQEBAQEBAQEBAQEBDgEODg4BAQEBAQEBAQEBAQ4ODgEBAQEBAQEBAQEBAQEODg4BAQEBAQEBAQEBAQEBDg4BCwsLCwsLCwsLCwsEBAQBAg4ODg4ODg4OCw0TFBcVFgoICAgICA4ODg4ODg4ODg4ODg4ODgoODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgsEBAQEBAQPEBESBAQEBAQEBwEBAQcHBwcHBwkJDg4OAQcHBwcHBwcHBwcJCQ4ODgEICAgICAgICAgICAgICAgIDg4BDg4ODgEODgEBAQEBAQEBAQEOAQ4ODgEBAQEBDg4ODg4OAQ4BDgEOAQEBAQgBAQEBAQEBAQEBAQ4OAQEBAQ4ODg4OAQEBAQEODg4OAQEBAQEBAQEBAQEODg4BAQEBDg4JCA4ODg4ODg4ODg4ODg4ODg4ODgEBAQEBAQEBAQEODg4ODgEODg4ODg4ODg4ODg4ODg4ODgEBAQEBAQEBAQ4ODg4ODg4ODg4OAQEBAQEODg4ODg4ODgcHBwcHBwcHBwcHBwcHBwcHBwcHAQEBAQEBAQEBAQEBAQEODg4ODg4ODg4ODg4ODg4ODg4BDg4ODg4ODgEBDg4ODg4ODg4ODg4ODg4ODgEODg4ODg4ODg4BAQEBAQ4ODg4ODgEBAQEFBQUBAQEBAQEBDg4ODg4ODgEBAQEBAQEBAQEBAQEBAQUODg4ODg4ODg4ODg4ODgEBDg4ODg4ODg4ODgEODg4ODg4ODg4BAQEBAQEBAQEBAQEODg4ODg4ODg4ODg4BAQEBCw4ODg4BAQEODg4ODg4ODg4BAQEBAQEBAQEFBQUFAQEOAQEBAQEODgEBAQEBDg4OAQEBAQEBAQEBBQUODgEBAQEBAQEBAQEBAQEBDgEBAQEBAQEBAQEBAQEBAQEODg4BAQ4ODg4ODg4ODg4ODg4ODgEBAQEBAQEBAQEBAQ4ODg4BAQEBAQEBDg4ODgEBAQEBAQEBAQEBAQEBAQEBAQEBDgUFBQ4FBQUFBQUFBQUFDg4BAQEBAQEBAQEBAQEBAQUFDg4BAQEBAQEBAQEBAQEBAQEBAQEBAQEBDgEBAQEBAQEBAQUBAQEFAQEBAQUBAQEBAQEBAQEFBQEODg4OBQEBAQEBAQEBAQEBCAgBAQEBAQEBAQEBDg4ODgEBAQEBAQEBAQEBAQUFAQEBAQEBAQEBAQUFAQEBAQEBAQEBAQEBAQUBAQEBAQEFBQUFBQUFBQEBAQEBAQEBAQUFBQUFBQUFBQEBAQUBAQUFBQUBAQUFAQEBAQEBAQUBAQEBAQEBAQEBAQEBAQEBAQEBBQUFBQUFAQEFBQEBBQUBAQEBAQEBAQEBAQEFAQEBAQEBAQEFAQEBBQEFBQUBAQUFAQEBAQEFBQEBAQEBBQEBBQEBAQEFAQEBAQEBAQEBAQEBAQEBAgUCAgICAgICAgICCQICAgICAgMDAwMDAwMDAwMDAwMDDg4DAwMDAwMDAwMDAwMDAwMOAwMDAwMDAwMDAwMDAw4ODgoOCgEOCg4ODg4ODg4ODggODgkJDg4OAQ4ICA4BAQEBAwMDAwMDAwMDAwMDAwMDBAEODggICA4ODg4OCQoJCgoICA4ODggIAQ4ODg4ODg4BBAQEBAQEBAQEDg4ODg4EBAEOAQEBAQEBAQEBAQEBAQEODg4ODg4ODg4ODg4OAQEBBQcHBwcHBwcHBwcHBwcHBwEBAQEBAQUFBQUFAQEBAQECAgICAgICAgICAgICAgIOAgUFBQIFBQICAgICBQUFBQICAgICAgICBQUFAgICAgUCAgICAgUFAgICAgICAgICAgICAgICAgICDg4ODg4ODgMDAwMFBQUFAwMDAwMDAwMGBgYGBgYGBgYGAwMDAwMDBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgICAgICAgICAgICAgUFAgICAgIFBQUFAgICAgICAgICAgEBAQEBAQEBBQUFBQUFBQUFBQUFBQUFAQEBAQEBAQEBBQEBBQUBAQEBAQEBAQEBBQEBAQUFBQUBAQUFAQEBAQEBAQEBAQEBBQUFBQUBBQUFBQUFBQUBAQEBAQEBAQEBAQEBAQUBAQEBAQEBAQEBAQEBAQEBAQEFBQUFBQUFBQUBAQEBAQEBAQEBBQUFBQEBBQUFAQEFAQUFAQEBAQEBBQEBAQEFBQUFBQUFBQEBAQEBAQEBAQEBBQUFBQUFBQEBAQEBAQEBAQEBAQEBAQEBBQEBAQEFBQUFBQUBBQEBAQEFBQEFBQEBAQEBAQEBAQEBAQEBBQUFBQEBAQEBAQUFAQUBAQEFBQUFBQUFBQEBBQEFAQEBAQEBAQEBAQEFAQUBAQUFBQUFBQEFAQEBAQEBAQEBAQUFBQUBBQUFBQUBAQEBBQUFBQUFBQUBBQUBAQEBAQEBAQEBAQEBAQEBBQUBBQEBAQEBBQUFBQEBBQUBAQEBAQUFBQUFBQEBBQUBAQEBAQEBAQUFBQUFBQEBBQUFBQEBAQEBAQEBBQEBAQEBAQEBAQUFBQUFBQEBBQUFAQEBAQEBAQEBAQEBAQEFBQUFBQUFBQUFBQUFAQUFAQEBAQEBBQUFBQUFBQEFBQUFBQUBAQEBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQEBBQUFBQUFBQEFBQEFBQEBAQEBAQEBAQEFBQUFBQUBAQEFAQUFAQUFBQEBAQUBBQEBAQEBAQEBAQEBBQUBAQEBAQEBAQEBAQEBAQEBDg4ODg4ODg4ICAgIDg4ODg4ODg4ODg4ODg4OAQEOAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEFBQEEBAQEAQEBAQEBAQEBAQEBBQUFBQUFBQUFBQUFBQUBAQEBAQEBAQEFBQUBAQEBAQEBAQEEBAQEBAQEBAUFBQUFBQUFAQEFBQUFBQUFAQEBAQEBAQEBAQEBAQEFBQUFAQEODgUFBQ4BAQEBAQEBAQEBAQEBAQEOAQEBAQEBAQEBAQEBAQEBAQEBAQ4BAQEBAQEBAQEOAQEBAQEBAQEBAQcHBwcHBwcHBwcHBwcHBwcHBwUFBQUFBQUBAQEBBQUFBQUBAQEBBQEBAQEBAQEBAQEBAQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUBBQUFBQUFBQUFBQUFBQUFBQUBAQUFBQUFBQUBBQUBBQUFBQUBAQEBAQEBAQEBAQEBAQEBAQEBAQgFBQUFBQUFAgICAgICAgICAgICAgUFBQUFBQUCAgICAg4OAwMDAwMDAwMDAwMDAwMODg4ODg4ODg4ODg4ODg4BBwcHBwcHBwcHBwcODg4ODgEBAQEBAQEBAQEBAQEOAQEODg4ODg4ODgEBAQEBDg4ODg4ODg4ODg4OAQEBAQEBAQ4ODg4ODg4OAQEBAQEBAQEODg4ODgEBAQ4ODg4OAQEBDg4OAQ4ODg4ODg4ODg4ODgcHBwcHBwcHBwcBAQEBAQEBAQEBAQEBAQEBAQEBAQQEAAAQACAAMABAAFAAQABgAHAAgACQAKAAsADAALAAwACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsADQAOAA4ADwAAABEAEQARABEAEQARABEAEgATABsACwALAAsACwALAAQAGwALAAsACwALAAsACwALAAUAGwALAAsACwALAAsACwALAAsACwALAAsACwALAAsABgAXABEAGAAZABoAGgAaABsAHAAdAB0AHgARAB8AEAAtAB0AHQAdAB0AEQAiACMALQAUAC0AEQAcAB0AHQAdAB0AHQAVACAAKgAaABYAJwAqABgAKQAqABoAGgAtAB0AHQAbAC0AHQAcACEAHQAhAB4AKwALAA8AIAAxADIAOwADADsACwAEADUAOwACADYANwA7AAsABAA4ADMAOwAJADcAOwALAAQAOgA7AAIAOwAzADsACwAMADUAPQAyADsADgA7AAsACwAPADsACwAAAEEASwALAAIAQwBNADIANABDADsACwAEADUASwACADsABgBLAAsABwBFADsAAgA7AAMAOwALAAsACABJAEsACwALAAsACwAKAEsASwALAAsACwALAAsADABNAEsACwALAAsADgBLAA8ASwALAAsAAABRAFIAUQATAFQAWwALAAsACwALAAUAVgBbAAcAWABZAFoAWwBbAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAUAWwALAAsADABbAAsACwALAAsACwAEAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAA0AXgBbAAsACwALAAsACwALAA8AWwACADsAAgA7AAIAOwALAAsAAABhAGIAawAMAFMAawALAAsACwALAAsACwANADsABABrAAsACwALAAsACwALAAUAZgBnAGsACwALAAsACwALAAsACwAIAGAAEAAbAAkAawALAAsACgBrAGwAawALAAsAAQAdAGsACwALAA4AawALAA8AbgA7AAAAfgBmAEsAAQB7AAsACwACAHYASwALAAMAdAB7AAsACwALAAsACwALAAsACwAFAHYAdwB7AAsACwALAAsACwALAAsACwALAAsACwABABEAEQARABsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAgAeQB6AHoAewB8AHAAHQB+AH8AcACBAIIAgwCLAAQAhACEAIEAEQAYAFUAhgCHAIgAiQCAABsACwAKAIAAEAAQABAAEAAQABAAEAAbAIAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAcAIsACwALAAUAAAAdAIAAEAAQABAAEAAQABAAEAAeAIsADwCLAAAAEAAQAJEAmwALAAsACwACAJAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABMAkAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAGwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAUAJAAFQCQABAAEAAQABAAEAAbAAsACwALAAsACwALAAsACwALAAsACwALAAsABgCXAJsACwALAAsACwALAAsACACbAAsACwALAAsACwABABEAEAAQABAAEAAQABkAmwALAAAAGgCQABAAEAAQABAAGwCQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABwAiwAMAJ0AkAAeAJ8AmwALAAsACwALAAAApAALAAsACwALAAEAqwALAAsACwALAAsACwALAAsACwALAAsAAAAQABsAmwALAAsAewALAAsAAAAbAAIAqwALAAsAAwCkAKsACwALAAsACwALAAsACwALAAsABQCrAAsACwALAAsACABrAAYAqwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAAAEAAQABAAGwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAAAEAAQAB4AiwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwAKAHsACwALAAsACwAIAJcAqwAIAKsACwALAAsACwAGAEAAEAAZAKsACwALAAsACwAKAKsACwALAAsACwALAAsACwCrAAwArQCrAAsACwAOAKsACwALAAsADwCrAAEAEAC7AAsAAQC7AAIAtgBLAAsADgArAAsAAwC7AAsABAC7AAsACwAFALYAtwC7AAsABAA7AAsACwAIALMAOwAFAEQAWwALAAsACwALAAsACACLAAsACwALAAsACwALAAkAuwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAoAuwC6ABoAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHACwAB0AHQAdAB0AHQAdAB0AHQC4AAgADgCxABwAUQAQABAAHwCwAM0AHQAdAB0AHQAdAB0AHQARAMIAwwAEAAUABAAFAAwAiwALAAsACwALAAsACwADAMQAywALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwAFAMsACwALAAAAEAAQABAAFgDGAMQACwALAAsACwALAFsACwALAAsACwALAAsACwALAAsACwALAAsACwAHAMEAmwALAAsACwALAAsACwAIAMsACwALAAsACwALAAsACwAKABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGQDKABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgDKABoAGwDKABoAGgAaABoAGgAaABoAGgAaABwAygAaABoAGgAdAMoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAHQAdAB4AzwDKABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAQANEA2gAaABIA2gAaABoAGgAaABoAGgAaAB0AFQAgAC0AGgATANoAGgAaABoAGgAaABoAEwA7AAsABADVAN4ADACGANYASwALAAcA3gA7AAsACwAOACsACADZANsACwALAAoA1gBLAAsACwDcANsACwALAAsACwAIAJ0A2wALAAsACwALAAsACwALAAsACACeANsABgBLAAsABwBIAFsADwDZANsACwALAAsACwALAAsACwALAAsACwAEANkAQADrAAsACwALAAsAAQDiAOsACwALAAsACwALAAsACwALAAsACwALAAsACwADAOgAVQBLAAsACwALAAsABADoAFsABgDLAAsACwAFAOYA6wALAAsACwALAAUAVwDrAAsACwALAAsACwALAAsACwALAAsACwALAAsACwAIAJgA6wALAAsACwALAAsACwALAAsACwALAAsACwALAAsACQDqANsACwALAAsACwALAAsACwAKAOgAWwALAOsACwAMAO0A7gDrAAsADwDgAPsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsAAQD7AAsACwALAAsAAgDzAPQA+wALAAsACwALAAsACwAFAPYA6wALAAsACwAGAPsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAcA+wALAAsACwALAAsACwALAAsACwALAAsACwAIAPkA+QCrAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACQDbAAsACwAFANsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACACbAAsACwAIAJ4AKwALAAsACwAKAPsACwALAAsACwALAAsACwALAAsACwD8APsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwABABEAHQDxABUA2wALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsADgD/APABCwABAQsACwALAA0ACwAAABAAEAAQABIBCwALAAsACwALAAsACwALAAsACwALAAAAEAAQABAAEAAeAIsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsAAQCrAAsACwADAQsACwAGAKsACwALAAQBCwALAAsABQEGAQYBBgELAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsAAQARABEAFwEBABEAEwBUALgBAAB5AQsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAoBCwEMAQsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsABQDbAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAAA6wALAAsAAwB9AQsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAeAQoAGgAaABoAGgAaAB8BCgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaAB0AHQAdAB0AHQAaABoAGgAaAB0AHQAdAB0AHQAaABoAGgAaABoAGgAaABoAGgAaABoAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AEAEaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABAAEAAcAJAAEAAQABAAEAAQABsAkQETAKMAowCgABwAggEbAAYAqwALAAsAAgCbAAsACwADARsACwALAAsACwALAAsACwALAAsACwAMAIsACwALAAsACwALAAsACwALAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAFAEWAMYAwAAQABAAEAAQABAAEAAbAJAAEAAQABAAEAAVARwAlAAMAJAAEAAQABYBHABQABAAFgEQABkAmQCrAAsACwALAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABsAmQCXAR4AgAAWAM8AjACMAFYBHgCAABAAEAAQABAAEAAQABAAEAAYARAAEAAfAIsACwAJARsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAoBGAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAABABEAEQARABEAEQARABEAEQARABEAEQARABEAEQAYAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAABAAIAAwAAAAUABgAHAAQACQAKAAsACAANAA0ADQANAA0ADQAOAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA8ADAARAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0AEgATABEADAAVABYAFwAUABkAGQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADgAbABkADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADAAdAA0ADQANAB4AHwAcACEADQAhAA4AIwAgACUAJgAnACUADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA8AJQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADwAlAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQAPACUADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA8AJQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADwAlAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQAPACUADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA8AJQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADwAlAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQAPACUADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA8AJQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADwAlAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQAPACQAKQApACkAKQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA8AJQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADwAlAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQAPACQAAAQD//wIA/v8QAPD/AwD9/+AH3wmDB3oHfgfKCIoABwD5/yAHOAg8CDoIJAV2/wgA+P/c+ob4gvh9+OD4IPjI98b3xPc29yH2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEGCAAAAAAAAAAAAAAAAAAAAAAAAAwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEMAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQwCEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEGCQYIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEGCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgAAAAAAAAAAAABBggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEGCAAAAAAAAAAAAAAAAAABBggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwcHCAgIAAAAAAAAAAkAAAAAAAAAAAAKCwwNAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECAAAAAAAPABAAAAAAAAARAAAAAAABAgECAAAAAAAAAAAAAAAAAAABAgECAQIBAgAAAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAAAAAQIBAgAAAAAAEgAAAAAAAAAAAAECAAATABQVABUAAAAAAQIBAgECAQIWAAAAAAAAAAAAAAAAAAAAAAECAQIXAAABAgAAAAABAgECAQIBAgECAQIBAgECAQIBAgECAQIAAAECGBgYABAQAAAZGRkREQAAAAAAAAAAAEGCQYIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEGCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEGCQYJBgkGCQYJBgkGCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAkGCAAECAAMABAAAAAAAAAABAgAAAAAAGgECAAAAAQIBAkGCQYJBgkGCQYIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQYJBgkGCQYJBgkeBQohBgkGCQYJBggAAGwAAAAAcAAAdAQIAAAECAQIBAgECAAAAAAAAAAAeAAAAAAAAAAECAAABAgAAAAAAAAAAAAECAQIAAQIAAEGCQYIAAAAAAAAAAAAAAAABAgAAAAAAAAAAAAAAHwAAAQIAAEGCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIBAgAAAAAAAQIAAAAAAAABAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIAAAAAAAAAAAAAAAAAAAAAAAAAAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAAAAAQIBAgECAQIAAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgAAAAAAAAAgAAAAACEiIQAAAAAAAAECIwAAAAAAAAAAAQIBAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgECAAAAAQIAAQIAAAAAAAAAAAAAAAAAAAECAAABAkGCQYJBgkGCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEGCQYJBgkGCAAAAQYJBgkGCQYJBggAAQYJBgkGCQYIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQYJBgkGCAAAAAAABAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEGCAAAAAAAAAAAAAAAAAAAAAAAAAwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEMAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQwCEAEGCAEGCAAAAAAAAAAAAAAAAagDUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUAD4B1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUAKgB1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1AASAnwC1ADUANQA5gJQA7oD1ADUANQA1ADUANQA1ADUANQA1AAkBI4E1ADUANQA+ARiBcwFNgbUANQAoAbUANQA1ADUAAoH1ADUANQA1AB0B9QA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADUANQA1ADeB0gIsggAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQKAvwEDoL8BA4C/AQOAnwEEkL8BBIC/AQSAjwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwQEBAQEBAQEBAQEBAUEBAYHBwcIAQEBAQEBAQEBAQEAAAAAdHEEAAEAAAA0ZwQAAgAAAFpxBAADAAAAPk0EAAQAAABTTQQABQAAABd8BAAGAAAAFXAEAAcAAAAgTQQACAAAAAZyBAAJAAAAb3EEAAoAAAA3TQQACwAAABlwBAAMAAAASU0EAA0AAADgUQQADgAAACxSBAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/gQQ1vwAAAACBBDW/gQQ1PwAAAACBBDW/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/gQQ1vwAAAACBBDU/gQQ1PwAAAACBBDU/9+ShvgAAAAAB3nK/9+ShPgAAAAAB3nK/AAAAAAAAAAAAAIA/AACAvwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAfdATv33QEz990BO/AAAAAIEENT+BBDW/fdATP33QEz990BO/fdATv33QEz990BM/AAAAAIEENT+BBDU/fdATP33QEz990BM/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPwAAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAD8AAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPwAAAAAAAAAAAAAAPwAAAAAAAAAAAAAAAAAAAD8AAAAAAAAAPwAAAAAAAAAAAACAPgAAAAAAAEA/AAAAAAAAAAAAAAAAAAAAAAAAgD4AAEA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA/w/WoPgAAAADD9ag+AAAAAAAAAAB7FK4+AAAAAAAAAAAAAAA/AAAAAAAAAAAAAAA/AAAAAMP1qD7D9ag+AAAAAAAAAAB7FK4+w/WoPgAAAAAAAAAAw/WoPgAAAAB7FK4+AAAAAAAAAAAAAAAAAAAAPwAAAAAAAAA/AAAAAMP1qD4AAAAAw/WoPgAAAAB7FK4+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAEAAQABAAEAAQABAAEAAQH/IQUSBQIFEQMRAxEDEQMQAxADEAMQAwEDAQMBAwEDAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEiASABAf8hBRIFAgUBAwEDAQMBAxECEQIRAhECEQIRAhECEQIQAhACEAIQAhACEAIQAhACAAIAAgACAAIAAgACAAIAAiIBIAED/8L+of6R/hEDEQMRAxEDEAMQAxADEAMBAwEDAQMBAwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABMwMyAyMCIwITARMBEwETATECMAIDAiICIQESASABAgEC/+H+MQUTBSIFIAUhBCEEEgQSBAIEAgQQAxADEAMQAxECEQIRAhECEQIRAhECEQIBAwEDAQMBAwADAAMAAwADMwIwAjIBMgEjAQMBBP9j/iP+4v0SBcH9EQQRBBADEAMQAxADAQMBAwEDAQMAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAYH+cf5TBEQEUgQlBFEDUQMVAxUDUARDBAUDBQM0BDMEVQFUAUUBNQFCAyQDQQJBAhQCFAIEAgQCQAMyAyMDMAMxAjECEwITAgMCIgIhASEBIAECAQT/U/4T/tH9IQQhBBIEEgQRAhECEQIRAhECEQIRAhECEAMQAxADEAMBAwEDAQMBAwACAAIAAgACAAIAAgACAAKC/jUEYf5SBCUEUARRA1EDFQMVA0MENAQFBDMEQgNCA1UCRQJUAVQBUwFEASQDQQMUAhQCQAMEAzIDIwMxAxMDMAMDAyIBIgEiASIBIAECAQP/o/5i/kH+Mf4xBRMFIf4iBSAFIQQhBBIEEgQCBAIEEQMRAxEDEQMQAxADEAMQAwEDAQMBAwEDAAMAAwADAAPB/lMDNQOx/kQDUgMlA1EDVQFUAUUBUAEVAhUCQwJDAjQCNAIFA0ADQgIkAjMCBAJBARQBMgEjATABAwEF/8T9I/3C/KH8kfwRBBEEEAMQAxADEAMBAwEDAQMBAwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAf7x/eH9dAVHBWUFVgVzBTcFZAXR/TYFcgRyBCcEJwRGBXAFBwQHBCYEJgRUBVMFYARgBDUFRAVxA3EDcQNxA3cBdgFnAXUBVwFmAVUBRQEXAxcDYwRiBEH9UQQVBDH9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AEDURAAAyUMAQAhEACATxgDwGkYAkN/FANBKRgBpb8cA34FHAACgwAAAwEAAAMLCAADeQgAAI0MAAP7CAEC7xABAzEQAADlDAACQQwDEFcYAuBlGAHAFxgD8MkYA3HTHAAp/RwARAwQFBgcICQoLDA0ODxAAERIDEwQFBgcICQoLDA0QABESAxMEBRAAERIQABESEwQFBgcICQoLDA0ODwAREgMTBAUGBwgJCgsMDQ4AAgMEBQYHCAkKCwwNDg8QTAQgPAQELAMHLAITAAQDEAQIIAMMKAIHLAQCLAMKAAAAAAAAq6qqNE51hzTLBlc0JUkSNM826DP3TrgziYiIM7C7WDNvBSwzCCEEM+S90TLfeKYyIQiCMptpTjJq1CMyBAIBMojJzDEsiqIxgYCAMfH7SzH/5iExIEAAMcCVyzDjlaEwCCCAMM5iSzBzbSEwAhAAMF5Jyy9DWaEvAQiAL6k8Sy8tTyEvAAQAL082yy4iSqEuAAKALiIzSy6dRyEuAAEALosxyy1bRqEtgACALcAwSy25RSEtq6qqNE51hzTLBlc0zcxMNMSMIjQTBAE0OY7jM2ictDPcWY8zAAAAAP7////6////6f/////////V////6v///87////2////4f///+3////N/////////93////Q////0////+X////a////+////+7////4////6P////X////P/////////9/////O////6/////7////s////0v////H////k////9////+T////1//////////T////d////3f///93////3////7v////n////5////9v///////////////P///+L////Y////7v///+P////R////8v////D/////////2//////////9////+f////X//////////f///+b/////////1////9n////7////+v///+f////5////9v///97////t///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2//////////////////////////////////////////v////////////////////////////////////g////3v///+D////d////////////////////////////////////3P//////////////+v////b////2///////////////////////////////U/////f///9b//////////////8//////////////////////////7P////n//////////////////////////////////////////////5ZNBABBSQQAWEkEAHd7BABuSQQAjjsEAJtxBADScAQAyG8EAGBvBABJcAQAq3EEAPFvBACLbwQAeXAEAF5wBAC+cAQAA3AEAJ5vBACTcAQAsW8EADBwBABIbwQA228EAKZwBAB0bwQAYngEAPl3BABRdwQA9XYEAI12BABEdgQA13UEAJR1BABgdQQABnUEAJR4BAA1eAQAwXcEACJ3BADfdgQAYXYEADV2BACxdQQAfXUEAC51BAB/eAQAIngEAK53BAAPdwQAzHYEAFJ2BADldQQAonUEAG51BAAfdQQAcHgEAA94BAABAAAAAwAAAAAAAAACAAAAAwAAAAEAAAACAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABLOgQABRcAANxGBAAGFwAAX00EAAcXAABWOAQACBcAAAthBAAJFwAAvTgEAFYEAAALUwQAChcAAFM/BAALFwAAuD4EAAwXAACyUAQADRcAAH8/BAAOFwAATjgEAA8XAAD+YAQAEBcAAE9KBAARFwAAalYEABIXAAAuXgQAExcAAHpYBAAUFwAAAAAAAAAAAACCPgQAFRcAANBnBAAWFwAAaToEABcXAABBRwQAGBcAAGdGBAAZFwAA0jkEABoXAADyPwQAGxcAACZcBAAcFwAAij4EAB0XAABnZgQAHhcAAB5cBAAfFwAAgz4EACAXAABMNAQAIRcAAEQ0BAAiFwAAzUsEACMXAAAAAAAAAAAAAD5cBAAkFwAAc1YEACUXAABqVgQAJhcAAFR1BAAnFwAARXUEACgXAAAOdgQAKRcAAP11BAAqFwAAjHcEACsXAABsdwQALBcAAJ13BAAtFwAArnYEAC4XAABMdQQALxcAAD11BAAwFwAABXYEADEXAAD0dQQAMhcAAIN3BAAzFwAAY3cEADQXAACUdwQANRcAAKV2BAA2FwAAilYEADcXAAB+VgQA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABQAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAAPAAAAEAAAAA0AAAAOAAAAEQAAABIAAAATAAAAFAAAABUAAAAXAAAAGAAAAEQAAAAZAAAAGgAAABsAAAAdAAAAHwAAABwAAAAeAAAAIAAAACEAAAAiAAAAIwAAACQAAAAmAAAAJwAAACgAAAApAAAAKgAAACsAAAAtAAAALgAAAC8AAAAwAAAAMQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAAAA5AAAAOgAAADsAAAA9AAAAPgAAAE8AAAA/AAAAQAAAAEEAAABCAAAAQwAAAEUAAABGAAAARwAAAEgAAABJAAAASgAAAEsAAABMAAAATQAAAE4AAAA8AAAAUQAAAFIAAABTAAAAVAAAACUAAAAsAAAAVQAAAFYAAABXAAAAWAAAABYAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkBcAAJEXAACSFwAAkxcAAJQXAACVFwAAlhcAAJcXAACYFwAAmRcAAJoXAACbFwAAnBcAAJ0XAACeFwAAnxcAAKAXAAChFwAAohcAAKMXAACkFwAApRcAAKYXAACnFwAAqBcAAKkXAACqFwAAqxcAAKwXAACtFwAArhcAAK8XAACwFwAAsRcAALIXAACzFwAAtBcAALUXAAC2FwAAtxcAALgXAAC5FwAAuhcAALsXAAC8FwAAvRcAAL4XAAC/FwAAwBcAAMEXAADCFwAAwxcAAMQXAADFFwAAxhcAAMcXAADIFwAAyRcAAMoXAADLFwAAzBcAAM0XAADOFwAAzxcAANAXAADRFwAA0hcAANMXAADUFwAA1RcAANYXAADXFwAA2BcAANkXAADaFwAA2xcAANwXAADdFwAA3hcAAN8XAADgFwAA4RcAAOIXAADjFwAA5BcAAOUXAADmFwAA5xcAAOgXAADpFwAA6hcAAOsXAADsFwAA7RcAAO4XAADvFwAA8BcAAPEXAADyFwAA8xcAAPQXAAD1FwAA9hcAAPcXAAD4FwAA+RcAAPoXAAD7FwAA/BcAAP0XAAD+FwAA/xcAAAAYAAABGAAAAhgAAAMYAAAEGAAABRgAAAYYAAAHGAAACBgAAAkYAAAKGAAACxgAAAwYAAANGAAADhgAAA8YAAAQGAAAERgAABIYAAATGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAUGAAAFBgAABQYAAAVGAAAFBgAABYYAAAXGAAAGBgAABkYAADgFwAA3RcAABoYAADpFwAAGxgAABwYAAAdGAAA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ggAAAIIAAACCAAAAggAAAIIAAACCAAAAggAAAIIAAACCAAAAggAAAEIBAABCAQAAQgEAAEIBAABCAQAAQgEAAEIBAABCAQAAQgEAAEIBAACCAAAAggAAAIIAAACCAAAAggAAAIIAAACCAAAAKgEAACoBAAAqAQAAKgEAACoBAAAqAQAAKgAAACoAAAAqAAAAKgAAACoAAAAqAAAAKgAAACoAAAAqAAAAKgAAACoAAAAqAAAAKgAAACoAAAAqAAAAKgAAACoAAAAqAAAAKgAAACoAAACCAAAAggAAAIIAAACCAAAAggAAAIIAAAAyAQAAMgEAADIBAAAyAQAAMgEAADIBAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAAAyAAAAMgAAAIIAAACCAAAAggAAAIIAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/DwHAE4YAABPGAAAQxgAAFAYAABRGAAA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ZQAAAGMAAAAAAAAAQQAAAE0AAAAAAAAAUAAAAE0AAAAAAAAAAAAAAIxCBwDZGAAA2hgAANsYAADcGAAA3RgAAN4YAADfGAAAAAAAAHhDBwDpGAAA6hgAAOsYAADsGAAA7RgAAO4YAADvGAAA/////////////////////////////////////////////////////////////////wABAgMEBQYHCAn/////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP///////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAQIEBwMGBQAAAAAAAABMQ19DVFlQRQAAAABMQ19OVU1FUklDAABMQ19USU1FAAAAAABMQ19DT0xMQVRFAABMQ19NT05FVEFSWQBMQ19NRVNTQUdFUwAAAAAAAAAAAN4SBJUAAAAA////////////////ME8HABQAAABDLlVURi04AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACQAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAALwAAADAAAAAxAAAAMgAAADMAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAAPgAAAD8AAABAAAAAYQAAAGIAAABjAAAAZAAAAGUAAABmAAAAZwAAAGgAAABpAAAAagAAAGsAAABsAAAAbQAAAG4AAABvAAAAcAAAAHEAAAByAAAAcwAAAHQAAAB1AAAAdgAAAHcAAAB4AAAAeQAAAHoAAABbAAAAXAAAAF0AAABeAAAAXwAAAGAAAABhAAAAYgAAAGMAAABkAAAAZQAAAGYAAABnAAAAaAAAAGkAAABqAAAAawAAAGwAAABtAAAAbgAAAG8AAABwAAAAcQAAAHIAAABzAAAAdAAAAHUAAAB2AAAAdwAAAHgAAAB5AAAAegAAAHsAAAB8AAAAfQAAAH4AAAB/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAA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IE1vZHVsZS5IRUFQVTguc2V0KGltYWdlRGF0YS5kYXRhLCBwdHIpOyBNb2R1bGUuX3dhc21faW1hZ2VfZGVjb2RlX2NvbXBsZXRlKHJlcXVlc3RJZCwgYm1wLndpZHRoLCBibXAuaGVpZ2h0LCBwdHIsIG51bUJ5dGVzKTsgfSkgLmNhdGNoKGZ1bmN0aW9uKGVycikgeyB2YXIgbXNnID0gZXJyLm1lc3NhZ2UgfHwgImRlY29kZSBmYWlsZWQiOyB2YXIgbXNnTGVuID0gTW9kdWxlLmxlbmd0aEJ5dGVzVVRGOChtc2cpICsgMTsgdmFyIG1zZ1B0ciA9IE1vZHVsZS5fbWFsbG9jKG1zZ0xlbik7IE1vZHVsZS5zdHJpbmdUb1VURjgobXNnLCBtc2dQdHIsIG1zZ0xlbik7IE1vZHVsZS5fd2FzbV9pbWFnZV9kZWNvZGVfZXJyb3IocmVxdWVzdElkLCBtc2dQdHIpOyBNb2R1bGUuX2ZyZWUobXNnUHRyKTsgfSk7IH0AKCk8Ojo+eyByZXR1cm4gQm9vbGVhbihuYXZpZ2F0b3IucGxhdGZvcm0uaW5kZXhPZignV2luJykgPiAtMSk7IH0AAEHN1h0LpDJ7IGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCAod2luZG93LkF1ZGlvQ29udGV4dCB8fCB3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0KSA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiAwOyB9IGlmICh0eXBlb2Yod2luZG93Lm1pbmlhdWRpbykgPT09ICd1bmRlZmluZWQnKSB7IHdpbmRvdy5taW5pYXVkaW8gPSB7IHJlZmVyZW5jZUNvdW50OiAwIH07IHdpbmRvdy5taW5pYXVkaW8uZGV2aWNlX3R5cGUgPSB7fTsgd2luZG93Lm1pbmlhdWRpby5kZXZpY2VfdHlwZS5wbGF5YmFjayA9ICQwOyB3aW5kb3cubWluaWF1ZGlvLmRldmljZV90eXBlLmNhcHR1cmUgPSAkMTsgd2luZG93Lm1pbmlhdWRpby5kZXZpY2VfdHlwZS5kdXBsZXggPSAkMjsgd2luZG93Lm1pbmlhdWRpby5kZXZpY2Vfc3RhdGUgPSB7fTsgd2luZG93Lm1pbmlhdWRpby5kZXZpY2Vfc3RhdGUuc3RvcHBlZCA9ICQzOyB3aW5kb3cubWluaWF1ZGlvLmRldmljZV9zdGF0ZS5zdGFydGVkID0gJDQ7IGxldCBtaW5pYXVkaW8gPSB3aW5kb3cubWluaWF1ZGlvOyBtaW5pYXVkaW8uZGV2aWNlcyA9IFtdOyBtaW5pYXVkaW8udHJhY2tfZGV2aWNlID0gZnVuY3Rpb24oZGV2aWNlKSB7IGZvciAodmFyIGlEZXZpY2UgPSAwOyBpRGV2aWNlIDwgbWluaWF1ZGlvLmRldmljZXMubGVuZ3RoOyArK2lEZXZpY2UpIHsgaWYgKG1pbmlhdWRpby5kZXZpY2VzW2lEZXZpY2VdID09IG51bGwpIHsgbWluaWF1ZGlvLmRldmljZXNbaURldmljZV0gPSBkZXZpY2U7IHJldHVybiBpRGV2aWNlOyB9IH0gbWluaWF1ZGlvLmRldmljZXMucHVzaChkZXZpY2UpOyByZXR1cm4gbWluaWF1ZGlvLmRldmljZXMubGVuZ3RoIC0gMTsgfTsgbWluaWF1ZGlvLnVudHJhY2tfZGV2aWNlX2J5X2luZGV4ID0gZnVuY3Rpb24oZGV2aWNlSW5kZXgpIHsgbWluaWF1ZGlvLmRldmljZXNbZGV2aWNlSW5kZXhdID0gbnVsbDsgd2hpbGUgKG1pbmlhdWRpby5kZXZpY2VzLmxlbmd0aCA+IDApIHsgaWYgKG1pbmlhdWRpby5kZXZpY2VzW21pbmlhdWRpby5kZXZpY2VzLmxlbmd0aC0xXSA9PSBudWxsKSB7IG1pbmlhdWRpby5kZXZpY2VzLnBvcCgpOyB9IGVsc2UgeyBicmVhazsgfSB9IH07IG1pbmlhdWRpby51bnRyYWNrX2RldmljZSA9IGZ1bmN0aW9uKGRldmljZSkgeyBmb3IgKHZhciBpRGV2aWNlID0gMDsgaURldmljZSA8IG1pbmlhdWRpby5kZXZpY2VzLmxlbmd0aDsgKytpRGV2aWNlKSB7IGlmIChtaW5pYXVkaW8uZGV2aWNlc1tpRGV2aWNlXSA9PSBkZXZpY2UpIHsgcmV0dXJuIG1pbmlhdWRpby51bnRyYWNrX2RldmljZV9ieV9pbmRleChpRGV2aWNlKTsgfSB9IH07IG1pbmlhdWRpby5nZXRfZGV2aWNlX2J5X2luZGV4ID0gZnVuY3Rpb24oZGV2aWNlSW5kZXgpIHsgcmV0dXJuIG1pbmlhdWRpby5kZXZpY2VzW2RldmljZUluZGV4XTsgfTsgbWluaWF1ZGlvLnVubG9ja19ldmVudF90eXBlcyA9IChmdW5jdGlvbigpeyByZXR1cm4gWyd0b3VjaGVuZCcsICdjbGljayddOyB9KSgpOyBtaW5pYXVkaW8udW5sb2NrID0gZnVuY3Rpb24oKSB7IGZvcih2YXIgaSA9IDA7IGkgPCBtaW5pYXVkaW8uZGV2aWNlcy5sZW5ndGg7ICsraSkgeyB2YXIgZGV2aWNlID0gbWluaWF1ZGlvLmRldmljZXNbaV07IGlmIChkZXZpY2UgIT0gbnVsbCAmJiBkZXZpY2Uud2ViYXVkaW8gIT0gbnVsbCAmJiBkZXZpY2Uuc3RhdGUgPT09IG1pbmlhdWRpby5kZXZpY2Vfc3RhdGUuc3RhcnRlZCkgeyBkZXZpY2Uud2ViYXVkaW8ucmVzdW1lKCkudGhlbigoKSA9PiB7IF9tYV9kZXZpY2VfX29uX25vdGlmaWNhdGlvbl91bmxvY2tlZChkZXZpY2UucERldmljZSk7IH0sIChlcnJvcikgPT4ge2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZXN1bWUgYXVkaW9jb250ZXh0IiwgZXJyb3IpOyB9KTsgfSB9IG1pbmlhdWRpby51bmxvY2tfZXZlbnRfdHlwZXMubWFwKGZ1bmN0aW9uKGV2ZW50X3R5cGUpIHsgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudF90eXBlLCBtaW5pYXVkaW8udW5sb2NrLCB0cnVlKTsgfSk7IH07IG1pbmlhdWRpby51bmxvY2tfZXZlbnRfdHlwZXMubWFwKGZ1bmN0aW9uKGV2ZW50X3R5cGUpIHsgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudF90eXBlLCBtaW5pYXVkaW8udW5sb2NrLCB0cnVlKTsgfSk7IH0gd2luZG93Lm1pbmlhdWRpby5yZWZlcmVuY2VDb3VudCArPSAxOyByZXR1cm4gMTsgfQB7IGlmICh0eXBlb2Yod2luZG93Lm1pbmlhdWRpbykgIT09ICd1bmRlZmluZWQnKSB7IHdpbmRvdy5taW5pYXVkaW8udW5sb2NrX2V2ZW50X3R5cGVzLm1hcChmdW5jdGlvbihldmVudF90eXBlKSB7IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRfdHlwZSwgd2luZG93Lm1pbmlhdWRpby51bmxvY2ssIHRydWUpOyB9KTsgd2luZG93Lm1pbmlhdWRpby5yZWZlcmVuY2VDb3VudCAtPSAxOyBpZiAod2luZG93Lm1pbmlhdWRpby5yZWZlcmVuY2VDb3VudCA9PT0gMCkgeyBkZWxldGUgd2luZG93Lm1pbmlhdWRpbzsgfSB9IH0AeyByZXR1cm4gKG5hdmlnYXRvci5tZWRpYURldmljZXMgIT09IHVuZGVmaW5lZCAmJiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSAhPT0gdW5kZWZpbmVkKTsgfQB7IHRyeSB7IHZhciB0ZW1wID0gbmV3ICh3aW5kb3cuQXVkaW9Db250ZXh0IHx8IHdpbmRvdy53ZWJraXRBdWRpb0NvbnRleHQpKCk7IHZhciBzYW1wbGVSYXRlID0gdGVtcC5zYW1wbGVSYXRlOyB0ZW1wLmNsb3NlKCk7IHJldHVybiBzYW1wbGVSYXRlOyB9IGNhdGNoKGUpIHsgcmV0dXJuIDA7IH0gfQB7IHZhciBkZXZpY2VUeXBlID0gJDA7IHZhciBjaGFubmVscyA9ICQxOyB2YXIgc2FtcGxlUmF0ZSA9ICQyOyB2YXIgYnVmZmVyU2l6ZSA9ICQzOyB2YXIgcEludGVybWVkaWFyeUJ1ZmZlciA9ICQ0OyB2YXIgcERldmljZSA9ICQ1OyBpZiAodHlwZW9mKHdpbmRvdy5taW5pYXVkaW8pID09PSAndW5kZWZpbmVkJykgeyByZXR1cm4gLTE7IH0gdmFyIGRldmljZSA9IHt9OyB2YXIgYXVkaW9Db250ZXh0T3B0aW9ucyA9IHt9OyBpZiAoZGV2aWNlVHlwZSA9PSB3aW5kb3cubWluaWF1ZGlvLmRldmljZV90eXBlLnBsYXliYWNrICYmIHNhbXBsZVJhdGUgIT0gMCkgeyBhdWRpb0NvbnRleHRPcHRpb25zLnNhbXBsZVJhdGUgPSBzYW1wbGVSYXRlOyB9IGRldmljZS53ZWJhdWRpbyA9IG5ldyAod2luZG93LkF1ZGlvQ29udGV4dCB8fCB3aW5kb3cud2Via2l0QXVkaW9Db250ZXh0KShhdWRpb0NvbnRleHRPcHRpb25zKTsgZGV2aWNlLndlYmF1ZGlvLnN1c3BlbmQoKTsgZGV2aWNlLnN0YXRlID0gd2luZG93Lm1pbmlhdWRpby5kZXZpY2Vfc3RhdGUuc3RvcHBlZDsgdmFyIGNoYW5uZWxDb3VudEluID0gMDsgdmFyIGNoYW5uZWxDb3VudE91dCA9IGNoYW5uZWxzOyBpZiAoZGV2aWNlVHlwZSAhPSB3aW5kb3cubWluaWF1ZGlvLmRldmljZV90eXBlLnBsYXliYWNrKSB7IGNoYW5uZWxDb3VudEluID0gY2hhbm5lbHM7IH0gZGV2aWNlLnNjcmlwdE5vZGUgPSBkZXZpY2Uud2ViYXVkaW8uY3JlYXRlU2NyaXB0UHJvY2Vzc29yKGJ1ZmZlclNpemUsIGNoYW5uZWxDb3VudEluLCBjaGFubmVsQ291bnRPdXQpOyBkZXZpY2Uuc2NyaXB0Tm9kZS5vbmF1ZGlvcHJvY2VzcyA9IGZ1bmN0aW9uKGUpIHsgaWYgKGRldmljZS5pbnRlcm1lZGlhcnlCdWZmZXJWaWV3ID09IG51bGwgfHwgZGV2aWNlLmludGVybWVkaWFyeUJ1ZmZlclZpZXcubGVuZ3RoID09IDApIHsgZGV2aWNlLmludGVybWVkaWFyeUJ1ZmZlclZpZXcgPSBuZXcgRmxvYXQzMkFycmF5KEhFQVBGMzIuYnVmZmVyLCBwSW50ZXJtZWRpYXJ5QnVmZmVyLCBidWZmZXJTaXplICogY2hhbm5lbHMpOyB9IGlmIChkZXZpY2VUeXBlID09IHdpbmRvdy5taW5pYXVkaW8uZGV2aWNlX3R5cGUuY2FwdHVyZSB8fCBkZXZpY2VUeXBlID09IHdpbmRvdy5taW5pYXVkaW8uZGV2aWNlX3R5cGUuZHVwbGV4KSB7IGZvciAodmFyIGlDaGFubmVsID0gMDsgaUNoYW5uZWwgPCBjaGFubmVsczsgaUNoYW5uZWwgKz0gMSkgeyB2YXIgaW5wdXRCdWZmZXIgPSBlLmlucHV0QnVmZmVyLmdldENoYW5uZWxEYXRhKGlDaGFubmVsKTsgdmFyIGludGVybWVkaWFyeUJ1ZmZlciA9IGRldmljZS5pbnRlcm1lZGlhcnlCdWZmZXJWaWV3OyBmb3IgKHZhciBpRnJhbWUgPSAwOyBpRnJhbWUgPCBidWZmZXJTaXplOyBpRnJhbWUgKz0gMSkgeyBpbnRlcm1lZGlhcnlCdWZmZXJbaUZyYW1lKmNoYW5uZWxzICsgaUNoYW5uZWxdID0gaW5wdXRCdWZmZXJbaUZyYW1lXTsgfSB9IF9tYV9kZXZpY2VfcHJvY2Vzc19wY21fZnJhbWVzX2NhcHR1cmVfX3dlYmF1ZGlvKHBEZXZpY2UsIGJ1ZmZlclNpemUsIHBJbnRlcm1lZGlhcnlCdWZmZXIpOyB9IGlmIChkZXZpY2VUeXBlID09IHdpbmRvdy5taW5pYXVkaW8uZGV2aWNlX3R5cGUucGxheWJhY2sgfHwgZGV2aWNlVHlwZSA9PSB3aW5kb3cubWluaWF1ZGlvLmRldmljZV90eXBlLmR1cGxleCkgeyBfbWFfZGV2aWNlX3Byb2Nlc3NfcGNtX2ZyYW1lc19wbGF5YmFja19fd2ViYXVkaW8ocERldmljZSwgYnVmZmVyU2l6ZSwgcEludGVybWVkaWFyeUJ1ZmZlcik7IGZvciAodmFyIGlDaGFubmVsID0gMDsgaUNoYW5uZWwgPCBlLm91dHB1dEJ1ZmZlci5udW1iZXJPZkNoYW5uZWxzOyArK2lDaGFubmVsKSB7IHZhciBvdXRwdXRCdWZmZXIgPSBlLm91dHB1dEJ1ZmZlci5nZXRDaGFubmVsRGF0YShpQ2hhbm5lbCk7IHZhciBpbnRlcm1lZGlhcnlCdWZmZXIgPSBkZXZpY2UuaW50ZXJtZWRpYXJ5QnVmZmVyVmlldzsgZm9yICh2YXIgaUZyYW1lID0gMDsgaUZyYW1lIDwgYnVmZmVyU2l6ZTsgaUZyYW1lICs9IDEpIHsgb3V0cHV0QnVmZmVyW2lGcmFtZV0gPSBpbnRlcm1lZGlhcnlCdWZmZXJbaUZyYW1lKmNoYW5uZWxzICsgaUNoYW5uZWxdOyB9IH0gfSBlbHNlIHsgZm9yICh2YXIgaUNoYW5uZWwgPSAwOyBpQ2hhbm5lbCA8IGUub3V0cHV0QnVmZmVyLm51bWJlck9mQ2hhbm5lbHM7ICsraUNoYW5uZWwpIHsgZS5vdXRwdXRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoaUNoYW5uZWwpLmZpbGwoMC4wKTsgfSB9IH07IGlmIChkZXZpY2VUeXBlID09IHdpbmRvdy5taW5pYXVkaW8uZGV2aWNlX3R5cGUuY2FwdHVyZSB8fCBkZXZpY2VUeXBlID09IHdpbmRvdy5taW5pYXVkaW8uZGV2aWNlX3R5cGUuZHVwbGV4KSB7IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzpmYWxzZX0pIC50aGVuKGZ1bmN0aW9uKHN0cmVhbSkgeyBkZXZpY2Uuc3RyZWFtTm9kZSA9IGRldmljZS53ZWJhdWRpby5jcmVhdGVNZWRpYVN0cmVhbVNvdXJjZShzdHJlYW0pOyBkZXZpY2Uuc3RyZWFtTm9kZS5jb25uZWN0KGRldmljZS5zY3JpcHROb2RlKTsgZGV2aWNlLnNjcmlwdE5vZGUuY29ubmVjdChkZXZpY2Uud2ViYXVkaW8uZGVzdGluYXRpb24pOyB9KSAuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsgY29uc29sZS5sb2coIkZhaWxlZCB0byBnZXQgdXNlciBtZWRpYTogIiArIGVycm9yKTsgfSk7IH0gaWYgKGRldmljZVR5cGUgPT0gd2luZG93Lm1pbmlhdWRpby5kZXZpY2VfdHlwZS5wbGF5YmFjaykgeyBkZXZpY2Uuc2NyaXB0Tm9kZS5jb25uZWN0KGRldmljZS53ZWJhdWRpby5kZXN0aW5hdGlvbik7IH0gZGV2aWNlLnBEZXZpY2UgPSBwRGV2aWNlOyByZXR1cm4gd2luZG93Lm1pbmlhdWRpby50cmFja19kZXZpY2UoZGV2aWNlKTsgfQB7IHJldHVybiB3aW5kb3cubWluaWF1ZGlvLmdldF9kZXZpY2VfYnlfaW5kZXgoJDApLndlYmF1ZGlvLnNhbXBsZVJhdGU7IH0AeyB2YXIgZGV2aWNlID0gd2luZG93Lm1pbmlhdWRpby5nZXRfZGV2aWNlX2J5X2luZGV4KCQwKTsgaWYgKGRldmljZS5zY3JpcHROb2RlICE9PSB1bmRlZmluZWQpIHsgZGV2aWNlLnNjcmlwdE5vZGUub25hdWRpb3Byb2Nlc3MgPSBmdW5jdGlvbihlKSB7fTsgZGV2aWNlLnNjcmlwdE5vZGUuZGlzY29ubmVjdCgpOyBkZXZpY2Uuc2NyaXB0Tm9kZSA9IHVuZGVmaW5lZDsgfSBpZiAoZGV2aWNlLnN0cmVhbU5vZGUgIT09IHVuZGVmaW5lZCkgeyBkZXZpY2Uuc3RyZWFtTm9kZS5kaXNjb25uZWN0KCk7IGRldmljZS5zdHJlYW1Ob2RlID0gdW5kZWZpbmVkOyB9IGRldmljZS53ZWJhdWRpby5jbG9zZSgpOyBkZXZpY2Uud2ViYXVkaW8gPSB1bmRlZmluZWQ7IGRldmljZS5wRGV2aWNlID0gdW5kZWZpbmVkOyB9AHsgd2luZG93Lm1pbmlhdWRpby51bnRyYWNrX2RldmljZV9ieV9pbmRleCgkMCk7IH0AeyB2YXIgZGV2aWNlID0gd2luZG93Lm1pbmlhdWRpby5nZXRfZGV2aWNlX2J5X2luZGV4KCQwKTsgZGV2aWNlLndlYmF1ZGlvLnJlc3VtZSgpOyBkZXZpY2Uuc3RhdGUgPSB3aW5kb3cubWluaWF1ZGlvLmRldmljZV9zdGF0ZS5zdGFydGVkOyB9AHsgdmFyIGRldmljZSA9IHdpbmRvdy5taW5pYXVkaW8uZ2V0X2RldmljZV9ieV9pbmRleCgkMCk7IGRldmljZS53ZWJhdWRpby5zdXNwZW5kKCk7IGRldmljZS5zdGF0ZSA9IHdpbmRvdy5taW5pYXVkaW8uZGV2aWNlX3N0YXRlLnN0b3BwZWQ7IH0A";export{A as default}; diff --git a/apps/kimi-code/dist-web/assets/sankeyDiagram-HTMAVEWB-BHcMCK_w.js b/apps/kimi-code/dist-web/assets/sankeyDiagram-HTMAVEWB-BHcMCK_w.js deleted file mode 100644 index b2275616b..000000000 --- a/apps/kimi-code/dist-web/assets/sankeyDiagram-HTMAVEWB-BHcMCK_w.js +++ /dev/null @@ -1,40 +0,0 @@ -import{n as kt,o as mt,s as xt,g as _t,b as vt,a as bt,_ as y,c as ot,b8 as St,d as G,ad as wt,p as Lt,k as Et}from"./mermaid.core-CgZTgv7Y.js";import{o as At}from"./ordinal-Cboi1Yqb.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";import"./init-Gi6I4Gst.js";function Tt(t){for(var i=t.length/6|0,s=new Array(i),l=0;l=l)&&(s=l);else{let l=-1;for(let u of t)(u=i(u,++l,t))!=null&&(s=u)&&(s=u)}return s}function dt(t,i){let s;if(i===void 0)for(const l of t)l!=null&&(s>l||s===void 0&&l>=l)&&(s=l);else{let l=-1;for(let u of t)(u=i(u,++l,t))!=null&&(s>u||s===void 0&&u>=u)&&(s=u)}return s}function J(t,i){let s=0;if(i===void 0)for(let l of t)(l=+l)&&(s+=l);else{let l=-1;for(let u of t)(u=+i(u,++l,t))&&(s+=u)}return s}function Nt(t){return t.target.depth}function Ct(t){return t.depth}function Pt(t,i){return i-1-t.height}function gt(t,i){return t.sourceLinks.length?t.depth:i-1}function It(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?dt(t.sourceLinks,Nt)-1:0}function Y(t){return function(){return t}}function lt(t,i){return H(t.source,i.source)||t.index-i.index}function ct(t,i){return H(t.target,i.target)||t.index-i.index}function H(t,i){return t.y0-i.y0}function tt(t){return t.value}function Ot(t){return t.index}function $t(t){return t.nodes}function Dt(t){return t.links}function ut(t,i){const s=t.get(i);if(!s)throw new Error("missing: "+i);return s}function ht({nodes:t}){for(const i of t){let s=i.y0,l=s;for(const u of i.sourceLinks)u.y0=s+u.width/2,s+=u.width;for(const u of i.targetLinks)u.y1=l+u.width/2,l+=u.width}}function jt(){let t=0,i=0,s=1,l=1,u=24,x=8,g,k=Ot,o=gt,a,h,m=$t,_=Dt,d=6;function v(){const n={nodes:m.apply(null,arguments),links:_.apply(null,arguments)};return T(n),A(n),M(n),I(n),S(n),ht(n),n}v.update=function(n){return ht(n),n},v.nodeId=function(n){return arguments.length?(k=typeof n=="function"?n:Y(n),v):k},v.nodeAlign=function(n){return arguments.length?(o=typeof n=="function"?n:Y(n),v):o},v.nodeSort=function(n){return arguments.length?(a=n,v):a},v.nodeWidth=function(n){return arguments.length?(u=+n,v):u},v.nodePadding=function(n){return arguments.length?(x=g=+n,v):x},v.nodes=function(n){return arguments.length?(m=typeof n=="function"?n:Y(n),v):m},v.links=function(n){return arguments.length?(_=typeof n=="function"?n:Y(n),v):_},v.linkSort=function(n){return arguments.length?(h=n,v):h},v.size=function(n){return arguments.length?(t=i=0,s=+n[0],l=+n[1],v):[s-t,l-i]},v.extent=function(n){return arguments.length?(t=+n[0][0],s=+n[1][0],i=+n[0][1],l=+n[1][1],v):[[t,i],[s,l]]},v.iterations=function(n){return arguments.length?(d=+n,v):d};function T({nodes:n,links:f}){for(const[e,r]of n.entries())r.index=e,r.sourceLinks=[],r.targetLinks=[];const c=new Map(n.map((e,r)=>[k(e,r,n),e]));for(const[e,r]of f.entries()){r.index=e;let{source:p,target:b}=r;typeof p!="object"&&(p=r.source=ut(c,p)),typeof b!="object"&&(b=r.target=ut(c,b)),p.sourceLinks.push(r),b.targetLinks.push(r)}if(h!=null)for(const{sourceLinks:e,targetLinks:r}of n)e.sort(h),r.sort(h)}function A({nodes:n}){for(const f of n)f.value=f.fixedValue===void 0?Math.max(J(f.sourceLinks,tt),J(f.targetLinks,tt)):f.fixedValue}function M({nodes:n}){const f=n.length;let c=new Set(n),e=new Set,r=0;for(;c.size;){for(const p of c){p.depth=r;for(const{target:b}of p.sourceLinks)e.add(b)}if(++r>f)throw new Error("circular link");c=e,e=new Set}}function I({nodes:n}){const f=n.length;let c=new Set(n),e=new Set,r=0;for(;c.size;){for(const p of c){p.height=r;for(const{source:b}of p.targetLinks)e.add(b)}if(++r>f)throw new Error("circular link");c=e,e=new Set}}function N({nodes:n}){const f=at(n,r=>r.depth)+1,c=(s-t-u)/(f-1),e=new Array(f);for(const r of n){const p=Math.max(0,Math.min(f-1,Math.floor(o.call(null,r,f))));r.layer=p,r.x0=t+p*c,r.x1=r.x0+u,e[p]?e[p].push(r):e[p]=[r]}if(a)for(const r of e)r.sort(a);return e}function $(n){const f=dt(n,c=>(l-i-(c.length-1)*g)/J(c,tt));for(const c of n){let e=i;for(const r of c){r.y0=e,r.y1=e+r.value*f,e=r.y1+g;for(const p of r.sourceLinks)p.width=p.value*f}e=(l-e+g)/(c.length+1);for(let r=0;rc.length)-1)),$(f);for(let c=0;c0))continue;let V=(L/z-b.y0)*f;b.y0+=V,b.y1+=V,j(b)}a===void 0&&p.sort(H),D(p,c)}}function F(n,f,c){for(let e=n.length,r=e-2;r>=0;--r){const p=n[r];for(const b of p){let L=0,z=0;for(const{target:W,value:Z}of b.sourceLinks){let U=Z*(W.layer-b.layer);L+=E(b,W)*U,z+=U}if(!(z>0))continue;let V=(L/z-b.y0)*f;b.y0+=V,b.y1+=V,j(b)}a===void 0&&p.sort(H),D(p,c)}}function D(n,f){const c=n.length>>1,e=n[c];O(n,e.y0-g,c-1,f),R(n,e.y1+g,c+1,f),O(n,l,n.length-1,f),R(n,i,0,f)}function R(n,f,c,e){for(;c1e-6&&(r.y0+=p,r.y1+=p),f=r.y1+g}}function O(n,f,c,e){for(;c>=0;--c){const r=n[c],p=(r.y1-f)*e;p>1e-6&&(r.y0-=p,r.y1-=p),f=r.y0-g}}function j({sourceLinks:n,targetLinks:f}){if(h===void 0){for(const{source:{sourceLinks:c}}of f)c.sort(ct);for(const{target:{targetLinks:c}}of n)c.sort(lt)}}function w(n){if(h===void 0)for(const{sourceLinks:f,targetLinks:c}of n)f.sort(ct),c.sort(lt)}function P(n,f){let c=n.y0-(n.sourceLinks.length-1)*g/2;for(const{target:e,width:r}of n.sourceLinks){if(e===f)break;c+=r+g}for(const{source:e,width:r}of f.targetLinks){if(e===n)break;c-=r}return c}function E(n,f){let c=f.y0-(f.targetLinks.length-1)*g/2;for(const{source:e,width:r}of f.targetLinks){if(e===n)break;c+=r+g}for(const{target:e,width:r}of n.sourceLinks){if(e===f)break;c-=r}return c}return v}var et=Math.PI,nt=2*et,B=1e-6,zt=nt-B;function it(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function pt(){return new it}it.prototype=pt.prototype={constructor:it,moveTo:function(t,i){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+i)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,i){this._+="L"+(this._x1=+t)+","+(this._y1=+i)},quadraticCurveTo:function(t,i,s,l){this._+="Q"+ +t+","+ +i+","+(this._x1=+s)+","+(this._y1=+l)},bezierCurveTo:function(t,i,s,l,u,x){this._+="C"+ +t+","+ +i+","+ +s+","+ +l+","+(this._x1=+u)+","+(this._y1=+x)},arcTo:function(t,i,s,l,u){t=+t,i=+i,s=+s,l=+l,u=+u;var x=this._x1,g=this._y1,k=s-t,o=l-i,a=x-t,h=g-i,m=a*a+h*h;if(u<0)throw new Error("negative radius: "+u);if(this._x1===null)this._+="M"+(this._x1=t)+","+(this._y1=i);else if(m>B)if(!(Math.abs(h*k-o*a)>B)||!u)this._+="L"+(this._x1=t)+","+(this._y1=i);else{var _=s-x,d=l-g,v=k*k+o*o,T=_*_+d*d,A=Math.sqrt(v),M=Math.sqrt(m),I=u*Math.tan((et-Math.acos((v+m-T)/(2*A*M)))/2),N=I/M,$=I/A;Math.abs(N-1)>B&&(this._+="L"+(t+N*a)+","+(i+N*h)),this._+="A"+u+","+u+",0,0,"+ +(h*_>a*d)+","+(this._x1=t+$*k)+","+(this._y1=i+$*o)}},arc:function(t,i,s,l,u,x){t=+t,i=+i,s=+s,x=!!x;var g=s*Math.cos(l),k=s*Math.sin(l),o=t+g,a=i+k,h=1^x,m=x?l-u:u-l;if(s<0)throw new Error("negative radius: "+s);this._x1===null?this._+="M"+o+","+a:(Math.abs(this._x1-o)>B||Math.abs(this._y1-a)>B)&&(this._+="L"+o+","+a),s&&(m<0&&(m=m%nt+nt),m>zt?this._+="A"+s+","+s+",0,1,"+h+","+(t-g)+","+(i-k)+"A"+s+","+s+",0,1,"+h+","+(this._x1=o)+","+(this._y1=a):m>B&&(this._+="A"+s+","+s+",0,"+ +(m>=et)+","+h+","+(this._x1=t+s*Math.cos(u))+","+(this._y1=i+s*Math.sin(u))))},rect:function(t,i,s,l){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+i)+"h"+ +s+"v"+ +l+"h"+-s+"Z"},toString:function(){return this._}};function ft(t){return function(){return t}}function Bt(t){return t[0]}function Ft(t){return t[1]}var Rt=Array.prototype.slice;function Vt(t){return t.source}function Wt(t){return t.target}function Ut(t){var i=Vt,s=Wt,l=Bt,u=Ft,x=null;function g(){var k,o=Rt.call(arguments),a=i.apply(this,o),h=s.apply(this,o);if(x||(x=k=pt()),t(x,+l.apply(this,(o[0]=a,o)),+u.apply(this,o),+l.apply(this,(o[0]=h,o)),+u.apply(this,o)),k)return x=null,k+""||null}return g.source=function(k){return arguments.length?(i=k,g):i},g.target=function(k){return arguments.length?(s=k,g):s},g.x=function(k){return arguments.length?(l=typeof k=="function"?k:ft(+k),g):l},g.y=function(k){return arguments.length?(u=typeof k=="function"?k:ft(+k),g):u},g.context=function(k){return arguments.length?(x=k??null,g):x},g}function Gt(t,i,s,l,u){t.moveTo(i,s),t.bezierCurveTo(i=(i+l)/2,s,i,u,l,u)}function Yt(){return Ut(Gt)}function Ht(t){return[t.source.x1,t.y0]}function Xt(t){return[t.target.x0,t.y1]}function qt(){return Yt().source(Ht).target(Xt)}var rt=(function(){var t=y(function(k,o,a,h){for(a=a||{},h=k.length;h--;a[k[h]]=o);return a},"o"),i=[1,9],s=[1,10],l=[1,5,10,12],u={trace:y(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:y(function(o,a,h,m,_,d,v){var T=d.length-1;switch(_){case 7:const A=m.findOrCreateNode(d[T-4].trim().replaceAll('""','"')),M=m.findOrCreateNode(d[T-2].trim().replaceAll('""','"')),I=parseFloat(d[T].trim());m.addLink(A,M,I);break;case 8:case 9:case 11:this.$=d[T];break;case 10:this.$=d[T-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:i,20:s},{1:[2,6],7:11,10:[1,12]},t(s,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(l,[2,8]),t(l,[2,9]),{19:[1,16]},t(l,[2,11]),{1:[2,1]},{1:[2,5]},t(s,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:i,20:s},{15:18,16:7,17:8,18:i,20:s},{18:[1,19]},t(s,[2,3]),{12:[1,20]},t(l,[2,10]),{15:21,16:7,17:8,18:i,20:s},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:y(function(o,a){if(a.recoverable)this.trace(o);else{var h=new Error(o);throw h.hash=a,h}},"parseError"),parse:y(function(o){var a=this,h=[0],m=[],_=[null],d=[],v=this.table,T="",A=0,M=0,I=2,N=1,$=d.slice.call(arguments,1),S=Object.create(this.lexer),C={yy:{}};for(var F in this.yy)Object.prototype.hasOwnProperty.call(this.yy,F)&&(C.yy[F]=this.yy[F]);S.setInput(o,C.yy),C.yy.lexer=S,C.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var D=S.yylloc;d.push(D);var R=S.options&&S.options.ranges;typeof C.yy.parseError=="function"?this.parseError=C.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function O(L){h.length=h.length-2*L,_.length=_.length-L,d.length=d.length-L}y(O,"popStack");function j(){var L;return L=m.pop()||S.lex()||N,typeof L!="number"&&(L instanceof Array&&(m=L,L=m.pop()),L=a.symbols_[L]||L),L}y(j,"lex");for(var w,P,E,n,f={},c,e,r,p;;){if(P=h[h.length-1],this.defaultActions[P]?E=this.defaultActions[P]:((w===null||typeof w>"u")&&(w=j()),E=v[P]&&v[P][w]),typeof E>"u"||!E.length||!E[0]){var b="";p=[];for(c in v[P])this.terminals_[c]&&c>I&&p.push("'"+this.terminals_[c]+"'");S.showPosition?b="Parse error on line "+(A+1)+`: -`+S.showPosition()+` -Expecting `+p.join(", ")+", got '"+(this.terminals_[w]||w)+"'":b="Parse error on line "+(A+1)+": Unexpected "+(w==N?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(b,{text:S.match,token:this.terminals_[w]||w,line:S.yylineno,loc:D,expected:p})}if(E[0]instanceof Array&&E.length>1)throw new Error("Parse Error: multiple actions possible at state: "+P+", token: "+w);switch(E[0]){case 1:h.push(w),_.push(S.yytext),d.push(S.yylloc),h.push(E[1]),w=null,M=S.yyleng,T=S.yytext,A=S.yylineno,D=S.yylloc;break;case 2:if(e=this.productions_[E[1]][1],f.$=_[_.length-e],f._$={first_line:d[d.length-(e||1)].first_line,last_line:d[d.length-1].last_line,first_column:d[d.length-(e||1)].first_column,last_column:d[d.length-1].last_column},R&&(f._$.range=[d[d.length-(e||1)].range[0],d[d.length-1].range[1]]),n=this.performAction.apply(f,[T,M,A,C.yy,E[1],_,d].concat($)),typeof n<"u")return n;e&&(h=h.slice(0,-1*e*2),_=_.slice(0,-1*e),d=d.slice(0,-1*e)),h.push(this.productions_[E[1]][0]),_.push(f.$),d.push(f._$),r=v[h[h.length-2]][h[h.length-1]],h.push(r);break;case 3:return!0}}return!0},"parse")},x=(function(){var k={EOF:1,parseError:y(function(a,h){if(this.yy.parser)this.yy.parser.parseError(a,h);else throw new Error(a)},"parseError"),setInput:y(function(o,a){return this.yy=a||this.yy||{},this._input=o,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:y(function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var a=o.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},"input"),unput:y(function(o){var a=o.length,h=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var m=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),h.length-1&&(this.yylineno-=h.length-1);var _=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:h?(h.length===m.length?this.yylloc.first_column:0)+m[m.length-h.length].length-h[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[_[0],_[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},"unput"),more:y(function(){return this._more=!0,this},"more"),reject:y(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:y(function(o){this.unput(this.match.slice(o))},"less"),pastInput:y(function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:y(function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:y(function(){var o=this.pastInput(),a=new Array(o.length+1).join("-");return o+this.upcomingInput()+` -`+a+"^"},"showPosition"),test_match:y(function(o,a){var h,m,_;if(this.options.backtrack_lexer&&(_={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&&(_.yylloc.range=this.yylloc.range.slice(0))),m=o[0].match(/(?:\r\n?|\n).*/g),m&&(this.yylineno+=m.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:m?m[m.length-1].length-m[m.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,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(o[0].length),this.matched+=o[0],h=this.performAction.call(this,this.yy,this,a,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),h)return h;if(this._backtrack){for(var d in _)this[d]=_[d];return!1}return!1},"test_match"),next:y(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,a,h,m;this._more||(this.yytext="",this.match="");for(var _=this._currentRules(),d=0;d<_.length;d++)if(h=this._input.match(this.rules[_[d]]),h&&(!a||h[0].length>a[0].length)){if(a=h,m=d,this.options.backtrack_lexer){if(o=this.test_match(h,_[d]),o!==!1)return o;if(this._backtrack){a=!1;continue}else return!1}else if(!this.options.flex)break}return a?(o=this.test_match(a,_[m]),o!==!1?o:!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:y(function(){var a=this.next();return a||this.lex()},"lex"),begin:y(function(a){this.conditionStack.push(a)},"begin"),popState:y(function(){var a=this.conditionStack.length-1;return a>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:y(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:y(function(a){return a=this.conditionStack.length-1-Math.abs(a||0),a>=0?this.conditionStack[a]:"INITIAL"},"topState"),pushState:y(function(a){this.begin(a)},"pushState"),stateStackSize:y(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:y(function(a,h,m,_){switch(m){case 0:return this.pushState("csv"),4;case 1:return this.pushState("csv"),4;case 2:return 10;case 3:return 5;case 4:return 12;case 5:return this.pushState("escaped_text"),18;case 6:return 20;case 7:return this.popState("escaped_text"),18;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 k})();u.lexer=x;function g(){this.yy={}}return y(g,"Parser"),g.prototype=u,u.Parser=g,new g})();rt.parser=rt;var X=rt,Q=[],K=[],q=new Map,Qt=y(()=>{Q=[],K=[],q=new Map,Lt()},"clear"),Kt=class{constructor(t,i,s=0){this.source=t,this.target=i,this.value=s}static{y(this,"SankeyLink")}},Zt=y((t,i,s)=>{Q.push(new Kt(t,i,s))},"addLink"),Jt=class{constructor(t){this.ID=t}static{y(this,"SankeyNode")}},te=y(t=>{t=Et.sanitizeText(t,ot());let i=q.get(t);return i===void 0&&(i=new Jt(t),q.set(t,i),K.push(i)),i},"findOrCreateNode"),ee=y(()=>K,"getNodes"),ne=y(()=>Q,"getLinks"),ie=y(()=>({nodes:K.map(t=>({id:t.ID})),links:Q.map(t=>({source:t.source.ID,target:t.target.ID,value:t.value}))}),"getGraph"),re={nodesMap:q,getConfig:y(()=>ot().sankey,"getConfig"),getNodes:ee,getLinks:ne,getGraph:ie,addLink:Zt,findOrCreateNode:te,getAccTitle:bt,setAccTitle:vt,getAccDescription:_t,setAccDescription:xt,getDiagramTitle:mt,setDiagramTitle:kt,clear:Qt},yt=class st{static{y(this,"Uid")}static{this.count=0}static next(i){return new st(i+ ++st.count)}constructor(i){this.id=i,this.href=`#${i}`}toString(){return"url("+this.href+")"}},se={left:Ct,right:Pt,center:It,justify:gt},oe=y(t=>{let i=0,s=0;for(const l of t){const u=l.value??0;u>i&&(i=u,s=l.layer??0)}return s},"findCentralNodeLayer"),ae=y(function(t,i,s,l){const{securityLevel:u,sankey:x}=ot(),g=St.sankey;let k;u==="sandbox"&&(k=G("#i"+i));const o=u==="sandbox"?G(k.nodes()[0].contentDocument.body):G("body"),a=u==="sandbox"?o.select(`[id="${i}"]`):G(`[id="${i}"]`),h=x?.width??g.width,m=x?.height??g.width,_=x?.useMaxWidth??g.useMaxWidth,d=x?.nodeAlignment??g.nodeAlignment,v=x?.prefix??g.prefix,T=x?.suffix??g.suffix,A=x?.showValues??g.showValues,M=x?.nodeWidth??g.nodeWidth??10,I=x?.nodePadding??g.nodePadding??12,N=x?.labelStyle??g.labelStyle??"legacy",$=x?.nodeColors??{},S=l.db.getGraph(),C=se[d];jt().nodeId(e=>e.id).nodeWidth(M).nodePadding(I+(A?15:0)).nodeAlign(C).extent([[0,0],[h,m]])(S);const D=oe(S.nodes),R=At(Mt),O=y(e=>$[e]??R(e),"getNodeColor");a.append("g").attr("class","nodes").selectAll(".node").data(S.nodes).join("g").attr("class","node").attr("id",e=>(e.uid=yt.next("node-")).id).attr("transform",function(e){return"translate("+e.x0+","+e.y0+")"}).attr("x",e=>e.x0).attr("y",e=>e.y0).append("rect").attr("height",e=>e.y1-e.y0).attr("width",e=>e.x1-e.x0).attr("fill",e=>O(e.id));const j=y(({id:e,value:r})=>A?`${e} -${v}${Math.round(r*100)/100}${T}`:e,"getText"),w=y(e=>N==="outlined"?(e.layer??0)P.selectAll(e?`.${e}`:"text").data(S.nodes).join("text").attr("class",e??null).attr("x",r=>w(r).x).attr("y",r=>(r.y1+r.y0)/2).attr("dy",`${A?"0":"0.35"}em`).attr("text-anchor",r=>w(r).anchor).text(j),"appendLabel");N==="outlined"?(E("sankey-label-bg"),E("sankey-label-fg")):E();const n=a.append("g").attr("class","links").attr("fill","none").attr("stroke-opacity",.5).selectAll(".link").data(S.links).join("g").attr("class","link").style("mix-blend-mode","multiply"),f=x?.linkColor??"gradient";if(f==="gradient"){const e=n.append("linearGradient").attr("id",r=>(r.uid=yt.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",r=>r.source.x1).attr("x2",r=>r.target.x0);e.append("stop").attr("offset","0%").attr("stop-color",r=>O(r.source.id)),e.append("stop").attr("offset","100%").attr("stop-color",r=>O(r.target.id))}let c;switch(f){case"gradient":c=y(e=>e.uid,"coloring");break;case"source":c=y(e=>O(e.source.id),"coloring");break;case"target":c=y(e=>O(e.target.id),"coloring");break;default:c=f}n.append("path").attr("d",qt()).attr("stroke",c).attr("stroke-width",e=>Math.max(1,e.width)),wt(void 0,a,0,_)},"draw"),le={draw:ae},ce=y(t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` -`).trim(),"prepareTextForParsing"),ue=y(t=>`.label { - font-family: ${t.fontFamily}; - } - - .node-labels { - font-family: ${t.fontFamily}; - } - - /* Outlined label style - background stroke for better readability */ - .sankey-label-bg { - stroke: ${t.mainBkg||t.background||"#fff"}; - stroke-width: 4px; - stroke-linejoin: round; - paint-order: stroke; - } - - /* Foreground label text */ - .sankey-label-fg { - fill: ${t.textColor}; - } - - /* Node styling */ - .node rect { - shape-rendering: crispEdges; - } - - /* Link styling */ - .link { - fill: none; - stroke-opacity: 0.5; - mix-blend-mode: multiply; - } -`,"getStyles"),he=ue,fe=X.parse.bind(X);X.parse=t=>fe(ce(t));var me={styles:he,parser:X,db:re,renderer:le};export{me as diagram}; diff --git a/apps/kimi-code/dist-web/assets/sankeyDiagram-HTMAVEWB-Ee-air4w.js b/apps/kimi-code/dist-web/assets/sankeyDiagram-HTMAVEWB-Ee-air4w.js new file mode 100644 index 000000000..dc1d5e5cc --- /dev/null +++ b/apps/kimi-code/dist-web/assets/sankeyDiagram-HTMAVEWB-Ee-air4w.js @@ -0,0 +1,40 @@ +import{o as kt,p as mt,s as xt,g as _t,b as vt,a as bt,_ as y,c as ot,b9 as St,d as G,ad as wt,q as Lt,k as Et}from"./mermaid.core-B_UcP3X_.js";import{o as At}from"./ordinal-Cboi1Yqb.js";import"./index-BOtIzGLC.js";import"./init-Gi6I4Gst.js";function Tt(t){for(var i=t.length/6|0,s=new Array(i),l=0;l=l)&&(s=l);else{let l=-1;for(let u of t)(u=i(u,++l,t))!=null&&(s=u)&&(s=u)}return s}function dt(t,i){let s;if(i===void 0)for(const l of t)l!=null&&(s>l||s===void 0&&l>=l)&&(s=l);else{let l=-1;for(let u of t)(u=i(u,++l,t))!=null&&(s>u||s===void 0&&u>=u)&&(s=u)}return s}function J(t,i){let s=0;if(i===void 0)for(let l of t)(l=+l)&&(s+=l);else{let l=-1;for(let u of t)(u=+i(u,++l,t))&&(s+=u)}return s}function Nt(t){return t.target.depth}function Ct(t){return t.depth}function Pt(t,i){return i-1-t.height}function gt(t,i){return t.sourceLinks.length?t.depth:i-1}function It(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?dt(t.sourceLinks,Nt)-1:0}function Y(t){return function(){return t}}function lt(t,i){return q(t.source,i.source)||t.index-i.index}function ct(t,i){return q(t.target,i.target)||t.index-i.index}function q(t,i){return t.y0-i.y0}function tt(t){return t.value}function Ot(t){return t.index}function $t(t){return t.nodes}function Dt(t){return t.links}function ut(t,i){const s=t.get(i);if(!s)throw new Error("missing: "+i);return s}function ht({nodes:t}){for(const i of t){let s=i.y0,l=s;for(const u of i.sourceLinks)u.y0=s+u.width/2,s+=u.width;for(const u of i.targetLinks)u.y1=l+u.width/2,l+=u.width}}function jt(){let t=0,i=0,s=1,l=1,u=24,x=8,g,k=Ot,o=gt,a,h,m=$t,_=Dt,d=6;function v(){const n={nodes:m.apply(null,arguments),links:_.apply(null,arguments)};return T(n),A(n),M(n),I(n),S(n),ht(n),n}v.update=function(n){return ht(n),n},v.nodeId=function(n){return arguments.length?(k=typeof n=="function"?n:Y(n),v):k},v.nodeAlign=function(n){return arguments.length?(o=typeof n=="function"?n:Y(n),v):o},v.nodeSort=function(n){return arguments.length?(a=n,v):a},v.nodeWidth=function(n){return arguments.length?(u=+n,v):u},v.nodePadding=function(n){return arguments.length?(x=g=+n,v):x},v.nodes=function(n){return arguments.length?(m=typeof n=="function"?n:Y(n),v):m},v.links=function(n){return arguments.length?(_=typeof n=="function"?n:Y(n),v):_},v.linkSort=function(n){return arguments.length?(h=n,v):h},v.size=function(n){return arguments.length?(t=i=0,s=+n[0],l=+n[1],v):[s-t,l-i]},v.extent=function(n){return arguments.length?(t=+n[0][0],s=+n[1][0],i=+n[0][1],l=+n[1][1],v):[[t,i],[s,l]]},v.iterations=function(n){return arguments.length?(d=+n,v):d};function T({nodes:n,links:f}){for(const[e,r]of n.entries())r.index=e,r.sourceLinks=[],r.targetLinks=[];const c=new Map(n.map((e,r)=>[k(e,r,n),e]));for(const[e,r]of f.entries()){r.index=e;let{source:p,target:b}=r;typeof p!="object"&&(p=r.source=ut(c,p)),typeof b!="object"&&(b=r.target=ut(c,b)),p.sourceLinks.push(r),b.targetLinks.push(r)}if(h!=null)for(const{sourceLinks:e,targetLinks:r}of n)e.sort(h),r.sort(h)}function A({nodes:n}){for(const f of n)f.value=f.fixedValue===void 0?Math.max(J(f.sourceLinks,tt),J(f.targetLinks,tt)):f.fixedValue}function M({nodes:n}){const f=n.length;let c=new Set(n),e=new Set,r=0;for(;c.size;){for(const p of c){p.depth=r;for(const{target:b}of p.sourceLinks)e.add(b)}if(++r>f)throw new Error("circular link");c=e,e=new Set}}function I({nodes:n}){const f=n.length;let c=new Set(n),e=new Set,r=0;for(;c.size;){for(const p of c){p.height=r;for(const{source:b}of p.targetLinks)e.add(b)}if(++r>f)throw new Error("circular link");c=e,e=new Set}}function N({nodes:n}){const f=at(n,r=>r.depth)+1,c=(s-t-u)/(f-1),e=new Array(f);for(const r of n){const p=Math.max(0,Math.min(f-1,Math.floor(o.call(null,r,f))));r.layer=p,r.x0=t+p*c,r.x1=r.x0+u,e[p]?e[p].push(r):e[p]=[r]}if(a)for(const r of e)r.sort(a);return e}function $(n){const f=dt(n,c=>(l-i-(c.length-1)*g)/J(c,tt));for(const c of n){let e=i;for(const r of c){r.y0=e,r.y1=e+r.value*f,e=r.y1+g;for(const p of r.sourceLinks)p.width=p.value*f}e=(l-e+g)/(c.length+1);for(let r=0;rc.length)-1)),$(f);for(let c=0;c0))continue;let V=(L/z-b.y0)*f;b.y0+=V,b.y1+=V,j(b)}a===void 0&&p.sort(q),D(p,c)}}function F(n,f,c){for(let e=n.length,r=e-2;r>=0;--r){const p=n[r];for(const b of p){let L=0,z=0;for(const{target:W,value:Z}of b.sourceLinks){let U=Z*(W.layer-b.layer);L+=E(b,W)*U,z+=U}if(!(z>0))continue;let V=(L/z-b.y0)*f;b.y0+=V,b.y1+=V,j(b)}a===void 0&&p.sort(q),D(p,c)}}function D(n,f){const c=n.length>>1,e=n[c];O(n,e.y0-g,c-1,f),R(n,e.y1+g,c+1,f),O(n,l,n.length-1,f),R(n,i,0,f)}function R(n,f,c,e){for(;c1e-6&&(r.y0+=p,r.y1+=p),f=r.y1+g}}function O(n,f,c,e){for(;c>=0;--c){const r=n[c],p=(r.y1-f)*e;p>1e-6&&(r.y0-=p,r.y1-=p),f=r.y0-g}}function j({sourceLinks:n,targetLinks:f}){if(h===void 0){for(const{source:{sourceLinks:c}}of f)c.sort(ct);for(const{target:{targetLinks:c}}of n)c.sort(lt)}}function w(n){if(h===void 0)for(const{sourceLinks:f,targetLinks:c}of n)f.sort(ct),c.sort(lt)}function P(n,f){let c=n.y0-(n.sourceLinks.length-1)*g/2;for(const{target:e,width:r}of n.sourceLinks){if(e===f)break;c+=r+g}for(const{source:e,width:r}of f.targetLinks){if(e===n)break;c-=r}return c}function E(n,f){let c=f.y0-(f.targetLinks.length-1)*g/2;for(const{source:e,width:r}of f.targetLinks){if(e===n)break;c+=r+g}for(const{target:e,width:r}of n.sourceLinks){if(e===f)break;c-=r}return c}return v}var et=Math.PI,nt=2*et,B=1e-6,zt=nt-B;function it(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function pt(){return new it}it.prototype=pt.prototype={constructor:it,moveTo:function(t,i){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+i)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,i){this._+="L"+(this._x1=+t)+","+(this._y1=+i)},quadraticCurveTo:function(t,i,s,l){this._+="Q"+ +t+","+ +i+","+(this._x1=+s)+","+(this._y1=+l)},bezierCurveTo:function(t,i,s,l,u,x){this._+="C"+ +t+","+ +i+","+ +s+","+ +l+","+(this._x1=+u)+","+(this._y1=+x)},arcTo:function(t,i,s,l,u){t=+t,i=+i,s=+s,l=+l,u=+u;var x=this._x1,g=this._y1,k=s-t,o=l-i,a=x-t,h=g-i,m=a*a+h*h;if(u<0)throw new Error("negative radius: "+u);if(this._x1===null)this._+="M"+(this._x1=t)+","+(this._y1=i);else if(m>B)if(!(Math.abs(h*k-o*a)>B)||!u)this._+="L"+(this._x1=t)+","+(this._y1=i);else{var _=s-x,d=l-g,v=k*k+o*o,T=_*_+d*d,A=Math.sqrt(v),M=Math.sqrt(m),I=u*Math.tan((et-Math.acos((v+m-T)/(2*A*M)))/2),N=I/M,$=I/A;Math.abs(N-1)>B&&(this._+="L"+(t+N*a)+","+(i+N*h)),this._+="A"+u+","+u+",0,0,"+ +(h*_>a*d)+","+(this._x1=t+$*k)+","+(this._y1=i+$*o)}},arc:function(t,i,s,l,u,x){t=+t,i=+i,s=+s,x=!!x;var g=s*Math.cos(l),k=s*Math.sin(l),o=t+g,a=i+k,h=1^x,m=x?l-u:u-l;if(s<0)throw new Error("negative radius: "+s);this._x1===null?this._+="M"+o+","+a:(Math.abs(this._x1-o)>B||Math.abs(this._y1-a)>B)&&(this._+="L"+o+","+a),s&&(m<0&&(m=m%nt+nt),m>zt?this._+="A"+s+","+s+",0,1,"+h+","+(t-g)+","+(i-k)+"A"+s+","+s+",0,1,"+h+","+(this._x1=o)+","+(this._y1=a):m>B&&(this._+="A"+s+","+s+",0,"+ +(m>=et)+","+h+","+(this._x1=t+s*Math.cos(u))+","+(this._y1=i+s*Math.sin(u))))},rect:function(t,i,s,l){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+i)+"h"+ +s+"v"+ +l+"h"+-s+"Z"},toString:function(){return this._}};function ft(t){return function(){return t}}function Bt(t){return t[0]}function Ft(t){return t[1]}var Rt=Array.prototype.slice;function Vt(t){return t.source}function Wt(t){return t.target}function Ut(t){var i=Vt,s=Wt,l=Bt,u=Ft,x=null;function g(){var k,o=Rt.call(arguments),a=i.apply(this,o),h=s.apply(this,o);if(x||(x=k=pt()),t(x,+l.apply(this,(o[0]=a,o)),+u.apply(this,o),+l.apply(this,(o[0]=h,o)),+u.apply(this,o)),k)return x=null,k+""||null}return g.source=function(k){return arguments.length?(i=k,g):i},g.target=function(k){return arguments.length?(s=k,g):s},g.x=function(k){return arguments.length?(l=typeof k=="function"?k:ft(+k),g):l},g.y=function(k){return arguments.length?(u=typeof k=="function"?k:ft(+k),g):u},g.context=function(k){return arguments.length?(x=k??null,g):x},g}function Gt(t,i,s,l,u){t.moveTo(i,s),t.bezierCurveTo(i=(i+l)/2,s,i,u,l,u)}function Yt(){return Ut(Gt)}function qt(t){return[t.source.x1,t.y0]}function Ht(t){return[t.target.x0,t.y1]}function Xt(){return Yt().source(qt).target(Ht)}var rt=(function(){var t=y(function(k,o,a,h){for(a=a||{},h=k.length;h--;a[k[h]]=o);return a},"o"),i=[1,9],s=[1,10],l=[1,5,10,12],u={trace:y(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:y(function(o,a,h,m,_,d,v){var T=d.length-1;switch(_){case 7:const A=m.findOrCreateNode(d[T-4].trim().replaceAll('""','"')),M=m.findOrCreateNode(d[T-2].trim().replaceAll('""','"')),I=parseFloat(d[T].trim());m.addLink(A,M,I);break;case 8:case 9:case 11:this.$=d[T];break;case 10:this.$=d[T-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:i,20:s},{1:[2,6],7:11,10:[1,12]},t(s,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(l,[2,8]),t(l,[2,9]),{19:[1,16]},t(l,[2,11]),{1:[2,1]},{1:[2,5]},t(s,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:i,20:s},{15:18,16:7,17:8,18:i,20:s},{18:[1,19]},t(s,[2,3]),{12:[1,20]},t(l,[2,10]),{15:21,16:7,17:8,18:i,20:s},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:y(function(o,a){if(a.recoverable)this.trace(o);else{var h=new Error(o);throw h.hash=a,h}},"parseError"),parse:y(function(o){var a=this,h=[0],m=[],_=[null],d=[],v=this.table,T="",A=0,M=0,I=2,N=1,$=d.slice.call(arguments,1),S=Object.create(this.lexer),C={yy:{}};for(var F in this.yy)Object.prototype.hasOwnProperty.call(this.yy,F)&&(C.yy[F]=this.yy[F]);S.setInput(o,C.yy),C.yy.lexer=S,C.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var D=S.yylloc;d.push(D);var R=S.options&&S.options.ranges;typeof C.yy.parseError=="function"?this.parseError=C.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function O(L){h.length=h.length-2*L,_.length=_.length-L,d.length=d.length-L}y(O,"popStack");function j(){var L;return L=m.pop()||S.lex()||N,typeof L!="number"&&(L instanceof Array&&(m=L,L=m.pop()),L=a.symbols_[L]||L),L}y(j,"lex");for(var w,P,E,n,f={},c,e,r,p;;){if(P=h[h.length-1],this.defaultActions[P]?E=this.defaultActions[P]:((w===null||typeof w>"u")&&(w=j()),E=v[P]&&v[P][w]),typeof E>"u"||!E.length||!E[0]){var b="";p=[];for(c in v[P])this.terminals_[c]&&c>I&&p.push("'"+this.terminals_[c]+"'");S.showPosition?b="Parse error on line "+(A+1)+`: +`+S.showPosition()+` +Expecting `+p.join(", ")+", got '"+(this.terminals_[w]||w)+"'":b="Parse error on line "+(A+1)+": Unexpected "+(w==N?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(b,{text:S.match,token:this.terminals_[w]||w,line:S.yylineno,loc:D,expected:p})}if(E[0]instanceof Array&&E.length>1)throw new Error("Parse Error: multiple actions possible at state: "+P+", token: "+w);switch(E[0]){case 1:h.push(w),_.push(S.yytext),d.push(S.yylloc),h.push(E[1]),w=null,M=S.yyleng,T=S.yytext,A=S.yylineno,D=S.yylloc;break;case 2:if(e=this.productions_[E[1]][1],f.$=_[_.length-e],f._$={first_line:d[d.length-(e||1)].first_line,last_line:d[d.length-1].last_line,first_column:d[d.length-(e||1)].first_column,last_column:d[d.length-1].last_column},R&&(f._$.range=[d[d.length-(e||1)].range[0],d[d.length-1].range[1]]),n=this.performAction.apply(f,[T,M,A,C.yy,E[1],_,d].concat($)),typeof n<"u")return n;e&&(h=h.slice(0,-1*e*2),_=_.slice(0,-1*e),d=d.slice(0,-1*e)),h.push(this.productions_[E[1]][0]),_.push(f.$),d.push(f._$),r=v[h[h.length-2]][h[h.length-1]],h.push(r);break;case 3:return!0}}return!0},"parse")},x=(function(){var k={EOF:1,parseError:y(function(a,h){if(this.yy.parser)this.yy.parser.parseError(a,h);else throw new Error(a)},"parseError"),setInput:y(function(o,a){return this.yy=a||this.yy||{},this._input=o,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:y(function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var a=o.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},"input"),unput:y(function(o){var a=o.length,h=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var m=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),h.length-1&&(this.yylineno-=h.length-1);var _=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:h?(h.length===m.length?this.yylloc.first_column:0)+m[m.length-h.length].length-h[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[_[0],_[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},"unput"),more:y(function(){return this._more=!0,this},"more"),reject:y(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:y(function(o){this.unput(this.match.slice(o))},"less"),pastInput:y(function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:y(function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:y(function(){var o=this.pastInput(),a=new Array(o.length+1).join("-");return o+this.upcomingInput()+` +`+a+"^"},"showPosition"),test_match:y(function(o,a){var h,m,_;if(this.options.backtrack_lexer&&(_={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&&(_.yylloc.range=this.yylloc.range.slice(0))),m=o[0].match(/(?:\r\n?|\n).*/g),m&&(this.yylineno+=m.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:m?m[m.length-1].length-m[m.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+o[0].length},this.yytext+=o[0],this.match+=o[0],this.matches=o,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(o[0].length),this.matched+=o[0],h=this.performAction.call(this,this.yy,this,a,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),h)return h;if(this._backtrack){for(var d in _)this[d]=_[d];return!1}return!1},"test_match"),next:y(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var o,a,h,m;this._more||(this.yytext="",this.match="");for(var _=this._currentRules(),d=0;d<_.length;d++)if(h=this._input.match(this.rules[_[d]]),h&&(!a||h[0].length>a[0].length)){if(a=h,m=d,this.options.backtrack_lexer){if(o=this.test_match(h,_[d]),o!==!1)return o;if(this._backtrack){a=!1;continue}else return!1}else if(!this.options.flex)break}return a?(o=this.test_match(a,_[m]),o!==!1?o:!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:y(function(){var a=this.next();return a||this.lex()},"lex"),begin:y(function(a){this.conditionStack.push(a)},"begin"),popState:y(function(){var a=this.conditionStack.length-1;return a>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:y(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:y(function(a){return a=this.conditionStack.length-1-Math.abs(a||0),a>=0?this.conditionStack[a]:"INITIAL"},"topState"),pushState:y(function(a){this.begin(a)},"pushState"),stateStackSize:y(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:y(function(a,h,m,_){switch(m){case 0:return this.pushState("csv"),4;case 1:return this.pushState("csv"),4;case 2:return 10;case 3:return 5;case 4:return 12;case 5:return this.pushState("escaped_text"),18;case 6:return 20;case 7:return this.popState("escaped_text"),18;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 k})();u.lexer=x;function g(){this.yy={}}return y(g,"Parser"),g.prototype=u,u.Parser=g,new g})();rt.parser=rt;var H=rt,Q=[],K=[],X=new Map,Qt=y(()=>{Q=[],K=[],X=new Map,Lt()},"clear"),Kt=class{constructor(t,i,s=0){this.source=t,this.target=i,this.value=s}static{y(this,"SankeyLink")}},Zt=y((t,i,s)=>{Q.push(new Kt(t,i,s))},"addLink"),Jt=class{constructor(t){this.ID=t}static{y(this,"SankeyNode")}},te=y(t=>{t=Et.sanitizeText(t,ot());let i=X.get(t);return i===void 0&&(i=new Jt(t),X.set(t,i),K.push(i)),i},"findOrCreateNode"),ee=y(()=>K,"getNodes"),ne=y(()=>Q,"getLinks"),ie=y(()=>({nodes:K.map(t=>({id:t.ID})),links:Q.map(t=>({source:t.source.ID,target:t.target.ID,value:t.value}))}),"getGraph"),re={nodesMap:X,getConfig:y(()=>ot().sankey,"getConfig"),getNodes:ee,getLinks:ne,getGraph:ie,addLink:Zt,findOrCreateNode:te,getAccTitle:bt,setAccTitle:vt,getAccDescription:_t,setAccDescription:xt,getDiagramTitle:mt,setDiagramTitle:kt,clear:Qt},yt=class st{static{y(this,"Uid")}static{this.count=0}static next(i){return new st(i+ ++st.count)}constructor(i){this.id=i,this.href=`#${i}`}toString(){return"url("+this.href+")"}},se={left:Ct,right:Pt,center:It,justify:gt},oe=y(t=>{let i=0,s=0;for(const l of t){const u=l.value??0;u>i&&(i=u,s=l.layer??0)}return s},"findCentralNodeLayer"),ae=y(function(t,i,s,l){const{securityLevel:u,sankey:x}=ot(),g=St.sankey;let k;u==="sandbox"&&(k=G("#i"+i));const o=u==="sandbox"?G(k.nodes()[0].contentDocument.body):G("body"),a=u==="sandbox"?o.select(`[id="${i}"]`):G(`[id="${i}"]`),h=x?.width??g.width,m=x?.height??g.width,_=x?.useMaxWidth??g.useMaxWidth,d=x?.nodeAlignment??g.nodeAlignment,v=x?.prefix??g.prefix,T=x?.suffix??g.suffix,A=x?.showValues??g.showValues,M=x?.nodeWidth??g.nodeWidth??10,I=x?.nodePadding??g.nodePadding??12,N=x?.labelStyle??g.labelStyle??"legacy",$=x?.nodeColors??{},S=l.db.getGraph(),C=se[d];jt().nodeId(e=>e.id).nodeWidth(M).nodePadding(I+(A?15:0)).nodeAlign(C).extent([[0,0],[h,m]])(S);const D=oe(S.nodes),R=At(Mt),O=y(e=>$[e]??R(e),"getNodeColor");a.append("g").attr("class","nodes").selectAll(".node").data(S.nodes).join("g").attr("class","node").attr("id",e=>(e.uid=yt.next("node-")).id).attr("transform",function(e){return"translate("+e.x0+","+e.y0+")"}).attr("x",e=>e.x0).attr("y",e=>e.y0).append("rect").attr("height",e=>e.y1-e.y0).attr("width",e=>e.x1-e.x0).attr("fill",e=>O(e.id));const j=y(({id:e,value:r})=>A?`${e} +${v}${Math.round(r*100)/100}${T}`:e,"getText"),w=y(e=>N==="outlined"?(e.layer??0)P.selectAll(e?`.${e}`:"text").data(S.nodes).join("text").attr("class",e??null).attr("x",r=>w(r).x).attr("y",r=>(r.y1+r.y0)/2).attr("dy",`${A?"0":"0.35"}em`).attr("text-anchor",r=>w(r).anchor).text(j),"appendLabel");N==="outlined"?(E("sankey-label-bg"),E("sankey-label-fg")):E();const n=a.append("g").attr("class","links").attr("fill","none").attr("stroke-opacity",.5).selectAll(".link").data(S.links).join("g").attr("class","link").style("mix-blend-mode","multiply"),f=x?.linkColor??"gradient";if(f==="gradient"){const e=n.append("linearGradient").attr("id",r=>(r.uid=yt.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",r=>r.source.x1).attr("x2",r=>r.target.x0);e.append("stop").attr("offset","0%").attr("stop-color",r=>O(r.source.id)),e.append("stop").attr("offset","100%").attr("stop-color",r=>O(r.target.id))}let c;switch(f){case"gradient":c=y(e=>e.uid,"coloring");break;case"source":c=y(e=>O(e.source.id),"coloring");break;case"target":c=y(e=>O(e.target.id),"coloring");break;default:c=f}n.append("path").attr("d",Xt()).attr("stroke",c).attr("stroke-width",e=>Math.max(1,e.width)),wt(void 0,a,0,_)},"draw"),le={draw:ae},ce=y(t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` +`).trim(),"prepareTextForParsing"),ue=y(t=>`.label { + font-family: ${t.fontFamily}; + } + + .node-labels { + font-family: ${t.fontFamily}; + } + + /* Outlined label style - background stroke for better readability */ + .sankey-label-bg { + stroke: ${t.mainBkg||t.background||"#fff"}; + stroke-width: 4px; + stroke-linejoin: round; + paint-order: stroke; + } + + /* Foreground label text */ + .sankey-label-fg { + fill: ${t.textColor}; + } + + /* Node styling */ + .node rect { + shape-rendering: crispEdges; + } + + /* Link styling */ + .link { + fill: none; + stroke-opacity: 0.5; + mix-blend-mode: multiply; + } +`,"getStyles"),he=ue,fe=H.parse.bind(H);H.parse=t=>fe(ce(t));var ke={styles:he,parser:H,db:re,renderer:le};export{ke as diagram}; diff --git a/apps/kimi-code/dist-web/assets/sequenceDiagram-DBY2YBRQ-DyUTbMwM.js b/apps/kimi-code/dist-web/assets/sequenceDiagram-DBY2YBRQ-xl-Awek9.js similarity index 80% rename from apps/kimi-code/dist-web/assets/sequenceDiagram-DBY2YBRQ-DyUTbMwM.js rename to apps/kimi-code/dist-web/assets/sequenceDiagram-DBY2YBRQ-xl-Awek9.js index f83e0d42b..2a9329f4f 100644 --- a/apps/kimi-code/dist-web/assets/sequenceDiagram-DBY2YBRQ-DyUTbMwM.js +++ b/apps/kimi-code/dist-web/assets/sequenceDiagram-DBY2YBRQ-xl-Awek9.js @@ -1,4 +1,4 @@ -import{I as tr}from"./chunk-2Q5K7J3B-D8ifWrnI.js";import{_ as x,F as er,c as $,d as Vt,l as at,j as Ce,e as rr,f as ar,k as N,b as ke,s as sr,n as ir,a as nr,g as or,o as cr,G as lr,J as hr,p as dr,i as Yt,x as Z,H as Q,I as Pt,K as Me,Z as Tr,y as Kt,L as pr,M as Be}from"./mermaid.core-CgZTgv7Y.js";import{a as Er,b as ae,g as dt,d as ur,c as se,e as ie}from"./chunk-32BRIVSS-DpG03lEd.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var te=(function(){var e=x(function(ut,S,v,P){for(v=v||{},P=ut.length;P--;v[ut[P]]=S);return v},"o"),t=[1,2],a=[1,3],r=[1,4],i=[2,4],n=[1,9],s=[1,11],o=[1,12],u=[1,14],d=[1,15],p=[1,17],_=[1,18],E=[1,19],O=[1,25],T=[1,26],g=[1,27],f=[1,28],I=[1,29],L=[1,30],b=[1,31],w=[1,32],A=[1,33],D=[1,34],M=[1,35],V=[1,36],W=[1,37],U=[1,38],G=[1,39],X=[1,40],nt=[1,42],j=[1,43],q=[1,44],st=[1,45],tt=[1,46],Y=[1,47],C=[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],At=[1,74],kt=[1,80],m=[1,81],k=[1,82],lt=[1,83],et=[1,84],K=[1,85],Ot=[1,86],ne=[1,87],oe=[1,88],ce=[1,89],le=[1,90],he=[1,91],de=[1,92],Te=[1,93],pe=[1,94],Ee=[1,95],ue=[1,96],fe=[1,97],_e=[1,98],ge=[1,99],xe=[1,100],Ie=[1,101],ye=[1,102],Re=[1,103],Oe=[1,104],Le=[1,105],be=[2,78],St=[4,5,17,51,53,54],Dt=[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],me=[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],Ut=[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],Ae=[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],Gt=[5,52],F=[70,71,72,73],ot=[1,151],Xt={trace:x(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:x(function(S,v,P,y,z,c,wt){var h=c.length-1;switch(z){case 3:return y.apply(c[h]),c[h];case 4:case 10:this.$=[];break;case 5:case 11:c[h-1].push(c[h]),this.$=c[h-1];break;case 6:case 7:case 12:case 13:this.$=c[h];break;case 8:case 9:case 14:this.$=[];break;case 16:c[h].type="createParticipant",this.$=c[h];break;case 17:c[h-1].unshift({type:"boxStart",boxData:y.parseBoxData(c[h-2])}),c[h-1].push({type:"boxEnd",boxText:c[h-2]}),this.$=c[h-1];break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(c[h-2]),sequenceIndexStep:Number(c[h-1]),sequenceVisible:!0,signalType:y.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceIndex:Number(c[h-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:y.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:y.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:y.LINETYPE.AUTONUMBER};break;case 23:this.$={type:"activeStart",signalType:y.LINETYPE.ACTIVE_START,actor:c[h-1].actor};break;case 24:this.$={type:"activeEnd",signalType:y.LINETYPE.ACTIVE_END,actor:c[h-1].actor};break;case 30:y.setDiagramTitle(c[h].substring(6)),this.$=c[h].substring(6);break;case 31:y.setDiagramTitle(c[h].substring(7)),this.$=c[h].substring(7);break;case 32:this.$=c[h].trim(),y.setAccTitle(this.$);break;case 33:case 34:this.$=c[h].trim(),y.setAccDescription(this.$);break;case 35:c[h-1].unshift({type:"loopStart",loopText:y.parseMessage(c[h-2]),signalType:y.LINETYPE.LOOP_START}),c[h-1].push({type:"loopEnd",loopText:c[h-2],signalType:y.LINETYPE.LOOP_END}),this.$=c[h-1];break;case 36:c[h-1].unshift({type:"rectStart",color:y.parseMessage(c[h-2]),signalType:y.LINETYPE.RECT_START}),c[h-1].push({type:"rectEnd",color:y.parseMessage(c[h-2]),signalType:y.LINETYPE.RECT_END}),this.$=c[h-1];break;case 37:c[h-1].unshift({type:"optStart",optText:y.parseMessage(c[h-2]),signalType:y.LINETYPE.OPT_START}),c[h-1].push({type:"optEnd",optText:y.parseMessage(c[h-2]),signalType:y.LINETYPE.OPT_END}),this.$=c[h-1];break;case 38:c[h-1].unshift({type:"altStart",altText:y.parseMessage(c[h-2]),signalType:y.LINETYPE.ALT_START}),c[h-1].push({type:"altEnd",signalType:y.LINETYPE.ALT_END}),this.$=c[h-1];break;case 39:c[h-1].unshift({type:"parStart",parText:y.parseMessage(c[h-2]),signalType:y.LINETYPE.PAR_START}),c[h-1].push({type:"parEnd",signalType:y.LINETYPE.PAR_END}),this.$=c[h-1];break;case 40:c[h-1].unshift({type:"parStart",parText:y.parseMessage(c[h-2]),signalType:y.LINETYPE.PAR_OVER_START}),c[h-1].push({type:"parEnd",signalType:y.LINETYPE.PAR_END}),this.$=c[h-1];break;case 41:c[h-1].unshift({type:"criticalStart",criticalText:y.parseMessage(c[h-2]),signalType:y.LINETYPE.CRITICAL_START}),c[h-1].push({type:"criticalEnd",signalType:y.LINETYPE.CRITICAL_END}),this.$=c[h-1];break;case 42:c[h-1].unshift({type:"breakStart",breakText:y.parseMessage(c[h-2]),signalType:y.LINETYPE.BREAK_START}),c[h-1].push({type:"breakEnd",optText:y.parseMessage(c[h-2]),signalType:y.LINETYPE.BREAK_END}),this.$=c[h-1];break;case 44:this.$=c[h-3].concat([{type:"option",optionText:y.parseMessage(c[h-1]),signalType:y.LINETYPE.CRITICAL_OPTION},c[h]]);break;case 46:this.$=c[h-3].concat([{type:"and",parText:y.parseMessage(c[h-1]),signalType:y.LINETYPE.PAR_AND},c[h]]);break;case 48:this.$=c[h-3].concat([{type:"else",altText:y.parseMessage(c[h-1]),signalType:y.LINETYPE.ALT_ELSE},c[h]]);break;case 49:c[h-3].draw="participant",c[h-3].type="addParticipant",c[h-3].description=y.parseMessage(c[h-1]),this.$=c[h-3];break;case 50:c[h-1].draw="participant",c[h-1].type="addParticipant",this.$=c[h-1];break;case 51:c[h-3].draw="actor",c[h-3].type="addParticipant",c[h-3].description=y.parseMessage(c[h-1]),this.$=c[h-3];break;case 52:case 57:c[h-1].draw="actor",c[h-1].type="addParticipant",this.$=c[h-1];break;case 53:c[h-1].type="destroyParticipant",this.$=c[h-1];break;case 54:c[h-3].draw="participant",c[h-3].type="addParticipant",c[h-3].description=y.parseMessage(c[h-1]),this.$=c[h-3];break;case 55:c[h-1].draw="participant",c[h-1].type="addParticipant",this.$=c[h-1];break;case 56:c[h-3].draw="actor",c[h-3].type="addParticipant",c[h-3].description=y.parseMessage(c[h-1]),this.$=c[h-3];break;case 58:this.$=[c[h-1],{type:"addNote",placement:c[h-2],actor:c[h-1].actor,text:c[h]}];break;case 59:c[h-2]=[].concat(c[h-1],c[h-1]).slice(0,2),c[h-2][0]=c[h-2][0].actor,c[h-2][1]=c[h-2][1].actor,this.$=[c[h-1],{type:"addNote",placement:y.PLACEMENT.OVER,actor:c[h-2].slice(0,2),text:c[h]}];break;case 60:this.$=[c[h-1],{type:"addLinks",actor:c[h-1].actor,text:c[h]}];break;case 61:this.$=[c[h-1],{type:"addALink",actor:c[h-1].actor,text:c[h]}];break;case 62:this.$=[c[h-1],{type:"addProperties",actor:c[h-1].actor,text:c[h]}];break;case 63:this.$=[c[h-1],{type:"addDetails",actor:c[h-1].actor,text:c[h]}];break;case 66:this.$=[c[h-2],c[h]];break;case 67:this.$=c[h];break;case 68:this.$=y.PLACEMENT.LEFTOF;break;case 69:this.$=y.PLACEMENT.RIGHTOF;break;case 70:this.$=[c[h-4],c[h-1],{type:"addMessage",from:c[h-4].actor,to:c[h-1].actor,signalType:c[h-3],msg:c[h],activate:!0},{type:"activeStart",signalType:y.LINETYPE.ACTIVE_START,actor:c[h-1].actor}];break;case 71:this.$=[c[h-4],c[h-1],{type:"addMessage",from:c[h-4].actor,to:c[h-1].actor,signalType:c[h-3],msg:c[h]},{type:"activeEnd",signalType:y.LINETYPE.ACTIVE_END,actor:c[h-4].actor}];break;case 72:this.$=[c[h-4],c[h-1],{type:"addMessage",from:c[h-4].actor,to:c[h-1].actor,signalType:c[h-3],msg:c[h],activate:!0,centralConnection:y.LINETYPE.CENTRAL_CONNECTION},{type:"centralConnection",signalType:y.LINETYPE.CENTRAL_CONNECTION,actor:c[h-1].actor}];break;case 73:this.$=[c[h-4],c[h-1],{type:"addMessage",from:c[h-4].actor,to:c[h-1].actor,signalType:c[h-2],msg:c[h],activate:!1,centralConnection:y.LINETYPE.CENTRAL_CONNECTION_REVERSE},{type:"centralConnectionReverse",signalType:y.LINETYPE.CENTRAL_CONNECTION_REVERSE,actor:c[h-4].actor}];break;case 74:this.$=[c[h-5],c[h-1],{type:"addMessage",from:c[h-5].actor,to:c[h-1].actor,signalType:c[h-3],msg:c[h],activate:!0,centralConnection:y.LINETYPE.CENTRAL_CONNECTION_DUAL},{type:"centralConnection",signalType:y.LINETYPE.CENTRAL_CONNECTION,actor:c[h-1].actor},{type:"centralConnectionReverse",signalType:y.LINETYPE.CENTRAL_CONNECTION_REVERSE,actor:c[h-5].actor}];break;case 75:this.$=[c[h-3],c[h-1],{type:"addMessage",from:c[h-3].actor,to:c[h-1].actor,signalType:c[h-2],msg:c[h]}];break;case 76:this.$={type:"addParticipant",actor:c[h-1],config:c[h]};break;case 77:this.$=c[h-1].trim();break;case 78:this.$={type:"addParticipant",actor:c[h]};break;case 79:this.$=y.LINETYPE.SOLID_OPEN;break;case 80:this.$=y.LINETYPE.DOTTED_OPEN;break;case 81:this.$=y.LINETYPE.SOLID;break;case 82:this.$=y.LINETYPE.SOLID_TOP;break;case 83:this.$=y.LINETYPE.SOLID_BOTTOM;break;case 84:this.$=y.LINETYPE.STICK_TOP;break;case 85:this.$=y.LINETYPE.STICK_BOTTOM;break;case 86:this.$=y.LINETYPE.SOLID_TOP_DOTTED;break;case 87:this.$=y.LINETYPE.SOLID_BOTTOM_DOTTED;break;case 88:this.$=y.LINETYPE.STICK_TOP_DOTTED;break;case 89:this.$=y.LINETYPE.STICK_BOTTOM_DOTTED;break;case 90:this.$=y.LINETYPE.SOLID_ARROW_TOP_REVERSE;break;case 91:this.$=y.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE;break;case 92:this.$=y.LINETYPE.STICK_ARROW_TOP_REVERSE;break;case 93:this.$=y.LINETYPE.STICK_ARROW_BOTTOM_REVERSE;break;case 94:this.$=y.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED;break;case 95:this.$=y.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED;break;case 96:this.$=y.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED;break;case 97:this.$=y.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED;break;case 98:this.$=y.LINETYPE.BIDIRECTIONAL_SOLID;break;case 99:this.$=y.LINETYPE.DOTTED;break;case 100:this.$=y.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 101:this.$=y.LINETYPE.SOLID_CROSS;break;case 102:this.$=y.LINETYPE.DOTTED_CROSS;break;case 103:this.$=y.LINETYPE.SOLID_POINT;break;case 104:this.$=y.LINETYPE.DOTTED_POINT;break;case 105:this.$=y.parseMessage(c[h].trim().substring(1));break}},"anonymous"),table:[{3:1,4:t,5:a,6:r},{1:[3]},{3:5,4:t,5:a,6:r},{3:6,4:t,5:a,6:r},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],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:n,5:s,8:8,9:10,10:o,13:13,14:u,15:d,18:16,19:p,22:_,23:41,24:E,25:20,26:21,27:22,28:23,29:24,30:O,31:T,32:g,34:f,36:I,37:L,38:b,39:w,40:A,42:D,44:M,45:V,47:W,51:U,53:G,54:X,56:nt,61:j,62:q,63:st,64:tt,73:Y},e(C,[2,5]),{9:48,13:13,14:u,15:d,18:16,19:p,22:_,23:41,24:E,25:20,26:21,27:22,28:23,29:24,30:O,31:T,32:g,34:f,36:I,37:L,38:b,39:w,40:A,42:D,44:M,45:V,47:W,51:U,53:G,54:X,56:nt,61:j,62:q,63:st,64:tt,73:Y},e(C,[2,7]),e(C,[2,8]),e(C,[2,9]),e(C,[2,15]),{13:49,51:U,53:G,54:X},{16:[1,50]},{5:[1,51]},{5:[1,54],20:[1,52],21:[1,53]},{23:55,73:Y},{23:56,73:Y},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},{5:[1,61]},e(C,[2,30]),e(C,[2,31]),{33:[1,62]},{35:[1,63]},e(C,[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:At},{23:75,55:76,73:At},{23:77,73:Y},{69:78,72:[1,79],78:kt,79:m,80:k,81:lt,82:et,83:K,84:Ot,85:ne,86:oe,87:ce,88:le,89:he,90:de,91:Te,92:pe,93:Ee,94:ue,95:fe,96:_e,97:ge,98:xe,99:Ie,100:ye,101:Re,102:Oe,103:Le},{57:106,59:[1,107],67:[1,108],68:[1,109]},{23:110,73:Y},{23:111,73:Y},{23:112,73:Y},{23:113,73:Y},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],be),e(C,[2,6]),e(C,[2,16]),e(St,[2,10],{11:114}),e(C,[2,18]),{5:[1,116],20:[1,115]},{5:[1,117]},e(C,[2,22]),{5:[1,118]},{5:[1,119]},e(C,[2,25]),e(C,[2,26]),e(C,[2,27]),e(C,[2,28]),e(C,[2,29]),e(C,[2,32]),e(C,[2,33]),e(Dt,i,{7:120}),e(Dt,i,{7:121}),e(Dt,i,{7:122}),e(me,i,{41:123,7:124}),e(Ut,i,{43:125,7:126}),e(Ut,i,{7:126,43:127}),e(Ae,i,{46:128,7:129}),e(Dt,i,{7:130}),{5:[1,132],52:[1,131]},{5:[1,134],52:[1,133]},e(Gt,be,{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:Y},{69:146,78:kt,79:m,80:k,81:lt,82:et,83:K,84:Ot,85:ne,86:oe,87:ce,88:le,89:he,90:de,91:Te,92:pe,93:Ee,94:ue,95:fe,96:_e,97:ge,98:xe,99:Ie,100:ye,101:Re,102:Oe,103:Le},e(F,[2,79]),e(F,[2,80]),e(F,[2,81]),e(F,[2,82]),e(F,[2,83]),e(F,[2,84]),e(F,[2,85]),e(F,[2,86]),e(F,[2,87]),e(F,[2,88]),e(F,[2,89]),e(F,[2,90]),e(F,[2,91]),e(F,[2,92]),e(F,[2,93]),e(F,[2,94]),e(F,[2,95]),e(F,[2,96]),e(F,[2,97]),e(F,[2,98]),e(F,[2,99]),e(F,[2,100]),e(F,[2,101]),e(F,[2,102]),e(F,[2,103]),e(F,[2,104]),{23:147,73:Y},{23:149,60:148,73:Y},{73:[2,68]},{73:[2,69]},{58:150,104:ot},{58:152,104:ot},{58:153,104:ot},{58:154,104:ot},{4:[1,157],5:[1,159],12:156,13:158,17:[1,155],51:U,53:G,54:X},{5:[1,160]},e(C,[2,20]),e(C,[2,21]),e(C,[2,23]),e(C,[2,24]),{4:n,5:s,8:8,9:10,10:o,13:13,14:u,15:d,17:[1,161],18:16,19:p,22:_,23:41,24:E,25:20,26:21,27:22,28:23,29:24,30:O,31:T,32:g,34:f,36:I,37:L,38:b,39:w,40:A,42:D,44:M,45:V,47:W,51:U,53:G,54:X,56:nt,61:j,62:q,63:st,64:tt,73:Y},{4:n,5:s,8:8,9:10,10:o,13:13,14:u,15:d,17:[1,162],18:16,19:p,22:_,23:41,24:E,25:20,26:21,27:22,28:23,29:24,30:O,31:T,32:g,34:f,36:I,37:L,38:b,39:w,40:A,42:D,44:M,45:V,47:W,51:U,53:G,54:X,56:nt,61:j,62:q,63:st,64:tt,73:Y},{4:n,5:s,8:8,9:10,10:o,13:13,14:u,15:d,17:[1,163],18:16,19:p,22:_,23:41,24:E,25:20,26:21,27:22,28:23,29:24,30:O,31:T,32:g,34:f,36:I,37:L,38:b,39:w,40:A,42:D,44:M,45:V,47:W,51:U,53:G,54:X,56:nt,61:j,62:q,63:st,64:tt,73:Y},{17:[1,164]},{4:n,5:s,8:8,9:10,10:o,13:13,14:u,15:d,17:[2,47],18:16,19:p,22:_,23:41,24:E,25:20,26:21,27:22,28:23,29:24,30:O,31:T,32:g,34:f,36:I,37:L,38:b,39:w,40:A,42:D,44:M,45:V,47:W,50:[1,165],51:U,53:G,54:X,56:nt,61:j,62:q,63:st,64:tt,73:Y},{17:[1,166]},{4:n,5:s,8:8,9:10,10:o,13:13,14:u,15:d,17:[2,45],18:16,19:p,22:_,23:41,24:E,25:20,26:21,27:22,28:23,29:24,30:O,31:T,32:g,34:f,36:I,37:L,38:b,39:w,40:A,42:D,44:M,45:V,47:W,49:[1,167],51:U,53:G,54:X,56:nt,61:j,62:q,63:st,64:tt,73:Y},{17:[1,168]},{17:[1,169]},{4:n,5:s,8:8,9:10,10:o,13:13,14:u,15:d,17:[2,43],18:16,19:p,22:_,23:41,24:E,25:20,26:21,27:22,28:23,29:24,30:O,31:T,32:g,34:f,36:I,37:L,38:b,39:w,40:A,42:D,44:M,45:V,47:W,48:[1,170],51:U,53:G,54:X,56:nt,61:j,62:q,63:st,64:tt,73:Y},{4:n,5:s,8:8,9:10,10:o,13:13,14:u,15:d,17:[1,171],18:16,19:p,22:_,23:41,24:E,25:20,26:21,27:22,28:23,29:24,30:O,31:T,32:g,34:f,36:I,37:L,38:b,39:w,40:A,42:D,44:M,45:V,47:W,51:U,53:G,54:X,56:nt,61:j,62:q,63:st,64:tt,73:Y},{16:[1,172]},e(C,[2,50]),{16:[1,173]},e(C,[2,55]),e(Gt,[2,76]),{76:[1,174]},{16:[1,175]},e(C,[2,52]),{16:[1,176]},e(C,[2,57]),e(C,[2,53]),{23:177,73:Y},{23:178,73:Y},{23:179,73:Y},{58:180,104:ot},{23:181,72:[1,182],73:Y},{58:183,104:ot},{58:184,104:ot},{66:[1,185],104:[2,67]},{5:[2,60]},{5:[2,105]},{5:[2,61]},{5:[2,62]},{5:[2,63]},e(C,[2,17]),e(St,[2,11]),{13:186,51:U,53:G,54:X},e(St,[2,13]),e(St,[2,14]),e(C,[2,19]),e(C,[2,35]),e(C,[2,36]),e(C,[2,37]),e(C,[2,38]),{16:[1,187]},e(C,[2,39]),{16:[1,188]},e(C,[2,40]),e(C,[2,41]),{16:[1,189]},e(C,[2,42]),{5:[1,190]},{5:[1,191]},{77:[1,192]},{5:[1,193]},{5:[1,194]},{58:195,104:ot},{58:196,104:ot},{58:197,104:ot},{5:[2,75]},{58:198,104:ot},{23:199,73:Y},{5:[2,58]},{5:[2,59]},{23:200,73:Y},e(St,[2,12]),e(me,i,{7:124,41:201}),e(Ut,i,{7:126,43:202}),e(Ae,i,{7:129,46:203}),e(C,[2,49]),e(C,[2,54]),e(Gt,[2,77]),e(C,[2,51]),e(C,[2,56]),{5:[2,70]},{5:[2,71]},{5:[2,72]},{5:[2,73]},{58:204,104:ot},{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:x(function(S,v){if(v.recoverable)this.trace(S);else{var P=new Error(S);throw P.hash=v,P}},"parseError"),parse:x(function(S){var v=this,P=[0],y=[],z=[null],c=[],wt=this.table,h="",Ct=0,Se=0,Ze=2,we=1,Qe=c.slice.call(arguments,1),J=Object.create(this.lexer),gt={yy:{}};for(var Jt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Jt)&&(gt.yy[Jt]=this.yy[Jt]);J.setInput(S,gt.yy),gt.yy.lexer=J,gt.yy.parser=this,typeof J.yylloc>"u"&&(J.yylloc={});var Zt=J.yylloc;c.push(Zt);var $e=J.options&&J.options.ranges;typeof gt.yy.parseError=="function"?this.parseError=gt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function je(it){P.length=P.length-2*it,z.length=z.length-it,c.length=c.length-it}x(je,"popStack");function Ne(){var it;return it=y.pop()||J.lex()||we,typeof it!="number"&&(it instanceof Array&&(y=it,it=y.pop()),it=v.symbols_[it]||it),it}x(Ne,"lex");for(var rt,xt,ct,Qt,Lt={},Mt,Tt,Pe,Bt;;){if(xt=P[P.length-1],this.defaultActions[xt]?ct=this.defaultActions[xt]:((rt===null||typeof rt>"u")&&(rt=Ne()),ct=wt[xt]&&wt[xt][rt]),typeof ct>"u"||!ct.length||!ct[0]){var $t="";Bt=[];for(Mt in wt[xt])this.terminals_[Mt]&&Mt>Ze&&Bt.push("'"+this.terminals_[Mt]+"'");J.showPosition?$t="Parse error on line "+(Ct+1)+`: +import{I as tr}from"./chunk-2Q5K7J3B-CMIj8h4B.js";import{_ as x,X as er,c as $,d as Vt,l as at,j as Ce,e as rr,f as ar,k as N,b as ke,s as sr,o as ir,a as nr,g as or,p as cr,Y as lr,Z as hr,q as dr,i as Yt,y as Z,$ as Q,a0 as Pt,a1 as Me,a2 as Tr,z as Kt,a3 as pr,a4 as Be}from"./mermaid.core-B_UcP3X_.js";import{a as Er,b as ae,g as dt,d as ur,c as se,e as ie}from"./chunk-32BRIVSS-D_mpvupa.js";import"./index-BOtIzGLC.js";var te=(function(){var e=x(function(ut,S,v,P){for(v=v||{},P=ut.length;P--;v[ut[P]]=S);return v},"o"),t=[1,2],a=[1,3],r=[1,4],i=[2,4],n=[1,9],s=[1,11],o=[1,12],u=[1,14],d=[1,15],p=[1,17],_=[1,18],E=[1,19],O=[1,25],T=[1,26],g=[1,27],f=[1,28],I=[1,29],L=[1,30],b=[1,31],w=[1,32],A=[1,33],D=[1,34],M=[1,35],V=[1,36],W=[1,37],U=[1,38],G=[1,39],X=[1,40],nt=[1,42],j=[1,43],H=[1,44],st=[1,45],tt=[1,46],Y=[1,47],C=[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],At=[1,74],kt=[1,80],m=[1,81],k=[1,82],lt=[1,83],et=[1,84],K=[1,85],Ot=[1,86],ne=[1,87],oe=[1,88],ce=[1,89],le=[1,90],he=[1,91],de=[1,92],Te=[1,93],pe=[1,94],Ee=[1,95],ue=[1,96],fe=[1,97],_e=[1,98],ge=[1,99],xe=[1,100],Ie=[1,101],ye=[1,102],Re=[1,103],Oe=[1,104],Le=[1,105],be=[2,78],St=[4,5,17,51,53,54],Dt=[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],me=[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],Ut=[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],Ae=[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],Gt=[5,52],F=[70,71,72,73],ot=[1,151],Xt={trace:x(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:x(function(S,v,P,y,z,c,wt){var h=c.length-1;switch(z){case 3:return y.apply(c[h]),c[h];case 4:case 10:this.$=[];break;case 5:case 11:c[h-1].push(c[h]),this.$=c[h-1];break;case 6:case 7:case 12:case 13:this.$=c[h];break;case 8:case 9:case 14:this.$=[];break;case 16:c[h].type="createParticipant",this.$=c[h];break;case 17:c[h-1].unshift({type:"boxStart",boxData:y.parseBoxData(c[h-2])}),c[h-1].push({type:"boxEnd",boxText:c[h-2]}),this.$=c[h-1];break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(c[h-2]),sequenceIndexStep:Number(c[h-1]),sequenceVisible:!0,signalType:y.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceIndex:Number(c[h-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:y.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:y.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:y.LINETYPE.AUTONUMBER};break;case 23:this.$={type:"activeStart",signalType:y.LINETYPE.ACTIVE_START,actor:c[h-1].actor};break;case 24:this.$={type:"activeEnd",signalType:y.LINETYPE.ACTIVE_END,actor:c[h-1].actor};break;case 30:y.setDiagramTitle(c[h].substring(6)),this.$=c[h].substring(6);break;case 31:y.setDiagramTitle(c[h].substring(7)),this.$=c[h].substring(7);break;case 32:this.$=c[h].trim(),y.setAccTitle(this.$);break;case 33:case 34:this.$=c[h].trim(),y.setAccDescription(this.$);break;case 35:c[h-1].unshift({type:"loopStart",loopText:y.parseMessage(c[h-2]),signalType:y.LINETYPE.LOOP_START}),c[h-1].push({type:"loopEnd",loopText:c[h-2],signalType:y.LINETYPE.LOOP_END}),this.$=c[h-1];break;case 36:c[h-1].unshift({type:"rectStart",color:y.parseMessage(c[h-2]),signalType:y.LINETYPE.RECT_START}),c[h-1].push({type:"rectEnd",color:y.parseMessage(c[h-2]),signalType:y.LINETYPE.RECT_END}),this.$=c[h-1];break;case 37:c[h-1].unshift({type:"optStart",optText:y.parseMessage(c[h-2]),signalType:y.LINETYPE.OPT_START}),c[h-1].push({type:"optEnd",optText:y.parseMessage(c[h-2]),signalType:y.LINETYPE.OPT_END}),this.$=c[h-1];break;case 38:c[h-1].unshift({type:"altStart",altText:y.parseMessage(c[h-2]),signalType:y.LINETYPE.ALT_START}),c[h-1].push({type:"altEnd",signalType:y.LINETYPE.ALT_END}),this.$=c[h-1];break;case 39:c[h-1].unshift({type:"parStart",parText:y.parseMessage(c[h-2]),signalType:y.LINETYPE.PAR_START}),c[h-1].push({type:"parEnd",signalType:y.LINETYPE.PAR_END}),this.$=c[h-1];break;case 40:c[h-1].unshift({type:"parStart",parText:y.parseMessage(c[h-2]),signalType:y.LINETYPE.PAR_OVER_START}),c[h-1].push({type:"parEnd",signalType:y.LINETYPE.PAR_END}),this.$=c[h-1];break;case 41:c[h-1].unshift({type:"criticalStart",criticalText:y.parseMessage(c[h-2]),signalType:y.LINETYPE.CRITICAL_START}),c[h-1].push({type:"criticalEnd",signalType:y.LINETYPE.CRITICAL_END}),this.$=c[h-1];break;case 42:c[h-1].unshift({type:"breakStart",breakText:y.parseMessage(c[h-2]),signalType:y.LINETYPE.BREAK_START}),c[h-1].push({type:"breakEnd",optText:y.parseMessage(c[h-2]),signalType:y.LINETYPE.BREAK_END}),this.$=c[h-1];break;case 44:this.$=c[h-3].concat([{type:"option",optionText:y.parseMessage(c[h-1]),signalType:y.LINETYPE.CRITICAL_OPTION},c[h]]);break;case 46:this.$=c[h-3].concat([{type:"and",parText:y.parseMessage(c[h-1]),signalType:y.LINETYPE.PAR_AND},c[h]]);break;case 48:this.$=c[h-3].concat([{type:"else",altText:y.parseMessage(c[h-1]),signalType:y.LINETYPE.ALT_ELSE},c[h]]);break;case 49:c[h-3].draw="participant",c[h-3].type="addParticipant",c[h-3].description=y.parseMessage(c[h-1]),this.$=c[h-3];break;case 50:c[h-1].draw="participant",c[h-1].type="addParticipant",this.$=c[h-1];break;case 51:c[h-3].draw="actor",c[h-3].type="addParticipant",c[h-3].description=y.parseMessage(c[h-1]),this.$=c[h-3];break;case 52:case 57:c[h-1].draw="actor",c[h-1].type="addParticipant",this.$=c[h-1];break;case 53:c[h-1].type="destroyParticipant",this.$=c[h-1];break;case 54:c[h-3].draw="participant",c[h-3].type="addParticipant",c[h-3].description=y.parseMessage(c[h-1]),this.$=c[h-3];break;case 55:c[h-1].draw="participant",c[h-1].type="addParticipant",this.$=c[h-1];break;case 56:c[h-3].draw="actor",c[h-3].type="addParticipant",c[h-3].description=y.parseMessage(c[h-1]),this.$=c[h-3];break;case 58:this.$=[c[h-1],{type:"addNote",placement:c[h-2],actor:c[h-1].actor,text:c[h]}];break;case 59:c[h-2]=[].concat(c[h-1],c[h-1]).slice(0,2),c[h-2][0]=c[h-2][0].actor,c[h-2][1]=c[h-2][1].actor,this.$=[c[h-1],{type:"addNote",placement:y.PLACEMENT.OVER,actor:c[h-2].slice(0,2),text:c[h]}];break;case 60:this.$=[c[h-1],{type:"addLinks",actor:c[h-1].actor,text:c[h]}];break;case 61:this.$=[c[h-1],{type:"addALink",actor:c[h-1].actor,text:c[h]}];break;case 62:this.$=[c[h-1],{type:"addProperties",actor:c[h-1].actor,text:c[h]}];break;case 63:this.$=[c[h-1],{type:"addDetails",actor:c[h-1].actor,text:c[h]}];break;case 66:this.$=[c[h-2],c[h]];break;case 67:this.$=c[h];break;case 68:this.$=y.PLACEMENT.LEFTOF;break;case 69:this.$=y.PLACEMENT.RIGHTOF;break;case 70:this.$=[c[h-4],c[h-1],{type:"addMessage",from:c[h-4].actor,to:c[h-1].actor,signalType:c[h-3],msg:c[h],activate:!0},{type:"activeStart",signalType:y.LINETYPE.ACTIVE_START,actor:c[h-1].actor}];break;case 71:this.$=[c[h-4],c[h-1],{type:"addMessage",from:c[h-4].actor,to:c[h-1].actor,signalType:c[h-3],msg:c[h]},{type:"activeEnd",signalType:y.LINETYPE.ACTIVE_END,actor:c[h-4].actor}];break;case 72:this.$=[c[h-4],c[h-1],{type:"addMessage",from:c[h-4].actor,to:c[h-1].actor,signalType:c[h-3],msg:c[h],activate:!0,centralConnection:y.LINETYPE.CENTRAL_CONNECTION},{type:"centralConnection",signalType:y.LINETYPE.CENTRAL_CONNECTION,actor:c[h-1].actor}];break;case 73:this.$=[c[h-4],c[h-1],{type:"addMessage",from:c[h-4].actor,to:c[h-1].actor,signalType:c[h-2],msg:c[h],activate:!1,centralConnection:y.LINETYPE.CENTRAL_CONNECTION_REVERSE},{type:"centralConnectionReverse",signalType:y.LINETYPE.CENTRAL_CONNECTION_REVERSE,actor:c[h-4].actor}];break;case 74:this.$=[c[h-5],c[h-1],{type:"addMessage",from:c[h-5].actor,to:c[h-1].actor,signalType:c[h-3],msg:c[h],activate:!0,centralConnection:y.LINETYPE.CENTRAL_CONNECTION_DUAL},{type:"centralConnection",signalType:y.LINETYPE.CENTRAL_CONNECTION,actor:c[h-1].actor},{type:"centralConnectionReverse",signalType:y.LINETYPE.CENTRAL_CONNECTION_REVERSE,actor:c[h-5].actor}];break;case 75:this.$=[c[h-3],c[h-1],{type:"addMessage",from:c[h-3].actor,to:c[h-1].actor,signalType:c[h-2],msg:c[h]}];break;case 76:this.$={type:"addParticipant",actor:c[h-1],config:c[h]};break;case 77:this.$=c[h-1].trim();break;case 78:this.$={type:"addParticipant",actor:c[h]};break;case 79:this.$=y.LINETYPE.SOLID_OPEN;break;case 80:this.$=y.LINETYPE.DOTTED_OPEN;break;case 81:this.$=y.LINETYPE.SOLID;break;case 82:this.$=y.LINETYPE.SOLID_TOP;break;case 83:this.$=y.LINETYPE.SOLID_BOTTOM;break;case 84:this.$=y.LINETYPE.STICK_TOP;break;case 85:this.$=y.LINETYPE.STICK_BOTTOM;break;case 86:this.$=y.LINETYPE.SOLID_TOP_DOTTED;break;case 87:this.$=y.LINETYPE.SOLID_BOTTOM_DOTTED;break;case 88:this.$=y.LINETYPE.STICK_TOP_DOTTED;break;case 89:this.$=y.LINETYPE.STICK_BOTTOM_DOTTED;break;case 90:this.$=y.LINETYPE.SOLID_ARROW_TOP_REVERSE;break;case 91:this.$=y.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE;break;case 92:this.$=y.LINETYPE.STICK_ARROW_TOP_REVERSE;break;case 93:this.$=y.LINETYPE.STICK_ARROW_BOTTOM_REVERSE;break;case 94:this.$=y.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED;break;case 95:this.$=y.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED;break;case 96:this.$=y.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED;break;case 97:this.$=y.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED;break;case 98:this.$=y.LINETYPE.BIDIRECTIONAL_SOLID;break;case 99:this.$=y.LINETYPE.DOTTED;break;case 100:this.$=y.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 101:this.$=y.LINETYPE.SOLID_CROSS;break;case 102:this.$=y.LINETYPE.DOTTED_CROSS;break;case 103:this.$=y.LINETYPE.SOLID_POINT;break;case 104:this.$=y.LINETYPE.DOTTED_POINT;break;case 105:this.$=y.parseMessage(c[h].trim().substring(1));break}},"anonymous"),table:[{3:1,4:t,5:a,6:r},{1:[3]},{3:5,4:t,5:a,6:r},{3:6,4:t,5:a,6:r},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],i,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:n,5:s,8:8,9:10,10:o,13:13,14:u,15:d,18:16,19:p,22:_,23:41,24:E,25:20,26:21,27:22,28:23,29:24,30:O,31:T,32:g,34:f,36:I,37:L,38:b,39:w,40:A,42:D,44:M,45:V,47:W,51:U,53:G,54:X,56:nt,61:j,62:H,63:st,64:tt,73:Y},e(C,[2,5]),{9:48,13:13,14:u,15:d,18:16,19:p,22:_,23:41,24:E,25:20,26:21,27:22,28:23,29:24,30:O,31:T,32:g,34:f,36:I,37:L,38:b,39:w,40:A,42:D,44:M,45:V,47:W,51:U,53:G,54:X,56:nt,61:j,62:H,63:st,64:tt,73:Y},e(C,[2,7]),e(C,[2,8]),e(C,[2,9]),e(C,[2,15]),{13:49,51:U,53:G,54:X},{16:[1,50]},{5:[1,51]},{5:[1,54],20:[1,52],21:[1,53]},{23:55,73:Y},{23:56,73:Y},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},{5:[1,61]},e(C,[2,30]),e(C,[2,31]),{33:[1,62]},{35:[1,63]},e(C,[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:At},{23:75,55:76,73:At},{23:77,73:Y},{69:78,72:[1,79],78:kt,79:m,80:k,81:lt,82:et,83:K,84:Ot,85:ne,86:oe,87:ce,88:le,89:he,90:de,91:Te,92:pe,93:Ee,94:ue,95:fe,96:_e,97:ge,98:xe,99:Ie,100:ye,101:Re,102:Oe,103:Le},{57:106,59:[1,107],67:[1,108],68:[1,109]},{23:110,73:Y},{23:111,73:Y},{23:112,73:Y},{23:113,73:Y},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],be),e(C,[2,6]),e(C,[2,16]),e(St,[2,10],{11:114}),e(C,[2,18]),{5:[1,116],20:[1,115]},{5:[1,117]},e(C,[2,22]),{5:[1,118]},{5:[1,119]},e(C,[2,25]),e(C,[2,26]),e(C,[2,27]),e(C,[2,28]),e(C,[2,29]),e(C,[2,32]),e(C,[2,33]),e(Dt,i,{7:120}),e(Dt,i,{7:121}),e(Dt,i,{7:122}),e(me,i,{41:123,7:124}),e(Ut,i,{43:125,7:126}),e(Ut,i,{7:126,43:127}),e(Ae,i,{46:128,7:129}),e(Dt,i,{7:130}),{5:[1,132],52:[1,131]},{5:[1,134],52:[1,133]},e(Gt,be,{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:Y},{69:146,78:kt,79:m,80:k,81:lt,82:et,83:K,84:Ot,85:ne,86:oe,87:ce,88:le,89:he,90:de,91:Te,92:pe,93:Ee,94:ue,95:fe,96:_e,97:ge,98:xe,99:Ie,100:ye,101:Re,102:Oe,103:Le},e(F,[2,79]),e(F,[2,80]),e(F,[2,81]),e(F,[2,82]),e(F,[2,83]),e(F,[2,84]),e(F,[2,85]),e(F,[2,86]),e(F,[2,87]),e(F,[2,88]),e(F,[2,89]),e(F,[2,90]),e(F,[2,91]),e(F,[2,92]),e(F,[2,93]),e(F,[2,94]),e(F,[2,95]),e(F,[2,96]),e(F,[2,97]),e(F,[2,98]),e(F,[2,99]),e(F,[2,100]),e(F,[2,101]),e(F,[2,102]),e(F,[2,103]),e(F,[2,104]),{23:147,73:Y},{23:149,60:148,73:Y},{73:[2,68]},{73:[2,69]},{58:150,104:ot},{58:152,104:ot},{58:153,104:ot},{58:154,104:ot},{4:[1,157],5:[1,159],12:156,13:158,17:[1,155],51:U,53:G,54:X},{5:[1,160]},e(C,[2,20]),e(C,[2,21]),e(C,[2,23]),e(C,[2,24]),{4:n,5:s,8:8,9:10,10:o,13:13,14:u,15:d,17:[1,161],18:16,19:p,22:_,23:41,24:E,25:20,26:21,27:22,28:23,29:24,30:O,31:T,32:g,34:f,36:I,37:L,38:b,39:w,40:A,42:D,44:M,45:V,47:W,51:U,53:G,54:X,56:nt,61:j,62:H,63:st,64:tt,73:Y},{4:n,5:s,8:8,9:10,10:o,13:13,14:u,15:d,17:[1,162],18:16,19:p,22:_,23:41,24:E,25:20,26:21,27:22,28:23,29:24,30:O,31:T,32:g,34:f,36:I,37:L,38:b,39:w,40:A,42:D,44:M,45:V,47:W,51:U,53:G,54:X,56:nt,61:j,62:H,63:st,64:tt,73:Y},{4:n,5:s,8:8,9:10,10:o,13:13,14:u,15:d,17:[1,163],18:16,19:p,22:_,23:41,24:E,25:20,26:21,27:22,28:23,29:24,30:O,31:T,32:g,34:f,36:I,37:L,38:b,39:w,40:A,42:D,44:M,45:V,47:W,51:U,53:G,54:X,56:nt,61:j,62:H,63:st,64:tt,73:Y},{17:[1,164]},{4:n,5:s,8:8,9:10,10:o,13:13,14:u,15:d,17:[2,47],18:16,19:p,22:_,23:41,24:E,25:20,26:21,27:22,28:23,29:24,30:O,31:T,32:g,34:f,36:I,37:L,38:b,39:w,40:A,42:D,44:M,45:V,47:W,50:[1,165],51:U,53:G,54:X,56:nt,61:j,62:H,63:st,64:tt,73:Y},{17:[1,166]},{4:n,5:s,8:8,9:10,10:o,13:13,14:u,15:d,17:[2,45],18:16,19:p,22:_,23:41,24:E,25:20,26:21,27:22,28:23,29:24,30:O,31:T,32:g,34:f,36:I,37:L,38:b,39:w,40:A,42:D,44:M,45:V,47:W,49:[1,167],51:U,53:G,54:X,56:nt,61:j,62:H,63:st,64:tt,73:Y},{17:[1,168]},{17:[1,169]},{4:n,5:s,8:8,9:10,10:o,13:13,14:u,15:d,17:[2,43],18:16,19:p,22:_,23:41,24:E,25:20,26:21,27:22,28:23,29:24,30:O,31:T,32:g,34:f,36:I,37:L,38:b,39:w,40:A,42:D,44:M,45:V,47:W,48:[1,170],51:U,53:G,54:X,56:nt,61:j,62:H,63:st,64:tt,73:Y},{4:n,5:s,8:8,9:10,10:o,13:13,14:u,15:d,17:[1,171],18:16,19:p,22:_,23:41,24:E,25:20,26:21,27:22,28:23,29:24,30:O,31:T,32:g,34:f,36:I,37:L,38:b,39:w,40:A,42:D,44:M,45:V,47:W,51:U,53:G,54:X,56:nt,61:j,62:H,63:st,64:tt,73:Y},{16:[1,172]},e(C,[2,50]),{16:[1,173]},e(C,[2,55]),e(Gt,[2,76]),{76:[1,174]},{16:[1,175]},e(C,[2,52]),{16:[1,176]},e(C,[2,57]),e(C,[2,53]),{23:177,73:Y},{23:178,73:Y},{23:179,73:Y},{58:180,104:ot},{23:181,72:[1,182],73:Y},{58:183,104:ot},{58:184,104:ot},{66:[1,185],104:[2,67]},{5:[2,60]},{5:[2,105]},{5:[2,61]},{5:[2,62]},{5:[2,63]},e(C,[2,17]),e(St,[2,11]),{13:186,51:U,53:G,54:X},e(St,[2,13]),e(St,[2,14]),e(C,[2,19]),e(C,[2,35]),e(C,[2,36]),e(C,[2,37]),e(C,[2,38]),{16:[1,187]},e(C,[2,39]),{16:[1,188]},e(C,[2,40]),e(C,[2,41]),{16:[1,189]},e(C,[2,42]),{5:[1,190]},{5:[1,191]},{77:[1,192]},{5:[1,193]},{5:[1,194]},{58:195,104:ot},{58:196,104:ot},{58:197,104:ot},{5:[2,75]},{58:198,104:ot},{23:199,73:Y},{5:[2,58]},{5:[2,59]},{23:200,73:Y},e(St,[2,12]),e(me,i,{7:124,41:201}),e(Ut,i,{7:126,43:202}),e(Ae,i,{7:129,46:203}),e(C,[2,49]),e(C,[2,54]),e(Gt,[2,77]),e(C,[2,51]),e(C,[2,56]),{5:[2,70]},{5:[2,71]},{5:[2,72]},{5:[2,73]},{58:204,104:ot},{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:x(function(S,v){if(v.recoverable)this.trace(S);else{var P=new Error(S);throw P.hash=v,P}},"parseError"),parse:x(function(S){var v=this,P=[0],y=[],z=[null],c=[],wt=this.table,h="",Ct=0,Se=0,Ze=2,we=1,Qe=c.slice.call(arguments,1),J=Object.create(this.lexer),gt={yy:{}};for(var Jt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Jt)&&(gt.yy[Jt]=this.yy[Jt]);J.setInput(S,gt.yy),gt.yy.lexer=J,gt.yy.parser=this,typeof J.yylloc>"u"&&(J.yylloc={});var Zt=J.yylloc;c.push(Zt);var $e=J.options&&J.options.ranges;typeof gt.yy.parseError=="function"?this.parseError=gt.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function je(it){P.length=P.length-2*it,z.length=z.length-it,c.length=c.length-it}x(je,"popStack");function Ne(){var it;return it=y.pop()||J.lex()||we,typeof it!="number"&&(it instanceof Array&&(y=it,it=y.pop()),it=v.symbols_[it]||it),it}x(Ne,"lex");for(var rt,xt,ct,Qt,Lt={},Mt,Tt,Pe,Bt;;){if(xt=P[P.length-1],this.defaultActions[xt]?ct=this.defaultActions[xt]:((rt===null||typeof rt>"u")&&(rt=Ne()),ct=wt[xt]&&wt[xt][rt]),typeof ct>"u"||!ct.length||!ct[0]){var $t="";Bt=[];for(Mt in wt[xt])this.terminals_[Mt]&&Mt>Ze&&Bt.push("'"+this.terminals_[Mt]+"'");J.showPosition?$t="Parse error on line "+(Ct+1)+`: `+J.showPosition()+` Expecting `+Bt.join(", ")+", got '"+(this.terminals_[rt]||rt)+"'":$t="Parse error on line "+(Ct+1)+": Unexpected "+(rt==we?"end of input":"'"+(this.terminals_[rt]||rt)+"'"),this.parseError($t,{text:J.match,token:this.terminals_[rt]||rt,line:J.yylineno,loc:Zt,expected:Bt})}if(ct[0]instanceof Array&&ct.length>1)throw new Error("Parse Error: multiple actions possible at state: "+xt+", token: "+rt);switch(ct[0]){case 1:P.push(rt),z.push(J.yytext),c.push(J.yylloc),P.push(ct[1]),rt=null,Se=J.yyleng,h=J.yytext,Ct=J.yylineno,Zt=J.yylloc;break;case 2:if(Tt=this.productions_[ct[1]][1],Lt.$=z[z.length-Tt],Lt._$={first_line:c[c.length-(Tt||1)].first_line,last_line:c[c.length-1].last_line,first_column:c[c.length-(Tt||1)].first_column,last_column:c[c.length-1].last_column},$e&&(Lt._$.range=[c[c.length-(Tt||1)].range[0],c[c.length-1].range[1]]),Qt=this.performAction.apply(Lt,[h,Se,Ct,gt.yy,ct[1],z,c].concat(Qe)),typeof Qt<"u")return Qt;Tt&&(P=P.slice(0,-1*Tt*2),z=z.slice(0,-1*Tt),c=c.slice(0,-1*Tt)),P.push(this.productions_[ct[1]][0]),z.push(Lt.$),c.push(Lt._$),Pe=wt[P[P.length-2]][P[P.length-1]],P.push(Pe);break;case 3:return!0}}return!0},"parse")},Je=(function(){var ut={EOF:1,parseError:x(function(v,P){if(this.yy.parser)this.yy.parser.parseError(v,P);else throw new Error(v)},"parseError"),setInput:x(function(S,v){return this.yy=v||this.yy||{},this._input=S,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:x(function(){var S=this._input[0];this.yytext+=S,this.yyleng++,this.offset++,this.match+=S,this.matched+=S;var v=S.match(/(?:\r\n?|\n).*/g);return v?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),S},"input"),unput:x(function(S){var v=S.length,P=S.split(/(?:\r\n?|\n)/g);this._input=S+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-v),this.offset-=v;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),P.length-1&&(this.yylineno-=P.length-1);var z=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===y.length?this.yylloc.first_column:0)+y[y.length-P.length].length-P[0].length:this.yylloc.first_column-v},this.options.ranges&&(this.yylloc.range=[z[0],z[0]+this.yyleng-v]),this.yyleng=this.yytext.length,this},"unput"),more:x(function(){return this._more=!0,this},"more"),reject:x(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:x(function(S){this.unput(this.match.slice(S))},"less"),pastInput:x(function(){var S=this.matched.substr(0,this.matched.length-this.match.length);return(S.length>20?"...":"")+S.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:x(function(){var S=this.match;return S.length<20&&(S+=this._input.substr(0,20-S.length)),(S.substr(0,20)+(S.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:x(function(){var S=this.pastInput(),v=new Array(S.length+1).join("-");return S+this.upcomingInput()+` @@ -146,17 +146,17 @@ Expecting `+Bt.join(", ")+", got '"+(this.terminals_[rt]||rt)+"'":$t="Parse erro filter: ${t}; stroke: ${e.nodeBorder}; } -`},"getStyles"),Rr=yr,It=36,ft="actor-top",_t="actor-bottom",Ht="actor-box",yt="actor-man",pt=new Set(["redux-color","redux-dark-color"]),Nt=x(function(e,t){const a=ur(e,t);return Kt().look==="neo"&&a.attr("data-look","neo"),a},"drawRect"),Or=x(function(e,t,a,r,i){if(t.links===void 0||t.links===null||Object.keys(t.links).length===0)return{height:0,width:0};const n=t.links,s=t.actorCnt,o=t.rectData;var u="none";i&&(u="block !important");const d=e.append("g");d.attr("id","actor"+s+"_popup"),d.attr("class","actorPopupMenu"),d.attr("display",u);var p="";o.class!==void 0&&(p=" "+o.class);let _=o.width>a?o.width:a;const E=d.append("rect");if(E.attr("class","actorPopupMenuPanel"+p),E.attr("x",o.x),E.attr("y",o.height),E.attr("fill",o.fill),E.attr("stroke",o.stroke),E.attr("width",_),E.attr("height",o.height),E.attr("rx",o.rx),E.attr("ry",o.ry),n!=null){var O=20;for(let f in n){var T=d.append("a"),g=Ce.sanitizeUrl(n[f]);T.attr("xlink:href",g),T.attr("target","_blank"),Ur(r)(f,T,o.x+10,o.height+O,_,20,{class:"actor"},r),O+=30}}return E.attr("height",O),{height:o.height+O,width:_}},"drawPopup"),qt=x(function(e){return"var pu = document.getElementById('"+e+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},"popupMenuToggle"),Ft=x(async function(e,t,a=null){let r=e.append("foreignObject");const i=await Be(t.text,Kt()),s=r.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(i).node().getBoundingClientRect();if(r.attr("height",Math.round(s.height)).attr("width",Math.round(s.width)),t.class==="noteText"){const o=e.node().firstChild;o.setAttribute("height",s.height+2*t.textMargin);const u=o.getBBox();r.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(a){let{startx:o,stopx:u,starty:d}=a;if(o>u){const p=o;o=u,u=p}r.attr("x",Math.round(o+Math.abs(o-u)/2-s.width/2)),t.class==="loopText"?r.attr("y",Math.round(d)):r.attr("y",Math.round(d-s.height))}return[r]},"drawKatex"),mt=x(function(e,t){let a=0,r=0;const i=t.text.split(N.lineBreakRegex),[n,s]=Me(t.fontSize);let o=[],u=0,d=x(()=>t.y,"yfunc");if(t.valign!==void 0&&t.textMargin!==void 0&&t.textMargin>0)switch(t.valign){case"top":case"start":d=x(()=>Math.round(t.y+t.textMargin),"yfunc");break;case"middle":case"center":d=x(()=>Math.round(t.y+(a+r+t.textMargin)/2),"yfunc");break;case"bottom":case"end":d=x(()=>Math.round(t.y+(a+r+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[p,_]of i.entries()){t.textMargin!==void 0&&t.textMargin===0&&n!==void 0&&(u=p*n);const E=e.append("text");E.attr("x",t.x),E.attr("y",d()),t.anchor!==void 0&&E.attr("text-anchor",t.anchor).attr("dominant-baseline",t.dominantBaseline).attr("alignment-baseline",t.alignmentBaseline),t.fontFamily!==void 0&&E.style("font-family",t.fontFamily),s!==void 0&&E.style("font-size",s),t.fontWeight!==void 0&&E.style("font-weight",t.fontWeight),t.fill!==void 0&&E.attr("fill",t.fill),t.class!==void 0&&E.attr("class",t.class),t.dy!==void 0?E.attr("dy",t.dy):u!==0&&E.attr("dy",u);const O=_||Tr;if(t.tspan){const T=E.append("tspan");T.attr("x",t.x),t.fill!==void 0&&T.attr("fill",t.fill),T.text(O)}else E.text(O);t.valign!==void 0&&t.textMargin!==void 0&&t.textMargin>0&&(r+=(E._groups||E)[0][0].getBBox().height,a=r),o.push(E)}return o},"drawText"),Ve=x(function(e,t){function a(i,n,s,o,u){return i+","+n+" "+(i+s)+","+n+" "+(i+s)+","+(n+o-u)+" "+(i+s-u*1.2)+","+(n+o)+" "+i+","+(n+o)}x(a,"genPoints");const r=e.append("polygon");return r.attr("points",a(t.x,t.y,t.width,t.height,7)),r.attr("class","labelBox"),t.y=t.y+t.height/2,mt(e,t),r},"drawLabel"),B=-1,Ye=x((e,t,a,r)=>{e.select&&a.forEach(i=>{const n=t.get(i),s=e.select("#actor"+n.actorCnt);!r.mirrorActors&&n.stopy?s.attr("y2",n.stopy+n.height/2):r.mirrorActors&&s.attr("y2",n.stopy)})},"fixLifeLineHeights"),Lr=x(function(e,t,a,r,i){const n=r?t.stopy:t.starty,s=t.x+t.width/2,o=n+t.height,{look:u,theme:d,themeVariables:p}=a,{bkgColorArray:_,borderColorArray:E}=p,O=e.append("g").lower();var T=O;r||(B++,Object.keys(t.links||{}).length&&!a.forceMenus&&T.attr("onclick",qt(`actor${B}_popup`)).attr("cursor","pointer"),T.append("line").attr("id","actor"+B).attr("x1",s).attr("y1",o).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=O.append("g"),t.actorCnt=B,t.links!=null&&T.attr("id","root-"+B),u==="neo"&&T.attr("data-look","neo"));const g=dt();var f="actor";t.properties?.class?f=t.properties.class:g.fill="#eaeaea",r?f+=` ${_t}`:f+=` ${ft}`,g.x=t.x,g.y=n,g.width=t.width,g.height=t.height,g.class=f,g.rx=3,g.ry=3,g.name=t.name,u==="neo"&&(g.rx=6,g.ry=6);const I=Nt(T,g),L=i.get(t.name)??0;if(pt.has(d)&&(I.style("stroke",E[L%E.length]),I.style("fill",_[L%E.length])),u==="neo"&&I.attr("filter","url(#drop-shadow)"),t.rectData=g,t.properties?.icon){const w=t.properties.icon.trim();w.charAt(0)==="@"?se(T,g.x+g.width-20,g.y+10,w.substr(1)):ie(T,g.x+g.width-20,g.y+10,w)}r||(T.attr("data-et","participant"),T.attr("data-type","participant"),T.attr("data-id",t.name)),Et(a,Q(t.description))(t.description,T,g.x,g.y,g.width,g.height,{class:`actor ${Ht}`},a);let b=t.height;if(I.node){const w=I.node().getBBox();t.height=w.height,b=w.height}return b},"drawActorTypeParticipant"),br=x(function(e,t,a,r,i){const n=r?t.stopy:t.starty,s=t.x+t.width/2,o=n+t.height,{look:u,theme:d,themeVariables:p}=a,{bkgColorArray:_,borderColorArray:E}=p,O=e.append("g").lower();var T=O;r||(B++,Object.keys(t.links||{}).length&&!a.forceMenus&&T.attr("onclick",qt(`actor${B}_popup`)).attr("cursor","pointer"),T.append("line").attr("id","actor"+B).attr("x1",s).attr("y1",o).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=O.append("g"),t.actorCnt=B,t.links!=null&&T.attr("id","root-"+B),u==="neo"&&T.attr("data-look","neo"));const g=dt();var f="actor";t.properties?.class?f=t.properties.class:g.fill="#eaeaea",r?f+=` ${_t}`:f+=` ${ft}`,g.x=t.x,g.y=n,g.width=t.width,g.height=t.height,g.class=f,g.name=t.name;const I=6,L={...g,x:g.x+-I,y:g.y+ +I,class:"actor"},b=Nt(T,g),w=Nt(T,L);t.rectData=g,u==="neo"&&T.attr("filter","url(#drop-shadow)");const A=i.get(t.name)??0;if(pt.has(d)&&(b.style("stroke",E[A%E.length]),b.style("fill",_[A%E.length]),w.style("stroke",E[A%E.length]),w.style("fill",_[A%E.length])),t.properties?.icon){const M=t.properties.icon.trim();M.charAt(0)==="@"?se(T,g.x+g.width-20,g.y+10,M.substr(1)):ie(T,g.x+g.width-20,g.y+10,M)}Et(a,Q(t.description))(t.description,T,g.x-I,g.y+I,g.width,g.height,{class:`actor ${Ht}`},a);let D=t.height;if(b.node){const M=b.node().getBBox();t.height=M.height,D=M.height}return r||(T.attr("data-et","participant"),T.attr("data-type","collections"),T.attr("data-id",t.name)),D},"drawActorTypeCollections"),mr=x(function(e,t,a,r,i){const n=r?t.stopy:t.starty,s=t.x+t.width/2,o=n+t.height,{look:u,theme:d,themeVariables:p}=a,{bkgColorArray:_,borderColorArray:E}=p,O=e.append("g").lower();let T=O;r||(B++,Object.keys(t.links||{}).length&&!a.forceMenus&&T.attr("onclick",qt(`actor${B}_popup`)).attr("cursor","pointer"),T.append("line").attr("id","actor"+B).attr("x1",s).attr("y1",o).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=O.append("g"),t.actorCnt=B,t.links!=null&&T.attr("id","root-"+B),u==="neo"&&T.attr("data-look","neo"));const g=dt();let f="actor";t.properties?.class?f=t.properties.class:g.fill="#eaeaea",r?f+=` ${_t}`:f+=` ${ft}`,T.attr("class",f),g.x=t.x,g.y=n,g.width=t.width,g.height=t.height,g.name=t.name;const I=g.height/2,L=I/(2.5+g.height/50),b=T.append("g"),w=T.append("g"),A=`M ${g.x},${g.y+I} +`},"getStyles"),Rr=yr,It=36,ft="actor-top",_t="actor-bottom",qt="actor-box",yt="actor-man",pt=new Set(["redux-color","redux-dark-color"]),Nt=x(function(e,t){const a=ur(e,t);return Kt().look==="neo"&&a.attr("data-look","neo"),a},"drawRect"),Or=x(function(e,t,a,r,i){if(t.links===void 0||t.links===null||Object.keys(t.links).length===0)return{height:0,width:0};const n=t.links,s=t.actorCnt,o=t.rectData;var u="none";i&&(u="block !important");const d=e.append("g");d.attr("id","actor"+s+"_popup"),d.attr("class","actorPopupMenu"),d.attr("display",u);var p="";o.class!==void 0&&(p=" "+o.class);let _=o.width>a?o.width:a;const E=d.append("rect");if(E.attr("class","actorPopupMenuPanel"+p),E.attr("x",o.x),E.attr("y",o.height),E.attr("fill",o.fill),E.attr("stroke",o.stroke),E.attr("width",_),E.attr("height",o.height),E.attr("rx",o.rx),E.attr("ry",o.ry),n!=null){var O=20;for(let f in n){var T=d.append("a"),g=Ce.sanitizeUrl(n[f]);T.attr("xlink:href",g),T.attr("target","_blank"),Ur(r)(f,T,o.x+10,o.height+O,_,20,{class:"actor"},r),O+=30}}return E.attr("height",O),{height:o.height+O,width:_}},"drawPopup"),Ht=x(function(e){return"var pu = document.getElementById('"+e+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},"popupMenuToggle"),Ft=x(async function(e,t,a=null){let r=e.append("foreignObject");const i=await Be(t.text,Kt()),s=r.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(i).node().getBoundingClientRect();if(r.attr("height",Math.round(s.height)).attr("width",Math.round(s.width)),t.class==="noteText"){const o=e.node().firstChild;o.setAttribute("height",s.height+2*t.textMargin);const u=o.getBBox();r.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(a){let{startx:o,stopx:u,starty:d}=a;if(o>u){const p=o;o=u,u=p}r.attr("x",Math.round(o+Math.abs(o-u)/2-s.width/2)),t.class==="loopText"?r.attr("y",Math.round(d)):r.attr("y",Math.round(d-s.height))}return[r]},"drawKatex"),mt=x(function(e,t){let a=0,r=0;const i=t.text.split(N.lineBreakRegex),[n,s]=Me(t.fontSize);let o=[],u=0,d=x(()=>t.y,"yfunc");if(t.valign!==void 0&&t.textMargin!==void 0&&t.textMargin>0)switch(t.valign){case"top":case"start":d=x(()=>Math.round(t.y+t.textMargin),"yfunc");break;case"middle":case"center":d=x(()=>Math.round(t.y+(a+r+t.textMargin)/2),"yfunc");break;case"bottom":case"end":d=x(()=>Math.round(t.y+(a+r+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[p,_]of i.entries()){t.textMargin!==void 0&&t.textMargin===0&&n!==void 0&&(u=p*n);const E=e.append("text");E.attr("x",t.x),E.attr("y",d()),t.anchor!==void 0&&E.attr("text-anchor",t.anchor).attr("dominant-baseline",t.dominantBaseline).attr("alignment-baseline",t.alignmentBaseline),t.fontFamily!==void 0&&E.style("font-family",t.fontFamily),s!==void 0&&E.style("font-size",s),t.fontWeight!==void 0&&E.style("font-weight",t.fontWeight),t.fill!==void 0&&E.attr("fill",t.fill),t.class!==void 0&&E.attr("class",t.class),t.dy!==void 0?E.attr("dy",t.dy):u!==0&&E.attr("dy",u);const O=_||Tr;if(t.tspan){const T=E.append("tspan");T.attr("x",t.x),t.fill!==void 0&&T.attr("fill",t.fill),T.text(O)}else E.text(O);t.valign!==void 0&&t.textMargin!==void 0&&t.textMargin>0&&(r+=(E._groups||E)[0][0].getBBox().height,a=r),o.push(E)}return o},"drawText"),Ve=x(function(e,t){function a(i,n,s,o,u){return i+","+n+" "+(i+s)+","+n+" "+(i+s)+","+(n+o-u)+" "+(i+s-u*1.2)+","+(n+o)+" "+i+","+(n+o)}x(a,"genPoints");const r=e.append("polygon");return r.attr("points",a(t.x,t.y,t.width,t.height,7)),r.attr("class","labelBox"),t.y=t.y+t.height/2,mt(e,t),r},"drawLabel"),B=-1,Ye=x((e,t,a,r)=>{e.select&&a.forEach(i=>{const n=t.get(i),s=e.select("#actor"+n.actorCnt);!r.mirrorActors&&n.stopy?s.attr("y2",n.stopy+n.height/2):r.mirrorActors&&s.attr("y2",n.stopy)})},"fixLifeLineHeights"),Lr=x(function(e,t,a,r,i){const n=r?t.stopy:t.starty,s=t.x+t.width/2,o=n+t.height,{look:u,theme:d,themeVariables:p}=a,{bkgColorArray:_,borderColorArray:E}=p,O=e.append("g").lower();var T=O;r||(B++,Object.keys(t.links||{}).length&&!a.forceMenus&&T.attr("onclick",Ht(`actor${B}_popup`)).attr("cursor","pointer"),T.append("line").attr("id","actor"+B).attr("x1",s).attr("y1",o).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=O.append("g"),t.actorCnt=B,t.links!=null&&T.attr("id","root-"+B),u==="neo"&&T.attr("data-look","neo"));const g=dt();var f="actor";t.properties?.class?f=t.properties.class:g.fill="#eaeaea",r?f+=` ${_t}`:f+=` ${ft}`,g.x=t.x,g.y=n,g.width=t.width,g.height=t.height,g.class=f,g.rx=3,g.ry=3,g.name=t.name,u==="neo"&&(g.rx=6,g.ry=6);const I=Nt(T,g),L=i.get(t.name)??0;if(pt.has(d)&&(I.style("stroke",E[L%E.length]),I.style("fill",_[L%E.length])),u==="neo"&&I.attr("filter","url(#drop-shadow)"),t.rectData=g,t.properties?.icon){const w=t.properties.icon.trim();w.charAt(0)==="@"?se(T,g.x+g.width-20,g.y+10,w.substr(1)):ie(T,g.x+g.width-20,g.y+10,w)}r||(T.attr("data-et","participant"),T.attr("data-type","participant"),T.attr("data-id",t.name)),Et(a,Q(t.description))(t.description,T,g.x,g.y,g.width,g.height,{class:`actor ${qt}`},a);let b=t.height;if(I.node){const w=I.node().getBBox();t.height=w.height,b=w.height}return b},"drawActorTypeParticipant"),br=x(function(e,t,a,r,i){const n=r?t.stopy:t.starty,s=t.x+t.width/2,o=n+t.height,{look:u,theme:d,themeVariables:p}=a,{bkgColorArray:_,borderColorArray:E}=p,O=e.append("g").lower();var T=O;r||(B++,Object.keys(t.links||{}).length&&!a.forceMenus&&T.attr("onclick",Ht(`actor${B}_popup`)).attr("cursor","pointer"),T.append("line").attr("id","actor"+B).attr("x1",s).attr("y1",o).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=O.append("g"),t.actorCnt=B,t.links!=null&&T.attr("id","root-"+B),u==="neo"&&T.attr("data-look","neo"));const g=dt();var f="actor";t.properties?.class?f=t.properties.class:g.fill="#eaeaea",r?f+=` ${_t}`:f+=` ${ft}`,g.x=t.x,g.y=n,g.width=t.width,g.height=t.height,g.class=f,g.name=t.name;const I=6,L={...g,x:g.x+-I,y:g.y+ +I,class:"actor"},b=Nt(T,g),w=Nt(T,L);t.rectData=g,u==="neo"&&T.attr("filter","url(#drop-shadow)");const A=i.get(t.name)??0;if(pt.has(d)&&(b.style("stroke",E[A%E.length]),b.style("fill",_[A%E.length]),w.style("stroke",E[A%E.length]),w.style("fill",_[A%E.length])),t.properties?.icon){const M=t.properties.icon.trim();M.charAt(0)==="@"?se(T,g.x+g.width-20,g.y+10,M.substr(1)):ie(T,g.x+g.width-20,g.y+10,M)}Et(a,Q(t.description))(t.description,T,g.x-I,g.y+I,g.width,g.height,{class:`actor ${qt}`},a);let D=t.height;if(b.node){const M=b.node().getBBox();t.height=M.height,D=M.height}return r||(T.attr("data-et","participant"),T.attr("data-type","collections"),T.attr("data-id",t.name)),D},"drawActorTypeCollections"),mr=x(function(e,t,a,r,i){const n=r?t.stopy:t.starty,s=t.x+t.width/2,o=n+t.height,{look:u,theme:d,themeVariables:p}=a,{bkgColorArray:_,borderColorArray:E}=p,O=e.append("g").lower();let T=O;r||(B++,Object.keys(t.links||{}).length&&!a.forceMenus&&T.attr("onclick",Ht(`actor${B}_popup`)).attr("cursor","pointer"),T.append("line").attr("id","actor"+B).attr("x1",s).attr("y1",o).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=O.append("g"),t.actorCnt=B,t.links!=null&&T.attr("id","root-"+B),u==="neo"&&T.attr("data-look","neo"));const g=dt();let f="actor";t.properties?.class?f=t.properties.class:g.fill="#eaeaea",r?f+=` ${_t}`:f+=` ${ft}`,T.attr("class",f),g.x=t.x,g.y=n,g.width=t.width,g.height=t.height,g.name=t.name;const I=g.height/2,L=I/(2.5+g.height/50),b=T.append("g"),w=T.append("g"),A=`M ${g.x},${g.y+I} a ${L},${I} 0 0 0 0,${g.height} h ${g.width-2*L} a ${L},${I} 0 0 0 0,-${g.height} Z `;b.append("path").attr("d",A),w.append("path").attr("d",`M ${g.x},${g.y+I} - a ${L},${I} 0 0 0 0,${g.height}`),b.attr("transform",`translate(${L}, ${-(g.height/2)})`),w.attr("transform",`translate(${g.width-L}, ${-g.height/2})`),t.rectData=g,u==="neo"&&b.attr("filter","url(#drop-shadow)");const D=i.get(t.name)??0;if(pt.has(d)&&(b.style("stroke",E[D%E.length]),b.style("fill",_[D%E.length]),w.style("stroke",E[D%E.length]),w.style("fill",_[D%E.length])),t.properties?.icon){const W=t.properties.icon.trim(),U=g.x+g.width-20,G=g.y+10;W.charAt(0)==="@"?se(T,U,G,W.substr(1)):ie(T,U,G,W)}Et(a,Q(t.description))(t.description,T,g.x,g.y,g.width,g.height,{class:`actor ${Ht}`},a);let M=t.height;const V=b.select("path:last-child");if(V.node()){const W=V.node().getBBox();t.height=W.height,M=W.height}return r||(T.attr("data-et","participant"),T.attr("data-type","queue"),T.attr("data-id",t.name)),M},"drawActorTypeQueue"),Ar=x(function(e,t,a,r,i,n){const s=r?t.stopy:t.starty,o=t.x+t.width/2,u=s+75,{look:d,theme:p,themeVariables:_}=a,{bkgColorArray:E,borderColorArray:O,actorBorder:T,actorBkg:g}=_,f=e.append("g").lower();r||(B++,f.append("line").attr("id","actor"+B).attr("x1",o).attr("y1",u).attr("x2",o).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=B);const I=e.append("g");let L=yt;r?L+=` ${_t}`:L+=` ${ft}`,I.attr("class",L),I.attr("name",t.name);const b=dt();b.x=t.x,b.y=s,b.fill="#eaeaea",b.width=t.width,b.height=t.height,b.class="actor";const w=t.x+t.width/2,A=s+32,D=22;I.append("defs").append("marker").attr("id",i+"-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"),I.append("circle").attr("cx",w).attr("cy",A).attr("r",D).attr("filter",`${d==="neo"?"url(#drop-shadow)":""}`),I.append("line").attr("marker-end","url(#"+i+"-filled-head-control)").attr("transform",`translate(${w}, ${A-D})`);const M=n.get(t.name)??0;pt.has(p)?(I.style("stroke",O[M%O.length]),I.style("fill",E[M%O.length])):(I.style("stroke",T),I.style("fill",g));const V=I.node().getBBox();return t.height=V.height+2*(a?.sequence?.labelBoxHeight??0),Et(a,Q(t.description))(t.description,I,b.x,b.y+D+(r?5:12),b.width,b.height,{class:`actor ${yt}`},a),r||(I.attr("data-et","participant"),I.attr("data-type","control"),I.attr("data-id",t.name)),t.height},"drawActorTypeControl"),Sr=x(function(e,t,a,r,i){const n=r?t.stopy:t.starty,s=t.x+t.width/2,o=n+75,{look:u,theme:d,themeVariables:p}=a,{bkgColorArray:_,borderColorArray:E}=p,O=e.append("g").lower(),T=e.append("g");let g="actor";r?g+=` ${_t}`:g+=` ${ft}`,T.attr("class",g),T.attr("name",t.name);const f=dt();f.x=t.x,f.y=n,f.fill="#eaeaea",f.width=t.width,f.height=t.height,f.class="actor";const I=t.x+t.width/2,L=n+(r?10:25),b=22;T.append("circle").attr("cx",I).attr("cy",L).attr("r",b).attr("width",t.width).attr("height",t.height),T.append("line").attr("x1",I-b).attr("x2",I+b).attr("y1",L+b).attr("y2",L+b).attr("stroke-width",2),u==="neo"&&T.attr("filter","url(#drop-shadow)");const w=i.get(t.name)??0;pt.has(d)&&(T.style("stroke",E[w%E.length]),T.style("fill",_[w%E.length]));const A=T.node().getBBox();return t.height=A.height+(a?.sequence?.labelBoxHeight??0),r||(B++,O.append("line").attr("id","actor"+B).attr("x1",s).attr("y1",o).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=B),Et(a,Q(t.description))(t.description,T,f.x,f.y+(r?15:30),f.width,f.height,{class:`actor ${yt}`},a),r?T.attr("transform",`translate(0, ${b})`):(T.attr("transform",`translate(0, ${b/2-5})`),T.attr("data-et","participant"),T.attr("data-type","entity"),T.attr("data-id",t.name)),t.height},"drawActorTypeEntity"),wr=x(function(e,t,a,r,i){const n=r?t.stopy:t.starty,s=t.x+t.width/2,o=n+t.height+2*a.boxTextMargin,{theme:u,themeVariables:d,look:p}=a,{bkgColorArray:_,borderColorArray:E,actorBorder:O}=d,T=e.append("g").lower();let g=T;r||(B++,Object.keys(t.links||{}).length&&!a.forceMenus&&g.attr("onclick",qt(`actor${B}_popup`)).attr("cursor","pointer"),g.append("line").attr("id","actor"+B).attr("x1",s).attr("y1",o).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=T.append("g"),t.actorCnt=B,t.links!=null&&g.attr("id","root-"+B),p==="neo"&&g.attr("data-look","neo"));const f=dt();let I="actor";t.properties?.class?I=t.properties.class:f.fill="#eaeaea",r?I+=` ${_t}`:I+=` ${ft}`,f.x=t.x,f.y=n,f.width=t.width,f.height=t.height,f.class=I,f.name=t.name,f.x=t.x,f.y=n;const L=f.width/3,b=f.width/3,w=L/2,A=w/(2.5+L/50),D=g.append("g");D.attr("class",I);const M=` + a ${L},${I} 0 0 0 0,${g.height}`),b.attr("transform",`translate(${L}, ${-(g.height/2)})`),w.attr("transform",`translate(${g.width-L}, ${-g.height/2})`),t.rectData=g,u==="neo"&&b.attr("filter","url(#drop-shadow)");const D=i.get(t.name)??0;if(pt.has(d)&&(b.style("stroke",E[D%E.length]),b.style("fill",_[D%E.length]),w.style("stroke",E[D%E.length]),w.style("fill",_[D%E.length])),t.properties?.icon){const W=t.properties.icon.trim(),U=g.x+g.width-20,G=g.y+10;W.charAt(0)==="@"?se(T,U,G,W.substr(1)):ie(T,U,G,W)}Et(a,Q(t.description))(t.description,T,g.x,g.y,g.width,g.height,{class:`actor ${qt}`},a);let M=t.height;const V=b.select("path:last-child");if(V.node()){const W=V.node().getBBox();t.height=W.height,M=W.height}return r||(T.attr("data-et","participant"),T.attr("data-type","queue"),T.attr("data-id",t.name)),M},"drawActorTypeQueue"),Ar=x(function(e,t,a,r,i,n){const s=r?t.stopy:t.starty,o=t.x+t.width/2,u=s+75,{look:d,theme:p,themeVariables:_}=a,{bkgColorArray:E,borderColorArray:O,actorBorder:T,actorBkg:g}=_,f=e.append("g").lower();r||(B++,f.append("line").attr("id","actor"+B).attr("x1",o).attr("y1",u).attr("x2",o).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=B);const I=e.append("g");let L=yt;r?L+=` ${_t}`:L+=` ${ft}`,I.attr("class",L),I.attr("name",t.name);const b=dt();b.x=t.x,b.y=s,b.fill="#eaeaea",b.width=t.width,b.height=t.height,b.class="actor";const w=t.x+t.width/2,A=s+32,D=22;I.append("defs").append("marker").attr("id",i+"-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"),I.append("circle").attr("cx",w).attr("cy",A).attr("r",D).attr("filter",`${d==="neo"?"url(#drop-shadow)":""}`),I.append("line").attr("marker-end","url(#"+i+"-filled-head-control)").attr("transform",`translate(${w}, ${A-D})`);const M=n.get(t.name)??0;pt.has(p)?(I.style("stroke",O[M%O.length]),I.style("fill",E[M%O.length])):(I.style("stroke",T),I.style("fill",g));const V=I.node().getBBox();return t.height=V.height+2*(a?.sequence?.labelBoxHeight??0),Et(a,Q(t.description))(t.description,I,b.x,b.y+D+(r?5:12),b.width,b.height,{class:`actor ${yt}`},a),r||(I.attr("data-et","participant"),I.attr("data-type","control"),I.attr("data-id",t.name)),t.height},"drawActorTypeControl"),Sr=x(function(e,t,a,r,i){const n=r?t.stopy:t.starty,s=t.x+t.width/2,o=n+75,{look:u,theme:d,themeVariables:p}=a,{bkgColorArray:_,borderColorArray:E}=p,O=e.append("g").lower(),T=e.append("g");let g="actor";r?g+=` ${_t}`:g+=` ${ft}`,T.attr("class",g),T.attr("name",t.name);const f=dt();f.x=t.x,f.y=n,f.fill="#eaeaea",f.width=t.width,f.height=t.height,f.class="actor";const I=t.x+t.width/2,L=n+(r?10:25),b=22;T.append("circle").attr("cx",I).attr("cy",L).attr("r",b).attr("width",t.width).attr("height",t.height),T.append("line").attr("x1",I-b).attr("x2",I+b).attr("y1",L+b).attr("y2",L+b).attr("stroke-width",2),u==="neo"&&T.attr("filter","url(#drop-shadow)");const w=i.get(t.name)??0;pt.has(d)&&(T.style("stroke",E[w%E.length]),T.style("fill",_[w%E.length]));const A=T.node().getBBox();return t.height=A.height+(a?.sequence?.labelBoxHeight??0),r||(B++,O.append("line").attr("id","actor"+B).attr("x1",s).attr("y1",o).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=B),Et(a,Q(t.description))(t.description,T,f.x,f.y+(r?15:30),f.width,f.height,{class:`actor ${yt}`},a),r?T.attr("transform",`translate(0, ${b})`):(T.attr("transform",`translate(0, ${b/2-5})`),T.attr("data-et","participant"),T.attr("data-type","entity"),T.attr("data-id",t.name)),t.height},"drawActorTypeEntity"),wr=x(function(e,t,a,r,i){const n=r?t.stopy:t.starty,s=t.x+t.width/2,o=n+t.height+2*a.boxTextMargin,{theme:u,themeVariables:d,look:p}=a,{bkgColorArray:_,borderColorArray:E,actorBorder:O}=d,T=e.append("g").lower();let g=T;r||(B++,Object.keys(t.links||{}).length&&!a.forceMenus&&g.attr("onclick",Ht(`actor${B}_popup`)).attr("cursor","pointer"),g.append("line").attr("id","actor"+B).attr("x1",s).attr("y1",o).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=T.append("g"),t.actorCnt=B,t.links!=null&&g.attr("id","root-"+B),p==="neo"&&g.attr("data-look","neo"));const f=dt();let I="actor";t.properties?.class?I=t.properties.class:f.fill="#eaeaea",r?I+=` ${_t}`:I+=` ${ft}`,f.x=t.x,f.y=n,f.width=t.width,f.height=t.height,f.class=I,f.name=t.name,f.x=t.x,f.y=n;const L=f.width/3,b=f.width/3,w=L/2,A=w/(2.5+L/50),D=g.append("g");D.attr("class",I);const M=` M ${f.x},${f.y+A} a ${w},${A} 0 0 0 ${L},0 a ${w},${A} 0 0 0 -${L},0 l 0,${b-2*A} a ${w},${A} 0 0 0 ${L},0 l 0,-${b-2*A} -`;D.append("path").attr("d",M),p==="neo"&&D.attr("filter","url(#drop-shadow)");const V=i.get(t.name)??0;pt.has(u)?(D.style("stroke",E[V%E.length]),D.style("fill",_[V%E.length])):D.style("stroke",O),D.attr("transform",`translate(${L}, ${A})`),t.rectData=f,Et(a,Q(t.description))(t.description,g,f.x,f.y+35,f.width,f.height,{class:`actor ${Ht}`},a);const W=D.select("path:last-child");if(W.node()){const U=W.node().getBBox();t.height=U.height+(a.sequence.labelBoxHeight??0)}return r||(g.attr("data-et","participant"),g.attr("data-type","database"),g.attr("data-id",t.name)),t.height},"drawActorTypeDatabase"),Nr=x(function(e,t,a,r,i){const n=r?t.stopy:t.starty,s=t.x+t.width/2,o=n+80,u=22,d=e.append("g").lower(),{look:p,theme:_,themeVariables:E}=a,{bkgColorArray:O,borderColorArray:T,actorBorder:g}=E;r||(B++,d.append("line").attr("id","actor"+B).attr("x1",s).attr("y1",o).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=B);const f=e.append("g");let I=yt;r?I+=` ${_t}`:I+=` ${ft}`,f.attr("class",I),f.attr("name",t.name);const L=dt();L.x=t.x,L.y=n,L.fill="#eaeaea",L.width=t.width,L.height=t.height,L.class="actor",f.append("line").attr("id","actor-man-torso"+B).attr("x1",t.x+t.width/2-u*2.5).attr("y1",n+12).attr("x2",t.x+t.width/2-15).attr("y2",n+12),f.append("line").attr("id","actor-man-arms"+B).attr("x1",t.x+t.width/2-u*2.5).attr("y1",n+2).attr("x2",t.x+t.width/2-u*2.5).attr("y2",n+22),f.append("circle").attr("cx",t.x+t.width/2).attr("cy",n+12).attr("r",u),p==="neo"&&f.attr("filter","url(#drop-shadow)");const b=i.get(t.name)??0;pt.has(_)?(f.style("stroke",T[b%T.length]),f.style("fill",O[b%T.length])):f.style("stroke",g);const w=f.node().getBBox();return t.height=w.height+(a.sequence.labelBoxHeight??0),Et(a,Q(t.description))(t.description,f,L.x,L.y+15,L.width,L.height,{class:`actor ${yt}`},a),f.attr("transform",`translate(0,${u/2+10})`),r||(f.attr("data-et","participant"),f.attr("data-type","boundary"),f.attr("data-id",t.name)),t.height},"drawActorTypeBoundary"),Pr=x(function(e,t,a,r,i){const n=r?t.stopy:t.starty,s=t.x+t.width/2,o=n+80,{look:u,theme:d,themeVariables:p}=a,{bkgColorArray:_,borderColorArray:E,actorBorder:O}=p,T=e.append("g").lower();r||(B++,T.append("line").attr("id","actor"+B).attr("x1",s).attr("y1",o).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=B);const g=e.append("g");let f=yt;r?f+=` ${_t}`:f+=` ${ft}`,g.attr("class",f),g.attr("name",t.name),r||g.attr("data-et","participant").attr("data-type","actor").attr("data-id",t.name);const I=u==="neo"?.5:1,L=u==="neo"?n+(1-I)*30:n;g.append("line").attr("id","actor-man-torso"+B).attr("x1",s).attr("y1",L+25*I).attr("x2",s).attr("y2",L+45*I),g.append("line").attr("id","actor-man-arms"+B).attr("x1",s-It/2*I).attr("y1",L+33*I).attr("x2",s+It/2*I).attr("y2",L+33*I),g.append("line").attr("x1",s-It/2*I).attr("y1",L+60*I).attr("x2",s).attr("y2",L+45*I),g.append("line").attr("x1",s).attr("y1",L+45*I).attr("x2",s+(It/2-2)*I).attr("y2",L+60*I);const b=g.append("circle");b.attr("cx",t.x+t.width/2),b.attr("cy",L+10*I),b.attr("r",15*I),b.attr("width",t.width*I),b.attr("height",t.height*I);const w=g.node().getBBox();t.height=w.height;const A=dt();A.x=t.x,A.y=L,A.fill="#eaeaea",A.width=t.width,A.height=t.height/I,A.class="actor",A.rx=3,A.ry=3;const D=i.get(t.name)??0;return pt.has(d)?(g.style("stroke",E[D%E.length]),g.style("fill",_[D%E.length])):g.style("stroke",O),Et(a,Q(t.description))(t.description,g,A.x,L+35*I-(u==="neo"?10:0),A.width,A.height,{class:`actor ${yt}`},a),t.height},"drawActorTypeActor"),kr=x(async function(e,t,a,r,i,n,s){const o=s??new Map([...n.db.getActors().values()].map((u,d)=>[u.name,d]));switch(t.type){case"actor":return await Pr(e,t,a,r,o);case"participant":return await Lr(e,t,a,r,o);case"boundary":return await Nr(e,t,a,r,o);case"control":return await Ar(e,t,a,r,i,o);case"entity":return await Sr(e,t,a,r,o);case"database":return await wr(e,t,a,r,o);case"collections":return await br(e,t,a,r,o);case"queue":return await mr(e,t,a,r,o)}},"drawActor"),Dr=x(function(e,t,a){const i=e.append("g");We(i,t),t.name&&Et(a)(t.name,i,t.x,t.y+a.boxTextMargin+(t.textMaxHeight||0)/2,t.width,0,{class:"text"},a),i.lower()},"drawBox"),vr=x(function(e){return e.append("g")},"anchorElement"),Cr=x(function(e,t,a,r,i,n,s){const{theme:o,themeVariables:u}=r,{bkgColorArray:d,borderColorArray:p,mainBkg:_}=u,E=dt(),O=t.anchored,T=t.actor;E.x=t.startx,E.y=t.starty,E.class="activation"+i%3,E.width=t.stopx-t.startx,E.height=a-t.starty;const g=Nt(O,E),I=(s??new Map([...n.db.getActors().values()].map((L,b)=>[L.name,b]))).get(T)??0;pt.has(o)&&(g.style("stroke",p[I%p.length]),g.style("fill",d[I%p.length]??_))},"drawActivation"),Mr=x(async function(e,t,a,r,i){const{boxMargin:n,boxTextMargin:s,labelBoxHeight:o,labelBoxWidth:u,messageFontFamily:d,messageFontSize:p,messageFontWeight:_}=r,E=e.append("g").attr("data-et","control-structure").attr("data-id","i"+i.id),O=x(function(f,I,L,b){return E.append("line").attr("x1",f).attr("y1",I).attr("x2",L).attr("y2",b).attr("class","loopLine")},"drawLoopLine");O(t.startx,t.starty,t.stopx,t.starty),O(t.stopx,t.starty,t.stopx,t.stopy),O(t.startx,t.stopy,t.stopx,t.stopy),O(t.startx,t.starty,t.startx,t.stopy),t.sections!==void 0&&t.sections.forEach(function(f){O(t.startx,f.y,t.stopx,f.y).style("stroke-dasharray","3, 3")});let T=ae();T.text=a,T.x=t.startx,T.y=t.starty,T.fontFamily=d,T.fontSize=p,T.fontWeight=_,T.anchor="middle",T.valign="middle",T.tspan=!1,T.width=Math.max(u??0,50),T.height=o+(r.look==="neo"?15:0)||20,T.textMargin=s,T.class="labelText",Ve(E,T),T=Ke(),T.text=t.title,T.x=t.startx+u/2+(t.stopx-t.startx)/2,T.y=t.starty+n+s,T.anchor="middle",T.valign="middle",T.textMargin=s,T.class="loopText",T.fontFamily=d,T.fontSize=p,T.fontWeight=_,T.wrap=!0;let g=Q(T.text)?await Ft(E,T,t):mt(E,T);if(t.sectionTitles!==void 0){for(const[f,I]of Object.entries(t.sectionTitles))if(I.message){T.text=I.message,T.x=t.startx+(t.stopx-t.startx)/2,T.y=t.sections[f].y+n+s,T.class="sectionTitle",T.anchor="middle",T.valign="middle",T.tspan=!1,T.fontFamily=d,T.fontSize=p,T.fontWeight=_,T.wrap=t.wrap,Q(T.text)?(t.starty=t.sections[f].y,await Ft(E,T,t)):mt(E,T);let L=Math.round(g.map(b=>(b._groups||b)[0][0].getBBox().height).reduce((b,w)=>b+w));t.sections[f].height+=L-(n+s)}}return t.height=Math.round(t.stopy-t.starty),E},"drawLoop"),We=x(function(e,t){Er(e,t)},"drawBackgroundRect"),Br=x(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"),Vr=x(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"),Yr=x(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"),Wr=x(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"),Kr=x(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"),Fr=x(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"),Hr=x(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"),qr=x(function(e,t){const{theme:a}=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",`${a==="redux"||a==="redux-color"?"#000000":"#FFFFFF"}`)},"insertDropShadow"),Ke=x(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"),zr=x(function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),Et=(function(){function e(n,s,o,u,d,p,_){const E=s.append("text").attr("x",o+d/2).attr("y",u+p/2+5).style("text-anchor","middle").text(n);i(E,_)}x(e,"byText");function t(n,s,o,u,d,p,_,E){const{actorFontSize:O,actorFontFamily:T,actorFontWeight:g}=E,[f,I]=Me(O),L=n.split(N.lineBreakRegex);for(let b=0;be.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:x(function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},"clear"),addBox:x(function(e){this.boxes.push(e)},"addBox"),addActor:x(function(e){this.actors.push(e)},"addActor"),addLoop:x(function(e){this.loops.push(e)},"addLoop"),addMessage:x(function(e){this.messages.push(e)},"addMessage"),addNote:x(function(e){this.notes.push(e)},"addNote"),lastActor:x(function(){return this.actors[this.actors.length-1]},"lastActor"),lastLoop:x(function(){return this.loops[this.loops.length-1]},"lastLoop"),lastMessage:x(function(){return this.messages[this.messages.length-1]},"lastMessage"),lastNote:x(function(){return this.notes[this.notes.length-1]},"lastNote"),actors:[],boxes:[],loops:[],messages:[],notes:[]},init:x(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,qe($())},"init"),updateVal:x(function(e,t,a,r){e[t]===void 0?e[t]=a:e[t]=r(a,e[t])},"updateVal"),updateBounds:x(function(e,t,a,r){const i=this;let n=0;function s(o){return x(function(d){n++;const p=i.sequenceItems.length-n+1;i.updateVal(d,"starty",t-p*l.boxMargin,Math.min),i.updateVal(d,"stopy",r+p*l.boxMargin,Math.max),i.updateVal(R.data,"startx",e-p*l.boxMargin,Math.min),i.updateVal(R.data,"stopx",a+p*l.boxMargin,Math.max),o!=="activation"&&(i.updateVal(d,"startx",e-p*l.boxMargin,Math.min),i.updateVal(d,"stopx",a+p*l.boxMargin,Math.max),i.updateVal(R.data,"starty",t-p*l.boxMargin,Math.min),i.updateVal(R.data,"stopy",r+p*l.boxMargin,Math.max))},"updateItemBounds")}x(s,"updateFn"),this.sequenceItems.forEach(s()),this.activations.forEach(s("activation"))},"updateBounds"),insert:x(function(e,t,a,r){const i=N.getMin(e,a),n=N.getMax(e,a),s=N.getMin(t,r),o=N.getMax(t,r);this.updateVal(R.data,"startx",i,Math.min),this.updateVal(R.data,"starty",s,Math.min),this.updateVal(R.data,"stopx",n,Math.max),this.updateVal(R.data,"stopy",o,Math.max),this.updateBounds(i,s,n,o)},"insert"),newActivation:x(function(e,t,a){const r=a.get(e.from),i=zt(e.from).length||0,n=r.x+r.width/2+(i-1)*l.activationWidth/2;this.activations.push({startx:n,starty:this.verticalPos+2,stopx:n+l.activationWidth,stopy:void 0,actor:e.from,anchored:H.anchorElement(t)})},"newActivation"),endActivation:x(function(e){const t=this.activations.map(function(a){return a.actor}).lastIndexOf(e.from);return this.activations.splice(t,1)[0]},"endActivation"),createLoop:x(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:x(function(e={message:void 0,wrap:!1,width:void 0},t){this.sequenceItems.push(this.createLoop(e,t))},"newLoop"),endLoop:x(function(){return this.sequenceItems.pop()},"endLoop"),isLoopOverlap:x(function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},"isLoopOverlap"),addSectionToLoop:x(function(e){const t=this.sequenceItems.pop();t.sections=t.sections||[],t.sectionTitles=t.sectionTitles||[],t.sections.push({y:R.getVerticalPos(),height:0}),t.sectionTitles.push(e),this.sequenceItems.push(t)},"addSectionToLoop"),saveVerticalPos:x(function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},"saveVerticalPos"),resetVerticalPos:x(function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},"resetVerticalPos"),bumpVerticalPos:x(function(e){this.verticalPos=this.verticalPos+e,this.data.stopy=N.getMax(this.data.stopy,this.verticalPos)},"bumpVerticalPos"),getVerticalPos:x(function(){return this.verticalPos},"getVerticalPos"),getBounds:x(function(){return{bounds:this.data,models:this.models}},"getBounds")},Qr=x(async function(e,t,a){R.bumpVerticalPos(l.boxMargin),t.height=l.boxMargin,t.starty=R.getVerticalPos();const r=dt();r.x=t.startx,r.y=t.starty,r.width=t.width||l.width,r.class="note";const i=e.append("g");i.attr("data-et","note"),i.attr("data-id","i"+a);const n=H.drawRect(i,r),s=ae();s.x=t.startx,s.y=t.starty,s.width=r.width,s.dy="1em",s.text=t.message,s.class="noteText",s.fontFamily=l.noteFontFamily,s.fontSize=l.noteFontSize,s.fontWeight=l.noteFontWeight,s.anchor=l.noteAlign,s.textMargin=l.noteMargin,s.valign="center";const o=Q(s.text)?await Ft(i,s):mt(i,s),u=Math.round(o.map(d=>(d._groups||d)[0][0].getBBox().height).reduce((d,p)=>d+p));n.attr("height",u+2*l.noteMargin),t.height+=u+2*l.noteMargin,R.bumpVerticalPos(u+2*l.noteMargin),t.stopy=t.starty+u+2*l.noteMargin,t.stopx=t.startx+r.width,R.insert(t.startx,t.starty,t.stopx,t.stopy),R.models.addNote(t)},"drawNote"),De=x(function(e,t,a,r,i,n,s){const o=r.db.getActors(),u=o.get(t.from),d=o.get(t.to),p=a.sequenceVisible;let _=u.x+u.width/2,E=d.x+d.width/2;const O=_<=E,T=Xe(t,r),g=e.append("g"),f=16.5,I=x((D,M)=>{const V=D?f:-f;return M?-V:V},"getCircleOffset"),L=x(D=>{g.append("circle").attr("cx",D).attr("cy",s).attr("r",5).attr("width",10).attr("height",10)},"drawCircle"),{CENTRAL_CONNECTION:b,CENTRAL_CONNECTION_REVERSE:w,CENTRAL_CONNECTION_DUAL:A}=r.db.LINETYPE;if(p)switch(t.centralConnection){case b:T&&(E+=I(O,!0));break;case w:T||(_+=I(O,!1));break;case A:T?E+=I(O,!0):_+=I(O,!1);break}switch(t.centralConnection){case b:L(E);break;case w:L(_);break;case A:L(_),L(E);break}},"drawCentralConnection"),Rt=x(e=>({fontFamily:e.messageFontFamily,fontSize:e.messageFontSize,fontWeight:e.messageFontWeight}),"messageFont"),bt=x(e=>({fontFamily:e.noteFontFamily,fontSize:e.noteFontSize,fontWeight:e.noteFontWeight}),"noteFont"),ee=x(e=>({fontFamily:e.actorFontFamily,fontSize:e.actorFontSize,fontWeight:e.actorFontWeight}),"actorFont");async function Fe(e,t){R.bumpVerticalPos(10);const{startx:a,stopx:r,message:i}=t,n=N.splitBreaks(i).length,s=Q(i),o=s?await Pt(i,$()):Z.calculateTextDimensions(i,Rt(l));if(!s){const _=o.height/n;t.height+=_,R.bumpVerticalPos(_)}let u,d=o.height-10;const p=o.width;if(a===r){u=R.getVerticalPos()+d,l.rightAngles||(d+=l.boxMargin,u=R.getVerticalPos()+d),d+=30;const _=N.getMax(p/2,l.width/2);R.insert(a-_,R.getVerticalPos()-10+d,r+_,R.getVerticalPos()+30+d)}else d+=l.boxMargin,u=R.getVerticalPos()+d,R.insert(a,u-10,r,u);return R.bumpVerticalPos(d),t.height+=d,t.stopy=t.starty+t.height,R.insert(t.fromBounds,t.starty,t.toBounds,t.stopy),u}x(Fe,"boundMessage");var $r=x(async function(e,t,a,r,i,n){const{startx:s,stopx:o,starty:u,message:d,type:p,sequenceIndex:_,sequenceVisible:E}=t,O=Z.calculateTextDimensions(d,Rt(l)),T=ae();T.x=Math.min(s,o),T.y=u+10,T.width=Math.abs(o-s),T.class="messageText",T.dy="1em",T.text=d,T.fontFamily=l.messageFontFamily,T.fontSize=l.messageFontSize,T.fontWeight=l.messageFontWeight,T.anchor=l.messageAlign,T.valign="center",T.textMargin=l.wrapPadding,T.tspan=!1,Q(T.text)?await Ft(e,T,{startx:s,stopx:o,starty:a}):mt(e,T);const g=O.width;let f;if(s===o){const L=E||l.showSequenceNumbers,b=Xe(i,r),w=ia(i,r),A=s+(L&&(b||w)?10:0);l.rightAngles?f=e.append("path").attr("d",`M ${A},${a} H ${s+N.getMax(l.width/2,g/2)} V ${a+25} H ${s}`):f=e.append("path").attr("d","M "+A+","+a+" C "+(A+60)+","+(a-10)+" "+(s+60)+","+(a+30)+" "+s+","+(a+20)),jt(i,r)&&De(e,i,t,r,s,o,a)}else f=e.append("line"),f.attr("x1",s),f.attr("y1",a),f.attr("x2",o),f.attr("y2",a),jt(i,r)&&De(e,i,t,r,s,o,a);p===r.db.LINETYPE.DOTTED||p===r.db.LINETYPE.DOTTED_CROSS||p===r.db.LINETYPE.DOTTED_POINT||p===r.db.LINETYPE.DOTTED_OPEN||p===r.db.LINETYPE.BIDIRECTIONAL_DOTTED||p===r.db.LINETYPE.SOLID_TOP_DOTTED||p===r.db.LINETYPE.SOLID_BOTTOM_DOTTED||p===r.db.LINETYPE.STICK_TOP_DOTTED||p===r.db.LINETYPE.STICK_BOTTOM_DOTTED||p===r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED||p===r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED||p===r.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED||p===r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED?(f.style("stroke-dasharray","3, 3"),f.attr("class","messageLine1")):f.attr("class","messageLine0"),f.attr("data-et","message"),f.attr("data-id","i"+t.id),f.attr("data-from",t.from),f.attr("data-to",t.to);let I="";if(l.arrowMarkerAbsolute&&(I=pr(!0)),f.attr("stroke-width",2),f.attr("stroke","none"),f.style("fill","none"),(p===r.db.LINETYPE.SOLID_TOP||p===r.db.LINETYPE.SOLID_TOP_DOTTED)&&f.attr("marker-end","url("+I+"#"+n+"-solidTopArrowHead)"),(p===r.db.LINETYPE.SOLID_BOTTOM||p===r.db.LINETYPE.SOLID_BOTTOM_DOTTED)&&f.attr("marker-end","url("+I+"#"+n+"-solidBottomArrowHead)"),(p===r.db.LINETYPE.STICK_TOP||p===r.db.LINETYPE.STICK_TOP_DOTTED)&&f.attr("marker-end","url("+I+"#"+n+"-stickTopArrowHead)"),(p===r.db.LINETYPE.STICK_BOTTOM||p===r.db.LINETYPE.STICK_BOTTOM_DOTTED)&&f.attr("marker-end","url("+I+"#"+n+"-stickBottomArrowHead)"),(p===r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE||p===r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED)&&f.attr("marker-start","url("+I+"#"+n+"-solidBottomArrowHead)"),(p===r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE||p===r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED)&&f.attr("marker-start","url("+I+"#"+n+"-solidTopArrowHead)"),(p===r.db.LINETYPE.STICK_ARROW_TOP_REVERSE||p===r.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED)&&f.attr("marker-start","url("+I+"#"+n+"-stickBottomArrowHead)"),(p===r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE||p===r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED)&&f.attr("marker-start","url("+I+"#"+n+"-stickTopArrowHead)"),(p===r.db.LINETYPE.SOLID||p===r.db.LINETYPE.DOTTED)&&f.attr("marker-end","url("+I+"#"+n+"-arrowhead)"),(p===r.db.LINETYPE.BIDIRECTIONAL_SOLID||p===r.db.LINETYPE.BIDIRECTIONAL_DOTTED)&&(f.attr("marker-start","url("+I+"#"+n+"-arrowhead)"),f.attr("marker-end","url("+I+"#"+n+"-arrowhead)")),(p===r.db.LINETYPE.SOLID_POINT||p===r.db.LINETYPE.DOTTED_POINT)&&f.attr("marker-end","url("+I+"#"+n+"-filled-head)"),(p===r.db.LINETYPE.SOLID_CROSS||p===r.db.LINETYPE.DOTTED_CROSS)&&f.attr("marker-end","url("+I+"#"+n+"-crosshead)"),E||l.showSequenceNumbers){const L=p===r.db.LINETYPE.BIDIRECTIONAL_SOLID||p===r.db.LINETYPE.BIDIRECTIONAL_DOTTED,b=p===r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE||p===r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED||p===r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE||p===r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED||p===r.db.LINETYPE.STICK_ARROW_TOP_REVERSE||p===r.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED||p===r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE||p===r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,w=6,A=jt(i,r);let D=s,M=o;L?(ss?M=o-2*w:(M=o-w,D+=i?.centralConnection===r.db.LINETYPE.CENTRAL_CONNECTION_DUAL||i?.centralConnection===r.db.LINETYPE.CENTRAL_CONNECTION_REVERSE?-7.5:0),M+=A?15:0,f.attr("x2",M),f.attr("x1",D)):f.attr("x1",s+w);let V=0;const W=s===o,U=s<=o;W?V=t.fromBounds+1:b?V=U?t.toBounds-1:t.fromBounds+1:V=U?t.fromBounds+1:t.toBounds-1;let G="12px";const X=_.toString().length;X>5?G="7px":X>3&&(G="9px"),e.append("line").attr("x1",V).attr("y1",a).attr("x2",V).attr("y2",a).attr("stroke-width",0).attr("marker-start","url("+I+"#"+n+"-sequencenumber)"),e.append("text").attr("x",V).attr("y",a+4).attr("font-family","sans-serif").attr("font-size",G).attr("text-anchor","middle").attr("class","sequenceNumber").text(_)}},"drawMessage"),jr=x(function(e,t,a,r,i,n,s){let o=0,u=0,d,p=0;for(const _ of r){const E=t.get(_),O=E.box;d&&d!=O&&(s||R.models.addBox(d),u+=l.boxMargin+d.margin),O&&O!=d&&(s||(O.x=o+u,O.y=i),u+=O.margin),E.width=N.getMax(E.width||l.width,l.width),E.height=N.getMax(E.height||l.height,l.height),E.margin=E.margin||l.actorMargin,p=N.getMax(p,E.height),a.get(E.name)&&(u+=E.width/2),E.x=o+u,E.starty=R.getVerticalPos(),R.insert(E.x,i,E.x+E.width,E.height),o+=E.width+u,E.box&&(E.box.width=o+O.margin-E.box.x),u=E.margin,d=E.box,R.models.addActor(E)}d&&!s&&R.models.addBox(d),R.bumpVerticalPos(p)},"addActorRenderingData"),re=x(async function(e,t,a,r,i,n,s){if(r){let o=0;R.bumpVerticalPos(l.boxMargin*2);for(const u of a){const d=t.get(u);d.stopy||(d.stopy=R.getVerticalPos());const p=await H.drawActor(e,d,l,!0,i,n,s);o=N.getMax(o,p)}R.bumpVerticalPos(o+l.boxMargin)}else for(const o of a){const u=t.get(o);await H.drawActor(e,u,l,!1,i,n,s)}},"drawActors"),He=x(function(e,t,a,r){let i=0,n=0;for(const s of a){const o=t.get(s),u=ea(o),d=H.drawPopup(e,o,u,l,l.forceMenus,r);d.height>i&&(i=d.height),d.width+o.x>n&&(n=d.width+o.x)}return{maxHeight:i,maxWidth:n}},"drawActorsPopup"),qe=x(function(e){ar(l,e),e.fontFamily&&(l.actorFontFamily=l.noteFontFamily=l.messageFontFamily=e.fontFamily),e.fontSize&&(l.actorFontSize=l.noteFontSize=l.messageFontSize=e.fontSize),e.fontWeight&&(l.actorFontWeight=l.noteFontWeight=l.messageFontWeight=e.fontWeight)},"setConf"),zt=x(function(e){return R.activations.filter(function(t){return t.actor===e})},"actorActivations"),ve=x(function(e,t){const a=t.get(e),r=zt(e),i=r.reduce(function(s,o){return N.getMin(s,o.startx)},a.x+a.width/2-1),n=r.reduce(function(s,o){return N.getMax(s,o.stopx)},a.x+a.width/2+1);return[i,n]},"activationBounds");function ht(e,t,a,r,i){R.bumpVerticalPos(a);let n=r;if(t.id&&t.message&&e[t.id]){const s=e[t.id].width,o=Rt(l);t.message=Z.wrapLabel(`[${t.message}]`,s-2*l.wrapPadding,o),t.width=s,t.wrap=!0;const u=Z.calculateTextDimensions(t.message,o),d=N.getMax(u.height,l.labelBoxHeight);n=r+d,at.debug(`${d} - ${t.message}`)}i(t),R.bumpVerticalPos(n)}x(ht,"adjustLoopHeightForWrap");function ze(e,t,a,r,i,n,s){function o(p,_){p.x{m.add(k.from),m.add(k.to)}),f=f.filter(k=>m.has(k))}const D=new Map(f.map((m,k)=>[E.get(m)?.name??m,k]));jr(_,E,O,f,0,I,!1);const M=await oa(I,E,A,r);H.insertArrowHead(_,t),H.insertArrowCrossHead(_,t),H.insertArrowFilledHead(_,t),H.insertSequenceNumber(_,t),H.insertSolidTopArrowHead(_,t),H.insertSolidBottomArrowHead(_,t),H.insertStickTopArrowHead(_,t),H.insertStickBottomArrowHead(_,t),s==="neo"&&H.insertDropShadow(_,l);function V(m,k){const lt=R.endActivation(m);lt.starty+18>k&&(lt.starty=k-6,k+=12),H.drawActivation(_,lt,k,l,zt(m.from).length,r,D),R.insert(lt.startx,k-10,lt.stopx,k)}x(V,"activeEnd");let W=1,U=1;const G=[],X=[];let nt=0;for(const m of I){let k,lt,et;switch(m.type){case r.db.LINETYPE.NOTE:R.resetVerticalPos(),lt=m.noteModel,await Qr(_,lt,m.id);break;case r.db.LINETYPE.ACTIVE_START:R.newActivation(m,_,E);break;case r.db.LINETYPE.CENTRAL_CONNECTION:R.newActivation(m,_,E);break;case r.db.LINETYPE.CENTRAL_CONNECTION_REVERSE:R.newActivation(m,_,E);break;case r.db.LINETYPE.ACTIVE_END:V(m,R.getVerticalPos());break;case r.db.LINETYPE.LOOP_START:ht(M,m,l.boxMargin,l.boxMargin+l.boxTextMargin,K=>R.newLoop(K));break;case r.db.LINETYPE.LOOP_END:k=R.endLoop(),await H.drawLoop(_,k,"loop",l,m),R.bumpVerticalPos(k.stopy-R.getVerticalPos()),R.models.addLoop(k);break;case r.db.LINETYPE.RECT_START:ht(M,m,l.boxMargin,l.boxMargin,K=>{let Ot=K.message;Ot||(Ot=o?.rectBkgColor||o?.actorBkg||"rgba(128, 128, 128, 0.5)"),R.newLoop(void 0,Ot)});break;case r.db.LINETYPE.RECT_END:k=R.endLoop(),X.push(k),R.models.addLoop(k),R.bumpVerticalPos(k.stopy-R.getVerticalPos());break;case r.db.LINETYPE.OPT_START:ht(M,m,l.boxMargin,l.boxMargin+l.boxTextMargin,K=>R.newLoop(K));break;case r.db.LINETYPE.OPT_END:k=R.endLoop(),await H.drawLoop(_,k,"opt",l,m),R.bumpVerticalPos(k.stopy-R.getVerticalPos()),R.models.addLoop(k);break;case r.db.LINETYPE.ALT_START:ht(M,m,l.boxMargin,l.boxMargin+l.boxTextMargin,K=>R.newLoop(K));break;case r.db.LINETYPE.ALT_ELSE:ht(M,m,l.boxMargin+l.boxTextMargin,l.boxMargin,K=>R.addSectionToLoop(K));break;case r.db.LINETYPE.ALT_END:k=R.endLoop(),await H.drawLoop(_,k,"alt",l,m),R.bumpVerticalPos(k.stopy-R.getVerticalPos()),R.models.addLoop(k);break;case r.db.LINETYPE.PAR_START:case r.db.LINETYPE.PAR_OVER_START:ht(M,m,l.boxMargin,l.boxMargin+l.boxTextMargin,K=>R.newLoop(K)),R.saveVerticalPos();break;case r.db.LINETYPE.PAR_AND:ht(M,m,l.boxMargin+l.boxTextMargin,l.boxMargin,K=>R.addSectionToLoop(K));break;case r.db.LINETYPE.PAR_END:k=R.endLoop(),await H.drawLoop(_,k,"par",l,m),R.bumpVerticalPos(k.stopy-R.getVerticalPos()),R.models.addLoop(k);break;case r.db.LINETYPE.AUTONUMBER:W=m.message.start||W,U=m.message.step||U,m.message.visible?r.db.enableSequenceNumbers():r.db.disableSequenceNumbers();break;case r.db.LINETYPE.CRITICAL_START:ht(M,m,l.boxMargin,l.boxMargin+l.boxTextMargin,K=>R.newLoop(K));break;case r.db.LINETYPE.CRITICAL_OPTION:ht(M,m,l.boxMargin+l.boxTextMargin,l.boxMargin,K=>R.addSectionToLoop(K));break;case r.db.LINETYPE.CRITICAL_END:k=R.endLoop(),await H.drawLoop(_,k,"critical",l,m),R.bumpVerticalPos(k.stopy-R.getVerticalPos()),R.models.addLoop(k);break;case r.db.LINETYPE.BREAK_START:ht(M,m,l.boxMargin,l.boxMargin+l.boxTextMargin,K=>R.newLoop(K));break;case r.db.LINETYPE.BREAK_END:k=R.endLoop(),await H.drawLoop(_,k,"break",l,m),R.bumpVerticalPos(k.stopy-R.getVerticalPos()),R.models.addLoop(k);break;default:try{et=m.msgModel,et.starty=R.getVerticalPos(),et.sequenceIndex=W,et.sequenceVisible=r.db.showSequenceNumbers(),et.id=m.id,et.from=m.from,et.to=m.to;const K=await Fe(_,et);ze(m,et,K,nt,E,O,T),G.push({messageModel:et,lineStartY:K,msg:m}),R.models.addMessage(et)}catch(K){at.error("error while drawing message",K)}}[r.db.LINETYPE.SOLID_OPEN,r.db.LINETYPE.DOTTED_OPEN,r.db.LINETYPE.SOLID,r.db.LINETYPE.SOLID_TOP,r.db.LINETYPE.SOLID_BOTTOM,r.db.LINETYPE.STICK_TOP,r.db.LINETYPE.STICK_BOTTOM,r.db.LINETYPE.SOLID_TOP_DOTTED,r.db.LINETYPE.SOLID_BOTTOM_DOTTED,r.db.LINETYPE.STICK_TOP_DOTTED,r.db.LINETYPE.STICK_BOTTOM_DOTTED,r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE,r.db.LINETYPE.STICK_ARROW_TOP_REVERSE,r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,r.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED,r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,r.db.LINETYPE.DOTTED,r.db.LINETYPE.SOLID_CROSS,r.db.LINETYPE.DOTTED_CROSS,r.db.LINETYPE.SOLID_POINT,r.db.LINETYPE.DOTTED_POINT,r.db.LINETYPE.BIDIRECTIONAL_SOLID,r.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(m.type)&&(W=Math.round((W+U)*100)/100),nt++}at.debug("createdActors",O),at.debug("destroyedActors",T),await re(_,E,f,!1,t,r,D);for(const m of G)await $r(_,m.messageModel,m.lineStartY,r,m.msg,t);l.mirrorActors&&await re(_,E,f,!0,t,r,D),X.forEach(m=>H.drawBackgroundRect(_,m)),Ye(_,E,f,l);for(const m of R.models.boxes){m.height=R.getVerticalPos()-m.y,R.insert(m.x,m.y,m.x+m.width,m.height);const k=l.boxMargin*2;m.startx=m.x-k,m.starty=m.y-k*.25,m.stopx=m.startx+m.width+2*k,m.stopy=m.starty+m.height+k*.75,m.stroke="rgb(0,0,0, 0.5)",H.drawBox(_,m,l)}b&&R.bumpVerticalPos(l.boxMargin);const j=He(_,E,f,p),{bounds:q}=R.getBounds();q.startx===void 0&&(q.startx=0),q.starty===void 0&&(q.starty=0),q.stopx===void 0&&(q.stopx=0),q.stopy===void 0&&(q.stopy=0);let st=q.stopy-q.starty;st{const s=Rt(l);let o=n.actorKeys.reduce((_,E)=>_+=e.get(E).width+(e.get(E).margin||0),0);const u=l.boxMargin*8;o+=u,o-=2*l.boxTextMargin,n.wrap&&(n.name=Z.wrapLabel(n.name,o-2*l.wrapPadding,s));const d=Z.calculateTextDimensions(n.name,s);i=N.getMax(d.height,i);const p=N.getMax(o,d.width+2*l.wrapPadding);if(n.margin=l.boxTextMargin,on.textMaxHeight=i),N.getMax(r,l.height)}x(Ge,"calculateActorMargins");var ra=x(async function(e,t,a){const r=t.get(e.from),i=t.get(e.to),n=r.x,s=i.x,o=e.wrap&&e.message;let u=Q(e.message)?await Pt(e.message,$()):Z.calculateTextDimensions(o?Z.wrapLabel(e.message,l.width,bt(l)):e.message,bt(l));const d={width:o?l.width:N.getMax(l.width,u.width+2*l.noteMargin),height:0,startx:r.x,stopx:0,starty:0,stopy:0,message:e.message};return e.placement===a.db.PLACEMENT.RIGHTOF?(d.width=o?N.getMax(l.width,u.width):N.getMax(r.width/2+i.width/2,u.width+2*l.noteMargin),d.startx=n+(r.width+l.actorMargin)/2):e.placement===a.db.PLACEMENT.LEFTOF?(d.width=o?N.getMax(l.width,u.width+2*l.noteMargin):N.getMax(r.width/2+i.width/2,u.width+2*l.noteMargin),d.startx=n-d.width+(r.width-l.actorMargin)/2):e.to===e.from?(u=Z.calculateTextDimensions(o?Z.wrapLabel(e.message,N.getMax(l.width,r.width),bt(l)):e.message,bt(l)),d.width=o?N.getMax(l.width,r.width):N.getMax(r.width,l.width,u.width+2*l.noteMargin),d.startx=n+(r.width-d.width)/2):(d.width=Math.abs(n+r.width/2-(s+i.width/2))+l.actorMargin,d.startx=n2,E=x(f=>u?-f:f,"adjustValue");e.from===e.to?p=d:(e.activate&&!_&&(p+=E(l.activationWidth/2-1)),[a.db.LINETYPE.SOLID_OPEN,a.db.LINETYPE.DOTTED_OPEN,a.db.LINETYPE.STICK_TOP,a.db.LINETYPE.STICK_BOTTOM,a.db.LINETYPE.STICK_TOP_DOTTED,a.db.LINETYPE.STICK_BOTTOM_DOTTED,a.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,a.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,a.db.LINETYPE.STICK_ARROW_TOP_REVERSE,a.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,a.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED,a.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,a.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,a.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE].includes(e.type)||(p+=E(3)),[a.db.LINETYPE.BIDIRECTIONAL_SOLID,a.db.LINETYPE.BIDIRECTIONAL_DOTTED,a.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,a.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,a.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,a.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE].includes(e.type)&&(d-=E(3)));const O=[i,n,s,o],T=Math.abs(d-p);e.wrap&&e.message&&(e.message=Z.wrapLabel(e.message,N.getMax(T+2*l.wrapPadding,l.width),Rt(l)));const g=Z.calculateTextDimensions(e.message,Rt(l));return{width:N.getMax(e.wrap?0:g.width+2*l.wrapPadding,T+2*l.wrapPadding,l.width),height:0,startx:d,stopx:p,starty:0,stopy:0,message:e.message,type:e.type,wrap:e.wrap,fromBounds:Math.min.apply(null,O),toBounds:Math.max.apply(null,O)}},"buildMessageModel"),oa=x(async function(e,t,a,r){const i={},n=[];let s,o,u;for(const d of e){switch(d.type){case r.db.LINETYPE.LOOP_START:case r.db.LINETYPE.ALT_START:case r.db.LINETYPE.OPT_START:case r.db.LINETYPE.PAR_START:case r.db.LINETYPE.PAR_OVER_START:case r.db.LINETYPE.CRITICAL_START:case r.db.LINETYPE.BREAK_START:n.push({id:d.id,msg:d.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case r.db.LINETYPE.ALT_ELSE:case r.db.LINETYPE.PAR_AND:case r.db.LINETYPE.CRITICAL_OPTION:d.message&&(s=n.pop(),i[s.id]=s,i[d.id]=s,n.push(s));break;case r.db.LINETYPE.LOOP_END:case r.db.LINETYPE.ALT_END:case r.db.LINETYPE.OPT_END:case r.db.LINETYPE.PAR_END:case r.db.LINETYPE.CRITICAL_END:case r.db.LINETYPE.BREAK_END:s=n.pop(),i[s.id]=s;break;case r.db.LINETYPE.ACTIVE_START:{const _=t.get(d.from?d.from:d.to.actor),E=zt(d.from?d.from:d.to.actor).length,O=_.x+_.width/2+(E-1)*l.activationWidth/2,T={startx:O,stopx:O+l.activationWidth,actor:d.from,enabled:!0};R.activations.push(T)}break;case r.db.LINETYPE.ACTIVE_END:{const _=R.activations.map(E=>E.actor).lastIndexOf(d.from);R.activations.splice(_,1).splice(0,1)}break}d.placement!==void 0?(o=await ra(d,t,r),d.noteModel=o,n.forEach(_=>{s=_,s.from=N.getMin(s.from,o.startx),s.to=N.getMax(s.to,o.startx+o.width),s.width=N.getMax(s.width,Math.abs(s.from-s.to))-l.labelBoxWidth})):(u=na(d,t,r),d.msgModel=u,u.startx&&u.stopx&&n.length>0&&n.forEach(_=>{if(s=_,u.startx===u.stopx){const E=t.get(d.from),O=t.get(d.to);s.from=N.getMin(E.x-u.width/2,E.x-E.width/2,s.from),s.to=N.getMax(O.x+u.width/2,O.x+E.width/2,s.to),s.width=N.getMax(s.width,Math.abs(s.to-s.from))-l.labelBoxWidth}else s.from=N.getMin(u.startx,s.from),s.to=N.getMax(u.stopx,s.to),s.width=N.getMax(s.width,u.width)-l.labelBoxWidth}))}return R.activations=[],at.debug("Loop type widths:",i),i},"calculateLoopBounds"),ca={bounds:R,drawActors:re,drawActorsPopup:He,setConf:qe,draw:ta},Ea={parser:fr,get db(){return new Ir},renderer:ca,styles:Rr,init:x(e=>{e.sequence||(e.sequence={}),e.wrap&&(e.sequence.wrap=e.wrap,er({sequence:{wrap:e.wrap}}))},"init")};export{Ea as diagram}; +`;D.append("path").attr("d",M),p==="neo"&&D.attr("filter","url(#drop-shadow)");const V=i.get(t.name)??0;pt.has(u)?(D.style("stroke",E[V%E.length]),D.style("fill",_[V%E.length])):D.style("stroke",O),D.attr("transform",`translate(${L}, ${A})`),t.rectData=f,Et(a,Q(t.description))(t.description,g,f.x,f.y+35,f.width,f.height,{class:`actor ${qt}`},a);const W=D.select("path:last-child");if(W.node()){const U=W.node().getBBox();t.height=U.height+(a.sequence.labelBoxHeight??0)}return r||(g.attr("data-et","participant"),g.attr("data-type","database"),g.attr("data-id",t.name)),t.height},"drawActorTypeDatabase"),Nr=x(function(e,t,a,r,i){const n=r?t.stopy:t.starty,s=t.x+t.width/2,o=n+80,u=22,d=e.append("g").lower(),{look:p,theme:_,themeVariables:E}=a,{bkgColorArray:O,borderColorArray:T,actorBorder:g}=E;r||(B++,d.append("line").attr("id","actor"+B).attr("x1",s).attr("y1",o).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=B);const f=e.append("g");let I=yt;r?I+=` ${_t}`:I+=` ${ft}`,f.attr("class",I),f.attr("name",t.name);const L=dt();L.x=t.x,L.y=n,L.fill="#eaeaea",L.width=t.width,L.height=t.height,L.class="actor",f.append("line").attr("id","actor-man-torso"+B).attr("x1",t.x+t.width/2-u*2.5).attr("y1",n+12).attr("x2",t.x+t.width/2-15).attr("y2",n+12),f.append("line").attr("id","actor-man-arms"+B).attr("x1",t.x+t.width/2-u*2.5).attr("y1",n+2).attr("x2",t.x+t.width/2-u*2.5).attr("y2",n+22),f.append("circle").attr("cx",t.x+t.width/2).attr("cy",n+12).attr("r",u),p==="neo"&&f.attr("filter","url(#drop-shadow)");const b=i.get(t.name)??0;pt.has(_)?(f.style("stroke",T[b%T.length]),f.style("fill",O[b%T.length])):f.style("stroke",g);const w=f.node().getBBox();return t.height=w.height+(a.sequence.labelBoxHeight??0),Et(a,Q(t.description))(t.description,f,L.x,L.y+15,L.width,L.height,{class:`actor ${yt}`},a),f.attr("transform",`translate(0,${u/2+10})`),r||(f.attr("data-et","participant"),f.attr("data-type","boundary"),f.attr("data-id",t.name)),t.height},"drawActorTypeBoundary"),Pr=x(function(e,t,a,r,i){const n=r?t.stopy:t.starty,s=t.x+t.width/2,o=n+80,{look:u,theme:d,themeVariables:p}=a,{bkgColorArray:_,borderColorArray:E,actorBorder:O}=p,T=e.append("g").lower();r||(B++,T.append("line").attr("id","actor"+B).attr("x1",s).attr("y1",o).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=B);const g=e.append("g");let f=yt;r?f+=` ${_t}`:f+=` ${ft}`,g.attr("class",f),g.attr("name",t.name),r||g.attr("data-et","participant").attr("data-type","actor").attr("data-id",t.name);const I=u==="neo"?.5:1,L=u==="neo"?n+(1-I)*30:n;g.append("line").attr("id","actor-man-torso"+B).attr("x1",s).attr("y1",L+25*I).attr("x2",s).attr("y2",L+45*I),g.append("line").attr("id","actor-man-arms"+B).attr("x1",s-It/2*I).attr("y1",L+33*I).attr("x2",s+It/2*I).attr("y2",L+33*I),g.append("line").attr("x1",s-It/2*I).attr("y1",L+60*I).attr("x2",s).attr("y2",L+45*I),g.append("line").attr("x1",s).attr("y1",L+45*I).attr("x2",s+(It/2-2)*I).attr("y2",L+60*I);const b=g.append("circle");b.attr("cx",t.x+t.width/2),b.attr("cy",L+10*I),b.attr("r",15*I),b.attr("width",t.width*I),b.attr("height",t.height*I);const w=g.node().getBBox();t.height=w.height;const A=dt();A.x=t.x,A.y=L,A.fill="#eaeaea",A.width=t.width,A.height=t.height/I,A.class="actor",A.rx=3,A.ry=3;const D=i.get(t.name)??0;return pt.has(d)?(g.style("stroke",E[D%E.length]),g.style("fill",_[D%E.length])):g.style("stroke",O),Et(a,Q(t.description))(t.description,g,A.x,L+35*I-(u==="neo"?10:0),A.width,A.height,{class:`actor ${yt}`},a),t.height},"drawActorTypeActor"),kr=x(async function(e,t,a,r,i,n,s){const o=s??new Map([...n.db.getActors().values()].map((u,d)=>[u.name,d]));switch(t.type){case"actor":return await Pr(e,t,a,r,o);case"participant":return await Lr(e,t,a,r,o);case"boundary":return await Nr(e,t,a,r,o);case"control":return await Ar(e,t,a,r,i,o);case"entity":return await Sr(e,t,a,r,o);case"database":return await wr(e,t,a,r,o);case"collections":return await br(e,t,a,r,o);case"queue":return await mr(e,t,a,r,o)}},"drawActor"),Dr=x(function(e,t,a){const i=e.append("g");We(i,t),t.name&&Et(a)(t.name,i,t.x,t.y+a.boxTextMargin+(t.textMaxHeight||0)/2,t.width,0,{class:"text"},a),i.lower()},"drawBox"),vr=x(function(e){return e.append("g")},"anchorElement"),Cr=x(function(e,t,a,r,i,n,s){const{theme:o,themeVariables:u}=r,{bkgColorArray:d,borderColorArray:p,mainBkg:_}=u,E=dt(),O=t.anchored,T=t.actor;E.x=t.startx,E.y=t.starty,E.class="activation"+i%3,E.width=t.stopx-t.startx,E.height=a-t.starty;const g=Nt(O,E),I=(s??new Map([...n.db.getActors().values()].map((L,b)=>[L.name,b]))).get(T)??0;pt.has(o)&&(g.style("stroke",p[I%p.length]),g.style("fill",d[I%p.length]??_))},"drawActivation"),Mr=x(async function(e,t,a,r,i){const{boxMargin:n,boxTextMargin:s,labelBoxHeight:o,labelBoxWidth:u,messageFontFamily:d,messageFontSize:p,messageFontWeight:_}=r,E=e.append("g").attr("data-et","control-structure").attr("data-id","i"+i.id),O=x(function(f,I,L,b){return E.append("line").attr("x1",f).attr("y1",I).attr("x2",L).attr("y2",b).attr("class","loopLine")},"drawLoopLine");O(t.startx,t.starty,t.stopx,t.starty),O(t.stopx,t.starty,t.stopx,t.stopy),O(t.startx,t.stopy,t.stopx,t.stopy),O(t.startx,t.starty,t.startx,t.stopy),t.sections!==void 0&&t.sections.forEach(function(f){O(t.startx,f.y,t.stopx,f.y).style("stroke-dasharray","3, 3")});let T=ae();T.text=a,T.x=t.startx,T.y=t.starty,T.fontFamily=d,T.fontSize=p,T.fontWeight=_,T.anchor="middle",T.valign="middle",T.tspan=!1,T.width=Math.max(u??0,50),T.height=o+(r.look==="neo"?15:0)||20,T.textMargin=s,T.class="labelText",Ve(E,T),T=Ke(),T.text=t.title,T.x=t.startx+u/2+(t.stopx-t.startx)/2,T.y=t.starty+n+s,T.anchor="middle",T.valign="middle",T.textMargin=s,T.class="loopText",T.fontFamily=d,T.fontSize=p,T.fontWeight=_,T.wrap=!0;let g=Q(T.text)?await Ft(E,T,t):mt(E,T);if(t.sectionTitles!==void 0){for(const[f,I]of Object.entries(t.sectionTitles))if(I.message){T.text=I.message,T.x=t.startx+(t.stopx-t.startx)/2,T.y=t.sections[f].y+n+s,T.class="sectionTitle",T.anchor="middle",T.valign="middle",T.tspan=!1,T.fontFamily=d,T.fontSize=p,T.fontWeight=_,T.wrap=t.wrap,Q(T.text)?(t.starty=t.sections[f].y,await Ft(E,T,t)):mt(E,T);let L=Math.round(g.map(b=>(b._groups||b)[0][0].getBBox().height).reduce((b,w)=>b+w));t.sections[f].height+=L-(n+s)}}return t.height=Math.round(t.stopy-t.starty),E},"drawLoop"),We=x(function(e,t){Er(e,t)},"drawBackgroundRect"),Br=x(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"),Vr=x(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"),Yr=x(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"),Wr=x(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"),Kr=x(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"),Fr=x(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"),qr=x(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"),Hr=x(function(e,t){const{theme:a}=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",`${a==="redux"||a==="redux-color"?"#000000":"#FFFFFF"}`)},"insertDropShadow"),Ke=x(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"),zr=x(function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),Et=(function(){function e(n,s,o,u,d,p,_){const E=s.append("text").attr("x",o+d/2).attr("y",u+p/2+5).style("text-anchor","middle").text(n);i(E,_)}x(e,"byText");function t(n,s,o,u,d,p,_,E){const{actorFontSize:O,actorFontFamily:T,actorFontWeight:g}=E,[f,I]=Me(O),L=n.split(N.lineBreakRegex);for(let b=0;be.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:x(function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},"clear"),addBox:x(function(e){this.boxes.push(e)},"addBox"),addActor:x(function(e){this.actors.push(e)},"addActor"),addLoop:x(function(e){this.loops.push(e)},"addLoop"),addMessage:x(function(e){this.messages.push(e)},"addMessage"),addNote:x(function(e){this.notes.push(e)},"addNote"),lastActor:x(function(){return this.actors[this.actors.length-1]},"lastActor"),lastLoop:x(function(){return this.loops[this.loops.length-1]},"lastLoop"),lastMessage:x(function(){return this.messages[this.messages.length-1]},"lastMessage"),lastNote:x(function(){return this.notes[this.notes.length-1]},"lastNote"),actors:[],boxes:[],loops:[],messages:[],notes:[]},init:x(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,He($())},"init"),updateVal:x(function(e,t,a,r){e[t]===void 0?e[t]=a:e[t]=r(a,e[t])},"updateVal"),updateBounds:x(function(e,t,a,r){const i=this;let n=0;function s(o){return x(function(d){n++;const p=i.sequenceItems.length-n+1;i.updateVal(d,"starty",t-p*l.boxMargin,Math.min),i.updateVal(d,"stopy",r+p*l.boxMargin,Math.max),i.updateVal(R.data,"startx",e-p*l.boxMargin,Math.min),i.updateVal(R.data,"stopx",a+p*l.boxMargin,Math.max),o!=="activation"&&(i.updateVal(d,"startx",e-p*l.boxMargin,Math.min),i.updateVal(d,"stopx",a+p*l.boxMargin,Math.max),i.updateVal(R.data,"starty",t-p*l.boxMargin,Math.min),i.updateVal(R.data,"stopy",r+p*l.boxMargin,Math.max))},"updateItemBounds")}x(s,"updateFn"),this.sequenceItems.forEach(s()),this.activations.forEach(s("activation"))},"updateBounds"),insert:x(function(e,t,a,r){const i=N.getMin(e,a),n=N.getMax(e,a),s=N.getMin(t,r),o=N.getMax(t,r);this.updateVal(R.data,"startx",i,Math.min),this.updateVal(R.data,"starty",s,Math.min),this.updateVal(R.data,"stopx",n,Math.max),this.updateVal(R.data,"stopy",o,Math.max),this.updateBounds(i,s,n,o)},"insert"),newActivation:x(function(e,t,a){const r=a.get(e.from),i=zt(e.from).length||0,n=r.x+r.width/2+(i-1)*l.activationWidth/2;this.activations.push({startx:n,starty:this.verticalPos+2,stopx:n+l.activationWidth,stopy:void 0,actor:e.from,anchored:q.anchorElement(t)})},"newActivation"),endActivation:x(function(e){const t=this.activations.map(function(a){return a.actor}).lastIndexOf(e.from);return this.activations.splice(t,1)[0]},"endActivation"),createLoop:x(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:x(function(e={message:void 0,wrap:!1,width:void 0},t){this.sequenceItems.push(this.createLoop(e,t))},"newLoop"),endLoop:x(function(){return this.sequenceItems.pop()},"endLoop"),isLoopOverlap:x(function(){return this.sequenceItems.length?this.sequenceItems[this.sequenceItems.length-1].overlap:!1},"isLoopOverlap"),addSectionToLoop:x(function(e){const t=this.sequenceItems.pop();t.sections=t.sections||[],t.sectionTitles=t.sectionTitles||[],t.sections.push({y:R.getVerticalPos(),height:0}),t.sectionTitles.push(e),this.sequenceItems.push(t)},"addSectionToLoop"),saveVerticalPos:x(function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},"saveVerticalPos"),resetVerticalPos:x(function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},"resetVerticalPos"),bumpVerticalPos:x(function(e){this.verticalPos=this.verticalPos+e,this.data.stopy=N.getMax(this.data.stopy,this.verticalPos)},"bumpVerticalPos"),getVerticalPos:x(function(){return this.verticalPos},"getVerticalPos"),getBounds:x(function(){return{bounds:this.data,models:this.models}},"getBounds")},Qr=x(async function(e,t,a){R.bumpVerticalPos(l.boxMargin),t.height=l.boxMargin,t.starty=R.getVerticalPos();const r=dt();r.x=t.startx,r.y=t.starty,r.width=t.width||l.width,r.class="note";const i=e.append("g");i.attr("data-et","note"),i.attr("data-id","i"+a);const n=q.drawRect(i,r),s=ae();s.x=t.startx,s.y=t.starty,s.width=r.width,s.dy="1em",s.text=t.message,s.class="noteText",s.fontFamily=l.noteFontFamily,s.fontSize=l.noteFontSize,s.fontWeight=l.noteFontWeight,s.anchor=l.noteAlign,s.textMargin=l.noteMargin,s.valign="center";const o=Q(s.text)?await Ft(i,s):mt(i,s),u=Math.round(o.map(d=>(d._groups||d)[0][0].getBBox().height).reduce((d,p)=>d+p));n.attr("height",u+2*l.noteMargin),t.height+=u+2*l.noteMargin,R.bumpVerticalPos(u+2*l.noteMargin),t.stopy=t.starty+u+2*l.noteMargin,t.stopx=t.startx+r.width,R.insert(t.startx,t.starty,t.stopx,t.stopy),R.models.addNote(t)},"drawNote"),De=x(function(e,t,a,r,i,n,s){const o=r.db.getActors(),u=o.get(t.from),d=o.get(t.to),p=a.sequenceVisible;let _=u.x+u.width/2,E=d.x+d.width/2;const O=_<=E,T=Xe(t,r),g=e.append("g"),f=16.5,I=x((D,M)=>{const V=D?f:-f;return M?-V:V},"getCircleOffset"),L=x(D=>{g.append("circle").attr("cx",D).attr("cy",s).attr("r",5).attr("width",10).attr("height",10)},"drawCircle"),{CENTRAL_CONNECTION:b,CENTRAL_CONNECTION_REVERSE:w,CENTRAL_CONNECTION_DUAL:A}=r.db.LINETYPE;if(p)switch(t.centralConnection){case b:T&&(E+=I(O,!0));break;case w:T||(_+=I(O,!1));break;case A:T?E+=I(O,!0):_+=I(O,!1);break}switch(t.centralConnection){case b:L(E);break;case w:L(_);break;case A:L(_),L(E);break}},"drawCentralConnection"),Rt=x(e=>({fontFamily:e.messageFontFamily,fontSize:e.messageFontSize,fontWeight:e.messageFontWeight}),"messageFont"),bt=x(e=>({fontFamily:e.noteFontFamily,fontSize:e.noteFontSize,fontWeight:e.noteFontWeight}),"noteFont"),ee=x(e=>({fontFamily:e.actorFontFamily,fontSize:e.actorFontSize,fontWeight:e.actorFontWeight}),"actorFont");async function Fe(e,t){R.bumpVerticalPos(10);const{startx:a,stopx:r,message:i}=t,n=N.splitBreaks(i).length,s=Q(i),o=s?await Pt(i,$()):Z.calculateTextDimensions(i,Rt(l));if(!s){const _=o.height/n;t.height+=_,R.bumpVerticalPos(_)}let u,d=o.height-10;const p=o.width;if(a===r){u=R.getVerticalPos()+d,l.rightAngles||(d+=l.boxMargin,u=R.getVerticalPos()+d),d+=30;const _=N.getMax(p/2,l.width/2);R.insert(a-_,R.getVerticalPos()-10+d,r+_,R.getVerticalPos()+30+d)}else d+=l.boxMargin,u=R.getVerticalPos()+d,R.insert(a,u-10,r,u);return R.bumpVerticalPos(d),t.height+=d,t.stopy=t.starty+t.height,R.insert(t.fromBounds,t.starty,t.toBounds,t.stopy),u}x(Fe,"boundMessage");var $r=x(async function(e,t,a,r,i,n){const{startx:s,stopx:o,starty:u,message:d,type:p,sequenceIndex:_,sequenceVisible:E}=t,O=Z.calculateTextDimensions(d,Rt(l)),T=ae();T.x=Math.min(s,o),T.y=u+10,T.width=Math.abs(o-s),T.class="messageText",T.dy="1em",T.text=d,T.fontFamily=l.messageFontFamily,T.fontSize=l.messageFontSize,T.fontWeight=l.messageFontWeight,T.anchor=l.messageAlign,T.valign="center",T.textMargin=l.wrapPadding,T.tspan=!1,Q(T.text)?await Ft(e,T,{startx:s,stopx:o,starty:a}):mt(e,T);const g=O.width;let f;if(s===o){const L=E||l.showSequenceNumbers,b=Xe(i,r),w=ia(i,r),A=s+(L&&(b||w)?10:0);l.rightAngles?f=e.append("path").attr("d",`M ${A},${a} H ${s+N.getMax(l.width/2,g/2)} V ${a+25} H ${s}`):f=e.append("path").attr("d","M "+A+","+a+" C "+(A+60)+","+(a-10)+" "+(s+60)+","+(a+30)+" "+s+","+(a+20)),jt(i,r)&&De(e,i,t,r,s,o,a)}else f=e.append("line"),f.attr("x1",s),f.attr("y1",a),f.attr("x2",o),f.attr("y2",a),jt(i,r)&&De(e,i,t,r,s,o,a);p===r.db.LINETYPE.DOTTED||p===r.db.LINETYPE.DOTTED_CROSS||p===r.db.LINETYPE.DOTTED_POINT||p===r.db.LINETYPE.DOTTED_OPEN||p===r.db.LINETYPE.BIDIRECTIONAL_DOTTED||p===r.db.LINETYPE.SOLID_TOP_DOTTED||p===r.db.LINETYPE.SOLID_BOTTOM_DOTTED||p===r.db.LINETYPE.STICK_TOP_DOTTED||p===r.db.LINETYPE.STICK_BOTTOM_DOTTED||p===r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED||p===r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED||p===r.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED||p===r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED?(f.style("stroke-dasharray","3, 3"),f.attr("class","messageLine1")):f.attr("class","messageLine0"),f.attr("data-et","message"),f.attr("data-id","i"+t.id),f.attr("data-from",t.from),f.attr("data-to",t.to);let I="";if(l.arrowMarkerAbsolute&&(I=pr(!0)),f.attr("stroke-width",2),f.attr("stroke","none"),f.style("fill","none"),(p===r.db.LINETYPE.SOLID_TOP||p===r.db.LINETYPE.SOLID_TOP_DOTTED)&&f.attr("marker-end","url("+I+"#"+n+"-solidTopArrowHead)"),(p===r.db.LINETYPE.SOLID_BOTTOM||p===r.db.LINETYPE.SOLID_BOTTOM_DOTTED)&&f.attr("marker-end","url("+I+"#"+n+"-solidBottomArrowHead)"),(p===r.db.LINETYPE.STICK_TOP||p===r.db.LINETYPE.STICK_TOP_DOTTED)&&f.attr("marker-end","url("+I+"#"+n+"-stickTopArrowHead)"),(p===r.db.LINETYPE.STICK_BOTTOM||p===r.db.LINETYPE.STICK_BOTTOM_DOTTED)&&f.attr("marker-end","url("+I+"#"+n+"-stickBottomArrowHead)"),(p===r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE||p===r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED)&&f.attr("marker-start","url("+I+"#"+n+"-solidBottomArrowHead)"),(p===r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE||p===r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED)&&f.attr("marker-start","url("+I+"#"+n+"-solidTopArrowHead)"),(p===r.db.LINETYPE.STICK_ARROW_TOP_REVERSE||p===r.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED)&&f.attr("marker-start","url("+I+"#"+n+"-stickBottomArrowHead)"),(p===r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE||p===r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED)&&f.attr("marker-start","url("+I+"#"+n+"-stickTopArrowHead)"),(p===r.db.LINETYPE.SOLID||p===r.db.LINETYPE.DOTTED)&&f.attr("marker-end","url("+I+"#"+n+"-arrowhead)"),(p===r.db.LINETYPE.BIDIRECTIONAL_SOLID||p===r.db.LINETYPE.BIDIRECTIONAL_DOTTED)&&(f.attr("marker-start","url("+I+"#"+n+"-arrowhead)"),f.attr("marker-end","url("+I+"#"+n+"-arrowhead)")),(p===r.db.LINETYPE.SOLID_POINT||p===r.db.LINETYPE.DOTTED_POINT)&&f.attr("marker-end","url("+I+"#"+n+"-filled-head)"),(p===r.db.LINETYPE.SOLID_CROSS||p===r.db.LINETYPE.DOTTED_CROSS)&&f.attr("marker-end","url("+I+"#"+n+"-crosshead)"),E||l.showSequenceNumbers){const L=p===r.db.LINETYPE.BIDIRECTIONAL_SOLID||p===r.db.LINETYPE.BIDIRECTIONAL_DOTTED,b=p===r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE||p===r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED||p===r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE||p===r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED||p===r.db.LINETYPE.STICK_ARROW_TOP_REVERSE||p===r.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED||p===r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE||p===r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,w=6,A=jt(i,r);let D=s,M=o;L?(ss?M=o-2*w:(M=o-w,D+=i?.centralConnection===r.db.LINETYPE.CENTRAL_CONNECTION_DUAL||i?.centralConnection===r.db.LINETYPE.CENTRAL_CONNECTION_REVERSE?-7.5:0),M+=A?15:0,f.attr("x2",M),f.attr("x1",D)):f.attr("x1",s+w);let V=0;const W=s===o,U=s<=o;W?V=t.fromBounds+1:b?V=U?t.toBounds-1:t.fromBounds+1:V=U?t.fromBounds+1:t.toBounds-1;let G="12px";const X=_.toString().length;X>5?G="7px":X>3&&(G="9px"),e.append("line").attr("x1",V).attr("y1",a).attr("x2",V).attr("y2",a).attr("stroke-width",0).attr("marker-start","url("+I+"#"+n+"-sequencenumber)"),e.append("text").attr("x",V).attr("y",a+4).attr("font-family","sans-serif").attr("font-size",G).attr("text-anchor","middle").attr("class","sequenceNumber").text(_)}},"drawMessage"),jr=x(function(e,t,a,r,i,n,s){let o=0,u=0,d,p=0;for(const _ of r){const E=t.get(_),O=E.box;d&&d!=O&&(s||R.models.addBox(d),u+=l.boxMargin+d.margin),O&&O!=d&&(s||(O.x=o+u,O.y=i),u+=O.margin),E.width=N.getMax(E.width||l.width,l.width),E.height=N.getMax(E.height||l.height,l.height),E.margin=E.margin||l.actorMargin,p=N.getMax(p,E.height),a.get(E.name)&&(u+=E.width/2),E.x=o+u,E.starty=R.getVerticalPos(),R.insert(E.x,i,E.x+E.width,E.height),o+=E.width+u,E.box&&(E.box.width=o+O.margin-E.box.x),u=E.margin,d=E.box,R.models.addActor(E)}d&&!s&&R.models.addBox(d),R.bumpVerticalPos(p)},"addActorRenderingData"),re=x(async function(e,t,a,r,i,n,s){if(r){let o=0;R.bumpVerticalPos(l.boxMargin*2);for(const u of a){const d=t.get(u);d.stopy||(d.stopy=R.getVerticalPos());const p=await q.drawActor(e,d,l,!0,i,n,s);o=N.getMax(o,p)}R.bumpVerticalPos(o+l.boxMargin)}else for(const o of a){const u=t.get(o);await q.drawActor(e,u,l,!1,i,n,s)}},"drawActors"),qe=x(function(e,t,a,r){let i=0,n=0;for(const s of a){const o=t.get(s),u=ea(o),d=q.drawPopup(e,o,u,l,l.forceMenus,r);d.height>i&&(i=d.height),d.width+o.x>n&&(n=d.width+o.x)}return{maxHeight:i,maxWidth:n}},"drawActorsPopup"),He=x(function(e){ar(l,e),e.fontFamily&&(l.actorFontFamily=l.noteFontFamily=l.messageFontFamily=e.fontFamily),e.fontSize&&(l.actorFontSize=l.noteFontSize=l.messageFontSize=e.fontSize),e.fontWeight&&(l.actorFontWeight=l.noteFontWeight=l.messageFontWeight=e.fontWeight)},"setConf"),zt=x(function(e){return R.activations.filter(function(t){return t.actor===e})},"actorActivations"),ve=x(function(e,t){const a=t.get(e),r=zt(e),i=r.reduce(function(s,o){return N.getMin(s,o.startx)},a.x+a.width/2-1),n=r.reduce(function(s,o){return N.getMax(s,o.stopx)},a.x+a.width/2+1);return[i,n]},"activationBounds");function ht(e,t,a,r,i){R.bumpVerticalPos(a);let n=r;if(t.id&&t.message&&e[t.id]){const s=e[t.id].width,o=Rt(l);t.message=Z.wrapLabel(`[${t.message}]`,s-2*l.wrapPadding,o),t.width=s,t.wrap=!0;const u=Z.calculateTextDimensions(t.message,o),d=N.getMax(u.height,l.labelBoxHeight);n=r+d,at.debug(`${d} - ${t.message}`)}i(t),R.bumpVerticalPos(n)}x(ht,"adjustLoopHeightForWrap");function ze(e,t,a,r,i,n,s){function o(p,_){p.x{m.add(k.from),m.add(k.to)}),f=f.filter(k=>m.has(k))}const D=new Map(f.map((m,k)=>[E.get(m)?.name??m,k]));jr(_,E,O,f,0,I,!1);const M=await oa(I,E,A,r);q.insertArrowHead(_,t),q.insertArrowCrossHead(_,t),q.insertArrowFilledHead(_,t),q.insertSequenceNumber(_,t),q.insertSolidTopArrowHead(_,t),q.insertSolidBottomArrowHead(_,t),q.insertStickTopArrowHead(_,t),q.insertStickBottomArrowHead(_,t),s==="neo"&&q.insertDropShadow(_,l);function V(m,k){const lt=R.endActivation(m);lt.starty+18>k&&(lt.starty=k-6,k+=12),q.drawActivation(_,lt,k,l,zt(m.from).length,r,D),R.insert(lt.startx,k-10,lt.stopx,k)}x(V,"activeEnd");let W=1,U=1;const G=[],X=[];let nt=0;for(const m of I){let k,lt,et;switch(m.type){case r.db.LINETYPE.NOTE:R.resetVerticalPos(),lt=m.noteModel,await Qr(_,lt,m.id);break;case r.db.LINETYPE.ACTIVE_START:R.newActivation(m,_,E);break;case r.db.LINETYPE.CENTRAL_CONNECTION:R.newActivation(m,_,E);break;case r.db.LINETYPE.CENTRAL_CONNECTION_REVERSE:R.newActivation(m,_,E);break;case r.db.LINETYPE.ACTIVE_END:V(m,R.getVerticalPos());break;case r.db.LINETYPE.LOOP_START:ht(M,m,l.boxMargin,l.boxMargin+l.boxTextMargin,K=>R.newLoop(K));break;case r.db.LINETYPE.LOOP_END:k=R.endLoop(),await q.drawLoop(_,k,"loop",l,m),R.bumpVerticalPos(k.stopy-R.getVerticalPos()),R.models.addLoop(k);break;case r.db.LINETYPE.RECT_START:ht(M,m,l.boxMargin,l.boxMargin,K=>{let Ot=K.message;Ot||(Ot=o?.rectBkgColor||o?.actorBkg||"rgba(128, 128, 128, 0.5)"),R.newLoop(void 0,Ot)});break;case r.db.LINETYPE.RECT_END:k=R.endLoop(),X.push(k),R.models.addLoop(k),R.bumpVerticalPos(k.stopy-R.getVerticalPos());break;case r.db.LINETYPE.OPT_START:ht(M,m,l.boxMargin,l.boxMargin+l.boxTextMargin,K=>R.newLoop(K));break;case r.db.LINETYPE.OPT_END:k=R.endLoop(),await q.drawLoop(_,k,"opt",l,m),R.bumpVerticalPos(k.stopy-R.getVerticalPos()),R.models.addLoop(k);break;case r.db.LINETYPE.ALT_START:ht(M,m,l.boxMargin,l.boxMargin+l.boxTextMargin,K=>R.newLoop(K));break;case r.db.LINETYPE.ALT_ELSE:ht(M,m,l.boxMargin+l.boxTextMargin,l.boxMargin,K=>R.addSectionToLoop(K));break;case r.db.LINETYPE.ALT_END:k=R.endLoop(),await q.drawLoop(_,k,"alt",l,m),R.bumpVerticalPos(k.stopy-R.getVerticalPos()),R.models.addLoop(k);break;case r.db.LINETYPE.PAR_START:case r.db.LINETYPE.PAR_OVER_START:ht(M,m,l.boxMargin,l.boxMargin+l.boxTextMargin,K=>R.newLoop(K)),R.saveVerticalPos();break;case r.db.LINETYPE.PAR_AND:ht(M,m,l.boxMargin+l.boxTextMargin,l.boxMargin,K=>R.addSectionToLoop(K));break;case r.db.LINETYPE.PAR_END:k=R.endLoop(),await q.drawLoop(_,k,"par",l,m),R.bumpVerticalPos(k.stopy-R.getVerticalPos()),R.models.addLoop(k);break;case r.db.LINETYPE.AUTONUMBER:W=m.message.start||W,U=m.message.step||U,m.message.visible?r.db.enableSequenceNumbers():r.db.disableSequenceNumbers();break;case r.db.LINETYPE.CRITICAL_START:ht(M,m,l.boxMargin,l.boxMargin+l.boxTextMargin,K=>R.newLoop(K));break;case r.db.LINETYPE.CRITICAL_OPTION:ht(M,m,l.boxMargin+l.boxTextMargin,l.boxMargin,K=>R.addSectionToLoop(K));break;case r.db.LINETYPE.CRITICAL_END:k=R.endLoop(),await q.drawLoop(_,k,"critical",l,m),R.bumpVerticalPos(k.stopy-R.getVerticalPos()),R.models.addLoop(k);break;case r.db.LINETYPE.BREAK_START:ht(M,m,l.boxMargin,l.boxMargin+l.boxTextMargin,K=>R.newLoop(K));break;case r.db.LINETYPE.BREAK_END:k=R.endLoop(),await q.drawLoop(_,k,"break",l,m),R.bumpVerticalPos(k.stopy-R.getVerticalPos()),R.models.addLoop(k);break;default:try{et=m.msgModel,et.starty=R.getVerticalPos(),et.sequenceIndex=W,et.sequenceVisible=r.db.showSequenceNumbers(),et.id=m.id,et.from=m.from,et.to=m.to;const K=await Fe(_,et);ze(m,et,K,nt,E,O,T),G.push({messageModel:et,lineStartY:K,msg:m}),R.models.addMessage(et)}catch(K){at.error("error while drawing message",K)}}[r.db.LINETYPE.SOLID_OPEN,r.db.LINETYPE.DOTTED_OPEN,r.db.LINETYPE.SOLID,r.db.LINETYPE.SOLID_TOP,r.db.LINETYPE.SOLID_BOTTOM,r.db.LINETYPE.STICK_TOP,r.db.LINETYPE.STICK_BOTTOM,r.db.LINETYPE.SOLID_TOP_DOTTED,r.db.LINETYPE.SOLID_BOTTOM_DOTTED,r.db.LINETYPE.STICK_TOP_DOTTED,r.db.LINETYPE.STICK_BOTTOM_DOTTED,r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE,r.db.LINETYPE.STICK_ARROW_TOP_REVERSE,r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,r.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,r.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,r.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED,r.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,r.db.LINETYPE.DOTTED,r.db.LINETYPE.SOLID_CROSS,r.db.LINETYPE.DOTTED_CROSS,r.db.LINETYPE.SOLID_POINT,r.db.LINETYPE.DOTTED_POINT,r.db.LINETYPE.BIDIRECTIONAL_SOLID,r.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(m.type)&&(W=Math.round((W+U)*100)/100),nt++}at.debug("createdActors",O),at.debug("destroyedActors",T),await re(_,E,f,!1,t,r,D);for(const m of G)await $r(_,m.messageModel,m.lineStartY,r,m.msg,t);l.mirrorActors&&await re(_,E,f,!0,t,r,D),X.forEach(m=>q.drawBackgroundRect(_,m)),Ye(_,E,f,l);for(const m of R.models.boxes){m.height=R.getVerticalPos()-m.y,R.insert(m.x,m.y,m.x+m.width,m.height);const k=l.boxMargin*2;m.startx=m.x-k,m.starty=m.y-k*.25,m.stopx=m.startx+m.width+2*k,m.stopy=m.starty+m.height+k*.75,m.stroke="rgb(0,0,0, 0.5)",q.drawBox(_,m,l)}b&&R.bumpVerticalPos(l.boxMargin);const j=qe(_,E,f,p),{bounds:H}=R.getBounds();H.startx===void 0&&(H.startx=0),H.starty===void 0&&(H.starty=0),H.stopx===void 0&&(H.stopx=0),H.stopy===void 0&&(H.stopy=0);let st=H.stopy-H.starty;st{const s=Rt(l);let o=n.actorKeys.reduce((_,E)=>_+=e.get(E).width+(e.get(E).margin||0),0);const u=l.boxMargin*8;o+=u,o-=2*l.boxTextMargin,n.wrap&&(n.name=Z.wrapLabel(n.name,o-2*l.wrapPadding,s));const d=Z.calculateTextDimensions(n.name,s);i=N.getMax(d.height,i);const p=N.getMax(o,d.width+2*l.wrapPadding);if(n.margin=l.boxTextMargin,on.textMaxHeight=i),N.getMax(r,l.height)}x(Ge,"calculateActorMargins");var ra=x(async function(e,t,a){const r=t.get(e.from),i=t.get(e.to),n=r.x,s=i.x,o=e.wrap&&e.message;let u=Q(e.message)?await Pt(e.message,$()):Z.calculateTextDimensions(o?Z.wrapLabel(e.message,l.width,bt(l)):e.message,bt(l));const d={width:o?l.width:N.getMax(l.width,u.width+2*l.noteMargin),height:0,startx:r.x,stopx:0,starty:0,stopy:0,message:e.message};return e.placement===a.db.PLACEMENT.RIGHTOF?(d.width=o?N.getMax(l.width,u.width):N.getMax(r.width/2+i.width/2,u.width+2*l.noteMargin),d.startx=n+(r.width+l.actorMargin)/2):e.placement===a.db.PLACEMENT.LEFTOF?(d.width=o?N.getMax(l.width,u.width+2*l.noteMargin):N.getMax(r.width/2+i.width/2,u.width+2*l.noteMargin),d.startx=n-d.width+(r.width-l.actorMargin)/2):e.to===e.from?(u=Z.calculateTextDimensions(o?Z.wrapLabel(e.message,N.getMax(l.width,r.width),bt(l)):e.message,bt(l)),d.width=o?N.getMax(l.width,r.width):N.getMax(r.width,l.width,u.width+2*l.noteMargin),d.startx=n+(r.width-d.width)/2):(d.width=Math.abs(n+r.width/2-(s+i.width/2))+l.actorMargin,d.startx=n2,E=x(f=>u?-f:f,"adjustValue");e.from===e.to?p=d:(e.activate&&!_&&(p+=E(l.activationWidth/2-1)),[a.db.LINETYPE.SOLID_OPEN,a.db.LINETYPE.DOTTED_OPEN,a.db.LINETYPE.STICK_TOP,a.db.LINETYPE.STICK_BOTTOM,a.db.LINETYPE.STICK_TOP_DOTTED,a.db.LINETYPE.STICK_BOTTOM_DOTTED,a.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,a.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,a.db.LINETYPE.STICK_ARROW_TOP_REVERSE,a.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE,a.db.LINETYPE.STICK_ARROW_TOP_REVERSE_DOTTED,a.db.LINETYPE.STICK_ARROW_BOTTOM_REVERSE_DOTTED,a.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,a.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE].includes(e.type)||(p+=E(3)),[a.db.LINETYPE.BIDIRECTIONAL_SOLID,a.db.LINETYPE.BIDIRECTIONAL_DOTTED,a.db.LINETYPE.SOLID_ARROW_TOP_REVERSE_DOTTED,a.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE_DOTTED,a.db.LINETYPE.SOLID_ARROW_TOP_REVERSE,a.db.LINETYPE.SOLID_ARROW_BOTTOM_REVERSE].includes(e.type)&&(d-=E(3)));const O=[i,n,s,o],T=Math.abs(d-p);e.wrap&&e.message&&(e.message=Z.wrapLabel(e.message,N.getMax(T+2*l.wrapPadding,l.width),Rt(l)));const g=Z.calculateTextDimensions(e.message,Rt(l));return{width:N.getMax(e.wrap?0:g.width+2*l.wrapPadding,T+2*l.wrapPadding,l.width),height:0,startx:d,stopx:p,starty:0,stopy:0,message:e.message,type:e.type,wrap:e.wrap,fromBounds:Math.min.apply(null,O),toBounds:Math.max.apply(null,O)}},"buildMessageModel"),oa=x(async function(e,t,a,r){const i={},n=[];let s,o,u;for(const d of e){switch(d.type){case r.db.LINETYPE.LOOP_START:case r.db.LINETYPE.ALT_START:case r.db.LINETYPE.OPT_START:case r.db.LINETYPE.PAR_START:case r.db.LINETYPE.PAR_OVER_START:case r.db.LINETYPE.CRITICAL_START:case r.db.LINETYPE.BREAK_START:n.push({id:d.id,msg:d.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case r.db.LINETYPE.ALT_ELSE:case r.db.LINETYPE.PAR_AND:case r.db.LINETYPE.CRITICAL_OPTION:d.message&&(s=n.pop(),i[s.id]=s,i[d.id]=s,n.push(s));break;case r.db.LINETYPE.LOOP_END:case r.db.LINETYPE.ALT_END:case r.db.LINETYPE.OPT_END:case r.db.LINETYPE.PAR_END:case r.db.LINETYPE.CRITICAL_END:case r.db.LINETYPE.BREAK_END:s=n.pop(),i[s.id]=s;break;case r.db.LINETYPE.ACTIVE_START:{const _=t.get(d.from?d.from:d.to.actor),E=zt(d.from?d.from:d.to.actor).length,O=_.x+_.width/2+(E-1)*l.activationWidth/2,T={startx:O,stopx:O+l.activationWidth,actor:d.from,enabled:!0};R.activations.push(T)}break;case r.db.LINETYPE.ACTIVE_END:{const _=R.activations.map(E=>E.actor).lastIndexOf(d.from);R.activations.splice(_,1).splice(0,1)}break}d.placement!==void 0?(o=await ra(d,t,r),d.noteModel=o,n.forEach(_=>{s=_,s.from=N.getMin(s.from,o.startx),s.to=N.getMax(s.to,o.startx+o.width),s.width=N.getMax(s.width,Math.abs(s.from-s.to))-l.labelBoxWidth})):(u=na(d,t,r),d.msgModel=u,u.startx&&u.stopx&&n.length>0&&n.forEach(_=>{if(s=_,u.startx===u.stopx){const E=t.get(d.from),O=t.get(d.to);s.from=N.getMin(E.x-u.width/2,E.x-E.width/2,s.from),s.to=N.getMax(O.x+u.width/2,O.x+E.width/2,s.to),s.width=N.getMax(s.width,Math.abs(s.to-s.from))-l.labelBoxWidth}else s.from=N.getMin(u.startx,s.from),s.to=N.getMax(u.stopx,s.to),s.width=N.getMax(s.width,u.width)-l.labelBoxWidth}))}return R.activations=[],at.debug("Loop type widths:",i),i},"calculateLoopBounds"),ca={bounds:R,drawActors:re,drawActorsPopup:qe,setConf:He,draw:ta},pa={parser:fr,get db(){return new Ir},renderer:ca,styles:Rr,init:x(e=>{e.sequence||(e.sequence={}),e.wrap&&(e.sequence.wrap=e.wrap,er({sequence:{wrap:e.wrap}}))},"init")};export{pa as diagram}; diff --git a/apps/kimi-code/dist-web/assets/sizeCapture-X5ZJPWSS-DTR1exX9.js b/apps/kimi-code/dist-web/assets/sizeCapture-X5ZJPWSS-DTR1exX9.js new file mode 100644 index 000000000..47254dfc3 --- /dev/null +++ b/apps/kimi-code/dist-web/assets/sizeCapture-X5ZJPWSS-DTR1exX9.js @@ -0,0 +1 @@ +import{_ as o}from"./mermaid.core-B_UcP3X_.js";import"./index-BOtIzGLC.js";var c=1;function i(){if(!(typeof globalThis>"u"))return globalThis}o(i,"getCaptureGlobal");function p(){return!!i()?.mermaidCaptureSizes}o(p,"shouldCaptureSizes");function u(){return typeof location>"u"?"browser-dev":`${location.pathname}${location.search}`}o(u,"capturedFromLocation");function d(n,r){const t=i();if(!t)return;const e=r.node(),s=((e&&"ownerSVGElement"in e?e.ownerSVGElement:null)??e)?.id??"(unknown)";t.mermaidCapturedSizes??=[];const a={svgId:s,sizes:n};t.mermaidCapturedSizes.push(a),t.mermaidLastCapturedSizes=a}o(d,"emitCapturedSizes");function m(n,r){const t=[];for(const e of r.nodes)e.isGroup||t.push({id:e.id,width:e.width??0,height:e.height??0});t.length!==0&&d({metadata:{captureVersion:c,capturedAt:new Date().toISOString(),capturedFrom:u()},nodes:t},n)}o(m,"captureNodeSizes");export{m as captureNodeSizes,p as shouldCaptureSizes}; diff --git a/apps/kimi-code/dist-web/assets/sizeCapture-X5ZJPWSS-KpJKp6ok.js b/apps/kimi-code/dist-web/assets/sizeCapture-X5ZJPWSS-KpJKp6ok.js deleted file mode 100644 index 158fa8bb8..000000000 --- a/apps/kimi-code/dist-web/assets/sizeCapture-X5ZJPWSS-KpJKp6ok.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./mermaid.core-CgZTgv7Y.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var p=1;function i(){if(!(typeof globalThis>"u"))return globalThis}o(i,"getCaptureGlobal");function c(){return!!i()?.mermaidCaptureSizes}o(c,"shouldCaptureSizes");function u(){return typeof location>"u"?"browser-dev":`${location.pathname}${location.search}`}o(u,"capturedFromLocation");function d(n,r){const t=i();if(!t)return;const e=r.node(),s=((e&&"ownerSVGElement"in e?e.ownerSVGElement:null)??e)?.id??"(unknown)";t.mermaidCapturedSizes??=[];const a={svgId:s,sizes:n};t.mermaidCapturedSizes.push(a),t.mermaidLastCapturedSizes=a}o(d,"emitCapturedSizes");function m(n,r){const t=[];for(const e of r.nodes)e.isGroup||t.push({id:e.id,width:e.width??0,height:e.height??0});t.length!==0&&d({metadata:{captureVersion:p,capturedAt:new Date().toISOString(),capturedFrom:u()},nodes:t},n)}o(m,"captureNodeSizes");export{m as captureNodeSizes,c as shouldCaptureSizes}; diff --git a/apps/kimi-code/dist-web/assets/stateDiagram-2N3HPSRC-B9WRkRTB.js b/apps/kimi-code/dist-web/assets/stateDiagram-2N3HPSRC-B9WRkRTB.js deleted file mode 100644 index f769c2b77..000000000 --- a/apps/kimi-code/dist-web/assets/stateDiagram-2N3HPSRC-B9WRkRTB.js +++ /dev/null @@ -1 +0,0 @@ -import{s as R,a as W,S as N}from"./chunk-EX3LRPZG-BHr3M6yM.js";import{_ as f,c as t,d as H,l as S,e as P,k as z,a7 as _,a8 as U,L as C,x as F}from"./mermaid.core-CgZTgv7Y.js";import{G as O}from"./graph-DOmOIIwC.js";import{l as J}from"./layout-D-LzfAck.js";import"./chunk-XXDRQBXY-BW4XjZut.js";import"./chunk-VR4S4FIN-CHAEh_jD.js";import"./chunk-32BRIVSS-DpG03lEd.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";import"./map-DxJ2ADlA.js";var X=f(e=>e.append("circle").attr("class","start-state").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit).attr("cy",t().state.padding+t().state.sizeUnit),"drawStartState"),D=f(e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t().state.textHeight).attr("class","divider").attr("x2",t().state.textHeight*2).attr("y1",0).attr("y2",0),"drawDivider"),Y=f((e,i)=>{const d=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+2*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),c=d.node().getBBox();return e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",c.width+2*t().state.padding).attr("height",c.height+2*t().state.padding).attr("rx",t().state.radius),d},"drawSimpleState"),I=f((e,i)=>{const d=f(function(o,B,y){const v=o.append("tspan").attr("x",2*t().state.padding).text(B);y||v.attr("dy",t().state.textHeight)},"addTspan"),n=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+1.3*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.descriptions[0]).node().getBBox(),l=n.height,p=e.append("text").attr("x",t().state.padding).attr("y",l+t().state.padding*.4+t().state.dividerMargin+t().state.textHeight).attr("class","state-description");let a=!0,s=!0;i.descriptions.forEach(function(o){a||(d(p,o,s),s=!1),a=!1});const m=e.append("line").attr("x1",t().state.padding).attr("y1",t().state.padding+l+t().state.dividerMargin/2).attr("y2",t().state.padding+l+t().state.dividerMargin/2).attr("class","descr-divider"),x=p.node().getBBox(),g=Math.max(x.width,n.width);return m.attr("x2",g+3*t().state.padding),e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",g+2*t().state.padding).attr("height",x.height+l+2*t().state.padding).attr("rx",t().state.radius),e},"drawDescrState"),$=f((e,i,d)=>{const c=t().state.padding,n=2*t().state.padding,l=e.node().getBBox(),p=l.width,a=l.x,s=e.append("text").attr("x",0).attr("y",t().state.titleShift).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),x=s.node().getBBox().width+n;let g=Math.max(x,p);g===p&&(g=g+n);let o;const B=e.node().getBBox();i.doc,o=a-c,x>p&&(o=(p-g)/2+c),Math.abs(a-B.x)p&&(o=a-(x-p)/2);const y=1-t().state.textHeight;return e.insert("rect",":first-child").attr("x",o).attr("y",y).attr("class",d?"alt-composit":"composit").attr("width",g).attr("height",B.height+t().state.textHeight+t().state.titleShift+1).attr("rx","0"),s.attr("x",o+c),x<=p&&s.attr("x",a+(g-n)/2-x/2+c),e.insert("rect",":first-child").attr("x",o).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",g).attr("height",t().state.textHeight*3).attr("rx",t().state.radius),e.insert("rect",":first-child").attr("x",o).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",g).attr("height",B.height+3+2*t().state.textHeight).attr("rx",t().state.radius),e},"addTitleAndBox"),q=f(e=>(e.append("circle").attr("class","end-state-outer").attr("r",t().state.sizeUnit+t().state.miniPadding).attr("cx",t().state.padding+t().state.sizeUnit+t().state.miniPadding).attr("cy",t().state.padding+t().state.sizeUnit+t().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit+2).attr("cy",t().state.padding+t().state.sizeUnit+2)),"drawEndState"),Z=f((e,i)=>{let d=t().state.forkWidth,c=t().state.forkHeight;if(i.parentId){let n=d;d=c,c=n}return e.append("rect").style("stroke","black").style("fill","black").attr("width",d).attr("height",c).attr("x",t().state.padding).attr("y",t().state.padding)},"drawForkJoinState"),j=f((e,i,d,c)=>{let n=0;const l=c.append("text");l.style("text-anchor","start"),l.attr("class","noteText");let p=e.replace(/\r\n/g,"
        ");p=p.replace(/\n/g,"
        ");const a=p.split(z.lineBreakRegex);let s=1.25*t().state.noteMargin;for(const m of a){const x=m.trim();if(x.length>0){const g=l.append("tspan");if(g.text(x),s===0){const o=g.node().getBBox();s+=o.height}n+=s,g.attr("x",i+t().state.noteMargin),g.attr("y",d+n+1.25*t().state.noteMargin)}}return{textWidth:l.node().getBBox().width,textHeight:n}},"_drawLongText"),K=f((e,i)=>{i.attr("class","state-note");const d=i.append("rect").attr("x",0).attr("y",t().state.padding),c=i.append("g"),{textWidth:n,textHeight:l}=j(e,0,0,c);return d.attr("height",l+2*t().state.noteMargin),d.attr("width",n+t().state.noteMargin*2),d},"drawNote"),L=f(function(e,i){const d=i.id,c={id:d,label:i.id,width:0,height:0},n=e.append("g").attr("id",d).attr("class","stateGroup");i.type==="start"&&X(n),i.type==="end"&&q(n),(i.type==="fork"||i.type==="join")&&Z(n,i),i.type==="note"&&K(i.note.text,n),i.type==="divider"&&D(n),i.type==="default"&&i.descriptions.length===0&&Y(n,i),i.type==="default"&&i.descriptions.length>0&&I(n,i);const l=n.node().getBBox();return c.width=l.width+2*t().state.padding,c.height=l.height+2*t().state.padding,c},"drawState"),G=0,Q=f(function(e,i,d){const c=f(function(s){switch(s){case N.relationType.AGGREGATION:return"aggregation";case N.relationType.EXTENSION:return"extension";case N.relationType.COMPOSITION:return"composition";case N.relationType.DEPENDENCY:return"dependency"}},"getRelationType");i.points=i.points.filter(s=>!Number.isNaN(s.y));const n=i.points,l=_().x(function(s){return s.x}).y(function(s){return s.y}).curve(U),p=e.append("path").attr("d",l(n)).attr("id","edge"+G).attr("class","transition");let a="";if(t().state.arrowMarkerAbsolute&&(a=C(!0)),p.attr("marker-end","url("+a+"#"+c(N.relationType.DEPENDENCY)+"End)"),d.title!==void 0){const s=e.append("g").attr("class","stateLabel"),{x:m,y:x}=F.calcLabelPosition(i.points),g=z.getRows(d.title);let o=0;const B=[];let y=0,v=0;for(let u=0;u<=g.length;u++){const h=s.append("text").attr("text-anchor","middle").text(g[u]).attr("x",m).attr("y",x+o),w=h.node().getBBox();y=Math.max(y,w.width),v=Math.min(v,w.x),S.info(w.x,m,x+o),o===0&&(o=h.node().getBBox().height,S.info("Title height",o,x)),B.push(h)}let k=o*g.length;if(g.length>1){const u=(g.length-1)*o*.5;B.forEach((h,w)=>h.attr("y",x+w*o-u)),k=o*g.length}const r=s.node().getBBox();s.insert("rect",":first-child").attr("class","box").attr("x",m-y/2-t().state.padding/2).attr("y",x-k/2-t().state.padding/2-3.5).attr("width",y+t().state.padding).attr("height",k+t().state.padding),S.info(r)}G++},"drawEdge"),b,T={},V=f(function(){},"setConf"),tt=f(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"),et=f(function(e,i,d,c){b=t().state;const n=t().securityLevel;let l;n==="sandbox"&&(l=H("#i"+i));const p=n==="sandbox"?H(l.nodes()[0].contentDocument.body):H("body"),a=n==="sandbox"?l.nodes()[0].contentDocument:document;S.debug("Rendering diagram "+e);const s=p.select(`[id='${i}']`);tt(s);const m=c.db.getRootDoc(),x=s.append("g").attr("id",i+"-root");A(m,x,void 0,!1,p,a,c);const g=b.padding,o=s.node().getBBox(),B=o.width+g*2,y=o.height+g*2,v=B*1.75;P(s,y,v,b.useMaxWidth),s.attr("viewBox",`${o.x-b.padding} ${o.y-b.padding} `+B+" "+y)},"draw"),at=f(e=>e?e.length*b.fontSizeFactor:1,"getLabelWidth"),A=f((e,i,d,c,n,l,p)=>{const a=new O({compound:!0,multigraph:!0});let s,m=!0;for(s=0;s{const w=h.parentElement;let E=0,M=0;w&&(w.parentElement&&(E=w.parentElement.getBBox().width),M=parseInt(w.getAttribute("data-x-shift"),10),Number.isNaN(M)&&(M=0)),h.setAttribute("x1",0-M+8),h.setAttribute("x2",E-M-8)})):S.debug("No Node "+r+": "+JSON.stringify(a.node(r)))});let v=y.getBBox();a.edges().forEach(function(r){r!==void 0&&a.edge(r)!==void 0&&(S.debug("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(a.edge(r))),Q(i,a.edge(r),a.edge(r).relation))}),v=y.getBBox();const k={id:d||"root",label:d||"root",width:0,height:0};return k.width=v.width+2*b.padding,k.height=v.height+2*b.padding,S.debug("Doc rendered",k,a),k},"renderDoc"),it={setConf:V,draw:et},xt={parser:W,get db(){return new N(1)},renderer:it,styles:R,init:f(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")};export{xt as diagram}; diff --git a/apps/kimi-code/dist-web/assets/stateDiagram-2N3HPSRC-C5DOlDDh.js b/apps/kimi-code/dist-web/assets/stateDiagram-2N3HPSRC-C5DOlDDh.js new file mode 100644 index 000000000..d45e5a192 --- /dev/null +++ b/apps/kimi-code/dist-web/assets/stateDiagram-2N3HPSRC-C5DOlDDh.js @@ -0,0 +1 @@ +import{s as R,a as W,S as N}from"./chunk-EX3LRPZG-DaQFz5qU.js";import{_ as f,c as t,d as H,l as S,e as P,k as z,a7 as _,a8 as U,a3 as C,y as F}from"./mermaid.core-B_UcP3X_.js";import{G as O}from"./graph-DOmOIIwC.js";import{l as J}from"./layout-D-LzfAck.js";import"./chunk-XXDRQBXY-AHUPVB2f.js";import"./chunk-VR4S4FIN-CYEgbtU1.js";import"./chunk-32BRIVSS-D_mpvupa.js";import"./index-BOtIzGLC.js";import"./map-DxJ2ADlA.js";var X=f(e=>e.append("circle").attr("class","start-state").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit).attr("cy",t().state.padding+t().state.sizeUnit),"drawStartState"),D=f(e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t().state.textHeight).attr("class","divider").attr("x2",t().state.textHeight*2).attr("y1",0).attr("y2",0),"drawDivider"),Y=f((e,i)=>{const d=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+2*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),c=d.node().getBBox();return e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",c.width+2*t().state.padding).attr("height",c.height+2*t().state.padding).attr("rx",t().state.radius),d},"drawSimpleState"),I=f((e,i)=>{const d=f(function(o,B,y){const v=o.append("tspan").attr("x",2*t().state.padding).text(B);y||v.attr("dy",t().state.textHeight)},"addTspan"),n=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+1.3*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.descriptions[0]).node().getBBox(),l=n.height,p=e.append("text").attr("x",t().state.padding).attr("y",l+t().state.padding*.4+t().state.dividerMargin+t().state.textHeight).attr("class","state-description");let a=!0,s=!0;i.descriptions.forEach(function(o){a||(d(p,o,s),s=!1),a=!1});const m=e.append("line").attr("x1",t().state.padding).attr("y1",t().state.padding+l+t().state.dividerMargin/2).attr("y2",t().state.padding+l+t().state.dividerMargin/2).attr("class","descr-divider"),x=p.node().getBBox(),g=Math.max(x.width,n.width);return m.attr("x2",g+3*t().state.padding),e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",g+2*t().state.padding).attr("height",x.height+l+2*t().state.padding).attr("rx",t().state.radius),e},"drawDescrState"),$=f((e,i,d)=>{const c=t().state.padding,n=2*t().state.padding,l=e.node().getBBox(),p=l.width,a=l.x,s=e.append("text").attr("x",0).attr("y",t().state.titleShift).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),x=s.node().getBBox().width+n;let g=Math.max(x,p);g===p&&(g=g+n);let o;const B=e.node().getBBox();i.doc,o=a-c,x>p&&(o=(p-g)/2+c),Math.abs(a-B.x)p&&(o=a-(x-p)/2);const y=1-t().state.textHeight;return e.insert("rect",":first-child").attr("x",o).attr("y",y).attr("class",d?"alt-composit":"composit").attr("width",g).attr("height",B.height+t().state.textHeight+t().state.titleShift+1).attr("rx","0"),s.attr("x",o+c),x<=p&&s.attr("x",a+(g-n)/2-x/2+c),e.insert("rect",":first-child").attr("x",o).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",g).attr("height",t().state.textHeight*3).attr("rx",t().state.radius),e.insert("rect",":first-child").attr("x",o).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",g).attr("height",B.height+3+2*t().state.textHeight).attr("rx",t().state.radius),e},"addTitleAndBox"),q=f(e=>(e.append("circle").attr("class","end-state-outer").attr("r",t().state.sizeUnit+t().state.miniPadding).attr("cx",t().state.padding+t().state.sizeUnit+t().state.miniPadding).attr("cy",t().state.padding+t().state.sizeUnit+t().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit+2).attr("cy",t().state.padding+t().state.sizeUnit+2)),"drawEndState"),Z=f((e,i)=>{let d=t().state.forkWidth,c=t().state.forkHeight;if(i.parentId){let n=d;d=c,c=n}return e.append("rect").style("stroke","black").style("fill","black").attr("width",d).attr("height",c).attr("x",t().state.padding).attr("y",t().state.padding)},"drawForkJoinState"),j=f((e,i,d,c)=>{let n=0;const l=c.append("text");l.style("text-anchor","start"),l.attr("class","noteText");let p=e.replace(/\r\n/g,"
        ");p=p.replace(/\n/g,"
        ");const a=p.split(z.lineBreakRegex);let s=1.25*t().state.noteMargin;for(const m of a){const x=m.trim();if(x.length>0){const g=l.append("tspan");if(g.text(x),s===0){const o=g.node().getBBox();s+=o.height}n+=s,g.attr("x",i+t().state.noteMargin),g.attr("y",d+n+1.25*t().state.noteMargin)}}return{textWidth:l.node().getBBox().width,textHeight:n}},"_drawLongText"),K=f((e,i)=>{i.attr("class","state-note");const d=i.append("rect").attr("x",0).attr("y",t().state.padding),c=i.append("g"),{textWidth:n,textHeight:l}=j(e,0,0,c);return d.attr("height",l+2*t().state.noteMargin),d.attr("width",n+t().state.noteMargin*2),d},"drawNote"),L=f(function(e,i){const d=i.id,c={id:d,label:i.id,width:0,height:0},n=e.append("g").attr("id",d).attr("class","stateGroup");i.type==="start"&&X(n),i.type==="end"&&q(n),(i.type==="fork"||i.type==="join")&&Z(n,i),i.type==="note"&&K(i.note.text,n),i.type==="divider"&&D(n),i.type==="default"&&i.descriptions.length===0&&Y(n,i),i.type==="default"&&i.descriptions.length>0&&I(n,i);const l=n.node().getBBox();return c.width=l.width+2*t().state.padding,c.height=l.height+2*t().state.padding,c},"drawState"),G=0,Q=f(function(e,i,d){const c=f(function(s){switch(s){case N.relationType.AGGREGATION:return"aggregation";case N.relationType.EXTENSION:return"extension";case N.relationType.COMPOSITION:return"composition";case N.relationType.DEPENDENCY:return"dependency"}},"getRelationType");i.points=i.points.filter(s=>!Number.isNaN(s.y));const n=i.points,l=_().x(function(s){return s.x}).y(function(s){return s.y}).curve(U),p=e.append("path").attr("d",l(n)).attr("id","edge"+G).attr("class","transition");let a="";if(t().state.arrowMarkerAbsolute&&(a=C(!0)),p.attr("marker-end","url("+a+"#"+c(N.relationType.DEPENDENCY)+"End)"),d.title!==void 0){const s=e.append("g").attr("class","stateLabel"),{x:m,y:x}=F.calcLabelPosition(i.points),g=z.getRows(d.title);let o=0;const B=[];let y=0,v=0;for(let u=0;u<=g.length;u++){const h=s.append("text").attr("text-anchor","middle").text(g[u]).attr("x",m).attr("y",x+o),w=h.node().getBBox();y=Math.max(y,w.width),v=Math.min(v,w.x),S.info(w.x,m,x+o),o===0&&(o=h.node().getBBox().height,S.info("Title height",o,x)),B.push(h)}let k=o*g.length;if(g.length>1){const u=(g.length-1)*o*.5;B.forEach((h,w)=>h.attr("y",x+w*o-u)),k=o*g.length}const r=s.node().getBBox();s.insert("rect",":first-child").attr("class","box").attr("x",m-y/2-t().state.padding/2).attr("y",x-k/2-t().state.padding/2-3.5).attr("width",y+t().state.padding).attr("height",k+t().state.padding),S.info(r)}G++},"drawEdge"),b,T={},V=f(function(){},"setConf"),tt=f(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"),et=f(function(e,i,d,c){b=t().state;const n=t().securityLevel;let l;n==="sandbox"&&(l=H("#i"+i));const p=n==="sandbox"?H(l.nodes()[0].contentDocument.body):H("body"),a=n==="sandbox"?l.nodes()[0].contentDocument:document;S.debug("Rendering diagram "+e);const s=p.select(`[id='${i}']`);tt(s);const m=c.db.getRootDoc(),x=s.append("g").attr("id",i+"-root");A(m,x,void 0,!1,p,a,c);const g=b.padding,o=s.node().getBBox(),B=o.width+g*2,y=o.height+g*2,v=B*1.75;P(s,y,v,b.useMaxWidth),s.attr("viewBox",`${o.x-b.padding} ${o.y-b.padding} `+B+" "+y)},"draw"),at=f(e=>e?e.length*b.fontSizeFactor:1,"getLabelWidth"),A=f((e,i,d,c,n,l,p)=>{const a=new O({compound:!0,multigraph:!0});let s,m=!0;for(s=0;s{const w=h.parentElement;let E=0,M=0;w&&(w.parentElement&&(E=w.parentElement.getBBox().width),M=parseInt(w.getAttribute("data-x-shift"),10),Number.isNaN(M)&&(M=0)),h.setAttribute("x1",0-M+8),h.setAttribute("x2",E-M-8)})):S.debug("No Node "+r+": "+JSON.stringify(a.node(r)))});let v=y.getBBox();a.edges().forEach(function(r){r!==void 0&&a.edge(r)!==void 0&&(S.debug("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(a.edge(r))),Q(i,a.edge(r),a.edge(r).relation))}),v=y.getBBox();const k={id:d||"root",label:d||"root",width:0,height:0};return k.width=v.width+2*b.padding,k.height=v.height+2*b.padding,S.debug("Doc rendered",k,a),k},"renderDoc"),it={setConf:V,draw:et},pt={parser:W,get db(){return new N(1)},renderer:it,styles:R,init:f(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")};export{pt as diagram}; diff --git a/apps/kimi-code/dist-web/assets/stateDiagram-v2-6OUMAXLB-CKzt6rtG.js b/apps/kimi-code/dist-web/assets/stateDiagram-v2-6OUMAXLB-CKzt6rtG.js new file mode 100644 index 000000000..c21d9d755 --- /dev/null +++ b/apps/kimi-code/dist-web/assets/stateDiagram-v2-6OUMAXLB-CKzt6rtG.js @@ -0,0 +1 @@ +import{s as r,b as e,a,S as s}from"./chunk-EX3LRPZG-DaQFz5qU.js";import{_ as i}from"./mermaid.core-B_UcP3X_.js";import"./chunk-XXDRQBXY-AHUPVB2f.js";import"./chunk-VR4S4FIN-CYEgbtU1.js";import"./chunk-32BRIVSS-D_mpvupa.js";import"./index-BOtIzGLC.js";var u={parser:a,get db(){return new s(2)},renderer:e,styles:r,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{u as diagram}; diff --git a/apps/kimi-code/dist-web/assets/stateDiagram-v2-6OUMAXLB-DaA_2kTJ.js b/apps/kimi-code/dist-web/assets/stateDiagram-v2-6OUMAXLB-DaA_2kTJ.js deleted file mode 100644 index 5a7f43086..000000000 --- a/apps/kimi-code/dist-web/assets/stateDiagram-v2-6OUMAXLB-DaA_2kTJ.js +++ /dev/null @@ -1 +0,0 @@ -import{s as r,b as e,a,S as s}from"./chunk-EX3LRPZG-BHr3M6yM.js";import{_ as i}from"./mermaid.core-CgZTgv7Y.js";import"./chunk-XXDRQBXY-BW4XjZut.js";import"./chunk-VR4S4FIN-CHAEh_jD.js";import"./chunk-32BRIVSS-DpG03lEd.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var n={parser:a,get db(){return new s(2)},renderer:e,styles:r,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{n as diagram}; diff --git a/apps/kimi-code/dist-web/assets/swimlanes-5IMT3BWC-BzZwuUMU.js b/apps/kimi-code/dist-web/assets/swimlanes-5IMT3BWC-BzZwuUMU.js new file mode 100644 index 000000000..e18283c22 --- /dev/null +++ b/apps/kimi-code/dist-web/assets/swimlanes-5IMT3BWC-BzZwuUMU.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/sizeCapture-X5ZJPWSS-DTR1exX9.js","assets/mermaid.core-B_UcP3X_.js","assets/index-BOtIzGLC.js","assets/index-CYGRyXzg.css"])))=>i.map(i=>d[i]); +import{bR as Er}from"./index-BOtIzGLC.js";import{c as Tr}from"./chunk-RYQCIY6F-BrAj5IFL.js";import{am as wr,an as Ar,ao as Rr,ap as Nr,l as Ke,c as Or,ag as Pr,af as Br,ah as kr,at as _r,av as Fr,z as Dr,as as Hr,aw as Xr,y as Oe,ax as Ye,_ as d,ay as Ao}from"./mermaid.core-B_UcP3X_.js";import{G as Yr}from"./graph-DOmOIIwC.js";import"./map-DxJ2ADlA.js";async function _o(t,e){const n=new Yr({multigraph:!0,compound:!0}),o=[...e.edges],s=Or(),r=t.insert("g").attr("class","root"),i=r.insert("g").attr("class","clusters"),c=r.insert("g").attr("class","edges edgePath"),a=r.insert("g").attr("class","edgeLabels"),l=r.insert("g").attr("class","nodes"),g=new Map,x=t.node()!=null;await Promise.all(e.nodes.map(async I=>{if(I.isGroup)n.setNode(I.id,{...I});else{if(x){const u=await Pr(l,I,{config:s,dir:I.dir}),p=u.node()?.getBBox()??{width:0,height:0};g.set(I.id,u),I.width=p.width,I.height=p.height}n.setNode(I.id,{...I})}}));for(const I of o)n.setEdge(I.start,I.end,{...I},I.id),e.edges.some(p=>p.id===I.id)||e.edges.push(I);if(globalThis.mermaidCaptureSizes){const{captureNodeSizes:I}=await Er(async()=>{const{captureNodeSizes:u}=await import("./sizeCapture-X5ZJPWSS-DTR1exX9.js");return{captureNodeSizes:u}},__vite__mapDeps([0,1,2,3]));I(t,e)}return{graph:n,groups:{clusters:i,edgePaths:c,edgeLabels:a,nodes:l,rootGroups:r},nodeElements:g}}d(_o,"createGraphWithElements");var Ro=5,Ge=1e-5,$e=1e-6;function qe(t){const e=[];for(let n=0;n=1-$e||I<=$e||I>=1-$e?null:{point:{x:t.x+x*s,y:t.y+x*r},tA:x,tB:I}}d(Fo,"segmentIntersection");function vn(t){return Math.abs(t.b.x-t.a.x)>=Math.abs(t.b.y-t.a.y)}d(vn,"isHorizontalSeg");function Do(t){const e=[];for(let n=0;n=Math.abs(n)?e>=0?1:0:n>=0?1:0}d(Ho,"getArcSweepFlag");var Gr=.001;function Xo(t,e){if(t.length<2)return t.map(r=>({...r}));const n=t.map(r=>({...r})),o=e.arrowTypeStart&&Ao[e.arrowTypeStart];if(o){const r=t[0],i=t[1],c=Math.atan2(i.y-r.y,i.x-r.x);n[0].x=r.x+o*Math.cos(c),n[0].y=r.y+o*Math.sin(c)}const s=e.arrowTypeEnd&&Ao[e.arrowTypeEnd];if(s){const r=t.length,i=t[r-2],c=t[r-1],a=Math.atan2(c.y-i.y,c.x-i.x);n[r-1].x=c.x-s*Math.cos(a),n[r-1].y=c.y-s*Math.sin(a)}return n}d(Xo,"applyMarkerOffsets");function Yo(t,e,n,o,s){const r=t.point.x,i=t.point.y,c={x:r-e*t.r,y:i-n*t.r},a={x:r+e*t.r,y:i+n*t.r},l=[`L${we(c)}`];return s==="arc"?l.push(`A${re(t.r)},${re(t.r)} 0 0 ${o} ${we(a)}`):l.push(`M${we(a)}`),l}d(Yo,"emitJump");function Ln(t,e,n,o){const s=e.x-t.x,r=e.y-t.y,i=n.x-e.x,c=n.y-e.y,a=Math.hypot(s,r),l=Math.hypot(i,c);if(a0){const E=Ln(s[l-1],s[l],s[l+1]??s[l],Ro);E&&(f=E.cutLen)}let y=x,v=null;r&&lE.t-T.t);for(const E of M)E.r=Math.min(E.r,E.d-f,y-E.d);for(let E=0;ET){const m=T/2;M[E].r=Math.min(M[E].r,m),M[E+1].r=Math.min(M[E+1].r,m)}}for(const E of M)E.r=2?o:null}catch{return null}}d(Vo,"decodeDataPoints");function jo(t,e,n){if(!n.enabled)return;const o=t.node();if(!o)return;const s=new Map;for(const l of e)s.set(l.id,l);const r=[],i=new Map;for(const l of e){const g=typeof CSS<"u"&&CSS.escape?CSS.escape(l.id):l.id,x=o.querySelector(`path[data-id="${g}"]`);if(!x)continue;i.set(l.id,x);const u=Vo(x.getAttribute("data-points"))??l.points;r.push({...l,points:u})}const c=Do(r);if(c.length===0)return;const a=new Map;for(const l of c){const g=a.get(l.jumpEdgeId)??[];g.push(l),a.set(l.jumpEdgeId,g)}for(const l of r){const g=a.get(l.id);if(!g||g.length===0)continue;const I=s.get(l.id)?.curve;if(I!==void 0&&!zo(I))continue;const u=i.get(l.id);if(!u)continue;if(I===void 0){const E=u.getAttribute("d")??"";if(!$o(E))continue}const p=u.getAttribute("style")??"",f=/stroke-dasharray\s*:\s*0\s+([\d.]+)\s+[\d.]+\s+([\d.]+)/.exec(p),y=f?Number.parseFloat(f[1]):null,v=f?Number.parseFloat(f[2]):null,M=Go(l,g,n);if(u.setAttribute("d",M),y!==null&&v!==null&&typeof u.getTotalLength=="function"){const E=u.getTotalLength(),T=Math.max(0,E-y-v),m=`0 ${y} ${T} ${v}`,S=p.replace(/stroke-dasharray\s*:[^;]*;?/g,`stroke-dasharray: ${m};`).replace(/;\s*;+/g,";");u.setAttribute("style",S)}}}d(jo,"applyLineJumpsToSvg");async function Uo(t,e){for(const s of t.nodes)s.isGroup?await Br(e.clusters,s):kr(s);const n=new Map;for(const s of t.nodes)s?.id&&n.set(s.id,s);for(const s of t.edges){const r=s.start?n.get(s.start)??{}:{},i=s.end?n.get(s.end)??{}:{},c=_r(e.edgePaths,{...s},{},t.type,r,i,t.diagramId);s.label&&await Fr(e.rootGroups,s),s.label&&Wo(s,c)}const o=t.config?.swimlane?.lineHops;if(o!==!1){const s=o==="gap"?"gap":"arc",r=t.edges.filter(i=>Array.isArray(i.points)&&i.points.length>=2).map(i=>({id:i.id,points:i.points,curve:i.curve,arrowTypeStart:i.arrowTypeStart,arrowTypeEnd:i.arrowTypeEnd}));jo(e.edgePaths,r,{enabled:!0,jumpRadius:6,jumpStyle:s})}}d(Uo,"adjustLayout");function Wo(t,e){const n=e?.updatedPath??e?.originalPath,o=Dr(),{subGraphTitleTotalMargin:s}=Hr({flowchart:o.flowchart??{}});if(t.label){const r=Xr.get(t.id);let i=t.x,c=t.y;if(n){const a=Oe.calcLabelPosition(n);Ke.debug("Moving label "+t.label+" from (",i,",",c,") to (",a.x,",",a.y,") abc88"),e&&(i=a.x,c=a.y)}r.attr("transform",`translate(${i}, ${c+s/2})`)}if(t?.startLabelLeft){const r=Ye.get(t.id).startLeft;let i=t?.x,c=t?.y;if(n){const a=Oe.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",n);i=a.x,c=a.y}r.attr("transform",`translate(${i}, ${c})`)}if(t.startLabelRight){const r=Ye.get(t.id).startRight;let i=t.x,c=t.y;if(n){const a=Oe.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",n);i=a.x,c=a.y}r.attr("transform",`translate(${i}, ${c})`)}if(t.endLabelLeft){const r=Ye.get(t.id).endLeft;let i=t.x,c=t.y;if(n){const a=Oe.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",n);i=a.x,c=a.y}r.attr("transform",`translate(${i}, ${c})`)}if(t.endLabelRight){const r=Ye.get(t.id).endRight;let i=t.x,c=t.y;if(n){const a=Oe.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",n);i=a.x,c=a.y}r.attr("transform",`translate(${i}, ${c})`)}}d(Wo,"positionEdgeLabel");var Mn="__swimlane_default__",$r=21,No=20;function En(t){return Math.max(t.padding??No,No)}d(En,"topLaneHorizontalPadding");function Ko(t){const{x:e,y:n,width:o,height:s}=t,r=t.swimlaneContentTop;if(typeof e!="number"||typeof n!="number"||typeof o!="number"||typeof s!="number"||typeof r!="number"||!Number.isFinite(e)||!Number.isFinite(n)||!Number.isFinite(o)||!Number.isFinite(s)||!Number.isFinite(r)||o<=0||s<=0){delete t.groupTitleRect;return}const i=n-s/2,c=Math.min(r,n+s/2),a=Math.min($r,Math.max(0,c-i)),l=i+a;if(l<=i){delete t.groupTitleRect;return}t.groupTitleRect={left:e-o/2,right:e+o/2,top:i,bottom:l}}d(Ko,"assignTopLaneTitleRect");function qo(t){const e=t.direction,n=t.nodes??=[];for(const r of t.nodes??[])r.isGroup&&!r.parentId&&(r.shape="swimlane",e&&(r.direction=e));const o=n.filter(r=>!r.isGroup&&!r.parentId);if(o.length===0)return;let s=n.find(r=>r.id===Mn);s?s.isGroup&&(s.shape="swimlane",e&&(s.direction=e)):(s={id:Mn,label:"",isGroup:!0,shape:"swimlane",padding:20,...e?{direction:e}:{}},n.push(s));for(const r of o)r.parentId=Mn}d(qo,"prepareLayoutForSwimlanes");function Jo(t){const e=new Map;for(const a of t.nodes??[])e.set(a.id,a);const n=[];for(const a of t.edges??[]){const l=typeof a.start=="string"?a.start:void 0,g=typeof a.end=="string"?a.end:void 0;!l||!g||a.labelNodeId||n.push({id:a.id,src:l,dst:g,ref:a})}const o=t.nodes??[],s=o.filter(a=>a.isGroup),r=o.filter(a=>!a.isGroup);return{nodes:[...[...s].reverse(),...r].map(a=>a.id),edges:n,layout:t,nodeById:e}}d(Jo,"toGraphView");function Zo(t,e,n,o){const{layout:s}=t,r=t.nodeById,i=o?.layerGap??100,c=o?.nodeGap??40;let a=0;for(const I of e.layers){let u=0;for(const p of I){const f=r.get(p);if(!f){u++;continue}f.layer=a,f.order=u;const y=n.x[p]??u*c,v=n.y[p]??a*i;f.x=y,f.y=v,u++}a++}const l=s.nodes??[],g=new Map,x=[];for(const I of l){if(!I?.isGroup)continue;I.parentId||x.push(I);const u=l.filter(M=>M.parentId===I.id);let p=1/0,f=-1/0,y=1/0,v=-1/0;for(const M of u){const E=M.x??n.x[M.id],T=M.y??n.y[M.id],m=M.width??0,S=M.height??0;E!=null&&T!=null&&(p=Math.min(p,E-m/2),f=Math.max(f,E+m/2),y=Math.min(y,T-S/2),v=Math.max(v,T+S/2))}if(p===1/0||y===1/0)I.x=I.x??0,I.y=I.y??0,I.width=I.width??0,I.height=I.height??0;else{const M=I.padding??20,E=I.parentId?M:2*En(I),T=M,m=Math.max(0,f-p)+E,S=Math.max(0,v-y)+T,A=(p+f)/2,R=(y+v)/2;I.x=A,I.y=R,I.width=m,I.height=S,g.set(I.id,{minX:p,maxX:f,minY:y,maxY:v})}}if(x.length>0&&g.size>0){let I=1/0,u=-1/0,p=0;for(const f of x){const y=f.padding??20;y>p&&(p=y);const v=g.get(f.id);v&&(I=Math.min(I,v.minY),u=Math.max(u,v.maxY))}if(I!==1/0&&u!==-1/0){const f=Math.max(0,u-I),v=Math.max(p,36),M=f+2*v,E=(I+u)/2;for(const k of x)k.y=E,k.height=M,k.swimlaneContentTop=I;const T=[...x].sort((k,O)=>{const _=k.x??0,H=O.x??0;return _-H}),m=[],S=[],A=[];for(const k of T){const O=g.get(k.id);if(!O)continue;const _=Math.max(0,O.maxX-O.minX)+2*En(k),H=(O.minX+O.maxX)/2;m.push(k.id),S.push(H),A.push(_)}const R=m.length;if(R>0){const k=new Map;if(R===1)k.set(m[0],A[0]);else{const O=[];for(let j=0;j0&&s>0?{cx:e,cy:n,rect:Ae(e,n,o,s)}:void 0}d(oo,"measuredNodeRect");function so(t){if(t.isGroup)return;const e=oo(t);return e?{id:String(t.id??""),cx:e.cx,cy:e.cy,rect:e.rect}:void 0}d(so,"nodeBoundsInfoFor");function oe(t,e,n=Ft){return Math.abs(t.x-e.x)n}d(Tt,"isHorizontalSegment");function wt(t,e,n=Ft){return ft(t,e,n)&&Math.abs(t.y-e.y)>n}d(wt,"isVerticalSegment");function zt(t,e,n,o){return Math.max(0,Math.min(Math.max(t,e),Math.max(n,o))-Math.max(Math.min(t,e),Math.min(n,o)))}d(zt,"overlapLength");function ce(t,e,n=Ft){return t.horizontal&&e.horizontal&&ht(t.a,e.a,n)?zt(t.a.x,t.b.x,e.a.x,e.b.x):t.vertical&&e.vertical&&ft(t.a,e.a,n)?zt(t.a.y,t.b.y,e.a.y,e.b.y):0}d(ce,"sameAxisSegmentOverlapLength");function Re(t,e=Ft){const n=[];for(let o=0;o0?n[n.length-1]:void 0;(!s||!oe(s,o,e))&&n.push({x:o.x,y:o.y})}return n}d(pt,"dedupeConsecutivePoints");function ro(t,e=Ft){if(!t||t.length!==4)return;const[n,o,s,r]=t;return Tt(n,o,e)&&wt(o,s,e)&&Tt(s,r,e)?{kind:"HVH",p0:n,p1:o,p2:s,p3:r}:wt(n,o,e)&&Tt(o,s,e)&&wt(s,r,e)?{kind:"VHV",p0:n,p1:o,p2:s,p3:r}:void 0}d(ro,"classifyThreeSegmentRoute");function cn(t,e,n,o=0){const s=Math.min(t.x,e.x),r=Math.max(t.x,e.x),i=Math.min(t.y,e.y),c=Math.max(t.y,e.y);return r>n.left-o&&sn.top-o&&ie.left+n&&t.xe.top+n&&t.y=e.right&&t.top<=e.top&&t.bottom>=e.bottom}d(ts,"rectContainsRect");function Je(t,e){return t.lefte.left&&t.tope.top}d(Je,"rectsOverlap");function Tn(t,e){return{left:t.left-e,right:t.right+e,top:t.top-e,bottom:t.bottom+e}}d(Tn,"inflateRect");function Ae(t,e,n,o){return{left:t-n/2,right:t+n/2,top:e-o/2,bottom:e+o/2}}d(Ae,"rectFromCenterSize");function qt(t){return oo(t)?.rect}d(qt,"rectOfNodeBounds");function Ie(t,e){switch(e){case"top":return{x:t.cx,y:t.rect.top};case"bottom":return{x:t.cx,y:t.rect.bottom};case"left":return{x:t.rect.left,y:t.cy};case"right":return{x:t.rect.right,y:t.cy}}}d(Ie,"portForRectSide");function co(t,e,n,o,s,r=Ft){const i=e==="left"||e==="right",c=o==="left"||o==="right";if(i&&c){if(e==="right"&&o==="left"&&t.xn.x){if(ht(t,n,r))return[t,n];const x=(t.x+n.x)/2;return[t,{x,y:t.y},{x,y:n.y},n]}if(e===o){if(ht(t,n,r))return;const x=e==="left"?Math.min(t.x,n.x)-s:Math.max(t.x,n.x)+s;return[t,{x,y:t.y},{x,y:n.y},n]}return}if(!i&&!c){if(e===o){if(ft(t,n,r))return;const I=e==="top"?Math.min(t.y,n.y)-s:Math.max(t.y,n.y)+s;return[t,{x:t.x,y:I},{x:n.x,y:I},n]}if(!(e==="bottom"&&o==="top"&&t.yn.y))return;if(ft(t,n,r))return[t,n];const x=(t.y+n.y)/2;return[t,{x:t.x,y:x},{x:n.x,y:x},n]}if(i&&!c){const g=e==="right"&&n.x>t.x||e==="left"&&n.xn.y;return g&&x?[t,{x:n.x,y:t.y},n]:void 0}const a=e==="bottom"&&n.y>t.y||e==="top"&&n.yn.x;return a&&l?[t,{x:t.x,y:n.y},n]:void 0}d(co,"buildOrthogonalPortPath");function ao(t,e,n,o){return e==="left"||e==="right"?[t,{x:o,y:t.y},{x:o,y:n.y},n]:[t,{x:t.x,y:o},{x:n.x,y:o},n]}d(ao,"buildSameSideTrackPath");function an(t){const e=new Map,n=[];for(const o of t){if(o.isEdgeLabel)continue;const s=so(o);s&&(e.set(s.id,s),n.push({id:s.id,rect:s.rect}))}return{nodeInfoById:e,realNodeRects:n}}d(an,"collectRealNodeBounds");function me(t){const e=[],n=[];for(const o of t){const s=so(o);if(!s)continue;const r={id:s.id,rect:s.rect};o.isEdgeLabel?n.push(r):e.push(r)}return{realNodeRects:e,labelNodeRects:n}}d(me,"collectNodeRectEntries");function es(t,{includeEdgeLabels:e=!0}={}){const n=[];for(const o of t){if(o.isGroup||!e&&o.isEdgeLabel)continue;const s=o.x??0,r=o.y??0,i=o.width??0,c=o.height??0;n.push({nodeId:o.id,...Ae(s,r,i,c)})}return n}d(es,"collectLayoutNodeRects");function lo(t,e,n=Ft){const o=t.start,s=t.end;if(!o||!s)return;const r=e.get(o),i=e.get(s);if(!(!r||!i))return{srcId:o,dstId:s,srcInfo:r,dstInfo:i,collinearX:Math.abs(r.cx-i.cx)p||Iv)return!1;const M=Math.abs(f-g.a.x)s:r&&c&&ht(t,n,s)?zt(t.x,e.x,n.x,o.x)>s:!1}d(ns,"sameAxisSegmentsOverlap");function Ze(t,e,n,o,{epsilon:s=Ft,skipDegenerateOther:r=!1}={}){for(const i of n){if(i===o||i.isLayoutOnly)continue;const c=i.points;if(!(!c||c.length<2))for(let a=0;aI+s&&pf+s&&xo+Ft&&t=2?e[e.length-2]:void 0,a=(i?ft(i,s):!1)?{x:s.x,y:r.y}:{x:r.x,y:s.y};e.push(a)}e.push(r)}const n=[];for(const o of e){const s=n[n.length-1];(!s||!oe(s,o))&&n.push(o)}return n}d(Qe,"orthogonalizePolyline");function ae(t){if(t.length<3)return t;let e=[...t];for(let n=0;n<32;n++){const o=ss(e);if(e=o.points,!o.changed)break}return e}d(ae,"simplifyPolyline");var nt=.001,Vr=.5,Oo=4;function uo(t,e,n){const o=t;if(o.isLayoutOnly||!o.points||o.points.length=0&&s=t.length)return t;const r=s-o;if(r<0||r>=t.length)return t;const i=rs(t[s],t[r],e);return n?[i,...t.slice(s)]:[...t.slice(0,s+1),i]}d(An,"clipEndpoint");function is(t,e){for(const n of t){const o=uo(n,e,2);if(!o)continue;let s=[...o.points];o.srcRect&&(s=An(s,o.srcRect,!0)),o.dstRect&&(s=An(s,o.dstRect,!1)),s=ae(Qe(s)),s=ho(s,o.srcRect,o.dstRect),o.edge.points=ae(Qe(s))}}d(is,"clipEdgeEndpointsToNodeBoundaries");function Rn(t,e,n,o=!1){if(ht(t,e,nt)){if(e.yn.bottom+nt)return e;if(o){if(t.xn.right+nt)return{x:n.right,y:t.y}}return{x:Math.abs(e.x-n.left)<=Math.abs(e.x-n.right)?n.left:n.right,y:t.y}}if(ft(t,e,nt)){if(e.xn.right+nt)return e;if(o){if(t.yn.bottom+nt)return{x:t.x,y:n.bottom}}const s=Math.abs(e.y-n.top)<=Math.abs(e.y-n.bottom);return{x:t.x,y:s?n.top:n.bottom}}return e}d(Rn,"snapEndpointToBoundary");function tn(t,e,n){const o=t[e];for(let s=e+n;s>=0&&so.lo)),n=Math.min(...t.map(o=>o.hi));if(!(e>n))return{lo:e,hi:n}}d(cs,"intersectRanges");function On(t,e){return e==="left"||e==="right"?en(t.top,t.bottom):en(t.left,t.right)}d(On,"clearanceRangeForSide");function nn(t,e,n){const o=t.y>=n.top-nt&&t.y<=n.bottom+nt,s=t.x>=n.left-nt&&t.x<=n.right+nt;if(ht(t,e,nt)&&o){if(Math.abs(t.x-n.left)0?cs(r):void 0}d(as,"straightClearanceRange");function Pn(t,e,n,o,s){const r=as(t,e,n,o,s);if(!r)return;const i=s?t.y:t.x,c=Math.min(r.hi,Math.max(r.lo,i));if(!(Math.abs(c-i)({...c}));for(let c=e;c>=0&&c=n.left-nt&&Math.max(t.x,e.x)<=n.right+nt,s=Math.min(t.y,e.y)>=n.top-nt&&Math.max(t.y,e.y)<=n.bottom+nt;if(Math.abs(t.y-n.top)o.bottom+nt;case"left":return ht(e,n,nt)&&n.xo.right+nt}}d(_n,"leavesOutward");function Fn(t,e,n){if(t.length<3)return t;if(n){const r=kn(t[0],t[1],e);return r&&_n(r,t[1],t[2],e)?t.slice(1):t}const o=t.length-1,s=kn(t[o-1],t[o],e);return s&&_n(s,t[o-1],t[o-2],e)?t.slice(0,o):t}d(Fn,"collapseOwnBorderStub");function ds(t,e,n){let o=t;if(e){const r=tn(o,0,1);if(r){const i=Rn(r,o[0],e);i!==o[0]&&(o=[i,...o.slice(1)])}o=Fn(o,e,!0)}if(n){const r=o.length-1,i=tn(o,r,-1);if(i){const c=Rn(i,o[r],n,!0);c!==o[r]&&(o=[...o.slice(0,r),c])}o=Fn(o,n,!1)}const s=ho(o,e,n);return s!==o||o.length===2?s:(e&&(o=Bn(o,e,!0)),n&&(o=Bn(o,n,!1)),o)}d(ds,"snapAndCollapseEndpoints");function Dn(t,e){for(const n of t){const o=uo(n,e,2);if(!o)continue;const s=pt(o.points,nt),r=ds(s,o.srcRect,o.dstRect);if(r.length<3){o.edge.points=r;continue}const i=[r[0],{...r[0]},...r.slice(1,-1),r[r.length-1],{...r[r.length-1]}];o.edge.points=i}}d(Dn,"prepareEdgeEndpointsForRenderer");function go(t){return new Map(t.map(e=>[e.id,e]))}d(go,"buildNodeMap");function us(t,e){let n=t.parentId,o=null;for(;n;){const s=e.get(n);if(!s?.isGroup)break;o=s.id,n=s.parentId}return o}d(us,"resolveTopLevelGroupId");function Hn(t,e){let n=0,o=t.parentId;for(;o;){const s=e.get(o);if(!s?.isGroup)break;n++,o=s.parentId}return n}d(Hn,"groupDepth");function po(t){let e=1/0,n=-1/0,o=1/0,s=-1/0;for(const r of t){const i=r.x,c=r.y;if(typeof i!="number"||typeof c!="number")continue;const a=r.width??0,l=r.height??0;e=Math.min(e,i-a/2),n=Math.max(n,i+a/2),o=Math.min(o,c-l/2),s=Math.max(s,c+l/2)}return e===1/0||o===1/0?null:{minX:e,maxX:n,minY:o,maxY:s}}d(po,"boundsForChildren");function hs(t,e){const n=t.padding??20;t.x=(e.minX+e.maxX)/2,t.y=(e.minY+e.maxY)/2,t.width=Math.max(0,e.maxX-e.minX)+n,t.height=Math.max(0,e.maxY-e.minY)+n}d(hs,"applyGroupBounds");function gs(t){const e=go(t),n=t.filter(o=>o.isGroup&&o.parentId).sort((o,s)=>Hn(s,e)-Hn(o,e));for(const o of n){const s=t.filter(i=>i.parentId===o.id),r=po(s);r&&hs(o,r)}}d(gs,"recomputeNestedGroupBounds");function on(t,e){const n=t.nodes??[],o=t.edges??[],s=n.filter(a=>!a.isGroup);let r=1/0,i=-1/0;for(const a of s){const l=a[e];typeof l=="number"&&(r=Math.min(r,l),i=Math.max(i,l))}if(!Number.isFinite(r)||!Number.isFinite(i))return!1;const c=d(a=>r+i-a,"mirror");for(const a of n){const l=a[e];typeof l=="number"&&(a[e]=c(l));const g=a.groupTitleRect;g&&(a.groupTitleRect=e==="x"?{...g,left:c(g.right),right:c(g.left)}:{...g,top:c(g.bottom),bottom:c(g.top)})}for(const a of o)for(const l of a.points??[])l[e]=c(l[e]);return!0}d(on,"mirrorAxis");function ps(t){return(t.nodes??[]).some(n=>!n.isGroup)?on(t,"y"):!0}d(ps,"applyBtDirectionTransform");function ms(t,e="LR"){const n=t.nodes??[],o=t.edges??[],s=n.filter(P=>!P.isGroup);let r=1/0,i=1/0;for(const P of s){const G=P.x??0,j=P.y??0;G0?Math.max(1,g/x):1;for(const P of s){const G=P.x??0,J=((P.y??0)-i)*I+c,dt=G-r;P.x=J,P.y=dt}for(const P of o)if(P.points)for(const G of P.points){const j=G.x,dt=(G.y-i)*I+c,mt=j-r;G.x=dt,G.y=mt}gs(n);const u=n.filter(P=>P.isGroup&&!P.parentId);if(u.length===0)return e==="RL"&&on(t,"x"),!0;const p=go(n),f=new Map;for(const P of n){if(P.isGroup)continue;const G=us(P,p);if(!G)continue;const j=f.get(G)??[];j.push(P),f.set(G,j)}let y=0;for(const P of u){const G=P.padding??0;G>y&&(y=G)}const v=[];let M=1/0,E=-1/0;for(const P of u){const G=f.get(P.id)??[],j=po(G);j&&(M=Math.min(M,j.minX),E=Math.max(E,j.maxX),v.push({lane:P,contentTop:j.minY,contentBottom:j.maxY,centerY:(j.minY+j.maxY)/2}))}if(M===1/0||E===-1/0)return!0;const T=Math.max(0,E-M),m=Math.max(y,10),S=T+2*m,A=c+S,O=(M+E)/2-S/2-c,_=O+A/2,H=Math.max(y,c);v.sort((P,G)=>P.centerY-G.centerY);for(let P=0;PI.cy?v.bottom:v.top,H=I.cx+M;if(H<=v.left+se||H>=v.right-se)continue;E={x:H,y:_},T={x:H,y:c.y},m={x:c.x,y:c.y}}else{const _=u.cx>I.cx?v.right:v.left,H=I.cy+M;if(H<=v.top+se||H>=v.bottom-se)continue;E={x:_,y:H},T={x:c.x,y:H},m={x:c.x,y:c.y}}const S=oe(E,T,se),A=oe(T,m,se);if(S&&A||!S&&At(E,T,o,[g],1)||!A&&At(T,m,o,[x],1))continue;const R=!S&&Ze(E,T,t,s,{epsilon:se,skipDegenerateOther:!0}),k=!A&&Ze(T,m,t,s,{epsilon:se,skipDegenerateOther:!0});if(!(R||k)){S?y=[T,m]:A?y=[E,T]:y=[E,T,m];break}}y&&(s.points=y)}}d(ys,"portSwapToLShape");function xs(t,e){const{realNodeRects:r,labelNodeRects:i}=me(e.values());for(const c of t){if(c.isLayoutOnly)continue;const a=c.points;if(!a||a.length<4)continue;const l=pt(a,.001);if(l.length<4)continue;const g=l.length-1,x=l[g],I=l[g-1],u=l[g-2],p=x.x-I.x,f=x.y-I.y,y=Math.hypot(p,f);if(y>=10||y<.001)continue;const v=I.x-u.x,M=I.y-u.y;if(Math.hypot(v,M)<.001)continue;const T=Tt(I,x,.001),m=wt(I,x,.001),S=Tt(u,I,.001),A=wt(u,I,.001);if(!(T&&A||m&&S))continue;const R=c.end,k=c.start,O=R?e.get(R):void 0;if(!O)continue;const _=O.x??0,H=O.y??0,P=qt(O);if(!P)continue;let G,j;if(A){const W=M<0;G={x:_,y:u.y},j={x:_,y:W?P.bottom:P.top}}else{const W=v>0;G={x:u.x,y:H},j={x:W?P.right:P.left,y:H}}if(At(G,j,r,R?[R]:[],-2)||At(G,j,i,[],-2))continue;if(k){const W=e.get(k),et=W?qt(W):void 0;if(et&&io(G,et,2))continue}const J=d((W,et)=>`${W.x.toFixed(3)},${W.y.toFixed(3)}|${et.x.toFixed(3)},${et.y.toFixed(3)}`,"ownSegmentKey"),dt=new Set;for(let W=0;W{for(const at of t){if(at===c||at.isLayoutOnly)continue;const gt=at.points;if(!(!gt||gt.length<2))for(let xt=0;xt=0){const W=l[g-3],et=[k,R].filter(at=>!!at);if(At(W,G,r,et,-2)||mt(W,G))continue}const Pt=[...l.slice(0,g-2),G,j];c.points=Pt;const Q=c.labelNodeId;if(Q){const W=e.get(Q);if(W){const et=W.width??0,at=W.height??0;if(et>0&&at>0){let gt,xt,vt=-1;for(let Vt=0;Vt=et+2||de&&te>=at+2)&&te>vt&&(vt=te,gt=(jt.x+Ut.x)/2,xt=(jt.y+Ut.y)/2)}gt!==void 0&&xt!==void 0&&(W.x=gt,W.y=xt)}}}}}d(xs,"collapseShortTerminalStub");var Z=.001,_t=8,it=Re,In=d((t,e)=>ft(t,e,Z)||ht(t,e,Z),"orthogonallyAligned");function bs(t,e){const s=d((u,p)=>{const f=u.x??0,y=u.y??0,v=p.x-f,M=p.y-y;let E=(u.width??0)/2,T=(u.height??0)/2;return Math.abs(M)*E>Math.abs(v)*T?(M<0&&(T=-T),{x:f+(M===0?0:T*v/M),y:y+T}):(v<0&&(E=-E),{x:f+E,y:y+(v===0?0:E*M/v)})},"rectIntersect"),r=d((u,p)=>{const f=pt(u.points??[]);if(f.length<2)return;const y=p?u.start:u.end,v=y?e.get(y):void 0,M=v?qt(v):void 0;if(!v||!y||!M)return;const E=p?f[0]:f[f.length-1],T=p?f[1]:f[f.length-2],m=s(v,E);let S=E;if(In(T,m)&&(S=T),ft(m,S,Z))return{edge:u,edgeId:String(u.id??""),nodeId:y,atStart:p,orientation:"V",coord:m.x,min:Math.min(m.y,S.y),max:Math.max(m.y,S.y),boundary:m,railEnd:S,rect:M};if(ht(m,S,Z))return{edge:u,edgeId:String(u.id??""),nodeId:y,atStart:p,orientation:"H",coord:m.y,min:Math.min(m.x,S.x),max:Math.max(m.x,S.x),boundary:m,railEnd:S,rect:M}},"terminalLaneFor"),i=d((u,p)=>Math.max(0,Math.min(u.max,p.max)-Math.max(u.min,p.min)),"projectedOverlapLength"),c=d((u,p)=>u.nodeId!==p.nodeId||u.orientation!==p.orientation?!1:u.orientation==="H"?(Math.abs(u.boundary.x-u.rect.left)<1||Math.abs(u.boundary.x-u.rect.right)<1)&&ft(u.boundary,p.boundary,1):(Math.abs(u.boundary.y-u.rect.top)<1||Math.abs(u.boundary.y-u.rect.bottom)<1)&&ht(u.boundary,p.boundary,1),"sameTerminalFace"),a=d((u,p)=>u.nodeId!==p.nodeId||u.orientation!==p.orientation?!1:i(u,p)>=_t&&Math.abs(u.coord-p.coord)<.5,"exactTerminalLaneConflict"),l=d((u,p)=>{if(u.nodeId!==p.nodeId||u.orientation!==p.orientation||u.orientation!=="H"||u.atStart===p.atStart)return!1;const f=i(u,p);if(f<_t)return!1;const y=u.rect.bottom-u.rect.top;return f2*y?!1:c(u,p)&&Math.abs(u.coord-p.coord)<16},"nearTerminalLaneConflict"),g=d((u,p)=>{const f=pt(u.edge.points??[]);if(f.length<2)return;const y=u.orientation==="V"?{x:u.boundary.x+p,y:u.boundary.y}:{x:u.boundary.x,y:u.boundary.y+p},v=u.orientation==="V"?{x:u.railEnd.x+p,y:u.railEnd.y}:{x:u.railEnd.x,y:u.railEnd.y+p};if(!d(()=>Math.abs(u.boundary.y-u.rect.top)<1||Math.abs(u.boundary.y-u.rect.bottom)<1?ht(y,u.boundary,Z)&&y.x>=u.rect.left+1&&y.x<=u.rect.right-1:Math.abs(u.boundary.x-u.rect.left)<1||Math.abs(u.boundary.x-u.rect.right)<1?ft(y,u.boundary,Z)&&y.y>=u.rect.top+1&&y.y<=u.rect.bottom-1:!1,"boundaryStaysOnSameFace")())return;if(u.atStart){const S=f.length>1&&oe(f[1],u.railEnd,Z),A=f.slice(S?2:1),R=A[0];return R&&!In(R,v)?void 0:[y,v,...A]}const E=f.length>1&&oe(f[f.length-2],u.railEnd,Z),T=f.slice(0,E?-2:-1),m=T[T.length-1];if(!(m&&!In(m,v)))return[...T,v,y]},"shiftedCandidate"),x=d(u=>{const p=u.edge,f=pt(p.points??[]);if(f.length!==2)return!1;const y=p.start,v=p.end,M=y?e.get(y):void 0,E=v?e.get(v):void 0;if(!M||!E)return!1;const T=M.x??0,m=M.y??0,S=E.x??0,A=E.y??0,[R,k]=f;return ht(R,k,Z)&&Math.abs(m-A)<1&&Math.abs(T-S)>1||ft(R,k,Z)&&Math.abs(T-S)<1&&Math.abs(m-A)>1},"laneIsStraightCollinearConnector"),I=[-7,7,-14,14,-21,21];for(let u=0;u<8;u++){const p=t.filter(y=>!y.isLayoutOnly).flatMap(y=>[r(y,!0),r(y,!1)]).filter(y=>!!y);let f=!1;for(let y=0;y{const R=x(S),k=x(A);return R!==k?Number(R)-Number(k):+!A.atStart-+!S.atStart});for(const S of m){for(const A of I){const R=g(S,A);if(!R)continue;const k=r({...S.edge,points:R},S.atStart);if(!(!k||p.some(O=>O.edge!==S.edge&&(a(k,O)||T&&l(k,O))))){S.edge.points=R,f=!0;break}}if(f)break}}if(!f)return}}d(bs,"separateSharedRenderedTerminalLanes");function Ms(t,e){const{realNodeRects:o,labelNodeRects:s}=me(e.values()),r=d((c,a)=>{const l=c.start,g=c.end,x=it(a);if(x.length!==a.length-1)return!1;const I=[l,g].filter(u=>!!u);for(const u of x)if(At(u.a,u.b,o,I,-2)||At(u.a,u.b,s,[],-2))return!1;for(const u of t){if(u===c||u.isLayoutOnly)continue;const p=u.points;if(!(!p||p.length<2)){for(const f of x)for(const y of it(pt(p)))if(ce(f,y,.5)>=_t||le(f.a,f.b,y.a,y.b,Z))return!1}}return!0},"candidateIsSafe"),i=d((c,a)=>{if(a+4>=c.length)return;const l=c[a],g=c[a+1],x=c[a+2],I=c[a+3],u=c[a+4],p=Tt(l,g)&&wt(g,x)&&Tt(x,I)&&wt(I,u)&&ft(l,I,Z)&&ft(l,u,Z)&&ft(g,x,Z)&&(g.x-l.x)*(I.x-x.x)<0,f=wt(l,g)&&Tt(g,x)&&wt(x,I)&&Tt(I,u)&&ht(l,I,Z)&&ht(l,u,Z)&&ht(g,x,Z)&&(g.y-l.y)*(I.y-x.y)<0;if(p||f)return pt([...c.slice(0,a+1),u,...c.slice(a+5)]);if(a+5>=c.length)return;const y=c[a+5],v=wt(l,g)&&Tt(g,x)&&wt(x,I)&&Tt(I,u)&&wt(u,y)&&ft(l,u,Z)&&ft(l,y,Z)&&ft(x,I,Z)&&(x.x-g.x)*(u.x-I.x)<0,M=Tt(l,g)&&wt(g,x)&&Tt(x,I)&&wt(I,u)&&Tt(u,y)&&ht(l,u,Z)&&ht(l,y,Z)&&ht(x,I,Z)&&(x.y-g.y)*(u.y-I.y)<0;if(!(!v&&!M))return pt([...c.slice(0,a+1),y,...c.slice(a+6)])},"withoutDogleg");for(let c=0;c<8;c++){let a=!1;for(const l of t){if(l.isLayoutOnly)continue;const g=pt(l.points??[]);for(let x=0;x<=g.length-5;x++){const I=i(g,x);if(!(!I||!r(l,I))){l.points=I,a=!0;break}}if(a)break}if(!a)return}}d(Ms,"collapseRedundantRectangularDoglegs");function Xn(t,e){const{realNodeRects:r,labelNodeRects:i}=me(e.values()),c=t.filter(p=>!p.isLayoutOnly),a=d((p,f,y)=>pt(p===f?y??[]:p.points??[]),"pointsFor"),l=d((p,f)=>{let y=0;for(let v=0;v{const f=it(p);if(f.length!==3)return;const y=f[1];if(!(f[0].horizontal===y.horizontal||f[2].horizontal===y.horizontal))return{index:y.index,horizontal:y.horizontal,vertical:y.vertical,segment:y}},"middleRail"),x=d((p,f)=>{const y=[p.start,p.end].filter(v=>!!v);return r.filter(v=>{if(y.includes(v.id))return!1;const M=v.rect;return f.horizontal?zt(f.a.x,f.b.x,M.left,M.right)>=_t&&f.a.y>=M.top-2&&f.a.y<=M.bottom+2:zt(f.a.y,f.b.y,M.top,M.bottom)>=_t&&f.a.x>=M.left-2&&f.a.x<=M.right+2})},"blockingRectsFor"),I=d((p,f,y)=>{const v=p.map(E=>({...E}));if(f.horizontal)v[f.index].y=y,v[f.index+1].y=y;else if(f.vertical)v[f.index].x=y,v[f.index+1].x=y;else return;const M=ae(pt(v));return it(M).length===M.length-1?M:void 0},"candidateByMovingRail"),u=d((p,f,y)=>{const v=[p.start,p.end].filter(E=>!!E),M=it(f);if(M.length!==f.length-1)return!1;for(const E of M)if(At(E.a,E.b,r,v,-2)||At(E.a,E.b,i,[],-2))return!1;for(const E of c)if(E!==p){for(const T of M)for(const m of it(a(E)))if(ce(T,m,.5)>=_t)return!1}return l(p,f)<=y},"candidateIsSafe");for(let p=0;p<8;p++){const f=l();let y=!1;for(const v of c){const M=a(v),E=g(M);if(!E)continue;const T=x(v,E.segment);if(T.length===0)continue;const m=E.horizontal?[Math.min(...T.map(S=>S.rect.top))-20,Math.max(...T.map(S=>S.rect.bottom))+20]:[Math.min(...T.map(S=>S.rect.left))-20,Math.max(...T.map(S=>S.rect.right))+20];for(const S of m){const A=I(M,E.segment,S);if(!(!A||!u(v,A,f))){v.points=A,y=!0;break}}if(y)break}if(!y)return}}d(Xn,"liftObstacleHuggingSameSideRails");function Yn(t,e){const o=d(a=>{const l=a.groupTitleRect;if(!(!l||typeof l.left!="number"||typeof l.right!="number"||typeof l.top!="number"||typeof l.bottom!="number"||!Number.isFinite(l.left)||!Number.isFinite(l.right)||!Number.isFinite(l.top)||!Number.isFinite(l.bottom)||l.right<=l.left||l.bottom<=l.top))return{left:l.left,right:l.right,top:l.top,bottom:l.bottom}},"validTitleRect"),s=d(a=>{if(!a.isGroup||a.parentId)return;const l=a.direction,g=typeof l=="string"?l.toUpperCase():"";if(g==="LR"||g==="RL"||g==="BT")return;const x=o(a),I=a.y,u=a.height;if(!x||typeof I!="number"||typeof u!="number"||!Number.isFinite(I)||!Number.isFinite(u)||u<=0)return;const p=x.right-x.left,f=x.bottom-x.top;if(!(f<=0||p{if(!a.horizontal)return!1;const g=a.a.y;return g<=l.top+Z||g>=l.bottom-Z?!1:zt(a.a.x,a.b.x,l.left,l.right)>=_t},"horizontalSegmentIntersectsTitle"),i=[...e.values()].map(s).filter(a=>!!a);if(i.length===0)return;let c=0;for(const a of t){if(a.isLayoutOnly)continue;const l=pt(a.points??[]);for(const g of it(l))for(const x of i)r(g,x.rect)&&(c=Math.max(c,x.rect.bottom-g.a.y+4))}if(!(c<=Z))for(const a of i){const l=a.node.y,g=a.node.height;typeof l!="number"||typeof g!="number"||!Number.isFinite(l)||!Number.isFinite(g)||g<=0||(a.node.y=l-c/2,a.node.height=g+c,a.node.groupTitleRect={...a.rect,top:a.rect.top-c,bottom:a.rect.bottom-c})}}d(Yn,"liftTopLaneTitleBandsAboveRails");function Gn(t,e){const o=d(l=>{const g=l.groupTitleRect;if(!(!g||typeof g.left!="number"||typeof g.right!="number"||typeof g.top!="number"||typeof g.bottom!="number"||!Number.isFinite(g.left)||!Number.isFinite(g.right)||!Number.isFinite(g.top)||!Number.isFinite(g.bottom)||g.right<=g.left||g.bottom<=g.top))return{left:g.left,right:g.right,top:g.top,bottom:g.bottom}},"validTitleRect"),s=d(l=>{if(!l.isGroup||l.parentId||l.direction!=="LR")return;const x=o(l),I=l.x,u=l.width;if(!x||typeof I!="number"||typeof u!="number"||!Number.isFinite(I)||!Number.isFinite(u)||u<=0)return;const p=x.right-x.left,f=x.bottom-x.top;if(!(p<=0||f{if(!l.vertical)return!1;const x=l.a.x;return x<=g.left+Z||x>=g.right-Z?!1:zt(l.a.y,l.b.y,g.top,g.bottom)>=_t},"verticalSegmentIntersectsTitle"),i=d((l,g)=>{if(!l.horizontal)return!1;const x=l.a.y;return x<=g.top+Z||x>=g.bottom-Z?!1:zt(l.a.x,l.b.x,g.left,g.right)>=_t},"horizontalSegmentIntersectsTitle"),c=[...e.values()].map(s).filter(l=>!!l);if(c.length===0)return;let a=0;for(const l of t){if(l.isLayoutOnly)continue;const g=pt(l.points??[]);for(const x of it(g))for(const I of c)if(r(x,I.rect))a=Math.max(a,I.rect.right-x.a.x+4);else if(i(x,I.rect)){const u=Math.min(x.a.x,x.b.x);a=Math.max(a,I.rect.right-u+4)}}if(!(a<=Z))for(const l of c){const g=l.node.x,x=l.node.width;typeof g!="number"||typeof x!="number"||!Number.isFinite(g)||!Number.isFinite(x)||x<=0||(l.node.x=g-a/2,l.node.width=x+a,l.node.groupTitleRect={...l.rect,left:l.rect.left-a,right:l.rect.right-a})}}d(Gn,"shiftLeftLaneTitleBandsLeftOfRails");function Is(t,e){const{realNodeRects:o}=me(e.values()),s=t.filter(p=>!p.isLayoutOnly),r=d((p,f=new Map)=>pt(f.get(p)??p.points??[]),"replacementPointsFor"),i=d((p=new Map)=>{let f=0;for(let y=0;ys.reduce((f,y)=>f+Qt(r(y,p)),0),"totalBends"),a=d(p=>{const f=r(p);if(f.length<4)return;const y=f[f.length-2],v=f[f.length-1];if(!(!Tt(y,v,Z)&&!wt(y,v,Z)))return{tailStart:y,terminal:v}},"terminalTailFor"),l=d((p,f)=>{const y=r(p);if(y.length<3)return;const v=y[0],M=y[1];let E;if(Tt(v,M,Z))E={x:M.x,y:f.tailStart.y};else if(wt(v,M,Z))E={x:f.tailStart.x,y:M.y};else return;const T=ae(pt([v,M,E,f.tailStart,f.terminal]));return it(T).length===T.length-1?T:void 0},"candidateWithDestinationTail"),g=d((p,f)=>{const y=[p.start,p.end].filter(v=>!!v);for(const v of it(f))if(At(v.a,v.b,o,y,-2))return!0;return!1},"pathHasNodeHit"),x=d((p,f,y)=>{for(const v of s)if(v!==p){for(const M of it(f))for(const E of it(r(v,y)))if(ce(M,E,.5)>=_t)return!0}return!1},"pathHasSharedTrack"),I=d((p,f,y)=>!g(p,f)&&!x(p,f,y),"candidateIsSafe"),u=d(()=>{const p=new Map;for(const f of s){const y=f.end;if(!y||!e.has(y)||r(f).length<4)continue;const M=p.get(y)??[];M.push(f),p.set(y,M)}return p},"edgesByDestination");for(let p=0;p<4;p++){const f=i();if(f===0)return;const y=c();let v,M=f,E=y;for(const T of u().values())for(let m=0;m=f||G>M||G===M&&j>=E||(v=P,M=G,E=j)}if(!v)return;for(const[T,m]of v)T.points=m}}d(Is,"swapDestinationTerminalTailsToReduceCrossings");function Ss(t,e){const{realNodeRects:r,labelNodeRects:i}=me(e.values()),c=t.filter(T=>!T.isLayoutOnly),a=d((T,m=new Map)=>pt(m.get(T)??T.points??[]),"replacementPointsFor"),l=d((T=new Map)=>{let m=0;for(let S=0;Sc.reduce((m,S)=>m+Qt(a(S,T)),0),"totalBends"),x=d(T=>{const m=T.start,S=T.end,A=m?e.get(m):void 0,R=S?e.get(S):void 0,k=A?qt(A):void 0,O=R?qt(R):void 0;return k&&O?{src:k,dst:O}:void 0},"endpointRectsFor"),I=d((T,m,S)=>{if(S.index<=0||S.index+1>=m.length-1)return;const A=x(T);if(A){if(S.vertical){const R=S.a.x,k=Math.min(A.src.left,A.dst.left),O=Math.max(A.src.right,A.dst.right),_=RO+Z?"right":void 0;return _?{edge:T,points:m,segmentIndex:S.index,axis:"vertical",side:_,coord:R,min:Math.min(S.a.y,S.b.y),max:Math.max(S.a.y,S.b.y)}:void 0}if(S.horizontal){const R=S.a.y,k=Math.min(A.src.top,A.dst.top),O=Math.max(A.src.bottom,A.dst.bottom),_=RO+Z?"bottom":void 0;return _?{edge:T,points:m,segmentIndex:S.index,axis:"horizontal",side:_,coord:R,min:Math.min(S.a.x,S.b.x),max:Math.max(S.a.x,S.b.x)}:void 0}}},"externalRailForSegment"),u=d(()=>{const T=[];for(const m of c){const S=a(m);for(const A of it(S)){const R=I(m,S,A);R&&T.push(R)}}return T},"collectExternalRails"),p=d((T,m)=>T.edge!==m.edge&&T.axis===m.axis&&T.side===m.side&&zt(T.min,T.max,m.min,m.max)>=_t,"railsInteract"),f=d(T=>{const m=[],S=new Set;for(const A of T){if(S.has(A))continue;const R=[A],k=[];for(S.add(A);R.length>0;){const O=R.pop();k.push(O);for(const _ of T)!S.has(_)&&p(O,_)&&(S.add(_),R.push(_))}k.length>1&&m.push(k)}return m},"connectedComponents"),y=d(T=>{const m=[];for(const S of T)m.some(A=>Math.abs(A-S.coord){const m=T.map(R=>R.coord),S=y(T),A=[];if(T.length<=6){const R=new Array(S.length).fill(!1),k=[],O=d(()=>{if(k.length===T.length){k.some((_,H)=>Math.abs(_-m[H])>=Z)&&A.push([...k]);return}for(const[_,H]of S.entries())R[_]||(R[_]=!0,k.push(H),O(),k.pop(),R[_]=!1)},"visit");return O(),A}for(let R=0;R{const S=new Map;for(const[R,k]of T.entries()){const O=m[R],_=S.get(k.edge)??k.points.map(H=>({x:H.x,y:H.y}));k.axis==="vertical"?(_[k.segmentIndex].x=O,_[k.segmentIndex+1].x=O):(_[k.segmentIndex].y=O,_[k.segmentIndex+1].y=O),S.set(k.edge,_)}const A=new Map;for(const[R,k]of S){const O=ae(pt(k));if(it(O).length!==O.length-1)return;A.set(R,O)}return A},"replacementsForAssignment"),E=d(T=>{for(const[m,S]of T){const A=[m.start,m.end].filter(R=>!!R);for(const R of it(S))if(At(R.a,R.b,r,A,-2)||At(R.a,R.b,i,[],-2))return!1}for(let m=0;m=_t)return!1}}return!0},"candidateIsSafe");for(let T=0;T<4;T++){const m=l();if(m===0)return;let S,A=m,R=g(),k=Number.POSITIVE_INFINITY;for(const O of f(u()))for(const _ of v(O)){const H=M(O,_);if(!H||!E(H))continue;const P=l(H);if(P>=m)continue;const G=g(H),j=O.reduce((J,dt,mt)=>J+Math.abs(_[mt]-dt.coord),0);P>A||P===A&&(G>R||G===R&&j>=k)||(S=H,A=P,R=G,k=j)}if(!S)return;for(const[O,_]of S)O.points=_}}d(Ss,"reassignCrossingExternalRailChannels");function Cs(t,e){const{realNodeRects:o,labelNodeRects:s}=me(e.values()),r=t.filter(u=>!u.isLayoutOnly),i=d((u,p,f)=>pt(u===p?f??[]:u.points??[]),"pointsFor"),c=d(u=>it(u).reduce((p,f)=>{const y=f.a.x-f.b.x,v=f.a.y-f.b.y;return p+Math.hypot(y,v)},0),"pathLength"),a=d((u,p)=>{let f=0;for(let y=0;y{if(u.horizontal){const f=u.a.y;return(Math.abs(f-p.top)<1||Math.abs(f-p.bottom)<1)&&zt(u.a.x,u.b.x,p.left,p.right)>=_t}if(u.vertical){const f=u.a.x;return(Math.abs(f-p.left)<1||Math.abs(f-p.right)<1)&&zt(u.a.y,u.b.y,p.top,p.bottom)>=_t}return!1},"segmentRunsAlongRectBorder"),g=d(u=>{const p=[u.start,u.end].filter(y=>!!y),f=[];for(const y of p){const v=e.get(y),M=v?qt(v):void 0;M&&f.push(M)}return f},"endpointRectsFor"),x=d((u,p)=>{if(p+3>=u.length)return[];const f=u[p],y=u[p+1],v=u[p+2],M=u[p+3],E=Tt(f,y,Z)&&wt(y,v,Z)&&Tt(v,M,Z),T=wt(f,y,Z)&&Tt(y,v,Z)&&wt(v,M,Z);if(!E&&!T)return[];if(!(E?Math.sign(y.x-f.x)!==Math.sign(M.x-v.x):Math.sign(y.y-f.y)!==Math.sign(M.y-v.y)))return[];const S=ft(f,M,Z)||ht(f,M,Z)?[]:[{x:f.x,y:M.y},{x:M.x,y:f.y}],A=S.length===0?[[...u.slice(0,p+1),...u.slice(p+3)]]:S.map(k=>[...u.slice(0,p+1),k,...u.slice(p+3)]),R=new Set;return A.map(k=>ae(pt(k))).filter(k=>{if(it(k).length!==k.length-1||!k.some(_=>oe(_,M,Z)))return!1;const O=k.map(_=>`${_.x.toFixed(3)},${_.y.toFixed(3)}`).join("|");return R.has(O)?!1:(R.add(O),!0)})},"shortcutCandidatesAt"),I=d((u,p,f)=>{const y=[u.start,u.end].filter(M=>!!M),v=g(u);for(const M of it(p))if(At(M.a,M.b,o,y,-2)||At(M.a,M.b,s,[],-2)||v.some(E=>l(M,E)))return!1;for(const M of r)if(M!==u){for(const E of it(p))for(const T of it(i(M)))if(ce(E,T,.5)>=_t)return!1}return a(u,p)<=f},"candidateIsSafe");for(let u=0;u<8;u++){const p=a();let f,y,v=p,M=Number.POSITIVE_INFINITY,E=Number.POSITIVE_INFINITY;for(const T of r){const m=i(T),S=Qt(m,Z),A=c(m);for(let R=0;R<=m.length-4;R++)for(const k of x(m,R)){const O=Qt(k,Z),_=c(k);if(!(Ov||P===v&&(O>M||O===M&&_>=E)||(f=T,y=k,v=P,M=O,E=_)}}if(!f||!y)return;f.points=y}}d(Cs,"shortcutRedundantOrthogonalJogs");function vs(t,e){const i=[];for(const N of e.values()){if(N.isGroup||N.isEdgeLabel)continue;const F=N.x??0,D=N.y??0,V=qt(N);V&&i.push({id:String(N.id??""),cx:F,cy:D,rect:V})}if(i.length===0)return;const c=new Map(i.map(N=>[N.id,N])),a=i.map(N=>({id:N.id,rect:N.rect})),l=["top","bottom","left","right"],g={top:Math.min(...i.map(N=>N.rect.top))-20,bottom:Math.max(...i.map(N=>N.rect.bottom))+20,left:Math.min(...i.map(N=>N.rect.left))-20,right:Math.max(...i.map(N=>N.rect.right))+20},x=t.filter(N=>!N.isLayoutOnly),I=new Map(x.map((N,F)=>[N,F])),u=d(N=>{const F=N==="left"||N==="top"?-1:1,D=[];for(let V=0;V<=2;V++)D.push(g[N]+F*20*V);return D},"outwardTracksForSide"),p=d((N,F=new Map)=>pt(F.get(N)??N.points??[]),"replacementPointsFor"),f=d((N,F)=>{let D=0;for(const V of N)for(const h of F)le(V.a,V.b,h.a,h.b,Z)&&D++;return D},"crossingCountBetweenSegments"),y=d((N,F)=>f(it(N),it(F)),"crossingCountBetweenPaths"),v=d((N=new Map)=>{let F=0;const D=[],V=new Set,h=[],b=d(C=>{V.has(C)||(V.add(C),h.push(C))},"addEdge");for(let C=0;C0&&(F+=q,D.push({first:L,second:U,count:q}),b(L),b(U))}}return h.sort((C,L)=>(I.get(C)??0)-(I.get(L)??0)),{count:F,pairs:D,edgeSet:V,edges:h}},"crossingSnapshot"),M=d((N,F)=>{const D=new Set(F.keys());if(D.size===0)return N.count;let V=0;for(const b of N.pairs)(D.has(b.first)||D.has(b.second))&&(V+=b.count);let h=0;for(let b=0;b{const F=new Map;for(const h of N.pairs){const b=F.get(h.first)??new Set;b.add(h.second),F.set(h.first,b);const C=F.get(h.second)??new Set;C.add(h.first),F.set(h.second,C)}const D=[],V=new Set;for(const h of N.edges){if(V.has(h))continue;const b=[h],C=[];for(V.add(h);b.length>0;){const L=b.pop();C.push(L);for(const w of F.get(L)??[])V.has(w)||(V.add(w),b.push(w))}C.sort((L,w)=>(I.get(L)??0)-(I.get(w)??0)),C.length>1&&D.push(C)}return D},"crossingComponents"),T=d(N=>[N.start,N.end].filter(F=>!!F),"endpointIdsFor"),m=d(N=>{const F=[];for(const D of E(N)){const V=new Set(D),h=new Set(D.flatMap(C=>T(C))),b=[...D];for(const C of x)V.has(C)||T(C).some(L=>h.has(L))&&b.push(C);b.sort((C,L)=>(I.get(C)??0)-(I.get(L)??0)),F.push(b)}return F},"pairSearchGroups"),S=d((N,F,D)=>M(N,new Map([[F,D]])),"crossingCountWithSingleReplacement"),A=d(N=>{const F=new Map;for(const D of N.pairs)F.set(D.first,(F.get(D.first)??0)+D.count),F.set(D.second,(F.get(D.second)??0)+D.count);return F},"currentCrossingsByEdge"),R=d(N=>N.slice(1).reduce((F,D,V)=>{const h=N[V];return F+Math.abs(D.x-h.x)+Math.abs(D.y-h.y)},0),"pathLength"),k=d((N=new Map)=>x.reduce((F,D)=>F+Qt(p(D,N)),0),"totalBends"),O=d((N=new Map)=>x.reduce((F,D)=>F+R(p(D,N)),0),"totalLength"),_=d((N,F,D=new Map)=>{const V=it(F);for(const h of x)if(h!==N){for(const b of V)for(const C of it(p(h,D)))if(ce(b,C,.5)>=_t)return!0}return!1},"pathHasSegmentConflict"),H=d((N,F)=>{const D=[N.start,N.end].filter(V=>!!V);for(const V of it(F))if(At(V.a,V.b,a,D,-2))return!0;return!1},"pathHitsNode"),P=d((N,F)=>{const D=ae(pt(F));it(D).length===D.length-1&&N.push(D)},"pushOrthogonalCandidate"),G=d(N=>N==="left"||N==="right","sideIsHorizontal"),j=d((N,F,D)=>{switch(F){case"left":return Math.min(N.x,D.x)-20;case"right":return Math.max(N.x,D.x)+20;case"top":return Math.min(N.y,D.y)-20;case"bottom":return Math.max(N.y,D.y)+20}},"localTrackForSameSide"),J=d((N,F,D,V)=>{const h=D==="left"||D==="top"?-1:1,b=[j(F,D,V),g[D]];for(const C of b)for(let L=0;L<=2;L++)P(N,ao(F,D,V,C+h*20*L))},"addSameSideCandidates"),dt=d((N,F,D,V,h)=>{for(const b of u(D))for(const C of u(h))P(N,[F,{x:b,y:F.y},{x:b,y:C},{x:V.x,y:C},V])},"addHorizontalToVerticalCandidates"),mt=d((N,F,D,V,h)=>{for(const b of u(D))for(const C of u(h))P(N,[F,{x:F.x,y:b},{x:C,y:b},{x:C,y:V.y},V])},"addVerticalToHorizontalCandidates"),kt=d((N,F,D,V,h)=>{const b=[...u("top"),...u("bottom")];for(const C of u(D))for(const L of u(h))for(const w of b)P(N,[F,{x:C,y:F.y},{x:C,y:w},{x:L,y:w},{x:L,y:V.y},V])},"addHorizontalPairCandidates"),Pt=d((N,F,D,V,h)=>{const b=[...u("left"),...u("right")];for(const C of u(D))for(const L of u(h))for(const w of b)P(N,[F,{x:F.x,y:C},{x:w,y:C},{x:w,y:L},{x:V.x,y:L},V])},"addVerticalPairCandidates"),Q=d(N=>{const F=new Set;return N.map(D=>pt(D)).filter(D=>{const V=D.map(h=>`${h.x.toFixed(3)},${h.y.toFixed(3)}`).join("|");return F.has(V)||D.length<2?!1:(F.add(V),!0)})},"dedupeCandidatePaths"),W=d((N,F,D,V)=>{const h=[],b=co(N,F,D,V,20,Z);b&&P(h,b),F===V&&J(h,N,F,D);const C=G(F),L=G(V);return C&&!L?dt(h,N,F,D,V):!C&&L?mt(h,N,F,D,V):C?kt(h,N,F,D,V):Pt(h,N,F,D,V),Q(h)},"buildCandidatesForSides"),et=d((N,F,D,V)=>{const h=[...u("left"),...u("right")],b=[...u("top"),...u("bottom")];for(const C of l){const L=Ie(V,C),w=C==="top"||C==="bottom"?u(C):b;for(const B of h){P(N,[F,D,{x:B,y:D.y},{x:B,y:L.y},L]);for(const U of w)P(N,[F,D,{x:B,y:D.y},{x:B,y:U},{x:L.x,y:U},L])}}},"addVerticalDepartureOuterTrackCandidates"),at=d((N,F,D,V)=>{const h=[...u("left"),...u("right")],b=[...u("top"),...u("bottom")];for(const C of l){const L=Ie(V,C),w=C==="left"||C==="right"?u(C):h;for(const B of b){P(N,[F,D,{x:D.x,y:B},{x:L.x,y:B},L]);for(const U of w)P(N,[F,D,{x:D.x,y:B},{x:U,y:B},{x:U,y:L.y},L])}}},"addHorizontalDepartureOuterTrackCandidates"),gt=d(N=>{const F=N.start,D=N.end,V=D?c.get(D):void 0;if(!F||!V)return[];const h=pt(N.points??[]);if(h.length<4)return[];const b=h[0],C=h[1],L=[];return wt(b,C,Z)?et(L,b,C,V):Tt(b,C,Z)&&at(L,b,C,V),L},"terminalPreservingOuterTrackCandidates"),xt=d(N=>{const F=N.start,D=N.end,V=F?c.get(F):void 0,h=D?c.get(D):void 0;if(!V||!h)return[];const b=[];for(const C of l){const L=Ie(V,C);for(const w of l)b.push(...W(L,C,Ie(h,w),w))}return b.push(...gt(N)),b},"candidatePathsFor"),vt=d(()=>new Map(x.map(N=>[N,it(p(N))])),"currentSegmentsByEdge"),Vt=d((N,F,D)=>{const V=new Set;for(const h of x){if(h===N)continue;const b=D.get(h)??it(p(h));F.some(C=>b.some(L=>ce(C,L,.5)>=_t))&&V.add(h)}return V},"sharedTrackConflictsFor"),jt=d((N,F,D,V)=>{const h=new Set;return xt(N).map(C=>ae(pt(C))).filter(C=>{if(H(N,C))return!1;const L=C.map(w=>`${w.x.toFixed(3)},${w.y.toFixed(3)}`).join("|");return h.has(L)||C.length<2?!1:(h.add(L),!0)}).map(C=>{const L=it(C);let w=0;for(const B of x)B!==N&&(w+=f(L,D.get(B)??it(p(B))));return{candidate:C,candidateSegments:L,crossings:F.count-(V.get(N)??0)+w,bends:Qt(C,Z),totalBends:Qt(C),length:R(C)}}).filter(({crossings:C})=>C<=F.count).sort((C,L)=>C.crossings-L.crossings||C.bends-L.bends||C.length-L.length).slice(0,48).map(C=>({path:C.candidate,segments:C.candidateSegments,sharedTrackConflicts:Vt(N,C.candidateSegments,D),totalBends:C.totalBends,length:C.length}))},"pairCandidatesFor"),Ut=d((N,F,D,V,h,b)=>{let C=0;for(const w of N.pairs)(w.first===F||w.second===F||w.first===V||w.second===V)&&(C+=w.count);let L=f(D.segments,h.segments);for(const w of x){if(w===F||w===V)continue;const B=b.get(w)??it(p(w));L+=f(D.segments,B)+f(h.segments,B)}return N.count-C+L},"pairCrossingCount"),te=d((N,F)=>{for(const D of N.sharedTrackConflicts)if(D!==F)return!1;return!0},"conflictsOnlyWith"),Se=d((N,F)=>N.segments.some(D=>F.segments.some(V=>ce(D,V,.5)>=_t)),"candidatesShareTrack"),de=d((N,F,D,V)=>te(F,D.edge)&&te(V,N.edge)&&!Se(F,V),"pairCandidatesAreCompatible"),Ce=d((N,F,D,V,h)=>{const b=Ut(N.current,F.edge,D,V.edge,h,N.baseSegments);if(!(b>=N.current.count))return{replacements:new Map([[F.edge,D.path],[V.edge,h.path]]),crossings:b,bends:N.currentBends-(N.baseBendsByEdge.get(F.edge)??0)-(N.baseBendsByEdge.get(V.edge)??0)+D.totalBends+h.totalBends,length:N.currentLength-(N.baseLengthByEdge.get(F.edge)??0)-(N.baseLengthByEdge.get(V.edge)??0)+D.length+h.length}},"scorePairReplacement"),dn=d((N,F)=>N.crossings{let h=V;for(const b of F.candidates)for(const C of D.candidates){if(!de(F,b,D,C))continue;const L=Ce(N,F,b,D,C);L&&dn(L,h)&&(h=L)}return h},"bestScoreForOptionPair"),hn=d(N=>{const F=k(),D=O(),V=vt(),h=A(N),b=new Map(x.map(q=>[q,Qt(p(q))])),C=new Map(x.map(q=>[q,R(p(q))])),L=new Map,w=m(N);for(const q of w)for(const z of q){if(L.has(z))continue;const Y=jt(z,N,V,h);Y.length>0&&L.set(z,{edge:z,candidates:Y})}let B={replacements:new Map,crossings:N.count,bends:F,length:D};const U={current:N,currentBends:F,currentLength:D,baseBendsByEdge:b,baseLengthByEdge:C,baseSegments:V};for(const q of w){const z=new Set(q.filter(ot=>N.edgeSet.has(ot))),Y=q.map(ot=>L.get(ot)).filter(ot=>!!ot);for(let ot=0;ot0?B.replacements:void 0},"bestPairedReplacement");for(let N=0;N<4;N++){const F=v(),D=F.count;if(D===0)return;let V,h,b=D,C=Number.POSITIVE_INFINITY;for(const w of F.edges){const B=Qt(p(w),Z);for(const U of xt(w)){const q=H(w,U),z=!q&&_(w,U),Y=S(F,w,U),ot=Qt(U,Z);q||z||!(Yb||Y===b&&ot>=C||(V=w,h=U,b=Y,C=ot)}}if(V&&h){V.points=h;continue}const L=hn(F);if(!L)return;for(const[w,B]of L)w.points=B}}d(vs,"resolveRenderedOrthogonalCrossings");var pe=.001,Wr=8;function Ls(t,e){const{nodeInfoById:n,realNodeRects:o}=an(e),s=["top","bottom","left","right"],r=20,i={top:Math.min(...o.map(f=>f.rect.top))-r,bottom:Math.max(...o.map(f=>f.rect.bottom))+r,left:Math.min(...o.map(f=>f.rect.left))-r,right:Math.max(...o.map(f=>f.rect.right))+r},c=d((f,y,v,M)=>{const E=[],T=co(f,y,v,M,r,pe);return T&&E.push(T),y===M&&E.push(ao(f,y,v,i[y])),E},"buildOrthogonalPathCandidates"),a=d((f,y)=>{for(let v=0;v{let M=0;const E=Re(f,pe),T=y.start,m=y.end;for(const S of t){if(S===y||S.isLayoutOnly)continue;const A=S.start,R=S.end;if(!v&&T&&m&&(A===T||A===m||R===T||R===m))continue;const k=S.points;if(!(!k||k.length<2))for(const O of E)for(const _ of Re(k,pe)){if(fo(O.a,O.b,_.a,_.b,pe,pe)){M++;continue}ce(O,_,pe)>=Wr&&M++}}return M},"pathConflictCount"),g=4,x=d((f,y)=>{const v=Math.abs(f.y-y.rect.top),M=Math.abs(f.y-y.rect.bottom),E=Math.abs(f.x-y.rect.left),T=Math.abs(f.x-y.rect.right);let m="top",S=v;return M{const M=I.get(f)??[];M.push({side:y,edgeId:v}),I.set(f,M)},"addFaceClaim");for(const f of t){if(f.isLayoutOnly)continue;const y=f.points??[];if(y.length<1)continue;const v=f.id??"",M=f.start,E=f.end;if(M){const T=n.get(M);T&&u(M,x(y[0],T),v)}if(E){const T=n.get(E);T&&u(E,x(y[y.length-1],T),v)}}const p=d((f,y,v)=>I.get(f)?.some(M=>M.edgeId!==v&&M.side===y)??!1,"faceIsClaimed");for(const f of t){if(f.isLayoutOnly)continue;const y=f.points;if(!y||y.length<2)continue;const v=Qt(y,pe);if(v0){const mt=l(J,f,!0);if(mt>O||mt===O&&dt>=_)continue;O=mt,_=dt,k=J;continue}l(J,f)>R||dt<_&&(_=dt,k=J)}}}if(k){f.points=k;const H=I.get(M);H&&I.set(M,H.filter(G=>G.edgeId!==S));const P=I.get(E);P&&I.set(E,P.filter(G=>G.edgeId!==S)),u(M,x(k[0],T),S),u(E,x(k[k.length-1],m),S)}}}d(Ls,"simplifyDetouredEdges");var Kt=.001,Po=10,Ve=7;function $n(t,e){const n=e?0:t.length-1,o=e?1:-1,s=t[n],r=t[n+o];if(!s||!r)return;const i=r.x-s.x,c=r.y-s.y;if(!(Math.abs(i)+Math.abs(c)r&&Je(t,Es(r)))}d(zn,"labelOverlapsOwnMarker");function Ue(t,e){const n=[];for(const p of t){if(p.isLayoutOnly)continue;const f=p.points;if(!(!f||f.length<2))for(let y=0;y{const y=Tn(f,r);for(const{nodeId:v,rect:M}of o)if(v!==p&&Je(y,M))return!0;return!1},"labelOverlapsForeignNode"),l=d((p,f)=>{const y=Tn(f,r);for(const v of n)if(v.edgeId!==p&&cn(v.p1,v.p2,y))return!0;return!1},"labelOverlapsForeignEdge"),g=d((p,f,y)=>a(p,y)||l(f,y),"labelOverlapsAnything"),x=[],I=d(p=>{for(const{id:f,rect:y}of s)if(ts(y,p))return f},"findContainingLane"),u=d((p,f)=>x.some(y=>y.labelId!==p&&Je(f,y.rect)),"overlapsPlacedLabel");for(const p of t){if(p.isLayoutOnly)continue;const f=p.labelNodeId;if(!f)continue;const y=e.get(f);if(!y)continue;const v=p.points;if(!v||v.length<2)continue;const M=y.width??0,E=y.height??0;if(M<=0||E<=0)continue;const T=[];for(let Q=0;Q=Kt&>>=Kt||T.push({idx:Q,length:at+gt,orientation:at>=Kt?"horizontal":"vertical",midX:(W.x+et.x)/2,midY:(W.y+et.y)/2})}if(T.length===0)continue;const m=T.length>=3?T.filter(Q=>Q.idx>0&&Q.idx0?m:T,A=M>=E?"horizontal":"vertical",R=d(Q=>[...Q].sort((W,et)=>{const at=W.orientation===A,gt=et.orientation===A;if(at!==gt)return at?-1:1;const xt=W.length>=(W.orientation==="horizontal"?M:E)+2,vt=et.length>=(et.orientation==="horizontal"?M:E)+2;return xt!==vt?xt?-1:1:et.length-W.length}),"rankSegments"),k=T[0],O=T[T.length-1],_=[.5,.25,.75,.05,.95,.15,.85,.1,.9],H=d((Q,W)=>{const et=v[Q.idx],at=v[Q.idx+1];return{midX:et.x+(at.x-et.x)*W,midY:et.y+(at.y-et.y)*W}},"anchorAtT"),P=d((Q,W,et)=>Math.min(et,Math.max(W,Q)),"clamp"),G=d((Q,W)=>Q.midX>=W.left-Kt&&Q.midX<=W.right+Kt&&Q.midY>=W.top-Kt&&Q.midY<=W.bottom+Kt,"pointInsideRectInclusive"),j=d(Q=>{const W=Ae(Q.midX,Q.midY,M,E),et=I(W);if(et)return{laneId:et,anchor:Q,rect:W};const at=s.find(({rect:te})=>G(Q,te));if(!at)return;const gt=at.rect.left+M/2+i,xt=at.rect.right-M/2-i,vt=at.rect.top+E/2+i,Vt=at.rect.bottom-E/2-i;if(gt>xt||vt>Vt)return;const jt={midX:P(Q.midX,gt,xt),midY:P(Q.midY,vt,Vt)},Ut=Ae(jt.midX,jt.midY,M,E);return G(Q,Ut)?{laneId:at.id,anchor:jt,rect:Ut}:void 0},"placementForAnchor"),J=d((Q,W,et)=>Q.orientation==="horizontal"?Math.abs(W.midX-et.x):Math.abs(W.midY-et.y),"distanceAlongSegment"),dt=d((Q,W)=>{const at=(Q.orientation==="horizontal"?M/2:E/2)+c;if(Q===k){const gt=v[Q.idx];if(J(Q,W,gt)+Kt{const W=R(Q);for(const et of W)for(const at of _){const gt=H(et,at);if(!dt(et,gt))continue;const xt=j(gt);if(xt&&!zn(xt.rect,v)&&!u(f,xt.rect)&&!g(f,p.id,xt.rect))return{laneId:xt.laneId,anchor:xt.anchor}}},"tryPool"),kt=d((Q,W,et=!1)=>{const at=R(Q);for(const gt of at){const xt={midX:gt.midX,midY:gt.midY};if(W&&!dt(gt,xt))continue;const vt=j(xt);if(vt&&!zn(vt.rect,v)&&!u(f,vt.rect)&&!a(f,vt.rect)&&(et||!l(p.id,vt.rect)))return{laneId:vt.laneId,anchor:vt.anchor}}},"findLaneContainingFallback"),Pt=mt(S)??(S.lengthet.labelId===f);W>=0?x[W]={labelId:f,rect:Q}:x.push({labelId:f,rect:Q})}}}d(Ue,"anchorLabelsToPolyline");var Sn=1e-6,Kr=8,Bo=Kr/2,qr=3;function Vn(t,e){return t{const g=Vn(c,a);let x=0;const I=d(u=>{if(!u)return;const p=s.get(u);if(!p)return;const f=l==="x"?p.w/2:p.h/2;f>x&&(x=f)},"consider");I(i.labelNodeId);for(const u of t){if(u===i||u.isLayoutOnly)continue;const p=u.start,f=u.end;!p||!f||Vn(p,f)===g&&I(u.labelNodeId)}return x>0?x+qr:0},"labelClearanceFor");for(const i of t){if(i.isLayoutOnly)continue;const c=i.points;if(!ro(c,Sn))continue;const a=lo(i,n,Sn);if(!a)continue;const{srcId:l,dstId:g,srcInfo:x,dstInfo:I,collinearX:u,collinearY:p}=a;if(u===p)continue;let f,y;if(u){const m=I.cy>x.cy;f={x:x.cx,y:m?x.rect.bottom:x.rect.top},y={x:I.cx,y:m?I.rect.top:I.rect.bottom}}else{const m=I.cx>x.cx;f={x:m?x.rect.right:x.rect.left,y:x.cy},y={x:m?I.rect.left:I.rect.right,y:I.cy}}if(At(f,y,o,[l,g],1))continue;const M=r(i,l,g,u?"x":"y"),E=M>Bo?M:Bo,T=[0,E,-E];for(const m of T){const S={...f},A={...y};if(u){if(S.x+=m,A.x+=m,S.x<=x.rect.left||S.x>=x.rect.right||A.x<=I.rect.left||A.x>=I.rect.right)continue}else if(S.y+=m,A.y+=m,S.y<=x.rect.top||S.y>=x.rect.bottom||A.y<=I.rect.top||A.y>=I.rect.bottom)continue;if(!At(S,A,o,[l,g],1)&&!Ze(S,A,t,i,{epsilon:Sn})){i.points=[S,A];break}}}}d(Ts,"straightenCollinearSiblingDetours");function jn(t,e){const{realNodeRects:a,labelNodeRects:l}=me(e.values()),g=d((m,S)=>Re(S,.001).map(A=>({...A,edge:m,interior:A.index>=1&&A.index<=S.length-3})),"segmentsFor"),x=d(()=>{const m=[];for(const S of t){if(S.isLayoutOnly)continue;const A=S.points;!A||A.length<2||m.push(...g(S,pt(A)))}return m},"allSegments"),I=d((m,S)=>m.horizontal&&S.horizontal?zt(m.a.x,m.b.x,S.a.x,S.b.x)>=8&&Math.abs(m.a.y-S.a.y)<7:m.vertical&&S.vertical?zt(m.a.y,m.b.y,S.a.y,S.b.y)>=8&&Math.abs(m.a.x-S.a.x)<7:!1,"hasCrowdedParallelTrack"),u=d((m,S)=>{const A=m.start,R=m.end,k=g(m,S);if(k.length!==S.length-1)return!1;const O=[A,R].filter(H=>!!H),_=m.labelNodeId?[m.labelNodeId]:[];for(const H of k)if(At(H.a,H.b,a,O,-2)||At(H.a,H.b,l,_,-2))return!1;for(const H of t){if(H===m||H.isLayoutOnly)continue;const P=H.points;if(!(!P||P.length<2)){for(const G of k)for(const j of g(H,pt(P)))if(I(G,j)||le(G.a,G.b,j.a,j.b,.001))return!1}}return!0},"candidateIsSafe"),p=d((m,S)=>{const A=pt(m.edge.points??[]);if(A.length<4||m.index>=A.length-1)return;const R=A.map(k=>({...k}));if(m.horizontal)R[m.index].y+=S,R[m.index+1].y+=S;else if(m.vertical)R[m.index].x+=S,R[m.index+1].x+=S;else return;return g(m.edge,R).length===R.length-1?R:void 0},"shiftedCandidate"),f=d((m,S)=>({x:m.x??(S.left+S.right)/2,y:m.y??(S.top+S.bottom)/2}),"nodeCenter"),y=d(m=>{const S=m.edge,A=pt(S.points??[]);if(A.length!==4||m.index!==1)return;const R=S.start?e.get(S.start):void 0,k=S.end?e.get(S.end):void 0,O=R?qt(R):void 0,_=k?qt(k):void 0,H=A.slice(m.index+2);if(!(!R||!k||!O||!_||H.length===0))return{sourceCenter:f(R,O),targetCenter:f(k,_),sourceRect:O,tail:H}},"sourceDetourContextFor"),v=d((m,S,A,R,k,O)=>{const _=R.y>=A.y,H=_?k.bottom:k.top,P=H+(_?20:-20);if(_&&m.b.y<=P+.001||!_&&m.b.y>=P-.001)return;const G=m.a.x+S;return pt([{x:A.x,y:H},{x:A.x,y:P},{x:G,y:P},{x:G,y:m.b.y},...O],.001)},"verticalSourceDetour"),M=d((m,S,A,R,k,O)=>{const _=R.x>=A.x,H=_?k.right:k.left,P=H+(_?20:-20);if(_&&m.b.x<=P+.001||!_&&m.b.x>=P-.001)return;const G=m.a.y+S;return pt([{x:H,y:A.y},{x:P,y:A.y},{x:P,y:G},{x:m.b.x,y:G},...O],.001)},"horizontalSourceDetour"),E=d((m,S)=>{const A=y(m);if(A){if(m.vertical)return v(m,S,A.sourceCenter,A.targetCenter,A.sourceRect,A.tail);if(m.horizontal)return M(m,S,A.sourceCenter,A.targetCenter,A.sourceRect,A.tail)}},"sourceDetourCandidate"),T=[-7,7,-14,14,-21,21];for(let m=0;m<12;m++){const S=x();let A=!1;for(let R=0;RP.interior);for(const P of H){for(const G of T){const j=p(P,G);if(j&&u(P.edge,j)){P.edge.points=j,A=!0;break}const J=E(P,G);if(J&&u(P.edge,J)){P.edge.points=J,A=!0;break}}if(A)break}}if(!A)return}}d(jn,"nudgeSharedInteriorSubpaths");function ws(t,e,n,o){const s=e.x-t.x,r=e.y-t.y,i=o.x-n.x,c=o.y-n.y,a=s*c-r*i;if(Math.abs(a)<1e-10)return!1;const l=n.x-t.x,g=n.y-t.y,x=(l*c-g*i)/a,I=(l*r-g*s)/a,u=.01;return x>u&&x<1-u&&I>u&&I<1-u}d(ws,"segmentsIntersect");function As(t){const e=t.nodes??[],n=t.edges??[],o=[];if(!n.length||!e.length)return o;const s=es(e),r=[];for(const c of n){if(c.isLayoutOnly)continue;const a=c.points;if(!a||a.length<2)continue;const l=c.start,g=c.end,x=c.labelNodeId,I=c.id??`${l}->${g}`;for(const u of s)if(!(u.nodeId===l||u.nodeId===g)&&!(x&&u.nodeId===x)){for(let p=0;p0){const c=o.filter(l=>l.type==="edge-node-overlap").length,a=o.filter(l=>l.type==="edge-edge-crossing").length;Ke.warn(`[SWIMLANE_VALIDATE] ${o.length} issue(s) detected: ${c} edge-node overlap(s), ${a} edge crossing(s)`);for(const l of o)Ke.warn(`[SWIMLANE_VALIDATE] ${l.type}: ${l.detail}`)}return o}d(As,"validateSwimlanesLayout");function Rs(t,e){const n=t.nodes??[],o=t.edges??[],s=n.filter(c=>!c.isGroup);if((e==="LR"||e==="RL")&&s.length>0&&!ms(t,e)||e==="BT"&&s.length>0&&!ps(t))return;for(const c of o){if(c.isLayoutOnly)continue;const a=c.points;!a||a.length<2||(c.points=ae(Qe(a)))}Ls(o,n),Ts(o,n),ys(o,n);const r=new Map;for(const c of n)r.set(String(c.id),c);Ue(o,r),is(o,r),xs(o,r),jn(o,r),bs(o,r),Ms(o,r),Xn(o,r),Is(o,r);const i=d(()=>{vs(o,r),Ss(o,r),Cs(o,r),Ue(o,r),Dn(o,r),Xn(o,r),Ue(o,r),Dn(o,r)},"finalizeRenderedEdges");i(),jn(o,r),i(),Yn(o,r),Gn(o,r),Yn(o,r),Gn(o,r)}d(Rs,"postProcessSwimlaneLayout");function ye(t){const e=new Map(t.nodeById),n=new Set,o=[];for(const r of t.edges){if(!e.has(r.src)||!e.has(r.dst))continue;const i=`${r.id}:${r.src}->${r.dst}`;n.has(i)||(n.add(i),o.push(r))}return{nodes:[...e.keys()],edges:o,layout:t.layout,nodeById:e}}d(ye,"normalizeGraph");function mo(t,e){return t.edges.filter(n=>n.dst===e)}d(mo,"incoming");function Ns(t){const e=new Map;for(const n of t.nodes)e.set(n,[]);for(const n of t.edges)e.get(n.src).push(n.dst);return e}d(Ns,"buildSuccessorMap");function yo(t){const e=Ns(t);for(const n of e.values())n.sort((o,s)=>o.localeCompare(s));return e}d(yo,"buildSortedSuccessorMap");function xo(t){const e=new Map;for(const n of t.nodes)e.set(n,0);for(const n of t.edges)e.set(n.dst,(e.get(n.dst)??0)+1);return e}d(xo,"buildInDegreeMap");function bo(t){return[...t.entries()].filter(([,e])=>e===0).map(([e])=>e).sort((e,n)=>e.localeCompare(n))}d(bo,"sortedZeroInDegreeNodes");function ln(t,e=()=>!0){const n=new Map,o=new Map;for(const s of t.nodes)n.set(s,[]),o.set(s,[]);for(const s of t.edges)e(s)&&(o.get(s.src).push(s.dst),n.get(s.dst).push(s.src));return{preds:n,succs:o}}d(ln,"buildPredecessorSuccessorMaps");function Mo(t,e,n,o){let s=0;for(const i of t.nodes)o?.skipGroups&&t.nodeById.get(i)?.isGroup||(s=Math.max(s,n[i]??0));const r=Array.from({length:s+1},()=>[]);for(const i of e)o?.skipGroups&&t.nodeById.get(i)?.isGroup||r[Math.max(0,n[i]??0)].push(i);return r}d(Mo,"buildLayersFromRanks");function Be(t){const e=xo(t),n=bo(e),o=[],s=yo(t);for(;n.length;){const r=n.shift();o.push(r);for(const i of s.get(r)??[])if(e.set(i,(e.get(i)??0)-1),(e.get(i)??0)===0){let c=0;for(;c{if(s-o<=1)return 0;const r=o+s>>1;let i=n(o,r)+n(r,s),c=o,a=r,l=o;for(;c=s||cx.dst===I.dst?x.id.localeCompare(I.id):x.dst.localeCompare(I.dst));const o=Object.create(null);for(const g of e.nodes)o[g]=0;const s=[],r=d(g=>{o[g]=1;for(const x of n.get(g)??[]){const I=x.dst;o[I]===0?r(I):o[I]===1&&s.push(x)}o[g]=2},"dfs"),i=[...e.nodes].sort((g,x)=>g.localeCompare(x));for(const g of i)o[g]===0&&r(g);const c=new Set(s.map(g=>`${g.id}:${g.src}->${g.dst}`)),a=e.edges.map(g=>c.has(`${g.id}:${g.src}->${g.dst}`)?{id:g.id,src:g.dst,dst:g.src,weight:g.weight,ref:g.ref}:g);return{acyclic:{nodes:[...e.nodes],edges:a,layout:e.layout,nodeById:new Map(e.nodeById)},reversed:s}}d(Os,"removeCycles_DFS");function Ps(t){const e=new Map,n=d(o=>{if(e.has(o))return e.get(o);const s=t.nodeById.get(o);if(!s)return e.set(o,null),null;const r=s.parentId;if(!r)return e.set(o,null),null;const c=n(r)??r;return e.set(o,c),c},"resolve");for(const o of t.nodes)n(o);return e}d(Ps,"buildTopLaneMap");function fe(t){const e=Ps(t);return n=>e.get(n)??null}d(fe,"createTopLaneResolver");function fn(t){const e=[];for(const n of t.layout.nodes??[])n.isGroup&&!n.parentId&&e.push(n.id);return[...new Set(e)].reverse()}d(fn,"buildTopLaneOrder");function So(t,e){const n=fn(t);if(!e||e.length===0)return n;const o=new Set(n),s=new Set,r=[];for(const i of e)!o.has(i)||s.has(i)||(s.add(i),r.push(i));for(const i of n)s.has(i)||r.push(i);return r}d(So,"resolveTopLaneOrder");var Jr={EPSILON:1e-6},sn={GRAVITY_ITERATIONS:8,MAX_CROSSING_OPTIMIZATION_PASSES:4,DEFAULT_COMPACT_SINGLE_INPUT:!0},ko={DEFAULT_LAYER_GAP:100,DEFAULT_NODE_GAP:40};function Bs(t,e){const n=ye(t),o=e?.laneOf??(()=>null),s=e?.rankHint,{preds:r}=ln(n);for(const m of r.values())m.sort((S,A)=>S.localeCompare(A));const i=Be(n)??[...n.nodes].sort((m,S)=>m.localeCompare(S)),c=new Map;for(const[m,S]of i.entries())c.set(S,m);const a=new Map,l=new Map;for(const m of n.nodes)l.set(m,[]);for(const m of i){const S=(r.get(m)??[]).filter(A=>a.has(A));if(S.length>0){const A=ks(m,S,{laneOf:o,rankHint:s,topoIndex:c});a.set(m,A),l.get(A).push(m)}else a.has(m)||a.set(m,null)}for(const m of n.nodes)a.has(m)||a.set(m,null);const g=new Set;for(const m of n.nodes)(a.get(m)??null)===null&&g.add(m);const x=[...g].sort((m,S)=>{const A=c.get(m)??0,R=c.get(S)??0;return A===R?m.localeCompare(S):A-R}),I=_s(n),u=new Map;for(const[m,S]of I.entries())u.set(m,[...S].sort((A,R)=>A.localeCompare(R)));const p=Fs(u),f=Ds(u),y=new Map;for(const m of n.nodes)y.set(m,[]);for(const m of f)for(const S of m.nodes){const A=y.get(S);A?A.push(m.id):y.set(S,[m.id])}const v=[],M=[],E=new Set,T=d(m=>{if(!E.has(m)){E.add(m),v.push(m);for(const S of l.get(m)??[])T(S);M.push(m)}},"walk");for(const m of x)T(m);for(const m of i)T(m);return{parent:a,children:l,roots:x,componentOf:p,blocks:f,nodeBlocks:y,adjacency:u,preorder:v,postorder:M,topologicalOrder:i}}d(Bs,"buildDrivingTree");function ks(t,e,n){const o=n.laneOf(t);return[...e].sort((r,i)=>{const c=n.laneOf(r),a=n.laneOf(i),l=c!=null&&c===o,g=a!=null&&a===o;if(l!==g)return l?-1:1;const x=n.rankHint?.[r],I=n.rankHint?.[i];if(x!=null&&I!=null&&x!==I)return I-x;const u=n.topoIndex.get(r)??0,p=n.topoIndex.get(i)??0;return u!==p?u-p:r.localeCompare(i)})[0]}d(ks,"chooseParent");function _s(t){const e=new Map;for(const n of t.nodes)e.set(n,new Set);for(const n of t.edges)e.get(n.src).add(n.dst),e.get(n.dst).add(n.src);return e}d(_s,"buildAdjacency");function Fs(t){const e=new Map;let n=0;for(const o of t.keys()){if(e.has(o))continue;const s=[o];for(;s.length>0;){const r=s.pop();if(!e.has(r)){e.set(r,n);for(const i of t.get(r)??[])e.has(i)||s.push(i)}}n++}return e}d(Fs,"assignComponents");function Ds(t){const e=new Map,n=new Map,o=[],s=[];let r=0;const i=d((c,a)=>{e.set(c,++r),n.set(c,r);for(const l of t.get(c)??[])l!==a&&(e.has(l)?(e.get(l)??0)<(e.get(c)??0)&&(o.push([c,l]),n.set(c,Math.min(n.get(c)??r,e.get(l)??r))):(o.push([c,l]),i(l,c),n.set(c,Math.min(n.get(c)??r,n.get(l)??r)),(n.get(l)??0)>=(e.get(c)??0)&&s.push(Hs(c,l,o,s.length))))},"visit");for(const c of t.keys())e.has(c)||i(c,null);return s}d(Ds,"computeBlocks");function Hs(t,e,n,o){const s=[],r=new Set;for(;n.length>0;){const i=n.pop();if(s.push(i),r.add(i[0]),r.add(i[1]),i[0]===t&&i[1]===e||i[0]===e&&i[1]===t)break}return{id:o,edges:s,nodes:[...r]}}d(Hs,"popBlock");function Xs(t,e,n){const o=[...t.nodes],s=new Map;for(const[M,E]of o.entries())s.set(E,M);const r=o.length,i=new Array(r).fill(-1),c=new Array(r).fill(0),a=[],l=new Set;for(const M of o){const E=n.parent.get(M)??null,T=s.get(M);T!=null&&E==null&&(i[T]=-1,c[T]=0,l.has(M)||(l.add(M),a.push(M)))}for(;a.length>0;){const M=a.shift(),E=s.get(M);if(E==null)continue;const T=n.children.get(M)??[];for(const m of T){if(l.has(m))continue;const S=s.get(m);S!=null&&(i[S]=E,c[S]=c[E]+1,l.add(m),a.push(m))}}for(const M of o){if(l.has(M))continue;const E=s.get(M);E!=null&&(i[E]=-1,c[E]=0,l.add(M))}const g=Math.max(1,Math.ceil(Math.log2(Math.max(1,r)))+1),x=Array.from({length:g},()=>new Array(r).fill(-1));for(let M=0;M{if(M===-1||E===-1)return-1;c[M]>m&1&&(M=x[m][M],M===-1))return-1;if(M===E)return M;for(let m=g-1;m>=0;m--){const S=x[m][M],A=x[m][E];S===-1||A===-1||S!==A&&(M=S,E=A)}return x[0][M]},"lcaIndex"),u=Array.from({length:r},()=>new Map);for(const M of t.edges){let E=M.src,T=M.dst,m=e[E],S=e[T];if(m==null||S==null||(m>S&&([E,T]=[T,E],[m,S]=[S,m]),m==null||S==null||m===S))continue;const A=s.get(E),R=s.get(T);if(A==null||R==null)continue;const k=I(A,R);if(k===-1)continue;const O=u[k];for(let _=m;_{if(E.size!==0)for(const[T,m]of E)M.set(T,(M.get(T)??0)+m)},"mergeInto"),y=new Set,v=d(M=>{const E=s.get(M);y.add(M);const T=E==null?void 0:u[E],m=T?new Map(T):new Map,S=n.children.get(M)??[];for(const A of S){const R=v(A),k=e[M];if(k!=null){let O=p.get(M);O||(O=new Map,p.set(M,O));let _=R.get(k)??0;const H=e[A];H!=null&&H>k&&(_+=1),O.set(A,_)}f(m,R)}return m},"dfs");for(const M of n.roots)y.has(M)||v(M);for(const M of o)y.has(M)||v(M);return p}d(Xs,"computeSubtreeCrossCounts");function Ys(t,e,n){const o=new Map,s=d(r=>{let i=n[r]??0;const c=[...e.get(r)??[]];c.sort(Co(n));for(const a of c){s(a);const l=o.get(a);l!=null&&(i=Math.min(i,l))}o.set(r,i)},"annotate");for(const r of t)s(r);return o}d(Ys,"annotateMinimumLayers");function Co(t){return(e,n)=>{const o=t[e]??0,s=t[n]??0;return o===s?e.localeCompare(n):o-s}}d(Co,"compareByRankThenId");function Gs(t,e,n,o){let s=0;for(const a of e){const l=n[a]??0;l>s&&(s=l)}const r=Array.from({length:s+1},()=>[]),i=new Set,c=d(a=>{if(i.has(a))return;i.add(a);const l=n[a]??0;r[l]||(r[l]=[]),r[l].push(a);for(const g of o(a))c(g)},"emit");for(const a of t)c(a);for(const a of e)if(!i.has(a)){const l=n[a]??0;r[l]||(r[l]=[]),r[l].push(a),i.add(a)}return r}d(Gs,"emitNodesInTreeOrder");function $s(t){const e=[];for(const n of t){const o=new Set,s=[];for(const r of n)o.has(r)||(o.add(r),s.push(r));e.push(s)}return e}d($s,"deduplicateLayers");function zs(t,e,n,o){return s=>{const r=t.get(s)??[];if(r.length===0)return[];const i=e[s]??0,c=[],a=[],l=n.get(s);for(const g of r){const x=o.get(g)??i;x>i?c.push({child:g,min:x}):a.push(g)}return c.sort((g,x)=>g.min===x.min?g.child.localeCompare(x.child):g.min-x.min),a.sort((g,x)=>{const I=l?.get(g)??0,u=l?.get(x)??0;if(I!==u)return I-u;const p=o.get(g)??i,f=o.get(x)??i;return p!==f?p-f:g.localeCompare(x)}),[...c.map(g=>g.child),...a]}}d(zs,"createChildOrderer");function rn(t,e,n){const o=Bs(t,{rankHint:e,laneOf:n}),{children:s,roots:r}=o;for(const x of t.nodes)s.has(x)||s.set(x,[]);const i=Xs(t,e,o),c=[...r].sort(Co(e)),a=Ys(c,s,e),l=zs(s,e,i,a);let g=Gs(c,t.nodes,e,l);return g=$s(g),g}d(rn,"buildMultitreeLayerOrder");function Vs(t,e,n){const o=new Set(t),s=new Set(e),r=Ne(e),i=[];for(const c of n)o.has(c.src)&&s.has(c.dst)&&i.push(r.get(c.dst));return Io(i)}d(Vs,"countCrossingsBetweenAdjacent");function Un(t,e,n){const o=[];for(const r of e){const i=n[r.src],c=n[r.dst];if(i==null||c==null||i===c)continue;let a=r.src,l=r.dst,g=i,x=c;i>c&&(a=r.dst,l=r.src,g=c,x=i);for(let I=g;I(n[I]??0)-(n[x]??0));for(const x of g){const I=n[x]??0;if(I===0)continue;let u=0;for(const v of o.get(x)??[])u=Math.max(u,(n[v]??0)+1);if(u>=I)continue;const p=I;n[x]=u;const f=rn(t,n,s),y=Un(f,t.edges,n);y(e[s]??0)-(e[r]??0)||s.localeCompare(r));for(const s of o){const r=n(s);if(!r)continue;const i=t.edges.filter(f=>f.src===s);if(i.length===0)continue;let c=!1,a=0;for(const f of i){const y=n(f.dst);y==null||y===r?c=!0:a++}if(a===0||c)continue;let l=0,g=!1;for(const f of t.edges){if(f.dst!==s)continue;const y=n(f.src);y&&(y===r?g=!0:l++)}if(l>0||!g)continue;const x=e[s]??0,I=x+a;let u=0;for(const f of t.edges)f.dst===s&&(u=Math.max(u,(e[f.src]??0)+1));const p=Math.max(x,u,I);p!==x&&(e[s]=p)}}d(Us,"adjustCrossLaneSources");function Ws(t,e){const n=ye(t),o=Be(n)??[...n.nodes].sort(),s=e?.compactSingleInput??!1,r=fe(n);let i=Object.create(null);for(const a of o){const l=mo(n,a),g=e?.ignoreCrossLaneEdges?l.filter(x=>{const I=r(x.src),u=r(a);return!I||!u?!0:I===u}):l;if(g.length===0)i[a]=0;else if(s&&g.length===1){const x=g[0].src,I=r(x),u=r(a);I!==u?i[a]=i[x]??0:i[a]=(i[x]??0)+1}else{let x=-1/0;for(const I of g)x=Math.max(x,(i[I.src]??0)+1);i[a]=x===-1/0?0:x}}return(e?.optimizeRanksByCrossings??!1)&&(i=js(n,i)),e?.ignoreCrossLaneEdges&&Us(n,i),{layers:rn(n,i,r),rankOf:i,dummy:new Set}}d(Ws,"assignLayers_LongestPath");function Ks(t,e){const n=ye(t),s={...Ws(n,{compactSingleInput:e?.compactSingleInput,ignoreCrossLaneEdges:e?.ignoreCrossLaneEdges,optimizeRanksByCrossings:e?.optimizeRanksByCrossings}).rankOf},r=fe(n),{preds:i,succs:c}=ln(n,p=>{if(e?.ignoreCrossLaneEdges){const f=r(p.src),y=r(p.dst);if(f&&y&&f!==y)return!1}return!0}),a=Be(n)??[...n.nodes],l=[...a].reverse(),g=d((p,f)=>{let y=0;for(const E of i.get(p)??[])y=Math.max(y,(s[E]??0)+1);let v=Number.POSITIVE_INFINITY;const M=c.get(p)??[];return M.length>0&&(v=Math.min(...M.map(E=>(s[E]??0)-1))),Number.isFinite(v)||(v=Math.max(y,f)),Math.min(Math.max(f,y),v)},"clampFeasible"),x=sn.GRAVITY_ITERATIONS,I=d(p=>{let f=!1;for(const y of p){const v=i.get(y)??[],M=c.get(y)??[];if(v.length===0&&M.length===0)continue;const E=v.length>0?v.reduce((A,R)=>A+(s[R]??0)+1,0)/v.length:s[y]??0,T=M.length>0?M.reduce((A,R)=>A+(s[R]??0)-1,0)/M.length:s[y]??0,m=Math.round((E+T)/2),S=g(y,m);S!==s[y]&&(s[y]=S,f=!0)}return f},"relaxOrder");for(let p=0;p0){const y=Math.min(...f.map(v=>(s[v]??0)-1));(s[p]??0)>y&&(s[p]=y)}}return{layers:Mo(n,a,s),rankOf:s,dummy:new Set}}d(Ks,"assignLayers_Gravity");function qs(t){const e=xo(t),n=yo(t);let o=bo(e);const s=[];for(;o.length>0;){const r=[];for(const i of o){s.push(i);for(const c of n.get(i)??[])e.set(c,(e.get(c)??0)-1),(e.get(c)??0)===0&&r.push(c)}o=r.sort((i,c)=>i.localeCompare(c))}return s.length===t.nodes.length?s:null}d(qs,"topoSortByGenerationIfAcyclic");function Js(t,e){const n=ye(t),o=e?.direction==="LR"?qs(n)??[...n.nodes].sort():Be(n)??[...n.nodes].sort(),s=fe(n),r=d(g=>s(g)??g,"laneOf"),i=Object.create(null),c=new Map,a=d((g,x)=>e?.ignoreCrossLaneEdges??!0?r(g)===r(x)?1:0:1,"edgeWeight");for(const g of o){if(n.nodeById.get(g)?.isGroup)continue;const I=mo(n,g);let u=0;if(I.length>0)for(const v of I){const M=v.src,E=i[M]??0;u=Math.max(u,E+a(M,g))}const p=r(g),f=c.get(p)??0,y=Math.max(u,f);i[g]=y,c.set(p,y+1)}return{layers:Mo(n,o,i,{skipGroups:!0}),rankOf:i,dummy:new Set}}d(Js,"assignLayers_LaneAwareCompact");function Zs(t,e){const n=ye(e),{rankOf:o}=t,s=t.layers.map(u=>[...u]),r=new Set(t.dummy?[...t.dummy]:[]);let i=0;const c=new Map(n.nodeById),a=d(u=>{const p=`placeholder-${i++}`,f={id:p,isGroup:!1,isDummy:!0,width:0,height:0};for(c.set(p,f),r.add(p);s.length<=u;)s.push([]);return s[u].push(p),o[p]=u,p},"addDummyAt"),l=[...n.edges].sort((u,p)=>u.id===p.id?u.src===p.src?u.dst.localeCompare(p.dst):u.src.localeCompare(p.src):u.id.localeCompare(p.id)),g=[];for(const u of l){const p=o[u.src]??0,f=o[u.dst]??0;if(f-p<=1){g.push(u);continue}let y=u.src;for(let M=p+1,E=0;M!n.nodes.includes(u))],edges:g,layout:n.layout,nodeById:c};return{layering:{layers:s,rankOf:o,dummy:r},graphWithDummies:I}}d(Zs,"makeProperLayering");function Wn(t){const e=t.length;if(e===0)return Number.POSITIVE_INFINITY;const n=[...t].sort((o,s)=>o-s);return e%2===1?n[(e-1)/2]:.5*(n[e/2-1]+n[e/2])}d(Wn,"median");function Kn(t){return t.length===0?Number.POSITIVE_INFINITY:t.reduce((n,o)=>n+o,0)/t.length}d(Kn,"barycenter");function Qs(t,e,n,o){const s=new Map;for(const r of t)s.set(r,[]);for(const r of n)o==="down"?e.has(r.src)&&s.has(r.dst)&&s.get(r.dst).push(e.get(r.src)):e.has(r.dst)&&s.has(r.src)&&s.get(r.src).push(e.get(r.dst));return s}d(Qs,"neighborPositionsFor");function tr(t,e,n){const o=n.get(t)??0,s=n.get(e)??0;return o!==s?o-s:t.localeCompare(e)}d(tr,"currentOrderTieBreak");function qn(t,e,n){const o=new Set(t),s=new Set(e),r=Ne(t),i=Ne(e),c=[];for(const l of n)o.has(l.src)&&s.has(l.dst)&&c.push({u:r.get(l.src),v:i.get(l.dst)});c.sort((l,g)=>l.u===g.u?l.v-g.v:l.u-g.u);const a=c.map(l=>l.v);return Io(a)}d(qn,"countCrossingsBetweenAdjacent");function We(t,e,n){return[...t].sort((o,s)=>{const r=Wn(e.get(o)??[]),i=Wn(e.get(s)??[]);return r===i?tr(o,s,n):isFinite(r)?isFinite(i)?r-i:-1:1})}d(We,"sortByHeuristic");function Jn(t,e,n,o,s,r){const i=Ne(t),c=Ne(e),a=Qs(e,i,n,o);if(!s||!r||r.length===0)return We(e,a,c);const l=new Map;for(const I of e){const u=s(I),p=l.get(u)??[];p.push(I),l.set(u,p)}const g=[];for(const I of r){const u=l.get(I);if(!u||u.length===0)continue;const p=We(u,a,c);g.push(...p)}const x=l.get(null);if(x&&x.length>0){const I=We(x,a,c);for(const u of I){const p=Kn(a.get(u)??[]);let f=g.length;if(isFinite(p))for(const[y,v]of g.entries()){const M=Kn(a.get(v)??[]);if(pi.has(f.src)&&c.has(f.dst)),g=a?n.filter(f=>c.has(f.src)&&a.has(f.dst)):void 0,x=d(f=>{let y=qn(t,f,l);return g&&o&&(y+=qn(f,o,g)),y},"crossingScore"),I=s?new Map:null;if(s&&I)for(const f of e)I.set(f,s(f));let u=!0,p=x(r);for(;u;){u=!1;for(let f=0;f+1[...c]),s=e.edges,r=fe(e),i=So(e,n?.laneOrder);for(let c=0;c<3;c++){for(let a=1;a=0;a--)o[a]=Jn(o[a+1],o[a],s,"up",r,i),o[a]=Zn(o[a+1],o[a],s,o[a-1],r)}return{layers:o}}d(er,"orderLayers");function nr(t,e,n){const o=n?.layerGap??ko.DEFAULT_LAYER_GAP,s=n?.nodeGap??ko.DEFAULT_NODE_GAP,r=n?.laneGap??s*2,i=n?.direction??"TB",c=i==="LR"||i==="RL",a=t.layers,l=Object.create(null),g=Object.create(null),x=d(O=>e.nodeById.get(O),"getNode"),I=d(O=>x(O)?.width??0,"getWidth"),u=d(O=>x(O)?.height??0,"getHeight"),p=fe(e),f=So(e,n?.laneOrder),y=a.map(O=>O.reduce((_,H)=>Math.max(_,u(H)),0)),v=[];if(c)for(let O=0;O+1Math.max(mt,I(kt)),0),H=a[O+1].reduce((mt,kt)=>Math.max(mt,I(kt)),0),P=y[O],G=y[O+1],j=P/2+G/2,J=(_+H)/2,dt=Math.max(0,J-j-o);v.push(dt)}const M=new Set;for(const O of a)for(const _ of O)M.add(p(_));const E=M.has(null),T=f.filter(O=>M.has(O)),m=[...E?[null]:[],...T],S=Object.create(null);for(const O of T)S[O]=0;E&&(S.null=0);for(const O of a){const _=Object.create(null),H=[];for(const P of O){const G=p(P);G===null?H.push(P):(_[G]||=[]).push(P)}for(const[P,G]of Object.entries(_)){const j=G.reduce((J,dt)=>J+I(dt),0)+s*Math.max(0,G.length-1);S[P]=Math.max(S[P]??0,j)}if(E&&H.length){const P=H.reduce((G,j)=>G+I(j),0)+s*Math.max(0,H.length-1);S.null=Math.max(S.null??0,P)}}const A=new Map;{const O=m.map(P=>(P===null?S.null:S[P])??0);let H=-(O.reduce((P,G)=>P+G,0)+r*Math.max(0,m.length-1))/2;for(let P=0;PI(Q)),kt=mt.reduce((Q,W)=>Q+W,0)+s*(J.length-1);let Pt=dt-kt/2;for(const[Q,W]of J.entries()){const et=mt[Q];l[W]=Pt+et/2,g[W]=R+H/2,Pt+=et+s}}}const G=v[O]??0;R+=H+o+G}const k=new Map;for(const O of e.edges){const _=O.ref.id;k.has(_)||k.set(_,[]),k.get(_).push(O)}for(const[,O]of k){if(O.length===0)continue;const _=O[0].ref,H=_.start,P=_.end;if(H==null||P==null)continue;const G=Math.round(((l[H]??0)+(l[P]??0))/2),j=new Set;for(const J of O)j.add(J.src),j.add(J.dst);for(const J of j){if(J===H||J===P)continue;e.nodeById.get(J)?.isDummy&&(l[J]=G)}}return{x:l,y:g}}d(nr,"assignCoordinates");var or=8;function sr(t){let e=2166136261;for(let n=0;n>>0}d(sr,"hashString");function rr(t){let e=t>>>0;return()=>{e+=1831565813;let n=e;return n=Math.imul(n^n>>>15,n|1),n^=n+Math.imul(n^n>>>7,n|61),((n^n>>>14)>>>0)/4294967296}}d(rr,"mulberry32");function ir(t,e){const n=[...t],o=rr(e);for(let s=n.length-1;s>0;s--){const r=Math.floor(o()*(s+1));[n[s],n[r]]=[n[r],n[s]]}return n}d(ir,"deterministicShuffle");function cr(t,e){let n=0;for(const[o,s]of t.entries())n+=Math.abs(o-(e.get(s)??o));return n}d(cr,"sourceDistance");function Qn(t,e){const n=new Map;for(const[s,r]of t.entries())n.set(r,s);let o=0;for(const{a:s,b:r,weight:i}of e){const c=n.get(s),a=n.get(r);c==null||a==null||(o+=i*Math.abs(c-a))}return o}d(Qn,"laneArrangementCost");function ar(t){const e=fn(t);if(e.length<2)return[];const n=new Map(e.map((r,i)=>[r,i])),o=fe(t),s=new Map;for(const r of t.layout.edges??[]){if(r.isLayoutOnly)continue;const i=typeof r.start=="string"?r.start:void 0,c=typeof r.end=="string"?r.end:void 0;if(!i||!c||!t.nodeById.has(i)||!t.nodeById.has(c))continue;const a=o(i),l=o(c);if(!a||!l||a===l)continue;const g=n.get(a),x=n.get(l);if(g==null||x==null)continue;const[I,u]=g<=x?[a,l]:[l,a],p=`${I}\0${u}`,f=s.get(p);f?f.weight++:s.set(p,{a:I,b:u,weight:1})}return[...s.values()]}d(ar,"buildWeightedLaneEdges");function to(t,e,n){const o=[...t];let s=Qn(o,e),r=!0,i=0;const c=Math.max(1,o.length);for(;r&&is.a===r.a?s.b.localeCompare(r.b):s.a.localeCompare(r.a)).map(({a:s,b:r,weight:i})=>`${s}:${r}:${i}`).join("|");return sr(`${t.join("|")}#${o}#${n}`)}d(fr,"seedForRestart");function dr(t,e={}){const n=fn(t);if(n.length<2)return n;const o=ar(t);if(o.length===0)return n;const s=new Map(n.map((c,a)=>[c,a]));let r=to(n,o,s);const i=Math.max(0,e.restarts??or);for(let c=0;cct&&a*3>=c?i>0?"bottom":"top":c>ct?r>0?"right":"left":n}d(eo,"chooseOrthogonalSide");function no(t,e){return Math.abs(t.to-e.from)h.isGroup&&!h.parentId);for(const h of l){const b={id:h.id},C=d(L=>{i.set(L.id,b),n.filter(w=>w.parentId===L.id).forEach(C)},"assignLane");C(h)}const g=n.filter(h=>!h.isGroup&&!h.isEdgeLabel).map(h=>{const b=h.width??10,C=h.height??10,L=h.x??0,w=h.y??0,B=Zr;return{nodeId:h.id,minX:L-b/2-B,maxX:L+b/2+B,minY:w-C/2-B,maxY:w+C/2+B,visualXHalfExtent:a?C/2+B:b/2+B}}),x=d((h,b,C,L)=>{let w=c.find(B=>B.orientation===h&&Math.abs(B.coord-b)<1);return w||(w={id:`pipe-${h}-${b.toFixed(0)}`,orientation:h,coord:b,spanMin:C,spanMax:L,tracks:[]},c.push(w)),w.spanMin=Math.min(w.spanMin,C),w.spanMax=Math.max(w.spanMax,L),w},"getOrAddPipe"),I=d((h,b)=>{const C=h.width??10,L=h.height??10,w=h.x??0,B=h.y??0;switch(b){case"top":return{x:w,y:B-L/2};case"bottom":return{x:w,y:B+L/2};case"left":return{x:w-C/2,y:B};case"right":return{x:w+C/2,y:B}}},"portForSide"),u=d((h,b,C)=>I(h,eo(h,b,C?"bottom":"top")),"getOrthogonalPort"),p=[],f=[],y=new Set,v=1e3,M=d((h,b,C)=>{if(p.length===0)return 0;const L=Math.abs(b.y-C.y)z||Y.from-ct<=U&&Y.to+ct>=U&&(B+=v)}else if(w){const U=b.x,q=Math.min(b.y,C.y)-ct,z=Math.max(b.y,C.y)+ct;if(z<=q)return 0;for(const Y of p)Y.edgeIndex===h||Y.orientation!=="horizontal"||Y.pipe.coordz||Y.from-ct<=U&&Y.to+ct>=U&&(B+=v)}return B},"crossingPenalty"),E=s.map((h,b)=>{if(!h.start||!h.end)return{idx:b,crossLane:0,dx:0,dy:0};const C=r.get(h.start),L=r.get(h.end),w=i.get(h.start),B=i.get(h.end),U=w&&B&&w.id!==B.id?1:0,q=C&&L?Math.abs((L.x??0)-(C.x??0)):0,z=C&&L?Math.abs((L.y??0)-(C.y??0)):0;return{idx:b,crossLane:U,dx:q,dy:z}}).sort((h,b)=>{if(h.crossLane!==b.crossLane)return b.crossLane-h.crossLane;const C=h.dx+h.dy,L=b.dx+b.dy;return Math.abs(C-L)>1?C-L:h.idx-b.idx}).map(h=>h.idx),T=d((h,b,C,L)=>{const w=Math.min(h.x,b.x),B=Math.max(h.x,b.x),U=Math.min(h.y,b.y),q=Math.max(h.y,b.y);return!!g.find(Y=>C&&Y.nodeId===C||L&&Y.nodeId===L?!1:Math.abs(h.x-b.x)>ct?Y.minYh.y&&Y.maxX>w&&Y.minXh.x&&Y.maxY>U&&Y.minYeo(h,b,"bottom"),"determineSide"),R=new Map;for(const[h,b]of s.entries()){if(!b.start||!b.end||b.start===b.end||b.points&&b.points.length>0)continue;const C=r.get(b.start),L=r.get(b.end);if(!C||!L)continue;const w=(L.x??0)-(C.x??0),B=(L.y??0)-(C.y??0);R.set(h,{edgeIdx:h,srcId:b.start,dstId:b.end,srcSide:A(C,{x:L.x??0,y:L.y??0}),dstSide:A(L,{x:C.x??0,y:C.y??0}),absDx:Math.abs(w),absDy:Math.abs(B),dxSign:Math.sign(w),dySign:Math.sign(B)})}const k=d(h=>h.srcSide==="top"||h.srcSide==="bottom"?h.absDx===0?1/0:h.absDy/h.absDx:h.absDy===0?1/0:h.absDx/h.absDy,"preferenceStrength"),O=d(h=>h.srcSide==="top"||h.srcSide==="bottom"?h.dxSign>=0?"right":"left":h.dySign>=0?"bottom":"top","secondarySide"),_=new Map;for(const h of R.values()){const b=`${h.srcId}:${h.srcSide}`;_.has(b)||_.set(b,[]),_.get(b).push(h)}const H=new Map,P=d((h,b)=>`${h}:${b}`,"loadKey");for(const h of R.values())H.set(P(h.srcId,h.srcSide),(H.get(P(h.srcId,h.srcSide))??0)+1),H.set(P(h.dstId,h.dstSide),(H.get(P(h.dstId,h.dstSide))??0)+1);for(const h of _.values())if(!(h.length<2)){h.sort((b,C)=>{const L=k(b),w=k(C);return Math.abs(L-w)>1e-9?w-L:b.edgeIdx-C.edgeIdx});for(let b=1;b=w||(H.set(P(C.srcId,C.srcSide),w-1),H.set(P(C.srcId,L),B+1),C.srcSide=L)}}const G=d(h=>{const b=h?.shape;return b==="question"||b==="diamond"},"isDiamondNode"),j=new Map;for(const h of R.values())j.has(h.dstId)||j.set(h.dstId,new Set),j.get(h.dstId).add(h.dstSide);for(const h of R.values()){if(!G(r.get(h.srcId)))continue;const b=j.get(h.srcId);if(!b?.has(h.srcSide))continue;const C=O(h);if(b.has(C)||(H.get(P(h.srcId,C))??0)>0)continue;const L=H.get(P(h.srcId,h.srcSide))??0;H.set(P(h.srcId,h.srcSide),Math.max(0,L-1)),H.set(P(h.srcId,C),1),h.srcSide=C}for(const h of R.values()){const{edgeIdx:b,srcId:C,dstId:L,srcSide:w,dstSide:B}=h,U=r.get(C),q=r.get(L),z=`${C}:${w}:src`,Y=w==="top"||w==="bottom"?q.x??0:q.y??0;m.has(z)||m.set(z,[]),m.get(z).push({edgeIdx:b,oppositeCoord:Y});const ot=`${L}:${B}:dst`,rt=B==="top"||B==="bottom"?U.x??0:U.y??0;m.has(ot)||m.set(ot,[]),m.get(ot).push({edgeIdx:b,oppositeCoord:rt})}const J=new Map,dt=8;for(const[h,b]of m){if(b.length<2)continue;b.sort((Lt,Dt)=>Lt.oppositeCoord-Dt.oppositeCoord);const C=h.split(":"),L=C.slice(0,-2).join(":"),w=C[C.length-2],B=C[C.length-1],U=r.get(L);if(!U)continue;const z=w==="left"||w==="right"?U.height??10:U.width??10,Y=U.shape,rt=Y==="question"||Y==="diamond"?z*.3:z,tt=Math.min(20,Math.max(dt,rt/(b.length+1))),Rt=-(tt*(b.length-1))/2;for(const[Lt,Dt]of b.entries()){const Jt=Rt+Lt*tt,gn=`${Dt.edgeIdx}:${B}`;J.set(gn,Jt)}}const mt=d(h=>!!s[h]?.labelNodeId,"edgeHasLabelNode"),kt=d((h,b)=>h?(m.get(`${h}:${b}:src`)??[]).some(({edgeIdx:C})=>mt(C))||(m.get(`${h}:${b}:dst`)??[]).some(({edgeIdx:C})=>mt(C)):!1,"faceHasLabelNode"),Pt=d((h,b,C)=>b==="top"||b==="bottom"?{x:h.x+C,y:h.y}:{x:h.x,y:h.y+C},"applyPortOffset"),Q=d((h,b,C)=>{const L=R.get(h),w={x:C.x??0,y:C.y??0},B={x:b.x??0,y:b.y??0},U=L?.srcSide??A(b,w),q=L?.dstSide??A(C,B);let z=L?I(b,L.srcSide):u(b,w,!0),Y=L?I(C,L.dstSide):u(C,B,!1);const ot=J.get(`${h}:src`),rt=J.get(`${h}:dst`);return ot!==void 0&&(z=Pt(z,U,ot)),rt!==void 0&&(Y=Pt(Y,q,rt)),{pSrcPort:z,pDstPort:Y,srcSide:U,dstSide:q}},"portsForEdge");for(const h of E){const b=s[h];if(f[h]=[],!b.start||!b.end||b.points&&b.points.length>0||b.start===b.end)continue;const C=r.get(b.start),L=r.get(b.end);if(!C||!L)continue;const{pSrcPort:w,pDstPort:B,srcSide:U,dstSide:q}=Q(h,C,L),z={...w},Y={...B},ot=U==="top"||U==="bottom",rt=q==="top"||q==="bottom";if(ot){const X=w.y>(C.y??0);z.y=X?w.y+ne:w.y-ne}else{const X=w.x>(C.x??0);z.x=X?w.x+ne:w.x-ne}if(rt){const X=B.y>(L.y??0);Y.y=X?B.y+ne:B.y-ne}else{const X=B.x>(L.x??0);Y.x=X?B.x+ne:B.x-ne}const st=d((X,$)=>{for(const K of g)if(!$.includes(K.nodeId)&&X.x>K.minX&&X.xK.minY&&X.y{if(Ct){const Nt=X.y>($.y??0);return{x:(K.x??0)>=X.x?lt.maxX+be:lt.minX-be,y:Nt?lt.maxY+Te:lt.minY-Te,leavesPositiveSide:Nt}}const bt=X.x>($.x??0),Et=(K.y??0)>=X.y;return{x:bt?lt.maxX+be:lt.minX-be,y:Et?lt.maxY+Te:lt.minY-Te,leavesPositiveSide:bt}},"obstacleDetour");let yt=[];const Rt=[b.start,b.end],Lt=st(z,Rt);if(Lt.inside&&Lt.obstacle){const X=Lt.obstacle;if(ot){const $=tt(w,C,L,X,!0);z.x=$.x,z.y=$.y;const K=$.leavesPositiveSide?Math.min(X.minY-2,w.y+ne):Math.max(X.maxY+2,w.y-ne);yt=[{x:w.x,y:K},{x:$.x,y:K},{x:$.x,y:$.y}]}else{const $=tt(w,C,L,X,!1),K=$.leavesPositiveSide?Math.min(X.minX-2,w.x+ne):Math.max(X.maxX+2,w.x-ne);z.x=$.x,z.y=$.y,yt=[{x:K,y:w.y},{x:K,y:$.y},{x:$.x,y:$.y}]}}let Dt=[];const Jt=st(Y,Rt);if(Jt.inside&&Jt.obstacle){const X=Jt.obstacle;if(rt){const $=tt(B,L,C,X,!0);Y.x=$.x,Y.y=$.y,Dt=[{x:$.x,y:$.y},{x:B.x,y:$.y}]}else{const $=tt(B,L,C,X,!1);Y.x=$.x,Y.y=$.y,Dt=[{x:$.x,y:$.y},{x:$.x,y:B.y}]}}if(yt.length===0&&Dt.length===0){const X=be,$=Math.abs(z.x-Y.x)1||bt>1,Nt=S.get(b.start??"")??0,ut=S.get(b.end??"")??0,Yt=Ct>1&&kt(b.start,U)||bt>1&&kt(b.end,q),ee=Ct<=1||Nt<=2,Bt=bt<=1||ut<=2;if(($||K)&&!lt&&(!Et||Et&&!Yt&&ee&&Bt)&&!T(w,B,b.start,b.end)){b.points=[{...w},{...z},{...Y},{...B}],y.add(h);const Mt=K?"horizontal":"vertical",$t=K?w.y:w.x,It=K?Math.min(w.x,B.x):Math.min(w.y,B.y),St=K?Math.max(w.x,B.x):Math.max(w.y,B.y),Wt={id:`fast-path-${Mt}-${$t.toFixed(0)}-${h}`,orientation:Mt,coord:$t,spanMin:It,spanMax:St,tracks:[]};p.push({edgeIndex:h,segmentIndex:0,orientation:Mt,pipe:Wt,trackIndex:0,from:It,to:St});continue}}const gn=x("vertical",z.x,z.y,z.y);z.x=gn.coord;const mr=x("vertical",Y.x,Y.y,Y.y);Y.x=mr.coord;let ue=Math.min(z.x,Y.x)-50,he=Math.max(z.x,Y.x)+50,ve=Math.min(z.y,Y.y)-50,Le=Math.max(z.y,Y.y)+50;for(const X of g){const $=Math.min(z.x,Y.x),K=Math.max(z.x,Y.x),lt=Math.min(z.y,Y.y),Ct=Math.max(z.y,Y.y);X.minX$&&X.minYlt&&(ue=Math.min(ue,X.minX-je),he=Math.max(he,X.maxX+je),ve=Math.min(ve,X.minY-je),Le=Math.max(Le,X.maxY+je))}for(const X of g){if(X.maxXhe||X.maxYLe)continue;const $=be;x("horizontal",X.minY-$,ue,he),x("horizontal",X.maxY+$,ue,he);const K=Te;x("vertical",X.minX-K,ve,Le),x("vertical",X.maxX+K,ve,Le)}x("horizontal",z.y,ue,he),x("horizontal",Y.y,ue,he);const yr=c.filter(X=>X.orientation==="horizontal"&&X.coord>=ve&&X.coord<=Le),xr=c.filter(X=>X.orientation==="vertical"&&X.coord>=ue&&X.coord<=he),ke=d((X,$)=>`${X.toFixed(1)},${$.toFixed(1)}`,"getKey"),_e=ke(z.x,z.y),vo=ke(Y.x,Y.y),Fe=new Map,pn=new Map,mn=new Map,De=new Set,xe=[];Fe.set(_e,0),mn.set(_e,"n"),xe.push({key:_e,f:Math.hypot(Y.x-z.x,Y.y-z.y),pt:z}),De.add(_e);let Ht=[];const ge=d((X,$)=>T(X,$,b.start,b.end),"checkSegmentBlocked"),yn={x:Y.x,y:z.y},br=ge(z,yn),Mr=ge(yn,Y),Ir=br||Mr,xn={x:z.x,y:Y.y},Sr=ge(z,xn),Cr=ge(xn,Y);if(Ir?Sr||Cr||(Math.abs(z.x-Y.x)0;){xe.sort((ut,Yt)=>ut.f-Yt.f);const X=xe.shift();if(De.delete(X.key),X.key===vo){let ut=vo,Yt=Y;for(Ht=[Yt];pn.has(ut);){const ee=pn.get(ut);Ht.unshift(ee),Yt=ee,ut=ke(ee.x,ee.y)}break}const $=X.pt.x,K=X.pt.y,lt=xr.sort((ut,Yt)=>ut.coord-Yt.coord),Ct=lt.findIndex(ut=>Math.abs(ut.coord-$)<1),bt=yr.sort((ut,Yt)=>ut.coord-Yt.coord),Et=bt.findIndex(ut=>Math.abs(ut.coord-K)<1),Nt=[];Ct>0&&Nt.push({x:lt[Ct-1].coord,y:K}),Ct>=0&&Ct0&&Nt.push({x:$,y:bt[Et-1].coord}),Et>=0&&EtZt.nodeId===b.start||Zt.nodeId===b.end?!1:Yt!==ee?Zt.minYK&&Zt.maxX>Yt&&Zt.minX$&&Zt.maxY>Bt&&Zt.minY10&&bn<-5||Ee<-10&&bn>5)&&(St=Math.abs(bn)*100),(Wt>10&&He<-5||Wt<-10&&He>5)&&(St+=Math.abs(He)*50);let Lo=0;const Eo=mn.get(X.key)??"n",To=Math.abs(He)>ct?"h":"v";Eo!=="n"&&Eo!==To&&(Lo=50);const vr=$t+It+St+Lo,Xe=(Fe.get(X.key)??1/0)+vr,wo=Math.abs(Y.x-ut.x)+Math.abs(Y.y-ut.y);if(Xe<(Fe.get(Mt)??1/0))if(pn.set(Mt,X.pt),Fe.set(Mt,Xe),mn.set(Mt,To),!De.has(Mt))xe.push({key:Mt,f:Xe+wo,pt:ut}),De.add(Mt);else{const Zt=xe.findIndex(Lr=>Lr.key===Mt);Zt!==-1&&(xe[Zt].f=Xe+wo)}}}if(Ht.length===0&&(Ht=[z,{x:z.x,y:Y.y},Y]),Ht.length>4){const X=Ht[0],$=Ht[Ht.length-1];let K=Math.min(X.x,$.x),lt=Math.max(X.x,$.x),Ct=Math.min(X.y,$.y),bt=Math.max(X.y,$.y);for(const Bt of Ht)K=Math.min(K,Bt.x),lt=Math.max(lt,Bt.x),Ct=Math.min(Ct,Bt.y),bt=Math.max(bt,Bt.y);const Et=lt>Math.max(X.x,$.x),Nt=KIt.minXGt&&It.minYOt);if($t.length>0){let It=Math.max(X.x,$.x);for(const St of $t){const Wt=(St.minX+St.maxX)/2;if(St.visualXHalfExtent===void 0||isNaN(St.visualXHalfExtent))continue;const Ee=Wt+St.visualXHalfExtent+Bt;It=Math.max(It,Ee)}isNaN(It)||(lt=It)}}if(Nt){const Gt=g.filter(Ot=>Ot.minXMath.min(X.y,$.y));if(Gt.length>0){let Ot=Math.min(X.x,$.x);for(const Mt of Gt){const It=(Mt.minX+Mt.maxX)/2-Mt.visualXHalfExtent-Bt;Ot=Math.min(Ot,It)}K=Ot}}}const ut=d(Bt=>{const Gt=$.y>X.y,Ot=g.filter(It=>{const St=Math.min(X.x,$.x)It.minX,Wt=Math.min(X.y,$.y)It.minY;return St&&Wt});let Mt=Ot;if(a&&Ot.length>0){const It=Ot.filter(St=>St.minXBt);It.length>0&&(Mt=It)}if(Mt.length===0)return $.y;const $t=be;if(Gt){const St=Math.max(...Mt.map(Wt=>Wt.maxY))+$t;if(St<$.y-ct)return St}else{const St=Math.min(...Mt.map(Wt=>Wt.minY))-$t;if(St>$.y+ct)return St}return $.y},"findBestReturnY"),Yt=d(Bt=>{const Gt=ut(Bt),Ot={x:Bt,y:X.y},Mt={x:Bt,y:Gt},$t={x:$.x,y:Gt},It=ge(X,Ot),St=ge(Ot,Mt),Wt=ge(Mt,$t),Ee=Gt!==$.y?ge($t,$):!1;return!It&&!St&&!Wt&&!Ee?Math.abs(Gt-$.y)=3){const X=Xt[Xt.length-1],$=Xt[Xt.length-2],K=Xt[Xt.length-3],lt=Math.abs(K.y-$.y)Math.abs(X.x-K.x)&&Xt.splice(-2,1)}else if(Ct){const bt=Math.sign($.y-K.y),Et=Math.sign(X.y-K.y);bt!==0&&bt===Et&&Math.abs($.y-K.y)>Math.abs(X.y-K.y)&&Xt.splice(-2,1)}}const ie=[Xt[0]];for(let X=1;X$.x,bt=lt.x>K.x;if(Ct!==bt){ie.push(K);continue}continue}if(Math.abs($.x-K.x)$.y,bt=lt.y>K.y;if(Ct!==bt){ie.push(K);continue}continue}ie.push(K)}ie.push(Xt[Xt.length-1]);for(let X=0;Xh.from{const w=!L.segments.some(U=>(U.edgeIndex!==b.edgeIndex||U.segmentIndex!==b.segmentIndex)&&W(U,h)),B=!C.segments.some(U=>(U.edgeIndex!==h.edgeIndex||U.segmentIndex!==h.segmentIndex)&&W(U,b));return w&&B?(h.trackIndex=L.index,b.trackIndex=C.index,C.segments=[...C.segments.filter(U=>U.edgeIndex!==h.edgeIndex||U.segmentIndex!==h.segmentIndex),{edgeIndex:b.edgeIndex,segmentIndex:b.segmentIndex,from:b.from,to:b.to}],L.segments=[...L.segments.filter(U=>U.edgeIndex!==b.edgeIndex||U.segmentIndex!==b.segmentIndex),{edgeIndex:h.edgeIndex,segmentIndex:h.segmentIndex,from:h.from,to:h.to}],!0):!1},"trySwapSegmentsAcrossTracks"),at=d(h=>{const b=h.tracks.length;return h.tracks[b]={index:b,coord:h.coord,segments:[]},b},"createNewTrack"),gt=d((h,b)=>{const C=h.pipe.tracks[h.trackIndex];C.segments=C.segments.filter(w=>w.edgeIndex!==h.edgeIndex||w.segmentIndex!==h.segmentIndex),h.trackIndex=b,h.pipe.tracks[b].segments.push({edgeIndex:h.edgeIndex,segmentIndex:h.segmentIndex,from:h.from,to:h.to})},"moveSegmentToTrack"),xt=d((h,b)=>{const C=f[h.edgeIndex];for(const L of C){const w=p[L];w.pipe===h.pipe&>(w,b)}},"moveSegmentChainToTrack"),vt=d(h=>{const b=f[h.edgeIndex],C=b.indexOf(p.indexOf(h)),L=[];return C>0&&L.push(p[b[C-1]]),C{if(h.orientation===b.orientation)return!1;const C=h.orientation==="horizontal"?h:b,L=h.orientation==="horizontal"?b:h;return L.pipe.coord>C.from&&L.pipe.coordL.from&&C.pipe.coord{for(const C of h.tracks)if(!C.segments.some(w=>(w.edgeIndex!==b.edgeIndex||w.segmentIndex!==b.segmentIndex)&&W(w,b)))return C.index;return-1},"findAvailableTrack"),Ut=d((h,b)=>{if(h.trackIndex===b.trackIndex)return W(h,b);const C=vt(h),L=vt(b);return C.some(w=>L.some(B=>Vt(w,B)))},"segmentsConflict"),te=d((h,b,C)=>{if(et(h,b,h.pipe.tracks[h.trackIndex],b.pipe.tracks[b.trackIndex]))return;const L=jt(h.pipe,b);C(b,L!==-1?L:at(h.pipe))},"resolveTrackConflict"),Se=d(h=>{let b=0;for(let C=0;C{if(de.has(h))return de.get(h);const b=f[h];if(b.length===0){const q={dest:0,deviation:0,base:0,delta:0};return de.set(h,q),q}const L=p[b[0]].pipe.coord;let w=L;for(let q=1;qMath.abs(ot-L)?Y:ot;break}}const B=Math.abs(w-L),U={dest:w,deviation:B,base:L,delta:w-L};return de.set(h,U),U},"getDestInfo"),dn=d(()=>{let h=0;const b=new Map;for(const[L,w]of s.entries())f[L].length!==0&&w.start&&(b.has(w.start)||b.set(w.start,[]),b.get(w.start).push(L));const C=d(L=>{const w=s[L];if(!w.start||!w.end)return 0;const B=r.get(w.start),U=r.get(w.end);if(!B||!U)return 0;const q=(U.x??0)-(B.x??0),z=(U.y??0)-(B.y??0);return Math.abs(q)+Math.abs(z)},"getEdgeDistance");for(const L of b.values()){L.sort((B,U)=>{const q=Ce(B),z=Ce(U);if(Math.abs(q.deviation-z.deviation)>1)return q.deviation-z.deviation;if(Math.abs(q.dest-z.dest)>1)return q.dest-z.dest;const Y=C(B),ot=C(U);if(Math.abs(Y-ot)>1)return ot-Y;const rt=f[B].length,st=f[U].length;if(rt!==st)return rt-st;if(rt===1){const tt=f[B][0],yt=f[U][0];if(p[tt]&&p[yt]){const Rt=p[tt],Lt=p[yt],Dt=Math.abs(Rt.to-Rt.from),Jt=Math.abs(Lt.to-Lt.from);if(Math.abs(Dt-Jt)>1)return Dt-Jt}}return 0});const w=L.map(B=>p[f[B][0]]);h+=Se(w)}return h},"fixSourceHandleCrossings"),un=d(()=>{let h=0;const b=new Map;for(const[C,L]of s.entries())f[C].length!==0&&L.end&&(b.has(L.end)||b.set(L.end,[]),b.get(L.end).push(C));for(const C of b.values()){C.sort((w,B)=>{const U=d(Y=>{const ot=f[Y];if(ot.length<2)return 0;const rt=p[ot[ot.length-2]];return Math.abs(rt.to-rt.from)},"getDist"),q=U(w),z=U(B);return Math.abs(q-z)>.1?q-z:w-B});const L=C.map(w=>p[f[w][f[w].length-1]]);h+=Se(L)}return h},"fixTargetHandleCrossings"),hn=d(()=>{let h=0;for(const b of c){const C=[];for(const L of b.tracks)for(const w of L.segments){const B=f[w.edgeIndex].find(U=>p[U].segmentIndex===w.segmentIndex);B!==void 0&&C.push(p[B])}C.sort((L,w)=>L.edgeIndex-w.edgeIndex||L.segmentIndex-w.segmentIndex);for(let L=0;L{L.segments.forEach(w=>{b.push({edgeIndex:w.edgeIndex,segmentIndex:w.segmentIndex,trackIndex:L.index,from:w.from,to:w.to})})}),b.sort((L,w)=>L.from-w.from);const C=[];if(b.length>0){let L=[b[0]],w=b[0].to;for(let B=1;Bw.add(tt.trackIndex));const B=new Map;L.forEach(tt=>{const yt=Ce(tt.edgeIndex);B.set(tt.trackIndex,(B.get(tt.trackIndex)??0)+yt.delta)});const U=[...w].filter(tt=>(B.get(tt)??0)<-1),q=[...w].filter(tt=>(B.get(tt)??0)>1),z=[...w].filter(tt=>Math.abs(B.get(tt)??0)<=1);U.sort((tt,yt)=>(B.get(yt)??0)-(B.get(tt)??0)),q.sort((tt,yt)=>(B.get(tt)??0)-(B.get(yt)??0));const Y=d((tt,yt)=>{L.filter(Rt=>Rt.trackIndex===tt).forEach(Rt=>{const Lt=y.has(Rt.edgeIndex)?h.coord:yt;D.set(`${Rt.edgeIndex}-${Rt.segmentIndex}`,Lt)})},"assignCoord");let ot=0;for(const tt of U)ot++,Y(tt,h.coord-ot*Cn);if(z.length===0&&w.size>0){const tt=[...w].sort((Lt,Dt)=>Math.abs(B.get(Lt)??0)-Math.abs(B.get(Dt)??0))[0],yt=U.indexOf(tt);yt!==-1&&U.splice(yt,1);const Rt=q.indexOf(tt);Rt!==-1&&q.splice(Rt,1),z.push(tt)}let rt=0;for(const tt of z){if(rt===0)Y(tt,h.coord);else{const yt=rt%2===1?1:-1,Rt=Math.ceil(rt/2);Y(tt,h.coord+yt*Rt*Cn*.5)}rt++}let st=0;for(const tt of q)st++,Y(tt,h.coord+st*Cn)}}for(const[h,b]of s.entries()){const C=f[h]??[];if(C.length===0)continue;const L=[],w=r.get(b.start),B=r.get(b.end),{pSrcPort:U,pDstPort:q}=Q(h,w,B),z=C.map(rt=>{const st=p[rt],tt=D.get(`${st.edgeIndex}-${st.segmentIndex}`)??st.pipe.coord;return{orient:st.orientation,coord:tt,from:st.from,to:st.to}});L.push(U);for(let rt=0;rtct&&L.push(Me(st,yt)),Dt&&Lt.orient===st.orient)if(Math.abs(st.coord-Lt.coord)>ct){const Jt=st.orient==="vertical"?(yt+Lt.from)/2:no(st,Lt);L.push(Me(st,Jt),Me(Lt,Jt))}else(rt===0||rt===z.length-2)&&L.push(Me(st,no(st,Lt)));else if(Dt)L.push(Me(st,Lt.coord));else{const Jt=Math.abs(st.from-yt)ct||Math.abs(Y.y-q.y)>ct)&&L.push(q);const ot=[];L.length>0&&ot.push(L[0]);for(let rt=1;rtct||Math.abs(st.y-tt.y)>ct)&&ot.push(st)}b.points=ot}for(const h of s){const b=h.__originalEdge;b&&h.points&&(b.points=h.points)}t.edges=(t.edges??[]).filter(h=>!h.isLayoutOnly);const V=d((h,b)=>{const C=b.x??0,L=b.y??0,w=b.width??0,B=b.height??0;if(w<=0||B<=0)return h;const U=C-w/2,q=C+w/2,z=L-B/2,Y=L+B/2;if(h.xq||h.yY)return h;const ot=h.x-U,rt=q-h.x,st=h.y-z,tt=Y-h.y,yt=Math.min(ot,rt,st,tt);return yt===ot?{x:U,y:h.y}:yt===rt?{x:q,y:h.y}:yt===st?{x:h.x,y:z}:{x:h.x,y:Y}},"nodeBoundaryClamp");for(const h of t.edges){const b=h.points;if(!b||b.length<2)continue;const C=h.start,L=h.end,w=C?r.get(C):void 0,B=L?r.get(L):void 0;w&&(b[0]=V(b[0],w)),B&&(b[b.length-1]=V(b[b.length-1],B))}return t}d(hr,"routeEdgesOrthogonal");function gr(t){return t.direction??"TB"}d(gr,"getSwimlaneDirection");function pr(t){const e=Jo(t),n=t.config.flowchart?.nodeSpacing??40,o=t.config.flowchart?.rankSpacing??100,s=t.config.swimlane?.ignoreCrossLaneEdges??!0,r=t.config.swimlane?.optimizeRanksByCrossings??!0,i=t.config.swimlane?.automaticLaneOrdering??!1,c=gr(t),{ordered:a,coordinates:l}=ur(e,{nodeGap:n,layerGap:o,ignoreCrossLaneEdges:s,optimizeRanksByCrossings:r,automaticLaneOrdering:i,direction:c});Zo(e,a,l,{nodeGap:n,layerGap:o});for(const g of t.edges??[])delete g.points;hr(t,c);for(const g of t.edges??[])(!g.curve||g.curve==="basis")&&(g.curve="rounded");return Rs(t,c),As(t),c}d(pr,"runSwimlaneLayoutCore");async function Qr(t,e){const n=e.select("g");wr(n,t.markers,t.type,t.diagramId),Ar(),Rr(),Nr(),Tr(),qo(t);const o=Qo(t);t.nodes=o.nodes,t.edges=o.edges;const{groups:s}=await _o(n,t);pr(t),await Uo(t,s)}d(Qr,"render");export{Qr as render}; diff --git a/apps/kimi-code/dist-web/assets/swimlanes-5IMT3BWC-C0-5MIxj.js b/apps/kimi-code/dist-web/assets/swimlanes-5IMT3BWC-C0-5MIxj.js deleted file mode 100644 index 425e0d0ae..000000000 --- a/apps/kimi-code/dist-web/assets/swimlanes-5IMT3BWC-C0-5MIxj.js +++ /dev/null @@ -1,2 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/sizeCapture-X5ZJPWSS-KpJKp6ok.js","assets/mermaid.core-CgZTgv7Y.js","assets/index-7SHxad1A.js","assets/index-CRa2d3RK.css","assets/_commonjsHelpers-CqkleIqs.js"])))=>i.map(i=>d[i]); -import{bR as Er}from"./index-7SHxad1A.js";import{c as Tr}from"./chunk-RYQCIY6F-Csv6QbcC.js";import{am as wr,an as Ar,ao as Rr,ap as Nr,l as Ke,c as Or,ag as Pr,af as Br,ah as kr,at as _r,av as Fr,y as Dr,as as Hr,aw as Xr,x as Oe,ax as Ye,_ as d,ay as Ao}from"./mermaid.core-CgZTgv7Y.js";import{G as Yr}from"./graph-DOmOIIwC.js";import"./map-DxJ2ADlA.js";import"./_commonjsHelpers-CqkleIqs.js";async function _o(t,e){const n=new Yr({multigraph:!0,compound:!0}),o=[...e.edges],s=Or(),r=t.insert("g").attr("class","root"),i=r.insert("g").attr("class","clusters"),c=r.insert("g").attr("class","edges edgePath"),a=r.insert("g").attr("class","edgeLabels"),l=r.insert("g").attr("class","nodes"),g=new Map,x=t.node()!=null;await Promise.all(e.nodes.map(async I=>{if(I.isGroup)n.setNode(I.id,{...I});else{if(x){const u=await Pr(l,I,{config:s,dir:I.dir}),p=u.node()?.getBBox()??{width:0,height:0};g.set(I.id,u),I.width=p.width,I.height=p.height}n.setNode(I.id,{...I})}}));for(const I of o)n.setEdge(I.start,I.end,{...I},I.id),e.edges.some(p=>p.id===I.id)||e.edges.push(I);if(globalThis.mermaidCaptureSizes){const{captureNodeSizes:I}=await Er(async()=>{const{captureNodeSizes:u}=await import("./sizeCapture-X5ZJPWSS-KpJKp6ok.js");return{captureNodeSizes:u}},__vite__mapDeps([0,1,2,3,4]));I(t,e)}return{graph:n,groups:{clusters:i,edgePaths:c,edgeLabels:a,nodes:l,rootGroups:r},nodeElements:g}}d(_o,"createGraphWithElements");var Ro=5,Ge=1e-5,$e=1e-6;function qe(t){const e=[];for(let n=0;n=1-$e||I<=$e||I>=1-$e?null:{point:{x:t.x+x*s,y:t.y+x*r},tA:x,tB:I}}d(Fo,"segmentIntersection");function vn(t){return Math.abs(t.b.x-t.a.x)>=Math.abs(t.b.y-t.a.y)}d(vn,"isHorizontalSeg");function Do(t){const e=[];for(let n=0;n=Math.abs(n)?e>=0?1:0:n>=0?1:0}d(Ho,"getArcSweepFlag");var Gr=.001;function Xo(t,e){if(t.length<2)return t.map(r=>({...r}));const n=t.map(r=>({...r})),o=e.arrowTypeStart&&Ao[e.arrowTypeStart];if(o){const r=t[0],i=t[1],c=Math.atan2(i.y-r.y,i.x-r.x);n[0].x=r.x+o*Math.cos(c),n[0].y=r.y+o*Math.sin(c)}const s=e.arrowTypeEnd&&Ao[e.arrowTypeEnd];if(s){const r=t.length,i=t[r-2],c=t[r-1],a=Math.atan2(c.y-i.y,c.x-i.x);n[r-1].x=c.x-s*Math.cos(a),n[r-1].y=c.y-s*Math.sin(a)}return n}d(Xo,"applyMarkerOffsets");function Yo(t,e,n,o,s){const r=t.point.x,i=t.point.y,c={x:r-e*t.r,y:i-n*t.r},a={x:r+e*t.r,y:i+n*t.r},l=[`L${we(c)}`];return s==="arc"?l.push(`A${re(t.r)},${re(t.r)} 0 0 ${o} ${we(a)}`):l.push(`M${we(a)}`),l}d(Yo,"emitJump");function Ln(t,e,n,o){const s=e.x-t.x,r=e.y-t.y,i=n.x-e.x,c=n.y-e.y,a=Math.hypot(s,r),l=Math.hypot(i,c);if(a0){const E=Ln(s[l-1],s[l],s[l+1]??s[l],Ro);E&&(f=E.cutLen)}let y=x,v=null;r&&lE.t-T.t);for(const E of M)E.r=Math.min(E.r,E.d-f,y-E.d);for(let E=0;ET){const m=T/2;M[E].r=Math.min(M[E].r,m),M[E+1].r=Math.min(M[E+1].r,m)}}for(const E of M)E.r=2?o:null}catch{return null}}d(Vo,"decodeDataPoints");function jo(t,e,n){if(!n.enabled)return;const o=t.node();if(!o)return;const s=new Map;for(const l of e)s.set(l.id,l);const r=[],i=new Map;for(const l of e){const g=typeof CSS<"u"&&CSS.escape?CSS.escape(l.id):l.id,x=o.querySelector(`path[data-id="${g}"]`);if(!x)continue;i.set(l.id,x);const u=Vo(x.getAttribute("data-points"))??l.points;r.push({...l,points:u})}const c=Do(r);if(c.length===0)return;const a=new Map;for(const l of c){const g=a.get(l.jumpEdgeId)??[];g.push(l),a.set(l.jumpEdgeId,g)}for(const l of r){const g=a.get(l.id);if(!g||g.length===0)continue;const I=s.get(l.id)?.curve;if(I!==void 0&&!zo(I))continue;const u=i.get(l.id);if(!u)continue;if(I===void 0){const E=u.getAttribute("d")??"";if(!$o(E))continue}const p=u.getAttribute("style")??"",f=/stroke-dasharray\s*:\s*0\s+([\d.]+)\s+[\d.]+\s+([\d.]+)/.exec(p),y=f?Number.parseFloat(f[1]):null,v=f?Number.parseFloat(f[2]):null,M=Go(l,g,n);if(u.setAttribute("d",M),y!==null&&v!==null&&typeof u.getTotalLength=="function"){const E=u.getTotalLength(),T=Math.max(0,E-y-v),m=`0 ${y} ${T} ${v}`,S=p.replace(/stroke-dasharray\s*:[^;]*;?/g,`stroke-dasharray: ${m};`).replace(/;\s*;+/g,";");u.setAttribute("style",S)}}}d(jo,"applyLineJumpsToSvg");async function Uo(t,e){for(const s of t.nodes)s.isGroup?await Br(e.clusters,s):kr(s);const n=new Map;for(const s of t.nodes)s?.id&&n.set(s.id,s);for(const s of t.edges){const r=s.start?n.get(s.start)??{}:{},i=s.end?n.get(s.end)??{}:{},c=_r(e.edgePaths,{...s},{},t.type,r,i,t.diagramId);s.label&&await Fr(e.rootGroups,s),s.label&&Wo(s,c)}const o=t.config?.swimlane?.lineHops;if(o!==!1){const s=o==="gap"?"gap":"arc",r=t.edges.filter(i=>Array.isArray(i.points)&&i.points.length>=2).map(i=>({id:i.id,points:i.points,curve:i.curve,arrowTypeStart:i.arrowTypeStart,arrowTypeEnd:i.arrowTypeEnd}));jo(e.edgePaths,r,{enabled:!0,jumpRadius:6,jumpStyle:s})}}d(Uo,"adjustLayout");function Wo(t,e){const n=e?.updatedPath??e?.originalPath,o=Dr(),{subGraphTitleTotalMargin:s}=Hr({flowchart:o.flowchart??{}});if(t.label){const r=Xr.get(t.id);let i=t.x,c=t.y;if(n){const a=Oe.calcLabelPosition(n);Ke.debug("Moving label "+t.label+" from (",i,",",c,") to (",a.x,",",a.y,") abc88"),e&&(i=a.x,c=a.y)}r.attr("transform",`translate(${i}, ${c+s/2})`)}if(t?.startLabelLeft){const r=Ye.get(t.id).startLeft;let i=t?.x,c=t?.y;if(n){const a=Oe.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",n);i=a.x,c=a.y}r.attr("transform",`translate(${i}, ${c})`)}if(t.startLabelRight){const r=Ye.get(t.id).startRight;let i=t.x,c=t.y;if(n){const a=Oe.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",n);i=a.x,c=a.y}r.attr("transform",`translate(${i}, ${c})`)}if(t.endLabelLeft){const r=Ye.get(t.id).endLeft;let i=t.x,c=t.y;if(n){const a=Oe.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",n);i=a.x,c=a.y}r.attr("transform",`translate(${i}, ${c})`)}if(t.endLabelRight){const r=Ye.get(t.id).endRight;let i=t.x,c=t.y;if(n){const a=Oe.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",n);i=a.x,c=a.y}r.attr("transform",`translate(${i}, ${c})`)}}d(Wo,"positionEdgeLabel");var Mn="__swimlane_default__",$r=21,No=20;function En(t){return Math.max(t.padding??No,No)}d(En,"topLaneHorizontalPadding");function Ko(t){const{x:e,y:n,width:o,height:s}=t,r=t.swimlaneContentTop;if(typeof e!="number"||typeof n!="number"||typeof o!="number"||typeof s!="number"||typeof r!="number"||!Number.isFinite(e)||!Number.isFinite(n)||!Number.isFinite(o)||!Number.isFinite(s)||!Number.isFinite(r)||o<=0||s<=0){delete t.groupTitleRect;return}const i=n-s/2,c=Math.min(r,n+s/2),a=Math.min($r,Math.max(0,c-i)),l=i+a;if(l<=i){delete t.groupTitleRect;return}t.groupTitleRect={left:e-o/2,right:e+o/2,top:i,bottom:l}}d(Ko,"assignTopLaneTitleRect");function qo(t){const e=t.direction,n=t.nodes??=[];for(const r of t.nodes??[])r.isGroup&&!r.parentId&&(r.shape="swimlane",e&&(r.direction=e));const o=n.filter(r=>!r.isGroup&&!r.parentId);if(o.length===0)return;let s=n.find(r=>r.id===Mn);s?s.isGroup&&(s.shape="swimlane",e&&(s.direction=e)):(s={id:Mn,label:"",isGroup:!0,shape:"swimlane",padding:20,...e?{direction:e}:{}},n.push(s));for(const r of o)r.parentId=Mn}d(qo,"prepareLayoutForSwimlanes");function Jo(t){const e=new Map;for(const a of t.nodes??[])e.set(a.id,a);const n=[];for(const a of t.edges??[]){const l=typeof a.start=="string"?a.start:void 0,g=typeof a.end=="string"?a.end:void 0;!l||!g||a.labelNodeId||n.push({id:a.id,src:l,dst:g,ref:a})}const o=t.nodes??[],s=o.filter(a=>a.isGroup),r=o.filter(a=>!a.isGroup);return{nodes:[...[...s].reverse(),...r].map(a=>a.id),edges:n,layout:t,nodeById:e}}d(Jo,"toGraphView");function Zo(t,e,n,o){const{layout:s}=t,r=t.nodeById,i=o?.layerGap??100,c=o?.nodeGap??40;let a=0;for(const I of e.layers){let u=0;for(const p of I){const f=r.get(p);if(!f){u++;continue}f.layer=a,f.order=u;const y=n.x[p]??u*c,v=n.y[p]??a*i;f.x=y,f.y=v,u++}a++}const l=s.nodes??[],g=new Map,x=[];for(const I of l){if(!I?.isGroup)continue;I.parentId||x.push(I);const u=l.filter(M=>M.parentId===I.id);let p=1/0,f=-1/0,y=1/0,v=-1/0;for(const M of u){const E=M.x??n.x[M.id],T=M.y??n.y[M.id],m=M.width??0,S=M.height??0;E!=null&&T!=null&&(p=Math.min(p,E-m/2),f=Math.max(f,E+m/2),y=Math.min(y,T-S/2),v=Math.max(v,T+S/2))}if(p===1/0||y===1/0)I.x=I.x??0,I.y=I.y??0,I.width=I.width??0,I.height=I.height??0;else{const M=I.padding??20,E=I.parentId?M:2*En(I),T=M,m=Math.max(0,f-p)+E,S=Math.max(0,v-y)+T,A=(p+f)/2,R=(y+v)/2;I.x=A,I.y=R,I.width=m,I.height=S,g.set(I.id,{minX:p,maxX:f,minY:y,maxY:v})}}if(x.length>0&&g.size>0){let I=1/0,u=-1/0,p=0;for(const f of x){const y=f.padding??20;y>p&&(p=y);const v=g.get(f.id);v&&(I=Math.min(I,v.minY),u=Math.max(u,v.maxY))}if(I!==1/0&&u!==-1/0){const f=Math.max(0,u-I),v=Math.max(p,36),M=f+2*v,E=(I+u)/2;for(const k of x)k.y=E,k.height=M,k.swimlaneContentTop=I;const T=[...x].sort((k,O)=>{const _=k.x??0,H=O.x??0;return _-H}),m=[],S=[],A=[];for(const k of T){const O=g.get(k.id);if(!O)continue;const _=Math.max(0,O.maxX-O.minX)+2*En(k),H=(O.minX+O.maxX)/2;m.push(k.id),S.push(H),A.push(_)}const R=m.length;if(R>0){const k=new Map;if(R===1)k.set(m[0],A[0]);else{const O=[];for(let j=0;j0&&s>0?{cx:e,cy:n,rect:Ae(e,n,o,s)}:void 0}d(oo,"measuredNodeRect");function so(t){if(t.isGroup)return;const e=oo(t);return e?{id:String(t.id??""),cx:e.cx,cy:e.cy,rect:e.rect}:void 0}d(so,"nodeBoundsInfoFor");function oe(t,e,n=Ft){return Math.abs(t.x-e.x)n}d(Tt,"isHorizontalSegment");function wt(t,e,n=Ft){return ft(t,e,n)&&Math.abs(t.y-e.y)>n}d(wt,"isVerticalSegment");function zt(t,e,n,o){return Math.max(0,Math.min(Math.max(t,e),Math.max(n,o))-Math.max(Math.min(t,e),Math.min(n,o)))}d(zt,"overlapLength");function ce(t,e,n=Ft){return t.horizontal&&e.horizontal&&ht(t.a,e.a,n)?zt(t.a.x,t.b.x,e.a.x,e.b.x):t.vertical&&e.vertical&&ft(t.a,e.a,n)?zt(t.a.y,t.b.y,e.a.y,e.b.y):0}d(ce,"sameAxisSegmentOverlapLength");function Re(t,e=Ft){const n=[];for(let o=0;o0?n[n.length-1]:void 0;(!s||!oe(s,o,e))&&n.push({x:o.x,y:o.y})}return n}d(pt,"dedupeConsecutivePoints");function ro(t,e=Ft){if(!t||t.length!==4)return;const[n,o,s,r]=t;return Tt(n,o,e)&&wt(o,s,e)&&Tt(s,r,e)?{kind:"HVH",p0:n,p1:o,p2:s,p3:r}:wt(n,o,e)&&Tt(o,s,e)&&wt(s,r,e)?{kind:"VHV",p0:n,p1:o,p2:s,p3:r}:void 0}d(ro,"classifyThreeSegmentRoute");function cn(t,e,n,o=0){const s=Math.min(t.x,e.x),r=Math.max(t.x,e.x),i=Math.min(t.y,e.y),c=Math.max(t.y,e.y);return r>n.left-o&&sn.top-o&&ie.left+n&&t.xe.top+n&&t.y=e.right&&t.top<=e.top&&t.bottom>=e.bottom}d(ts,"rectContainsRect");function Je(t,e){return t.lefte.left&&t.tope.top}d(Je,"rectsOverlap");function Tn(t,e){return{left:t.left-e,right:t.right+e,top:t.top-e,bottom:t.bottom+e}}d(Tn,"inflateRect");function Ae(t,e,n,o){return{left:t-n/2,right:t+n/2,top:e-o/2,bottom:e+o/2}}d(Ae,"rectFromCenterSize");function qt(t){return oo(t)?.rect}d(qt,"rectOfNodeBounds");function Ie(t,e){switch(e){case"top":return{x:t.cx,y:t.rect.top};case"bottom":return{x:t.cx,y:t.rect.bottom};case"left":return{x:t.rect.left,y:t.cy};case"right":return{x:t.rect.right,y:t.cy}}}d(Ie,"portForRectSide");function co(t,e,n,o,s,r=Ft){const i=e==="left"||e==="right",c=o==="left"||o==="right";if(i&&c){if(e==="right"&&o==="left"&&t.xn.x){if(ht(t,n,r))return[t,n];const x=(t.x+n.x)/2;return[t,{x,y:t.y},{x,y:n.y},n]}if(e===o){if(ht(t,n,r))return;const x=e==="left"?Math.min(t.x,n.x)-s:Math.max(t.x,n.x)+s;return[t,{x,y:t.y},{x,y:n.y},n]}return}if(!i&&!c){if(e===o){if(ft(t,n,r))return;const I=e==="top"?Math.min(t.y,n.y)-s:Math.max(t.y,n.y)+s;return[t,{x:t.x,y:I},{x:n.x,y:I},n]}if(!(e==="bottom"&&o==="top"&&t.yn.y))return;if(ft(t,n,r))return[t,n];const x=(t.y+n.y)/2;return[t,{x:t.x,y:x},{x:n.x,y:x},n]}if(i&&!c){const g=e==="right"&&n.x>t.x||e==="left"&&n.xn.y;return g&&x?[t,{x:n.x,y:t.y},n]:void 0}const a=e==="bottom"&&n.y>t.y||e==="top"&&n.yn.x;return a&&l?[t,{x:t.x,y:n.y},n]:void 0}d(co,"buildOrthogonalPortPath");function ao(t,e,n,o){return e==="left"||e==="right"?[t,{x:o,y:t.y},{x:o,y:n.y},n]:[t,{x:t.x,y:o},{x:n.x,y:o},n]}d(ao,"buildSameSideTrackPath");function an(t){const e=new Map,n=[];for(const o of t){if(o.isEdgeLabel)continue;const s=so(o);s&&(e.set(s.id,s),n.push({id:s.id,rect:s.rect}))}return{nodeInfoById:e,realNodeRects:n}}d(an,"collectRealNodeBounds");function me(t){const e=[],n=[];for(const o of t){const s=so(o);if(!s)continue;const r={id:s.id,rect:s.rect};o.isEdgeLabel?n.push(r):e.push(r)}return{realNodeRects:e,labelNodeRects:n}}d(me,"collectNodeRectEntries");function es(t,{includeEdgeLabels:e=!0}={}){const n=[];for(const o of t){if(o.isGroup||!e&&o.isEdgeLabel)continue;const s=o.x??0,r=o.y??0,i=o.width??0,c=o.height??0;n.push({nodeId:o.id,...Ae(s,r,i,c)})}return n}d(es,"collectLayoutNodeRects");function lo(t,e,n=Ft){const o=t.start,s=t.end;if(!o||!s)return;const r=e.get(o),i=e.get(s);if(!(!r||!i))return{srcId:o,dstId:s,srcInfo:r,dstInfo:i,collinearX:Math.abs(r.cx-i.cx)p||Iv)return!1;const M=Math.abs(f-g.a.x)s:r&&c&&ht(t,n,s)?zt(t.x,e.x,n.x,o.x)>s:!1}d(ns,"sameAxisSegmentsOverlap");function Ze(t,e,n,o,{epsilon:s=Ft,skipDegenerateOther:r=!1}={}){for(const i of n){if(i===o||i.isLayoutOnly)continue;const c=i.points;if(!(!c||c.length<2))for(let a=0;aI+s&&pf+s&&xo+Ft&&t=2?e[e.length-2]:void 0,a=(i?ft(i,s):!1)?{x:s.x,y:r.y}:{x:r.x,y:s.y};e.push(a)}e.push(r)}const n=[];for(const o of e){const s=n[n.length-1];(!s||!oe(s,o))&&n.push(o)}return n}d(Qe,"orthogonalizePolyline");function ae(t){if(t.length<3)return t;let e=[...t];for(let n=0;n<32;n++){const o=ss(e);if(e=o.points,!o.changed)break}return e}d(ae,"simplifyPolyline");var nt=.001,Vr=.5,Oo=4;function uo(t,e,n){const o=t;if(o.isLayoutOnly||!o.points||o.points.length=0&&s=t.length)return t;const r=s-o;if(r<0||r>=t.length)return t;const i=rs(t[s],t[r],e);return n?[i,...t.slice(s)]:[...t.slice(0,s+1),i]}d(An,"clipEndpoint");function is(t,e){for(const n of t){const o=uo(n,e,2);if(!o)continue;let s=[...o.points];o.srcRect&&(s=An(s,o.srcRect,!0)),o.dstRect&&(s=An(s,o.dstRect,!1)),s=ae(Qe(s)),s=ho(s,o.srcRect,o.dstRect),o.edge.points=ae(Qe(s))}}d(is,"clipEdgeEndpointsToNodeBoundaries");function Rn(t,e,n,o=!1){if(ht(t,e,nt)){if(e.yn.bottom+nt)return e;if(o){if(t.xn.right+nt)return{x:n.right,y:t.y}}return{x:Math.abs(e.x-n.left)<=Math.abs(e.x-n.right)?n.left:n.right,y:t.y}}if(ft(t,e,nt)){if(e.xn.right+nt)return e;if(o){if(t.yn.bottom+nt)return{x:t.x,y:n.bottom}}const s=Math.abs(e.y-n.top)<=Math.abs(e.y-n.bottom);return{x:t.x,y:s?n.top:n.bottom}}return e}d(Rn,"snapEndpointToBoundary");function tn(t,e,n){const o=t[e];for(let s=e+n;s>=0&&so.lo)),n=Math.min(...t.map(o=>o.hi));if(!(e>n))return{lo:e,hi:n}}d(cs,"intersectRanges");function On(t,e){return e==="left"||e==="right"?en(t.top,t.bottom):en(t.left,t.right)}d(On,"clearanceRangeForSide");function nn(t,e,n){const o=t.y>=n.top-nt&&t.y<=n.bottom+nt,s=t.x>=n.left-nt&&t.x<=n.right+nt;if(ht(t,e,nt)&&o){if(Math.abs(t.x-n.left)0?cs(r):void 0}d(as,"straightClearanceRange");function Pn(t,e,n,o,s){const r=as(t,e,n,o,s);if(!r)return;const i=s?t.y:t.x,c=Math.min(r.hi,Math.max(r.lo,i));if(!(Math.abs(c-i)({...c}));for(let c=e;c>=0&&c=n.left-nt&&Math.max(t.x,e.x)<=n.right+nt,s=Math.min(t.y,e.y)>=n.top-nt&&Math.max(t.y,e.y)<=n.bottom+nt;if(Math.abs(t.y-n.top)o.bottom+nt;case"left":return ht(e,n,nt)&&n.xo.right+nt}}d(_n,"leavesOutward");function Fn(t,e,n){if(t.length<3)return t;if(n){const r=kn(t[0],t[1],e);return r&&_n(r,t[1],t[2],e)?t.slice(1):t}const o=t.length-1,s=kn(t[o-1],t[o],e);return s&&_n(s,t[o-1],t[o-2],e)?t.slice(0,o):t}d(Fn,"collapseOwnBorderStub");function ds(t,e,n){let o=t;if(e){const r=tn(o,0,1);if(r){const i=Rn(r,o[0],e);i!==o[0]&&(o=[i,...o.slice(1)])}o=Fn(o,e,!0)}if(n){const r=o.length-1,i=tn(o,r,-1);if(i){const c=Rn(i,o[r],n,!0);c!==o[r]&&(o=[...o.slice(0,r),c])}o=Fn(o,n,!1)}const s=ho(o,e,n);return s!==o||o.length===2?s:(e&&(o=Bn(o,e,!0)),n&&(o=Bn(o,n,!1)),o)}d(ds,"snapAndCollapseEndpoints");function Dn(t,e){for(const n of t){const o=uo(n,e,2);if(!o)continue;const s=pt(o.points,nt),r=ds(s,o.srcRect,o.dstRect);if(r.length<3){o.edge.points=r;continue}const i=[r[0],{...r[0]},...r.slice(1,-1),r[r.length-1],{...r[r.length-1]}];o.edge.points=i}}d(Dn,"prepareEdgeEndpointsForRenderer");function go(t){return new Map(t.map(e=>[e.id,e]))}d(go,"buildNodeMap");function us(t,e){let n=t.parentId,o=null;for(;n;){const s=e.get(n);if(!s?.isGroup)break;o=s.id,n=s.parentId}return o}d(us,"resolveTopLevelGroupId");function Hn(t,e){let n=0,o=t.parentId;for(;o;){const s=e.get(o);if(!s?.isGroup)break;n++,o=s.parentId}return n}d(Hn,"groupDepth");function po(t){let e=1/0,n=-1/0,o=1/0,s=-1/0;for(const r of t){const i=r.x,c=r.y;if(typeof i!="number"||typeof c!="number")continue;const a=r.width??0,l=r.height??0;e=Math.min(e,i-a/2),n=Math.max(n,i+a/2),o=Math.min(o,c-l/2),s=Math.max(s,c+l/2)}return e===1/0||o===1/0?null:{minX:e,maxX:n,minY:o,maxY:s}}d(po,"boundsForChildren");function hs(t,e){const n=t.padding??20;t.x=(e.minX+e.maxX)/2,t.y=(e.minY+e.maxY)/2,t.width=Math.max(0,e.maxX-e.minX)+n,t.height=Math.max(0,e.maxY-e.minY)+n}d(hs,"applyGroupBounds");function gs(t){const e=go(t),n=t.filter(o=>o.isGroup&&o.parentId).sort((o,s)=>Hn(s,e)-Hn(o,e));for(const o of n){const s=t.filter(i=>i.parentId===o.id),r=po(s);r&&hs(o,r)}}d(gs,"recomputeNestedGroupBounds");function on(t,e){const n=t.nodes??[],o=t.edges??[],s=n.filter(a=>!a.isGroup);let r=1/0,i=-1/0;for(const a of s){const l=a[e];typeof l=="number"&&(r=Math.min(r,l),i=Math.max(i,l))}if(!Number.isFinite(r)||!Number.isFinite(i))return!1;const c=d(a=>r+i-a,"mirror");for(const a of n){const l=a[e];typeof l=="number"&&(a[e]=c(l));const g=a.groupTitleRect;g&&(a.groupTitleRect=e==="x"?{...g,left:c(g.right),right:c(g.left)}:{...g,top:c(g.bottom),bottom:c(g.top)})}for(const a of o)for(const l of a.points??[])l[e]=c(l[e]);return!0}d(on,"mirrorAxis");function ps(t){return(t.nodes??[]).some(n=>!n.isGroup)?on(t,"y"):!0}d(ps,"applyBtDirectionTransform");function ms(t,e="LR"){const n=t.nodes??[],o=t.edges??[],s=n.filter(P=>!P.isGroup);let r=1/0,i=1/0;for(const P of s){const G=P.x??0,j=P.y??0;G0?Math.max(1,g/x):1;for(const P of s){const G=P.x??0,J=((P.y??0)-i)*I+c,dt=G-r;P.x=J,P.y=dt}for(const P of o)if(P.points)for(const G of P.points){const j=G.x,dt=(G.y-i)*I+c,mt=j-r;G.x=dt,G.y=mt}gs(n);const u=n.filter(P=>P.isGroup&&!P.parentId);if(u.length===0)return e==="RL"&&on(t,"x"),!0;const p=go(n),f=new Map;for(const P of n){if(P.isGroup)continue;const G=us(P,p);if(!G)continue;const j=f.get(G)??[];j.push(P),f.set(G,j)}let y=0;for(const P of u){const G=P.padding??0;G>y&&(y=G)}const v=[];let M=1/0,E=-1/0;for(const P of u){const G=f.get(P.id)??[],j=po(G);j&&(M=Math.min(M,j.minX),E=Math.max(E,j.maxX),v.push({lane:P,contentTop:j.minY,contentBottom:j.maxY,centerY:(j.minY+j.maxY)/2}))}if(M===1/0||E===-1/0)return!0;const T=Math.max(0,E-M),m=Math.max(y,10),S=T+2*m,A=c+S,O=(M+E)/2-S/2-c,_=O+A/2,H=Math.max(y,c);v.sort((P,G)=>P.centerY-G.centerY);for(let P=0;PI.cy?v.bottom:v.top,H=I.cx+M;if(H<=v.left+se||H>=v.right-se)continue;E={x:H,y:_},T={x:H,y:c.y},m={x:c.x,y:c.y}}else{const _=u.cx>I.cx?v.right:v.left,H=I.cy+M;if(H<=v.top+se||H>=v.bottom-se)continue;E={x:_,y:H},T={x:c.x,y:H},m={x:c.x,y:c.y}}const S=oe(E,T,se),A=oe(T,m,se);if(S&&A||!S&&At(E,T,o,[g],1)||!A&&At(T,m,o,[x],1))continue;const R=!S&&Ze(E,T,t,s,{epsilon:se,skipDegenerateOther:!0}),k=!A&&Ze(T,m,t,s,{epsilon:se,skipDegenerateOther:!0});if(!(R||k)){S?y=[T,m]:A?y=[E,T]:y=[E,T,m];break}}y&&(s.points=y)}}d(ys,"portSwapToLShape");function xs(t,e){const{realNodeRects:r,labelNodeRects:i}=me(e.values());for(const c of t){if(c.isLayoutOnly)continue;const a=c.points;if(!a||a.length<4)continue;const l=pt(a,.001);if(l.length<4)continue;const g=l.length-1,x=l[g],I=l[g-1],u=l[g-2],p=x.x-I.x,f=x.y-I.y,y=Math.hypot(p,f);if(y>=10||y<.001)continue;const v=I.x-u.x,M=I.y-u.y;if(Math.hypot(v,M)<.001)continue;const T=Tt(I,x,.001),m=wt(I,x,.001),S=Tt(u,I,.001),A=wt(u,I,.001);if(!(T&&A||m&&S))continue;const R=c.end,k=c.start,O=R?e.get(R):void 0;if(!O)continue;const _=O.x??0,H=O.y??0,P=qt(O);if(!P)continue;let G,j;if(A){const W=M<0;G={x:_,y:u.y},j={x:_,y:W?P.bottom:P.top}}else{const W=v>0;G={x:u.x,y:H},j={x:W?P.right:P.left,y:H}}if(At(G,j,r,R?[R]:[],-2)||At(G,j,i,[],-2))continue;if(k){const W=e.get(k),et=W?qt(W):void 0;if(et&&io(G,et,2))continue}const J=d((W,et)=>`${W.x.toFixed(3)},${W.y.toFixed(3)}|${et.x.toFixed(3)},${et.y.toFixed(3)}`,"ownSegmentKey"),dt=new Set;for(let W=0;W{for(const at of t){if(at===c||at.isLayoutOnly)continue;const gt=at.points;if(!(!gt||gt.length<2))for(let xt=0;xt=0){const W=l[g-3],et=[k,R].filter(at=>!!at);if(At(W,G,r,et,-2)||mt(W,G))continue}const Pt=[...l.slice(0,g-2),G,j];c.points=Pt;const Q=c.labelNodeId;if(Q){const W=e.get(Q);if(W){const et=W.width??0,at=W.height??0;if(et>0&&at>0){let gt,xt,vt=-1;for(let Vt=0;Vt=et+2||de&&te>=at+2)&&te>vt&&(vt=te,gt=(jt.x+Ut.x)/2,xt=(jt.y+Ut.y)/2)}gt!==void 0&&xt!==void 0&&(W.x=gt,W.y=xt)}}}}}d(xs,"collapseShortTerminalStub");var Z=.001,_t=8,it=Re,In=d((t,e)=>ft(t,e,Z)||ht(t,e,Z),"orthogonallyAligned");function bs(t,e){const s=d((u,p)=>{const f=u.x??0,y=u.y??0,v=p.x-f,M=p.y-y;let E=(u.width??0)/2,T=(u.height??0)/2;return Math.abs(M)*E>Math.abs(v)*T?(M<0&&(T=-T),{x:f+(M===0?0:T*v/M),y:y+T}):(v<0&&(E=-E),{x:f+E,y:y+(v===0?0:E*M/v)})},"rectIntersect"),r=d((u,p)=>{const f=pt(u.points??[]);if(f.length<2)return;const y=p?u.start:u.end,v=y?e.get(y):void 0,M=v?qt(v):void 0;if(!v||!y||!M)return;const E=p?f[0]:f[f.length-1],T=p?f[1]:f[f.length-2],m=s(v,E);let S=E;if(In(T,m)&&(S=T),ft(m,S,Z))return{edge:u,edgeId:String(u.id??""),nodeId:y,atStart:p,orientation:"V",coord:m.x,min:Math.min(m.y,S.y),max:Math.max(m.y,S.y),boundary:m,railEnd:S,rect:M};if(ht(m,S,Z))return{edge:u,edgeId:String(u.id??""),nodeId:y,atStart:p,orientation:"H",coord:m.y,min:Math.min(m.x,S.x),max:Math.max(m.x,S.x),boundary:m,railEnd:S,rect:M}},"terminalLaneFor"),i=d((u,p)=>Math.max(0,Math.min(u.max,p.max)-Math.max(u.min,p.min)),"projectedOverlapLength"),c=d((u,p)=>u.nodeId!==p.nodeId||u.orientation!==p.orientation?!1:u.orientation==="H"?(Math.abs(u.boundary.x-u.rect.left)<1||Math.abs(u.boundary.x-u.rect.right)<1)&&ft(u.boundary,p.boundary,1):(Math.abs(u.boundary.y-u.rect.top)<1||Math.abs(u.boundary.y-u.rect.bottom)<1)&&ht(u.boundary,p.boundary,1),"sameTerminalFace"),a=d((u,p)=>u.nodeId!==p.nodeId||u.orientation!==p.orientation?!1:i(u,p)>=_t&&Math.abs(u.coord-p.coord)<.5,"exactTerminalLaneConflict"),l=d((u,p)=>{if(u.nodeId!==p.nodeId||u.orientation!==p.orientation||u.orientation!=="H"||u.atStart===p.atStart)return!1;const f=i(u,p);if(f<_t)return!1;const y=u.rect.bottom-u.rect.top;return f2*y?!1:c(u,p)&&Math.abs(u.coord-p.coord)<16},"nearTerminalLaneConflict"),g=d((u,p)=>{const f=pt(u.edge.points??[]);if(f.length<2)return;const y=u.orientation==="V"?{x:u.boundary.x+p,y:u.boundary.y}:{x:u.boundary.x,y:u.boundary.y+p},v=u.orientation==="V"?{x:u.railEnd.x+p,y:u.railEnd.y}:{x:u.railEnd.x,y:u.railEnd.y+p};if(!d(()=>Math.abs(u.boundary.y-u.rect.top)<1||Math.abs(u.boundary.y-u.rect.bottom)<1?ht(y,u.boundary,Z)&&y.x>=u.rect.left+1&&y.x<=u.rect.right-1:Math.abs(u.boundary.x-u.rect.left)<1||Math.abs(u.boundary.x-u.rect.right)<1?ft(y,u.boundary,Z)&&y.y>=u.rect.top+1&&y.y<=u.rect.bottom-1:!1,"boundaryStaysOnSameFace")())return;if(u.atStart){const S=f.length>1&&oe(f[1],u.railEnd,Z),A=f.slice(S?2:1),R=A[0];return R&&!In(R,v)?void 0:[y,v,...A]}const E=f.length>1&&oe(f[f.length-2],u.railEnd,Z),T=f.slice(0,E?-2:-1),m=T[T.length-1];if(!(m&&!In(m,v)))return[...T,v,y]},"shiftedCandidate"),x=d(u=>{const p=u.edge,f=pt(p.points??[]);if(f.length!==2)return!1;const y=p.start,v=p.end,M=y?e.get(y):void 0,E=v?e.get(v):void 0;if(!M||!E)return!1;const T=M.x??0,m=M.y??0,S=E.x??0,A=E.y??0,[R,k]=f;return ht(R,k,Z)&&Math.abs(m-A)<1&&Math.abs(T-S)>1||ft(R,k,Z)&&Math.abs(T-S)<1&&Math.abs(m-A)>1},"laneIsStraightCollinearConnector"),I=[-7,7,-14,14,-21,21];for(let u=0;u<8;u++){const p=t.filter(y=>!y.isLayoutOnly).flatMap(y=>[r(y,!0),r(y,!1)]).filter(y=>!!y);let f=!1;for(let y=0;y{const R=x(S),k=x(A);return R!==k?Number(R)-Number(k):+!A.atStart-+!S.atStart});for(const S of m){for(const A of I){const R=g(S,A);if(!R)continue;const k=r({...S.edge,points:R},S.atStart);if(!(!k||p.some(O=>O.edge!==S.edge&&(a(k,O)||T&&l(k,O))))){S.edge.points=R,f=!0;break}}if(f)break}}if(!f)return}}d(bs,"separateSharedRenderedTerminalLanes");function Ms(t,e){const{realNodeRects:o,labelNodeRects:s}=me(e.values()),r=d((c,a)=>{const l=c.start,g=c.end,x=it(a);if(x.length!==a.length-1)return!1;const I=[l,g].filter(u=>!!u);for(const u of x)if(At(u.a,u.b,o,I,-2)||At(u.a,u.b,s,[],-2))return!1;for(const u of t){if(u===c||u.isLayoutOnly)continue;const p=u.points;if(!(!p||p.length<2)){for(const f of x)for(const y of it(pt(p)))if(ce(f,y,.5)>=_t||le(f.a,f.b,y.a,y.b,Z))return!1}}return!0},"candidateIsSafe"),i=d((c,a)=>{if(a+4>=c.length)return;const l=c[a],g=c[a+1],x=c[a+2],I=c[a+3],u=c[a+4],p=Tt(l,g)&&wt(g,x)&&Tt(x,I)&&wt(I,u)&&ft(l,I,Z)&&ft(l,u,Z)&&ft(g,x,Z)&&(g.x-l.x)*(I.x-x.x)<0,f=wt(l,g)&&Tt(g,x)&&wt(x,I)&&Tt(I,u)&&ht(l,I,Z)&&ht(l,u,Z)&&ht(g,x,Z)&&(g.y-l.y)*(I.y-x.y)<0;if(p||f)return pt([...c.slice(0,a+1),u,...c.slice(a+5)]);if(a+5>=c.length)return;const y=c[a+5],v=wt(l,g)&&Tt(g,x)&&wt(x,I)&&Tt(I,u)&&wt(u,y)&&ft(l,u,Z)&&ft(l,y,Z)&&ft(x,I,Z)&&(x.x-g.x)*(u.x-I.x)<0,M=Tt(l,g)&&wt(g,x)&&Tt(x,I)&&wt(I,u)&&Tt(u,y)&&ht(l,u,Z)&&ht(l,y,Z)&&ht(x,I,Z)&&(x.y-g.y)*(u.y-I.y)<0;if(!(!v&&!M))return pt([...c.slice(0,a+1),y,...c.slice(a+6)])},"withoutDogleg");for(let c=0;c<8;c++){let a=!1;for(const l of t){if(l.isLayoutOnly)continue;const g=pt(l.points??[]);for(let x=0;x<=g.length-5;x++){const I=i(g,x);if(!(!I||!r(l,I))){l.points=I,a=!0;break}}if(a)break}if(!a)return}}d(Ms,"collapseRedundantRectangularDoglegs");function Xn(t,e){const{realNodeRects:r,labelNodeRects:i}=me(e.values()),c=t.filter(p=>!p.isLayoutOnly),a=d((p,f,y)=>pt(p===f?y??[]:p.points??[]),"pointsFor"),l=d((p,f)=>{let y=0;for(let v=0;v{const f=it(p);if(f.length!==3)return;const y=f[1];if(!(f[0].horizontal===y.horizontal||f[2].horizontal===y.horizontal))return{index:y.index,horizontal:y.horizontal,vertical:y.vertical,segment:y}},"middleRail"),x=d((p,f)=>{const y=[p.start,p.end].filter(v=>!!v);return r.filter(v=>{if(y.includes(v.id))return!1;const M=v.rect;return f.horizontal?zt(f.a.x,f.b.x,M.left,M.right)>=_t&&f.a.y>=M.top-2&&f.a.y<=M.bottom+2:zt(f.a.y,f.b.y,M.top,M.bottom)>=_t&&f.a.x>=M.left-2&&f.a.x<=M.right+2})},"blockingRectsFor"),I=d((p,f,y)=>{const v=p.map(E=>({...E}));if(f.horizontal)v[f.index].y=y,v[f.index+1].y=y;else if(f.vertical)v[f.index].x=y,v[f.index+1].x=y;else return;const M=ae(pt(v));return it(M).length===M.length-1?M:void 0},"candidateByMovingRail"),u=d((p,f,y)=>{const v=[p.start,p.end].filter(E=>!!E),M=it(f);if(M.length!==f.length-1)return!1;for(const E of M)if(At(E.a,E.b,r,v,-2)||At(E.a,E.b,i,[],-2))return!1;for(const E of c)if(E!==p){for(const T of M)for(const m of it(a(E)))if(ce(T,m,.5)>=_t)return!1}return l(p,f)<=y},"candidateIsSafe");for(let p=0;p<8;p++){const f=l();let y=!1;for(const v of c){const M=a(v),E=g(M);if(!E)continue;const T=x(v,E.segment);if(T.length===0)continue;const m=E.horizontal?[Math.min(...T.map(S=>S.rect.top))-20,Math.max(...T.map(S=>S.rect.bottom))+20]:[Math.min(...T.map(S=>S.rect.left))-20,Math.max(...T.map(S=>S.rect.right))+20];for(const S of m){const A=I(M,E.segment,S);if(!(!A||!u(v,A,f))){v.points=A,y=!0;break}}if(y)break}if(!y)return}}d(Xn,"liftObstacleHuggingSameSideRails");function Yn(t,e){const o=d(a=>{const l=a.groupTitleRect;if(!(!l||typeof l.left!="number"||typeof l.right!="number"||typeof l.top!="number"||typeof l.bottom!="number"||!Number.isFinite(l.left)||!Number.isFinite(l.right)||!Number.isFinite(l.top)||!Number.isFinite(l.bottom)||l.right<=l.left||l.bottom<=l.top))return{left:l.left,right:l.right,top:l.top,bottom:l.bottom}},"validTitleRect"),s=d(a=>{if(!a.isGroup||a.parentId)return;const l=a.direction,g=typeof l=="string"?l.toUpperCase():"";if(g==="LR"||g==="RL"||g==="BT")return;const x=o(a),I=a.y,u=a.height;if(!x||typeof I!="number"||typeof u!="number"||!Number.isFinite(I)||!Number.isFinite(u)||u<=0)return;const p=x.right-x.left,f=x.bottom-x.top;if(!(f<=0||p{if(!a.horizontal)return!1;const g=a.a.y;return g<=l.top+Z||g>=l.bottom-Z?!1:zt(a.a.x,a.b.x,l.left,l.right)>=_t},"horizontalSegmentIntersectsTitle"),i=[...e.values()].map(s).filter(a=>!!a);if(i.length===0)return;let c=0;for(const a of t){if(a.isLayoutOnly)continue;const l=pt(a.points??[]);for(const g of it(l))for(const x of i)r(g,x.rect)&&(c=Math.max(c,x.rect.bottom-g.a.y+4))}if(!(c<=Z))for(const a of i){const l=a.node.y,g=a.node.height;typeof l!="number"||typeof g!="number"||!Number.isFinite(l)||!Number.isFinite(g)||g<=0||(a.node.y=l-c/2,a.node.height=g+c,a.node.groupTitleRect={...a.rect,top:a.rect.top-c,bottom:a.rect.bottom-c})}}d(Yn,"liftTopLaneTitleBandsAboveRails");function Gn(t,e){const o=d(l=>{const g=l.groupTitleRect;if(!(!g||typeof g.left!="number"||typeof g.right!="number"||typeof g.top!="number"||typeof g.bottom!="number"||!Number.isFinite(g.left)||!Number.isFinite(g.right)||!Number.isFinite(g.top)||!Number.isFinite(g.bottom)||g.right<=g.left||g.bottom<=g.top))return{left:g.left,right:g.right,top:g.top,bottom:g.bottom}},"validTitleRect"),s=d(l=>{if(!l.isGroup||l.parentId||l.direction!=="LR")return;const x=o(l),I=l.x,u=l.width;if(!x||typeof I!="number"||typeof u!="number"||!Number.isFinite(I)||!Number.isFinite(u)||u<=0)return;const p=x.right-x.left,f=x.bottom-x.top;if(!(p<=0||f{if(!l.vertical)return!1;const x=l.a.x;return x<=g.left+Z||x>=g.right-Z?!1:zt(l.a.y,l.b.y,g.top,g.bottom)>=_t},"verticalSegmentIntersectsTitle"),i=d((l,g)=>{if(!l.horizontal)return!1;const x=l.a.y;return x<=g.top+Z||x>=g.bottom-Z?!1:zt(l.a.x,l.b.x,g.left,g.right)>=_t},"horizontalSegmentIntersectsTitle"),c=[...e.values()].map(s).filter(l=>!!l);if(c.length===0)return;let a=0;for(const l of t){if(l.isLayoutOnly)continue;const g=pt(l.points??[]);for(const x of it(g))for(const I of c)if(r(x,I.rect))a=Math.max(a,I.rect.right-x.a.x+4);else if(i(x,I.rect)){const u=Math.min(x.a.x,x.b.x);a=Math.max(a,I.rect.right-u+4)}}if(!(a<=Z))for(const l of c){const g=l.node.x,x=l.node.width;typeof g!="number"||typeof x!="number"||!Number.isFinite(g)||!Number.isFinite(x)||x<=0||(l.node.x=g-a/2,l.node.width=x+a,l.node.groupTitleRect={...l.rect,left:l.rect.left-a,right:l.rect.right-a})}}d(Gn,"shiftLeftLaneTitleBandsLeftOfRails");function Is(t,e){const{realNodeRects:o}=me(e.values()),s=t.filter(p=>!p.isLayoutOnly),r=d((p,f=new Map)=>pt(f.get(p)??p.points??[]),"replacementPointsFor"),i=d((p=new Map)=>{let f=0;for(let y=0;ys.reduce((f,y)=>f+Qt(r(y,p)),0),"totalBends"),a=d(p=>{const f=r(p);if(f.length<4)return;const y=f[f.length-2],v=f[f.length-1];if(!(!Tt(y,v,Z)&&!wt(y,v,Z)))return{tailStart:y,terminal:v}},"terminalTailFor"),l=d((p,f)=>{const y=r(p);if(y.length<3)return;const v=y[0],M=y[1];let E;if(Tt(v,M,Z))E={x:M.x,y:f.tailStart.y};else if(wt(v,M,Z))E={x:f.tailStart.x,y:M.y};else return;const T=ae(pt([v,M,E,f.tailStart,f.terminal]));return it(T).length===T.length-1?T:void 0},"candidateWithDestinationTail"),g=d((p,f)=>{const y=[p.start,p.end].filter(v=>!!v);for(const v of it(f))if(At(v.a,v.b,o,y,-2))return!0;return!1},"pathHasNodeHit"),x=d((p,f,y)=>{for(const v of s)if(v!==p){for(const M of it(f))for(const E of it(r(v,y)))if(ce(M,E,.5)>=_t)return!0}return!1},"pathHasSharedTrack"),I=d((p,f,y)=>!g(p,f)&&!x(p,f,y),"candidateIsSafe"),u=d(()=>{const p=new Map;for(const f of s){const y=f.end;if(!y||!e.has(y)||r(f).length<4)continue;const M=p.get(y)??[];M.push(f),p.set(y,M)}return p},"edgesByDestination");for(let p=0;p<4;p++){const f=i();if(f===0)return;const y=c();let v,M=f,E=y;for(const T of u().values())for(let m=0;m=f||G>M||G===M&&j>=E||(v=P,M=G,E=j)}if(!v)return;for(const[T,m]of v)T.points=m}}d(Is,"swapDestinationTerminalTailsToReduceCrossings");function Ss(t,e){const{realNodeRects:r,labelNodeRects:i}=me(e.values()),c=t.filter(T=>!T.isLayoutOnly),a=d((T,m=new Map)=>pt(m.get(T)??T.points??[]),"replacementPointsFor"),l=d((T=new Map)=>{let m=0;for(let S=0;Sc.reduce((m,S)=>m+Qt(a(S,T)),0),"totalBends"),x=d(T=>{const m=T.start,S=T.end,A=m?e.get(m):void 0,R=S?e.get(S):void 0,k=A?qt(A):void 0,O=R?qt(R):void 0;return k&&O?{src:k,dst:O}:void 0},"endpointRectsFor"),I=d((T,m,S)=>{if(S.index<=0||S.index+1>=m.length-1)return;const A=x(T);if(A){if(S.vertical){const R=S.a.x,k=Math.min(A.src.left,A.dst.left),O=Math.max(A.src.right,A.dst.right),_=RO+Z?"right":void 0;return _?{edge:T,points:m,segmentIndex:S.index,axis:"vertical",side:_,coord:R,min:Math.min(S.a.y,S.b.y),max:Math.max(S.a.y,S.b.y)}:void 0}if(S.horizontal){const R=S.a.y,k=Math.min(A.src.top,A.dst.top),O=Math.max(A.src.bottom,A.dst.bottom),_=RO+Z?"bottom":void 0;return _?{edge:T,points:m,segmentIndex:S.index,axis:"horizontal",side:_,coord:R,min:Math.min(S.a.x,S.b.x),max:Math.max(S.a.x,S.b.x)}:void 0}}},"externalRailForSegment"),u=d(()=>{const T=[];for(const m of c){const S=a(m);for(const A of it(S)){const R=I(m,S,A);R&&T.push(R)}}return T},"collectExternalRails"),p=d((T,m)=>T.edge!==m.edge&&T.axis===m.axis&&T.side===m.side&&zt(T.min,T.max,m.min,m.max)>=_t,"railsInteract"),f=d(T=>{const m=[],S=new Set;for(const A of T){if(S.has(A))continue;const R=[A],k=[];for(S.add(A);R.length>0;){const O=R.pop();k.push(O);for(const _ of T)!S.has(_)&&p(O,_)&&(S.add(_),R.push(_))}k.length>1&&m.push(k)}return m},"connectedComponents"),y=d(T=>{const m=[];for(const S of T)m.some(A=>Math.abs(A-S.coord){const m=T.map(R=>R.coord),S=y(T),A=[];if(T.length<=6){const R=new Array(S.length).fill(!1),k=[],O=d(()=>{if(k.length===T.length){k.some((_,H)=>Math.abs(_-m[H])>=Z)&&A.push([...k]);return}for(const[_,H]of S.entries())R[_]||(R[_]=!0,k.push(H),O(),k.pop(),R[_]=!1)},"visit");return O(),A}for(let R=0;R{const S=new Map;for(const[R,k]of T.entries()){const O=m[R],_=S.get(k.edge)??k.points.map(H=>({x:H.x,y:H.y}));k.axis==="vertical"?(_[k.segmentIndex].x=O,_[k.segmentIndex+1].x=O):(_[k.segmentIndex].y=O,_[k.segmentIndex+1].y=O),S.set(k.edge,_)}const A=new Map;for(const[R,k]of S){const O=ae(pt(k));if(it(O).length!==O.length-1)return;A.set(R,O)}return A},"replacementsForAssignment"),E=d(T=>{for(const[m,S]of T){const A=[m.start,m.end].filter(R=>!!R);for(const R of it(S))if(At(R.a,R.b,r,A,-2)||At(R.a,R.b,i,[],-2))return!1}for(let m=0;m=_t)return!1}}return!0},"candidateIsSafe");for(let T=0;T<4;T++){const m=l();if(m===0)return;let S,A=m,R=g(),k=Number.POSITIVE_INFINITY;for(const O of f(u()))for(const _ of v(O)){const H=M(O,_);if(!H||!E(H))continue;const P=l(H);if(P>=m)continue;const G=g(H),j=O.reduce((J,dt,mt)=>J+Math.abs(_[mt]-dt.coord),0);P>A||P===A&&(G>R||G===R&&j>=k)||(S=H,A=P,R=G,k=j)}if(!S)return;for(const[O,_]of S)O.points=_}}d(Ss,"reassignCrossingExternalRailChannels");function Cs(t,e){const{realNodeRects:o,labelNodeRects:s}=me(e.values()),r=t.filter(u=>!u.isLayoutOnly),i=d((u,p,f)=>pt(u===p?f??[]:u.points??[]),"pointsFor"),c=d(u=>it(u).reduce((p,f)=>{const y=f.a.x-f.b.x,v=f.a.y-f.b.y;return p+Math.hypot(y,v)},0),"pathLength"),a=d((u,p)=>{let f=0;for(let y=0;y{if(u.horizontal){const f=u.a.y;return(Math.abs(f-p.top)<1||Math.abs(f-p.bottom)<1)&&zt(u.a.x,u.b.x,p.left,p.right)>=_t}if(u.vertical){const f=u.a.x;return(Math.abs(f-p.left)<1||Math.abs(f-p.right)<1)&&zt(u.a.y,u.b.y,p.top,p.bottom)>=_t}return!1},"segmentRunsAlongRectBorder"),g=d(u=>{const p=[u.start,u.end].filter(y=>!!y),f=[];for(const y of p){const v=e.get(y),M=v?qt(v):void 0;M&&f.push(M)}return f},"endpointRectsFor"),x=d((u,p)=>{if(p+3>=u.length)return[];const f=u[p],y=u[p+1],v=u[p+2],M=u[p+3],E=Tt(f,y,Z)&&wt(y,v,Z)&&Tt(v,M,Z),T=wt(f,y,Z)&&Tt(y,v,Z)&&wt(v,M,Z);if(!E&&!T)return[];if(!(E?Math.sign(y.x-f.x)!==Math.sign(M.x-v.x):Math.sign(y.y-f.y)!==Math.sign(M.y-v.y)))return[];const S=ft(f,M,Z)||ht(f,M,Z)?[]:[{x:f.x,y:M.y},{x:M.x,y:f.y}],A=S.length===0?[[...u.slice(0,p+1),...u.slice(p+3)]]:S.map(k=>[...u.slice(0,p+1),k,...u.slice(p+3)]),R=new Set;return A.map(k=>ae(pt(k))).filter(k=>{if(it(k).length!==k.length-1||!k.some(_=>oe(_,M,Z)))return!1;const O=k.map(_=>`${_.x.toFixed(3)},${_.y.toFixed(3)}`).join("|");return R.has(O)?!1:(R.add(O),!0)})},"shortcutCandidatesAt"),I=d((u,p,f)=>{const y=[u.start,u.end].filter(M=>!!M),v=g(u);for(const M of it(p))if(At(M.a,M.b,o,y,-2)||At(M.a,M.b,s,[],-2)||v.some(E=>l(M,E)))return!1;for(const M of r)if(M!==u){for(const E of it(p))for(const T of it(i(M)))if(ce(E,T,.5)>=_t)return!1}return a(u,p)<=f},"candidateIsSafe");for(let u=0;u<8;u++){const p=a();let f,y,v=p,M=Number.POSITIVE_INFINITY,E=Number.POSITIVE_INFINITY;for(const T of r){const m=i(T),S=Qt(m,Z),A=c(m);for(let R=0;R<=m.length-4;R++)for(const k of x(m,R)){const O=Qt(k,Z),_=c(k);if(!(Ov||P===v&&(O>M||O===M&&_>=E)||(f=T,y=k,v=P,M=O,E=_)}}if(!f||!y)return;f.points=y}}d(Cs,"shortcutRedundantOrthogonalJogs");function vs(t,e){const i=[];for(const N of e.values()){if(N.isGroup||N.isEdgeLabel)continue;const F=N.x??0,D=N.y??0,V=qt(N);V&&i.push({id:String(N.id??""),cx:F,cy:D,rect:V})}if(i.length===0)return;const c=new Map(i.map(N=>[N.id,N])),a=i.map(N=>({id:N.id,rect:N.rect})),l=["top","bottom","left","right"],g={top:Math.min(...i.map(N=>N.rect.top))-20,bottom:Math.max(...i.map(N=>N.rect.bottom))+20,left:Math.min(...i.map(N=>N.rect.left))-20,right:Math.max(...i.map(N=>N.rect.right))+20},x=t.filter(N=>!N.isLayoutOnly),I=new Map(x.map((N,F)=>[N,F])),u=d(N=>{const F=N==="left"||N==="top"?-1:1,D=[];for(let V=0;V<=2;V++)D.push(g[N]+F*20*V);return D},"outwardTracksForSide"),p=d((N,F=new Map)=>pt(F.get(N)??N.points??[]),"replacementPointsFor"),f=d((N,F)=>{let D=0;for(const V of N)for(const h of F)le(V.a,V.b,h.a,h.b,Z)&&D++;return D},"crossingCountBetweenSegments"),y=d((N,F)=>f(it(N),it(F)),"crossingCountBetweenPaths"),v=d((N=new Map)=>{let F=0;const D=[],V=new Set,h=[],b=d(C=>{V.has(C)||(V.add(C),h.push(C))},"addEdge");for(let C=0;C0&&(F+=q,D.push({first:L,second:U,count:q}),b(L),b(U))}}return h.sort((C,L)=>(I.get(C)??0)-(I.get(L)??0)),{count:F,pairs:D,edgeSet:V,edges:h}},"crossingSnapshot"),M=d((N,F)=>{const D=new Set(F.keys());if(D.size===0)return N.count;let V=0;for(const b of N.pairs)(D.has(b.first)||D.has(b.second))&&(V+=b.count);let h=0;for(let b=0;b{const F=new Map;for(const h of N.pairs){const b=F.get(h.first)??new Set;b.add(h.second),F.set(h.first,b);const C=F.get(h.second)??new Set;C.add(h.first),F.set(h.second,C)}const D=[],V=new Set;for(const h of N.edges){if(V.has(h))continue;const b=[h],C=[];for(V.add(h);b.length>0;){const L=b.pop();C.push(L);for(const w of F.get(L)??[])V.has(w)||(V.add(w),b.push(w))}C.sort((L,w)=>(I.get(L)??0)-(I.get(w)??0)),C.length>1&&D.push(C)}return D},"crossingComponents"),T=d(N=>[N.start,N.end].filter(F=>!!F),"endpointIdsFor"),m=d(N=>{const F=[];for(const D of E(N)){const V=new Set(D),h=new Set(D.flatMap(C=>T(C))),b=[...D];for(const C of x)V.has(C)||T(C).some(L=>h.has(L))&&b.push(C);b.sort((C,L)=>(I.get(C)??0)-(I.get(L)??0)),F.push(b)}return F},"pairSearchGroups"),S=d((N,F,D)=>M(N,new Map([[F,D]])),"crossingCountWithSingleReplacement"),A=d(N=>{const F=new Map;for(const D of N.pairs)F.set(D.first,(F.get(D.first)??0)+D.count),F.set(D.second,(F.get(D.second)??0)+D.count);return F},"currentCrossingsByEdge"),R=d(N=>N.slice(1).reduce((F,D,V)=>{const h=N[V];return F+Math.abs(D.x-h.x)+Math.abs(D.y-h.y)},0),"pathLength"),k=d((N=new Map)=>x.reduce((F,D)=>F+Qt(p(D,N)),0),"totalBends"),O=d((N=new Map)=>x.reduce((F,D)=>F+R(p(D,N)),0),"totalLength"),_=d((N,F,D=new Map)=>{const V=it(F);for(const h of x)if(h!==N){for(const b of V)for(const C of it(p(h,D)))if(ce(b,C,.5)>=_t)return!0}return!1},"pathHasSegmentConflict"),H=d((N,F)=>{const D=[N.start,N.end].filter(V=>!!V);for(const V of it(F))if(At(V.a,V.b,a,D,-2))return!0;return!1},"pathHitsNode"),P=d((N,F)=>{const D=ae(pt(F));it(D).length===D.length-1&&N.push(D)},"pushOrthogonalCandidate"),G=d(N=>N==="left"||N==="right","sideIsHorizontal"),j=d((N,F,D)=>{switch(F){case"left":return Math.min(N.x,D.x)-20;case"right":return Math.max(N.x,D.x)+20;case"top":return Math.min(N.y,D.y)-20;case"bottom":return Math.max(N.y,D.y)+20}},"localTrackForSameSide"),J=d((N,F,D,V)=>{const h=D==="left"||D==="top"?-1:1,b=[j(F,D,V),g[D]];for(const C of b)for(let L=0;L<=2;L++)P(N,ao(F,D,V,C+h*20*L))},"addSameSideCandidates"),dt=d((N,F,D,V,h)=>{for(const b of u(D))for(const C of u(h))P(N,[F,{x:b,y:F.y},{x:b,y:C},{x:V.x,y:C},V])},"addHorizontalToVerticalCandidates"),mt=d((N,F,D,V,h)=>{for(const b of u(D))for(const C of u(h))P(N,[F,{x:F.x,y:b},{x:C,y:b},{x:C,y:V.y},V])},"addVerticalToHorizontalCandidates"),kt=d((N,F,D,V,h)=>{const b=[...u("top"),...u("bottom")];for(const C of u(D))for(const L of u(h))for(const w of b)P(N,[F,{x:C,y:F.y},{x:C,y:w},{x:L,y:w},{x:L,y:V.y},V])},"addHorizontalPairCandidates"),Pt=d((N,F,D,V,h)=>{const b=[...u("left"),...u("right")];for(const C of u(D))for(const L of u(h))for(const w of b)P(N,[F,{x:F.x,y:C},{x:w,y:C},{x:w,y:L},{x:V.x,y:L},V])},"addVerticalPairCandidates"),Q=d(N=>{const F=new Set;return N.map(D=>pt(D)).filter(D=>{const V=D.map(h=>`${h.x.toFixed(3)},${h.y.toFixed(3)}`).join("|");return F.has(V)||D.length<2?!1:(F.add(V),!0)})},"dedupeCandidatePaths"),W=d((N,F,D,V)=>{const h=[],b=co(N,F,D,V,20,Z);b&&P(h,b),F===V&&J(h,N,F,D);const C=G(F),L=G(V);return C&&!L?dt(h,N,F,D,V):!C&&L?mt(h,N,F,D,V):C?kt(h,N,F,D,V):Pt(h,N,F,D,V),Q(h)},"buildCandidatesForSides"),et=d((N,F,D,V)=>{const h=[...u("left"),...u("right")],b=[...u("top"),...u("bottom")];for(const C of l){const L=Ie(V,C),w=C==="top"||C==="bottom"?u(C):b;for(const B of h){P(N,[F,D,{x:B,y:D.y},{x:B,y:L.y},L]);for(const U of w)P(N,[F,D,{x:B,y:D.y},{x:B,y:U},{x:L.x,y:U},L])}}},"addVerticalDepartureOuterTrackCandidates"),at=d((N,F,D,V)=>{const h=[...u("left"),...u("right")],b=[...u("top"),...u("bottom")];for(const C of l){const L=Ie(V,C),w=C==="left"||C==="right"?u(C):h;for(const B of b){P(N,[F,D,{x:D.x,y:B},{x:L.x,y:B},L]);for(const U of w)P(N,[F,D,{x:D.x,y:B},{x:U,y:B},{x:U,y:L.y},L])}}},"addHorizontalDepartureOuterTrackCandidates"),gt=d(N=>{const F=N.start,D=N.end,V=D?c.get(D):void 0;if(!F||!V)return[];const h=pt(N.points??[]);if(h.length<4)return[];const b=h[0],C=h[1],L=[];return wt(b,C,Z)?et(L,b,C,V):Tt(b,C,Z)&&at(L,b,C,V),L},"terminalPreservingOuterTrackCandidates"),xt=d(N=>{const F=N.start,D=N.end,V=F?c.get(F):void 0,h=D?c.get(D):void 0;if(!V||!h)return[];const b=[];for(const C of l){const L=Ie(V,C);for(const w of l)b.push(...W(L,C,Ie(h,w),w))}return b.push(...gt(N)),b},"candidatePathsFor"),vt=d(()=>new Map(x.map(N=>[N,it(p(N))])),"currentSegmentsByEdge"),Vt=d((N,F,D)=>{const V=new Set;for(const h of x){if(h===N)continue;const b=D.get(h)??it(p(h));F.some(C=>b.some(L=>ce(C,L,.5)>=_t))&&V.add(h)}return V},"sharedTrackConflictsFor"),jt=d((N,F,D,V)=>{const h=new Set;return xt(N).map(C=>ae(pt(C))).filter(C=>{if(H(N,C))return!1;const L=C.map(w=>`${w.x.toFixed(3)},${w.y.toFixed(3)}`).join("|");return h.has(L)||C.length<2?!1:(h.add(L),!0)}).map(C=>{const L=it(C);let w=0;for(const B of x)B!==N&&(w+=f(L,D.get(B)??it(p(B))));return{candidate:C,candidateSegments:L,crossings:F.count-(V.get(N)??0)+w,bends:Qt(C,Z),totalBends:Qt(C),length:R(C)}}).filter(({crossings:C})=>C<=F.count).sort((C,L)=>C.crossings-L.crossings||C.bends-L.bends||C.length-L.length).slice(0,48).map(C=>({path:C.candidate,segments:C.candidateSegments,sharedTrackConflicts:Vt(N,C.candidateSegments,D),totalBends:C.totalBends,length:C.length}))},"pairCandidatesFor"),Ut=d((N,F,D,V,h,b)=>{let C=0;for(const w of N.pairs)(w.first===F||w.second===F||w.first===V||w.second===V)&&(C+=w.count);let L=f(D.segments,h.segments);for(const w of x){if(w===F||w===V)continue;const B=b.get(w)??it(p(w));L+=f(D.segments,B)+f(h.segments,B)}return N.count-C+L},"pairCrossingCount"),te=d((N,F)=>{for(const D of N.sharedTrackConflicts)if(D!==F)return!1;return!0},"conflictsOnlyWith"),Se=d((N,F)=>N.segments.some(D=>F.segments.some(V=>ce(D,V,.5)>=_t)),"candidatesShareTrack"),de=d((N,F,D,V)=>te(F,D.edge)&&te(V,N.edge)&&!Se(F,V),"pairCandidatesAreCompatible"),Ce=d((N,F,D,V,h)=>{const b=Ut(N.current,F.edge,D,V.edge,h,N.baseSegments);if(!(b>=N.current.count))return{replacements:new Map([[F.edge,D.path],[V.edge,h.path]]),crossings:b,bends:N.currentBends-(N.baseBendsByEdge.get(F.edge)??0)-(N.baseBendsByEdge.get(V.edge)??0)+D.totalBends+h.totalBends,length:N.currentLength-(N.baseLengthByEdge.get(F.edge)??0)-(N.baseLengthByEdge.get(V.edge)??0)+D.length+h.length}},"scorePairReplacement"),dn=d((N,F)=>N.crossings{let h=V;for(const b of F.candidates)for(const C of D.candidates){if(!de(F,b,D,C))continue;const L=Ce(N,F,b,D,C);L&&dn(L,h)&&(h=L)}return h},"bestScoreForOptionPair"),hn=d(N=>{const F=k(),D=O(),V=vt(),h=A(N),b=new Map(x.map(q=>[q,Qt(p(q))])),C=new Map(x.map(q=>[q,R(p(q))])),L=new Map,w=m(N);for(const q of w)for(const z of q){if(L.has(z))continue;const Y=jt(z,N,V,h);Y.length>0&&L.set(z,{edge:z,candidates:Y})}let B={replacements:new Map,crossings:N.count,bends:F,length:D};const U={current:N,currentBends:F,currentLength:D,baseBendsByEdge:b,baseLengthByEdge:C,baseSegments:V};for(const q of w){const z=new Set(q.filter(ot=>N.edgeSet.has(ot))),Y=q.map(ot=>L.get(ot)).filter(ot=>!!ot);for(let ot=0;ot0?B.replacements:void 0},"bestPairedReplacement");for(let N=0;N<4;N++){const F=v(),D=F.count;if(D===0)return;let V,h,b=D,C=Number.POSITIVE_INFINITY;for(const w of F.edges){const B=Qt(p(w),Z);for(const U of xt(w)){const q=H(w,U),z=!q&&_(w,U),Y=S(F,w,U),ot=Qt(U,Z);q||z||!(Yb||Y===b&&ot>=C||(V=w,h=U,b=Y,C=ot)}}if(V&&h){V.points=h;continue}const L=hn(F);if(!L)return;for(const[w,B]of L)w.points=B}}d(vs,"resolveRenderedOrthogonalCrossings");var pe=.001,Wr=8;function Ls(t,e){const{nodeInfoById:n,realNodeRects:o}=an(e),s=["top","bottom","left","right"],r=20,i={top:Math.min(...o.map(f=>f.rect.top))-r,bottom:Math.max(...o.map(f=>f.rect.bottom))+r,left:Math.min(...o.map(f=>f.rect.left))-r,right:Math.max(...o.map(f=>f.rect.right))+r},c=d((f,y,v,M)=>{const E=[],T=co(f,y,v,M,r,pe);return T&&E.push(T),y===M&&E.push(ao(f,y,v,i[y])),E},"buildOrthogonalPathCandidates"),a=d((f,y)=>{for(let v=0;v{let M=0;const E=Re(f,pe),T=y.start,m=y.end;for(const S of t){if(S===y||S.isLayoutOnly)continue;const A=S.start,R=S.end;if(!v&&T&&m&&(A===T||A===m||R===T||R===m))continue;const k=S.points;if(!(!k||k.length<2))for(const O of E)for(const _ of Re(k,pe)){if(fo(O.a,O.b,_.a,_.b,pe,pe)){M++;continue}ce(O,_,pe)>=Wr&&M++}}return M},"pathConflictCount"),g=4,x=d((f,y)=>{const v=Math.abs(f.y-y.rect.top),M=Math.abs(f.y-y.rect.bottom),E=Math.abs(f.x-y.rect.left),T=Math.abs(f.x-y.rect.right);let m="top",S=v;return M{const M=I.get(f)??[];M.push({side:y,edgeId:v}),I.set(f,M)},"addFaceClaim");for(const f of t){if(f.isLayoutOnly)continue;const y=f.points??[];if(y.length<1)continue;const v=f.id??"",M=f.start,E=f.end;if(M){const T=n.get(M);T&&u(M,x(y[0],T),v)}if(E){const T=n.get(E);T&&u(E,x(y[y.length-1],T),v)}}const p=d((f,y,v)=>I.get(f)?.some(M=>M.edgeId!==v&&M.side===y)??!1,"faceIsClaimed");for(const f of t){if(f.isLayoutOnly)continue;const y=f.points;if(!y||y.length<2)continue;const v=Qt(y,pe);if(v0){const mt=l(J,f,!0);if(mt>O||mt===O&&dt>=_)continue;O=mt,_=dt,k=J;continue}l(J,f)>R||dt<_&&(_=dt,k=J)}}}if(k){f.points=k;const H=I.get(M);H&&I.set(M,H.filter(G=>G.edgeId!==S));const P=I.get(E);P&&I.set(E,P.filter(G=>G.edgeId!==S)),u(M,x(k[0],T),S),u(E,x(k[k.length-1],m),S)}}}d(Ls,"simplifyDetouredEdges");var Kt=.001,Po=10,Ve=7;function $n(t,e){const n=e?0:t.length-1,o=e?1:-1,s=t[n],r=t[n+o];if(!s||!r)return;const i=r.x-s.x,c=r.y-s.y;if(!(Math.abs(i)+Math.abs(c)r&&Je(t,Es(r)))}d(zn,"labelOverlapsOwnMarker");function Ue(t,e){const n=[];for(const p of t){if(p.isLayoutOnly)continue;const f=p.points;if(!(!f||f.length<2))for(let y=0;y{const y=Tn(f,r);for(const{nodeId:v,rect:M}of o)if(v!==p&&Je(y,M))return!0;return!1},"labelOverlapsForeignNode"),l=d((p,f)=>{const y=Tn(f,r);for(const v of n)if(v.edgeId!==p&&cn(v.p1,v.p2,y))return!0;return!1},"labelOverlapsForeignEdge"),g=d((p,f,y)=>a(p,y)||l(f,y),"labelOverlapsAnything"),x=[],I=d(p=>{for(const{id:f,rect:y}of s)if(ts(y,p))return f},"findContainingLane"),u=d((p,f)=>x.some(y=>y.labelId!==p&&Je(f,y.rect)),"overlapsPlacedLabel");for(const p of t){if(p.isLayoutOnly)continue;const f=p.labelNodeId;if(!f)continue;const y=e.get(f);if(!y)continue;const v=p.points;if(!v||v.length<2)continue;const M=y.width??0,E=y.height??0;if(M<=0||E<=0)continue;const T=[];for(let Q=0;Q=Kt&>>=Kt||T.push({idx:Q,length:at+gt,orientation:at>=Kt?"horizontal":"vertical",midX:(W.x+et.x)/2,midY:(W.y+et.y)/2})}if(T.length===0)continue;const m=T.length>=3?T.filter(Q=>Q.idx>0&&Q.idx0?m:T,A=M>=E?"horizontal":"vertical",R=d(Q=>[...Q].sort((W,et)=>{const at=W.orientation===A,gt=et.orientation===A;if(at!==gt)return at?-1:1;const xt=W.length>=(W.orientation==="horizontal"?M:E)+2,vt=et.length>=(et.orientation==="horizontal"?M:E)+2;return xt!==vt?xt?-1:1:et.length-W.length}),"rankSegments"),k=T[0],O=T[T.length-1],_=[.5,.25,.75,.05,.95,.15,.85,.1,.9],H=d((Q,W)=>{const et=v[Q.idx],at=v[Q.idx+1];return{midX:et.x+(at.x-et.x)*W,midY:et.y+(at.y-et.y)*W}},"anchorAtT"),P=d((Q,W,et)=>Math.min(et,Math.max(W,Q)),"clamp"),G=d((Q,W)=>Q.midX>=W.left-Kt&&Q.midX<=W.right+Kt&&Q.midY>=W.top-Kt&&Q.midY<=W.bottom+Kt,"pointInsideRectInclusive"),j=d(Q=>{const W=Ae(Q.midX,Q.midY,M,E),et=I(W);if(et)return{laneId:et,anchor:Q,rect:W};const at=s.find(({rect:te})=>G(Q,te));if(!at)return;const gt=at.rect.left+M/2+i,xt=at.rect.right-M/2-i,vt=at.rect.top+E/2+i,Vt=at.rect.bottom-E/2-i;if(gt>xt||vt>Vt)return;const jt={midX:P(Q.midX,gt,xt),midY:P(Q.midY,vt,Vt)},Ut=Ae(jt.midX,jt.midY,M,E);return G(Q,Ut)?{laneId:at.id,anchor:jt,rect:Ut}:void 0},"placementForAnchor"),J=d((Q,W,et)=>Q.orientation==="horizontal"?Math.abs(W.midX-et.x):Math.abs(W.midY-et.y),"distanceAlongSegment"),dt=d((Q,W)=>{const at=(Q.orientation==="horizontal"?M/2:E/2)+c;if(Q===k){const gt=v[Q.idx];if(J(Q,W,gt)+Kt{const W=R(Q);for(const et of W)for(const at of _){const gt=H(et,at);if(!dt(et,gt))continue;const xt=j(gt);if(xt&&!zn(xt.rect,v)&&!u(f,xt.rect)&&!g(f,p.id,xt.rect))return{laneId:xt.laneId,anchor:xt.anchor}}},"tryPool"),kt=d((Q,W,et=!1)=>{const at=R(Q);for(const gt of at){const xt={midX:gt.midX,midY:gt.midY};if(W&&!dt(gt,xt))continue;const vt=j(xt);if(vt&&!zn(vt.rect,v)&&!u(f,vt.rect)&&!a(f,vt.rect)&&(et||!l(p.id,vt.rect)))return{laneId:vt.laneId,anchor:vt.anchor}}},"findLaneContainingFallback"),Pt=mt(S)??(S.lengthet.labelId===f);W>=0?x[W]={labelId:f,rect:Q}:x.push({labelId:f,rect:Q})}}}d(Ue,"anchorLabelsToPolyline");var Sn=1e-6,Kr=8,Bo=Kr/2,qr=3;function Vn(t,e){return t{const g=Vn(c,a);let x=0;const I=d(u=>{if(!u)return;const p=s.get(u);if(!p)return;const f=l==="x"?p.w/2:p.h/2;f>x&&(x=f)},"consider");I(i.labelNodeId);for(const u of t){if(u===i||u.isLayoutOnly)continue;const p=u.start,f=u.end;!p||!f||Vn(p,f)===g&&I(u.labelNodeId)}return x>0?x+qr:0},"labelClearanceFor");for(const i of t){if(i.isLayoutOnly)continue;const c=i.points;if(!ro(c,Sn))continue;const a=lo(i,n,Sn);if(!a)continue;const{srcId:l,dstId:g,srcInfo:x,dstInfo:I,collinearX:u,collinearY:p}=a;if(u===p)continue;let f,y;if(u){const m=I.cy>x.cy;f={x:x.cx,y:m?x.rect.bottom:x.rect.top},y={x:I.cx,y:m?I.rect.top:I.rect.bottom}}else{const m=I.cx>x.cx;f={x:m?x.rect.right:x.rect.left,y:x.cy},y={x:m?I.rect.left:I.rect.right,y:I.cy}}if(At(f,y,o,[l,g],1))continue;const M=r(i,l,g,u?"x":"y"),E=M>Bo?M:Bo,T=[0,E,-E];for(const m of T){const S={...f},A={...y};if(u){if(S.x+=m,A.x+=m,S.x<=x.rect.left||S.x>=x.rect.right||A.x<=I.rect.left||A.x>=I.rect.right)continue}else if(S.y+=m,A.y+=m,S.y<=x.rect.top||S.y>=x.rect.bottom||A.y<=I.rect.top||A.y>=I.rect.bottom)continue;if(!At(S,A,o,[l,g],1)&&!Ze(S,A,t,i,{epsilon:Sn})){i.points=[S,A];break}}}}d(Ts,"straightenCollinearSiblingDetours");function jn(t,e){const{realNodeRects:a,labelNodeRects:l}=me(e.values()),g=d((m,S)=>Re(S,.001).map(A=>({...A,edge:m,interior:A.index>=1&&A.index<=S.length-3})),"segmentsFor"),x=d(()=>{const m=[];for(const S of t){if(S.isLayoutOnly)continue;const A=S.points;!A||A.length<2||m.push(...g(S,pt(A)))}return m},"allSegments"),I=d((m,S)=>m.horizontal&&S.horizontal?zt(m.a.x,m.b.x,S.a.x,S.b.x)>=8&&Math.abs(m.a.y-S.a.y)<7:m.vertical&&S.vertical?zt(m.a.y,m.b.y,S.a.y,S.b.y)>=8&&Math.abs(m.a.x-S.a.x)<7:!1,"hasCrowdedParallelTrack"),u=d((m,S)=>{const A=m.start,R=m.end,k=g(m,S);if(k.length!==S.length-1)return!1;const O=[A,R].filter(H=>!!H),_=m.labelNodeId?[m.labelNodeId]:[];for(const H of k)if(At(H.a,H.b,a,O,-2)||At(H.a,H.b,l,_,-2))return!1;for(const H of t){if(H===m||H.isLayoutOnly)continue;const P=H.points;if(!(!P||P.length<2)){for(const G of k)for(const j of g(H,pt(P)))if(I(G,j)||le(G.a,G.b,j.a,j.b,.001))return!1}}return!0},"candidateIsSafe"),p=d((m,S)=>{const A=pt(m.edge.points??[]);if(A.length<4||m.index>=A.length-1)return;const R=A.map(k=>({...k}));if(m.horizontal)R[m.index].y+=S,R[m.index+1].y+=S;else if(m.vertical)R[m.index].x+=S,R[m.index+1].x+=S;else return;return g(m.edge,R).length===R.length-1?R:void 0},"shiftedCandidate"),f=d((m,S)=>({x:m.x??(S.left+S.right)/2,y:m.y??(S.top+S.bottom)/2}),"nodeCenter"),y=d(m=>{const S=m.edge,A=pt(S.points??[]);if(A.length!==4||m.index!==1)return;const R=S.start?e.get(S.start):void 0,k=S.end?e.get(S.end):void 0,O=R?qt(R):void 0,_=k?qt(k):void 0,H=A.slice(m.index+2);if(!(!R||!k||!O||!_||H.length===0))return{sourceCenter:f(R,O),targetCenter:f(k,_),sourceRect:O,tail:H}},"sourceDetourContextFor"),v=d((m,S,A,R,k,O)=>{const _=R.y>=A.y,H=_?k.bottom:k.top,P=H+(_?20:-20);if(_&&m.b.y<=P+.001||!_&&m.b.y>=P-.001)return;const G=m.a.x+S;return pt([{x:A.x,y:H},{x:A.x,y:P},{x:G,y:P},{x:G,y:m.b.y},...O],.001)},"verticalSourceDetour"),M=d((m,S,A,R,k,O)=>{const _=R.x>=A.x,H=_?k.right:k.left,P=H+(_?20:-20);if(_&&m.b.x<=P+.001||!_&&m.b.x>=P-.001)return;const G=m.a.y+S;return pt([{x:H,y:A.y},{x:P,y:A.y},{x:P,y:G},{x:m.b.x,y:G},...O],.001)},"horizontalSourceDetour"),E=d((m,S)=>{const A=y(m);if(A){if(m.vertical)return v(m,S,A.sourceCenter,A.targetCenter,A.sourceRect,A.tail);if(m.horizontal)return M(m,S,A.sourceCenter,A.targetCenter,A.sourceRect,A.tail)}},"sourceDetourCandidate"),T=[-7,7,-14,14,-21,21];for(let m=0;m<12;m++){const S=x();let A=!1;for(let R=0;RP.interior);for(const P of H){for(const G of T){const j=p(P,G);if(j&&u(P.edge,j)){P.edge.points=j,A=!0;break}const J=E(P,G);if(J&&u(P.edge,J)){P.edge.points=J,A=!0;break}}if(A)break}}if(!A)return}}d(jn,"nudgeSharedInteriorSubpaths");function ws(t,e,n,o){const s=e.x-t.x,r=e.y-t.y,i=o.x-n.x,c=o.y-n.y,a=s*c-r*i;if(Math.abs(a)<1e-10)return!1;const l=n.x-t.x,g=n.y-t.y,x=(l*c-g*i)/a,I=(l*r-g*s)/a,u=.01;return x>u&&x<1-u&&I>u&&I<1-u}d(ws,"segmentsIntersect");function As(t){const e=t.nodes??[],n=t.edges??[],o=[];if(!n.length||!e.length)return o;const s=es(e),r=[];for(const c of n){if(c.isLayoutOnly)continue;const a=c.points;if(!a||a.length<2)continue;const l=c.start,g=c.end,x=c.labelNodeId,I=c.id??`${l}->${g}`;for(const u of s)if(!(u.nodeId===l||u.nodeId===g)&&!(x&&u.nodeId===x)){for(let p=0;p0){const c=o.filter(l=>l.type==="edge-node-overlap").length,a=o.filter(l=>l.type==="edge-edge-crossing").length;Ke.warn(`[SWIMLANE_VALIDATE] ${o.length} issue(s) detected: ${c} edge-node overlap(s), ${a} edge crossing(s)`);for(const l of o)Ke.warn(`[SWIMLANE_VALIDATE] ${l.type}: ${l.detail}`)}return o}d(As,"validateSwimlanesLayout");function Rs(t,e){const n=t.nodes??[],o=t.edges??[],s=n.filter(c=>!c.isGroup);if((e==="LR"||e==="RL")&&s.length>0&&!ms(t,e)||e==="BT"&&s.length>0&&!ps(t))return;for(const c of o){if(c.isLayoutOnly)continue;const a=c.points;!a||a.length<2||(c.points=ae(Qe(a)))}Ls(o,n),Ts(o,n),ys(o,n);const r=new Map;for(const c of n)r.set(String(c.id),c);Ue(o,r),is(o,r),xs(o,r),jn(o,r),bs(o,r),Ms(o,r),Xn(o,r),Is(o,r);const i=d(()=>{vs(o,r),Ss(o,r),Cs(o,r),Ue(o,r),Dn(o,r),Xn(o,r),Ue(o,r),Dn(o,r)},"finalizeRenderedEdges");i(),jn(o,r),i(),Yn(o,r),Gn(o,r),Yn(o,r),Gn(o,r)}d(Rs,"postProcessSwimlaneLayout");function ye(t){const e=new Map(t.nodeById),n=new Set,o=[];for(const r of t.edges){if(!e.has(r.src)||!e.has(r.dst))continue;const i=`${r.id}:${r.src}->${r.dst}`;n.has(i)||(n.add(i),o.push(r))}return{nodes:[...e.keys()],edges:o,layout:t.layout,nodeById:e}}d(ye,"normalizeGraph");function mo(t,e){return t.edges.filter(n=>n.dst===e)}d(mo,"incoming");function Ns(t){const e=new Map;for(const n of t.nodes)e.set(n,[]);for(const n of t.edges)e.get(n.src).push(n.dst);return e}d(Ns,"buildSuccessorMap");function yo(t){const e=Ns(t);for(const n of e.values())n.sort((o,s)=>o.localeCompare(s));return e}d(yo,"buildSortedSuccessorMap");function xo(t){const e=new Map;for(const n of t.nodes)e.set(n,0);for(const n of t.edges)e.set(n.dst,(e.get(n.dst)??0)+1);return e}d(xo,"buildInDegreeMap");function bo(t){return[...t.entries()].filter(([,e])=>e===0).map(([e])=>e).sort((e,n)=>e.localeCompare(n))}d(bo,"sortedZeroInDegreeNodes");function ln(t,e=()=>!0){const n=new Map,o=new Map;for(const s of t.nodes)n.set(s,[]),o.set(s,[]);for(const s of t.edges)e(s)&&(o.get(s.src).push(s.dst),n.get(s.dst).push(s.src));return{preds:n,succs:o}}d(ln,"buildPredecessorSuccessorMaps");function Mo(t,e,n,o){let s=0;for(const i of t.nodes)o?.skipGroups&&t.nodeById.get(i)?.isGroup||(s=Math.max(s,n[i]??0));const r=Array.from({length:s+1},()=>[]);for(const i of e)o?.skipGroups&&t.nodeById.get(i)?.isGroup||r[Math.max(0,n[i]??0)].push(i);return r}d(Mo,"buildLayersFromRanks");function Be(t){const e=xo(t),n=bo(e),o=[],s=yo(t);for(;n.length;){const r=n.shift();o.push(r);for(const i of s.get(r)??[])if(e.set(i,(e.get(i)??0)-1),(e.get(i)??0)===0){let c=0;for(;c{if(s-o<=1)return 0;const r=o+s>>1;let i=n(o,r)+n(r,s),c=o,a=r,l=o;for(;c=s||cx.dst===I.dst?x.id.localeCompare(I.id):x.dst.localeCompare(I.dst));const o=Object.create(null);for(const g of e.nodes)o[g]=0;const s=[],r=d(g=>{o[g]=1;for(const x of n.get(g)??[]){const I=x.dst;o[I]===0?r(I):o[I]===1&&s.push(x)}o[g]=2},"dfs"),i=[...e.nodes].sort((g,x)=>g.localeCompare(x));for(const g of i)o[g]===0&&r(g);const c=new Set(s.map(g=>`${g.id}:${g.src}->${g.dst}`)),a=e.edges.map(g=>c.has(`${g.id}:${g.src}->${g.dst}`)?{id:g.id,src:g.dst,dst:g.src,weight:g.weight,ref:g.ref}:g);return{acyclic:{nodes:[...e.nodes],edges:a,layout:e.layout,nodeById:new Map(e.nodeById)},reversed:s}}d(Os,"removeCycles_DFS");function Ps(t){const e=new Map,n=d(o=>{if(e.has(o))return e.get(o);const s=t.nodeById.get(o);if(!s)return e.set(o,null),null;const r=s.parentId;if(!r)return e.set(o,null),null;const c=n(r)??r;return e.set(o,c),c},"resolve");for(const o of t.nodes)n(o);return e}d(Ps,"buildTopLaneMap");function fe(t){const e=Ps(t);return n=>e.get(n)??null}d(fe,"createTopLaneResolver");function fn(t){const e=[];for(const n of t.layout.nodes??[])n.isGroup&&!n.parentId&&e.push(n.id);return[...new Set(e)].reverse()}d(fn,"buildTopLaneOrder");function So(t,e){const n=fn(t);if(!e||e.length===0)return n;const o=new Set(n),s=new Set,r=[];for(const i of e)!o.has(i)||s.has(i)||(s.add(i),r.push(i));for(const i of n)s.has(i)||r.push(i);return r}d(So,"resolveTopLaneOrder");var Jr={EPSILON:1e-6},sn={GRAVITY_ITERATIONS:8,MAX_CROSSING_OPTIMIZATION_PASSES:4,DEFAULT_COMPACT_SINGLE_INPUT:!0},ko={DEFAULT_LAYER_GAP:100,DEFAULT_NODE_GAP:40};function Bs(t,e){const n=ye(t),o=e?.laneOf??(()=>null),s=e?.rankHint,{preds:r}=ln(n);for(const m of r.values())m.sort((S,A)=>S.localeCompare(A));const i=Be(n)??[...n.nodes].sort((m,S)=>m.localeCompare(S)),c=new Map;for(const[m,S]of i.entries())c.set(S,m);const a=new Map,l=new Map;for(const m of n.nodes)l.set(m,[]);for(const m of i){const S=(r.get(m)??[]).filter(A=>a.has(A));if(S.length>0){const A=ks(m,S,{laneOf:o,rankHint:s,topoIndex:c});a.set(m,A),l.get(A).push(m)}else a.has(m)||a.set(m,null)}for(const m of n.nodes)a.has(m)||a.set(m,null);const g=new Set;for(const m of n.nodes)(a.get(m)??null)===null&&g.add(m);const x=[...g].sort((m,S)=>{const A=c.get(m)??0,R=c.get(S)??0;return A===R?m.localeCompare(S):A-R}),I=_s(n),u=new Map;for(const[m,S]of I.entries())u.set(m,[...S].sort((A,R)=>A.localeCompare(R)));const p=Fs(u),f=Ds(u),y=new Map;for(const m of n.nodes)y.set(m,[]);for(const m of f)for(const S of m.nodes){const A=y.get(S);A?A.push(m.id):y.set(S,[m.id])}const v=[],M=[],E=new Set,T=d(m=>{if(!E.has(m)){E.add(m),v.push(m);for(const S of l.get(m)??[])T(S);M.push(m)}},"walk");for(const m of x)T(m);for(const m of i)T(m);return{parent:a,children:l,roots:x,componentOf:p,blocks:f,nodeBlocks:y,adjacency:u,preorder:v,postorder:M,topologicalOrder:i}}d(Bs,"buildDrivingTree");function ks(t,e,n){const o=n.laneOf(t);return[...e].sort((r,i)=>{const c=n.laneOf(r),a=n.laneOf(i),l=c!=null&&c===o,g=a!=null&&a===o;if(l!==g)return l?-1:1;const x=n.rankHint?.[r],I=n.rankHint?.[i];if(x!=null&&I!=null&&x!==I)return I-x;const u=n.topoIndex.get(r)??0,p=n.topoIndex.get(i)??0;return u!==p?u-p:r.localeCompare(i)})[0]}d(ks,"chooseParent");function _s(t){const e=new Map;for(const n of t.nodes)e.set(n,new Set);for(const n of t.edges)e.get(n.src).add(n.dst),e.get(n.dst).add(n.src);return e}d(_s,"buildAdjacency");function Fs(t){const e=new Map;let n=0;for(const o of t.keys()){if(e.has(o))continue;const s=[o];for(;s.length>0;){const r=s.pop();if(!e.has(r)){e.set(r,n);for(const i of t.get(r)??[])e.has(i)||s.push(i)}}n++}return e}d(Fs,"assignComponents");function Ds(t){const e=new Map,n=new Map,o=[],s=[];let r=0;const i=d((c,a)=>{e.set(c,++r),n.set(c,r);for(const l of t.get(c)??[])l!==a&&(e.has(l)?(e.get(l)??0)<(e.get(c)??0)&&(o.push([c,l]),n.set(c,Math.min(n.get(c)??r,e.get(l)??r))):(o.push([c,l]),i(l,c),n.set(c,Math.min(n.get(c)??r,n.get(l)??r)),(n.get(l)??0)>=(e.get(c)??0)&&s.push(Hs(c,l,o,s.length))))},"visit");for(const c of t.keys())e.has(c)||i(c,null);return s}d(Ds,"computeBlocks");function Hs(t,e,n,o){const s=[],r=new Set;for(;n.length>0;){const i=n.pop();if(s.push(i),r.add(i[0]),r.add(i[1]),i[0]===t&&i[1]===e||i[0]===e&&i[1]===t)break}return{id:o,edges:s,nodes:[...r]}}d(Hs,"popBlock");function Xs(t,e,n){const o=[...t.nodes],s=new Map;for(const[M,E]of o.entries())s.set(E,M);const r=o.length,i=new Array(r).fill(-1),c=new Array(r).fill(0),a=[],l=new Set;for(const M of o){const E=n.parent.get(M)??null,T=s.get(M);T!=null&&E==null&&(i[T]=-1,c[T]=0,l.has(M)||(l.add(M),a.push(M)))}for(;a.length>0;){const M=a.shift(),E=s.get(M);if(E==null)continue;const T=n.children.get(M)??[];for(const m of T){if(l.has(m))continue;const S=s.get(m);S!=null&&(i[S]=E,c[S]=c[E]+1,l.add(m),a.push(m))}}for(const M of o){if(l.has(M))continue;const E=s.get(M);E!=null&&(i[E]=-1,c[E]=0,l.add(M))}const g=Math.max(1,Math.ceil(Math.log2(Math.max(1,r)))+1),x=Array.from({length:g},()=>new Array(r).fill(-1));for(let M=0;M{if(M===-1||E===-1)return-1;c[M]>m&1&&(M=x[m][M],M===-1))return-1;if(M===E)return M;for(let m=g-1;m>=0;m--){const S=x[m][M],A=x[m][E];S===-1||A===-1||S!==A&&(M=S,E=A)}return x[0][M]},"lcaIndex"),u=Array.from({length:r},()=>new Map);for(const M of t.edges){let E=M.src,T=M.dst,m=e[E],S=e[T];if(m==null||S==null||(m>S&&([E,T]=[T,E],[m,S]=[S,m]),m==null||S==null||m===S))continue;const A=s.get(E),R=s.get(T);if(A==null||R==null)continue;const k=I(A,R);if(k===-1)continue;const O=u[k];for(let _=m;_{if(E.size!==0)for(const[T,m]of E)M.set(T,(M.get(T)??0)+m)},"mergeInto"),y=new Set,v=d(M=>{const E=s.get(M);y.add(M);const T=E==null?void 0:u[E],m=T?new Map(T):new Map,S=n.children.get(M)??[];for(const A of S){const R=v(A),k=e[M];if(k!=null){let O=p.get(M);O||(O=new Map,p.set(M,O));let _=R.get(k)??0;const H=e[A];H!=null&&H>k&&(_+=1),O.set(A,_)}f(m,R)}return m},"dfs");for(const M of n.roots)y.has(M)||v(M);for(const M of o)y.has(M)||v(M);return p}d(Xs,"computeSubtreeCrossCounts");function Ys(t,e,n){const o=new Map,s=d(r=>{let i=n[r]??0;const c=[...e.get(r)??[]];c.sort(Co(n));for(const a of c){s(a);const l=o.get(a);l!=null&&(i=Math.min(i,l))}o.set(r,i)},"annotate");for(const r of t)s(r);return o}d(Ys,"annotateMinimumLayers");function Co(t){return(e,n)=>{const o=t[e]??0,s=t[n]??0;return o===s?e.localeCompare(n):o-s}}d(Co,"compareByRankThenId");function Gs(t,e,n,o){let s=0;for(const a of e){const l=n[a]??0;l>s&&(s=l)}const r=Array.from({length:s+1},()=>[]),i=new Set,c=d(a=>{if(i.has(a))return;i.add(a);const l=n[a]??0;r[l]||(r[l]=[]),r[l].push(a);for(const g of o(a))c(g)},"emit");for(const a of t)c(a);for(const a of e)if(!i.has(a)){const l=n[a]??0;r[l]||(r[l]=[]),r[l].push(a),i.add(a)}return r}d(Gs,"emitNodesInTreeOrder");function $s(t){const e=[];for(const n of t){const o=new Set,s=[];for(const r of n)o.has(r)||(o.add(r),s.push(r));e.push(s)}return e}d($s,"deduplicateLayers");function zs(t,e,n,o){return s=>{const r=t.get(s)??[];if(r.length===0)return[];const i=e[s]??0,c=[],a=[],l=n.get(s);for(const g of r){const x=o.get(g)??i;x>i?c.push({child:g,min:x}):a.push(g)}return c.sort((g,x)=>g.min===x.min?g.child.localeCompare(x.child):g.min-x.min),a.sort((g,x)=>{const I=l?.get(g)??0,u=l?.get(x)??0;if(I!==u)return I-u;const p=o.get(g)??i,f=o.get(x)??i;return p!==f?p-f:g.localeCompare(x)}),[...c.map(g=>g.child),...a]}}d(zs,"createChildOrderer");function rn(t,e,n){const o=Bs(t,{rankHint:e,laneOf:n}),{children:s,roots:r}=o;for(const x of t.nodes)s.has(x)||s.set(x,[]);const i=Xs(t,e,o),c=[...r].sort(Co(e)),a=Ys(c,s,e),l=zs(s,e,i,a);let g=Gs(c,t.nodes,e,l);return g=$s(g),g}d(rn,"buildMultitreeLayerOrder");function Vs(t,e,n){const o=new Set(t),s=new Set(e),r=Ne(e),i=[];for(const c of n)o.has(c.src)&&s.has(c.dst)&&i.push(r.get(c.dst));return Io(i)}d(Vs,"countCrossingsBetweenAdjacent");function Un(t,e,n){const o=[];for(const r of e){const i=n[r.src],c=n[r.dst];if(i==null||c==null||i===c)continue;let a=r.src,l=r.dst,g=i,x=c;i>c&&(a=r.dst,l=r.src,g=c,x=i);for(let I=g;I(n[I]??0)-(n[x]??0));for(const x of g){const I=n[x]??0;if(I===0)continue;let u=0;for(const v of o.get(x)??[])u=Math.max(u,(n[v]??0)+1);if(u>=I)continue;const p=I;n[x]=u;const f=rn(t,n,s),y=Un(f,t.edges,n);y(e[s]??0)-(e[r]??0)||s.localeCompare(r));for(const s of o){const r=n(s);if(!r)continue;const i=t.edges.filter(f=>f.src===s);if(i.length===0)continue;let c=!1,a=0;for(const f of i){const y=n(f.dst);y==null||y===r?c=!0:a++}if(a===0||c)continue;let l=0,g=!1;for(const f of t.edges){if(f.dst!==s)continue;const y=n(f.src);y&&(y===r?g=!0:l++)}if(l>0||!g)continue;const x=e[s]??0,I=x+a;let u=0;for(const f of t.edges)f.dst===s&&(u=Math.max(u,(e[f.src]??0)+1));const p=Math.max(x,u,I);p!==x&&(e[s]=p)}}d(Us,"adjustCrossLaneSources");function Ws(t,e){const n=ye(t),o=Be(n)??[...n.nodes].sort(),s=e?.compactSingleInput??!1,r=fe(n);let i=Object.create(null);for(const a of o){const l=mo(n,a),g=e?.ignoreCrossLaneEdges?l.filter(x=>{const I=r(x.src),u=r(a);return!I||!u?!0:I===u}):l;if(g.length===0)i[a]=0;else if(s&&g.length===1){const x=g[0].src,I=r(x),u=r(a);I!==u?i[a]=i[x]??0:i[a]=(i[x]??0)+1}else{let x=-1/0;for(const I of g)x=Math.max(x,(i[I.src]??0)+1);i[a]=x===-1/0?0:x}}return(e?.optimizeRanksByCrossings??!1)&&(i=js(n,i)),e?.ignoreCrossLaneEdges&&Us(n,i),{layers:rn(n,i,r),rankOf:i,dummy:new Set}}d(Ws,"assignLayers_LongestPath");function Ks(t,e){const n=ye(t),s={...Ws(n,{compactSingleInput:e?.compactSingleInput,ignoreCrossLaneEdges:e?.ignoreCrossLaneEdges,optimizeRanksByCrossings:e?.optimizeRanksByCrossings}).rankOf},r=fe(n),{preds:i,succs:c}=ln(n,p=>{if(e?.ignoreCrossLaneEdges){const f=r(p.src),y=r(p.dst);if(f&&y&&f!==y)return!1}return!0}),a=Be(n)??[...n.nodes],l=[...a].reverse(),g=d((p,f)=>{let y=0;for(const E of i.get(p)??[])y=Math.max(y,(s[E]??0)+1);let v=Number.POSITIVE_INFINITY;const M=c.get(p)??[];return M.length>0&&(v=Math.min(...M.map(E=>(s[E]??0)-1))),Number.isFinite(v)||(v=Math.max(y,f)),Math.min(Math.max(f,y),v)},"clampFeasible"),x=sn.GRAVITY_ITERATIONS,I=d(p=>{let f=!1;for(const y of p){const v=i.get(y)??[],M=c.get(y)??[];if(v.length===0&&M.length===0)continue;const E=v.length>0?v.reduce((A,R)=>A+(s[R]??0)+1,0)/v.length:s[y]??0,T=M.length>0?M.reduce((A,R)=>A+(s[R]??0)-1,0)/M.length:s[y]??0,m=Math.round((E+T)/2),S=g(y,m);S!==s[y]&&(s[y]=S,f=!0)}return f},"relaxOrder");for(let p=0;p0){const y=Math.min(...f.map(v=>(s[v]??0)-1));(s[p]??0)>y&&(s[p]=y)}}return{layers:Mo(n,a,s),rankOf:s,dummy:new Set}}d(Ks,"assignLayers_Gravity");function qs(t){const e=xo(t),n=yo(t);let o=bo(e);const s=[];for(;o.length>0;){const r=[];for(const i of o){s.push(i);for(const c of n.get(i)??[])e.set(c,(e.get(c)??0)-1),(e.get(c)??0)===0&&r.push(c)}o=r.sort((i,c)=>i.localeCompare(c))}return s.length===t.nodes.length?s:null}d(qs,"topoSortByGenerationIfAcyclic");function Js(t,e){const n=ye(t),o=e?.direction==="LR"?qs(n)??[...n.nodes].sort():Be(n)??[...n.nodes].sort(),s=fe(n),r=d(g=>s(g)??g,"laneOf"),i=Object.create(null),c=new Map,a=d((g,x)=>e?.ignoreCrossLaneEdges??!0?r(g)===r(x)?1:0:1,"edgeWeight");for(const g of o){if(n.nodeById.get(g)?.isGroup)continue;const I=mo(n,g);let u=0;if(I.length>0)for(const v of I){const M=v.src,E=i[M]??0;u=Math.max(u,E+a(M,g))}const p=r(g),f=c.get(p)??0,y=Math.max(u,f);i[g]=y,c.set(p,y+1)}return{layers:Mo(n,o,i,{skipGroups:!0}),rankOf:i,dummy:new Set}}d(Js,"assignLayers_LaneAwareCompact");function Zs(t,e){const n=ye(e),{rankOf:o}=t,s=t.layers.map(u=>[...u]),r=new Set(t.dummy?[...t.dummy]:[]);let i=0;const c=new Map(n.nodeById),a=d(u=>{const p=`placeholder-${i++}`,f={id:p,isGroup:!1,isDummy:!0,width:0,height:0};for(c.set(p,f),r.add(p);s.length<=u;)s.push([]);return s[u].push(p),o[p]=u,p},"addDummyAt"),l=[...n.edges].sort((u,p)=>u.id===p.id?u.src===p.src?u.dst.localeCompare(p.dst):u.src.localeCompare(p.src):u.id.localeCompare(p.id)),g=[];for(const u of l){const p=o[u.src]??0,f=o[u.dst]??0;if(f-p<=1){g.push(u);continue}let y=u.src;for(let M=p+1,E=0;M!n.nodes.includes(u))],edges:g,layout:n.layout,nodeById:c};return{layering:{layers:s,rankOf:o,dummy:r},graphWithDummies:I}}d(Zs,"makeProperLayering");function Wn(t){const e=t.length;if(e===0)return Number.POSITIVE_INFINITY;const n=[...t].sort((o,s)=>o-s);return e%2===1?n[(e-1)/2]:.5*(n[e/2-1]+n[e/2])}d(Wn,"median");function Kn(t){return t.length===0?Number.POSITIVE_INFINITY:t.reduce((n,o)=>n+o,0)/t.length}d(Kn,"barycenter");function Qs(t,e,n,o){const s=new Map;for(const r of t)s.set(r,[]);for(const r of n)o==="down"?e.has(r.src)&&s.has(r.dst)&&s.get(r.dst).push(e.get(r.src)):e.has(r.dst)&&s.has(r.src)&&s.get(r.src).push(e.get(r.dst));return s}d(Qs,"neighborPositionsFor");function tr(t,e,n){const o=n.get(t)??0,s=n.get(e)??0;return o!==s?o-s:t.localeCompare(e)}d(tr,"currentOrderTieBreak");function qn(t,e,n){const o=new Set(t),s=new Set(e),r=Ne(t),i=Ne(e),c=[];for(const l of n)o.has(l.src)&&s.has(l.dst)&&c.push({u:r.get(l.src),v:i.get(l.dst)});c.sort((l,g)=>l.u===g.u?l.v-g.v:l.u-g.u);const a=c.map(l=>l.v);return Io(a)}d(qn,"countCrossingsBetweenAdjacent");function We(t,e,n){return[...t].sort((o,s)=>{const r=Wn(e.get(o)??[]),i=Wn(e.get(s)??[]);return r===i?tr(o,s,n):isFinite(r)?isFinite(i)?r-i:-1:1})}d(We,"sortByHeuristic");function Jn(t,e,n,o,s,r){const i=Ne(t),c=Ne(e),a=Qs(e,i,n,o);if(!s||!r||r.length===0)return We(e,a,c);const l=new Map;for(const I of e){const u=s(I),p=l.get(u)??[];p.push(I),l.set(u,p)}const g=[];for(const I of r){const u=l.get(I);if(!u||u.length===0)continue;const p=We(u,a,c);g.push(...p)}const x=l.get(null);if(x&&x.length>0){const I=We(x,a,c);for(const u of I){const p=Kn(a.get(u)??[]);let f=g.length;if(isFinite(p))for(const[y,v]of g.entries()){const M=Kn(a.get(v)??[]);if(pi.has(f.src)&&c.has(f.dst)),g=a?n.filter(f=>c.has(f.src)&&a.has(f.dst)):void 0,x=d(f=>{let y=qn(t,f,l);return g&&o&&(y+=qn(f,o,g)),y},"crossingScore"),I=s?new Map:null;if(s&&I)for(const f of e)I.set(f,s(f));let u=!0,p=x(r);for(;u;){u=!1;for(let f=0;f+1[...c]),s=e.edges,r=fe(e),i=So(e,n?.laneOrder);for(let c=0;c<3;c++){for(let a=1;a=0;a--)o[a]=Jn(o[a+1],o[a],s,"up",r,i),o[a]=Zn(o[a+1],o[a],s,o[a-1],r)}return{layers:o}}d(er,"orderLayers");function nr(t,e,n){const o=n?.layerGap??ko.DEFAULT_LAYER_GAP,s=n?.nodeGap??ko.DEFAULT_NODE_GAP,r=n?.laneGap??s*2,i=n?.direction??"TB",c=i==="LR"||i==="RL",a=t.layers,l=Object.create(null),g=Object.create(null),x=d(O=>e.nodeById.get(O),"getNode"),I=d(O=>x(O)?.width??0,"getWidth"),u=d(O=>x(O)?.height??0,"getHeight"),p=fe(e),f=So(e,n?.laneOrder),y=a.map(O=>O.reduce((_,H)=>Math.max(_,u(H)),0)),v=[];if(c)for(let O=0;O+1Math.max(mt,I(kt)),0),H=a[O+1].reduce((mt,kt)=>Math.max(mt,I(kt)),0),P=y[O],G=y[O+1],j=P/2+G/2,J=(_+H)/2,dt=Math.max(0,J-j-o);v.push(dt)}const M=new Set;for(const O of a)for(const _ of O)M.add(p(_));const E=M.has(null),T=f.filter(O=>M.has(O)),m=[...E?[null]:[],...T],S=Object.create(null);for(const O of T)S[O]=0;E&&(S.null=0);for(const O of a){const _=Object.create(null),H=[];for(const P of O){const G=p(P);G===null?H.push(P):(_[G]||=[]).push(P)}for(const[P,G]of Object.entries(_)){const j=G.reduce((J,dt)=>J+I(dt),0)+s*Math.max(0,G.length-1);S[P]=Math.max(S[P]??0,j)}if(E&&H.length){const P=H.reduce((G,j)=>G+I(j),0)+s*Math.max(0,H.length-1);S.null=Math.max(S.null??0,P)}}const A=new Map;{const O=m.map(P=>(P===null?S.null:S[P])??0);let H=-(O.reduce((P,G)=>P+G,0)+r*Math.max(0,m.length-1))/2;for(let P=0;PI(Q)),kt=mt.reduce((Q,W)=>Q+W,0)+s*(J.length-1);let Pt=dt-kt/2;for(const[Q,W]of J.entries()){const et=mt[Q];l[W]=Pt+et/2,g[W]=R+H/2,Pt+=et+s}}}const G=v[O]??0;R+=H+o+G}const k=new Map;for(const O of e.edges){const _=O.ref.id;k.has(_)||k.set(_,[]),k.get(_).push(O)}for(const[,O]of k){if(O.length===0)continue;const _=O[0].ref,H=_.start,P=_.end;if(H==null||P==null)continue;const G=Math.round(((l[H]??0)+(l[P]??0))/2),j=new Set;for(const J of O)j.add(J.src),j.add(J.dst);for(const J of j){if(J===H||J===P)continue;e.nodeById.get(J)?.isDummy&&(l[J]=G)}}return{x:l,y:g}}d(nr,"assignCoordinates");var or=8;function sr(t){let e=2166136261;for(let n=0;n>>0}d(sr,"hashString");function rr(t){let e=t>>>0;return()=>{e+=1831565813;let n=e;return n=Math.imul(n^n>>>15,n|1),n^=n+Math.imul(n^n>>>7,n|61),((n^n>>>14)>>>0)/4294967296}}d(rr,"mulberry32");function ir(t,e){const n=[...t],o=rr(e);for(let s=n.length-1;s>0;s--){const r=Math.floor(o()*(s+1));[n[s],n[r]]=[n[r],n[s]]}return n}d(ir,"deterministicShuffle");function cr(t,e){let n=0;for(const[o,s]of t.entries())n+=Math.abs(o-(e.get(s)??o));return n}d(cr,"sourceDistance");function Qn(t,e){const n=new Map;for(const[s,r]of t.entries())n.set(r,s);let o=0;for(const{a:s,b:r,weight:i}of e){const c=n.get(s),a=n.get(r);c==null||a==null||(o+=i*Math.abs(c-a))}return o}d(Qn,"laneArrangementCost");function ar(t){const e=fn(t);if(e.length<2)return[];const n=new Map(e.map((r,i)=>[r,i])),o=fe(t),s=new Map;for(const r of t.layout.edges??[]){if(r.isLayoutOnly)continue;const i=typeof r.start=="string"?r.start:void 0,c=typeof r.end=="string"?r.end:void 0;if(!i||!c||!t.nodeById.has(i)||!t.nodeById.has(c))continue;const a=o(i),l=o(c);if(!a||!l||a===l)continue;const g=n.get(a),x=n.get(l);if(g==null||x==null)continue;const[I,u]=g<=x?[a,l]:[l,a],p=`${I}\0${u}`,f=s.get(p);f?f.weight++:s.set(p,{a:I,b:u,weight:1})}return[...s.values()]}d(ar,"buildWeightedLaneEdges");function to(t,e,n){const o=[...t];let s=Qn(o,e),r=!0,i=0;const c=Math.max(1,o.length);for(;r&&is.a===r.a?s.b.localeCompare(r.b):s.a.localeCompare(r.a)).map(({a:s,b:r,weight:i})=>`${s}:${r}:${i}`).join("|");return sr(`${t.join("|")}#${o}#${n}`)}d(fr,"seedForRestart");function dr(t,e={}){const n=fn(t);if(n.length<2)return n;const o=ar(t);if(o.length===0)return n;const s=new Map(n.map((c,a)=>[c,a]));let r=to(n,o,s);const i=Math.max(0,e.restarts??or);for(let c=0;cct&&a*3>=c?i>0?"bottom":"top":c>ct?r>0?"right":"left":n}d(eo,"chooseOrthogonalSide");function no(t,e){return Math.abs(t.to-e.from)h.isGroup&&!h.parentId);for(const h of l){const b={id:h.id},C=d(L=>{i.set(L.id,b),n.filter(w=>w.parentId===L.id).forEach(C)},"assignLane");C(h)}const g=n.filter(h=>!h.isGroup&&!h.isEdgeLabel).map(h=>{const b=h.width??10,C=h.height??10,L=h.x??0,w=h.y??0,B=Zr;return{nodeId:h.id,minX:L-b/2-B,maxX:L+b/2+B,minY:w-C/2-B,maxY:w+C/2+B,visualXHalfExtent:a?C/2+B:b/2+B}}),x=d((h,b,C,L)=>{let w=c.find(B=>B.orientation===h&&Math.abs(B.coord-b)<1);return w||(w={id:`pipe-${h}-${b.toFixed(0)}`,orientation:h,coord:b,spanMin:C,spanMax:L,tracks:[]},c.push(w)),w.spanMin=Math.min(w.spanMin,C),w.spanMax=Math.max(w.spanMax,L),w},"getOrAddPipe"),I=d((h,b)=>{const C=h.width??10,L=h.height??10,w=h.x??0,B=h.y??0;switch(b){case"top":return{x:w,y:B-L/2};case"bottom":return{x:w,y:B+L/2};case"left":return{x:w-C/2,y:B};case"right":return{x:w+C/2,y:B}}},"portForSide"),u=d((h,b,C)=>I(h,eo(h,b,C?"bottom":"top")),"getOrthogonalPort"),p=[],f=[],y=new Set,v=1e3,M=d((h,b,C)=>{if(p.length===0)return 0;const L=Math.abs(b.y-C.y)z||Y.from-ct<=U&&Y.to+ct>=U&&(B+=v)}else if(w){const U=b.x,q=Math.min(b.y,C.y)-ct,z=Math.max(b.y,C.y)+ct;if(z<=q)return 0;for(const Y of p)Y.edgeIndex===h||Y.orientation!=="horizontal"||Y.pipe.coordz||Y.from-ct<=U&&Y.to+ct>=U&&(B+=v)}return B},"crossingPenalty"),E=s.map((h,b)=>{if(!h.start||!h.end)return{idx:b,crossLane:0,dx:0,dy:0};const C=r.get(h.start),L=r.get(h.end),w=i.get(h.start),B=i.get(h.end),U=w&&B&&w.id!==B.id?1:0,q=C&&L?Math.abs((L.x??0)-(C.x??0)):0,z=C&&L?Math.abs((L.y??0)-(C.y??0)):0;return{idx:b,crossLane:U,dx:q,dy:z}}).sort((h,b)=>{if(h.crossLane!==b.crossLane)return b.crossLane-h.crossLane;const C=h.dx+h.dy,L=b.dx+b.dy;return Math.abs(C-L)>1?C-L:h.idx-b.idx}).map(h=>h.idx),T=d((h,b,C,L)=>{const w=Math.min(h.x,b.x),B=Math.max(h.x,b.x),U=Math.min(h.y,b.y),q=Math.max(h.y,b.y);return!!g.find(Y=>C&&Y.nodeId===C||L&&Y.nodeId===L?!1:Math.abs(h.x-b.x)>ct?Y.minYh.y&&Y.maxX>w&&Y.minXh.x&&Y.maxY>U&&Y.minYeo(h,b,"bottom"),"determineSide"),R=new Map;for(const[h,b]of s.entries()){if(!b.start||!b.end||b.start===b.end||b.points&&b.points.length>0)continue;const C=r.get(b.start),L=r.get(b.end);if(!C||!L)continue;const w=(L.x??0)-(C.x??0),B=(L.y??0)-(C.y??0);R.set(h,{edgeIdx:h,srcId:b.start,dstId:b.end,srcSide:A(C,{x:L.x??0,y:L.y??0}),dstSide:A(L,{x:C.x??0,y:C.y??0}),absDx:Math.abs(w),absDy:Math.abs(B),dxSign:Math.sign(w),dySign:Math.sign(B)})}const k=d(h=>h.srcSide==="top"||h.srcSide==="bottom"?h.absDx===0?1/0:h.absDy/h.absDx:h.absDy===0?1/0:h.absDx/h.absDy,"preferenceStrength"),O=d(h=>h.srcSide==="top"||h.srcSide==="bottom"?h.dxSign>=0?"right":"left":h.dySign>=0?"bottom":"top","secondarySide"),_=new Map;for(const h of R.values()){const b=`${h.srcId}:${h.srcSide}`;_.has(b)||_.set(b,[]),_.get(b).push(h)}const H=new Map,P=d((h,b)=>`${h}:${b}`,"loadKey");for(const h of R.values())H.set(P(h.srcId,h.srcSide),(H.get(P(h.srcId,h.srcSide))??0)+1),H.set(P(h.dstId,h.dstSide),(H.get(P(h.dstId,h.dstSide))??0)+1);for(const h of _.values())if(!(h.length<2)){h.sort((b,C)=>{const L=k(b),w=k(C);return Math.abs(L-w)>1e-9?w-L:b.edgeIdx-C.edgeIdx});for(let b=1;b=w||(H.set(P(C.srcId,C.srcSide),w-1),H.set(P(C.srcId,L),B+1),C.srcSide=L)}}const G=d(h=>{const b=h?.shape;return b==="question"||b==="diamond"},"isDiamondNode"),j=new Map;for(const h of R.values())j.has(h.dstId)||j.set(h.dstId,new Set),j.get(h.dstId).add(h.dstSide);for(const h of R.values()){if(!G(r.get(h.srcId)))continue;const b=j.get(h.srcId);if(!b?.has(h.srcSide))continue;const C=O(h);if(b.has(C)||(H.get(P(h.srcId,C))??0)>0)continue;const L=H.get(P(h.srcId,h.srcSide))??0;H.set(P(h.srcId,h.srcSide),Math.max(0,L-1)),H.set(P(h.srcId,C),1),h.srcSide=C}for(const h of R.values()){const{edgeIdx:b,srcId:C,dstId:L,srcSide:w,dstSide:B}=h,U=r.get(C),q=r.get(L),z=`${C}:${w}:src`,Y=w==="top"||w==="bottom"?q.x??0:q.y??0;m.has(z)||m.set(z,[]),m.get(z).push({edgeIdx:b,oppositeCoord:Y});const ot=`${L}:${B}:dst`,rt=B==="top"||B==="bottom"?U.x??0:U.y??0;m.has(ot)||m.set(ot,[]),m.get(ot).push({edgeIdx:b,oppositeCoord:rt})}const J=new Map,dt=8;for(const[h,b]of m){if(b.length<2)continue;b.sort((Lt,Dt)=>Lt.oppositeCoord-Dt.oppositeCoord);const C=h.split(":"),L=C.slice(0,-2).join(":"),w=C[C.length-2],B=C[C.length-1],U=r.get(L);if(!U)continue;const z=w==="left"||w==="right"?U.height??10:U.width??10,Y=U.shape,rt=Y==="question"||Y==="diamond"?z*.3:z,tt=Math.min(20,Math.max(dt,rt/(b.length+1))),Rt=-(tt*(b.length-1))/2;for(const[Lt,Dt]of b.entries()){const Jt=Rt+Lt*tt,gn=`${Dt.edgeIdx}:${B}`;J.set(gn,Jt)}}const mt=d(h=>!!s[h]?.labelNodeId,"edgeHasLabelNode"),kt=d((h,b)=>h?(m.get(`${h}:${b}:src`)??[]).some(({edgeIdx:C})=>mt(C))||(m.get(`${h}:${b}:dst`)??[]).some(({edgeIdx:C})=>mt(C)):!1,"faceHasLabelNode"),Pt=d((h,b,C)=>b==="top"||b==="bottom"?{x:h.x+C,y:h.y}:{x:h.x,y:h.y+C},"applyPortOffset"),Q=d((h,b,C)=>{const L=R.get(h),w={x:C.x??0,y:C.y??0},B={x:b.x??0,y:b.y??0},U=L?.srcSide??A(b,w),q=L?.dstSide??A(C,B);let z=L?I(b,L.srcSide):u(b,w,!0),Y=L?I(C,L.dstSide):u(C,B,!1);const ot=J.get(`${h}:src`),rt=J.get(`${h}:dst`);return ot!==void 0&&(z=Pt(z,U,ot)),rt!==void 0&&(Y=Pt(Y,q,rt)),{pSrcPort:z,pDstPort:Y,srcSide:U,dstSide:q}},"portsForEdge");for(const h of E){const b=s[h];if(f[h]=[],!b.start||!b.end||b.points&&b.points.length>0||b.start===b.end)continue;const C=r.get(b.start),L=r.get(b.end);if(!C||!L)continue;const{pSrcPort:w,pDstPort:B,srcSide:U,dstSide:q}=Q(h,C,L),z={...w},Y={...B},ot=U==="top"||U==="bottom",rt=q==="top"||q==="bottom";if(ot){const X=w.y>(C.y??0);z.y=X?w.y+ne:w.y-ne}else{const X=w.x>(C.x??0);z.x=X?w.x+ne:w.x-ne}if(rt){const X=B.y>(L.y??0);Y.y=X?B.y+ne:B.y-ne}else{const X=B.x>(L.x??0);Y.x=X?B.x+ne:B.x-ne}const st=d((X,$)=>{for(const K of g)if(!$.includes(K.nodeId)&&X.x>K.minX&&X.xK.minY&&X.y{if(Ct){const Nt=X.y>($.y??0);return{x:(K.x??0)>=X.x?lt.maxX+be:lt.minX-be,y:Nt?lt.maxY+Te:lt.minY-Te,leavesPositiveSide:Nt}}const bt=X.x>($.x??0),Et=(K.y??0)>=X.y;return{x:bt?lt.maxX+be:lt.minX-be,y:Et?lt.maxY+Te:lt.minY-Te,leavesPositiveSide:bt}},"obstacleDetour");let yt=[];const Rt=[b.start,b.end],Lt=st(z,Rt);if(Lt.inside&&Lt.obstacle){const X=Lt.obstacle;if(ot){const $=tt(w,C,L,X,!0);z.x=$.x,z.y=$.y;const K=$.leavesPositiveSide?Math.min(X.minY-2,w.y+ne):Math.max(X.maxY+2,w.y-ne);yt=[{x:w.x,y:K},{x:$.x,y:K},{x:$.x,y:$.y}]}else{const $=tt(w,C,L,X,!1),K=$.leavesPositiveSide?Math.min(X.minX-2,w.x+ne):Math.max(X.maxX+2,w.x-ne);z.x=$.x,z.y=$.y,yt=[{x:K,y:w.y},{x:K,y:$.y},{x:$.x,y:$.y}]}}let Dt=[];const Jt=st(Y,Rt);if(Jt.inside&&Jt.obstacle){const X=Jt.obstacle;if(rt){const $=tt(B,L,C,X,!0);Y.x=$.x,Y.y=$.y,Dt=[{x:$.x,y:$.y},{x:B.x,y:$.y}]}else{const $=tt(B,L,C,X,!1);Y.x=$.x,Y.y=$.y,Dt=[{x:$.x,y:$.y},{x:$.x,y:B.y}]}}if(yt.length===0&&Dt.length===0){const X=be,$=Math.abs(z.x-Y.x)1||bt>1,Nt=S.get(b.start??"")??0,ut=S.get(b.end??"")??0,Yt=Ct>1&&kt(b.start,U)||bt>1&&kt(b.end,q),ee=Ct<=1||Nt<=2,Bt=bt<=1||ut<=2;if(($||K)&&!lt&&(!Et||Et&&!Yt&&ee&&Bt)&&!T(w,B,b.start,b.end)){b.points=[{...w},{...z},{...Y},{...B}],y.add(h);const Mt=K?"horizontal":"vertical",$t=K?w.y:w.x,It=K?Math.min(w.x,B.x):Math.min(w.y,B.y),St=K?Math.max(w.x,B.x):Math.max(w.y,B.y),Wt={id:`fast-path-${Mt}-${$t.toFixed(0)}-${h}`,orientation:Mt,coord:$t,spanMin:It,spanMax:St,tracks:[]};p.push({edgeIndex:h,segmentIndex:0,orientation:Mt,pipe:Wt,trackIndex:0,from:It,to:St});continue}}const gn=x("vertical",z.x,z.y,z.y);z.x=gn.coord;const mr=x("vertical",Y.x,Y.y,Y.y);Y.x=mr.coord;let ue=Math.min(z.x,Y.x)-50,he=Math.max(z.x,Y.x)+50,ve=Math.min(z.y,Y.y)-50,Le=Math.max(z.y,Y.y)+50;for(const X of g){const $=Math.min(z.x,Y.x),K=Math.max(z.x,Y.x),lt=Math.min(z.y,Y.y),Ct=Math.max(z.y,Y.y);X.minX$&&X.minYlt&&(ue=Math.min(ue,X.minX-je),he=Math.max(he,X.maxX+je),ve=Math.min(ve,X.minY-je),Le=Math.max(Le,X.maxY+je))}for(const X of g){if(X.maxXhe||X.maxYLe)continue;const $=be;x("horizontal",X.minY-$,ue,he),x("horizontal",X.maxY+$,ue,he);const K=Te;x("vertical",X.minX-K,ve,Le),x("vertical",X.maxX+K,ve,Le)}x("horizontal",z.y,ue,he),x("horizontal",Y.y,ue,he);const yr=c.filter(X=>X.orientation==="horizontal"&&X.coord>=ve&&X.coord<=Le),xr=c.filter(X=>X.orientation==="vertical"&&X.coord>=ue&&X.coord<=he),ke=d((X,$)=>`${X.toFixed(1)},${$.toFixed(1)}`,"getKey"),_e=ke(z.x,z.y),vo=ke(Y.x,Y.y),Fe=new Map,pn=new Map,mn=new Map,De=new Set,xe=[];Fe.set(_e,0),mn.set(_e,"n"),xe.push({key:_e,f:Math.hypot(Y.x-z.x,Y.y-z.y),pt:z}),De.add(_e);let Ht=[];const ge=d((X,$)=>T(X,$,b.start,b.end),"checkSegmentBlocked"),yn={x:Y.x,y:z.y},br=ge(z,yn),Mr=ge(yn,Y),Ir=br||Mr,xn={x:z.x,y:Y.y},Sr=ge(z,xn),Cr=ge(xn,Y);if(Ir?Sr||Cr||(Math.abs(z.x-Y.x)0;){xe.sort((ut,Yt)=>ut.f-Yt.f);const X=xe.shift();if(De.delete(X.key),X.key===vo){let ut=vo,Yt=Y;for(Ht=[Yt];pn.has(ut);){const ee=pn.get(ut);Ht.unshift(ee),Yt=ee,ut=ke(ee.x,ee.y)}break}const $=X.pt.x,K=X.pt.y,lt=xr.sort((ut,Yt)=>ut.coord-Yt.coord),Ct=lt.findIndex(ut=>Math.abs(ut.coord-$)<1),bt=yr.sort((ut,Yt)=>ut.coord-Yt.coord),Et=bt.findIndex(ut=>Math.abs(ut.coord-K)<1),Nt=[];Ct>0&&Nt.push({x:lt[Ct-1].coord,y:K}),Ct>=0&&Ct0&&Nt.push({x:$,y:bt[Et-1].coord}),Et>=0&&EtZt.nodeId===b.start||Zt.nodeId===b.end?!1:Yt!==ee?Zt.minYK&&Zt.maxX>Yt&&Zt.minX$&&Zt.maxY>Bt&&Zt.minY10&&bn<-5||Ee<-10&&bn>5)&&(St=Math.abs(bn)*100),(Wt>10&&He<-5||Wt<-10&&He>5)&&(St+=Math.abs(He)*50);let Lo=0;const Eo=mn.get(X.key)??"n",To=Math.abs(He)>ct?"h":"v";Eo!=="n"&&Eo!==To&&(Lo=50);const vr=$t+It+St+Lo,Xe=(Fe.get(X.key)??1/0)+vr,wo=Math.abs(Y.x-ut.x)+Math.abs(Y.y-ut.y);if(Xe<(Fe.get(Mt)??1/0))if(pn.set(Mt,X.pt),Fe.set(Mt,Xe),mn.set(Mt,To),!De.has(Mt))xe.push({key:Mt,f:Xe+wo,pt:ut}),De.add(Mt);else{const Zt=xe.findIndex(Lr=>Lr.key===Mt);Zt!==-1&&(xe[Zt].f=Xe+wo)}}}if(Ht.length===0&&(Ht=[z,{x:z.x,y:Y.y},Y]),Ht.length>4){const X=Ht[0],$=Ht[Ht.length-1];let K=Math.min(X.x,$.x),lt=Math.max(X.x,$.x),Ct=Math.min(X.y,$.y),bt=Math.max(X.y,$.y);for(const Bt of Ht)K=Math.min(K,Bt.x),lt=Math.max(lt,Bt.x),Ct=Math.min(Ct,Bt.y),bt=Math.max(bt,Bt.y);const Et=lt>Math.max(X.x,$.x),Nt=KIt.minXGt&&It.minYOt);if($t.length>0){let It=Math.max(X.x,$.x);for(const St of $t){const Wt=(St.minX+St.maxX)/2;if(St.visualXHalfExtent===void 0||isNaN(St.visualXHalfExtent))continue;const Ee=Wt+St.visualXHalfExtent+Bt;It=Math.max(It,Ee)}isNaN(It)||(lt=It)}}if(Nt){const Gt=g.filter(Ot=>Ot.minXMath.min(X.y,$.y));if(Gt.length>0){let Ot=Math.min(X.x,$.x);for(const Mt of Gt){const It=(Mt.minX+Mt.maxX)/2-Mt.visualXHalfExtent-Bt;Ot=Math.min(Ot,It)}K=Ot}}}const ut=d(Bt=>{const Gt=$.y>X.y,Ot=g.filter(It=>{const St=Math.min(X.x,$.x)It.minX,Wt=Math.min(X.y,$.y)It.minY;return St&&Wt});let Mt=Ot;if(a&&Ot.length>0){const It=Ot.filter(St=>St.minXBt);It.length>0&&(Mt=It)}if(Mt.length===0)return $.y;const $t=be;if(Gt){const St=Math.max(...Mt.map(Wt=>Wt.maxY))+$t;if(St<$.y-ct)return St}else{const St=Math.min(...Mt.map(Wt=>Wt.minY))-$t;if(St>$.y+ct)return St}return $.y},"findBestReturnY"),Yt=d(Bt=>{const Gt=ut(Bt),Ot={x:Bt,y:X.y},Mt={x:Bt,y:Gt},$t={x:$.x,y:Gt},It=ge(X,Ot),St=ge(Ot,Mt),Wt=ge(Mt,$t),Ee=Gt!==$.y?ge($t,$):!1;return!It&&!St&&!Wt&&!Ee?Math.abs(Gt-$.y)=3){const X=Xt[Xt.length-1],$=Xt[Xt.length-2],K=Xt[Xt.length-3],lt=Math.abs(K.y-$.y)Math.abs(X.x-K.x)&&Xt.splice(-2,1)}else if(Ct){const bt=Math.sign($.y-K.y),Et=Math.sign(X.y-K.y);bt!==0&&bt===Et&&Math.abs($.y-K.y)>Math.abs(X.y-K.y)&&Xt.splice(-2,1)}}const ie=[Xt[0]];for(let X=1;X$.x,bt=lt.x>K.x;if(Ct!==bt){ie.push(K);continue}continue}if(Math.abs($.x-K.x)$.y,bt=lt.y>K.y;if(Ct!==bt){ie.push(K);continue}continue}ie.push(K)}ie.push(Xt[Xt.length-1]);for(let X=0;Xh.from{const w=!L.segments.some(U=>(U.edgeIndex!==b.edgeIndex||U.segmentIndex!==b.segmentIndex)&&W(U,h)),B=!C.segments.some(U=>(U.edgeIndex!==h.edgeIndex||U.segmentIndex!==h.segmentIndex)&&W(U,b));return w&&B?(h.trackIndex=L.index,b.trackIndex=C.index,C.segments=[...C.segments.filter(U=>U.edgeIndex!==h.edgeIndex||U.segmentIndex!==h.segmentIndex),{edgeIndex:b.edgeIndex,segmentIndex:b.segmentIndex,from:b.from,to:b.to}],L.segments=[...L.segments.filter(U=>U.edgeIndex!==b.edgeIndex||U.segmentIndex!==b.segmentIndex),{edgeIndex:h.edgeIndex,segmentIndex:h.segmentIndex,from:h.from,to:h.to}],!0):!1},"trySwapSegmentsAcrossTracks"),at=d(h=>{const b=h.tracks.length;return h.tracks[b]={index:b,coord:h.coord,segments:[]},b},"createNewTrack"),gt=d((h,b)=>{const C=h.pipe.tracks[h.trackIndex];C.segments=C.segments.filter(w=>w.edgeIndex!==h.edgeIndex||w.segmentIndex!==h.segmentIndex),h.trackIndex=b,h.pipe.tracks[b].segments.push({edgeIndex:h.edgeIndex,segmentIndex:h.segmentIndex,from:h.from,to:h.to})},"moveSegmentToTrack"),xt=d((h,b)=>{const C=f[h.edgeIndex];for(const L of C){const w=p[L];w.pipe===h.pipe&>(w,b)}},"moveSegmentChainToTrack"),vt=d(h=>{const b=f[h.edgeIndex],C=b.indexOf(p.indexOf(h)),L=[];return C>0&&L.push(p[b[C-1]]),C{if(h.orientation===b.orientation)return!1;const C=h.orientation==="horizontal"?h:b,L=h.orientation==="horizontal"?b:h;return L.pipe.coord>C.from&&L.pipe.coordL.from&&C.pipe.coord{for(const C of h.tracks)if(!C.segments.some(w=>(w.edgeIndex!==b.edgeIndex||w.segmentIndex!==b.segmentIndex)&&W(w,b)))return C.index;return-1},"findAvailableTrack"),Ut=d((h,b)=>{if(h.trackIndex===b.trackIndex)return W(h,b);const C=vt(h),L=vt(b);return C.some(w=>L.some(B=>Vt(w,B)))},"segmentsConflict"),te=d((h,b,C)=>{if(et(h,b,h.pipe.tracks[h.trackIndex],b.pipe.tracks[b.trackIndex]))return;const L=jt(h.pipe,b);C(b,L!==-1?L:at(h.pipe))},"resolveTrackConflict"),Se=d(h=>{let b=0;for(let C=0;C{if(de.has(h))return de.get(h);const b=f[h];if(b.length===0){const q={dest:0,deviation:0,base:0,delta:0};return de.set(h,q),q}const L=p[b[0]].pipe.coord;let w=L;for(let q=1;qMath.abs(ot-L)?Y:ot;break}}const B=Math.abs(w-L),U={dest:w,deviation:B,base:L,delta:w-L};return de.set(h,U),U},"getDestInfo"),dn=d(()=>{let h=0;const b=new Map;for(const[L,w]of s.entries())f[L].length!==0&&w.start&&(b.has(w.start)||b.set(w.start,[]),b.get(w.start).push(L));const C=d(L=>{const w=s[L];if(!w.start||!w.end)return 0;const B=r.get(w.start),U=r.get(w.end);if(!B||!U)return 0;const q=(U.x??0)-(B.x??0),z=(U.y??0)-(B.y??0);return Math.abs(q)+Math.abs(z)},"getEdgeDistance");for(const L of b.values()){L.sort((B,U)=>{const q=Ce(B),z=Ce(U);if(Math.abs(q.deviation-z.deviation)>1)return q.deviation-z.deviation;if(Math.abs(q.dest-z.dest)>1)return q.dest-z.dest;const Y=C(B),ot=C(U);if(Math.abs(Y-ot)>1)return ot-Y;const rt=f[B].length,st=f[U].length;if(rt!==st)return rt-st;if(rt===1){const tt=f[B][0],yt=f[U][0];if(p[tt]&&p[yt]){const Rt=p[tt],Lt=p[yt],Dt=Math.abs(Rt.to-Rt.from),Jt=Math.abs(Lt.to-Lt.from);if(Math.abs(Dt-Jt)>1)return Dt-Jt}}return 0});const w=L.map(B=>p[f[B][0]]);h+=Se(w)}return h},"fixSourceHandleCrossings"),un=d(()=>{let h=0;const b=new Map;for(const[C,L]of s.entries())f[C].length!==0&&L.end&&(b.has(L.end)||b.set(L.end,[]),b.get(L.end).push(C));for(const C of b.values()){C.sort((w,B)=>{const U=d(Y=>{const ot=f[Y];if(ot.length<2)return 0;const rt=p[ot[ot.length-2]];return Math.abs(rt.to-rt.from)},"getDist"),q=U(w),z=U(B);return Math.abs(q-z)>.1?q-z:w-B});const L=C.map(w=>p[f[w][f[w].length-1]]);h+=Se(L)}return h},"fixTargetHandleCrossings"),hn=d(()=>{let h=0;for(const b of c){const C=[];for(const L of b.tracks)for(const w of L.segments){const B=f[w.edgeIndex].find(U=>p[U].segmentIndex===w.segmentIndex);B!==void 0&&C.push(p[B])}C.sort((L,w)=>L.edgeIndex-w.edgeIndex||L.segmentIndex-w.segmentIndex);for(let L=0;L{L.segments.forEach(w=>{b.push({edgeIndex:w.edgeIndex,segmentIndex:w.segmentIndex,trackIndex:L.index,from:w.from,to:w.to})})}),b.sort((L,w)=>L.from-w.from);const C=[];if(b.length>0){let L=[b[0]],w=b[0].to;for(let B=1;Bw.add(tt.trackIndex));const B=new Map;L.forEach(tt=>{const yt=Ce(tt.edgeIndex);B.set(tt.trackIndex,(B.get(tt.trackIndex)??0)+yt.delta)});const U=[...w].filter(tt=>(B.get(tt)??0)<-1),q=[...w].filter(tt=>(B.get(tt)??0)>1),z=[...w].filter(tt=>Math.abs(B.get(tt)??0)<=1);U.sort((tt,yt)=>(B.get(yt)??0)-(B.get(tt)??0)),q.sort((tt,yt)=>(B.get(tt)??0)-(B.get(yt)??0));const Y=d((tt,yt)=>{L.filter(Rt=>Rt.trackIndex===tt).forEach(Rt=>{const Lt=y.has(Rt.edgeIndex)?h.coord:yt;D.set(`${Rt.edgeIndex}-${Rt.segmentIndex}`,Lt)})},"assignCoord");let ot=0;for(const tt of U)ot++,Y(tt,h.coord-ot*Cn);if(z.length===0&&w.size>0){const tt=[...w].sort((Lt,Dt)=>Math.abs(B.get(Lt)??0)-Math.abs(B.get(Dt)??0))[0],yt=U.indexOf(tt);yt!==-1&&U.splice(yt,1);const Rt=q.indexOf(tt);Rt!==-1&&q.splice(Rt,1),z.push(tt)}let rt=0;for(const tt of z){if(rt===0)Y(tt,h.coord);else{const yt=rt%2===1?1:-1,Rt=Math.ceil(rt/2);Y(tt,h.coord+yt*Rt*Cn*.5)}rt++}let st=0;for(const tt of q)st++,Y(tt,h.coord+st*Cn)}}for(const[h,b]of s.entries()){const C=f[h]??[];if(C.length===0)continue;const L=[],w=r.get(b.start),B=r.get(b.end),{pSrcPort:U,pDstPort:q}=Q(h,w,B),z=C.map(rt=>{const st=p[rt],tt=D.get(`${st.edgeIndex}-${st.segmentIndex}`)??st.pipe.coord;return{orient:st.orientation,coord:tt,from:st.from,to:st.to}});L.push(U);for(let rt=0;rtct&&L.push(Me(st,yt)),Dt&&Lt.orient===st.orient)if(Math.abs(st.coord-Lt.coord)>ct){const Jt=st.orient==="vertical"?(yt+Lt.from)/2:no(st,Lt);L.push(Me(st,Jt),Me(Lt,Jt))}else(rt===0||rt===z.length-2)&&L.push(Me(st,no(st,Lt)));else if(Dt)L.push(Me(st,Lt.coord));else{const Jt=Math.abs(st.from-yt)ct||Math.abs(Y.y-q.y)>ct)&&L.push(q);const ot=[];L.length>0&&ot.push(L[0]);for(let rt=1;rtct||Math.abs(st.y-tt.y)>ct)&&ot.push(st)}b.points=ot}for(const h of s){const b=h.__originalEdge;b&&h.points&&(b.points=h.points)}t.edges=(t.edges??[]).filter(h=>!h.isLayoutOnly);const V=d((h,b)=>{const C=b.x??0,L=b.y??0,w=b.width??0,B=b.height??0;if(w<=0||B<=0)return h;const U=C-w/2,q=C+w/2,z=L-B/2,Y=L+B/2;if(h.xq||h.yY)return h;const ot=h.x-U,rt=q-h.x,st=h.y-z,tt=Y-h.y,yt=Math.min(ot,rt,st,tt);return yt===ot?{x:U,y:h.y}:yt===rt?{x:q,y:h.y}:yt===st?{x:h.x,y:z}:{x:h.x,y:Y}},"nodeBoundaryClamp");for(const h of t.edges){const b=h.points;if(!b||b.length<2)continue;const C=h.start,L=h.end,w=C?r.get(C):void 0,B=L?r.get(L):void 0;w&&(b[0]=V(b[0],w)),B&&(b[b.length-1]=V(b[b.length-1],B))}return t}d(hr,"routeEdgesOrthogonal");function gr(t){return t.direction??"TB"}d(gr,"getSwimlaneDirection");function pr(t){const e=Jo(t),n=t.config.flowchart?.nodeSpacing??40,o=t.config.flowchart?.rankSpacing??100,s=t.config.swimlane?.ignoreCrossLaneEdges??!0,r=t.config.swimlane?.optimizeRanksByCrossings??!0,i=t.config.swimlane?.automaticLaneOrdering??!1,c=gr(t),{ordered:a,coordinates:l}=ur(e,{nodeGap:n,layerGap:o,ignoreCrossLaneEdges:s,optimizeRanksByCrossings:r,automaticLaneOrdering:i,direction:c});Zo(e,a,l,{nodeGap:n,layerGap:o});for(const g of t.edges??[])delete g.points;hr(t,c);for(const g of t.edges??[])(!g.curve||g.curve==="basis")&&(g.curve="rounded");return Rs(t,c),As(t),c}d(pr,"runSwimlaneLayoutCore");async function Qr(t,e){const n=e.select("g");wr(n,t.markers,t.type,t.diagramId),Ar(),Rr(),Nr(),Tr(),qo(t);const o=Qo(t);t.nodes=o.nodes,t.edges=o.edges;const{groups:s}=await _o(n,t);pr(t),await Uo(t,s)}d(Qr,"render");export{Qr as render}; diff --git a/apps/kimi-code/dist-web/assets/swimlanesDiagram-G3AALYLV-C11X_Fiy.js b/apps/kimi-code/dist-web/assets/swimlanesDiagram-G3AALYLV-C11X_Fiy.js new file mode 100644 index 000000000..a9e762e6a --- /dev/null +++ b/apps/kimi-code/dist-web/assets/swimlanesDiagram-G3AALYLV-C11X_Fiy.js @@ -0,0 +1,8 @@ +import{c as r,s as e}from"./flowDiagram-23GEKE2U-DuNG8YS2.js";import{_ as a}from"./mermaid.core-B_UcP3X_.js";import"./chunk-5VM5RSS4-DxIYPYOn.js";import"./chunk-XXDRQBXY-AHUPVB2f.js";import"./chunk-VR4S4FIN-CYEgbtU1.js";import"./chunk-32BRIVSS-D_mpvupa.js";import"./channel-Bw0eTBly.js";import"./index-BOtIzGLC.js";var o=a(t=>`${e(t)} + .swimlane.cluster rect { + stroke: ${t.clusterBorder} !important; + } + [data-look="neo"].cluster rect { + filter: none; + } +`,"getStyles"),s=o,n=r({defaultLayout:"swimlane",styles:s});export{n as diagram}; diff --git a/apps/kimi-code/dist-web/assets/swimlanesDiagram-G3AALYLV-DMbj4GHb.js b/apps/kimi-code/dist-web/assets/swimlanesDiagram-G3AALYLV-DMbj4GHb.js deleted file mode 100644 index bdd8ee07c..000000000 --- a/apps/kimi-code/dist-web/assets/swimlanesDiagram-G3AALYLV-DMbj4GHb.js +++ /dev/null @@ -1,8 +0,0 @@ -import{c as r,s as e}from"./flowDiagram-23GEKE2U-DUMMY9pi.js";import{_ as a}from"./mermaid.core-CgZTgv7Y.js";import"./chunk-5VM5RSS4-D5gZPx0N.js";import"./chunk-XXDRQBXY-BW4XjZut.js";import"./chunk-VR4S4FIN-CHAEh_jD.js";import"./chunk-32BRIVSS-DpG03lEd.js";import"./channel-IY5GdLm-.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var o=a(t=>`${e(t)} - .swimlane.cluster rect { - stroke: ${t.clusterBorder} !important; - } - [data-look="neo"].cluster rect { - filter: none; - } -`,"getStyles"),m=o,y=r({defaultLayout:"swimlane",styles:m});export{y as diagram}; diff --git a/apps/kimi-code/dist-web/assets/timeline-definition-FHXFAJF6-Blm9HJcK.js b/apps/kimi-code/dist-web/assets/timeline-definition-FHXFAJF6-9x8NoaNX.js similarity index 82% rename from apps/kimi-code/dist-web/assets/timeline-definition-FHXFAJF6-Blm9HJcK.js rename to apps/kimi-code/dist-web/assets/timeline-definition-FHXFAJF6-9x8NoaNX.js index 581ee2b9f..6075a4b55 100644 --- a/apps/kimi-code/dist-web/assets/timeline-definition-FHXFAJF6-Blm9HJcK.js +++ b/apps/kimi-code/dist-web/assets/timeline-definition-FHXFAJF6-9x8NoaNX.js @@ -1,9 +1,9 @@ -import{_ as o,y as pt,aa as Rt,ab as Ct,ac as Wt,c as gt,l as E,D as Pt,K as Bt,ad as ft,d as X,t as Vt,ae as Ft,p as zt}from"./mermaid.core-CgZTgv7Y.js";import{d as ot}from"./arc-CxZ33vix.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var tt=(function(){var e=o(function(k,s,d,l){for(d=d||{},l=k.length;l--;d[k[l]]=s);return d},"o"),t=[6,11,13,14,15,17,19,20,23,24],n=[1,12],i=[1,13],r=[1,14],h=[1,15],c=[1,16],a=[1,19],f=[1,20],g={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(s,d,l,p,x,u,S){var v=u.length-1;switch(x){case 1:return u[v-1];case 3:p.setDirection("LR");break;case 4:p.setDirection("TD");break;case 5:this.$=[];break;case 6:u[v-1].push(u[v]),this.$=u[v-1];break;case 7:case 8:this.$=u[v];break;case 9:case 10:this.$=[];break;case 11:p.getCommonDb().setDiagramTitle(u[v].substr(6)),this.$=u[v].substr(6);break;case 12:this.$=u[v].trim(),p.getCommonDb().setAccTitle(this.$);break;case 13:case 14:this.$=u[v].trim(),p.getCommonDb().setAccDescription(this.$);break;case 15:p.addSection(u[v].substr(8)),this.$=u[v].substr(8);break;case 18:p.addTask(u[v],0,""),this.$=u[v];break;case 19:p.addEvent(u[v].substr(2)),this.$=u[v];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:n,15:i,17:r,19:h,20:c,21:17,22:18,23:a,24:f},e(t,[2,10],{1:[2,1]}),e(t,[2,6]),{12:21,14:n,15:i,17:r,19:h,20:c,21:17,22:18,23:a,24:f},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(s,d){if(d.recoverable)this.trace(s);else{var l=new Error(s);throw l.hash=d,l}},"parseError"),parse:o(function(s){var d=this,l=[0],p=[],x=[null],u=[],S=this.table,v="",I=0,R=0,W=2,O=1,L=u.slice.call(arguments,1),w=Object.create(this.lexer),H={yy:{}};for(var V in this.yy)Object.prototype.hasOwnProperty.call(this.yy,V)&&(H.yy[V]=this.yy[V]);w.setInput(s,H.yy),H.yy.lexer=w,H.yy.parser=this,typeof w.yylloc>"u"&&(w.yylloc={});var F=w.yylloc;u.push(F);var U=w.options&&w.options.ranges;typeof H.yy.parseError=="function"?this.parseError=H.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function N(A){l.length=l.length-2*A,x.length=x.length-A,u.length=u.length-A}o(N,"popStack");function b(){var A;return A=p.pop()||w.lex()||O,typeof A!="number"&&(A instanceof Array&&(p=A,A=p.pop()),A=d.symbols_[A]||A),A}o(b,"lex");for(var _,$,T,P,C={},G,B,Z,j;;){if($=l[l.length-1],this.defaultActions[$]?T=this.defaultActions[$]:((_===null||typeof _>"u")&&(_=b()),T=S[$]&&S[$][_]),typeof T>"u"||!T.length||!T[0]){var Y="";j=[];for(G in S[$])this.terminals_[G]&&G>W&&j.push("'"+this.terminals_[G]+"'");w.showPosition?Y="Parse error on line "+(I+1)+`: +import{_ as o,z as pt,aa as Rt,ab as Ct,ac as Wt,c as gt,l as E,F as Pt,a1 as Bt,ad as ft,d as U,u as Vt,ae as Ft,q as zt}from"./mermaid.core-B_UcP3X_.js";import{d as ot}from"./arc-CeSAjRC_.js";import"./index-BOtIzGLC.js";var tt=(function(){var e=o(function(k,s,d,l){for(d=d||{},l=k.length;l--;d[k[l]]=s);return d},"o"),t=[6,11,13,14,15,17,19,20,23,24],n=[1,12],i=[1,13],r=[1,14],h=[1,15],c=[1,16],a=[1,19],f=[1,20],g={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(s,d,l,p,x,u,S){var v=u.length-1;switch(x){case 1:return u[v-1];case 3:p.setDirection("LR");break;case 4:p.setDirection("TD");break;case 5:this.$=[];break;case 6:u[v-1].push(u[v]),this.$=u[v-1];break;case 7:case 8:this.$=u[v];break;case 9:case 10:this.$=[];break;case 11:p.getCommonDb().setDiagramTitle(u[v].substr(6)),this.$=u[v].substr(6);break;case 12:this.$=u[v].trim(),p.getCommonDb().setAccTitle(this.$);break;case 13:case 14:this.$=u[v].trim(),p.getCommonDb().setAccDescription(this.$);break;case 15:p.addSection(u[v].substr(8)),this.$=u[v].substr(8);break;case 18:p.addTask(u[v],0,""),this.$=u[v];break;case 19:p.addEvent(u[v].substr(2)),this.$=u[v];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:n,15:i,17:r,19:h,20:c,21:17,22:18,23:a,24:f},e(t,[2,10],{1:[2,1]}),e(t,[2,6]),{12:21,14:n,15:i,17:r,19:h,20:c,21:17,22:18,23:a,24:f},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(s,d){if(d.recoverable)this.trace(s);else{var l=new Error(s);throw l.hash=d,l}},"parseError"),parse:o(function(s){var d=this,l=[0],p=[],x=[null],u=[],S=this.table,v="",I=0,R=0,W=2,O=1,L=u.slice.call(arguments,1),w=Object.create(this.lexer),H={yy:{}};for(var V in this.yy)Object.prototype.hasOwnProperty.call(this.yy,V)&&(H.yy[V]=this.yy[V]);w.setInput(s,H.yy),H.yy.lexer=w,H.yy.parser=this,typeof w.yylloc>"u"&&(w.yylloc={});var F=w.yylloc;u.push(F);var K=w.options&&w.options.ranges;typeof H.yy.parseError=="function"?this.parseError=H.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function N(A){l.length=l.length-2*A,x.length=x.length-A,u.length=u.length-A}o(N,"popStack");function b(){var A;return A=p.pop()||w.lex()||O,typeof A!="number"&&(A instanceof Array&&(p=A,A=p.pop()),A=d.symbols_[A]||A),A}o(b,"lex");for(var _,$,T,P,C={},G,B,X,Z;;){if($=l[l.length-1],this.defaultActions[$]?T=this.defaultActions[$]:((_===null||typeof _>"u")&&(_=b()),T=S[$]&&S[$][_]),typeof T>"u"||!T.length||!T[0]){var Y="";Z=[];for(G in S[$])this.terminals_[G]&&G>W&&Z.push("'"+this.terminals_[G]+"'");w.showPosition?Y="Parse error on line "+(I+1)+`: `+w.showPosition()+` -Expecting `+j.join(", ")+", got '"+(this.terminals_[_]||_)+"'":Y="Parse error on line "+(I+1)+": Unexpected "+(_==O?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(Y,{text:w.match,token:this.terminals_[_]||_,line:w.yylineno,loc:F,expected:j})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+$+", token: "+_);switch(T[0]){case 1:l.push(_),x.push(w.yytext),u.push(w.yylloc),l.push(T[1]),_=null,R=w.yyleng,v=w.yytext,I=w.yylineno,F=w.yylloc;break;case 2:if(B=this.productions_[T[1]][1],C.$=x[x.length-B],C._$={first_line:u[u.length-(B||1)].first_line,last_line:u[u.length-1].last_line,first_column:u[u.length-(B||1)].first_column,last_column:u[u.length-1].last_column},U&&(C._$.range=[u[u.length-(B||1)].range[0],u[u.length-1].range[1]]),P=this.performAction.apply(C,[v,R,I,H.yy,T[1],x,u].concat(L)),typeof P<"u")return P;B&&(l=l.slice(0,-1*B*2),x=x.slice(0,-1*B),u=u.slice(0,-1*B)),l.push(this.productions_[T[1]][0]),x.push(C.$),u.push(C._$),Z=S[l[l.length-2]][l[l.length-1]],l.push(Z);break;case 3:return!0}}return!0},"parse")},m=(function(){var k={EOF:1,parseError:o(function(d,l){if(this.yy.parser)this.yy.parser.parseError(d,l);else throw new Error(d)},"parseError"),setInput:o(function(s,d){return this.yy=d||this.yy||{},this._input=s,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 s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var d=s.match(/(?:\r\n?|\n).*/g);return d?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},"input"),unput:o(function(s){var d=s.length,l=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-d),this.offset-=d;var p=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 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:l?(l.length===p.length?this.yylloc.first_column:0)+p[p.length-l.length].length-l[0].length:this.yylloc.first_column-d},this.options.ranges&&(this.yylloc.range=[x[0],x[0]+this.yyleng-d]),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). +Expecting `+Z.join(", ")+", got '"+(this.terminals_[_]||_)+"'":Y="Parse error on line "+(I+1)+": Unexpected "+(_==O?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(Y,{text:w.match,token:this.terminals_[_]||_,line:w.yylineno,loc:F,expected:Z})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+$+", token: "+_);switch(T[0]){case 1:l.push(_),x.push(w.yytext),u.push(w.yylloc),l.push(T[1]),_=null,R=w.yyleng,v=w.yytext,I=w.yylineno,F=w.yylloc;break;case 2:if(B=this.productions_[T[1]][1],C.$=x[x.length-B],C._$={first_line:u[u.length-(B||1)].first_line,last_line:u[u.length-1].last_line,first_column:u[u.length-(B||1)].first_column,last_column:u[u.length-1].last_column},K&&(C._$.range=[u[u.length-(B||1)].range[0],u[u.length-1].range[1]]),P=this.performAction.apply(C,[v,R,I,H.yy,T[1],x,u].concat(L)),typeof P<"u")return P;B&&(l=l.slice(0,-1*B*2),x=x.slice(0,-1*B),u=u.slice(0,-1*B)),l.push(this.productions_[T[1]][0]),x.push(C.$),u.push(C._$),X=S[l[l.length-2]][l[l.length-1]],l.push(X);break;case 3:return!0}}return!0},"parse")},m=(function(){var k={EOF:1,parseError:o(function(d,l){if(this.yy.parser)this.yy.parser.parseError(d,l);else throw new Error(d)},"parseError"),setInput:o(function(s,d){return this.yy=d||this.yy||{},this._input=s,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 s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var d=s.match(/(?:\r\n?|\n).*/g);return d?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},"input"),unput:o(function(s){var d=s.length,l=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-d),this.offset-=d;var p=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 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:l?(l.length===p.length?this.yylloc.first_column:0)+p[p.length-l.length].length-l[0].length:this.yylloc.first_column-d},this.options.ranges&&(this.yylloc.range=[x[0],x[0]+this.yyleng-d]),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(s){this.unput(this.match.slice(s))},"less"),pastInput:o(function(){var s=this.matched.substr(0,this.matched.length-this.match.length);return(s.length>20?"...":"")+s.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var s=this.match;return s.length<20&&(s+=this._input.substr(0,20-s.length)),(s.substr(0,20)+(s.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var s=this.pastInput(),d=new Array(s.length+1).join("-");return s+this.upcomingInput()+` `+d+"^"},"showPosition"),test_match:o(function(s,d){var l,p,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))),p=s[0].match(/(?:\r\n?|\n).*/g),p&&(this.yylineno+=p.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:p?p[p.length-1].length-p[p.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+s[0].length},this.yytext+=s[0],this.match+=s[0],this.matches=s,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(s[0].length),this.matched+=s[0],l=this.performAction.call(this,this.yy,this,d,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),l)return l;if(this._backtrack){for(var u in x)this[u]=x[u];return!1}return!1},"test_match"),next:o(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var s,d,l,p;this._more||(this.yytext="",this.match="");for(var x=this._currentRules(),u=0;ud[0].length)){if(d=l,p=u,this.options.backtrack_lexer){if(s=this.test_match(l,x[u]),s!==!1)return s;if(this._backtrack){d=!1;continue}else return!1}else if(!this.options.flex)break}return d?(s=this.test_match(d,x[p]),s!==!1?s:!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 d=this.next();return d||this.lex()},"lex"),begin:o(function(d){this.conditionStack.push(d)},"begin"),popState:o(function(){var d=this.conditionStack.length-1;return d>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(d){return d=this.conditionStack.length-1-Math.abs(d||0),d>=0?this.conditionStack[d]:"INITIAL"},"topState"),pushState:o(function(d){this.begin(d)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(d,l,p,x){switch(p){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;case 10:return this.popState(),"acc_title_value";case 11:return this.begin("acc_descr"),17;case 12:return this.popState(),"acc_descr_value";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 k})();g.lexer=m;function y(){this.yy={}}return o(y,"Parser"),y.prototype=g,g.Parser=y,new y})();tt.parser=tt;var Ot=tt,yt={};Vt(yt,{addEvent:()=>Tt,addSection:()=>_t,addTask:()=>Et,addTaskOrg:()=>$t,clear:()=>kt,default:()=>Gt,getCommonDb:()=>xt,getDirection:()=>bt,getSections:()=>wt,getTasks:()=>St,setDirection:()=>vt});var D="",mt=0,nt="LR",rt=[],q=[],K=[],xt=o(()=>Ft,"getCommonDb"),kt=o(function(){rt.length=0,q.length=0,D="",K.length=0,nt="LR",zt()},"clear"),vt=o(function(e){nt=e},"setDirection"),bt=o(function(){return nt},"getDirection"),_t=o(function(e){D=e,rt.push(e)},"addSection"),wt=o(function(){return rt},"getSections"),St=o(function(){let e=ct();const t=100;let n=0;for(;!e&&nn.id===mt-1).events.push(e)},"addEvent"),$t=o(function(e){const t={section:D,type:D,description:e,task:e,classes:[]};q.push(t)},"addTaskOrg"),ct=o(function(){const e=o(function(n){return K[n].processed},"compileTask");let t=!0;for(const[n,i]of K.entries())e(n),t=t&&i.processed;return t},"compileTasks"),Gt={clear:kt,getCommonDb:xt,getDirection:bt,setDirection:vt,addSection:_t,getSections:wt,getTasks:St,addTask:Et,addTaskOrg:$t,addEvent:Tt},Nt=0,J=o(function(e,t){const n=e.append("rect");return n.attr("x",t.x),n.attr("y",t.y),n.attr("fill",t.fill),n.attr("stroke",t.stroke),n.attr("width",t.width),n.attr("height",t.height),n.attr("rx",t.rx),n.attr("ry",t.ry),t.class!==void 0&&n.attr("class",t.class),n},"drawRect"),Dt=o(function(e,t){const 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"),r=e.append("g");r.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"),r.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 h(f){const g=ot().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);f.append("path").attr("class","mouth").attr("d",g).attr("transform","translate("+t.cx+","+(t.cy+2)+")")}o(h,"smile");function c(f){const g=ot().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);f.append("path").attr("class","mouth").attr("d",g).attr("transform","translate("+t.cx+","+(t.cy+7)+")")}o(c,"sad");function a(f){f.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(a,"ambivalent"),t.score>3?h(r):t.score<3?c(r):a(r),i},"drawFace"),Kt=o(function(e,t){const n=e.append("circle");return n.attr("cx",t.cx),n.attr("cy",t.cy),n.attr("class","actor-"+t.pos),n.attr("fill",t.fill),n.attr("stroke",t.stroke),n.attr("r",t.r),n.class!==void 0&&n.attr("class",n.class),t.title!==void 0&&n.append("title").text(t.title),n},"drawCircle"),It=o(function(e,t){const n=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);const r=i.append("tspan");return r.attr("x",t.x+t.textMargin*2),r.text(n),i},"drawText"),Ut=o(function(e,t){function n(r,h,c,a,f){return r+","+h+" "+(r+c)+","+h+" "+(r+c)+","+(h+a-f)+" "+(r+c-f*1.2)+","+(h+a)+" "+r+","+(h+a)}o(n,"genPoints");const i=e.append("polygon");i.attr("points",n(t.x,t.y,50,20,7)),i.attr("class","labelBox"),t.y=t.y+t.labelMargin,t.x=t.x+.5*t.labelMargin,It(e,t)},"drawLabel"),Xt=o(function(e,t,n){const i=e.append("g"),r=st();r.x=t.x,r.y=t.y,r.fill=t.fill,r.width=n.width,r.height=n.height,r.class="journey-section section-type-"+t.num,r.rx=3,r.ry=3,J(i,r),Ht(n)(t.text,i,r.x,r.y,r.width,r.height,{class:"journey-section section-type-"+t.num},n,t.colour)},"drawSection"),et=-1,Zt=o(function(e,t,n,i){const r=t.x+n.width/2,h=e.append("g");et++,h.append("line").attr("id",i+"-task"+et).attr("x1",r).attr("y1",t.y).attr("x2",r).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Dt(h,{cx:r,cy:300+(5-t.score)*30,score:t.score});const a=st();a.x=t.x,a.y=t.y,a.fill=t.fill,a.width=n.width,a.height=n.height,a.class="task task-type-"+t.num,a.rx=3,a.ry=3,J(h,a),Ht(n)(t.task,h,a.x,a.y,a.width,a.height,{class:"task"},n,t.colour)},"drawTask"),jt=o(function(e,t){J(e,{x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,class:"rect"}).lower()},"drawBackgroundRect"),qt=o(function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},"getTextObj"),st=o(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),Ht=(function(){function e(r,h,c,a,f,g,m,y){const k=h.append("text").attr("x",c+f/2).attr("y",a+g/2+5).style("font-color",y).style("text-anchor","middle").text(r);i(k,m)}o(e,"byText");function t(r,h,c,a,f,g,m,y,k){const{taskFontSize:s,taskFontFamily:d}=y,l=r.split(//gi);for(let p=0;p)/).reverse(),r,h=[],c=1.1,a=n.attr("y"),f=parseFloat(n.attr("dy")),g=n.text(null).append("tspan").attr("x",0).attr("y",a).attr("dy",f+"em");for(let m=0;mt||r==="
        ")&&(h.pop(),g.text(h.join(" ").trim()),r==="
        "?h=[""]:h=[r],g=n.append("tspan").attr("x",0).attr("y",a).attr("dy",c+"em").text(r))})}o(it,"wrap");var Qt=o(function(e,t,n,i,r,h=!1){const{theme:c,look:a}=i,f=c?.includes("redux"),g=i?.themeVariables?.THEME_COLOR_LIMIT??12,m=n%g-1,y=e.append("g");t.section=m,y.attr("class",(t.class?t.class+" ":"")+"timeline-node "+("section-"+m));const k=y.append("g"),s=y.append("g"),l=s.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(it,t.width).node().getBBox(),p=i.fontSize?.replace?i.fontSize.replace("px",""):i.fontSize;if(t.height=l.height+p*1.1*.5+t.padding,t.height=Math.max(t.height,t.maxHeight),t.width=t.width+2*t.padding,s.attr("transform","translate("+t.width/2+", "+t.padding/2+")"),f&&s.attr("transform",`translate(${t.width/2}, ${h?t.padding/2+3:t.padding})`),te(k,t,m,r,i),a==="neo"&&(y.attr("data-look","neo"),f)){const x=c.includes("dark"),u=e.node()?.ownerSVGElement??e.node(),S=X(u),v=S.attr("id")??"",I=v?`${v}-drop-shadow`:"drop-shadow";if(S.select(`#${I}`).empty()){const R=S.select("defs");(R.empty()?S.append("defs"):R).append("filter").attr("id",I).attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity",x?"0.2":"0.06").attr("flood-color",x?"#FFFFFF":"#000000")}}return t},"drawNode"),Yt=o(function(e,t,n){const i=e.append("g"),h=i.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(it,t.width).node().getBBox(),c=n.fontSize?.replace?n.fontSize.replace("px",""):n.fontSize;return i.remove(),h.height+c*1.1*.5+t.padding},"getVirtualNodeHeight"),te=o(function(e,t,n,i,r){const{theme:h}=r,c=h?.includes("redux")?0:5,a=5,f=c>0?`M0 ${t.height-a} v${-t.height+2*a} q0,-${c},${c},-${c} h${t.width-2*a} q${c},0,${c},${c} v${t.height-a} H0 Z`:`M0 ${t.height-a} v${-(t.height-a)} h${t.width} v${t.height} H0 Z`;e.append("path").attr("id",i+"-node-"+Nt++).attr("class","node-bkg node-"+t.type).attr("d",f),h?.includes("redux")||e.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",t.height).attr("x2",t.width).attr("y2",t.height)},"defaultBkg"),M={drawRect:J,drawCircle:Kt,drawSection:Xt,drawText:It,drawLabel:Ut,drawTask:Zt,drawBackgroundRect:jt,getTextObj:qt,getNoteRect:st,initGraphics:Jt,drawNode:Qt,getVirtualNodeHeight:Yt},ee=o(function(e,t,n,i){const r=gt(),{look:h,theme:c,themeVariables:a}=r,{useGradient:f,gradientStart:g,gradientStop:m}=a,y=r.timeline?.leftMargin??50;E.debug("timeline",i.db);const k=r.securityLevel;let s;k==="sandbox"&&(s=X("#i"+t));const l=(k==="sandbox"?X(s.nodes()[0].contentDocument.body):X("body")).select("#"+t);l.append("g");const p=i.db.getTasks(),x=i.db.getCommonDb().getDiagramTitle();E.debug("task",p),M.initGraphics(l,t);const u=i.db.getSections();E.debug("sections",u);let S=0,v=0,I=0,R=0,W=50+y,O=50;R=50;let L=0,w=!0;u.forEach(function(N){const b={number:L,descr:N,section:L,width:150,padding:20,maxHeight:S},_=M.getVirtualNodeHeight(l,b,r);E.debug("sectionHeight before draw",_),S=Math.max(S,_+20)});let H=0,V=0;E.debug("tasks.length",p.length);for(const[N,b]of p.entries()){const _={number:N,descr:b,section:b.section,width:150,padding:20,maxHeight:v},$=M.getVirtualNodeHeight(l,_,r);E.debug("taskHeight before draw",$),v=Math.max(v,$+20),H=Math.max(H,b.events.length);let T=0;for(const P of b.events){const C={descr:P,section:b.section,number:b.section,width:150,padding:20,maxHeight:50};T+=M.getVirtualNodeHeight(l,C,r)}b.events.length>0&&(T+=(b.events.length-1)*10),V=Math.max(V,T)}E.debug("maxSectionHeight before draw",S),E.debug("maxTaskHeight before draw",v),u&&u.length>0?u.forEach(N=>{const b=p.filter(P=>P.section===N),_={number:L,descr:N,section:L,width:200*Math.max(b.length,1)-50,padding:20,maxHeight:S};E.debug("sectionNode",_);const $=l.append("g"),T=M.drawNode($,_,L,r,t);E.debug("sectionNode output",T),$.attr("transform",`translate(${W}, ${R})`),O+=S+50,b.length>0&<(l,b,L,W,O,v,r,H,V,S,!1,t),W+=200*Math.max(b.length,1),O=R,L++}):(w=!1,lt(l,p,L,W,O,v,r,H,V,S,!0,t));const F=l.node().getBBox();if(E.debug("bounds",F),x&&l.append("text").text(x).attr("x",h==="neo"?F.x*2+y:F.width/2-y).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),I=w?S+v+150:v+100,l.append("g").attr("class","lineWrapper").append("line").attr("x1",y).attr("y1",I).attr("x2",F.width+3*y).attr("y2",I).attr("stroke-width",4).attr("stroke","black").attr("marker-end",`url(#${t}-arrowhead)`),h==="neo"&&f&&c!=="neutral"){const N=l.select("defs"),_=(N.empty()?l.append("defs"):N).append("linearGradient").attr("id",l.attr("id")+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");_.append("stop").attr("offset","0%").attr("stop-color",g).attr("stop-opacity",1),_.append("stop").attr("offset","100%").attr("stop-color",m).attr("stop-opacity",1)}ft(void 0,l,r.timeline?.padding??50,r.timeline?.useMaxWidth??!1)},"draw"),lt=o(function(e,t,n,i,r,h,c,a,f,g,m,y){for(const k of t){const s={descr:k.task,section:n,number:n,width:150,padding:20,maxHeight:h};E.debug("taskNode",s);const d=e.append("g").attr("class","taskWrapper"),p=M.drawNode(d,s,n,c,y).height;if(E.debug("taskHeight after draw",p),d.attr("transform",`translate(${i}, ${r})`),h=Math.max(h,p),k.events){const x=e.append("g").attr("class","lineWrapper");let u=h;r+=100,u=u+ne(e,k.events,n,i,r,c,y),r-=100,x.append("line").attr("x1",i+190/2).attr("y1",r+h).attr("x2",i+190/2).attr("y2",r+h+100+f+100).attr("stroke-width",2).attr("stroke","black").attr("marker-end",`url(#${y}-arrowhead)`).attr("stroke-dasharray","5,5")}i=i+200,m&&!c.timeline?.disableMulticolor&&n++}r=r-10},"drawTasks"),ne=o(function(e,t,n,i,r,h,c){let a=0;const f=r;r=r+100;for(const g of t){const m={descr:g,section:n,number:n,width:150,padding:20,maxHeight:50};E.debug("eventNode",m);const y=e.append("g").attr("class","eventWrapper"),s=M.drawNode(y,m,n,h,c,!0).height;a=a+s,y.attr("transform",`translate(${i}, ${r})`),r=r+10+s}return r=f,a},"drawEvents"),re={setConf:o(()=>{},"setConf"),draw:ee},Q=200,z=5,se=Q+z*2,at=Q+100,ie=at+z*2,Lt=10,ae=0,ht=20,Mt=20,dt=30,At=50,oe=o(function(e,t,n,i){const r=gt(),h=r.timeline?.leftMargin??50;E.debug("timeline",i.db);const c=Pt(t);c.append("g");const a=i.db.getTasks(),f=i.db.getCommonDb().getDiagramTitle();E.debug("task",a),M.initGraphics(c);const g=i.db.getSections();E.debug("sections",g);let m=0,y=0;const k=50+h;let s=50;const d=s,l=k,p=se+Mt,x=ie+At,u=l+p;let S=0;const v=g&&g.length>0,I=v?u:k+p,R=Math.max(50,p+x-z*2);g.forEach(function(N){const b={number:S,descr:N,section:S,width:R,padding:z,maxHeight:m},_=M.getVirtualNodeHeight(c,b,r);E.debug("sectionHeight before draw",_),m=Math.max(m,_)});let W=0;E.debug("tasks.length",a.length);for(const[N,b]of a.entries()){const _={number:N,descr:b,section:b.section,width:Q,padding:z,maxHeight:y},$=M.getVirtualNodeHeight(c,_,r);E.debug("taskHeight before draw",$),y=Math.max(y,$);let T=0;for(const P of b.events){const C={descr:P,section:b.section,number:b.section,width:at,padding:z,maxHeight:50};T+=M.getVirtualNodeHeight(c,C,r)}b.events.length>0&&(T+=(b.events.length-1)*Lt),W=Math.max(W,T)+ae}E.debug("maxSectionHeight before draw",m),E.debug("maxTaskHeight before draw",y);const L=Math.max(y,W)+dt;v?g.forEach(N=>{const b=a.filter(Z=>Z.section===N),_={number:S,descr:N,section:S,width:R,padding:z,maxHeight:m};E.debug("sectionNode",_);const $=c.append("g"),T=M.drawNode($,_,S,r);E.debug("sectionNode output",T);const P=I-p;$.attr("transform",`translate(${P}, ${s})`);const C=s+T.height+ht;b.length>0&&ut(c,b,S,I,C,y,r,L,!1);const G=b.length,B=T.height+ht+L*Math.max(G,1)-(G>0?dt*2:0);s+=B,S++}):ut(c,a,S,I,s,y,r,L,!0);let w=c.node()?.getBBox();if(!w)throw new Error("bbox not found");if(E.debug("bounds",w),f){if(c.append("text").text(f).attr("x",w.width/2-h).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),w=c.node()?.getBBox(),!w)throw new Error("bbox not found");E.debug("bounds after title",w)}const[H]=Bt(r.fontSize),V=(H??16)*2,F=(H??16)*.5+20,U=c.append("g").attr("class","lineWrapper");U.append("line").attr("x1",I).attr("y1",d-V).attr("x2",I).attr("y2",w.y+w.height+F).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),U.lower(),ft(void 0,c,r.timeline?.padding??50,r.timeline?.useMaxWidth??!1)},"draw"),ut=o(function(e,t,n,i,r,h,c,a,f){for(const g of t){const m={descr:g.task,section:n,number:n,width:Q,padding:z,maxHeight:h};E.debug("taskNode",m);const y=e.append("g").attr("class","taskWrapper"),k=M.drawNode(y,m,n,c),s=k.height;E.debug("taskHeight after draw",s);const d=i-Mt-k.width;if(y.attr("transform",`translate(${d}, ${r})`),h=Math.max(h,s),g.events&&g.events.length>0){const l=r,p=i+At;ce(e,g.events,n,i,p,l,c)}r=r+a,f&&!c.timeline?.disableMulticolor&&n++}},"drawTasks"),ce=o(function(e,t,n,i,r,h,c){let a=h;for(const f of t){const g={descr:f,section:n,number:n,width:at,padding:z,maxHeight:0};E.debug("eventNode",g);const m=e.append("g").attr("class","eventWrapper"),k=M.drawNode(m,g,n,c).height;m.attr("transform",`translate(${r}, ${a})`);const s=e.append("g").attr("class","lineWrapper"),d=a+k/2;s.append("line").attr("x1",i).attr("y1",d).attr("x2",r).attr("y2",d).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5"),a=a+k+Lt}return a-h},"drawEvents"),le={setConf:o(()=>{},"setConf"),draw:oe},he=o(e=>{const{theme:t}=pt(),n=t?.includes("dark"),i=t?.includes("color"),r=e.svgId?.replace(/^#/,"")??"",h=r?`url(#${r}-drop-shadow)`:e.dropShadow??"none";let c="";for(let a=0;a0?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(d){return d=this.conditionStack.length-1-Math.abs(d||0),d>=0?this.conditionStack[d]:"INITIAL"},"topState"),pushState:o(function(d){this.begin(d)},"pushState"),stateStackSize:o(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:o(function(d,l,p,x){switch(p){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;case 10:return this.popState(),"acc_title_value";case 11:return this.begin("acc_descr"),17;case 12:return this.popState(),"acc_descr_value";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 k})();g.lexer=m;function y(){this.yy={}}return o(y,"Parser"),y.prototype=g,g.Parser=y,new y})();tt.parser=tt;var Ot=tt,yt={};Vt(yt,{addEvent:()=>Tt,addSection:()=>_t,addTask:()=>Et,addTaskOrg:()=>$t,clear:()=>kt,default:()=>Gt,getCommonDb:()=>xt,getDirection:()=>bt,getSections:()=>wt,getTasks:()=>St,setDirection:()=>vt});var D="",mt=0,nt="LR",rt=[],j=[],q=[],xt=o(()=>Ft,"getCommonDb"),kt=o(function(){rt.length=0,j.length=0,D="",q.length=0,nt="LR",zt()},"clear"),vt=o(function(e){nt=e},"setDirection"),bt=o(function(){return nt},"getDirection"),_t=o(function(e){D=e,rt.push(e)},"addSection"),wt=o(function(){return rt},"getSections"),St=o(function(){let e=ct();const t=100;let n=0;for(;!e&&nn.id===mt-1).events.push(e)},"addEvent"),$t=o(function(e){const t={section:D,type:D,description:e,task:e,classes:[]};j.push(t)},"addTaskOrg"),ct=o(function(){const e=o(function(n){return q[n].processed},"compileTask");let t=!0;for(const[n,i]of q.entries())e(n),t=t&&i.processed;return t},"compileTasks"),Gt={clear:kt,getCommonDb:xt,getDirection:bt,setDirection:vt,addSection:_t,getSections:wt,getTasks:St,addTask:Et,addTaskOrg:$t,addEvent:Tt},Nt=0,J=o(function(e,t){const n=e.append("rect");return n.attr("x",t.x),n.attr("y",t.y),n.attr("fill",t.fill),n.attr("stroke",t.stroke),n.attr("width",t.width),n.attr("height",t.height),n.attr("rx",t.rx),n.attr("ry",t.ry),t.class!==void 0&&n.attr("class",t.class),n},"drawRect"),Dt=o(function(e,t){const 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"),r=e.append("g");r.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"),r.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 h(f){const g=ot().startAngle(Math.PI/2).endAngle(3*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);f.append("path").attr("class","mouth").attr("d",g).attr("transform","translate("+t.cx+","+(t.cy+2)+")")}o(h,"smile");function c(f){const g=ot().startAngle(3*Math.PI/2).endAngle(5*(Math.PI/2)).innerRadius(7.5).outerRadius(6.8181818181818175);f.append("path").attr("class","mouth").attr("d",g).attr("transform","translate("+t.cx+","+(t.cy+7)+")")}o(c,"sad");function a(f){f.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(a,"ambivalent"),t.score>3?h(r):t.score<3?c(r):a(r),i},"drawFace"),qt=o(function(e,t){const n=e.append("circle");return n.attr("cx",t.cx),n.attr("cy",t.cy),n.attr("class","actor-"+t.pos),n.attr("fill",t.fill),n.attr("stroke",t.stroke),n.attr("r",t.r),n.class!==void 0&&n.attr("class",n.class),t.title!==void 0&&n.append("title").text(t.title),n},"drawCircle"),It=o(function(e,t){const n=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);const r=i.append("tspan");return r.attr("x",t.x+t.textMargin*2),r.text(n),i},"drawText"),Kt=o(function(e,t){function n(r,h,c,a,f){return r+","+h+" "+(r+c)+","+h+" "+(r+c)+","+(h+a-f)+" "+(r+c-f*1.2)+","+(h+a)+" "+r+","+(h+a)}o(n,"genPoints");const i=e.append("polygon");i.attr("points",n(t.x,t.y,50,20,7)),i.attr("class","labelBox"),t.y=t.y+t.labelMargin,t.x=t.x+.5*t.labelMargin,It(e,t)},"drawLabel"),Ut=o(function(e,t,n){const i=e.append("g"),r=st();r.x=t.x,r.y=t.y,r.fill=t.fill,r.width=n.width,r.height=n.height,r.class="journey-section section-type-"+t.num,r.rx=3,r.ry=3,J(i,r),Ht(n)(t.text,i,r.x,r.y,r.width,r.height,{class:"journey-section section-type-"+t.num},n,t.colour)},"drawSection"),et=-1,Xt=o(function(e,t,n,i){const r=t.x+n.width/2,h=e.append("g");et++,h.append("line").attr("id",i+"-task"+et).attr("x1",r).attr("y1",t.y).attr("x2",r).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Dt(h,{cx:r,cy:300+(5-t.score)*30,score:t.score});const a=st();a.x=t.x,a.y=t.y,a.fill=t.fill,a.width=n.width,a.height=n.height,a.class="task task-type-"+t.num,a.rx=3,a.ry=3,J(h,a),Ht(n)(t.task,h,a.x,a.y,a.width,a.height,{class:"task"},n,t.colour)},"drawTask"),Zt=o(function(e,t){J(e,{x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,class:"rect"}).lower()},"drawBackgroundRect"),jt=o(function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},"getTextObj"),st=o(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),Ht=(function(){function e(r,h,c,a,f,g,m,y){const k=h.append("text").attr("x",c+f/2).attr("y",a+g/2+5).style("font-color",y).style("text-anchor","middle").text(r);i(k,m)}o(e,"byText");function t(r,h,c,a,f,g,m,y,k){const{taskFontSize:s,taskFontFamily:d}=y,l=r.split(//gi);for(let p=0;p)/).reverse(),r,h=[],c=1.1,a=n.attr("y"),f=parseFloat(n.attr("dy")),g=n.text(null).append("tspan").attr("x",0).attr("y",a).attr("dy",f+"em");for(let m=0;mt||r==="
        ")&&(h.pop(),g.text(h.join(" ").trim()),r==="
        "?h=[""]:h=[r],g=n.append("tspan").attr("x",0).attr("y",a).attr("dy",c+"em").text(r))})}o(it,"wrap");var Qt=o(function(e,t,n,i,r,h=!1){const{theme:c,look:a}=i,f=c?.includes("redux"),g=i?.themeVariables?.THEME_COLOR_LIMIT??12,m=n%g-1,y=e.append("g");t.section=m,y.attr("class",(t.class?t.class+" ":"")+"timeline-node "+("section-"+m));const k=y.append("g"),s=y.append("g"),l=s.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(it,t.width).node().getBBox(),p=i.fontSize?.replace?i.fontSize.replace("px",""):i.fontSize;if(t.height=l.height+p*1.1*.5+t.padding,t.height=Math.max(t.height,t.maxHeight),t.width=t.width+2*t.padding,s.attr("transform","translate("+t.width/2+", "+t.padding/2+")"),f&&s.attr("transform",`translate(${t.width/2}, ${h?t.padding/2+3:t.padding})`),te(k,t,m,r,i),a==="neo"&&(y.attr("data-look","neo"),f)){const x=c.includes("dark"),u=e.node()?.ownerSVGElement??e.node(),S=U(u),v=S.attr("id")??"",I=v?`${v}-drop-shadow`:"drop-shadow";if(S.select(`#${I}`).empty()){const R=S.select("defs");(R.empty()?S.append("defs"):R).append("filter").attr("id",I).attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity",x?"0.2":"0.06").attr("flood-color",x?"#FFFFFF":"#000000")}}return t},"drawNode"),Yt=o(function(e,t,n){const i=e.append("g"),h=i.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(it,t.width).node().getBBox(),c=n.fontSize?.replace?n.fontSize.replace("px",""):n.fontSize;return i.remove(),h.height+c*1.1*.5+t.padding},"getVirtualNodeHeight"),te=o(function(e,t,n,i,r){const{theme:h}=r,c=h?.includes("redux")?0:5,a=5,f=c>0?`M0 ${t.height-a} v${-t.height+2*a} q0,-${c},${c},-${c} h${t.width-2*a} q${c},0,${c},${c} v${t.height-a} H0 Z`:`M0 ${t.height-a} v${-(t.height-a)} h${t.width} v${t.height} H0 Z`;e.append("path").attr("id",i+"-node-"+Nt++).attr("class","node-bkg node-"+t.type).attr("d",f),h?.includes("redux")||e.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",t.height).attr("x2",t.width).attr("y2",t.height)},"defaultBkg"),M={drawRect:J,drawCircle:qt,drawSection:Ut,drawText:It,drawLabel:Kt,drawTask:Xt,drawBackgroundRect:Zt,getTextObj:jt,getNoteRect:st,initGraphics:Jt,drawNode:Qt,getVirtualNodeHeight:Yt},ee=o(function(e,t,n,i){const r=gt(),{look:h,theme:c,themeVariables:a}=r,{useGradient:f,gradientStart:g,gradientStop:m}=a,y=r.timeline?.leftMargin??50;E.debug("timeline",i.db);const k=r.securityLevel;let s;k==="sandbox"&&(s=U("#i"+t));const l=(k==="sandbox"?U(s.nodes()[0].contentDocument.body):U("body")).select("#"+t);l.append("g");const p=i.db.getTasks(),x=i.db.getCommonDb().getDiagramTitle();E.debug("task",p),M.initGraphics(l,t);const u=i.db.getSections();E.debug("sections",u);let S=0,v=0,I=0,R=0,W=50+y,O=50;R=50;let L=0,w=!0;u.forEach(function(N){const b={number:L,descr:N,section:L,width:150,padding:20,maxHeight:S},_=M.getVirtualNodeHeight(l,b,r);E.debug("sectionHeight before draw",_),S=Math.max(S,_+20)});let H=0,V=0;E.debug("tasks.length",p.length);for(const[N,b]of p.entries()){const _={number:N,descr:b,section:b.section,width:150,padding:20,maxHeight:v},$=M.getVirtualNodeHeight(l,_,r);E.debug("taskHeight before draw",$),v=Math.max(v,$+20),H=Math.max(H,b.events.length);let T=0;for(const P of b.events){const C={descr:P,section:b.section,number:b.section,width:150,padding:20,maxHeight:50};T+=M.getVirtualNodeHeight(l,C,r)}b.events.length>0&&(T+=(b.events.length-1)*10),V=Math.max(V,T)}E.debug("maxSectionHeight before draw",S),E.debug("maxTaskHeight before draw",v),u&&u.length>0?u.forEach(N=>{const b=p.filter(P=>P.section===N),_={number:L,descr:N,section:L,width:200*Math.max(b.length,1)-50,padding:20,maxHeight:S};E.debug("sectionNode",_);const $=l.append("g"),T=M.drawNode($,_,L,r,t);E.debug("sectionNode output",T),$.attr("transform",`translate(${W}, ${R})`),O+=S+50,b.length>0&<(l,b,L,W,O,v,r,H,V,S,!1,t),W+=200*Math.max(b.length,1),O=R,L++}):(w=!1,lt(l,p,L,W,O,v,r,H,V,S,!0,t));const F=l.node().getBBox();if(E.debug("bounds",F),x&&l.append("text").text(x).attr("x",h==="neo"?F.x*2+y:F.width/2-y).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),I=w?S+v+150:v+100,l.append("g").attr("class","lineWrapper").append("line").attr("x1",y).attr("y1",I).attr("x2",F.width+3*y).attr("y2",I).attr("stroke-width",4).attr("stroke","black").attr("marker-end",`url(#${t}-arrowhead)`),h==="neo"&&f&&c!=="neutral"){const N=l.select("defs"),_=(N.empty()?l.append("defs"):N).append("linearGradient").attr("id",l.attr("id")+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");_.append("stop").attr("offset","0%").attr("stop-color",g).attr("stop-opacity",1),_.append("stop").attr("offset","100%").attr("stop-color",m).attr("stop-opacity",1)}ft(void 0,l,r.timeline?.padding??50,r.timeline?.useMaxWidth??!1)},"draw"),lt=o(function(e,t,n,i,r,h,c,a,f,g,m,y){for(const k of t){const s={descr:k.task,section:n,number:n,width:150,padding:20,maxHeight:h};E.debug("taskNode",s);const d=e.append("g").attr("class","taskWrapper"),p=M.drawNode(d,s,n,c,y).height;if(E.debug("taskHeight after draw",p),d.attr("transform",`translate(${i}, ${r})`),h=Math.max(h,p),k.events){const x=e.append("g").attr("class","lineWrapper");let u=h;r+=100,u=u+ne(e,k.events,n,i,r,c,y),r-=100,x.append("line").attr("x1",i+190/2).attr("y1",r+h).attr("x2",i+190/2).attr("y2",r+h+100+f+100).attr("stroke-width",2).attr("stroke","black").attr("marker-end",`url(#${y}-arrowhead)`).attr("stroke-dasharray","5,5")}i=i+200,m&&!c.timeline?.disableMulticolor&&n++}r=r-10},"drawTasks"),ne=o(function(e,t,n,i,r,h,c){let a=0;const f=r;r=r+100;for(const g of t){const m={descr:g,section:n,number:n,width:150,padding:20,maxHeight:50};E.debug("eventNode",m);const y=e.append("g").attr("class","eventWrapper"),s=M.drawNode(y,m,n,h,c,!0).height;a=a+s,y.attr("transform",`translate(${i}, ${r})`),r=r+10+s}return r=f,a},"drawEvents"),re={setConf:o(()=>{},"setConf"),draw:ee},Q=200,z=5,se=Q+z*2,at=Q+100,ie=at+z*2,Lt=10,ae=0,ht=20,Mt=20,dt=30,At=50,oe=o(function(e,t,n,i){const r=gt(),h=r.timeline?.leftMargin??50;E.debug("timeline",i.db);const c=Pt(t);c.append("g");const a=i.db.getTasks(),f=i.db.getCommonDb().getDiagramTitle();E.debug("task",a),M.initGraphics(c);const g=i.db.getSections();E.debug("sections",g);let m=0,y=0;const k=50+h;let s=50;const d=s,l=k,p=se+Mt,x=ie+At,u=l+p;let S=0;const v=g&&g.length>0,I=v?u:k+p,R=Math.max(50,p+x-z*2);g.forEach(function(N){const b={number:S,descr:N,section:S,width:R,padding:z,maxHeight:m},_=M.getVirtualNodeHeight(c,b,r);E.debug("sectionHeight before draw",_),m=Math.max(m,_)});let W=0;E.debug("tasks.length",a.length);for(const[N,b]of a.entries()){const _={number:N,descr:b,section:b.section,width:Q,padding:z,maxHeight:y},$=M.getVirtualNodeHeight(c,_,r);E.debug("taskHeight before draw",$),y=Math.max(y,$);let T=0;for(const P of b.events){const C={descr:P,section:b.section,number:b.section,width:at,padding:z,maxHeight:50};T+=M.getVirtualNodeHeight(c,C,r)}b.events.length>0&&(T+=(b.events.length-1)*Lt),W=Math.max(W,T)+ae}E.debug("maxSectionHeight before draw",m),E.debug("maxTaskHeight before draw",y);const L=Math.max(y,W)+dt;v?g.forEach(N=>{const b=a.filter(X=>X.section===N),_={number:S,descr:N,section:S,width:R,padding:z,maxHeight:m};E.debug("sectionNode",_);const $=c.append("g"),T=M.drawNode($,_,S,r);E.debug("sectionNode output",T);const P=I-p;$.attr("transform",`translate(${P}, ${s})`);const C=s+T.height+ht;b.length>0&&ut(c,b,S,I,C,y,r,L,!1);const G=b.length,B=T.height+ht+L*Math.max(G,1)-(G>0?dt*2:0);s+=B,S++}):ut(c,a,S,I,s,y,r,L,!0);let w=c.node()?.getBBox();if(!w)throw new Error("bbox not found");if(E.debug("bounds",w),f){if(c.append("text").text(f).attr("x",w.width/2-h).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),w=c.node()?.getBBox(),!w)throw new Error("bbox not found");E.debug("bounds after title",w)}const[H]=Bt(r.fontSize),V=(H??16)*2,F=(H??16)*.5+20,K=c.append("g").attr("class","lineWrapper");K.append("line").attr("x1",I).attr("y1",d-V).attr("x2",I).attr("y2",w.y+w.height+F).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),K.lower(),ft(void 0,c,r.timeline?.padding??50,r.timeline?.useMaxWidth??!1)},"draw"),ut=o(function(e,t,n,i,r,h,c,a,f){for(const g of t){const m={descr:g.task,section:n,number:n,width:Q,padding:z,maxHeight:h};E.debug("taskNode",m);const y=e.append("g").attr("class","taskWrapper"),k=M.drawNode(y,m,n,c),s=k.height;E.debug("taskHeight after draw",s);const d=i-Mt-k.width;if(y.attr("transform",`translate(${d}, ${r})`),h=Math.max(h,s),g.events&&g.events.length>0){const l=r,p=i+At;ce(e,g.events,n,i,p,l,c)}r=r+a,f&&!c.timeline?.disableMulticolor&&n++}},"drawTasks"),ce=o(function(e,t,n,i,r,h,c){let a=h;for(const f of t){const g={descr:f,section:n,number:n,width:at,padding:z,maxHeight:0};E.debug("eventNode",g);const m=e.append("g").attr("class","eventWrapper"),k=M.drawNode(m,g,n,c).height;m.attr("transform",`translate(${r}, ${a})`);const s=e.append("g").attr("class","lineWrapper"),d=a+k/2;s.append("line").attr("x1",i).attr("y1",d).attr("x2",r).attr("y2",d).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5"),a=a+k+Lt}return a-h},"drawEvents"),le={setConf:o(()=>{},"setConf"),draw:oe},he=o(e=>{const{theme:t}=pt(),n=t?.includes("dark"),i=t?.includes("color"),r=e.svgId?.replace(/^#/,"")??"",h=r?`url(#${r}-drop-shadow)`:e.dropShadow??"none";let c="";for(let a=0;a{},"setConf"),draw:o((e,t,n,i)=>(i?.db?.getDirection?.()??"LR")==="TD"?le.draw(e,t,n,i):re.draw(e,t,n,i),"draw")},ke={db:yt,renderer:ge,parser:Ot,styles:pe};export{ke as diagram}; +`},"getStyles"),pe=ue,ge={setConf:o(()=>{},"setConf"),draw:o((e,t,n,i)=>(i?.db?.getDirection?.()??"LR")==="TD"?le.draw(e,t,n,i):re.draw(e,t,n,i),"draw")},xe={db:yt,renderer:ge,parser:Ot,styles:pe};export{xe as diagram}; diff --git a/apps/kimi-code/dist-web/assets/turnDiff.worker-BzeNtFko.js b/apps/kimi-code/dist-web/assets/turnDiff.worker-BzeNtFko.js new file mode 100644 index 000000000..cea69eee3 --- /dev/null +++ b/apps/kimi-code/dist-web/assets/turnDiff.worker-BzeNtFko.js @@ -0,0 +1,5 @@ +class _{diff(e,n,t={}){let i;typeof t=="function"?(i=t,t={}):"callback"in t&&(i=t.callback);const r=this.castInput(e,t),a=this.castInput(n,t),c=this.removeEmpty(this.tokenize(r,t)),s=this.removeEmpty(this.tokenize(a,t));return this.diffWithOptionsObj(c,s,t,i)}diffWithOptionsObj(e,n,t,i){var r;const a=l=>{if(l=this.postProcess(l,t),i){setTimeout(function(){i(l)},0);return}else return l},c=n.length,s=e.length;let u=1,o=c+s;t.maxEditLength!=null&&(o=Math.min(o,t.maxEditLength));const m=(r=t.timeout)!==null&&r!==void 0?r:1/0,h=Date.now()+m,f=[{oldPos:-1,lastComponent:void 0}];let p=this.extractCommon(f[0],n,e,0,t);if(f[0].oldPos+1>=s&&p+1>=c)return a(this.buildValues(f[0].lastComponent,n,e));let L=-1/0,v=1/0;const x=()=>{for(let l=Math.max(L,-u);l<=Math.min(v,u);l+=2){let g;const P=f[l-1],C=f[l+1];P&&(f[l-1]=void 0);let w=!1;if(C){const y=C.oldPos-l;w=C&&0<=y&&y=s&&p+1>=c)return a(this.buildValues(g.lastComponent,n,e))||!0;f[l]=g,g.oldPos+1>=s&&(v=Math.min(v,l-1)),p+1>=c&&(L=Math.max(L,l+1))}u++};if(i)(function l(){setTimeout(function(){if(u>o||Date.now()>h)return i(void 0);x()||l()},0)})();else for(;u<=o&&Date.now()<=h;){const l=x();if(l)return l}}addToPath(e,n,t,i,r){const a=e.lastComponent;return a&&!r.oneChangePerToken&&a.added===n&&a.removed===t?{oldPos:e.oldPos+i,lastComponent:{count:a.count+1,added:n,removed:t,previousComponent:a.previousComponent}}:{oldPos:e.oldPos+i,lastComponent:{count:1,added:n,removed:t,previousComponent:a}}}extractCommon(e,n,t,i,r){const a=n.length,c=t.length;let s=e.oldPos,u=s-i,o=0;for(;u+1h.length?p:h}),o.value=this.join(m)}else o.value=this.join(n.slice(s,s+o.count));s+=o.count,o.added||(u+=o.count)}}return i}}class W extends _{tokenize(e){return e.slice()}join(e){return e}removeEmpty(e){return e}}const j=new W;function A(d,e,n){return j.diff(d,e,n)}const O=5e3,N=200;function D(d){return d===""?[]:d.endsWith(` +`)?d.slice(0,-1).split(` +`):d.split(` +`)}const M="\0";function I(d){return d===""||d.endsWith(` +`)?d:`${d}${M}`}function F(d,e,n,t=O){const i=D(I(d)),r=D(I(e));if(i.length>t||r.length>t)return n?.({reason:"line_limit",oldLines:i.length,newLines:r.length,maxLines:t}),null;const a=A(i,r,{timeout:N});if(a===void 0)return n?.({reason:"timeout",oldLines:i.length,newLines:r.length,timeoutMs:N}),null;const c=[];let s=1,u=1;for(const o of a)for(const m of o.value){const h=m.endsWith(M)?m.slice(0,-1):m;o.added?c.push({type:"add",text:h,newNo:u++}):o.removed?c.push({type:"del",text:h,oldNo:s++}):c.push({type:"context",text:h,oldNo:s++,newNo:u++})}return c}self.onmessage=d=>{let e;const n=F(d.data.before,d.data.after,t=>{e=t},2e4);self.postMessage({lines:n,unavailable:e})}; diff --git a/apps/kimi-code/dist-web/assets/vennDiagram-L72KCM5P-BhpzFpgZ.js b/apps/kimi-code/dist-web/assets/vennDiagram-L72KCM5P-Cwt-aDWP.js similarity index 54% rename from apps/kimi-code/dist-web/assets/vennDiagram-L72KCM5P-BhpzFpgZ.js rename to apps/kimi-code/dist-web/assets/vennDiagram-L72KCM5P-Cwt-aDWP.js index 341bb18c4..9b263ce5f 100644 --- a/apps/kimi-code/dist-web/assets/vennDiagram-L72KCM5P-BhpzFpgZ.js +++ b/apps/kimi-code/dist-web/assets/vennDiagram-L72KCM5P-Cwt-aDWP.js @@ -1,4 +1,4 @@ -import{b4 as Wt,s as Kt,g as Ht,o as Yt,n as Xt,a as Zt,b as Jt,_ as w,y as wt,D as Qt,d as ot,al as $t,aa as te,ab as ee,ac as ne,e as se,p as ie,A as oe,B as re}from"./mermaid.core-CgZTgv7Y.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";const kt=(t,n)=>Wt(t,"a",-n),_t=1e-10;function st(t,n){const s=le(t),e=s.filter(l=>ae(l,t));let i=0,o=0;const r=[];if(e.length>1){const l=Et(e);for(let u=0;ua.angle-u.angle);let f=e[e.length-1];for(let u=0;up.radius*2&&(g=p.radius*2),(h==null||h.width>g)&&(h={circle:p,width:g,p1:a,p2:f,large:g>p.radius,sweep:!0})}h!=null&&(r.push(h),i+=lt(h.circle.radius,h.width),f=a)}}else{let l=t[0];for(let u=1;uMath.abs(l.radius-t[u].radius)){f=!0;break}f?i=o=0:(i=l.radius*l.radius*Math.PI,r.push({circle:l,p1:{x:l.x,y:l.y+l.radius},p2:{x:l.x-_t,y:l.y+l.radius},width:l.radius*2,large:!0,sweep:!0}))}return o/=2,n&&(n.area=i+o,n.arcArea=i,n.polygonArea=o,n.arcs=r,n.innerPoints=e,n.intersectionPoints=s),i+o}function ae(t,n){return n.every(s=>q(t,s)=t+n)return 0;if(s<=Math.abs(t-n))return Math.PI*Math.min(t,n)*Math.min(t,n);const e=t-(s*s-n*n+t*t)/(2*s),i=n-(s*s-t*t+n*n)/(2*s);return lt(t,e)+lt(n,i)}function Tt(t,n){const s=q(t,n),e=t.radius,i=n.radius;if(s>=e+i||s<=Math.abs(e-i))return[];const o=(e*e-i*i+s*s)/(2*s),r=Math.sqrt(e*e-o*o),l=t.x+o*(n.x-t.x)/s,f=t.y+o*(n.y-t.y)/s,u=-(n.y-t.y)*(r/s),a=-(n.x-t.x)*(r/s);return[{x:l+u,y:f-a},{x:l-u,y:f+a}]}function Et(t){const n={x:0,y:0};for(const s of t)n.x+=s.x,n.y+=s.y;return n.x/=t.length,n.y/=t.length,n}function ce(t,n,s,e){e=e||{};const i=e.maxIterations||100,o=e.tolerance||1e-10,r=t(n),l=t(s);let f=s-n;if(r*l>0)throw"Initial bisect points must have opposite signs";if(r===0)return n;if(l===0)return s;for(let u=0;u=0&&(n=a),Math.abs(f)ct(n))}function $(t,n){let s=0;for(let e=0;ev.fx-c.fx,_=n.slice(),S=n.slice(),g=n.slice(),m=n.slice();for(let v=0;v{const D=d.slice();return D.fx=d.fx,D.id=d.id,D});x.sort((d,D)=>d.id-D.id),s.history.push({x:p[0].slice(),fx:p[0].fx,simplex:x})}h=0;for(let x=0;x=p[b-1].fx){let x=!1;if(S.fx>c.fx?(J(g,1+a,_,-a,c),g.fx=t(g),g.fx=1)break;for(let d=1;dl+o*i*f||u>=E)M=i;else{if(Math.abs(y)<=-r*f)return i;y*(M-p)>=0&&(M=p),p=i,E=u}return 0}for(let p=0;p<10;++p){if(J(e.x,1,s.x,i,n),u=e.fx=t(e.x,e.fxprime),y=$(e.fxprime,n),u>l+o*i*f||p&&u>=a)return b(h,i,a);if(Math.abs(y)<=-r*f)return i;if(y>=0)return b(i,h,u);a=u,h=i,i*=2}return i}function fe(t,n,s){let e={x:n.slice(),fx:0,fxprime:n.slice()},i={x:n.slice(),fx:0,fxprime:n.slice()};const o=n.slice();let r,l,f=1,u;s=s||{},u=s.maxIterations||n.length*20,e.fx=t(e.x,e.fxprime),r=e.fxprime.slice(),ft(r,e.fxprime,-1);for(let a=0;a{const y={};for(let h=0;hxt(t,n,e)-s,0,t+n)}function he(t,n={}){const s=n.distinct,e=t.map(l=>Object.assign({},l));function i(l){return l.join(";")}if(s){const l=new Map;for(const f of e)for(let u=0;ul===f?0:lo.sets.length===2).forEach(o=>{const r=s[o.sets[0]],l=s[o.sets[1]],f=Math.sqrt(n[r].size/Math.PI),u=Math.sqrt(n[l].size/Math.PI),a=ht(f,u,o.size);e[r][l]=e[l][r]=a;let y=0;o.size+1e-10>=Math.min(n[r].size,n[l].size)?y=1:o.size<=1e-10&&(y=-1),i[r][l]=i[l][r]=y}),{distances:e,constraints:i}}function ge(t,n,s,e){for(let o=0;o0&&p<=y||h<0&&p>=y||(i+=2*M*M,n[2*o]+=4*M*(r-u),n[2*o+1]+=4*M*(l-a),n[2*f]+=4*M*(u-r),n[2*f+1]+=4*M*(a-l))}}return i}function xe(t,n={}){let s=pe(t,n);const e=n.lossFunction||tt;if(t.length>=8){const i=ye(t,n),o=e(i,t),r=e(s,t);o+1e-8h.map(b=>b/l));const f=(h,b)=>ge(h,b,o,r);let u=null;for(let h=0;hy.sets.length===2);for(const y of t){let h=y.weight!=null?y.weight:1;const b=y.sets[0],p=y.sets[1];y.size+Rt>=Math.min(e[b].size,e[p].size)&&(h=0),i[b].push({set:p,size:y.size,weight:h}),i[p].push({set:b,size:y.size,weight:h})}const o=[];Object.keys(i).forEach(y=>{let h=0;for(let b=0;bt[r]));const o=e.weight!=null?e.weight:1;s+=o*(i-e.size)*(i-e.size)}return s}function Dt(t,n){let s=0;for(const e of n){if(e.sets.length===1)continue;let i;if(e.sets.length===2){const l=t[e.sets[0]],f=t[e.sets[1]];i=xt(l.radius,f.radius,q(l,f))}else i=st(e.sets.map(l=>t[l]));const o=e.weight!=null?e.weight:1,r=Math.log((i+1)/(e.size+1));s+=o*r*r}return s}function me(t,n,s){if(s==null?t.sort((i,o)=>o.radius-i.radius):t.sort(s),t.length>0){const i=t[0].x,o=t[0].y;for(const r of t)r.x-=i,r.y-=o}if(t.length===2&&q(t[0],t[1])1){const i=Math.atan2(t[1].x,t[1].y)-n,o=Math.cos(i),r=Math.sin(i);for(const l of t){const f=l.x,u=l.y;l.x=o*f-r*u,l.y=r*f+o*u}}if(t.length>2){let i=Math.atan2(t[2].x,t[2].y)-n;for(;i<0;)i+=2*Math.PI;for(;i>2*Math.PI;)i-=2*Math.PI;if(i>Math.PI){const o=t[1].y/(1e-10+t[1].x);for(const r of t){var e=(r.x+o*r.y)/(1+o*o);r.x=2*e-r.x,r.y=2*e*o-r.y}}}}function be(t){t.forEach(i=>{i.parent=i});function n(i){return i.parent!==i&&(i.parent=n(i.parent)),i.parent}function s(i,o){const r=n(i),l=n(o);r.parent=l}for(let i=0;i{delete i.parent}),Array.from(e.values())}function dt(t){const n=s=>{const e=t.reduce((o,r)=>Math.max(o,r[s]+r.radius),Number.NEGATIVE_INFINITY),i=t.reduce((o,r)=>Math.min(o,r[s]-r.radius),Number.POSITIVE_INFINITY);return{max:e,min:i}};return{xRange:n("x"),yRange:n("y")}}function Ct(t,n,s){n==null&&(n=Math.PI/2);let e=Ft(t).map(u=>Object.assign({},u));const i=be(e);for(const u of i){me(u,n,s);const a=dt(u);u.size=(a.xRange.max-a.xRange.min)*(a.yRange.max-a.yRange.min),u.bounds=a}i.sort((u,a)=>a.size-u.size),e=i[0];let o=e.bounds;const r=(o.xRange.max-o.xRange.min)/50;function l(u,a,y){if(!u)return;const h=u.bounds;let b,p;if(a)b=o.xRange.max-h.xRange.min+r;else{b=o.xRange.max-h.xRange.max;const M=(h.xRange.max-h.xRange.min)/2-(o.xRange.max-o.xRange.min)/2;M<0&&(b+=M)}if(y)p=o.yRange.max-h.yRange.min+r;else{p=o.yRange.max-h.yRange.max;const M=(h.yRange.max-h.yRange.min)/2-(o.yRange.max-o.yRange.min)/2;M<0&&(p+=M)}for(const M of u)M.x+=b,M.y+=p,e.push(M)}let f=1;for(;f({radius:a*b.radius,x:e+y+(b.x-r.min)*a,y:e+h+(b.y-l.min)*a,setid:b.setid})))}function Ot(t){const n={};for(const s of t)n[s.setid]=s;return n}function Ft(t){return Object.keys(t).map(s=>Object.assign(t[s],{setid:s}))}function ve(t={}){let n=!1,s=600,e=350,i=15,o=1e3,r=Math.PI/2,l=!0,f=null,u=!0,a=!0,y=null,h=null,b=!1,p=null,M=t&&t.symmetricalTextCentre?t.symmetricalTextCentre:!1,E={},_=t&&t.colourScheme?t.colourScheme:t&&t.colorScheme?t.colorScheme:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],S=0,g=function(x){if(x in E)return E[x];var d=E[x]=_[S];return S+=1,S>=_.length&&(S=0),d},m=At,v=tt;function c(x){let d=x.datum();const D=new Set;d.forEach(k=>{k.size==0&&k.sets.length==1&&D.add(k.sets[0])}),d=d.filter(k=>!k.sets.some(F=>D.has(F)));let I={},C={};if(d.length>0){let k=m(d,{lossFunction:v,distinct:b});l&&(k=Ct(k,r,h)),I=Nt(k,s,e,i,f),C=Lt(I,d,M)}const U={};d.forEach(k=>{k.label&&(U[k.sets]=k.label)});function V(k){if(k.sets in U)return U[k.sets];if(k.sets.length==1)return""+k.sets[0]}x.selectAll("svg").data([I]).enter().append("svg");const O=x.select("svg");n?O.attr("viewBox",`0 0 ${s} ${e}`):O.attr("width",s).attr("height",e);const R={};let T=!1;O.selectAll(".venn-area path").each(function(k){const F=this.getAttribute("d");k.sets.length==1&&F&&!b&&(T=!0,R[k.sets[0]]=Me(F))});function A(k){return F=>{const H=k.sets.map(et=>{let Y=R[et],Z=I[et];return Y||(Y={x:s/2,y:e/2,radius:1}),Z||(Z={x:s/2,y:e/2,radius:1}),{x:Y.x*(1-F)+Z.x*F,y:Y.y*(1-F)+Z.y*F,radius:Y.radius*(1-F)+Z.radius*F}});return St(H,p)}}const G=O.selectAll(".venn-area").data(d,k=>k.sets),P=G.enter().append("g").attr("class",k=>`venn-area venn-${k.sets.length==1?"circle":"intersection"}${k.colour||k.color?" venn-coloured":""}`).attr("data-venn-sets",k=>k.sets.join("_")),B=P.append("path"),L=P.append("text").attr("class","label").text(k=>V(k)).attr("text-anchor","middle").attr("dy",".35em").attr("x",s/2).attr("y",e/2);a&&(B.style("fill-opacity","0").filter(k=>k.sets.length==1).style("fill",k=>k.colour?k.colour:k.color?k.color:g(k.sets)).style("fill-opacity",".25"),L.style("fill",k=>k.colour||k.color?"#FFF":t.textFill?t.textFill:k.sets.length==1?g(k.sets):"#444"));function K(k){return typeof k.transition=="function"?k.transition("venn").duration(o):k}let z=x;T&&typeof z.transition=="function"?(z=K(x),z.selectAll("path").attrTween("d",A)):z.selectAll("path").attr("d",k=>St(k.sets.map(F=>I[F])),p);const N=z.selectAll("text").filter(k=>k.sets in C).text(k=>V(k)).attr("x",k=>Math.floor(C[k.sets].x)).attr("y",k=>Math.floor(C[k.sets].y));u&&(T?"on"in N?N.on("end",rt(I,V)):N.each("end",rt(I,V)):N.each(rt(I,V)));const j=K(G.exit()).remove();typeof G.transition=="function"&&j.selectAll("path").attrTween("d",A);const X=j.selectAll("text").attr("x",s/2).attr("y",e/2);return y!==null&&(L.style("font-size","0px"),N.style("font-size",y),X.style("font-size","0px")),{circles:I,textCentres:C,nodes:G,enter:P,update:z,exit:j}}return c.wrap=function(x){return arguments.length?(u=x,c):u},c.useViewBox=function(){return n=!0,c},c.width=function(x){return arguments.length?(s=x,c):s},c.height=function(x){return arguments.length?(e=x,c):e},c.padding=function(x){return arguments.length?(i=x,c):i},c.distinct=function(x){return arguments.length?(b=x,c):b},c.colours=function(x){return arguments.length?(g=x,c):g},c.colors=function(x){return arguments.length?(g=x,c):g},c.fontSize=function(x){return arguments.length?(y=x,c):y},c.round=function(x){return arguments.length?(p=x,c):p},c.duration=function(x){return arguments.length?(o=x,c):o},c.layoutFunction=function(x){return arguments.length?(m=x,c):m},c.normalize=function(x){return arguments.length?(l=x,c):l},c.scaleToFit=function(x){return arguments.length?(f=x,c):f},c.styled=function(x){return arguments.length?(a=x,c):a},c.orientation=function(x){return arguments.length?(r=x,c):r},c.orientationOrder=function(x){return arguments.length?(h=x,c):h},c.lossFunction=function(x){return arguments.length?(v=x==="default"?tt:x==="logRatio"?Dt:x,c):v},c}function rt(t,n){return function(s){const e=this,i=t[s.sets[0]].radius||50,o=n(s)||"",r=o.split(/\s+/).reverse(),f=(o.length+r.length)/3;let u=r.pop(),a=[u],y=0;const h=1.1;e.textContent=null;const b=[];function p(g){const m=e.ownerDocument.createElementNS(e.namespaceURI,"tspan");return m.textContent=g,b.push(m),e.append(m),m}let M=p(u);for(;u=r.pop(),!!u;){a.push(u);const g=a.join(" ");M.textContent=g,g.length>f&&M.getComputedTextLength()>i&&(a.pop(),M.textContent=a.join(" "),a=[u],M=p(u),y++)}const E=.35-y*h/2,_=e.getAttribute("x"),S=e.getAttribute("y");b.forEach((g,m)=>{g.setAttribute("x",_),g.setAttribute("y",S),g.setAttribute("dy",`${E+m*h}em`)})}}function at(t,n,s){let e=n[0].radius-q(n[0],t);for(let i=1;i=o&&(i=e[a],o=y)}const r=zt(a=>-1*at({x:a[0],y:a[1]},t,n),[i.x,i.y],{maxIterations:500,minErrorDelta:1e-10}).x,l={x:s?0:r[0],y:r[1]};let f=!0;for(const a of t)if(q(l,a)>a.radius){f=!1;break}for(const a of n)if(q(l,a)a.p1))}function Ie(t){const n={},s=Object.keys(t);for(const e of s)n[e]=[];for(let e=0;e0&&console.log("WARNING: area "+r+" not represented on screen")}return e}function ke(t,n,s){const e=[];return e.push(` +import{b4 as Wt,s as Kt,g as Ht,p as Yt,o as Xt,a as Zt,b as Jt,_ as w,z as wt,F as Qt,d as ot,al as $t,aa as te,ab as ee,ac as ne,e as se,q as ie,B as oe,D as re}from"./mermaid.core-B_UcP3X_.js";import"./index-BOtIzGLC.js";const kt=(t,n)=>Wt(t,"a",-n),_t=1e-10;function st(t,n){const s=le(t),e=s.filter(l=>ae(l,t));let i=0,o=0;const r=[];if(e.length>1){const l=Et(e);for(let u=0;ua.angle-u.angle);let f=e[e.length-1];for(let u=0;up.radius*2&&(g=p.radius*2),(h==null||h.width>g)&&(h={circle:p,width:g,p1:a,p2:f,large:g>p.radius,sweep:!0})}h!=null&&(r.push(h),i+=lt(h.circle.radius,h.width),f=a)}}else{let l=t[0];for(let u=1;uMath.abs(l.radius-t[u].radius)){f=!0;break}f?i=o=0:(i=l.radius*l.radius*Math.PI,r.push({circle:l,p1:{x:l.x,y:l.y+l.radius},p2:{x:l.x-_t,y:l.y+l.radius},width:l.radius*2,large:!0,sweep:!0}))}return o/=2,n&&(n.area=i+o,n.arcArea=i,n.polygonArea=o,n.arcs=r,n.innerPoints=e,n.intersectionPoints=s),i+o}function ae(t,n){return n.every(s=>q(t,s)=t+n)return 0;if(s<=Math.abs(t-n))return Math.PI*Math.min(t,n)*Math.min(t,n);const e=t-(s*s-n*n+t*t)/(2*s),i=n-(s*s-t*t+n*n)/(2*s);return lt(t,e)+lt(n,i)}function Tt(t,n){const s=q(t,n),e=t.radius,i=n.radius;if(s>=e+i||s<=Math.abs(e-i))return[];const o=(e*e-i*i+s*s)/(2*s),r=Math.sqrt(e*e-o*o),l=t.x+o*(n.x-t.x)/s,f=t.y+o*(n.y-t.y)/s,u=-(n.y-t.y)*(r/s),a=-(n.x-t.x)*(r/s);return[{x:l+u,y:f-a},{x:l-u,y:f+a}]}function Et(t){const n={x:0,y:0};for(const s of t)n.x+=s.x,n.y+=s.y;return n.x/=t.length,n.y/=t.length,n}function ce(t,n,s,e){e=e||{};const i=e.maxIterations||100,o=e.tolerance||1e-10,r=t(n),l=t(s);let f=s-n;if(r*l>0)throw"Initial bisect points must have opposite signs";if(r===0)return n;if(l===0)return s;for(let u=0;u=0&&(n=a),Math.abs(f)ct(n))}function $(t,n){let s=0;for(let e=0;ev.fx-c.fx,_=n.slice(),S=n.slice(),g=n.slice(),m=n.slice();for(let v=0;v{const D=d.slice();return D.fx=d.fx,D.id=d.id,D});x.sort((d,D)=>d.id-D.id),s.history.push({x:p[0].slice(),fx:p[0].fx,simplex:x})}h=0;for(let x=0;x=p[b-1].fx){let x=!1;if(S.fx>c.fx?(J(g,1+a,_,-a,c),g.fx=t(g),g.fx=1)break;for(let d=1;dl+o*i*f||u>=E)M=i;else{if(Math.abs(y)<=-r*f)return i;y*(M-p)>=0&&(M=p),p=i,E=u}return 0}for(let p=0;p<10;++p){if(J(e.x,1,s.x,i,n),u=e.fx=t(e.x,e.fxprime),y=$(e.fxprime,n),u>l+o*i*f||p&&u>=a)return b(h,i,a);if(Math.abs(y)<=-r*f)return i;if(y>=0)return b(i,h,u);a=u,h=i,i*=2}return i}function fe(t,n,s){let e={x:n.slice(),fx:0,fxprime:n.slice()},i={x:n.slice(),fx:0,fxprime:n.slice()};const o=n.slice();let r,l,f=1,u;s=s||{},u=s.maxIterations||n.length*20,e.fx=t(e.x,e.fxprime),r=e.fxprime.slice(),ft(r,e.fxprime,-1);for(let a=0;a{const y={};for(let h=0;hxt(t,n,e)-s,0,t+n)}function he(t,n={}){const s=n.distinct,e=t.map(l=>Object.assign({},l));function i(l){return l.join(";")}if(s){const l=new Map;for(const f of e)for(let u=0;ul===f?0:lo.sets.length===2).forEach(o=>{const r=s[o.sets[0]],l=s[o.sets[1]],f=Math.sqrt(n[r].size/Math.PI),u=Math.sqrt(n[l].size/Math.PI),a=ht(f,u,o.size);e[r][l]=e[l][r]=a;let y=0;o.size+1e-10>=Math.min(n[r].size,n[l].size)?y=1:o.size<=1e-10&&(y=-1),i[r][l]=i[l][r]=y}),{distances:e,constraints:i}}function ge(t,n,s,e){for(let o=0;o0&&p<=y||h<0&&p>=y||(i+=2*M*M,n[2*o]+=4*M*(r-u),n[2*o+1]+=4*M*(l-a),n[2*f]+=4*M*(u-r),n[2*f+1]+=4*M*(a-l))}}return i}function xe(t,n={}){let s=pe(t,n);const e=n.lossFunction||tt;if(t.length>=8){const i=ye(t,n),o=e(i,t),r=e(s,t);o+1e-8h.map(b=>b/l));const f=(h,b)=>ge(h,b,o,r);let u=null;for(let h=0;hy.sets.length===2);for(const y of t){let h=y.weight!=null?y.weight:1;const b=y.sets[0],p=y.sets[1];y.size+Rt>=Math.min(e[b].size,e[p].size)&&(h=0),i[b].push({set:p,size:y.size,weight:h}),i[p].push({set:b,size:y.size,weight:h})}const o=[];Object.keys(i).forEach(y=>{let h=0;for(let b=0;bt[r]));const o=e.weight!=null?e.weight:1;s+=o*(i-e.size)*(i-e.size)}return s}function Dt(t,n){let s=0;for(const e of n){if(e.sets.length===1)continue;let i;if(e.sets.length===2){const l=t[e.sets[0]],f=t[e.sets[1]];i=xt(l.radius,f.radius,q(l,f))}else i=st(e.sets.map(l=>t[l]));const o=e.weight!=null?e.weight:1,r=Math.log((i+1)/(e.size+1));s+=o*r*r}return s}function me(t,n,s){if(s==null?t.sort((i,o)=>o.radius-i.radius):t.sort(s),t.length>0){const i=t[0].x,o=t[0].y;for(const r of t)r.x-=i,r.y-=o}if(t.length===2&&q(t[0],t[1])1){const i=Math.atan2(t[1].x,t[1].y)-n,o=Math.cos(i),r=Math.sin(i);for(const l of t){const f=l.x,u=l.y;l.x=o*f-r*u,l.y=r*f+o*u}}if(t.length>2){let i=Math.atan2(t[2].x,t[2].y)-n;for(;i<0;)i+=2*Math.PI;for(;i>2*Math.PI;)i-=2*Math.PI;if(i>Math.PI){const o=t[1].y/(1e-10+t[1].x);for(const r of t){var e=(r.x+o*r.y)/(1+o*o);r.x=2*e-r.x,r.y=2*e*o-r.y}}}}function be(t){t.forEach(i=>{i.parent=i});function n(i){return i.parent!==i&&(i.parent=n(i.parent)),i.parent}function s(i,o){const r=n(i),l=n(o);r.parent=l}for(let i=0;i{delete i.parent}),Array.from(e.values())}function dt(t){const n=s=>{const e=t.reduce((o,r)=>Math.max(o,r[s]+r.radius),Number.NEGATIVE_INFINITY),i=t.reduce((o,r)=>Math.min(o,r[s]-r.radius),Number.POSITIVE_INFINITY);return{max:e,min:i}};return{xRange:n("x"),yRange:n("y")}}function Ct(t,n,s){n==null&&(n=Math.PI/2);let e=Ft(t).map(u=>Object.assign({},u));const i=be(e);for(const u of i){me(u,n,s);const a=dt(u);u.size=(a.xRange.max-a.xRange.min)*(a.yRange.max-a.yRange.min),u.bounds=a}i.sort((u,a)=>a.size-u.size),e=i[0];let o=e.bounds;const r=(o.xRange.max-o.xRange.min)/50;function l(u,a,y){if(!u)return;const h=u.bounds;let b,p;if(a)b=o.xRange.max-h.xRange.min+r;else{b=o.xRange.max-h.xRange.max;const M=(h.xRange.max-h.xRange.min)/2-(o.xRange.max-o.xRange.min)/2;M<0&&(b+=M)}if(y)p=o.yRange.max-h.yRange.min+r;else{p=o.yRange.max-h.yRange.max;const M=(h.yRange.max-h.yRange.min)/2-(o.yRange.max-o.yRange.min)/2;M<0&&(p+=M)}for(const M of u)M.x+=b,M.y+=p,e.push(M)}let f=1;for(;f({radius:a*b.radius,x:e+y+(b.x-r.min)*a,y:e+h+(b.y-l.min)*a,setid:b.setid})))}function Ot(t){const n={};for(const s of t)n[s.setid]=s;return n}function Ft(t){return Object.keys(t).map(s=>Object.assign(t[s],{setid:s}))}function ve(t={}){let n=!1,s=600,e=350,i=15,o=1e3,r=Math.PI/2,l=!0,f=null,u=!0,a=!0,y=null,h=null,b=!1,p=null,M=t&&t.symmetricalTextCentre?t.symmetricalTextCentre:!1,E={},_=t&&t.colourScheme?t.colourScheme:t&&t.colorScheme?t.colorScheme:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],S=0,g=function(x){if(x in E)return E[x];var d=E[x]=_[S];return S+=1,S>=_.length&&(S=0),d},m=At,v=tt;function c(x){let d=x.datum();const D=new Set;d.forEach(k=>{k.size==0&&k.sets.length==1&&D.add(k.sets[0])}),d=d.filter(k=>!k.sets.some(F=>D.has(F)));let I={},C={};if(d.length>0){let k=m(d,{lossFunction:v,distinct:b});l&&(k=Ct(k,r,h)),I=Nt(k,s,e,i,f),C=Lt(I,d,M)}const U={};d.forEach(k=>{k.label&&(U[k.sets]=k.label)});function V(k){if(k.sets in U)return U[k.sets];if(k.sets.length==1)return""+k.sets[0]}x.selectAll("svg").data([I]).enter().append("svg");const O=x.select("svg");n?O.attr("viewBox",`0 0 ${s} ${e}`):O.attr("width",s).attr("height",e);const R={};let T=!1;O.selectAll(".venn-area path").each(function(k){const F=this.getAttribute("d");k.sets.length==1&&F&&!b&&(T=!0,R[k.sets[0]]=Me(F))});function A(k){return F=>{const H=k.sets.map(et=>{let Y=R[et],Z=I[et];return Y||(Y={x:s/2,y:e/2,radius:1}),Z||(Z={x:s/2,y:e/2,radius:1}),{x:Y.x*(1-F)+Z.x*F,y:Y.y*(1-F)+Z.y*F,radius:Y.radius*(1-F)+Z.radius*F}});return St(H,p)}}const G=O.selectAll(".venn-area").data(d,k=>k.sets),P=G.enter().append("g").attr("class",k=>`venn-area venn-${k.sets.length==1?"circle":"intersection"}${k.colour||k.color?" venn-coloured":""}`).attr("data-venn-sets",k=>k.sets.join("_")),B=P.append("path"),L=P.append("text").attr("class","label").text(k=>V(k)).attr("text-anchor","middle").attr("dy",".35em").attr("x",s/2).attr("y",e/2);a&&(B.style("fill-opacity","0").filter(k=>k.sets.length==1).style("fill",k=>k.colour?k.colour:k.color?k.color:g(k.sets)).style("fill-opacity",".25"),L.style("fill",k=>k.colour||k.color?"#FFF":t.textFill?t.textFill:k.sets.length==1?g(k.sets):"#444"));function K(k){return typeof k.transition=="function"?k.transition("venn").duration(o):k}let z=x;T&&typeof z.transition=="function"?(z=K(x),z.selectAll("path").attrTween("d",A)):z.selectAll("path").attr("d",k=>St(k.sets.map(F=>I[F])),p);const N=z.selectAll("text").filter(k=>k.sets in C).text(k=>V(k)).attr("x",k=>Math.floor(C[k.sets].x)).attr("y",k=>Math.floor(C[k.sets].y));u&&(T?"on"in N?N.on("end",rt(I,V)):N.each("end",rt(I,V)):N.each(rt(I,V)));const j=K(G.exit()).remove();typeof G.transition=="function"&&j.selectAll("path").attrTween("d",A);const X=j.selectAll("text").attr("x",s/2).attr("y",e/2);return y!==null&&(L.style("font-size","0px"),N.style("font-size",y),X.style("font-size","0px")),{circles:I,textCentres:C,nodes:G,enter:P,update:z,exit:j}}return c.wrap=function(x){return arguments.length?(u=x,c):u},c.useViewBox=function(){return n=!0,c},c.width=function(x){return arguments.length?(s=x,c):s},c.height=function(x){return arguments.length?(e=x,c):e},c.padding=function(x){return arguments.length?(i=x,c):i},c.distinct=function(x){return arguments.length?(b=x,c):b},c.colours=function(x){return arguments.length?(g=x,c):g},c.colors=function(x){return arguments.length?(g=x,c):g},c.fontSize=function(x){return arguments.length?(y=x,c):y},c.round=function(x){return arguments.length?(p=x,c):p},c.duration=function(x){return arguments.length?(o=x,c):o},c.layoutFunction=function(x){return arguments.length?(m=x,c):m},c.normalize=function(x){return arguments.length?(l=x,c):l},c.scaleToFit=function(x){return arguments.length?(f=x,c):f},c.styled=function(x){return arguments.length?(a=x,c):a},c.orientation=function(x){return arguments.length?(r=x,c):r},c.orientationOrder=function(x){return arguments.length?(h=x,c):h},c.lossFunction=function(x){return arguments.length?(v=x==="default"?tt:x==="logRatio"?Dt:x,c):v},c}function rt(t,n){return function(s){const e=this,i=t[s.sets[0]].radius||50,o=n(s)||"",r=o.split(/\s+/).reverse(),f=(o.length+r.length)/3;let u=r.pop(),a=[u],y=0;const h=1.1;e.textContent=null;const b=[];function p(g){const m=e.ownerDocument.createElementNS(e.namespaceURI,"tspan");return m.textContent=g,b.push(m),e.append(m),m}let M=p(u);for(;u=r.pop(),!!u;){a.push(u);const g=a.join(" ");M.textContent=g,g.length>f&&M.getComputedTextLength()>i&&(a.pop(),M.textContent=a.join(" "),a=[u],M=p(u),y++)}const E=.35-y*h/2,_=e.getAttribute("x"),S=e.getAttribute("y");b.forEach((g,m)=>{g.setAttribute("x",_),g.setAttribute("y",S),g.setAttribute("dy",`${E+m*h}em`)})}}function at(t,n,s){let e=n[0].radius-q(n[0],t);for(let i=1;i=o&&(i=e[a],o=y)}const r=zt(a=>-1*at({x:a[0],y:a[1]},t,n),[i.x,i.y],{maxIterations:500,minErrorDelta:1e-10}).x,l={x:s?0:r[0],y:r[1]};let f=!0;for(const a of t)if(q(l,a)>a.radius){f=!1;break}for(const a of n)if(q(l,a)a.p1))}function Ie(t){const n={},s=Object.keys(t);for(const e of s)n[e]=[];for(let e=0;e0&&console.log("WARNING: area "+r+" not represented on screen")}return e}function ke(t,n,s){const e=[];return e.push(` M`,t,n),e.push(` m`,-s,0),e.push(` a`,s,s,0,1,0,s*2,0),e.push(` @@ -31,4 +31,4 @@ Expecting `+Y.join(", ")+", got '"+(this.terminals_[z]||z)+"'":Z="Parse error on font-family: ${t.fontFamily}; color: ${t.vennSetTextColor}; } -`,"getStyles"),Ve=Be;function qt(t){const n=new Map;for(const s of t){const e=s.targets.join("|"),i=n.get(e);i?Object.assign(i,s.styles):n.set(e,{...s.styles})}return n}w(qt,"buildStyleByKey");var qe=w((t,n,s,e)=>{const i=e.db,o=i.getConfig?.(),{themeVariables:r,look:l,handDrawnSeed:f}=wt(),u=l==="handDrawn",a=[r.venn1,r.venn2,r.venn3,r.venn4,r.venn5,r.venn6,r.venn7,r.venn8].filter(Boolean),y=i.getDiagramTitle?.(),h=i.getSubsetData(),b=i.getTextData(),p=qt(i.getStyleData()),M=Gt(h),E=o?.width??800,_=o?.height??450,g=E/1600,m=y?48*g:0,v=r.primaryTextColor??r.textColor,c=Qt(n);c.attr("viewBox",`0 0 ${E} ${_}`),y&&c.append("text").text(y).attr("class","venn-title").attr("font-size",`${32*g}px`).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("x","50%").attr("y",32*g).style("fill",r.vennTitleTextColor||r.titleColor);const x=ot(document.createElement("div")),d=ve().width(E).height(_-m);x.datum(M).call(d);const D=u?$t.svg(x.select("svg").node()):void 0,I=Se(M,{width:E,height:_-m,padding:o?.padding??15}),C=new Map;for(const R of I){const T=Q([...R.data.sets].sort());C.set(T,R)}b.length>0&&Ut(o,C,x,b,g,p);const U=te(r.background||"#f4f4f4");x.selectAll(".venn-circle").each(function(R,T){const A=ot(this),P=Q([...R.sets].sort()),B=p.get(P),L=B?.fill||a[T%a.length]||r.primaryColor;A.classed(`venn-set-${T%8}`,!0);const K=B?.["fill-opacity"]??.1,z=B?.stroke||L,N=B?.["stroke-width"]||`${5*g}`;if(u&&D){const X=C.get(P);if(X&&X.circles.length>0){const k=X.circles[0],F=D.circle(k.x,k.y,k.radius*2,{roughness:.7,seed:f,fill:kt(L,.7),fillStyle:"hachure",fillWeight:2,hachureGap:8,hachureAngle:-41+T*60,stroke:z,strokeWidth:parseFloat(String(N))});A.select("path").remove(),A.node()?.insertBefore(F,A.select("text").node())}}else A.select("path").style("fill",L).style("fill-opacity",K).style("stroke",z).style("stroke-width",N).style("stroke-opacity",.95);const j=B?.color||(U?ee(L,30):ne(L,30));A.select("text").style("font-size",`${48*g}px`).style("fill",j)}),u&&D?x.selectAll(".venn-intersection").each(function(R){const T=ot(this),G=Q([...R.sets].sort()),P=p.get(G),B=P?.fill;if(B){const L=T.select("path"),K=L.attr("d");if(K){const z=D.path(K,{roughness:.7,seed:f,fill:kt(B,.3),fillStyle:"cross-hatch",fillWeight:2,hachureGap:6,hachureAngle:60,stroke:"none"}),N=L.node();N?.parentNode?.insertBefore(z,N),L.remove()}}else T.select("path").style("fill-opacity",0);T.select("text").style("font-size",`${48*g}px`).style("fill",P?.color??r.vennSetTextColor??v)}):(x.selectAll(".venn-intersection text").style("font-size",`${48*g}px`).style("fill",R=>{const A=Q([...R.sets].sort());return p.get(A)?.color??r.vennSetTextColor??v}),x.selectAll(".venn-intersection path").style("fill-opacity",R=>{const A=Q([...R.sets].sort());return p.get(A)?.fill?1:0}).style("fill",R=>{const A=Q([...R.sets].sort());return p.get(A)?.fill??"transparent"}));const V=c.append("g").attr("transform",`translate(0, ${m})`),O=x.select("svg").node();if(O&&"childNodes"in O)for(const R of[...O.childNodes])V.node()?.appendChild(R);se(c,_,E,o?.useMaxWidth??!0)},"draw");function Q(t){return t.join("|")}w(Q,"stableSetsKey");function Ut(t,n,s,e,i,o){const r=t?.useDebugLayout??!1,f=s.select("svg").append("g").attr("class","venn-text-nodes"),u=new Map;for(const a of e){const y=Q(a.sets),h=u.get(y);h?h.push(a):u.set(y,[a])}for(const[a,y]of u.entries()){const h=n.get(a);if(!h?.text)continue;const b=h.text.x,p=h.text.y,M=Math.min(...h.circles.map(O=>O.radius)),E=Math.min(...h.circles.map(O=>O.radius-Math.hypot(b-O.x,p-O.y)));let _=Number.isFinite(E)?Math.max(0,E):0;_===0&&Number.isFinite(M)&&(_=M*.6);const S=f.append("g").attr("class","venn-text-area").attr("font-size",`${40*i}px`);r&&S.append("circle").attr("class","venn-text-debug-circle").attr("cx",b).attr("cy",p).attr("r",_).attr("fill","none").attr("stroke","purple").attr("stroke-width",1.5*i).attr("stroke-dasharray",`${6*i} ${4*i}`);const g=Math.max(80*i,_*2*.95),m=Math.max(60*i,_*2*.95),x=(h.data.label&&h.data.label.length>0?Math.min(32*i,_*.25):0)+(y.length<=2?30*i:0),d=b-g/2,D=p-m/2+x,I=Math.max(1,Math.ceil(Math.sqrt(y.length))),C=Math.max(1,Math.ceil(y.length/I)),U=g/I,V=m/C;for(const[O,R]of y.entries()){const T=O%I,A=Math.floor(O/I),G=d+U*(T+.5),P=D+V*(A+.5);r&&S.append("rect").attr("class","venn-text-debug-cell").attr("x",d+U*T).attr("y",D+V*A).attr("width",U).attr("height",V).attr("fill","none").attr("stroke","teal").attr("stroke-width",1*i).attr("stroke-dasharray",`${4*i} ${3*i}`);const B=U*.9,L=V*.9,K=S.append("foreignObject").attr("class","venn-text-node-fo").attr("width",B).attr("height",L).attr("x",G-B/2).attr("y",P-L/2).attr("overflow","visible"),z=o.get(R.id)?.color,N=K.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(R.label??R.id);z&&N.style("color",z)}}}w(Ut,"renderTextNodes");function Gt(t){const n=new Set(t.map(i=>[...i.sets].sort().join("|"))),s=new Map(t.filter(i=>i.sets.length===1&&i.size!==void 0).map(i=>[i.sets[0],i.size])),e=[];for(const i of t){if(i.sets.length<3)continue;const o=[...i.sets].sort();for(let r=0;r0?[...t,...e]:t}w(Gt,"ensurePairwiseSubsets");var Ue={draw:qe},He={parser:we,db:Pe,renderer:Ue,styles:Ve};export{He as diagram}; +`,"getStyles"),Ve=Be;function qt(t){const n=new Map;for(const s of t){const e=s.targets.join("|"),i=n.get(e);i?Object.assign(i,s.styles):n.set(e,{...s.styles})}return n}w(qt,"buildStyleByKey");var qe=w((t,n,s,e)=>{const i=e.db,o=i.getConfig?.(),{themeVariables:r,look:l,handDrawnSeed:f}=wt(),u=l==="handDrawn",a=[r.venn1,r.venn2,r.venn3,r.venn4,r.venn5,r.venn6,r.venn7,r.venn8].filter(Boolean),y=i.getDiagramTitle?.(),h=i.getSubsetData(),b=i.getTextData(),p=qt(i.getStyleData()),M=Gt(h),E=o?.width??800,_=o?.height??450,g=E/1600,m=y?48*g:0,v=r.primaryTextColor??r.textColor,c=Qt(n);c.attr("viewBox",`0 0 ${E} ${_}`),y&&c.append("text").text(y).attr("class","venn-title").attr("font-size",`${32*g}px`).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("x","50%").attr("y",32*g).style("fill",r.vennTitleTextColor||r.titleColor);const x=ot(document.createElement("div")),d=ve().width(E).height(_-m);x.datum(M).call(d);const D=u?$t.svg(x.select("svg").node()):void 0,I=Se(M,{width:E,height:_-m,padding:o?.padding??15}),C=new Map;for(const R of I){const T=Q([...R.data.sets].sort());C.set(T,R)}b.length>0&&Ut(o,C,x,b,g,p);const U=te(r.background||"#f4f4f4");x.selectAll(".venn-circle").each(function(R,T){const A=ot(this),P=Q([...R.sets].sort()),B=p.get(P),L=B?.fill||a[T%a.length]||r.primaryColor;A.classed(`venn-set-${T%8}`,!0);const K=B?.["fill-opacity"]??.1,z=B?.stroke||L,N=B?.["stroke-width"]||`${5*g}`;if(u&&D){const X=C.get(P);if(X&&X.circles.length>0){const k=X.circles[0],F=D.circle(k.x,k.y,k.radius*2,{roughness:.7,seed:f,fill:kt(L,.7),fillStyle:"hachure",fillWeight:2,hachureGap:8,hachureAngle:-41+T*60,stroke:z,strokeWidth:parseFloat(String(N))});A.select("path").remove(),A.node()?.insertBefore(F,A.select("text").node())}}else A.select("path").style("fill",L).style("fill-opacity",K).style("stroke",z).style("stroke-width",N).style("stroke-opacity",.95);const j=B?.color||(U?ee(L,30):ne(L,30));A.select("text").style("font-size",`${48*g}px`).style("fill",j)}),u&&D?x.selectAll(".venn-intersection").each(function(R){const T=ot(this),G=Q([...R.sets].sort()),P=p.get(G),B=P?.fill;if(B){const L=T.select("path"),K=L.attr("d");if(K){const z=D.path(K,{roughness:.7,seed:f,fill:kt(B,.3),fillStyle:"cross-hatch",fillWeight:2,hachureGap:6,hachureAngle:60,stroke:"none"}),N=L.node();N?.parentNode?.insertBefore(z,N),L.remove()}}else T.select("path").style("fill-opacity",0);T.select("text").style("font-size",`${48*g}px`).style("fill",P?.color??r.vennSetTextColor??v)}):(x.selectAll(".venn-intersection text").style("font-size",`${48*g}px`).style("fill",R=>{const A=Q([...R.sets].sort());return p.get(A)?.color??r.vennSetTextColor??v}),x.selectAll(".venn-intersection path").style("fill-opacity",R=>{const A=Q([...R.sets].sort());return p.get(A)?.fill?1:0}).style("fill",R=>{const A=Q([...R.sets].sort());return p.get(A)?.fill??"transparent"}));const V=c.append("g").attr("transform",`translate(0, ${m})`),O=x.select("svg").node();if(O&&"childNodes"in O)for(const R of[...O.childNodes])V.node()?.appendChild(R);se(c,_,E,o?.useMaxWidth??!0)},"draw");function Q(t){return t.join("|")}w(Q,"stableSetsKey");function Ut(t,n,s,e,i,o){const r=t?.useDebugLayout??!1,f=s.select("svg").append("g").attr("class","venn-text-nodes"),u=new Map;for(const a of e){const y=Q(a.sets),h=u.get(y);h?h.push(a):u.set(y,[a])}for(const[a,y]of u.entries()){const h=n.get(a);if(!h?.text)continue;const b=h.text.x,p=h.text.y,M=Math.min(...h.circles.map(O=>O.radius)),E=Math.min(...h.circles.map(O=>O.radius-Math.hypot(b-O.x,p-O.y)));let _=Number.isFinite(E)?Math.max(0,E):0;_===0&&Number.isFinite(M)&&(_=M*.6);const S=f.append("g").attr("class","venn-text-area").attr("font-size",`${40*i}px`);r&&S.append("circle").attr("class","venn-text-debug-circle").attr("cx",b).attr("cy",p).attr("r",_).attr("fill","none").attr("stroke","purple").attr("stroke-width",1.5*i).attr("stroke-dasharray",`${6*i} ${4*i}`);const g=Math.max(80*i,_*2*.95),m=Math.max(60*i,_*2*.95),x=(h.data.label&&h.data.label.length>0?Math.min(32*i,_*.25):0)+(y.length<=2?30*i:0),d=b-g/2,D=p-m/2+x,I=Math.max(1,Math.ceil(Math.sqrt(y.length))),C=Math.max(1,Math.ceil(y.length/I)),U=g/I,V=m/C;for(const[O,R]of y.entries()){const T=O%I,A=Math.floor(O/I),G=d+U*(T+.5),P=D+V*(A+.5);r&&S.append("rect").attr("class","venn-text-debug-cell").attr("x",d+U*T).attr("y",D+V*A).attr("width",U).attr("height",V).attr("fill","none").attr("stroke","teal").attr("stroke-width",1*i).attr("stroke-dasharray",`${4*i} ${3*i}`);const B=U*.9,L=V*.9,K=S.append("foreignObject").attr("class","venn-text-node-fo").attr("width",B).attr("height",L).attr("x",G-B/2).attr("y",P-L/2).attr("overflow","visible"),z=o.get(R.id)?.color,N=K.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(R.label??R.id);z&&N.style("color",z)}}}w(Ut,"renderTextNodes");function Gt(t){const n=new Set(t.map(i=>[...i.sets].sort().join("|"))),s=new Map(t.filter(i=>i.sets.length===1&&i.size!==void 0).map(i=>[i.sets[0],i.size])),e=[];for(const i of t){if(i.sets.length<3)continue;const o=[...i.sets].sort();for(let r=0;r0?[...t,...e]:t}w(Gt,"ensurePairwiseSubsets");var Ue={draw:qe},Ke={parser:we,db:Pe,renderer:Ue,styles:Ve};export{Ke as diagram}; diff --git a/apps/kimi-code/dist-web/assets/vue.runtime.esm-bundler-BeN4Xi6a.js b/apps/kimi-code/dist-web/assets/vue.runtime.esm-bundler-IQcAQR5v.js similarity index 98% rename from apps/kimi-code/dist-web/assets/vue.runtime.esm-bundler-BeN4Xi6a.js rename to apps/kimi-code/dist-web/assets/vue.runtime.esm-bundler-IQcAQR5v.js index 6a8c44cfd..ea612e535 100644 --- a/apps/kimi-code/dist-web/assets/vue.runtime.esm-bundler-BeN4Xi6a.js +++ b/apps/kimi-code/dist-web/assets/vue.runtime.esm-bundler-IQcAQR5v.js @@ -1,4 +1,4 @@ -import{B as t,a as o,C as r,D as n,E as i,b as c,c as l,F as d,K as p,R as b,S as m,d as f,T as u,e as h,f as S,g as y,h as R,i as v,V as C,j as g,k as w,l as T,m as E,n as x,o as M,p as k,q as D,r as P,s as V,t as A,u as B,v as H,w as N,x as O,y as I,z,A as F,G as U,H as K,I as W,J as j,L as q,M as G,N as L,O as J,P as Q,Q as X,U as Y,W as Z,X as _,Y as $,Z as aa,_ as ea,$ as sa,a0 as ta,a1 as oa,a2 as ra,a3 as na,a4 as ia,a5 as ca,a6 as la,a7 as da,a8 as pa,a9 as ba,aa as ma,ab as fa,ac as ua,ad as ha,ae as Sa,af as ya,ag as Ra,ah as va,ai as Ca,aj as ga,ak as wa,al as Ta,am as Ea,an as xa,ao as Ma,ap as ka,aq as Da,ar as Pa,as as Va,at as Aa,au as Ba,av as Ha,aw as Na,ax as Oa,ay as Ia,az as za,aA as Fa,aB as Ua,aC as Ka,aD as Wa,aE as ja,aF as qa,aG as Ga,aH as La,aI as Ja,aJ as Qa,aK as Xa,aL as Ya,aM as Za,aN as _a,aO as $a,aP as ae,aQ as ee,aR as se,aS as te,aT as oe,aU as re,aV as ne,aW as ie,aX as ce,aY as le,aZ as de,a_ as pe,a$ as be,b0 as me,b1 as fe,b2 as ue,b3 as he,b4 as Se,b5 as ye,b6 as Re,b7 as ve,b8 as Ce,b9 as ge,ba as we,bb as Te,bc as Ee,bd as xe,be as Me,bf as ke,bg as De,bh as Pe,bi as Ve,bj as Ae,bk as Be,bl as He,bm as Ne,bn as Oe,bo as Ie,bp as ze,bq as Fe,br as Ue,bs as Ke,bt as We,bu as je,bv as qe,bw as Ge,bx as Le,by as Je,bz as Qe,bA as Xe,bB as Ye,bC as Ze,bD as _e,bE as $e,bF as as,bG as es,bH as ss,bI as ts,bJ as os,bK as rs,bL as ns,bM as is,bN as cs,bO as ls,bP as ds}from"./index-7SHxad1A.js";/** +import{B as t,a as o,C as r,D as n,E as i,b as c,c as l,F as d,K as p,R as b,S as m,d as f,T as u,e as h,f as S,g as y,h as R,i as v,V as C,j as g,k as w,l as T,m as E,n as x,o as M,p as k,q as D,r as P,s as V,t as A,u as B,v as H,w as N,x as O,y as I,z,A as F,G as U,H as K,I as W,J as j,L as q,M as G,N as L,O as J,P as Q,Q as X,U as Y,W as Z,X as _,Y as $,Z as aa,_ as ea,$ as sa,a0 as ta,a1 as oa,a2 as ra,a3 as na,a4 as ia,a5 as ca,a6 as la,a7 as da,a8 as pa,a9 as ba,aa as ma,ab as fa,ac as ua,ad as ha,ae as Sa,af as ya,ag as Ra,ah as va,ai as Ca,aj as ga,ak as wa,al as Ta,am as Ea,an as xa,ao as Ma,ap as ka,aq as Da,ar as Pa,as as Va,at as Aa,au as Ba,av as Ha,aw as Na,ax as Oa,ay as Ia,az as za,aA as Fa,aB as Ua,aC as Ka,aD as Wa,aE as ja,aF as qa,aG as Ga,aH as La,aI as Ja,aJ as Qa,aK as Xa,aL as Ya,aM as Za,aN as _a,aO as $a,aP as ae,aQ as ee,aR as se,aS as te,aT as oe,aU as re,aV as ne,aW as ie,aX as ce,aY as le,aZ as de,a_ as pe,a$ as be,b0 as me,b1 as fe,b2 as ue,b3 as he,b4 as Se,b5 as ye,b6 as Re,b7 as ve,b8 as Ce,b9 as ge,ba as we,bb as Te,bc as Ee,bd as xe,be as Me,bf as ke,bg as De,bh as Pe,bi as Ve,bj as Ae,bk as Be,bl as He,bm as Ne,bn as Oe,bo as Ie,bp as ze,bq as Fe,br as Ue,bs as Ke,bt as We,bu as je,bv as qe,bw as Ge,bx as Le,by as Je,bz as Qe,bA as Xe,bB as Ye,bC as Ze,bD as _e,bE as $e,bF as as,bG as es,bH as ss,bI as ts,bJ as os,bK as rs,bL as ns,bM as is,bN as cs,bO as ls,bP as ds}from"./index-BOtIzGLC.js";/** * vue v3.5.39 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT diff --git a/apps/kimi-code/dist-web/assets/wardleyDiagram-EHGQE667-DGcHOZD9.js b/apps/kimi-code/dist-web/assets/wardleyDiagram-EHGQE667-DqPls4-l.js similarity index 67% rename from apps/kimi-code/dist-web/assets/wardleyDiagram-EHGQE667-DGcHOZD9.js rename to apps/kimi-code/dist-web/assets/wardleyDiagram-EHGQE667-DqPls4-l.js index cf0127330..a001fcd3d 100644 --- a/apps/kimi-code/dist-web/assets/wardleyDiagram-EHGQE667-DGcHOZD9.js +++ b/apps/kimi-code/dist-web/assets/wardleyDiagram-EHGQE667-DqPls4-l.js @@ -1,4 +1,4 @@ -import{p as St}from"./chunk-JWPE2WC7-BxqMRrNb.js";import{s as Mt,g as Nt,o as zt,n as Lt,a as Tt,b as At,_ as u,E as Xt,y as Et,A as U,l as K,D as Yt,e as It,p as Bt,c as j}from"./mermaid.core-CgZTgv7Y.js";import{p as Ft}from"./cynefin-VYW2F7L2-DYKf_Z-v.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";var D=u((e,n)=>{const r=e<=1?e*100:e;if(r<0||r>100)throw new Error(`${n} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${e}`);return r},"toPercent"),A=u((e,n,r)=>({x:D(n,`${r} evolution`),y:D(e,`${r} visibility`)}),"toCoordinates"),J=u(e=>{if(e){if(e==="+<>")return"bidirectional";if(e==="+<")return"backward";if(e==="+>")return"forward"}},"getFlowFromPort"),Rt=u(e=>{if(!e?.startsWith("+"))return{};const 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"),Ot=u((e,n)=>{if(St(e,n),e.size&&n.setSize(e.size.width,e.size.height),e.evolution){const r=e.evolution.stages.map(a=>a.secondName?`${a.name.trim()} / ${a.secondName.trim()}`:a.name.trim()),x=e.evolution.stages.filter(a=>a.boundary!==void 0).map(a=>a.boundary);n.updateAxes({stages:r,stageBoundaries:x})}if(e.anchors.forEach(r=>{const x=A(r.visibility,r.evolution,`Anchor "${r.name}"`);n.addNode(r.name,r.name,x.x,x.y,"anchor")}),e.components.forEach(r=>{const x=A(r.visibility,r.evolution,`Component "${r.name}"`),a=r.label?(r.label.negX?-1:1)*r.label.offsetX:void 0,d=r.label?(r.label.negY?-1:1)*r.label.offsetY:void 0,w=r.decorator?.strategy;n.addNode(r.name,r.name,x.x,x.y,"component",a,d,r.inertia,w)}),e.notes.forEach(r=>{const x=A(r.visibility,r.evolution,`Note "${r.text}"`);n.addNote(r.text,x.x,x.y)}),e.pipelines.forEach(r=>{const x=n.getNode(r.parent);if(!x||typeof x.y!="number")throw new Error(`Pipeline "${r.parent}" must reference an existing component with coordinates.`);const a=x.y;n.startPipeline(r.parent),r.components.forEach(d=>{const w=`${r.parent}_${d.name}`,C=d.label?(d.label.negX?-1:1)*d.label.offsetX:void 0,g=d.label?(d.label.negY?-1:1)*d.label.offsetY:void 0,F=D(d.evolution,`Pipeline component "${d.name}" evolution`);n.addNode(w,d.name,F,a,"pipeline-component",C,g),n.addPipelineComponent(r.parent,w)})}),e.links.forEach(r=>{const x=!!r.arrow&&(r.arrow.includes("-.->")||r.arrow.includes(".-."));let a=J(r.fromPort)??J(r.toPort);const{flow:d,label:w}=Rt(r.arrow);!a&&d&&(a=d);const C=r.linkLabel,g=w??C;n.addLink(n.resolveNodeId(r.from),n.resolveNodeId(r.to),x,g,a)}),e.evolves.forEach(r=>{const x=n.getNode(r.component);if(x?.y!==void 0){const a=D(r.target,`Evolve target for "${r.component}"`);n.addTrend(r.component,a,x.y)}}),e.annotations.length>0){const r=e.annotations[0],x=A(r.x,r.y,"Annotations box");n.setAnnotationsBox(x.x,x.y)}e.annotation.forEach(r=>{const x=A(r.x,r.y,`Annotation ${r.number}`);n.addAnnotation(r.number,[{x:x.x,y:x.y}],r.text)}),e.accelerators.forEach(r=>{const x=A(r.x,r.y,`Accelerator "${r.name}"`);n.addAccelerator(r.name,x.x,x.y)}),e.deaccelerators.forEach(r=>{const x=A(r.x,r.y,`Deaccelerator "${r.name}"`);n.addDeaccelerator(r.name,x.x,x.y)})},"populateDb"),Q={parser:{yy:void 0},parse:u(async e=>{const n=await Ft("wardley",e);K.debug(n);const r=Q.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.");Ot(n,r)},"parse")},Wt=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{u(this,"WardleyBuilder")}addNode(e){const n=this.nodes.get(e.id)??{id:e.id,label:e.label},r={...n,...e,className:e.className??n.className,labelOffsetX:e.labelOffsetX??n.labelOffsetX,labelOffsetY:e.labelOffsetY??n.labelOffsetY};this.nodes.set(e.id,r)}addLink(e){this.links.push(e)}addTrend(e){this.trends.set(e.nodeId,e)}startPipeline(e){this.pipelines.set(e,{nodeId:e,componentIds:[]});const n=this.nodes.get(e);n&&(n.isPipelineParent=!0)}addPipelineComponent(e,n){const r=this.pipelines.get(e);r&&r.componentIds.push(n);const x=this.nodes.get(n);x&&(x.inPipeline=!0)}addAnnotation(e){this.annotations.push(e)}addNote(e){this.notes.push(e)}addAccelerator(e){this.accelerators.push(e)}addDeaccelerator(e){this.deaccelerators.push(e)}setAnnotationsBox(e,n){this.annotationsBox={x:e,y:n}}setAxes(e){this.axes={...this.axes,...e}}setSize(e,n){this.size={width:e,height:n}}getNode(e){return this.nodes.get(e)}resolveNodeId(e){if(this.nodes.has(e))return e;for(const[n,r]of this.nodes)if(r.label===e)return n;return e}build(){const e=[];for(const n of this.nodes.values()){if(typeof n.x!="number"||typeof n.y!="number")throw new Error(`Node "${n.label}" is missing coordinates`);e.push(n)}return{nodes:e,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}},k=new Wt;function tt(){return j()["wardley-beta"]}u(tt,"getConfig");function et(e,n,r,x,a,d,w,C,g){k.addNode({id:e,label:n,x:r,y:x,className:a,labelOffsetX:d,labelOffsetY:w,inertia:C,sourceStrategy:g})}u(et,"addNode");function at(e,n,r=!1,x,a){k.addLink({source:e,target:n,dashed:r,label:x,flow:a})}u(at,"addLink");function rt(e,n,r){k.addTrend({nodeId:e,targetX:n,targetY:r})}u(rt,"addTrend");function ot(e,n,r){k.addAnnotation({number:e,coordinates:n,text:r})}u(ot,"addAnnotation");function nt(e,n,r){k.addNote({text:e,x:n,y:r})}u(nt,"addNote");function st(e,n,r){k.addAccelerator({name:e,x:n,y:r})}u(st,"addAccelerator");function it(e,n,r){k.addDeaccelerator({name:e,x:n,y:r})}u(it,"addDeaccelerator");function dt(e,n){k.setAnnotationsBox(e,n)}u(dt,"setAnnotationsBox");function lt(e,n){k.setSize(e,n)}u(lt,"setSize");function ct(e){k.startPipeline(e)}u(ct,"startPipeline");function pt(e,n){k.addPipelineComponent(e,n)}u(pt,"addPipelineComponent");function ft(e){k.setAxes(e)}u(ft,"updateAxes");function ht(e){return k.getNode(e)}u(ht,"getNode");function xt(e){return k.resolveNodeId(e)}u(xt,"resolveNodeId");function gt(){return k.build()}u(gt,"getWardleyData");function yt(){k.clear(),Bt()}u(yt,"clear");var Dt={getConfig:tt,addNode:et,addLink:at,addTrend:rt,addAnnotation:ot,addNote:nt,addAccelerator:st,addDeaccelerator:it,setAnnotationsBox:dt,setSize:lt,startPipeline:ct,addPipelineComponent:pt,updateAxes:ft,getNode:ht,resolveNodeId:xt,getWardleyData:gt,clear:yt,setAccTitle:At,getAccTitle:Tt,setDiagramTitle:Lt,getDiagramTitle:zt,getAccDescription:Nt,setAccDescription:Mt},Gt=["Genesis","Custom Built","Product","Commodity"],qt=u(()=>{const{themeVariables:e}=j();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"),Ht=u(()=>{const e=j()["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"),jt=u((e,n,r,x)=>{K.debug(`Rendering Wardley map +import{p as St}from"./chunk-JWPE2WC7-TZtJmqSP.js";import{s as Mt,g as Nt,p as zt,o as Lt,a as Tt,b as At,_ as u,W as Xt,z as Et,B as U,l as K,F as Yt,e as It,q as Bt,c as j}from"./mermaid.core-B_UcP3X_.js";import{p as Ft}from"./cynefin-VYW2F7L2-BnQdr27u.js";import"./index-BOtIzGLC.js";var D=u((e,n)=>{const r=e<=1?e*100:e;if(r<0||r>100)throw new Error(`${n} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${e}`);return r},"toPercent"),A=u((e,n,r)=>({x:D(n,`${r} evolution`),y:D(e,`${r} visibility`)}),"toCoordinates"),J=u(e=>{if(e){if(e==="+<>")return"bidirectional";if(e==="+<")return"backward";if(e==="+>")return"forward"}},"getFlowFromPort"),Rt=u(e=>{if(!e?.startsWith("+"))return{};const 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"),Ot=u((e,n)=>{if(St(e,n),e.size&&n.setSize(e.size.width,e.size.height),e.evolution){const r=e.evolution.stages.map(a=>a.secondName?`${a.name.trim()} / ${a.secondName.trim()}`:a.name.trim()),x=e.evolution.stages.filter(a=>a.boundary!==void 0).map(a=>a.boundary);n.updateAxes({stages:r,stageBoundaries:x})}if(e.anchors.forEach(r=>{const x=A(r.visibility,r.evolution,`Anchor "${r.name}"`);n.addNode(r.name,r.name,x.x,x.y,"anchor")}),e.components.forEach(r=>{const x=A(r.visibility,r.evolution,`Component "${r.name}"`),a=r.label?(r.label.negX?-1:1)*r.label.offsetX:void 0,d=r.label?(r.label.negY?-1:1)*r.label.offsetY:void 0,w=r.decorator?.strategy;n.addNode(r.name,r.name,x.x,x.y,"component",a,d,r.inertia,w)}),e.notes.forEach(r=>{const x=A(r.visibility,r.evolution,`Note "${r.text}"`);n.addNote(r.text,x.x,x.y)}),e.pipelines.forEach(r=>{const x=n.getNode(r.parent);if(!x||typeof x.y!="number")throw new Error(`Pipeline "${r.parent}" must reference an existing component with coordinates.`);const a=x.y;n.startPipeline(r.parent),r.components.forEach(d=>{const w=`${r.parent}_${d.name}`,C=d.label?(d.label.negX?-1:1)*d.label.offsetX:void 0,g=d.label?(d.label.negY?-1:1)*d.label.offsetY:void 0,F=D(d.evolution,`Pipeline component "${d.name}" evolution`);n.addNode(w,d.name,F,a,"pipeline-component",C,g),n.addPipelineComponent(r.parent,w)})}),e.links.forEach(r=>{const x=!!r.arrow&&(r.arrow.includes("-.->")||r.arrow.includes(".-."));let a=J(r.fromPort)??J(r.toPort);const{flow:d,label:w}=Rt(r.arrow);!a&&d&&(a=d);const C=r.linkLabel,g=w??C;n.addLink(n.resolveNodeId(r.from),n.resolveNodeId(r.to),x,g,a)}),e.evolves.forEach(r=>{const x=n.getNode(r.component);if(x?.y!==void 0){const a=D(r.target,`Evolve target for "${r.component}"`);n.addTrend(r.component,a,x.y)}}),e.annotations.length>0){const r=e.annotations[0],x=A(r.x,r.y,"Annotations box");n.setAnnotationsBox(x.x,x.y)}e.annotation.forEach(r=>{const x=A(r.x,r.y,`Annotation ${r.number}`);n.addAnnotation(r.number,[{x:x.x,y:x.y}],r.text)}),e.accelerators.forEach(r=>{const x=A(r.x,r.y,`Accelerator "${r.name}"`);n.addAccelerator(r.name,x.x,x.y)}),e.deaccelerators.forEach(r=>{const x=A(r.x,r.y,`Deaccelerator "${r.name}"`);n.addDeaccelerator(r.name,x.x,x.y)})},"populateDb"),Q={parser:{yy:void 0},parse:u(async e=>{const n=await Ft("wardley",e);K.debug(n);const r=Q.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.");Ot(n,r)},"parse")},Wt=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{u(this,"WardleyBuilder")}addNode(e){const n=this.nodes.get(e.id)??{id:e.id,label:e.label},r={...n,...e,className:e.className??n.className,labelOffsetX:e.labelOffsetX??n.labelOffsetX,labelOffsetY:e.labelOffsetY??n.labelOffsetY};this.nodes.set(e.id,r)}addLink(e){this.links.push(e)}addTrend(e){this.trends.set(e.nodeId,e)}startPipeline(e){this.pipelines.set(e,{nodeId:e,componentIds:[]});const n=this.nodes.get(e);n&&(n.isPipelineParent=!0)}addPipelineComponent(e,n){const r=this.pipelines.get(e);r&&r.componentIds.push(n);const x=this.nodes.get(n);x&&(x.inPipeline=!0)}addAnnotation(e){this.annotations.push(e)}addNote(e){this.notes.push(e)}addAccelerator(e){this.accelerators.push(e)}addDeaccelerator(e){this.deaccelerators.push(e)}setAnnotationsBox(e,n){this.annotationsBox={x:e,y:n}}setAxes(e){this.axes={...this.axes,...e}}setSize(e,n){this.size={width:e,height:n}}getNode(e){return this.nodes.get(e)}resolveNodeId(e){if(this.nodes.has(e))return e;for(const[n,r]of this.nodes)if(r.label===e)return n;return e}build(){const e=[];for(const n of this.nodes.values()){if(typeof n.x!="number"||typeof n.y!="number")throw new Error(`Node "${n.label}" is missing coordinates`);e.push(n)}return{nodes:e,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}},k=new Wt;function tt(){return j()["wardley-beta"]}u(tt,"getConfig");function et(e,n,r,x,a,d,w,C,g){k.addNode({id:e,label:n,x:r,y:x,className:a,labelOffsetX:d,labelOffsetY:w,inertia:C,sourceStrategy:g})}u(et,"addNode");function at(e,n,r=!1,x,a){k.addLink({source:e,target:n,dashed:r,label:x,flow:a})}u(at,"addLink");function rt(e,n,r){k.addTrend({nodeId:e,targetX:n,targetY:r})}u(rt,"addTrend");function ot(e,n,r){k.addAnnotation({number:e,coordinates:n,text:r})}u(ot,"addAnnotation");function nt(e,n,r){k.addNote({text:e,x:n,y:r})}u(nt,"addNote");function st(e,n,r){k.addAccelerator({name:e,x:n,y:r})}u(st,"addAccelerator");function it(e,n,r){k.addDeaccelerator({name:e,x:n,y:r})}u(it,"addDeaccelerator");function dt(e,n){k.setAnnotationsBox(e,n)}u(dt,"setAnnotationsBox");function lt(e,n){k.setSize(e,n)}u(lt,"setSize");function ct(e){k.startPipeline(e)}u(ct,"startPipeline");function pt(e,n){k.addPipelineComponent(e,n)}u(pt,"addPipelineComponent");function ft(e){k.setAxes(e)}u(ft,"updateAxes");function ht(e){return k.getNode(e)}u(ht,"getNode");function xt(e){return k.resolveNodeId(e)}u(xt,"resolveNodeId");function gt(){return k.build()}u(gt,"getWardleyData");function yt(){k.clear(),Bt()}u(yt,"clear");var Dt={getConfig:tt,addNode:et,addLink:at,addTrend:rt,addAnnotation:ot,addNote:nt,addAccelerator:st,addDeaccelerator:it,setAnnotationsBox:dt,setSize:lt,startPipeline:ct,addPipelineComponent:pt,updateAxes:ft,getNode:ht,resolveNodeId:xt,getWardleyData:gt,clear:yt,setAccTitle:At,getAccTitle:Tt,setDiagramTitle:Lt,getDiagramTitle:zt,getAccDescription:Nt,setAccDescription:Mt},Gt=["Genesis","Custom Built","Product","Commodity"],qt=u(()=>{const{themeVariables:e}=j();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"),Ht=u(()=>{const e=j()["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"),jt=u((e,n,r,x)=>{K.debug(`Rendering Wardley map `+e);const a=Ht(),d=qt(),w=a.nodeRadius*1.6,C=x.db,g=C.getWardleyData(),F=C.getDiagramTitle(),S=g.size?.width??a.width,b=g.size?.height??a.height,E=Yt(n);E.selectAll("*").remove(),It(E,b,S,a.useMaxWidth),E.attr("viewBox",`0 0 ${S} ${b}`);const v=E.append("g").attr("class","wardley-map"),G=E.append("defs");G.append("marker").attr("id",`arrow-${n}`).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",d.evolutionStroke).attr("stroke","none"),G.append("marker").attr("id",`link-arrow-end-${n}`).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",d.linkStroke).attr("stroke","none"),G.append("marker").attr("id",`link-arrow-start-${n}`).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",d.linkStroke).attr("stroke","none"),v.append("rect").attr("class","wardley-background").attr("width",S).attr("height",b).attr("fill",d.backgroundColor);const Y=S-a.padding*2,I=b-a.padding*2;F&&v.append("text").attr("class","wardley-title").attr("x",S/2).attr("y",a.padding/2).attr("fill",d.axisTextColor).attr("font-size",a.axisFontSize*1.05).attr("font-weight","bold").attr("text-anchor","middle").attr("dominant-baseline","middle").text(F);const z=u(t=>a.padding+t/100*Y,"projectX"),L=u(t=>b-a.padding-t/100*I,"projectY"),R=v.append("g").attr("class","wardley-axes");R.append("line").attr("x1",a.padding).attr("x2",S-a.padding).attr("y1",b-a.padding).attr("y2",b-a.padding).attr("stroke",d.axisColor).attr("stroke-width",1),R.append("line").attr("x1",a.padding).attr("x2",a.padding).attr("y1",a.padding).attr("y2",b-a.padding).attr("stroke",d.axisColor).attr("stroke-width",1);const ut=g.axes.xLabel??"Evolution",wt=g.axes.yLabel??"Visibility";R.append("text").attr("class","wardley-axis-label wardley-axis-label-x").attr("x",a.padding+Y/2).attr("y",b-a.padding/4).attr("fill",d.axisTextColor).attr("font-size",a.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").text(ut),R.append("text").attr("class","wardley-axis-label wardley-axis-label-y").attr("x",a.padding/3).attr("y",a.padding+I/2).attr("fill",d.axisTextColor).attr("font-size",a.axisFontSize).attr("font-weight","bold").attr("text-anchor","middle").attr("transform",`rotate(-90 ${a.padding/3} ${a.padding+I/2})`).text(wt);const B=g.axes.stages&&g.axes.stages.length>0?g.axes.stages:Gt;if(B.length>0){const t=v.append("g").attr("class","wardley-stages"),s=g.axes.stageBoundaries,o=[];if(s&&s.length===B.length){let i=0;s.forEach(p=>{o.push({start:i,end:p}),i=p})}else{const i=1/B.length;B.forEach((p,l)=>{o.push({start:l*i,end:(l+1)*i})})}B.forEach((i,p)=>{const l=o[p],f=a.padding+l.start*Y,h=a.padding+l.end*Y,y=(f+h)/2;p>0&&t.append("line").attr("x1",f).attr("x2",f).attr("y1",a.padding).attr("y2",b-a.padding).attr("stroke","#000").attr("stroke-width",1).attr("stroke-dasharray","5 5").attr("opacity",.8),t.append("text").attr("class","wardley-stage-label").attr("x",y).attr("y",b-a.padding/1.5).attr("fill",d.axisTextColor).attr("font-size",a.axisFontSize-2).attr("text-anchor","middle").text(i)})}if(a.showGrid){const t=v.append("g").attr("class","wardley-grid");for(let s=1;s<4;s++){const o=s/4,i=a.padding+Y*o;t.append("line").attr("x1",i).attr("x2",i).attr("y1",a.padding).attr("y2",b-a.padding).attr("stroke",d.gridColor).attr("stroke-dasharray","2 6"),t.append("line").attr("x1",a.padding).attr("x2",S-a.padding).attr("y1",b-a.padding-I*o).attr("y2",b-a.padding-I*o).attr("stroke",d.gridColor).attr("stroke-dasharray","2 6")}}const c=new Map;if(g.nodes.forEach(t=>{c.set(t.id,{x:z(t.x),y:L(t.y),node:t})}),g.pipelines.length>0){const t=v.append("g").attr("class","wardley-pipelines"),s=v.append("g").attr("class","wardley-pipeline-links");g.pipelines.forEach(o=>{if(o.componentIds.length===0)return;const i=o.componentIds.map(h=>({id:h,pos:c.get(h),node:g.nodes.find(y=>y.id===h)})).filter(h=>h.pos&&h.node).sort((h,y)=>h.node.x-y.node.x);for(let h=0;h{const y=c.get(h);y&&(p=Math.min(p,y.x),l=Math.max(l,y.x),f=y.y)}),p!==1/0&&l!==-1/0){const y=a.nodeRadius*4,m=f-y/2,P=c.get(o.nodeId);if(P){const N=(p+l)/2;P.x=N,P.y=m-w/6}t.append("rect").attr("class","wardley-pipeline-box").attr("x",p-15).attr("y",m).attr("width",l-p+30).attr("height",y).attr("fill","none").attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}})}const V=v.append("g").attr("class","wardley-links"),_=new Map;g.pipelines.forEach(t=>{_.set(t.nodeId,new Set(t.componentIds))});const Z=g.links.filter(t=>!(!c.has(t.source)||!c.has(t.target)||_.get(t.target)?.has(t.source)));V.selectAll("line").data(Z).enter().append("line").attr("class",t=>`wardley-link${t.dashed?" wardley-link--dashed":""}`).attr("x1",t=>{const s=c.get(t.source),o=c.get(t.target),p=g.nodes.find(y=>y.id===t.source).isPipelineParent?w/Math.sqrt(2):a.nodeRadius,l=o.x-s.x,f=o.y-s.y,h=Math.sqrt(l*l+f*f);return s.x+l/h*p}).attr("y1",t=>{const s=c.get(t.source),o=c.get(t.target),p=g.nodes.find(y=>y.id===t.source).isPipelineParent?w/Math.sqrt(2):a.nodeRadius,l=o.x-s.x,f=o.y-s.y,h=Math.sqrt(l*l+f*f);return s.y+f/h*p}).attr("x2",t=>{const s=c.get(t.source),o=c.get(t.target),p=g.nodes.find(y=>y.id===t.target).isPipelineParent?w/Math.sqrt(2):a.nodeRadius,l=s.x-o.x,f=s.y-o.y,h=Math.sqrt(l*l+f*f);return o.x+l/h*p}).attr("y2",t=>{const s=c.get(t.source),o=c.get(t.target),p=g.nodes.find(y=>y.id===t.target).isPipelineParent?w/Math.sqrt(2):a.nodeRadius,l=s.x-o.x,f=s.y-o.y,h=Math.sqrt(l*l+f*f);return o.y+f/h*p}).attr("stroke",d.linkStroke).attr("stroke-width",1).attr("stroke-dasharray",t=>t.dashed?"6 6":null).attr("marker-end",t=>t.flow==="forward"||t.flow==="bidirectional"?`url(#link-arrow-end-${n})`:null).attr("marker-start",t=>t.flow==="backward"||t.flow==="bidirectional"?`url(#link-arrow-start-${n})`:null),V.selectAll("text").data(Z.filter(t=>t.label)).enter().append("text").attr("class","wardley-link-label").attr("x",t=>{const s=c.get(t.source),o=c.get(t.target),i=(s.x+o.x)/2,p=o.y-s.y,l=o.x-s.x,f=Math.sqrt(l*l+p*p),h=8,y=p/f;return i+y*h}).attr("y",t=>{const s=c.get(t.source),o=c.get(t.target),i=(s.y+o.y)/2,p=o.x-s.x,l=o.y-s.y,f=Math.sqrt(p*p+l*l),h=8,y=-p/f;return i+y*h}).attr("fill",d.axisTextColor).attr("font-size",a.labelFontSize).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("transform",t=>{const s=c.get(t.source),o=c.get(t.target),i=(s.x+o.x)/2,p=(s.y+o.y)/2,l=o.x-s.x,f=o.y-s.y,h=Math.sqrt(l*l+f*f),y=8,m=f/h,P=-l/h,N=i+m*y,O=p+P*y;let X=Math.atan2(f,l)*180/Math.PI;return(X>90||X<-90)&&(X+=180),`rotate(${X} ${N} ${O})`}).text(t=>t.label);const mt=v.append("g").attr("class","wardley-trends"),kt=g.trends.map(t=>{const s=c.get(t.nodeId);if(!s)return null;const o=z(t.targetX),i=L(t.targetY),p=o-s.x,l=i-s.y,f=Math.sqrt(p*p+l*l),h=a.nodeRadius+2,y=f>h?o-p/f*h:o,m=f>h?i-l/f*h:i;return{origin:s,targetX:o,targetY:i,adjustedX2:y,adjustedY2:m}}).filter(t=>t!==null);mt.selectAll("line").data(kt).enter().append("line").attr("class","wardley-trend").attr("x1",t=>t.origin.x).attr("y1",t=>t.origin.y).attr("x2",t=>t.adjustedX2).attr("y2",t=>t.adjustedY2).attr("stroke",d.evolutionStroke).attr("stroke-width",1).attr("stroke-dasharray","4 4").attr("marker-end",`url(#arrow-${n})`);const M=v.append("g").attr("class","wardley-nodes").selectAll("g").data(g.nodes).enter().append("g").attr("class",t=>["wardley-node",t.className?`wardley-node--${t.className}`:""].filter(Boolean).join(" "));M.filter(t=>t.sourceStrategy==="outsource").append("circle").attr("class","wardley-outsource-overlay").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",a.nodeRadius*2).attr("fill","#666").attr("stroke",d.componentStroke).attr("stroke-width",1),M.filter(t=>t.sourceStrategy==="buy").append("circle").attr("class","wardley-buy-overlay").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",a.nodeRadius*2).attr("fill","#ccc").attr("stroke",d.componentStroke).attr("stroke-width",1),M.filter(t=>t.sourceStrategy==="build").append("circle").attr("class","wardley-build-overlay").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",a.nodeRadius*2).attr("fill","#eee").attr("stroke","#000").attr("stroke-width",1);const T=M.filter(t=>t.sourceStrategy==="market");T.append("circle").attr("class","wardley-market-overlay").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",a.nodeRadius*2).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",1),M.filter(t=>!t.isPipelineParent&&t.sourceStrategy!=="market"&&t.className!=="anchor").append("circle").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y).attr("r",a.nodeRadius).attr("fill",d.componentFill).attr("stroke",d.componentStroke).attr("stroke-width",1);const q=a.nodeRadius*.7,$=a.nodeRadius*1.2;if(T.append("line").attr("class","wardley-market-line").attr("x1",t=>c.get(t.id).x).attr("y1",t=>c.get(t.id).y-$).attr("x2",t=>c.get(t.id).x-$*Math.cos(Math.PI/6)).attr("y2",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("stroke",d.componentStroke).attr("stroke-width",1),T.append("line").attr("class","wardley-market-line").attr("x1",t=>c.get(t.id).x-$*Math.cos(Math.PI/6)).attr("y1",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("x2",t=>c.get(t.id).x+$*Math.cos(Math.PI/6)).attr("y2",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("stroke",d.componentStroke).attr("stroke-width",1),T.append("line").attr("class","wardley-market-line").attr("x1",t=>c.get(t.id).x+$*Math.cos(Math.PI/6)).attr("y1",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("x2",t=>c.get(t.id).x).attr("y2",t=>c.get(t.id).y-$).attr("stroke",d.componentStroke).attr("stroke-width",1),T.append("circle").attr("class","wardley-market-dot").attr("cx",t=>c.get(t.id).x).attr("cy",t=>c.get(t.id).y-$).attr("r",q).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),T.append("circle").attr("class","wardley-market-dot").attr("cx",t=>c.get(t.id).x-$*Math.cos(Math.PI/6)).attr("cy",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("r",q).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),T.append("circle").attr("class","wardley-market-dot").attr("cx",t=>c.get(t.id).x+$*Math.cos(Math.PI/6)).attr("cy",t=>c.get(t.id).y+$*Math.sin(Math.PI/6)).attr("r",q).attr("fill","white").attr("stroke",d.componentStroke).attr("stroke-width",2),M.filter(t=>t.isPipelineParent===!0).append("rect").attr("x",t=>c.get(t.id).x-w/2).attr("y",t=>c.get(t.id).y-w/2).attr("width",w).attr("height",w).attr("fill",d.componentFill).attr("stroke",d.componentStroke).attr("stroke-width",1),M.filter(t=>t.inertia===!0).append("line").attr("class","wardley-inertia").attr("x1",t=>{const s=c.get(t.id);let o=t.isPipelineParent?w/2+15:a.nodeRadius+15;return t.sourceStrategy&&(o+=a.nodeRadius+10),s.x+o}).attr("y1",t=>{const s=c.get(t.id),o=t.isPipelineParent?w:a.nodeRadius*2;return s.y-o/2}).attr("x2",t=>{const s=c.get(t.id);let o=t.isPipelineParent?w/2+15:a.nodeRadius+15;return t.sourceStrategy&&(o+=a.nodeRadius+10),s.x+o}).attr("y2",t=>{const s=c.get(t.id),o=t.isPipelineParent?w:a.nodeRadius*2;return s.y+o/2}).attr("stroke",d.componentStroke).attr("stroke-width",6),M.append("text").attr("x",t=>{const s=c.get(t.id);if(t.className==="anchor")return t.labelOffsetX!==void 0?s.x+t.labelOffsetX:s.x;let o=a.nodeLabelOffset;t.sourceStrategy&&t.labelOffsetX===void 0&&(o+=10);const i=t.labelOffsetX??o;return s.x+i}).attr("y",t=>{const s=c.get(t.id);if(t.className==="anchor")return t.labelOffsetY!==void 0?s.y+t.labelOffsetY:s.y-3;let o=-a.nodeLabelOffset;t.sourceStrategy&&t.labelOffsetY===void 0&&(o-=10);const i=t.labelOffsetY??o;return s.y+i}).attr("class","wardley-node-label").attr("fill",t=>t.className==="evolved"?d.evolutionStroke:t.className==="anchor"?"#000":d.componentLabelColor).attr("font-size",a.labelFontSize).attr("font-weight",t=>t.className==="anchor"?"bold":"normal").attr("text-anchor",t=>t.className==="anchor"?"middle":"start").attr("dominant-baseline",t=>t.className==="anchor"?"middle":"auto").text(t=>t.label),g.annotations.length>0){const t=v.append("g").attr("class","wardley-annotations");if(g.annotations.forEach(s=>{const o=s.coordinates.map(i=>({x:z(i.x),y:L(i.y)}));if(o.length>1)for(let i=0;i{const p=t.append("g").attr("class","wardley-annotation");p.append("circle").attr("cx",i.x).attr("cy",i.y).attr("r",10).attr("fill","white").attr("stroke",d.axisColor).attr("stroke-width",1.5),p.append("text").attr("x",i.x).attr("y",i.y).attr("text-anchor","middle").attr("dominant-baseline","central").attr("font-size",10).attr("fill",d.axisTextColor).attr("font-weight","bold").text(s.number)})}),g.annotationsBox){let s=z(g.annotationsBox.x),o=L(g.annotationsBox.y);const i=10,p=16,l=11,f=t.append("g").attr("class","wardley-annotations-box"),h=[...g.annotations].filter(m=>m.text).sort((m,P)=>m.number-P.number),y=[];if(h.forEach((m,P)=>{const N=f.append("text").attr("x",s+i).attr("y",o+i+(P+1)*p).attr("font-size",l).attr("fill",d.axisTextColor).attr("text-anchor","start").attr("dominant-baseline","middle").text(`${m.number}. ${m.text}`);y.push(N)}),y.length>0){let m=0,P=0;y.forEach(H=>{const W=H.node(),Pt=W.getComputedTextLength();m=Math.max(m,Pt);const Ct=W.getBBox();P=Math.max(P,Ct.height)});const N=m+i*2+105,O=h.length*p+i*2+P/2,X=a.padding,bt=S-a.padding-N,$t=a.padding,vt=b-a.padding-O;s=Math.max(X,Math.min(s,bt)),o=Math.max($t,Math.min(o,vt)),y.forEach((H,W)=>{H.attr("x",s+i).attr("y",o+i+(W+1)*p)}),f.insert("rect","text").attr("x",s).attr("y",o).attr("width",N).attr("height",O).attr("fill","white").attr("stroke",d.axisColor).attr("stroke-width",1.5).attr("rx",4).attr("ry",4)}}}if(g.notes.length>0){const t=v.append("g").attr("class","wardley-notes");g.notes.forEach(s=>{const o=z(s.x),i=L(s.y);t.append("text").attr("x",o).attr("y",i).attr("text-anchor","start").attr("font-size",11).attr("fill",d.axisTextColor).attr("font-weight","bold").text(s.text)})}if(g.accelerators.length>0){const t=v.append("g").attr("class","wardley-accelerators");g.accelerators.forEach(s=>{const o=z(s.x),i=L(s.y),p=60,l=30,f=20,h=` M ${o} ${i-l/2} L ${o+p-f} ${i-l/2} @@ -75,4 +75,4 @@ import{p as St}from"./chunk-JWPE2WC7-BxqMRrNb.js";import{s as Mt,g as Nt,o as zt .wardley-notes text { fill: ${a.axisTextColor}; } - `},"styles"),ee={parser:Q,db:Dt,renderer:Vt,styles:_t};export{ee as diagram}; + `},"styles"),te={parser:Q,db:Dt,renderer:Vt,styles:_t};export{te as diagram}; diff --git a/apps/kimi-code/dist-web/assets/xychartDiagram-FW5EYKEG---3Lbwvl.js b/apps/kimi-code/dist-web/assets/xychartDiagram-FW5EYKEG-BuEkU8kF.js similarity index 80% rename from apps/kimi-code/dist-web/assets/xychartDiagram-FW5EYKEG---3Lbwvl.js rename to apps/kimi-code/dist-web/assets/xychartDiagram-FW5EYKEG-BuEkU8kF.js index 9b08e208f..e0c6b410e 100644 --- a/apps/kimi-code/dist-web/assets/xychartDiagram-FW5EYKEG---3Lbwvl.js +++ b/apps/kimi-code/dist-web/assets/xychartDiagram-FW5EYKEG-BuEkU8kF.js @@ -1,7 +1,7 @@ -import{s as si,g as ai,o as Et,n as ni,a as oi,b as ri,_ as n,l as It,D as hi,e as li,p as ci,y as pt,i as ui,A as Mt,B as gi,E as xi,az as di,a7 as Dt}from"./mermaid.core-CgZTgv7Y.js";import{i as fi}from"./init-Gi6I4Gst.js";import{o as pi}from"./ordinal-Cboi1Yqb.js";import{l as vt}from"./linear-DPKx2NhO.js";import"./index-7SHxad1A.js";import"./_commonjsHelpers-CqkleIqs.js";import"./defaultLocale-DX6XiGOO.js";function mi(t,i,e){t=+t,i=+i,e=(a=arguments.length)<2?(i=t,t=0,1):a<3?1:+e;for(var s=-1,a=Math.max(0,Math.ceil((i-t)/e))|0,c=new Array(a);++s"u"&&(D.yylloc={});var ht=D.yylloc;o.push(ht);var ii=D.options&&D.options.ranges;typeof U.yy.parseError=="function"?this.parseError=U.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ei(z){g.length=g.length-2*z,w.length=w.length-z,o.length=o.length-z}n(ei,"popStack");function kt(){var z;return z=x.pop()||D.lex()||_t,typeof z!="number"&&(z instanceof Array&&(x=z,z=x.pop()),z=u.symbols_[z]||z),z}n(kt,"lex");for(var M,$,O,lt,G={},st,N,Tt,at;;){if($=g[g.length-1],this.defaultActions[$]?O=this.defaultActions[$]:((M===null||typeof M>"u")&&(M=kt()),O=K[$]&&K[$][M]),typeof O>"u"||!O.length||!O[0]){var ct="";at=[];for(st in K[$])this.terminals_[st]&&st>Jt&&at.push("'"+this.terminals_[st]+"'");D.showPosition?ct="Parse error on line "+(et+1)+`: +import{s as si,g as ai,p as Et,o as ni,a as oi,b as ri,_ as n,l as It,F as hi,e as li,q as ci,z as pt,i as ui,B as Mt,D as gi,W as xi,az as di,a7 as Dt}from"./mermaid.core-B_UcP3X_.js";import{i as fi}from"./init-Gi6I4Gst.js";import{o as pi}from"./ordinal-Cboi1Yqb.js";import{l as vt}from"./linear-Vyz-NdPh.js";import"./index-BOtIzGLC.js";import"./defaultLocale-DX6XiGOO.js";function mi(t,i,e){t=+t,i=+i,e=(a=arguments.length)<2?(i=t,t=0,1):a<3?1:+e;for(var s=-1,a=Math.max(0,Math.ceil((i-t)/e))|0,c=new Array(a);++s"u"&&(D.yylloc={});var ht=D.yylloc;o.push(ht);var ii=D.options&&D.options.ranges;typeof U.yy.parseError=="function"?this.parseError=U.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ei(z){g.length=g.length-2*z,w.length=w.length-z,o.length=o.length-z}n(ei,"popStack");function kt(){var z;return z=x.pop()||D.lex()||_t,typeof z!="number"&&(z instanceof Array&&(x=z,z=x.pop()),z=u.symbols_[z]||z),z}n(kt,"lex");for(var M,$,O,lt,G={},st,N,Tt,at;;){if($=g[g.length-1],this.defaultActions[$]?O=this.defaultActions[$]:((M===null||typeof M>"u")&&(M=kt()),O=K[$]&&K[$][M]),typeof O>"u"||!O.length||!O[0]){var ct="";at=[];for(st in K[$])this.terminals_[st]&&st>Jt&&at.push("'"+this.terminals_[st]+"'");D.showPosition?ct="Parse error on line "+(et+1)+`: `+D.showPosition()+` Expecting `+at.join(", ")+", got '"+(this.terminals_[M]||M)+"'":ct="Parse error on line "+(et+1)+": Unexpected "+(M==_t?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(ct,{text:D.match,token:this.terminals_[M]||M,line:D.yylineno,loc:ht,expected:at})}if(O[0]instanceof Array&&O.length>1)throw new Error("Parse Error: multiple actions possible at state: "+$+", token: "+M);switch(O[0]){case 1:g.push(M),w.push(D.yytext),o.push(D.yylloc),g.push(O[1]),M=null,Rt=D.yyleng,d=D.yytext,et=D.yylineno,ht=D.yylloc;break;case 2:if(N=this.productions_[O[1]][1],G.$=w[w.length-N],G._$={first_line:o[o.length-(N||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(N||1)].first_column,last_column:o[o.length-1].last_column},ii&&(G._$.range=[o[o.length-(N||1)].range[0],o[o.length-1].range[1]]),lt=this.performAction.apply(G,[d,Rt,et,U.yy,O[1],w,o].concat(ti)),typeof lt<"u")return lt;N&&(g=g.slice(0,-1*N*2),w=w.slice(0,-1*N),o=o.slice(0,-1*N)),g.push(this.productions_[O[1]][0]),w.push(G.$),o.push(G._$),Tt=K[g[g.length-2]][g[g.length-1]],g.push(Tt);break;case 3:return!0}}return!0},"parse")},Q=(function(){var F={EOF:1,parseError:n(function(u,g){if(this.yy.parser)this.yy.parser.parseError(u,g);else throw new Error(u)},"parseError"),setInput:n(function(r,u){return this.yy=u||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:n(function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var u=r.match(/(?:\r\n?|\n).*/g);return u?(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:n(function(r){var u=r.length,g=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-u),this.offset-=u;var x=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 w=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===x.length?this.yylloc.first_column:0)+x[x.length-g.length].length-g[0].length:this.yylloc.first_column-u},this.options.ranges&&(this.yylloc.range=[w[0],w[0]+this.yyleng-u]),this.yyleng=this.yytext.length,this},"unput"),more:n(function(){return this._more=!0,this},"more"),reject:n(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:n(function(r){this.unput(this.match.slice(r))},"less"),pastInput:n(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:n(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:n(function(){var r=this.pastInput(),u=new Array(r.length+1).join("-");return r+this.upcomingInput()+` `+u+"^"},"showPosition"),test_match:n(function(r,u){var g,x,w;if(this.options.backtrack_lexer&&(w={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&&(w.yylloc.range=this.yylloc.range.slice(0))),x=r[0].match(/(?:\r\n?|\n).*/g),x&&(this.yylineno+=x.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:x?x[x.length-1].length-x[x.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],g=this.performAction.call(this,this.yy,this,u,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),g)return g;if(this._backtrack){for(var o in w)this[o]=w[o];return!1}return!1},"test_match"),next:n(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var r,u,g,x;this._more||(this.yytext="",this.match="");for(var w=this._currentRules(),o=0;ou[0].length)){if(u=g,x=o,this.options.backtrack_lexer){if(r=this.test_match(g,w[o]),r!==!1)return r;if(this._backtrack){u=!1;continue}else return!1}else if(!this.options.flex)break}return u?(r=this.test_match(u,w[x]),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:n(function(){var u=this.next();return u||this.lex()},"lex"),begin:n(function(u){this.conditionStack.push(u)},"begin"),popState:n(function(){var u=this.conditionStack.length-1;return u>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:n(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:n(function(u){return u=this.conditionStack.length-1-Math.abs(u||0),u>=0?this.conditionStack[u]:"INITIAL"},"topState"),pushState:n(function(u){this.begin(u)},"pushState"),stateStackSize:n(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:n(function(u,g,x,w){switch(x){case 0:break;case 1:break;case 2:return this.popState(),36;case 3:return this.popState(),36;case 4:return 36;case 5:break;case 6:return 10;case 7:return this.pushState("acc_title"),19;case 8:return this.popState(),"acc_title_value";case 9:return this.pushState("acc_descr"),21;case 10:return this.popState(),"acc_descr_value";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";case 18:return this.pushState("axis_data"),"Y_AXIS";case 19:return this.pushState("axis_band_data"),24;case 20:return 33;case 21:return this.pushState("data"),16;case 22:return this.pushState("data"),18;case 23:return this.pushState("data_inner"),24;case 24:return 29;case 25:return this.popState(),26;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 44;case 33:return"COLON";case 34:return 45;case 35:return 28;case 36:return 46;case 37:return 47;case 38:return 49;case 39:return 51;case 40:return 48;case 41:return 42;case 42:return 50;case 43:return 43;case 44:break;case 45:return 37;case 46:return 38}},"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 F})();R.lexer=Q;function q(){this.yy={}}return n(q,"Parser"),q.prototype=R,R.Parser=q,new q})();gt.parser=gt;var yi=gt;function xt(t){return t.type==="bar"}n(xt,"isBarPlot");function nt(t){return t.type==="band"}n(nt,"isBandAxisData");function j(t){return t.type==="linear"}n(j,"isLinearAxisData");var zt=class{constructor(t){this.parentGroup=t}static{n(this,"TextDimensionCalculatorWithFont")}getMaxDimension(t,i){if(!this.parentGroup)return{width:t.reduce((a,c)=>Math.max(c.length,a),0)*i,height:i};const e={width:0,height:0},s=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",i);for(const a of t){const c=di(s,1,a),l=c?c.width:a.length*i,f=c?c.height:i;e.width=Math.max(e.width,l),e.height=Math.max(e.height,f)}return s.remove(),e}},Lt=.7,Pt=.2,Bt=class{constructor(t,i,e,s){this.axisConfig=t,this.title=i,this.textDimensionCalculator=e,this.axisThemeConfig=s,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.normalizedLabelRotationInRad=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.normalizedLabelRotationInRad=this.axisConfig.labelRotation>=-90&&this.axisConfig.labelRotation<=90?this.axisConfig.labelRotation*Math.PI/180:0}static{n(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(){const 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(){Lt*this.getTickDistance()>this.outerPadding*2&&(this.outerPadding=Math.floor(Lt*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(t){let i=t.height;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const e=this.getLabelDimension(),s=Pt*t.width;this.outerPadding=Math.min(e.width/2,s);let a=e.height;this.axisPosition==="bottom"&&this.normalizedLabelRotationInRad!==0&&(a=Math.max(a,Math.abs(Math.sin(this.normalizedLabelRotationInRad)*e.width)+Math.abs(Math.cos(this.normalizedLabelRotationInRad)*e.height))),a+=this.axisConfig.labelPadding*2,this.labelTextHeight=e.height,a<=i&&(i-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const e=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),s=e.height+this.axisConfig.titlePadding*2;this.titleTextHeight=e.height,s<=i&&(i-=s,this.showTitle=!0)}this.boundingRect.width=t.width,this.boundingRect.height=t.height-i}calculateSpaceIfDrawnVertical(t){let i=t.width;if(this.axisConfig.showAxisLine&&i>this.axisConfig.axisLineWidth&&(i-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel){const e=this.getLabelDimension(),s=Pt*t.height;this.outerPadding=Math.min(e.height/2,s);const a=e.width+this.axisConfig.labelPadding*2;a<=i&&(i-=a,this.showLabel=!0)}if(this.axisConfig.showTick&&i>=this.axisConfig.tickLength&&(this.showTick=!0,i-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title){const e=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize),s=e.height+this.axisConfig.titlePadding*2;this.titleTextHeight=e.height,s<=i&&(i-=s,this.showTitle=!0)}this.boundingRect.width=t.width-i,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}calculateOffsetByRotation(t){const i=this.normalizedLabelRotationInRad;return i===0?0:Math.sin(i)*this.getLabelDimension()[t]/2}getDrawableElementsForLeftAxis(){const t=[];if(this.showAxisLine){const i=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${i},${this.boundingRect.y} L ${i},${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(i=>({text:i.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(i),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){const i=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(e=>({path:`M ${i},${this.getScaleValue(e)} L ${i-this.axisConfig.tickLength},${this.getScaleValue(e)}`,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(){const t=[];if(this.showAxisLine){const i=this.boundingRect.y+this.axisConfig.axisLineWidth/2;t.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.getScaleValue(i)+this.calculateOffsetByRotation("height"),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0)+Math.abs(this.calculateOffsetByRotation("width")),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:this.normalizedLabelRotationInRad*180/Math.PI,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){const i=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);t.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(e=>({path:`M ${this.getScaleValue(e)},${i} L ${this.getScaleValue(e)},${i+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(){const t=[];if(this.showAxisLine){const i=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},${i} L ${this.boundingRect.x+this.boundingRect.width},${i}`,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})}if(this.showLabel&&t.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(i=>({text:i.toString(),x:this.getScaleValue(i),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){const i=this.boundingRect.y;t.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(e=>({path:`M ${this.getScaleValue(e)},${i+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(e)},${i+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():[]}},bi=class extends Bt{static{n(this,"BandAxis")}constructor(t,i,e,s,a){super(t,s,a,i),this.categories=e,this.scale=ut().domain(this.categories).range(this.getRange())}setRange(t){super.setRange(t)}recalculateScale(){this.scale=ut().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),It.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(t){return this.scale(t)??this.getRange()[0]}},Ai=class extends Bt{static{n(this,"LinearAxis")}constructor(t,i,e,s,a){super(t,s,a,i),this.domain=e,this.scale=vt().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){const t=[...this.domain];this.axisPosition==="left"&&t.reverse(),this.scale=vt().domain(t).range(this.getRange())}getScaleValue(t){return this.scale(t)}};function dt(t,i,e,s){const a=new zt(s);return nt(t)?new bi(i,e,t.categories,t.title,a):new Ai(i,e,[t.min,t.max],t.title,a)}n(dt,"getAxis");var wi=class{constructor(t,i,e,s){this.textDimensionCalculator=t,this.chartConfig=i,this.chartData=e,this.chartThemeConfig=s,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}static{n(this,"ChartTitle")}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){const i=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),e=Math.max(i.width,t.width),s=i.height+2*this.chartConfig.titlePadding;return i.width<=e&&i.height<=s&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=e,this.boundingRect.height=s,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){const 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}};function Vt(t,i,e,s){const a=new zt(s);return new wi(a,t,i,e)}n(Vt,"getChartTitleComponent");var Ci=class{constructor(t,i,e,s,a){this.plotData=t,this.xAxis=i,this.yAxis=e,this.orientation=s,this.plotIndex=a}static{n(this,"LinePlot")}getDrawableElement(){const t=this.plotData.data.map(s=>[this.xAxis.getScaleValue(s[0]),this.yAxis.getScaleValue(s[1])]);let i;if(this.orientation==="horizontal"?i=Dt().y(s=>s[0]).x(s=>s[1])(t):i=Dt().x(s=>s[0]).y(s=>s[1])(t),!i)return[];const e=[{groupTexts:["plot",`line-plot-${this.plotIndex}`],type:"path",data:[{path:i,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}];if(this.plotData.pointLabels&&this.plotData.pointLabels.length>0){const c=[];for(const[l,[f,S]]of t.entries()){const k=this.plotData.pointLabels[l];k&&(this.orientation==="horizontal"?c.push({x:S+10,y:f,text:k,fill:this.plotData.strokeFill,verticalPos:"middle",horizontalPos:"left",fontSize:12,rotation:0}):c.push({x:f,y:S-10,text:k,fill:this.plotData.strokeFill,verticalPos:"middle",horizontalPos:"center",fontSize:12,rotation:0}))}c.length>0&&e.push({groupTexts:["plot",`line-plot-${this.plotIndex}`,"labels"],type:"text",data:c})}return e}},Si=class{constructor(t,i,e,s,a,c){this.barData=t,this.boundingRect=i,this.xAxis=e,this.yAxis=s,this.orientation=a,this.plotIndex=c}static{n(this,"BarPlot")}getDrawableElement(){const t=this.barData.data.map(a=>[this.xAxis.getScaleValue(a[0]),this.yAxis.getScaleValue(a[1])]),e=Math.min(this.xAxis.getAxisOuterPadding()*2,this.xAxis.getTickDistance())*(1-.05),s=e/2;return this.orientation==="horizontal"?[{groupTexts:["plot",`bar-plot-${this.plotIndex}`],type:"rect",data:t.map(a=>({x:this.boundingRect.x,y:a[0]-s,height:e,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]-s,y:a[1],width:e,height:this.boundingRect.y+this.boundingRect.height-a[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}},Ri=class{constructor(t,i,e){this.chartConfig=t,this.chartData=i,this.chartThemeConfig=e,this.boundingRect={x:0,y:0,width:0,height:0}}static{n(this,"BasePlot")}setAxes(t,i){this.xAxis=t,this.yAxis=i}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");const t=[];for(const[i,e]of this.chartData.plots.entries())switch(e.type){case"line":{const s=new Ci(e,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...s.getDrawableElement())}break;case"bar":{const s=new Si(e,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,i);t.push(...s.getDrawableElement())}break}return t}};function Ot(t,i,e){return new Ri(t,i,e)}n(Ot,"getPlotComponent");var _i=class{constructor(t,i,e,s){this.chartConfig=t,this.chartData=i,this.componentStore={title:Vt(t,i,e,s),plot:Ot(t,i,e),xAxis:dt(i.xAxis,t.xAxis,{titleColor:e.xAxisTitleColor,labelColor:e.xAxisLabelColor,tickColor:e.xAxisTickColor,axisLineColor:e.xAxisLineColor},s),yAxis:dt(i.yAxis,t.yAxis,{titleColor:e.yAxisTitleColor,labelColor:e.yAxisLabelColor,tickColor:e.yAxisTickColor,axisLineColor:e.yAxisLineColor},s)}}static{n(this,"Orchestrator")}calculateVerticalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,e=0,s=0,a=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),c=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),l=this.componentStore.plot.calculateSpace({width:a,height:c});t-=l.width,i-=l.height,l=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i}),s=l.height,i-=l.height,this.componentStore.xAxis.setAxisPosition("bottom"),l=this.componentStore.xAxis.calculateSpace({width:t,height:i}),i-=l.height,this.componentStore.yAxis.setAxisPosition("left"),l=this.componentStore.yAxis.calculateSpace({width:t,height:i}),e=l.width,t-=l.width,t>0&&(a+=t,t=0),i>0&&(c+=i,i=0),this.componentStore.plot.calculateSpace({width:a,height:c}),this.componentStore.plot.setBoundingBoxXY({x:e,y:s}),this.componentStore.xAxis.setRange([e,e+a]),this.componentStore.xAxis.setBoundingBoxXY({x:e,y:s+c}),this.componentStore.yAxis.setRange([s,s+c]),this.componentStore.yAxis.setBoundingBoxXY({x:0,y:s}),this.chartData.plots.some(f=>xt(f))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let t=this.chartConfig.width,i=this.chartConfig.height,e=0,s=0,a=0,c=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),l=Math.floor(i*this.chartConfig.plotReservedSpacePercent/100),f=this.componentStore.plot.calculateSpace({width:c,height:l});t-=f.width,i-=f.height,f=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:i}),e=f.height,i-=f.height,this.componentStore.xAxis.setAxisPosition("left"),f=this.componentStore.xAxis.calculateSpace({width:t,height:i}),t-=f.width,s=f.width,this.componentStore.yAxis.setAxisPosition("top"),f=this.componentStore.yAxis.calculateSpace({width:t,height:i}),i-=f.height,a=e+f.height,t>0&&(c+=t,t=0),i>0&&(l+=i,i=0),this.componentStore.plot.calculateSpace({width:c,height:l}),this.componentStore.plot.setBoundingBoxXY({x:s,y:a}),this.componentStore.yAxis.setRange([s,s+c]),this.componentStore.yAxis.setBoundingBoxXY({x:s,y:e}),this.componentStore.xAxis.setRange([a,a+l]),this.componentStore.xAxis.setBoundingBoxXY({x:0,y:a}),this.chartData.plots.some(S=>xt(S))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){this.chartConfig.chartOrientation==="horizontal"?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();const t=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(const i of Object.values(this.componentStore))t.push(...i.getDrawableElements());return t}},ki=class{static{n(this,"XYChartBuilder")}static build(t,i,e,s){return new _i(t,i,e,s).getDrawableElement()}},Z=0,Wt,J=bt(),tt=yt(),m=At(),ft=tt.plotColorPalette.split(",").map(t=>t.trim()),ot=!1,mt=!1;function yt(){const t=xi(),i=pt();return Mt(t.xyChart,i.themeVariables.xyChart)}n(yt,"getChartDefaultThemeConfig");function bt(){const t=pt();return Mt(gi.xyChart,t.xyChart)}n(bt,"getChartDefaultConfig");function At(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}n(At,"getChartDefaultData");function it(t){const i=pt();return ui(t.trim(),i)}n(it,"textSanitizer");function Ft(t){Wt=t}n(Ft,"setTmpSVGG");function Xt(t){t==="horizontal"?J.chartOrientation="horizontal":J.chartOrientation="vertical"}n(Xt,"setOrientation");function Yt(t){m.xAxis.title=it(t.text)}n(Yt,"setXAxisTitle");function wt(t,i){m.xAxis={type:"linear",title:m.xAxis.title,min:t,max:i},ot=!0}n(wt,"setXAxisRangeData");function Nt(t){m.xAxis={type:"band",title:m.xAxis.title,categories:t.map(i=>it(i.text))},ot=!0}n(Nt,"setXAxisBand");function Ht(t){m.yAxis.title=it(t.text)}n(Ht,"setYAxisTitle");function Ut(t,i){m.yAxis={type:"linear",title:m.yAxis.title,min:t,max:i},mt=!0}n(Ut,"setYAxisRangeData");function $t(t){const i=Math.min(...t),e=Math.max(...t),s=j(m.yAxis)?m.yAxis.min:1/0,a=j(m.yAxis)?m.yAxis.max:-1/0;m.yAxis={type:"linear",title:m.yAxis.title,min:Math.min(s,i),max:Math.max(a,e)}}n($t,"setYAxisRangeFromPlotData");function Ct(t){let i=[];if(t.length===0)return i;if(!ot){const e=j(m.xAxis)?m.xAxis.min:1/0,s=j(m.xAxis)?m.xAxis.max:-1/0;wt(Math.min(e,1),Math.max(s,t.length))}if(nt(m.xAxis)&&t.length>m.xAxis.categories.length&&(t=t.slice(0,m.xAxis.categories.length)),mt||$t(t),nt(m.xAxis)&&(i=m.xAxis.categories.map((e,s)=>[e,t[s]])),j(m.xAxis)){const e=m.xAxis.min,s=m.xAxis.max,a=(s-e)/(t.length-1),c=[];for(let l=e;l<=s;l+=a)c.push(`${l}`);i=c.map((l,f)=>[l,t[f]])}return i}n(Ct,"transformDataWithoutCategory");function St(t){return ft[t===0?0:t%ft.length]}n(St,"getPlotColorFromPalette");function qt(t,i){const e=i.map(l=>l.value),s=i.map(l=>l.label?it(l.label):""),a=Ct(e),c=s.some(l=>l!=="");m.plots.push({type:"line",strokeFill:St(Z),strokeWidth:2,data:a,...c?{pointLabels:s}:{}}),Z++}n(qt,"setLineData");function Gt(t,i){const e=i.map(a=>a.value),s=Ct(e);m.plots.push({type:"bar",fill:St(Z),data:s}),Z++}n(Gt,"setBarData");function jt(){if(m.plots.length===0)throw Error("No Plot to render, please provide a plot with some data");return m.title=Et(),ki.build(J,m,tt,Wt)}n(jt,"getDrawableElem");function Qt(){return tt}n(Qt,"getChartThemeConfig");function Kt(){return J}n(Kt,"getChartConfig");function Zt(){return m}n(Zt,"getXYChartData");var Ti=n(function(){ci(),Z=0,J=bt(),m=At(),tt=yt(),ft=tt.plotColorPalette.split(",").map(t=>t.trim()),ot=!1,mt=!1},"clear"),Di={getDrawableElem:jt,clear:Ti,setAccTitle:ri,getAccTitle:oi,setDiagramTitle:ni,getDiagramTitle:Et,getAccDescription:ai,setAccDescription:si,setOrientation:Xt,setXAxisTitle:Yt,setXAxisRangeData:wt,setXAxisBand:Nt,setYAxisTitle:Ht,setYAxisRangeData:Ut,setLineData:qt,setBarData:Gt,setTmpSVGG:Ft,getChartThemeConfig:Qt,getChartConfig:Kt,getXYChartData:Zt},vi=n((t,i,e,s)=>{const a=s.db,c=a.getChartThemeConfig(),l=a.getChartConfig(),f=a.getXYChartData().plots[0].data.map(p=>p[1]);function S(p){return p==="top"?"text-before-edge":"middle"}n(S,"getDominantBaseLine");function k(p){return p==="left"?"start":p==="right"?"end":"middle"}n(k,"getTextAnchor");function L(p){return`translate(${p.x}, ${p.y}) rotate(${p.rotation||0})`}n(L,"getTextTransformation"),It.debug(`Rendering xychart chart -`+t);const _=hi(i),y=_.append("g").attr("class","main"),E=y.append("rect").attr("width",l.width).attr("height",l.height).attr("class","background");li(_,l.height,l.width,!0),_.attr("viewBox",`0 0 ${l.width} ${l.height}`),E.attr("fill",c.backgroundColor),a.setTmpSVGG(_.append("g").attr("class","mermaid-tmp-group"));const v=a.getDrawableElem(),P={};function I(p){let T=y,h="";for(const[B]of p.entries()){let W=y;B>0&&P[h]&&(W=P[h]),h+=p[B],T=P[h],T||(T=P[h]=W.append("g").attr("class",p[B]))}return T}n(I,"getGroup");for(const p of v){if(p.data.length===0)continue;const T=I(p.groupTexts);switch(p.type){case"rect":if(T.selectAll("rect").data(p.data).enter().append("rect").attr("x",h=>h.x).attr("y",h=>h.y).attr("width",h=>h.width).attr("height",h=>h.height).attr("fill",h=>h.fill).attr("stroke",h=>h.strokeFill).attr("stroke-width",h=>h.strokeWidth),l.showDataLabel){const h=l.showDataLabelOutsideBar;if(l.chartOrientation==="horizontal"){let B=function(A,V){const{data:R,label:Q}=A;return V*Q.length*W<=R.width-X};n(B,"fitsHorizontally");const W=.7,X=10,Y=p.data.map((A,V)=>({data:A,label:f[V].toString()})).filter(A=>A.data.width>0&&A.data.height>0),C=Y.map(A=>{const{data:V}=A;let R=V.height*.7;for(;!B(A,R)&&R>0;)R-=1;return R}),H=Math.floor(Math.min(...C)),b=n(A=>h?A.data.x+A.data.width+X:A.data.x+A.data.width-X,"determineLabelXPosition");T.selectAll("text").data(Y).enter().append("text").attr("x",b).attr("y",A=>A.data.y+A.data.height/2).attr("text-anchor",h?"start":"end").attr("dominant-baseline","middle").attr("fill",c.dataLabelColor).attr("font-size",`${H}px`).text(A=>A.label)}else{let B=function(b,A,V){const{data:R,label:Q}=b,F=A*Q.length*.7,r=R.x+R.width/2,u=r-F/2,g=r+F/2,x=u>=R.x&&g<=R.x+R.width,w=R.y+V+A<=R.y+R.height;return x&&w};n(B,"fitsInBar");const W=10,X=p.data.map((b,A)=>({data:b,label:f[A].toString()})).filter(b=>b.data.width>0&&b.data.height>0),Y=X.map(b=>{const{data:A,label:V}=b;let R=A.width/(V.length*.7);for(;!B(b,R,W)&&R>0;)R-=1;return R}),C=Math.floor(Math.min(...Y)),H=n(b=>h?b.data.y-W:b.data.y+W,"determineLabelYPosition");T.selectAll("text").data(X).enter().append("text").attr("x",b=>b.data.x+b.data.width/2).attr("y",H).attr("text-anchor","middle").attr("dominant-baseline",h?"auto":"hanging").attr("fill",c.dataLabelColor).attr("font-size",`${C}px`).text(b=>b.label)}}break;case"text":T.selectAll("text").data(p.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",h=>h.fill).attr("font-size",h=>h.fontSize).attr("dominant-baseline",h=>S(h.verticalPos)).attr("text-anchor",h=>k(h.horizontalPos)).attr("transform",h=>L(h)).text(h=>h.text);break;case"path":T.selectAll("path").data(p.data).enter().append("path").attr("d",h=>h.path).attr("fill",h=>h.fill?h.fill:"none").attr("stroke",h=>h.strokeFill).attr("stroke-width",h=>h.strokeWidth);break}}},"draw"),Li={draw:vi},Oi={parser:yi,db:Di,renderer:Li};export{Oi as diagram}; +`+t);const _=hi(i),y=_.append("g").attr("class","main"),E=y.append("rect").attr("width",l.width).attr("height",l.height).attr("class","background");li(_,l.height,l.width,!0),_.attr("viewBox",`0 0 ${l.width} ${l.height}`),E.attr("fill",c.backgroundColor),a.setTmpSVGG(_.append("g").attr("class","mermaid-tmp-group"));const v=a.getDrawableElem(),P={};function I(p){let T=y,h="";for(const[B]of p.entries()){let W=y;B>0&&P[h]&&(W=P[h]),h+=p[B],T=P[h],T||(T=P[h]=W.append("g").attr("class",p[B]))}return T}n(I,"getGroup");for(const p of v){if(p.data.length===0)continue;const T=I(p.groupTexts);switch(p.type){case"rect":if(T.selectAll("rect").data(p.data).enter().append("rect").attr("x",h=>h.x).attr("y",h=>h.y).attr("width",h=>h.width).attr("height",h=>h.height).attr("fill",h=>h.fill).attr("stroke",h=>h.strokeFill).attr("stroke-width",h=>h.strokeWidth),l.showDataLabel){const h=l.showDataLabelOutsideBar;if(l.chartOrientation==="horizontal"){let B=function(A,V){const{data:R,label:Q}=A;return V*Q.length*W<=R.width-X};n(B,"fitsHorizontally");const W=.7,X=10,Y=p.data.map((A,V)=>({data:A,label:f[V].toString()})).filter(A=>A.data.width>0&&A.data.height>0),C=Y.map(A=>{const{data:V}=A;let R=V.height*.7;for(;!B(A,R)&&R>0;)R-=1;return R}),H=Math.floor(Math.min(...C)),b=n(A=>h?A.data.x+A.data.width+X:A.data.x+A.data.width-X,"determineLabelXPosition");T.selectAll("text").data(Y).enter().append("text").attr("x",b).attr("y",A=>A.data.y+A.data.height/2).attr("text-anchor",h?"start":"end").attr("dominant-baseline","middle").attr("fill",c.dataLabelColor).attr("font-size",`${H}px`).text(A=>A.label)}else{let B=function(b,A,V){const{data:R,label:Q}=b,F=A*Q.length*.7,r=R.x+R.width/2,u=r-F/2,g=r+F/2,x=u>=R.x&&g<=R.x+R.width,w=R.y+V+A<=R.y+R.height;return x&&w};n(B,"fitsInBar");const W=10,X=p.data.map((b,A)=>({data:b,label:f[A].toString()})).filter(b=>b.data.width>0&&b.data.height>0),Y=X.map(b=>{const{data:A,label:V}=b;let R=A.width/(V.length*.7);for(;!B(b,R,W)&&R>0;)R-=1;return R}),C=Math.floor(Math.min(...Y)),H=n(b=>h?b.data.y-W:b.data.y+W,"determineLabelYPosition");T.selectAll("text").data(X).enter().append("text").attr("x",b=>b.data.x+b.data.width/2).attr("y",H).attr("text-anchor","middle").attr("dominant-baseline",h?"auto":"hanging").attr("fill",c.dataLabelColor).attr("font-size",`${C}px`).text(b=>b.label)}}break;case"text":T.selectAll("text").data(p.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",h=>h.fill).attr("font-size",h=>h.fontSize).attr("dominant-baseline",h=>S(h.verticalPos)).attr("text-anchor",h=>k(h.horizontalPos)).attr("transform",h=>L(h)).text(h=>h.text);break;case"path":T.selectAll("path").data(p.data).enter().append("path").attr("d",h=>h.path).attr("fill",h=>h.fill?h.fill:"none").attr("stroke",h=>h.strokeFill).attr("stroke-width",h=>h.strokeWidth);break}}},"draw"),Li={draw:vi},Vi={parser:yi,db:Di,renderer:Li};export{Vi as diagram}; diff --git a/apps/kimi-code/dist-web/index.html b/apps/kimi-code/dist-web/index.html index 733888340..e91d293e1 100644 --- a/apps/kimi-code/dist-web/index.html +++ b/apps/kimi-code/dist-web/index.html @@ -14,8 +14,8 @@ the server's Content-Security-Policy forbids inline scripts. --> Kimi Code Web - - + +

        diff --git a/apps/kimi-code/package.json b/apps/kimi-code/package.json index 3548d5148..92e191bb5 100644 --- a/apps/kimi-code/package.json +++ b/apps/kimi-code/package.json @@ -1,6 +1,6 @@ { "name": "@moonshot-ai/kimi-code", - "version": "0.43.0", + "version": "2.3.0", "description": "The Starting Point for Next-Gen Agents", "license": "MIT", "author": "Moonshot AI", @@ -78,14 +78,14 @@ "postinstall": "node scripts/postinstall.mjs" }, "optionalDependencies": { - "@mariozechner/clipboard": "^0.3.9", - "node-pty": "^1.1.0" + "@mariozechner/clipboard": "^0.3.9" }, "devDependencies": { "@moonshot-ai/acp-server": "workspace:^", "@moonshot-ai/agent-core-v2": "workspace:^", "@moonshot-ai/kap-server": "workspace:^", "@moonshot-ai/kimi-code-oauth": "workspace:^", + "@moonshot-ai/kimi-code-product": "workspace:^", "@moonshot-ai/kimi-code-sdk": "workspace:^", "@moonshot-ai/kimi-telemetry": "workspace:^", "@moonshot-ai/migration-legacy": "workspace:^", @@ -102,6 +102,7 @@ "cli-highlight": "^2.1.11", "commander": "^13.1.0", "jimp": "^1.6.1", + "lovely-mermaid": "0.3.3", "pathe": "^2.0.3", "postject": "1.0.0-alpha.6", "semver": "^7.7.4", @@ -114,6 +115,7 @@ "node": ">=22.19.0" }, "dependencies": { + "chokidar": "^4.0.3", "qrcode": "^1.5.4", "ws": "^8.18.0" } diff --git a/apps/kimi-code/scripts/copy-native-assets.mjs b/apps/kimi-code/scripts/copy-native-assets.mjs index dad365a06..f3b0e0cad 100644 --- a/apps/kimi-code/scripts/copy-native-assets.mjs +++ b/apps/kimi-code/scripts/copy-native-assets.mjs @@ -7,9 +7,8 @@ const repoRoot = resolve(appRoot, '../..'); const source = resolve(repoRoot, 'packages/pi-tui/native'); const target = resolve(appRoot, 'native'); -// pi-tui ships platform-specific native helpers only for darwin/win32; -// Linux has no native helper, so there is nothing to copy for it. -const PLATFORMS = ['darwin', 'win32']; +// pi-tui ships platform-specific native helpers for darwin/linux/win32. +const PLATFORMS = ['darwin', 'linux', 'win32']; async function assertPrebuilds(platform) { const dir = resolve(source, platform, 'prebuilds'); diff --git a/apps/kimi-code/scripts/native/02-sea-blob.mjs b/apps/kimi-code/scripts/native/02-sea-blob.mjs index 434a7861c..a29cc174d 100644 --- a/apps/kimi-code/scripts/native/02-sea-blob.mjs +++ b/apps/kimi-code/scripts/native/02-sea-blob.mjs @@ -17,6 +17,7 @@ import { targetTriple, } from './paths.mjs'; import { collectWebAssets, webAssetManifestKey } from './web-assets.mjs'; +import { SEA_EXEC_ARGV, seaCodeCacheEnabled } from './sea-options.mjs'; async function ensureBundleExists() { try { @@ -53,8 +54,15 @@ async function writeSeaConfig(target) { Object.entries(seaAssets).sort(([a], [b]) => a.localeCompare(b)), ), disableExperimentalSEAWarning: true, - useCodeCache: false, + // Compiles main.cjs at build time so startup skips the parse of the whole + // bundle. The Node docs list dynamic `import()` as unsupported with a code + // cache, but that limitation is in the ESM main-script path; a CommonJS + // main script keeps a working `import()` (verified on Node 24, and relied + // on by `__plugin_run_node` to load plugin scripts), so the bundle keeps + // its dynamic imports as-is. + useCodeCache: seaCodeCacheEnabled(target), useSnapshot: false, + execArgv: [...SEA_EXEC_ARGV], }; await writeFile(nativeSeaConfigPath(), `${JSON.stringify(config, null, 2)}\n`); diff --git a/apps/kimi-code/scripts/native/03-inject.mjs b/apps/kimi-code/scripts/native/03-inject.mjs index 24cd0ad32..672ab0d14 100644 --- a/apps/kimi-code/scripts/native/03-inject.mjs +++ b/apps/kimi-code/scripts/native/03-inject.mjs @@ -1,4 +1,4 @@ -import { copyFile, mkdir, stat } from 'node:fs/promises'; +import { copyFile, mkdir, readdir, stat } from 'node:fs/promises'; import { resolve } from 'node:path'; import { fail, run, tryRun } from './exec.mjs'; @@ -33,13 +33,40 @@ async function copyNodeExecutable(target) { } } +async function fileExists(path) { + try { + await stat(path); + return true; + } catch { + return false; + } +} + +async function signtoolPath() { + const programFilesX86 = process.env['ProgramFiles(x86)'] ?? 'C:/Program Files (x86)'; + const binRoot = resolve(programFilesX86, 'Windows Kits/10/bin'); + const archDir = process.arch === 'arm64' ? 'arm64' : 'x64'; + let versions; + try { + versions = (await readdir(binRoot)).filter((entry) => entry.startsWith('10.')); + } catch { + return null; + } + versions.sort((a, b) => b.localeCompare(a)); + for (const version of versions) { + const candidate = resolve(binRoot, version, archDir, 'signtool.exe'); + if (await fileExists(candidate)) return candidate; + } + return null; +} + async function removeSignatureIfNeeded(target) { const out = nativeBinPath(target); if (process.platform === 'darwin') { await tryRun('codesign', ['--remove-signature', out]); } if (process.platform === 'win32') { - await tryRun('signtool', ['remove', '/s', out]); + await tryRun((await signtoolPath()) ?? 'signtool', ['remove', '/s', out]); } } diff --git a/apps/kimi-code/scripts/native/04-sign.mjs b/apps/kimi-code/scripts/native/04-sign.mjs index 2930b5e63..6882516ca 100644 --- a/apps/kimi-code/scripts/native/04-sign.mjs +++ b/apps/kimi-code/scripts/native/04-sign.mjs @@ -3,7 +3,7 @@ import { createReadStream } from 'node:fs'; import { writeFile } from 'node:fs/promises'; import { basename, resolve } from 'node:path'; -import { run } from './exec.mjs'; +import { fail, run, tryRun } from './exec.mjs'; import { nativeBinPath, targetTriple } from './paths.mjs'; const ENTITLEMENTS_PATH = resolve(import.meta.dirname, 'entitlements.plist'); @@ -43,6 +43,49 @@ async function writeChecksum(executable) { await writeFile(`${executable}.sha256`, `${digest} ${basename(executable)}\n`); } +function azureSigningEnv() { + const endpoint = process.env.AZURE_TRUSTED_SIGNING_ENDPOINT; + const accountName = process.env.AZURE_TRUSTED_SIGNING_ACCOUNT_NAME; + const profileName = process.env.AZURE_TRUSTED_SIGNING_CERTIFICATE_PROFILE_NAME; + if (!endpoint || !accountName || !profileName) { + fail( + 'KIMI_AZURE_TRUSTED_SIGNING=true requires AZURE_TRUSTED_SIGNING_ENDPOINT, ' + + 'AZURE_TRUSTED_SIGNING_ACCOUNT_NAME and AZURE_TRUSTED_SIGNING_CERTIFICATE_PROFILE_NAME to be set.', + ); + } + return { endpoint, accountName, profileName }; +} + +export function buildAzureSignCommand({ endpoint, accountName, profileName, executable }) { + return ( + `Invoke-TrustedSigning -Endpoint '${endpoint}' -CertificateProfileName '${profileName}' ` + + `-CodeSigningAccountName '${accountName}' -TimestampRfc3161 'http://timestamp.acs.microsoft.com' ` + + `-TimestampDigest 'SHA256' -FileDigest 'SHA256' -Files '${executable}'` + ); +} + +async function signWithAzureTrustedSigning(executable) { + const { endpoint, accountName, profileName } = azureSigningEnv(); + await tryRun('pwsh', [ + '-NoProfile', + '-NonInteractive', + '-Command', + 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force -Scope CurrentUser', + ]); + await run('pwsh', [ + '-NoProfile', + '-NonInteractive', + '-Command', + 'Install-Module -Name TrustedSigning -MinimumVersion 0.5.0 -Force -Repository PSGallery -Scope CurrentUser', + ]); + await run('pwsh', [ + '-NoProfile', + '-NonInteractive', + '-Command', + buildAzureSignCommand({ endpoint, accountName, profileName, executable }), + ]); +} + export async function runSignStep({ identity = '-', keychainPath = null } = {}) { const target = targetTriple(); const executable = nativeBinPath(target); @@ -56,6 +99,9 @@ export async function runSignStep({ identity = '-', keychainPath = null } = {}) }); await run('codesign', args); } + if (process.platform === 'win32' && process.env.KIMI_AZURE_TRUSTED_SIGNING === 'true') { + await signWithAzureTrustedSigning(executable); + } await writeChecksum(executable); console.log(`Signed and hashed: ${executable}`); diff --git a/apps/kimi-code/scripts/native/05-verify.mjs b/apps/kimi-code/scripts/native/05-verify.mjs index 5c47da6bc..211746cbe 100644 --- a/apps/kimi-code/scripts/native/05-verify.mjs +++ b/apps/kimi-code/scripts/native/05-verify.mjs @@ -2,14 +2,31 @@ import { run } from './exec.mjs'; import { nativeBinPath, targetTriple } from './paths.mjs'; export async function runVerifyStep({ requireGatekeeper = false } = {}) { + const target = targetTriple(); + const executable = nativeBinPath(target); + + if (process.platform === 'win32') { + if (process.env.KIMI_AZURE_TRUSTED_SIGNING !== 'true') { + console.log('Verify step skipped (unsigned Windows build)'); + return; + } + console.log(`==> Get-AuthenticodeSignature ${executable}`); + await run('pwsh', [ + '-NoProfile', + '-NonInteractive', + '-Command', + `$sig = Get-AuthenticodeSignature '${executable}'; ` + + '"$($sig.Status) | $($sig.SignerCertificate.Subject)"; ' + + "if ($sig.Status -ne 'Valid') { exit 1 }", + ]); + return; + } + if (process.platform !== 'darwin') { console.log('Verify step skipped (not macOS)'); return; } - const target = targetTriple(); - const executable = nativeBinPath(target); - console.log(`==> codesign -dv ${executable}`); await run('codesign', ['-dv', '--verbose=2', executable]); diff --git a/apps/kimi-code/scripts/native/native-deps.mjs b/apps/kimi-code/scripts/native/native-deps.mjs index 8e26d9229..273f3386e 100644 --- a/apps/kimi-code/scripts/native/native-deps.mjs +++ b/apps/kimi-code/scripts/native/native-deps.mjs @@ -27,16 +27,17 @@ const clipboardSubpackageByTarget = Object.freeze({ 'win32-x64': '@mariozechner/clipboard-win32-x64-msvc', }); -// pi-tui ships platform-specific native helpers (no Linux build): -// - darwin: Shift-modifier detection for Terminal.app Shift+Enter -// - win32: enable ENABLE_VIRTUAL_TERMINAL_INPUT so Shift+Tab is distinguishable +// pi-tui ships platform-specific native helpers: +// - darwin: clipboard + Shift-modifier detection for Terminal.app Shift+Enter +// - linux: X11 clipboard +// - win32: clipboard + enable ENABLE_VIRTUAL_TERMINAL_INPUT so Shift+Tab is distinguishable const piTuiNativeFileByTarget = Object.freeze({ - 'darwin-arm64': ['native/darwin/prebuilds/darwin-arm64/darwin-modifiers.node'], - 'darwin-x64': ['native/darwin/prebuilds/darwin-x64/darwin-modifiers.node'], - 'linux-arm64': [], - 'linux-x64': [], - 'win32-arm64': ['native/win32/prebuilds/win32-arm64/win32-console-mode.node'], - 'win32-x64': ['native/win32/prebuilds/win32-x64/win32-console-mode.node'], + 'darwin-arm64': ['native/darwin/prebuilds/darwin-arm64/darwin-platform.node'], + 'darwin-x64': ['native/darwin/prebuilds/darwin-x64/darwin-platform.node'], + 'linux-arm64': ['native/linux/prebuilds/linux-arm64/linux-platform-x11.node'], + 'linux-x64': ['native/linux/prebuilds/linux-x64/linux-platform-x11.node'], + 'win32-arm64': ['native/win32/prebuilds/win32-arm64/win32-platform.node'], + 'win32-x64': ['native/win32/prebuilds/win32-x64/win32-platform.node'], }); export function isSupportedTarget(target) { @@ -79,7 +80,7 @@ export const nativeDeps = Object.freeze([ // pi-tui's JS is bundled into main.cjs, so only the platform-specific // native helper (.node under native/) ships alongside the binary — its // dist/ JS is intentionally NOT collected (it stays in the bundle). This - // keeps the SEA native-asset payload small. Linux has no native helper. + // keeps the SEA native-asset payload small. collect: 'native-file-only', parent: null, nativeFileRelatives: (target) => piTuiNativeFileByTarget[target] ?? [], diff --git a/apps/kimi-code/scripts/native/sea-options.mjs b/apps/kimi-code/scripts/native/sea-options.mjs new file mode 100644 index 000000000..28d6aca4b --- /dev/null +++ b/apps/kimi-code/scripts/native/sea-options.mjs @@ -0,0 +1,16 @@ +// Runtime options baked into the single-executable binary (see 02-sea-blob.mjs). + +// Node flags applied when the binary starts (`process.execArgv` at runtime). +// V8 sizes the young generation from the machine's physical memory, which on +// developer machines means a 64 MB semi-space and roughly 100 MB of resident +// memory that `kimi` never needs; 16 MB keeps scavenges cheap for the CLI's +// allocation pattern while dropping that overhead. Users can still extend the +// flags with NODE_OPTIONS (the default `execArgvExtension: "env"`). +export const SEA_EXEC_ARGV = Object.freeze(['--max-semi-space-size=16']); + +// The V8 code cache generated at build time only loads on the platform and +// architecture it was compiled on, so cross-target bundles (a +// KIMI_CODE_BUILD_TARGET that differs from the build host) must leave it out. +export function seaCodeCacheEnabled(target, host = `${process.platform}-${process.arch}`) { + return target === host; +} diff --git a/apps/kimi-code/scripts/native/smoke.mjs b/apps/kimi-code/scripts/native/smoke.mjs index dbff8c7e9..a15338234 100644 --- a/apps/kimi-code/scripts/native/smoke.mjs +++ b/apps/kimi-code/scripts/native/smoke.mjs @@ -1,5 +1,5 @@ import { execFile } from 'node:child_process'; -import { mkdir, readFile, rm, stat } from 'node:fs/promises'; +import { mkdir, readFile, rm, stat, writeFile } from 'node:fs/promises'; import { resolve } from 'node:path'; import { promisify } from 'node:util'; @@ -89,4 +89,26 @@ try { await rm(smokeHome, { recursive: true, force: true }); } +// Plugin MCP servers declared with `command: "node"` are re-executed through +// this binary as `__plugin_run_node`, which loads the plugin script with a +// dynamic import(). Keep that path covered so bundler or SEA settings that +// break dynamic import() fail here instead of inside users' plugins. +const pluginRoot = resolve(smokeHome, 'plugin'); +await rm(smokeHome, { recursive: true, force: true }); +await mkdir(pluginRoot, { recursive: true }); +try { + const pluginEntry = resolve(pluginRoot, 'entry.mjs'); + await writeFile( + pluginEntry, + 'await Promise.resolve();\nconsole.log(`plugin entry ran ${process.argv.slice(2).join(" ")}`);\n', + ); + const pluginOutput = await runKimiWithEnv(['__plugin_run_node', pluginEntry, 'alpha', 'beta'], { + KIMI_CODE_HOME: smokeHome, + KIMI_PLUGIN_ROOT: pluginRoot, + }); + assertIncludes(pluginOutput, 'plugin entry ran alpha beta', 'plugin node entry'); +} finally { + await rm(smokeHome, { recursive: true, force: true }); +} + console.log(`Native smoke passed: ${executablePath}`); diff --git a/apps/kimi-code/src/cli/commands.ts b/apps/kimi-code/src/cli/commands.ts index e6022a8f1..345b78fa8 100644 --- a/apps/kimi-code/src/cli/commands.ts +++ b/apps/kimi-code/src/cli/commands.ts @@ -7,6 +7,8 @@ import { registerAcpCommand } from './sub/acp'; import { registerDoctorCommand } from './sub/doctor'; import { registerExportCommand } from './sub/export'; import { registerForkCommand } from './sub/fork'; +import { registerAppCommand } from './sub/app'; +import { registerInstallDesktopCommand } from './sub/install-desktop'; import { registerLoginCommand } from './sub/login'; import { registerProviderCommand } from './sub/provider'; import { registerSessionCommand } from './sub/session'; @@ -52,7 +54,7 @@ export function createProgram( .option('-c, --continue', 'Continue the previous session for the working directory.', false) .addOption(new Option('-C').hideHelp().default(false)) .option('-y, --yolo', 'Start in Ask When Needed mode: routine edits and commands run automatically; risky actions, questions, and plans still ask.', false) - .option('--auto', 'Start in Never Ask mode: never interrupts you; everything runs and is decided automatically.', false) + .option('--auto', 'Start in Never Ask mode: everything runs and is decided automatically; only plans in Plan mode wait for your review.', false) .addOption( new Option( '-m, --model ', @@ -127,6 +129,8 @@ export function createProgram( registerLoginCommand(program); registerDoctorCommand(program); registerVisCommand(program); + registerInstallDesktopCommand(program); + registerAppCommand(program); registerMigrateCommand(program, onMigrate); program .command('upgrade') diff --git a/apps/kimi-code/src/cli/run-shell.ts b/apps/kimi-code/src/cli/run-shell.ts index 65349cfb6..633508475 100644 --- a/apps/kimi-code/src/cli/run-shell.ts +++ b/apps/kimi-code/src/cli/run-shell.ts @@ -238,7 +238,9 @@ export async function runShell( const hasContent = tui.hasSessionContent(); setCrashPhase('shutdown'); trackLifecycle('exit', { duration_ms: Date.now() - startedAt, tui_mode: tui.state.ui.mode }); - await shutdownTelemetry({ timeoutMs: CLI_SHUTDOWN_TIMEOUT_MS }); + try { + await shutdownTelemetry({ timeoutMs: CLI_SHUTDOWN_TIMEOUT_MS }); + } catch {} const gutter = ' '.repeat(CHROME_GUTTER); process.stdout.write(`${gutter}Bye!\n`); const hints: string[] = []; @@ -281,7 +283,9 @@ export async function runShell( removeCrashHandlers(); setCrashPhase('shutdown'); trackLifecycle('exit', { duration_ms: Date.now() - startedAt, tui_mode: tui.state.ui.mode }); - await shutdownTelemetry({ timeoutMs: CLI_SHUTDOWN_TIMEOUT_MS }); + try { + await shutdownTelemetry({ timeoutMs: CLI_SHUTDOWN_TIMEOUT_MS }); + } catch {} await harness.close(); throw error; } diff --git a/apps/kimi-code/src/cli/sub/app.ts b/apps/kimi-code/src/cli/sub/app.ts new file mode 100644 index 000000000..6e52b333c --- /dev/null +++ b/apps/kimi-code/src/cli/sub/app.ts @@ -0,0 +1,17 @@ +import { resolve } from 'node:path'; +import type { Command } from 'commander'; + +import { openUrl } from '#/utils/open-url'; + +export function registerAppCommand(program: Command): void { + program + .command('app [path]') + .description('Open a new chat in the Kimi Code desktop app for this directory.') + .action((path?: string) => { + const root = resolve(path ?? process.cwd()); + openUrl(`kimi-code://open?root=${encodeURIComponent(root)}&new=1`, () => { + process.stderr.write('Could not open Kimi Code desktop. Run `kimi install-desktop` to install it.\n'); + process.exitCode = 1; + }); + }); +} diff --git a/apps/kimi-code/src/cli/sub/install-desktop.ts b/apps/kimi-code/src/cli/sub/install-desktop.ts new file mode 100644 index 000000000..1472d741a --- /dev/null +++ b/apps/kimi-code/src/cli/sub/install-desktop.ts @@ -0,0 +1,19 @@ +import type { Command } from 'commander'; + +import { kimiCodeOfficialInstallUrl } from '#/constant/app'; +import { openUrl } from '#/utils/open-url'; + +function openDesktopAppPage(): void { + const url = kimiCodeOfficialInstallUrl(); + process.stdout.write(`${url}\n`); + openUrl(url); +} + +export function registerInstallDesktopCommand(program: Command): void { + program + .command('install-desktop') + .description('Print the Kimi Code desktop app page and open it in your browser.') + .action(openDesktopAppPage); + + program.command('install-app', { hidden: true }).action(openDesktopAppPage); +} diff --git a/apps/kimi-code/src/cli/sub/provider.ts b/apps/kimi-code/src/cli/sub/provider.ts index 6d901198b..5c1d0b17c 100644 --- a/apps/kimi-code/src/cli/sub/provider.ts +++ b/apps/kimi-code/src/cli/sub/provider.ts @@ -6,23 +6,18 @@ * a provider, or inspect what is configured without launching the TUI. * * `add` writes the same `source = { kind: 'apiJson', url, apiKey }` blob the - * TUI does; the next launch's `refreshAllProviderModels` - * (apps/kimi-code/src/tui/utils/refresh-providers.ts) groups by URL, retries - * available API-key candidates, and re-fetches the model list, so periodic - * refresh is automatic. + * TUI does; the next launch's provider-model refresh + * (`KimiHarness.refreshProviderModels`, backed by the engine's discovery + * service) groups by URL, retries available API-key candidates, and + * re-fetches the model list, so periodic refresh is automatic. */ -import { - applyCustomRegistryProvider, - CustomRegistryApiError, - fetchCustomRegistry, - type CustomRegistrySource, - type ManagedKimiConfigShape, -} from '@moonshot-ai/kimi-code-oauth'; import { applyCatalogProvider, catalogProviderModels, CatalogFetchError, + RegistryImportError, + type ImportCustomRegistryResult, createKimiHarness, DEFAULT_CATALOG_URL, resolveCatalogImport, @@ -75,12 +70,6 @@ export async function handleProviderAdd( opts: AddOptions, ): Promise { const apiKey = resolveApiKey(opts.apiKey, deps.env); - if (apiKey === undefined) { - deps.stderr.write( - 'Missing API key. Pass --api-key or set KIMI_REGISTRY_API_KEY.\n', - ); - deps.exit(1); - } const trimmedUrl = url.trim(); if (trimmedUrl.length === 0) { @@ -88,62 +77,44 @@ export async function handleProviderAdd( deps.exit(1); } - const source: CustomRegistrySource = { - kind: 'apiJson', - url: trimmedUrl, - apiKey, - }; - const harness = deps.getHarness(); await harness.ensureConfigFile(); - let entries: Awaited>; + let result: ImportCustomRegistryResult; try { - entries = await fetchCustomRegistry(source, { userAgent: createKimiCodeUserAgent() }); + result = await harness.importCustomRegistry({ + url: trimmedUrl, + apiKey, + setDefaultWhenUnset: false, + }); } catch (error) { - const suffix = error instanceof CustomRegistryApiError ? ` (HTTP ${String(error.status)})` : ''; + if (!(error instanceof RegistryImportError) || error.phase === 'apply') throw error; + if (error.phase === 'empty') { + deps.stderr.write(`Registry at ${trimmedUrl} contained no usable providers.\n`); + deps.exit(1); + } + const suffix = error.status === undefined ? '' : ` (HTTP ${String(error.status)})`; deps.stderr.write(`Failed to fetch registry${suffix}: ${errorMessage(error)}\n`); + if (apiKey === undefined && (error.status === 401 || error.status === 403)) { + deps.stderr.write( + 'This registry requires authentication — pass --api-key or set KIMI_REGISTRY_API_KEY.\n', + ); + } deps.exit(1); } - const entryList = Object.values(entries); - if (entryList.length === 0) { - deps.stderr.write(`Registry at ${trimmedUrl} contained no usable providers.\n`); - deps.exit(1); - } - - // `harness.removeProvider` reloads the config from disk on each call (see - // `core-impl.ts removeKimiProvider`), so calling it inside the apply loop - // would discard providers we already applied in memory but have not yet - // persisted. Drop every stale id up front in a single batch instead, then - // apply against the resulting fresh config. - let config = await harness.getConfig(); - const staleIds = entryList - .filter((entry) => config.providers[entry.id] !== undefined) - .map((entry) => entry.id); - for (const id of staleIds) { - config = await harness.removeProvider(id); - } - - const addedProviderIds: string[] = []; - let modelCount = 0; - for (const entry of entryList) { - applyCustomRegistryProvider(asManaged(config), entry, source); - addedProviderIds.push(entry.id); - modelCount += Object.keys(entry.models).length; - } - - await harness.setConfig({ - providers: config.providers, - models: config.models, - }); - + const count = result.providers.length; deps.stdout.write( - `Imported ${String(addedProviderIds.length)} provider${addedProviderIds.length === 1 ? '' : 's'} ` + - `(${String(modelCount)} model${modelCount === 1 ? '' : 's'}) from ${trimmedUrl}:\n`, + `Imported ${String(count)} provider${count === 1 ? '' : 's'} ` + + `(${String(result.modelsImported)} model${result.modelsImported === 1 ? '' : 's'}) from ${trimmedUrl}:\n`, ); - for (const id of addedProviderIds) { - deps.stdout.write(` - ${id}\n`); + for (const provider of result.providers) { + deps.stdout.write(` - ${provider.id}\n`); + } + for (const [id, envName] of Object.entries(result.credentialEnv)) { + deps.stdout.write( + `provider "${id}" declares credential env var "${envName}" — set api_key_env in config.toml to use it\n`, + ); } } @@ -474,7 +445,10 @@ export function registerProviderCommand(parent: Command, deps?: Partial') .description('Import every provider listed in a custom registry (api.json).') - .option('--api-key ', 'Registry API key. Falls back to KIMI_REGISTRY_API_KEY.') + .option( + '--api-key ', + 'Registry API key. Falls back to KIMI_REGISTRY_API_KEY; omit both for public registries.', + ) .action(async (url: string, options: { apiKey?: string }) => { const resolved = resolveDeps(deps); await runAction(resolved, () => handleProviderAdd(resolved, url, { apiKey: options.apiKey })); @@ -582,10 +556,6 @@ function resolveApiKey(flag: string | undefined, env: NodeJS.ProcessEnv): string return undefined; } -function asManaged(config: KimiConfig): ManagedKimiConfigShape { - return config as unknown as ManagedKimiConfigShape; -} - function providerSourceLabel(provider: KimiConfig['providers'][string]): string { const source = provider.source; if (source !== undefined) { diff --git a/apps/kimi-code/src/cli/sub/web/remote-control.ts b/apps/kimi-code/src/cli/sub/web/remote-control.ts index d71976776..f126774a0 100644 --- a/apps/kimi-code/src/cli/sub/web/remote-control.ts +++ b/apps/kimi-code/src/cli/sub/web/remote-control.ts @@ -23,6 +23,7 @@ export { } from '@moonshot-ai/remote-control'; export type { ParsedRawHttpRequest, + RemoteControlCloseReason, RemoteControlHandle, RemoteControlLock, RemoteControlLockInfo, @@ -84,6 +85,8 @@ export function formatRemoteControlStatus(status: RemoteControlStatus): string { return ` ${value('✓')} ${label('Connected to relay, waiting for remote devices…')}\n`; case 'relay_disconnected': return ` ${value('!')} ${label('Relay disconnected; reconnecting…')}\n`; + case 'relay_terminated': + return ` ${value('✕')} ${label('Taken offline from the web; exiting…')}\n`; case 'device_connected': return ` ${value('✓')} ${label('Remote device connected (1 active session)')}\n`; case 'device_disconnected': diff --git a/apps/kimi-code/src/cli/sub/web/run.ts b/apps/kimi-code/src/cli/sub/web/run.ts index b10a666d9..a881e534f 100644 --- a/apps/kimi-code/src/cli/sub/web/run.ts +++ b/apps/kimi-code/src/cli/sub/web/run.ts @@ -16,11 +16,12 @@ import { shutdownTelemetry, track } from '@moonshot-ai/kimi-telemetry'; import chalk from 'chalk'; import { type Command, Option } from 'commander'; -import { CLI_SHUTDOWN_TIMEOUT_MS, WEB_USER_AGENT_SUFFIX } from '#/constant/app'; +import { CLI_MSH_PLATFORM, CLI_SHUTDOWN_TIMEOUT_MS, CLI_USER_AGENT_PRODUCT, WEB_USER_AGENT_SUFFIX } from '#/constant/app'; import { getNativeWebAssetsDir } from '#/native/web-assets'; import { darkColors } from '#/tui/theme/colors'; import { openUrl as defaultOpenUrl } from '#/utils/open-url'; import { getDataDir } from '#/utils/paths'; +import { persistedKimiOAuthRef } from '#/utils/region'; import { generateRemoteControlQr } from '#/utils/remote-control-qr'; import { initializeServerTelemetry } from '../../telemetry'; @@ -75,9 +76,14 @@ export interface WebCliOptions extends ServerCliOptions { remoteControl?: boolean; } +export interface ForegroundControls { + /** Ask the foreground runner to shut the server down and exit (like SIGINT). */ + requestShutdown(reason: string): void; +} + export interface StartForegroundHooks { /** Fires once the server is listening, before the foreground runner blocks. */ - onReady?: (origin: string) => void | Promise; + onReady?: (origin: string, controls?: ForegroundControls) => void | Promise; onShutdown?: (reason: string) => void | Promise; } @@ -201,7 +207,7 @@ export async function handleWebCommand( const run = deps.startServerForeground ?? startServerForeground; let remoteControl: RemoteControlHandle | undefined; await run(parsed, { - onReady: async (origin) => { + onReady: async (origin, controls) => { // Resolve the persistent token only once the server is up: a fresh // server writes `server.token` on first boot, so reading it beforehand // would miss first-time starts and the browser would hit the auth gate. @@ -213,6 +219,7 @@ export async function handleWebCommand( if (opts.remoteControl === true) { if (token === undefined) throw new Error('Unable to read the local server token.'); const dataDir = getDataDir(); + const persisted = persistedKimiOAuthRef(); let outputReady = false; const pendingStatuses: string[] = []; const onStatus = (status: RemoteControlStatus): void => { @@ -224,10 +231,26 @@ export async function handleWebCommand( homeDir: dataDir, localOrigin: origin, localServerToken: token, - clientVersion: `kimi-code/${getVersion()}`, + clientVersion: `${CLI_USER_AGENT_PRODUCT}/${getVersion()}`, + urlSource: CLI_MSH_PLATFORM, + configuredOAuthKey: persisted?.key, + configuredOAuthHost: persisted?.oauthHost, stderr: deps.stderr, onStatus, }); + void remoteControl.closed.then( + (reason) => { + if (reason === 'user_requested') { + controls?.requestShutdown('remote_control_user_requested'); + } + }, + (error) => { + deps.stderr.write( + `Remote Control lock release failed: ${error instanceof Error ? error.message : String(error)}\n`, + ); + controls?.requestShutdown('remote_control_closed'); + }, + ); const qrCode = await generateRemoteControlQr(remoteControl.url, dataDir); deps.stdout.write( formatRemoteControlOutput({ @@ -400,13 +423,15 @@ async function runServerInProcess( running.logger.info({ address: running.address }, 'server ready'); try { - await hooks.onReady?.(running.address); + await hooks.onReady?.(running.address, { + requestShutdown: (reason) => void shutdown(reason), + }); } catch (error) { try { await hooks.onShutdown?.('startup_failed'); } finally { await running.close(); - await shutdownTelemetry({ timeoutMs: CLI_SHUTDOWN_TIMEOUT_MS }); + await shutdownTelemetry({ timeoutMs: CLI_SHUTDOWN_TIMEOUT_MS }).catch(() => {}); } throw error; } diff --git a/apps/kimi-code/src/cli/v2/run-v2-print.ts b/apps/kimi-code/src/cli/v2/run-v2-print.ts index 3e0e6755a..6e995d6fa 100644 --- a/apps/kimi-code/src/cli/v2/run-v2-print.ts +++ b/apps/kimi-code/src/cli/v2/run-v2-print.ts @@ -22,6 +22,7 @@ import { IAgentLifecycleService, IAgentLoopService, IAgentPermissionModeService, + IAgentPlanService, IAgentProfileService, IAgentTaskService, IAuthSummaryService, @@ -33,6 +34,7 @@ import { IOAuthToolkit, ISessionIndex, ISessionManager, + ISessionRunGate, ITelemetryService, IWorkspaceInstanceManager, PRINT_MAX_TURNS_DEFAULT, @@ -41,6 +43,9 @@ import { bootstrap, createCloudAppender, ensureMainAgent, + reloadOnStale, + ErrorCodes, + isError2, resumeSessionById, logSeed, parseAgentFileText, @@ -50,6 +55,7 @@ import { resolveLoggingConfig, resolvePrintBackgroundMode, setClampedTimeout, + type Error2, type Event2, type IAgentScopeHandle, type ISessionScopeHandle, @@ -77,6 +83,7 @@ import { } from '@moonshot-ai/kimi-telemetry'; import type { GoalUpdated } from '@moonshot-ai/agent-core-v2/features/goal/goalOps'; import type { TurnEnded } from '@moonshot-ai/agent-core-v2/agent/loop/turnOps'; +import type { PermissionMode } from '@moonshot-ai/agent-core-v2/agent/permissionPolicy/types'; import type { AssistantDelta, ThinkingDelta, @@ -286,8 +293,13 @@ export async function runV2Print( // Best-effort: a broken mcp.json or trust store must not fail the run. } - const resolved = await resolveNativeSession(app, opts, workDir, defaultModel, stderr); - restorePermission = resolved.restorePermission; + let resolved = await resolveNativeSession(app, opts, workDir, defaultModel, stderr); + const { previousPermissionMode } = resolved; + if (previousPermissionMode !== undefined) { + restorePermission = async () => { + resolved.agent.accessor.get(IAgentPermissionModeService).setMode(previousPermissionMode); + }; + } quiesceAgents = async () => { releaseQuiescence = await quiesceSessionAgents(resolved.session, resolved.agent); }; @@ -302,27 +314,45 @@ export async function runV2Print( } const goalCreate = parseHeadlessGoalCreate(opts.prompt!); - if (goalCreate !== undefined) { - await runNativeGoal( - app, - resolved.session, - resolved.agent, - goalCreate, - resolved.goalModel, - outputFormat, - stdout, - stderr, - ); - } else { - await runNativeTurn( - app, - resolved.session, - resolved.agent, - opts.prompt!, - outputFormat, - stdout, - stderr, + const runTurnOnce = async (): Promise => { + if (goalCreate !== undefined) { + await ensureNativeGoal(resolved.agent, goalCreate, resolved.goalModel); + await runNativeGoalTurn( + app, + resolved.session, + resolved.agent, + goalCreate.objective, + outputFormat, + stdout, + stderr, + ); + } else { + await runNativeTurn(app, resolved.session, resolved.agent, opts.prompt!, outputFormat, stdout, stderr); + } + }; + try { + await reloadOnStale( + app.accessor, + resolved.session.id, + async () => { + resolved.session.accessor.get(ISessionRunGate).begin(); + await runTurnOnce(); + }, + { + onReloaded: async (session) => { + stderr.write(`Session "${session.id}" was updated by another client; reloaded it.\n`); + const agentContext = await ensureMainAgent(session); + const agent = session.accessor.get(IAgentLifecycleService).handleOf(agentContext.agentId)!; + if (opts.model !== undefined) await agent.accessor.get(IAgentProfileService).setModel(opts.model); + agent.accessor.get(IAgentPermissionModeService).setMode('auto'); + resolved = { ...resolved, session, agent }; + }, + }, ); + } catch (error) { + if (!isError2(error) || error.code !== ErrorCodes.SESSION_OCCUPIED) throw error; + reportSessionOccupied(error, outputFormat, stdout, stderr); + return; } writeResumeHint(resolved.session.id, outputFormat, stdout, stderr); @@ -337,7 +367,7 @@ export async function runV2Print( interface ResolvedNativeSession { readonly session: ISessionScopeHandle; readonly agent: IAgentScopeHandle; - readonly restorePermission: () => Promise; + readonly previousPermissionMode?: PermissionMode; readonly telemetryModel: string | undefined; readonly goalModel: string | undefined; } @@ -404,17 +434,22 @@ async function resolveNativeSession( return session; }; - const forceAuto = ( - agent: IAgentScopeHandle, - ): { readonly restorePermission: () => Promise } => { + // Plan mode waits for the user to review the plan, and nobody can review it + // in print mode: a resumed session still in Plan mode keeps running in Plan + // mode, and its plan stays unapproved until the user reviews it. + const notePlanMode = async (agent: IAgentScopeHandle, sessionId: string): Promise => { + if ((await agent.accessor.get(IAgentPlanService).status()) === null) return; + stderr.write( + `Session "${sessionId}" is in Plan mode, and its plan cannot be approved in print mode; ` + + `review it with \`kimi -r ${sessionId}\`.\n`, + ); + }; + + const forceAuto = (agent: IAgentScopeHandle): PermissionMode => { const permissionMode = agent.accessor.get(IAgentPermissionModeService); const previous = permissionMode.mode; permissionMode.setMode('auto'); - return { - restorePermission: async () => { - permissionMode.setMode(previous); - }, - }; + return previous; }; if (opts.session !== undefined) { @@ -432,14 +467,15 @@ async function resolveNativeSession( const session = await resumeById(opts.session); const agentContext = await ensureMainAgent(session); const agent = session.accessor.get(IAgentLifecycleService).handleOf(agentContext.agentId)!; + await notePlanMode(agent, opts.session); const profile = agent.accessor.get(IAgentProfileService); await applyModelOverride(profile, opts.model); const currentModel = profile.getModel(); - const { restorePermission } = forceAuto(agent); + const previousPermissionMode = forceAuto(agent); return { session, agent, - restorePermission, + previousPermissionMode, telemetryModel: configuredModel(opts.model, currentModel, defaultModel), goalModel: configuredModel(opts.model, currentModel), }; @@ -452,14 +488,15 @@ async function resolveNativeSession( const session = await resumeById(previous.id); const agentContext = await ensureMainAgent(session); const agent = session.accessor.get(IAgentLifecycleService).handleOf(agentContext.agentId)!; + await notePlanMode(agent, previous.id); const profile = agent.accessor.get(IAgentProfileService); await applyModelOverride(profile, opts.model); const currentModel = profile.getModel(); - const { restorePermission } = forceAuto(agent); + const previousPermissionMode = forceAuto(agent); return { session, agent, - restorePermission, + previousPermissionMode, telemetryModel: configuredModel(opts.model, currentModel, defaultModel), goalModel: configuredModel(opts.model, currentModel), }; @@ -478,11 +515,17 @@ async function resolveNativeSession( }); const agentContext = await ensureMainAgent(session); const agent = session.accessor.get(IAgentLifecycleService).handleOf(agentContext.agentId)!; + // `default_plan_mode` opens new sessions in Plan mode, but nobody can review + // a plan in print mode, so the setting is skipped for this run. + const plan = agent.accessor.get(IAgentPlanService); + if ((await plan.status()) !== null) { + plan.cancel(); + stderr.write('default_plan_mode is not applied in print mode, because Plan mode waits for your review.\n'); + } agent.accessor.get(IAgentPermissionModeService).setMode('auto'); return { session, agent, - restorePermission: async () => {}, telemetryModel: model, goalModel: model, }; @@ -525,7 +568,7 @@ export function formatTrustGatedMcpWarning(servers: readonly TrustGatedMcpServer const list = servers.map((server) => `${server.name} (${server.target})`).join(', '); return ( `Warning: this folder is not trusted; skipped ${servers.length} project-level MCP ${noun}: ${list}.\n` + - ' Run `kimi` here and choose "Trust this folder" to enable them.\n\n' + ' Run `kimi` here and choose "Trust this folder", or set KIMI_CODE_TRUST_WORKSPACE=1, to enable them.\n\n' ); } @@ -608,6 +651,7 @@ async function runNativeTurn( now: () => Date.now(), goalActive: () => goalService.getGoal().goal?.status === 'active', cronNextFireAt: () => cronService.getNextFireTime(), + turnActive: () => loop.snapshot().state === 'running', }); } catch (error) { // A steered turn that fails fails the run (v1 parity). Anything else @@ -636,22 +680,50 @@ async function runNativeTurn( } } -async function runNativeGoal( - app: Scope, - session: ISessionScopeHandle, - agent: IAgentScopeHandle, - goal: HeadlessGoalCreate, - model: string | undefined, +const PRINT_EXIT_SESSION_OCCUPIED = 4; + +function reportSessionOccupied( + error: Error2, outputFormat: PromptOutputFormat, stdout: PromptOutput, stderr: PromptOutput, +): void { + const message = error.message; + if (outputFormat === 'stream-json') { + stdout.write( + `${JSON.stringify({ type: 'error', code: error.code, message, details: error.details })}\n`, + ); + } else { + stderr.write(`${message}\n`); + } + process.exitCode = PRINT_EXIT_SESSION_OCCUPIED; +} + +async function ensureNativeGoal( + agent: IAgentScopeHandle, + goal: HeadlessGoalCreate, + model: string | undefined, ): Promise { requireConfiguredModel(model); const goalService = agent.accessor.get(IAgentGoalService); + const existing = goalService.getGoal().goal; + if (existing?.status === 'active' && existing.objective === goal.objective) return; await goalService.createGoal({ objective: goal.objective, replace: goal.replace, }); +} + +async function runNativeGoalTurn( + app: Scope, + session: ISessionScopeHandle, + agent: IAgentScopeHandle, + objective: string, + outputFormat: PromptOutputFormat, + stdout: PromptOutput, + stderr: PromptOutput, +): Promise { + const goalService = agent.accessor.get(IAgentGoalService); let completedSnapshot: { readonly status: string } | null = null; const subscription = agent.accessor.get(IEventBus).subscribe((event: Event2) => { if (event.type === 'goal.updated') { @@ -661,18 +733,24 @@ async function runNativeGoal( } } }); + let turnError: unknown; try { - await runNativeTurn(app, session, agent, goal.objective, outputFormat, stdout, stderr); + await runNativeTurn(app, session, agent, objective, outputFormat, stdout, stderr); + } catch (error) { + turnError = error; + throw error; } finally { subscription.dispose(); - const snapshot = completedSnapshot ?? goalService.getGoal().goal; - if (outputFormat === 'stream-json') { - stdout.write(`${JSON.stringify(goalSummaryJson(snapshot))}\n`); - } else { - stderr.write(`${formatGoalSummaryText(snapshot)}\n`); - } - if (snapshot !== null && snapshot.status !== 'complete') { - process.exitCode = goalExitCode(snapshot.status); + if (!isError2(turnError) || turnError.code !== ErrorCodes.SESSION_STALE) { + const snapshot = completedSnapshot ?? goalService.getGoal().goal; + if (outputFormat === 'stream-json') { + stdout.write(`${JSON.stringify(goalSummaryJson(snapshot))}\n`); + } else { + stderr.write(`${formatGoalSummaryText(snapshot)}\n`); + } + if (snapshot !== null && snapshot.status !== 'complete') { + process.exitCode = goalExitCode(snapshot.status); + } } } } @@ -828,12 +906,28 @@ export interface PrintBackgroundPolicyInput { * `exit`/`drain` too (v1 parity). Omitted = no cron waiting. */ readonly cronNextFireAt?: () => number | null; + /** + * Reports whether the agent loop has a turn in flight. A turn steered by a + * cron fire is pending work the schedule alone cannot see: a fired + * one-shot task disappears from `cronNextFireAt` at once, and a recurring + * one keeps reporting the same past fire time until the tick can run + * again. While this returns true the policy waits the turn out instead of + * reading either signal as quiescence or a wedged tick. Omitted = no + * in-flight turn is ever observed. + */ + readonly turnActive?: () => boolean; } /** * Apply the print-mode (`kimi -p`) background-resource policy after the main * turn completes. A single loop re-evaluates the Session's live resources in * order on every round and stays alive while any of them is pending: + * - turn : while the loop has a turn in flight (e.g. steered by a cron + * fire), wait it out — the schedule cannot represent it: a fired + * one-shot task vanishes from `cronNextFireAt` at once, and a + * recurring one reports the same past fire time until the tick + * runs again, so neither signal may be read as quiescence or a + * wedged tick mid-turn. * - goal : while a goal is `active`, keep waiting for its continuation * turns (bounded by `ceilingS` as a safety net), regardless of * the background mode; the goal summary drives the exit code. @@ -866,6 +960,23 @@ export async function applyPrintBackgroundPolicy( let lastPastFireAt: number | undefined; let cronWedged = false; for (;;) { + // (0) turn: an in-flight turn (e.g. steered by a cron fire) is pending + // work the schedule cannot represent — a fired one-shot task is gone + // from `cronNextFireAt`, and a recurring one reports a frozen past fire + // time while the tick waits for the loop to go idle. Wait the turn out + // before reading either signal as quiescence or a wedged tick. + if (input.turnActive?.() === true) { + const ended = await input.turnEndings.next(deadline - input.now(), input.skipTurnId); + if (ended !== null && ended.reason !== 'completed') { + throw new PrintSteeredTurnFailedError(formatTurnEndingFailure(ended)); + } + if (ended === null) { + input.warn(`print turn wait ceiling reached (${input.ceilingS}s), finishing`); + return; + } + continue; + } + // (a) goal: while a goal is `active`, keep waiting for its continuation // turns. Also wake on a short poll: a goal can leave `active` without any // further turn.ended (budget block at a turn boundary, or a pause after a diff --git a/apps/kimi-code/src/cli/version.ts b/apps/kimi-code/src/cli/version.ts index 21e121393..bd717d3ed 100644 --- a/apps/kimi-code/src/cli/version.ts +++ b/apps/kimi-code/src/cli/version.ts @@ -7,9 +7,9 @@ import { existsSync, readFileSync } from 'node:fs'; import { dirname, resolve } from 'node:path'; -import { createKimiUserAgent, KIMI_CODE_PLATFORM, type KimiHostIdentity } from '@moonshot-ai/kimi-code-oauth'; +import { createKimiUserAgent, type KimiHostIdentity } from '@moonshot-ai/kimi-code-oauth'; -import { CLI_USER_AGENT_PRODUCT } from '#/constant/app'; +import { CLI_MSH_PLATFORM, CLI_USER_AGENT_PRODUCT } from '#/constant/app'; import { KIMI_BUILD_INFO } from './build-info'; @@ -51,7 +51,7 @@ export function createKimiCodeHostIdentity(version = getVersion()): KimiHostIden return { productName: CLI_USER_AGENT_PRODUCT, version, - platform: KIMI_CODE_PLATFORM, + platform: CLI_MSH_PLATFORM, }; } diff --git a/apps/kimi-code/src/constant/app.ts b/apps/kimi-code/src/constant/app.ts index 154c6f567..8b76e25d8 100644 --- a/apps/kimi-code/src/constant/app.ts +++ b/apps/kimi-code/src/constant/app.ts @@ -8,6 +8,7 @@ export const PROCESS_NAME = 'kimi-code'; // Used in telemetry app names and HTTP User-Agent headers. export const CLI_USER_AGENT_PRODUCT = 'kimi-code-cli'; +export const CLI_MSH_PLATFORM = 'kimi_code_cli'; export const CLI_UI_MODE = 'shell'; // UI surfaces the TUI renders; declared to the engine at bootstrap so features that need a // host-side surface (the NotifyUser update panel) are offered to this process only. @@ -67,8 +68,8 @@ export const KIMI_CODE_UPDATE_REEXEC_ENV = 'KIMI_CODE_UPDATE_REEXEC'; export const KIMI_CODE_INPUT_HISTORY_DIR_NAME = 'user-history'; export const KIMI_CODE_BANNER_DIR_NAME = 'banner'; export const KIMI_CODE_BANNER_STATE_FILE_NAME = 'state.json'; -export const KIMI_CODE_SURVEY_STATE_FILE_NAME = 'feedback-survey-state.json'; export const KIMI_CODE_RECOMMENDED_EFFORT_STATE_FILE_NAME = 'recommended-effort-state.json'; +export const KIMI_CODE_MODEL_MIGRATION_STATE_FILE_NAME = 'model-migrations.json'; // Managed Kimi auth provider key shared with OAuth/SDK config. export const DEFAULT_OAUTH_PROVIDER_NAME = 'managed:kimi-code'; diff --git a/apps/kimi-code/src/native/module-hook.ts b/apps/kimi-code/src/native/module-hook.ts index bc8a1a67b..4271609ea 100644 --- a/apps/kimi-code/src/native/module-hook.ts +++ b/apps/kimi-code/src/native/module-hook.ts @@ -15,13 +15,13 @@ let installed = false; // pi-tui loads its platform-specific native helpers via an absolute-path // require() computed from import.meta.url / process.execPath -// (see pi-tui dist/terminal.js and dist/native-modifiers.js). In a SEA binary -// those .node files live in the native-asset cache, so redirect any absolute -// require of a pi-tui native helper to the cached copy. +// (see pi-tui dist/native-platform.js and dist/native-module-path.js). In a +// SEA binary those .node files live in the native-asset cache, so redirect +// any absolute require of a pi-tui native helper to the cached copy. // -// Path shape: native//prebuilds//.node — note the -// two path segments after "prebuilds", so ".+" (not "[^/]+") is required. -const PI_TUI_NATIVE_PATTERN = /native[\\/](?:win32|darwin)[\\/]prebuilds[\\/].+\.node$/; +// Path shape: native//prebuilds//.node — note +// the two path segments after "prebuilds", so ".+" (not "[^/]+") is required. +const PI_TUI_NATIVE_PATTERN = /native[\\/](?:win32|darwin|linux)[\\/]prebuilds[\\/].+\.node$/; export function installNativeModuleHook(): void { if (installed) return; diff --git a/apps/kimi-code/src/native/smoke.ts b/apps/kimi-code/src/native/smoke.ts index a7f80957c..e21ed83f0 100644 --- a/apps/kimi-code/src/native/smoke.ts +++ b/apps/kimi-code/src/native/smoke.ts @@ -20,21 +20,20 @@ function smokePiTuiNativeLoad(): void { const arch = process.arch; let rel: string | undefined; if (platform === 'darwin' && (arch === 'x64' || arch === 'arm64')) { - rel = join('native', 'darwin', 'prebuilds', `darwin-${arch}`, 'darwin-modifiers.node'); + rel = join('native', 'darwin', 'prebuilds', `darwin-${arch}`, 'darwin-platform.node'); + } else if (platform === 'linux' && (arch === 'x64' || arch === 'arm64')) { + rel = join('native', 'linux', 'prebuilds', `linux-${arch}`, 'linux-platform-x11.node'); } else if (platform === 'win32' && (arch === 'x64' || arch === 'arm64')) { - rel = join('native', 'win32', 'prebuilds', `win32-${arch}`, 'win32-console-mode.node'); + rel = join('native', 'win32', 'prebuilds', `win32-${arch}`, 'win32-platform.node'); } if (rel === undefined) return; const req = createRequire(import.meta.url); const helper = req(join(dirname(process.execPath), rel)) as { - isModifierPressed?: unknown; - enableVirtualTerminalInput?: unknown; + getText?: unknown; + getImage?: unknown; }; - if ( - typeof helper.isModifierPressed !== 'function' && - typeof helper.enableVirtualTerminalInput !== 'function' - ) { + if (typeof helper.getText !== 'function' || typeof helper.getImage !== 'function') { throw new TypeError(`pi-tui native helper exports are unexpected: ${rel}`); } } diff --git a/apps/kimi-code/src/tui/banner/audience.ts b/apps/kimi-code/src/tui/banner/audience.ts new file mode 100644 index 000000000..a12267fcb --- /dev/null +++ b/apps/kimi-code/src/tui/banner/audience.ts @@ -0,0 +1,119 @@ +import { fetchManagedUserInfo, type ManagedUserInfo } from '@moonshot-ai/kimi-code-oauth'; + +import { currentKimiProfile } from '#/utils/region'; + +export interface BannerAudienceContext { + login: 'logged_in' | 'anonymous' | 'unknown'; + userLevel?: number; + goodsVersion?: number; + accountRegion?: 'cn' | 'oversea'; +} + +/** The wire shape of a banner's `kfc_audience` targeting block. Every field + is optional; absent means "no constraint on this dimension". The enums + are the server contract — the meets* validators still reject out-of-contract + values at runtime, since a mis-edited config can violate them at any time. */ +export interface KfcAudience { + login?: 'all' | 'logged_in' | 'anonymous' | null; + tiers?: number[] | null; + goods_version?: 1 | 2 | null; + region?: 'all' | 'cn' | 'oversea' | null; +} + +function normalizeEnumValue(value: unknown): string | null { + if (typeof value !== 'string') return null; + const normalized = value.trim().toLowerCase(); + return normalized.length > 0 ? normalized : null; +} + +function meetsLogin(value: unknown, ctx: BannerAudienceContext): boolean { + const login = normalizeEnumValue(value); + if (login === null || login === 'all') return true; + if (login === 'logged_in' || login === 'anonymous') return ctx.login === login; + return false; +} + +function parseTier(value: unknown): number | null { + if (typeof value !== 'number' || !Number.isFinite(value)) return null; + return Math.trunc(value); +} + +function meetsTiers(value: unknown, ctx: BannerAudienceContext): boolean { + if (value === undefined || value === null) return true; + if (!Array.isArray(value)) return true; + const tiers = value.map(parseTier).filter((tier): tier is number => tier !== null); + if (tiers.length === 0) return true; + return ctx.userLevel !== undefined && tiers.includes(Math.trunc(ctx.userLevel)); +} + +function meetsGoodsVersion(value: unknown, ctx: BannerAudienceContext): boolean { + if (value === undefined || value === null) return true; + if (typeof value !== 'number' || !Number.isFinite(value)) return false; + const version = Math.trunc(value); + if (version !== 1 && version !== 2) return false; + return ctx.goodsVersion === version; +} + +function meetsRegion(value: unknown, ctx: BannerAudienceContext): boolean { + const region = normalizeEnumValue(value); + if (region === null || region === 'all') return true; + if (region === 'cn' || region === 'oversea') return ctx.accountRegion === region; + return false; +} + +export function meetsBannerAudience(raw: unknown, ctx: BannerAudienceContext): boolean { + if (raw === undefined || raw === null) return true; + if (typeof raw !== 'object' || Array.isArray(raw)) return false; + const audience = raw as KfcAudience; + return ( + meetsLogin(audience.login, ctx) && + meetsTiers(audience.tiers, ctx) && + meetsGoodsVersion(audience.goods_version, ctx) && + meetsRegion(audience.region, ctx) + ); +} + +export type BannerUserInfoFetcher = ( + url: string, + accessToken: string, +) => Promise< + | { kind: 'ok'; userInfo: Pick } + | { kind: 'error'; status?: number; message: string } +>; + +export interface ResolveBannerAudienceOptions { + fetchUserInfo?: BannerUserInfoFetcher; + baseUrl?: string; +} + +function bannerApiBaseUrl(): string { + return (process.env['KIMI_CODE_BASE_URL'] ?? currentKimiProfile().baseUrl).replace(/\/+$/, ''); +} + +function mapAccountRegion(region: string): 'cn' | 'oversea' | undefined { + const normalized = region.trim().toUpperCase(); + if (normalized === 'REGION_CN') return 'cn'; + if (normalized === 'REGION_OVERSEA') return 'oversea'; + return undefined; +} + +export async function resolveBannerAudienceContext( + accessToken: string | undefined, + options: ResolveBannerAudienceOptions = {}, +): Promise { + if (accessToken === undefined) return { login: 'anonymous' }; + const fetchUserInfo = options.fetchUserInfo ?? fetchManagedUserInfo; + const baseUrl = (options.baseUrl ?? bannerApiBaseUrl()).replace(/\/+$/, ''); + let result: Awaited>; + try { + result = await fetchUserInfo(`${baseUrl}/me`, accessToken); + } catch { + return { login: 'unknown' }; + } + if (result.kind === 'error') { + const rejected = result.status === 401 || result.status === 402 || result.status === 403; + return { login: rejected ? 'anonymous' : 'unknown' }; + } + const { userLevel, goodsVersion, region } = result.userInfo; + return { login: 'logged_in', userLevel, goodsVersion, accountRegion: mapAccountRegion(region) }; +} diff --git a/apps/kimi-code/src/tui/banner/banner-config.ts b/apps/kimi-code/src/tui/banner/banner-config.ts index 4b0a2e74b..0b21b61c1 100644 --- a/apps/kimi-code/src/tui/banner/banner-config.ts +++ b/apps/kimi-code/src/tui/banner/banner-config.ts @@ -1,12 +1,14 @@ +import { RESOURCE_CONFIGS_PATH, type ClientConfigFetchOptions } from '@moonshot-ai/kimi-code-product/client-configs/node'; import { z } from 'zod'; -import { fetchClientConfig, type ClientConfigFetchOptions } from '#/utils/client-configs'; +import { clientConfigs } from '#/utils/client-configs'; -/** The tips/banner payload is one named config on the client-configs endpoint. */ +/** The tips/banner payload is one named resource on the resource-configs endpoint. */ const CONFIG_NAME = 'client_banner'; -/** The payload keeps the legacy tips.json shape, which banner-provider parses - defensively; the schema only guarantees an object. */ +/** The payload is a `banner_tips` array (plus per-entry `kfc_audience`), + which banner-provider parses defensively; the schema only guarantees an + object. */ const bannerConfigSchema = z.looseObject({}); export type BannerConfig = z.infer; @@ -20,5 +22,8 @@ export type BannerConfigFetchOptions = ClientConfigFetchOptions; export async function getBannerConfig( options: BannerConfigFetchOptions = {}, ): Promise { - return fetchClientConfig(CONFIG_NAME, bannerConfigSchema, options); + return clientConfigs.fetch(CONFIG_NAME, bannerConfigSchema, { + ...options, + path: RESOURCE_CONFIGS_PATH, + }); } diff --git a/apps/kimi-code/src/tui/banner/banner-provider.ts b/apps/kimi-code/src/tui/banner/banner-provider.ts index 57536346b..ff705b1fd 100644 --- a/apps/kimi-code/src/tui/banner/banner-provider.ts +++ b/apps/kimi-code/src/tui/banner/banner-provider.ts @@ -1,9 +1,8 @@ -import { createHash } from 'node:crypto'; - import { eq, gte, lt, valid } from 'semver'; import type { BannerDisplay, BannerState } from '#/tui/types'; +import { meetsBannerAudience, type BannerAudienceContext, type KfcAudience } from './audience'; import { getBannerConfig } from './banner-config'; import type { BannerDisplayState } from './state'; @@ -13,72 +12,63 @@ interface BannerVersionFields { banner_version?: string | null; } -interface TipsBannerFallbackItem extends BannerVersionFields { +/** One entry of the remote `banner_tips` array. The types are the server + contract; the runtime parsers still normalize every field defensively, + since a mis-edited config can violate the contract at any time. */ +interface BannerTipItem extends BannerVersionFields { banner_id?: string | null; - enabled?: boolean; + banner_enabled?: boolean | null; banner_title?: string | null; - banner_maintext?: string; + banner_maintext?: string | null; banner_subtext?: string | null; banner_start_time?: string | null; banner_end_time?: string | null; - banner_display?: unknown; - banner_display_ttl_hours?: unknown; + banner_display?: string | null; + banner_display_ttl_hours?: number | null; banner_platform?: string | null; + banner_system?: string[] | null; + kfc_audience?: KfcAudience | null; } -interface TipsBannerJson extends BannerVersionFields { - banner_id?: string | null; - banner_enabled?: boolean; - banner_title?: string | null; - banner_maintext?: string; - banner_subtext?: string | null; - banner_start_time?: string | null; - banner_end_time?: string | null; - banner_display?: unknown; - banner_display_ttl_hours?: unknown; - banner_fallback_enabled?: boolean; - banner_fallback_list?: unknown[]; - banner_platform?: string | null; -} - -interface BannerHashInput { - tag: string | null; - mainText: string; - subText: string | null; - startTime: string | null; - endTime: string | null; - display: BannerDisplay; - ttlHours?: number; +interface BannerTipsJson { + banner_tips?: unknown; } interface BannerCandidateInput { - id: unknown; - tag: unknown; - mainText: string; - subText: unknown; + key: string; + tag: string | null; + mainText: string | null; + subText?: string | null; display: BannerDisplay; ttlHours?: number; - startTime?: unknown; - endTime?: unknown; } -export interface SelectDisplayableBannerArgs { +export interface SelectBannerStateArgs { json: unknown; clientVersion: string; now: Date; random: () => number; + audience: BannerAudienceContext; + system: string; +} + +export interface SelectDisplayableBannerArgs extends SelectBannerStateArgs { state: BannerDisplayState; } -interface BannerProviderLoadOptions { +export interface BannerProviderLoadOptions { state?: BannerDisplayState; now?: Date; random?: () => number; + audience?: BannerAudienceContext | Promise; + system?: string; } const HOUR_MS = 60 * 60 * 1000; export const DEFAULT_COOLDOWN_TTL_HOURS = 24; +const UNKNOWN_AUDIENCE: BannerAudienceContext = { login: 'unknown' }; + function normalizeTag(value: unknown): string | null { if (typeof value !== 'string') return null; const trimmed = value.trim(); @@ -142,6 +132,26 @@ function meetsPlatform(value: unknown): boolean { return platform === '' || platform === 'all' || platform === 'cli'; } +/** The current operating system as a banner_system token: 'mac' / 'win' / + 'linux', with anything else passed through verbatim. */ +export function currentBannerSystem(platform: NodeJS.Platform = process.platform): string { + if (platform === 'darwin') return 'mac'; + if (platform === 'win32') return 'win'; + return platform; +} + +/** A missing / empty / non-array banner_system targets every system; + otherwise the current system must be listed. */ +function meetsBannerSystem(value: unknown, system: string): boolean { + if (value === undefined || value === null) return true; + if (!Array.isArray(value)) return true; + const systems = value + .map((entry) => (typeof entry === 'string' ? entry.trim().toLowerCase() : '')) + .filter((entry) => entry.length > 0); + if (systems.length === 0) return true; + return systems.includes(system); +} + function parseBannerDisplay(value: unknown): BannerDisplay { if (value === 'once') return 'once'; if (value === 'cooldown') return 'cooldown'; @@ -160,106 +170,52 @@ function normalizeBannerId(value: unknown): string | null { return trimmed.length > 0 ? trimmed : null; } -function hashBannerIdentity(input: BannerHashInput): string { - const raw = JSON.stringify([ - input.tag ?? '', - input.mainText, - input.subText ?? '', - input.startTime ?? '', - input.endTime ?? '', - input.display, - input.ttlHours ?? '', - ]); - return createHash('sha256').update(raw).digest('hex').slice(0, 32); -} - -function getBannerKey(rawBannerId: unknown, input: BannerHashInput): string { - return normalizeBannerId(rawBannerId) ?? hashBannerIdentity(input); -} - function toBannerState(input: BannerCandidateInput): BannerState { - const tag = normalizeTag(input.tag); - const subText = normalizeText(input.subText); - const display = input.display; - const ttlHours = display === 'cooldown' ? parseBannerDisplayTtlHours(input.ttlHours) : undefined; - const startTime = normalizeText(input.startTime); - const endTime = normalizeText(input.endTime); - const key = getBannerKey(input.id, { - tag, - mainText: input.mainText, - subText, - startTime, - endTime, - display, - ttlHours, - }); - return { - key, - tag, + key: input.key, + tag: input.tag, mainText: input.mainText, - subText, - display, - ttlHours, + subText: normalizeText(input.subText), + display: input.display, + ttlHours: input.display === 'cooldown' ? parseBannerDisplayTtlHours(input.ttlHours) : undefined, }; } -function pickActiveBanner( - json: TipsBannerJson, - clientVersion: string, - now: Date, -): BannerState | null { - if (json.banner_enabled !== true) return null; - if (!meetsVersion(json, clientVersion)) return null; - if (!meetsPlatform(json.banner_platform)) return null; - const start = parseDate(json.banner_start_time); - const end = parseDate(json.banner_end_time); - if (!isWithinWindow(start, end, now)) return null; - const mainText = normalizeText(json.banner_maintext); - if (mainText === null) return null; - const display = parseBannerDisplay(json.banner_display); - return toBannerState({ - id: json.banner_id, - tag: json.banner_title, - mainText, - subText: json.banner_subtext, - display, - ttlHours: display === 'cooldown' ? parseBannerDisplayTtlHours(json.banner_display_ttl_hours) : undefined, - startTime: json.banner_start_time, - endTime: json.banner_end_time, - }); -} - -function pickFallbackCandidates( - json: TipsBannerJson, +function pickCandidates( + json: BannerTipsJson, clientVersion: string, now: Date, + audience: BannerAudienceContext, + system: string, ): BannerState[] { - if (json.banner_fallback_enabled !== true) return []; - const list = Array.isArray(json.banner_fallback_list) ? json.banner_fallback_list : []; + const list = Array.isArray(json.banner_tips) ? json.banner_tips : []; const candidates: BannerState[] = []; for (const raw of list) { - if (typeof raw !== 'object' || raw === null) continue; - const item = raw as TipsBannerFallbackItem; - if (item.enabled !== true) continue; + if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) continue; + const item = raw as BannerTipItem; + if (item.banner_enabled !== true) continue; + const key = normalizeBannerId(item.banner_id); + if (key === null) continue; if (!meetsVersion(item, clientVersion)) continue; if (!meetsPlatform(item.banner_platform)) continue; + if (!meetsBannerSystem(item.banner_system, system)) continue; const start = parseDate(item.banner_start_time); const end = parseDate(item.banner_end_time); if (!isWithinWindow(start, end, now)) continue; const mainText = normalizeText(item.banner_maintext); - if (mainText === null) continue; + const tag = normalizeTag(item.banner_title); + if (mainText === null && tag === null) continue; + if (!meetsBannerAudience(item.kfc_audience, audience)) continue; const display = parseBannerDisplay(item.banner_display); candidates.push( toBannerState({ - id: item.banner_id, - tag: item.banner_title, + key, + tag, mainText, subText: item.banner_subtext, display, - ttlHours: display === 'cooldown' ? parseBannerDisplayTtlHours(item.banner_display_ttl_hours) : undefined, - startTime: item.banner_start_time, - endTime: item.banner_end_time, + ttlHours: + display === 'cooldown' ? parseBannerDisplayTtlHours(item.banner_display_ttl_hours) : undefined, }), ); } @@ -272,15 +228,6 @@ function pickRandomCandidate(candidates: BannerState[], random: () => number): B return candidates[index]!; } -function pickFallbackBanner( - json: TipsBannerJson, - clientVersion: string, - now: Date, - random: () => number, -): BannerState | null { - return pickRandomCandidate(pickFallbackCandidates(json, clientVersion, now), random); -} - function parseShownAt(value: string | undefined): Date | null { if (value === undefined) return null; const date = new Date(value); @@ -305,52 +252,40 @@ export function shouldDisplayBanner( return now.getTime() - lastShownAt.getTime() >= getCooldownTtlHours(banner) * HOUR_MS; } -export function selectBannerState( - json: unknown, - clientVersion: string, - now: Date, - random: () => number, -): BannerState | null { - const typed = typeof json === 'object' && json !== null ? (json as TipsBannerJson) : {}; - return ( - pickActiveBanner(typed, clientVersion, now) ?? - pickFallbackBanner(typed, clientVersion, now, random) +export function selectBannerState(args: SelectBannerStateArgs): BannerState | null { + const typed = typeof args.json === 'object' && args.json !== null ? (args.json as BannerTipsJson) : {}; + return pickRandomCandidate( + pickCandidates(typed, args.clientVersion, args.now, args.audience, args.system), + args.random, ); } -export function selectDisplayableBanner({ - json, - clientVersion, - now, - random, - state, -}: SelectDisplayableBannerArgs): BannerState | null { - const typed = typeof json === 'object' && json !== null ? (json as TipsBannerJson) : {}; - const active = pickActiveBanner(typed, clientVersion, now); - if (active !== null && shouldDisplayBanner(active, state, now)) return active; - const candidates = pickFallbackCandidates(typed, clientVersion, now).filter((candidate) => - shouldDisplayBanner(candidate, state, now), +export function selectDisplayableBanner(args: SelectDisplayableBannerArgs): BannerState | null { + const typed = typeof args.json === 'object' && args.json !== null ? (args.json as BannerTipsJson) : {}; + const candidates = pickCandidates(typed, args.clientVersion, args.now, args.audience, args.system).filter( + (candidate) => shouldDisplayBanner(candidate, args.state, args.now), ); - return pickRandomCandidate(candidates, random); + return pickRandomCandidate(candidates, args.random); } export class BannerProvider { constructor(private readonly clientVersion: string) {} async load(options: BannerProviderLoadOptions = {}): Promise { - // getBannerConfig never throws; undefined means "config unavailable". - const json = await getBannerConfig(); + // getBannerConfig never throws; undefined means "config unavailable". An + // audience promise that rejects unexpectedly downgrades to "unknown", the + // same classification as a userinfo network failure. + const [json, audience] = await Promise.all([ + getBannerConfig(), + Promise.resolve(options.audience ?? UNKNOWN_AUDIENCE).catch(() => UNKNOWN_AUDIENCE), + ]); if (json === undefined) return null; const now = options.now ?? new Date(); const random = options.random ?? Math.random; + const system = options.system ?? currentBannerSystem(); + const args = { json, clientVersion: this.clientVersion, now, random, audience, system }; return options.state === undefined - ? selectBannerState(json, this.clientVersion, now, random) - : selectDisplayableBanner({ - json, - clientVersion: this.clientVersion, - now, - random, - state: options.state, - }); + ? selectBannerState(args) + : selectDisplayableBanner({ ...args, state: options.state }); } } diff --git a/apps/kimi-code/src/tui/commands/auth.ts b/apps/kimi-code/src/tui/commands/auth.ts index f2a4bfbc7..9bb2deaf3 100644 --- a/apps/kimi-code/src/tui/commands/auth.ts +++ b/apps/kimi-code/src/tui/commands/auth.ts @@ -184,7 +184,7 @@ async function handleOpenPlatformLogin( selection.thinking !== 'off' && selection.thinking !== 'on' ? selection.thinking : undefined, - apiKey, + credential: { apiKey }, }); await host.harness.setConfig({ diff --git a/apps/kimi-code/src/tui/commands/config.ts b/apps/kimi-code/src/tui/commands/config.ts index c35be4dbe..5ba92a45a 100644 --- a/apps/kimi-code/src/tui/commands/config.ts +++ b/apps/kimi-code/src/tui/commands/config.ts @@ -1,5 +1,5 @@ import { - effectiveModelAlias, + ErrorCodes, PRIMARY_SUBAGENT_MODEL_CHOICE, SECONDARY_DERIVED_MODEL_ALIAS, type ExperimentalFeatureState, @@ -15,20 +15,38 @@ import { ExperimentsSelectorComponent, type ExperimentalFeatureDraftChange, } from '../components/dialogs/experiments-selector'; +import { MermaidPreferenceSelectorComponent } from '../components/dialogs/mermaid-preference-selector'; import { modelDisplayName, segmentsFor } from '../components/dialogs/model-selector'; +import { ModelSwitchConfirmDialogComponent } from '../components/dialogs/model-switch-confirm-dialog'; import { TabbedModelSelectorComponent } from '../components/dialogs/tabbed-model-selector'; import { PermissionSelectorComponent } from '../components/dialogs/permission-selector'; import { SettingsSelectorComponent, type SettingsSelection } from '../components/dialogs/settings-selector'; import { SurveyPreferenceSelectorComponent } from '../components/dialogs/survey-preference-selector'; import { ThemeSelectorComponent } from '../components/dialogs/theme-selector'; +import { TuiModeSelectorComponent } from '../components/dialogs/tui-mode-selector'; import { UpdatePreferenceSelectorComponent } from '../components/dialogs/update-preference-selector'; -import { DEFAULT_TUI_CONFIG, saveTuiConfig, type TuiConfig } from '../config'; +import { DEFAULT_MARKDOWN_CONFIG, DEFAULT_TUI_CONFIG, saveTuiConfig, type MarkdownConfig, type TuiConfig, type TuiMode } from '../config'; import type { ThemeName } from '#/tui/theme'; import { currentTheme, isBuiltInTheme, lightColors, loadCustomThemeMerged } from '#/tui/theme'; -import { NO_ACTIVE_SESSION_MESSAGE } from '../constant/kimi-tui'; +import { + matchModelSwitchRule, + peekModelSwitchConfirmConfig, + resolveModelSwitchHint, + type ModelSwitchAction, + type ModelSwitchRule, +} from '#/utils/model-switch-confirm-config'; +import { NO_ACTIVE_SESSION_MESSAGE, TUI_MODE_RESTART_NOTICE } from '../constant/kimi-tui'; import { formatErrorMessage } from '../utils/event-payload'; +import { isSessionOccupiedError } from '../utils/session-lock-errors'; +import { setMarkdownMermaidMode, type MermaidRenderMode } from '../utils/markdown-options'; +import { + effectiveModelForHost, + hasConversationHistory, + MODEL_SWITCH_CACHE_WARNING, + performModelSwitch, + type ModelSwitchPersistence, +} from '../utils/model-switch'; import { PERMISSION_MODE_DESCRIPTIONS, PERMISSION_MODE_DISPLAY_NAMES } from '../utils/permission-mode'; -import { thinkingEffortToConfig } from '../utils/thinking-config'; import { showUsage } from './info'; import { setExperimentalFeatures } from './experimental-flags'; import type { SlashCommandHost } from './dispatch'; @@ -39,44 +57,27 @@ import type { SlashCommandHost } from './dispatch'; const MODEL_PICKER_REFRESH_TIMEOUT_MS = 2_000; -const MODEL_SWITCH_CACHE_WARNING = - 'Note: Switching models invalidates the existing prompt cache. Use /new to avoid extra token costs.'; +const MODEL_SWITCH_COMPACT_TIMEOUT_MS = 10 * 60 * 1000; + const EFFORT_SWITCH_CACHE_WARNING = 'Note: Switching effort invalidates the existing prompt cache. Use /new to avoid extra token costs.'; -/** True once the conversation has at least one user message: a switch from - * then on resends the accumulated context, losing the cache. Shell-command - * echoes are also 'user' transcript entries but carry an empty `bullet`, so - * they're excluded. */ -function hasConversationHistory(host: SlashCommandHost): boolean { - return host.state.transcriptEntries.some( - (entry) => entry.kind === 'user' && entry.bullet !== '', - ); -} - export function currentTuiConfig(host: Pick): TuiConfig { return { theme: host.state.appState.theme, + tuiMode: host.state.appState.tuiMode, editorCommand: host.state.appState.editorCommand, disablePasteBurst: host.state.appState.disablePasteBurst ?? DEFAULT_TUI_CONFIG.disablePasteBurst, renderLatex: host.state.appState.renderLatex ?? DEFAULT_TUI_CONFIG.renderLatex ?? true, cacheExpiryHint: host.state.appState.cacheExpiryHint ?? DEFAULT_TUI_CONFIG.cacheExpiryHint, - disableFeedbackSurvey: - host.state.appState.disableFeedbackSurvey ?? DEFAULT_TUI_CONFIG.disableFeedbackSurvey, + autoSessionTitle: host.state.appState.autoSessionTitle ?? DEFAULT_TUI_CONFIG.autoSessionTitle, notifications: host.state.appState.notifications, upgrade: host.state.appState.upgrade, statusLine: host.state.appState.statusLine ?? DEFAULT_TUI_CONFIG.statusLine, + markdown: host.state.appState.markdown ?? DEFAULT_MARKDOWN_CONFIG, }; } -export function effectiveModelForHost(host: SlashCommandHost, model: ModelAlias): ModelAlias { - const providerType = host.state.appState.availableProviders[model.provider]?.type; - // Flat models (no named provider, e.g. inline base_url served by a v2 - // backend) have no provider entry to look up; their own protocol declaration - // plays the provider-identity role, mirroring the resolver. - return effectiveModelAlias(model, providerType ?? model.protocol); -} - export async function handlePlanCommand(host: SlashCommandHost, args: string): Promise { const session = host.session; if (session === undefined) { @@ -136,7 +137,12 @@ export async function handleCompactCommand(host: SlashCommandHost, args: string) return; } const customInstruction = args.trim() || undefined; - await session.compact({ instruction: customInstruction }); + try { + await session.compact({ instruction: customInstruction }); + } catch (error) { + if (!isSessionOccupiedError(error)) throw error; + host.showError(formatErrorMessage(error)); + } } export async function handleEditorCommand(host: SlashCommandHost, args: string): Promise { @@ -238,7 +244,7 @@ export async function handleEffortCommand(host: SlashCommandHost, args: string): 'warning', ); } - await performModelSwitch(host, alias, arg, true); + await performModelSwitch(host, alias, arg, 'model'); } function showEffortPicker( @@ -256,11 +262,11 @@ function showEffortPicker( warning: hasConversationHistory(host) ? EFFORT_SWITCH_CACHE_WARNING : undefined, onSelect: (effort) => { host.restoreEditor(); - void performModelSwitch(host, alias, effort, true); + void performModelSwitch(host, alias, effort, 'model'); }, onSessionOnlySelect: (effort) => { host.restoreEditor(); - void performModelSwitch(host, alias, effort, false); + void performModelSwitch(host, alias, effort, 'session'); }, onCancel: () => { host.restoreEditor(); @@ -382,11 +388,11 @@ export function showModelPicker(host: SlashCommandHost, selectedValue: string = warning: hasConversationHistory(host) ? MODEL_SWITCH_CACHE_WARNING : undefined, onSelect: ({ alias, thinking }) => { host.restoreEditor(); - void performModelSwitch(host, alias, thinking, true); + confirmThenPerformModelSwitch(host, alias, thinking, 'model'); }, onSessionOnlySelect: ({ alias, thinking }) => { host.restoreEditor(); - void performModelSwitch(host, alias, thinking, false); + confirmThenPerformModelSwitch(host, alias, thinking, 'session'); }, onCancel: () => { host.restoreEditor(); @@ -395,138 +401,168 @@ export function showModelPicker(host: SlashCommandHost, selectedValue: string = ); } -async function performModelSwitch( +/** + * Cloud-gated confirmation for a model switch with conversation history: when + * the `model_switch_confirm` client config enables the feature and the + * (current, target) upstream model ids match a rule exactly, the user picks + * how the switch happens before any state changes. Cancel is a no-op by + * construction — nothing was applied yet. + */ +export function confirmThenPerformModelSwitch( host: SlashCommandHost, alias: string, - effort: ThinkingEffort, - persist: boolean, -): Promise { - let session = host.session; - if (session === undefined) { - // A first prompt may still be inside lazy creation: wait it out so the - // switch lands on the new session instead of being overwritten by its - // assembly. - await host.waitForLazyCreation(); - session = host.session; - } - if (host.state.appState.streamingPhase !== 'idle') { - host.showError('Cannot switch models while streaming — press Esc or Ctrl-C first.'); + thinking: ThinkingEffort, + persist: ModelSwitchPersistence, +): void { + const rule = matchedModelSwitchRule(host, alias); + if (rule === undefined) { + void performModelSwitch(host, alias, thinking, persist); return; } - - const prevModel = host.state.appState.model; - const prevEffort = host.state.appState.thinkingEffort; - const modelChanged = alias !== prevModel; - const effortChanged = effort !== prevEffort; - const runtimeChanged = modelChanged || effortChanged; - let effectiveAlias = alias; - let effectiveEffort = effort; - - try { - if (session === undefined && runtimeChanged) { - await host.authFlow.activateModelAfterLogin(alias, effort); - } else if (session !== undefined) { - if (alias !== prevModel) { - await session.setModel(alias); - } - if (effort !== prevEffort) { - await session.setThinking(effort); - } - const status = await session.getStatus(); - effectiveAlias = status.model ?? alias; - effectiveEffort = status.thinkingEffort; - } - } catch (error) { - const msg = formatErrorMessage(error); - host.showError(`Failed to switch model: ${msg}`); - return; - } - - if (session === undefined) { - effectiveAlias = host.state.appState.model; - effectiveEffort = host.state.appState.thinkingEffort; - } - const effectiveModelChanged = effectiveAlias !== prevModel; - const effectiveEffortChanged = effectiveEffort !== prevEffort; - const displayName = modelDisplayName( - effectiveAlias, - host.state.appState.availableModels[effectiveAlias], + const availableModels = host.state.appState.availableModels; + const fromModel = modelDisplayName( + host.state.appState.model, + availableModels[host.state.appState.model], ); - host.setAppState({ model: effectiveAlias, thinkingEffort: effectiveEffort }); - if (session === undefined && runtimeChanged) { - if (effectiveModelChanged) { - host.track('model_switch', { model: effectiveAlias }); - } - if (effectiveEffortChanged) { - host.track('thinking_toggle', { - enabled: effectiveEffort !== 'off', - effort: effectiveEffort, - from: prevEffort, - }); - } - } + const toModel = modelDisplayName(alias, availableModels[alias]); + const dismiss = (): void => { + // Only close while this dialog still owns the editor replacement: an + // approval/question panel mounted over it must never be wiped out by the + // async finalizer of a settled action. + if (host.state.activeDialog !== 'model-switch-confirm') return; + host.state.activeDialog = null; + host.restoreEditor(); + }; + let settled = false; + host.mountEditorReplacement( + new ModelSwitchConfirmDialogComponent({ + fromModel, + toModel, + hint: resolveModelSwitchHint(rule), + onSelect: (action) => { + if (settled) return; + settled = true; + if (action === 'new') { + // Keep the dialog (and its input lock) mounted until the new session + // is ready — restoring the editor mid-flight would let a prompt race + // the swap, same as the session-picker swap. + void runModelSwitchAction(host, action, alias, thinking, persist).finally(dismiss); + return; + } + dismiss(); + void runModelSwitchAction(host, action, alias, thinking, persist); + }, + onCancel: () => { + if (settled) return; + settled = true; + dismiss(); + }, + }), + ); + host.state.activeDialog = 'model-switch-confirm'; +} - let persisted = false; - if (persist) { - try { - persisted = await persistModelSelection( - host, - effectiveAlias, - effectiveEffort, - effectiveEffortChanged, - ); - } catch (error) { - const msg = formatErrorMessage(error); - host.showError(`Switched to ${displayName}, but failed to save default: ${msg}`); +export function matchedModelSwitchRule(host: SlashCommandHost, alias: string): ModelSwitchRule | undefined { + const prevAlias = host.state.appState.model; + // Effort-only switches and re-picks of the live alias lose no cache. A + // streaming switch keeps the existing behavior: performModelSwitch rejects + // it with an error, so the dialog must not precede that rejection. + if (alias === prevAlias) return undefined; + if (host.state.appState.streamingPhase !== 'idle') return undefined; + if (!hasConversationHistory(host)) return undefined; + const fromModelId = host.state.appState.availableModels[prevAlias]?.model; + const toModelId = host.state.appState.availableModels[alias]?.model; + if (fromModelId === undefined || toModelId === undefined) return undefined; + return matchModelSwitchRule(peekModelSwitchConfirmConfig(), fromModelId, toModelId); +} + +/** + * Fire a compaction and wait for it to settle before the model switch. The + * compact RPC resolves as soon as the engine *starts* compacting — the + * completed/cancelled/failed outcome arrives later as an event — and + * performModelSwitch rejects any switch while the session is busy, so the + * switch must hold until one of those events lands. True only when the + * compaction completed on the same session; any other outcome shows a + * message and leaves the model unchanged. + */ +export async function compactForModelSwitch( + host: SlashCommandHost, + session: Session, +): Promise { + type CompactionSettle = 'completed' | 'cancelled' | 'failed' | 'timeout'; + let settle: (outcome: CompactionSettle) => void = () => undefined; + const settled = new Promise((resolve) => { + settle = resolve; + }); + const unsubscribe = session.onEvent((event) => { + if (event.type === 'compaction.completed') settle('completed'); + else if (event.type === 'compaction.cancelled') settle('cancelled'); + else if (event.type === 'error' && event.code === ErrorCodes.COMPACTION_FAILED) { + settle('failed'); + } + }); + const timer = setTimeout(() => { + settle('timeout'); + }, MODEL_SWITCH_COMPACT_TIMEOUT_MS); + try { + await session.compact({}); + const outcome = await settled; + if (outcome === 'completed' && host.session === session) return true; + if (outcome === 'completed') { + host.showNotice('Model switch aborted — session changed.'); + } else if (outcome === 'timeout') { + host.showError('Timed out waiting for compaction — model unchanged.'); + } else if (outcome === 'cancelled') { + host.showNotice('Compaction cancelled — model unchanged.'); + } else { + host.showNotice('Model switch aborted — model unchanged.'); + } + return false; + } catch (error) { + host.showError(`Failed to compact: ${formatErrorMessage(error)}. Model unchanged.`); + return false; + } finally { + clearTimeout(timer); + unsubscribe(); + } +} + +async function runModelSwitchAction( + host: SlashCommandHost, + action: ModelSwitchAction, + alias: string, + thinking: ThinkingEffort, + persist: ModelSwitchPersistence, +): Promise { + switch (action) { + case 'cancel': + return; + case 'continue': + await performModelSwitch(host, alias, thinking, persist); + return; + case 'new': { + // createNewSession reports failures (replay active, creation/setup + // errors) and returns normally — only switch when the session id + // actually changed, otherwise the switch would land on the session the + // user chose to leave untouched. + const prevSessionId = host.state.appState.sessionId; + await host.createNewSession(); + if (host.state.appState.sessionId === prevSessionId) return; + await performModelSwitch(host, alias, thinking, persist); + return; + } + case 'compact': { + // Compact with the current model first, then switch: the new model + // starts from the compacted context. + if (host.session !== undefined && !(await compactForModelSwitch(host, host.session))) { + return; + } + await performModelSwitch(host, alias, thinking, persist); return; } } - - let status: string; - if (effectiveModelChanged) { - status = persist - ? `Switched to ${displayName} with thinking ${effectiveEffort}.` - : `Switched to ${displayName} with thinking ${effectiveEffort} for this session only.`; - } else if (effectiveEffortChanged) { - status = persist - ? `Thinking set to ${effectiveEffort}.` - : `Thinking set to ${effectiveEffort} for this session only.`; - } else if (persist && persisted) { - status = `Saved ${displayName} with thinking ${effectiveEffort} as default.`; - } else { - status = `Already using ${displayName} with thinking ${effectiveEffort}.`; - } - host.showStatus(status, 'success'); } -async function persistModelSelection( - host: SlashCommandHost, - alias: string, - effort: ThinkingEffort, - effortChanged: boolean, -): Promise { - const config = await host.harness.getConfig({ reload: true }); - const model = host.state.appState.availableModels[alias]; - const full = thinkingEffortToConfig( - effort, - model === undefined ? undefined : effectiveModelForHost(host, model), - ); - // Re-confirming the effort shown when the picker opened is not an explicit - // choice — persist the model but leave the stored effort preference alone. - const patch = effortChanged ? full : { enabled: full.enabled }; - if ( - config.defaultModel === alias && - config.thinking?.enabled === patch.enabled && - (!effortChanged || config.thinking?.effort === patch.effort) - ) { - return false; - } - await host.harness.setConfig({ - defaultModel: alias, - thinking: patch, - }); - return true; -} // --------------------------------------------------------------------------- // Secondary model (`/secondary-model`) — persists `[secondary_model] default_model` @@ -846,10 +882,10 @@ export function showSurveyPreferencePicker(host: SlashCommandHost): void { type SurveyPreferenceHost = { readonly state: { - readonly appState: Pick< - SlashCommandHost['state']['appState'], - 'theme' | 'editorCommand' | 'notifications' | 'upgrade' | 'disableFeedbackSurvey' - >; + readonly appState: Pick; + }; + readonly harness: { + setConfig(patch: { disableFeedbackSurvey: boolean }): Promise; }; setAppState( patch: Pick, @@ -868,10 +904,7 @@ export async function applySurveyPreferenceChoice( } try { - await saveTuiConfig({ - ...currentTuiConfig(host as unknown as SlashCommandHost), - disableFeedbackSurvey, - }); + await host.harness.setConfig({ disableFeedbackSurvey }); } catch (error) { host.showStatus( `Failed to save session rating setting: ${formatErrorMessage(error)}`, @@ -884,6 +917,113 @@ export async function applySurveyPreferenceChoice( host.showStatus(`Feedback survey ${enabled ? 'enabled' : 'disabled'}.`); } +export function showMermaidPreferencePicker(host: SlashCommandHost): void { + host.mountEditorReplacement( + new MermaidPreferenceSelectorComponent({ + currentValue: host.state.appState.markdown?.mermaid !== 'off', + onSelect: (value) => { + host.restoreEditor(); + void applyMermaidPreferenceChoice(host, value); + }, + onCancel: () => { + host.restoreEditor(); + }, + }), + ); +} + +type MermaidPreferenceHost = { + readonly state: { + readonly appState: Pick< + SlashCommandHost['state']['appState'], + 'theme' | 'editorCommand' | 'notifications' | 'upgrade' | 'markdown' + >; + readonly transcriptContainer: { invalidate(): void }; + readonly ui: { requestRender(force?: boolean): void }; + }; + setAppState(patch: Pick): void; + showStatus(msg: string, color?: string): void; +}; + +export async function applyMermaidPreferenceChoice( + host: MermaidPreferenceHost, + enabled: boolean, +): Promise { + const mermaid: MermaidRenderMode = enabled ? 'final' : 'off'; + if (mermaid === (host.state.appState.markdown?.mermaid ?? DEFAULT_MARKDOWN_CONFIG.mermaid)) { + host.showStatus(`Mermaid diagrams already ${enabled ? 'enabled' : 'disabled'}.`); + return; + } + + const markdown: MarkdownConfig = { mermaid }; + try { + await saveTuiConfig({ + ...currentTuiConfig(host as unknown as SlashCommandHost), + markdown, + }); + } catch (error) { + host.showStatus( + `Failed to save mermaid diagram setting: ${formatErrorMessage(error)}`, + 'error', + ); + return; + } + + setMarkdownMermaidMode(mermaid); + host.setAppState({ markdown }); + host.state.transcriptContainer.invalidate(); + host.state.ui.requestRender(true); + host.showStatus(`Mermaid diagrams ${enabled ? 'enabled' : 'disabled'}.`); +} + +export function showTuiModePicker(host: SlashCommandHost): void { + host.mountEditorReplacement( + new TuiModeSelectorComponent({ + currentValue: host.state.appState.tuiMode ?? 'regular', + onSelect: (value) => { + host.restoreEditor(); + void applyTuiModeChoice(host, value); + }, + onCancel: () => { + host.restoreEditor(); + }, + }), + ); +} + +type TuiModeHost = { + readonly state: { + readonly appState: Pick; + readonly ui: Pick; + }; + setAppState(patch: Pick): void; + showStatus(msg: string, color?: string): void; + showNotice(msg: string): void; +}; + +export async function applyTuiModeChoice(host: TuiModeHost, tuiMode: TuiMode): Promise { + if (tuiMode === (host.state.appState.tuiMode ?? 'regular')) { + host.showStatus(`TUI mode already ${tuiMode}.`); + return; + } + + try { + await saveTuiConfig({ + ...currentTuiConfig(host as unknown as SlashCommandHost), + tuiMode, + }); + } catch (error) { + host.showStatus(`Failed to save TUI mode: ${formatErrorMessage(error)}`, 'error'); + return; + } + + host.setAppState({ tuiMode }); + host.showStatus(`TUI mode set to ${tuiMode}.`, 'success'); + if (tuiMode !== host.state.ui.mode) { + host.showNotice(TUI_MODE_RESTART_NOTICE); + } +} + export function showSettingsSelector(host: SlashCommandHost): void { host.mountEditorReplacement( new SettingsSelectorComponent({ @@ -903,6 +1043,8 @@ function handleSettingsSelection(host: SlashCommandHost, value: SettingsSelectio case 'model': showModelPicker(host); return; case 'permission': showPermissionPicker(host); return; case 'theme': showThemePicker(host); return; + case 'tuiMode': showTuiModePicker(host); return; + case 'mermaid': showMermaidPreferencePicker(host); return; case 'editor': showEditorPicker(host); return; case 'survey': showSurveyPreferencePicker(host); return; case 'experiments': void showExperimentsPanel(host); return; diff --git a/apps/kimi-code/src/tui/commands/desktop.ts b/apps/kimi-code/src/tui/commands/desktop.ts new file mode 100644 index 000000000..b2649a05d --- /dev/null +++ b/apps/kimi-code/src/tui/commands/desktop.ts @@ -0,0 +1,10 @@ +import { kimiCodeOfficialInstallUrl } from '#/constant/app'; +import { openUrl } from '#/utils/open-url'; + +import type { SlashCommandHost } from './dispatch'; + +export async function handleDesktopCommand(host: SlashCommandHost): Promise { + const url = kimiCodeOfficialInstallUrl(); + host.showStatus(`${url} — opened in your browser`); + openUrl(url); +} diff --git a/apps/kimi-code/src/tui/commands/dispatch.ts b/apps/kimi-code/src/tui/commands/dispatch.ts index ff10df66a..8aad6f44d 100644 --- a/apps/kimi-code/src/tui/commands/dispatch.ts +++ b/apps/kimi-code/src/tui/commands/dispatch.ts @@ -7,6 +7,7 @@ import type { ColorToken, ThemeName } from '#/tui/theme'; import { LLM_NOT_SET_MESSAGE } from '../constant/kimi-tui'; import type { AuthFlowController } from '../controllers/auth-flow'; import type { BtwPanelController } from '../controllers/btw-panel'; +import type { ModelMigrationController } from '../controllers/model-migration'; import type { StreamingUIController } from '../controllers/streaming-ui'; import type { TasksBrowserController } from '../controllers/tasks-browser'; import { tryHandleDanceCommand } from '../easter-eggs/dance'; @@ -20,13 +21,10 @@ import type { TranscriptEntry, } from '../types'; import { formatErrorMessage } from '../utils/event-payload'; -import { - extractInlineSkillActivations, - findInlineSkillTokens, -} from '../utils/inline-skill-tokens'; import { handleLoginCommand, handleLogoutCommand } from './auth'; import { handleBtwCommand } from './btw'; import { handleCopyCommand } from './copy'; +import { handleDesktopCommand } from './desktop'; import { handleCompactCommand, handleEditorCommand, @@ -55,7 +53,8 @@ import { handleReloadCommand, handleReloadTuiCommand } from './reload'; import type { SkillListSession } from './skills'; import { canRestoreSubmittedInput, - resolveSlashCommandInput, + resolveUserInput, + type SlashCommandIntent, slashBusyMessage, slashCommandBusyReason, } from './resolve'; @@ -78,6 +77,7 @@ import { handleRemoteControlCommand, handleWebCommand } from './web'; export { handleLoginCommand, handleLogoutCommand } from './auth'; export { handleBtwCommand } from './btw'; export { handleCopyCommand } from './copy'; +export { handleDesktopCommand } from './desktop'; export { handleAddDirCommand } from './add-dir'; export { handleCompactCommand, @@ -126,7 +126,7 @@ export interface SlashCommandHost { showNotice(title: string, detail?: string): void; appendTranscriptEntry(entry: TranscriptEntry): void; track(event: string, props?: Record): void; - mountEditorReplacement(panel: Component & Focusable): void; + mountEditorReplacement(panel: Component & Focusable, onDisplaced?: () => void): void; restoreEditor(): void; restoreInputText(text: string): void; refreshSlashCommandAutocomplete(): void; @@ -157,13 +157,17 @@ export interface SlashCommandHost { * fails. */ ensureSession(): Promise; - /** Await the in-flight lazy session creation, if any (v2); no-op otherwise. */ - waitForLazyCreation(): Promise; + /** Await in-flight session assembly — lazy creation or a `/new` replacement — if any; no-op otherwise. */ + waitForSessionAssembly(): Promise; + /** True while a `/new` replacement is assembling; idle checks must treat it as busy. */ + readonly sessionReplacementInFlight: boolean; switchToSession(session: Session, message: string): Promise; reloadCurrentSessionView(session: Session, message: string): Promise; beginSessionRequest(): void; failSessionRequest(message: string): void; sendQueuedMessage(session: Session, item: QueuedMessage): void; + /** Queue a `/compact` for FIFO dispatch; false when one is already queued. */ + enqueueCompactCommand(args: string): boolean; requestQueuedGoalPromotion?(): void; /** Reset the client-side cache-break baseline after the context was cut * (/undo): the next step's cache-read drop is expected, not a break. */ @@ -198,7 +202,6 @@ export interface SlashCommandHost { * and launch as a single turn. */ sendInlineSkillUserInput(text: string, activations: readonly InlineSkillActivation[]): Promise; - sendSkillActivation(session: Session, skillName: string, skillArgs: string): void; activatePluginCommand( session: Session, pluginId: string, @@ -213,6 +216,7 @@ export interface SlashCommandHost { readonly btwPanelController: BtwPanelController; readonly tasksBrowserController: TasksBrowserController; readonly authFlow: AuthFlowController; + readonly modelMigration: ModelMigrationController; } // --------------------------------------------------------------------------- @@ -220,90 +224,39 @@ export interface SlashCommandHost { // --------------------------------------------------------------------------- export function dispatchInput(host: SlashCommandHost, text: string): void { - if (parseSlashInput(text) !== null) { - // A leading skill command combined with further inline skill tokens - // (`/skill:a args /skill:b`) is one grouped submission on the v2 engine. - if (dispatchInlineSkillCombo(host, text)) { - return; - } - void executeSlashCommand(host, text); - return; - } - // Inline skill tokens anywhere in a plain prompt activate the skills. - const activations = extractInlineSkillActivations(text, host.skillCommandMap); - if (activations.length > 0) { - void host.sendInlineSkillUserInput(text, activations); - return; - } - host.sendNormalUserInput(text); -} - -/** - * Handle a leading-slash input that may be a bundled submission. Returns true - * when the input was claimed, false when it should fall through to the - * regular single-skill slash path. - * - * Bundle rule: two or more known skill tokens with the first one leading the - * input make the whole input one bundled prompt in which every token - * activates with NO args — the mention is the whole interface, and args stay - * a standalone-activation concept (`/skill:a some args` with no other tokens - * keeps its single-skill path). Tokenization is whitespace-generic, so - * space- and newline-separated bundles behave identically. A recognized - * builtin or plugin command always keeps its own path, no matter how many - * skill tokens its arguments mention. - */ -function dispatchInlineSkillCombo(host: SlashCommandHost, text: string): boolean { - // The intent is parsed without the busy flags on purpose: submissions - // through sendInlineSkillUserInput queue while busy — only genuine - // single-skill commands reject. - const intent = resolveSlashCommandInput({ + const { intent, activations } = resolveUserInput({ input: text, skillCommandMap: host.skillCommandMap, pluginCommandMap: host.pluginCommandMap, - isStreaming: false, - isCompacting: false, - }); - if (intent.kind !== 'skill' && intent.kind !== 'message') return false; - - const tokens = findInlineSkillTokens(text, { - isKnownSkill: (commandName) => - host.skillCommandMap.has(commandName) || host.skillCommandMap.has(`skill:${commandName}`), - includeLeading: true, - }); - // The 'message' kind joins the bundle rule because parseSlashInput only - // splits on a literal space: a newline after a leading skill resolves to - // 'message' instead of 'skill', and must not silently drop the leading - // activation. - if (tokens.length >= 2 && tokens[0]!.start === 0) { - const activations = extractInlineSkillActivations(text, host.skillCommandMap, { - includeLeading: true, - }); - void host.sendInlineSkillUserInput(text, activations); - return true; - } - - // An unrecognized leading slash token makes the whole input a plain - // message; scan it for inline skills like any other plain prompt. - if (intent.kind !== 'message') return false; - const activations = extractInlineSkillActivations(text, host.skillCommandMap); - if (activations.length === 0) return false; - void host.sendInlineSkillUserInput(text, activations); - return true; -} - -async function executeSlashCommand(host: SlashCommandHost, input: string): Promise { - const parsedCommand = parseSlashInput(input); - const intent = resolveSlashCommandInput({ - input, - skillCommandMap: host.skillCommandMap, - pluginCommandMap: host.pluginCommandMap, isStreaming: host.state.appState.streamingPhase !== 'idle', isCompacting: host.state.appState.isCompacting, }); + if (intent.kind === 'skill' || activations.length > 0) { + const leading = activations[0]; + if (intent.kind === 'skill' && leading?.args !== undefined && host.state.appState.model.trim().length > 0) { + host.track('input_command', { + command: intent.commandName, + skill_name: leading.skillName, + }); + } + void host.sendInlineSkillUserInput(text, activations); + return; + } + if (intent.kind !== 'not-command') { + void executeSlashCommand(host, text, intent); + return; + } + host.sendNormalUserInput(text); +} + +async function executeSlashCommand( + host: SlashCommandHost, + input: string, + intent: Exclude, +): Promise { + const parsedCommand = parseSlashInput(input); switch (intent.kind) { - case 'not-command': - return; case 'blocked': host.track('input_command_invalid', { reason: 'blocked', command: intent.commandName }); host.showError(slashBusyMessage(intent.commandName, intent.reason)); @@ -318,34 +271,6 @@ async function executeSlashCommand(host: SlashCommandHost, input: string): Promi }); host.showError(`Invalid slash command: /${intent.commandName}`); return; - case 'skill': { - if (host.state.appState.model.trim().length === 0) { - host.showError(LLM_NOT_SET_MESSAGE); - return; - } - let session = host.session; - if (session === undefined) { - session = await ensureSessionForCommand(host); - if (session === undefined) return; - // A first prompt may have started a turn while the session was being - // created; skill commands are always busy-gated, so re-check the gate - // resolved before the await. - const busyReason = slashCommandBusyReason({ - isStreaming: host.state.appState.streamingPhase !== 'idle', - isCompacting: host.state.appState.isCompacting, - }); - if (busyReason !== undefined) { - host.showError(slashBusyMessage(intent.commandName, busyReason)); - return; - } - } - host.track('input_command', { - command: intent.commandName, - skill_name: intent.skillName, - }); - host.sendSkillActivation(session, intent.skillName, intent.args); - return; - } case 'plugin-command': { if (host.state.appState.model.trim().length === 0) { host.showError(LLM_NOT_SET_MESSAGE); @@ -355,8 +280,6 @@ async function executeSlashCommand(host: SlashCommandHost, input: string): Promi if (session === undefined) { session = await ensureSessionForCommand(host); if (session === undefined) return; - // Same busy re-check as the skill path: plugin commands are always - // busy-gated too. const busyReason = slashCommandBusyReason({ isStreaming: host.state.appState.streamingPhase !== 'idle', isCompacting: host.state.appState.isCompacting, @@ -380,6 +303,16 @@ async function executeSlashCommand(host: SlashCommandHost, input: string): Promi host.sendNormalUserInput(intent.input); return; case 'builtin': + if (intent.enqueue === true) { + if (!host.enqueueCompactCommand(intent.args)) { + host.track('input_command_invalid', { reason: 'duplicate-compact', command: intent.name }); + host.showError('A /compact is already queued.'); + host.restoreInputText(input); + return; + } + host.track('input_queue'); + return; + } host.track('input_command', { command: intent.name }); if (intent.name === 'new' && parsedCommand?.name === 'clear') { host.track('clear'); @@ -444,6 +377,17 @@ async function handleBuiltInSlashCommand( command !== undefined && resolveSlashCommandAvailability(command, args) === 'idle-only' ) { + // Same enqueue semantics as the dispatch builtin branch: a /compact + // submitted before the session existed joins the queue when the + // awaited creation lands on a running turn. + if (name === 'compact' && busyReason === 'streaming' && !host.state.appState.isCompacting) { + if (!host.enqueueCompactCommand(args)) { + host.showError('A /compact is already queued.'); + // Same restore as the adjacent blocked path, guarded the same way. + if (canRestoreSubmittedInput(host)) host.restoreInputText(input); + } + return; + } host.showError(slashBusyMessage(name, busyReason)); // Same as the dispatch blocked branch: give the cleared input back, // guarded the same way — session creation awaited above. @@ -464,7 +408,7 @@ async function handleBuiltInSlashCommand( case 'new': { // A first-use lazy creation may still be in flight: wait it out so /new // never races a second createSession against the pending prompt. - await host.waitForLazyCreation(); + await host.waitForSessionAssembly(); // The waited-out prompt may have started a turn meanwhile; /new is // idle-only, so re-run the busy gate resolved before the await. const busyReason = slashCommandBusyReason({ @@ -526,7 +470,7 @@ async function handleBuiltInSlashCommand( await handleEffortCommand(host, args); return; case 'provider': - await handleProviderCommand(host); + await handleProviderCommand(host, args); return; case 'permission': showPermissionPicker(host); @@ -597,6 +541,9 @@ async function handleBuiltInSlashCommand( case 'web': await handleWebCommand(host); return; + case 'desktop': + await handleDesktopCommand(host); + return; case 'remote-control': await handleRemoteControlCommand(host); return; diff --git a/apps/kimi-code/src/tui/commands/info.ts b/apps/kimi-code/src/tui/commands/info.ts index af7f30b7c..f8bdc0635 100644 --- a/apps/kimi-code/src/tui/commands/info.ts +++ b/apps/kimi-code/src/tui/commands/info.ts @@ -6,6 +6,7 @@ import { buildMcpStatusReportLines } from '../components/messages/mcp-status-pan import { buildStatusReportLines } from '../components/messages/status-panel'; import { buildUsageReportLines, UsagePanelComponent, type ManagedUsageReport } from '../components/messages/usage-panel'; import { isExperimentalFlagEnabled } from './experimental-flags'; +import { quotaUsageRows } from '#/utils/usage/usage-format'; import { FEEDBACK_ISSUE_URL, FEEDBACK_STATUS_CANCELLED, @@ -219,16 +220,18 @@ export async function showMcpServers(host: SlashCommandHost): Promise { } async function loadSessionUsageReport(host: SlashCommandHost): Promise { + if (host.session === undefined) return {}; try { - return { usage: await host.requireSession().getUsage() }; + return { usage: await host.session.getUsage() }; } catch (error) { return { error: formatErrorMessage(error) }; } } async function loadRuntimeStatusReport(host: SlashCommandHost): Promise { + if (host.session === undefined) return {}; try { - return { status: await host.requireSession().getStatus() }; + return { status: await host.session.getStatus() }; } catch (error) { return { error: error instanceof Error ? error.message : String(error) }; } @@ -248,5 +251,5 @@ async function loadManagedUsageReport(host: SlashCommandHost): Promise { +export async function handleProviderCommand(host: SlashCommandHost, rawArgs = ''): Promise { + const args = rawArgs.trim().split(/\s+/).filter((part) => part.length > 0); + if (args[0] === 'refresh') { + if (args.length > 2) { + host.showError('Usage: /provider [refresh [providerId]]'); + return; + } + await handleProviderRefresh(host, args[1]); + return; + } + if (args.length > 0) { + host.showError('Usage: /provider [refresh [providerId]]'); + return; + } const options = buildProviderManagerOptions(host); const component = new ProviderManagerComponent(options); host.mountEditorReplacement(component); } +async function handleProviderRefresh( + host: SlashCommandHost, + providerId: string | undefined, +): Promise { + const spinner = host.showProgressSpinner( + providerId === undefined + ? 'Refreshing models for all providers…' + : `Refreshing models for ${providerId}…`, + ); + let result: RefreshProviderModelsResponse; + try { + result = await host.authFlow.refreshProviderModels( + providerId === undefined ? undefined : { providerId }, + ); + } catch (error) { + spinner.stop({ ok: false, label: 'Refresh failed.' }); + host.showError(`Failed to refresh models: ${formatErrorMessage(error)}`); + return; + } + spinner.stop({ ok: true, label: 'Refresh finished.' }); + reportProviderRefresh(host, result); + if (result.retired_default !== undefined) { + await host.modelMigration.retire(result.retired_default); + } +} + +function reportProviderRefresh( + host: SlashCommandHost, + result: RefreshProviderModelsResponse, +): void { + for (const change of result.changed) { + if (change.added === 0 && change.removed === 0) { + // Metadata-only refresh: display name, capabilities, or upgrade info changed. + host.showStatus(`${change.provider_name}: model metadata updated.`); + continue; + } + const parts: string[] = []; + if (change.added > 0) parts.push(`+${change.added}`); + if (change.removed > 0) parts.push(`-${change.removed}`); + // A removed alias can break agents bound to it on their next turn, so + // removals surface as a warning rather than a plain status. + const total = change.added + change.removed; + host.showStatus( + `${change.provider_name}: ${parts.join(' / ')} model${total === 1 ? '' : 's'}.`, + change.removed > 0 ? 'warning' : undefined, + ); + } + for (const failure of result.failed) { + host.showStatus(`Skipped refreshing ${failure.provider}: ${failure.reason}`, 'warning'); + } + if (result.changed.length === 0 && result.failed.length === 0) { + const count = result.unchanged.length; + host.showStatus( + `No model changes (${count} provider${count === 1 ? '' : 's'} up to date).`, + ); + } +} + function buildProviderManagerOptions(host: SlashCommandHost): ProviderManagerOptions { const activeProviderId = host.state.appState.availableModels[host.state.appState.model]?.provider; @@ -310,7 +379,7 @@ export async function setDefaultModel( // A first prompt may still be inside lazy creation: wait it out so the // pick lands on the new session instead of racing its assembly (same // coordination as the /model path). - await host.waitForLazyCreation(); + await host.waitForSessionAssembly(); } await host.harness.setConfig({ defaultModel: alias, @@ -322,11 +391,15 @@ export async function setDefaultModel( // lazy session can come live while the config writes above are pending; a // session created BY activation (v1) or a same-alias rebind does not count // — both bind the model without an engine event. - let engineTrackedSwitch = await host.authFlow.refreshConfigAfterLogin(); + const refreshed = await host.authFlow.refreshConfigAfterLogin(effort); + // A mounted confirmation gate owns the whole switch — including the picked + // effort — so the follow-up activation must not fire under the open dialog. + const gateOwnsSwitch = refreshed === 'gated'; + let engineTrackedSwitch = refreshed === 'gated' ? true : refreshed; // refreshConfigAfterLogin reactivates from the persisted config, so a pick // the gate keeps session-only never reaches the runtime — apply it after // the refresh, or the persisted value would clobber it. - if (thinking.effort === undefined && effort !== 'off' && effort !== 'on') { + if (!gateOwnsSwitch && thinking.effort === undefined && effort !== 'off' && effort !== 'on') { engineTrackedSwitch = (await host.authFlow.activateModelAfterLogin(alias, effort)) || engineTrackedSwitch; } @@ -342,49 +415,49 @@ async function handleCustomRegistryAddViaDialog(host: SlashCommandHost): Promise const value = await promptCustomRegistryImport(host); if (value === undefined) return false; - const source: CustomRegistrySource = { - kind: 'apiJson', - url: value.url, - apiKey: value.apiKey, - }; - - let entries: Awaited>; + let result: ImportCustomRegistryResult; try { - entries = await fetchCustomRegistry(source, { userAgent: createKimiCodeUserAgent() }); + result = await host.harness.importCustomRegistry({ + url: value.url, + apiKey: value.apiKey, + setDefaultWhenUnset: false, + }); } catch (error) { - host.showError(`Failed to import registry: ${formatErrorMessage(error)}`); + if (error instanceof RegistryImportError && error.phase === 'empty') { + host.showStatus('Registry contained no providers.'); + return false; + } + const phase = + error instanceof RegistryImportError && error.phase === 'fetch' ? 'import' : 'apply'; + host.showError(`Failed to ${phase} registry: ${formatErrorMessage(error)}`); + if ( + value.apiKey === undefined && + error instanceof RegistryImportError && + (error.status === 401 || error.status === 403) + ) { + host.showStatus('This registry requires authentication — paste its Bearer token.', 'warning'); + } return false; } - - const addedProviderIds = Object.values(entries).map((entry) => entry.id); try { - const config = await host.harness.getConfig(); - applyCustomRegistryEntries( - config as unknown as ManagedKimiConfigShape, - entries, - source, - ); - await host.harness.setConfig({ - providers: config.providers, - models: config.models, - }); await host.authFlow.refreshConfigAfterLogin(); } catch (error) { host.showError(`Failed to apply registry: ${formatErrorMessage(error)}`); return false; } - + const addedProviderIds = result.providers.map((provider) => provider.id); const count = addedProviderIds.length; - if (count === 0) { - host.showStatus('Registry contained no providers.'); - return false; - } host.showStatus( count === 1 ? 'Imported 1 provider from registry.' : `Imported ${String(count)} providers from registry.`, 'success', ); + for (const [id, envName] of Object.entries(result.credentialEnv)) { + host.showStatus( + `provider "${id}" declares credential env var "${envName}" — set api_key_env in config.toml to use it`, + ); + } // Offer the model selector so the user can pick a default, just like the // catalog (known-provider) flow. Copy without the v1-synthesized @@ -419,7 +492,7 @@ async function handleCustomRegistryAddViaDialog(host: SlashCommandHost): Promise function promptCustomRegistryImport( host: SlashCommandHost, -): Promise<{ readonly url: string; readonly apiKey: string } | undefined> { +): Promise { return new Promise((resolve) => { const dialog = new CustomRegistryImportDialogComponent( (result: CustomRegistryImportResult) => { diff --git a/apps/kimi-code/src/tui/commands/registry.ts b/apps/kimi-code/src/tui/commands/registry.ts index 343dae738..b82291327 100644 --- a/apps/kimi-code/src/tui/commands/registry.ts +++ b/apps/kimi-code/src/tui/commands/registry.ts @@ -155,7 +155,7 @@ export const BUILTIN_SLASH_COMMANDS = [ { name: 'auto', aliases: [], - description: 'Never Ask mode: never interrupts you; everything runs and is decided automatically.', + description: 'Never Ask mode: everything runs and is decided automatically; only plans in Plan mode wait for your review.', priority: 99, availability: 'always', }, @@ -429,6 +429,13 @@ export const BUILTIN_SLASH_COMMANDS = [ priority: 40, availability: 'always', }, + { + name: 'desktop', + aliases: ['install-desktop'], + description: 'Open the Kimi Code desktop app page in your browser', + priority: 40, + availability: 'always', + }, { name: 'remote-control', aliases: ['rc'], diff --git a/apps/kimi-code/src/tui/commands/reload.ts b/apps/kimi-code/src/tui/commands/reload.ts index 2fa343129..9abbd4833 100644 --- a/apps/kimi-code/src/tui/commands/reload.ts +++ b/apps/kimi-code/src/tui/commands/reload.ts @@ -1,8 +1,9 @@ import type { KimiConfig } from '@moonshot-ai/kimi-code-sdk'; import { currentTheme, lightColors } from '#/tui/theme'; -import { loadTuiConfig, type TuiConfig } from '../config'; -import { setMarkdownRenderLatex } from '../utils/markdown-options'; +import { DEFAULT_MARKDOWN_CONFIG, loadTuiConfig, type TuiConfig } from '../config'; +import { TUI_MODE_RESTART_NOTICE } from '../constant/kimi-tui'; +import { setMarkdownMermaidMode, setMarkdownRenderLatex } from '../utils/markdown-options'; import type { SlashCommandHost } from './dispatch'; import { setExperimentalFeatures } from './experimental-flags'; @@ -38,6 +39,9 @@ export async function handleReloadCommand(host: SlashCommandHost): Promise } host.refreshSlashCommandAutocomplete(); applyRuntimeConfig(host, config); + host.setAppState({ + disableFeedbackSurvey: config.disableFeedbackSurvey ?? tuiConfig.disableFeedbackSurvey, + }); await applyReloadedTuiConfig(host, tuiConfig); if (session === undefined) { @@ -60,6 +64,7 @@ export async function applyReloadedTuiConfig( // transcript components, which rebuild their Markdown children and copy the // options at construction — so the new value must be live by then. setMarkdownRenderLatex(config.renderLatex ?? true); + setMarkdownMermaidMode(config.markdown?.mermaid ?? DEFAULT_MARKDOWN_CONFIG.mermaid); const resolved = config.theme === 'auto' ? (currentTheme.palette === lightColors ? 'light' : 'dark') : undefined; @@ -67,15 +72,20 @@ export async function applyReloadedTuiConfig( host.refreshTerminalThemeTracking(); host.setAppState({ editorCommand: config.editorCommand, + tuiMode: config.tuiMode, disablePasteBurst: config.disablePasteBurst, renderLatex: config.renderLatex, cacheExpiryHint: config.cacheExpiryHint, - disableFeedbackSurvey: config.disableFeedbackSurvey, + autoSessionTitle: config.autoSessionTitle, notifications: config.notifications, upgrade: config.upgrade, statusLine: config.statusLine, + markdown: config.markdown, }); host.state.editor.setDisablePasteBurst(config.disablePasteBurst); + if ((config.tuiMode ?? 'regular') !== host.state.ui.mode) { + host.showNotice(TUI_MODE_RESTART_NOTICE); + } } function applyRuntimeConfig(host: SlashCommandHost, config: KimiConfig): void { diff --git a/apps/kimi-code/src/tui/commands/resolve.ts b/apps/kimi-code/src/tui/commands/resolve.ts index 7bcc942ad..748a9e66a 100644 --- a/apps/kimi-code/src/tui/commands/resolve.ts +++ b/apps/kimi-code/src/tui/commands/resolve.ts @@ -7,8 +7,11 @@ import { import { isExperimentalFlagEnabled } from './experimental-flags'; import { parseSlashInput } from './parse'; import type { TUIState } from '../tui-state'; +import type { InlineSkillActivation } from '../types'; +import { extractInlineSkillActivations, findInlineSkillTokens } from '../utils/inline-skill-tokens'; import type { KimiSlashCommand, + ParsedSlashInput, SlashCommandBusyReason, SlashCommandInvalidReason, } from './types'; @@ -20,6 +23,8 @@ export type SlashCommandIntent = readonly command: BuiltinSlashCommand; readonly name: BuiltinSlashCommandName; readonly args: string; + /** Queue instead of executing now (/compact while streaming). */ + readonly enqueue?: boolean; } | { readonly kind: 'skill'; @@ -68,10 +73,21 @@ export function resolveSlashCommandInput(options: ResolveSlashCommandInput): Sla busyReason !== undefined && resolveSlashCommandAvailability(command, parsed.args) === 'idle-only' ) { + // A live compaction also sets streamingPhase, and busyReason reports + // 'streaming' first — compacting must stay blocked, not enqueue. + if (command.name === 'compact' && busyReason === 'streaming' && !options.isCompacting) { + return { + kind: 'builtin', + command, + name: command.name, + args: parsed.args, + enqueue: true, + }; + } return { kind: 'blocked', commandName: parsed.name, - reason: busyReason, + reason: command.name === 'compact' && options.isCompacting ? 'compacting' : busyReason, }; } return { @@ -82,20 +98,19 @@ export function resolveSlashCommandInput(options: ResolveSlashCommandInput): Sla }; } - const skillName = resolveSkillCommand(options.skillCommandMap, parsed.name); - if (skillName !== undefined) { - // Skill activations are never blocked by a busy session: the TUI queues - // them behind the running turn exactly like normal messages (see - // sendSkillActivation), and Ctrl-S steers them as real activations, so - // skill commands can be issued any time. - return { - kind: 'skill', - commandName: parsed.name, - skillName, - args: parsed.args.trim(), - }; + // Skill activations are never blocked by a busy session: the TUI queues + // them behind the running turn exactly like normal messages (see + // sendSkillActivation), and Ctrl-S steers them as real activations, so + // skill commands can be issued any time. + const exactSkillName = options.skillCommandMap.get(parsed.name); + if (exactSkillName !== undefined) { + return skillCommandIntent(parsed, exactSkillName); } + // A plugin command wins over the skill shorthand for the same + // `:` input: the skill stays reachable through its explicit + // `skill::` command, while the plugin command has no + // alternative form. if (options.pluginCommandMap.has(parsed.name)) { const busyReason = slashCommandBusyReason(options); if (busyReason !== undefined) { @@ -116,12 +131,45 @@ export function resolveSlashCommandInput(options: ResolveSlashCommandInput): Sla }; } + const shorthandSkillName = options.skillCommandMap.get(`skill:${parsed.name}`); + if (shorthandSkillName !== undefined) { + return skillCommandIntent(parsed, shorthandSkillName); + } + return { kind: 'message', input: options.input, }; } +export function resolveUserInput(options: ResolveSlashCommandInput): { + readonly intent: SlashCommandIntent; + readonly activations: readonly InlineSkillActivation[]; +} { + const intent = resolveSlashCommandInput(options); + if (intent.kind !== 'skill' && intent.kind !== 'message' && intent.kind !== 'not-command') { + return { intent, activations: [] }; + } + const text = options.input.trim(); + const activations = extractInlineSkillActivations(text, options.skillCommandMap, { + includeLeading: true, + }); + if (activations.length === 1) { + const tokens = findInlineSkillTokens(text, { + isKnownSkill: (name) => resolveSkillCommand(options.skillCommandMap, name) !== undefined, + includeLeading: true, + }); + if (tokens.length === 1 && tokens[0]?.start === 0) { + if (intent.kind !== 'skill') return { intent, activations: [] }; + return { + intent, + activations: [{ skillName: activations[0]!.skillName, args: text.slice(tokens[0].end).trim() }], + }; + } + } + return { intent, activations }; +} + export function resolveSkillCommand( skillCommandMap: ReadonlyMap, commandName: string, @@ -129,6 +177,15 @@ export function resolveSkillCommand( return skillCommandMap.get(commandName) ?? skillCommandMap.get(`skill:${commandName}`); } +function skillCommandIntent(parsed: ParsedSlashInput, skillName: string): SlashCommandIntent { + return { + kind: 'skill', + commandName: parsed.name, + skillName, + args: parsed.args.trim(), + }; +} + export function slashCommandBusyReason( options: Pick, ): SlashCommandBusyReason | undefined { diff --git a/apps/kimi-code/src/tui/commands/session.ts b/apps/kimi-code/src/tui/commands/session.ts index 0f773209b..67f360010 100644 --- a/apps/kimi-code/src/tui/commands/session.ts +++ b/apps/kimi-code/src/tui/commands/session.ts @@ -2,8 +2,6 @@ import { mkdir, writeFile } from 'node:fs/promises'; import { dirname, resolve } from 'node:path'; import { pathToFileURL } from 'node:url'; -import type { Session } from '@moonshot-ai/kimi-code-sdk'; - import { detectInstallSource } from '#/cli/update/source'; import { copyTextToClipboard } from '#/utils/clipboard/clipboard-text'; import { detectShellEnvironment } from '#/utils/process/shell-env'; @@ -58,12 +56,8 @@ export async function handleForkCommand(host: SlashCommandHost, args: string): P return; } - const sourceTitle = forkSourceTitle(host, session); try { - const forked = await host.harness.forkSession({ - id: session.id, - title: `Fork: ${sourceTitle}`, - }); + const forked = await host.harness.forkSession({ id: session.id }); const forkId = forked.id; try { await forked.close(); @@ -111,15 +105,6 @@ function forkResumeCommand(workDir: string, forkId: string): string { return `${changeDir} && kimi --resume ${quoteShellArg(forkId)}`; } -function forkSourceTitle(host: SlashCommandHost, session: Session): string { - const currentTitle = host.state.appState.sessionTitle?.trim(); - if (currentTitle !== undefined && currentTitle.length > 0) return currentTitle; - - const summaryTitle = - typeof session.summary?.title === 'string' ? session.summary.title.trim() : ''; - return summaryTitle.length > 0 ? summaryTitle : session.id; -} - export async function handleExportMdCommand(host: SlashCommandHost, args: string): Promise { const session = host.session; if (session === undefined) { diff --git a/apps/kimi-code/src/tui/commands/skills.ts b/apps/kimi-code/src/tui/commands/skills.ts index 2997a8b15..154c98e7c 100644 --- a/apps/kimi-code/src/tui/commands/skills.ts +++ b/apps/kimi-code/src/tui/commands/skills.ts @@ -18,6 +18,10 @@ export function isUserActivatableSkill(skill: SkillSummary): boolean { ); } +function isVisibleOnTui(skill: SkillSummary): boolean { + return skill.scopes === undefined || skill.scopes.includes('tui'); +} + function compareSkillSlashCommands(a: SkillSummary, b: SkillSummary): number { return ( getSkillSlashCommandGroup(a.source) - getSkillSlashCommandGroup(b.source) || @@ -32,7 +36,7 @@ function getSkillSlashCommandGroup(source: SkillSummary['source']): number { export function buildSkillSlashCommands(skills: readonly SkillSummary[]): SkillSlashCommands { const commandMap = new Map(); const sortedSkills = [...skills].toSorted(compareSkillSlashCommands); - const commands = sortedSkills.filter(isUserActivatableSkill).map((skill) => { + const commands = sortedSkills.filter(isUserActivatableSkill).filter(isVisibleOnTui).map((skill) => { const commandName = skill.source === 'builtin' || skill.isSubSkill === true ? skill.name diff --git a/apps/kimi-code/src/tui/commands/tower.ts b/apps/kimi-code/src/tui/commands/tower.ts index 890a1c3fa..b2912cae6 100644 --- a/apps/kimi-code/src/tui/commands/tower.ts +++ b/apps/kimi-code/src/tui/commands/tower.ts @@ -1,6 +1,6 @@ import type { Session } from '@moonshot-ai/kimi-code-sdk'; -import { TOWER_STATUS_PROMPT, TOWER_TEARDOWN_PROMPT } from '../constant/kimi-tui'; +import { TOWER_TEARDOWN_PROMPT } from '../constant/kimi-tui'; import { formatErrorMessage } from '../utils/event-payload'; import type { SlashCommandHost } from './dispatch'; @@ -17,7 +17,16 @@ export async function handleTowerCommand(host: SlashCommandHost, args: string): return; } if (sub === '' || sub === 'status') { - host.sendNormalUserInput(TOWER_STATUS_PROMPT); + const session = await requireSessionEnsured(host); + if (session === undefined) return; + try { + // The SDK returns the engine-rendered summary; its first line is the + // state headline, which the notice lifts into the title. + const [title, ...rest] = (await session.getTowerStatus()).split('\n'); + host.showNotice(title ?? 'Tower status', rest.length > 0 ? rest.join('\n') : undefined); + } catch (error) { + host.showError(`Failed to read tower status: ${formatErrorMessage(error)}`); + } return; } if (sub === 'teardown') { @@ -84,7 +93,7 @@ async function setTowerMode( async function requireSessionEnsured(host: SlashCommandHost): Promise { if (host.session !== undefined) return host.session; - // v2 session-less: lazy-create the session, then toggle — the same path + // v2 session-less: lazy-create the session on first use — the same path // the first prompt takes. return host.ensureSession(); } diff --git a/apps/kimi-code/src/tui/commands/undo.ts b/apps/kimi-code/src/tui/commands/undo.ts index c3aef7f8d..19cdfe0be 100644 --- a/apps/kimi-code/src/tui/commands/undo.ts +++ b/apps/kimi-code/src/tui/commands/undo.ts @@ -22,6 +22,7 @@ import { UserMessageComponent } from '../components/messages/user-message'; import { NO_ACTIVE_SESSION_MESSAGE } from '../constant/kimi-tui'; import type { TranscriptEntry } from '../types'; import { formatErrorMessage } from '../utils/event-payload'; +import { isSessionOccupiedError, isSessionStaleError } from '../utils/session-lock-errors'; import { getTranscriptComponentEntry } from '../utils/transcript-component-metadata'; import { nextTranscriptId } from '../utils/transcript-id'; import type { SlashCommandHost } from './dispatch'; @@ -102,6 +103,14 @@ async function undoByCount(host: SlashCommandHost, count: number): Promise { } export async function handleRemoteControlCommand(host: SlashCommandHost): Promise { - await host.waitForLazyCreation(); + await host.waitForSessionAssembly(); const session = host.session; const holder = await inspectRemoteControlLock(getDataDir()); @@ -56,10 +58,11 @@ export async function handleRemoteControlCommand(host: SlashCommandHost): Promis let remoteControl: Awaited> | undefined; try { await startServerForeground(options, { - onReady: async (origin) => { + onReady: async (origin, controls) => { const dataDir = getDataDir(); const token = tryResolveServerToken(dataDir); if (token === undefined) throw new Error('Unable to read the local server token.'); + const persisted = persistedKimiOAuthRef(); let outputReady = false; const pendingStatuses: string[] = []; const onStatus = (status: RemoteControlStatus): void => { @@ -71,10 +74,31 @@ export async function handleRemoteControlCommand(host: SlashCommandHost): Promis homeDir: dataDir, localOrigin: origin, localServerToken: token, - clientVersion: `kimi-code/${getVersion()}`, + clientVersion: `${CLI_USER_AGENT_PRODUCT}/${getVersion()}`, + urlSource: CLI_MSH_PLATFORM, + configuredOAuthKey: persisted?.key, + configuredOAuthHost: persisted?.oauthHost, onStatus, }); - const url = buildRemoteControlUrl(remoteControl.deviceId, session?.id); + void remoteControl.closed.then( + (reason) => { + if (reason === 'user_requested') { + controls?.requestShutdown('remote_control_user_requested'); + } + }, + (error) => { + process.stderr.write( + `Remote Control lock release failed: ${formatErrorMessage(error)}\n`, + ); + controls?.requestShutdown('remote_control_closed'); + }, + ); + const url = buildRemoteControlUrl( + remoteControl.deviceId, + session?.id, + remoteControl.relayOrigin, + CLI_MSH_PLATFORM, + ); const qrCode = await generateRemoteControlQr(url, dataDir); process.stdout.write( formatRemoteControlOutput({ diff --git a/apps/kimi-code/src/tui/components/chrome/banner.ts b/apps/kimi-code/src/tui/components/chrome/banner.ts index 1ecf4af2c..f07f8dcf6 100644 --- a/apps/kimi-code/src/tui/components/chrome/banner.ts +++ b/apps/kimi-code/src/tui/components/chrome/banner.ts @@ -48,32 +48,43 @@ export class BannerComponent implements Component { // line's main-text column, which starts right after the tag display. When // the tag is on its own line, the main text aligns with the tag text. const bodyIndent = inlineTag ? ' '.repeat(tagWidth) : tagOnOwnLine ? ' '.repeat(hangingWidth) : ''; - // Descriptive subtext lines (the second line in the design) start at the - // column after the leading star + space, aligning with the tag text itself. - const descIndent = showTag ? ' '.repeat(hangingWidth) : ''; + + const mainSegments = this.state.mainText === null ? [] : this.state.mainText.split('\n'); + const subSegments = this.state.subText ? this.state.subText.split('\n') : []; + // A title-only banner: the tag is the entire content, so it wraps to the + // width instead of being dropped when too long. + const titleOnly = mainSegments.length === 0; + const tagRendered = titleOnly ? tagStyled.length > 0 : showTag; const bodyContentWidth = width - (inlineTag ? tagWidth : tagOnOwnLine ? hangingWidth : 0); - const descContentWidth = width - (showTag ? hangingWidth : 0); + const descContentWidth = width - (tagRendered ? hangingWidth : 0); + // Descriptive subtext lines (the second line in the design) start at the + // column after the leading star + space, aligning with the tag text itself. + // When even the indent does not fit, the subtext uses the full width instead. + const descIndent = tagRendered && descContentWidth > 0 ? ' '.repeat(hangingWidth) : ''; if (bodyContentWidth <= 0) { return ['']; } - const mainSegments = this.state.mainText.split('\n'); - const subSegments = this.state.subText ? this.state.subText.split('\n') : []; - const result: string[] = []; - if (tagOnOwnLine) { - result.push(tagStyled); - } - for (let i = 0; i < mainSegments.length; i++) { - const wrapped = wrapTextWithAnsi(mainSegments[i]!, bodyContentWidth); - for (let j = 0; j < wrapped.length; j++) { - const boldLine = main(wrapped[j]!); - if (i === 0 && j === 0 && inlineTag) { - result.push(tagDisplay + boldLine); - } else { - result.push(bodyIndent + boldLine); + if (titleOnly) { + if (tagStyled.length > 0) { + result.push(...wrapTextWithAnsi(tagStyled, width)); + } + } else { + if (tagOnOwnLine) { + result.push(tagStyled); + } + for (let i = 0; i < mainSegments.length; i++) { + const wrapped = wrapTextWithAnsi(mainSegments[i]!, bodyContentWidth); + for (let j = 0; j < wrapped.length; j++) { + const boldLine = main(wrapped[j]!); + if (i === 0 && j === 0 && inlineTag) { + result.push(tagDisplay + boldLine); + } else { + result.push(bodyIndent + boldLine); + } } } } diff --git a/apps/kimi-code/src/tui/components/chrome/footer.ts b/apps/kimi-code/src/tui/components/chrome/footer.ts index d2dd2ea2b..d9fd3868f 100644 --- a/apps/kimi-code/src/tui/components/chrome/footer.ts +++ b/apps/kimi-code/src/tui/components/chrome/footer.ts @@ -218,7 +218,9 @@ export class FooterComponent implements Component { this.state = state; this.onRefresh = onRefresh; this.gitCacheWorkDir = state.workDir; - this.gitCache = createGitStatusCache(state.workDir, { onChange: this.onRefresh }); + this.gitCache = createGitStatusCache(state.workDir, { + onChange: this.onRefresh, + }); this.syncGoalClock(state.goal); this.syncGoalTimer(state.goal); this.syncStatusLineRunner(state); @@ -226,8 +228,11 @@ export class FooterComponent implements Component { setState(state: AppState): void { if (state.workDir !== this.gitCacheWorkDir) { + this.gitCache.dispose(); this.gitCacheWorkDir = state.workDir; - this.gitCache = createGitStatusCache(state.workDir, { onChange: this.onRefresh }); + this.gitCache = createGitStatusCache(state.workDir, { + onChange: this.onRefresh, + }); } this.syncGoalClock(state.goal); this.syncGoalTimer(state.goal); @@ -295,6 +300,10 @@ export class FooterComponent implements Component { this.backgroundAgentCount = Math.max(0, counts.agentTasks); } + refreshGitStatus(): void { + this.gitCache.refresh(); + } + invalidate(): void {} render(width: number): string[] { @@ -539,6 +548,7 @@ export class FooterComponent implements Component { } dispose(): void { + this.gitCache.dispose(); if (this.goalTimer !== null) { clearInterval(this.goalTimer); this.goalTimer = null; diff --git a/apps/kimi-code/src/tui/components/chrome/gutter-container.ts b/apps/kimi-code/src/tui/components/chrome/gutter-container.ts index 43e076ec0..5bd718467 100644 --- a/apps/kimi-code/src/tui/components/chrome/gutter-container.ts +++ b/apps/kimi-code/src/tui/components/chrome/gutter-container.ts @@ -16,7 +16,12 @@ */ import { Container } from '@moonshot-ai/pi-tui'; -import type { Component } from '@moonshot-ai/pi-tui'; +import type { + Component, + TuiMouseDispatchResult, + TuiMouseEvent, + TuiMouseEventResult, +} from '@moonshot-ai/pi-tui'; import { prefixPreservingOsc133Zone } from '#/tui/utils/osc133'; import { isRenderCacheEnabled } from '#/tui/utils/render-cache'; @@ -29,8 +34,20 @@ interface TranscriptRenderCache { out: string[]; } +export interface GutterLayout { + readonly contentWidth: number; + readonly children: readonly { readonly component: Component; readonly height: number }[]; +} + export class GutterContainer extends Container { private renderCache: TranscriptRenderCache | undefined; + private renderedLayout: GutterLayout | undefined; + private unhandledClick: ((index: number) => TuiMouseEventResult | undefined) | undefined; + + setUnhandledClick(handler: (index: number) => TuiMouseEventResult | undefined): void { + this.unhandledClick = handler; + } + constructor( private readonly leftPad: number, private readonly rightPad: number, @@ -43,6 +60,10 @@ export class GutterContainer extends Container { super.invalidate(); } + getRenderedLayout(): GutterLayout | undefined { + return this.renderedLayout; + } + override render(width: number): string[] { const inner = Math.max(1, width - this.leftPad - this.rightPad); const lead = ' '.repeat(this.leftPad); @@ -58,13 +79,22 @@ export class GutterContainer extends Container { const childRenderRefs: string[][] = []; const prefixed: string[][] = []; let allReused = cacheValid; + const previousLayout = this.renderedLayout; + let sameLayout = + previousLayout?.contentWidth === inner && + previousLayout.children.length === this.children.length; let i = 0; for (const child of this.children) { const lines = child.render(inner); + sameLayout = + sameLayout && + previousLayout!.children[i]!.component === child && + previousLayout!.children[i]!.height === lines.length; childRefs.push(child); childRenderRefs.push(lines); - const reused = cacheValid && cache.childRefs[i] === child && cache.childRenderRefs[i] === lines; + const reused = + cacheValid && cache.childRefs[i] === child && cache.childRenderRefs[i] === lines; if (reused) { prefixed.push(cache.prefixed[i]!); } else { @@ -76,6 +106,16 @@ export class GutterContainer extends Container { i++; } + if (!sameLayout) { + this.renderedLayout = { + contentWidth: inner, + children: childRefs.map((component, index) => ({ + component, + height: childRenderRefs[index]!.length, + })), + }; + } + let out: string[]; if (allReused) { out = cache!.out; @@ -92,4 +132,86 @@ export class GutterContainer extends Container { return out; } + + // Mouse events arrive in this container's frame, which includes the + // gutters; children render at the shrunk inner width after the left pad, + // so translate before delegating or clicks land a gutter-width off. + override handleMouse(event: TuiMouseEvent): TuiMouseDispatchResult | undefined { + const inner = Math.max(1, event.width - this.leftPad - this.rightPad); + const adjusted: TuiMouseEvent = { ...event, x: event.x - this.leftPad, width: inner }; + if (adjusted.y < 0 || adjusted.y >= adjusted.height) return undefined; + + const heights = this.childHeights(inner, event.width); + let childY = 0; + for (let index = 0; index < this.children.length; index++) { + const height = heights[index] ?? 0; + if (adjusted.y < childY || adjusted.y >= childY + height) { + childY += height; + continue; + } + const child = this.children[index]!; + const handled = dispatchToChild(child, { ...adjusted, y: adjusted.y - childY, height }); + if (handled) return handled; + if ( + this.unhandledClick === undefined || + adjusted.type !== 'click' || + adjusted.button !== 'left' + ) { + return undefined; + } + const fallback = this.unhandledClick(index); + if (fallback === undefined || (!fallback.handled && !fallback.capture && !fallback.focus)) { + return undefined; + } + return { + handled: true, + capture: fallback.capture, + focus: fallback.focus, + render: fallback.render, + target: { + component: this, + originX: event.screenX - event.x, + originY: event.screenY - event.y, + width: event.width, + height: event.height, + }, + }; + } + return undefined; + } + + private childHeights(innerWidth: number, outerWidth: number): number[] { + const cache = this.renderCache; + if ( + cache !== undefined && + cache.width === outerWidth && + cache.childRefs.length === this.children.length && + cache.childRefs.every((child, index) => child === this.children[index]) + ) { + return cache.prefixed.map((lines) => lines.length); + } + return this.children.map((child) => child.render(innerWidth).length); + } +} + +function dispatchToChild( + child: Component, + event: TuiMouseEvent, +): TuiMouseDispatchResult | undefined { + const result = child.handleMouse?.(event); + if (!result) return undefined; + if ('target' in result) return result as TuiMouseDispatchResult; + if (!result.handled && !result.capture && !result.focus) return undefined; + return { + ...result, + handled: true, + focusTarget: result.focus ? child : undefined, + target: { + component: child, + originX: event.screenX - event.x, + originY: event.screenY - event.y, + width: event.width, + height: event.height, + }, + }; } diff --git a/apps/kimi-code/src/tui/components/chrome/notify-panel.ts b/apps/kimi-code/src/tui/components/chrome/notify-panel.ts index dbcc7b99c..59e080304 100644 --- a/apps/kimi-code/src/tui/components/chrome/notify-panel.ts +++ b/apps/kimi-code/src/tui/components/chrome/notify-panel.ts @@ -14,9 +14,11 @@ */ import type { Component } from '@moonshot-ai/pi-tui'; -import { Markdown, truncateToWidth, visibleWidth } from '@moonshot-ai/pi-tui'; +import { truncateToWidth, visibleWidth, wrapTextWithAnsi } from '@moonshot-ai/pi-tui'; import chalk from 'chalk'; +import { Markdown } from '#/tui/components/markdown/markdown'; + import { MAIN_AGENT_ID } from '#/tui/constant/kimi-tui'; import { currentTheme } from '#/tui/theme'; import { createMarkdownTheme } from '#/tui/theme/pi-tui-theme'; @@ -29,6 +31,8 @@ export interface NotifyEntry { readonly agentId: string; readonly agentName?: string; readonly time: number; + /** One-line headline of the update; absent for updates posted without one. */ + readonly title?: string; readonly text: string; } @@ -212,14 +216,26 @@ export class NotifyPanelComponent implements Component { const innerWidth = Math.max(1, width - 6); const ch = this.activeChannel(); const entry = ch.entries[Math.min(ch.page, ch.entries.length - 1)]!; - const bodyRows = new Markdown( - entry.text.trim(), - 0, - 0, - createMarkdownTheme(), - undefined, - createMarkdownOptions(), - ).render(innerWidth); + const titleRows = + entry.title === undefined + ? [] + : [ + ...wrapTextWithAnsi(entry.title, innerWidth).map((row) => + chalk.hex(c.textStrong).bold(row), + ), + '', + ]; + const bodyRows = [ + ...titleRows, + ...new Markdown( + entry.text.trim(), + 0, + 0, + createMarkdownTheme(), + undefined, + createMarkdownOptions(), + ).render(innerWidth), + ]; const padRow = (row: string): string => ` ${padToVisibleWidth(row, width - 6)} `; const emptyRow = ' '.repeat(width); @@ -291,11 +307,12 @@ export class NotifyPanelComponent implements Component { return ` ${marker} ${dim(`${String(total)} ${noun} · ctrl+n`)}`; } - /** First non-empty line of the current entry, stripped of list/bold markers. */ + /** The current entry's title, else its first non-empty line stripped of list/bold markers. */ private stubPreviewText(): string | undefined { const ch = this.activeChannel(); const entry = ch.entries[Math.min(ch.page, ch.entries.length - 1)]; if (entry === undefined) return undefined; + if (entry.title !== undefined) return entry.title; const firstLine = entry.text .trim() .split('\n') diff --git a/apps/kimi-code/src/tui/components/dialogs/choice-picker.ts b/apps/kimi-code/src/tui/components/dialogs/choice-picker.ts index 4ad6c0654..b12d1edfb 100644 --- a/apps/kimi-code/src/tui/components/dialogs/choice-picker.ts +++ b/apps/kimi-code/src/tui/components/dialogs/choice-picker.ts @@ -18,6 +18,9 @@ import { } from '@moonshot-ai/pi-tui'; import { CURRENT_MARK, SELECT_POINTER } from '#/tui/constant/symbols'; import { currentTheme, type ColorToken } from '#/tui/theme'; +import { createMarkdownTheme } from '#/tui/theme/pi-tui-theme'; +import { createMarkdownOptions } from '#/tui/utils/markdown-options'; +import { Markdown } from '#/tui/components/markdown/markdown'; import { printableChar } from '#/tui/utils/printable-key'; import { SearchableList } from '#/tui/utils/searchable-list'; @@ -39,14 +42,16 @@ export interface ChoicePickerOptions { readonly title: string; readonly hint?: string; readonly formatHint?: (text: string) => string; - readonly notice?: string; - /** Color tone for the notice line. Defaults to 'success'. */ + /** Plain text shown in `noticeTone`, or Markdown rendered with the Markdown theme. */ + readonly notice?: string | { readonly markdown: string }; + /** Color tone for a plain-text notice. Defaults to 'success'. */ readonly noticeTone?: 'success' | 'warning'; readonly options: readonly ChoiceOption[]; readonly currentValue?: string; readonly initialValue?: string; /** When true, typed characters filter the list (fuzzy) and a search line is shown. */ readonly searchable?: boolean; + readonly spaceSelect?: boolean; /** Items per page. Lists longer than this paginate. */ readonly pageSize?: number; readonly onSelect: (value: string) => void; @@ -119,10 +124,12 @@ export class ChoicePickerComponent extends Container implements Focusable { this.list.pageDown(); return; } - // Enter always selects. Space selects too — but only when the list is not - // searchable; in a searchable list a space must reach the query instead. + // Space confirmation is opt-out; searchable lists always route it to the query. const isSpace = matchesKey(data, Key.space) || printableChar(data) === ' '; - if (matchesKey(data, Key.enter) || (isSpace && this.opts.searchable !== true)) { + if ( + matchesKey(data, Key.enter) || + (isSpace && this.opts.searchable !== true && this.opts.spaceSelect !== false) + ) { const chosen = this.list.selected(); if (chosen !== undefined) this.opts.onSelect(chosen.value); return; @@ -157,10 +164,23 @@ export class ChoicePickerComponent extends Container implements Focusable { : this.opts.formatHint(` ${hintLine}`), ); } - if (this.opts.notice !== undefined) { + const notice = this.opts.notice; + if (typeof notice === 'object') { + const markdown = new Markdown( + notice.markdown, + 0, + 0, + createMarkdownTheme(), + undefined, + createMarkdownOptions(), + ); + lines.push(''); + lines.push(...markdown.render(Math.max(1, width - 1)).map((line) => ` ${line}`)); + } else if (notice !== undefined) { const tone = this.opts.noticeTone ?? 'success'; const noticeWidth = Math.max(1, width - 1); - for (const noticeLine of this.opts.notice.split(/\r?\n/)) { + lines.push(''); + for (const noticeLine of notice.split(/\r?\n/)) { for (const wrapped of wrapDescription(noticeLine, noticeWidth)) { lines.push(currentTheme.fg(tone, ` ${wrapped}`)); } diff --git a/apps/kimi-code/src/tui/components/dialogs/compaction.ts b/apps/kimi-code/src/tui/components/dialogs/compaction.ts index 52d8bb8ff..c941af923 100644 --- a/apps/kimi-code/src/tui/components/dialogs/compaction.ts +++ b/apps/kimi-code/src/tui/components/dialogs/compaction.ts @@ -120,6 +120,18 @@ export class CompactionComponent extends Container { this.ui?.requestRender(); } + hasHiddenContent(): boolean { + return this.summary !== undefined && this.summary.length > 0; + } + + isExpanded(): boolean { + return this.expanded; + } + + omitsExpandHint(): boolean { + return true; + } + private addSummaryChild(): void { if (this.summaryText !== undefined || this.summary === undefined || this.summary.length === 0) { return; diff --git a/apps/kimi-code/src/tui/components/dialogs/custom-registry-import.ts b/apps/kimi-code/src/tui/components/dialogs/custom-registry-import.ts index aa4aa910b..1d42ff26c 100644 --- a/apps/kimi-code/src/tui/components/dialogs/custom-registry-import.ts +++ b/apps/kimi-code/src/tui/components/dialogs/custom-registry-import.ts @@ -1,12 +1,13 @@ /** * CustomRegistryImportDialog — blue rounded box that collects a custom - * registry URL and a Bearer token before importing the registry's + * registry URL and an optional Bearer token before importing the registry's * provider entries. * * Geometry mirrors `ApiKeyInputDialogComponent` so the chrome stays * consistent with the API-key login flow. Two fields, switched with * Tab / Shift-Tab / Up / Down; Enter advances to the next field (and submits - * on the last field), Esc cancels. Both fields are required. + * on the last field), Esc cancels. Only the URL is required — public + * registries take an empty token. */ import { @@ -23,7 +24,7 @@ import { currentTheme } from '#/tui/theme'; export interface CustomRegistryImportValue { readonly url: string; - readonly apiKey: string; + readonly apiKey?: string; } export type CustomRegistryImportResult = @@ -31,9 +32,8 @@ export type CustomRegistryImportResult = | { readonly kind: 'cancel' }; const TITLE = 'Import custom provider registry'; -const SUBTITLE_DEFAULT = 'Paste an api.json URL and its Bearer token.'; +const SUBTITLE_DEFAULT = 'Paste an api.json URL; the Bearer token is optional.'; const SUBTITLE_URL_EMPTY = 'Registry URL cannot be empty.'; -const SUBTITLE_TOKEN_EMPTY = 'Bearer token cannot be empty.'; const FOOTER_NOT_LAST = 'Tab / ↑↓ to switch · Enter for next field · Esc to cancel'; const FOOTER_LAST = 'Tab / ↑↓ to switch · Enter to submit · Esc to cancel'; @@ -72,7 +72,7 @@ export class CustomRegistryImportDialogComponent extends Container implements Fo private readonly onDone: (result: CustomRegistryImportResult) => void; private activeField: FieldId = 'url'; private done = false; - private hint: 'none' | 'url-empty' | 'token-empty' = 'none'; + private hint: 'none' | 'url-empty' = 'none'; constructor( onDone: (result: CustomRegistryImportResult) => void, @@ -144,12 +144,7 @@ export class CustomRegistryImportDialogComponent extends Container implements Fo const border = (s: string): string => currentTheme.fg('primary', s); const titleStyled = currentTheme.boldFg('textStrong', TITLE); - const subtitleText = - this.hint === 'url-empty' - ? SUBTITLE_URL_EMPTY - : this.hint === 'token-empty' - ? SUBTITLE_TOKEN_EMPTY - : SUBTITLE_DEFAULT; + const subtitleText = this.hint === 'url-empty' ? SUBTITLE_URL_EMPTY : SUBTITLE_DEFAULT; const subtitleStyled = currentTheme.fg('textDim', subtitleText); const footerStyled = currentTheme.fg( 'textDim', @@ -157,7 +152,7 @@ export class CustomRegistryImportDialogComponent extends Container implements Fo ); const urlLabelText = 'Registry URL'; - const tokenLabelText = 'Bearer token'; + const tokenLabelText = 'Bearer token (optional)'; const urlLabelStyled = this.activeField === 'url' ? currentTheme.boldFg('accent', urlLabelText) @@ -233,14 +228,12 @@ export class CustomRegistryImportDialogComponent extends Container implements Fo this.activeField = 'url'; return; } - if (tokenValue.length === 0) { - this.hint = 'token-empty'; - this.activeField = 'token'; - return; - } this.done = true; - this.onDone({ kind: 'ok', value: { url: urlValue, apiKey: tokenValue } }); + this.onDone({ + kind: 'ok', + value: { url: urlValue, apiKey: tokenValue.length > 0 ? tokenValue : undefined }, + }); } private cancel(): void { diff --git a/apps/kimi-code/src/tui/components/dialogs/goal-start-permission-prompt.ts b/apps/kimi-code/src/tui/components/dialogs/goal-start-permission-prompt.ts index 873dcc2e6..ba8316cad 100644 --- a/apps/kimi-code/src/tui/components/dialogs/goal-start-permission-prompt.ts +++ b/apps/kimi-code/src/tui/components/dialogs/goal-start-permission-prompt.ts @@ -16,13 +16,13 @@ export const GOAL_START_MANUAL_OPTIONS: readonly StartPermissionOption[] = [ value: 'auto', label: 'Switch to Never Ask and start', description: - 'Best if you want Kimi Code to keep working while you are away. Tools are approved automatically, and questions are skipped.', + 'Best if you want Kimi Code to keep working while you are away. Tools are approved automatically and questions are skipped; only plans in Plan mode wait for your review.', }, { value: 'yolo', label: 'Switch to Ask When Needed and start', description: - 'Tools and plan changes are approved automatically. Kimi Code may still ask you questions.', + 'Tools are approved automatically. Kimi Code may still ask you questions.', }, { value: 'manual', @@ -42,13 +42,13 @@ export const GOAL_START_YOLO_OPTIONS: readonly StartPermissionOption[] = [ value: 'auto', label: 'Switch to Never Ask and start', description: - 'Best if you want Kimi Code to keep working while you are away. Tools are approved automatically, and questions are skipped.', + 'Best if you want Kimi Code to keep working while you are away. Tools are approved automatically and questions are skipped; only plans in Plan mode wait for your review.', }, { value: 'yolo', label: 'Keep Ask When Needed and start', description: - 'Tools and plan changes stay approved automatically. Kimi Code may still ask you questions.', + 'Tools stay approved automatically. Kimi Code may still ask you questions.', }, { value: 'cancel', @@ -72,7 +72,7 @@ const MANUAL_NOTICE_LINES = [ ] as const; const YOLO_NOTICE_LINES = [ - 'Ask When Needed mode approves tools and plan changes automatically.', + 'Ask When Needed mode approves tools automatically.', 'Ask When Needed mode can still stop for questions.', 'Switch to Never Ask if you want questions skipped during goal work.', ] as const; diff --git a/apps/kimi-code/src/tui/components/dialogs/mermaid-preference-selector.ts b/apps/kimi-code/src/tui/components/dialogs/mermaid-preference-selector.ts new file mode 100644 index 000000000..0dc9c410e --- /dev/null +++ b/apps/kimi-code/src/tui/components/dialogs/mermaid-preference-selector.ts @@ -0,0 +1,34 @@ +import { ChoicePickerComponent, type ChoiceOption } from './choice-picker'; + +const MERMAID_PREFERENCE_OPTIONS: readonly ChoiceOption[] = [ + { + value: 'on', + label: 'On', + description: 'Draw mermaid code blocks as diagrams in the terminal.', + }, + { + value: 'off', + label: 'Off', + description: 'Keep mermaid code blocks as highlighted source.', + }, +]; + +export interface MermaidPreferenceSelectorOptions { + readonly currentValue: boolean; + readonly onSelect: (value: boolean) => void; + readonly onCancel: () => void; +} + +export class MermaidPreferenceSelectorComponent extends ChoicePickerComponent { + constructor(opts: MermaidPreferenceSelectorOptions) { + super({ + title: 'Mermaid diagrams', + options: [...MERMAID_PREFERENCE_OPTIONS], + currentValue: opts.currentValue ? 'on' : 'off', + onSelect: (value) => { + opts.onSelect(value === 'on'); + }, + onCancel: opts.onCancel, + }); + } +} diff --git a/apps/kimi-code/src/tui/components/dialogs/model-switch-confirm-dialog.ts b/apps/kimi-code/src/tui/components/dialogs/model-switch-confirm-dialog.ts new file mode 100644 index 000000000..a5f772f0d --- /dev/null +++ b/apps/kimi-code/src/tui/components/dialogs/model-switch-confirm-dialog.ts @@ -0,0 +1,132 @@ +/** + * ModelSwitchConfirmDialog — cloud-gated confirmation shown when switching + * models in a session that already has conversation history: the accumulated + * context will be re-sent to a different model, so the prompt cache is lost + * and output quality may vary. Offers new session / compact / continue / + * cancel. + * + * The body hint comes from the matched `model_switch_confirm` rule (English + * arm over the built-in default); the title, option labels, and keyboard hint + * stay local per the DESIGN.md vocabulary. Layout mirrors the list-dialog + * spec: top border, title, hint, body line, then options with right-column + * descriptions. + */ + +import { + Container, + matchesKey, + Key, + truncateToWidth, + visibleWidth, + type Focusable, +} from '@moonshot-ai/pi-tui'; +import { SELECT_POINTER } from '#/tui/constant/symbols'; +import { currentTheme } from '#/tui/theme'; +import { SearchableList } from '#/tui/utils/searchable-list'; +import type { ModelSwitchAction } from '#/utils/model-switch-confirm-config'; + +const TITLE = 'Switch model?'; + +interface ModelSwitchOption { + readonly value: ModelSwitchAction; + readonly label: string; + readonly description?: string; +} + +const OPTIONS: readonly ModelSwitchOption[] = [ + { + value: 'new', + label: 'Start a new session', + description: 'No extra cost · best for a new task', + }, + { + value: 'compact', + label: 'Compact and continue', + description: 'Lower cost and better output quality when continuing this session', + }, + { + value: 'continue', + label: 'Continue as-is', + description: 'Output quality may suffer · cache loss may increase token usage', + }, + { value: 'cancel', label: 'Cancel', description: 'Stay on the current model' }, +]; + +export interface ModelSwitchConfirmDialogOptions { + /** Display name of the model in effect before the switch. */ + readonly fromModel: string; + /** Display name of the model the user is switching to. */ + readonly toModel: string; + /** Body text explaining the consequences of the switch; no body line when + * absent. */ + readonly hint?: string; + readonly onSelect: (action: ModelSwitchAction) => void; + readonly onCancel: () => void; +} + +export class ModelSwitchConfirmDialogComponent extends Container implements Focusable { + focused = false; + private readonly opts: ModelSwitchConfirmDialogOptions; + private readonly list: SearchableList; + + constructor(opts: ModelSwitchConfirmDialogOptions) { + super(); + this.opts = opts; + this.list = new SearchableList({ + items: OPTIONS, + toSearchText: (o) => o.label, + initialIndex: 0, + searchable: false, + }); + } + + handleInput(data: string): void { + if (matchesKey(data, Key.escape)) { + this.opts.onCancel(); + return; + } + if (matchesKey(data, Key.enter)) { + const chosen = this.list.selected(); + if (chosen !== undefined) this.opts.onSelect(chosen.value); + return; + } + this.list.handleKey(data); + } + + override render(width: number): string[] { + const view = this.list.view(); + const modelSuffix = `${this.opts.fromModel} → ${this.opts.toModel}`; + const lines: string[] = [ + currentTheme.fg('primary', '─'.repeat(width)), + currentTheme.boldFg('primary', ` ${TITLE}`) + + currentTheme.fg('textMuted', ` ${modelSuffix}`), + currentTheme.fg('textMuted', ' ↑↓ navigate · Enter select · Esc cancel'), + '', + ]; + if (this.opts.hint !== undefined) { + for (const hintLine of this.opts.hint.split(/\r\n|\r|\n/)) { + lines.push(currentTheme.fg('text', ` ${hintLine}`)); + } + } + + const maxLabelWidth = Math.max(...OPTIONS.map((o) => visibleWidth(o.label))); + for (let i = view.page.start; i < view.page.end; i++) { + const opt = view.items[i]!; + const isSelected = i === view.selectedIndex; + const pointer = isSelected ? SELECT_POINTER : ' '; + let line = currentTheme.fg(isSelected ? 'primary' : 'textDim', ` ${pointer} `); + line += isSelected + ? currentTheme.boldFg('primary', opt.label) + : currentTheme.fg('text', opt.label); + if (opt.description !== undefined) { + const gap = maxLabelWidth - visibleWidth(opt.label) + 4; + line += ' '.repeat(gap) + currentTheme.fg('textMuted', opt.description); + } + lines.push(line); + } + + lines.push(''); + lines.push(currentTheme.fg('primary', '─'.repeat(width))); + return lines.map((line) => truncateToWidth(line, width)); + } +} diff --git a/apps/kimi-code/src/tui/components/dialogs/plugins-selector.ts b/apps/kimi-code/src/tui/components/dialogs/plugins-selector.ts index f1384b86d..237ab78ad 100644 --- a/apps/kimi-code/src/tui/components/dialogs/plugins-selector.ts +++ b/apps/kimi-code/src/tui/components/dialogs/plugins-selector.ts @@ -41,7 +41,7 @@ const ELLIPSIS = '…'; const WEB_BRIDGE_URL = 'https://www.kimi.com/features/webbridge#local-agent'; const WEB_BRIDGE_ENTRY: PluginMarketplaceEntry = { id: 'kimi-webbridge', - displayName: 'Kimi WebBridge', + displayName: 'Kimi Browser Extension', source: WEB_BRIDGE_URL, tier: 'official', homepage: WEB_BRIDGE_URL, diff --git a/apps/kimi-code/src/tui/components/dialogs/settings-selector.ts b/apps/kimi-code/src/tui/components/dialogs/settings-selector.ts index 581407d57..ec0e3c950 100644 --- a/apps/kimi-code/src/tui/components/dialogs/settings-selector.ts +++ b/apps/kimi-code/src/tui/components/dialogs/settings-selector.ts @@ -3,6 +3,8 @@ import { ChoicePickerComponent, type ChoiceOption } from './choice-picker'; export type SettingsSelection = | 'model' | 'theme' + | 'tuiMode' + | 'mermaid' | 'editor' | 'permission' | 'survey' @@ -26,6 +28,16 @@ const SETTINGS_OPTIONS: readonly ChoiceOption[] = [ label: 'Theme', description: 'Change the terminal UI theme.', }, + { + value: 'tuiMode', + label: 'TUI mode', + description: 'Choose the regular or fullscreen layout.', + }, + { + value: 'mermaid', + label: 'Mermaid diagrams', + description: 'Draw mermaid code blocks as diagrams, or keep them as source.', + }, { value: 'editor', label: 'Editor', @@ -57,6 +69,8 @@ function isSettingsSelection(value: string): value is SettingsSelection { return ( value === 'model' || value === 'theme' || + value === 'tuiMode' || + value === 'mermaid' || value === 'editor' || value === 'permission' || value === 'survey' || diff --git a/apps/kimi-code/src/tui/components/dialogs/swarm-start-permission-prompt.ts b/apps/kimi-code/src/tui/components/dialogs/swarm-start-permission-prompt.ts index b0dd63072..40263159c 100644 --- a/apps/kimi-code/src/tui/components/dialogs/swarm-start-permission-prompt.ts +++ b/apps/kimi-code/src/tui/components/dialogs/swarm-start-permission-prompt.ts @@ -15,13 +15,13 @@ const OPTIONS: readonly StartPermissionOption[] = [ value: 'auto', label: 'Switch to Never Ask and start', description: - 'Best for swarm tasks. Tools are approved automatically, and questions are skipped.', + 'Best for swarm tasks. Tools are approved automatically and questions are skipped; only plans in Plan mode wait for your review.', }, { value: 'yolo', label: 'Switch to Ask When Needed and start', description: - 'Tools and plan changes are approved automatically. Kimi Code may still ask you questions.', + 'Tools are approved automatically. Kimi Code may still ask you questions.', }, { value: 'manual', diff --git a/apps/kimi-code/src/tui/components/dialogs/trust-prompt.ts b/apps/kimi-code/src/tui/components/dialogs/trust-prompt.ts index a42256a89..392e264ab 100644 --- a/apps/kimi-code/src/tui/components/dialogs/trust-prompt.ts +++ b/apps/kimi-code/src/tui/components/dialogs/trust-prompt.ts @@ -6,44 +6,32 @@ import { type Component, type Focusable, } from '@moonshot-ai/pi-tui'; - -import type { WorkspaceTrustMcpServerInfo } from '@moonshot-ai/kimi-code-sdk'; +import type { WorkspaceTrustInfo } from '@moonshot-ai/kimi-code-sdk'; import { SELECT_POINTER } from '#/tui/constant/symbols'; -import { currentTheme } from '#/tui/theme'; +import { currentTheme, type ColorToken } from '#/tui/theme'; +import { pageView } from '#/tui/utils/paging'; export type TrustPromptChoice = 'trust' | 'distrust'; export interface TrustPromptOptions { readonly workDir: string; - /** Project-level MCP servers that trusting would enable; may be empty. */ - readonly gatedMcpServers: readonly WorkspaceTrustMcpServerInfo[]; - /** Esc resolves to 'distrust' as well. */ + readonly info: WorkspaceTrustInfo; + readonly getAvailableRows?: () => number; readonly onSelect: (choice: TrustPromptChoice) => void; } -interface TrustPromptOption { - readonly value: TrustPromptChoice; - readonly label: string; - readonly description: string; -} - -const OPTIONS: readonly TrustPromptOption[] = [ - { - value: 'trust', - label: 'Trust this folder', - description: 'Enable project MCP servers. Remembered for this folder.', - }, - { - value: 'distrust', - label: "Don't trust", - description: 'Exit Kimi Code. Asked again next launch.', - }, +const OPTIONS: readonly { value: TrustPromptChoice; label: string }[] = [ + { value: 'trust', label: 'Trust and continue' }, + { value: 'distrust', label: 'Exit' }, ]; export class TrustPromptComponent implements Component, Focusable { focused = false; private selectedIndex = 0; + private disclosureIndex = 0; + private disclosurePageSize = 1; + private canConfirm = true; constructor(private readonly opts: TrustPromptOptions) {} @@ -62,73 +50,171 @@ export class TrustPromptComponent implements Component, Focusable { this.selectedIndex = Math.min(OPTIONS.length - 1, this.selectedIndex + 1); return; } - if (matchesKey(data, Key.enter) || matchesKey(data, Key.space)) { + const previousPage = matchesKey(data, Key.left) || matchesKey(data, Key.pageUp); + const nextPage = matchesKey(data, Key.right) || matchesKey(data, Key.pageDown); + if (previousPage || nextPage) { + this.disclosureIndex = Math.max( + 0, + this.disclosureIndex + (previousPage ? -1 : 1) * this.disclosurePageSize, + ); + return; + } + if (this.canConfirm && (matchesKey(data, Key.enter) || matchesKey(data, Key.space))) { this.opts.onSelect(OPTIONS[this.selectedIndex]!.value); } } render(width: number): string[] { const rule = currentTheme.fg('primary', '─'.repeat(width)); - const lines = [ + const availableRows = Math.max(0, Math.floor(this.opts.getAvailableRows?.() ?? Infinity)); + const header = [ rule, currentTheme.boldFg('primary', ' Trust this folder?'), currentTheme.fg('textMuted', ' ↑↓ navigate · Enter select · Esc exit'), '', - ...wrapTextWithAnsi(this.opts.workDir, Math.max(20, width - 2)).map( - (line) => ` ${currentTheme.fg('textStrong', line)}`, - ), - '', ]; - - const notice = - 'Project-level MCP servers are disabled until you explicitly choose Trust. Trust starts the listed project MCP targets and remembers this folder.'; - for (const line of wrapTextWithAnsi(notice, Math.max(20, width - 2))) { - lines.push(` ${currentTheme.fg('textMuted', line)}`); + const body = [ + ...wrap(this.opts.workDir, 1, width, 'textStrong'), + '', + ...this.renderDisclosure(width), + ]; + const footer = [ + ...wrap( + 'Trust is remembered for this folder, including future project config changes.', + 1, + width, + 'textMuted', + ), + ...wrap('Tool approvals follow your permission settings.', 1, width, 'textMuted'), + '', + ...OPTIONS.map((option, i) => { + const selected = i === this.selectedIndex; + const pointer = selected ? SELECT_POINTER : ' '; + const label = selected + ? currentTheme.boldFg('primary', option.label) + : currentTheme.fg('text', option.label); + return currentTheme.fg(selected ? 'primary' : 'textDim', ` ${pointer} `) + label; + }), + rule, + ]; + this.canConfirm = header.length + footer.length + 2 <= availableRows; + if (!this.canConfirm) { + return [header[1]!, ' Enlarge terminal to review sources. Esc exit.'] + .slice(0, availableRows) + .map((line) => truncateToWidth(line, width)); } - if (this.opts.gatedMcpServers.length > 0) { - lines.push(` ${currentTheme.fg('warning', 'Project MCP targets:')}`); - for (const server of this.opts.gatedMcpServers) { - const details = formatMcpTarget(server); - for (const line of wrapTextWithAnsi(details, Math.max(20, width - 4))) { - lines.push(` ${currentTheme.fg('warning', line)}`); - } - } - } - lines.push(''); + const needsPaging = header.length + body.length + footer.length > availableRows; + this.disclosurePageSize = needsPaging + ? availableRows - header.length - footer.length - 1 + : body.length; + const page = pageView(body.length, this.disclosureIndex, this.disclosurePageSize); + this.disclosureIndex = page.start; + const lines = [...header, ...body.slice(page.start, page.end)]; + while (lines.length < header.length + this.disclosurePageSize) lines.push(''); + if (page.pageCount > 1) + lines.push(currentTheme.fg('textMuted', ` ←→ page · ${page.page + 1} / ${page.pageCount}`)); + lines.push(...footer); + return lines.map((line) => truncateToWidth(line, width)); + } - for (let i = 0; i < OPTIONS.length; i += 1) { - const option = OPTIONS[i]!; - const selected = i === this.selectedIndex; - const pointer = selected ? SELECT_POINTER : ' '; - const label = selected - ? currentTheme.boldFg('primary', option.label) - : currentTheme.fg('text', option.label); - lines.push(currentTheme.fg(selected ? 'primary' : 'textDim', ` ${pointer} `) + label); - for (const line of wrapTextWithAnsi(option.description, Math.max(20, width - 4))) { - lines.push(` ${currentTheme.fg('textMuted', line)}`); + private renderDisclosure(width: number): string[] { + const { + gatedMcpServers, + gatedAdditionalDirs, + additionalDirSources, + instructionSources, + warnings, + } = this.opts.info; + const lines: string[] = []; + if (gatedMcpServers.length > 0) { + lines.push( + ...wrap( + `Start ${gatedMcpServers.length} MCP ${ + gatedMcpServers.length === 1 ? 'server' : 'servers' + } automatically`, + 1, + width, + 'warning', + ), + ); + const origins = [...new Set(gatedMcpServers.map((server) => server.origin))]; + lines.push( + ...wrap( + `Config: ${origins.map((path) => relativize(this.opts.workDir, path)).join(', ')}`, + 3, + width, + 'textMuted', + ), + '', + ); + } + if (gatedAdditionalDirs.length > 0) { + lines.push( + ...wrap( + `Access ${gatedAdditionalDirs.length} ${ + gatedAdditionalDirs.length === 1 ? 'folder' : 'folders' + } outside this project`, + 1, + width, + 'warning', + ), + ); + if (additionalDirSources.length > 0) { + lines.push( + ...wrap( + `Config: ${additionalDirSources + .map((path) => relativize(this.opts.workDir, path)) + .join(', ')}`, + 3, + width, + 'textMuted', + ), + ); } lines.push(''); } - - lines.push(rule); - return lines.map((line) => truncateToWidth(line, width)); + if (instructionSources.paths.length > 0) { + const hasInstructions = + instructionSources.agentsMdPaths.length > 0 || instructionSources.skills.length > 0; + const subject = hasInstructions + ? instructionSources.agentProfiles.length > 0 + ? 'instructions and agent profiles' + : 'instructions' + : 'agent profiles'; + lines.push(...wrap(`Load project ${subject}`, 1, width, 'text')); + lines.push( + ...wrap( + `Check: ${instructionSources.paths.map((path) => relativize(this.opts.workDir, path)).join(' · ')}`, + 3, + width, + 'textMuted', + ), + '', + ); + } + for (const warning of warnings) lines.push(...wrap(warning, 1, width, 'warning')); + if (lines.length === 0) + lines.push( + ...wrap('No project integrations or instructions to activate.', 1, width, 'textMuted'), + '', + ); + return lines; } } -function formatMcpTarget(server: WorkspaceTrustMcpServerInfo): string { - if (server.transport === 'stdio') { - const args = server.args === undefined ? '' : ` args=${JSON.stringify(server.args)}`; - const cwd = server.cwd === undefined ? '' : ` cwd=${server.cwd}`; - return sanitizeForDisplay(`${server.name} (stdio): command=${server.command ?? ''}${args}${cwd}`); - } - return sanitizeForDisplay(`${server.name} (${server.transport}): url=${server.url ?? ''}`); +function wrap(text: string, indent: number, width: number, color: ColorToken): string[] { + return wrapTextWithAnsi(sanitizeForDisplay(text), Math.max(1, width - indent)).map( + (line) => `${' '.repeat(indent)}${currentTheme.fg(color, line)}`, + ); +} + +function relativize(workDir: string, path: string): string { + const normalizedDir = workDir.replaceAll('\\', '/'); + const normalizedPath = path.replaceAll('\\', '/'); + const prefix = normalizedDir.endsWith('/') ? normalizedDir : `${normalizedDir}/`; + return normalizedPath.startsWith(prefix) ? normalizedPath.slice(prefix.length) : normalizedPath; } -/** - * Drops C0/C1 control characters (including ESC) from workspace-supplied text: - * the trust prompt renders before the workspace is trusted, so a planted - * `.mcp.json` must not inject terminal control sequences into it. - */ function sanitizeForDisplay(value: string): string { let result = ''; for (const char of value) { diff --git a/apps/kimi-code/src/tui/components/dialogs/tui-mode-selector.ts b/apps/kimi-code/src/tui/components/dialogs/tui-mode-selector.ts new file mode 100644 index 000000000..fe1e3e7ff --- /dev/null +++ b/apps/kimi-code/src/tui/components/dialogs/tui-mode-selector.ts @@ -0,0 +1,35 @@ +import type { TuiMode } from '../../config'; +import { ChoicePickerComponent, type ChoiceOption } from './choice-picker'; + +const TUI_MODE_OPTIONS: readonly ChoiceOption[] = [ + { + value: 'regular', + label: 'Regular', + description: 'Render into the terminal\'s native scrollback.', + }, + { + value: 'fullscreen', + label: 'Fullscreen (experimental)', + description: 'Alternate screen with in-app scrolling, selection, and transcript search.', + }, +]; + +export interface TuiModeSelectorOptions { + readonly currentValue: TuiMode; + readonly onSelect: (value: TuiMode) => void; + readonly onCancel: () => void; +} + +export class TuiModeSelectorComponent extends ChoicePickerComponent { + constructor(opts: TuiModeSelectorOptions) { + super({ + title: 'TUI mode', + options: [...TUI_MODE_OPTIONS], + currentValue: opts.currentValue, + onSelect: (value) => { + if (value === 'regular' || value === 'fullscreen') opts.onSelect(value); + }, + onCancel: opts.onCancel, + }); + } +} diff --git a/apps/kimi-code/src/tui/components/editor/file-mention-provider.ts b/apps/kimi-code/src/tui/components/editor/file-mention-provider.ts index daf72ca64..bbe14a836 100644 --- a/apps/kimi-code/src/tui/components/editor/file-mention-provider.ts +++ b/apps/kimi-code/src/tui/components/editor/file-mention-provider.ts @@ -307,10 +307,27 @@ export class FileMentionProvider implements AutocompleteProvider { // it, no second `/`) and prepends another `/`, producing e.g. // `//Applications/ ` with a trailing space that also blocks further // completion. Handle path completion ourselves so the value replaces the - // prefix verbatim. `@` mentions keep pi-tui's behaviour. + // prefix verbatim. if (this.getInputMode() === 'bash' && prefix.startsWith('/')) { return applyPathCompletion(lines, cursorLine, cursorCol, item, prefix); } + // Editor caches suggestions.prefix across in-flight refreshes. Re-cut the + // live `@` token so Tab/Enter does not splice a second `@` onto a stale range. + // Only mention pickers have a prefix that starts with `@`. Path/slash lists + // can still be visible after the user types `@`, including a `@scope/` entry. + if (prefix.startsWith('@')) { + const currentLine = lines[cursorLine] ?? ''; + const textBeforeCursor = currentLine.slice(0, cursorCol); + const livePrefix = extractAtPrefix(textBeforeCursor); + if (livePrefix === null) { + return { lines, cursorLine, cursorCol }; + } + const applyItem = + livePrefix.startsWith('@"') && item.value.startsWith('@') && !item.value.startsWith('@"') + ? { ...item, value: `@"${item.value.slice(1)}"` } + : item; + return this.inner.applyCompletion(lines, cursorLine, cursorCol, applyItem, livePrefix); + } return this.inner.applyCompletion(lines, cursorLine, cursorCol, item, prefix); } } @@ -342,6 +359,9 @@ export function extractInlineSkillPrefix(text: string, cursorLine: number = 0): } export function extractAtPrefix(text: string): string | null { + const quotedPrefix = extractQuotedAtPrefix(text); + if (quotedPrefix !== null) return quotedPrefix; + let tokenStart = 0; for (let i = text.length - 1; i >= 0; i -= 1) { if (PATH_DELIMITERS.has(text[i] ?? '')) { @@ -353,6 +373,21 @@ export function extractAtPrefix(text: string): string | null { return text.slice(tokenStart); } +function extractQuotedAtPrefix(text: string): string | null { + let inQuotes = false; + let quoteStart = -1; + for (let i = 0; i < text.length; i += 1) { + if (text[i] === '"') { + inQuotes = !inQuotes; + if (inQuotes) quoteStart = i; + } + } + if (!inQuotes || quoteStart <= 0 || text[quoteStart - 1] !== '@') return null; + const atIndex = quoteStart - 1; + if (atIndex > 0 && !PATH_DELIMITERS.has(text[atIndex - 1] ?? '')) return null; + return text.slice(atIndex); +} + function isExecutableFd(fdPath: string): boolean { // Bare command names (for example "fd" discovered on the system PATH) are // trusted: spawn resolves them through PATH. Only absolute/relative paths are @@ -418,7 +453,8 @@ function getFsMentionSuggestions( ): AutocompleteSuggestions | null { if (signal.aborted) return null; - const query = atPrefix.slice(1); + const isQuotedPrefix = atPrefix.startsWith('@"'); + const query = isQuotedPrefix ? atPrefix.slice(2) : atPrefix.slice(1); const candidates = collectFsMentionCandidates(workDir, additionalDirs, signal); if (candidates.length === 0 || signal.aborted) return null; @@ -427,7 +463,7 @@ function getFsMentionSuggestions( return { prefix: atPrefix, - items: ranked.map(toMentionItem), + items: ranked.map((candidate) => toMentionItem(candidate, isQuotedPrefix)), }; } @@ -536,9 +572,10 @@ function scoreCandidate(candidate: FsMentionCandidate, lowerQuery: string): numb return score; } -function toMentionItem(candidate: FsMentionCandidate): AutocompleteItem { +function toMentionItem(candidate: FsMentionCandidate, isQuotedPrefix: boolean): AutocompleteItem { const valuePath = candidate.isDirectory ? `${candidate.path}/` : candidate.path; - const value = valuePath.includes(' ') ? `@"${valuePath}"` : `@${valuePath}`; + const value = + isQuotedPrefix || valuePath.includes(' ') ? `@"${valuePath}"` : `@${valuePath}`; const label = `${basename(candidate.path)}${candidate.isDirectory ? '/' : ''}`; return { value, diff --git a/apps/kimi-code/src/tui/components/markdown/markdown.ts b/apps/kimi-code/src/tui/components/markdown/markdown.ts new file mode 100644 index 000000000..01bd53fad --- /dev/null +++ b/apps/kimi-code/src/tui/components/markdown/markdown.ts @@ -0,0 +1,170 @@ +import { + Container, + Marked, + Markdown as PiMarkdown, + Spacer, + type DefaultTextStyle, + type MarkdownOptions, + type MarkdownTheme, + type TuiMouseDispatchResult, + type TuiMouseEvent, +} from '@moonshot-ai/pi-tui'; + +import type { KimiMarkdownTheme } from '#/tui/theme/pi-tui-theme'; +import { getMarkdownMermaidMode, type MermaidRenderMode } from '#/tui/utils/markdown-options'; + +import { MermaidBlock } from './mermaid-block'; + +export interface KimiMarkdownOptions extends MarkdownOptions { + copySource?: boolean; + onVisualStateChange?: () => void; +} + +type MermaidSegment = + | { kind: 'prose'; source: string; spacedBefore: boolean } + | { kind: 'mermaid'; body: string; raw: string; spacedBefore: boolean }; + +const markdownParser = new Marked(); + +function splitMermaidSegments(source: string): MermaidSegment[] { + const segments: MermaidSegment[] = []; + let prose = ''; + let proseSpacedBefore = true; + let previousWasSpace = true; + for (const token of markdownParser.lexer(source)) { + if (token.type === 'code' && isMermaidInfoString(token.lang)) { + if (prose !== '') { + segments.push({ kind: 'prose', source: prose, spacedBefore: proseSpacedBefore }); + prose = ''; + } + segments.push({ + kind: 'mermaid', + body: token.text, + raw: token.raw, + spacedBefore: previousWasSpace, + }); + previousWasSpace = false; + continue; + } + if (prose === '') { + proseSpacedBefore = previousWasSpace || token.type === 'space'; + } + prose += token.raw; + previousWasSpace = token.type === 'space'; + } + if (prose !== '') { + segments.push({ kind: 'prose', source: prose, spacedBefore: proseSpacedBefore }); + } + return segments; +} + +function isMermaidInfoString(lang: string | undefined): boolean { + return lang?.trim().split(/\s+/)[0]?.toLowerCase() === 'mermaid'; +} + +interface MarkdownStructure { + text: string; + mode: MermaidRenderMode; + transient: boolean; +} + +export class Markdown extends Container { + private sourceText: string; + private readonly paddingX: number; + private readonly paddingY: number; + private readonly theme: MarkdownTheme; + private readonly defaultTextStyle?: DefaultTextStyle; + private readonly options: KimiMarkdownOptions; + private structure: MarkdownStructure | undefined; + + constructor( + text: string, + paddingX: number, + paddingY: number, + theme: MarkdownTheme, + defaultTextStyle?: DefaultTextStyle, + options?: KimiMarkdownOptions, + ) { + super(); + this.sourceText = text; + this.paddingX = paddingX; + this.paddingY = paddingY; + this.theme = theme; + this.defaultTextStyle = defaultTextStyle; + this.options = options ? { ...options } : {}; + } + + setText(text: string): void { + this.sourceText = text; + this.invalidate(); + } + + override invalidate(): void { + this.structure = undefined; + super.invalidate(); + } + + override render(width: number): string[] { + if (this.sourceText.trim() === '') return []; + this.ensureStructure(); + const lines = super.render(width); + if (this.paddingY === 0) return lines; + const bgFn = this.defaultTextStyle?.bgColor; + const empty = ' '.repeat(Math.max(0, width)); + const margins = Array.from({ length: this.paddingY }, () => (bgFn ? bgFn(empty) : empty)); + return [...margins, ...lines, ...margins]; + } + + override handleMouse(event: TuiMouseEvent): TuiMouseDispatchResult | undefined { + if (this.paddingY === 0) return super.handleMouse(event); + if (event.y < this.paddingY) return undefined; + return super.handleMouse({ + ...event, + y: event.y - this.paddingY, + height: event.height - this.paddingY * 2, + }); + } + + private ensureStructure(): void { + const mode = getMarkdownMermaidMode(); + const transient = (this.theme as KimiMarkdownTheme).transient === true; + if ( + this.structure !== undefined && + this.structure.text === this.sourceText && + this.structure.mode === mode && + this.structure.transient === transient + ) { + return; + } + this.structure = { text: this.sourceText, mode, transient }; + this.clear(); + if (mode === 'off' || transient) { + this.addChild( + new PiMarkdown( + this.sourceText, + this.paddingX, + 0, + this.theme, + this.defaultTextStyle, + this.options, + ), + ); + return; + } + for (const [index, segment] of splitMermaidSegments(this.sourceText).entries()) { + if (index > 0 && !segment.spacedBefore) this.addChild(new Spacer(1)); + this.addChild( + segment.kind === 'prose' + ? new PiMarkdown( + segment.source, + this.paddingX, + 0, + this.theme, + this.defaultTextStyle, + this.options, + ) + : new MermaidBlock(segment.body, segment.raw, this.paddingX, this.theme, this.options), + ); + } + } +} diff --git a/apps/kimi-code/src/tui/components/markdown/mermaid-art.ts b/apps/kimi-code/src/tui/components/markdown/mermaid-art.ts new file mode 100644 index 000000000..96a7259d6 --- /dev/null +++ b/apps/kimi-code/src/tui/components/markdown/mermaid-art.ts @@ -0,0 +1,79 @@ +import { diagramKind, render, type DiagramKind, type MermaidArt, type Role } from 'lovely-mermaid'; + +import { currentTheme } from '#/tui/theme'; + +export type MermaidDrawResult = + | { status: 'ok'; art: MermaidArt | null } + | { status: 'error' }; + +export function drawMermaid(source: string): MermaidDrawResult { + try { + return { status: 'ok', art: render(source) }; + } catch { + return { status: 'error' }; + } +} + +export const COULD_NOT_DRAW_MESSAGE = 'could not draw this mermaid diagram'; + +export function undrawnDiagramReason(source: string): string { + if (safeDiagramKind(source) !== null) return COULD_NOT_DRAW_MESSAGE; + const identifier = firstDiagramIdentifier(source); + return identifier === undefined + ? COULD_NOT_DRAW_MESSAGE + : `${identifier} diagrams are not drawn in the terminal`; +} + +function safeDiagramKind(source: string): DiagramKind | null { + try { + return diagramKind(source); + } catch { + return null; + } +} + +const DIAGRAM_IDENTIFIER = /[A-Za-z][A-Za-z0-9_-]*/; + +function firstDiagramIdentifier(source: string): string | undefined { + const lines = source.split('\n'); + let index = 0; + const skippable = (): boolean => { + const line = lines[index]?.trim() ?? ''; + return line === '' || line.startsWith('%%'); + }; + while (index < lines.length && skippable()) index++; + if (lines[index]?.trim() === '---') { + index++; + while (index < lines.length && lines[index]?.trim() !== '---') index++; + index++; + } + while (index < lines.length && skippable()) index++; + return DIAGRAM_IDENTIFIER.exec(lines[index] ?? '')?.[0]; +} + +export function colorMermaidArt(art: MermaidArt): string[] { + return art.styled.map((spans) => { + const end = spans.findLastIndex((span) => span.role !== 'none') + 1; + return spans + .slice(0, end) + .map((span) => colorMermaidSpan(span.text, span.role)) + .join(''); + }); +} + +function colorMermaidSpan(text: string, role: Role): string { + switch (role) { + case 'border': + return currentTheme.fg('border', text); + case 'text': + return currentTheme.fg('text', text); + case 'edge': + return currentTheme.fg('accent', text); + case 'edgeLabel': + return currentTheme.fg('textMuted', text); + case 'title': + return currentTheme.boldFg('accent', text); + case 'none': + return text; + } +} diff --git a/apps/kimi-code/src/tui/components/markdown/mermaid-block.ts b/apps/kimi-code/src/tui/components/markdown/mermaid-block.ts new file mode 100644 index 000000000..70e6d4405 --- /dev/null +++ b/apps/kimi-code/src/tui/components/markdown/mermaid-block.ts @@ -0,0 +1,171 @@ +import { + Markdown as PiMarkdown, + truncateToWidth, + visibleWidth, + type Component, + type MarkdownTheme, + type TuiMouseEvent, + type TuiMouseEventResult, +} from '@moonshot-ai/pi-tui'; + +import { currentTheme } from '#/tui/theme'; +import type { KimiMarkdownOptions } from '#/tui/components/markdown/markdown'; +import { + isMarkdownAltScreenActive, + requestMarkdownRender, +} from '#/tui/utils/markdown-options'; +import { copyTextToClipboard } from '#/utils/clipboard/clipboard-text'; + +import { colorMermaidArt, COULD_NOT_DRAW_MESSAGE, drawMermaid, undrawnDiagramReason } from './mermaid-art'; + +const COPY_SOURCE_LABEL = '[Copy Source]'; +const COPIED_LABEL = '[Copied]'; +const COPY_FAILED_LABEL = '[Copy failed]'; +const COPIED_REVERT_MS = 1500; + +type CopyState = 'idle' | 'copied' | 'failed'; + +export class MermaidBlock implements Component { + private copyState: CopyState = 'idle'; + private pressed = false; + private copyRevertTimer: ReturnType | undefined; + private codeMarkdown: PiMarkdown | undefined; + private layout: + | { + width: number; + copyState: CopyState; + pressed: boolean; + showButton: boolean; + lines: string[]; + } + | undefined; + + constructor( + private readonly fenceBody: string, + private readonly fenceRaw: string, + private readonly paddingX: number, + private readonly theme: MarkdownTheme, + private readonly options: KimiMarkdownOptions, + ) {} + + invalidate(): void { + this.layout = undefined; + this.codeMarkdown = undefined; + } + + render(width: number): string[] { + const showButton = this.showsCopyButton(); + if ( + this.layout !== undefined && + this.layout.width === width && + this.layout.copyState === this.copyState && + this.layout.pressed === this.pressed && + this.layout.showButton === showButton + ) { + return this.layout.lines; + } + + const contentWidth = Math.max(1, width - this.paddingX * 2); + const content: string[] = []; + const draw = drawMermaid(this.fenceBody); + if (draw.status === 'ok' && draw.art !== null && draw.art.width <= contentWidth) { + content.push(...colorMermaidArt(draw.art)); + } else { + const reason = + draw.status === 'error' + ? COULD_NOT_DRAW_MESSAGE + : draw.art !== null + ? `mermaid diagram too wide to render (needs ${draw.art.width} columns)` + : undrawnDiagramReason(this.fenceBody); + content.push(currentTheme.fg('warning', truncateToWidth(reason, contentWidth, '…'))); + this.codeMarkdown ??= new PiMarkdown(this.fenceRaw, 0, 0, this.theme, undefined, this.options); + content.push(...this.codeMarkdown.render(contentWidth)); + } + if (showButton) { + const label = truncateToWidth(this.copyLabel(), contentWidth, '…'); + content.push(this.styledCopyLabel(label)); + } + + const leftMargin = ' '.repeat(this.paddingX); + const rightMargin = ' '.repeat(this.paddingX); + const lines = content.map((line) => { + const withMargins = leftMargin + line + rightMargin; + return withMargins + ' '.repeat(Math.max(0, width - visibleWidth(withMargins))); + }); + this.layout = { width, copyState: this.copyState, pressed: this.pressed, showButton, lines }; + return lines; + } + + handleMouse(event: TuiMouseEvent): TuiMouseEventResult | undefined { + if (!this.showsCopyButton()) return undefined; + const lines = this.render(event.width); + if (lines.length === 0) return undefined; + const label = truncateToWidth(this.copyLabel(), Math.max(1, event.width - this.paddingX * 2), '…'); + const x = event.x - this.paddingX; + const onLabel = event.y === lines.length - 1 && x >= 0 && x < visibleWidth(label); + + if (event.type === 'press') { + if (!onLabel || event.button !== 'left') return undefined; + this.pressed = true; + this.options.onVisualStateChange?.(); + return { capture: true, render: true }; + } + if (event.type === 'drag') { + return this.pressed ? { handled: true } : undefined; + } + if (event.type === 'release') { + if (!this.pressed) return undefined; + this.pressed = false; + this.options.onVisualStateChange?.(); + if (onLabel) this.copySource(); + return { handled: true, render: true }; + } + return undefined; + } + + private showsCopyButton(): boolean { + return this.options.copySource === true && isMarkdownAltScreenActive(); + } + + private styledCopyLabel(label: string): string { + if (this.copyState === 'copied') { + return currentTheme.fg('success', label); + } + if (this.copyState === 'failed') { + return currentTheme.fg('warning', label); + } + if (this.pressed) { + return currentTheme.boldFg('accent', label); + } + return currentTheme.fg('accent', label); + } + + private copyLabel(): string { + if (this.copyState === 'copied') return COPIED_LABEL; + if (this.copyState === 'failed') return COPY_FAILED_LABEL; + return COPY_SOURCE_LABEL; + } + + private copySource(): void { + void copyTextToClipboard(this.fenceBody).then( + () => { + this.copyState = 'copied'; + this.options.onVisualStateChange?.(); + requestMarkdownRender(); + if (this.copyRevertTimer !== undefined) clearTimeout(this.copyRevertTimer); + this.copyRevertTimer = setTimeout(() => { + this.copyRevertTimer = undefined; + this.copyState = 'idle'; + this.options.onVisualStateChange?.(); + requestMarkdownRender(); + }, COPIED_REVERT_MS); + this.copyRevertTimer.unref?.(); + }, + () => { + this.copyState = 'failed'; + this.options.onVisualStateChange?.(); + requestMarkdownRender(); + }, + ); + } +} diff --git a/apps/kimi-code/src/tui/components/messages/agent-swarm-progress-estimator.ts b/apps/kimi-code/src/tui/components/messages/agent-swarm-progress-estimator.ts index 64343f9d0..c61a6dc64 100644 --- a/apps/kimi-code/src/tui/components/messages/agent-swarm-progress-estimator.ts +++ b/apps/kimi-code/src/tui/components/messages/agent-swarm-progress-estimator.ts @@ -78,6 +78,8 @@ export class AgentSwarmProgressEstimator { private readonly workloadSpreadFactor: number; private readonly unfinishedProgressCap: number; private readonly maxBoostGain: number; + private samplesVersion = 0; + private priorCache: { readonly version: number; readonly prior: EstimatePrior | undefined } | undefined; constructor(options: AgentSwarmProgressEstimatorOptions = {}) { this.rateWindowMs = positiveOrDefault(options.rateWindowMs, DEFAULT_RATE_WINDOW_MS); @@ -102,7 +104,10 @@ export class AgentSwarmProgressEstimator { removeMissingMembers(memberKeys: readonly string[]): void { const live = new Set(memberKeys); for (const memberKey of this.members.keys()) { - if (!live.has(memberKey)) this.members.delete(memberKey); + if (!live.has(memberKey)) { + this.members.delete(memberKey); + this.samplesVersion += 1; + } } } @@ -115,6 +120,7 @@ export class AgentSwarmProgressEstimator { } delete state.terminalAtMs; delete state.terminalKind; + this.samplesVersion += 1; } markQueued(memberKey: string, nowMs: number): void { @@ -141,6 +147,7 @@ export class AgentSwarmProgressEstimator { state.displayTicks = Math.max(state.displayTicks + 1, state.rawTicks); delete state.terminalAtMs; delete state.terminalKind; + this.samplesVersion += 1; return { accepted: true, rawTicks: state.rawTicks }; } @@ -254,6 +261,7 @@ export class AgentSwarmProgressEstimator { state.terminalKind = terminalKind; state.displayTicks = Math.max(state.displayTicks, state.rawTicks); delete state.lastTargetTicks; + this.samplesVersion += 1; } private startWork(state: MemberProgressState, nowMs: number): void { @@ -291,6 +299,17 @@ export class AgentSwarmProgressEstimator { } private buildPrior(): EstimatePrior | undefined { + const cache = this.priorCache; + if (cache !== undefined && cache.version === this.samplesVersion) return cache.prior; + // The prior depends only on completed members' terminal samples, so it is + // reused across every estimate until a mutation bumps the sample version + // instead of being rebuilt per running cell per frame. + const prior = this.computePrior(); + this.priorCache = { version: this.samplesVersion, prior }; + return prior; + } + + private computePrior(): EstimatePrior | undefined { const samples = this.completedSamples(); if (samples.length === 0) return undefined; return { diff --git a/apps/kimi-code/src/tui/components/messages/agent-swarm-progress.ts b/apps/kimi-code/src/tui/components/messages/agent-swarm-progress.ts index c9d3909f2..3b8a7cc20 100644 --- a/apps/kimi-code/src/tui/components/messages/agent-swarm-progress.ts +++ b/apps/kimi-code/src/tui/components/messages/agent-swarm-progress.ts @@ -3,12 +3,18 @@ import chalk from 'chalk'; import { AgentSwarmProgressEstimator, + type AgentSwarmProgressEstimate, type AgentSwarmProgressEstimatorPhase, } from '#/tui/components/messages/agent-swarm-progress-estimator'; +import { + MAX_FINAL_OUTPUT_LABEL_CHARS, + MAX_FINAL_OUTPUT_LABEL_CODE_UNITS, +} from '#/tui/constant/rendering'; import { FAILURE_MARK, SUCCESS_MARK } from '#/tui/constant/symbols'; import { currentTheme } from '#/tui/theme'; import type { ColorPalette } from '#/tui/theme/colors'; import { gradientText } from '#/tui/theme/gradient-text'; +import { isRenderCacheEnabled } from '#/tui/utils/render-cache'; const TEXT_CELL_PREFERRED_WIDTH = 30; const CELL_GAP = ' '; @@ -122,6 +128,14 @@ interface AgentSwarmMember { suspendedReason?: string; completedAtMs?: number; failedAtMs?: number; + cellCache?: AgentSwarmCellCache; +} + +type AgentSwarmCellCacheKey = readonly (string | number | boolean | ColorPalette | undefined)[]; + +interface AgentSwarmCellCache { + readonly key: AgentSwarmCellCacheKey; + readonly value: string; } interface AgentSwarmSnapshot { @@ -152,6 +166,14 @@ interface AgentSwarmSummary { readonly cancelled: number; } +interface AgentSwarmRenderCache { + readonly outerWidth: number; + readonly version: number; + readonly palette: ColorPalette; + readonly gridHeight: number | undefined; + readonly lines: string[]; +} + export interface AgentSwarmGridLayoutInput { readonly width: number; readonly height: number; @@ -186,6 +208,7 @@ const PHASE_LABELS: Record = { export class AgentSwarmProgressComponent implements Component { private members: AgentSwarmMember[]; + private readonly membersByAgentId = new Map(); private readonly progressEstimator = new AgentSwarmProgressEstimator(); private description: string; private readonly requestRender: (() => void) | undefined; @@ -200,6 +223,8 @@ export class AgentSwarmProgressComponent implements Component { private promptTemplateText = ''; private activitySpinnerText: (() => string) | undefined; private timer: ReturnType | undefined; + private renderVersion = 0; + private renderCache: AgentSwarmRenderCache | undefined; constructor(options: AgentSwarmProgressOptions) { this.description = options.description; @@ -219,11 +244,19 @@ export class AgentSwarmProgressComponent implements Component { this.timer = undefined; } - invalidate(): void {} + invalidate(): void { + this.renderCache = undefined; + for (const member of this.members) delete member.cellCache; + } + + private markDirty(): void { + this.renderVersion += 1; + } setActivitySpinnerText(provider: (() => string) | undefined): void { if (!this.toolCallActive) return; this.activitySpinnerText = provider; + this.markDirty(); } /** @@ -234,6 +267,7 @@ export class AgentSwarmProgressComponent implements Component { setModelDisplay(modelDisplay: string): void { if (this.modelDisplay.length > 0 || modelDisplay.length === 0) return; this.modelDisplay = modelDisplay; + this.markDirty(); } /** @@ -244,11 +278,13 @@ export class AgentSwarmProgressComponent implements Component { setEffortDisplay(effortDisplay: string): void { if (this.effortDisplay.length > 0 || effortDisplay.length === 0) return; this.effortDisplay = effortDisplay; + this.markDirty(); } markToolCallEnded(): void { this.toolCallActive = false; this.activitySpinnerText = undefined; + this.markDirty(); } isToolCallActive(): boolean { @@ -296,6 +332,7 @@ export class AgentSwarmProgressComponent implements Component { const itemCount = Math.max(fullRows.length, partialRows.length); if (itemCount > 0) this.ensureMemberCount(itemCount); this.updateItemTexts(fullRows, partialRows); + this.markDirty(); } markInputComplete(): void { @@ -304,6 +341,7 @@ export class AgentSwarmProgressComponent implements Component { for (const member of this.members) { if (member.phase === 'pending') member.phase = 'queued'; } + this.markDirty(); } this.startAnimationIfNeeded(); } @@ -315,8 +353,9 @@ export class AgentSwarmProgressComponent implements Component { }): void { const member = this.findMemberForSubagent(input.agentId, input.swarmIndex); if (member === undefined) return; - member.agentId = input.agentId; + this.assignMemberAgentId(member, input.agentId); if (member.phase === 'pending') member.phase = 'queued'; + this.markDirty(); this.startAnimationIfNeeded(); } @@ -327,6 +366,7 @@ export class AgentSwarmProgressComponent implements Component { this.progressEstimator.markStarted(member.id, nowMs); member.ticks = Math.max(member.ticks, 1); this.promoteToRunning(member, nowMs); + this.markDirty(); this.startAnimationIfNeeded(); } @@ -344,6 +384,7 @@ export class AgentSwarmProgressComponent implements Component { if (!result.accepted) return; member.ticks = result.rawTicks; this.promoteToRunning(member); + this.markDirty(); this.startAnimationIfNeeded(); } @@ -357,6 +398,8 @@ export class AgentSwarmProgressComponent implements Component { -MAX_LATEST_MODEL_CHARS, ); this.promoteToRunning(member, Date.now(), true); + this.markDirty(); + this.startAnimationIfNeeded(); } markCompleted(agentId: string, completedText?: string): void { @@ -364,6 +407,7 @@ export class AgentSwarmProgressComponent implements Component { if (member === undefined || member.phase === 'failed' || member.phase === 'cancelled') return; const nowMs = Date.now(); this.completeMember(member, nowMs, completedText); + this.markDirty(); this.startAnimationIfNeeded(); } @@ -376,10 +420,11 @@ export class AgentSwarmProgressComponent implements Component { const member = this.findMemberByAgentId(input.agentId) ?? this.findMemberForSubagent(input.agentId, input.swarmIndex); if (member === undefined || member.phase === 'completed' || member.phase === 'cancelled') return; - member.agentId = input.agentId; + this.assignMemberAgentId(member, input.agentId); this.progressEstimator.markQueued(member.id, Date.now()); member.phase = 'suspended'; clearMemberState(member, ...TERMINAL_CLEAR_KEYS); + this.markDirty(); this.startAnimationIfNeeded(); } @@ -388,6 +433,7 @@ export class AgentSwarmProgressComponent implements Component { if (member === undefined) return; const nowMs = Date.now(); this.failMember(member, nowMs, failureText); + this.markDirty(); this.startAnimationIfNeeded(); } @@ -399,13 +445,15 @@ export class AgentSwarmProgressComponent implements Component { if (isTerminalPhase(member.phase)) continue; this.failMember(member, nowMs, failureText); } + this.markDirty(); this.startAnimationIfNeeded(); } markCancelled(agentId: string): void { const member = this.findMemberByAgentId(agentId); - if (member === undefined) return; + if (member === undefined || isTerminalPhase(member.phase)) return; this.cancelMember(member, Date.now()); + this.markDirty(); } markActiveCancelled(): void { @@ -415,6 +463,7 @@ export class AgentSwarmProgressComponent implements Component { if (isTerminalPhase(member.phase)) continue; this.cancelMember(member, nowMs); } + this.markDirty(); this.startAnimationIfNeeded(); } @@ -435,6 +484,7 @@ export class AgentSwarmProgressComponent implements Component { this.cancelMember(member, nowMs); } } + this.markDirty(); this.startAnimationIfNeeded(); return true; } @@ -445,41 +495,80 @@ export class AgentSwarmProgressComponent implements Component { 1, outerWidth - visibleWidth(AGENT_SWARM_LEFT_INDENT) - AGENT_SWARM_RIGHT_GAP, ); - if (this.members.length === 0) { - const lines = [ - '', - this.renderHeader(innerWidth, undefined), - '', - this.renderStatusLine(innerWidth), - '', - ]; - return this.indentLines(lines, outerWidth); + const palette = currentTheme.palette; + // The empty panel has no grid, so the height callback stays untouched + // there (matching the uncached path); with members its result feeds the + // cache key, since a shrinking dock compresses the grid. + const gridHeight = this.members.length === 0 ? undefined : this.availableGridHeight?.(); + const cache = this.renderCache; + if ( + isRenderCacheEnabled() && + cache !== undefined && + cache.outerWidth === outerWidth && + cache.version === this.renderVersion && + cache.palette === palette && + cache.gridHeight === gridHeight + ) { + return cache.lines; } - const nowMs = Date.now(); - const snapshots = this.members.map((member): AgentSwarmSnapshot => ({ - phase: member.phase, - ticks: member.ticks, - latestModelText: member.latestModelText, - phaseElapsedMs: terminalPhaseElapsedMs(member, nowMs), - })); - const summary = summarizeSnapshots(snapshots); - const lines = [ - '', - this.renderHeader(innerWidth, summary), - '', - ...this.renderGrid( - innerWidth, - this.availableGridHeight?.(), - snapshots, - nowMs, - ), - '', - this.renderStatusLine(innerWidth), - '', - ]; - this.startAnimationIfNeeded(); - return this.indentLines(lines, outerWidth); + let lines: string[]; + if (this.members.length === 0) { + lines = this.indentLines( + [ + '', + this.renderHeader(innerWidth, undefined), + '', + this.renderStatusLine(innerWidth), + '', + ], + outerWidth, + ); + } else { + const nowMs = Date.now(); + const snapshots = this.members.map((member): AgentSwarmSnapshot => ({ + phase: member.phase, + ticks: member.ticks, + latestModelText: member.latestModelText, + phaseElapsedMs: terminalPhaseElapsedMs(member, nowMs), + })); + const summary = summarizeSnapshots(snapshots); + lines = this.indentLines( + [ + '', + this.renderHeader(innerWidth, summary), + '', + ...this.renderGrid( + innerWidth, + gridHeight, + snapshots, + nowMs, + ), + '', + this.renderStatusLine(innerWidth), + '', + ], + outerWidth, + ); + this.startAnimationIfNeeded(); + } + if (isRenderCacheEnabled() && !this.hasTimeDependentRender()) { + this.renderCache = { outerWidth, version: this.renderVersion, palette, gridHeight, lines }; + } + return lines; + } + + /** + * Renders that change with wall-clock time even without any mutation must + * never be served from the cache: the activity spinner ticks externally, + * running cells keep drifting toward their estimate, and the completion / + * failure fill animates for a short window. Once the panel is static it + * stays static until the next mutation bumps the version, so a cache hit + * can safely skip `startAnimationIfNeeded()`. + */ + private hasTimeDependentRender(): boolean { + if (this.toolCallActive && this.activitySpinnerText !== undefined) return true; + return this.hasAnimatedMembers(); } private indentLines(lines: readonly string[], width: number): string[] { @@ -612,7 +701,7 @@ export class AgentSwarmProgressComponent implements Component { const member = this.members[index]; const snapshot = snapshots[index]; if (member === undefined || snapshot === undefined) continue; - cells.push(padAnsi(this.renderCell(member, snapshot, layout, nowMs), layout.cellWidth)); + cells.push(this.renderCell(member, snapshot, layout, nowMs)); } lines.push(leftPadding + cells.join(cellGap)); } @@ -624,6 +713,58 @@ export class AgentSwarmProgressComponent implements Component { snapshot: AgentSwarmSnapshot, layout: AgentSwarmGridLayout, nowMs: number, + ): string { + const needsEstimate = !( + snapshot.phase === 'pending' || + (snapshot.phase === 'cancelled' && snapshot.ticks <= 0) || + (layout.renderText && snapshot.phase === 'queued' && snapshot.ticks <= 0) + ); + const estimate = needsEstimate + ? this.progressEstimator.estimate({ + memberKey: member.id, + phase: snapshot.phase, + capacityTicks: layout.barCells * BRAILLE_LEVELS.length, + nowMs, + }) + : undefined; + // Terminal and queued cells are fully determined by this key, so repeated + // frames of an animating panel reuse them; the elapsed-time clamp keeps + // hits valid once the completion fill window has passed. + const key: AgentSwarmCellCacheKey = [ + currentTheme.palette, + snapshot.phase, + member.ticks, + member.latestModelText, + member.itemText, + member.completedText, + member.failureText, + member.cancelledLabelText, + member.cancelledLabelColor, + member.cancelledMarkColor, + member.cancelledBarColor, + layout.renderText, + layout.cellWidth, + layout.barCells, + estimate === undefined ? member.ticks : estimate.displayTicks, + Math.min(snapshot.phaseElapsedMs, COMPLETE_FILL_MS), + ]; + const cached = member.cellCache; + if (isRenderCacheEnabled() && cached !== undefined && cellCacheKeyEquals(cached.key, key)) { + return cached.value; + } + const value = padAnsi( + this.renderCellContent(member, snapshot, layout, estimate), + layout.cellWidth, + ); + if (isRenderCacheEnabled()) member.cellCache = { key, value }; + return value; + } + + private renderCellContent( + member: AgentSwarmMember, + snapshot: AgentSwarmSnapshot, + layout: AgentSwarmGridLayout, + estimate: AgentSwarmProgressEstimate | undefined, ): string { const width = layout.cellWidth; if (snapshot.phase === 'pending') { @@ -632,59 +773,27 @@ export class AgentSwarmProgressComponent implements Component { if (snapshot.phase === 'cancelled' && snapshot.ticks <= 0) { return renderCancelledUnstartedCell(member, width, this.colors); } - if (!layout.renderText) { - return this.renderCompactCell(member, snapshot, layout.barCells, nowMs); - } - if (snapshot.phase === 'queued' && snapshot.ticks <= 0) { + if (layout.renderText && snapshot.phase === 'queued' && snapshot.ticks <= 0) { return renderQueuedCell(member, width, this.colors); } - - const estimate = this.progressEstimator.estimate({ - memberKey: member.id, - phase: snapshot.phase, - capacityTicks: layout.barCells * BRAILLE_LEVELS.length, - nowMs, - }); const id = chalk.hex(this.colors.primary)(member.id); const bar = brailleBar( - estimate.displayTicks, + estimate!.displayTicks, snapshot.phase, layout.barCells, this.colors, snapshot.phaseElapsedMs, cancelledProgressColor(member, snapshot.phase, this.colors), ); + if (!layout.renderText) { + return `${id} ${bar}${compactTerminalMark(member, snapshot.phase, this.colors)}`; + } const prefix = `${id} ${bar} `; const labelWidth = Math.max(1, width - visibleWidth(prefix)); const label = renderCellLabel(member, snapshot, labelWidth, this.colors); return prefix + label; } - private renderCompactCell( - member: AgentSwarmMember, - snapshot: AgentSwarmSnapshot, - barCells: number, - nowMs: number, - ): string { - const estimatePhase = snapshot.phase === 'pending' ? 'queued' : snapshot.phase; - const estimate = this.progressEstimator.estimate({ - memberKey: member.id, - phase: estimatePhase, - capacityTicks: barCells * BRAILLE_LEVELS.length, - nowMs, - }); - const id = chalk.hex(this.colors.primary)(member.id); - const bar = brailleBar( - estimate.displayTicks, - estimatePhase, - barCells, - this.colors, - snapshot.phaseElapsedMs, - cancelledProgressColor(member, snapshot.phase, this.colors), - ); - return `${id} ${bar}${compactTerminalMark(member, snapshot.phase, this.colors)}`; - } - private findMemberForSubagent( agentId: string, swarmIndex: number | undefined, @@ -706,7 +815,15 @@ export class AgentSwarmProgressComponent implements Component { } private findMemberByAgentId(agentId: string): AgentSwarmMember | undefined { - return this.members.find((member) => member.agentId === agentId); + return this.membersByAgentId.get(agentId); + } + + private assignMemberAgentId(member: AgentSwarmMember, agentId: string): void { + if (member.agentId !== undefined && member.agentId !== agentId) { + this.membersByAgentId.delete(member.agentId); + } + member.agentId = agentId; + this.membersByAgentId.set(agentId, member); } private ensureMemberCount(count: number): void { @@ -748,20 +865,27 @@ export class AgentSwarmProgressComponent implements Component { private hasAnimatedMembers(): boolean { const now = Date.now(); - return ( - this.progressEstimator.hasPendingCatchup() || - this.members.some((member) => - ( - member.phase === 'completed' && - member.completedAtMs !== undefined && - now - member.completedAtMs < COMPLETE_FILL_MS - ) || - ( - member.phase === 'failed' && - member.failedAtMs !== undefined && - now - member.failedAtMs < COMPLETE_FILL_MS - ), - ) + // Running cells and estimator catch-up only animate while the tool call + // is live: no further progress arrives once it ends (an unparsable result + // leaves members running), so ticking would repaint the tree forever. + if ( + this.toolCallActive && + (this.progressEstimator.hasPendingCatchup() || + this.members.some((member) => member.phase === 'running')) + ) { + return true; + } + return this.members.some((member) => + ( + member.phase === 'completed' && + member.completedAtMs !== undefined && + now - member.completedAtMs < COMPLETE_FILL_MS + ) || + ( + member.phase === 'failed' && + member.failedAtMs !== undefined && + now - member.failedAtMs < COMPLETE_FILL_MS + ), ); } @@ -779,9 +903,18 @@ export class AgentSwarmProgressComponent implements Component { this.progressEstimator.markCompleted(member.id, nowMs); member.completedAtMs = nowMs; } - const normalizedCompletedText = normalizeFinalOutputText(completedText); - if (normalizedCompletedText !== undefined) member.completedText = normalizedCompletedText; + // Terminal cells render a single-line label, so only a bounded prefix of + // the final output is worth keeping; full outputs must not accumulate on + // the component for the lifetime of the transcript. The latest-model-text + // fallback is baked in here because latestModelText is released below. + const normalizedCompletedText = + normalizeFinalOutputText(completedText) ?? + normalizeFinalOutputText(latestNonEmptyLine(member.latestModelText)); + if (normalizedCompletedText !== undefined) { + member.completedText = capFinalOutputLabel(normalizedCompletedText); + } member.phase = 'completed'; + releaseTerminalMemberText(member); clearMemberState(member, ...COMPLETED_CLEAR_KEYS); } @@ -791,8 +924,11 @@ export class AgentSwarmProgressComponent implements Component { member.failedAtMs = nowMs; } const normalizedFailureText = normalizeFailureText(failureText); - if (normalizedFailureText !== undefined) member.failureText = normalizedFailureText; + if (normalizedFailureText !== undefined) { + member.failureText = capFinalOutputLabel(normalizedFailureText); + } member.phase = 'failed'; + releaseTerminalMemberText(member); clearMemberState(member, ...FAILED_CLEAR_KEYS); } @@ -807,7 +943,9 @@ export class AgentSwarmProgressComponent implements Component { member.cancelledMarkColor = this.colors.warning; member.cancelledBarColor = this.colors.warning; } else if (previousPhase === 'running') { - member.cancelledLabelText = runningCellLabelText(member); + member.cancelledLabelText = capFinalOutputLabel( + runningCellLabelText(member, latestNonEmptyLine(member.latestModelText)), + ); member.cancelledLabelColor = cancelledLabelColor(this.colors); member.cancelledMarkColor = this.colors.warning; member.cancelledBarColor = this.colors.warning; @@ -817,6 +955,7 @@ export class AgentSwarmProgressComponent implements Component { member.cancelledMarkColor = this.colors.warning; member.cancelledBarColor = this.colors.warning; } + releaseTerminalMemberText(member); } } @@ -834,6 +973,123 @@ function clearMemberState(member: AgentSwarmMember, ...keys: ClearableMemberKey[ for (const key of keys) delete member[key]; } +// Terminal cells no longer stream, so the rolling model-text window and the +// stale cell memo (whose key referenced it) are dropped; the next render +// re-memoizes against the bounded terminal label. +function releaseTerminalMemberText(member: AgentSwarmMember): void { + member.latestModelText = ''; + delete member.cellCache; +} + +// Display width alone does not bound memory: ANSI sequences and zero-width +// graphemes add unbounded code units within a single column, so the retained +// label is additionally capped by storage length. +function capFinalOutputLabel(text: string): string { + return capCodeUnits( + truncateToWidth(text, MAX_FINAL_OUTPUT_LABEL_CHARS, ''), + MAX_FINAL_OUTPUT_LABEL_CODE_UNITS, + ); +} + +function capCodeUnits(text: string, maxCodeUnits: number): string { + if (text.length <= maxCodeUnits) return text; + const graphemeEnd = graphemeSafeEnd(text, maxCodeUnits); + let end = graphemeEnd > 0 ? graphemeEnd : maxCodeUnits; + let osc8CloseSuffix = ''; + let sgrActive = false; + let index = text.indexOf('\u001B'); + while (index >= 0 && index < end) { + const sequenceEnd = ansiSequenceEnd(text, index); + if (sequenceEnd === undefined || sequenceEnd > end) { + end = index; + break; + } + const sequence = text.slice(index, sequenceEnd); + const osc8Close = osc8CloseAfterSequence(sequence); + if (osc8Close !== undefined) osc8CloseSuffix = osc8Close ?? ''; + sgrActive = sgrActiveAfterSequence(sequence, sgrActive); + index = text.indexOf('\u001B', sequenceEnd); + } + // A cut landing on a lead surrogate reads as the astral code point; back + // off so the retained label never ends in an unpaired surrogate. + const codePoint = text.codePointAt(end - 1); + if (codePoint !== undefined && codePoint > 0xffff) end -= 1; + return `${text.slice(0, end)}${osc8CloseSuffix}${sgrActive ? '\u001B[0m' : ''}`; +} + +const graphemeSegmenter = new Intl.Segmenter(undefined, { granularity: 'grapheme' }); + +// The storage cap must not slice through a grapheme cluster: a ZWJ sequence +// (a family emoji runs about eleven code units per two columns) cut in half +// renders as its separate parts. Back off to the nearest whole cluster; the +// ANSI walk above only ever lands on escape boundaries, which are cluster +// boundaries too. A single cluster larger than the budget falls back to the +// raw cut. +function graphemeSafeEnd(text: string, end: number): number { + let boundary = 0; + for (const { index, segment } of graphemeSegmenter.segment(text)) { + if (index + segment.length > end) break; + boundary = index + segment.length; + } + return boundary; +} + +// Mirrors pi-tui's OSC 8 bookkeeping: a sequence with a non-empty URI opens a +// hyperlink (closed with the opener's terminator), an empty URI closes one. +// SGR resets do not close hyperlinks, so a sliced opener would otherwise +// leak the link onto later cells of the grid row. +function osc8CloseAfterSequence(sequence: string): string | null | undefined { + if (!sequence.startsWith('\u001B]8;')) return undefined; + const terminator = sequence.endsWith('\u0007') ? '\u0007' : '\u001B\\'; + const body = sequence.slice(4, sequence.length - terminator.length); + const separatorIndex = body.indexOf(';'); + if (separatorIndex < 0) return undefined; + return body.slice(separatorIndex + 1).length > 0 ? `\u001B]8;;${terminator}` : null; +} + +// SGR state is cumulative: a parameter of 0 (or an empty parameter, which +// defaults to 0) resets every attribute, anything else activates one, so a +// sliced label with active styling needs a full reset appended. +function sgrActiveAfterSequence(sequence: string, active: boolean): boolean { + if (!sequence.startsWith('\u001B[') || !sequence.endsWith('m')) return active; + const body = sequence.slice(2, -1); + if (body.length === 0) return false; + for (const param of body.split(';')) { + active = param !== '' && Number(param) !== 0; + } + return active; +} + +function ansiSequenceEnd(text: string, start: number): number | undefined { + if (text[start] !== '\u001B') return undefined; + const kind = text[start + 1]; + if (kind === undefined) return undefined; + if (kind === '[') { + for (let index = start + 2; index < text.length; index += 1) { + const ch = text.charAt(index); + if (ch >= '@' && ch <= '~') return index + 1; + } + return undefined; + } + if (kind === ']' || kind === '_') { + for (let index = start + 2; index < text.length; index += 1) { + if (text[index] === '\u0007') return index + 1; + if (text[index] === '\u001B' && text[index + 1] === '\\') return index + 2; + } + return undefined; + } + let index = start + 1; + while (index < text.length) { + const ch = text.charAt(index); + if (ch >= ' ' && ch <= '/') { + index += 1; + continue; + } + return ch >= '0' && ch <= '~' ? index + 1 : undefined; + } + return undefined; +} + function isTerminalPhase(phase: AgentSwarmPhase): boolean { return phase === 'completed' || phase === 'failed' || phase === 'cancelled'; } @@ -1405,15 +1661,19 @@ function renderCellLabel( width: number, colors: ColorPalette, ): string { - const latestLine = latestNonEmptyLine(snapshot.latestModelText); if (snapshot.phase === 'running') { - return truncateWithColor(runningCellLabelText(member), width, colors.textDim); + const latestLine = latestNonEmptyLine(snapshot.latestModelText); + return truncateWithColor(runningCellLabelText(member, latestLine), width, colors.textDim); } if (snapshot.phase === 'failed' && member.failureText !== undefined) { return truncateWithColor(`${FAILURE_MARK}${member.failureText}`, width, colors.error); } if (snapshot.phase === 'completed') { - return renderCompletedCellLabel(member.completedText ?? latestLine, width, colors); + return renderCompletedCellLabel( + member.completedText ?? latestNonEmptyLine(snapshot.latestModelText), + width, + colors, + ); } if (snapshot.phase === 'cancelled') { return renderCancelledCellLabel(member, width, colors); @@ -1421,8 +1681,7 @@ function renderCellLabel( return truncateWithColor(PHASE_LABELS[snapshot.phase], width, phaseColor(snapshot.phase, colors)); } -function runningCellLabelText(member: AgentSwarmMember): string { - const latestLine = latestNonEmptyLine(member.latestModelText); +function runningCellLabelText(member: AgentSwarmMember, latestLine: string): string { const itemText = collapseWhitespace(member.itemText); const text = latestLine.length > 0 ? latestLine : itemText; return text.length > 0 ? text : PHASE_LABELS.running; @@ -1648,6 +1907,14 @@ function padAnsi(text: string, width: number): string { return truncated + ' '.repeat(Math.max(0, width - visibleWidth(truncated))); } +function cellCacheKeyEquals(a: AgentSwarmCellCacheKey, b: AgentSwarmCellCacheKey): boolean { + if (a.length !== b.length) return false; + for (let index = 0; index < a.length; index += 1) { + if (a[index] !== b[index]) return false; + } + return true; +} + function completedDisplayTicks(ticks: number, width: number, phaseElapsedMs: number): number { const fullBarTicks = width * BRAILLE_LEVELS.length; if (ticks >= fullBarTicks) return fullBarTicks; diff --git a/apps/kimi-code/src/tui/components/messages/assistant-message.ts b/apps/kimi-code/src/tui/components/messages/assistant-message.ts index 64ed6bbf8..00ed8ca12 100644 --- a/apps/kimi-code/src/tui/components/messages/assistant-message.ts +++ b/apps/kimi-code/src/tui/components/messages/assistant-message.ts @@ -5,8 +5,9 @@ * to align after the bullet. */ -import { Container, Markdown, truncateToWidth, visibleWidth, type Component } from '@moonshot-ai/pi-tui'; +import { Container, truncateToWidth, visibleWidth, type Component, type TuiMouseDispatchResult, type TuiMouseEvent } from '@moonshot-ai/pi-tui'; +import { Markdown } from '#/tui/components/markdown/markdown'; import { MESSAGE_INDENT } from '#/tui/constant/rendering'; import { STATUS_BULLET } from '#/tui/constant/symbols'; import { currentTheme } from '#/tui/theme'; @@ -69,7 +70,11 @@ export class AssistantMessageComponent implements Component { 0, createMarkdownTheme({ transient }), undefined, - createMarkdownOptions(), + { + ...createMarkdownOptions(), + copySource: true, + onVisualStateChange: () => this.markRenderDirty(), + }, ); this.markdownTransient = transient; this.contentContainer.addChild(this.markdown); @@ -94,13 +99,38 @@ export class AssistantMessageComponent implements Component { 0, createMarkdownTheme({ transient: this.lastTransient }), undefined, - createMarkdownOptions(), + { + ...createMarkdownOptions(), + copySource: true, + onVisualStateChange: () => this.markRenderDirty(), + }, ); this.markdownTransient = this.lastTransient; this.contentContainer.addChild(this.markdown); } } + handleMouse(event: TuiMouseEvent): TuiMouseDispatchResult | undefined { + if (this.lastText.trim().length === 0) return undefined; + + const prefix = this.showBullet ? STATUS_BULLET : MESSAGE_INDENT; + const prefixWidth = visibleWidth(prefix); + const contentWidth = Math.max(1, Math.max(0, event.width) - prefixWidth); + const y = event.y - 1; + if (y < 0) return undefined; + + const contentHeight = this.contentContainer.render(contentWidth).length; + if (y >= contentHeight) return undefined; + + return this.contentContainer.handleMouse({ + ...event, + x: event.x - prefixWidth, + y, + width: contentWidth, + height: contentHeight, + }); + } + render(width: number): string[] { if (this.lastText.trim().length === 0) return []; diff --git a/apps/kimi-code/src/tui/components/messages/background-agent-status.ts b/apps/kimi-code/src/tui/components/messages/background-agent-status.ts index 9c1a3d815..72b12c784 100644 --- a/apps/kimi-code/src/tui/components/messages/background-agent-status.ts +++ b/apps/kimi-code/src/tui/components/messages/background-agent-status.ts @@ -4,11 +4,15 @@ import { MESSAGE_INDENT } from '#/tui/constant/rendering'; import { FAILURE_MARK, STATUS_BULLET } from '#/tui/constant/symbols'; import { currentTheme } from '#/tui/theme'; import type { ColorPalette } from '#/tui/theme/colors'; -import type { BackgroundAgentStatusData } from '#/tui/types'; +import type { BackgroundAgentStatusData, BackgroundAgentStatusPhase } from '#/tui/types'; export class BackgroundAgentStatusComponent implements Component { constructor(private readonly data: BackgroundAgentStatusData) {} + get phase(): BackgroundAgentStatusPhase { + return this.data.phase; + } + invalidate(): void {} render(width: number): string[] { @@ -23,7 +27,9 @@ export class BackgroundAgentStatusComponent implements Component { : 'error'; const bullet = - this.data.phase === 'failed' ? currentTheme.fg(tone, FAILURE_MARK) : currentTheme.fg(tone, STATUS_BULLET); + this.data.phase === 'failed' || this.data.phase === 'killed' + ? currentTheme.fg(tone, FAILURE_MARK) + : currentTheme.fg(tone, STATUS_BULLET); const text = currentTheme.fg(tone, this.data.headline) + (this.data.detail !== undefined && this.data.detail.length > 0 diff --git a/apps/kimi-code/src/tui/components/messages/goal-markers.ts b/apps/kimi-code/src/tui/components/messages/goal-markers.ts index f4482941f..a7bf6795c 100644 --- a/apps/kimi-code/src/tui/components/messages/goal-markers.ts +++ b/apps/kimi-code/src/tui/components/messages/goal-markers.ts @@ -54,6 +54,18 @@ export class GoalMarkerComponent implements Component { this.expanded = expanded; } + hasHiddenContent(): boolean { + return this.expandable && this.detail !== undefined && this.detail.length > 0; + } + + isExpanded(): boolean { + return this.expanded; + } + + omitsExpandHint(): boolean { + return true; + } + render(width: number): string[] { const dot = currentTheme.fg(this.accentToken, this.marker); const head = currentTheme.fg(this.textToken, this.headline); diff --git a/apps/kimi-code/src/tui/components/messages/plan-box.ts b/apps/kimi-code/src/tui/components/messages/plan-box.ts index 2b46b31d3..69148c7e2 100644 --- a/apps/kimi-code/src/tui/components/messages/plan-box.ts +++ b/apps/kimi-code/src/tui/components/messages/plan-box.ts @@ -7,9 +7,10 @@ import path from 'node:path'; import { pathToFileURL } from 'node:url'; -import { Markdown, truncateToWidth, visibleWidth, type Component, type MarkdownTheme } from '@moonshot-ai/pi-tui'; +import { truncateToWidth, visibleWidth, type Component, type MarkdownTheme } from '@moonshot-ai/pi-tui'; import chalk from 'chalk'; +import { Markdown } from '#/tui/components/markdown/markdown'; import { createMarkdownOptions } from '#/tui/utils/markdown-options'; import { toTerminalHyperlink } from '#/utils/terminal-hyperlink'; diff --git a/apps/kimi-code/src/tui/components/messages/shell-execution.ts b/apps/kimi-code/src/tui/components/messages/shell-execution.ts index 8e49b97cf..4f5e2101d 100644 --- a/apps/kimi-code/src/tui/components/messages/shell-execution.ts +++ b/apps/kimi-code/src/tui/components/messages/shell-execution.ts @@ -3,6 +3,7 @@ import { Container, Text } from '@moonshot-ai/pi-tui'; import { currentTheme } from '#/tui/theme'; import type { ToolCallBlockData, ToolResultBlockData } from '#/tui/types'; +import { sanitizeShellOutput } from '#/tui/utils/shell-output'; import type { ResultRenderer } from './tool-renderers/types'; import { isSpilledToolOutput, PREVIEW_LINES } from './tool-renderers/types'; @@ -59,8 +60,10 @@ export class ShellExecutionComponent extends Container { expandHint: boolean, ): void { if (!result.output) return; + // Untrusted bytes: sanitize the whole buffer, not each chunk, so escape + // sequences split across live-output chunks cannot reach the terminal. this.addChild( - new TruncatedOutputComponent(result.output, { + new TruncatedOutputComponent(sanitizeShellOutput(result.output), { expanded, isError: result.is_error ?? false, maxLines: PREVIEW_LINES, diff --git a/apps/kimi-code/src/tui/components/messages/shell-run.ts b/apps/kimi-code/src/tui/components/messages/shell-run.ts index 726a6deaa..cb41e782d 100644 --- a/apps/kimi-code/src/tui/components/messages/shell-run.ts +++ b/apps/kimi-code/src/tui/components/messages/shell-run.ts @@ -90,9 +90,10 @@ export class ShellRunComponent extends Container { if (this.running) return this.runningHidesRows; // More physical lines than the collapsed cap is hidden for certain, even // for a card that finished while already expanded; a wrapped overflow - // shows up once a collapsed render has recorded it. + // shows up once a collapsed render has recorded it. The preview's hint + // row replaces the hidden rows, so a single hidden row gains nothing. return ( - this.finalOutput.split('\n').length > SHELL_OUTPUT_PREVIEW_LINES || + this.finalOutput.split('\n').length > SHELL_OUTPUT_PREVIEW_LINES + 1 || this.children.some( (child) => child instanceof TruncatedOutputComponent && child.wasTruncated(), ) diff --git a/apps/kimi-code/src/tui/components/messages/sticky-user-message.ts b/apps/kimi-code/src/tui/components/messages/sticky-user-message.ts new file mode 100644 index 000000000..b157ee73b --- /dev/null +++ b/apps/kimi-code/src/tui/components/messages/sticky-user-message.ts @@ -0,0 +1,51 @@ +import { + truncateToWidth, + type Component, + type TuiMouseEvent, + type TuiMouseEventResult, +} from '@moonshot-ai/pi-tui'; + +import { TRUNCATION_ELLIPSIS } from '#/tui/constant/rendering'; +import { USER_MESSAGE_BULLET } from '#/tui/constant/symbols'; +import { currentTheme } from '#/tui/theme'; +import type { StickyUserMessageJudgment } from '#/tui/utils/sticky-user-message'; +import { UserMessageComponent } from './user-message'; + +export class StickyUserMessageComponent implements Component { + private judgment: StickyUserMessageJudgment | null = null; + + constructor(private readonly scrollTo: (y: number) => void) {} + + setJudgment(judgment: StickyUserMessageJudgment | null): boolean { + if ( + this.judgment?.component === judgment?.component && + this.judgment?.summary === judgment?.summary && + this.judgment?.targetY === judgment?.targetY + ) { + return false; + } + this.judgment = judgment; + return true; + } + + invalidate(): void {} + + render(width: number): string[] { + const safeWidth = Math.max(0, width); + if (this.judgment === null || safeWidth <= 0) return []; + + const text = this.judgment.component instanceof UserMessageComponent + ? currentTheme.boldFg('roleUser', USER_MESSAGE_BULLET) + + this.judgment.component.colorText(this.judgment.summary) + : currentTheme.boldFg('roleUser', USER_MESSAGE_BULLET + this.judgment.summary); + return [truncateToWidth(text, safeWidth, TRUNCATION_ELLIPSIS)]; + } + + handleMouse(event: TuiMouseEvent): TuiMouseEventResult | undefined { + if (event.type === 'click' && event.button === 'left' && this.judgment !== null) { + this.scrollTo(this.judgment.targetY); + return { handled: true }; + } + return undefined; + } +} diff --git a/apps/kimi-code/src/tui/components/messages/thinking.ts b/apps/kimi-code/src/tui/components/messages/thinking.ts index e1208b55f..75b14f68c 100644 --- a/apps/kimi-code/src/tui/components/messages/thinking.ts +++ b/apps/kimi-code/src/tui/components/messages/thinking.ts @@ -24,6 +24,7 @@ export class ThinkingComponent implements Component { private showMarker: boolean; private mode: ThinkingRenderMode; private expanded = false; + private previewHidesLines = false; private readonly ui: TUI | undefined; private spinnerFrame = 0; private spinnerInterval: ReturnType | undefined; @@ -87,6 +88,18 @@ export class ThinkingComponent implements Component { this.markRenderDirty(); } + hasHiddenContent(): boolean { + return this.previewHidesLines; + } + + isExpanded(): boolean { + return this.expanded; + } + + omitsExpandHint(): boolean { + return true; + } + render(width: number): string[] { if ( isRenderCacheEnabled() && @@ -98,11 +111,17 @@ export class ThinkingComponent implements Component { const contentWidth = Math.max(1, width - MESSAGE_INDENT.length); const contentLines = this.text.length > 0 ? this.textComponent.render(contentWidth) : ['']; + // Live folding hides every row beyond the tail. Finalized folding swaps + // hidden rows for a one-line hint, so it must save at least one row. + this.previewHidesLines = + this.mode === 'live' + ? contentLines.length > THINKING_PREVIEW_LINES + : contentLines.length > THINKING_PREVIEW_LINES + 1; let rendered: string[]; if (this.mode === 'live') { const visibleLines = - contentLines.length > THINKING_PREVIEW_LINES + !this.expanded && this.previewHidesLines ? contentLines.slice(contentLines.length - THINKING_PREVIEW_LINES) : contentLines; const spinner = currentTheme.fg( @@ -121,7 +140,7 @@ export class ThinkingComponent implements Component { lines.push(p + contentLines[i]); } - if (this.expanded || contentLines.length <= THINKING_PREVIEW_LINES) { + if (this.expanded || !this.previewHidesLines) { rendered = lines; } else { // Leading blank + first PREVIEW_LINES content lines + hint line. diff --git a/apps/kimi-code/src/tui/components/messages/tool-call.ts b/apps/kimi-code/src/tui/components/messages/tool-call.ts index 12bd465b0..f0f652827 100644 --- a/apps/kimi-code/src/tui/components/messages/tool-call.ts +++ b/apps/kimi-code/src/tui/components/messages/tool-call.ts @@ -5,8 +5,9 @@ import { isAbsolute, relative, sep } from 'node:path'; -import { Container, Markdown, Spacer, Text, truncateToWidth, visibleWidth } from '@moonshot-ai/pi-tui'; +import { Container, Spacer, Text, truncateToWidth, visibleWidth } from '@moonshot-ai/pi-tui'; import type { Component, TUI } from '@moonshot-ai/pi-tui'; +import { Markdown } from '#/tui/components/markdown/markdown'; import { highlightLines, langFromPath } from '#/tui/components/media/code-highlight'; import { renderDiffLinesClustered } from '#/tui/components/media/diff-preview'; import { @@ -42,11 +43,11 @@ import { countNonEmptyLines, pickChip } from './tool-renderers/chip'; import { buildGoalToolHeader, parseGoalToolOutput } from './tool-renderers/goal'; import { searchNoticeOnly } from './tool-renderers/grep-output'; import { parseReadMediaOutput } from './tool-renderers/media'; -import { computeWriteStats } from './tool-renderers/chip'; -import { nonEmptyLines, outcomeLine } from './tool-renderers/outcome'; -import { TruncatedOutputComponent } from './tool-renderers/truncated'; +import { nonEmptyLines, outcomeLine, outcomeRows } from './tool-renderers/outcome'; +import { TruncatedOutputComponent, trimTrailingEmptyLines } from './tool-renderers/truncated'; import { isSpilledToolOutput } from './tool-renderers/types'; import { isGenericToolResult, pickResultRenderer } from './tool-renderers/registry'; +import { sanitizeShellOutput } from '#/tui/utils/shell-output'; import { buildWaitForHeader, parseWaitForOutput } from './tool-renderers/wait-for'; const MAX_ARG_LENGTH = 60; @@ -468,7 +469,7 @@ export function extractKeyArgumentDetail( // Prefer the short `description` so the header preview never spills a // multi-line `prompt` into the TUI chrome. Agent: ['description', 'prompt'], - NotifyUser: ['message'], + NotifyUser: ['title', 'message'], }; // Glob: concatenate multiple args into a single summary so the header @@ -760,6 +761,11 @@ export class ToolCallComponent extends Container { ((child instanceof TruncatedOutputComponent || child instanceof ShellExecutionComponent) && child.wasTruncated()), ); + } else if ( + !this.truncatedAtLastRender && + this.collapsedOutcomeClips(width) + ) { + this.truncatedAtLastRender = true; } if (allReused) { @@ -805,6 +811,28 @@ export class ToolCallComponent extends Container { return this.hiddenContent || this.truncatedAtLastRender; } + private collapsedOutcomeClips(width: number): boolean { + const result = this.result; + if (result === undefined || result.output.length === 0 || result.is_error === true) { + return false; + } + const name = this.toolCall.name; + if (name !== 'Bash' && !isGenericToolResult(name)) return false; + const leadsWithMetadata = + name === 'Bash' && + (result.output.startsWith('task_id:') || isSpilledToolOutput(result.output)); + const rows = outcomeRows( + result.output, + name === 'Bash' && !leadsWithMetadata ? 'last' : 'first', + ); + for (const row of rows) { + if (!(row instanceof TruncatedHeaderLine)) continue; + row.render(width); + if (row.wasTruncated()) return true; + } + return false; + } + /** Whether the global ctrl+o toggle currently has this card expanded. */ isExpanded(): boolean { return this.expanded; @@ -832,7 +860,16 @@ export class ToolCallComponent extends Container { if (result === undefined) return nonEmptyLines(this.liveOutput).length > 1; if (result.output.length === 0) return false; if (result.output.trimStart().startsWith('')) return false; - if (result.is_error === true) return nonEmptyLines(result.output).length > RESULT_PREVIEW_LINES; + // Mirror the error preview's fold threshold: the hint row replaces the + // hidden rows, so a single hidden row leaves nothing for ctrl+o to gain. + // Count rows the way the preview does — internal blanks included, only + // trailing empties dropped (nonEmptyLines would skip interior blanks); + // Bash's preview renders sanitized output, so control-only rows (e.g. a + // trailing reset) must not count either. + if (result.is_error === true) { + const output = name === 'Bash' ? sanitizeShellOutput(result.output) : result.output; + return trimTrailingEmptyLines(output.split('\n')).length > RESULT_PREVIEW_LINES + 1; + } switch (name) { case 'ReadMediaFile': // A media envelope renders its body only when expanded; anything else @@ -931,8 +968,15 @@ export class ToolCallComponent extends Container { }); return capped.length !== full.length || capped.at(-1) !== full.at(-1); } - case 'Write': - return computeWriteStats(args).lines > COMMAND_PREVIEW_LINES; + case 'Write': { + // Mirror buildCallPreview's cap exactly: highlightLines keeps a + // trailing empty entry for a final newline (computeWriteStats strips + // it), and the hint row replaces the hidden rows, so a single hidden + // row would leave nothing for ctrl+o to gain. + const content = str(args['content']); + const filePath = str(args['file_path'] ?? args['path']); + return highlightLines(content, langFromPath(filePath)).length > COMMAND_PREVIEW_LINES + 1; + } default: return false; } @@ -1710,7 +1754,8 @@ export class ToolCallComponent extends Container { if (toolCall.name === 'NotifyUser' && isExperimentalFlagEnabled('notify_user')) { // The update itself lives in the panel above the input box; the card // is the durable trace in the transcript, so the header carries the - // first line and ctrl+o shows the whole message. + // title (or the message's first line for updates without one) and + // ctrl+o shows the whole message. if (isTruncated) { // max_tokens cut the arguments short: the call never ran and the // panel entry was dropped, so the card must not read as in flight. @@ -2268,7 +2313,10 @@ export class ToolCallComponent extends Container { const message = str(this.toolCall.args['message']).trim(); if (message.length === 0) return; this.addChild( - new Markdown(message, 2, 0, this.markdownTheme, undefined, createMarkdownOptions()), + new Markdown(message, 2, 0, this.markdownTheme, undefined, { + ...createMarkdownOptions(), + copySource: true, + }), ); return; } @@ -2293,8 +2341,10 @@ export class ToolCallComponent extends Container { // Cap as soon as args finalize, not just when result lands. Otherwise the // brief render tick between finalized args and result draws the full file, // and the snap back to the collapsed cap triggers pi-tui's full-redraw - // path which wipes the terminal scrollback (pre-TUI history). - const writeShouldCap = !this.expanded; + // path which wipes the terminal scrollback (pre-TUI history). The cap + // swaps the hidden rows for a one-line hint, so capping a single row + // would render at the same height as the full preview. + const writeShouldCap = !this.expanded && allLines.length > COMMAND_PREVIEW_LINES + 1; const shown = writeShouldCap ? allLines.slice(0, COMMAND_PREVIEW_LINES) : allLines; const remaining = allLines.length - shown.length; for (const [i, line] of shown.entries()) { diff --git a/apps/kimi-code/src/tui/components/messages/tool-renderers/truncated.ts b/apps/kimi-code/src/tui/components/messages/tool-renderers/truncated.ts index 1a7db98d3..99a43ae72 100644 --- a/apps/kimi-code/src/tui/components/messages/tool-renderers/truncated.ts +++ b/apps/kimi-code/src/tui/components/messages/tool-renderers/truncated.ts @@ -86,9 +86,11 @@ export class TruncatedOutputComponent implements Component { render(width: number): string[] { const contentLines = this.textComponent.render(width); - if (!this.expanded) this.truncatedAtLastRender = contentLines.length > this.maxLines; + // Collapsing swaps the hidden rows for a one-line hint, so a single + // hidden row would render at the same height as the full output. + this.truncatedAtLastRender = contentLines.length > this.maxLines + 1; - if (this.expanded || contentLines.length <= this.maxLines) { + if (this.expanded || contentLines.length <= this.maxLines + 1) { return contentLines; } diff --git a/apps/kimi-code/src/tui/components/messages/tool-renderers/wait-for.ts b/apps/kimi-code/src/tui/components/messages/tool-renderers/wait-for.ts index 04f71e79e..7c80c4147 100644 --- a/apps/kimi-code/src/tui/components/messages/tool-renderers/wait-for.ts +++ b/apps/kimi-code/src/tui/components/messages/tool-renderers/wait-for.ts @@ -20,7 +20,7 @@ import type { ResultRenderer } from './types'; const DESCRIPTION_MAX = 72; const RUNNING_SAMPLES = 3; -type WaitForStatus = 'completed' | 'timed_out' | 'no_tasks'; +type WaitForStatus = 'completed' | 'timed_out' | 'interrupted' | 'no_tasks'; interface WaitForResultView { readonly status: WaitForStatus; @@ -77,6 +77,9 @@ export function buildWaitForHeader(options: { if (status === 'no_tasks') { return `${bullet}${currentTheme.boldFg('primary', 'No background tasks running')}${chip}`; } + if (status === 'interrupted') { + return `${bullet}${currentTheme.boldFg('primary', 'Wait interrupted by new input')}${argText}${chip}`; + } const label = taskId === undefined ? 'Waited for a background task' : 'Waited for background task'; return `${bullet}${currentTheme.boldFg('primary', label)}${argText}${chip}`; } @@ -92,7 +95,8 @@ function glanceLines(view: WaitForResultView): string[] { switch (view.status) { case 'no_tasks': return []; - case 'timed_out': { + case 'timed_out': + case 'interrupted': { if (view.runningCount === 0) return []; const summary = `${pluralizeTasks(view.runningCount)} still running`; if (view.runningSamples.length === 0) return [summary]; @@ -124,7 +128,14 @@ function pluralizeTasks(count: number): string { export function parseWaitForOutput(output: string): WaitForResultView | undefined { const status = field(output, 'wait_status'); - if (status !== 'completed' && status !== 'timed_out' && status !== 'no_tasks') return undefined; + if ( + status !== 'completed' && + status !== 'timed_out' && + status !== 'interrupted' && + status !== 'no_tasks' + ) { + return undefined; + } const waitedMs = Number(field(output, 'waited_ms') ?? 0); const finished = section(output, 'finished'); const duringWait = section(output, 'completed_during_wait'); diff --git a/apps/kimi-code/src/tui/components/messages/transcript-view.ts b/apps/kimi-code/src/tui/components/messages/transcript-view.ts new file mode 100644 index 000000000..35d7f05ec --- /dev/null +++ b/apps/kimi-code/src/tui/components/messages/transcript-view.ts @@ -0,0 +1,71 @@ +import { ScrollView, VStack, type Component, type TuiMouseEvent } from '@moonshot-ai/pi-tui'; + +import { GutterContainer } from '#/tui/components/chrome/gutter-container'; +import { StickyUserMessageComponent } from '#/tui/components/messages/sticky-user-message'; +import { CHROME_GUTTER } from '#/tui/constant/rendering'; +import { StickyUserMessageIndex } from '#/tui/utils/sticky-user-message'; + +export class TranscriptView extends VStack { + private readonly scrollView: ScrollView; + private readonly pill: StickyUserMessageComponent; + private readonly messages = new StickyUserMessageIndex(); + private paddingTop = 1; + + constructor(private readonly transcript: GutterContainer) { + super(); + let cachedBody: string[] | undefined; + let paddedBody: string[] | undefined; + const content = { + children: [transcript], + render: (width: number) => { + const lines = transcript.render(width); + if (cachedBody !== lines) { + cachedBody = lines; + paddedBody = undefined; + } + if (this.paddingTop === 0) return lines; + return (paddedBody ??= ['', ...lines]); + }, + invalidate: () => { + transcript.invalidate(); + }, + handleMouse: (event: TuiMouseEvent) => { + if (event.y < this.paddingTop) return undefined; + return transcript.handleMouse({ + ...event, + y: event.y - this.paddingTop, + height: event.height - this.paddingTop, + }); + }, + } satisfies Component & { children: Component[] }; + this.scrollView = new ScrollView(content, { + follow: 'end', + primary: true, + overscroll: 'chain', + scrollbar: 'auto', + }); + this.pill = new StickyUserMessageComponent((y) => { + this.scrollView.scrollTo(y); + }); + const pillContainer = new GutterContainer(CHROME_GUTTER, CHROME_GUTTER); + pillContainer.addChild(this.pill); + this.addChild(pillContainer, { shrink: 0, minSize: 0 }); + this.addChild(this.scrollView, { basis: 0, grow: 1, shrink: 1, minSize: 0 }); + } + + updateStickyMessage(): boolean { + const layout = this.transcript.getRenderedLayout(); + if (!layout) return false; + const height = this.scrollView.viewportHeight + (this.paddingTop === 0 ? 1 : 0); + const judgment = + height < 2 + ? null + : this.messages.getJudgment( + layout, + this.scrollView.scrollTop, + this.scrollView.isFollowingEnd, + ); + this.paddingTop = judgment === null ? 1 : 0; + return this.pill.setJudgment(judgment); + } +} diff --git a/apps/kimi-code/src/tui/components/messages/usage-panel.ts b/apps/kimi-code/src/tui/components/messages/usage-panel.ts index c29cb2cb2..1b615ac56 100644 --- a/apps/kimi-code/src/tui/components/messages/usage-panel.ts +++ b/apps/kimi-code/src/tui/components/messages/usage-panel.ts @@ -15,6 +15,7 @@ import { renderProgressBar, safeUsageRatio, usagePercent, + type QuotaUsageRow, } from '#/utils/usage/usage-format'; import { currentTheme } from '#/tui/theme'; import type { ColorToken } from '#/tui/theme'; @@ -25,29 +26,7 @@ const BOX_OVERHEAD = LEFT_MARGIN + 2 + 2 * SIDE_PADDING; type Colorize = (text: string) => string; -export interface ManagedUsageWindow { - readonly duration: number; - readonly unit: 'minute' | 'hour' | 'day' | 'week'; -} - -export interface ManagedUsageRow { - readonly name?: string; - readonly window?: ManagedUsageWindow; - readonly used: number; - readonly limit: number; - readonly resetAt?: string; -} - -function usageRowLabel(row: ManagedUsageRow): string { - const window = row.window; - if (window !== undefined) { - if (window.unit === 'week') return 'Weekly limit'; - return `${String(window.duration)}${window.unit[0] ?? ''} limit`; - } - return row.name ?? 'Limit'; -} - -function usageRowResetHint(row: ManagedUsageRow): string | undefined { +function usageRowResetHint(row: QuotaUsageRow): string | undefined { const resetAt = row.resetAt; if (resetAt === undefined) return undefined; const parsed = Date.parse(resetAt); @@ -67,8 +46,7 @@ export interface BoosterWalletInfo { } export interface ManagedUsageReport { - readonly summary: ManagedUsageRow | null; - readonly limits: readonly ManagedUsageRow[]; + readonly rows: readonly QuotaUsageRow[]; readonly extraUsage?: BoosterWalletInfo | null; } @@ -104,9 +82,8 @@ function buildSessionUsageSection( error: string | undefined, value: Colorize, muted: Colorize, - errorStyle: Colorize, ): string[] { - if (error !== undefined) return [errorStyle(` ${error}`)]; + if (error !== undefined) return [muted(` ${error}`)]; const byModel = (usage as { readonly byModel?: Record } | undefined) ?.byModel; const entries = Object.entries(byModel ?? {}); @@ -146,24 +123,20 @@ function buildManagedUsageSection( ): string[] { if (error !== undefined) return [accent('Plan usage'), errorStyle(` ${error}`)]; if (usage === undefined) return []; - const { summary, limits } = usage; - if (summary === null && limits.length === 0) { + const { rows } = usage; + if (rows.length === 0) { return [accent('Plan usage'), muted(' No usage data available.')]; } - const rows: ManagedUsageRow[] = []; - if (summary !== null) rows.push(summary); - rows.push(...limits); - const usedRatio = (r: ManagedUsageRow): number => - r.limit > 0 ? Math.max(0, Math.min(r.used / r.limit, 1)) : 0; - const labels = rows.map((r) => usageRowLabel(r)); + const labels = rows.map((r) => r.name); const labelWidth = Math.max(10, ...labels.map((l) => l.length)); - const pctWidth = Math.max(...rows.map((r) => `${Math.round(usedRatio(r) * 100)}% used`.length)); + const rowRatio = (r: QuotaUsageRow): number => safeUsageRatio(r.usedRatio); + const pctWidth = Math.max(...rows.map((r) => `${Math.round(rowRatio(r) * 100)}% used`.length)); const out: string[] = [accent('Plan usage')]; for (let i = 0; i < rows.length; i++) { const row = rows[i]!; - const ratioUsed = usedRatio(row); + const ratioUsed = rowRatio(row); const bar = renderProgressBar(ratioUsed, 20); const pct = `${Math.round(ratioUsed * 100)}% used`; const barColoured = currentTheme.fg(severityColor(ratioSeverity(ratioUsed)), bar); @@ -171,6 +144,12 @@ function buildManagedUsageSection( const resetHint = usageRowResetHint(row); const resetStr = resetHint !== undefined ? ` ${muted(resetHint)}` : ''; out.push(` ${muted(label)} ${barColoured} ${value(pct.padEnd(pctWidth, ' '))}${resetStr}`); + const breakdown = row.breakdown; + if (breakdown !== undefined) { + const kimi = Math.round(safeUsageRatio(breakdown.kimiRatio) * 100); + const code = Math.round(safeUsageRatio(breakdown.codeRatio) * 100); + out.push(` ${' '.repeat(labelWidth)} ${muted(`kimi ${String(kimi)}% · code ${String(code)}%`)}`); + } } return out; } @@ -280,17 +259,10 @@ export function buildUsageReportLines(options: UsageReportOptions): string[] { const accent = (text: string) => currentTheme.boldFg('primary', text); const value = (text: string) => currentTheme.fg('text', text); const muted = (text: string) => currentTheme.fg('textDim', text); - const errorStyle = (text: string) => currentTheme.fg('error', text); const lines: string[] = [ accent('Session usage'), - ...buildSessionUsageSection( - options.sessionUsage, - options.sessionUsageError, - value, - muted, - errorStyle, - ), + ...buildSessionUsageSection(options.sessionUsage, options.sessionUsageError, value, muted), ]; if (options.maxContextTokens > 0) { diff --git a/apps/kimi-code/src/tui/components/messages/user-message.ts b/apps/kimi-code/src/tui/components/messages/user-message.ts index 4e61ab15c..dfa339ed8 100644 --- a/apps/kimi-code/src/tui/components/messages/user-message.ts +++ b/apps/kimi-code/src/tui/components/messages/user-message.ts @@ -2,26 +2,56 @@ * Renders a user message in the transcript. */ -import { Spacer, Text, truncateToWidth, visibleWidth, type Component } from '@moonshot-ai/pi-tui'; +import { + Spacer, + Text, + truncateToWidth, + visibleWidth, + wrapTextWithAnsi, + type Component, +} from '@moonshot-ai/pi-tui'; import { ImageThumbnail } from '#/tui/components/media/image-thumbnail'; import { USER_MESSAGE_BULLET } from '#/tui/constant/symbols'; import { currentTheme } from '#/tui/theme'; import type { ImageAttachment } from '#/tui/utils/image-attachment-store'; +import { findInlineSkillTokens } from '#/tui/utils/inline-skill-tokens'; import { markOsc133Zone } from '#/tui/utils/osc133'; import { isRenderCacheEnabled } from '#/tui/utils/render-cache'; +export function firstContentLineIndex(lines: string[]): number { + let first = 0; + while (first < lines.length && lines[first]!.trim() === '') first++; + return first; +} + +export function userMessageLineHeights(text: string, width: number, bullet?: string): number[] { + const marker = bullet ?? USER_MESSAGE_BULLET; + const contentWidth = Math.max(1, width - visibleWidth(marker)); + const lines = text.split(/\r?\n/); + return lines + .slice(firstContentLineIndex(lines)) + .map((line) => wrapTextWithAnsi(line.replaceAll('\t', ' '), contentWidth).length); +} + export class UserMessageComponent implements Component { private text: string; private readonly bullet?: string; + private readonly skillNames?: readonly string[]; private spacerComponent: Spacer; private imageThumbnails: ImageThumbnail[]; private renderCache: { width: number; lines: string[] } | undefined; - constructor(text: string, images?: ImageAttachment[], bullet?: string) { + constructor( + text: string, + images?: ImageAttachment[], + bullet?: string, + skillNames?: readonly string[], + ) { this.text = text; this.bullet = bullet; + this.skillNames = skillNames; this.spacerComponent = new Spacer(1); this.imageThumbnails = images?.map((img) => new ImageThumbnail(img)) ?? []; } @@ -30,6 +60,34 @@ export class UserMessageComponent implements Component { this.renderCache = undefined; } + colorText(text: string): string { + const names = this.skillNames; + if (names === undefined || names.length === 0) { + return currentTheme.boldFg('roleUser', text); + } + const known = new Set(names.map(normalizeSkillTokenName)); + const tokens = findInlineSkillTokens(text, { + isKnownSkill: (commandName) => known.has(normalizeSkillTokenName(commandName)), + includeLeading: true, + }); + if (tokens.length === 0) { + return currentTheme.boldFg('roleUser', text); + } + const segments: string[] = []; + let cursor = 0; + for (const token of tokens) { + if (token.start > cursor) { + segments.push(currentTheme.boldFg('roleUser', text.slice(cursor, token.start))); + } + segments.push(currentTheme.boldFg('primary', text.slice(token.start, token.end))); + cursor = token.end; + } + if (cursor < text.length) { + segments.push(currentTheme.boldFg('roleUser', text.slice(cursor))); + } + return segments.join(''); + } + invalidate(): void { this.markRenderDirty(); for (const img of this.imageThumbnails) { @@ -61,10 +119,7 @@ export class UserMessageComponent implements Component { lines.push(line); } - // Text is re-dyed from the current theme; invalidate() (theme change) clears - // the render cache so the new colours are picked up on the next render. - const coloredText = currentTheme.boldFg('roleUser', this.text); - const textLines = new Text(coloredText, 0, 0).render(contentWidth); + const textLines = new Text(this.colorText(this.text), 0, 0).render(contentWidth); for (let i = 0; i < textLines.length; i++) { const prefix = i === 0 ? bullet : ' '.repeat(bulletWidth); lines.push(prefix + textLines[i]); @@ -96,6 +151,10 @@ export class UserMessageComponent implements Component { } } +function normalizeSkillTokenName(name: string): string { + return name.startsWith('skill:') ? name.slice('skill:'.length) : name; +} + function isImageLine(line: string): boolean { return line.includes('\u001B_G') || line.includes('\u001B]1337;File='); } diff --git a/apps/kimi-code/src/tui/components/panes/activity-pane.ts b/apps/kimi-code/src/tui/components/panes/activity-pane.ts index 43f9ece41..461e4514c 100644 --- a/apps/kimi-code/src/tui/components/panes/activity-pane.ts +++ b/apps/kimi-code/src/tui/components/panes/activity-pane.ts @@ -26,7 +26,10 @@ export class ActivityPaneComponent extends Container { this.spinnerRef = options.spinner; if ( - (options.mode === 'waiting' || options.mode === 'tool' || options.mode === 'composing') && + (options.mode === 'waiting' || + options.mode === 'tool' || + options.mode === 'composing' || + options.mode === 'thinking') && options.spinner !== undefined ) { this.addChild(new Spacer(1)); diff --git a/apps/kimi-code/src/tui/components/panes/btw-panel.ts b/apps/kimi-code/src/tui/components/panes/btw-panel.ts index 1982b5d1b..ba9d1dbd5 100644 --- a/apps/kimi-code/src/tui/components/panes/btw-panel.ts +++ b/apps/kimi-code/src/tui/components/panes/btw-panel.ts @@ -1,14 +1,11 @@ import type { Component, MarkdownTheme } from '@moonshot-ai/pi-tui'; -import { - Markdown, - Text, - truncateToWidth, - visibleWidth, -} from '@moonshot-ai/pi-tui'; +import { Text, truncateToWidth, visibleWidth } from '@moonshot-ai/pi-tui'; import chalk from 'chalk'; +import { Markdown } from '../markdown/markdown'; import { THINKING_PREVIEW_LINES } from '../../constant/rendering'; import { currentTheme } from '../../theme'; +import type { KimiMarkdownTheme } from '../../theme/pi-tui-theme'; import type { InlineSkillActivation } from '../../types'; import { createMarkdownOptions } from '../../utils/markdown-options'; @@ -200,8 +197,12 @@ export class BtwPanelComponent implements Component { const answer = turn.answer.trim(); const thinking = turn.thinking.trim(); if (answer.length > 0) { + const theme: KimiMarkdownTheme = + turn.phase === 'running' + ? { ...this.options.markdownTheme, transient: true } + : this.options.markdownTheme; lines.push( - ...new Markdown(answer, 0, 0, this.options.markdownTheme, undefined, createMarkdownOptions()).render(width), + ...new Markdown(answer, 0, 0, theme, undefined, createMarkdownOptions()).render(width), ); } else if (thinking.length > 0) { const thinkingLines = new Text(chalk.hex(currentTheme.palette.textDim)(thinking), 0, 0).render( diff --git a/apps/kimi-code/src/tui/components/panes/queue-pane.ts b/apps/kimi-code/src/tui/components/panes/queue-pane.ts index 209c90266..17cdbde7e 100644 --- a/apps/kimi-code/src/tui/components/panes/queue-pane.ts +++ b/apps/kimi-code/src/tui/components/panes/queue-pane.ts @@ -22,9 +22,13 @@ export class QueuePaneComponent extends Container { this.messages = options.messages; if (options.messages.length > 0) { - // Bash commands (`! …`) are not steerable, so only advertise Ctrl-S when - // there is at least one plain-text or skill item steering would send. - const hasSteerable = options.messages.some((m) => m.mode !== 'bash'); + // Bash commands (`! …`) are not steerable, and a queued /compact + // barriers everything behind it — only advertise Ctrl-S when an item + // ahead of the first /compact would actually steer. + const firstCompact = options.messages.findIndex((m) => m.mode === 'compact'); + const steerableWindow = + firstCompact === -1 ? options.messages : options.messages.slice(0, firstCompact); + const hasSteerable = steerableWindow.some((m) => m.mode !== 'bash'); const canSteer = options.canSteerImmediately && hasSteerable; this.hint = options.isCompacting && !options.isStreaming diff --git a/apps/kimi-code/src/tui/components/panes/survey-panel.ts b/apps/kimi-code/src/tui/components/panes/survey-panel.ts index 046b72f4d..8b2f133ea 100644 --- a/apps/kimi-code/src/tui/components/panes/survey-panel.ts +++ b/apps/kimi-code/src/tui/components/panes/survey-panel.ts @@ -1,3 +1,4 @@ +import type { RatingResponse } from '@moonshot-ai/kimi-code-product/session-rating'; import type { Component } from '@moonshot-ai/pi-tui'; import { truncateToWidth, visibleWidth, wrapTextWithAnsi } from '@moonshot-ai/pi-tui'; @@ -9,13 +10,12 @@ import { } from '../../constant/survey'; import { currentTheme } from '../../theme'; -import type { SurveyResponse } from '../../utils/survey-policy'; export type SurveyPanelPhase = 'open' | 'pending' | 'thanks'; export interface SurveyPanelView { phase: SurveyPanelPhase; - response?: Exclude; + response?: RatingResponse; hoverIndex?: number; } @@ -23,7 +23,7 @@ const DOT = '●'; const DOT_PREFIX_WIDTH = 2; const OPTION_INDENT = ' '; -const RESPONSE_LABELS: Record, string> = { +const RESPONSE_LABELS: Record = { bad: 'Bad', fine: 'Fine', good: 'Good', diff --git a/apps/kimi-code/src/tui/config.ts b/apps/kimi-code/src/tui/config.ts index e09a8fe28..c4dd547a0 100644 --- a/apps/kimi-code/src/tui/config.ts +++ b/apps/kimi-code/src/tui/config.ts @@ -12,11 +12,16 @@ import { dirname, join } from 'node:path'; import { parse as parseToml } from 'smol-toml'; import { z } from 'zod'; +import type { MermaidRenderMode } from '#/tui/utils/markdown-options'; import { getDataDir } from '#/utils/paths'; export const INVALID_TUI_CONFIG_MESSAGE = 'Invalid TUI config in ~/.kimi-code/tui.toml; using defaults.'; +function legacyFullscreenEnvMode(): TuiMode | undefined { + return process.env['KIMI_CODE_TUI_FULL_SCREEN'] === '1' ? 'fullscreen' : undefined; +} + export const TuiThemeSchema = z.string(); export const NotificationConditionSchema = z.enum(['unfocused', 'always']); @@ -51,12 +56,26 @@ export const DEFAULT_STATUS_LINE_CONFIG: StatusLineConfig = { command: null, }; +export const MarkdownConfigSchema = z.object({ + mermaid: z.enum(['off', 'final']), +}); +export type MarkdownConfig = z.infer; + +export const DEFAULT_MARKDOWN_CONFIG: MarkdownConfig = { + mermaid: 'final', +}; + +export const TuiModeSchema = z.enum(['regular', 'fullscreen']); +export type TuiMode = z.infer; + export const TuiConfigFileSchema = z.object({ theme: TuiThemeSchema.optional(), + tui_mode: z.string().optional(), render_latex: z.boolean().optional(), disable_paste_burst: z.boolean().optional(), cache_expiry_hint: z.boolean().optional(), disable_feedback_survey: z.boolean().optional(), + auto_session_title: z.boolean().optional(), editor: z .object({ command: z.string().optional(), @@ -74,10 +93,16 @@ export const TuiConfigFileSchema = z.object({ }) .optional(), status_line: StatusLineFileConfigSchema.optional(), + markdown: z + .object({ + mermaid: z.string().optional(), + }) + .optional(), }); export const TuiConfigSchema = z.object({ theme: TuiThemeSchema, + tuiMode: TuiModeSchema.optional(), /** LaTeX math rendering in Markdown; optional only so older hand-built test * fixtures still typecheck. */ renderLatex: z.boolean().optional(), @@ -86,12 +111,18 @@ export const TuiConfigSchema = z.object({ * fixtures from before this field existed still typecheck. */ cacheExpiryHint: z.boolean().optional(), disableFeedbackSurvey: z.boolean().optional(), + /** Present in every normalized config; optional only so hand-built test + * fixtures from before this field existed still typecheck. */ + autoSessionTitle: z.boolean().optional(), editorCommand: z.string().nullable(), notifications: NotificationsConfigSchema, upgrade: UpgradePreferencesSchema, /** Present in every normalized config; optional only so hand-built test * fixtures from before this field existed still typecheck. */ statusLine: StatusLineConfigSchema.optional(), + /** Present in every normalized config; optional only so hand-built test + * fixtures from before this field existed still typecheck. */ + markdown: MarkdownConfigSchema.optional(), }); export type TuiConfigFileShape = z.infer; @@ -110,14 +141,16 @@ export const DEFAULT_UPGRADE_PREFERENCES: UpgradePreferences = { export const DEFAULT_TUI_CONFIG: TuiConfig = TuiConfigSchema.parse({ theme: 'auto', + tuiMode: 'regular', renderLatex: true, disablePasteBurst: false, cacheExpiryHint: true, - disableFeedbackSurvey: false, + autoSessionTitle: true, editorCommand: null, notifications: DEFAULT_NOTIFICATIONS_CONFIG, upgrade: DEFAULT_UPGRADE_PREFERENCES, statusLine: DEFAULT_STATUS_LINE_CONFIG, + markdown: DEFAULT_MARKDOWN_CONFIG, }); /** @@ -144,36 +177,87 @@ export async function loadTuiConfig( warn?: (message: string) => void, ): Promise { if (!existsSync(filePath)) { - await saveTuiConfig(DEFAULT_TUI_CONFIG, filePath); - return DEFAULT_TUI_CONFIG; + const envTuiMode = legacyFullscreenEnvMode(); + const config: TuiConfig = + envTuiMode === undefined ? DEFAULT_TUI_CONFIG : { ...DEFAULT_TUI_CONFIG, tuiMode: envTuiMode }; + try { + await saveTuiConfig(config, filePath); + } catch { + warn?.('[tui.toml] could not save the default config'); + } + return config; } try { const text = await readFile(filePath, 'utf-8'); - return parseTuiConfig(text, warn); + const shape = parseTuiConfigShape(text); + const config = normalizeTuiConfig(shape, warn); + if (shape.tui_mode !== undefined) { + return config; + } + const envTuiMode = legacyFullscreenEnvMode(); + if (envTuiMode === undefined) { + return config; + } + const migrated: TuiConfig = { ...config, tuiMode: envTuiMode }; + try { + await saveTuiConfig(migrated, filePath); + } catch { + warn?.('[tui.toml] could not save the migrated tui_mode preference'); + } + return migrated; } catch { throw new TuiConfigParseError(DEFAULT_TUI_CONFIG); } } +function parseTuiConfigShape(tomlText: string): TuiConfigFileShape { + const raw = tomlText.trim().length === 0 ? {} : (parseToml(tomlText) as Record); + return TuiConfigFileSchema.parse(raw); +} + export function parseTuiConfig( tomlText: string, warn?: (message: string) => void, ): TuiConfig { - if (tomlText.trim().length === 0) { - return DEFAULT_TUI_CONFIG; - } - const raw = parseToml(tomlText) as Record; - const parsed = TuiConfigFileSchema.parse(raw); - return normalizeTuiConfig(parsed, warn); + return normalizeTuiConfig(parseTuiConfigShape(tomlText), warn); } export async function saveTuiConfig( config: TuiConfig, filePath: string = getTuiConfigPath(), ): Promise { + let legacyValue = config.disableFeedbackSurvey; + if (legacyValue === undefined && existsSync(filePath)) { + const source = await readFile(filePath, 'utf-8'); + try { + const value = parseToml(source)['disable_feedback_survey']; + if (typeof value === 'boolean') legacyValue = value; + } catch { + legacyValue = undefined; + } + } await mkdir(dirname(filePath), { recursive: true }); - await writeFile(filePath, renderTuiConfig(config), 'utf-8'); + await writeFile(filePath, renderTuiConfig({ + ...config, + disableFeedbackSurvey: legacyValue, + }), 'utf-8'); +} + +export async function removeLegacySurveySetting(filePath: string = getTuiConfigPath()): Promise { + const lines = (await readFile(filePath, 'utf-8')).split('\n'); + let inTable = false; + let removed = false; + const kept = lines.filter((line) => { + if (/^\s*\[/.test(line)) inTable = true; + if (!inTable && /^\s*["']?disable_feedback_survey["']?\s*=/.test(line)) { + removed = true; + return false; + } + return true; + }); + if (!removed) return; + await writeFile(filePath, kept.join('\n'), 'utf-8'); } export function normalizeTuiConfig( @@ -196,13 +280,32 @@ export function normalizeTuiConfig( return known; }) .map((item) => item as StatusLineItem) ?? null; + const mermaidValue = config.markdown?.mermaid; + let mermaidMode: MermaidRenderMode = DEFAULT_MARKDOWN_CONFIG.mermaid; + if (mermaidValue !== undefined) { + if (mermaidValue === 'off' || mermaidValue === 'final') { + mermaidMode = mermaidValue; + } else { + warn(`[tui.toml] ignoring unknown markdown.mermaid value: ${mermaidValue}`); + } + } + const tuiModeValue = config.tui_mode; + let tuiMode: TuiMode = 'regular'; + if (tuiModeValue !== undefined) { + if (tuiModeValue === 'regular' || tuiModeValue === 'fullscreen') { + tuiMode = tuiModeValue; + } else { + warn(`[tui.toml] ignoring unknown tui_mode value: ${tuiModeValue}`); + } + } return TuiConfigSchema.parse({ theme: config.theme ?? DEFAULT_TUI_CONFIG.theme, + tuiMode, renderLatex: config.render_latex ?? DEFAULT_TUI_CONFIG.renderLatex, disablePasteBurst: config.disable_paste_burst ?? DEFAULT_TUI_CONFIG.disablePasteBurst, cacheExpiryHint: config.cache_expiry_hint ?? DEFAULT_TUI_CONFIG.cacheExpiryHint, - disableFeedbackSurvey: - config.disable_feedback_survey ?? DEFAULT_TUI_CONFIG.disableFeedbackSurvey, + disableFeedbackSurvey: config.disable_feedback_survey, + autoSessionTitle: config.auto_session_title ?? DEFAULT_TUI_CONFIG.autoSessionTitle, editorCommand: command === undefined || command.length === 0 ? null : command, notifications: { enabled: config.notifications?.enabled ?? DEFAULT_NOTIFICATIONS_CONFIG.enabled, @@ -219,13 +322,18 @@ export function normalizeTuiConfig( ? null : statusLineCommand, }, + markdown: { + mermaid: mermaidMode, + }, }); } export function renderTuiConfig(config: TuiConfig): string { // An active status_line must round-trip: any preference save rewrites the // whole file, so the section is emitted live when set and left as a - // commented-out guide when unset. + // commented-out guide when unset. The [markdown] section follows the same + // pattern: live when mermaid rendering is turned off, commented guide at + // the default. const statusItems = config.statusLine?.items; const statusCommand = config.statusLine?.command; const statusLines: string[] = []; @@ -235,6 +343,14 @@ export function renderTuiConfig(config: TuiConfig): string { if (statusCommand) { statusLines.push(`command = "${escapeTomlBasicString(statusCommand)}"`); } + const tuiModeLine = `tui_mode = "${config.tuiMode ?? 'regular'}" # "regular" | "fullscreen" ("fullscreen" is experimental)`; + const markdownSection = + config.markdown?.mermaid === 'off' + ? `[markdown]\nmermaid = "off" # "final" | "off"\n` + : `# [markdown] +# Draw mermaid code blocks as diagrams in the terminal; "off" keeps highlighted source. +# mermaid = "final" # "final" | "off" +`; const statusSection = statusLines.length > 0 ? `[status_line]\n${statusLines.join('\n')}\n` @@ -250,10 +366,11 @@ export function renderTuiConfig(config: TuiConfig): string { # Agent/runtime settings stay in ~/.kimi-code/config.toml. theme = "${escapeTomlBasicString(config.theme)}" # "auto" | "dark" | "light" | custom theme name +${tuiModeLine} render_latex = ${String(config.renderLatex !== false)} # false keeps LaTeX math in assistant messages as raw source disable_paste_burst = ${String(config.disablePasteBurst)} # true disables non-bracketed paste-burst fallback cache_expiry_hint = ${String(config.cacheExpiryHint !== false)} # false disables the "cache expired" dialog on resume / idle submit -disable_feedback_survey = ${String(config.disableFeedbackSurvey === true)} # true hides the occasional session rating prompt +${config.disableFeedbackSurvey === undefined ? '' : `disable_feedback_survey = ${String(config.disableFeedbackSurvey)}\n`}auto_session_title = ${String(config.autoSessionTitle !== false)} # false stops the TUI from auto-generating a session title after the first turn [editor] command = "${escapeTomlBasicString(config.editorCommand ?? '')}" # Empty uses $VISUAL / $EDITOR @@ -265,6 +382,7 @@ notification_condition = "${config.notifications.condition}" # "unfocused" | "al [upgrade] auto_install = ${String(config.upgrade.autoInstall)} # true | false +${markdownSection} ${statusSection}`; } diff --git a/apps/kimi-code/src/tui/constant/kimi-tui.ts b/apps/kimi-code/src/tui/constant/kimi-tui.ts index 45c77d177..5e68beb2c 100644 --- a/apps/kimi-code/src/tui/constant/kimi-tui.ts +++ b/apps/kimi-code/src/tui/constant/kimi-tui.ts @@ -3,18 +3,21 @@ import { DEFAULT_OAUTH_PROVIDER_NAME } from '#/constant/app'; export { DEFAULT_OAUTH_PROVIDER_NAME, OAUTH_LOGIN_REQUIRED_CODE, PRODUCT_NAME } from '#/constant/app'; export const LLM_NOT_SET_MESSAGE = 'LLM not set, send "/login" to login'; -export const NO_ACTIVE_SESSION_MESSAGE = 'No active session. Send /login to login.'; +export const NO_ACTIVE_SESSION_MESSAGE = 'No active session. Send a message to start one.'; export const CTRL_D_HINT = 'Press Ctrl+D again to exit'; export const CTRL_C_HINT = 'Press Ctrl+C again to exit'; +export const SHUTTING_DOWN_HINT = 'Shutting down… (running shutdown hooks)'; export const MAIN_AGENT_ID = 'main'; export const OAUTH_LOGIN_REQUIRED_STARTUP_NOTICE = 'OAuth login expired. Send /login to login.'; +export const TUI_MODE_RESTART_NOTICE = 'TUI mode takes effect after restarting Kimi Code.'; export const SESSIONLESS_STARTUP_NOTICE = 'No session yet — one will be created on your first message.'; -export const TOWER_STATUS_PROMPT = - 'Report the current tower status: call TowerStatus and give a compact summary.'; export const TOWER_TEARDOWN_PROMPT = 'Tear down the tower: call TowerTeardown and report what it did. It refuses to destroy dirty worktrees unless forced.'; export const EXIT_CONFIRM_WINDOW_MS = 1500; +// Per-session cap on automatic title-generation attempts; failures stay +// retryable across turns until the cap so a transient error is not sticky. +export const MAX_AUTO_TITLE_ATTEMPTS = 3; // Time window for treating two consecutive Esc presses as a double-Esc, which // opens the undo selector. Kept short (double-click feel) so two deliberate // presses far apart don't accidentally trigger undo. diff --git a/apps/kimi-code/src/tui/constant/rendering.ts b/apps/kimi-code/src/tui/constant/rendering.ts index dc847f1f4..c941cbe49 100644 --- a/apps/kimi-code/src/tui/constant/rendering.ts +++ b/apps/kimi-code/src/tui/constant/rendering.ts @@ -6,9 +6,9 @@ export const MESSAGE_INDENT = ' '; // transcript messages. The fullscreen renderer strips them at paint and uses // the A marker for previous/next-prompt navigation (Ctrl-Shift-Up/Down); in // regular mode they pass through to native scrollback invisibly. -export const OSC133_ZONE_START = '\x1b]133;A\x07'; -export const OSC133_ZONE_END = '\x1b]133;B\x07'; -export const OSC133_ZONE_FINAL = '\x1b]133;C\x07'; +export const OSC133_ZONE_START = '\u001B]133;A\u0007'; +export const OSC133_ZONE_END = '\u001B]133;B\u0007'; +export const OSC133_ZONE_FINAL = '\u001B]133;C\u0007'; // Outer left/right padding applied to the transcript, panels, and the // statusline so the chrome's left edge lines up with the input box's @@ -30,7 +30,7 @@ export const TRUNCATION_ELLIPSIS = '…'; // ANSI escape sequences (CSI, OSC) — tool output can carry them — that a // width-aware cut must treat as zero-width atomic units: never counted toward // the budget, never split in half. -export const ANSI_ESCAPE_PATTERN = /\x1b(?:\[[0-9;?]*[ -/]*[@-~]|\][^\x07\x1b]*(?:\x07|\x1b\\))/g; +export const ANSI_ESCAPE_PATTERN = /\u001B(?:\[[0-9;?]*[ -/]*[@-~]|\][^\u0007\u001B]*(?:\u0007|\u001B\\))/g; // Code units a single terminal cell may hold before a tail-preserving cut's // window can no longer see it: a ZWJ family emoji is about eleven per two // cells, and combining sequences run longer. @@ -66,6 +66,14 @@ export const SUBAGENT_TOOL_OUTPUT_MAX_CHARS = 8000; // beyond the cap. export const SUBAGENT_ARG_STRING_MAX_CHARS = 16 * 1024; +// Retention caps for an agent-swarm member's terminal-state label: terminal +// cells render a single-line label, so only a bounded prefix of the final +// output is worth keeping. Display width alone does not bound memory — ANSI +// sequences and zero-width graphemes add unbounded code units within a +// single column — so the retained label is capped by storage length as well. +export const MAX_FINAL_OUTPUT_LABEL_CHARS = 400; +export const MAX_FINAL_OUTPUT_LABEL_CODE_UNITS = 2_000; + // Animation frames are shared by the login/update loaders and live thinking. export const BRAILLE_SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏']; export const BRAILLE_SPINNER_INTERVAL_MS = 80; diff --git a/apps/kimi-code/src/tui/constant/survey.ts b/apps/kimi-code/src/tui/constant/survey.ts index dd11b3f86..0c6780e03 100644 --- a/apps/kimi-code/src/tui/constant/survey.ts +++ b/apps/kimi-code/src/tui/constant/survey.ts @@ -1,16 +1,12 @@ export const SURVEY_IDLE_EVALUATION_DELAY_MS = 2000; -export const SURVEY_IDLE_STABILITY_MS = 2000; - -export const SURVEY_MOUNT_PROTECTION_MS = 600; - -export const SURVEY_DIGIT_DEBOUNCE_MS = 400; - export const SURVEY_PENDING_UNDO_WINDOW_MS = 3000; export const SURVEY_THANKS_DURATION_MS = 5000; -export const SURVEY_CONFIG_REFRESH_INTERVAL_MS = 3_600_000; +export const SURVEY_MOUNT_PROTECTION_MS = 600; + +export const SURVEY_DIGIT_DEBOUNCE_MS = 400; export const SURVEY_MIN_OPTIONS_WIDTH = 12; diff --git a/apps/kimi-code/src/tui/constant/symbols.ts b/apps/kimi-code/src/tui/constant/symbols.ts index bba41d60a..c272a2005 100644 --- a/apps/kimi-code/src/tui/constant/symbols.ts +++ b/apps/kimi-code/src/tui/constant/symbols.ts @@ -3,7 +3,7 @@ export const STATUS_BULLET = '● '; // Shared transcript markers. Keep widths stable because message wrapping // assumes the marker occupies the leading cells. -export const USER_MESSAGE_BULLET = '✨ '; +export const USER_MESSAGE_BULLET = '❯ '; export const SUCCESS_MARK = '✓ '; export const FAILURE_MARK = '✗ '; diff --git a/apps/kimi-code/src/tui/constant/tips.ts b/apps/kimi-code/src/tui/constant/tips.ts index e383e4b45..e2ccd3a95 100644 --- a/apps/kimi-code/src/tui/constant/tips.ts +++ b/apps/kimi-code/src/tui/constant/tips.ts @@ -38,7 +38,7 @@ export const ALL_TIPS: readonly ToolbarTip[] = [ { text: 'shift+enter: newline' }, { text: 'ctrl+c: cancel' }, { text: '/theme to switch the terminal UI theme' }, - { text: '/auto when you want Kimi to handle approvals and keep going unattended' }, + { text: '/auto when you want Kimi to handle approvals and keep going; only plans in Plan mode wait for you' }, { text: '/yolo to skip most approvals for trusted batch work, only use it in repos you trust' }, { text: '/help: show commands' }, { text: '/compact compresses context when it gets long', priority: 2 }, diff --git a/apps/kimi-code/src/tui/controllers/auth-flow.ts b/apps/kimi-code/src/tui/controllers/auth-flow.ts index 246706f14..11ddfa3ca 100644 --- a/apps/kimi-code/src/tui/controllers/auth-flow.ts +++ b/apps/kimi-code/src/tui/controllers/auth-flow.ts @@ -1,21 +1,17 @@ import { - removeProviderFromConfig, - type KimiConfig, type KimiHarness, - type OAuthRef, + type RefreshProviderModelsOptions, + type RefreshProviderModelsResponse, type Session, type ThinkingEffort, } from '@moonshot-ai/kimi-code-sdk'; -import { createKimiCodeUserAgent } from '#/cli/version'; - -import { OAUTH_LOGIN_REQUIRED_STARTUP_NOTICE } from '../constant/kimi-tui'; import { - refreshAllProviderModels, - type RefreshProviderHost, - type RefreshProviderScope, - type RefreshResult, -} from '../utils/refresh-providers'; + confirmThenPerformModelSwitch, + matchedModelSwitchRule, +} from '../commands/config'; +import type { SlashCommandHost } from '../commands/dispatch'; +import { OAUTH_LOGIN_REQUIRED_STARTUP_NOTICE } from '../constant/kimi-tui'; import { thinkingEffortFromConfig } from '../utils/thinking-config'; import type { AppState, KimiTUIOptions } from '../types'; @@ -94,10 +90,13 @@ export class AuthFlowController { /** * Re-read config and reactivate the persisted model after login or a - * config-refreshing command. Returns whatever the activation reports (see - * {@link activateModelAfterLogin}); `false` when no activation ran. + * config-refreshing command. `effortOverride` is the caller's picked effort + * and wins over the config-derived one when the confirmation gate mounts. + * Returns whatever the activation reports (see {@link + * activateModelAfterLogin}), 'gated' when a cloud rule handed the switch to + * the confirmation dialog instead, and `false` when no activation ran. */ - async refreshConfigAfterLogin(): Promise { + async refreshConfigAfterLogin(effortOverride?: ThinkingEffort): Promise { const { host } = this; const config = await host.harness.getConfig({ reload: true }); const availableModels = config.models ?? {}; @@ -115,10 +114,26 @@ export class AuthFlowController { return false; } - const activated = await this.activateModelAfterLogin( - defaultModel, - thinkingEffortFromConfig(config.thinking), - ); + const effort = thinkingEffortFromConfig(config.thinking); + const slashHost = this.host as unknown as SlashCommandHost; + host.setAppState({ availableModels, availableProviders }); + if (matchedModelSwitchRule(slashHost, defaultModel) !== undefined) { + // A matching cloud rule gates the activation exactly like a picker + // switch: the dialog's actions own the session switch ('session' scope — + // the persisted default is already in config), so this refresh must not + // force the model patch over the user's choice. The catalog refresh must + // land BEFORE the match above, or an alias introduced by this login is + // invisible to the matcher and the gate never fires. + confirmThenPerformModelSwitch( + slashHost, + defaultModel, + effortOverride ?? effort ?? slashHost.state.appState.thinkingEffort, + 'session', + ); + return 'gated'; + } + + const activated = await this.activateModelAfterLogin(defaultModel, effort); if (host.session === undefined) { // Session-less v2: also hydrate permission/plan defaults from the // refreshed config, same as startup. @@ -163,77 +178,22 @@ export class AuthFlowController { * config. Runs best-effort: individual provider failures are collected * and returned instead of thrown. */ - async refreshProviderModels(): Promise { - return this.refreshProviderModelsWithScope('all'); + async refreshProviderModels( + options?: RefreshProviderModelsOptions, + ): Promise { + const result = await this.host.harness.refreshProviderModels(options); + // The engine persists provider-only config changes (type, baseUrl, …) + // while reporting the provider as unchanged, so reload even when no model + // changed. + await this.refreshAvailableModels(); + return result; } - async refreshOAuthProviderModels(): Promise { - return this.refreshProviderModelsWithScope('oauth'); - } - - private async refreshProviderModelsWithScope(scope: RefreshProviderScope): Promise { - const result = await refreshAllProviderModels(this.buildRefreshHost(), { scope }); + async refreshOAuthProviderModels(): Promise { + const result = await this.host.harness.refreshProviderModels({ scope: 'oauth' }); if (result.changed.length > 0) { await this.refreshAvailableModels(); } return result; } - - /** - * Build the refresh orchestrator's persistence host. When the harness can - * persist several config sections as ONE atomic write (the v2 engine's - * `replaceSections`), the orchestrator's two-phase contract (removeProvider - * then setConfig) is absorbed the same way the v2 engine's own refresh path - * does it: the removal is staged in memory only, and the following - * setConfig persists the complete records in a single write — so a process - * exit mid-refresh can never leave config.toml in a "provider removed, not - * yet restored" state. The v1 harness keeps the legacy host (two - * whole-document writes, each atomic on its own). - */ - private buildRefreshHost(): RefreshProviderHost { - const { host } = this; - const resolveOAuthToken = async (providerName: string, oauthRef?: OAuthRef): Promise => { - const tokenProvider = host.harness.auth.resolveOAuthTokenProvider(providerName, oauthRef); - return tokenProvider.getAccessToken(); - }; - const userAgent = createKimiCodeUserAgent(); - if (!host.harness.supportsAtomicSectionReplace()) { - return { - getConfig: () => host.harness.getConfig({ reload: true }), - removeProvider: (id) => host.harness.removeProvider(id), - setConfig: (patch) => host.harness.setConfig(patch), - resolveOAuthToken, - userAgent, - }; - } - let staged: KimiConfig | undefined; - const requireStaged = (): KimiConfig => { - if (staged === undefined) { - throw new Error('refresh host: getConfig must be called before writes'); - } - return staged; - }; - return { - getConfig: async () => { - staged = await host.harness.getConfig({ reload: true }); - return staged; - }, - removeProvider: (id) => { - staged = removeProviderFromConfig(requireStaged(), id); - return Promise.resolve(staged); - }, - setConfig: async (patch) => { - // The orchestrator always passes complete records (built from a full - // clone), so the Partial-shaped patch is a full KimiConfig overlay. - staged = { ...requireStaged(), ...patch } as KimiConfig; - // Object.entries keeps keys whose value is `undefined`, so a cleared - // section (e.g. a dangling defaultModel) is expressed as a removal in - // the atomic write; sections absent from the patch stay untouched. - await host.harness.replaceConfigSections(Object.fromEntries(Object.entries(patch))); - return staged; - }, - resolveOAuthToken, - userAgent, - }; - } } diff --git a/apps/kimi-code/src/tui/controllers/btw-panel.ts b/apps/kimi-code/src/tui/controllers/btw-panel.ts index 2a46f0e9d..8dffc2014 100644 --- a/apps/kimi-code/src/tui/controllers/btw-panel.ts +++ b/apps/kimi-code/src/tui/controllers/btw-panel.ts @@ -11,7 +11,17 @@ import { BtwPanelComponent } from '../components/panes/btw-panel'; import { formatErrorMessage } from '../utils/event-payload'; import { formatHookResultPlain } from '../utils/hook-result-format'; import { createMarkdownTheme } from '../theme/pi-tui-theme'; -import type { InlineSkillActivation } from '../types'; +import type { InlineSkillActivation, PreparedSkillActivations } from '../types'; +import { MEDIA_INGESTION_SUBMIT_WAIT_MS } from '../constant/media'; +import type { ImageAttachmentStore } from '../utils/image-attachment-store'; +import { + extractMediaAttachments, + originalsDirForSession, + pendingMediaIngestions, + resolveOriginalCaptions, + type ExtractionResult, +} from '../utils/image-placeholder'; +import type { StagingLease, StagingLeaseTracker } from './staging-leases'; import type { TUIState } from '../tui-state'; const BTW_BUSY_NOTICE = 'Wait for /btw to finish before sending another question.'; @@ -22,6 +32,9 @@ export interface BtwPanelHost { readonly harness: KimiHarness; showError(msg: string): void; + validateMediaCapabilities(extraction: ExtractionResult): boolean; + prepareSkillActivations(activations: readonly InlineSkillActivation[]): PreparedSkillActivations; + releaseSkillArgumentMedia(prepared: PreparedSkillActivations): void; } export class BtwPanelController { @@ -32,8 +45,13 @@ export class BtwPanelController { } | undefined; private readonly panelsByAgentId = new Map(); + private readonly cancelledAgentIds = new Set(); - constructor(private readonly host: BtwPanelHost) {} + constructor( + private readonly host: BtwPanelHost, + private readonly imageStore: ImageAttachmentStore, + private readonly staging: StagingLeaseTracker, + ) {} open( agentId: string, @@ -84,6 +102,7 @@ export class BtwPanelController { cancelRunning(): boolean { const active = this.active; if (active === undefined || !active.panel.isRunning()) return false; + this.cancelledAgentIds.add(active.agentId); void this.cancelAgent(active.agentId); return true; } @@ -109,6 +128,8 @@ export class BtwPanelController { } routeEvent(event: Event): boolean { + if (event.type === 'turn.started') this.staging.handleTurnStarted(event, event.agentId); + if (event.type === 'turn.ended') this.staging.handleTurnEnded(event, event.agentId); const panel = this.panelsByAgentId.get(event.agentId); if (panel === undefined) return false; @@ -126,6 +147,7 @@ export class BtwPanelController { this.host.state.ui.requestRender(); return true; case 'turn.ended': + this.cancelledAgentIds.delete(event.agentId); if (event.reason === 'completed') { panel.markDone(); } else { @@ -160,6 +182,7 @@ export class BtwPanelController { for (const [agentId, candidate] of this.panelsByAgentId) { if (candidate === panel) { this.panelsByAgentId.delete(agentId); + this.cancelledAgentIds.delete(agentId); } } if (this.active?.panel === panel) this.active = undefined; @@ -188,14 +211,7 @@ export class BtwPanelController { } const send = inlineSkillActivations !== undefined && inlineSkillActivations.length > 0 - ? () => - session.promptWithSkills( - prompt, - inlineSkillActivations.map((activation) => ({ - name: activation.skillName, - args: activation.args, - })), - ) + ? () => this.promptWithSkills(agentId, session, prompt, panel, inlineSkillActivations) : () => session.prompt(prompt); void this.withInteractiveAgent(agentId, send).catch((error: unknown) => { panel.markFailed(`Failed to send /btw prompt: ${formatErrorMessage(error)}`); @@ -203,6 +219,67 @@ export class BtwPanelController { }); } + private async promptWithSkills( + agentId: string, + session: Session, + prompt: string, + panel: BtwPanelComponent, + activations: readonly InlineSkillActivation[], + ): Promise { + let extraction: ExtractionResult | undefined; + let prepared: PreparedSkillActivations | undefined; + let lease: StagingLease | undefined; + try { + const ingestionWait = pendingMediaIngestions( + prompt, this.imageStore, MEDIA_INGESTION_SUBMIT_WAIT_MS, + ); + if (ingestionWait !== undefined) await ingestionWait; + // Ctrl-C during the media wait: no child turn existed for cancel() to + // stop, so settle the question here instead of dispatching it anyway. + if (this.cancelledAgentIds.delete(agentId)) { + panel.markFailed('Interrupted by user'); + return; + } + if ( + this.host.session !== session || + this.panelsByAgentId.get(agentId) !== panel || + !panel.isRunning() + ) return; + extraction = extractMediaAttachments(prompt, this.imageStore); + if (!this.host.validateMediaCapabilities(extraction)) { + throw new Error('Current model does not support this media input.'); + } + prepared = this.host.prepareSkillActivations(activations); + const input = extraction.hasMedia + ? resolveOriginalCaptions( + extraction.parts, extraction.imageAttachmentIds, this.imageStore, + originalsDirForSession(session), + ) + : prompt; + lease = this.staging.create( + [ + ...new Set([...extraction.imageAttachmentIds, ...extraction.videoAttachmentIds]), + ...prepared.mediaAttachmentIds, + ], + prepared.stagingPaths, + 'user', + undefined, + agentId, + ); + const request = session.promptWithSkills(input, prepared.skills); + this.staging.trackDispatch(lease, request, () => {}); + await request; + } catch (error) { + if (lease === undefined) { + if (prepared !== undefined) this.host.releaseSkillArgumentMedia(prepared); + if (extraction !== undefined) { + this.staging.releaseMedia([...extraction.imageAttachmentIds, ...extraction.videoAttachmentIds], []); + } + } + throw error; + } + } + private async cancelAgent(agentId: string): Promise { const session = this.host.session; if (session === undefined) return; diff --git a/apps/kimi-code/src/tui/controllers/cache-hint-controller.ts b/apps/kimi-code/src/tui/controllers/cache-hint-controller.ts index 4cf40c936..5b8a8f826 100644 --- a/apps/kimi-code/src/tui/controllers/cache-hint-controller.ts +++ b/apps/kimi-code/src/tui/controllers/cache-hint-controller.ts @@ -238,6 +238,10 @@ export class CacheHintController { dismissed: host.state.appState.cacheExpiryHint === false, }); if (decision.kind === 'skip') return; + // Another dialog (e.g. the model migration prompt) already owns the editor + // area: never replace it under the user's keystrokes. The seeded baseline + // leaves this cycle to the idle-submit path, which hints on the first prompt. + if (host.state.editorReplacementMounted) return; this.resumedSessions.add(session.id); // The resume dialog also covers this idle cycle: the first submit right // after it must not be intercepted again. diff --git a/apps/kimi-code/src/tui/controllers/editor-keyboard.ts b/apps/kimi-code/src/tui/controllers/editor-keyboard.ts index 1a115b446..5fd790547 100644 --- a/apps/kimi-code/src/tui/controllers/editor-keyboard.ts +++ b/apps/kimi-code/src/tui/controllers/editor-keyboard.ts @@ -27,11 +27,12 @@ import type { VideoAttachment, } from '../utils/image-attachment-store'; import { extractMediaAttachments, imageExtensionForMime } from '../utils/image-placeholder'; -import { extractInlineSkillActivations } from '../utils/inline-skill-tokens'; -import type { PendingExit, QueuedMessage, SteerInputItem } from '../types'; +import { resolveUserInput } from '../commands/resolve'; +import type { PendingExit, QueuedMessage } from '../types'; import type { TUIState } from '../tui-state'; import type { BtwPanelController } from './btw-panel'; import type { SurveyController } from './survey-controller'; +import type { ModelMigrationController } from './model-migration'; export interface EditorKeyboardHost { state: TUIState; @@ -47,9 +48,10 @@ export interface EditorKeyboardHost { handleUserInput(text: string): void; readonly btwPanelController: BtwPanelController; readonly surveyController: SurveyController; + readonly modelMigration?: ModelMigrationController; readonly skillCommandMap: Map; - steerMessage(session: Session, input: readonly SteerInputItem[]): void; - steerSkillActivation(session: Session, skillName: string, skillArgs: string): void; + readonly pluginCommandMap: Map; + steerQueuedMessagesIntoRunningTurn(manual?: boolean): void; validateMediaCapabilities(extraction: { hasMedia: boolean; imageAttachmentIds: readonly number[]; @@ -57,6 +59,7 @@ export interface EditorKeyboardHost { }): boolean; releaseStagingMedia(mediaAttachmentIds: readonly number[]): void; recallLastQueued(): QueuedMessage | undefined; + isSteeringQueuedMessages(): boolean; showError(msg: string): void; track(event: string, props?: Record): void; updateEditorBorderHighlight(text?: string): void; @@ -84,6 +87,7 @@ export interface EditorKeyboardHost { export class EditorKeyboardController { private pendingExit: PendingExit | null = null; private pendingUndoEsc: { readonly timer: ReturnType } | null = null; + private disposed = false; constructor( private readonly host: EditorKeyboardHost, @@ -99,7 +103,11 @@ export class EditorKeyboardController { host.handleUserInput(text); }; + // After dispose (shutdown), consume every key here so no shortcut can fire + // while the UI is being torn down — Ctrl+C is handled earlier, at the UI + // input-listener level. editor.onPreInput = (data: string) => { + if (this.disposed) return true; if (matchesKey(data, Key.escape)) this.clearPendingExit(); const consumed = host.surveyController.handlePreInput(data); if (consumed) this.clearPendingUndoEsc(); @@ -110,6 +118,7 @@ export class EditorKeyboardController { if (this.pendingExit) this.clearPendingExit(); host.surveyController.handleEditorChange(text); host.updateEditorBorderHighlight(text); + if (text.length === 0) host.modelMigration?.retry(); // Expanding paste markers costs a full-text pass, and only `/goal` // input can trip the objective length limit — so skip the expansion // for ordinary prompts. Submitted text is trimmed before dispatch, so @@ -285,7 +294,7 @@ export class EditorKeyboardController { }; editor.onOpenExternalEditor = () => { - host.surveyController.closeSilently(); + host.surveyController.notifyDisplaced(); host.track('shortcut_editor'); void this.openExternalEditor(); }; @@ -318,125 +327,56 @@ export class EditorKeyboardController { if ( host.state.appState.streamingPhase === 'idle' || host.state.appState.streamingPhase === 'shell' || - host.state.appState.isCompacting - ) - return; - const text = editor.getText().trim(); + host.state.appState.isCompacting || + host.isSteeringQueuedMessages() + ) return; + const text = (editor.getExpandedText?.() ?? editor.getText()).trim(); const editorIsBash = editor.inputMode === 'bash'; - - // Bash commands (`! …`) are not steerable: they stay queued so they run - // after the current task. Grouped inline-skill submissions are not - // steerable either — steer carries no skill activations, so they stay - // queued and submit intact when the session drains; the same applies to - // an editor draft carrying inline skill tokens. Steering stops at the - // first such bundle: items behind it stay queued too, or a later - // message would jump ahead of its bundle and reverse the conversational - // order. Everything else steers in queue order — plain text as a - // steered message, slash-skill items as activations fired into the - // running turn (never as literal text). - const queued = host.state.queuedMessages; - const firstBundle = queued.findIndex((m) => m.inlineSkillActivations !== undefined); - const windowBeforeFirstBundle = firstBundle === -1 ? queued : queued.slice(0, firstBundle); - const steerable = windowBeforeFirstBundle.filter((m) => m.mode !== 'bash'); - const editorHasInlineSkills = - !editorIsBash && - text.length > 0 && - extractInlineSkillActivations(text, host.skillCommandMap).length > 0; - - type SteerRun = - | { readonly kind: 'text'; readonly items: SteerInputItem[] } - | { readonly kind: 'skill'; readonly skillName: string; readonly skillArgs: string }; - const runs: SteerRun[] = []; - let textRun: SteerInputItem[] = []; - const flushTextRun = (): void => { - if (textRun.length > 0) { - runs.push({ kind: 'text', items: textRun }); - textRun = []; - } - }; - for (const m of steerable) { - if (m.mode === 'skill' && m.skillName !== undefined) { - flushTextRun(); - runs.push({ kind: 'skill', skillName: m.skillName, skillArgs: m.skillArgs ?? '' }); - continue; - } - const trimmed = m.text.trim(); - if (trimmed.length > 0) { - // Queued items carry the parts extracted when they were submitted - // (and were already capability-validated then). - textRun.push({ - text: trimmed, - parts: m.parts, - imageAttachmentIds: m.imageAttachmentIds, - videoAttachmentIds: m.videoAttachmentIds, - }); - } - } - let editorExtraction: ReturnType | undefined; - if (!editorIsBash && text.length > 0 && !editorHasInlineSkills && firstBundle === -1) { + let extraction: ReturnType | undefined; + if (!editorIsBash && text.length > 0) { try { - // Synchronous path: an image still ingesting in the background - // extracts to its inline fallback here (no bounded wait like - // `sendNormalUserInput` — this handler cannot await without - // interleaving queue/draft edits); a video still uploading refuses - // the submission instead (no inline form exists). - editorExtraction = extractMediaAttachments(text, this.imageStore); + extraction = extractMediaAttachments(text, this.imageStore); } catch (error) { - // Media expansion failed (e.g. the pasted video's upload is still - // in flight) — leave the queue and the editor draft untouched. host.showError(`Failed to prepare media attachment: ${formatErrorMessage(error)}`); return; } - textRun.push({ - text, - parts: editorExtraction.hasMedia ? editorExtraction.parts : undefined, - imageAttachmentIds: - editorExtraction.imageAttachmentIds.length > 0 - ? editorExtraction.imageAttachmentIds - : undefined, - videoAttachmentIds: - editorExtraction.videoAttachmentIds.length > 0 - ? editorExtraction.videoAttachmentIds - : undefined, + if (!host.validateMediaCapabilities(extraction)) { + host.releaseStagingMedia([ + ...extraction.imageAttachmentIds, + ...extraction.videoAttachmentIds, + ]); + return; + } + } + if (host.state.appState.model.trim().length === 0 || host.session === undefined) { + host.releaseStagingMedia([ + ...(extraction?.imageAttachmentIds ?? []), + ...(extraction?.videoAttachmentIds ?? []), + ]); + host.showError(LLM_NOT_SET_MESSAGE); + return; + } + if (extraction !== undefined) { + const { activations } = resolveUserInput({ + input: text, + skillCommandMap: host.skillCommandMap, + pluginCommandMap: host.pluginCommandMap, + isStreaming: true, + isCompacting: host.state.appState.isCompacting, }); + host.state.queuedMessages.push({ + text, + agentId: host.harness?.interactiveAgentId, + parts: extraction.hasMedia ? extraction.parts : undefined, + imageAttachmentIds: + extraction.imageAttachmentIds.length > 0 ? extraction.imageAttachmentIds : undefined, + videoAttachmentIds: + extraction.videoAttachmentIds.length > 0 ? extraction.videoAttachmentIds : undefined, + inlineSkillActivations: activations.length > 0 ? activations : undefined, + }); + editor.setText(''); } - flushTextRun(); - - if (runs.length > 0) { - // The editor draft is fresh input: gate it on the model's media - // capabilities before splicing the queue, so a rejection leaves the - // queue and the draft untouched. - if ( - editorExtraction !== undefined && - !host.validateMediaCapabilities(editorExtraction) - ) { - host.releaseStagingMedia([ - ...editorExtraction.imageAttachmentIds, - ...editorExtraction.videoAttachmentIds, - ]); - return; - } - const session = host.session; - if (host.state.appState.model.trim().length === 0 || session === undefined) { - host.releaseStagingMedia([ - ...(editorExtraction?.imageAttachmentIds ?? []), - ...(editorExtraction?.videoAttachmentIds ?? []), - ]); - host.showError(LLM_NOT_SET_MESSAGE); - return; - } - host.state.queuedMessages = queued.filter( - (m, index) => m.mode === 'bash' || (firstBundle !== -1 && index >= firstBundle), - ); - if (!editorIsBash && !editorHasInlineSkills && firstBundle === -1) editor.setText(''); - for (const run of runs) { - if (run.kind === 'text') { - host.steerMessage(session, run.items); - } else { - host.steerSkillActivation(session, run.skillName, run.skillArgs); - } - } - } + host.steerQueuedMessagesIntoRunningTurn(true); host.updateQueueDisplay(); host.state.ui.requestRender(); }; @@ -495,6 +435,7 @@ export class EditorKeyboardController { } dispose(): void { + this.disposed = true; this.clearPendingExit(); this.clearPendingUndoEsc(); } diff --git a/apps/kimi-code/src/tui/controllers/model-migration.ts b/apps/kimi-code/src/tui/controllers/model-migration.ts new file mode 100644 index 000000000..ae20453e8 --- /dev/null +++ b/apps/kimi-code/src/tui/controllers/model-migration.ts @@ -0,0 +1,280 @@ +import type { + ModelAlias, + RefreshProviderModelsResponse, + ThinkingEffort, +} from '@moonshot-ai/kimi-code-sdk'; + +import { ChoicePickerComponent } from '../components/dialogs/choice-picker'; +import { + defaultThinkingEffortFor, + modelDisplayName, + segmentsFor, + thinkingAvailability, +} from '../components/dialogs/model-selector'; +import type { SlashCommandHost } from '../commands/dispatch'; +import { + effectiveModelForHost, + hasConversationHistory, + lazyModelSelection, + MODEL_SWITCH_CACHE_WARNING, + performModelSwitch, +} from '../utils/model-switch'; +import { sanitizeShellOutput } from '../utils/shell-output'; +import { + acknowledgeModelMigration, + readModelMigrationAcknowledgements, +} from '#/utils/model-migration-state'; + +interface ModelMigration { + readonly fromAlias: string; + readonly fromModel: string; + readonly toAlias: string; + readonly toModel: string; + readonly displayName: string; + readonly effort: ThinkingEffort; + readonly effortHint?: string; + readonly migrationMarkdown: string; + readonly retirementAt?: string | null; +} + +type RetiredDefault = NonNullable; + +// The live effort is a user choice only when the source model can think at +// all; keep it when the target supports it, else use the target's default. +function migrationEffort(host: SlashCommandHost, from: ModelAlias, to: ModelAlias): ThinkingEffort { + const targetModel = effectiveModelForHost(host, to); + const liveEffort = host.state.appState.thinkingEffort; + return thinkingAvailability(effectiveModelForHost(host, from)) !== 'unsupported' && + segmentsFor(targetModel).includes(liveEffort) + ? liveEffort + : defaultThinkingEffortFor(targetModel); +} + +function findModelMigration( + host: SlashCommandHost, + acknowledged: Readonly>, +): ModelMigration | undefined { + const { model: fromAlias, availableModels } = host.state.appState; + const from = availableModels[fromAlias]; + const upgrade = from?.upgrade; + if (from === undefined || upgrade === undefined || upgrade.model === fromAlias) return; + + const target = Object.entries(availableModels).find( + ([alias, candidate]) => + alias !== fromAlias && candidate.provider === from.provider && alias === upgrade.model, + ); + if (target === undefined) return; + const [toAlias, to] = target; + if (acknowledged[fromAlias] === to.model) return; + const targetModel = effectiveModelForHost(host, to); + const effort = migrationEffort(host, from, to); + const migrationMarkdown = upgrade.migrationMarkdown.trim(); + // Registry-supplied text reaches the terminal verbatim through pi-tui, so + // strip control sequences the same way captured command output is. + return { + fromAlias, + fromModel: from.model, + toAlias, + toModel: to.model, + displayName: sanitizeShellOutput(modelDisplayName(toAlias, targetModel)), + effort, + effortHint: + thinkingAvailability(targetModel) === 'unsupported' ? undefined : `thinking ${effort}`, + migrationMarkdown: sanitizeShellOutput( + migrationMarkdown.length > 0 + ? migrationMarkdown + : `We recommend switching from ${from.model} to ${to.model}.`, + ), + retirementAt: upgrade.retirementAt, + }; +} + +// Accepting switches models, which needs an idle session and no open dialog +// (the startup session picker may still resume a different session); the +// prompt also waits for an empty, idle editor. +function canShowModelMigrationPrompt(host: SlashCommandHost): boolean { + return ( + host.state.activeDialog === null && + !host.state.editorReplacementMounted && + !host.sessionReplacementInFlight && + !host.state.appState.isCompacting && + !host.state.appState.isReplaying && + host.state.appState.streamingPhase === 'idle' && + !host.state.externalEditorRunning && + host.state.queuedMessages.length === 0 && + !host.state.queuedMessageDispatchPending && + host.state.editor.getText().length === 0 + ); +} + +export class ModelMigrationController { + private pending = false; + private scheduled = false; + private retired: RetiredDefault | undefined; + // Read once per request rather than on every retry, which runs on each state + // change while a prompt is pending. + private acknowledged: Promise>> = Promise.resolve({}); + + constructor(private readonly host: SlashCommandHost & { readonly aborted: boolean }) {} + + request(): void { + this.pending = true; + this.acknowledged = readModelMigrationAcknowledgements(); + this.retry(); + } + + /** + * Reflects a default model that a refresh found dropped by its registry. The + * engine already moved the default (keeping the configured thinking) and + * every live agent bound to it, so only a session-less selection can still + * point at it: it follows the new default the way startup hydration would, + * keeping a session-only effort picked before the first prompt. + */ + async retire(retired: RetiredDefault): Promise { + this.retired = retired; + this.request(); + const onRetiredSelection = () => + this.host.session === undefined && this.host.state.appState.model === retired.from; + if (!onRetiredSelection()) return; + const config = await this.host.harness.getConfig(); + if (!onRetiredSelection()) return; + const { lazySessionThinking } = this.host.state.appState; + const selection = lazyModelSelection(config, retired.to); + this.host.setAppState( + lazySessionThinking === undefined + ? selection + : { ...selection, thinkingEffort: lazySessionThinking }, + ); + } + + retry(): void { + if (!this.pending || this.scheduled) return; + this.scheduled = true; + // Defer past editor submission and its lazy-session dispatch continuations. + queueMicrotask(() => { + void Promise.all([this.host.waitForSessionAssembly(), this.acknowledged]) + .then(([, acknowledged]) => { + setImmediate(() => { + this.scheduled = false; + if (this.host.aborted || this.host.state.appState.model.length === 0) return; + // The retirement notice waits only for the startup session picker + // or another dialog to close, not for an empty editor. + const retired = this.retired; + if ( + retired !== undefined && + this.host.state.activeDialog === null && + !this.host.state.editorReplacementMounted + ) { + this.retired = undefined; + showRetiredDefaultNotice(this.host, retired); + } + if (!canShowModelMigrationPrompt(this.host)) return; + this.pending = false; + void maybeShowModelMigrationPrompt(this.host, acknowledged, () => { + this.request(); + }); + }); + }) + .catch(() => { + this.scheduled = false; + this.host.showError('Failed to check model migration.'); + }); + }); + } +} + +export async function maybeShowModelMigrationPrompt( + host: SlashCommandHost, + acknowledged: Readonly>, + onDisplaced?: () => void, +): Promise { + const migration = findModelMigration(host, acknowledged); + if (migration === undefined || !canShowModelMigrationPrompt(host)) return; + + await new Promise((resolve) => { + let settled = false; + const finish = (switchModel: boolean) => { + if (settled) return; + settled = true; + host.restoreEditor(); + void (async () => { + if (switchModel) { + if (host.state.appState.availableModels[migration.toAlias] === undefined) { + resolve(); + return; + } + const switched = await performModelSwitch( + host, + migration.toAlias, + migration.effort, + 'model-and-effort', + ); + if (!switched) { + resolve(); + return; + } + } + await acknowledgeModelMigration(migration.fromAlias, migration.toModel); + resolve(); + })().catch(() => { + host.showError('Failed to save model migration preference.'); + resolve(); + }); + }; + + const notice = migrationNotice(migration); + host.mountEditorReplacement( + new ChoicePickerComponent({ + title: 'Model migration available', + notice: { + markdown: hasConversationHistory(host) + ? `${notice}\n\n${MODEL_SWITCH_CACHE_WARNING}` + : notice, + }, + options: [ + { + value: 'switch', + label: `Switch to ${migration.displayName}`, + description: migration.effortHint, + }, + { value: 'keep', label: 'Keep current model' }, + ], + currentValue: 'keep', + initialValue: 'switch', + spaceSelect: false, + onSelect: (value) => finish(value === 'switch'), + onCancel: () => { + if (settled) return; + settled = true; + host.restoreEditor(); + resolve(); + }, + }), + () => { + if (settled) return; + settled = true; + onDisplaced?.(); + resolve(); + }, + ); + }); +} + +function showRetiredDefaultNotice(host: SlashCommandHost, retired: RetiredDefault): void { + const fromName = sanitizeShellOutput(retired.from_display_name); + const toName = sanitizeShellOutput( + modelDisplayName(retired.to, host.state.appState.availableModels[retired.to]), + ); + host.showStatus( + `${fromName} is no longer offered by its provider; the default model is now ${toName}.`, + 'warning', + ); +} + +function migrationNotice(migration: ModelMigration): string { + const retirementAt = migration.retirementAt; + if (retirementAt === undefined || retirementAt === null) return migration.migrationMarkdown; + const timestamp = Date.parse(retirementAt); + if (!Number.isFinite(timestamp)) return migration.migrationMarkdown; + return `${migration.migrationMarkdown}\n\nRetirement date: ${new Date(timestamp).toLocaleDateString()}`; +} diff --git a/apps/kimi-code/src/tui/controllers/notify.ts b/apps/kimi-code/src/tui/controllers/notify.ts index a43e57c88..e2f677759 100644 --- a/apps/kimi-code/src/tui/controllers/notify.ts +++ b/apps/kimi-code/src/tui/controllers/notify.ts @@ -12,6 +12,7 @@ interface PendingUpdate { readonly turnId: number; readonly step: number; readonly time: number; + readonly title?: string; readonly text: string; } @@ -117,6 +118,7 @@ export class NotifyController { break; case 'subagent.completed': case 'subagent.failed': + case 'subagent.cancelled': this.running.delete(event.subagentId); this.dropPending(event.subagentId); break; @@ -200,13 +202,16 @@ export class NotifyController { const key = JSON.stringify([agentId, event.turnId, event.toolCallId]); if (this.settled.has(key)) return; if (event.name !== 'NotifyUser') return; - const message = argsRecord(event.args)['message']; + const args = argsRecord(event.args); + const message = args['message']; if (typeof message !== 'string' || message.trim().length === 0) return; + const title = typeof args['title'] === 'string' ? args['title'].trim() : ''; this.pending.set(key, { agentId, turnId: event.turnId, step: this.steps.get(agentId) ?? 0, time: Date.now(), + title: title.length > 0 ? title : undefined, text: message, }); break; @@ -236,6 +241,7 @@ export class NotifyController { agentId, agentName: this.agentNames.get(agentId), time: update.time, + title: update.title, text: update.text, }; this.state.notifyPanel.upsert(entry); diff --git a/apps/kimi-code/src/tui/controllers/session-event-handler.ts b/apps/kimi-code/src/tui/controllers/session-event-handler.ts index 355f5a537..c227a0c51 100644 --- a/apps/kimi-code/src/tui/controllers/session-event-handler.ts +++ b/apps/kimi-code/src/tui/controllers/session-event-handler.ts @@ -116,12 +116,16 @@ export interface SessionEventHost { restoreEditor(): void; restoreInputText(text: string): void; appendTranscriptEntry(entry: TranscriptEntry): void; + moveTranscriptEntryToEnd(entry: TranscriptEntry): boolean; handleShellOutput(event: { commandId: string; update: { kind: string; text?: string } }): void; handleShellStarted(event: { commandId: string; taskId: string }): void; sendNormalUserInput(text: string): void; updateTerminalTitle(): void; sendQueuedMessage(session: Session, item: QueuedMessage): void; shiftQueuedMessage(): QueuedMessage | undefined; + steerQueuedMessagesIntoRunningTurn(): void; + lastCompactionTrigger: CompactionStartedEvent['trigger'] | undefined; + autoCompactionSerial: number; handleTurnStarted?(event: TurnStartedEvent): void; handleTurnEnded?(event: TurnEndedEvent): void; readonly btwPanelController: BtwPanelController; @@ -142,6 +146,7 @@ export class SessionEventHandler { this.subAgentEventHandler = new SubAgentEventHandler(host, { backgroundTasks: this.backgroundTasks, backgroundTaskTranscriptedTerminal: this.backgroundTaskTranscriptedTerminal, + backgroundTaskTerminalEntries: this.backgroundTaskTerminalEntries, syncBackgroundAgentBadge: () => { this.syncBackgroundTaskBadge(); }, @@ -160,8 +165,9 @@ export class SessionEventHandler { // Runtime state – owned by this handler, reset between sessions. backgroundTasks: Map = new Map(); backgroundTaskTranscriptedTerminal: Set = new Set(); + private backgroundTaskTerminalEntries: Map = new Map(); - renderedSkillActivationIds: Set = new Set(); + seenSkillActivationIds: Set = new Set(); renderedPluginCommandActivationIds: Set = new Set(); renderedMcpServerStatusKeys: Map = new Map(); mcpServerStatusSpinners: Map = new Map(); @@ -180,9 +186,10 @@ export class SessionEventHandler { resetRuntimeState(): void { this.backgroundTasks.clear(); this.backgroundTaskTranscriptedTerminal.clear(); + this.backgroundTaskTerminalEntries.clear(); this.subAgentEventHandler.resetRuntimeState(); this.notifications.reset(); - this.renderedSkillActivationIds.clear(); + this.seenSkillActivationIds.clear(); this.renderedPluginCommandActivationIds.clear(); this.renderedMcpServerStatusKeys.clear(); this.mcpServers.clear(); @@ -302,10 +309,13 @@ export class SessionEventHandler { case 'compaction.blocked': break; case 'compaction.cancelled': this.handleCompactionCancel(event, sendQueued); break; case 'subagent.spawned': + this.host.surveyController.notifySubagentSpawned(event); + this.subAgentEventHandler.handleLifecycleEvent(event); break; case 'subagent.started': case 'subagent.suspended': case 'subagent.completed': case 'subagent.failed': + case 'subagent.cancelled': this.subAgentEventHandler.handleLifecycleEvent(event); break; case 'background.task.started': case 'background.task.terminated': @@ -334,6 +344,9 @@ export class SessionEventHandler { if (event.origin?.kind === 'plugin_command') { this.pluginCommandTurns.set(String(event.turnId), event.origin.pluginId); } + if (event.origin?.kind === 'task') { + this.anchorTaskNotificationTurn(event.origin.taskId, event.origin.status); + } this.clearAgentSwarmProgress(); this.host.streamingUI.resetToolUi(); this.host.streamingUI.setStep(0); @@ -618,7 +631,7 @@ export class SessionEventHandler { private handleToolCall(event: ToolCallStartedEvent): void { const { streamingUI } = this.host; - this.host.surveyController.notifyToolCallStarted(); + this.host.surveyController.notifyToolCallStarted(event.toolCallId, event.name); streamingUI.flushNow(); const { turnId, step } = streamingUI.getTurnContext(); const toolCall: ToolCallBlockData = { @@ -667,6 +680,11 @@ export class SessionEventHandler { } private handleToolProgress(event: ToolProgressEvent): void { + // Input queued before the wait began would otherwise sit until the wait + // returns; steering it now ends the wait so the model reads it first. + if (this.host.streamingUI.markWaitForRunning(event.toolCallId)) { + this.host.steerQueuedMessagesIntoRunningTurn(); + } const text = event.update.text; if (text === undefined || text.length === 0) return; const tc = this.host.streamingUI.getToolComponent(event.toolCallId); @@ -682,6 +700,7 @@ export class SessionEventHandler { private handleToolResult(event: ToolResultEvent): void { const { streamingUI } = this.host; + this.host.surveyController.notifyToolCallEnded(event.toolCallId); streamingUI.flushNow(); this.clearStepRetry(); const resultData: ToolResultBlockData = { @@ -720,6 +739,10 @@ export class SessionEventHandler { event.swarmMode === false && this.host.state.appState.swarmMode && this.host.state.swarmModeEntry === 'task'; + const shouldRenderTowerGoalExit = + event.towerMode === false && + this.host.state.appState.towerMode && + event.towerExitReason === 'mode-mutex'; const patch: Partial = {}; if (event.contextTokens !== undefined) patch.contextTokens = event.contextTokens; if (event.maxContextTokens !== undefined) patch.maxContextTokens = event.maxContextTokens; @@ -753,6 +776,12 @@ export class SessionEventHandler { this.renderSwarmModeMarker('ended'); } } + if (shouldRenderTowerGoalExit) { + this.host.state.transcriptContainer.addChild( + new StatusMessageComponent('Tower mode ended — a goal was activated'), + ); + this.host.state.ui.requestRender(); + } } private renderSwarmModeMarker(state: SwarmModeMarkerState): void { @@ -1083,8 +1112,9 @@ export class SessionEventHandler { } private handleSkillActivated(event: SkillActivatedEvent): void { - if (this.renderedSkillActivationIds.has(event.activationId)) return; - this.renderedSkillActivationIds.add(event.activationId); + if (this.seenSkillActivationIds.has(event.activationId)) return; + this.seenSkillActivationIds.add(event.activationId); + if (event.trigger === 'user-slash') return; this.host.appendTranscriptEntry({ id: nextTranscriptId(), kind: 'skill_activation', @@ -1118,6 +1148,7 @@ export class SessionEventHandler { } private handleCompactionBegin(event: CompactionStartedEvent): void { + this.host.lastCompactionTrigger = event.trigger; this.host.streamingUI.finalizeLiveTextBuffers('waiting'); this.host.setAppState({ isCompacting: true, @@ -1131,6 +1162,9 @@ export class SessionEventHandler { event: CompactionCompletedEvent, sendQueued: (item: QueuedMessage) => void, ): void { + // Cancellations do not count: the context was not cut, so a queued + // /compact must still fire. + if (this.host.lastCompactionTrigger === 'auto') this.host.autoCompactionSerial += 1; this.host.streamingUI.endCompaction( event.result.tokensBefore, event.result.tokensAfter, @@ -1245,7 +1279,7 @@ export class SessionEventHandler { } if (!this.backgroundTaskTranscriptedTerminal.has(info.taskId)) { if (info.kind === 'process' || info.kind === 'question') { - this.appendBackgroundTaskEntry(info); + this.backgroundTaskTerminalEntries.set(info.taskId, this.appendBackgroundTaskEntry(info)); } this.backgroundTaskTranscriptedTerminal.add(info.taskId); } @@ -1260,7 +1294,7 @@ export class SessionEventHandler { this.host.tasksBrowserController.repaint(); } - private appendBackgroundTaskEntry(info: BackgroundTaskInfo): void { + private appendBackgroundTaskEntry(info: BackgroundTaskInfo): TranscriptEntry { const status = formatBackgroundTaskTranscript(info); const entry: TranscriptEntry = { id: nextTranscriptId(), @@ -1272,6 +1306,57 @@ export class SessionEventHandler { backgroundAgentStatus: status, }; this.host.appendTranscriptEntry(entry); + return entry; + } + + /** + * Give a task-notification turn its own fold-segment boundary at turn start: + * move the task's asynchronously mounted terminal card down to the turn, + * or mount one now when none is mounted (e.g. it was trimmed). Without an + * anchor the turn's end-of-turn fold would extend into the previous turn's + * output and collapse its final answer into the step summary. + */ + private anchorTaskNotificationTurn( + taskId: string, + status: BackgroundTaskInfo['status'], + ): void { + const mounted = this.backgroundTaskTerminalEntries.get(taskId); + if (mounted !== undefined && this.host.moveTranscriptEntryToEnd(mounted)) return; + const task = this.backgroundTasks.get(taskId); + if (task === undefined) return; + // An agent whose terminal lifecycle event landed before its task id was + // known (e.g. a tower worker that finished before registerTask) mounted + // its terminal card without registering it under the task id. Reuse that + // card instead of mounting a duplicate. + if (task.kind === 'agent') { + const orphaned = this.findTerminalBackgroundAgentCard(task.agentId, taskId); + if (orphaned !== undefined && this.host.moveTranscriptEntryToEnd(orphaned)) { + this.backgroundTaskTerminalEntries.set(taskId, orphaned); + return; + } + } + const entry = this.appendBackgroundTaskEntry({ ...task, status }); + this.backgroundTaskTerminalEntries.set(taskId, entry); + this.backgroundTaskTranscriptedTerminal.add(taskId); + } + + /** The agent's latest mounted terminal (non-`started`) background card. */ + private findTerminalBackgroundAgentCard( + agentId: string | undefined, + taskId: string, + ): TranscriptEntry | undefined { + if (agentId === undefined) return undefined; + return this.host.state.transcriptEntries.findLast((entry) => { + const card = entry.backgroundAgentStatus; + if (card?.agentId !== agentId || card.phase === 'started') return false; + // A resumed background agent keeps its previous agentId, so the latest + // matching card can belong to an earlier run. Never reuse a card that + // is already registered under another task — mount our own instead. + for (const [registeredTaskId, registered] of this.backgroundTaskTerminalEntries) { + if (registered === entry && registeredTaskId !== taskId) return false; + } + return true; + }); } private syncBackgroundTaskBadge(): void { diff --git a/apps/kimi-code/src/tui/controllers/session-occupancy.ts b/apps/kimi-code/src/tui/controllers/session-occupancy.ts new file mode 100644 index 000000000..f12e3a00a --- /dev/null +++ b/apps/kimi-code/src/tui/controllers/session-occupancy.ts @@ -0,0 +1,110 @@ +import type { Session } from '@moonshot-ai/kimi-code-sdk'; + +import type { SlashCommandHost } from '../commands/dispatch'; +import { ChoicePickerComponent } from '../components/dialogs/choice-picker'; +import { formatErrorMessage } from '../utils/event-payload'; +import { occupiedHolderClientId } from '../utils/session-lock-errors'; +import { CLI_MSH_PLATFORM } from '#/constant/app'; + +type SessionOccupancyHost = Pick< + SlashCommandHost, + 'track' | 'showError' | 'mountEditorReplacement' | 'restoreEditor' +>; + +interface SessionOccupancyPrompt { + readonly session: Session; + readonly error: unknown; + /** The rejected request was already a Retry, so offer takeover instead. */ + readonly retried: boolean; + readonly retry: () => void; + readonly restore: () => void; +} + +export function showSessionOccupancyPrompt( + host: SessionOccupancyHost, + prompt: SessionOccupancyPrompt, +): void { + if (prompt.retried) { + showSessionTakeover(host, prompt); + } else { + showSessionOccupied(host, prompt); + } +} + +function showSessionOccupied( + host: SessionOccupancyHost, + { error, retry, restore }: SessionOccupancyPrompt, +): void { + const holderClient = occupiedHolderClientId(error); + host.track('occupied_prompt_shown', { + holder_client: holderClient, + opener_client: CLI_MSH_PLATFORM, + }); + const cancel = (): void => { + host.track('occupied_choice', { choice: 'cancel', holder_client: holderClient }); + restore(); + }; + host.mountEditorReplacement( + new ChoicePickerComponent({ + title: 'Session in use', + notice: error instanceof Error ? error.message : String(error), + noticeTone: 'warning', + options: [ + { value: 'retry', label: 'Retry', description: 'send again now' }, + { value: 'cancel', label: 'Cancel', description: 'get your message back' }, + ], + spaceSelect: false, + onSelect: (action) => { + if (action !== 'retry') { + cancel(); + return; + } + host.track('occupied_choice', { choice: 'retry', holder_client: holderClient }); + host.restoreEditor(); + retry(); + }, + onCancel: cancel, + }), + ); +} + +function showSessionTakeover( + host: SessionOccupancyHost, + { session, error, retry, restore }: SessionOccupancyPrompt, +): void { + const holderClient = occupiedHolderClientId(error); + const cancel = (): void => { + host.track('occupied_choice', { choice: 'cancel', holder_client: holderClient }); + restore(); + }; + host.mountEditorReplacement( + new ChoicePickerComponent({ + title: 'Session still in use', + notice: 'If another Kimi Code process is still running, taking over may mix up the history.', + noticeTone: 'warning', + options: [ + { value: 'cancel', label: 'Cancel', description: 'get your message back' }, + { + value: 'takeover', + label: 'Take over', + tone: 'danger', + description: 'send your message anyway', + }, + ], + spaceSelect: false, + onSelect: (action) => { + if (action !== 'takeover') { + cancel(); + return; + } + host.track('occupied_choice', { choice: 'takeover', holder_client: holderClient }); + host.restoreEditor(); + void session.takeOverLock().then(retry, (takeoverError: unknown) => { + host.showError(`Failed to take over the session: ${formatErrorMessage(takeoverError)}`); + restore(); + }); + }, + onCancel: cancel, + }), + ); +} diff --git a/apps/kimi-code/src/tui/controllers/session-replay.ts b/apps/kimi-code/src/tui/controllers/session-replay.ts index 9c8baa96e..3935cfcd8 100644 --- a/apps/kimi-code/src/tui/controllers/session-replay.ts +++ b/apps/kimi-code/src/tui/controllers/session-replay.ts @@ -37,6 +37,7 @@ import { createReplayRenderContext, formatHookResultMessageForTranscript, isTerminalBackgroundTask, + isUserPromptSubmitHookPart, limitReplayRecordsByTurn, REPLAY_TURN_LIMIT, replayBackgroundProjection, @@ -46,6 +47,8 @@ import { pluginCommandFromOrigin, toolCallFromReplayMessage, toolResultOutput, + userSlashSkillPromptText, + withoutUserPromptSubmitHookParts, type BackgroundTaskNotificationOrigin, type ReplayRenderContext, type SkillActivationProjection, @@ -406,10 +409,12 @@ export class SessionReplayRenderer { this.flushAssistant(context); const skill = skillActivationFromOrigin(message.origin); if (skill !== undefined) { - this.renderSkillActivation(context, skill); - if (message.origin?.kind === 'skill_activation' && message.origin.trigger === 'user-slash') { - this.advanceTurn(context); + if (skill.trigger === 'user-slash') { + this.renderUserSlashSkillPrompt(context, message, skill); + return; } + this.renderSkillActivation(context, skill); + this.renderHookParts(context, message); return; } const pluginCommand = pluginCommandFromOrigin(message.origin); @@ -418,6 +423,7 @@ export class SessionReplayRenderer { if (message.origin?.kind === 'plugin_command' && message.origin.trigger === 'user-slash') { this.advanceTurn(context); } + this.renderHookParts(context, message); return; } @@ -426,32 +432,57 @@ export class SessionReplayRenderer { return; } this.advanceTurn(context); + this.renderHookParts(context, message); this.host.appendTranscriptEntry( - replayEntry(context, 'user', contentPartsToText(message.content), 'plain'), + replayEntry( + context, + 'user', + contentPartsToText(withoutUserPromptSubmitHookParts(message.content)), + 'plain', + ), ); } + private renderHookParts(context: ReplayRenderContext, message: ContextMessage): void { + for (const part of message.content.filter(isUserPromptSubmitHookPart)) { + this.renderHookResultEntry( + context, + formatHookResultMessageForTranscript(part.text, 'UserPromptSubmit', false), + ); + } + } + private renderBundledPrompt( context: ReplayRenderContext, message: ContextMessage, hookResults: readonly ContextMessage[] = [], ): void { - // The bundle is one message: advance once, rebuild the per-skill cards - // from the prompt origin, then show the caller's own parts (the engine - // prepends one rendered text part per bundled skill to the content). this.advanceTurn(context); - this.renderBundledSkillCards(context, message); + this.registerBundledSkillActivations(context, message); for (const hookResult of hookResults) { this.renderHookResult(context, hookResult); } - this.host.appendTranscriptEntry( - replayEntry(context, 'user', contentPartsToText(stripBundledSkillParts(message)), 'plain'), - ); + this.renderHookParts(context, message); + const callerMessage = { ...message, content: withoutUserPromptSubmitHookParts(message.content) }; + this.host.appendTranscriptEntry({ + ...replayEntry( + context, + 'user', + contentPartsToText(stripBundledSkillParts(callerMessage)), + 'plain', + ), + skillNames: bundledSkillsFromOrigin(message.origin).map((skill) => skill.skillName), + }); } - private renderBundledSkillCards(context: ReplayRenderContext, message: ContextMessage): void { + private registerBundledSkillActivations( + context: ReplayRenderContext, + message: ContextMessage, + ): void { + const { sessionEventHandler } = this.host; for (const skill of bundledSkillsFromOrigin(message.origin)) { - this.renderSkillActivation(context, skill); + context.skillActivationIds.add(skill.activationId); + sessionEventHandler.seenSkillActivationIds.add(skill.activationId); } } @@ -527,15 +558,37 @@ export class SessionReplayRenderer { // Special content renderers // --------------------------------------------------------------------------- + private renderUserSlashSkillPrompt( + context: ReplayRenderContext, + message: ContextMessage, + skill: SkillActivationProjection, + ): void { + const { sessionEventHandler } = this.host; + if (context.skillActivationIds.has(skill.activationId)) return; + if (sessionEventHandler.seenSkillActivationIds.has(skill.activationId)) return; + context.skillActivationIds.add(skill.activationId); + sessionEventHandler.seenSkillActivationIds.add(skill.activationId); + this.advanceTurn(context); + this.renderHookParts(context, message); + this.host.appendTranscriptEntry({ + ...replayEntry(context, 'user', userSlashSkillPromptText(message, skill), 'plain'), + skillNames: [skill.skillName], + skillActivationId: skill.activationId, + skillName: skill.skillName, + skillArgs: skill.skillArgs, + skillTrigger: skill.trigger, + }); + } + private renderSkillActivation( context: ReplayRenderContext, skill: SkillActivationProjection, ): void { const { sessionEventHandler } = this.host; if (context.skillActivationIds.has(skill.activationId)) return; - if (sessionEventHandler.renderedSkillActivationIds.has(skill.activationId)) return; + if (sessionEventHandler.seenSkillActivationIds.has(skill.activationId)) return; context.skillActivationIds.add(skill.activationId); - sessionEventHandler.renderedSkillActivationIds.add(skill.activationId); + sessionEventHandler.seenSkillActivationIds.add(skill.activationId); this.host.appendTranscriptEntry({ ...replayEntry(context, 'skill_activation', `Activated skill: ${skill.skillName}`, 'plain'), skillActivationId: skill.activationId, @@ -636,18 +689,20 @@ export class SessionReplayRenderer { private renderHookResult(context: ReplayRenderContext, message: ContextMessage): void { if (message.origin?.kind !== 'hook_result') return; + this.renderHookResultEntry( + context, + formatHookResultMessageForTranscript( + contentPartsToText(message.content), + message.origin.event, + message.origin.blocked === true, + ), + ); + } + + private renderHookResultEntry(context: ReplayRenderContext, formatted: string): void { this.flushAssistant(context); this.host.appendTranscriptEntry({ - ...replayEntry( - context, - 'assistant', - formatHookResultMessageForTranscript( - contentPartsToText(message.content), - message.origin.event, - message.origin.blocked === true, - ), - 'markdown', - ), + ...replayEntry(context, 'assistant', formatted, 'markdown'), hookResult: true, }); } diff --git a/apps/kimi-code/src/tui/controllers/staging-leases.ts b/apps/kimi-code/src/tui/controllers/staging-leases.ts index bc9bfcd78..02f121aad 100644 --- a/apps/kimi-code/src/tui/controllers/staging-leases.ts +++ b/apps/kimi-code/src/tui/controllers/staging-leases.ts @@ -26,10 +26,7 @@ * The tracker holds one lease per submission, binds it to the consuming turn * (explicitly at dispatch, by exact submission id when the turn echoes the * client-chosen prompt id, or heuristically when a matching-origin turn - * starts), and releases it when that turn ends. The heuristic claims the - * earliest unclaimed lease of the same origin; that is only sound because the - * TUI serializes same-origin dispatches (one in-flight submission at a time, - * see `beginSessionRequest`) and `turn.started` arrives in dispatch order. + * starts), and releases it when that turn ends. * * Exact binding: a lease created with a `submissionId` is registered in * `leasesBySubmissionId`, and the submission sends that id as the prompt id; @@ -37,13 +34,6 @@ * `handleTurnStarted` binds the exact lease instead of guessing. The * heuristic below remains the fallback for submissions without an id echo. * - * INVARIANT: at most one unclaimed lease per origin at any moment — with two - * or more, the heuristic cannot tell which submission the turn belongs to. - * `handleTurnStarted` reports a violation through the `warn` effect and still - * claims the earliest (a mis-claim only mis-times deletions, so it is not - * worth failing the turn over). An exact `promptId` hit bypasses the - * heuristic entirely, so it neither trips nor needs the invariant. - * * Unclaimed leases are released at session close / shutdown, and every * in-flight cleanup is drainable via {@link drain}. * @@ -54,6 +44,8 @@ import type { TurnEndedEvent, TurnStartedEvent } from '@moonshot-ai/kimi-code-sdk'; +import { MAIN_AGENT_ID } from '../constant/kimi-tui'; + import type { QueuedMessage } from '../types'; export type StagingLeaseOrigin = 'user' | 'skill_activation' | 'plugin_command'; @@ -62,6 +54,7 @@ export interface StagingLease { readonly mediaAttachmentIds: readonly number[]; readonly paths: readonly string[]; readonly origin: StagingLeaseOrigin; + readonly agentId: string; readonly submissionId?: string; turnId: string | undefined; released: boolean; @@ -74,11 +67,6 @@ export interface StagingLeaseEffects { readonly releaseRetains: (mediaAttachmentIds: readonly number[]) => void; /** Delete staged files (daemon uploads + local cache copies); never rejects. */ readonly deleteFiles: (fileIds: readonly string[], paths: readonly string[]) => Promise; - /** - * Optional sink for invariant violations (see the INVARIANT note above). - * The tracker keeps operating; the warning exists to make a broken - * same-origin ordering assumption visible instead of mis-binding silently. - */ readonly warn?: (message: string) => void; } @@ -89,6 +77,10 @@ export class StagingLeaseTracker { private readonly leasesByTurn = new Map>(); /** Leases carrying a client-chosen submission id, for exact `promptId` binding. */ private readonly leasesBySubmissionId = new Map(); + /** Leases whose dispatch RPC has not settled yet (see {@link trackDispatch}). */ + private readonly inFlight = new Set(); + /** In-flight leases whose turn already ended; released once the RPC settles. */ + private readonly endedInFlight = new Set(); /** * Cache copies whose consuming turn already ended. Persisted history may * still reference their paths (skill/plugin args carry them as plain @@ -103,6 +95,7 @@ export class StagingLeaseTracker { paths: readonly string[], origin: StagingLeaseOrigin, submissionId?: string, + agentId = MAIN_AGENT_ID, ): StagingLease | undefined { // `mediaAttachmentIds` multiplicity is the retain count this lease must // release: each extraction/rewrite retains once per unique id, so callers @@ -114,6 +107,7 @@ export class StagingLeaseTracker { mediaAttachmentIds: [...mediaAttachmentIds], paths: [...paths], origin, + agentId, submissionId, turnId: undefined, released: false, @@ -126,15 +120,16 @@ export class StagingLeaseTracker { bindToTurn(lease: StagingLease | undefined, turnId: string): void { if (lease === undefined || lease.released || lease.turnId !== undefined) return; lease.turnId = turnId; - let leases = this.leasesByTurn.get(turnId); + const key = `${lease.agentId}:${turnId}`; + let leases = this.leasesByTurn.get(key); if (leases === undefined) { leases = new Set(); - this.leasesByTurn.set(turnId, leases); + this.leasesByTurn.set(key, leases); } leases.add(lease); } - handleTurnStarted(event: TurnStartedEvent): void { + handleTurnStarted(event: TurnStartedEvent, agentId = MAIN_AGENT_ID): void { const kind = event.origin?.kind; if (kind !== 'user' && kind !== 'skill_activation' && kind !== 'plugin_command') return; if (event.promptId !== undefined) { @@ -142,14 +137,15 @@ export class StagingLeaseTracker { // id — bind that lease directly and skip the origin heuristic (and its // ambiguity warning) entirely. const exact = this.leasesBySubmissionId.get(event.promptId); - if (exact !== undefined && exact.turnId === undefined) { + if (exact !== undefined && exact.turnId === undefined && exact.agentId === agentId) { this.bindToTurn(exact, String(event.turnId)); return; } } const candidates = [...this.leases].filter( (candidate) => - !candidate.released && candidate.turnId === undefined && candidate.origin === kind, + !candidate.released && candidate.turnId === undefined && + candidate.origin === kind && candidate.agentId === agentId, ); if (candidates.length > 1) { // INVARIANT violation: the earliest-unclaimed pick cannot tell @@ -163,35 +159,57 @@ export class StagingLeaseTracker { this.bindToTurn(candidates[0], String(event.turnId)); } - handleTurnEnded(event: TurnEndedEvent): void { - const turnId = String(event.turnId); - const leases = this.leasesByTurn.get(turnId); + handleTurnEnded(event: TurnEndedEvent, agentId = MAIN_AGENT_ID): void { + const key = `${agentId}:${String(event.turnId)}`; + const leases = this.leasesByTurn.get(key); if (leases === undefined) return; - for (const lease of leases) this.releaseConsumed(lease); - this.leasesByTurn.delete(turnId); + for (const lease of leases) { + if (this.inFlight.has(lease)) { + this.endedInFlight.add(lease); + continue; + } + this.releaseConsumed(lease); + } + if (this.leasesByTurn.get(key)?.size === 0) this.leasesByTurn.delete(key); } /** * Track a dispatch RPC carrying staged media. When it rejects, run * `onError` and release the lease — but only while no turn has claimed it: - * a bound lease is owned by the turn and released at turn end, whatever the - * RPC's later outcome. + * a bound lease is owned by the turn and released at turn end. A turn that + * ends while the RPC is still in flight leaves the lease alone until the RPC + * settles: success releases it as consumed, failure as never consumed — + * unless `onError` handed it back to raw ownership via {@link defer}, as a + * caller that requeues the failed input does. */ trackDispatch( lease: StagingLease | undefined, request: Promise, onError: (error: unknown) => void, ): void { + if (lease !== undefined) this.inFlight.add(lease); this.track( - request - .catch((error: unknown) => { + request.then( + () => { + this.settleInFlight(lease, true); + }, + (error: unknown) => { onError(error); if (lease?.turnId === undefined) this.release(lease); - }) - .then(() => undefined), + this.settleInFlight(lease, false); + }, + ), ); } + private settleInFlight(lease: StagingLease | undefined, consumed: boolean): void { + if (lease === undefined) return; + this.inFlight.delete(lease); + if (!this.endedInFlight.delete(lease)) return; + if (consumed) this.releaseConsumed(lease); + else this.release(lease); + } + /** * Release staged media that will never be consumed (dispatch failed before * a turn claimed the lease): delete daemon uploads and cache copies now. @@ -292,9 +310,10 @@ export class StagingLeaseTracker { this.leases.delete(lease); if (lease.submissionId !== undefined) this.leasesBySubmissionId.delete(lease.submissionId); if (lease.turnId !== undefined) { - const leases = this.leasesByTurn.get(lease.turnId); + const key = `${lease.agentId}:${lease.turnId}`; + const leases = this.leasesByTurn.get(key); leases?.delete(lease); - if (leases?.size === 0) this.leasesByTurn.delete(lease.turnId); + if (leases?.size === 0) this.leasesByTurn.delete(key); } } diff --git a/apps/kimi-code/src/tui/controllers/streaming-ui.ts b/apps/kimi-code/src/tui/controllers/streaming-ui.ts index 96c19c6a3..e0c67a668 100644 --- a/apps/kimi-code/src/tui/controllers/streaming-ui.ts +++ b/apps/kimi-code/src/tui/controllers/streaming-ui.ts @@ -58,6 +58,7 @@ export class StreamingUIController { private _activeThinkingComponent: ThinkingComponent | undefined = undefined; private _activeCompactionBlock: CompactionComponent | undefined = undefined; private _activeToolCalls = new Map(); + private _runningWaitForCalls = new Set(); private _streamingToolCallArguments = new Map< string, { name?: string; argumentsText: string; startedAtMs: number } @@ -147,6 +148,21 @@ export class StreamingUIController { return this._activeToolCalls.has(id); } + /** Marks a main-agent WaitFor call as actually waiting — its first + * progress update arrives only once the wait began, never for calls that + * were rejected, skipped, or had nothing to wait for. Returns whether the + * call was newly marked. */ + markWaitForRunning(toolCallId: string): boolean { + if (this._activeToolCalls.get(toolCallId)?.name !== 'WaitFor') return false; + if (this._runningWaitForCalls.has(toolCallId)) return false; + this._runningWaitForCalls.add(toolCallId); + return true; + } + + isWaitForRunning(): boolean { + return this._runningWaitForCalls.size > 0; + } + setActiveToolCall(id: string, toolCall: ToolCallBlockData): void { this._activeToolCalls.set(id, toolCall); } @@ -358,6 +374,7 @@ export class StreamingUIController { this.onToolCallEnd(toolCallId, result); } this._activeToolCalls.delete(toolCallId); + this._runningWaitForCalls.delete(toolCallId); this._streamingToolCallArguments.delete(toolCallId); return matchedCall; } @@ -542,6 +559,7 @@ export class StreamingUIController { resetToolCallState(): void { this._activeToolCalls.clear(); + this._runningWaitForCalls.clear(); } finalizeLiveTextBuffers(nextMode: LivePaneState['mode'] = 'idle'): void { diff --git a/apps/kimi-code/src/tui/controllers/subagent-event-handler.ts b/apps/kimi-code/src/tui/controllers/subagent-event-handler.ts index 9b9005cdf..93da7ab0b 100644 --- a/apps/kimi-code/src/tui/controllers/subagent-event-handler.ts +++ b/apps/kimi-code/src/tui/controllers/subagent-event-handler.ts @@ -13,6 +13,7 @@ import { modelDisplayName } from '../components/dialogs/model-selector'; import { MAIN_AGENT_ID } from '../constant/kimi-tui'; import type { BackgroundAgentMetadata, + BackgroundAgentStatusPhase, ToolCallBlockData, ToolResultBlockData, TranscriptEntry, @@ -38,6 +39,7 @@ type SubagentLifecycleEventOf = export interface SubAgentEventHandlerDependencies { readonly backgroundTasks: ReadonlyMap; readonly backgroundTaskTranscriptedTerminal: Set; + readonly backgroundTaskTerminalEntries: Map; readonly syncBackgroundAgentBadge: () => void; } @@ -90,8 +92,10 @@ export class SubAgentEventHandler { const { parentToolCallId } = info; const swarmProgress = this.agentSwarmProgress.get(parentToolCallId); if (swarmProgress !== undefined) { + // No per-event requestRender: the swarm component's own frame timer + // (kept alive while members run) batches these deltas into ~12.5fps + // re-renders instead of rendering the whole tree per delta. this.applySubagentEventToSwarmProgress(swarmProgress, event, childAgentId); - this.requestRender(); return true; } @@ -171,6 +175,9 @@ export class SubAgentEventHandler { case 'subagent.failed': this.handleSubagentFailed(event); return; + case 'subagent.cancelled': + this.handleSubagentCancelled(event); + return; } } @@ -301,11 +308,9 @@ export class SubAgentEventHandler { this.pruneForegroundOnlyRecord(event.subagentId); const backgroundMeta = this.backgroundAgentMetadata.get(event.subagentId); if (backgroundMeta !== undefined) { - const taskId = this.findAgentTaskId( - event.subagentId, - backgroundMeta, - this.deps.backgroundTasks, - ); + const taskId = + backgroundMeta.taskId ?? + this.findAgentTaskId(event.subagentId, backgroundMeta, this.deps.backgroundTasks); this.backgroundAgentMetadata.delete(event.subagentId); this.deps.syncBackgroundAgentBadge(); if (taskId !== undefined && this.deps.backgroundTaskTranscriptedTerminal.has(taskId)) { @@ -316,7 +321,10 @@ export class SubAgentEventHandler { } const extras = event.resultSummary === undefined ? undefined : { resultSummary: event.resultSummary }; - this.appendBackgroundAgentEntry('completed', backgroundMeta, extras); + const entry = this.appendBackgroundAgentEntry('completed', backgroundMeta, extras); + if (taskId !== undefined) { + this.deps.backgroundTaskTerminalEntries.set(taskId, entry); + } return; } @@ -332,11 +340,9 @@ export class SubAgentEventHandler { this.pruneForegroundOnlyRecord(event.subagentId); const backgroundMeta = this.backgroundAgentMetadata.get(event.subagentId); if (backgroundMeta !== undefined) { - const taskId = this.findAgentTaskId( - event.subagentId, - backgroundMeta, - this.deps.backgroundTasks, - ); + const taskId = + backgroundMeta.taskId ?? + this.findAgentTaskId(event.subagentId, backgroundMeta, this.deps.backgroundTasks); const task = taskId === undefined ? undefined : this.deps.backgroundTasks.get(taskId); this.backgroundAgentMetadata.delete(event.subagentId); this.deps.syncBackgroundAgentBadge(); @@ -355,7 +361,10 @@ export class SubAgentEventHandler { if (taskId !== undefined) { this.deps.backgroundTaskTranscriptedTerminal.add(taskId); } - this.appendBackgroundAgentEntry('failed', backgroundMeta, { error: event.error }); + const entry = this.appendBackgroundAgentEntry('failed', backgroundMeta, { error: event.error }); + if (taskId !== undefined) { + this.deps.backgroundTaskTerminalEntries.set(taskId, entry); + } return; } @@ -364,6 +373,41 @@ export class SubAgentEventHandler { this.handleForegroundSubagentFailed(event, info); } + private handleSubagentCancelled( + event: SubagentLifecycleEventOf<'subagent.cancelled'>, + ): void { + this.activityStore.markFailed(event.subagentId); + this.pruneForegroundOnlyRecord(event.subagentId); + const backgroundMeta = this.backgroundAgentMetadata.get(event.subagentId); + if (backgroundMeta !== undefined) { + const taskId = + backgroundMeta.taskId ?? + this.findAgentTaskId(event.subagentId, backgroundMeta, this.deps.backgroundTasks); + this.backgroundAgentMetadata.delete(event.subagentId); + this.deps.syncBackgroundAgentBadge(); + this.host.streamingUI.applyBackgroundTaskTerminalStatus({ + agentId: event.subagentId, + description: backgroundMeta.description ?? '', + status: 'killed', + }); + if (taskId !== undefined && this.deps.backgroundTaskTranscriptedTerminal.has(taskId)) { + return; + } + if (taskId !== undefined) { + this.deps.backgroundTaskTranscriptedTerminal.add(taskId); + } + const entry = this.appendBackgroundAgentEntry('killed', backgroundMeta); + if (taskId !== undefined) { + this.deps.backgroundTaskTerminalEntries.set(taskId, entry); + } + return; + } + + const info = this.subagentInfo.get(event.subagentId); + if (info === undefined || info.runInBackground) return; + this.handleForegroundSubagentCancelled(event, info); + } + private findAgentTaskId( subagentId: string, meta: BackgroundAgentMetadata, @@ -419,14 +463,15 @@ export class SubAgentEventHandler { description: typeof description === 'string' ? description : undefined, model: this.spawnedModelDisplay(event), effort: this.subagentEffortDisplay(event.thinkingEffort), + taskId: event.taskId, }; } private appendBackgroundAgentEntry( - phase: 'started' | 'completed' | 'failed', + phase: BackgroundAgentStatusPhase, meta: BackgroundAgentMetadata, extras: { resultSummary?: string; error?: string } | undefined = undefined, - ): void { + ): TranscriptEntry { const status = formatBackgroundAgentTranscript(phase, meta, extras); const entry: TranscriptEntry = { id: nextTranscriptId(), @@ -438,6 +483,7 @@ export class SubAgentEventHandler { backgroundAgentStatus: status, }; this.host.appendTranscriptEntry(entry); + return entry; } private rememberSubagent( @@ -581,6 +627,24 @@ export class SubAgentEventHandler { this.host.streamingUI.removeToolComponentIfInactive(parentToolCallId); } + private handleForegroundSubagentCancelled( + event: SubagentLifecycleEventOf<'subagent.cancelled'>, + info: SubagentInfo, + ): void { + const { parentToolCallId } = info; + if (this.updateAgentSwarmProgress(parentToolCallId, (progress) => { + progress.markCancelled(event.subagentId); + })) { + this.host.streamingUI.removeToolComponentIfInactive(parentToolCallId); + return; + } + + const tc = this.host.streamingUI.getToolComponent(parentToolCallId); + if (tc === undefined) return; + tc.onSubagentFailed({ error: 'Aborted by the user' }); + this.host.streamingUI.removeToolComponentIfInactive(parentToolCallId); + } + private applySubagentEventToSwarmProgress( progress: AgentSwarmProgressComponent, event: Event, @@ -657,7 +721,41 @@ export class SubAgentEventHandler { this.host.updateActivityPane(); } + private agentSwarmGridHeightFrame: + | { readonly columns: number; readonly rows: number; readonly value: number | undefined } + | undefined; + + /** + * The measurement re-renders every dock child, so it is shared by every + * swarm component for the rest of the current synchronous render pass + * (frames are macrotask-separated, hence the microtask reset) instead of + * being recomputed per component per frame. + */ private agentSwarmGridHeight(): number | undefined { + const { state } = this.host; + const terminalRows = state.ui.terminal.rows; + const terminalColumns = state.ui.terminal.columns; + const frame = this.agentSwarmGridHeightFrame; + if ( + frame !== undefined && + frame.columns === terminalColumns && + frame.rows === terminalRows + ) { + return frame.value; + } + const entry = { + columns: terminalColumns, + rows: terminalRows, + value: this.measureAgentSwarmGridHeight(), + }; + this.agentSwarmGridHeightFrame = entry; + queueMicrotask(() => { + if (this.agentSwarmGridHeightFrame === entry) this.agentSwarmGridHeightFrame = undefined; + }); + return entry.value; + } + + private measureAgentSwarmGridHeight(): number | undefined { const { state } = this.host; const terminalRows = state.ui.terminal.rows; const terminalColumns = state.ui.terminal.columns; @@ -729,7 +827,8 @@ function isSubagentLifecycleEvent(event: Event): event is SubagentLifecycleEvent event.type === 'subagent.started' || event.type === 'subagent.suspended' || event.type === 'subagent.completed' || - event.type === 'subagent.failed' + event.type === 'subagent.failed' || + event.type === 'subagent.cancelled' ); } diff --git a/apps/kimi-code/src/tui/controllers/survey-controller.ts b/apps/kimi-code/src/tui/controllers/survey-controller.ts index fb7163394..87ddecdc0 100644 --- a/apps/kimi-code/src/tui/controllers/survey-controller.ts +++ b/apps/kimi-code/src/tui/controllers/survey-controller.ts @@ -1,62 +1,61 @@ -import { randomUUID } from 'node:crypto'; - +import type { TurnStartedEvent } from '@moonshot-ai/kimi-code-sdk'; +import { + cloudSurveyPopupConfigFeed, + mountSessionRating, + ratingCooldownFile, + type RatingConfigFeed, + type RatingCooldownStore, + type RatingEnvironment, + SessionRatingLedger, + type ResumedAgentSeed, + type SessionRatingMount, +} from '@moonshot-ai/kimi-code-product/session-rating/node'; +import type { RatingOffer, RatingResponse } from '@moonshot-ai/kimi-code-product/session-rating'; import { isTelemetryDisabledByEnv } from '@moonshot-ai/kimi-telemetry'; import { Key, matchesKey, Spacer } from '@moonshot-ai/pi-tui'; -import { - getSurveyPopupConfig, - peekSurveyPopupConfig, - peekSurveyPopupConfigFresh, - type SurveyPopupConfig, -} from '#/utils/survey-popup-config'; -import { readSurveyLastShownTime, writeSurveyLastShownTime } from '#/utils/survey-state-store'; -import { currentKimiRegion } from '#/utils/region'; +import { clientConfigs } from '#/utils/client-configs'; +import { getDataDir } from '#/utils/paths'; import { SurveyPanelComponent, type SurveyPanelView } from '../components/panes/survey-panel'; import { CHROME_GUTTER } from '../constant/rendering'; -import { printableChar } from '../utils/printable-key'; import { SURVEY_DIGIT_DEBOUNCE_MS, - SURVEY_IDLE_EVALUATION_DELAY_MS, - SURVEY_MOUNT_PROTECTION_MS, - SURVEY_PENDING_UNDO_WINDOW_MS, - SURVEY_ORDERED_LIST_START, - SURVEY_SINGLE_OPTION_DIGIT, - SURVEY_OPTION_COUNT, - SURVEY_DISMISS_OPTION_INDEX, SURVEY_DIGIT_RESPONSES, + SURVEY_DISMISS_OPTION_INDEX, + SURVEY_IDLE_EVALUATION_DELAY_MS, SURVEY_MIN_OPTIONS_WIDTH, - surveyMinTotalHeight, - SURVEY_CONFIG_REFRESH_INTERVAL_MS, + SURVEY_MOUNT_PROTECTION_MS, + SURVEY_OPTION_COUNT, + SURVEY_ORDERED_LIST_START, + SURVEY_PENDING_UNDO_WINDOW_MS, + SURVEY_SINGLE_OPTION_DIGIT, SURVEY_THANKS_DURATION_MS, + surveyMinTotalHeight, } from '../constant/survey'; import type { TUIState } from '../tui-state'; -import { - buildSurveyEventProperties, - evaluateSurveyGate, - SURVEY_EVENT_NAMES, - SURVEY_MACHINE_CLOSED, - surveyMachineReduce, - type LongContextArmGateInput, - type SessionArmGateInput, - type SharedArmGateInput, - type SurveyAppearance, - type SurveyEventEnvironmentFields, - type SurveyKind, - type SurveyMachineAction, - type SurveyMachineEffect, - type SurveyMachineState, -} from '../utils/survey-policy'; +import { printableChar } from '../utils/printable-key'; +import { surveyUiVeto } from '../utils/survey-policy'; import type { BtwPanelController } from './btw-panel'; +type RatingView = + | { readonly phase: 'closed' } + | (RatingOffer & { readonly phase: 'open' }) + | (RatingOffer & { readonly phase: 'pending' | 'thanks'; readonly response: RatingResponse }); + export interface SurveyHost { readonly state: TUIState; readonly btwPanelController: BtwPanelController; - track(event: string, props?: Record): void; + track( + event: string, + props?: Record, + context?: { readonly sessionId?: string }, + ): void; } export interface SurveyControllerDeps { - readonly config?: () => SurveyPopupConfig; + readonly configFeed?: RatingConfigFeed; + readonly cooldown?: RatingCooldownStore; readonly monotonicNow?: () => number; readonly wallNow?: () => number; readonly random?: () => number; @@ -64,172 +63,137 @@ export interface SurveyControllerDeps { readonly setTimer?: (fn: () => void, ms: number) => unknown; readonly clearTimer?: (handle: unknown) => void; readonly telemetryDisabled?: () => boolean; - readonly feedbackSurveyDisabled?: () => boolean; - readonly refreshConfig?: () => unknown; readonly terminalHeight?: () => number; - readonly configFresh?: () => boolean; readonly terminalWidth?: () => number; - readonly configRegion?: () => string; readonly accessToken?: () => Promise; - readonly readGlobalLastShown?: () => Promise; - readonly writeGlobalLastShown?: (wallTime: number) => void; } -const defaultDeps = { - monotonicNow: () => performance.now(), - wallNow: () => Date.now(), - random: () => Math.random(), - appearanceId: () => randomUUID(), - setTimer: (fn: () => void, ms: number) => setTimeout(fn, ms), - clearTimer: (handle: unknown) => { - clearTimeout(handle as Parameters[0]); - }, - telemetryDisabled: () => isTelemetryDisabledByEnv(), - config: () => peekSurveyPopupConfig(), - configFresh: () => peekSurveyPopupConfigFresh(), - terminalHeight: () => process.stdout.rows, - configRegion: () => currentKimiRegion(), - terminalWidth: () => process.stdout.columns, - readGlobalLastShown: readSurveyLastShownTime, - writeGlobalLastShown: writeSurveyLastShownTime, -} satisfies Omit< - Required, - 'feedbackSurveyDisabled' | 'refreshConfig' | 'accessToken' ->; +function modelRoute(appState: TUIState['appState']): RatingEnvironment['model'] { + const entry = appState.availableModels[appState.model]; + if (entry === undefined) return { modelId: undefined, baseUrl: undefined }; + return { + modelId: entry.model, + baseUrl: entry.baseUrl ?? appState.availableProviders[entry.provider]?.baseUrl, + }; +} export class SurveyController { - private machine: SurveyMachineState = SURVEY_MACHINE_CLOSED; + private rating: SessionRatingMount; + private readonly ledger: SessionRatingLedger; + private ratingView: RatingView = { phase: 'closed' }; + private ratingSessionId = ''; + private phaseTimer: unknown; + private readonly configFeed: RatingConfigFeed; + private readonly cooldown: RatingCooldownStore; private readonly view: SurveyPanelView = { phase: 'open' }; private mounted = false; - private mountedAt: number; - private userTurnCount = 0; - private lastShownAt: number | undefined; - private userTurnsAtLastShown: number | undefined; - private appearanceCount = 0; - private globalLastShownAt: number | undefined; - private longContextRollConsumed = false; - private generation = 0; - private idleSince: number | undefined; + private openAppearanceId: string | undefined; private openedAt = 0; - private stickySample: { readonly turnCount: number; readonly value: number } | undefined; + private initialUserTurnCount: number | undefined = 0; + private resumedAgents: Readonly> | undefined; private lastTypedDigit: string | undefined; private openedEditorText: string | undefined; private idleTimer: unknown; private digitTimer: unknown; - private phaseTimer: unknown; - private toolCallCount = 0; - private compactionCount = 0; - private currentTurnUserOrigin: boolean | undefined; - private evaluationPending = false; - private appearanceConfig: SurveyPopupConfig | undefined; - private configReady = false; - private cooldownReady = false; - private configRefreshedAt = 0; - private coldRefreshAttemptedAt = 0; - private configRegion: string | undefined; constructor( private readonly host: SurveyHost, private readonly deps: SurveyControllerDeps = {}, ) { - this.mountedAt = this.now(); - this.reset(); - this.refreshConfig(); - this.coldRefreshAttemptedAt = this.now(); + this.configFeed = + deps.configFeed ?? cloudSurveyPopupConfigFeed(clientConfigs, deps.accessToken); + this.cooldown = deps.cooldown ?? ratingCooldownFile(getDataDir()); + this.ledger = new SessionRatingLedger({ + telemetryDisabled: () => (this.deps.telemetryDisabled ?? isTelemetryDisabledByEnv)(), + now: () => this.now(), + }); + this.rating = this.createRating(); } reset(): void { - this.generation += 1; this.clearIdleTimer(); this.clearDigitTimer(); - this.clearPhaseTimer(); - this.applyClose(); - this.machine = SURVEY_MACHINE_CLOSED; - this.mountedAt = this.now(); - this.userTurnCount = 0; - this.lastShownAt = undefined; - this.userTurnsAtLastShown = undefined; - this.appearanceCount = 0; - this.longContextRollConsumed = false; - this.idleSince = undefined; - this.stickySample = undefined; - this.toolCallCount = 0; - this.compactionCount = 0; - this.appearanceConfig = undefined; - this.currentTurnUserOrigin = undefined; - this.evaluationPending = false; - const generation = this.generation; - this.cooldownReady = false; - void (this.deps.readGlobalLastShown ?? defaultDeps.readGlobalLastShown)() - .then((lastShown) => { - if (this.generation !== generation) return; - if (lastShown !== undefined) { - this.globalLastShownAt = Math.max(lastShown, this.globalLastShownAt ?? 0); - } - this.cooldownReady = true; - }) - .catch(() => { - if (this.generation === generation) this.cooldownReady = true; - }); + this.notifyDisplaced(); + this.rating.end(); + this.syncView({ phase: 'closed' }); + this.initialUserTurnCount = 0; + this.resumedAgents = undefined; + this.rating = this.createRating(); } dispose(): void { - this.generation += 1; this.clearIdleTimer(); this.clearDigitTimer(); this.clearPhaseTimer(); - this.applyClose(); + this.rating.end(); + this.ledger.clear(); + this.syncView({ phase: 'closed' }); } - notifyTurnStarted(userOrigin: boolean): void { - this.currentTurnUserOrigin = userOrigin; - this.idleSince = undefined; + notifyTurnStarted(origin: TurnStartedEvent['origin']): void { this.clearIdleTimer(); - if (this.machine.phase !== 'closed') this.applyAction({ type: 'close-silently' }); - if (userOrigin) { - this.userTurnCount += 1; - this.evaluationPending = false; - } + this.notifyDisplaced(); + this.rating.observe({ kind: 'turn-started', origin }); } - notifyTurnEnded(): void { - if (this.currentTurnUserOrigin === true) this.evaluationPending = true; - this.currentTurnUserOrigin = undefined; - if (!this.evaluationPending) return; - this.idleSince = this.now(); + notifyTurnEnded(traceId?: string): void { + this.rating.observe({ kind: 'turn-ended', traceId }); this.clearIdleTimer(); this.idleTimer = this.setT(() => { this.idleTimer = undefined; - this.evaluationPending = false; - this.evaluate(); + if (this.ratingView.phase !== 'closed' || surveyUiVeto(this.uiVetoInput()) !== undefined) return; + const offer = this.rating.evaluate(); + if (offer === undefined) return; + this.ratingSessionId = this.host.state.appState.sessionId ?? ''; + this.syncView({ phase: 'open', ...offer }); + this.ledger.report(this.ratingSessionId, { type: 'shown', appearanceId: offer.appearanceId }); }, SURVEY_IDLE_EVALUATION_DELAY_MS); } - notifyToolCallStarted(): void { - this.toolCallCount += 1; + notifyToolCallStarted(toolCallId: string, toolName: string): void { + this.rating.observe({ kind: 'tool-call-started', toolCallId, toolName }); + } + + notifyToolCallEnded(toolCallId: string): void { + this.rating.observe({ kind: 'tool-call-ended', toolCallId }); + } + + notifySubagentSpawned(event: { + readonly parentToolCallId?: string; + readonly swarmIndex?: number; + readonly model?: string; + }): void { + this.rating.observe({ + kind: 'subagent-spawned', + parentToolCallId: event.parentToolCallId, + swarmIndex: event.swarmIndex, + model: event.model, + }); + } + + seedUserTurnCount(count: number | undefined): void { + this.initialUserTurnCount = count; + } + + seedFromResumedAgents(agents: Readonly>): void { + this.resumedAgents = agents; } notifyCompactionFinished(): void { - this.compactionCount += 1; + this.rating.observe({ kind: 'compaction-completed' }); } notifyInputModeChanged(mode: 'prompt' | 'bash'): void { if (mode !== 'bash') return; - if (this.machine.phase === 'closed') return; - if (this.machine.phase === 'open') { - this.applyAction({ type: 'abandon' }); - return; - } - this.applyAction({ type: 'close-silently' }); + this.notifyDisplaced(); } - closeSilently(): void { - if (this.machine.phase === 'closed') return; - this.applyAction({ type: 'close-silently' }); + notifyDisplaced(): void { + this.act('displace'); } handlePreInput(data: string): boolean { - const phase = this.machine.phase; + const phase = this.ratingView.phase; if (phase === 'closed') return false; if (this.inMountProtection()) { const printable = printableChar(data); @@ -243,13 +207,13 @@ export class SurveyController { switch (phase) { case 'open': if (this.tooNarrow() || this.tooShort()) return false; - this.applyAction({ type: 'dismiss' }); + this.act('dismiss'); return true; case 'pending': - this.applyAction({ type: 'undo' }); + this.act('undo'); return true; case 'thanks': - this.applyAction({ type: 'close-silently' }); + this.act('dismiss'); return true; } } @@ -285,12 +249,12 @@ export class SurveyController { } handleEditorChange(text: string): void { - if (this.machine.phase !== 'open') return; + if (this.ratingView.phase !== 'open') return; const wasTyped = text === this.lastTypedDigit; this.lastTypedDigit = undefined; if (this.inMountProtection()) { if (text.length === 0 || wasTyped) return; - this.applyAction({ type: 'abandon' }); + this.act('displace'); return; } if (this.openedEditorText !== undefined) { @@ -308,7 +272,7 @@ export class SurveyController { } if (!bashMode && SURVEY_SINGLE_OPTION_DIGIT.test(text)) { if (!wasTyped) { - this.applyAction({ type: 'abandon' }); + this.act('displace'); return; } this.clearDigitTimer(); @@ -319,16 +283,16 @@ export class SurveyController { }, SURVEY_DIGIT_DEBOUNCE_MS); return; } - this.applyAction({ type: 'abandon' }); + this.act('displace'); } handleSubmit(text: string): boolean { - if (this.machine.phase !== 'open') return false; + if (this.ratingView.phase !== 'open') return false; if (this.inMountProtection()) return false; if (this.tooNarrow()) return false; if (this.tooShort()) return false; if (this.host.state.editor.inputMode === 'bash') { - this.applyAction({ type: 'abandon' }); + this.act('displace'); return false; } if (SURVEY_SINGLE_OPTION_DIGIT.test(text) && text !== this.openedEditorText) { @@ -340,78 +304,59 @@ export class SurveyController { return true; } if (text.trim().length > 0) { - this.applyAction({ type: 'abandon' }); + this.act('displace'); } return false; } - private evaluate(): void { - if (this.machine.phase !== 'closed') return; - if (!this.configReady) return; - if (!this.cooldownReady) return; - const region = (this.deps.configRegion ?? defaultDeps.configRegion)(); - const cacheCold = !(this.deps.configFresh ?? defaultDeps.configFresh)(); - if ( - cacheCold && - this.now() - this.coldRefreshAttemptedAt >= SURVEY_CONFIG_REFRESH_INTERVAL_MS - ) { - this.coldRefreshAttemptedAt = this.now(); - if (this.refreshConfig()) return; - } else if ( - (region !== this.configRegion || - this.now() - this.configRefreshedAt >= SURVEY_CONFIG_REFRESH_INTERVAL_MS) && - this.refreshConfig() - ) { - return; - } - const config = (this.deps.config ?? defaultDeps.config)(); - const verdict = evaluateSurveyGate({ ...this.gateInputs(), config }); - if (verdict.longContextRollConsumed === true) this.longContextRollConsumed = true; - if (!verdict.show) return; - this.open(verdict.survey, config); + private createRating(): SessionRatingMount { + return mountSessionRating({ + environment: () => this.environment(), + config: this.configFeed, + cooldown: this.cooldown, + ledger: this.ledger, + track: (event, properties, context) => { + if (context.sessionId.length > 0) { + this.host.track(event, { ...properties }, { sessionId: context.sessionId }); + } else { + this.host.track(event, { ...properties }); + } + }, + now: this.deps.monotonicNow, + wallNow: this.deps.wallNow, + random: this.deps.random, + appearanceId: this.deps.appearanceId, + }); } - private gateInputs(): { session: SessionArmGateInput; longContext: LongContextArmGateInput } { + private environment(): RatingEnvironment { const { appState } = this.host.state; - const now = this.now(); - const shared: SharedArmGateInput = { - phase: this.machine.phase, - turnInProgress: appState.streamingPhase !== 'idle' || appState.isCompacting, - idleForMs: this.idleSince === undefined ? 0 : now - this.idleSince, + return { + sessionId: appState.sessionId ?? '', + currentModel: appState.model, + model: modelRoute(appState), + cumulativeTokens: appState.cumulativeTokens ?? 0, + contextTokens: appState.contextTokens, + permissionMode: appState.permissionMode, + thinkingEffort: appState.thinkingEffort, + busy: appState.streamingPhase !== 'idle' || appState.isCompacting, + telemetryDisabled: (this.deps.telemetryDisabled ?? isTelemetryDisabledByEnv)(), + ratingDisabled: appState.disableFeedbackSurvey === true, + historyUserTurnCount: this.initialUserTurnCount, + resumedAgents: this.resumedAgents, + }; + } + + private uiVetoInput(): Parameters[0] { + const terminalWidth = this.terminalWidth(); + return { + lastUserMessageStartsOrderedList: this.lastUserMessageStartsOrderedList(), promptActive: this.promptActive(), editorBashActive: this.host.state.editor.inputMode === 'bash', editorAutocompleteActive: this.host.state.editor.hasAutocompleteActivity(), externalEditorActive: this.host.state.externalEditorRunning, - terminalWidth: (this.deps.terminalWidth ?? defaultDeps.terminalWidth)() - 2 * CHROME_GUTTER, - terminalHeight: (this.deps.terminalHeight ?? defaultDeps.terminalHeight)(), - feedbackSurveyDisabled: - this.deps.feedbackSurveyDisabled?.() ?? - this.host.state.appState.disableFeedbackSurvey === true, - telemetryDisabled: (this.deps.telemetryDisabled ?? defaultDeps.telemetryDisabled)(), - currentModel: appState.model, - lastUserMessageStartsOrderedList: this.lastUserMessageStartsOrderedList(), - }; - return { - session: { - ...shared, - mountedForMs: now - this.mountedAt, - userTurnsSinceMount: this.userTurnCount, - msSinceLastShown: this.lastShownAt === undefined ? undefined : now - this.lastShownAt, - userTurnsSinceLastShown: - this.userTurnsAtLastShown === undefined - ? undefined - : this.userTurnCount - this.userTurnsAtLastShown, - sample: this.currentSample(), - msSinceGlobalLastShown: - this.globalLastShownAt === undefined ? undefined : this.wallNow() - this.globalLastShownAt, - }, - longContext: { - ...shared, - cumulativeTokens: appState.cumulativeTokens ?? 0, - virtualContextTokens: appState.contextTokens, - mountRollConsumed: this.longContextRollConsumed, - drawMountRoll: () => (this.deps.random ?? defaultDeps.random)(), - }, + terminalWidth, + terminalHeight: (this.deps.terminalHeight ?? (() => process.stdout.rows))(), }; } @@ -437,101 +382,70 @@ export class SurveyController { return false; } - private currentSample(): number { - if (this.stickySample?.turnCount !== this.userTurnCount) { - this.stickySample = { - turnCount: this.userTurnCount, - value: (this.deps.random ?? defaultDeps.random)(), - }; - } - return this.stickySample.value; - } - - private open(survey: SurveyKind, config: SurveyPopupConfig): void { - this.appearanceCount += 1; - const appearance: SurveyAppearance = { - survey, - appearanceId: (this.deps.appearanceId ?? defaultDeps.appearanceId)(), - appearanceIndex: this.appearanceCount, - }; - const shownAt = this.now(); - this.appearanceConfig = config; - this.applyAction({ type: 'open', appearance }); - if (this.machine.phase !== 'open') return; - this.openedAt = shownAt; - this.openedEditorText = this.host.state.editor.getText(); - this.lastShownAt = shownAt; - this.userTurnsAtLastShown = this.userTurnCount; - if (survey !== 'session') return; - this.globalLastShownAt = this.wallNow(); - try { - (this.deps.writeGlobalLastShown ?? defaultDeps.writeGlobalLastShown)( - this.globalLastShownAt, - ); - } catch {} - } - - private applyAction(action: SurveyMachineAction): void { + private act(type: 'undo' | 'dismiss' | 'displace'): void { this.clearDigitTimer(); + const view = this.ratingView; + if (view.phase === 'closed') return; + if (type === 'undo') { + if (view.phase !== 'pending') return; + this.clearPhaseTimer(); + this.syncView({ phase: 'open', appearanceId: view.appearanceId, survey: view.survey }); + return; + } + if (type === 'dismiss' && view.phase === 'pending') return; this.clearPhaseTimer(); - const transition = surveyMachineReduce(this.machine, action); - if (transition.state === this.machine && transition.effects.length === 0) return; - const appearance = transition.state.appearance ?? this.machine.appearance; - this.machine = transition.state; - for (const effect of transition.effects) { - this.runEffect(effect, appearance); - } - this.syncView(); - } - - private runEffect(effect: SurveyMachineEffect, appearance: SurveyAppearance | undefined): void { - switch (effect.type) { - case 'report': { - if (appearance === undefined) return; - this.host.track( - SURVEY_EVENT_NAMES[appearance.survey], - buildSurveyEventProperties( - { - event_type: effect.eventType, - appearance_id: appearance.appearanceId, - appearance_index: appearance.appearanceIndex, - response: effect.response, - }, - this.environmentFields(), - this.appearanceConfig ?? (this.deps.config ?? defaultDeps.config)(), - ), - ); - return; - } - case 'schedule': { - if (effect.timer === 'pending-settle') { - this.phaseTimer = this.setT(() => { - this.phaseTimer = undefined; - this.applyAction({ type: 'settle' }); - }, SURVEY_PENDING_UNDO_WINDOW_MS); - } else { - this.phaseTimer = this.setT(() => { - this.phaseTimer = undefined; - this.applyAction({ type: 'thanks-elapsed' }); - }, SURVEY_THANKS_DURATION_MS); - } - } + this.syncView({ phase: 'closed' }); + if (view.phase === 'pending') { + this.ledger.report(this.ratingSessionId, { + type: 'respond', appearanceId: view.appearanceId, response: view.response, + }); + } else if (view.phase === 'open') { + this.ledger.report(this.ratingSessionId, type === 'dismiss' + ? { type: 'respond', appearanceId: view.appearanceId, response: 'dismissed' } + : { type: 'abandon', appearanceId: view.appearanceId }); } } - private syncView(): void { - if (this.machine.phase === 'closed') { + private select(response: RatingResponse): void { + this.clearDigitTimer(); + const view = this.ratingView; + if (view.phase !== 'open') return; + this.syncView({ ...view, phase: 'pending', response }); + this.phaseTimer = this.setT(() => { + this.phaseTimer = undefined; + this.syncView({ ...view, phase: 'thanks', response }); + this.ledger.report(this.ratingSessionId, { + type: 'respond', appearanceId: view.appearanceId, response, + }); + this.phaseTimer = this.setT(() => { + this.phaseTimer = undefined; + this.syncView({ phase: 'closed' }); + }, SURVEY_THANKS_DURATION_MS); + }, SURVEY_PENDING_UNDO_WINDOW_MS); + } + + private clearPhaseTimer(): void { + if (this.phaseTimer === undefined) return; + this.clearT(this.phaseTimer); + this.phaseTimer = undefined; + } + + private syncView(view: RatingView): void { + this.ratingView = view; + if (view.phase === 'closed') { this.view.hoverIndex = undefined; this.applyClose(); return; } - this.view.phase = this.machine.phase; - this.view.response = - this.machine.response === undefined || this.machine.response === 'dismissed' - ? undefined - : this.machine.response; - if (this.machine.phase !== 'open') this.view.hoverIndex = undefined; - this.mount(); + if (view.phase === 'open' && view.appearanceId !== this.openAppearanceId) { + this.openAppearanceId = view.appearanceId; + this.openedAt = this.now(); + this.openedEditorText = this.host.state.editor.getText(); + } + this.view.phase = view.phase; + this.view.response = view.phase === 'open' ? undefined : view.response; + if (view.phase !== 'open') this.view.hoverIndex = undefined; + this.mountPanel(); this.host.state.ui.requestRender(); } @@ -544,7 +458,7 @@ export class SurveyController { this.host.state.ui.requestRender(); } - private mount(): void { + private mountPanel(): void { if (this.mounted) return; this.mounted = true; const container = this.host.state.surveyContainer; @@ -556,9 +470,9 @@ export class SurveyController { private chooseDigit(digit: string): void { const response = SURVEY_DIGIT_RESPONSES[digit]; if (response === undefined) { - this.applyAction({ type: 'dismiss' }); + this.act('dismiss'); } else { - this.applyAction({ type: 'select', response }); + this.select(response); } this.host.state.editor.setText(''); } @@ -567,12 +481,12 @@ export class SurveyController { const hoverIndex = this.view.hoverIndex; if (hoverIndex === undefined) return; if (hoverIndex === SURVEY_DISMISS_OPTION_INDEX) { - this.applyAction({ type: 'dismiss' }); + this.act('dismiss'); return; } const response = SURVEY_DIGIT_RESPONSES[String(hoverIndex + 1)]; if (response === undefined) return; - this.applyAction({ type: 'select', response }); + this.select(response); } private moveHover(delta: number): void { @@ -584,61 +498,18 @@ export class SurveyController { this.host.state.ui.requestRender(); } - private environmentFields(): SurveyEventEnvironmentFields { - const { appState } = this.host.state; - return { - current_model: appState.model, - user_turn_count: this.userTurnCount, - cumulative_tokens: appState.cumulativeTokens ?? 0, - virtual_context_tokens: appState.contextTokens, - tool_call_count: this.toolCallCount, - compaction_count: this.compactionCount, - permission_mode: appState.permissionMode, - thinking_effort: appState.thinkingEffort, - }; - } - - private refreshConfig(): boolean { - this.configRefreshedAt = this.now(); - this.configRegion = (this.deps.configRegion ?? defaultDeps.configRegion)(); - const markReady = () => { - this.configReady = true; - }; - if (this.deps.refreshConfig !== undefined) { - this.configReady = false; - void Promise.resolve(this.deps.refreshConfig()) - .catch(() => undefined) - .finally(markReady); - return true; - } - const accessToken = this.deps.accessToken; - if (accessToken === undefined) { - markReady(); - return false; - } - this.configReady = false; - void (async () => { - const token = await accessToken(); - await getSurveyPopupConfig({ accessToken: token }); - })() - .catch(() => undefined) - .finally(markReady); - return true; + private terminalWidth(): number { + return (this.deps.terminalWidth ?? (() => process.stdout.columns))() - 2 * CHROME_GUTTER; } private tooNarrow(): boolean { - return ( - (this.deps.terminalWidth ?? defaultDeps.terminalWidth)() - 2 * CHROME_GUTTER < - SURVEY_MIN_OPTIONS_WIDTH - ); + return this.terminalWidth() < SURVEY_MIN_OPTIONS_WIDTH; } private tooShort(): boolean { return ( - (this.deps.terminalHeight ?? defaultDeps.terminalHeight)() < - surveyMinTotalHeight( - (this.deps.terminalWidth ?? defaultDeps.terminalWidth)() - 2 * CHROME_GUTTER, - ) + (this.deps.terminalHeight ?? (() => process.stdout.rows))() < + surveyMinTotalHeight(this.terminalWidth()) ); } @@ -647,19 +518,23 @@ export class SurveyController { } private now(): number { - return (this.deps.monotonicNow ?? defaultDeps.monotonicNow)(); - } - - private wallNow(): number { - return (this.deps.wallNow ?? defaultDeps.wallNow)(); + return (this.deps.monotonicNow ?? (() => performance.now()))(); } private setT(fn: () => void, ms: number): unknown { - return (this.deps.setTimer ?? defaultDeps.setTimer)(fn, ms); + return (this.deps.setTimer ?? ((callback: () => void, delay: number) => setTimeout(callback, delay)))( + fn, + ms, + ); } private clearT(handle: unknown): void { - (this.deps.clearTimer ?? defaultDeps.clearTimer)(handle); + ( + this.deps.clearTimer ?? + ((value: unknown) => { + clearTimeout(value as Parameters[0]); + }) + )(handle); } private clearIdleTimer(): void { @@ -673,10 +548,4 @@ export class SurveyController { this.clearT(this.digitTimer); this.digitTimer = undefined; } - - private clearPhaseTimer(): void { - if (this.phaseTimer === undefined) return; - this.clearT(this.phaseTimer); - this.phaseTimer = undefined; - } } diff --git a/apps/kimi-code/src/tui/kimi-tui.ts b/apps/kimi-code/src/tui/kimi-tui.ts index 92e8e12ab..7a9feff8d 100644 --- a/apps/kimi-code/src/tui/kimi-tui.ts +++ b/apps/kimi-code/src/tui/kimi-tui.ts @@ -4,11 +4,12 @@ import { unlink } from 'node:fs/promises'; import { join } from 'node:path'; import type { DeviceAuthorization } from '@moonshot-ai/kimi-code-oauth'; -import { effectiveModelAlias, log } from '@moonshot-ai/kimi-code-sdk'; +import { log } from '@moonshot-ai/kimi-code-sdk'; import type { ApprovalRequest, ApprovalResponse, BackgroundTaskInfo, + CompactionStartedEvent, CreateSessionOptions, KimiHarness, PermissionMode, @@ -19,6 +20,7 @@ import type { TokenUsage, TurnEndedEvent, TurnStartedEvent, + Unsubscribe, WorkspaceTrustInfo, } from '@moonshot-ai/kimi-code-sdk'; import { isTelemetryDisabledByEnv } from '@moonshot-ai/kimi-telemetry'; @@ -28,9 +30,12 @@ import { type Component, type Focusable, getCapabilities, + Key, + matchesKey, Spacer, TuiAltScreen, TuiMainScreen, + type TuiMouseEventResult, } from '@moonshot-ai/pi-tui'; import { resolve } from 'pathe'; @@ -40,13 +45,16 @@ import { copyTextToClipboard } from '#/utils/clipboard/clipboard-text'; import { appendInputHistory, loadInputHistory } from '#/utils/history/input-history'; import { openUrl } from '#/utils/open-url'; import { getInputHistoryFile } from '#/utils/paths'; +import { refreshModelSwitchConfirmConfig } from '#/utils/model-switch-confirm-config'; import { applyRecommendedEffort } from '#/utils/recommended-effort'; import { getRecommendedEffortConfig } from '#/utils/recommended-effort-config'; +import { migrateLegacySurveySetting } from '#/utils/survey-setting'; import { detectFdPath, ensureFdPath } from '#/utils/process/fd-detect'; import { quoteShellArg } from '#/utils/shell-quote'; import { restoreTerminalModes } from '#/utils/terminal-restore'; import { BannerProvider } from './banner/banner-provider'; +import { resolveBannerAudienceContext, type BannerAudienceContext } from './banner/audience'; import { readBannerDisplayState, writeBannerDisplayState } from './banner/state'; import { BUILTIN_SLASH_COMMANDS, @@ -77,7 +85,6 @@ import { } from './components/dialogs/approval-preview'; import { CompactionComponent } from './components/dialogs/compaction'; import { HelpPanelComponent } from './components/dialogs/help-panel'; -import { defaultThinkingEffortFor } from './components/dialogs/model-selector'; import { QuestionDialogComponent } from './components/dialogs/question-dialog'; import { SessionPickerComponent, type SessionRow } from './components/dialogs/session-picker'; import { TrustPromptComponent, type TrustPromptChoice } from './components/dialogs/trust-prompt'; @@ -109,14 +116,16 @@ import { } from './components/messages/user-message'; import { ActivityPaneComponent, type ActivityPaneMode } from './components/panes/activity-pane'; import { QueuePaneComponent } from './components/panes/queue-pane'; -import type { TuiConfig } from './config'; +import { removeLegacySurveySetting, type TuiConfig } from './config'; import { LLM_NOT_SET_MESSAGE, MAIN_AGENT_ID, + MAX_AUTO_TITLE_ATTEMPTS, NO_ACTIVE_SESSION_MESSAGE, PRODUCT_NAME, SESSION_LIST_PAGE_SIZE, SESSIONLESS_STARTUP_NOTICE, + SHUTTING_DOWN_HINT, } from './constant/kimi-tui'; import { MEDIA_INGESTION_SUBMIT_WAIT_MS } from './constant/media'; import { CHROME_GUTTER } from './constant/rendering'; @@ -125,7 +134,9 @@ import { AuthFlowController } from './controllers/auth-flow'; import { BtwPanelController } from './controllers/btw-panel'; import { ClipboardImageHintController } from './controllers/clipboard-image-hint'; import { EditorKeyboardController } from './controllers/editor-keyboard'; +import { ModelMigrationController } from './controllers/model-migration'; import { SessionEventHandler } from './controllers/session-event-handler'; +import { showSessionOccupancyPrompt } from './controllers/session-occupancy'; import { SessionReplayRenderer } from './controllers/session-replay'; import { StagingLeaseTracker, type StagingLease } from './controllers/staging-leases'; import { StreamingUIController } from './controllers/streaming-ui'; @@ -147,6 +158,7 @@ import { sumTokenUsage, type AppState, type InlineSkillActivation, + type PreparedSkillActivations, type KimiTUIOptions, type LivePaneState, type LoginProgressSpinnerHandle, @@ -158,6 +170,7 @@ import { type TUIStartupState, } from './types'; import { + countedByExpandHint, hasDispose, hasHiddenContent, isExpandable, @@ -166,9 +179,10 @@ import { import { isDeadTerminalError } from './utils/dead-terminal'; import { formatErrorMessage } from './utils/event-payload'; import { pickForegroundTasks } from './utils/foreground-task'; -import { ImageAttachmentStore, type ImageAttachment } from './utils/image-attachment-store'; +import { ImageAttachmentStore, type ImageAttachment, type MediaAttachment } from './utils/image-attachment-store'; import { extractMediaAttachments, + omitExpiredVideoFileRefs, originalsDirForSession, pendingMediaIngestions, refreshExpiringImageFileRefs, @@ -183,9 +197,10 @@ import { REPLAY_FETCH_TURN_LIMIT } from './utils/message-replay'; import { hasPatchChanges } from './utils/object-patch'; import { beginScreenTakeover, endScreenTakeover, type ScreenTakeover } from './utils/screen-takeover'; import { sessionRowsForPicker } from './utils/session-picker-rows'; +import { isSessionOccupiedError } from './utils/session-lock-errors'; import { formatStepRetryDetail, formatStepRetryLabel } from './utils/step-retry'; import { formatBashOutputForDisplay } from './utils/shell-output'; -import { thinkingEffortFromConfig } from './utils/thinking-config'; +import { lazyModelSelection } from './utils/model-switch'; import { combineStartupNotice, isOAuthLoginRequiredError } from './utils/startup'; import { installTerminalFocusTracking } from './utils/terminal-focus'; import { notifyTerminalOnce } from './utils/terminal-notification'; @@ -234,11 +249,11 @@ export interface KimiTUIStartupInput { } type EffectiveActivityPaneMode = ActivityPaneMode | 'idle' | 'session'; -type LoadingTipKind = 'moon' | 'composing'; +type LoadingTipKind = 'moon' | 'braille'; function loadingTipKind(mode: EffectiveActivityPaneMode): LoadingTipKind | undefined { if (mode === 'waiting' || mode === 'tool') return 'moon'; - if (mode === 'composing') return 'composing'; + if (mode === 'composing' || mode === 'thinking') return 'braille'; return undefined; } @@ -281,15 +296,18 @@ function createInitialAppState(input: KimiTUIStartupInput): AppState { streamingStartTime: 0, stepRetry: null, theme: input.tuiConfig.theme, + tuiMode: input.tuiConfig.tuiMode, version: input.version, editorCommand: input.tuiConfig.editorCommand, disablePasteBurst: input.tuiConfig.disablePasteBurst, renderLatex: input.tuiConfig.renderLatex, cacheExpiryHint: input.tuiConfig.cacheExpiryHint, disableFeedbackSurvey: input.tuiConfig.disableFeedbackSurvey, + autoSessionTitle: input.tuiConfig.autoSessionTitle, notifications: input.tuiConfig.notifications, upgrade: input.tuiConfig.upgrade, statusLine: input.tuiConfig.statusLine, + markdown: input.tuiConfig.markdown, availableModels: {}, availableProviders: {}, sessionTitle: null, @@ -303,6 +321,7 @@ interface SendMessageOptions { readonly parts?: readonly PromptPart[]; readonly imageAttachmentIds?: readonly number[]; readonly videoAttachmentIds?: readonly number[]; + readonly mediaSnapshots?: readonly MediaAttachment[]; readonly hasMedia?: boolean; /** * Lease pre-created at extraction time by `sendNormalUserInput`. Dispatch @@ -310,26 +329,12 @@ interface SendMessageOptions { * it — the queue item owns the raw ids and re-leases at dequeue. */ readonly lease?: StagingLease; + readonly occupiedRetry?: boolean; } /** How long the one-shot "moved to background" footer hint stays visible. */ const DETACH_HINT_DISPLAY_MS = 4_000; -function isUserSubmittedTurnOrigin(origin: TurnStartedEvent['origin'] | undefined): boolean { - if (origin === undefined) return false; - switch (origin.kind) { - case 'user': - return true; - case 'skill_activation': - case 'plugin_command': - return origin.trigger === 'user-slash'; - case 'shell_command': - return origin.phase === 'input'; - default: - return false; - } -} - export class KimiTUI { readonly harness: KimiHarness; readonly options: KimiTUIOptions; @@ -337,12 +342,18 @@ export class KimiTUI { state: TUIState; /** In-flight lazy session creation (v2 engine), shared by concurrent first-use triggers. */ private ensureSessionPromise: Promise | null = null; + /** In-flight `/new` session replacement, shared by concurrent `/new` triggers. */ + private newSessionPromise: Promise | null = null; private readonly cacheHint = new CacheHintController(this); /** Staged prompt media lifecycle (daemon uploads + cache copies) — see StagingLeaseTracker. */ private readonly staging: StagingLeaseTracker; + private readonly steeringQueuedMessages = new Set(); + private readonly pendingPromptEntries = new Set(); + private readonly autoTitleAttempts = new Map(); private readonly approvalController = new ApprovalController(); private readonly questionController = new QuestionController(); private readonly reverseRpcDisposers: Array<() => void> = []; + private surveySettingSubscription: Unsubscribe | undefined; private skillCommands: readonly KimiSlashCommand[] = []; readonly skillCommandMap = new Map(); private pluginCommands: readonly KimiSlashCommand[] = []; @@ -357,6 +368,10 @@ export class KimiTUI { cancelInFlight: (() => void) | undefined; deferUserMessages = false; aborted = false; + /** Trigger of the most recent compaction.started; paired with its completed. */ + lastCompactionTrigger: CompactionStartedEvent['trigger'] | undefined; + /** Bumped on every completed auto compaction; queued /compact items snapshot it. */ + autoCompactionSerial = 0; private terminalFocusTrackingDispose: (() => void) | undefined; private terminalThemeTrackingDispose: (() => void) | undefined; private clipboardImageHintController: ClipboardImageHintController | undefined; @@ -388,6 +403,8 @@ export class KimiTUI { readonly tasksBrowserController: TasksBrowserController; readonly surveyController: SurveyController; readonly editorKeyboard: EditorKeyboardController; + readonly modelMigration: ModelMigrationController; + private editorReplacementOnDisplaced: (() => void) | undefined; /** Timer that auto-clears the one-shot "moved to background" footer hint. */ private detachHintClearTimer: ReturnType | undefined; @@ -419,8 +436,16 @@ export class KimiTUI { */ public exitForegroundTask: ((exitCode: number) => Promise) | undefined; - track(event: string, properties?: Parameters[1]): void { - this.harness.track(event, properties); + track( + event: string, + properties?: Parameters[1], + context?: { readonly sessionId?: string }, + ): void { + if (context === undefined) { + this.harness.track(event, properties); + return; + } + this.harness.trackWithContext(event, properties, { sessionId: context.sessionId }); } constructor(harness: KimiHarness, startupInput: KimiTUIStartupInput) { @@ -461,6 +486,9 @@ export class KimiTUI { this.startupNotice = startupInput.startupNotice; this.state = createTUIState(tuiOptions); this.state.footer.setExpandHintProvider(() => this.toolOutputExpandHint()); + this.state.transcriptContainer.setUnhandledClick((index) => + this.toggleClickedFoldBlock(index), + ); this.uninstallRainbowDance = installRainbowDance(() => { this.state.ui.requestRender(); }); @@ -481,9 +509,13 @@ export class KimiTUI { }, }), ); + this.surveySettingSubscription = this.harness.onConfigSectionChanged((change) => { + if (change.domain !== 'disableFeedbackSurvey') return; + this.setAppState({ disableFeedbackSurvey: change.value === true ? true : undefined }); + }); this.streamingUI = new StreamingUIController(this); this.authFlow = new AuthFlowController(this); - this.btwPanelController = new BtwPanelController(this); + this.btwPanelController = new BtwPanelController(this, this.imageStore, this.staging); this.sessionEventHandler = new SessionEventHandler(this); this.sessionReplay = new SessionReplayRenderer(this); this.tasksBrowserController = new TasksBrowserController(this); @@ -491,6 +523,7 @@ export class KimiTUI { accessToken: () => this.harness.auth.getCachedAccessToken(), telemetryDisabled: () => isTelemetryDisabledByEnv() || this.telemetryDisabled, }); + this.modelMigration = new ModelMigrationController(this); this.editorKeyboard = new EditorKeyboardController(this, this.imageStore); this.editorKeyboard.install(); this.buildLayout(); @@ -683,9 +716,14 @@ export class KimiTUI { const provider = new BannerProvider(this.state.appState.version); const displayState = await readBannerDisplayState(); const now = new Date(); + const audience = this.harness.auth.getCachedAccessToken().then( + (accessToken) => resolveBannerAudienceContext(accessToken), + (): BannerAudienceContext => ({ login: 'unknown' }), + ); const banner = await provider.load({ state: displayState, now, + audience, }); this.state.appState.banner = banner; if (banner === null) return; @@ -739,6 +777,7 @@ export class KimiTUI { this.state.editorContainer.addChild(this.state.editor); this.state.ui.setFocus(this.state.editor); this.applyRecommendedEffortInBackground(); + this.refreshModelSwitchConfirmConfigInBackground(); return shouldReplayHistory; } @@ -801,33 +840,75 @@ export class KimiTUI { }); } + private refreshModelSwitchConfirmConfigInBackground(): void { + void (async () => { + try { + await refreshModelSwitchConfirmConfig({ + accessToken: await this.harness.auth.getCachedAccessToken(), + }); + } catch { + // Best-effort warm-up: a failed token lookup or fetch just leaves the + // dialog gated off. + } + })(); + } + private async refreshProviderModelsInBackground(): Promise { try { const result = await this.authFlow.refreshProviderModels(); for (const c of result.changed) { if (c.added <= 0) continue; - this.showStatus(`${c.providerName} · +${String(c.added)} model${c.added > 1 ? 's' : ''}.`); + this.showStatus(`${c.provider_name} · +${String(c.added)} model${c.added > 1 ? 's' : ''}.`); } for (const f of result.failed) { this.showStatus(`Skipped refreshing ${f.provider}: ${f.reason}`, 'warning'); } + if (result.retired_default !== undefined) { + await this.modelMigration.retire(result.retired_default); + } } catch { // Best-effort: startup must not crash on background refresh failures. } } + private async migrateLegacySurveySetting(): Promise { + const legacyValue = this.state.appState.disableFeedbackSurvey; + try { + const outcome = await migrateLegacySurveySetting({ + legacyValue, + getConfig: () => this.harness.getConfig(), + setConfig: (patch) => this.harness.setConfig(patch), + dropLegacy: removeLegacySurveySetting, + warn: (message) => { + this.showStatus(message, 'warning'); + }, + }); + this.setAppState({ disableFeedbackSurvey: outcome.value }); + if (outcome.action === undefined) return; + this.track('survey_setting_migration', { + legacy: legacyValue, + configured: outcome.configured ?? 'absent', + action: outcome.action, + }); + } catch {} + } + private async finishStartup(shouldReplayHistory: boolean): Promise { if (this.startupNotice !== undefined) { this.showStatus(this.startupNotice); this.startupNotice = undefined; } void this.showTmuxKeyboardWarningIfNeeded(); + void this.migrateLegacySurveySetting(); // Config diagnostics (deprecated keys/env vars, invalid sections) in // warning yellow at boot; `run-prompt`/`run-v2-print` print them to // stderr for non-interactive runs. void this.showConfigWarningsIfAny(); if (this.state.startupState === 'picker') { void this.bootstrapFromPicker(); + void this.backgroundRefreshPromise?.then(() => { + this.modelMigration.request(); + }); return; } if (shouldReplayHistory) { @@ -835,6 +916,7 @@ export class KimiTUI { this.applyStartupPermissionAndPlanToAppState(); } const resumeState = this.session?.getResumeState(); + this.surveyController.seedFromResumedAgents(resumeState?.sessionMetadata.agents ?? {}); if (resumeState?.warning !== undefined) { this.showStatus(`Warning: ${resumeState.warning}`, 'warning'); } @@ -851,6 +933,9 @@ export class KimiTUI { } void this.refreshSkillCommands(this.session); void this.refreshPluginCommands(this.session); + void this.backgroundRefreshPromise?.then(() => { + this.modelMigration.request(); + }); } private async showSessionWarnings(session: Session): Promise { @@ -974,7 +1059,10 @@ export class KimiTUI { } if (session !== undefined) { - await this.setSession(session); + await this.setSession( + session, + shouldReplayHistory ? session.getResumeState()?.agents[MAIN_AGENT_ID]?.userTurnCount : 0, + ); await this.syncRuntimeState(session); } this.applyStartupPermissionAndPlanToAppState(); @@ -987,6 +1075,15 @@ export class KimiTUI { this.isShuttingDown = true; this.unregisterSignalHandlers(); this.aborted = true; + // A Ctrl+C during shutdown means "don't wait for slow hooks": skip the + // remaining graceful close and get out immediately. Captured at the UI + // input-listener level so it works no matter which component holds focus + // (a dialog may have replaced the editor). + const removeForceExitListener = this.state.ui.addInputListener((data) => { + if (!matchesKey(data, Key.ctrl('c'))) return undefined; + this.forceExitDuringShutdown(); + return { consume: true }; + }); // Give the startup provider-model refresh a brief chance to finish before // the harness closes (and the process exits): its config writes are each // atomic, so draining can only ever leave a complete file behind. Bounded @@ -1009,12 +1106,19 @@ export class KimiTUI { this.disposeTranscriptChildren(); this.editorKeyboard.dispose(); this.surveyController.dispose(); + this.surveySettingSubscription?.(); + this.surveySettingSubscription = undefined; this.state.footer.dispose(); for (const dispose of this.reverseRpcDisposers) { dispose(); } this.reverseRpcDisposers.length = 0; this.disposeTerminalTracking(); + // closeSession runs SessionEnd hooks, which can take seconds (bounded by + // the hook timeout) — keep the last frame from looking like a freeze by + // saying the shutdown is in progress. + this.state.footer.setTransientHint(SHUTTING_DOWN_HINT); + this.state.ui.requestRender(); // Restore the terminal even if closing the session / harness throws — a // SIGTERM during a network or MCP shutdown must not leave the user stuck in // raw mode with a hidden cursor. @@ -1026,6 +1130,7 @@ export class KimiTUI { await this.staging.drain(); await this.harness.close(); } finally { + removeForceExitListener(); this.sessionEventHandler.stopAllMcpServerStatusSpinners(); this.sessionEventHandler.clearStepRetryAttemptTimer(); this.uninstallRainbowDance(); @@ -1045,6 +1150,23 @@ export class KimiTUI { } } + // Ctrl+C while shutdown hooks run → skip the remaining graceful close. The + // terminal is still alive (unlike the SIGHUP path), so run the full UI + // teardown — alternate screen, mouse reporting, autowrap — and the CLI's + // stty restore via onExit, instead of the bare emergency sequences. + private forceExitDuringShutdown(): void { + try { + this.stopUiForExit(); + } catch { + restoreTerminalModes(); + } + if (this.onExit) { + void this.onExit(130); + } else { + process.exit(130); + } + } + // SIGHUP / dead-terminal EIO → emergencyTerminalExit (no cleanup, avoids // EIO write-loop that can pin a CPU core). SIGTERM → normal stop(). private registerSignalHandlers(): void { @@ -1461,101 +1583,201 @@ export class KimiTUI { this.showError(LLM_NOT_SET_MESSAGE); return; } - let extraction: ReturnType; + const originatingSession = this.session; + const mediaGeneration = this.imageStore.generation; + let extraction: ExtractionResult; + if (preExtracted === undefined) { + const ingestionWait = pendingMediaIngestions( + text, + this.imageStore, + MEDIA_INGESTION_SUBMIT_WAIT_MS, + ); + if (ingestionWait !== undefined) await ingestionWait; + if ( + (originatingSession !== undefined && this.session !== originatingSession) || + this.imageStore.generation !== mediaGeneration + ) { + this.showError('Session changed while preparing media attachment; skill prompt not sent.'); + return; + } + } try { extraction = preExtracted ?? extractMediaAttachments(text, this.imageStore); + if ( + preExtracted?.mediaGeneration !== undefined && + preExtracted.mediaGeneration !== this.imageStore.generation + ) { + extraction = { ...preExtracted, imageAttachmentIds: [], videoAttachmentIds: [] }; + } } catch (error) { this.showError(`Failed to prepare media attachment: ${formatErrorMessage(error)}`); return; } - if (!this.validateMediaCapabilities(extraction)) return; + if (!this.validateMediaCapabilities(extraction)) { + this.staging.releaseMedia([ + ...extraction.imageAttachmentIds, ...extraction.videoAttachmentIds, + ], []); + return; + } if (this.cacheHint.maybeInterceptOnSubmit(text, extraction, activations)) return; let session = this.session; if (session === undefined) { - // Dispatch only routes here on the v2 engine, so the session is created - // lazily on first use exactly like a normal prompt. session = await this.ensureSession(); - if (session === undefined) return; + if (session === undefined) { + this.staging.releaseMedia([ + ...extraction.imageAttachmentIds, ...extraction.videoAttachmentIds, + ], []); + return; + } } if ( this.deferUserMessages || - this.state.appState.goal?.status === 'active' || + this.steeringQueuedMessages.size > 0 || this.state.appState.streamingPhase !== 'idle' || this.state.appState.isCompacting ) { - this.enqueueMessage( - text, - extraction.hasMedia - ? { - hasMedia: true, - parts: extraction.parts, - imageAttachmentIds: extraction.imageAttachmentIds, - videoAttachmentIds: extraction.videoAttachmentIds, - inlineSkillActivations: activations, - } - : { inlineSkillActivations: activations }, - ); + this.enqueueMessage(text, { + parts: extraction.hasMedia ? extraction.parts : undefined, + imageAttachmentIds: extraction.imageAttachmentIds, + videoAttachmentIds: extraction.videoAttachmentIds, + mediaSnapshots: extraction.mediaSnapshots, + inlineSkillActivations: activations, + }); this.updateQueueDisplay(); this.state.ui.requestRender(); return; } this.beginSessionRequest(); - void this.runInlineSkillActivations(session, text, activations, extraction).catch( - (error: unknown) => { - this.failSessionRequest(`Skill activation failed: ${formatErrorMessage(error)}`); - }, - ); + this.runInlineSkillActivations(session, text, activations, extraction); } - private async runInlineSkillActivations( + prepareSkillActivations( + activations: readonly InlineSkillActivation[], + mediaSnapshots?: readonly MediaAttachment[], + ): PreparedSkillActivations { + const prepared: PreparedSkillActivations = { + skills: [], + mediaAttachmentIds: [], + stagingPaths: [], + cachedVideos: [], + }; + try { + for (const activation of activations) { + if (activation.args === undefined) { + prepared.skills.push({ name: activation.skillName }); + continue; + } + const rewrite = rewriteMediaPlaceholders( + activation.args, this.imageStore, 'plain', mediaSnapshots, + ); + this.imageStore.retainFileIds(rewrite.videoAttachmentIds); + prepared.skills.push({ name: activation.skillName, args: rewrite.text }); + prepared.mediaAttachmentIds.push( + ...new Set([...rewrite.imageAttachmentIds, ...rewrite.videoAttachmentIds]), + ); + prepared.stagingPaths.push(...rewrite.stagingPaths); + prepared.cachedVideos.push(...rewrite.cachedVideos); + } + return prepared; + } catch (error) { + this.releaseSkillArgumentMedia(prepared); + throw error; + } + } + + releaseSkillArgumentMedia(prepared: PreparedSkillActivations): void { + for (const id of prepared.mediaAttachmentIds) this.staging.releaseRecalled([id]); + this.staging.releaseMedia([], prepared.stagingPaths); + } + + private runInlineSkillActivations( session: Session, text: string, activations: readonly InlineSkillActivation[], extraction: ReturnType, - ): Promise { - const knownEntryIds = new Set(this.state.transcriptEntries.map((entry) => entry.id)); - await session.promptWithSkills( - extraction.hasMedia + occupiedRetry = false, + ): void { + let prepared: PreparedSkillActivations | undefined; + let input: string | readonly PromptPart[]; + try { + prepared = this.prepareSkillActivations(activations, extraction.mediaSnapshots); + input = extraction.hasMedia ? resolveOriginalCaptions( - extraction.parts, + omitExpiredVideoFileRefs(extraction.parts, prepared.cachedVideos), extraction.imageAttachmentIds, this.imageStore, originalsDirForSession(session), ) - : text, - activations.map((activation) => ({ name: activation.skillName, args: activation.args })), - ); - // The engine bundles the activations into the prompt's own message, and - // the `skill.activated` events land synchronously during the call — so - // the cards appended for this submission are the skill_activation entries - // with fresh ids (the window trim may replace the entries array mid-call, - // so membership is decided by id, not by index into a captured array). - // Appending the user entry afterwards keeps the live transcript in the - // same order as a resumed replay (skill cards first, prompt last). - // Marking only happens once the submission was accepted: a rejected - // bundle leaves no cards and must not leave a local undo anchor the - // engine never recorded. - for (const entry of this.state.transcriptEntries) { - if (entry.kind === 'skill_activation' && !knownEntryIds.has(entry.id)) { - entry.bundledWithPrompt = true; - } + : text; + } catch (error) { + if (prepared !== undefined) this.releaseSkillArgumentMedia(prepared); + this.staging.releaseMedia([ + ...extraction.imageAttachmentIds, ...extraction.videoAttachmentIds, + ], []); + this.failSessionRequest(`Failed to prepare media attachment: ${formatErrorMessage(error)}`); + return; } - this.appendTranscriptEntry({ + const stagingLease = this.staging.create( + [ + ...new Set([...extraction.imageAttachmentIds, ...extraction.videoAttachmentIds]), + ...prepared.mediaAttachmentIds, + ], + prepared.stagingPaths, + 'user', + ); + const entry: TranscriptEntry = { id: nextTranscriptId(), kind: 'user', turnId: undefined, renderMode: 'plain', content: text, + skillNames: activations.map((activation) => activation.skillName), imageAttachmentIds: extraction.imageAttachmentIds.length > 0 ? extraction.imageAttachmentIds : undefined, + }; + this.appendTranscriptEntry(entry); + const request = this.trackPendingEntries([entry], session.promptWithSkills(input, prepared.skills)); + this.staging.trackDispatch(stagingLease, request, (error) => { + const recovered = this.handlePromptConflict({ + session, + error, + entries: [entry], + retried: occupiedRetry, + retry: () => this.runInlineSkillActivations(session, text, activations, extraction, true), + restore: () => { + this.staging.releaseRecalled([ + ...extraction.imageAttachmentIds, + ...extraction.videoAttachmentIds, + ]); + this.restoreInputText(text); + }, + }); + if (recovered) { + this.staging.defer(stagingLease); + return; + } + if (this.session === session && stagingLease !== undefined && stagingLease.turnId === undefined) { + this.staging.defer(stagingLease); + for (const id of stagingLease.mediaAttachmentIds) this.staging.releaseRecalled([id]); + this.staging.releaseMedia([], stagingLease.paths); + } + this.handleSkillActivationError(session, error); }); } + private handleSkillActivationError(session: Session, error: unknown): void { + if (this.session !== session) return; + const message = `Skill activation failed: ${formatErrorMessage(error)}`; + if (this.streamingUI.getTurnContext().turnId === undefined) this.failSessionRequest(message); + else this.showError(message); + } + validateMediaCapabilities(extraction: { hasMedia: boolean; imageAttachmentIds: readonly number[]; videoAttachmentIds: readonly number[]; imageSnapshots?: readonly unknown[]; + mediaSnapshots?: readonly MediaAttachment[]; }): boolean { if (!extraction.hasMedia) return true; if ( @@ -1566,7 +1788,8 @@ export class KimiTUI { return false; } if ( - extraction.videoAttachmentIds.length > 0 && + (extraction.videoAttachmentIds.length > 0 || + extraction.mediaSnapshots?.some((snapshot) => snapshot.kind === 'video')) && !this.supportsCurrentModelCapability('video_in') ) { this.showError('Current model does not support video input.'); @@ -1612,6 +1835,7 @@ export class KimiTUI { recallLastQueued(): QueuedMessage | undefined { if (this.state.queuedMessages.length === 0) return undefined; const last = this.state.queuedMessages.at(-1)!; + if (this.steeringQueuedMessages.has(last)) return undefined; this.state.queuedMessages = this.state.queuedMessages.slice(0, -1); // A recall restores the draft into the editor — it is not a discard: // consumes the retains only, keeping the staged daemon uploads alive @@ -1648,7 +1872,18 @@ export class KimiTUI { }, mode?: 'prompt' | 'bash', ): void { - this.state.queuedMessages.push({ + this.state.queuedMessages.push(this.toQueuedMessage(text, options, mode)); + this.track('input_queue'); + } + + private toQueuedMessage( + text: string, + options?: SendMessageOptions & { + readonly inlineSkillActivations?: readonly InlineSkillActivation[]; + }, + mode?: 'prompt' | 'bash', + ): QueuedMessage { + return { text, agentId: this.harness.interactiveAgentId, parts: options?.parts, @@ -1661,9 +1896,24 @@ export class KimiTUI { ? options.videoAttachmentIds : undefined, mode, + mediaSnapshots: options?.mediaSnapshots, inlineSkillActivations: options?.inlineSkillActivations, + }; + } + + enqueueCompactCommand(args: string): boolean { + if (this.state.queuedMessages.some((message) => message.mode === 'compact')) return false; + const instruction = args.trim() || undefined; + this.state.queuedMessages.push({ + text: '/compact' + (instruction !== undefined ? ` ${instruction}` : ''), + agentId: this.harness.interactiveAgentId, + mode: 'compact', + compactInstruction: instruction, + queuedAfterAutoSerial: this.autoCompactionSerial, }); - this.track('input_queue'); + this.updateQueueDisplay(); + this.state.ui.requestRender(); + return true; } beginSessionRequest(): void { @@ -1691,17 +1941,64 @@ export class KimiTUI { } sendQueuedMessage(session: Session, item: QueuedMessage): void { + if (item.mode === 'compact') { + if (item.queuedAfterAutoSerial !== this.autoCompactionSerial) { + this.showNotice('Skipped queued /compact — context was already auto-compacted.'); + this.drainOneQueuedMessage(); + return; + } + // Wait out a competing turn/compaction before refiring: draining while + // busy would burn the retry budget on the same race. A session switch + // (/new) clears the queue — do not resurrect the item into it. + const retryWhenIdle = (): void => { + setTimeout(() => { + if (this.session !== session) return; + if ( + this.state.appState.streamingPhase !== 'idle' || + this.state.appState.isCompacting || + this.deferUserMessages || + this.steeringQueuedMessages.size > 0 + ) { + retryWhenIdle(); + return; + } + this.drainOneQueuedMessage(); + }, 1000); + }; + // The fire races other clients holding the engine queue + // (COMPACTION_UNABLE): requeue at the head with a bounded retry. + const retryOrDrop = (error: unknown): void => { + if (this.session !== session) return; + const retries = (item.compactRetries ?? 0) + 1; + if (retries >= 3) { + this.showError(`Failed to run queued /compact: ${formatErrorMessage(error)}`); + this.drainOneQueuedMessage(); + return; + } + this.state.queuedMessages.unshift({ ...item, compactRetries: retries }); + this.updateQueueDisplay(); + this.state.ui.requestRender(); + retryWhenIdle(); + }; + // A compaction from another client may already be running by the time + // the fire lands: the engine's begin() then silently no-ops (the SDK + // returns void, so this is undetectable after the fact), dropping the + // item. Requeue without firing — no attempt was made, no retry spent. + if (this.state.appState.isCompacting) { + this.state.queuedMessages.unshift(item); + this.updateQueueDisplay(); + this.state.ui.requestRender(); + retryWhenIdle(); + return; + } + void session.compact({ instruction: item.compactInstruction }).catch(retryOrDrop); + return; + } if (item.mode === 'bash') { this.staging.releaseQueued([item]); void this.runShellCommandFromInput(item.text); return; } - if (item.mode === 'skill' && item.skillName !== undefined) { - // sendSkillActivation re-checks the busy state, so a premature drain - // re-queues at the tail instead of racing the running turn. - this.sendSkillActivation(session, item.skillName, item.skillArgs ?? ''); - return; - } if (item.inlineSkillActivations !== undefined && item.inlineSkillActivations.length > 0) { // Media was extracted and validated at enqueue time; reuse the queued // parts rather than re-extracting from a possibly-cleared image store. @@ -1716,21 +2013,16 @@ export class KimiTUI { this.imageStore, ), ]; + const extraction: ExtractionResult = { + parts: refreshed, + hasMedia: refreshed.length > 0, + imageAttachmentIds: item.imageAttachmentIds !== undefined ? [...item.imageAttachmentIds] : [], + videoAttachmentIds: item.videoAttachmentIds !== undefined ? [...item.videoAttachmentIds] : [], + imageSnapshots: [], + mediaSnapshots: item.mediaSnapshots, + }; this.beginSessionRequest(); - void this.runInlineSkillActivations( - session, - item.text, - item.inlineSkillActivations, - { - parts: refreshed, - hasMedia: refreshed.length > 0, - imageAttachmentIds: item.imageAttachmentIds !== undefined ? [...item.imageAttachmentIds] : [], - videoAttachmentIds: item.videoAttachmentIds !== undefined ? [...item.videoAttachmentIds] : [], - imageSnapshots: [], - }, - ).catch((error: unknown) => { - this.failSessionRequest(`Skill activation failed: ${formatErrorMessage(error)}`); - }); + this.runInlineSkillActivations(session, item.text, item.inlineSkillActivations, extraction); return; } const parts = @@ -1746,18 +2038,48 @@ export class KimiTUI { parts, imageAttachmentIds: item.imageAttachmentIds, videoAttachmentIds: item.videoAttachmentIds, + occupiedRetry: item.occupiedRetry, }); }); } handleTurnStarted(event: TurnStartedEvent): void { this.staging.handleTurnStarted(event); - this.surveyController.notifyTurnStarted(isUserSubmittedTurnOrigin(event.origin)); + this.surveyController.notifyTurnStarted(event.origin); } handleTurnEnded(event: TurnEndedEvent): void { this.staging.handleTurnEnded(event); - this.surveyController.notifyTurnEnded(); + this.surveyController.notifyTurnEnded(event.traceId); + this.state.footer.refreshGitStatus(); + if (event.reason === 'completed') void this.maybeAutoGenerateSessionTitle(); + } + + private async maybeAutoGenerateSessionTitle(): Promise { + const sessionId = this.state.appState.sessionId; + if (sessionId.length === 0) return; + if (this.state.appState.autoSessionTitle === false) return; + const record = this.autoTitleAttempts.get(sessionId); + if (record !== undefined && (record.done || record.attempts >= MAX_AUTO_TITLE_ATTEMPTS)) { + return; + } + try { + const config = await this.harness.getConfig(); + if (config.autoSessionTitle === false) return; + this.autoTitleAttempts.set(sessionId, { + attempts: (record?.attempts ?? 0) + 1, + done: false, + }); + const title = await this.harness.generateSessionTitle({ + id: sessionId, + source: 'first_turn', + }); + if (title !== undefined) { + this.autoTitleAttempts.set(sessionId, { attempts: 0, done: true }); + } + } catch { + /* title generation is best-effort; the session keeps its current title */ + } } releaseStagingMedia(mediaAttachmentIds: readonly number[]): void { @@ -1773,14 +2095,15 @@ export class KimiTUI { options?.imageAttachmentIds !== undefined && options.imageAttachmentIds.length > 0 ? options.imageAttachmentIds : undefined; - this.appendTranscriptEntry({ + const entry: TranscriptEntry = { id: nextTranscriptId(), kind: 'user', turnId: undefined, renderMode: 'plain', content: input, imageAttachmentIds, - }); + }; + this.appendTranscriptEntry(entry); // A goal-active steer is buffered into the running goal turn — no new // turn.started will fire for handleTurnStarted to claim the lease — so // bind it to that turn here. The turn context must be read BEFORE @@ -1828,6 +2151,18 @@ export class KimiTUI { !goalActive && stagingIds.length > 0 ? randomUUID() : undefined, ); const submissionId = stagingLease?.submissionId; + const resend = (): void => { + this.state.queuedMessages.unshift({ + ...this.toQueuedMessage(input, options), + occupiedRetry: true, + }); + this.updateQueueDisplay(); + this.drainQueueIfIdle(); + }; + const restoreInput = (): void => { + this.staging.releaseRecalled(stagingIds); + this.restoreInputText(input); + }; // While a goal is being pursued the engine holds its active turn across the // whole continuation loop, so a fresh prompt races the goal driver at every // continuation boundary and is rejected with `turn.agent_busy`, dropping @@ -1835,79 +2170,87 @@ export class KimiTUI { // turn, or launches a turn of its own if the loop just ended. if (goalActive) { if (runningTurnId !== undefined) this.staging.bindToTurn(stagingLease, runningTurnId); - this.staging.trackDispatch(stagingLease, session.steer(sdkInput), (error) => { - // Same reset as the prompt path: beginSessionRequest already moved the - // TUI to the waiting phase, and no turn events may follow a failed - // steer (e.g. the session is gone), which would leave the UI stuck - // queueing input behind a request that never completes. + const request = this.trackPendingEntries([entry], session.steer(sdkInput)); + this.staging.trackDispatch(stagingLease, request, (error) => { + const recovered = this.handlePromptConflict({ + session, + error, + entries: [entry], + retried: options?.occupiedRetry === true, + retry: resend, + restore: restoreInput, + }); + if (recovered) { + this.staging.defer(stagingLease); + return; + } this.failSessionRequest(`Failed to steer: ${formatErrorMessage(error)}`); }); return; } - this.staging.trackDispatch(stagingLease, session.prompt(sdkInput, { promptId: submissionId }), (error) => { + const request = this.trackPendingEntries( + [entry], + session.prompt(sdkInput, { promptId: submissionId }), + ); + this.staging.trackDispatch(stagingLease, request, (error) => { + const recovered = this.handlePromptConflict({ + session, + error, + entries: [entry], + retried: options?.occupiedRetry === true, + retry: resend, + restore: restoreInput, + }); + if (recovered) { + this.staging.defer(stagingLease); + return; + } this.failSessionRequest(`Failed to send: ${formatErrorMessage(error)}`); }); } - sendSkillActivation(session: Session, skillName: string, skillArgs: string): void { - // Args are a plain-text channel, so pasted media can't ride along as - // inline parts. Skill args are XML-escaped on render (renderSkillAttributes - // + expandSkillParameters), so rewrite placeholders into escape-proof - // plain-text file references the model can open with ReadMediaFile. - let rewrite: ReturnType; - try { - rewrite = rewriteMediaPlaceholders(skillArgs, this.imageStore, 'plain'); - } catch (error) { - // Cache copy failed (unwritable cache dir, vanished video source…); - // nothing has been dispatched yet, so just report and keep the input. - this.showError(`Failed to prepare media attachment: ${formatErrorMessage(error)}`); - return; - } - if (!this.validateMediaCapabilities(rewrite)) { - this.staging.releaseMedia(rewrite.imageAttachmentIds, rewrite.stagingPaths); - return; - } - // Compacting (or deferred input): queue behind it — visible and recallable. - // Slash-skill items steer like any queued input on Ctrl-S (the activation - // fires into the running turn instead of the literal text) — see - // editor-keyboard.ts. - // A running turn queues the activation too: every skill behaves like - // plain input — queued by default, steered on demand — because the engine - // steers activations into a running turn exactly like a steered user - // message (v2 `prompt.inject`, v1 `SkillManager.recordActivation`). - // The rewritten args reference the staging cache copies by plain path, - // never the daemon uploads, so queueing takes recall semantics: the - // retains are consumed and the copies retire to session lifetime — they - // must stay readable until the item drains. - const turnRunning = this.state.appState.streamingPhase !== 'idle'; - if (this.deferUserMessages || this.state.appState.isCompacting || turnRunning) { - const args = rewrite.text.trim(); - this.state.queuedMessages.push({ - text: `/${skillName}${args.length > 0 ? ` ${args}` : ''}`, - agentId: this.harness.interactiveAgentId, - mode: 'skill', - skillName, - skillArgs: rewrite.text, - }); - this.staging.releaseRecalled([...rewrite.imageAttachmentIds], rewrite.stagingPaths); - this.track('input_queue'); - this.updateQueueDisplay(); - this.state.ui.requestRender(); - return; - } - const stagingLease = this.staging.create( - [...new Set(rewrite.imageAttachmentIds)], - rewrite.stagingPaths, - 'skill_activation', - ); - this.beginSessionRequest(); - this.staging.trackDispatch( - stagingLease, - session.activateSkill(skillName, rewrite.text), - (error) => { - this.failSessionRequest(`Skill "${skillName}" failed: ${formatErrorMessage(error)}`); - }, + private trackPendingEntries( + entries: readonly TranscriptEntry[], + request: Promise, + ): Promise { + for (const entry of entries) this.pendingPromptEntries.add(entry); + const settle = (): void => { + for (const entry of entries) this.pendingPromptEntries.delete(entry); + }; + void request.then(settle, settle); + return request; + } + + private handlePromptConflict(args: { + session: Session; + error: unknown; + entries?: readonly TranscriptEntry[]; + retried: boolean; + retry: () => void; + restore: () => void; + }): boolean { + const { session, error, entries, retried, retry, restore } = args; + if (this.session?.id !== session.id || !isSessionOccupiedError(error)) return false; + if (entries !== undefined) this.removeTranscriptEntries(entries); + this.setAppState({ streamingPhase: 'idle' }); + this.resetLivePane(); + showSessionOccupancyPrompt(this, { session, error, retried, retry, restore }); + return true; + } + + // The SDK reloads a stale session and retries the rejected call once this + // resolves; the request stays in flight meanwhile, so input submitted during + // the reload queues against the reloaded session. + private async refreshAfterStaleReload(session: Session): Promise { + if (this.session !== session) return; + const pending = this.state.transcriptEntries.filter((entry) => + this.pendingPromptEntries.has(entry), ); + await this.reloadCurrentSessionView(session, 'Loaded updates from another client.', { + replayHistory: true, + }); + for (const entry of pending) this.appendTranscriptEntry(entry); + this.track('session_stale_reload'); } activatePluginCommand( @@ -1915,10 +2258,8 @@ export class KimiTUI { pluginId: string, commandName: string, args: string, + occupiedRetry = false, ): void { - // Plugin command args are expanded verbatim (no XML escaping), so the - // standard tag convention works — see - // sendSkillActivation for the escaped-channel variant. let rewrite: ReturnType; try { rewrite = rewriteMediaPlaceholders(args, this.imageStore, 'tag'); @@ -1940,6 +2281,20 @@ export class KimiTUI { stagingLease, session.activatePluginCommand(pluginId, commandName, rewrite.text), (error) => { + const recovered = this.handlePromptConflict({ + session, + error, + retried: occupiedRetry, + retry: () => this.activatePluginCommand(session, pluginId, commandName, args, true), + restore: () => { + this.staging.releaseRecalled(rewrite.imageAttachmentIds); + this.restoreInputText(`/${pluginId}:${commandName}${args.length > 0 ? ` ${args}` : ''}`); + }, + }); + if (recovered) { + this.staging.defer(stagingLease); + return; + } this.failSessionRequest( `Command "${pluginId}:${commandName}" failed: ${formatErrorMessage(error)}`, ); @@ -1948,57 +2303,28 @@ export class KimiTUI { } private sendMessage(session: Session, input: string, options?: SendMessageOptions): void { - const phase = this.state.appState.streamingPhase; - // Tower mode keeps the main agent as a long-lived coordinator: while its - // turn is live, new input steers into that turn instead of queueing - // behind it, so consecutive /tower objectives are accepted immediately - // rather than serialized one turn at a time. A foreground shell command - // ('shell') has no turn to steer into and keeps queue semantics, as do - // input deferral and compaction. - const steerIntoCoordinator = - this.state.appState.towerMode && - phase !== 'idle' && - phase !== 'shell' && - !this.deferUserMessages && - !this.state.appState.isCompacting; // Submission order must survive a mid-turn compaction: objectives queued // while compacting stay queued when the turn outlives the compaction, so // steering this input ahead of them would reorder the conversation. // Prompt-only backlog rides along in the same steer batch, ahead of the // new input; a non-steerable backlog (bash, slash-skill, inline-skill // bundle) cannot, and then this input queues behind it instead. - const backlog = this.state.queuedMessages; - const backlogSteerable = backlog.every( - (m) => m.inlineSkillActivations === undefined && m.mode !== 'bash' && m.mode !== 'skill', - ); - if (steerIntoCoordinator && backlogSteerable) { + if ( + this.canSteerQueueIntoRunningTurn() && + this.state.queuedMessages.every(isSteerableQueuedMessage) + ) { // Same lease hand-off as the queue path below: the pre-dispatch lease - // defers to the raw ids on the steer item, which re-leases inside + // defers to the raw ids on the queue item, which re-leases inside // steerMessage and binds to the running turn. this.staging.defer(options?.lease); - const items: SteerInputItem[] = [ - ...backlog.map((m) => ({ - text: m.text, - parts: m.parts, - imageAttachmentIds: m.imageAttachmentIds, - videoAttachmentIds: m.videoAttachmentIds, - })), - { - text: input, - parts: options?.parts, - imageAttachmentIds: options?.imageAttachmentIds, - videoAttachmentIds: options?.videoAttachmentIds, - }, - ]; - if (backlog.length > 0) { - this.state.queuedMessages = []; - this.updateQueueDisplay(); - } - this.steerMessage(session, items); + this.state.queuedMessages.push(this.toQueuedMessage(input, options)); + this.updateQueueDisplay(); + this.steerQueuedMessagesIntoRunningTurn(); return; } if ( this.deferUserMessages || + this.steeringQueuedMessages.size > 0 || this.state.appState.streamingPhase !== 'idle' || this.state.appState.isCompacting ) { @@ -2011,69 +2337,264 @@ export class KimiTUI { this.sendMessageInternal(session, input, options); } - steerMessage(session: Session, input: readonly SteerInputItem[]): void { - if (this.deferUserMessages || this.state.appState.isCompacting) { - for (const item of input) { - this.enqueueMessage(item.text, item); - } - return; - } - if (this.state.appState.streamingPhase === 'idle') { - for (const item of input) { - this.sendMessageInternal(session, item.text, item); - } - return; - } + // Tower mode keeps the main agent as a long-lived coordinator: while its + // turn is live, input steers into that turn instead of queueing behind it, + // so consecutive /tower objectives are accepted immediately rather than + // serialized one turn at a time. A running WaitFor steers the same way: the + // steer ends the wait at once and the model reads the new input, instead of + // the input queueing until the wait times out. A foreground shell command + // ('shell') has no turn to steer into and keeps queue semantics, as do + // input deferral and compaction. + private canSteerQueueIntoRunningTurn(): boolean { + const phase = this.state.appState.streamingPhase; + return ( + (this.state.appState.towerMode || this.streamingUI.isWaitForRunning()) && + phase !== 'idle' && + phase !== 'shell' && + !this.deferUserMessages && + !this.state.appState.isCompacting + ); + } - for (const item of input) { - this.appendTranscriptEntry({ - id: nextTranscriptId(), - kind: 'user', - turnId: this.streamingUI.getTurnContext().turnId, - renderMode: 'plain', - content: item.text, - imageAttachmentIds: - item.imageAttachmentIds !== undefined && item.imageAttachmentIds.length > 0 - ? item.imageAttachmentIds - : undefined, + steerQueuedMessagesIntoRunningTurn(manual = false): void { + const session = this.session; + if (session === undefined || this.steeringQueuedMessages.size > 0) return; + if (manual ? !this.canManuallySteer() : !this.canSteerQueueIntoRunningTurn()) return; + // A queued /compact is a FIFO barrier for steering, manual or automatic: + // messages behind it must wait for the compaction, not jump into the + // pre-compaction context. + const firstCompact = this.state.queuedMessages.findIndex((message) => message.mode === 'compact'); + const beforeBarrier = this.state.queuedMessages.slice( + 0, + firstCompact === -1 ? this.state.queuedMessages.length : firstCompact, + ); + const batch = manual + ? beforeBarrier.filter((message) => message.mode !== 'bash') + : beforeBarrier; + if (batch.length === 0 || (!manual && !batch.every(isSteerableQueuedMessage))) return; + const pending = [...batch]; + const sendNext = (): void => { + if (this.deferUserMessages || this.state.appState.isCompacting) return; + let first = pending.shift(); + while (first !== undefined && !this.state.queuedMessages.includes(first)) first = pending.shift(); + if (first === undefined) { + this.updateQueueDisplay(); + if (!manual && this.canSteerQueueIntoRunningTurn()) { + this.steerQueuedMessagesIntoRunningTurn(); + } else { + this.drainQueueIfIdle(); + } + return; + } + const group = [first]; + if (first.inlineSkillActivations === undefined) { + while (pending[0] !== undefined && pending[0].inlineSkillActivations === undefined) { + const next = pending.shift()!; + if (this.state.queuedMessages.includes(next)) group.push(next); + } + } + for (const message of group) this.steeringQueuedMessages.add(message); + this.updateQueueDisplay(); + const items = group.map((message) => { + const item = toSteerInputItem(message); + if (message.parts === undefined) return item; + return { + ...item, + parts: refreshExpiringImageFileRefs( + message.parts, + message.imageAttachmentIds ?? [], + this.imageStore, + ), + }; }); - } + this.steerMessage(session, items, (steered) => { + for (const message of group) this.steeringQueuedMessages.delete(message); + if (this.session !== session) return; + if (steered || manual) { + const done = new Set(group); + this.state.queuedMessages = this.state.queuedMessages.filter((message) => !done.has(message)); + } + if (!steered) { + this.staging.releaseQueued(group.filter((message) => !this.state.queuedMessages.includes(message))); + } + this.updateQueueDisplay(); + if (steered || manual) sendNext(); + else this.drainQueueIfIdle(); + }, manual); + }; + sendNext(); + } - // Dedupe per item, not across the batch: each queued message retained a - // shared medium once, so the batch's id multiplicity is the retain count. + canManuallySteer(): boolean { + const phase = this.state.appState.streamingPhase; + return ( + !this.deferUserMessages && + !this.state.appState.isCompacting && + phase !== 'idle' && + phase !== 'shell' && + this.steeringQueuedMessages.size === 0 + ); + } + + isSteeringQueuedMessages(): boolean { + return this.steeringQueuedMessages.size > 0; + } + + private drainQueueIfIdle(): void { + if ( + this.state.appState.streamingPhase !== 'idle' || + this.deferUserMessages || + this.state.appState.isCompacting || + this.state.queuedMessageDispatchPending + ) { + return; + } + this.drainOneQueuedMessage(); + } + + steerMessage( + session: Session, + input: readonly SteerInputItem[], + onSettled?: (steered: boolean) => void, + manual = false, + occupiedRetry = false, + ): void { + if (this.deferUserMessages || this.state.appState.isCompacting) { + if (onSettled !== undefined) { + onSettled(false); + } else { + for (const item of input) this.enqueueMessage(item.text, item); + } + return; + } + const activations = input.flatMap((item) => item.inlineSkillActivations ?? []); + let prepared: PreparedSkillActivations | undefined; + let resolvedInput: readonly SteerInputItem[]; + try { + if (activations.length > 0) { + prepared = this.prepareSkillActivations( + activations, + input.some((item) => item.mediaSnapshots !== undefined) + ? input.flatMap((item) => item.mediaSnapshots ?? []) + : undefined, + ); + } + resolvedInput = input.map((item) => + item.parts === undefined + ? item + : { + ...item, + parts: resolveOriginalCaptions( + prepared === undefined ? item.parts : omitExpiredVideoFileRefs(item.parts, prepared.cachedVideos), + item.imageAttachmentIds ?? [], + this.imageStore, + originalsDirForSession(session), + ), + }, + ); + } catch (error) { + if (prepared !== undefined) this.releaseSkillArgumentMedia(prepared); + this.showError(`Failed to prepare media attachment: ${formatErrorMessage(error)}`); + onSettled?.(false); + return; + } + const startsNewTurn = this.state.appState.streamingPhase === 'idle'; + if (startsNewTurn) this.beginSessionRequest(); + const steeredEntries: TranscriptEntry[] = input.map((item) => ({ + id: nextTranscriptId(), + kind: 'user', + turnId: this.streamingUI.getTurnContext().turnId, + renderMode: 'plain', + content: item.text, + skillNames: item.inlineSkillActivations?.map((activation) => activation.skillName), + imageAttachmentIds: + item.imageAttachmentIds !== undefined && item.imageAttachmentIds.length > 0 + ? item.imageAttachmentIds + : undefined, + })); + for (const entry of steeredEntries) this.appendTranscriptEntry(entry); const mediaAttachmentIds = input.flatMap((item) => [ ...new Set([...(item.imageAttachmentIds ?? []), ...(item.videoAttachmentIds ?? [])]), ]); - const stagingLease = this.staging.create(mediaAttachmentIds, [], 'user'); - const currentTurnId = this.streamingUI.getTurnContext().turnId; - if (currentTurnId !== undefined) this.staging.bindToTurn(stagingLease, currentTurnId); - // Same dispatch-time caption resolution as sendMessageInternal — the - // running turn's session owns the persisted originals. - const resolvedInput = input.map((item) => - item.parts === undefined - ? item - : { - ...item, - parts: resolveOriginalCaptions( - item.parts, - item.imageAttachmentIds ?? [], - this.imageStore, - originalsDirForSession(session), - ), - }, + const stagingLease = this.staging.create( + [...mediaAttachmentIds, ...(prepared?.mediaAttachmentIds ?? [])], + prepared?.stagingPaths ?? [], + 'user', ); - this.staging.trackDispatch(stagingLease, session.steer(combineSteerInput(resolvedInput)), (error) => { - this.showError(`Failed to steer: ${formatErrorMessage(error)}`); + const currentTurnId = this.streamingUI.getTurnContext().turnId; + // Skill steers may not merge into the current turn: an untracked active + // turn (e.g. a goal continuation) has no steerable prompt, so the engine + // queues the submission — and binding the lease here would release its + // media when that unrelated turn ends. Leave skill leases unclaimed so + // the submission's own turn.started claims them; a merged steer simply + // retires its media at session close instead. + if (currentTurnId !== undefined && prepared === undefined) this.staging.bindToTurn(stagingLease, currentTurnId); + const request = this.trackPendingEntries( + steeredEntries, + prepared === undefined + ? session.steer(combineSteerInput(resolvedInput)) + : session.promptWithSkills( + combineSteerInput(resolvedInput), + prepared.skills, + { steerIfActive: true }, + ), + ); + if (onSettled !== undefined) { + void request.then( + () => onSettled(true), + () => {}, + ); + } + this.staging.trackDispatch(stagingLease, request, (error) => { + if (this.session !== session) { + onSettled?.(false); + return; + } + const recovered = this.handlePromptConflict({ + session, + error, + entries: prepared === undefined && !manual ? steeredEntries : undefined, + retried: occupiedRetry, + retry: () => this.steerMessage(session, input, onSettled, manual, true), + restore: () => { + this.staging.releaseRecalled(mediaAttachmentIds); + this.restoreInputText(input.map((item) => item.text).join('\n')); + onSettled?.(false); + }, + }); + if (recovered) { + this.staging.defer(stagingLease); + return; + } + const message = `Failed to steer: ${formatErrorMessage(error)}`; + if (startsNewTurn && this.streamingUI.getTurnContext().turnId === undefined) { + this.failSessionRequest(message); + } else { + this.showError(message); + } + if (onSettled !== undefined) { + this.staging.defer(stagingLease); + if (prepared !== undefined) this.releaseSkillArgumentMedia(prepared); + if (prepared === undefined && !manual) this.removeTranscriptEntries(steeredEntries); + onSettled(false); + } }); } - steerSkillActivation(session: Session, skillName: string, skillArgs: string): void { - // Ctrl-S on a queued slash-skill item: the activation fires into the - // running turn (the engine steers it there, never the literal text). No - // beginSessionRequest — the live pane belongs to the running turn. - void session.activateSkill(skillName, skillArgs).catch((error: unknown) => { - this.showError(`Skill "${skillName}" failed: ${formatErrorMessage(error)}`); + private removeTranscriptEntries(entries: readonly TranscriptEntry[]): void { + const doomed = new Set(entries); + const componentsToRemove = this.state.transcriptContainer.children.filter((child) => { + const entry = getTranscriptComponentEntry(child); + return entry !== undefined && doomed.has(entry); }); + for (const child of componentsToRemove) { + // pi-tui Container.removeChild (not a DOM node); `child.remove()` does not exist. + // oxlint-disable-next-line unicorn/prefer-dom-node-remove + this.state.transcriptContainer.removeChild(child); + if (hasDispose(child)) child.dispose(); + } + this.state.transcriptEntries = this.state.transcriptEntries.filter((e) => !doomed.has(e)); + this.state.ui.requestRender(); } // ========================================================================= @@ -2087,14 +2608,12 @@ export class KimiTUI { clearQueuedMessages(): void { const queued = this.state.queuedMessages; this.state.queuedMessages = []; - this.staging.releaseQueued(queued); + this.staging.releaseQueued(queued.filter((message) => !this.steeringQueuedMessages.has(message))); } shiftQueuedMessage(): QueuedMessage | undefined { - if (this.state.queuedMessages.length === 0) return undefined; - const [first, ...rest] = this.state.queuedMessages; - this.state.queuedMessages = rest; - return first; + if (this.steeringQueuedMessages.size > 0) return undefined; + return this.state.queuedMessages.shift(); } pushTranscriptEntry(entry: TranscriptEntry): void { @@ -2103,6 +2622,7 @@ export class KimiTUI { setExternalEditorRunning(running: boolean): void { this.state.externalEditorRunning = running; + if (!running) this.modelMigration.retry(); } setTasksBrowser(value: TUIState['tasksBrowser']): void { @@ -2159,6 +2679,7 @@ export class KimiTUI { this.sessionEventHandler.retryQueuedGoalPromotion(); } if (additionalDirsChanged) this.setupAutocomplete(); + this.modelMigration.retry(); this.state.ui.requestRender(); } @@ -2203,21 +2724,10 @@ export class KimiTUI { async hydrateLazyConfigDefaults(): Promise { const { startup } = this.options; const config = await this.harness.getConfig({ reload: true }); - const patch: Partial = {}; - const startupModel = startup.model ?? config.defaultModel; - if (startupModel !== undefined) { - patch.model = startupModel; - const selected = config.models?.[startupModel]; - if (selected?.maxContextSize !== undefined) { - patch.maxContextTokens = selected.maxContextSize; - } - } else { - // The default disappeared from config (edited externally): clear the - // previously hydrated value instead of passing a stale explicit model - // to the first lazy-created session. - patch.model = ''; - patch.maxContextTokens = 0; - } + const patch: Partial = lazyModelSelection( + config, + startup.model ?? config.defaultModel, + ); // CLI --auto/--yolo/--plan win over config defaults; the flags are // re-applied by applyStartupPermissionAndPlanToAppState at startup. if (!startup.auto && !startup.yolo) { @@ -2232,20 +2742,6 @@ export class KimiTUI { if (!startup.plan) { patch.planMode = config.defaultPlanMode === true; } - const effort = thinkingEffortFromConfig(config.thinking); - if (effort !== undefined) { - patch.thinkingEffort = effort; - } else if (startupModel !== undefined) { - // No concrete effort configured: mirror the engine, which resolves the - // model's default effort at createSession time. - const raw = config.models?.[startupModel]; - if (raw !== undefined) { - const providerType = config.providers?.[raw.provider]?.type; - patch.thinkingEffort = defaultThinkingEffortFor( - effectiveModelAlias(raw, providerType ?? raw.protocol), - ); - } - } if (startup.agentProfile !== undefined || startup.agentFiles !== undefined) { patch.agentProfile = startup.agentProfile; patch.agentFiles = startup.agentFiles?.length ? [...startup.agentFiles] : undefined; @@ -2326,9 +2822,15 @@ export class KimiTUI { return this.ensureSessionPromise; } - /** Await the in-flight lazy session creation, if any (v2); no-op otherwise. */ - async waitForLazyCreation(): Promise { + /** Await in-flight session assembly — lazy creation or a `/new` replacement — if any; no-op otherwise. */ + async waitForSessionAssembly(): Promise { await this.ensureSessionPromise; + await this.newSessionPromise; + } + + /** True while a `/new` replacement is assembling; idle checks must treat it as busy. */ + get sessionReplacementInFlight(): boolean { + return this.newSessionPromise !== null; } private async lazyCreateSession(): Promise { @@ -2341,7 +2843,7 @@ export class KimiTUI { return undefined; } this.resetSessionRuntime(); - await this.setSession(session); + await this.setSession(session, 0); this.setAppState({ sessionId: session.id }); try { await this.activateRuntime(); @@ -2368,7 +2870,10 @@ export class KimiTUI { return session; } - async setSession(session: Session): Promise { + async setSession( + session: Session, + initialUserTurnCount = session.getResumeState()?.agents[MAIN_AGENT_ID]?.userTurnCount, + ): Promise { const previous = this.unloadCurrentSession('switching session'); await previous?.close(); // A session switch abandons the previous session's in-flight staging @@ -2381,6 +2886,7 @@ export class KimiTUI { // before the engine's intake can read it. if (previous !== undefined) this.staging.releaseAll(); this.session = session; + this.surveyController.seedUserTurnCount(initialUserTurnCount); this.harness.setTelemetryContext({ sessionId: session.id }); this.registerSessionHandlers(session); this.syncAdditionalDirs(session); @@ -2459,6 +2965,7 @@ export class KimiTUI { this.sessionEventUnsubscribe?.(); this.sessionEventUnsubscribe = undefined; this.clearReverseRpcPanels(); + previous?.setStaleReloadHandler(undefined); previous?.setApprovalHandler(undefined); previous?.setQuestionHandler(undefined); this.approvalController.cancelAll(reason); @@ -2478,6 +2985,7 @@ export class KimiTUI { } private registerSessionHandlers(session: Session): void { + session.setStaleReloadHandler(() => this.refreshAfterStaleReload(session)); session.setApprovalHandler( createApprovalRequestHandler(this.approvalController, (request, response) => { this.appendApprovalTranscriptEntry(request, response); @@ -2593,12 +3101,12 @@ export class KimiTUI { this.state.terminal.setTitle(label); } - resetSessionRuntime(): void { + resetSessionRuntime(options?: { readonly keepQueuedMessages?: boolean }): void { this.aborted = false; this.cacheHint.resetRuntime(); this.surveyController.reset(); this.streamingUI.discardPending(); - this.clearQueuedMessages(); + if (options?.keepQueuedMessages !== true) this.clearQueuedMessages(); this.state.swarmModeEntry = undefined; this.streamingUI.resetToolCallState(); this.streamingUI.resetToolUi(); @@ -2631,7 +3139,7 @@ export class KimiTUI { // A first-use lazy creation may still be in flight: wait it out so the // checks below see settled state — the pending prompt would otherwise // replace the resumed session when creation completes. - await this.waitForLazyCreation(); + await this.waitForSessionAssembly(); if (targetSessionId === this.state.appState.sessionId) { this.showStatus('Already on this session.'); return true; @@ -2682,6 +3190,7 @@ export class KimiTUI { this.sessionEventHandler.startSubscription(); } const resumeState = session.getResumeState(); + this.surveyController.seedFromResumedAgents(resumeState?.sessionMetadata.agents ?? {}); if (resumeState?.warning !== undefined) { this.showStatus(`Warning: ${resumeState.warning}`, 'warning'); } @@ -2690,7 +3199,11 @@ export class KimiTUI { void this.cacheHint.maybeShowOnResume(); } - async reloadCurrentSessionView(session: Session, statusMessage: string): Promise { + async reloadCurrentSessionView( + session: Session, + statusMessage: string, + options?: { readonly replayHistory?: boolean }, + ): Promise { this.sessionEventUnsubscribe?.(); this.sessionEventUnsubscribe = undefined; this.clearReverseRpcPanels(); @@ -2699,8 +3212,12 @@ export class KimiTUI { this.approvalController.cancelAll('reloading session'); this.questionController.cancelAll('reloading session'); - this.resetSessionRuntime(); + // The same session reloads in place, so its queued messages stay queued. + this.resetSessionRuntime({ keepQueuedMessages: true }); this.session = session; + this.surveyController.seedUserTurnCount( + session.getResumeState()?.agents[MAIN_AGENT_ID]?.userTurnCount, + ); this.harness.setTelemetryContext({ sessionId: session.id }); this.registerSessionHandlers(session); await this.syncRuntimeState(session); @@ -2711,8 +3228,17 @@ export class KimiTUI { } catch { /* keep the reloaded session usable even if dynamic skills fail */ } + if (options?.replayHistory === true) { + this.clearTranscriptView(); + try { + await this.sessionReplay.hydrateFromReplay(session); + } catch (error) { + this.showError(`Failed to replay session history: ${formatErrorMessage(error)}`); + } + } this.sessionEventHandler.startSubscription(); const resumeState = session.getResumeState(); + this.surveyController.seedFromResumedAgents(resumeState?.sessionMetadata.agents ?? {}); if (resumeState?.warning !== undefined) { this.showStatus(`Warning: ${resumeState.warning}`, 'warning'); } @@ -2725,7 +3251,19 @@ export class KimiTUI { this.showError('Cannot start a new session while history is replaying.'); return; } + // Track the replacement like `ensureSession` tracks lazy creation: a + // second `/new` shares the in-flight assembly instead of racing a second + // createSession, and idle checks (the model-migration prompt) treat the + // switch as busy until it has fully settled. + if (this.newSessionPromise !== null) return this.newSessionPromise; + this.newSessionPromise = this.assembleNewSession().finally(() => { + this.newSessionPromise = null; + this.modelMigration.retry(); + }); + return this.newSessionPromise; + } + private async assembleNewSession(): Promise { let session: Session; try { session = await this.createSessionFromCurrentState(); @@ -2736,7 +3274,7 @@ export class KimiTUI { } this.resetSessionRuntime(); - await this.setSession(session); + await this.setSession(session, 0); this.setAppState({ sessionId: session.id }); try { await this.activateRuntime(); @@ -2796,7 +3334,11 @@ export class KimiTUI { const images = entry.imageAttachmentIds ?.map((id) => this.imageStore.get(id)) .filter((a): a is ImageAttachment => a?.kind === 'image'); - return new UserMessageComponent(entry.content, images, entry.bullet); + const skillNames = new Set(entry.skillNames); + for (const [command, skillName] of this.skillCommandMap) { + if (entry.skillNames?.includes(skillName)) skillNames.add(command.replace(/^skill:/, '')); + } + return new UserMessageComponent(entry.content, images, entry.bullet, [...skillNames]); } case 'skill_activation': return new SkillActivationComponent( @@ -2877,6 +3419,32 @@ export class KimiTUI { } } + /** + * Relocate an already-mounted transcript entry (and its component) to the + * end of the transcript. Used to re-anchor an asynchronously mounted + * background-task terminal card to the start of its notification turn, so + * the card's fold-segment boundary guards that turn's output instead of + * splitting whatever turn happened to be live when the task terminated. + * Returns false when the entry is no longer mounted (e.g. trimmed). + */ + moveTranscriptEntryToEnd(entry: TranscriptEntry): boolean { + const entries = this.state.transcriptEntries; + const entryIndex = entries.indexOf(entry); + if (entryIndex < 0) return false; + entries.splice(entryIndex, 1); + entries.push(entry); + const children = this.state.transcriptContainer.children; + const childIndex = children.findIndex( + (child) => getTranscriptComponentEntry(child) === entry, + ); + if (childIndex >= 0) { + const [component] = children.splice(childIndex, 1); + children.push(component!); + } + this.state.ui.requestRender(); + return true; + } + private appendApprovalTranscriptEntry( request: ApprovalRequest, response: ApprovalResponse, @@ -2938,6 +3506,11 @@ export class KimiTUI { } private clearTranscriptAndRedraw(): void { + this.staging.deleteStaged(this.imageStore.clear()); + this.clearTranscriptView(); + } + + private clearTranscriptView(): void { this.streamingUI.discardPending(); this.state.transcriptEntries = []; this.streamingUI.disposeActiveCompactionBlock(); @@ -2951,8 +3524,6 @@ export class KimiTUI { this.state.todoPanel.clear(); this.state.todoPanelContainer.clear(); this.sessionEventHandler.notifications.clear(); - const stagingFileIds = this.imageStore.clear(); - this.staging.deleteStaged(stagingFileIds); this.renderWelcome(); // No forced full render on session reset: let the differential renderer // converge on its own (a mass change above the viewport still makes the @@ -2979,13 +3550,22 @@ export class KimiTUI { /** * Fold-segment boundary: everything {@link isTurnBoundaryComponent} counts, - * plus the cron card. A cron-fired turn mounts no user message, so without - * the card as a boundary its output would share the previous user turn's + * plus the cron card and terminal background-task cards. Cron-fired and + * task-notification turns mount no user message, so without one of these + * cards as a boundary their output would share the previous user turn's * fold segment — and the completed-turn assistant cap would fold that turn's - * final answer into the step summary. + * final answer into the step summary. A task-notification turn re-anchors + * its terminal card to the turn's start (see SessionEventHandler), because + * the card's asynchronous mount point may sit inside an unrelated turn; + * cards that never get a notification turn (resumed sessions, missed + * drains) still bound whatever segment they landed in. */ private isFoldSegmentBoundaryComponent(child: Component): boolean { - return this.isTurnBoundaryComponent(child) || child instanceof CronMessageComponent; + return ( + this.isTurnBoundaryComponent(child) || + child instanceof CronMessageComponent || + (child instanceof BackgroundAgentStatusComponent && child.phase !== 'started') + ); } private trimTranscriptWindow(): boolean { @@ -3305,10 +3885,10 @@ export class KimiTUI { updateActivityPane(): void { const effectiveMode = this.resolveActivityPaneMode(); const tipKind = loadingTipKind(effectiveMode); - // Pick a fresh loading tip when the loading kind changes. The same kind - // covers waiting/tool (both moon spinners) and any intermediate thinking - // phase, so a continuous burst of tool calls does not flip tips. Clear the - // cache only when there is no loading UI at all. + // Pick a fresh loading tip when the loading kind changes: waiting/tool + // share the moon kind and thinking/composing share the braille kind, so a + // burst of tool calls or thinking/composing alternation does not flip + // tips. Clear the cache only when there is no loading UI at all. if (effectiveMode === 'idle' || effectiveMode === 'session' || effectiveMode === 'hidden') { this.currentLoadingTip = undefined; } else if ( @@ -3366,12 +3946,21 @@ export class KimiTUI { break; } case 'thinking': { - this.stopActivitySpinner(); + const spinner = this.ensureActivitySpinner('braille', 'Working…', (s) => + currentTheme.fg('primary', s), + ); this.syncAgentSwarmActivitySpinner(undefined); + this.state.activityContainer.addChild( + new ActivityPaneComponent({ + mode: 'thinking', + spinner, + tip: this.currentLoadingTip?.tip, + }), + ); break; } case 'composing': { - const spinner = this.ensureActivitySpinner('braille', 'working…', (s) => + const spinner = this.ensureActivitySpinner('braille', 'Working…', (s) => currentTheme.fg('primary', s), ); this.syncAgentSwarmActivitySpinner(undefined); @@ -3401,9 +3990,9 @@ export class KimiTUI { case 'session': { this.stopActivitySpinner(); this.syncAgentSwarmActivitySpinner(undefined); - // Keep a placeholder row so the activity area does not fully shrink - // when the spinner is removed at the end of streaming; combined with - // pi-tui's clamp, this avoids a destructive full redraw (viewport jump). + // Working modes occupy two rows (a spacer above the loader); idle + // keeps a one-row placeholder so the dock only shifts once at turn + // boundaries instead of on every intra-turn mode flip. this.state.activityContainer.addChild(new Spacer(1)); break; } @@ -3442,7 +4031,7 @@ export class KimiTUI { messages: queued, isCompacting: this.state.appState.isCompacting, isStreaming: this.state.appState.streamingPhase !== 'idle', - canSteerImmediately: !this.deferUserMessages, + canSteerImmediately: !this.deferUserMessages && !this.isSteeringQueuedMessages(), }), ); } @@ -3475,17 +4064,32 @@ export class KimiTUI { // card with hidden content keeps the collapse hint on. for (let i = children.length - 1; i >= 0; i--) { const child = children[i]; - if (isExpandedComponent(child) && hasHiddenContent(child)) return 'collapse'; + if (isExpandedComponent(child) && countedByExpandHint(child)) return 'collapse'; } return null; } const cutoff = this.expandCutoff(children); for (let i = children.length - 1; i >= cutoff; i--) { - if (hasHiddenContent(children[i])) return 'expand'; + if (countedByExpandHint(children[i])) return 'expand'; } return null; } + private toggleClickedFoldBlock(index: number): TuiMouseEventResult | undefined { + const children = this.state.transcriptContainer.children; + const hit = children[index]; + if (hit === undefined || !isExpandable(hit) || !hasHiddenContent(hit)) return undefined; + if (isExpandedComponent(hit)) { + hit.setExpanded(false); + } else if (index >= this.expandCutoff(children)) { + hit.setExpanded(true); + } else { + return undefined; + } + this.state.ui.requestRender(); + return { handled: true }; + } + toggleToolOutputExpansion(): void { this.state.toolOutputExpanded = !this.state.toolOutputExpanded; const children = this.state.transcriptContainer.children; @@ -3749,20 +4353,28 @@ export class KimiTUI { // Dialogs / Selectors // ========================================================================= - mountEditorReplacement(panel: Component & Focusable): void { - this.surveyController.closeSilently(); + mountEditorReplacement(panel: Component & Focusable, onDisplaced?: () => void): void { + const previousOnDisplaced = this.editorReplacementOnDisplaced; + this.editorReplacementOnDisplaced = onDisplaced; + this.surveyController.notifyDisplaced(); + if (this.state.activeDialog === 'model-switch-confirm') this.state.activeDialog = null; this.state.editorReplacementMounted = true; this.state.editorContainer.clear(); this.state.editorContainer.addChild(panel); this.state.ui.setFocus(panel); this.state.ui.requestRender(); + previousOnDisplaced?.(); } restoreEditor(): void { + const onDisplaced = this.editorReplacementOnDisplaced; + this.editorReplacementOnDisplaced = undefined; this.state.editorReplacementMounted = false; this.state.editorContainer.clear(); this.state.editorContainer.addChild(this.state.editor); this.state.ui.setFocus(this.state.editor); + onDisplaced?.(); + this.modelMigration.retry(); // Differential render only: closing a tall panel leaves the editor a few // rows above the bottom (blank tail) until the next append, but avoids a // destructive full redraw on every dialog close. @@ -3828,12 +4440,11 @@ export class KimiTUI { /** * agent-core-v2 startup gate: before any session is created, ask whether to * trust this folder when the workspace is not trusted yet (project-level MCP - * servers stay disabled while untrusted). Best-effort throughout — a failed - * check or trust write never blocks startup. Choosing "don't trust" (or Esc) - * exits the program before any session is created; the prompt reappears on - * the next launch: the engine's untrusted state is indistinguishable from - * never-trusted. Returns true when the prompt started the event loop (the - * caller must not start it again). + * servers stay disabled while untrusted). A failed trust-info read is treated + * as untrusted and still prompts. Choosing "don't trust" (or Esc) exits the + * program before any session is created. A failed trust write still enters + * the TUI for this process and re-asks on the next launch. Returns true when + * the prompt started the event loop (the caller must not start it again). */ private async maybeRunWorkspaceTrustPrompt(): Promise { const workDir = this.state.appState.workDir; @@ -3841,16 +4452,27 @@ export class KimiTUI { try { info = await this.harness.getWorkspaceTrustInfo(workDir); } catch { + info = { + trusted: false, + gatedMcpServers: [], + gatedAdditionalDirs: [], + additionalDirSources: [], + warnings: ['Could not inspect project settings.'], + instructionSources: { agentsMdPaths: [], skills: [], agentProfiles: [], paths: [] }, + }; + } + if (info.trusted) { return false; } - if (info.trusted) return false; this.startEventLoop(); const choice = await new Promise((resolve) => { this.state.activeDialog = 'trust-prompt'; this.mountEditorReplacement( new TrustPromptComponent({ workDir, - gatedMcpServers: info.gatedMcpServers, + info, + getAvailableRows: () => + this.state.terminal.rows - (this.state.ui instanceof TuiAltScreen ? 1 : 0), onSelect: (c) => { resolve(c); }, @@ -3870,7 +4492,6 @@ export class KimiTUI { try { await this.harness.trustWorkspace(workDir); } catch { - // A failed write leaves the workspace untrusted (re-asked next launch). } return true; } @@ -3974,7 +4595,7 @@ export class KimiTUI { // that is about to lock itself for the delete. this.sessionPickerScopeRequestToken += 1; try { - await this.waitForLazyCreation(); + await this.waitForSessionAssembly(); if (session.id === this.state.appState.sessionId && this.session !== undefined) { await this.deleteCurrentSessionFromPicker(session); return; @@ -4188,3 +4809,22 @@ export class KimiTUI { this.restoreEditor(); } } + +function isSteerableQueuedMessage(message: QueuedMessage): boolean { + return ( + message.inlineSkillActivations === undefined && + message.mode !== 'bash' && + message.mode !== 'compact' + ); +} + +function toSteerInputItem(message: QueuedMessage): SteerInputItem { + return { + text: message.text, + parts: message.parts, + imageAttachmentIds: message.imageAttachmentIds, + videoAttachmentIds: message.videoAttachmentIds, + mediaSnapshots: message.mediaSnapshots, + inlineSkillActivations: message.inlineSkillActivations, + }; +} diff --git a/apps/kimi-code/src/tui/theme/highlight-theme.ts b/apps/kimi-code/src/tui/theme/highlight-theme.ts index e16f4b310..0385aa02e 100644 --- a/apps/kimi-code/src/tui/theme/highlight-theme.ts +++ b/apps/kimi-code/src/tui/theme/highlight-theme.ts @@ -2,16 +2,22 @@ * Shared cli-highlight theme for code previews (Write/Edit tool calls, * approval panels) and markdown code blocks. * - * cli-highlight's DEFAULT_THEME paints `string`, `regexp` and `deletion` - * tokens red; reset exactly those tokens to `plain` so highlighted code - * contains no red at all. Tokens not listed here fall back to DEFAULT_THEME. + * cli-highlight's DEFAULT_THEME paints `string` and `regexp` tokens red; + * reset exactly those tokens to `plain` so highlighted code contains no red. + * Diff `addition` and `deletion` tokens map to the palette's diff colors + * instead, so diff fences and diff previews follow the active palette and + * match the Edit-tool diff styling. Tokens not listed here fall back to + * DEFAULT_THEME. */ import { plain } from 'cli-highlight'; import type { Theme } from 'cli-highlight'; +import { currentTheme } from './theme'; + export const codeHighlightTheme: Theme = { string: plain, regexp: plain, - deletion: plain, + addition: (code) => currentTheme.fg('diffAdded', code), + deletion: (code) => currentTheme.fg('diffRemoved', code), }; diff --git a/apps/kimi-code/src/tui/theme/pi-tui-theme.ts b/apps/kimi-code/src/tui/theme/pi-tui-theme.ts index 91161a5b4..43ec2be83 100644 --- a/apps/kimi-code/src/tui/theme/pi-tui-theme.ts +++ b/apps/kimi-code/src/tui/theme/pi-tui-theme.ts @@ -23,11 +23,16 @@ import { codeHighlightTheme } from './highlight-theme'; // eslint-disable-next-line no-control-regex -- intentionally matches the ESC byte that opens ANSI SGR sequences. const HEADING_HASH_PREFIX = /^((?:\u001B\[[0-9;]*m)*)#{1,6}[ \t]+/; -export function createMarkdownTheme(options?: { transient?: boolean }): MarkdownTheme { +export interface KimiMarkdownTheme extends MarkdownTheme { + transient?: boolean; +} + +export function createMarkdownTheme(options?: { transient?: boolean }): KimiMarkdownTheme { const transient = options?.transient === true; const stripHash = (text: string): string => text.replace(HEADING_HASH_PREFIX, '$1'); return { + transient, heading: (text) => chalk.bold.hex(currentTheme.color('text'))(stripHash(text)), link: (text) => chalk.hex(currentTheme.color('primary'))(text), linkUrl: (text) => chalk.hex(currentTheme.color('textMuted'))(text), diff --git a/apps/kimi-code/src/tui/tui-state.ts b/apps/kimi-code/src/tui/tui-state.ts index e4f4e8f14..601079f92 100644 --- a/apps/kimi-code/src/tui/tui-state.ts +++ b/apps/kimi-code/src/tui/tui-state.ts @@ -1,28 +1,27 @@ import { Container, ProcessTerminal, - ScrollView, TuiAltScreen, TuiMainScreen, VStack, type TUI, } from '@moonshot-ai/pi-tui'; +import { TranscriptView } from '#/tui/components/messages/transcript-view'; import { clipboard } from '#/utils/clipboard/clipboard-native'; import { openUrl } from '#/utils/open-url'; -import { FooterComponent } from './components/chrome/footer';import { GutterContainer } from './components/chrome/gutter-container'; +import { FooterComponent } from './components/chrome/footer'; +import { GutterContainer } from './components/chrome/gutter-container'; import type { MoonLoader, SpinnerStyle } from './components/chrome/moon-loader'; import { NotifyPanelComponent } from './components/chrome/notify-panel'; import { TodoPanelComponent } from './components/chrome/todo-panel'; import type { SessionRow } from './components/dialogs/session-picker'; import { CustomEditor } from './components/editor/custom-editor'; -import { DEFAULT_TUI_CONFIG } from './config'; +import { DEFAULT_MARKDOWN_CONFIG, DEFAULT_TUI_CONFIG } from './config'; import { CHROME_GUTTER } from './constant/rendering'; import type { TasksBrowserState } from './controllers/tasks-browser'; import { currentTheme, type Theme } from './theme'; -import { setMarkdownRenderLatex } from './utils/markdown-options'; -import { createTerminalState, type TerminalState } from './utils/terminal-state'; import { INITIAL_LIVE_PANE, type AppState, @@ -32,11 +31,18 @@ import { type TranscriptEntry, type TUIStartupState, } from './types'; +import { + setMarkdownAltScreenActive, + setMarkdownMermaidMode, + setMarkdownRenderLatex, + setMarkdownRenderRequester, +} from './utils/markdown-options'; +import { createTerminalState, type TerminalState } from './utils/terminal-state'; export interface TUIState { ui: TUI; terminal: ProcessTerminal; - transcriptContainer: Container; + transcriptContainer: GutterContainer; activityContainer: Container; todoPanelContainer: Container; todoPanel: TodoPanelComponent; @@ -69,7 +75,7 @@ export interface TUIState { /** A follow-up session page fetch is in flight. */ sessionsLoadingMore: boolean; sessionsScope: 'cwd' | 'all'; - activeDialog: 'session-picker' | 'help' | 'trust-prompt' | 'cache-hint' | null; + activeDialog: 'session-picker' | 'help' | 'trust-prompt' | 'cache-hint' | 'model-switch-confirm' | null; /** * True while an editor-replacement panel (help, trust prompt, goal queue * manager, …) is mounted in place of the editor. Delayed input restores @@ -95,10 +101,9 @@ export function createTUIState(options: KimiTUIOptions): TUIState { const terminal = new ProcessTerminal(); setMarkdownRenderLatex(initialAppState.renderLatex ?? DEFAULT_TUI_CONFIG.renderLatex ?? true); - // Fullscreen is experimental and env-gated for now: KIMI_CODE_TUI_FULL_SCREEN=1. - const fullscreen = process.env['KIMI_CODE_TUI_FULL_SCREEN'] === '1'; + setMarkdownMermaidMode(initialAppState.markdown?.mermaid ?? DEFAULT_MARKDOWN_CONFIG.mermaid); const ui = - fullscreen + initialAppState.tuiMode === 'fullscreen' ? new TuiAltScreen(terminal, undefined, undefined, { // Mouse capture takes over the terminal's native link activation, so // route OSC 8 clicks through our own opener. @@ -113,14 +118,22 @@ export function createTUIState(options: KimiTUIOptions): TUIState { .getText() .then((text) => { if (!text || ui.getFocusedComponent() !== target) return; - target.handleInput?.(`\x1b[200~${text}\x1b[201~`); + target.handleInput?.(`\u001B[200~${text}\u001B[201~`); ui.requestRender(); }) .catch(() => {}); }, + // Clickable pill centered on the transcript's last row while it is + // scrolled away from the end. + scrollToEndIndicator: () => currentTheme.fg('primary', ' ↓ Jump to bottom '), }) : new TuiMainScreen(terminal); + setMarkdownAltScreenActive(ui instanceof TuiAltScreen); + setMarkdownRenderRequester(() => { + ui.requestRender(true); + }); + const transcriptContainer = new GutterContainer(CHROME_GUTTER, CHROME_GUTTER); const activityContainer = new GutterContainer(CHROME_GUTTER, CHROME_GUTTER); const todoPanelContainer = new GutterContainer(CHROME_GUTTER, CHROME_GUTTER); @@ -147,12 +160,7 @@ export function createTUIState(options: KimiTUIOptions): TUIState { // from basis 0 and grows; the dock keeps its intrinsic height, with the // editor never squeezed below its 3 rows (top border / input / bottom // border) and the footer below 1 — otherwise the box outline gets clipped. - const scrollView = new ScrollView(transcriptContainer, { - follow: 'end', - primary: true, - overscroll: 'chain', - scrollbar: 'auto', - }); + const transcriptView = new TranscriptView(transcriptContainer); dockContainer = new VStack(); dockContainer.addChild(activityContainer, { shrink: 1, minSize: 0 }); dockContainer.addChild(todoPanelContainer, { shrink: 1, minSize: 0 }); @@ -162,9 +170,12 @@ export function createTUIState(options: KimiTUIOptions): TUIState { dockContainer.addChild(surveyContainer, { shrink: 0, minSize: 0 }); dockContainer.addChild(editorContainer, { shrink: 1, minSize: 3 }); const root = new VStack(); - root.addChild(scrollView, { basis: 0, grow: 1, shrink: 1, minSize: 1 }); + root.addChild(transcriptView, { basis: 0, grow: 1, shrink: 1, minSize: 1 }); root.addChild(dockContainer, { basis: 'auto', grow: 0, shrink: 1, minSize: 1 }); ui.setLayoutRoot(root); + ui.addLayoutEffect(() => { + if (ui.getLayoutRoot() === root && transcriptView.updateStickyMessage()) ui.requestRender(); + }); } return { diff --git a/apps/kimi-code/src/tui/types.ts b/apps/kimi-code/src/tui/types.ts index 555acbc30..24347ace8 100644 --- a/apps/kimi-code/src/tui/types.ts +++ b/apps/kimi-code/src/tui/types.ts @@ -10,16 +10,17 @@ import type { ToolInputDisplay, } from '@moonshot-ai/kimi-code-sdk'; -import type { NotificationsConfig, StatusLineConfig, UpgradePreferences } from './config'; +import type { MarkdownConfig, NotificationsConfig, StatusLineConfig, TuiMode, UpgradePreferences } from './config'; import type { PendingApproval, PendingQuestion } from './reverse-rpc/types'; import type { ColorToken, ThemeName } from './theme'; +import type { MediaAttachment, VideoAttachment } from './utils/image-attachment-store'; export type BannerDisplay = 'always' | 'once' | 'cooldown'; export interface BannerState { key: string; tag: string | null; - mainText: string; + mainText: string | null; subText: string | null; display: BannerDisplay; ttlHours?: number; @@ -70,6 +71,7 @@ export interface AppState { /** Pending step retry backoff (fed by `turn.step.retrying`); null when no retry is in flight. */ stepRetry: StepRetryState | null; theme: ThemeName; + tuiMode?: TuiMode; version: string; editorCommand: string | null; /** Mirrors the TUI config toggle; defaults to false when absent from older fixtures. */ @@ -79,10 +81,13 @@ export interface AppState { /** Mirrors the TUI config toggle; defaults to true when absent from older fixtures. */ cacheExpiryHint?: boolean; disableFeedbackSurvey?: boolean; + /** Mirrors the TUI config toggle; defaults to true when absent from older fixtures. */ + autoSessionTitle?: boolean; notifications: NotificationsConfig; upgrade: UpgradePreferences; /** Footer status line customization from tui.toml; absent means the default layout. */ statusLine?: StatusLineConfig; + markdown?: MarkdownConfig; availableModels: Record; availableProviders: Record; sessionTitle: string | null; @@ -160,18 +165,25 @@ export interface BackgroundAgentMetadata { readonly parentToolCallId: string; readonly agentName?: string; readonly description?: string; + /** Background task id carried on the spawn event (Agent tool only); lets the + * terminal card register before `background.task.started` syncs. */ + readonly taskId?: string; /** Display name of the model the agent is bound to (resolved at spawn). */ readonly model?: string; /** Thinking effort, set only for concrete levels (boolean on/off hidden). */ readonly effort?: string; } -export type BackgroundAgentStatusPhase = 'started' | 'completed' | 'failed'; +export type BackgroundAgentStatusPhase = 'started' | 'completed' | 'failed' | 'killed'; export interface BackgroundAgentStatusData { readonly phase: BackgroundAgentStatusPhase; readonly headline: string; readonly detail?: string; + /** Subagent behind a background-agent card; lets the task-notification + * anchor reuse a terminal card that was mounted before its task id was + * known (e.g. a tower worker that finished before `registerTask`). */ + readonly agentId?: string; } export interface CompactionTranscriptData { @@ -232,7 +244,7 @@ export interface TranscriptEntry { modelText?: boolean; color?: ColorToken; detail?: string; - /** Optional override for the leading bullet of a 'user' message entry. An empty string suppresses the bullet entirely (used by shell-command echoes so `$` replaces the sparkles marker). */ + /** Optional override for the leading bullet of a 'user' message entry. An empty string suppresses the bullet entirely (used by shell-command echoes so `$` takes the bullet's place). */ bullet?: string; toolCallData?: ToolCallBlockData; backgroundAgentStatus?: BackgroundAgentStatusData; @@ -240,6 +252,7 @@ export interface TranscriptEntry { cronData?: CronTranscriptData; goalData?: GoalTranscriptData; imageAttachmentIds?: readonly number[]; + skillNames?: readonly string[]; skillActivationId?: string; skillName?: string; skillArgs?: string; @@ -264,12 +277,15 @@ export interface LivePaneState { pendingQuestion: PendingQuestion | null; } +export interface PreparedSkillActivations { + skills: Array<{ name: string; args?: string }>; + mediaAttachmentIds: number[]; + stagingPaths: string[]; + cachedVideos: VideoAttachment[]; +} + export interface InlineSkillActivation { readonly skillName: string; - /** - * Skill arguments. Only set for a leading `/skill: args` command that - * is combined with further inline skills; inline tokens carry no args. - */ readonly args?: string; } @@ -279,17 +295,16 @@ export interface QueuedMessage { readonly parts?: readonly PromptPart[]; readonly imageAttachmentIds?: readonly number[]; readonly videoAttachmentIds?: readonly number[]; - /** `bash` for a `!` shell command queued while another command is running; - * `skill` for a slash-skill activation queued while the session is busy; - * undefined (=`prompt`) for a normal message. */ - readonly mode?: 'prompt' | 'bash' | 'skill'; - /** Set when mode === 'skill': the skill to activate when the item drains. - * `text` then holds the display/recall string (`/name args`). */ - readonly skillName?: string; - /** Set when mode === 'skill': the raw (media-rewritten) args to activate with. */ - readonly skillArgs?: string; + readonly mediaSnapshots?: readonly MediaAttachment[]; + readonly mode?: 'prompt' | 'bash' | 'compact'; /** Skills to activate together with this queued message's prompt. */ readonly inlineSkillActivations?: readonly InlineSkillActivation[]; + readonly compactInstruction?: string; + readonly compactRetries?: number; + /** Resent after the user chose Retry on a session-in-use prompt. */ + readonly occupiedRetry?: boolean; + /** Auto-compaction serial at enqueue time; a mismatch at dequeue skips the fire. */ + readonly queuedAfterAutoSerial?: number; } /** @@ -303,6 +318,8 @@ export interface SteerInputItem { readonly parts?: readonly PromptPart[]; readonly imageAttachmentIds?: readonly number[]; readonly videoAttachmentIds?: readonly number[]; + readonly mediaSnapshots?: readonly MediaAttachment[]; + readonly inlineSkillActivations?: readonly InlineSkillActivation[]; } export const INITIAL_LIVE_PANE: LivePaneState = { diff --git a/apps/kimi-code/src/tui/utils/background-agent-status.ts b/apps/kimi-code/src/tui/utils/background-agent-status.ts index c2322e633..eb13c85db 100644 --- a/apps/kimi-code/src/tui/utils/background-agent-status.ts +++ b/apps/kimi-code/src/tui/utils/background-agent-status.ts @@ -26,7 +26,9 @@ export function formatBackgroundAgentTranscript( ? `${subject} started in background` : phase === 'completed' ? `${subject} completed in background` - : `${subject} failed in background`; + : phase === 'killed' + ? `${subject} stopped` + : `${subject} failed in background`; const tail = phase === 'failed' ? normalizeBackgroundField(extras?.error) : undefined; const detailParts = [ normalizeBackgroundField(meta.model), @@ -39,5 +41,6 @@ export function formatBackgroundAgentTranscript( phase, headline, detail: detailParts.length > 0 ? detailParts.join(' · ') : undefined, + agentId: meta.agentId, }; } diff --git a/apps/kimi-code/src/tui/utils/component-capabilities.ts b/apps/kimi-code/src/tui/utils/component-capabilities.ts index 810f08cae..7e0023293 100644 --- a/apps/kimi-code/src/tui/utils/component-capabilities.ts +++ b/apps/kimi-code/src/tui/utils/component-capabilities.ts @@ -4,14 +4,17 @@ export interface Expandable { /** * An expandable component that can say whether ctrl+o would change what it - * shows — content it keeps out of its collapsed form. Drives the footer's - * `ctrl+o expand` / `ctrl+o collapse` hint. + * shows — content it keeps out of its collapsed form. */ export interface HidesContent extends Expandable { hasHiddenContent(): boolean; isExpanded(): boolean; } +export interface OmitsExpandHint { + omitsExpandHint(): boolean; +} + export interface Disposable { dispose(): void; } @@ -34,6 +37,21 @@ export function hasHiddenContent(obj: unknown): boolean { ); } +export function countedByExpandHint(obj: unknown): boolean { + if (omitsExpandHint(obj)) return false; + return hasHiddenContent(obj); +} + +function omitsExpandHint(obj: unknown): boolean { + return ( + typeof obj === 'object' && + obj !== null && + 'omitsExpandHint' in obj && + typeof (obj as OmitsExpandHint).omitsExpandHint === 'function' && + (obj as OmitsExpandHint).omitsExpandHint() + ); +} + /** Whether an expandable component currently shows its expanded form. */ export function isExpandedComponent(obj: unknown): boolean { return ( diff --git a/apps/kimi-code/src/tui/utils/export-markdown.ts b/apps/kimi-code/src/tui/utils/export-markdown.ts index 35813b711..4ee497ffe 100644 --- a/apps/kimi-code/src/tui/utils/export-markdown.ts +++ b/apps/kimi-code/src/tui/utils/export-markdown.ts @@ -1,5 +1,7 @@ import type { ContentPart, ContextMessage, PromptOrigin, ToolCall } from '@moonshot-ai/kimi-code-sdk'; +import { isUserPromptSubmitHookPart, withoutUserPromptSubmitHookParts } from './message-replay'; + const HINT_KEYS = ['path', 'file_path', 'command', 'query', 'url', 'name', 'pattern'] as const; const MAX_HINT_WIDTH = 60; @@ -142,7 +144,7 @@ function formatTurnMd(messages: readonly ContextMessage[], turnNumber: number): // A daemon-ref media part is self-contained and renders as // `[image]`/`[video]` below; a standalone `` tag is user // text and exports verbatim. - for (const part of msg.content) { + for (const part of withoutUserPromptSubmitHookParts(msg.content)) { const text = formatContentPartMd(part); if (text.trim()) { lines.push(text, ''); @@ -192,7 +194,10 @@ function buildOverview( for (const msg of history) { if (msg.role === 'user' && !isInternalMessage(msg)) { const textParts = msg.content - .filter((p): p is { type: 'text'; text: string } => p.type === 'text') + .filter( + (p): p is { type: 'text'; text: string } => + p.type === 'text' && !isUserPromptSubmitHookPart(p), + ) .map((p) => p.text); topic = shorten(textParts.join(' '), 80); break; diff --git a/apps/kimi-code/src/tui/utils/image-attachment-store.ts b/apps/kimi-code/src/tui/utils/image-attachment-store.ts index 86320f72a..87f4693e9 100644 --- a/apps/kimi-code/src/tui/utils/image-attachment-store.ts +++ b/apps/kimi-code/src/tui/utils/image-attachment-store.ts @@ -110,9 +110,14 @@ type MutableImageAttachment = { export class ImageAttachmentStore { private nextId = 1; + private currentGeneration = 0; private readonly byId = new Map(); private readonly stagingUses = new Map(); + get generation(): number { + return this.currentGeneration; + } + addImage( bytes: Uint8Array, mime: string, @@ -242,6 +247,7 @@ export class ImageAttachmentStore { this.byId.clear(); this.stagingUses.clear(); this.nextId = 1; + this.currentGeneration += 1; return fileIds; } diff --git a/apps/kimi-code/src/tui/utils/image-placeholder.ts b/apps/kimi-code/src/tui/utils/image-placeholder.ts index 190ba93c2..fee9ea373 100644 --- a/apps/kimi-code/src/tui/utils/image-placeholder.ts +++ b/apps/kimi-code/src/tui/utils/image-placeholder.ts @@ -58,6 +58,7 @@ import { MEDIA_FILE_REF_MIN_REMAINING_MS } from '../constant/media'; import type { ImageAttachment, ImageAttachmentStore, + MediaAttachment, VideoAttachment, } from './image-attachment-store'; @@ -81,6 +82,8 @@ export interface ExtractionResult { * snapshots to rebuild the image parts as inline data URLs. */ imageSnapshots: ImageResendSnapshot[]; + mediaSnapshots?: readonly MediaAttachment[]; + mediaGeneration?: number; } export interface ImageResendSnapshot { @@ -110,6 +113,7 @@ export function extractMediaAttachments( const imageAttachmentIds: number[] = []; const videoAttachmentIds: number[] = []; const imageSnapshots: ImageResendSnapshot[] = []; + const mediaSnapshots: MediaAttachment[] = []; let cursor = 0; let hasMedia = false; @@ -123,6 +127,7 @@ export function extractMediaAttachments( const attachment = store.get(id); if (attachment === undefined) continue; // stale / user-typed — leave as text if (attachment.kind !== kind) continue; + mediaSnapshots.push(attachment); const before = text.slice(cursor, match.index); pushText(parts, before); if (attachment.kind === 'video') { @@ -185,6 +190,8 @@ export function extractMediaAttachments( imageAttachmentIds, videoAttachmentIds, imageSnapshots, + mediaSnapshots: mediaSnapshots.length > 0 ? mediaSnapshots : undefined, + mediaGeneration: store.generation, }; } @@ -350,6 +357,7 @@ export interface MediaTagRewriteResult { imageAttachmentIds: number[]; videoAttachmentIds: number[]; stagingPaths: string[]; + cachedVideos: VideoAttachment[]; } /** @@ -378,10 +386,12 @@ export function rewriteMediaPlaceholders( text: string, store: ImageAttachmentStore, style: MediaReferenceStyle = 'tag', + mediaSnapshots?: readonly MediaAttachment[], ): MediaTagRewriteResult { const imageAttachmentIds: number[] = []; const videoAttachmentIds: number[] = []; const stagingPaths: string[] = []; + const cachedVideos: VideoAttachment[] = []; let cursor = 0; let out = ''; @@ -393,8 +403,10 @@ export function rewriteMediaPlaceholders( if (kind !== 'image' && kind !== 'video') continue; if (idStr === undefined) continue; const id = Number.parseInt(idStr, 10); - const attachment = store.get(id); - if (attachment === undefined) continue; // stale / user-typed — leave as text + const attachment = mediaSnapshots === undefined + ? store.get(id) + : mediaSnapshots.find((snapshot) => snapshot.id === id); + if (attachment === undefined) continue; if (attachment.kind !== kind) continue; out += text.slice(cursor, match.index); if (attachment.kind === 'video') { @@ -404,7 +416,8 @@ export function rewriteMediaPlaceholders( style === 'plain' ? formatMediaReference('video', path) : buildMediaPathTag('video', path); - videoAttachmentIds.push(id); + cachedVideos.push(attachment); + if (store.get(id) === attachment) videoAttachmentIds.push(id); } else { const path = materializeImageToCache(attachment); stagingPaths.push(path); @@ -412,12 +425,12 @@ export function rewriteMediaPlaceholders( style === 'plain' ? formatMediaReference('image', path) : buildMediaPathTag('image', path); - imageAttachmentIds.push(id); + if (store.get(id) === attachment) imageAttachmentIds.push(id); } cursor = match.index + literal.length; } - const hasMedia = imageAttachmentIds.length + videoAttachmentIds.length > 0; + const hasMedia = stagingPaths.length > 0; store.retainFileIds(imageAttachmentIds); return { text: hasMedia ? out + text.slice(cursor) : text, @@ -425,6 +438,7 @@ export function rewriteMediaPlaceholders( imageAttachmentIds, videoAttachmentIds, stagingPaths, + cachedVideos, }; } catch (error) { cleanupStagingPaths(stagingPaths); @@ -432,6 +446,22 @@ export function rewriteMediaPlaceholders( } } +export function omitExpiredVideoFileRefs( + parts: readonly PromptPart[], + cachedVideos: readonly VideoAttachment[], +): PromptPart[] { + const expiredUrls = new Set( + cachedVideos.flatMap((attachment) => + attachment.fileId !== undefined && + attachment.fileExpiresAt !== undefined && + attachment.fileExpiresAt - Date.now() <= MEDIA_FILE_REF_MIN_REMAINING_MS + ? [buildDaemonFileUrl(attachment.fileId)] + : [], + ), + ); + return parts.filter((part) => part.type !== 'video_url' || !expiredUrls.has(part.videoUrl.url)); +} + function cleanupStagingPaths(paths: readonly string[]): void { for (const path of paths) { try { diff --git a/apps/kimi-code/src/tui/utils/inline-skill-tokens.ts b/apps/kimi-code/src/tui/utils/inline-skill-tokens.ts index 5444304a9..8f1e556da 100644 --- a/apps/kimi-code/src/tui/utils/inline-skill-tokens.ts +++ b/apps/kimi-code/src/tui/utils/inline-skill-tokens.ts @@ -1,14 +1,5 @@ -/** - * Scanner for inline skill `/tokens` inside a prompt. - * - * Dispatch, editor highlighting, and autocomplete share this so all three - * agree on what counts as an inline skill reference: a `/name` token whose `/` - * is preceded by whitespace (space, tab, or newline), with no internal `/`. - * The leading slash-command area at the very start of the input is handled by - * the regular slash-command path and is skipped here by default. - */ - import type { InlineSkillActivation } from '../types'; +import { parseSlashInput } from '../commands/parse'; export interface InlineSkillToken { readonly commandName: string; @@ -52,7 +43,7 @@ export function findInlineSkillTokens( } const commandName = text.slice(i + 1, end); - if (commandName.includes('/')) continue; + if (commandName.includes('/') && (!isLeadingSlash || parseSlashInput(text.slice(i, end)) === null)) continue; if (commandName.length === 0 && options.allowEmpty !== true) continue; if (!options.isKnownSkill(commandName)) continue; diff --git a/apps/kimi-code/src/tui/utils/markdown-options.ts b/apps/kimi-code/src/tui/utils/markdown-options.ts index d765e599b..077002a85 100644 --- a/apps/kimi-code/src/tui/utils/markdown-options.ts +++ b/apps/kimi-code/src/tui/utils/markdown-options.ts @@ -19,3 +19,35 @@ export function setMarkdownRenderLatex(value: boolean): void { export function createMarkdownOptions(): MarkdownOptions { return { renderLatex }; } + +export type MermaidRenderMode = 'off' | 'final'; + +let mermaidMode: MermaidRenderMode = 'final'; + +export function setMarkdownMermaidMode(mode: MermaidRenderMode): void { + mermaidMode = mode; +} + +export function getMarkdownMermaidMode(): MermaidRenderMode { + return mermaidMode; +} + +let altScreenActive = false; + +export function setMarkdownAltScreenActive(active: boolean): void { + altScreenActive = active; +} + +export function isMarkdownAltScreenActive(): boolean { + return altScreenActive; +} + +let renderRequester: () => void = () => {}; + +export function setMarkdownRenderRequester(request: () => void): void { + renderRequester = request; +} + +export function requestMarkdownRender(): void { + renderRequester(); +} diff --git a/apps/kimi-code/src/tui/utils/message-replay.ts b/apps/kimi-code/src/tui/utils/message-replay.ts index 08e34b287..a6d045545 100644 --- a/apps/kimi-code/src/tui/utils/message-replay.ts +++ b/apps/kimi-code/src/tui/utils/message-replay.ts @@ -53,6 +53,7 @@ export interface SkillActivationProjection { readonly activationId: string; readonly skillName: string; readonly skillArgs?: string; + readonly skillSource?: string; readonly trigger: SkillActivationTrigger; /** The activation rode a bundled prompt message, not a standalone one. */ readonly bundled?: boolean; @@ -239,6 +240,59 @@ export function contentPartsToText(content: readonly ContentPart[]): string { return content.map(contentPartToText).join(''); } +export function isUserPromptSubmitHookPart( + part: ContentPart, +): part is Extract { + return ( + part.type === 'text' && + (part as { meta?: { source?: unknown } }).meta?.source === 'user prompt submit hook' + ); +} + +const SKILL_ACTIVATION_PART_SOURCE = 'skill activation'; + +export function isSkillActivationPart(part: ContentPart): boolean { + return ( + part.type === 'text' && + (part as { meta?: { source?: unknown } }).meta?.source === SKILL_ACTIVATION_PART_SOURCE + ); +} + +function annotateBundledSkillParts( + content: readonly ContentPart[], + bundledActivations: readonly BundledSkillActivationRef[], +): ContentPart[] { + if (bundledActivations.length === 0 || content.some(isSkillActivationPart)) { + return [...content]; + } + let index = 0; + return content.map((part) => { + const activation = bundledActivations[index]; + if ( + activation !== undefined && + part.type === 'text' && + (part as { meta?: { source?: unknown } }).meta?.source === undefined + ) { + index += 1; + return { + ...part, + meta: { source: SKILL_ACTIVATION_PART_SOURCE, activationId: activation.activationId }, + }; + } + return part; + }); +} + +interface BundledSkillActivationRef { + readonly activationId: string; +} + +export function withoutUserPromptSubmitHookParts( + content: readonly ContentPart[], +): ContentPart[] { + return content.filter((part) => !isUserPromptSubmitHookPart(part)); +} + /** * agent-core-v2's task domain persists the terminal notification under the * 'task' spelling (v1 used 'background_task'); both reach replay verbatim. @@ -269,6 +323,7 @@ export function skillActivationFromOrigin( activationId: origin.activationId, skillName: origin.skillName, skillArgs: origin.skillArgs, + skillSource: origin.skillSource, trigger: origin.trigger, }; } @@ -306,13 +361,44 @@ export function bundledSkillsFromOrigin( } /** - * Content parts the caller actually typed: the engine prepends one rendered - * text part per bundled skill, so the caller's own parts start right after - * them. + * Content parts the caller actually typed: skill blocks are meta-marked at + * construction; legacy wires carry no marks, so the leading unmarked parts + * (one per bundled activation) are annotated first, then filtered out. */ export function stripBundledSkillParts(message: ContextMessage): readonly ContentPart[] { - const bundledCount = bundledSkillsFromOrigin(message.origin).length; - return bundledCount === 0 ? message.content : message.content.slice(bundledCount); + return annotateBundledSkillParts( + message.content, + bundledSkillsFromOrigin(message.origin), + ).filter((part) => !isSkillActivationPart(part)); +} + +export function userSlashSkillPromptText( + message: ContextMessage, + skill: SkillActivationProjection, +): string { + const parts = withoutUserPromptSubmitHookParts(message.content); + const [first, ...rest] = parts; + const callerParts = first?.type === 'text' ? rest : parts; + const name = skill.skillSource === 'builtin' ? skill.skillName : `skill:${skill.skillName}`; + const args = skill.skillArgs ?? ''; + const command = args.trim().length > 0 ? `/${name} ${args}` : `/${name}`; + // Media parts mean the caller content came from an external activation with + // attachments (e.g. kap-server), never from a typed command: keep the + // command identity and show the attachment rendering alongside it. + if (callerParts.some((part) => part.type !== 'text')) { + const attachmentText = contentPartsToText(callerParts).trim(); + return attachmentText.length > 0 ? `${command} ${attachmentText}` : command; + } + const callerText = contentPartsToText(callerParts); + const trimmed = callerText.trim(); + if (trimmed.length === 0) return command; + // Text-only caller content is ambiguous: a saved typed command always + // starts with the slash mention, while external text attachments (the + // kap-server activation API accepts text attachments) are arbitrary prose + // — prepend the reconstructed command for the latter so the activated + // skill stays identifiable. + if (trimmed.startsWith('/')) return callerText; + return `${command} ${trimmed}`; } export function pluginCommandFromOrigin( diff --git a/apps/kimi-code/src/tui/utils/model-switch.ts b/apps/kimi-code/src/tui/utils/model-switch.ts new file mode 100644 index 000000000..2c7c182b9 --- /dev/null +++ b/apps/kimi-code/src/tui/utils/model-switch.ts @@ -0,0 +1,207 @@ +import { + effectiveModelAlias, + type KimiConfig, + type ModelAlias, + type ThinkingEffort, +} from '@moonshot-ai/kimi-code-sdk'; + +import type { SlashCommandHost } from '../commands/dispatch'; +import { defaultThinkingEffortFor, modelDisplayName } from '../components/dialogs/model-selector'; +import type { AppState } from '../types'; +import { formatErrorMessage } from './event-payload'; +import { thinkingEffortFromConfig, thinkingEffortToConfig } from './thinking-config'; + +export const MODEL_SWITCH_CACHE_WARNING = + 'Note: Switching models invalidates the existing prompt cache. Use /new to avoid extra token costs.'; + +/** True once the conversation has at least one user message: a switch from + * then on resends the accumulated context, losing the cache. Shell-command + * echoes are also 'user' transcript entries but carry an empty `bullet`, so + * they're excluded. */ +export function hasConversationHistory(host: SlashCommandHost): boolean { + return host.state.transcriptEntries.some( + (entry) => entry.kind === 'user' && entry.bullet !== '', + ); +} + +export function effectiveModelForHost(host: SlashCommandHost, model: ModelAlias): ModelAlias { + const providerType = host.state.appState.availableProviders[model.provider]?.type; + // Flat models (no named provider, e.g. inline base_url served by a v2 + // backend) have no provider entry to look up; their own protocol declaration + // plays the provider-identity role, mirroring the resolver. + return effectiveModelAlias(model, providerType ?? model.protocol); +} + +/** + * The model and thinking effort `config` gives the first lazily created + * session when it binds `alias`, for the session-less footer and the create + * call alike. + */ +export function lazyModelSelection( + config: KimiConfig, + alias: string | undefined, +): Partial { + // A default that disappeared from config (edited externally) clears the + // previously hydrated value instead of passing a stale explicit model to the + // first lazy-created session. + const patch: Partial = + alias === undefined ? { model: '', maxContextTokens: 0 } : { model: alias }; + const raw = alias === undefined ? undefined : config.models?.[alias]; + if (raw?.maxContextSize !== undefined) { + patch.maxContextTokens = raw.maxContextSize; + } + const effort = thinkingEffortFromConfig(config.thinking); + if (effort !== undefined) { + patch.thinkingEffort = effort; + } else if (raw !== undefined) { + // No concrete effort configured: mirror the engine, which resolves the + // model's default effort at createSession time. + const providerType = config.providers?.[raw.provider]?.type; + patch.thinkingEffort = defaultThinkingEffortFor( + effectiveModelAlias(raw, providerType ?? raw.protocol), + ); + } + return patch; +} + +/** + * How a model switch is saved: `session` keeps it to this session, `model` + * saves the model as the default (and the effort only when it changed), and + * `model-and-effort` saves both. + */ +export type ModelSwitchPersistence = 'session' | 'model' | 'model-and-effort'; + +export async function performModelSwitch( + host: SlashCommandHost, + alias: string, + effort: ThinkingEffort, + persist: ModelSwitchPersistence, +): Promise { + let session = host.session; + if (session === undefined) { + // A first prompt may still be inside lazy creation: wait it out so the + // switch lands on the new session instead of being overwritten by its + // assembly. + await host.waitForSessionAssembly(); + session = host.session; + } + if (host.state.appState.streamingPhase !== 'idle') { + host.showError('Cannot switch models while streaming — press Esc or Ctrl-C first.'); + return false; + } + + const prevModel = host.state.appState.model; + const prevEffort = host.state.appState.thinkingEffort; + const modelChanged = alias !== prevModel; + const effortChanged = effort !== prevEffort; + const runtimeChanged = modelChanged || effortChanged; + let effectiveAlias = alias; + let effectiveEffort = effort; + + try { + if (session === undefined && runtimeChanged) { + await host.authFlow.activateModelAfterLogin(alias, effort); + } else if (session !== undefined) { + if (alias !== prevModel) { + await session.setModel(alias); + } + if (effort !== prevEffort) { + await session.setThinking(effort); + } + const status = await session.getStatus(); + effectiveAlias = status.model ?? alias; + effectiveEffort = status.thinkingEffort; + } + } catch (error) { + const msg = formatErrorMessage(error); + host.showError(`Failed to switch model: ${msg}`); + return false; + } + + if (session === undefined) { + effectiveAlias = host.state.appState.model; + effectiveEffort = host.state.appState.thinkingEffort; + } + const effectiveModelChanged = effectiveAlias !== prevModel; + const effectiveEffortChanged = effectiveEffort !== prevEffort; + const displayName = modelDisplayName( + effectiveAlias, + host.state.appState.availableModels[effectiveAlias], + ); + host.setAppState({ model: effectiveAlias, thinkingEffort: effectiveEffort }); + if (session === undefined && runtimeChanged) { + if (effectiveModelChanged) { + host.track('model_switch', { model: effectiveAlias }); + } + if (effectiveEffortChanged) { + host.track('thinking_toggle', { + enabled: effectiveEffort !== 'off', + effort: effectiveEffort, + from: prevEffort, + }); + } + } + + const saveDefault = persist !== 'session'; + let persisted = false; + if (saveDefault) { + try { + persisted = await persistModelSelection( + host, + effectiveAlias, + effectiveEffort, + effectiveEffortChanged || persist === 'model-and-effort', + ); + } catch (error) { + const msg = formatErrorMessage(error); + host.showError(`Switched to ${displayName}, but failed to save default: ${msg}`); + return false; + } + } + + let status: string; + if (effectiveModelChanged) { + status = saveDefault + ? `Switched to ${displayName} with thinking ${effectiveEffort}.` + : `Switched to ${displayName} with thinking ${effectiveEffort} for this session only.`; + } else if (effectiveEffortChanged) { + status = saveDefault + ? `Thinking set to ${effectiveEffort}.` + : `Thinking set to ${effectiveEffort} for this session only.`; + } else if (saveDefault && persisted) { + status = `Saved ${displayName} with thinking ${effectiveEffort} as default.`; + } else { + status = `Already using ${displayName} with thinking ${effectiveEffort}.`; + } + host.showStatus(status, 'success'); + return true; +} + +async function persistModelSelection( + host: SlashCommandHost, + alias: string, + effort: ThinkingEffort, + persistEffort: boolean, +): Promise { + const config = await host.harness.getConfig({ reload: true }); + const model = host.state.appState.availableModels[alias]; + const full = thinkingEffortToConfig( + effort, + model === undefined ? undefined : effectiveModelForHost(host, model), + ); + // Ordinary /model confirmation preserves the stored effort unless it changed; + // migration acceptance explicitly persists the target effort. + const patch = persistEffort ? full : { enabled: full.enabled }; + if ( + config.defaultModel === alias && + config.thinking?.enabled === patch.enabled && + (!persistEffort || config.thinking?.effort === patch.effort) + ) { + return false; + } + await host.harness.setConfig({ + defaultModel: alias, + thinking: patch, + }); + return true; +} diff --git a/apps/kimi-code/src/tui/utils/permission-mode.ts b/apps/kimi-code/src/tui/utils/permission-mode.ts index 6df9eb1d0..2af45dc84 100644 --- a/apps/kimi-code/src/tui/utils/permission-mode.ts +++ b/apps/kimi-code/src/tui/utils/permission-mode.ts @@ -9,5 +9,5 @@ export const PERMISSION_MODE_DISPLAY_NAMES: Readonly> = { manual: 'Auto-read only; everything else needs your approval first.', yolo: 'Routine edits and commands run automatically; risky actions, questions, and plans still ask.', - auto: 'Never interrupts you; everything runs and is decided automatically.', + auto: 'Everything runs and is decided automatically; only plans in Plan mode wait for your review.', }; diff --git a/apps/kimi-code/src/tui/utils/refresh-providers.ts b/apps/kimi-code/src/tui/utils/refresh-providers.ts deleted file mode 100644 index 0801575f9..000000000 --- a/apps/kimi-code/src/tui/utils/refresh-providers.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { - refreshProviderModels, - type ProviderChange, - type RefreshProviderOptions, - type RefreshProviderScope, - type RefreshResult, -} from '@moonshot-ai/kimi-code-oauth'; -import type { KimiConfig, KimiConfigPatch, OAuthRef } from '@moonshot-ai/kimi-code-sdk'; - -/** - * CLI-side host for provider-model refresh. Kept on the SDK's full config types - * so existing TUI callers (and tests) don't change; the daemon uses the oauth - * package's `ManagedKimiConfigShape`-typed host directly. - */ -export interface RefreshProviderHost { - getConfig(): Promise; - removeProvider(providerId: string): Promise; - setConfig(patch: KimiConfigPatch): Promise; - resolveOAuthToken(providerName: string, oauthRef?: OAuthRef): Promise; - /** Product User-Agent sent on custom-registry (api.json) fetches. */ - readonly userAgent?: string; -} - -export type { ProviderChange, RefreshProviderOptions, RefreshProviderScope, RefreshResult }; - -/** - * Refresh remote model metadata for the configured providers. Thin adapter over - * the shared `refreshProviderModels` orchestrator in `@moonshot-ai/kimi-code-oauth` - * (which is also what the daemon's scheduled/manual refresh uses). - */ -export async function refreshAllProviderModels( - host: RefreshProviderHost, - options: RefreshProviderOptions = {}, -): Promise { - return refreshProviderModels( - { - getConfig: () => host.getConfig(), - removeProvider: (providerId) => host.removeProvider(providerId), - setConfig: (patch) => host.setConfig(patch as unknown as KimiConfigPatch), - resolveOAuthToken: (providerName, oauthRef) => - host.resolveOAuthToken(providerName, oauthRef as unknown as OAuthRef), - userAgent: host.userAgent, - }, - options, - ); -} diff --git a/apps/kimi-code/src/tui/utils/session-lock-errors.ts b/apps/kimi-code/src/tui/utils/session-lock-errors.ts new file mode 100644 index 000000000..8fe41bf17 --- /dev/null +++ b/apps/kimi-code/src/tui/utils/session-lock-errors.ts @@ -0,0 +1,15 @@ +import { ErrorCodes, isKimiError } from '@moonshot-ai/kimi-code-sdk'; + +export function isSessionOccupiedError(error: unknown): boolean { + return isKimiError(error) && error.code === ErrorCodes.SESSION_OCCUPIED; +} + +export function isSessionStaleError(error: unknown): boolean { + return isKimiError(error) && error.code === ErrorCodes.SESSION_STALE; +} + +export function occupiedHolderClientId(error: unknown): string { + if (!isKimiError(error)) return 'unknown'; + const details = error.details as { holder?: { clientIdentity?: string } } | null | undefined; + return details?.holder?.clientIdentity ?? 'unknown'; +} diff --git a/apps/kimi-code/src/tui/utils/sticky-user-message.ts b/apps/kimi-code/src/tui/utils/sticky-user-message.ts new file mode 100644 index 000000000..434f98612 --- /dev/null +++ b/apps/kimi-code/src/tui/utils/sticky-user-message.ts @@ -0,0 +1,149 @@ +import type { Component } from '@moonshot-ai/pi-tui'; + +import type { GutterLayout } from '#/tui/components/chrome/gutter-container'; +import { + firstContentLineIndex, + userMessageLineHeights, +} from '#/tui/components/messages/user-message'; +import { getTranscriptComponentEntry } from '#/tui/utils/transcript-component-metadata'; + +export interface StickyUserMessageJudgment { + component: Component; + summary: string; + targetY: number; +} + +interface UserText { + content: string; + offset: number; + lines: string[]; +} + +interface UserAnchor { + component: Component; + firstContentRow: number; + text: UserText; + bullet?: string; +} + +interface MeasuredUser { + component: Component; + text: UserText; + bullet: string | undefined; + width: number; + lineEnds: number[]; + summaryLineCount: number; + summary: string; +} + +export class StickyUserMessageIndex { + private layout: GutterLayout | undefined; + private anchors: UserAnchor[] = []; + private readonly texts = new WeakMap(); + private measured: MeasuredUser | undefined; + + getJudgment( + layout: GutterLayout, + scrollTop: number, + following: boolean, + ): StickyUserMessageJudgment | null { + if (this.layout !== layout) this.updateLayout(layout); + // Header height + content padding is always one row. Use body coordinates + // so the pin threshold does not depend on whether the pill was visible. + const top = scrollTop - 1; + let anchor: UserAnchor | undefined; + if (following) { + anchor = this.anchors.at(-1); + if (!anchor || anchor.firstContentRow >= top) return null; + } else { + let low = 0; + let high = this.anchors.length; + while (low < high) { + const middle = low + Math.floor((high - low) / 2); + if (this.anchors[middle]!.firstContentRow < top) low = middle + 1; + else high = middle; + } + // Let the actual message occupy the top row, including search highlights. + if (this.anchors[low]?.firstContentRow === top) return null; + anchor = this.anchors[low - 1]; + if (!anchor) return null; + } + + let measured = this.measured; + if ( + !measured || + measured.component !== anchor.component || + measured.text !== anchor.text || + measured.bullet !== anchor.bullet || + measured.width !== layout.contentWidth + ) { + let rows = 0; + measured = { + component: anchor.component, + text: anchor.text, + bullet: anchor.bullet, + width: layout.contentWidth, + lineEnds: userMessageLineHeights( + anchor.text.content, + layout.contentWidth, + anchor.bullet, + ).map((height) => { + rows += Math.max(1, height); + return rows; + }), + summaryLineCount: 0, + summary: '', + }; + this.measured = measured; + } + + const rowsOut = scrollTop - anchor.firstContentRow; + let low = 0; + let high = measured.lineEnds.length; + while (low < high) { + const middle = low + Math.floor((high - low) / 2); + if (measured.lineEnds[middle]! <= rowsOut) low = middle + 1; + else high = middle; + } + const lineCount = Math.max(1, low); + if (lineCount !== measured.summaryLineCount) { + measured.summary = anchor.text.lines + .slice(0, lineCount) + .join(' ') + .replaceAll(/\s+/g, ' ') + .trim(); + measured.summaryLineCount = lineCount; + } + return { + component: anchor.component, + summary: measured.summary, + targetY: anchor.firstContentRow + 1, + }; + } + + private updateLayout(layout: GutterLayout): void { + this.layout = layout; + this.anchors = []; + let y = 0; + for (const { component, height } of layout.children) { + const entryY = y; + y += height; + const entry = getTranscriptComponentEntry(component); + if (height === 0 || entry?.kind !== 'user' || entry.bullet === '') continue; + let text = this.texts.get(component); + if (!text || text.content !== entry.content) { + const lines = entry.content.split(/\r?\n/); + const first = firstContentLineIndex(lines); + text = { content: entry.content, offset: 1 + first, lines: lines.slice(first) }; + this.texts.set(component, text); + } + if (text.lines.length === 0) continue; + this.anchors.push({ + component, + firstContentRow: entryY + Math.min(text.offset, height), + text, + bullet: entry.bullet, + }); + } + } +} diff --git a/apps/kimi-code/src/tui/utils/survey-policy.ts b/apps/kimi-code/src/tui/utils/survey-policy.ts index 5e82041d2..73d0f62a3 100644 --- a/apps/kimi-code/src/tui/utils/survey-policy.ts +++ b/apps/kimi-code/src/tui/utils/survey-policy.ts @@ -1,378 +1,31 @@ +import { SURVEY_MIN_OPTIONS_WIDTH, surveyMinTotalHeight } from '../constant/survey'; -import type { SurveyPopupConfig } from '#/utils/survey-popup-config'; - -import { - SURVEY_IDLE_STABILITY_MS, - SURVEY_MIN_OPTIONS_WIDTH, - surveyMinTotalHeight, -} from '../constant/survey'; - -export type SurveyKind = 'session' | 'long_context'; - -export type SurveyGateSkipReason = - | 'mount-roll-consumed' - | 'survey-active' - | 'turn-in-progress' - | 'idle-too-short' +export type SurveyUiVetoReason = | 'ordered-list-ambiguity' | 'prompt-active' | 'editor-bash-active' | 'editor-autocomplete-active' | 'external-editor-active' | 'terminal-too-narrow' - | 'terminal-too-short' - | 'feature-disabled' - | 'telemetry-disabled' - | 'model-gated' - | 'warmup' - | 'pacing' - | 'threshold-invalid' - | 'below-threshold' - | 'sampled-out' - | 'global-cooldown'; + | 'terminal-too-short'; -export interface SharedArmGateInput { - readonly phase: SurveyPhase; - readonly turnInProgress: boolean; - readonly idleForMs: number; +export interface SurveyUiVetoInput { + readonly lastUserMessageStartsOrderedList: boolean; readonly promptActive: boolean; readonly editorBashActive: boolean; readonly editorAutocompleteActive: boolean; readonly externalEditorActive: boolean; readonly terminalWidth: number; readonly terminalHeight: number; - readonly feedbackSurveyDisabled: boolean; - readonly telemetryDisabled: boolean; - readonly currentModel: string; - readonly lastUserMessageStartsOrderedList: boolean; } -export interface SessionArmGateInput extends SharedArmGateInput { - readonly mountedForMs: number; - readonly userTurnsSinceMount: number; - readonly msSinceLastShown: number | undefined; - readonly userTurnsSinceLastShown: number | undefined; - readonly sample: number; - readonly msSinceGlobalLastShown: number | undefined; -} - -export interface LongContextArmGateInput extends SharedArmGateInput { - readonly cumulativeTokens: number; - readonly virtualContextTokens: number; - readonly mountRollConsumed: boolean; - readonly drawMountRoll: () => number; -} - -export interface SurveyGateInput { - readonly session: SessionArmGateInput; - readonly longContext: LongContextArmGateInput; - readonly config: SurveyPopupConfig; -} - -export type SurveyGateVerdict = - | { - readonly show: true; - readonly survey: SurveyKind; - readonly longContextRollConsumed?: boolean; - } - | { - readonly show: false; - readonly reason: SurveyGateSkipReason; - readonly longContextRollConsumed?: boolean; - }; - -function modelGatePasses(onForModels: readonly string[], currentModel: string): boolean { - if (onForModels.length === 0) return false; - if (onForModels.includes('*')) return true; - return onForModels.includes(currentModel); -} - -function evaluateSessionArm(input: SurveyGateInput): SurveyGateVerdict { - const { session, config } = input; - if (session.phase !== 'closed') return { show: false, reason: 'survey-active' }; - if (session.turnInProgress) return { show: false, reason: 'turn-in-progress' }; - if (session.idleForMs < SURVEY_IDLE_STABILITY_MS) { - return { show: false, reason: 'idle-too-short' }; - } - if (session.lastUserMessageStartsOrderedList) { - return { show: false, reason: 'ordered-list-ambiguity' }; - } - if (session.promptActive) return { show: false, reason: 'prompt-active' }; - if (session.editorBashActive) return { show: false, reason: 'editor-bash-active' }; - if (session.editorAutocompleteActive) { - return { show: false, reason: 'editor-autocomplete-active' }; - } - if (session.externalEditorActive) { - return { show: false, reason: 'external-editor-active' }; - } - if (session.terminalWidth < SURVEY_MIN_OPTIONS_WIDTH) { - return { show: false, reason: 'terminal-too-narrow' }; - } - if (session.terminalHeight < surveyMinTotalHeight(session.terminalWidth)) { - return { show: false, reason: 'terminal-too-short' }; - } - if (session.feedbackSurveyDisabled) return { show: false, reason: 'feature-disabled' }; - if (session.telemetryDisabled) return { show: false, reason: 'telemetry-disabled' }; - if (!modelGatePasses(config.on_for_models, session.currentModel)) { - return { show: false, reason: 'model-gated' }; - } - if (session.msSinceLastShown === undefined) { - if ( - session.mountedForMs < config.min_time_before_feedback_ms || - session.userTurnsSinceMount < config.min_user_turns_before_feedback - ) { - return { show: false, reason: 'warmup' }; - } - } else if ( - session.msSinceLastShown < config.min_time_between_feedback_ms || - (session.userTurnsSinceLastShown ?? 0) < config.min_user_turns_between_feedback - ) { - return { show: false, reason: 'pacing' }; - } - if (session.sample >= config.probability) return { show: false, reason: 'sampled-out' }; - if ( - session.msSinceGlobalLastShown !== undefined && - session.msSinceGlobalLastShown < config.min_time_between_global_feedback_ms - ) { - return { show: false, reason: 'global-cooldown' }; - } - return { show: true, survey: 'session' }; -} - -export function evaluateLongContextArm(input: SurveyGateInput): SurveyGateVerdict { - const { longContext, config } = input; - if (longContext.mountRollConsumed) return { show: false, reason: 'mount-roll-consumed' }; - if (longContext.phase !== 'closed') return { show: false, reason: 'survey-active' }; - if (longContext.turnInProgress) return { show: false, reason: 'turn-in-progress' }; - if (longContext.idleForMs < SURVEY_IDLE_STABILITY_MS) { - return { show: false, reason: 'idle-too-short' }; - } - if (longContext.lastUserMessageStartsOrderedList) { - return { show: false, reason: 'ordered-list-ambiguity' }; - } - if (longContext.promptActive) return { show: false, reason: 'prompt-active' }; - if (longContext.editorBashActive) return { show: false, reason: 'editor-bash-active' }; - if (longContext.editorAutocompleteActive) { - return { show: false, reason: 'editor-autocomplete-active' }; - } - if (longContext.externalEditorActive) { - return { show: false, reason: 'external-editor-active' }; - } - if (longContext.terminalWidth < SURVEY_MIN_OPTIONS_WIDTH) { - return { show: false, reason: 'terminal-too-narrow' }; - } - if (longContext.terminalHeight < surveyMinTotalHeight(longContext.terminalWidth)) { - return { show: false, reason: 'terminal-too-short' }; - } - if (longContext.feedbackSurveyDisabled) return { show: false, reason: 'feature-disabled' }; - if (longContext.telemetryDisabled) return { show: false, reason: 'telemetry-disabled' }; - if (!modelGatePasses(config.on_for_models, longContext.currentModel)) { - return { show: false, reason: 'model-gated' }; - } - if (!(config.long_context_survey_threshold > 0)) { - return { show: false, reason: 'threshold-invalid' }; - } - const counter = - config.long_context_trigger_mode === 'cumulative' - ? longContext.cumulativeTokens - : longContext.virtualContextTokens; - if (counter < config.long_context_survey_threshold) { - return { show: false, reason: 'below-threshold' }; - } - if (longContext.drawMountRoll() >= config.long_context_probability) { - return { show: false, reason: 'sampled-out', longContextRollConsumed: true }; - } - return { show: true, survey: 'long_context', longContextRollConsumed: true }; -} - -export function evaluateSurveyGate(input: SurveyGateInput): SurveyGateVerdict { - const longContext = evaluateLongContextArm(input); - if (longContext.show) return longContext; - const session = evaluateSessionArm(input); - if (longContext.longContextRollConsumed === true) { - return { ...session, longContextRollConsumed: true }; - } - return session; -} - -export type SurveyPhase = 'closed' | 'open' | 'pending' | 'thanks'; - -export type SurveyResponse = 'bad' | 'fine' | 'good' | 'dismissed'; - -export type SurveyEventType = 'appeared' | 'responded' | 'abandoned'; - -export interface SurveyAppearance { - readonly survey: SurveyKind; - readonly appearanceId: string; - readonly appearanceIndex: number; -} - -export interface SurveyMachineState { - readonly phase: SurveyPhase; - readonly appearance: SurveyAppearance | undefined; - readonly response: SurveyResponse | undefined; -} - -export const SURVEY_MACHINE_CLOSED: SurveyMachineState = { - phase: 'closed', - appearance: undefined, - response: undefined, -}; - -const SURVEY_PRIORITY: Record = { session: 0, long_context: 1 }; - -export type SurveyMachineAction = - | { readonly type: 'open'; readonly appearance: SurveyAppearance } - | { readonly type: 'select'; readonly response: 'bad' | 'fine' | 'good' } - | { readonly type: 'dismiss' } - | { readonly type: 'undo' } - | { readonly type: 'settle' } - | { readonly type: 'thanks-elapsed' } - | { readonly type: 'abandon' } - | { readonly type: 'close-silently' }; - -export type SurveyMachineEffect = - | { - readonly type: 'report'; - readonly eventType: SurveyEventType; - readonly response?: SurveyResponse; - } - | { readonly type: 'schedule'; readonly timer: 'pending-settle' | 'thanks-close' }; - -export interface SurveyMachineTransition { - readonly state: SurveyMachineState; - readonly effects: readonly SurveyMachineEffect[]; -} - -const NO_EFFECTS: readonly SurveyMachineEffect[] = []; - -function noTransition(state: SurveyMachineState): SurveyMachineTransition { - return { state, effects: NO_EFFECTS }; -} - -export function surveyMachineReduce( - state: SurveyMachineState, - action: SurveyMachineAction, -): SurveyMachineTransition { - switch (action.type) { - case 'open': { - if (state.phase === 'closed') { - return { - state: { phase: 'open', appearance: action.appearance, response: undefined }, - effects: [{ type: 'report', eventType: 'appeared' }], - }; - } - if (state.phase !== 'open' || state.appearance === undefined) { - return noTransition(state); - } - if (SURVEY_PRIORITY[action.appearance.survey] <= SURVEY_PRIORITY[state.appearance.survey]) { - return noTransition(state); - } - return { - state: { phase: 'open', appearance: action.appearance, response: undefined }, - effects: [{ type: 'report', eventType: 'appeared' }], - }; - } - case 'select': { - if (state.phase !== 'open') return noTransition(state); - return { - state: { ...state, phase: 'pending', response: action.response }, - effects: [{ type: 'schedule', timer: 'pending-settle' }], - }; - } - case 'dismiss': { - if (state.phase !== 'open') return noTransition(state); - return { - state: SURVEY_MACHINE_CLOSED, - effects: [{ type: 'report', eventType: 'responded', response: 'dismissed' }], - }; - } - case 'undo': { - if (state.phase !== 'pending') return noTransition(state); - return { - state: { ...state, phase: 'open', response: undefined }, - effects: NO_EFFECTS, - }; - } - case 'settle': { - if (state.phase !== 'pending' || state.response === undefined) { - return noTransition(state); - } - return { - state: { ...state, phase: 'thanks' }, - effects: [ - { type: 'report', eventType: 'responded', response: state.response }, - { type: 'schedule', timer: 'thanks-close' }, - ], - }; - } - case 'thanks-elapsed': { - if (state.phase !== 'thanks') return noTransition(state); - return { state: SURVEY_MACHINE_CLOSED, effects: NO_EFFECTS }; - } - case 'abandon': { - if (state.phase !== 'open') return noTransition(state); - return { - state: SURVEY_MACHINE_CLOSED, - effects: [{ type: 'report', eventType: 'abandoned' }], - }; - } - case 'close-silently': { - if (state.phase === 'closed') return noTransition(state); - if (state.phase === 'pending' && state.response !== undefined) { - return { - state: SURVEY_MACHINE_CLOSED, - effects: [{ type: 'report', eventType: 'responded', response: state.response }], - }; - } - return { state: SURVEY_MACHINE_CLOSED, effects: NO_EFFECTS }; - } - } -} - -export const SURVEY_EVENT_NAMES: Record = { - session: 'feedback_survey', - long_context: 'long_context_survey', -}; - -export interface SurveyEventCoreFields { - readonly event_type: SurveyEventType; - readonly appearance_id: string; - readonly appearance_index: number; - readonly response?: SurveyResponse; -} - -export interface SurveyEventEnvironmentFields { - readonly current_model: string; - readonly user_turn_count: number; - readonly cumulative_tokens: number; - readonly virtual_context_tokens: number; - readonly tool_call_count: number; - readonly compaction_count: number; - readonly permission_mode: string; - readonly thinking_effort: string; -} - -export function buildSurveyEventProperties( - core: SurveyEventCoreFields, - environment: SurveyEventEnvironmentFields, - config: SurveyPopupConfig, -): Record { - return { - event_type: core.event_type, - appearance_id: core.appearance_id, - appearance_index: core.appearance_index, - response: core.response, - ...environment, - config_probability: config.probability, - config_on_for_models: config.on_for_models.join(','), - config_min_time_before_feedback_ms: config.min_time_before_feedback_ms, - config_min_user_turns_before_feedback: config.min_user_turns_before_feedback, - config_min_time_between_feedback_ms: config.min_time_between_feedback_ms, - config_min_user_turns_between_feedback: config.min_user_turns_between_feedback, - config_min_time_between_global_feedback_ms: config.min_time_between_global_feedback_ms, - config_long_context_survey_threshold: config.long_context_survey_threshold, - config_long_context_probability: config.long_context_probability, - config_long_context_trigger_mode: config.long_context_trigger_mode, - }; +export function surveyUiVeto(input: SurveyUiVetoInput): SurveyUiVetoReason | undefined { + if (input.lastUserMessageStartsOrderedList) return 'ordered-list-ambiguity'; + if (input.promptActive) return 'prompt-active'; + if (input.editorBashActive) return 'editor-bash-active'; + if (input.editorAutocompleteActive) return 'editor-autocomplete-active'; + if (input.externalEditorActive) return 'external-editor-active'; + if (input.terminalWidth < SURVEY_MIN_OPTIONS_WIDTH) return 'terminal-too-narrow'; + if (input.terminalHeight < surveyMinTotalHeight(input.terminalWidth)) return 'terminal-too-short'; + return undefined; } diff --git a/apps/kimi-code/src/utils/cache-hint-config.ts b/apps/kimi-code/src/utils/cache-hint-config.ts index 4909970da..6433aa05f 100644 --- a/apps/kimi-code/src/utils/cache-hint-config.ts +++ b/apps/kimi-code/src/utils/cache-hint-config.ts @@ -1,11 +1,7 @@ +import type { ClientConfigFetchOptions } from '@moonshot-ai/kimi-code-product/client-configs/node'; import { z } from 'zod'; -import { - getClientConfig, - peekClientConfig, - resetClientConfigCache, - type ClientConfigFetchOptions, -} from '#/utils/client-configs'; +import { clientConfigs } from '#/utils/client-configs'; /** The cache-hint rules are one named config on the client-configs endpoint. */ const CONFIG_NAME = 'estimated_cache_duration'; @@ -31,7 +27,7 @@ export type CacheHintConfigFetchOptions = ClientConfigFetchOptions; export async function getCacheHintConfig( options: CacheHintConfigFetchOptions = {}, ): Promise { - return getClientConfig(CONFIG_NAME, cacheHintConfigSchema, options); + return clientConfigs.get(CONFIG_NAME, cacheHintConfigSchema, options); } /** Fire-and-forget refresh, e.g. on new-session creation. Never throws. */ @@ -43,10 +39,10 @@ export function refreshCacheHintConfigInBackground( /** Synchronous peek at the fresh cache; undefined when missing or stale. */ export function peekCacheHintConfig(now?: number): CacheHintConfig | undefined { - return peekClientConfig(CONFIG_NAME, cacheHintConfigSchema, now); + return clientConfigs.peek(CONFIG_NAME, cacheHintConfigSchema, now); } /** Test hook: drop the in-process cache. */ export function resetCacheHintConfigCache(): void { - resetClientConfigCache(CONFIG_NAME); + clientConfigs.reset(CONFIG_NAME); } diff --git a/apps/kimi-code/src/utils/client-configs.ts b/apps/kimi-code/src/utils/client-configs.ts index b1955d855..4de2ea5d7 100644 --- a/apps/kimi-code/src/utils/client-configs.ts +++ b/apps/kimi-code/src/utils/client-configs.ts @@ -1,201 +1,12 @@ import { join } from 'node:path'; -import { z } from 'zod'; +import { ClientConfigClient } from '@moonshot-ai/kimi-code-product/client-configs/node'; import { getCacheDir } from '#/utils/paths'; -import { readJsonFile, writeJsonFile } from '#/utils/persistence'; -import { currentKimiProfile, currentKimiRegion } from '#/utils/region'; +import { currentKimiRegion } from '#/utils/region'; -/** - * Generic client for the public client-configs endpoint: - * `POST {baseUrl}/client_configs {"name": ""}` returns - * `{ name, config: }`, where the payload shape is config-specific - * and validated by the caller-supplied schema. - * - * Each named config is cached for a day, in two layers: an in-process map - * (the only layer the synchronous peek can see) and a JSON file under the - * CLI cache dir (survives restarts, so the TTL holds across processes). An - * entry missing/stale in both layers triggers a refetch. Any failure - * resolves to `undefined` — callers treat that as "config unavailable" and - * degrade quietly. - */ -const CLIENT_CONFIGS_PATH = '/client_configs'; - -/** Cache validity per config name: 1 day. */ -const CONFIG_CACHE_TTL_MS = 24 * 60 * 60 * 1000; -const FETCH_TIMEOUT_MS = 5000; - -/** The endpoint's API base: the env override keeps winning (custom/internal - envs); otherwise the active region profile, so a global login's token is - not sent to the mainland-China deployment. */ -function clientConfigsBaseUrl(): string { - return (process.env['KIMI_CODE_BASE_URL'] ?? currentKimiProfile().baseUrl).replace(/\/+$/, ''); -} - -/** Cache entries are partitioned by region so a login switch never serves - the other deployment's cached config. */ -function cacheKeyFor(name: string): string { - return `${currentKimiRegion()}:${name}`; -} - -export interface ClientConfigFetchOptions { - /** Managed OAuth token; sent as Bearer when present. The endpoint is - * public, so anonymous fetches work too. */ - readonly accessToken?: string; - /** Test hook. */ - readonly fetchImpl?: typeof fetch; - /** Test hook. */ - readonly now?: number; - /** Test hook: override the cache file path, or null to skip the disk - * layer entirely. */ - readonly cacheFile?: string | null; -} - -const cache = new Map(); - -const cacheFileEnvelopeSchema = z.object({ - version: z.literal(1), - fetchedAt: z.number(), - config: z.unknown(), +export const clientConfigs = new ClientConfigClient({ + region: currentKimiRegion, + baseUrlOverride: () => process.env['KIMI_CODE_BASE_URL'], + cacheDir: () => join(getCacheDir(), 'client-configs'), }); - -function cacheFileFor(name: string, options: ClientConfigFetchOptions): string | undefined { - if (options.cacheFile === null) return undefined; - if (options.cacheFile !== undefined) return options.cacheFile; - return join(getCacheDir(), 'client-configs', `${cacheKeyFor(name).replaceAll(/[^a-zA-Z0-9_-]/g, '_')}.json`); -} - -/** Fresh disk entry, or undefined when missing/stale/invalid. */ -async function readDiskCache( - file: string, - schema: S, - now: number, -): Promise<{ readonly fetchedAt: number; readonly data: z.infer } | undefined> { - let envelope: z.infer; - try { - // The sentinel's fetchedAt=0 reads as stale, i.e. missing. - envelope = await readJsonFile(file, cacheFileEnvelopeSchema, { - version: 1, - fetchedAt: 0, - config: undefined, - }); - } catch { - return undefined; // malformed cache file — treat as missing - } - if (now - envelope.fetchedAt >= CONFIG_CACHE_TTL_MS) return undefined; - const parsed = schema.safeParse(envelope.config); - return parsed.success - ? { fetchedAt: envelope.fetchedAt, data: parsed.data as z.infer } - : undefined; -} - -/** Best-effort persist; a cache write failure must never break the caller. */ -async function writeDiskCache(file: string, data: unknown, now: number): Promise { - try { - await writeJsonFile(file, cacheFileEnvelopeSchema, { - version: 1, - fetchedAt: now, - config: data, - }); - } catch { - // A cache that cannot be written just means the next process refetches. - } -} - -/** Returns the named client config, preferring the caches over the network. */ -export async function getClientConfig( - name: string, - schema: S, - options: ClientConfigFetchOptions = {}, -): Promise | undefined> { - const now = options.now ?? Date.now(); - const key = cacheKeyFor(name); - const hit = cache.get(key); - if (hit !== undefined && now - hit.fetchedAt < CONFIG_CACHE_TTL_MS) { - return hit.data as z.infer; - } - const file = cacheFileFor(name, options); - if (file !== undefined) { - const diskHit = await readDiskCache(file, schema, now); - if (diskHit !== undefined) { - // Warm the in-process layer with the original fetch time, so the entry - // still expires a day after it was actually fetched. - cache.set(key, diskHit); - return diskHit.data; - } - } - const data = await fetchClientConfig(name, schema, options); - if (data === undefined) return undefined; - cache.set(key, { fetchedAt: now, data }); - if (file !== undefined) await writeDiskCache(file, data, now); - return data; -} - -/** Fire-and-forget refresh of a named config. Never throws. */ -export function refreshClientConfigInBackground( - name: string, - schema: S, - options: ClientConfigFetchOptions = {}, -): void { - void getClientConfig(name, schema, options).catch(() => undefined); -} - -/** - * Synchronous peek at the fresh in-process cache; undefined when missing or - * stale. Only sees the in-process layer — the disk layer is read by the - * async `getClientConfig`, which warms this layer. - */ -export function peekClientConfig( - name: string, - schema: S, - now: number = Date.now(), -): z.infer | undefined { - const hit = cache.get(cacheKeyFor(name)); - if (hit === undefined || now - hit.fetchedAt >= CONFIG_CACHE_TTL_MS) return undefined; - const parsed = schema.safeParse(hit.data); - return parsed.success ? (parsed.data as z.infer) : undefined; -} - -export async function fetchClientConfig( - name: string, - schema: S, - options: ClientConfigFetchOptions = {}, -): Promise | undefined> { - const fetchFn = options.fetchImpl ?? fetch; - const headers: Record = { - accept: 'application/json', - 'content-type': 'application/json', - }; - if (options.accessToken !== undefined) { - headers['authorization'] = `Bearer ${options.accessToken}`; - } - try { - const response = await fetchFn(`${clientConfigsBaseUrl()}${CLIENT_CONFIGS_PATH}`, { - method: 'POST', - headers, - body: JSON.stringify({ name }), - signal: AbortSignal.timeout(FETCH_TIMEOUT_MS), - }); - if (!response.ok) return undefined; - const body: unknown = await response.json(); - if (typeof body !== 'object' || body === null) return undefined; - const envelope = body as Record; - if (envelope['name'] !== name) return undefined; - const parsed = schema.safeParse(envelope['config']); - return parsed.success ? (parsed.data as z.infer) : undefined; - } catch { - return undefined; - } -} - -/** - * Test hook: drop one or all in-process cached configs. Disk files in tests - * are isolated via the `cacheFile` option. - */ -export function resetClientConfigCache(name?: string): void { - if (name === undefined) { - cache.clear(); - } else { - cache.delete(cacheKeyFor(name)); - } -} diff --git a/apps/kimi-code/src/utils/git/git-status.ts b/apps/kimi-code/src/utils/git/git-status.ts index 56b7f0af6..380015fec 100644 --- a/apps/kimi-code/src/utils/git/git-status.ts +++ b/apps/kimi-code/src/utils/git/git-status.ts @@ -1,21 +1,29 @@ /** - * Cached git branch + working-tree status for the footer/statusline. + * Cached git branch and working-tree status for the footer. * - * Branch name refreshes every 5s, porcelain status every 15s. Branch - * and status reads stay synchronous with short timeouts. Pull request - * lookup uses an async cache so a slow `gh pr view` never blocks - * footer rendering. + * getStatus() only reads the cache. The first read, refresh(), a HEAD change, + * and a read past the 30s status TTL schedule a refresh. The git process + * starts on a later turn, not on the caller's stack, and not when the cache + * is constructed. HEAD is polled every 2 seconds. Pull request lookup stays + * async and never blocks a read. */ -import { execFile, spawnSync } from 'node:child_process'; +import { execFile } from 'node:child_process'; +import { join } from 'node:path'; + +import { FSWatcher } from 'chokidar'; import { resolveCommandPath } from '#/utils/process/resolve-command'; -const BRANCH_TTL_MS = 5_000; -const STATUS_TTL_MS = 15_000; +const STATUS_TTL_MS = 30_000; +const HEAD_POLL_INTERVAL_MS = 2_000; const PULL_REQUEST_TTL_MS = 60_000; -const SPAWN_TIMEOUT_MS = 500; +const SPAWN_TIMEOUT_MS = 2_000; const PR_SPAWN_TIMEOUT_MS = 5_000; +const GIT_MAX_BUFFER = 4 * 1024 * 1024; + +const AHEAD_BEHIND_RE = /\[(?:ahead (\d+))?(?:, )?(?:behind (\d+))?\]/; +const UNBORN_PREFIXES = ['No commits yet on ', 'Initial commit on ']; export interface GitStatus { readonly branch: string; @@ -33,26 +41,26 @@ export interface PullRequestInfo { } export interface GitStatusCache { - /** Returns current status, or `null` when workDir is not a git repo. */ + /** Returns the last status, or `null` when it is not available yet or this is not a git repo. */ getStatus(): GitStatus | null; + /** Refresh now, ignoring the status TTL. No-op when a refresh is already running; one follow-up runs after it. */ + refresh(): void; + dispose(): void; } export interface GitStatusCacheOptions { readonly onChange?: () => void; } -interface BranchState { - value: string | null; - fetchedAt: number; -} - interface StatusState { + branch: string | null; dirty: boolean; ahead: number; behind: number; diffAdded: number; diffDeleted: number; fetchedAt: number; + loaded: boolean; } interface PullRequestState { @@ -63,26 +71,37 @@ interface PullRequestState { requestId: number; } -const AHEAD_BEHIND_RE = /\[(?:ahead (\d+))?(?:, )?(?:behind (\d+))?\]/; +interface GitOutput { + readonly code: number; + readonly stdout: string; +} + +const EMPTY_STATUS: StatusState = { + branch: null, + dirty: false, + ahead: 0, + behind: 0, + diffAdded: 0, + diffDeleted: 0, + fetchedAt: 0, + loaded: false, +}; export function createGitStatusCache( workDir: string, options: GitStatusCacheOptions = {}, ): GitStatusCache { - // This cache is constructed before the workspace trust gate, so the git - // binary must be resolved through PATH to an absolute path — a bare name - // would let cmd.exe pick up a `git.exe` planted in the workspace. const git = resolveCommandPath('git', workDir); - const isRepo = git !== undefined && detectGitRepo(git, workDir); - let branch: BranchState = { value: null, fetchedAt: 0 }; - let status: StatusState = { - dirty: false, - ahead: 0, - behind: 0, - diffAdded: 0, - diffDeleted: 0, - fetchedAt: 0, - }; + let disposed = false; + let epoch = 0; + let repoDetected = false; + let isRepo = false; + let inFlight = false; + let pendingForce = false; + let refreshQueued = false; + let queuedForce = false; + let headWatcher: FSWatcher | null = null; + let status: StatusState = EMPTY_STATUS; let pullRequest: PullRequestState = { value: null, branch: null, @@ -91,33 +110,193 @@ export function createGitStatusCache( requestId: 0, }; - return { + const cache: GitStatusCache = { getStatus: () => { - if (!isRepo || git === undefined) return null; - + if (git === undefined || disposed) return null; + if (repoDetected && !isRepo) return null; const now = Date.now(); - if (now - branch.fetchedAt >= BRANCH_TTL_MS) { - branch = { value: readBranch(git, workDir), fetchedAt: now }; + if (!repoDetected || now - status.fetchedAt >= STATUS_TTL_MS) { + requestRefresh(false); } - if (branch.value === null) return null; - - if (now - status.fetchedAt >= STATUS_TTL_MS) { - status = { ...readStatus(git, workDir), fetchedAt: now }; + if (status.loaded && status.branch !== null) { + refreshPullRequestIfNeeded(status.branch, now); + } + return currentStatus(); + }, + refresh: () => { + requestRefresh(true); + }, + dispose: () => { + disposed = true; + epoch += 1; + inFlight = false; + pendingForce = false; + refreshQueued = false; + queuedForce = false; + const watcher = headWatcher; + headWatcher = null; + if (watcher !== null) { + void watcher.close().catch(() => undefined); } - refreshPullRequestIfNeeded(branch.value, now); - - return { - branch: branch.value, - dirty: status.dirty, - ahead: status.ahead, - behind: status.behind, - diffAdded: status.diffAdded, - diffDeleted: status.diffDeleted, - pullRequest: pullRequest.branch === branch.value ? pullRequest.value : null, - }; }, }; + return cache; + + function requestRefresh(force: boolean): void { + if (force) queuedForce = true; + if (refreshQueued) return; + refreshQueued = true; + queueMicrotask(() => { + refreshQueued = false; + const runForce = queuedForce; + queuedForce = false; + void runRefresh(runForce); + }); + } + + async function runRefresh(force: boolean): Promise { + if (disposed || git === undefined) return; + if (repoDetected && !isRepo) return; + if (inFlight) { + if (force) pendingForce = true; + return; + } + if (!force && repoDetected && Date.now() - status.fetchedAt < STATUS_TTL_MS) return; + + inFlight = true; + const epochAtStart = epoch; + try { + if (!repoDetected) { + await probeRepo(epochAtStart); + } + if (disposed || epoch !== epochAtStart || !isRepo) return; + await loadStatus(epochAtStart); + } finally { + if (epoch === epochAtStart) { + inFlight = false; + if (pendingForce && !disposed) { + pendingForce = false; + void runRefresh(true); + } + } + } + } + + async function probeRepo(epochAtStart: number): Promise { + if (git === undefined) return; + const result = await execGit(git, ['-C', workDir, 'rev-parse', '--absolute-git-dir']); + if (disposed || epoch !== epochAtStart) return; + repoDetected = true; + if (result === null || result.code !== 0) { + isRepo = false; + return; + } + const gitDir = result.stdout.trim(); + if (gitDir.length === 0) { + isRepo = false; + return; + } + isRepo = true; + startHeadWatch(join(gitDir, 'HEAD')); + } + + function startHeadWatch(headPath: string): void { + if (disposed || headWatcher !== null) return; + try { + const watcher = new FSWatcher({ + ignoreInitial: true, + persistent: false, + usePolling: true, + interval: HEAD_POLL_INTERVAL_MS, + ignorePermissionErrors: true, + }); + const onHead = (): void => { + requestRefresh(true); + }; + watcher.on('add', onHead); + watcher.on('change', onHead); + watcher.on('unlink', onHead); + watcher.on('error', () => undefined); + watcher.add(headPath); + headWatcher = watcher; + } catch { + // Turn end and the status TTL still refresh if watching is unavailable. + } + } + + async function loadStatus(epochAtStart: number): Promise { + if (git === undefined) return; + const result = await execGit(git, ['-C', workDir, 'status', '--porcelain', '-b']); + if (disposed || epoch !== epochAtStart) return; + if (result === null || result.code !== 0) { + status = { ...status, fetchedAt: Date.now() }; + return; + } + + const parsed = parsePorcelain(result.stdout); + if (parsed === null) { + status = { ...status, fetchedAt: Date.now() }; + return; + } + if (parsed.branch === null) { + publishStatus({ + branch: null, + dirty: false, + ahead: 0, + behind: 0, + diffAdded: 0, + diffDeleted: 0, + fetchedAt: Date.now(), + loaded: true, + }); + return; + } + + let diffAdded = 0; + let diffDeleted = 0; + if (parsed.dirty) { + const diff = await execGit(git, ['-C', workDir, 'diff', '--numstat', 'HEAD', '--']); + if (disposed || epoch !== epochAtStart) return; + if (diff !== null && diff.code === 0) { + const counts = parseDiffStats(diff.stdout); + diffAdded = counts.added; + diffDeleted = counts.deleted; + } + } + + publishStatus({ + branch: parsed.branch, + dirty: parsed.dirty, + ahead: parsed.ahead, + behind: parsed.behind, + diffAdded, + diffDeleted, + fetchedAt: Date.now(), + loaded: true, + }); + refreshPullRequestIfNeeded(parsed.branch, Date.now()); + } + + function publishStatus(next: StatusState): void { + const changed = !sameStatus(status, next); + status = next; + if (changed) options.onChange?.(); + } + + function currentStatus(): GitStatus | null { + if (!status.loaded || status.branch === null) return null; + return { + branch: status.branch, + dirty: status.dirty, + ahead: status.ahead, + behind: status.behind, + diffAdded: status.diffAdded, + diffDeleted: status.diffDeleted, + pullRequest: pullRequest.branch === status.branch ? pullRequest.value : null, + }; + } + function refreshPullRequestIfNeeded(branchName: string, now: number): void { if (pullRequest.pendingBranch === branchName) return; const fetchedAt = pullRequest.branch === branchName ? pullRequest.fetchedAt : 0; @@ -133,7 +312,7 @@ export function createGitStatusCache( }; void readPullRequest(workDir).then((value) => { - if (pullRequest.requestId !== requestId) return; + if (disposed || pullRequest.requestId !== requestId) return; const previous = pullRequest.branch === branchName ? pullRequest.value : null; const changed = !samePullRequest(previous, value); @@ -149,100 +328,89 @@ export function createGitStatusCache( } } -function detectGitRepo(git: string, workDir: string): boolean { - try { - const result = spawnSync(git, ['-C', workDir, 'rev-parse', '--is-inside-work-tree'], { - encoding: 'utf8', - timeout: SPAWN_TIMEOUT_MS, - }); - return result.status === 0 && result.stdout.trim() === 'true'; - } catch { - return false; - } +function execGit(git: string, args: string[]): Promise { + return new Promise((resolve) => { + try { + execFile( + git, + args, + { + encoding: 'utf8', + timeout: SPAWN_TIMEOUT_MS, + maxBuffer: GIT_MAX_BUFFER, + }, + (error, stdout) => { + const output = typeof stdout === 'string' ? stdout : ''; + if (error === null) { + resolve({ code: 0, stdout: output }); + return; + } + const code = (error as { code?: unknown }).code; + if (typeof code === 'number') { + resolve({ code, stdout: output }); + return; + } + resolve(null); + }, + ); + } catch { + resolve(null); + } + }); } -function readBranch(git: string, workDir: string): string | null { - try { - const result = spawnSync(git, ['-C', workDir, 'branch', '--show-current'], { - encoding: 'utf8', - timeout: SPAWN_TIMEOUT_MS, - }); - if (result.status !== 0) return null; - const name = result.stdout.trim(); - return name.length > 0 ? name : null; - } catch { - return null; - } -} - -function readStatus( - git: string, - workDir: string, -): { +function parsePorcelain(stdout: string): { + branch: string | null; dirty: boolean; ahead: number; behind: number; - diffAdded: number; - diffDeleted: number; -} { - try { - const result = spawnSync(git, ['-C', workDir, 'status', '--porcelain', '-b'], { - encoding: 'utf8', - timeout: SPAWN_TIMEOUT_MS, - maxBuffer: 4 * 1024 * 1024, - }); - if (result.status !== 0) { - return { dirty: false, ahead: 0, behind: 0, diffAdded: 0, diffDeleted: 0 }; +} | null { + let header: string | null = null; + let dirty = false; + for (const line of stdout.split('\n')) { + if (line.startsWith('## ')) { + header = line; + } else if (line.trim().length > 0) { + dirty = true; } - - let dirty = false; - let ahead = 0; - let behind = 0; - for (const line of result.stdout.split('\n')) { - if (line.startsWith('## ')) { - const m = AHEAD_BEHIND_RE.exec(line); - if (m) { - ahead = Number.parseInt(m[1] ?? '0', 10) || 0; - behind = Number.parseInt(m[2] ?? '0', 10) || 0; - } - } else if (line.trim().length > 0) { - dirty = true; - } - } - const diff = dirty ? readDiffStats(git, workDir) : { added: 0, deleted: 0 }; - return { - dirty, - ahead, - behind, - diffAdded: diff.added, - diffDeleted: diff.deleted, - }; - } catch { - return { dirty: false, ahead: 0, behind: 0, diffAdded: 0, diffDeleted: 0 }; } + if (header === null) return null; + const parsed = parsePorcelainHeader(header); + if (parsed === null) return null; + return { ...parsed, dirty: parsed.branch !== null && dirty }; } -function readDiffStats(git: string, workDir: string): { added: number; deleted: number } { - try { - const result = spawnSync(git, ['-C', workDir, 'diff', '--numstat', 'HEAD', '--'], { - encoding: 'utf8', - timeout: SPAWN_TIMEOUT_MS, - maxBuffer: 4 * 1024 * 1024, - }); - if (result.status !== 0) return { added: 0, deleted: 0 }; - - let added = 0; - let deleted = 0; - for (const line of result.stdout.split('\n')) { - if (!line) continue; - const [addedText, deletedText] = line.split('\t'); - added += parseDiffNumstatCount(addedText); - deleted += parseDiffNumstatCount(deletedText); +function parsePorcelainHeader(line: string): { branch: string | null; ahead: number; behind: number } | null { + if (!line.startsWith('## ')) return null; + let body = line.slice(3); + const aheadBehind = AHEAD_BEHIND_RE.exec(body); + const ahead = Number.parseInt(aheadBehind?.[1] ?? '0', 10) || 0; + const behind = Number.parseInt(aheadBehind?.[2] ?? '0', 10) || 0; + const bracket = body.indexOf(' ['); + if (bracket >= 0) body = body.slice(0, bracket); + if (body === 'HEAD (no branch)') return { branch: null, ahead: 0, behind: 0 }; + for (const prefix of UNBORN_PREFIXES) { + if (body.startsWith(prefix)) { + body = body.slice(prefix.length); + break; } - return { added, deleted }; - } catch { - return { added: 0, deleted: 0 }; } + const upstream = body.indexOf('...'); + if (upstream >= 0) body = body.slice(0, upstream); + const branch = body.trim(); + return { branch: branch.length > 0 ? branch : null, ahead, behind }; +} + +function parseDiffStats(stdout: string): { added: number; deleted: number } { + let added = 0; + let deleted = 0; + for (const line of stdout.split('\n')) { + if (!line) continue; + const [addedText, deletedText] = line.split('\t'); + added += parseDiffNumstatCount(addedText); + deleted += parseDiffNumstatCount(deletedText); + } + return { added, deleted }; } function parseDiffNumstatCount(value: string | undefined): number { @@ -251,6 +419,18 @@ function parseDiffNumstatCount(value: string | undefined): number { return Number.isFinite(n) && n > 0 ? n : 0; } +function sameStatus(a: StatusState, b: StatusState): boolean { + return ( + a.loaded === b.loaded && + a.branch === b.branch && + a.dirty === b.dirty && + a.ahead === b.ahead && + a.behind === b.behind && + a.diffAdded === b.diffAdded && + a.diffDeleted === b.diffDeleted + ); +} + function readPullRequest(workDir: string): Promise { return new Promise((resolve) => { // Resolve gh through PATH as well — this runs with cwd = workDir, where a diff --git a/apps/kimi-code/src/utils/model-migration-state.ts b/apps/kimi-code/src/utils/model-migration-state.ts new file mode 100644 index 000000000..fe1167220 --- /dev/null +++ b/apps/kimi-code/src/utils/model-migration-state.ts @@ -0,0 +1,40 @@ +import { z } from 'zod'; + +import { getModelMigrationStateFile } from '#/utils/paths'; +import { readJsonFile, writeJsonFile } from '#/utils/persistence'; + +/** + * Records, per source model alias, the target model id a migration prompt was + * already answered for. The prompt returns only when the registry declares a + * different target. + */ +const ModelMigrationStateSchema = z.object({ + version: z.literal(1), + acknowledged: z.record(z.string().min(1), z.string().min(1)), +}); + +export async function readModelMigrationAcknowledgements( + filePath: string = getModelMigrationStateFile(), +): Promise> { + try { + const state = await readJsonFile(filePath, ModelMigrationStateSchema, { + version: 1, + acknowledged: {}, + }); + return state.acknowledged; + } catch { + return {}; + } +} + +export async function acknowledgeModelMigration( + fromAlias: string, + toModel: string, + filePath: string = getModelMigrationStateFile(), +): Promise { + const acknowledged = await readModelMigrationAcknowledgements(filePath); + await writeJsonFile(filePath, ModelMigrationStateSchema, { + version: 1, + acknowledged: { ...acknowledged, [fromAlias]: toModel }, + }); +} diff --git a/apps/kimi-code/src/utils/model-switch-confirm-config.ts b/apps/kimi-code/src/utils/model-switch-confirm-config.ts new file mode 100644 index 000000000..234d37693 --- /dev/null +++ b/apps/kimi-code/src/utils/model-switch-confirm-config.ts @@ -0,0 +1,111 @@ +import { z } from 'zod'; + +import type { ClientConfigFetchOptions } from '@moonshot-ai/kimi-code-product/client-configs/node'; + +import { clientConfigs } from '#/utils/client-configs'; + +const CONFIG_NAME = 'model_switch_confirm'; + +export type ModelSwitchAction = 'new' | 'compact' | 'continue' | 'cancel'; + +/** A string served per locale. The TUI is English-only and always reads the + * `en` arm; `zh` rides along in the payload for the multi-locale desktop + * client. */ +export interface ModelSwitchLocalizedString { + en?: string; + zh?: string; +} + +/** A confirm-dialog gate for one model switch: `from` and `to` are upstream + * model ids (e.g. `kimi-k2.5`), matched exactly — no wildcards. Each is + * either a single id or a list of ids; a list matches when any entry does. + * `hint` optionally overrides the built-in dialog body text for this pair. */ +export interface ModelSwitchRule { + from: string | string[]; + to: string | string[]; + hint?: ModelSwitchLocalizedString; +} + +export interface ModelSwitchConfirmConfig { + enable: boolean; + rules: ModelSwitchRule[]; +} + +/** Fetch/parse failures resolve to this disabled default, i.e. no dialog. */ +export const DEFAULT_MODEL_SWITCH_CONFIRM_CONFIG: ModelSwitchConfirmConfig = { + enable: false, + rules: [], +}; + +const localizedStringSchema = z.object({ + en: z.string().optional(), + zh: z.string().optional(), +}); + +const modelIdListSchema = z.union([z.string(), z.array(z.string()).min(1)]); + +const modelSwitchRuleSchema = z.object({ + from: modelIdListSchema, + to: modelIdListSchema, + hint: localizedStringSchema.optional(), +}); + +const modelSwitchConfirmConfigSchema = z.unknown().transform((raw): ModelSwitchConfirmConfig => { + if (typeof raw !== 'object' || raw === null) return DEFAULT_MODEL_SWITCH_CONFIRM_CONFIG; + const record = raw as Record; + const enable = z.boolean().safeParse(record['enable']); + const rules: ModelSwitchRule[] = []; + if (Array.isArray(record['rules'])) { + for (const entry of record['rules']) { + const parsed = modelSwitchRuleSchema.safeParse(entry); + if (parsed.success) rules.push(parsed.data); + } + } + return { enable: enable.success ? enable.data : false, rules }; +}); + +/** In-process copy of the config. Unlike the other named configs this one is + * never persisted and has no TTL: the TUI refetches it once per process + * startup and the dialog gate reads only this memory copy. */ +let cached: ModelSwitchConfirmConfig | undefined; + +/** Always hits the network and replaces the in-process copy; a failed fetch + * leaves (or resets) the copy to undefined, gating the dialog off. */ +export async function refreshModelSwitchConfirmConfig( + options: ClientConfigFetchOptions = {}, +): Promise { + cached = await clientConfigs.fetch(CONFIG_NAME, modelSwitchConfirmConfigSchema, options); + return cached; +} + +/** Synchronous read of the in-process copy; undefined until the first + * successful refresh of this process. */ +export function peekModelSwitchConfirmConfig(): ModelSwitchConfirmConfig | undefined { + return cached; +} + +/** Test hook: drop the in-process copy. */ +export function resetModelSwitchConfirmConfigCache(): void { + cached = undefined; +} + +/** The first rule matching the (from, to) pair, when the feature is enabled; + * a rule whose from/to is a list matches when any entry does. Undefined + * gates the dialog off. */ +export function matchModelSwitchRule( + config: ModelSwitchConfirmConfig | undefined, + fromModelId: string, + toModelId: string, +): ModelSwitchRule | undefined { + if (config === undefined || !config.enable) return undefined; + const hit = (ids: string | string[], id: string): boolean => + typeof ids === 'string' ? ids === id : ids.includes(id); + return config.rules.find((rule) => hit(rule.from, fromModelId) && hit(rule.to, toModelId)); +} + +/** Resolve the dialog body text for a matched rule: the rule's English arm, + * or undefined when the rule carries no hint — the dialog then shows no body + * line. There is deliberately no built-in fallback copy. */ +export function resolveModelSwitchHint(rule: ModelSwitchRule | undefined): string | undefined { + return rule?.hint?.en; +} diff --git a/apps/kimi-code/src/utils/open-url.ts b/apps/kimi-code/src/utils/open-url.ts index 4112d9c6f..738d6f713 100644 --- a/apps/kimi-code/src/utils/open-url.ts +++ b/apps/kimi-code/src/utils/open-url.ts @@ -1,11 +1,23 @@ import { execFile } from 'node:child_process'; -export function openUrl(url: string): void { +import { resolveCommandPath } from '#/utils/process/resolve-command'; + +export function openUrl(url: string, onError?: (error: Error) => void): void { const command: [string, string[]] = process.platform === 'darwin' ? ['open', [url]] : process.platform === 'win32' - ? ['cmd', ['/c', 'start', '', url]] + ? ['powershell.exe', ['-NoProfile', '-NonInteractive', '-EncodedCommand', Buffer.from( + `try { Start-Process -FilePath '${url.replaceAll("'", "''")}' -ErrorAction Stop } catch { exit 1 }`, + 'utf16le', + ).toString('base64')]] : ['xdg-open', [url]]; - execFile(command[0], command[1], () => {}); + const executable = resolveCommandPath(command[0]); + if (executable === undefined) { + onError?.(new Error(`Cannot find ${command[0]}`)); + return; + } + execFile(executable, command[1], { windowsHide: true }, (error) => { + if (error) onError?.(error); + }); } diff --git a/apps/kimi-code/src/utils/paths.ts b/apps/kimi-code/src/utils/paths.ts index 0b147d1dc..70ce8f427 100644 --- a/apps/kimi-code/src/utils/paths.ts +++ b/apps/kimi-code/src/utils/paths.ts @@ -18,11 +18,11 @@ import { KIMI_CODE_HOME_ENV, KIMI_CODE_INPUT_HISTORY_DIR_NAME, KIMI_CODE_LOG_DIR_NAME, + KIMI_CODE_MODEL_MIGRATION_STATE_FILE_NAME, KIMI_CODE_NATIVE_STAGED_STATE_FILE_NAME, KIMI_CODE_NATIVE_STAGING_DIR_NAME, KIMI_CODE_PLUGIN_UPDATE_NOTICE_STATE_FILE_NAME, KIMI_CODE_RECOMMENDED_EFFORT_STATE_FILE_NAME, - KIMI_CODE_SURVEY_STATE_FILE_NAME, KIMI_CODE_UPDATE_INSTALL_LOCK_FILE_NAME, KIMI_CODE_UPDATE_INSTALL_STATE_FILE_NAME, KIMI_CODE_UPDATE_DIR_NAME, @@ -128,14 +128,15 @@ export function getBannerStateFile(): string { return join(getCacheDir(), KIMI_CODE_BANNER_DIR_NAME, KIMI_CODE_BANNER_STATE_FILE_NAME); } -export function getSurveyStateFile(): string { - return join(getDataDir(), KIMI_CODE_SURVEY_STATE_FILE_NAME); -} export function getRecommendedEffortStateFile(): string { return join(getDataDir(), KIMI_CODE_RECOMMENDED_EFFORT_STATE_FILE_NAME); } +export function getModelMigrationStateFile(): string { + return join(getDataDir(), KIMI_CODE_MODEL_MIGRATION_STATE_FILE_NAME); +} + /** * Return the user input history file for a given working directory. * Layout: `/user-history/.jsonl`. diff --git a/apps/kimi-code/src/utils/process/resolve-command.ts b/apps/kimi-code/src/utils/process/resolve-command.ts index 721342e60..3f0054410 100644 --- a/apps/kimi-code/src/utils/process/resolve-command.ts +++ b/apps/kimi-code/src/utils/process/resolve-command.ts @@ -1,5 +1,5 @@ import { accessSync, constants, statSync } from 'node:fs'; -import { isAbsolute, join, relative, resolve } from 'node:path'; +import { isAbsolute, join, parse, relative, resolve } from 'node:path'; // cmd.exe / CreateProcess search the current directory before PATH, so on // Windows a bare command name can execute a binary planted in the workspace @@ -43,6 +43,7 @@ function isExecutableFile(candidate: string, platform: NodeJS.Platform): boolean function isInsideCwd(candidate: string, cwd: string, platform: NodeJS.Platform): boolean { let resolvedCandidate = resolve(candidate); let resolvedCwd = resolve(cwd); + if (resolvedCwd === parse(resolvedCwd).root) return false; if (platform === 'win32') { resolvedCandidate = resolvedCandidate.toLowerCase(); resolvedCwd = resolvedCwd.toLowerCase(); @@ -71,7 +72,7 @@ export function resolveCommandPath(command: string, cwd: string = process.cwd()) for (const name of names) { const candidate = join(dir, name); if (!isExecutableFile(candidate, platform)) continue; - if (isInsideCwd(candidate, cwd, platform)) return undefined; + if (isInsideCwd(candidate, cwd, platform)) continue; return resolve(candidate); } } diff --git a/apps/kimi-code/src/utils/recommended-effort-config.ts b/apps/kimi-code/src/utils/recommended-effort-config.ts index 5b06b3e6b..6649e89a3 100644 --- a/apps/kimi-code/src/utils/recommended-effort-config.ts +++ b/apps/kimi-code/src/utils/recommended-effort-config.ts @@ -1,11 +1,7 @@ +import type { ClientConfigFetchOptions } from '@moonshot-ai/kimi-code-product/client-configs/node'; import { z } from 'zod'; -import { - getClientConfig, - peekClientConfig, - resetClientConfigCache, - type ClientConfigFetchOptions, -} from '#/utils/client-configs'; +import { clientConfigs } from '#/utils/client-configs'; const CONFIG_NAME = 'recommended_effort'; @@ -35,13 +31,13 @@ const recommendedEffortConfigSchema = z export async function getRecommendedEffortConfig( options: ClientConfigFetchOptions = {}, ): Promise { - return getClientConfig(CONFIG_NAME, recommendedEffortConfigSchema, options); + return clientConfigs.get(CONFIG_NAME, recommendedEffortConfigSchema, options); } export function peekRecommendedEffortConfig(now?: number): RecommendedEffortConfig | undefined { - return peekClientConfig(CONFIG_NAME, recommendedEffortConfigSchema, now); + return clientConfigs.peek(CONFIG_NAME, recommendedEffortConfigSchema, now); } export function resetRecommendedEffortConfigCache(): void { - resetClientConfigCache(CONFIG_NAME); + clientConfigs.reset(CONFIG_NAME); } diff --git a/apps/kimi-code/src/utils/survey-setting.ts b/apps/kimi-code/src/utils/survey-setting.ts new file mode 100644 index 000000000..c1ddd5430 --- /dev/null +++ b/apps/kimi-code/src/utils/survey-setting.ts @@ -0,0 +1,50 @@ +import type { KimiConfig, KimiConfigPatch } from '@moonshot-ai/kimi-code-sdk'; + +export interface SurveySettingMigrationDeps { + readonly legacyValue: boolean | undefined; + readonly getConfig: () => Promise; + readonly setConfig: (patch: KimiConfigPatch) => Promise; + readonly dropLegacy: () => Promise; + readonly warn: (message: string) => void; +} + +export type SurveySettingMigrationAction = + | 'written' + | 'kept_existing' + | 'dropped_default' + | 'write_failed'; + +export interface SurveySettingMigrationOutcome { + readonly value: boolean | undefined; + readonly configured: boolean | undefined; + readonly action?: SurveySettingMigrationAction; +} + +export async function migrateLegacySurveySetting( + deps: SurveySettingMigrationDeps, +): Promise { + const configured = (await deps.getConfig()).disableFeedbackSurvey; + if (deps.legacyValue === undefined) return { value: configured, configured }; + let action: SurveySettingMigrationAction; + if (configured !== undefined) { + action = 'kept_existing'; + } else if (deps.legacyValue === false) { + action = 'dropped_default'; + } else { + try { + await deps.setConfig({ disableFeedbackSurvey: deps.legacyValue }); + action = 'written'; + } catch { + deps.warn( + '[tui.toml] could not move disable_feedback_survey to config.toml; retrying on next start', + ); + return { value: deps.legacyValue, configured, action: 'write_failed' }; + } + } + try { + await deps.dropLegacy(); + } catch { + deps.warn('[tui.toml] could not remove disable_feedback_survey; retrying on next start'); + } + return { value: configured ?? deps.legacyValue, configured, action }; +} diff --git a/apps/kimi-code/src/utils/survey-state-store.ts b/apps/kimi-code/src/utils/survey-state-store.ts deleted file mode 100644 index d6acf1c77..000000000 --- a/apps/kimi-code/src/utils/survey-state-store.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { z } from 'zod'; - -import { getSurveyStateFile } from '#/utils/paths'; -import { readJsonFile, writeJsonFileSync } from '#/utils/persistence'; - -const SurveyStateSchema = z.object({ - version: z.literal(1), - last_shown_time: z.number(), -}); - -export async function readSurveyLastShownTime( - filePath: string = getSurveyStateFile(), -): Promise { - try { - const state = await readJsonFile(filePath, SurveyStateSchema, { - version: 1, - last_shown_time: Number.NaN, - }); - return Number.isFinite(state.last_shown_time) ? state.last_shown_time : undefined; - } catch { - return undefined; - } -} - -export function writeSurveyLastShownTime( - lastShownTime: number, - filePath: string = getSurveyStateFile(), -): void { - writeJsonFileSync(filePath, SurveyStateSchema, { - version: 1, - last_shown_time: lastShownTime, - }); -} diff --git a/apps/kimi-code/src/utils/usage/usage-format.ts b/apps/kimi-code/src/utils/usage/usage-format.ts index b44adb3f0..1d332b302 100644 --- a/apps/kimi-code/src/utils/usage/usage-format.ts +++ b/apps/kimi-code/src/utils/usage/usage-format.ts @@ -5,6 +5,8 @@ * command itself chalks the colour afterwards. */ +import { type ManagedQuota, type ManagedQuotaEntry } from '@moonshot-ai/kimi-code-oauth'; + /** * Format a token count in 1024-based units: context sizes are powers of * two, so 262144 reads as "256k", not "262.1k". k values at or above @@ -64,3 +66,50 @@ export function ratioSeverity(ratio: number): 'ok' | 'warn' | 'danger' { if (ratio >= 0.5) return 'warn'; return 'ok'; } + +/** + * The kimi/code split of the new plan's monthly quota: `codeRatio` is the + * code-typed share of the monthly total as served, `kimiRatio` the + * remainder, clamped against float noise. + */ +export interface MonthlyUsageBreakdown { + readonly kimiRatio: number; + readonly codeRatio: number; +} + +export interface QuotaUsageRow { + readonly name: string; + readonly usedRatio: number; + readonly resetAt?: string; + readonly breakdown?: MonthlyUsageBreakdown; +} + +/** + * Assemble the plan-usage rows for the `/usage` report from the managed + * quota: one row per quota window the backend served — 5h, weekly, + * monthly (with its kimi/code breakdown) — in payload order. Entries the + * backend omitted are skipped. + */ +export function quotaUsageRows(quota: ManagedQuota): QuotaUsageRow[] { + const rows: QuotaUsageRow[] = []; + const push = ( + name: string, + entry: ManagedQuotaEntry | undefined, + breakdown?: MonthlyUsageBreakdown, + ): void => { + if (entry === undefined) return; + rows.push({ name, usedRatio: entry.usedRatio, resetAt: entry.resetAt, breakdown }); + }; + push('5h limit', quota.usages.limit5h); + push('Weekly limit', quota.usages.limit7d); + push('Monthly limit', quota.usages.monthTotal, monthlyBreakdown(quota)); + return rows; +} + +function monthlyBreakdown(quota: ManagedQuota): MonthlyUsageBreakdown | undefined { + const total = quota.usages.monthTotal; + if (total === undefined) return undefined; + const codeRatio = safeUsageRatio(quota.usages.monthCode?.usedRatio ?? 0); + const kimiRatio = safeUsageRatio(Math.round((total.usedRatio - codeRatio) * 1e6) / 1e6); + return { kimiRatio, codeRatio }; +} diff --git a/apps/kimi-code/test/cli/app.test.ts b/apps/kimi-code/test/cli/app.test.ts new file mode 100644 index 000000000..1c1d7900b --- /dev/null +++ b/apps/kimi-code/test/cli/app.test.ts @@ -0,0 +1,43 @@ +import { resolve } from 'node:path'; +import { Command } from 'commander'; +import { afterEach, describe, expect, it, vi } from 'vitest'; + +import { registerAppCommand } from '#/cli/sub/app'; +import { openUrl } from '#/utils/open-url'; + +vi.mock('#/utils/open-url', () => ({ openUrl: vi.fn() })); + +afterEach(() => { + vi.resetAllMocks(); + vi.unstubAllGlobals(); + vi.restoreAllMocks(); +}); + +describe('kimi app', () => { + it.each([undefined, '.', '../project', '/tmp/项目 & a#b%'])('opens a new desktop chat for %s', async (path) => { + const program = new Command('kimi'); + registerAppCommand(program); + await program.parseAsync(['node', 'kimi', 'app', ...(path === undefined ? [] : [path])]); + const url = new URL(vi.mocked(openUrl).mock.calls[0]![0]); + expect(url.protocol).toBe('kimi-code:'); + expect(url.host).toBe('open'); + expect(url.searchParams.get('root')).toBe(resolve(path ?? process.cwd())); + expect(url.searchParams.get('new')).toBe('1'); + expect(url.hash).toBe(''); + }); + + it('shows the installation command when the OS opener fails', async () => { + const exitCode = process.exitCode; + const write = vi.spyOn(process.stderr, 'write').mockReturnValue(true); + vi.mocked(openUrl).mockImplementation((_url, onError) => onError?.(new Error('no handler'))); + try { + const program = new Command('kimi'); + registerAppCommand(program); + await program.parseAsync(['node', 'kimi', 'app']); + expect(write).toHaveBeenCalledWith(expect.stringContaining('kimi install-desktop')); + expect(process.exitCode).toBe(1); + } finally { + process.exitCode = exitCode; + } + }); +}); diff --git a/apps/kimi-code/test/cli/install-desktop.test.ts b/apps/kimi-code/test/cli/install-desktop.test.ts new file mode 100644 index 000000000..4011abc6b --- /dev/null +++ b/apps/kimi-code/test/cli/install-desktop.test.ts @@ -0,0 +1,49 @@ +import { Command } from 'commander'; +import { afterEach, describe, expect, it, vi } from 'vitest'; + +import type { KimiRegionProfile } from '@moonshot-ai/kimi-code-oauth'; + +import { registerInstallDesktopCommand } from '#/cli/sub/install-desktop'; + +const mocks = vi.hoisted(() => ({ + openUrl: vi.fn(), + currentKimiProfile: vi.fn(() => ({ siteBase: 'https://example.com' }) as unknown as KimiRegionProfile), +})); + +vi.mock('#/utils/open-url', async (importOriginal) => { + const actual = await importOriginal(); + return { ...actual, openUrl: mocks.openUrl }; +}); + +vi.mock('#/utils/region', async (importOriginal) => { + const actual = await importOriginal(); + return { ...actual, currentKimiProfile: mocks.currentKimiProfile }; +}); + +describe('kimi install-desktop', () => { + afterEach(() => { + vi.restoreAllMocks(); + }); + + it('prints the region-derived desktop app page URL and opens it in the browser', async () => { + const program = new Command('kimi'); + registerInstallDesktopCommand(program); + const write = vi.spyOn(process.stdout, 'write').mockImplementation(() => true); + + await program.parseAsync(['node', 'kimi', 'install-desktop']); + + expect(write).toHaveBeenCalledWith('https://example.com/code\n'); + expect(mocks.openUrl).toHaveBeenCalledWith('https://example.com/code'); + }); + + it('keeps install-app working as a hidden alias', async () => { + const program = new Command('kimi'); + registerInstallDesktopCommand(program); + const write = vi.spyOn(process.stdout, 'write').mockImplementation(() => true); + + await program.parseAsync(['node', 'kimi', 'install-app']); + + expect(write).toHaveBeenCalledWith('https://example.com/code\n'); + expect(mocks.openUrl).toHaveBeenCalledWith('https://example.com/code'); + }); +}); diff --git a/apps/kimi-code/test/cli/options.test.ts b/apps/kimi-code/test/cli/options.test.ts index aa1cfb2ca..53a80d612 100644 --- a/apps/kimi-code/test/cli/options.test.ts +++ b/apps/kimi-code/test/cli/options.test.ts @@ -592,6 +592,8 @@ describe('CLI options parsing', () => { 'login', 'doctor', 'vis', + 'install-desktop', + 'app', 'migrate', 'upgrade', ]); diff --git a/apps/kimi-code/test/cli/provider.test.ts b/apps/kimi-code/test/cli/provider.test.ts index 30540caaf..1afa8e26f 100644 --- a/apps/kimi-code/test/cli/provider.test.ts +++ b/apps/kimi-code/test/cli/provider.test.ts @@ -1,12 +1,19 @@ /** * `kimi provider` CLI unit tests. The handlers receive an injected `getHarness` - * + capturing stdout/stderr, so we test the wiring end-to-end without booting - * a real harness or hitting the network. + * + capturing stdout/stderr. Registry imports use a real harness and temporary + * config storage; upstream HTTP responses are stubbed. */ import { describe, expect, it, vi, beforeEach, afterEach } from 'vitest'; import { Command } from 'commander'; -import type { KimiConfig } from '@moonshot-ai/kimi-code-sdk'; +import type { KimiConfig, KimiHarness } from '@moonshot-ai/kimi-code-sdk'; +import { mkdtemp, rm } from 'node:fs/promises'; +import { tmpdir } from 'node:os'; +import { join } from 'node:path'; +import { + resetModelsDevUpstreamForTest, + setModelsDevUpstreamForTest, +} from '@moonshot-ai/agent-core-v2/app/kosongConfig/modelsDevUpstream'; import { handleCatalogAdd, @@ -184,7 +191,28 @@ beforeEach(() => { originalFetch = globalThis.fetch; }); -afterEach(() => { +const registryHarnesses: KimiHarness[] = []; + +async function makeRegistryHarness(initial: KimiConfig) { + const { createKimiHarness } = await vi.importActual( + '@moonshot-ai/kimi-code-sdk', + ); + const homeDir = await mkdtemp(join(tmpdir(), 'registry-cli-')); + const harness = createKimiHarness({ + homeDir, + identity: { productName: 'registry-test', version: '0.0.0-test', platform: 'test' }, + }); + registryHarnesses.push(harness); + await harness.setConfig(initial); + return { harness, current: () => harness.getConfig({ reload: true }) }; +} + +afterEach(async () => { + for (const harness of registryHarnesses.splice(0)) { + await harness.close(); + await rm(harness.homeDir, { recursive: true, force: true, maxRetries: 3, retryDelay: 25 }); + } + resetModelsDevUpstreamForTest(); globalThis.fetch = originalFetch; vi.restoreAllMocks(); }); @@ -198,6 +226,7 @@ function mockRegistryFetch(body: unknown = REGISTRY_BODY, status = 200): ReturnT }), ); globalThis.fetch = fetchMock as unknown as typeof globalThis.fetch; + setModelsDevUpstreamForTest({ fetchImpl: globalThis.fetch }); return fetchMock; } @@ -248,7 +277,7 @@ const CATALOG_BODY = { describe('kimi provider add', () => { it('imports providers and models from a custom registry, persisting source on each provider', async () => { const fetchMock = mockRegistryFetch(); - const { harness, current, setConfigCalls } = makeHarness({ providers: {} } as KimiConfig); + const { harness, current } = await makeRegistryHarness({ providers: {} } as KimiConfig); const { deps, stdout, stderr, exitCodes } = makeDeps(harness); await tryRun(() => @@ -264,7 +293,7 @@ describe('kimi provider add', () => { }), ); - const finalConfig = current(); + const finalConfig = (await current()); expect(Object.keys(finalConfig.providers).toSorted()).toEqual(['kohub', 'kohub-responses']); const kohub = finalConfig.providers['kohub']!; expect(kohub.type).toBe('anthropic'); @@ -285,100 +314,50 @@ describe('kimi provider add', () => { model: 'gpt-5.5', }); - // The single setConfig patch should carry both providers and models. - expect(setConfigCalls).toHaveLength(1); - expect(Object.keys(setConfigCalls[0]?.providers ?? {}).toSorted()).toEqual([ - 'kohub', - 'kohub-responses', - ]); - const output = stdout.join(''); expect(output).toContain('Imported 2 providers (2 models)'); expect(output).toContain('- kohub'); expect(output).toContain('- kohub-responses'); }); - it('drops a stale provider before re-applying when the id already exists', async () => { + it('persists registry removals and clears dangling defaults', async () => { mockRegistryFetch(); const initial: KimiConfig = { providers: { kohub: { - type: 'kimi', - baseUrl: 'https://stale.example.test', + type: 'anthropic', + baseUrl: 'https://registry.example.test', apiKey: 'old', + source: { kind: 'apiJson', url: REGISTRY_URL, apiKey: 'old' }, + }, + gone: { + type: 'openai', + baseUrl: 'https://registry.example.test/gone', + apiKey: 'old', + source: { kind: 'apiJson', url: REGISTRY_URL, apiKey: 'old' }, }, }, models: { - 'kohub/stale-model': { - provider: 'kohub', - model: 'stale-model', - maxContextSize: 1024, - capabilities: [], - }, + 'gone/m1': { provider: 'gone', model: 'm1', maxContextSize: 1024, capabilities: [] }, }, + defaultModel: 'gone/m1', + thinking: { enabled: false }, } as unknown as KimiConfig; - const { harness, removeCalls, current } = makeHarness(initial); + const { harness, current } = await makeRegistryHarness(initial); const { deps, exitCodes } = makeDeps(harness); - await tryRun(() => - handleProviderAdd(deps, REGISTRY_URL, { apiKey: 'sk-new' }), - ); + await tryRun(() => handleProviderAdd(deps, REGISTRY_URL, {})); expect(exitCodes).toEqual([]); - expect(removeCalls).toContain('kohub'); - // The stale model alias must be gone; the registry's alias must be in. - expect(current().models?.['kohub/stale-model']).toBeUndefined(); - expect(current().models?.['kohub/claude-opus-4-7']).toBeDefined(); - }); - - it('preserves newly-imported providers when a later registry entry replaces an existing id', async () => { - // Regression test for the codex P1: `harness.removeProvider` re-reads - // from disk on each call, so applying the loop body without flushing - // would silently drop providers added earlier in the same iteration. - // The handler now removes every stale id up front in a single batch. - mockRegistryFetch(); - const initial: KimiConfig = { - providers: { - // The registry will replace this one. - 'kohub-responses': { - type: 'openai_responses', - baseUrl: 'https://stale.example.test/v1', - apiKey: 'old', - }, - }, - models: { - 'kohub-responses/legacy-model': { - provider: 'kohub-responses', - model: 'legacy-model', - maxContextSize: 1024, - capabilities: [], - }, - }, - } as unknown as KimiConfig; - const { harness, current } = makeHarness(initial); - const { deps, exitCodes } = makeDeps(harness); - - await tryRun(() => - handleProviderAdd(deps, REGISTRY_URL, { apiKey: 'sk-fresh' }), - ); - - expect(exitCodes).toEqual([]); - const final = current(); - // BOTH providers must end up in the final config — `kohub` was newly - // added in the loop, `kohub-responses` was replaced. The old bug dropped - // `kohub` because the second iteration's `removeProvider` reloaded a - // disk-backed config that had not yet been persisted with `kohub`. - expect(final.providers['kohub']).toBeDefined(); - expect(final.providers['kohub-responses']).toBeDefined(); - expect(final.providers['kohub-responses']?.apiKey).toBe('sk-fresh'); - expect(final.models?.['kohub/claude-opus-4-7']).toBeDefined(); - expect(final.models?.['kohub-responses/gpt-5.5']).toBeDefined(); - expect(final.models?.['kohub-responses/legacy-model']).toBeUndefined(); + expect((await current()).providers['gone']).toBeUndefined(); + expect((await current()).models?.['gone/m1']).toBeUndefined(); + expect((await current()).defaultModel).toBeUndefined(); + expect((await current()).thinking?.enabled).toBeUndefined(); }); it('reads the api key from KIMI_REGISTRY_API_KEY when --api-key is omitted', async () => { const fetchMock = mockRegistryFetch(); - const { harness } = makeHarness({ providers: {} } as KimiConfig); + const { harness } = await makeRegistryHarness({ providers: {} } as KimiConfig); const { deps, exitCodes } = makeDeps(harness, { env: { KIMI_REGISTRY_API_KEY: 'sk-env-token' }, }); @@ -394,21 +373,34 @@ describe('kimi provider add', () => { ); }); - it('exits 1 with a clear message when no api key is supplied anywhere', async () => { - const fetchMock = mockRegistryFetch(); - const { harness } = makeHarness({ providers: {} } as KimiConfig); - const { deps, stderr, exitCodes } = makeDeps(harness); + it('does not change the config when the registry has no usable providers', async () => { + mockRegistryFetch({}); + const initial: KimiConfig = { + providers: { + kohub: { + type: 'openai', + baseUrl: 'https://registry.example.test/v1', + apiKey: 'sk-old', + source: { kind: 'apiJson', url: REGISTRY_URL, apiKey: 'sk-old' }, + }, + }, + models: { + 'kohub/m1': { provider: 'kohub', model: 'm1', maxContextSize: 1024 }, + }, + defaultModel: 'kohub/m1', + } as unknown as KimiConfig; + const { harness, current } = await makeRegistryHarness(initial); + const { deps, exitCodes } = makeDeps(harness); await tryRun(() => handleProviderAdd(deps, REGISTRY_URL, {})); expect(exitCodes).toEqual([1]); - expect(stderr.join('')).toMatch(/missing api key/i); - expect(fetchMock).not.toHaveBeenCalled(); + expect((await current())).toMatchObject(initial); }); it('exits 1 when the registry fetch fails with an HTTP error', async () => { mockRegistryFetch({ message: 'invalid token' }, 401); - const { harness } = makeHarness({ providers: {} } as KimiConfig); + const { harness } = await makeRegistryHarness({ providers: {} } as KimiConfig); const { deps, stderr, exitCodes } = makeDeps(harness); await tryRun(() => @@ -418,6 +410,33 @@ describe('kimi provider add', () => { expect(exitCodes).toEqual([1]); expect(stderr.join('')).toMatch(/HTTP 401/); }); + + it('reuses the stored registry key when a re-import passes no key', async () => { + const fetchMock = mockRegistryFetch(); + const initial: KimiConfig = { + providers: { + kohub: { + type: 'anthropic', + baseUrl: 'https://registry.example.test', + apiKey: 'sk-stored', + source: { kind: 'apiJson', url: REGISTRY_URL, apiKey: 'sk-stored' }, + }, + }, + } as unknown as KimiConfig; + const { harness } = await makeRegistryHarness(initial); + const { deps, stderr, exitCodes } = makeDeps(harness); + + await tryRun(() => handleProviderAdd(deps, REGISTRY_URL, {})); + + expect(exitCodes).toEqual([]); + expect(stderr.join('')).toBe(''); + expect(fetchMock).toHaveBeenCalledWith( + REGISTRY_URL, + expect.objectContaining({ + headers: expect.objectContaining({ Authorization: 'Bearer sk-stored' }), + }), + ); + }); }); describe('kimi provider remove', () => { @@ -540,7 +559,7 @@ describe('kimi provider list', () => { describe('registerProviderCommand', () => { it('describes the user-facing subcommand and routes flags through commander', async () => { const fetchMock = mockRegistryFetch(); - const { harness, current } = makeHarness({ providers: {} } as KimiConfig); + const { harness, current } = await makeRegistryHarness({ providers: {} } as KimiConfig); const { deps, exitCodes, stdout } = makeDeps(harness); const program = new Command('kimi'); @@ -563,7 +582,7 @@ describe('registerProviderCommand', () => { headers: expect.objectContaining({ Authorization: 'Bearer sk-cli' }), }), ); - expect(Object.keys(current().providers).toSorted()).toEqual(['kohub', 'kohub-responses']); + expect(Object.keys((await current()).providers).toSorted()).toEqual(['kohub', 'kohub-responses']); expect(stdout.join('')).toContain('Imported 2 providers'); }); diff --git a/apps/kimi-code/test/cli/run-v2-print.test.ts b/apps/kimi-code/test/cli/run-v2-print.test.ts index a82e65063..f512a935c 100644 --- a/apps/kimi-code/test/cli/run-v2-print.test.ts +++ b/apps/kimi-code/test/cli/run-v2-print.test.ts @@ -388,6 +388,96 @@ describe('applyPrintBackgroundPolicy', () => { expect(warn.mock.calls[0]?.[0]).toContain('cron'); }); + it('waits for an in-flight turn instead of treating an empty cron schedule as quiescent', async () => { + // A fired one-shot task disappears from the schedule at once, while the + // turn it steered is still running: the policy must wait the turn out + // rather than return (and let teardown cancel the turn mid-flight). + let active = true; + let consumed = 0; + const warn = vi.fn(); + await applyPrintBackgroundPolicy({ + mode: 'steer', + ceilingS: 3600, + maxTurns: 50, + countPending: () => 0, + drain: async () => {}, + turnEndings: scriptedTurnEndings([ + { event: ending(2), apply: () => { consumed += 1; active = false; } }, + ]), + skipTurnId: 1, + warn, + now: () => 0, + turnActive: () => active, + cronNextFireAt: () => null, + }); + expect(consumed).toBe(1); + expect(warn).not.toHaveBeenCalled(); + }); + + it('does not read a past fire time as a wedged tick while a turn is running', async () => { + // A recurring task's fire comes due during a long turn: the tick waits + // for the loop to go idle, so the same past fire time is reported until + // the turn ends. That is a held fire, not a wedged tick. + let active = true; + let nextFire: number | null = 500; + const warn = vi.fn(); + const turnEndings: PrintTurnEndings = { + next: async (remainingMs) => { + // The running turn outlives short grace waits; only a patient wait + // observes its ending. + if (remainingMs <= 10_000) return null; + if (active) { + active = false; + nextFire = 60_000; + return ending(2); + } + nextFire = null; + return ending(3); + }, + }; + await applyPrintBackgroundPolicy({ + mode: 'steer', + ceilingS: 3600, + maxTurns: 50, + countPending: () => 0, + drain: async () => {}, + turnEndings, + skipTurnId: 1, + warn, + now: () => 1_000, + turnActive: () => active, + cronNextFireAt: () => nextFire, + }); + expect(warn).not.toHaveBeenCalled(); + }); + + it('fails the run when an in-flight steered turn does not complete', async () => { + await expect( + applyPrintBackgroundPolicy({ + mode: 'steer', + ceilingS: 3600, + maxTurns: 50, + countPending: () => 0, + drain: async () => {}, + turnEndings: scriptedTurnEndings([ + { + event: { + type: 'turn.ended', + turnId: 2, + reason: 'failed', + error: { code: 'provider.overloaded', message: 'try later' }, + } as PrintTurnEnding, + }, + ]), + skipTurnId: 1, + warn: () => {}, + now: () => 0, + turnActive: () => true, + cronNextFireAt: () => null, + }), + ).rejects.toThrow(PrintSteeredTurnFailedError); + }); + it('finishes goal waiting before consulting the cron schedule', async () => { let active = true; let consumed = 0; @@ -509,6 +599,7 @@ describe('formatTrustGatedMcpWarning', () => { const text = formatTrustGatedMcpWarning([{ name: 'fs', target: 'stdio: node server.js' }]); expect(text).toContain('skipped 1 project-level MCP server: fs (stdio: node server.js).'); expect(text).toContain('"Trust this folder"'); + expect(text).toContain('KIMI_CODE_TRUST_WORKSPACE=1'); }); it('pluralizes and joins multiple skipped servers', () => { diff --git a/apps/kimi-code/test/cli/v2-run-print.test.ts b/apps/kimi-code/test/cli/v2-run-print.test.ts index 8dbb10dba..b0ca4c21e 100644 --- a/apps/kimi-code/test/cli/v2-run-print.test.ts +++ b/apps/kimi-code/test/cli/v2-run-print.test.ts @@ -10,9 +10,11 @@ import { IAgentLifecycleService, IAgentLoopService, IAgentPermissionModeService, + IAgentPlanService, IAgentProfileService, IAgentScopeContext, IAgentTaskService, + IAppendLogStore, IAuthSummaryService, IBootstrapService, IConfigService, @@ -21,11 +23,18 @@ import { IFileSystemStorageService, IHostFileSystem, IOAuthToolkit, + ISessionContext, ISessionIndex, + ISessionLockService, + ISessionRunGate, ISessionManager, ITelemetryService, IWorkspaceInstanceManager, + InMemorySessionLockService, + Error2, + ErrorCodes, makeAgentScopeContext, + makeSessionContext, resolveKimiHome, type BootstrapInput, type Event2, @@ -161,6 +170,7 @@ function makeFakeHarness() { const eventListeners = new Set<(event: Event2) => void>(); const profileState: { profileName: string | undefined } = { profileName: undefined }; const trustState = { trusted: true }; + const planState = { active: false }; const goal = { createGoal: vi.fn(), getGoal: vi.fn() }; const agentServices = new Map([ @@ -174,6 +184,17 @@ function makeFakeHarness() { }, ], [IAgentPermissionModeService, { mode: 'auto', setMode: vi.fn() }], + [ + IAgentPlanService, + { + status: vi.fn(async () => + planState.active ? { id: 'plan-1', content: '', path: '/tmp/plan-1.md' } : null, + ), + cancel: vi.fn(() => { + planState.active = false; + }), + }, + ], [IAuthSummaryService, { ensureReady: vi.fn(async () => {}) }], [ IEventBus, @@ -236,6 +257,23 @@ function makeFakeHarness() { handleOf: vi.fn(() => agent), }, ], + [ + ISessionContext, + makeSessionContext({ + sessionId: 'ses_v2', + workspaceId: 'wd_v2', + sessionDir: '/tmp/ses_v2', + sessionScope: 'sessions/wd_v2/ses_v2', + cwd: process.cwd(), + }), + ], + [ + ISessionRunGate, + { + begin: vi.fn(() => {}), + tryHold: vi.fn(() => true), + }, + ], ]); const session = fakeScope('ses_v2', sessionServices); @@ -276,6 +314,8 @@ function makeFakeHarness() { }, ], [ISessionIndex, { get: vi.fn(async () => undefined), listRecent: vi.fn(async () => ({ items: [] })) }], + [ISessionLockService, new InMemorySessionLockService()], + [IAppendLogStore, { externallyModified: vi.fn(() => false) }], [ IBootstrapService, { @@ -317,7 +357,17 @@ function makeFakeHarness() { ], ]); const app = fakeScope('app', appServices); - return { app, agent, session, agentServices, sessionServices, appServices, profileState, trustState }; + return { + app, + agent, + session, + agentServices, + sessionServices, + appServices, + profileState, + trustState, + planState, + }; } describe('runV2Print', () => { @@ -360,6 +410,49 @@ describe('runV2Print', () => { expect(app.dispose).toHaveBeenCalled(); }); + it('reloads a stale session in place, retries once, and still reports occupied', async () => { + const stdout = writer(); + const stderr = writer(); + const { app, agentServices, sessionServices, appServices } = makeFakeHarness(); + const sessions = appServices.get(ISessionManager) as { + create: ReturnType; + resume: ReturnType; + close: ReturnType; + }; + sessions.close = vi.fn(async () => {}); + const lifecycle = sessionServices.get(IAgentLifecycleService) as { + list: ReturnType; + }; + lifecycle.list.mockReturnValue([{ agentId: 'main' }]); + const runGate = sessionServices.get(ISessionRunGate) as { + begin: ReturnType; + }; + runGate.begin.mockImplementationOnce(() => { + throw new Error2(ErrorCodes.SESSION_STALE, 'stale'); + }); + const loop = agentServices.get(IAgentLoopService) as { submit: ReturnType }; + loop.submit.mockImplementationOnce(() => { + throw new Error2(ErrorCodes.SESSION_OCCUPIED, 'occupied'); + }); + mocks.bootstrap.mockReturnValue({ app }); + mocks.ensureMainAgent.mockResolvedValue({ agentId: 'main', generation: 1 }); + + const previousExitCode = process.exitCode; + try { + await runV2Print(opts() as never, '1.2.3-test', { stdout, stderr }); + + expect(sessions.create).toHaveBeenCalledTimes(1); + expect(sessions.close).toHaveBeenCalledTimes(1); + expect(sessions.resume).toHaveBeenCalledTimes(1); + expect(loop.submit).toHaveBeenCalledTimes(1); + expect(process.exitCode).toBe(4); + expect(stderr.text()).toContain('was updated by another client; reloaded it'); + expect(stderr.text()).toContain('occupied'); + } finally { + process.exitCode = previousExitCode; + } + }); + it('passes explicit skill dirs from --skillsDir into bootstrap args', async () => { const stdout = writer(); const stderr = writer(); @@ -391,6 +484,20 @@ describe('runV2Print', () => { expect(input.args?.skillDirs ?? []).toEqual([]); }); + it('declares the host non-interactive so no approval or question waits for a person', async () => { + const stdout = writer(); + const stderr = writer(); + const { app } = makeFakeHarness(); + + mocks.bootstrap.mockReturnValue({ app }); + mocks.ensureMainAgent.mockResolvedValue({ agentId: 'main', generation: 1 }); + + await runV2Print(opts() as never, '1.2.3-test', { stdout, stderr }); + + const input = mocks.bootstrap.mock.calls[0]?.[0] as BootstrapInput; + expect(input.args?.nonInteractive).toBe(true); + }); + it('seeds explicit agent files from --agentFile and binds the --agent profile', async () => { const stdout = writer(); const stderr = writer(); @@ -569,6 +676,139 @@ describe('runV2Print', () => { expect(profile.setModel).toHaveBeenCalledWith('new-model'); }); + it('skips default_plan_mode for a new print session and says so on stderr', async () => { + const stdout = writer(); + const stderr = writer(); + const { app, agentServices, planState } = makeFakeHarness(); + planState.active = true; + + mocks.bootstrap.mockReturnValue({ app }); + mocks.ensureMainAgent.mockResolvedValue({ agentId: 'main', generation: 1 }); + + await runV2Print(opts() as never, '1.2.3-test', { stdout, stderr }); + + const plan = agentServices.get(IAgentPlanService) as { cancel: ReturnType }; + expect(plan.cancel).toHaveBeenCalledTimes(1); + expect(planState.active).toBe(false); + expect(stderr.text()).toContain( + 'default_plan_mode is not applied in print mode, because Plan mode waits for your review.', + ); + const loop = agentServices.get(IAgentLoopService) as { submit: ReturnType }; + expect(loop.submit).toHaveBeenCalledTimes(1); + }); + + it('leaves a new print session alone when it does not start in Plan mode', async () => { + const stdout = writer(); + const stderr = writer(); + const { app, agentServices } = makeFakeHarness(); + + mocks.bootstrap.mockReturnValue({ app }); + mocks.ensureMainAgent.mockResolvedValue({ agentId: 'main', generation: 1 }); + + await runV2Print(opts() as never, '1.2.3-test', { stdout, stderr }); + + const plan = agentServices.get(IAgentPlanService) as { cancel: ReturnType }; + expect(plan.cancel).not.toHaveBeenCalled(); + expect(stderr.text()).not.toContain('default_plan_mode'); + }); + + it('runs a resumed session that is still in Plan mode and says its plan cannot be approved', async () => { + const stdout = writer(); + const stderr = writer(); + const { app, agentServices, appServices, planState } = makeFakeHarness(); + planState.active = true; + + const index = appServices.get(ISessionIndex) as { get: ReturnType }; + index.get.mockResolvedValue({ id: 'ses_1', cwd: process.cwd() }); + + mocks.bootstrap.mockReturnValue({ app }); + mocks.ensureMainAgent.mockResolvedValue({ agentId: 'main', generation: 1 }); + + await runV2Print(opts({ session: 'ses_1' }) as never, '1.2.3-test', { stdout, stderr }); + + expect(stderr.text()).toContain( + 'Session "ses_1" is in Plan mode, and its plan cannot be approved in print mode; review it with `kimi -r ses_1`.', + ); + const plan = agentServices.get(IAgentPlanService) as { cancel: ReturnType }; + expect(plan.cancel).not.toHaveBeenCalled(); + expect(planState.active).toBe(true); + const permission = agentServices.get(IAgentPermissionModeService) as { + setMode: ReturnType; + }; + expect(permission.setMode).toHaveBeenCalledWith('auto'); + const loop = agentServices.get(IAgentLoopService) as { submit: ReturnType }; + expect(loop.submit).toHaveBeenCalledTimes(1); + }); + + it('keeps stream-json stdout parseable when the resumed session is still in Plan mode', async () => { + const stdout = writer(); + const stderr = writer(); + const { app, appServices, planState } = makeFakeHarness(); + planState.active = true; + + const index = appServices.get(ISessionIndex) as { get: ReturnType }; + index.get.mockResolvedValue({ id: 'ses_1', cwd: process.cwd() }); + + mocks.bootstrap.mockReturnValue({ app }); + mocks.ensureMainAgent.mockResolvedValue({ agentId: 'main', generation: 1 }); + + const previousExitCode = process.exitCode; + process.exitCode = undefined; + try { + await runV2Print(opts({ session: 'ses_1', outputFormat: 'stream-json' }) as never, '1.2.3-test', { + stdout, + stderr, + }); + + const lines = stdout.text().split('\n').filter((line) => line.length > 0); + expect(lines.length).toBeGreaterThan(0); + for (const line of lines) expect(() => JSON.parse(line)).not.toThrow(); + expect(stdout.text()).not.toContain('Plan mode'); + expect(stderr.text()).toContain('Session "ses_1" is in Plan mode'); + expect(process.exitCode).toBeUndefined(); + } finally { + process.exitCode = previousExitCode; + } + }); + + it('continues the previous session that is still in Plan mode and says its plan cannot be approved', async () => { + const stdout = writer(); + const stderr = writer(); + const { app, agentServices, appServices, planState } = makeFakeHarness(); + planState.active = true; + + const index = appServices.get(ISessionIndex) as { listRecent: ReturnType }; + index.listRecent.mockResolvedValue({ items: [{ id: 'ses_9', cwd: process.cwd() }] }); + + mocks.bootstrap.mockReturnValue({ app }); + mocks.ensureMainAgent.mockResolvedValue({ agentId: 'main', generation: 1 }); + + await runV2Print(opts({ continue: true }) as never, '1.2.3-test', { stdout, stderr }); + + expect(stderr.text()).toContain('Session "ses_9" is in Plan mode, and its plan cannot be approved in print mode'); + expect(planState.active).toBe(true); + const loop = agentServices.get(IAgentLoopService) as { submit: ReturnType }; + expect(loop.submit).toHaveBeenCalledTimes(1); + }); + + it('says nothing about Plan mode when the resumed session is not in Plan mode', async () => { + const stdout = writer(); + const stderr = writer(); + const { app, agentServices, appServices } = makeFakeHarness(); + + const index = appServices.get(ISessionIndex) as { get: ReturnType }; + index.get.mockResolvedValue({ id: 'ses_1', cwd: process.cwd() }); + + mocks.bootstrap.mockReturnValue({ app }); + mocks.ensureMainAgent.mockResolvedValue({ agentId: 'main', generation: 1 }); + + await runV2Print(opts({ session: 'ses_1' }) as never, '1.2.3-test', { stdout, stderr }); + + expect(stderr.text()).not.toContain('Plan mode'); + const loop = agentServices.get(IAgentLoopService) as { submit: ReturnType }; + expect(loop.submit).toHaveBeenCalledTimes(1); + }); + it('honors KIMI_DISABLE_TELEMETRY: no cloud appender and no v1 pipeline', async () => { vi.stubEnv('KIMI_DISABLE_TELEMETRY', '1'); const stdout = writer(); diff --git a/apps/kimi-code/test/cli/web/remote-control.test.ts b/apps/kimi-code/test/cli/web/remote-control.test.ts index cc0f8ba9c..02b93354a 100644 --- a/apps/kimi-code/test/cli/web/remote-control.test.ts +++ b/apps/kimi-code/test/cli/web/remote-control.test.ts @@ -59,6 +59,9 @@ describe('Remote Control output', () => { it('formats relay and device lifecycle states', () => { expect(formatRemoteControlStatus('relay_connected').toLowerCase()).toContain('connected'); expect(formatRemoteControlStatus('relay_disconnected')).toContain('disconnected'); + expect(formatRemoteControlStatus('relay_terminated')).toContain('offline'); + expect(formatRemoteControlStatus('relay_terminated')).toContain('exiting'); + expect(formatRemoteControlStatus('relay_terminated')).not.toContain('reconnecting'); expect(formatRemoteControlStatus('device_connected').toLowerCase()).toContain('connected'); expect(formatRemoteControlStatus('device_disconnected')).toContain('disconnected'); }); diff --git a/apps/kimi-code/test/cli/web/web.test.ts b/apps/kimi-code/test/cli/web/web.test.ts index 816f5d787..fbc8d44f2 100644 --- a/apps/kimi-code/test/cli/web/web.test.ts +++ b/apps/kimi-code/test/cli/web/web.test.ts @@ -19,6 +19,10 @@ import { resetCapabilitiesCache, setCapabilities } from '@moonshot-ai/pi-tui'; import { registerWebCommand } from '#/cli/sub/web'; import type { LegacyKillDeps } from '#/cli/sub/web/legacy-kill'; +import type { + RemoteControlCloseReason, + RemoteControlStatus, +} from '#/cli/sub/web/remote-control'; import type { WebCommandDeps } from '#/cli/sub/web/run'; import type { ParsedServerOptions } from '#/cli/sub/web/shared'; import { darkColors } from '#/tui/theme/colors'; @@ -464,6 +468,100 @@ describe('`kimi web` opens the browser', () => { ).rejects.toThrow('--remote-control requires a loopback host.'); }); + it('requests foreground shutdown when the relay takes the device offline', async () => { + const { handleWebCommand } = await import('#/cli/sub/web/run'); + const home = mkdtempSync(join(tmpdir(), 'kimi-web-rc-')); + vi.stubEnv('KIMI_CODE_HOME', home); + const { stdout, stderr, readStdout } = makeIo(); + const requestShutdown = vi.fn(); + const runner: ForegroundRunner = async (_options, hooks) => { + await hooks?.onReady?.('http://127.0.0.1:58627', { requestShutdown }); + return undefined as never; + }; + let emitStatus: ((status: RemoteControlStatus) => void) | undefined; + let resolveClosed: ((reason: RemoteControlCloseReason) => void) | undefined; + const startRemoteControl: WebCommandDeps['startRemoteControl'] = async (options) => { + emitStatus = options.onStatus; + return { + deviceId: 'device-1', + deviceName: 'example-device', + url: 'https://example.test/devices/device-1/?rc=1&from=kimi_code_cli', + relayOrigin: 'https://example.test', + closed: new Promise((resolve) => { + resolveClosed = resolve; + }), + close: async () => {}, + }; + }; + + try { + await handleWebCommand( + { remoteControl: true, open: false }, + { + startServerForeground: runner, + startRemoteControl, + resolveToken: () => 'tok', + openUrl: vi.fn(), + stdout, + stderr, + }, + ); + + emitStatus?.('relay_terminated'); + resolveClosed?.('user_requested'); + await vi.waitFor(() => { + expect(requestShutdown).toHaveBeenCalledWith('remote_control_user_requested'); + }); + expect(readStdout()).toContain('offline'); + expect(readStdout()).not.toContain('reconnecting'); + } finally { + rmSync(home, { recursive: true, force: true }); + } + }); + + it('does not request shutdown when the tunnel closes locally', async () => { + const { handleWebCommand } = await import('#/cli/sub/web/run'); + const home = mkdtempSync(join(tmpdir(), 'kimi-web-rc-')); + vi.stubEnv('KIMI_CODE_HOME', home); + const { stdout, stderr } = makeIo(); + const requestShutdown = vi.fn(); + const runner: ForegroundRunner = async (_options, hooks) => { + await hooks?.onReady?.('http://127.0.0.1:58627', { requestShutdown }); + return undefined as never; + }; + let resolveClosed: ((reason: RemoteControlCloseReason) => void) | undefined; + const startRemoteControl: WebCommandDeps['startRemoteControl'] = async () => ({ + deviceId: 'device-1', + deviceName: 'example-device', + url: 'https://example.test/devices/device-1/?rc=1&from=kimi_code_cli', + relayOrigin: 'https://example.test', + closed: new Promise((resolve) => { + resolveClosed = resolve; + }), + close: async () => {}, + }); + + try { + await handleWebCommand( + { remoteControl: true, open: false }, + { + startServerForeground: runner, + startRemoteControl, + resolveToken: () => 'tok', + openUrl: vi.fn(), + stdout, + stderr, + }, + ); + + resolveClosed?.('local_close'); + await new Promise((resolve) => setTimeout(resolve, 10)); + expect(requestShutdown).not.toHaveBeenCalled(); + } finally { + rmSync(home, { recursive: true, force: true }); + } + }); + it('shows --remote-control in help', () => { const remoteControlOption = makeProgram() .commands.find((command) => command.name() === 'web')! diff --git a/apps/kimi-code/test/native/build-scripts.test.ts b/apps/kimi-code/test/native/build-scripts.test.ts new file mode 100644 index 000000000..5c4277f97 --- /dev/null +++ b/apps/kimi-code/test/native/build-scripts.test.ts @@ -0,0 +1,15 @@ +import { describe, expect, it } from 'vitest'; + +import { SEA_EXEC_ARGV, seaCodeCacheEnabled } from '../../scripts/native/sea-options.mjs'; + +describe('sea-options', () => { + it('bakes a bounded young generation into the binary', () => { + expect(SEA_EXEC_ARGV).toEqual(['--max-semi-space-size=16']); + expect(Object.isFrozen(SEA_EXEC_ARGV)).toBe(true); + }); + + it('only enables the V8 code cache when the target matches the build host', () => { + expect(seaCodeCacheEnabled('darwin-arm64', 'darwin-arm64')).toBe(true); + expect(seaCodeCacheEnabled('linux-x64', 'darwin-arm64')).toBe(false); + }); +}); diff --git a/apps/kimi-code/test/scripts/native/native-deps.test.ts b/apps/kimi-code/test/scripts/native/native-deps.test.ts index 980f1c771..3b0893fab 100644 --- a/apps/kimi-code/test/scripts/native/native-deps.test.ts +++ b/apps/kimi-code/test/scripts/native/native-deps.test.ts @@ -60,18 +60,20 @@ describe('resolveTargetDeps', () => { const linuxPiTui = resolveTargetDeps('linux-arm64').find( (d) => d.resolvedName === '@moonshot-ai/pi-tui', ); - expect(linuxPiTui?.nativeFileRelatives).toEqual([]); + expect(linuxPiTui?.nativeFileRelatives).toEqual([ + 'native/linux/prebuilds/linux-arm64/linux-platform-x11.node', + ]); const macPiTui = resolveTargetDeps('darwin-x64').find( (d) => d.resolvedName === '@moonshot-ai/pi-tui', ); expect(macPiTui?.nativeFileRelatives).toEqual([ - 'native/darwin/prebuilds/darwin-x64/darwin-modifiers.node', + 'native/darwin/prebuilds/darwin-x64/darwin-platform.node', ]); const winArmPiTui = resolveTargetDeps('win32-arm64').find( (d) => d.resolvedName === '@moonshot-ai/pi-tui', ); expect(winArmPiTui?.nativeFileRelatives).toEqual([ - 'native/win32/prebuilds/win32-arm64/win32-console-mode.node', + 'native/win32/prebuilds/win32-arm64/win32-platform.node', ]); }); diff --git a/apps/kimi-code/test/scripts/native/sign-args.test.ts b/apps/kimi-code/test/scripts/native/sign-args.test.ts index 803f1820a..641af4274 100644 --- a/apps/kimi-code/test/scripts/native/sign-args.test.ts +++ b/apps/kimi-code/test/scripts/native/sign-args.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest'; -import { buildCodesignArgs } from '../../../scripts/native/04-sign.mjs'; +import { buildAzureSignCommand, buildCodesignArgs } from '../../../scripts/native/04-sign.mjs'; describe('buildCodesignArgs', () => { it('returns ad-hoc args for identity "-"', () => { @@ -46,3 +46,19 @@ describe('buildCodesignArgs', () => { expect(args).not.toContain('--keychain'); }); }); + +describe('buildAzureSignCommand', () => { + it('composes Invoke-TrustedSigning with endpoint, profile, account and file', () => { + const command = buildAzureSignCommand({ + endpoint: 'https://eus.codesigning.azure.net', + accountName: 'test-account', + profileName: 'test-profile', + executable: 'C:\\out\\kimi.exe', + }); + expect(command).toBe( + "Invoke-TrustedSigning -Endpoint 'https://eus.codesigning.azure.net' -CertificateProfileName 'test-profile' " + + "-CodeSigningAccountName 'test-account' -TimestampRfc3161 'http://timestamp.acs.microsoft.com' " + + "-TimestampDigest 'SHA256' -FileDigest 'SHA256' -Files 'C:\\out\\kimi.exe'", + ); + }); +}); diff --git a/apps/kimi-code/test/tui/activity-pane.test.ts b/apps/kimi-code/test/tui/activity-pane.test.ts index 1501d65e4..3d4aaeb12 100644 --- a/apps/kimi-code/test/tui/activity-pane.test.ts +++ b/apps/kimi-code/test/tui/activity-pane.test.ts @@ -47,7 +47,10 @@ function makeDriverWithTerminalProgress(): { setProgress: ReturnType void>>; } { const setProgress = vi.fn<(active: boolean) => void>(); - const driver = new KimiTUI({} as never, makeStartupInput()) as unknown as ActivityDriver; + const driver = new KimiTUI( + { onConfigSectionChanged: () => () => {} } as never, + makeStartupInput(), + ) as unknown as ActivityDriver; vi.spyOn(driver.state.ui, 'requestRender').mockImplementation(() => {}); driver.state.terminal = { columns: 80, setProgress } as unknown as TUIState['terminal']; driver.state.terminalState.supportsProgress = true; @@ -141,7 +144,7 @@ describe('updateActivityPane terminal progress', () => { expect(setProgress).toHaveBeenLastCalledWith(false); }); - it('keeps terminal progress active without showing a thinking spinner', () => { + it('keeps terminal progress active while showing the thinking spinner', () => { vi.useFakeTimers(); try { const { driver, state, setProgress } = makeDriverWithTerminalProgress(); @@ -152,8 +155,8 @@ describe('updateActivityPane terminal progress', () => { expect(setProgress).toHaveBeenCalledTimes(1); expect(setProgress).toHaveBeenLastCalledWith(true); - expect(state.activitySpinner).toBeNull(); - expect(state.activityContainer.children).toHaveLength(0); + expect(state.activitySpinner).not.toBeNull(); + expect(state.activityContainer.children).toHaveLength(1); state.appState.streamingPhase = 'idle'; driver.updateActivityPane(); diff --git a/apps/kimi-code/test/tui/banner/audience.test.ts b/apps/kimi-code/test/tui/banner/audience.test.ts new file mode 100644 index 000000000..85f4ed19e --- /dev/null +++ b/apps/kimi-code/test/tui/banner/audience.test.ts @@ -0,0 +1,219 @@ +import { describe, expect, it, vi } from 'vitest'; + +import { + meetsBannerAudience, + resolveBannerAudienceContext, + type BannerAudienceContext, + type BannerUserInfoFetcher, +} from '#/tui/banner/audience'; + +const loggedIn: BannerAudienceContext = { + login: 'logged_in', + userLevel: 27, + goodsVersion: 1, + accountRegion: 'cn', +}; +const anonymous: BannerAudienceContext = { login: 'anonymous' }; +const unknown: BannerAudienceContext = { login: 'unknown' }; + +describe('meetsBannerAudience', () => { + it('matches everyone when kfc_audience is absent', () => { + for (const ctx of [loggedIn, anonymous, unknown]) { + expect(meetsBannerAudience(undefined, ctx)).toBe(true); + expect(meetsBannerAudience(null, ctx)).toBe(true); + } + }); + + it('rejects a malformed kfc_audience instead of guessing', () => { + for (const ctx of [loggedIn, anonymous, unknown]) { + expect(meetsBannerAudience('all', ctx)).toBe(false); + expect(meetsBannerAudience(42, ctx)).toBe(false); + expect(meetsBannerAudience([], ctx)).toBe(false); + } + }); + + describe('login', () => { + it('matches everyone when missing, empty, or all', () => { + for (const login of [undefined, null, '', 'all']) { + expect(meetsBannerAudience({ login }, loggedIn)).toBe(true); + expect(meetsBannerAudience({ login }, anonymous)).toBe(true); + expect(meetsBannerAudience({ login }, unknown)).toBe(true); + } + }); + + it('matches logged_in only against a logged-in context', () => { + expect(meetsBannerAudience({ login: 'logged_in' }, loggedIn)).toBe(true); + expect(meetsBannerAudience({ login: 'logged_in' }, anonymous)).toBe(false); + expect(meetsBannerAudience({ login: 'logged_in' }, unknown)).toBe(false); + }); + + it('matches anonymous only against an anonymous context', () => { + expect(meetsBannerAudience({ login: 'anonymous' }, loggedIn)).toBe(false); + expect(meetsBannerAudience({ login: 'anonymous' }, anonymous)).toBe(true); + expect(meetsBannerAudience({ login: 'anonymous' }, unknown)).toBe(false); + }); + + it('rejects an unrecognized login value for everyone', () => { + for (const ctx of [loggedIn, anonymous, unknown]) { + expect(meetsBannerAudience({ login: 'vip' }, ctx)).toBe(false); + } + }); + }); + + describe('tiers', () => { + it('matches everyone when missing, empty, or not an array', () => { + for (const tiers of [undefined, null, [], 'paid']) { + expect(meetsBannerAudience({ tiers }, loggedIn)).toBe(true); + expect(meetsBannerAudience({ tiers }, anonymous)).toBe(true); + } + }); + + it('matches when the context user level is in the list', () => { + expect(meetsBannerAudience({ tiers: [15, 27] }, loggedIn)).toBe(true); + expect(meetsBannerAudience({ tiers: [15, 20] }, loggedIn)).toBe(false); + }); + + it('never matches a context without a user level', () => { + expect(meetsBannerAudience({ tiers: [27] }, anonymous)).toBe(false); + expect(meetsBannerAudience({ tiers: [27] }, unknown)).toBe(false); + }); + + it('ignores non-numeric entries', () => { + expect(meetsBannerAudience({ tiers: ['x', 27] }, loggedIn)).toBe(true); + expect(meetsBannerAudience({ tiers: ['x'] }, loggedIn)).toBe(true); + }); + }); + + describe('goods_version', () => { + it('matches everyone when missing', () => { + for (const ctx of [loggedIn, anonymous, unknown]) { + expect(meetsBannerAudience({}, ctx)).toBe(true); + expect(meetsBannerAudience({ goods_version: null }, ctx)).toBe(true); + } + }); + + it('matches only the same goods version', () => { + expect(meetsBannerAudience({ goods_version: 1 }, loggedIn)).toBe(true); + expect(meetsBannerAudience({ goods_version: 2 }, loggedIn)).toBe(false); + }); + + it('never matches a context without a goods version', () => { + expect(meetsBannerAudience({ goods_version: 1 }, anonymous)).toBe(false); + expect(meetsBannerAudience({ goods_version: 1 }, unknown)).toBe(false); + }); + + it('rejects values outside 1 and 2 for everyone', () => { + for (const ctx of [loggedIn, anonymous, unknown]) { + expect(meetsBannerAudience({ goods_version: 3 }, ctx)).toBe(false); + expect(meetsBannerAudience({ goods_version: '1' }, ctx)).toBe(false); + } + }); + }); + + describe('region', () => { + it('matches everyone when missing, empty, or all', () => { + for (const region of [undefined, null, '', 'all']) { + expect(meetsBannerAudience({ region }, loggedIn)).toBe(true); + expect(meetsBannerAudience({ region }, anonymous)).toBe(true); + } + }); + + it('matches only the same account region', () => { + expect(meetsBannerAudience({ region: 'cn' }, loggedIn)).toBe(true); + expect(meetsBannerAudience({ region: 'oversea' }, loggedIn)).toBe(false); + expect(meetsBannerAudience({ region: 'oversea' }, { ...loggedIn, accountRegion: 'oversea' })).toBe(true); + }); + + it('normalizes case and surrounding whitespace', () => { + expect(meetsBannerAudience({ region: ' CN ' }, loggedIn)).toBe(true); + }); + + it('never matches a context without an account region', () => { + expect(meetsBannerAudience({ region: 'cn' }, anonymous)).toBe(false); + expect(meetsBannerAudience({ region: 'cn' }, unknown)).toBe(false); + }); + + it('rejects an unrecognized region value for everyone', () => { + for (const ctx of [loggedIn, anonymous, unknown]) { + expect(meetsBannerAudience({ region: 'mars' }, ctx)).toBe(false); + } + }); + }); + + it('requires every present constraint to match', () => { + const audience = { login: 'logged_in', tiers: [27], goods_version: 1, region: 'cn' }; + expect(meetsBannerAudience(audience, loggedIn)).toBe(true); + expect(meetsBannerAudience(audience, { ...loggedIn, userLevel: 10 })).toBe(false); + expect(meetsBannerAudience(audience, { ...loggedIn, goodsVersion: 2 })).toBe(false); + expect(meetsBannerAudience(audience, { ...loggedIn, accountRegion: 'oversea' })).toBe(false); + expect(meetsBannerAudience(audience, anonymous)).toBe(false); + }); +}); + +describe('resolveBannerAudienceContext', () => { + const fetcherReturning = (result: unknown): BannerUserInfoFetcher => + vi.fn().mockResolvedValue(result) as unknown as BannerUserInfoFetcher; + + it('returns anonymous without any request when there is no access token', async () => { + const fetchUserInfo = vi.fn(); + const ctx = await resolveBannerAudienceContext(undefined, { fetchUserInfo }); + expect(ctx).toEqual({ login: 'anonymous' }); + expect(fetchUserInfo).not.toHaveBeenCalled(); + }); + + it('builds a logged-in context from the userinfo payload', async () => { + const fetchUserInfo = fetcherReturning({ + kind: 'ok', + userInfo: { userLevel: 27, goodsVersion: 1, region: 'REGION_CN' }, + }); + const ctx = await resolveBannerAudienceContext('token', { fetchUserInfo, baseUrl: 'https://example.com' }); + expect(ctx).toEqual({ login: 'logged_in', userLevel: 27, goodsVersion: 1, accountRegion: 'cn' }); + }); + + it('requests the /me URL of the resolved base URL with the bearer token', async () => { + const fetchUserInfo = fetcherReturning({ + kind: 'ok', + userInfo: { userLevel: 10, region: 'REGION_CN' }, + }); + await resolveBannerAudienceContext('token', { fetchUserInfo, baseUrl: 'https://example.com/coding/v1/' }); + expect(fetchUserInfo).toHaveBeenCalledWith('https://example.com/coding/v1/me', 'token'); + }); + + it('leaves the account region unset when the payload region is unrecognized', async () => { + const fetchUserInfo = fetcherReturning({ + kind: 'ok', + userInfo: { userLevel: 10, region: 'REGION_SOMEWHERE' }, + }); + const ctx = await resolveBannerAudienceContext('token', { fetchUserInfo, baseUrl: 'https://example.com' }); + expect(ctx).toEqual({ login: 'logged_in', userLevel: 10, goodsVersion: undefined, accountRegion: undefined }); + }); + + it('maps REGION_OVERSEA to the oversea account region', async () => { + const fetchUserInfo = fetcherReturning({ + kind: 'ok', + userInfo: { userLevel: 10, region: 'REGION_OVERSEA' }, + }); + const ctx = await resolveBannerAudienceContext('token', { fetchUserInfo, baseUrl: 'https://example.com' }); + expect(ctx).toMatchObject({ login: 'logged_in', accountRegion: 'oversea' }); + }); + + it('treats 401, 402, and 403 as anonymous', async () => { + for (const status of [401, 402, 403]) { + const fetchUserInfo = fetcherReturning({ kind: 'error', status, message: 'denied' }); + const ctx = await resolveBannerAudienceContext('token', { fetchUserInfo, baseUrl: 'https://example.com' }); + expect(ctx).toEqual({ login: 'anonymous' }); + } + }); + + it('treats other failures and a throwing fetcher as unknown', async () => { + const cases: BannerUserInfoFetcher[] = [ + fetcherReturning({ kind: 'error', status: 500, message: 'boom' }), + fetcherReturning({ kind: 'error', message: 'timeout' }), + vi.fn().mockRejectedValue(new Error('network down')) as unknown as BannerUserInfoFetcher, + ]; + for (const fetchUserInfo of cases) { + const ctx = await resolveBannerAudienceContext('token', { fetchUserInfo, baseUrl: 'https://example.com' }); + expect(ctx).toEqual({ login: 'unknown' }); + } + }); +}); diff --git a/apps/kimi-code/test/tui/banner/banner-provider.test.ts b/apps/kimi-code/test/tui/banner/banner-provider.test.ts index 12f8573ca..6eb31f4d2 100644 --- a/apps/kimi-code/test/tui/banner/banner-provider.test.ts +++ b/apps/kimi-code/test/tui/banner/banner-provider.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from 'vitest'; +import type { BannerAudienceContext } from '#/tui/banner/audience'; import { selectBannerState, selectDisplayableBanner, @@ -7,530 +8,263 @@ import { } from '#/tui/banner/banner-provider'; import type { BannerState } from '#/tui/types'; +const now = new Date('2026-06-15T12:00:00+08:00'); + +const audience: BannerAudienceContext = { + login: 'logged_in', + userLevel: 27, + goodsVersion: 1, + accountRegion: 'cn', +}; + +function tip(overrides: Record = {}): Record { + return { banner_id: 'test-banner', banner_enabled: true, banner_maintext: 'Main', ...overrides }; +} + +function select(json: unknown, random: () => number = () => 0): BannerState | null { + return selectBannerState({ json, clientVersion: '0.14.0', now, random, audience, system: 'mac' }); +} + +function selectWithSystem(json: unknown, system: string): BannerState | null { + return selectBannerState({ json, clientVersion: '0.14.0', now, random: () => 0, audience, system }); +} + describe('selectBannerState', () => { - const now = new Date('2026-06-15T12:00:00+08:00'); - - function expectAlwaysBanner( - result: BannerState | null, - expected: Pick, - ): BannerState { - expect(result).not.toBeNull(); - const banner = result!; - expect(banner).toMatchObject({ ...expected, display: 'always' }); - expect(banner.key).toEqual(expect.any(String)); - expect(banner.ttlHours).toBeUndefined(); - return banner; - } - - it('returns the active banner when enabled and no time window is set', () => { - const result = selectBannerState( - { - banner_enabled: true, - banner_title: 'New', - banner_maintext: 'Active', - banner_subtext: 'Details', - }, - '0.14.0', - now, - () => 0, - ); - expectAlwaysBanner(result, { tag: 'New', mainText: 'Active', subText: 'Details' }); + it('returns null when banner_tips is missing, not an array, or empty', () => { + expect(select({})).toBeNull(); + expect(select({ banner_tips: 'nope' })).toBeNull(); + expect(select({ banner_tips: [] })).toBeNull(); }); - it('returns null when the active banner is outside its time window', () => { - const result = selectBannerState( - { - banner_enabled: true, - banner_title: 'Old', - banner_maintext: 'Expired', - banner_start_time: '2026-05-01T00:00:00+08:00', - banner_end_time: '2026-05-31T00:00:00+08:00', - }, - '0.14.0', - now, - () => 0, - ); - expect(result).toBeNull(); - }); - - it('filters out the active banner when the client version is too low', () => { - const result = selectBannerState( - { - banner_enabled: true, - banner_maintext: 'New', - banner_min_version: '0.15.0', - }, - '0.14.0', - now, - () => 0, - ); - expect(result).toBeNull(); - }); - - it('shows the active banner only below banner_max_version', () => { - const json = { - banner_enabled: true, - banner_maintext: 'Upgrade', - banner_max_version: '0.15.0', - }; - expect(selectBannerState(json, '0.14.0', now, () => 0)).toMatchObject({ - mainText: 'Upgrade', + it('returns the single enabled tip with its fields mapped', () => { + const result = select({ + banner_tips: [ + tip({ + banner_title: 'New', + banner_maintext: 'Active', + banner_subtext: 'Details', + }), + ], }); - expect(selectBannerState(json, '0.15.0', now, () => 0)).toBeNull(); - expect(selectBannerState(json, '0.16.0', now, () => 0)).toBeNull(); - }); - - it('shows the active banner only on the exact banner_version', () => { - const json = { - banner_enabled: true, - banner_maintext: 'Pinned', - banner_version: '0.14.0', - }; - expect(selectBannerState(json, '0.14.0', now, () => 0)).toMatchObject({ - mainText: 'Pinned', - }); - expect(selectBannerState(json, '0.14.1', now, () => 0)).toBeNull(); - expect(selectBannerState(json, '0.13.9', now, () => 0)).toBeNull(); - }); - - it('combines min and max version as an inclusive-exclusive range', () => { - const json = { - banner_enabled: true, - banner_maintext: 'Range', - banner_min_version: '0.13.0', - banner_max_version: '0.15.0', - }; - expect(selectBannerState(json, '0.12.9', now, () => 0)).toBeNull(); - expect(selectBannerState(json, '0.13.0', now, () => 0)).not.toBeNull(); - expect(selectBannerState(json, '0.14.9', now, () => 0)).not.toBeNull(); - expect(selectBannerState(json, '0.15.0', now, () => 0)).toBeNull(); - }); - - it('filters out the banner when a version constraint is not valid semver', () => { - for (const constraint of [ - { banner_max_version: 'not-a-version' }, - { banner_version: 'not-a-version' }, - ]) { - const result = selectBannerState( - { - banner_enabled: true, - banner_maintext: 'Broken', - ...constraint, - }, - '0.14.0', - now, - () => 0, - ); - expect(result).toBeNull(); - } - }); - - it('picks a random enabled fallback when the active banner is not shown', () => { - const result = selectBannerState( - { - banner_enabled: false, - banner_fallback_enabled: true, - banner_fallback_list: [ - { enabled: true, banner_title: 'Tip', banner_maintext: 'First' }, - { enabled: true, banner_title: 'Tip', banner_maintext: 'Second' }, - ], - }, - '0.14.0', - now, - () => 0.75, - ); - expectAlwaysBanner(result, { tag: 'Tip', mainText: 'Second', subText: null }); - }); - - it('filters out fallback entries when the client version is too low', () => { - const result = selectBannerState( - { - banner_enabled: false, - banner_fallback_enabled: true, - banner_fallback_list: [ - { enabled: true, banner_maintext: 'Old tip' }, - { enabled: true, banner_maintext: 'New tip', banner_min_version: '0.15.0' }, - ], - }, - '0.14.0', - now, - () => 0, - ); - expectAlwaysBanner(result, { tag: null, mainText: 'Old tip', subText: null }); - }); - - it('filters out fallback entries by max and exact version', () => { - const result = selectBannerState( - { - banner_enabled: false, - banner_fallback_enabled: true, - banner_fallback_list: [ - { enabled: true, banner_maintext: 'Too new', banner_max_version: '0.14.0' }, - { enabled: true, banner_maintext: 'Other version', banner_version: '0.13.0' }, - { enabled: true, banner_maintext: 'Matching', banner_version: '0.14.0' }, - ], - }, - '0.14.0', - now, - () => 0.99, - ); - expectAlwaysBanner(result, { tag: null, mainText: 'Matching', subText: null }); - }); - - it('returns null when no enabled fallback entries exist', () => { - const result = selectBannerState( - { - banner_enabled: false, - banner_fallback_enabled: true, - banner_fallback_list: [{ enabled: false, banner_maintext: 'Hidden' }], - }, - '0.14.0', - now, - () => 0, - ); - expect(result).toBeNull(); - }); - - it('returns null for malformed input fields', () => { - expect(selectBannerState({ weird: true }, '0.14.0', now, () => 0)).toBeNull(); - }); - - it('falls back to the fallback list when banner_enabled is missing', () => { - const result = selectBannerState( - { - banner_fallback_enabled: true, - banner_fallback_list: [{ enabled: true, banner_maintext: 'Fallback' }], - }, - '0.14.0', - now, - () => 0, - ); - expectAlwaysBanner(result, { tag: null, mainText: 'Fallback', subText: null }); - }); - - it('treats an empty tag as null while still showing the banner', () => { - const result = selectBannerState( - { - banner_enabled: true, - banner_title: '', - banner_maintext: 'No tag', - }, - '0.14.0', - now, - () => 0, - ); - expectAlwaysBanner(result, { tag: null, mainText: 'No tag', subText: null }); - }); - - it('makes the active banner unavailable when mainText is empty', () => { - const result = selectBannerState( - { - banner_enabled: true, - banner_title: 'New', - banner_maintext: '', - banner_fallback_enabled: true, - banner_fallback_list: [{ enabled: true, banner_maintext: 'Fallback' }], - }, - '0.14.0', - now, - () => 0, - ); - expectAlwaysBanner(result, { tag: null, mainText: 'Fallback', subText: null }); - }); - - it('treats missing subtext as null', () => { - const result = selectBannerState( - { - banner_enabled: true, - banner_maintext: 'Main only', - }, - '0.14.0', - now, - () => 0, - ); - expectAlwaysBanner(result, { tag: null, mainText: 'Main only', subText: null }); - }); - - it('treats empty time fields as always valid', () => { - const result = selectBannerState( - { - banner_enabled: true, - banner_maintext: 'Always on', - banner_start_time: '', - banner_end_time: null, - }, - '0.14.0', - now, - () => 0, - ); - expectAlwaysBanner(result, { tag: null, mainText: 'Always on', subText: null }); - }); - - it('falls back to UTC when timestamps have no timezone', () => { - const result = selectBannerState( - { - banner_enabled: true, - banner_maintext: 'UTC fallback', - banner_start_time: '2026-06-15T04:00:00', - banner_end_time: '2026-06-15T20:00:00', - }, - '0.14.0', - now, - () => 0, - ); - expectAlwaysBanner(result, { tag: null, mainText: 'UTC fallback', subText: null }); - }); - - it('returns null when the fallback list is empty', () => { - const result = selectBannerState( - { - banner_enabled: false, - banner_fallback_enabled: true, - banner_fallback_list: [], - }, - '0.14.0', - now, - () => 0, - ); - expect(result).toBeNull(); - }); - - it('returns null when the fallback list is missing', () => { - const result = selectBannerState( - { - banner_enabled: false, - banner_fallback_enabled: true, - }, - '0.14.0', - now, - () => 0, - ); - expect(result).toBeNull(); - }); - - it('uses banner_id as the banner key when present', () => { - const result = selectBannerState( - { - banner_enabled: true, - banner_id: 'active-1', - banner_maintext: 'Active', - }, - '0.14.0', - now, - () => 0, - ); - expect(result).toMatchObject({ key: 'active-1', display: 'always' }); - }); - - it('generates a stable hash key when banner_id is missing', () => { - const json = { - banner_enabled: true, - banner_title: 'New', - banner_maintext: 'Active', - banner_subtext: 'Details', - }; - - const first = selectBannerState(json, '0.14.0', now, () => 0); - const second = selectBannerState(json, '0.14.0', now, () => 0); - const changedDisplay = selectBannerState( - { - ...json, - banner_display: 'cooldown', - banner_display_ttl_hours: 72, - }, - '0.14.0', - now, - () => 0, - ); - - expect(first).not.toBeNull(); - expect(second).not.toBeNull(); - expect(changedDisplay).not.toBeNull(); - expect(first!.key).toMatch(/^[0-9a-f]{32}$/); - expect(second!.key).toBe(first!.key); - expect(changedDisplay!.key).not.toBe(first!.key); - }); - - it('parses cooldown display and ttl hours', () => { - const result = selectBannerState( - { - banner_enabled: true, - banner_id: 'active-1', - banner_maintext: 'Active', - banner_display: 'cooldown', - banner_display_ttl_hours: 72, - }, - '0.14.0', - now, - () => 0, - ); expect(result).toMatchObject({ - key: 'active-1', - display: 'cooldown', - ttlHours: 72, + tag: 'New', + mainText: 'Active', + subText: 'Details', + display: 'always', }); - }); - - it('falls back to 24 hours when cooldown ttl is invalid', () => { - const result = selectBannerState( - { - banner_enabled: true, - banner_id: 'active-1', - banner_maintext: 'Active', - banner_display: 'cooldown', - banner_display_ttl_hours: 0, - }, - '0.14.0', - now, - () => 0, - ); - expect(result).toMatchObject({ display: 'cooldown', ttlHours: 24 }); - }); - - it('falls back to always for unknown display values', () => { - const result = selectBannerState( - { - banner_enabled: true, - banner_id: 'active-1', - banner_maintext: 'Active', - banner_display: '24h', - }, - '0.14.0', - now, - () => 0, - ); - expect(result).toMatchObject({ display: 'always' }); + expect(result?.key).toEqual(expect.any(String)); expect(result?.ttlHours).toBeUndefined(); }); - it('supports fallback display and ttl fields', () => { - const result = selectBannerState( - { - banner_enabled: false, - banner_fallback_enabled: true, - banner_fallback_list: [ - { - enabled: true, - banner_id: 'fallback-1', - banner_maintext: 'Fallback', - banner_display: 'cooldown', - banner_display_ttl_hours: 168, - }, - ], - }, - '0.14.0', - now, - () => 0, - ); - expect(result).toMatchObject({ - key: 'fallback-1', - display: 'cooldown', - ttlHours: 168, + it('skips entries that are not enabled or not objects', () => { + const result = select({ + banner_tips: [ + 'garbage', + null, + tip({ banner_enabled: false, banner_maintext: 'Hidden' }), + tip({ banner_enabled: 'yes', banner_maintext: 'Not true' }), + tip({ banner_maintext: 'Visible' }), + ], }); + expect(result).toMatchObject({ mainText: 'Visible' }); }); - it('shows the banner when banner_platform is missing, empty, all, or cli', () => { + it('keeps an entry with only a title and no main text', () => { + const result = select({ + banner_tips: [tip({ banner_title: 'Title only', banner_maintext: '' })], + }); + expect(result).toMatchObject({ tag: 'Title only', mainText: null }); + }); + + it('skips entries when both title and main text are empty', () => { + const result = select({ + banner_tips: [ + tip({ banner_title: '', banner_maintext: '' }), + tip({ banner_title: null, banner_maintext: ' ' }), + tip({ banner_maintext: 'Visible' }), + ], + }); + expect(result).toMatchObject({ mainText: 'Visible' }); + }); + + it('filters entries by min, max, and exact version', () => { + const result = select({ + banner_tips: [ + tip({ banner_maintext: 'Too new', banner_min_version: '0.15.0' }), + tip({ banner_maintext: 'Too old', banner_max_version: '0.14.0' }), + tip({ banner_maintext: 'Pinned elsewhere', banner_version: '0.13.0' }), + tip({ banner_maintext: 'Matching', banner_min_version: '0.13.0', banner_max_version: '0.15.0' }), + ], + }); + expect(result).toMatchObject({ mainText: 'Matching' }); + }); + + it('filters out entries with a non-semver version constraint', () => { + expect(select({ banner_tips: [tip({ banner_max_version: 'not-a-version' })] })).toBeNull(); + expect(select({ banner_tips: [tip({ banner_version: 'not-a-version' })] })).toBeNull(); + }); + + it('filters entries by platform', () => { + const result = select({ + banner_tips: [ + tip({ banner_maintext: 'Desktop', banner_platform: 'desktop' }), + tip({ banner_maintext: 'Web', banner_platform: 'web' }), + tip({ banner_maintext: 'Cli', banner_platform: 'cli' }), + ], + }); + expect(result).toMatchObject({ mainText: 'Cli' }); + }); + + it('matches any system when banner_system is missing, empty, or not an array', () => { + for (const banner_system of [undefined, null, [], 'mac']) { + const result = selectWithSystem({ banner_tips: [tip({ banner_system })] }, 'linux'); + expect(result, `banner_system=${String(banner_system)}`).not.toBeNull(); + } + }); + + it('matches only when the current system is in banner_system', () => { + const json = { banner_tips: [tip({ banner_system: ['mac', 'linux'] })] }; + expect(selectWithSystem(json, 'mac')).not.toBeNull(); + expect(selectWithSystem(json, 'linux')).not.toBeNull(); + expect(selectWithSystem(json, 'win')).toBeNull(); + }); + + it('normalizes case and whitespace of banner_system entries', () => { + const json = { banner_tips: [tip({ banner_system: [' MAC '] })] }; + expect(selectWithSystem(json, 'mac')).not.toBeNull(); + }); + + it('ignores non-string banner_system entries', () => { + expect(selectWithSystem({ banner_tips: [tip({ banner_system: [42, 'mac'] })] }, 'mac')).not.toBeNull(); + expect(selectWithSystem({ banner_tips: [tip({ banner_system: [42] })] }, 'win')).not.toBeNull(); + }); + + it('filters entries by system among multiple tips', () => { + const result = selectWithSystem( + { + banner_tips: [ + tip({ banner_maintext: 'Mac only', banner_system: ['mac'] }), + tip({ banner_maintext: 'Windows only', banner_system: ['win'] }), + ], + }, + 'win', + ); + expect(result).toMatchObject({ mainText: 'Windows only' }); + }); + + it('shows entries when platform is missing, empty, all, or cli', () => { for (const banner_platform of [undefined, null, '', ' ', 'all', 'cli', 'ALL', ' CLI ']) { - const result = selectBannerState( - { - banner_enabled: true, - banner_maintext: 'Active', - banner_platform, - }, - '0.14.0', - now, - () => 0, - ); + const result = select({ banner_tips: [tip({ banner_platform })] }); expect(result, `platform=${String(banner_platform)}`).not.toBeNull(); } }); - it('skips the active banner when banner_platform targets other platforms', () => { - for (const banner_platform of ['desktop', 'web']) { - const result = selectBannerState( - { - banner_enabled: true, - banner_maintext: 'Active', - banner_platform, - banner_fallback_enabled: true, - banner_fallback_list: [{ enabled: true, banner_maintext: 'Fallback' }], - }, - '0.14.0', - now, - () => 0, - ); - expectAlwaysBanner(result, { tag: null, mainText: 'Fallback', subText: null }); - } + it('filters entries by their time window', () => { + const result = select({ + banner_tips: [ + tip({ banner_maintext: 'Expired', banner_end_time: '2026-06-01T00:00:00+08:00' }), + tip({ banner_maintext: 'Future', banner_start_time: '2026-07-01T00:00:00+08:00' }), + tip({ + banner_maintext: 'Current', + banner_start_time: '2026-06-01T00:00:00+08:00', + banner_end_time: '2026-06-30T00:00:00+08:00', + }), + ], + }); + expect(result).toMatchObject({ mainText: 'Current' }); }); - it('filters fallback entries by banner_platform', () => { - const result = selectBannerState( - { - banner_enabled: false, - banner_fallback_enabled: true, - banner_fallback_list: [ - { enabled: true, banner_maintext: 'Desktop tip', banner_platform: 'desktop' }, - { enabled: true, banner_maintext: 'Web tip', banner_platform: 'web' }, - { enabled: true, banner_maintext: 'Cli tip', banner_platform: 'cli' }, - ], - }, - '0.14.0', - now, - () => 0.99, - ); - expectAlwaysBanner(result, { tag: null, mainText: 'Cli tip', subText: null }); + it('treats missing or empty time fields as always valid', () => { + const result = select({ + banner_tips: [tip({ banner_start_time: '', banner_end_time: null })], + }); + expect(result).not.toBeNull(); }); - it('filters fallback entries by their time window', () => { - const result = selectBannerState( - { - banner_enabled: false, - banner_fallback_enabled: true, - banner_fallback_list: [ - { - enabled: true, - banner_maintext: 'Expired tip', - banner_end_time: '2026-06-01T00:00:00+08:00', - }, - { - enabled: true, - banner_maintext: 'Future tip', - banner_start_time: '2026-07-01T00:00:00+08:00', - }, - { - enabled: true, - banner_maintext: 'Current tip', - banner_start_time: '2026-06-01T00:00:00+08:00', - banner_end_time: '2026-06-30T00:00:00+08:00', - }, - ], - }, - '0.14.0', - now, - () => 0.99, - ); - expectAlwaysBanner(result, { tag: null, mainText: 'Current tip', subText: null }); + it('falls back to UTC when timestamps have no timezone', () => { + const result = select({ + banner_tips: [ + tip({ + banner_start_time: '2026-06-15T04:00:00', + banner_end_time: '2026-06-15T20:00:00', + }), + ], + }); + expect(result).not.toBeNull(); }); - it('treats fallback entries without time fields as always valid', () => { - const result = selectBannerState( - { - banner_enabled: false, - banner_fallback_enabled: true, - banner_fallback_list: [ - { enabled: true, banner_maintext: 'No window', banner_start_time: '', banner_end_time: null }, - ], - }, - '0.14.0', - now, - () => 0, - ); - expectAlwaysBanner(result, { tag: null, mainText: 'No window', subText: null }); + it('picks randomly among all matching entries', () => { + const json = { + banner_tips: [ + tip({ banner_maintext: 'First' }), + tip({ banner_maintext: 'Second' }), + tip({ banner_maintext: 'Third' }), + ], + }; + expect(select(json, () => 0)).toMatchObject({ mainText: 'First' }); + expect(select(json, () => 0.5)).toMatchObject({ mainText: 'Second' }); + expect(select(json, () => 0.99)).toMatchObject({ mainText: 'Third' }); + }); + + it('skips entries whose audience does not match the context', () => { + const result = select({ + banner_tips: [ + tip({ banner_maintext: 'Other tiers', kfc_audience: { login: 'all', tiers: [15, 20], region: 'all' } }), + tip({ banner_maintext: 'Anonymous only', kfc_audience: { login: 'anonymous' } }), + tip({ banner_maintext: 'Oversea only', kfc_audience: { region: 'oversea' } }), + tip({ banner_maintext: 'Mine', kfc_audience: { login: 'logged_in', tiers: [27], region: 'cn' } }), + ], + }); + expect(result).toMatchObject({ mainText: 'Mine' }); + }); + + it('uses banner_id as the banner key', () => { + const result = select({ banner_tips: [tip({ banner_id: 'active-1' })] }); + expect(result).toMatchObject({ key: 'active-1' }); + }); + + it('skips entries without a valid banner_id', () => { + const result = select({ + banner_tips: [ + tip({ banner_id: '', banner_maintext: 'Empty id' }), + tip({ banner_id: ' ', banner_maintext: 'Blank id' }), + tip({ banner_id: null, banner_maintext: 'Missing id' }), + tip({ banner_id: 'kept', banner_maintext: 'Kept' }), + ], + }); + expect(result).toMatchObject({ key: 'kept' }); + }); + + it('parses cooldown display and ttl hours per entry', () => { + const result = select({ + banner_tips: [ + tip({ banner_id: 'c', banner_display: 'cooldown', banner_display_ttl_hours: 72 }), + ], + }); + expect(result).toMatchObject({ key: 'c', display: 'cooldown', ttlHours: 72 }); + }); + + it('falls back to 24 hours when cooldown ttl is invalid', () => { + const result = select({ + banner_tips: [tip({ banner_display: 'cooldown', banner_display_ttl_hours: 0 })], + }); + expect(result).toMatchObject({ display: 'cooldown', ttlHours: 24 }); + }); + + it('falls back to always for unknown display values', () => { + const result = select({ banner_tips: [tip({ banner_display: '24h' })] }); + expect(result).toMatchObject({ display: 'always' }); + expect(result?.ttlHours).toBeUndefined(); + }); + + it('treats an empty tag as null and missing subtext as null', () => { + const result = select({ banner_tips: [tip({ banner_title: '', banner_maintext: 'No tag' })] }); + expect(result).toMatchObject({ tag: null, mainText: 'No tag', subText: null }); }); }); describe('shouldDisplayBanner', () => { - const now = new Date('2026-06-16T12:00:00.000Z'); + const boundaryNow = new Date('2026-06-16T12:00:00.000Z'); const banner: BannerState = { key: 'always', @@ -550,15 +284,19 @@ describe('shouldDisplayBanner', () => { always: { lastShownAt: '2026-06-16T11:59:59.000Z' }, }, }, - now, + boundaryNow, ), ).toBe(true); }); it('returns true for once banners without a shown record', () => { - expect(shouldDisplayBanner({ ...banner, key: 'once', display: 'once' }, { version: 1, shown: {} }, now)).toBe( - true, - ); + expect( + shouldDisplayBanner( + { ...banner, key: 'once', display: 'once' }, + { version: 1, shown: {} }, + boundaryNow, + ), + ).toBe(true); }); it('returns false for once banners with a shown record', () => { @@ -571,7 +309,7 @@ describe('shouldDisplayBanner', () => { once: { lastShownAt: '2026-06-16T11:59:59.000Z' }, }, }, - now, + boundaryNow, ), ).toBe(false); }); @@ -586,7 +324,7 @@ describe('shouldDisplayBanner', () => { once: { lastShownAt: 'not-a-date' }, }, }, - now, + boundaryNow, ), ).toBe(true); }); @@ -601,7 +339,7 @@ describe('shouldDisplayBanner', () => { cooldown: { lastShownAt: '2026-06-16T00:00:00.000Z' }, }, }, - now, + boundaryNow, ), ).toBe(false); }); @@ -616,7 +354,7 @@ describe('shouldDisplayBanner', () => { cooldown: { lastShownAt: '2026-06-15T12:00:00.000Z' }, }, }, - now, + boundaryNow, ), ).toBe(true); }); @@ -631,7 +369,7 @@ describe('shouldDisplayBanner', () => { cooldown: { lastShownAt: '2026-06-16T11:30:00.000Z' }, }, }, - now, + boundaryNow, ), ).toBe(false); expect( @@ -643,138 +381,103 @@ describe('shouldDisplayBanner', () => { cooldown: { lastShownAt: '2026-06-09T12:00:01.000Z' }, }, }, - now, + boundaryNow, ), ).toBe(false); }); }); describe('selectDisplayableBanner', () => { - const now = new Date('2026-06-16T12:00:00.000Z'); + const boundaryNow = new Date('2026-06-16T12:00:00.000Z'); - it('falls back when the active once banner was already shown', () => { - const result = selectDisplayableBanner({ - json: { - banner_enabled: true, - banner_id: 'active', - banner_maintext: 'Active', - banner_display: 'once', - banner_fallback_enabled: true, - banner_fallback_list: [ - { - enabled: true, - banner_id: 'fallback', - banner_maintext: 'Fallback', - banner_display: 'once', - }, + function selectDisplayable( + json: unknown, + state: { version: 1; shown: Record }, + random: () => number = () => 0, + ): BannerState | null { + return selectDisplayableBanner({ + json, + clientVersion: '0.14.0', + now: boundaryNow, + random, + audience, + system: 'mac', + state, + }); + } + + it('skips entries that were already shown and picks a displayable one', () => { + const result = selectDisplayable( + { + banner_tips: [ + tip({ banner_id: 'shown-once', banner_maintext: 'Shown', banner_display: 'once' }), + tip({ banner_id: 'fresh', banner_maintext: 'Fresh' }), ], }, - clientVersion: '0.14.0', - now, - random: () => 0, - state: { + { version: 1, shown: { - active: { lastShownAt: '2026-06-16T00:00:00.000Z' }, + 'shown-once': { lastShownAt: '2026-06-16T00:00:00.000Z' }, }, }, - }); - - expect(result).toMatchObject({ key: 'fallback', display: 'once' }); + ); + expect(result).toMatchObject({ key: 'fresh', display: 'always' }); }); - it('falls back when active cooldown is within ttl', () => { - const result = selectDisplayableBanner({ - json: { - banner_enabled: true, - banner_id: 'active', - banner_maintext: 'Active', - banner_display: 'cooldown', - banner_display_ttl_hours: 1, - banner_fallback_enabled: true, - banner_fallback_list: [ - { - enabled: true, - banner_id: 'fallback', - banner_maintext: 'Fallback', - }, + it('keeps a cooldown entry once its ttl elapsed', () => { + const result = selectDisplayable( + { + banner_tips: [ + tip({ + banner_id: 'cool', + banner_maintext: 'Cooldown', + banner_display: 'cooldown', + banner_display_ttl_hours: 24, + }), ], }, - clientVersion: '0.14.0', - now, - random: () => 0, - state: { + { version: 1, shown: { - active: { lastShownAt: '2026-06-16T11:30:00.000Z' }, + cool: { lastShownAt: '2026-06-15T12:00:00.000Z' }, }, }, - }); - - expect(result).toMatchObject({ key: 'fallback', display: 'always' }); + ); + expect(result).toMatchObject({ key: 'cool', display: 'cooldown', ttlHours: 24 }); }); - it('returns active cooldown after ttl instead of fallback', () => { - const result = selectDisplayableBanner({ - json: { - banner_enabled: true, - banner_id: 'active', - banner_maintext: 'Active', - banner_display: 'cooldown', - banner_display_ttl_hours: 24, - banner_fallback_enabled: true, - banner_fallback_list: [ - { - enabled: true, - banner_id: 'fallback', - banner_maintext: 'Fallback', - }, - ], + it('returns null when every matching entry was already shown', () => { + const result = selectDisplayable( + { + banner_tips: [tip({ banner_id: 'shown-once', banner_maintext: 'Shown', banner_display: 'once' })], }, - clientVersion: '0.14.0', - now, - random: () => 0, - state: { + { version: 1, shown: { - active: { lastShownAt: '2026-06-15T12:00:00.000Z' }, + 'shown-once': { lastShownAt: '2026-06-16T00:00:00.000Z' }, }, }, - }); - - expect(result).toMatchObject({ key: 'active', display: 'cooldown', ttlHours: 24 }); + ); + expect(result).toBeNull(); }); - it('randomly chooses only displayable fallback candidates', () => { - const result = selectDisplayableBanner({ - json: { - banner_enabled: false, - banner_fallback_enabled: true, - banner_fallback_list: [ - { - enabled: true, - banner_id: 'fallback-once', - banner_maintext: 'Fallback once', - banner_display: 'once', - }, - { - enabled: true, - banner_id: 'fallback-always', - banner_maintext: 'Fallback always', - }, + it('randomly chooses only among displayable candidates', () => { + const result = selectDisplayable( + { + banner_tips: [ + tip({ banner_id: 'shown-once', banner_maintext: 'Shown', banner_display: 'once' }), + tip({ banner_id: 'fresh-a', banner_maintext: 'Fresh A' }), + tip({ banner_id: 'fresh-b', banner_maintext: 'Fresh B' }), ], }, - clientVersion: '0.14.0', - now, - random: () => 0, - state: { + { version: 1, shown: { - 'fallback-once': { lastShownAt: '2026-06-16T00:00:00.000Z' }, + 'shown-once': { lastShownAt: '2026-06-16T00:00:00.000Z' }, }, }, - }); - - expect(result).toMatchObject({ key: 'fallback-always', display: 'always' }); + () => 0.99, + ); + expect(result).toMatchObject({ key: 'fresh-b' }); }); }); diff --git a/apps/kimi-code/test/tui/commands/desktop.test.ts b/apps/kimi-code/test/tui/commands/desktop.test.ts new file mode 100644 index 000000000..59d331dab --- /dev/null +++ b/apps/kimi-code/test/tui/commands/desktop.test.ts @@ -0,0 +1,32 @@ +import { describe, expect, it, vi } from 'vitest'; + +import type { KimiRegionProfile } from '@moonshot-ai/kimi-code-oauth'; + +import { handleDesktopCommand } from '#/tui/commands/desktop'; +import type { SlashCommandHost } from '#/tui/commands/dispatch'; + +const mocks = vi.hoisted(() => ({ + openUrl: vi.fn(), + currentKimiProfile: vi.fn(() => ({ siteBase: 'https://example.com' }) as unknown as KimiRegionProfile), +})); + +vi.mock('#/utils/open-url', async (importOriginal) => { + const actual = await importOriginal(); + return { ...actual, openUrl: mocks.openUrl }; +}); + +vi.mock('#/utils/region', async (importOriginal) => { + const actual = await importOriginal(); + return { ...actual, currentKimiProfile: mocks.currentKimiProfile }; +}); + +describe('handleDesktopCommand', () => { + it('shows the region-derived desktop app page URL and opens it in the browser', async () => { + const host = { showStatus: vi.fn() } as unknown as SlashCommandHost; + + await handleDesktopCommand(host); + + expect(host.showStatus).toHaveBeenCalledWith(expect.stringContaining('https://example.com/code')); + expect(mocks.openUrl).toHaveBeenCalledWith('https://example.com/code'); + }); +}); diff --git a/apps/kimi-code/test/tui/commands/mermaid-preferences.test.ts b/apps/kimi-code/test/tui/commands/mermaid-preferences.test.ts new file mode 100644 index 000000000..2d3a50482 --- /dev/null +++ b/apps/kimi-code/test/tui/commands/mermaid-preferences.test.ts @@ -0,0 +1,100 @@ +import { afterEach, describe, expect, it, vi } from 'vitest'; + +import { applyMermaidPreferenceChoice } from '#/tui/commands/config'; +import { darkColors } from '#/tui/theme/colors'; +import { getMarkdownMermaidMode, setMarkdownMermaidMode } from '#/tui/utils/markdown-options'; + +const mocks = vi.hoisted(() => ({ + saveTuiConfig: vi.fn(), +})); + +vi.mock('../../../src/tui/config', async () => { + const actual = await vi.importActual( + '../../../src/tui/config.js', + ); + return { + ...actual, + saveTuiConfig: mocks.saveTuiConfig, + }; +}); + +function makeHost(mermaid: 'off' | 'final') { + return { + state: { + appState: { + theme: 'auto' as const, + editorCommand: null, + notifications: { enabled: true, condition: 'unfocused' as const }, + upgrade: { autoInstall: true }, + markdown: { mermaid }, + }, + theme: { palette: darkColors }, + transcriptContainer: { invalidate: vi.fn() }, + ui: { requestRender: vi.fn() }, + }, + setAppState: vi.fn(), + showStatus: vi.fn(), + }; +} + +afterEach(() => { + setMarkdownMermaidMode('final'); +}); + +describe('mermaid preference commands', () => { + it('saves off to tui.toml, mirrors appState, updates the live mode, and redraws the transcript', async () => { + mocks.saveTuiConfig.mockClear(); + const host = makeHost('final'); + + await applyMermaidPreferenceChoice(host, false); + + expect(mocks.saveTuiConfig).toHaveBeenCalledWith( + expect.objectContaining({ markdown: { mermaid: 'off' } }), + ); + expect(host.setAppState).toHaveBeenCalledWith({ markdown: { mermaid: 'off' } }); + expect(getMarkdownMermaidMode()).toBe('off'); + expect(host.state.transcriptContainer.invalidate).toHaveBeenCalled(); + expect(host.state.ui.requestRender).toHaveBeenCalledWith(true); + expect(host.showStatus).toHaveBeenCalledWith('Mermaid diagrams disabled.'); + }); + + it('re-enables diagrams from an off state', async () => { + mocks.saveTuiConfig.mockClear(); + const host = makeHost('off'); + + await applyMermaidPreferenceChoice(host, true); + + expect(mocks.saveTuiConfig).toHaveBeenCalledWith( + expect.objectContaining({ markdown: { mermaid: 'final' } }), + ); + expect(getMarkdownMermaidMode()).toBe('final'); + expect(host.showStatus).toHaveBeenCalledWith('Mermaid diagrams enabled.'); + }); + + it('does not rewrite the config or redraw when the value is unchanged', async () => { + mocks.saveTuiConfig.mockClear(); + const host = makeHost('final'); + + await applyMermaidPreferenceChoice(host, true); + + expect(mocks.saveTuiConfig).not.toHaveBeenCalled(); + expect(host.setAppState).not.toHaveBeenCalled(); + expect(host.state.transcriptContainer.invalidate).not.toHaveBeenCalled(); + expect(host.showStatus).toHaveBeenCalledWith('Mermaid diagrams already enabled.'); + }); + + it('reports a save failure without touching appState or the live mode', async () => { + mocks.saveTuiConfig.mockRejectedValueOnce(new Error('disk full')); + const host = makeHost('final'); + + await applyMermaidPreferenceChoice(host, false); + + expect(host.setAppState).not.toHaveBeenCalled(); + expect(getMarkdownMermaidMode()).toBe('final'); + expect(host.state.transcriptContainer.invalidate).not.toHaveBeenCalled(); + expect(host.showStatus).toHaveBeenCalledWith( + 'Failed to save mermaid diagram setting: disk full', + 'error', + ); + }); +}); diff --git a/apps/kimi-code/test/tui/commands/model-switch-confirm.test.ts b/apps/kimi-code/test/tui/commands/model-switch-confirm.test.ts new file mode 100644 index 000000000..e12ff8ffe --- /dev/null +++ b/apps/kimi-code/test/tui/commands/model-switch-confirm.test.ts @@ -0,0 +1,286 @@ +import { afterEach, describe, expect, it, vi } from 'vitest'; + +import type { Session } from '@moonshot-ai/kimi-code-sdk'; + +import { compactForModelSwitch, confirmThenPerformModelSwitch } from '#/tui/commands/config'; +import type { SlashCommandHost } from '#/tui/commands/dispatch'; +import { + refreshModelSwitchConfirmConfig, + resetModelSwitchConfirmConfigCache, + type ModelSwitchAction, +} from '#/utils/model-switch-confirm-config'; + +type TestEvent = { type: string; code?: string }; + +function fakeSession() { + const listeners = new Set<(event: TestEvent) => void>(); + const compact = vi.fn(async () => undefined); + const session = { + onEvent: (listener: (event: TestEvent) => void) => { + listeners.add(listener); + return () => { + listeners.delete(listener); + }; + }, + compact, + } as unknown as Session; + return { + session, + compact, + listenerCount: () => listeners.size, + emit: (event: TestEvent) => { + for (const listener of [...listeners]) listener(event); + }, + }; +} + +function fakeHost(session: Session) { + return { + session, + showError: vi.fn(), + showNotice: vi.fn(), + } as unknown as SlashCommandHost; +} + +afterEach(() => { + vi.useRealTimers(); +}); + +describe('compactForModelSwitch', () => { + it('compacts and proceeds once the completed event lands', async () => { + const { session, compact, emit, listenerCount } = fakeSession(); + const host = fakeHost(session); + + const pending = compactForModelSwitch(host, session); + emit({ type: 'compaction.completed' }); + + await expect(pending).resolves.toBe(true); + expect(compact).toHaveBeenCalledTimes(1); + expect(listenerCount()).toBe(0); + }); + + it('aborts with a notice when the compaction is cancelled', async () => { + const { session, emit } = fakeSession(); + const host = fakeHost(session); + + const pending = compactForModelSwitch(host, session); + emit({ type: 'compaction.cancelled' }); + + await expect(pending).resolves.toBe(false); + expect(host.showNotice).toHaveBeenCalledWith('Compaction cancelled — model unchanged.'); + expect(host.showError).not.toHaveBeenCalled(); + }); + + it('aborts when the compaction fails', async () => { + const { session, emit } = fakeSession(); + const host = fakeHost(session); + + const pending = compactForModelSwitch(host, session); + emit({ type: 'error', code: 'compaction.failed' }); + + await expect(pending).resolves.toBe(false); + expect(host.showNotice).toHaveBeenCalledWith('Model switch aborted — model unchanged.'); + }); + + it('aborts when the compact request itself rejects', async () => { + const { session, compact } = fakeSession(); + compact.mockRejectedValue(new Error('engine busy')); + const host = fakeHost(session); + + await expect(compactForModelSwitch(host, session)).resolves.toBe(false); + expect(host.showError).toHaveBeenCalledWith('Failed to compact: engine busy. Model unchanged.'); + }); + + it('aborts when the session changed while waiting', async () => { + const { session, emit } = fakeSession(); + const { session: otherSession } = fakeSession(); + const host = fakeHost(otherSession); + + const pending = compactForModelSwitch(host, session); + emit({ type: 'compaction.completed' }); + + await expect(pending).resolves.toBe(false); + expect(host.showNotice).toHaveBeenCalledWith('Model switch aborted — session changed.'); + }); + + it('aborts with an error when the compaction never settles', async () => { + vi.useFakeTimers(); + const { session } = fakeSession(); + const host = fakeHost(session); + + const pending = compactForModelSwitch(host, session); + await vi.advanceTimersByTimeAsync(10 * 60 * 1000); + + await expect(pending).resolves.toBe(false); + expect(host.showError).toHaveBeenCalledWith('Timed out waiting for compaction — model unchanged.'); + }); +}); + +type MountedDialog = { + opts: { onSelect: (action: ModelSwitchAction) => void; onCancel: () => void }; +}; + +function makeSwitchHost() { + const appState = { + model: 'old-alias', + thinkingEffort: 'off', + streamingPhase: 'idle', + sessionId: 'ses-old', + availableModels: { + 'old-alias': { model: 'upstream-old', displayName: 'Old' }, + 'new-alias': { model: 'upstream-new', displayName: 'New' }, + }, + }; + const session = { + setModel: vi.fn(async () => ({})), + setThinking: vi.fn(async () => ({})), + getStatus: vi.fn(async () => ({ model: 'new-alias', thinkingEffort: 'high' })), + onEvent: () => () => {}, + compact: vi.fn(async () => undefined), + } as unknown as Session; + const mountEditorReplacement = vi.fn(); + const restoreEditor = vi.fn(); + const createNewSession = vi.fn(async () => {}); + const activateModelAfterLogin = vi.fn(async () => true); + const host = { + state: { + appState, + transcriptEntries: [{ kind: 'user', bullet: 'hi' }], + activeDialog: null, + }, + session, + authFlow: { activateModelAfterLogin }, + createNewSession, + waitForLazyCreation: vi.fn(async () => {}), + setAppState: vi.fn((patch: Record) => Object.assign(appState, patch)), + mountEditorReplacement, + restoreEditor, + showError: vi.fn(), + showNotice: vi.fn(), + showStatus: vi.fn(), + track: vi.fn(), + } as unknown as SlashCommandHost; + return { host, session, appState, mountEditorReplacement, restoreEditor, createNewSession, activateModelAfterLogin }; +} + +function mountedDialog(mountEditorReplacement: ReturnType): MountedDialog { + return mountEditorReplacement.mock.calls[0]?.[0] as unknown as MountedDialog; +} + +async function enableRule(): Promise { + await refreshModelSwitchConfirmConfig({ + fetchImpl: vi.fn( + async () => + new Response( + JSON.stringify({ + name: 'model_switch_confirm', + config: { enable: true, rules: [{ from: 'upstream-old', to: 'upstream-new' }] }, + }), + ), + ) as unknown as typeof fetch, + }); +} + +describe('confirmThenPerformModelSwitch new-session action', () => { + afterEach(() => { + resetModelSwitchConfirmConfigCache(); + }); + + it('does not switch when the new session fails to be created', async () => { + const { host, session, mountEditorReplacement, activateModelAfterLogin } = makeSwitchHost(); + await enableRule(); + confirmThenPerformModelSwitch(host, 'new-alias', 'high', 'session'); + + mountedDialog(mountEditorReplacement).opts.onSelect('new'); + await vi.waitFor(() => expect(host.restoreEditor).toHaveBeenCalled()); + + expect(session.setModel).not.toHaveBeenCalled(); + expect(activateModelAfterLogin).not.toHaveBeenCalled(); + }); + + it('switches only after the new session is ready, keeping the dialog locked meanwhile', async () => { + const { host, session, appState, mountEditorReplacement, restoreEditor, createNewSession } = + makeSwitchHost(); + await enableRule(); + let releaseCreation!: () => void; + createNewSession.mockImplementation( + () => + new Promise((resolve) => { + releaseCreation = resolve; + }), + ); + confirmThenPerformModelSwitch(host, 'new-alias', 'high', 'session'); + const dialog = mountedDialog(mountEditorReplacement); + + dialog.opts.onSelect('new'); + dialog.opts.onSelect('new'); + await new Promise((resolve) => setTimeout(resolve, 0)); + expect(createNewSession).toHaveBeenCalledTimes(1); + expect(restoreEditor).not.toHaveBeenCalled(); + + releaseCreation(); + await vi.waitFor(() => expect(restoreEditor).toHaveBeenCalled()); + expect(session.setModel).not.toHaveBeenCalled(); + expect(appState.sessionId).toBe('ses-old'); + }); + + it('switches the model once the new session exists', async () => { + const { host, session, appState, mountEditorReplacement, createNewSession } = makeSwitchHost(); + await enableRule(); + createNewSession.mockImplementation(async () => { + appState.sessionId = 'ses-new'; + }); + confirmThenPerformModelSwitch(host, 'new-alias', 'high', 'session'); + + mountedDialog(mountEditorReplacement).opts.onSelect('new'); + await vi.waitFor(() => expect(host.restoreEditor).toHaveBeenCalled()); + + expect(session.setModel).toHaveBeenCalledWith('new-alias'); + }); + + it('dismisses on Escape before any action is chosen', async () => { + const { host, session, mountEditorReplacement, restoreEditor } = makeSwitchHost(); + await enableRule(); + confirmThenPerformModelSwitch(host, 'new-alias', 'high', 'session'); + + mountedDialog(mountEditorReplacement).opts.onCancel(); + + expect(restoreEditor).toHaveBeenCalled(); + expect(session.setModel).not.toHaveBeenCalled(); + }); + + it('ignores Escape once an action has been chosen', async () => { + const { host, mountEditorReplacement, restoreEditor, createNewSession } = makeSwitchHost(); + await enableRule(); + let releaseCreation!: () => void; + createNewSession.mockImplementation( + () => + new Promise((resolve) => { + releaseCreation = resolve; + }), + ); + confirmThenPerformModelSwitch(host, 'new-alias', 'high', 'session'); + const dialog = mountedDialog(mountEditorReplacement); + + dialog.opts.onSelect('new'); + dialog.opts.onCancel(); + await new Promise((resolve) => setTimeout(resolve, 0)); + expect(restoreEditor).not.toHaveBeenCalled(); + + releaseCreation(); + await vi.waitFor(() => expect(restoreEditor).toHaveBeenCalled()); + }); + + it('does not dismiss a panel that displaced the dialog when creation settles', async () => { + const { host, mountEditorReplacement, restoreEditor } = makeSwitchHost(); + await enableRule(); + confirmThenPerformModelSwitch(host, 'new-alias', 'high', 'session'); + const dialog = mountedDialog(mountEditorReplacement); + + dialog.opts.onSelect('new'); + (host.state as unknown as { activeDialog: string | null }).activeDialog = null; + await new Promise((resolve) => setTimeout(resolve, 0)); + + expect(restoreEditor).not.toHaveBeenCalled(); + }); +}); diff --git a/apps/kimi-code/test/tui/commands/plugins-capability.test.ts b/apps/kimi-code/test/tui/commands/plugins-capability.test.ts index 2371c01eb..c0f5809bf 100644 --- a/apps/kimi-code/test/tui/commands/plugins-capability.test.ts +++ b/apps/kimi-code/test/tui/commands/plugins-capability.test.ts @@ -234,12 +234,12 @@ describe('plugins command capability surface', () => { fakePanel().panel, { id: 'kimi-webbridge', - displayName: 'Kimi WebBridge', + displayName: 'Kimi Browser Extension', source: 'capability:kimi-webbridge', } as never, ); - expect(notices).toContainEqual({ title: 'Kimi WebBridge is installed.', detail: undefined }); + expect(notices).toContainEqual({ title: 'Kimi Browser Extension is installed.', detail: undefined }); expect(statuses).not.toContain('Run /new or /reload to apply plugin changes.'); const rendered = transcriptEntries.flatMap((entry) => entry.render(100)).join('\n'); expect(rendered).toContain( @@ -261,7 +261,7 @@ describe('plugins command capability surface', () => { fakePanel().panel, { id: 'kimi-webbridge', - displayName: 'Kimi WebBridge', + displayName: 'Kimi Browser Extension', source: 'capability:kimi-webbridge', } as never, ); @@ -282,15 +282,15 @@ describe('plugins command capability surface', () => { fakePanel().panel, { id: 'kimi-webbridge', - displayName: 'Kimi WebBridge', + displayName: 'Kimi Browser Extension', source: 'capability:kimi-webbridge', } as never, ); const lines = visibleLines(transcriptEntries, 180); - const installed = lines.findIndex((line) => line.includes('Kimi WebBridge is installed.')); + const installed = lines.findIndex((line) => line.includes('Kimi Browser Extension is installed.')); const intro = lines.findIndex((line) => - line.includes('Two steps left to use Kimi WebBridge:'), + line.includes('Two steps left to use Kimi Browser Extension:'), ); const firstStep = lines.findIndex((line) => line.includes('Install the browser extension'), diff --git a/apps/kimi-code/test/tui/commands/provider.test.ts b/apps/kimi-code/test/tui/commands/provider.test.ts index 300c1995a..d6861e6a7 100644 --- a/apps/kimi-code/test/tui/commands/provider.test.ts +++ b/apps/kimi-code/test/tui/commands/provider.test.ts @@ -1,17 +1,20 @@ /** - * Scenario: /provider post-add default-model selection. + * Scenario: /provider post-add default-model selection, and the + * `/provider refresh [providerId]` subcommand. * Responsibilities: the picked effort is gated for persistence by the model's * effective default, and a session-only pick is still applied to the runtime - * after the config refresh (which only reactivates from persisted values). - * Wiring: real setDefaultModel with the harness/authFlow boundaries stubbed by - * a small host rig. + * after the config refresh (which only reactivates from persisted values); + * refresh scopes to one provider when given, reports added/removed/failed, + * and routes a retired default into the model-migration flow. + * Wiring: real setDefaultModel / handleProviderCommand with the + * harness/authFlow boundaries stubbed by a small host rig. * Run: pnpm -C apps/kimi-code exec vitest run test/tui/commands/provider.test.ts */ -import type { ModelAlias } from '@moonshot-ai/kimi-code-sdk'; +import type { ModelAlias, RefreshProviderModelsResponse } from '@moonshot-ai/kimi-code-sdk'; import { describe, expect, it, vi } from 'vitest'; import type { SlashCommandHost } from '#/tui/commands'; -import { setDefaultModel } from '#/tui/commands/provider'; +import { handleProviderCommand, setDefaultModel } from '#/tui/commands/provider'; function makeHost( options: { @@ -35,7 +38,7 @@ function makeHost( }; const host = { state: { appState }, - waitForLazyCreation: vi.fn(async () => {}), + waitForSessionAssembly: vi.fn(async () => {}), harness: { setConfig: vi.fn(async () => ({})), }, @@ -51,7 +54,7 @@ function makeHost( refreshConfigAfterLogin: ReturnType; activateModelAfterLogin: ReturnType; }; - waitForLazyCreation: ReturnType; + waitForSessionAssembly: ReturnType; track: ReturnType; }; return { host }; @@ -147,9 +150,144 @@ describe('setDefaultModel', () => { await setDefaultModel(host, 'opus', 'high'); - expect(host.waitForLazyCreation).toHaveBeenCalled(); + expect(host.waitForSessionAssembly).toHaveBeenCalled(); expect( - host.waitForLazyCreation.mock.invocationCallOrder[0]!, + host.waitForSessionAssembly.mock.invocationCallOrder[0]!, ).toBeLessThan(host.harness.setConfig.mock.invocationCallOrder[0]!); }); + + it('skips the follow-up activation and forwards the picked effort when the gate owns the switch', async () => { + const { host } = makeHost(); + host.authFlow.refreshConfigAfterLogin = vi.fn(async () => 'gated' as const); + + await setDefaultModel(host, 'opus', 'xhigh'); + + expect(host.authFlow.refreshConfigAfterLogin).toHaveBeenCalledWith('xhigh'); + expect(host.authFlow.activateModelAfterLogin).not.toHaveBeenCalled(); + expect(host.track).not.toHaveBeenCalled(); + }); +}); + +function makeRefreshHost(result: RefreshProviderModelsResponse | Error) { + const spinner = { stop: vi.fn() }; + const host = { + showProgressSpinner: vi.fn(() => spinner), + showStatus: vi.fn(), + showError: vi.fn(), + authFlow: { + refreshProviderModels: vi.fn(async () => { + if (result instanceof Error) throw result; + return result; + }), + }, + modelMigration: { retire: vi.fn(async () => {}) }, + } as unknown as SlashCommandHost & { + showProgressSpinner: ReturnType; + showStatus: ReturnType; + showError: ReturnType; + authFlow: { refreshProviderModels: ReturnType }; + modelMigration: { retire: ReturnType }; + }; + return { host, spinner }; +} + +describe('handleProviderCommand refresh', () => { + it('refreshes every provider and reports added, removed, and failed', async () => { + const retired = { from: 'kimi/old', to: 'kimi/new', from_display_name: 'Old Model' }; + const { host, spinner } = makeRefreshHost({ + changed: [{ provider_id: 'kimi', provider_name: 'Kimi Code', added: 2, removed: 1 }], + unchanged: ['other'], + failed: [{ provider: 'broken', reason: 'HTTP 500' }], + retired_default: retired, + }); + + await handleProviderCommand(host, 'refresh'); + + expect(host.authFlow.refreshProviderModels).toHaveBeenCalledWith(undefined); + expect(spinner.stop).toHaveBeenCalledWith({ ok: true, label: 'Refresh finished.' }); + expect(host.showStatus).toHaveBeenCalledWith('Kimi Code: +2 / -1 models.', 'warning'); + expect(host.showStatus).toHaveBeenCalledWith( + 'Skipped refreshing broken: HTTP 500', + 'warning', + ); + expect(host.modelMigration.retire).toHaveBeenCalledWith(retired); + }); + + it('scopes the refresh to one provider when a providerId is given', async () => { + const { host } = makeRefreshHost({ changed: [], unchanged: ['custom'], failed: [] }); + + await handleProviderCommand(host, 'refresh custom'); + + expect(host.authFlow.refreshProviderModels).toHaveBeenCalledWith({ + providerId: 'custom', + }); + }); + + it('reports a plain status when nothing was removed', async () => { + const { host } = makeRefreshHost({ + changed: [{ provider_id: 'kimi', provider_name: 'Kimi Code', added: 1, removed: 0 }], + unchanged: [], + failed: [], + }); + + await handleProviderCommand(host, 'refresh'); + + expect(host.showStatus).toHaveBeenCalledWith('Kimi Code: +1 model.', undefined); + expect(host.modelMigration.retire).not.toHaveBeenCalled(); + }); + + it('reports when every provider is already up to date', async () => { + const { host } = makeRefreshHost({ changed: [], unchanged: ['a', 'b'], failed: [] }); + + await handleProviderCommand(host, 'refresh'); + + expect(host.showStatus).toHaveBeenCalledWith( + 'No model changes (2 providers up to date).', + ); + }); + + it('surfaces a thrown refresh without routing a retirement', async () => { + const { host, spinner } = makeRefreshHost(new Error('provider missing does not exist')); + + await handleProviderCommand(host, 'refresh missing'); + + expect(spinner.stop).toHaveBeenCalledWith({ ok: false, label: 'Refresh failed.' }); + expect(host.showError).toHaveBeenCalledWith( + 'Failed to refresh models: provider missing does not exist', + ); + expect(host.modelMigration.retire).not.toHaveBeenCalled(); + }); + + it('rejects unknown subcommands with a usage line instead of refreshing', async () => { + const { host, spinner } = makeRefreshHost({ changed: [], unchanged: [], failed: [] }); + + await handleProviderCommand(host, 'refres'); + + expect(host.showError).toHaveBeenCalledWith('Usage: /provider [refresh [providerId]]'); + expect(host.showProgressSpinner).not.toHaveBeenCalled(); + expect(host.authFlow.refreshProviderModels).not.toHaveBeenCalled(); + expect(spinner.stop).not.toHaveBeenCalled(); + }); + + it('reports metadata-only updates without the model counters', async () => { + const { host } = makeRefreshHost({ + changed: [{ provider_id: 'custom', provider_name: 'Custom Registry', added: 0, removed: 0 }], + unchanged: [], + failed: [], + }); + + await handleProviderCommand(host, 'refresh'); + + expect(host.showStatus).toHaveBeenCalledWith('Custom Registry: model metadata updated.'); + }); + + it('rejects surplus arguments after the provider id instead of refreshing', async () => { + const { host, spinner } = makeRefreshHost({ changed: [], unchanged: [], failed: [] }); + + await handleProviderCommand(host, 'refresh custom unexpected'); + + expect(host.showError).toHaveBeenCalledWith('Usage: /provider [refresh [providerId]]'); + expect(host.authFlow.refreshProviderModels).not.toHaveBeenCalled(); + expect(spinner.stop).not.toHaveBeenCalled(); + }); }); diff --git a/apps/kimi-code/test/tui/commands/registry.test.ts b/apps/kimi-code/test/tui/commands/registry.test.ts index 8ee3bc7b4..4fff07e8e 100644 --- a/apps/kimi-code/test/tui/commands/registry.test.ts +++ b/apps/kimi-code/test/tui/commands/registry.test.ts @@ -169,6 +169,7 @@ describe('built-in slash command registry', () => { 'add-dir', 'compact', 'btw', + 'desktop', 'editor', 'exit', 'export-debug-zip', diff --git a/apps/kimi-code/test/tui/commands/reload.test.ts b/apps/kimi-code/test/tui/commands/reload.test.ts index 1aa1311b3..34e1e4dc0 100644 --- a/apps/kimi-code/test/tui/commands/reload.test.ts +++ b/apps/kimi-code/test/tui/commands/reload.test.ts @@ -2,7 +2,7 @@ import { mkdir, rm, writeFile } from 'node:fs/promises'; import { tmpdir } from 'node:os'; import { join } from 'node:path'; -import { afterEach, describe, expect, it, vi } from 'vitest'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { handleReloadCommand, @@ -16,13 +16,20 @@ import { } from '#/tui/commands/experimental-flags'; import { createMarkdownOptions, + getMarkdownMermaidMode, + setMarkdownMermaidMode, setMarkdownRenderLatex, } from '#/tui/utils/markdown-options'; const tempDirs: string[] = []; const originalKimiCodeHome = process.env['KIMI_CODE_HOME']; +beforeEach(() => { + vi.stubEnv('KIMI_CODE_TUI_FULL_SCREEN', ''); +}); + afterEach(async () => { + vi.unstubAllEnvs(); setExperimentalFeatures([]); for (const dir of tempDirs.splice(0)) { await rm(dir, { recursive: true, force: true }); @@ -143,6 +150,27 @@ auto_install = false } }); + it('applies the mermaid mode before theme application rebuilds Markdown', async () => { + await writeTuiConfig('[markdown]\nmermaid = "off"\n'); + const host = makeHost(); + + let mermaidWhenThemeApplied: string | undefined; + const mutable = host as unknown as { applyTheme: unknown }; + mutable.applyTheme = vi.fn(() => { + mermaidWhenThemeApplied = getMarkdownMermaidMode(); + }); + + try { + await handleReloadTuiCommand(host); + expect(mermaidWhenThemeApplied).toBe('off'); + expect(host.setAppState).toHaveBeenCalledWith( + expect.objectContaining({ markdown: { mermaid: 'off' } }), + ); + } finally { + setMarkdownMermaidMode('final'); + } + }); + it('refreshes workspace commands and lazy defaults on a session-less v2 reload', async () => { await writeTuiConfig('theme = "dark"\n'); const host = makeHost(); @@ -169,6 +197,29 @@ auto_install = false 'success', ); }); + + it('notices a required restart when tui_mode differs from the running UI mode', async () => { + await writeTuiConfig('tui_mode = "fullscreen"\n'); + const host = makeHost(); + + await handleReloadTuiCommand(host); + + expect(host.setAppState).toHaveBeenCalledWith( + expect.objectContaining({ tuiMode: 'fullscreen' }), + ); + expect(host.showNotice).toHaveBeenCalledWith( + 'TUI mode takes effect after restarting Kimi Code.', + ); + }); + + it('does not notice when tui_mode matches the running UI mode', async () => { + await writeTuiConfig('theme = "dark"\n'); + const host = makeHost(); + + await handleReloadTuiCommand(host); + + expect(host.showNotice).not.toHaveBeenCalled(); + }); }); async function writeTuiConfig(text: string): Promise { @@ -196,6 +247,9 @@ function makeHost({ editor: { setDisablePasteBurst: vi.fn(), }, + ui: { + mode: 'regular' as const, + }, theme: { palette: { success: '#00ff00', @@ -227,6 +281,7 @@ function makeHost({ refreshSlashCommandAutocomplete: vi.fn(), reloadCurrentSessionView: vi.fn(async () => {}), showStatus: vi.fn(), + showNotice: vi.fn(), } as unknown as SlashCommandHost & { readonly harness: { readonly reloadSession: ReturnType; @@ -236,5 +291,6 @@ function makeHost({ readonly refreshSlashCommandAutocomplete: ReturnType; readonly reloadCurrentSessionView: ReturnType; readonly showStatus: ReturnType; + readonly showNotice: ReturnType; }; } diff --git a/apps/kimi-code/test/tui/commands/resolve.test.ts b/apps/kimi-code/test/tui/commands/resolve.test.ts index 9cd106758..389273eba 100644 --- a/apps/kimi-code/test/tui/commands/resolve.test.ts +++ b/apps/kimi-code/test/tui/commands/resolve.test.ts @@ -1,5 +1,4 @@ import { - resolveSkillCommand, resolveSlashCommandInput, setExperimentalFeatures, slashBusyMessage, @@ -7,6 +6,8 @@ import { } from '#/tui/commands/index'; import { afterEach, describe, expect, it } from 'vitest'; +import { resolveUserInput } from '#/tui/commands/resolve'; + function resolve( input: string, overrides: Partial[0]> = {}, @@ -21,6 +22,47 @@ function resolve( }); } +describe('resolveUserInput', () => { + const options = { + isStreaming: false, + isCompacting: false, + skillCommandMap: new Map([ + ['skill:review', 'review'], + ['quick', 'review'], + ['skill:security', 'security'], + ['skill:team/review', 'team/review'], + ]), + pluginCommandMap: new Map([['example:deploy', 'example']]), + }; + + it.each([ + { input: '/skill:review src/app.ts', skills: [{ skillName: 'review', args: 'src/app.ts' }] }, + { input: '/review', skills: [{ skillName: 'review', args: '' }] }, + { input: '/skill:team/review src/app.ts', skills: [{ skillName: 'team/review', args: 'src/app.ts' }] }, + { input: '/team/review src/app.ts', skills: [] }, + { input: 'check /skill:team/review src/app.ts', skills: [] }, + { input: '/quick\ncheck src/app.ts', skills: [] }, + { input: '/skill:review\nexplain this', skills: [] }, + { input: '/skill:review\n\nexplain this', skills: [] }, + { input: '/skill:review\texplain this', skills: [] }, + { input: '/quick \ncheck src/app.ts', skills: [{ skillName: 'review', args: 'check src/app.ts' }] }, + { input: '/quick\n', skills: [{ skillName: 'review', args: '' }] }, + { input: 'please /skill:review src/app.ts', skills: [{ skillName: 'review' }] }, + { input: '/skill:review /review src/app.ts', skills: [{ skillName: 'review' }] }, + { input: '/quick /skill:review src/app.ts', skills: [{ skillName: 'review' }] }, + { + input: '/skill:security\n/quick /skill:security', + skills: [{ skillName: 'security' }, { skillName: 'review' }], + }, + { input: '/unknown /skill:review src/app.ts', skills: [{ skillName: 'review' }] }, + { input: '/help /skill:review', skills: [] }, + { input: '/example:deploy /skill:review', skills: [] }, + { input: 'check src/app.ts https://example.com/review and 1/2', skills: [] }, + ])('resolves $input without changing argument or command precedence', ({ input, skills }) => { + expect(resolveUserInput({ ...options, input }).activations).toEqual(skills); + }); +}); + describe('resolveSlashCommandInput', () => { afterEach(() => { setExperimentalFeatures([]); @@ -314,15 +356,68 @@ describe('goal command resolution', () => { }); describe('slash command busy helpers', () => { - it('resolves skill command aliases with and without skill prefix', () => { - const map = new Map([ + it('resolves skill commands by explicit prefixed name and by shorthand', () => { + const skillCommandMap = new Map([ ['skill:review', 'review'], ['mcp-config', 'mcp-config'], ]); - expect(resolveSkillCommand(map, 'skill:review')).toBe('review'); - expect(resolveSkillCommand(map, 'review')).toBe('review'); - expect(resolveSkillCommand(map, 'mcp-config')).toBe('mcp-config'); + expect(resolve('/skill:review', { skillCommandMap })).toMatchObject({ + kind: 'skill', + skillName: 'review', + }); + expect(resolve('/review', { skillCommandMap })).toMatchObject({ + kind: 'skill', + skillName: 'review', + }); + expect(resolve('/mcp-config', { skillCommandMap })).toMatchObject({ + kind: 'skill', + skillName: 'mcp-config', + }); + }); + + it('resolves a qualified plugin skill by shorthand when no plugin command takes the name', () => { + const skillCommandMap = new Map([['skill:my-plugin:deploy', 'my-plugin:deploy']]); + expect(resolve('/my-plugin:deploy', { skillCommandMap })).toEqual({ + kind: 'skill', + commandName: 'my-plugin:deploy', + skillName: 'my-plugin:deploy', + args: '', + }); + }); + + it('resolves a namespaced input to the plugin command when a same-named plugin skill exists', () => { + const skillCommandMap = new Map([['skill:my-plugin:deploy', 'my-plugin:deploy']]); + const pluginCommandMap = new Map([['my-plugin:deploy', 'Deploy $ARGUMENTS']]); + expect(resolve('/my-plugin:deploy prod', { skillCommandMap, pluginCommandMap })).toEqual({ + kind: 'plugin-command', + commandName: 'deploy', + pluginId: 'my-plugin', + args: 'prod', + }); + }); + + it('keeps the colliding plugin skill reachable through its explicit skill command', () => { + const skillCommandMap = new Map([['skill:my-plugin:deploy', 'my-plugin:deploy']]); + const pluginCommandMap = new Map([['my-plugin:deploy', 'Deploy']]); + expect(resolve('/skill:my-plugin:deploy', { skillCommandMap, pluginCommandMap })).toEqual({ + kind: 'skill', + commandName: 'skill:my-plugin:deploy', + skillName: 'my-plugin:deploy', + args: '', + }); + }); + + it('blocks a plugin command while streaming even when a same-named plugin skill exists', () => { + const skillCommandMap = new Map([['skill:my-plugin:deploy', 'my-plugin:deploy']]); + const pluginCommandMap = new Map([['my-plugin:deploy', 'Deploy']]); + expect( + resolve('/my-plugin:deploy', { skillCommandMap, pluginCommandMap, isStreaming: true }), + ).toEqual({ + kind: 'blocked', + commandName: 'my-plugin:deploy', + reason: 'streaming', + }); }); it('formats busy messages', () => { diff --git a/apps/kimi-code/test/tui/commands/skills.test.ts b/apps/kimi-code/test/tui/commands/skills.test.ts index b9cf46bd6..22cc4ccce 100644 --- a/apps/kimi-code/test/tui/commands/skills.test.ts +++ b/apps/kimi-code/test/tui/commands/skills.test.ts @@ -102,4 +102,15 @@ describe('skill slash commands', () => { expect(built.commands.map((command) => command.name)).toEqual(['outer.inner']); expect(built.commandMap.get('outer.inner')).toBe('outer.inner'); }); + + it('filters skills restricted to other scopes', () => { + const built = buildSkillSlashCommands([ + skill('custom-theme', 'inline', { source: 'builtin', scopes: ['tui'] }), + skill('web-helper', 'inline', { source: 'builtin', scopes: ['web'] }), + skill('write-goal', 'inline', { source: 'builtin' }), + ]); + + expect(built.commands.map((command) => command.name)).toEqual(['custom-theme', 'write-goal']); + expect(built.commandMap.has('web-helper')).toBe(false); + }); }); diff --git a/apps/kimi-code/test/tui/commands/survey-preferences.test.ts b/apps/kimi-code/test/tui/commands/survey-preferences.test.ts index b8b807302..baa59d59f 100644 --- a/apps/kimi-code/test/tui/commands/survey-preferences.test.ts +++ b/apps/kimi-code/test/tui/commands/survey-preferences.test.ts @@ -1,80 +1,57 @@ +import { mkdtempSync, rmSync, writeFileSync } from 'node:fs'; +import { tmpdir } from 'node:os'; +import { join } from 'node:path'; + +import type { KimiConfig } from '@moonshot-ai/kimi-code-sdk'; import { describe, expect, it, vi } from 'vitest'; import { applySurveyPreferenceChoice } from '#/tui/commands/config'; -import { darkColors } from '#/tui/theme/colors'; - -const mocks = vi.hoisted(() => ({ - saveTuiConfig: vi.fn(), -})); - -vi.mock('../../../src/tui/config', async () => { - const actual = await vi.importActual( - '../../../src/tui/config.js', - ); - return { - ...actual, - saveTuiConfig: mocks.saveTuiConfig, - }; -}); +import { loadTuiConfig, removeLegacySurveySetting, saveTuiConfig } from '#/tui/config'; +import { migrateLegacySurveySetting } from '#/utils/survey-setting'; function makeHost(disableFeedbackSurvey: boolean) { return { - state: { - appState: { - theme: 'auto' as const, - editorCommand: null, - notifications: { enabled: true, condition: 'unfocused' as const }, - upgrade: { autoInstall: true }, - disableFeedbackSurvey, - }, - theme: { palette: darkColors }, - }, + state: { appState: { disableFeedbackSurvey } }, + harness: { setConfig: vi.fn(async () => ({})) }, setAppState: vi.fn(), showStatus: vi.fn(), }; } describe('survey preference commands', () => { - it('saves the opt-out to tui.toml and mirrors it into appState', async () => { - mocks.saveTuiConfig.mockClear(); + it('saves the opt-out to config.toml and mirrors it into appState', async () => { const host = makeHost(false); await applySurveyPreferenceChoice(host, false); - expect(mocks.saveTuiConfig).toHaveBeenCalledWith( - expect.objectContaining({ disableFeedbackSurvey: true }), - ); + expect(host.harness.setConfig).toHaveBeenCalledWith({ disableFeedbackSurvey: true }); expect(host.setAppState).toHaveBeenCalledWith({ disableFeedbackSurvey: true }); expect(host.showStatus).toHaveBeenCalledWith('Feedback survey disabled.'); }); it('re-enables the survey from an opt-out state', async () => { - mocks.saveTuiConfig.mockClear(); const host = makeHost(true); await applySurveyPreferenceChoice(host, true); - expect(mocks.saveTuiConfig).toHaveBeenCalledWith( - expect.objectContaining({ disableFeedbackSurvey: false }), - ); + expect(host.harness.setConfig).toHaveBeenCalledWith({ disableFeedbackSurvey: false }); expect(host.setAppState).toHaveBeenCalledWith({ disableFeedbackSurvey: false }); expect(host.showStatus).toHaveBeenCalledWith('Feedback survey enabled.'); }); it('does not rewrite the config when the value is unchanged', async () => { - mocks.saveTuiConfig.mockClear(); const host = makeHost(false); await applySurveyPreferenceChoice(host, true); - expect(mocks.saveTuiConfig).not.toHaveBeenCalled(); + expect(host.harness.setConfig).not.toHaveBeenCalled(); expect(host.setAppState).not.toHaveBeenCalled(); expect(host.showStatus).toHaveBeenCalledWith('Feedback survey already enabled.'); }); it('reports a save failure without touching appState', async () => { - mocks.saveTuiConfig.mockRejectedValueOnce(new Error('disk full')); const host = makeHost(false); + host.harness.setConfig.mockRejectedValueOnce(new Error('disk full')); await applySurveyPreferenceChoice(host, false); @@ -85,3 +62,141 @@ describe('survey preference commands', () => { ); }); }); + +describe('legacy survey setting migration', () => { + function deps(legacyValue: boolean | undefined, configured: boolean | undefined) { + return { + legacyValue, + getConfig: vi.fn(async () => ({ disableFeedbackSurvey: configured }) as KimiConfig), + setConfig: vi.fn(async () => ({})), + dropLegacy: vi.fn(async () => {}), + warn: vi.fn(), + }; + } + + it('moves a tui.toml opt-out into config.toml and drops it from tui.toml', async () => { + const migration = deps(true, undefined); + + await expect(migrateLegacySurveySetting(migration)).resolves.toEqual({ + value: true, + configured: undefined, + action: 'written', + }); + expect(migration.setConfig).toHaveBeenCalledWith({ disableFeedbackSurvey: true }); + expect(migration.dropLegacy).toHaveBeenCalledTimes(1); + expect(migration.warn).not.toHaveBeenCalled(); + }); + + it('drops a default-valued legacy setting without writing config.toml', async () => { + const migration = deps(false, undefined); + + await expect(migrateLegacySurveySetting(migration)).resolves.toEqual({ + value: false, + configured: undefined, + action: 'dropped_default', + }); + expect(migration.setConfig).not.toHaveBeenCalled(); + expect(migration.dropLegacy).toHaveBeenCalledTimes(1); + expect(migration.warn).not.toHaveBeenCalled(); + }); + + it('keeps the config.toml value and still drops the stale tui.toml copy', async () => { + const migration = deps(true, false); + + await expect(migrateLegacySurveySetting(migration)).resolves.toEqual({ + value: false, + configured: false, + action: 'kept_existing', + }); + expect(migration.setConfig).not.toHaveBeenCalled(); + expect(migration.dropLegacy).toHaveBeenCalledTimes(1); + }); + + it('keeps the config.toml value when the legacy copy holds the default', async () => { + const migration = deps(false, true); + + await expect(migrateLegacySurveySetting(migration)).resolves.toEqual({ + value: true, + configured: true, + action: 'kept_existing', + }); + expect(migration.setConfig).not.toHaveBeenCalled(); + expect(migration.dropLegacy).toHaveBeenCalledTimes(1); + }); + + it('reads config.toml alone when tui.toml has no legacy value', async () => { + const migration = deps(undefined, true); + + await expect(migrateLegacySurveySetting(migration)).resolves.toEqual({ + value: true, + configured: true, + }); + expect(migration.setConfig).not.toHaveBeenCalled(); + expect(migration.dropLegacy).not.toHaveBeenCalled(); + }); + + it('keeps honoring the legacy value and retries later when config.toml cannot be written', async () => { + const migration = deps(true, undefined); + migration.setConfig.mockRejectedValueOnce(new Error('read-only')); + + await expect(migrateLegacySurveySetting(migration)).resolves.toEqual({ + value: true, + configured: undefined, + action: 'write_failed', + }); + expect(migration.dropLegacy).not.toHaveBeenCalled(); + expect(migration.warn).toHaveBeenCalledWith( + '[tui.toml] could not move disable_feedback_survey to config.toml; retrying on next start', + ); + }); + + it('retries a failed migration after another preference has been saved', async () => { + const directory = mkdtempSync(join(tmpdir(), 'survey-migration-')); + const filePath = join(directory, 'tui.toml'); + try { + writeFileSync(filePath, 'disable_feedback_survey = true\nauto_session_title = false\n'); + const migration = deps((await loadTuiConfig(filePath)).disableFeedbackSurvey, undefined); + migration.setConfig.mockRejectedValueOnce(new Error('read-only')); + migration.dropLegacy.mockImplementation(() => removeLegacySurveySetting(filePath)); + await expect(migrateLegacySurveySetting(migration)).resolves.toEqual({ + value: true, + configured: undefined, + action: 'write_failed', + }); + await saveTuiConfig({ + ...await loadTuiConfig(filePath), disableFeedbackSurvey: undefined, theme: 'light', + }, filePath); + expect(await loadTuiConfig(filePath)).toMatchObject({ + disableFeedbackSurvey: true, autoSessionTitle: false, theme: 'light', + }); + const retry = deps((await loadTuiConfig(filePath)).disableFeedbackSurvey, undefined); + retry.dropLegacy.mockImplementation(() => removeLegacySurveySetting(filePath)); + await expect(migrateLegacySurveySetting(retry)).resolves.toEqual({ + value: true, + configured: undefined, + action: 'written', + }); + expect(retry.setConfig).toHaveBeenCalledWith({ disableFeedbackSurvey: true }); + const saved = await loadTuiConfig(filePath); + expect(saved).toMatchObject({ autoSessionTitle: false, theme: 'light' }); + expect(saved.disableFeedbackSurvey).toBeUndefined(); + } finally { + rmSync(directory, { recursive: true, force: true }); + } + }); + + it('warns when the tui.toml copy cannot be removed', async () => { + const migration = deps(false, undefined); + migration.dropLegacy.mockRejectedValueOnce(new Error('read-only')); + + await expect(migrateLegacySurveySetting(migration)).resolves.toEqual({ + value: false, + configured: undefined, + action: 'dropped_default', + }); + expect(migration.setConfig).not.toHaveBeenCalled(); + expect(migration.warn).toHaveBeenCalledWith( + '[tui.toml] could not remove disable_feedback_survey; retrying on next start', + ); + }); +}); diff --git a/apps/kimi-code/test/tui/commands/tower.test.ts b/apps/kimi-code/test/tui/commands/tower.test.ts index 3033bf314..c3b953f89 100644 --- a/apps/kimi-code/test/tui/commands/tower.test.ts +++ b/apps/kimi-code/test/tui/commands/tower.test.ts @@ -4,7 +4,7 @@ import type { Session } from '@moonshot-ai/kimi-code-sdk'; import { handleTowerCommand } from '#/tui/commands/index'; import type { SlashCommandHost } from '#/tui/commands/dispatch'; -import { TOWER_STATUS_PROMPT, TOWER_TEARDOWN_PROMPT } from '#/tui/constant/kimi-tui'; +import { TOWER_TEARDOWN_PROMPT } from '#/tui/constant/kimi-tui'; function makeHost( overrides: { @@ -20,6 +20,9 @@ function makeHost( if (!(overrides.refuseTowerEntry && enabled)) engineMode = enabled; }), getStatus: vi.fn(async () => ({ towerMode: engineMode })), + getTowerStatus: vi.fn(async (): Promise => + engineMode ? 'Tower mode: ON\nTower is not initialized.' : 'Tower mode: OFF', + ), }; const hasSession = overrides.hasSession ?? true; const host = { @@ -43,28 +46,95 @@ function makeHost( showStatus: vi.fn(), showNotice: vi.fn(), sendNormalUserInput: vi.fn(), + mountEditorReplacement: vi.fn(), + restoreEditor: vi.fn(), + restoreInputText: vi.fn(), } as unknown as SlashCommandHost; return { host, session }; } describe('handleTowerCommand', () => { - it('reports tower status when called without args, without touching the mode', async () => { + it('reads tower status without args through the SDK without prompting or touching the editor', async () => { const { host, session } = makeHost({ towerMode: false }); await handleTowerCommand(host, ''); - expect(host.sendNormalUserInput).toHaveBeenCalledWith(TOWER_STATUS_PROMPT); + expect(session.getTowerStatus).toHaveBeenCalledOnce(); + expect(host.showNotice).toHaveBeenCalledWith('Tower mode: OFF', undefined); expect(session.setTowerMode).not.toHaveBeenCalled(); expect(host.ensureSession).not.toHaveBeenCalled(); + expect(host.sendNormalUserInput).not.toHaveBeenCalled(); + expect(host.mountEditorReplacement).not.toHaveBeenCalled(); + expect(host.restoreEditor).not.toHaveBeenCalled(); + expect(host.restoreInputText).not.toHaveBeenCalled(); }); - it('reports tower status for the status subcommand, without touching the mode', async () => { + it('reports active but uninitialized status without calling it OFF', async () => { const { host, session } = makeHost({ towerMode: true }); await handleTowerCommand(host, 'status'); - expect(host.sendNormalUserInput).toHaveBeenCalledWith(TOWER_STATUS_PROMPT); + expect(session.getTowerStatus).toHaveBeenCalledOnce(); + expect(host.showNotice).toHaveBeenCalledWith('Tower mode: ON', 'Tower is not initialized.'); + expect(host.showNotice).not.toHaveBeenCalledWith('Tower mode: OFF', undefined); expect(session.setTowerMode).not.toHaveBeenCalled(); + expect(host.sendNormalUserInput).not.toHaveBeenCalled(); + }); + + it('shows the engine-rendered status summary through showNotice', async () => { + const { host, session } = makeHost({ towerMode: true }); + const detail = [ + 'Base: main (mode: branch) · You are: tower', + 'Missions:', + ' M1 Build engine — active · owner w1 · feat/build-engine', + 'Roster:', + ' w1 (worker) — mission M1 · agent-w1', + 'Review gate:', + ' M1 feat/build-engine — BLOCKED: not-completed', + 'Inbox: 2 message(s)', + 'Concurrency: budget: 3 agent(s) · inflight: 1 · spawns open', + 'Recent activity:', + ' 2026-09-30T00:00:00.000Z tower plan missions=1', + ].join('\n'); + session.getTowerStatus.mockResolvedValueOnce(`Tower status — ON\n${detail}`); + + await handleTowerCommand(host, 'status'); + + expect(host.showNotice).toHaveBeenCalledWith('Tower status — ON', detail); + + session.getTowerStatus.mockResolvedValueOnce(`Tower mode: OFF\n${detail}`); + await handleTowerCommand(host, 'status'); + + expect(host.showNotice).toHaveBeenCalledWith('Tower mode: OFF', detail); + expect(host.sendNormalUserInput).not.toHaveBeenCalled(); + expect(host.mountEditorReplacement).not.toHaveBeenCalled(); + }); + + it('lazy-creates a missing session before reading tower status', async () => { + const { host, session } = makeHost({ hasSession: false }); + + await handleTowerCommand(host, 'status'); + + expect(host.ensureSession).toHaveBeenCalledOnce(); + expect(session.getTowerStatus).toHaveBeenCalledOnce(); + expect(host.showNotice).toHaveBeenCalledWith('Tower mode: OFF', undefined); + expect(host.sendNormalUserInput).not.toHaveBeenCalled(); + }); + + it('shows status errors without a prompt fallback', async () => { + const { host, session } = makeHost({ towerMode: true }); + session.getTowerStatus.mockRejectedValueOnce(new Error('backend unavailable')); + + await handleTowerCommand(host, 'status'); + + expect(host.showError).toHaveBeenCalledWith( + 'Failed to read tower status: backend unavailable', + ); + expect(host.showNotice).not.toHaveBeenCalled(); + expect(host.sendNormalUserInput).not.toHaveBeenCalled(); + expect(host.mountEditorReplacement).not.toHaveBeenCalled(); + expect(host.restoreEditor).not.toHaveBeenCalled(); + expect(host.restoreInputText).not.toHaveBeenCalled(); }); it('sends the teardown instruction for the teardown subcommand, without touching the mode', async () => { diff --git a/apps/kimi-code/test/tui/commands/tui-mode-preferences.test.ts b/apps/kimi-code/test/tui/commands/tui-mode-preferences.test.ts new file mode 100644 index 000000000..caf7b2d37 --- /dev/null +++ b/apps/kimi-code/test/tui/commands/tui-mode-preferences.test.ts @@ -0,0 +1,92 @@ +import { describe, expect, it, vi } from 'vitest'; + +import { applyTuiModeChoice } from '#/tui/commands/config'; + +const mocks = vi.hoisted(() => ({ + saveTuiConfig: vi.fn(), +})); + +vi.mock('../../../src/tui/config', async () => { + const actual = await vi.importActual( + '../../../src/tui/config.js', + ); + return { + ...actual, + saveTuiConfig: mocks.saveTuiConfig, + }; +}); + +function makeHost( + tuiMode: 'regular' | 'fullscreen', + runningMode: 'regular' | 'fullscreen' = 'regular', +) { + return { + state: { + appState: { + theme: 'auto' as const, + tuiMode, + editorCommand: null, + notifications: { enabled: true, condition: 'unfocused' as const }, + upgrade: { autoInstall: true }, + }, + ui: { mode: runningMode }, + }, + setAppState: vi.fn(), + showStatus: vi.fn(), + showNotice: vi.fn(), + }; +} + +describe('tui mode preference commands', () => { + it('saves fullscreen to tui.toml, mirrors appState, and notices the required restart', async () => { + mocks.saveTuiConfig.mockClear(); + const host = makeHost('regular'); + + await applyTuiModeChoice(host, 'fullscreen'); + + expect(mocks.saveTuiConfig).toHaveBeenCalledWith( + expect.objectContaining({ tuiMode: 'fullscreen' }), + ); + expect(host.setAppState).toHaveBeenCalledWith({ tuiMode: 'fullscreen' }); + expect(host.showStatus).toHaveBeenCalledWith('TUI mode set to fullscreen.', 'success'); + expect(host.showNotice).toHaveBeenCalledWith( + 'TUI mode takes effect after restarting Kimi Code.', + ); + }); + + it('skips the restart notice when switching back to the running mode', async () => { + mocks.saveTuiConfig.mockClear(); + const host = makeHost('fullscreen', 'regular'); + + await applyTuiModeChoice(host, 'regular'); + + expect(mocks.saveTuiConfig).toHaveBeenCalledWith( + expect.objectContaining({ tuiMode: 'regular' }), + ); + expect(host.setAppState).toHaveBeenCalledWith({ tuiMode: 'regular' }); + expect(host.showNotice).not.toHaveBeenCalled(); + }); + + it('does not rewrite the config when the value is unchanged', async () => { + mocks.saveTuiConfig.mockClear(); + const host = makeHost('regular'); + + await applyTuiModeChoice(host, 'regular'); + + expect(mocks.saveTuiConfig).not.toHaveBeenCalled(); + expect(host.setAppState).not.toHaveBeenCalled(); + expect(host.showNotice).not.toHaveBeenCalled(); + expect(host.showStatus).toHaveBeenCalledWith('TUI mode already regular.'); + }); + + it('reports a save failure without touching appState', async () => { + mocks.saveTuiConfig.mockRejectedValueOnce(new Error('disk full')); + const host = makeHost('regular'); + + await applyTuiModeChoice(host, 'fullscreen'); + + expect(host.setAppState).not.toHaveBeenCalled(); + expect(host.showNotice).not.toHaveBeenCalled(); + expect(host.showStatus).toHaveBeenCalledWith('Failed to save TUI mode: disk full', 'error'); + }); +}); diff --git a/apps/kimi-code/test/tui/commands/update-preferences.test.ts b/apps/kimi-code/test/tui/commands/update-preferences.test.ts index 23e6a24fc..22455fe11 100644 --- a/apps/kimi-code/test/tui/commands/update-preferences.test.ts +++ b/apps/kimi-code/test/tui/commands/update-preferences.test.ts @@ -45,17 +45,18 @@ describe('update preference commands', () => { disablePasteBurst: false, renderLatex: true, cacheExpiryHint: true, - disableFeedbackSurvey: false, + autoSessionTitle: true, notifications: { enabled: true, condition: 'unfocused' }, upgrade: { autoInstall: false }, statusLine: { items: null, command: null }, + markdown: { mermaid: 'final' }, }); expect(setAppState).toHaveBeenCalledWith({ upgrade: { autoInstall: false } }); expect(track).toHaveBeenCalledWith('upgrade_preference_changed', { auto_install: false }); expect(showStatus).toHaveBeenCalledWith('Automatic updates disabled.'); }); - it('preserves a render_latex opt-out when saving an unrelated preference', async () => { + it('preserves rendering and automatic title opt-outs when saving another preference', async () => { mocks.saveTuiConfig.mockClear(); const host = { state: { @@ -63,6 +64,7 @@ describe('update preference commands', () => { theme: 'auto' as const, editorCommand: null, renderLatex: false, + autoSessionTitle: false, notifications: { enabled: true, condition: 'unfocused' as const }, upgrade: { autoInstall: true }, }, @@ -76,7 +78,7 @@ describe('update preference commands', () => { await applyUpdatePreferenceChoice(host, false); expect(mocks.saveTuiConfig).toHaveBeenCalledWith( - expect.objectContaining({ renderLatex: false }), + expect.objectContaining({ renderLatex: false, autoSessionTitle: false }), ); }); }); diff --git a/apps/kimi-code/test/tui/commands/web.test.ts b/apps/kimi-code/test/tui/commands/web.test.ts index d31e10ca4..3986e5215 100644 --- a/apps/kimi-code/test/tui/commands/web.test.ts +++ b/apps/kimi-code/test/tui/commands/web.test.ts @@ -60,7 +60,7 @@ function makeHost() { setExitOpenUrl: vi.fn(), setExitForegroundTask: vi.fn(), stop: vi.fn(async () => {}), - waitForLazyCreation: vi.fn(async () => {}), + waitForSessionAssembly: vi.fn(async () => {}), } as unknown as SlashCommandHost & { showStatus: ReturnType; showError: ReturnType; @@ -69,7 +69,7 @@ function makeHost() { setExitOpenUrl: ReturnType; setExitForegroundTask: ReturnType; stop: ReturnType; - waitForLazyCreation: ReturnType; + waitForSessionAssembly: ReturnType; }; return host; } @@ -204,6 +204,8 @@ describe('handleRemoteControlCommand', () => { deviceId: 'device-1', deviceName: 'example-device', url: entryUrl, + relayOrigin: 'https://code-rc.kimi.com', + closed: new Promise(() => {}), close, }); mocks.startServerForeground.mockImplementation( @@ -273,6 +275,8 @@ describe('handleRemoteControlCommand', () => { deviceId: 'device-1', deviceName: 'example-device', url: entryUrl, + relayOrigin: 'https://code-rc.kimi.com', + closed: new Promise(() => {}), close, }); mocks.startServerForeground.mockImplementation( @@ -294,7 +298,7 @@ describe('handleRemoteControlCommand', () => { try { await handleRemoteControlCommand(host); - expect(host.waitForLazyCreation).toHaveBeenCalledOnce(); + expect(host.waitForSessionAssembly).toHaveBeenCalledOnce(); expect(host.showError).not.toHaveBeenCalled(); expect(host.setExitForegroundTask).toHaveBeenCalledOnce(); expect(host.stop).toHaveBeenCalledOnce(); diff --git a/apps/kimi-code/test/tui/components/chrome/banner.test.ts b/apps/kimi-code/test/tui/components/chrome/banner.test.ts index 1d2d5034a..ef58dd2db 100644 --- a/apps/kimi-code/test/tui/components/chrome/banner.test.ts +++ b/apps/kimi-code/test/tui/components/chrome/banner.test.ts @@ -239,4 +239,46 @@ describe('BannerComponent', () => { expect(lines[0]).toContain('✦ Tip:'); expect(lines[0]).toContain('Use /help'); }); + + it('renders a title-only banner without a main-text line', () => { + const lines = new BannerComponent(makeBannerState({ tag: 'Big news', mainText: null })).render(80); + expect(lines.length).toBe(2); + expect(lines[0]).toContain('✦ Big news'); + expect(lines[1]).toBe(''); + }); + + it('renders subtext under a title-only banner', () => { + const lines = new BannerComponent( + makeBannerState({ tag: 'Big news', mainText: null, subText: 'Details here' }), + ).render(80); + expect(lines.length).toBe(3); + expect(lines[0]).toContain('✦ Big news'); + expect(lines[1]).toContain('Details here'); + expect(lines[2]).toBe(''); + }); + + it('wraps a long title-only tag instead of dropping it', () => { + const width = 20; + const lines = new BannerComponent( + makeBannerState({ tag: 'A fairly long banner title', mainText: null }), + ).render(width); + const joined = lines.join('\n'); + for (const word of ['fairly', 'long', 'banner', 'title']) { + expect(joined).toContain(word); + } + for (const line of lines) { + expect(visibleWidth(line)).toBeLessThanOrEqual(width); + } + }); + + it('drops the subtext indent when a title-only banner cannot fit it', () => { + for (const width of [1, 2]) { + const lines = new BannerComponent( + makeBannerState({ tag: 'Big news', mainText: null, subText: 'Details here' }), + ).render(width); + for (const line of lines) { + expect(visibleWidth(line)).toBeLessThanOrEqual(width); + } + } + }); }); diff --git a/apps/kimi-code/test/tui/components/chrome/footer.test.ts b/apps/kimi-code/test/tui/components/chrome/footer.test.ts index 9ce0701fb..a5506500d 100644 --- a/apps/kimi-code/test/tui/components/chrome/footer.test.ts +++ b/apps/kimi-code/test/tui/components/chrome/footer.test.ts @@ -1,5 +1,5 @@ import chalk from 'chalk'; -import { afterEach, beforeEach, describe, expect, it } from 'vitest'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { FooterComponent } from '#/tui/components/chrome/footer'; import { setRainbowDance, type RainbowDanceController } from '#/tui/easter-eggs/dance'; @@ -7,6 +7,24 @@ import { currentTheme, darkColors, lightColors } from '#/tui/theme'; import type { ModelAlias } from '@moonshot-ai/kimi-code-sdk'; import type { AppState } from '#/tui/types'; +const gitStatusMocks = vi.hoisted(() => ({ + createGitStatusCache: vi.fn(), +})); + +vi.mock('#/utils/git/git-status', async (importOriginal) => { + const actual = await importOriginal(); + return { ...actual, createGitStatusCache: gitStatusMocks.createGitStatusCache }; +}); + +beforeEach(() => { + gitStatusMocks.createGitStatusCache.mockClear(); + gitStatusMocks.createGitStatusCache.mockImplementation(() => ({ + getStatus: vi.fn(() => null), + refresh: vi.fn(), + dispose: vi.fn(), + })); +}); + const TRUECOLOR_PATTERN = /\[38;2;(\d+);(\d+);(\d+)m/g; function truecolorCodes(text: string): Set { @@ -63,6 +81,21 @@ const appState: AppState = { }; describe('FooterComponent', () => { + it('asks the git cache to refresh and disposes it with the footer', () => { + const refresh = vi.fn(); + const dispose = vi.fn(); + gitStatusMocks.createGitStatusCache.mockImplementation(() => ({ + getStatus: () => null, + refresh, + dispose, + })); + const footer = new FooterComponent(appState); + footer.refreshGitStatus(); + expect(refresh).toHaveBeenCalledTimes(1); + footer.dispose(); + expect(dispose).toHaveBeenCalledTimes(1); + }); + const previousChalkLevel = chalk.level; beforeEach(() => { diff --git a/apps/kimi-code/test/tui/components/chrome/gutter-container.test.ts b/apps/kimi-code/test/tui/components/chrome/gutter-container.test.ts index e62c4c25a..f5b79596a 100644 --- a/apps/kimi-code/test/tui/components/chrome/gutter-container.test.ts +++ b/apps/kimi-code/test/tui/components/chrome/gutter-container.test.ts @@ -1,19 +1,92 @@ -import type { Component } from '@moonshot-ai/pi-tui'; +import type { Component, TuiMouseEvent } from '@moonshot-ai/pi-tui'; import { describe, expect, it, vi } from 'vitest'; import { GutterContainer } from '#/tui/components/chrome/gutter-container'; +import { isRenderCacheEnabled, setRenderCacheEnabled } from '#/tui/utils/render-cache'; class FakeChild implements Component { - constructor( - private readonly lines: (innerWidth: number) => string[], - ) {} + constructor(private readonly lines: (innerWidth: number) => string[]) {} invalidate(): void {} render(width: number): string[] { return this.lines(width); } } +class MouseChild extends FakeChild { + readonly events: TuiMouseEvent[] = []; + handleMouse(event: TuiMouseEvent) { + this.events.push(event); + return { handled: true as const }; + } +} + +function clickAt(x: number, y: number, width: number, height: number): TuiMouseEvent { + return { + type: 'click', + button: 'left', + x, + y, + screenX: x, + screenY: y, + width, + height, + shift: false, + alt: false, + ctrl: false, + clickCount: 1, + }; +} + describe('GutterContainer', () => { + it('exposes completed child geometry without rendering again and preserves it while heights stay equal', () => { + let lines = ['first']; + const render = vi.fn(() => lines); + const child = new FakeChild(render); + const container = new GutterContainer(2, 3); + container.addChild(child); + expect(container.getRenderedLayout()).toBeUndefined(); + container.render(20); + const initial = container.getRenderedLayout(); + expect(initial).toEqual({ contentWidth: 15, children: [{ component: child, height: 1 }] }); + expect(render).toHaveBeenCalledTimes(1); + + lines = ['updated']; + container.render(20); + expect(container.getRenderedLayout()).toBe(initial); + lines = ['first', 'second']; + container.render(20); + expect(container.getRenderedLayout()?.children[0]?.height).toBe(2); + expect(initial?.children[0]?.height).toBe(1); + const taller = container.getRenderedLayout(); + container.render(21); + expect(container.getRenderedLayout()).not.toBe(taller); + expect(container.getRenderedLayout()?.contentWidth).toBe(16); + + const replacement = new FakeChild(() => ['first', 'second']); + container.children[0] = replacement; + container.render(21); + expect(container.getRenderedLayout()?.children[0]?.component).toBe(replacement); + container.clear(); + container.render(21); + expect(container.getRenderedLayout()?.children).toEqual([]); + }); + + it('records current geometry even with render caching disabled', () => { + const enabled = isRenderCacheEnabled(); + setRenderCacheEnabled(false); + try { + const container = new GutterContainer(2, 2); + container.addChild(new FakeChild(() => ['one', 'two'])); + container.render(20); + const initial = container.getRenderedLayout(); + expect(initial?.children[0]?.height).toBe(2); + container.render(20); + expect(container.getRenderedLayout()).toBe(initial); + } finally { + setRenderCacheEnabled(enabled); + } + }); + it('prefixes every child line with `left` spaces', () => { const c = new GutterContainer(2, 2); c.addChild(new FakeChild(() => ['hello', 'world'])); @@ -57,12 +130,36 @@ describe('GutterContainer', () => { it('keeps a leading OSC 133 zone marker at byte 0, before the gutter', () => { const c = new GutterContainer(2, 2); - const marked = `\x1b]133;A\x07content`; - const doubleMarked = `\x1b]133;B\x07\x1b]133;C\x07last`; + const marked = `\u001B]133;A\u0007content`; + const doubleMarked = `\u001B]133;B\u0007\u001B]133;C\u0007last`; c.addChild(new FakeChild(() => [marked, doubleMarked])); expect(c.render(20)).toEqual([ - `\x1b]133;A\x07 content`, - `\x1b]133;B\x07\x1b]133;C\x07 last`, + `\u001B]133;A\u0007 content`, + `\u001B]133;B\u0007\u001B]133;C\u0007 last`, ]); }); + + it('translates mouse events into the inner coordinate frame', () => { + const child = new MouseChild(() => ['x']); + const c = new GutterContainer(2, 3); + c.addChild(child); + + c.handleMouse(clickAt(5, 0, 20, 1)); + expect(child.events).toHaveLength(1); + expect(child.events[0]).toMatchObject({ x: 3, width: 15 }); + }); + + it('measures child heights at the inner width when hit-testing', () => { + const first = new MouseChild((w) => (w >= 19 ? ['a'] : ['a', 'a'])); + const second = new MouseChild(() => ['b']); + const c = new GutterContainer(1, 1); + c.addChild(first); + c.addChild(second); + + // Inner width is 17, where the first child wraps to two rows. + c.handleMouse(clickAt(3, 1, 19, 3)); + expect(first.events).toHaveLength(1); + expect(first.events[0]).toMatchObject({ y: 1 }); + expect(second.events).toHaveLength(0); + }); }); diff --git a/apps/kimi-code/test/tui/components/dialogs/choice-picker.test.ts b/apps/kimi-code/test/tui/components/dialogs/choice-picker.test.ts index c0fac1c1e..0fdbf61fa 100644 --- a/apps/kimi-code/test/tui/components/dialogs/choice-picker.test.ts +++ b/apps/kimi-code/test/tui/components/dialogs/choice-picker.test.ts @@ -1,3 +1,6 @@ +import { stripVTControlCharacters } from 'node:util'; + +import { visibleWidth } from '@moonshot-ai/pi-tui'; import { describe, expect, it, vi } from 'vitest'; import { ChoicePickerComponent, type ChoiceOption } from '#/tui/components/dialogs/choice-picker'; @@ -7,7 +10,6 @@ import { SettingsSelectorComponent } from '#/tui/components/dialogs/settings-sel import { ThemeSelectorComponent } from '#/tui/components/dialogs/theme-selector'; import { UpdatePreferenceSelectorComponent } from '#/tui/components/dialogs/update-preference-selector'; import { currentTheme } from '#/tui/theme'; -import { darkColors } from '#/tui/theme/colors'; const ANSI_SGR = /\[[0-9;]*m/g; @@ -16,6 +18,43 @@ function strip(text: string): string { } describe('ChoicePickerComponent', () => { + it('keeps ordinary notices as plain text', () => { + const picker = new ChoicePickerComponent({ + title: 'Pick one', + notice: '**Plain notice**', + options: [{ value: 'keep', label: 'Keep current' }], + onSelect: vi.fn(), + onCancel: vi.fn(), + }); + + expect(picker.render(100).map(strip)).toContain(' **Plain notice**'); + }); + + it.each([24, 100])('renders Markdown notices and preserves paragraphs at width %s', (width) => { + const picker = new ChoicePickerComponent({ + title: 'Migration', + notice: { markdown: '### Upgrade\n\nUse **next** model.\n\n- Faster replies\n- [Details](https://example.com/upgrade)' }, + options: [{ value: 'keep', label: 'Keep current' }], + onSelect: vi.fn(), + onCancel: vi.fn(), + }); + + const rendered = picker.render(width); + const lines = rendered.map(stripVTControlCharacters); + const output = lines.join('\n'); + expect(output).toContain(' Upgrade'); + expect(output).toContain(' Use next model.'); + expect(output).toContain('Faster replies'); + expect(output).toContain('Details'); + expect(output).not.toContain('###'); + expect(output).not.toContain('**'); + expect(output).not.toContain('[Details]'); + const paragraph = lines.findIndex((line) => line.includes('Use next model.')); + expect(lines[paragraph - 1]?.trim()).toBe(''); + expect(lines[paragraph + 1]?.trim()).toBe(''); + expect(rendered.every((line) => visibleWidth(line) <= width)).toBe(true); + }); + it('uses the model-dialog header vocabulary (capitalized keys, "type to search")', () => { const picker = new ChoicePickerComponent({ title: 'Add provider', @@ -107,7 +146,8 @@ describe('ChoicePickerComponent', () => { const settingsOutput = settings.render(120).map(strip); expect(settingsOutput).toContain(' ❯ Model'); expect(settingsOutput).toContain(' Switch the active model and thinking mode.'); - expect(settingsOutput).toContain(' Turn automatic CLI updates on or off.'); + expect(settingsOutput).toContain(' TUI mode'); + expect(settingsOutput).toContain(' Choose the regular or fullscreen layout.'); const upgradePreference = new UpdatePreferenceSelectorComponent({ currentValue: true, @@ -149,6 +189,21 @@ describe('ChoicePickerComponent', () => { expect(onSelect).toHaveBeenCalledWith('a'); }); + it.each([' ', '\u001B[32u'])('requires Enter when spaceSelect is disabled (%j)', (space) => { + const onSelect = vi.fn(); + const picker = new ChoicePickerComponent({ + title: 'Confirm migration', + options: [{ value: 'switch', label: 'Switch model' }], + spaceSelect: false, + onSelect, + onCancel: vi.fn(), + }); + picker.handleInput(space); + expect(onSelect).not.toHaveBeenCalled(); + picker.handleInput('\r'); + expect(onSelect).toHaveBeenCalledWith('switch'); + }); + it('renders the selected option description in descriptionTone, others in textMuted', () => { const options: ChoiceOption[] = [ { value: 'none', label: 'No attachment', description: 'Text feedback only' }, diff --git a/apps/kimi-code/test/tui/components/dialogs/custom-registry-import.test.ts b/apps/kimi-code/test/tui/components/dialogs/custom-registry-import.test.ts index 68c79974d..2aca221f1 100644 --- a/apps/kimi-code/test/tui/components/dialogs/custom-registry-import.test.ts +++ b/apps/kimi-code/test/tui/components/dialogs/custom-registry-import.test.ts @@ -49,12 +49,15 @@ describe('CustomRegistryImportDialogComponent', () => { expect(plain(dialog)).toContain('next field'); }); - it('requires a non-empty Bearer token before submitting', () => { + it('submits with an empty Bearer token for public registries', () => { const { dialog, onDone } = makeDialog(); dialog.handleInput('\r'); // url -> token - dialog.handleInput('\r'); // attempt submit with an empty token - expect(onDone).not.toHaveBeenCalled(); - expect(plain(dialog)).toContain('Bearer token cannot be empty'); + dialog.handleInput('\r'); // submit with an empty token + + expect(onDone).toHaveBeenCalledWith({ + kind: 'ok', + value: { url: 'https://example.com/api.json', apiKey: undefined }, + }); }); it('submits the url and token once both are provided', () => { diff --git a/apps/kimi-code/test/tui/components/dialogs/mermaid-preference-selector.test.ts b/apps/kimi-code/test/tui/components/dialogs/mermaid-preference-selector.test.ts new file mode 100644 index 000000000..1f2ed0798 --- /dev/null +++ b/apps/kimi-code/test/tui/components/dialogs/mermaid-preference-selector.test.ts @@ -0,0 +1,51 @@ +import { describe, expect, it } from 'vitest'; + +import { MermaidPreferenceSelectorComponent } from '#/tui/components/dialogs/mermaid-preference-selector'; +import { SettingsSelectorComponent } from '#/tui/components/dialogs/settings-selector'; + +const ANSI = /\[[0-9;]*m/g; +const strip = (s: string): string => s.replaceAll(ANSI, ''); + +describe('MermaidPreferenceSelectorComponent', () => { + it('maps the current preference onto the picker options with the current marker', () => { + const selected: boolean[] = []; + const enabledPicker = new MermaidPreferenceSelectorComponent({ + currentValue: true, + onSelect: (value) => selected.push(value), + onCancel: () => {}, + }); + const disabledPicker = new MermaidPreferenceSelectorComponent({ + currentValue: false, + onSelect: (value) => selected.push(value), + onCancel: () => {}, + }); + + const enabledText = strip(enabledPicker.render(60).join('\n')); + expect(enabledText).toContain('Mermaid diagrams'); + expect(enabledText).toContain('Draw mermaid code blocks as diagrams in the terminal.'); + expect(enabledText).toContain('Keep mermaid code blocks as highlighted source.'); + expect(enabledText).toContain('On ← current'); + expect(enabledText).not.toContain('final'); + + const disabledText = strip(disabledPicker.render(60).join('\n')); + expect(disabledText).toContain('Off ← current'); + + enabledPicker.handleInput('\r'); + expect(selected).toEqual([true]); + disabledPicker.handleInput('\r'); + expect(selected).toEqual([true, false]); + }); +}); + +describe('SettingsSelectorComponent mermaid entry', () => { + it('offers Mermaid diagrams right after Theme', () => { + const picker = new SettingsSelectorComponent({ onSelect: () => {}, onCancel: () => {} }); + const text = strip(picker.render(60).join('\n')); + + const themeIndex = text.indexOf('Theme'); + const mermaidIndex = text.indexOf('Mermaid diagrams'); + const editorIndex = text.indexOf('Editor'); + expect(mermaidIndex).toBeGreaterThan(themeIndex); + expect(mermaidIndex).toBeLessThan(editorIndex); + }); +}); diff --git a/apps/kimi-code/test/tui/components/dialogs/model-switch-confirm-dialog.test.ts b/apps/kimi-code/test/tui/components/dialogs/model-switch-confirm-dialog.test.ts new file mode 100644 index 000000000..4746176bb --- /dev/null +++ b/apps/kimi-code/test/tui/components/dialogs/model-switch-confirm-dialog.test.ts @@ -0,0 +1,140 @@ +import { describe, expect, it, vi } from 'vitest'; + +import { ModelSwitchConfirmDialogComponent } from '#/tui/components/dialogs/model-switch-confirm-dialog'; + +const ANSI_SGR = /\[[0-9;]*m/g; + +const DEFAULT_HINT = + 'The prompt cache changes on a model switch — token usage may increase and model behavior may be inconsistent.'; + +function strip(text: string): string { + return text.replaceAll(ANSI_SGR, ''); +} + +function renderDialog(fromModel = 'Kimi K2.5', toModel = 'Kimi K2 Turbo', hint: string | undefined = DEFAULT_HINT) { + const onSelect = vi.fn(); + const onCancel = vi.fn(); + const dialog = new ModelSwitchConfirmDialogComponent({ fromModel, toModel, hint, onSelect, onCancel }); + return { dialog, onSelect, onCancel, lines: dialog.render(120).map(strip) }; +} + +describe('ModelSwitchConfirmDialogComponent', () => { + it('renders the hardcoded title with the from/to model suffix', () => { + const { lines } = renderDialog(); + expect(lines.some((l) => l.includes('Switch model?') && l.includes('Kimi K2.5 → Kimi K2 Turbo'))).toBe( + true, + ); + }); + + it('renders the default hint and the standard keyboard hint vocabulary', () => { + const { lines } = renderDialog(); + expect( + lines.some((l) => + l.includes( + 'The prompt cache changes on a model switch — token usage may increase and model behavior may be inconsistent.', + ), + ), + ).toBe(true); + const titleIdx = lines.findIndex((l) => l.includes('Switch model')); + expect(lines[titleIdx + 1]).toContain('↑↓ navigate'); + expect(lines[titleIdx + 1]).toContain('Enter select'); + expect(lines[titleIdx + 1]).toContain('Esc cancel'); + }); + + it('renders all four options in order with right-column descriptions', () => { + const { lines } = renderDialog(); + const fresh = lines.findIndex((l) => l.includes('Start a new session')); + const compact = lines.findIndex((l) => l.includes('Compact and continue')); + const asIs = lines.findIndex((l) => l.includes('Continue as-is')); + const cancel = lines.findIndex((l) => l.includes('Cancel')); + + expect(fresh).toBeGreaterThanOrEqual(0); + expect(fresh).toBeLessThan(compact); + expect(compact).toBeLessThan(asIs); + expect(asIs).toBeLessThan(cancel); + expect(lines[fresh]).toContain('No extra cost · best for a new task'); + expect(lines[compact]).toContain('Lower cost and better output quality when continuing this session'); + expect(lines[asIs]).toContain('Output quality may suffer · cache loss may increase token usage'); + expect(lines[cancel]).toContain('Stay on the current model'); + }); + + it('aligns description columns across options', () => { + const { lines } = renderDialog(); + const colOf = (labelNeedle: string, descNeedle: string) => { + const line = lines.find((l) => l.includes(labelNeedle)); + expect(line).toBeDefined(); + return line!.indexOf(descNeedle); + }; + const reference = colOf('Start a new session', 'No extra cost'); + expect(colOf('Compact and continue', 'Lower cost and better')).toBe(reference); + expect(colOf('Continue as-is', 'Output quality may suffer')).toBe(reference); + }); + + it('selects the highlighted option on Enter, new session by default', () => { + const { dialog, onSelect } = renderDialog(); + dialog.handleInput('\r'); + expect(onSelect).toHaveBeenCalledWith('new'); + }); + + it('navigates with arrows before selecting', () => { + const { dialog, onSelect } = renderDialog(); + dialog.handleInput('\u001B[B'); // down + dialog.handleInput('\u001B[B'); // down + dialog.handleInput('\r'); + expect(onSelect).toHaveBeenCalledWith('continue'); + }); + + it('cancels on Esc without selecting', () => { + const { dialog, onSelect, onCancel } = renderDialog(); + dialog.handleInput('\u001B'); + expect(onCancel).toHaveBeenCalled(); + expect(onSelect).not.toHaveBeenCalled(); + }); + + it('renders a remote hint verbatim under the hardcoded title', () => { + const { lines } = renderDialog('AAA', 'BBB', 'Remote hint text.'); + expect(lines.some((l) => l.includes('Switch model?') && l.includes('AAA → BBB'))).toBe(true); + expect(lines.some((l) => l.includes('Remote hint text.'))).toBe(true); + for (const label of ['Start a new session', 'Compact and continue', 'Continue as-is', 'Cancel']) { + expect(lines.some((l) => l.includes(label))).toBe(true); + } + }); + + it('renders each line of a multi-line hint as its own row', () => { + const { lines } = renderDialog('AAA', 'BBB', 'First line.\r\nSecond line.\nThird line.'); + expect(lines.some((l) => l.includes('First line.'))).toBe(true); + expect(lines.some((l) => l.includes('Second line.'))).toBe(true); + expect(lines.some((l) => l.includes('Third line.'))).toBe(true); + expect(lines.some((l) => l.includes('\r') || l.includes('\n'))).toBe(false); + }); + + it('renders a Chinese hint, truncating within narrow widths', () => { + const { lines } = renderDialog( + 'Kimi K2.5', + 'Kimi K2 Turbo', + '由于缓存发生变化,可能出现模型消耗增大或模型效果异常的情况。', + ); + expect(lines.some((l) => l.includes('Switch model?') && l.includes('Kimi K2.5 → Kimi K2 Turbo'))).toBe( + true, + ); + expect(lines.some((l) => l.includes('由于缓存发生变化,可能出现模型消耗增大或模型效果异常的情况。'))).toBe( + true, + ); + }); + + it('omits the body line when no hint is provided', () => { + const dialog = new ModelSwitchConfirmDialogComponent({ + fromModel: 'Kimi K2.5', + toModel: 'Kimi K2 Turbo', + hint: undefined, + onSelect: vi.fn(), + onCancel: vi.fn(), + }); + const lines = dialog.render(120).map(strip); + expect(lines.some((l) => l.includes('Switch model?'))).toBe(true); + expect(lines.some((l) => l.includes('Start a new session'))).toBe(true); + const titleIdx = lines.findIndex((l) => l.includes('Switch model')); + const firstOptionIdx = lines.findIndex((l) => l.includes('Start a new session')); + expect(firstOptionIdx - titleIdx).toBe(3); + }); +}); diff --git a/apps/kimi-code/test/tui/components/dialogs/plugins-selector.test.ts b/apps/kimi-code/test/tui/components/dialogs/plugins-selector.test.ts index f7aef8e76..ac1b87e8c 100644 --- a/apps/kimi-code/test/tui/components/dialogs/plugins-selector.test.ts +++ b/apps/kimi-code/test/tui/components/dialogs/plugins-selector.test.ts @@ -281,7 +281,7 @@ describe('plugins selector dialogs', () => { { ...superpowers, id: 'kimi-webbridge', - displayName: 'Kimi WebBridge', + displayName: 'Kimi Browser Extension', source: 'zip-url', originalSource: 'https://code.kimi.com/kimi-code/plugins/official/kimi-webbridge.zip', }, @@ -464,7 +464,7 @@ describe('plugins selector dialogs', () => { // The catalog is still loading, but the built-in Web Bridge entry is shown // immediately because it is baked into the TUI, not fetched. const out = strip(renderRaw(panel)); - expect(out).toContain('Kimi WebBridge open in browser'); + expect(out).toContain('Kimi Browser Extension open in browser'); expect(out).toContain('Loading marketplace'); }); @@ -472,7 +472,7 @@ describe('plugins selector dialogs', () => { const { panel } = makePanel({ initialTab: 'official' }); panel.setMarketplaceError('fetch failed'); const out = strip(renderRaw(panel)); - expect(out).toContain('Kimi WebBridge open in browser'); + expect(out).toContain('Kimi Browser Extension open in browser'); expect(out).toContain('Marketplace unavailable: fetch failed'); }); @@ -480,12 +480,12 @@ describe('plugins selector dialogs', () => { // A custom marketplace may legitimately list an entry reusing the // kimi-webbridge id: without the capability: marker it must render and // install as a plain plugin, not borrow capability status. - const capabilities = [makeCapability({ id: 'kimi-webbridge', displayName: 'Kimi WebBridge' })]; + const capabilities = [makeCapability({ id: 'kimi-webbridge', displayName: 'Kimi Browser Extension' })]; const entries = [ { id: 'kimi-webbridge', tier: 'official' as const, - displayName: 'Kimi WebBridge (fork)', + displayName: 'Kimi Browser Extension (fork)', source: 'https://x/fork.zip', }, ]; @@ -493,7 +493,7 @@ describe('plugins selector dialogs', () => { panel.setMarketplace(entries, '/tmp/marketplace.json'); const out = strip(renderRaw(panel)); - expect(out).toContain('Kimi WebBridge (fork) install'); + expect(out).toContain('Kimi Browser Extension (fork) install'); panel.handleInput('\r'); expect(onSelect).toHaveBeenCalledWith({ @@ -507,7 +507,7 @@ describe('plugins selector dialogs', () => { makeCapability(), makeCapability({ id: 'kimi-webbridge', - displayName: 'Kimi WebBridge', + displayName: 'Kimi Browser Extension', state: 'not_installed', steps: [], }), @@ -519,7 +519,7 @@ describe('plugins selector dialogs', () => { // suppressed by the real webbridge row). const out = strip(renderRaw(panel)); expect(out).toContain('Kimi Computer Use install'); - expect(out).toContain('Kimi WebBridge install'); + expect(out).toContain('Kimi Browser Extension install'); expect(out).toContain('Background GUI automation'); expect(out).not.toContain('id kimi-cu'); expect(out).not.toContain('Official plugin'); @@ -547,7 +547,7 @@ describe('plugins selector dialogs', () => { const out = strip(renderRaw(panel)); expect(out).not.toContain('Kimi Computer Use'); - expect(out).toContain('Kimi WebBridge open in browser'); + expect(out).toContain('Kimi Browser Extension open in browser'); expect(out).toContain('Loading marketplace'); }); @@ -559,7 +559,7 @@ describe('plugins selector dialogs', () => { expect(onSelect).toHaveBeenCalledWith({ kind: 'open-url', url: 'https://www.kimi.com/features/webbridge#local-agent', - label: 'Kimi WebBridge', + label: 'Kimi Browser Extension', }); }); @@ -579,7 +579,7 @@ describe('plugins selector dialogs', () => { { id: 'kimi-webbridge', tier: 'official' as const, - displayName: 'Kimi WebBridge', + displayName: 'Kimi Browser Extension', source: 'capability:kimi-webbridge', }, ...officialEntries, @@ -589,7 +589,7 @@ describe('plugins selector dialogs', () => { const out = strip(renderRaw(panel)); // Exactly one row, and it is the installable catalog copy — the hardcoded // open-in-browser promo is suppressed. - expect(out.split('Kimi WebBridge').length - 1).toBe(1); + expect(out.split('Kimi Browser Extension').length - 1).toBe(1); expect(out).not.toContain('open in browser'); panel.handleInput('\r'); // index 0 → the real entry installs expect(onSelect).toHaveBeenCalledWith({ @@ -606,7 +606,7 @@ describe('plugins selector dialogs', () => { { id: 'kimi-webbridge', tier: 'curated' as const, - displayName: 'Kimi WebBridge', + displayName: 'Kimi Browser Extension', source: 'capability:kimi-webbridge', }, ]; @@ -615,7 +615,7 @@ describe('plugins selector dialogs', () => { const out = strip(renderRaw(panel)); expect(out).toContain('Curated'); expect(out).toContain('Third-party plugins from our partners.'); - expect(out).toContain('Kimi WebBridge install'); + expect(out).toContain('Kimi Browser Extension install'); panel.handleInput('\r'); expect(onSelect).toHaveBeenCalledWith({ kind: 'install', @@ -816,7 +816,7 @@ describe('plugins selector dialogs', () => { const capabilities = [ makeCapability({ id: 'kimi-webbridge', - displayName: 'Kimi WebBridge', + displayName: 'Kimi Browser Extension', state: 'ready', version: 'v1.11.5', steps: [ @@ -828,16 +828,16 @@ describe('plugins selector dialogs', () => { }), ]; const installed = [ - { ...superpowers, id: 'kimi-webbridge', displayName: 'Kimi WebBridge', version: '1.11.3' }, + { ...superpowers, id: 'kimi-webbridge', displayName: 'Kimi Browser Extension', version: '1.11.3' }, ]; const { panel } = makePanel({ installed, capabilities, initialTab: 'official' }); panel.setMarketplace( - [{ id: 'kimi-webbridge', displayName: 'Kimi WebBridge', source: 'capability:kimi-webbridge', tier: 'official', builtIn: true }], + [{ id: 'kimi-webbridge', displayName: 'Kimi Browser Extension', source: 'capability:kimi-webbridge', tier: 'official', builtIn: true }], '/tmp/marketplace.json', ); const out = strip(renderRaw(panel)); - expect(out).toContain('Kimi WebBridge installed'); + expect(out).toContain('Kimi Browser Extension installed'); expect(out).not.toContain('ready'); expect(out).not.toContain('v1.11.5'); expect(out).not.toContain('browser extension'); @@ -847,7 +847,7 @@ describe('plugins selector dialogs', () => { const capabilities = [ makeCapability({ id: 'kimi-webbridge', - displayName: 'Kimi WebBridge', + displayName: 'Kimi Browser Extension', state: 'partial', steps: [ { id: 'daemon-binary', state: 'ok' }, @@ -859,12 +859,12 @@ describe('plugins selector dialogs', () => { ]; const { panel } = makePanel({ capabilities, initialTab: 'official' }); panel.setMarketplace( - [{ id: 'kimi-webbridge', displayName: 'Kimi WebBridge', source: 'capability:kimi-webbridge', tier: 'official', builtIn: true }], + [{ id: 'kimi-webbridge', displayName: 'Kimi Browser Extension', source: 'capability:kimi-webbridge', tier: 'official', builtIn: true }], '/tmp/marketplace.json', ); const out = strip(renderRaw(panel)); - expect(out).toContain('Kimi WebBridge install'); + expect(out).toContain('Kimi Browser Extension install'); expect(out).not.toContain('agent skill'); expect(out).not.toContain('skill shadows'); }); diff --git a/apps/kimi-code/test/tui/components/dialogs/trust-prompt.test.ts b/apps/kimi-code/test/tui/components/dialogs/trust-prompt.test.ts index a1627893d..95e4a14b8 100644 --- a/apps/kimi-code/test/tui/components/dialogs/trust-prompt.test.ts +++ b/apps/kimi-code/test/tui/components/dialogs/trust-prompt.test.ts @@ -1,103 +1,193 @@ import { describe, expect, it, vi } from 'vitest'; - -import type { WorkspaceTrustMcpServerInfo } from '@moonshot-ai/kimi-code-sdk'; - +import type { WorkspaceTrustInfo } from '@moonshot-ai/kimi-code-sdk'; import { TrustPromptComponent } from '#/tui/components/dialogs/trust-prompt'; -const ANSI_SGR = /\[[0-9;]*m/g; - -function strip(text: string): string { - return text.replaceAll(ANSI_SGR, ''); +function info(overrides: Partial = {}): WorkspaceTrustInfo { + return { + trusted: false, + gatedMcpServers: [], + gatedAdditionalDirs: [], + additionalDirSources: [], + instructionSources: { agentsMdPaths: [], skills: [], agentProfiles: [], paths: [] }, + warnings: [], + ...overrides, + }; } - -function renderLines(gatedMcpServers: readonly WorkspaceTrustMcpServerInfo[] = []): string[] { - const prompt = new TrustPromptComponent({ - workDir: '/tmp/demo-workspace', - gatedMcpServers, - onSelect: vi.fn(), +function render(prompt: TrustPromptComponent, width = 80): string[] { + return prompt.render(width).map((line) => line.replaceAll(/\u001B\[[0-9;]*m/g, '')); +} +const workDir = '/tmp/example-project'; +function mixedInfo(): WorkspaceTrustInfo { + return info({ + gatedMcpServers: [ + { + name: 'github', + transport: 'stdio', + command: 'npx', + args: ['--private-argument'], + origin: `${workDir}/.mcp.json`, + }, + { + name: 'docs', + transport: 'http', + url: 'https://example.test/private', + origin: `${workDir}/.kimi-code/mcp.json`, + }, + ], + gatedAdditionalDirs: ['/tmp/shared-assets', '/Users/example/Documents'], + additionalDirSources: [`${workDir}/.kimi-code/local.toml`], + instructionSources: { + agentsMdPaths: [`${workDir}/AGENTS.md`], + skills: ['lint-fix', 'deploy'], + agentProfiles: ['reviewer'], + paths: [ + `${workDir}/AGENTS.md`, + `${workDir}/.kimi-code/skills/`, + `${workDir}/.kimi-code/agents/`, + ], + }, }); - return prompt.render(100).map(strip); } describe('TrustPromptComponent', () => { - it('renders the header vocabulary and the workspace path', () => { - const lines = renderLines(); - const titleIdx = lines.findIndex((l) => l.includes('Trust this folder?')); - expect(titleIdx).toBeGreaterThanOrEqual(0); - const hint = lines[titleIdx + 1]; - expect(hint).toContain('↑↓ navigate'); - expect(hint).toContain('Enter select'); - expect(hint).toContain('Esc exit'); - expect(lines.some((l) => l.includes('/tmp/demo-workspace'))).toBe(true); - }); - - it('lists the gated project MCP servers when present', () => { - const lines = renderLines([ - { name: 'nested-server', transport: 'stdio', command: 'nested-cmd', args: ['--safe'], cwd: '/tmp' }, - { name: 'root-server', transport: 'http', url: 'https://example.test/mcp' }, - ]); - expect(lines.some((l) => l.includes('Project MCP targets'))).toBe(true); - expect(lines.some((l) => l.includes('nested-server (stdio): command=nested-cmd'))).toBe(true); - expect(lines.some((l) => l.includes('args=["--safe"] cwd=/tmp'))).toBe(true); - expect(lines.some((l) => l.includes('root-server (http): url=https://example.test/mcp'))).toBe(true); - expect(renderLines().some((l) => l.includes('This folder defines'))).toBe(false); - }); - - it('strips terminal control characters from workspace-supplied MCP targets', () => { - const lines = renderLines([ - { name: 'evil', transport: 'stdio', command: 'cmd\u001B[2J\u0007evil' }, - { name: 'multi\nline', transport: 'http', url: 'https://example.test/\u001B]8;;https://evil.test\u0007' }, - ]); + it('fits typical consequences and actual source paths on an 80x24 terminal', () => { + const prompt = new TrustPromptComponent({ + workDir, + info: mixedInfo(), + getAvailableRows: () => 23, + onSelect: vi.fn(), + }); + const lines = render(prompt); const text = lines.join('\n'); - // ESC and BEL are dropped, defusing the sequences into harmless literal text. - expect(text).toContain('evil (stdio): command=cmd[2Jevil'); - expect(text).toContain('multiline (http): url=https://example.test/]8;;https://evil.test'); - expect(text).not.toContain('\u001B]8;;https://evil.test'); + expect(lines.length).toBeLessThanOrEqual(23); + for (const label of [ + 'Start 2 MCP servers automatically', + 'Config: .mcp.json, .kimi-code/mcp.json', + 'Access 2 folders outside this project', + 'Config: .kimi-code/local.toml', + 'AGENTS.md', + '.kimi-code/skills', + '.kimi-code/agents/', + 'Check:', + 'future project config changes', + 'Trust and continue', + ]) + expect(text).toContain(label); + for (const hidden of [ + 'page', + '--private-argument', + 'PRIVATE_KEY', + 'https://example.test/private', + 'subagents', + ]) + expect(text).not.toContain(hidden); }); - - it('defaults to Trust this folder', () => { + it('distinguishes empty activation from unreadable configuration', () => { + const empty = new TrustPromptComponent({ workDir, info: info(), onSelect: vi.fn() }); + expect(render(empty).join('\n')).toContain( + 'No project integrations or instructions to activate.', + ); + const failed = new TrustPromptComponent({ + workDir, + info: info({ warnings: ['Could not inspect MCP configuration.'] }), + onSelect: vi.fn(), + }); + const text = render(failed).join('\n'); + expect(text).toContain('Could not inspect MCP configuration.'); + expect(text).not.toContain('No project integrations'); + expect(text).not.toContain('No project-level config'); + expect(text).toContain('future project config changes'); + }); + it('pages through MCP sources with fixed choices and persistent trust copy', () => { + const paths = Array.from({ length: 8 }, (_, i) => `/outside/directory-${i}`); + const origins = Array.from({ length: 12 }, (_, i) => `/outside/source-${i}/mcp.json`); + let rows = 23; + const prompt = new TrustPromptComponent({ + workDir, + info: info({ + gatedMcpServers: origins.map((origin, i) => ({ + name: `server-${i}`, + transport: 'stdio', + origin, + })), + gatedAdditionalDirs: paths, + additionalDirSources: [`${workDir}/.kimi-code/local.toml`], + }), + getAvailableRows: () => rows, + onSelect: vi.fn(), + }); + const pages: string[] = []; + for (let i = 0; i < 30; i += 1) { + const lines = render(prompt, 60); + const text = lines.join('\n'); + if (pages.includes(text)) break; + expect(lines.length).toBeLessThanOrEqual(rows); + expect(text).toContain('Trust and continue'); + expect(text).toContain('Exit'); + expect(text.replaceAll(/\s+/g, ' ')).toContain('future project config'); + pages.push(text); + prompt.handleInput('\u001B[C'); + } + expect(pages.length).toBeGreaterThan(1); + for (const path of origins) expect(pages.join('\n')).toContain(path); + expect(pages.join('\n')).not.toContain('/outside/directory-'); + expect(pages.join('\n')).not.toContain('more'); + prompt.handleInput('\u001B[D'); + expect(render(prompt, 60).join('\n')).toBe(pages.at(-2)); + prompt.handleInput('\u001B[6~'); + expect(render(prompt, 60).join('\n')).toBe(pages.at(-1)); + rows = 60; + expect(render(prompt, 60).join('\n')).not.toContain('page'); + }); + it('cleans control characters and retains full long source paths across wrapping', () => { + const longPath = `/outside/${'x'.repeat(100)}/mcp.json`; + const prompt = new TrustPromptComponent({ + workDir: '/tmp/\u001B[2Jproject', + info: info({ + gatedMcpServers: [{ name: 'ignored', transport: 'http', origin: longPath }], + gatedAdditionalDirs: ['/outside/\u001B[2Jdirectory\u0007'], + additionalDirSources: ['/outside/\u001B[2Jconfig\u0007'], + }), + onSelect: vi.fn(), + }); + const text = render(prompt).join('\n'); + expect(text).not.toContain('\u001B'); + expect(text).not.toContain('\u0007'); + expect(text).toContain('/outside/[2Jconfig'); + expect(text.replaceAll(/\s/g, '')).toContain(longPath); + }); + it('pauses confirmation in a tiny terminal and restores it after resizing', () => { + let rows = 4; const onSelect = vi.fn(); const prompt = new TrustPromptComponent({ - workDir: '/tmp/demo-workspace', - gatedMcpServers: [], + workDir, + info: mixedInfo(), + getAvailableRows: () => rows, onSelect, }); + expect(render(prompt).join('\n')).toContain('Enlarge terminal'); prompt.handleInput('\r'); - expect(onSelect).toHaveBeenCalledWith('trust'); - }); - - it('stays on trust when moving up past the top', () => { - const onSelect = vi.fn(); - const prompt = new TrustPromptComponent({ - workDir: '/tmp/demo-workspace', - gatedMcpServers: [], - onSelect, - }); - prompt.handleInput('\u001B[A'); - prompt.handleInput('\r'); - expect(onSelect).toHaveBeenCalledWith('trust'); - }); - - it('selects distrust after moving the cursor down', () => { - const onSelect = vi.fn(); - const prompt = new TrustPromptComponent({ - workDir: '/tmp/demo-workspace', - gatedMcpServers: [], - onSelect, - }); - prompt.handleInput('\u001B[B'); - prompt.handleInput('\r'); - expect(onSelect).toHaveBeenCalledWith('distrust'); - }); - - it('treats Esc as distrust', () => { - const onSelect = vi.fn(); - const prompt = new TrustPromptComponent({ - workDir: '/tmp/demo-workspace', - gatedMcpServers: [], - onSelect, - }); + expect(onSelect).not.toHaveBeenCalled(); prompt.handleInput('\u001B'); expect(onSelect).toHaveBeenCalledWith('distrust'); + onSelect.mockClear(); + rows = 23; + render(prompt); + prompt.handleInput('\r'); + expect(onSelect).toHaveBeenCalledWith('trust'); + }); + it('preserves default trust, selection, and escape behavior', () => { + for (const { keys, expected } of [ + { keys: ['\r'], expected: 'trust' }, + { keys: ['\u001B[A', '\r'], expected: 'trust' }, + { keys: ['\u001B[B', '\r'], expected: 'distrust' }, + { keys: ['\u001B'], expected: 'distrust' }, + ]) { + const onSelect = vi.fn(); + const prompt = new TrustPromptComponent({ workDir, info: info(), onSelect }); + render(prompt); + for (const key of keys) prompt.handleInput(key); + expect(onSelect).toHaveBeenCalledWith(expected); + } }); }); diff --git a/apps/kimi-code/test/tui/components/editor/file-mention-provider.test.ts b/apps/kimi-code/test/tui/components/editor/file-mention-provider.test.ts index de34a88c0..1c4541820 100644 --- a/apps/kimi-code/test/tui/components/editor/file-mention-provider.test.ts +++ b/apps/kimi-code/test/tui/components/editor/file-mention-provider.test.ts @@ -422,6 +422,20 @@ describe('FileMentionProvider', () => { expect(values.some((value) => value.startsWith('@.git'))).toBe(false); }); + it('uses the filesystem fallback for an unclosed quoted @ mention', async () => { + mkdirSync(join(workDir, 'actions')); + mkdirSync(join(workDir, 'activity')); + const provider = new FileMentionProvider([], workDir, NO_FD); + + const result = await provider.getSuggestions(['@"ac'], 0, 4, { signal: ctrl() }); + + expect(result).not.toBeNull(); + expect(result!.prefix).toBe('@"ac'); + expect(result!.items.map((item) => item.value)).toEqual( + expect.arrayContaining(['@"actions/"', '@"activity/"']), + ); + }); + it('filesystem fallback quotes paths with spaces', async () => { mkdirSync(join(workDir, 'my folder')); const provider = new FileMentionProvider([], workDir, NO_FD); @@ -478,6 +492,184 @@ describe('FileMentionProvider', () => { expect(dir.lines[0]).toBe('hey @src/'); }); + it('does not recut a path item just because the cursor is on an @ token', () => { + const provider = new FileMentionProvider([], workDir, NO_FD); + const result = provider.applyCompletion( + ['@'], + 0, + 1, + { value: 'README.md', label: 'README.md' }, + '', + ); + + expect(result.lines[0]).toBe('@README.md'); + }); + + it('does not recut a stale @-named path item after the user types @', () => { + const provider = new FileMentionProvider([], workDir, NO_FD); + const result = provider.applyCompletion( + ['@'], + 0, + 1, + { value: '@scope/', label: '@scope/' }, + '', + ); + + expect(result.lines[0]).toBe('@@scope/'); + }); + + it('still applies path completion for a directory whose name starts with @', () => { + const provider = new FileMentionProvider([], workDir, NO_FD); + const line = 'cd '; + const result = provider.applyCompletion( + [line], + 0, + line.length, + { value: '@scope/', label: '@scope/' }, + '', + ); + + expect(result.lines[0]).toBe('cd @scope/'); + }); + + describe('applyCompletion live @ token', () => { + const selectedDir = { + value: '@/mnt/e/mlbb-android-2.1.46.1156.1_HB/', + label: 'mlbb-android-2.1.46.1156.1_HB/', + }; + + it('replaces the live @ token when the cached prefix is a stale shorter query', () => { + const provider = new FileMentionProvider([], workDir, NO_FD); + const line = ' @/mnt/e/mlbb-simple-android-trunk'; + const result = provider.applyCompletion( + [line], + 0, + line.length, + selectedDir, + '@/mnt/e/mlbb-simple-and', + ); + + expect(result.lines[0]).toBe(' @/mnt/e/mlbb-android-2.1.46.1156.1_HB/'); + expect(result.cursorCol).toBe(' @/mnt/e/mlbb-android-2.1.46.1156.1_HB/'.length); + }); + + it('replaces the live @ token when the cached prefix is longer than the current token', () => { + const provider = new FileMentionProvider([], workDir, NO_FD); + const line = '@/mnt/e/mlbb-simple-and'; + const result = provider.applyCompletion( + [line], + 0, + line.length, + selectedDir, + '@/mnt/e/mlbb-simple-android-trunk', + ); + + expect(result.lines[0]).toBe('@/mnt/e/mlbb-android-2.1.46.1156.1_HB/'); + }); + + it('replaces the live @ token when the cached prefix is a suffix of a path that contains @', () => { + const provider = new FileMentionProvider([], workDir, NO_FD); + const line = '@packages/@'; + const result = provider.applyCompletion( + [line], + 0, + line.length, + { value: '@src/', label: 'src/' }, + '@', + ); + + expect(result.lines[0]).toBe('@src/'); + }); + + it('replaces only the current @ token when earlier text is present', () => { + const provider = new FileMentionProvider([], workDir, NO_FD); + const line = 'see @a @/mnt/e/mlbb-simple-android-trunk'; + const result = provider.applyCompletion( + [line], + 0, + line.length, + selectedDir, + '@/mnt/e/mlbb-simple-and', + ); + + expect(result.lines[0]).toBe('see @a @/mnt/e/mlbb-android-2.1.46.1156.1_HB/'); + }); + + it('does not splice when the cursor has already left the @ token', () => { + const provider = new FileMentionProvider([], workDir, NO_FD); + const line = '@/mnt/e/mlbb-simple-and '; + const result = provider.applyCompletion( + [line], + 0, + line.length, + selectedDir, + '@/mnt/e/mlbb-simple-and', + ); + + expect(result.lines[0]).toBe(line); + expect(result.cursorCol).toBe(line.length); + }); + + it('replaces an unclosed quoted @ token when the cached prefix is stale', () => { + const provider = new FileMentionProvider([], workDir, NO_FD); + const line = '@"ac'; + const result = provider.applyCompletion( + [line], + 0, + line.length, + { value: '@"actions/"', label: 'actions/' }, + '@"a', + ); + + expect(result.lines[0]).toBe('@"actions/"'); + expect(result.cursorCol).toBe('@"actions/'.length); + }); + + it('quotes a stale unquoted mention item when the live token is quoted', () => { + const provider = new FileMentionProvider([], workDir, NO_FD); + const line = '@"ac"'; + const result = provider.applyCompletion( + [line], + 0, + 4, + { value: '@actions/', label: 'actions/' }, + '@ac', + ); + + expect(result.lines[0]).toBe('@"actions/"'); + expect(result.cursorCol).toBe('@"actions/'.length); + }); + + it('consumes the closing quote after the cursor for a quoted fallback item', () => { + const provider = new FileMentionProvider([], workDir, NO_FD); + const line = '@"ac"'; + const result = provider.applyCompletion( + [line], + 0, + 4, + { value: '@"actions/"', label: 'actions/' }, + '@"ac', + ); + + expect(result.lines[0]).toBe('@"actions/"'); + expect(result.cursorCol).toBe('@"actions/'.length); + }); + + it('replaces a quoted @ token that contains spaces when the cached prefix is stale', () => { + const provider = new FileMentionProvider([], workDir, NO_FD); + const line = '@"my folder/te'; + const result = provider.applyCompletion( + [line], + 0, + line.length, + { value: '@"my folder/test.txt"', label: 'test.txt' }, + '@"my', + ); + + expect(result.lines[0]).toBe('@"my folder/test.txt" '); + }); + }); + describe('bash-mode path completion dotfile filtering', () => { it('hides dot-prefixed entries (matching /add-dir) in bash mode', async () => { mkdirSync(join(workDir, '.hidden')); @@ -678,7 +870,7 @@ describe('FileMentionProvider', () => { expect(result).not.toBeNull(); expect(result!.prefix).toBe('/'); - expect(result!.items.map((item) => item.value).sort()).toEqual([ + expect(result!.items.map((item) => item.value).toSorted()).toEqual([ 'skill:review', 'skill:security', ]); @@ -699,7 +891,7 @@ describe('FileMentionProvider', () => { const result = await provider.getSuggestions(['first line', '/'], 1, 1, { signal: ctrl() }); expect(result).not.toBeNull(); - expect(result!.items.map((item) => item.value).sort()).toEqual([ + expect(result!.items.map((item) => item.value).toSorted()).toEqual([ 'skill:review', 'skill:security', ]); diff --git a/apps/kimi-code/test/tui/components/markdown/markdown.test.ts b/apps/kimi-code/test/tui/components/markdown/markdown.test.ts new file mode 100644 index 000000000..0e01a0997 --- /dev/null +++ b/apps/kimi-code/test/tui/components/markdown/markdown.test.ts @@ -0,0 +1,499 @@ +import { Markdown as PiMarkdown, visibleWidth, type TuiMouseEvent } from '@moonshot-ai/pi-tui'; +import chalk from 'chalk'; +import { render as renderMermaidSource } from 'lovely-mermaid'; +import { afterEach, describe, expect, it, vi } from 'vitest'; + +import { Markdown } from '#/tui/components/markdown/markdown'; +import { darkColors, lightColors } from '#/tui/theme/colors'; +import { createMarkdownTheme } from '#/tui/theme/pi-tui-theme'; +import { currentTheme } from '#/tui/theme/theme'; +import { + setMarkdownAltScreenActive, + setMarkdownMermaidMode, + setMarkdownRenderRequester, +} from '#/tui/utils/markdown-options'; + +chalk.level = 3; + +const lovelyMock = vi.hoisted(() => ({ + renderBehavior: undefined as undefined | (() => unknown), +})); + +vi.mock('lovely-mermaid', async () => { + const actual = await vi.importActual('lovely-mermaid'); + return { + ...actual, + render: (source: string) => + lovelyMock.renderBehavior === undefined ? actual.render(source) : lovelyMock.renderBehavior(), + }; +}); + +const clipboardMock = vi.hoisted(() => ({ + copyTextToClipboard: vi.fn<(text: string) => Promise<'native' | 'osc52'>>(), +})); + +vi.mock('#/utils/clipboard/clipboard-text', () => clipboardMock); + +function strip(text: string): string { + return text.replaceAll(/\u001B\[[0-9;]*m/g, ''); +} + +function renderText(markdown: Markdown, width: number): string { + return markdown.render(width).map(strip).join('\n'); +} + +function mouseEvent( + type: TuiMouseEvent['type'], + x: number, + y: number, + width: number, + height: number, +): TuiMouseEvent { + return { + type, + button: 'left', + x, + y, + screenX: x, + screenY: y, + width, + height, + shift: false, + alt: false, + ctrl: false, + }; +} + +const SIMPLE_FLOWCHART = 'flowchart LR\n A-->B\n B-->C\n'; + +function mermaidDoc(body: string, fence = '```'): string { + return `Intro paragraph.\n\n${fence}mermaid\n${body}${fence}\n\nOutro paragraph.\n`; +} + +function fenceOnly(body: string, info = 'mermaid'): string { + return `\`\`\`${info}\n${body}\`\`\`\n`; +} + +afterEach(() => { + setMarkdownMermaidMode('final'); + setMarkdownAltScreenActive(false); + setMarkdownRenderRequester(() => {}); + currentTheme.setPalette(darkColors); + lovelyMock.renderBehavior = undefined; + clipboardMock.copyTextToClipboard.mockReset(); +}); + +describe('Markdown mermaid rendering', () => { + it('renders byte-identical output to pi-tui Markdown when the mode is off', () => { + setMarkdownMermaidMode('off'); + const source = mermaidDoc(SIMPLE_FLOWCHART); + const wrapped = new Markdown(source, 0, 0, createMarkdownTheme()); + const plain = new PiMarkdown(source, 0, 0, createMarkdownTheme()); + + expect(wrapped.render(80)).toEqual(plain.render(80)); + }); + + it('draws a top-level mermaid fence as box art once the reply is final', () => { + const markdown = new Markdown(mermaidDoc(SIMPLE_FLOWCHART), 0, 0, createMarkdownTheme()); + const text = renderText(markdown, 80); + + expect(text).toContain('─'); + expect(text).toContain('│'); + expect(text).not.toContain('```mermaid'); + expect(text).toContain('Intro paragraph.'); + expect(text).toContain('Outro paragraph.'); + }); + + it('keeps the fence as a plain code block while the theme is transient', () => { + const markdown = new Markdown( + mermaidDoc(SIMPLE_FLOWCHART), + 0, + 0, + createMarkdownTheme({ transient: true }), + ); + const text = renderText(markdown, 80); + + expect(text).toContain('```mermaid'); + expect(text).not.toContain('─'); + }); + + it('draws tilde fences like backtick fences', () => { + const markdown = new Markdown(mermaidDoc(SIMPLE_FLOWCHART, '~~~'), 0, 0, createMarkdownTheme()); + const text = renderText(markdown, 80); + + expect(text).toContain('─'); + expect(text).not.toContain('~~~mermaid'); + }); + + it('treats the info string first token case-insensitively and ignores extra info', () => { + for (const info of ['MERMAID', 'mermaid title="x"']) { + const markdown = new Markdown(fenceOnly(SIMPLE_FLOWCHART, info), 0, 0, createMarkdownTheme()); + expect(renderText(markdown, 80)).toContain('─'); + } + }); + + it('leaves mermaid-js and other languages as plain code blocks', () => { + const markdown = new Markdown( + `${fenceOnly(SIMPLE_FLOWCHART, 'mermaid-js')}\n${fenceOnly('const x = 1;\n', 'ts')}`, + 0, + 0, + createMarkdownTheme(), + ); + const text = renderText(markdown, 80); + + expect(text).toContain('```mermaid-js'); + expect(text).toContain('```ts'); + expect(text).not.toContain('is not drawn in the terminal'); + expect(text).not.toContain('─'); + }); + + it('leaves fences nested in quotes and lists as plain code blocks', () => { + const quoted = '> ```mermaid\n> flowchart LR\n> A-->B\n> ```\n'; + const listed = '- item\n\n ```mermaid\n flowchart LR\n A-->B\n ```\n'; + for (const source of [quoted, listed]) { + const markdown = new Markdown(source, 0, 0, createMarkdownTheme()); + const text = renderText(markdown, 80); + + expect(text).not.toContain('is not drawn in the terminal'); + expect(text).not.toContain('─'); + } + }); + + it('keeps the blank separator when a fence abuts prose without blank lines', () => { + const source = 'Intro.\n```mermaid\nflowchart LR\n A-->B\n```\nOutro.\n'; + const markdown = new Markdown(source, 0, 0, createMarkdownTheme()); + const lines = markdown.render(80).map((line) => strip(line).trimEnd()); + + const introIndex = lines.findIndex((line) => line === 'Intro.'); + expect(lines[introIndex + 1]).toBe(''); + const outroIndex = lines.findIndex((line) => line === 'Outro.'); + expect(lines[outroIndex - 1]).toBe(''); + expect(lines.some((line) => line.includes('─'))).toBe(true); + }); +}); + +describe('Markdown mermaid fallback', () => { + it('reports gantt as not drawn in the terminal and keeps the source fence', () => { + const markdown = new Markdown( + fenceOnly('gantt\n title Plan\n Task :2026-01-01, 3d\n'), + 0, + 0, + createMarkdownTheme(), + ); + const text = renderText(markdown, 100); + + expect(text).toContain('gantt diagrams are not drawn in the terminal'); + expect(text).toContain('```mermaid'); + }); + + it('reports an empty supported diagram as could not draw, not as an unsupported kind', () => { + const markdown = new Markdown(fenceOnly('flowchart LR\n'), 0, 0, createMarkdownTheme()); + const text = renderText(markdown, 100); + + expect(text).toContain('could not draw this mermaid diagram'); + expect(text).not.toContain('flowchart diagrams are not drawn'); + }); + + it('reports an empty fence as could not draw this diagram', () => { + const markdown = new Markdown(fenceOnly(''), 0, 0, createMarkdownTheme()); + const text = renderText(markdown, 100); + + expect(text).toContain('could not draw this mermaid diagram'); + expect(text).toContain('```mermaid'); + }); + + it('reports a library throw as could not draw this diagram', () => { + lovelyMock.renderBehavior = () => { + throw new Error('boom'); + }; + const markdown = new Markdown(fenceOnly(SIMPLE_FLOWCHART), 0, 0, createMarkdownTheme()); + const text = renderText(markdown, 100); + + expect(text).toContain('could not draw this mermaid diagram'); + expect(text).toContain('```mermaid'); + }); + + it('still draws when the library reports advisory warnings', () => { + lovelyMock.renderBehavior = () => ({ + plain: ['──┐'], + styled: [[{ text: '──┐', role: 'edge' }]], + width: 3, + classDefs: {}, + warnings: ['statement dropped'], + }); + const markdown = new Markdown(fenceOnly(SIMPLE_FLOWCHART), 0, 0, createMarkdownTheme()); + + expect(renderText(markdown, 100)).toContain('──┐'); + }); + + it('falls back when the art is wider than the block and draws at the exact width', () => { + const artWidth = renderMermaidSource(SIMPLE_FLOWCHART)?.width ?? 0; + expect(artWidth).toBeGreaterThan(0); + const markdown = new Markdown(fenceOnly(SIMPLE_FLOWCHART), 0, 0, createMarkdownTheme()); + + expect(renderText(markdown, artWidth)).toContain('─'); + const narrow = renderText(markdown, artWidth - 1); + expect(narrow).toContain('mermaid diagram too'); + expect(narrow).toContain('```mermaid'); + }); + + it('explains the width shortfall with the required columns', () => { + lovelyMock.renderBehavior = () => ({ + plain: ['─'], + styled: [[{ text: '─', role: 'edge' }]], + width: 60, + classDefs: {}, + warnings: [], + }); + const markdown = new Markdown(fenceOnly(SIMPLE_FLOWCHART), 0, 0, createMarkdownTheme()); + + expect(renderText(markdown, 59)).toContain( + 'mermaid diagram too wide to render (needs 60 columns)', + ); + }); + + it('re-judges the width on every render as the terminal resizes', () => { + const artWidth = renderMermaidSource(SIMPLE_FLOWCHART)?.width ?? 0; + const markdown = new Markdown(fenceOnly(SIMPLE_FLOWCHART), 0, 0, createMarkdownTheme()); + + expect(renderText(markdown, artWidth - 1)).toContain('mermaid diagram too'); + expect(renderText(markdown, artWidth)).toContain('─'); + expect(renderText(markdown, artWidth - 1)).toContain('mermaid diagram too'); + }); + + it('truncates the reason line to the block columns', () => { + const markdown = new Markdown( + fenceOnly('gantt\n Task :2026-01-01, 3d\n'), + 0, + 0, + createMarkdownTheme(), + ); + const lines = markdown.render(16); + + for (const line of lines) expect(visibleWidth(line)).toBeLessThanOrEqual(16); + expect(lines.map(strip).join('\n')).toContain('…'); + }); + + it('applies horizontal padding to art and judges width after padding', () => { + const artWidth = renderMermaidSource(SIMPLE_FLOWCHART)?.width ?? 0; + const markdown = new Markdown(fenceOnly(SIMPLE_FLOWCHART), 2, 0, createMarkdownTheme()); + + const drawn = markdown.render(artWidth + 4); + expect(drawn.map(strip).join('\n')).toContain('─'); + for (const line of drawn) expect(visibleWidth(line)).toBe(artWidth + 4); + + expect(renderText(markdown, artWidth + 3)).toContain('mermaid diagram too'); + }); +}); + +describe('Markdown mermaid live updates', () => { + it('redraws mounted markdown when the mode changes via invalidate', () => { + setMarkdownMermaidMode('off'); + const markdown = new Markdown(fenceOnly(SIMPLE_FLOWCHART), 0, 0, createMarkdownTheme()); + expect(renderText(markdown, 80)).toContain('```mermaid'); + + setMarkdownMermaidMode('final'); + markdown.invalidate(); + expect(renderText(markdown, 80)).toContain('─'); + + setMarkdownMermaidMode('off'); + markdown.invalidate(); + const text = renderText(markdown, 80); + expect(text).toContain('```mermaid'); + expect(text).not.toContain('─'); + }); + + it('recolors drawn art through the live theme on invalidate', () => { + const markdown = new Markdown(fenceOnly(SIMPLE_FLOWCHART), 0, 0, createMarkdownTheme()); + const darkOutput = markdown.render(80).join('\n'); + expect(darkOutput).toContain('38;2;90;90;90'); + + currentTheme.setPalette(lightColors); + markdown.invalidate(); + const lightOutput = markdown.render(80).join('\n'); + expect(lightOutput).toContain('38;2;115;115;115'); + }); +}); + +describe('Markdown mermaid copy source', () => { + function makeCopyable(): Markdown { + return new Markdown(fenceOnly(SIMPLE_FLOWCHART), 0, 0, createMarkdownTheme(), undefined, { + copySource: true, + }); + } + + function pressButton(markdown: Markdown, lines: string[]) { + return markdown.handleMouse(mouseEvent('press', 1, lines.length - 1, 80, lines.length)); + } + + function releaseOn(markdown: Markdown, x: number, y: number, lines: string[]) { + return markdown.handleMouse(mouseEvent('release', x, y, 80, lines.length)); + } + + function lastLine(markdown: Markdown): string { + return markdown.render(80).at(-1) ?? ''; + } + + it('shows no button without copySource even in alt screen', () => { + setMarkdownAltScreenActive(true); + const markdown = new Markdown(fenceOnly(SIMPLE_FLOWCHART), 0, 0, createMarkdownTheme()); + + expect(renderText(markdown, 80)).not.toContain('[Copy Source]'); + }); + + it('shows no button when alt screen is off even with copySource', () => { + const markdown = makeCopyable(); + + expect(renderText(markdown, 80)).not.toContain('[Copy Source]'); + }); + + it('shows the button as plain primary text when copySource and alt screen are both on', () => { + setMarkdownAltScreenActive(true); + const line = lastLine(makeCopyable()); + + expect(strip(line)).toContain('[Copy Source]'); + expect(line).toContain('38;2;91;192;190'); + expect(line).not.toContain('48;2;'); + expect(line).not.toContain('[1m'); + }); + + it('shows the button under an undrawn fence as well', () => { + setMarkdownAltScreenActive(true); + const markdown = new Markdown( + fenceOnly('gantt\n Task :2026-01-01, 3d\n'), + 0, + 0, + createMarkdownTheme(), + undefined, + { copySource: true }, + ); + const text = renderText(markdown, 100); + + expect(text).toContain('gantt diagrams are not drawn in the terminal'); + expect(text).toContain('[Copy Source]'); + }); + + it('copies the fence body without the fences when the press is released on the button', async () => { + setMarkdownAltScreenActive(true); + clipboardMock.copyTextToClipboard.mockResolvedValue('native'); + const markdown = makeCopyable(); + const lines = markdown.render(80); + + const press = pressButton(markdown, lines); + expect(press?.capture).toBe(true); + const release = releaseOn(markdown, 1, lines.length - 1, lines); + expect(release?.handled).toBe(true); + + await vi.waitFor(() => { + expect(clipboardMock.copyTextToClipboard).toHaveBeenCalled(); + }); + const copied = clipboardMock.copyTextToClipboard.mock.calls[0]?.[0] ?? ''; + expect(copied).toContain('flowchart LR'); + expect(copied).toContain('A-->B'); + expect(copied).not.toContain('```'); + }); + + it('emboldens the button while pressed and restores it on release', () => { + setMarkdownAltScreenActive(true); + clipboardMock.copyTextToClipboard.mockResolvedValue('native'); + const markdown = makeCopyable(); + const lines = markdown.render(80); + + expect(lastLine(markdown)).not.toContain('[1m'); + pressButton(markdown, lines); + expect(lastLine(markdown)).toContain('[1m'); + releaseOn(markdown, 1, lines.length - 1, lines); + expect(lastLine(markdown)).not.toContain('[1m'); + }); + + it('cancels the press without copying when the pointer is dragged away before release', () => { + setMarkdownAltScreenActive(true); + clipboardMock.copyTextToClipboard.mockResolvedValue('native'); + const markdown = makeCopyable(); + const lines = markdown.render(80); + + pressButton(markdown, lines); + expect( + markdown.handleMouse(mouseEvent('drag', 40, lines.length - 1, 80, lines.length))?.handled, + ).toBe(true); + expect(releaseOn(markdown, 40, lines.length - 1, lines)?.handled).toBe(true); + + expect(clipboardMock.copyTextToClipboard).not.toHaveBeenCalled(); + expect(lastLine(markdown)).not.toContain('[1m'); + }); + + it('does not copy when the press lands outside the button cells', () => { + setMarkdownAltScreenActive(true); + clipboardMock.copyTextToClipboard.mockResolvedValue('native'); + const markdown = makeCopyable(); + const lines = markdown.render(80); + + expect( + markdown.handleMouse(mouseEvent('press', 40, lines.length - 1, 80, lines.length)), + ).toBeUndefined(); + expect(markdown.handleMouse(mouseEvent('press', 1, 0, 80, lines.length))).toBeUndefined(); + expect(clipboardMock.copyTextToClipboard).not.toHaveBeenCalled(); + }); + + it('briefly shows Copied after a successful copy', async () => { + vi.useFakeTimers(); + try { + setMarkdownAltScreenActive(true); + const requestRender = vi.fn(); + setMarkdownRenderRequester(requestRender); + clipboardMock.copyTextToClipboard.mockResolvedValue('native'); + const markdown = makeCopyable(); + const lines = markdown.render(80); + + pressButton(markdown, lines); + releaseOn(markdown, 1, lines.length - 1, lines); + await vi.advanceTimersByTimeAsync(0); + expect(renderText(markdown, 80)).toContain('[Copied]'); + + await vi.advanceTimersByTimeAsync(1600); + expect(renderText(markdown, 80)).toContain('[Copy Source]'); + expect(requestRender).toHaveBeenCalled(); + } finally { + vi.useRealTimers(); + } + }); + + it('shows Copy failed when the clipboard write fails', async () => { + setMarkdownAltScreenActive(true); + clipboardMock.copyTextToClipboard.mockRejectedValue(new Error('no clipboard')); + const markdown = makeCopyable(); + const lines = markdown.render(80); + + pressButton(markdown, lines); + releaseOn(markdown, 1, lines.length - 1, lines); + + await vi.waitFor(() => { + expect(renderText(markdown, 80)).toContain('[Copy failed]'); + }); + }); + + it('keeps showing Copied until the latest acknowledgment elapses on repeated activations', async () => { + vi.useFakeTimers(); + try { + setMarkdownAltScreenActive(true); + clipboardMock.copyTextToClipboard.mockResolvedValue('native'); + const markdown = makeCopyable(); + const lines = markdown.render(80); + const activate = () => { + pressButton(markdown, lines); + releaseOn(markdown, 1, lines.length - 1, lines); + }; + + activate(); + await vi.advanceTimersByTimeAsync(1000); + activate(); + await vi.advanceTimersByTimeAsync(1000); + expect(renderText(markdown, 80)).toContain('[Copied]'); + + await vi.advanceTimersByTimeAsync(600); + expect(renderText(markdown, 80)).toContain('[Copy Source]'); + } finally { + vi.useRealTimers(); + } + }); +}); diff --git a/apps/kimi-code/test/tui/components/media/code-highlight.test.ts b/apps/kimi-code/test/tui/components/media/code-highlight.test.ts index b8b1b50a5..8392f4506 100644 --- a/apps/kimi-code/test/tui/components/media/code-highlight.test.ts +++ b/apps/kimi-code/test/tui/components/media/code-highlight.test.ts @@ -1,10 +1,12 @@ import { createRequire } from 'node:module'; import { dirname } from 'node:path'; +import chalk from 'chalk'; import { describe, expect, it } from 'vitest'; import { highlightLines, langFromPath } from '#/tui/components/media/code-highlight'; import { codeHighlightTheme } from '#/tui/theme/highlight-theme'; +import { currentTheme } from '#/tui/theme/theme'; import { captureProcessWrite } from '../../../helpers/process'; @@ -30,13 +32,13 @@ describe('code-highlight', () => { } }); - it('resets red tokens to plain styling', () => { - for (const token of ['string', 'regexp', 'deletion'] as const) { + it('resets string and regexp tokens to plain styling', () => { + for (const token of ['string', 'regexp'] as const) { expect(codeHighlightTheme[token]?.('code')).toBe('code'); } }); - it('emits no red SGR for strings, regexps and diff deletions', () => { + it('emits no red SGR for strings and regexps', () => { // cli-highlight styles through its own chalk v4 instance; force colors on // so the assertions below observe real SGR sequences. const req = createRequire(import.meta.url); @@ -49,12 +51,21 @@ describe('code-highlight', () => { const js = highlightLines("const s = 'str';\nconst r = /re+/g;", 'javascript').join('\n'); expect(js).not.toContain(`${ESC}[31m`); expect(js).toContain(`${ESC}[34m`); // keywords stay highlighted - - const diff = highlightLines('+ added\n- removed', 'diff').join('\n'); - expect(diff).not.toContain(`${ESC}[31m`); - expect(diff).toContain(`${ESC}[32m`); // additions stay green } finally { chalkV4.level = prevLevel; } }); + + it('colors diff deletions and additions with the palette diff colors', () => { + const previousLevel = chalk.level; + chalk.level = 3; + try { + expect(highlightLines('- removed\n+ added', 'diff')).toEqual([ + chalk.hex(currentTheme.color('diffRemoved'))('- removed'), + chalk.hex(currentTheme.color('diffAdded'))('+ added'), + ]); + } finally { + chalk.level = previousLevel; + } + }); }); diff --git a/apps/kimi-code/test/tui/components/messages/agent-swarm-progress.test.ts b/apps/kimi-code/test/tui/components/messages/agent-swarm-progress.test.ts index 63d0219ab..475853ca2 100644 --- a/apps/kimi-code/test/tui/components/messages/agent-swarm-progress.test.ts +++ b/apps/kimi-code/test/tui/components/messages/agent-swarm-progress.test.ts @@ -14,6 +14,7 @@ import { } from '#/tui/components/messages/agent-swarm-progress'; import { AgentSwarmProgressEstimator } from '#/tui/components/messages/agent-swarm-progress-estimator'; import { currentTheme, darkColors, lightColors } from '#/tui/theme'; +import { setRenderCacheEnabled } from '#/tui/utils/render-cache'; const DEFAULT_DESCRIPTION = 'Review changed files'; @@ -873,6 +874,401 @@ describe('AgentSwarmProgressComponent', () => { }); }); +describe('AgentSwarmProgressComponent render caching', () => { + function createTerminalComponent(): AgentSwarmProgressComponent { + vi.useFakeTimers(); + vi.setSystemTime(0); + const component = createComponent(); + registerSubagents(component, 2); + startSubagents(component, 2); + vi.setSystemTime(1_000); + component.markCompleted('agent-1', 'done one'); + component.markCompleted('agent-2', 'done two'); + component.markToolCallEnded(); + // Past the 360ms completion fill window, so the panel is fully static. + vi.setSystemTime(2_000); + return component; + } + + it('returns the identical line array while a terminal swarm is unchanged', () => { + const component = createTerminalComponent(); + + const first = component.render(100); + + expect(component.render(100)).toBe(first); + }); + + it('re-renders when a member changes', () => { + const component = createTerminalComponent(); + const before = component.render(100); + + component.applyResult('updated output'); + const after = component.render(100); + + expect(after).not.toBe(before); + expect(renderText(component)).toContain('updated output'); + }); + + it('re-renders when the width changes', () => { + const component = createTerminalComponent(); + const wide = component.render(100); + + expect(component.render(80)).not.toBe(wide); + }); + + it('re-renders when the available grid height changes', () => { + vi.useFakeTimers(); + vi.setSystemTime(0); + let gridHeight: number | undefined = 10; + const component = createComponent({ availableGridHeight: () => gridHeight }); + registerSubagents(component, 1); + startSubagents(component, 1); + vi.setSystemTime(1_000); + component.markCompleted('agent-1', 'done'); + component.markToolCallEnded(); + vi.setSystemTime(2_000); + const before = component.render(100); + + gridHeight = 1; + + expect(component.render(100)).not.toBe(before); + }); + + it('re-renders after invalidate() even when nothing else changed', () => { + const component = createTerminalComponent(); + const before = component.render(100); + + component.invalidate(); + const after = component.render(100); + + expect(after).not.toBe(before); + expect(after.map(strip)).toEqual(before.map(strip)); + }); + + it('bypasses both component and cell caches when the render cache is disabled', () => { + const component = createTerminalComponent(); + const before = component.render(100); + + setRenderCacheEnabled(false); + try { + const after = component.render(100); + expect(after).not.toBe(before); + expect(after.map(strip)).toEqual(before.map(strip)); + const third = component.render(100); + expect(third).not.toBe(after); + expect(third.map(strip)).toEqual(after.map(strip)); + } finally { + setRenderCacheEnabled(true); + } + }); + + it('repaints member cells from the active palette when the theme changes', () => { + const previousLevel = chalk.level; + chalk.level = 3; + try { + const component = createTerminalComponent(); + const cellLineOf = (): string => { + const line = component.render(100).find((l) => strip(l).includes('001 [')); + if (line === undefined) throw new Error('cell line not found'); + return line; + }; + const before = cellLineOf(); + + currentTheme.setPalette(lightColors); + const after = cellLineOf(); + + expect(strip(after)).toBe(strip(before)); + expect(after).not.toBe(before); + } finally { + chalk.level = previousLevel; + } + }); + + it('does not cache while a member is still running', () => { + vi.useFakeTimers(); + const component = createComponent(); + registerSubagents(component, 1); + startSubagents(component, 1); + + expect(component.render(100)).not.toBe(component.render(100)); + }); + + it('does not cache during the completion fill window', () => { + vi.useFakeTimers(); + vi.setSystemTime(0); + const component = createComponent(); + registerSubagents(component, 1); + startSubagents(component, 1); + vi.setSystemTime(1_000); + component.markCompleted('agent-1', 'done'); + component.markToolCallEnded(); + + expect(component.render(100)).not.toBe(component.render(100)); + + vi.setSystemTime(2_000); + const settled = component.render(100); + expect(component.render(100)).toBe(settled); + }); +}); + +describe('AgentSwarmProgressComponent terminal state memory', () => { + const WIDE_RENDER_WIDTH = 500; + + function rawCellLine(component: AgentSwarmProgressComponent): string { + const line = component + .render(WIDE_RENDER_WIDTH) + .find((candidate) => strip(candidate).includes('001 [')); + if (line === undefined) throw new Error('cell line not found'); + return line; + } + + function visibleCellText(component: AgentSwarmProgressComponent): string { + return strip(rawCellLine(component)).trimEnd(); + } + + it('bounds completed output text to a few hundred characters', () => { + const component = createComponent(); + registerSubagents(component, 1); + + component.markCompleted('agent-1', `Reviewed imports. ${'x'.repeat(100_000)}`); + + const cellText = visibleCellText(component); + expect(cellText.length).toBeLessThanOrEqual(500); + expect(cellText).not.toContain('…'); + expect(cellText).toContain('✓ Reviewed imports.'); + }); + + it('bounds failure text to a few hundred characters', () => { + const component = createComponent(); + registerSubagents(component, 1); + + component.markFailed('agent-1', `Provider request failed ${'y'.repeat(100_000)}`); + + const cellText = visibleCellText(component); + expect(cellText.length).toBeLessThanOrEqual(500); + expect(cellText).not.toContain('…'); + expect(cellText).toContain('✗ Provider request failed'); + }); + + it('uses the latest assistant line as the completed label when no output is given', () => { + const component = createComponent(); + registerSubagents(component, 1); + component.appendModelDelta({ + agentId: 'agent-1', + delta: 'Reviewing src/a.ts\nImports look stable', + }); + + component.markCompleted('agent-1'); + + expect(renderText(component)).toContain('✓ Imports look stable'); + }); + + it('bounds the cancelled label of a running member to a few hundred characters', () => { + const component = createComponent(); + registerSubagents(component, 1); + startSubagents(component, 1); + component.appendModelDelta({ agentId: 'agent-1', delta: 'x'.repeat(5_000) }); + + component.markCancelled('agent-1'); + + const cellText = visibleCellText(component); + expect(cellText.length).toBeLessThanOrEqual(500); + expect(cellText).not.toContain('…'); + expect(cellText).toContain(`⊘ ${'x'.repeat(20)}`); + }); + + it('re-renders a member cell with its terminal label after completing', () => { + vi.useFakeTimers(); + vi.setSystemTime(0); + const component = createComponent(); + registerSubagents(component, 1); + startSubagents(component, 1); + component.appendModelDelta({ agentId: 'agent-1', delta: 'working on it' }); + expect(renderText(component)).toContain('working on it'); + + vi.setSystemTime(1_000); + component.markCompleted('agent-1', 'done'); + + const output = renderText(component); + expect(output).toContain('✓ done'); + expect(output).not.toContain('working on it'); + }); + + it('bounds the retained label code units when the output carries ANSI sequences', () => { + const component = createComponent(); + registerSubagents(component, 1); + + component.markCompleted('agent-1', `ok${'\u001B[31m'.repeat(10_000)}`); + + const line = rawCellLine(component); + expect(line.length).toBeLessThan(3_000); + expect(strip(line)).toContain('ok'); + expect(line).toContain('\u001B[0m'); + const escapeCount = line.match(/\u001B/g)?.length ?? 0; + const completeSequenceCount = line.match(/\u001B\[[0-9;]*m/g)?.length ?? 0; + expect(escapeCount).toBe(completeSequenceCount); + }); + + it('bounds the retained label code units for a long zero-width grapheme', () => { + const component = createComponent(); + registerSubagents(component, 1); + + component.markCompleted('agent-1', `x${'\u0301'.repeat(50_000)}`); + + const line = rawCellLine(component); + expect(line.length).toBeLessThan(3_000); + expect(strip(line)).toContain('✓ x'); + }); + + it('does not split a surrogate pair at the retained label storage limit', () => { + const component = createComponent(); + registerSubagents(component, 1); + + component.markCompleted( + 'agent-1', + `x${'\u0301'.repeat(1_998)}\u{1F600}${'\u0301'.repeat(5_000)}`, + ); + + const line = rawCellLine(component); + expect(line.length).toBeLessThan(3_000); + expect(line).not.toMatch(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])/); + }); + + it('closes an OSC 8 hyperlink that the storage cap slices through', () => { + const component = createComponent(); + registerSubagents(component, 1); + + component.markCompleted( + 'agent-1', + `\u001B]8;;https://example.com\u0007x${'\u0301'.repeat(5_000)}\u001B]8;;\u0007`, + ); + + const line = rawCellLine(component); + expect(line).toContain('\u001B]8;;https://example.com\u0007'); + expect(line).toContain('\u001B]8;;\u0007'); + }); + + it('resets SGR styling that the storage cap slices through', () => { + const component = createComponent(); + registerSubagents(component, 1); + + component.markCompleted( + 'agent-1', + `\u001B[1m\u001B[31mx${'\u0301'.repeat(5_000)}\u001B[0m`, + ); + + expect(rawCellLine(component)).toContain('\u001B[0m'); + }); + + it('appends the SGR reset after the OSC 8 close when both are sliced', () => { + const component = createComponent(); + registerSubagents(component, 1); + + component.markCompleted( + 'agent-1', + `\u001B]8;;https://example.com\u0007\u001B[1mx${'\u0301'.repeat(5_000)}\u001B]8;;\u0007\u001B[0m`, + ); + + expect(rawCellLine(component)).toContain('\u001B]8;;\u0007\u001B[0m'); + }); + + it('does not split a ZWJ grapheme cluster at the retained label storage limit', () => { + const component = createComponent(); + registerSubagents(component, 1); + + const family = '\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466}'; + component.markCompleted( + 'agent-1', + `x${'\u0301'.repeat(1_996)}${family}${'\u0301'.repeat(5_000)}`, + ); + + const line = rawCellLine(component); + expect(line.length).toBeLessThan(3_000); + expect(line).not.toContain('\u200D'); + }); +}); + +describe('AgentSwarmProgressComponent frame timer', () => { + it('batches model deltas onto the frame timer instead of rendering per delta', () => { + vi.useFakeTimers(); + const requestRender = vi.fn(); + const component = createComponent({ requestRender }); + registerSubagents(component, 1); + startSubagents(component, 1); + requestRender.mockClear(); + + component.appendModelDelta({ agentId: 'agent-1', delta: 'line one' }); + component.appendModelDelta({ agentId: 'agent-1', delta: 'line two' }); + component.recordToolCall({ agentId: 'agent-1', toolCallId: 'call-1' }); + + expect(requestRender).not.toHaveBeenCalled(); + + vi.advanceTimersByTime(80); + expect(requestRender).toHaveBeenCalledTimes(1); + }); + + it('starts the frame timer when a delta arrives for a queued member', () => { + vi.useFakeTimers(); + const requestRender = vi.fn(); + const component = createComponent({ requestRender }); + registerSubagents(component, 1); + requestRender.mockClear(); + + component.appendModelDelta({ agentId: 'agent-1', delta: 'hello' }); + + expect(requestRender).not.toHaveBeenCalled(); + vi.advanceTimersByTime(80); + expect(requestRender).toHaveBeenCalledTimes(1); + }); + + it('keeps the frame timer alive while members are running', () => { + vi.useFakeTimers(); + const requestRender = vi.fn(); + const component = createComponent({ requestRender }); + registerSubagents(component, 1); + startSubagents(component, 1); + requestRender.mockClear(); + + vi.advanceTimersByTime(80 * 3); + + expect(requestRender.mock.calls.length).toBeGreaterThanOrEqual(3); + }); + + it('stops the frame timer after the completion fill animation ends', () => { + vi.useFakeTimers(); + const requestRender = vi.fn(); + const component = createComponent({ requestRender }); + registerSubagents(component, 1); + startSubagents(component, 1); + requestRender.mockClear(); + + component.markCompleted('agent-1', 'done'); + vi.advanceTimersByTime(80 * 10); + const callsAfterSettled = requestRender.mock.calls.length; + expect(callsAfterSettled).toBeGreaterThan(0); + + vi.advanceTimersByTime(80 * 5); + expect(requestRender.mock.calls.length).toBe(callsAfterSettled); + }); + + it('stops the frame timer when the tool call ends with an unparsable result', () => { + vi.useFakeTimers(); + const requestRender = vi.fn(); + const component = createComponent({ requestRender }); + registerSubagents(component, 1); + startSubagents(component, 1); + requestRender.mockClear(); + + component.markToolCallEnded(); + expect(component.applyResult('Done')).toBe(false); + vi.advanceTimersByTime(80 * 10); + const callsAfterSettled = requestRender.mock.calls.length; + + vi.advanceTimersByTime(80 * 5); + expect(requestRender.mock.calls.length).toBe(callsAfterSettled); + }); +}); + describe('AgentSwarmProgressEstimator', () => { it('counts a started subagent as one progress tick before tool calls arrive', () => { const estimator = new AgentSwarmProgressEstimator(); @@ -1000,4 +1396,61 @@ describe('AgentSwarmProgressEstimator', () => { expect(second.displayTicks).toBeLessThan(second.targetTicks ?? 0); expect(second.boosted).toBe(true); }); + + it('rebuilds the completed-sample prior as new members complete', () => { + const estimator = new AgentSwarmProgressEstimator(); + + estimator.markStarted('001', 0); + for (let index = 0; index < 10; index += 1) { + estimator.recordToolCall({ + memberKey: '001', + toolCallId: `done-${index}`, + nowMs: 1_000 + index * 1_000, + }); + } + estimator.markCompleted('001', 40_000); + + estimator.markStarted('002', 0); + for (let index = 0; index < 3; index += 1) { + estimator.recordToolCall({ + memberKey: '002', + toolCallId: `running-${index}`, + nowMs: 5_000 + index * 5_000, + }); + } + const before = estimator.estimate({ + memberKey: '002', + phase: 'running', + capacityTicks: 56, + nowMs: 20_000, + }); + + estimator.markCompleted('002', 25_000); + estimator.markStarted('003', 0); + for (let index = 0; index < 3; index += 1) { + estimator.recordToolCall({ + memberKey: '003', + toolCallId: `running-${index}`, + nowMs: 5_000 + index * 5_000, + }); + } + const after = estimator.estimate({ + memberKey: '003', + phase: 'running', + capacityTicks: 56, + nowMs: 20_000, + }); + + expect(before.estimatedTotalToolCalls).toBeDefined(); + expect(after.estimatedTotalToolCalls).toBeDefined(); + expect(after.estimatedTotalToolCalls).not.toBe(before.estimatedTotalToolCalls); + + const repeat = estimator.estimate({ + memberKey: '003', + phase: 'running', + capacityTicks: 56, + nowMs: 20_000, + }); + expect(repeat.estimatedTotalToolCalls).toBe(after.estimatedTotalToolCalls); + }); }); diff --git a/apps/kimi-code/test/tui/components/messages/assistant-message.test.ts b/apps/kimi-code/test/tui/components/messages/assistant-message.test.ts index 89dec20b9..04d1e03c6 100644 --- a/apps/kimi-code/test/tui/components/messages/assistant-message.test.ts +++ b/apps/kimi-code/test/tui/components/messages/assistant-message.test.ts @@ -1,11 +1,14 @@ -import { Markdown, visibleWidth } from '@moonshot-ai/pi-tui'; +import { visibleWidth } from '@moonshot-ai/pi-tui'; +import chalk from 'chalk'; import * as cliHighlight from 'cli-highlight'; import { describe, expect, it, vi } from 'vitest'; +import { Markdown } from '#/tui/components/markdown/markdown'; import { AssistantMessageComponent } from '#/tui/components/messages/assistant-message'; import { STATUS_BULLET } from '#/tui/constant/symbols'; import { createMarkdownTheme } from '#/tui/theme/pi-tui-theme'; -import { setMarkdownRenderLatex } from '#/tui/utils/markdown-options'; +import { currentTheme } from '#/tui/theme/theme'; +import { setMarkdownAltScreenActive, setMarkdownRenderLatex } from '#/tui/utils/markdown-options'; import { captureProcessWrite } from '../../../helpers/process'; @@ -17,6 +20,12 @@ vi.mock('cli-highlight', async () => { }; }); +const clipboardMock = vi.hoisted(() => ({ + copyTextToClipboard: vi.fn(), +})); + +vi.mock('#/utils/clipboard/clipboard-text', () => clipboardMock); + function strip(text: string): string { return text .replaceAll(/\u001B\[[0-9;]*m/g, '') @@ -129,13 +138,27 @@ describe('AssistantMessageComponent', () => { expect(highlightSpy).toHaveBeenCalled(); }); + it('highlights diff fences with the palette diff colors', () => { + const previousLevel = chalk.level; + chalk.level = 3; + try { + const theme = createMarkdownTheme(); + expect(theme.highlightCode?.('- removed\n+ added', 'diff')).toEqual([ + chalk.hex(currentTheme.color('diffRemoved'))('- removed'), + chalk.hex(currentTheme.color('diffAdded'))('+ added'), + ]); + } finally { + chalk.level = previousLevel; + } + }); + it('marks the rendered zone with OSC 133 markers, once across cache hits', () => { const component = new AssistantMessageComponent(); component.updateContent('hello'); const lines = component.render(80); expect(lines[0]).toMatch(/^\u001B\]133;A\u0007/); - expect(lines[lines.length - 1]).toMatch(/^\u001B\]133;B\u0007\u001B\]133;C\u0007/); + expect(lines.at(-1)).toMatch(/^\u001B\]133;B\u0007\u001B\]133;C\u0007/); const cached = component.render(80); expect(cached[0]).toBe(lines[0]); @@ -155,4 +178,91 @@ describe('AssistantMessageComponent', () => { setMarkdownRenderLatex(true); } }); + + it('forwards mouse clicks into the markdown subtree using the render geometry', async () => { + const component = new AssistantMessageComponent(); + clipboardMock.copyTextToClipboard.mockClear(); + clipboardMock.copyTextToClipboard.mockResolvedValue('native'); + try { + setMarkdownAltScreenActive(true); + component.updateContent('```mermaid\nflowchart LR\n A-->B\n```\n'); + const lines = component.render(80); + + const press = component.handleMouse({ + type: 'press', + button: 'left', + x: 3, + y: lines.length - 1, + screenX: 3, + screenY: lines.length - 1, + width: 80, + height: lines.length, + shift: false, + alt: false, + ctrl: false, + }); + expect(press?.capture).toBe(true); + + const result = component.handleMouse({ + type: 'release', + button: 'left', + x: 3, + y: lines.length - 1, + screenX: 3, + screenY: lines.length - 1, + width: 80, + height: lines.length, + shift: false, + alt: false, + ctrl: false, + }); + + expect(result?.handled).toBe(true); + await vi.waitFor(() => { + expect(clipboardMock.copyTextToClipboard).toHaveBeenCalled(); + }); + const copied = String(clipboardMock.copyTextToClipboard.mock.calls[0]?.[0] ?? ''); + expect(copied).toContain('flowchart LR'); + expect(copied).not.toContain('```'); + } finally { + setMarkdownAltScreenActive(false); + } + }); + + it('reflects copy-chip state changes through the render cache', async () => { + const component = new AssistantMessageComponent(); + clipboardMock.copyTextToClipboard.mockClear(); + clipboardMock.copyTextToClipboard.mockResolvedValue('native'); + const previousLevel = chalk.level; + chalk.level = 3; + try { + setMarkdownAltScreenActive(true); + component.updateContent('```mermaid\nflowchart LR\n A-->B\n```\n'); + const before = component.render(80); + + const mouse = (type: 'press' | 'release') => ({ + type, + button: 'left' as const, + x: 3, + y: before.length - 1, + screenX: 3, + screenY: before.length - 1, + width: 80, + height: before.length, + shift: false, + alt: false, + ctrl: false, + }); + component.handleMouse(mouse('press')); + expect(component.render(80).join('\n')).not.toBe(before.join('\n')); + + component.handleMouse(mouse('release')); + await vi.waitFor(() => { + expect(strip(component.render(80).join('\n'))).toContain('[Copied]'); + }); + } finally { + chalk.level = previousLevel; + setMarkdownAltScreenActive(false); + } + }); }); diff --git a/apps/kimi-code/test/tui/components/messages/shell-run.test.ts b/apps/kimi-code/test/tui/components/messages/shell-run.test.ts index aec0646a1..f90cca906 100644 --- a/apps/kimi-code/test/tui/components/messages/shell-run.test.ts +++ b/apps/kimi-code/test/tui/components/messages/shell-run.test.ts @@ -208,6 +208,18 @@ describe('ShellRunComponent hasHiddenContent', () => { short.render(100); expect(short.hasHiddenContent()).toBe(false); }); + + it('does not advertise ctrl+o when only one row would hide', () => { + const c = create(); + c.finish(Array.from({ length: 11 }, (_, i) => `row ${String(i + 1)}`).join('\n'), '', false); + c.render(100); + expect(c.hasHiddenContent()).toBe(false); + + const foldable = create(); + foldable.finish(Array.from({ length: 12 }, (_, i) => `row ${String(i + 1)}`).join('\n'), '', false); + foldable.render(100); + expect(foldable.hasHiddenContent()).toBe(true); + }); }); describe('ShellRunComponent hasHiddenContent when finished while expanded', () => { diff --git a/apps/kimi-code/test/tui/components/messages/status-panel.test.ts b/apps/kimi-code/test/tui/components/messages/status-panel.test.ts index 215f7cd5e..73a29979b 100644 --- a/apps/kimi-code/test/tui/components/messages/status-panel.test.ts +++ b/apps/kimi-code/test/tui/components/messages/status-panel.test.ts @@ -40,12 +40,10 @@ describe('status panel report lines', () => { contextUsage: 0.25, }, managedUsage: { - summary: null, - limits: [ + rows: [ { - window: { duration: 5, unit: 'hour' }, - used: 8, - limit: 100, + name: '5h limit', + usedRatio: 0.08, resetAt: new Date(Date.now() + 3600_000).toISOString(), }, ], @@ -140,8 +138,7 @@ describe('status panel report lines', () => { maxContextTokens: 0, availableModels: {}, managedUsage: { - summary: null, - limits: [], + rows: [], extraUsage: { balanceCents: 15000, totalCents: 20000, diff --git a/apps/kimi-code/test/tui/components/messages/sticky-user-message.test.ts b/apps/kimi-code/test/tui/components/messages/sticky-user-message.test.ts new file mode 100644 index 000000000..c7137d1bc --- /dev/null +++ b/apps/kimi-code/test/tui/components/messages/sticky-user-message.test.ts @@ -0,0 +1,106 @@ +import { visibleWidth, type TuiMouseEvent, type TuiMouseEventType } from '@moonshot-ai/pi-tui'; +import chalk from 'chalk'; +import { describe, expect, it, vi } from 'vitest'; + +import { StickyUserMessageComponent } from '#/tui/components/messages/sticky-user-message'; +import { UserMessageComponent } from '#/tui/components/messages/user-message'; +import { currentTheme } from '#/tui/theme'; + +function stripAnsi(text: string): string { + return text.replaceAll(/\u001B\[[0-9;]*m/g, ''); +} + +function judgment(summary: string, targetY = 2) { + return { component: { render: vi.fn(() => []), invalidate() {} }, summary, targetY }; +} + +function mouseEvent(type: TuiMouseEventType): TuiMouseEvent { + return { + type, + button: type === 'wheel' ? 'none' : 'left', + x: 0, + y: 0, + screenX: 0, + screenY: 0, + width: 80, + height: 1, + shift: false, + alt: false, + ctrl: false, + }; +} + +describe('StickyUserMessageComponent', () => { + it('takes no row when hidden and displays the supplied summary with its bullet', () => { + const component = new StickyUserMessageComponent(() => {}); + expect(component.render(80)).toEqual([]); + const state = judgment('one two'); + expect(component.setJudgment(state)).toBe(true); + expect(component.render(80).map(stripAnsi)).toEqual(['❯ one two']); + expect(state.component.render).not.toHaveBeenCalled(); + expect(component.setJudgment({ ...state })).toBe(false); + expect(component.setJudgment(null)).toBe(true); + expect(component.render(80)).toEqual([]); + expect(component.setJudgment(null)).toBe(false); + }); + + it('keeps the user message skill highlighting in a Fullscreen summary', () => { + const summary = '/skill:review check src/app.ts'; + const user = new UserMessageComponent(summary, undefined, undefined, ['review']); + const component = new StickyUserMessageComponent(() => {}); + component.setJudgment({ component: user, summary, targetY: 2 }); + + const previousLevel = chalk.level; + chalk.level = 3; + try { + const line = component.render(80)[0]!; + expect(stripAnsi(line)).toBe(`❯ ${summary}`); + expect(line).toContain(currentTheme.boldFg('primary', '/skill:review')); + } finally { + chalk.level = previousLevel; + } + }); + + it('truncates long summaries to one row and supports narrow widths', () => { + const component = new StickyUserMessageComponent(() => {}); + component.setJudgment(judgment('word '.repeat(200).trim())); + expect(stripAnsi(component.render(20)[0]!).endsWith('…')).toBe(true); + for (const width of [1, 2, 4, 10, 39]) { + const lines = component.render(width); + expect(lines).toHaveLength(1); + expect(visibleWidth(lines[0]!)).toBeLessThanOrEqual(width); + } + expect(component.render(0)).toEqual([]); + }); + + it('keeps wide characters and emoji intact when truncating a long message', () => { + const component = new StickyUserMessageComponent(() => {}); + component.setJudgment(judgment('中文 👩‍💻 details '.repeat(1000))); + const lines = component.render(11); + expect(lines).toHaveLength(1); + expect(stripAnsi(lines[0]!)).toBe('❯ 中文 👩‍💻 …'); + expect(visibleWidth(lines[0]!)).toBe(11); + }); + + it('uses the latest jump target even when the displayed summary is unchanged', () => { + const scrollTo = vi.fn(); + const component = new StickyUserMessageComponent(scrollTo); + const state = judgment('hello', 6); + component.setJudgment(state); + expect(component.handleMouse(mouseEvent('click'))).toEqual({ handled: true }); + expect(scrollTo).toHaveBeenLastCalledWith(6); + expect(component.setJudgment({ ...state, targetY: 9 })).toBe(true); + component.handleMouse(mouseEvent('click')); + expect(scrollTo).toHaveBeenLastCalledWith(9); + expect(component.setJudgment(judgment('hello', 9))).toBe(true); + }); + + it('lets wheel input pass through and ignores clicks while hidden', () => { + const scrollTo = vi.fn(); + const component = new StickyUserMessageComponent(scrollTo); + expect(component.handleMouse(mouseEvent('click'))).toBeUndefined(); + component.setJudgment(judgment('hello')); + expect(component.handleMouse(mouseEvent('wheel'))).toBeUndefined(); + expect(scrollTo).not.toHaveBeenCalled(); + }); +}); diff --git a/apps/kimi-code/test/tui/components/messages/thinking.test.ts b/apps/kimi-code/test/tui/components/messages/thinking.test.ts index 7e04dbd1f..64d1a144a 100644 --- a/apps/kimi-code/test/tui/components/messages/thinking.test.ts +++ b/apps/kimi-code/test/tui/components/messages/thinking.test.ts @@ -89,4 +89,32 @@ describe('ThinkingComponent', () => { expect(visibleWidth(line)).toBeLessThanOrEqual(37); } }); + + it('shows a single overflow line instead of swapping it for a same-height hint', () => { + const component = new ThinkingComponent(['line1', 'line2', 'line3'].join('\n'), true, 'live'); + component.finalize(); + + const out = strip(component.render(80).join('\n')); + expect(out).toContain('line1'); + expect(out).toContain('line2'); + expect(out).toContain('line3'); + expect(out).not.toContain('more lines'); + expect(component.hasHiddenContent()).toBe(false); + }); + + it('collapses once folding saves at least one row', () => { + const component = new ThinkingComponent( + ['line1', 'line2', 'line3', 'line4'].join('\n'), + true, + 'live', + ); + component.finalize(); + + const out = strip(component.render(80).join('\n')); + expect(out).toContain('line1'); + expect(out).toContain('line2'); + expect(out).not.toContain('line3'); + expect(out).toContain('… (2 more lines, ctrl+o to expand)'); + expect(component.hasHiddenContent()).toBe(true); + }); }); diff --git a/apps/kimi-code/test/tui/components/messages/tool-call.test.ts b/apps/kimi-code/test/tui/components/messages/tool-call.test.ts index 969f0e9be..9d4e24ad7 100644 --- a/apps/kimi-code/test/tui/components/messages/tool-call.test.ts +++ b/apps/kimi-code/test/tui/components/messages/tool-call.test.ts @@ -198,6 +198,86 @@ describe('ToolCallComponent', () => { expect(collapsed).toContain('… (2 more lines, ctrl+o to expand)'); }); + it('keeps a failing command fully visible when only one row would hide', () => { + const component = new ToolCallComponent( + { + id: 'call_shell_err_edge', + name: 'Bash', + args: { command: 'false' }, + }, + { + tool_call_id: 'call_shell_err_edge', + output: ['err1', 'err2', 'err3', 'err4'].join('\n'), + is_error: true, + }, + ); + + const collapsed = strip(component.render(100).join('\n')); + expect(collapsed).toContain('err1'); + expect(collapsed).toContain('err4'); + expect(collapsed).not.toContain('more lines'); + expect(component.hasHiddenContent()).toBe(false); + }); + + it('advertises ctrl+o for a failing command once folding saves a row', () => { + const component = new ToolCallComponent( + { + id: 'call_shell_err_fold', + name: 'Bash', + args: { command: 'false' }, + }, + { + tool_call_id: 'call_shell_err_fold', + output: ['err1', 'err2', 'err3', 'err4', 'err5'].join('\n'), + is_error: true, + }, + ); + + component.render(100); + expect(component.hasHiddenContent()).toBe(true); + }); + + it('counts error rows like the preview does, interior blanks included', () => { + // Four non-empty rows plus an interior blank: the preview folds (five + // rendered rows > cap + 1), so the predicate must not count non-empty + // lines only. + const component = new ToolCallComponent( + { + id: 'call_shell_err_blank', + name: 'Bash', + args: { command: 'false' }, + }, + { + tool_call_id: 'call_shell_err_blank', + output: 'a\n\nb\nc\nd', + is_error: true, + }, + ); + + component.render(100); + expect(component.hasHiddenContent()).toBe(true); + }); + + it('does not count control-only rows the preview strips from Bash errors', () => { + // Four visible rows plus a trailing reset: the sanitized preview shows + // all four without folding, so ctrl+o must stay off. + const component = new ToolCallComponent( + { + id: 'call_shell_err_ansi', + name: 'Bash', + args: { command: 'false' }, + }, + { + tool_call_id: 'call_shell_err_ansi', + output: 'a\nb\nc\nd\n\u001B[0m', + is_error: true, + }, + ); + + component.render(100); + expect(component.hasHiddenContent()).toBe(false); + }); + it('renders live Bash output while the command is running', () => { const component = new ToolCallComponent( { @@ -349,6 +429,28 @@ describe('ToolCallComponent', () => { expect(component.hasHiddenContent()).toBe(true); }); + it('uses the title as the header and keeps the message behind ctrl+o', () => { + const component = new ToolCallComponent( + { + id: 'call_notify_titled', + name: 'NotifyUser', + args: { title: 'Root cause found', message }, + }, + { tool_call_id: 'call_notify_titled', output: 'Update shown to the user.', is_error: false }, + ); + + const collapsed = component.render(100).map(strip).filter((line) => line.trim().length > 0); + expect(collapsed).toHaveLength(1); + expect(collapsed[0]).toContain('Sent you an update'); + expect(collapsed[0]).toContain('Root cause found'); + expect(collapsed[0]).not.toContain('Login module is clean.'); + + component.setExpanded(true); + const expanded = strip(component.render(100).join('\n')); + expect(expanded).toContain('Login module is clean.'); + expect(expanded).toContain('session expiry'); + }); + it('renders historical calls as ordinary tool records when disabled', () => { setExperimentalFeatures([]); const component = new ToolCallComponent( @@ -1985,6 +2087,62 @@ describe('ToolCallComponent', () => { expect(after).toContain('ctrl+o to expand'); }); + it('shows a Write preview one row over the cap instead of swapping it for a same-height hint', () => { + const lines: string[] = []; + for (let i = 1; i <= 11; i++) lines.push(`line${String(i)}`); + const component = new ToolCallComponent( + { + id: 'call_write_edge', + name: 'Write', + args: { file_path: 'edge.ts', content: lines.join('\n') }, + }, + undefined, + ); + const out = strip(component.render(100).join('\n')); + expect(out).toContain('line1'); + expect(out).toContain('line11'); + expect(out).not.toContain('more lines'); + expect(component.hasHiddenContent()).toBe(false); + }); + + it('caps the Write preview once folding saves at least one row', () => { + const lines: string[] = []; + for (let i = 1; i <= 12; i++) lines.push(`line${String(i)}`); + const component = new ToolCallComponent( + { + id: 'call_write_edge_cap', + name: 'Write', + args: { file_path: 'edge2.ts', content: lines.join('\n') }, + }, + undefined, + ); + const out = strip(component.render(100).join('\n')); + expect(out).toContain('line1'); + expect(out).toContain('line10'); + expect(out).not.toContain('line11'); + expect(out).toContain('… (2 more lines, 12 total, ctrl+o to expand)'); + expect(component.hasHiddenContent()).toBe(true); + }); + + it('keeps the Write cap and the expand predicate consistent for a trailing newline', () => { + // highlightLines keeps a trailing empty entry for content ending in '\n', + // so the renderer counts 12 rows for 11 visible lines; the predicate must + // count the same way or ctrl+o is refused while the hint stays. + const lines: string[] = []; + for (let i = 1; i <= 11; i++) lines.push(`line${String(i)}`); + const component = new ToolCallComponent( + { + id: 'call_write_trailing', + name: 'Write', + args: { file_path: 'noext', content: lines.join('\n') + '\n' }, + }, + undefined, + ); + const out = strip(component.render(100).join('\n')); + expect(out).toContain('… (2 more lines, 12 total, ctrl+o to expand)'); + expect(component.hasHiddenContent()).toBe(true); + }); + it('refreshes the header when file_path arrives in a later streaming delta', () => { // First delta: only an opening brace, no file_path yet. const component = new ToolCallComponent( @@ -2249,6 +2407,36 @@ describe('ToolCallComponent', () => { ); }); + it('renders a wait ended by new input as interrupted', () => { + const component = new ToolCallComponent( + { + id: 'call_wait_interrupted', + name: 'WaitFor', + args: { task_id: 'bash-x', timeout: 60 }, + }, + { + tool_call_id: 'call_wait_interrupted', + output: [ + 'wait_status: interrupted', + 'reason: steer', + 'task_id: bash-x', + 'waited_ms: 4000', + 'timeout_ms: 60000', + '', + '[still_running]', + 'active_background_tasks: 1', + 'task_id: bash-x', + 'description: slow build', + ].join('\n'), + is_error: false, + }, + ); + + const out = strip(component.render(100).join('\n')); + expect(out).toContain('Wait interrupted by new input (bash-x)'); + expect(out).toContain('1 background task still running: slow build'); + }); + it('renders errors with the failure tense', () => { const component = new ToolCallComponent( { diff --git a/apps/kimi-code/test/tui/components/messages/tool-renderers/truncated.test.ts b/apps/kimi-code/test/tui/components/messages/tool-renderers/truncated.test.ts index 3f6471f46..0a63067e2 100644 --- a/apps/kimi-code/test/tui/components/messages/tool-renderers/truncated.test.ts +++ b/apps/kimi-code/test/tui/components/messages/tool-renderers/truncated.test.ts @@ -61,6 +61,33 @@ describe('TruncatedOutputComponent', () => { expect(out).not.toContain('more lines, ctrl+o'); }); + it('shows a single overflow line instead of swapping it for a same-height hint', () => { + const component = new TruncatedOutputComponent('a\nb\nc\nd', { + expanded: false, + isError: false, + maxLines: 3, + }); + + const lines = strip(component.render(80).join('\n')).split('\n'); + expect(lines).toHaveLength(4); + expect(lines[3]).toContain('d'); + expect(lines.some((line) => line.includes('more lines'))).toBe(false); + expect(component.wasTruncated()).toBe(false); + }); + + it('collapses once folding saves at least one row', () => { + const component = new TruncatedOutputComponent('a\nb\nc\nd\ne', { + expanded: false, + isError: false, + maxLines: 3, + }); + + const lines = strip(component.render(80).join('\n')).split('\n'); + expect(lines).toHaveLength(4); + expect(lines[3]).toBe(' … (2 more lines, ctrl+o to expand)'); + expect(component.wasTruncated()).toBe(true); + }); + it('keeps the truncation footer within the requested render width', () => { const output = Array.from({ length: 20 }, (_, i) => `line ${String(i)}`).join('\n'); const component = new TruncatedOutputComponent(output, { diff --git a/apps/kimi-code/test/tui/components/messages/usage-panel.test.ts b/apps/kimi-code/test/tui/components/messages/usage-panel.test.ts index 29cb4ac7d..d46b78e06 100644 --- a/apps/kimi-code/test/tui/components/messages/usage-panel.test.ts +++ b/apps/kimi-code/test/tui/components/messages/usage-panel.test.ts @@ -34,13 +34,13 @@ describe('UsagePanelComponent', () => { contextTokens: 2500, maxContextTokens: 10000, managedUsage: { - summary: { - name: 'daily', - used: 20, - limit: 100, - resetAt: new Date(Date.now() + 3600_000).toISOString(), - }, - limits: [], + rows: [ + { + name: 'daily', + usedRatio: 0.2, + resetAt: new Date(Date.now() + 3600_000).toISOString(), + }, + ], }, }).map(strip); @@ -57,27 +57,29 @@ describe('UsagePanelComponent', () => { } }); - it('derives plan usage labels from the window and falls back to name / Limit', () => { + it('renders plan usage rows with their names and the monthly breakdown line', () => { const lines = buildUsageReportLines({ sessionUsage: { byModel: {} }, contextUsage: 0, contextTokens: 0, maxContextTokens: 0, managedUsage: { - summary: { window: { duration: 1, unit: 'week' }, used: 1, limit: 10 }, - limits: [ - { window: { duration: 5, unit: 'hour' }, used: 2, limit: 10 }, - { name: 'Custom cap', used: 3, limit: 10 }, - { used: 4, limit: 10 }, + rows: [ + { name: '5h limit', usedRatio: 0.2 }, + { + name: 'Monthly limit', + usedRatio: 0.4, + breakdown: { kimiRatio: 0.15, codeRatio: 0.25 }, + }, ], }, }).map(strip); const output = lines.join('\n'); - expect(output).toContain('Weekly limit'); expect(output).toContain('5h limit'); - expect(output).toContain('Custom cap'); - expect(output).toContain('Limit'); + expect(output).toContain('Monthly limit'); + expect(output).toContain('40% used'); + expect(output).toContain('kimi 15% · code 25%'); }); it('shows "reset" when the reset timestamp is already in the past', () => { @@ -87,12 +89,10 @@ describe('UsagePanelComponent', () => { contextTokens: 0, maxContextTokens: 0, managedUsage: { - summary: null, - limits: [ + rows: [ { name: 'daily', - used: 1, - limit: 10, + usedRatio: 0.1, resetAt: new Date(Date.now() - 60_000).toISOString(), }, ], @@ -110,8 +110,7 @@ describe('UsagePanelComponent', () => { contextTokens: 0, maxContextTokens: 0, managedUsage: { - summary: null, - limits: [], + rows: [], extraUsage: { balanceCents: 10000, totalCents: 20000, @@ -142,8 +141,7 @@ describe('UsagePanelComponent', () => { contextTokens: 0, maxContextTokens: 0, managedUsage: { - summary: null, - limits: [], + rows: [], extraUsage: { balanceCents: 18208, totalCents: 40000, @@ -174,7 +172,7 @@ describe('UsagePanelComponent', () => { contextUsage: 0, contextTokens: 0, maxContextTokens: 0, - managedUsage: { summary: null, limits: [], extraUsage }, + managedUsage: { rows: [], extraUsage }, }).map(strip); expect(lines).not.toContain('Extra Usage'); @@ -188,8 +186,7 @@ describe('UsagePanelComponent', () => { contextTokens: 0, maxContextTokens: 0, managedUsage: { - summary: null, - limits: [], + rows: [], extraUsage: { balanceCents: 10000, totalCents: 20000, @@ -217,8 +214,7 @@ describe('UsagePanelComponent', () => { contextTokens: 0, maxContextTokens: 0, managedUsage: { - summary: null, - limits: [], + rows: [], extraUsage: { balanceCents: 15901, totalCents: 300000, @@ -239,6 +235,35 @@ describe('UsagePanelComponent', () => { expect(new Set(extraRows.map((line) => line.length)).size).toBe(1); }); + it('shows an empty-hint instead of an error when there is no session yet', async () => { + const { showUsage } = await import('#/tui/commands/info'); + const added: string[] = []; + const host = { + session: undefined, + state: { + appState: { + model: 'kimi', + availableModels: {}, + contextUsage: 0, + contextTokens: 0, + maxContextTokens: 1_000_000, + }, + transcriptContainer: { + addChild: (component: { render(width: number): string[] }) => { + added.push(...component.render(80).map(strip)); + }, + }, + ui: { requestRender: () => {} }, + }, + }; + + await showUsage(host as never); + + const output = added.join('\n'); + expect(output).toContain('No token usage recorded yet.'); + expect(output).not.toContain('No active session'); + }); + it('wraps preformatted usage lines in a bordered panel', () => { const component = new UsagePanelComponent(() => ['Session usage'], 'primary'); const output = component.render(80).map(strip); diff --git a/apps/kimi-code/test/tui/components/messages/user-message.test.ts b/apps/kimi-code/test/tui/components/messages/user-message.test.ts index 7f8a1d1ae..c911a4821 100644 --- a/apps/kimi-code/test/tui/components/messages/user-message.test.ts +++ b/apps/kimi-code/test/tui/components/messages/user-message.test.ts @@ -1,13 +1,16 @@ import { resetCapabilitiesCache, setCapabilities, visibleWidth } from '@moonshot-ai/pi-tui'; +import chalk from 'chalk'; import { afterEach, describe, expect, it } from 'vitest'; -import { UserMessageComponent } from '#/tui/components/messages/user-message'; +import { + UserMessageComponent, + userMessageLineHeights, +} from '#/tui/components/messages/user-message'; +import { currentTheme, darkColors, lightColors } from '#/tui/theme'; import type { ImageAttachment } from '#/tui/utils/image-attachment-store'; function stripAnsi(text: string): string { - return text - .replaceAll(/\u001B\[[0-9;]*m/g, '') - .replaceAll(/\u001B\]133;[ABC]\u0007/g, ''); + return text.replaceAll(/\u001B\[[0-9;]*m/g, '').replaceAll(/\u001B\]133;[ABC]\u0007/g, ''); } describe('UserMessageComponent', () => { @@ -18,10 +21,7 @@ describe('UserMessageComponent', () => { it('renders video placeholders as plain text, not inline image escapes', () => { setCapabilities({ images: null, trueColor: true, hyperlinks: true }); - const component = new UserMessageComponent( - 'please inspect [video #1 sample.mov]', - [], - ); + const component = new UserMessageComponent('please inspect [video #1 sample.mov]', []); const out = stripAnsi(component.render(80).join('\n')); @@ -96,13 +96,13 @@ describe('UserMessageComponent', () => { setCapabilities({ images: null, trueColor: true, hyperlinks: true }); const withBullet = stripAnsi(new UserMessageComponent('hello', []).render(80).join('\n')); - expect(withBullet).toContain('✨'); + expect(withBullet).toContain('❯'); expect(withBullet).toContain('hello'); const lines = new UserMessageComponent('$ ls', [], '').render(80).map(stripAnsi); const contentLine = lines.find((l) => l.includes('$ ls')); expect(contentLine).toBeDefined(); - expect(stripAnsi(lines.join('\n'))).not.toContain('✨'); + expect(stripAnsi(lines.join('\n'))).not.toContain('❯'); // The `$` sits at the leading column where the bullet used to be. expect(contentLine?.startsWith('$ ls')).toBe(true); }); @@ -113,9 +113,138 @@ describe('UserMessageComponent', () => { const lines = component.render(80); expect(lines[0]).toMatch(/^\u001B\]133;A\u0007/); - expect(lines[lines.length - 1]).toMatch(/^\u001B\]133;B\u0007\u001B\]133;C\u0007/); + expect(lines.at(-1)).toMatch(/^\u001B\]133;B\u0007\u001B\]133;C\u0007/); const cached = component.render(80); expect(cached[0]).toBe(lines[0]); }); + + describe('bullet', () => { + it('renders ❯ as the default bullet', () => { + setCapabilities({ images: null, trueColor: true, hyperlinks: true }); + + const rendered = stripAnsi(new UserMessageComponent('hello', []).render(80).join('\n')); + expect(rendered).toContain('❯'); + }); + + it('indents continuation lines by the marker width', () => { + setCapabilities({ images: null, trueColor: true, hyperlinks: true }); + + const wrapped = new UserMessageComponent('word '.repeat(40).trim(), []) + .render(20) + .map(stripAnsi) + .filter((line) => line.includes('word')); + expect(wrapped[0]?.startsWith('❯ ')).toBe(true); + expect(wrapped[1]?.startsWith(' word')).toBe(true); + }); + + }); + + describe('skillNames', () => { + function withChalkLevel(run: () => void): void { + const previousLevel = chalk.level; + chalk.level = 3; + try { + run(); + } finally { + chalk.level = previousLevel; + } + } + + afterEach(() => { + currentTheme.setPalette(darkColors); + }); + + it('highlights only the listed skill tokens and keeps the text verbatim', () => { + setCapabilities({ images: null, trueColor: true, hyperlinks: true }); + withChalkLevel(() => { + const component = new UserMessageComponent( + 'please /skill:review this and /skill:security too /unknown https://example.com/a', + [], + undefined, + ['review', 'security'], + ); + + const lines = component.render(120); + const joined = lines.join('\n'); + expect(stripAnsi(joined)).toContain( + 'please /skill:review this and /skill:security too /unknown https://example.com/a', + ); + expect(joined).toContain(currentTheme.boldFg('primary', '/skill:review')); + expect(joined).toContain(currentTheme.boldFg('primary', '/skill:security')); + expect(joined).not.toContain(currentTheme.boldFg('primary', '/unknown')); + expect(joined).toContain(currentTheme.boldFg('roleUser', 'please ')); + }); + }); + + it('highlights a leading skill command and bare-name aliases', () => { + setCapabilities({ images: null, trueColor: true, hyperlinks: true }); + withChalkLevel(() => { + const leading = new UserMessageComponent('/skill:review src/app.ts', [], undefined, [ + 'review', + ]).render(80); + expect(leading.join('\n')).toContain(currentTheme.boldFg('primary', '/skill:review')); + expect(stripAnsi(leading.join('\n'))).toContain('/skill:review src/app.ts'); + + const alias = new UserMessageComponent('please /commit this', [], undefined, [ + 'commit', + ]).render(80); + expect(alias.join('\n')).toContain(currentTheme.boldFg('primary', '/commit')); + }); + }); + + it('renders no highlight when skill names are absent or unmatched', () => { + setCapabilities({ images: null, trueColor: true, hyperlinks: true }); + withChalkLevel(() => { + const plain = new UserMessageComponent('please /skill:review this', []).render(80); + expect(plain.join('\n')).not.toContain(currentTheme.boldFg('primary', '/skill:review')); + + const unmatched = new UserMessageComponent('please /skill:review this', [], undefined, [ + 'security', + ]).render(80); + expect(unmatched.join('\n')).not.toContain(currentTheme.boldFg('primary', '/skill:review')); + }); + }); + + it('re-dyes the highlight from the current theme after a switch', () => { + setCapabilities({ images: null, trueColor: true, hyperlinks: true }); + withChalkLevel(() => { + const component = new UserMessageComponent('please /skill:review this', [], undefined, [ + 'review', + ]); + const dark = component.render(80).join('\n'); + expect(dark).toContain(chalk.hex(darkColors.primary).bold('/skill:review')); + + currentTheme.setPalette(lightColors); + component.invalidate(); + const light = component.render(80).join('\n'); + expect(light).toContain(chalk.hex(lightColors.primary).bold('/skill:review')); + expect(stripAnsi(light)).toContain('please /skill:review this'); + }); + }); + }); +}); + +describe('userMessageLineHeights', () => { + it('counts one visual row per short logical line', () => { + expect(userMessageLineHeights('one\ntwo\nthree', 80)).toEqual([1, 1, 1]); + }); + + it('skips leading blank lines, matching the rendered content offset', () => { + expect(userMessageLineHeights('\n\none\ntwo', 80)).toEqual([1, 1]); + }); + + it('counts wrapped rows for long logical lines at the bullet-adjusted width', () => { + // Width 12 minus the 2-cell bullet leaves 10 columns for text. + expect(userMessageLineHeights('a'.repeat(25), 12)).toEqual([3]); + }); + + it('expands tabs like the Text component does before wrapping', () => { + expect(userMessageLineHeights('\t' + 'a'.repeat(8), 12)).toEqual([2]); + }); + + it('honours an explicit bullet when measuring the content width', () => { + expect(userMessageLineHeights('a'.repeat(11), 12, '')).toEqual([1]); + expect(userMessageLineHeights('a'.repeat(11), 12)).toEqual([2]); + }); }); diff --git a/apps/kimi-code/test/tui/components/panels/notify-panel.test.ts b/apps/kimi-code/test/tui/components/panels/notify-panel.test.ts index 4f47abbef..b034588f9 100644 --- a/apps/kimi-code/test/tui/components/panels/notify-panel.test.ts +++ b/apps/kimi-code/test/tui/components/panels/notify-panel.test.ts @@ -178,6 +178,30 @@ describe('NotifyPanelComponent', () => { expect(render(panel)).toHaveLength(2); }); + it('shows the title above the message and previews the title when folded', () => { + const panel = new NotifyPanelComponent(); + panel.upsert({ + id: 'tc-1', + agentId: 'main', + time: 0, + title: 'Root cause found', + text: 'Two refreshes reuse one token.\n\n- interceptor\n- visibility', + }); + + const lines = render(panel); + const titleRow = lines.findIndex((line) => line.includes('Root cause found')); + const bodyRow = lines.findIndex((line) => line.includes('Two refreshes reuse one token.')); + expect(titleRow).toBeGreaterThan(1); + expect(bodyRow).toBe(titleRow + 2); + expect(lines[titleRow + 1]).toMatch(/^│\s*│$/); + + panel.setEnded(true); + const collapsed = render(panel); + expect(collapsed).toHaveLength(2); + expect(collapsed[1]).toContain('Root cause found'); + expect(collapsed[1]).not.toContain('Two refreshes'); + }); + it('stays expanded when the turn ends while the user is reading, folds on blur', () => { const panel = new NotifyPanelComponent(); panel.upsert(entry('tc-1', 'phase one')); diff --git a/apps/kimi-code/test/tui/components/panes/activity-pane.test.ts b/apps/kimi-code/test/tui/components/panes/activity-pane.test.ts index 314c7a18a..132553f4c 100644 --- a/apps/kimi-code/test/tui/components/panes/activity-pane.test.ts +++ b/apps/kimi-code/test/tui/components/panes/activity-pane.test.ts @@ -27,7 +27,7 @@ function createMockSpinner(initialText = 'working') { } describe('ActivityPaneComponent', () => { - it('renders waiting loader after a spacer', () => { + it('renders the waiting loader after a spacer', () => { const { spinner } = createMockSpinner('loading'); const component = new ActivityPaneComponent({ mode: 'waiting', @@ -37,7 +37,7 @@ describe('ActivityPaneComponent', () => { expect(component.render(80).map((line) => line.trimEnd())).toEqual(['', 'loading']); }); - it('renders composing spinner after a spacer', () => { + it('renders the composing spinner after a spacer', () => { const { spinner } = createMockSpinner('working'); const component = new ActivityPaneComponent({ mode: 'composing', @@ -47,6 +47,16 @@ describe('ActivityPaneComponent', () => { expect(component.render(80).map((line) => line.trimEnd())).toEqual(['', 'working']); }); + it('renders the thinking spinner after a spacer', () => { + const { spinner } = createMockSpinner('thinking'); + const component = new ActivityPaneComponent({ + mode: 'thinking', + spinner, + }); + + expect(component.render(80).map((line) => line.trimEnd())).toEqual(['', 'thinking']); + }); + it('renders the detail line under the waiting spinner', () => { const { spinner } = createMockSpinner('working'); const component = new ActivityPaneComponent({ @@ -61,8 +71,8 @@ describe('ActivityPaneComponent', () => { expect(lines).toEqual(['', 'working', ' 429 · rate limited']); }); - it.each(['waiting', 'tool', 'composing'] as const)( - 'renders %s spinner with tip after a spacer', + it.each(['waiting', 'tool', 'composing', 'thinking'] as const)( + 'renders the %s spinner with tip after a spacer', (mode) => { const { spinner } = createMockSpinner('working'); const component = new ActivityPaneComponent({ @@ -91,7 +101,7 @@ describe('ActivityPaneComponent', () => { }, ); - it('renders nothing for hidden and thinking modes', () => { + it('renders nothing for hidden, or for thinking without a spinner', () => { expect(new ActivityPaneComponent({ mode: 'hidden' }).render(80)).toEqual([]); expect(new ActivityPaneComponent({ mode: 'thinking' }).render(80)).toEqual([]); }); diff --git a/apps/kimi-code/test/tui/components/panes/btw-panel.test.ts b/apps/kimi-code/test/tui/components/panes/btw-panel.test.ts new file mode 100644 index 000000000..96ce5b375 --- /dev/null +++ b/apps/kimi-code/test/tui/components/panes/btw-panel.test.ts @@ -0,0 +1,34 @@ +import { describe, expect, it } from 'vitest'; + +import { BtwPanelComponent } from '#/tui/components/panes/btw-panel'; +import { createMarkdownTheme } from '#/tui/theme/pi-tui-theme'; + +function strip(text: string): string { + return text.replaceAll(/\u001B\[[0-9;]*m/g, ''); +} + +function makePanel(): BtwPanelComponent { + return new BtwPanelComponent({ + markdownTheme: createMarkdownTheme(), + canUseScrollKeys: () => false, + onPrompt: () => {}, + terminalRows: () => 0, + }); +} + +describe('BtwPanelComponent', () => { + it('defers mermaid drawing until the turn completes', () => { + const panel = makePanel(); + panel.submit('draw a flow'); + panel.appendAnswer('```mermaid\nflowchart LR\n A-->B\n```\n'); + + const streaming = strip(panel.render(60).join('\n')); + expect(streaming).toContain('A-->B'); + expect(streaming).not.toContain('┌'); + + panel.markDone(); + const done = strip(panel.render(60).join('\n')); + expect(done).not.toContain('A-->B'); + expect(done).toContain('┌'); + }); +}); diff --git a/apps/kimi-code/test/tui/config.test.ts b/apps/kimi-code/test/tui/config.test.ts index 020bca529..8e4f61f67 100644 --- a/apps/kimi-code/test/tui/config.test.ts +++ b/apps/kimi-code/test/tui/config.test.ts @@ -2,13 +2,14 @@ import { mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs'; import { tmpdir } from 'node:os'; import { join } from 'node:path'; -import { afterEach, beforeEach, describe, expect, it } from 'vitest'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { DEFAULT_TUI_CONFIG, INVALID_TUI_CONFIG_MESSAGE, loadTuiConfig, parseTuiConfig, + removeLegacySurveySetting, saveTuiConfig, TuiConfigParseError, } from '#/tui/config'; @@ -17,12 +18,14 @@ let dir: string; let filePath: string; beforeEach(() => { + vi.stubEnv('KIMI_CODE_TUI_FULL_SCREEN', ''); dir = join(tmpdir(), `kimi-tui-config-${Date.now()}-${Math.random().toString(36).slice(2)}`); mkdirSync(dir, { recursive: true }); filePath = join(dir, 'tui.toml'); }); afterEach(() => { + vi.unstubAllEnvs(); rmSync(dir, { recursive: true, force: true }); }); @@ -35,7 +38,8 @@ describe('TUI config', () => { expect(text).toContain('Client preferences for kimi-code.'); expect(text).toContain('theme = "auto"'); expect(text).toContain('cache_expiry_hint = true'); - expect(text).toContain('disable_feedback_survey = false'); + expect(text).not.toContain('disable_feedback_survey'); + expect(text).toContain('auto_session_title = true'); expect(text).toContain('command = ""'); expect(text).toContain('[upgrade]'); expect(text).toContain('auto_install = true'); @@ -61,14 +65,16 @@ auto_install = false expect(config).toEqual({ theme: 'light', + tuiMode: 'regular', renderLatex: true, disablePasteBurst: false, cacheExpiryHint: true, - disableFeedbackSurvey: false, + autoSessionTitle: true, editorCommand: 'code --wait', notifications: { enabled: false, condition: 'always' }, upgrade: { autoInstall: false }, statusLine: { items: null, command: null }, + markdown: { mermaid: 'final' }, }); }); @@ -100,8 +106,8 @@ cache_expiry_hint = false expect(config.cacheExpiryHint).toBe(false); }); - it('defaults disable_feedback_survey to false and parses true', () => { - expect(parseTuiConfig('').disableFeedbackSurvey).toBe(false); + it('keeps a legacy disable_feedback_survey value only when the file sets it', () => { + expect(parseTuiConfig('').disableFeedbackSurvey).toBeUndefined(); const config = parseTuiConfig(` disable_feedback_survey = true @@ -110,6 +116,16 @@ disable_feedback_survey = true expect(config.disableFeedbackSurvey).toBe(true); }); + it('defaults auto_session_title to true and parses false', () => { + expect(parseTuiConfig('').autoSessionTitle).toBe(true); + + const config = parseTuiConfig(` +auto_session_title = false +`); + + expect(config.autoSessionTitle).toBe(false); + }); + it('normalizes an empty editor command to auto-detect', () => { const config = parseTuiConfig(` [editor] @@ -118,14 +134,16 @@ command = " " expect(config).toEqual({ theme: 'auto', + tuiMode: 'regular', renderLatex: true, disablePasteBurst: false, cacheExpiryHint: true, - disableFeedbackSurvey: false, + autoSessionTitle: true, editorCommand: null, notifications: { enabled: true, condition: 'unfocused' }, upgrade: { autoInstall: true }, statusLine: { items: null, command: null }, + markdown: { mermaid: 'final' }, }); }); @@ -166,25 +184,103 @@ command = " " expect(await loadTuiConfig(filePath)).toEqual({ theme: 'light', + tuiMode: 'regular', renderLatex: true, disablePasteBurst: false, cacheExpiryHint: true, - disableFeedbackSurvey: false, + autoSessionTitle: true, editorCommand: 'vim', notifications: { enabled: false, condition: 'always' }, upgrade: { autoInstall: false }, statusLine: { items: null, command: null }, + markdown: { mermaid: 'final' }, }); }); - it('round-trips a disable_feedback_survey opt-out', async () => { + it('preserves the legacy opt-out when an unrelated preference is saved', async () => { + writeFileSync(filePath, 'disable_feedback_survey = true\nauto_session_title = false\n'); + const previous = await loadTuiConfig(filePath); + await saveTuiConfig({ ...previous, disableFeedbackSurvey: undefined, theme: 'light' }, filePath); + + expect(await loadTuiConfig(filePath)).toMatchObject({ + theme: 'light', disableFeedbackSurvey: true, autoSessionTitle: false, + }); + }); + + it.each([ + { source: '[[[', legacy: undefined }, + { source: 'render_latex = "false"\ndisable_feedback_survey = true', legacy: true }, + { source: 'theme = 42\ndisable_feedback_survey = false', legacy: false }, + { source: 'disable_feedback_survey = "true"', legacy: undefined }, + ])('saves valid preferences after falling back from $source', async ({ source, legacy }) => { + writeFileSync(filePath, source); + await expect(loadTuiConfig(filePath)).rejects.toBeInstanceOf(TuiConfigParseError); + await saveTuiConfig({ ...DEFAULT_TUI_CONFIG, theme: 'light' }, filePath); + const saved = await loadTuiConfig(filePath); + expect(saved.theme).toBe('light'); + expect(saved.disableFeedbackSurvey).toBe(legacy); + }); + + it('removes only the migrated survey setting and can repeat the cleanup', async () => { + writeFileSync(filePath, 'disable_feedback_survey = true\nauto_session_title = false\ntheme = "light"\n[custom]\nvalue = 42\n'); + await removeLegacySurveySetting(filePath); + const cleaned = readFileSync(filePath, 'utf-8'); + expect(cleaned).not.toContain('disable_feedback_survey'); + expect(cleaned).toContain('value = 42'); + expect(await loadTuiConfig(filePath)).toMatchObject({ theme: 'light', autoSessionTitle: false }); + await removeLegacySurveySetting(filePath); + expect(readFileSync(filePath, 'utf-8')).toBe(cleaned); + await saveTuiConfig({ ...DEFAULT_TUI_CONFIG, theme: 'dark' }, filePath); + expect(readFileSync(filePath, 'utf-8')).not.toContain('disable_feedback_survey'); + }); + + it('removes the survey setting line without disturbing comments or tables', async () => { + writeFileSync(filePath, [ + '# ~/.kimi-code/tui.toml', + '# Client preferences for kimi-code.', + 'theme = "dark" # "auto" | "dark" | "light"', + '# my own note', + 'disable_feedback_survey = true', + '# disable_feedback_survey = false', + '', + '[custom]', + 'disable_feedback_survey = true', + 'value = 42', + '', + ].join('\n')); + + await removeLegacySurveySetting(filePath); + + expect(readFileSync(filePath, 'utf-8')).toBe([ + '# ~/.kimi-code/tui.toml', + '# Client preferences for kimi-code.', + 'theme = "dark" # "auto" | "dark" | "light"', + '# my own note', + '# disable_feedback_survey = false', + '', + '[custom]', + 'disable_feedback_survey = true', + 'value = 42', + '', + ].join('\n')); + }); + + it('removes a quoted spelling of the survey setting key', async () => { + writeFileSync(filePath, '"disable_feedback_survey" = true\ntheme = "dark"\n'); + + await removeLegacySurveySetting(filePath); + + expect(readFileSync(filePath, 'utf-8')).toBe('theme = "dark"\n'); + }); + + it('round-trips an auto_session_title opt-out', async () => { await saveTuiConfig( - { ...DEFAULT_TUI_CONFIG, disableFeedbackSurvey: true }, + { ...DEFAULT_TUI_CONFIG, autoSessionTitle: false }, filePath, ); - expect(readFileSync(filePath, 'utf-8')).toContain('disable_feedback_survey = true'); - expect((await loadTuiConfig(filePath)).disableFeedbackSurvey).toBe(true); + expect(readFileSync(filePath, 'utf-8')).toContain('auto_session_title = false'); + expect((await loadTuiConfig(filePath)).autoSessionTitle).toBe(false); }); it('escapes special characters in a custom theme name so the TOML round-trips', async () => { @@ -294,3 +390,166 @@ describe('TUI config status_line round-trip', () => { expect(text).toContain('# command ='); }); }); + +describe('TUI config markdown', () => { + it('defaults mermaid to final when the section is omitted', () => { + expect(parseTuiConfig(`theme = "dark"`).markdown).toEqual({ mermaid: 'final' }); + }); + + it('parses mermaid = "off"', () => { + const config = parseTuiConfig(` +[markdown] +mermaid = "off" +`); + + expect(config.markdown).toEqual({ mermaid: 'off' }); + }); + + it('warns and falls back to final for unknown mermaid values without failing the file', () => { + const warnings: string[] = []; + for (const value of ['stream', 'streaming']) { + warnings.length = 0; + const config = parseTuiConfig( + ` +theme = "dark" + +[markdown] +mermaid = "${value}" +`, + (message) => warnings.push(message), + ); + + expect(config.markdown).toEqual({ mermaid: 'final' }); + expect(config.theme).toBe('dark'); + expect(warnings).toEqual([`[tui.toml] ignoring unknown markdown.mermaid value: ${value}`]); + } + }); + + it('keeps the [markdown] section a commented guide by default', async () => { + await saveTuiConfig(DEFAULT_TUI_CONFIG, filePath); + + const text = readFileSync(filePath, 'utf-8'); + expect(text).toContain('# [markdown]'); + expect(text).toContain('# mermaid = "final"'); + expect(text).not.toContain('\n[markdown]'); + }); + + it('writes a live [markdown] section when mermaid is off and round-trips it', async () => { + await saveTuiConfig({ ...DEFAULT_TUI_CONFIG, markdown: { mermaid: 'off' } }, filePath); + + const text = readFileSync(filePath, 'utf-8'); + expect(text).toContain('\n[markdown]\n'); + expect(text).toContain('mermaid = "off"'); + expect((await loadTuiConfig(filePath)).markdown).toEqual({ mermaid: 'off' }); + }); +}); + +describe('TUI config tui_mode', () => { + it('defaults tui_mode to regular when omitted', () => { + expect(parseTuiConfig(`theme = "dark"`).tuiMode).toBe('regular'); + }); + + it('parses tui_mode = "fullscreen"', () => { + const config = parseTuiConfig(` +tui_mode = "fullscreen" +`); + + expect(config.tuiMode).toBe('fullscreen'); + }); + + it('warns and falls back to regular for unknown tui_mode values without failing the file', () => { + const warnings: string[] = []; + const config = parseTuiConfig( + ` +theme = "dark" +tui_mode = "weird" +`, + (message) => warnings.push(message), + ); + + expect(config.tuiMode).toBe('regular'); + expect(config.theme).toBe('dark'); + expect(warnings).toEqual(['[tui.toml] ignoring unknown tui_mode value: weird']); + }); + + it('writes a live tui_mode key even at the default value', async () => { + await saveTuiConfig(DEFAULT_TUI_CONFIG, filePath); + + const text = readFileSync(filePath, 'utf-8'); + expect(text).toContain('\ntui_mode = "regular"'); + expect(text).not.toContain('# tui_mode'); + }); + + it('writes a live tui_mode when fullscreen and round-trips it', async () => { + await saveTuiConfig({ ...DEFAULT_TUI_CONFIG, tuiMode: 'fullscreen' }, filePath); + + const text = readFileSync(filePath, 'utf-8'); + expect(text).toContain('\ntui_mode = "fullscreen"'); + expect((await loadTuiConfig(filePath)).tuiMode).toBe('fullscreen'); + }); +}); + +describe('TUI config tui_mode env migration', () => { + it('migrates KIMI_CODE_TUI_FULL_SCREEN=1 into tui_mode when the key is absent', async () => { + vi.stubEnv('KIMI_CODE_TUI_FULL_SCREEN', '1'); + writeFileSync(filePath, 'theme = "dark"\n', 'utf-8'); + const warnings: string[] = []; + + const config = await loadTuiConfig(filePath, (message) => warnings.push(message)); + + expect(config.tuiMode).toBe('fullscreen'); + expect(readFileSync(filePath, 'utf-8')).toContain('\ntui_mode = "fullscreen"'); + expect(warnings).toEqual([]); + }); + + it('ignores the env when tui_mode is explicitly regular', async () => { + vi.stubEnv('KIMI_CODE_TUI_FULL_SCREEN', '1'); + writeFileSync(filePath, 'tui_mode = "regular"\n', 'utf-8'); + + const config = await loadTuiConfig(filePath); + + expect(config.tuiMode).toBe('regular'); + expect(readFileSync(filePath, 'utf-8')).toBe('tui_mode = "regular"\n'); + }); + + it('does not migrate over an explicitly set unknown value', async () => { + vi.stubEnv('KIMI_CODE_TUI_FULL_SCREEN', '1'); + writeFileSync(filePath, 'tui_mode = "weird"\n', 'utf-8'); + const warnings: string[] = []; + + const config = await loadTuiConfig(filePath, (message) => warnings.push(message)); + + expect(config.tuiMode).toBe('regular'); + expect(warnings).toEqual(['[tui.toml] ignoring unknown tui_mode value: weird']); + expect(readFileSync(filePath, 'utf-8')).toBe('tui_mode = "weird"\n'); + }); + + it('only honors the exact value 1 like the old gate', async () => { + vi.stubEnv('KIMI_CODE_TUI_FULL_SCREEN', 'true'); + writeFileSync(filePath, 'theme = "dark"\n', 'utf-8'); + + const config = await loadTuiConfig(filePath); + + expect(config.tuiMode).toBe('regular'); + expect(readFileSync(filePath, 'utf-8')).toBe('theme = "dark"\n'); + }); + + it('migrates when the config file does not exist yet', async () => { + vi.stubEnv('KIMI_CODE_TUI_FULL_SCREEN', '1'); + + const config = await loadTuiConfig(filePath); + + expect(config.tuiMode).toBe('fullscreen'); + expect(readFileSync(filePath, 'utf-8')).toContain('\ntui_mode = "fullscreen"'); + }); + + it('does not re-migrate after a regular preference has been saved', async () => { + vi.stubEnv('KIMI_CODE_TUI_FULL_SCREEN', '1'); + await saveTuiConfig({ ...DEFAULT_TUI_CONFIG, tuiMode: 'regular' }, filePath); + + const config = await loadTuiConfig(filePath); + + expect(config.tuiMode).toBe('regular'); + expect(readFileSync(filePath, 'utf-8')).toContain('\ntui_mode = "regular"'); + }); +}); diff --git a/apps/kimi-code/test/tui/controllers/auth-flow.test.ts b/apps/kimi-code/test/tui/controllers/auth-flow.test.ts index aa5bdb4c0..252c564f3 100644 --- a/apps/kimi-code/test/tui/controllers/auth-flow.test.ts +++ b/apps/kimi-code/test/tui/controllers/auth-flow.test.ts @@ -1,9 +1,13 @@ -import { describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi, afterEach } from 'vitest'; import { AuthFlowController, type AuthFlowHost, } from '#/tui/controllers/auth-flow'; +import { + refreshModelSwitchConfirmConfig, + resetModelSwitchConfirmConfigCache, +} from '#/utils/model-switch-confirm-config'; function makeHost( options: { @@ -126,3 +130,112 @@ describe('refreshConfigAfterLogin', () => { expect(lazy.host.harness.createSession).not.toHaveBeenCalled(); }); }); + +describe('refreshConfigAfterLogin with a matching cloud rule', () => { + afterEach(() => { + resetModelSwitchConfirmConfigCache(); + }); + + async function makeGateHost() { + const { host, session, appState } = makeHost({ withSession: true, defaultModel: 'k2' }); + (appState as Record)['streamingPhase'] = 'idle'; + host.harness.getConfig = vi.fn(async () => ({ + defaultModel: 'k2', + models: { + 'old-model': { provider: 'managed:kimi-code', model: 'upstream-old', maxContextSize: 200_000 }, + k2: { provider: 'managed:kimi-code', model: 'upstream-new', maxContextSize: 200_000 }, + }, + providers: {}, + })); + (host as unknown as { state: Record }).state['transcriptEntries'] = [ + { kind: 'user', bullet: 'hi' }, + ]; + const mountEditorReplacement = vi.fn(); + (host as unknown as Record)['mountEditorReplacement'] = mountEditorReplacement; + (host as unknown as Record)['restoreEditor'] = vi.fn(); + (host as unknown as Record)['showStatus'] = vi.fn(); + (host as unknown as Record)['showError'] = vi.fn(); + (host as unknown as Record)['showNotice'] = vi.fn(); + (host as unknown as Record)['track'] = vi.fn(); + await refreshModelSwitchConfirmConfig({ + fetchImpl: vi.fn( + async () => + new Response( + JSON.stringify({ + name: 'model_switch_confirm', + config: { + enable: true, + rules: [{ from: 'upstream-old', to: 'upstream-new' }], + }, + }), + ), + ) as unknown as typeof fetch, + }); + return { host, session, appState, mountEditorReplacement }; + } + + it('gates the activation through the confirmation dialog and skips setModel', async () => { + const { host, session, mountEditorReplacement } = await makeGateHost(); + + const result = await new AuthFlowController(host).refreshConfigAfterLogin(); + + expect(result).toBe('gated'); + expect(session!.setModel).not.toHaveBeenCalled(); + expect(mountEditorReplacement).toHaveBeenCalledTimes(1); + }); + + it('gates an alias introduced by this login that the stale catalog lacks', async () => { + const { host, session, appState, mountEditorReplacement } = await makeGateHost(); + // The pre-refresh catalog knows nothing about k2 — only the freshly loaded + // config introduces it, so the match must run against the new catalog. + (appState as Record)['availableModels'] = { + 'old-model': { model: 'upstream-old', displayName: 'Old' }, + }; + + const result = await new AuthFlowController(host).refreshConfigAfterLogin(); + + expect(result).toBe('gated'); + expect(session!.setModel).not.toHaveBeenCalled(); + expect(mountEditorReplacement).toHaveBeenCalledTimes(1); + }); + + it('forwards the caller picked effort to the gated dialog', async () => { + const { host, session, mountEditorReplacement } = await makeGateHost(); + + const result = await new AuthFlowController(host).refreshConfigAfterLogin('max'); + + expect(result).toBe('gated'); + const dialog = mountEditorReplacement.mock.calls[0]?.[0] as unknown as { + opts: { onSelect: (action: string) => void }; + }; + dialog.opts.onSelect('continue'); + await vi.waitFor(() => expect(session!.setThinking).toHaveBeenCalledWith('max')); + }); +}); + +describe('refreshProviderModels', () => { + it('reloads app-state providers and models even when the engine reports no model change', async () => { + // A config-only registry change (type, baseUrl, …) is persisted by the + // engine while the provider lands in `unchanged` — the TUI must still + // reload, or appState keeps the stale provider record. + const { host } = makeHost(); + const refreshProviderModels = vi.fn(async () => ({ + changed: [], + unchanged: ['custom'], + failed: [], + })); + (host.harness as unknown as { refreshProviderModels: unknown }).refreshProviderModels = + refreshProviderModels; + + const result = await new AuthFlowController(host).refreshProviderModels({ + providerId: 'custom', + }); + + expect(refreshProviderModels).toHaveBeenCalledWith({ providerId: 'custom' }); + expect(result.unchanged).toEqual(['custom']); + expect(host.setAppState).toHaveBeenCalledWith({ + availableModels: expect.anything(), + availableProviders: expect.anything(), + }); + }); +}); diff --git a/apps/kimi-code/test/tui/controllers/cache-hint-controller.test.ts b/apps/kimi-code/test/tui/controllers/cache-hint-controller.test.ts index 0dd315424..3fe453be9 100644 --- a/apps/kimi-code/test/tui/controllers/cache-hint-controller.test.ts +++ b/apps/kimi-code/test/tui/controllers/cache-hint-controller.test.ts @@ -31,6 +31,7 @@ function makeHost( ) { const state = { activeDialog: null as string | null, + editorReplacementMounted: false, appState: { model: 'k2', availableModels: { k2: { model: 'kimi-k2', provider: 'managed:kimi-code' } }, @@ -788,4 +789,24 @@ describe('CacheHintController scenario 1 (resume)', () => { ); vi.restoreAllMocks(); }); + + it('yields to a dialog that already owns the editor and hints on the first idle submit', async () => { + getMock.mockResolvedValue(CONFIG); + peekMock.mockReturnValue(CONFIG); + const session = resumeSession([Date.now() - 1200_000], 150000); + const { host, state } = makeHost({ session }); + state.editorReplacementMounted = true; + const controller = new CacheHintController(host); + + await controller.maybeShowOnResume(); + expect(host.mountEditorReplacement).not.toHaveBeenCalled(); + + state.editorReplacementMounted = false; + expect(controller.maybeInterceptOnSubmit('hello')).toBe(true); + expect(host.mountEditorReplacement).toHaveBeenCalledOnce(); + expect(host.track).toHaveBeenCalledWith( + 'cache_hint_shown', + expect.objectContaining({ scene: 'idle' }), + ); + }); }); diff --git a/apps/kimi-code/test/tui/controllers/editor-keyboard.test.ts b/apps/kimi-code/test/tui/controllers/editor-keyboard.test.ts index e89b48f1b..34e606563 100644 --- a/apps/kimi-code/test/tui/controllers/editor-keyboard.test.ts +++ b/apps/kimi-code/test/tui/controllers/editor-keyboard.test.ts @@ -1,25 +1,28 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; -import { DOUBLE_ESC_WINDOW_MS } from '#/tui/constant/kimi-tui'; +import { CTRL_C_HINT, DOUBLE_ESC_WINDOW_MS } from '#/tui/constant/kimi-tui'; import { EditorKeyboardController, type EditorKeyboardHost, } from '#/tui/controllers/editor-keyboard'; -import type { ImageAttachmentStore } from '#/tui/utils/image-attachment-store'; +import { ImageAttachmentStore } from '#/tui/utils/image-attachment-store'; interface Harness { readonly host: EditorKeyboardHost; readonly editor: Record unknown) | undefined>; + readonly controller: EditorKeyboardController; readonly openUndoSelector: ReturnType; readonly cancelRunningShellCommand: ReturnType; readonly cancelCompaction: ReturnType; readonly btwCancelRunning: ReturnType; readonly btwCloseOrCancel: ReturnType; + readonly footerHint: ReturnType; + readonly stop: ReturnType; readonly survey: { readonly handlePreInput: ReturnType boolean>>; readonly handleSubmit: ReturnType boolean>>; readonly handleEditorChange: ReturnType void>>; - readonly closeSilently: ReturnType void>>; + readonly notifyDisplaced: ReturnType void>>; }; } @@ -35,11 +38,13 @@ function createHarness(options: { streamingPhase?: string; isCompacting?: boolea const cancelCompaction = vi.fn(async () => {}); const btwCancelRunning = vi.fn(() => false); const btwCloseOrCancel = vi.fn(() => false); + const footerHint = vi.fn(); + const stop = vi.fn(); const survey = { handlePreInput: vi.fn<(data: string) => boolean>(() => false), handleSubmit: vi.fn<(text: string) => boolean>(() => false), handleEditorChange: vi.fn<(text: string) => void>(() => {}), - closeSilently: vi.fn<() => void>(() => {}), + notifyDisplaced: vi.fn<() => void>(() => {}), }; const session = { cancel: vi.fn(async () => {}), cancelCompaction }; @@ -52,7 +57,7 @@ function createHarness(options: { streamingPhase?: string; isCompacting?: boolea isCompacting: options.isCompacting ?? false, editorCommand: null, }, - footer: { setTransientHint: vi.fn() }, + footer: { setTransientHint: footerHint }, ui: { requestRender: vi.fn() }, }, session, @@ -66,7 +71,7 @@ function createHarness(options: { streamingPhase?: string; isCompacting?: boolea track: vi.fn(), openExternalEditor: vi.fn(), showError: vi.fn(), - stop: vi.fn(), + stop, } as unknown as EditorKeyboardHost; const controller = new EditorKeyboardController( @@ -78,11 +83,14 @@ function createHarness(options: { streamingPhase?: string; isCompacting?: boolea return { host, editor, + controller, openUndoSelector, cancelRunningShellCommand, cancelCompaction, btwCancelRunning, btwCloseOrCancel, + footerHint, + stop, survey, }; } @@ -237,6 +245,27 @@ describe('EditorKeyboardController btw panel priority', () => { }); }); +describe('EditorKeyboardController disposal', () => { + it('consumes every key after dispose so shutdown feedback is not clobbered', () => { + const { editor, controller, footerHint, stop } = createHarness(); + + pressCtrlC(editor); + expect(footerHint).toHaveBeenCalledWith(CTRL_C_HINT); + + controller.dispose(); + footerHint.mockClear(); + + const onPreInput = editor['onPreInput']; + if (onPreInput === undefined) throw new Error('onPreInput handler not installed'); + expect((onPreInput as (data: string) => boolean)('\u0003')).toBe(true); + expect((onPreInput as (data: string) => boolean)('\u001B')).toBe(true); + expect((onPreInput as (data: string) => boolean)('a')).toBe(true); + + expect(stop).not.toHaveBeenCalled(); + expect(footerHint).not.toHaveBeenCalled(); + }); +}); + describe('EditorKeyboardController shell history recall', () => { type Recall = (entry: string, direction: 1 | -1) => string | undefined; type Mock = ReturnType; @@ -476,20 +505,15 @@ describe('EditorKeyboardController Shift-Tab plan toggle', () => { }); }); -/** - * Ctrl-S steering of the TUI queue: plain-text items steer as messages, - * slash-skill items fire as real activations into the running turn (never as - * literal text), grouped inline-skill submissions stay queued for the drain - * path, bash items stay queued — all in queue order. - */ describe('EditorKeyboardController Ctrl-S steering', () => { function createCtrlSHarness(options: { editorText: string; queued: Array>; skillCommandMap?: Map; + pluginCommandMap?: Map; + steering?: boolean; }) { - const steerMessage = vi.fn(); - const steerSkillActivation = vi.fn(); + const steerQueuedMessagesIntoRunningTurn = vi.fn(); const updateQueueDisplay = vi.fn(); const setText = vi.fn(); const editor: Record unknown) | undefined> = { @@ -510,8 +534,9 @@ describe('EditorKeyboardController Ctrl-S steering', () => { }, session: { id: 's1' }, skillCommandMap: options.skillCommandMap ?? new Map(), - steerMessage, - steerSkillActivation, + pluginCommandMap: options.pluginCommandMap ?? new Map(), + steerQueuedMessagesIntoRunningTurn, + isSteeringQueuedMessages: vi.fn(() => options.steering ?? false), updateQueueDisplay, validateMediaCapabilities: vi.fn(() => true), showError: vi.fn(), @@ -521,10 +546,7 @@ describe('EditorKeyboardController Ctrl-S steering', () => { closeOrCancel: vi.fn(() => false), }, } as unknown as EditorKeyboardHost; - const controller = new EditorKeyboardController( - host, - undefined as unknown as ImageAttachmentStore, - ); + const controller = new EditorKeyboardController(host, new ImageAttachmentStore()); controller.install(); const onCtrlS = editor['onCtrlS']; if (onCtrlS === undefined) throw new Error('onCtrlS handler not installed'); @@ -532,130 +554,87 @@ describe('EditorKeyboardController Ctrl-S steering', () => { host, editor, setText, - steerMessage, - steerSkillActivation, + steerQueuedMessagesIntoRunningTurn, updateQueueDisplay, onCtrlS: onCtrlS as () => void, }; } - it('steers text as a message, skill items as activations, and keeps bash queued', () => { - const { host, steerMessage, steerSkillActivation, updateQueueDisplay, onCtrlS } = - createCtrlSHarness({ - editorText: '', - queued: [ - { text: 'queued text', agentId: 'main' }, - { - text: '/tower status', - agentId: 'main', - mode: 'skill', - skillName: 'tower', - skillArgs: 'status', - }, - { text: '!ls', agentId: 'main', mode: 'bash' }, - ], - }); - - onCtrlS(); - - expect(steerMessage).toHaveBeenCalledWith(host.session, [ - { text: 'queued text', parts: undefined, imageAttachmentIds: undefined }, - ]); - expect(steerSkillActivation).toHaveBeenCalledWith(host.session, 'tower', 'status'); - expect(host.state.queuedMessages).toEqual([{ text: '!ls', agentId: 'main', mode: 'bash' }]); - expect(updateQueueDisplay).toHaveBeenCalled(); - }); - - it('steers plain queued messages but keeps grouped inline-skill submissions queued', () => { - const { host, steerMessage, updateQueueDisplay, onCtrlS } = createCtrlSHarness({ - editorText: '', - queued: [ - { text: 'plain note', agentId: 'main' }, - { - text: 'check /skill:review', - agentId: 'main', - inlineSkillActivations: [{ skillName: 'review' }], - }, - ], - }); - - onCtrlS(); - - expect(steerMessage).toHaveBeenCalledWith(host.session, [ - { text: 'plain note', parts: undefined, imageAttachmentIds: undefined }, - ]); - expect(host.state.queuedMessages).toEqual([ - { - text: 'check /skill:review', - agentId: 'main', - inlineSkillActivations: [{ skillName: 'review' }], - }, - ]); - expect(updateQueueDisplay).toHaveBeenCalled(); - }); - - it('stops steering at the first bundle so later messages keep FIFO order', () => { - const { host, steerMessage, onCtrlS } = createCtrlSHarness({ - editorText: '', - queued: [ - { text: 'earlier note', agentId: 'main' }, - { - text: 'check /skill:review', - agentId: 'main', - inlineSkillActivations: [{ skillName: 'review' }], - }, - { text: 'later note', agentId: 'main' }, - ], - }); - - onCtrlS(); - - expect(steerMessage).toHaveBeenCalledWith(host.session, [ - { text: 'earlier note', parts: undefined, imageAttachmentIds: undefined }, - ]); - expect(host.state.queuedMessages).toEqual([ + it('leaves queued inputs owned by the coordinator until dispatch succeeds', () => { + const queued = [ + { text: 'earlier note', agentId: 'main' }, { text: 'check /skill:review', agentId: 'main', inlineSkillActivations: [{ skillName: 'review' }], }, { text: 'later note', agentId: 'main' }, - ]); + { text: '!ls', agentId: 'main', mode: 'bash' }, + ]; + const { host, steerQueuedMessagesIntoRunningTurn, updateQueueDisplay, onCtrlS } = + createCtrlSHarness({ editorText: '', queued }); + + onCtrlS(); + + expect(steerQueuedMessagesIntoRunningTurn).toHaveBeenCalledWith(true); + expect(host.state.queuedMessages).toEqual(queued); + expect(updateQueueDisplay).toHaveBeenCalled(); }); - it('steers nothing when a bundle leads the queue', () => { - const { host, steerMessage, onCtrlS } = createCtrlSHarness({ - editorText: '', - queued: [ - { - text: 'check /skill:review', - agentId: 'main', - inlineSkillActivations: [{ skillName: 'review' }], - }, - { text: 'later note', agentId: 'main' }, - ], + it('ignores Ctrl-S while a queue steer is still in flight', () => { + const queued = [ + { text: 'already steering', agentId: 'main' }, + { text: 'later text', agentId: 'main' }, + ]; + const { host, setText, steerQueuedMessagesIntoRunningTurn, onCtrlS } = createCtrlSHarness({ + editorText: 'draft', + queued, + steering: true, }); onCtrlS(); - expect(steerMessage).not.toHaveBeenCalled(); - expect(host.state.queuedMessages).toHaveLength(2); + expect(steerQueuedMessagesIntoRunningTurn).not.toHaveBeenCalled(); + expect(setText).not.toHaveBeenCalled(); + expect(host.state.queuedMessages).toEqual(queued); }); - it('leaves an editor draft with inline skill tokens in the editor for the grouped path', () => { - const { host, setText, steerMessage, onCtrlS } = createCtrlSHarness({ - editorText: 'check /skill:review', - queued: [{ text: 'plain note', agentId: 'main' }], + it('includes the draft after a leading grouped skill input', () => { + const queued = { + text: 'check /skill:review', + agentId: 'main', + inlineSkillActivations: [{ skillName: 'review' }], + }; + const { host, setText, steerQueuedMessagesIntoRunningTurn, onCtrlS } = createCtrlSHarness({ + editorText: 'later note', + queued: [queued], + }); + + onCtrlS(); + + expect(steerQueuedMessagesIntoRunningTurn).toHaveBeenCalledWith(true); + expect(host.state.queuedMessages).toEqual([queued, { text: 'later note' }]); + expect(setText).toHaveBeenCalledWith(''); + }); + + it.each([ + ['/skill:review src/app.ts', [{ skillName: 'review', args: 'src/app.ts' }]], + ['check /skill:review', [{ skillName: 'review' }]], + ['/skill:review check /skill:review', [{ skillName: 'review' }]], + ])('parses skill draft %s before asking the coordinator to steer', (text, activations) => { + const { host, setText, steerQueuedMessagesIntoRunningTurn, onCtrlS } = createCtrlSHarness({ + editorText: text, + queued: [], skillCommandMap: new Map([['skill:review', 'review']]), }); onCtrlS(); - expect(steerMessage).toHaveBeenCalledWith(host.session, [ - { text: 'plain note', parts: undefined, imageAttachmentIds: undefined }, + expect(steerQueuedMessagesIntoRunningTurn).toHaveBeenCalledWith(true); + expect(host.state.queuedMessages).toEqual([ + { text, inlineSkillActivations: activations }, ]); - expect(setText).not.toHaveBeenCalled(); - expect(host.state.queuedMessages).toEqual([]); + expect(setText).toHaveBeenCalledWith(''); }); }); @@ -728,7 +707,7 @@ describe('EditorKeyboardController survey wiring', () => { expect(host.handleUserInput).toHaveBeenCalledWith('hello'); }); - it('closes the survey silently when the external editor opens', () => { + it('displaces the survey when the external editor opens', () => { vi.stubEnv('VISUAL', ''); vi.stubEnv('EDITOR', ''); try { @@ -737,7 +716,7 @@ describe('EditorKeyboardController survey wiring', () => { onOpenExternalEditor(); - expect(survey.closeSilently).toHaveBeenCalled(); + expect(survey.notifyDisplaced).toHaveBeenCalled(); } finally { vi.unstubAllEnvs(); } diff --git a/apps/kimi-code/test/tui/controllers/notify.test.ts b/apps/kimi-code/test/tui/controllers/notify.test.ts index 32515fef3..2a00a8e1b 100644 --- a/apps/kimi-code/test/tui/controllers/notify.test.ts +++ b/apps/kimi-code/test/tui/controllers/notify.test.ts @@ -144,6 +144,27 @@ describe('NotifyController', () => { expect(h.notifyPanelContainer.children).toEqual([h.notifyPanel]); }); + it('carries the update title to the panel entry and ignores a blank one', () => { + const h = makeHarness(); + h.emit('tool.call.started', { + toolCallId: 'titled', + name: 'NotifyUser', + args: { title: ' Root cause found ', message: 'Two refreshes reuse one token.' }, + }); + h.emit('tool.result', { toolCallId: 'titled', output: 'Update shown to the user.' }); + h.emit('tool.call.started', { + toolCallId: 'blank', + name: 'NotifyUser', + args: { title: ' ', message: 'Untitled detail.' }, + }); + h.emit('tool.result', { toolCallId: 'blank', output: 'Update shown to the user.' }); + + expect(h.notifyPanel.getEntries().map(({ title, text }) => ({ title, text }))).toEqual([ + { title: 'Root cause found', text: 'Two refreshes reuse one token.' }, + { title: undefined, text: 'Untitled detail.' }, + ]); + }); + it.each([ { output: 'Permission denied', isError: true }, { output: 'Update shown to the user.', synthetic: true }, diff --git a/apps/kimi-code/test/tui/controllers/session-event-handler-background-task.test.ts b/apps/kimi-code/test/tui/controllers/session-event-handler-background-task.test.ts index edc13ea1f..9c648406f 100644 --- a/apps/kimi-code/test/tui/controllers/session-event-handler-background-task.test.ts +++ b/apps/kimi-code/test/tui/controllers/session-event-handler-background-task.test.ts @@ -18,6 +18,7 @@ function makeStreamingUIStub() { applyBackgroundTaskTerminalStatus: vi.fn(), markSubagentBackgrounded: vi.fn(), setTurnId: vi.fn(), + setStep: vi.fn(), flushNow: vi.fn(), setTodoList: vi.fn(), resetToolUi: vi.fn(), @@ -29,6 +30,7 @@ function makeStreamingUIStub() { function makeSubagentHandler() { const backgroundTasks = new Map(); + const transcriptedTerminal = new Set(); const host = { state: { appState: { availableModels: {} }, @@ -42,10 +44,11 @@ function makeSubagentHandler() { }; const handler = new SubAgentEventHandler(host as never, { backgroundTasks, - backgroundTaskTranscriptedTerminal: new Set(), + backgroundTaskTranscriptedTerminal: transcriptedTerminal, + backgroundTaskTerminalEntries: new Map(), syncBackgroundAgentBadge: vi.fn(), }); - return { handler, backgroundTasks }; + return { handler, backgroundTasks, host, transcriptedTerminal }; } function spawnEvent(subagentId: string, runInBackground: boolean): SubagentLifecycleEvent { @@ -72,6 +75,76 @@ function completedEvent(subagentId: string): SubagentLifecycleEvent { } as unknown as SubagentLifecycleEvent; } +function cancelledEvent(subagentId: string): SubagentLifecycleEvent { + return { + sessionId: 's1', + agentId: 'main', + type: 'subagent.cancelled', + subagentId, + parentToolCallId: `tc-${subagentId}`, + } as unknown as SubagentLifecycleEvent; +} + +describe('SubAgentEventHandler — background agent cancelled transcript', () => { + function agentTask(subagentId: string) { + return { + taskId: `task-${subagentId}`, + kind: 'agent', + agentId: subagentId, + description: `task ${subagentId}`, + status: 'running', + startedAt: 0, + } as never; + } + + it('appends a stopped transcript entry when a background agent is cancelled', () => { + const { handler, backgroundTasks, host, transcriptedTerminal } = makeSubagentHandler(); + backgroundTasks.set('task-a1', agentTask('a1')); + handler.handleLifecycleEvent(spawnEvent('a1', true)); + (host.appendTranscriptEntry as ReturnType).mockClear(); + + handler.handleLifecycleEvent(cancelledEvent('a1')); + + const appended = (host.appendTranscriptEntry as ReturnType).mock.calls.map( + ([entry]) => entry as { content: string }, + ); + expect(appended).toHaveLength(1); + expect(appended[0]!.content).toContain('stopped'); + expect(transcriptedTerminal.has('task-a1')).toBe(true); + expect(handler.backgroundAgentMetadata.has('a1')).toBe(false); + expect(host.streamingUI.applyBackgroundTaskTerminalStatus).toHaveBeenCalledWith({ + agentId: 'a1', + description: 'task a1', + status: 'killed', + }); + }); + + it('does not append a second entry when the task was already transcripted', () => { + const { handler, backgroundTasks, host, transcriptedTerminal } = makeSubagentHandler(); + backgroundTasks.set('task-a1', agentTask('a1')); + transcriptedTerminal.add('task-a1'); + handler.handleLifecycleEvent(spawnEvent('a1', true)); + (host.appendTranscriptEntry as ReturnType).mockClear(); + + handler.handleLifecycleEvent(cancelledEvent('a1')); + + expect(host.appendTranscriptEntry).not.toHaveBeenCalled(); + expect(handler.backgroundAgentMetadata.has('a1')).toBe(false); + }); + + it('delivers a terminal status to a non-swarm foreground tool card when a subagent is cancelled', () => { + const { handler, host } = makeSubagentHandler(); + const tc = { onSubagentSpawned: vi.fn(), onSubagentFailed: vi.fn() }; + (host.streamingUI.getToolComponent as ReturnType).mockReturnValue(tc); + handler.handleLifecycleEvent(spawnEvent('a1', false)); + + handler.handleLifecycleEvent(cancelledEvent('a1')); + + expect(tc.onSubagentFailed).toHaveBeenCalledWith({ error: 'Aborted by the user' }); + expect(host.streamingUI.removeToolComponentIfInactive).toHaveBeenCalledWith('tc-a1'); + }); +}); + describe('SubAgentEventHandler — activity record pruning', () => { it('drops the record of a foreground-only subagent at terminal state', () => { const { handler } = makeSubagentHandler(); @@ -111,6 +184,7 @@ describe('SubAgentEventHandler — activity record pruning', () => { }); function makeSessionEventHost() { + const transcriptEntries: unknown[] = []; const host = { state: { appState: { @@ -125,6 +199,7 @@ function makeSessionEventHost() { toolOutputExpanded: false, todoPanel: { getTodos: vi.fn(() => []) }, transcriptContainer: { addChild: vi.fn() }, + transcriptEntries, tasksBrowser: undefined, footer: { setBackgroundCounts: vi.fn() }, ui: { requestRender: vi.fn() }, @@ -142,17 +217,24 @@ function makeSessionEventHost() { showNotice: vi.fn(), track: vi.fn(), recordSessionActivity: vi.fn(), + updateActivityPane: vi.fn(), noteStepUsage: vi.fn(), noteCompactionFinished: vi.fn(), mountEditorReplacement: vi.fn(), restoreEditor: vi.fn(), restoreInputText: vi.fn(), - appendTranscriptEntry: vi.fn(), + appendTranscriptEntry: vi.fn((entry: unknown) => { + // Mirror the real host: appended entries are retrievable from the + // transcript window (the anchor scans it for orphaned agent cards). + transcriptEntries.push(entry); + }), + moveTranscriptEntryToEnd: vi.fn(() => true), sendNormalUserInput: vi.fn(), sendQueuedMessage: vi.fn(), shiftQueuedMessage: vi.fn(), btwPanelController: { routeEvent: vi.fn(() => false) }, tasksBrowserController: { repaint: vi.fn(), refreshOutputViewer: vi.fn() }, + surveyController: { notifySubagentSpawned: vi.fn() }, }; return host as never; } @@ -220,3 +302,348 @@ describe('SessionEventHandler — background.task.terminated', () => { expect(store.get('agent-7')).toBeUndefined(); }); }); + +describe('SessionEventHandler — task-notification turn anchoring', () => { + interface SessionHostMocks { + appendTranscriptEntry: ReturnType; + moveTranscriptEntryToEnd: ReturnType; + } + + function makeHost() { + // makeSessionEventHost returns `never`; recover the mock surface for assertions. + return makeSessionEventHost() as SessionHostMocks & + ConstructorParameters[0]; + } + + function taskTerminatedEvent(taskId: string, kind: 'agent' | 'process', status: string): Event { + return { + sessionId: 's1', + agentId: 'main', + type: 'background.task.terminated', + info: { + taskId, + kind, + agentId: kind === 'agent' ? `${taskId}-agent` : undefined, + description: `task ${taskId}`, + status, + startedAt: 0, + endedAt: 1, + }, + } as unknown as Event; + } + + function taskNotificationTurnEvent(taskId: string, status: string): Event { + return { + sessionId: 's1', + agentId: 'main', + type: 'turn.started', + turnId: 2, + origin: { kind: 'task', taskId, status }, + } as unknown as Event; + } + + function appendedEntries(host: SessionHostMocks) { + return host.appendTranscriptEntry.mock.calls.map( + ([entry]) => entry as { content: string; backgroundAgentStatus?: { phase: string } }, + ); + } + + it('mounts no transcript card when an agent-kind task terminates', () => { + const host = makeHost(); + const handler = new SessionEventHandler(host); + + handler.handleEvent(taskTerminatedEvent('task-a1', 'agent', 'completed'), vi.fn()); + + // Agent terminal cards are owned by the subagent lifecycle path — the + // task event itself only records the terminal state. + expect(host.appendTranscriptEntry).not.toHaveBeenCalled(); + expect(handler.backgroundTaskTranscriptedTerminal.has('task-a1')).toBe(true); + }); + + it('moves the mounted terminal card to the notification turn instead of mounting a new one', () => { + const host = makeHost(); + const handler = new SessionEventHandler(host); + + handler.handleEvent(taskTerminatedEvent('task-p1', 'process', 'completed'), vi.fn()); + expect(appendedEntries(host)).toHaveLength(1); + + handler.handleEvent(taskNotificationTurnEvent('task-p1', 'completed'), vi.fn()); + + expect(host.moveTranscriptEntryToEnd).toHaveBeenCalledWith(appendedEntries(host)[0]); + expect(appendedEntries(host)).toHaveLength(1); + }); + + it('mounts a terminal card at the notification turn start when the agent left none', () => { + const host = makeHost(); + const handler = new SessionEventHandler(host); + + // A timed-out agent that emitted no subagent lifecycle event has no + // terminal card to anchor — agent-kind terminations mount none. + handler.handleEvent(taskTerminatedEvent('task-a2', 'agent', 'timed_out'), vi.fn()); + expect(host.appendTranscriptEntry).not.toHaveBeenCalled(); + + handler.handleEvent(taskNotificationTurnEvent('task-a2', 'timed_out'), vi.fn()); + + const appended = appendedEntries(host); + expect(appended).toHaveLength(1); + expect(appended[0]!.backgroundAgentStatus?.phase).toBe('failed'); + expect(host.moveTranscriptEntryToEnd).not.toHaveBeenCalled(); + }); + + it('anchors the only terminal card when completion lands before the task syncs', () => { + const host = makeHost(); + const handler = new SessionEventHandler(host); + + // Spawn-time background agent: the spawn event carries the task id. + handler.handleEvent( + { + sessionId: 's1', + agentId: 'main', + type: 'subagent.spawned', + subagentId: 'agent-1', + subagentName: 'explore', + parentToolCallId: 'tc-agent-1', + description: 'task agent-1', + runInBackground: true, + taskId: 'task-agent-1', + } as unknown as Event, + vi.fn(), + ); + // Completion lands before background.task.started syncs the task table. + handler.handleEvent( + { + sessionId: 's1', + agentId: 'main', + type: 'subagent.completed', + subagentId: 'agent-1', + resultSummary: 'done', + } as unknown as Event, + vi.fn(), + ); + handler.handleEvent( + { + sessionId: 's1', + agentId: 'main', + type: 'background.task.started', + info: { + taskId: 'task-agent-1', + kind: 'agent', + agentId: 'agent-1', + description: 'task agent-1', + status: 'running', + startedAt: 0, + }, + } as unknown as Event, + vi.fn(), + ); + + const terminalCards = (): unknown[] => + host.appendTranscriptEntry.mock.calls + .map(([entry]) => entry) + .filter( + (entry) => + (entry as { backgroundAgentStatus?: { phase: string } }).backgroundAgentStatus + ?.phase === 'completed', + ); + expect(terminalCards()).toHaveLength(1); + + handler.handleEvent(taskNotificationTurnEvent('task-agent-1', 'completed'), vi.fn()); + + // The notification turn moves the mounted card to the turn start instead + // of mounting a second one. + expect(host.moveTranscriptEntryToEnd).toHaveBeenCalledWith(terminalCards()[0]); + expect(terminalCards()).toHaveLength(1); + }); + + it('anchors the orphaned terminal card of an agent that finished before its task registered', () => { + const host = makeHost(); + const handler = new SessionEventHandler(host); + + // Tower-style spawn: the spawn event carries no task id — the task is + // registered only after launch() returns, and the worker can finish + // before that. + handler.handleEvent( + { + sessionId: 's1', + agentId: 'main', + type: 'subagent.spawned', + subagentId: 'agent-t1', + subagentName: 'explore', + parentToolCallId: 'tc-agent-t1', + description: 'task agent-t1', + runInBackground: true, + } as unknown as Event, + vi.fn(), + ); + // The worker terminates before background.task.started syncs the task: + // its terminal card mounts with no task id to register under. + handler.handleEvent( + { + sessionId: 's1', + agentId: 'main', + type: 'subagent.completed', + subagentId: 'agent-t1', + resultSummary: 'done', + } as unknown as Event, + vi.fn(), + ); + handler.handleEvent( + { + sessionId: 's1', + agentId: 'main', + type: 'background.task.started', + info: { + taskId: 'task-agent-t1', + kind: 'agent', + agentId: 'agent-t1', + description: 'task agent-t1', + status: 'running', + startedAt: 0, + }, + } as unknown as Event, + vi.fn(), + ); + handler.handleEvent( + { + sessionId: 's1', + agentId: 'main', + type: 'background.task.terminated', + info: { + taskId: 'task-agent-t1', + kind: 'agent', + agentId: 'agent-t1', + description: 'task agent-t1', + status: 'completed', + startedAt: 0, + endedAt: 1, + }, + } as unknown as Event, + vi.fn(), + ); + + const terminalCards = (): unknown[] => + host.appendTranscriptEntry.mock.calls + .map(([entry]) => entry) + .filter( + (entry) => + (entry as { backgroundAgentStatus?: { phase: string } }).backgroundAgentStatus + ?.phase === 'completed', + ); + expect(terminalCards()).toHaveLength(1); + + handler.handleEvent(taskNotificationTurnEvent('task-agent-t1', 'completed'), vi.fn()); + + // The notification turn reuses the orphaned card — no duplicate mounts. + expect(host.moveTranscriptEntryToEnd).toHaveBeenCalledWith(terminalCards()[0]); + expect(terminalCards()).toHaveLength(1); + expect(host.appendTranscriptEntry).toHaveBeenCalledTimes(2); + }); + + it('does not steal a previous run’s card when a resumed agent shares its agentId', () => { + const host = makeHost(); + const handler = new SessionEventHandler(host); + + // First run: the background agent completes and its terminal card is + // registered under its own task id. + handler.handleEvent( + { + sessionId: 's1', + agentId: 'main', + type: 'subagent.spawned', + subagentId: 'agent-r1', + subagentName: 'explore', + parentToolCallId: 'tc-agent-r1', + description: 'task agent-r1', + runInBackground: true, + taskId: 'task-r1', + } as unknown as Event, + vi.fn(), + ); + handler.handleEvent( + { + sessionId: 's1', + agentId: 'main', + type: 'background.task.started', + info: { + taskId: 'task-r1', + kind: 'agent', + agentId: 'agent-r1', + description: 'task agent-r1', + status: 'running', + startedAt: 0, + }, + } as unknown as Event, + vi.fn(), + ); + handler.handleEvent( + { + sessionId: 's1', + agentId: 'main', + type: 'subagent.completed', + subagentId: 'agent-r1', + resultSummary: 'done', + } as unknown as Event, + vi.fn(), + ); + + const terminalEntries = () => + ( + handler as unknown as { + backgroundTaskTerminalEntries: Map; + } + ).backgroundTaskTerminalEntries; + const firstRunCard = appendedEntries(host).find( + (entry) => entry.backgroundAgentStatus?.phase === 'completed', + ); + expect(firstRunCard).toBeDefined(); + expect(terminalEntries().get('task-r1')).toBe(firstRunCard); + + // The agent is resumed in the background: the new task shares the + // agentId, then times out without mounting a card of its own. + handler.handleEvent( + { + sessionId: 's1', + agentId: 'main', + type: 'background.task.started', + info: { + taskId: 'task-r2', + kind: 'agent', + agentId: 'agent-r1', + description: 'task agent-r1 (resumed)', + status: 'running', + startedAt: 1, + }, + } as unknown as Event, + vi.fn(), + ); + handler.handleEvent( + { + sessionId: 's1', + agentId: 'main', + type: 'background.task.terminated', + info: { + taskId: 'task-r2', + kind: 'agent', + agentId: 'agent-r1', + description: 'task agent-r1 (resumed)', + status: 'timed_out', + startedAt: 1, + endedAt: 2, + }, + } as unknown as Event, + vi.fn(), + ); + + handler.handleEvent(taskNotificationTurnEvent('task-r2', 'timed_out'), vi.fn()); + + // The anchor must leave the first run's card registered and in place, + // and mount the resumed task's own terminal card instead. + expect(host.moveTranscriptEntryToEnd).not.toHaveBeenCalledWith(firstRunCard); + expect(terminalEntries().get('task-r1')).toBe(firstRunCard); + const appended = appendedEntries(host); + const resumedCard = appended.at(-1)!; + expect(resumedCard).not.toBe(firstRunCard); + expect(resumedCard.backgroundAgentStatus?.phase).toBe('failed'); + expect(terminalEntries().get('task-r2')).toBe(resumedCard); + }); +}); diff --git a/apps/kimi-code/test/tui/controllers/session-event-handler-plugin-updates.test.ts b/apps/kimi-code/test/tui/controllers/session-event-handler-plugin-updates.test.ts index 7d55a6e24..da35f63b2 100644 --- a/apps/kimi-code/test/tui/controllers/session-event-handler-plugin-updates.test.ts +++ b/apps/kimi-code/test/tui/controllers/session-event-handler-plugin-updates.test.ts @@ -61,7 +61,11 @@ function makeHost() { shiftQueuedMessage: vi.fn(), btwPanelController: { routeEvent: vi.fn(() => false) }, tasksBrowserController: {}, - surveyController: { notifyToolCallStarted: vi.fn() }, + surveyController: { + notifyToolCallStarted: vi.fn(), + notifyToolCallEnded: vi.fn(), + notifySubagentSpawned: vi.fn(), + }, }; return { host: host as never, streamingUI }; } diff --git a/apps/kimi-code/test/tui/controllers/session-event-handler-step-retry.test.ts b/apps/kimi-code/test/tui/controllers/session-event-handler-step-retry.test.ts index 8ca1e1248..c4e292bb5 100644 --- a/apps/kimi-code/test/tui/controllers/session-event-handler-step-retry.test.ts +++ b/apps/kimi-code/test/tui/controllers/session-event-handler-step-retry.test.ts @@ -58,6 +58,11 @@ function makeHost() { shiftQueuedMessage: vi.fn(), btwPanelController: { routeEvent: vi.fn(() => false) }, tasksBrowserController: {}, + surveyController: { + notifyToolCallStarted: vi.fn(), + notifyToolCallEnded: vi.fn(), + notifySubagentSpawned: vi.fn(), + }, }; return { host: host as any }; } diff --git a/apps/kimi-code/test/tui/controllers/session-event-handler-todo.test.ts b/apps/kimi-code/test/tui/controllers/session-event-handler-todo.test.ts index 331c1bf8d..c27c38d82 100644 --- a/apps/kimi-code/test/tui/controllers/session-event-handler-todo.test.ts +++ b/apps/kimi-code/test/tui/controllers/session-event-handler-todo.test.ts @@ -33,7 +33,11 @@ function makeHarness() { patchLivePane: vi.fn(), setAppState: vi.fn(), btwPanelController: { routeEvent: vi.fn(() => false) }, - surveyController: { notifyToolCallStarted: vi.fn() }, + surveyController: { + notifyToolCallStarted: vi.fn(), + notifyToolCallEnded: vi.fn(), + notifySubagentSpawned: vi.fn(), + }, updateActivityPane: vi.fn(), showStatus: vi.fn(), }; diff --git a/apps/kimi-code/test/tui/controllers/staging-leases.test.ts b/apps/kimi-code/test/tui/controllers/staging-leases.test.ts index 6463df90d..673a6f8fa 100644 --- a/apps/kimi-code/test/tui/controllers/staging-leases.test.ts +++ b/apps/kimi-code/test/tui/controllers/staging-leases.test.ts @@ -58,6 +58,27 @@ describe('StagingLeaseTracker', () => { }); describe('turn claiming', () => { + it('keeps main and BTW leases separate when their turn ids match', async () => { + const { tracker, deleted, warn } = makeTracker(); + const main = tracker.create([1], [], 'user'); + const btw = tracker.create([2], [], 'user', undefined, 'agent-btw'); + tracker.handleTurnStarted(turnStarted(1, 'user')); + expect(main?.turnId).toBe('1'); + expect(btw?.turnId).toBeUndefined(); + tracker.handleTurnStarted(turnStarted(1, 'user'), 'agent-btw'); + expect(btw?.turnId).toBe('1'); + expect(warn).not.toHaveBeenCalled(); + tracker.handleTurnEnded(turnEnded(1)); + await tracker.drain(); + expect(deleted.fileIds).toEqual(['file-1']); + tracker.handleTurnEnded(turnEnded(1), 'agent-btw'); + await tracker.drain(); + expect(deleted.fileIds).toEqual(['file-1', 'file-2']); + tracker.releaseAll(); + await tracker.drain(); + expect(deleted.fileIds).toEqual(['file-1', 'file-2']); + }); + it('claims the earliest unbound lease of the matching origin', () => { const { tracker } = makeTracker(); const first = tracker.create([], ['/cache/a'], 'user'); @@ -338,6 +359,66 @@ describe('StagingLeaseTracker', () => { }); }); + describe('trackDispatch across turn end', () => { + const origin: StagingLeaseOrigin = 'user'; + + function pending(): { promise: Promise; resolve: () => void; reject: (error: Error) => void } { + let resolve!: () => void; + let reject!: (error: Error) => void; + const promise = new Promise((res, rej) => { + resolve = res; + reject = rej; + }); + return { promise, resolve, reject }; + } + + it('holds an in-flight lease past turn end and releases it once the dispatch succeeds', async () => { + const { tracker, deleted } = makeTracker(); + const lease = tracker.create([1], ['/cache/a'], origin); + tracker.bindToTurn(lease, '7'); + const request = pending(); + + tracker.trackDispatch(lease, request.promise, vi.fn()); + tracker.handleTurnEnded(turnEnded(7)); + expect(deleted.fileIds).toEqual([]); + + request.resolve(); + await tracker.drain(); + expect(deleted.fileIds).toEqual(['file-1']); + expect(deleted.paths).toEqual([]); + }); + + it('keeps media a failed in-flight dispatch hands back after its turn ended', async () => { + const { tracker, deleted } = makeTracker(); + const lease = tracker.create([1], ['/cache/a'], origin); + tracker.bindToTurn(lease, '7'); + const request = pending(); + + tracker.trackDispatch(lease, request.promise, () => tracker.defer(lease)); + tracker.handleTurnEnded(turnEnded(7)); + request.reject(new Error('boom')); + await tracker.drain(); + + expect(deleted.fileIds).toEqual([]); + expect(deleted.paths).toEqual([]); + }); + + it('deletes media of a failed in-flight dispatch nobody reclaims after its turn ended', async () => { + const { tracker, deleted } = makeTracker(); + const lease = tracker.create([1], ['/cache/a'], origin); + tracker.bindToTurn(lease, '7'); + const request = pending(); + + tracker.trackDispatch(lease, request.promise, vi.fn()); + tracker.handleTurnEnded(turnEnded(7)); + request.reject(new Error('boom')); + await tracker.drain(); + + expect(deleted.fileIds).toEqual(['file-1']); + expect(deleted.paths).toEqual(['/cache/a']); + }); + }); + describe('track/drain', () => { it('drain awaits in-flight cleanups and track swallows rejections', async () => { const { tracker } = makeTracker(); diff --git a/apps/kimi-code/test/tui/controllers/subagent-event-handler.test.ts b/apps/kimi-code/test/tui/controllers/subagent-event-handler.test.ts new file mode 100644 index 000000000..3f9099f6c --- /dev/null +++ b/apps/kimi-code/test/tui/controllers/subagent-event-handler.test.ts @@ -0,0 +1,184 @@ +import type { Event } from '@moonshot-ai/kimi-code-sdk'; +import { afterEach, describe, expect, it, vi } from 'vitest'; + +import type { AgentSwarmProgressComponent } from '#/tui/components/messages/agent-swarm-progress'; +import { + SubAgentEventHandler, + type SubagentLifecycleEvent, +} from '#/tui/controllers/subagent-event-handler'; + +function makeSwarmHandler() { + const requestRender = vi.fn(); + const transcriptContainer = { addChild: vi.fn() }; + const dockChild = { render: vi.fn(() => ['dock line']) }; + const host = { + state: { + appState: { availableModels: {} }, + ui: { + requestRender, + terminal: { rows: 40, columns: 120 }, + children: [transcriptContainer, dockChild], + }, + transcriptContainer, + dockContainer: undefined, + }, + streamingUI: { + getToolComponent: vi.fn(() => undefined), + getActiveToolCall: vi.fn(() => undefined), + onToolCallStart: vi.fn(), + getTurnContext: vi.fn(() => ({ turnId: 1, step: 0 })), + removeToolComponentIfInactive: vi.fn(), + finalizeLiveTextBuffers: vi.fn(), + }, + appendTranscriptEntry: vi.fn(), + btwPanelController: { routeEvent: vi.fn(() => false) }, + updateActivityPane: vi.fn(), + }; + const handler = new SubAgentEventHandler(host as never, { + backgroundTasks: new Map(), + backgroundTaskTranscriptedTerminal: new Set(), + backgroundTaskTerminalEntries: new Map(), + syncBackgroundAgentBadge: vi.fn(), + }); + return { handler, host, requestRender, transcriptContainer, dockChild }; +} + +function swarmComponentOf(transcriptContainer: { addChild: ReturnType }) { + return transcriptContainer.addChild.mock.calls[0]?.[0] as AgentSwarmProgressComponent; +} + +function lifecycleEvent( + type: 'subagent.spawned' | 'subagent.started' | 'subagent.completed' | 'subagent.cancelled', + subagentId: string, + parentToolCallId: string, +): SubagentLifecycleEvent { + return { + sessionId: 's1', + agentId: 'main', + type, + subagentId, + subagentName: 'explore', + parentToolCallId, + description: `task ${subagentId}`, + runInBackground: false, + resultSummary: type === 'subagent.completed' ? 'done' : undefined, + } as unknown as SubagentLifecycleEvent; +} + +function childEvent(type: 'assistant.delta' | 'tool.call.started', subagentId: string): Event { + return { + sessionId: 's1', + agentId: subagentId, + type, + delta: type === 'assistant.delta' ? 'hello' : undefined, + toolCallId: type === 'tool.call.started' ? 'tool-1' : undefined, + name: type === 'tool.call.started' ? 'Read' : undefined, + args: {}, + } as unknown as Event; +} + +function startSwarmWithChild(handler: SubAgentEventHandler): void { + handler.handleAgentSwarmToolCallStarted('tc-1', { + description: 'Review changed files', + items: ['src/a.ts'], + }); + handler.handleLifecycleEvent(lifecycleEvent('subagent.spawned', 'child-1', 'tc-1')); + handler.handleLifecycleEvent(lifecycleEvent('subagent.started', 'child-1', 'tc-1')); +} + +afterEach(() => { + vi.useRealTimers(); +}); + +describe('SubAgentEventHandler — swarm render batching', () => { + it('does not request a render for each child delta routed to a swarm', () => { + vi.useFakeTimers(); + const { handler, requestRender } = makeSwarmHandler(); + startSwarmWithChild(handler); + requestRender.mockClear(); + + handler.routeChildAgentEvent(childEvent('assistant.delta', 'child-1')); + handler.routeChildAgentEvent(childEvent('assistant.delta', 'child-1')); + handler.routeChildAgentEvent(childEvent('tool.call.started', 'child-1')); + + expect(requestRender).not.toHaveBeenCalled(); + }); + + it('still requests a render for swarm lifecycle transitions', () => { + vi.useFakeTimers(); + const { handler, requestRender } = makeSwarmHandler(); + handler.handleAgentSwarmToolCallStarted('tc-1', { + description: 'Review changed files', + items: ['src/a.ts'], + }); + handler.handleLifecycleEvent(lifecycleEvent('subagent.spawned', 'child-1', 'tc-1')); + requestRender.mockClear(); + + handler.handleLifecycleEvent(lifecycleEvent('subagent.started', 'child-1', 'tc-1')); + handler.handleLifecycleEvent(lifecycleEvent('subagent.completed', 'child-1', 'tc-1')); + + expect(requestRender).toHaveBeenCalled(); + }); + + it('drives swarm re-renders from the frame timer after deltas', () => { + vi.useFakeTimers(); + const { handler, requestRender } = makeSwarmHandler(); + startSwarmWithChild(handler); + requestRender.mockClear(); + + handler.routeChildAgentEvent(childEvent('assistant.delta', 'child-1')); + expect(requestRender).not.toHaveBeenCalled(); + + vi.advanceTimersByTime(80); + expect(requestRender).toHaveBeenCalledTimes(1); + }); +}); + +describe('SubAgentEventHandler — subagent.cancelled', () => { + it('marks a running swarm member cancelled instead of leaving it running', () => { + const { handler, transcriptContainer } = makeSwarmHandler(); + startSwarmWithChild(handler); + const component = swarmComponentOf(transcriptContainer); + + handler.handleLifecycleEvent(lifecycleEvent('subagent.cancelled', 'child-1', 'tc-1')); + + const output = component.render(120).join('\n'); + expect(output).toContain('⊘'); + }); + + it('keeps the batch-level cancelled label when a member cancel event follows', () => { + const { handler, transcriptContainer } = makeSwarmHandler(); + startSwarmWithChild(handler); + handler.routeChildAgentEvent(childEvent('assistant.delta', 'child-1')); + + handler.handleAgentSwarmToolResult( + 'tc-1', + { output: 'The user manually interrupted this subagent batch.' } as never, + true, + ); + handler.handleLifecycleEvent(lifecycleEvent('subagent.cancelled', 'child-1', 'tc-1')); + + const component = swarmComponentOf(transcriptContainer); + const output = component.render(120).join('\n'); + expect(output).toContain('⊘'); + expect(output).toContain('hello'); + }); +}); + +describe('SubAgentEventHandler — swarm grid height measurement', () => { + it('measures the rows after the transcript once per render pass', async () => { + const { handler, transcriptContainer, dockChild } = makeSwarmHandler(); + startSwarmWithChild(handler); + const component = swarmComponentOf(transcriptContainer); + + component.render(120); + component.render(120); + expect(dockChild.render).toHaveBeenCalledTimes(1); + + await Promise.resolve(); + component.render(120); + expect(dockChild.render).toHaveBeenCalledTimes(2); + + handler.clearAgentSwarmProgress(); + }); +}); diff --git a/apps/kimi-code/test/tui/controllers/survey-controller.test.ts b/apps/kimi-code/test/tui/controllers/survey-controller.test.ts index b99c22b54..8931d7851 100644 --- a/apps/kimi-code/test/tui/controllers/survey-controller.test.ts +++ b/apps/kimi-code/test/tui/controllers/survey-controller.test.ts @@ -1,4 +1,10 @@ -import { describe, expect, it, vi } from 'vitest'; +import type { TurnStartedEvent } from '@moonshot-ai/kimi-code-sdk'; +import { + DEFAULT_SURVEY_POPUP_PAYLOAD, + SurveyPopupConfigFeed, + type SurveyPopupPayload, +} from '@moonshot-ai/kimi-code-product/session-rating/node'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { GutterContainer } from '#/tui/components/chrome/gutter-container'; import { @@ -7,19 +13,9 @@ import { type SurveyHost, } from '#/tui/controllers/survey-controller'; import type { TranscriptEntry } from '#/tui/types'; -import { DEFAULT_SURVEY_POPUP_CONFIG } from '#/utils/survey-popup-config'; -const mocks = vi.hoisted(() => ({ - getSurveyPopupConfig: vi.fn(() => Promise.resolve(undefined)), -})); - -vi.mock('#/utils/survey-popup-config', async (importOriginal) => { - const actual = await importOriginal(); - return { - ...actual, - getSurveyPopupConfig: mocks.getSurveyPopupConfig, - }; -}); +const USER_ORIGIN: TurnStartedEvent['origin'] = { kind: 'user' }; +const SYSTEM_ORIGIN: TurnStartedEvent['origin'] = { kind: 'system_trigger', name: 'cron' }; const ESC = '\u001B'; const CSI_LEFT = '\u001B[D'; @@ -67,7 +63,7 @@ interface Harness { readonly container: GutterContainer; readonly timers: TimerDriver; readonly clock: { mono: number; wall: number }; - elapse(ms: number): void; + elapse(ms: number): Promise; readonly track: ReturnType; readonly editor: { inputMode: 'prompt' | 'bash'; @@ -81,11 +77,16 @@ interface Harness { readonly randomCalls: () => number; flush(): Promise; runTurns(count: number): void; - appear(): void; + appear(): Promise; renderSurvey(): string; } -function createHarness(deps: Partial = {}): Harness { +interface HarnessOptions extends Partial { + readonly config?: () => SurveyPopupPayload; + readonly refreshConfig?: () => unknown; +} + +function createHarness(deps: HarnessOptions = {}): Harness { const clock = { mono: 0, wall: 1_700_000_000_000 }; const timers = createTimerDriver(); const track = vi.fn(); @@ -119,18 +120,33 @@ function createHarness(deps: Partial = {}): Harness { permissionMode: 'manual', thinkingEffort: 'high', disableFeedbackSurvey: false, + availableModels: {}, + availableProviders: {}, }, ui: { requestRender: vi.fn() }, }; let randomCallCount = 0; let appearanceCounter = 0; - const { random: randomOverride, ...restDeps } = deps; + const { random: randomOverride, config, refreshConfig, ...restDeps } = deps; const host = { state, btwPanelController: { isActive: () => false }, track, } as unknown as SurveyHost; const controller = new SurveyController(host, { + configFeed: new SurveyPopupConfigFeed({ + peek: config ?? (() => DEFAULT_SURVEY_POPUP_PAYLOAD), + isFresh: () => true, + region: () => 'region-a', + refresh: refreshConfig, + now: () => clock.mono, + }), + cooldown: { + read: () => writes.at(-1), + write: (wallTime) => { + writes.push(wallTime); + }, + }, monotonicNow: () => clock.mono, wallNow: () => clock.wall, random: () => { @@ -145,11 +161,6 @@ function createHarness(deps: Partial = {}): Harness { clearTimer: timers.clearTimer, terminalWidth: () => 120, terminalHeight: () => 24, - configFresh: () => true, - readGlobalLastShown: async () => undefined, - writeGlobalLastShown: (wallTime) => { - writes.push(wallTime); - }, ...restDeps, }); @@ -164,9 +175,12 @@ function createHarness(deps: Partial = {}): Harness { state: state as unknown as SurveyHost['state'], writes, randomCalls: () => randomCallCount, - elapse: (ms) => { + elapse: async (ms) => { clock.mono += ms; timers.fire(ms); + await new Promise((resolve) => { + setImmediate(resolve); + }); }, flush: async () => { await new Promise((resolve) => { @@ -175,14 +189,14 @@ function createHarness(deps: Partial = {}): Harness { }, runTurns: (count) => { for (let turn = 1; turn <= count; turn++) { - controller.notifyTurnStarted(true); + controller.notifyTurnStarted(USER_ORIGIN); controller.notifyTurnEnded(); } }, - appear: () => { + appear: async () => { clock.mono += 600_000; harness.runTurns(5); - harness.elapse(2000); + await harness.elapse(2000); clock.mono += 600; }, typeDigit: (digit: string) => { @@ -211,6 +225,8 @@ const HARNESS_ENVIRONMENT = { compaction_count: 0, permission_mode: 'manual', thinking_effort: 'high', + subagent_count: 0, + swarm_run_count: 0, }; const DEFAULT_SNAPSHOT = { @@ -223,14 +239,22 @@ const DEFAULT_SNAPSHOT = { config_min_time_between_global_feedback_ms: 100_000_000, config_long_context_survey_threshold: 200_000, config_long_context_probability: 0.2, - config_long_context_trigger_mode: 'cumulative', + config_long_context_trigger_mode: 'virtual_context', }; -describe('SurveyController gating', () => { +function trackedEvent(harness: Harness, eventType: string): Record { + const call = harness.track.mock.calls.find( + (candidate) => (candidate[1] as Record)['event_type'] === eventType, + ); + expect(call).toBeDefined(); + return call![1] as Record; +} + +describe('SurveyController engine wiring', () => { it('appears once the session clears warmup and reports appeared', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); expect(harness.renderSurvey()).toContain('How is Kimi doing this session? (optional)'); expect(harness.renderSurvey()).toContain('1: Bad'); @@ -245,480 +269,124 @@ describe('SurveyController gating', () => { }); expect(harness.writes).toEqual([1_700_000_000_000]); }); +}); - it('stays hidden during warmup and appears once it completes', async () => { - const harness = createHarness(); - await harness.flush(); - harness.clock.mono += 597_999; - harness.runTurns(5); - harness.elapse(2000); - expect(harness.container.children).toHaveLength(0); - - harness.runTurns(1); - harness.elapse(2000); - expect(harness.container.children).not.toHaveLength(0); - }); - - it('stays hidden without enough user turns', async () => { - const harness = createHarness(); - await harness.flush(); - harness.clock.mono += 600_000; - harness.runTurns(4); - harness.elapse(2000); - expect(harness.container.children).toHaveLength(0); - }); - - it('stays hidden when sampled out', async () => { - const harness = createHarness({ random: () => 0.9 }); - await harness.flush(); - harness.appear(); - expect(harness.container.children).toHaveLength(0); - expect(harness.track).not.toHaveBeenCalled(); - }); - - it('stays hidden when telemetry is disabled', async () => { - const harness = createHarness({ telemetryDisabled: () => true }); - await harness.flush(); - harness.appear(); - expect(harness.container.children).toHaveLength(0); - }); - - it('stays hidden when the user disabled the survey', async () => { - const harness = createHarness({ feedbackSurveyDisabled: () => true }); - await harness.flush(); - harness.appear(); - expect(harness.container.children).toHaveLength(0); - }); - - it('stays hidden inside the persisted global cooldown', async () => { - const harness = createHarness({ - readGlobalLastShown: async () => 1_700_000_000_000 - 1000, - }); - await harness.flush(); - harness.appear(); - expect(harness.container.children).toHaveLength(0); - }); - +describe('SurveyController UI veto', () => { it('stays hidden while the latest user message opens an ordered list', async () => { const harness = createHarness(); await harness.flush(); harness.state.transcriptEntries.push(userEntry('1. first item')); - harness.appear(); + await harness.appear(); expect(harness.container.children).toHaveLength(0); }); - it('stays hidden while a btw panel is active', async () => { const harness = createHarness(); (harness.host.btwPanelController as { isActive: () => boolean }).isActive = () => true; await harness.flush(); - harness.appear(); + await harness.appear(); expect(harness.container.children).toHaveLength(0); }); - it('stays hidden while an editor replacement is mounted', async () => { const harness = createHarness(); harness.state.editorReplacementMounted = true; await harness.flush(); - harness.appear(); + await harness.appear(); expect(harness.container.children).toHaveLength(0); }); - - it('cancels a pending evaluation when a new turn starts', async () => { + it('does not spend the roll while an active prompt suppresses the evaluation', async () => { const harness = createHarness(); + harness.state.appState.contextTokens = 250_000; + (harness.host.btwPanelController as { isActive: () => boolean }).isActive = () => true; await harness.flush(); - harness.clock.mono += 600_000; - harness.runTurns(4); - harness.controller.notifyTurnStarted(true); - harness.controller.notifyTurnEnded(); - harness.controller.notifyTurnStarted(true); - harness.elapse(2000); - expect(harness.container.children).toHaveLength(0); - }); - it('does not arm the idle evaluation when a cron turn ends on its own', async () => { - const harness = createHarness(); - await harness.flush(); - harness.clock.mono += 600_000; - harness.controller.notifyTurnStarted(false); + harness.controller.notifyTurnStarted(USER_ORIGIN); harness.controller.notifyTurnEnded(); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.container.children).toHaveLength(0); - expect(harness.track).not.toHaveBeenCalled(); + expect(harness.randomCalls()).toBe(0); - harness.runTurns(5); - harness.elapse(2000); - expect(harness.container.children).not.toHaveLength(0); + (harness.host.btwPanelController as { isActive: () => boolean }).isActive = () => false; + harness.controller.notifyTurnStarted(USER_ORIGIN); + harness.controller.notifyTurnEnded(); + await harness.elapse(2000); expect(harness.track).toHaveBeenCalledWith( - 'feedback_survey', + 'long_context_survey', expect.objectContaining({ event_type: 'appeared' }), ); }); - - it('re-arms the pending evaluation after non-user continuation turns end', async () => { - const harness = createHarness(); - await harness.flush(); - harness.clock.mono += 600_000; - harness.runTurns(4); - harness.controller.notifyTurnStarted(true); - harness.controller.notifyTurnEnded(); - - harness.controller.notifyTurnStarted(false); - harness.elapse(2000); - expect(harness.container.children).toHaveLength(0); - - harness.controller.notifyTurnEnded(); - harness.elapse(2000); - expect(harness.container.children).not.toHaveLength(0); - }); - - it('keeps one sample per user turn across evaluations', async () => { - const harness = createHarness({ random: () => 0.9 }); - await harness.flush(); - harness.clock.mono += 600_000; - harness.runTurns(5); - harness.elapse(2000); - harness.controller.notifyTurnStarted(false); - harness.controller.notifyTurnEnded(); - harness.elapse(2000); - expect(harness.randomCalls()).toBe(1); - harness.controller.notifyTurnStarted(true); - harness.controller.notifyTurnEnded(); - harness.elapse(2000); - expect(harness.randomCalls()).toBe(2); - }); - - it('paces the second appearance by time and turns, and bumps appearance_index', async () => { - const harness = createHarness(); - await harness.flush(); - harness.appear(); - harness.controller.handlePreInput(ESC); - expect(harness.container.children).toHaveLength(0); - - harness.runTurns(5); - harness.elapse(2000); - expect(harness.container.children).toHaveLength(0); - - harness.clock.mono += 3_600_000; - harness.clock.wall += 100_000_000; - harness.runTurns(10); - harness.elapse(2000); - expect(harness.container.children).not.toHaveLength(0); - expect(harness.track).toHaveBeenLastCalledWith( - 'feedback_survey', - expect.objectContaining({ event_type: 'appeared', appearance_index: 2 }), - ); - }); }); -describe('SurveyController long-context arm', () => { - it('shows the long-context survey over the cumulative threshold without any warmup', async () => { - const harness = createHarness(); - harness.state.appState.cumulativeTokens = 250_000; - await harness.flush(); +describe('SurveyController model route', () => { + const MANAGED_BASE_URL = 'https://api.kimi.com/coding/v1'; + const GATEWAY_BASE_URL = 'https://gateway.example.com/coding/v1'; + const savedBaseUrl = process.env['KIMI_CODE_BASE_URL']; - harness.controller.notifyTurnStarted(true); - harness.controller.notifyTurnEnded(); - harness.elapse(2000); - - expect(harness.renderSurvey()).toContain('How is Kimi doing this session? (optional)'); - expect(harness.track).toHaveBeenCalledTimes(1); - expect(harness.track).toHaveBeenCalledWith('long_context_survey', { - event_type: 'appeared', - appearance_id: 'appearance-1', - appearance_index: 1, - response: undefined, - current_model: 'k2', - user_turn_count: 1, - cumulative_tokens: 250_000, - virtual_context_tokens: 640, - tool_call_count: 0, - compaction_count: 0, - permission_mode: 'manual', - thinking_effort: 'high', - ...DEFAULT_SNAPSHOT, - }); - expect(harness.writes).toEqual([]); + beforeEach(() => { + delete process.env['KIMI_CODE_BASE_URL']; }); - it('reports the responded and abandoned states under the long_context_survey name', async () => { - const responded = createHarness(); - responded.state.appState.cumulativeTokens = 250_000; - await responded.flush(); - responded.controller.notifyTurnStarted(true); - responded.controller.notifyTurnEnded(); - responded.elapse(2000); - responded.clock.mono += 600; - - responded.typeDigit('2'); - responded.elapse(400); - responded.elapse(3000); - expect(responded.track).toHaveBeenCalledWith( - 'long_context_survey', - expect.objectContaining({ - event_type: 'responded', - response: 'fine', - appearance_id: 'appearance-1', - }), - ); - - const abandoned = createHarness(); - abandoned.state.appState.cumulativeTokens = 250_000; - await abandoned.flush(); - abandoned.controller.notifyTurnStarted(true); - abandoned.controller.notifyTurnEnded(); - abandoned.elapse(2000); - abandoned.clock.mono += 600; - - abandoned.controller.handleEditorChange('hello'); - expect(abandoned.track).toHaveBeenCalledWith( - 'long_context_survey', - expect.objectContaining({ event_type: 'abandoned', appearance_id: 'appearance-1' }), - ); + afterEach(() => { + if (savedBaseUrl === undefined) { + delete process.env['KIMI_CODE_BASE_URL']; + } else { + process.env['KIMI_CODE_BASE_URL'] = savedBaseUrl; + } }); - it('prefers the long-context survey when the session arm is also eligible', async () => { - const harness = createHarness(); - harness.state.appState.cumulativeTokens = 250_000; - await harness.flush(); + function useModel( + harness: Harness, + options: { entryBaseUrl?: string; providerBaseUrl?: string } = {}, + ): void { + harness.state.appState.model = 'main'; + harness.state.appState.availableModels = { + main: { + provider: 'managed:kimi-code', + model: 'k3', + maxContextSize: 256_000, + baseUrl: options.entryBaseUrl, + }, + }; + harness.state.appState.availableProviders = { + 'managed:kimi-code': { type: 'kimi', baseUrl: options.providerBaseUrl ?? MANAGED_BASE_URL }, + }; + } - harness.appear(); - - expect(harness.track).toHaveBeenCalledTimes(1); - expect(harness.track).toHaveBeenCalledWith( - 'long_context_survey', - expect.objectContaining({ event_type: 'appeared', appearance_index: 1 }), - ); - }); - - it('compares the cumulative counter by default and ignores the window occupancy', async () => { - const harness = createHarness(); - harness.state.appState.contextTokens = 500_000; - await harness.flush(); - - harness.controller.notifyTurnStarted(true); - harness.controller.notifyTurnEnded(); - harness.elapse(2000); - - expect(harness.container.children).toHaveLength(0); - expect(harness.track).not.toHaveBeenCalled(); - }); - - it('compares the window occupancy when the trigger mode is virtual_context', async () => { + it('prefers the entry baseUrl over the provider baseUrl when the entry is managed', async () => { const harness = createHarness({ - config: () => ({ - ...DEFAULT_SURVEY_POPUP_CONFIG, - long_context_trigger_mode: 'virtual_context', - }), + config: () => ({ ...DEFAULT_SURVEY_POPUP_PAYLOAD, on_for_models: ['k3'] }), }); - harness.state.appState.contextTokens = 250_000; + useModel(harness, { entryBaseUrl: MANAGED_BASE_URL, providerBaseUrl: GATEWAY_BASE_URL }); await harness.flush(); + await harness.appear(); - harness.controller.notifyTurnStarted(true); - harness.controller.notifyTurnEnded(); - harness.elapse(2000); - - expect(harness.track).toHaveBeenCalledWith( - 'long_context_survey', - expect.objectContaining({ - event_type: 'appeared', - cumulative_tokens: 1234, - virtual_context_tokens: 250_000, - config_long_context_trigger_mode: 'virtual_context', - }), - ); - }); - - it('closes the arm on a non-positive effective threshold and produces no events', async () => { - const harness = createHarness({ - config: () => ({ ...DEFAULT_SURVEY_POPUP_CONFIG, long_context_survey_threshold: 0 }), - }); - harness.state.appState.cumulativeTokens = 500_000; - await harness.flush(); - - harness.controller.notifyTurnStarted(true); - harness.controller.notifyTurnEnded(); - harness.elapse(2000); - - expect(harness.container.children).toHaveLength(0); - expect(harness.track).not.toHaveBeenCalled(); - }); - - it('leaves the session arm running when the threshold closes the long-context arm', async () => { - const harness = createHarness({ - config: () => ({ ...DEFAULT_SURVEY_POPUP_CONFIG, long_context_survey_threshold: 0 }), - }); - harness.state.appState.cumulativeTokens = 500_000; - await harness.flush(); - - harness.appear(); - + expect(harness.container.children).not.toHaveLength(0); expect(harness.track).toHaveBeenCalledWith( 'feedback_survey', - expect.objectContaining({ event_type: 'appeared', config_long_context_survey_threshold: 0 }), + expect.objectContaining({ event_type: 'appeared', kfc_model_id: 'k3' }), ); }); - - it('stays hidden when the long-context roll misses, and never rolls again this mount', async () => { - const harness = createHarness({ random: () => 0.9 }); - harness.state.appState.cumulativeTokens = 250_000; + it('prefers the entry baseUrl over the provider baseUrl when the entry is self-hosted', async () => { + const harness = createHarness({ + config: () => ({ ...DEFAULT_SURVEY_POPUP_PAYLOAD, on_for_models: ['k3'] }), + }); + useModel(harness, { entryBaseUrl: GATEWAY_BASE_URL, providerBaseUrl: MANAGED_BASE_URL }); await harness.flush(); - - harness.controller.notifyTurnStarted(true); - harness.controller.notifyTurnEnded(); - harness.elapse(2000); + await harness.appear(); expect(harness.container.children).toHaveLength(0); expect(harness.track).not.toHaveBeenCalled(); - expect(harness.randomCalls()).toBe(2); - - harness.controller.notifyTurnStarted(true); - harness.controller.notifyTurnEnded(); - harness.elapse(2000); - - expect(harness.container.children).toHaveLength(0); - expect(harness.track).not.toHaveBeenCalled(); - expect(harness.randomCalls()).toBe(3); }); +}); - it('shows at most once per mount even after the first appearance closes', async () => { - const harness = createHarness(); - harness.state.appState.cumulativeTokens = 250_000; +describe('SurveyController config feed', () => { + it('fires the injected refresh once at mount and not on session reset', async () => { + const refreshConfig = vi.fn(); + const harness = createHarness({ refreshConfig }); await harness.flush(); + expect(refreshConfig).toHaveBeenCalledTimes(1); - harness.controller.notifyTurnStarted(true); - harness.controller.notifyTurnEnded(); - harness.elapse(2000); - expect(harness.track).toHaveBeenCalledWith( - 'long_context_survey', - expect.objectContaining({ event_type: 'appeared' }), - ); - - harness.clock.mono += 600; - harness.controller.handlePreInput(ESC); - expect(harness.container.children).toHaveLength(0); - - harness.controller.notifyTurnStarted(true); - harness.controller.notifyTurnEnded(); - harness.elapse(2000); - - const appeared = harness.track.mock.calls.filter( - (call) => (call[1] as { event_type?: string }).event_type === 'appeared', - ); - expect(appeared).toHaveLength(1); - }); - - it('regains its one chance after a session reset', async () => { - let roll = 0.9; - const harness = createHarness({ random: () => roll }); - harness.state.appState.cumulativeTokens = 250_000; - await harness.flush(); - - harness.controller.notifyTurnStarted(true); - harness.controller.notifyTurnEnded(); - harness.elapse(2000); - expect(harness.container.children).toHaveLength(0); - - roll = 0.1; harness.controller.reset(); - await harness.flush(); - - harness.controller.notifyTurnStarted(true); - harness.controller.notifyTurnEnded(); - harness.elapse(2000); - expect(harness.track).toHaveBeenCalledWith( - 'long_context_survey', - expect.objectContaining({ event_type: 'appeared', appearance_index: 1 }), - ); - expect(harness.writes).toEqual([]); - }); - - it('does not spend the roll while an active prompt suppresses the evaluation', async () => { - const harness = createHarness(); - harness.state.appState.cumulativeTokens = 250_000; - (harness.host.btwPanelController as { isActive: () => boolean }).isActive = () => true; - await harness.flush(); - - harness.controller.notifyTurnStarted(true); - harness.controller.notifyTurnEnded(); - harness.elapse(2000); - expect(harness.container.children).toHaveLength(0); - expect(harness.randomCalls()).toBe(1); - - (harness.host.btwPanelController as { isActive: () => boolean }).isActive = () => false; - harness.controller.notifyTurnStarted(true); - harness.controller.notifyTurnEnded(); - harness.elapse(2000); - expect(harness.track).toHaveBeenCalledWith( - 'long_context_survey', - expect.objectContaining({ event_type: 'appeared' }), - ); - }); - - it('evaluates only after the mount produced a user turn, even with tokens past the threshold', async () => { - const harness = createHarness(); - harness.state.appState.cumulativeTokens = 250_000; - await harness.flush(); - - harness.elapse(2000); - expect(harness.container.children).toHaveLength(0); - - harness.controller.notifyTurnStarted(false); - harness.controller.notifyTurnEnded(); - harness.elapse(2000); - expect(harness.container.children).toHaveLength(0); - expect(harness.track).not.toHaveBeenCalled(); - - harness.controller.notifyTurnStarted(true); - harness.controller.notifyTurnEnded(); - harness.elapse(2000); - expect(harness.track).toHaveBeenCalledWith( - 'long_context_survey', - expect.objectContaining({ event_type: 'appeared' }), - ); - }); - - it('ignores the persisted global cooldown that gates the session arm', async () => { - const harness = createHarness({ - readGlobalLastShown: async () => 1_700_000_000_000 - 1000, - }); - harness.state.appState.cumulativeTokens = 250_000; - await harness.flush(); - - harness.controller.notifyTurnStarted(true); - harness.controller.notifyTurnEnded(); - harness.elapse(2000); - - expect(harness.track).toHaveBeenCalledWith( - 'long_context_survey', - expect.objectContaining({ event_type: 'appeared' }), - ); - expect(harness.writes).toEqual([]); - }); - - it('does not suppress the session arm through the persisted cooldown after a long-context appearance', async () => { - const harness = createHarness(); - harness.state.appState.cumulativeTokens = 250_000; - await harness.flush(); - - harness.controller.notifyTurnStarted(true); - harness.controller.notifyTurnEnded(); - harness.elapse(2000); - expect(harness.track).toHaveBeenCalledWith( - 'long_context_survey', - expect.objectContaining({ event_type: 'appeared' }), - ); - harness.clock.mono += 600; - harness.controller.handlePreInput(ESC); - expect(harness.writes).toEqual([]); - - harness.clock.mono += 3_600_000; - harness.runTurns(10); - harness.elapse(2000); - expect(harness.track).toHaveBeenCalledWith( - 'feedback_survey', - expect.objectContaining({ event_type: 'appeared' }), - ); - expect(harness.writes).toEqual([1_700_000_000_000]); + expect(refreshConfig).toHaveBeenCalledTimes(1); }); }); @@ -726,19 +394,19 @@ describe('SurveyController interaction', () => { it('selects a rating after the digit debounce and walks pending → thanks → closed', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.track.mockClear(); harness.editor.setText('2'); harness.typeDigit('2'); harness.typeDigit('2'); - harness.elapse(400); + await harness.elapse(400); expect(harness.track).not.toHaveBeenCalled(); expect(harness.editor.getText()).toBe(''); expect(harness.renderSurvey()).toContain('Feedback: Fine · [escape: undo]'); - harness.elapse(3000); + await harness.elapse(3000); expect(harness.track).toHaveBeenCalledWith('feedback_survey', { event_type: 'responded', appearance_id: 'appearance-1', @@ -749,7 +417,7 @@ describe('SurveyController interaction', () => { }); expect(harness.renderSurvey()).toContain('Thanks for your feedback!'); - harness.elapse(5000); + await harness.elapse(5000); expect(harness.container.children).toHaveLength(0); expect(harness.track).toHaveBeenCalledTimes(1); }); @@ -757,10 +425,10 @@ describe('SurveyController interaction', () => { it('cancels a pending digit selection when the edit continues', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.typeDigit('1'); harness.controller.handleEditorChange(''); - harness.elapse(400); + await harness.elapse(400); expect(harness.container.children).not.toHaveLength(0); expect(harness.track).toHaveBeenCalledTimes(1); }); @@ -768,19 +436,19 @@ describe('SurveyController interaction', () => { it('undo cancels the pending report, and a re-choice reports only the final rating', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.track.mockClear(); harness.typeDigit('1'); - harness.elapse(400); + await harness.elapse(400); expect(harness.controller.handlePreInput(ESC)).toBe(true); expect(harness.renderSurvey()).toContain('How is Kimi doing this session? (optional)'); - harness.elapse(3000); + await harness.elapse(3000); expect(harness.track).not.toHaveBeenCalled(); harness.typeDigit('3'); - harness.elapse(400); - harness.elapse(3000); + await harness.elapse(400); + await harness.elapse(3000); const responses = harness.track.mock.calls.map( (call) => (call[1] as { response?: string }).response, @@ -792,7 +460,7 @@ describe('SurveyController interaction', () => { it('Esc dismisses without thanks', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.track.mockClear(); expect(harness.controller.handlePreInput(ESC)).toBe(true); @@ -808,10 +476,10 @@ describe('SurveyController interaction', () => { it('digit 0 dismisses without thanks and clears the editor', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.editor.setText('0'); harness.typeDigit('0'); - harness.elapse(400); + await harness.elapse(400); expect(harness.track).toHaveBeenCalledWith( 'feedback_survey', expect.objectContaining({ event_type: 'responded', response: 'dismissed' }), @@ -823,7 +491,7 @@ describe('SurveyController interaction', () => { it('abandons on non-option input', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.track.mockClear(); harness.controller.handleEditorChange('hello'); @@ -838,7 +506,7 @@ describe('SurveyController interaction', () => { const harness = createHarness(); await harness.flush(); harness.editor.setText('2'); - harness.appear(); + await harness.appear(); harness.track.mockClear(); harness.controller.handleEditorChange(''); @@ -854,7 +522,7 @@ describe('SurveyController interaction', () => { const harness = createHarness(); await harness.flush(); harness.editor.setText('2'); - harness.appear(); + await harness.appear(); harness.controller.handleEditorChange(''); harness.controller.handlePreInput('2'); @@ -867,11 +535,11 @@ describe('SurveyController interaction', () => { const harness = createHarness(); await harness.flush(); harness.editor.setText('2'); - harness.appear(); + await harness.appear(); harness.track.mockClear(); harness.controller.handleEditorChange('2'); - harness.elapse(400); + await harness.elapse(400); expect(harness.track).not.toHaveBeenCalled(); expect(harness.controller.handleSubmit('2')).toBe(false); @@ -886,11 +554,11 @@ describe('SurveyController interaction', () => { it('intercepts a lone digit submit as a selection instead of sending', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.editor.setText('1'); expect(harness.controller.handleSubmit('1')).toBe(true); - harness.elapse(3000); + await harness.elapse(3000); expect(harness.track).toHaveBeenCalledWith( 'feedback_survey', expect.objectContaining({ event_type: 'responded', response: 'bad' }), @@ -901,7 +569,7 @@ describe('SurveyController interaction', () => { it('lets other submissions through and abandons the survey', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); expect(harness.controller.handleSubmit('hello')).toBe(false); expect(harness.track).toHaveBeenCalledWith( @@ -915,7 +583,7 @@ describe('SurveyController interaction', () => { await harness.flush(); harness.clock.mono += 600_000; harness.runTurns(5); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.controller.handlePreInput('1')).toBe(false); harness.editor.setText('1'); @@ -927,8 +595,8 @@ describe('SurveyController interaction', () => { harness.clock.mono += 600; harness.typeDigit('1'); - harness.elapse(400); - harness.elapse(3000); + await harness.elapse(400); + await harness.elapse(3000); expect(harness.track).toHaveBeenCalledWith( 'feedback_survey', expect.objectContaining({ event_type: 'responded', response: 'bad' }), @@ -940,7 +608,7 @@ describe('SurveyController interaction', () => { await harness.flush(); harness.clock.mono += 600_000; harness.runTurns(5); - harness.elapse(2000); + await harness.elapse(2000); harness.track.mockClear(); expect(harness.controller.handlePreInput('\u0019')).toBe(false); @@ -959,7 +627,7 @@ describe('SurveyController interaction', () => { await harness.flush(); harness.clock.mono += 600_000; harness.runTurns(5); - harness.elapse(2000); + await harness.elapse(2000); harness.track.mockClear(); expect(harness.controller.handlePreInput(CSI_UP)).toBe(false); @@ -976,12 +644,12 @@ describe('SurveyController interaction', () => { it('moves the hover with arrow keys and confirms with Enter', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); expect(harness.controller.handlePreInput(CSI_RIGHT)).toBe(true); expect(harness.controller.handlePreInput(CSI_RIGHT)).toBe(true); expect(harness.controller.handleSubmit('')).toBe(true); - harness.elapse(3000); + await harness.elapse(3000); expect(harness.track).toHaveBeenCalledWith( 'feedback_survey', expect.objectContaining({ event_type: 'responded', response: 'fine' }), @@ -991,7 +659,7 @@ describe('SurveyController interaction', () => { it('wraps the hover backwards from nothing to Dismiss', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); expect(harness.controller.handlePreInput(CSI_LEFT)).toBe(true); expect(harness.controller.handleSubmit('')).toBe(true); @@ -1004,7 +672,7 @@ describe('SurveyController interaction', () => { it('abandons instead of rating when history recall replaces a draft at column zero', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.editor.setText('draft'); harness.track.mockClear(); @@ -1022,14 +690,14 @@ describe('SurveyController interaction', () => { it('debounces a digit that arrives as a CSI-u sequence', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); expect(harness.controller.handlePreInput('\u001B[49u')).toBe(false); harness.editor.setText('1'); harness.controller.handleEditorChange('1'); expect(harness.timers.pending()).toHaveLength(1); - harness.elapse(400); - harness.elapse(3000); + await harness.elapse(400); + await harness.elapse(3000); expect(harness.track).toHaveBeenCalledWith( 'feedback_survey', expect.objectContaining({ event_type: 'responded', response: 'bad' }), @@ -1039,7 +707,7 @@ describe('SurveyController interaction', () => { it('debounces a typed digit even right after an Up cursor move', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.editor.setText('draft'); expect(harness.controller.handlePreInput(CSI_UP)).toBe(false); @@ -1047,8 +715,8 @@ describe('SurveyController interaction', () => { harness.editor.setText('2'); harness.controller.handleEditorChange('2'); expect(harness.timers.pending()).toHaveLength(1); - harness.elapse(400); - harness.elapse(3000); + await harness.elapse(400); + await harness.elapse(3000); expect(harness.track).toHaveBeenCalledWith( 'feedback_survey', expect.objectContaining({ event_type: 'responded', response: 'fine' }), @@ -1058,7 +726,7 @@ describe('SurveyController interaction', () => { it('abandons instead of rating when history recall injects a lone digit', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.track.mockClear(); expect(harness.controller.handlePreInput(CSI_UP)).toBe(false); @@ -1070,14 +738,14 @@ describe('SurveyController interaction', () => { 'feedback_survey', expect.objectContaining({ event_type: 'abandoned' }), ); - harness.elapse(400); + await harness.elapse(400); expect(harness.track).toHaveBeenCalledTimes(1); }); it('abandons instead of rating when a kill-ring yank injects a lone digit', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.track.mockClear(); expect(harness.controller.handlePreInput('\u0019')).toBe(false); @@ -1094,7 +762,7 @@ describe('SurveyController interaction', () => { it('abandons instead of rating when a paste injects a lone digit', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.track.mockClear(); expect(harness.controller.handlePreInput('\u001B[200~2\u001B[201~')).toBe(false); @@ -1106,14 +774,14 @@ describe('SurveyController interaction', () => { 'feedback_survey', expect.objectContaining({ event_type: 'abandoned' }), ); - harness.elapse(400); + await harness.elapse(400); expect(harness.track).toHaveBeenCalledTimes(1); }); it('lets arrow keys through to the editor when a draft exists', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.editor.setText('draft'); expect(harness.controller.handlePreInput(CSI_RIGHT)).toBe(false); @@ -1125,7 +793,7 @@ describe('SurveyController interaction', () => { it('clears the hover when the survey closes so a later appearance starts clean', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); expect(harness.controller.handlePreInput(CSI_RIGHT)).toBe(true); harness.controller.handlePreInput(ESC); expect(harness.container.children).toHaveLength(0); @@ -1133,7 +801,7 @@ describe('SurveyController interaction', () => { harness.clock.mono += 3_600_000; harness.clock.wall += 100_000_000; harness.runTurns(10); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.container.children).not.toHaveLength(0); harness.track.mockClear(); @@ -1144,12 +812,12 @@ describe('SurveyController interaction', () => { it('reports the settled rating with the turn count of the turn it was made in', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.typeDigit('1'); - harness.elapse(400); + await harness.elapse(400); harness.track.mockClear(); - harness.controller.notifyTurnStarted(true); + harness.controller.notifyTurnStarted(USER_ORIGIN); expect(harness.track).toHaveBeenCalledWith( 'feedback_survey', @@ -1160,12 +828,12 @@ describe('SurveyController interaction', () => { it('settles the pending rating when a turn starts inside the undo window', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.typeDigit('1'); - harness.elapse(400); + await harness.elapse(400); harness.track.mockClear(); - harness.controller.notifyTurnStarted(true); + harness.controller.notifyTurnStarted(USER_ORIGIN); expect(harness.container.children).toHaveLength(0); expect(harness.track).toHaveBeenCalledWith( @@ -1175,32 +843,93 @@ describe('SurveyController interaction', () => { expect(harness.timers.pending()).toHaveLength(0); }); - it('closes silently when a turn starts while open', async () => { + it('reports abandoned when a turn starts while open', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.track.mockClear(); - harness.controller.notifyTurnStarted(true); + harness.controller.notifyTurnStarted(USER_ORIGIN); expect(harness.container.children).toHaveLength(0); - expect(harness.track).not.toHaveBeenCalled(); + expect(harness.track).toHaveBeenCalledWith( + 'feedback_survey', + expect.objectContaining({ event_type: 'abandoned' }), + ); }); - it('closes silently on a gate flip (editor replacement) without reporting', async () => { + it('reports abandoned when displaced by an editor replacement', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.track.mockClear(); - harness.controller.closeSilently(); + harness.controller.notifyDisplaced(); expect(harness.container.children).toHaveLength(0); + expect(harness.track).toHaveBeenCalledWith( + 'feedback_survey', + expect.objectContaining({ event_type: 'abandoned' }), + ); + }); + + it('reports the selected rating when displaced while pending', async () => { + const harness = createHarness(); + await harness.flush(); + await harness.appear(); + harness.typeDigit('2'); + await harness.elapse(400); + harness.track.mockClear(); + + harness.controller.notifyDisplaced(); + expect(harness.container.children).toHaveLength(0); + expect(harness.track).toHaveBeenCalledWith( + 'feedback_survey', + expect.objectContaining({ event_type: 'responded', response: 'fine' }), + ); + }); + + it('reports abandoned when a session reset arrives while open', async () => { + const harness = createHarness(); + await harness.flush(); + await harness.appear(); + harness.track.mockClear(); + + harness.controller.reset(); + expect(harness.container.children).toHaveLength(0); + expect(harness.track).toHaveBeenCalledWith( + 'feedback_survey', + expect.objectContaining({ event_type: 'abandoned' }), + ); + }); + + it('reports the selected rating when a session reset arrives while pending', async () => { + const harness = createHarness(); + await harness.flush(); + await harness.appear(); + harness.typeDigit('2'); + await harness.elapse(400); + harness.track.mockClear(); + + harness.controller.reset(); + expect(harness.track).toHaveBeenCalledWith( + 'feedback_survey', + expect.objectContaining({ event_type: 'responded', response: 'fine' }), + ); + }); + + it('stays silent when disposed while open', async () => { + const harness = createHarness(); + await harness.flush(); + await harness.appear(); + harness.track.mockClear(); + + harness.controller.dispose(); expect(harness.track).not.toHaveBeenCalled(); }); it('treats bash-mode input as non-option input', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.editor.inputMode = 'bash'; harness.typeDigit('1'); @@ -1213,7 +942,7 @@ describe('SurveyController interaction', () => { it('sweeps the survey away as abandoned when the editor enters bash mode', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.track.mockClear(); harness.editor.inputMode = 'bash'; @@ -1229,18 +958,18 @@ describe('SurveyController interaction', () => { it('does not open while the external editor is running, on either arm', async () => { const harness = createHarness(); - harness.state.appState.cumulativeTokens = 250_000; + harness.state.appState.contextTokens = 250_000; await harness.flush(); harness.clock.mono += 600_000; harness.state.externalEditorRunning = true; harness.runTurns(5); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.container.children).toHaveLength(0); expect(harness.track).not.toHaveBeenCalled(); harness.state.externalEditorRunning = false; harness.runTurns(1); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.container.children).not.toHaveLength(0); expect(harness.track).toHaveBeenCalledWith( 'long_context_survey', @@ -1254,13 +983,13 @@ describe('SurveyController interaction', () => { harness.clock.mono += 600_000; harness.state.tasksBrowser = {} as never; harness.runTurns(5); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.container.children).toHaveLength(0); expect(harness.track).not.toHaveBeenCalled(); harness.state.tasksBrowser = undefined; harness.runTurns(1); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.container.children).not.toHaveLength(0); }); @@ -1268,7 +997,7 @@ describe('SurveyController interaction', () => { let width = 120; const harness = createHarness({ terminalWidth: () => width }); await harness.flush(); - harness.appear(); + await harness.appear(); expect(harness.controller.handlePreInput(CSI_RIGHT)).toBe(true); harness.track.mockClear(); @@ -1282,13 +1011,13 @@ describe('SurveyController interaction', () => { let width = 120; const harness = createHarness({ terminalWidth: () => width }); await harness.flush(); - harness.appear(); + await harness.appear(); harness.editor.setText('2'); harness.typeDigit('2'); harness.track.mockClear(); width = 8; - harness.elapse(400); + await harness.elapse(400); expect(harness.track).not.toHaveBeenCalled(); expect(harness.editor.getText()).toBe('2'); expect(harness.container.children).not.toHaveLength(0); @@ -1298,14 +1027,14 @@ describe('SurveyController interaction', () => { let width = 120; const harness = createHarness({ terminalWidth: () => width }); await harness.flush(); - harness.appear(); + await harness.appear(); harness.typeDigit('2'); - harness.elapse(400); + await harness.elapse(400); harness.track.mockClear(); width = 8; expect(harness.controller.handlePreInput(ESC)).toBe(true); - harness.elapse(3000); + await harness.elapse(3000); expect(harness.track).not.toHaveBeenCalled(); expect(harness.renderSurvey()).toContain('How is Kimi doing this session? (optional)'); }); @@ -1317,13 +1046,13 @@ describe('SurveyController interaction', () => { harness.clock.mono += 600_000; height = 7; harness.runTurns(5); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.container.children).toHaveLength(0); expect(harness.track).not.toHaveBeenCalled(); height = 8; harness.runTurns(1); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.container.children).not.toHaveLength(0); }); @@ -1334,12 +1063,12 @@ describe('SurveyController interaction', () => { harness.clock.mono += 600_000; height = 14; harness.runTurns(5); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.container.children).toHaveLength(0); height = 15; harness.runTurns(1); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.container.children).not.toHaveLength(0); }); @@ -1350,12 +1079,12 @@ describe('SurveyController interaction', () => { harness.clock.mono += 600_000; height = 13; harness.runTurns(5); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.container.children).toHaveLength(0); height = 14; harness.runTurns(1); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.container.children).not.toHaveLength(0); }); @@ -1363,7 +1092,7 @@ describe('SurveyController interaction', () => { let height = 24; const harness = createHarness({ terminalHeight: () => height }); await harness.flush(); - harness.appear(); + await harness.appear(); harness.track.mockClear(); height = 6; @@ -1379,13 +1108,13 @@ describe('SurveyController interaction', () => { harness.clock.mono += 600_000; width = 13; harness.runTurns(5); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.container.children).toHaveLength(0); expect(harness.track).not.toHaveBeenCalled(); width = 14; harness.runTurns(1); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.container.children).not.toHaveLength(0); }); @@ -1393,7 +1122,7 @@ describe('SurveyController interaction', () => { let width = 120; const harness = createHarness({ terminalWidth: () => width }); await harness.flush(); - harness.appear(); + await harness.appear(); harness.track.mockClear(); width = 8; @@ -1408,13 +1137,13 @@ describe('SurveyController interaction', () => { harness.clock.mono += 600_000; harness.editor.autocompleteActive = true; harness.runTurns(5); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.container.children).toHaveLength(0); expect(harness.track).not.toHaveBeenCalled(); harness.editor.autocompleteActive = false; harness.runTurns(1); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.container.children).not.toHaveLength(0); harness.editor.autocompleteActive = true; @@ -1430,22 +1159,22 @@ describe('SurveyController interaction', () => { harness.clock.mono += 600_000; harness.editor.inputMode = 'bash'; harness.runTurns(5); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.container.children).toHaveLength(0); expect(harness.track).not.toHaveBeenCalled(); harness.editor.inputMode = 'prompt'; harness.runTurns(1); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.container.children).not.toHaveLength(0); }); it('settles and closes a pending rating when the editor enters bash mode', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.typeDigit('2'); - harness.elapse(400); + await harness.elapse(400); harness.track.mockClear(); harness.editor.inputMode = 'bash'; @@ -1462,10 +1191,10 @@ describe('SurveyController interaction', () => { it('closes the thanks state silently when the editor enters bash mode', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.typeDigit('2'); - harness.elapse(400); - harness.elapse(3000); + await harness.elapse(400); + await harness.elapse(3000); expect(harness.renderSurvey()).toContain('Thanks for your feedback!'); harness.track.mockClear(); @@ -1477,77 +1206,18 @@ describe('SurveyController interaction', () => { expect(harness.controller.handlePreInput(ESC)).toBe(false); }); - it('defers evaluation until the persisted cooldown read settles, then honors it', async () => { - let settleRead!: () => void; - const harness = createHarness({ - readGlobalLastShown: () => - new Promise((resolve) => { - settleRead = () => { - resolve(1_700_000_000_000); - }; - }), - }); - await harness.flush(); - harness.clock.mono += 600_000; - harness.runTurns(5); - harness.elapse(2000); - expect(harness.container.children).toHaveLength(0); - settleRead(); - await harness.flush(); - harness.runTurns(1); - harness.elapse(2000); - expect(harness.container.children).toHaveLength(0); - expect(harness.track).not.toHaveBeenCalled(); - }); - it('keeps the just-written global cooldown across a reset', async () => { - const harness = createHarness(); - await harness.flush(); - harness.appear(); - expect(harness.writes).toEqual([1_700_000_000_000]); - harness.track.mockClear(); - - harness.controller.reset(); - await harness.flush(); - - harness.clock.wall += 1; - harness.clock.mono += 600_000; - harness.runTurns(5); - harness.elapse(2000); - expect(harness.container.children).toHaveLength(0); - expect(harness.track).not.toHaveBeenCalled(); - }); - - it('takes the newer of the in-memory and reloaded cooldown timestamps', async () => { - let diskValue: number | undefined = 1_600_000_000_000; - const harness = createHarness({ readGlobalLastShown: async () => diskValue }); - await harness.flush(); - harness.appear(); - expect(harness.writes).toEqual([1_700_000_000_000]); - harness.track.mockClear(); - - diskValue = 1_650_000_000_000; - harness.controller.reset(); - await harness.flush(); - - harness.clock.wall += 1; - harness.clock.mono += 600_000; - harness.runTurns(5); - harness.elapse(2000); - expect(harness.container.children).toHaveLength(0); - expect(harness.track).not.toHaveBeenCalled(); - }); it('resets in-session pacing on session reset', async () => { const harness = createHarness(); await harness.flush(); - harness.appear(); + await harness.appear(); harness.controller.reset(); await harness.flush(); harness.runTurns(5); - harness.elapse(2000); + await harness.elapse(2000); expect(harness.container.children).toHaveLength(0); }); @@ -1555,330 +1225,20 @@ describe('SurveyController interaction', () => { const harness = createHarness(); harness.state.appState.disableFeedbackSurvey = true; await harness.flush(); - harness.appear(); + await harness.appear(); expect(harness.container.children).toHaveLength(0); }); -}); - -describe('SurveyController event payload', () => { - it('reports the live session statistics and the current model', async () => { + it('cancels the pending digit selection when a cursor key passes through to the draft', async () => { const harness = createHarness(); await harness.flush(); - harness.state.appState.model = 'k3'; - harness.clock.mono += 600_000; - for (let turn = 1; turn <= 5; turn++) { - harness.controller.notifyTurnStarted(true); - harness.controller.notifyToolCallStarted(); - harness.controller.notifyToolCallStarted(); - harness.controller.notifyTurnEnded(); - } - harness.controller.notifyToolCallStarted(); - harness.elapse(2000); - - expect(harness.track).toHaveBeenCalledWith( - 'feedback_survey', - expect.objectContaining({ - current_model: 'k3', - user_turn_count: 5, - cumulative_tokens: 1234, - virtual_context_tokens: 640, - tool_call_count: 11, - permission_mode: 'manual', - }), - ); - }); - - it('counts finished compactions since mount and resets on remount', async () => { - const harness = createHarness(); - await harness.flush(); - harness.controller.notifyCompactionFinished(); - harness.controller.notifyCompactionFinished(); - harness.appear(); - expect(harness.track).toHaveBeenCalledWith( - 'feedback_survey', - expect.objectContaining({ compaction_count: 2, thinking_effort: 'high' }), - ); - - harness.controller.reset(); - await harness.flush(); - harness.clock.wall += 100_000_000; - harness.appear(); - expect(harness.track).toHaveBeenLastCalledWith( - 'feedback_survey', - expect.objectContaining({ compaction_count: 0 }), - ); - }); - - it('snapshots the config that produced the appearance, not a later refresh', async () => { - let cloudConfig = { ...DEFAULT_SURVEY_POPUP_CONFIG, probability: 0.5 }; - const harness = createHarness({ config: () => cloudConfig }); - await harness.flush(); - harness.appear(); - expect(harness.track).toHaveBeenCalledWith( - 'feedback_survey', - expect.objectContaining({ event_type: 'appeared', config_probability: 0.5 }), - ); - - cloudConfig = { ...cloudConfig, probability: 0.9 }; - harness.typeDigit('1'); - harness.elapse(400); - harness.elapse(3000); - expect(harness.track).toHaveBeenLastCalledWith( - 'feedback_survey', - expect.objectContaining({ event_type: 'responded', config_probability: 0.5 }), - ); - }); - - it('cancels the pending digit selection when a cursor key passes through to the draft', async () => { - const harness = createHarness(); - await harness.flush(); - harness.appear(); + await harness.appear(); harness.editor.setText('2'); harness.typeDigit('2'); expect(harness.controller.handlePreInput(CSI_LEFT)).toBe(false); - harness.elapse(400); + await harness.elapse(400); expect(harness.track).toHaveBeenCalledTimes(1); expect(harness.editor.getText()).toBe('2'); expect(harness.container.children).not.toHaveLength(0); }); - - it('keeps deferring while a region-change refresh is still in flight', async () => { - let region = 'region-a'; - let settle!: () => void; - let first = true; - const harness = createHarness({ - configRegion: () => region, - refreshConfig: () => { - if (first) { - first = false; - return undefined; - } - return new Promise((resolve) => { - settle = resolve; - }); - }, - }); - await harness.flush(); - harness.clock.mono += 600_000; - harness.runTurns(4); - - region = 'region-b'; - harness.runTurns(1); - harness.elapse(2000); - expect(harness.container.children).toHaveLength(0); - - harness.runTurns(1); - harness.elapse(2000); - expect(harness.container.children).toHaveLength(0); - - settle(); - await harness.flush(); - harness.runTurns(1); - harness.elapse(2000); - expect(harness.container.children).not.toHaveLength(0); - }); - - it('defers evaluation until the startup refresh settles', async () => { - let settle!: () => void; - const harness = createHarness({ - refreshConfig: () => - new Promise((resolve) => { - settle = resolve; - }), - }); - await harness.flush(); - harness.clock.mono += 600_000; - harness.runTurns(5); - harness.elapse(2000); - expect(harness.container.children).toHaveLength(0); - expect(harness.track).not.toHaveBeenCalled(); - - settle(); - await harness.flush(); - harness.runTurns(1); - harness.elapse(2000); - expect(harness.container.children).not.toHaveLength(0); - }); - - it('refreshes and defers when the config cache has gone stale', async () => { - let fresh = true; - const refreshConfig = vi.fn(() => { - fresh = true; - }); - const harness = createHarness({ configFresh: () => fresh, refreshConfig }); - await harness.flush(); - harness.clock.mono += 600_000; - harness.runTurns(4); - expect(harness.container.children).toHaveLength(0); - - fresh = false; - harness.clock.mono += 3_600_000; - harness.runTurns(1); - harness.elapse(2000); - expect(refreshConfig).toHaveBeenCalledTimes(2); - expect(harness.container.children).toHaveLength(0); - - await harness.flush(); - harness.runTurns(1); - harness.elapse(2000); - expect(harness.container.children).not.toHaveLength(0); - }); - - it('defers the evaluation that triggers a refresh so a stale policy cannot open the survey', async () => { - let region = 'region-a'; - let config = { ...DEFAULT_SURVEY_POPUP_CONFIG, probability: 1 }; - const refreshConfig = vi.fn(() => { - config = { ...config, probability: 0 }; - }); - const harness = createHarness({ - configRegion: () => region, - config: () => config, - refreshConfig, - random: () => 0.9, - }); - await harness.flush(); - harness.clock.mono += 600_000; - harness.runTurns(4); - - region = 'region-b'; - harness.runTurns(1); - harness.elapse(2000); - expect(refreshConfig).toHaveBeenCalledTimes(2); - expect(harness.container.children).toHaveLength(0); - expect(harness.track).not.toHaveBeenCalled(); - - harness.runTurns(1); - harness.elapse(2000); - expect(harness.container.children).toHaveLength(0); - expect(harness.track).not.toHaveBeenCalled(); - }); - - it('evaluates with the refreshed policy on the next turn after the deferred evaluation', async () => { - let region = 'region-a'; - let config = { ...DEFAULT_SURVEY_POPUP_CONFIG, probability: 1, on_for_models: ['other-model'] }; - const refreshConfig = vi.fn(() => { - config = { ...config, on_for_models: ['*'] }; - }); - const harness = createHarness({ - configRegion: () => region, - config: () => config, - refreshConfig, - }); - await harness.flush(); - harness.clock.mono += 600_000; - harness.runTurns(4); - - region = 'region-b'; - harness.runTurns(1); - harness.elapse(2000); - expect(harness.container.children).toHaveLength(0); - - await harness.flush(); - harness.runTurns(1); - harness.elapse(2000); - expect(harness.container.children).not.toHaveLength(0); - expect(harness.track).toHaveBeenCalledWith( - 'feedback_survey', - expect.objectContaining({ event_type: 'appeared', config_on_for_models: '*' }), - ); - }); - - it('re-refreshes the cloud config when the region changes', async () => { - let region = 'region-a'; - const refreshConfig = vi.fn(); - const harness = createHarness({ refreshConfig, configRegion: () => region }); - await harness.flush(); - expect(refreshConfig).toHaveBeenCalledTimes(1); - - region = 'region-b'; - harness.runTurns(1); - harness.elapse(2000); - expect(refreshConfig).toHaveBeenCalledTimes(2); - }); - - it('re-refreshes the cloud config once the previous refresh is over an hour old', async () => { - const refreshConfig = vi.fn(); - const harness = createHarness({ refreshConfig }); - await harness.flush(); - expect(refreshConfig).toHaveBeenCalledTimes(1); - - harness.clock.mono += 3_597_000; - harness.runTurns(1); - harness.elapse(2000); - expect(refreshConfig).toHaveBeenCalledTimes(1); - - harness.clock.mono += 2_000; - harness.runTurns(1); - harness.elapse(2000); - expect(refreshConfig).toHaveBeenCalledTimes(2); - }); - - it('applies the cloud model gate at evaluation time', async () => { - const harness = createHarness({ - config: () => ({ ...DEFAULT_SURVEY_POPUP_CONFIG, on_for_models: ['other-model'] }), - }); - await harness.flush(); - harness.appear(); - expect(harness.container.children).toHaveLength(0); - }); -}); - -describe('SurveyController cloud config refresh', () => { - it('fires the injected refresh once at mount and not on session reset', async () => { - const refreshConfig = vi.fn(); - const harness = createHarness({ refreshConfig }); - await harness.flush(); - expect(refreshConfig).toHaveBeenCalledTimes(1); - - harness.controller.reset(); - expect(refreshConfig).toHaveBeenCalledTimes(1); - }); - - it('resolves the access token before refreshing the named config', async () => { - mocks.getSurveyPopupConfig.mockClear(); - const harness = createHarness({ accessToken: async () => 'tok' }); - await harness.flush(); - expect(mocks.getSurveyPopupConfig).toHaveBeenCalledWith({ - accessToken: 'tok', - }); - }); - - it('refreshes anonymously when no token is cached', async () => { - mocks.getSurveyPopupConfig.mockClear(); - const harness = createHarness({ accessToken: async () => undefined }); - await harness.flush(); - expect(mocks.getSurveyPopupConfig).toHaveBeenCalledWith({ - accessToken: undefined, - }); - }); - - it.each([ - [ - 'rejects', - async (): Promise => { - throw new Error('no facade'); - }, - ], - [ - 'throws synchronously', - () => { - throw new Error('no facade'); - }, - ], - ])('skips the fetch when the token provider %s', async (_kind, accessToken) => { - mocks.getSurveyPopupConfig.mockClear(); - const harness = createHarness({ - accessToken: accessToken as () => Promise, - }); - await harness.flush(); - expect(mocks.getSurveyPopupConfig).not.toHaveBeenCalled(); - }); - - it('does not fetch without a token provider', async () => { - mocks.getSurveyPopupConfig.mockClear(); - const harness = createHarness(); - await harness.flush(); - expect(mocks.getSurveyPopupConfig).not.toHaveBeenCalled(); - }); }); diff --git a/apps/kimi-code/test/tui/create-tui-state.test.ts b/apps/kimi-code/test/tui/create-tui-state.test.ts index 0ea9f6c3d..a434d262d 100644 --- a/apps/kimi-code/test/tui/create-tui-state.test.ts +++ b/apps/kimi-code/test/tui/create-tui-state.test.ts @@ -1,8 +1,9 @@ +import { ScrollView, TuiAltScreen, TuiMainScreen, VStack } from '@moonshot-ai/pi-tui'; +import { describe, it, expect } from 'vitest'; -import { describe, it, expect, vi } from 'vitest'; - -import { TuiAltScreen, TuiMainScreen } from '@moonshot-ai/pi-tui'; - +import { GutterContainer } from '#/tui/components/chrome/gutter-container'; +import { StickyUserMessageComponent } from '#/tui/components/messages/sticky-user-message'; +import { TranscriptView } from '#/tui/components/messages/transcript-view'; import { createTUIState, type KimiTUIOptions } from '#/tui/kimi-tui'; import type { AppState } from '#/tui/types'; @@ -109,9 +110,8 @@ describe('createTUIState', () => { }); it('builds an alternate-screen renderer with a docked layout in fullscreen mode', () => { - vi.stubEnv('KIMI_CODE_TUI_FULL_SCREEN', '1'); const state = createTUIState({ - initialAppState: fakeInitialAppState(), + initialAppState: { ...fakeInitialAppState(), tuiMode: 'fullscreen' }, startup: { continueLast: false, yolo: false, @@ -119,7 +119,6 @@ describe('createTUIState', () => { plan: false, }, }); - vi.unstubAllEnvs(); expect(state.ui).toBeInstanceOf(TuiAltScreen); expect(state.ui.mode).toBe('fullscreen'); @@ -141,6 +140,17 @@ describe('createTUIState', () => { expect((state.ui as TuiAltScreen).getLayoutRoot()).toBeDefined(); expect(state.ui.children).toHaveLength(0); + // The sticky user message sits above the transcript ScrollView, outside + // the scrolling region, so it is never carried away by scrolling. + const rootChildren = ((state.ui as TuiAltScreen).getLayoutRoot() as VStack).children; + expect(rootChildren[0]).toBeInstanceOf(TranscriptView); + const transcriptChildren = (rootChildren[0] as TranscriptView).children; + expect((transcriptChildren[0] as GutterContainer).children[0]).toBeInstanceOf( + StickyUserMessageComponent, + ); + expect(transcriptChildren[1]).toBeInstanceOf(ScrollView); + expect(rootChildren[1]).toBe(state.dockContainer); + // Mouse capture replaces native terminal link activation / right-click // paste, so both must be routed through renderer callbacks. const internals = state.ui as unknown as { diff --git a/apps/kimi-code/test/tui/export-markdown.test.ts b/apps/kimi-code/test/tui/export-markdown.test.ts index 7e6557733..1fd85a065 100644 --- a/apps/kimi-code/test/tui/export-markdown.test.ts +++ b/apps/kimi-code/test/tui/export-markdown.test.ts @@ -387,6 +387,19 @@ describe('buildExportMarkdown', () => { it('filters out internal messages', () => { const msgs: ContextMessage[] = [ + { + role: 'user', + content: [ + { + type: 'text', + text: '\nhook note\n', + meta: { contentType: 'text/xml', source: 'user prompt submit hook' }, + } as ContentPart, + { type: 'text', text: 'clean prompt' }, + ], + toolCalls: [], + origin: { kind: 'user' }, + }, userMsg('hello', { kind: 'user' }), userMsg('injected stuff', { kind: 'injection', variant: 'system-reminder' }), assistantMsg('response'), @@ -399,6 +412,9 @@ describe('buildExportMarkdown', () => { now, }); expect(md).not.toContain('injected stuff'); + expect(md).not.toContain('hook_result'); + expect(md).not.toContain('hook note'); + expect(md).toContain('- **Topic**: clean prompt'); expect(md).toContain('hello'); expect(md).toContain('response'); }); diff --git a/apps/kimi-code/test/tui/fullscreen-layout.test.ts b/apps/kimi-code/test/tui/fullscreen-layout.test.ts index dd847d05f..886e082c6 100644 --- a/apps/kimi-code/test/tui/fullscreen-layout.test.ts +++ b/apps/kimi-code/test/tui/fullscreen-layout.test.ts @@ -1,3 +1,13 @@ +import { + Spacer, + Text, + VStack, + ScrollView, + type Component, + type TuiMouseEvent, + type Terminal, + TuiAltScreen, +} from '@moonshot-ai/pi-tui'; /** * Fullscreen layout contract tests: the docked chrome must keep the editor's * full height (top border / input / bottom border) even when the transcript @@ -7,18 +17,20 @@ */ import { describe, expect, it, vi } from 'vitest'; -import { Spacer, type Terminal, TuiAltScreen } from '@moonshot-ai/pi-tui'; -import { VirtualTerminal } from '../../../../packages/pi-tui/test/virtual-terminal'; - import { GutterContainer } from '#/tui/components/chrome/gutter-container'; import { MoonLoader } from '#/tui/components/chrome/moon-loader'; import { AssistantMessageComponent } from '#/tui/components/messages/assistant-message'; import { StatusMessageComponent } from '#/tui/components/messages/status-message'; import { UserMessageComponent } from '#/tui/components/messages/user-message'; +import * as userMessages from '#/tui/components/messages/user-message'; import { ActivityPaneComponent } from '#/tui/components/panes/activity-pane'; import { CHROME_GUTTER } from '#/tui/constant/rendering'; import { createTUIState, type KimiTUIOptions } from '#/tui/kimi-tui'; -import type { AppState } from '#/tui/types'; +import type { AppState, TranscriptEntry } from '#/tui/types'; +import { beginScreenTakeover, endScreenTakeover } from '#/tui/utils/screen-takeover'; +import { markTranscriptComponent } from '#/tui/utils/transcript-component-metadata'; + +import { VirtualTerminal } from '../../../../packages/pi-tui/test/virtual-terminal'; const WIDTH = 120; const HEIGHT = 30; @@ -57,7 +69,7 @@ function fakeInitialAppState(): AppState { function stripAnsi(s: string): string { // eslint-disable-next-line no-control-regex - return s.replace(/\x1b\[[0-9;?]*[a-zA-Z]|\x1b\][^\x07]*\x07/g, ''); + return s.replaceAll(/\u001B\[[0-9;?]*[a-zA-Z]|\u001B\][^\u0007]*\u0007/g, ''); } const LONG_MARKDOWN = Array.from( @@ -65,18 +77,16 @@ const LONG_MARKDOWN = Array.from( (_, i) => `### Section ${i + 1}\n\nSome **bold** and \`code\` content in paragraph ${i + 1}.\n`, ).join('\n'); -async function mountFullscreen(): Promise<{ +async function mountFullscreen(height = HEIGHT): Promise<{ state: ReturnType; vt: VirtualTerminal; }> { const opts: KimiTUIOptions = { - initialAppState: fakeInitialAppState(), + initialAppState: { ...fakeInitialAppState(), tuiMode: 'fullscreen' }, startup: { continueLast: false, yolo: false, auto: false, plan: false }, }; - vi.stubEnv('KIMI_CODE_TUI_FULL_SCREEN', '1'); const state = createTUIState(opts); - vi.unstubAllEnvs(); - const vt = new VirtualTerminal(WIDTH, HEIGHT); + const vt = new VirtualTerminal(WIDTH, height); (state.ui as { terminal: Terminal }).terminal = vt; // Footer is mounted into the dock after init (mirrors mountFooter()). @@ -90,7 +100,324 @@ async function mountFullscreen(): Promise<{ return { state, vt }; } +function pillLines(state: ReturnType): string[] { + const root = (state.ui as TuiAltScreen).getLayoutRoot() as VStack; + const transcript = root.children[0] as VStack; + return transcript.children[0]!.render(state.ui.terminal.columns); +} + describe('fullscreen layout', () => { + it('summarizes only the current message, jumps to its start, and searches the original text', async () => { + const { state, vt } = await mountFullscreen(); + for (const [index, content] of ['one', 'two', 'three', 'four\nfive\nsix'].entries()) { + const entry: TranscriptEntry = { + id: `user-${index}`, + kind: 'user', + turnId: 'turn', + content, + renderMode: 'plain', + }; + const message = new UserMessageComponent(content); + markTranscriptComponent(message, entry); + state.transcriptContainer.addChild(message); + } + state.transcriptContainer.addChild(new Text('body\n'.repeat(40), 0, 0)); + const alt = state.ui as TuiAltScreen; + const topRow = () => stripAnsi(vt.getViewport()[0] ?? '').trim(); + alt.renderNow(); + await vt.flush(); + expect(topRow()).toBe('❯ four five six'); + + alt.scrollToTop(); + alt.scrollBy(7); + await vt.waitForRender(); + expect(topRow()).toBe('❯ three'); + expect(stripAnsi(vt.getViewport()[1]!)).toContain('❯ four'); + + alt.scrollBy(1); + await vt.waitForRender(); + expect(alt.viewportTop).toBe(8); + expect(pillLines(state)).toEqual([]); + expect(topRow()).toContain('❯ four'); + + alt.scrollBy(1); + await vt.waitForRender(); + expect(topRow()).toBe('❯ four five'); + expect(stripAnsi(vt.getViewport()[1]!)).toContain('six'); + + vt.sendInput('\u001B[<0;5;1M'); + vt.sendInput('\u001B[<0;5;1m'); + await vt.waitForRender(); + expect(alt.viewportTop).toBe(8); + expect(pillLines(state)).toEqual([]); + expect(topRow()).toContain('❯ four'); + + alt.scrollToBottom(); + await vt.waitForRender(); + const write = vi.spyOn(vt, 'write'); + vt.sendInput('\u001B[102;6u'); + vt.sendInput('four'); + await vt.waitForRender(); + expect(vt.getViewport().some((line) => line.includes('1/1'))).toBe(true); + expect(pillLines(state)).toEqual([]); + expect(vt.getViewport().some((line) => stripAnsi(line).includes('❯ four'))).toBe(true); + expect(write.mock.calls.some(([data]) => data.includes('\u001B[1;7mfour\u001B[22;27m'))).toBe( + true, + ); + alt.scrollToTop(); + alt.scrollBy(8); + await vt.waitForRender(); + expect(pillLines(state)).toEqual([]); + expect(topRow()).toContain('❯ four'); + alt.stop(); + }); + + it('keeps copied text unchanged when a scroll toggles the pill after selection', async () => { + const { state, vt } = await mountFullscreen(); + const entry: TranscriptEntry = { + id: 'user', + kind: 'user', + content: 'user first\nuser second', + renderMode: 'plain', + }; + const message = new UserMessageComponent(entry.content); + markTranscriptComponent(message, entry); + state.transcriptContainer.addChild(message); + state.transcriptContainer.addChild( + new Text('alpha\nbeta\ngamma\n' + 'body\n'.repeat(40), 0, 0), + ); + const alt = state.ui as TuiAltScreen; + alt.setCopyOnSelect(false); + alt.renderNow(); + alt.scrollToTop(); + alt.scrollBy(2); + await vt.waitForRender(); + expect(vt.getViewport()[2]).toContain('alpha'); + vt.sendInput(`\u001B[<0;${CHROME_GUTTER + 1};3M`); + vt.sendInput(`\u001B[<32;${CHROME_GUTTER + 5};3M`); + vt.sendInput(`\u001B[<0;${CHROME_GUTTER + 5};3m`); + await vt.waitForRender(); + const write = vi.spyOn(vt, 'write'); + const copiedAlpha = `\u001B]52;c;${Buffer.from('alpha').toString('base64')}\u0007`; + await alt.copyActiveSelectionToClipboard(); + expect(write).toHaveBeenCalledWith(copiedAlpha); + write.mockClear(); + alt.scrollBy(1); + await vt.waitForRender(); + expect(pillLines(state)).toHaveLength(1); + await alt.copyActiveSelectionToClipboard(); + expect(write).toHaveBeenCalledWith(copiedAlpha); + write.mockClear(); + alt.scrollBy(-1); + await vt.waitForRender(); + expect(pillLines(state)).toEqual([]); + await alt.copyActiveSelectionToClipboard(); + expect(write).toHaveBeenCalledWith(copiedAlpha); + alt.stop(); + }); + + it('searches only the transcript and highlights the original first line where the pill would appear', async () => { + const { state, vt } = await mountFullscreen(); + const entry: TranscriptEntry = { + id: 'user', + kind: 'user', + content: 'needle question', + renderMode: 'plain', + }; + const message = new UserMessageComponent(entry.content); + markTranscriptComponent(message, entry); + state.transcriptContainer.addChild(message); + state.transcriptContainer.addChild(new Text('body\n'.repeat(40), 0, 0)); + const alt = state.ui as TuiAltScreen; + alt.renderNow(); + const write = vi.spyOn(vt, 'write'); + vt.sendInput('\u001B[102;6u'); + vt.sendInput('needle'); + await vt.waitForRender(); + expect(vt.getViewport().some((line) => line.includes('1/1'))).toBe(true); + expect(pillLines(state)).toEqual([]); + expect(write.mock.calls.some(([data]) => data.includes('\u001B[1;7mneedle\u001B[22;27m'))).toBe( + true, + ); + + alt.scrollToTop(); + alt.scrollBy(2); + await vt.waitForRender(); + expect(alt.viewportTop).toBe(2); + expect(pillLines(state)).toEqual([]); + expect(vt.getViewport()[0]).toContain('needle question'); + + write.mockClear(); + alt.scrollToBottom(); + await vt.waitForRender(); + expect(pillLines(state)).toHaveLength(1); + expect(vt.getViewport()[0]).toContain('needle question'); + expect(vt.getViewport().some((line) => line.includes('1/1'))).toBe(true); + expect( + write.mock.calls.every(([data]) => !data.includes('\u001B[1;7mneedle\u001B[22;27m')), + ).toBe(true); + alt.stop(); + }); + + it('updates the candidate position and wrapping after a width change', async () => { + const { state, vt } = await mountFullscreen(); + for (const [id, content] of [ + ['first', 'wide text '.repeat(35)], + ['latest', 'latest question'], + ]) { + const entry: TranscriptEntry = { + id: id!, + kind: 'user', + content: content!, + renderMode: 'plain', + }; + const message = new UserMessageComponent(entry.content); + markTranscriptComponent(message, entry); + state.transcriptContainer.addChild(message); + } + state.transcriptContainer.addChild(new Text('body\n'.repeat(40), 0, 0)); + const alt = state.ui as TuiAltScreen; + alt.renderNow(); + const measure = vi.spyOn(userMessages, 'userMessageLineHeights'); + try { + vt.resize(60, HEIGHT); + await vt.waitForRender(); + expect(measure).toHaveBeenCalledTimes(1); + expect(measure).toHaveBeenCalledWith('latest question', 60 - CHROME_GUTTER * 2, undefined); + vt.sendInput('\u001B[<0;5;1M'); + vt.sendInput('\u001B[<0;5;1m'); + await vt.waitForRender(); + expect(alt.viewportTop).toBeGreaterThan(2); + expect(pillLines(state)).toEqual([]); + expect(vt.getViewport()[0]).toContain('latest question'); + } finally { + measure.mockRestore(); + alt.stop(); + } + }); + + it('leaves a temporary fullscreen viewer alone and resumes the transcript when restored', async () => { + const { state, vt } = await mountFullscreen(); + const alt = state.ui as TuiAltScreen; + const takeover = beginScreenTakeover(alt, new Text('temporary viewer', 0, 0)); + const render = vi.spyOn(state.transcriptContainer, 'render'); + state.transcriptContainer.addChild(new Text('body\n'.repeat(40), 0, 0)); + alt.renderNow(); + await vt.flush(); + expect(vt.getViewport()[0]).toContain('temporary viewer'); + expect(render).not.toHaveBeenCalled(); + endScreenTakeover(alt, takeover); + alt.renderNow(); + await vt.flush(); + expect(render).toHaveBeenCalled(); + expect(vt.getViewport().some((line) => line.includes('temporary viewer'))).toBe(false); + alt.stop(); + }); + + it('commits the resumed pill in one frame without moving the follow position during correction', async () => { + const { state, vt } = await mountFullscreen(); + const entry: TranscriptEntry = { + id: 'user', + kind: 'user', + content: 'resumed message', + renderMode: 'plain', + }; + const message = new UserMessageComponent(entry.content); + markTranscriptComponent(message, entry); + state.transcriptContainer.addChild(message); + state.transcriptContainer.addChild( + new Text(Array.from({ length: 40 }, (_, i) => `body ${i}`).join('\n'), 0, 0), + ); + const alt = state.ui as TuiAltScreen; + const view = (alt.getLayoutRoot() as VStack).children[0] as VStack; + const scroll = view.children[1] as ScrollView; + const passes: { top: number; height: number }[] = []; + const dispose = alt.addLayoutEffect(() => + passes.push({ top: scroll.scrollTop, height: scroll.viewportHeight }), + ); + const write = vi.spyOn(vt, 'write'); + alt.renderNow(); + await vt.flush(); + expect(write.mock.calls.filter(([data]) => data.includes('\u001B[?2026h'))).toHaveLength(1); + expect(stripAnsi(vt.getViewport()[0]!)).toContain('❯ resumed message'); + expect(passes).toHaveLength(2); + expect(passes[0]!.top).toBe(passes[1]!.top); + expect(passes[0]!.height).toBe(passes[1]!.height + 1); + dispose(); + alt.stop(); + }); + + it('keeps exact scroll positions while crossing the pin threshold in either direction', async () => { + const { state, vt } = await mountFullscreen(); + const entry: TranscriptEntry = { + id: 'user', + kind: 'user', + content: 'first\nsecond\nthird', + renderMode: 'plain', + }; + const message = new UserMessageComponent(entry.content); + markTranscriptComponent(message, entry); + state.transcriptContainer.addChild(message); + state.transcriptContainer.addChild(new Text('body\n'.repeat(40), 0, 0)); + const alt = state.ui as TuiAltScreen; + alt.renderNow(); + alt.scrollToTop(); + alt.scrollBy(2); + await vt.waitForRender(); + expect(alt.viewportTop).toBe(2); + expect(pillLines(state)).toEqual([]); + expect(stripAnsi(vt.getViewport()[1]!)).toContain('second'); + alt.scrollBy(1); + await vt.waitForRender(); + expect(alt.viewportTop).toBe(3); + expect(pillLines(state).map(stripAnsi).join('')).toContain('first second'); + expect(stripAnsi(vt.getViewport()[1]!)).toContain('third'); + alt.scrollBy(-1); + await vt.waitForRender(); + expect(alt.viewportTop).toBe(2); + expect(pillLines(state)).toEqual([]); + expect(stripAnsi(vt.getViewport()[1]!)).toContain('second'); + alt.stop(); + }); + + it('maps transcript clicks correctly with and without content padding', async () => { + const { state, vt } = await mountFullscreen(); + const entry: TranscriptEntry = { + id: 'user', + kind: 'user', + content: 'question', + renderMode: 'plain', + }; + const message = new UserMessageComponent(entry.content); + markTranscriptComponent(message, entry); + state.transcriptContainer.addChild(message); + const clicks: TuiMouseEvent[] = []; + const body: Component = { + render: () => Array.from({ length: 40 }, (_, i) => `body ${i}`), + invalidate() {}, + handleMouse: (event) => { + clicks.push(event); + return { handled: true }; + }, + }; + state.transcriptContainer.addChild(body); + const alt = state.ui as TuiAltScreen; + alt.renderNow(); + await vt.flush(); + vt.sendInput('\u001B[<0;5;2M'); + vt.sendInput('\u001B[<0;5;2m'); + await vt.waitForRender(); + expect(clicks.at(-1)?.y).toBe(alt.viewportTop - 2); + alt.scrollToTop(); + await vt.waitForRender(); + vt.sendInput('\u001B[<0;5;4M'); + vt.sendInput('\u001B[<0;5;4m'); + await vt.waitForRender(); + expect(clicks.at(-1)?.y).toBe(0); + expect(clicks.at(-1)?.width).toBe(WIDTH - CHROME_GUTTER * 2); + alt.stop(); + }); + it('keeps the editor bottom border visible after a streaming grow/shrink cycle', async () => { const { state, vt } = await mountFullscreen(); expect(state.ui).toBeInstanceOf(TuiAltScreen); @@ -154,18 +481,350 @@ describe('fullscreen layout', () => { // Zones anchor every user/assistant message, so the nearest previous zone // below the fold is the current turn's assistant message, then the user // message that started the turn. - vt.sendInput('\x1b[1;6A'); // ctrl+shift+up = previous prompt + vt.sendInput('\u001B[1;6A'); // ctrl+shift+up = previous prompt await vt.waitForRender(); expect(topRows()[1]).toContain('回答二'); - vt.sendInput('\x1b[1;6A'); + vt.sendInput('\u001B[1;6A'); await vt.waitForRender(); expect(topRows()[1]).toContain('第二轮提问'); - vt.sendInput('\x1b[1;6B'); // ctrl+shift+down = next prompt + vt.sendInput('\u001B[1;6B'); // ctrl+shift+down = next prompt await vt.waitForRender(); expect(topRows()[1]).toContain('回答二'); state.ui.stop(); }); + + it('pins the scrolled-past user message and reveals its original first line on click', async () => { + const { state, vt } = await mountFullscreen(); + + const userEntry: TranscriptEntry = { + id: 'u1', + kind: 'user', + renderMode: 'plain', + content: '第一轮问题', + }; + const userComponent = new UserMessageComponent(userEntry.content); + markTranscriptComponent(userComponent, userEntry); + state.transcriptContainer.addChild(userComponent); + const assistant = new AssistantMessageComponent(); + state.transcriptContainer.addChild(assistant); + assistant.updateContent(LONG_MARKDOWN, { transient: false }); + state.ui.requestRender(true); + await vt.waitForRender(); + + const alt = state.ui as TuiAltScreen; + const topRow = () => stripAnsi(vt.getViewport()[0] ?? '').trimEnd(); + const messageRowCount = () => + Array.from({ length: HEIGHT }, (_, i) => stripAnsi(vt.getViewport()[i] ?? '')).filter( + (line) => line.includes('第一轮问题'), + ).length; + + // Following at the bottom: the latest message's first line has scrolled + // out, so it is pinned. + expect(alt.isFollowingOutput).toBe(true); + expect(alt.viewportTop).toBeGreaterThan(1); + expect(topRow()).toContain('❯ 第一轮问题'); + expect(messageRowCount()).toBe(1); + + // The hidden pill gives its row back to padding inside the scroll content. + alt.scrollToTop(); + await vt.waitForRender(); + expect(alt.viewportTop).toBe(0); + expect(topRow()).not.toContain('❯ 第一轮问题'); + + // scrollTop lands on the message's first content line: the message itself + // sits at the top of the screen — no pill, no blank slot row above it. + alt.scrollBy(2); + await vt.waitForRender(); + expect(alt.viewportTop).toBe(2); + expect(topRow()).toContain('❯ 第一轮问题'); + expect(messageRowCount()).toBe(1); + + alt.scrollBy(10); + await vt.waitForRender(); + const scrolledTop = alt.viewportTop; + expect(scrolledTop).toBeGreaterThan(1); + expect(topRow()).toContain('❯ 第一轮问题'); + expect(messageRowCount()).toBe(1); + + vt.sendInput('\u001B[<65;5;1M'); // wheel down over the pill row + await vt.waitForRender(); + expect(alt.viewportTop).toBeGreaterThan(scrolledTop); + + vt.sendInput('\u001B[<0;5;1M'); // press + release = click on the pill row + vt.sendInput('\u001B[<0;5;1m'); + await vt.waitForRender(); + // The pill disappears and the original first line occupies the same row. + expect(alt.viewportTop).toBe(2); + expect(topRow()).toContain('❯ 第一轮问题'); + expect(messageRowCount()).toBe(1); + + state.ui.stop(); + }); + + it('grows the pill summary as more lines of a multi-line message scroll out', async () => { + const { state, vt } = await mountFullscreen(); + + const userEntry: TranscriptEntry = { + id: 'u1', + kind: 'user', + renderMode: 'plain', + content: '第一行\n第二行\n第三行', + }; + const userComponent = new UserMessageComponent(userEntry.content); + markTranscriptComponent(userComponent, userEntry); + state.transcriptContainer.addChild(userComponent); + const assistant = new AssistantMessageComponent(); + state.transcriptContainer.addChild(assistant); + assistant.updateContent(LONG_MARKDOWN, { transient: false }); + state.ui.requestRender(true); + await vt.waitForRender(); + + const alt = state.ui as TuiAltScreen; + const topRow = () => stripAnsi(vt.getViewport()[0] ?? '').trim(); + + expect(topRow()).toBe('❯ 第一行 第二行 第三行'); + + alt.scrollToTop(); + await vt.waitForRender(); + expect(topRow()).not.toContain('❯'); + + alt.scrollBy(2); // the original first content line occupies the top row + await vt.waitForRender(); + expect(topRow()).toContain('❯ 第一行'); + + alt.scrollBy(1); + await vt.waitForRender(); + expect(topRow()).toBe('❯ 第一行 第二行'); + + alt.scrollBy(1); + await vt.waitForRender(); + expect(topRow()).toBe('❯ 第一行 第二行 第三行'); + + vt.sendInput('\u001B[<0;5;1M'); // press + release = click on the pill row + vt.sendInput('\u001B[<0;5;1m'); + await vt.waitForRender(); + expect(alt.viewportTop).toBe(2); + expect(topRow()).toContain('❯ 第一行'); + expect(stripAnsi(vt.getViewport()[1] ?? '')).toContain('第二行'); + + state.ui.stop(); + }); + + it('anchors the pill to the first visible text line of a message with leading blank lines', async () => { + const { state, vt } = await mountFullscreen(); + + const userEntry: TranscriptEntry = { + id: 'u1', + kind: 'user', + renderMode: 'plain', + content: '\n\n第一行\n第二行', + }; + const userComponent = new UserMessageComponent(userEntry.content); + markTranscriptComponent(userComponent, userEntry); + state.transcriptContainer.addChild(userComponent); + const assistant = new AssistantMessageComponent(); + state.transcriptContainer.addChild(assistant); + assistant.updateContent(LONG_MARKDOWN, { transient: false }); + state.ui.requestRender(true); + await vt.waitForRender(); + + const alt = state.ui as TuiAltScreen; + const topRow = () => stripAnsi(vt.getViewport()[0] ?? '').trim(); + const countRows = (text: string) => + Array.from({ length: HEIGHT }, (_, i) => stripAnsi(vt.getViewport()[i] ?? '')).filter( + (line) => line.includes(text), + ).length; + + alt.scrollToTop(); + await vt.waitForRender(); + expect(alt.viewportTop).toBe(0); + + alt.scrollBy(3); // padding, spacer and one leading blank line are out + await vt.waitForRender(); + expect(alt.viewportTop).toBe(3); + expect(topRow()).not.toContain('第一行'); + expect(countRows('第一行')).toBe(1); + + alt.scrollBy(1); // the message's own first text line sits at the top: still no pill + await vt.waitForRender(); + expect(alt.viewportTop).toBe(4); + expect(topRow()).toContain('第一行'); + expect(topRow()).not.toContain('❯'); + expect(countRows('第一行')).toBe(1); + + alt.scrollBy(1); // the first text line is out: the pill takes over + await vt.waitForRender(); + expect(alt.viewportTop).toBe(5); + expect(countRows('第一行')).toBe(1); + expect(topRow()).toBe('❯ 第一行 第二行'); + + state.ui.stop(); + }); + + it('pins the previous message after navigating onto a later message head', async () => { + const { state, vt } = await mountFullscreen(); + + const addUser = (id: string, text: string) => { + const entry: TranscriptEntry = { id, kind: 'user', renderMode: 'plain', content: text }; + const component = new UserMessageComponent(entry.content); + markTranscriptComponent(component, entry); + state.transcriptContainer.addChild(component); + }; + const addAssistant = () => { + const component = new AssistantMessageComponent(); + state.transcriptContainer.addChild(component); + component.updateContent(LONG_MARKDOWN, { transient: false }); + }; + addUser('u1', '第一轮问题'); + addAssistant(); + addUser('u2', '第二轮问题'); + addAssistant(); + state.ui.requestRender(true); + await vt.waitForRender(); + + const alt = state.ui as TuiAltScreen; + const topRow = () => stripAnsi(vt.getViewport()[0] ?? '').trimEnd(); + const countRows = (text: string) => + Array.from({ length: HEIGHT }, (_, i) => stripAnsi(vt.getViewport()[i] ?? '')).filter( + (line) => line.includes(text), + ).length; + + expect(topRow()).toContain('❯ 第二轮问题'); + + vt.sendInput('\u001B[1;6A'); // lands on the second assistant's zone; 第二轮问题 first line out + await vt.waitForRender(); + expect(topRow()).toContain('❯ 第二轮问题'); + expect(countRows('第二轮问题')).toBe(1); + + // Lands on 第二轮问题's own head (its spacer line): 第二轮's first content + // line is still visible below the top, so the pill switches to 第一轮问题 — + // CSS-sticky semantics, not a duplicate. + vt.sendInput('\u001B[1;6A'); + await vt.waitForRender(); + expect(topRow()).toContain('❯ 第一轮问题'); + expect(countRows('第二轮问题')).toBe(1); + expect(countRows('第一轮问题')).toBe(1); + + vt.sendInput('\u001B[1;6A'); // lands on the first assistant's zone; 第一轮问题 stays pinned + await vt.waitForRender(); + expect(topRow()).toContain('❯ 第一轮问题'); + expect(countRows('第一轮问题')).toBe(1); + + vt.sendInput('\u001B[1;6A'); // lands on 第一轮问题's head: no candidate above -> no pill + await vt.waitForRender(); + expect(topRow()).toContain('❯ 第一轮问题'); + expect(pillLines(state)).toEqual([]); + expect(countRows('第一轮问题')).toBe(1); + + state.ui.stop(); + }); + + it('stays unpinned when the message first line lands exactly at the follow position', async () => { + const { state, vt } = await mountFullscreen(); + + const userEntry: TranscriptEntry = { + id: 'u1', + kind: 'user', + renderMode: 'plain', + content: '边界消息', + }; + const userComponent = new UserMessageComponent(userEntry.content); + markTranscriptComponent(userComponent, userEntry); + state.transcriptContainer.addChild(userComponent); + // The dock takes 5 rows (activity 1 + editor 3 + footer 1), leaving a + // 25-row scroll viewport. Padding + 2 message rows + 24 filler rows + // puts the follow position at scrollTop 2, exactly the first text line. + state.transcriptContainer.addChild( + new Text(Array.from({ length: 24 }, (_, i) => `填充行 ${i + 1}`).join('\n'), 0, 0), + ); + state.ui.requestRender(true); + await vt.waitForRender(); + + const alt = state.ui as TuiAltScreen; + expect(alt.isFollowingOutput).toBe(true); + // The original first line sits at the top, with no external header row. + expect(alt.viewportTop).toBe(2); + expect(pillLines(state)).toEqual([]); + expect(stripAnsi(vt.getViewport()[0] ?? '')).toContain('边界消息'); + + state.ui.stop(); + }); + + it.each([4, 5])('preserves the editor on a %i-row terminal without a pill', async (height) => { + const { state, vt } = await mountFullscreen(height); + state.editor.setText('draft input'); + + const userEntry: TranscriptEntry = { + id: 'u1', + kind: 'user', + renderMode: 'plain', + content: '压缩场景', + }; + const userComponent = new UserMessageComponent(userEntry.content); + markTranscriptComponent(userComponent, userEntry); + state.transcriptContainer.addChild(userComponent); + state.transcriptContainer.addChild( + new Text(Array.from({ length: 30 }, (_, i) => `长文 ${i + 1}`).join('\n'), 0, 0), + ); + state.ui.requestRender(true); + await vt.waitForRender(); + + const alt = state.ui as TuiAltScreen; + expect(alt.isFollowingOutput).toBe(true); + expect(pillLines(state)).toEqual([]); + const rows = vt.getViewport(); + expect(rows[0]).toContain('长文 30'); + expect(rows[1]).toContain('╭'); + expect(rows[2]).toContain('draft input'); + expect(rows[3]).toContain('╰'); + if (height === 5) expect(rows[4]).toContain('test-model'); + + state.ui.stop(); + }); + + it('hides and restores the pill when resizing or dock growth leaves only one transcript row', async () => { + const { state, vt } = await mountFullscreen(7); + const entry: TranscriptEntry = { + id: 'user', + kind: 'user', + renderMode: 'plain', + content: 'question', + }; + const message = new UserMessageComponent(entry.content); + markTranscriptComponent(message, entry); + state.transcriptContainer.addChild(message); + state.transcriptContainer.addChild( + new Text(Array.from({ length: 30 }, (_, i) => `body ${i + 1}`).join('\n'), 0, 0), + ); + state.ui.requestRender(); + await vt.waitForRender(); + expect(pillLines(state)).toHaveLength(1); + + vt.resize(WIDTH, 4); + await vt.waitForRender(); + expect(pillLines(state)).toEqual([]); + expect(vt.getViewport()[0]).toContain('body 30'); + + vt.resize(WIDTH, 7); + await vt.waitForRender(); + expect(pillLines(state)).toHaveLength(1); + expect(vt.getViewport()[1]).toContain('body 30'); + + state.activityContainer.addChild(new Text('activity', 0, 0)); + state.ui.requestRender(); + await vt.waitForRender(); + expect(pillLines(state)).toEqual([]); + expect(vt.getViewport()[0]).toContain('body 30'); + + state.activityContainer.clear(); + state.ui.requestRender(); + await vt.waitForRender(); + expect(pillLines(state)).toHaveLength(1); + expect(vt.getViewport()[1]).toContain('body 30'); + + state.ui.stop(); + }); }); diff --git a/apps/kimi-code/test/tui/input/image-placeholder.test.ts b/apps/kimi-code/test/tui/input/image-placeholder.test.ts index 67f5939bd..93eae73f1 100644 --- a/apps/kimi-code/test/tui/input/image-placeholder.test.ts +++ b/apps/kimi-code/test/tui/input/image-placeholder.test.ts @@ -9,13 +9,14 @@ import { join } from 'node:path'; import { describe, it, expect } from 'vitest'; -import { parseDaemonFileUrl } from '@moonshot-ai/kimi-code-sdk'; +import { parseDaemonFileUrl, type PromptPart } from '@moonshot-ai/kimi-code-sdk'; import { KIMI_CODE_HOME_ENV } from '#/constant/app'; import { ImageAttachmentStore } from '#/tui/utils/image-attachment-store'; import { extractMediaAttachments, makeExtractionResendable, + omitExpiredVideoFileRefs, pendingMediaIngestions, persistOriginalImageSync, refreshExpiringImageFileRefs, @@ -65,7 +66,51 @@ function videoUrlFromParts(parts: unknown[]): string { return part.videoUrl.url; } +describe('omitExpiredVideoFileRefs', () => { + it('omits an expired video only when its skill argument has a cached copy', () => { + const store = new ImageAttachmentStore(); + const expired = store.addVideo('video/mp4', '/tmp/expired.mp4'); + const live = store.addVideo('video/mp4', '/tmp/live.mp4'); + store.completeVideo(expired, { fileId: 'file-expired', fileExpiresAt: Date.now() - 1 }); + store.completeVideo(live, { fileId: 'file-live', fileExpiresAt: Date.now() + 3600_000 }); + const parts: PromptPart[] = [ + { type: 'text', text: 'describe these videos' }, + { type: 'video_url', videoUrl: { url: 'kimi-file://file-expired' } }, + { type: 'video_url', videoUrl: { url: 'kimi-file://file-live' } }, + { type: 'video_url', videoUrl: { url: 'kimi-file://file-uncached' } }, + { type: 'image_url', imageUrl: { url: 'data:image/png;base64,AQ==' } }, + ]; + expect(omitExpiredVideoFileRefs(parts, [expired, live])).toEqual([ + parts[0], parts[2], parts[3], parts[4], + ]); + expect(omitExpiredVideoFileRefs(parts, [])).toEqual(parts); + }); +}); + describe('extractMediaAttachments', () => { + it('uses captured argument media after a reset without retaining a reused attachment id', () => { + const { cleanup } = setupTempCache(); + try { + const store = new ImageAttachmentStore(); + const original = store.addImage(new Uint8Array([1]), 'image/png', 1, 1); + const extraction = extractMediaAttachments(original.placeholder, store); + store.clear(); + const current = store.addImage(new Uint8Array([2]), 'image/png', 1, 1, undefined, 'file-current'); + expect(current.id).toBe(original.id); + const later = store.addImage(new Uint8Array([3]), 'image/png', 1, 1); + const rewrite = rewriteMediaPlaceholders( + `${original.placeholder} ${later.placeholder}`, store, 'plain', extraction.mediaSnapshots, + ); + expect(rewrite.text).toContain(later.placeholder); + expect(rewrite.hasMedia).toBe(true); + expect(readFileSync(rewrite.stagingPaths[0]!)).toEqual(Buffer.from([1])); + expect(rewrite.imageAttachmentIds).toEqual([]); + expect(rewrite.videoAttachmentIds).toEqual([]); + expect(store.takeFileIds([current.id])).toEqual(['file-current']); + } finally { + cleanup(); + } + }); it('returns no parts and hasMedia=false for plain text', () => { const store = new ImageAttachmentStore(); const r = extractMediaAttachments('hello world', store); diff --git a/apps/kimi-code/test/tui/kimi-tui-message-flow.test.ts b/apps/kimi-code/test/tui/kimi-tui-message-flow.test.ts index fe0aeb442..af6a4a8c5 100644 --- a/apps/kimi-code/test/tui/kimi-tui-message-flow.test.ts +++ b/apps/kimi-code/test/tui/kimi-tui-message-flow.test.ts @@ -1,6 +1,8 @@ import { AsyncLocalStorage } from 'node:async_hooks'; import { existsSync } from 'node:fs'; import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises'; +import { createServer } from 'node:http'; +import type { AddressInfo } from 'node:net'; import { tmpdir } from 'node:os'; import { join, resolve } from 'node:path'; @@ -8,17 +10,23 @@ import { deleteAllKittyImages, resetCapabilitiesCache, setCapabilities, + type TuiMouseEvent, } from '@moonshot-ai/pi-tui'; -import type { - ApprovalRequest, - ApprovalResponse, - Event, - GoalSnapshot, - Session, +import { + createKimiHarness, + ErrorCodes, + KimiError, + type ApprovalRequest, + type ApprovalResponse, + type Event, + type GoalSnapshot, + type Session, } from '@moonshot-ai/kimi-code-sdk'; import { afterEach, describe, expect, it, vi } from 'vitest'; import { ApprovalPanelComponent } from '#/tui/components/dialogs/approval-panel'; +import { CacheHintDialogComponent } from '#/tui/components/dialogs/cache-hint-dialog'; +import * as cacheHintConfig from '#/utils/cache-hint-config'; import { EffortSelectorComponent } from '#/tui/components/dialogs/effort-selector'; import { kimiCodePluginMarketplaceUrl } from '#/constant/app'; import { MOON_SPINNER_FRAMES } from '#/tui/constant/rendering'; @@ -118,6 +126,7 @@ function stripSgr(text: string): string { interface MessageDriver { state: TUIState; + btwPanelController: KimiTUI['btwPanelController']; surveyController: SurveyController; streamingUI: StreamingUIController; sessionReplay: SessionReplayRenderer; @@ -138,6 +147,9 @@ interface MessageDriver { clearQueuedMessages(): void; closeSession(reason: string): Promise; setSession(session: unknown): Promise; + switchToSession(session: Session, statusMessage: string): Promise; + reloadCurrentSessionView(session: Session, statusMessage: string): Promise; + createNewSession(): Promise; syncRuntimeState(session?: unknown): Promise; getCurrentSessionId(): string; } @@ -217,6 +229,7 @@ function makeSession(overrides: Record = {}) { getGoal: vi.fn(async () => ({ goal: null })), setApprovalHandler: vi.fn(), setQuestionHandler: vi.fn(), + setStaleReloadHandler: vi.fn(), setModel: vi.fn(async (alias: string) => { model = alias; }), @@ -244,6 +257,7 @@ function makeSession(overrides: Record = {}) { }, context: { history: [] }, replay: [], + userTurnCount: 0, }, }, })), @@ -297,6 +311,7 @@ function makeHarness(session = makeSession(), overrides: Record }, })), setConfig: vi.fn(async () => ({ providers: {} })), + onConfigSectionChanged: vi.fn(() => vi.fn()), createSession: vi.fn(async () => session), resumeSession: vi.fn(async () => session), forkSession: vi.fn(async () => session), @@ -311,6 +326,7 @@ function makeHarness(session = makeSession(), overrides: Record deleteFile: vi.fn(async () => {}), close: vi.fn(async () => {}), track: vi.fn(), + trackWithContext: vi.fn(), setTelemetryContext: vi.fn(), get interactiveAgentId() { return interactiveAgentScope.getStore() ?? 'main'; @@ -615,11 +631,18 @@ describe('KimiTUI message flow', () => { expect(harness.createSession).not.toHaveBeenCalled(); - driver.handleUserInput('/skill:my-skill'); + driver.handleUserInput('/skill:my-skill src/app.ts'); await vi.waitFor(() => { - expect(session.activateSkill).toHaveBeenCalledWith('my-skill', ''); + expect(session.promptWithSkills).toHaveBeenCalledWith( + '/skill:my-skill src/app.ts', + [{ name: 'my-skill', args: 'src/app.ts' }], + ); + expect(driver.state.transcriptEntries.filter((entry) => entry.kind === 'user')).toMatchObject([ + { content: '/skill:my-skill src/app.ts' }, + ]); }); + expect(session.activateSkill).not.toHaveBeenCalled(); expect(harness.createSession).toHaveBeenCalledTimes(1); expect(driver.getCurrentSessionId()).toBe('ses-lazy'); }); @@ -819,7 +842,11 @@ describe('KimiTUI message flow', () => { expect(session.prompt).not.toHaveBeenCalled(); }); - it('queues an inline-skill prompt while a goal is active (v2 engine)', async () => { + it.each([ + { input: '/skill:review check', skills: [{ name: 'review', args: 'check' }] }, + { input: 'check /skill:review', skills: [{ name: 'review' }] }, + { input: '/skill:review check /skill:review', skills: [{ name: 'review' }] }, + ])('submits a skill prompt at an idle goal boundary ($input)', async ({ input, skills }) => { const session = makeSession({ id: 'ses-lazy', listSkills: vi.fn(async () => [ @@ -846,18 +873,17 @@ describe('KimiTUI message flow', () => { await (driver as unknown as { ensureSession(): Promise }).ensureSession(); driver.state.appState.goal = makeActiveGoalSnapshot(); - driver.handleUserInput('check /skill:review'); + driver.state.editor.setText(input); + driver.state.editor.handleInput('\r'); - expect(session.promptWithSkills).not.toHaveBeenCalled(); - expect(driver.state.queuedMessages).toEqual([ - expect.objectContaining({ - text: 'check /skill:review', - inlineSkillActivations: [{ skillName: 'review' }], - }), - ]); + await vi.waitFor(() => { + expect(session.promptWithSkills).toHaveBeenCalledWith(input, skills); + }); + expect(driver.state.queuedMessages).toEqual([]); + expect(driver.state.appState.goal?.status).toBe('active'); }); - it('queues a leading-combo bundle while busy instead of rejecting it (v2 engine)', async () => { + it.each([false, true])('queues a leading-combo bundle while busy instead of rejecting it (goal=%s)', async (goalActive) => { const session = makeSession({ id: 'ses-lazy' }); const startupInput: KimiTUIStartupInput = { ...makeStartupInput(), @@ -878,7 +904,8 @@ describe('KimiTUI message flow', () => { await ( driver as unknown as { refreshSkillCommands(): Promise } ).refreshSkillCommands(); - driver.state.appState.goal = makeActiveGoalSnapshot(); + if (goalActive) driver.state.appState.goal = makeActiveGoalSnapshot(); + driver.state.appState.streamingPhase = 'waiting'; driver.handleUserInput('/skill:review check this /skill:security'); @@ -891,7 +918,7 @@ describe('KimiTUI message flow', () => { ]); }); - it('does not append a user entry when the grouped submission is rejected (v2 engine)', async () => { + it('keeps submitted skill history when the grouped submission is rejected (v2 engine)', async () => { const session = makeSession({ id: 'ses-lazy', listSkills: vi.fn(async () => [ @@ -927,7 +954,146 @@ describe('KimiTUI message flow', () => { await vi.waitFor(() => { expect(driver.state.appState.streamingPhase).toBe('idle'); }); - expect(driver.state.transcriptEntries.filter((entry) => entry.kind === 'user')).toHaveLength(0); + expect(driver.state.transcriptEntries.filter((entry) => entry.kind === 'user')).toMatchObject([ + { content: 'please /skill:review', skillNames: ['review'] }, + ]); + }); + + it('refreshes the view through the stale-reload handler while the prompt stays in flight (v2 engine)', async () => { + let staleReload!: () => Promise; + let releasePrompt!: () => void; + const session = makeSession({ + id: 'ses-1', + setStaleReloadHandler: vi.fn((handler: () => Promise) => { + staleReload = handler; + }), + prompt: vi.fn( + () => + new Promise((resolve) => { + releasePrompt = resolve; + }), + ), + }); + const { driver, harness } = await makeDriver(session, { reloadSession: vi.fn() }); + + driver.handleUserInput('original message'); + await vi.waitFor(() => { + expect(session.prompt).toHaveBeenCalledTimes(1); + }); + driver.handleUserInput('queued while reloading'); + driver.state.editor.setText('typed during reload'); + + await staleReload(); + + expect(driver.state.appState.streamingPhase).not.toBe('idle'); + expect(driver.state.transcriptEntries.filter((entry) => entry.kind === 'user')).toMatchObject([ + { content: 'original message' }, + ]); + expect(driver.state.queuedMessages).toMatchObject([{ text: 'queued while reloading' }]); + expect(driver.state.editor.getText()).toBe('typed during reload'); + expect(harness.reloadSession).not.toHaveBeenCalled(); + expect(session.close).not.toHaveBeenCalled(); + expect(session.prompt).toHaveBeenCalledTimes(1); + releasePrompt(); + }); + + it('asks to rerun /undo after the SDK reloaded a stale session (v2 engine)', async () => { + const session = makeSession({ + id: 'ses-1', + undoHistory: vi.fn(async () => { + throw new KimiError(ErrorCodes.SESSION_STALE, 'stale'); + }), + }); + const { driver, harness } = await makeDriver(session, { reloadSession: vi.fn() }); + + driver.handleUserInput('hello'); + driver.state.appState.streamingPhase = 'idle'; + driver.handleUserInput('/undo'); + await confirmUndoSelection(driver); + + await vi.waitFor(() => { + expect(stripSgr(renderTranscript(driver))).toContain('run /undo again'); + }); + expect(harness.reloadSession).not.toHaveBeenCalled(); + }); + + it.each([ + ['two words', '/plug:cmd two words'], + ['', '/plug:cmd'], + ])('shows a wrapped occupied notice and restores the plugin command after cancellation', async (args, expected) => { + const message = + 'This session is in use by another Kimi Code process. Stop the session in that process or exit it, then try again.'; + const session = makeSession({ + activatePluginCommand: vi.fn(async () => { + throw new KimiError(ErrorCodes.SESSION_OCCUPIED, message); + }), + }); + const { driver } = await makeDriver(session); + + ( + driver as unknown as { + activatePluginCommand(s: unknown, pluginId: string, command: string, value: string): void; + } + ).activatePluginCommand(session, 'plug', 'cmd', args); + await vi.waitFor(() => { + expect(driver.state.editorReplacementMounted).toBe(true); + }); + const picker = driver.state.editorContainer.children[0] as { + handleInput(data: string): void; + render(width: number): string[]; + }; + const output = stripSgr(picker.render(40).join(' ')).replaceAll(/\s+/g, ' '); + expect(output).toContain('Session in use'); + expect(output).toContain(message); + picker.handleInput('\u001B'); + + expect(driver.state.editor.getText()).toBe(expected); + }); + + it.each([ + ['takes over the lock and resends', true], + ['gives the message back', false], + ] as const)('offers takeover once a retry is still occupied and %s', async (_label, takeOver) => { + const occupied = new KimiError(ErrorCodes.SESSION_OCCUPIED, 'in use'); + const prompt = vi + .fn(async (_input: unknown) => {}) + .mockRejectedValueOnce(occupied) + .mockRejectedValueOnce(occupied); + const takeOverLock = vi.fn(async () => {}); + const session = makeSession({ prompt, takeOverLock }); + const { driver } = await makeDriver(session); + type Picker = { handleInput(data: string): void; render(width: number): string[] }; + const picker = (): Picker => driver.state.editorContainer.children[0] as Picker; + + driver.handleUserInput('hello'); + await vi.waitFor(() => { + expect(stripSgr(picker().render(80).join(' '))).toContain('Session in use'); + }); + const first = stripSgr(picker().render(80).join(' ')); + expect(first).not.toContain('Take over'); + picker().handleInput('\r'); + + await vi.waitFor(() => { + expect(stripSgr(picker().render(80).join(' '))).toContain('Session still in use'); + }); + expect(stripSgr(picker().render(120).join(' '))).toContain( + 'If another Kimi Code process is still running, taking over may mix up the history.', + ); + if (takeOver) picker().handleInput('\u001B[B'); + picker().handleInput('\r'); + + if (takeOver) { + await vi.waitFor(() => { + expect(prompt).toHaveBeenCalledTimes(3); + }); + expect(takeOverLock).toHaveBeenCalledTimes(1); + } else { + await vi.waitFor(() => { + expect(driver.state.editor.getText()).toBe('hello'); + }); + expect(prompt).toHaveBeenCalledTimes(2); + expect(takeOverLock).not.toHaveBeenCalled(); + } }); it('renders a bundled replay submission as a single turn', async () => { @@ -1013,7 +1179,11 @@ describe('KimiTUI message flow', () => { message: { role: 'user', content: [ - { type: 'text', text: 'skill card C body' }, + { + type: 'text', + text: 'skill card C body', + meta: { source: 'skill activation', activationId: 'act-3' }, + }, { type: 'text', text: 'please /commit' }, ], toolCalls: [], @@ -1033,20 +1203,13 @@ describe('KimiTUI message flow', () => { const turns = groupTurns(driver.state.transcriptEntries); expect(turns).toHaveLength(3); - expect(turns[1]!.entries.map((entry) => entry.kind)).toEqual([ - 'skill_activation', - 'skill_activation', - 'assistant', - 'user', - 'assistant', - ]); - expect(turns[1]!.entries[2]!.hookResult).toBe(true); - expect(turns[1]!.entries[3]!.content).toBe('please /skill:review and /skill:security'); - expect( - turns[1]!.entries.slice(0, 2).map((entry) => entry.bundledWithPrompt), - ).toEqual([true, true]); - expect(turns[2]!.entries.map((entry) => entry.kind)).toEqual(['skill_activation', 'user']); - expect(turns[2]!.entries[1]!.content).toBe('please /commit'); + expect(turns[1]!.entries.map((entry) => entry.kind)).toEqual(['assistant', 'user', 'assistant']); + expect(turns[1]!.entries[0]!.hookResult).toBe(true); + expect(turns[1]!.entries[1]!.content).toBe('please /skill:review and /skill:security'); + expect(turns[1]!.entries[1]!.skillNames).toEqual(['review', 'security']); + expect(turns[2]!.entries.map((entry) => entry.kind)).toEqual(['user']); + expect(turns[2]!.entries[0]!.content).toBe('please /commit'); + expect(stripSgr(renderTranscript(driver))).not.toContain('skill card'); }); it('pages Updates with Ctrl+N and arrow keys while keeping the editor focused', async () => { @@ -1359,7 +1522,7 @@ describe('KimiTUI message flow', () => { expect(contents).not.toContain('question 0'); }); - it('appends the user entry after the skill cards for a bundled submission (v2 engine)', async () => { + it('renders an accepted skill prompt once without a user activation card (v2 engine)', async () => { const session = makeSession({ id: 'ses-lazy', listSkills: vi.fn(async () => [ @@ -1409,12 +1572,94 @@ describe('KimiTUI message flow', () => { release(); await vi.waitFor(() => { - expect(driver.state.transcriptEntries.map((entry) => entry.kind)).toEqual([ - 'skill_activation', - 'user', - ]); + expect(driver.state.transcriptEntries.map((entry) => entry.kind)).toEqual(['user']); }); - expect(driver.state.transcriptEntries[0]!.bundledWithPrompt).toBe(true); + expect(driver.state.transcriptEntries[0]).toEqual(expect.objectContaining({ + content: 'please /skill:review', skillNames: ['review'], + })); + }); + + it.each(['/skill:review inspect project', 'inspect project /skill:review'])( + 'keeps the skill prompt above turn output while submission is pending (%s)', + async (input) => { + let resolveSkill!: () => void; + const request = new Promise((resolve) => { resolveSkill = resolve; }); + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + promptWithSkills: vi.fn(() => request), + }); + const { driver } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + driver.state.editor.setText(input); + driver.state.editor.handleInput('\r'); + await vi.waitFor(() => { expect(session.promptWithSkills).toHaveBeenCalledOnce(); }); + driver.sessionEventHandler.handleEvent({ + type: 'turn.started', sessionId: session.id, agentId: 'main', turnId: 1, + origin: { kind: 'user' }, + } as Event, () => {}); + driver.sessionEventHandler.handleEvent({ + type: 'assistant.delta', sessionId: session.id, agentId: 'main', turnId: 1, + delta: 'REVIEW-PROGRESS', + } as Event, () => {}); + driver.sessionEventHandler.handleEvent({ + type: 'tool.call.started', sessionId: session.id, agentId: 'main', turnId: 1, + toolCallId: 'tc-review', name: 'Bash', args: { command: 'printf review' }, + } as Event, () => {}); + resolveSkill(); + await vi.waitFor(() => { + expect(driver.state.transcriptEntries.some((entry) => entry.content === input)).toBe(true); + }); + const entries = driver.state.transcriptEntries; + const userIndex = entries.findIndex((entry) => entry.kind === 'user' && entry.content === input); + const outputIndex = entries.findIndex((entry) => entry.kind === 'assistant' || entry.kind === 'tool_call'); + expect(outputIndex).toBeGreaterThanOrEqual(0); + expect(userIndex).toBeLessThan(outputIndex); + expect(entries.filter((entry) => entry.kind === 'user')).toHaveLength(1); + expect(driver.streamingUI.hasActiveToolCall('tc-review')).toBe(true); + }, + ); + + it('keeps the previous conclusion visible when a skill turn starts before submission settles', async () => { + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver } = await makeDriver(session); + await (driver as unknown as { refreshSkillCommands(s: unknown): Promise }).refreshSkillCommands(session); + const emit = (event: Event) => driver.sessionEventHandler.handleEvent(event, () => {}); + driver.appendTranscriptEntry({ + id: 'previous-user', kind: 'user', renderMode: 'plain', content: 'previous prompt', + }); + emit({ type: 'turn.started', agentId: 'main', turnId: 1, origin: { kind: 'user' } } as Event); + driver.appendTranscriptEntry({ + id: 'previous-answer', kind: 'assistant', turnId: '1', renderMode: 'markdown', content: 'PREVIOUS-CONCLUSION', + }); + emit({ type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'completed' } as Event); + session.promptWithSkills.mockImplementationOnce(async () => { + emit({ type: 'turn.started', agentId: 'main', turnId: 2, origin: { kind: 'user' } } as Event); + }); + + driver.handleUserInput('/skill:review src/app.ts'); + + await vi.waitFor(() => { + expect(driver.state.transcriptEntries.some((entry) => entry.content === '/skill:review src/app.ts')).toBe(true); + }); + driver.appendTranscriptEntry({ + id: 'review-progress', kind: 'assistant', turnId: '2', renderMode: 'markdown', content: 'REVIEW-PROGRESS', + }); + driver.appendTranscriptEntry({ + id: 'review-answer', kind: 'assistant', turnId: '2', renderMode: 'markdown', content: 'REVIEW-CONCLUSION', + }); + emit({ type: 'turn.ended', agentId: 'main', turnId: 2, reason: 'completed' } as Event); + + const transcript = stripSgr(renderTranscript(driver)); + expect(transcript).toContain('PREVIOUS-CONCLUSION'); + expect(transcript).toContain('REVIEW-CONCLUSION'); }); it('serializes concurrent lazy session creation (v2 engine)', async () => { @@ -2972,7 +3217,7 @@ command = "vim" expect(transcript).not.toContain('Cannot undo 10 prompts'); expect(transcript).toContain('Permission mode: Never Ask'); expect(transcript).toContain( - 'Never interrupts you; everything runs and is decided automatically.', + 'Everything runs and is decided automatically; only plans in Plan mode wait for your review.', ); expect(driver.state.appState.permissionMode).toBe('auto'); }); @@ -3235,10 +3480,20 @@ command = "vim" expect(transcript).not.toContain('review'); }); - it('keeps user-slash skill activations as undo anchors', async () => { - const { driver } = await makeDriver(); - + it('undoes a user skill prompt together with its activation', async () => { + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); driver.handleUserInput('hello'); + driver.state.appState.streamingPhase = 'idle'; + driver.handleUserInput('/skill:review'); + await vi.waitFor(() => { expect(driver.state.transcriptEntries).toHaveLength(2); }); driver.sessionEventHandler.handleEvent( { type: 'skill.activated', @@ -3470,6 +3725,396 @@ command = "vim" }); }); + it.each(['enter', 'steer'])('preserves literal leading multiline input and editor tab normalization (%s)', async (delivery) => { + for (const separator of ['\n', '\t']) { + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + driver.state.editor.setText(`/skill:review${separator}explain this`); + if (delivery === 'steer') driver.state.appState.streamingPhase = 'waiting'; + driver.state.editor.handleInput(delivery === 'enter' ? '\r' : '\u0013'); + if (separator === '\n') { + await vi.waitFor(() => { + expect(delivery === 'enter' ? session.prompt : session.steer).toHaveBeenCalled(); + }); + expect(session.promptWithSkills).not.toHaveBeenCalled(); + expect((delivery === 'enter' ? session.prompt : session.steer).mock.calls[0]?.[0]).toBe( + '/skill:review\nexplain this', + ); + } else { + await vi.waitFor(() => { + expect(session.promptWithSkills).toHaveBeenCalled(); + }); + if (delivery === 'enter') expect(session.promptWithSkills).toHaveBeenCalledWith( + '/skill:review explain this', [{ name: 'review', args: 'explain this' }], + ); + else expect(session.promptWithSkills).toHaveBeenCalledWith( + '/skill:review explain this', [{ name: 'review', args: 'explain this' }], { steerIfActive: true }, + ); + } + } + }); + + it('keeps a pending skill video when another input creates the first session', async () => { + process.env['KIMI_CODE_HOME'] = await makeTempHome(); + const sourcePath = join(process.env['KIMI_CODE_HOME'], 'example.mp4'); + await writeFile(sourcePath, 'example video'); + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const startupInput: KimiTUIStartupInput = { + ...makeStartupInput(), + cliOptions: { ...makeStartupInput().cliOptions, model: 'k2' }, + }; + const { driver } = await makeDriver(session, {}, startupInput); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const attachment = imageStore.addVideo('video/mp4', sourcePath); + let finishIngestion!: () => void; + attachment.pending = new Promise((resolve) => { + finishIngestion = () => { + imageStore.completeVideo(attachment, { fileId: 'file-first-session' }); + resolve(); + }; + }); + const input = `/skill:review ${attachment.placeholder}`; + driver.state.editor.setText(input); + driver.state.editor.handleInput('\r'); + driver.handleUserInput('create the first session'); + await vi.waitFor(() => { expect(session.prompt).toHaveBeenCalled(); }); + finishIngestion(); + await vi.waitFor(() => { expect(driver.state.queuedMessages).toHaveLength(1); }); + expect(driver.state.queuedMessages[0]?.text).toBe(input); + driver.sessionEventHandler.handleEvent( + { type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'completed' } as Event, + (item) => { driver.sendQueuedMessage(session, item); }, + ); + await vi.waitFor(() => { expect(session.promptWithSkills).toHaveBeenCalledOnce(); }); + expect(stripSgr(renderTranscript(driver))).not.toContain('Session changed'); + }); + + it('keeps queued image parts aligned when one stashed skill attachment was removed', async () => { + process.env['KIMI_CODE_HOME'] = await makeTempHome(); + const { driver, session } = await makeDriver(); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const first = imageStore.addImage(new Uint8Array([1]), 'image/png', 1, 1, undefined, 'file-first'); + const second = imageStore.addImage(new Uint8Array([2]), 'image/png', 1, 1, undefined, 'file-second'); + const input = `/skill:review ${first.placeholder} ${second.placeholder}`; + const extraction = extractMediaAttachments(input, imageStore); + imageStore.remove(first.id); + driver.state.appState.streamingPhase = 'waiting'; + await ( + driver as unknown as { sendInlineSkillUserInput(t: string, skills: Array<{ skillName: string; args: string }>, e: ExtractionResult): Promise } + ).sendInlineSkillUserInput(input, [{ skillName: 'review', args: `${first.placeholder} ${second.placeholder}` }], extraction); + driver.state.appState.streamingPhase = 'idle'; + driver.sendQueuedMessage(session, driver.state.queuedMessages.shift()!); + await vi.waitFor(() => { expect(session.promptWithSkills).toHaveBeenCalledOnce(); }); + const [parts] = ( + session.promptWithSkills as ReturnType Promise>> + ).mock.calls[0]!; + expect(parts).toEqual([ + { type: 'text', text: '/skill:review ' }, + { type: 'image_url', imageUrl: { url: 'kimi-file://file-first' } }, + { type: 'image_url', imageUrl: { url: 'kimi-file://file-second' } }, + ]); + }); + + it.each([ + { action: 'new', existingSession: true }, + { action: 'switch', existingSession: true }, + { action: 'new', existingSession: false }, + { action: 'switch', existingSession: false }, + ])('does not send a pending skill video after a session change ($action, existing=$existingSession)', async ({ action, existingSession }) => { + const listSkills = vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]); + const session = makeSession({ listSkills }); + const nextSession = makeSession({ id: 'ses-next', listSkills }); + const startupInput: KimiTUIStartupInput = { + ...makeStartupInput(), + cliOptions: { ...makeStartupInput().cliOptions, model: 'k2' }, + }; + const { driver } = await makeDriver(session, { + createSession: vi.fn(async () => nextSession), + }, existingSession ? undefined : startupInput); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const attachment = imageStore.addVideo('video/mp4', '/tmp/example.mp4'); + let finishIngestion!: () => void; + attachment.pending = new Promise((resolve) => { + finishIngestion = () => { + imageStore.completeVideo(attachment, { fileId: 'file-old-session' }); + resolve(); + }; + }); + driver.state.editor.setText(`/skill:review ${attachment.placeholder}`); + driver.state.editor.handleInput('\r'); + expect(session.promptWithSkills).not.toHaveBeenCalled(); + if (action === 'new') driver.handleUserInput('/new'); + else await ( + driver as unknown as { switchToSession(s: unknown, status: string): Promise } + ).switchToSession(nextSession, 'Resumed session'); + await vi.waitFor(() => { + expect(driver.getCurrentSessionId()).toBe(nextSession.id); + }); + driver.state.editor.setText('keep this new draft'); + finishIngestion(); + await new Promise((resolve) => setImmediate(resolve)); + + expect(session.promptWithSkills).not.toHaveBeenCalled(); + expect(nextSession.promptWithSkills).not.toHaveBeenCalled(); + expect(driver.state.queuedMessages).toEqual([]); + expect(driver.state.editor.getText()).toBe('keep this new draft'); + expect(stripSgr(renderTranscript(driver))).toContain('Session changed'); + }); + + it.each(['drain', 'steer'])('uses the cached skill video argument instead of an expired queued video part (%s)', async (delivery) => { + process.env['KIMI_CODE_HOME'] = await makeTempHome(); + const sourcePath = join(process.env['KIMI_CODE_HOME'], 'example.mp4'); + await writeFile(sourcePath, 'example video'); + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const attachment = imageStore.addVideo('video/mp4', sourcePath); + imageStore.completeVideo(attachment, { + fileId: 'file-expiring-video', fileExpiresAt: Date.now() + 60 * 60 * 1000, + }); + driver.state.appState.streamingPhase = 'waiting'; + const input = `/skill:review describe ${attachment.placeholder}`; + driver.state.editor.setText(input); + driver.state.editor.handleInput('\r'); + expect(driver.state.queuedMessages).toHaveLength(1); + expect(session.promptWithSkills).not.toHaveBeenCalled(); + attachment.fileExpiresAt = Date.now() - 1; + if (delivery === 'drain') { + driver.state.appState.streamingPhase = 'idle'; + driver.sendQueuedMessage(session, driver.state.queuedMessages.shift()!); + } else { + driver.state.editor.handleInput('\u0013'); + } + await vi.waitFor(() => { + expect(session.promptWithSkills).toHaveBeenCalledOnce(); + }); + const [parts, skills] = ( + session.promptWithSkills as ReturnType Promise>> + ).mock.calls[0]!; + expect(parts).not.toContainEqual({ + type: 'video_url', videoUrl: { url: 'kimi-file://file-expiring-video' }, + }); + const args = (skills as Array<{ args: string }>)[0]!.args; + const path = args.match(/Attached video file: (.+?) \(open it with ReadMediaFile\)/)?.[1]; + expect(path).toBeDefined(); + expect(await readFile(path!)).toEqual(Buffer.from('example video')); + expect(driver.state.transcriptEntries).toContainEqual(expect.objectContaining({ + kind: 'user', content: input, + })); + emitTurn(driver, 1); + expect(existsSync(path!)).toBe(true); + await driver.closeSession('test'); + await vi.waitFor(() => { expect(existsSync(path!)).toBe(false); }); + }); + + it.each(['image', 'video'])('preserves skill media arguments when the cache hint starts a new session (%s)', async (kind) => { + process.env['KIMI_CODE_HOME'] = await makeTempHome(); + const listSkills = vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]); + const session = makeSession({ listSkills }); + const nextSession = makeSession({ + id: 'ses-next', listSkills, + promptWithSkills: vi.fn(async (_input: unknown, _skills: unknown) => {}), + }); + const { driver } = await makeDriver(session, { + createSession: vi.fn(async () => nextSession), + }); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + driver.state.appState.availableModels = { + k2: { model: 'example-model', provider: 'example-provider', maxContextSize: 100 }, + }; + driver.state.appState.availableProviders = { + 'example-provider': { type: 'kimi', oauth: { key: 'kimi-code', storage: 'file' } }, + }; + driver.state.appState.contextTokens = 150000; + const peek = vi.spyOn(cacheHintConfig, 'peekCacheHintConfig').mockReturnValue({ + version: 1, + config: { 'example-model': { min_tokens_to_hint: 100000, cache_duration: 600 } }, + }); + (driver as unknown as { cacheHint: { recordActivity(): void } }).cacheHint.recordActivity(); + const now = vi.spyOn(Date, 'now').mockReturnValue(Date.now() + 1200_000); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const attachment = kind === 'image' + ? stagedImage(imageStore, 'file-cached-skill') + : imageStore.addVideo('video/mp4', join(process.env['KIMI_CODE_HOME'], 'example.mp4')); + if (attachment.kind === 'video') { + await writeFile(attachment.sourcePath, 'example video'); + imageStore.completeVideo(attachment, { + fileId: 'file-cached-skill', fileExpiresAt: Date.now() + 3600_000, + }); + } + const input = `/skill:review describe ${attachment.placeholder}`; + try { + driver.state.editor.setText(input); + driver.state.editor.handleInput('\r'); + const dialog = driver.state.editorContainer.children[0]; + expect(dialog).toBeInstanceOf(CacheHintDialogComponent); + now.mockRestore(); + dialog!.handleInput!('\u001B[B'); + dialog!.handleInput!('\r'); + await vi.waitFor(() => { + expect(nextSession.promptWithSkills).toHaveBeenCalledOnce(); + }); + + expect(session.promptWithSkills).not.toHaveBeenCalled(); + const [parts, skills] = ( + nextSession.promptWithSkills as ReturnType Promise>> + ).mock.calls[0]!; + expect(parts).toContainEqual(kind === 'image' + ? { type: 'image_url', imageUrl: { url: 'data:image/png;base64,qrs=' } } + : { type: 'video_url', videoUrl: { url: 'kimi-file://file-cached-skill' } }); + expect(skills).toEqual([{ name: 'review', args: expect.stringContaining(`Attached ${kind} file:`) }]); + const args = (skills as Array<{ args: string }>)[0]!.args; + expect(args).not.toContain(attachment.placeholder); + const path = args.match(/Attached (?:image|video) file: (.+?) \(open it with ReadMediaFile\)/)?.[1]; + expect(path).toBeDefined(); + expect(await readFile(path!)).toEqual(kind === 'image' ? Buffer.from([0xaa, 0xbb]) : Buffer.from('example video')); + expect(driver.state.transcriptEntries).toContainEqual(expect.objectContaining({ + kind: 'user', content: input, + })); + emitTurn(driver, 1); + expect(existsSync(path!)).toBe(true); + await driver.closeSession('test'); + await vi.waitFor(() => { expect(existsSync(path!)).toBe(false); }); + } finally { + now.mockRestore(); + peek.mockRestore(); + } + }); + + it.each([ + { prefix: '/skill:review', skills: [{ name: 'review', args: expect.stringContaining('Attached video file:') }] }, + { prefix: 'watch /skill:review', skills: [{ name: 'review' }] }, + { prefix: '/skill:review /skill:security', skills: [{ name: 'review' }, { name: 'security' }] }, + ])('waits for a pending video before submitting a skill prompt ($prefix)', async ({ prefix, skills }) => { + process.env['KIMI_CODE_HOME'] = await makeTempHome(); + const sourcePath = join(process.env['KIMI_CODE_HOME'], 'example.mp4'); + await writeFile(sourcePath, 'example video'); + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + { name: 'security', description: 'Security skill', path: '/tmp/security', source: 'user' }, + ]), + }); + const { driver, harness } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const attachment = imageStore.addVideo('video/mp4', sourcePath); + let finishIngestion!: () => void; + attachment.pending = new Promise((resolve) => { + finishIngestion = () => { + imageStore.completeVideo(attachment, { fileId: 'file-skill-video' }); + resolve(); + }; + }); + const input = `${prefix} ${attachment.placeholder}`; + driver.state.editor.setText(input); + driver.state.editor.handleInput('\r'); + + expect(session.promptWithSkills).not.toHaveBeenCalled(); + expect(driver.state.editor.getText()).toBe(''); + expect(stripSgr(renderTranscript(driver))).not.toContain('Failed to prepare'); + finishIngestion(); + + await vi.waitFor(() => { + expect(session.promptWithSkills).toHaveBeenCalledWith( + [ + { type: 'text', text: `${prefix} ` }, + { type: 'video_url', videoUrl: { url: 'kimi-file://file-skill-video' } }, + ], + skills, + ); + }); + expect(driver.state.transcriptEntries).toContainEqual(expect.objectContaining({ + kind: 'user', content: input, + })); + emitTurn(driver, 1); + await vi.waitFor(() => { + expect(harness.deleteFile).toHaveBeenCalledExactlyOnceWith('file-skill-video'); + }); + }); + + it.each(['', 'keep this draft'])('keeps a timed-out skill video in input history without changing the editor (%s)', async (nextDraft) => { + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + driver.persistInputHistory = vi.fn(async (text) => { driver.state.editor.addToHistory(text); }); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const attachment = imageStore.addVideo('video/mp4', '/tmp/example.mp4'); + let finishIngestion!: () => void; + attachment.pending = new Promise((resolve) => { + finishIngestion = () => { + imageStore.completeVideo(attachment, { fileId: 'file-timed-out' }); + resolve(); + }; + }); + const input = `/skill:review ${attachment.placeholder}`; + vi.useFakeTimers(); + try { + driver.state.editor.setText(input); + driver.state.editor.handleInput('\r'); + driver.state.editor.setText(nextDraft); + await vi.advanceTimersByTimeAsync(1_999); + expect(stripSgr(renderTranscript(driver))).not.toContain('Failed to prepare'); + expect(session.promptWithSkills).not.toHaveBeenCalled(); + + await vi.advanceTimersByTimeAsync(1); + expect(stripSgr(renderTranscript(driver))).toContain('still uploading'); + expect(driver.state.editor.getText()).toBe(nextDraft); + expect(driver.state.appState.streamingPhase).toBe('idle'); + expect(session.promptWithSkills).not.toHaveBeenCalled(); + finishIngestion(); + await vi.advanceTimersByTimeAsync(0); + expect(session.promptWithSkills).not.toHaveBeenCalled(); + driver.state.editor.handleInput('\u0001'); + driver.state.editor.handleInput('\u001B[A'); + expect(driver.state.editor.getText()).toBe(input); + driver.state.editor.handleInput('\u001B[B'); + expect(driver.state.editor.getText()).toBe(nextDraft); + expect(imageStore.get(attachment.id)?.fileId).toBe('file-timed-out'); + } finally { + finishIngestion(); + vi.useRealTimers(); + } + }); + it('releases staged media exactly once when the prompt dispatch rejects', async () => { const session = makeSession({ prompt: vi.fn(async () => { @@ -3493,6 +4138,30 @@ command = "vim" expect(harness.deleteFile).toHaveBeenCalledTimes(1); }); + it('force-exits instead of waiting for shutdown hooks when Ctrl+C is pressed during stop', async () => { + const { driver } = await makeDriver(); + const stopUiForExit = vi + .spyOn(driver as unknown as { stopUiForExit(): void }, 'stopUiForExit') + .mockImplementation(() => {}); + const onExit = vi.fn(async () => {}); + (driver as unknown as { onExit?: (exitCode?: number) => Promise }).onExit = onExit; + let captured: ((data: string) => { consume?: boolean } | undefined) | undefined; + vi.spyOn(driver.state.ui, 'addInputListener').mockImplementation(((listener: unknown) => { + captured = listener as (data: string) => { consume?: boolean } | undefined; + return () => {}; + }) as never); + vi.spyOn(driver, 'closeSession').mockReturnValue(new Promise(() => {})); + + const stopped = (driver as unknown as { stop(): Promise }).stop(); + stopped.catch(() => {}); + + expect(captured).toBeDefined(); + expect(captured?.('\u0003')).toEqual({ consume: true }); + expect(captured?.('a')).toBeUndefined(); + expect(stopUiForExit).toHaveBeenCalledOnce(); + expect(onExit).toHaveBeenCalledWith(130); + }); + it('releases goal-steered staging media when the running goal turn ends', async () => { const { driver, session, harness } = await makeDriver(); const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; @@ -3568,6 +4237,614 @@ command = "vim" }); }); + it('steers a skill draft with its original text and arguments', async () => { + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + driver.state.appState.streamingPhase = 'waiting'; + driver.state.editor.setText('/skill:review src/app.ts'); + + driver.state.editor.onCtrlS?.(); + + await vi.waitFor(() => { + expect(session.promptWithSkills).toHaveBeenCalledWith( + '/skill:review src/app.ts', + [{ name: 'review', args: 'src/app.ts' }], + { steerIfActive: true }, + ); + }); + expect(session.activateSkill).not.toHaveBeenCalled(); + expect(session.steer).not.toHaveBeenCalled(); + expect(driver.state.editor.getText()).toBe(''); + expect(driver.state.queuedMessages).toEqual([]); + }); + + it.each(['/skill:review', 'check /skill:review'])( + 'retries a failed skill video from input history (%s)', + async (prefix) => { + process.env['KIMI_CODE_HOME'] = await makeTempHome(); + const sourcePath = join(process.env['KIMI_CODE_HOME'], 'example.mp4'); + await writeFile(sourcePath, 'example video'); + const promptWithSkills = vi.fn(async (_input: unknown) => {}) + .mockRejectedValueOnce(new Error('Skill dispatch failed')) + .mockResolvedValue(undefined); + const session = makeSession({ + promptWithSkills, + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver, harness } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(session: unknown): Promise } + ).refreshSkillCommands(session); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const attachment = imageStore.addVideo('video/mp4', sourcePath); + imageStore.completeVideo(attachment, { fileId: 'file-retry-video' }); + const input = `${prefix} ${attachment.placeholder}`; + driver.persistInputHistory = vi.fn(async (text) => { driver.state.editor.addToHistory(text); }); + driver.state.editor.setText(input); + driver.state.editor.handleInput('\r'); + await vi.waitFor(() => { + expect(session.promptWithSkills).toHaveBeenCalledOnce(); + expect(driver.state.appState.streamingPhase).toBe('idle'); + }); + expect(attachment.fileId).toBe('file-retry-video'); + expect(harness.deleteFile).not.toHaveBeenCalled(); + expect(driver.state.queuedMessages).toEqual([]); + driver.state.editor.handleInput('\u001B[A'); + expect(driver.state.editor.getText()).toBe(input); + driver.state.editor.handleInput('\r'); + await vi.waitFor(() => { expect(session.promptWithSkills).toHaveBeenCalledTimes(2); }); + expect(promptWithSkills.mock.calls[1]?.[0]).toContainEqual({ + type: 'video_url', videoUrl: { url: 'kimi-file://file-retry-video' }, + }); + emitTurn(driver, 1); + await vi.waitFor(() => { + expect(harness.deleteFile).toHaveBeenCalledExactlyOnceWith('file-retry-video'); + }); + expect(attachment.fileId).toBeUndefined(); + }, + ); + + it('recalls a skill preparation failure from input history', async () => { + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver, harness } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const attachment = imageStore.addVideo('video/mp4', '/tmp/clip.mp4'); + const text = `watch /skill:review ${attachment.placeholder}`; + driver.persistInputHistory = vi.fn(async (input) => { driver.state.editor.addToHistory(input); }); + driver.state.editor.setText(text); + driver.state.editor.handleInput('\r'); + + expect(session.promptWithSkills).not.toHaveBeenCalled(); + expect(driver.state.editor.getText()).toBe(''); + expect(driver.state.queuedMessages).toEqual([]); + imageStore.completeVideo(attachment, { fileId: 'file-retried-skill' }); + driver.state.editor.handleInput('\u001B[A'); + expect(driver.state.editor.getText()).toBe(text); + driver.state.editor.handleInput('\r'); + await vi.waitFor(() => { + expect(session.promptWithSkills).toHaveBeenCalledWith([ + { type: 'text', text: 'watch /skill:review ' }, + { type: 'video_url', videoUrl: { url: 'kimi-file://file-retried-skill' } }, + ], [{ name: 'review' }]); + }); + emitTurn(driver, 1); + await vi.waitFor(() => { expect(harness.deleteFile).toHaveBeenCalledWith('file-retried-skill'); }); + }); + + it.each(['/skill:review file.ts', 'check /skill:review file.ts'])( + 'retries a failed skill from input history without requeuing (%s)', + async (input) => { + const session = makeSession({ + promptWithSkills: vi.fn().mockRejectedValueOnce(new Error('Skill unavailable')).mockResolvedValue(undefined), + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + { name: 'security', description: 'Security skill', path: '/tmp/security', source: 'user' }, + ]), + }); + const { driver } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + driver.persistInputHistory = vi.fn(async (text) => { driver.state.editor.addToHistory(text); }); + driver.state.editor.setText(input); + driver.state.editor.handleInput('\r'); + await vi.waitFor(() => { + expect(driver.state.appState.streamingPhase).toBe('idle'); + expect(stripSgr(renderTranscript(driver))).toContain('Skill unavailable'); + }); + expect(driver.state.queuedMessages).toEqual([]); + expect(driver.state.editor.getText()).toBe(''); + expect(driver.state.transcriptEntries).toContainEqual(expect.objectContaining({ + kind: 'user', content: input, skillNames: ['review'], + })); + driver.state.editor.handleInput('\u001B[A'); + expect(driver.state.editor.getText()).toBe(input); + const edited = input.replace('/skill:review', '/skill:security'); + driver.state.editor.setText(edited); + driver.state.editor.handleInput('\r'); + const skills = input.startsWith('/skill:') + ? [{ name: 'security', args: 'file.ts' }] + : [{ name: 'security' }]; + expect(session.promptWithSkills).toHaveBeenLastCalledWith(edited, skills); + expect(driver.state.queuedMessages).toEqual([]); + }, + ); + + it.each(['enter', 'queued'])('ignores a skill rejection after switching sessions (%s)', async (delivery) => { + let rejectSkill!: (error: unknown) => void; + const held = new Promise((_resolve, reject) => { rejectSkill = reject; }); + const session = makeSession({ + promptWithSkills: vi.fn(() => held), + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + if (delivery === 'queued') { + driver.state.appState.streamingPhase = 'waiting'; + driver.streamingUI.setTurnId('1'); + } + driver.state.editor.setText('/skill:review OLD_CHANGE'); + driver.state.editor.handleInput('\r'); + if (delivery === 'queued') { + driver.sessionEventHandler.handleEvent( + { type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'completed' } as Event, + (item) => { driver.sendQueuedMessage(session, item); }, + ); + } + await vi.waitFor(() => { expect(session.promptWithSkills).toHaveBeenCalledOnce(); }); + const nextSession = makeSession({ id: 'ses-next' }); + await driver.setSession(nextSession); + driver.state.appState.streamingPhase = 'idle'; + driver.state.editor.setText('NEXT_CHANGE'); + driver.state.editor.handleInput('\r'); + expect(nextSession.prompt).toHaveBeenCalledOnce(); + rejectSkill(new Error('Old skill request cancelled')); + await new Promise((resolve) => setImmediate(resolve)); + expect(driver.state.appState.streamingPhase).toBe('waiting'); + expect(driver.state.queuedMessages).toEqual([]); + expect(stripSgr(renderTranscript(driver))).not.toContain('Old skill request cancelled'); + }); + + it('keeps a goal continuation active while a queued skill rejection settles', async () => { + let rejectSkill!: (error: unknown) => void; + const held = new Promise((_resolve, reject) => { rejectSkill = reject; }); + const session = makeSession({ + promptWithSkills: vi.fn(() => held), + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + driver.state.editor.setText('/skill:review CHANGE'); + driver.state.editor.handleInput('\r'); + await vi.waitFor(() => { expect(session.promptWithSkills).toHaveBeenCalledOnce(); }); + driver.sessionEventHandler.handleEvent( + { type: 'turn.started', agentId: 'main', turnId: 1, origin: { kind: 'system_trigger', name: 'goal_continuation' } } as Event, + () => {}, + ); + rejectSkill(new Error('Prompt blocked by UserPromptSubmit hook')); + await new Promise((resolve) => setImmediate(resolve)); + expect(driver.state.appState.streamingPhase).toBe('waiting'); + expect(driver.streamingUI.getTurnContext().turnId).toBe('1'); + expect(stripSgr(renderTranscript(driver))).toContain('Prompt blocked by UserPromptSubmit hook'); + }); + + it('keeps a skill eligible for automatic dispatch when compaction defers Ctrl-S', async () => { + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + driver.state.appState.streamingPhase = 'waiting'; + driver.streamingUI.setTurnId('1'); + driver.handleUserInput('first'); + driver.handleUserInput('/skill:review delayed'); + vi.mocked(session.steer).mockImplementation(async () => { + driver.state.appState.isCompacting = true; + }); + driver.state.editor.onCtrlS?.(); + await new Promise((resolve) => setImmediate(resolve)); + expect(session.steer).toHaveBeenCalledOnce(); + expect(session.promptWithSkills).not.toHaveBeenCalled(); + driver.state.appState.isCompacting = false; + driver.sessionEventHandler.handleEvent( + { type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'completed' } as Event, + (item) => { driver.sendQueuedMessage(session, item); }, + ); + await vi.waitFor(() => { expect(session.promptWithSkills).toHaveBeenCalledOnce(); }); + expect(driver.state.queuedMessages).toEqual([]); + }); + + it('keeps the ordinary queued tail eligible after a skill failure', async () => { + let rejectSkill!: (error: unknown) => void; + const held = new Promise((_resolve, reject) => { rejectSkill = reject; }); + const promptWithSkills = vi.fn(() => held); + const session = makeSession({ + promptWithSkills, + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + driver.state.appState.streamingPhase = 'waiting'; + driver.streamingUI.setTurnId('1'); + driver.handleUserInput('/skill:review FIRST'); + driver.handleUserInput('QUEUED_TAIL'); + driver.sessionEventHandler.handleEvent( + { type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'completed' } as Event, + (item) => { driver.sendQueuedMessage(session, item); }, + ); + await vi.waitFor(() => { expect(promptWithSkills).toHaveBeenCalledOnce(); }); + driver.handleUserInput('OUTSIDE'); + rejectSkill(new Error('Skill unavailable')); + await vi.waitFor(() => { expect(driver.state.appState.streamingPhase).toBe('idle'); }); + driver.state.editor.setText('NEXT'); + driver.state.editor.handleInput('\r'); + driver.sessionEventHandler.handleEvent( + { type: 'turn.ended', agentId: 'main', turnId: 2, reason: 'completed' } as Event, + (item) => { driver.sendQueuedMessage(session, item); }, + ); + await vi.waitFor(() => { expect(session.prompt).toHaveBeenCalledTimes(2); }); + expect(session.prompt).toHaveBeenLastCalledWith('QUEUED_TAIL', { promptId: undefined }); + expect(driver.state.queuedMessages.map((item) => item.text)).toEqual(['OUTSIDE']); + expect(promptWithSkills).toHaveBeenCalledOnce(); + }); + + it('keeps queued bash dispatch unchanged after a skill rejection', async () => { + let rejectSkill!: (error: unknown) => void; + const held = new Promise((_resolve, reject) => { rejectSkill = reject; }); + const promptWithSkills = vi.fn(() => held); + const runShellCommand = vi.fn(async () => ({ stdout: '', stderr: '', isError: false })); + const session = makeSession({ + promptWithSkills, + runShellCommand, + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + driver.state.appState.streamingPhase = 'waiting'; + driver.streamingUI.setTurnId('1'); + driver.handleUserInput('/skill:review FIRST'); + driver.state.appState.inputMode = 'bash'; + driver.state.editor.inputMode = 'bash'; + driver.handleUserInput('echo BASH_TAIL'); + driver.state.appState.inputMode = 'prompt'; + driver.state.editor.inputMode = 'prompt'; + driver.sessionEventHandler.handleEvent( + { type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'completed' } as Event, + (item) => { driver.sendQueuedMessage(session, item); }, + ); + await vi.waitFor(() => { expect(promptWithSkills).toHaveBeenCalledOnce(); }); + rejectSkill(new Error('Skill unavailable')); + await vi.waitFor(() => { expect(driver.state.appState.streamingPhase).toBe('idle'); }); + driver.state.editor.setText('NEXT'); + driver.state.editor.handleInput('\r'); + driver.sessionEventHandler.handleEvent( + { type: 'turn.ended', agentId: 'main', turnId: 2, reason: 'completed' } as Event, + (item) => { driver.sendQueuedMessage(session, item); }, + ); + await vi.waitFor(() => { expect(runShellCommand).toHaveBeenCalledOnce(); }); + expect(runShellCommand).toHaveBeenCalledWith('echo BASH_TAIL', expect.objectContaining({ commandId: expect.any(String) })); + expect(session.prompt).toHaveBeenCalledOnce(); + expect(promptWithSkills).toHaveBeenCalledOnce(); + expect(driver.state.queuedMessages.map((item) => item.text)).toEqual([]); + }); + + it('keeps dispatched skill media alive when the remaining queue is discarded', async () => { + let release!: () => void; + const held = new Promise((resolve) => { release = resolve; }); + const session = makeSession({ + promptWithSkills: vi.fn(() => held), + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver, harness } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const attachment = imageStore.addImage(new Uint8Array([0xaa]), 'image/png', 1, 1); + attachment.fileId = 'file-dispatched-skill'; + attachment.fileExpiresAt = Date.now() + 60 * 60 * 1000; + driver.state.appState.streamingPhase = 'waiting'; + driver.streamingUI.setTurnId('1'); + driver.handleUserInput(`check /skill:review ${attachment.placeholder}`); + driver.handleUserInput('discard this later note'); + driver.state.editor.onCtrlS?.(); + expect(session.promptWithSkills).toHaveBeenCalledTimes(1); + + (driver as unknown as { clearQueuedMessages(): void }).clearQueuedMessages(); + + expect(harness.deleteFile).not.toHaveBeenCalled(); + release(); + await vi.waitFor(() => { expect(driver.state.queuedMessages).toEqual([]); }); + await new Promise((resolve) => setImmediate(resolve)); + expect(session.steer).not.toHaveBeenCalled(); + expect(harness.deleteFile).not.toHaveBeenCalled(); + emitTurn(driver, 1); + await vi.waitFor(() => { expect(harness.deleteFile).toHaveBeenCalledWith('file-dispatched-skill'); }); + expect(harness.deleteFile).toHaveBeenCalledTimes(1); + }); + + it('keeps a skill steer media lease unclaimed by an untracked turn it cannot merge into', async () => { + process.env['KIMI_CODE_HOME'] = await makeTempHome(); + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver, harness } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const attachment = stagedImage(imageStore, 'file-goal-skill'); + driver.state.appState.streamingPhase = 'waiting'; + driver.streamingUI.setTurnId('1'); + driver.state.editor.setText(`check /skill:review ${attachment.placeholder}`); + + driver.state.editor.onCtrlS?.(); + + await vi.waitFor(() => { expect(session.promptWithSkills).toHaveBeenCalledOnce(); }); + driver.sessionEventHandler.handleEvent( + { type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'completed' } as Event, + (item) => { driver.sendQueuedMessage(session, item); }, + ); + await new Promise((resolve) => setImmediate(resolve)); + expect(harness.deleteFile).not.toHaveBeenCalled(); + + emitTurn(driver, 2); + await vi.waitFor(() => { + expect(harness.deleteFile).toHaveBeenCalledExactlyOnceWith('file-goal-skill'); + }); + }); + + it('restores idle when skill preparation fails after the previous turn ends during Ctrl-S delivery', async () => { + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const missing = imageStore.addVideo('video/quicktime', '/tmp/kimi-missing-source.mov'); + imageStore.completeVideo(missing, { fileId: 'file-ended-turn-skill' }); + const text = `/skill:review look ${missing.placeholder}`; + driver.state.appState.streamingPhase = 'waiting'; + driver.streamingUI.setTurnId('1'); + driver.handleUserInput('accepted prefix'); + driver.handleUserInput(text); + driver.handleUserInput('later'); + vi.mocked(session.steer).mockImplementation(async () => { + driver.sessionEventHandler.handleEvent( + { type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'completed' } as Event, + () => {}, + ); + }); + + driver.state.editor.onCtrlS?.(); + + await vi.waitFor(() => { + expect(stripSgr(renderTranscript(driver))).toContain('Failed to prepare media attachment'); + }); + expect(driver.state.appState.streamingPhase).toBe('idle'); + expect(driver.state.livePane.mode).toBe('idle'); + expect(driver.state.queuedMessages).toEqual([]); + expect(session.steer).toHaveBeenCalledTimes(2); + expect(session.steer).toHaveBeenLastCalledWith('later'); + expect(session.promptWithSkills).not.toHaveBeenCalled(); + expect(session.prompt).not.toHaveBeenCalled(); + }); + + it.each(['/skill:review keep-me', 'check /skill:review keep-me'])('keeps submitted skill input after Ctrl-S rejection (%s)', async (input) => { + const session = makeSession({ + promptWithSkills: vi.fn(async () => { throw new Error('Skill unavailable'); }), + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + driver.state.appState.streamingPhase = 'waiting'; + driver.streamingUI.setTurnId('1'); + driver.handleUserInput('accepted prefix'); + driver.handleUserInput(input); + driver.handleUserInput('later'); + vi.mocked(session.steer).mockImplementation(async () => { + driver.sessionEventHandler.handleEvent( + { type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'completed' } as Event, + () => {}, + ); + }); + + driver.state.editor.onCtrlS?.(); + + await vi.waitFor(() => { + expect(stripSgr(renderTranscript(driver))).toContain('Skill unavailable'); + }); + expect(driver.state.appState.streamingPhase).toBe('idle'); + expect(driver.state.livePane.mode).toBe('idle'); + expect(driver.state.queuedMessages).toEqual([]); + expect(driver.state.transcriptEntries).toContainEqual(expect.objectContaining({ + kind: 'user', content: input, skillNames: ['review'], + })); + expect(driver.state.transcriptEntries).toContainEqual(expect.objectContaining({ + kind: 'user', content: 'later', + })); + expect(session.steer).toHaveBeenCalledTimes(2); + expect(session.steer).toHaveBeenLastCalledWith('later'); + expect(session.promptWithSkills).toHaveBeenCalledOnce(); + expect(session.prompt).not.toHaveBeenCalled(); + }); + + it('keeps submitted ordinary Ctrl-S input when the request fails', async () => { + const session = makeSession({ + steer: vi.fn(async () => { throw new Error('Input unavailable'); }), + }); + const { driver } = await makeDriver(session); + driver.state.appState.streamingPhase = 'waiting'; + driver.streamingUI.setTurnId('1'); + driver.state.editor.setText('keep this input'); + + driver.state.editor.onCtrlS?.(); + + await vi.waitFor(() => { + expect(stripSgr(renderTranscript(driver))).toContain('Input unavailable'); + }); + expect(session.steer).toHaveBeenCalledWith('keep this input'); + expect(driver.state.queuedMessages).toEqual([]); + expect(driver.state.transcriptEntries).toContainEqual(expect.objectContaining({ + kind: 'user', content: 'keep this input', + })); + }); + + it('serializes Ctrl-S inputs without blocking later submissions after a skill failure', async () => { + let rejectSkill!: (error: unknown) => void; + const held = new Promise((_resolve, reject) => { rejectSkill = reject; }); + const sent: string[] = []; + const promptWithSkills = vi.fn(async (input: unknown) => { sent.push(String(input)); }) + .mockImplementationOnce((input: unknown) => { + sent.push(String(input)); + return held; + }); + const session = makeSession({ + promptWithSkills, + steer: vi.fn(async (input: unknown) => { sent.push(String(input)); }), + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + { name: 'security', description: 'Security skill', path: '/tmp/security', source: 'user' }, + ]), + }); + const { driver } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + driver.state.appState.streamingPhase = 'waiting'; + driver.streamingUI.setTurnId('1'); + driver.handleUserInput('first'); + driver.handleUserInput('check /skill:review'); + driver.handleUserInput('later'); + driver.state.editor.setText('draft /skill:security'); + driver.state.editor.onCtrlS?.(); + await vi.waitFor(() => { expect(promptWithSkills).toHaveBeenCalledOnce(); }); + expect(sent).toEqual(['first', 'check /skill:review']); + driver.state.appState.streamingPhase = 'idle'; + driver.handleUserInput('newer'); + expect(session.prompt).not.toHaveBeenCalled(); + rejectSkill(new Error('Skill unavailable')); + await vi.waitFor(() => { + expect(sent).toEqual(['first', 'check /skill:review', 'later', 'draft /skill:security']); + expect(driver.state.queuedMessages.map((item) => item.text)).toEqual(['newer']); + }); + expect(stripSgr(renderTranscript(driver))).toContain('Skill unavailable'); + expect(driver.state.transcriptEntries).toContainEqual(expect.objectContaining({ + kind: 'user', content: 'check /skill:review', skillNames: ['review'], + })); + driver.sessionEventHandler.handleEvent( + { type: 'turn.started', agentId: 'main', turnId: 2, origin: { kind: 'user' } } as Event, + () => {}, + ); + driver.sessionEventHandler.handleEvent( + { type: 'turn.ended', agentId: 'main', turnId: 2, reason: 'completed' } as Event, + (item) => { driver.sendQueuedMessage(session, item); }, + ); + await vi.waitFor(() => { expect(session.prompt).toHaveBeenCalledOnce(); }); + expect(session.prompt).toHaveBeenCalledWith('newer', { promptId: undefined }); + expect(promptWithSkills).toHaveBeenCalledTimes(2); + expect(driver.state.queuedMessages).toEqual([]); + }); + + it.each(['enter', 'ctrl-s'])('keeps skill media args and releases uploads on consumption (%s)', async (submission) => { + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver, harness } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const attachment = imageStore.addImage(new Uint8Array([0xaa]), 'image/png', 1, 1); + attachment.fileId = 'file-skill-media'; + attachment.fileExpiresAt = Date.now() + 60 * 60 * 1000; + const text = `/skill:review look ${attachment.placeholder}`; + if (submission === 'ctrl-s') { + driver.state.appState.streamingPhase = 'waiting'; + driver.streamingUI.setTurnId('1'); + driver.state.editor.setText(text); + driver.state.editor.onCtrlS?.(); + } else { + driver.handleUserInput(text); + } + + await vi.waitFor(() => { + expect(session.promptWithSkills).toHaveBeenCalled(); + }); + const [input, skills] = vi.mocked(session.promptWithSkills).mock.calls[0] as unknown as [ + unknown, + Array<{ name: string; args: string }>, + ]; + expect(input).toEqual([ + { type: 'text', text: '/skill:review look ' }, + { type: 'image_url', imageUrl: { url: 'kimi-file://file-skill-media' } }, + ]); + expect(skills[0]?.name).toBe('review'); + expect(skills[0]?.args).toMatch(/^look Attached image file: .+\.png \(open it with ReadMediaFile\)$/); + expect(skills[0]?.args).not.toContain(attachment.placeholder); + expect(driver.state.transcriptEntries).toContainEqual( + expect.objectContaining({ kind: 'user', content: text, skillNames: ['review'] }), + ); + expect(harness.deleteFile).not.toHaveBeenCalled(); + + emitTurn(driver, 1); + + await vi.waitFor(() => { + expect(harness.deleteFile).toHaveBeenCalledWith('file-skill-media'); + }); + expect(harness.deleteFile).toHaveBeenCalledTimes(1); + }); + it('queues editor input instead of prompting while a turn is already streaming', async () => { const { driver, session, harness } = await makeDriver(); driver.state.appState.streamingPhase = 'waiting'; @@ -3581,7 +4858,7 @@ command = "vim" expect(harness.track).toHaveBeenCalledWith('input_queue', undefined); }); - it('queues a slash-skill activation while a turn is streaming (like any other input) and activates on drain', async () => { + it('queues a leading skill prompt while a turn is streaming and submits it on drain', async () => { const session = makeSession({ listSkills: vi.fn(async () => [ { @@ -3607,9 +4884,7 @@ command = "vim" { text: '/demo refactor auth and ui', agentId: 'main', - mode: 'skill', - skillName: 'demo', - skillArgs: 'refactor auth and ui', + inlineSkillActivations: [{ skillName: 'demo', args: 'refactor auth and ui' }], }, ]); expect(harness.track).toHaveBeenCalledWith('input_queue', undefined); @@ -3619,10 +4894,42 @@ command = "vim" driver.state.queuedMessages = []; driver.sendQueuedMessage(session, queued); - expect(session.activateSkill).toHaveBeenCalledWith('demo', 'refactor auth and ui'); + expect(session.promptWithSkills).toHaveBeenCalledWith( + '/demo refactor auth and ui', [{ name: 'demo', args: 'refactor auth and ui' }], + ); + expect(session.activateSkill).not.toHaveBeenCalled(); }); - it('queues a slash-skill activation while compacting and activates it on drain', async () => { + it('uses the existing media queue policy after the selected model changes', async () => { + process.env['KIMI_CODE_HOME'] = await makeTempHome(); + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver } = await makeDriver(session); + await (driver as unknown as { refreshSkillCommands(s: unknown): Promise }).refreshSkillCommands(session); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const attachment = stagedImage(imageStore, 'file-queued-model-change'); + driver.state.appState.streamingPhase = 'waiting'; + driver.handleUserInput(`inspect /skill:review ${attachment.placeholder}`); + expect(driver.state.queuedMessages).toHaveLength(1); + driver.state.appState.model = 'text-only'; + driver.state.appState.availableModels = { + 'text-only': { provider: 'example', model: 'example-model', maxContextSize: 4096, capabilities: [] }, + }; + driver.state.appState.streamingPhase = 'idle'; + const queued = driver.state.queuedMessages.shift()!; + + driver.sendQueuedMessage(session, queued); + + await vi.waitFor(() => { + expect(session.promptWithSkills).toHaveBeenCalledWith(expect.any(Array), [{ name: 'review' }]); + }); + expect(driver.state.queuedMessages).toEqual([]); + }); + + it('queues a leading skill prompt while compacting and submits it on drain', async () => { const session = makeSession({ listSkills: vi.fn(async () => [ { @@ -3648,9 +4955,7 @@ command = "vim" { text: '/demo refactor auth and ui', agentId: 'main', - mode: 'skill', - skillName: 'demo', - skillArgs: 'refactor auth and ui', + inlineSkillActivations: [{ skillName: 'demo', args: 'refactor auth and ui' }], }, ]); expect(driver.state.queueContainer.children.length).toBeGreaterThan(0); @@ -3661,7 +4966,454 @@ command = "vim" driver.state.queuedMessages = []; driver.sendQueuedMessage(session, queued); - expect(session.activateSkill).toHaveBeenCalledWith('demo', 'refactor auth and ui'); + expect(session.promptWithSkills).toHaveBeenCalledWith( + '/demo refactor auth and ui', [{ name: 'demo', args: 'refactor auth and ui' }], + ); + expect(session.activateSkill).not.toHaveBeenCalled(); + }); + + it('queues /compact while streaming and fires it when the queued turn ends', async () => { + const { driver, session, harness } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + harness.track.mockClear(); + + driver.handleUserInput('/compact focus on src'); + + expect(session.compact).not.toHaveBeenCalled(); + expect(driver.state.queuedMessages).toEqual([ + { + text: '/compact focus on src', + agentId: 'main', + mode: 'compact', + compactInstruction: 'focus on src', + queuedAfterAutoSerial: 0, + }, + ]); + expect(harness.track).toHaveBeenCalledWith('input_queue', undefined); + expect(stripSgr(renderTranscript(driver))).not.toContain('Cannot /compact'); + + driver.sessionEventHandler.handleEvent( + { type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'completed' } as Event, + (item) => { driver.sendQueuedMessage(session, item); }, + ); + + await vi.waitFor(() => { + expect(session.compact).toHaveBeenCalledWith({ instruction: 'focus on src' }); + }); + expect(driver.state.queuedMessages).toEqual([]); + }); + + it('runs a queued /compact in FIFO order between queued prompts', async () => { + const { driver, session } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + + driver.handleUserInput('first'); + driver.handleUserInput('/compact tidy up'); + driver.handleUserInput('second'); + + expect(driver.state.queuedMessages.map((m) => m.text)).toEqual([ + 'first', + '/compact tidy up', + 'second', + ]); + + const sendQueued = (item: QueuedMessage) => { driver.sendQueuedMessage(session, item); }; + driver.sessionEventHandler.handleEvent( + { type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'completed' } as Event, + sendQueued, + ); + await vi.waitFor(() => { + expect(session.prompt).toHaveBeenCalledWith('first', { promptId: undefined }); + }); + expect(session.compact).not.toHaveBeenCalled(); + + driver.sessionEventHandler.handleEvent( + { type: 'turn.ended', agentId: 'main', turnId: 2, reason: 'completed' } as Event, + sendQueued, + ); + await vi.waitFor(() => { + expect(session.compact).toHaveBeenCalledWith({ instruction: 'tidy up' }); + }); + expect(session.prompt).not.toHaveBeenCalledWith('second', { promptId: undefined }); + + driver.sessionEventHandler.handleEvent( + { type: 'compaction.started', agentId: 'main', sessionId: 'ses-1', trigger: 'manual' } as Event, + sendQueued, + ); + driver.sessionEventHandler.handleEvent( + { + type: 'compaction.completed', + agentId: 'main', + sessionId: 'ses-1', + result: { summary: 's', compactedCount: 1, tokensBefore: 10, tokensAfter: 5 }, + } as Event, + sendQueued, + ); + await vi.waitFor(() => { + expect(session.prompt).toHaveBeenCalledWith('second', { promptId: undefined }); + }); + expect(driver.state.queuedMessages).toEqual([]); + }); + + it('rejects a second /compact while one is already queued', async () => { + const { driver, session, harness } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + driver.handleUserInput('/compact one'); + harness.track.mockClear(); + + driver.handleUserInput('/compact two'); + + expect(session.compact).not.toHaveBeenCalled(); + expect(driver.state.queuedMessages).toEqual([ + expect.objectContaining({ mode: 'compact', compactInstruction: 'one' }), + ]); + expect(harness.track).toHaveBeenCalledWith('input_command_invalid', { + reason: 'duplicate-compact', + command: 'compact', + }); + expect(stripSgr(renderTranscript(driver))).toContain('A /compact is already queued.'); + expect(driver.state.editor.getText()).toBe('/compact two'); + }); + + it('keeps /compact blocked while compacting', async () => { + const { driver, session, harness } = await makeDriver(); + driver.state.appState.isCompacting = true; + harness.track.mockClear(); + + driver.handleUserInput('/compact'); + + expect(session.compact).not.toHaveBeenCalled(); + expect(driver.state.queuedMessages).toEqual([]); + expect(harness.track).toHaveBeenCalledWith('input_command_invalid', { + reason: 'blocked', + command: 'compact', + }); + expect(stripSgr(renderTranscript(driver))).toContain('Cannot /compact while compacting'); + expect(driver.state.editor.getText()).toBe('/compact'); + }); + + it('keeps /compact blocked while a compaction holds the turn', async () => { + const { driver, session, harness } = await makeDriver(); + driver.state.appState.isCompacting = true; + driver.state.appState.streamingPhase = 'waiting'; + harness.track.mockClear(); + + driver.handleUserInput('/compact'); + + expect(session.compact).not.toHaveBeenCalled(); + expect(driver.state.queuedMessages).toEqual([]); + expect(harness.track).toHaveBeenCalledWith('input_command_invalid', { + reason: 'blocked', + command: 'compact', + }); + expect(stripSgr(renderTranscript(driver))).toContain('Cannot /compact while compacting'); + expect(driver.state.editor.getText()).toBe('/compact'); + }); + + it('queues /compact submitted while the lazy session creation was in flight', async () => { + const lazySession = makeSession({ id: 'ses-lazy' }); + const startupInput: KimiTUIStartupInput = { + ...makeStartupInput(), + cliOptions: { ...makeStartupInput().cliOptions, model: 'k2' }, + }; + const { driver, harness } = await makeDriver(lazySession, {}, startupInput); + + let resolveCreate!: (s: ReturnType) => void; + harness.createSession.mockImplementationOnce( + () => new Promise((resolve) => { resolveCreate = resolve; }), + ); + + driver.handleUserInput('hello'); + await vi.waitFor(() => { + expect(harness.createSession).toHaveBeenCalledTimes(1); + }); + driver.handleUserInput('/compact'); + + resolveCreate(lazySession); + await vi.waitFor(() => { + expect(lazySession.prompt).toHaveBeenCalledWith('hello', { promptId: undefined }); + }); + expect(driver.state.queuedMessages).toEqual([ + expect.objectContaining({ mode: 'compact', text: '/compact' }), + ]); + expect(lazySession.compact).not.toHaveBeenCalled(); + expect(stripSgr(renderTranscript(driver))).not.toContain('Cannot /compact'); + }); + + it('restores the input when a second /compact is refused during lazy session creation', async () => { + const lazySession = makeSession({ id: 'ses-lazy' }); + const startupInput: KimiTUIStartupInput = { + ...makeStartupInput(), + cliOptions: { ...makeStartupInput().cliOptions, model: 'k2' }, + }; + const { driver, harness } = await makeDriver(lazySession, {}, startupInput); + + let resolveCreate!: (s: ReturnType) => void; + harness.createSession.mockImplementationOnce( + () => new Promise((resolve) => { resolveCreate = resolve; }), + ); + + driver.handleUserInput('hello'); + await vi.waitFor(() => { + expect(harness.createSession).toHaveBeenCalledTimes(1); + }); + driver.handleUserInput('/compact'); + driver.handleUserInput('/compact'); + + resolveCreate(lazySession); + await vi.waitFor(() => { + expect(lazySession.prompt).toHaveBeenCalledWith('hello', { promptId: undefined }); + expect(stripSgr(renderTranscript(driver))).toContain('A /compact is already queued.'); + }); + expect(driver.state.editor.getText()).toBe('/compact'); + expect(driver.state.queuedMessages).toEqual([ + expect.objectContaining({ mode: 'compact', text: '/compact' }), + ]); + expect(lazySession.compact).not.toHaveBeenCalled(); + }); + + it('skips a queued /compact when an auto compaction completed while it waited', async () => { + const { driver, session } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + driver.handleUserInput('/compact'); + driver.handleUserInput('after compact'); + + const sendQueued = (item: QueuedMessage) => { driver.sendQueuedMessage(session, item); }; + driver.sessionEventHandler.handleEvent( + { type: 'compaction.started', agentId: 'main', sessionId: 'ses-1', trigger: 'auto' } as Event, + sendQueued, + ); + driver.sessionEventHandler.handleEvent( + { + type: 'compaction.completed', + agentId: 'main', + sessionId: 'ses-1', + result: { summary: 's', compactedCount: 1, tokensBefore: 10, tokensAfter: 5 }, + } as Event, + sendQueued, + ); + + await vi.waitFor(() => { + expect(session.prompt).toHaveBeenCalledWith('after compact', { promptId: undefined }); + }); + expect(session.compact).not.toHaveBeenCalled(); + expect(stripSgr(renderTranscript(driver))).toContain( + 'Skipped queued /compact — context was already auto-compacted.', + ); + expect(driver.state.queuedMessages).toEqual([]); + }); + + it('still fires a queued /compact when the intervening auto compaction is cancelled', async () => { + const { driver, session } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + driver.handleUserInput('/compact'); + + const sendQueued = (item: QueuedMessage) => { driver.sendQueuedMessage(session, item); }; + driver.sessionEventHandler.handleEvent( + { type: 'compaction.started', agentId: 'main', sessionId: 'ses-1', trigger: 'auto' } as Event, + sendQueued, + ); + driver.sessionEventHandler.handleEvent( + { type: 'compaction.cancelled', agentId: 'main', sessionId: 'ses-1' } as Event, + sendQueued, + ); + + await vi.waitFor(() => { + expect(session.compact).toHaveBeenCalledWith({ instruction: undefined }); + }); + expect(driver.state.queuedMessages).toEqual([]); + }); + + it('steers only the messages ahead of a queued /compact on Ctrl-S', async () => { + const { driver, session } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + driver.streamingUI.setTurnId('1'); + driver.handleUserInput('msg1'); + driver.handleUserInput('/compact foo'); + driver.handleUserInput('msg2'); + + driver.state.editor.onCtrlS?.(); + await new Promise((resolve) => setImmediate(resolve)); + + expect(session.steer).toHaveBeenCalledTimes(1); + expect(session.steer).toHaveBeenCalledWith('msg1'); + expect(driver.state.queuedMessages.map((m) => m.text)).toEqual(['/compact foo', 'msg2']); + }); + + it('steers nothing on Ctrl-S when only /compact items are queued', async () => { + const { driver, session } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + driver.streamingUI.setTurnId('1'); + driver.handleUserInput('/compact'); + + driver.state.editor.onCtrlS?.(); + await new Promise((resolve) => setImmediate(resolve)); + + expect(session.steer).not.toHaveBeenCalled(); + expect(driver.state.queuedMessages).toEqual([ + expect.objectContaining({ mode: 'compact', text: '/compact' }), + ]); + }); + + it('auto-steers messages ahead of a queued /compact when a WaitFor starts', async () => { + const { driver, session } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + driver.handleUserInput('msg1'); + driver.handleUserInput('/compact foo'); + driver.handleUserInput('msg2'); + expect(driver.state.queuedMessages).toHaveLength(3); + + startWaitFor(driver); + + expect(session.steer).toHaveBeenCalledTimes(1); + expect(session.steer).toHaveBeenCalledWith('msg1'); + await vi.waitFor(() => { + expect(driver.state.queuedMessages.map((m) => m.text)).toEqual(['/compact foo', 'msg2']); + }); + }); + + it('omits the steer hint when only /compact items are queued', async () => { + const { driver } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + + driver.handleUserInput('/compact'); + const compactOnlyPane = driver.state.queueContainer.render(120).map(stripSgr).join('\n'); + expect(compactOnlyPane).toContain('/compact'); + expect(compactOnlyPane).not.toContain('ctrl-s to steer immediately'); + }); + + it('omits the steer hint when every steerable message sits behind a queued /compact', async () => { + const { driver } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + + driver.handleUserInput('/compact'); + driver.handleUserInput('plain note'); + + const pane = driver.state.queueContainer.render(120).map(stripSgr).join('\n'); + expect(pane).not.toContain('ctrl-s to steer immediately'); + }); + + it('shows the steer hint when a steerable message sits ahead of a queued /compact', async () => { + const { driver } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + + driver.handleUserInput('plain note'); + driver.handleUserInput('/compact'); + + const pane = driver.state.queueContainer.render(120).map(stripSgr).join('\n'); + expect(pane).toContain('ctrl-s to steer immediately'); + }); + + it('recalls a queued /compact into the editor on up arrow', async () => { + const { driver } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + driver.handleUserInput('/compact bring it back'); + + expect(driver.state.editor.onUpArrowEmpty?.()).toBe(true); + + expect(driver.state.editor.getText()).toBe('/compact bring it back'); + expect(driver.state.queuedMessages).toEqual([]); + }); + + it('attempts a failed queued /compact fire three times, then drops it and drains on', async () => { + vi.useFakeTimers(); + try { + const session = makeSession({ + compact: vi.fn(async () => { + throw new Error('COMPACTION_UNABLE'); + }), + }); + const { driver } = await makeDriver(session); + driver.state.queuedMessages = [ + { text: '/compact', agentId: 'main', mode: 'compact', queuedAfterAutoSerial: 0 }, + { text: 'next', agentId: 'main' }, + ]; + + driver.sendQueuedMessage(session, driver.state.queuedMessages.shift()!); + await vi.advanceTimersByTimeAsync(0); + const requeuedPane = driver.state.queueContainer.render(120).map(stripSgr).join('\n'); + expect(requeuedPane).toContain('/compact'); + await vi.advanceTimersByTimeAsync(1000); + await vi.advanceTimersByTimeAsync(1000); + await vi.advanceTimersByTimeAsync(1000); + + expect(session.compact).toHaveBeenCalledTimes(3); + expect(session.prompt).toHaveBeenCalledWith('next', { promptId: undefined }); + expect(driver.state.queuedMessages).toEqual([]); + expect(stripSgr(renderTranscript(driver))).toContain('Failed to run queued /compact'); + } finally { + vi.useRealTimers(); + } + }); + + it('waits for idle before retrying a failed queued /compact fire', async () => { + vi.useFakeTimers(); + try { + const session = makeSession({ + compact: vi.fn(async () => { + throw new Error('COMPACTION_UNABLE'); + }), + }); + const { driver } = await makeDriver(session); + driver.state.queuedMessages = [ + { text: '/compact', agentId: 'main', mode: 'compact', queuedAfterAutoSerial: 0 }, + ]; + + driver.sendQueuedMessage(session, driver.state.queuedMessages.shift()!); + expect(session.compact).toHaveBeenCalledTimes(1); + + driver.state.appState.streamingPhase = 'waiting'; + await vi.advanceTimersByTimeAsync(3000); + expect(session.compact).toHaveBeenCalledTimes(1); + + driver.state.appState.streamingPhase = 'idle'; + await vi.advanceTimersByTimeAsync(1000); + expect(session.compact).toHaveBeenCalledTimes(2); + } finally { + vi.useRealTimers(); + } + }); + + it('requeues a queued /compact without firing when another compaction is already running', async () => { + vi.useFakeTimers(); + try { + const { driver, session } = await makeDriver(); + driver.state.queuedMessages = [ + { text: '/compact', agentId: 'main', mode: 'compact', queuedAfterAutoSerial: 0 }, + ]; + driver.state.appState.isCompacting = true; + + driver.sendQueuedMessage(session, driver.state.queuedMessages.shift()!); + + expect(session.compact).not.toHaveBeenCalled(); + expect(driver.state.queuedMessages).toEqual([ + { text: '/compact', agentId: 'main', mode: 'compact', queuedAfterAutoSerial: 0 }, + ]); + + await vi.advanceTimersByTimeAsync(2000); + expect(session.compact).not.toHaveBeenCalled(); + + driver.state.appState.isCompacting = false; + await vi.advanceTimersByTimeAsync(1000); + expect(session.compact).toHaveBeenCalledWith({ instruction: undefined }); + } finally { + vi.useRealTimers(); + } + }); + + it('clears a queued /compact when starting a new session', async () => { + const { driver, session } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + driver.handleUserInput('/compact'); + expect(driver.state.queuedMessages).toHaveLength(1); + + driver.state.appState.streamingPhase = 'idle'; + driver.handleUserInput('/new'); + + await vi.waitFor(() => { + expect(driver.state.queuedMessages).toEqual([]); + }); + expect(session.compact).not.toHaveBeenCalled(); }); it('steers fresh input while a goal is active even when the streaming phase is idle', async () => { @@ -3689,12 +5441,357 @@ command = "vim" expect(session.steer).toHaveBeenCalledWith('second objective'); expect(session.prompt).not.toHaveBeenCalled(); - expect(driver.state.queuedMessages).toEqual([]); + await vi.waitFor(() => { + expect(driver.state.queuedMessages).toEqual([]); + }); expect(driver.state.transcriptEntries).toEqual([ expect.objectContaining({ kind: 'user', content: 'second objective' }), ]); }); + function waitForEvent( + type: 'tool.call.started' | 'tool.progress' | 'tool.result', + extra: Record = {}, + ): Event { + const base = { agentId: 'main', sessionId: 'ses-1', turnId: 1, toolCallId: 'call_wait' }; + if (type === 'tool.call.started') { + return { type, ...base, name: 'WaitFor', args: { timeout: 60 }, ...extra } as Event; + } + if (type === 'tool.progress') { + return { + type, + ...base, + update: { kind: 'status', text: 'Waiting 0s / 1m · 1 background task still running', replace: true }, + ...extra, + } as Event; + } + return { type, ...base, output: 'wait_status: timed_out', ...extra } as Event; + } + + function startWaitFor(driver: MessageDriver, extra: Record = {}): void { + driver.sessionEventHandler.handleEvent(waitForEvent('tool.call.started', extra), () => {}); + driver.sessionEventHandler.handleEvent(waitForEvent('tool.progress', extra), () => {}); + } + + function pendingSteer(): { session: ReturnType; resolve: () => void; reject: (error: Error) => void } { + let resolve!: () => void; + let reject!: (error: Error) => void; + const session = makeSession({ + steer: vi.fn( + () => + new Promise((res, rej) => { + resolve = res; + reject = rej; + }), + ), + }); + return { session, resolve: () => resolve(), reject: (error) => reject(error) }; + } + + it('steers fresh input into the running turn while a WaitFor call is running', async () => { + const { driver, session } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + startWaitFor(driver); + + driver.handleUserInput('stop waiting and check this'); + + expect(session.steer).toHaveBeenCalledWith('stop waiting and check this'); + expect(session.prompt).not.toHaveBeenCalled(); + await vi.waitFor(() => { + expect(driver.state.queuedMessages).toEqual([]); + }); + }); + + it('steers messages queued before a WaitFor starts into the running turn', async () => { + const { driver, session } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + driver.handleUserInput('first note'); + driver.handleUserInput('second note'); + expect(driver.state.queuedMessages).toHaveLength(2); + + startWaitFor(driver); + + expect(session.steer).toHaveBeenCalledTimes(1); + expect(session.steer).toHaveBeenCalledWith('first note\n\nsecond note'); + await vi.waitFor(() => { + expect(driver.state.queuedMessages).toEqual([]); + }); + }); + + it('refreshes an expired queued image upload before steering it into a WaitFor', async () => { + const { driver, session } = await makeDriver(); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const attachment = imageStore.addImage( + new Uint8Array([0xaa, 0xbb]), + 'image/png', + 1, + 1, + undefined, + 'file-expired', + 1, + ); + driver.state.appState.streamingPhase = 'waiting'; + driver.state.queuedMessages.push({ + text: `describe ${attachment.placeholder}`, + agentId: 'main', + parts: [{ type: 'image_url', imageUrl: { url: 'kimi-file://file-expired' } }], + imageAttachmentIds: [attachment.id], + }); + + startWaitFor(driver); + + expect(session.steer).toHaveBeenCalledTimes(1); + const steered = JSON.stringify(vi.mocked(session.steer).mock.calls[0]); + expect(steered).toContain('data:image/png;base64,qrs='); + expect(steered).not.toContain('kimi-file://file-expired'); + }); + + it('does not steer the queue for a WaitFor call that never starts waiting', async () => { + const { driver, session } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + driver.handleUserInput('queued note'); + + driver.sessionEventHandler.handleEvent(waitForEvent('tool.call.started', { args: { timeout: 600 } }), () => {}); + driver.handleUserInput('typed while the call was rejected'); + driver.sessionEventHandler.handleEvent(waitForEvent('tool.result', { output: 'invalid arguments', isError: true }), () => {}); + + expect(session.steer).not.toHaveBeenCalled(); + expect(driver.state.queuedMessages).toEqual([ + { text: 'queued note', agentId: 'main' }, + { text: 'typed while the call was rejected', agentId: 'main' }, + ]); + }); + + it('keeps the queue in place when steering it into a WaitFor fails', async () => { + const steer = pendingSteer(); + const { driver } = await makeDriver(steer.session); + driver.state.appState.streamingPhase = 'waiting'; + driver.handleUserInput('first note'); + driver.handleUserInput('second note'); + const queued = [...driver.state.queuedMessages]; + + startWaitFor(driver); + steer.reject(new Error('session closed')); + + await vi.waitFor(() => { + expect(driver.state.transcriptEntries.filter((entry) => entry.kind === 'user')).toEqual([]); + }); + expect(driver.state.queuedMessages).toEqual(queued); + }); + + it('keeps a queued video upload when steering it into a WaitFor fails', async () => { + const steer = pendingSteer(); + const { driver, harness } = await makeDriver(steer.session); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const attachment = imageStore.addVideo('video/mp4', '/tmp/clip.mp4'); + imageStore.completeVideo(attachment, { fileId: 'file-v1' }); + driver.state.appState.streamingPhase = 'waiting'; + driver.handleUserInput(`describe ${attachment.placeholder}`); + + startWaitFor(driver); + steer.reject(new Error('session closed')); + await (driver as unknown as { staging: { drain(): Promise } }).staging.drain(); + driver.sessionEventHandler.handleEvent( + { type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'completed' } as Event, + () => {}, + ); + await (driver as unknown as { staging: { drain(): Promise } }).staging.drain(); + + expect(harness.deleteFile).not.toHaveBeenCalledWith('file-v1'); + }); + + it('keeps submission order when a WaitFor steer fails after later input was queued', async () => { + const steer = pendingSteer(); + const { driver } = await makeDriver(steer.session); + driver.state.appState.streamingPhase = 'waiting'; + startWaitFor(driver); + + driver.handleUserInput('check this first'); + driver.state.queuedMessages.push({ text: 'make build', agentId: 'main', mode: 'bash' }); + steer.reject(new Error('session closed')); + + await vi.waitFor(() => { + expect(driver.state.transcriptEntries.filter((entry) => entry.kind === 'user')).toEqual([]); + }); + expect(driver.state.queuedMessages).toEqual([ + { text: 'check this first', agentId: 'main' }, + { text: 'make build', agentId: 'main', mode: 'bash' }, + ]); + }); + + it('steers input typed while an earlier WaitFor steer is in flight once it succeeds', async () => { + const steer = pendingSteer(); + const { driver } = await makeDriver(steer.session); + driver.state.appState.streamingPhase = 'waiting'; + startWaitFor(driver); + + driver.handleUserInput('first'); + driver.handleUserInput('second'); + expect(steer.session.steer).toHaveBeenCalledTimes(1); + steer.resolve(); + + await vi.waitFor(() => { + expect(steer.session.steer).toHaveBeenCalledTimes(2); + }); + expect(steer.session.steer).toHaveBeenNthCalledWith(2, 'second'); + expect(driver.state.queuedMessages).toEqual([{ text: 'second', agentId: 'main' }]); + }); + + it('drains input queued behind a steer that succeeds after the turn ended', async () => { + const steer = pendingSteer(); + const { driver, session } = await makeDriver(steer.session); + driver.state.appState.streamingPhase = 'waiting'; + driver.handleUserInput('earlier note'); + startWaitFor(driver); + driver.state.queuedMessages.push({ text: 'later note', agentId: 'main' }); + + driver.sessionEventHandler.handleEvent( + { type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'completed' } as Event, + () => {}, + ); + await new Promise((resolve) => setTimeout(resolve, 0)); + expect(session.prompt).not.toHaveBeenCalled(); + + steer.resolve(); + + await vi.waitFor(() => { + expect(session.prompt).toHaveBeenCalledTimes(1); + }); + expect(vi.mocked(session.prompt).mock.calls[0]?.[0]).toBe('later note'); + }); + + it('does not offer Ctrl-S in the queue pane while a queue steer is in flight', async () => { + const steer = pendingSteer(); + const { driver } = await makeDriver(steer.session); + driver.state.appState.streamingPhase = 'waiting'; + driver.handleUserInput('queued note'); + expect(stripSgr(driver.state.queueContainer.render(120).join('\n'))).toContain( + 'ctrl-s to steer immediately', + ); + + startWaitFor(driver); + + expect(stripSgr(driver.state.queueContainer.render(120).join('\n'))).not.toContain( + 'ctrl-s to steer immediately', + ); + }); + + it('holds the queue behind an in-flight WaitFor steer across turn end', async () => { + const steer = pendingSteer(); + const { driver, session } = await makeDriver(steer.session); + driver.state.appState.streamingPhase = 'waiting'; + driver.handleUserInput('earlier note'); + startWaitFor(driver); + driver.state.queuedMessages.push({ text: 'later note', agentId: 'main' }); + + driver.sessionEventHandler.handleEvent( + { type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'cancelled' } as Event, + () => {}, + ); + await new Promise((resolve) => setTimeout(resolve, 0)); + expect(session.prompt).not.toHaveBeenCalled(); + + steer.reject(new Error('turn cancelled')); + + await vi.waitFor(() => { + expect(session.prompt).toHaveBeenCalledTimes(1); + }); + expect(vi.mocked(session.prompt).mock.calls[0]?.[0]).toBe('earlier note'); + expect(driver.state.queuedMessages).toEqual([{ text: 'later note', agentId: 'main' }]); + }); + + it('dispatches failed WaitFor input with its media right away when the turn ended meanwhile', async () => { + const steer = pendingSteer(); + const { driver, harness, session } = await makeDriver(steer.session); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const attachment = imageStore.addVideo('video/mp4', '/tmp/clip.mp4'); + imageStore.completeVideo(attachment, { fileId: 'file-v1' }); + driver.state.appState.streamingPhase = 'waiting'; + startWaitFor(driver); + driver.handleUserInput(`describe ${attachment.placeholder}`); + + driver.sessionEventHandler.handleEvent( + { type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'cancelled' } as Event, + () => {}, + ); + expect(harness.deleteFile).not.toHaveBeenCalledWith('file-v1'); + steer.reject(new Error('turn cancelled')); + + await vi.waitFor(() => { + expect(session.prompt).toHaveBeenCalledTimes(1); + }); + const parts = vi.mocked(session.prompt).mock.calls[0]?.[0] as Array<{ type: string; videoUrl?: { url: string } }>; + expect(parts).toContainEqual({ type: 'video_url', videoUrl: { url: 'kimi-file://file-v1' } }); + await (driver as unknown as { staging: { drain(): Promise } }).staging.drain(); + expect(harness.deleteFile).not.toHaveBeenCalledWith('file-v1'); + expect(driver.state.queuedMessages).toEqual([]); + }); + + it('drops failed WaitFor input when the session changed meanwhile', async () => { + const steer = pendingSteer(); + const { driver } = await makeDriver(steer.session); + driver.state.appState.streamingPhase = 'waiting'; + startWaitFor(driver); + driver.handleUserInput('for the old session'); + + const next = makeSession(); + (driver as unknown as { resetSessionRuntime(): void }).resetSessionRuntime(); + (driver as unknown as { session: unknown }).session = next; + steer.reject(new Error('session closed')); + await new Promise((resolve) => setTimeout(resolve, 0)); + + expect(driver.state.queuedMessages).toEqual([]); + expect(next.prompt).not.toHaveBeenCalled(); + }); + + it('keeps a queue with a bash command queued when a WaitFor starts', async () => { + const { driver, session } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + driver.state.queuedMessages = [ + { text: 'note', agentId: 'main' }, + { text: 'make build', agentId: 'main', mode: 'bash' }, + ]; + + startWaitFor(driver); + + expect(session.steer).not.toHaveBeenCalled(); + expect(driver.state.queuedMessages).toHaveLength(2); + }); + + it('leaves queued messages alone when a tool other than WaitFor reports progress', async () => { + const { driver, session } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + driver.handleUserInput('queued note'); + + startWaitFor(driver, { toolCallId: 'call_bash', name: 'Bash', args: { command: 'sleep 5' } }); + + expect(session.steer).not.toHaveBeenCalled(); + expect(driver.state.queuedMessages).toEqual([{ text: 'queued note', agentId: 'main' }]); + }); + + it('queues input again once the WaitFor call has returned', async () => { + const { driver, session } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + startWaitFor(driver); + driver.sessionEventHandler.handleEvent(waitForEvent('tool.result'), () => {}); + + driver.handleUserInput('after the wait'); + + expect(session.steer).not.toHaveBeenCalled(); + expect(driver.state.queuedMessages).toEqual([{ text: 'after the wait', agentId: 'main' }]); + }); + + it('queues input while only a subagent is running WaitFor', async () => { + const { driver, session } = await makeDriver(); + driver.state.appState.streamingPhase = 'waiting'; + startWaitFor(driver, { agentId: 'agent-child', toolCallId: 'call_child_wait' }); + + driver.handleUserInput('main agent is busy'); + + expect(session.steer).not.toHaveBeenCalled(); + expect(driver.state.queuedMessages).toEqual([{ text: 'main agent is busy', agentId: 'main' }]); + }); + it('prompts immediately while tower mode is active and the session is idle', async () => { const { driver, session } = await makeDriver(); driver.state.appState.towerMode = true; @@ -3747,7 +5844,9 @@ command = "vim" expect(session.steer).toHaveBeenCalledWith('objective one\n\nobjective two'); expect(session.prompt).not.toHaveBeenCalled(); - expect(driver.state.queuedMessages).toEqual([]); + await vi.waitFor(() => { + expect(driver.state.queuedMessages).toEqual([]); + }); }); it('queues fresh input behind a non-steerable backlog instead of jumping ahead', async () => { @@ -3853,6 +5952,231 @@ command = "vim" expect(session.cancel).toHaveBeenCalledTimes(1); }); + it('returns to idle and allows /clear after cancelling ReadMediaFile', async () => { + const nextSession = makeSession({ id: 'ses-2' }); + const { driver, session, harness } = await makeDriver(); + harness.createSession.mockResolvedValueOnce(nextSession); + driver.sessionEventHandler.handleEvent( + { type: 'turn.started', agentId: 'main', sessionId: 'ses-1', turnId: 0, origin: { kind: 'user' } } as Event, + () => {}, + ); + driver.sessionEventHandler.handleEvent( + { type: 'turn.step.started', agentId: 'main', sessionId: 'ses-1', turnId: 0, step: 6 } as Event, + () => {}, + ); + driver.sessionEventHandler.handleEvent( + { + type: 'tool.call.started', + agentId: 'main', + sessionId: 'ses-1', + turnId: 0, + toolCallId: 'tool_LSp6cwjJVBvL6Zzej7YMboRi', + name: 'ReadMediaFile', + args: { path: 'analysis/full_small.mp4' }, + display: { kind: 'file_io', operation: 'read', path: '/tmp/full_small.mp4' }, + } as Event, + () => {}, + ); + expect(driver.state.activitySpinner).not.toBeNull(); + + session.cancel.mockImplementation(async () => { + driver.sessionEventHandler.handleEvent( + { + type: 'tool.result', + agentId: 'main', + sessionId: 'ses-1', + turnId: 0, + toolCallId: 'tool_LSp6cwjJVBvL6Zzej7YMboRi', + output: 'The user manually interrupted "ReadMediaFile".', + isError: true, + } as Event, + () => {}, + ); + driver.sessionEventHandler.handleEvent( + { + type: 'turn.step.interrupted', + agentId: 'main', + sessionId: 'ses-1', + turnId: 0, + step: 6, + reason: 'aborted', + } as Event, + () => {}, + ); + driver.sessionEventHandler.handleEvent( + { + type: 'turn.ended', + agentId: 'main', + sessionId: 'ses-1', + turnId: 0, + reason: 'cancelled', + durationMs: 53847, + traceId: '87ba9125dc01214ef86100ac03bd4fd9', + } as Event, + () => {}, + ); + }); + + driver.state.editor.onEscape?.(); + + expect(session.cancel).toHaveBeenCalledTimes(1); + expect(driver.state.appState.streamingPhase).toBe('idle'); + expect(driver.state.livePane.mode).toBe('idle'); + expect(driver.state.activitySpinner).toBeNull(); + + driver.handleUserInput('/clear'); + + await vi.waitFor(() => { + expect(driver.getCurrentSessionId()).toBe('ses-2'); + }); + expect(driver.state.appState.streamingPhase).toBe('idle'); + expect(driver.state.livePane.mode).toBe('idle'); + expect(driver.state.activitySpinner).toBeNull(); + }); + + it('aborts an in-flight video upload and recovers through /clear with the real engine', async () => { + const homeDir = await makeTempHome(); + const workDir = await mkdtemp(join(tmpdir(), 'kimi-code-tui-video-')); + tempDirs.push(workDir); + await writeFile( + join(workDir, 'clip.mp4'), + Buffer.from('00000020667479706d703432000000006d70343269736f6d', 'hex'), + ); + + let notifyUploadStarted!: () => void; + const uploadStarted = new Promise((resolve) => { + notifyUploadStarted = resolve; + }); + let uploadAborted = false; + const server = createServer((req, res) => { + void (async () => { + for await (const _chunk of req) { + } + if (req.url === '/v1/files') { + notifyUploadStarted(); + res.on('close', () => { + if (!res.writableEnded) uploadAborted = true; + }); + return; + } + if (req.url === '/v1/chat/completions') { + const chunks = [ + { + id: 'chatcmpl-mock', + object: 'chat.completion.chunk', + created: 1, + model: 'mock', + choices: [ + { + index: 0, + delta: { + role: 'assistant', + tool_calls: [ + { + index: 0, + id: 'call_video_1', + type: 'function', + function: { name: 'ReadMediaFile', arguments: '{"path":"clip.mp4"}' }, + }, + ], + }, + finish_reason: null, + }, + ], + }, + { + id: 'chatcmpl-mock', + object: 'chat.completion.chunk', + created: 1, + model: 'mock', + choices: [{ index: 0, delta: {}, finish_reason: 'tool_calls' }], + usage: { prompt_tokens: 10, completion_tokens: 4, total_tokens: 14 }, + }, + ]; + res.writeHead(200, { 'content-type': 'text/event-stream' }); + res.end(`${chunks.map((chunk) => `data: ${JSON.stringify(chunk)}\n\n`).join('')}data: [DONE]\n\n`); + return; + } + res.writeHead(404); + res.end(); + })().catch(() => { + res.destroy(); + }); + }); + await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve)); + const baseUrl = `http://127.0.0.1:${(server.address() as AddressInfo).port}/v1`; + await writeFile( + join(homeDir, 'config.toml'), + ` +default_model = "stub" + +[providers.stub] +type = "kimi" +base_url = "${baseUrl}" +api_key = "test-key" + +[models.stub] +provider = "stub" +model = "stub" +max_context_size = 262144 +capabilities = ["image_in", "video_in"] +`, + 'utf-8', + ); + + let harness: ReturnType | undefined; + let driver: MessageDriver | undefined; + try { + harness = createKimiHarness({ + homeDir, + identity: { productName: 'kimi-code-cli', version: '0.0.0-test', platform: 'kimi_code_cli' }, + }); + const startupInput = { ...makeStartupInput(), workDir }; + startupInput.cliOptions.model = 'stub'; + driver = new KimiTUI(harness, startupInput) as unknown as MessageDriver; + vi.spyOn(driver.state.ui, 'requestRender').mockImplementation(() => {}); + vi.spyOn(driver.state.terminal, 'setProgress').mockImplementation(() => {}); + driver.persistInputHistory = vi.fn(async () => {}); + await driver.init(); + const session = await harness.createSession({ workDir }); + await driver.setSession(session); + await driver.syncRuntimeState(session); + driver.sessionEventHandler.startSubscription(); + + driver.handleUserInput('watch clip.mp4'); + await uploadStarted; + driver.state.editor.onEscape?.(); + + await vi.waitFor(() => { + expect(driver!.state.appState.streamingPhase).toBe('idle'); + }); + await vi.waitFor(() => { + expect(uploadAborted).toBe(true); + }); + expect(driver.state.activitySpinner).toBeNull(); + const previousSessionId = driver.getCurrentSessionId(); + + driver.handleUserInput('/clear'); + + await vi.waitFor(() => { + expect(driver!.getCurrentSessionId()).not.toBe(previousSessionId); + }); + expect(driver.state.appState.streamingPhase).toBe('idle'); + expect(driver.state.livePane.mode).toBe('idle'); + expect(driver.state.activitySpinner).toBeNull(); + } finally { + driver?.state.activitySpinner?.instance.stop(); + await driver?.closeSession('test').catch(() => {}); + await harness?.close(); + server.closeAllConnections(); + await new Promise((resolve) => { + server.close(() => { + resolve(); + }); + }); + } + }, 20_000); + it('clears streaming editor text before cancelling the active turn on Ctrl-C', async () => { const { driver, session } = await makeDriver(); @@ -3961,9 +6285,11 @@ command = "vim" driver.state.editor.onCtrlS?.(); expect(session.steer).toHaveBeenCalledWith('focus on tests'); - expect(driver.state.queuedMessages).toEqual([ - { text: 'ls', agentId: 'main', mode: 'bash' }, - ]); + await vi.waitFor(() => { + expect(driver.state.queuedMessages).toEqual([ + { text: 'ls', agentId: 'main', mode: 'bash' }, + ]); + }); }); it('does not steer while a shell command is running', async () => { @@ -4066,7 +6392,7 @@ command = "vim" { type: 'text', text: 'look ' }, { type: 'image_url', imageUrl: { url: 'data:image/png;base64,qrs=' } }, ]); - expect(driver.state.queuedMessages).toEqual([]); + await vi.waitFor(() => { expect(driver.state.queuedMessages).toEqual([]); }); }); it('releases every queued use of shared media after a batched steer', async () => { @@ -4265,20 +6591,27 @@ command = "vim" ]); }); - it('shows an error instead of throwing when skill media materialization fails', async () => { - const session = makeSession(); + it('reports failed skill media argument materialization without requeuing', async () => { + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'test', description: 'Test skill', path: '/tmp/test', source: 'user' }, + ]), + }); const { driver } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; const missing = imageStore.addVideo('video/quicktime', '/tmp/kimi-missing-source.mov'); + imageStore.completeVideo(missing, { fileId: 'file-missing-source' }); + const text = `/skill:test look ${missing.placeholder}`; - ( - driver as unknown as { - sendSkillActivation(s: unknown, name: string, args: string): void; - } - ).sendSkillActivation(session, 'test', `look ${missing.placeholder}`); + driver.handleUserInput(text); + expect(session.promptWithSkills).not.toHaveBeenCalled(); expect(session.activateSkill).not.toHaveBeenCalled(); expect(stripSgr(renderTranscript(driver))).toContain('Failed to prepare media attachment'); + expect(driver.state.queuedMessages).toEqual([]); }); it('shows an error instead of throwing when plugin command media materialization fails', async () => { @@ -4561,6 +6894,276 @@ command = "vim" expect(transcript).toContain('cron report final'); }); + it('keeps the previous turn’s final answer mounted when a task-notification turn completes', async () => { + const { driver } = await makeDriver(); + const emit = (event: Event) => driver.sessionEventHandler.handleEvent(event, () => {}); + let entrySeq = 0; + const entry = (kind: 'user' | 'assistant', content: string, turnId?: string) => { + entrySeq += 1; + driver.appendTranscriptEntry({ + id: `task-fold-${entrySeq}`, + kind, + turnId, + renderMode: kind === 'assistant' ? 'markdown' : 'plain', + content, + }); + }; + + entry('user', 'what is the answer?'); + emit({ type: 'turn.started', agentId: 'main', turnId: 1, origin: { kind: 'user' } } as Event); + entry('assistant', 'working on it', '1'); + entry('assistant', 'FINAL-ANSWER', '1'); + emit({ type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'completed' } as Event); + + expect(stripSgr(renderTranscript(driver))).toContain('FINAL-ANSWER'); + + emit({ + type: 'background.task.terminated', + agentId: 'main', + info: { + taskId: 'task-1', + kind: 'process', + description: 'nightly sync', + status: 'completed', + exitCode: 0, + startedAt: 0, + endedAt: 1, + }, + } as unknown as Event); + const taskOrigin = { + kind: 'task', + taskId: 'task-1', + status: 'completed', + notificationId: 'ntf-1', + }; + emit({ type: 'turn.started', agentId: 'main', turnId: 2, origin: taskOrigin } as Event); + entry('assistant', 'task report part one', '2'); + entry('assistant', 'task report final', '2'); + emit({ type: 'turn.ended', agentId: 'main', turnId: 2, reason: 'completed' } as Event); + + const transcript = stripSgr(renderTranscript(driver)); + expect(transcript).toContain('task report final'); + expect(transcript).toContain('FINAL-ANSWER'); + }); + + it('keeps the previous turn’s final answer mounted when a background-agent notification turn completes', async () => { + const { driver } = await makeDriver(); + const emit = (event: Event) => driver.sessionEventHandler.handleEvent(event, () => {}); + let entrySeq = 0; + const entry = (kind: 'user' | 'assistant', content: string, turnId?: string) => { + entrySeq += 1; + driver.appendTranscriptEntry({ + id: `agent-task-fold-${entrySeq}`, + kind, + turnId, + renderMode: kind === 'assistant' ? 'markdown' : 'plain', + content, + }); + }; + + entry('user', 'what is the answer?'); + emit({ type: 'turn.started', agentId: 'main', turnId: 1, origin: { kind: 'user' } } as Event); + entry('assistant', 'working on it', '1'); + entry('assistant', 'FINAL-ANSWER', '1'); + emit({ type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'completed' } as Event); + + expect(stripSgr(renderTranscript(driver))).toContain('FINAL-ANSWER'); + + emit({ + type: 'subagent.spawned', + agentId: 'main', + sessionId: 'ses-1', + subagentId: 'agent-9', + subagentName: 'explore', + parentToolCallId: 'tc-9', + description: 'scout the fleet', + runInBackground: true, + } as unknown as Event); + emit({ + type: 'background.task.started', + agentId: 'main', + info: { + taskId: 'task-9', + kind: 'agent', + agentId: 'agent-9', + description: 'scout the fleet', + status: 'running', + startedAt: 0, + }, + } as unknown as Event); + emit({ + type: 'subagent.completed', + agentId: 'main', + sessionId: 'ses-1', + subagentId: 'agent-9', + parentToolCallId: 'tc-9', + resultSummary: 'fleet scouted', + } as unknown as Event); + emit({ + type: 'background.task.terminated', + agentId: 'main', + info: { + taskId: 'task-9', + kind: 'agent', + agentId: 'agent-9', + description: 'scout the fleet', + status: 'completed', + startedAt: 0, + endedAt: 1, + }, + } as unknown as Event); + + const taskOrigin = { + kind: 'task', + taskId: 'task-9', + status: 'completed', + notificationId: 'ntf-9', + }; + emit({ type: 'turn.started', agentId: 'main', turnId: 2, origin: taskOrigin } as Event); + entry('assistant', 'agent report part one', '2'); + entry('assistant', 'agent report final', '2'); + emit({ type: 'turn.ended', agentId: 'main', turnId: 2, reason: 'completed' } as Event); + + const transcript = stripSgr(renderTranscript(driver)); + expect(transcript).toContain('agent report final'); + expect(transcript).toContain('FINAL-ANSWER'); + const terminalCards = driver.state.transcriptEntries.filter( + (transcriptEntry) => transcriptEntry.backgroundAgentStatus?.phase === 'completed', + ); + expect(terminalCards).toHaveLength(1); + }); + + it('anchors the fold boundary to the notification turn when another task terminates mid-turn', async () => { + const { driver } = await makeDriver(); + const emit = (event: Event) => driver.sessionEventHandler.handleEvent(event, () => {}); + let entrySeq = 0; + const entry = (kind: 'user' | 'assistant', content: string, turnId?: string) => { + entrySeq += 1; + driver.appendTranscriptEntry({ + id: `task-anchor-${entrySeq}`, + kind, + turnId, + renderMode: kind === 'assistant' ? 'markdown' : 'plain', + content, + }); + }; + const terminate = (taskId: string) => + emit({ + type: 'background.task.terminated', + agentId: 'main', + info: { + taskId, + kind: 'process', + description: `task ${taskId}`, + status: 'completed', + exitCode: 0, + startedAt: 0, + endedAt: 1, + }, + } as unknown as Event); + const taskOrigin = (taskId: string) => ({ + kind: 'task', + taskId, + status: 'completed', + notificationId: `ntf-${taskId}`, + }); + + entry('user', 'first question'); + emit({ type: 'turn.started', agentId: 'main', turnId: 1, origin: { kind: 'user' } } as Event); + entry('assistant', 'working', '1'); + entry('assistant', 'USER-FINAL', '1'); + emit({ type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'completed' } as Event); + + // task 1 terminates while idle; its notification turn opens and starts + // answering, then task 2 terminates mid-turn and its terminal card lands + // inside turn 2's output. + terminate('task-1'); + emit({ type: 'turn.started', agentId: 'main', turnId: 2, origin: taskOrigin('task-1') } as Event); + entry('assistant', 'report one intro', '2'); + terminate('task-2'); + entry('assistant', 'REPORT-ONE-FINAL', '2'); + emit({ type: 'turn.ended', agentId: 'main', turnId: 2, reason: 'completed' } as Event); + + // task 2's notification missed turn 2's last drain, so it opens its own + // turn. When that turn ends, the fold must start at this turn's boundary — + // not at task 2's card mounted mid-turn-2 — or REPORT-ONE-FINAL folds away. + emit({ type: 'turn.started', agentId: 'main', turnId: 3, origin: taskOrigin('task-2') } as Event); + entry('assistant', 'report two intro', '3'); + entry('assistant', 'report two middle', '3'); + entry('assistant', 'REPORT-TWO-FINAL', '3'); + emit({ type: 'turn.ended', agentId: 'main', turnId: 3, reason: 'completed' } as Event); + + const transcript = stripSgr(renderTranscript(driver)); + expect(transcript).toContain('REPORT-ONE-FINAL'); + expect(transcript).toContain('REPORT-TWO-FINAL'); + }); + + it('anchors the fold boundary by mounting a card when an abnormally terminated agent left none', async () => { + const { driver } = await makeDriver(); + const emit = (event: Event) => driver.sessionEventHandler.handleEvent(event, () => {}); + let entrySeq = 0; + const entry = (kind: 'user' | 'assistant', content: string, turnId?: string) => { + entrySeq += 1; + driver.appendTranscriptEntry({ + id: `agent-lost-fold-${entrySeq}`, + kind, + turnId, + renderMode: kind === 'assistant' ? 'markdown' : 'plain', + content, + }); + }; + + entry('user', 'what is the answer?'); + emit({ type: 'turn.started', agentId: 'main', turnId: 1, origin: { kind: 'user' } } as Event); + entry('assistant', 'working on it', '1'); + entry('assistant', 'FINAL-ANSWER', '1'); + emit({ type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'completed' } as Event); + + expect(stripSgr(renderTranscript(driver))).toContain('FINAL-ANSWER'); + + // The agent timed out without any subagent lifecycle event, so no + // terminal card was ever mounted for it — agent-kind task terminations + // mount none of their own. + emit({ + type: 'background.task.terminated', + agentId: 'main', + info: { + taskId: 'task-lost', + kind: 'agent', + agentId: 'agent-lost', + description: 'scout the fleet', + status: 'timed_out', + startedAt: 0, + endedAt: 1, + }, + } as unknown as Event); + expect( + driver.state.transcriptEntries.filter( + (transcriptEntry) => transcriptEntry.backgroundAgentStatus !== undefined, + ), + ).toHaveLength(0); + + // The notification turn anchors its fold boundary by mounting the missing + // terminal card at the turn's start. + emit({ + type: 'turn.started', + agentId: 'main', + turnId: 2, + origin: { kind: 'task', taskId: 'task-lost', status: 'timed_out', notificationId: 'ntf-lost' }, + } as Event); + entry('assistant', 'timeout report final', '2'); + emit({ type: 'turn.ended', agentId: 'main', turnId: 2, reason: 'completed' } as Event); + + const transcript = stripSgr(renderTranscript(driver)); + expect(transcript).toContain('timeout report final'); + expect(transcript).toContain('FINAL-ANSWER'); + const terminalCards = driver.state.transcriptEntries.filter( + (transcriptEntry) => transcriptEntry.backgroundAgentStatus !== undefined, + ); + expect(terminalCards).toHaveLength(1); + expect(terminalCards[0]!.backgroundAgentStatus?.phase).toBe('failed'); + }); + it('coalesces assistant delta component updates', async () => { vi.useFakeTimers(); try { @@ -4966,6 +7569,151 @@ command = "vim" expect(session.prompt).not.toHaveBeenCalled(); }); + it.each([ + { prefix: '/skill:review inspect', skills: [{ name: 'review', args: expect.stringContaining('Attached image file:') }] }, + { prefix: 'inspect /skill:review', skills: [{ name: 'review' }] }, + { prefix: '/skill:review /skill:security', skills: [{ name: 'review' }, { name: 'security' }] }, + ])('sends a skill image to the open BTW panel without releasing it with the main turn ($prefix)', async ({ prefix, skills }) => { + const agentScopes: string[] = []; + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + { name: 'security', description: 'Security skill', path: '/tmp/security', source: 'user' }, + ]), + promptWithSkills: vi.fn(async () => { agentScopes.push(harness.interactiveAgentId); }), + }); + const { driver, harness } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + await openBtwPanel(driver, session); + getMountedBtwPanel(driver).markDone(); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const attachment = stagedImage(imageStore, 'file-btw-image'); + const input = `${prefix} ${attachment.placeholder}`; + driver.state.editor.setText(input); + driver.state.editor.handleInput('\r'); + + await vi.waitFor(() => { + expect(session.promptWithSkills).toHaveBeenCalledWith([ + { type: 'text', text: `${prefix} ` }, + { type: 'image_url', imageUrl: { url: 'kimi-file://file-btw-image' } }, + ], skills); + }); + expect(agentScopes).toEqual(['agent-btw']); + expect(stripSgr(renderBtwPanel(driver))).toContain(input); + emitTurn(driver, 1); + expect(harness.deleteFile).not.toHaveBeenCalled(); + driver.sessionEventHandler.handleEvent({ + type: 'turn.started', sessionId: session.id, agentId: 'agent-btw', + turnId: 1, origin: { kind: 'user' }, + } as Event, () => {}); + driver.sessionEventHandler.handleEvent({ + type: 'turn.ended', sessionId: session.id, agentId: 'agent-btw', + turnId: 1, reason: 'completed', + } as Event, () => {}); + await vi.waitFor(() => { + expect(harness.deleteFile).toHaveBeenCalledExactlyOnceWith('file-btw-image'); + }); + }); + + it.each(['ready', 'timeout', 'closed'] as const)('keeps a pending BTW skill video with its intended recipient (%s)', async (outcome) => { + process.env['KIMI_CODE_HOME'] = await makeTempHome(); + const sourcePath = join(process.env['KIMI_CODE_HOME'], 'example.mp4'); + await writeFile(sourcePath, 'example video'); + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver, harness } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + await openBtwPanel(driver, session); + getMountedBtwPanel(driver).markDone(); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const attachment = imageStore.addVideo('video/mp4', sourcePath); + let finishIngestion!: () => void; + attachment.pending = new Promise((resolve) => { + finishIngestion = () => { + imageStore.completeVideo(attachment, { fileId: 'file-btw-video' }); + resolve(); + }; + }); + const input = `/skill:review inspect ${attachment.placeholder}`; + vi.useFakeTimers(); + try { + driver.state.editor.setText(input); + driver.state.editor.handleInput('\r'); + expect(session.promptWithSkills).not.toHaveBeenCalled(); + if (outcome === 'closed') driver.btwPanelController.closeOrCancel(); + if (outcome === 'timeout') { + driver.state.editor.setText('keep this draft'); + await vi.advanceTimersByTimeAsync(2_000); + expect(stripSgr(renderBtwPanel(driver))).toContain('still uploading'); + expect(driver.state.editor.getText()).toBe('keep this draft'); + } + finishIngestion(); + await vi.advanceTimersByTimeAsync(0); + if (outcome === 'ready') { + expect(session.promptWithSkills).toHaveBeenCalledExactlyOnceWith([ + { type: 'text', text: '/skill:review inspect ' }, + { type: 'video_url', videoUrl: { url: 'kimi-file://file-btw-video' } }, + ], [{ name: 'review', args: expect.stringContaining('Attached video file:') }]); + driver.sessionEventHandler.handleEvent({ + type: 'turn.started', sessionId: session.id, agentId: 'agent-btw', + turnId: 1, origin: { kind: 'user' }, + } as Event, () => {}); + driver.btwPanelController.closeOrCancel(); + driver.sessionEventHandler.handleEvent({ + type: 'turn.ended', sessionId: session.id, agentId: 'agent-btw', + turnId: 1, reason: 'cancelled', + } as Event, () => {}); + await vi.advanceTimersByTimeAsync(0); + expect(harness.deleteFile).toHaveBeenCalledExactlyOnceWith('file-btw-video'); + } else { + expect(session.promptWithSkills).not.toHaveBeenCalled(); + expect(session.prompt).toHaveBeenCalledTimes(1); + expect(imageStore.get(attachment.id)?.fileId).toBe('file-btw-video'); + } + } finally { + finishIngestion(); + vi.useRealTimers(); + } + }); + + it('reports a BTW skill failure without refilling the editor', async () => { + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + promptWithSkills: vi.fn() + .mockRejectedValueOnce(new Error('Prompt rejected')) + .mockResolvedValue(undefined), + }); + const { driver, harness } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + await openBtwPanel(driver, session); + getMountedBtwPanel(driver).markDone(); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const attachment = stagedImage(imageStore, 'file-btw-retry'); + const input = `/skill:review inspect ${attachment.placeholder}`; + driver.state.editor.setText(input); + driver.state.editor.handleInput('\r'); + await vi.waitFor(() => { + expect(stripSgr(renderBtwPanel(driver))).toContain('Prompt rejected'); + expect(driver.state.editor.getText()).toBe(''); + }); + await vi.waitFor(() => { + expect(harness.deleteFile).toHaveBeenCalledExactlyOnceWith('file-btw-retry'); + }); + expect(driver.state.queuedMessages).toEqual([]); + expect(session.promptWithSkills).toHaveBeenCalledOnce(); + }); + it('activates inline skills in the initial /btw prompt (v2 engine)', async () => { const session = makeSession({ id: 'ses-lazy', @@ -5001,6 +7749,44 @@ command = "vim" expect(session.prompt).not.toHaveBeenCalled(); }); + it('cancels a BTW skill prompt still waiting for media ingestion', async () => { + process.env['KIMI_CODE_HOME'] = await makeTempHome(); + const sourcePath = join(process.env['KIMI_CODE_HOME'], 'example.mp4'); + await writeFile(sourcePath, 'example video'); + const session = makeSession({ + listSkills: vi.fn(async () => [ + { name: 'review', description: 'Review skill', path: '/tmp/review', source: 'user' }, + ]), + }); + const { driver } = await makeDriver(session); + await ( + driver as unknown as { refreshSkillCommands(s: unknown): Promise } + ).refreshSkillCommands(session); + await openBtwPanel(driver, session); + getMountedBtwPanel(driver).markDone(); + const imageStore = (driver as unknown as { imageStore: ImageAttachmentStore }).imageStore; + const attachment = imageStore.addVideo('video/mp4', sourcePath); + let finishIngestion!: () => void; + attachment.pending = new Promise((resolve) => { + finishIngestion = () => { + imageStore.completeVideo(attachment, { fileId: 'file-btw-cancel' }); + resolve(); + }; + }); + driver.state.editor.setText(`/skill:review inspect ${attachment.placeholder}`); + driver.state.editor.handleInput('\r'); + expect(getMountedBtwPanel(driver).isRunning()).toBe(true); + + expect(driver.btwPanelController.cancelRunning()).toBe(true); + finishIngestion(); + + await vi.waitFor(() => { + expect(getMountedBtwPanel(driver).isRunning()).toBe(false); + }); + expect(session.promptWithSkills).not.toHaveBeenCalled(); + expect(stripSgr(renderBtwPanel(driver))).toContain('Interrupted by user'); + }); + it('activates a leading skill token in the initial /btw prompt (v2 engine)', async () => { const session = makeSession({ id: 'ses-lazy', @@ -5786,6 +8572,62 @@ command = "vim" expect(driver.state.appState.towerMode).toBe(false); }); + it('renders a marker when tower mode exits because a goal was activated', async () => { + const { driver } = await makeDriver(); + + driver.sessionEventHandler.handleEvent( + { + type: 'agent.status.updated', + agentId: 'main', + sessionId: 'ses-1', + towerMode: true, + } as Event, + vi.fn(), + ); + expect(driver.state.appState.towerMode).toBe(true); + + driver.sessionEventHandler.handleEvent( + { + type: 'agent.status.updated', + agentId: 'main', + sessionId: 'ses-1', + towerMode: false, + towerExitReason: 'mode-mutex', + } as Event, + vi.fn(), + ); + + expect(driver.state.appState.towerMode).toBe(false); + const transcript = stripSgr(renderTranscript(driver)); + expect(countOccurrences(transcript, 'Tower mode ended — a goal was activated')).toBe(1); + }); + + it('does not render the goal-exit marker for a reasonless tower exit', async () => { + const { driver } = await makeDriver(); + + driver.sessionEventHandler.handleEvent( + { + type: 'agent.status.updated', + agentId: 'main', + sessionId: 'ses-1', + towerMode: true, + } as Event, + vi.fn(), + ); + driver.sessionEventHandler.handleEvent( + { + type: 'agent.status.updated', + agentId: 'main', + sessionId: 'ses-1', + towerMode: false, + } as Event, + vi.fn(), + ); + + expect(driver.state.appState.towerMode).toBe(false); + expect(stripSgr(renderTranscript(driver))).not.toContain('Tower mode ended'); + }); + it('renders swarm mode markers from /swarm commands, not tool-triggered status updates', async () => { const { driver } = await makeDriver(); @@ -5825,6 +8667,35 @@ command = "vim" expect(countOccurrences(transcript, 'Swarm ended')).toBe(0); }); + it('syncs permission mode from agent.status.updated events', async () => { + const { driver } = await makeDriver(); + driver.state.appState.permissionMode = 'manual'; + + driver.sessionEventHandler.handleEvent( + { + type: 'agent.status.updated', + agentId: 'main', + sessionId: 'ses-1', + permission: 'auto', + } as Event, + vi.fn(), + ); + + expect(driver.state.appState.permissionMode).toBe('auto'); + + driver.sessionEventHandler.handleEvent( + { + type: 'agent.status.updated', + agentId: 'main', + sessionId: 'ses-1', + permission: 'yolo', + } as Event, + vi.fn(), + ); + + expect(driver.state.appState.permissionMode).toBe('yolo'); + }); + it('renders an ended marker when a one-shot /swarm task exits', async () => { const { driver, session } = await makeDriver(undefined); driver.state.appState.permissionMode = 'auto'; @@ -6184,7 +9055,9 @@ command = "vim" } as Event, sendQueued, ); - expect(driver.state.ui.requestRender).toHaveBeenCalled(); + // Swarm child events are batched onto the swarm's own frame timer instead + // of rendering the whole tree per event. + expect(driver.state.ui.requestRender).not.toHaveBeenCalled(); driver.sessionEventHandler.handleEvent( { @@ -6246,7 +9119,9 @@ command = "vim" } as Event, sendQueued, ); - expect(driver.state.ui.requestRender).toHaveBeenCalled(); + // A child turn end changes no swarm state, so it stays on the batched + // frame timer like the deltas above. + expect(driver.state.ui.requestRender).not.toHaveBeenCalled(); transcript = stripSgr(renderTranscript(driver)); expect(transcript).toContain('Agent Swarm'); @@ -8127,10 +11002,7 @@ command = "vim" driver.handleUserInput('/fork ignored args'); await vi.waitFor(() => { - expect(forkSession).toHaveBeenCalledWith({ - id: 'ses-source', - title: 'Fork: Source title', - }); + expect(forkSession).toHaveBeenCalledWith({ id: 'ses-source' }); expect(driver.state.transcriptContainer.render(120).join('\n')).toContain( 'Session forked (ses-fork). Still in the original session; switch to the fork via /sessions.', ); @@ -8229,10 +11101,7 @@ command = "vim" driver.handleUserInput('/fork'); await vi.waitFor(() => { - expect(forkSession).toHaveBeenCalledWith({ - id: 'ses-source', - title: 'Fork: ses-source', - }); + expect(forkSession).toHaveBeenCalledWith({ id: 'ses-source' }); expect(driver.getCurrentSessionId()).toBe('ses-source'); expect(driver.state.transcriptContainer.render(120).join('\n')).toContain( 'Failed to fork session: fork unavailable', @@ -8423,6 +11292,12 @@ command = "vim" } as Event, vi.fn(), ); + driver.streamingUI.flushNow(); + + const streaming = stripSgr(renderTranscript(driver)); + expect(streaming).toContain('t1'); + expect(streaming).toContain('t7'); + driver.sessionEventHandler.handleEvent( { type: 'assistant.delta', @@ -8434,6 +11309,7 @@ command = "vim" ); const transcript = stripSgr(renderTranscript(driver)); + expect(transcript).toContain('t1'); expect(transcript).toContain('t7'); expect(transcript).not.toContain('ctrl+o expand'); }); @@ -8479,6 +11355,99 @@ command = "vim" expect(transcript).toContain('(empty)'); expect(transcript).not.toContain(' { + const flushAsync = () => new Promise((resolve) => setTimeout(resolve, 0)); + + it('generates a session title after the first completed turn', async () => { + const generateSessionTitle = vi.fn(async () => 'Generated Title'); + const { driver } = await makeDriver(makeSession(), { generateSessionTitle }); + + emitTurn(driver, 1); + + await vi.waitFor(() => { + expect(generateSessionTitle).toHaveBeenCalledWith({ id: 'ses-1', source: 'first_turn' }); + }); + }); + + it('does not generate when autoSessionTitle is disabled', async () => { + const generateSessionTitle = vi.fn(async () => 'Generated Title'); + const { driver } = await makeDriver(makeSession(), { + generateSessionTitle, + getConfig: vi.fn(async () => ({ models: {}, autoSessionTitle: false })), + }); + + emitTurn(driver, 1); + await flushAsync(); + + expect(generateSessionTitle).not.toHaveBeenCalled(); + }); + + it('does not generate when the tui.toml auto_session_title toggle is off', async () => { + const generateSessionTitle = vi.fn(async () => 'Generated Title'); + const startupInput: KimiTUIStartupInput = { + ...makeStartupInput(), + tuiConfig: { ...makeStartupInput().tuiConfig, autoSessionTitle: false }, + }; + const session = makeSession(); + const { driver } = await makeDriver(session, { generateSessionTitle }, startupInput); + await driver.setSession(session); + await driver.syncRuntimeState(session); + + emitTurn(driver, 1); + await flushAsync(); + + expect(generateSessionTitle).not.toHaveBeenCalled(); + }); + + it('does not regenerate once a title was generated', async () => { + const generateSessionTitle = vi.fn(async () => 'Generated Title'); + const { driver } = await makeDriver(makeSession(), { generateSessionTitle }); + + emitTurn(driver, 1); + await vi.waitFor(() => { + expect(generateSessionTitle).toHaveBeenCalledTimes(1); + }); + await flushAsync(); + + emitTurn(driver, 2); + await flushAsync(); + + expect(generateSessionTitle).toHaveBeenCalledTimes(1); + }); + + it('stops retrying after three failed attempts', async () => { + const generateSessionTitle = vi.fn(async (): Promise => { + throw new Error('unavailable'); + }); + const { driver } = await makeDriver(makeSession(), { generateSessionTitle }); + + for (let turnId = 1; turnId <= 4; turnId += 1) { + emitTurn(driver, turnId); + await flushAsync(); + } + + expect(generateSessionTitle).toHaveBeenCalledTimes(3); + }); + + it('skips generation for turns that did not complete', async () => { + const generateSessionTitle = vi.fn(async () => 'Generated Title'); + const { driver } = await makeDriver(makeSession(), { generateSessionTitle }); + + driver.sessionEventHandler.handleEvent( + { type: 'turn.started', agentId: 'main', turnId: 1, origin: { kind: 'user' } } as Event, + () => {}, + ); + driver.sessionEventHandler.handleEvent( + { type: 'turn.ended', agentId: 'main', turnId: 1, reason: 'cancelled' } as Event, + () => {}, + ); + await flushAsync(); + + expect(generateSessionTitle).not.toHaveBeenCalled(); + }); }); describe('/model status displayName override', () => { @@ -8897,6 +11866,92 @@ describe('footer ctrl+o hint', () => { }); describe('KimiTUI session rating survey', () => { + it.each(['startup', 'switch', 'reload'] as const)( + 'reports cumulative user turns after a %s mount', + async (mount) => { + process.env['KIMI_CODE_HOME'] = await makeTempHome(); + vi.spyOn(Math, 'random').mockReturnValue(0); + try { + const session = makeSession(); + const resumeState = session.getResumeState(); + resumeState.agents.main.userTurnCount = 40; + session.getResumeState.mockReturnValue(resumeState); + const startup = makeStartupInput(); + startup.cliOptions.session = 'ses-1'; + const { driver, harness } = await makeDriver( + session, + { listSessions: vi.fn(async () => [{ id: 'ses-1', workDir: '/tmp/proj-a' }]) }, + mount === 'startup' ? startup : undefined, + ); + if (mount === 'switch') { + emitTurn(driver, 1); + await driver.switchToSession(session as unknown as Session, 'Resumed session.'); + } else if (mount === 'reload') { + emitTurn(driver, 1); + await driver.reloadCurrentSessionView(session as unknown as Session, 'Reloaded session.'); + } + vi.useFakeTimers(); + harness.trackWithContext.mockClear(); + emitTurn(driver, 41, () => { + driver.sessionEventHandler.handleEvent( + { type: 'agent.status.updated', agentId: 'main', contextTokens: 205_000 } as Event, + () => {}, + ); + }); + await vi.advanceTimersByTimeAsync(2_000); + + expect(harness.trackWithContext).toHaveBeenCalledWith( + 'long_context_survey', + expect.objectContaining({ event_type: 'appeared', user_turn_count: 41 }), + { sessionId: 'ses-1' }, + ); + } finally { + vi.useRealTimers(); + vi.restoreAllMocks(); + } + }, + ); + + it.each(['lazy', 'new-command'] as const)( + 'starts from zero when a new session is created through %s', + async (creation) => { + process.env['KIMI_CODE_HOME'] = await makeTempHome(); + vi.spyOn(Math, 'random').mockReturnValue(0); + try { + const session = makeSession({ getResumeState: vi.fn(() => undefined) }); + const startup = makeStartupInput(); + startup.cliOptions.model = 'k2'; + const { driver, harness } = await makeDriver(session, {}, startup); + if (creation === 'lazy') { + driver.handleUserInput('first question'); + await vi.waitFor(() => { + expect(session.prompt).toHaveBeenCalled(); + }); + } else { + await driver.createNewSession(); + } + vi.useFakeTimers(); + harness.trackWithContext.mockClear(); + emitTurn(driver, 1, () => { + driver.sessionEventHandler.handleEvent( + { type: 'agent.status.updated', agentId: 'main', contextTokens: 205_000 } as Event, + () => {}, + ); + }); + await vi.advanceTimersByTimeAsync(2_000); + + expect(harness.trackWithContext).toHaveBeenCalledWith( + 'long_context_survey', + expect.objectContaining({ event_type: 'appeared', user_turn_count: 1 }), + { sessionId: 'ses-1' }, + ); + } finally { + vi.useRealTimers(); + vi.restoreAllMocks(); + } + }, + ); + it('runs the end-to-end rating flow after five user turns', async () => { vi.useFakeTimers(); const homeDir = await makeTempHome(); @@ -8905,15 +11960,15 @@ describe('KimiTUI session rating survey', () => { try { const { driver, harness } = await makeDriver(); vi.useRealTimers(); - await vi.waitFor(() => { - expect((driver.surveyController as unknown as { cooldownReady: boolean }).cooldownReady).toBe(true); + await new Promise((resolve) => { + setImmediate(resolve); }); vi.useFakeTimers(); harness.track.mockClear(); for (let turn = 1; turn <= 4; turn++) emitTurn(driver, turn); vi.advanceTimersByTime(600_000); - vi.advanceTimersByTime(2_000); + await vi.advanceTimersByTimeAsync(2_000); expect(driver.state.surveyContainer.children).toHaveLength(0); emitTurn(driver, 5, () => { @@ -8942,42 +11997,48 @@ describe('KimiTUI session rating survey', () => { () => {}, ); }); - vi.advanceTimersByTime(2_000); + await vi.advanceTimersByTimeAsync(2_000); const docked = stripSgr(driver.state.surveyContainer.render(120).join('\n')); expect(docked).toContain('How is Kimi doing this session? (optional)'); expect(docked).toContain('1: Bad 2: Fine 3: Good 0: Dismiss'); - expect(harness.track).toHaveBeenCalledTimes(1); - expect(harness.track).toHaveBeenCalledWith('feedback_survey', { - event_type: 'appeared', - appearance_id: expect.any(String), - appearance_index: 1, - response: undefined, - current_model: 'k2', - user_turn_count: 5, - cumulative_tokens: 160, - virtual_context_tokens: 4321, - tool_call_count: 1, - compaction_count: 0, - permission_mode: 'manual', - thinking_effort: 'off', - config_probability: 0.005, - config_on_for_models: '*', - config_min_time_before_feedback_ms: 600_000, - config_min_user_turns_before_feedback: 5, - config_min_time_between_feedback_ms: 3_600_000, - config_min_user_turns_between_feedback: 10, - config_min_time_between_global_feedback_ms: 100_000_000, - config_long_context_survey_threshold: 200_000, - config_long_context_probability: 0.2, - config_long_context_trigger_mode: 'cumulative', - }); + expect(harness.trackWithContext).toHaveBeenCalledTimes(1); + expect(harness.trackWithContext).toHaveBeenCalledWith( + 'feedback_survey', + { + event_type: 'appeared', + appearance_id: expect.any(String), + appearance_index: 1, + response: undefined, + current_model: 'k2', + user_turn_count: 5, + cumulative_tokens: 160, + virtual_context_tokens: 4321, + tool_call_count: 1, + compaction_count: 0, + permission_mode: 'manual', + thinking_effort: 'off', + subagent_count: 0, + swarm_run_count: 0, + config_probability: 0.005, + config_on_for_models: '*', + config_min_time_before_feedback_ms: 600_000, + config_min_user_turns_before_feedback: 5, + config_min_time_between_feedback_ms: 3_600_000, + config_min_user_turns_between_feedback: 10, + config_min_time_between_global_feedback_ms: 100_000_000, + config_long_context_survey_threshold: 200_000, + config_long_context_probability: 0.2, + config_long_context_trigger_mode: 'virtual_context', + }, + { sessionId: 'ses-1' }, + ); const appearanceId = ( - harness.track.mock.calls[0]![1] as { appearance_id: string } + harness.trackWithContext.mock.calls[0]![1] as { appearance_id: string } ).appearance_id; driver.state.editor.handleInput('1'); vi.advanceTimersByTime(400); - expect(harness.track).toHaveBeenCalledTimes(1); + expect(harness.trackWithContext).toHaveBeenCalledTimes(1); vi.advanceTimersByTime(600); driver.state.editor.setText(''); @@ -8987,11 +12048,11 @@ describe('KimiTUI session rating survey', () => { expect(stripSgr(driver.state.surveyContainer.render(120).join('\n'))).toContain( 'Feedback: Bad · [escape: undo]', ); - expect(harness.track).toHaveBeenCalledTimes(1); + expect(harness.trackWithContext).toHaveBeenCalledTimes(1); driver.state.editor.handleInput('\u001B'); vi.advanceTimersByTime(3_000); - expect(harness.track).toHaveBeenCalledTimes(1); + expect(harness.trackWithContext).toHaveBeenCalledTimes(1); expect(stripSgr(driver.state.surveyContainer.render(120).join('\n'))).toContain( 'How is Kimi doing this session? (optional)', ); @@ -9000,7 +12061,7 @@ describe('KimiTUI session rating survey', () => { driver.state.editor.handleInput('3'); vi.advanceTimersByTime(400); vi.advanceTimersByTime(3_000); - const responded = harness.track.mock.calls + const responded = harness.trackWithContext.mock.calls .filter( (call) => call[0] === 'feedback_survey' && @@ -9033,7 +12094,7 @@ describe('KimiTUI session rating survey', () => { } }); - it('shows the long-context survey once cumulative tokens cross the threshold', async () => { + it('shows the long-context survey once the context window crosses the threshold', async () => { vi.useFakeTimers(); const homeDir = await makeTempHome(); process.env['KIMI_CODE_HOME'] = homeDir; @@ -9041,8 +12102,8 @@ describe('KimiTUI session rating survey', () => { try { const { driver, harness } = await makeDriver(); vi.useRealTimers(); - await vi.waitFor(() => { - expect((driver.surveyController as unknown as { cooldownReady: boolean }).cooldownReady).toBe(true); + await new Promise((resolve) => { + setImmediate(resolve); }); vi.useFakeTimers(); harness.track.mockClear(); @@ -9053,44 +12114,51 @@ describe('KimiTUI session rating survey', () => { type: 'agent.status.updated', agentId: 'main', sessionId: 'ses-1', - contextTokens: 1500, + contextTokens: 205_000, usage: { total: { - inputOther: 150_000, - output: 20_000, - inputCacheRead: 25_000, - inputCacheCreation: 10_000, + inputOther: 1_000, + output: 500, + inputCacheRead: 0, + inputCacheCreation: 0, }, }, } as Event, () => {}, ); }); - vi.advanceTimersByTime(2_000); + await vi.advanceTimersByTimeAsync(2_000); expect(stripSgr(driver.state.surveyContainer.render(120).join('\n'))).toContain( 'How is Kimi doing this session? (optional)', ); - expect(harness.track).toHaveBeenCalledTimes(1); - expect(harness.track).toHaveBeenCalledWith( + expect(harness.trackWithContext).toHaveBeenCalledTimes(1); + expect(harness.trackWithContext).toHaveBeenCalledWith( 'long_context_survey', expect.objectContaining({ event_type: 'appeared', appearance_index: 1, user_turn_count: 1, - cumulative_tokens: 205_000, - virtual_context_tokens: 1500, + cumulative_tokens: 1500, + virtual_context_tokens: 205_000, config_long_context_survey_threshold: 200_000, config_long_context_probability: 0.2, - config_long_context_trigger_mode: 'cumulative', + config_long_context_trigger_mode: 'virtual_context', }), + { sessionId: 'ses-1' }, ); vi.useRealTimers(); - await new Promise((resolve) => { - setImmediate(resolve); + const stateFile = join(homeDir, 'feedback-survey-state.json'); + await vi.waitFor(() => { + expect(existsSync(stateFile)).toBe(true); }); - expect(existsSync(join(homeDir, 'feedback-survey-state.json'))).toBe(false); + const persisted = JSON.parse(await readFile(stateFile, 'utf-8')) as { + version: number; + last_shown_time: number; + }; + expect(persisted.version).toBe(1); + expect(typeof persisted.last_shown_time).toBe('number'); } finally { vi.useRealTimers(); vi.restoreAllMocks(); @@ -9104,8 +12172,8 @@ describe('KimiTUI session rating survey', () => { try { const { driver } = await makeDriver(); vi.useRealTimers(); - await vi.waitFor(() => { - expect((driver.surveyController as unknown as { cooldownReady: boolean }).cooldownReady).toBe(true); + await new Promise((resolve) => { + setImmediate(resolve); }); vi.useFakeTimers(); const emit = (event: Event) => { @@ -9125,11 +12193,11 @@ describe('KimiTUI session rating survey', () => { emit({ type: 'turn.started', agentId: 'main', turnId: turn, origin: cronOrigin } as Event); emit({ type: 'turn.ended', agentId: 'main', turnId: turn, reason: 'completed' } as Event); } - vi.advanceTimersByTime(2_000); + await vi.advanceTimersByTimeAsync(2_000); expect(driver.state.surveyContainer.children).toHaveLength(0); for (let turn = 6; turn <= 10; turn++) emitTurn(driver, turn); - vi.advanceTimersByTime(2_000); + await vi.advanceTimersByTimeAsync(2_000); expect(driver.state.surveyContainer.children).not.toHaveLength(0); vi.useRealTimers(); @@ -9151,8 +12219,8 @@ describe('KimiTUI session rating survey', () => { try { const { driver } = await makeDriver(); vi.useRealTimers(); - await vi.waitFor(() => { - expect((driver.surveyController as unknown as { cooldownReady: boolean }).cooldownReady).toBe(true); + await new Promise((resolve) => { + setImmediate(resolve); }); vi.useFakeTimers(); const emit = (event: Event) => { @@ -9174,7 +12242,7 @@ describe('KimiTUI session rating survey', () => { } as Event); emit({ type: 'turn.ended', agentId: 'main', turnId: turn, reason: 'completed' } as Event); } - vi.advanceTimersByTime(2_000); + await vi.advanceTimersByTimeAsync(2_000); expect(driver.state.surveyContainer.children).toHaveLength(0); for (let turn = 6; turn <= 8; turn++) { @@ -9206,7 +12274,7 @@ describe('KimiTUI session rating survey', () => { } as Event); emit({ type: 'turn.ended', agentId: 'main', turnId: turn, reason: 'completed' } as Event); } - vi.advanceTimersByTime(2_000); + await vi.advanceTimersByTimeAsync(2_000); expect(driver.state.surveyContainer.children).not.toHaveLength(0); vi.useRealTimers(); @@ -9220,4 +12288,340 @@ describe('KimiTUI session rating survey', () => { vi.restoreAllMocks(); } }); + + it('mirrors disable_feedback_survey config changes into appState', async () => { + let listener: ((change: { domain: string; value: unknown }) => void) | undefined; + const unsubscribe = vi.fn(); + const { driver } = await makeDriver(makeSession(), { + onConfigSectionChanged: vi.fn( + (fn: (change: { domain: string; value: unknown }) => void) => { + listener = fn; + return unsubscribe; + }, + ), + }); + expect(listener).toBeDefined(); + expect(unsubscribe).not.toHaveBeenCalled(); + listener?.({ domain: 'disableFeedbackSurvey', value: true }); + expect(driver.state.appState.disableFeedbackSurvey).toBe(true); + listener?.({ domain: 'disableFeedbackSurvey', value: false }); + expect(driver.state.appState.disableFeedbackSurvey).toBeUndefined(); + listener?.({ domain: 'telemetry', value: false }); + expect(driver.state.appState.disableFeedbackSurvey).toBeUndefined(); + }); +}); + +describe('transcript fold block clicks', () => { + const transcriptWidth = 120; + + function hiddenOutput(name: string): string { + return [`${name}-body`, `${name}-mid`, `${name}-more`, `${name}-tail`].join('\n'); + } + + function emitBash( + driver: MessageDriver, + toolCallId: string, + command: string, + output: string, + ): void { + driver.sessionEventHandler.handleEvent( + { + type: 'tool.call.started', + agentId: 'main', + sessionId: 'ses-1', + turnId: 1, + toolCallId, + name: 'Bash', + args: { command }, + } as Event, + vi.fn(), + ); + driver.sessionEventHandler.handleEvent( + { + type: 'tool.result', + agentId: 'main', + sessionId: 'ses-1', + turnId: 1, + toolCallId, + output, + isError: undefined, + } as Event, + vi.fn(), + ); + } + + function renderFooterLine1(driver: MessageDriver): string { + return stripSgr(driver.state.footer.render(160)[0] ?? ''); + } + + function clickTranscriptLine(driver: MessageDriver, needle: string): void { + const lines = driver.state.transcriptContainer.render(transcriptWidth); + const y = lines.findIndex((line) => stripSgr(line).includes(needle)); + expect(y).toBeGreaterThanOrEqual(0); + const event: TuiMouseEvent = { + type: 'click', + button: 'left', + x: 2, + y, + screenX: 2, + screenY: y, + width: transcriptWidth, + height: lines.length, + shift: false, + alt: false, + ctrl: false, + clickCount: 1, + }; + driver.state.transcriptContainer.handleMouse(event); + } + + it('opens only the clicked tool card while the footer still offers expand', async () => { + const { driver } = await makeDriver(); + emitBash(driver, 'call_alpha', 'echo alpha', hiddenOutput('alpha')); + emitBash(driver, 'call_beta', 'echo beta', hiddenOutput('beta')); + + const collapsed = stripSgr(renderTranscript(driver)); + expect(collapsed).toContain('alpha-tail'); + expect(collapsed).not.toContain('alpha-body'); + expect(collapsed).not.toContain('beta-body'); + expect(renderFooterLine1(driver)).toContain('ctrl+o expand'); + + clickTranscriptLine(driver, 'alpha-tail'); + + const opened = stripSgr(renderTranscript(driver)); + expect(opened).toContain('alpha-body'); + expect(opened).not.toContain('beta-body'); + expect(driver.state.toolOutputExpanded).toBe(false); + expect(renderFooterLine1(driver)).toContain('ctrl+o expand'); + + clickTranscriptLine(driver, 'alpha-body'); + + const closed = stripSgr(renderTranscript(driver)); + expect(closed).not.toContain('alpha-body'); + expect(closed).not.toContain('beta-body'); + expect(driver.state.toolOutputExpanded).toBe(false); + expect(renderFooterLine1(driver)).toContain('ctrl+o expand'); + }); + + it('lets ctrl+o overwrite a clicked card and keeps a neighbor open', async () => { + const { driver } = await makeDriver(); + emitBash(driver, 'call_alpha', 'echo alpha', hiddenOutput('alpha')); + emitBash(driver, 'call_beta', 'echo beta', hiddenOutput('beta')); + + clickTranscriptLine(driver, 'alpha-tail'); + driver.toggleToolOutputExpansion(); + + const expanded = stripSgr(renderTranscript(driver)); + expect(expanded).toContain('alpha-body'); + expect(expanded).toContain('beta-body'); + expect(driver.state.toolOutputExpanded).toBe(true); + expect(renderFooterLine1(driver)).toContain('ctrl+o collapse'); + + clickTranscriptLine(driver, 'alpha-body'); + + const oneClosed = stripSgr(renderTranscript(driver)); + expect(oneClosed).not.toContain('alpha-body'); + expect(oneClosed).toContain('beta-body'); + expect(driver.state.toolOutputExpanded).toBe(true); + expect(renderFooterLine1(driver)).toContain('ctrl+o collapse'); + + driver.toggleToolOutputExpansion(); + + const collapsed = stripSgr(renderTranscript(driver)); + expect(collapsed).not.toContain('alpha-body'); + expect(collapsed).not.toContain('beta-body'); + expect(driver.state.toolOutputExpanded).toBe(false); + expect(renderFooterLine1(driver)).toContain('ctrl+o expand'); + }); + + it('closes an aged-out open card and does not open it again', async () => { + const { driver } = await makeDriver(); + emitBash(driver, 'call_old', 'echo old', hiddenOutput('old')); + driver.toggleToolOutputExpansion(); + expect(stripSgr(renderTranscript(driver))).toContain('old-body'); + + for (let i = 0; i < 4; i++) { + driver.appendTranscriptEntry({ + id: `later-${String(i)}`, + kind: 'user', + renderMode: 'plain', + content: `later turn ${String(i)}`, + }); + } + emitBash(driver, 'call_recent', 'echo recent', hiddenOutput('recent')); + + expect(stripSgr(renderTranscript(driver))).toContain('old-body'); + expect(stripSgr(renderTranscript(driver))).toContain('recent-body'); + + clickTranscriptLine(driver, 'old-body'); + + const oldClosed = stripSgr(renderTranscript(driver)); + expect(oldClosed).not.toContain('old-body'); + expect(oldClosed).toContain('recent-body'); + expect(driver.state.toolOutputExpanded).toBe(true); + + clickTranscriptLine(driver, 'old-tail'); + expect(stripSgr(renderTranscript(driver))).not.toContain('old-body'); + expect(stripSgr(renderTranscript(driver))).toContain('recent-body'); + + driver.toggleToolOutputExpansion(); + expect(stripSgr(renderTranscript(driver))).not.toContain('old-body'); + expect(stripSgr(renderTranscript(driver))).not.toContain('recent-body'); + expect(driver.state.toolOutputExpanded).toBe(false); + + driver.toggleToolOutputExpansion(); + const reopened = stripSgr(renderTranscript(driver)); + expect(reopened).not.toContain('old-body'); + expect(reopened).toContain('recent-body'); + expect(renderFooterLine1(driver)).toContain('ctrl+o collapse'); + }); + + it('does not change a fold block when the click lands on message text', async () => { + const { driver } = await makeDriver(); + emitBash(driver, 'call_alpha', 'echo alpha', hiddenOutput('alpha')); + driver.appendTranscriptEntry({ + id: 'user-plain', + kind: 'user', + renderMode: 'plain', + content: 'plain user sentence', + }); + + clickTranscriptLine(driver, 'plain user sentence'); + + const transcript = stripSgr(renderTranscript(driver)); + expect(transcript).toContain('plain user sentence'); + expect(transcript).not.toContain('alpha-body'); + expect(transcript).toContain('alpha-tail'); + expect(driver.state.toolOutputExpanded).toBe(false); + expect(renderFooterLine1(driver)).toContain('ctrl+o expand'); + }); + + it('toggles live and finalized thinking without advertising it in the footer', async () => { + const { driver } = await makeDriver(); + const longThinking = ['think-one', 'think-two', 'think-three'].join('\n'); + driver.streamingUI.onThinkingUpdate(longThinking); + const streaming = stripSgr(renderTranscript(driver)); + expect(streaming).toContain('think-three'); + expect(streaming).not.toContain('think-one'); + + clickTranscriptLine(driver, 'think-three'); + expect(stripSgr(renderTranscript(driver))).toContain('think-one'); + + clickTranscriptLine(driver, 'think-one'); + expect(stripSgr(renderTranscript(driver))).not.toContain('think-one'); + + clickTranscriptLine(driver, 'think-three'); + expect(stripSgr(renderTranscript(driver))).toContain('think-one'); + + driver.streamingUI.onThinkingUpdate(`${longThinking}\nthink-four`); + const growing = stripSgr(renderTranscript(driver)); + expect(growing).toContain('think-one'); + expect(growing).toContain('think-four'); + + driver.streamingUI.onThinkingEnd(); + const finalized = stripSgr(renderTranscript(driver)); + expect(finalized).toContain('think-one'); + expect(finalized).toContain('think-four'); + expect(renderFooterLine1(driver)).not.toContain('ctrl+o'); + + clickTranscriptLine(driver, 'think-four'); + + const collapsed = stripSgr(renderTranscript(driver)); + expect(collapsed).toContain('think-one'); + expect(collapsed).not.toContain('think-four'); + expect(renderFooterLine1(driver)).not.toContain('ctrl+o'); + + clickTranscriptLine(driver, 'think-one'); + + const opened = stripSgr(renderTranscript(driver)); + expect(opened).toContain('think-four'); + expect(renderFooterLine1(driver)).not.toContain('ctrl+o'); + + clickTranscriptLine(driver, 'think-four'); + expect(stripSgr(renderTranscript(driver))).not.toContain('think-four'); + + driver.toggleToolOutputExpansion(); + expect(stripSgr(renderTranscript(driver))).toContain('think-four'); + expect(renderFooterLine1(driver)).not.toContain('ctrl+o'); + expect(driver.state.toolOutputExpanded).toBe(true); + + driver.toggleToolOutputExpansion(); + expect(stripSgr(renderTranscript(driver))).not.toContain('think-four'); + expect(driver.state.toolOutputExpanded).toBe(false); + expect(renderFooterLine1(driver)).not.toContain('ctrl+o'); + }); + + it('keeps the expand hint when clicked cards are all open', async () => { + const { driver } = await makeDriver(); + emitBash(driver, 'call_alpha', 'echo alpha', hiddenOutput('alpha')); + emitBash(driver, 'call_beta', 'echo beta', hiddenOutput('beta')); + + clickTranscriptLine(driver, 'alpha-tail'); + clickTranscriptLine(driver, 'beta-tail'); + + const opened = stripSgr(renderTranscript(driver)); + expect(opened).toContain('alpha-body'); + expect(opened).toContain('beta-body'); + expect(driver.state.toolOutputExpanded).toBe(false); + expect(renderFooterLine1(driver)).toContain('ctrl+o expand'); + }); + + it('drops the collapse hint after every open card is clicked shut', async () => { + const { driver } = await makeDriver(); + emitBash(driver, 'call_alpha', 'echo alpha', hiddenOutput('alpha')); + emitBash(driver, 'call_beta', 'echo beta', hiddenOutput('beta')); + driver.toggleToolOutputExpansion(); + expect(renderFooterLine1(driver)).toContain('ctrl+o collapse'); + + clickTranscriptLine(driver, 'alpha-body'); + clickTranscriptLine(driver, 'beta-body'); + + const closed = stripSgr(renderTranscript(driver)); + expect(closed).not.toContain('alpha-body'); + expect(closed).not.toContain('beta-body'); + expect(driver.state.toolOutputExpanded).toBe(true); + expect(renderFooterLine1(driver)).not.toContain('ctrl+o'); + }); + + it('closes a wrapped ! card that was opened from its preview', async () => { + const marker = 'shell-tail-marker'; + const stdout = `${'x'.repeat(4000)}${marker}`; + const runShellCommand = vi.fn(async () => ({ stdout, stderr: '', isError: false })); + const session = makeSession({ runShellCommand }); + const { driver } = await makeDriver(session); + driver.state.appState.inputMode = 'bash'; + driver.state.editor.inputMode = 'bash'; + + driver.handleUserInput('echo-shell'); + await vi.waitFor(() => { + const transcript = stripSgr(renderTranscript(driver)); + expect(transcript).toContain('ctrl+o to expand'); + expect(transcript).not.toContain(marker); + }); + + clickTranscriptLine(driver, 'more lines'); + expect(stripSgr(renderTranscript(driver))).toContain(marker); + + clickTranscriptLine(driver, marker); + const closed = stripSgr(renderTranscript(driver)); + expect(closed).not.toContain(marker); + expect(closed).toContain('ctrl+o to expand'); + expect(driver.state.toolOutputExpanded).toBe(false); + }); + + it('closes a wide tool card that mounted while the transcript was expanded', async () => { + const { driver } = await makeDriver(); + driver.toggleToolOutputExpansion(); + const output = `wide-head ${'w'.repeat(500)} wide-tail`; + emitBash(driver, 'call_wide', 'echo wide', output); + + expect(stripSgr(renderTranscript(driver))).toContain('wide-tail'); + + clickTranscriptLine(driver, 'echo wide'); + + const closed = stripSgr(renderTranscript(driver)); + expect(closed).not.toContain('wide-tail'); + expect(closed).toContain('wide-head'); + expect(driver.state.toolOutputExpanded).toBe(true); + }); }); diff --git a/apps/kimi-code/test/tui/kimi-tui-startup.test.ts b/apps/kimi-code/test/tui/kimi-tui-startup.test.ts index 567220d54..8141ba4bb 100644 --- a/apps/kimi-code/test/tui/kimi-tui-startup.test.ts +++ b/apps/kimi-code/test/tui/kimi-tui-startup.test.ts @@ -1,18 +1,22 @@ -import { mkdtempSync, rmSync } from 'node:fs'; +import { mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs'; import { tmpdir } from 'node:os'; import { join } from 'node:path'; import { log, type GoalSnapshot } from '@moonshot-ai/kimi-code-sdk'; import type { MigrationPlan } from '@moonshot-ai/migration-legacy'; +import type { Component, Focusable } from '@moonshot-ai/pi-tui'; import { describe, expect, it, vi } from 'vitest'; import { BannerProvider } from '#/tui/banner/banner-provider'; import { readBannerDisplayState } from '#/tui/banner/state'; import { handleLoginCommand, handleLogoutCommand } from '#/tui/commands/auth'; import { promptPlatformSelection, promptLogoutProviderSelection } from '#/tui/commands/prompts'; +import { ChoicePickerComponent } from '#/tui/components/dialogs/choice-picker'; import { BannerComponent } from '#/tui/components/chrome/banner'; import { WelcomeComponent } from '#/tui/components/chrome/welcome'; import { KimiTUI, type KimiTUIStartupInput, type TUIState } from '#/tui/kimi-tui'; +import { maybeShowModelMigrationPrompt } from '#/tui/controllers/model-migration'; +import type { ApprovalPanelData, QuestionPanelData } from '#/tui/reverse-rpc/types'; import { REPLAY_FETCH_TURN_LIMIT } from '#/tui/utils/message-replay'; import { copyTextToClipboard } from '#/utils/clipboard/clipboard-text'; import { quoteShellArg } from '#/utils/shell-quote'; @@ -31,6 +35,13 @@ vi.mock('#/tui/commands/prompts', async (importOriginal) => { vi.mock('#/utils/clipboard/clipboard-text', () => ({ copyTextToClipboard: vi.fn(async () => {}), })); +const modelMigrationState = vi.hoisted(() => ({ acknowledged: {} as Record })); +vi.mock('#/utils/model-migration-state', () => ({ + readModelMigrationAcknowledgements: vi.fn(async () => ({ ...modelMigrationState.acknowledged })), + acknowledgeModelMigration: vi.fn(async (fromAlias: string, toModel: string) => { + modelMigrationState.acknowledged = { ...modelMigrationState.acknowledged, [fromAlias]: toModel }; + }), +})); const copyTextToClipboardMock = vi.mocked(copyTextToClipboard); @@ -123,6 +134,7 @@ function makeSession(overrides: Record = {}) { })), setApprovalHandler: vi.fn(), setQuestionHandler: vi.fn(), + setStaleReloadHandler: vi.fn(), setModel: vi.fn(async () => {}), setThinking: vi.fn(async () => {}), setPermission: vi.fn(async () => {}), @@ -203,6 +215,7 @@ function makeHarness(session = makeSession(), overrides: Record k2: { model: 'moonshot-v1', maxContextSize: 100 }, }, })), + onConfigSectionChanged: vi.fn(() => vi.fn()), createSession: vi.fn(async () => session), resumeSession: vi.fn(async () => session), listSessions: vi.fn(async () => []), @@ -210,12 +223,14 @@ function makeHarness(session = makeSession(), overrides: Record track: vi.fn(), setTelemetryContext: vi.fn(), getExperimentalFeatures: vi.fn(async () => []), - supportsAtomicSectionReplace: vi.fn(() => false), + getWorkspaceTrustInfo: vi.fn(async () => ({ trusted: true, gatedMcpServers: [], gatedAdditionalDirs: [], additionalDirSources: [], warnings: [], instructionSources: { agentsMdPaths: [], skills: [], agentProfiles: [], paths: [] } })), + refreshProviderModels: vi.fn(async () => ({ changed: [], unchanged: [], failed: [] })), auth: { status: vi.fn(async () => ({ providers: [] })), login: vi.fn(async () => {}), logout: vi.fn(), getManagedUsage: vi.fn(), + getCachedAccessToken: vi.fn(async () => undefined), }, ...overrides, }; @@ -288,11 +303,9 @@ describe('KimiTUI startup', () => { }); }); - it('mounts the docked fullscreen layout when KIMI_CODE_TUI_FULL_SCREEN=1', async () => { + it('mounts the docked fullscreen layout when tui_mode is fullscreen', async () => { const harness = makeHarness(makeSession()); - vi.stubEnv('KIMI_CODE_TUI_FULL_SCREEN', '1'); - const driver = makeDriver(harness, { ...makeStartupInput() }); - vi.unstubAllEnvs(); + const driver = makeDriver(harness, { ...makeStartupInput({}, { tuiMode: 'fullscreen' }) }); expect(driver.state.ui.mode).toBe('fullscreen'); expect(driver.state.ui.children).toHaveLength(0); @@ -317,6 +330,117 @@ describe('KimiTUI startup', () => { expect(transcript).toContain('No session yet — one will be created on your first message.'); }); + it('reports the legacy survey setting migration and applies the migrated value', async () => { + const homeDir = mkdtempSync(join(tmpdir(), 'kimi-tui-survey-home-')); + const previousHome = process.env['KIMI_CODE_HOME']; + process.env['KIMI_CODE_HOME'] = homeDir; + try { + writeFileSync(join(homeDir, 'tui.toml'), 'disable_feedback_survey = true\n'); + const setConfig = vi.fn(async () => ({})); + const harness = makeHarness(makeSession(), { + getConfig: vi.fn(async () => ({ + models: { + k2: { model: 'moonshot-v1', maxContextSize: 100 }, + }, + })), + setConfig, + }); + const driver = makeDriver(harness, { + ...makeStartupInput({}, { disableFeedbackSurvey: true }), + }); + + await expect(driver.init()).resolves.toBe(false); + await ( + driver as unknown as { finishStartup(shouldReplayHistory: boolean): Promise } + ).finishStartup(false); + + await vi.waitFor(() => { + expect(harness.track).toHaveBeenCalledWith('survey_setting_migration', { + legacy: true, + configured: 'absent', + action: 'written', + }); + }); + expect(setConfig).toHaveBeenCalledWith({ disableFeedbackSurvey: true }); + expect(driver.state.appState.disableFeedbackSurvey).toBe(true); + expect(readFileSync(join(homeDir, 'tui.toml'), 'utf-8')).not.toContain( + 'disable_feedback_survey', + ); + } finally { + if (previousHome === undefined) delete process.env['KIMI_CODE_HOME']; + else process.env['KIMI_CODE_HOME'] = previousHome; + rmSync(homeDir, { recursive: true, force: true }); + } + }); + + it.each([ + { legacy: true, configured: false, action: 'kept_existing', reportedConfigured: false }, + { legacy: false, configured: undefined, action: 'dropped_default', reportedConfigured: 'absent' }, + ])( + 'reports $action for the legacy survey setting migration', + async ({ legacy, configured, action, reportedConfigured }) => { + const homeDir = mkdtempSync(join(tmpdir(), 'kimi-tui-survey-home-')); + const previousHome = process.env['KIMI_CODE_HOME']; + process.env['KIMI_CODE_HOME'] = homeDir; + try { + writeFileSync(join(homeDir, 'tui.toml'), `disable_feedback_survey = ${String(legacy)}\n`); + const setConfig = vi.fn(async () => ({})); + const harness = makeHarness(makeSession(), { + getConfig: vi.fn(async () => ({ + models: { + k2: { model: 'moonshot-v1', maxContextSize: 100 }, + }, + disableFeedbackSurvey: configured, + })), + setConfig, + }); + const driver = makeDriver(harness, { + ...makeStartupInput({}, { disableFeedbackSurvey: legacy }), + }); + + await expect(driver.init()).resolves.toBe(false); + await ( + driver as unknown as { finishStartup(shouldReplayHistory: boolean): Promise } + ).finishStartup(false); + + await vi.waitFor(() => { + expect(harness.track).toHaveBeenCalledWith('survey_setting_migration', { + legacy, + configured: reportedConfigured, + action, + }); + }); + expect(setConfig).not.toHaveBeenCalled(); + expect(readFileSync(join(homeDir, 'tui.toml'), 'utf-8')).not.toContain( + 'disable_feedback_survey', + ); + } finally { + if (previousHome === undefined) delete process.env['KIMI_CODE_HOME']; + else process.env['KIMI_CODE_HOME'] = previousHome; + rmSync(homeDir, { recursive: true, force: true }); + } + }, + ); + + it('does not report the survey setting migration without a legacy key', async () => { + const harness = makeHarness(makeSession()); + const driver = makeDriver(harness, { ...makeStartupInput() }); + + await expect(driver.init()).resolves.toBe(false); + await ( + driver as unknown as { finishStartup(shouldReplayHistory: boolean): Promise } + ).finishStartup(false); + + await vi.waitFor(() => { + expect(harness.getConfig).toHaveBeenCalled(); + }); + await new Promise((resolve) => setTimeout(resolve, 0)); + expect(harness.track).not.toHaveBeenCalledWith( + 'survey_setting_migration', + expect.anything(), + ); + }); + it('shows config defaults in appState before the lazy session exists (v2)', async () => { const harness = makeHarness(makeSession(), { getConfig: vi.fn(async () => ({ @@ -1882,9 +2006,9 @@ describe('KimiTUI startup', () => { const showStatus = vi.spyOn(driver as any, "showStatus").mockImplementation(() => {}); vi.spyOn((driver as any).authFlow, "refreshProviderModels").mockResolvedValue({ changed: [ - { providerId: "new-models", providerName: "New Models", added: 2, removed: 0 }, - { providerId: "removed-models", providerName: "Removed Models", added: 0, removed: 3 }, - { providerId: "metadata-only", providerName: "Metadata Only", added: 0, removed: 0 }, + { provider_id: "new-models", provider_name: "New Models", added: 2, removed: 0 }, + { provider_id: "removed-models", provider_name: "Removed Models", added: 0, removed: 3 }, + { provider_id: "metadata-only", provider_name: "Metadata Only", added: 0, removed: 0 }, ], unchanged: [], failed: [], @@ -1896,116 +2020,643 @@ describe('KimiTUI startup', () => { expect(showStatus).toHaveBeenCalledWith("New Models · +2 models."); }); - it("stages provider-refresh removals and persists one atomic write on atomic-capable harnesses", async () => { - const registryUrl = "https://registry.example.test/v1/models/api.json"; - const source = { kind: "apiJson", url: registryUrl, apiKey: "sk-test-token" }; - const replaceConfigSections = vi.fn(async (_sections: Record) => {}); - const removeProvider = vi.fn(async () => ({})); + async function flushMigrationCheck(): Promise { + await new Promise((resolve) => setImmediate(resolve)); + await new Promise((resolve) => setImmediate(resolve)); + } + + function installMigrationModels(driver: StartupDriver): void { + modelMigrationState.acknowledged = {}; + driver.state.appState.model = 'acme/current'; + driver.state.appState.thinkingEffort = 'off'; + driver.state.appState.availableProviders = { + acme: { type: 'openai' }, + }; + driver.state.appState.availableModels = { + 'acme/current': { + provider: 'acme', + model: 'current', + maxContextSize: 100, + capabilities: ['tool_use'], + upgrade: { + model: 'acme/next', + migrationMarkdown: 'Use current to next', + retirementAt: undefined, + }, + }, + 'acme/next': { + provider: 'acme', + model: 'next', + maxContextSize: 100, + capabilities: ['tool_use', 'thinking'], + supportEfforts: ['low', 'high'], + defaultEffort: 'high', + }, + }; + } + + it.each(['off', 'high'])('persists the migration default effort when the live effort is %s', async (liveEffort) => { + const session = makeSession({ + getStatus: vi.fn(async () => ({ + model: 'acme/next', + thinkingEffort: 'high', + permission: 'manual', + planMode: false, + contextTokens: 10, + maxContextTokens: 100, + contextUsage: 0.1, + })), + }); const setConfig = vi.fn(async () => ({})); - const harness = makeHarness(makeSession(), { - supportsAtomicSectionReplace: vi.fn(() => true), - replaceConfigSections, - removeProvider, + const harness = makeHarness(session, { setConfig, getConfig: vi.fn(async () => ({ - providers: { - a: { type: "openai", baseUrl: "https://a.example.test/v1", apiKey: "sk-test-token", source }, - b: { type: "openai", baseUrl: "https://b.example.test/v1", apiKey: "sk-test-token", source }, - }, - models: { - "a/m1": { provider: "a", model: "m1", maxContextSize: 100, capabilities: ["tool_use"] }, - "b/m1": { provider: "b", model: "m1", maxContextSize: 100, capabilities: ["tool_use"] }, - }, - defaultModel: "b/m1", - thinking: { enabled: true }, + defaultModel: 'acme/current', + thinking: { enabled: true, effort: 'low' }, })), }); const driver = makeDriver(harness, makeStartupInput()); - vi.stubGlobal( - "fetch", - vi.fn(async () => - new Response( - JSON.stringify({ - a: { - id: "a", - name: "Provider A", - api: "https://a.example.test/v1", - type: "openai", - models: { m1: { id: "m1" } }, - }, - }), - { status: 200, headers: { "Content-Type": "application/json" } }, - ), - ), - ); - try { - const result = await (driver as any).authFlow.refreshProviderModels(); + await driver.setSession(session); + installMigrationModels(driver); + driver.state.appState.thinkingEffort = liveEffort; - expect(result.failed).toEqual([]); - expect(result.changed).toContainEqual({ providerId: "b", providerName: "b", added: 0, removed: 1 }); - expect(removeProvider).not.toHaveBeenCalled(); - expect(setConfig).not.toHaveBeenCalled(); - expect(replaceConfigSections).toHaveBeenCalledTimes(1); - const sections = replaceConfigSections.mock.calls[0]?.[0] as Record; - expect(Object.keys(sections["providers"] as object)).toEqual(["a"]); - expect(sections["models"]).not.toHaveProperty("b/m1"); - expect(sections["defaultModel"]).toBeUndefined(); - expect(sections["thinking"]).toBeUndefined(); - } finally { - vi.unstubAllGlobals(); + const prompt = maybeShowModelMigrationPrompt(driver as any, {}); + const picker = driver.state.editorContainer.children[0] as { + handleInput(data: string): void; + render(width: number): string[]; + }; + expect(picker.render(100).join('\n')).toContain('Use current to next'); + picker.handleInput('\r'); + await prompt; + + expect(session.setModel).toHaveBeenCalledWith('acme/next'); + if (liveEffort === 'high') { + expect(session.setThinking).not.toHaveBeenCalled(); + } else { + expect(session.setThinking).toHaveBeenCalledWith('high'); } + expect(setConfig).toHaveBeenCalledWith({ + defaultModel: 'acme/next', + thinking: { enabled: true, effort: 'high' }, + }); + expect(modelMigrationState.acknowledged).toEqual({ 'acme/current': 'next' }); }); - it("keeps the two-phase removeProvider/setConfig host on harnesses without atomic replace", async () => { - const registryUrl = "https://registry.example.test/v1/models/api.json"; - const source = { kind: "apiJson", url: registryUrl, apiKey: "sk-test-token" }; - const replaceConfigSections = vi.fn(async () => {}); - const removeProvider = vi.fn(async () => ({})); - const setConfig = vi.fn(async (patch: Record) => patch); - const harness = makeHarness(makeSession(), { - replaceConfigSections, - removeProvider, - setConfig, - getConfig: vi.fn(async () => ({ - providers: { - a: { type: "openai", baseUrl: "https://a.example.test/v1", apiKey: "sk-test-token", source }, - b: { type: "openai", baseUrl: "https://b.example.test/v1", apiKey: "sk-test-token", source }, - }, - models: { - "a/m1": { provider: "a", model: "m1", maxContextSize: 100, capabilities: ["tool_use"] }, - "b/m1": { provider: "b", model: "m1", maxContextSize: 100, capabilities: ["tool_use"] }, - }, - defaultModel: "b/m1", + it.each([ + ['low', ['low', 'high'], 'low'], + ['off', ['low', 'high'], 'off'], + ['max', ['max'], 'high'], + ] as const)('resolves a live %s effort on a thinking source to the migration effort', async (liveEffort, sourceEfforts, expected) => { + const session = makeSession({ + getStatus: vi.fn(async () => ({ + model: 'acme/next', + thinkingEffort: expected, + permission: 'manual', + planMode: false, + contextTokens: 10, + maxContextTokens: 100, + contextUsage: 0.1, })), }); + const setConfig = vi.fn(async () => ({})); + const harness = makeHarness(session, { + setConfig, + getConfig: vi.fn(async () => ({ defaultModel: 'acme/current', thinking: { enabled: true } })), + }); const driver = makeDriver(harness, makeStartupInput()); - vi.stubGlobal( - "fetch", - vi.fn(async () => - new Response( - JSON.stringify({ - a: { - id: "a", - name: "Provider A", - api: "https://a.example.test/v1", - type: "openai", - models: { m1: { id: "m1" } }, - }, - }), - { status: 200, headers: { "Content-Type": "application/json" } }, - ), - ), - ); - try { - const result = await (driver as any).authFlow.refreshProviderModels(); + await driver.setSession(session); + installMigrationModels(driver); + Object.assign(driver.state.appState.availableModels['acme/current']!, { + capabilities: ['tool_use', 'thinking'], + supportEfforts: [...sourceEfforts], + }); + driver.state.appState.thinkingEffort = liveEffort; - expect(result.failed).toEqual([]); - expect(removeProvider).toHaveBeenCalledWith("b"); - expect(setConfig).toHaveBeenCalledTimes(1); - expect(replaceConfigSections).not.toHaveBeenCalled(); - } finally { - vi.unstubAllGlobals(); + const prompt = maybeShowModelMigrationPrompt(driver as any, {}); + const picker = driver.state.editorContainer.children[0] as ChoicePickerComponent; + expect(picker.render(100).join('\n')).toContain(`thinking ${expected}`); + picker.handleInput('\r'); + await prompt; + + expect(session.setModel).toHaveBeenCalledWith('acme/next'); + if (expected === liveEffort) { + expect(session.setThinking).not.toHaveBeenCalled(); + } else { + expect(session.setThinking).toHaveBeenCalledWith(expected); } + expect(setConfig).toHaveBeenCalledWith({ + defaultModel: 'acme/next', + thinking: expected === 'off' ? { enabled: false } : { enabled: true, effort: expected }, + }); + }); + + it.each(['draft', 'streaming', 'dialog', 'compaction', 'replay', 'external-editor', 'shutdown'])('defers the startup migration during %s', async (blockedBy) => { + const session = makeSession(); + const setConfig = vi.fn(); + const driver = makeDriver(makeHarness(session, { setConfig }), makeStartupInput()); + installMigrationModels(driver); + const startup = driver as unknown as { + backgroundRefreshPromise: Promise; + finishStartup(replay: boolean): Promise; + setAppState(patch: Record): void; + restoreEditor(): void; + setExternalEditorRunning(running: boolean): void; + aborted: boolean; + }; + let completeRefresh!: () => void; + startup.backgroundRefreshPromise = new Promise((resolve) => { completeRefresh = resolve; }); + await startup.finishStartup(false); + if (blockedBy === 'draft') driver.state.editor.setText('Please help'); + if (blockedBy === 'streaming') startup.setAppState({ streamingPhase: 'waiting' }); + if (blockedBy === 'dialog') driver.state.editorReplacementMounted = true; + if (blockedBy === 'compaction') startup.setAppState({ isCompacting: true }); + if (blockedBy === 'replay') startup.setAppState({ isReplaying: true }); + if (blockedBy === 'external-editor') startup.setExternalEditorRunning(true); + if (blockedBy === 'shutdown') startup.aborted = true; + + completeRefresh(); + await flushMigrationCheck(); + expect(driver.state.editorContainer.children[0]).not.toBeInstanceOf(ChoicePickerComponent); + if (blockedBy === 'draft') { + driver.state.editor.handleInput(' '); + expect(driver.state.editor.getText()).toBe('Please help '); + driver.state.editor.setText(''); + } + if (blockedBy === 'streaming') startup.setAppState({ streamingPhase: 'idle' }); + if (blockedBy === 'dialog') startup.restoreEditor(); + if (blockedBy === 'compaction') startup.setAppState({ isCompacting: false }); + if (blockedBy === 'replay') startup.setAppState({ isReplaying: false }); + if (blockedBy === 'external-editor') startup.setExternalEditorRunning(false); + await flushMigrationCheck(); + expect(session.setModel).not.toHaveBeenCalled(); + expect(setConfig).not.toHaveBeenCalled(); + if (blockedBy === 'shutdown') { + expect(driver.state.editorReplacementMounted).toBe(false); + return; + } + const picker = driver.state.editorContainer.children[0] as ChoicePickerComponent; + expect(picker).toBeInstanceOf(ChoicePickerComponent); + picker.handleInput(' '); + expect(driver.state.editorReplacementMounted).toBe(true); + expect(modelMigrationState.acknowledged).toEqual({}); + picker.handleInput('\u001B'); + await flushMigrationCheck(); + expect(driver.state.editorReplacementMounted).toBe(false); + }); + + it('does not mount a migration while a submitted draft is creating its first session', async () => { + const prompt = vi.fn(async () => {}); + const session = makeSession({ + prompt, + getStatus: vi.fn(async () => ({ + model: 'acme/current', thinkingEffort: 'off', permission: 'manual', planMode: false, + contextTokens: 10, maxContextTokens: 100, contextUsage: 0.1, + })), + }); + let completeCreation!: () => void; + const harness = makeHarness(session, { + createSession: vi.fn(async () => { + await new Promise((resolve) => { completeCreation = resolve; }); + return session; + }), + }); + const driver = makeDriver(harness, makeStartupInput()); + installMigrationModels(driver); + const startup = driver as unknown as { + backgroundRefreshPromise: Promise; + finishStartup(replay: boolean): Promise; + persistInputHistory(text: string): Promise; + setAppState(patch: Record): void; + }; + vi.spyOn(startup, 'persistInputHistory').mockResolvedValue(undefined); + driver.state.editor.setText('First prompt'); + startup.backgroundRefreshPromise = Promise.resolve(); + await startup.finishStartup(false); + await flushMigrationCheck(); + + driver.state.editor.handleInput('\r'); + await flushMigrationCheck(); + expect(harness.createSession).toHaveBeenCalledTimes(1); + expect(driver.state.editorReplacementMounted).toBe(false); + expect(prompt).not.toHaveBeenCalled(); + completeCreation(); + await flushMigrationCheck(); + expect(prompt).toHaveBeenCalled(); + expect(driver.state.appState.streamingPhase).toBe('waiting'); + expect(driver.state.editorReplacementMounted).toBe(false); + + startup.setAppState({ streamingPhase: 'idle' }); + await flushMigrationCheck(); + const picker = driver.state.editorContainer.children[0] as ChoicePickerComponent; + expect(picker).toBeInstanceOf(ChoicePickerComponent); + picker.handleInput('\u001B'); + }); + + it('does not mount a migration while /new is replacing the session', async () => { + const getStatus = vi.fn(async () => ({ + model: 'acme/current', thinkingEffort: 'off', permission: 'manual', planMode: false, + contextTokens: 10, maxContextTokens: 100, contextUsage: 0.1, + })); + const oldSession = makeSession({ getStatus }); + const newSession = makeSession({ id: 'ses-2', getStatus }); + let completeCreation!: () => void; + const harness = makeHarness(newSession, { + createSession: vi.fn(async () => { + await new Promise((resolve) => { completeCreation = resolve; }); + return newSession; + }), + }); + const driver = makeDriver(harness, makeStartupInput()); + installMigrationModels(driver); + await driver.setSession(oldSession); + const startup = driver as unknown as { + modelMigration: { request(): void }; + createNewSession(): Promise; + }; + + startup.modelMigration.request(); + const replacing = startup.createNewSession(); + await flushMigrationCheck(); + expect(harness.createSession).toHaveBeenCalledTimes(1); + expect(driver.state.editorReplacementMounted).toBe(false); + expect(newSession.setModel).not.toHaveBeenCalled(); + + completeCreation(); + await replacing; + await flushMigrationCheck(); + const picker = driver.state.editorContainer.children[0] as ChoicePickerComponent; + expect(picker).toBeInstanceOf(ChoicePickerComponent); + expect(picker.render(100).join('\n')).toContain('Model migration available'); + picker.handleInput('\u001B'); + }); + + it.each([true, false])('checks migrations after the startup session picker (refresh first: %s)', async (refreshFirst) => { + const session = makeSession({ getStatus: vi.fn(async () => ({ + model: 'acme/current', thinkingEffort: 'off', permission: 'manual', planMode: false, + contextTokens: 10, maxContextTokens: 100, contextUsage: 0.1, + })) }); + const harness = makeHarness(session, { + listSessions: vi.fn(async () => [{ + id: session.id, title: 'Picked', workDir: '/tmp/proj-a', updatedAt: Date.now(), + }]), + }); + const driver = makeDriver(harness, makeStartupInput({ session: '' })); + installMigrationModels(driver); + harness.getConfig.mockResolvedValue({ models: driver.state.appState.availableModels } as never); + const startup = driver as unknown as { + authFlow: { refreshProviderModels(): Promise }; + sessionReplay: { hydrateFromReplay(session: unknown): Promise }; + initMainTui(): Promise; + finishStartup(replay: boolean): Promise; + }; + let completeRefresh!: () => void; + vi.spyOn(startup.authFlow, 'refreshProviderModels').mockImplementation(async () => { + await new Promise((resolve) => { completeRefresh = resolve; }); + return { changed: [], unchanged: [], failed: [] }; + }); + vi.spyOn(startup.sessionReplay, 'hydrateFromReplay').mockResolvedValue(undefined); + await startup.initMainTui(); + await startup.finishStartup(false); + await flushMigrationCheck(); + expect(driver.state.activeDialog).toBe('session-picker'); + if (refreshFirst) { + completeRefresh(); + await flushMigrationCheck(); + expect(driver.state.activeDialog).toBe('session-picker'); + } + const sessionPicker = driver.state.editorContainer.children[0] as { handleInput(data: string): void }; + sessionPicker.handleInput('\r'); + await flushMigrationCheck(); + expect(harness.resumeSession).toHaveBeenCalled(); + if (!refreshFirst) { + expect(driver.state.editorReplacementMounted).toBe(false); + completeRefresh(); + await flushMigrationCheck(); + } + const migrationPicker = driver.state.editorContainer.children[0] as ChoicePickerComponent; + expect(migrationPicker).toBeInstanceOf(ChoicePickerComponent); + expect(migrationPicker.render(100).join('\n')).toContain('Model migration available'); + migrationPicker.handleInput('\u001B'); + }); + + it('keeps the current model and acknowledges the migration', async () => { + const session = makeSession(); + const driver = makeDriver(makeHarness(session), makeStartupInput()); + await driver.setSession(session); + installMigrationModels(driver); + + const prompt = maybeShowModelMigrationPrompt(driver as any, {}); + const picker = driver.state.editorContainer.children[0] as { handleInput(data: string): void }; + picker.handleInput('\u001B[B'); + picker.handleInput('\r'); + await prompt; + + expect(session.setModel).not.toHaveBeenCalled(); + expect(session.setThinking).not.toHaveBeenCalled(); + expect(driver.state.appState.model).toBe('acme/current'); + expect(modelMigrationState.acknowledged).toEqual({ 'acme/current': 'next' }); + }); + + it('renders provider migration Markdown', async () => { + const driver = makeDriver(makeHarness(), makeStartupInput()); + installMigrationModels(driver); + driver.state.appState.availableModels['acme/current']!.upgrade!.migrationMarkdown = + '### Upgrade\n\nSwitch **current** to **next**.\n\n- Faster replies'; + + const prompt = maybeShowModelMigrationPrompt(driver as any, {}); + const picker = driver.state.editorContainer.children[0] as ChoicePickerComponent; + const output = picker.render(100).join('\n'); + expect(output).not.toContain('###'); + expect(output).not.toContain('**'); + expect(output).toContain('current'); + expect(output).toContain('next'); + picker.handleInput('\u001B'); + await prompt; + }); + + it('strips terminal control sequences from registry-provided migration text', async () => { + const driver = makeDriver(makeHarness(), makeStartupInput()); + installMigrationModels(driver); + driver.state.appState.availableModels['acme/current']!.upgrade!.migrationMarkdown = + 'Move to next\u001B]0;pwned\u0007 soon\u001B[2J'; + driver.state.appState.availableModels['acme/next']!.displayName = + 'Next\u001B]8;;https://example.test\u0007'; + + const prompt = maybeShowModelMigrationPrompt(driver as any, {}); + const picker = driver.state.editorContainer.children[0] as ChoicePickerComponent; + const output = picker.render(100).join('\n'); + expect(output).toContain('Move to next soon'); + expect(output).toContain('Switch to Next'); + expect(output).not.toContain('pwned'); + expect(output).not.toContain('\u001B[2J'); + expect(output).not.toContain('example.test'); + picker.handleInput('\u001B'); + await prompt; + }); + + it.each([true, false])('warns about losing the prompt cache only when the conversation has history: %s', async (withHistory) => { + const driver = makeDriver(makeHarness(), makeStartupInput()); + installMigrationModels(driver); + if (withHistory) { + driver.state.transcriptEntries.push({ id: 'u1', kind: 'user', renderMode: 'plain', content: 'hello' }); + } + + const prompt = maybeShowModelMigrationPrompt(driver as any, {}); + const picker = driver.state.editorContainer.children[0] as ChoicePickerComponent; + const output = picker.render(200).join('\n'); + if (withHistory) { + expect(output).toContain('Switching models invalidates the existing prompt cache'); + } else { + expect(output).not.toContain('prompt cache'); + } + picker.handleInput('\u001B'); + await prompt; + }); + + it.each(['replace', 'restore'])('settles a displaced migration on editor %s without saving', async (action) => { + const setConfig = vi.fn(); + const driver = makeDriver(makeHarness(makeSession(), { setConfig }), makeStartupInput()); + installMigrationModels(driver); + const host = driver as unknown as KimiTUI; + const onDisplaced = vi.fn(); + const settled = vi.fn(); + const prompt = maybeShowModelMigrationPrompt(host, {}, onDisplaced).then(settled); + const oldPicker = driver.state.editorContainer.children[0] as ChoicePickerComponent; + const replacement = new ChoicePickerComponent({ + title: 'Another dialog', options: [], onSelect: vi.fn(), onCancel: vi.fn(), + }); + + if (action === 'replace') host.mountEditorReplacement(replacement); + else host.restoreEditor(); + await flushMigrationCheck(); + expect(settled).toHaveBeenCalledOnce(); + await prompt; + expect(onDisplaced).toHaveBeenCalledOnce(); + oldPicker.handleInput('\r'); + oldPicker.handleInput('\u001B'); + expect(driver.state.editorContainer.children[0]).toBe(action === 'replace' ? replacement : driver.state.editor); + expect(setConfig).not.toHaveBeenCalled(); + expect(modelMigrationState.acknowledged).toEqual({}); + host.restoreEditor(); + expect(onDisplaced).toHaveBeenCalledOnce(); + }); + + it.each(['approval', 'question'])('requeues a migration displaced by a background %s', async (modal) => { + const session = makeSession(); + const setConfig = vi.fn(); + const driver = makeDriver(makeHarness(session, { setConfig }), makeStartupInput({}, { + notifications: { enabled: false, condition: 'unfocused' }, + })); + installMigrationModels(driver); + const host = driver as unknown as { + modelMigration: { request(): void }; + showApprovalPanel(data: ApprovalPanelData): void; + hideApprovalPanel(): void; + showQuestionDialog(data: QuestionPanelData): void; + hideQuestionDialog(): void; + setAppState(patch: Record): void; + restoreEditor(): void; + }; + host.modelMigration.request(); + await flushMigrationCheck(); + const oldPicker = driver.state.editorContainer.children[0] as ChoicePickerComponent; + expect(oldPicker).toBeInstanceOf(ChoicePickerComponent); + + if (modal === 'approval') { + host.showApprovalPanel({ + id: 'approval-1', tool_call_id: 'tool-1', tool_name: 'WriteFile', + action: 'Write file', description: '', display: [], + choices: [{ label: 'Approve once', response: 'approved' }], + }); + } else { + host.showQuestionDialog({ + id: 'question-1', tool_call_id: 'tool-1', + questions: [{ question: 'Choose a path', multi_select: false, options: [{ label: 'A' }] }], + }); + } + const panel = driver.state.editorContainer.children[0] as Component & Focusable; + await flushMigrationCheck(); + expect(panel).not.toBe(oldPicker); + expect(panel.focused).toBe(true); + oldPicker.handleInput('\r'); + oldPicker.handleInput('\u001B'); + expect(driver.state.editorContainer.children[0]).toBe(panel); + expect(panel.focused).toBe(true); + expect(session.setModel).not.toHaveBeenCalled(); + expect(setConfig).not.toHaveBeenCalled(); + expect(modelMigrationState.acknowledged).toEqual({}); + + host.setAppState({ streamingPhase: 'waiting' }); + if (modal === 'approval') host.hideApprovalPanel(); + else host.hideQuestionDialog(); + await flushMigrationCheck(); + expect(driver.state.editorReplacementMounted).toBe(false); + host.setAppState({ streamingPhase: 'idle' }); + await flushMigrationCheck(); + const retried = driver.state.editorContainer.children[0] as ChoicePickerComponent; + expect(retried).toBeInstanceOf(ChoicePickerComponent); + expect(retried).not.toBe(oldPicker); + retried.handleInput('\u001B'); + host.restoreEditor(); + await flushMigrationCheck(); + expect(driver.state.editorReplacementMounted).toBe(false); + expect(modelMigrationState.acknowledged).toEqual({}); + }); + + it('cancels a model migration without acknowledging it', async () => { + const session = makeSession(); + const driver = makeDriver(makeHarness(session), makeStartupInput()); + await driver.setSession(session); + installMigrationModels(driver); + + const prompt = maybeShowModelMigrationPrompt(driver as any, {}); + const picker = driver.state.editorContainer.children[0] as { handleInput(data: string): void }; + picker.handleInput('\u001B'); + await prompt; + + expect(session.setModel).not.toHaveBeenCalled(); + expect(driver.state.editorReplacementMounted).toBe(false); + expect(modelMigrationState.acknowledged).toEqual({}); + }); + + it('skips acknowledged migrations and targets outside the current provider', async () => { + const driver = makeDriver(makeHarness(), makeStartupInput()); + installMigrationModels(driver); + + await maybeShowModelMigrationPrompt(driver as any, { 'acme/current': 'next' }); + expect(driver.state.editorReplacementMounted).toBe(false); + + driver.state.appState.availableModels = { + 'acme/current': driver.state.appState.availableModels['acme/current']!, + 'other/next': { + provider: 'other', + model: 'next', + maxContextSize: 100, + }, + }; + await maybeShowModelMigrationPrompt(driver as any, {}); + expect(driver.state.editorReplacementMounted).toBe(false); + }); + + it('skips a startup migration acknowledged in the state file', async () => { + const driver = makeDriver(makeHarness(), makeStartupInput()); + installMigrationModels(driver); + modelMigrationState.acknowledged = { 'acme/current': 'next' }; + const startup = driver as unknown as { + backgroundRefreshPromise: Promise; + finishStartup(replay: boolean): Promise; + }; + startup.backgroundRefreshPromise = Promise.resolve(); + + await startup.finishStartup(false); + await flushMigrationCheck(); + + expect(driver.state.editorReplacementMounted).toBe(false); + }); + + describe('when a refresh finds the default model dropped by its registry', () => { + const retiredDefault = { from: 'acme/current', to: 'acme/next', from_display_name: 'Current' }; + + async function refreshDroppingDefault(options: { + readonly withSession: boolean; + readonly model: string; + readonly lazySessionThinking?: 'high'; + }) { + const session = makeSession(); + const setConfig = vi.fn(async () => ({})); + const harness = makeHarness(session, { + setConfig, + getConfig: vi.fn(async () => ({ + providers: { acme: { type: 'openai' } }, + models: { 'acme/next': { provider: 'acme', model: 'next', maxContextSize: 200 } }, + defaultModel: 'acme/next', + thinking: { enabled: true, effort: 'medium' }, + })), + }); + const driver = makeDriver(harness, makeStartupInput()); + if (options.withSession) await driver.setSession(session); + installMigrationModels(driver); + const remaining = { ...driver.state.appState.availableModels }; + delete remaining['acme/current']; + driver.state.appState.model = options.model; + driver.state.appState.thinkingEffort = options.lazySessionThinking ?? 'low'; + driver.state.appState.lazySessionThinking = options.lazySessionThinking; + const showStatus = vi.spyOn(driver as any, 'showStatus'); + const startup = driver as unknown as { + authFlow: { refreshProviderModels(): Promise }; + refreshProviderModelsInBackground(): Promise; + modelMigration: { retry(): void }; + }; + vi.spyOn(startup.authFlow, 'refreshProviderModels').mockImplementation(async () => { + driver.state.appState.availableModels = remaining; + return { changed: [], unchanged: [], failed: [], retired_default: retiredDefault }; + }); + driver.state.activeDialog = 'session-picker'; + driver.state.editor.setText('draft'); + + await startup.refreshProviderModelsInBackground(); + await flushMigrationCheck(); + expect(showStatus).not.toHaveBeenCalled(); + driver.state.activeDialog = null; + startup.modelMigration.retry(); + await flushMigrationCheck(); + + expect(showStatus).toHaveBeenCalledWith( + 'Current is no longer offered by its provider; the default model is now next.', + 'warning', + ); + return { driver, session, setConfig }; + } + + it('warns once the session picker closes and leaves the live session to the engine', async () => { + const { session, setConfig } = await refreshDroppingDefault({ + withSession: true, + model: 'acme/current', + }); + + expect(session.setModel).not.toHaveBeenCalled(); + expect(session.setThinking).not.toHaveBeenCalled(); + expect(setConfig).not.toHaveBeenCalled(); + }); + + it('moves a session-less selection onto the new default with the configured thinking', async () => { + const { driver, setConfig } = await refreshDroppingDefault({ + withSession: false, + model: 'acme/current', + }); + + expect(driver.state.appState).toMatchObject({ + model: 'acme/next', + maxContextTokens: 200, + thinkingEffort: 'medium', + lazySessionThinking: undefined, + }); + expect(setConfig).not.toHaveBeenCalled(); + }); + + it('keeps a session-only effort picked before the first prompt', async () => { + const { driver } = await refreshDroppingDefault({ + withSession: false, + model: 'acme/current', + lazySessionThinking: 'high', + }); + + expect(driver.state.appState).toMatchObject({ + model: 'acme/next', + thinkingEffort: 'high', + lazySessionThinking: 'high', + }); + }); + + it('leaves a session-less selection on another model alone', async () => { + const { driver } = await refreshDroppingDefault({ withSession: false, model: 'acme/next' }); + + expect(driver.state.appState).toMatchObject({ + model: 'acme/next', + thinkingEffort: 'low', + lazySessionThinking: undefined, + }); + }); }); it('preserves fresh startup yolo and plan intent after OAuth login', async () => { @@ -2428,7 +3079,9 @@ describe('KimiTUI startup', () => { const getWorkspaceTrustInfo = vi.fn(async () => ({ trusted: true, gatedMcpServers: [], - })); + gatedAdditionalDirs: [], additionalDirSources: [], warnings: [], + instructionSources: { agentsMdPaths: [], skills: [], agentProfiles: [], paths: [] }, + })); const harness = makeHarness(makeSession(), { getWorkspaceTrustInfo }); const driver = makeDriver(harness, { ...makeStartupInput(), @@ -2457,7 +3110,9 @@ describe('KimiTUI startup', () => { const getWorkspaceTrustInfo = vi.fn(async () => ({ trusted: false, gatedMcpServers: [], - })); + gatedAdditionalDirs: [], additionalDirSources: [], warnings: [], + instructionSources: { agentsMdPaths: [], skills: [], agentProfiles: [], paths: [] }, + })); const trustWorkspace = vi.fn(async () => {}); const harness = makeHarness(makeSession(), { getWorkspaceTrustInfo, trustWorkspace }); const driver = makeDriver(harness, { @@ -2492,6 +3147,80 @@ describe('KimiTUI startup', () => { expect(onExit).toHaveBeenCalledWith(0); }); + it('prompts for workspace trust when trust info cannot be read', async () => { + const getWorkspaceTrustInfo = vi.fn(async () => { + throw new Error('unavailable'); + }); + const trustWorkspace = vi.fn(async () => {}); + const harness = makeHarness(makeSession(), { getWorkspaceTrustInfo, trustWorkspace }); + const driver = makeDriver(harness, { + ...makeStartupInput(), + migrationPlan: MIGRATION_PLAN, + migrateOnly: true, + }) as unknown as MigrateExitDriver & { + mountEditorReplacement(panel: { handleInput(data: string): void }): void; + }; + vi.spyOn(driver.state.ui, 'start').mockImplementation(() => {}); + vi.spyOn(driver.state.ui, 'stop').mockImplementation(() => {}); + vi.spyOn(driver.state.terminal, 'write').mockImplementation(() => {}); + vi.spyOn(driver, 'runMigrationScreen').mockResolvedValue({ decision: 'later' }); + const mountSpy = vi.spyOn(driver, 'mountEditorReplacement'); + const onExit = vi.fn(async () => {}); + driver.onExit = onExit; + + const startPromise = driver.start(); + await vi.waitFor(() => { + expect(mountSpy).toHaveBeenCalled(); + }); + mountSpy.mock.calls[0]![0].handleInput('\u001B[A'); + mountSpy.mock.calls[0]![0].handleInput('\r'); + await startPromise; + + expect(trustWorkspace).toHaveBeenCalledWith('/tmp/proj-a'); + expect(onExit).toHaveBeenCalledWith(0); + }); + + it('continues startup when persisting trust fails', async () => { + const getWorkspaceTrustInfo = vi.fn(async () => ({ + trusted: false, + gatedMcpServers: [], + gatedAdditionalDirs: [], additionalDirSources: [], warnings: [], + instructionSources: { agentsMdPaths: [], skills: [], agentProfiles: [], paths: [] }, + })); + const trustWorkspace = vi.fn(async (): Promise => { + throw new Error('disk full'); + }); + const harness = makeHarness(makeSession(), { getWorkspaceTrustInfo, trustWorkspace }); + const driver = makeDriver(harness, { + ...makeStartupInput(), + migrationPlan: MIGRATION_PLAN, + migrateOnly: true, + }) as unknown as MigrateExitDriver & { + mountEditorReplacement(panel: { handleInput(data: string): void }): void; + }; + vi.spyOn(driver.state.ui, 'start').mockImplementation(() => {}); + vi.spyOn(driver.state.ui, 'stop').mockImplementation(() => {}); + vi.spyOn(driver.state.terminal, 'write').mockImplementation(() => {}); + const migrationSpy = vi + .spyOn(driver, 'runMigrationScreen') + .mockResolvedValue({ decision: 'later' }); + const mountSpy = vi.spyOn(driver, 'mountEditorReplacement'); + const onExit = vi.fn(async () => {}); + driver.onExit = onExit; + + const startPromise = driver.start(); + await vi.waitFor(() => { + expect(mountSpy).toHaveBeenCalled(); + }); + mountSpy.mock.calls[0]![0].handleInput('\u001B[A'); + mountSpy.mock.calls[0]![0].handleInput('\r'); + await startPromise; + + expect(trustWorkspace).toHaveBeenCalledWith('/tmp/proj-a'); + expect(migrationSpy).toHaveBeenCalled(); + expect(onExit).toHaveBeenCalledWith(0); + }); + it('does not mount the footer when resuming a missing session fails', async () => { const harness = makeHarness(makeSession(), { listSessions: vi.fn(async () => []), @@ -2657,6 +3386,43 @@ describe('KimiTUI startup', () => { } }); + it('still loads the banner when the access-token lookup fails', async () => { + const banner = { + key: 'new-banner', + tag: null, + mainText: 'Banner main', + subText: null, + display: 'always' as const, + }; + let capturedAudience: unknown; + const loadSpy = vi.spyOn(BannerProvider.prototype, 'load').mockImplementation(async (options) => { + capturedAudience = await options?.audience; + return banner; + }); + const session = makeSession({ id: 'ses-target' }); + const harness = makeHarness(session, { + listSessions: vi.fn(async () => [{ id: 'ses-target', workDir: '/tmp/proj-a' }]), + }); + harness.auth.getCachedAccessToken = vi.fn(async () => { + throw new Error('credential storage broken'); + }); + const driver = makeDriver( + harness, + makeStartupInput({ session: 'ses-target' }), + ) as unknown as MigrateExitDriver; + + await driver.initMainTui(); + + await vi.waitFor(() => { + expect( + driver.state.transcriptContainer.children.some((child) => child instanceof BannerComponent), + ).toBe(true); + }); + expect(capturedAudience).toEqual({ login: 'unknown' }); + + loadSpy.mockRestore(); + }); + it('resumes a startup session when Windows workdir uses backslashes', async () => { const session = makeSession({ id: 'ses-target' }); const harness = makeHarness(session, { diff --git a/apps/kimi-code/test/tui/message-replay.test.ts b/apps/kimi-code/test/tui/message-replay.test.ts index 77fdeb6fe..c934e5c75 100644 --- a/apps/kimi-code/test/tui/message-replay.test.ts +++ b/apps/kimi-code/test/tui/message-replay.test.ts @@ -4,6 +4,7 @@ import type { AgentReplayRecord, BackgroundTaskInfo, ContentPart, + Event, GoalSnapshot, PromptOrigin, ResumedAgentState, @@ -200,6 +201,7 @@ function makeSession( getGoal: vi.fn(async () => ({ goal: null })), setApprovalHandler: vi.fn(), setQuestionHandler: vi.fn(), + setStaleReloadHandler: vi.fn(), setModel: vi.fn(async () => {}), setThinking: vi.fn(async () => {}), setPermission: vi.fn(async () => {}), @@ -224,6 +226,7 @@ function makeHarness(initialSession: Session) { }, })), setConfig: vi.fn(async () => ({ providers: {} })), + onConfigSectionChanged: vi.fn(() => vi.fn()), createSession: vi.fn(async () => initialSession), resumeSession: vi.fn(async () => initialSession), forkSession: vi.fn(async () => initialSession), @@ -966,6 +969,9 @@ describe('KimiTUI resume message replay', () => { ).toBe(false); expect(driver.sessionEventHandler.backgroundTaskTranscriptedTerminal.has('task-bg-timeout')) .toBe(true); + // An agent-kind task termination mounts no transcript card on its own — + // the subagent lifecycle path owns agent terminal cards, and here it is + // suppressed because the task was already transcripted as timed out. expect( driver.state.transcriptEntries.some( (entry) => entry.backgroundAgentStatus?.phase === 'failed', @@ -1140,6 +1146,27 @@ describe('KimiTUI resume message replay', () => { expect(transcript).toContain('real answer'); }); + it('keeps the previous turn’s final answer visible when a task-notification turn follows in replay', async () => { + const driver = await replayIntoDriver([ + message('user', [{ type: 'text', text: 'real prompt' }]), + message('assistant', [{ type: 'text', text: 'real answer' }]), + message('user', [{ type: 'text', text: 'task finished' }], { + origin: { + kind: 'task', + taskId: 'task-1', + status: 'completed', + notificationId: 'ntf-1', + }, + }), + message('assistant', [{ type: 'text', text: 'task report part one' }]), + message('assistant', [{ type: 'text', text: 'task report final' }]), + ]); + + const transcript = stripAnsi(driver.state.transcriptContainer.render(120).join('\n')); + expect(transcript).toContain('task report final'); + expect(transcript).toContain('real answer'); + }); + it('renders cron_missed origin records during replay without exposing raw XML', async () => { const cronMissed = '\n3 one-shot tasks missed while offline\n'; @@ -1167,6 +1194,146 @@ describe('KimiTUI resume message replay', () => { ).toEqual(['3 one-shot tasks missed while offline']); }); + it('renders a bundled skill prompt as one user entry without skill cards', async () => { + const driver = await replayIntoDriver([ + message( + 'user', + [ + { + type: 'text', + text: 'expanded review instructions', + meta: { source: 'skill activation', activationId: 'act-1' }, + } as ContentPart, + { + type: 'text', + text: 'expanded security instructions', + meta: { source: 'skill activation', activationId: 'act-2' }, + } as ContentPart, + { type: 'text', text: 'please /skill:review and /skill:security' }, + ], + { + origin: { + kind: 'user', + skillActivations: [ + { activationId: 'act-1', skillName: 'review' }, + { activationId: 'act-2', skillName: 'security' }, + ], + } as PromptOrigin, + }, + ), + ]); + + const entries = driver.state.transcriptEntries; + expect(entries.map((entry) => entry.kind)).toEqual(['user']); + expect(entries[0]!.content).toBe('please /skill:review and /skill:security'); + expect(entries[0]!.skillNames).toEqual(['review', 'security']); + expect(driver.sessionEventHandler.seenSkillActivationIds.has('act-1')).toBe(true); + expect(driver.sessionEventHandler.seenSkillActivationIds.has('act-2')).toBe(true); + const transcript = stripAnsi(driver.state.transcriptContainer.render(120).join('\n')); + expect(transcript).toContain('please /skill:review and /skill:security'); + expect(transcript).not.toContain('expanded review instructions'); + expect(transcript).not.toContain('Activated skill'); + }); + + it('strips unmarked leading skill parts of legacy bundled prompts', async () => { + const driver = await replayIntoDriver([ + message( + 'user', + [ + { type: 'text', text: 'expanded legacy instructions' }, + { type: 'text', text: 'please /commit' }, + ], + { + origin: { + kind: 'user', + skillActivations: [{ activationId: 'act-3', skillName: 'commit' }], + } as PromptOrigin, + }, + ), + ]); + + const entries = driver.state.transcriptEntries; + expect(entries.map((entry) => entry.kind)).toEqual(['user']); + expect(entries[0]!.content).toBe('please /commit'); + expect(entries[0]!.skillNames).toEqual(['commit']); + const transcript = stripAnsi(driver.state.transcriptContainer.render(120).join('\n')); + expect(transcript).not.toContain('expanded legacy instructions'); + }); + + it('replays a steered bundled prompt using the existing turn rule', async () => { + const driver = await replayIntoDriver([ + message('user', [{ type: 'text', text: 'first prompt' }], { origin: { kind: 'user' } }), + message('assistant', [{ type: 'text', text: 'first answer' }]), + message( + 'user', + [ + { + type: 'text', + text: 'expanded review instructions', + meta: { source: 'skill activation', activationId: 'act-steer' }, + } as ContentPart, + { type: 'text', text: 'steered /skill:review note' }, + ], + { + origin: { + kind: 'user', + inTurn: true, + skillActivations: [{ activationId: 'act-steer', skillName: 'review' }], + } as PromptOrigin, + }, + ), + ]); + + const users = driver.state.transcriptEntries.filter((entry) => entry.kind === 'user'); + expect(users.map((entry) => entry.content)).toEqual([ + 'first prompt', + 'steered /skill:review note', + ]); + expect(users[1]!.turnId).not.toBe(users[0]!.turnId); + expect(users[1]!.skillNames).toEqual(['review']); + }); + + it('records live user-slash skill activations without rendering a card', async () => { + const driver = await makeDriver(makeSession([])); + + driver.sessionEventHandler.handleEvent( + { + type: 'skill.activated', + sessionId: 'ses-replay', + agentId: 'main', + activationId: 'act-live-user', + skillName: 'review', + skillArgs: 'src/app.ts', + trigger: 'user-slash', + } as Event, + () => {}, + ); + + expect(driver.state.transcriptEntries).toEqual([]); + expect(driver.sessionEventHandler.seenSkillActivationIds.has('act-live-user')).toBe(true); + }); + + it('keeps rendering live model-tool skill activation cards', async () => { + const driver = await makeDriver(makeSession([])); + + driver.sessionEventHandler.handleEvent( + { + type: 'skill.activated', + sessionId: 'ses-replay', + agentId: 'main', + activationId: 'act-live-model', + skillName: 'review', + trigger: 'model-tool', + } as Event, + () => {}, + ); + + expect(driver.state.transcriptEntries.map((entry) => entry.kind)).toEqual([ + 'skill_activation', + ]); + expect(driver.sessionEventHandler.seenSkillActivationIds.has('act-live-model')).toBe(true); + }); + it('renders user-slash skill activation once without exposing injected prompt text', async () => { const activation = message( 'user', @@ -1183,12 +1350,172 @@ describe('KimiTUI resume message replay', () => { ); const driver = await replayIntoDriver([activation, activation]); - const transcript = driver.state.transcriptContainer.render(120).join('\n'); + const transcript = stripAnsi(driver.state.transcriptContainer.render(120).join('\n')); - expect(transcript).toContain('review'); - expect(transcript).toContain('src/app.ts'); + const entries = driver.state.transcriptEntries; + expect(entries.map((entry) => entry.kind)).toEqual(['user']); + expect(entries[0]!.content).toBe('/skill:review src/app.ts'); + expect(entries[0]!.skillNames).toEqual(['review']); + expect(entries[0]!.skillActivationId).toBe('act-review'); + expect(entries[0]!.skillName).toBe('review'); + expect(entries[0]!.skillArgs).toBe('src/app.ts'); + expect(entries[0]!.skillTrigger).toBe('user-slash'); + expect(transcript).toContain('/skill:review src/app.ts'); expect(transcript).not.toContain('Review the requested file'); - expect(driver.sessionEventHandler.renderedSkillActivationIds.has('act-review')).toBe(true); + expect(transcript).not.toContain('Activated skill'); + expect(driver.sessionEventHandler.seenSkillActivationIds.has('act-review')).toBe(true); + }); + + it('keeps full saved args when reconstructing the canonical skill command', async () => { + const longArgs = 'check ' + 'src/very/long/path/file.ts '.repeat(30).trim(); + const driver = await replayIntoDriver([ + message('user', [{ type: 'text', text: 'expanded skill body' }], { + origin: { + kind: 'skill_activation', + activationId: 'act-long', + skillName: 'review', + skillArgs: longArgs, + trigger: 'user-slash', + }, + }), + ]); + + const entries = driver.state.transcriptEntries; + expect(entries.map((entry) => entry.kind)).toEqual(['user']); + expect(entries[0]!.content).toBe(`/skill:review ${longArgs}`); + expect(entries[0]!.content).not.toContain('…'); + }); + + it('reconstructs a bare canonical command when no args were saved', async () => { + const driver = await replayIntoDriver([ + message('user', [{ type: 'text', text: 'expanded skill body' }], { + origin: { + kind: 'skill_activation', + activationId: 'act-bare', + skillName: 'commit', + trigger: 'user-slash', + }, + }), + ]); + + const entries = driver.state.transcriptEntries; + expect(entries.map((entry) => entry.kind)).toEqual(['user']); + expect(entries[0]!.content).toBe('/skill:commit'); + expect(entries[0]!.skillNames).toEqual(['commit']); + }); + + it.each([ + { skillArgs: undefined, expected: '/example' }, + { skillArgs: 'inspect project', expected: '/example inspect project' }, + ])('preserves recorded builtin command syntax in replay ($expected)', async ({ skillArgs, expected }) => { + const driver = await replayIntoDriver([ + message('user', [{ type: 'text', text: 'expanded builtin skill body' }], { + origin: { + kind: 'skill_activation', activationId: 'act-builtin', skillName: 'example', + skillSource: 'builtin', skillArgs, trigger: 'user-slash', + }, + }), + ]); + expect(driver.state.transcriptEntries.filter((entry) => entry.kind === 'user')).toEqual([ + expect.objectContaining({ content: expected, skillNames: ['example'] }), + ]); + }); + + it('prefers explicitly saved caller text over the canonical reconstruction', async () => { + const driver = await replayIntoDriver([ + message( + 'user', + [ + { type: 'text', text: 'expanded skill body' }, + { type: 'text', text: '/review please check this carefully' }, + ], + { + origin: { + kind: 'skill_activation', + activationId: 'act-caller', + skillName: 'review', + skillArgs: 'please check this carefully', + trigger: 'user-slash', + }, + }, + ), + ]); + + const entries = driver.state.transcriptEntries; + expect(entries.map((entry) => entry.kind)).toEqual(['user']); + expect(entries[0]!.content).toBe('/review please check this carefully'); + expect(entries[0]!.skillNames).toEqual(['review']); + }); + + it('keeps the skill command when an external activation carried attachments', async () => { + const driver = await replayIntoDriver([ + message( + 'user', + [ + { type: 'text', text: 'expanded skill body' }, + { type: 'text', text: 'Captured page evidence' }, + { type: 'image_url', imageUrl: { url: 'kimi-file://file-evidence' } }, + ] as ContentPart[], + { + origin: { + kind: 'skill_activation', + activationId: 'act-attachments', + skillName: 'review', + skillArgs: 'src/app.ts', + trigger: 'user-slash', + }, + }, + ), + ]); + + const entries = driver.state.transcriptEntries; + expect(entries.map((entry) => entry.kind)).toEqual(['user']); + expect(entries[0]!.content).toBe('/skill:review src/app.ts Captured page evidence[image]'); + expect(entries[0]!.skillNames).toEqual(['review']); + }); + + it('prepends the skill command when an external activation carried only text attachments', async () => { + const driver = await replayIntoDriver([ + message( + 'user', + [ + { type: 'text', text: 'expanded skill body' }, + { type: 'text', text: 'Captured page evidence' }, + ], + { + origin: { + kind: 'skill_activation', + activationId: 'act-text-attachments', + skillName: 'review', + skillArgs: 'src/app.ts', + trigger: 'user-slash', + }, + }, + ), + ]); + + const entries = driver.state.transcriptEntries; + expect(entries.map((entry) => entry.kind)).toEqual(['user']); + expect(entries[0]!.content).toBe('/skill:review src/app.ts Captured page evidence'); + expect(entries[0]!.skillNames).toEqual(['review']); + }); + + it('keeps rendering replayed model-tool skill activation cards', async () => { + const driver = await replayIntoDriver([ + message('user', [{ type: 'text', text: 'expanded skill body' }], { + origin: { + kind: 'skill_activation', + activationId: 'act-model', + skillName: 'review', + trigger: 'model-tool', + }, + }), + ]); + + const entries = driver.state.transcriptEntries; + expect(entries.map((entry) => entry.kind)).toEqual(['skill_activation']); + expect(entries[0]!.skillName).toBe('review'); + expect(driver.sessionEventHandler.seenSkillActivationIds.has('act-model')).toBe(true); }); it('renders replayed hook results as assistant transcript entries', async () => { @@ -1200,6 +1527,34 @@ describe('KimiTUI resume message replay', () => { message('user', [{ type: 'text', text: hookResult }], { origin: { kind: 'hook_result', event: 'UserPromptSubmit' }, }), + message('user', [ + { + type: 'text', + text: '\nmerged hook note\n', + meta: { contentType: 'text/xml', source: 'user prompt submit hook' }, + } as ContentPart, + { type: 'text', text: 'merged prompt' }, + ]), + message( + 'user', + [ + { + type: 'text', + text: '\nskill hook note\n', + meta: { contentType: 'text/xml', source: 'user prompt submit hook' }, + } as ContentPart, + { type: 'text', text: 'Review the requested file.' }, + ], + { + origin: { + kind: 'skill_activation', + activationId: 'act-review', + skillName: 'review', + skillArgs: 'src/app.ts', + trigger: 'user-slash', + }, + }, + ), ]); const transcript = driver.state.transcriptContainer.render(120).join('\n'); @@ -1207,6 +1562,13 @@ describe('KimiTUI resume message replay', () => { expect(transcript).toContain('UserPromptSubmit hook'); expect(transcript).toContain('hook response 1'); expect(transcript).toContain('hook response 2'); + expect(transcript).toContain('merged hook note'); + expect(transcript).toContain('skill hook note'); + expect( + driver.state.transcriptEntries + .filter((entry) => entry.kind === 'user') + .map((entry) => entry.content), + ).toEqual(['prompt', 'merged prompt', '/skill:review src/app.ts']); }); it('renders replayed compaction records as completed compaction blocks', async () => { diff --git a/apps/kimi-code/test/tui/reverse-rpc/approval-adapter.test.ts b/apps/kimi-code/test/tui/reverse-rpc/approval-adapter.test.ts index ad29fb1c0..df4203a47 100644 --- a/apps/kimi-code/test/tui/reverse-rpc/approval-adapter.test.ts +++ b/apps/kimi-code/test/tui/reverse-rpc/approval-adapter.test.ts @@ -240,14 +240,14 @@ describe('approval adapter', () => { response: 'approved', selected_label: 'auto', description: - 'Best if you want Kimi Code to keep working while you are away. Tools are approved automatically, and questions are skipped.', + 'Best if you want Kimi Code to keep working while you are away. Tools are approved automatically and questions are skipped; only plans in Plan mode wait for your review.', }, { label: 'Switch to Ask When Needed and start', response: 'approved', selected_label: 'yolo', description: - 'Tools and plan changes are approved automatically. Kimi Code may still ask you questions.', + 'Tools are approved automatically. Kimi Code may still ask you questions.', }, { label: 'Start in Always Ask', @@ -284,14 +284,14 @@ describe('approval adapter', () => { response: 'approved', selected_label: 'auto', description: - 'Best if you want Kimi Code to keep working while you are away. Tools are approved automatically, and questions are skipped.', + 'Best if you want Kimi Code to keep working while you are away. Tools are approved automatically and questions are skipped; only plans in Plan mode wait for your review.', }, { label: 'Keep Ask When Needed and start', response: 'approved', selected_label: 'yolo', description: - 'Tools and plan changes stay approved automatically. Kimi Code may still ask you questions.', + 'Tools stay approved automatically. Kimi Code may still ask you questions.', }, { label: 'Do not start', diff --git a/apps/kimi-code/test/tui/signal-handlers.test.ts b/apps/kimi-code/test/tui/signal-handlers.test.ts index 0cf9c76c8..1e2d45541 100644 --- a/apps/kimi-code/test/tui/signal-handlers.test.ts +++ b/apps/kimi-code/test/tui/signal-handlers.test.ts @@ -41,12 +41,19 @@ function makeStartupInput(): KimiTUIStartupInput { function makeHarness() { return { getConfig: vi.fn(async () => ({})), + onConfigSectionChanged: vi.fn(() => vi.fn()), createSession: vi.fn(), resumeSession: vi.fn(), listSessions: vi.fn(async () => []), close: vi.fn(async () => {}), track: vi.fn(), setTelemetryContext: vi.fn(), + getWorkspaceTrustInfo: vi.fn(async () => ({ + trusted: true, + gatedMcpServers: [], + gatedAdditionalDirs: [], additionalDirSources: [], warnings: [], + instructionSources: { agentsMdPaths: [], skills: [], agentProfiles: [], paths: [] }, + })), auth: { status: vi.fn(async () => ({ providers: [] })), login: vi.fn(), diff --git a/apps/kimi-code/test/tui/utils/sticky-user-message.test.ts b/apps/kimi-code/test/tui/utils/sticky-user-message.test.ts new file mode 100644 index 000000000..4c4ea2b33 --- /dev/null +++ b/apps/kimi-code/test/tui/utils/sticky-user-message.test.ts @@ -0,0 +1,190 @@ +import { afterEach, describe, expect, it, vi } from 'vitest'; + +import type { GutterLayout } from '#/tui/components/chrome/gutter-container'; +import * as userMessages from '#/tui/components/messages/user-message'; +import { StickyUserMessageIndex } from '#/tui/utils/sticky-user-message'; +import { markTranscriptComponent } from '#/tui/utils/transcript-component-metadata'; + +function user( + content: string, + height = 2, + bullet?: string, + turnId?: string, +): GutterLayout['children'][number] { + const component = { render: vi.fn(() => []), invalidate() {} }; + markTranscriptComponent(component, { + id: 'user', + kind: 'user', + content, + renderMode: 'plain', + bullet, + turnId, + }); + return { component, height }; +} + +function other(height: number): GutterLayout['children'][number] { + return { component: { render: vi.fn(() => []), invalidate() {} }, height }; +} + +function layout(children: GutterLayout['children'], contentWidth = 80): GutterLayout { + return { children, contentWidth }; +} + +afterEach(() => vi.restoreAllMocks()); + +describe('StickyUserMessageIndex', () => { + it('has no candidate for empty content or at the start of a transcript', () => { + const index = new StickyUserMessageIndex(); + expect(index.getJudgment(layout([]), 10, false)).toBeNull(); + expect(index.getJudgment(layout([user('hello'), other(20)]), 0, false)).toBeNull(); + }); + + it('pins only after the actual first line has passed the top row', () => { + const index = new StickyUserMessageIndex(); + const message = user('hello'); + const body = layout([message, other(20)]); + expect(index.getJudgment(body, 2, false)).toBeNull(); + expect(index.getJudgment(body, 3, false)).toEqual({ + component: message.component, + summary: 'hello', + targetY: 2, + }); + expect(index.getJudgment(body, 2, false)).toBeNull(); + }); + + it('merges logical lines hidden by scrolling or by the pill', () => { + const index = new StickyUserMessageIndex(); + const body = layout([user('one\ntwo\nthree', 4), other(20)]); + expect(index.getJudgment(body, 3, false)?.summary).toBe('one two'); + expect(index.getJudgment(body, 4, false)?.summary).toBe('one two three'); + expect(index.getJudgment(body, 50, false)?.summary).toBe('one two three'); + }); + + it.each([ + { name: 'missing turn IDs', turnIds: [undefined, undefined, undefined, undefined] }, + { name: 'live turn IDs', turnIds: [undefined, 'turn', 'turn', 'turn'] }, + { name: 'matching turn IDs', turnIds: ['turn', 'turn', 'turn', 'turn'] }, + { name: 'replay turn IDs', turnIds: ['replay:1', 'replay:2', 'replay:3', 'replay:4'] }, + ])('keeps adjacent messages separate with $name', ({ turnIds }) => { + const index = new StickyUserMessageIndex(); + const latest = user('4\n5\n6', 4, undefined, turnIds[3]); + const body = layout([ + user('1', 2, undefined, turnIds[0]), + user('2', 2, undefined, turnIds[1]), + user('3', 2, undefined, turnIds[2]), + latest, + other(20), + ]); + expect(index.getJudgment(body, 3, false)?.summary).toBe('1'); + expect(index.getJudgment(body, 5, false)?.summary).toBe('2'); + expect(index.getJudgment(body, 7, false)?.summary).toBe('3'); + expect(index.getJudgment(body, 7, true)).toBeNull(); + expect(index.getJudgment(body, 9, false)?.summary).toBe('4 5'); + expect(index.getJudgment(body, 10, true)).toEqual({ + component: latest.component, + summary: '4 5 6', + targetY: 8, + }); + for (const target of [2, 4, 6, 8]) { + expect(index.getJudgment(body, target, false)).toBeNull(); + } + }); + + it('refreshes the candidate after replacement, trimming, and appending', () => { + const index = new StickyUserMessageIndex(); + const first = user('first'); + const second = user('second'); + const third = user('third'); + expect(index.getJudgment(layout([first, second]), 20, false)?.summary).toBe('second'); + expect(index.getJudgment(layout([first, third]), 20, false)?.summary).toBe('third'); + expect(index.getJudgment(layout([first]), 20, false)).toEqual({ + component: first.component, + summary: 'first', + targetY: 2, + }); + expect(index.getJudgment(layout([first, third]), 20, false)).toEqual({ + component: third.component, + summary: 'third', + targetY: 4, + }); + }); + + it('counts wrapped visual rows at the actual content width', () => { + const index = new StickyUserMessageIndex(); + const body = layout([user('abcdefgh\nnext', 4), other(20)], 6); + expect(index.getJudgment(body, 3, false)?.summary).toBe('abcdefgh'); + expect(index.getJudgment(body, 4, false)?.summary).toBe('abcdefgh next'); + }); + + it('accounts for leading blank lines and lands clicks on the original text', () => { + const index = new StickyUserMessageIndex(); + const body = layout([other(4), user('\n\nfirst\nsecond', 5), other(20)]); + expect(index.getJudgment(body, 8, false)).toBeNull(); + const judgment = index.getJudgment(body, 10, false); + expect(judgment?.summary).toBe('first second'); + expect(judgment?.targetY).toBe(8); + expect(index.getJudgment(body, judgment!.targetY, false)).toBeNull(); + }); + + it('hides the previous pill when the next user first line is exactly at the top', () => { + const index = new StickyUserMessageIndex(); + const body = layout([user('first'), other(8), user('second'), other(20)]); + expect(index.getJudgment(body, 11, false)?.summary).toBe('first'); + expect(index.getJudgment(body, 12, false)).toBeNull(); + expect(index.getJudgment(body, 13, false)?.summary).toBe('second'); + expect(index.getJudgment(body, 12, false)).toBeNull(); + }); + + it('only pins the latest user message when following output', () => { + const index = new StickyUserMessageIndex(); + const body = layout([user('first'), other(8), user('second'), other(20)]); + expect(index.getJudgment(body, 10, true)).toBeNull(); + expect(index.getJudgment(body, 10, false)?.summary).toBe('first'); + expect(index.getJudgment(body, 13, true)?.summary).toBe('second'); + }); + + it('excludes suppressed bullets, empty text, and non-user entries', () => { + const index = new StickyUserMessageIndex(); + const body = layout([user('$ echo', 1, ''), user('', 4), user(' \n \n ', 4), other(20)]); + expect(index.getJudgment(body, 30, false)).toBeNull(); + }); + + it('cleans whitespace without retaining leading blank lines', () => { + const index = new StickyUserMessageIndex(); + const body = layout([user('\n first \t second\r\n third ', 4), other(20)]); + expect(index.getJudgment(body, 20, false)?.summary).toBe('first second third'); + }); + + it('retains positions across zero-height entries and clamps a truncated message offset', () => { + const index = new StickyUserMessageIndex(); + const body = layout([other(4), other(0), user('\n\nhello', 2), other(20)]); + expect(index.getJudgment(body, 20, false)?.targetY).toBe(7); + }); + + it('measures only the candidate and reuses it across scrolling and unrelated height changes', () => { + const measure = vi.spyOn(userMessages, 'userMessageLineHeights'); + const index = new StickyUserMessageIndex(); + const children = Array.from({ length: 500 }, (_, i) => + user('message ' + i + '\nmore', 3, undefined, String(i)), + ); + const body = layout(children); + const first = index.getJudgment(body, 2000, false); + expect(first?.summary).toBe('message 499 more'); + expect(measure).toHaveBeenCalledTimes(1); + for (const scrollTop of [2001, 2002, 2003]) index.getJudgment(body, scrollTop, false); + expect(measure).toHaveBeenCalledTimes(1); + expect( + children.every(({ component }) => vi.mocked(component.render).mock.calls.length === 0), + ).toBe(true); + + const resizedEntry = layout([{ ...children[0]!, height: 6 }, ...children.slice(1)]); + expect(index.getJudgment(resizedEntry, 2000, false)?.targetY).toBe(first!.targetY + 3); + expect(measure).toHaveBeenCalledTimes(1); + + index.getJudgment(layout(resizedEntry.children, 20), 2000, false); + expect(measure).toHaveBeenCalledTimes(2); + index.getJudgment(layout([...children.slice(0, -1), user('replacement')], 20), 2000, false); + expect(measure).toHaveBeenCalledTimes(3); + }); +}); diff --git a/apps/kimi-code/test/tui/utils/survey-policy.test.ts b/apps/kimi-code/test/tui/utils/survey-policy.test.ts index b86ef3f42..9954f9564 100644 --- a/apps/kimi-code/test/tui/utils/survey-policy.test.ts +++ b/apps/kimi-code/test/tui/utils/survey-policy.test.ts @@ -1,98 +1,26 @@ -import { describe, expect, it, vi } from 'vitest'; +import { describe, expect, it } from 'vitest'; -import { - DEFAULT_SURVEY_POPUP_CONFIG, - type SurveyPopupConfig, -} from '#/utils/survey-popup-config'; -import { - buildSurveyEventProperties, - evaluateLongContextArm, - evaluateSurveyGate, - SURVEY_EVENT_NAMES, - SURVEY_MACHINE_CLOSED, - surveyMachineReduce, - type LongContextArmGateInput, - type SessionArmGateInput, - type SurveyEventEnvironmentFields, - type SurveyGateInput, - type SurveyMachineState, -} from '#/tui/utils/survey-policy'; +import { surveyUiVeto, type SurveyUiVetoInput } from '#/tui/utils/survey-policy'; -const CONFIG = DEFAULT_SURVEY_POPUP_CONFIG; - -function passingSession(overrides: Partial = {}): SessionArmGateInput { +function passing(overrides: Partial = {}): SurveyUiVetoInput { return { - phase: 'closed', - turnInProgress: false, - idleForMs: 2000, - externalEditorActive: false, - terminalWidth: 120, - terminalHeight: 24, - promptActive: false, - editorBashActive: false, - editorAutocompleteActive: false, - feedbackSurveyDisabled: false, - telemetryDisabled: false, - currentModel: 'k2', lastUserMessageStartsOrderedList: false, - mountedForMs: 600_000, - userTurnsSinceMount: 5, - msSinceLastShown: undefined, - userTurnsSinceLastShown: undefined, - sample: 0, - msSinceGlobalLastShown: undefined, - ...overrides, - }; -} - -function passingLongContext( - overrides: Partial = {}, -): LongContextArmGateInput { - return { - phase: 'closed', - turnInProgress: false, - idleForMs: 2000, promptActive: false, editorBashActive: false, editorAutocompleteActive: false, externalEditorActive: false, terminalWidth: 120, terminalHeight: 24, - feedbackSurveyDisabled: false, - telemetryDisabled: false, - currentModel: 'k2', - lastUserMessageStartsOrderedList: false, - cumulativeTokens: 0, - virtualContextTokens: 0, - mountRollConsumed: false, - drawMountRoll: () => 0, ...overrides, }; } -function gate( - sessionOverrides: Partial = {}, - config: SurveyPopupConfig = CONFIG, - longContextOverrides: Partial = {}, -): SurveyGateInput { - return { - session: passingSession(sessionOverrides), - longContext: passingLongContext(longContextOverrides), - config, - }; -} - -describe('evaluateSurveyGate (session arm)', () => { - it('shows the session survey when every gate passes', () => { - expect(evaluateSurveyGate(gate())).toEqual({ show: true, survey: 'session' }); +describe('surveyUiVeto', () => { + it('lets the evaluation through when nothing on screen competes with the survey', () => { + expect(surveyUiVeto(passing())).toBeUndefined(); }); - it.each<[Partial, string]>([ - [{ phase: 'open' }, 'survey-active'], - [{ phase: 'pending' }, 'survey-active'], - [{ phase: 'thanks' }, 'survey-active'], - [{ turnInProgress: true }, 'turn-in-progress'], - [{ idleForMs: 1999 }, 'idle-too-short'], + it.each<[Partial, string]>([ [{ lastUserMessageStartsOrderedList: true }, 'ordered-list-ambiguity'], [{ promptActive: true }, 'prompt-active'], [{ editorBashActive: true }, 'editor-bash-active'], @@ -102,562 +30,13 @@ describe('evaluateSurveyGate (session arm)', () => { [{ terminalHeight: 7 }, 'terminal-too-short'], [{ terminalWidth: 12, terminalHeight: 14 }, 'terminal-too-short'], [{ terminalWidth: 16, terminalHeight: 13 }, 'terminal-too-short'], - [{ feedbackSurveyDisabled: true }, 'feature-disabled'], - [{ telemetryDisabled: true }, 'telemetry-disabled'], - [{ mountedForMs: 599_999 }, 'warmup'], - [{ userTurnsSinceMount: 4 }, 'warmup'], - [{ sample: 0.006 }, 'sampled-out'], - [{ msSinceGlobalLastShown: 99_999_999 }, 'global-cooldown'], - ])('skips with %j → %s', (overrides, reason) => { - expect(evaluateSurveyGate(gate(overrides))).toEqual({ show: false, reason }); + ])('vetoes with %j → %s', (overrides, reason) => { + expect(surveyUiVeto(passing(overrides))).toBe(reason); }); - it('applies the chain in order: an open survey reports survey-active, not later reasons', () => { + it('reports the first veto in check order', () => { expect( - evaluateSurveyGate(gate({ phase: 'open', turnInProgress: true, telemetryDisabled: true })), - ).toEqual({ show: false, reason: 'survey-active' }); - }); - - it('samples with a half-open test: sample below probability shows, at-or-above is out', () => { - expect(evaluateSurveyGate(gate({ sample: 0.004_999 }))).toEqual({ - show: true, - survey: 'session', - }); - expect(evaluateSurveyGate(gate({ sample: 0.005 }))).toEqual({ - show: false, - reason: 'sampled-out', - }); - expect(evaluateSurveyGate(gate({ sample: 0 }, { ...CONFIG, probability: 0 })).show).toBe( - false, - ); - }); - - describe('model gate', () => { - it('opens for every model with "*"', () => { - expect(evaluateSurveyGate(gate({ currentModel: 'anything' })).show).toBe(true); - }); - - it('closes both arms with an empty list', () => { - expect(evaluateSurveyGate(gate({}, { ...CONFIG, on_for_models: [] }))).toEqual({ - show: false, - reason: 'model-gated', - }); - }); - - it('requires an exact match otherwise', () => { - const config = { ...CONFIG, on_for_models: ['k3'] }; - expect(evaluateSurveyGate(gate({ currentModel: 'k3' }, config)).show).toBe(true); - expect(evaluateSurveyGate(gate({ currentModel: 'k2' }, config))).toEqual({ - show: false, - reason: 'model-gated', - }); - expect(evaluateSurveyGate(gate({ currentModel: 'k3-fictional' }, config))).toEqual({ - show: false, - reason: 'model-gated', - }); - }); - }); - - describe('in-session pacing', () => { - const shown = { - msSinceLastShown: 3_600_000, - userTurnsSinceLastShown: 10, - } as const; - - it('requires the gap and the new turns once shown before', () => { - expect(evaluateSurveyGate(gate(shown)).show).toBe(true); - }); - - it('skips inside the time gap', () => { - expect( - evaluateSurveyGate(gate({ ...shown, msSinceLastShown: 3_599_999 })), - ).toEqual({ show: false, reason: 'pacing' }); - }); - - it('skips without enough new turns', () => { - expect(evaluateSurveyGate(gate({ ...shown, userTurnsSinceLastShown: 9 }))).toEqual({ - show: false, - reason: 'pacing', - }); - }); - }); - - it('honours the global cooldown exactly at the boundary', () => { - expect(evaluateSurveyGate(gate({ msSinceGlobalLastShown: 100_000_000 })).show).toBe(true); - }); -}); - -describe('evaluateLongContextArm', () => { - const ELIGIBLE: Partial = { cumulativeTokens: 250_000 }; - - function arm( - overrides: Partial = {}, - config: SurveyPopupConfig = CONFIG, - ): ReturnType { - return evaluateLongContextArm(gate({}, config, { ...ELIGIBLE, ...overrides })); - } - - it('shows the long-context survey when the whole chain passes', () => { - expect(arm()).toEqual({ - show: true, - survey: 'long_context', - longContextRollConsumed: true, - }); - }); - - it.each<[Partial, string]>([ - [{ mountRollConsumed: true }, 'mount-roll-consumed'], - [{ phase: 'open' }, 'survey-active'], - [{ phase: 'pending' }, 'survey-active'], - [{ phase: 'thanks' }, 'survey-active'], - [{ turnInProgress: true }, 'turn-in-progress'], - [{ idleForMs: 1999 }, 'idle-too-short'], - [{ promptActive: true }, 'prompt-active'], - [{ editorBashActive: true }, 'editor-bash-active'], - [{ editorAutocompleteActive: true }, 'editor-autocomplete-active'], - [{ externalEditorActive: true }, 'external-editor-active'], - [{ terminalWidth: 10 }, 'terminal-too-narrow'], - [{ terminalHeight: 7 }, 'terminal-too-short'], - [{ terminalWidth: 12, terminalHeight: 14 }, 'terminal-too-short'], - [{ terminalWidth: 16, terminalHeight: 13 }, 'terminal-too-short'], - [{ feedbackSurveyDisabled: true }, 'feature-disabled'], - [{ telemetryDisabled: true }, 'telemetry-disabled'], - [{ lastUserMessageStartsOrderedList: true }, 'ordered-list-ambiguity'], - [{ cumulativeTokens: 199_999 }, 'below-threshold'], - ])('skips with %j → %s', (overrides, reason) => { - expect(arm(overrides)).toEqual({ show: false, reason }); - }); - - it('checks the mount latch first: a spent roll reports mount-roll-consumed, not later reasons', () => { - expect(arm({ mountRollConsumed: true, phase: 'open', telemetryDisabled: true })).toEqual({ - show: false, - reason: 'mount-roll-consumed', - }); - }); - - it('applies the chain in order: an open survey reports survey-active, not later reasons', () => { - expect(arm({ phase: 'open', telemetryDisabled: true })).toEqual({ - show: false, - reason: 'survey-active', - }); - }); - - it('applies the model gate before the threshold', () => { - expect(arm({}, { ...CONFIG, on_for_models: [], long_context_survey_threshold: 0 })).toEqual({ - show: false, - reason: 'model-gated', - }); - expect(arm({}, { ...CONFIG, on_for_models: ['k3'] })).toEqual({ - show: false, - reason: 'model-gated', - }); - }); - - it('shows at the counter boundary (counter == threshold)', () => { - expect(arm({ cumulativeTokens: 200_000 })).toEqual({ - show: true, - survey: 'long_context', - longContextRollConsumed: true, - }); - }); - - it('samples with a half-open test: roll below long_context_probability shows, at-or-above is out', () => { - expect(arm({ drawMountRoll: () => 0.199_999 })).toEqual({ - show: true, - survey: 'long_context', - longContextRollConsumed: true, - }); - expect(arm({ drawMountRoll: () => 0.2 })).toEqual({ - show: false, - reason: 'sampled-out', - longContextRollConsumed: true, - }); - }); - - describe('mount one-shot', () => { - it('does not draw the dice below the threshold, so the roll stays unspent', () => { - const drawMountRoll = vi.fn(() => 0); - expect(arm({ cumulativeTokens: 199_999, drawMountRoll })).toEqual({ - show: false, - reason: 'below-threshold', - }); - expect(drawMountRoll).not.toHaveBeenCalled(); - }); - - it('does not draw the dice while transiently suppressed by an active prompt', () => { - const drawMountRoll = vi.fn(() => 0); - expect(arm({ promptActive: true, drawMountRoll })).toEqual({ - show: false, - reason: 'prompt-active', - }); - expect(drawMountRoll).not.toHaveBeenCalled(); - }); - - it('spends the roll on a miss: the arm stays silent for the rest of the mount', () => { - expect(arm({ drawMountRoll: () => 0.9 })).toEqual({ - show: false, - reason: 'sampled-out', - longContextRollConsumed: true, - }); - }); - - it('spends the roll on a hit and shows once', () => { - expect(arm({ drawMountRoll: () => 0.1 })).toEqual({ - show: true, - survey: 'long_context', - longContextRollConsumed: true, - }); - }); - - it('never draws again once the roll is spent', () => { - const drawMountRoll = vi.fn(() => 0); - expect(arm({ mountRollConsumed: true, drawMountRoll })).toEqual({ - show: false, - reason: 'mount-roll-consumed', - }); - expect(drawMountRoll).not.toHaveBeenCalled(); - }); - }); - - describe('threshold validity', () => { - it.each([0, -1, Number.NaN])('closes the arm on a non-positive threshold (%s)', (threshold) => { - expect(arm({}, { ...CONFIG, long_context_survey_threshold: threshold })).toEqual({ - show: false, - reason: 'threshold-invalid', - }); - }); - - it('runs on the built-in 200k default when the field never took a cloud value', () => { - expect(arm({ cumulativeTokens: 199_999 })).toEqual({ show: false, reason: 'below-threshold' }); - expect(arm({ cumulativeTokens: 200_000 })).toEqual({ - show: true, - survey: 'long_context', - longContextRollConsumed: true, - }); - }); - }); - - describe('counter mode', () => { - it('compares the cumulative counter by default and ignores the window occupancy', () => { - expect(arm({ cumulativeTokens: 199_999, virtualContextTokens: 500_000 })).toEqual({ - show: false, - reason: 'below-threshold', - }); - }); - - it('compares the window occupancy when the trigger mode is virtual_context', () => { - const config = { ...CONFIG, long_context_trigger_mode: 'virtual_context' as const }; - expect(arm({ cumulativeTokens: 0, virtualContextTokens: 250_000 }, config)).toEqual({ - show: true, - survey: 'long_context', - longContextRollConsumed: true, - }); - expect(arm({ cumulativeTokens: 500_000, virtualContextTokens: 100 }, config)).toEqual({ - show: false, - reason: 'below-threshold', - }); - }); - }); -}); - -describe('evaluateSurveyGate (arbitration)', () => { - const ELIGIBLE: Partial = { cumulativeTokens: 250_000 }; - - it('prefers the long-context survey when both arms pass', () => { - expect(evaluateSurveyGate(gate({}, CONFIG, ELIGIBLE))).toEqual({ - show: true, - survey: 'long_context', - longContextRollConsumed: true, - }); - }); - - it('falls back to the session arm when the long-context arm is below the threshold', () => { - expect(evaluateSurveyGate(gate())).toEqual({ show: true, survey: 'session' }); - }); - - it('falls back to the session arm when the long-context arm misses its roll, latching it spent', () => { - expect( - evaluateSurveyGate(gate({ sample: 0 }, CONFIG, { ...ELIGIBLE, drawMountRoll: () => 0.9 })), - ).toEqual({ - show: true, - survey: 'session', - longContextRollConsumed: true, - }); - }); - - it('falls back to the session arm when the threshold closes the long-context arm', () => { - expect( - evaluateSurveyGate(gate({}, { ...CONFIG, long_context_survey_threshold: 0 }, ELIGIBLE)), - ).toEqual({ show: true, survey: 'session' }); - }); - - it('shows the long-context survey even when the session arm is sampled out', () => { - expect(evaluateSurveyGate(gate({ sample: 0.9 }, CONFIG, ELIGIBLE))).toEqual({ - show: true, - survey: 'long_context', - longContextRollConsumed: true, - }); - }); - - it('shows the long-context survey inside the persisted cooldown that still gates the session arm', () => { - expect( - evaluateSurveyGate(gate({ msSinceGlobalLastShown: 1000 }, CONFIG, ELIGIBLE)), - ).toEqual({ - show: true, - survey: 'long_context', - longContextRollConsumed: true, - }); - }); - - it('shows nothing when the long-context arm is ineligible and the session arm is sampled out', () => { - expect(evaluateSurveyGate(gate({ sample: 0.9 }))).toEqual({ - show: false, - reason: 'sampled-out', - }); - }); - - it('reports the spent roll even when both arms lose', () => { - expect( - evaluateSurveyGate( - gate({ sample: 0.9 }, CONFIG, { ...ELIGIBLE, drawMountRoll: () => 0.9 }), - ), - ).toEqual({ - show: false, - reason: 'sampled-out', - longContextRollConsumed: true, - }); - }); -}); - -describe('surveyMachineReduce', () => { - const appearance = { survey: 'session' as const, appearanceId: 'a1', appearanceIndex: 1 }; - const openState: SurveyMachineState = { phase: 'open', appearance, response: undefined }; - - it('walks the happy path: closed → open → pending → thanks → closed', () => { - const opened = surveyMachineReduce(SURVEY_MACHINE_CLOSED, { type: 'open', appearance }); - expect(opened.state.phase).toBe('open'); - expect(opened.effects).toEqual([{ type: 'report', eventType: 'appeared' }]); - - const selected = surveyMachineReduce(opened.state, { type: 'select', response: 'bad' }); - expect(selected.state).toEqual({ phase: 'pending', appearance, response: 'bad' }); - expect(selected.effects).toEqual([{ type: 'schedule', timer: 'pending-settle' }]); - - const settled = surveyMachineReduce(selected.state, { type: 'settle' }); - expect(settled.state.phase).toBe('thanks'); - expect(settled.effects).toEqual([ - { type: 'report', eventType: 'responded', response: 'bad' }, - { type: 'schedule', timer: 'thanks-close' }, - ]); - - const closed = surveyMachineReduce(settled.state, { type: 'thanks-elapsed' }); - expect(closed.state).toEqual(SURVEY_MACHINE_CLOSED); - expect(closed.effects).toEqual([]); - }); - - it('undo returns pending to open without reporting, and settle after an undo reports only the final choice', () => { - const selected = surveyMachineReduce(openState, { type: 'select', response: 'fine' }); - const undone = surveyMachineReduce(selected.state, { type: 'undo' }); - expect(undone.state).toEqual(openState); - expect(undone.effects).toEqual([]); - - const reselected = surveyMachineReduce(undone.state, { type: 'select', response: 'good' }); - const settled = surveyMachineReduce(reselected.state, { type: 'settle' }); - expect(settled.effects).toEqual([ - { type: 'report', eventType: 'responded', response: 'good' }, - { type: 'schedule', timer: 'thanks-close' }, - ]); - }); - - it('dismiss reports responded dismissed and closes without thanks', () => { - const dismissed = surveyMachineReduce(openState, { type: 'dismiss' }); - expect(dismissed.state).toEqual(SURVEY_MACHINE_CLOSED); - expect(dismissed.effects).toEqual([ - { type: 'report', eventType: 'responded', response: 'dismissed' }, - ]); - }); - - it('abandon reports abandoned and closes', () => { - const abandoned = surveyMachineReduce(openState, { type: 'abandon' }); - expect(abandoned.state).toEqual(SURVEY_MACHINE_CLOSED); - expect(abandoned.effects).toEqual([{ type: 'report', eventType: 'abandoned' }]); - }); - - it.each(['open', 'thanks'] as const)('close-silently from %s reports nothing', (phase) => { - const state: SurveyMachineState = { phase, appearance, response: 'good' }; - const closed = surveyMachineReduce(state, { type: 'close-silently' }); - expect(closed.state).toEqual(SURVEY_MACHINE_CLOSED); - expect(closed.effects).toEqual([]); - }); - - it('close-silently from pending settles the un-undone choice before closing', () => { - const state: SurveyMachineState = { phase: 'pending', appearance, response: 'bad' }; - const closed = surveyMachineReduce(state, { type: 'close-silently' }); - expect(closed.state).toEqual(SURVEY_MACHINE_CLOSED); - expect(closed.effects).toEqual([ - { type: 'report', eventType: 'responded', response: 'bad' }, - ]); - }); - - it.each([ - [{ type: 'select', response: 'good' } as const], - [{ type: 'dismiss' } as const], - [{ type: 'abandon' } as const], - [{ type: 'undo' } as const], - [{ type: 'settle' } as const], - [{ type: 'thanks-elapsed' } as const], - ])('ignores %s while closed', (action) => { - const result = surveyMachineReduce(SURVEY_MACHINE_CLOSED, action); - expect(result.state).toEqual(SURVEY_MACHINE_CLOSED); - expect(result.effects).toEqual([]); - }); - - describe('takeover', () => { - const longContextAppearance = { - survey: 'long_context' as const, - appearanceId: 'a2', - appearanceIndex: 2, - }; - - it('a long-context survey takes over an open session survey silently', () => { - const result = surveyMachineReduce(openState, { - type: 'open', - appearance: longContextAppearance, - }); - expect(result.state).toEqual({ - phase: 'open', - appearance: longContextAppearance, - response: undefined, - }); - expect(result.effects).toEqual([{ type: 'report', eventType: 'appeared' }]); - }); - - it('a session survey never takes over an open long-context survey', () => { - const longOpen: SurveyMachineState = { - phase: 'open', - appearance: longContextAppearance, - response: undefined, - }; - const result = surveyMachineReduce(longOpen, { type: 'open', appearance }); - expect(result.state).toEqual(longOpen); - expect(result.effects).toEqual([]); - }); - - it('ignores a re-open of the same survey while open (no double appearance)', () => { - const other = { survey: 'session' as const, appearanceId: 'a9', appearanceIndex: 3 }; - const result = surveyMachineReduce(openState, { type: 'open', appearance: other }); - expect(result.state).toEqual(openState); - expect(result.effects).toEqual([]); - }); - - it.each(['pending', 'thanks'] as const)('ignores a takeover while %s', (phase) => { - const state: SurveyMachineState = { phase, appearance, response: 'good' }; - const result = surveyMachineReduce(state, { - type: 'open', - appearance: longContextAppearance, - }); - expect(result.state).toEqual(state); - expect(result.effects).toEqual([]); - }); - }); -}); - -describe('buildSurveyEventProperties', () => { - it('maps survey kinds to the wire event names', () => { - expect(SURVEY_EVENT_NAMES).toEqual({ - session: 'feedback_survey', - long_context: 'long_context_survey', - }); - }); - - const ENVIRONMENT: SurveyEventEnvironmentFields = { - current_model: 'k2', - user_turn_count: 9, - cumulative_tokens: 123, - virtual_context_tokens: 45, - tool_call_count: 6, - compaction_count: 2, - permission_mode: 'manual', - thinking_effort: 'high', - }; - - it('builds the core three-state fields', () => { - expect( - buildSurveyEventProperties( - { - event_type: 'responded', - appearance_id: 'a1', - appearance_index: 2, - response: 'fine', - }, - ENVIRONMENT, - CONFIG, - ), - ).toEqual({ - event_type: 'responded', - appearance_id: 'a1', - appearance_index: 2, - response: 'fine', - ...ENVIRONMENT, - config_probability: 0.005, - config_on_for_models: '*', - config_min_time_before_feedback_ms: 600_000, - config_min_user_turns_before_feedback: 5, - config_min_time_between_feedback_ms: 3_600_000, - config_min_user_turns_between_feedback: 10, - config_min_time_between_global_feedback_ms: 100_000_000, - config_long_context_survey_threshold: 200_000, - config_long_context_probability: 0.2, - config_long_context_trigger_mode: 'cumulative', - }); - }); - - it('leaves response undefined for appeared / abandoned', () => { - const properties = buildSurveyEventProperties( - { - event_type: 'appeared', - appearance_id: 'a1', - appearance_index: 1, - }, - ENVIRONMENT, - CONFIG, - ); - expect(properties['response']).toBeUndefined(); - }); - - it('flattens the effective config into primitive config_* properties', () => { - const properties = buildSurveyEventProperties( - { - event_type: 'appeared', - appearance_id: 'a1', - appearance_index: 1, - }, - ENVIRONMENT, - { ...CONFIG, probability: 0.5, on_for_models: ['k3', 'k2'] }, - ); - expect(properties['config_probability']).toBe(0.5); - expect(properties['config_on_for_models']).toBe('k3,k2'); - }); - - it('keeps every property a telemetry primitive so sanitize drops nothing', () => { - const properties = buildSurveyEventProperties( - { - event_type: 'responded', - appearance_id: 'a1', - appearance_index: 1, - response: 'bad', - }, - ENVIRONMENT, - { ...CONFIG, on_for_models: [] }, - ); - for (const [key, value] of Object.entries(properties)) { - const isPrimitive = - value === undefined || - value === null || - typeof value === 'boolean' || - typeof value === 'number' || - typeof value === 'string'; - expect(isPrimitive, `property ${key} is not a primitive`).toBe(true); - } - expect(properties['config_on_for_models']).toBe(''); + surveyUiVeto(passing({ promptActive: true, editorBashActive: true, terminalWidth: 10 })), + ).toBe('prompt-active'); }); }); diff --git a/apps/kimi-code/test/utils/git/git-status.test.ts b/apps/kimi-code/test/utils/git/git-status.test.ts index 962bd8aa1..38cdaa364 100644 --- a/apps/kimi-code/test/utils/git/git-status.test.ts +++ b/apps/kimi-code/test/utils/git/git-status.test.ts @@ -1,25 +1,59 @@ /* eslint-disable import/first -- vi.mock setup must run before the imports it stubs out. */ +import { join } from 'node:path'; + import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; const mocks = vi.hoisted(() => ({ - spawnSync: vi.fn(), execFile: vi.fn(), resolveCommandPath: vi.fn(), + watchers: [] as Array<{ + options: unknown; + add: ReturnType; + close: ReturnType; + emit: (event: string) => void; + }>, })); vi.mock('node:child_process', () => ({ execFile: mocks.execFile, - spawnSync: mocks.spawnSync, })); vi.mock('#/utils/process/resolve-command', () => ({ resolveCommandPath: mocks.resolveCommandPath, })); +vi.mock('chokidar', () => { + class FSWatcher { + options: unknown; + add = vi.fn(); + close = vi.fn(() => Promise.resolve()); + private listeners = new Map void>>(); + + constructor(options: unknown) { + this.options = options; + mocks.watchers.push(this); + } + + on(event: string, cb: () => void): this { + const list = this.listeners.get(event) ?? []; + list.push(cb); + this.listeners.set(event, list); + return this; + } + + emit(event: string): void { + for (const cb of this.listeners.get(event) ?? []) cb(); + } + } + + return { FSWatcher }; +}); + import { createGitStatusCache, formatGitBadge } from '#/utils/git/git-status'; beforeEach(() => { mocks.resolveCommandPath.mockImplementation((command: string) => `/usr/bin/${command}`); + mocks.watchers.length = 0; }); afterEach(() => { @@ -27,40 +61,93 @@ afterEach(() => { vi.clearAllMocks(); }); -describe('git status cache', () => { - it('caches branch and status reads until their TTL expires', async () => { - vi.useFakeTimers(); - vi.setSystemTime(new Date('2026-04-24T00:00:00Z')); - mocks.execFile.mockImplementation( - ( - _cmd: string, - _args: string[], - _options: unknown, - callback: (error: Error | null, stdout: string, stderr: string) => void, - ) => { - callback(new Error('no pull request'), '', ''); - }, - ); - mocks.spawnSync.mockImplementation((_cmd: string, args: string[]) => { - if (args.includes('rev-parse')) { - return { status: 0, stdout: 'true\n' }; +async function drain(): Promise { + for (let i = 0; i < 30; i++) await Promise.resolve(); +} + +function gitCalls(subcommand: string): unknown[][] { + return mocks.execFile.mock.calls.filter((call) => { + const args = call[1] as string[]; + return call[0] === '/usr/bin/git' && args.includes(subcommand); + }); +} + +function installGit(scripts: { + gitDir?: string | null; + status?: string | null; + diff?: string | null; + ghError?: Error | null; + ghStdout?: string; + holdStatus?: boolean; +}): { releaseStatus: (stdout: string | null) => void } { + let releaseStatus: (stdout: string | null) => void = () => {}; + mocks.execFile.mockImplementation( + ( + cmd: string, + args: string[], + _options: unknown, + callback: (error: Error | null, stdout: string, stderr: string) => void, + ) => { + if (cmd === '/usr/bin/gh') { + if (scripts.ghError !== undefined && scripts.ghError !== null) { + callback(scripts.ghError, '', ''); + return; + } + callback(null, scripts.ghStdout ?? '', ''); + return; } - if (args.includes('branch')) { - return { status: 0, stdout: 'main\n' }; + if (args.includes('rev-parse')) { + if (scripts.gitDir === null) { + callback(Object.assign(new Error('not a repo'), { code: 128 }), '', ''); + return; + } + callback(null, `${scripts.gitDir ?? 'C:/repo/.git'}\n`, ''); + return; } if (args.includes('status')) { - return { - status: 0, - stdout: '## main...origin/main [ahead 2, behind 1]\n M src/app.ts\n', - }; + if (scripts.holdStatus === true) { + releaseStatus = (stdout) => { + if (stdout === null) { + callback(Object.assign(new Error('status failed'), { code: 1 }), '', ''); + return; + } + callback(null, stdout, ''); + }; + return; + } + if (scripts.status === null) { + callback(Object.assign(new Error('status failed'), { code: 1 }), '', ''); + return; + } + callback(null, scripts.status ?? '## main\n', ''); + return; } if (args.includes('diff')) { - return { status: 0, stdout: '4\t1\tsrc/app.ts\n' }; + callback(null, scripts.diff ?? '', ''); + return; } - return { status: 1, stdout: '' }; + callback(new Error('unexpected git command'), '', ''); + }, + ); + return { releaseStatus: (stdout) => releaseStatus(stdout) }; +} + +describe('git status cache', () => { + it('reads the cache without blocking and refreshes status on a 30s TTL', async () => { + vi.useFakeTimers(); + vi.setSystemTime(new Date('2026-04-24T00:00:00Z')); + installGit({ + status: '## main...origin/main [ahead 2, behind 1]\n M src/app.ts\n', + diff: '4\t1\tsrc/app.ts\n', + ghError: new Error('no pull request'), }); const cache = createGitStatusCache('/tmp/repo'); + expect(mocks.execFile).not.toHaveBeenCalled(); + expect(cache.getStatus()).toBeNull(); + expect(mocks.execFile).not.toHaveBeenCalled(); + + await drain(); expect(cache.getStatus()).toEqual({ branch: 'main', @@ -71,79 +158,36 @@ describe('git status cache', () => { diffDeleted: 1, pullRequest: null, }); - expect(cache.getStatus()).toEqual({ - branch: 'main', - dirty: true, - ahead: 2, - behind: 1, - diffAdded: 4, - diffDeleted: 1, - pullRequest: null, - }); - expect(mocks.spawnSync).toHaveBeenCalledTimes(4); - expect(mocks.execFile).toHaveBeenCalledTimes(1); + expect(gitCalls('rev-parse')).toHaveLength(1); + expect(gitCalls('status')).toHaveLength(1); + expect(gitCalls('diff')).toHaveLength(1); + expect(gitCalls('branch')).toHaveLength(0); + expect(mocks.execFile).toHaveBeenCalledTimes(4); - await Promise.resolve(); - - vi.setSystemTime(new Date('2026-04-24T00:00:06Z')); cache.getStatus(); - expect(mocks.spawnSync).toHaveBeenCalledTimes(5); - expect(mocks.execFile).toHaveBeenCalledTimes(1); + await drain(); + expect(gitCalls('status')).toHaveLength(1); - vi.setSystemTime(new Date('2026-04-24T00:00:16Z')); + vi.setSystemTime(new Date('2026-04-24T00:00:30Z')); cache.getStatus(); - expect(mocks.spawnSync).toHaveBeenCalledTimes(8); - expect(mocks.execFile).toHaveBeenCalledTimes(1); + await drain(); + expect(gitCalls('status')).toHaveLength(2); + expect(gitCalls('rev-parse')).toHaveLength(1); + cache.dispose(); }); it('reads uncommitted diff line counts and current pull request metadata', async () => { const onChange = vi.fn(); - mocks.execFile.mockImplementation( - ( - _cmd: string, - _args: string[], - _options: unknown, - callback: (error: Error | null, stdout: string, stderr: string) => void, - ) => { - callback(null, '{"number":12,"url":"https://github.com/acme/repo/pull/12"}\n', ''); - }, - ); - mocks.spawnSync.mockImplementation((_cmd: string, args: string[]) => { - if (args.includes('rev-parse')) { - return { status: 0, stdout: 'true\n' }; - } - if (args.includes('branch')) { - return { status: 0, stdout: 'feature/footer\n' }; - } - if (args.includes('status')) { - return { - status: 0, - stdout: '## feature/footer...origin/feature/footer\n M src/app.ts\n', - }; - } - if (args.includes('diff')) { - return { - status: 0, - stdout: '10\t3\tsrc/app.ts\n-\t-\timage.png\n0\t5\tdeleted.ts\n', - }; - } - return { status: 1, stdout: '' }; + installGit({ + status: '## feature/footer...origin/feature/footer\n M src/app.ts\n', + diff: '10\t3\tsrc/app.ts\n-\t-\timage.png\n0\t5\tdeleted.ts\n', + ghStdout: '{"number":12,"url":"https://github.com/acme/repo/pull/12"}\n', }); const cache = createGitStatusCache('/tmp/repo', { onChange }); - expect(cache.getStatus()).toEqual({ - branch: 'feature/footer', - dirty: true, - ahead: 0, - behind: 0, - diffAdded: 10, - diffDeleted: 8, - pullRequest: null, - }); + cache.getStatus(); + await drain(); - await Promise.resolve(); - - expect(onChange).toHaveBeenCalledTimes(1); expect(cache.getStatus()).toEqual({ branch: 'feature/footer', dirty: true, @@ -156,34 +200,32 @@ describe('git status cache', () => { url: 'https://github.com/acme/repo/pull/12', }, }); + expect(onChange).toHaveBeenCalled(); + cache.dispose(); }); - it('keeps footer git status working when gh pull-request lookup throws synchronously', async () => { + it('keeps the last status when gh lookup throws synchronously', async () => { const onChange = vi.fn(); - mocks.execFile.mockImplementation(() => { - const error = Object.assign(new Error('spawn ENOTDIR'), { code: 'ENOTDIR' }); - throw error; - }); - mocks.spawnSync.mockImplementation((_cmd: string, args: string[]) => { - if (args.includes('rev-parse')) { - return { status: 0, stdout: 'true\n' }; + mocks.execFile.mockImplementation((cmd: string, args: string[], _options: unknown, callback: Function) => { + if (cmd === '/usr/bin/gh') { + throw Object.assign(new Error('spawn ENOTDIR'), { code: 'ENOTDIR' }); } - if (args.includes('branch')) { - return { status: 0, stdout: 'main\n' }; + if (args.includes('rev-parse')) { + callback(null, 'C:/repo/.git\n', ''); + return; } if (args.includes('status')) { - return { - status: 0, - stdout: '## main...origin/main\n M src/app.ts\n', - }; + callback(null, '## main...origin/main\n M src/app.ts\n', ''); + return; } if (args.includes('diff')) { - return { status: 0, stdout: '2\t1\tsrc/app.ts\n' }; + callback(null, '2\t1\tsrc/app.ts\n', ''); } - return { status: 1, stdout: '' }; }); const cache = createGitStatusCache('/tmp/repo', { onChange }); + cache.getStatus(); + await drain(); expect(cache.getStatus()).toEqual({ branch: 'main', @@ -194,65 +236,71 @@ describe('git status cache', () => { diffDeleted: 1, pullRequest: null, }); - - await Promise.resolve(); - - expect(onChange).not.toHaveBeenCalled(); - expect(cache.getStatus()).toEqual({ - branch: 'main', - dirty: true, - ahead: 0, - behind: 0, - diffAdded: 2, - diffDeleted: 1, - pullRequest: null, - }); + expect(onChange).toHaveBeenCalledTimes(1); + cache.dispose(); }); it('returns null without spawning when git cannot be resolved to a safe path', () => { mocks.resolveCommandPath.mockReturnValue(undefined); - expect(createGitStatusCache('/tmp/repo').getStatus()).toBeNull(); - expect(mocks.spawnSync).not.toHaveBeenCalled(); + const cache = createGitStatusCache('/tmp/repo'); + expect(cache.getStatus()).toBeNull(); expect(mocks.execFile).not.toHaveBeenCalled(); + expect(mocks.watchers).toHaveLength(0); + cache.dispose(); }); - it('spawns git and gh through their resolved absolute paths', async () => { - mocks.execFile.mockImplementation( - ( - _cmd: string, - _args: string[], - _options: unknown, - callback: (error: Error | null, stdout: string, stderr: string) => void, - ) => { - callback(new Error('no pull request'), '', ''); - }, - ); - mocks.spawnSync.mockImplementation((_cmd: string, args: string[]) => { - if (args.includes('rev-parse')) return { status: 0, stdout: 'true\n' }; - if (args.includes('branch')) return { status: 0, stdout: 'main\n' }; - if (args.includes('status')) return { status: 0, stdout: '## main...origin/main\n' }; - return { status: 1, stdout: '' }; + it('spawns git and gh through their resolved absolute paths and polls only HEAD', async () => { + installGit({ + gitDir: 'C:/repo/.git', + status: '## main...origin/main\n', + ghError: new Error('no pull request'), }); const cache = createGitStatusCache('/tmp/repo'); - expect(cache.getStatus()).not.toBeNull(); - await Promise.resolve(); + expect(mocks.execFile).not.toHaveBeenCalled(); + cache.getStatus(); + expect(mocks.execFile).not.toHaveBeenCalled(); + await drain(); expect(mocks.resolveCommandPath).toHaveBeenCalledWith('git', '/tmp/repo'); - for (const call of mocks.spawnSync.mock.calls) { - expect(call[0]).toBe('/usr/bin/git'); - } + expect(mocks.execFile).toHaveBeenCalledWith( + '/usr/bin/git', + ['-C', '/tmp/repo', 'rev-parse', '--absolute-git-dir'], + expect.anything(), + expect.any(Function), + ); expect(mocks.execFile).toHaveBeenCalledWith( '/usr/bin/gh', expect.any(Array), expect.anything(), expect.any(Function), ); + expect(mocks.watchers).toHaveLength(1); + expect(mocks.watchers[0]?.options).toEqual( + expect.objectContaining({ usePolling: true, interval: 2_000, ignoreInitial: true }), + ); + expect(mocks.watchers[0]?.add).toHaveBeenCalledWith(join('C:/repo/.git', 'HEAD')); + cache.dispose(); + expect(mocks.watchers[0]?.close).toHaveBeenCalledTimes(1); }); - it('returns null when the working directory is not a git repo and formats badges', () => { - mocks.spawnSync.mockReturnValue({ status: 1, stdout: '' }); - expect(createGitStatusCache('/tmp/not-a-repo').getStatus()).toBeNull(); + it('returns null when the working directory is not a git repo and does not probe again', async () => { + installGit({ gitDir: null }); + const cache = createGitStatusCache('/tmp/not-a-repo'); + expect(cache.getStatus()).toBeNull(); + await drain(); + + expect(cache.getStatus()).toBeNull(); + expect(gitCalls('rev-parse')).toHaveLength(1); + expect(mocks.watchers).toHaveLength(0); + cache.getStatus(); + cache.refresh(); + await drain(); + expect(gitCalls('rev-parse')).toHaveLength(1); + cache.dispose(); + }); + + it('formats badges', () => { expect( formatGitBadge({ branch: 'main', @@ -277,6 +325,90 @@ describe('git status cache', () => { ).toBe('main [±]'); }); + it('parses an unborn branch and hides detached HEAD', async () => { + installGit({ status: '## No commits yet on main\n' }); + const unborn = createGitStatusCache('/tmp/repo'); + unborn.getStatus(); + await drain(); + expect(unborn.getStatus()?.branch).toBe('main'); + unborn.dispose(); + + mocks.watchers.length = 0; + installGit({ status: '## HEAD (no branch)\n' }); + const detached = createGitStatusCache('/tmp/repo'); + detached.getStatus(); + await drain(); + expect(detached.getStatus()).toBeNull(); + expect(gitCalls('diff')).toHaveLength(0); + detached.dispose(); + }); + + it('refreshes when HEAD changes and when refresh() is called inside the TTL', async () => { + vi.useFakeTimers(); + vi.setSystemTime(new Date('2026-04-24T00:00:00Z')); + installGit({ status: '## main\n', ghError: new Error('no pull request') }); + const cache = createGitStatusCache('/tmp/repo'); + cache.getStatus(); + await drain(); + expect(gitCalls('status')).toHaveLength(1); + + mocks.watchers[0]?.emit('change'); + await drain(); + expect(gitCalls('status')).toHaveLength(2); + + cache.refresh(); + await drain(); + expect(gitCalls('status')).toHaveLength(3); + expect(gitCalls('rev-parse')).toHaveLength(1); + cache.dispose(); + }); + + it('keeps the last good status when a later status command fails', async () => { + installGit({ + status: '## main\n M src/app.ts\n', + diff: '2\t1\tsrc/app.ts\n', + ghError: new Error('no pull request'), + }); + const cache = createGitStatusCache('/tmp/repo'); + cache.getStatus(); + await drain(); + + installGit({ status: null, ghError: new Error('no pull request') }); + cache.refresh(); + await drain(); + + expect(cache.getStatus()).toEqual({ + branch: 'main', + dirty: true, + ahead: 0, + behind: 0, + diffAdded: 2, + diffDeleted: 1, + pullRequest: null, + }); + cache.dispose(); + }); + + it('coalesces a forced refresh that arrives while one is in flight', async () => { + const held = installGit({ holdStatus: true, ghError: new Error('no pull request') }); + const cache = createGitStatusCache('/tmp/repo'); + cache.getStatus(); + await drain(); + expect(gitCalls('status')).toHaveLength(1); + + cache.refresh(); + cache.refresh(); + held.releaseStatus('## main\n'); + await drain(); + expect(gitCalls('status')).toHaveLength(2); + + held.releaseStatus('## topic\n'); + await drain(); + expect(cache.getStatus()?.branch).toBe('topic'); + expect(gitCalls('status')).toHaveLength(2); + cache.dispose(); + }); + it('formats pull request badges as terminal hyperlinks when requested', () => { const linked = formatGitBadge( { diff --git a/apps/kimi-code/test/utils/model-migration-state.test.ts b/apps/kimi-code/test/utils/model-migration-state.test.ts new file mode 100644 index 000000000..257f9571d --- /dev/null +++ b/apps/kimi-code/test/utils/model-migration-state.test.ts @@ -0,0 +1,51 @@ +import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises'; +import { tmpdir } from 'node:os'; +import { join } from 'node:path'; + +import { afterEach, beforeEach, describe, expect, it } from 'vitest'; + +import { + acknowledgeModelMigration, + readModelMigrationAcknowledgements, +} from '#/utils/model-migration-state'; + +describe('model-migration-state', () => { + let dir: string; + let file: string; + + beforeEach(async () => { + dir = await mkdtemp(join(tmpdir(), 'kimi-model-migration-state-')); + file = join(dir, 'model-migrations.json'); + }); + + afterEach(async () => { + await rm(dir, { recursive: true, force: true }); + }); + + it('reads no acknowledgements when the file is missing', async () => { + await expect(readModelMigrationAcknowledgements(file)).resolves.toEqual({}); + }); + + it('merges acknowledgements into the stored record', async () => { + await acknowledgeModelMigration('acme/current', 'next', file); + await acknowledgeModelMigration('other/current', 'newer', file); + await acknowledgeModelMigration('acme/current', 'latest', file); + + await expect(readModelMigrationAcknowledgements(file)).resolves.toEqual({ + 'acme/current': 'latest', + 'other/current': 'newer', + }); + expect(JSON.parse(await readFile(file, 'utf-8'))).toEqual({ + version: 1, + acknowledged: { 'acme/current': 'latest', 'other/current': 'newer' }, + }); + }); + + it.each([ + ['corrupt', 'not json'], + ['mismatched', JSON.stringify({ version: 2, acknowledged: {} })], + ])('reads no acknowledgements from a %s file', async (_case, text) => { + await writeFile(file, text, 'utf-8'); + await expect(readModelMigrationAcknowledgements(file)).resolves.toEqual({}); + }); +}); diff --git a/apps/kimi-code/test/utils/model-switch-confirm-config.test.ts b/apps/kimi-code/test/utils/model-switch-confirm-config.test.ts new file mode 100644 index 000000000..74aa26e21 --- /dev/null +++ b/apps/kimi-code/test/utils/model-switch-confirm-config.test.ts @@ -0,0 +1,281 @@ +import { afterEach, describe, expect, it, vi } from 'vitest'; + +import { + matchModelSwitchRule, + peekModelSwitchConfirmConfig, + refreshModelSwitchConfirmConfig, + resetModelSwitchConfirmConfigCache, + resolveModelSwitchHint, + type ModelSwitchRule, +} from '#/utils/model-switch-confirm-config'; + +const CLOUD_CONFIG = { + enable: true, + rules: [ + { from: 'kimi-k2.5', to: 'kimi-k2-turbo-preview' }, + { from: 'kimi-k2-turbo-preview', to: 'kimi-k2.5' }, + ], +}; + +const ENVELOPE = { name: 'model_switch_confirm', config: CLOUD_CONFIG }; + +function jsonResponse(body: unknown, status = 200): Response { + return new Response(JSON.stringify(body), { + status, + headers: { 'Content-Type': 'application/json' }, + }); +} + +afterEach(() => { + resetModelSwitchConfirmConfigCache(); +}); + +describe('refreshModelSwitchConfirmConfig', () => { + it('POSTs the model_switch_confirm name, returns the parsed config, and warms peek', async () => { + const fetchImpl = vi.fn(async () => jsonResponse(ENVELOPE)); + + const result = await refreshModelSwitchConfirmConfig({ fetchImpl: fetchImpl as typeof fetch }); + + expect(result).toEqual(CLOUD_CONFIG); + expect(peekModelSwitchConfirmConfig()).toEqual(CLOUD_CONFIG); + expect(fetchImpl).toHaveBeenCalledWith( + expect.stringContaining('/client_configs'), + expect.objectContaining({ + method: 'POST', + body: JSON.stringify({ name: 'model_switch_confirm' }), + }), + ); + }); + + it('drops invalid rules and keeps the valid ones', async () => { + const fetchImpl = vi.fn(async () => + jsonResponse({ + name: 'model_switch_confirm', + config: { + enable: true, + rules: [ + { from: 'a', to: 'b' }, + { from: 'a' }, + { to: 'b' }, + { from: 1, to: 'b' }, + 'not-an-object', + { from: 'c', to: 'd', extra: 'ignored' }, + ], + }, + }), + ); + + const result = await refreshModelSwitchConfirmConfig({ fetchImpl: fetchImpl as typeof fetch }); + + expect(result).toEqual({ + enable: true, + rules: [ + { from: 'a', to: 'b' }, + { from: 'c', to: 'd' }, + ], + }); + }); + + it('keeps id lists and drops rules with empty or mixed lists', async () => { + const fetchImpl = vi.fn(async () => + jsonResponse({ + name: 'model_switch_confirm', + config: { + enable: true, + rules: [ + { from: ['a', 'b'], to: 'c' }, + { from: 'd', to: ['e', 'f'] }, + { from: [], to: 'g' }, + { from: ['a', 2], to: 'c' }, + { from: 'h', to: [1] }, + ], + }, + }), + ); + + const result = await refreshModelSwitchConfirmConfig({ fetchImpl: fetchImpl as typeof fetch }); + + expect(result).toEqual({ + enable: true, + rules: [ + { from: ['a', 'b'], to: 'c' }, + { from: 'd', to: ['e', 'f'] }, + ], + }); + }); + + it('falls back to the disabled default when enable is invalid or missing', async () => { + const fetchImpl = vi.fn(async () => + jsonResponse({ + name: 'model_switch_confirm', + config: { enable: 'yes', rules: [{ from: 'a', to: 'b' }] }, + }), + ); + + const result = await refreshModelSwitchConfirmConfig({ fetchImpl: fetchImpl as typeof fetch }); + + expect(result).toEqual({ enable: false, rules: [{ from: 'a', to: 'b' }] }); + }); + + it('falls back to the disabled default when the payload is not an object', async () => { + const fetchImpl = vi.fn(async () => jsonResponse({ name: 'model_switch_confirm', config: 'nope' })); + + const result = await refreshModelSwitchConfirmConfig({ fetchImpl: fetchImpl as typeof fetch }); + + expect(result).toEqual({ enable: false, rules: [] }); + }); + + it('returns undefined when the envelope name does not match', async () => { + const fetchImpl = vi.fn(async () => jsonResponse({ name: 'survey_popup', config: CLOUD_CONFIG })); + + const result = await refreshModelSwitchConfirmConfig({ fetchImpl: fetchImpl as typeof fetch }); + + expect(result).toBeUndefined(); + expect(peekModelSwitchConfirmConfig()).toBeUndefined(); + }); + + it('returns undefined and clears the memory copy when the fetch fails or the response is not ok', async () => { + await refreshModelSwitchConfirmConfig({ + fetchImpl: vi.fn(async () => jsonResponse(ENVELOPE)) as typeof fetch, + }); + expect(peekModelSwitchConfirmConfig()).toEqual(CLOUD_CONFIG); + + const failing = vi.fn(async () => { + throw new Error('offline'); + }); + await expect( + refreshModelSwitchConfirmConfig({ fetchImpl: failing as typeof fetch }), + ).resolves.toBeUndefined(); + expect(peekModelSwitchConfirmConfig()).toBeUndefined(); + + const notOk = vi.fn(async () => jsonResponse('no', 503)); + await expect( + refreshModelSwitchConfirmConfig({ fetchImpl: notOk as typeof fetch }), + ).resolves.toBeUndefined(); + }); + + it('always refetches — there is no cache TTL', async () => { + const fetchImpl = vi.fn(async () => jsonResponse(ENVELOPE)); + + await refreshModelSwitchConfirmConfig({ fetchImpl: fetchImpl as typeof fetch }); + await refreshModelSwitchConfirmConfig({ fetchImpl: fetchImpl as typeof fetch }); + + expect(fetchImpl).toHaveBeenCalledTimes(2); + }); +}); + +describe('rule hint parsing', () => { + it('parses a per-rule localized hint', async () => { + const fetchImpl = vi.fn(async () => + jsonResponse({ + name: 'model_switch_confirm', + config: { + enable: true, + rules: [ + { + from: 'a', + to: 'b', + hint: { en: 'Cache lost.', zh: '缓存失效。' }, + }, + ], + }, + }), + ); + + const result = await refreshModelSwitchConfirmConfig({ fetchImpl: fetchImpl as typeof fetch }); + + expect(result?.rules).toEqual([ + { + from: 'a', + to: 'b', + hint: { en: 'Cache lost.', zh: '缓存失效。' }, + }, + ]); + }); + + it('drops a rule whose hint is malformed', async () => { + const fetchImpl = vi.fn(async () => + jsonResponse({ + name: 'model_switch_confirm', + config: { + enable: true, + rules: [ + { from: 'a', to: 'b', hint: 42 }, + { from: 'c', to: 'd', hint: { en: 7 } }, + { from: 'e', to: 'f' }, + ], + }, + }), + ); + + const result = await refreshModelSwitchConfirmConfig({ fetchImpl: fetchImpl as typeof fetch }); + + expect(result?.rules).toEqual([{ from: 'e', to: 'f' }]); + }); +}); + +describe('matchModelSwitchRule', () => { + it('returns undefined when the config is missing or disabled', () => { + expect(matchModelSwitchRule(undefined, 'a', 'b')).toBeUndefined(); + expect( + matchModelSwitchRule({ enable: false, rules: [{ from: 'a', to: 'b' }] }, 'a', 'b'), + ).toBeUndefined(); + }); + + it('returns the matched rule only on an exact from/to match', () => { + const rule = { from: 'a', to: 'b', hint: { zh: '提示' } }; + const config = { enable: true, rules: [rule] }; + expect(matchModelSwitchRule(config, 'a', 'b')).toEqual(rule); + expect(matchModelSwitchRule(config, 'b', 'a')).toBeUndefined(); + expect(matchModelSwitchRule(config, 'a', 'c')).toBeUndefined(); + expect(matchModelSwitchRule(config, 'a', 'a')).toBeUndefined(); + }); + + it('matches any rule in the array and carries that rule own hint', () => { + const config = { + enable: true, + rules: [ + { from: 'x', to: 'y', hint: { en: 'first rule' } }, + { from: 'a', to: 'b', hint: { en: 'second rule' } }, + { from: 'a', to: 'c' }, + ], + }; + expect(matchModelSwitchRule(config, 'a', 'b')?.hint?.en).toBe('second rule'); + expect(matchModelSwitchRule(config, 'a', 'c')).toEqual({ from: 'a', to: 'c' }); + expect(matchModelSwitchRule(config, 'x', 'y')?.hint?.en).toBe('first rule'); + expect(matchModelSwitchRule(config, 'y', 'x')).toBeUndefined(); + }); + + it('matches any id in a from/to list', () => { + const config = { + enable: true, + rules: [{ from: ['a', 'b'], to: ['c', 'd'], hint: { en: 'listed' } }], + }; + expect(matchModelSwitchRule(config, 'a', 'c')?.hint?.en).toBe('listed'); + expect(matchModelSwitchRule(config, 'b', 'd')?.hint?.en).toBe('listed'); + expect(matchModelSwitchRule(config, 'a', 'd')).toBeDefined(); + expect(matchModelSwitchRule(config, 'x', 'c')).toBeUndefined(); + expect(matchModelSwitchRule(config, 'a', 'x')).toBeUndefined(); + }); +}); + +describe('resolveModelSwitchHint', () => { + const rule: ModelSwitchRule = { + from: 'a', + to: 'b', + hint: { en: 'Cache lost.', zh: '缓存失效。' }, + }; + + it('returns undefined when the rule is missing', () => { + expect(resolveModelSwitchHint(undefined)).toBeUndefined(); + }); + + it('always reads the en arm, even when zh is provided', () => { + expect(resolveModelSwitchHint(rule)).toBe('Cache lost.'); + }); + + it('returns undefined when the rule does not override the hint', () => { + expect(resolveModelSwitchHint({ from: 'a', to: 'b' })).toBeUndefined(); + expect(resolveModelSwitchHint({ from: 'a', to: 'b', hint: { zh: '仅中文' } })).toBeUndefined(); + }); +}); diff --git a/apps/kimi-code/test/utils/open-url.test.ts b/apps/kimi-code/test/utils/open-url.test.ts new file mode 100644 index 000000000..a5686bb92 --- /dev/null +++ b/apps/kimi-code/test/utils/open-url.test.ts @@ -0,0 +1,58 @@ +import { afterEach, expect, it, vi } from 'vitest'; + +import { openUrl } from '#/utils/open-url'; +import { execFile } from 'node:child_process'; +import { resolveCommandPath } from '#/utils/process/resolve-command'; + +vi.mock('node:child_process', () => ({ execFile: vi.fn() })); +vi.mock('#/utils/process/resolve-command', () => ({ resolveCommandPath: vi.fn() })); + +afterEach(() => { + vi.resetAllMocks(); + vi.restoreAllMocks(); +}); + +it.each([ + ['darwin', 'open', []], + ['linux', 'xdg-open', []], +])('opens URLs as one argument on %s using an absolute executable', (platform, command, args) => { + vi.spyOn(process, 'platform', 'get').mockReturnValue(platform as NodeJS.Platform); + vi.mocked(resolveCommandPath).mockReturnValue(`/system/${command}`); + const url = 'kimi-code://open?root=%2Ftmp%2Fa%25NAME%25%26b&new=1'; + openUrl(url); + expect(resolveCommandPath).toHaveBeenCalledWith(command); + expect(execFile).toHaveBeenCalledWith(`/system/${command}`, [...args, url], { windowsHide: true }, expect.any(Function)); +}); + +it('reports a missing opener without spawning a bare command', () => { + vi.mocked(resolveCommandPath).mockReturnValue(undefined); + const onError = vi.fn(); + openUrl('kimi-code://open?root=/tmp', onError); + expect(onError).toHaveBeenCalledWith(expect.any(Error)); + expect(execFile).not.toHaveBeenCalled(); +}); + +it('reports OS opener failures', () => { + vi.mocked(resolveCommandPath).mockReturnValue('/system/open'); + const onError = vi.fn(); + openUrl('kimi-code://open?root=/tmp', onError); + const callback = vi.mocked(execFile).mock.calls[0]![3] as (error: Error) => void; + const error = new Error('no scheme handler'); + callback(error); + expect(onError).toHaveBeenCalledWith(error); +}); + +it('uses a failure-reporting Windows opener and quotes URLs as literal strings', () => { + vi.spyOn(process, 'platform', 'get').mockReturnValue('win32'); + vi.mocked(resolveCommandPath).mockReturnValue('/system/powershell.exe'); + const url = "kimi-code://open?root=C%3A%5Ctest's%26%25&new=1"; + openUrl(url); + expect(resolveCommandPath).toHaveBeenCalledWith('powershell.exe'); + const call = vi.mocked(execFile).mock.calls[0]!; + const args = call[1] as string[]; + expect(args.slice(0, 3)).toEqual(['-NoProfile', '-NonInteractive', '-EncodedCommand']); + expect(Buffer.from(args[3]!, 'base64').toString('utf16le')).toBe( + "try { Start-Process -FilePath 'kimi-code://open?root=C%3A%5Ctest''s%26%25&new=1' -ErrorAction Stop } catch { exit 1 }", + ); + expect(call[2]).toEqual({ windowsHide: true }); +}); diff --git a/apps/kimi-code/test/utils/plugin-marketplace.test.ts b/apps/kimi-code/test/utils/plugin-marketplace.test.ts index eb0a39837..1751a661e 100644 --- a/apps/kimi-code/test/utils/plugin-marketplace.test.ts +++ b/apps/kimi-code/test/utils/plugin-marketplace.test.ts @@ -17,7 +17,7 @@ import { type PluginMarketplaceEntry, } from '#/utils/plugin-marketplace'; -const REPO_ROOT = join(dirname(fileURLToPath(import.meta.url)), '../../../..'); +const REPO_ROOT = join(import.meta.dirname, '../../../..'); describe('computeUpdateStatus', () => { it('reports not-installed when the plugin is absent', () => { @@ -141,7 +141,7 @@ describe('loadPluginMarketplace', () => { }, { id: 'kimi-webbridge', - displayName: 'Kimi WebBridge', + displayName: 'Kimi Browser Extension', description: 'fake wb', tier: 'official' as const, source: 'capability:kimi-webbridge', @@ -175,7 +175,7 @@ describe('loadPluginMarketplace', () => { { id: 'kimi-webbridge', tier: 'official', - displayName: 'Kimi WebBridge', + displayName: 'Kimi Browser Extension', version: '1.12.0', source: './kimi-webbridge', }, @@ -484,7 +484,7 @@ describe('loadPluginMarketplace', () => { { id: 'kimi-webbridge', type: 'guide', - displayName: 'Kimi WebBridge', + displayName: 'Kimi Browser Extension', source: './kimi-webbridge', installSkill: 'install', removeSkill: 'remove', diff --git a/apps/kimi-code/test/utils/process/resolve-command.test.ts b/apps/kimi-code/test/utils/process/resolve-command.test.ts index 8c836b45f..a19d24f69 100644 --- a/apps/kimi-code/test/utils/process/resolve-command.test.ts +++ b/apps/kimi-code/test/utils/process/resolve-command.test.ts @@ -1,6 +1,6 @@ import { chmodSync, mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs'; import { tmpdir } from 'node:os'; -import { join } from 'node:path'; +import { join, parse } from 'node:path'; import { afterEach, describe, expect, it } from 'vitest'; @@ -29,6 +29,18 @@ function mockPlatform(platform: NodeJS.Platform): void { Object.defineProperty(process, 'platform', { value: platform }); } +it('resolves a PATH executable from the filesystem root', () => { + const bin = makeTempDir('kimi-resolve-bin-'); + const name = process.platform === 'win32' ? 'mytool.EXE' : 'mytool'; + const tool = join(bin, name); + writeFileSync(tool, ''); + chmodSync(tool, 0o755); + process.env['PATH'] = bin; + process.env['PATHEXT'] = '.EXE'; + + expect(resolveCommandPath(name, parse(bin).root)).toBe(tool); +}); + describe('resolveCommandPath (posix)', () => { // Executable-bit checks only work on a posix host. it.skipIf(process.platform === 'win32')('resolves an executable from PATH to an absolute path', () => { @@ -86,6 +98,17 @@ describe('resolveCommandPath (posix)', () => { expect(resolveCommandPath('mytool', cwd)).toBeUndefined(); }); + it.skipIf(process.platform === 'win32')('continues to a safe PATH hit after a workspace executable', () => { + const cwd = makeTempDir('kimi-resolve-cwd-'); + const bin = makeTempDir('kimi-resolve-bin-'); + for (const dir of [cwd, bin]) { + writeFileSync(join(dir, 'mytool'), '#!/bin/sh\nexit 0\n'); + chmodSync(join(dir, 'mytool'), 0o755); + } + process.env['PATH'] = `${cwd}:${bin}`; + expect(resolveCommandPath('mytool', cwd)).toBe(join(bin, 'mytool')); + }); + it('returns undefined when the command is not on PATH', () => { const bin = makeTempDir('kimi-resolve-bin-'); const cwd = makeTempDir('kimi-resolve-cwd-'); diff --git a/apps/kimi-code/test/utils/survey-popup-config.test.ts b/apps/kimi-code/test/utils/survey-popup-config.test.ts deleted file mode 100644 index e0f4195ec..000000000 --- a/apps/kimi-code/test/utils/survey-popup-config.test.ts +++ /dev/null @@ -1,319 +0,0 @@ -import { mkdtemp, readFile, rm } from 'node:fs/promises'; -import { tmpdir } from 'node:os'; -import { join } from 'node:path'; - -import { afterEach, describe, expect, it, vi } from 'vitest'; - -import { - DEFAULT_SURVEY_POPUP_CONFIG, - getSurveyPopupConfig, - peekSurveyPopupConfig, - resetSurveyPopupConfigCache, -} from '#/utils/survey-popup-config'; - -const CLOUD_CONFIG = { - probability: 0.5, - on_for_models: ['k3', 'k2'], - min_time_before_feedback_ms: 60_000, - min_user_turns_before_feedback: 2, - min_time_between_feedback_ms: 120_000, - min_user_turns_between_feedback: 3, - min_time_between_global_feedback_ms: 240_000, - long_context_survey_threshold: 100_000, - long_context_probability: 0.9, - long_context_trigger_mode: 'virtual_context', -}; - -const ENVELOPE = { name: 'survey_popup', config: CLOUD_CONFIG }; - -const tempDirs: string[] = []; - -function jsonResponse(body: unknown, status = 200): Response { - return new Response(JSON.stringify(body), { - status, - headers: { 'Content-Type': 'application/json' }, - }); -} - -async function makeCacheFile(): Promise { - const dir = await mkdtemp(join(tmpdir(), 'survey-popup-config-')); - tempDirs.push(dir); - return join(dir, 'cache.json'); -} - -afterEach(async () => { - resetSurveyPopupConfigCache(); - await Promise.all(tempDirs.splice(0).map((dir) => rm(dir, { recursive: true, force: true }))); -}); - -describe('DEFAULT_SURVEY_POPUP_CONFIG', () => { - it('matches the contract defaults', () => { - expect(DEFAULT_SURVEY_POPUP_CONFIG).toEqual({ - probability: 0.005, - on_for_models: ['*'], - min_time_before_feedback_ms: 600_000, - min_user_turns_before_feedback: 5, - min_time_between_feedback_ms: 3_600_000, - min_user_turns_between_feedback: 10, - min_time_between_global_feedback_ms: 100_000_000, - long_context_survey_threshold: 200_000, - long_context_probability: 0.2, - long_context_trigger_mode: 'cumulative', - }); - }); -}); - -describe('getSurveyPopupConfig', () => { - it('POSTs the survey_popup name and returns the cloud config over the defaults', async () => { - const fetchImpl = vi.fn(async () => jsonResponse(ENVELOPE)); - - const result = await getSurveyPopupConfig({ - fetchImpl: fetchImpl as typeof fetch, - cacheFile: null, - }); - - expect(result).toEqual(CLOUD_CONFIG); - expect(fetchImpl).toHaveBeenCalledWith( - expect.stringContaining('/client_configs'), - expect.objectContaining({ - method: 'POST', - body: JSON.stringify({ name: 'survey_popup' }), - }), - ); - }); - - it('fills fields the cloud payload omits from the built-in defaults', async () => { - const fetchImpl = vi.fn(async () => - jsonResponse({ name: 'survey_popup', config: { probability: 0.5 } }), - ); - - const result = await getSurveyPopupConfig({ - fetchImpl: fetchImpl as typeof fetch, - cacheFile: null, - }); - - expect(result).toEqual({ ...DEFAULT_SURVEY_POPUP_CONFIG, probability: 0.5 }); - }); - - it('drops only the invalid field and keeps the rest', async () => { - const fetchImpl = vi.fn(async () => - jsonResponse({ - name: 'survey_popup', - config: { - ...CLOUD_CONFIG, - probability: 'often', - on_for_models: ['k3', 42], - long_context_trigger_mode: 'sometimes', - }, - }), - ); - - const result = await getSurveyPopupConfig({ - fetchImpl: fetchImpl as typeof fetch, - cacheFile: null, - }); - - expect(result).toEqual({ - ...CLOUD_CONFIG, - probability: DEFAULT_SURVEY_POPUP_CONFIG.probability, - on_for_models: DEFAULT_SURVEY_POPUP_CONFIG.on_for_models, - long_context_trigger_mode: DEFAULT_SURVEY_POPUP_CONFIG.long_context_trigger_mode, - }); - }); - - it('drops negative pacing values and fractional turn counts back to defaults', async () => { - const fetchImpl = vi.fn(async () => - jsonResponse({ - name: 'survey_popup', - config: { - min_time_before_feedback_ms: -1, - min_user_turns_before_feedback: 2.5, - min_time_between_feedback_ms: -100, - min_user_turns_between_feedback: -3, - min_time_between_global_feedback_ms: -1, - }, - }), - ); - - const result = await getSurveyPopupConfig({ - fetchImpl: fetchImpl as typeof fetch, - cacheFile: null, - }); - - expect(result).toEqual(DEFAULT_SURVEY_POPUP_CONFIG); - }); - - it('accepts zero pacing values as the documented no-limit semantics', async () => { - const fetchImpl = vi.fn(async () => - jsonResponse({ - name: 'survey_popup', - config: { - min_time_before_feedback_ms: 0, - min_user_turns_before_feedback: 0, - min_time_between_feedback_ms: 0, - min_user_turns_between_feedback: 0, - min_time_between_global_feedback_ms: 0, - }, - }), - ); - - const result = await getSurveyPopupConfig({ - fetchImpl: fetchImpl as typeof fetch, - cacheFile: null, - }); - - expect(result).toEqual({ - ...DEFAULT_SURVEY_POPUP_CONFIG, - min_time_before_feedback_ms: 0, - min_user_turns_before_feedback: 0, - min_time_between_feedback_ms: 0, - min_user_turns_between_feedback: 0, - min_time_between_global_feedback_ms: 0, - }); - }); - - it('drops out-of-range probabilities back to the built-in defaults', async () => { - const fetchImpl = vi.fn(async () => - jsonResponse({ - name: 'survey_popup', - config: { probability: 2, long_context_probability: -0.5 }, - }), - ); - - const result = await getSurveyPopupConfig({ - fetchImpl: fetchImpl as typeof fetch, - cacheFile: null, - }); - - expect(result.probability).toBe(DEFAULT_SURVEY_POPUP_CONFIG.probability); - expect(result.long_context_probability).toBe( - DEFAULT_SURVEY_POPUP_CONFIG.long_context_probability, - ); - }); - - it('drops a non-numeric long-context threshold back to the built-in default', async () => { - const fetchImpl = vi.fn(async () => - jsonResponse({ name: 'survey_popup', config: { long_context_survey_threshold: 'never' } }), - ); - - const result = await getSurveyPopupConfig({ - fetchImpl: fetchImpl as typeof fetch, - cacheFile: null, - }); - - expect(result.long_context_survey_threshold).toBe( - DEFAULT_SURVEY_POPUP_CONFIG.long_context_survey_threshold, - ); - }); - - it('keeps a non-positive threshold so the policy layer can close the long-context arm', async () => { - const fetchImpl = vi.fn(async () => - jsonResponse({ name: 'survey_popup', config: { long_context_survey_threshold: 0 } }), - ); - - const result = await getSurveyPopupConfig({ - fetchImpl: fetchImpl as typeof fetch, - cacheFile: null, - }); - - expect(result.long_context_survey_threshold).toBe(0); - }); - - it('falls back to the defaults when the payload is not an object', async () => { - const fetchImpl = vi.fn(async () => jsonResponse({ name: 'survey_popup', config: 'nope' })); - - const result = await getSurveyPopupConfig({ - fetchImpl: fetchImpl as typeof fetch, - cacheFile: null, - }); - - expect(result).toEqual(DEFAULT_SURVEY_POPUP_CONFIG); - }); - - it('falls back to the defaults when the fetch fails', async () => { - const fetchImpl = vi.fn(async () => { - throw new Error('offline'); - }); - - const result = await getSurveyPopupConfig({ - fetchImpl: fetchImpl as typeof fetch, - cacheFile: null, - }); - - expect(result).toEqual(DEFAULT_SURVEY_POPUP_CONFIG); - }); - - it('serves the in-process cache within a day and refetches after it', async () => { - const fetchImpl = vi.fn(async () => jsonResponse(ENVELOPE)); - const now = Date.now(); - - await getSurveyPopupConfig({ fetchImpl: fetchImpl as typeof fetch, now, cacheFile: null }); - const cached = await getSurveyPopupConfig({ - fetchImpl: fetchImpl as typeof fetch, - now: now + 60_000, - cacheFile: null, - }); - expect(cached).toEqual(CLOUD_CONFIG); - expect(fetchImpl).toHaveBeenCalledTimes(1); - - await getSurveyPopupConfig({ - fetchImpl: fetchImpl as typeof fetch, - now: now + 25 * 60 * 60 * 1000, - cacheFile: null, - }); - expect(fetchImpl).toHaveBeenCalledTimes(2); - }); - - it('persists the fetched config to the disk cache for the next process', async () => { - const cacheFile = await makeCacheFile(); - const fetchImpl = vi.fn(async () => jsonResponse(ENVELOPE)); - const now = Date.now(); - - await getSurveyPopupConfig({ fetchImpl: fetchImpl as typeof fetch, now, cacheFile }); - - const persisted = JSON.parse(await readFile(cacheFile, 'utf-8')) as { config: unknown }; - expect(persisted.config).toEqual(CLOUD_CONFIG); - - resetSurveyPopupConfigCache(); - const result = await getSurveyPopupConfig({ - fetchImpl: vi.fn(async () => { - throw new Error('must not fetch'); - }) as unknown as typeof fetch, - now: now + 60_000, - cacheFile, - }); - expect(result).toEqual(CLOUD_CONFIG); - }); - - it('ignores a stale disk cache and falls back to the defaults when the refetch fails', async () => { - const cacheFile = await makeCacheFile(); - const fetchImpl = vi.fn(async () => jsonResponse(ENVELOPE)); - const now = Date.now(); - - await getSurveyPopupConfig({ fetchImpl: fetchImpl as typeof fetch, now, cacheFile }); - resetSurveyPopupConfigCache(); - - const result = await getSurveyPopupConfig({ - fetchImpl: vi.fn(async () => jsonResponse('no', 503)) as unknown as typeof fetch, - now: now + 25 * 60 * 60 * 1000, - cacheFile, - }); - expect(result).toEqual(DEFAULT_SURVEY_POPUP_CONFIG); - }); -}); - -describe('peekSurveyPopupConfig', () => { - it('returns the defaults while the cache is cold', () => { - expect(peekSurveyPopupConfig()).toEqual(DEFAULT_SURVEY_POPUP_CONFIG); - }); - - it('sees the fetched config once the cache is warm', async () => { - const fetchImpl = vi.fn(async () => jsonResponse(ENVELOPE)); - const now = Date.now(); - - await getSurveyPopupConfig({ fetchImpl: fetchImpl as typeof fetch, now, cacheFile: null }); - - expect(peekSurveyPopupConfig(now + 60_000)).toEqual(CLOUD_CONFIG); - expect(peekSurveyPopupConfig(now + 25 * 60 * 60 * 1000)).toEqual(DEFAULT_SURVEY_POPUP_CONFIG); - }); -}); diff --git a/apps/kimi-code/test/utils/survey-state-store.test.ts b/apps/kimi-code/test/utils/survey-state-store.test.ts deleted file mode 100644 index b162b64dd..000000000 --- a/apps/kimi-code/test/utils/survey-state-store.test.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { mkdtemp, rm, writeFile } from 'node:fs/promises'; -import { tmpdir } from 'node:os'; -import { join } from 'node:path'; - -import { afterEach, beforeEach, describe, expect, it } from 'vitest'; - -import { - readSurveyLastShownTime, - writeSurveyLastShownTime, -} from '#/utils/survey-state-store'; - -describe('survey-state-store', () => { - let dir: string; - let file: string; - - beforeEach(async () => { - dir = await mkdtemp(join(tmpdir(), 'kimi-survey-state-')); - file = join(dir, 'feedback-survey-state.json'); - }); - - afterEach(async () => { - await rm(dir, { recursive: true, force: true }); - }); - - it('returns undefined when the file is missing', async () => { - await expect(readSurveyLastShownTime(file)).resolves.toBeUndefined(); - }); - - it('round-trips last_shown_time', async () => { - writeSurveyLastShownTime(1_700_000_000_000, file); - await expect(readSurveyLastShownTime(file)).resolves.toBe(1_700_000_000_000); - }); - - it('returns undefined when the file is corrupt', async () => { - await writeFile(file, 'not json', 'utf-8'); - await expect(readSurveyLastShownTime(file)).resolves.toBeUndefined(); - }); - - it('returns undefined when the schema does not match', async () => { - await writeFile(file, JSON.stringify({ version: 2, last_shown_time: 1 }), 'utf-8'); - await expect(readSurveyLastShownTime(file)).resolves.toBeUndefined(); - }); - - it('overwrites a previous timestamp atomically', async () => { - writeSurveyLastShownTime(1, file); - writeSurveyLastShownTime(2, file); - await expect(readSurveyLastShownTime(file)).resolves.toBe(2); - }); -}); diff --git a/apps/kimi-code/test/utils/usage/usage-format.test.ts b/apps/kimi-code/test/utils/usage/usage-format.test.ts index f22078285..375bdbd48 100644 --- a/apps/kimi-code/test/utils/usage/usage-format.test.ts +++ b/apps/kimi-code/test/utils/usage/usage-format.test.ts @@ -2,6 +2,7 @@ import { describe, it, expect } from 'vitest'; import { formatTokenCount, + quotaUsageRows, renderProgressBar, ratioSeverity, safeUsageRatio, @@ -134,3 +135,55 @@ describe('ratioSeverity', () => { expect(ratioSeverity(1)).toBe('danger'); }); }); + +describe('quotaUsageRows', () => { + it('renders one row per window the backend served, in payload order', () => { + const rows = quotaUsageRows({ + usages: { + limit5h: { usedRatio: 0.3, resetAt: '2026-09-11T18:00:00Z' }, + limit7d: { usedRatio: 0.2, resetAt: '2026-09-17T00:00:00Z' }, + monthTotal: { usedRatio: 0.4, resetAt: '2026-10-01T00:00:00Z' }, + monthCode: { usedRatio: 0.25 }, + }, + extraUsage: null, + }); + expect(rows).toEqual([ + { name: '5h limit', usedRatio: 0.3, resetAt: '2026-09-11T18:00:00Z', breakdown: undefined }, + { name: 'Weekly limit', usedRatio: 0.2, resetAt: '2026-09-17T00:00:00Z', breakdown: undefined }, + { + name: 'Monthly limit', + usedRatio: 0.4, + resetAt: '2026-10-01T00:00:00Z', + breakdown: { kimiRatio: 0.15, codeRatio: 0.25 }, + }, + ]); + }); + + it('skips entries the backend omitted', () => { + expect(quotaUsageRows({ usages: {}, extraUsage: null })).toEqual([]); + expect( + quotaUsageRows({ + usages: { monthTotal: { usedRatio: 0.4 } }, + extraUsage: null, + }), + ).toEqual([ + { + name: 'Monthly limit', + usedRatio: 0.4, + resetAt: undefined, + breakdown: { kimiRatio: 0.4, codeRatio: 0 }, + }, + ]); + }); + + it('clamps the kimi share against float noise and over-100 code shares', () => { + const rows = quotaUsageRows({ + usages: { + monthTotal: { usedRatio: 0.2 }, + monthCode: { usedRatio: 0.25 }, + }, + extraUsage: null, + }); + expect(rows[0]?.breakdown).toEqual({ kimiRatio: 0, codeRatio: 0.25 }); + }); +}); diff --git a/apps/kimi-inspect/AGENTS.md b/apps/kimi-inspect/AGENTS.md index 27698c978..9f8652300 100644 --- a/apps/kimi-inspect/AGENTS.md +++ b/apps/kimi-inspect/AGENTS.md @@ -14,7 +14,7 @@ A left icon rail (`src/components/NavRail.tsx`) switches top-level views: The **Agent scope** stays in the Chat view's right dock (`src/components/RightPanel.tsx` — Audit / Agent / State / Session tabs) across two of them: -- `Agent` tab — `Inspector`: agent switcher + a Plan lookup card (`PlanCard` in `src/components/Inspector.tsx` — deriving the reviewed plan of one ExitPlanMode tool call, or every plan of the agent, from the message stream: a full `GET /sessions/{id}/history` read via `src/transcript/api.ts`'s `fetchFullHistory` + client-side `projectPlans` in `src/transcript/plan.ts`) plus the agent Service panels. +- `Agent` tab — `Inspector`: agent switcher + a Plan lookup card (`PlanCard` in `src/components/Inspector.tsx` — querying `GET /sessions/{id}/transcript/plan` (one tool_call_id, or every plan of the agent) via `src/transcript/api.ts`'s `fetchTranscriptPlan`) plus the agent Service panels. - `State` tab — every key an Agent Service registered into the agent-state container, polled live via `IAgentStateService.snapshot()` — the same live diff-tree view as the session State tab, sharing `StateCard` from `src/components/StateCard.tsx`. The **Session scope** lives in the same right dock as the `Session` tab (`src/components/SessionPane.tsx`, embedded by `RightPanel`) with two sub-tabs: Services (the pending-interactions card — `src/components/InteractionsCard.tsx`, which lists and answers approvals/questions over the public REST endpoints `/api/v1/sessions/{id}/approvals|questions` via `src/interactions/api.ts`, since the interaction kernel is a process-global singleton with no debug channel — plus the session Service panels) and State (every key a Session Service registered into the session-state container, read on demand via `ISessionStateService.snapshot()`). @@ -33,12 +33,12 @@ The Vite dev server proxies `/api` to a running kap-server (`KIMI_SERVER_URL`, d ## Chat view -The per-session chat (`src/components/ChatView.tsx`) renders turn-granularly from the **message protocol v3** surface and carries an in-chat search bar (`src/components/ChatSearchBar.tsx`): it searches the current session via `POST /api/v1/search` with `container: { session_id }` (usually served by the live route, since selecting a session resumes it), and a result click funnels through the app shell's `openSearchHit` — the same agent-switch + `ChatJump` (page-back, scroll, flash) path the global search view uses. +The per-session chat (`src/components/ChatView.tsx`) renders turn-granularly from the **transcript** surface instead of context memory and carries an in-chat search bar (`src/components/ChatSearchBar.tsx`): it searches the current session via `POST /api/v1/search` with `container: { session_id }` (usually served by the live route, since selecting a session resumes it), and a result click funnels through the app shell's `openSearchHit` — the same agent-switch + `ChatJump` (page-back, scroll, flash) path the global search view uses. -Persisted state comes from `GET /api/v1/sessions/{id}/history` only (client in `src/transcript/api.ts`): the initial load reads the newest page (default 500 messages, replace mode), older history auto-pages with `before_turn` via an IntersectionObserver sentinel at the top of the scroll view (prepend mode; a short or empty page ends paging — the response deliberately carries no has-more flag), and each timeline item is wrapped in `content-visibility: auto` + `contain-intrinsic-size` so the browser virtualizes off-screen rendering natively (no windowing library). +Full state is read from `GET /api/v1/sessions/{id}/transcript` (initial load = newest page, refreshes re-read from the tail backwards), older history auto-pages with `before_turn` via an IntersectionObserver sentinel at the top of the scroll view, and each timeline item is wrapped in `content-visibility: auto` + `contain-intrinsic-size` so the browser virtualizes off-screen rendering natively (no windowing library). -`/api/v3/ws` (client in `src/transcript/ws.ts`) is the live channel: server `hello` → `subscribe {id, session_id, agent_ids: [agent]}` → `ack` → recovery payload (in-flight entities + pending interactions + running tasks + todo + `session.state`) → live traffic, heartbeat at the WS protocol level. The store (`src/transcript/store.ts`) applies recovery and live messages through one idempotent path — entity messages upsert by (type, own id) with content fields authoritative, the delta family (`assistant.delta` / `thinking.delta` / `tool_call.delta`) appends by id, `tool.progress` patches the entity, `system(undo/clear)` truncates the timeline by `payload.removed_ids` (subtree included, linked interactions cascaded), and `interaction` / `task` / `todo` / `session.state` upsert their own single-source maps; an upsert older than the held entity's `timestamp` is skipped. Notifications are throttled trailing-edge so the per-token delta stream does not re-render per token. Every subscribe ack (initial and every reconnect) triggers an `after_step` catch-up from the newest terminal step; an empty catch-up whose anchor vanished (undo/clear while away) falls back to a full refresh. All of this is orchestrated by `ChatChannel` (`src/transcript/channel.ts`) — no buffering, no cursors beyond the two REST page cursors, no reset frames. +`/api/v1/ws` is an incremental channel (`transcript.ops`, grade `block` — the cheapest grade that still carries whole-state frame upserts, dropping per-token `append` frames; `transcript.reset` is ignored by the store, surfaced only to the audit recorder via the optional `onReset` handler). The channel tracks the op-batch watermark: a dedicated `subscribe_v2` control frame carries the per-agent grades and the `transcript_since` cursor, a seq gap / reconnect / `resync_required` / append gap triggers a point-to-point catch-up (`fetchTranscriptOps` → `GET .../transcript/ops?since_seq=`), and any legacy/incomplete answer falls back to the full REST refresh. Convergence reuses `@moonshot-ai/transcript`'s L2 reducer (`src/transcript/`: REST/WS clients + store; the data model and reducer come from the package, nothing is re-implemented locally). ## Transcript audit panel -The Transcript audit panel (`src/components/audit/`, the `Audit` tab of the chat view's right dock — `src/components/RightPanel.tsx`, fed the trail by `ChatView`'s `onTrailChange`) replays how the visible store was built: an `AuditTrail` (`src/audit/`) records every step — each REST history page (request + replace/prepend/tail mode), every WS message (entity/delta/state as applied), channel events (subscribe ack, reconnect, catch-up fallback, protocol errors), and prompt/cancel actions — with the resulting immutable `ChatState` per entry; the panel offers a draggable timeline plus a Diff tab (structural diff vs the previous entry: added/modified/removed colored, long strings tail-truncated, all fields kept), a full State view (the flat entity timeline plus the interaction/task/todo/session.state entities), and the raw Event payload. +The Transcript audit panel (`src/components/audit/`, the `Audit` tab of the chat view's right dock — `src/components/RightPanel.tsx`, fed the trail by `ChatView`'s `onTrailChange`) replays how the visible store was built: an `AuditTrail` (`src/audit/`) records every step — each REST page (request + replace/prepend), every WS frame (`transcript.ops` live/buffered/flushed/catchup, `transcript.reset`), loss signals, and prompt/cancel actions — with the resulting immutable `AgentState` per entry; the panel offers a draggable timeline plus a Diff tab (structural diff vs the previous entry: added/modified/removed colored, long strings tail-truncated, all fields kept), a full State view, and the raw Event payload. diff --git a/apps/kimi-inspect/package.json b/apps/kimi-inspect/package.json index ee37ebc94..2f0b29c31 100644 --- a/apps/kimi-inspect/package.json +++ b/apps/kimi-inspect/package.json @@ -23,7 +23,7 @@ }, "dependencies": { "@moonshot-ai/agent-core-v2": "workspace:^", - "@moonshot-ai/kap-server": "workspace:^", + "@moonshot-ai/transcript": "workspace:^", "@tanstack/react-query": "^5.74.4", "react": "^19.1.0", "react-dom": "^19.1.0" @@ -34,7 +34,7 @@ "@types/react-dom": "^19.1.2", "@vitejs/plugin-react": "^4.4.1", "tailwindcss": "^4.1.4", - "typescript": "6.0.2", + "typescript": "7.0.2", "vite": "^6.3.3", "vitest": "4.1.4" } diff --git a/apps/kimi-inspect/src/audit/audit.test.ts b/apps/kimi-inspect/src/audit/audit.test.ts index 45c586c95..0043ec73b 100644 --- a/apps/kimi-inspect/src/audit/audit.test.ts +++ b/apps/kimi-inspect/src/audit/audit.test.ts @@ -3,57 +3,27 @@ * and tail-preserving truncation used by the chat view's audit panel. */ -import type { StepMessage, TurnMessage } from '@moonshot-ai/kap-server/protocol'; +import { EMPTY_AGENT_STATE, type AgentState, type TranscriptTurn } from '@moonshot-ai/transcript'; import { describe, expect, it } from 'vitest'; -import { EMPTY_CHAT_STATE, type ChatState } from '../transcript/store'; import { diffValue, type DiffNode } from './diff'; import { serializeState } from './serialize'; import { AuditTrail, AUDIT_TRAIL_MAX_ENTRIES } from './trail'; import { tailTrunc } from './truncate'; -const T0 = Date.parse('2026-01-01T00:00:00.000Z'); -let tick = 0; - -function ts(): number { - tick += 1; - return T0 + tick * 1000; -} - -function turnMsg(n: number, status: 'running' | 'completed' = 'completed'): TurnMessage { +function turnItem(n: number): TranscriptTurn { return { - type: 'turn', - session_id: 's1', - agent_id: 'main', - timestamp: ts(), - turn_id: `t${n}`, + kind: 'turn', + turnId: `t${n}`, ordinal: n, - status, + state: 'completed', origin: { kind: 'user' }, + steps: [], }; } -function stepMsg(stepId: string, status: 'running' | 'completed'): StepMessage { - return { - type: 'step', - session_id: 's1', - agent_id: 'main', - timestamp: ts(), - step_id: stepId, - turn_id: stepId.split('.')[0] ?? 't1', - ordinal: Number(stepId.split('.')[1] ?? '1'), - status, - }; -} - -function stateWithTimeline(items: readonly (TurnMessage | StepMessage)[]): ChatState { - return { - ...EMPTY_CHAT_STATE, - entries: items.map((message) => ({ - key: message.type === 'turn' ? `turn:${message.turn_id}` : `step:${message.step_id}`, - message, - })), - }; +function stateWith(items: readonly TranscriptTurn[]): AgentState { + return { ...EMPTY_AGENT_STATE, items }; } // ---------------------------------------------------------------- diff @@ -83,14 +53,12 @@ describe('diffValue', () => { }); it('matches entity arrays by id instead of index', () => { - const t1 = turnMsg(1); - const t2 = turnMsg(2); - const prev = [t1, t2]; - const next = [t1, { ...t2, status: 'running' as const }, turnMsg(3)]; + const prev = [turnItem(1), turnItem(2)]; + const next = [turnItem(1), { ...turnItem(2), state: 'running' as const }, turnItem(3)]; const node = diffValue(prev, next); expect(node.children?.get('t1')?.status).toBe('unchanged'); expect(node.children?.get('t2')?.status).toBe('modified'); - expect(node.children?.get('t2')?.children?.get('status')).toMatchObject({ + expect(node.children?.get('t2')?.children?.get('state')).toMatchObject({ status: 'modified', prev: 'completed', value: 'running', @@ -98,11 +66,18 @@ describe('diffValue', () => { expect(node.children?.get('t3')?.status).toBe('added'); }); - it('keys steps by step_id (not their shared turn_id) so siblings never collide', () => { - const done = stepMsg('t1.1', 'completed'); + it('keys steps by stepId (not their shared turnId) so siblings never collide', () => { + const step = (id: string, state: 'running' | 'completed') => ({ + kind: 'step' as const, + stepId: id, + turnId: 't1', + ordinal: 1, + state, + frames: [], + }); const node = diffValue( - [done, stepMsg('t1.2', 'completed')], - [done, stepMsg('t1.2', 'running')], + [step('t1.1', 'completed'), step('t1.2', 'completed')], + [step('t1.1', 'completed'), step('t1.2', 'running')], ); expect([...(node.children?.keys() ?? [])]).toEqual(['t1.1', 't1.2']); expect(node.children?.get('t1.1')?.status).toBe('unchanged'); @@ -110,8 +85,7 @@ describe('diffValue', () => { }); it('marks removed array elements by id', () => { - const t2 = turnMsg(2); - const node = diffValue([turnMsg(1), t2], [t2]); + const node = diffValue([turnItem(1), turnItem(2)], [turnItem(2)]); expect(node.children?.get('t1')).toMatchObject({ status: 'removed' }); expect(node.children?.get('t2')?.status).toBe('unchanged'); }); @@ -131,69 +105,48 @@ describe('diffValue', () => { expect(diffValue([1], { 0: 1 }).status).toBe('modified'); }); - it('diffs two serialized states with session.state changes visible', () => { - const base = stateWithTimeline([turnMsg(1)]); - const prev = serializeState(base); - const nextState: ChatState = { - ...base, - sessionState: { - type: 'session.state', - session_id: 's1', - timestamp: ts(), - status: 'running', + it('diffs two serialized states with meta changes visible (goal/plan fields)', () => { + const prev = serializeState(stateWith([turnItem(1)])); + const nextState: AgentState = { + ...stateWith([turnItem(1)]), + meta: { goal: { objective: 'ship it', status: 'active' }, - modes: { plan: { review_path: '/tmp/plan.md' } }, + modes: { plan: { reviewPath: '/tmp/plan.md' } }, }, }; const node: DiffNode = diffValue(prev, serializeState(nextState)); - expect(node.children?.get('timeline')?.status).toBe('unchanged'); - const sessionState = node.children?.get('sessionState'); - expect(sessionState?.status).toBe('added'); - expect(sessionState?.children).toBeUndefined(); + expect(node.children?.get('items')?.status).toBe('unchanged'); + const meta = node.children?.get('meta'); + expect(meta?.status).toBe('modified'); + expect(meta?.children?.get('goal')?.status).toBe('added'); + // Whole-subtree add: `modes` was absent before, so the block (plan + // included) is marked added without descending into children. + expect(meta?.children?.get('modes')?.status).toBe('added'); + expect(meta?.children?.get('modes')?.children).toBeUndefined(); }); }); // ---------------------------------------------------------------- serialize describe('serializeState', () => { - it('turns maps into sorted plain objects and flattens the timeline', () => { - const state: ChatState = { - ...EMPTY_CHAT_STATE, - entries: stateWithTimeline([turnMsg(1)]).entries, + it('turns maps into sorted plain objects and sets into arrays', () => { + const state: AgentState = { + ...EMPTY_AGENT_STATE, tasks: new Map([ [ 'b-task', - { - type: 'task', - session_id: 's1', - agent_id: 'main', - timestamp: ts(), - task_id: 'b-task', - kind: 'shell', - status: 'running', - detached: false, - output_tail: '', - }, + { taskId: 'b-task', kind: 'shell', state: 'running', detached: false, outputTail: '' }, ], [ 'a-task', - { - type: 'task', - session_id: 's1', - agent_id: 'main', - timestamp: ts(), - task_id: 'a-task', - kind: 'tool', - status: 'completed', - detached: false, - output_tail: '', - }, + { taskId: 'a-task', kind: 'tool', state: 'completed', detached: false, outputTail: '' }, ], ]), + pendingInteractions: new Set(['z', 'a']), }; const out = serializeState(state); - expect(Object.keys(out.tasks)).toEqual(['a-task', 'b-task']); - expect(out.timeline.map((m) => (m.type === 'turn' ? m.turn_id : ''))).toEqual(['t1']); + expect(Object.keys(out.tasks as Record)).toEqual(['a-task', 'b-task']); + expect(out.pendingInteractions).toEqual(['a', 'z']); expect(out.hasMoreOlder).toBe(false); }); }); @@ -218,20 +171,37 @@ describe('tailTrunc', () => { // ---------------------------------------------------------------- trail describe('AuditTrail', () => { + const page = { + items: [turnItem(1)], + hasMoreOlder: false, + tasks: [], + interactions: [], + attachments: [], + todos: [], + meta: {}, + pendingInteractions: [], + }; + it('records entries with increasing indices, timestamps, and state references', () => { const trail = new AuditTrail(); - const s1 = stateWithTimeline([turnMsg(1)]); - const s2 = stateWithTimeline([turnMsg(1), turnMsg(2)]); - trail.recordRest({ pageSize: 500 }, 'replace', 1, { turn_id: 't1', step_id: 't1.1' }, s1); - trail.recordWs(turnMsg(2, 'running'), s2); + const s1 = stateWith([turnItem(1)]); + const s2 = stateWith([turnItem(1), turnItem(2)]); + trail.recordRest({ pageSize: 30 }, 'replace', page, s1); + trail.recordOps([{ op: 'turn.upsert', turn: turnItem(2) }], 'live', '2026-01-01T00:00:00Z', s2); trail.recordEvent('prompt', 'hello', s2); + trail.recordReset( + { items: [], tasks: [], interactions: [], attachments: [], todos: [], prompts: [], meta: {} }, + false, + undefined, + s2, + ); const entries = trail.getEntries(); - expect(entries.map((entry) => entry.kind)).toEqual(['rest', 'ws', 'event']); - expect(entries.map((entry) => entry.index)).toEqual([0, 1, 2]); + expect(entries.map((entry) => entry.kind)).toEqual(['rest', 'ops', 'event', 'reset']); + expect(entries.map((entry) => entry.index)).toEqual([0, 1, 2, 3]); expect(entries[0]!.state).toBe(s1); expect(entries[1]!.state).toBe(s2); - expect(entries[0]).toMatchObject({ mode: 'replace', messageCount: 1 }); + expect(entries[1]).toMatchObject({ delivery: 'live', envelopeAt: '2026-01-01T00:00:00Z' }); expect(entries[2]).toMatchObject({ event: 'prompt', detail: 'hello' }); expect(entries.every((entry) => typeof entry.at === 'string' && entry.at.length > 0)).toBe( true, @@ -245,18 +215,18 @@ describe('AuditTrail', () => { const unsubscribe = trail.subscribe(() => { notified += 1; }); - trail.recordEvent('cancel', undefined, EMPTY_CHAT_STATE); - trail.recordEvent('ack', undefined, EMPTY_CHAT_STATE); + trail.recordEvent('cancel', undefined, EMPTY_AGENT_STATE); + trail.recordEvent('gap', undefined, EMPTY_AGENT_STATE); expect(notified).toBe(2); unsubscribe(); - trail.recordEvent('reconnect', undefined, EMPTY_CHAT_STATE); + trail.recordEvent('resync', undefined, EMPTY_AGENT_STATE); expect(notified).toBe(2); }); it('drops the oldest entries beyond the cap while indices keep increasing', () => { const trail = new AuditTrail(); for (let i = 0; i < AUDIT_TRAIL_MAX_ENTRIES + 10; i += 1) { - trail.recordEvent('prompt', `p${i}`, EMPTY_CHAT_STATE); + trail.recordEvent('prompt', `p${i}`, EMPTY_AGENT_STATE); } const entries = trail.getEntries(); expect(entries).toHaveLength(AUDIT_TRAIL_MAX_ENTRIES); diff --git a/apps/kimi-inspect/src/audit/diff.ts b/apps/kimi-inspect/src/audit/diff.ts index 13c1af72e..613d7ebe6 100644 --- a/apps/kimi-inspect/src/audit/diff.ts +++ b/apps/kimi-inspect/src/audit/diff.ts @@ -1,14 +1,13 @@ /** - * Structural diff over serialized `ChatState` values (see `serialize.ts`). + * Structural diff over serialized `AgentState` values (see `serialize.ts`). * * The audit panel diffs two adjacent, immutable states. Because the store * is copy-on-write, untouched subtrees share references — the reference * equality fast path below collapses them to `unchanged` without walking. * - * Arrays of protocol entities are matched by their id field (turn_id, - * step_id, message_id, tool_call_id, …) rather than by index, so an upsert - * in the middle of the timeline does not turn into a cascade of spurious - * modifications. + * Arrays of transcript entities are matched by their id field (turnId, + * stepId, frameId, …) rather than by index, so an upsert in the middle of + * the timeline does not turn into a cascade of spurious modifications. */ export type DiffStatus = 'unchanged' | 'added' | 'removed' | 'modified'; @@ -28,22 +27,21 @@ export interface DiffNode { } /** - * Id fields checked in priority order — MOST SPECIFIC FIRST. An interaction - * carries both `interaction_id` and `tool_call_id`, a tool call can carry - * `task_id` / `todo_id` alongside its `tool_call_id`, and every timeline - * entity carries `turn_id`; matching the wrong one mislabels the node and, - * worse, collides siblings in the children map (two tool calls of one task - * both keyed by that task id). + * Id fields checked in priority order — MOST SPECIFIC FIRST. A step carries + * both `turnId` and `stepId`, and a frame can carry `taskId` alongside its + * `frameId`; matching the wrong one mislabels the node and, worse, collides + * siblings in the children map (two steps of one turn both keyed `t1`). */ const ID_FIELDS = [ - 'message_id', - 'interaction_id', - 'tool_call_id', - 'task_id', - 'todo_id', - 'system_id', - 'step_id', - 'turn_id', + 'frameId', + 'stepId', + 'interactionId', + 'attachmentId', + 'todoId', + 'markerId', + 'refId', + 'turnId', + 'taskId', ] as const; function elementId(element: unknown): string | undefined { diff --git a/apps/kimi-inspect/src/audit/serialize.ts b/apps/kimi-inspect/src/audit/serialize.ts index 1b2768b52..ddcbecea3 100644 --- a/apps/kimi-inspect/src/audit/serialize.ts +++ b/apps/kimi-inspect/src/audit/serialize.ts @@ -1,43 +1,48 @@ /** - * Serialize a `ChatState` into a plain, JSON-shaped object for the audit + * Serialize an `AgentState` into a plain, JSON-shaped object for the audit * panel's state tree and structural diff. Maps become key-sorted plain - * objects (stable display order); everything else is passed through by - * reference (state is immutable, so sharing is safe and keeps the - * reference-equality fast path in `diffValue` useful). + * objects (stable display order), Sets become sorted arrays; everything + * else is passed through by reference (state is immutable, so sharing is + * safe and keeps the reference-equality fast path in `diffValue` useful). */ import type { - InteractionMessage, - SessionStateMessage, - TaskMessage, - TodoMessage, -} from '@moonshot-ai/kap-server/protocol'; + AgentState, + TranscriptAttachment, + TranscriptInteraction, + TranscriptItem, + TranscriptMeta, + TranscriptTask, + TranscriptTodo, +} from '@moonshot-ai/transcript'; -import type { ChatState, TimelineMessage } from '../transcript/store'; - -/** Plain-object view of a `ChatState` (Maps unwrapped). */ -export interface SerializedChatState { - readonly timeline: readonly TimelineMessage[]; - readonly interactions: Record; - readonly tasks: Record; - readonly todos: Record; - readonly sessionState: SessionStateMessage | undefined; +/** Plain-object view of an `AgentState` (Maps/Sets unwrapped). */ +export interface SerializedAgentState { + readonly items: readonly TranscriptItem[]; + readonly tasks: Record; + readonly interactions: Record; + readonly attachments: Record; + readonly todos: Record; + readonly meta: TranscriptMeta; + readonly pendingInteractions: readonly string[]; readonly hasMoreOlder: boolean; } function mapToSortedObject(map: ReadonlyMap): Record { const out: Record = {}; - for (const key of [...map.keys()].toSorted()) out[key] = map.get(key) as V; + for (const key of [...map.keys()].sort()) out[key] = map.get(key) as V; return out; } -export function serializeState(state: ChatState): SerializedChatState { +export function serializeState(state: AgentState): SerializedAgentState { return { - timeline: state.entries.map((entry) => entry.message), - interactions: mapToSortedObject(state.interactions), + items: state.items, tasks: mapToSortedObject(state.tasks), + interactions: mapToSortedObject(state.interactions), + attachments: mapToSortedObject(state.attachments), todos: mapToSortedObject(state.todos), - sessionState: state.sessionState, + meta: state.meta, + pendingInteractions: [...state.pendingInteractions].sort(), hasMoreOlder: state.hasMoreOlder, }; } diff --git a/apps/kimi-inspect/src/audit/trail.ts b/apps/kimi-inspect/src/audit/trail.ts index 3d69159bb..efed4cfd2 100644 --- a/apps/kimi-inspect/src/audit/trail.ts +++ b/apps/kimi-inspect/src/audit/trail.ts @@ -1,17 +1,21 @@ /** - * Audit trail for the chat view's message-protocol channel. + * Audit trail for the chat view's transcript channel. * - * A pure observer: the chat pipeline (REST history loads, WS messages, user - * actions) calls the `record*` methods AFTER applying each step to the real - * `ChatStore`, passing the resulting immutable `ChatState` reference. - * Replaying the trail is therefore free — every entry already holds the - * exact state the store had at that point, ready for the timeline slider - * and the structural diff. + * A pure observer: the chat pipeline (REST loads, WS frames, user actions) + * calls the `record*` methods AFTER applying each step to the real + * `TranscriptChatStore`, passing the resulting immutable `AgentState` + * reference. Replaying the trail is therefore free — every entry already + * holds the exact state the store had at that point, ready for the + * timeline slider and the structural diff. */ -import type { ServerMessage } from '@moonshot-ai/kap-server/protocol'; +import type { + AgentState, + AgentTranscriptSnapshot, + TranscriptOperation, +} from '@moonshot-ai/transcript'; -import type { ChatState } from '../transcript/store'; +import type { TranscriptPage } from '../transcript/api'; export const AUDIT_TRAIL_MAX_ENTRIES = 5000; @@ -21,52 +25,53 @@ interface AuditEntryBase { /** Local record time (ISO). */ readonly at: string; /** Store state right after this entry was applied (immutable reference). */ - readonly state: ChatState; + readonly state: AgentState; /** One-line summary for the timeline list. */ readonly summary: string; } export interface RestAuditEntry extends AuditEntryBase { readonly kind: 'rest'; - readonly request: { - readonly beforeTurn?: string | undefined; - readonly afterStep?: string | undefined; - readonly pageSize: number; - }; - /** replace = newest page (initial/refresh); prepend = older page; tail = after_step catch-up. */ - readonly mode: 'replace' | 'prepend' | 'tail'; - readonly messageCount: number; - readonly inFlight?: { turn_id: string; step_id: string } | undefined; + readonly request: { readonly beforeTurn?: string | undefined; readonly pageSize: number }; + readonly appliedAs: 'replace' | 'prepend'; + readonly page: TranscriptPage; } -export interface WsAuditEntry extends AuditEntryBase { - readonly kind: 'ws'; - /** The raw server message as applied to the store (entity, delta, or state). */ - readonly message: ServerMessage; +export interface OpsAuditEntry extends AuditEntryBase { + readonly kind: 'ops'; + /** Envelope timestamp (server send time) when present. */ + readonly envelopeAt?: string | undefined; + readonly ops: readonly TranscriptOperation[]; + /** live = applied immediately; buffered = held during a REST refresh; flushed = replayed after one; catchup = fetched via the ops catch-up endpoint after a seq gap. */ + readonly delivery: 'live' | 'buffered' | 'flushed' | 'catchup'; +} + +export interface ResetAuditEntry extends AuditEntryBase { + readonly kind: 'reset'; + readonly envelopeAt?: string | undefined; + readonly snapshot: AgentTranscriptSnapshot; + readonly hasMoreOlder: boolean; } export interface EventAuditEntry extends AuditEntryBase { readonly kind: 'event'; - readonly event: - | 'ack' - | 'ack-error' - | 'reconnect' - | 'catchup-refresh' - | 'protocol-error' - | 'invalid-frame' - | 'prompt' - | 'cancel' - | 'older-error'; + readonly event: 'ack-refresh' | 'resync' | 'gap' | 'prompt' | 'cancel'; readonly detail?: string | undefined; } -export type AuditEntry = RestAuditEntry | WsAuditEntry | EventAuditEntry; +export type AuditEntry = RestAuditEntry | OpsAuditEntry | ResetAuditEntry | EventAuditEntry; type DistributiveOmit = T extends unknown ? Omit : never; /** Entry payload accepted by `push` (index/at are filled in there). */ type AuditEntryInput = DistributiveOmit; +function summarizeOps(ops: readonly TranscriptOperation[]): string { + const counts = new Map(); + for (const op of ops) counts.set(op.op, (counts.get(op.op) ?? 0) + 1); + return [...counts.entries()].map(([name, n]) => (n > 1 ? `${name}×${n}` : name)).join(', '); +} + export class AuditTrail { private entryList: AuditEntry[] = []; private nextIndex = 0; @@ -86,61 +91,68 @@ export class AuditTrail { recordRest( request: RestAuditEntry['request'], - mode: RestAuditEntry['mode'], - messageCount: number, - inFlight: RestAuditEntry['inFlight'], - state: ChatState, + appliedAs: RestAuditEntry['appliedAs'], + page: TranscriptPage, + state: AgentState, ): void { - const cursor = - request.beforeTurn !== undefined - ? `?before_turn=${request.beforeTurn}` - : request.afterStep !== undefined - ? `?after_step=${request.afterStep}` - : ''; - const flight = inFlight !== undefined ? ` (in_flight ${inFlight.step_id})` : ''; + const cursor = request.beforeTurn !== undefined ? `?before_turn=${request.beforeTurn}` : ''; this.push({ kind: 'rest', request, - mode, - messageCount, - inFlight, + appliedAs, + page, state, - summary: `GET history${cursor} → ${messageCount} messages (${mode})${flight}`, + summary: `GET transcript${cursor} → ${page.items.length} items (${appliedAs})`, }); } - recordWs(message: ServerMessage, state: ChatState): void { + recordOps( + ops: readonly TranscriptOperation[], + delivery: OpsAuditEntry['delivery'], + envelopeAt: string | undefined, + state: AgentState, + ): void { this.push({ - kind: 'ws', - message, + kind: 'ops', + ops, + delivery, + envelopeAt, state, - summary: summarizeMessage(message), + summary: `${ops.length} ops (${summarizeOps(ops)}) [${delivery}]`, + }); + } + + recordReset( + snapshot: AgentTranscriptSnapshot, + hasMoreOlder: boolean, + envelopeAt: string | undefined, + state: AgentState, + ): void { + this.push({ + kind: 'reset', + snapshot, + hasMoreOlder, + envelopeAt, + state, + summary: `reset snapshot (${snapshot.items.length} items) — ignored by chat store`, }); } recordEvent( event: EventAuditEntry['event'], detail: string | undefined, - state: ChatState, + state: AgentState, ): void { const label = - event === 'ack' - ? 'subscribe ack → after_step catch-up' - : event === 'ack-error' - ? 'subscribe ack error' - : event === 'reconnect' - ? 'socket dropped → reconnecting' - : event === 'catchup-refresh' - ? 'catch-up anchor gone → full refresh' - : event === 'protocol-error' - ? 'protocol error frame' - : event === 'invalid-frame' - ? 'invalid frame (server bug)' - : event === 'prompt' - ? 'prompt sent' - : event === 'cancel' - ? 'cancel sent' - : 'older-page load failed'; + event === 'ack-refresh' + ? 'subscribe ack → REST refresh' + : event === 'resync' + ? 'resync_required → REST refresh' + : event === 'gap' + ? 'append gap → REST refresh' + : event === 'prompt' + ? 'prompt sent' + : 'cancel sent'; this.push({ kind: 'event', event, @@ -161,38 +173,3 @@ export class AuditTrail { for (const listener of this.listeners) listener(); } } - -function summarizeMessage(message: ServerMessage): string { - switch (message.type) { - case 'turn': - return `turn ${message.turn_id} (${message.status})`; - case 'step': - return `step ${message.step_id} (${message.status})`; - case 'user': - return `user ${message.message_id}`; - case 'assistant': - case 'thinking': - return `${message.type} ${message.message_id} (${message.status})`; - case 'assistant.delta': - case 'thinking.delta': - return `${message.type} ${message.message_id} +${message.text.length}ch`; - case 'tool_call': - return `tool_call ${message.name} ${message.tool_call_id} (${message.status})`; - case 'tool_call.delta': - return `tool_call.delta ${message.tool_call_id} +${message.input_text.length}ch`; - case 'tool.progress': - return `tool.progress ${message.tool_call_id} (${message.progress.kind})`; - case 'system': - return `system(${message.subtype}) ${message.system_id}`; - case 'interaction': - return `interaction ${message.interaction_id} (${message.kind}/${message.status})`; - case 'task': - return `task ${message.task_id} (${message.kind}/${message.status})`; - case 'todo': - return `todo ${message.todo_id} (${message.items.length} items)`; - case 'session.state': - return `session.state (${message.status})`; - default: - return message.type; - } -} diff --git a/apps/kimi-inspect/src/components/ChatView.tsx b/apps/kimi-inspect/src/components/ChatView.tsx index cf02e5704..093f2adc8 100644 --- a/apps/kimi-inspect/src/components/ChatView.tsx +++ b/apps/kimi-inspect/src/components/ChatView.tsx @@ -1,52 +1,56 @@ /** * Main view — the conversation of the active session + agent, rendered from - * the message protocol (`/api/v3/ws` + `GET /api/v1/sessions/{id}/history`): + * the transcript surface (`/api/v1`): * - * - Persisted state comes from the REST history endpoint only: the initial - * load reads the newest page, a full refresh re-reads it and re-covers - * the previously loaded window, and "load earlier" pages further with a - * `before_turn` cursor. - * - The WS channel carries the recovery payload and all live traffic; both - * are applied to the store through the same idempotent replace-by-id - * path (delta family appended by id, entity content authoritative), so - * there is no reset/buffer/cursor machinery. - * - Every subscribe ack (initial and reconnect) triggers an `after_step` - * catch-up from the newest terminal step; an empty catch-up whose - * anchor vanished (undo/clear while away) falls back to a full refresh. + * - FULL state comes from the REST transcript API only: the initial load + * reads the newest page, a full refresh re-reads from the tail backwards + * until the previously loaded window is re-covered, and "Load earlier + * turns" pages further with a `before_turn` cursor. + * - The WS channel (`/api/v1/ws`) is a DELTA channel only: `transcript.ops` + * at `delta` grade; `transcript.reset` snapshots are ignored. Ops are + * buffered while a REST refresh is in flight and flushed onto the fresh + * pages — idempotent upserts and offset-placed appends make that converge. + * - Loss signals (`resync_required`, append gap, socket reconnect) trigger + * a full REST refresh; nothing is resynced from the socket itself. * - * Rendering groups the flat timeline by turn (system markers stay - * standalone) and is typed entirely by the protocol schemas - * (`@moonshot-ai/kap-server/protocol`). Cancels go through the - * `agentLoopService` channel over the debug RPC - * surface (`/api/v1/debug`); interaction answers (approve/reject, - * answer/dismiss) go through the public REST endpoints - * (`src/interactions/api.ts`); the running indicator derives from - * `session.state`. + * Rendering is turn-granular (turn → step → frame) and typed entirely by the + * transcript data model. Cancels go through the `IAgentLoopService` channel + * over the debug RPC surface (`/api/v1/debug`); interaction answers + * (approve/reject, answer/dismiss) go through the public REST endpoints + * (`src/interactions/api.ts`); the running indicator + * derives from transcript state (`meta.activity` / running turns). */ import { IAgentLoopService } from '@moonshot-ai/agent-core-v2/agent/loop/loop'; -import type { - AssistantMessage, - ContentPart, - InteractionMessage, - InteractionQuestionItem, - SessionStateMessage, - StepMessage, - SystemMessage, - TaskMessage, - ThinkingMessage, - TodoMessage, - ToolCallMessage, - TurnMessage, - UserMessage, -} from '@moonshot-ai/kap-server/protocol'; +import { + type QuestionItem, + type QuestionRequest, +} from '@moonshot-ai/agent-core-v2/agent/interaction/question'; +import { + EMPTY_AGENT_STATE, + itemId, + type AgentState, + type NoticeFrame, + type ToolCallFrame, + type TranscriptAttachment, + type TranscriptFrame, + type TranscriptInteraction, + type TranscriptItem, + type TranscriptMarker, + type TranscriptOperation, + type TranscriptTask, + type TranscriptTaskRef, + type TranscriptTurn, + type TranscriptUsage, + type TurnOrigin, + type TurnState, +} from '@moonshot-ai/transcript'; import { createContext, useCallback, useContext, useEffect, useLayoutEffect, - useMemo, useRef, useState, useSyncExternalStore, @@ -61,13 +65,20 @@ import { type QuestionAnswerWire, } from '../interactions/api'; import type { SearchHit } from '../search/api'; -import { ChatChannel } from '../transcript/channel'; import { - EMPTY_CHAT_STATE, + fetchTranscriptAttachment, + fetchTranscriptOps, + fetchTranscriptPage, + TRANSCRIPT_PAGE_SIZE, +} from '../transcript/api'; +import { + createCoalescedRunner, hasTurnId, - type ChatState, - type TimelineEntry, + oldestTurnId, + recoverLoadedWindow, + TranscriptChatStore, } from '../transcript/store'; +import { TranscriptWs } from '../transcript/ws'; import { ActionButton, Badge, ErrorLine, JsonView, relTime } from '../ui'; import { ChatSearchBar } from './ChatSearchBar'; @@ -90,71 +101,251 @@ export interface ChatJump { readonly nonce: number; } -interface ChatChannelState { - /** Null until the effect has created the channel (pre-ready / no session). */ - readonly channel: ChatChannel | null; - readonly state: ChatState; +interface TranscriptChannel { + /** Null until the effect has created the store (pre-ready / no session). */ + readonly store: TranscriptChatStore | null; + readonly state: AgentState; /** Records every step that built the store (audit panel data source). */ readonly trail: AuditTrail | null; /** True once the initial REST page load succeeded. */ readonly loaded: boolean; - /** Set when the initial/refresh load failed. */ + /** Set when the initial/refresh load failed (e.g. server without transcript). */ readonly loadError: unknown; } /** - * Owns the channel (store + REST + WS) for one (sessionId, agentId) pair. + * Owns the store, the REST load/refresh pipeline, and the WS delta + * subscription for one (sessionId, agentId) pair. */ -function useChatChannel( +function useTranscriptChannel( sessionId: string | null, agentId: string, ready: boolean, captureAnchor: () => void, -): ChatChannelState { +): TranscriptChannel { const { baseUrl, config } = useConnection(); const token = config.token.trim(); - const [channel, setChannel] = useState(null); + const [channel, setChannel] = useState<{ store: TranscriptChatStore; trail: AuditTrail } | null>( + null, + ); const [loaded, setLoaded] = useState(false); const [loadError, setLoadError] = useState(null); useEffect(() => { if (!ready || sessionId === null) return; + const store = new TranscriptChatStore(); + const trail = new AuditTrail(); const authToken = token === '' ? undefined : token; - const next = new ChatChannel({ - baseUrl, + let disposed = false; + /** While a REST reload / catch-up is in flight, WS ops are buffered, then flushed. */ + let fetching = true; + let buffer: TranscriptOperation[] = []; + /** Max batch seq seen while buffering (folded into the watermark on flush). */ + let bufferedSeq: number | undefined; + /** + * Op-batch watermark: the store is known to include every batch with + * seq <= lastSeq. Sourced from REST page watermarks and applied batch + * seqs; `undefined` until a sequenced server provides one (legacy + * servers never do — every recovery then falls back to full refreshes). + */ + let lastSeq: number | undefined; + /** Cursor of the in-flight recover fetch, paired with `onPageApplied`. */ + let recoverBefore: string | undefined; + /** True once the initial page load succeeded (gates reset-driven catch-up). */ + let seeded = false; + + const noteSeq = (seq: number | undefined): void => { + if (seq === undefined) return; + lastSeq = lastSeq === undefined ? seq : Math.max(lastSeq, seq); + }; + + const flushBuffer = (): void => { + fetching = false; + if (buffer.length > 0) { + const flushed = buffer; + store.applyOps(flushed); + trail.recordOps(flushed, 'flushed', undefined, store.getState()); + noteSeq(bufferedSeq); + } + buffer = []; + bufferedSeq = undefined; + }; + + /** Page (re)load body shared by the full refresh and the catch-up fallback. */ + const reloadPages = async (): Promise => { + // The window's oldest turn is the re-cover anchor: after a refresh the + // server window may have shifted, and only re-loading up to THIS turn + // preserves the previously loaded history. + const prevOldest = oldestTurnId(store.getState().items); + if (prevOldest !== undefined) captureAnchor(); + const newest = await fetchTranscriptPage({ + baseUrl, + token: authToken, + sessionId, + agentId, + pageSize: TRANSCRIPT_PAGE_SIZE, + }); + if (disposed) return; + store.applyPage(newest, { replace: true }); + trail.recordRest({ pageSize: TRANSCRIPT_PAGE_SIZE }, 'replace', newest, store.getState()); + lastSeq = newest.seq; + // Re-cover the previously loaded window for refreshes (a no-op on the + // initial load, where there is no previous oldest turn). + await recoverLoadedWindow( + store, + prevOldest, + (beforeTurn) => { + recoverBefore = beforeTurn; + return fetchTranscriptPage({ + baseUrl, + token: authToken, + sessionId, + agentId, + beforeTurn, + pageSize: TRANSCRIPT_PAGE_SIZE, + }); + }, + () => disposed, + (page) => { + trail.recordRest( + { beforeTurn: recoverBefore, pageSize: TRANSCRIPT_PAGE_SIZE }, + 'prepend', + page, + store.getState(), + ); + }, + ); + if (!disposed) { + seeded = true; + setLoaded(true); + setLoadError(null); + } + }; + + /** Full-state (re)load: the legacy recovery path and the initial load. */ + const refresh = createCoalescedRunner(async (): Promise => { + fetching = true; + buffer = []; + bufferedSeq = undefined; + try { + await reloadPages(); + } catch (error) { + if (!disposed) setLoadError(error); + } finally { + flushBuffer(); + } + }); + + /** + * Targeted catch-up: fetch exactly the op batches after our watermark + * (`GET .../transcript/ops?since_seq=`). Falls back to a full page + * reload on a legacy server (no seq / endpoint missing), a journal that + * no longer covers the gap (`complete: false`), or a fetch failure. + */ + const catchUp = createCoalescedRunner(async (): Promise => { + if (lastSeq === undefined) { + refresh(); + return; + } + fetching = true; + buffer = []; + bufferedSeq = undefined; + try { + const res = await fetchTranscriptOps({ + baseUrl, + token: authToken, + sessionId, + agentId, + sinceSeq: lastSeq, + }); + if (disposed) return; + if (!res.complete) { + await reloadPages(); + } else { + for (const batch of res.batches) { + store.applyOps(batch.ops); + trail.recordOps(batch.ops, 'catchup', undefined, store.getState()); + } + noteSeq(res.latestSeq); + } + } catch { + try { + await reloadPages(); + } catch (error) { + if (!disposed) setLoadError(error); + } + } finally { + flushBuffer(); + } + }); + + const ws = new TranscriptWs({ + url: baseUrl, token: authToken, sessionId, agentId, - onWillReplace: captureAnchor, - onLoaded: () => { - setLoaded(true); - setLoadError(null); - }, - onLoadError: (error) => { - setLoadError(error); + getSince: () => lastSeq, + handlers: { + onOps: (aid, ops, meta) => { + if (aid !== agentId) return; + if (fetching) { + buffer.push(...ops); + if (meta?.seq !== undefined) { + bufferedSeq = Math.max(bufferedSeq ?? 0, meta.seq); + } + trail.recordOps(ops, 'buffered', meta?.at, store.getState()); + return; + } + // Seq gap: the store is behind by at least one batch. Catch up + // point-to-point instead of applying on a stale base (appends are + // offset-placed and would surface a gap anyway). + if (meta?.seq !== undefined && lastSeq !== undefined && meta.seq > lastSeq + 1) { + catchUp(); + return; + } + store.applyOps(ops); + trail.recordOps(ops, 'live', meta?.at, store.getState()); + noteSeq(meta?.seq); + }, + onReset: (_aid, snapshot, hasMoreOlder, meta) => { + trail.recordReset(snapshot, hasMoreOlder, meta?.at, store.getState()); + // Sequenced mode only: a reset after seeding means the server could + // not replay from our `transcript_since` cursor (journal truncated) + // — catch up, which itself falls back to a full reload when the seq + // window is gone. On legacy servers (no watermark) resets are + // routine per-subscribe noise and stay ignored, as before. + if (seeded && lastSeq !== undefined) catchUp(); + }, + onResyncRequired: () => { + trail.recordEvent('resync', undefined, store.getState()); + catchUp(); + }, + onReconnected: () => { + trail.recordEvent('ack-refresh', undefined, store.getState()); + catchUp(); + }, }, }); - setChannel(next); + store.onGap = () => { + trail.recordEvent('gap', undefined, store.getState()); + catchUp(); + }; + setChannel({ store, trail }); setLoaded(false); setLoadError(null); - next.start(); + refresh(); return () => { - next.close(); + disposed = true; + ws.close(); setChannel(null); }; }, [sessionId, agentId, ready, baseUrl, token, captureAnchor]); const state = useSyncExternalStore( channel?.store.subscribe ?? noopSubscribe, - () => channel?.store.getState() ?? EMPTY_CHAT_STATE, + () => channel?.store.getState() ?? EMPTY_AGENT_STATE, ); - return { - channel, - state, - trail: channel?.trail ?? null, - loaded, - loadError, - }; + return { store: channel?.store ?? null, state, trail: channel?.trail ?? null, loaded, loadError }; } export function ChatView({ @@ -178,7 +369,7 @@ export function ChatView({ /** Hands an in-chat search hit up to the app shell (agent switch + jump). */ onOpenSearchHit?: ((hit: SearchHit) => void) | undefined; }) { - const { klient } = useConnection(); + const { klient, baseUrl, config } = useConnection(); const [sendError, setSendError] = useState(null); const [loadingOlder, setLoadingOlder] = useState(false); const [olderError, setOlderError] = useState(null); @@ -195,13 +386,13 @@ export function ChatView({ if (el !== null) anchorRef.current = el.scrollHeight - el.scrollTop; }, []); - const { channel, state, trail, loaded, loadError } = useChatChannel( + const { store, state, trail, loaded, loadError } = useTranscriptChannel( sessionId, agentId, ready, captureAnchor, ); - const entries = state.entries; + const items = state.items; // The audit panel is rendered by the app shell's right dock; report the // trail (null while no channel exists) so it can subscribe to it there. @@ -214,7 +405,7 @@ export function ChatView({ // step (or the turn card) and flash it briefly. A turn that never appears // (cut by an undo) degrades to no scroll. useEffect(() => { - if (jump === null || jump === undefined || !loaded || channel === null || sessionId === null) { + if (jump === null || jump === undefined || !loaded || store === null || sessionId === null) { return; } if (jump.turnId === undefined) { @@ -222,27 +413,38 @@ export function ChatView({ return; } let cancelled = false; - const isCancelled = (): boolean => cancelled; const turnId = jump.turnId; const stepId = jump.stepId; void (async () => { stickBottomRef.current = false; - const store = channel.store; - try { - while ( - !hasTurnId(store.getState().entries, turnId) && - store.getState().hasMoreOlder && - !isCancelled() - ) { - const before = store.getState().entries.length; - await channel.loadOlder(); - if (store.getState().entries.length === before) break; - } - } catch { - // A failed older-page load leaves the window as-is; degrade to no scroll. - } + const token = config.token.trim(); + let recoverBefore: string | undefined; + await recoverLoadedWindow( + store, + turnId, + (beforeTurn) => { + recoverBefore = beforeTurn; + return fetchTranscriptPage({ + baseUrl, + token: token === '' ? undefined : token, + sessionId, + agentId, + beforeTurn, + pageSize: TRANSCRIPT_PAGE_SIZE, + }); + }, + () => cancelled, + (page) => { + trail?.recordRest( + { beforeTurn: recoverBefore, pageSize: TRANSCRIPT_PAGE_SIZE }, + 'prepend', + page, + store.getState(), + ); + }, + ); if (cancelled) return; - if (!hasTurnId(store.getState().entries, turnId)) { + if (!hasTurnId(store.getState().items, turnId)) { onJumpHandled?.(); return; } @@ -265,7 +467,7 @@ export function ChatView({ return () => { cancelled = true; }; - }, [jump, loaded, channel, sessionId, onJumpHandled]); + }, [jump, loaded, store, sessionId, agentId, baseUrl, config, trail, onJumpHandled]); // The flash highlight clears itself after a short moment. useEffect(() => { @@ -283,7 +485,7 @@ export function ChatView({ return; } if (stickBottomRef.current) el.scrollTop = el.scrollHeight; - }, [entries]); + }, [items]); const onScroll = () => { const el = scrollRef.current; @@ -292,20 +494,32 @@ export function ChatView({ }; const loadOlder = async () => { - if (channel === null || loadingOlder) return; + if (sessionId === null || loadingOlder || store === null) return; + const oldest = oldestTurnId(items); + if (oldest === undefined) return; captureAnchor(); setLoadingOlder(true); setOlderError(null); try { - await channel.loadOlder(); + const token = config.token.trim(); + const page = await fetchTranscriptPage({ + baseUrl, + token: token === '' ? undefined : token, + sessionId, + agentId, + beforeTurn: oldest, + pageSize: TRANSCRIPT_PAGE_SIZE, + }); + store.applyPage(page); + trail?.recordRest( + { beforeTurn: oldest, pageSize: TRANSCRIPT_PAGE_SIZE }, + 'prepend', + page, + store.getState(), + ); } catch (error) { anchorRef.current = null; setOlderError(error); - trail?.recordEvent( - 'older-error', - error instanceof Error ? error.message : String(error), - channel.store.getState(), - ); } finally { setLoadingOlder(false); } @@ -323,8 +537,8 @@ export function ChatView({ const root = scrollRef.current; if (sentinel === null || root === null || olderError !== null) return; const observer = new IntersectionObserver( - (observed) => { - if (observed.some((entry) => entry.isIntersecting)) void loadOlderRef.current(); + (entries) => { + if (entries.some((entry) => entry.isIntersecting)) void loadOlderRef.current(); }, { root, rootMargin: '400px 0px 0px 0px' }, ); @@ -335,26 +549,18 @@ export function ChatView({ }, [hasMoreOlder, loaded, olderError, loadingOlder]); const running = - (state.sessionState !== undefined && state.sessionState.status !== 'idle') || - isAnyTurnRunning(entries); - const pendingCount = [...state.interactions.values()].filter( - (interaction) => interaction.status === 'pending', - ).length; + state.meta.activity === 'turn' || + items.some((item) => item.kind === 'turn' && item.state === 'running'); - // Interactions render inline at their anchor tool call; entities without - // an anchor (or whose anchor is outside the loaded window) collect here - // and render floating at the bottom. Unanchored tasks (no tool call - // references them, e.g. shell-command tasks) do the same. - const anchoredToolCallIds = useMemo(() => collectToolCallIds(entries), [entries]); + // Interactions render inline at their anchor tool frame; entities without + // an anchor (or whose anchor frame is outside the loaded window) collect + // here and render floating at the bottom. + const anchoredToolCallIds = collectToolCallIds(items); const unanchoredInteractions = [...state.interactions.values()].filter( (interaction) => - interaction.tool_call_id === undefined || !anchoredToolCallIds.has(interaction.tool_call_id), + interaction.toolCallId === undefined || !anchoredToolCallIds.has(interaction.toolCallId), ); - const anchoredTaskIds = useMemo(() => collectTaskIds(entries), [entries]); - const unanchoredTasks = [...state.tasks.values()].filter( - (task) => !anchoredTaskIds.has(task.task_id), - ); - const latestTodo = latestTodoOf(state.todos); + const latestTodo = [...state.todos.values()].at(-1); const cancel = async () => { if (sessionId === null) return; @@ -388,9 +594,8 @@ export function ChatView({ {sessionId} agent: {agentId} {running ? turn running : idle} - {pendingCount > 0 ? {pendingCount} pending : null} - {state.sessionState !== undefined ? ( - + {state.pendingInteractions.size > 0 ? ( + {state.pendingInteractions.size} pending ) : null} @@ -423,25 +628,63 @@ export function ChatView({
        - Failed to load the session history — the server may be too old to expose the - history API. + Failed to load the transcript — the server may be too old to expose the transcript + API.
        ) : null} - {entries.length === 0 && loadError === null ? ( + {items.length === 0 && loadError === null ? (
        {loaded ? 'Empty transcript.' : 'Loading transcript…'}
        ) : null} {latestTodo !== undefined && latestTodo.items.length > 0 ? ( - +
        +
        todo (latest)
        + {latestTodo.items.map((entry, i) => ( +
        + + {entry.status === 'done' ? '✔' : entry.status === 'in_progress' ? '◐' : '□'} + + + {entry.title} + +
        + ))} +
        ) : null} - - {unanchoredInteractions.map((interaction) => ( - + {items.map((item) => ( + // Native virtual screen: the browser skips layout/paint for + // off-screen items and remembers their last rendered size + // (`auto` in contain-intrinsic-size), so long transcripts stay + // cheap without a windowing library. +
        + +
        ))} - {unanchoredTasks.map((task) => ( - + {unanchoredInteractions.map((interaction) => ( + ))} @@ -462,515 +705,447 @@ export function ChatView({ ); } -// ---------------------------------------------------------------- timeline +// ---------------------------------------------------------------- items -type RenderItem = - | { - readonly kind: 'group'; - readonly turnId: string; - readonly turn: TurnMessage | undefined; - readonly items: readonly TimelineEntry[]; - } - | { readonly kind: 'system'; readonly key: string; readonly message: SystemMessage }; - -/** Pseudo-turn grouping queued (unread) user messages, which carry no turn_id yet. */ -const QUEUED_TURN_ID = '$queued'; - -function groupTimeline(entries: readonly TimelineEntry[]): RenderItem[] { - interface GroupDraft { - turn?: TurnMessage; - items: TimelineEntry[]; - } - const drafts = new Map(); - const order: ( - | { kind: 'group'; turnId: string } - | { kind: 'system'; key: string; message: SystemMessage } - )[] = []; - for (const entry of entries) { - const message = entry.message; - if (message.type === 'system') { - order.push({ kind: 'system', key: entry.key, message }); - continue; - } - const turnId = message.turn_id ?? QUEUED_TURN_ID; - let draft = drafts.get(turnId); - if (draft === undefined) { - draft = { items: [] }; - drafts.set(turnId, draft); - order.push({ kind: 'group', turnId }); - } - if (message.type === 'turn') draft.turn = message; - draft.items.push(entry); - } - return order.map((item) => - item.kind === 'system' - ? item - : { - kind: 'group', - turnId: item.turnId, - turn: drafts.get(item.turnId)?.turn, - items: drafts.get(item.turnId)?.items ?? [], - }, - ); -} - -function Timeline({ - items, - interactions, +function ItemView({ + item, tasks, + interactions, + attachments, flash, }: { - items: readonly TimelineEntry[]; - interactions: ReadonlyMap; - tasks: ReadonlyMap; + item: TranscriptItem; + tasks: ReadonlyMap; + interactions: ReadonlyMap; + attachments: ReadonlyMap; + /** The jump target being flashed, if any. */ flash?: { turnId: string; stepId?: string | undefined } | null | undefined; }) { - const renderItems = useMemo(() => groupTimeline(items), [items]); - return ( - <> - {renderItems.map((item) => - item.kind === 'system' ? ( - // Native virtual screen: the browser skips layout/paint for - // off-screen items and remembers their last rendered size. -
        - -
        - ) : ( -
        - -
        - ), - )} - - ); -} - -function isAnyTurnRunning(entries: readonly TimelineEntry[]): boolean { - return entries.some( - (entry) => entry.message.type === 'turn' && entry.message.status === 'running', - ); -} - -function collectToolCallIds(entries: readonly TimelineEntry[]): Set { - const ids = new Set(); - for (const entry of entries) { - if (entry.message.type === 'tool_call') ids.add(entry.message.tool_call_id); + switch (item.kind) { + case 'turn': + return ( + + ); + case 'marker': + return ; + case 'taskref': + return ; } - return ids; } -function collectTaskIds(entries: readonly TimelineEntry[]): Set { +function collectToolCallIds(items: readonly TranscriptItem[]): Set { const ids = new Set(); - for (const entry of entries) { - if (entry.message.type === 'tool_call' && entry.message.task_id !== undefined) { - ids.add(entry.message.task_id); + for (const item of items) { + if (item.kind !== 'turn') continue; + for (const step of item.steps) { + for (const frame of step.frames) { + if (frame.kind === 'tool') ids.add(frame.toolCallId); + } } } return ids; } -function latestTodoOf(todos: ReadonlyMap): TodoMessage | undefined { - let latest: TodoMessage | undefined; - for (const todo of todos.values()) { - if (latest === undefined || todo.timestamp > latest.timestamp) latest = todo; +function turnStateTone(state: TurnState): 'neutral' | 'green' | 'amber' | 'red' { + switch (state) { + case 'running': + return 'amber'; + case 'completed': + return 'green'; + case 'failed': + return 'red'; + default: + return 'neutral'; } - return latest; } -// ---------------------------------------------------------------- turn group +function usageText(usage: TranscriptUsage): string { + const parts: string[] = []; + if (usage.inputTokens !== undefined) parts.push(`in ${usage.inputTokens}`); + if (usage.outputTokens !== undefined) parts.push(`out ${usage.outputTokens}`); + if (usage.cachedTokens !== undefined) parts.push(`cached ${usage.cachedTokens}`); + if (usage.cost !== undefined) parts.push(`$${usage.cost.toFixed(4)}`); + return parts.join(' / '); +} -function TurnGroupView({ - turnId, +function TurnView({ turn, - items, - interactions, tasks, + interactions, + attachments, flash, }: { - turnId: string; - turn: TurnMessage | undefined; - items: readonly TimelineEntry[]; - interactions: ReadonlyMap; - tasks: ReadonlyMap; + turn: TranscriptTurn; + tasks: ReadonlyMap; + interactions: ReadonlyMap; + attachments: ReadonlyMap; + /** The jump target being flashed, if any. */ flash?: { turnId: string; stepId?: string | undefined } | null | undefined; }) { - const turnFlashed = flash?.turnId === turnId && flash.stepId === undefined; - const queued = turnId === QUEUED_TURN_ID; + const turnFlashed = flash?.turnId === turn.turnId && flash.stepId === undefined; return (
        - {queued ? ( - queued - ) : ( - {turnId} - )} - {turn !== undefined ? ( - <> - {turn.origin.kind} - {turn.status} - {turn.started_at !== undefined ? ( - - {relTime(Date.parse(turn.started_at))} - - ) : null} - {turn.usage !== undefined ? ( - - {turnUsageText(turn.usage)} - - ) : null} - - ) : queued ? ( - not consumed into a turn yet - ) : ( - turn header outside the window - )} + {turn.turnId} + {turn.origin.kind} + {turn.state} + {turn.startedAt !== undefined ? ( + + {relTime(Date.parse(turn.startedAt))} + + ) : null} + {turn.usage !== undefined ? ( + {usageText(turn.usage)} + ) : null}
        - {turn?.attachment_ids !== undefined && turn.attachment_ids.length > 0 ? ( - + {turn.prompt !== undefined && turn.prompt !== '' ? ( + ) : null} - {items.map((entry) => ( - + {turn.attachmentIds !== undefined && turn.attachmentIds.length > 0 ? ( + + ) : null} + {turn.steps.map((step) => ( +
        + {step.frames.map((frame) => ( + + ))} + {step.state === 'interrupted' ? ( +
        step interrupted
        + ) : null} +
        ))}
        ); } -function turnUsageText(usage: NonNullable): string { - const parts: string[] = []; - if (usage.input_tokens !== undefined) parts.push(`in ${usage.input_tokens}`); - if (usage.output_tokens !== undefined) parts.push(`out ${usage.output_tokens}`); - if (usage.cached_tokens !== undefined) parts.push(`cached ${usage.cached_tokens}`); - if (usage.cost !== undefined) parts.push(`$${usage.cost.toFixed(4)}`); - return parts.join(' / '); +function TurnPrompt({ origin, prompt }: { origin: TurnOrigin; prompt: string }) { + if (origin.kind === 'user') { + return ( +
        +
        + {prompt} +
        +
        + ); + } + return ( +
        + {prompt} +
        + ); } -function TimelineEntryView({ - entry, - interactions, - tasks, - flash, +function MarkerView({ marker }: { marker: TranscriptMarker }) { + return ( +
        +
        +
        + {marker.marker} + {marker.at !== undefined ? {relTime(Date.parse(marker.at))} : null} +
        +
        + {marker.payload !== undefined ? : null} +
        + ); +} + +function TaskRefView({ + item, + task, }: { - entry: TimelineEntry; - interactions: ReadonlyMap; - tasks: ReadonlyMap; - flash?: { turnId: string; stepId?: string | undefined } | null | undefined; + item: TranscriptTaskRef; + task: TranscriptTask | undefined; }) { - const message = entry.message; - switch (message.type) { - case 'turn': - return null; - case 'step': - return ; - case 'user': - return ; - case 'assistant': - return ; - case 'thinking': - return ; - case 'tool_call': - return ; - case 'system': - return ; - } -} - -function StepRow({ step, flashed }: { step: StepMessage; flashed: boolean }) { + const failed = + task !== undefined && + (task.state === 'failed' || task.state === 'timed_out' || task.state === 'lost'); return ( -
        - {step.step_id} - - {step.status} - - {step.retry !== undefined ? ( - - retry {step.retry.failed_attempt}→{step.retry.next_attempt}/{step.retry.max_attempts}:{' '} - {step.retry.error_name} +
        +
        + + task{task !== undefined ? `: ${task.kind}` : ''} - ) : null} - {step.finish_reason !== undefined ? finish: {step.finish_reason} : null} - {step.usage !== undefined ? ( - - in {step.usage.input_other + step.usage.input_cache_read + step.usage.input_cache_creation}{' '} - / out {step.usage.output} - - ) : null} - {step.end_reason !== undefined ? {step.end_reason} : null} - {step.end_message !== undefined ? {step.end_message} : null} -
        - ); -} - -// ---------------------------------------------------------------- messages - -function UserMessageView({ message }: { message: UserMessage }) { - const isUserInput = message.origin === undefined || message.origin.kind === 'user'; - return ( -
        -
        - {message.message_id} - {message.origin !== undefined && message.origin.kind !== 'user' ? ( - {userOriginLabel(message.origin)} + {task?.description ?? item.taskId} + {task !== undefined ? ( + + {task.state} + {task.detached ? ' (detached)' : ''} + ) : null} - {message.status === 'unread' ? queued : null}
        - {isUserInput ? ( -
        -
        - -
        -
        - ) : ( -
        - -
        - )} - {message.attachment_ids !== undefined && message.attachment_ids.length > 0 ? ( - - ) : null} - {message.skill_activations !== undefined && message.skill_activations.length > 0 ? ( -
        - {message.skill_activations.map((skill) => ( - - skill: {skill.skill_name} - - ))} -
        + {task !== undefined && task.outputTail !== '' ? ( +
        +          {task.outputTail}
        +        
        ) : null}
        ); } -function userOriginLabel(origin: Exclude): string { - switch (origin.kind) { - case 'user': - return 'user'; - case 'cron': - return `cron ${origin.cron_id ?? ''}`.trim(); - case 'task': - return `task: ${origin.title}`; - case 'skill': - return `skill: ${origin.skill_name}`; - } -} +// ---------------------------------------------------------------- frames -function UserContentParts({ parts }: { parts: readonly ContentPart[] }) { - const text = parts - .filter((part) => part.type === 'text' || part.type === 'think') - .map((part) => part.text) - .join('\n'); - const media = parts.filter( - (part) => part.type === 'image' || part.type === 'audio' || part.type === 'video', - ); - return ( - <> - {text} - {media.length > 0 ? ( - - {media.map((part, index) => ( - - {part.type}: {mediaPartLabel(part)} - - ))} - - ) : null} - - ); -} - -function mediaPartLabel(part: ContentPart): string { - const name = part.meta['name']; - if (typeof name === 'string' && name !== '') return name; - const id = part.meta['id']; - if (typeof id === 'string' && id !== '') return id; - return part.text; -} - -function AssistantMessageView({ message }: { message: AssistantMessage }) { - return ( -
        -
        - {message.text} - {message.status === 'streaming' ? ▍ : null} -
        -
        - ); -} - -function ThinkingMessageView({ message }: { message: ThinkingMessage }) { - return ( -
        - {message.text} - {message.status === 'streaming' ? ▍ : null} -
        - ); -} - -function AttachmentChips({ ids }: { ids: readonly string[] }) { +function AttachmentChips({ + ids, + attachments, +}: { + ids: readonly string[]; + attachments: ReadonlyMap; +}) { return (
        - {ids.map((id) => ( - - 📎 {id} - - ))} + {ids.map((id) => { + const attachment = attachments.get(id); + const label = attachment?.name ?? attachment?.mediaType ?? id; + return ( + + 📎{' '} + + + ); + })}
        ); } -// ---------------------------------------------------------------- tool calls - -function ToolCallView({ - call, - interactions, - tasks, +function AttachmentLink({ + attachment, + label, }: { - call: ToolCallMessage; - interactions: ReadonlyMap; - tasks: ReadonlyMap; + attachment: TranscriptAttachment | undefined; + label: string; }) { - const task = call.task_id !== undefined ? tasks.get(call.task_id) : undefined; + const sessionId = useContext(SessionContext); + const { baseUrl, config } = useConnection(); + const [downloading, setDownloading] = useState(false); + const [error, setError] = useState(null); + const source = attachment?.source; + if (source === undefined) return label; + if (source.kind === 'url') { + return ( +
        + {label} + + ); + } + const download = async (): Promise => { + setDownloading(true); + setError(null); + try { + const blob = await fetchTranscriptAttachment({ + baseUrl, + token: config.token.trim() || undefined, + sessionId, + source, + }); + const href = URL.createObjectURL(blob); + const link = document.createElement('a'); + link.href = href; + link.download = attachment?.name ?? source.fileId; + link.click(); + setTimeout(() => { + URL.revokeObjectURL(href); + }, 0); + } catch (error) { + setError(error instanceof Error ? error.message : String(error)); + } finally { + setDownloading(false); + } + }; + return ( + + ); +} + +function FrameView({ + frame, + tasks, + interactions, + attachments, +}: { + frame: TranscriptFrame; + tasks: ReadonlyMap; + interactions: ReadonlyMap; + attachments: ReadonlyMap; +}) { + switch (frame.kind) { + case 'text': { + const chips = + frame.attachmentIds !== undefined && frame.attachmentIds.length > 0 ? ( + + ) : null; + const taskBadge = + frame.taskId !== undefined ? ( +
        + + task: {frame.taskId} + {tasks.get(frame.taskId) !== undefined ? ` (${tasks.get(frame.taskId)!.state})` : ''} + +
        + ) : null; + const bubble = + frame.role === 'user' ? ( +
        +
        + {frame.text} +
        +
        + ) : ( +
        + {frame.text} +
        + ); + return ( + <> + {taskBadge} + {chips} + {bubble} + + ); + } + case 'thinking': + return ( +
        + {frame.text} +
        + ); + case 'tool': + return ; + case 'notice': + return ; + } +} + +function ToolFrameView({ + frame, + tasks, + interactions, +}: { + frame: ToolCallFrame; + tasks: ReadonlyMap; + interactions: ReadonlyMap; +}) { + const task = frame.taskId !== undefined ? tasks.get(frame.taskId) : undefined; + // The interaction anchored at this call (via approvalId, or by scanning the + // entity's toolCallId for requests that predate the back-link). const linked = [...interactions.values()].filter( (interaction) => - interaction.interaction_id === call.approval_id || - interaction.tool_call_id === call.tool_call_id, + interaction.interactionId === frame.approvalId || interaction.toolCallId === frame.toolCallId, ); return (
        tool - {call.name} - {call.tool_call_id} - {call.view !== undefined && call.view !== call.name ? ( - view: {call.view} + {frame.name} + {frame.toolCallId} + {frame.view !== undefined && frame.view !== frame.name ? ( + view: {frame.view} ) : null} - {call.agent_refs?.map((ref) => ( - - agent: {ref.agent_id} + {frame.agentRefs?.map((ref) => ( + + agent: {ref.agentId} ))} - {task !== undefined ? task: {task.status} : null} - {call.todo_id !== undefined ? ( - todo: {call.todo_id} + {task !== undefined ? task: {task.state} : null} + {frame.todoId !== undefined ? ( + todo: {frame.todoId} ) : null}
        - {call.input !== undefined ? ( - typeof call.input === 'string' ? ( + {frame.input !== undefined ? ( + typeof frame.input === 'string' ? (
        -            {call.input}
        +            {frame.input}
                   
        ) : ( - + ) - ) : call.input_text !== undefined && call.input_text !== '' ? ( -
        -          {call.input_text}
        -        
        ) : null} - {call.output !== undefined ? ( - typeof call.output === 'string' ? ( + {frame.output !== undefined ? ( + typeof frame.output === 'string' ? (
        -            {call.output}
        +            {frame.output}
                   
        ) : ( - + ) - ) : task !== undefined && task.output_tail !== '' ? ( + ) : task !== undefined && task.outputTail !== '' ? (
        -          {task.output_tail}
        +          {task.outputTail}
                 
        ) : null} - {call.error !== undefined && call.error !== call.output ? ( -
        {call.error}
        - ) : null} - {call.progress !== undefined ? ( -
        - progress ({call.progress.kind}):{' '} - {call.progress.text ?? (call.progress.percent !== undefined ? `${call.progress.percent}%` : call.progress.custom_kind ?? '')} -
        + {frame.error !== undefined && frame.error !== frame.output ? ( +
        {frame.error}
        ) : null} {linked.map((interaction) => ( - + ))}
        ); } -// ---------------------------------------------------------------- interactions - function InteractionEntityView({ interaction, nested, }: { - interaction: InteractionMessage; + interaction: TranscriptInteraction; nested?: boolean; }) { const { baseUrl, config } = useConnection(); const sessionId = useContext(SessionContext); const [busy, setBusy] = useState(false); const [respondError, setRespondError] = useState(null); - /** Question answers in progress: question id → selected option labels. */ + /** Question answers in progress: question text → selected option labels. */ const [selections, setSelections] = useState>>({}); - /** Question free-text ("Other") input: question id → draft. */ + /** Question free-text ("Other") input: question text → draft. */ const [others, setOthers] = useState>>({}); - const pending = interaction.status === 'pending'; - const questionRequest = interaction.kind === 'question' ? interaction.request : undefined; + const pending = interaction.state === 'pending'; + const questionRequest = + interaction.interactionKind === 'question' + ? (interaction.request as QuestionRequest | undefined) + : undefined; const api = { baseUrl, token: config.token, sessionId }; const run = (fn: () => Promise): void => { @@ -986,45 +1161,41 @@ function InteractionEntityView({ }; const decide = (decision: 'approved' | 'rejected'): void => { - run(() => decideApproval(api, interaction.interaction_id, decision)); + run(() => decideApproval(api, interaction.interactionId, decision)); }; - const toggleOption = (question: InteractionQuestionItem, label: string): void => { + const toggleOption = (question: QuestionItem, label: string): void => { setSelections((prev) => { - const current = prev[question.id] ?? []; + const current = prev[question.question] ?? []; const next = - question.multi_select === true + question.multiSelect === true ? current.includes(label) ? current.filter((item) => item !== label) : [...current, label] : current.includes(label) ? [] : [label]; - return { ...prev, [question.id]: next }; + return { ...prev, [question.question]: next }; }); }; const submitAnswers = (): void => { const answers: Record = {}; - for (const question of questionRequest?.questions ?? []) { - const selected = selections[question.id] ?? []; + for (const [index, question] of (questionRequest?.questions ?? []).entries()) { + const selected = selections[question.question] ?? []; const optionIds = selected.flatMap((label) => { - const match = question.options.find((option) => option.label === label); - return match === undefined ? [] : [match.id]; + const optionIndex = question.options.findIndex((option) => option.label === label); + return optionIndex < 0 ? [] : [`opt_${index}_${optionIndex}`]; }); - const other = (others[question.id] ?? '').trim(); + const other = (others[question.question] ?? '').trim(); if (other !== '' && optionIds.length > 0) { - answers[question.id] = { - kind: 'multi_with_other', - option_ids: optionIds, - other_text: other, - }; + answers[`q_${index}`] = { kind: 'multi_with_other', option_ids: optionIds, other_text: other }; } else if (other !== '') { - answers[question.id] = { kind: 'other', text: other }; - } else if (optionIds.length > 1 || (question.multi_select === true && optionIds.length > 0)) { - answers[question.id] = { kind: 'multi', option_ids: optionIds }; + answers[`q_${index}`] = { kind: 'other', text: other }; + } else if (optionIds.length > 1 || (question.multiSelect === true && optionIds.length > 0)) { + answers[`q_${index}`] = { kind: 'multi', option_ids: optionIds }; } else if (optionIds.length === 1) { - answers[question.id] = { kind: 'single', option_id: optionIds[0]! }; + answers[`q_${index}`] = { kind: 'single', option_id: optionIds[0]! }; } } // Mirror the TUI adapter: no answers at all dismisses the question. @@ -1032,11 +1203,11 @@ function InteractionEntityView({ dismiss(); return; } - run(() => answerQuestion(api, interaction.interaction_id, answers, 'enter')); + run(() => answerQuestion(api, interaction.interactionId, answers, 'enter')); }; const dismiss = (): void => { - run(() => dismissQuestion(api, interaction.interaction_id)); + run(() => dismissQuestion(api, interaction.interactionId)); }; return ( @@ -1046,16 +1217,13 @@ function InteractionEntityView({ }`} >
        - {interaction.kind} - {interaction.status} - tool: {interaction.tool_call_id} + {interaction.interactionKind} + {interaction.state} + tool: {interaction.toolCallId}
        - {interaction.request !== undefined && questionRequest === undefined ? ( - - ) : null} - {questionRequest !== undefined && !pending ? : null} + {interaction.request !== undefined ? : null} {interaction.response !== undefined ? : null} - {pending && interaction.kind === 'approval' ? ( + {pending && interaction.interactionKind === 'approval' ? (
        decide('approved')} disabled={busy}> Approve @@ -1068,14 +1236,14 @@ function InteractionEntityView({ {pending && questionRequest !== undefined ? (
        {questionRequest.questions.map((question) => ( -
        +
        {question.header ?? question.question}
        {question.options.map((option) => { - const selected = (selections[question.id] ?? []).includes(option.label); + const selected = (selections[question.question] ?? []).includes(option.label); return (
        @@ -1120,112 +1288,20 @@ function InteractionEntityView({ ); } -// ---------------------------------------------------------------- state entities - -function SystemMarkerView({ message }: { message: SystemMessage }) { +function NoticeFrameView({ frame }: { frame: NoticeFrame }) { + const tone = + frame.level === 'error' + ? 'bg-red-950/50 text-red-400' + : frame.level === 'warning' + ? 'bg-amber-950/40 text-amber-300' + : 'bg-neutral-900/60 text-neutral-400'; return ( -
        -
        -
        - system({message.subtype}) - {message.system_id} - {message.at !== undefined ? {relTime(Date.parse(message.at))} : null} -
        -
        - {message.payload !== undefined ? : null} +
        + {frame.source !== undefined ? ( + [{frame.source}] + ) : null} + {frame.message} + {frame.detail !== undefined ? : null}
        ); } - -function TaskCard({ task }: { task: TaskMessage }) { - const failed = - task.status === 'failed' || task.status === 'timed_out' || task.status === 'lost'; - return ( -
        -
        - - task: {task.kind} - - {task.description ?? task.task_id} - - {task.status} - {task.detached ? ' (detached)' : ''} - - {task.child_agent_id !== undefined ? ( - agent: {task.child_agent_id} - ) : null} -
        - {task.output_tail !== '' ? ( -
        -          {task.output_tail}
        -        
        - ) : null} - {task.error !== undefined ? ( -
        -          {task.error}
        -        
        - ) : null} - {task.result_summary !== undefined ? ( -
        {task.result_summary}
        - ) : null} -
        - ); -} - -function TodoCard({ todo }: { todo: TodoMessage }) { - return ( -
        -
        todo (latest)
        - {todo.items.map((entry, i) => ( -
        - - {entry.status === 'done' ? '✔' : entry.status === 'in_progress' ? '◐' : '□'} - - - {entry.title} - -
        - ))} -
        - ); -} - -function SessionStateBadges({ sessionState }: { sessionState: SessionStateMessage }) { - return ( - <> - {sessionState.pending_interaction !== undefined && - sessionState.pending_interaction !== 'none' ? ( - {sessionState.pending_interaction} - ) : null} - {sessionState.model !== undefined ? {sessionState.model} : null} - {sessionState.permission !== undefined ? ( - perm: {sessionState.permission} - ) : null} - {sessionState.modes?.plan !== undefined ? plan mode : null} - {sessionState.modes?.swarm !== undefined ? swarm : null} - {sessionState.goal !== undefined ? ( - - goal: {sessionState.goal.status} - - ) : null} - {sessionState.context_tokens !== undefined ? ( - - ctx {sessionState.context_tokens} - {sessionState.max_context_tokens !== undefined - ? `/${sessionState.max_context_tokens}` - : ''} - - ) : null} - - ); -} diff --git a/apps/kimi-inspect/src/components/Inspector.tsx b/apps/kimi-inspect/src/components/Inspector.tsx index e8cbf7268..1f9ccd1ee 100644 --- a/apps/kimi-inspect/src/components/Inspector.tsx +++ b/apps/kimi-inspect/src/components/Inspector.tsx @@ -21,8 +21,7 @@ import { serviceByName } from '../channel'; import { useConnection } from '../connection'; import { type AnyService } from '../panels'; import { fetchAgentRuntimeBinding } from '../snapshots/api'; -import { fetchFullHistory } from '../transcript/api'; -import { projectPlans, type PlanInfo } from '../transcript/plan'; +import { fetchTranscriptPlan, type TranscriptPlanInfo } from '../transcript/api'; import { ActionButton, Badge, ErrorLine } from '../ui'; import { ScopePanels } from './ServicePanels'; @@ -176,21 +175,20 @@ export function Inspector({ } // --------------------------------------------------------------------------- -// Plan lookup — derived from the message stream (`GET /sessions/{id}/history` -// full read + client-side `projectPlans`): the reviewed plan of one -// ExitPlanMode tool call, found by tool_call_id (copy it from a tool frame in -// the chat view), or every plan of the agent. Read-only, fetched on demand -// like everything else here. +// Plan lookup — `GET /api/v1/sessions/{id}/transcript/plan`: the reviewed plan +// of one ExitPlanMode tool call, queried by tool_call_id (copy it from a tool +// frame in the chat view). Read-only, fetched on demand like everything else +// here. // --------------------------------------------------------------------------- function PlanCard({ sessionId, agentId }: { sessionId: string; agentId: string }) { const { baseUrl, config } = useConnection(); const [toolCallId, setToolCallId] = useState(''); - const [result, setResult] = useState(null); + const [result, setResult] = useState(null); const [error, setError] = useState(null); const [loading, setLoading] = useState(false); - // A plan belongs to one agent's timeline — stale results from another + // A plan belongs to one agent's transcript — stale results from another // session/agent are misleading, so reset on switch. useEffect(() => { setResult(null); @@ -202,14 +200,16 @@ function PlanCard({ sessionId, agentId }: { sessionId: string; agentId: string } try { setError(null); const token = config.token.trim(); - const messages = await fetchFullHistory({ - baseUrl, - token: token === '' ? undefined : token, - sessionId, - agentId, - }); const id = toolCallId.trim(); - setResult(projectPlans(messages, id === '' ? undefined : id)); + setResult( + await fetchTranscriptPlan({ + baseUrl, + token: token === '' ? undefined : token, + sessionId, + agentId, + toolCallId: id === '' ? undefined : id, + }), + ); } catch (error) { setResult(null); setError(error); @@ -256,7 +256,7 @@ function PlanCard({ sessionId, agentId }: { sessionId: string; agentId: string } ); } -function PlanEntryView({ entry }: { entry: PlanInfo }) { +function PlanEntryView({ entry }: { entry: TranscriptPlanInfo }) { const review = entry.review; return (
        diff --git a/apps/kimi-inspect/src/components/audit/AuditPanel.tsx b/apps/kimi-inspect/src/components/audit/AuditPanel.tsx index 318e443be..7dbdea727 100644 --- a/apps/kimi-inspect/src/components/audit/AuditPanel.tsx +++ b/apps/kimi-inspect/src/components/audit/AuditPanel.tsx @@ -1,32 +1,32 @@ /** * Audit panel — the `Audit` tab of the chat view's right dock - * (`RightPanel`): replays how the visible `ChatStore` was built, entry by - * entry. It used to be a standalone column docked inside the chat view. + * (`RightPanel`): replays how the visible `TranscriptChatStore` was built, + * entry by entry. It used to be a standalone column docked inside the chat + * view. * - * - Timeline (draggable slider + entry list): every REST history page, - * every WS message (entity / delta / state), and every channel event - * (subscribe ack, reconnect, catch-up fallback, prompt/cancel), with its - * timestamp. + * - Timeline (draggable slider + entry list): every REST page load, WS + * frame (`transcript.ops` / `transcript.reset`), loss signal, and user + * action the channel processed, with its timestamp. * - Detail tabs for the selected entry: `Diff` (structural diff vs the * previous entry — added/modified/removed colored), `State` (the full - * store state at that point: entity timeline plus the interaction / - * task / todo / session.state entities), `Event` (the raw REST - * request/response or WS payload). + * store state at that point, goal/plan/todos included), `Event` (the + * raw REST request/response or WS payload). */ +import { EMPTY_AGENT_STATE } from '@moonshot-ai/transcript'; import { useEffect, useMemo, useRef, useState, useSyncExternalStore } from 'react'; import { diffValue, type DiffNode } from '../../audit/diff'; import { serializeState } from '../../audit/serialize'; import type { AuditEntry, AuditTrail } from '../../audit/trail'; import { tailTrunc } from '../../audit/truncate'; -import { EMPTY_CHAT_STATE } from '../../transcript/store'; import { Badge } from '../../ui'; import { plainNode, StateTree } from './StateTree'; -const KIND_TONE: Record = { +const KIND_TONE: Record = { rest: 'sky', - ws: 'green', + ops: 'green', + reset: 'violet', event: 'neutral', }; @@ -41,14 +41,15 @@ function EventJson({ entry }: { entry: AuditEntry }) { const payload = useMemo(() => { switch (entry.kind) { case 'rest': + return { request: entry.request, appliedAs: entry.appliedAs, response: entry.page }; + case 'ops': + return { envelopeAt: entry.envelopeAt, delivery: entry.delivery, ops: entry.ops }; + case 'reset': return { - request: entry.request, - mode: entry.mode, - messageCount: entry.messageCount, - inFlight: entry.inFlight, + envelopeAt: entry.envelopeAt, + hasMoreOlder: entry.hasMoreOlder, + snapshot: entry.snapshot, }; - case 'ws': - return entry.message; case 'event': return { event: entry.event, detail: entry.detail }; } @@ -88,7 +89,7 @@ export function AuditPanel({ trail }: { trail: AuditTrail }) { if (current === undefined || tab === 'event') return null; if (tab === 'state') return plainNode(serializeState(current.state)); const prevState = - currentPos > 0 ? (entries[currentPos - 1]?.state ?? EMPTY_CHAT_STATE) : EMPTY_CHAT_STATE; + currentPos > 0 ? (entries[currentPos - 1]?.state ?? EMPTY_AGENT_STATE) : EMPTY_AGENT_STATE; return diffValue(serializeState(prevState), serializeState(current.state)); }, [current, currentPos, entries, tab]); @@ -129,7 +130,7 @@ export function AuditPanel({ trail }: { trail: AuditTrail }) {
        {entries.length === 0 ? (
        - Nothing recorded yet — the initial history load is still running. + Nothing recorded yet — the initial transcript load is still running.
        ) : null} {entries.map((entry, pos) => ( diff --git a/apps/kimi-inspect/src/components/audit/StateTree.test.tsx b/apps/kimi-inspect/src/components/audit/StateTree.test.tsx index 70766c639..8ce34226a 100644 --- a/apps/kimi-inspect/src/components/audit/StateTree.test.tsx +++ b/apps/kimi-inspect/src/components/audit/StateTree.test.tsx @@ -7,92 +7,41 @@ * 2. Whole-subtree adds expand into fully fielded, indented tree rows. */ -import type { AssistantMessage, StepMessage, TurnMessage } from '@moonshot-ai/kap-server/protocol'; +import { EMPTY_AGENT_STATE, type AgentState, type TranscriptTurn } from '@moonshot-ai/transcript'; import { renderToStaticMarkup } from 'react-dom/server'; import { describe, expect, it } from 'vitest'; import { diffValue } from '../../audit/diff'; import { serializeState } from '../../audit/serialize'; -import { EMPTY_CHAT_STATE, type ChatState } from '../../transcript/store'; import { plainNode, StateTree } from './StateTree'; -const T0 = Date.parse('2026-01-01T00:00:00.000Z'); -let tick = 0; - -function ts(): number { - tick += 1; - return T0 + tick * 1000; -} - -function turnMsg(n: number, text?: string): TurnMessage { +function turn(n: number, prompt: string): TranscriptTurn { return { - type: 'turn', - session_id: 's1', - agent_id: 'main', - timestamp: ts(), - turn_id: `t${n}`, + kind: 'turn', + turnId: `t${n}`, ordinal: n, - status: 'completed', + state: 'completed', origin: { kind: 'user' }, - user_message_id: text, + prompt, + steps: [], }; } -function stepMsg(stepId: string): StepMessage { - return { - type: 'step', - session_id: 's1', - agent_id: 'main', - timestamp: ts(), - step_id: stepId, - turn_id: stepId.split('.')[0] ?? 't0', - ordinal: Number(stepId.split('.')[1] ?? '1'), - status: 'running', - }; -} - -function assistantMsg(stepId: string, text: string): AssistantMessage { - return { - type: 'assistant', - session_id: 's1', - agent_id: 'main', - timestamp: ts(), - message_id: `${stepId}.a0`, - turn_id: stepId.split('.')[0] ?? 't0', - step_id: stepId, - status: 'streaming', - text, - }; -} - -type FlatMessage = TurnMessage | StepMessage | AssistantMessage; - -function stateWithTimeline(items: readonly FlatMessage[]): ChatState { - return { - ...EMPTY_CHAT_STATE, - entries: items.map((message) => ({ - key: - message.type === 'turn' - ? `turn:${message.turn_id}` - : message.type === 'step' - ? `step:${message.step_id}` - : `assistant:${message.message_id}`, - message, - })), - }; +function stateWith(items: readonly TranscriptTurn[]): AgentState { + return { ...EMPTY_AGENT_STATE, items }; } describe('StateTree', () => { it('collapses unchanged subtrees instead of dumping compact JSON', () => { - const t0 = turnMsg(0, 'PROMPT_ZERO'); - const prev = stateWithTimeline([t0, turnMsg(1, 'PROMPT_ONE')]); - const next: ChatState = stateWithTimeline([t0, turnMsg(1, 'PROMPT_ONE_V2')]); + const t0 = turn(0, 'PROMPT_ZERO'); + const prev = stateWith([t0, turn(1, 'PROMPT_ONE')]); + const next: AgentState = { ...prev, items: [t0, turn(1, 'PROMPT_ONE_V2')] }; const html = renderToStaticMarkup( , ); // No one-line JSON blob anywhere. - expect(html).not.toContain('{"type"'); - // The unchanged turn t0 stays folded: its marker is not rendered… + expect(html).not.toContain('{"kind"'); + // The unchanged turn t0 stays folded: its prompt is not rendered… expect(html).not.toContain('PROMPT_ZERO'); // …while the modified turn opens and shows old → new. expect(html).toContain('PROMPT_ONE_V2'); @@ -102,31 +51,39 @@ describe('StateTree', () => { it('expands whole-subtree adds into full field rows (all keys, no JSON dump)', () => { const root = diffValue( - serializeState(EMPTY_CHAT_STATE), - serializeState(stateWithTimeline([turnMsg(0, 'HELLO')])), + serializeState(EMPTY_AGENT_STATE), + serializeState(stateWith([turn(0, 'HELLO')])), ); const html = renderToStaticMarkup(); - expect(html).not.toContain('{"type"'); - for (const field of ['turn_id', 'ordinal', 'status', 'origin', 'timestamp', 'agent_id']) { + expect(html).not.toContain('{"kind"'); + for (const field of ['turnId', 'ordinal', 'state', 'origin', 'prompt', 'steps']) { expect(html).toContain(field); } expect(html).toContain('HELLO'); }); it('expands added subtrees with id-based keys and renders closing braces', () => { + const withSteps: TranscriptTurn = { + ...turn(0, 'Q'), + steps: [ + { + kind: 'step', + stepId: 't0.1', + turnId: 't0', + ordinal: 1, + state: 'running', + frames: [{ kind: 'thinking', frameId: 't0.1.f1', text: 'hmm' }], + }, + ], + }; const html = renderToStaticMarkup( , ); // Array children are keyed by their ids, not #indices. expect(html).toContain('t0.1'); - expect(html).toContain('t0.1.a0'); + expect(html).toContain('t0.1.f1'); expect(html).not.toContain('#0'); // Open containers end with an explicit closing brace row. expect(html).toContain(']'); @@ -135,15 +92,12 @@ describe('StateTree', () => { it('plain state mode opens to defaultDepth and shows all top-level fields', () => { const html = renderToStaticMarkup( - , + , ); - for (const field of ['timeline', 'interactions', 'tasks', 'todos', 'hasMoreOlder']) { + for (const field of ['items', 'tasks', 'interactions', 'todos', 'meta', 'hasMoreOlder']) { expect(html).toContain(field); } - expect(html).not.toContain('{"type"'); + expect(html).not.toContain('{"kind"'); }); it('collapses multiline strings into a hover-preview button', () => { diff --git a/apps/kimi-inspect/src/components/audit/StateTree.tsx b/apps/kimi-inspect/src/components/audit/StateTree.tsx index 66fd4f69e..f85ca1718 100644 --- a/apps/kimi-inspect/src/components/audit/StateTree.tsx +++ b/apps/kimi-inspect/src/components/audit/StateTree.tsx @@ -1,7 +1,7 @@ /** * Diff-aware state tree for the audit panel. * - * Renders a serialized `ChatState` (see `audit/serialize.ts`) as a + * Renders a serialized `AgentState` (see `audit/serialize.ts`) as a * collapsible tree, colored by the structural diff against the previous * trail entry: added = green, removed = red + strikethrough, modified = * amber (`old → new` on leaves). Every field is rendered — long strings diff --git a/apps/kimi-inspect/src/components/di/DiEventsPanel.tsx b/apps/kimi-inspect/src/components/di/DiEventsPanel.tsx index 790dc6f38..c89714ced 100644 --- a/apps/kimi-inspect/src/components/di/DiEventsPanel.tsx +++ b/apps/kimi-inspect/src/components/di/DiEventsPanel.tsx @@ -120,6 +120,17 @@ function busRows(bus: DebugEventBusSnapshot) { />, ); } + for (const agentId of Object.keys(bus.perAgent).toSorted()) { + const count = bus.perAgent[agentId] ?? 0; + rows.push( + , + ); + } return rows; } diff --git a/apps/kimi-inspect/src/transcript/api.ts b/apps/kimi-inspect/src/transcript/api.ts index 907456c82..7aa54cee8 100644 --- a/apps/kimi-inspect/src/transcript/api.ts +++ b/apps/kimi-inspect/src/transcript/api.ts @@ -1,127 +1,282 @@ /** - * REST client for the history endpoint of the message protocol: - * `GET {baseUrl}/api/v1/sessions/{sessionId}/history`. + * REST client for the transcript page endpoint: + * `GET {baseUrl}/api/v1/sessions/{sessionId}/transcript`. * - * This is the ONLY source of persisted (completed) timeline state: the - * initial load fetches the newest page, "load earlier" pages further with a - * `before_turn` cursor, and a reconnect catch-up pages forward from an - * `after_step` cursor. The in-flight step's entities arrive over the WS - * recovery payload instead (idempotent replace-by-id at the seam). + * This is the ONLY source of full transcript state: the initial load fetches + * the newest page, a full refresh re-reads page by page from the tail + * backwards, and "load earlier" pages further with a `before_turn` cursor. + * (The WS channel, by contrast, carries incremental `transcript.ops` only.) * - * Pages are flat entity-message slices (`{ messages, in_flight? }`, - * time-ordered, same schemas as the WS stream). There is deliberately no - * has-more flag: a page shorter than `page_size` is the end in that - * direction, an empty page is definitive. + * Pages are turn-segment slices keyed by a turn-id cursor (`before_turn` + * pages towards older turns). The response is validated with the + * package-owned `transcriptResponseSchema` — the schema is the single source + * of truth for the wire shape, local code consumes the domain model types. */ -import { historyResponseSchema, type HistoryMessage } from '@moonshot-ai/kap-server/protocol'; +import { + transcriptOpsCatchupResponseSchema, + transcriptPlanResponseSchema, + transcriptResponseSchema, + type AttachmentSource, + type TranscriptAttachment, + type TranscriptInteraction, + type TranscriptItem, + type TranscriptMeta, + type TranscriptOperation, + type TranscriptTask, + type TranscriptTodo, +} from '@moonshot-ai/transcript'; -export const HISTORY_PAGE_SIZE = 500; +type StoredAttachmentSource = Extract; -export interface HistoryPage { - readonly messages: readonly HistoryMessage[]; - /** Current streaming position of a live session; absent for idle/cold ones. */ - readonly inFlight?: { turn_id: string; step_id: string }; -} - -export interface FetchHistoryPageOptions { +export interface FetchTranscriptAttachmentOptions { readonly baseUrl: string; readonly token?: string; readonly sessionId: string; - readonly agentId: string; - /** Turn-id cursor; fetches up to `pageSize` messages strictly older than that turn. */ - readonly beforeTurn?: string; - /** Step-id cursor; fetches up to `pageSize` messages strictly newer than that step. */ - readonly afterStep?: string; - readonly pageSize?: number; - /** Injectable for tests. */ + readonly source: StoredAttachmentSource; readonly fetchImpl?: typeof fetch; } -export async function fetchHistoryPage(opts: FetchHistoryPageOptions): Promise { - const params = new URLSearchParams({ - agent_id: opts.agentId, - page_size: String(opts.pageSize ?? HISTORY_PAGE_SIZE), - }); - if (opts.beforeTurn !== undefined) params.set('before_turn', opts.beforeTurn); - if (opts.afterStep !== undefined) params.set('after_step', opts.afterStep); +export function transcriptAttachmentUrl( + baseUrl: string, + sessionId: string, + source: AttachmentSource, +): string { + if (source.kind === 'url') return source.url; + if (source.kind === 'file') { + return `${baseUrl}/api/v1/files/${encodeURIComponent(source.fileId)}`; + } + return `${baseUrl}/api/v1/sessions/${encodeURIComponent(sessionId)}/media/${encodeURIComponent(source.fileId)}`; +} + +export async function fetchTranscriptAttachment( + opts: FetchTranscriptAttachmentOptions, +): Promise { const headers: Record = {}; if (opts.token !== undefined && opts.token !== '') { headers['authorization'] = `Bearer ${opts.token}`; } const doFetch = opts.fetchImpl ?? fetch; const res = await doFetch( - `${opts.baseUrl}/api/v1/sessions/${encodeURIComponent(opts.sessionId)}/history?${params.toString()}`, + transcriptAttachmentUrl(opts.baseUrl, opts.sessionId, opts.source), + { headers }, + ); + if (!res.ok) throw new Error(`attachment download failed (${res.status})`); + return res.blob(); +} + +/** One transcript page as merged by the chat store. */ +export interface TranscriptPage { + readonly items: readonly TranscriptItem[]; + /** `has_more` in the query direction — more older turns exist. */ + readonly hasMoreOlder: boolean; + /** Global, unpaginated state (every response carries the current whole). */ + readonly tasks: readonly TranscriptTask[]; + readonly interactions: readonly TranscriptInteraction[]; + readonly attachments: readonly TranscriptAttachment[]; + readonly todos: readonly TranscriptTodo[]; + readonly meta: TranscriptMeta; + readonly pendingInteractions: readonly string[]; + /** Op-batch watermark (state includes every batch with seq <= N); absent on legacy servers. */ + readonly seq?: number | undefined; +} + +/** One turn per page: fine-grained paging — the viewport grows a turn at a time. */ +export const TRANSCRIPT_PAGE_SIZE = 1; + +export interface FetchTranscriptPageOptions { + readonly baseUrl: string; + readonly token?: string | undefined; + readonly sessionId: string; + readonly agentId: string; + /** Turn-id cursor; when set, fetches up to `pageSize` segments strictly older. */ + readonly beforeTurn?: string | undefined; + readonly pageSize?: number | undefined; + /** Injectable for tests. */ + readonly fetchImpl?: typeof fetch; +} + +export async function fetchTranscriptPage( + opts: FetchTranscriptPageOptions, +): Promise { + const params = new URLSearchParams({ + agent_id: opts.agentId, + page_size: String(opts.pageSize ?? TRANSCRIPT_PAGE_SIZE), + }); + if (opts.beforeTurn !== undefined) params.set('before_turn', opts.beforeTurn); + const headers: Record = {}; + if (opts.token !== undefined && opts.token !== '') { + headers['authorization'] = `Bearer ${opts.token}`; + } + const doFetch = opts.fetchImpl ?? fetch; + const res = await doFetch( + `${opts.baseUrl}/api/v1/sessions/${encodeURIComponent(opts.sessionId)}/transcript?${params.toString()}`, { headers }, ); const envelope = (await res.json()) as { code: number; msg: string; data: unknown }; if (envelope.code !== 0) { - throw new Error(`history page failed (${envelope.code}): ${envelope.msg}`); + throw new Error(`transcript page failed (${envelope.code}): ${envelope.msg}`); } - const parsed = historyResponseSchema.safeParse(envelope.data); + const parsed = transcriptResponseSchema.safeParse(envelope.data); if (!parsed.success) { - throw new Error('history page: unexpected response shape'); + throw new Error('transcript page: unexpected response shape'); } - return { messages: parsed.data.messages, inFlight: parsed.data.in_flight }; + const items: readonly TranscriptItem[] = parsed.data.items; + const tasks: readonly TranscriptTask[] = parsed.data.tasks; + const interactions: readonly TranscriptInteraction[] = parsed.data.interactions; + const attachments: readonly TranscriptAttachment[] = parsed.data.attachments; + const todos: readonly TranscriptTodo[] = parsed.data.todos; + return { + items, + hasMoreOlder: parsed.data.has_more, + tasks, + interactions, + attachments, + todos, + meta: parsed.data.meta, + pendingInteractions: parsed.data.pending_interactions, + seq: parsed.data.seq, + }; +} + +// ---------------------------------------------------------------- ops catch-up + +/** One sequenced op batch from the catch-up endpoint. */ +export interface TranscriptOpBatch { + readonly seq: number; + readonly ops: readonly TranscriptOperation[]; +} + +export interface TranscriptOpsCatchup { + readonly batches: readonly TranscriptOpBatch[]; + readonly latestSeq: number; + /** False = the journal cannot cover `sinceSeq`; the caller must full-refresh. */ + readonly complete: boolean; +} + +export interface FetchTranscriptOpsOptions { + readonly baseUrl: string; + readonly token?: string | undefined; + readonly sessionId: string; + readonly agentId: string; + /** Return journaled batches with seq strictly greater than this watermark. */ + readonly sinceSeq: number; + /** Injectable for tests. */ + readonly fetchImpl?: typeof fetch; } /** - * Read the agent's WHOLE history (newest page + `before_turn` paging to the - * beginning) in timeline order. On-demand debug reads only (plan lookup) — - * the chat channel pages lazily instead. + * Point-to-point catch-up: `GET .../transcript/ops?agent_id=&since_seq=N`. + * Available on sequenced servers; a 404/envelope error means the server + * predates the endpoint and the caller should fall back to a full refresh. */ -export async function fetchFullHistory(opts: { - readonly baseUrl: string; - readonly token?: string; - readonly sessionId: string; - readonly agentId: string; - readonly pageSize?: number; - readonly fetchImpl?: typeof fetch; -}): Promise { - const pageSize = opts.pageSize ?? HISTORY_PAGE_SIZE; - const messages: HistoryMessage[] = []; - const seen = new Set(); - let beforeTurn: string | undefined; - for (;;) { - const page = await fetchHistoryPage({ ...opts, beforeTurn, pageSize }); - if (page.messages.length === 0) break; - const fresh: HistoryMessage[] = []; - for (const message of page.messages) { - const key = historyEntityKey(message); - if (seen.has(key)) continue; - seen.add(key); - fresh.push(message); - } - messages.unshift(...fresh); - if (page.messages.length < pageSize) break; - const oldest = page.messages - .map((message) => ('turn_id' in message ? message.turn_id : undefined)) - .find((turnId) => turnId !== undefined); - if (oldest === undefined || oldest === beforeTurn) break; - beforeTurn = oldest; +export async function fetchTranscriptOps( + opts: FetchTranscriptOpsOptions, +): Promise { + const params = new URLSearchParams({ + agent_id: opts.agentId, + since_seq: String(opts.sinceSeq), + }); + const headers: Record = {}; + if (opts.token !== undefined && opts.token !== '') { + headers['authorization'] = `Bearer ${opts.token}`; } - return messages; + const doFetch = opts.fetchImpl ?? fetch; + const res = await doFetch( + `${opts.baseUrl}/api/v1/sessions/${encodeURIComponent(opts.sessionId)}/transcript/ops?${params.toString()}`, + { headers }, + ); + const envelope = (await res.json()) as { code: number; msg: string; data: unknown }; + if (envelope.code !== 0) { + throw new Error(`transcript ops failed (${envelope.code}): ${envelope.msg}`); + } + const parsed = transcriptOpsCatchupResponseSchema.safeParse(envelope.data); + if (!parsed.success) { + throw new Error('transcript ops: unexpected response shape'); + } + return { + batches: parsed.data.batches, + latestSeq: parsed.data.latest_seq, + complete: parsed.data.complete, + }; } -function historyEntityKey(message: HistoryMessage): string { - switch (message.type) { - case 'turn': - return `turn:${message.turn_id}`; - case 'step': - return `step:${message.step_id}`; - case 'user': - case 'assistant': - case 'thinking': - return `${message.type}:${message.message_id}`; - case 'tool_call': - return `tool_call:${message.tool_call_id}`; - case 'system': - return `system:${message.system_id}`; - case 'interaction': - return `interaction:${message.interaction_id}`; - case 'task': - return `task:${message.task_id}`; - case 'todo': - return `todo:${message.todo_id}`; - } +// ------------------------------------------------------------------ plan lookup + +/** The review round-trip of one ExitPlanMode call, from the plan endpoint. */ +export interface TranscriptPlanReview { + readonly state: 'pending' | 'approved' | 'rejected' | 'cancelled'; + readonly selectedOption?: string | undefined; + readonly feedback?: string | undefined; +} + +/** Plan information of one ExitPlanMode tool call (`GET .../transcript/plan`). */ +export interface TranscriptPlanInfo { + readonly toolCallId: string; + readonly turnId: string; + /** Which fact the content was projected from server-side. */ + readonly source: 'interaction' | 'display' | 'output'; + readonly plan: string; + readonly path?: string | undefined; + readonly options?: readonly { label: string; description?: string | undefined }[] | undefined; + readonly review?: TranscriptPlanReview | undefined; +} + +export interface FetchTranscriptPlanOptions { + readonly baseUrl: string; + readonly token?: string | undefined; + readonly sessionId: string; + readonly agentId: string; + /** Narrow the read to one ExitPlanMode call; omitted lists every plan of the agent. */ + readonly toolCallId?: string | undefined; + /** Injectable for tests. */ + readonly fetchImpl?: typeof fetch; +} + +/** + * Plan lookup: `GET .../transcript/plan?agent_id=[&tool_call_id=]`, in + * timeline order. With `toolCallId` set, a 40416 envelope means the tool + * call does not exist or is not an ExitPlanMode call (the message says + * which). + */ +export async function fetchTranscriptPlan( + opts: FetchTranscriptPlanOptions, +): Promise { + const params = new URLSearchParams({ agent_id: opts.agentId }); + if (opts.toolCallId !== undefined && opts.toolCallId !== '') { + params.set('tool_call_id', opts.toolCallId); + } + const headers: Record = {}; + if (opts.token !== undefined && opts.token !== '') { + headers['authorization'] = `Bearer ${opts.token}`; + } + const doFetch = opts.fetchImpl ?? fetch; + const res = await doFetch( + `${opts.baseUrl}/api/v1/sessions/${encodeURIComponent(opts.sessionId)}/transcript/plan?${params.toString()}`, + { headers }, + ); + const envelope = (await res.json()) as { code: number; msg: string; data: unknown }; + if (envelope.code !== 0) { + throw new Error(`transcript plan failed (${envelope.code}): ${envelope.msg}`); + } + const parsed = transcriptPlanResponseSchema.safeParse(envelope.data); + if (!parsed.success) { + throw new Error('transcript plan: unexpected response shape'); + } + return parsed.data.plans.map((entry) => ({ + toolCallId: entry.tool_call_id, + turnId: entry.turn_id, + source: entry.source, + plan: entry.plan, + path: entry.path, + options: entry.options, + review: + entry.review === undefined + ? undefined + : { + state: entry.review.state, + selectedOption: entry.review.selected_option, + feedback: entry.review.feedback, + }, + })); } diff --git a/apps/kimi-inspect/src/transcript/channel.ts b/apps/kimi-inspect/src/transcript/channel.ts deleted file mode 100644 index 8e4b2f861..000000000 --- a/apps/kimi-inspect/src/transcript/channel.ts +++ /dev/null @@ -1,271 +0,0 @@ -/** - * Chat channel — owns the `ChatStore`, the `AuditTrail`, the REST history - * pipeline and the `/api/v3/ws` subscription for one (session, agent) pair. - * - * Recovery per the protocol, all of it converging through idempotent - * replace-by-id upserts (no buffering, no cursors beyond the two REST - * page cursors, no reset frames): - * - * - Initial load / full refresh: newest REST history page (`replace`), - * then re-cover the previously loaded window with `before_turn` pages. - * - Live + recovery payload: every WS message is applied to the store - * as it lands; recovery and live are the same path. - * - Subscribe ack (initial and every reconnect): `after_step` catch-up - * anchored at the newest TERMINAL step (the server answers with the - * slice after that step's last entity, so the step that was streaming - * at disconnect is re-read in full; overlap is idempotent). An empty - * catch-up is verified against the newest page — if the anchor itself - * is gone (undo/clear while disconnected), fall back to a full refresh. - * - `in_flight` on a history response means the WS replay re-sends that - * step's entities from the start; nothing to do but let them land. - */ - -import type { WsLikeCtor } from '../channel/wsLike'; -import { AuditTrail } from '../audit/trail'; -import { fetchHistoryPage, HISTORY_PAGE_SIZE, type HistoryPage } from './api'; -import { - ChatStore, - newestTerminalStepId, - oldestTurnId, - recoverLoadedWindow, -} from './store'; -import { ChatWs } from './ws'; - -export interface ChatChannelOptions { - readonly baseUrl: string; - readonly token?: string; - readonly sessionId: string; - readonly agentId: string; - readonly pageSize?: number; - readonly WebSocketImpl?: WsLikeCtor; - readonly fetchImpl?: typeof fetch; - readonly reconnectDelayMs?: number; - readonly notifyIntervalMs?: number; - /** Fired before a replace-mode refresh drops the current window (scroll anchor hook). */ - readonly onWillReplace?: () => void; - readonly onLoaded?: () => void; - readonly onLoadError?: (error: unknown) => void; -} - -export class ChatChannel { - readonly store: ChatStore; - readonly trail: AuditTrail; - - private readonly opts: ChatChannelOptions; - private readonly pageSize: number; - private readonly ws: ChatWs; - private queue: Promise = Promise.resolve(); - private refreshQueued = false; - private catchUpQueued = false; - private disposed = false; - - constructor(opts: ChatChannelOptions) { - this.opts = opts; - this.pageSize = opts.pageSize ?? HISTORY_PAGE_SIZE; - this.store = new ChatStore({ notifyIntervalMs: opts.notifyIntervalMs }); - this.trail = new AuditTrail(); - this.ws = new ChatWs({ - url: opts.baseUrl, - token: opts.token, - sessionId: opts.sessionId, - agentIds: [opts.agentId], - WebSocketImpl: opts.WebSocketImpl, - reconnectDelayMs: opts.reconnectDelayMs, - handlers: { - onMessage: (message) => { - this.store.applyLive(message); - this.trail.recordWs(message, this.store.getState()); - }, - onAck: (code, msg) => { - if (code === 0) { - this.trail.recordEvent('ack', undefined, this.store.getState()); - this.scheduleCatchUp(); - return; - } - this.trail.recordEvent('ack-error', msg, this.store.getState()); - this.opts.onLoadError?.(new Error(`subscribe rejected (${code}): ${msg ?? ''}`)); - }, - onProtocolError: (code, msg) => { - this.trail.recordEvent('protocol-error', `${code}: ${msg}`, this.store.getState()); - }, - onInvalidFrame: () => { - this.trail.recordEvent('invalid-frame', undefined, this.store.getState()); - }, - onReconnectScheduled: () => { - this.trail.recordEvent('reconnect', undefined, this.store.getState()); - }, - }, - }); - } - - /** Kick the initial load (the socket is already connecting). */ - start(): void { - this.scheduleRefresh(); - } - - /** Page one older slice into the window (`before_turn`); rejects on fetch failure. */ - async loadOlder(): Promise { - const oldest = oldestTurnId(this.store.getState().entries); - if (oldest === undefined) return; - const page = await this.fetchPage({ beforeTurn: oldest }); - if (this.disposed) return; - this.store.applyHistoryPage(page.messages, 'prepend'); - this.store.setHasMoreOlder(page.messages.length === this.pageSize); - this.trail.recordRest( - { beforeTurn: oldest, pageSize: this.pageSize }, - 'prepend', - page.messages.length, - page.inFlight, - this.store.getState(), - ); - } - - /** Force a WS reconnect (debug/testing): the ack re-triggers the after_step catch-up. */ - reconnect(delayMs = 0): void { - this.ws.reconnect(delayMs); - } - - close(): void { - this.disposed = true; - this.ws.close(); - this.store.flushNotify(); - } - - private scheduleRefresh(): void { - if (this.refreshQueued) return; - this.refreshQueued = true; - this.enqueue(async () => { - this.refreshQueued = false; - await this.doRefresh(); - }); - } - - private scheduleCatchUp(): void { - if (this.catchUpQueued) return; - this.catchUpQueued = true; - this.enqueue(async () => { - this.catchUpQueued = false; - await this.doCatchUp(); - }); - } - - private enqueue(task: () => Promise): void { - this.queue = this.queue.then(task).catch(() => {}); - } - - private async doRefresh(): Promise { - const prevOldest = oldestTurnId(this.store.getState().entries); - if (prevOldest !== undefined) this.opts.onWillReplace?.(); - try { - const page = await this.fetchPage({}); - if (this.disposed) return; - this.store.applyHistoryPage(page.messages, 'replace'); - this.store.setHasMoreOlder(page.messages.length === this.pageSize); - this.trail.recordRest( - { pageSize: this.pageSize }, - 'replace', - page.messages.length, - page.inFlight, - this.store.getState(), - ); - await recoverLoadedWindow( - this.store, - prevOldest, - async (beforeTurn) => { - const older = await this.fetchPage({ beforeTurn }); - if (this.disposed) return []; - this.store.setHasMoreOlder(older.messages.length === this.pageSize); - return older.messages; - }, - () => this.disposed, - (beforeTurn, messages) => { - this.trail.recordRest( - { beforeTurn, pageSize: this.pageSize }, - 'prepend', - messages.length, - undefined, - this.store.getState(), - ); - }, - ); - if (!this.disposed) this.opts.onLoaded?.(); - } catch (error) { - if (!this.disposed) this.opts.onLoadError?.(error); - } - } - - private async doCatchUp(): Promise { - const anchor = newestTerminalStepId(this.store.getState().entries); - if (anchor === undefined) { - this.scheduleRefresh(); - return; - } - let cursor = anchor; - for (;;) { - let page: HistoryPage; - try { - page = await this.fetchPage({ afterStep: cursor }); - } catch (error) { - if (!this.disposed) this.opts.onLoadError?.(error); - return; - } - if (this.disposed) return; - if (page.messages.length === 0) { - let probe: HistoryPage; - try { - probe = await this.fetchPage({}); - } catch { - return; - } - if (this.disposed) return; - if (!anchorAliveInPage(probe.messages, cursor)) { - this.trail.recordEvent( - 'catchup-refresh', - `anchor ${cursor} no longer exists`, - this.store.getState(), - ); - this.scheduleRefresh(); - } - return; - } - this.store.applyHistoryPage(page.messages, 'tail'); - this.trail.recordRest( - { afterStep: cursor, pageSize: this.pageSize }, - 'tail', - page.messages.length, - page.inFlight, - this.store.getState(), - ); - if (page.messages.length < this.pageSize) return; - const next = newestTerminalStepId(this.store.getState().entries); - if (next === undefined || next === cursor) return; - cursor = next; - } - } - - private fetchPage(cursor: { - beforeTurn?: string; - afterStep?: string; - pageSize?: number; - }): Promise { - return fetchHistoryPage({ - baseUrl: this.opts.baseUrl, - token: this.opts.token, - sessionId: this.opts.sessionId, - agentId: this.opts.agentId, - beforeTurn: cursor.beforeTurn, - afterStep: cursor.afterStep, - pageSize: cursor.pageSize ?? this.pageSize, - fetchImpl: this.opts.fetchImpl, - }); - } -} - -function anchorAliveInPage(messages: HistoryPage['messages'], cursor: string): boolean { - const cursorTurn = cursor.split('.')[0]!; - return messages.some( - (message) => - ('step_id' in message && message.step_id === cursor) || - ('turn_id' in message && message.turn_id === cursorTurn), - ); -} diff --git a/apps/kimi-inspect/src/transcript/plan.ts b/apps/kimi-inspect/src/transcript/plan.ts deleted file mode 100644 index ab2144e9a..000000000 --- a/apps/kimi-inspect/src/transcript/plan.ts +++ /dev/null @@ -1,189 +0,0 @@ -/** - * Plan derivation from the message stream — the new-protocol replacement - * for the removed `GET /transcript/plan` endpoint. - * - * Under the message protocol there is no plan lookup endpoint; the data - * lives in the timeline itself: the EnterPlanMode/ExitPlanMode tool calls, - * the approval interaction that carries the review (its - * `request.tool_input_display` holds the `plan_review` display payload with - * the plan content, path and offered options; its `response` holds the - * decision, selected label and feedback), and the `system(plan.revision)` - * version marker (its payload path points at the plan document). - * `session.state.modes.plan` mirrors the current mode/revision over the WS - * but is not part of REST history, so derivation here runs purely over a - * history message list (in timeline order). - */ - -import type { - HistoryMessage, - InteractionMessage, - ToolCallMessage, -} from '@moonshot-ai/kap-server/protocol'; - -export interface PlanReview { - readonly state: 'pending' | 'approved' | 'rejected' | 'cancelled'; - readonly selectedOption?: string; - readonly feedback?: string; -} - -export interface PlanInfo { - readonly toolCallId: string; - readonly turnId: string; - /** Which message the content was derived from. */ - readonly source: 'interaction' | 'display' | 'output'; - readonly plan: string; - readonly path?: string; - readonly options?: readonly { label: string; description?: string }[]; - readonly review?: PlanReview; -} - -export function projectPlans( - messages: readonly HistoryMessage[], - toolCallId?: string, -): PlanInfo[] { - const interactions: InteractionMessage[] = []; - const revisionPaths: string[] = []; - for (const message of messages) { - if (message.type === 'interaction') interactions.push(message); - if (message.type === 'system' && message.subtype === 'plan.revision') { - const path = readRevisionPath(message.payload); - if (path !== undefined) revisionPaths.push(path); - } - } - const plans: PlanInfo[] = []; - for (const message of messages) { - if (message.type !== 'tool_call' || message.name !== 'ExitPlanMode') continue; - if (toolCallId !== undefined && message.tool_call_id !== toolCallId) continue; - const info = projectPlanCall(message, interactions); - if (info === undefined) continue; - plans.push( - info.path === undefined && revisionPaths.length > 0 - ? { ...info, path: revisionPaths.at(-1) } - : info, - ); - } - return plans; -} - -function projectPlanCall( - call: ToolCallMessage, - interactions: readonly InteractionMessage[], -): PlanInfo | undefined { - const interaction = interactions.find( - (candidate) => - candidate.kind === 'approval' && - (candidate.interaction_id === call.approval_id || - (call.approval_id === undefined && candidate.tool_call_id === call.tool_call_id)), - ); - const review = readPlanReview(interaction); - if (interaction !== undefined && interaction.kind === 'approval') { - const fromInteraction = readPlanReviewDisplay(interaction.request?.tool_input_display); - if (fromInteraction !== undefined) { - return { - toolCallId: call.tool_call_id, - turnId: call.turn_id, - source: 'interaction', - ...fromInteraction, - review, - }; - } - } - const fromDisplay = readPlanReviewDisplay(call.display); - if (fromDisplay !== undefined) { - return { - toolCallId: call.tool_call_id, - turnId: call.turn_id, - source: 'display', - ...fromDisplay, - review, - }; - } - const fromOutput = parsePlanFromOutput(call.output); - if (fromOutput !== undefined) { - return { - toolCallId: call.tool_call_id, - turnId: call.turn_id, - source: 'output', - ...fromOutput, - review, - }; - } - return undefined; -} - -function readPlanReview(interaction: InteractionMessage | undefined): PlanReview | undefined { - if (interaction === undefined || interaction.kind !== 'approval') return undefined; - const state = interaction.status; - if (state !== 'pending' && state !== 'approved' && state !== 'rejected' && state !== 'cancelled') { - return undefined; - } - const response = interaction.response; - const selected = - typeof response?.selected_label === 'string' && response.selected_label.length > 0 - ? response.selected_label - : undefined; - const feedback = - typeof response?.feedback === 'string' && response.feedback.length > 0 - ? response.feedback - : undefined; - return { state, selectedOption: selected, feedback }; -} - -interface PlanReviewDisplayInfo { - readonly plan: string; - readonly path?: string; - readonly options?: readonly { label: string; description?: string }[]; -} - -function readPlanReviewDisplay(display: unknown): PlanReviewDisplayInfo | undefined { - if (display === null || typeof display !== 'object') return undefined; - const d = display as { kind?: unknown; plan?: unknown; path?: unknown; options?: unknown }; - if (d.kind !== 'plan_review' || typeof d.plan !== 'string' || d.plan.trim().length === 0) { - return undefined; - } - const options = Array.isArray(d.options) - ? d.options - .map((option: unknown): { label: string; description?: string } | null => { - if (option === null || typeof option !== 'object') return null; - const o = option as { label?: unknown; description?: unknown }; - if (typeof o.label !== 'string' || o.label.length === 0) return null; - return { - label: o.label, - description: typeof o.description === 'string' ? o.description : undefined, - }; - }) - .filter((o): o is { label: string; description?: string } => o !== null) - : undefined; - return { - plan: d.plan, - path: typeof d.path === 'string' ? d.path : undefined, - options: options !== undefined && options.length > 0 ? options : undefined, - }; -} - -function readRevisionPath(payload: unknown): string | undefined { - if (payload === null || typeof payload !== 'object') return undefined; - const path = (payload as { path?: unknown }).path; - return typeof path === 'string' && path.length > 0 ? path : undefined; -} - -const PLAN_SAVED_TO_MARKER = 'Plan saved to: '; -const PLAN_BODY_MARKERS = ['## Approved Plan:\n', '## Plan (auto-approved, not user-reviewed):\n']; - -function parsePlanFromOutput(output: unknown): { plan: string; path?: string } | undefined { - if (typeof output !== 'string') return undefined; - let path: string | undefined; - for (const line of output.split('\n')) { - if (line.startsWith(PLAN_SAVED_TO_MARKER)) { - path = line.slice(PLAN_SAVED_TO_MARKER.length).trim() || undefined; - break; - } - } - for (const marker of PLAN_BODY_MARKERS) { - const index = output.indexOf(marker); - if (index === -1) continue; - const plan = output.slice(index + marker.length); - if (plan.trim().length > 0) return { plan, path }; - } - return undefined; -} diff --git a/apps/kimi-inspect/src/transcript/store.ts b/apps/kimi-inspect/src/transcript/store.ts index f5ad59ca6..6b9ed94fc 100644 --- a/apps/kimi-inspect/src/transcript/store.ts +++ b/apps/kimi-inspect/src/transcript/store.ts @@ -1,185 +1,115 @@ /** - * Per-(session, agent) chat state for the message protocol v3. + * Per-(session, agent) transcript state for the chat view. * - * The store is a deliberately thin reflection of the wire: every entity - * message upserts by (type, own id) with its content fields as the - * authoritative whole (replace-by-id), the delta family - * (`assistant.delta` / `thinking.delta` / `tool_call.delta`) appends to the - * already-existing entity (an entity always precedes its deltas on the - * stream; an orphan delta is dropped — the entity's next upsert carries the - * cumulative content anyway), and `tool.progress` patches the entity's - * latest-progress field. Recovery payloads and live traffic are applied - * through the exact same path — idempotent overwrite makes them - * indistinguishable, so there is no reset/buffer/cursor machinery at all. + * A thin observable wrapper over the package's L1 convergence path + * (`applyOperation` on an `AgentState`) — the reducer is NOT re-implemented + * here. State arrives through exactly two channels: * - * `system(undo)` / `system(clear)` land on the timeline in place AND - * truncate it: every entry whose own id is in `payload.removed_ids` is - * dropped together with its subtree (all entries carrying that turn_id), - * and interactions anchored at a removed tool call are cascaded out. + * - REST pages (`applyPage`): the only source of FULL state. A `replace` + * page (initial load / full refresh) is the newest slice and replaces + * local state wholesale, globals included; a non-replace page is an older + * slice fetched with `before_turn` and prepended ahead of the loaded + * window (items only — globals stay with the fresher live state). + * - WS delta ops (`applyOps`): incremental `transcript.ops` only. Ops are + * idempotent upserts plus offset-placed appends, so ops buffered while a + * REST refresh is in flight converge when flushed onto the fresh pages. * - * State entities have one channel each: `interaction` / `task` / `todo` - * upsert into keyed maps, `session.state` replaces the single latest - * snapshot. Global messages (workspace/session/config/…) are not consumed - * by this store. - * - * An upsert whose `timestamp` is strictly older than the held entity's is - * skipped: a REST page folded before a live update must not rewind it. An - * upsert without a timestamp (an unread `user` message) is stale once the - * held entity carries one — unread precedes read, never the reverse — yet - * always outranks the page when a replace window carries live-only entries - * over. - * - * Notifications are trailing-edge throttled (`notifyIntervalMs`) so a - * per-token delta stream does not become a per-token React render; state - * reads (`getState`) always see the latest applied message regardless. + * `onGap` surfaces `append` placement gaps so the caller can trigger a full + * REST refresh (the WS channel carries no snapshots to fall back on). */ -import type { - AssistantMessage, - HistoryMessage, - InteractionMessage, - ServerMessage, - SessionStateMessage, - SystemMessage, - TaskMessage, - ThinkingMessage, - TodoMessage, - ToolCallMessage, -} from '@moonshot-ai/kap-server/protocol'; +import { + applyOperation, + EMPTY_AGENT_STATE, + itemId, + type AgentState, + type TranscriptItem, + type TranscriptOperation, +} from '@moonshot-ai/transcript'; -export type TimelineMessage = - | Extract - | Extract - | Extract - | AssistantMessage - | ThinkingMessage - | ToolCallMessage - | SystemMessage; +import type { TranscriptPage } from './api'; -export interface TimelineEntry { - readonly key: string; - readonly message: TimelineMessage; +export function countTurns(items: readonly TranscriptItem[]): number { + let count = 0; + for (const item of items) if (item.kind === 'turn') count += 1; + return count; } -export interface ChatState { - readonly entries: readonly TimelineEntry[]; - readonly interactions: ReadonlyMap; - readonly tasks: ReadonlyMap; - readonly todos: ReadonlyMap; - readonly sessionState: SessionStateMessage | undefined; - readonly hasMoreOlder: boolean; -} - -export const EMPTY_CHAT_STATE: ChatState = { - entries: [], - interactions: new Map(), - tasks: new Map(), - todos: new Map(), - sessionState: undefined, - hasMoreOlder: false, -}; - -export type HistoryPageMode = 'replace' | 'prepend' | 'tail'; - -export function timelineKeyOf(message: TimelineMessage): string { - switch (message.type) { - case 'turn': - return `turn:${message.turn_id}`; - case 'step': - return `step:${message.step_id}`; - case 'user': - case 'assistant': - case 'thinking': - return `${message.type}:${message.message_id}`; - case 'tool_call': - return `tool_call:${message.tool_call_id}`; - case 'system': - return `system:${message.system_id}`; - } -} - -function ownIdOf(message: TimelineMessage): string { - switch (message.type) { - case 'turn': - return message.turn_id; - case 'step': - return message.step_id; - case 'user': - case 'assistant': - case 'thinking': - return message.message_id; - case 'tool_call': - return message.tool_call_id; - case 'system': - return message.system_id; - } -} - -export function turnIdOf(message: TimelineMessage): string | undefined { - return message.type === 'system' ? undefined : message.turn_id; -} - -export function oldestTurnId(entries: readonly TimelineEntry[]): string | undefined { - for (const entry of entries) { - const turnId = turnIdOf(entry.message); - if (turnId !== undefined) return turnId; - } +export function oldestTurnId(items: readonly TranscriptItem[]): string | undefined { + for (const item of items) if (item.kind === 'turn') return item.turnId; return undefined; } -export function hasTurnId(entries: readonly TimelineEntry[], turnId: string): boolean { - return entries.some((entry) => turnIdOf(entry.message) === turnId); -} - -export function newestTerminalStepId(entries: readonly TimelineEntry[]): string | undefined { - for (let i = entries.length - 1; i >= 0; i -= 1) { - const message = entries[i]!.message; - if (message.type === 'step' && message.status !== 'running') return message.step_id; - } - return undefined; +export function hasTurnId(items: readonly TranscriptItem[], turnId: string): boolean { + return items.some((item) => item.kind === 'turn' && item.turnId === turnId); } /** - * Re-cover a previously loaded window after a replace-mode refresh: page - * backwards until `prevOldestTurnId` is loaded again (a count-based stop - * silently drops the window's head when new turns arrived meanwhile). Stops - * at the oldest available page, on a no-progress page, or when `isDisposed`. + * Re-cover a previously loaded window after a full refresh: page backwards + * until `prevOldestTurnId` (the window's oldest turn before the refresh) is + * loaded again. A count-based stop silently drops the window's head when new + * turns arrived meanwhile (the server window shifted, so the same count no + * longer reaches as far back). Stops at the oldest available page + * (`hasMoreOlder` false), on a no-progress page, or when `isDisposed`. */ export async function recoverLoadedWindow( - store: ChatStore, + store: TranscriptChatStore, prevOldestTurnId: string | undefined, - fetchPage: (beforeTurn: string) => Promise, + fetchPage: (beforeTurn: string) => Promise, isDisposed: () => boolean, - onPageApplied?: (beforeTurn: string, messages: readonly HistoryMessage[]) => void, + onPageApplied?: (page: TranscriptPage) => void, ): Promise { if (prevOldestTurnId === undefined) return; - while (!hasTurnId(store.getState().entries, prevOldestTurnId) && store.getState().hasMoreOlder) { - const oldest = oldestTurnId(store.getState().entries); + while (!hasTurnId(store.getState().items, prevOldestTurnId) && store.getState().hasMoreOlder) { + const oldest = oldestTurnId(store.getState().items); if (oldest === undefined) break; - const before = store.getState().entries.length; + const before = countTurns(store.getState().items); const page = await fetchPage(oldest); if (isDisposed()) return; - store.applyHistoryPage(page, 'prepend'); - onPageApplied?.(oldest, page); - if (store.getState().entries.length === before) break; + store.applyPage(page); + onPageApplied?.(page); + if (countTurns(store.getState().items) === before) break; } } -export class ChatStore { - private state: ChatState = EMPTY_CHAT_STATE; +/** + * Serialize refresh-style triggers: at most one run in flight; a trigger that + * arrives while a run is in flight is coalesced into exactly one follow-up run + * (so a subscribe ack landing mid-load still produces a post-load reconcile + * instead of being dropped). + */ +export function createCoalescedRunner(run: () => Promise): () => void { + let running = false; + let queued = false; + const kick = (): void => { + if (running) { + queued = true; + return; + } + running = true; + void run().finally(() => { + running = false; + if (queued) { + queued = false; + kick(); + } + }); + }; + return kick; +} + +export class TranscriptChatStore { + private state: AgentState = EMPTY_AGENT_STATE; private readonly listeners = new Set<() => void>(); - private readonly notifyIntervalMs: number; - private notifyTimer: ReturnType | undefined; - private dirty = false; - constructor(opts?: { notifyIntervalMs?: number }) { - this.notifyIntervalMs = opts?.notifyIntervalMs ?? 80; - } + /** Called when an `append` op could not be placed — the caller should refresh. */ + onGap: (() => void) | undefined; - getState(): ChatState { + getState(): AgentState { return this.state; } + /** `useSyncExternalStore`-compatible subscribe. */ subscribe = (listener: () => void): (() => void) => { this.listeners.add(listener); return () => { @@ -187,313 +117,59 @@ export class ChatStore { }; }; - setHasMoreOlder(flag: boolean): void { - if (this.state.hasMoreOlder === flag) return; - this.state = { ...this.state, hasMoreOlder: flag }; - this.scheduleNotify(); - } - /** - * Merge one REST history page. `replace` installs the page as the whole - * window (entries absent from it are dropped, except ones newer than the - * page's newest timestamp — live traffic that outran the fetch); - * `prepend` inserts the older slice ahead of the window (deduped by key); - * `tail` upserts the catch-up slice in page order. system(undo/clear) - * messages inside a page truncate exactly like live ones. + * Merge one REST page. With `replace`, the page is the newest slice and + * becomes the whole state (initial load / full refresh); otherwise it is an + * older slice prepended ahead of the window (deduped by item id), updating + * only `items` and `hasMoreOlder`. */ - applyHistoryPage(messages: readonly HistoryMessage[], mode: HistoryPageMode): void { - if (mode === 'replace') { - const pageMax = maxTimestamp(messages); - const carried = pageMax === undefined ? [] : this.newerThan(this.state.entries, pageMax); - const next: TimelineEntry[] = []; - const seen = new Set(); - for (const message of messages) { - if (!isTimelineMessage(message)) { - this.applyStateMessage(message); - continue; - } - const key = timelineKeyOf(message); - if (seen.has(key)) continue; - seen.add(key); - next.push(this.preferHeld(key, message)); - } - for (const entry of carried) { - if (!seen.has(entry.key)) next.push(entry); - } - this.state = { ...this.state, entries: next }; - this.applyTruncations(messages); - this.scheduleNotify(); + applyPage(page: TranscriptPage, opts?: { replace?: boolean }): void { + if (opts?.replace === true) { + this.state = { + items: page.items, + tasks: new Map(page.tasks.map((task) => [task.taskId, task])), + interactions: new Map( + page.interactions.map((interaction) => [interaction.interactionId, interaction]), + ), + attachments: new Map( + page.attachments.map((attachment) => [attachment.attachmentId, attachment]), + ), + todos: new Map(page.todos.map((todo) => [todo.todoId, todo])), + // The page contract carries no prompt slice yet; prompt.upsert ops + // still accumulate through the shared reducer between refreshes. + prompts: new Map(), + meta: page.meta, + pendingInteractions: new Set(page.pendingInteractions), + hasMoreOlder: page.hasMoreOlder, + }; + this.notify(); return; } - if (mode === 'prepend') { - const existing = new Set(this.state.entries.map((entry) => entry.key)); - const fresh: TimelineEntry[] = []; - for (const message of messages) { - if (!isTimelineMessage(message)) { - this.applyStateMessage(message); - continue; - } - const key = timelineKeyOf(message); - if (existing.has(key)) continue; - existing.add(key); - fresh.push({ key, message }); - } - if (fresh.length > 0) { - this.state = { ...this.state, entries: [...fresh, ...this.state.entries] }; - } - this.applyTruncations(messages); - this.scheduleNotify(); - return; - } - for (const message of messages) this.applyEntity(message); + const existing = new Set(this.state.items.map(itemId)); + const fresh = page.items.filter((item) => !existing.has(itemId(item))); + if (fresh.length === 0 && page.hasMoreOlder === this.state.hasMoreOlder) return; + this.state = { + ...this.state, + items: [...fresh, ...this.state.items], + hasMoreOlder: page.hasMoreOlder, + }; + this.notify(); } - /** Apply one live (or recovery) WS message; recovery and live share this path. */ - applyLive(message: ServerMessage): void { - switch (message.type) { - case 'assistant.delta': { - this.patchText(`assistant:${message.message_id}`, message.text); - return; - } - case 'thinking.delta': { - this.patchText(`thinking:${message.message_id}`, message.text); - return; - } - case 'tool_call.delta': { - this.patchToolCall(message.tool_call_id, (call) => ({ - ...call, - input_text: (call.input_text ?? '') + message.input_text, - })); - return; - } - case 'tool.progress': { - this.patchToolCall(message.tool_call_id, (call) => ({ ...call, progress: message.progress })); - return; - } - case 'interaction': - case 'task': - case 'todo': - case 'session.state': { - this.applyStateMessage(message); - return; - } - case 'turn': - case 'step': - case 'user': - case 'assistant': - case 'thinking': - case 'tool_call': - case 'system': { - this.applyEntity(message); - return; - } - default: - return; + /** Apply incremental WS ops; notifies once per changed batch. */ + applyOps(ops: readonly TranscriptOperation[]): void { + let changed = false; + for (const op of ops) { + const result = applyOperation(this.state, op); + if (result.gap !== undefined) this.onGap?.(); + if (!result.changed) continue; + this.state = result.state; + changed = true; } + if (changed) this.notify(); } - /** Flush a pending throttled notification (teardown / explicit sync point). */ - flushNotify(): void { - if (this.notifyTimer !== undefined) { - clearTimeout(this.notifyTimer); - this.notifyTimer = undefined; - } - if (!this.dirty) return; - this.dirty = false; + private notify(): void { for (const listener of this.listeners) listener(); } - - private applyEntity(message: HistoryMessage): void { - if (!isTimelineMessage(message)) { - this.applyStateMessage(message); - return; - } - const key = timelineKeyOf(message); - const index = this.state.entries.findIndex((entry) => entry.key === key); - if (index < 0) { - this.state = { ...this.state, entries: [...this.state.entries, { key, message }] }; - } else { - const held = this.state.entries[index]!.message; - if (held === message || isStaleUpsert(held.timestamp, message.timestamp)) return; - const entries = [...this.state.entries]; - entries[index] = { key, message }; - this.state = { ...this.state, entries }; - } - if (message.type === 'system' && (message.subtype === 'undo' || message.subtype === 'clear')) { - this.truncate(message); - } - this.scheduleNotify(); - } - - private applyStateMessage( - message: InteractionMessage | TaskMessage | TodoMessage | SessionStateMessage, - ): void { - switch (message.type) { - case 'interaction': { - const held = this.state.interactions.get(message.interaction_id); - if (held === message) return; - if (held !== undefined && held.timestamp > message.timestamp) return; - const interactions = new Map([ - ...this.state.interactions, - [message.interaction_id, message] as const, - ]); - this.state = { ...this.state, interactions }; - break; - } - case 'task': { - const held = this.state.tasks.get(message.task_id); - if (held === message) return; - if (held !== undefined && held.timestamp > message.timestamp) return; - const tasks = new Map([...this.state.tasks, [message.task_id, message] as const]); - this.state = { ...this.state, tasks }; - break; - } - case 'todo': { - const held = this.state.todos.get(message.todo_id); - if (held === message) return; - if (held !== undefined && held.timestamp > message.timestamp) return; - const todos = new Map([...this.state.todos, [message.todo_id, message] as const]); - this.state = { ...this.state, todos }; - break; - } - case 'session.state': { - const held = this.state.sessionState; - if (held === message) return; - if (held !== undefined && held.timestamp > message.timestamp) return; - this.state = { ...this.state, sessionState: message }; - break; - } - } - this.scheduleNotify(); - } - - private patchText(key: string, text: string): void { - this.patchEntry(key, (message) => { - if (message.type !== 'assistant' && message.type !== 'thinking') return message; - return { ...message, text: message.text + text }; - }); - } - - private patchToolCall( - toolCallId: string, - patch: (call: ToolCallMessage) => ToolCallMessage, - ): void { - this.patchEntry(`tool_call:${toolCallId}`, (message) => { - if (message.type !== 'tool_call') return message; - return patch(message); - }); - } - - private patchEntry(key: string, patch: (message: TimelineMessage) => TimelineMessage): void { - const index = this.state.entries.findIndex((entry) => entry.key === key); - if (index < 0) return; - const current = this.state.entries[index]!; - const next = patch(current.message); - if (next === current.message) return; - const entries = [...this.state.entries]; - entries[index] = { key, message: next }; - this.state = { ...this.state, entries }; - this.scheduleNotify(); - } - - private applyTruncations(messages: readonly HistoryMessage[]): void { - for (const message of messages) { - if (message.type === 'system' && (message.subtype === 'undo' || message.subtype === 'clear')) { - this.truncate(message); - } - } - } - - private truncate(message: SystemMessage): void { - if (message.subtype !== 'undo' && message.subtype !== 'clear') return; - const removed = new Set(message.payload.removed_ids); - if (removed.size === 0) return; - const removedToolCalls = new Set(); - const entries = this.state.entries.filter((entry) => { - const current = entry.message; - if (removed.has(ownIdOf(current))) { - if (current.type === 'tool_call') removedToolCalls.add(current.tool_call_id); - return false; - } - if (current.type !== 'system' && current.turn_id !== undefined && removed.has(current.turn_id)) { - if (current.type === 'tool_call') removedToolCalls.add(current.tool_call_id); - return false; - } - return true; - }); - let interactions = this.state.interactions; - if (removedToolCalls.size > 0) { - const next = new Map(interactions); - for (const [id, interaction] of next) { - if (interaction.tool_call_id !== undefined && removedToolCalls.has(interaction.tool_call_id)) { - next.delete(id); - } - } - interactions = next; - } - this.state = { ...this.state, entries, interactions }; - } - - private preferHeld(key: string, message: TimelineMessage): TimelineEntry { - const held = this.state.entries.find((entry) => entry.key === key); - if (held !== undefined && isStaleUpsert(held.message.timestamp, message.timestamp)) return held; - return { key, message }; - } - - private newerThan(entries: readonly TimelineEntry[], timestamp: number): TimelineEntry[] { - return entries.filter( - (entry) => entry.message.timestamp === undefined || entry.message.timestamp > timestamp, - ); - } - - private scheduleNotify(): void { - this.dirty = true; - if (this.notifyIntervalMs <= 0) { - this.flushNotify(); - return; - } - if (this.notifyTimer !== undefined) return; - this.notifyTimer = setTimeout(() => { - this.notifyTimer = undefined; - this.flushNotify(); - }, this.notifyIntervalMs); - this.notifyTimer.unref?.(); - } -} - -function isTimelineMessage( - message: HistoryMessage | ServerMessage, -): message is TimelineMessage { - switch (message.type) { - case 'turn': - case 'step': - case 'user': - case 'assistant': - case 'thinking': - case 'tool_call': - case 'system': - return true; - default: - return false; - } -} - -function maxTimestamp(messages: readonly HistoryMessage[]): number | undefined { - let max: number | undefined; - for (const message of messages) { - if (message.timestamp === undefined) continue; - if (max === undefined || message.timestamp > max) max = message.timestamp; - } - return max; -} - -/** - * Same-entity version ordering for the idempotent upsert path. Only `user` - * messages can lack a timestamp (unread = not persisted yet), and the - * unread → read transition is one-way, so an untimestamped upsert is stale - * whenever the held entity already carries one. - */ -function isStaleUpsert(held: number | undefined, incoming: number | undefined): boolean { - if (incoming === undefined) return held !== undefined; - return held !== undefined && held > incoming; } diff --git a/apps/kimi-inspect/src/transcript/transcript.test.ts b/apps/kimi-inspect/src/transcript/transcript.test.ts index 07dba90cc..507d5c15e 100644 --- a/apps/kimi-inspect/src/transcript/transcript.test.ts +++ b/apps/kimi-inspect/src/transcript/transcript.test.ts @@ -1,180 +1,117 @@ /** - * Message-protocol glue-layer tests — the app's own REST/WS/store/channel - * plumbing for the v3 protocol. The wire schemas themselves are covered by - * kap-server's contract tests and are intentionally not re-tested here. + * Transcript glue-layer tests — the app's own REST/WS/store plumbing. The L2 + * reducer semantics themselves are covered by `@moonshot-ai/transcript`'s own + * test suite and are intentionally not re-tested here. */ -import type { - AssistantMessage, - HistoryMessage, - InteractionMessage, - ServerMessage, - StepMessage, - SystemMessage, - TaskMessage, - ToolCallMessage, - TurnMessage, - UserMessage, -} from '@moonshot-ai/kap-server/protocol'; +import { + itemId, + type StepHeader, + type TranscriptOperation, + type TranscriptTurn, + type TurnHeader, + type TurnState, +} from '@moonshot-ai/transcript'; import { describe, expect, it, vi } from 'vitest'; import type { WsLike } from '../channel/wsLike'; -import { fetchFullHistory, fetchHistoryPage } from './api'; -import { ChatChannel } from './channel'; -import { projectPlans } from './plan'; import { - ChatStore, - newestTerminalStepId, + fetchTranscriptAttachment, + fetchTranscriptOps, + fetchTranscriptPage, + fetchTranscriptPlan, + transcriptAttachmentUrl, + type TranscriptPage, +} from './api'; +import { + countTurns, + createCoalescedRunner, oldestTurnId, recoverLoadedWindow, - type TimelineEntry, + TranscriptChatStore, } from './store'; -import { ChatWs } from './ws'; +import { TranscriptWs } from './ws'; // ---------------------------------------------------------------- fixtures -const T0 = Date.parse('2026-01-01T00:00:00.000Z'); -let tick = 0; - -function ts(offsetMs?: number): number { - tick += 1; - return T0 + tick * 1000 + (offsetMs ?? 0); +function turnHeader(n: number, state: TurnState = 'completed'): TurnHeader { + return { kind: 'turn', turnId: `t${n}`, ordinal: n, state, origin: { kind: 'user' } }; } -const base = { session_id: 's1', agent_id: 'main' } as const; - -function turnMsg(n: number, status: 'running' | 'completed' = 'completed', at?: number): TurnMessage { - return { - type: 'turn', - ...base, - timestamp: at ?? ts(), - turn_id: `t${n}`, - ordinal: n, - status, - origin: { kind: 'user' }, - }; +function turnItem(n: number): TranscriptTurn { + return { ...turnHeader(n), steps: [] }; } -function stepMsg( - stepId: string, - status: StepMessage['status'] = 'completed', - at?: number, -): StepMessage { - const turnId = stepId.split('.')[0] ?? 't1'; - const ordinal = Number(stepId.split('.')[1] ?? '1'); - return { - type: 'step', - ...base, - timestamp: at ?? ts(), - step_id: stepId, - turn_id: turnId, - ordinal, - status, - }; -} - -function userMsg(stepId: string, text: string, at?: number): UserMessage { - const turnId = stepId.split('.')[0] ?? 't1'; - return { - type: 'user', - ...base, - timestamp: at ?? ts(), - message_id: `${stepId}.u0`, - turn_id: turnId, - text: [{ type: 'text', text, meta: {} }], - status: 'read', - }; -} - -function assistantMsg( +function stepHeader(stepId: string, ordinal: number): StepHeader { + return { kind: 'step', stepId, turnId: stepId.split('.')[0] ?? 't1', ordinal, state: 'running' }; +} + +describe('transcript attachments', () => { + it('maps each attachment locator to its transport route', () => { + expect( + transcriptAttachmentUrl('http://h:1', 's 1', { kind: 'file', fileId: 'f 1' }), + ).toBe('http://h:1/api/v1/files/f%201'); + expect( + transcriptAttachmentUrl('http://h:1', 's 1', { + kind: 'session_media', + fileId: 'f 1', + }), + ).toBe('http://h:1/api/v1/sessions/s%201/media/f%201'); + expect( + transcriptAttachmentUrl('http://h:1', 's1', { + kind: 'url', + url: 'https://example.com/a.png', + }), + ).toBe('https://example.com/a.png'); + }); + + it('fetches stored attachment bytes with bearer auth', async () => { + const fetchImpl = vi.fn(async () => new Response('media-bytes', { status: 200 })); + + const blob = await fetchTranscriptAttachment({ + baseUrl: 'http://h:1', + token: 'tok', + sessionId: 's1', + source: { kind: 'session_media', fileId: 'f_1' }, + fetchImpl: fetchImpl as typeof fetch, + }); + + expect(fetchImpl).toHaveBeenCalledWith( + 'http://h:1/api/v1/sessions/s1/media/f_1', + { headers: { authorization: 'Bearer tok' } }, + ); + await expect(blob.text()).resolves.toBe('media-bytes'); + }); +}); + +const textFrameUpsert = (turnId: string, stepId: string, frameId: string, text: string) => ({ + op: 'frame.upsert' as const, + turnId, + stepId, + frame: { kind: 'text' as const, frameId, role: 'assistant' as const, text }, +}); + +const frameAppend = ( + turnId: string, stepId: string, + frameId: string, + offset: number, text: string, - status: 'streaming' | 'completed' = 'completed', - at?: number, -): AssistantMessage { - const turnId = stepId.split('.')[0] ?? 't1'; - return { - type: 'assistant', - ...base, - timestamp: at ?? ts(), - message_id: `${stepId}.a0`, - turn_id: turnId, - step_id: stepId, - status, - text, - }; -} +) => ({ + op: 'append' as const, + target: { type: 'frame' as const, turnId, stepId, frameId }, + offset, + text, +}); -function toolCallMsg( - stepId: string, - id: string, - overrides: Partial = {}, -): ToolCallMessage { - const turnId = stepId.split('.')[0] ?? 't1'; - return { - type: 'tool_call', - ...base, - timestamp: ts(), - tool_call_id: id, - turn_id: turnId, - step_id: stepId, - name: 'Bash', - status: 'running', - ...overrides, - }; -} - -function systemMsg( - subtype: SystemMessage['subtype'], - systemId: string, - payload?: unknown, -): SystemMessage { - return { - type: 'system', - ...base, - timestamp: ts(), - system_id: systemId, - subtype, - payload, - } as SystemMessage; -} - -function interactionMsg(id: string, toolCallId?: string): InteractionMessage { - return { - type: 'interaction', - ...base, - timestamp: ts(), - interaction_id: id, - kind: 'approval', - status: 'pending', - tool_call_id: toolCallId, - }; -} - -function taskMsg(id: string, status: TaskMessage['status'] = 'running'): TaskMessage { - return { - type: 'task', - ...base, - timestamp: ts(), - task_id: id, - kind: 'shell', - status, - detached: false, - output_tail: '', - }; -} - -function undoMsg(systemId: string, removedIds: readonly string[]): SystemMessage { - return systemMsg('undo', systemId, { removed_ids: [...removedIds] }); -} - -function entryKeys(entries: readonly TimelineEntry[]): string[] { - return entries.map((entry) => entry.key); -} - -function makeStore(): ChatStore { - return new ChatStore({ notifyIntervalMs: 0 }); -} +const emptyPage = { + tasks: [], + interactions: [], + attachments: [], + todos: [], + meta: {}, + pendingInteractions: [], +} as const; function okEnvelope(data: unknown) { return { code: 0, msg: 'success', data, request_id: 'r1' }; @@ -236,52 +173,42 @@ class FakeWs implements WsLike { sentFrames(): Record[] { return this.sent.map((data) => JSON.parse(data) as Record); } - - hello(): void { - this.serverFrame({ - type: 'hello', - protocol_version: '3', - server_id: 'srv', - capabilities: ['step_replay_v1'], - }); - } } -function makeWs(handlers: Partial[0]['handlers']> = {}) { +function makeWs(handlers: Partial[0]['handlers']> = {}) { const seen = { - messages: [] as ServerMessage[], - acks: [] as { code: number; msg?: string }[], - protocolErrors: [] as { code: number; msg: string }[], - invalid: 0, + ops: [] as { + agentId: string; + ops: readonly TranscriptOperation[]; + at?: string; + seq?: number; + }[], + resets: [] as { agentId: string; hasMoreOlder: boolean; at?: string; seq?: number }[], + resyncs: 0, reconnects: 0, }; - const ws = new ChatWs({ + const ws = new TranscriptWs({ url: 'http://h:1', token: 'tok', sessionId: 's1', - agentIds: ['main'], + agentId: 'main', WebSocketImpl: FakeWs, - reconnectDelayMs: 1, handlers: { - onMessage: (message) => { - seen.messages.push(message); - handlers.onMessage?.(message); + onOps: (agentId, ops, meta) => { + seen.ops.push({ agentId, ops, at: meta?.at, seq: meta?.seq }); + handlers.onOps?.(agentId, ops, meta); }, - onAck: (code, msg) => { - seen.acks.push({ code, msg }); - handlers.onAck?.(code, msg); + onReset: (agentId, _snapshot, hasMoreOlder, meta) => { + seen.resets.push({ agentId, hasMoreOlder, at: meta?.at, seq: meta?.seq }); + handlers.onReset?.(agentId, _snapshot, hasMoreOlder, meta); }, - onProtocolError: (code, msg) => { - seen.protocolErrors.push({ code, msg }); - handlers.onProtocolError?.(code, msg); + onResyncRequired: () => { + seen.resyncs += 1; + handlers.onResyncRequired?.(); }, - onInvalidFrame: () => { - seen.invalid += 1; - handlers.onInvalidFrame?.(null); - }, - onReconnectScheduled: () => { + onReconnected: () => { seen.reconnects += 1; - handlers.onReconnectScheduled?.(0); + handlers.onReconnected?.(); }, }, }); @@ -290,169 +217,416 @@ function makeWs(handlers: Partial[0]['handl // ---------------------------------------------------------------- api -describe('fetchHistoryPage', () => { +describe('fetchTranscriptPage', () => { const pageData = { - messages: [turnMsg(1)], - has_more: false, - in_flight: { turn_id: 't1', step_id: 't1.2' }, + agent_id: 'main', + items: [turnItem(1)], + has_more: true, + tasks: [ + { taskId: 'bash-1', kind: 'shell', state: 'running', detached: false, outputTail: 'x' }, + ], + interactions: [], + attachments: [], + todos: [], + meta: { activity: 'turn' }, + agents: [], + pending_interactions: ['apr-1'], + seq: 42, }; it('requests the endpoint with cursor params and bearer auth, unwraps the envelope', async () => { const { calls, fetchImpl } = fakeFetch(okEnvelope(pageData)); - const page = await fetchHistoryPage({ + const page = await fetchTranscriptPage({ baseUrl: 'http://h:1', token: 'tok', sessionId: 's 1', agentId: 'main', beforeTurn: 't5', - pageSize: 50, fetchImpl, }); expect(calls).toHaveLength(1); - expect(calls[0]!.url).toContain('/api/v1/sessions/s%201/history?'); + expect(calls[0]!.url).toContain('/api/v1/sessions/s%201/transcript?'); expect(calls[0]!.url).toContain('agent_id=main'); expect(calls[0]!.url).toContain('before_turn=t5'); - expect(calls[0]!.url).toContain('page_size=50'); + expect(calls[0]!.url).toContain('page_size=1'); expect(calls[0]!.init?.headers).toEqual({ authorization: 'Bearer tok' }); - expect(page.messages).toHaveLength(1); - expect(page.inFlight).toEqual({ turn_id: 't1', step_id: 't1.2' }); - }); - - it('sends after_step and omits unset cursors', async () => { - const { calls, fetchImpl } = fakeFetch(okEnvelope({ messages: [], has_more: false })); - await fetchHistoryPage({ - baseUrl: 'http://h:1', - sessionId: 's1', - agentId: 'main', - afterStep: 't1.3', - fetchImpl, - }); - expect(calls[0]!.url).toContain('after_step=t1.3'); - expect(calls[0]!.url).not.toContain('before_turn'); - expect(calls[0]!.init?.headers).toEqual({}); + expect(page.hasMoreOlder).toBe(true); + expect(page.items.map((item) => itemId(item))).toEqual(['t1']); + expect(page.tasks.map((task) => task.taskId)).toEqual(['bash-1']); + expect(page.meta.activity).toBe('turn'); + expect(page.pendingInteractions).toEqual(['apr-1']); + expect(page.seq).toBe(42); }); it('throws on a non-zero envelope code', async () => { const { fetchImpl } = fakeFetch({ code: 40401, msg: 'session not found', data: null }); await expect( - fetchHistoryPage({ baseUrl: 'http://h:1', sessionId: 's9', agentId: 'main', fetchImpl }), + fetchTranscriptPage({ baseUrl: 'http://h:1', sessionId: 's9', agentId: 'main', fetchImpl }), ).rejects.toThrow('session not found'); }); it('throws when the payload fails schema validation', async () => { - const { fetchImpl } = fakeFetch(okEnvelope({ messages: 'nope' })); + const { fetchImpl } = fakeFetch(okEnvelope({ agent_id: 'main', items: 'nope' })); await expect( - fetchHistoryPage({ baseUrl: 'http://h:1', sessionId: 's1', agentId: 'main', fetchImpl }), + fetchTranscriptPage({ baseUrl: 'http://h:1', sessionId: 's1', agentId: 'main', fetchImpl }), ).rejects.toThrow('unexpected response shape'); }); +}); - it('fetchFullHistory pages before_turn to the beginning and returns timeline order', async () => { - const pages: Record = { - newest: okEnvelope({ messages: [turnMsg(3), stepMsg('t3.1')], has_more: true }), - 't3': okEnvelope({ messages: [turnMsg(1), turnMsg(2)], has_more: false }), - }; - const calls: string[] = []; - const fetchImpl = (async (url: string | URL) => { - const text = String(url); - calls.push(text); - const before = /before_turn=([^&]+)/.exec(text)?.[1]; - const envelope = before === undefined ? pages['newest'] : (pages[before] ?? okEnvelope({ messages: [], has_more: false })); - return { json: async () => envelope }; - }) as unknown as typeof fetch; - const messages = await fetchFullHistory({ +// ---------------------------------------------------------------- ops catch-up + +describe('fetchTranscriptOps', () => { + const catchupData = { + agent_id: 'main', + batches: [ + { seq: 6, ops: [{ op: 'meta.merge', meta: { activity: 'turn' } }] }, + { seq: 7, ops: [{ op: 'turn.upsert', turn: turnHeader(7, 'running') }] }, + ], + latest_seq: 7, + complete: true, + }; + + it('requests the ops endpoint with since_seq and unwraps batches in order', async () => { + const { calls, fetchImpl } = fakeFetch(okEnvelope(catchupData)); + const res = await fetchTranscriptOps({ + baseUrl: 'http://h:1', + token: 'tok', + sessionId: 's1', + agentId: 'main', + sinceSeq: 5, + fetchImpl, + }); + expect(calls[0]!.url).toContain('/api/v1/sessions/s1/transcript/ops?'); + expect(calls[0]!.url).toContain('agent_id=main'); + expect(calls[0]!.url).toContain('since_seq=5'); + expect(res.complete).toBe(true); + expect(res.latestSeq).toBe(7); + expect(res.batches.map((batch) => batch.seq)).toEqual([6, 7]); + }); + + it('surfaces an incomplete catch-up (journal cannot cover)', async () => { + const { fetchImpl } = fakeFetch( + okEnvelope({ ...catchupData, batches: [], latest_seq: 500, complete: false }), + ); + const res = await fetchTranscriptOps({ baseUrl: 'http://h:1', sessionId: 's1', agentId: 'main', - pageSize: 2, + sinceSeq: 5, fetchImpl, }); - expect(calls).toHaveLength(3); - expect(calls[1]).toContain('before_turn=t3'); - expect(calls[2]).toContain('before_turn=t1'); - expect(messages.map((m) => ('turn_id' in m ? m.turn_id : ''))).toEqual(['t1', 't2', 't3', 't3']); + expect(res.complete).toBe(false); + expect(res.batches).toEqual([]); + }); + + it('throws on a legacy server (envelope error) so callers fall back', async () => { + const { fetchImpl } = fakeFetch({ code: 40404, msg: 'unknown route', data: null }); + await expect( + fetchTranscriptOps({ + baseUrl: 'http://h:1', + sessionId: 's1', + agentId: 'main', + sinceSeq: 5, + fetchImpl, + }), + ).rejects.toThrow('unknown route'); + }); +}); + +// ------------------------------------------------------------------ plan lookup + +describe('fetchTranscriptPlan', () => { + const planEntry = { + tool_call_id: 'call_plan', + turn_id: 't3', + source: 'interaction', + plan: '# The Plan\n\nDo the thing.', + path: '/tmp/plans/foo.md', + options: [{ label: 'Approach A', description: 'fast' }], + review: { state: 'approved', selected_option: 'Approach A', feedback: 'looks good' }, + }; + + it('requests the plan endpoint with agent_id/tool_call_id and maps the snake_case payload', async () => { + const { calls, fetchImpl } = fakeFetch(okEnvelope({ agent_id: 'main', plans: [planEntry] })); + const plans = await fetchTranscriptPlan({ + baseUrl: 'http://h:1', + token: 'tok', + sessionId: 's 1', + agentId: 'main', + toolCallId: 'call_plan', + fetchImpl, + }); + expect(calls).toHaveLength(1); + expect(calls[0]!.url).toContain('/api/v1/sessions/s%201/transcript/plan?'); + expect(calls[0]!.url).toContain('agent_id=main'); + expect(calls[0]!.url).toContain('tool_call_id=call_plan'); + expect(calls[0]!.init?.headers).toEqual({ authorization: 'Bearer tok' }); + expect(plans).toEqual([ + { + toolCallId: 'call_plan', + turnId: 't3', + source: 'interaction', + plan: '# The Plan\n\nDo the thing.', + path: '/tmp/plans/foo.md', + options: [{ label: 'Approach A', description: 'fast' }], + review: { state: 'approved', selectedOption: 'Approach A', feedback: 'looks good' }, + }, + ]); + }); + + it('omits tool_call_id from the query when unset (lists every plan of the agent)', async () => { + const { calls, fetchImpl } = fakeFetch( + okEnvelope({ + agent_id: 'main', + plans: [ + { tool_call_id: 'call_draft', turn_id: 't1', source: 'display', plan: '# Draft' }, + { tool_call_id: 'call_final', turn_id: 't2', source: 'output', plan: '# Final' }, + ], + }), + ); + const plans = await fetchTranscriptPlan({ + baseUrl: 'http://h:1', + sessionId: 's1', + agentId: 'main', + fetchImpl, + }); + expect(calls[0]!.url).not.toContain('tool_call_id'); + expect(plans.map((p) => [p.toolCallId, p.plan])).toEqual([ + ['call_draft', '# Draft'], + ['call_final', '# Final'], + ]); + expect(plans[0]!.review).toBeUndefined(); + expect(plans[0]!.path).toBeUndefined(); + expect(plans[0]!.options).toBeUndefined(); + }); + + it('throws on a 40416 envelope (unknown tool call / not ExitPlanMode)', async () => { + const { fetchImpl } = fakeFetch({ + code: 40416, + msg: 'no ExitPlanMode tool call found for tool_call_id: call_nope', + data: null, + }); + await expect( + fetchTranscriptPlan({ + baseUrl: 'http://h:1', + sessionId: 's1', + agentId: 'main', + toolCallId: 'call_nope', + fetchImpl, + }), + ).rejects.toThrow('40416'); + }); + + it('throws when the payload fails schema validation', async () => { + const { fetchImpl } = fakeFetch(okEnvelope({ agent_id: 'main', plans: 'nope' })); + await expect( + fetchTranscriptPlan({ + baseUrl: 'http://h:1', + sessionId: 's1', + agentId: 'main', + fetchImpl, + }), + ).rejects.toThrow('unexpected response shape'); }); }); // ---------------------------------------------------------------- ws -describe('ChatWs', () => { - it('connects with the bearer subprotocol and subscribes after the server hello', () => { +describe('TranscriptWs', () => { + it('connects with the bearer subprotocol and sends the grade spec via subscribe_v2', () => { FakeWs.reset(); makeWs(); const sock = FakeWs.instances[0]!; - expect(sock.url).toBe('ws://h:1/api/v3/ws'); + expect(sock.url).toBe('ws://h:1/api/v1/ws'); expect(sock.protocols).toEqual(['kimi-code.bearer.tok']); sock.open(); - expect(sock.sent).toHaveLength(0); - sock.hello(); - expect(sock.sentFrames()[0]).toEqual({ - type: 'subscribe', - id: 1, - session_id: 's1', - agent_ids: ['main'], + expect(sock.sentFrames()[0]).toMatchObject({ + type: 'client_hello', + payload: { + subscriptions: ['s1'], + }, + }); + expect(sock.sentFrames()[1]).toMatchObject({ + type: 'subscribe_v2', + payload: { + session_id: 's1', + transcript: { main: 'block' }, + }, }); }); - it('fires onAck on the subscribe ack and forwards entity messages', () => { + it('forwards transcript.ops and surfaces transcript.reset via onReset, both with envelope meta', () => { FakeWs.reset(); const { seen } = makeWs(); const sock = FakeWs.instances[0]!; sock.open(); - sock.hello(); - sock.serverFrame({ type: 'ack', id: 1, code: 0 }); - expect(seen.acks).toEqual([{ code: 0 }]); - sock.serverFrame(turnMsg(1, 'running')); sock.serverFrame({ - type: 'session.state', + type: 'transcript.reset', + seq: 1, + volatile: true, session_id: 's1', - timestamp: ts(), - status: 'idle', + timestamp: '2026-01-01T00:00:00Z', + payload: { + type: 'transcript.reset', + agent_id: 'main', + snapshot: { items: [], tasks: [], interactions: [], meta: {} }, + has_more_older: true, + seq: 41, + }, }); - expect(seen.messages.map((m) => m.type)).toEqual(['turn', 'session.state']); + expect(seen.ops).toHaveLength(0); + expect(seen.resets).toEqual([ + { agentId: 'main', hasMoreOlder: true, at: '2026-01-01T00:00:00Z', seq: 41 }, + ]); + sock.serverFrame({ + type: 'transcript.ops', + seq: 1, + volatile: true, + session_id: 's1', + timestamp: '2026-01-01T00:00:01Z', + payload: { + type: 'transcript.ops', + agent_id: 'main', + ops: [{ op: 'meta.merge', meta: { activity: 'turn' } }], + seq: 42, + }, + }); + expect(seen.ops).toHaveLength(1); + expect(seen.ops[0]!.agentId).toBe('main'); + expect(seen.ops[0]!.at).toBe('2026-01-01T00:00:01Z'); + expect(seen.ops[0]!.seq).toBe(42); + expect(seen.ops[0]!.ops[0]).toMatchObject({ op: 'meta.merge' }); }); - it('surfaces protocol error frames and ignores acks for other ids', () => { + it('sends a clean client_hello and carries grades/transcript_since on subscribe_v2', async () => { FakeWs.reset(); - const { seen } = makeWs(); + let watermark: number | undefined; + new TranscriptWs({ + url: 'http://h:1', + sessionId: 's1', + agentId: 'main', + WebSocketImpl: FakeWs, + getSince: () => watermark, + reconnectDelayMs: 1, + handlers: { onOps: () => {}, onResyncRequired: () => {}, onReconnected: () => {} }, + }); const sock = FakeWs.instances[0]!; sock.open(); - sock.hello(); - sock.serverFrame({ type: 'ack', id: 99, code: 0 }); - expect(seen.acks).toHaveLength(0); - sock.serverFrame({ type: 'error', code: 1008, msg: 'slow consumer' }); - expect(seen.protocolErrors).toEqual([{ code: 1008, msg: 'slow consumer' }]); - }); - - it('ignores unknown future message types but reports malformed known ones', () => { - FakeWs.reset(); - const { seen } = makeWs(); - const sock = FakeWs.instances[0]!; - sock.open(); - sock.hello(); - sock.serverFrame({ type: 'turn.supercharged', whatever: true }); - sock.serverFrame({ type: 'turn', turn_id: 42 }); - expect(seen.messages).toHaveLength(0); - expect(seen.invalid).toBe(1); - }); - - it('re-subscribes after a drop and fires onAck per subscribe', async () => { - FakeWs.reset(); - const { seen } = makeWs(); - const first = FakeWs.instances[0]!; - first.open(); - first.hello(); - first.serverFrame({ type: 'ack', id: 1, code: 0 }); - expect(seen.acks).toHaveLength(1); - first.emit('close'); + expect(sock.sentFrames()[0]).toMatchObject({ + type: 'client_hello', + payload: { client_id: 'kimi-inspect', subscriptions: ['s1'] }, + }); + expect(sock.sentFrames()[0]).not.toHaveProperty('payload.transcript'); + expect(sock.sentFrames()[1]).toMatchObject({ + type: 'subscribe_v2', + payload: { session_id: 's1', transcript: { main: 'block' } }, + }); + expect( + (sock.sentFrames()[1] as { payload: Record }).payload['transcript_since'], + ).toBeUndefined(); + watermark = 42; + sock.emit('close'); await vi.waitFor(() => { expect(FakeWs.instances.length).toBeGreaterThan(1); }); const second = FakeWs.instances[1]!; second.open(); - second.hello(); - expect(second.sentFrames()[0]).toMatchObject({ type: 'subscribe', id: 2 }); - second.serverFrame({ type: 'ack', id: 2, code: 0 }); - expect(seen.acks).toHaveLength(2); + expect(second.sentFrames()[1]).toMatchObject({ + type: 'subscribe_v2', + payload: { session_id: 's1', transcript_since: { main: 42 } }, + }); + }); + + it('still ignores transcript.reset when no onReset handler is set', () => { + FakeWs.reset(); + const seen = { ops: 0 }; + new TranscriptWs({ + url: 'http://h:1', + sessionId: 's1', + agentId: 'main', + WebSocketImpl: FakeWs, + handlers: { + onOps: () => { + seen.ops += 1; + }, + onResyncRequired: () => {}, + onReconnected: () => {}, + }, + }); + const sock = FakeWs.instances[0]!; + sock.open(); + sock.serverFrame({ + type: 'transcript.reset', + timestamp: '2026-01-01T00:00:00Z', + payload: { + type: 'transcript.reset', + agent_id: 'main', + snapshot: { items: [], tasks: [], interactions: [], meta: {} }, + has_more_older: false, + }, + }); + expect(seen.ops).toBe(0); + }); + + it('answers ping with pong carrying the nonce', () => { + FakeWs.reset(); + makeWs(); + const sock = FakeWs.instances[0]!; + sock.open(); + sock.serverFrame({ type: 'ping', timestamp: '2026-01-01T00:00:00Z', payload: { nonce: 'n1' } }); + expect(sock.sentFrames().at(-1)).toEqual({ type: 'pong', payload: { nonce: 'n1' } }); + }); + + it('surfaces resync_required for its session (and ignores other sessions)', () => { + FakeWs.reset(); + const { seen } = makeWs(); + const sock = FakeWs.instances[0]!; + sock.open(); + sock.serverFrame({ + type: 'resync_required', + timestamp: '2026-01-01T00:00:00Z', + payload: { session_id: 'other', reason: 'buffer_overflow', current_seq: 5 }, + }); + expect(seen.resyncs).toBe(0); + sock.serverFrame({ + type: 'resync_required', + timestamp: '2026-01-01T00:00:00Z', + payload: { session_id: 's1', reason: 'buffer_overflow', current_seq: 5 }, + }); + expect(seen.resyncs).toBe(1); + }); + + it('re-subscribes after a drop and reports the reconnect only on the subscribe_v2 ack', () => { + vi.useFakeTimers(); + try { + FakeWs.reset(); + const { seen } = makeWs(); + const first = FakeWs.instances[0]!; + first.open(); + // Open alone does not reconcile: the server attaches the transcript + // stream only after processing subscribe_v2. + expect(seen.reconnects).toBe(0); + // Neither does the client_hello ack. + const helloId = (first.sentFrames()[0] as { id: string }).id; + first.serverFrame({ type: 'ack', id: helloId, code: 0, msg: 'success', payload: {} }); + expect(seen.reconnects).toBe(0); + const subscribeV2Id = (first.sentFrames()[1] as { id: string }).id; + first.serverFrame({ type: 'ack', id: subscribeV2Id, code: 0, msg: 'success', payload: {} }); + expect(seen.reconnects).toBe(1); + first.emit('close'); + vi.advanceTimersByTime(600); + expect(FakeWs.instances).toHaveLength(2); + const second = FakeWs.instances[1]!; + second.open(); + expect(second.sentFrames()[0]).toMatchObject({ type: 'client_hello' }); + expect(second.sentFrames()[1]).toMatchObject({ type: 'subscribe_v2' }); + expect(seen.reconnects).toBe(1); + const subscribeV2Id2 = (second.sentFrames()[1] as { id: string }).id; + second.serverFrame({ type: 'ack', id: subscribeV2Id2, code: 0, msg: 'success', payload: {} }); + expect(seen.reconnects).toBe(2); + } finally { + vi.useRealTimers(); + } }); it('stays closed after close()', () => { @@ -466,437 +640,276 @@ describe('ChatWs', () => { // ---------------------------------------------------------------- store -describe('ChatStore', () => { - it('upserts entities by (type, id) and replaces in place', () => { - const store = makeStore(); - store.applyLive(turnMsg(1, 'running')); - store.applyLive(stepMsg('t1.1', 'running')); - store.applyLive(turnMsg(1, 'completed')); - const state = store.getState(); - expect(entryKeys(state.entries)).toEqual(['turn:t1', 'step:t1.1']); - const turn = state.entries[0]!.message as TurnMessage; - expect(turn.status).toBe('completed'); - }); - - it('skips an upsert whose timestamp is older than the held entity', () => { - const store = makeStore(); - store.applyLive(assistantMsg('t1.1', 'hello world', 'streaming', Date.parse('2026-01-01T00:00:10.000Z'))); - store.applyLive(assistantMsg('t1.1', 'hel', 'streaming', Date.parse('2026-01-01T00:00:05.000Z'))); - const held = store.getState().entries[0]!.message as AssistantMessage; - expect(held.text).toBe('hello world'); - }); - - it('appends deltas to the held entity and drops orphan deltas', () => { - const store = makeStore(); - store.applyLive({ - type: 'assistant.delta', - ...base, - timestamp: ts(), - message_id: 't1.1.a0', - text: 'orphan', - }); - expect(store.getState().entries).toHaveLength(0); - store.applyLive(assistantMsg('t1.1', '', 'streaming')); - store.applyLive({ - type: 'assistant.delta', - ...base, - timestamp: ts(), - message_id: 't1.1.a0', - text: 'hel', - }); - store.applyLive({ - type: 'assistant.delta', - ...base, - timestamp: ts(), - message_id: 't1.1.a0', - text: 'lo', - }); - const held = store.getState().entries[0]!.message as AssistantMessage; - expect(held.text).toBe('hello'); - }); - - it('treats an entity arrival after deltas as the authoritative whole', () => { - const store = makeStore(); - store.applyLive(assistantMsg('t1.1', '', 'streaming')); - store.applyLive({ - type: 'assistant.delta', - ...base, - timestamp: ts(), - message_id: 't1.1.a0', - text: 'partial', - }); - store.applyLive(assistantMsg('t1.1', 'partial but authoritative', 'completed')); - const held = store.getState().entries[0]!.message as AssistantMessage; - expect(held.text).toBe('partial but authoritative'); - expect(held.status).toBe('completed'); - }); - - it('appends tool_call deltas to input_text and patches tool.progress', () => { - const store = makeStore(); - store.applyLive(toolCallMsg('t1.1', 'call_1', { input_text: '' })); - store.applyLive({ - type: 'tool_call.delta', - ...base, - timestamp: ts(), - tool_call_id: 'call_1', - input_text: '{"command"', - }); - store.applyLive({ - type: 'tool_call.delta', - ...base, - timestamp: ts(), - tool_call_id: 'call_1', - input_text: ':"ls"}', - }); - store.applyLive({ - type: 'tool.progress', - ...base, - timestamp: ts(), - tool_call_id: 'call_1', - progress: { kind: 'stdout', text: 'file.txt' }, - }); - const held = store.getState().entries[0]!.message as ToolCallMessage; - expect(held.input_text).toBe('{"command":"ls"}'); - expect(held.progress).toEqual({ kind: 'stdout', text: 'file.txt' }); - }); - - it('truncates the removed turn subtree on system(undo) and keeps the marker', () => { - const store = makeStore(); - store.applyLive(turnMsg(1)); - store.applyLive(stepMsg('t1.1')); - store.applyLive(assistantMsg('t1.1', 'first')); - store.applyLive(turnMsg(2)); - store.applyLive(stepMsg('t2.1')); - store.applyLive(toolCallMsg('t2.1', 'call_1')); - store.applyLive(undoMsg('sys-undo-1', ['t2'])); - const state = store.getState(); - expect(entryKeys(state.entries)).toEqual([ - 'turn:t1', - 'step:t1.1', - 'assistant:t1.1.a0', - 'system:sys-undo-1', - ]); - }); - - it('cascades undo to interactions anchored at removed tool calls', () => { - const store = makeStore(); - store.applyLive(turnMsg(1)); - store.applyLive(toolCallMsg('t1.1', 'call_1')); - store.applyLive(interactionMsg('ix-1', 'call_1')); - store.applyLive(interactionMsg('ix-2', 'call_other')); - store.applyLive(undoMsg('sys-undo-1', ['t1'])); - expect([...store.getState().interactions.keys()]).toEqual(['ix-2']); - }); - - it('empties the timeline on system(clear)', () => { - const store = makeStore(); - store.applyLive(turnMsg(1)); - store.applyLive(stepMsg('t1.1')); - store.applyLive(assistantMsg('t1.1', 'gone')); - store.applyLive(systemMsg('clear', 'sys-clear-1', { removed_ids: ['t1', 't1.1', 't1.1.a0'] })); - expect(entryKeys(store.getState().entries)).toEqual(['system:sys-clear-1']); - }); - - it('upserts state entities into their own maps and ignores global messages', () => { - const store = makeStore(); - store.applyLive(interactionMsg('ix-1', 'call_1')); - store.applyLive(taskMsg('task-1')); - store.applyLive({ - type: 'todo', - ...base, - timestamp: ts(), - todo_id: 'todo', - items: [{ title: 'x', status: 'pending' }], - }); - store.applyLive({ - type: 'session.state', - session_id: 's1', - timestamp: ts(), - status: 'running', - }); - store.applyLive({ - type: 'workspace', - timestamp: ts(), - subtype: 'updated', - workspace: { - id: 'wd_test_0123456789ab', - root: '/tmp', - name: 'tmp', - created_at: new Date(ts()).toISOString(), - last_opened_at: new Date(ts()).toISOString(), - session_count: 1, +describe('TranscriptChatStore', () => { + it('applyPage(replace) installs the newest slice wholesale (items + globals)', () => { + const store = new TranscriptChatStore(); + store.applyOps([{ op: 'turn.upsert', turn: turnHeader(9, 'running') }]); + store.applyPage( + { + ...emptyPage, + items: [turnItem(1), turnItem(2)], + hasMoreOlder: true, + tasks: [ + { taskId: 'bash-1', kind: 'shell', state: 'running', detached: false, outputTail: '' }, + ], + meta: { activity: 'idle' }, + pendingInteractions: ['apr-1'], }, - }); + { replace: true }, + ); const state = store.getState(); - expect(state.interactions.get('ix-1')?.status).toBe('pending'); - expect(state.tasks.get('task-1')?.kind).toBe('shell'); - expect(state.todos.get('todo')?.items).toHaveLength(1); - expect(state.sessionState?.status).toBe('running'); - expect(state.entries).toHaveLength(0); + expect(state.items.map((item) => itemId(item))).toEqual(['t1', 't2']); + expect(state.hasMoreOlder).toBe(true); + expect(state.tasks.get('bash-1')?.kind).toBe('shell'); + expect(state.meta.activity).toBe('idle'); + expect([...state.pendingInteractions]).toEqual(['apr-1']); }); - it('replace installs the page as the window and keeps entries newer than the page', () => { - const store = makeStore(); - store.applyLive(turnMsg(9, 'running', Date.parse('2026-01-01T00:00:09.000Z'))); - store.applyLive(turnMsg(1, 'completed', Date.parse('2026-01-01T00:00:01.000Z'))); - store.applyHistoryPage( - [turnMsg(1, 'completed', Date.parse('2026-01-01T00:00:01.500Z')), stepMsg('t1.1', 'completed', Date.parse('2026-01-01T00:00:02.000Z'))], - 'replace', + it('prepends older pages ahead of the window, dedupes, keeps live globals', () => { + const store = new TranscriptChatStore(); + store.applyPage( + { ...emptyPage, items: [turnItem(3)], hasMoreOlder: true, meta: { activity: 'idle' } }, + { replace: true }, ); - expect(entryKeys(store.getState().entries)).toEqual(['turn:t1', 'step:t1.1', 'turn:t9']); + store.applyPage({ + ...emptyPage, + items: [turnItem(1), turnItem(2)], + hasMoreOlder: true, + meta: {}, + }); + expect(store.getState().items.map((item) => itemId(item))).toEqual(['t1', 't2', 't3']); + expect(store.getState().hasMoreOlder).toBe(true); + // Globals from the older page do not clobber the fresher live state. + expect(store.getState().meta.activity).toBe('idle'); + store.applyPage({ ...emptyPage, items: [turnItem(2)], hasMoreOlder: false }); + expect(store.getState().items.map((item) => itemId(item))).toEqual(['t1', 't2', 't3']); + expect(store.getState().hasMoreOlder).toBe(false); }); - it('prepend inserts older pages ahead of the window and dedupes by key', () => { - const store = makeStore(); - store.applyHistoryPage([turnMsg(3)], 'replace'); - store.applyHistoryPage([turnMsg(1), turnMsg(2), turnMsg(3)], 'prepend'); - expect(entryKeys(store.getState().entries)).toEqual(['turn:t1', 'turn:t2', 'turn:t3']); - }); - - it('tail upserts the catch-up slice in page order', () => { - const store = makeStore(); - store.applyHistoryPage([turnMsg(1), stepMsg('t1.1')], 'replace'); - store.applyHistoryPage( - [assistantMsg('t1.1', 'tail'), turnMsg(2), stepMsg('t2.1', 'running')], - 'tail', - ); - expect(entryKeys(store.getState().entries)).toEqual([ - 'turn:t1', - 'step:t1.1', - 'assistant:t1.1.a0', - 'turn:t2', - 'step:t2.1', + it('applies ops through the package reducer and notifies once per batch', () => { + const store = new TranscriptChatStore(); + let notified = 0; + store.subscribe(() => { + notified += 1; + }); + store.applyOps([ + { op: 'turn.upsert', turn: turnHeader(1, 'running') }, + { op: 'step.upsert', turnId: 't1', step: stepHeader('t1.1', 1) }, + textFrameUpsert('t1', 't1.1', 't1.1.f1', ''), + frameAppend('t1', 't1.1', 't1.1.f1', 0, 'hel'), + frameAppend('t1', 't1.1', 't1.1.f1', 3, 'lo'), ]); + expect(notified).toBe(1); + const turn = store.getState().items[0]; + expect(turn?.kind).toBe('turn'); + if (turn?.kind === 'turn') { + expect(turn.steps[0]?.frames[0]).toMatchObject({ kind: 'text', text: 'hello' }); + } }); - it('applies a system(undo) inside a history page like a live one', () => { - const store = makeStore(); - store.applyLive(turnMsg(1)); - store.applyLive(turnMsg(2)); - store.applyHistoryPage([undoMsg('sys-undo-1', ['t2'])], 'tail'); - expect(entryKeys(store.getState().entries)).toEqual(['turn:t1', 'system:sys-undo-1']); + it('absorbs duplicate ops without notifying', () => { + const store = new TranscriptChatStore(); + store.applyOps([{ op: 'turn.upsert', turn: turnHeader(1, 'running') }]); + let notified = 0; + store.subscribe(() => { + notified += 1; + }); + store.applyOps([{ op: 'turn.upsert', turn: turnHeader(1, 'running') }]); + expect(notified).toBe(0); + }); + + it('buffered ops converge when flushed onto freshly fetched pages', () => { + const store = new TranscriptChatStore(); + // Simulate: REST page lands AFTER the live ops were produced (buffered). + const buffered: TranscriptOperation[] = [ + { op: 'turn.upsert', turn: turnHeader(1, 'running') }, + { op: 'step.upsert', turnId: 't1', step: stepHeader('t1.1', 1) }, + textFrameUpsert('t1', 't1.1', 't1.1.f1', ''), + frameAppend('t1', 't1.1', 't1.1.f1', 0, 'hello'), + ]; + // The REST snapshot already includes part of the stream ('hel'). + const pageTurn: TranscriptTurn = { + ...turnHeader(1, 'running'), + steps: [ + { + kind: 'step', + stepId: 't1.1', + turnId: 't1', + ordinal: 1, + state: 'running', + frames: [{ kind: 'text', frameId: 't1.1.f1', role: 'assistant', text: 'hel' }], + }, + ], + }; + store.applyPage({ ...emptyPage, items: [pageTurn], hasMoreOlder: false }, { replace: true }); + store.applyOps(buffered); + const turn = store.getState().items[0]; + if (turn?.kind !== 'turn') throw new Error('expected turn'); + expect(turn.steps[0]?.frames[0]).toMatchObject({ kind: 'text', text: 'hello' }); + }); + + it('surfaces append placement gaps through onGap', () => { + const store = new TranscriptChatStore(); + let gaps = 0; + store.onGap = () => { + gaps += 1; + }; + store.applyOps([frameAppend('t1', 't1.1', 't1.1.f1', 0, 'x')]); + expect(gaps).toBe(1); }); }); -// ---------------------------------------------------------------- helpers - describe('recoverLoadedWindow', () => { - const pageOf = (items: HistoryMessage[], hasMore: boolean): HistoryMessage[] => items; - - it('pages backwards until the previous oldest turn is re-covered', async () => { - const store = makeStore(); - store.applyHistoryPage([turnMsg(4), turnMsg(5), turnMsg(6)], 'replace'); - store.setHasMoreOlder(true); - const fetched: string[] = []; - await recoverLoadedWindow( - store, - 't2', - async (beforeTurn) => { - fetched.push(beforeTurn); - store.setHasMoreOlder(beforeTurn !== 't2'); - return beforeTurn === 't4' ? [turnMsg(2), turnMsg(3)] : []; - }, - () => false, - ); - expect(fetched).toEqual(['t4']); - expect(oldestTurnId(store.getState().entries)).toBe('t2'); - expect(newestTerminalStepId(store.getState().entries)).toBeUndefined(); + const range = (from: number, to: number): TranscriptTurn[] => + Array.from({ length: to - from + 1 }, (_, i) => turnItem(from + i)); + const pageOf = (items: TranscriptTurn[], hasMoreOlder: boolean): TranscriptPage => ({ + ...emptyPage, + items, + hasMoreOlder, }); - it('stops when there is no older history left, even if the anchor is gone', async () => { - const store = makeStore(); - store.applyHistoryPage([turnMsg(5)], 'replace'); - store.setHasMoreOlder(true); + it('pages backwards until the previous oldest turn is re-covered', async () => { + const store = new TranscriptChatStore(); + // The refresh landed the newest page (t36..t65) while the previously + // loaded window reached t1 — a count-based stop would drop t1..t5. + store.applyPage(pageOf(range(36, 65), true), { replace: true }); + const fetched: string[] = []; await recoverLoadedWindow( store, 't1', async (beforeTurn) => { fetched.push(beforeTurn); - store.setHasMoreOlder(false); + return beforeTurn === 't36' ? pageOf(range(6, 35), true) : pageOf(range(1, 5), false); + }, + () => false, + ); + + expect(fetched).toEqual(['t36', 't6']); + expect(countTurns(store.getState().items)).toBe(65); + expect(oldestTurnId(store.getState().items)).toBe('t1'); + }); + + it('stops immediately when the window is already covered', async () => { + const store = new TranscriptChatStore(); + store.applyPage(pageOf(range(1, 30), true), { replace: true }); + let calls = 0; + await recoverLoadedWindow( + store, + 't1', + async () => { + calls += 1; return pageOf([], false); }, () => false, ); - expect(fetched).toEqual(['t5']); - }); -}); - -describe('ChatChannel', () => { - function scriptedFetch(script: { noCursor: unknown[]; afterStep?: Record }) { - const calls: string[] = []; - let noCursorIndex = 0; - const fetchImpl = (async (url: string | URL) => { - const text = String(url); - calls.push(text); - const after = /after_step=([^&]+)/.exec(text)?.[1]; - let envelope: unknown; - if (after !== undefined) { - envelope = okEnvelope({ messages: [...(script.afterStep?.[after] ?? [])], has_more: false }); - } else { - envelope = script.noCursor[Math.min(noCursorIndex, script.noCursor.length - 1)]; - noCursorIndex += 1; - } - return { json: async () => envelope }; - }) as unknown as typeof fetch; - return { calls, fetchImpl }; - } - - function makeChannel(fetchImpl: typeof fetch): { channel: ChatChannel; sock: FakeWs } { - FakeWs.reset(); - const channel = new ChatChannel({ - baseUrl: 'http://h:1', - token: 'tok', - sessionId: 's1', - agentId: 'main', - pageSize: 50, - WebSocketImpl: FakeWs, - fetchImpl, - notifyIntervalMs: 0, - }); - return { channel, sock: FakeWs.instances[0]! }; - } - - it('serializes the initial refresh with the ack catch-up behind one queue', async () => { - const newest = okEnvelope({ messages: [turnMsg(1), stepMsg('t1.1')], has_more: false }); - const { calls, fetchImpl } = scriptedFetch({ noCursor: [newest] }); - let releaseFirst: () => void = () => {}; - const gate = new Promise((resolve) => { - releaseFirst = resolve; - }); - let first = true; - const gatedFetch = (async (url: string | URL, init?: RequestInit) => { - if (first) { - first = false; - await gate; - } - return fetchImpl(url, init); - }) as unknown as typeof fetch; - const { channel, sock } = makeChannel(gatedFetch); - channel.start(); - sock.open(); - sock.hello(); - sock.serverFrame({ type: 'ack', id: 1, code: 0 }); - releaseFirst(); - await vi.waitFor(() => { - expect(calls).toHaveLength(3); - }); - const restEntries = channel.trail.getEntries().filter((e) => e.kind === 'rest'); - expect(restEntries.filter((e) => e.mode === 'replace')).toHaveLength(1); - expect(channel.trail.getEntries().some((e) => e.kind === 'event' && e.event === 'catchup-refresh')).toBe(false); - expect(calls.filter((url) => !url.includes('after_step='))).toHaveLength(2); - expect(calls[1]).toContain('after_step=t1.1'); - expect(newestTerminalStepId(channel.store.getState().entries)).toBe('t1.1'); - channel.close(); + expect(calls).toBe(0); }); - it('probes the newest page for the anchor step or turn before falling back to a refresh', async () => { - const first = okEnvelope({ messages: [turnMsg(1), stepMsg('t1.1')], has_more: false }); - const probeWithTurn = okEnvelope({ messages: [systemMsg('notice', 'sys_n1'), turnMsg(1)], has_more: false }); - const alive = scriptedFetch({ noCursor: [first, probeWithTurn] }); - const aliveChannel = makeChannel(alive.fetchImpl); - aliveChannel.channel.start(); - aliveChannel.sock.open(); - aliveChannel.sock.hello(); - aliveChannel.sock.serverFrame({ type: 'ack', id: 1, code: 0 }); - await vi.waitFor(() => { - expect(aliveChannel.channel.store.getState().entries.length).toBeGreaterThan(0); - }); - await vi.waitFor(() => { - expect(alive.calls).toHaveLength(3); - }); - expect( - aliveChannel.channel.trail.getEntries().some((e) => e.kind === 'event' && e.event === 'catchup-refresh'), - ).toBe(false); - expect(aliveChannel.channel.trail.getEntries().filter((e) => e.kind === 'rest' && e.mode === 'replace')).toHaveLength(1); - aliveChannel.channel.close(); - - const movedOn = okEnvelope({ messages: [turnMsg(2), stepMsg('t2.1')], has_more: false }); - const gone = scriptedFetch({ noCursor: [first, movedOn] }); - const goneChannel = makeChannel(gone.fetchImpl); - goneChannel.channel.start(); - goneChannel.sock.open(); - goneChannel.sock.hello(); - goneChannel.sock.serverFrame({ type: 'ack', id: 1, code: 0 }); - await vi.waitFor(() => { - expect( - goneChannel.channel.trail.getEntries().some((e) => e.kind === 'event' && e.event === 'catchup-refresh'), - ).toBe(true); - }); - await vi.waitFor(() => { - expect(newestTerminalStepId(goneChannel.channel.store.getState().entries)).toBe('t2.1'); - }); - goneChannel.channel.close(); - }); -}); - -// ---------------------------------------------------------------- plan - -describe('projectPlans', () => { - const planCall = (id: string, overrides: Partial = {}): ToolCallMessage => - toolCallMsg('t1.1', id, { name: 'ExitPlanMode', status: 'done', ...overrides }); - - it('derives plan content and review from the linked approval interaction', () => { - const messages: HistoryMessage[] = [ - turnMsg(1), - planCall('call_plan', { approval_id: 'ix-1' }), - { - type: 'interaction', - ...base, - timestamp: ts(), - interaction_id: 'ix-1', - kind: 'approval', - status: 'approved', - tool_call_id: 'call_plan', - request: { - tool_name: 'ExitPlanMode', - action: 'review', - tool_input_display: { - kind: 'plan_review', - plan: '# The Plan\n\nDo the thing.', - path: '/tmp/plans/foo.md', - options: [{ label: 'Approach A', description: 'fast' }], - }, - }, - response: { decision: 'approved', selected_label: 'Approach A', feedback: 'looks good' }, + it('stops when there is no older history left, even if the anchor is gone', async () => { + const store = new TranscriptChatStore(); + store.applyPage(pageOf(range(10, 20), true), { replace: true }); + const fetched: string[] = []; + await recoverLoadedWindow( + store, + 't1', + async (beforeTurn) => { + fetched.push(beforeTurn); + return pageOf([], false); }, - ]; - const plans = projectPlans(messages); - expect(plans).toEqual([ - { - toolCallId: 'call_plan', - turnId: 't1', - source: 'interaction', - plan: '# The Plan\n\nDo the thing.', - path: '/tmp/plans/foo.md', - options: [{ label: 'Approach A', description: 'fast' }], - review: { state: 'approved', selectedOption: 'Approach A', feedback: 'looks good' }, + () => false, + ); + // The anchor no longer exists server-side: one no-progress probe, then stop. + expect(fetched).toEqual(['t10']); + expect(countTurns(store.getState().items)).toBe(11); + }); + + it('reports each applied page through onPageApplied', async () => { + const store = new TranscriptChatStore(); + store.applyPage(pageOf(range(36, 65), true), { replace: true }); + const applied: TranscriptPage[] = []; + await recoverLoadedWindow( + store, + 't1', + async (beforeTurn) => + beforeTurn === 't36' ? pageOf(range(6, 35), true) : pageOf(range(1, 5), false), + () => false, + (page) => { + applied.push(page); }, + ); + expect(applied.map((page) => page.items.map((item) => itemId(item)))).toEqual([ + range(6, 35).map((turn) => turn.turnId), + range(1, 5).map((turn) => turn.turnId), ]); }); - - it('falls back to the tool call display, then to the output body', () => { - const fromDisplay = projectPlans([ - planCall('call_display', { - display: { kind: 'plan_review', plan: '# Draft', path: '/tmp/draft.md' }, - }), - ]); - expect(fromDisplay[0]).toMatchObject({ source: 'display', plan: '# Draft', path: '/tmp/draft.md' }); - const fromOutput = projectPlans([ - planCall('call_output', { - output: 'Plan saved to: /tmp/out.md\n## Approved Plan:\n# Final', - }), - ]); - expect(fromOutput[0]).toMatchObject({ source: 'output', plan: '# Final', path: '/tmp/out.md' }); - }); - - it('filters by tool_call_id and ignores non-ExitPlanMode calls', () => { - const messages: HistoryMessage[] = [ - planCall('call_a', { display: { kind: 'plan_review', plan: '# A' } }), - toolCallMsg('t1.1', 'call_bash', { name: 'Bash', status: 'done' }), - planCall('call_b', { display: { kind: 'plan_review', plan: '# B' } }), - ]; - expect(projectPlans(messages, 'call_b').map((p) => p.toolCallId)).toEqual(['call_b']); - expect(projectPlans(messages).map((p) => p.toolCallId)).toEqual(['call_a', 'call_b']); - }); +}); + +describe('createCoalescedRunner', () => { + const deferred = (): { promise: Promise; resolve: () => void } => { + let resolve!: () => void; + const promise = new Promise((r) => { + resolve = r; + }); + return { promise, resolve }; + }; + + it('runs once per trigger when idle', async () => { + let runs = 0; + const kick = createCoalescedRunner(async () => { + runs += 1; + }); + kick(); + await Promise.resolve(); + kick(); + await Promise.resolve(); + expect(runs).toBe(2); + }); + + it('coalesces triggers during a run into exactly one follow-up', async () => { + let runs = 0; + const gates: Array<() => void> = []; + const kick = createCoalescedRunner(async () => { + runs += 1; + const gate = deferred(); + gates.push(gate.resolve); + await gate.promise; + }); + kick(); + kick(); + kick(); + expect(runs).toBe(1); + gates[0]?.(); + await vi.waitFor(() => { + expect(runs).toBe(2); + }); + gates[1]?.(); + await vi.waitFor(() => { + expect(gates.length).toBe(2); + }); + // No third run: the two mid-run triggers were coalesced into one. + }); + + it('queues again when a trigger lands during the follow-up run', async () => { + let runs = 0; + const gates: Array<() => void> = []; + const kick = createCoalescedRunner(async () => { + runs += 1; + const gate = deferred(); + gates.push(gate.resolve); + await gate.promise; + }); + kick(); + kick(); + gates[0]?.(); + await vi.waitFor(() => { + expect(runs).toBe(2); + }); + kick(); + gates[1]?.(); + await vi.waitFor(() => { + expect(runs).toBe(3); + }); + gates[2]?.(); + }); }); diff --git a/apps/kimi-inspect/src/transcript/ws.ts b/apps/kimi-inspect/src/transcript/ws.ts index d421d40bd..8e5d160e7 100644 --- a/apps/kimi-inspect/src/transcript/ws.ts +++ b/apps/kimi-inspect/src/transcript/ws.ts @@ -1,97 +1,106 @@ /** - * Minimal `/api/v3/ws` client for the message protocol. + * Minimal `/api/v1/ws` client for the transcript stream — **block grade**. * - * Handshake per the protocol contract: the server sends `hello` right after - * the upgrade, the client answers with `subscribe` (`{id, session_id, - * agent_ids?, omit?}`), the server replies with `ack` (matched by `id`) and - * then streams the recovery payload followed by live traffic — one ordered - * session sequence, no cursors anywhere. Heartbeat is the WS protocol-level - * ping/pong, handled by the WebSocket implementation itself. + * The socket is used exclusively as an incremental channel, at the cheapest + * grade that keeps the live view correct: 'block' drops the per-token + * `append` frames (the bulk of transcript traffic) and still receives the + * whole-state frame upserts at every flush point, so content converges + * without a REST round-trip. After the + * upgrade, the client sends `client_hello` with the session in + * `subscriptions`, then a `subscribe_v2` frame carrying the opt-in + * `transcript` grade map (plus the `transcript_since` cursor when a + * watermark is known), and forwards every `transcript.ops` frame to the + * consumer. Full state never comes from here: + * `transcript.reset` snapshots are ignored by the store (they are surfaced + * through the optional `onReset` handler for observers like the audit panel), + * because complete data (initial load and any refresh) is read back from the + * REST transcript API, paged from the tail backwards. * - * Every data frame is validated against the shared - * `serverMessageSchema`; control frames (`hello` / `ack` / `error`) are - * handled here, everything else is forwarded through `onMessage`. The union - * is open: a frame whose `type` is not in the current schema is a future - * message type and is ignored silently; a frame that names a known type but - * fails validation is a server bug and surfaces via `onInvalidFrame`. + * Loss signals are surfaced, not repaired locally — transcript frames are + * volatile by design (never journaled), so the consumer answers them with a + * REST refresh: `resync_required` → `onResyncRequired`, and the + * `subscribe_v2` ack after every established socket → `onReconnected` (the + * server attaches the stream only after processing `subscribe_v2`; ops + * emitted between the REST page load and that point are missed). * - * A drop is answered with a backoff reconnect and a fresh subscribe — the - * recovery payload is idempotent, so the consumer's only job on `onAck` is - * to run its REST tail catch-up. The bearer token rides the - * `kimi-code.bearer.` subprotocol at the upgrade (the only - * credential channel a browser WebSocket has). + * The bearer token is presented at the upgrade through the + * `kimi-code.bearer.` subprotocol (the only credential channel a + * browser WebSocket has). */ -import { serverMessageSchema, type ServerMessage } from '@moonshot-ai/kap-server/protocol'; +import { + transcriptOpsEventSchema, + transcriptResetEventSchema, + type AgentTranscriptSnapshot, + type TranscriptOperation, +} from '@moonshot-ai/transcript'; import type { WsLike, WsLikeCtor } from '../channel/wsLike'; -const WS_BEARER_PROTOCOL_PREFIX = 'kimi-code.bearer.'; - -const KNOWN_MESSAGE_TYPES: ReadonlySet = new Set([ - 'turn', - 'step', - 'user', - 'assistant', - 'assistant.delta', - 'thinking', - 'thinking.delta', - 'tool_call', - 'tool_call.delta', - 'tool.progress', - 'system', - 'interaction', - 'task', - 'todo', - 'session.state', - 'session', - 'workspace', - 'config', - 'config.warning', - 'model_catalog', - 'plugin', - 'capability', - 'hello', - 'ack', - 'error', -]); - -export interface ChatWsHandlers { - /** Any validated non-control server message (entity, delta, state, global). */ - onMessage: (message: ServerMessage) => void; - /** The subscribe ack (code 0 = subscribed) — fires on every (re)subscribe. */ - onAck: (code: number, msg?: string) => void; - /** Protocol-level `error` frame (auth failure, unknown frame, slow consumer). */ - onProtocolError: (code: number, msg: string) => void; - /** A frame naming a KNOWN type failed schema validation (server bug). */ - onInvalidFrame?: (raw: unknown) => void; - /** The socket dropped and a reconnect attempt is scheduled. */ - onReconnectScheduled?: (attempt: number) => void; +/** Envelope/payload metadata carried alongside a transcript frame (for auditing + seq tracking). */ +export interface TranscriptFrameMeta { + /** Envelope `timestamp` (server send time, ISO); absent on legacy servers. */ + readonly at?: string | undefined; + /** Op-batch sequence number (payload `seq`); absent on legacy servers. */ + readonly seq?: number | undefined; } -export interface ChatWsOptions { - /** Server base URL (`http(s)://host:port`) or a full `ws(s)://…/api/v3/ws` URL. */ +export interface TranscriptWsHandlers { + /** Incremental L2 op batch for the agent (the only data frame consumed). */ + onOps: (agentId: string, ops: readonly TranscriptOperation[], meta?: TranscriptFrameMeta) => void; + /** + * Baseline snapshot frame. The chat consumer deliberately ignores these + * (full state is REST-sourced) — the handler exists for observers such as + * the audit panel that want to record every frame on the wire. + */ + onReset?: ( + agentId: string, + snapshot: AgentTranscriptSnapshot, + hasMoreOlder: boolean, + meta?: TranscriptFrameMeta, + ) => void; + /** Server signalled desync for our session — consumer should REST-refresh. */ + onResyncRequired: () => void; + /** Socket re-established after a drop — volatile ops were missed meanwhile. */ + onReconnected: () => void; +} + +export interface TranscriptWsOptions { + /** Server base URL (`http(s)://host:port`) or a full `ws(s)://…/api/v1/ws` URL. */ readonly url: string; - readonly token?: string; + readonly token?: string | undefined; readonly sessionId: string; - /** Agents to subscribe; defaults to all agents of the session when empty. */ - readonly agentIds?: readonly string[]; - /** Message types to exclude from the subscription (exact `type` names). */ - readonly omit?: readonly string[]; - readonly handlers: ChatWsHandlers; + readonly agentId: string; + readonly handlers: TranscriptWsHandlers; + /** + * Returns the caller's current op-batch watermark at (re)subscribe time; + * when defined it is sent as the `transcript_since` cursor so a sequenced + * server replays missed batches instead of sending a baseline reset. + */ + readonly getSince?: (() => number | undefined) | undefined; /** WebSocket implementation; defaults to the global `WebSocket`. */ readonly WebSocketImpl?: WsLikeCtor; /** Base delay (ms) for the reconnect backoff. Default `500`. */ readonly reconnectDelayMs?: number; } -export class ChatWs { +interface ServerFrame { + readonly type: string; + readonly id?: string; + readonly code?: number; + readonly timestamp?: string; + readonly payload?: unknown; +} + +const WS_BEARER_PROTOCOL_PREFIX = 'kimi-code.bearer.'; + +export class TranscriptWs { private readonly wsUrl: string; private readonly token?: string; private readonly sessionId: string; - private readonly agentIds?: readonly string[]; - private readonly omit?: readonly string[]; - private readonly handlers: ChatWsHandlers; + private readonly agentId: string; + private readonly handlers: TranscriptWsHandlers; + private readonly getSince?: (() => number | undefined) | undefined; private readonly WsCtor: WsLikeCtor; private readonly reconnectDelayMs: number; @@ -99,15 +108,17 @@ export class ChatWs { private manualClose = false; private reconnectAttempt = 0; private reconnectTimer: ReturnType | undefined; - private subscribeId = 0; + private helloId: string | undefined; + private subscribeV2Id: string | undefined; + private subscribeV2Acked = false; - constructor(opts: ChatWsOptions) { - this.wsUrl = toWsV3Url(opts.url); + constructor(opts: TranscriptWsOptions) { + this.wsUrl = toWsUrl(opts.url); this.token = opts.token; this.sessionId = opts.sessionId; - this.agentIds = opts.agentIds; - this.omit = opts.omit; + this.agentId = opts.agentId; this.handlers = opts.handlers; + this.getSince = opts.getSince; const ctor = opts.WebSocketImpl ?? (globalThis.WebSocket as unknown as WsLikeCtor | undefined); if (ctor === undefined) { throw new Error('no WebSocket implementation available; pass WebSocketImpl'); @@ -129,25 +140,6 @@ export class ChatWs { ws?.close(); } - /** Force a reconnect (debug/testing): drop the socket and re-subscribe after `delayMs`. */ - reconnect(delayMs = 0): void { - if (this.manualClose) return; - if (this.reconnectTimer !== undefined) { - clearTimeout(this.reconnectTimer); - this.reconnectTimer = undefined; - } - const ws = this.ws; - this.ws = undefined; - ws?.close(); - this.reconnectAttempt += 1; - this.handlers.onReconnectScheduled?.(this.reconnectAttempt); - this.reconnectTimer = setTimeout(() => { - this.reconnectTimer = undefined; - this.connect(); - }, delayMs); - this.reconnectTimer.unref?.(); - } - private connect(): void { const protocols = this.token !== undefined && this.token.length > 0 @@ -163,68 +155,108 @@ export class ChatWs { this.ws = ws; ws.addEventListener('open', () => { this.reconnectAttempt = 0; + this.helloId = `kimi-inspect-${Date.now().toString(36)}`; + this.subscribeV2Id = `${this.helloId}-sub`; + this.subscribeV2Acked = false; + const since = this.getSince?.(); + this.send({ + type: 'client_hello', + id: this.helloId, + payload: { + client_id: 'kimi-inspect', + subscriptions: [this.sessionId], + }, + }); + // Transcript grades ride only `subscribe_v2` — sent right after the + // hello on the same socket, so the server processes them in order. + this.send({ + type: 'subscribe_v2', + id: this.subscribeV2Id, + payload: { + session_id: this.sessionId, + transcript: { [this.agentId]: 'block' }, + transcript_since: since !== undefined ? { [this.agentId]: since } : undefined, + }, + }); + // The reconcile fires on the subscribe_v2 ACK (see onMessage) — the + // server attaches the transcript stream only after processing + // subscribe_v2, so refreshing at open could finish before the + // subscription is active and still miss the ops in between. }); ws.addEventListener('message', (event: { data: unknown }) => { this.onMessage(event.data); }); ws.addEventListener('close', () => { + // Stale socket (a manual close already cleared `this.ws`). if (this.ws !== ws) return; this.ws = undefined; if (!this.manualClose) this.scheduleReconnect(); }); - ws.addEventListener('error', () => {}); + ws.addEventListener('error', () => { + // The 'close' event always follows 'error'; reconnect logic lives there. + }); } private onMessage(raw: unknown): void { - let frame: unknown; + let frame: ServerFrame; try { - frame = JSON.parse(typeof raw === 'string' ? raw : String(raw)); + frame = JSON.parse(typeof raw === 'string' ? raw : String(raw)) as ServerFrame; } catch { - this.handlers.onInvalidFrame?.(raw); return; } - const parsed = serverMessageSchema.safeParse(frame); - if (!parsed.success) { - const type = (frame as { readonly type?: unknown } | null)?.type; - if (typeof type !== 'string' || KNOWN_MESSAGE_TYPES.has(type)) { - this.handlers.onInvalidFrame?.(frame); - } - return; - } - const message = parsed.data; - switch (message.type) { - case 'hello': { - this.subscribeId += 1; - this.send({ - type: 'subscribe', - id: this.subscribeId, - session_id: this.sessionId, - agent_ids: this.agentIds !== undefined && this.agentIds.length > 0 ? [...this.agentIds] : undefined, - omit: this.omit !== undefined && this.omit.length > 0 ? [...this.omit] : undefined, - }); - return; - } + switch (frame.type) { case 'ack': { - if (message.id === this.subscribeId) { - this.handlers.onAck(message.code, message.msg); + // The subscribe_v2 ack: the server has attached the transcript stream + // by now — reconcile once per socket (ops emitted between the REST + // page load and this point are missed; the consumer refreshes). + if (!this.subscribeV2Acked && frame.id !== undefined && frame.id === this.subscribeV2Id) { + this.subscribeV2Acked = true; + this.handlers.onReconnected(); } return; } - case 'error': { - this.handlers.onProtocolError(message.code, message.msg); + case 'transcript.ops': { + const parsed = transcriptOpsEventSchema.safeParse(frame.payload); + if (!parsed.success) return; + this.handlers.onOps(parsed.data.agent_id, parsed.data.ops, { + at: frame.timestamp, + seq: parsed.data.seq, + }); return; } - default: { - this.handlers.onMessage(message); + case 'transcript.reset': { + // Snapshots are deliberately ignored by the chat store: full state is + // REST-sourced. Surface them to optional observers (audit panel). + if (this.handlers.onReset === undefined) return; + const parsed = transcriptResetEventSchema.safeParse(frame.payload); + if (!parsed.success) return; + this.handlers.onReset( + parsed.data.agent_id, + parsed.data.snapshot, + parsed.data.has_more_older, + { at: frame.timestamp, seq: parsed.data.seq }, + ); return; } + case 'ping': { + const nonce = (frame.payload as { nonce?: unknown } | undefined)?.nonce; + this.send({ type: 'pong', payload: { nonce } }); + return; + } + case 'resync_required': { + const sessionId = (frame.payload as { session_id?: unknown } | undefined)?.session_id; + if (sessionId === this.sessionId) this.handlers.onResyncRequired(); + return; + } + default: + // server_hello / ack / legacy session events — not consumed here. + return; } } private scheduleReconnect(): void { if (this.manualClose) return; this.reconnectAttempt += 1; - this.handlers.onReconnectScheduled?.(this.reconnectAttempt); const delay = Math.min(this.reconnectDelayMs * 2 ** (this.reconnectAttempt - 1), 10_000); this.reconnectTimer = setTimeout(() => { this.reconnectTimer = undefined; @@ -239,20 +271,21 @@ export class ChatWs { try { ws.send(JSON.stringify(frame)); } catch { + // best-effort; the close handler handles teardown } } } -/** Derive the `/api/v3/ws` WebSocket URL from a server base URL (or pass a full ws URL through). */ -function toWsV3Url(base: string): string { +/** Derive the `/api/v1/ws` WebSocket URL from a server base URL (or pass a full ws URL through). */ +function toWsUrl(base: string): string { const url = new URL(base); if (url.protocol === 'http:') url.protocol = 'ws:'; else if (url.protocol === 'https:') url.protocol = 'wss:'; if (url.protocol !== 'ws:' && url.protocol !== 'wss:') { throw new Error(`unsupported URL scheme for WS transport: ${base}`); } - if (!url.pathname.endsWith('/api/v3/ws')) { - url.pathname = `${url.pathname.replace(/\/$/, '')}/api/v3/ws`; + if (!url.pathname.endsWith('/api/v1/ws')) { + url.pathname = `${url.pathname.replace(/\/$/, '')}/api/v1/ws`; } url.search = ''; url.hash = ''; diff --git a/apps/vis/server/src/lib/agent-record-types.ts b/apps/vis/server/src/lib/agent-record-types.ts index 3e307e0f2..ff1e8f33a 100644 --- a/apps/vis/server/src/lib/agent-record-types.ts +++ b/apps/vis/server/src/lib/agent-record-types.ts @@ -33,12 +33,12 @@ import type { ExportSessionManifest, FileHistoryCheckpointed, FileHistoryTracked, + Forked, FullCompactionBegin, FullCompactionCancel, FullCompactionComplete, GoalClear, GoalCreate, - GoalForked, GoalUpdate, InteractionRequestEvent, InteractionResolvedEvent, @@ -54,6 +54,11 @@ import type { PromptAborted, PromptCompleted, PromptSteered, + SubagentCancelled, + SubagentCompleted, + SubagentFailed, + SubagentSpawned, + SubagentStarted, TaskStarted, TaskTerminated, TaskWaitDelivered, @@ -81,6 +86,7 @@ import type { ToolsResetActiveTools, ToolsSetActiveTools, } from '@moonshot-ai/agent-core-v2/agent/profile/profileOps'; +import type { ChangeNotifierSnapshotEvent } from '@moonshot-ai/agent-core-v2/agent/changeNotifier/changeNotifierOps'; import type { PermissionSetMode } from '@moonshot-ai/agent-core-v2/agent/permissionMode/permissionModeOps'; import type { PermissionRecordApprovalResult } from '@moonshot-ai/agent-core-v2/agent/permissionRules/permissionRulesOps'; import type { RuntimeSetBinding } from '@moonshot-ai/agent-core-v2/agent/runtimeBinding/runtimeBindingOps'; @@ -158,6 +164,7 @@ export interface WireMetadataHeader { */ export type AgentRecord = | WireMetadataHeader + | WireRecordOf<'changeNotifier.snapshot', ChangeNotifierSnapshotEvent> | WireRecordOf<'config.update', ConfigUpdate> | WireRecordOf<'context.append_loop_event', ContextAppendLoopEvent> | WireRecordOf<'context.append_message', ContextAppendMessage> @@ -169,7 +176,7 @@ export type AgentRecord = | WireRecordOf<'cron.delete', CronDeletePayload> | WireRecordOf<'file_history.checkpoint', FileHistoryCheckpointed> | WireRecordOf<'file_history.tracked', FileHistoryTracked> - | WireRecordOf<'forked', GoalForked> + | WireRecordOf<'forked', Forked> | WireRecordOf<'full_compaction.begin', FullCompactionBegin> | WireRecordOf<'full_compaction.cancel', FullCompactionCancel> | WireRecordOf<'full_compaction.complete', FullCompactionComplete> @@ -195,6 +202,11 @@ export type AgentRecord = | WireRecordOf<'prompt.completed', PromptCompleted> | WireRecordOf<'prompt.steered', PromptSteered> | WireRecordOf<'runtime.set_binding', RuntimeSetBinding> + | WireRecordOf<'subagent.cancelled', SubagentCancelled> + | WireRecordOf<'subagent.completed', SubagentCompleted> + | WireRecordOf<'subagent.failed', SubagentFailed> + | WireRecordOf<'subagent.spawned', SubagentSpawned> + | WireRecordOf<'subagent.started', SubagentStarted> | WireRecordOf<'swarm_mode.enter', SwarmModeEnter> | WireRecordOf<'swarm_mode.exit', SwarmModeExit> | WireRecordOf<'task.started', TaskStarted> diff --git a/apps/vis/server/src/lib/context-projector.ts b/apps/vis/server/src/lib/context-projector.ts index 9cc3aeb48..5cee1863e 100644 --- a/apps/vis/server/src/lib/context-projector.ts +++ b/apps/vis/server/src/lib/context-projector.ts @@ -541,6 +541,7 @@ export function projectContext( // are never part of context state: case 'metadata': case 'forked': + case 'changeNotifier.snapshot': case 'turn.prompt': case 'turn.steer': case 'turn.cancel': @@ -556,6 +557,11 @@ export function projectContext( case 'task.started': case 'task.terminated': case 'task.waitDelivered': + case 'subagent.spawned': + case 'subagent.started': + case 'subagent.completed': + case 'subagent.failed': + case 'subagent.cancelled': case 'cron.add': case 'cron.cursor': case 'cron.delete': diff --git a/apps/vis/web/package.json b/apps/vis/web/package.json index 91be7434d..a53087c15 100644 --- a/apps/vis/web/package.json +++ b/apps/vis/web/package.json @@ -34,7 +34,7 @@ "@types/react-dom": "^19.1.2", "@vitejs/plugin-react": "^4.4.1", "tailwindcss": "^4.1.4", - "typescript": "6.0.2", + "typescript": "7.0.2", "vite": "^6.3.3", "vite-plugin-singlefile": "^2.3.3", "vitest": "4.1.4" diff --git a/apps/vis/web/src/components/wire/renderers.tsx b/apps/vis/web/src/components/wire/renderers.tsx index 8ea9a0c4b..a3a657be9 100644 --- a/apps/vis/web/src/components/wire/renderers.tsx +++ b/apps/vis/web/src/components/wire/renderers.tsx @@ -347,6 +347,31 @@ export const WIRE_RENDERERS: RendererMap = { headline: () => ({ main: session forked }), }, + 'changeNotifier.snapshot': { + tone: 'meta', + label: 'notify', + headline: (r) => { + const parts: string[] = []; + if (r.agentsMdFiles !== null && r.agentsMdFiles !== undefined) { + parts.push(`${Object.keys(r.agentsMdFiles).length} agents.md`); + } + if (r.skillsHash !== null && r.skillsHash !== undefined) parts.push('skills'); + if (r.subagentNames !== null && r.subagentNames !== undefined) { + parts.push(`${r.subagentNames.length} profiles`); + } + if (r.modelPool !== null && r.modelPool !== undefined) { + parts.push(`${Object.keys(r.modelPool.models).length} pool models`); + } + return { + main: ( + + {parts.length === 0 ? (empty beliefs) : parts.join(' · ')} + + ), + }; + }, + }, + 'config.update': { tone: 'config', label: 'config', @@ -1313,6 +1338,61 @@ export const WIRE_RENDERERS: RendererMap = { }), }, + 'subagent.spawned': { + tone: 'subagent', + label: 'sub+', + headline: (r) => ({ + main: ( + + + {r.swarmIndex === undefined ? 'child' : `member ${r.swarmIndex}`} + + {r.subagentId} + {r.subagentName} + + ), + right: r.runInBackground ? background : undefined, + }), + }, + + 'subagent.started': { + tone: 'subagent', + label: 'sub↻', + headline: (r) => ({ main: {r.subagentId} }), + }, + + 'subagent.completed': { + tone: 'subagent', + label: 'sub✓', + headline: (r) => ({ + main: ( + + {r.subagentId} + {truncate(r.resultSummary, 120)} + + ), + }), + }, + + 'subagent.failed': { + tone: 'subagent', + label: 'sub✗', + headline: (r) => ({ + main: ( + + {r.subagentId} + {truncate(r.error, 120)} + + ), + }), + }, + + 'subagent.cancelled': { + tone: 'subagent', + label: 'sub⊘', + headline: (r) => ({ main: {r.subagentId} }), + }, + 'token_counting.measured': { tone: 'meta', label: 'tokens', diff --git a/apps/vis/web/test/renderers.test.ts b/apps/vis/web/test/renderers.test.ts index 6887ddfc4..8ba05e162 100644 --- a/apps/vis/web/test/renderers.test.ts +++ b/apps/vis/web/test/renderers.test.ts @@ -58,8 +58,7 @@ const HISTORICAL_OR_HEADER_TYPES = new Set([ ]); describe('wire renderers', () => { - it('covers every durable record in the current core-v2 wire manifest', async () => { - const manifestPath = resolve( + it('covers every durable record in the current core-v2 wire manifest', async () => { const manifestPath = resolve( import.meta.dirname, '../../../../packages/agent-core-v2/docs/wire-manifest.d.ts', ); @@ -77,6 +76,37 @@ describe('wire renderers', () => { expect(renderedCurrentTypes).toEqual(upstreamTypes); }); + it('renders a change-notifier snapshot written before the belief fields existed', () => { + const renderer = WIRE_RENDERERS['changeNotifier.snapshot']; + const legacy = { + type: 'changeNotifier.snapshot', + agentId: 'main', + agentsMdHash: 'legacy-hash', + skillsHash: 'legacy-skills', + subagentNames: ['default'], + modelPoolAliases: ['k1'], + } as unknown as Parameters[0]; + const headline = renderer.headline(legacy); + const markup = renderToStaticMarkup(headline.main); + expect(markup).toContain('1 profiles'); + }); + + it('renders the model pool size from the models record', () => { + const renderer = WIRE_RENDERERS['changeNotifier.snapshot']; + const record = { + type: 'changeNotifier.snapshot', + agentId: 'main', + agentsMdHash: null, + agentsMdFiles: { '/p/AGENTS.md': 'hash' }, + skillsHash: null, + subagentNames: null, + modelPool: { defaultModel: 'k1', models: { k1: '', k2: '' } }, + } as unknown as Parameters[0]; + const markup = renderToStaticMarkup(renderer.headline(record).main); + expect(markup).toContain('1 agents.md'); + expect(markup).toContain('2 pool models'); + }); + it('distinguishes oversized snapshots from files that did not exist', () => { const renderer = WIRE_RENDERERS['file_history.tracked']; const oversized = trackedRecord({ diff --git a/apps/vscode/CHANGELOG.md b/apps/vscode/CHANGELOG.md index 2be227645..475477d0d 100644 --- a/apps/vscode/CHANGELOG.md +++ b/apps/vscode/CHANGELOG.md @@ -1,5 +1,40 @@ # Changelog +## 0.8.3 + +### Patch Changes + +- [#4186](https://github.com/MoonshotAI/kimi-code/pull/4186) [`0341173`](https://github.com/MoonshotAI/kimi-code/commit/034117338c382efb8a7f8d13b4020e1c407fa692) Thanks [@gaoyuan1223m](https://github.com/gaoyuan1223m)! - Add Back navigation to the VS Code question prompt so users can return to earlier questions without losing answers. + +- Updated dependencies [[`c1459a6`](https://github.com/MoonshotAI/kimi-code/commit/c1459a61845056832b85a0a220ee11a2bc5132f8), [`9f0693b`](https://github.com/MoonshotAI/kimi-code/commit/9f0693becb63a329cbf764325688448e76f40922)]: + - @moonshot-ai/kimi-code-sdk@0.21.1 + - @moonshot-ai/kimi-code-oauth@0.5.0 + +## 0.8.2 + +### Patch Changes + +- Updated dependencies [[`cbd7540`](https://github.com/MoonshotAI/kimi-code/commit/cbd754049a114ee36d1b27675c82819e4963c692), [`e5b4b88`](https://github.com/MoonshotAI/kimi-code/commit/e5b4b88ba93d5a27aa9a36cf847eed4f1aa39c48)]: + - @moonshot-ai/kimi-code-sdk@0.21.0 + - @moonshot-ai/migration-legacy@0.1.17 + +## 0.8.1 + +### Patch Changes + +- [#3915](https://github.com/MoonshotAI/kimi-code/pull/3915) [`02d829e`](https://github.com/MoonshotAI/kimi-code/commit/02d829e13120781dfd2f7aa5e78b9ce56cfc013a) Thanks [@Grapedge](https://github.com/Grapedge)! - Fix the VS Code question dialog submitting unfinished custom answers when pressing Enter to confirm IME input. + +## 0.8.0 + +### Minor Changes + +- [#3852](https://github.com/MoonshotAI/kimi-code/pull/3852) [`bbcdde0`](https://github.com/MoonshotAI/kimi-code/commit/bbcdde0b13a06fbadedca680ef565a5b01cb6c61) Thanks [@Grapedge](https://github.com/Grapedge)! - Add anonymous usage telemetry to the VS Code extension, following the VS Code telemetry setting. + +### Patch Changes + +- Updated dependencies [[`bbcdde0`](https://github.com/MoonshotAI/kimi-code/commit/bbcdde0b13a06fbadedca680ef565a5b01cb6c61)]: + - @moonshot-ai/kimi-telemetry@0.2.0 + ## 0.7.5 ### Patch Changes diff --git a/apps/vscode/package.json b/apps/vscode/package.json index 4dc3c879d..bf2e9bd6f 100644 --- a/apps/vscode/package.json +++ b/apps/vscode/package.json @@ -3,7 +3,7 @@ "publisher": "moonshot-ai", "displayName": "Kimi Code", "description": "Official Kimi Code plugin for VS Code", - "version": "0.7.5", + "version": "0.8.3", "private": true, "license": "Apache-2.0", "type": "module", @@ -290,6 +290,7 @@ "@fontsource-variable/inter": "5.2.8", "@moonshot-ai/kimi-code-oauth": "workspace:^", "@moonshot-ai/kimi-code-sdk": "workspace:^", + "@moonshot-ai/kimi-telemetry": "workspace:^", "@moonshot-ai/migration-legacy": "workspace:^", "@radix-ui/react-accordion": "^1.2.12", "@tabler/icons-react": "^3.36.0", diff --git a/apps/vscode/scripts/watch-extension.mjs b/apps/vscode/scripts/watch-extension.mjs index 9dadf992d..f8d2849b4 100644 --- a/apps/vscode/scripts/watch-extension.mjs +++ b/apps/vscode/scripts/watch-extension.mjs @@ -10,7 +10,6 @@ const sourceDirectories = [ join(extensionRoot, 'src'), join(extensionRoot, 'shared'), ...[ - 'kaos', 'kosong', 'migration-legacy', 'node-sdk', diff --git a/apps/vscode/shared/errors.ts b/apps/vscode/shared/errors.ts index 4640b54ff..818921adc 100644 --- a/apps/vscode/shared/errors.ts +++ b/apps/vscode/shared/errors.ts @@ -41,6 +41,8 @@ export const PREFLIGHT_CODES = new Set([ "session.state_not_found", "session.state_invalid", "session.init_failed", + "session.occupied", + "session.stale", "shell.git_bash_not_found", ]); @@ -80,6 +82,9 @@ export const ERROR_MESSAGES: Record = { "session.init_failed": "Failed to initialize the session.", "session.closed": "Session was closed.", "session.fork_active_turn": "Wait for the current response before forking.", + "session.occupied": + "This session is in use by another Kimi Code process. Stop the session in that process or exit it, then try again.", + "session.stale": "Session was updated by another client. Reopen the session to load the latest updates.", "turn.agent_busy": "A message is being sent. Please wait.", "provider.api_error": "Service temporarily unavailable.", "provider.rate_limit": "Too many requests. Please try again later.", diff --git a/apps/vscode/src/extension.ts b/apps/vscode/src/extension.ts index 4418526fb..581057ba0 100644 --- a/apps/vscode/src/extension.ts +++ b/apps/vscode/src/extension.ts @@ -9,6 +9,7 @@ import { type LegacyMigrationRunResult, } from "./migration"; import { updateLoginContext } from "./utils/context"; +import { activateExtensionTelemetry, deactivateExtensionTelemetry } from "./telemetry"; let outputChannel: vscode.OutputChannel | undefined; let provider: KimiWebviewProvider | undefined; @@ -19,7 +20,9 @@ const LEGACY_WARNING_NOTICE_KEY = "kimi.legacyMigration.warningNotice.v1"; export async function activate(context: vscode.ExtensionContext): Promise { outputChannel = vscode.window.createOutputChannel("Kimi Code"); const remoteInfo = vscode.env.remoteName ? ` (remote: ${vscode.env.remoteName})` : ""; - log(`Kimi Code ${VSCodeSettings.getExtensionConfig().version} activating${remoteInfo}`); + const version = VSCodeSettings.getExtensionConfig().version; + log(`Kimi Code ${version} activating${remoteInfo}`); + context.subscriptions.push(activateExtensionTelemetry({ version, log })); provider = new KimiWebviewProvider( context.extensionUri, @@ -143,8 +146,12 @@ export async function activate(context: vscode.ExtensionContext): Promise export async function deactivate(): Promise { log("Kimi Code deactivating"); - await provider?.shutdown(); - provider = undefined; + try { + await provider?.shutdown(); + } finally { + provider = undefined; + await deactivateExtensionTelemetry(); + } } function log(message: string): void { diff --git a/apps/vscode/src/handlers/config.handler.ts b/apps/vscode/src/handlers/config.handler.ts index 87d9b7dcf..a58759198 100644 --- a/apps/vscode/src/handlers/config.handler.ts +++ b/apps/vscode/src/handlers/config.handler.ts @@ -25,7 +25,7 @@ const SLASH_COMMANDS: SlashCommandInfo[] = [ { name: "auto", aliases: ["afk"], - description: "Toggle Auto mode (fully autonomous; the agent will not ask questions)", + description: "Toggle Auto mode (the agent will not ask questions; only plans in plan mode wait for your review)", }, { name: "plan", aliases: [], description: "Toggle plan mode. Usage: /plan [on|off|view|clear]" }, { @@ -94,7 +94,7 @@ const getSlashCommands: Handler = async (_, ctx) => { try { const skills = await ctx.harness.listWorkspaceSkills(ctx.workDir); const skillCommands = skills - .filter((skill) => isUserActivatableSkill(skill.type)) + .filter((skill) => isUserActivatableSkill(skill.type) && skill.scopes === undefined) .toSorted((left, right) => left.name.localeCompare(right.name)) .map((skill) => ({ name: `skill:${skill.name}`, diff --git a/apps/vscode/src/handlers/slash-command.ts b/apps/vscode/src/handlers/slash-command.ts index 087c823fb..55c933ea3 100644 --- a/apps/vscode/src/handlers/slash-command.ts +++ b/apps/vscode/src/handlers/slash-command.ts @@ -129,7 +129,7 @@ async function toggleLegacyPermission( return; } emit(flags.afk - ? "Auto mode enabled. Questions will be auto-dismissed and tool calls auto-approved." + ? "Auto mode enabled. Questions will be auto-dismissed and tool calls auto-approved; plans in plan mode still wait for your review." : flags.yolo ? "Auto mode disabled. You are back at the keyboard. Yolo is still on." : "Auto mode disabled. You are back at the keyboard."); diff --git a/apps/vscode/src/runtime/kimi-runtime.ts b/apps/vscode/src/runtime/kimi-runtime.ts index 8302ef33c..27d3d41f7 100644 --- a/apps/vscode/src/runtime/kimi-runtime.ts +++ b/apps/vscode/src/runtime/kimi-runtime.ts @@ -5,6 +5,7 @@ import { type SessionSummary, type ThinkingEffort, } from "@moonshot-ai/kimi-code-sdk"; +import { setTelemetryContext, track, withTelemetryContext } from "@moonshot-ai/kimi-telemetry"; import type { RuntimeBroadcast } from "./session-runtime"; import { @@ -66,6 +67,11 @@ export class KimiRuntime { platform: "kimi_code_vscode", }, uiMode: "vscode", + telemetry: { + track, + withContext: withTelemetryContext, + setContext: setTelemetryContext, + }, }); } diff --git a/apps/vscode/src/runtime/replay-adapter.ts b/apps/vscode/src/runtime/replay-adapter.ts index facd978ac..b8373d904 100644 --- a/apps/vscode/src/runtime/replay-adapter.ts +++ b/apps/vscode/src/runtime/replay-adapter.ts @@ -15,6 +15,7 @@ import type { ToolCall, } from "../../shared/legacy-sdk"; import type { UIStreamEvent } from "../../shared/types"; +import { hookResultBody, isUserPromptSubmitHookPart, withoutUserPromptSubmitHookParts } from "../utils/hook-parts"; import { toLegacyToolName } from "./event-adapter"; import { toLegacyDisplay } from "./tool-display"; @@ -94,7 +95,11 @@ function replayAgentToWebviewEvents( const message = record.message; if (message.role === "user") { if (!isVisibleUserMessage(message.origin)) break; - const imported = importedContextReplay(message.content); + const visibleContent = stripBundledSkillParts( + withoutUserPromptSubmitHookParts(message.content), + message.origin, + ); + const imported = importedContextReplay(visibleContent); completeTurn(); step = 0; turnOpen = true; @@ -103,12 +108,24 @@ function replayAgentToWebviewEvents( { type: "TurnBegin", payload: { - user_input: imported?.input ?? replayUserInput(message.content, message.origin), + user_input: imported?.input ?? replayUserInput(visibleContent, message.origin), }, }, sessionId, ), ); + const hookParts = message.content.filter(isUserPromptSubmitHookPart); + if (hookParts.length > 0) { + ensureStep(); + for (const part of hookParts) { + events.push( + withSession( + { type: "ContentPart", payload: { type: "text", text: hookResultBody(part.text) } }, + sessionId, + ), + ); + } + } if (imported !== undefined) { ensureStep(); events.push( @@ -516,6 +533,38 @@ function toLegacyContent(content: readonly ContentPart[]): LegacyContentPart[] { return result; } +function isSkillActivationPart(part: ContentPart): boolean { + return ( + part.type === "text" && + (part as { meta?: { source?: unknown } }).meta?.source === "skill activation" + ); +} + +function stripBundledSkillParts( + content: readonly ContentPart[], + origin: PromptOrigin | undefined, +): ContentPart[] { + let remainingSkillParts = + origin?.kind === "user" && + "skillActivations" in origin && + Array.isArray(origin.skillActivations) && + !content.some(isSkillActivationPart) + ? origin.skillActivations.length + : 0; + return content.filter((part) => { + if (isSkillActivationPart(part)) return false; + if ( + remainingSkillParts > 0 && + part.type === "text" && + (part as { meta?: { source?: unknown } }).meta?.source === undefined + ) { + remainingSkillParts--; + return false; + } + return true; + }); +} + function isVisibleUserMessage(origin: PromptOrigin | undefined): boolean { if (origin === undefined || origin.kind === "user") return true; if (origin.kind === "skill_activation" || origin.kind === "plugin_command") { diff --git a/apps/vscode/src/telemetry.ts b/apps/vscode/src/telemetry.ts new file mode 100644 index 000000000..dbfba6976 --- /dev/null +++ b/apps/vscode/src/telemetry.ts @@ -0,0 +1,92 @@ +import * as vscode from "vscode"; + +import { + createKimiDeviceId, + KIMI_CODE_PROVIDER_NAME, + KIMI_REGION_PROFILES, + resolveKimiRegion, +} from "@moonshot-ai/kimi-code-oauth"; +import { + KimiAuthFacade, + loadRuntimeConfigSafe, + resolveConfigPath, + resolveKimiHome, + type KimiConfig, +} from "@moonshot-ai/kimi-code-sdk"; +import { + initializeTelemetry, + setTelemetryEnabled, + shouldEnableTelemetry, + shutdownTelemetry, + track, +} from "@moonshot-ai/kimi-telemetry"; + +const SHUTDOWN_TIMEOUT_MS = 2000; + +export interface ExtensionTelemetryOptions { + readonly version: string; + readonly log: (message: string) => void; +} + +export function activateExtensionTelemetry(options: ExtensionTelemetryOptions): vscode.Disposable { + const homeDir = resolveKimiHome(); + let firstLaunch = false; + const deviceId = createKimiDeviceId(homeDir, { + onFirstLaunch: () => { + firstLaunch = true; + }, + }); + const configPath = resolveConfigPath({ homeDir }); + const config = readTelemetryConfig(configPath); + const auth = new KimiAuthFacade({ homeDir, configPath }); + + initializeTelemetry({ + homeDir, + deviceId, + enabled: config.telemetry !== false, + initiallyEnabled: vscode.env.isTelemetryEnabled, + appName: "kimi-code-vscode", + version: options.version, + uiMode: "vscode", + model: config.defaultModel, + endpoint: () => telemetryEndpoint(homeDir), + getAccessToken: async () => (await auth.getCachedAccessToken(KIMI_CODE_PROVIDER_NAME)) ?? null, + onUnexpectedError: (error) => options.log(`Telemetry dropped a property: ${error.message}`), + }); + + const staticallyEnabled = shouldEnableTelemetry({ enabled: config.telemetry !== false }); + if (firstLaunch) track("first_launch"); + + return vscode.env.onDidChangeTelemetryEnabled((enabled) => { + if (staticallyEnabled) setTelemetryEnabled(enabled); + }); +} + +export async function deactivateExtensionTelemetry(): Promise { + await shutdownTelemetry({ timeoutMs: SHUTDOWN_TIMEOUT_MS }); +} + +function readTelemetryConfig( + configPath: string, +): Pick { + try { + const { config, fileError } = loadRuntimeConfigSafe(configPath); + if (fileError !== undefined) return {}; + return config; + } catch { + return {}; + } +} + +function telemetryEndpoint(homeDir: string): string | undefined { + const oauth = loadRuntimeConfigSafe(resolveConfigPath({ homeDir })).config.providers?.[ + KIMI_CODE_PROVIDER_NAME + ]?.oauth; + const region = resolveKimiRegion({ + configuredOAuthHost: oauth?.oauthHost, + configuredOAuthKey: oauth?.key, + homeDir, + readMarker: process.env["KIMI_CODE_REGION_MARKER"] !== "off", + }); + return KIMI_REGION_PROFILES[region].telemetryEndpoint; +} diff --git a/apps/vscode/src/utils/hook-parts.ts b/apps/vscode/src/utils/hook-parts.ts new file mode 100644 index 000000000..6dde03d02 --- /dev/null +++ b/apps/vscode/src/utils/hook-parts.ts @@ -0,0 +1,21 @@ +import type { ContentPart } from "@moonshot-ai/kimi-code-sdk"; + +export function isUserPromptSubmitHookPart( + part: ContentPart, +): part is Extract { + return ( + part.type === "text" && + (part as { meta?: { source?: unknown } }).meta?.source === "user prompt submit hook" + ); +} + +export function withoutUserPromptSubmitHookParts( + content: readonly ContentPart[], +): ContentPart[] { + return content.filter((part) => !isUserPromptSubmitHookPart(part)); +} + +export function hookResultBody(text: string): string { + const match = /^\n([\s\S]*)\n<\/hook_result>$/.exec(text); + return match?.[1] ?? text; +} diff --git a/apps/vscode/src/utils/session-context.ts b/apps/vscode/src/utils/session-context.ts index e4ff4ce5b..1248b41f2 100644 --- a/apps/vscode/src/utils/session-context.ts +++ b/apps/vscode/src/utils/session-context.ts @@ -5,6 +5,8 @@ import type { ToolCall, } from "@moonshot-ai/kimi-code-sdk"; +import { withoutUserPromptSubmitHookParts } from "./hook-parts"; + const INTERNAL_ORIGINS = new Set([ "injection", "system_trigger", @@ -200,7 +202,7 @@ function formatPartMarkdown(part: ContentPart): string { } function stringifyParts(parts: readonly ContentPart[]): string { - return parts.map((part) => { + return withoutUserPromptSubmitHookParts(parts).map((part) => { if (part.type === "text") return part.text; if (part.type === "think") return part.think.trim() ? `\n${part.think}\n` : ""; if (part.type === "image_url") return "[image]"; diff --git a/apps/vscode/test/event-adapter.test.ts b/apps/vscode/test/event-adapter.test.ts index fc40ae541..10f209f2c 100644 --- a/apps/vscode/test/event-adapter.test.ts +++ b/apps/vscode/test/event-adapter.test.ts @@ -7,7 +7,7 @@ import { describe, expect, it } from 'vitest'; -import { isPreflightError } from '../shared/errors'; +import { isPreflightError, getUserMessage } from '../shared/errors'; import { adaptSdkEvent, createEventAdapterState, @@ -567,4 +567,13 @@ describe('event adapter (projects SDK events into the legacy Webview contract)', it('classifies a missing Windows Git Bash runtime as a preflight error', () => { expect(isPreflightError('shell.git_bash_not_found')).toBe(true); }); + + it('classifies session occupancy conflicts as preflight errors with user-visible copy', () => { + expect(isPreflightError('session.occupied')).toBe(true); + expect(isPreflightError('session.stale')).toBe(true); + expect(getUserMessage('session.occupied', 'fallback')).toBe( + 'This session is in use by another Kimi Code process. Stop the session in that process or exit it, then try again.', + ); + expect(getUserMessage('session.stale', 'fallback')).not.toBe('fallback'); + }); }); diff --git a/apps/vscode/test/kimi-harness.integration.test.ts b/apps/vscode/test/kimi-harness.integration.test.ts index af5a3a3cc..84678afdd 100644 --- a/apps/vscode/test/kimi-harness.integration.test.ts +++ b/apps/vscode/test/kimi-harness.integration.test.ts @@ -401,6 +401,33 @@ describe("VS Code Kimi harness integration (shares one in-process SDK home)", () ]); }); + it("omits skills restricted to specific client scopes from the slash commands", async () => { + const commands = await configHandlers[Methods.GetSlashCommands]!(undefined, { + workDir: "/workspace", + harness: { + listWorkspaceSkills: async () => [ + { name: "tui-only", description: "TUI only", path: "/skills/tui-only", source: "builtin", type: "inline", scopes: ["tui"] }, + { name: "web-only", description: "Web only", path: "/skills/web-only", source: "builtin", type: "inline", scopes: ["web"] }, + { name: "unrestricted", description: "Unrestricted", path: "/skills/unrestricted", source: "builtin", type: "inline" }, + ], + }, + logError: () => undefined, + } as unknown as HandlerContext); + + expect((commands as Array<{ name: string }>).map((command) => command.name)).toEqual([ + "init", + "compact", + "clear", + "yolo", + "auto", + "plan", + "add-dir", + "export", + "import", + "skill:unrestricted", + ]); + }); + it("sends the package version in User-Agent when VS Code prompts the provider", async () => { const rig = await createRuntimeRig(); routeSuccessfulPrompt(rig.provider); diff --git a/apps/vscode/test/kimi-runtime.test.ts b/apps/vscode/test/kimi-runtime.test.ts index 804a6c946..fb28f1050 100644 --- a/apps/vscode/test/kimi-runtime.test.ts +++ b/apps/vscode/test/kimi-runtime.test.ts @@ -20,6 +20,7 @@ import type { SessionSummary, ThinkingEffort, } from "@moonshot-ai/kimi-code-sdk"; +import { setTelemetryContext, track, withTelemetryContext } from "@moonshot-ai/kimi-telemetry"; import { describe, expect, it, vi } from "vitest"; import { Events } from "../shared/bridge"; @@ -278,6 +279,11 @@ describe("Kimi runtime (owns shared SDK sessions for Webviews)", () => { platform: "kimi_code_vscode", }, uiMode: "vscode", + telemetry: { + track, + withContext: withTelemetryContext, + setContext: setTelemetryContext, + }, }); expect(runtime.harness).toBe(sdkFactories.harness as unknown as KimiHarness); await runtime.dispose(); diff --git a/apps/vscode/test/replay-adapter.test.ts b/apps/vscode/test/replay-adapter.test.ts index 34ea632b8..f4f526aa6 100644 --- a/apps/vscode/test/replay-adapter.test.ts +++ b/apps/vscode/test/replay-adapter.test.ts @@ -397,6 +397,21 @@ describe("replay adapter (renders the public SDK resume state for the Webview)", }), ), record(message("user", [{ type: "text", text: "Visible prompt" }], { origin: { kind: "user" } }), 2), + record( + message( + "user", + [ + { + type: "text", + text: '\nmerged hook note\n', + meta: { contentType: "text/xml", source: "user prompt submit hook" }, + } as ContentPart, + { type: "text", text: "Merged prompt" }, + ], + { origin: { kind: "user" } }, + ), + 3, + ), ]); expect(events.filter((event) => event.type === "TurnBegin")).toEqual([ @@ -405,7 +420,25 @@ describe("replay adapter (renders the public SDK resume state for the Webview)", payload: { user_input: [{ type: "text", text: "Visible prompt" }] }, _sessionId: "session-1", }, + { + type: "TurnBegin", + payload: { user_input: [{ type: "text", text: "Merged prompt" }] }, + _sessionId: "session-1", + }, ]); + const hookIndex = events.findIndex( + (event) => event.type === "ContentPart" && JSON.stringify(event).includes("merged hook note"), + ); + expect(events[hookIndex - 1]).toEqual({ + type: "StepBegin", + payload: { n: 1 }, + _sessionId: "session-1", + }); + expect(events[hookIndex]).toEqual({ + type: "ContentPart", + payload: { type: "text", text: "merged hook note" }, + _sessionId: "session-1", + }); }); it("restores a user-invoked skill as its original slash command", () => { @@ -430,6 +463,64 @@ describe("replay adapter (renders the public SDK resume state for the Webview)", }); }); + it.each([ + { input: "/skill:review src/app.ts", skills: [{ skillName: "review", skillArgs: "src/app.ts" }] }, + { input: "Review /skill:review src/app.ts", skills: [{ skillName: "review", skillArgs: "" }] }, + { + input: "/skill:review /skill:security src/app.ts", + skills: [{ skillName: "review", skillArgs: "" }, { skillName: "security", skillArgs: "" }], + }, + { input: "/skill:review /skill:review src/app.ts", skills: [{ skillName: "review", skillArgs: "" }] }, + ].flatMap((fixture) => [ + { ...fixture, format: "marked" }, + { ...fixture, format: "legacy" }, + ]))("restores bundled skill input and media without expanded instructions ($input, $format)", ({ input, skills, format }) => { + const skillActivations = skills.map((skill, index) => ({ + ...skill, + activationId: `activation-${index + 1}`, + trigger: "user-slash" as const, + })); + const content: ContentPart[] = skillActivations.map((activation) => ({ + type: "text", + text: `Skill instructions.`, + meta: format === "marked" + ? { source: "skill activation", activationId: activation.activationId } + : undefined, + })); + content.push( + { type: "text", text: input }, + { type: "image_url", imageUrl: { url: "file:///workspace/a.png", id: "image-1" } }, + { type: "video_url", videoUrl: { url: "file:///workspace/a.mp4", id: "video-1" } }, + ); + const origin = { kind: "user" as const, skillActivations }; + const events = replay([record(message("user", content, { origin }))]); + + expect(events).toContainEqual({ + type: "TurnBegin", + payload: { + user_input: [ + { type: "text", text: input }, + { type: "image_url", image_url: { url: "file:///workspace/a.png", id: "image-1" } }, + { type: "video_url", video_url: { url: "file:///workspace/a.mp4", id: "video-1" } }, + ], + }, + _sessionId: "session-1", + }); + }); + + it("keeps user-authored skill XML without activation metadata", () => { + const input = 'Keep this quoted text.'; + const events = replay([ + record(message("user", [{ type: "text", text: input }], { origin: { kind: "user" } })), + ]); + + expect(events).toContainEqual({ + type: "TurnBegin", + payload: { user_input: [{ type: "text", text: input }] }, + _sessionId: "session-1", + }); + }); + it("restores imported context as the original command and confirmation", () => { const events = replay([ record( diff --git a/apps/vscode/test/telemetry.test.ts b/apps/vscode/test/telemetry.test.ts new file mode 100644 index 000000000..449532c7b --- /dev/null +++ b/apps/vscode/test/telemetry.test.ts @@ -0,0 +1,212 @@ +/** + * Scenario: the extension host joins the shared v1 telemetry pipeline under a three-layer consent gate. + * Responsibilities: initialize the shared client with extension identity, apply the VS Code global + * telemetry switch dynamically, emit first_launch on device-id minting, and shut down with a short timeout. + * Wiring: the real composition root; VS Code, kimi-telemetry, oauth, and SDK config/auth boundaries are mocked. + * Run: pnpm exec vitest run --config apps/vscode/vitest.config.ts test/telemetry.test.ts + */ +import { beforeEach, describe, expect, it, vi } from "vitest"; + +const host = vi.hoisted(() => { + const state = { + isTelemetryEnabled: true, + telemetryListener: undefined as ((enabled: boolean) => void) | undefined, + deviceIdFirstLaunch: false, + configTelemetry: undefined as boolean | undefined, + configModel: "kimi-k2", + accessToken: "token-1" as string | null, + staticallyEnabled: true, + }; + return { + state, + createKimiDeviceId: vi.fn((_homeDir: string, options?: { onFirstLaunch?: () => void }) => { + if (state.deviceIdFirstLaunch) options?.onFirstLaunch?.(); + return "device-1"; + }), + initializeTelemetry: vi.fn(), + setTelemetryEnabled: vi.fn(), + shouldEnableTelemetry: vi.fn(() => host.state.staticallyEnabled), + track: vi.fn(), + shutdownTelemetry: vi.fn(async () => undefined), + installCrashHandlers: vi.fn(), + resolveKimiRegion: vi.fn(() => "global" as const), + loadRuntimeConfigSafe: vi.fn(() => ({ + config: { + telemetry: host.state.configTelemetry, + defaultModel: host.state.configModel, + providers: { + "managed:kimi-code": { oauth: { key: "oauth/kimi-code-global", oauthHost: "https://auth.kimi.ai" } }, + }, + }, + })), + resolveConfigPath: vi.fn(() => "/kimi-home/config.toml"), + resolveKimiHome: vi.fn(() => "/kimi-home"), + getCachedAccessToken: vi.fn(async () => host.state.accessToken), + }; +}); + +vi.mock("vscode", () => ({ + env: { + get isTelemetryEnabled() { + return host.state.isTelemetryEnabled; + }, + onDidChangeTelemetryEnabled: vi.fn((listener: (enabled: boolean) => void) => { + host.state.telemetryListener = listener; + return { dispose: vi.fn() }; + }), + }, +})); + +vi.mock("@moonshot-ai/kimi-telemetry", () => ({ + initializeTelemetry: host.initializeTelemetry, + setTelemetryEnabled: host.setTelemetryEnabled, + shouldEnableTelemetry: host.shouldEnableTelemetry, + shutdownTelemetry: host.shutdownTelemetry, + track: host.track, + installCrashHandlers: host.installCrashHandlers, +})); + +vi.mock("@moonshot-ai/kimi-code-oauth", () => ({ + createKimiDeviceId: host.createKimiDeviceId, + KIMI_CODE_PROVIDER_NAME: "managed:kimi-code", + KIMI_REGION_PROFILES: { + "mainland-cn": { telemetryEndpoint: "https://telemetry-logs.example.com/v1/event" }, + global: { telemetryEndpoint: "https://telemetry-logs.example.net/v1/event" }, + }, + resolveKimiRegion: host.resolveKimiRegion, +})); + +vi.mock("@moonshot-ai/kimi-code-sdk", () => ({ + KimiAuthFacade: class { + getCachedAccessToken = host.getCachedAccessToken; + }, + loadRuntimeConfigSafe: host.loadRuntimeConfigSafe, + resolveConfigPath: host.resolveConfigPath, + resolveKimiHome: host.resolveKimiHome, +})); + +import { + activateExtensionTelemetry, + deactivateExtensionTelemetry, +} from "../src/telemetry"; + +function activate() { + return activateExtensionTelemetry({ version: "1.2.3", log: vi.fn() }); +} + +function initializeOptions() { + const call = host.initializeTelemetry.mock.calls[0]?.[0] as Record | undefined; + if (call === undefined) throw new Error("initializeTelemetry was not called"); + return call; +} + +describe("extension telemetry composition root", () => { + beforeEach(() => { + host.state.isTelemetryEnabled = true; + host.state.telemetryListener = undefined; + host.state.deviceIdFirstLaunch = false; + host.state.configTelemetry = undefined; + host.state.configModel = "kimi-k2"; + host.state.accessToken = "token-1"; + host.state.staticallyEnabled = true; + vi.clearAllMocks(); + }); + + it("initializes the shared stack with extension identity and the config gate", async () => { + activate(); + + const options = initializeOptions(); + expect(options).toMatchObject({ + homeDir: "/kimi-home", + deviceId: "device-1", + enabled: true, + initiallyEnabled: true, + appName: "kimi-code-vscode", + version: "1.2.3", + uiMode: "vscode", + model: "kimi-k2", + }); + expect(options["endpoint"]).toBeTypeOf("function"); + expect(options["getAccessToken"]).toBeTypeOf("function"); + await expect((options["getAccessToken"] as () => Promise)()).resolves.toBe("token-1"); + expect(host.shouldEnableTelemetry).toHaveBeenCalledWith({ enabled: true }); + }); + + it("maps config telemetry=false to the static gate", () => { + host.state.configTelemetry = false; + + activate(); + + expect(initializeOptions()["enabled"]).toBe(false); + expect(host.shouldEnableTelemetry).toHaveBeenCalledWith({ enabled: false }); + }); + + it("resolves the endpoint through the region resolver per flush", () => { + activate(); + + const endpoint = initializeOptions()["endpoint"] as () => string; + expect(endpoint()).toBe("https://telemetry-logs.example.net/v1/event"); + expect(host.resolveKimiRegion).toHaveBeenCalledWith( + expect.objectContaining({ + configuredOAuthHost: "https://auth.kimi.ai", + configuredOAuthKey: "oauth/kimi-code-global", + homeDir: "/kimi-home", + }), + ); + }); + + it("passes the VS Code global switch as the initial intake state", () => { + host.state.isTelemetryEnabled = false; + + activate(); + + expect(initializeOptions()["initiallyEnabled"]).toBe(false); + expect(host.setTelemetryEnabled).not.toHaveBeenCalled(); + }); + + it("follows live changes of the VS Code global switch", () => { + activate(); + const listener = host.state.telemetryListener; + if (listener === undefined) throw new Error("no telemetry listener registered"); + + listener(false); + expect(host.setTelemetryEnabled).toHaveBeenLastCalledWith(false); + listener(true); + expect(host.setTelemetryEnabled).toHaveBeenLastCalledWith(true); + }); + + it("ignores live changes when the static gates are closed", () => { + host.state.staticallyEnabled = false; + + activate(); + host.state.telemetryListener?.(true); + + expect(host.setTelemetryEnabled).not.toHaveBeenCalled(); + }); + + it("emits first_launch when the device id is minted", () => { + host.state.deviceIdFirstLaunch = true; + + activate(); + + expect(host.track).toHaveBeenCalledWith("first_launch"); + }); + + it("does not emit first_launch for an existing device id", () => { + activate(); + + expect(host.track).not.toHaveBeenCalled(); + }); + + it("never installs crash handlers in the shared extension host", () => { + activate(); + + expect(host.installCrashHandlers).not.toHaveBeenCalled(); + }); + + it("shuts down with a short timeout on deactivate", async () => { + await deactivateExtensionTelemetry(); + + expect(host.shutdownTelemetry).toHaveBeenCalledWith({ timeoutMs: 2000 }); + }); +}); diff --git a/apps/vscode/test/webview/QuestionDialog.test.tsx b/apps/vscode/test/webview/QuestionDialog.test.tsx new file mode 100644 index 000000000..32ccafffd --- /dev/null +++ b/apps/vscode/test/webview/QuestionDialog.test.tsx @@ -0,0 +1,378 @@ +import { act, fireEvent, render, screen, waitFor, within } from '@testing-library/react'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { QuestionDialog } from '@/components/QuestionDialog'; +import { useChatStore } from '@/stores'; +import type { QuestionItem } from 'shared/legacy-sdk'; + +const respondQuestion = vi.fn().mockResolvedValue(undefined); + +function makeQuestion(question: string, labels: string[], multiSelect = false): QuestionItem { + return { + question, + options: labels.map((label) => ({ label })), + multi_select: multiSelect, + }; +} + +function setPendingQuestion(questions: QuestionItem[], id = 'request-1') { + useChatStore.setState({ + pendingQuestion: { id, tool_call_id: 'tool-call-1', questions }, + respondQuestion, + }); +} + +function renderQuestion(questions: QuestionItem[], id?: string) { + setPendingQuestion(questions, id); + return render(); +} + +function optionButton(label: string) { + const button = screen.getByText(label).closest('button'); + if (!button) throw new Error(`No button contains ${label}`); + return button; +} + +function customResponseButton() { + return screen.getByRole('button', { name: /Custom response/ }) as HTMLButtonElement; +} + +function customInput() { + return screen.getByPlaceholderText(/Enter your response/) as HTMLInputElement; +} + +function createDeferred() { + let resolve!: () => void; + const promise = new Promise((resolvePromise) => { + resolve = resolvePromise; + }); + return { promise, resolve }; +} + +describe('QuestionDialog', () => { + beforeEach(() => { + respondQuestion.mockReset(); + respondQuestion.mockResolvedValue(undefined); + useChatStore.setState({ pendingQuestion: null, respondQuestion }); + }); + + it('renders nothing without a pending question or question items', () => { + const { container } = render(); + expect(container.firstChild).toBeNull(); + + act(() => { + setPendingQuestion([]); + }); + expect(container.firstChild).toBeNull(); + }); + + it('preserves single-select answers when navigating backward and forward', async () => { + renderQuestion([ + { + ...makeQuestion('First question', ['Alpha', 'Beta']), + header: 'Setup', + options: [{ label: 'Alpha', description: 'First option' }, { label: 'Beta' }], + }, + makeQuestion('Second question', ['Gamma', 'Delta']), + makeQuestion('Final question', ['Yes', 'No']), + ]); + + expect(screen.getByText('Question 1 of 3')).toBeTruthy(); + expect(screen.getByText('Setup')).toBeTruthy(); + expect(screen.getByText('- First option')).toBeTruthy(); + expect(screen.queryByRole('button', { name: 'Back' })).toBeNull(); + + fireEvent.click(optionButton('Alpha')); + fireEvent.click(optionButton('Gamma')); + expect(screen.getByText('Final question')).toBeTruthy(); + expect(respondQuestion).not.toHaveBeenCalled(); + + fireEvent.click(screen.getByRole('button', { name: 'Back' })); + expect(screen.getByText('Second question')).toBeTruthy(); + expect(within(optionButton('Gamma')).getByText('✓')).toBeTruthy(); + + fireEvent.click(screen.getByRole('button', { name: 'Back' })); + expect(screen.getByText('First question')).toBeTruthy(); + expect(within(optionButton('Alpha')).getByText('✓')).toBeTruthy(); + + fireEvent.click(screen.getByRole('button', { name: 'Next' })); + fireEvent.click(screen.getByRole('button', { name: 'Next' })); + fireEvent.click(optionButton('No')); + + await waitFor(() => { + expect(respondQuestion).toHaveBeenCalledWith({ + 'First question': 'Alpha', + 'Second question': 'Gamma', + 'Final question': 'No', + }); + }); + }); + + it('preserves custom drafts per question when navigating backward and forward', () => { + renderQuestion([ + makeQuestion('First question', ['Alpha']), + makeQuestion('Second question', ['Gamma']), + ]); + + fireEvent.click(optionButton('Alpha')); + fireEvent.click(customResponseButton()); + fireEvent.change(customInput(), { target: { value: 'Second draft' } }); + + fireEvent.click(screen.getByRole('button', { name: 'Back' })); + fireEvent.click(customResponseButton()); + expect(customInput().value).toBe(''); + fireEvent.change(customInput(), { target: { value: 'First draft' } }); + fireEvent.keyDown(customInput(), { key: 'Escape' }); + + fireEvent.click(screen.getByRole('button', { name: 'Next' })); + fireEvent.click(customResponseButton()); + expect(customInput().value).toBe('Second draft'); + + fireEvent.click(screen.getByRole('button', { name: 'Back' })); + fireEvent.click(customResponseButton()); + expect(customInput().value).toBe('First draft'); + }); + + it('replaces an earlier single-select answer after going back', async () => { + renderQuestion([ + makeQuestion('First question', ['Alpha', 'Beta']), + makeQuestion('Final question', ['Gamma', 'Delta']), + ]); + + fireEvent.click(optionButton('Alpha')); + fireEvent.click(screen.getByRole('button', { name: 'Back' })); + fireEvent.click(optionButton('Beta')); + fireEvent.click(optionButton('Delta')); + + await waitFor(() => { + expect(respondQuestion).toHaveBeenCalledWith({ + 'First question': 'Beta', + 'Final question': 'Delta', + }); + }); + }); + + it('toggles multi-select options and submits them in selection order', async () => { + renderQuestion([makeQuestion('Pick several', ['Alpha', 'Beta', 'Gamma'], true)]); + + const submit = screen.getByRole('button', { name: 'Submit' }) as HTMLButtonElement; + expect(submit.disabled).toBe(true); + expect(screen.getByText('Select all that apply')).toBeTruthy(); + + fireEvent.click(optionButton('Alpha')); + expect(submit.disabled).toBe(false); + fireEvent.click(optionButton('Beta')); + fireEvent.click(optionButton('Alpha')); + fireEvent.click(optionButton('Gamma')); + + expect(screen.getByText('Pick several')).toBeTruthy(); + expect(respondQuestion).not.toHaveBeenCalled(); + expect(within(optionButton('Alpha')).queryByText('✓')).toBeNull(); + expect(within(optionButton('Beta')).getByText('✓')).toBeTruthy(); + expect(within(optionButton('Gamma')).getByText('✓')).toBeTruthy(); + + fireEvent.click(submit); + await waitFor(() => { + expect(respondQuestion).toHaveBeenCalledWith({ 'Pick several': 'Beta, Gamma' }); + }); + }); + + it('preserves and edits multi-select answers after going back', async () => { + renderQuestion([ + makeQuestion('First multi', ['Alpha', 'Beta'], true), + makeQuestion('Second single', ['Yes', 'No']), + ]); + + fireEvent.click(optionButton('Alpha')); + fireEvent.click(optionButton('Beta')); + expect(screen.getByText('First multi')).toBeTruthy(); + expect(screen.queryByText('Second single')).toBeNull(); + + fireEvent.click(screen.getByRole('button', { name: 'Next' })); + fireEvent.click(screen.getByRole('button', { name: 'Back' })); + expect(within(optionButton('Alpha')).getByText('✓')).toBeTruthy(); + expect(within(optionButton('Beta')).getByText('✓')).toBeTruthy(); + + fireEvent.click(optionButton('Alpha')); + fireEvent.click(screen.getByRole('button', { name: 'Next' })); + fireEvent.click(optionButton('No')); + + await waitFor(() => { + expect(respondQuestion).toHaveBeenCalledWith({ + 'First multi': 'Beta', + 'Second single': 'No', + }); + }); + }); + + it('trims and submits a custom single-select answer with Enter', async () => { + renderQuestion([makeQuestion('Custom single', ['Alpha'])]); + fireEvent.click(customResponseButton()); + + const input = customInput(); + const send = screen.getByRole('button', { name: 'Send' }) as HTMLButtonElement; + expect(send.disabled).toBe(true); + + fireEvent.change(input, { target: { value: ' ' } }); + expect(send.disabled).toBe(true); + + fireEvent.change(input, { target: { value: ' My answer ' } }); + expect(send.disabled).toBe(false); + fireEvent.keyDown(input, { key: 'Enter' }); + + await waitFor(() => { + expect(respondQuestion).toHaveBeenCalledWith({ 'Custom single': 'My answer' }); + }); + }); + + it('adds, deduplicates, and removes custom multi-select answers', async () => { + renderQuestion([makeQuestion('Custom multi', ['Alpha'], true)]); + + fireEvent.click(customResponseButton()); + fireEvent.change(customInput(), { target: { value: ' Extra ' } }); + fireEvent.click(screen.getByRole('button', { name: 'Send' })); + await waitFor(() => { + expect(screen.queryByPlaceholderText(/Enter your response/)).toBeNull(); + }); + expect(optionButton('Extra')).toBeTruthy(); + + fireEvent.click(customResponseButton()); + fireEvent.change(customInput(), { target: { value: 'Extra' } }); + fireEvent.click(screen.getByRole('button', { name: 'Send' })); + await waitFor(() => { + expect(screen.queryByPlaceholderText(/Enter your response/)).toBeNull(); + }); + expect(screen.getAllByText('Extra')).toHaveLength(1); + + fireEvent.click(customResponseButton()); + fireEvent.change(customInput(), { target: { value: 'Alpha' } }); + fireEvent.click(screen.getByRole('button', { name: 'Send' })); + await waitFor(() => { + expect(screen.queryByPlaceholderText(/Enter your response/)).toBeNull(); + }); + expect(screen.getAllByText('Alpha')).toHaveLength(1); + expect(within(optionButton('Alpha')).getByText('✓')).toBeTruthy(); + + fireEvent.click(optionButton('Extra')); + expect(screen.queryByText('Extra')).toBeNull(); + fireEvent.click(screen.getByRole('button', { name: 'Submit' })); + + await waitFor(() => { + expect(respondQuestion).toHaveBeenCalledWith({ 'Custom multi': 'Alpha' }); + }); + }); + + it('ignores Enter during IME composition and closes custom input with Escape', async () => { + renderQuestion([makeQuestion('Keyboard', ['Alpha'])]); + fireEvent.click(customResponseButton()); + + const input = customInput(); + fireEvent.change(input, { target: { value: ' Draft answer ' } }); + fireEvent.keyDown(input, { key: 'Enter', isComposing: true }); + expect(respondQuestion).not.toHaveBeenCalled(); + expect(customInput().value).toBe(' Draft answer '); + + fireEvent.keyDown(input, { key: 'Escape' }); + expect(screen.queryByPlaceholderText(/Enter your response/)).toBeNull(); + + fireEvent.click(customResponseButton()); + expect(customInput().value).toBe(' Draft answer '); + fireEvent.keyDown(customInput(), { key: 'Enter' }); + + await waitFor(() => { + expect(respondQuestion).toHaveBeenCalledWith({ Keyboard: 'Draft answer' }); + }); + }); + + it('disables answers and Back while a final single-select submission is pending', async () => { + const response = createDeferred(); + respondQuestion.mockReturnValue(response.promise); + renderQuestion([ + makeQuestion('First question', ['Alpha']), + makeQuestion('Final question', ['Gamma', 'Delta']), + ]); + + fireEvent.click(optionButton('Alpha')); + fireEvent.click(optionButton('Delta')); + + const back = screen.getByRole('button', { name: 'Back' }) as HTMLButtonElement; + expect(back.disabled).toBe(true); + expect(optionButton('Gamma').disabled).toBe(true); + expect(optionButton('Delta').disabled).toBe(true); + expect(customResponseButton().disabled).toBe(true); + + fireEvent.click(back); + fireEvent.click(optionButton('Gamma')); + expect(screen.getByText('Final question')).toBeTruthy(); + expect(respondQuestion).toHaveBeenCalledTimes(1); + + await act(async () => { + response.resolve(); + }); + expect(back.disabled).toBe(false); + expect(optionButton('Gamma').disabled).toBe(false); + expect(customResponseButton().disabled).toBe(false); + }); + + it('disables multi-select and custom controls while a final submission is pending', async () => { + const response = createDeferred(); + respondQuestion.mockReturnValue(response.promise); + renderQuestion([ + makeQuestion('First question', ['One']), + makeQuestion('Final multi', ['Alpha', 'Beta'], true), + ]); + + fireEvent.click(optionButton('One')); + fireEvent.click(optionButton('Alpha')); + fireEvent.click(customResponseButton()); + fireEvent.change(customInput(), { target: { value: 'Draft' } }); + const back = screen.getByRole('button', { name: 'Back' }) as HTMLButtonElement; + const send = screen.getByRole('button', { name: 'Send' }) as HTMLButtonElement; + const submit = screen.getByRole('button', { name: 'Submit' }) as HTMLButtonElement; + fireEvent.click(submit); + + expect(back.disabled).toBe(true); + expect(optionButton('Alpha').disabled).toBe(true); + expect(optionButton('Beta').disabled).toBe(true); + expect(customInput().disabled).toBe(true); + expect(send.disabled).toBe(true); + expect(submit.disabled).toBe(true); + + fireEvent.click(submit); + expect(respondQuestion).toHaveBeenCalledTimes(1); + + await act(async () => { + response.resolve(); + }); + expect(back.disabled).toBe(false); + expect(optionButton('Alpha').disabled).toBe(false); + expect(customInput().disabled).toBe(false); + expect(send.disabled).toBe(false); + expect(submit.disabled).toBe(false); + }); + + it('resets navigation, answers, and custom drafts when a new question request arrives', async () => { + renderQuestion([ + makeQuestion('Old first', ['One']), + makeQuestion('Old second', ['Two']), + ], 'old-request'); + fireEvent.click(optionButton('One')); + expect(screen.getByText('Old second')).toBeTruthy(); + fireEvent.click(customResponseButton()); + fireEvent.change(customInput(), { target: { value: 'Old draft' } }); + + act(() => { + setPendingQuestion([makeQuestion('New first', ['Three'])], 'new-request'); + }); + expect(screen.getByText('New first')).toBeTruthy(); + expect(screen.queryByText('Old second')).toBeNull(); + expect(screen.queryByText('Question 1 of 1')).toBeNull(); + fireEvent.click(customResponseButton()); + expect(customInput().value).toBe(''); + fireEvent.keyDown(customInput(), { key: 'Escape' }); + + fireEvent.click(optionButton('Three')); + await waitFor(() => { + expect(respondQuestion).toHaveBeenCalledExactlyOnceWith({ 'New first': 'Three' }); + }); + }); +}); diff --git a/apps/vscode/tsdown.config.ts b/apps/vscode/tsdown.config.ts index c1ab8b009..264c1701c 100644 --- a/apps/vscode/tsdown.config.ts +++ b/apps/vscode/tsdown.config.ts @@ -20,8 +20,12 @@ export default defineConfig({ plugins: [rawTextPlugin()], alias: { '@moonshot-ai/kimi-code-sdk': resolve(root, '../../packages/node-sdk/src/index.ts'), + '@moonshot-ai/kimi-telemetry': resolve(root, '../../packages/telemetry/src/index.ts'), '@moonshot-ai/migration-legacy': resolve(root, '../../packages/migration-legacy/src/index.ts'), - '@moonshot-ai/kaos': resolve(root, '../../packages/kaos/src/index.ts'), + '@moonshot-ai/kimi-code-oauth/provider-credential': resolve( + root, + '../../packages/oauth/src/provider-credential.ts', + ), '@moonshot-ai/kimi-code-oauth': resolve(root, '../../packages/oauth/src/index.ts'), '@moonshot-ai/kosong': resolve(root, '../../packages/kosong/src/index.ts'), }, diff --git a/apps/vscode/webview-ui/src/components/QuestionDialog.tsx b/apps/vscode/webview-ui/src/components/QuestionDialog.tsx index 6294d9c83..d9c46cfc7 100644 --- a/apps/vscode/webview-ui/src/components/QuestionDialog.tsx +++ b/apps/vscode/webview-ui/src/components/QuestionDialog.tsx @@ -4,51 +4,76 @@ import { cn } from "@/lib/utils"; export function QuestionDialog() { const { pendingQuestion, respondQuestion } = useChatStore(); - const [customInput, setCustomInput] = useState(""); + const [customDrafts, setCustomDrafts] = useState>({}); const [showCustom, setShowCustom] = useState(false); const [selectedIndex, setSelectedIndex] = useState(1); const [questionIndex, setQuestionIndex] = useState(0); - const [answers, setAnswers] = useState>({}); - const [multiSelected, setMultiSelected] = useState([]); + const [answers, setAnswers] = useState>({}); + const [isSubmitting, setIsSubmitting] = useState(false); const questions = pendingQuestion?.questions ?? []; const question = questions[questionIndex]; const isMultiSelect = question?.multi_select === true; const isLastQuestion = questionIndex + 1 >= questions.length; + const currentAnswer = question ? answers[question.question] : undefined; + const selectedValues = Array.isArray(currentAnswer) ? currentAnswer : typeof currentAnswer === "string" ? [currentAnswer] : []; + const customInput = customDrafts[questionIndex] ?? ""; useEffect(() => { if (pendingQuestion) { setShowCustom(false); - setCustomInput(""); + setCustomDrafts({}); setSelectedIndex(1); setQuestionIndex(0); setAnswers({}); - setMultiSelected([]); + setIsSubmitting(false); } }, [pendingQuestion?.id]); if (!pendingQuestion || !question) return null; + const updateCustomInput = (value: string) => { + setCustomDrafts((currentDrafts) => ({ ...currentDrafts, [questionIndex]: value })); + }; + // Step through the questions one by one; submit all answers after the last. - const handleAnswer = async (answer: string) => { + const handleAnswer = async (answer: string | string[]) => { const nextAnswers = { ...answers, [question.question]: answer }; if (!isLastQuestion) { setAnswers(nextAnswers); setQuestionIndex(questionIndex + 1); setShowCustom(false); - setCustomInput(""); setSelectedIndex(1); - setMultiSelected([]); } else { - await respondQuestion(nextAnswers); + setIsSubmitting(true); + try { + await respondQuestion( + Object.fromEntries(Object.entries(nextAnswers).map(([key, value]) => [key, Array.isArray(value) ? value.join(", ") : value])), + ); + } finally { + setIsSubmitting(false); + } } }; + const handleBack = () => { + setQuestionIndex(questionIndex - 1); + setShowCustom(false); + setSelectedIndex(1); + }; + const handleSelect = async (optionLabel: string) => { if (isMultiSelect) { - setMultiSelected((prev) => - prev.includes(optionLabel) ? prev.filter((value) => value !== optionLabel) : [...prev, optionLabel], - ); + setAnswers((currentAnswers) => { + const answer = currentAnswers[question.question]; + const values = Array.isArray(answer) ? answer : []; + return { + ...currentAnswers, + [question.question]: values.includes(optionLabel) + ? values.filter((value) => value !== optionLabel) + : [...values, optionLabel], + }; + }); return; } await handleAnswer(optionLabel); @@ -58,24 +83,32 @@ export function QuestionDialog() { const value = customInput.trim(); if (!value) return; if (isMultiSelect) { - setMultiSelected((prev) => (prev.includes(value) ? prev : [...prev, value])); - setCustomInput(""); + if (!selectedValues.includes(value)) await handleSelect(value); + updateCustomInput(""); setShowCustom(false); return; } await handleAnswer(value); + updateCustomInput(""); }; const options = question.options || []; const customIndex = options.length + 1; - const customValues = multiSelected.filter((value) => !options.some((option) => option.label === value)); + const customValues = selectedValues.filter((value) => !options.some((option) => option.label === value)); return (
        {questions.length > 1 && ( -
        - Question {questionIndex + 1} of {questions.length} +
        + + Question {questionIndex + 1} of {questions.length} + + {questionIndex > 0 && ( + + )}
        )} {question.header &&
        {question.header}
        } @@ -83,7 +116,7 @@ export function QuestionDialog() { {isMultiSelect &&
        Select all that apply
        }
        {options.map((option, idx) => { - const isChecked = isMultiSelect && multiSelected.includes(option.label); + const isChecked = selectedValues.includes(option.label); const isHighlighted = selectedIndex === idx + 1; return ( )} + {!isMultiSelect && !isLastQuestion && currentAnswer !== undefined && ( + + )} {isMultiSelect && (